summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchristopherm <christopherm@4979c152-3d1c-0410-bac9-87ea11338e46>2006-09-01 01:16:38 +0000
committerchristopherm <christopherm@4979c152-3d1c-0410-bac9-87ea11338e46>2006-09-01 01:16:38 +0000
commitac5b087ea2d9ba7428d367aaeb288534158fee9a (patch)
tree2dbe0bdea0b653a215ba9ddfdf627cb57855050d
Initial Import
git-svn-id: https://ledger-smb.svn.sourceforge.net/svnroot/ledger-smb/ledger-smb@1 4979c152-3d1c-0410-bac9-87ea11338e46
-rw-r--r--COPYRIGHT17
-rwxr-xr-xLedgerSMB.xcfbin0 -> 7418 bytes
-rwxr-xr-xLedgerSMB/AA.pm937
-rwxr-xr-xLedgerSMB/AM.pm1832
-rwxr-xr-xLedgerSMB/BP.pm326
-rwxr-xr-xLedgerSMB/CA.pm378
-rwxr-xr-xLedgerSMB/CP.pm684
-rwxr-xr-xLedgerSMB/CT.pm1080
-rwxr-xr-xLedgerSMB/Form.pm2942
-rwxr-xr-xLedgerSMB/GL.pm526
-rwxr-xr-xLedgerSMB/HR.pm555
-rwxr-xr-xLedgerSMB/IC.pm1714
-rwxr-xr-xLedgerSMB/IR.pm1123
-rwxr-xr-xLedgerSMB/IS.pm1684
-rwxr-xr-xLedgerSMB/Inifile.pm74
-rwxr-xr-xLedgerSMB/JC.pm582
-rwxr-xr-xLedgerSMB/Mailer.pm149
-rwxr-xr-xLedgerSMB/Menu.pm91
-rwxr-xr-xLedgerSMB/Num2text.pm149
-rwxr-xr-xLedgerSMB/OE.pm2238
-rwxr-xr-xLedgerSMB/OP.pm101
-rwxr-xr-xLedgerSMB/PE.pm1499
-rwxr-xr-xLedgerSMB/RC.pm391
-rwxr-xr-xLedgerSMB/RP.pm2103
-rwxr-xr-xLedgerSMB/Session.pm143
-rwxr-xr-xLedgerSMB/User.pm927
-rw-r--r--VERSION1
-rwxr-xr-xadmin.pl129
-rwxr-xr-xam.pl2
-rwxr-xr-xap.pl2
-rwxr-xr-xar.pl2
-rwxr-xr-xbin/lynx/aa.pl1693
-rwxr-xr-xbin/lynx/admin.pl1612
-rwxr-xr-xbin/lynx/am.pl3271
-rwxr-xr-xbin/lynx/ap.pl40
-rwxr-xr-xbin/lynx/ar.pl40
-rwxr-xr-xbin/lynx/arap.pl918
-rwxr-xr-xbin/lynx/arapprn.pl591
-rwxr-xr-xbin/lynx/bp.pl531
-rwxr-xr-xbin/lynx/ca.pl514
-rwxr-xr-xbin/lynx/cp.pl1392
-rwxr-xr-xbin/lynx/ct.pl2478
-rwxr-xr-xbin/lynx/gl.pl1128
-rwxr-xr-xbin/lynx/hr.pl1246
-rwxr-xr-xbin/lynx/ic.pl3238
-rwxr-xr-xbin/lynx/io.pl1683
-rwxr-xr-xbin/lynx/ir.pl845
-rwxr-xr-xbin/lynx/is.pl952
-rwxr-xr-xbin/lynx/jc.pl1912
-rwxr-xr-xbin/lynx/login.pl350
-rwxr-xr-xbin/lynx/menu.pl153
-rwxr-xr-xbin/lynx/oe.pl3023
-rwxr-xr-xbin/lynx/pe.pl2578
-rwxr-xr-xbin/lynx/pos.pl938
-rwxr-xr-xbin/lynx/ps.pl45
-rwxr-xr-xbin/lynx/pw.pl73
-rwxr-xr-xbin/lynx/rc.pl502
-rwxr-xr-xbin/lynx/rp.pl2351
-rwxr-xr-xbin/mozilla/aa.pl1681
-rwxr-xr-xbin/mozilla/admin.pl1628
-rwxr-xr-xbin/mozilla/am.pl3260
-rwxr-xr-xbin/mozilla/ap.pl28
-rwxr-xr-xbin/mozilla/ar.pl28
-rwxr-xr-xbin/mozilla/arap.pl907
-rwxr-xr-xbin/mozilla/arapprn.pl580
-rwxr-xr-xbin/mozilla/bp.pl520
-rwxr-xr-xbin/mozilla/ca.pl502
-rwxr-xr-xbin/mozilla/cp.pl1380
-rwxr-xr-xbin/mozilla/ct.pl2466
-rwxr-xr-xbin/mozilla/gl.pl1116
-rwxr-xr-xbin/mozilla/hr.pl1235
-rwxr-xr-xbin/mozilla/ic.pl3226
-rwxr-xr-xbin/mozilla/io.pl1672
-rwxr-xr-xbin/mozilla/ir.pl834
-rwxr-xr-xbin/mozilla/is.pl941
-rwxr-xr-xbin/mozilla/jc.pl1901
-rwxr-xr-xbin/mozilla/login.pl340
-rwxr-xr-xbin/mozilla/menu.pl255
-rwxr-xr-xbin/mozilla/oe.pl3012
-rwxr-xr-xbin/mozilla/pe.pl2567
-rwxr-xr-xbin/mozilla/pos.pl926
-rwxr-xr-xbin/mozilla/ps.pl34
-rwxr-xr-xbin/mozilla/pw.pl62
-rwxr-xr-xbin/mozilla/rc.pl491
-rwxr-xr-xbin/mozilla/rp.pl2338
-rwxr-xr-xbp.pl2
-rwxr-xr-xca.pl2
-rwxr-xr-xcp.pl2
-rwxr-xr-xcss/sql-ledger-blue.css206
-rwxr-xr-xcss/sql-ledger-brown.css215
-rwxr-xr-xcss/sql-ledger-purple.css195
-rwxr-xr-xcss/sql-ledger-red.css189
-rwxr-xr-xcss/sql-ledger-yellow.css189
-rwxr-xr-xcss/sql-ledger.css208
-rwxr-xr-xct.pl2
-rwxr-xr-xdoc/COPYING355
-rwxr-xr-xdoc/COPYRIGHT21
-rwxr-xr-xdoc/README343
-rwxr-xr-xdoc/README.DB282
-rwxr-xr-xdoc/UPGRADE-1.6-1.861
-rwxr-xr-xdoc/UPGRADE-1.8-1.8.323
-rwxr-xr-xdoc/UPGRADE-1.8.3-1.8.410
-rwxr-xr-xdoc/UPGRADE-1.8.4-1.8.518
-rwxr-xr-xdoc/UPGRADE-1.8.5-1.8.76
-rwxr-xr-xdoc/UPGRADE-1.8.7-2.0.020
-rwxr-xr-xdoc/UPGRADE-2.0-2.0.88
-rwxr-xr-xdoc/UPGRADE-2.0.8-2.0.96
-rwxr-xr-xdoc/UPGRADE-2.0.9-2.2.012
-rwxr-xr-xdoc/UPGRADE-2.2.0-2.2.711
-rwxr-xr-xdoc/UPGRADE-2.2.7-2.4.084
-rwxr-xr-xdoc/UPGRADE-2.4.0-2.4.212
-rwxr-xr-xdoc/UPGRADE-2.4.16-2.6.019
-rwxr-xr-xdoc/UPGRADE-2.4.2-2.4.322
-rwxr-xr-xdoc/UPGRADE-2.4.3-2.4.1612
-rwxr-xr-xdoc/UPGRADE-2.6.0-2.6.1714
-rwxr-xr-xdoc/faq.html707
-rwxr-xr-xfavicon.icobin0 -> 568 bytes
-rwxr-xr-xgl.pl2
-rwxr-xr-xhr.pl2
-rwxr-xr-xic.pl2
-rw-r--r--index.html10
-rwxr-xr-xir.pl2
-rwxr-xr-xis.pl2
-rwxr-xr-xjc.pl2
-rw-r--r--ledger-smb-httpd.conf16
-rw-r--r--ledger-smb.conf48
-rw-r--r--ledger-smb.conf.default48
-rwxr-xr-xledger-smb.eps496
-rwxr-xr-xledger-smb.gifbin0 -> 980 bytes
-rwxr-xr-xledger-smb.pngbin0 -> 15928 bytes
-rwxr-xr-xledger-smb_small.pngbin0 -> 6507 bytes
-rwxr-xr-xlocale/be_fr/COPYING29
-rwxr-xr-xlocale/be_fr/LANGUAGE1
-rwxr-xr-xlocale/be_fr/Num2text202
-rwxr-xr-xlocale/be_fr/aa161
-rwxr-xr-xlocale/be_fr/admin144
-rwxr-xr-xlocale/be_fr/all928
-rwxr-xr-xlocale/be_fr/am312
-rwxr-xr-xlocale/be_fr/ap240
-rwxr-xr-xlocale/be_fr/ar240
-rwxr-xr-xlocale/be_fr/arap74
-rwxr-xr-xlocale/be_fr/arapprn34
-rwxr-xr-xlocale/be_fr/bp69
-rwxr-xr-xlocale/be_fr/ca60
-rwxr-xr-xlocale/be_fr/cp149
-rwxr-xr-xlocale/be_fr/ct190
-rwxr-xr-xlocale/be_fr/gl185
-rwxr-xr-xlocale/be_fr/hr120
-rwxr-xr-xlocale/be_fr/ic301
-rwxr-xr-xlocale/be_fr/io137
-rwxr-xr-xlocale/be_fr/ir257
-rwxr-xr-xlocale/be_fr/is271
-rwxr-xr-xlocale/be_fr/jc155
-rwxr-xr-xlocale/be_fr/locales.pl351
-rwxr-xr-xlocale/be_fr/login25
-rwxr-xr-xlocale/be_fr/menu142
-rwxr-xr-xlocale/be_fr/oe378
-rwxr-xr-xlocale/be_fr/pe166
-rwxr-xr-xlocale/be_fr/pos81
-rwxr-xr-xlocale/be_fr/ps397
-rwxr-xr-xlocale/be_fr/pw13
-rwxr-xr-xlocale/be_fr/rc79
-rwxr-xr-xlocale/be_fr/rp205
-rwxr-xr-xlocale/be_nl/COPYING23
-rwxr-xr-xlocale/be_nl/LANGUAGE1
-rwxr-xr-xlocale/be_nl/Num2text161
-rwxr-xr-xlocale/be_nl/aa141
-rwxr-xr-xlocale/be_nl/admin137
-rwxr-xr-xlocale/be_nl/all702
-rwxr-xr-xlocale/be_nl/am274
-rwxr-xr-xlocale/be_nl/ap193
-rwxr-xr-xlocale/be_nl/ar193
-rwxr-xr-xlocale/be_nl/arap51
-rwxr-xr-xlocale/be_nl/arapprn30
-rwxr-xr-xlocale/be_nl/bp63
-rwxr-xr-xlocale/be_nl/ca55
-rwxr-xr-xlocale/be_nl/cp123
-rwxr-xr-xlocale/be_nl/ct178
-rwxr-xr-xlocale/be_nl/gl150
-rwxr-xr-xlocale/be_nl/hr113
-rwxr-xr-xlocale/be_nl/ic270
-rwxr-xr-xlocale/be_nl/io127
-rwxr-xr-xlocale/be_nl/ir221
-rwxr-xr-xlocale/be_nl/is230
-rwxr-xr-xlocale/be_nl/jc86
-rwxr-xr-xlocale/be_nl/locales.pl351
-rwxr-xr-xlocale/be_nl/login24
-rwxr-xr-xlocale/be_nl/menu134
-rwxr-xr-xlocale/be_nl/oe308
-rwxr-xr-xlocale/be_nl/pe137
-rwxr-xr-xlocale/be_nl/pos74
-rwxr-xr-xlocale/be_nl/ps338
-rwxr-xr-xlocale/be_nl/pw12
-rwxr-xr-xlocale/be_nl/rc75
-rwxr-xr-xlocale/be_nl/rp175
-rwxr-xr-xlocale/bg_utf/COPYING25
-rwxr-xr-xlocale/bg_utf/LANGUAGE1
-rwxr-xr-xlocale/bg_utf/aa163
-rwxr-xr-xlocale/bg_utf/admin146
-rwxr-xr-xlocale/bg_utf/all868
-rwxr-xr-xlocale/bg_utf/am317
-rwxr-xr-xlocale/bg_utf/ap242
-rwxr-xr-xlocale/bg_utf/ar242
-rwxr-xr-xlocale/bg_utf/arap76
-rwxr-xr-xlocale/bg_utf/arapprn36
-rwxr-xr-xlocale/bg_utf/bp71
-rwxr-xr-xlocale/bg_utf/ca62
-rwxr-xr-xlocale/bg_utf/cp151
-rwxr-xr-xlocale/bg_utf/ct192
-rwxr-xr-xlocale/bg_utf/gl187
-rwxr-xr-xlocale/bg_utf/hr122
-rwxr-xr-xlocale/bg_utf/ic303
-rwxr-xr-xlocale/bg_utf/io139
-rwxr-xr-xlocale/bg_utf/ir259
-rwxr-xr-xlocale/bg_utf/is273
-rwxr-xr-xlocale/bg_utf/jc106
-rwxr-xr-xlocale/bg_utf/locales.pl351
-rwxr-xr-xlocale/bg_utf/login27
-rwxr-xr-xlocale/bg_utf/menu145
-rwxr-xr-xlocale/bg_utf/oe380
-rwxr-xr-xlocale/bg_utf/pe168
-rwxr-xr-xlocale/bg_utf/pos83
-rwxr-xr-xlocale/bg_utf/ps399
-rwxr-xr-xlocale/bg_utf/pw15
-rwxr-xr-xlocale/bg_utf/rc81
-rwxr-xr-xlocale/bg_utf/rp207
-rwxr-xr-xlocale/br/COPYING25
-rwxr-xr-xlocale/br/LANGUAGE1
-rwxr-xr-xlocale/br/aa161
-rwxr-xr-xlocale/br/admin144
-rwxr-xr-xlocale/br/all934
-rwxr-xr-xlocale/br/am312
-rwxr-xr-xlocale/br/ap240
-rwxr-xr-xlocale/br/ar240
-rwxr-xr-xlocale/br/arap74
-rwxr-xr-xlocale/br/arapprn34
-rwxr-xr-xlocale/br/bp69
-rwxr-xr-xlocale/br/ca60
-rwxr-xr-xlocale/br/cp149
-rwxr-xr-xlocale/br/ct190
-rwxr-xr-xlocale/br/gl185
-rwxr-xr-xlocale/br/hr120
-rwxr-xr-xlocale/br/ic301
-rwxr-xr-xlocale/br/io137
-rwxr-xr-xlocale/br/ir257
-rwxr-xr-xlocale/br/is271
-rwxr-xr-xlocale/br/jc155
-rwxr-xr-xlocale/br/locales.pl351
-rwxr-xr-xlocale/br/login25
-rwxr-xr-xlocale/br/menu142
-rwxr-xr-xlocale/br/oe378
-rwxr-xr-xlocale/br/pe166
-rwxr-xr-xlocale/br/pos81
-rwxr-xr-xlocale/br/ps397
-rwxr-xr-xlocale/br/pw13
-rwxr-xr-xlocale/br/rc79
-rwxr-xr-xlocale/br/rp205
-rwxr-xr-xlocale/ca_en/COPYING23
-rwxr-xr-xlocale/ca_en/LANGUAGE1
-rwxr-xr-xlocale/ca_en/aa27
-rwxr-xr-xlocale/ca_en/admin37
-rwxr-xr-xlocale/ca_en/all890
-rwxr-xr-xlocale/ca_en/am90
-rwxr-xr-xlocale/ca_en/ap58
-rwxr-xr-xlocale/ca_en/ar58
-rwxr-xr-xlocale/ca_en/arap29
-rwxr-xr-xlocale/ca_en/arapprn18
-rwxr-xr-xlocale/ca_en/bp20
-rwxr-xr-xlocale/ca_en/ca12
-rwxr-xr-xlocale/ca_en/cp57
-rwxr-xr-xlocale/ca_en/ct51
-rwxr-xr-xlocale/ca_en/gl48
-rwxr-xr-xlocale/ca_en/hr38
-rwxr-xr-xlocale/ca_en/ic66
-rwxr-xr-xlocale/ca_en/io30
-rwxr-xr-xlocale/ca_en/ir66
-rwxr-xr-xlocale/ca_en/is67
-rwxr-xr-xlocale/ca_en/jc44
-rwxr-xr-xlocale/ca_en/locales.pl351
-rwxr-xr-xlocale/ca_en/login12
-rwxr-xr-xlocale/ca_en/menu14
-rwxr-xr-xlocale/ca_en/oe92
-rwxr-xr-xlocale/ca_en/pe59
-rwxr-xr-xlocale/ca_en/pos26
-rwxr-xr-xlocale/ca_en/ps95
-rwxr-xr-xlocale/ca_en/pw9
-rwxr-xr-xlocale/ca_en/rc20
-rwxr-xr-xlocale/ca_en/rp54
-rwxr-xr-xlocale/ca_fr/COPYING24
-rwxr-xr-xlocale/ca_fr/LANGUAGE1
-rwxr-xr-xlocale/ca_fr/Num2text202
-rwxr-xr-xlocale/ca_fr/aa156
-rwxr-xr-xlocale/ca_fr/admin143
-rwxr-xr-xlocale/ca_fr/all756
-rwxr-xr-xlocale/ca_fr/am284
-rwxr-xr-xlocale/ca_fr/ap210
-rwxr-xr-xlocale/ca_fr/ar210
-rwxr-xr-xlocale/ca_fr/arap51
-rwxr-xr-xlocale/ca_fr/arapprn32
-rwxr-xr-xlocale/ca_fr/bp67
-rwxr-xr-xlocale/ca_fr/ca60
-rwxr-xr-xlocale/ca_fr/cp123
-rwxr-xr-xlocale/ca_fr/ct186
-rwxr-xr-xlocale/ca_fr/gl159
-rwxr-xr-xlocale/ca_fr/hr117
-rwxr-xr-xlocale/ca_fr/ic285
-rwxr-xr-xlocale/ca_fr/io130
-rwxr-xr-xlocale/ca_fr/ir224
-rwxr-xr-xlocale/ca_fr/is235
-rwxr-xr-xlocale/ca_fr/jc92
-rwxr-xr-xlocale/ca_fr/locales.pl351
-rwxr-xr-xlocale/ca_fr/login24
-rwxr-xr-xlocale/ca_fr/menu135
-rwxr-xr-xlocale/ca_fr/oe321
-rwxr-xr-xlocale/ca_fr/pe141
-rwxr-xr-xlocale/ca_fr/pos80
-rwxr-xr-xlocale/ca_fr/ps358
-rwxr-xr-xlocale/ca_fr/pw13
-rwxr-xr-xlocale/ca_fr/rc79
-rwxr-xr-xlocale/ca_fr/rp179
-rwxr-xr-xlocale/ch/COPYING34
-rwxr-xr-xlocale/ch/LANGUAGE1
-rwxr-xr-xlocale/ch/Num2text185
-rwxr-xr-xlocale/ch/aa161
-rwxr-xr-xlocale/ch/admin144
-rwxr-xr-xlocale/ch/all954
-rwxr-xr-xlocale/ch/am315
-rwxr-xr-xlocale/ch/ap240
-rwxr-xr-xlocale/ch/ar240
-rwxr-xr-xlocale/ch/arap74
-rwxr-xr-xlocale/ch/arapprn34
-rwxr-xr-xlocale/ch/bp69
-rwxr-xr-xlocale/ch/ca60
-rwxr-xr-xlocale/ch/cp149
-rwxr-xr-xlocale/ch/ct190
-rwxr-xr-xlocale/ch/gl185
-rwxr-xr-xlocale/ch/hr120
-rwxr-xr-xlocale/ch/ic301
-rwxr-xr-xlocale/ch/io137
-rwxr-xr-xlocale/ch/ir257
-rwxr-xr-xlocale/ch/is271
-rwxr-xr-xlocale/ch/jc155
-rwxr-xr-xlocale/ch/locales.pl351
-rwxr-xr-xlocale/ch/login25
-rwxr-xr-xlocale/ch/menu143
-rwxr-xr-xlocale/ch/oe378
-rwxr-xr-xlocale/ch/pe166
-rwxr-xr-xlocale/ch/pos81
-rwxr-xr-xlocale/ch/ps397
-rwxr-xr-xlocale/ch/pw13
-rwxr-xr-xlocale/ch/rc79
-rwxr-xr-xlocale/ch/rp205
-rwxr-xr-xlocale/ch_utf/COPYING34
-rwxr-xr-xlocale/ch_utf/LANGUAGE1
-rwxr-xr-xlocale/ch_utf/Num2text185
-rwxr-xr-xlocale/ch_utf/aa163
-rwxr-xr-xlocale/ch_utf/admin146
-rwxr-xr-xlocale/ch_utf/all956
-rwxr-xr-xlocale/ch_utf/am317
-rwxr-xr-xlocale/ch_utf/ap242
-rwxr-xr-xlocale/ch_utf/ar242
-rwxr-xr-xlocale/ch_utf/arap76
-rwxr-xr-xlocale/ch_utf/arapprn36
-rwxr-xr-xlocale/ch_utf/bp71
-rwxr-xr-xlocale/ch_utf/ca62
-rwxr-xr-xlocale/ch_utf/cp151
-rwxr-xr-xlocale/ch_utf/ct192
-rwxr-xr-xlocale/ch_utf/gl187
-rwxr-xr-xlocale/ch_utf/hr122
-rwxr-xr-xlocale/ch_utf/ic303
-rwxr-xr-xlocale/ch_utf/io139
-rwxr-xr-xlocale/ch_utf/ir259
-rwxr-xr-xlocale/ch_utf/is273
-rwxr-xr-xlocale/ch_utf/jc157
-rwxr-xr-xlocale/ch_utf/locales.pl351
-rwxr-xr-xlocale/ch_utf/login27
-rwxr-xr-xlocale/ch_utf/menu145
-rwxr-xr-xlocale/ch_utf/oe380
-rwxr-xr-xlocale/ch_utf/pe168
-rwxr-xr-xlocale/ch_utf/pos83
-rwxr-xr-xlocale/ch_utf/ps399
-rwxr-xr-xlocale/ch_utf/pw15
-rwxr-xr-xlocale/ch_utf/rc81
-rwxr-xr-xlocale/ch_utf/rp207
-rwxr-xr-xlocale/cn_utf/COPYING24
-rwxr-xr-xlocale/cn_utf/LANGUAGE1
-rwxr-xr-xlocale/cn_utf/aa163
-rwxr-xr-xlocale/cn_utf/admin145
-rwxr-xr-xlocale/cn_utf/all896
-rwxr-xr-xlocale/cn_utf/am294
-rwxr-xr-xlocale/cn_utf/ap226
-rwxr-xr-xlocale/cn_utf/ar226
-rwxr-xr-xlocale/cn_utf/arap64
-rwxr-xr-xlocale/cn_utf/arapprn32
-rwxr-xr-xlocale/cn_utf/bp70
-rwxr-xr-xlocale/cn_utf/ca60
-rwxr-xr-xlocale/cn_utf/cp136
-rwxr-xr-xlocale/cn_utf/ct179
-rwxr-xr-xlocale/cn_utf/gl171
-rwxr-xr-xlocale/cn_utf/hr117
-rwxr-xr-xlocale/cn_utf/ic287
-rwxr-xr-xlocale/cn_utf/io130
-rwxr-xr-xlocale/cn_utf/ir238
-rwxr-xr-xlocale/cn_utf/is251
-rwxr-xr-xlocale/cn_utf/jc96
-rwxr-xr-xlocale/cn_utf/locales.pl351
-rwxr-xr-xlocale/cn_utf/login27
-rwxr-xr-xlocale/cn_utf/menu139
-rwxr-xr-xlocale/cn_utf/oe350
-rwxr-xr-xlocale/cn_utf/op147
-rwxr-xr-xlocale/cn_utf/pe144
-rwxr-xr-xlocale/cn_utf/pos82
-rwxr-xr-xlocale/cn_utf/ps371
-rwxr-xr-xlocale/cn_utf/pw15
-rwxr-xr-xlocale/cn_utf/rc81
-rwxr-xr-xlocale/cn_utf/rp191
-rwxr-xr-xlocale/co/COPYING27
-rwxr-xr-xlocale/co/LANGUAGE1
-rwxr-xr-xlocale/co/Num2text212
-rwxr-xr-xlocale/co/aa156
-rwxr-xr-xlocale/co/admin143
-rwxr-xr-xlocale/co/all894
-rwxr-xr-xlocale/co/am284
-rwxr-xr-xlocale/co/ap210
-rwxr-xr-xlocale/co/ar210
-rwxr-xr-xlocale/co/arap51
-rwxr-xr-xlocale/co/arapprn32
-rwxr-xr-xlocale/co/bp67
-rwxr-xr-xlocale/co/ca59
-rwxr-xr-xlocale/co/cp123
-rwxr-xr-xlocale/co/ct186
-rwxr-xr-xlocale/co/gl158
-rwxr-xr-xlocale/co/hr117
-rwxr-xr-xlocale/co/ic277
-rwxr-xr-xlocale/co/io130
-rwxr-xr-xlocale/co/ir224
-rwxr-xr-xlocale/co/is235
-rwxr-xr-xlocale/co/jc92
-rwxr-xr-xlocale/co/locales.pl351
-rwxr-xr-xlocale/co/login24
-rwxr-xr-xlocale/co/menu135
-rwxr-xr-xlocale/co/oe321
-rwxr-xr-xlocale/co/pe141
-rwxr-xr-xlocale/co/pos80
-rwxr-xr-xlocale/co/ps358
-rwxr-xr-xlocale/co/pw13
-rwxr-xr-xlocale/co/rc79
-rwxr-xr-xlocale/co/rp179
-rwxr-xr-xlocale/co_utf/COPYING27
-rwxr-xr-xlocale/co_utf/LANGUAGE1
-rwxr-xr-xlocale/co_utf/Num2text211
-rwxr-xr-xlocale/co_utf/aa161
-rwxr-xr-xlocale/co_utf/admin145
-rwxr-xr-xlocale/co_utf/all896
-rwxr-xr-xlocale/co_utf/am307
-rwxr-xr-xlocale/co_utf/ap235
-rwxr-xr-xlocale/co_utf/ar235
-rwxr-xr-xlocale/co_utf/arap72
-rwxr-xr-xlocale/co_utf/arapprn35
-rwxr-xr-xlocale/co_utf/bp70
-rwxr-xr-xlocale/co_utf/ca61
-rwxr-xr-xlocale/co_utf/cp144
-rwxr-xr-xlocale/co_utf/ct189
-rwxr-xr-xlocale/co_utf/gl182
-rwxr-xr-xlocale/co_utf/hr120
-rwxr-xr-xlocale/co_utf/ic282
-rwxr-xr-xlocale/co_utf/io135
-rwxr-xr-xlocale/co_utf/ir251
-rwxr-xr-xlocale/co_utf/is262
-rwxr-xr-xlocale/co_utf/jc94
-rwxr-xr-xlocale/co_utf/locales.pl351
-rwxr-xr-xlocale/co_utf/login26
-rwxr-xr-xlocale/co_utf/menu139
-rwxr-xr-xlocale/co_utf/oe361
-rwxr-xr-xlocale/co_utf/pe143
-rwxr-xr-xlocale/co_utf/pos82
-rwxr-xr-xlocale/co_utf/ps385
-rwxr-xr-xlocale/co_utf/pw15
-rwxr-xr-xlocale/co_utf/rc81
-rwxr-xr-xlocale/co_utf/rp200
-rwxr-xr-xlocale/ct/COPYING21
-rwxr-xr-xlocale/ct/LANGUAGE1
-rwxr-xr-xlocale/ct/Num2text212
-rwxr-xr-xlocale/ct/aa99
-rwxr-xr-xlocale/ct/admin133
-rwxr-xr-xlocale/ct/all307
-rwxr-xr-xlocale/ct/am182
-rwxr-xr-xlocale/ct/ap134
-rwxr-xr-xlocale/ct/ar134
-rwxr-xr-xlocale/ct/arap37
-rwxr-xr-xlocale/ct/arapprn25
-rwxr-xr-xlocale/ct/bp39
-rwxr-xr-xlocale/ct/ca48
-rwxr-xr-xlocale/ct/cp83
-rwxr-xr-xlocale/ct/ct105
-rwxr-xr-xlocale/ct/gl108
-rwxr-xr-xlocale/ct/hr65
-rwxr-xr-xlocale/ct/ic185
-rwxr-xr-xlocale/ct/io93
-rwxr-xr-xlocale/ct/ir158
-rwxr-xr-xlocale/ct/is159
-rwxr-xr-xlocale/ct/jc68
-rwxr-xr-xlocale/ct/locales.pl351
-rwxr-xr-xlocale/ct/login21
-rwxr-xr-xlocale/ct/menu61
-rwxr-xr-xlocale/ct/oe193
-rwxr-xr-xlocale/ct/pe88
-rwxr-xr-xlocale/ct/pos52
-rwxr-xr-xlocale/ct/ps214
-rwxr-xr-xlocale/ct/pw12
-rwxr-xr-xlocale/ct/rc55
-rwxr-xr-xlocale/ct/rp121
-rwxr-xr-xlocale/cz/COPYING23
-rwxr-xr-xlocale/cz/LANGUAGE1
-rwxr-xr-xlocale/cz/aa102
-rwxr-xr-xlocale/cz/admin135
-rwxr-xr-xlocale/cz/all892
-rwxr-xr-xlocale/cz/am190
-rwxr-xr-xlocale/cz/ap139
-rwxr-xr-xlocale/cz/ar139
-rwxr-xr-xlocale/cz/arap41
-rwxr-xr-xlocale/cz/arapprn27
-rwxr-xr-xlocale/cz/bp41
-rwxr-xr-xlocale/cz/ca51
-rwxr-xr-xlocale/cz/cp87
-rwxr-xr-xlocale/cz/ct109
-rwxr-xr-xlocale/cz/gl113
-rwxr-xr-xlocale/cz/hr67
-rwxr-xr-xlocale/cz/ic191
-rwxr-xr-xlocale/cz/io97
-rwxr-xr-xlocale/cz/ir162
-rwxr-xr-xlocale/cz/is163
-rwxr-xr-xlocale/cz/jc70
-rwxr-xr-xlocale/cz/locales.pl351
-rwxr-xr-xlocale/cz/login23
-rwxr-xr-xlocale/cz/menu65
-rwxr-xr-xlocale/cz/oe198
-rwxr-xr-xlocale/cz/pe90
-rwxr-xr-xlocale/cz/pos54
-rwxr-xr-xlocale/cz/ps223
-rwxr-xr-xlocale/cz/pw14
-rwxr-xr-xlocale/cz/rc57
-rwxr-xr-xlocale/cz/rp130
-rwxr-xr-xlocale/de/COPYING26
-rwxr-xr-xlocale/de/LANGUAGE1
-rwxr-xr-xlocale/de/Num2text185
-rwxr-xr-xlocale/de/aa161
-rwxr-xr-xlocale/de/admin144
-rwxr-xr-xlocale/de/all873
-rwxr-xr-xlocale/de/am319
-rwxr-xr-xlocale/de/ap240
-rwxr-xr-xlocale/de/ar240
-rwxr-xr-xlocale/de/arap74
-rwxr-xr-xlocale/de/arapprn34
-rwxr-xr-xlocale/de/bp69
-rwxr-xr-xlocale/de/ca60
-rwxr-xr-xlocale/de/cp149
-rwxr-xr-xlocale/de/ct190
-rwxr-xr-xlocale/de/gl185
-rwxr-xr-xlocale/de/hr120
-rwxr-xr-xlocale/de/ic303
-rwxr-xr-xlocale/de/io139
-rwxr-xr-xlocale/de/ir259
-rwxr-xr-xlocale/de/is273
-rwxr-xr-xlocale/de/jc156
-rwxr-xr-xlocale/de/locales.pl351
-rwxr-xr-xlocale/de/login25
-rwxr-xr-xlocale/de/menu144
-rwxr-xr-xlocale/de/oe380
-rwxr-xr-xlocale/de/pe166
-rwxr-xr-xlocale/de/pos81
-rwxr-xr-xlocale/de/ps399
-rwxr-xr-xlocale/de/pw13
-rwxr-xr-xlocale/de/rc79
-rwxr-xr-xlocale/de/rp205
-rwxr-xr-xlocale/de_utf/COPYING24
-rwxr-xr-xlocale/de_utf/LANGUAGE1
-rwxr-xr-xlocale/de_utf/Num2text185
-rwxr-xr-xlocale/de_utf/aa149
-rwxr-xr-xlocale/de_utf/admin139
-rwxr-xr-xlocale/de_utf/am271
-rwxr-xr-xlocale/de_utf/ap201
-rwxr-xr-xlocale/de_utf/ar201
-rwxr-xr-xlocale/de_utf/arap53
-rwxr-xr-xlocale/de_utf/arapprn32
-rwxr-xr-xlocale/de_utf/bp69
-rwxr-xr-xlocale/de_utf/ca61
-rwxr-xr-xlocale/de_utf/cp125
-rwxr-xr-xlocale/de_utf/ct180
-rwxr-xr-xlocale/de_utf/gl156
-rwxr-xr-xlocale/de_utf/hr115
-rwxr-xr-xlocale/de_utf/ic275
-rwxr-xr-xlocale/de_utf/io130
-rwxr-xr-xlocale/de_utf/ir224
-rwxr-xr-xlocale/de_utf/is235
-rwxr-xr-xlocale/de_utf/jc94
-rwxr-xr-xlocale/de_utf/locales.pl351
-rwxr-xr-xlocale/de_utf/login26
-rwxr-xr-xlocale/de_utf/menu136
-rwxr-xr-xlocale/de_utf/oe317
-rwxr-xr-xlocale/de_utf/op47
-rwxr-xr-xlocale/de_utf/pe143
-rwxr-xr-xlocale/de_utf/pos82
-rwxr-xr-xlocale/de_utf/ps347
-rwxr-xr-xlocale/de_utf/pw14
-rwxr-xr-xlocale/de_utf/rc81
-rwxr-xr-xlocale/de_utf/rp181
-rwxr-xr-xlocale/dk/COPYING24
-rwxr-xr-xlocale/dk/LANGUAGE1
-rwxr-xr-xlocale/dk/aa156
-rwxr-xr-xlocale/dk/admin137
-rwxr-xr-xlocale/dk/all894
-rwxr-xr-xlocale/dk/am281
-rwxr-xr-xlocale/dk/ap210
-rwxr-xr-xlocale/dk/ar210
-rwxr-xr-xlocale/dk/arap51
-rwxr-xr-xlocale/dk/arapprn32
-rwxr-xr-xlocale/dk/bp67
-rwxr-xr-xlocale/dk/ca59
-rwxr-xr-xlocale/dk/cp123
-rwxr-xr-xlocale/dk/ct185
-rwxr-xr-xlocale/dk/gl158
-rwxr-xr-xlocale/dk/hr114
-rwxr-xr-xlocale/dk/ic275
-rwxr-xr-xlocale/dk/io128
-rwxr-xr-xlocale/dk/ir222
-rwxr-xr-xlocale/dk/is233
-rwxr-xr-xlocale/dk/jc92
-rwxr-xr-xlocale/dk/locales.pl351
-rwxr-xr-xlocale/dk/login24
-rwxr-xr-xlocale/dk/menu134
-rwxr-xr-xlocale/dk/oe319
-rwxr-xr-xlocale/dk/pe141
-rwxr-xr-xlocale/dk/pos80
-rwxr-xr-xlocale/dk/ps356
-rwxr-xr-xlocale/dk/pw12
-rwxr-xr-xlocale/dk/rc79
-rwxr-xr-xlocale/dk/rp179
-rwxr-xr-xlocale/ec/COPYING23
-rwxr-xr-xlocale/ec/LANGUAGE1
-rwxr-xr-xlocale/ec/Num2text212
-rwxr-xr-xlocale/ec/aa156
-rwxr-xr-xlocale/ec/admin143
-rwxr-xr-xlocale/ec/all894
-rwxr-xr-xlocale/ec/am284
-rwxr-xr-xlocale/ec/ap210
-rwxr-xr-xlocale/ec/ar210
-rwxr-xr-xlocale/ec/arap51
-rwxr-xr-xlocale/ec/arapprn32
-rwxr-xr-xlocale/ec/bp67
-rwxr-xr-xlocale/ec/ca59
-rwxr-xr-xlocale/ec/cp123
-rwxr-xr-xlocale/ec/ct186
-rwxr-xr-xlocale/ec/gl158
-rwxr-xr-xlocale/ec/hr117
-rwxr-xr-xlocale/ec/ic277
-rwxr-xr-xlocale/ec/io130
-rwxr-xr-xlocale/ec/ir224
-rwxr-xr-xlocale/ec/is235
-rwxr-xr-xlocale/ec/jc92
-rwxr-xr-xlocale/ec/locales.pl351
-rwxr-xr-xlocale/ec/login24
-rwxr-xr-xlocale/ec/menu134
-rwxr-xr-xlocale/ec/oe321
-rwxr-xr-xlocale/ec/pe141
-rwxr-xr-xlocale/ec/pos80
-rwxr-xr-xlocale/ec/ps358
-rwxr-xr-xlocale/ec/pw13
-rwxr-xr-xlocale/ec/rc79
-rwxr-xr-xlocale/ec/rp179
-rwxr-xr-xlocale/ee/COPYING26
-rwxr-xr-xlocale/ee/LANGUAGE1
-rwxr-xr-xlocale/ee/Num2text140
-rwxr-xr-xlocale/ee/aa163
-rwxr-xr-xlocale/ee/admin146
-rwxr-xr-xlocale/ee/all928
-rwxr-xr-xlocale/ee/am317
-rwxr-xr-xlocale/ee/ap242
-rwxr-xr-xlocale/ee/ar242
-rwxr-xr-xlocale/ee/arap76
-rwxr-xr-xlocale/ee/arapprn36
-rwxr-xr-xlocale/ee/bp71
-rwxr-xr-xlocale/ee/ca62
-rwxr-xr-xlocale/ee/cp151
-rwxr-xr-xlocale/ee/ct192
-rwxr-xr-xlocale/ee/gl187
-rwxr-xr-xlocale/ee/hr122
-rwxr-xr-xlocale/ee/ic303
-rwxr-xr-xlocale/ee/io139
-rwxr-xr-xlocale/ee/ir259
-rwxr-xr-xlocale/ee/is273
-rwxr-xr-xlocale/ee/jc157
-rwxr-xr-xlocale/ee/locales.pl351
-rwxr-xr-xlocale/ee/login27
-rwxr-xr-xlocale/ee/menu145
-rwxr-xr-xlocale/ee/oe380
-rwxr-xr-xlocale/ee/pe168
-rwxr-xr-xlocale/ee/pos83
-rwxr-xr-xlocale/ee/ps399
-rwxr-xr-xlocale/ee/pw15
-rwxr-xr-xlocale/ee/rc81
-rwxr-xr-xlocale/ee/rp207
-rwxr-xr-xlocale/ee_utf/COPYING23
-rwxr-xr-xlocale/ee_utf/LANGUAGE1
-rwxr-xr-xlocale/ee_utf/Num2text140
-rwxr-xr-xlocale/ee_utf/aa163
-rwxr-xr-xlocale/ee_utf/admin146
-rwxr-xr-xlocale/ee_utf/all928
-rwxr-xr-xlocale/ee_utf/am317
-rwxr-xr-xlocale/ee_utf/ap242
-rwxr-xr-xlocale/ee_utf/ar242
-rwxr-xr-xlocale/ee_utf/arap76
-rwxr-xr-xlocale/ee_utf/arapprn36
-rwxr-xr-xlocale/ee_utf/bp71
-rwxr-xr-xlocale/ee_utf/ca62
-rwxr-xr-xlocale/ee_utf/cp151
-rwxr-xr-xlocale/ee_utf/ct192
-rwxr-xr-xlocale/ee_utf/gl187
-rwxr-xr-xlocale/ee_utf/hr122
-rwxr-xr-xlocale/ee_utf/ic303
-rwxr-xr-xlocale/ee_utf/io139
-rwxr-xr-xlocale/ee_utf/ir259
-rwxr-xr-xlocale/ee_utf/is273
-rwxr-xr-xlocale/ee_utf/jc157
-rwxr-xr-xlocale/ee_utf/locales.pl351
-rwxr-xr-xlocale/ee_utf/login27
-rwxr-xr-xlocale/ee_utf/menu145
-rwxr-xr-xlocale/ee_utf/oe380
-rwxr-xr-xlocale/ee_utf/pe168
-rwxr-xr-xlocale/ee_utf/pos83
-rwxr-xr-xlocale/ee_utf/ps399
-rwxr-xr-xlocale/ee_utf/pw15
-rwxr-xr-xlocale/ee_utf/rc81
-rwxr-xr-xlocale/ee_utf/rp207
-rwxr-xr-xlocale/eg_utf/COPYING28
-rwxr-xr-xlocale/eg_utf/LANGUAGE1
-rwxr-xr-xlocale/eg_utf/aa143
-rwxr-xr-xlocale/eg_utf/admin102
-rwxr-xr-xlocale/eg_utf/all892
-rwxr-xr-xlocale/eg_utf/am220
-rwxr-xr-xlocale/eg_utf/ap189
-rwxr-xr-xlocale/eg_utf/ar189
-rwxr-xr-xlocale/eg_utf/arap51
-rwxr-xr-xlocale/eg_utf/arapprn28
-rwxr-xr-xlocale/eg_utf/bp54
-rwxr-xr-xlocale/eg_utf/ca55
-rwxr-xr-xlocale/eg_utf/cp116
-rwxr-xr-xlocale/eg_utf/ct170
-rwxr-xr-xlocale/eg_utf/gl146
-rwxr-xr-xlocale/eg_utf/hr87
-rwxr-xr-xlocale/eg_utf/ic240
-rwxr-xr-xlocale/eg_utf/io116
-rwxr-xr-xlocale/eg_utf/ir207
-rwxr-xr-xlocale/eg_utf/is213
-rwxr-xr-xlocale/eg_utf/jc83
-rwxr-xr-xlocale/eg_utf/locales.pl351
-rwxr-xr-xlocale/eg_utf/login24
-rwxr-xr-xlocale/eg_utf/menu121
-rwxr-xr-xlocale/eg_utf/oe268
-rwxr-xr-xlocale/eg_utf/pe125
-rwxr-xr-xlocale/eg_utf/pos73
-rwxr-xr-xlocale/eg_utf/ps318
-rwxr-xr-xlocale/eg_utf/pw14
-rwxr-xr-xlocale/eg_utf/rc75
-rwxr-xr-xlocale/eg_utf/rp169
-rwxr-xr-xlocale/en_GB/COPYING23
-rwxr-xr-xlocale/en_GB/LANGUAGE1
-rwxr-xr-xlocale/en_GB/aa37
-rwxr-xr-xlocale/en_GB/admin106
-rwxr-xr-xlocale/en_GB/all890
-rwxr-xr-xlocale/en_GB/am95
-rwxr-xr-xlocale/en_GB/ap70
-rwxr-xr-xlocale/en_GB/ar70
-rwxr-xr-xlocale/en_GB/arap31
-rwxr-xr-xlocale/en_GB/arapprn18
-rwxr-xr-xlocale/en_GB/bp22
-rwxr-xr-xlocale/en_GB/ca12
-rwxr-xr-xlocale/en_GB/cp63
-rwxr-xr-xlocale/en_GB/ct75
-rwxr-xr-xlocale/en_GB/gl54
-rwxr-xr-xlocale/en_GB/hr40
-rwxr-xr-xlocale/en_GB/ic73
-rwxr-xr-xlocale/en_GB/io32
-rwxr-xr-xlocale/en_GB/ir74
-rwxr-xr-xlocale/en_GB/is73
-rwxr-xr-xlocale/en_GB/jc44
-rwxr-xr-xlocale/en_GB/locales.pl351
-rwxr-xr-xlocale/en_GB/login12
-rwxr-xr-xlocale/en_GB/menu25
-rwxr-xr-xlocale/en_GB/oe103
-rwxr-xr-xlocale/en_GB/pe64
-rwxr-xr-xlocale/en_GB/pos28
-rwxr-xr-xlocale/en_GB/ps111
-rwxr-xr-xlocale/en_GB/pw9
-rwxr-xr-xlocale/en_GB/rc20
-rwxr-xr-xlocale/en_GB/rp60
-rwxr-xr-xlocale/es/COPYING26
-rwxr-xr-xlocale/es/LANGUAGE1
-rwxr-xr-xlocale/es/Num2text212
-rwxr-xr-xlocale/es/aa156
-rwxr-xr-xlocale/es/admin144
-rwxr-xr-xlocale/es/all896
-rwxr-xr-xlocale/es/am284
-rwxr-xr-xlocale/es/ap210
-rwxr-xr-xlocale/es/ar210
-rwxr-xr-xlocale/es/arap51
-rwxr-xr-xlocale/es/arapprn32
-rwxr-xr-xlocale/es/bp67
-rwxr-xr-xlocale/es/ca59
-rwxr-xr-xlocale/es/cp123
-rwxr-xr-xlocale/es/ct186
-rwxr-xr-xlocale/es/gl158
-rwxr-xr-xlocale/es/hr117
-rwxr-xr-xlocale/es/ic277
-rwxr-xr-xlocale/es/io130
-rwxr-xr-xlocale/es/ir224
-rwxr-xr-xlocale/es/is235
-rwxr-xr-xlocale/es/jc92
-rwxr-xr-xlocale/es/locales.pl351
-rwxr-xr-xlocale/es/login24
-rwxr-xr-xlocale/es/menu134
-rwxr-xr-xlocale/es/oe322
-rwxr-xr-xlocale/es/pe141
-rwxr-xr-xlocale/es/pos80
-rwxr-xr-xlocale/es/ps358
-rwxr-xr-xlocale/es/pw13
-rwxr-xr-xlocale/es/rc79
-rwxr-xr-xlocale/es/rp179
-rwxr-xr-xlocale/es_utf/COPYING26
-rwxr-xr-xlocale/es_utf/LANGUAGE1
-rwxr-xr-xlocale/es_utf/Num2text211
-rwxr-xr-xlocale/es_utf/aa132
-rwxr-xr-xlocale/es_utf/admin137
-rwxr-xr-xlocale/es_utf/all894
-rwxr-xr-xlocale/es_utf/am210
-rwxr-xr-xlocale/es_utf/ap176
-rwxr-xr-xlocale/es_utf/ar176
-rwxr-xr-xlocale/es_utf/arap48
-rwxr-xr-xlocale/es_utf/arapprn28
-rwxr-xr-xlocale/es_utf/bp47
-rwxr-xr-xlocale/es_utf/ca54
-rwxr-xr-xlocale/es_utf/cp111
-rwxr-xr-xlocale/es_utf/ct133
-rwxr-xr-xlocale/es_utf/gl139
-rwxr-xr-xlocale/es_utf/hr74
-rwxr-xr-xlocale/es_utf/ic218
-rwxr-xr-xlocale/es_utf/io103
-rwxr-xr-xlocale/es_utf/ir191
-rwxr-xr-xlocale/es_utf/is196
-rwxr-xr-xlocale/es_utf/jc81
-rwxr-xr-xlocale/es_utf/locales.pl351
-rwxr-xr-xlocale/es_utf/login22
-rwxr-xr-xlocale/es_utf/menu83
-rwxr-xr-xlocale/es_utf/oe237
-rwxr-xr-xlocale/es_utf/pe108
-rwxr-xr-xlocale/es_utf/pos66
-rwxr-xr-xlocale/es_utf/ps284
-rwxr-xr-xlocale/es_utf/pw14
-rwxr-xr-xlocale/es_utf/rc69
-rwxr-xr-xlocale/es_utf/rp155
-rwxr-xr-xlocale/fi/COPYING24
-rwxr-xr-xlocale/fi/LANGUAGE1
-rwxr-xr-xlocale/fi/aa151
-rwxr-xr-xlocale/fi/admin144
-rwxr-xr-xlocale/fi/all891
-rwxr-xr-xlocale/fi/am271
-rwxr-xr-xlocale/fi/ap205
-rwxr-xr-xlocale/fi/ar205
-rwxr-xr-xlocale/fi/arap51
-rwxr-xr-xlocale/fi/arapprn31
-rwxr-xr-xlocale/fi/bp63
-rwxr-xr-xlocale/fi/ca58
-rwxr-xr-xlocale/fi/cp120
-rwxr-xr-xlocale/fi/ct172
-rwxr-xr-xlocale/fi/gl154
-rwxr-xr-xlocale/fi/hr98
-rwxr-xr-xlocale/fi/ic258
-rwxr-xr-xlocale/fi/io125
-rwxr-xr-xlocale/fi/ir218
-rwxr-xr-xlocale/fi/is227
-rwxr-xr-xlocale/fi/jc92
-rwxr-xr-xlocale/fi/locales.pl351
-rwxr-xr-xlocale/fi/login24
-rwxr-xr-xlocale/fi/menu118
-rwxr-xr-xlocale/fi/oe304
-rwxr-xr-xlocale/fi/pe133
-rwxr-xr-xlocale/fi/pos76
-rwxr-xr-xlocale/fi/ps343
-rwxr-xr-xlocale/fi/pw13
-rwxr-xr-xlocale/fi/rc75
-rwxr-xr-xlocale/fi/rp175
-rwxr-xr-xlocale/fi_utf/COPYING26
-rwxr-xr-xlocale/fi_utf/LANGUAGE1
-rwxr-xr-xlocale/fi_utf/aa161
-rwxr-xr-xlocale/fi_utf/admin145
-rwxr-xr-xlocale/fi_utf/all888
-rwxr-xr-xlocale/fi_utf/am319
-rwxr-xr-xlocale/fi_utf/ap240
-rwxr-xr-xlocale/fi_utf/ar240
-rwxr-xr-xlocale/fi_utf/arap74
-rwxr-xr-xlocale/fi_utf/arapprn34
-rwxr-xr-xlocale/fi_utf/bp69
-rwxr-xr-xlocale/fi_utf/ca61
-rwxr-xr-xlocale/fi_utf/cp149
-rwxr-xr-xlocale/fi_utf/ct188
-rwxr-xr-xlocale/fi_utf/gl185
-rwxr-xr-xlocale/fi_utf/hr120
-rwxr-xr-xlocale/fi_utf/ic303
-rwxr-xr-xlocale/fi_utf/io139
-rwxr-xr-xlocale/fi_utf/ir259
-rwxr-xr-xlocale/fi_utf/is273
-rwxr-xr-xlocale/fi_utf/jc156
-rwxr-xr-xlocale/fi_utf/locales.pl351
-rwxr-xr-xlocale/fi_utf/login25
-rwxr-xr-xlocale/fi_utf/menu144
-rwxr-xr-xlocale/fi_utf/oe380
-rwxr-xr-xlocale/fi_utf/pe166
-rwxr-xr-xlocale/fi_utf/pos81
-rwxr-xr-xlocale/fi_utf/ps399
-rwxr-xr-xlocale/fi_utf/pw13
-rwxr-xr-xlocale/fi_utf/rc79
-rwxr-xr-xlocale/fi_utf/rp205
-rwxr-xr-xlocale/fr/COPYING28
-rwxr-xr-xlocale/fr/LANGUAGE1
-rwxr-xr-xlocale/fr/Num2text211
-rwxr-xr-xlocale/fr/aa159
-rwxr-xr-xlocale/fr/admin143
-rwxr-xr-xlocale/fr/all786
-rwxr-xr-xlocale/fr/am305
-rwxr-xr-xlocale/fr/ap233
-rwxr-xr-xlocale/fr/ar233
-rwxr-xr-xlocale/fr/arap70
-rwxr-xr-xlocale/fr/arapprn33
-rwxr-xr-xlocale/fr/bp68
-rwxr-xr-xlocale/fr/ca59
-rwxr-xr-xlocale/fr/cp142
-rwxr-xr-xlocale/fr/ct187
-rwxr-xr-xlocale/fr/gl180
-rwxr-xr-xlocale/fr/hr117
-rwxr-xr-xlocale/fr/ic280
-rwxr-xr-xlocale/fr/io133
-rwxr-xr-xlocale/fr/ir249
-rwxr-xr-xlocale/fr/is260
-rwxr-xr-xlocale/fr/jc92
-rwxr-xr-xlocale/fr/locales.pl351
-rwxr-xr-xlocale/fr/login24
-rwxr-xr-xlocale/fr/menu136
-rwxr-xr-xlocale/fr/oe346
-rwxr-xr-xlocale/fr/pe141
-rwxr-xr-xlocale/fr/pos80
-rwxr-xr-xlocale/fr/ps383
-rwxr-xr-xlocale/fr/pw13
-rwxr-xr-xlocale/fr/rc79
-rwxr-xr-xlocale/fr/rp198
-rwxr-xr-xlocale/gr/COPYING23
-rwxr-xr-xlocale/gr/LANGUAGE1
-rwxr-xr-xlocale/gr/aa106
-rwxr-xr-xlocale/gr/admin128
-rwxr-xr-xlocale/gr/all892
-rwxr-xr-xlocale/gr/am182
-rwxr-xr-xlocale/gr/ap145
-rwxr-xr-xlocale/gr/ar145
-rwxr-xr-xlocale/gr/arap41
-rwxr-xr-xlocale/gr/arapprn29
-rwxr-xr-xlocale/gr/bp43
-rwxr-xr-xlocale/gr/ca50
-rwxr-xr-xlocale/gr/cp96
-rwxr-xr-xlocale/gr/ct121
-rwxr-xr-xlocale/gr/gl111
-rwxr-xr-xlocale/gr/hr86
-rwxr-xr-xlocale/gr/ic169
-rwxr-xr-xlocale/gr/io83
-rwxr-xr-xlocale/gr/ir147
-rwxr-xr-xlocale/gr/is151
-rwxr-xr-xlocale/gr/jc74
-rwxr-xr-xlocale/gr/locales.pl351
-rwxr-xr-xlocale/gr/login19
-rwxr-xr-xlocale/gr/menu66
-rwxr-xr-xlocale/gr/oe198
-rwxr-xr-xlocale/gr/pe104
-rwxr-xr-xlocale/gr/pos59
-rwxr-xr-xlocale/gr/ps224
-rwxr-xr-xlocale/gr/pw13
-rwxr-xr-xlocale/gr/rc65
-rwxr-xr-xlocale/gr/rp127
-rwxr-xr-xlocale/hu/COPYING23
-rwxr-xr-xlocale/hu/LANGUAGE1
-rwxr-xr-xlocale/hu/Num2text232
-rwxr-xr-xlocale/hu/aa163
-rwxr-xr-xlocale/hu/admin146
-rwxr-xr-xlocale/hu/all892
-rwxr-xr-xlocale/hu/am321
-rwxr-xr-xlocale/hu/ap242
-rwxr-xr-xlocale/hu/ar242
-rwxr-xr-xlocale/hu/arap76
-rwxr-xr-xlocale/hu/arapprn36
-rwxr-xr-xlocale/hu/bp71
-rwxr-xr-xlocale/hu/ca62
-rwxr-xr-xlocale/hu/cp151
-rwxr-xr-xlocale/hu/ct192
-rwxr-xr-xlocale/hu/gl187
-rwxr-xr-xlocale/hu/hr99
-rwxr-xr-xlocale/hu/hr.missing29
-rwxr-xr-xlocale/hu/ic305
-rwxr-xr-xlocale/hu/io141
-rwxr-xr-xlocale/hu/ir261
-rwxr-xr-xlocale/hu/is275
-rwxr-xr-xlocale/hu/jc158
-rwxr-xr-xlocale/hu/locales.pl351
-rwxr-xr-xlocale/hu/login27
-rwxr-xr-xlocale/hu/menu146
-rwxr-xr-xlocale/hu/oe382
-rwxr-xr-xlocale/hu/pe168
-rwxr-xr-xlocale/hu/pos83
-rwxr-xr-xlocale/hu/ps401
-rwxr-xr-xlocale/hu/pw15
-rwxr-xr-xlocale/hu/rc81
-rwxr-xr-xlocale/hu/rp207
-rwxr-xr-xlocale/id/COPYING23
-rwxr-xr-xlocale/id/LANGUAGE1
-rwxr-xr-xlocale/id/aa126
-rwxr-xr-xlocale/id/admin99
-rwxr-xr-xlocale/id/all890
-rwxr-xr-xlocale/id/am228
-rwxr-xr-xlocale/id/ap174
-rwxr-xr-xlocale/id/ar174
-rwxr-xr-xlocale/id/arap47
-rwxr-xr-xlocale/id/arapprn29
-rwxr-xr-xlocale/id/bp53
-rwxr-xr-xlocale/id/ca38
-rwxr-xr-xlocale/id/cp112
-rwxr-xr-xlocale/id/ct161
-rwxr-xr-xlocale/id/gl126
-rwxr-xr-xlocale/id/hr94
-rwxr-xr-xlocale/id/ic214
-rwxr-xr-xlocale/id/io94
-rwxr-xr-xlocale/id/ir181
-rwxr-xr-xlocale/id/is190
-rwxr-xr-xlocale/id/jc82
-rwxr-xr-xlocale/id/locales.pl351
-rwxr-xr-xlocale/id/login20
-rwxr-xr-xlocale/id/menu110
-rwxr-xr-xlocale/id/oe259
-rwxr-xr-xlocale/id/pe124
-rwxr-xr-xlocale/id/pos72
-rwxr-xr-xlocale/id/ps292
-rwxr-xr-xlocale/id/pw11
-rwxr-xr-xlocale/id/rc54
-rwxr-xr-xlocale/id/rp136
-rwxr-xr-xlocale/is/COPYING23
-rwxr-xr-xlocale/is/LANGUAGE1
-rwxr-xr-xlocale/is/aa131
-rwxr-xr-xlocale/is/admin134
-rwxr-xr-xlocale/is/all890
-rwxr-xr-xlocale/is/am211
-rwxr-xr-xlocale/is/ap179
-rwxr-xr-xlocale/is/ar179
-rwxr-xr-xlocale/is/arap48
-rwxr-xr-xlocale/is/arapprn28
-rwxr-xr-xlocale/is/bp45
-rwxr-xr-xlocale/is/ca52
-rwxr-xr-xlocale/is/cp113
-rwxr-xr-xlocale/is/ct136
-rwxr-xr-xlocale/is/gl139
-rwxr-xr-xlocale/is/hr72
-rwxr-xr-xlocale/is/ic221
-rwxr-xr-xlocale/is/io105
-rwxr-xr-xlocale/is/ir193
-rwxr-xr-xlocale/is/is198
-rwxr-xr-xlocale/is/jc81
-rwxr-xr-xlocale/is/locales.pl351
-rwxr-xr-xlocale/is/login21
-rwxr-xr-xlocale/is/menu81
-rwxr-xr-xlocale/is/oe242
-rwxr-xr-xlocale/is/pe106
-rwxr-xr-xlocale/is/pos64
-rwxr-xr-xlocale/is/ps286
-rwxr-xr-xlocale/is/pw12
-rwxr-xr-xlocale/is/rc67
-rwxr-xr-xlocale/is/rp156
-rwxr-xr-xlocale/it/COPYING26
-rwxr-xr-xlocale/it/LANGUAGE1
-rwxr-xr-xlocale/it/Num2text162
-rwxr-xr-xlocale/it/aa128
-rwxr-xr-xlocale/it/admin123
-rwxr-xr-xlocale/it/all422
-rwxr-xr-xlocale/it/am211
-rwxr-xr-xlocale/it/ap176
-rwxr-xr-xlocale/it/ar176
-rwxr-xr-xlocale/it/arap48
-rwxr-xr-xlocale/it/arapprn28
-rwxr-xr-xlocale/it/bp45
-rwxr-xr-xlocale/it/ca52
-rwxr-xr-xlocale/it/cp111
-rwxr-xr-xlocale/it/ct131
-rwxr-xr-xlocale/it/gl140
-rwxr-xr-xlocale/it/hr73
-rwxr-xr-xlocale/it/ic223
-rwxr-xr-xlocale/it/io105
-rwxr-xr-xlocale/it/ir188
-rwxr-xr-xlocale/it/is195
-rwxr-xr-xlocale/it/jc81
-rwxr-xr-xlocale/it/locales.pl351
-rwxr-xr-xlocale/it/login21
-rwxr-xr-xlocale/it/menu80
-rwxr-xr-xlocale/it/oe236
-rwxr-xr-xlocale/it/pe107
-rwxr-xr-xlocale/it/pos62
-rwxr-xr-xlocale/it/ps284
-rwxr-xr-xlocale/it/pw12
-rwxr-xr-xlocale/it/qe199
-rwxr-xr-xlocale/it/rc67
-rwxr-xr-xlocale/it/rp157
-rwxr-xr-xlocale/lt/COPYING23
-rwxr-xr-xlocale/lt/LANGUAGE1
-rwxr-xr-xlocale/lt/aa133
-rwxr-xr-xlocale/lt/admin136
-rwxr-xr-xlocale/lt/all892
-rwxr-xr-xlocale/lt/am212
-rwxr-xr-xlocale/lt/ap181
-rwxr-xr-xlocale/lt/ar181
-rwxr-xr-xlocale/lt/arap50
-rwxr-xr-xlocale/lt/arapprn30
-rwxr-xr-xlocale/lt/bp47
-rwxr-xr-xlocale/lt/ca54
-rwxr-xr-xlocale/lt/cp115
-rwxr-xr-xlocale/lt/ct136
-rwxr-xr-xlocale/lt/gl141
-rwxr-xr-xlocale/lt/hr74
-rwxr-xr-xlocale/lt/ic223
-rwxr-xr-xlocale/lt/io107
-rwxr-xr-xlocale/lt/ir193
-rwxr-xr-xlocale/lt/is200
-rwxr-xr-xlocale/lt/jc83
-rwxr-xr-xlocale/lt/locales.pl351
-rwxr-xr-xlocale/lt/login23
-rwxr-xr-xlocale/lt/menu82
-rwxr-xr-xlocale/lt/oe241
-rwxr-xr-xlocale/lt/pe108
-rwxr-xr-xlocale/lt/pos66
-rwxr-xr-xlocale/lt/ps289
-rwxr-xr-xlocale/lt/pw14
-rwxr-xr-xlocale/lt/rc69
-rwxr-xr-xlocale/lt/rp159
-rwxr-xr-xlocale/lv/COPYING23
-rwxr-xr-xlocale/lv/LANGUAGE1
-rwxr-xr-xlocale/lv/aa143
-rwxr-xr-xlocale/lv/admin139
-rwxr-xr-xlocale/lv/all896
-rwxr-xr-xlocale/lv/am275
-rwxr-xr-xlocale/lv/ap195
-rwxr-xr-xlocale/lv/ar195
-rwxr-xr-xlocale/lv/arap53
-rwxr-xr-xlocale/lv/arapprn32
-rwxr-xr-xlocale/lv/bp62
-rwxr-xr-xlocale/lv/ca57
-rwxr-xr-xlocale/lv/cp125
-rwxr-xr-xlocale/lv/ct180
-rwxr-xr-xlocale/lv/gl152
-rwxr-xr-xlocale/lv/hr114
-rwxr-xr-xlocale/lv/ic272
-rwxr-xr-xlocale/lv/io129
-rwxr-xr-xlocale/lv/ir223
-rwxr-xr-xlocale/lv/is232
-rwxr-xr-xlocale/lv/jc88
-rwxr-xr-xlocale/lv/locales.pl351
-rwxr-xr-xlocale/lv/login26
-rwxr-xr-xlocale/lv/menu133
-rwxr-xr-xlocale/lv/oe310
-rwxr-xr-xlocale/lv/pe139
-rwxr-xr-xlocale/lv/pos76
-rwxr-xr-xlocale/lv/ps340
-rwxr-xr-xlocale/lv/pw14
-rwxr-xr-xlocale/lv/rc77
-rwxr-xr-xlocale/lv/rp177
-rwxr-xr-xlocale/mx/COPYING23
-rwxr-xr-xlocale/mx/LANGUAGE1
-rwxr-xr-xlocale/mx/Num2text212
-rwxr-xr-xlocale/mx/aa156
-rwxr-xr-xlocale/mx/admin143
-rwxr-xr-xlocale/mx/all894
-rwxr-xr-xlocale/mx/am284
-rwxr-xr-xlocale/mx/ap210
-rwxr-xr-xlocale/mx/ar210
-rwxr-xr-xlocale/mx/arap51
-rwxr-xr-xlocale/mx/arapprn32
-rwxr-xr-xlocale/mx/bp67
-rwxr-xr-xlocale/mx/ca59
-rwxr-xr-xlocale/mx/cp123
-rwxr-xr-xlocale/mx/ct186
-rwxr-xr-xlocale/mx/gl158
-rwxr-xr-xlocale/mx/hr117
-rwxr-xr-xlocale/mx/ic277
-rwxr-xr-xlocale/mx/io130
-rwxr-xr-xlocale/mx/ir224
-rwxr-xr-xlocale/mx/is235
-rwxr-xr-xlocale/mx/jc92
-rwxr-xr-xlocale/mx/locales.pl351
-rwxr-xr-xlocale/mx/login24
-rwxr-xr-xlocale/mx/menu135
-rwxr-xr-xlocale/mx/oe321
-rwxr-xr-xlocale/mx/pe141
-rwxr-xr-xlocale/mx/pos80
-rwxr-xr-xlocale/mx/ps358
-rwxr-xr-xlocale/mx/pw13
-rwxr-xr-xlocale/mx/rc79
-rwxr-xr-xlocale/mx/rp179
-rwxr-xr-xlocale/nb/COPYING27
-rwxr-xr-xlocale/nb/LANGUAGE1
-rwxr-xr-xlocale/nb/aa156
-rwxr-xr-xlocale/nb/admin141
-rwxr-xr-xlocale/nb/all894
-rwxr-xr-xlocale/nb/am278
-rwxr-xr-xlocale/nb/ap209
-rwxr-xr-xlocale/nb/ar209
-rwxr-xr-xlocale/nb/arap51
-rwxr-xr-xlocale/nb/arapprn31
-rwxr-xr-xlocale/nb/bp67
-rwxr-xr-xlocale/nb/ca59
-rwxr-xr-xlocale/nb/cp123
-rwxr-xr-xlocale/nb/ct179
-rwxr-xr-xlocale/nb/gl158
-rwxr-xr-xlocale/nb/hr113
-rwxr-xr-xlocale/nb/ic275
-rwxr-xr-xlocale/nb/io129
-rwxr-xr-xlocale/nb/ir223
-rwxr-xr-xlocale/nb/is234
-rwxr-xr-xlocale/nb/jc92
-rwxr-xr-xlocale/nb/locales.pl351
-rwxr-xr-xlocale/nb/login24
-rwxr-xr-xlocale/nb/menu133
-rwxr-xr-xlocale/nb/oe320
-rwxr-xr-xlocale/nb/pe141
-rwxr-xr-xlocale/nb/pos80
-rwxr-xr-xlocale/nb/ps356
-rwxr-xr-xlocale/nb/pw12
-rwxr-xr-xlocale/nb/rc78
-rwxr-xr-xlocale/nb/rp179
-rwxr-xr-xlocale/nl/COPYING27
-rwxr-xr-xlocale/nl/LANGUAGE1
-rwxr-xr-xlocale/nl/Num2text161
-rwxr-xr-xlocale/nl/aa161
-rwxr-xr-xlocale/nl/admin144
-rwxr-xr-xlocale/nl/all952
-rwxr-xr-xlocale/nl/am315
-rwxr-xr-xlocale/nl/ap240
-rwxr-xr-xlocale/nl/ar240
-rwxr-xr-xlocale/nl/arap74
-rwxr-xr-xlocale/nl/arapprn34
-rwxr-xr-xlocale/nl/bp69
-rwxr-xr-xlocale/nl/ca60
-rwxr-xr-xlocale/nl/cp149
-rwxr-xr-xlocale/nl/ct190
-rwxr-xr-xlocale/nl/gl185
-rwxr-xr-xlocale/nl/hr120
-rwxr-xr-xlocale/nl/ic301
-rwxr-xr-xlocale/nl/io137
-rwxr-xr-xlocale/nl/ir257
-rwxr-xr-xlocale/nl/is271
-rwxr-xr-xlocale/nl/jc156
-rwxr-xr-xlocale/nl/locales.pl351
-rwxr-xr-xlocale/nl/login25
-rwxr-xr-xlocale/nl/menu143
-rwxr-xr-xlocale/nl/oe378
-rwxr-xr-xlocale/nl/op149
-rwxr-xr-xlocale/nl/pe166
-rwxr-xr-xlocale/nl/pos81
-rwxr-xr-xlocale/nl/ps397
-rwxr-xr-xlocale/nl/pw13
-rwxr-xr-xlocale/nl/rc79
-rwxr-xr-xlocale/nl/rp205
-rwxr-xr-xlocale/pa/COPYING23
-rwxr-xr-xlocale/pa/LANGUAGE1
-rwxr-xr-xlocale/pa/Num2text212
-rwxr-xr-xlocale/pa/aa156
-rwxr-xr-xlocale/pa/admin143
-rwxr-xr-xlocale/pa/all894
-rwxr-xr-xlocale/pa/am284
-rwxr-xr-xlocale/pa/ap210
-rwxr-xr-xlocale/pa/ar210
-rwxr-xr-xlocale/pa/arap51
-rwxr-xr-xlocale/pa/arapprn32
-rwxr-xr-xlocale/pa/bp67
-rwxr-xr-xlocale/pa/ca59
-rwxr-xr-xlocale/pa/cp123
-rwxr-xr-xlocale/pa/ct186
-rwxr-xr-xlocale/pa/gl158
-rwxr-xr-xlocale/pa/hr117
-rwxr-xr-xlocale/pa/ic277
-rwxr-xr-xlocale/pa/io130
-rwxr-xr-xlocale/pa/ir224
-rwxr-xr-xlocale/pa/is235
-rwxr-xr-xlocale/pa/jc92
-rwxr-xr-xlocale/pa/locales.pl351
-rwxr-xr-xlocale/pa/login24
-rwxr-xr-xlocale/pa/menu135
-rwxr-xr-xlocale/pa/oe321
-rwxr-xr-xlocale/pa/pe141
-rwxr-xr-xlocale/pa/pos80
-rwxr-xr-xlocale/pa/ps358
-rwxr-xr-xlocale/pa/pw13
-rwxr-xr-xlocale/pa/rc79
-rwxr-xr-xlocale/pa/rp179
-rwxr-xr-xlocale/pl/COPYING23
-rwxr-xr-xlocale/pl/LANGUAGE1
-rwxr-xr-xlocale/pl/aa158
-rwxr-xr-xlocale/pl/admin139
-rwxr-xr-xlocale/pl/all896
-rwxr-xr-xlocale/pl/am283
-rwxr-xr-xlocale/pl/ap212
-rwxr-xr-xlocale/pl/ar212
-rwxr-xr-xlocale/pl/arap53
-rwxr-xr-xlocale/pl/arapprn34
-rwxr-xr-xlocale/pl/bp69
-rwxr-xr-xlocale/pl/ca61
-rwxr-xr-xlocale/pl/cp125
-rwxr-xr-xlocale/pl/ct187
-rwxr-xr-xlocale/pl/gl160
-rwxr-xr-xlocale/pl/hr116
-rwxr-xr-xlocale/pl/ic277
-rwxr-xr-xlocale/pl/io130
-rwxr-xr-xlocale/pl/ir224
-rwxr-xr-xlocale/pl/is235
-rwxr-xr-xlocale/pl/jc94
-rwxr-xr-xlocale/pl/locales.pl351
-rwxr-xr-xlocale/pl/login26
-rwxr-xr-xlocale/pl/menu136
-rwxr-xr-xlocale/pl/oe321
-rwxr-xr-xlocale/pl/pe143
-rwxr-xr-xlocale/pl/pos82
-rwxr-xr-xlocale/pl/ps358
-rwxr-xr-xlocale/pl/pw14
-rwxr-xr-xlocale/pl/rc81
-rwxr-xr-xlocale/pl/rp181
-rwxr-xr-xlocale/pt/COPYING23
-rwxr-xr-xlocale/pt/LANGUAGE1
-rwxr-xr-xlocale/pt/aa129
-rwxr-xr-xlocale/pt/admin133
-rwxr-xr-xlocale/pt/all890
-rwxr-xr-xlocale/pt/am210
-rwxr-xr-xlocale/pt/ap177
-rwxr-xr-xlocale/pt/ar177
-rwxr-xr-xlocale/pt/arap48
-rwxr-xr-xlocale/pt/arapprn28
-rwxr-xr-xlocale/pt/bp44
-rwxr-xr-xlocale/pt/ca51
-rwxr-xr-xlocale/pt/cp113
-rwxr-xr-xlocale/pt/ct133
-rwxr-xr-xlocale/pt/gl138
-rwxr-xr-xlocale/pt/hr72
-rwxr-xr-xlocale/pt/ic217
-rwxr-xr-xlocale/pt/io104
-rwxr-xr-xlocale/pt/ir192
-rwxr-xr-xlocale/pt/is197
-rwxr-xr-xlocale/pt/jc80
-rwxr-xr-xlocale/pt/locales.pl351
-rwxr-xr-xlocale/pt/login21
-rwxr-xr-xlocale/pt/menu80
-rwxr-xr-xlocale/pt/oe237
-rwxr-xr-xlocale/pt/pe105
-rwxr-xr-xlocale/pt/pos62
-rwxr-xr-xlocale/pt/ps279
-rwxr-xr-xlocale/pt/pw12
-rwxr-xr-xlocale/pt/rc64
-rwxr-xr-xlocale/pt/rp151
-rwxr-xr-xlocale/py/COPYING27
-rwxr-xr-xlocale/py/LANGUAGE1
-rwxr-xr-xlocale/py/Num2text212
-rwxr-xr-xlocale/py/aa156
-rwxr-xr-xlocale/py/admin143
-rwxr-xr-xlocale/py/all894
-rwxr-xr-xlocale/py/am284
-rwxr-xr-xlocale/py/ap210
-rwxr-xr-xlocale/py/ar210
-rwxr-xr-xlocale/py/arap51
-rwxr-xr-xlocale/py/arapprn32
-rwxr-xr-xlocale/py/bp67
-rwxr-xr-xlocale/py/ca59
-rwxr-xr-xlocale/py/cp123
-rwxr-xr-xlocale/py/ct186
-rwxr-xr-xlocale/py/gl158
-rwxr-xr-xlocale/py/hr117
-rwxr-xr-xlocale/py/ic277
-rwxr-xr-xlocale/py/io130
-rwxr-xr-xlocale/py/ir224
-rwxr-xr-xlocale/py/is235
-rwxr-xr-xlocale/py/jc92
-rwxr-xr-xlocale/py/locales.pl351
-rwxr-xr-xlocale/py/login24
-rwxr-xr-xlocale/py/menu135
-rwxr-xr-xlocale/py/oe321
-rwxr-xr-xlocale/py/pe141
-rwxr-xr-xlocale/py/pos80
-rwxr-xr-xlocale/py/ps358
-rwxr-xr-xlocale/py/pw13
-rwxr-xr-xlocale/py/rc79
-rwxr-xr-xlocale/py/rp179
-rwxr-xr-xlocale/ru/COPYING23
-rwxr-xr-xlocale/ru/LANGUAGE1
-rwxr-xr-xlocale/ru/Num2text184
-rwxr-xr-xlocale/ru/aa158
-rwxr-xr-xlocale/ru/admin145
-rwxr-xr-xlocale/ru/all896
-rwxr-xr-xlocale/ru/am287
-rwxr-xr-xlocale/ru/ap212
-rwxr-xr-xlocale/ru/ar212
-rwxr-xr-xlocale/ru/arap53
-rwxr-xr-xlocale/ru/arapprn34
-rwxr-xr-xlocale/ru/bp69
-rwxr-xr-xlocale/ru/ca61
-rwxr-xr-xlocale/ru/cp125
-rwxr-xr-xlocale/ru/ct189
-rwxr-xr-xlocale/ru/gl161
-rwxr-xr-xlocale/ru/hr119
-rwxr-xr-xlocale/ru/ic279
-rwxr-xr-xlocale/ru/io132
-rwxr-xr-xlocale/ru/ir226
-rwxr-xr-xlocale/ru/is237
-rwxr-xr-xlocale/ru/jc95
-rwxr-xr-xlocale/ru/locales.pl351
-rwxr-xr-xlocale/ru/login26
-rwxr-xr-xlocale/ru/menu137
-rwxr-xr-xlocale/ru/oe324
-rwxr-xr-xlocale/ru/pe144
-rwxr-xr-xlocale/ru/pos82
-rwxr-xr-xlocale/ru/ps360
-rwxr-xr-xlocale/ru/pw15
-rwxr-xr-xlocale/ru/rc81
-rwxr-xr-xlocale/ru/rp181
-rwxr-xr-xlocale/ru_utf/COPYING25
-rwxr-xr-xlocale/ru_utf/LANGUAGE1
-rwxr-xr-xlocale/ru_utf/Num2text184
-rwxr-xr-xlocale/ru_utf/aa163
-rwxr-xr-xlocale/ru_utf/admin146
-rwxr-xr-xlocale/ru_utf/all908
-rwxr-xr-xlocale/ru_utf/am314
-rwxr-xr-xlocale/ru_utf/ap242
-rwxr-xr-xlocale/ru_utf/ar242
-rwxr-xr-xlocale/ru_utf/arap76
-rwxr-xr-xlocale/ru_utf/arapprn36
-rwxr-xr-xlocale/ru_utf/bp71
-rwxr-xr-xlocale/ru_utf/ca62
-rwxr-xr-xlocale/ru_utf/cp150
-rwxr-xr-xlocale/ru_utf/ct191
-rwxr-xr-xlocale/ru_utf/gl187
-rwxr-xr-xlocale/ru_utf/hr122
-rwxr-xr-xlocale/ru_utf/ic295
-rwxr-xr-xlocale/ru_utf/io136
-rwxr-xr-xlocale/ru_utf/ir256
-rwxr-xr-xlocale/ru_utf/is270
-rwxr-xr-xlocale/ru_utf/jc153
-rwxr-xr-xlocale/ru_utf/locales.pl351
-rwxr-xr-xlocale/ru_utf/login27
-rwxr-xr-xlocale/ru_utf/menu142
-rwxr-xr-xlocale/ru_utf/oe373
-rwxr-xr-xlocale/ru_utf/pe168
-rwxr-xr-xlocale/ru_utf/pos83
-rwxr-xr-xlocale/ru_utf/ps393
-rwxr-xr-xlocale/ru_utf/pw15
-rwxr-xr-xlocale/ru_utf/rc81
-rwxr-xr-xlocale/ru_utf/rp204
-rwxr-xr-xlocale/se/COPYING25
-rwxr-xr-xlocale/se/LANGUAGE1
-rwxr-xr-xlocale/se/aa161
-rwxr-xr-xlocale/se/admin144
-rwxr-xr-xlocale/se/all949
-rwxr-xr-xlocale/se/am312
-rwxr-xr-xlocale/se/ap240
-rwxr-xr-xlocale/se/ar240
-rwxr-xr-xlocale/se/arap74
-rwxr-xr-xlocale/se/arapprn34
-rwxr-xr-xlocale/se/bp69
-rwxr-xr-xlocale/se/ca60
-rwxr-xr-xlocale/se/cp149
-rwxr-xr-xlocale/se/ct190
-rwxr-xr-xlocale/se/gl185
-rwxr-xr-xlocale/se/hr120
-rwxr-xr-xlocale/se/ic295
-rwxr-xr-xlocale/se/io136
-rwxr-xr-xlocale/se/ir256
-rwxr-xr-xlocale/se/is270
-rwxr-xr-xlocale/se/jc153
-rwxr-xr-xlocale/se/locales.pl351
-rwxr-xr-xlocale/se/login25
-rwxr-xr-xlocale/se/menu141
-rwxr-xr-xlocale/se/oe373
-rwxr-xr-xlocale/se/pe166
-rwxr-xr-xlocale/se/pos81
-rwxr-xr-xlocale/se/ps396
-rwxr-xr-xlocale/se/pw13
-rwxr-xr-xlocale/se/rc79
-rwxr-xr-xlocale/se/rp205
-rwxr-xr-xlocale/sv/COPYING23
-rwxr-xr-xlocale/sv/LANGUAGE1
-rwxr-xr-xlocale/sv/Num2text212
-rwxr-xr-xlocale/sv/aa137
-rwxr-xr-xlocale/sv/admin136
-rwxr-xr-xlocale/sv/all896
-rwxr-xr-xlocale/sv/am212
-rwxr-xr-xlocale/sv/ap183
-rwxr-xr-xlocale/sv/ar183
-rwxr-xr-xlocale/sv/arap46
-rwxr-xr-xlocale/sv/arapprn28
-rwxr-xr-xlocale/sv/bp47
-rwxr-xr-xlocale/sv/ca54
-rwxr-xr-xlocale/sv/cp110
-rwxr-xr-xlocale/sv/ct144
-rwxr-xr-xlocale/sv/gl142
-rwxr-xr-xlocale/sv/hr73
-rwxr-xr-xlocale/sv/ic229
-rwxr-xr-xlocale/sv/io106
-rwxr-xr-xlocale/sv/ir191
-rwxr-xr-xlocale/sv/is198
-rwxr-xr-xlocale/sv/jc82
-rwxr-xr-xlocale/sv/locales.pl351
-rwxr-xr-xlocale/sv/login23
-rwxr-xr-xlocale/sv/menu91
-rwxr-xr-xlocale/sv/oe244
-rwxr-xr-xlocale/sv/pe117
-rwxr-xr-xlocale/sv/pos68
-rwxr-xr-xlocale/sv/ps297
-rwxr-xr-xlocale/sv/pw12
-rwxr-xr-xlocale/sv/rc73
-rwxr-xr-xlocale/sv/rp160
-rwxr-xr-xlocale/tr/COPYING23
-rwxr-xr-xlocale/tr/LANGUAGE1
-rwxr-xr-xlocale/tr/aa96
-rwxr-xr-xlocale/tr/admin133
-rwxr-xr-xlocale/tr/all892
-rwxr-xr-xlocale/tr/am176
-rwxr-xr-xlocale/tr/ap130
-rwxr-xr-xlocale/tr/ar130
-rwxr-xr-xlocale/tr/arap39
-rwxr-xr-xlocale/tr/arapprn26
-rwxr-xr-xlocale/tr/bp40
-rwxr-xr-xlocale/tr/ca50
-rwxr-xr-xlocale/tr/cp84
-rwxr-xr-xlocale/tr/ct103
-rwxr-xr-xlocale/tr/gl108
-rwxr-xr-xlocale/tr/hr65
-rwxr-xr-xlocale/tr/ic175
-rwxr-xr-xlocale/tr/io88
-rwxr-xr-xlocale/tr/ir152
-rwxr-xr-xlocale/tr/is153
-rwxr-xr-xlocale/tr/jc66
-rwxr-xr-xlocale/tr/locales.pl351
-rwxr-xr-xlocale/tr/login22
-rwxr-xr-xlocale/tr/menu55
-rwxr-xr-xlocale/tr/oe184
-rwxr-xr-xlocale/tr/pe88
-rwxr-xr-xlocale/tr/pos51
-rwxr-xr-xlocale/tr/ps203
-rwxr-xr-xlocale/tr/pw14
-rwxr-xr-xlocale/tr/rc57
-rwxr-xr-xlocale/tr/rp117
-rwxr-xr-xlocale/tw_big5/COPYING25
-rwxr-xr-xlocale/tw_big5/LANGUAGE1
-rwxr-xr-xlocale/tw_big5/aa163
-rwxr-xr-xlocale/tw_big5/admin145
-rwxr-xr-xlocale/tw_big5/all892
-rwxr-xr-xlocale/tw_big5/am310
-rwxr-xr-xlocale/tw_big5/ap242
-rwxr-xr-xlocale/tw_big5/ar242
-rwxr-xr-xlocale/tw_big5/arap76
-rwxr-xr-xlocale/tw_big5/arapprn36
-rwxr-xr-xlocale/tw_big5/bp70
-rwxr-xr-xlocale/tw_big5/ca61
-rwxr-xr-xlocale/tw_big5/cp150
-rwxr-xr-xlocale/tw_big5/ct191
-rwxr-xr-xlocale/tw_big5/gl186
-rwxr-xr-xlocale/tw_big5/hr120
-rwxr-xr-xlocale/tw_big5/ic294
-rwxr-xr-xlocale/tw_big5/io136
-rwxr-xr-xlocale/tw_big5/ir256
-rwxr-xr-xlocale/tw_big5/is270
-rwxr-xr-xlocale/tw_big5/jc124
-rwxr-xr-xlocale/tw_big5/locales.pl351
-rwxr-xr-xlocale/tw_big5/login27
-rwxr-xr-xlocale/tw_big5/menu139
-rwxr-xr-xlocale/tw_big5/oe371
-rwxr-xr-xlocale/tw_big5/pe166
-rwxr-xr-xlocale/tw_big5/pos83
-rwxr-xr-xlocale/tw_big5/ps393
-rwxr-xr-xlocale/tw_big5/pw15
-rwxr-xr-xlocale/tw_big5/rc80
-rwxr-xr-xlocale/tw_big5/rp204
-rwxr-xr-xlocale/tw_big5/temp7
-rwxr-xr-xlocale/tw_utf/COPYING25
-rwxr-xr-xlocale/tw_utf/LANGUAGE1
-rwxr-xr-xlocale/tw_utf/aa163
-rwxr-xr-xlocale/tw_utf/admin145
-rwxr-xr-xlocale/tw_utf/all892
-rwxr-xr-xlocale/tw_utf/am310
-rwxr-xr-xlocale/tw_utf/ap242
-rwxr-xr-xlocale/tw_utf/ar242
-rwxr-xr-xlocale/tw_utf/arap76
-rwxr-xr-xlocale/tw_utf/arapprn36
-rwxr-xr-xlocale/tw_utf/bp70
-rwxr-xr-xlocale/tw_utf/ca61
-rwxr-xr-xlocale/tw_utf/cp150
-rwxr-xr-xlocale/tw_utf/ct191
-rwxr-xr-xlocale/tw_utf/gl186
-rwxr-xr-xlocale/tw_utf/hr120
-rwxr-xr-xlocale/tw_utf/ic294
-rwxr-xr-xlocale/tw_utf/io136
-rwxr-xr-xlocale/tw_utf/ir256
-rwxr-xr-xlocale/tw_utf/is270
-rwxr-xr-xlocale/tw_utf/jc124
-rwxr-xr-xlocale/tw_utf/locales.pl351
-rwxr-xr-xlocale/tw_utf/login27
-rwxr-xr-xlocale/tw_utf/menu139
-rwxr-xr-xlocale/tw_utf/oe371
-rwxr-xr-xlocale/tw_utf/op149
-rwxr-xr-xlocale/tw_utf/pe166
-rwxr-xr-xlocale/tw_utf/pos83
-rwxr-xr-xlocale/tw_utf/ps393
-rwxr-xr-xlocale/tw_utf/pw15
-rwxr-xr-xlocale/tw_utf/rc80
-rwxr-xr-xlocale/tw_utf/rp204
-rwxr-xr-xlocale/ua/COPYING23
-rwxr-xr-xlocale/ua/LANGUAGE1
-rwxr-xr-xlocale/ua/aa133
-rwxr-xr-xlocale/ua/admin136
-rwxr-xr-xlocale/ua/all892
-rwxr-xr-xlocale/ua/am213
-rwxr-xr-xlocale/ua/ap181
-rwxr-xr-xlocale/ua/ar181
-rwxr-xr-xlocale/ua/arap50
-rwxr-xr-xlocale/ua/arapprn30
-rwxr-xr-xlocale/ua/bp47
-rwxr-xr-xlocale/ua/ca54
-rwxr-xr-xlocale/ua/cp115
-rwxr-xr-xlocale/ua/ct138
-rwxr-xr-xlocale/ua/gl141
-rwxr-xr-xlocale/ua/hr74
-rwxr-xr-xlocale/ua/ic224
-rwxr-xr-xlocale/ua/io107
-rwxr-xr-xlocale/ua/ir195
-rwxr-xr-xlocale/ua/is200
-rwxr-xr-xlocale/ua/jc83
-rwxr-xr-xlocale/ua/locales.pl351
-rwxr-xr-xlocale/ua/login23
-rwxr-xr-xlocale/ua/menu83
-rwxr-xr-xlocale/ua/oe244
-rwxr-xr-xlocale/ua/pe108
-rwxr-xr-xlocale/ua/pos66
-rwxr-xr-xlocale/ua/ps289
-rwxr-xr-xlocale/ua/pw14
-rwxr-xr-xlocale/ua/rc69
-rwxr-xr-xlocale/ua/rp159
-rwxr-xr-xlocale/ua_utf/COPYING23
-rwxr-xr-xlocale/ua_utf/LANGUAGE1
-rwxr-xr-xlocale/ua_utf/aa161
-rwxr-xr-xlocale/ua_utf/admin145
-rwxr-xr-xlocale/ua_utf/all767
-rwxr-xr-xlocale/ua_utf/am300
-rwxr-xr-xlocale/ua_utf/ap235
-rwxr-xr-xlocale/ua_utf/ar235
-rwxr-xr-xlocale/ua_utf/arap72
-rwxr-xr-xlocale/ua_utf/arapprn35
-rwxr-xr-xlocale/ua_utf/bp67
-rwxr-xr-xlocale/ua_utf/ca61
-rwxr-xr-xlocale/ua_utf/cp144
-rwxr-xr-xlocale/ua_utf/ct184
-rwxr-xr-xlocale/ua_utf/gl181
-rwxr-xr-xlocale/ua_utf/hr116
-rwxr-xr-xlocale/ua_utf/ic278
-rwxr-xr-xlocale/ua_utf/io135
-rwxr-xr-xlocale/ua_utf/ir251
-rwxr-xr-xlocale/ua_utf/is262
-rwxr-xr-xlocale/ua_utf/jc94
-rwxr-xr-xlocale/ua_utf/locales.pl351
-rwxr-xr-xlocale/ua_utf/login26
-rwxr-xr-xlocale/ua_utf/menu137
-rwxr-xr-xlocale/ua_utf/oe356
-rwxr-xr-xlocale/ua_utf/op147
-rwxr-xr-xlocale/ua_utf/pe141
-rwxr-xr-xlocale/ua_utf/pos80
-rwxr-xr-xlocale/ua_utf/ps380
-rwxr-xr-xlocale/ua_utf/pw15
-rwxr-xr-xlocale/ua_utf/rc80
-rwxr-xr-xlocale/ua_utf/rp197
-rwxr-xr-xlocale/ve/COPYING23
-rwxr-xr-xlocale/ve/LANGUAGE1
-rwxr-xr-xlocale/ve/Num2text212
-rwxr-xr-xlocale/ve/aa161
-rwxr-xr-xlocale/ve/admin144
-rwxr-xr-xlocale/ve/all896
-rwxr-xr-xlocale/ve/am311
-rwxr-xr-xlocale/ve/ap240
-rwxr-xr-xlocale/ve/ar240
-rwxr-xr-xlocale/ve/arap74
-rwxr-xr-xlocale/ve/arapprn34
-rwxr-xr-xlocale/ve/bp68
-rwxr-xr-xlocale/ve/ca60
-rwxr-xr-xlocale/ve/cp148
-rwxr-xr-xlocale/ve/ct189
-rwxr-xr-xlocale/ve/gl185
-rwxr-xr-xlocale/ve/hr119
-rwxr-xr-xlocale/ve/ic293
-rwxr-xr-xlocale/ve/io134
-rwxr-xr-xlocale/ve/ir254
-rwxr-xr-xlocale/ve/is268
-rwxr-xr-xlocale/ve/jc122
-rwxr-xr-xlocale/ve/locales.pl351
-rwxr-xr-xlocale/ve/login25
-rwxr-xr-xlocale/ve/menu137
-rwxr-xr-xlocale/ve/oe372
-rwxr-xr-xlocale/ve/pe164
-rwxr-xr-xlocale/ve/pos81
-rwxr-xr-xlocale/ve/ps391
-rwxr-xr-xlocale/ve/pw13
-rwxr-xr-xlocale/ve/rc79
-rwxr-xr-xlocale/ve/rp202
-rwxr-xr-xlogin.pl132
-rw-r--r--menu.ini908
-rwxr-xr-xmenu.pl180
-rwxr-xr-xoe.pl2
-rwxr-xr-xpe.pl2
-rwxr-xr-xps.pl2
-rwxr-xr-xrc.pl2
-rwxr-xr-xrp.pl2
-rwxr-xr-xsetup.pl548
-rwxr-xr-xsql/Australia_General_0000-chart.sql113
-rwxr-xr-xsql/Australia_General_00000-chart.sql79
-rwxr-xr-xsql/Austria-chart.sql143
-rwxr-xr-xsql/Austria-gifi.sql334
-rwxr-xr-xsql/Bahasa-Indonesia_Default-chart.sql73
-rwxr-xr-xsql/Belgium-chart.sql434
-rwxr-xr-xsql/Belgium-gifi.sql68
-rwxr-xr-xsql/Brazil_General-chart.sql70
-rwxr-xr-xsql/Canada-English-gifi.sql759
-rwxr-xr-xsql/Canada-English_General-chart.sql70
-rwxr-xr-xsql/Canada-French-gifi.sql719
-rwxr-xr-xsql/Canada-French_General-chart.sql78
-rwxr-xr-xsql/Colombia-PUC-chart.sql773
-rwxr-xr-xsql/Colombia-PUC-gifi.sql2473
-rwxr-xr-xsql/Colombia-utf8-PUC-chart.sql773
-rwxr-xr-xsql/Colombia-utf8-PUC-gifi.sql2473
-rwxr-xr-xsql/Czech-Republic-chart.sql317
-rwxr-xr-xsql/DB2-create.sql8
-rwxr-xr-xsql/DB2-indices.sql57
-rwxr-xr-xsql/DB2-remove.sql47
-rwxr-xr-xsql/DB2-set.sql4
-rwxr-xr-xsql/DB2-sql-ledger.order5
-rwxr-xr-xsql/DB2-tables.sql511
-rwxr-xr-xsql/Danish_Default-chart.sql75
-rwxr-xr-xsql/Default-chart.sql77
-rwxr-xr-xsql/Dutch_Default-chart.sql80
-rwxr-xr-xsql/Dutch_Standard-chart.sql233
-rwxr-xr-xsql/Egypt-UTF8-chart.sql80
-rwxr-xr-xsql/France-chart.sql951
-rwxr-xr-xsql/German-Sample-chart.sql216
-rwxr-xr-xsql/German-Sample-gifi.sql19
-rwxr-xr-xsql/Germany-DATEV-SKR03-chart.sql227
-rwxr-xr-xsql/Germany-DATEV-SKR03-gifi.sql550
-rwxr-xr-xsql/Germany-SKR03-chart.sql264
-rwxr-xr-xsql/Germany-SKR03-gifi.sql1083
-rwxr-xr-xsql/Hungary-chart.sql48
-rwxr-xr-xsql/Hungary-gifi.sql25
-rwxr-xr-xsql/Italy-gifi.sql140
-rwxr-xr-xsql/Italy_General-chart.sql179
-rwxr-xr-xsql/Italy_cc2424-chart.sql269
-rwxr-xr-xsql/Latvia-chart.sql253
-rwxr-xr-xsql/NAICS.sql2345
-rwxr-xr-xsql/Norwegian_Default-chart.sql297
-rwxr-xr-xsql/Oracle-indices.sql65
-rwxr-xr-xsql/Oracle-tables.sql424
-rwxr-xr-xsql/Oracle-upgrade-1.8.0-1.8.4.sql28
-rwxr-xr-xsql/Oracle-upgrade-1.8.4-1.8.5.sql77
-rwxr-xr-xsql/Oracle-upgrade-1.8.5-2.0.0.sql100
-rwxr-xr-xsql/Oracle-upgrade-2.0.0-2.0.8.sql19
-rwxr-xr-xsql/Oracle-upgrade-2.0.8-2.2.0.sql9
-rwxr-xr-xsql/Paraguay-chart.sql253
-rwxr-xr-xsql/Paraguay-gifi.sql108
-rwxr-xr-xsql/Pg-functions.sql254
-rwxr-xr-xsql/Pg-indices.sql100
-rwxr-xr-xsql/Pg-tables.sql550
-rwxr-xr-xsql/Pg-upgrade-1.2.6-1.2.7.sql4
-rwxr-xr-xsql/Pg-upgrade-1.2.7-1.4.0.sql173
-rwxr-xr-xsql/Pg-upgrade-1.4.0-1.6.0.sql126
-rwxr-xr-xsql/Pg-upgrade-1.6.0-1.8.0.sql104
-rwxr-xr-xsql/Pg-upgrade-1.8.0-1.8.4.sql21
-rwxr-xr-xsql/Pg-upgrade-1.8.4-1.8.5.sql63
-rwxr-xr-xsql/Pg-upgrade-1.8.5-2.0.0.sql92
-rwxr-xr-xsql/Pg-upgrade-2.0.0-2.0.8.sql12
-rwxr-xr-xsql/Pg-upgrade-2.0.8-2.2.0.sql9
-rwxr-xr-xsql/Pg-upgrade-2.2.0-2.3.0.sql59
-rwxr-xr-xsql/Pg-upgrade-2.3.0-2.3.1.sql388
-rwxr-xr-xsql/Pg-upgrade-2.3.1-2.3.3.sql9
-rwxr-xr-xsql/Pg-upgrade-2.3.3-2.3.4.sql6
-rwxr-xr-xsql/Pg-upgrade-2.3.4-2.3.5.sql142
-rwxr-xr-xsql/Pg-upgrade-2.3.5-2.3.6.sql15
-rwxr-xr-xsql/Pg-upgrade-2.3.6-2.3.7.sql6
-rwxr-xr-xsql/Pg-upgrade-2.3.7-2.3.8.sql16
-rwxr-xr-xsql/Pg-upgrade-2.3.8-2.3.9.sql15
-rwxr-xr-xsql/Pg-upgrade-2.3.9-2.4.2.sql34
-rwxr-xr-xsql/Pg-upgrade-2.4.2-2.4.3.sql17
-rwxr-xr-xsql/Pg-upgrade-2.4.3-2.4.4.sql5
-rwxr-xr-xsql/Pg-upgrade-2.4.4-2.5.0.sql31
-rwxr-xr-xsql/Pg-upgrade-2.5.0-2.5.2.sql136
-rwxr-xr-xsql/Pg-upgrade-2.5.2-2.6.0.sql9
-rwxr-xr-xsql/Pg-upgrade-2.6.0-2.6.1.sql5
-rwxr-xr-xsql/Pg-upgrade-2.6.1-2.6.2.sql60
-rwxr-xr-xsql/Pg-upgrade-2.6.12-2.6.16.sql11
-rwxr-xr-xsql/Pg-upgrade-2.6.2-2.6.3.sql10
-rwxr-xr-xsql/Pg-upgrade-2.6.3-2.6.4.sql6
-rwxr-xr-xsql/Pg-upgrade-2.6.4-2.6.7.sql4
-rwxr-xr-xsql/Pg-upgrade-2.6.7-2.6.12.sql4
-rwxr-xr-xsql/Poland-chart.sql337
-rwxr-xr-xsql/Simplified-Chinese_Default-UTF8-chart.sql78
-rwxr-xr-xsql/Simplified-Chinese_Default-chart.sql78
-rwxr-xr-xsql/Spain-ISO-chart.sql132
-rwxr-xr-xsql/Spain-UTF8-chart.sql133
-rwxr-xr-xsql/Sweden-chart.sql1138
-rwxr-xr-xsql/Sweden-gifi.sql99
-rwxr-xr-xsql/Sweden_Agriculture-chart.sql1301
-rwxr-xr-xsql/Sweden_Church_Society-chart.sql231
-rwxr-xr-xsql/Swiss-German-chart.sql160
-rwxr-xr-xsql/Swiss-German-gifi.sql55
-rwxr-xr-xsql/Traditional-Chinese_Default-UTF8-chart.sql78
-rwxr-xr-xsql/Traditional-Chinese_Default-chart.sql78
-rwxr-xr-xsql/UCOA-Form990-chart.sql229
-rwxr-xr-xsql/UCOA-Form990-gifi.sql84
-rwxr-xr-xsql/UCOA-Form990EZ-chart.sql229
-rwxr-xr-xsql/UCOA-Form990EZ-gifi.sql22
-rwxr-xr-xsql/UK_General-chart.sql109
-rwxr-xr-xsql/US_General-chart.sql90
-rwxr-xr-xsql/US_Manufacturing-chart.sql82
-rwxr-xr-xsql/US_Service_Company-chart.sql68
-rwxr-xr-xsql/Venezuela_Default-chart.sql87
-rw-r--r--templates/.foo.sh.swpbin0 -> 12288 bytes
-rwxr-xr-xtemplates/Brazilian_Portuguese-ap_transaction.html229
-rwxr-xr-xtemplates/Brazilian_Portuguese-ap_transaction.tex113
-rwxr-xr-xtemplates/Brazilian_Portuguese-ar_transaction.html237
-rwxr-xr-xtemplates/Brazilian_Portuguese-ar_transaction.tex119
-rwxr-xr-xtemplates/Brazilian_Portuguese-balance_sheet.html104
-rwxr-xr-xtemplates/Brazilian_Portuguese-bin_list.html189
-rwxr-xr-xtemplates/Brazilian_Portuguese-bin_list.tex135
-rwxr-xr-xtemplates/Brazilian_Portuguese-check.tex65
-rwxr-xr-xtemplates/Brazilian_Portuguese-income_statement.html82
-rwxr-xr-xtemplates/Brazilian_Portuguese-invoice.html337
-rwxr-xr-xtemplates/Brazilian_Portuguese-invoice.tex217
-rwxr-xr-xtemplates/Brazilian_Portuguese-logo.eps1334
-rwxr-xr-xtemplates/Brazilian_Portuguese-logo.pngbin0 -> 12716 bytes
-rwxr-xr-xtemplates/Brazilian_Portuguese-packing_list.html137
-rwxr-xr-xtemplates/Brazilian_Portuguese-packing_list.tex108
-rwxr-xr-xtemplates/Brazilian_Portuguese-pick_list.html153
-rwxr-xr-xtemplates/Brazilian_Portuguese-pick_list.tex143
-rwxr-xr-xtemplates/Brazilian_Portuguese-pos_invoice.txt51
-rwxr-xr-xtemplates/Brazilian_Portuguese-purchase_order.html252
-rwxr-xr-xtemplates/Brazilian_Portuguese-purchase_order.tex200
-rwxr-xr-xtemplates/Brazilian_Portuguese-receipt.tex75
-rwxr-xr-xtemplates/Brazilian_Portuguese-request_quotation.html202
-rwxr-xr-xtemplates/Brazilian_Portuguese-request_quotation.tex175
-rwxr-xr-xtemplates/Brazilian_Portuguese-sales_order.html246
-rwxr-xr-xtemplates/Brazilian_Portuguese-sales_order.tex144
-rwxr-xr-xtemplates/Brazilian_Portuguese-sales_quotation.html225
-rwxr-xr-xtemplates/Brazilian_Portuguese-sales_quotation.tex157
-rwxr-xr-xtemplates/Brazilian_Portuguese-statement.html135
-rwxr-xr-xtemplates/Brazilian_Portuguese-statement.tex110
-rwxr-xr-xtemplates/Brazilian_Portuguese-timecard.html146
-rwxr-xr-xtemplates/Brazilian_Portuguese-timecard.tex71
-rwxr-xr-xtemplates/Brazilian_Portuguese-work_order.html177
-rwxr-xr-xtemplates/Brazilian_Portuguese-work_order.tex177
-rwxr-xr-xtemplates/Danish-ap_transaction.html229
-rwxr-xr-xtemplates/Danish-ap_transaction.tex125
-rwxr-xr-xtemplates/Danish-ar_transaction.html237
-rwxr-xr-xtemplates/Danish-ar_transaction.tex131
-rwxr-xr-xtemplates/Danish-balance_sheet.html96
-rwxr-xr-xtemplates/Danish-bin_list.html189
-rwxr-xr-xtemplates/Danish-bin_list.tex147
-rwxr-xr-xtemplates/Danish-check.tex75
-rwxr-xr-xtemplates/Danish-income_statement.html73
-rwxr-xr-xtemplates/Danish-invoice.html282
-rwxr-xr-xtemplates/Danish-invoice.tex156
-rwxr-xr-xtemplates/Danish-logo.eps1334
-rwxr-xr-xtemplates/Danish-logo.pngbin0 -> 12716 bytes
-rwxr-xr-xtemplates/Danish-packing_list.html145
-rwxr-xr-xtemplates/Danish-packing_list.tex123
-rwxr-xr-xtemplates/Danish-pick_list.html153
-rwxr-xr-xtemplates/Danish-pick_list.tex144
-rwxr-xr-xtemplates/Danish-pos_invoice.txt50
-rwxr-xr-xtemplates/Danish-purchase_order.html195
-rwxr-xr-xtemplates/Danish-purchase_order.tex147
-rwxr-xr-xtemplates/Danish-receipt.tex75
-rwxr-xr-xtemplates/Danish-request_quotation.html202
-rwxr-xr-xtemplates/Danish-request_quotation.tex175
-rwxr-xr-xtemplates/Danish-sales_order.html218
-rwxr-xr-xtemplates/Danish-sales_order.tex151
-rwxr-xr-xtemplates/Danish-sales_quotation.html225
-rwxr-xr-xtemplates/Danish-sales_quotation.tex157
-rwxr-xr-xtemplates/Danish-statement.html125
-rwxr-xr-xtemplates/Danish-statement.tex111
-rwxr-xr-xtemplates/Danish-timecard.html146
-rwxr-xr-xtemplates/Danish-timecard.tex71
-rwxr-xr-xtemplates/Danish-work_order.html174
-rwxr-xr-xtemplates/Danish-work_order.tex177
-rwxr-xr-xtemplates/Default-ap_transaction.html228
-rwxr-xr-xtemplates/Default-ap_transaction.tex111
-rwxr-xr-xtemplates/Default-ar_transaction.html234
-rwxr-xr-xtemplates/Default-ar_transaction.tex118
-rwxr-xr-xtemplates/Default-balance_sheet.html105
-rwxr-xr-xtemplates/Default-bin_list.html179
-rwxr-xr-xtemplates/Default-bin_list.tex114
-rwxr-xr-xtemplates/Default-check.tex77
-rwxr-xr-xtemplates/Default-income_statement.html85
-rwxr-xr-xtemplates/Default-invoice.html318
-rwxr-xr-xtemplates/Default-invoice.tex207
-rwxr-xr-xtemplates/Default-letterhead.html32
-rwxr-xr-xtemplates/Default-letterhead.tex17
-rwxr-xr-xtemplates/Default-logo.eps1334
-rwxr-xr-xtemplates/Default-logo.pngbin0 -> 12716 bytes
-rwxr-xr-xtemplates/Default-packing_list.html185
-rwxr-xr-xtemplates/Default-packing_list.tex136
-rwxr-xr-xtemplates/Default-pick_list.html139
-rwxr-xr-xtemplates/Default-pick_list.tex108
-rwxr-xr-xtemplates/Default-pos_invoice.txt45
-rwxr-xr-xtemplates/Default-purchase_order.html241
-rwxr-xr-xtemplates/Default-purchase_order.tex170
-rwxr-xr-xtemplates/Default-receipt.tex77
-rwxr-xr-xtemplates/Default-request_quotation.html179
-rwxr-xr-xtemplates/Default-request_quotation.tex151
-rwxr-xr-xtemplates/Default-sales_order.html231
-rwxr-xr-xtemplates/Default-sales_order.tex177
-rwxr-xr-xtemplates/Default-sales_quotation.html201
-rwxr-xr-xtemplates/Default-sales_quotation.tex148
-rwxr-xr-xtemplates/Default-statement.html137
-rwxr-xr-xtemplates/Default-statement.tex78
-rwxr-xr-xtemplates/Default-timecard.html124
-rwxr-xr-xtemplates/Default-timecard.tex52
-rwxr-xr-xtemplates/Default-work_order.html161
-rwxr-xr-xtemplates/Default-work_order.tex141
-rwxr-xr-xtemplates/Dutch-ap_transaction.html229
-rwxr-xr-xtemplates/Dutch-ap_transaction.tex125
-rwxr-xr-xtemplates/Dutch-ar_transaction.html237
-rwxr-xr-xtemplates/Dutch-ar_transaction.tex131
-rwxr-xr-xtemplates/Dutch-balance_sheet.html110
-rwxr-xr-xtemplates/Dutch-bin_list.html189
-rwxr-xr-xtemplates/Dutch-bin_list.tex147
-rwxr-xr-xtemplates/Dutch-check.tex75
-rwxr-xr-xtemplates/Dutch-income_statement.html81
-rwxr-xr-xtemplates/Dutch-invoice.html248
-rwxr-xr-xtemplates/Dutch-invoice.tex142
-rwxr-xr-xtemplates/Dutch-logo.eps1334
-rwxr-xr-xtemplates/Dutch-logo.pngbin0 -> 12716 bytes
-rwxr-xr-xtemplates/Dutch-packing_list.html121
-rwxr-xr-xtemplates/Dutch-packing_list.tex114
-rwxr-xr-xtemplates/Dutch-pick_list.html153
-rwxr-xr-xtemplates/Dutch-pick_list.tex144
-rwxr-xr-xtemplates/Dutch-pos_invoice.txt50
-rwxr-xr-xtemplates/Dutch-purchase_order.html190
-rwxr-xr-xtemplates/Dutch-purchase_order.tex141
-rwxr-xr-xtemplates/Dutch-receipt.tex75
-rwxr-xr-xtemplates/Dutch-request_quotation.html202
-rwxr-xr-xtemplates/Dutch-request_quotation.tex175
-rwxr-xr-xtemplates/Dutch-sales_order.html216
-rwxr-xr-xtemplates/Dutch-sales_order.tex141
-rwxr-xr-xtemplates/Dutch-sales_quotation.html225
-rwxr-xr-xtemplates/Dutch-sales_quotation.tex157
-rwxr-xr-xtemplates/Dutch-statement.html125
-rwxr-xr-xtemplates/Dutch-statement.tex111
-rwxr-xr-xtemplates/Dutch-timecard.html146
-rwxr-xr-xtemplates/Dutch-timecard.tex71
-rwxr-xr-xtemplates/Dutch-work_order.html174
-rwxr-xr-xtemplates/Dutch-work_order.tex177
-rwxr-xr-xtemplates/Estonian-ap_transaction.html232
-rwxr-xr-xtemplates/Estonian-ap_transaction.tex111
-rwxr-xr-xtemplates/Estonian-ar_transaction.html239
-rwxr-xr-xtemplates/Estonian-ar_transaction.tex118
-rwxr-xr-xtemplates/Estonian-balance_sheet.html110
-rwxr-xr-xtemplates/Estonian-bin_list.html188
-rwxr-xr-xtemplates/Estonian-bin_list.tex114
-rwxr-xr-xtemplates/Estonian-check.tex77
-rwxr-xr-xtemplates/Estonian-income_statement.html84
-rwxr-xr-xtemplates/Estonian-invoice.html328
-rwxr-xr-xtemplates/Estonian-invoice.tex207
-rwxr-xr-xtemplates/Estonian-letterhead.html32
-rwxr-xr-xtemplates/Estonian-letterhead.tex17
-rwxr-xr-xtemplates/Estonian-logo.eps1334
-rwxr-xr-xtemplates/Estonian-logo.pngbin0 -> 12716 bytes
-rwxr-xr-xtemplates/Estonian-packing_list.html192
-rwxr-xr-xtemplates/Estonian-packing_list.tex136
-rwxr-xr-xtemplates/Estonian-pick_list.html149
-rwxr-xr-xtemplates/Estonian-pick_list.tex108
-rwxr-xr-xtemplates/Estonian-pos_invoice.txt45
-rwxr-xr-xtemplates/Estonian-purchase_order.html247
-rwxr-xr-xtemplates/Estonian-purchase_order.tex170
-rwxr-xr-xtemplates/Estonian-receipt.tex77
-rwxr-xr-xtemplates/Estonian-request_quotation.html184
-rwxr-xr-xtemplates/Estonian-request_quotation.tex151
-rwxr-xr-xtemplates/Estonian-sales_order.html237
-rwxr-xr-xtemplates/Estonian-sales_order.tex177
-rwxr-xr-xtemplates/Estonian-sales_quotation.html205
-rwxr-xr-xtemplates/Estonian-sales_quotation.tex148
-rwxr-xr-xtemplates/Estonian-statement.html144
-rwxr-xr-xtemplates/Estonian-statement.tex78
-rwxr-xr-xtemplates/Estonian-timecard.html125
-rwxr-xr-xtemplates/Estonian-timecard.tex52
-rwxr-xr-xtemplates/Estonian-work_order.html164
-rwxr-xr-xtemplates/Estonian-work_order.tex141
-rwxr-xr-xtemplates/Estonian_UTF8-ap_transaction.html232
-rwxr-xr-xtemplates/Estonian_UTF8-ap_transaction.tex111
-rwxr-xr-xtemplates/Estonian_UTF8-ar_transaction.html239
-rwxr-xr-xtemplates/Estonian_UTF8-ar_transaction.tex118
-rwxr-xr-xtemplates/Estonian_UTF8-balance_sheet.html110
-rwxr-xr-xtemplates/Estonian_UTF8-bin_list.html188
-rwxr-xr-xtemplates/Estonian_UTF8-bin_list.tex114
-rwxr-xr-xtemplates/Estonian_UTF8-check.tex77
-rwxr-xr-xtemplates/Estonian_UTF8-income_statement.html84
-rwxr-xr-xtemplates/Estonian_UTF8-invoice.html328
-rwxr-xr-xtemplates/Estonian_UTF8-invoice.tex207
-rwxr-xr-xtemplates/Estonian_UTF8-letterhead.html32
-rwxr-xr-xtemplates/Estonian_UTF8-letterhead.tex17
-rwxr-xr-xtemplates/Estonian_UTF8-logo.eps1334
-rwxr-xr-xtemplates/Estonian_UTF8-logo.pngbin0 -> 12716 bytes
-rwxr-xr-xtemplates/Estonian_UTF8-packing_list.html192
-rwxr-xr-xtemplates/Estonian_UTF8-packing_list.tex136
-rwxr-xr-xtemplates/Estonian_UTF8-pick_list.html149
-rwxr-xr-xtemplates/Estonian_UTF8-pick_list.tex108
-rwxr-xr-xtemplates/Estonian_UTF8-pos_invoice.txt45
-rwxr-xr-xtemplates/Estonian_UTF8-purchase_order.html247
-rwxr-xr-xtemplates/Estonian_UTF8-purchase_order.tex170
-rwxr-xr-xtemplates/Estonian_UTF8-receipt.tex77
-rwxr-xr-xtemplates/Estonian_UTF8-request_quotation.html184
-rwxr-xr-xtemplates/Estonian_UTF8-request_quotation.tex151
-rwxr-xr-xtemplates/Estonian_UTF8-sales_order.html237
-rwxr-xr-xtemplates/Estonian_UTF8-sales_order.tex177
-rwxr-xr-xtemplates/Estonian_UTF8-sales_quotation.html205
-rwxr-xr-xtemplates/Estonian_UTF8-sales_quotation.tex148
-rwxr-xr-xtemplates/Estonian_UTF8-statement.html144
-rwxr-xr-xtemplates/Estonian_UTF8-statement.tex78
-rwxr-xr-xtemplates/Estonian_UTF8-timecard.html125
-rwxr-xr-xtemplates/Estonian_UTF8-timecard.tex52
-rwxr-xr-xtemplates/Estonian_UTF8-work_order.html164
-rwxr-xr-xtemplates/Estonian_UTF8-work_order.tex141
-rwxr-xr-xtemplates/French-ap_transaction.html229
-rwxr-xr-xtemplates/French-ap_transaction.tex125
-rwxr-xr-xtemplates/French-ar_transaction.html237
-rwxr-xr-xtemplates/French-ar_transaction.tex131
-rwxr-xr-xtemplates/French-balance_sheet.html109
-rwxr-xr-xtemplates/French-bin_list.html189
-rwxr-xr-xtemplates/French-bin_list.tex147
-rwxr-xr-xtemplates/French-check.tex75
-rwxr-xr-xtemplates/French-income_statement.html86
-rwxr-xr-xtemplates/French-invoice.html318
-rwxr-xr-xtemplates/French-invoice.tex155
-rwxr-xr-xtemplates/French-logo.eps1334
-rwxr-xr-xtemplates/French-logo.pngbin0 -> 12716 bytes
-rwxr-xr-xtemplates/French-packing_list.html152
-rwxr-xr-xtemplates/French-packing_list.tex125
-rwxr-xr-xtemplates/French-pick_list.html153
-rwxr-xr-xtemplates/French-pick_list.tex144
-rwxr-xr-xtemplates/French-pos_invoice.txt50
-rwxr-xr-xtemplates/French-purchase_order.html211
-rwxr-xr-xtemplates/French-purchase_order.tex147
-rwxr-xr-xtemplates/French-receipt.tex75
-rwxr-xr-xtemplates/French-request_quotation.html202
-rwxr-xr-xtemplates/French-request_quotation.tex175
-rwxr-xr-xtemplates/French-sales_order.html237
-rwxr-xr-xtemplates/French-sales_order.tex151
-rwxr-xr-xtemplates/French-sales_quotation.html225
-rwxr-xr-xtemplates/French-sales_quotation.tex157
-rwxr-xr-xtemplates/French-statement.html137
-rwxr-xr-xtemplates/French-statement.tex111
-rwxr-xr-xtemplates/French-timecard.html146
-rwxr-xr-xtemplates/French-timecard.tex71
-rwxr-xr-xtemplates/French-work_order.html174
-rwxr-xr-xtemplates/French-work_order.tex177
-rwxr-xr-xtemplates/German-ap_transaction.html229
-rwxr-xr-xtemplates/German-ap_transaction.tex125
-rwxr-xr-xtemplates/German-ar_transaction.html237
-rwxr-xr-xtemplates/German-ar_transaction.tex131
-rwxr-xr-xtemplates/German-balance_sheet.html100
-rwxr-xr-xtemplates/German-bin_list.html189
-rwxr-xr-xtemplates/German-bin_list.tex147
-rwxr-xr-xtemplates/German-check.tex75
-rwxr-xr-xtemplates/German-income_statement.html78
-rwxr-xr-xtemplates/German-invoice.html274
-rwxr-xr-xtemplates/German-invoice.tex159
-rwxr-xr-xtemplates/German-logo.eps1334
-rwxr-xr-xtemplates/German-logo.pngbin0 -> 12716 bytes
-rwxr-xr-xtemplates/German-packing_list.html146
-rwxr-xr-xtemplates/German-packing_list.tex118
-rwxr-xr-xtemplates/German-pick_list.html153
-rwxr-xr-xtemplates/German-pick_list.tex144
-rwxr-xr-xtemplates/German-pos_invoice.txt50
-rwxr-xr-xtemplates/German-purchase_order.html192
-rwxr-xr-xtemplates/German-purchase_order.tex147
-rwxr-xr-xtemplates/German-receipt.tex75
-rwxr-xr-xtemplates/German-request_quotation.html202
-rwxr-xr-xtemplates/German-request_quotation.tex175
-rwxr-xr-xtemplates/German-sales_order.html221
-rwxr-xr-xtemplates/German-sales_order.tex149
-rwxr-xr-xtemplates/German-sales_quotation.html225
-rwxr-xr-xtemplates/German-sales_quotation.tex157
-rwxr-xr-xtemplates/German-statement.html125
-rwxr-xr-xtemplates/German-statement.tex111
-rwxr-xr-xtemplates/German-timecard.html146
-rwxr-xr-xtemplates/German-timecard.tex71
-rwxr-xr-xtemplates/German-work_order.html174
-rwxr-xr-xtemplates/German-work_order.tex177
-rwxr-xr-xtemplates/Hungarian-ap_transaction.html229
-rwxr-xr-xtemplates/Hungarian-ap_transaction.tex125
-rwxr-xr-xtemplates/Hungarian-ar_transaction.html237
-rwxr-xr-xtemplates/Hungarian-ar_transaction.tex131
-rwxr-xr-xtemplates/Hungarian-balance_sheet.html100
-rwxr-xr-xtemplates/Hungarian-bin_list.html189
-rwxr-xr-xtemplates/Hungarian-bin_list.tex147
-rwxr-xr-xtemplates/Hungarian-check.tex81
-rwxr-xr-xtemplates/Hungarian-income_statement.html82
-rwxr-xr-xtemplates/Hungarian-invoice.html303
-rwxr-xr-xtemplates/Hungarian-invoice.tex280
-rwxr-xr-xtemplates/Hungarian-logo.eps1334
-rwxr-xr-xtemplates/Hungarian-logo.pngbin0 -> 12716 bytes
-rwxr-xr-xtemplates/Hungarian-packing_list.html148
-rwxr-xr-xtemplates/Hungarian-packing_list.tex122
-rwxr-xr-xtemplates/Hungarian-pick_list.html153
-rwxr-xr-xtemplates/Hungarian-pick_list.tex143
-rwxr-xr-xtemplates/Hungarian-pos_invoice.txt48
-rwxr-xr-xtemplates/Hungarian-purchase_order.html230
-rwxr-xr-xtemplates/Hungarian-purchase_order.tex206
-rwxr-xr-xtemplates/Hungarian-receipt.tex78
-rwxr-xr-xtemplates/Hungarian-request_quotation.html202
-rwxr-xr-xtemplates/Hungarian-request_quotation.tex175
-rwxr-xr-xtemplates/Hungarian-sales_order.html221
-rwxr-xr-xtemplates/Hungarian-sales_order.tex147
-rwxr-xr-xtemplates/Hungarian-sales_quotation.html225
-rwxr-xr-xtemplates/Hungarian-sales_quotation.tex157
-rwxr-xr-xtemplates/Hungarian-statement.html125
-rwxr-xr-xtemplates/Hungarian-statement.tex141
-rwxr-xr-xtemplates/Hungarian-timecard.html146
-rwxr-xr-xtemplates/Hungarian-timecard.tex71
-rwxr-xr-xtemplates/Hungarian-work_order.html174
-rwxr-xr-xtemplates/Hungarian-work_order.tex177
-rwxr-xr-xtemplates/Italian-ap_transaction.html229
-rwxr-xr-xtemplates/Italian-ap_transaction.tex125
-rwxr-xr-xtemplates/Italian-ar_transaction.html237
-rwxr-xr-xtemplates/Italian-ar_transaction.tex131
-rwxr-xr-xtemplates/Italian-balance_sheet.html103
-rwxr-xr-xtemplates/Italian-bin_list.html189
-rwxr-xr-xtemplates/Italian-bin_list.tex147
-rwxr-xr-xtemplates/Italian-check.tex81
-rwxr-xr-xtemplates/Italian-income_statement.html78
-rwxr-xr-xtemplates/Italian-invoice.html209
-rwxr-xr-xtemplates/Italian-invoice.tex236
-rwxr-xr-xtemplates/Italian-logo.eps1334
-rwxr-xr-xtemplates/Italian-logo.pngbin0 -> 12716 bytes
-rwxr-xr-xtemplates/Italian-packing_list.html126
-rwxr-xr-xtemplates/Italian-packing_list.tex114
-rwxr-xr-xtemplates/Italian-pick_list.html153
-rwxr-xr-xtemplates/Italian-pick_list.tex144
-rwxr-xr-xtemplates/Italian-pos_invoice.txt50
-rwxr-xr-xtemplates/Italian-purchase_order.html232
-rwxr-xr-xtemplates/Italian-purchase_order.tex206
-rwxr-xr-xtemplates/Italian-receipt.tex78
-rwxr-xr-xtemplates/Italian-request_quotation.html202
-rwxr-xr-xtemplates/Italian-request_quotation.tex175
-rwxr-xr-xtemplates/Italian-sales_order.html207
-rwxr-xr-xtemplates/Italian-sales_order.tex150
-rwxr-xr-xtemplates/Italian-sales_quotation.html225
-rwxr-xr-xtemplates/Italian-sales_quotation.tex157
-rwxr-xr-xtemplates/Italian-statement.html125
-rwxr-xr-xtemplates/Italian-statement.tex141
-rwxr-xr-xtemplates/Italian-timecard.html146
-rwxr-xr-xtemplates/Italian-timecard.tex71
-rwxr-xr-xtemplates/Italian-work_order.html174
-rwxr-xr-xtemplates/Italian-work_order.tex177
-rwxr-xr-xtemplates/Norwegian-ap_transaction.html229
-rwxr-xr-xtemplates/Norwegian-ap_transaction.tex125
-rwxr-xr-xtemplates/Norwegian-ar_transaction.html237
-rwxr-xr-xtemplates/Norwegian-ar_transaction.tex131
-rwxr-xr-xtemplates/Norwegian-balance_sheet.html100
-rwxr-xr-xtemplates/Norwegian-bin_list.html189
-rwxr-xr-xtemplates/Norwegian-bin_list.tex147
-rwxr-xr-xtemplates/Norwegian-check.tex81
-rwxr-xr-xtemplates/Norwegian-income_statement.html78
-rwxr-xr-xtemplates/Norwegian-invoice.html226
-rwxr-xr-xtemplates/Norwegian-invoice.tex237
-rwxr-xr-xtemplates/Norwegian-logo.eps1334
-rwxr-xr-xtemplates/Norwegian-logo.pngbin0 -> 12716 bytes
-rwxr-xr-xtemplates/Norwegian-packing_list.html142
-rwxr-xr-xtemplates/Norwegian-packing_list.tex123
-rwxr-xr-xtemplates/Norwegian-pick_list.html153
-rwxr-xr-xtemplates/Norwegian-pick_list.tex144
-rwxr-xr-xtemplates/Norwegian-pos_invoice.txt50
-rwxr-xr-xtemplates/Norwegian-purchase_order.html201
-rwxr-xr-xtemplates/Norwegian-purchase_order.tex206
-rwxr-xr-xtemplates/Norwegian-receipt.tex78
-rwxr-xr-xtemplates/Norwegian-request_quotation.html202
-rwxr-xr-xtemplates/Norwegian-request_quotation.tex175
-rwxr-xr-xtemplates/Norwegian-sales_order.html220
-rwxr-xr-xtemplates/Norwegian-sales_order.tex150
-rwxr-xr-xtemplates/Norwegian-sales_quotation.html225
-rwxr-xr-xtemplates/Norwegian-sales_quotation.tex157
-rwxr-xr-xtemplates/Norwegian-statement.html120
-rwxr-xr-xtemplates/Norwegian-statement.tex139
-rwxr-xr-xtemplates/Norwegian-timecard.html146
-rwxr-xr-xtemplates/Norwegian-timecard.tex71
-rwxr-xr-xtemplates/Norwegian-work_order.html174
-rwxr-xr-xtemplates/Norwegian-work_order.tex177
-rwxr-xr-xtemplates/Russian-ap_transaction.html236
-rwxr-xr-xtemplates/Russian-ap_transaction.tex125
-rwxr-xr-xtemplates/Russian-ar_transaction.html241
-rwxr-xr-xtemplates/Russian-ar_transaction.tex131
-rwxr-xr-xtemplates/Russian-balance_sheet.html101
-rwxr-xr-xtemplates/Russian-bin_list.html192
-rwxr-xr-xtemplates/Russian-bin_list.tex147
-rwxr-xr-xtemplates/Russian-check.tex78
-rwxr-xr-xtemplates/Russian-income_statement.html84
-rwxr-xr-xtemplates/Russian-invoice.html152
-rwxr-xr-xtemplates/Russian-invoice.tex235
-rwxr-xr-xtemplates/Russian-logo.eps1334
-rwxr-xr-xtemplates/Russian-logo.pngbin0 -> 12716 bytes
-rwxr-xr-xtemplates/Russian-packing_list.html153
-rwxr-xr-xtemplates/Russian-packing_list.tex161
-rwxr-xr-xtemplates/Russian-pick_list.html153
-rwxr-xr-xtemplates/Russian-pick_list.tex143
-rwxr-xr-xtemplates/Russian-pos_invoice.txt48
-rwxr-xr-xtemplates/Russian-purchase_order.html105
-rwxr-xr-xtemplates/Russian-purchase_order.tex195
-rwxr-xr-xtemplates/Russian-receipt.tex78
-rwxr-xr-xtemplates/Russian-request_quotation.html98
-rwxr-xr-xtemplates/Russian-request_quotation.tex175
-rwxr-xr-xtemplates/Russian-sales_order.html171
-rwxr-xr-xtemplates/Russian-sales_order.tex207
-rwxr-xr-xtemplates/Russian-sales_quotation.html99
-rwxr-xr-xtemplates/Russian-sales_quotation.tex157
-rwxr-xr-xtemplates/Russian-statement.html132
-rwxr-xr-xtemplates/Russian-statement.tex110
-rwxr-xr-xtemplates/Russian-timecard.html146
-rwxr-xr-xtemplates/Russian-timecard.tex71
-rwxr-xr-xtemplates/Russian-work_order.html116
-rwxr-xr-xtemplates/Russian-work_order.tex177
-rwxr-xr-xtemplates/Service-ap_transaction.html250
-rwxr-xr-xtemplates/Service-ap_transaction.tex126
-rwxr-xr-xtemplates/Service-ar_transaction.html256
-rwxr-xr-xtemplates/Service-ar_transaction.tex133
-rwxr-xr-xtemplates/Service-balance_sheet.html110
-rwxr-xr-xtemplates/Service-bin_list.html189
-rwxr-xr-xtemplates/Service-bin_list.tex147
-rwxr-xr-xtemplates/Service-check.tex75
-rwxr-xr-xtemplates/Service-income_statement.html81
-rwxr-xr-xtemplates/Service-invoice.html230
-rwxr-xr-xtemplates/Service-invoice.tex155
-rwxr-xr-xtemplates/Service-logo.eps1334
-rwxr-xr-xtemplates/Service-logo.pngbin0 -> 12716 bytes
-rwxr-xr-xtemplates/Service-packing_list.html148
-rwxr-xr-xtemplates/Service-packing_list.tex120
-rwxr-xr-xtemplates/Service-pick_list.html153
-rwxr-xr-xtemplates/Service-pick_list.tex144
-rwxr-xr-xtemplates/Service-pos_invoice.txt50
-rwxr-xr-xtemplates/Service-purchase_order.html198
-rwxr-xr-xtemplates/Service-purchase_order.tex147
-rwxr-xr-xtemplates/Service-receipt.tex78
-rwxr-xr-xtemplates/Service-request_quotation.html202
-rwxr-xr-xtemplates/Service-request_quotation.tex175
-rwxr-xr-xtemplates/Service-sales_order.html202
-rwxr-xr-xtemplates/Service-sales_order.tex146
-rwxr-xr-xtemplates/Service-sales_quotation.html225
-rwxr-xr-xtemplates/Service-sales_quotation.tex157
-rwxr-xr-xtemplates/Service-statement.html130
-rwxr-xr-xtemplates/Service-statement.tex111
-rwxr-xr-xtemplates/Service-timecard.html146
-rwxr-xr-xtemplates/Service-timecard.tex71
-rwxr-xr-xtemplates/Service-work_order.html174
-rwxr-xr-xtemplates/Service-work_order.tex177
-rwxr-xr-xtemplates/Spanish_A4-ap_transaction.html229
-rwxr-xr-xtemplates/Spanish_A4-ap_transaction.tex125
-rwxr-xr-xtemplates/Spanish_A4-ar_transaction.html237
-rwxr-xr-xtemplates/Spanish_A4-ar_transaction.tex131
-rwxr-xr-xtemplates/Spanish_A4-balance_sheet.html100
-rwxr-xr-xtemplates/Spanish_A4-bin_list.html189
-rwxr-xr-xtemplates/Spanish_A4-bin_list.tex147
-rwxr-xr-xtemplates/Spanish_A4-check.tex75
-rwxr-xr-xtemplates/Spanish_A4-income_statement.html77
-rwxr-xr-xtemplates/Spanish_A4-invoice.html153
-rwxr-xr-xtemplates/Spanish_A4-invoice.tex108
-rwxr-xr-xtemplates/Spanish_A4-logo.eps1334
-rwxr-xr-xtemplates/Spanish_A4-logo.pngbin0 -> 12716 bytes
-rwxr-xr-xtemplates/Spanish_A4-packing_list.html155
-rwxr-xr-xtemplates/Spanish_A4-packing_list.tex108
-rwxr-xr-xtemplates/Spanish_A4-pick_list.html153
-rwxr-xr-xtemplates/Spanish_A4-pick_list.tex144
-rwxr-xr-xtemplates/Spanish_A4-pos_invoice.txt50
-rwxr-xr-xtemplates/Spanish_A4-purchase_order.html153
-rwxr-xr-xtemplates/Spanish_A4-purchase_order.tex111
-rwxr-xr-xtemplates/Spanish_A4-receipt.tex75
-rwxr-xr-xtemplates/Spanish_A4-request_quotation.html202
-rwxr-xr-xtemplates/Spanish_A4-request_quotation.tex175
-rwxr-xr-xtemplates/Spanish_A4-sales_order.html153
-rwxr-xr-xtemplates/Spanish_A4-sales_order.tex107
-rwxr-xr-xtemplates/Spanish_A4-sales_quotation.html225
-rwxr-xr-xtemplates/Spanish_A4-sales_quotation.tex157
-rwxr-xr-xtemplates/Spanish_A4-statement.html125
-rwxr-xr-xtemplates/Spanish_A4-statement.tex111
-rwxr-xr-xtemplates/Spanish_A4-timecard.html146
-rwxr-xr-xtemplates/Spanish_A4-timecard.tex71
-rwxr-xr-xtemplates/Spanish_A4-work_order.html174
-rwxr-xr-xtemplates/Spanish_A4-work_order.tex177
-rwxr-xr-xtemplates/Spanish_Letter-ap_transaction.html229
-rwxr-xr-xtemplates/Spanish_Letter-ap_transaction.tex125
-rwxr-xr-xtemplates/Spanish_Letter-ar_transaction.html237
-rwxr-xr-xtemplates/Spanish_Letter-ar_transaction.tex131
-rwxr-xr-xtemplates/Spanish_Letter-balance_sheet.html100
-rwxr-xr-xtemplates/Spanish_Letter-bin_list.html189
-rwxr-xr-xtemplates/Spanish_Letter-bin_list.tex147
-rwxr-xr-xtemplates/Spanish_Letter-check.tex75
-rwxr-xr-xtemplates/Spanish_Letter-income_statement.html77
-rwxr-xr-xtemplates/Spanish_Letter-invoice.html153
-rwxr-xr-xtemplates/Spanish_Letter-invoice.tex110
-rwxr-xr-xtemplates/Spanish_Letter-logo.eps1334
-rwxr-xr-xtemplates/Spanish_Letter-logo.pngbin0 -> 12716 bytes
-rwxr-xr-xtemplates/Spanish_Letter-packing_list.html155
-rwxr-xr-xtemplates/Spanish_Letter-packing_list.tex108
-rwxr-xr-xtemplates/Spanish_Letter-pick_list.html153
-rwxr-xr-xtemplates/Spanish_Letter-pick_list.tex144
-rwxr-xr-xtemplates/Spanish_Letter-pos_invoice.txt50
-rwxr-xr-xtemplates/Spanish_Letter-purchase_order.html153
-rwxr-xr-xtemplates/Spanish_Letter-purchase_order.tex111
-rwxr-xr-xtemplates/Spanish_Letter-receipt.tex75
-rwxr-xr-xtemplates/Spanish_Letter-request_quotation.html202
-rwxr-xr-xtemplates/Spanish_Letter-request_quotation.tex175
-rwxr-xr-xtemplates/Spanish_Letter-sales_order.html153
-rwxr-xr-xtemplates/Spanish_Letter-sales_order.tex111
-rwxr-xr-xtemplates/Spanish_Letter-sales_quotation.html225
-rwxr-xr-xtemplates/Spanish_Letter-sales_quotation.tex157
-rwxr-xr-xtemplates/Spanish_Letter-statement.html125
-rwxr-xr-xtemplates/Spanish_Letter-statement.tex111
-rwxr-xr-xtemplates/Spanish_Letter-timecard.html146
-rwxr-xr-xtemplates/Spanish_Letter-timecard.tex71
-rwxr-xr-xtemplates/Spanish_Letter-work_order.html174
-rwxr-xr-xtemplates/Spanish_Letter-work_order.tex177
-rwxr-xr-xtemplates/Swedish-ap_transaction.html229
-rwxr-xr-xtemplates/Swedish-ap_transaction.tex125
-rwxr-xr-xtemplates/Swedish-ar_transaction.html237
-rwxr-xr-xtemplates/Swedish-ar_transaction.tex131
-rwxr-xr-xtemplates/Swedish-balance_sheet.html100
-rwxr-xr-xtemplates/Swedish-bin_list.html189
-rwxr-xr-xtemplates/Swedish-bin_list.tex147
-rwxr-xr-xtemplates/Swedish-check.tex81
-rwxr-xr-xtemplates/Swedish-income_statement.html78
-rwxr-xr-xtemplates/Swedish-invoice.html226
-rwxr-xr-xtemplates/Swedish-invoice.tex237
-rwxr-xr-xtemplates/Swedish-logo.eps1334
-rwxr-xr-xtemplates/Swedish-logo.pngbin0 -> 12716 bytes
-rwxr-xr-xtemplates/Swedish-packing_list.html141
-rwxr-xr-xtemplates/Swedish-packing_list.tex123
-rwxr-xr-xtemplates/Swedish-pick_list.html153
-rwxr-xr-xtemplates/Swedish-pick_list.tex144
-rwxr-xr-xtemplates/Swedish-pos_invoice.txt50
-rwxr-xr-xtemplates/Swedish-purchase_order.html201
-rwxr-xr-xtemplates/Swedish-purchase_order.tex206
-rwxr-xr-xtemplates/Swedish-receipt.tex78
-rwxr-xr-xtemplates/Swedish-request_quotation.html202
-rwxr-xr-xtemplates/Swedish-request_quotation.tex175
-rwxr-xr-xtemplates/Swedish-sales_order.html220
-rwxr-xr-xtemplates/Swedish-sales_order.tex150
-rwxr-xr-xtemplates/Swedish-sales_quotation.html225
-rwxr-xr-xtemplates/Swedish-sales_quotation.tex157
-rwxr-xr-xtemplates/Swedish-statement.html120
-rwxr-xr-xtemplates/Swedish-statement.tex139
-rwxr-xr-xtemplates/Swedish-timecard.html146
-rwxr-xr-xtemplates/Swedish-timecard.tex71
-rwxr-xr-xtemplates/Swedish-work_order.html174
-rwxr-xr-xtemplates/Swedish-work_order.tex177
-rwxr-xr-xtemplates/Traditional_Chinese_Big5-ap_transaction.html250
-rwxr-xr-xtemplates/Traditional_Chinese_Big5-ap_transaction.tex111
-rwxr-xr-xtemplates/Traditional_Chinese_Big5-ar_transaction.html256
-rwxr-xr-xtemplates/Traditional_Chinese_Big5-ar_transaction.tex118
-rwxr-xr-xtemplates/Traditional_Chinese_Big5-balance_sheet.html110
-rwxr-xr-xtemplates/Traditional_Chinese_Big5-bin_list.html189
-rwxr-xr-xtemplates/Traditional_Chinese_Big5-bin_list.tex114
-rwxr-xr-xtemplates/Traditional_Chinese_Big5-check.tex77
-rwxr-xr-xtemplates/Traditional_Chinese_Big5-income_statement.html81
-rwxr-xr-xtemplates/Traditional_Chinese_Big5-invoice.html337
-rwxr-xr-xtemplates/Traditional_Chinese_Big5-invoice.tex207
-rwxr-xr-xtemplates/Traditional_Chinese_Big5-letterhead.html32
-rwxr-xr-xtemplates/Traditional_Chinese_Big5-letterhead.tex17
-rwxr-xr-xtemplates/Traditional_Chinese_Big5-logo.eps1334
-rwxr-xr-xtemplates/Traditional_Chinese_Big5-logo.pngbin0 -> 12716 bytes
-rwxr-xr-xtemplates/Traditional_Chinese_Big5-packing_list.html194
-rwxr-xr-xtemplates/Traditional_Chinese_Big5-packing_list.tex136
-rwxr-xr-xtemplates/Traditional_Chinese_Big5-pick_list.html153
-rwxr-xr-xtemplates/Traditional_Chinese_Big5-pick_list.tex108
-rwxr-xr-xtemplates/Traditional_Chinese_Big5-pos_invoice.txt45
-rwxr-xr-xtemplates/Traditional_Chinese_Big5-purchase_order.html252
-rwxr-xr-xtemplates/Traditional_Chinese_Big5-purchase_order.tex170
-rwxr-xr-xtemplates/Traditional_Chinese_Big5-receipt.tex77
-rwxr-xr-xtemplates/Traditional_Chinese_Big5-request_quotation.html202
-rwxr-xr-xtemplates/Traditional_Chinese_Big5-request_quotation.tex151
-rwxr-xr-xtemplates/Traditional_Chinese_Big5-sales_order.html245
-rwxr-xr-xtemplates/Traditional_Chinese_Big5-sales_order.tex177
-rwxr-xr-xtemplates/Traditional_Chinese_Big5-sales_quotation.html225
-rwxr-xr-xtemplates/Traditional_Chinese_Big5-sales_quotation.tex148
-rwxr-xr-xtemplates/Traditional_Chinese_Big5-statement.html134
-rwxr-xr-xtemplates/Traditional_Chinese_Big5-statement.tex78
-rwxr-xr-xtemplates/Traditional_Chinese_Big5-timecard.html146
-rwxr-xr-xtemplates/Traditional_Chinese_Big5-timecard.tex52
-rwxr-xr-xtemplates/Traditional_Chinese_Big5-work_order.html177
-rwxr-xr-xtemplates/Traditional_Chinese_Big5-work_order.tex141
-rwxr-xr-xtemplates/Traditional_Chinese_UTF8-ap_transaction.html250
-rwxr-xr-xtemplates/Traditional_Chinese_UTF8-ap_transaction.tex111
-rwxr-xr-xtemplates/Traditional_Chinese_UTF8-ar_transaction.html256
-rwxr-xr-xtemplates/Traditional_Chinese_UTF8-ar_transaction.tex118
-rwxr-xr-xtemplates/Traditional_Chinese_UTF8-balance_sheet.html110
-rwxr-xr-xtemplates/Traditional_Chinese_UTF8-bin_list.html189
-rwxr-xr-xtemplates/Traditional_Chinese_UTF8-bin_list.tex114
-rwxr-xr-xtemplates/Traditional_Chinese_UTF8-check.tex77
-rwxr-xr-xtemplates/Traditional_Chinese_UTF8-income_statement.html81
-rwxr-xr-xtemplates/Traditional_Chinese_UTF8-invoice.html337
-rwxr-xr-xtemplates/Traditional_Chinese_UTF8-invoice.tex207
-rwxr-xr-xtemplates/Traditional_Chinese_UTF8-letterhead.html32
-rwxr-xr-xtemplates/Traditional_Chinese_UTF8-letterhead.tex17
-rwxr-xr-xtemplates/Traditional_Chinese_UTF8-logo.eps1334
-rwxr-xr-xtemplates/Traditional_Chinese_UTF8-logo.pngbin0 -> 12716 bytes
-rwxr-xr-xtemplates/Traditional_Chinese_UTF8-packing_list.html194
-rwxr-xr-xtemplates/Traditional_Chinese_UTF8-packing_list.tex136
-rwxr-xr-xtemplates/Traditional_Chinese_UTF8-pick_list.html153
-rwxr-xr-xtemplates/Traditional_Chinese_UTF8-pick_list.tex108
-rwxr-xr-xtemplates/Traditional_Chinese_UTF8-pos_invoice.txt45
-rwxr-xr-xtemplates/Traditional_Chinese_UTF8-purchase_order.html252
-rwxr-xr-xtemplates/Traditional_Chinese_UTF8-purchase_order.tex170
-rwxr-xr-xtemplates/Traditional_Chinese_UTF8-receipt.tex77
-rwxr-xr-xtemplates/Traditional_Chinese_UTF8-request_quotation.html202
-rwxr-xr-xtemplates/Traditional_Chinese_UTF8-request_quotation.tex151
-rwxr-xr-xtemplates/Traditional_Chinese_UTF8-sales_order.html245
-rwxr-xr-xtemplates/Traditional_Chinese_UTF8-sales_order.tex177
-rwxr-xr-xtemplates/Traditional_Chinese_UTF8-sales_quotation.html225
-rwxr-xr-xtemplates/Traditional_Chinese_UTF8-sales_quotation.tex148
-rwxr-xr-xtemplates/Traditional_Chinese_UTF8-statement.html134
-rwxr-xr-xtemplates/Traditional_Chinese_UTF8-statement.tex78
-rwxr-xr-xtemplates/Traditional_Chinese_UTF8-timecard.html146
-rwxr-xr-xtemplates/Traditional_Chinese_UTF8-timecard.tex52
-rwxr-xr-xtemplates/Traditional_Chinese_UTF8-work_order.html177
-rwxr-xr-xtemplates/Traditional_Chinese_UTF8-work_order.tex141
-rw-r--r--templates/demo/ap_transaction.html228
-rw-r--r--templates/demo/ap_transaction.tex111
-rw-r--r--templates/demo/ar_transaction.html234
-rw-r--r--templates/demo/ar_transaction.tex118
-rw-r--r--templates/demo/balance_sheet.html105
-rw-r--r--templates/demo/bin_list.html179
-rw-r--r--templates/demo/bin_list.tex114
-rw-r--r--templates/demo/check.tex77
-rw-r--r--templates/demo/income_statement.html85
-rw-r--r--templates/demo/invoice.html318
-rw-r--r--templates/demo/invoice.tex207
-rw-r--r--templates/demo/letterhead.html32
-rw-r--r--templates/demo/letterhead.tex17
-rw-r--r--templates/demo/logo.eps496
-rw-r--r--templates/demo/logo.pngbin0 -> 3970 bytes
-rw-r--r--templates/demo/packing_list.html185
-rw-r--r--templates/demo/packing_list.tex136
-rw-r--r--templates/demo/pick_list.html139
-rw-r--r--templates/demo/pick_list.tex108
-rw-r--r--templates/demo/pos_invoice.txt45
-rw-r--r--templates/demo/purchase_order.html241
-rw-r--r--templates/demo/purchase_order.tex170
-rw-r--r--templates/demo/receipt.tex77
-rw-r--r--templates/demo/request_quotation.html179
-rw-r--r--templates/demo/request_quotation.tex151
-rw-r--r--templates/demo/sales_order.html231
-rw-r--r--templates/demo/sales_order.tex177
-rw-r--r--templates/demo/sales_quotation.html201
-rw-r--r--templates/demo/sales_quotation.tex148
-rw-r--r--templates/demo/statement.html137
-rw-r--r--templates/demo/statement.tex78
-rw-r--r--templates/demo/timecard.html124
-rw-r--r--templates/demo/timecard.tex52
-rw-r--r--templates/demo/work_order.html161
-rw-r--r--templates/demo/work_order.tex141
-rw-r--r--templates/foo.sh5
-rw-r--r--users/sql-ledger.eps1334
-rw-r--r--users/sql-ledger.pngbin0 -> 12716 bytes
2474 files changed, 500325 insertions, 0 deletions
diff --git a/COPYRIGHT b/COPYRIGHT
new file mode 100644
index 00000000..7bc7070a
--- /dev/null
+++ b/COPYRIGHT
@@ -0,0 +1,17 @@
+Copyright (C) 2006
+
+Contributors:
+
+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., 675 Mass Ave, Cambridge, MA 02139, USA.
+
diff --git a/LedgerSMB.xcf b/LedgerSMB.xcf
new file mode 100755
index 00000000..ca6fa615
--- /dev/null
+++ b/LedgerSMB.xcf
Binary files differ
diff --git a/LedgerSMB/AA.pm b/LedgerSMB/AA.pm
new file mode 100755
index 00000000..92816650
--- /dev/null
+++ b/LedgerSMB/AA.pm
@@ -0,0 +1,937 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has undergone whitespace cleanup.
+#
+#======================================================================
+#
+# AR/AP backend routines
+# common routines
+#
+#======================================================================
+
+package AA;
+
+
+sub post_transaction {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ my $query;
+ my $sth;
+
+ my $null;
+ ($null, $form->{department_id}) = split(/--/, $form->{department});
+ $form->{department_id} *= 1;
+
+ my $ml = 1;
+ my $table = 'ar';
+ my $buysell = 'buy';
+ my $ARAP = 'AR';
+ my $invnumber = "sinumber";
+ my $keepcleared;
+
+ if ($form->{vc} eq 'vendor') {
+ $table = 'ap';
+ $buysell = 'sell';
+ $ARAP = 'AP';
+ $ml = -1;
+ $invnumber = "vinumber";
+ }
+
+ if ($form->{currency} eq $form->{defaultcurrency}) {
+ $form->{exchangerate} = 1;
+ } else {
+ $exchangerate = $form->check_exchangerate($myconfig, $form->{currency}, $form->{transdate}, $buysell);
+
+ $form->{exchangerate} = ($exchangerate) ? $exchangerate : $form->parse_amount($myconfig, $form->{exchangerate});
+ }
+
+ my @taxaccounts = split / /, $form->{taxaccounts};
+ my $tax = 0;
+ my $fxtax = 0;
+ my $amount;
+ my $diff;
+
+ my %tax = ();
+ my $accno;
+
+ # add taxes
+ foreach $accno (@taxaccounts) {
+ $fxtax += $tax{fxamount}{$accno} = $form->parse_amount($myconfig, $form->{"tax_$accno"});
+ $tax += $tax{fxamount}{$accno};
+
+ push @{ $form->{acc_trans}{taxes} }, {
+ accno => $accno,
+ amount => $tax{fxamount}{$accno},
+ project_id => 'NULL',
+ fx_transaction => 0 };
+
+ $amount = $tax{fxamount}{$accno} * $form->{exchangerate};
+ $tax{amount}{$accno} = $form->round_amount($amount - $diff, 2);
+ $diff = $tax{amount}{$accno} - ($amount - $diff);
+ $amount = $tax{amount}{$accno} - $tax{fxamount}{$accno};
+ $tax += $amount;
+
+ if ($form->{currency} ne $form->{defaultcurrency}) {
+ push @{ $form->{acc_trans}{taxes} }, {
+ accno => $accno,
+ amount => $amount,
+ project_id => 'NULL',
+ fx_transaction => 1 };
+ }
+
+ }
+
+ my %amount = ();
+ my $fxinvamount = 0;
+ for (1 .. $form->{rowcount}) {
+ $fxinvamount += $amount{fxamount}{$_} = $form->parse_amount($myconfig, $form->{"amount_$_"})
+ }
+
+ $form->{taxincluded} *= 1;
+
+ my $i;
+ my $project_id;
+ my $cleared = 0;
+
+ $diff = 0;
+ # deduct tax from amounts if tax included
+ for $i (1 .. $form->{rowcount}) {
+
+ if ($amount{fxamount}{$i}) {
+
+ if ($form->{taxincluded}) {
+ $amount = ($fxinvamount) ? $fxtax * $amount{fxamount}{$i} / $fxinvamount : 0;
+ $amount{fxamount}{$i} -= $amount;
+ }
+
+ # multiply by exchangerate
+ $amount = $amount{fxamount}{$i} * $form->{exchangerate};
+ $amount{amount}{$i} = $form->round_amount($amount - $diff, 2);
+ $diff = $amount{amount}{$i} - ($amount - $diff);
+
+ ($null, $project_id) = split /--/, $form->{"projectnumber_$i"};
+ $project_id ||= 'NULL';
+ ($accno) = split /--/, $form->{"${ARAP}_amount_$i"};
+
+ if ($keepcleared) {
+ $cleared = ($form->{"cleared_$i"}) ? 1 : 0;
+ }
+
+ push @{ $form->{acc_trans}{lineitems} }, {
+ accno => $accno,
+ amount => $amount{fxamount}{$i},
+ project_id => $project_id,
+ description => $form->{"description_$i"},
+ cleared => $cleared,
+ fx_transaction => 0 };
+
+ if ($form->{currency} ne $form->{defaultcurrency}) {
+ $amount = $amount{amount}{$i} - $amount{fxamount}{$i};
+ push @{ $form->{acc_trans}{lineitems} }, {
+ accno => $accno,
+ amount => $amount,
+ project_id => $project_id,
+ description => $form->{"description_$i"},
+ cleared => $cleared,
+ fx_transaction => 1 };
+ }
+ }
+ }
+
+
+ my $invnetamount = 0;
+ for (@{ $form->{acc_trans}{lineitems} }) { $invnetamount += $_->{amount} }
+ my $invamount = $invnetamount + $tax;
+
+ # adjust paidaccounts if there is no date in the last row
+ $form->{paidaccounts}-- unless ($form->{"datepaid_$form->{paidaccounts}"});
+
+ my $paid = 0;
+ my $fxamount;
+
+ $diff = 0;
+ # add payments
+ for $i (1 .. $form->{paidaccounts}) {
+ $fxamount = $form->parse_amount($myconfig, $form->{"paid_$i"});
+
+ if ($fxamount) {
+ $paid += $fxamount;
+
+ $paidamount = $fxamount * $form->{exchangerate};
+
+ $amount = $form->round_amount($paidamount - $diff, 2);
+ $diff = $amount - ($paidamount - $diff);
+
+ $form->{datepaid} = $form->{"datepaid_$i"};
+
+ $paid{fxamount}{$i} = $fxamount;
+ $paid{amount}{$i} = $amount;
+ }
+ }
+
+ $fxinvamount += $fxtax unless $form->{taxincluded};
+ $fxinvamount = $form->round_amount($fxinvamount, 2);
+ $invamount = $form->round_amount($invamount, 2);
+ $paid = $form->round_amount($paid, 2);
+
+ $paid = ($fxinvamount == $paid) ? $invamount : $form->round_amount($paid * $form->{exchangerate}, 2);
+
+ $query = q|SELECT fxgain_accno_id, fxloss_accno_id
+ FROM defaults|;
+
+ my ($fxgain_accno_id, $fxloss_accno_id) = $dbh->selectrow_array($query);
+
+ ($null, $form->{employee_id}) = split /--/, $form->{employee};
+ unless ($form->{employee_id}) {
+ ($form->{employee}, $form->{employee_id}) = $form->get_employee($dbh);
+ }
+
+ # check if id really exists
+ if ($form->{id}) {
+ $keepcleared = 1;
+ $query = qq|SELECT id FROM $table
+ WHERE id = $form->{id}|;
+
+ if ($dbh->selectrow_array($query)) {
+ # delete detail records
+ $query = qq|DELETE FROM acc_trans
+ WHERE trans_id = $form->{id}|;
+
+ $dbh->do($query) || $form->dberror($query);
+ }
+ } else {
+
+ my $uid = localtime;
+ $uid .= "$$";
+
+ $query = qq|INSERT INTO $table (invnumber)
+ VALUES ('$uid')|;
+
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|SELECT id FROM $table
+ WHERE invnumber = '$uid'|;
+
+ ($form->{id}) = $dbh->selectrow_array($query);
+ }
+
+
+ # record last payment date in ar/ap table
+ $form->{datepaid} = $form->{transdate} unless $form->{datepaid};
+ my $datepaid = ($paid) ? qq|'$form->{datepaid}'| : 'NULL';
+
+ $form->{invnumber} = $form->update_defaults($myconfig, $invnumber) unless $form->{invnumber};
+
+ $query = qq|UPDATE $table SET invnumber = |.$dbh->quote($form->{invnumber}).qq|,
+ ordnumber = |.$dbh->quote($form->{ordnumber}).qq|,
+ transdate = '$form->{transdate}',
+ $form->{vc}_id = $form->{"$form->{vc}_id"},
+ taxincluded = '$form->{taxincluded}',
+ amount = $invamount,
+ duedate = '$form->{duedate}',
+ paid = $paid,
+ datepaid = $datepaid,
+ netamount = $invnetamount,
+ curr = '$form->{currency}',
+ notes = |.$dbh->quote($form->{notes}).qq|,
+ department_id = $form->{department_id},
+ employee_id = $form->{employee_id},
+ ponumber = |.$dbh->quote($form->{ponumber}).qq|
+ WHERE id = $form->{id}|;
+
+ $dbh->do($query) || $form->dberror($query);
+
+ # update exchangerate
+ my $buy = $form->{exchangerate};
+ my $sell = 0;
+ if ($form->{vc} eq 'vendor') {
+ $buy = 0;
+ $sell = $form->{exchangerate};
+ }
+
+ if (($form->{currency} ne $form->{defaultcurrency}) && !$exchangerate) {
+ $form->update_exchangerate($dbh, $form->{currency}, $form->{transdate}, $buy, $sell);
+ }
+
+ my $ref;
+
+ # add individual transactions
+ foreach $ref (@{ $form->{acc_trans}{lineitems} }) {
+
+ # insert detail records in acc_trans
+ if ($ref->{amount}) {
+ $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate,
+ project_id, memo, fx_transaction, cleared)
+ VALUES ($form->{id}, (SELECT id FROM chart
+ WHERE accno = '$ref->{accno}'),
+ $ref->{amount} * $ml, '$form->{transdate}',
+ $ref->{project_id}, |.$dbh->quote($ref->{description}).qq|,
+ '$ref->{fx_transaction}', '$ref->{cleared}')|;
+
+ $dbh->do($query) || $form->dberror($query);
+ }
+ }
+
+ # save taxes
+ foreach $ref (@{ $form->{acc_trans}{taxes} }) {
+ if ($ref->{amount}) {
+ $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount,
+ transdate, fx_transaction)
+ VALUES ($form->{id},
+ (SELECT id FROM chart
+ WHERE accno = '$ref->{accno}'),
+ $ref->{amount} * $ml, '$form->{transdate}',
+ '$ref->{fx_transaction}')|;
+
+ $dbh->do($query) || $form->dberror($query);
+ }
+ }
+
+
+ my $arap;
+
+ # record ar/ap
+ if (($arap = $invamount)) {
+ ($accno) = split /--/, $form->{$ARAP};
+
+ $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate)
+ VALUES ($form->{id},
+ (SELECT id FROM chart
+ WHERE accno = '$accno'),
+ $invamount * -1 * $ml, '$form->{transdate}')|;
+
+ $dbh->do($query) || $form->dberror($query);
+ }
+
+ # if there is no amount force ar/ap
+ if ($fxinvamount == 0) {
+ $arap = 1;
+ }
+
+
+ my $exchangerate;
+
+ # add paid transactions
+ for $i (1 .. $form->{paidaccounts}) {
+
+ if ($paid{fxamount}{$i}) {
+
+ ($accno) = split(/--/, $form->{"${ARAP}_paid_$i"});
+ $form->{"datepaid_$i"} = $form->{transdate} unless ($form->{"datepaid_$i"});
+
+ $exchangerate = 0;
+
+ if ($form->{currency} eq $form->{defaultcurrency}) {
+ $form->{"exchangerate_$i"} = 1;
+ } else {
+ $exchangerate = $form->check_exchangerate($myconfig, $form->{currency}, $form->{"datepaid_$i"}, $buysell);
+
+ $form->{"exchangerate_$i"} = ($exchangerate) ? $exchangerate : $form->parse_amount($myconfig, $form->{"exchangerate_$i"});
+ }
+
+ # if there is no amount
+ if ($fxinvamount == 0) {
+ $form->{exchangerate} = $form->{"exchangerate_$i"};
+ }
+
+ # ar/ap amount
+ if ($arap) {
+ ($accno) = split /--/, $form->{$ARAP};
+
+ # add ar/ap
+ $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount,transdate)
+ VALUES ($form->{id}, (SELECT id FROM chart
+ WHERE accno = '$accno'),
+ $paid{amount}{$i} * $ml, '$form->{"datepaid_$i"}')|;
+
+ $dbh->do($query) || $form->dberror($query);
+ }
+
+ $arap = $paid{amount}{$i};
+
+
+ # add payment
+ if ($paid{fxamount}{$i}) {
+
+ ($accno) = split /--/, $form->{"${ARAP}_paid_$i"};
+
+ my $cleared = ($form->{"cleared_$i"}) ? 1 : 0;
+
+ $amount = $paid{fxamount}{$i};
+ $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount,
+ transdate, source, memo, cleared)
+ VALUES ($form->{id}, (SELECT id FROM chart
+ WHERE accno = '$accno'),
+ $amount * -1 * $ml, '$form->{"datepaid_$i"}', |
+ .$dbh->quote($form->{"source_$i"}).qq|, |
+ .$dbh->quote($form->{"memo_$i"}).qq|, '$cleared')|;
+
+ $dbh->do($query) || $form->dberror($query);
+
+ if ($form->{currency} ne $form->{defaultcurrency}) {
+
+ # exchangerate gain/loss
+ $amount = ($form->round_amount($paid{fxamount}{$i} * $form->{exchangerate},2) - $form->round_amount($paid{fxamount}{$i} * $form->{"exchangerate_$i"},2)) * -1;
+
+ if ($amount) {
+
+ my $accno_id = (($amount * $ml) > 0) ? $fxgain_accno_id : $fxloss_accno_id;
+
+ $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount,
+ transdate, fx_transaction, cleared)
+ VALUES ($form->{id}, $accno_id,
+ $amount * $ml, '$form->{"datepaid_$i"}', '1',
+ '$cleared')|;
+
+ $dbh->do($query) || $form->dberror($query);
+ }
+
+ # exchangerate difference
+ $amount = $paid{amount}{$i} - $paid{fxamount}{$i} + $amount;
+
+ $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount,
+ transdate, fx_transaction, cleared, source)
+ VALUES ($form->{id}, (SELECT id FROM chart
+ WHERE accno = '$accno'),
+ $amount * -1 * $ml, '$form->{"datepaid_$i"}', '1',
+ '$cleared', |
+ .$dbh->quote($form->{"source_$i"}).qq|)|;
+
+ $dbh->do($query) || $form->dberror($query);
+
+ }
+
+ # update exchangerate record
+ $buy = $form->{"exchangerate_$i"};
+ $sell = 0;
+
+ if ($form->{vc} eq 'vendor') {
+ $buy = 0;
+ $sell = $form->{"exchangerate_$i"};
+ }
+
+ if (($form->{currency} ne $form->{defaultcurrency}) && !$exchangerate) {
+ $form->update_exchangerate($dbh, $form->{currency}, $form->{"datepaid_$i"}, $buy, $sell);
+ }
+ }
+ }
+ }
+
+ # save printed and queued
+ $form->save_status($dbh);
+
+ my %audittrail = ( tablename => $table,
+ reference => $form->{invnumber},
+ formname => 'transaction',
+ action => 'posted',
+ id => $form->{id} );
+
+ $form->audittrail($dbh, "", \%audittrail);
+
+ $form->save_recurring($dbh, $myconfig);
+
+ my $rc = $dbh->commit;
+
+ $dbh->disconnect;
+
+ $rc;
+
+}
+
+
+sub delete_transaction {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database, turn AutoCommit off
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ my $table = ($form->{vc} eq 'customer') ? 'ar' : 'ap';
+
+ my %audittrail = ( tablename => $table,
+ reference => $form->{invnumber},
+ formname => 'transaction',
+ action => 'deleted',
+ id => $form->{id} );
+
+ $form->audittrail($dbh, "", \%audittrail);
+
+ my $query = qq|DELETE FROM $table WHERE id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|DELETE FROM acc_trans WHERE trans_id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ # get spool files
+ $query = qq|SELECT spoolfile
+ FROM status
+ WHERE trans_id = $form->{id}
+ AND spoolfile IS NOT NULL|;
+
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my $spoolfile;
+ my @spoolfiles = ();
+
+ while (($spoolfile) = $sth->fetchrow_array) {
+ push @spoolfiles, $spoolfile;
+ }
+
+ $sth->finish;
+
+ $query = qq|DELETE FROM status WHERE trans_id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ # commit
+ my $rc = $dbh->commit;
+ $dbh->disconnect;
+
+ if ($rc) {
+ foreach $spoolfile (@spoolfiles) {
+ unlink "$spool/$spoolfile" if $spoolfile;
+ }
+ }
+
+ $rc;
+}
+
+
+
+sub transactions {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+ my $null;
+ my $var;
+ my $paid = "a.paid";
+ my $ml = 1;
+ my $ARAP = 'AR';
+ my $table = 'ar';
+ my $buysell = 'buy';
+ my $acc_trans_join;
+ my $acc_trans_flds;
+
+ if ($form->{vc} eq 'vendor') {
+ $ml = -1;
+ $ARAP = 'AP';
+ $table = 'ap';
+ $buysell = 'sell';
+ }
+
+ ($form->{transdatefrom}, $form->{transdateto}) = $form->from_to($form->{year}, $form->{month}, $form->{interval}) if $form->{year} && $form->{month};
+
+ if ($form->{outstanding}) {
+ $paid = qq|SELECT SUM(ac.amount) * -1 * $ml
+ FROM acc_trans ac
+ JOIN chart c ON (c.id = ac.chart_id)
+ WHERE ac.trans_id = a.id
+ AND (c.link LIKE '%${ARAP}_paid%' OR c.link = '')|;
+ $paid .= qq|
+ AND ac.transdate <= '$form->{transdateto}'| if $form->{transdateto};
+ $form->{summary} = 1;
+ }
+
+
+ if (!$form->{summary}) {
+ $acc_trans_flds = qq|, c.accno, ac.source,
+ pr.projectnumber, ac.memo AS description,
+ ac.amount AS linetotal,
+ i.description AS linedescription|;
+
+ $acc_trans_join = qq| JOIN acc_trans ac ON (a.id = ac.trans_id)
+ JOIN chart c ON (c.id = ac.chart_id)
+ LEFT JOIN project pr ON (pr.id = ac.project_id)
+ LEFT JOIN invoice i ON (i.id = ac.invoice_id)|;
+ }
+
+ my $query = qq|SELECT a.id, a.invnumber, a.ordnumber, a.transdate,
+ a.duedate, a.netamount, a.amount, ($paid) AS paid,
+ a.invoice, a.datepaid, a.terms, a.notes,
+ a.shipvia, a.shippingpoint, e.name AS employee, vc.name,
+ a.$form->{vc}_id, a.till, m.name AS manager, a.curr,
+ ex.$buysell AS exchangerate, d.description AS department,
+ a.ponumber $acc_trans_flds
+ FROM $table a
+ JOIN $form->{vc} vc ON (a.$form->{vc}_id = vc.id)
+ LEFT JOIN employee e ON (a.employee_id = e.id)
+ LEFT JOIN employee m ON (e.managerid = m.id)
+ LEFT JOIN exchangerate ex ON (ex.curr = a.curr
+ AND ex.transdate = a.transdate)
+ LEFT JOIN department d ON (a.department_id = d.id)
+ $acc_trans_join|;
+
+ my %ordinal = ( id => 1,
+ invnumber => 2,
+ ordnumber => 3,
+ transdate => 4,
+ duedate => 5,
+ datepaid => 10,
+ shipvia => 13,
+ shippingpoint => 14,
+ employee => 15,
+ name => 16,
+ manager => 19,
+ curr => 20,
+ department => 22,
+ ponumber => 23,
+ accno => 24,
+ source => 25,
+ project => 26,
+ description => 27);
+
+
+ my @a = (transdate, invnumber, name);
+ push @a, "employee" if $form->{l_employee};
+ push @a, "manager" if $form->{l_manager};
+ my $sortorder = $form->sort_order(\@a, \%ordinal);
+
+ my $where = "1 = 1";
+ if ($form->{"$form->{vc}_id"}) {
+ $where .= qq| AND a.$form->{vc}_id = $form->{"$form->{vc}_id"}|;
+ } else {
+ if ($form->{$form->{vc}}) {
+ $var = $form->like(lc $form->{$form->{vc}});
+ $where .= " AND lower(vc.name) LIKE '$var'";
+ }
+ }
+
+ for (qw(department employee)) {
+ if ($form->{$_}) {
+ ($null, $var) = split /--/, $form->{$_};
+ $where .= " AND a.${_}_id = $var";
+ }
+ }
+
+ for (qw(invnumber ordnumber)) {
+ if ($form->{$_}) {
+ $var = $form->like(lc $form->{$_});
+ $where .= " AND lower(a.$_) LIKE '$var'";
+ $form->{open} = $form->{closed} = 0;
+ }
+ }
+
+ for (qw(ponumber shipvia notes)) {
+ if ($form->{$_}) {
+ $var = $form->like(lc $form->{$_});
+ $where .= " AND lower(a.$_) LIKE '$var'";
+ }
+ }
+
+ if ($form->{description}) {
+ if ($acc_trans_flds) {
+ $var = $form->like(lc $form->{description});
+ $where .= " AND lower(ac.memo) LIKE '$var'
+ OR lower(i.description) LIKE '$var'";
+ } else {
+ $where .= " AND a.id = 0";
+ }
+ }
+
+ if ($form->{source}) {
+ if ($acc_trans_flds) {
+ $var = $form->like(lc $form->{source});
+ $where .= " AND lower(ac.source) LIKE '$var'";
+ } else {
+ $where .= " AND a.id = 0";
+ }
+ }
+
+
+ $where .= " AND a.transdate >= '$form->{transdatefrom}'" if $form->{transdatefrom};
+ $where .= " AND a.transdate <= '$form->{transdateto}'" if $form->{transdateto};
+
+ if ($form->{open} || $form->{closed}) {
+ unless ($form->{open} && $form->{closed}) {
+ $where .= " AND a.amount != a.paid" if ($form->{open});
+ $where .= " AND a.amount = a.paid" if ($form->{closed});
+ }
+ }
+
+ if ($form->{till} ne "") {
+ $where .= " AND a.invoice = '1'
+ AND a.till IS NOT NULL";
+
+ if ($myconfig->{role} eq 'user') {
+ $where .= " AND e.login = '$form->{login}'";
+ }
+ }
+
+ if ($form->{$ARAP}) {
+ my ($accno) = split /--/, $form->{$ARAP};
+
+ $where .= qq|AND a.id IN (SELECT ac.trans_id
+ FROM acc_trans ac
+ JOIN chart c ON (c.id = ac.chart_id)
+ WHERE a.id = ac.trans_id
+ AND c.accno = '$accno')|;
+ }
+
+ if ($form->{description}) {
+ $var = $form->like(lc $form->{description});
+ $where .= qq| AND (a.id IN (SELECT DISTINCT trans_id
+ FROM acc_trans
+ WHERE lower(memo) LIKE '$var')
+ OR a.id IN (SELECT DISTINCT trans_id
+ FROM invoice
+ WHERE lower(description) LIKE '$var'))|;
+ }
+
+ $query .= "WHERE $where
+ ORDER BY $sortorder";
+
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+ $ref->{exchangerate} = 1 unless $ref->{exchangerate};
+
+ if ($ref->{linetotal} <= 0) {
+ $ref->{debit} = $ref->{linetotal} * -1;
+ $ref->{credit} = 0;
+ } else {
+ $ref->{debit} = 0;
+ $ref->{credit} = $ref->{linetotal};
+ }
+
+ if ($ref->{invoice}) {
+ $ref->{description} ||= $ref->{linedescription};
+ }
+
+ if ($form->{outstanding}) {
+ next if $form->round_amount($ref->{amount}, 2) == $form->round_amount($ref->{paid}, 2);
+ }
+
+ push @{ $form->{transactions} }, $ref;
+ }
+
+ $sth->finish;
+ $dbh->disconnect;
+}
+
+
+# this is used in IS, IR to retrieve the name
+sub get_name {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $dateformat = $myconfig->{dateformat};
+
+ if ($myconfig->{dateformat} !~ /^y/) {
+ my @a = split /\W/, $form->{transdate};
+ $dateformat .= "yy" if (length $a[2] > 2);
+ }
+
+ if ($form->{transdate} !~ /\W/) {
+ $dateformat = 'yyyymmdd';
+ }
+
+ my $duedate;
+
+ if ($myconfig->{dbdriver} eq 'DB2') {
+ $duedate = ($form->{transdate}) ? "date('$form->{transdate}') + c.terms DAYS" : "current_date + c.terms DAYS";
+ } else {
+ $duedate = ($form->{transdate}) ? "to_date('$form->{transdate}', '$dateformat') + c.terms" : "current_date + c.terms";
+ }
+
+ $form->{"$form->{vc}_id"} *= 1;
+ # get customer/vendor
+ my $query = qq|SELECT c.name AS $form->{vc}, c.discount, c.creditlimit, c.terms,
+ c.email, c.cc, c.bcc, c.taxincluded,
+ c.address1, c.address2, c.city, c.state,
+ c.zipcode, c.country, c.curr AS currency, c.language_code,
+ $duedate AS duedate, c.notes AS intnotes,
+ b.discount AS tradediscount, b.description AS business,
+ e.name AS employee, e.id AS employee_id
+ FROM $form->{vc} c
+ LEFT JOIN business b ON (b.id = c.business_id)
+ LEFT JOIN employee e ON (e.id = c.employee_id)
+ WHERE c.id = $form->{"$form->{vc}_id"}|;
+
+ my $sth = $dbh->prepare($query);
+
+ $sth->execute || $form->dberror($query);
+
+ $ref = $sth->fetchrow_hashref(NAME_lc);
+
+ if ($form->{id}) {
+ for (qw(currency employee employee_id intnotes)) { delete $ref->{$_} }
+ }
+
+ for (keys %$ref) { $form->{$_} = $ref->{$_} }
+ $sth->finish;
+
+ my $buysell = ($form->{vc} eq 'customer') ? "buy" : "sell";
+
+ # if no currency use defaultcurrency
+ $form->{currency} = ($form->{currency}) ? $form->{currency} : $form->{defaultcurrency};
+ $form->{exchangerate} = 0 if $form->{currency} eq $form->{defaultcurrency};
+
+ if ($form->{transdate} && ($form->{currency} ne $form->{defaultcurrency})) {
+ $form->{exchangerate} = $form->get_exchangerate($dbh, $form->{currency}, $form->{transdate}, $buysell);
+ }
+
+ $form->{forex} = $form->{exchangerate};
+
+ # if no employee, default to login
+ ($form->{employee}, $form->{employee_id}) = $form->get_employee($dbh) unless $form->{employee_id};
+
+ my $arap = ($form->{vc} eq 'customer') ? 'ar' : 'ap';
+ my $ARAP = uc $arap;
+
+ $form->{creditremaining} = $form->{creditlimit};
+ $query = qq|SELECT SUM(amount - paid)
+ FROM $arap
+ WHERE $form->{vc}_id = $form->{"$form->{vc}_id"}|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ ($form->{creditremaining}) -= $sth->fetchrow_array;
+
+ $sth->finish;
+
+ $query = qq|SELECT o.amount, (SELECT e.$buysell FROM exchangerate e
+ WHERE e.curr = o.curr
+ AND e.transdate = o.transdate)
+ FROM oe o
+ WHERE o.$form->{vc}_id = $form->{"$form->{vc}_id"}
+ AND o.quotation = '0'
+ AND o.closed = '0'|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while (my ($amount, $exch) = $sth->fetchrow_array) {
+ $exch = 1 unless $exch;
+ $form->{creditremaining} -= $amount * $exch;
+ }
+
+ $sth->finish;
+
+
+ # get shipto if we did not converted an order or invoice
+ if (!$form->{shipto}) {
+
+ for (qw(shiptoname shiptoaddress1 shiptoaddress2 shiptocity
+ shiptostate shiptozipcode shiptocountry shiptocontact
+ shiptophone shiptofax shiptoemail)) {
+ delete $form->{$_}
+ }
+
+ ## needs fixing (SELECT *)
+ $query = qq|SELECT *
+ FROM shipto
+ WHERE trans_id = $form->{"$form->{vc}_id"}|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ $ref = $sth->fetchrow_hashref(NAME_lc);
+ for (keys %$ref) { $form->{$_} = $ref->{$_} }
+ $sth->finish;
+ }
+
+ # get taxes
+ $query = qq|SELECT c.accno
+ FROM chart c
+ JOIN $form->{vc}tax ct ON (ct.chart_id = c.id)
+ WHERE ct.$form->{vc}_id = $form->{"$form->{vc}_id"}|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my %tax;
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ $tax{$ref->{accno}} = 1;
+ }
+
+ $sth->finish;
+
+ my $where = qq|AND (t.validto >= '$form->{transdate}' OR t.validto IS NULL)| if $form->{transdate};
+
+ # get tax rates and description
+ $query = qq|SELECT c.accno, c.description, t.rate, t.taxnumber
+ FROM chart c
+ JOIN tax t ON (c.id = t.chart_id)
+ WHERE c.link LIKE '%${ARAP}_tax%'
+ $where
+ ORDER BY accno, validto|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ $form->{taxaccounts} = "";
+ my %a = ();
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+
+ if ($tax{$ref->{accno}}) {
+ if (not exists $a{$ref->{accno}}) {
+ for (qw(rate description taxnumber)) { $form->{"$ref->{accno}_$_"} = $ref->{$_} }
+ $form->{taxaccounts} .= "$ref->{accno} ";
+ $a{$ref->{accno}} = 1;
+ }
+ }
+ }
+
+ $sth->finish;
+ chop $form->{taxaccounts};
+
+ # setup last accounts used for this customer/vendor
+ if (!$form->{id} && $form->{type} !~ /_(order|quotation)/) {
+
+ $query = qq|SELECT c.accno, c.description, c.link, c.category,
+ ac.project_id, p.projectnumber, a.department_id,
+ d.description AS department
+ FROM chart c
+ JOIN acc_trans ac ON (ac.chart_id = c.id)
+ JOIN $arap a ON (a.id = ac.trans_id)
+ LEFT JOIN project p ON (ac.project_id = p.id)
+ LEFT JOIN department d ON (d.id = a.department_id)
+ WHERE a.$form->{vc}_id = $form->{"$form->{vc}_id"}
+ AND a.id IN (SELECT max(id)
+ FROM $arap
+ WHERE $form->{vc}_id = $form->{"$form->{vc}_id"})|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my $i = 0;
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ $form->{department} = $ref->{department};
+ $form->{department_id} = $ref->{department_id};
+
+ if ($ref->{link} =~ /_amount/) {
+ $i++;
+ $form->{"$form->{ARAP}_amount_$i"} = "$ref->{accno}--$ref->{description}" if $ref->{accno};
+ $form->{"projectnumber_$i"} = "$ref->{projectnumber}--$ref->{project_id}" if $ref->{project_id};
+ }
+
+ if ($ref->{link} eq $form->{ARAP}) {
+ $form->{$form->{ARAP}} = $form->{"$form->{ARAP}_1"} = "$ref->{accno}--$ref->{description}" if $ref->{accno};
+ }
+ }
+
+ $sth->finish;
+ $form->{rowcount} = $i if ($i && !$form->{type});
+ }
+
+ $dbh->disconnect;
+}
+
+1;
diff --git a/LedgerSMB/AM.pm b/LedgerSMB/AM.pm
new file mode 100755
index 00000000..ed4477bf
--- /dev/null
+++ b/LedgerSMB/AM.pm
@@ -0,0 +1,1832 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has undergone whitespace cleanup.
+#
+#======================================================================
+#
+# Administration module
+# Chart of Accounts
+# template routines
+# preferences
+#
+#======================================================================
+
+package AM;
+
+
+sub get_account {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $query = qq|SELECT accno, description, charttype, gifi_accno,
+ category, link, contra
+ FROM chart
+ WHERE id = $form->{id}|;
+
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my $ref = $sth->fetchrow_hashref(NAME_lc);
+ for (keys %$ref) { $form->{$_} = $ref->{$_} }
+ $sth->finish;
+
+ # get default accounts
+ $query = qq|SELECT inventory_accno_id, income_accno_id, expense_accno_id,
+ fxgain_accno_id, fxloss_accno_id
+ FROM defaults|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ $ref = $sth->fetchrow_hashref(NAME_lc);
+ for (keys %$ref) { $form->{$_} = $ref->{$_} }
+ $sth->finish;
+
+ # check if we have any transactions
+ $query = qq|SELECT trans_id FROM acc_trans
+ WHERE chart_id = $form->{id}|;
+
+ ($form->{orphaned}) = $dbh->selectrow_array($query);
+ $form->{orphaned} = !$form->{orphaned};
+
+ $dbh->disconnect;
+
+}
+
+
+sub save_account {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database, turn off AutoCommit
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ $form->{link} = "";
+ foreach my $item ($form->{AR},
+ $form->{AR_amount},
+ $form->{AR_tax},
+ $form->{AR_paid},
+ $form->{AP},
+ $form->{AP_amount},
+ $form->{AP_tax},
+ $form->{AP_paid},
+ $form->{IC},
+ $form->{IC_income},
+ $form->{IC_sale},
+ $form->{IC_expense},
+ $form->{IC_cogs},
+ $form->{IC_taxpart},
+ $form->{IC_taxservice}) {
+ $form->{link} .= "${item}:" if ($item);
+ }
+
+ chop $form->{link};
+
+ # strip blanks from accno
+ for (qw(accno gifi_accno)) { $form->{$_} =~ s/( |')//g }
+
+ foreach my $item (qw(accno gifi_accno description)) {
+ $form->{$item} =~ s/-(-+)/-/g;
+ $form->{$item} =~ s/ ( )+/ /g;
+ }
+
+ my $query;
+ my $sth;
+
+ $form->{contra} *= 1;
+
+ # if we have an id then replace the old record
+ if ($form->{id}) {
+ $query = qq|UPDATE chart SET accno = '$form->{accno}',
+ description = |.$dbh->quote($form->{description}).qq|,
+ charttype = '$form->{charttype}',
+ gifi_accno = '$form->{gifi_accno}',
+ category = '$form->{category}',
+ link = '$form->{link}',
+ contra = '$form->{contra}'
+ WHERE id = $form->{id}|;
+ } else {
+ $query = qq|INSERT INTO chart (accno, description, charttype,
+ gifi_accno, category, link, contra)
+ VALUES ('$form->{accno}',|
+ .$dbh->quote($form->{description}).qq|,
+ '$form->{charttype}', '$form->{gifi_accno}',
+ '$form->{category}', '$form->{link}', '$form->{contra}')|;
+ }
+
+ $dbh->do($query) || $form->dberror($query);
+
+
+ $chart_id = $form->{id};
+
+ if (! $form->{id}) {
+ # get id from chart
+ $query = qq|SELECT id
+ FROM chart
+ WHERE accno = '$form->{accno}'|;
+
+ ($chart_id) = $dbh->selectrow_array($query);
+ }
+
+ if ($form->{IC_taxpart} || $form->{IC_taxservice} || $form->{AR_tax} || $form->{AP_tax}) {
+
+ # add account if it doesn't exist in tax
+ $query = qq|SELECT chart_id
+ FROM tax
+ WHERE chart_id = $chart_id|;
+
+ my ($tax_id) = $dbh->selectrow_array($query);
+
+ # add tax if it doesn't exist
+ unless ($tax_id) {
+ $query = qq|INSERT INTO tax (chart_id, rate)
+ VALUES ($chart_id, 0)|;
+
+ $dbh->do($query) || $form->dberror($query);
+ }
+
+ } else {
+
+ # remove tax
+ if ($form->{id}) {
+ $query = qq|DELETE FROM tax
+ WHERE chart_id = $form->{id}|;
+
+ $dbh->do($query) || $form->dberror($query);
+ }
+ }
+
+ # commit
+ my $rc = $dbh->commit;
+ $dbh->disconnect;
+
+ $rc;
+}
+
+
+
+sub delete_account {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database, turn off AutoCommit
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ ## needs fixing (SELECT *...)
+ my $query = qq|SELECT *
+ FROM acc_trans
+ WHERE chart_id = $form->{id}|;
+
+ if ($dbh->selectrow_array($query)) {
+ $dbh->disconnect;
+ return;
+ }
+
+
+ # delete chart of account record
+ $query = qq|DELETE FROM chart
+ WHERE id = $form->{id}|;
+
+ $dbh->do($query) || $form->dberror($query);
+
+ # set inventory_accno_id, income_accno_id, expense_accno_id to defaults
+ $query = qq|UPDATE parts
+ SET inventory_accno_id = (SELECT inventory_accno_id
+ FROM defaults)
+ WHERE inventory_accno_id = $form->{id}|;
+
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|UPDATE parts
+ SET income_accno_id = (SELECT income_accno_id
+ FROM defaults)
+ WHERE income_accno_id = $form->{id}|;
+
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|UPDATE parts
+ SET expense_accno_id = (SELECT expense_accno_id
+ FROM defaults)
+ WHERE expense_accno_id = $form->{id}|;
+
+ $dbh->do($query) || $form->dberror($query);
+
+ foreach my $table (qw(partstax customertax vendortax tax)) {
+ $query = qq|DELETE FROM $table
+ WHERE chart_id = $form->{id}|;
+
+ $dbh->do($query) || $form->dberror($query);
+ }
+
+ # commit and redirect
+ my $rc = $dbh->commit;
+ $dbh->disconnect;
+
+ $rc;
+}
+
+
+sub gifi_accounts {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $query = qq|SELECT accno, description
+ FROM gifi
+ ORDER BY accno|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{ALL} }, $ref;
+ }
+
+ $sth->finish;
+
+ $dbh->disconnect;
+}
+
+
+
+sub get_gifi {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $query = qq|SELECT accno, description
+ FROM gifi
+ WHERE accno = '$form->{accno}'|;
+
+ ($form->{accno}, $form->{description}) = $dbh->selectrow_array($query);
+
+ # check for transactions ## needs fixing (SELECT *...)
+ $query = qq|SELECT *
+ FROM acc_trans a
+ JOIN chart c ON (a.chart_id = c.id)
+ JOIN gifi g ON (c.gifi_accno = g.accno)
+ WHERE g.accno = '$form->{accno}'|;
+
+ ($form->{orphaned}) = $dbh->selectrow_array($query);
+ $form->{orphaned} = !$form->{orphaned};
+
+ $dbh->disconnect;
+
+}
+
+
+sub save_gifi {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ $form->{accno} =~ s/( |')//g;
+
+ foreach my $item (qw(accno description)) {
+ $form->{$item} =~ s/-(-+)/-/g;
+ $form->{$item} =~ s/ ( )+/ /g;
+ }
+
+ # id is the old account number!
+ if ($form->{id}) {
+ $query = qq|UPDATE gifi
+ SET accno = '$form->{accno}',
+ description = |.$dbh->quote($form->{description}).qq|
+ WHERE accno = '$form->{id}'|;
+
+ } else {
+ $query = qq|INSERT INTO gifi (accno, description)
+ VALUES ('$form->{accno}',|
+ .$dbh->quote($form->{description}).qq|)|;
+ }
+
+ $dbh->do($query) || $form->dberror;
+ $dbh->disconnect;
+
+}
+
+
+sub delete_gifi {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ # id is the old account number!
+ $query = qq|DELETE FROM gifi
+ WHERE accno = '$form->{id}'|;
+
+ $dbh->do($query) || $form->dberror($query);
+ $dbh->disconnect;
+
+}
+
+
+sub warehouses {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ $form->sort_order();
+ my $query = qq|SELECT id, description
+ FROM warehouse
+ ORDER BY description $form->{direction}|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{ALL} }, $ref;
+ }
+
+ $sth->finish;
+ $dbh->disconnect;
+
+}
+
+
+sub get_warehouse {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $query = qq|SELECT description
+ FROM warehouse
+ WHERE id = $form->{id}|;
+
+ ($form->{description}) = $dbh->selectrow_array($query);
+
+ # see if it is in use
+ $query = qq|SELECT * FROM inventory
+ WHERE warehouse_id = $form->{id}|;
+
+ ($form->{orphaned}) = $dbh->selectrow_array($query);
+ $form->{orphaned} = !$form->{orphaned};
+
+ $dbh->disconnect;
+}
+
+
+sub save_warehouse {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ $form->{description} =~ s/-(-)+/-/g;
+ $form->{description} =~ s/ ( )+/ /g;
+
+ if ($form->{id}) {
+ $query = qq|UPDATE warehouse
+ SET description = |.$dbh->quote($form->{description}).qq|
+ WHERE id = $form->{id}|;
+ } else {
+ $query = qq|INSERT INTO warehouse (description)
+ VALUES (|.$dbh->quote($form->{description}).qq|)|;
+ }
+
+ $dbh->do($query) || $form->dberror($query);
+ $dbh->disconnect;
+
+}
+
+
+sub delete_warehouse {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ $query = qq|DELETE FROM warehouse
+ WHERE id = $form->{id}|;
+
+ $dbh->do($query) || $form->dberror($query);
+ $dbh->disconnect;
+
+}
+
+
+
+sub departments {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ $form->sort_order();
+ my $query = qq|SELECT id, description, role
+ FROM department
+ ORDER BY description $form->{direction}|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{ALL} }, $ref;
+ }
+
+ $sth->finish;
+ $dbh->disconnect;
+
+}
+
+
+
+sub get_department {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $query = qq|SELECT description, role
+ FROM department
+ WHERE id = $form->{id}|;
+
+ ($form->{description}, $form->{role}) = $dbh->selectrow_array($query);
+
+ for (keys %$ref) { $form->{$_} = $ref->{$_} }
+
+ # see if it is in use ## needs fixing (SELECT * ...)
+ $query = qq|SELECT *
+ FROM dpt_trans
+ WHERE department_id = $form->{id}|;
+
+ ($form->{orphaned}) = $dbh->selectrow_array($query);
+ $form->{orphaned} = !$form->{orphaned};
+
+ $dbh->disconnect;
+}
+
+
+sub save_department {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ $form->{description} =~ s/-(-)+/-/g;
+ $form->{description} =~ s/ ( )+/ /g;
+
+ if ($form->{id}) {
+ $query = qq|UPDATE department
+ SET description = |.$dbh->quote($form->{description}).qq|,
+ role = '$form->{role}'
+ WHERE id = $form->{id}|;
+
+ } else {
+ $query = qq|INSERT INTO department (description, role)
+ VALUES (| .$dbh->quote($form->{description}).qq|, '$form->{role}')|;
+ }
+
+ $dbh->do($query) || $form->dberror($query);
+ $dbh->disconnect;
+
+}
+
+
+sub delete_department {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ $query = qq|DELETE FROM department
+ WHERE id = $form->{id}|;
+
+ $dbh->do($query);
+ $dbh->disconnect;
+
+}
+
+
+sub business {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ $form->sort_order();
+ my $query = qq|SELECT id, description, discount
+ FROM business
+ ORDER BY description $form->{direction}|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{ALL} }, $ref;
+ }
+
+ $sth->finish;
+ $dbh->disconnect;
+
+}
+
+
+sub get_business {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $query = qq|SELECT description, discount
+ FROM business
+ WHERE id = $form->{id}|;
+
+ ($form->{description}, $form->{discount}) = $dbh->selectrow_array($query);
+ $dbh->disconnect;
+
+}
+
+
+sub save_business {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ $form->{description} =~ s/-(-)+/-/g;
+ $form->{description} =~ s/ ( )+/ /g;
+ $form->{discount} /= 100;
+
+ if ($form->{id}) {
+ $query = qq|UPDATE business
+ SET description = |.$dbh->quote($form->{description}).qq|,
+ discount = $form->{discount}
+ WHERE id = $form->{id}|;
+
+ } else {
+ $query = qq|INSERT INTO business (description, discount)
+ VALUES (| .$dbh->quote($form->{description}).qq|, $form->{discount})|;
+ }
+
+ $dbh->do($query) || $form->dberror($query);
+ $dbh->disconnect;
+
+}
+
+
+sub delete_business {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ $query = qq|DELETE FROM business
+ WHERE id = $form->{id}|;
+
+ $dbh->do($query) || $form->dberror($query);
+ $dbh->disconnect;
+
+}
+
+
+sub sic {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ $form->{sort} = "code" unless $form->{sort};
+ my @a = qw(code description);
+
+ my %ordinal = ( code => 1,
+ description => 3 );
+
+ my $sortorder = $form->sort_order(\@a, \%ordinal);
+
+ my $query = qq|SELECT code, sictype, description
+ FROM sic
+ ORDER BY $sortorder|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{ALL} }, $ref;
+ }
+
+ $sth->finish;
+ $dbh->disconnect;
+
+}
+
+
+sub get_sic {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $query = qq|SELECT code, sictype, description
+ FROM sic
+ WHERE code = |.$dbh->quote($form->{code});
+
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my $ref = $sth->fetchrow_hashref(NAME_lc);
+ for (keys %$ref) { $form->{$_} = $ref->{$_} }
+
+ $sth->finish;
+ $dbh->disconnect;
+
+}
+
+
+sub save_sic {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ foreach my $item (qw(code description)) {
+ $form->{$item} =~ s/-(-)+/-/g;
+ }
+
+ # if there is an id
+ if ($form->{id}) {
+ $query = qq|UPDATE sic
+ SET code = |.$dbh->quote($form->{code}).qq|,
+ sictype = '$form->{sictype}',
+ description = |.$dbh->quote($form->{description}).qq|
+ WHERE code = |.$dbh->quote($form->{id});
+
+ } else {
+ $query = qq|INSERT INTO sic (code, sictype, description)
+ VALUES (|.$dbh->quote($form->{code}).qq|,
+ '$form->{sictype}',|
+ .$dbh->quote($form->{description}).qq|)|;
+
+ }
+
+ $dbh->do($query) || $form->dberror($query);
+ $dbh->disconnect;
+
+}
+
+
+sub delete_sic {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ $query = qq|DELETE FROM sic
+ WHERE code = |.$dbh->quote($form->{code});
+
+ $dbh->do($query);
+ $dbh->disconnect;
+
+}
+
+
+sub language {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ $form->{sort} = "code" unless $form->{sort};
+ my @a = qw(code description);
+
+ my %ordinal = ( code => 1,
+ description => 2 );
+
+ my $sortorder = $form->sort_order(\@a, \%ordinal);
+
+ my $query = qq|SELECT code, description
+ FROM language
+ ORDER BY $sortorder|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{ALL} }, $ref;
+ }
+
+ $sth->finish;
+ $dbh->disconnect;
+
+}
+
+
+sub get_language {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ ## needs fixing (SELECT *...)
+ my $query = qq|SELECT *
+ FROM language
+ WHERE code = |.$dbh->quote($form->{code});
+
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my $ref = $sth->fetchrow_hashref(NAME_lc);
+
+ for (keys %$ref) { $form->{$_} = $ref->{$_} }
+
+ $sth->finish;
+ $dbh->disconnect;
+
+}
+
+
+sub save_language {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ $form->{code} =~ s/ //g;
+
+ foreach my $item (qw(code description)) {
+ $form->{$item} =~ s/-(-)+/-/g;
+ $form->{$item} =~ s/ ( )+/-/g;
+ }
+
+ # if there is an id
+ if ($form->{id}) {
+ $query = qq|UPDATE language
+ SET code = |.$dbh->quote($form->{code}).qq|,
+ description = |.$dbh->quote($form->{description}).qq|
+ WHERE code = |.$dbh->quote($form->{id});
+
+ } else {
+ $query = qq|INSERT INTO language (code, description)
+ VALUES (|.$dbh->quote($form->{code}).qq|,|
+ .$dbh->quote($form->{description}).qq|)|;
+ }
+
+ $dbh->do($query) || $form->dberror($query);
+ $dbh->disconnect;
+
+}
+
+
+sub delete_language {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ $query = qq|DELETE FROM language
+ WHERE code = |.$dbh->quote($form->{code});
+
+ $dbh->do($query) || $form->dberror($query);
+ $dbh->disconnect;
+
+}
+
+
+sub recurring_transactions {
+
+ my ($self, $myconfig, $form) = @_;
+
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $query = qq|SELECT curr FROM defaults|;
+
+ my ($defaultcurrency) = $dbh->selectrow_array($query);
+ $defaultcurrency =~ s/:.*//g;
+
+ $form->{sort} ||= "nextdate";
+ my @a = ($form->{sort});
+ my $sortorder = $form->sort_order(\@a);
+
+ $query = qq|SELECT 'ar' AS module, 'ar' AS transaction, a.invoice,
+ n.name AS description, a.amount,
+ s.*, se.formname AS recurringemail,
+ sp.formname AS recurringprint,
+ s.nextdate - current_date AS overdue, 'customer' AS vc,
+ ex.buy AS exchangerate, a.curr,
+ (s.nextdate IS NULL OR s.nextdate > s.enddate) AS expired
+ FROM recurring s
+ JOIN ar a ON (a.id = s.id)
+ JOIN customer n ON (n.id = a.customer_id)
+ LEFT JOIN recurringemail se ON (se.id = s.id)
+ LEFT JOIN recurringprint sp ON (sp.id = s.id)
+ LEFT JOIN exchangerate ex ON (ex.curr = a.curr AND a.transdate = ex.transdate)
+
+ UNION
+
+ SELECT 'ap' AS module, 'ap' AS transaction, a.invoice,
+ n.name AS description, a.amount,
+ s.*, se.formname AS recurringemail,
+ sp.formname AS recurringprint,
+ s.nextdate - current_date AS overdue, 'vendor' AS vc,
+ ex.sell AS exchangerate, a.curr,
+ (s.nextdate IS NULL OR s.nextdate > s.enddate) AS expired
+ FROM recurring s
+ JOIN ap a ON (a.id = s.id)
+ JOIN vendor n ON (n.id = a.vendor_id)
+ LEFT JOIN recurringemail se ON (se.id = s.id)
+ LEFT JOIN recurringprint sp ON (sp.id = s.id)
+ LEFT JOIN exchangerate ex ON (ex.curr = a.curr AND a.transdate = ex.transdate)
+
+ UNION
+
+ SELECT 'gl' AS module, 'gl' AS transaction, FALSE AS invoice,
+ a.description, (SELECT SUM(ac.amount)
+ FROM acc_trans ac
+ WHERE ac.trans_id = a.id
+ AND ac.amount > 0) AS amount,
+ s.*, se.formname AS recurringemail,
+ sp.formname AS recurringprint,
+ s.nextdate - current_date AS overdue, '' AS vc,
+ '1' AS exchangerate, '$defaultcurrency' AS curr,
+ (s.nextdate IS NULL OR s.nextdate > s.enddate) AS expired
+ FROM recurring s
+ JOIN gl a ON (a.id = s.id)
+ LEFT JOIN recurringemail se ON (se.id = s.id)
+ LEFT JOIN recurringprint sp ON (sp.id = s.id)
+
+ UNION
+
+ SELECT 'oe' AS module, 'so' AS transaction, FALSE AS invoice,
+ n.name AS description, a.amount,
+ s.*, se.formname AS recurringemail,
+ sp.formname AS recurringprint,
+ s.nextdate - current_date AS overdue, 'customer' AS vc,
+ ex.buy AS exchangerate, a.curr,
+ (s.nextdate IS NULL OR s.nextdate > s.enddate) AS expired
+ FROM recurring s
+ JOIN oe a ON (a.id = s.id)
+ JOIN customer n ON (n.id = a.customer_id)
+ LEFT JOIN recurringemail se ON (se.id = s.id)
+ LEFT JOIN recurringprint sp ON (sp.id = s.id)
+ LEFT JOIN exchangerate ex ON (ex.curr = a.curr AND a.transdate = ex.transdate)
+ WHERE a.quotation = '0'
+
+ UNION
+
+ SELECT 'oe' AS module, 'po' AS transaction, FALSE AS invoice,
+ n.name AS description, a.amount,
+ s.*, se.formname AS recurringemail,
+ sp.formname AS recurringprint,
+ s.nextdate - current_date AS overdue, 'vendor' AS vc,
+ ex.sell AS exchangerate, a.curr,
+ (s.nextdate IS NULL OR s.nextdate > s.enddate) AS expired
+ FROM recurring s
+ JOIN oe a ON (a.id = s.id)
+ JOIN vendor n ON (n.id = a.vendor_id)
+ LEFT JOIN recurringemail se ON (se.id = s.id)
+ LEFT JOIN recurringprint sp ON (sp.id = s.id)
+ LEFT JOIN exchangerate ex ON (ex.curr = a.curr AND a.transdate = ex.transdate)
+ WHERE a.quotation = '0'
+
+ ORDER BY $sortorder|;
+
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my $id;
+ my $transaction;
+ my %e = ();
+ my %p = ();
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+
+ $ref->{exchangerate} ||= 1;
+
+ if ($ref->{id} != $id) {
+
+ if (%e) {
+ $form->{transactions}{$transaction}->[$i]->{recurringemail} = "";
+ for (keys %e) { $form->{transactions}{$transaction}->[$i]->{recurringemail} .= "${_}:" }
+ chop $form->{transactions}{$transaction}->[$i]->{recurringemail};
+ }
+
+ if (%p) {
+ $form->{transactions}{$transaction}->[$i]->{recurringprint} = "";
+ for (keys %p) { $form->{transactions}{$transaction}->[$i]->{recurringprint} .= "${_}:" }
+ chop $form->{transactions}{$transaction}->[$i]->{recurringprint};
+ }
+
+ %e = ();
+ %p = ();
+
+ push @{ $form->{transactions}{$ref->{transaction}} }, $ref;
+
+ $id = $ref->{id};
+ $i = $#{ $form->{transactions}{$ref->{transaction}} };
+
+ }
+
+ $transaction = $ref->{transaction};
+
+ $e{$ref->{recurringemail}} = 1 if $ref->{recurringemail};
+ $p{$ref->{recurringprint}} = 1 if $ref->{recurringprint};
+
+ }
+
+ $sth->finish;
+
+ # this is for the last row
+ if (%e) {
+ $form->{transactions}{$transaction}->[$i]->{recurringemail} = "";
+ for (keys %e) { $form->{transactions}{$transaction}->[$i]->{recurringemail} .= "${_}:" }
+ chop $form->{transactions}{$transaction}->[$i]->{recurringemail};
+ }
+
+ if (%p) {
+ $form->{transactions}{$transaction}->[$i]->{recurringprint} = "";
+ for (keys %p) { $form->{transactions}{$transaction}->[$i]->{recurringprint} .= "${_}:" }
+ chop $form->{transactions}{$transaction}->[$i]->{recurringprint};
+ }
+
+
+ $dbh->disconnect;
+
+}
+
+sub recurring_details {
+
+ my ($self, $myconfig, $form, $id) = @_;
+
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $query = qq|SELECT s.*, ar.id AS arid, ar.invoice AS arinvoice,
+ ap.id AS apid, ap.invoice AS apinvoice,
+ ar.duedate - ar.transdate AS overdue,
+ ar.datepaid - ar.transdate AS paid,
+ oe.reqdate - oe.transdate AS req,
+ oe.id AS oeid, oe.customer_id, oe.vendor_id
+ FROM recurring s
+ LEFT JOIN ar ON (ar.id = s.id)
+ LEFT JOIN ap ON (ap.id = s.id)
+ LEFT JOIN oe ON (oe.id = s.id)
+ WHERE s.id = $id|;
+
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my $ref = $sth->fetchrow_hashref(NAME_lc);
+ $form->{vc} = "customer" if $ref->{customer_id};
+ $form->{vc} = "vendor" if $ref->{vendor_id};
+ for (keys %$ref) { $form->{$_} = $ref->{$_} }
+ $sth->finish;
+
+ $form->{invoice} = ($form->{arid} && $form->{arinvoice});
+ $form->{invoice} = ($form->{apid} && $form->{apinvoice}) unless $form->{invoice};
+
+ $query = qq|SELECT *
+ FROM recurringemail
+ WHERE id = $id|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ $form->{recurringemail} = "";
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ $form->{recurringemail} .= "$ref->{formname}:$ref->{format}:";
+ $form->{message} = $ref->{message};
+ }
+
+ $sth->finish;
+
+ $query = qq|SELECT *
+ FROM recurringprint
+ WHERE id = $id|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ $form->{recurringprint} = "";
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ $form->{recurringprint} .= "$ref->{formname}:$ref->{format}:$ref->{printer}:";
+ }
+
+ $sth->finish;
+
+ chop $form->{recurringemail};
+ chop $form->{recurringprint};
+
+ for (qw(arinvoice apinvoice)) { delete $form->{$_} }
+
+ $dbh->disconnect;
+
+}
+
+
+sub update_recurring {
+
+ my ($self, $myconfig, $form, $id) = @_;
+
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $query = qq|SELECT nextdate, repeat, unit
+ FROM recurring
+ WHERE id = $id|;
+
+ my ($nextdate, $repeat, $unit) = $dbh->selectrow_array($query);
+
+ my %advance = ( 'Pg' => "(date '$nextdate' + interval '$repeat $unit')",
+ 'DB2' => qq|(date ('$nextdate') + "$repeat $unit")|,);
+
+ $interval{Oracle} = $interval{PgPP} = $interval{Pg};
+
+ # check if it is the last date
+ $query = qq|SELECT $advance{$myconfig->{dbdriver}} > enddate
+ FROM recurring
+ WHERE id = $id|;
+
+ my ($last_repeat) = $dbh->selectrow_array($query);
+ if ($last_repeat) {
+ $advance{$myconfig->{dbdriver}} = "NULL";
+ }
+
+ $query = qq|UPDATE recurring
+ SET nextdate = $advance{$myconfig->{dbdriver}}
+ WHERE id = $id|;
+
+ $dbh->do($query) || $form->dberror($query);
+
+ $dbh->disconnect;
+
+}
+
+
+sub load_template {
+
+ my ($self, $form) = @_;
+
+ open(TEMPLATE, "$form->{file}") or $form->error("$form->{file} : $!");
+
+ while (<TEMPLATE>) {
+ $form->{body} .= $_;
+ }
+
+ close(TEMPLATE);
+
+}
+
+
+sub save_template {
+
+ my ($self, $form) = @_;
+
+ open(TEMPLATE, ">$form->{file}") or $form->error("$form->{file} : $!");
+
+ # strip
+ $form->{body} =~ s/\r//g;
+ print TEMPLATE $form->{body};
+
+ close(TEMPLATE);
+
+}
+
+
+sub save_preferences {
+
+ my ($self, $myconfig, $form, $memberfile, $userspath) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ # update name
+ my $query = qq|UPDATE employee
+ SET name = |.$dbh->quote($form->{name}).qq|,
+ role = '$form->{role}'
+ WHERE login = '$form->{login}'|;
+
+ $dbh->do($query) || $form->dberror($query);
+
+ # get default currency
+ $query = qq|SELECT curr, businessnumber
+ FROM defaults|;
+
+ ($form->{currency}, $form->{businessnumber}) = $dbh->selectrow_array($query);
+ $form->{currency} =~ s/:.*//;
+
+ $dbh->disconnect;
+
+ my $myconfig = new User "$memberfile", "$form->{login}";
+
+ foreach my $item (keys %$form) {
+ $myconfig->{$item} = $form->{$item};
+ }
+
+ $myconfig->{password} = $form->{new_password} if ($form->{old_password} ne $form->{new_password});
+
+ $myconfig->save_member($memberfile, $userspath);
+
+ 1;
+
+}
+
+
+sub save_defaults {
+
+ my ($self, $myconfig, $form) = @_;
+
+ for (qw(IC IC_income IC_expense FX_gain FX_loss)) { ($form->{$_}) = split /--/, $form->{$_} }
+
+ my @a;
+ $form->{curr} =~ s/ //g;
+ for (split /:/, $form->{curr}) { push(@a, uc pack "A3", $_) if $_ }
+ $form->{curr} = join ':', @a;
+
+ # connect to database
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ # save defaults
+ my $query = qq|UPDATE defaults
+ SET inventory_accno_id = (SELECT id
+ FROM chart
+ WHERE accno = '$form->{IC}'),
+ income_accno_id = (SELECT id
+ FROM chart
+ WHERE accno = '$form->{IC_income}'),
+ expense_accno_id = (SELECT id
+ FROM chart
+ WHERE accno = '$form->{IC_expense}'),
+ fxgain_accno_id = (SELECT id
+ FROM chart
+ WHERE accno = '$form->{FX_gain}'),
+ fxloss_accno_id = (SELECT id
+ FROM chart
+ WHERE accno = '$form->{FX_loss}'),
+ glnumber = '$form->{glnumber}',
+ sinumber = '$form->{sinumber}',
+ vinumber = '$form->{vinumber}',
+ sonumber = '$form->{sonumber}',
+ ponumber = '$form->{ponumber}',
+ sqnumber = '$form->{sqnumber}',
+ rfqnumber = '$form->{rfqnumber}',
+ partnumber = '$form->{partnumber}',
+ employeenumber = '$form->{employeenumber}',
+ customernumber = '$form->{customernumber}',
+ vendornumber = '$form->{vendornumber}',
+ projectnumber = '$form->{projectnumber}',
+ yearend = '$form->{yearend}',
+ curr = '$form->{curr}',
+ weightunit = |.$dbh->quote($form->{weightunit}).qq|,
+ businessnumber = |.$dbh->quote($form->{businessnumber});
+
+ $dbh->do($query) || $form->dberror($query);
+
+ my $rc = $dbh->commit;
+ $dbh->disconnect;
+
+ $rc;
+
+}
+
+
+sub defaultaccounts {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ # get defaults from defaults table
+ my $query = qq|SELECT * FROM defaults|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my $ref = $sth->fetchrow_hashref(NAME_lc);
+ for (keys %$ref) { $form->{$_} = $ref->{$_} }
+
+ $form->{defaults}{IC} = $form->{inventory_accno_id};
+ $form->{defaults}{IC_income} = $form->{income_accno_id};
+ $form->{defaults}{IC_sale} = $form->{income_accno_id};
+ $form->{defaults}{IC_expense} = $form->{expense_accno_id};
+ $form->{defaults}{IC_cogs} = $form->{expense_accno_id};
+ $form->{defaults}{FX_gain} = $form->{fxgain_accno_id};
+ $form->{defaults}{FX_loss} = $form->{fxloss_accno_id};
+
+ $sth->finish;
+
+ $query = qq|SELECT id, accno, description, link
+ FROM chart
+ WHERE link LIKE '%IC%'
+ ORDER BY accno|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my $nkey;
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ foreach my $key (split(/:/, $ref->{link})) {
+ if ($key =~ /IC/) {
+ $nkey = $key;
+
+ if ($key =~ /cogs/) {
+ $nkey = "IC_expense";
+ }
+
+ if ($key =~ /sale/) {
+ $nkey = "IC_income";
+ }
+
+ %{ $form->{accno}{$nkey}{$ref->{accno}} } = ( id => $ref->{id},
+ description => $ref->{description} );
+ }
+ }
+ }
+
+ $sth->finish;
+
+
+ $query = qq|SELECT id, accno, description
+ FROM chart
+ WHERE (category = 'I' OR category = 'E')
+ AND charttype = 'A'
+ ORDER BY accno|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+ %{ $form->{accno}{FX_gain}{$ref->{accno}} } = ( id => $ref->{id},
+ description => $ref->{description} );
+
+ %{ $form->{accno}{FX_loss}{$ref->{accno}} } = ( id => $ref->{id},
+ description => $ref->{description} );
+ }
+
+ $sth->finish;
+
+ $dbh->disconnect;
+
+}
+
+
+sub taxes {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $query = qq|SELECT c.id, c.accno, c.description,
+ t.rate * 100 AS rate, t.taxnumber, t.validto
+ FROM chart c
+ JOIN tax t ON (c.id = t.chart_id)
+ ORDER BY 3, 6|;
+
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{taxrates} }, $ref;
+ }
+
+ $sth->finish;
+
+ $dbh->disconnect;
+
+}
+
+
+sub save_taxes {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ my $query = qq|DELETE FROM tax|;
+ $dbh->do($query) || $form->dberror($query);
+
+ foreach my $item (split / /, $form->{taxaccounts}) {
+ my ($chart_id, $i) = split /_/, $item;
+ my $rate = $form->parse_amount($myconfig, $form->{"taxrate_$i"}) / 100;
+
+ $query = qq|INSERT INTO tax (chart_id, rate, taxnumber, validto)
+ VALUES ($chart_id, $rate, |
+ .$dbh->quote($form->{"taxnumber_$i"}).qq|, |
+ .$form->dbquote($form->{"validto_$i"}, SQL_DATE)
+ .qq|)|;
+
+ $dbh->do($query) || $form->dberror($query);
+ }
+
+ my $rc = $dbh->commit;
+ $dbh->disconnect;
+
+ $rc;
+
+}
+
+
+sub backup {
+
+ my ($self, $myconfig, $form, $userspath, $gzip) = @_;
+
+ my $mail;
+ my $err;
+
+ my @t = localtime(time);
+ $t[4]++;
+ $t[5] += 1900;
+ $t[3] = substr("0$t[3]", -2);
+ $t[4] = substr("0$t[4]", -2);
+
+ my $boundary = time;
+ my $tmpfile = "$userspath/$boundary.$myconfig->{dbname}-$form->{dbversion}-$t[5]$t[4]$t[3].sql";
+ my $out = $form->{OUT};
+ $form->{OUT} = ">$tmpfile";
+
+ open(OUT, "$form->{OUT}") or $form->error("$form->{OUT} : $!");
+
+ # get sequences, functions and triggers
+ my @tables = ();
+ my @sequences = ();
+ my @functions = ();
+ my @triggers = ();
+ my @schema = ();
+
+ # get dbversion from -tables.sql
+ my $file = "$myconfig->{dbdriver}-tables.sql";
+
+ open(FH, "sql/$file") or $form->error("sql/$file : $!");
+
+ my @a = <FH>;
+ close(FH);
+
+ @dbversion = grep /defaults \(version\)/, @a;
+
+ $dbversion = "@dbversion";
+ $dbversion =~ /(\d+\.\d+\.\d+)/;
+ $dbversion = User::calc_version($1);
+
+ opendir SQLDIR, "sql/." or $form->error($!);
+ @a = grep /$myconfig->{dbdriver}-upgrade-.*?\.sql$/, readdir SQLDIR;
+ closedir SQLDIR;
+
+ my $mindb;
+ my $maxdb;
+
+ foreach my $line (@a) {
+
+ $upgradescript = $line;
+ $line =~ s/(^$myconfig->{dbdriver}-upgrade-|\.sql$)//g;
+
+ ($mindb, $maxdb) = split /-/, $line;
+ $mindb = User::calc_version($mindb);
+
+ next if $mindb < $dbversion;
+
+ $maxdb = User::calc_version($maxdb);
+
+ $upgradescripts{$maxdb} = $upgradescript;
+ }
+
+
+ $upgradescripts{$dbversion} = "$myconfig->{dbdriver}-tables.sql";
+ $upgradescripts{functions} = "$myconfig->{dbdriver}-functions.sql";
+
+ if (-f "sql/$myconfig->{dbdriver}-custom_tables.sql") {
+ $upgradescripts{customtables} = "$myconfig->{dbdriver}-custom_tables.sql";
+ }
+
+ if (-f "sql/$myconfig->{dbdriver}-custom_functions.sql") {
+ $upgradescripts{customfunctions} = "$myconfig->{dbdriver}-custom_functions.sql";
+ }
+
+ foreach my $key (sort keys %upgradescripts) {
+
+ $file = $upgradescripts{$key};
+
+ open(FH, "sql/$file") or $form->error("sql/$file : $!");
+
+ push @schema, qq|-- $file\n|;
+
+ while (<FH>) {
+
+ if (/create table (\w+)/i) {
+ push @tables, $1;
+ }
+
+ if (/create sequence (\w+)/i) {
+ push @sequences, $1;
+ next;
+ }
+
+ if (/end function/i) {
+ push @functions, $_;
+ $function = 0;
+ $temp = 0;
+ next;
+ }
+
+ if (/create function /i) {
+ $function = 1;
+ }
+
+ if ($function) {
+ push @functions, $_;
+ next;
+ }
+
+ if (/end trigger/i) {
+ push @triggers, $_;
+ $trigger = 0;
+ next;
+ }
+
+ if (/create trigger/i) {
+ $trigger = 1;
+ }
+
+ if ($trigger) {
+ push @triggers, $_;
+ next;
+ }
+
+ push @schema, $_ if $_ !~ /^(insert|--)/i;
+
+ }
+
+ close(FH);
+
+ }
+
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $today = scalar localtime;
+
+ $myconfig->{dbhost} = 'localhost' unless $myconfig->{dbhost};
+
+ print OUT qq|-- LedgerSMB Backup
+ -- Dataset: $myconfig->{dbname}
+ -- Version: $form->{dbversion}
+ -- Host: $myconfig->{dbhost}
+ -- Login: $form->{login}
+ -- User: $myconfig->{name}
+ -- Date: $today
+ --
+ |;
+
+
+ @tables = grep !/^temp/, @tables;
+ # drop tables and sequences
+ for (@tables) { print OUT qq|DROP TABLE $_;\n| }
+
+ print OUT "--\n";
+
+ # triggers and index files are dropped with the tables
+
+ # drop functions
+ foreach $item (@functions) {
+ if ($item =~ /create function (.*\))/i) {
+ print OUT qq|DROP FUNCTION $1;\n|;
+ }
+ }
+
+ # create sequences
+ foreach $item (@sequences) {
+
+ if ($myconfig->{dbdriver} eq 'DB2') {
+ $query = qq|SELECT NEXTVAL FOR $item FROM sysibm.sysdummy1|;
+ } else {
+ $query = qq|SELECT last_value FROM $item|;
+ }
+
+ my ($id) = $dbh->selectrow_array($query);
+
+ if ($myconfig->{dbdriver} eq 'DB2') {
+ print OUT qq|DROP SEQUENCE $item RESTRICT
+ CREATE SEQUENCE $item AS INTEGER START WITH $id INCREMENT BY 1 MAXVALUE 2147483647 MINVALUE 1 CACHE 5;\n|;
+ } else {
+ if ($myconfig->{dbdriver} eq 'Pg') {
+ print OUT qq|CREATE SEQUENCE $item;
+ SELECT SETVAL('$item', $id, FALSE);\n|;
+ } else {
+ print OUT qq|DROP SEQUENCE $item
+ CREATE SEQUENCE $item START $id;\n|;
+ }
+ }
+ }
+
+ print OUT "--\n";
+
+ # add schema
+ print OUT @schema;
+ print OUT "\n";
+
+ print OUT qq|-- set options
+ $myconfig->{dboptions};
+ --
+ |;
+
+ my $query;
+ my $sth;
+ my @arr;
+ my $fields;
+
+ foreach $table (@tables) {
+
+ $query = qq|SELECT * FROM $table|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ $query = qq|INSERT INTO $table (|;
+ $query .= join ',', (map { $sth->{NAME}->[$_] } (0 .. $sth->{NUM_OF_FIELDS} - 1));
+ $query .= qq|) VALUES|;
+
+ while (@arr = $sth->fetchrow_array) {
+
+ $fields = "(";
+
+ $fields .= join ',', map { $dbh->quote($_) } @arr;
+ $fields .= ")";
+
+ print OUT qq|$query $fields;\n|;
+ }
+
+ $sth->finish;
+ }
+
+ print OUT "--\n";
+
+ # functions
+ for (@functions) { print OUT $_ }
+
+ # triggers
+ for (@triggers) { print OUT $_ }
+
+ # add the index files
+ open(FH, "sql/$myconfig->{dbdriver}-indices.sql");
+ @a = <FH>;
+ close(FH);
+ print OUT @a;
+
+ close(OUT);
+
+ $dbh->disconnect;
+
+ # compress backup if gzip defined
+ my $suffix = "";
+
+ if ($gzip) {
+ my @args = split / /, $gzip;
+ my @s = @args;
+
+ push @args, "$tmpfile";
+ system(@args) == 0 or $form->error("$args[0] : $?");
+
+ shift @s;
+ my %s = @s;
+ $suffix = ${-S} || ".gz";
+ $tmpfile .= $suffix;
+ }
+
+ if ($form->{media} eq 'email') {
+
+ use LedgerSMB::Mailer;
+ $mail = new Mailer;
+
+ $mail->{to} = qq|"$myconfig->{name}" <$myconfig->{email}>|;
+ $mail->{from} = qq|"$myconfig->{name}" <$myconfig->{email}>|;
+ $mail->{subject} = "LedgerSMB Backup / $myconfig->{dbname}-$form->{dbversion}-$t[5]$t[4]$t[3].sql$suffix";
+ @{ $mail->{attachments} } = ($tmpfile);
+ $mail->{version} = $form->{version};
+ $mail->{fileid} = "$boundary.";
+
+ $myconfig->{signature} =~ s/\\n/\n/g;
+ $mail->{message} = "-- \n$myconfig->{signature}";
+
+ $err = $mail->send($out);
+ }
+
+ if ($form->{media} eq 'file') {
+
+ open(IN, "$tmpfile") or $form->error("$tmpfile : $!");
+ open(OUT, ">-") or $form->error("STDOUT : $!");
+
+ print OUT qq|Content-Type: application/file;
+ Content-Disposition: attachment; filename="$myconfig->{dbname}-$form->{dbversion}-$t[5]$t[4]$t[3].sql$suffix"
+
+ |;
+ binmode(IN);
+ binmode(OUT);
+
+ while (<IN>) {
+ print OUT $_;
+ }
+
+ close(IN);
+ close(OUT);
+
+ }
+
+ unlink "$tmpfile";
+
+}
+
+
+sub closedto {
+ my ($self, $myconfig, $form) = @_;
+
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $query = qq|SELECT closedto, revtrans, audittrail
+ FROM defaults|;
+
+ ($form->{closedto}, $form->{revtrans}, $form->{audittrail}) = $dbh->selectrow_array($query);
+
+ $dbh->disconnect;
+
+}
+
+
+sub closebooks {
+
+ my ($self, $myconfig, $form) = @_;
+
+ my $dbh = $form->dbconnect_noauto($myconfig);
+ my $query = qq|UPDATE defaults SET|;
+
+ if ($form->{revtrans}) {
+ $query .= qq| revtrans = '1'|;
+ } else {
+ $query .= qq| revtrans = '0'|;
+ }
+
+ $query .= qq|, closedto = |.$form->dbquote($form->{closedto}, SQL_DATE);
+
+ if ($form->{audittrail}) {
+ $query .= qq|, audittrail = '1'|;
+ } else {
+ $query .= qq|, audittrail = '0'|;
+ }
+
+ # set close in defaults
+ $dbh->do($query) || $form->dberror($query);
+
+ if ($form->{removeaudittrail}) {
+ $query = qq|DELETE FROM audittrail
+ WHERE transdate < '$form->{removeaudittrail}'|;
+
+ $dbh->do($query) || $form->dberror($query);
+ }
+
+ $dbh->commit;
+ $dbh->disconnect;
+
+}
+
+
+sub earningsaccounts {
+
+ my ($self, $myconfig, $form) = @_;
+
+ my ($query, $sth, $ref);
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ # get chart of accounts
+ $query = qq|SELECT accno,description
+ FROM chart
+ WHERE charttype = 'A'
+ AND category = 'Q'
+ ORDER BY accno|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+ $form->{chart} = "";
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{chart} }, $ref;
+ }
+
+ $sth->finish;
+ $dbh->disconnect;
+}
+
+
+sub post_yearend {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database, turn off AutoCommit
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ my $query;
+ my $uid = localtime;
+ $uid .= "$$";
+
+ $query = qq|INSERT INTO gl (reference, employee_id)
+ VALUES ('$uid', (SELECT id FROM employee
+ WHERE login = '$form->{login}'))|;
+
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|SELECT id
+ FROM gl
+ WHERE reference = '$uid'|;
+
+ ($form->{id}) = $dbh->selectrow_array($query);
+
+ $query = qq|UPDATE gl
+ SET reference = |.$dbh->quote($form->{reference}).qq|,
+ description = |.$dbh->quote($form->{description}).qq|,
+ notes = |.$dbh->quote($form->{notes}).qq|,
+ transdate = '$form->{transdate}',
+ department_id = 0
+ WHERE id = $form->{id}|;
+
+ $dbh->do($query) || $form->dberror($query);
+
+ my $amount;
+ my $accno;
+
+ # insert acc_trans transactions
+ for my $i (1 .. $form->{rowcount}) {
+ # extract accno
+ ($accno) = split(/--/, $form->{"accno_$i"});
+ $amount = 0;
+
+ if ($form->{"credit_$i"}) {
+ $amount = $form->{"credit_$i"};
+ }
+
+ if ($form->{"debit_$i"}) {
+ $amount = $form->{"debit_$i"} * -1;
+ }
+
+
+ # if there is an amount, add the record
+ if ($amount) {
+ $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate, source)
+ VALUES ($form->{id}, (SELECT id
+ FROM chart
+ WHERE accno = '$accno'),
+ $amount, '$form->{transdate}', |
+ .$dbh->quote($form->{reference}).qq|)|;
+
+ $dbh->do($query) || $form->dberror($query);
+ }
+ }
+
+ $query = qq|INSERT INTO yearend (trans_id, transdate)
+ VALUES ($form->{id}, '$form->{transdate}')|;
+
+ $dbh->do($query) || $form->dberror($query);
+
+ my %audittrail = ( tablename => 'gl',
+ reference => $form->{reference},
+ formname => 'yearend',
+ action => 'posted',
+ id => $form->{id} );
+
+ $form->audittrail($dbh, "", \%audittrail);
+
+ # commit and redirect
+ my $rc = $dbh->commit;
+ $dbh->disconnect;
+
+ $rc;
+
+}
+
+
+1;
diff --git a/LedgerSMB/BP.pm b/LedgerSMB/BP.pm
new file mode 100755
index 00000000..c1feadc2
--- /dev/null
+++ b/LedgerSMB/BP.pm
@@ -0,0 +1,326 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has undergone whitespace cleanup.
+#
+#======================================================================
+#
+# Batch printing module backend routines
+#
+#======================================================================
+
+package BP;
+
+
+sub get_vc {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my %arap = ( invoice => ['ar'],
+ packing_list => ['oe', 'ar'],
+ sales_order => ['oe'],
+ work_order => ['oe'],
+ pick_list => ['oe', 'ar'],
+ purchase_order => ['oe'],
+ bin_list => ['oe'],
+ sales_quotation => ['oe'],
+ request_quotation => ['oe'],
+ timecard => ['jcitems'],);
+
+ my $query = "";
+ my $sth;
+ my $n;
+ my $count;
+ my $item;
+
+ foreach $item (@{ $arap{$form->{type}} }) {
+ $query = qq|SELECT count(*)
+ FROM (SELECT DISTINCT vc.id
+ FROM $form->{vc} vc, $item a, status s
+ WHERE a.$form->{vc}_id = vc.id
+ AND s.trans_id = a.id
+ AND s.formname = '$form->{type}'
+ AND s.spoolfile IS NOT NULL) AS total|;
+
+ ($n) = $dbh->selectrow_array($query);
+ $count += $n;
+ }
+
+ # build selection list
+ my $union = "";
+ $query = "";
+
+ if ($count < $myconfig->{vclimit}) {
+
+ foreach $item (@{ $arap{$form->{type}} }) {
+ $query .= qq| $union
+ SELECT DISTINCT vc.id, vc.name
+ FROM $item a
+ JOIN $form->{vc} vc ON (a.$form->{vc}_id = vc.id)
+ JOIN status s ON (s.trans_id = a.id)
+ WHERE s.formname = '$form->{type}'
+ AND s.spoolfile IS NOT NULL|;
+ $union = "UNION";
+ }
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{"all_$form->{vc}"} }, $ref;
+ }
+
+ $sth->finish;
+ }
+
+ $form->all_years($myconfig, $dbh);
+ $dbh->disconnect;
+
+}
+
+
+sub get_spoolfiles {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $query;
+ my $invnumber = "invnumber";
+ my $item;
+
+ my %arap = ( invoice => ['ar'],
+ packing_list => ['oe', 'ar'],
+ sales_order => ['oe'],
+ work_order => ['oe'],
+ pick_list => ['oe', 'ar'],
+ purchase_order => ['oe'],
+ bin_list => ['oe'],
+ sales_quotation => ['oe'],
+ request_quotation => ['oe'],
+ timecard => ['jc'],);
+
+ ($form->{transdatefrom}, $form->{transdateto}) = $form->from_to($form->{year}, $form->{month}, $form->{interval}) if $form->{year} && $form->{month};
+
+ if ($form->{type} eq 'timecard') {
+ my $dateformat = $myconfig->{dateformat};
+ $dateformat =~ s/yy/yyyy/;
+ $dateformat =~ s/yyyyyy/yyyy/;
+
+ $invnumber = 'id';
+
+ $query = qq|SELECT j.id, e.name, j.id AS invnumber,
+ to_char(j.checkedin, '$dateformat') AS transdate,
+ '' AS ordnumber, '' AS quonumber, '0' AS invoice,
+ '$arap{$form->{type}}[0]' AS module, s.spoolfile
+ FROM jcitems j
+ JOIN employee e ON (e.id = j.employee_id)
+ JOIN status s ON (s.trans_id = j.id)
+ WHERE s.formname = '$form->{type}'
+ AND s.spoolfile IS NOT NULL|;
+
+ if ($form->{"$form->{vc}_id"}) {
+ $query .= qq| AND j.$form->{vc}_id = $form->{"$form->{vc}_id"}|;
+ } else {
+
+ if ($form->{$form->{vc}}) {
+ $item = $form->like(lc $form->{$form->{vc}});
+ $query .= " AND lower(e.name) LIKE '$item'";
+ }
+ }
+
+ $query .= " AND j.checkedin >= '$form->{transdatefrom}'" if $form->{transdatefrom};
+ $query .= " AND j.checkedin <= '$form->{transdateto}'" if $form->{transdateto};
+
+ } else {
+
+ foreach $item (@{ $arap{$form->{type}} }) {
+
+ $invoice = "a.invoice";
+ $invnumber = "invnumber";
+
+ if ($item eq 'oe') {
+ $invnumber = "ordnumber";
+ $invoice = "'0'";
+ }
+
+ $query .= qq| $union
+ SELECT a.id, vc.name, a.$invnumber AS invnumber, a.transdate,
+ a.ordnumber, a.quonumber, $invoice AS invoice,
+ '$item' AS module, s.spoolfile
+ FROM $item a, $form->{vc} vc, status s
+ WHERE s.trans_id = a.id
+ AND s.spoolfile IS NOT NULL
+ AND s.formname = '$form->{type}'
+ AND a.$form->{vc}_id = vc.id|;
+
+ if ($form->{"$form->{vc}_id"}) {
+ $query .= qq| AND a.$form->{vc}_id = $form->{"$form->{vc}_id"}|;
+ } else {
+
+ if ($form->{$form->{vc}} ne "") {
+ $item = $form->like(lc $form->{$form->{vc}});
+ $query .= " AND lower(vc.name) LIKE '$item'";
+ }
+ }
+
+ if ($form->{invnumber} ne "") {
+ $item = $form->like(lc $form->{invnumber});
+ $query .= " AND lower(a.invnumber) LIKE '$item'";
+ }
+
+ if ($form->{ordnumber} ne "") {
+ $item = $form->like(lc $form->{ordnumber});
+ $query .= " AND lower(a.ordnumber) LIKE '$item'";
+ }
+
+ if ($form->{quonumber} ne "") {
+ $item = $form->like(lc $form->{quonumber});
+ $query .= " AND lower(a.quonumber) LIKE '$item'";
+ }
+
+ $query .= " AND a.transdate >= '$form->{transdatefrom}'" if $form->{transdatefrom};
+ $query .= " AND a.transdate <= '$form->{transdateto}'" if $form->{transdateto};
+
+ $union = "UNION";
+
+ }
+ }
+
+ my %ordinal = ( 'name' => 2,
+ 'invnumber' => 3,
+ 'transdate' => 4,
+ 'ordnumber' => 5,
+ 'quonumber' => 6,);
+
+ my @a = ();
+ push @a, ("transdate", "$invnumber", "name");
+ my $sortorder = $form->sort_order(\@a, \%ordinal);
+ $query .= " ORDER by $sortorder";
+
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{SPOOL} }, $ref;
+ }
+
+ $sth->finish;
+ $dbh->disconnect;
+
+}
+
+
+sub delete_spool {
+
+ my ($self, $myconfig, $form, $spool) = @_;
+
+ # connect to database, turn AutoCommit off
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ my $query;
+ my %audittrail;
+
+ $query = qq|UPDATE status
+ SET spoolfile = NULL
+ WHERE spoolfile = ?|;
+
+ my $sth = $dbh->prepare($query) || $form->dberror($query);
+
+ foreach my $i (1 .. $form->{rowcount}) {
+
+ if ($form->{"checked_$i"}) {
+ $sth->execute($form->{"spoolfile_$i"}) || $form->dberror($query);
+ $sth->finish;
+
+ %audittrail = ( tablename => $form->{module},
+ reference => $form->{"reference_$i"},
+ formname => $form->{type},
+ action => 'dequeued',
+ id => $form->{"id_$i"} );
+
+ $form->audittrail($dbh, "", \%audittrail);
+ }
+ }
+
+ # commit
+ my $rc = $dbh->commit;
+ $dbh->disconnect;
+
+ if ($rc) {
+ foreach my $i (1 .. $form->{rowcount}) {
+ $_ = qq|$spool/$form->{"spoolfile_$i"}|;
+ if ($form->{"checked_$i"}) {
+ unlink;
+ }
+ }
+ }
+
+ $rc;
+}
+
+
+sub print_spool {
+
+ my ($self, $myconfig, $form, $spool) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ my %audittrail;
+
+ my $query = qq|UPDATE status
+ SET printed = '1'
+ WHERE spoolfile = ?|;
+
+ my $sth = $dbh->prepare($query) || $form->dberror($query);
+
+ foreach my $i (1 .. $form->{rowcount}) {
+
+ if ($form->{"checked_$i"}) {
+ open(OUT, $form->{OUT}) or $form->error("$form->{OUT} : $!");
+ binmode(OUT);
+
+ $spoolfile = qq|$spool/$form->{"spoolfile_$i"}|;
+
+ # send file to printer
+ open(IN, $spoolfile) or $form->error("$spoolfile : $!");
+ binmode(IN);
+
+ while (<IN>) {
+ print OUT $_;
+ }
+
+ close(IN);
+ close(OUT);
+
+ $sth->execute($form->{"spoolfile_$i"}) || $form->dberror($query);
+ $sth->finish;
+
+ %audittrail = ( tablename => $form->{module},
+ reference => $form->{"reference_$i"},
+ formname => $form->{type},
+ action => 'printed',
+ id => $form->{"id_$i"} );
+
+ $form->audittrail($dbh, "", \%audittrail);
+
+ $dbh->commit;
+ }
+ }
+
+ $dbh->disconnect;
+
+}
+
+
+1;
+
diff --git a/LedgerSMB/CA.pm b/LedgerSMB/CA.pm
new file mode 100755
index 00000000..d6df616d
--- /dev/null
+++ b/LedgerSMB/CA.pm
@@ -0,0 +1,378 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has undergone whitespace cleanup.
+#
+#======================================================================
+#
+# chart of accounts
+#
+#======================================================================
+
+
+package CA;
+
+
+sub all_accounts {
+
+ my ($self, $myconfig, $form) = @_;
+
+ my $amount = ();
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $query = qq|SELECT accno, SUM(acc_trans.amount) AS amount
+ FROM chart, acc_trans
+ WHERE chart.id = acc_trans.chart_id
+ GROUP BY accno|;
+
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+ $amount{$ref->{accno}} = $ref->{amount}
+ }
+
+ $sth->finish;
+
+ $query = qq|SELECT accno, description
+ FROM gifi|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my $gifi = ();
+
+ while (my ($accno, $description) = $sth->fetchrow_array) {
+ $gifi{$accno} = $description;
+ }
+
+ $sth->finish;
+
+ $query = qq|SELECT c.id, c.accno, c.description, c.charttype,
+ c.gifi_accno, c.category, c.link
+ FROM chart c
+ ORDER BY accno|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while (my $ca = $sth->fetchrow_hashref(NAME_lc)) {
+ $ca->{amount} = $amount{$ca->{accno}};
+ $ca->{gifi_description} = $gifi{$ca->{gifi_accno}};
+
+ if ($ca->{amount} < 0) {
+ $ca->{debit} = $ca->{amount} * -1;
+ } else {
+ $ca->{credit} = $ca->{amount};
+ }
+
+ push @{ $form->{CA} }, $ca;
+ }
+
+ $sth->finish;
+ $dbh->disconnect;
+
+}
+
+
+sub all_transactions {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ # get chart_id
+ my $query = qq|SELECT id
+ FROM chart
+ WHERE accno = '$form->{accno}'|;
+
+ if ($form->{accounttype} eq 'gifi') {
+ $query = qq|SELECT id
+ FROM chart
+ WHERE gifi_accno = '$form->{gifi_accno}'|;
+ }
+
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my @id = ();
+
+ while (my ($id) = $sth->fetchrow_array) {
+ push @id, $id;
+ }
+
+ $sth->finish;
+
+ my $fromdate_where;
+ my $todate_where;
+
+ ($form->{fromdate}, $form->{todate}) = $form->from_to($form->{year}, $form->{month}, $form->{interval}) if $form->{year} && $form->{month};
+
+ if ($form->{fromdate}) {
+ $fromdate_where = qq| AND ac.transdate >= '$form->{fromdate}' |;
+ }
+
+ if ($form->{todate}) {
+ $todate_where .= qq| AND ac.transdate <= '$form->{todate}' |;
+ }
+
+
+ my $false = ($myconfig->{dbdriver} =~ /Pg/) ? FALSE : q|'0'|;
+
+ # Oracle workaround, use ordinal positions
+ my %ordinal = ( transdate => 4,
+ reference => 2,
+ description => 3 );
+
+ my @a = qw(transdate reference description);
+ my $sortorder = $form->sort_order(\@a, \%ordinal);
+
+ my $null;
+ my $department_id;
+ my $dpt_where;
+ my $dpt_join;
+ my $union;
+
+ ($null, $department_id) = split /--/, $form->{department};
+
+ if ($department_id) {
+ $dpt_join = qq| JOIN department t ON (t.id = a.department_id) |;
+ $dpt_where = qq| AND t.id = $department_id |;
+ }
+
+
+ my $project;
+ my $project_id;
+
+ if ($form->{projectnumber}) {
+ ($null, $project_id) = split /--/, $form->{projectnumber};
+ $project = qq| AND ac.project_id = $project_id |;
+ }
+
+ if ($form->{accno} || $form->{gifi_accno}) {
+ # get category for account
+ $query = qq|SELECT description, category, link, contra
+ FROM chart
+ WHERE accno = '$form->{accno}'|;
+
+ if ($form->{accounttype} eq 'gifi') {
+ $query = qq|SELECT description, category, link, contra
+ FROM chart
+ WHERE gifi_accno = '$form->{gifi_accno}'
+ AND charttype = 'A'|;
+ }
+
+ ($form->{description}, $form->{category}, $form->{link}, $form->{contra}) = $dbh->selectrow_array($query);
+
+ if ($form->{fromdate}) {
+
+ if ($department_id) {
+
+ # get beginning balance
+ $query = "";
+ $union = "";
+
+ for (qw(ar ap gl)) {
+
+ if ($form->{accounttype} eq 'gifi') {
+ $query = qq| $union
+ SELECT SUM(ac.amount)
+ FROM acc_trans ac
+ JOIN $_ a ON (a.id = ac.trans_id)
+ JOIN chart c ON (ac.chart_id = c.id)
+ WHERE c.gifi_accno = '$form->{gifi_accno}'
+ AND ac.transdate < '$form->{fromdate}'
+ AND a.department_id = $department_id
+ $project |;
+
+ } else {
+
+ $query .= qq| $union
+ SELECT SUM(ac.amount)
+ FROM acc_trans ac
+ JOIN $_ a ON (a.id = ac.trans_id)
+ JOIN chart c ON (ac.chart_id = c.id)
+ WHERE c.accno = '$form->{accno}'
+ AND ac.transdate < '$form->{fromdate}'
+ AND a.department_id = $department_id
+ $project |;
+ }
+
+ $union = qq| UNION ALL |;
+ }
+
+ } else {
+
+ if ($form->{accounttype} eq 'gifi') {
+ $query = qq|SELECT SUM(ac.amount)
+ FROM acc_trans ac
+ JOIN chart c ON (ac.chart_id = c.id)
+ WHERE c.gifi_accno = '$form->{gifi_accno}'
+ AND ac.transdate < '$form->{fromdate}'
+ $project |;
+ } else {
+ $query = qq|SELECT SUM(ac.amount)
+ FROM acc_trans ac
+ JOIN chart c ON (ac.chart_id = c.id)
+ WHERE c.accno = '$form->{accno}'
+ AND ac.transdate < '$form->{fromdate}'
+ $project |;
+ }
+ }
+
+ ($form->{balance}) = $dbh->selectrow_array($query);
+
+ }
+ }
+
+ $query = "";
+ $union = "";
+
+ foreach my $id (@id) {
+
+ # get all transactions
+ $query .= qq|$union
+ SELECT a.id, a.reference, a.description, ac.transdate,
+ $false AS invoice, ac.amount, 'gl' as module, ac.cleared,
+ ac.source, '' AS till, ac.chart_id
+ FROM gl a
+ JOIN acc_trans ac ON (ac.trans_id = a.id)
+ $dpt_join
+ WHERE ac.chart_id = $id
+ $fromdate_where
+ $todate_where
+ $dpt_where
+ $project
+
+ UNION ALL
+
+ SELECT a.id, a.invnumber, c.name, ac.transdate,
+ a.invoice, ac.amount, 'ar' as module, ac.cleared,
+ ac.source,
+ a.till, ac.chart_id
+ FROM ar a
+ JOIN acc_trans ac ON (ac.trans_id = a.id)
+ JOIN customer c ON (a.customer_id = c.id)
+ $dpt_join
+ WHERE ac.chart_id = $id
+ $fromdate_where
+ $todate_where
+ $dpt_where
+ $project
+
+ UNION ALL
+
+ SELECT a.id, a.invnumber, v.name, ac.transdate,
+ a.invoice, ac.amount, 'ap' as module, ac.cleared,
+ ac.source, a.till, ac.chart_id
+ FROM ap a
+ JOIN acc_trans ac ON (ac.trans_id = a.id)
+ JOIN vendor v ON (a.vendor_id = v.id)
+ $dpt_join
+ WHERE ac.chart_id = $id
+ $fromdate_where
+ $todate_where
+ $dpt_where
+ $project |;
+
+ $union = qq| UNION ALL |;
+ }
+
+ $query .= qq| ORDER BY $sortorder |;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ $query = qq|SELECT c.id, c.accno
+ FROM chart c
+ JOIN acc_trans ac ON (ac.chart_id = c.id)
+ WHERE ac.amount >= 0
+ AND (c.link = 'AR' OR c.link = 'AP')
+ AND ac.trans_id = ?|;
+
+ my $dr = $dbh->prepare($query) || $form->dberror($query);
+
+ $query = qq|SELECT c.id, c.accno
+ FROM chart c
+ JOIN acc_trans ac ON (ac.chart_id = c.id)
+ WHERE ac.amount < 0
+ AND (c.link = 'AR' OR c.link = 'AP')
+ AND ac.trans_id = ?|;
+
+ my $cr = $dbh->prepare($query) || $form->dberror($query);
+
+ my $accno;
+ my $chart_id;
+ my %accno;
+
+ while (my $ca = $sth->fetchrow_hashref(NAME_lc)) {
+
+ # gl
+ if ($ca->{module} eq "gl") {
+ $ca->{module} = "gl";
+ }
+
+ # ap
+ if ($ca->{module} eq "ap") {
+ $ca->{module} = ($ca->{invoice}) ? 'ir' : 'ap';
+ $ca->{module} = 'ps' if $ca->{till};
+ }
+
+ # ar
+ if ($ca->{module} eq "ar") {
+ $ca->{module} = ($ca->{invoice}) ? 'is' : 'ar';
+ $ca->{module} = 'ps' if $ca->{till};
+ }
+
+ if ($ca->{amount}) {
+ %accno = ();
+
+ if ($ca->{amount} < 0) {
+ $ca->{debit} = $ca->{amount} * -1;
+ $ca->{credit} = 0;
+ $dr->execute($ca->{id});
+ $ca->{accno} = ();
+
+ while (($chart_id, $accno) = $dr->fetchrow_array) {
+ $accno{$accno} = 1 if $chart_id ne $ca->{chart_id};
+ }
+
+ $dr->finish;
+
+ for (sort keys %accno) { push @{ $ca->{accno} }, "$_ " }
+
+ } else {
+
+ $ca->{credit} = $ca->{amount};
+ $ca->{debit} = 0;
+
+ $cr->execute($ca->{id});
+ $ca->{accno} = ();
+
+ while (($chart_id, $accno) = $cr->fetchrow_array) {
+ $accno{$accno} = 1 if $chart_id ne $ca->{chart_id};
+ }
+
+ $cr->finish;
+
+ for (keys %accno) { push @{ $ca->{accno} }, "$_ " }
+
+ }
+
+ push @{ $form->{CA} }, $ca;
+ }
+ }
+
+ $sth->finish;
+ $dbh->disconnect;
+
+}
+
+1;
+
diff --git a/LedgerSMB/CP.pm b/LedgerSMB/CP.pm
new file mode 100755
index 00000000..897783fe
--- /dev/null
+++ b/LedgerSMB/CP.pm
@@ -0,0 +1,684 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has undergone whitespace cleanup.
+#
+#======================================================================
+#
+# Check and receipt printing payment module backend routines
+# Number to text conversion routines are in
+# locale/{countrycode}/Num2text
+#
+#======================================================================
+
+package CP;
+
+
+sub new {
+
+ my ($type, $countrycode) = @_;
+
+ $self = {};
+
+ if ($countrycode) {
+
+ if (-f "locale/$countrycode/Num2text") {
+ require "locale/$countrycode/Num2text";
+ } else {
+ use LedgerSMB::Num2text;
+ }
+
+ } else {
+ use LedgerSMB::Num2text;
+ }
+
+ bless $self, $type;
+
+}
+
+
+sub paymentaccounts {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $query = qq|SELECT accno, description, link
+ FROM chart
+ WHERE link LIKE '%$form->{ARAP}%'
+ ORDER BY accno|;
+
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ $form->{PR}{$form->{ARAP}} = ();
+ $form->{PR}{"$form->{ARAP}_paid"} = ();
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+
+ foreach my $item (split /:/, $ref->{link}) {
+
+ if ($item eq $form->{ARAP}) {
+ push @{ $form->{PR}{$form->{ARAP}} }, $ref;
+ }
+
+ if ($item eq "$form->{ARAP}_paid") {
+ push @{ $form->{PR}{"$form->{ARAP}_paid"} }, $ref;
+ }
+ }
+ }
+
+ $sth->finish;
+
+ # get currencies and closedto
+ $query = qq|SELECT curr, closedto, current_date
+ FROM defaults|;
+
+ ($form->{currencies}, $form->{closedto}, $form->{datepaid}) = $dbh->selectrow_array($query);
+
+ if ($form->{payment} eq 'payments') {
+ # get language codes
+ $query = qq|SELECT *
+ FROM language
+ ORDER BY 2|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $self->dberror($query);
+
+ $form->{all_language} = ();
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{all_language} }, $ref;
+ }
+
+ $sth->finish;
+
+ $form->all_departments($myconfig, $dbh, $form->{vc});
+ }
+
+ $dbh->disconnect;
+
+}
+
+
+sub get_openvc {
+
+ my ($self, $myconfig, $form) = @_;
+
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $arap = ($form->{vc} eq 'customer') ? 'ar' : 'ap';
+ my $query = qq|SELECT count(*)
+ FROM $form->{vc} ct, $arap a
+ WHERE a.$form->{vc}_id = ct.id
+ AND a.amount != a.paid|;
+
+ my ($count) = $dbh->selectrow_array($query);
+
+ my $sth;
+ my $ref;
+ my $i = 0;
+
+ my $where = qq|WHERE a.$form->{vc}_id = ct.id
+ AND a.amount != a.paid|;
+
+ if ($form->{$form->{vc}}) {
+ my $var = $form->like(lc $form->{$form->{vc}});
+ $where .= " AND lower(name) LIKE '$var'";
+ }
+
+ # build selection list
+ $query = qq|SELECT DISTINCT ct.*
+ FROM $form->{vc} ct, $arap a
+ $where
+ ORDER BY name|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ $i++;
+ push @{ $form->{name_list} }, $ref;
+ }
+
+ $sth->finish;
+
+ $form->all_departments($myconfig, $dbh, $form->{vc});
+
+ # get language codes
+ $query = qq|SELECT *
+ FROM language
+ ORDER BY 2|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $self->dberror($query);
+
+ $form->{all_language} = ();
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{all_language} }, $ref;
+ }
+
+ $sth->finish;
+
+ # get currency for first name
+ if (@{ $form->{name_list} }) {
+ $query = qq|SELECT curr
+ FROM $form->{vc}
+ WHERE id = $form->{name_list}->[0]->{id}|;
+
+ ($form->{currency}) = $dbh->selectrow_array($query);
+ $form->{currency} ||= $form->{defaultcurrency};
+ }
+
+ $dbh->disconnect;
+
+ $i;
+}
+
+
+sub get_openinvoices {
+
+ my ($self, $myconfig, $form) = @_;
+
+ my $null;
+ my $department_id;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $where = qq|WHERE a.$form->{vc}_id = $form->{"$form->{vc}_id"}
+ AND a.amount != a.paid|;
+
+ $where .= qq| AND a.curr = '$form->{currency}'| if $form->{currency};
+
+ my $sortorder = "transdate, invnumber";
+
+ my ($buysell);
+
+ if ($form->{vc} eq 'customer') {
+ $buysell = "buy";
+ } else {
+ $buysell = "sell";
+ }
+
+ if ($form->{payment} eq 'payments') {
+
+ $where = qq|WHERE a.amount != a.paid|;
+ $where .= qq| AND a.curr = '$form->{currency}'| if $form->{currency};
+
+ if ($form->{duedatefrom}) {
+ $where .= qq| AND a.duedate >= '$form->{duedatefrom}'|;
+ }
+
+ if ($form->{duedateto}) {
+ $where .= qq| AND a.duedate <= '$form->{duedateto}'|;
+ }
+
+ $sortorder = "name, transdate";
+ }
+
+
+ ($null, $department_id) = split /--/, $form->{department};
+
+ if ($department_id) {
+ $where .= qq| AND a.department_id = $department_id|;
+ }
+
+ my $query = qq|SELECT a.id, a.invnumber, a.transdate, a.amount, a.paid,
+ a.curr, c.name, a.$form->{vc}_id, c.language_code
+ FROM $form->{arap} a
+ JOIN $form->{vc} c ON (c.id = a.$form->{vc}_id)
+ $where
+ ORDER BY $sortorder|;
+
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ $query = qq|SELECT s.spoolfile
+ FROM status s
+ WHERE s.formname = '$form->{formname}'
+ AND s.trans_id = ?|;
+
+ my $vth = $dbh->prepare($query);
+
+ my $spoolfile;
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+
+ # if this is a foreign currency transaction get exchangerate
+ $ref->{exchangerate} = $form->get_exchangerate($dbh, $ref->{curr}, $ref->{transdate}, $buysell) if ($form->{currency} ne $form->{defaultcurrency});
+
+ $vth->execute($ref->{id});
+ $ref->{queue} = "";
+
+ while (($spoolfile) = $vth->fetchrow_array) {
+ $ref->{queued} .= "$form->{formname} $spoolfile ";
+ }
+
+ $vth->finish;
+ $ref->{queued} =~ s/ +$//g;
+
+ push @{ $form->{PR} }, $ref;
+ }
+
+ $sth->finish;
+ $dbh->disconnect;
+
+}
+
+
+
+sub post_payment {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database, turn AutoCommit off
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ my $sth;
+
+ my ($paymentaccno) = split /--/, $form->{account};
+
+ # if currency ne defaultcurrency update exchangerate
+ if ($form->{currency} ne $form->{defaultcurrency}) {
+
+ $form->{exchangerate} = $form->parse_amount($myconfig, $form->{exchangerate});
+
+ if ($form->{vc} eq 'customer') {
+ $form->update_exchangerate($dbh, $form->{currency}, $form->{datepaid}, $form->{exchangerate}, 0);
+ } else {
+ $form->update_exchangerate($dbh, $form->{currency}, $form->{datepaid}, 0, $form->{exchangerate});
+ }
+
+ } else {
+ $form->{exchangerate} = 1;
+ }
+
+ my $query = qq|SELECT fxgain_accno_id, fxloss_accno_id
+ FROM defaults|;
+
+ my ($fxgain_accno_id, $fxloss_accno_id) = $dbh->selectrow_array($query);
+
+ my ($buysell);
+
+ if ($form->{vc} eq 'customer') {
+ $buysell = "buy";
+ } else {
+ $buysell = "sell";
+ }
+
+ my $ml;
+ my $where;
+
+ if ($form->{ARAP} eq 'AR') {
+
+ $ml = 1;
+ $where = qq| (c.link = 'AR' OR c.link LIKE 'AR:%') |;
+
+ } else {
+
+ $ml = -1;
+ $where = qq| (c.link = 'AP' OR c.link LIKE '%:AP' OR c.link LIKE '%:AP:%') |;
+
+ }
+
+ my $paymentamount = $form->parse_amount($myconfig, $form->{amount});
+
+ # query to retrieve paid amount
+ $query = qq|SELECT paid
+ FROM $form->{arap}
+ WHERE id = ?
+ FOR UPDATE|;
+
+ my $pth = $dbh->prepare($query) || $form->dberror($query);
+
+ my %audittrail;
+
+ # go through line by line
+ for my $i (1 .. $form->{rowcount}) {
+
+ $form->{"paid_$i"} = $form->parse_amount($myconfig, $form->{"paid_$i"});
+ $form->{"due_$i"} = $form->parse_amount($myconfig, $form->{"due_$i"});
+
+ if ($form->{"checked_$i"} && $form->{"paid_$i"}) {
+
+ $paymentamount -= $form->{"paid_$i"};
+
+ # get exchangerate for original
+ $query = qq|SELECT $buysell
+ FROM exchangerate e
+ JOIN $form->{arap} a ON (a.transdate = e.transdate)
+ WHERE e.curr = '$form->{currency}'
+ AND a.id = $form->{"id_$i"}|;
+
+ my ($exchangerate) = $dbh->selectrow_array($query);
+
+ $exchangerate = 1 unless $exchangerate;
+
+ $query = qq|SELECT c.id
+ FROM chart c
+ JOIN acc_trans a ON (a.chart_id = c.id)
+ WHERE $where
+ AND a.trans_id = $form->{"id_$i"}|;
+
+ my ($id) = $dbh->selectrow_array($query);
+
+ $amount = $form->round_amount($form->{"paid_$i"} * $exchangerate, 2);
+
+ # add AR/AP
+ $query = qq|INSERT INTO acc_trans (trans_id, chart_id, transdate, amount)
+ VALUES ($form->{"id_$i"}, $id, '$form->{datepaid}', $amount * $ml)|;
+
+ $dbh->do($query) || $form->dberror($query);
+
+ # add payment
+ $query = qq|INSERT INTO acc_trans (trans_id, chart_id, transdate,
+ amount, source, memo)
+ VALUES ($form->{"id_$i"}, (SELECT id
+ FROM chart
+ WHERE accno = '$paymentaccno'),
+ '$form->{datepaid}', $form->{"paid_$i"} * $ml * -1, |
+ .$dbh->quote($form->{source}).qq|, |
+ .$dbh->quote($form->{memo}).qq|)|;
+
+ $dbh->do($query) || $form->dberror($query);
+
+ # add exchangerate difference if currency ne defaultcurrency
+ $amount = $form->round_amount($form->{"paid_$i"} * ($form->{exchangerate} - 1), 2);
+
+ if ($amount) {
+ # exchangerate difference
+ $query = qq|INSERT INTO acc_trans (trans_id, chart_id, transdate,
+ amount, cleared, fx_transaction, source)
+ VALUES ($form->{"id_$i"}, (SELECT id
+ FROM chart
+ WHERE accno = '$paymentaccno'),
+ '$form->{datepaid}', $amount * $ml * -1, '0', '1', |
+ .$dbh->quote($form->{source}).qq|)|;
+
+ $dbh->do($query) || $form->dberror($query);
+
+ # gain/loss
+ $amount = ($form->round_amount($form->{"paid_$i"} * $exchangerate,2) - $form->round_amount($form->{"paid_$i"} * $form->{exchangerate},2)) * $ml * -1;
+
+ if ($amount) {
+
+ my $accno_id = ($amount > 0) ? $fxgain_accno_id : $fxloss_accno_id;
+
+ $query = qq|INSERT INTO acc_trans (trans_id, chart_id, transdate,
+ amount, cleared, fx_transaction)
+ VALUES ($form->{"id_$i"}, $accno_id,
+ '$form->{datepaid}', $amount, '0', '1')|;
+
+ $dbh->do($query) || $form->dberror($query);
+ }
+ }
+
+ $form->{"paid_$i"} = $form->round_amount($form->{"paid_$i"} * $exchangerate, 2);
+
+ $pth->execute($form->{"id_$i"}) || $form->dberror;
+ ($amount) = $pth->fetchrow_array;
+ $pth->finish;
+
+ $amount += $form->{"paid_$i"};
+
+ # update AR/AP transaction
+ $query = qq|UPDATE $form->{arap}
+ SET paid = $amount,
+ datepaid = '$form->{datepaid}'
+ WHERE id = $form->{"id_$i"}|;
+
+ $dbh->do($query) || $form->dberror($query);
+
+ %audittrail = ( tablename => $form->{arap},
+ reference => $form->{source},
+ formname => $form->{formname},
+ action => 'posted',
+ id => $form->{"id_$i"} );
+
+ $form->audittrail($dbh, "", \%audittrail);
+
+ }
+ }
+
+
+ # record a AR/AP with a payment
+ if ($form->round_amount($paymentamount, 2)) {
+ $form->{invnumber} = "";
+ OP::overpayment("", $myconfig, $form, $dbh, $paymentamount, $ml, 1);
+ }
+
+ my $rc = $dbh->commit;
+ $dbh->disconnect;
+
+ $rc;
+
+}
+
+
+sub post_payments {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database, turn AutoCommit off
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ my $sth;
+
+ my ($paymentaccno) = split /--/, $form->{account};
+
+ # if currency ne defaultcurrency update exchangerate
+ if ($form->{currency} ne $form->{defaultcurrency}) {
+ $form->{exchangerate} = $form->parse_amount($myconfig, $form->{exchangerate});
+
+ if ($form->{vc} eq 'customer') {
+ $form->update_exchangerate($dbh, $form->{currency}, $form->{datepaid}, $form->{exchangerate}, 0);
+ } else {
+ $form->update_exchangerate($dbh, $form->{currency}, $form->{datepaid}, 0, $form->{exchangerate});
+ }
+
+ } else {
+ $form->{exchangerate} = 1;
+ }
+
+ my $query = qq|SELECT fxgain_accno_id, fxloss_accno_id
+ FROM defaults|;
+
+ my ($fxgain_accno_id, $fxloss_accno_id) = $dbh->selectrow_array($query);
+
+ my ($buysell);
+
+ if ($form->{vc} eq 'customer') {
+ $buysell = "buy";
+ } else {
+ $buysell = "sell";
+ }
+
+ my $ml;
+ my $where;
+
+ if ($form->{ARAP} eq 'AR') {
+
+ $ml = 1;
+ $where = qq| (c.link = 'AR' OR c.link LIKE 'AR:%') |;
+
+ } else {
+
+ $ml = -1;
+ $where = qq| (c.link = 'AP' OR c.link LIKE '%:AP' OR c.link LIKE '%:AP:%') |;
+
+ }
+
+ # get AR/AP account
+ $query = qq|SELECT c.accno
+ FROM chart c
+ JOIN acc_trans ac ON (ac.chart_id = c.id)
+ WHERE trans_id = ?
+ AND $where|;
+
+ my $ath = $dbh->prepare($query) || $form->dberror($query);
+
+ # query to retrieve paid amount
+ $query = qq|SELECT paid
+ FROM $form->{arap}
+ WHERE id = ?
+ FOR UPDATE|;
+
+ my $pth = $dbh->prepare($query) || $form->dberror($query);
+
+ my %audittrail;
+
+ my $overpayment = 0;
+ my $accno_id;
+
+ # go through line by line
+ for my $i (1 .. $form->{rowcount}) {
+
+ $ath->execute($form->{"id_$i"});
+ ($form->{$form->{ARAP}}) = $ath->fetchrow_array;
+ $ath->finish;
+
+ $form->{"paid_$i"} = $form->parse_amount($myconfig, $form->{"paid_$i"});
+ $form->{"due_$i"} = $form->parse_amount($myconfig, $form->{"due_$i"});
+
+ if ($form->{"$form->{vc}_id_$i"} ne $sameid) {
+ # record a AR/AP with a payment
+ if ($overpayment > 0 && $form->{$form->{ARAP}}) {
+ $form->{invnumber} = "";
+ OP::overpayment("", $myconfig, $form, $dbh, $overpayment, $ml, 1);
+ }
+
+ $overpayment = 0;
+ $form->{"$form->{vc}_id"} = $form->{"$form->{vc}_id_$i"};
+ for (qw(source memo)) { $form->{$_} = $form->{"${_}_$i"} }
+ }
+
+ if ($form->{"checked_$i"} && $form->{"paid_$i"}) {
+
+ $overpayment += ($form->{"paid_$i"} - $form->{"due_$i"});
+
+ # get exchangerate for original
+ $query = qq|SELECT $buysell
+ FROM exchangerate e
+ JOIN $form->{arap} a ON (a.transdate = e.transdate)
+ WHERE e.curr = '$form->{currency}'
+ AND a.id = $form->{"id_$i"}|;
+
+ my ($exchangerate) = $dbh->selectrow_array($query);
+
+ $exchangerate ||= 1;
+
+ $query = qq|SELECT c.id
+ FROM chart c
+ JOIN acc_trans a ON (a.chart_id = c.id)
+ WHERE $where
+ AND a.trans_id = $form->{"id_$i"}|;
+
+ my ($id) = $dbh->selectrow_array($query);
+
+ $paid = ($form->{"paid_$i"} > $form->{"due_$i"}) ? $form->{"due_$i"} : $form->{"paid_$i"};
+ $amount = $form->round_amount($paid * $exchangerate, 2);
+
+ # add AR/AP
+ $query = qq|INSERT INTO acc_trans (trans_id, chart_id, transdate, amount)
+ VALUES ($form->{"id_$i"}, $id, '$form->{datepaid}',
+ $amount * $ml)|;
+
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|SELECT id
+ FROM chart
+ WHERE accno = '$paymentaccno'|;
+
+ ($accno_id) = $dbh->selectrow_array($query);
+
+ # add payment
+ $query = qq|INSERT INTO acc_trans (trans_id, chart_id, transdate,
+ amount, source, memo)
+ VALUES ($form->{"id_$i"}, $accno_id, '$form->{datepaid}',
+ $paid * $ml * -1, |
+ .$dbh->quote($form->{source}).qq|, |
+ .$dbh->quote($form->{memo}).qq|)|;
+
+ $dbh->do($query) || $form->dberror($query);
+
+ # add exchangerate difference if currency ne defaultcurrency
+ $amount = $form->round_amount($paid * ($form->{exchangerate} - 1) * $ml * -1, 2);
+
+ if ($amount) {
+ # exchangerate difference
+ $query = qq|INSERT INTO acc_trans (trans_id, chart_id, transdate,
+ amount, source)
+ VALUES ($form->{"id_$i"}, $accno_id, '$form->{datepaid}',
+ $amount, |
+ .$dbh->quote($form->{source}).qq|)|;
+
+ $dbh->do($query) || $form->dberror($query);
+
+ # gain/loss
+ $amount = ($form->round_amount($paid * $exchangerate,2) - $form->round_amount($paid * $form->{exchangerate},2)) * $ml * -1;
+
+ if ($amount) {
+ $accno_id = ($amount > 0) ? $fxgain_accno_id : $fxloss_accno_id;
+
+ $query = qq|INSERT INTO acc_trans (trans_id, chart_id, transdate,
+ amount, fx_transaction)
+ VALUES ($form->{"id_$i"}, $accno_id,
+ '$form->{datepaid}', $amount, '1')|;
+
+ $dbh->do($query) || $form->dberror($query);
+ }
+ }
+
+ $paid = $form->round_amount($paid * $exchangerate, 2);
+
+ $pth->execute($form->{"id_$i"}) || $form->dberror;
+ ($amount) = $pth->fetchrow_array;
+ $pth->finish;
+
+ $amount += $paid;
+
+ # update AR/AP transaction
+ $query = qq|UPDATE $form->{arap}
+ SET paid = $amount,
+ datepaid = '$form->{datepaid}'
+ WHERE id = $form->{"id_$i"}|;
+
+ $dbh->do($query) || $form->dberror($query);
+
+ %audittrail = ( tablename => $form->{arap},
+ reference => $form->{source},
+ formname => $form->{formname},
+ action => 'posted',
+ id => $form->{"id_$i"} );
+
+ $form->audittrail($dbh, "", \%audittrail);
+
+ }
+
+ $sameid = $form->{"$form->{vc}_id_$i"};
+
+ }
+
+ # record a AR/AP with a payment
+ if ($overpayment > 0 && $form->{$form->{ARAP}}) {
+ $form->{invnumber} = "";
+ OP::overpayment("", $myconfig, $form, $dbh, $overpayment, $ml, 1);
+ }
+
+ my $rc = $dbh->commit;
+ $dbh->disconnect;
+
+ $rc;
+
+}
+
+
+1;
+
diff --git a/LedgerSMB/CT.pm b/LedgerSMB/CT.pm
new file mode 100755
index 00000000..a99c7292
--- /dev/null
+++ b/LedgerSMB/CT.pm
@@ -0,0 +1,1080 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has undergone whitespace cleanup.
+#
+#======================================================================
+#
+# backend code for customers and vendors
+#
+#======================================================================
+
+package CT;
+
+
+sub create_links {
+
+ my ($self, $myconfig, $form) = @_;
+
+ my $dbh = $form->dbconnect($myconfig);
+ my $query;
+ my $sth;
+ my $ref;
+ my $arap = ($form->{db} eq 'customer') ? "ar" : "ap";
+ my $ARAP = uc $arap;
+
+ if ($form->{id}) {
+ $query = qq|SELECT ct.*, b.description AS business, s.*,
+ e.name AS employee, g.pricegroup AS pricegroup,
+ l.description AS language, ct.curr
+ FROM $form->{db} ct
+ LEFT JOIN business b ON (ct.business_id = b.id)
+ LEFT JOIN shipto s ON (ct.id = s.trans_id)
+ LEFT JOIN employee e ON (ct.employee_id = e.id)
+ LEFT JOIN pricegroup g ON (g.id = ct.pricegroup_id)
+ LEFT JOIN language l ON (l.code = ct.language_code)
+ WHERE ct.id = $form->{id}|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ $ref = $sth->fetchrow_hashref(NAME_lc);
+ for (keys %$ref) { $form->{$_} = $ref->{$_} }
+ $sth->finish;
+
+ # check if it is orphaned
+ $query = qq|SELECT a.id
+ FROM $arap a
+ JOIN $form->{db} ct ON (a.$form->{db}_id = ct.id)
+ WHERE ct.id = $form->{id}
+
+ UNION
+
+ SELECT a.id
+ FROM oe a
+ JOIN $form->{db} ct ON (a.$form->{db}_id = ct.id)
+ WHERE ct.id = $form->{id}|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ unless ($sth->fetchrow_array) {
+ $form->{status} = "orphaned";
+ }
+
+ $sth->finish;
+
+ # get taxes for customer/vendor
+ $query = qq|SELECT c.accno
+ FROM chart c
+ JOIN $form->{db}tax t ON (t.chart_id = c.id)
+ WHERE t.$form->{db}_id = $form->{id}|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ $form->{tax}{$ref->{accno}}{taxable} = 1;
+ }
+
+ $sth->finish;
+
+ } else {
+
+ ($form->{employee}, $form->{employee_id}) = $form->get_employee($dbh);
+
+ $query = qq|SELECT current_date FROM defaults|;
+ ($form->{startdate}) = $dbh->selectrow_array($query);
+
+ }
+
+ # get tax labels
+ $query = qq|SELECT DISTINCT c.accno, c.description
+ FROM chart c
+ JOIN tax t ON (t.chart_id = c.id)
+ WHERE c.link LIKE '%${ARAP}_tax%'
+ ORDER BY c.accno|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ $form->{taxaccounts} .= "$ref->{accno} ";
+ $form->{tax}{$ref->{accno}}{description} = $ref->{description};
+ }
+
+ $sth->finish;
+ chop $form->{taxaccounts};
+
+
+ # get business types ## needs fixing, this is bad (SELECT * ...) with order by 2. Yuck
+ $query = qq|SELECT *
+ FROM business
+ ORDER BY 2|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{all_business} }, $ref;
+ }
+
+ $sth->finish;
+
+ # employees/salespersons
+ $form->all_employees($myconfig, $dbh, undef, ($form->{vc} eq 'customer') ? 1 : 0);
+
+ # get language ## needs fixing, this is bad (SELECT * ...) with order by 2. Yuck
+ $query = qq|SELECT *
+ FROM language
+ ORDER BY 2|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{all_language} }, $ref;
+ }
+
+ $sth->finish;
+
+ # get pricegroups ## needs fixing, this is bad (SELECT * ...) with order by 2. Yuck
+ $query = qq|SELECT *
+ FROM pricegroup
+ ORDER BY 2|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{all_pricegroup} }, $ref;
+ }
+
+ $sth->finish;
+
+ # get currencies
+ $query = qq|SELECT curr AS currencies
+ FROM defaults|;
+
+ ($form->{currencies}) = $dbh->selectrow_array($query);
+
+ $dbh->disconnect;
+
+}
+
+
+sub save_customer {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect_noauto($myconfig);
+ my $query;
+ my $sth;
+ my $null;
+
+ # remove double spaces
+ $form->{name} =~ s/ / /g;
+ # remove double minus and minus at the end
+ $form->{name} =~ s/--+/-/g;
+ $form->{name} =~ s/-+$//;
+
+ # assign value discount, terms, creditlimit
+ $form->{discount} = $form->parse_amount($myconfig, $form->{discount});
+ $form->{discount} /= 100;
+ $form->{terms} *= 1;
+ $form->{taxincluded} *= 1;
+ $form->{creditlimit} = $form->parse_amount($myconfig, $form->{creditlimit});
+
+
+ if ($form->{id}) {
+ $query = qq|DELETE FROM customertax
+ WHERE customer_id = $form->{id}|;
+
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|DELETE FROM shipto
+ WHERE trans_id = $form->{id}|;
+
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|SELECT id
+ FROM customer
+ WHERE id = $form->{id}|;
+
+ if (! $dbh->selectrow_array($query)) {
+ $query = qq|INSERT INTO customer (id)
+ VALUES ($form->{id})|;
+
+ $dbh->do($query) || $form->dberror($query);
+ }
+
+ # retrieve enddate
+ if ($form->{type} && $form->{enddate}) {
+ my $now;
+ $query = qq|SELECT enddate, current_date AS now FROM customer|;
+ ($form->{enddate}, $now) = $dbh->selectrow_array($query);
+ $form->{enddate} = $now if $form->{enddate} lt $now;
+ }
+
+ } else {
+ my $uid = localtime;
+ $uid .= "$$";
+
+ $query = qq|INSERT INTO customer (name)
+ VALUES ('$uid')|;
+
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|SELECT id
+ FROM customer
+ WHERE name = '$uid'|;
+
+ ($form->{id}) = $dbh->selectrow_array($query);
+
+ }
+
+ my $employee_id;
+ ($null, $employee_id) = split /--/, $form->{employee};
+ $employee_id *= 1;
+
+ my $pricegroup_id;
+ ($null, $pricegroup_id) = split /--/, $form->{pricegroup};
+ $pricegroup_id *= 1;
+
+ my $business_id;
+ ($null, $business_id) = split /--/, $form->{business};
+ $business_id *= 1;
+
+ my $language_code;
+ ($null, $language_code) = split /--/, $form->{language};
+
+ $form->{customernumber} = $form->update_defaults($myconfig, "customernumber", $dbh) if ! $form->{customernumber};
+
+ $query = qq|UPDATE customer
+ SET customernumber = |.$dbh->quote($form->{customernumber}).qq|,
+ name = |.$dbh->quote($form->{name}).qq|,
+ address1 = |.$dbh->quote($form->{address1}).qq|,
+ address2 = |.$dbh->quote($form->{address2}).qq|,
+ city = |.$dbh->quote($form->{city}).qq|,
+ state = |.$dbh->quote($form->{state}).qq|,
+ zipcode = |.$dbh->quote($form->{zipcode}).qq|,
+ country = |.$dbh->quote($form->{country}).qq|,
+ contact = |.$dbh->quote($form->{contact}).qq|,
+ phone = '$form->{phone}',
+ fax = '$form->{fax}',
+ email = '$form->{email}',
+ cc = '$form->{cc}',
+ bcc = '$form->{bcc}',
+ notes = |.$dbh->quote($form->{notes}).qq|,
+ discount = $form->{discount},
+ creditlimit = $form->{creditlimit},
+ terms = $form->{terms},
+ taxincluded = '$form->{taxincluded}',
+ business_id = $business_id,
+ taxnumber = |.$dbh->quote($form->{taxnumber}).qq|,
+ sic_code = '$form->{sic_code}',
+ iban = '$form->{iban}',
+ bic = '$form->{bic}',
+ employee_id = $employee_id,
+ pricegroup_id = $pricegroup_id,
+ language_code = '$language_code',
+ curr = '$form->{curr}',
+ startdate = |.$form->dbquote($form->{startdate}, SQL_DATE).qq|,
+ enddate = |.$form->dbquote($form->{enddate}, SQL_DATE).qq|
+ WHERE id = $form->{id}|;
+
+ $dbh->do($query) || $form->dberror($query);
+
+ # save taxes
+ foreach $item (split / /, $form->{taxaccounts}) {
+
+ if ($form->{"tax_$item"}) {
+ $query = qq|INSERT INTO customertax (customer_id, chart_id)
+ VALUES ($form->{id}, (SELECT id
+ FROM chart
+ WHERE accno = '$item'))|;
+
+ $dbh->do($query) || $form->dberror($query);
+ }
+ }
+
+ # add shipto
+ $form->add_shipto($dbh, $form->{id});
+
+ $dbh->commit;
+ $dbh->disconnect;
+}
+
+
+sub save_vendor {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ my $query;
+ my $sth;
+ my $null;
+
+ # remove double spaces
+ $form->{name} =~ s/ / /g;
+ # remove double minus and minus at the end
+ $form->{name} =~ s/--+/-/g;
+ $form->{name} =~ s/-+$//;
+
+ $form->{discount} = $form->parse_amount($myconfig, $form->{discount});
+ $form->{discount} /= 100;
+ $form->{terms} *= 1;
+ $form->{taxincluded} *= 1;
+ $form->{creditlimit} = $form->parse_amount($myconfig, $form->{creditlimit});
+
+
+ if ($form->{id}) {
+ $query = qq|DELETE FROM vendortax
+ WHERE vendor_id = $form->{id}|;
+
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|DELETE FROM shipto
+ WHERE trans_id = $form->{id}|;
+
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|SELECT id
+ FROM vendor
+ WHERE id = $form->{id}|;
+
+ if (! $dbh->selectrow_array($query)) {
+ $query = qq|INSERT INTO vendor (id)
+ VALUES ($form->{id})|;
+
+ $dbh->do($query) || $form->dberror($query);
+ }
+
+ # retrieve enddate
+ if ($form->{type} && $form->{enddate}) {
+ my $now;
+ $query = qq|SELECT enddate, current_date AS now FROM vendor|;
+ ($form->{enddate}, $now) = $dbh->selectrow_array($query);
+ $form->{enddate} = $now if $form->{enddate} lt $now;
+ }
+
+ } else {
+ my $uid = localtime;
+ $uid .= "$$";
+
+ $query = qq|INSERT INTO vendor (name)
+ VALUES ('$uid')|;
+
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|SELECT id
+ FROM vendor
+ WHERE name = '$uid'|;
+
+ ($form->{id}) = $dbh->selectrow_array($query);
+
+ }
+
+ my $employee_id;
+ ($null, $employee_id) = split /--/, $form->{employee};
+ $employee_id *= 1;
+
+ my $pricegroup_id;
+ ($null, $pricegroup_id) = split /--/, $form->{pricegroup};
+ $pricegroup_id *= 1;
+
+ my $business_id;
+ ($null, $business_id) = split /--/, $form->{business};
+ $business_id *= 1;
+
+ my $language_code;
+ ($null, $language_code) = split /--/, $form->{language};
+
+ $form->{vendornumber} = $form->update_defaults($myconfig, "vendornumber", $dbh) if ! $form->{vendornumber};
+
+ $query = qq|UPDATE vendor
+ SET vendornumber = |.$dbh->quote($form->{vendornumber}).qq|,
+ name = |.$dbh->quote($form->{name}).qq|,
+ address1 = |.$dbh->quote($form->{address1}).qq|,
+ address2 = |.$dbh->quote($form->{address2}).qq|,
+ city = |.$dbh->quote($form->{city}).qq|,
+ state = |.$dbh->quote($form->{state}).qq|,
+ zipcode = |.$dbh->quote($form->{zipcode}).qq|,
+ country = |.$dbh->quote($form->{country}).qq|,
+ contact = |.$dbh->quote($form->{contact}).qq|,
+ phone = '$form->{phone}',
+ fax = '$form->{fax}',
+ email = '$form->{email}',
+ cc = '$form->{cc}',
+ bcc = '$form->{bcc}',
+ notes = |.$dbh->quote($form->{notes}).qq|,
+ terms = $form->{terms},
+ discount = $form->{discount},
+ creditlimit = $form->{creditlimit},
+ taxincluded = '$form->{taxincluded}',
+ gifi_accno = '$form->{gifi_accno}',
+ business_id = $business_id,
+ taxnumber = |.$dbh->quote($form->{taxnumber}).qq|,
+ sic_code = '$form->{sic_code}',
+ iban = '$form->{iban}',
+ bic = '$form->{bic}',
+ employee_id = $employee_id,
+ language_code = '$language_code',
+ pricegroup_id = $pricegroup_id,
+ curr = '$form->{curr}',
+ startdate = |.$form->dbquote($form->{startdate}, SQL_DATE).qq|,
+ enddate = |.$form->dbquote($form->{enddate}, SQL_DATE).qq|
+ WHERE id = $form->{id}|;
+
+ $dbh->do($query) || $form->dberror($query);
+
+ # save taxes
+ foreach $item (split / /, $form->{taxaccounts}) {
+ if ($form->{"tax_$item"}) {
+ $query = qq|INSERT INTO vendortax (vendor_id, chart_id)
+ VALUES ($form->{id}, (SELECT id
+ FROM chart
+ WHERE accno = '$item'))|;
+
+ $dbh->do($query) || $form->dberror($query);
+ }
+ }
+
+ # add shipto
+ $form->add_shipto($dbh, $form->{id});
+
+ $dbh->commit;
+ $dbh->disconnect;
+
+}
+
+
+
+sub delete {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ # delete customer/vendor
+ my $query = qq|DELETE FROM $form->{db}
+ WHERE id = $form->{id}|;
+
+ $dbh->do($query) || $form->dberror($query);
+
+ $dbh->disconnect;
+
+}
+
+
+sub search {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $where = "1 = 1";
+ $form->{sort} = ($form->{sort}) ? $form->{sort} : "name";
+ my @a = qw(name);
+ my $sortorder = $form->sort_order(\@a);
+
+ my $var;
+ my $item;
+
+ @a = ("$form->{db}number");
+ push @a, qw(name contact city state zipcode country notes phone email);
+
+ if ($form->{employee}) {
+ $var = $form->like(lc $form->{employee});
+ $where .= " AND lower(e.name) LIKE '$var'";
+ }
+
+ foreach $item (@a) {
+
+ if ($form->{$item} ne "") {
+ $var = $form->like(lc $form->{$item});
+ $where .= " AND lower(ct.$item) LIKE '$var'";
+ }
+ }
+
+ if ($form->{address} ne "") {
+ $var = $form->like(lc $form->{address});
+ $where .= " AND (lower(ct.address1) LIKE '$var' OR lower(ct.address2) LIKE '$var')";
+ }
+
+ if ($form->{startdatefrom}) {
+ $where .= " AND ct.startdate >= '$form->{startdatefrom}'";
+ }
+
+ if ($form->{startdateto}) {
+ $where .= " AND ct.startdate <= '$form->{startdateto}'";
+ }
+
+ if ($form->{status} eq 'active') {
+ $where .= " AND ct.enddate IS NULL";
+ }
+
+ if ($form->{status} eq 'inactive') {
+ $where .= " AND ct.enddate <= current_date";
+ }
+
+ if ($form->{status} eq 'orphaned') {
+ $where .= qq| AND ct.id NOT IN (SELECT o.$form->{db}_id
+ FROM oe o, $form->{db} vc
+ WHERE vc.id = o.$form->{db}_id)|;
+
+ if ($form->{db} eq 'customer') {
+ $where .= qq| AND ct.id NOT IN (SELECT a.customer_id
+ FROM ar a, customer vc
+ WHERE vc.id = a.customer_id)|;
+ }
+
+ if ($form->{db} eq 'vendor') {
+ $where .= qq| AND ct.id NOT IN (SELECT a.vendor_id
+ FROM ap a, vendor vc
+ WHERE vc.id = a.vendor_id)|;
+ }
+
+ $form->{l_invnumber} = $form->{l_ordnumber} = $form->{l_quonumber} = "";
+ }
+
+
+ my $query = qq|SELECT ct.*, b.description AS business,
+ e.name AS employee, g.pricegroup, l.description AS language,
+ m.name AS manager
+ FROM $form->{db} ct
+ LEFT JOIN business b ON (ct.business_id = b.id)
+ LEFT JOIN employee e ON (ct.employee_id = e.id)
+ LEFT JOIN employee m ON (m.id = e.managerid)
+ LEFT JOIN pricegroup g ON (ct.pricegroup_id = g.id)
+ LEFT JOIN language l ON (l.code = ct.language_code)
+ WHERE $where|;
+
+ # redo for invoices, orders and quotations
+ if ($form->{l_transnumber} || $form->{l_invnumber} || $form->{l_ordnumber} || $form->{l_quonumber}) {
+
+ my ($ar, $union, $module);
+ $query = "";
+ my $transwhere;
+ my $openarap = "";
+ my $openoe = "";
+
+ if ($form->{open} || $form->{closed}) {
+ unless ($form->{open} && $form->{closed}) {
+ $openarap = " AND a.amount != a.paid" if $form->{open};
+ $openarap = " AND a.amount = a.paid" if $form->{closed};
+ $openoe = " AND o.closed = '0'" if $form->{open};
+ $openoe = " AND o.closed = '1'" if $form->{closed};
+ }
+ }
+
+ if ($form->{l_transnumber}) {
+
+ $ar = ($form->{db} eq 'customer') ? 'ar' : 'ap';
+ $module = $ar;
+
+ $transwhere = "";
+ $transwhere .= " AND a.transdate >= '$form->{transdatefrom}'" if $form->{transdatefrom};
+ $transwhere .= " AND a.transdate <= '$form->{transdateto}'" if $form->{transdateto};
+
+
+ $query = qq|SELECT ct.*, b.description AS business,
+ a.invnumber, a.ordnumber, a.quonumber, a.id AS invid,
+ '$ar' AS module, 'invoice' AS formtype,
+ (a.amount = a.paid) AS closed, a.amount, a.netamount,
+ e.name AS employee, m.name AS manager
+ FROM $form->{db} ct
+ JOIN $ar a ON (a.$form->{db}_id = ct.id)
+ LEFT JOIN business b ON (ct.business_id = b.id)
+ LEFT JOIN employee e ON (a.employee_id = e.id)
+ LEFT JOIN employee m ON (m.id = e.managerid)
+ WHERE $where
+ AND a.invoice = '0'
+ $transwhere
+ $openarap |;
+
+ $union = qq| UNION |;
+
+ }
+
+ if ($form->{l_invnumber}) {
+ $ar = ($form->{db} eq 'customer') ? 'ar' : 'ap';
+ $module = ($ar eq 'ar') ? 'is' : 'ir';
+
+ $transwhere = "";
+ $transwhere .= " AND a.transdate >= '$form->{transdatefrom}'" if $form->{transdatefrom};
+ $transwhere .= " AND a.transdate <= '$form->{transdateto}'" if $form->{transdateto};
+
+ $query .= qq|$union
+ SELECT ct.*, b.description AS business,
+ a.invnumber, a.ordnumber, a.quonumber, a.id AS invid,
+ '$module' AS module, 'invoice' AS formtype,
+ (a.amount = a.paid) AS closed, a.amount, a.netamount,
+ e.name AS employee, m.name AS manager
+ FROM $form->{db} ct
+ JOIN $ar a ON (a.$form->{db}_id = ct.id)
+ LEFT JOIN business b ON (ct.business_id = b.id)
+ LEFT JOIN employee e ON (a.employee_id = e.id)
+ LEFT JOIN employee m ON (m.id = e.managerid)
+ WHERE $where
+ AND a.invoice = '1'
+ $transwhere
+ $openarap |;
+
+ $union = qq| UNION|;
+
+ }
+
+ if ($form->{l_ordnumber}) {
+
+ $transwhere = "";
+ $transwhere .= " AND o.transdate >= '$form->{transdatefrom}'" if $form->{transdatefrom};
+ $transwhere .= " AND o.transdate <= '$form->{transdateto}'" if $form->{transdateto};
+
+ $query .= qq|$union
+ SELECT ct.*, b.description AS business,
+ ' ' AS invnumber, o.ordnumber, o.quonumber, o.id AS invid,
+ 'oe' AS module, 'order' AS formtype,
+ o.closed, o.amount, o.netamount,
+ e.name AS employee, m.name AS manager
+ FROM $form->{db} ct
+ JOIN oe o ON (o.$form->{db}_id = ct.id)
+ LEFT JOIN business b ON (ct.business_id = b.id)
+ LEFT JOIN employee e ON (o.employee_id = e.id)
+ LEFT JOIN employee m ON (m.id = e.managerid)
+ WHERE $where
+ AND o.quotation = '0'
+ $transwhere
+ $openoe |;
+
+ $union = qq| UNION|;
+
+ }
+
+ if ($form->{l_quonumber}) {
+
+ $transwhere = "";
+ $transwhere .= " AND o.transdate >= '$form->{transdatefrom}'" if $form->{transdatefrom};
+ $transwhere .= " AND o.transdate <= '$form->{transdateto}'" if $form->{transdateto};
+
+ $query .= qq|$union
+ SELECT ct.*, b.description AS business,
+ ' ' AS invnumber, o.ordnumber, o.quonumber, o.id AS invid,
+ 'oe' AS module, 'quotation' AS formtype,
+ o.closed, o.amount, o.netamount,
+ e.name AS employee, m.name AS manager
+ FROM $form->{db} ct
+ JOIN oe o ON (o.$form->{db}_id = ct.id)
+ LEFT JOIN business b ON (ct.business_id = b.id)
+ LEFT JOIN employee e ON (o.employee_id = e.id)
+ LEFT JOIN employee m ON (m.id = e.managerid)
+ WHERE $where
+ AND o.quotation = '1'
+ $transwhere
+ $openoe |;
+
+ }
+
+ $sortorder .= ", invid";
+ }
+
+ $query .= qq| ORDER BY $sortorder|;
+
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ # accounts
+ $query = qq|SELECT c.accno
+ FROM chart c
+ JOIN $form->{db}tax t ON (t.chart_id = c.id)
+ WHERE t.$form->{db}_id = ?|;
+
+ my $tth = $dbh->prepare($query);
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+ $tth->execute($ref->{id});
+
+ while (($item) = $tth->fetchrow_array) {
+ $ref->{taxaccount} .= "$item ";
+ }
+
+ $tth->finish;
+ chop $ref->{taxaccount};
+
+ $ref->{address} = "";
+
+ for (qw(address1 address2 city state zipcode country)) { $ref->{address} .= "$ref->{$_} " }
+ push @{ $form->{CT} }, $ref;
+ }
+
+ $sth->finish;
+ $dbh->disconnect;
+
+}
+
+
+sub get_history {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $query;
+ my $where = "1 = 1";
+ $form->{sort} = "partnumber" unless $form->{sort};
+ my $sortorder = $form->{sort};
+ my %ordinal = ();
+ my $var;
+ my $table;
+
+ # setup ASC or DESC
+ $form->sort_order();
+
+ if ($form->{"$form->{db}number"} ne "") {
+ $var = $form->like(lc $form->{"$form->{db}number"});
+ $where .= " AND lower(ct.$form->{db}number) LIKE '$var'";
+ }
+
+ if ($form->{address} ne "") {
+ $var = $form->like(lc $form->{address});
+ $where .= " AND lower(ct.address1) LIKE '$var'";
+ }
+
+ for (qw(name contact email phone notes city state zipcode country)) {
+
+ if ($form->{$_} ne "") {
+ $var = $form->like(lc $form->{$_});
+ $where .= " AND lower(ct.$_) LIKE '$var'";
+ }
+ }
+
+ if ($form->{employee} ne "") {
+ $var = $form->like(lc $form->{employee});
+ $where .= " AND lower(e.name) LIKE '$var'";
+ }
+
+ $where .= " AND a.transdate >= '$form->{transdatefrom}'" if $form->{transdatefrom};
+ $where .= " AND a.transdate <= '$form->{transdateto}'" if $form->{transdateto};
+
+ if ($form->{open} || $form->{closed}) {
+
+ unless ($form->{open} && $form->{closed}) {
+
+ if ($form->{type} eq 'invoice') {
+ $where .= " AND a.amount != a.paid" if $form->{open};
+ $where .= " AND a.amount = a.paid" if $form->{closed};
+ } else {
+ $where .= " AND a.closed = '0'" if $form->{open};
+ $where .= " AND a.closed = '1'" if $form->{closed};
+ }
+ }
+ }
+
+ my $invnumber = 'invnumber';
+ my $deldate = 'deliverydate';
+ my $buysell;
+ my $sellprice = "sellprice";
+
+ if ($form->{db} eq 'customer') {
+ $buysell = "buy";
+
+ if ($form->{type} eq 'invoice') {
+ $where .= qq| AND a.invoice = '1' AND i.assemblyitem = '0'|;
+ $table = 'ar';
+ $sellprice = "fxsellprice";
+ } else {
+ $table = 'oe';
+
+ if ($form->{type} eq 'order') {
+ $invnumber = 'ordnumber';
+ $where .= qq| AND a.quotation = '0'|;
+ } else {
+ $invnumber = 'quonumber';
+ $where .= qq| AND a.quotation = '1'|;
+ }
+
+ $deldate = 'reqdate';
+ }
+ }
+
+ if ($form->{db} eq 'vendor') {
+
+ $buysell = "sell";
+
+ if ($form->{type} eq 'invoice') {
+
+ $where .= qq| AND a.invoice = '1' AND i.assemblyitem = '0'|;
+ $table = 'ap';
+ $sellprice = "fxsellprice";
+
+ } else {
+
+ $table = 'oe';
+
+ if ($form->{type} eq 'order') {
+ $invnumber = 'ordnumber';
+ $where .= qq| AND a.quotation = '0'|;
+ } else {
+ $invnumber = 'quonumber';
+ $where .= qq| AND a.quotation = '1'|;
+ }
+
+ $deldate = 'reqdate';
+ }
+ }
+
+ my $invjoin = qq| JOIN invoice i ON (i.trans_id = a.id)|;
+
+ if ($form->{type} eq 'order') {
+ $invjoin = qq| JOIN orderitems i ON (i.trans_id = a.id)|;
+ }
+
+ if ($form->{type} eq 'quotation') {
+ $invjoin = qq| JOIN orderitems i ON (i.trans_id = a.id)|;
+ $where .= qq| AND a.quotation = '1'|;
+ }
+
+
+ %ordinal = ( partnumber => 9,
+ description => 12,
+ "$deldate" => 16,
+ serialnumber => 17,
+ projectnumber => 18 );
+
+ $sortorder = "2 $form->{direction}, 1, 11, $ordinal{$sortorder} $form->{direction}";
+
+ $query = qq|SELECT ct.id AS ctid, ct.name, ct.address1,
+ ct.address2, ct.city, ct.state,
+ p.id AS pid, p.partnumber, a.id AS invid,
+ a.$invnumber, a.curr, i.description,
+ i.qty, i.$sellprice AS sellprice, i.discount,
+ i.$deldate, i.serialnumber, pr.projectnumber,
+ e.name AS employee, ct.zipcode, ct.country, i.unit,
+ (SELECT $buysell
+ FROM exchangerate ex
+ WHERE a.curr = ex.curr
+ AND a.transdate = ex.transdate) AS exchangerate
+ FROM $form->{db} ct
+ JOIN $table a ON (a.$form->{db}_id = ct.id)
+ $invjoin
+ JOIN parts p ON (p.id = i.parts_id)
+ LEFT JOIN project pr ON (pr.id = i.project_id)
+ LEFT JOIN employee e ON (e.id = a.employee_id)
+ WHERE $where
+ ORDER BY $sortorder|;
+
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+ $ref->{address} = "";
+ $ref->{exchangerate} ||= 1;
+ for (qw(address1 address2 city state zipcode country)) { $ref->{address} .= "$ref->{$_} " }
+ $ref->{id} = $ref->{ctid};
+ push @{ $form->{CT} }, $ref;
+ }
+
+ $sth->finish;
+ $dbh->disconnect;
+
+}
+
+
+sub pricelist {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $query;
+
+ if ($form->{db} eq 'customer') {
+ $query = qq|SELECT p.id, p.partnumber, p.description,
+ p.sellprice, pg.partsgroup, p.partsgroup_id,
+ m.pricebreak, m.sellprice,
+ m.validfrom, m.validto, m.curr
+ FROM partscustomer m
+ JOIN parts p ON (p.id = m.parts_id)
+ LEFT JOIN partsgroup pg ON (pg.id = p.partsgroup_id)
+ WHERE m.customer_id = $form->{id}
+ ORDER BY partnumber|;
+ }
+
+ if ($form->{db} eq 'vendor') {
+ $query = qq|SELECT p.id, p.partnumber AS sku, p.description,
+ pg.partsgroup, p.partsgroup_id,
+ m.partnumber, m.leadtime, m.lastcost, m.curr
+ FROM partsvendor m
+ JOIN parts p ON (p.id = m.parts_id)
+ LEFT JOIN partsgroup pg ON (pg.id = p.partsgroup_id)
+ WHERE m.vendor_id = $form->{id}
+ ORDER BY p.partnumber|;
+ }
+
+ my $sth;
+ my $ref;
+
+ if ($form->{id}) {
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{all_partspricelist} }, $ref;
+ }
+
+ $sth->finish;
+ }
+
+ $query = qq|SELECT curr FROM defaults|;
+ ($form->{currencies}) = $dbh->selectrow_array($query);
+
+ $query = qq|SELECT id, partsgroup
+ FROM partsgroup
+ ORDER BY partsgroup|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $self->dberror($query);
+
+ $form->{all_partsgroup} = ();
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{all_partsgroup} }, $ref;
+ }
+
+ $sth->finish;
+
+ $dbh->disconnect;
+
+}
+
+
+sub save_pricelist {
+
+ my ($self, $myconfig, $form) = @_;
+
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ my $query = qq|DELETE FROM parts$form->{db}
+ WHERE $form->{db}_id = $form->{id}|;
+
+ $dbh->do($query) || $form->dberror($query);
+
+ foreach $i (1 .. $form->{rowcount}) {
+
+ if ($form->{"id_$i"}) {
+
+ if ($form->{db} eq 'customer') {
+
+ for (qw(pricebreak sellprice)) {
+ $form->{"${_}_$i"} = $form->parse_amount($myconfig, $form->{"${_}_$i"})
+ }
+
+ $query = qq|INSERT INTO parts$form->{db} (parts_id, customer_id,
+ pricebreak, sellprice,
+ validfrom, validto, curr)
+ VALUES ($form->{"id_$i"}, $form->{id},
+ $form->{"pricebreak_$i"}, $form->{"sellprice_$i"},|
+ .$form->dbquote($form->{"validfrom_$i"}, SQL_DATE) .qq|,|
+ .$form->dbquote($form->{"validto_$i"}, SQL_DATE) .qq|,
+ '$form->{"curr_$i"}')|;
+ } else {
+
+ for (qw(leadtime lastcost)) {
+ $form->{"${_}_$i"} = $form->parse_amount($myconfig, $form->{"${_}_$i"})
+ }
+
+ $query = qq|INSERT INTO parts$form->{db} (parts_id, vendor_id,
+ partnumber, lastcost,
+ leadtime, curr)
+ VALUES ($form->{"id_$i"}, $form->{id},
+ '$form->{"partnumber_$i"}', $form->{"lastcost_$i"},
+ $form->{"leadtime_$i"}, '$form->{"curr_$i"}')|;
+
+ }
+ $dbh->do($query) || $form->dberror($query);
+ }
+
+ }
+
+ $_ = $dbh->commit;
+ $dbh->disconnect;
+
+}
+
+
+
+sub retrieve_item {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $i = $form->{rowcount};
+ my $var;
+ my $null;
+
+ my $where = "WHERE p.obsolete = '0'";
+
+ if ($form->{db} eq 'vendor') {
+ # parts, services, labor
+ $where .= " AND p.assembly = '0'";
+ }
+
+ if ($form->{db} eq 'customer') {
+ # parts, assemblies, services
+ $where .= " AND p.income_accno_id > 0";
+ }
+
+ if ($form->{"partnumber_$i"} ne "") {
+ $var = $form->like(lc $form->{"partnumber_$i"});
+ $where .= " AND lower(p.partnumber) LIKE '$var'";
+ }
+
+ if ($form->{"description_$i"} ne "") {
+ $var = $form->like(lc $form->{"description_$i"});
+ $where .= " AND lower(p.description) LIKE '$var'";
+ }
+
+ if ($form->{"partsgroup_$i"} ne "") {
+ ($null, $var) = split /--/, $form->{"partsgroup_$i"};
+ $var *= 1;
+ $where .= qq| AND p.partsgroup_id = $var|;
+ }
+
+
+ my $query = qq|SELECT p.id, p.partnumber, p.description, p.sellprice,
+ p.lastcost, p.unit, pg.partsgroup, p.partsgroup_id
+ FROM parts p
+ LEFT JOIN partsgroup pg ON (pg.id = p.partsgroup_id)
+ $where
+ ORDER BY partnumber|;
+
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+ my $ref;
+ $form->{item_list} = ();
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{item_list} }, $ref;
+ }
+
+ $sth->finish;
+ $dbh->disconnect;
+}
+
+
+1;
+
diff --git a/LedgerSMB/Form.pm b/LedgerSMB/Form.pm
new file mode 100755
index 00000000..0fb59a1a
--- /dev/null
+++ b/LedgerSMB/Form.pm
@@ -0,0 +1,2942 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has undergone whitespace cleanup.
+#
+#======================================================================
+#
+# main package
+#
+#======================================================================
+
+package Form;
+
+
+sub new {
+
+ my $type = shift;
+
+ my $self = {};
+
+ read(STDIN, $_, $ENV{CONTENT_LENGTH});
+
+ if ($ENV{QUERY_STRING}) {
+ $_ = $ENV{QUERY_STRING};
+ }
+
+ if ($ARGV[0]) {
+ $_ = $ARGV[0];
+ }
+
+ %$self = split /[&=]/;
+ for (keys %$self) { $self->{$_} = unescape("", $self->{$_}) }
+
+ if (substr($self->{action}, 0, 1) !~ /( |\.)/) {
+ $self->{action} = lc $self->{action};
+ $self->{action} =~ s/( |-|,|\#|\/|\.$)/_/g;
+ }
+
+ $self->{menubar} = 1 if $self->{path} =~ /lynx/i;
+
+ $self->{version} = "2.6.17";
+ $self->{dbversion} = "2.6.12";
+
+ bless $self, $type;
+
+}
+
+
+sub debug {
+
+ my ($self, $file) = @_;
+
+ if ($file) {
+ open(FH, "> $file") or die $!;
+ for (sort keys %$self) { print FH "$_ = $self->{$_}\n" }
+ close(FH);
+ } else {
+ print "\n";
+ for (sort keys %$self) { print "$_ = $self->{$_}\n" }
+ }
+
+}
+
+
+sub escape {
+ my ($self, $str, $beenthere) = @_;
+
+ # for Apache 2 we escape strings twice
+ if (($ENV{SERVER_SIGNATURE} =~ /Apache\/2\.(\d+)\.(\d+)/) && !$beenthere) {
+ $str = $self->escape($str, 1) if $1 == 0 && $2 < 44;
+ }
+
+ $str =~ s/([^a-zA-Z0-9_.-])/sprintf("%%%02x", ord($1))/ge;
+ $str;
+
+}
+
+
+sub unescape {
+ my ($self, $str) = @_;
+
+ $str =~ tr/+/ /;
+ $str =~ s/\\$//;
+
+ $str =~ s/%([0-9a-fA-Z]{2})/pack("c",hex($1))/eg;
+ $str =~ s/\r?\n/\n/g;
+
+ $str;
+
+}
+
+
+sub quote {
+ my ($self, $str) = @_;
+
+ if ($str && ! ref($str)) {
+ $str =~ s/"/&quot;/g;
+ }
+
+ $str;
+
+}
+
+
+sub unquote {
+ my ($self, $str) = @_;
+
+ if ($str && ! ref($str)) {
+ $str =~ s/&quot;/"/g;
+ }
+
+ $str;
+
+}
+
+
+sub hide_form {
+ my $self = shift;
+
+ if (@_) {
+
+ for (@_) {
+ print qq|<input type="hidden" name="$_" value="|.$self->quote($self->{$_}).qq|" />\n|
+ }
+
+ } else {
+ delete $self->{header};
+
+ for (sort keys %$self) {
+ print qq|<input type="hidden" name="$_" value="|.$self->quote($self->{$_}).qq|" />\n|
+ }
+ }
+}
+
+
+sub error {
+
+ my ($self, $msg) = @_;
+
+ if ($ENV{HTTP_USER_AGENT}) {
+
+ $self->{msg} = $msg;
+ $self->{format} = "html";
+ $self->format_string(msg);
+
+ delete $self->{pre};
+
+ if (!$self->{header}) {
+ $self->header;
+ }
+
+ print qq|<body><h2 class="error:>Error!</h2> <p><b>$self->{msg}</b></body>|;
+
+ exit;
+
+ } else {
+
+ if ($self->{error_function}) {
+ &{ $self->{error_function} }($msg);
+ } else {
+ die "Error: $msg\n";
+ }
+ }
+}
+
+
+sub info {
+ my ($self, $msg) = @_;
+
+ if ($ENV{HTTP_USER_AGENT}) {
+ $msg =~ s/\n/<br>/g;
+
+ delete $self->{pre};
+
+ if (!$self->{header}) {
+ $self->header;
+ print qq| <body>|;
+ $self->{header} = 1;
+ }
+
+ print "<b>$msg</b>";
+
+ } else {
+
+ if ($self->{info_function}) {
+ &{ $self->{info_function} }($msg);
+ } else {
+ print "$msg\n";
+ }
+ }
+}
+
+
+sub numtextrows {
+
+ my ($self, $str, $cols, $maxrows) = @_;
+
+ my $rows = 0;
+
+ for (split /\n/, $str) {
+ $rows += int (((length) - 2)/$cols) + 1
+ }
+
+ $maxrows = $rows unless defined $maxrows;
+
+ return ($rows > $maxrows) ? $maxrows : $rows;
+
+}
+
+
+sub dberror {
+ my ($self, $msg) = @_;
+ $self->error("$msg\n".$DBI::errstr);
+}
+
+
+sub isblank {
+ my ($self, $name, $msg) = @_;
+ $self->error($msg) if $self->{$name} =~ /^\s*$/;
+}
+
+
+sub header {
+
+ my ($self, $init) = @_;
+
+ return if $self->{header};
+
+ my ($stylesheet, $favicon, $charset);
+
+ if ($ENV{HTTP_USER_AGENT}) {
+
+ if ($self->{stylesheet} && (-f "css/$self->{stylesheet}")) {
+ $stylesheet = qq|<link rel="stylesheet" href="css/$self->{stylesheet}" type="text/css" title="LedgerSMB stylesheet" />\n|;
+ }
+
+ if ($self->{favicon} && (-f "$self->{favicon}")) {
+ $favicon = qq|<link rel="icon" href="$self->{favicon}" type="image/x-icon" />
+ <link rel="shortcut icon" href="$self->{favicon}" type="image/x-icon" />\n|;
+ }
+
+ if ($self->{charset}) {
+ $charset = qq|<meta http-equiv="content-type" content="text/html; charset=$self->{charset}" />\n|;
+ }
+
+ $self->{titlebar} = ($self->{title}) ? "$self->{title} - $self->{titlebar}" : $self->{titlebar};
+
+ $self->set_cookie($init);
+
+ print qq|Content-Type: text/html\n\n
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>$self->{titlebar}</title>
+ <meta http-equiv="Pragma" content="no-cache" />
+ <meta http-equiv="Expires" content="-1" />
+ $favicon
+ $stylesheet
+ $charset
+ <meta name="robots" content="noindex,nofollow" />
+</head>
+
+ $self->{pre} \n|;
+ }
+
+ $self->{header} = 1;
+}
+
+
+sub set_cookie {
+
+ my ($self, $init) = @_;
+
+ $self->{timeout} = ($self->{timeout} > 0) ? $self->{timeout} : 3600;
+ my $t = ($self->{endsession}) ? time : time + $self->{timeout};
+
+ if ($ENV{HTTP_USER_AGENT}) {
+
+ my @d = split / +/, scalar gmtime($t);
+ my $today = "$d[0], $d[2]-$d[1]-$d[4] $d[3] GMT";
+
+ if ($init) {
+ $self->{sessionid} = time;
+ }
+
+ print qq|Set-Cookie: LedgerSMB-$self->{login}=$self->{sessionid}; expires=$today; path=/;\n| if $self->{login};
+ }
+}
+
+
+sub redirect {
+
+ my ($self, $msg) = @_;
+
+ if ($self->{callback}) {
+
+ my ($script, $argv) = split(/\?/, $self->{callback});
+ exec ("perl", $script, $argv);
+
+ } else {
+
+ $self->info($msg);
+ }
+}
+
+
+sub sort_columns {
+
+ my ($self, @columns) = @_;
+
+ if ($self->{sort}) {
+ if (@columns) {
+ @columns = grep !/^$self->{sort}$/, @columns;
+ splice @columns, 0, 0, $self->{sort};
+ }
+ }
+
+ @columns;
+}
+
+
+sub sort_order {
+
+ my ($self, $columns, $ordinal) = @_;
+
+ # setup direction
+ if ($self->{direction}) {
+
+ if ($self->{sort} eq $self->{oldsort}) {
+
+ if ($self->{direction} eq 'ASC') {
+ $self->{direction} = "DESC";
+ } else {
+ $self->{direction} = "ASC";
+ }
+ }
+
+ } else {
+
+ $self->{direction} = "ASC";
+ }
+
+ $self->{oldsort} = $self->{sort};
+
+ my @a = $self->sort_columns(@{$columns});
+
+ if (%$ordinal) {
+ $a[0] = ($ordinal->{$a[$_]}) ? "$ordinal->{$a[0]} $self->{direction}" : "$a[0] $self->{direction}";
+
+ for (1 .. $#a) {
+ $a[$_] = $ordinal->{$a[$_]} if $ordinal->{$a[$_]}
+ }
+
+ } else {
+ $a[0] .= " $self->{direction}";
+ }
+
+ $sortorder = join ',', @a;
+ $sortorder;
+}
+
+
+sub format_amount {
+
+ my ($self, $myconfig, $amount, $places, $dash) = @_;
+
+ if ($places =~ /\d+/) {
+ #$places = 4 if $places == 2;
+ $amount = $self->round_amount($amount, $places);
+ }
+
+ # is the amount negative
+ my $negative = ($amount < 0);
+
+ if ($amount) {
+
+ if ($myconfig->{numberformat}) {
+
+ my ($whole, $dec) = split /\./, "$amount";
+ $whole =~ s/-//;
+ $amount = join '', reverse split //, $whole;
+
+ if ($places) {
+ $dec .= "0" x $places;
+ $dec = substr($dec, 0, $places);
+ }
+
+ if ($myconfig->{numberformat} eq '1,000.00') {
+ $amount =~ s/\d{3,}?/$&,/g;
+ $amount =~ s/,$//;
+ $amount = join '', reverse split //, $amount;
+ $amount .= "\.$dec" if ($dec ne "");
+ }
+
+ if ($myconfig->{numberformat} eq "1'000.00") {
+ $amount =~ s/\d{3,}?/$&'/g;
+ $amount =~ s/'$//;
+ $amount = join '', reverse split //, $amount;
+ $amount .= "\.$dec" if ($dec ne "");
+ }
+
+ if ($myconfig->{numberformat} eq '1.000,00') {
+ $amount =~ s/\d{3,}?/$&./g;
+ $amount =~ s/\.$//;
+ $amount = join '', reverse split //, $amount;
+ $amount .= ",$dec" if ($dec ne "");
+ }
+
+ if ($myconfig->{numberformat} eq '1000,00') {
+ $amount = "$whole";
+ $amount .= ",$dec" if ($dec ne "");
+ }
+
+ if ($myconfig->{numberformat} eq '1000.00') {
+ $amount = "$whole";
+ $amount .= ".$dec" if ($dec ne "");
+ }
+
+ if ($dash =~ /-/) {
+ $amount = ($negative) ? "($amount)" : "$amount";
+ } elsif ($dash =~ /DRCR/) {
+ $amount = ($negative) ? "$amount DR" : "$amount CR";
+ } else {
+ $amount = ($negative) ? "-$amount" : "$amount";
+ }
+ }
+
+ } else {
+
+ if ($dash eq "0" && $places) {
+
+ if ($myconfig->{numberformat} eq '1.000,00') {
+ $amount = "0".","."0" x $places;
+ } else {
+ $amount = "0"."."."0" x $places;
+ }
+
+ } else {
+ $amount = ($dash ne "") ? "$dash" : "";
+ }
+ }
+
+ $amount;
+}
+
+
+sub parse_amount {
+
+ my ($self, $myconfig, $amount) = @_;
+
+ if (($myconfig->{numberformat} eq '1.000,00') ||
+ ($myconfig->{numberformat} eq '1000,00')) {
+
+ $amount =~ s/\.//g;
+ $amount =~ s/,/\./;
+ }
+
+ if ($myconfig->{numberformat} eq "1'000.00") {
+ $amount =~ s/'//g;
+ }
+
+ $amount =~ s/,//g;
+ return ($amount * 1);
+}
+
+
+sub round_amount {
+
+ my ($self, $amount, $places) = @_;
+
+ # $places = 4 if $places == 2;
+ my ($null, $dec) = split /\./, $amount;
+ $dec = length $dec;
+ $dec = ($dec > $places) ? $dec : $places;
+ my $adj = ($amount < 0) ? (1/10**($dec+2)) * -1 : (1/10**($dec+2));
+
+ if (($places * 1) >= 0) {
+ $amount = sprintf("%.${places}f", $amount + $adj) * 1;
+ } else {
+ $places *= -1;
+ $amount = sprintf("%.0f", $amount);
+ $amount = sprintf("%.f", $amount / (10 ** $places)) * (10 ** $places);
+ }
+
+ $amount;
+}
+
+
+sub parse_template {
+
+ my ($self, $myconfig, $userspath) = @_;
+
+ my ($chars_per_line, $lines_on_first_page, $lines_on_second_page) = (0, 0, 0);
+ my ($current_page, $current_line) = (1, 1);
+ my $pagebreak = "";
+ my $sum = 0;
+
+ my $subdir = "";
+ my $err = "";
+
+ my %include = ();
+ my $ok;
+
+ if ($self->{language_code}) {
+
+ if (-f "$self->{templates}/$self->{language_code}/$self->{IN}") {
+ open(IN, "$self->{templates}/$self->{language_code}/$self->{IN}") or $self->error("$self->{IN} : $!");
+ } else {
+ open(IN, "$self->{templates}/$self->{IN}") or $self->error("$self->{IN} : $!");
+ }
+
+ } else {
+ open(IN, "$self->{templates}/$self->{IN}") or $self->error("$self->{IN} : $!");
+ }
+
+ @_ = <IN>;
+ close(IN);
+
+ $self->{copies} = 1 if (($self->{copies} *= 1) <= 0);
+
+ # OUT is used for the media, screen, printer, email
+ # for postscript we store a copy in a temporary file
+ my $fileid = time;
+ my $tmpfile = $self->{IN};
+ $tmpfile =~ s/\./_$self->{fileid}./ if $self->{fileid};
+ $self->{tmpfile} = "$userspath/${fileid}_${tmpfile}";
+
+ if ($self->{format} =~ /(postscript|pdf)/ || $self->{media} eq 'email') {
+ $out = $self->{OUT};
+ $self->{OUT} = ">$self->{tmpfile}";
+ }
+
+ if ($self->{OUT}) {
+ open(OUT, "$self->{OUT}") or $self->error("$self->{OUT} : $!");
+
+ } else {
+ open(OUT, ">-") or $self->error("STDOUT : $!");
+ $self->header;
+ }
+
+ # first we generate a tmpfile
+ # read file and replace <%variable%>
+ while ($_ = shift) {
+
+ $par = "";
+ $var = $_;
+
+ # detect pagebreak block and its parameters
+ if (/<%pagebreak ([0-9]+) ([0-9]+) ([0-9]+)%>/) {
+ $chars_per_line = $1;
+ $lines_on_first_page = $2;
+ $lines_on_second_page = $3;
+
+ while ($_ = shift) {
+ last if (/<%end pagebreak%>/);
+ $pagebreak .= $_;
+ }
+ }
+
+ if (/<%foreach /) {
+
+ # this one we need for the count
+ chomp $var;
+ $var =~ s/.*?<%foreach (.+?)%>/$1/;
+ while ($_ = shift) {
+ last if (/<%end $var%>/);
+
+ # store line in $par
+ $par .= $_;
+ }
+
+ # display contents of $self->{number}[] array
+ for $i (0 .. $#{ $self->{$var} }) {
+
+ if ($var =~ /^(part|service)$/) {
+ next if $self->{$var}[$i] eq 'NULL';
+ }
+
+ # Try to detect whether a manual page break is necessary
+ # but only if there was a <%pagebreak ...%> block before
+
+ if ($var eq 'number' || $var eq 'part' || $var eq 'service') {
+
+ if ($chars_per_line && defined $self->{$var}) {
+
+ my $line;
+ my $lines = 0;
+ my @d = (description);
+ push @d, "itemnotes" if $self->{countitemnotes};
+
+ foreach my $item (@d) {
+
+ if ($self->{$item}[$i]) {
+
+ foreach $line (split /\r?\n/, $self->{$item}[$i]) {
+ $lines++;
+ $lines += int(length($line) / $chars_per_line);
+ }
+ }
+ }
+
+ my $lpp;
+
+ if ($current_page == 1) {
+ $lpp = $lines_on_first_page;
+ } else {
+ $lpp = $lines_on_second_page;
+ }
+
+ # Yes we need a manual page break
+ if (($current_line + $lines) > $lpp) {
+ my $pb = $pagebreak;
+
+ # replace the special variables <%sumcarriedforward%>
+ # and <%lastpage%>
+ my $psum = $self->format_amount($myconfig, $sum, 2);
+ $pb =~ s/<%sumcarriedforward%>/$psum/g;
+ $pb =~ s/<%lastpage%>/$current_page/g;
+
+ # only "normal" variables are supported here
+ # (no <%if, no <%foreach, no <%include)
+ $pb =~ s/<%(.+?)%>/$self->{$1}/g;
+
+ # page break block is ready to rock
+ print(OUT $pb);
+ $current_page++;
+ $current_line = 1;
+ $lines = 0;
+ }
+
+ $current_line += $lines;
+ }
+
+ $sum += $self->parse_amount($myconfig, $self->{linetotal}[$i]);
+ }
+
+ # don't parse par, we need it for each line
+ print OUT $self->format_line($par, $i);
+ }
+ next;
+ }
+
+ # if not comes before if!
+ if (/<%if not /) {
+
+ # check if it is not set and display
+ chop;
+ s/.*?<%if not (.+?)%>/$1/;
+
+ if (! $self->{$_}) {
+
+ while ($_ = shift) {
+ last if (/<%end /);
+
+ # store line in $par
+ $par .= $_;
+ }
+
+ $_ = $par;
+
+ } else {
+
+ while ($_ = shift) {
+ last if (/<%end /);
+ }
+
+ next;
+ }
+ }
+
+ if (/<%if /) {
+
+ # check if it is set and display
+ chop;
+ s/.*?<%if (.+?)%>/$1/;
+
+ if (/\s/) {
+ @a = split;
+ $ok = eval "$self->{$a[0]} $a[1] $a[2]";
+ } else {
+ $ok = $self->{$_};
+ }
+
+ if ($ok) {
+ while ($_ = shift) {
+ last if (/<%end /);
+ # store line in $par
+ $par .= $_;
+ }
+
+ $_ = $par;
+
+ } else {
+
+ while ($_ = shift) {
+ last if (/<%end /);
+ }
+
+ next;
+ }
+ }
+
+ # check for <%include filename%>
+ if (/<%include /) {
+
+ # get the filename
+ chomp $var;
+ $var =~ s/.*?<%include (.+?)%>/$1/;
+
+ # remove / .. for security reasons
+ $var =~ s/(\/|\.\.)//g;
+
+ # assume loop after 10 includes of the same file
+ next if ($include{$var} > 10);
+
+ unless (open(INC, "$self->{templates}/$self->{language_code}/$var")) {
+ $err = $!;
+ $self->cleanup;
+ $self->error("$self->{templates}/$self->{language_code}/$var : $err");
+ }
+
+ unshift(@_, <INC>);
+ close(INC);
+
+ $include{$var}++;
+
+ next;
+ }
+
+ print OUT $self->format_line($_);
+
+ }
+
+ close(OUT);
+
+ delete $self->{countitemnotes};
+
+ # Convert the tex file to postscript
+ if ($self->{format} =~ /(postscript|pdf)/) {
+
+ use Cwd;
+ $self->{cwd} = cwd();
+ $self->{tmpdir} = "$self->{cwd}/$userspath";
+
+ unless (chdir("$userspath")) {
+ $err = $!;
+ $self->cleanup;
+ $self->error("chdir : $err");
+ }
+
+ $self->{tmpfile} =~ s/$userspath\///g;
+
+ $self->{errfile} = $self->{tmpfile};
+ $self->{errfile} =~ s/tex$/err/;
+
+ my $r = 1;
+ if ($self->{format} eq 'postscript') {
+
+ system("latex --interaction=nonstopmode $self->{tmpfile} > $self->{errfile}");
+
+ while ($self->rerun_latex) {
+ system("latex --interaction=nonstopmode $self->{tmpfile} > $self->{errfile}");
+ last if ++$r > 4;
+ }
+
+ $self->{tmpfile} =~ s/tex$/dvi/;
+ $self->error($self->cleanup) if ! (-f $self->{tmpfile});
+
+ system("dvips $self->{tmpfile} -o -q");
+ $self->error($self->cleanup."dvips : $!") if ($?);
+ $self->{tmpfile} =~ s/dvi$/ps/;
+ }
+
+ if ($self->{format} eq 'pdf') {
+ system("pdflatex --interaction=nonstopmode $self->{tmpfile} > $self->{errfile}");
+
+ while ($self->rerun_latex) {
+ system("pdflatex --interaction=nonstopmode $self->{tmpfile} > $self->{errfile}");
+ last if ++$r > 4;
+ }
+
+ $self->{tmpfile} =~ s/tex$/pdf/;
+ $self->error($self->cleanup) if ! (-f $self->{tmpfile});
+ }
+ }
+
+
+ if ($self->{format} =~ /(postscript|pdf)/ || $self->{media} eq 'email') {
+
+ if ($self->{media} eq 'email') {
+
+ use LedgerSMB::Mailer;
+
+ my $mail = new Mailer;
+
+ for (qw(cc bcc subject message version format charset)) {
+ $mail->{$_} = $self->{$_}
+ }
+
+ $mail->{to} = qq|$self->{email}|;
+ $mail->{from} = qq|"$myconfig->{name}" <$myconfig->{email}>|;
+ $mail->{fileid} = "$fileid.";
+
+ # if we send html or plain text inline
+ if (($self->{format} =~ /(html|txt)/) &&
+ ($self->{sendmode} eq 'inline')) {
+
+ my $br = "";
+ $br = "<br>" if $self->{format} eq 'html';
+
+ $mail->{contenttype} = "text/$self->{format}";
+
+ $mail->{message} =~ s/\r?\n/$br\n/g;
+ $myconfig->{signature} =~ s/\\n/$br\n/g;
+ $mail->{message} .= "$br\n-- $br\n$myconfig->{signature}\n$br" if $myconfig->{signature};
+
+ unless (open(IN, $self->{tmpfile})) {
+ $err = $!;
+ $self->cleanup;
+ $self->error("$self->{tmpfile} : $err");
+ }
+
+ while (<IN>) {
+ $mail->{message} .= $_;
+ }
+
+ close(IN);
+
+ } else {
+
+ @{ $mail->{attachments} } = ($self->{tmpfile});
+
+ $myconfig->{signature} =~ s/\\n/\n/g;
+ $mail->{message} .= "\n-- \n$myconfig->{signature}" if $myconfig->{signature};
+
+ }
+
+ if ($err = $mail->send($out)) {
+ $self->cleanup;
+ $self->error($err);
+ }
+
+ } else {
+
+ $self->{OUT} = $out;
+
+ unless (open(IN, $self->{tmpfile})) {
+ $err = $!;
+ $self->cleanup;
+ $self->error("$self->{tmpfile} : $err");
+ }
+
+ binmode(IN);
+
+ $self->{copies} = 1 if $self->{media} =~ /(screen|email|queue)/;
+
+ chdir("$self->{cwd}");
+
+ for my $i (1 .. $self->{copies}) {
+ if ($self->{OUT}) {
+
+ unless (open(OUT, $self->{OUT})) {
+ $err = $!;
+ $self->cleanup;
+ $self->error("$self->{OUT} : $err");
+ }
+
+ } else {
+
+ # launch application
+ print qq|Content-Type: application/$self->{format}
+ Content-Disposition: attachment; filename="$self->{tmpfile}"\n\n|;
+
+ unless (open(OUT, ">-")) {
+ $err = $!;
+ $self->cleanup;
+ $self->error("STDOUT : $err");
+ }
+ }
+
+ binmode(OUT);
+
+ while (<IN>) {
+ print OUT $_;
+ }
+
+ close(OUT);
+ seek IN, 0, 0;
+ }
+
+ close(IN);
+ }
+
+ $self->cleanup;
+ }
+}
+
+
+sub format_line {
+
+ my $self = shift;
+
+ $_ = shift;
+ my $i = shift;
+
+ my $str;
+ my $newstr;
+ my $pos;
+ my $l;
+ my $lf;
+ my $line;
+ my $var = "";
+ my %a;
+ my $offset;
+ my $pad;
+ my $item;
+
+ while (/<%(.+?)%>/) {
+
+ %a = ();
+
+ foreach $item (split / /, $1) {
+ my ($key, $value) = split /=/, $item;
+
+ if ($value ne "") {
+ $a{$key} = $value;
+ } else {
+ $var = $item;
+ }
+ }
+
+ $str = (defined $i) ? $self->{$var}[$i] : $self->{$var};
+ $newstr = $str;
+
+ $self->{countitemnotes} = 1 if $var eq 'itemnotes';
+
+ $var = $1;
+ if ($var =~ /^if\s+not\s+/) {
+
+ if ($str) {
+
+ $var =~ s/if\s+not\s+//;
+ s/<%if\s+not\s+$var%>.*?(<%end\s+$var%>|$)//s;
+
+ } else {
+ s/<%$var%>//;
+ }
+
+ next;
+ }
+
+ if ($var =~ /^if\s+/) {
+
+ if ($str) {
+ s/<%$var%>//;
+ } else {
+ $var =~ s/if\s+//;
+ s/<%if\s+$var%>.*?(<%end\s+$var%>|$)//s;
+ }
+
+ next;
+ }
+
+ if ($var =~ /^end\s+/) {
+ s/<%$var%>//;
+ next;
+ }
+
+ if ($a{align} || $a{width} || $a{offset}) {
+
+ $newstr = "";
+ $offset = 0;
+ $lf = "";
+
+ foreach $str (split /\n/, $str) {
+
+ $line = $str;
+ $l = length $str;
+
+ do {
+
+ if (($pos = length $str) > $a{width}) {
+
+ if (($pos = rindex $str, " ", $a{width}) > 0) {
+ $line = substr($str, 0, $pos);
+ }
+
+ $pos = length $str if $pos == -1;
+ }
+
+ $l = length $line;
+
+ # pad left, right or center
+ $l = ($a{width} - $l);
+
+ $pad = " " x $l;
+
+ if ($a{align} =~ /right/i) {
+ $line = " " x $offset . $pad . $line;
+ }
+
+ if ($a{align} =~ /left/i) {
+ $line = " " x $offset . $line . $pad;
+ }
+
+ if ($a{align} =~ /center/i) {
+ $pad = " " x ($l/2);
+ $line = " " x $offset . $pad . $line;
+ $pad = " " x ($l/2);
+ $line .= $pad;
+ }
+
+ $newstr .= "$lf$line";
+
+ $str = substr($str, $pos + 1);
+ $line = $str;
+ $lf = "\n";
+
+ $offset = $a{offset};
+
+ } while ($str);
+ }
+ }
+
+ s/<%(.+?)%>/$newstr/;
+
+ }
+
+ $_;
+}
+
+
+sub cleanup {
+
+ my $self = shift;
+
+ chdir("$self->{tmpdir}");
+
+ my @err = ();
+
+ if (-f "$self->{errfile}") {
+ open(FH, "$self->{errfile}");
+ @err = <FH>;
+ close(FH);
+ }
+
+ if ($self->{tmpfile}) {
+ # strip extension
+ $self->{tmpfile} =~ s/\.\w+$//g;
+ my $tmpfile = $self->{tmpfile};
+ unlink(<$tmpfile.*>);
+ }
+
+ chdir("$self->{cwd}");
+
+ "@err";
+}
+
+
+sub rerun_latex {
+
+ my $self = shift;
+
+ my $a = 0;
+
+ if (-f "$self->{errfile}") {
+ open(FH, "$self->{errfile}");
+ $a = grep /(longtable Warning:|Warning:.*?LastPage)/, <FH>;
+ close(FH);
+ }
+
+ $a;
+}
+
+
+sub format_string {
+
+ my ($self, @fields) = @_;
+
+ my $format = $self->{format};
+
+ if ($self->{format} =~ /(postscript|pdf)/) {
+ $format = 'tex';
+ }
+
+ my %replace = ( 'order' => { html => [ '<', '>', '\n', '\r' ],
+ txt => [ '\n', '\r' ],
+ tex => [ quotemeta('\\'), '&', '\n',
+ '\r', '\$', '%', '_', '#',
+ quotemeta('^'), '{', '}', '<', '>',
+ '?' ],
+ utf => [ quotemeta('\\'), '&', quotemeta('\n'),
+ '\r', '\$', '%', '_', '#',
+ quotemeta('^'), '{', '}', '<', '>' ] },
+ html => { '<' => '&lt;', '>' => '&gt;',
+ '\n' => '<br />', '\r' => '<br />' },
+ txt => { '\n' => "\n", '\r' => "\r" },
+ tex => {'&' => '\&', '\$' => '\$', '%' => '\%', '_' => '\_',
+ '#' => '\#', quotemeta('^') => '\^\\', '{' => '\{', '}' => '\}',
+ '<' => '$<$', '>' => '$>$',
+ '\n' => '\newline ', '\r' => '\newline ',
+ '?' => '\pounds ', quotemeta('\\') => '/' } );
+
+ my $key;
+
+ foreach $key (@{ $replace{order}{$format} }) {
+ for (@fields) { $self->{$_} =~ s/$key/$replace{$format}{$key}/g }
+ }
+
+}
+
+
+sub datetonum {
+
+ my ($self, $myconfig, $date, $picture) = @_;
+
+ if ($date && $date =~ /\D/) {
+
+ if ($myconfig->{dateformat} =~ /^yy/) {
+ ($yy, $mm, $dd) = split /\D/, $date;
+ }
+
+ if ($myconfig->{dateformat} =~ /^mm/) {
+ ($mm, $dd, $yy) = split /\D/, $date;
+ }
+
+ if ($myconfig->{dateformat} =~ /^dd/) {
+ ($dd, $mm, $yy) = split /\D/, $date;
+ }
+
+ $dd *= 1;
+ $mm *= 1;
+ $yy += 2000 if length $yy == 2;
+
+ $dd = substr("0$dd", -2);
+ $mm = substr("0$mm", -2);
+
+ $date = "$yy$mm$dd";
+ }
+
+ $date;
+}
+
+
+sub add_date {
+
+ my ($self, $myconfig, $date, $repeat, $unit) = @_;
+
+ use Time::Local;
+
+ my $diff = 0;
+ my $spc = $myconfig->{dateformat};
+ $spc =~ s/\w//g;
+ $spc = substr($spc, 0, 1);
+
+ if ($date) {
+
+ if ($date =~ /\D/) {
+
+ if ($myconfig->{dateformat} =~ /^yy/) {
+ ($yy, $mm, $dd) = split /\D/, $date;
+ }
+
+ if ($myconfig->{dateformat} =~ /^mm/) {
+ ($mm, $dd, $yy) = split /\D/, $date;
+ }
+
+ if ($myconfig->{dateformat} =~ /^dd/) {
+ ($dd, $mm, $yy) = split /\D/, $date;
+ }
+
+ } else {
+ # ISO
+ ($yy, $mm, $dd) =~ /(....)(..)(..)/;
+ }
+
+ if ($unit eq 'days') {
+ $diff = $repeat * 86400;
+ }
+
+ if ($unit eq 'weeks') {
+ $diff = $repeat * 604800;
+ }
+
+ if ($unit eq 'months') {
+ $diff = $mm + $repeat;
+
+ my $whole = int($diff / 12);
+ $yy += $whole;
+
+ $mm = ($diff % 12) + 1;
+ $diff = 0;
+ }
+
+ if ($unit eq 'years') {
+ $yy++;
+ }
+
+ $mm--;
+
+ @t = localtime(timelocal(0,0,0,$dd,$mm,$yy) + $diff);
+
+ $t[4]++;
+ $mm = substr("0$t[4]",-2);
+ $dd = substr("0$t[3]",-2);
+ $yy = $t[5] + 1900;
+
+ if ($date =~ /\D/) {
+
+ if ($myconfig->{dateformat} =~ /^yy/) {
+ $date = "$yy$spc$mm$spc$dd";
+ }
+
+ if ($myconfig->{dateformat} =~ /^mm/) {
+ $date = "$mm$spc$dd$spc$yy";
+ }
+
+ if ($myconfig->{dateformat} =~ /^dd/) {
+ $date = "$dd$spc$mm$spc$yy";
+ }
+
+ } else {
+ $date = "$yy$mm$dd";
+ }
+ }
+
+ $date;
+}
+
+
+sub print_button {
+ my ($self, $button, $name) = @_;
+
+ print qq|<input class="submit" type="submit" name="action" value="$button->{$name}{value}" accesskey="$button->{$name}{key}" title="$button->{$name}{value} [Alt-$button->{$name}{key}]" />\n|;
+}
+
+
+# Database routines used throughout
+
+sub dbconnect {
+
+ my ($self, $myconfig) = @_;
+
+ # connect to database
+ my $dbh = DBI->connect($myconfig->{dbconnect}, $myconfig->{dbuser}, $myconfig->{dbpasswd}) or $self->dberror;
+
+ # set db options
+ if ($myconfig->{dboptions}) {
+ $dbh->do($myconfig->{dboptions}) || $self->dberror($myconfig->{dboptions});
+ }
+
+ $dbh;
+}
+
+
+sub dbconnect_noauto {
+
+ my ($self, $myconfig) = @_;
+
+ # connect to database
+ $dbh = DBI->connect($myconfig->{dbconnect}, $myconfig->{dbuser}, $myconfig->{dbpasswd}, {AutoCommit => 0}) or $self->dberror;
+
+ # set db options
+ if ($myconfig->{dboptions}) {
+ $dbh->do($myconfig->{dboptions});
+ }
+
+ $dbh;
+}
+
+
+sub dbquote {
+
+ my ($self, $var, $type) = @_;
+
+ # DBI does not return NULL for SQL_DATE if the date is empty
+ if ($type eq 'SQL_DATE') {
+ $_ = ($var) ? "'$var'" : "NULL";
+ }
+
+ if ($type eq 'SQL_INT') {
+ $_ = $var * 1;
+ }
+
+ $_;
+}
+
+
+sub update_balance {
+
+ my ($self, $dbh, $table, $field, $where, $value) = @_;
+
+ # if we have a value, go do it
+ if ($value) {
+ # retrieve balance from table
+ my $query = "SELECT $field FROM $table WHERE $where FOR UPDATE";
+ my ($balance) = $dbh->selectrow_array($query);
+
+ $balance += $value;
+ # update balance
+ $query = "UPDATE $table SET $field = $balance WHERE $where";
+ $dbh->do($query) || $self->dberror($query);
+ }
+}
+
+
+sub update_exchangerate {
+
+ my ($self, $dbh, $curr, $transdate, $buy, $sell) = @_;
+
+ # some sanity check for currency
+ return if ($curr eq "");
+
+ my $query = qq|SELECT curr
+ FROM exchangerate
+ WHERE curr = '$curr'
+ AND transdate = '$transdate'
+ FOR UPDATE|;
+
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $self->dberror($query);
+
+ my $set;
+
+ if ($buy && $sell) {
+ $set = "buy = $buy, sell = $sell";
+ } elsif ($buy) {
+ $set = "buy = $buy";
+ } elsif ($sell) {
+ $set = "sell = $sell";
+ }
+
+ if ($sth->fetchrow_array) {
+ $query = qq|UPDATE exchangerate
+ SET $set
+ WHERE curr = '$curr'
+ AND transdate = '$transdate'|;
+
+ } else {
+ $query = qq|INSERT INTO exchangerate (curr, buy, sell, transdate)
+ VALUES ('$curr', $buy, $sell, '$transdate')|;
+ }
+
+ $sth->finish;
+ $dbh->do($query) || $self->dberror($query);
+
+}
+
+
+sub save_exchangerate {
+
+ my ($self, $myconfig, $currency, $transdate, $rate, $fld) = @_;
+
+ my $dbh = $self->dbconnect($myconfig);
+
+ my ($buy, $sell) = (0, 0);
+ $buy = $rate if $fld eq 'buy';
+ $sell = $rate if $fld eq 'sell';
+
+ $self->update_exchangerate($dbh, $currency, $transdate, $buy, $sell);
+
+ $dbh->disconnect;
+}
+
+
+sub get_exchangerate {
+
+ my ($self, $dbh, $curr, $transdate, $fld) = @_;
+
+ my $exchangerate = 1;
+
+ if ($transdate) {
+ my $query = qq|SELECT $fld
+ FROM exchangerate
+ WHERE curr = '$curr'
+ AND transdate = '$transdate'|;
+
+ ($exchangerate) = $dbh->selectrow_array($query);
+ }
+
+ $exchangerate;
+}
+
+
+sub check_exchangerate {
+
+ my ($self, $myconfig, $currency, $transdate, $fld) = @_;
+
+ return "" unless $transdate;
+
+ my $dbh = $self->dbconnect($myconfig);
+
+ my $query = qq|SELECT $fld
+ FROM exchangerate
+ WHERE curr = '$currency'
+ AND transdate = '$transdate'|;
+
+ my ($exchangerate) = $dbh->selectrow_array($query);
+
+ $dbh->disconnect;
+
+ $exchangerate;
+}
+
+
+sub add_shipto {
+ my ($self, $dbh, $id) = @_;
+
+ my $shipto;
+
+ foreach my $item (qw(name address1 address2 city state
+ zipcode country contact phone fax email)) {
+
+ if ($self->{"shipto$item"} ne "") {
+ $shipto = 1 if ($self->{$item} ne $self->{"shipto$item"});
+ }
+ }
+
+ if ($shipto) {
+ my $query = qq|INSERT INTO shipto (trans_id, shiptoname, shiptoaddress1,
+ shiptoaddress2, shiptocity, shiptostate,
+ shiptozipcode, shiptocountry, shiptocontact,
+ shiptophone, shiptofax, shiptoemail)
+ VALUES ($id, |
+ .$dbh->quote($self->{shiptoname}).qq|, |
+ .$dbh->quote($self->{shiptoaddress1}).qq|, |
+ .$dbh->quote($self->{shiptoaddress2}).qq|, |
+ .$dbh->quote($self->{shiptocity}).qq|, |
+ .$dbh->quote($self->{shiptostate}).qq|, |
+ .$dbh->quote($self->{shiptozipcode}).qq|, |
+ .$dbh->quote($self->{shiptocountry}).qq|, |
+ .$dbh->quote($self->{shiptocontact}).qq|,
+ '$self->{shiptophone}', '$self->{shiptofax}',
+ '$self->{shiptoemail}')|;
+
+ $dbh->do($query) || $self->dberror($query);
+ }
+}
+
+
+sub get_employee {
+ my ($self, $dbh) = @_;
+
+ my $login = $self->{login};
+ $login =~ s/@.*//;
+
+ my $query = qq|SELECT name, id
+ FROM employee
+ WHERE login = '$login'|;
+
+ my (@a) = $dbh->selectrow_array($query);
+ $a[1] *= 1;
+
+ @a;
+}
+
+
+# this sub gets the id and name from $table
+sub get_name {
+
+ my ($self, $myconfig, $table, $transdate) = @_;
+
+ # connect to database
+ my $dbh = $self->dbconnect($myconfig);
+
+ my $where;
+ if ($transdate) {
+ $where = qq|AND (startdate IS NULL OR startdate <= '$transdate')
+ AND (enddate IS NULL OR enddate >= '$transdate')|;
+ }
+
+ my $name = $self->like(lc $self->{$table});
+
+ my $query = qq|SELECT *
+ FROM $table
+ WHERE (lower(name) LIKE '$name'
+ OR ${table}number LIKE '$name')
+ $where
+ ORDER BY name|;
+
+ my $sth = $dbh->prepare($query);
+
+ $sth->execute || $self->dberror($query);
+
+ my $i = 0;
+ @{ $self->{name_list} } = ();
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push(@{ $self->{name_list} }, $ref);
+ $i++;
+ }
+
+ $sth->finish;
+ $dbh->disconnect;
+
+ $i;
+
+}
+
+
+sub all_vc {
+
+ my ($self, $myconfig, $vc, $module, $dbh, $transdate, $job) = @_;
+
+ my $ref;
+ my $disconnect = 0;
+
+ if (! $dbh) {
+ $dbh = $self->dbconnect($myconfig);
+ $disconnect = 1;
+ }
+
+ my $sth;
+
+ my $query = qq|SELECT count(*) FROM $vc|;
+ my $where;
+
+ if ($transdate) {
+ $where = qq|AND (startdate IS NULL OR startdate <= '$transdate')
+ AND (enddate IS NULL OR enddate >= '$transdate')|;
+
+ $query .= qq| WHERE 1=1 $where|;
+ }
+
+ my ($count) = $dbh->selectrow_array($query);
+
+ # build selection list
+ if ($count < $myconfig->{vclimit}) {
+
+ $self->{"${vc}_id"} *= 1;
+
+ $query = qq|SELECT id, name
+ FROM $vc
+ WHERE 1=1
+ $where
+
+ UNION
+
+ SELECT id,name
+ FROM $vc
+ WHERE id = $self->{"${vc}_id"}
+ ORDER BY name|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $self->dberror($query);
+
+ @{ $self->{"all_$vc"} } = ();
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $self->{"all_$vc"} }, $ref;
+ }
+
+ $sth->finish;
+
+ }
+
+ # get self
+ if (! $self->{employee_id}) {
+ ($self->{employee}, $self->{employee_id}) = split /--/, $self->{employee};
+ ($self->{employee}, $self->{employee_id}) = $self->get_employee($dbh) unless $self->{employee_id};
+ }
+
+ $self->all_employees($myconfig, $dbh, $transdate, 1);
+
+ $self->all_departments($myconfig, $dbh, $vc);
+
+ $self->all_projects($myconfig, $dbh, $transdate, $job);
+
+ # get language codes
+ $query = qq|SELECT *
+ FROM language
+ ORDER BY 2|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $self->dberror($query);
+
+ $self->{all_language} = ();
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $self->{all_language} }, $ref;
+ }
+
+ $sth->finish;
+ $self->all_taxaccounts($myconfig, $dbh, $transdate);
+ $dbh->disconnect if $disconnect;
+}
+
+
+sub all_taxaccounts {
+
+ my ($self, $myconfig, $dbh, $transdate) = @_;
+
+ my $disconnect = ($dbh) ? 0 : 1;
+
+ if (! $dbh) {
+ $dbh = $self->dbconnect($myconfig);
+ }
+
+ my $sth;
+ my $query;
+ my $where;
+
+
+ if ($transdate) {
+ $where = qq| AND (t.validto >= '$transdate' OR t.validto IS NULL)|;
+ }
+
+ if ($self->{taxaccounts}) {
+
+ # rebuild tax rates
+ $query = qq|SELECT t.rate, t.taxnumber
+ FROM tax t
+ JOIN chart c ON (c.id = t.chart_id)
+ WHERE c.accno = ?
+ $where
+ ORDER BY accno, validto|;
+
+ $sth = $dbh->prepare($query) || $self->dberror($query);
+
+ foreach my $accno (split / /, $self->{taxaccounts}) {
+ $sth->execute($accno);
+ ($self->{"${accno}_rate"}, $self->{"${accno}_taxnumber"}) = $sth->fetchrow_array;
+ $sth->finish;
+ }
+ }
+
+ $dbh->disconnect if $disconnect;
+}
+
+
+sub all_employees {
+
+ my ($self, $myconfig, $dbh, $transdate, $sales) = @_;
+
+ # setup employees/sales contacts
+ my $query = qq|SELECT id, name
+ FROM employee
+ WHERE 1 = 1|;
+
+ if ($transdate) {
+ $query .= qq| AND (startdate IS NULL OR startdate <= '$transdate')
+ AND (enddate IS NULL OR enddate >= '$transdate')|;
+ } else {
+ $query .= qq| AND enddate IS NULL|;
+ }
+
+ if ($sales) {
+ $query .= qq| AND sales = '1'|;
+ }
+
+ $query .= qq| ORDER BY name|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $self->dberror($query);
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $self->{all_employee} }, $ref;
+ }
+
+ $sth->finish;
+}
+
+
+
+sub all_projects {
+
+ my ($self, $myconfig, $dbh, $transdate, $job) = @_;
+
+ my $disconnect = 0;
+
+ if (! $dbh) {
+ $dbh = $self->dbconnect($myconfig);
+ $disconnect = 1;
+ }
+
+ my $where = "1 = 1";
+
+ $where = qq|id NOT IN (SELECT id
+ FROM parts
+ WHERE project_id > 0)| if ! $job;
+
+ my $query = qq|SELECT *
+ FROM project
+ WHERE $where|;
+
+ if ($form->{language_code}) {
+
+ $query = qq|SELECT pr.*, t.description AS translation
+ FROM project pr
+ LEFT JOIN translation t ON (t.trans_id = pr.id)
+ WHERE t.language_code = '$form->{language_code}'|;
+ }
+
+ if ($transdate) {
+ $query .= qq| AND (startdate IS NULL OR startdate <= '$transdate')
+ AND (enddate IS NULL OR enddate >= '$transdate')|;
+ }
+
+ $query .= qq| ORDER BY projectnumber|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $self->dberror($query);
+
+ @{ $self->{all_project} } = ();
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $self->{all_project} }, $ref;
+ }
+
+ $sth->finish;
+ $dbh->disconnect if $disconnect;
+}
+
+
+sub all_departments {
+
+ my ($self, $myconfig, $dbh, $vc) = @_;
+
+ my $disconnect = 0;
+ if (! $dbh) {
+ $dbh = $self->dbconnect($myconfig);
+ $disconnect = 1;
+ }
+
+ my $where = "1 = 1";
+
+ if ($vc) {
+ if ($vc eq 'customer') {
+ $where = " role = 'P'";
+ }
+ }
+
+ my $query = qq|SELECT id, description
+ FROM department
+ WHERE $where
+ ORDER BY 2|;
+
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $self->dberror($query);
+
+ @{ $self->{all_department} } = ();
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $self->{all_department} }, $ref;
+ }
+
+ $sth->finish;
+ $self->all_years($myconfig, $dbh);
+ $dbh->disconnect if $disconnect;
+}
+
+
+sub all_years {
+
+ my ($self, $myconfig, $dbh) = @_;
+
+ my $disconnect = 0;
+
+ if (! $dbh) {
+ $dbh = $self->dbconnect($myconfig);
+ $disconnect = 1;
+ }
+
+ # get years
+ my $query = qq|SELECT (SELECT MIN(transdate) FROM acc_trans),
+ (SELECT MAX(transdate) FROM acc_trans)
+ FROM defaults|;
+
+ my ($startdate, $enddate) = $dbh->selectrow_array($query);
+
+ if ($myconfig->{dateformat} =~ /^yy/) {
+ ($startdate) = split /\W/, $startdate;
+ ($enddate) = split /\W/, $enddate;
+ } else {
+ (@_) = split /\W/, $startdate;
+ $startdate = $_[2];
+ (@_) = split /\W/, $enddate;
+ $enddate = $_[2];
+ }
+
+ $self->{all_years} = ();
+ $startdate = substr($startdate,0,4);
+ $enddate = substr($enddate,0,4);
+
+ while ($enddate >= $startdate) {
+ push @{ $self->{all_years} }, $enddate--;
+ }
+
+ #this should probably be changed to use locale
+ %{ $self->{all_month} } = ( '01' => 'January',
+ '02' => 'February',
+ '03' => 'March',
+ '04' => 'April',
+ '05' => 'May ',
+ '06' => 'June',
+ '07' => 'July',
+ '08' => 'August',
+ '09' => 'September',
+ '10' => 'October',
+ '11' => 'November',
+ '12' => 'December' );
+
+ $dbh->disconnect if $disconnect;
+}
+
+
+sub create_links {
+
+ my ($self, $module, $myconfig, $vc, $job) = @_;
+
+ # get last customers or vendors
+ my ($query, $sth);
+
+ my $dbh = $self->dbconnect($myconfig);
+
+ my %xkeyref = ();
+
+
+ # now get the account numbers
+ $query = qq|SELECT accno, description, link
+ FROM chart
+ WHERE link LIKE '%$module%'
+ ORDER BY accno|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $self->dberror($query);
+
+ $self->{accounts} = "";
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+
+ foreach my $key (split /:/, $ref->{link}) {
+
+ if ($key =~ /$module/) {
+ # cross reference for keys
+ $xkeyref{$ref->{accno}} = $key;
+
+ push @{ $self->{"${module}_links"}{$key} }, { accno => $ref->{accno},
+ description => $ref->{description} };
+
+ $self->{accounts} .= "$ref->{accno} " unless $key =~ /tax/;
+ }
+ }
+ }
+
+ $sth->finish;
+
+ my $arap = ($vc eq 'customer') ? 'ar' : 'ap';
+
+ if ($self->{id}) {
+
+ $query = qq|SELECT a.invnumber, a.transdate,
+ a.${vc}_id, a.datepaid, a.duedate, a.ordnumber,
+ a.taxincluded, a.curr AS currency, a.notes, a.intnotes,
+ c.name AS $vc, a.department_id, d.description AS department,
+ a.amount AS oldinvtotal, a.paid AS oldtotalpaid,
+ a.employee_id, e.name AS employee, c.language_code,
+ a.ponumber
+ FROM $arap a
+ JOIN $vc c ON (a.${vc}_id = c.id)
+ LEFT JOIN employee e ON (e.id = a.employee_id)
+ LEFT JOIN department d ON (d.id = a.department_id)
+ WHERE a.id = $self->{id}|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $self->dberror($query);
+
+ $ref = $sth->fetchrow_hashref(NAME_lc);
+
+ foreach $key (keys %$ref) {
+ $self->{$key} = $ref->{$key};
+ }
+
+ $sth->finish;
+
+
+ # get printed, emailed
+ $query = qq|SELECT s.printed, s.emailed, s.spoolfile, s.formname
+ FROM status s
+ WHERE s.trans_id = $self->{id}|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ $self->{printed} .= "$ref->{formname} " if $ref->{printed};
+ $self->{emailed} .= "$ref->{formname} " if $ref->{emailed};
+ $self->{queued} .= "$ref->{formname} $ref->{spoolfile} " if $ref->{spoolfile};
+ }
+
+ $sth->finish;
+ for (qw(printed emailed queued)) { $self->{$_} =~ s/ +$//g }
+
+ # get recurring
+ $self->get_recurring($dbh);
+
+ # get amounts from individual entries
+ $query = qq|SELECT c.accno, c.description, a.source, a.amount,
+ a.memo, a.transdate, a.cleared, a.project_id,
+ p.projectnumber
+ FROM acc_trans a
+ JOIN chart c ON (c.id = a.chart_id)
+ LEFT JOIN project p ON (p.id = a.project_id)
+ WHERE a.trans_id = $self->{id}
+ AND a.fx_transaction = '0'
+ ORDER BY transdate|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $self->dberror($query);
+
+
+ my $fld = ($vc eq 'customer') ? 'buy' : 'sell';
+
+ $self->{exchangerate} = $self->get_exchangerate($dbh, $self->{currency}, $self->{transdate}, $fld);
+
+ # store amounts in {acc_trans}{$key} for multiple accounts
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+ $ref->{exchangerate} = $self->get_exchangerate($dbh, $self->{currency}, $ref->{transdate}, $fld);
+
+ push @{ $self->{acc_trans}{$xkeyref{$ref->{accno}}} }, $ref;
+ }
+
+ $sth->finish;
+
+ $query = qq|SELECT d.curr AS currencies, d.closedto, d.revtrans
+ FROM defaults d|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $self->dberror($query);
+
+ $ref = $sth->fetchrow_hashref(NAME_lc);
+ for (keys %$ref) { $self->{$_} = $ref->{$_} }
+ $sth->finish;
+
+ } else {
+
+ # get date
+ $query = qq|SELECT current_date AS transdate,
+ d.curr AS currencies, d.closedto, d.revtrans
+ FROM defaults d|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $self->dberror($query);
+
+ $ref = $sth->fetchrow_hashref(NAME_lc);
+ for (keys %$ref) { $self->{$_} = $ref->{$_} }
+ $sth->finish;
+
+ if (! $self->{"$self->{vc}_id"}) {
+ $self->lastname_used($myconfig, $dbh, $vc, $module);
+ }
+ }
+
+ $self->all_vc($myconfig, $vc, $module, $dbh, $self->{transdate}, $job);
+ $dbh->disconnect;
+}
+
+
+sub lastname_used {
+
+ my ($self, $myconfig, $dbh, $vc, $module) = @_;
+
+ my $arap = ($vc eq 'customer') ? "ar" : "ap";
+ my $where = "1 = 1";
+ my $sth;
+
+ if ($self->{type} =~ /_order/) {
+ $arap = 'oe';
+ $where = "quotation = '0'";
+ }
+
+ if ($self->{type} =~ /_quotation/) {
+ $arap = 'oe';
+ $where = "quotation = '1'";
+ }
+
+ my $query = qq|SELECT id
+ FROM $arap
+ WHERE id IN (SELECT MAX(id)
+ FROM $arap
+ WHERE $where
+ AND ${vc}_id > 0)|;
+
+ my ($trans_id) = $dbh->selectrow_array($query);
+
+ $trans_id *= 1;
+
+ my $DAYS = ($myconfig->{dbdriver} eq 'DB2') ? "DAYS" : "";
+
+ $query = qq|SELECT ct.name AS $vc, a.curr AS currency, a.${vc}_id,
+ current_date + ct.terms $DAYS AS duedate, a.department_id,
+ d.description AS department, ct.notes, ct.curr AS currency
+ FROM $arap a
+ JOIN $vc ct ON (a.${vc}_id = ct.id)
+ LEFT JOIN department d ON (a.department_id = d.id)
+ WHERE a.id = $trans_id|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $self->dberror($query);
+
+ my $ref = $sth->fetchrow_hashref(NAME_lc);
+ for (keys %$ref) { $self->{$_} = $ref->{$_} }
+ $sth->finish;
+}
+
+
+
+sub current_date {
+
+ my ($self, $myconfig, $thisdate, $days) = @_;
+
+ my $dbh = $self->dbconnect($myconfig);
+ my $query;
+
+ $days *= 1;
+ if ($thisdate) {
+
+ my $dateformat = $myconfig->{dateformat};
+
+ if ($myconfig->{dateformat} !~ /^y/) {
+ my @a = split /\D/, $thisdate;
+ $dateformat .= "yy" if (length $a[2] > 2);
+ }
+
+ if ($thisdate !~ /\D/) {
+ $dateformat = 'yyyymmdd';
+ }
+
+ if ($myconfig->{dbdriver} eq 'DB2') {
+ $query = qq|SELECT date('$thisdate') + $days DAYS AS thisdate
+ FROM defaults|;
+
+ } else {
+ $query = qq|SELECT to_date('$thisdate', '$dateformat') + $days AS thisdate
+ FROM defaults|;
+ }
+
+ } else {
+ $query = qq|SELECT current_date AS thisdate
+ FROM defaults|;
+ }
+
+ ($thisdate) = $dbh->selectrow_array($query);
+ $dbh->disconnect;
+ $thisdate;
+}
+
+
+sub like {
+
+ my ($self, $str) = @_;
+
+ if ($str !~ /(%|_)/) {
+
+ if ($str =~ /(^").*("$)/) {
+ $str =~ s/(^"|"$)//g;
+ } else {
+ $str = "%$str%";
+ }
+ }
+
+ $str =~ s/'/''/g;
+ $str;
+}
+
+
+sub redo_rows {
+
+ my ($self, $flds, $new, $count, $numrows) = @_;
+
+ my @ndx = ();
+
+ for (1 .. $count) {
+ push @ndx, { num => $new->[$_-1]->{runningnumber}, ndx => $_ }
+ }
+
+ my $i = 0;
+ # fill rows
+ foreach my $item (sort { $a->{num} <=> $b->{num} } @ndx) {
+ $i++;
+ $j = $item->{ndx} - 1;
+ for (@{$flds}) { $self->{"${_}_$i"} = $new->[$j]->{$_} }
+ }
+
+ # delete empty rows
+ for $i ($count + 1 .. $numrows) {
+ for (@{$flds}) { delete $self->{"${_}_$i"} }
+ }
+}
+
+
+sub get_partsgroup {
+
+ my ($self, $myconfig, $p) = @_;
+
+ my $dbh = $self->dbconnect($myconfig);
+
+ my $query = qq|SELECT DISTINCT pg.id, pg.partsgroup
+ FROM partsgroup pg
+ JOIN parts p ON (p.partsgroup_id = pg.id)|;
+
+ my $where;
+ my $sortorder = "partsgroup";
+
+ if ($p->{searchitems} eq 'part') {
+ $where = qq| WHERE (p.inventory_accno_id > 0
+ AND p.income_accno_id > 0)|;
+ }
+
+ if ($p->{searchitems} eq 'service') {
+ $where = qq| WHERE p.inventory_accno_id IS NULL|;
+ }
+
+ if ($p->{searchitems} eq 'assembly') {
+ $where = qq| WHERE p.assembly = '1'|;
+ }
+
+ if ($p->{searchitems} eq 'labor') {
+ $where = qq| WHERE p.inventory_accno_id > 0 AND p.income_accno_id IS NULL|;
+ }
+
+ if ($p->{searchitems} eq 'nolabor') {
+ $where = qq| WHERE p.income_accno_id > 0|;
+ }
+
+ if ($p->{all}) {
+ $query = qq|SELECT id, partsgroup
+ FROM partsgroup|;
+ }
+
+ if ($p->{language_code}) {
+ $sortorder = "translation";
+
+ $query = qq|SELECT DISTINCT pg.id, pg.partsgroup,
+ t.description AS translation
+ FROM partsgroup pg
+ JOIN parts p ON (p.partsgroup_id = pg.id)
+ LEFT JOIN translation t ON (t.trans_id = pg.id AND t.language_code = '$p->{language_code}')|;
+ }
+
+ $query .= qq| $where ORDER BY $sortorder|;
+
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $self->dberror($query);
+
+ $self->{all_partsgroup} = ();
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $self->{all_partsgroup} }, $ref;
+ }
+
+ $sth->finish;
+ $dbh->disconnect;
+}
+
+
+sub update_status {
+
+ my ($self, $myconfig) = @_;
+
+ # no id return
+ return unless $self->{id};
+
+ my $dbh = $self->dbconnect_noauto($myconfig);
+
+ my %queued = split / +/, $self->{queued};
+ my $spoolfile = ($queued{$self->{formname}}) ? "'$queued{$self->{formname}}'" : 'NULL';
+
+ my $query = qq|DELETE FROM status
+ WHERE formname = '$self->{formname}'
+ AND trans_id = $self->{id}|;
+
+ $dbh->do($query) || $self->dberror($query);
+
+ my $printed = ($self->{printed} =~ /$self->{formname}/) ? "1" : "0";
+ my $emailed = ($self->{emailed} =~ /$self->{formname}/) ? "1" : "0";
+
+ $query = qq|INSERT INTO status (trans_id, printed, emailed,
+ spoolfile, formname)
+ VALUES ($self->{id}, '$printed',
+ '$emailed', $spoolfile,
+ '$self->{formname}')|;
+
+ $dbh->do($query) || $self->dberror($query);
+ $dbh->commit;
+ $dbh->disconnect;
+}
+
+
+sub save_status {
+
+ my ($self, $dbh) = @_;
+
+ my $formnames = $self->{printed};
+ my $emailforms = $self->{emailed};
+
+ my $query = qq|DELETE FROM status
+ WHERE trans_id = $self->{id}|;
+
+ $dbh->do($query) || $self->dberror($query);
+
+ my %queued;
+ my $formname;
+
+ if ($self->{queued}) {
+
+ %queued = split / +/, $self->{queued};
+
+ foreach $formname (keys %queued) {
+
+ $printed = ($self->{printed} =~ /$formname/) ? "1" : "0";
+ $emailed = ($self->{emailed} =~ /$formname/) ? "1" : "0";
+
+ if ($queued{$formname}) {
+ $query = qq|INSERT INTO status (trans_id, printed, emailed,
+ spoolfile, formname)
+ VALUES ($self->{id}, '$printed', '$emailed',
+ '$queued{$formname}', '$formname')|;
+
+ $dbh->do($query) || $self->dberror($query);
+ }
+
+ $formnames =~ s/$formname//;
+ $emailforms =~ s/$formname//;
+
+ }
+ }
+
+ # save printed, emailed info
+ $formnames =~ s/^ +//g;
+ $emailforms =~ s/^ +//g;
+
+ my %status = ();
+ for (split / +/, $formnames) { $status{$_}{printed} = 1 }
+ for (split / +/, $emailforms) { $status{$_}{emailed} = 1 }
+
+ foreach my $formname (keys %status) {
+ $printed = ($formnames =~ /$self->{formname}/) ? "1" : "0";
+ $emailed = ($emailforms =~ /$self->{formname}/) ? "1" : "0";
+
+ $query = qq|INSERT INTO status (trans_id, printed, emailed, formname)
+ VALUES ($self->{id}, '$printed', '$emailed', '$formname')|;
+
+ $dbh->do($query) || $self->dberror($query);
+ }
+}
+
+
+sub get_recurring {
+
+ my ($self, $dbh) = @_;
+
+ my $query = qq/SELECT s.*, se.formname || ':' || se.format AS emaila,
+ se.message,
+ sp.formname || ':' || sp.format || ':' || sp.printer AS printa
+ FROM recurring s
+ LEFT JOIN recurringemail se ON (s.id = se.id)
+ LEFT JOIN recurringprint sp ON (s.id = sp.id)
+ WHERE s.id = $self->{id}/;
+
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ for (qw(email print)) { $self->{"recurring$_"} = "" }
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+ for (keys %$ref) { $self->{"recurring$_"} = $ref->{$_} }
+ $self->{recurringemail} .= "$ref->{emaila}:";
+ $self->{recurringprint} .= "$ref->{printa}:";
+ for (qw(emaila printa)) { delete $self->{"recurring$_"} }
+ }
+
+ $sth->finish;
+ chop $self->{recurringemail};
+ chop $self->{recurringprint};
+
+ if ($self->{recurringstartdate}) {
+ $self->{recurringreference} = $self->escape($self->{recurringreference},1);
+ $self->{recurringmessage} = $self->escape($self->{recurringmessage},1);
+ for (qw(reference startdate repeat unit howmany
+ payment print email message)) {
+
+ $self->{recurring} .= qq|$self->{"recurring$_"},|
+ }
+
+ chop $self->{recurring};
+ }
+}
+
+
+sub save_recurring {
+
+ my ($self, $dbh, $myconfig) = @_;
+
+ my $disconnect = 0;
+
+ if (! $dbh) {
+ $dbh = $self->dbconnect_noauto($myconfig);
+ $disconnect = 1;
+ }
+
+ my $query;
+
+ $query = qq|DELETE FROM recurring
+ WHERE id = $self->{id}|;
+
+ $dbh->do($query) || $self->dberror($query);
+
+ $query = qq|DELETE FROM recurringemail
+ WHERE id = $self->{id}|;
+
+ $dbh->do($query) || $self->dberror($query);
+
+ $query = qq|DELETE FROM recurringprint
+ WHERE id = $self->{id}|;
+
+ $dbh->do($query) || $self->dberror($query);
+
+ if ($self->{recurring}) {
+
+ my %s = ();
+ ($s{reference}, $s{startdate}, $s{repeat}, $s{unit}, $s{howmany},
+ $s{payment}, $s{print}, $s{email}, $s{message}) = split /,/, $self->{recurring};
+
+ for (qw(reference message)) { $s{$_} = $self->unescape($s{$_}) }
+ for (qw(repeat howmany payment)) { $s{$_} *= 1 }
+
+ # calculate enddate
+ my $advance = $s{repeat} * ($s{howmany} - 1);
+ my %interval = ( 'Pg' => "(date '$s{startdate}' + interval '$advance $s{unit}')",
+ 'DB2' => qq|(date ('$s{startdate}') + "$advance $s{unit}")|, );
+
+ $interval{Oracle} = $interval{PgPP} = $interval{Pg};
+
+ $query = qq|SELECT $interval{$myconfig->{dbdriver}}
+ FROM defaults|;
+
+ my ($enddate) = $dbh->selectrow_array($query);
+
+ # calculate nextdate
+ $query = qq|SELECT current_date - date '$s{startdate}' AS a,
+ date '$enddate' - current_date AS b
+ FROM defaults|;
+
+ my ($a, $b) = $dbh->selectrow_array($query);
+
+ if ($a + $b) {
+ $advance = int(($a / ($a + $b)) * ($s{howmany} - 1) + 1) * $s{repeat};
+ } else {
+ $advance = 0;
+ }
+
+ my $nextdate = $enddate;
+ if ($advance > 0) {
+ if ($advance < ($s{repeat} * $s{howmany})) {
+ %interval = ( 'Pg' => "(date '$s{startdate}' + interval '$advance $s{unit}')",
+ 'DB2' => qq|(date ('$s{startdate}') + "$advance $s{unit}")|,);
+
+ $interval{Oracle} = $interval{PgPP} = $interval{Pg};
+
+ $query = qq|SELECT $interval{$myconfig->{dbdriver}}
+ FROM defaults|;
+
+ ($nextdate) = $dbh->selectrow_array($query);
+ }
+
+ } else {
+ $nextdate = $s{startdate};
+ }
+
+ if ($self->{recurringnextdate}) {
+
+ $nextdate = $self->{recurringnextdate};
+
+ $query = qq|SELECT '$enddate' - date '$nextdate'
+ FROM defaults|;
+
+ if ($dbh->selectrow_array($query) < 0) {
+ undef $nextdate;
+ }
+ }
+
+ $self->{recurringpayment} *= 1;
+
+ $query = qq|INSERT INTO recurring (id, reference, startdate, enddate,
+ nextdate, repeat, unit, howmany, payment)
+ VALUES ($self->{id}, |.$dbh->quote($s{reference}).qq|,
+ '$s{startdate}', '$enddate', |.
+ $self->dbquote($nextdate, SQL_DATE).
+ qq|, $s{repeat}, '$s{unit}', $s{howmany}, '$s{payment}')|;
+
+ $dbh->do($query) || $self->dberror($query);
+
+ my @p;
+ my $p;
+ my $i;
+ my $sth;
+
+ if ($s{email}) {
+ # formname:format
+ @p = split /:/, $s{email};
+
+ $query = qq|INSERT INTO recurringemail (id, formname, format, message)
+ VALUES ($self->{id}, ?, ?, ?)|;
+
+ $sth = $dbh->prepare($query) || $self->dberror($query);
+
+ for ($i = 0; $i <= $#p; $i += 2) {
+ $sth->execute($p[$i], $p[$i+1], $s{message});
+ }
+
+ $sth->finish;
+ }
+
+ if ($s{print}) {
+ # formname:format:printer
+ @p = split /:/, $s{print};
+
+ $query = qq|INSERT INTO recurringprint (id, formname, format, printer)
+ VALUES ($self->{id}, ?, ?, ?)|;
+
+ $sth = $dbh->prepare($query) || $self->dberror($query);
+
+ for ($i = 0; $i <= $#p; $i += 3) {
+ $p = ($p[$i+2]) ? $p[$i+2] : "";
+ $sth->execute($p[$i], $p[$i+1], $p);
+ }
+
+ $sth->finish;
+ }
+ }
+
+ if ($disconnect) {
+ $dbh->commit;
+ $dbh->disconnect;
+ }
+}
+
+
+sub save_intnotes {
+
+ my ($self, $myconfig, $vc) = @_;
+
+ # no id return
+ return unless $self->{id};
+
+ my $dbh = $self->dbconnect($myconfig);
+
+ my $query = qq|UPDATE $vc
+ SET intnotes = |.$dbh->quote($self->{intnotes}).qq|
+ WHERE id = $self->{id}|;
+
+ $dbh->do($query) || $self->dberror($query);
+ $dbh->disconnect;
+}
+
+
+sub update_defaults {
+
+ my ($self, $myconfig, $fld, $dbh) = @_;
+
+ my $closedb;
+
+ if (! $dbh) {
+ $dbh = $self->dbconnect_noauto($myconfig);
+ $closedb = 1;
+ }
+
+ my $query = qq|SELECT $fld FROM defaults FOR UPDATE|;
+ ($_) = $dbh->selectrow_array($query);
+
+ $_ = "0" unless $_;
+
+ # check for and replace
+ # <%DATE%>, <%YYMMDD%>, <%YEAR%>, <%MONTH%>, <%DAY%> or variations of
+ # <%NAME 1 1 3%>, <%BUSINESS%>, <%BUSINESS 10%>, <%CURR...%>
+ # <%DESCRIPTION 1 1 3%>, <%ITEM 1 1 3%>, <%PARTSGROUP 1 1 3%> only for parts
+ # <%PHONE%> for customer and vendors
+
+ my $num = $_;
+ $num =~ s/.*?<%.*?%>//g;
+ ($num) = $num =~ /(\d+)/;
+
+ if (defined $num) {
+ my $incnum;
+ # if we have leading zeros check how long it is
+
+ if ($num =~ /^0/) {
+ my $l = length $num;
+ $incnum = $num + 1;
+ $l -= length $incnum;
+
+ # pad it out with zeros
+ my $padzero = "0" x $l;
+ $incnum = ("0" x $l) . $incnum;
+ } else {
+ $incnum = $num + 1;
+ }
+
+ s/$num/$incnum/;
+ }
+
+ my $dbvar = $_;
+ my $var = $_;
+ my $str;
+ my $param;
+
+ if (/<%/) {
+
+ while (/<%/) {
+
+ s/<%.*?%>//;
+ last unless $&;
+ $param = $&;
+ $str = "";
+
+ if ($param =~ /<%date%>/i) {
+ $str = ($self->split_date($myconfig->{dateformat}, $self->{transdate}))[0];
+ $var =~ s/$param/$str/;
+ }
+
+ if ($param =~ /<%(name|business|description|item|partsgroup|phone|custom)/i) {
+
+ my $fld = lc $&;
+ $fld =~ s/<%//;
+
+ if ($fld =~ /name/) {
+ if ($self->{type}) {
+ $fld = $self->{vc};
+ }
+ }
+
+ my $p = $param;
+ $p =~ s/(<|>|%)//g;
+ my @p = split / /, $p;
+ my @n = split / /, uc $self->{$fld};
+
+ if ($#p > 0) {
+
+ for (my $i = 1; $i <= $#p; $i++) {
+ $str .= substr($n[$i-1], 0, $p[$i]);
+ }
+
+ } else {
+ ($str) = split /--/, $self->{$fld};
+ }
+
+ $var =~ s/$param/$str/;
+ $var =~ s/\W//g if $fld eq 'phone';
+ }
+
+ if ($param =~ /<%(yy|mm|dd)/i) {
+
+ my $p = $param;
+ $p =~ s/(<|>|%)//g;
+ my $spc = $p;
+ $spc =~ s/\w//g;
+ $spc = substr($spc, 0, 1);
+ my %d = ( yy => 1, mm => 2, dd => 3 );
+ my @p = ();
+
+ my @a = $self->split_date($myconfig->{dateformat}, $self->{transdate});
+ for (sort keys %d) { push @p, $a[$d{$_}] if ($p =~ /$_/) }
+ $str = join $spc, @p;
+ $var =~ s/$param/$str/;
+ }
+
+ if ($param =~ /<%curr/i) {
+ $var =~ s/$param/$self->{currency}/;
+ }
+ }
+ }
+
+ $query = qq|UPDATE defaults
+ SET $fld = '$dbvar'|;
+
+ $dbh->do($query) || $form->dberror($query);
+
+ if ($closedb) {
+ $dbh->commit;
+ $dbh->disconnect;
+ }
+
+ $var;
+}
+
+
+sub split_date {
+
+ my ($self, $dateformat, $date) = @_;
+
+ my @d = localtime;
+ my $mm;
+ my $dd;
+ my $yy;
+ my $rv;
+
+ if (! $date) {
+ $dd = $d[3];
+ $mm = ++$d[4];
+ $yy = substr($d[5],-2);
+ $mm = substr("0$mm", -2);
+ $dd = substr("0$dd", -2);
+ }
+
+ if ($dateformat =~ /^yy/) {
+
+ if ($date) {
+
+ if ($date =~ /\D/) {
+ ($yy, $mm, $dd) = split /\D/, $date;
+ $mm *= 1;
+ $dd *= 1;
+ $mm = substr("0$mm", -2);
+ $dd = substr("0$dd", -2);
+ $yy = substr($yy, -2);
+ $rv = "$yy$mm$dd";
+ } else {
+ $rv = $date;
+ }
+ } else {
+ $rv = "$yy$mm$dd";
+ }
+ }
+
+ if ($dateformat =~ /^mm/) {
+
+ if ($date) {
+
+ if ($date =~ /\D/) {
+ ($mm, $dd, $yy) = split /\D/, $date;
+ $mm *= 1;
+ $dd *= 1;
+ $mm = substr("0$mm", -2);
+ $dd = substr("0$dd", -2);
+ $yy = substr($yy, -2);
+ $rv = "$mm$dd$yy";
+ } else {
+ $rv = $date;
+ }
+ } else {
+ $rv = "$mm$dd$yy";
+ }
+ }
+
+ if ($dateformat =~ /^dd/) {
+
+ if ($date) {
+
+ if ($date =~ /\D/) {
+ ($dd, $mm, $yy) = split /\D/, $date;
+ $mm *= 1;
+ $dd *= 1;
+ $mm = substr("0$mm", -2);
+ $dd = substr("0$dd", -2);
+ $yy = substr($yy, -2);
+ $rv = "$dd$mm$yy";
+ } else {
+ $rv = $date;
+ }
+ } else {
+ $rv = "$dd$mm$yy";
+ }
+ }
+
+ ($rv, $yy, $mm, $dd);
+}
+
+
+sub from_to {
+
+ my ($self, $yy, $mm, $interval) = @_;
+
+ use Time::Local;
+
+ my @t;
+ my $dd = 1;
+ my $fromdate = "$yy${mm}01";
+ my $bd = 1;
+
+ if (defined $interval) {
+
+ if ($interval == 12) {
+ $yy++;
+ } else {
+
+ if (($mm += $interval) > 12) {
+ $mm -= 12;
+ $yy++;
+ }
+
+ if ($interval == 0) {
+ @t = localtime(time);
+ $dd = $t[3];
+ $mm = $t[4] + 1;
+ $yy = $t[5] + 1900;
+ $bd = 0;
+ }
+ }
+
+ } else {
+
+ if (++$mm > 12) {
+ $mm -= 12;
+ $yy++;
+ }
+ }
+
+ $mm--;
+ @t = localtime(timelocal(0,0,0,$dd,$mm,$yy) - $bd);
+
+ $t[4]++;
+ $t[4] = substr("0$t[4]",-2);
+ $t[3] = substr("0$t[3]",-2);
+ $t[5] += 1900;
+
+ ($fromdate, "$t[5]$t[4]$t[3]");
+}
+
+
+sub audittrail {
+
+ my ($self, $dbh, $myconfig, $audittrail) = @_;
+
+ # table, $reference, $formname, $action, $id, $transdate) = @_;
+
+ my $query;
+ my $rv;
+ my $disconnect;
+
+ if (! $dbh) {
+ $dbh = $self->dbconnect($myconfig);
+ $disconnect = 1;
+ }
+
+ # if we have an id add audittrail, otherwise get a new timestamp
+
+ if ($audittrail->{id}) {
+
+ $query = qq|SELECT audittrail FROM defaults|;
+
+ if ($dbh->selectrow_array($query)) {
+
+ my ($null, $employee_id) = $self->get_employee($dbh);
+
+ if ($self->{audittrail} && !$myconfig) {
+
+ chop $self->{audittrail};
+
+ my @a = split /\|/, $self->{audittrail};
+ my %newtrail = ();
+ my $key;
+ my $i;
+ my @flds = qw(tablename reference formname action transdate);
+
+ # put into hash and remove dups
+ while (@a) {
+ $key = "$a[2]$a[3]";
+ $i = 0;
+ $newtrail{$key} = { map { $_ => $a[$i++] } @flds };
+ splice @a, 0, 5;
+ }
+
+ $query = qq|INSERT INTO audittrail (trans_id, tablename, reference,
+ formname, action, employee_id, transdate)
+ VALUES ($audittrail->{id}, ?, ?, ?, ?, $employee_id, ?)|;
+
+ my $sth = $dbh->prepare($query) || $self->dberror($query);
+
+ foreach $key (sort { $newtrail{$a}{transdate} cmp $newtrail{$b}{transdate} } keys %newtrail) {
+
+ $i = 1;
+ for (@flds) { $sth->bind_param($i++, $newtrail{$key}{$_}) }
+
+ $sth->execute || $self->dberror;
+ $sth->finish;
+ }
+ }
+
+ if ($audittrail->{transdate}) {
+
+ $query = qq|INSERT INTO audittrail (trans_id, tablename, reference,
+ formname, action, employee_id, transdate)
+ VALUES ($audittrail->{id}, '$audittrail->{tablename}', |
+ .$dbh->quote($audittrail->{reference}).qq|',
+ '$audittrail->{formname}', '$audittrail->{action}',
+ $employee_id, '$audittrail->{transdate}')|;
+
+ } else {
+ $query = qq|INSERT INTO audittrail (trans_id, tablename, reference,
+ formname, action, employee_id)
+ VALUES ($audittrail->{id},
+ '$audittrail->{tablename}', |
+ .$dbh->quote($audittrail->{reference}).qq|,
+ '$audittrail->{formname}', '$audittrail->{action}',
+ $employee_id)|;
+ }
+
+ $dbh->do($query);
+ }
+
+ } else {
+
+ $query = qq|SELECT current_timestamp FROM defaults|;
+ my ($timestamp) = $dbh->selectrow_array($query);
+
+ $rv = "$audittrail->{tablename}|$audittrail->{reference}|$audittrail->{formname}|$audittrail->{action}|$timestamp|";
+ }
+
+ $dbh->disconnect if $disconnect;
+ $rv;
+}
+
+package Locale;
+
+sub new {
+ my ($type, $country, $NLS_file) = @_;
+ my $self = {};
+
+ %self = ();
+
+ if ($country && -d "locale/$country") {
+ $self->{countrycode} = $country;
+ eval { require "locale/$country/$NLS_file"; };
+ }
+
+ $self->{NLS_file} = $NLS_file;
+ $self->{charset} = $self{charset};
+
+ push @{ $self->{LONG_MONTH} }, ("January", "February", "March", "April", "May ", "June", "July", "August", "September", "October", "November", "December");
+ push @{ $self->{SHORT_MONTH} }, (qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec));
+
+ bless $self, $type;
+}
+
+
+sub text {
+ my ($self, $text) = @_;
+ return (exists $self{texts}{$text}) ? $self{texts}{$text} : $text;
+}
+
+
+sub findsub {
+
+ my ($self, $text) = @_;
+
+ if (exists $self{subs}{$text}) {
+ $text = $self{subs}{$text};
+ } else {
+ if ($self->{countrycode} && $self->{NLS_file}) {
+ Form->error("$text not defined in locale/$self->{countrycode}/$self->{NLS_file}");
+ }
+ }
+
+ $text;
+}
+
+
+sub date {
+
+ my ($self, $myconfig, $date, $longformat) = @_;
+
+ my $longdate = "";
+ my $longmonth = ($longformat) ? 'LONG_MONTH' : 'SHORT_MONTH';
+
+
+ if ($date) {
+
+ # get separator
+ $spc = $myconfig->{dateformat};
+ $spc =~ s/\w//g;
+ $spc = substr($spc, 0, 1);
+
+ if ($date =~ /\D/) {
+
+ if ($myconfig->{dateformat} =~ /^yy/) {
+ ($yy, $mm, $dd) = split /\D/, $date;
+ }
+
+ if ($myconfig->{dateformat} =~ /^mm/) {
+ ($mm, $dd, $yy) = split /\D/, $date;
+ }
+
+ if ($myconfig->{dateformat} =~ /^dd/) {
+ ($dd, $mm, $yy) = split /\D/, $date;
+ }
+
+ } else {
+
+ $date = substr($date, 2);
+ ($yy, $mm, $dd) = ($date =~ /(..)(..)(..)/);
+ }
+
+ $dd *= 1;
+ $mm--;
+ $yy += 2000 if length $yy == 2;
+
+ if ($myconfig->{dateformat} =~ /^dd/) {
+
+ $mm++;
+ $dd = substr("0$dd", -2);
+ $mm = substr("0$mm", -2);
+ $longdate = "$dd$spc$mm$spc$yy";
+
+ if (defined $longformat) {
+ $longdate = "$dd";
+ $longdate .= ($spc eq '.') ? ". " : " ";
+ $longdate .= &text($self, $self->{$longmonth}[--$mm])." $yy";
+ }
+
+ } elsif ($myconfig->{dateformat} =~ /^yy/) {
+
+ $mm++;
+ $dd = substr("0$dd", -2);
+ $mm = substr("0$mm", -2);
+ $longdate = "$yy$spc$mm$spc$dd";
+
+ if (defined $longformat) {
+ $longdate = &text($self, $self->{$longmonth}[--$mm])." $dd $yy";
+ }
+
+ } else {
+
+ $mm++;
+ $dd = substr("0$dd", -2);
+ $mm = substr("0$mm", -2);
+ $longdate = "$mm$spc$dd$spc$yy";
+
+ if (defined $longformat) {
+ $longdate = &text($self, $self->{$longmonth}[--$mm])." $dd $yy";
+ }
+ }
+ }
+
+ $longdate;
+}
+
+1;
diff --git a/LedgerSMB/GL.pm b/LedgerSMB/GL.pm
new file mode 100755
index 00000000..7c1d4fdd
--- /dev/null
+++ b/LedgerSMB/GL.pm
@@ -0,0 +1,526 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has undergone whitespace cleanup.
+#
+#======================================================================
+#
+# General ledger backend code
+#
+#======================================================================
+
+package GL;
+
+
+sub delete_transaction {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ my %audittrail = ( tablename => 'gl',
+ reference => $form->{reference},
+ formname => 'transaction',
+ action => 'deleted',
+ id => $form->{id} );
+
+ $form->audittrail($dbh, "", \%audittrail);
+
+ my $query = qq|DELETE FROM gl WHERE id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|DELETE FROM acc_trans WHERE trans_id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ # commit and redirect
+ my $rc = $dbh->commit;
+ $dbh->disconnect;
+
+ $rc;
+}
+
+
+sub post_transaction {
+
+ my ($self, $myconfig, $form) = @_;
+
+ my $null;
+ my $project_id;
+ my $department_id;
+ my $i;
+
+ # connect to database, turn off AutoCommit
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ my $query;
+ my $sth;
+
+ if ($form->{id}) {
+
+ $query = qq|SELECT id FROM gl WHERE id = $form->{id}|;
+ ($form->{id}) = $dbh->selectrow_array($query);
+
+ if ($form->{id}) {
+ # delete individual transactions
+ $query = qq|DELETE FROM acc_trans
+ WHERE trans_id = $form->{id}|;
+
+ $dbh->do($query) || $form->dberror($query);
+ }
+ }
+
+ if (! $form->{id}) {
+
+ my $uid = localtime;
+ $uid .= "$$";
+
+ $query = qq|INSERT INTO gl (reference, employee_id)
+ VALUES ('$uid', (SELECT id FROM employee
+ WHERE login = '$form->{login}'))|;
+
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|SELECT id
+ FROM gl
+ WHERE reference = '$uid'|;
+
+ ($form->{id}) = $dbh->selectrow_array($query);
+ }
+
+ ($null, $department_id) = split /--/, $form->{department};
+ $department_id *= 1;
+
+ $form->{reference} = $form->update_defaults($myconfig, 'glnumber', $dbh) unless $form->{reference};
+ $form->{reference} ||= $form->{id};
+
+ $query = qq|UPDATE gl
+ SET reference = |.$dbh->quote($form->{reference}).qq|,
+ description = |.$dbh->quote($form->{description}).qq|,
+ notes = |.$dbh->quote($form->{notes}).qq|,
+ transdate = '$form->{transdate}',
+ department_id = $department_id
+ WHERE id = $form->{id}|;
+
+ $dbh->do($query) || $form->dberror($query);
+
+ my $amount = 0;
+ my $posted = 0;
+ my $debit;
+ my $credit;
+
+ # insert acc_trans transactions
+ for $i (1 .. $form->{rowcount}) {
+
+ $debit = $form->parse_amount($myconfig, $form->{"debit_$i"});
+ $credit = $form->parse_amount($myconfig, $form->{"credit_$i"});
+
+ # extract accno
+ ($accno) = split(/--/, $form->{"accno_$i"});
+
+ if ($credit) {
+ $amount = $credit;
+ $posted = 0;
+ }
+
+ if ($debit) {
+ $amount = $debit * -1;
+ $posted = 0;
+ }
+
+ # add the record
+ if (! $posted) {
+
+ ($null, $project_id) = split /--/, $form->{"projectnumber_$i"};
+ $project_id ||= 'NULL';
+
+ for (qw(fx_transaction cleared)) { $form->{"${_}_$i"} *= 1 }
+
+
+ $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount,
+ transdate, source, project_id,
+ fx_transaction, memo, cleared)
+ VALUES ($form->{id}, (SELECT id
+ FROM chart
+ WHERE accno = '$accno'),
+ $amount, '$form->{transdate}', |.
+ $dbh->quote($form->{"source_$i"}) .qq|,
+ $project_id, '$form->{"fx_transaction_$i"}', |.
+ $dbh->quote($form->{"memo_$i"}).qq|,
+ '$form->{"cleared_$i"}')|;
+
+ $dbh->do($query) || $form->dberror($query);
+
+ $posted = 1;
+ }
+ }
+
+ my %audittrail = ( tablename => 'gl',
+ reference => $form->{reference},
+ formname => 'transaction',
+ action => 'posted',
+ id => $form->{id} );
+
+ $form->audittrail($dbh, "", \%audittrail);
+
+ $form->save_recurring($dbh, $myconfig);
+
+ # commit and redirect
+ my $rc = $dbh->commit;
+ $dbh->disconnect;
+
+ $rc;
+}
+
+
+
+sub all_transactions {
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+ my $query;
+ my $sth;
+ my $var;
+ my $null;
+
+ my ($glwhere, $arwhere, $apwhere) = ("1 = 1", "1 = 1", "1 = 1");
+
+ if ($form->{reference} ne "") {
+ $var = $form->like(lc $form->{reference});
+ $glwhere .= " AND lower(g.reference) LIKE '$var'";
+ $arwhere .= " AND lower(a.invnumber) LIKE '$var'";
+ $apwhere .= " AND lower(a.invnumber) LIKE '$var'";
+ }
+
+ if ($form->{department} ne "") {
+ ($null, $var) = split /--/, $form->{department};
+ $glwhere .= " AND g.department_id = $var";
+ $arwhere .= " AND a.department_id = $var";
+ $apwhere .= " AND a.department_id = $var";
+ }
+
+ if ($form->{source} ne "") {
+ $var = $form->like(lc $form->{source});
+ $glwhere .= " AND lower(ac.source) LIKE '$var'";
+ $arwhere .= " AND lower(ac.source) LIKE '$var'";
+ $apwhere .= " AND lower(ac.source) LIKE '$var'";
+ }
+
+ if ($form->{memo} ne "") {
+ $var = $form->like(lc $form->{memo});
+ $glwhere .= " AND lower(ac.memo) LIKE '$var'";
+ $arwhere .= " AND lower(ac.memo) LIKE '$var'";
+ $apwhere .= " AND lower(ac.memo) LIKE '$var'";
+ }
+
+ ($form->{datefrom}, $form->{dateto}) = $form->from_to($form->{year}, $form->{month}, $form->{interval}) if $form->{year} && $form->{month};
+
+ if ($form->{datefrom}) {
+ $glwhere .= " AND ac.transdate >= '$form->{datefrom}'";
+ $arwhere .= " AND ac.transdate >= '$form->{datefrom}'";
+ $apwhere .= " AND ac.transdate >= '$form->{datefrom}'";
+ }
+
+ if ($form->{dateto}) {
+ $glwhere .= " AND ac.transdate <= '$form->{dateto}'";
+ $arwhere .= " AND ac.transdate <= '$form->{dateto}'";
+ $apwhere .= " AND ac.transdate <= '$form->{dateto}'";
+ }
+
+ if ($form->{amountfrom}) {
+ $glwhere .= " AND abs(ac.amount) >= $form->{amountfrom}";
+ $arwhere .= " AND abs(ac.amount) >= $form->{amountfrom}";
+ $apwhere .= " AND abs(ac.amount) >= $form->{amountfrom}";
+ }
+
+ if ($form->{amountto}) {
+ $glwhere .= " AND abs(ac.amount) <= $form->{amountto}";
+ $arwhere .= " AND abs(ac.amount) <= $form->{amountto}";
+ $apwhere .= " AND abs(ac.amount) <= $form->{amountto}";
+ }
+
+ if ($form->{description}) {
+
+ $var = $form->like(lc $form->{description});
+ $glwhere .= " AND lower(g.description) LIKE '$var'";
+ $arwhere .= " AND (lower(ct.name) LIKE '$var'
+ OR lower(ac.memo) LIKE '$var'
+ OR a.id IN (SELECT DISTINCT trans_id
+ FROM invoice
+ WHERE lower(description) LIKE '$var'))";
+
+ $apwhere .= " AND (lower(ct.name) LIKE '$var'
+ OR lower(ac.memo) LIKE '$var'
+ OR a.id IN (SELECT DISTINCT trans_id
+ FROM invoice
+ WHERE lower(description) LIKE '$var'))";
+ }
+
+ if ($form->{notes}) {
+ $var = $form->like(lc $form->{notes});
+ $glwhere .= " AND lower(g.notes) LIKE '$var'";
+ $arwhere .= " AND lower(a.notes) LIKE '$var'";
+ $apwhere .= " AND lower(a.notes) LIKE '$var'";
+ }
+
+ if ($form->{accno}) {
+ $glwhere .= " AND c.accno = '$form->{accno}'";
+ $arwhere .= " AND c.accno = '$form->{accno}'";
+ $apwhere .= " AND c.accno = '$form->{accno}'";
+ }
+
+ if ($form->{gifi_accno}) {
+ $glwhere .= " AND c.gifi_accno = '$form->{gifi_accno}'";
+ $arwhere .= " AND c.gifi_accno = '$form->{gifi_accno}'";
+ $apwhere .= " AND c.gifi_accno = '$form->{gifi_accno}'";
+ }
+
+ if ($form->{category} ne 'X') {
+ $glwhere .= " AND c.category = '$form->{category}'";
+ $arwhere .= " AND c.category = '$form->{category}'";
+ $apwhere .= " AND c.category = '$form->{category}'";
+ }
+
+ if ($form->{accno}) {
+
+ # get category for account
+ $query = qq|SELECT category, link, contra, description
+ FROM chart
+ WHERE accno = '$form->{accno}'|;
+
+ ($form->{category}, $form->{link}, $form->{contra},
+ $form->{account_description}) = $dbh->selectrow_array($query);
+
+ if ($form->{datefrom}) {
+
+ $query = qq|SELECT SUM(ac.amount)
+ FROM acc_trans ac
+ JOIN chart c ON (ac.chart_id = c.id)
+ WHERE c.accno = '$form->{accno}'
+ AND ac.transdate < date '$form->{datefrom}' |;
+
+ ($form->{balance}) = $dbh->selectrow_array($query);
+ }
+ }
+
+ if ($form->{gifi_accno}) {
+
+ # get category for account
+ $query = qq|SELECT c.category, c.link, c.contra, g.description
+ FROM chart c
+ LEFT JOIN gifi g ON (g.accno = c.gifi_accno)
+ WHERE c.gifi_accno = '$form->{gifi_accno}'|;
+
+ ($form->{category}, $form->{link}, $form->{contra},
+ $form->{gifi_account_description}) = $dbh->selectrow_array($query);
+
+ if ($form->{datefrom}) {
+
+ $query = qq|SELECT SUM(ac.amount)
+ FROM acc_trans ac
+ JOIN chart c ON (ac.chart_id = c.id)
+ WHERE c.gifi_accno = '$form->{gifi_accno}'
+ AND ac.transdate < date '$form->{datefrom}' |;
+
+ ($form->{balance}) = $dbh->selectrow_array($query);
+ }
+ }
+
+ my $false = ($myconfig->{dbdriver} =~ /Pg/) ? FALSE : q|'0'|;
+
+ my %ordinal = ( id => 1,
+ reference => 4,
+ description => 5,
+ transdate => 6,
+ source => 7,
+ accno => 9,
+ department => 15,
+ memo => 16 );
+
+ my @a = (id, transdate, reference, source, description, accno);
+ my $sortorder = $form->sort_order(\@a, \%ordinal);
+
+ my $query = qq|SELECT g.id, 'gl' AS type, $false AS invoice, g.reference,
+ g.description, ac.transdate, ac.source,
+ ac.amount, c.accno, c.gifi_accno, g.notes, c.link,
+ '' AS till, ac.cleared, d.description AS department,
+ ac.memo
+ FROM gl AS g
+ JOIN acc_trans ac ON (g.id = ac.trans_id)
+ JOIN chart c ON (ac.chart_id = c.id)
+ LEFT JOIN department d ON (d.id = g.department_id)
+ WHERE $glwhere
+
+ UNION ALL
+
+ SELECT a.id, 'ar' AS type, a.invoice, a.invnumber,
+ ct.name, ac.transdate, ac.source,
+ ac.amount, c.accno, c.gifi_accno, a.notes, c.link,
+ a.till, ac.cleared, d.description AS department,
+ ac.memo
+ FROM ar a
+ JOIN acc_trans ac ON (a.id = ac.trans_id)
+ JOIN chart c ON (ac.chart_id = c.id)
+ JOIN customer ct ON (a.customer_id = ct.id)
+ LEFT JOIN department d ON (d.id = a.department_id)
+ WHERE $arwhere
+
+ UNION ALL
+
+ SELECT a.id, 'ap' AS type, a.invoice, a.invnumber,
+ ct.name, ac.transdate, ac.source,
+ ac.amount, c.accno, c.gifi_accno, a.notes, c.link,
+ a.till, ac.cleared, d.description AS department,
+ ac.memo
+ FROM ap a
+ JOIN acc_trans ac ON (a.id = ac.trans_id)
+ JOIN chart c ON (ac.chart_id = c.id)
+ JOIN vendor ct ON (a.vendor_id = ct.id)
+ LEFT JOIN department d ON (d.id = a.department_id)
+ WHERE $apwhere
+ ORDER BY $sortorder|;
+
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+
+ # gl
+ if ($ref->{type} eq "gl") {
+ $ref->{module} = "gl";
+ }
+
+ # ap
+ if ($ref->{type} eq "ap") {
+
+ if ($ref->{invoice}) {
+ $ref->{module} = "ir";
+ } else {
+ $ref->{module} = "ap";
+ }
+ }
+
+ # ar
+ if ($ref->{type} eq "ar") {
+
+ if ($ref->{invoice}) {
+ $ref->{module} = ($ref->{till}) ? "ps" : "is";
+ } else {
+ $ref->{module} = "ar";
+ }
+ }
+
+ if ($ref->{amount} < 0) {
+ $ref->{debit} = $ref->{amount} * -1;
+ $ref->{credit} = 0;
+ } else {
+ $ref->{credit} = $ref->{amount};
+ $ref->{debit} = 0;
+ }
+
+ push @{ $form->{GL} }, $ref;
+ }
+
+ $sth->finish;
+ $dbh->disconnect;
+}
+
+
+sub transaction {
+
+ my ($self, $myconfig, $form) = @_;
+
+ my ($query, $sth, $ref);
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ if ($form->{id}) {
+
+ $query = "SELECT closedto, revtrans
+ FROM defaults";
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ ($form->{closedto}, $form->{revtrans}) = $sth->fetchrow_array;
+ $sth->finish;
+
+ $query = qq|SELECT g.*, d.description AS department
+ FROM gl g
+ LEFT JOIN department d ON (d.id = g.department_id)
+ WHERE g.id = $form->{id}|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ $ref = $sth->fetchrow_hashref(NAME_lc);
+ for (keys %$ref) { $form->{$_} = $ref->{$_} }
+ $sth->finish;
+
+ # retrieve individual rows
+ $query = qq|SELECT ac.*, c.accno, c.description, p.projectnumber
+ FROM acc_trans ac
+ JOIN chart c ON (ac.chart_id = c.id)
+ LEFT JOIN project p ON (p.id = ac.project_id)
+ WHERE ac.trans_id = $form->{id}
+ ORDER BY accno|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+
+ if ($ref->{fx_transaction}) {
+ $form->{transfer} = 1;
+ }
+ push @{ $form->{GL} }, $ref;
+ }
+
+ # get recurring transaction
+ $form->get_recurring($dbh);
+
+ } else {
+ $query = "SELECT current_date AS transdate, closedto, revtrans
+ FROM defaults";
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ ($form->{transdate}, $form->{closedto}, $form->{revtrans}) = $sth->fetchrow_array;
+ }
+
+ $sth->finish;
+
+ # get chart of accounts
+ $query = qq|SELECT accno,description
+ FROM chart
+ WHERE charttype = 'A'
+ ORDER BY accno|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{all_accno} }, $ref;
+ }
+
+ $sth->finish;
+
+ # get departments
+ $form->all_departments($myconfig, $dbh);
+
+ # get projects
+ $form->all_projects($myconfig, $dbh, $form->{transdate});
+
+ $dbh->disconnect;
+
+}
+
+1;
diff --git a/LedgerSMB/HR.pm b/LedgerSMB/HR.pm
new file mode 100755
index 00000000..5ff8c253
--- /dev/null
+++ b/LedgerSMB/HR.pm
@@ -0,0 +1,555 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has NOT undergone whitespace cleanup.
+#
+#======================================================================
+#
+# backend code for human resources and payroll
+#
+#======================================================================
+
+package HR;
+
+
+sub get_employee {
+ my ($self, $myconfig, $form) = @_;
+
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $query;
+ my $sth;
+ my $ref;
+ my $notid = "";
+
+ if ($form->{id}) {
+ $query = qq|SELECT e.*
+ FROM employee e
+ WHERE e.id = $form->{id}|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ $ref = $sth->fetchrow_hashref(NAME_lc);
+
+ # check if employee can be deleted, orphaned
+ $form->{status} = "orphaned" unless $ref->{login};
+
+$form->{status} = 'orphaned'; # leave orphaned for now until payroll is done
+
+ $ref->{employeelogin} = $ref->{login};
+ delete $ref->{login};
+ for (keys %$ref) { $form->{$_} = $ref->{$_} }
+
+ $sth->finish;
+
+ # get manager
+ $form->{managerid} *= 1;
+ $query = qq|SELECT name
+ FROM employee
+ WHERE id = $form->{managerid}|;
+ ($form->{manager}) = $dbh->selectrow_array($query);
+
+
+######### disabled for now
+if ($form->{deductions}) {
+ # get allowances
+ $query = qq|SELECT d.id, d.description, da.before, da.after, da.rate
+ FROM employeededuction da
+ JOIN deduction d ON (da.deduction_id = d.id)
+ WHERE da.employee_id = $form->{id}|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ $ref->{rate} *= 100;
+ push @{ $form->{all_employeededuction} }, $ref;
+ }
+ $sth->finish;
+}
+
+ $notid = qq|AND id != $form->{id}|;
+
+ } else {
+
+ $query = qq|SELECT current_date FROM defaults|;
+ ($form->{startdate}) = $dbh->selectrow_array($query);
+
+ }
+
+ # get managers
+ $query = qq|SELECT id, name
+ FROM employee
+ WHERE sales = '1'
+ AND role = 'manager'
+ $notid
+ ORDER BY 2|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{all_manager} }, $ref;
+ }
+ $sth->finish;
+
+
+ # get deductions
+if ($form->{deductions}) {
+ $query = qq|SELECT id, description
+ FROM deduction
+ ORDER BY 2|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{all_deduction} }, $ref;
+ }
+ $sth->finish;
+}
+
+ $dbh->disconnect;
+
+}
+
+
+
+sub save_employee {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect_noauto($myconfig);
+ my $query;
+ my $sth;
+
+ if (! $form->{id}) {
+ my $uid = localtime;
+ $uid .= "$$";
+
+ $query = qq|INSERT INTO employee (name)
+ VALUES ('$uid')|;
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|SELECT id FROM employee
+ WHERE name = '$uid'|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ ($form->{id}) = $sth->fetchrow_array;
+ $sth->finish;
+ }
+
+ my ($null, $managerid) = split /--/, $form->{manager};
+ $managerid *= 1;
+ $form->{sales} *= 1;
+
+ $form->{employeenumber} = $form->update_defaults($myconfig, "employeenumber", $dbh) if ! $form->{employeenumber};
+
+ $query = qq|UPDATE employee SET
+ employeenumber = |.$dbh->quote($form->{employeenumber}).qq|,
+ name = |.$dbh->quote($form->{name}).qq|,
+ address1 = |.$dbh->quote($form->{address1}).qq|,
+ address2 = |.$dbh->quote($form->{address2}).qq|,
+ city = |.$dbh->quote($form->{city}).qq|,
+ state = |.$dbh->quote($form->{state}).qq|,
+ zipcode = |.$dbh->quote($form->{zipcode}).qq|,
+ country = |.$dbh->quote($form->{country}).qq|,
+ workphone = '$form->{workphone}',
+ homephone = '$form->{homephone}',
+ startdate = |.$form->dbquote($form->{startdate}, SQL_DATE).qq|,
+ enddate = |.$form->dbquote($form->{enddate}, SQL_DATE).qq|,
+ notes = |.$dbh->quote($form->{notes}).qq|,
+ role = '$form->{role}',
+ sales = '$form->{sales}',
+ email = |.$dbh->quote($form->{email}).qq|,
+ ssn = '$form->{ssn}',
+ dob = |.$form->dbquote($form->{dob}, SQL_DATE).qq|,
+ iban = '$form->{iban}',
+ bic = '$form->{bic}',
+ managerid = $managerid
+ WHERE id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+# for now
+if ($form->{selectdeduction}) {
+ # insert deduction and allowances for payroll
+ $query = qq|DELETE FROM employeededuction
+ WHERE employee_id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|INSERT INTO employeededuction (employee_id, deduction_id,
+ before, after, rate) VALUES ($form->{id},?,?,?,?)|;
+ my $sth = $dbh->prepare($query) || $form->dberror($query);
+
+ for ($i = 1; $i <= $form->{deduction_rows}; $i++) {
+ for (qw(before after)) { $form->{"${_}_$i"} = $form->parse_amount($myconfig, $form->{"${_}_$i"}) }
+ ($null, $deduction_id) = split /--/, $form->{"deduction_$i"};
+ if ($deduction_id) {
+ $sth->execute($deduction_id, $form->{"before_$i"}, $form->{"after_$i"}, $form->{"rate_$i"} / 100) || $form->dberror($query);
+ }
+ }
+ $sth->finish;
+}
+
+ $dbh->commit;
+ $dbh->disconnect;
+
+}
+
+
+sub delete_employee {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ # delete employee
+ my $query = qq|DELETE FROM $form->{db}
+ WHERE id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ $dbh->commit;
+ $dbh->disconnect;
+
+}
+
+
+sub employees {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $where = "1 = 1";
+ $form->{sort} = ($form->{sort}) ? $form->{sort} : "name";
+ my @a = qw(name);
+ my $sortorder = $form->sort_order(\@a);
+
+ my $var;
+
+ if ($form->{startdatefrom}) {
+ $where .= " AND e.startdate >= '$form->{startdatefrom}'";
+ }
+ if ($form->{startdateto}) {
+ $where .= " AND e.startddate <= '$form->{startdateto}'";
+ }
+ if ($form->{name} ne "") {
+ $var = $form->like(lc $form->{name});
+ $where .= " AND lower(e.name) LIKE '$var'";
+ }
+ if ($form->{notes} ne "") {
+ $var = $form->like(lc $form->{notes});
+ $where .= " AND lower(e.notes) LIKE '$var'";
+ }
+ if ($form->{sales} eq 'Y') {
+ $where .= " AND e.sales = '1'";
+ }
+ if ($form->{status} eq 'orphaned') {
+ $where .= qq| AND e.login IS NULL|;
+ }
+ if ($form->{status} eq 'active') {
+ $where .= qq| AND e.enddate IS NULL|;
+ }
+ if ($form->{status} eq 'inactive') {
+ $where .= qq| AND e.enddate <= current_date|;
+ }
+
+ my $query = qq|SELECT e.*, m.name AS manager
+ FROM employee e
+ LEFT JOIN employee m ON (m.id = e.managerid)
+ WHERE $where
+ ORDER BY $sortorder|;
+
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+ $ref->{address} = "";
+ for (qw(address1 address2 city state zipcode country)) { $ref->{address} .= "$ref->{$_} " }
+ push @{ $form->{all_employee} }, $ref;
+ }
+
+ $sth->finish;
+ $dbh->disconnect;
+
+}
+
+
+sub get_deduction {
+ my ($self, $myconfig, $form) = @_;
+
+ my $dbh = $form->dbconnect($myconfig);
+ my $query;
+ my $sth;
+ my $ref;
+ my $item;
+ my $i;
+
+ if ($form->{id}) {
+ $query = qq|SELECT d.*,
+ c1.accno AS ap_accno,
+ c1.description AS ap_description,
+ c2.accno AS expense_accno,
+ c2.description AS expense_description
+ FROM deduction d
+ LEFT JOIN chart c1 ON (c1.id = d.ap_accno_id)
+ LEFT JOIN chart c2 ON (c2.id = d.expense_accno_id)
+ WHERE d.id = $form->{id}|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ $ref = $sth->fetchrow_hashref(NAME_lc);
+ for (keys %$ref) { $form->{$_} = $ref->{$_} }
+
+ $sth->finish;
+
+ # check if orphaned
+$form->{status} = 'orphaned'; # for now
+
+
+ # get the rates
+ $query = qq|SELECT rate, amount, above, below
+ FROM deductionrate
+ WHERE trans_id = $form->{id}
+ ORDER BY rate, amount|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{deductionrate} }, $ref;
+ }
+ $sth->finish;
+
+ # get all for deductionbase
+ $query = qq|SELECT d.description, d.id, db.maximum
+ FROM deductionbase db
+ JOIN deduction d ON (d.id = db.deduction_id)
+ WHERE db.trans_id = $form->{id}|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{deductionbase} }, $ref;
+ }
+ $sth->finish;
+
+ # get all for deductionafter
+ $query = qq|SELECT d.description, d.id
+ FROM deductionafter da
+ JOIN deduction d ON (d.id = da.deduction_id)
+ WHERE da.trans_id = $form->{id}|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{deductionafter} }, $ref;
+ }
+ $sth->finish;
+
+ # build selection list for base and after
+ $query = qq|SELECT id, description
+ FROM deduction
+ WHERE id != $form->{id}
+ ORDER BY 2|;
+
+ } else {
+ # build selection list for base and after
+ $query = qq|SELECT id, description
+ FROM deduction
+ ORDER BY 2|;
+ }
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{all_deduction} }, $ref;
+ }
+ $sth->finish;
+
+
+ my %category = ( ap => 'L',
+ expense => 'E' );
+
+ foreach $item (keys %category) {
+ $query = qq|SELECT accno, description
+ FROM chart
+ WHERE charttype = 'A'
+ AND category = '$category{$item}'
+ ORDER BY accno|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{"${item}_accounts"} }, $ref;
+ }
+ $sth->finish;
+ }
+
+
+ $dbh->disconnect;
+
+}
+
+
+sub deductions {
+ my ($self, $myconfig, $form) = @_;
+
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $query = qq|SELECT d.id, d.description, d.employeepays, d.employerpays,
+ c1.accno AS ap_accno, c2.accno AS expense_accno,
+ dr.rate, dr.amount, dr.above, dr.below
+ FROM deduction d
+ JOIN deductionrate dr ON (dr.trans_id = d.id)
+ LEFT JOIN chart c1 ON (d.ap_accno_id = c1.id)
+ LEFT JOIN chart c2 ON (d.expense_accno_id = c2.id)
+ ORDER BY 2, 7, 8|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{all_deduction} }, $ref;
+ }
+
+ $sth->finish;
+ $dbh->disconnect;
+
+}
+
+
+sub save_deduction {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ ($form->{ap_accno}) = split /--/, $form->{ap_accno};
+ ($form->{expense_accno}) = split /--/, $form->{expense_accno};
+
+ my $null;
+ my $deduction_id;
+ my $query;
+ my $sth;
+
+ if (! $form->{id}) {
+ my $uid = localtime;
+ $uid .= "$$";
+
+ $query = qq|INSERT INTO deduction (description)
+ VALUES ('$uid')|;
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|SELECT id FROM deduction
+ WHERE description = '$uid'|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ ($form->{id}) = $sth->fetchrow_array;
+ $sth->finish;
+ }
+
+
+ for (qw(employeepays employerpays)) { $form->{$_} = $form->parse_amount($myconfig, $form->{$_}) }
+
+ $query = qq|UPDATE deduction SET
+ description = |.$dbh->quote($form->{description}).qq|,
+ ap_accno_id =
+ (SELECT id FROM chart
+ WHERE accno = '$form->{ap_accno}'),
+ expense_accno_id =
+ (SELECT id FROM chart
+ WHERE accno = '$form->{expense_accno}'),
+ employerpays = '$form->{employerpays}',
+ employeepays = '$form->{employeepays}',
+ fromage = |.$form->dbquote($form->{fromage}, SQL_INT).qq|,
+ toage = |.$form->dbquote($form->{toage}, SQL_INT).qq|
+ WHERE id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+
+ $query = qq|DELETE FROM deductionrate
+ WHERE trans_id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|INSERT INTO deductionrate
+ (trans_id, rate, amount, above, below) VALUES (?,?,?,?,?)|;
+ $sth = $dbh->prepare($query) || $form->dberror($query);
+
+ for ($i = 1; $i <= $form->{rate_rows}; $i++) {
+ for (qw(rate amount above below)) { $form->{"${_}_$i"} = $form->parse_amount($myconfig, $form->{"${_}_$i"}) }
+ $form->{"rate_$i"} /= 100;
+
+ if ($form->{"rate_$i"} || $form->{"amount_$i"}) {
+ $sth->execute($form->{id}, $form->{"rate_$i"}, $form->{"amount_$i"}, $form->{"above_$i"}, $form->{"below_$i"}) || $form->dberror($query);
+ }
+ }
+ $sth->finish;
+
+
+ $query = qq|DELETE FROM deductionbase
+ WHERE trans_id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|INSERT INTO deductionbase
+ (trans_id, deduction_id, maximum) VALUES (?,?,?)|;
+ $sth = $dbh->prepare($query) || $form->dberror($query);
+
+ for ($i = 1; $i <= $form->{base_rows}; $i++) {
+ ($null, $deduction_id) = split /--/, $form->{"base_$i"};
+ $form->{"maximum_$i"} = $form->parse_amount($myconfig, $form->{"maximum_$i"});
+ if ($deduction_id) {
+ $sth->execute($form->{id}, $deduction_id, $form->{"maximum_$i"}) || $form->dberror($query);
+ }
+ }
+ $sth->finish;
+
+
+ $query = qq|DELETE FROM deductionafter
+ WHERE trans_id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|INSERT INTO deductionafter
+ (trans_id, deduction_id) VALUES (?,?)|;
+ $sth = $dbh->prepare($query) || $form->dberror($query);
+
+ for ($i = 1; $i <= $form->{after_rows}; $i++) {
+ ($null, $deduction_id) = split /--/, $form->{"after_$i"};
+ if ($deduction_id) {
+ $sth->execute($form->{id}, $deduction_id) || $form->dberror($query);
+ }
+ }
+ $sth->finish;
+
+ $dbh->commit;
+ $dbh->disconnect;
+
+}
+
+
+sub delete_deduction {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ # delete deduction
+ my $query = qq|DELETE FROM $form->{db}
+ WHERE id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ foreach $item (qw(rate base after)) {
+ $query = qq|DELETE FROM deduction$item
+ WHERE trans_id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+ }
+
+ $dbh->commit;
+ $dbh->disconnect;
+
+}
+
+1;
+
diff --git a/LedgerSMB/IC.pm b/LedgerSMB/IC.pm
new file mode 100755
index 00000000..52ad9654
--- /dev/null
+++ b/LedgerSMB/IC.pm
@@ -0,0 +1,1714 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has NOT undergone whitespace cleanup.
+#
+#======================================================================
+#
+# Inventory Control backend
+#
+#======================================================================
+
+package IC;
+
+
+sub get_part {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to db
+ my $dbh = $form->dbconnect($myconfig);
+ my $i;
+
+ my $query = qq|SELECT p.*,
+ c1.accno AS inventory_accno, c1.description AS inventory_description,
+ c2.accno AS income_accno, c2.description AS income_description,
+ c3.accno AS expense_accno, c3.description AS expense_description,
+ pg.partsgroup
+ FROM parts p
+ LEFT JOIN chart c1 ON (p.inventory_accno_id = c1.id)
+ LEFT JOIN chart c2 ON (p.income_accno_id = c2.id)
+ LEFT JOIN chart c3 ON (p.expense_accno_id = c3.id)
+ LEFT JOIN partsgroup pg ON (p.partsgroup_id = pg.id)
+ WHERE p.id = $form->{id}|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+ my $ref = $sth->fetchrow_hashref(NAME_lc);
+
+ # copy to $form variables
+ for (keys %$ref) { $form->{$_} = $ref->{$_} }
+ $sth->finish;
+
+ my %oid = ('Pg' => 'a.oid',
+ 'PgPP' => 'a.oid',
+ 'Oracle' => 'a.rowid',
+ 'DB2' => '1=1'
+ );
+
+ # part, service item or labor
+ $form->{item} = ($form->{inventory_accno_id}) ? 'part' : 'service';
+ $form->{item} = 'labor' if ! $form->{income_accno_id};
+
+ if ($form->{assembly}) {
+ $form->{item} = 'assembly';
+
+ # retrieve assembly items
+ $query = qq|SELECT p.id, p.partnumber, p.description,
+ p.sellprice, p.weight, a.qty, a.bom, a.adj, p.unit,
+ p.lastcost, p.listprice,
+ pg.partsgroup, p.assembly, p.partsgroup_id
+ FROM parts p
+ JOIN assembly a ON (a.parts_id = p.id)
+ LEFT JOIN partsgroup pg ON (p.partsgroup_id = pg.id)
+ WHERE a.id = $form->{id}
+ ORDER BY $oid{$myconfig->{dbdriver}}|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ $form->{assembly_rows} = 0;
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+ $form->{assembly_rows}++;
+ foreach my $key ( keys %{ $ref } ) {
+ $form->{"${key}_$form->{assembly_rows}"} = $ref->{$key};
+ }
+ }
+ $sth->finish;
+
+ }
+
+ # setup accno hash for <option checked> {amount} is used in create_links
+ for (qw(inventory income expense)) { $form->{amount}{"IC_$_"} = { accno => $form->{"${_}_accno"}, description => $form->{"${_}_description"} } }
+
+
+ if ($form->{item} =~ /(part|assembly)/) {
+ # get makes
+ if ($form->{makemodel} ne "") {
+ $query = qq|SELECT make, model
+ FROM makemodel
+ WHERE parts_id = $form->{id}|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{makemodels} }, $ref;
+ }
+ $sth->finish;
+ }
+ }
+
+ # now get accno for taxes
+ $query = qq|SELECT c.accno
+ FROM chart c, partstax pt
+ WHERE pt.chart_id = c.id
+ AND pt.parts_id = $form->{id}|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while (($key) = $sth->fetchrow_array) {
+ $form->{amount}{$key} = $key;
+ }
+
+ $sth->finish;
+
+ # is it an orphan
+ $query = qq|SELECT parts_id
+ FROM invoice
+ WHERE parts_id = $form->{id}
+ UNION
+ SELECT parts_id
+ FROM orderitems
+ WHERE parts_id = $form->{id}
+ UNION
+ SELECT parts_id
+ FROM assembly
+ WHERE parts_id = $form->{id}
+ UNION
+ SELECT parts_id
+ FROM jcitems
+ WHERE parts_id = $form->{id}|;
+ ($form->{orphaned}) = $dbh->selectrow_array($query);
+ $form->{orphaned} = !$form->{orphaned};
+
+ $form->{orphaned} = 0 if $form->{project_id};
+
+ if ($form->{item} eq 'assembly') {
+ if ($form->{orphaned}) {
+ $form->{orphaned} = !$form->{onhand};
+ }
+ }
+
+ if ($form->{item} =~ /(part|service)/) {
+ # get vendors
+ $query = qq|SELECT v.id, v.name, pv.partnumber,
+ pv.lastcost, pv.leadtime, pv.curr AS vendorcurr
+ FROM partsvendor pv
+ JOIN vendor v ON (v.id = pv.vendor_id)
+ WHERE pv.parts_id = $form->{id}
+ ORDER BY 2|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{vendormatrix} }, $ref;
+ }
+ $sth->finish;
+ }
+
+ # get matrix
+ if ($form->{item} ne 'labor') {
+ $query = qq|SELECT pc.pricebreak, pc.sellprice AS customerprice,
+ pc.curr AS customercurr,
+ pc.validfrom, pc.validto,
+ c.name, c.id AS cid, g.pricegroup, g.id AS gid
+ FROM partscustomer pc
+ LEFT JOIN customer c ON (c.id = pc.customer_id)
+ LEFT JOIN pricegroup g ON (g.id = pc.pricegroup_id)
+ WHERE pc.parts_id = $form->{id}
+ ORDER BY c.name, g.pricegroup, pc.pricebreak|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{customermatrix} }, $ref;
+ }
+ $sth->finish;
+ }
+
+ $dbh->disconnect;
+
+}
+
+
+sub save {
+ my ($self, $myconfig, $form) = @_;
+
+ ($form->{inventory_accno}) = split(/--/, $form->{IC_inventory});
+ ($form->{expense_accno}) = split(/--/, $form->{IC_expense});
+ ($form->{income_accno}) = split(/--/, $form->{IC_income});
+
+ # connect to database, turn off AutoCommit
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ # save the part
+ # make up a unique handle and store in partnumber field
+ # then retrieve the record based on the unique handle to get the id
+ # replace the partnumber field with the actual variable
+ # add records for makemodel
+
+ # if there is a $form->{id} then replace the old entry
+ # delete all makemodel entries and add the new ones
+
+ # undo amount formatting
+ for (qw(rop weight listprice sellprice lastcost stock)) { $form->{$_} = $form->parse_amount($myconfig, $form->{$_}) }
+
+ $form->{makemodel} = (($form->{make_1}) || ($form->{model_1})) ? 1 : 0;
+
+ $form->{assembly} = ($form->{item} eq 'assembly') ? 1 : 0;
+ for (qw(alternate obsolete onhand)) { $form->{$_} *= 1 }
+
+ my $query;
+ my $sth;
+ my $i;
+ my $null;
+ my $vendor_id;
+ my $customer_id;
+
+ if ($form->{id}) {
+
+ # get old price
+ $query = qq|SELECT id, listprice, sellprice, lastcost, weight, project_id
+ FROM parts
+ WHERE id = $form->{id}|;
+ my ($id, $listprice, $sellprice, $lastcost, $weight, $project_id) = $dbh->selectrow_array($query);
+
+ if ($id) {
+
+ if (!$project_id) {
+ # if item is part of an assembly adjust all assemblies
+ $query = qq|SELECT id, qty, adj
+ FROM assembly
+ WHERE parts_id = $form->{id}|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+ while (my ($id, $qty, $adj) = $sth->fetchrow_array) {
+ &update_assembly($dbh, $form, $id, $qty, $adj, $listprice * 1, $sellprice * 1, $lastcost * 1, $weight * 1);
+ }
+ $sth->finish;
+ }
+
+ if ($form->{item} =~ /(part|service)/) {
+ # delete partsvendor records
+ $query = qq|DELETE FROM partsvendor
+ WHERE parts_id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+ }
+
+ if ($form->{item} !~ /(service|labor)/) {
+ # delete makemodel records
+ $query = qq|DELETE FROM makemodel
+ WHERE parts_id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+ }
+
+ if ($form->{item} eq 'assembly') {
+
+ if ($form->{onhand}) {
+ &adjust_inventory($dbh, $form, $form->{id}, $form->{onhand} * -1);
+ }
+
+ if ($form->{orphaned}) {
+ # delete assembly records
+ $query = qq|DELETE FROM assembly
+ WHERE id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+ } else {
+
+ for $i (1 .. $form->{assembly_rows} - 1) {
+ # update BOM, A only
+ for (qw(bom adj)) { $form->{"${_}_$i"} *= 1 }
+
+ $query = qq|UPDATE assembly SET
+ bom = '$form->{"bom_$i"}',
+ adj = '$form->{"adj_$i"}'
+ WHERE id = $form->{id}
+ AND parts_id = $form->{"id_$i"}|;
+ $dbh->do($query) || $form->dberror($query);
+ }
+ }
+
+ $form->{onhand} += $form->{stock};
+
+ }
+
+ # delete tax records
+ $query = qq|DELETE FROM partstax
+ WHERE parts_id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ # delete matrix
+ $query = qq|DELETE FROM partscustomer
+ WHERE parts_id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ } else {
+ $query = qq|INSERT INTO parts (id)
+ VALUES ($form->{id})|;
+ $dbh->do($query) || $form->dberror($query);
+ }
+
+ }
+
+
+ if (!$form->{id}) {
+ my $uid = localtime;
+ $uid .= "$$";
+
+ $query = qq|INSERT INTO parts (partnumber)
+ VALUES ('$uid')|;
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|SELECT id FROM parts
+ WHERE partnumber = '$uid'|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+ ($form->{id}) = $sth->fetchrow_array;
+ $sth->finish;
+
+ $form->{orphaned} = 1;
+ $form->{onhand} = ($form->{stock} * 1) if $form->{item} eq 'assembly';
+
+ }
+
+ my $partsgroup_id;
+ ($null, $partsgroup_id) = split /--/, $form->{partsgroup};
+ $partsgroup_id *= 1;
+
+ $form->{partnumber} = $form->update_defaults($myconfig, "partnumber", $dbh) if ! $form->{partnumber};
+
+ $query = qq|UPDATE parts SET
+ partnumber = |.$dbh->quote($form->{partnumber}).qq|,
+ description = |.$dbh->quote($form->{description}).qq|,
+ makemodel = '$form->{makemodel}',
+ alternate = '$form->{alternate}',
+ assembly = '$form->{assembly}',
+ listprice = $form->{listprice},
+ sellprice = $form->{sellprice},
+ lastcost = $form->{lastcost},
+ weight = $form->{weight},
+ priceupdate = |.$form->dbquote($form->{priceupdate}, SQL_DATE).qq|,
+ unit = |.$dbh->quote($form->{unit}).qq|,
+ notes = |.$dbh->quote($form->{notes}).qq|,
+ rop = $form->{rop},
+ bin = |.$dbh->quote($form->{bin}).qq|,
+ inventory_accno_id = (SELECT id FROM chart
+ WHERE accno = '$form->{inventory_accno}'),
+ income_accno_id = (SELECT id FROM chart
+ WHERE accno = '$form->{income_accno}'),
+ expense_accno_id = (SELECT id FROM chart
+ WHERE accno = '$form->{expense_accno}'),
+ obsolete = '$form->{obsolete}',
+ image = '$form->{image}',
+ drawing = '$form->{drawing}',
+ microfiche = '$form->{microfiche}',
+ partsgroup_id = $partsgroup_id
+ WHERE id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+
+ # insert makemodel records
+ if ($form->{item} =~ /(part|assembly)/) {
+ for $i (1 .. $form->{makemodel_rows}) {
+ if (($form->{"make_$i"} ne "") || ($form->{"model_$i"} ne "")) {
+ $query = qq|INSERT INTO makemodel (parts_id, make, model)
+ VALUES ($form->{id},|
+ .$dbh->quote($form->{"make_$i"}).qq|, |
+ .$dbh->quote($form->{"model_$i"}).qq|)|;
+ $dbh->do($query) || $form->dberror($query);
+ }
+ }
+ }
+
+
+ # insert taxes
+ for (split / /, $form->{taxaccounts}) {
+ if ($form->{"IC_tax_$_"}) {
+ $query = qq|INSERT INTO partstax (parts_id, chart_id)
+ VALUES ($form->{id},
+ (SELECT id
+ FROM chart
+ WHERE accno = '$_'))|;
+ $dbh->do($query) || $form->dberror($query);
+ }
+ }
+
+
+ @a = localtime;
+ $a[5] += 1900;
+ $a[4]++;
+ $a[4] = substr("0$a[4]", -2);
+ $a[3] = substr("0$a[3]", -2);
+ my $shippingdate = "$a[5]$a[4]$a[3]";
+
+ ($form->{employee}, $form->{employee_id}) = $form->get_employee($dbh);
+
+ # add assembly records
+ if ($form->{item} eq 'assembly' && !$project_id) {
+
+ if ($form->{orphaned}) {
+ for $i (1 .. $form->{assembly_rows}) {
+ $form->{"qty_$i"} = $form->parse_amount($myconfig, $form->{"qty_$i"});
+
+ if ($form->{"qty_$i"}) {
+ for (qw(bom adj)) { $form->{"${_}_$i"} *= 1 }
+ $query = qq|INSERT INTO assembly (id, parts_id, qty, bom, adj)
+ VALUES ($form->{id}, $form->{"id_$i"},
+ $form->{"qty_$i"}, '$form->{"bom_$i"}',
+ '$form->{"adj_$i"}')|;
+ $dbh->do($query) || $form->dberror($query);
+ }
+ }
+ }
+
+ # adjust onhand for the parts
+ if ($form->{onhand}) {
+ &adjust_inventory($dbh, $form, $form->{id}, $form->{onhand});
+ }
+
+ }
+
+ # add vendors
+ if ($form->{item} ne 'assembly') {
+ $updparts{$form->{id}} = 1;
+
+ for $i (1 .. $form->{vendor_rows}) {
+ if (($form->{"vendor_$i"} ne "") && $form->{"lastcost_$i"}) {
+
+ ($null, $vendor_id) = split /--/, $form->{"vendor_$i"};
+
+ for (qw(lastcost leadtime)) { $form->{"${_}_$i"} = $form->parse_amount($myconfig, $form->{"${_}_$i"})}
+
+ $query = qq|INSERT INTO partsvendor (vendor_id, parts_id, partnumber,
+ lastcost, leadtime, curr)
+ VALUES ($vendor_id, $form->{id},|
+ .$dbh->quote($form->{"partnumber_$i"}).qq|,
+ $form->{"lastcost_$i"},
+ $form->{"leadtime_$i"}, '$form->{"vendorcurr_$i"}')|;
+ $dbh->do($query) || $form->dberror($query);
+ }
+ }
+ }
+
+
+ # add pricematrix
+ for $i (1 .. $form->{customer_rows}) {
+
+ for (qw(pricebreak customerprice)) { $form->{"${_}_$i"} = $form->parse_amount($myconfig, $form->{"${_}_$i"})}
+
+ if ($form->{"customerprice_$i"}) {
+
+ ($null, $customer_id) = split /--/, $form->{"customer_$i"};
+ $customer_id *= 1;
+
+ ($null, $pricegroup_id) = split /--/, $form->{"pricegroup_$i"};
+ $pricegroup_id *= 1;
+
+ $query = qq|INSERT INTO partscustomer (parts_id, customer_id,
+ pricegroup_id, pricebreak, sellprice, curr,
+ validfrom, validto)
+ VALUES ($form->{id}, $customer_id,
+ $pricegroup_id, $form->{"pricebreak_$i"},
+ $form->{"customerprice_$i"}, '$form->{"customercurr_$i"}',|
+ .$form->dbquote($form->{"validfrom_$i"}, SQL_DATE).qq|, |
+ .$form->dbquote($form->{"validto_$i"}, SQL_DATE).qq|)|;
+ $dbh->do($query) || $form->dberror($query);
+ }
+ }
+
+ # commit
+ my $rc = $dbh->commit;
+ $dbh->disconnect;
+
+ $rc;
+
+}
+
+
+
+sub update_assembly {
+ my ($dbh, $form, $id, $qty, $adj, $listprice, $sellprice, $lastcost, $weight) = @_;
+
+ my $formlistprice = $form->{listprice};
+ my $formsellprice = $form->{sellprice};
+
+ if (!$adj) {
+ $formlistprice = $listprice;
+ $formsellprice = $sellprice;
+ }
+
+ my $query = qq|SELECT id, qty, adj
+ FROM assembly
+ WHERE parts_id = $id|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ $form->{$id} = 1;
+
+ while (my ($pid, $aqty, $aadj) = $sth->fetchrow_array) {
+ &update_assembly($dbh, $form, $pid, $aqty * $qty, $aadj, $listprice, $sellprice, $lastcost, $weight) if !$form->{$pid};
+ }
+ $sth->finish;
+
+ $query = qq|UPDATE parts
+ SET listprice = listprice +
+ $qty * ($formlistprice - $listprice),
+ sellprice = sellprice +
+ $qty * ($formsellprice - $sellprice),
+ lastcost = lastcost +
+ $qty * ($form->{lastcost} - $lastcost),
+ weight = weight +
+ $qty * ($form->{weight} - $weight)
+ WHERE id = $id|;
+ $dbh->do($query) || $form->dberror($query);
+
+ delete $form->{$id};
+
+}
+
+
+
+sub retrieve_assemblies {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $where = '1 = 1';
+
+ if ($form->{partnumber} ne "") {
+ my $partnumber = $form->like(lc $form->{partnumber});
+ $where .= " AND lower(p.partnumber) LIKE '$partnumber'";
+ }
+
+ if ($form->{description} ne "") {
+ my $description = $form->like(lc $form->{description});
+ $where .= " AND lower(p.description) LIKE '$description'";
+ }
+ $where .= qq| AND p.obsolete = '0'
+ AND p.project_id IS NULL|;
+
+ my %ordinal = ( 'partnumber' => 2,
+ 'description' => 3,
+ 'bin' => 4
+ );
+
+ my @a = qw(partnumber description bin);
+ my $sortorder = $form->sort_order(\@a, \%ordinal);
+
+
+ # retrieve assembly items
+ my $query = qq|SELECT p.id, p.partnumber, p.description,
+ p.bin, p.onhand, p.rop
+ FROM parts p
+ WHERE $where
+ AND p.assembly = '1'
+ ORDER BY $sortorder|;
+
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ $query = qq|SELECT sum(p.inventory_accno_id), p.assembly
+ FROM parts p
+ JOIN assembly a ON (a.parts_id = p.id)
+ WHERE a.id = ?
+ GROUP BY p.assembly|;
+ my $svh = $dbh->prepare($query) || $form->dberror($query);
+
+ my $inh;
+ if ($form->{checkinventory}) {
+ $query = qq|SELECT p.id, p.onhand, a.qty
+ FROM parts p
+ JOIN assembly a ON (a.parts_id = p.id)
+ WHERE (p.inventory_accno_id > 0 OR p.assembly)
+ AND p.income_accno_id > 0
+ AND a.id = ?|;
+ $inh = $dbh->prepare($query) || $form->dberror($query);
+ }
+
+ my %available = ();
+ my %required;
+ my $ref;
+ my $aref;
+ my $stock;
+ my $howmany;
+ my $ok;
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ $svh->execute($ref->{id});
+ ($ref->{inventory}, $ref->{assembly}) = $svh->fetchrow_array;
+ $svh->finish;
+
+ if ($ref->{inventory} || $ref->{assembly}) {
+ $ok = 1;
+ if ($form->{checkinventory}) {
+ $inh->execute($ref->{id}) || $form->dberror($query);;
+ $ok = 0;
+ %required = ();
+
+ while ($aref = $inh->fetchrow_hashref(NAME_lc)) {
+ $available{$aref->{id}} = (exists $available{$aref->{id}}) ? $available{$aref->{id}} : $aref->{onhand};
+ $required{$aref->{id}} = $aref->{qty};
+
+ if ($available{$aref->{id}} >= $aref->{qty}) {
+
+ $howmany = ($aref->{qty}) ? int $available{$aref->{id}}/$aref->{qty} : 1;
+ if ($stock) {
+ $stock = ($stock > $howmany) ? $howmany : $stock;
+ } else {
+ $stock = $howmany;
+ }
+ $ok = 1;
+
+ $available{$aref->{id}} -= $aref->{qty} * $stock;
+
+ } else {
+ $ok = 0;
+ for (keys %required) { $available{$_} += $required{$_} * $stock }
+ $stock = 0;
+ last;
+ }
+ }
+ $inh->finish;
+ $ref->{stock} = $stock;
+
+ }
+ push @{ $form->{assembly_items} }, $ref if $ok;
+ }
+ }
+ $sth->finish;
+
+ $dbh->disconnect;
+
+}
+
+
+sub restock_assemblies {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ for my $i (1 .. $form->{rowcount}) {
+
+ $form->{"qty_$i"} = $form->parse_amount($myconfig, $form->{"qty_$i"});
+
+ if ($form->{"qty_$i"}) {
+ &adjust_inventory($dbh, $form, $form->{"id_$i"}, $form->{"qty_$i"});
+ }
+
+ }
+
+ my $rc = $dbh->commit;
+ $dbh->disconnect;
+
+ $rc;
+
+}
+
+
+sub adjust_inventory {
+ my ($dbh, $form, $id, $qty) = @_;
+
+ my $query = qq|SELECT p.id, p.inventory_accno_id, p.assembly, a.qty
+ FROM parts p
+ JOIN assembly a ON (a.parts_id = p.id)
+ WHERE a.id = $id|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+
+ # is it a service item then loop
+ if (! $ref->{inventory_accno_id}) {
+ next if ! $ref->{assembly}; # assembly
+ }
+
+ # adjust parts onhand
+ $form->update_balance($dbh,
+ "parts",
+ "onhand",
+ qq|id = $ref->{id}|,
+ $qty * $ref->{qty} * -1);
+ }
+
+ $sth->finish;
+
+ # update assembly
+ $form->update_balance($dbh,
+ "parts",
+ "onhand",
+ qq|id = $id|,
+ $qty);
+
+}
+
+
+sub delete {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database, turn off AutoCommit
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ my $query;
+
+ $query = qq|DELETE FROM parts
+ WHERE id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|DELETE FROM partstax
+ WHERE parts_id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+
+ if ($form->{item} ne 'assembly') {
+ $query = qq|DELETE FROM partsvendor
+ WHERE parts_id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+ }
+
+ # check if it is a part, assembly or service
+ if ($form->{item} ne 'service') {
+ $query = qq|DELETE FROM makemodel
+ WHERE parts_id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+ }
+
+ if ($form->{item} eq 'assembly') {
+ $query = qq|DELETE FROM assembly
+ WHERE id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+ }
+
+ if ($form->{item} eq 'alternate') {
+ $query = qq|DELETE FROM alternate
+ WHERE id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+ }
+
+ $query = qq|DELETE FROM inventory
+ WHERE parts_id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|DELETE FROM partscustomer
+ WHERE parts_id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|DELETE FROM translation
+ WHERE trans_id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ # commit
+ my $rc = $dbh->commit;
+ $dbh->disconnect;
+
+ $rc;
+
+}
+
+
+sub assembly_item {
+ my ($self, $myconfig, $form) = @_;
+
+ my $i = $form->{assembly_rows};
+ my $var;
+ my $null;
+ my $where = "p.obsolete = '0'";
+
+ if ($form->{"partnumber_$i"} ne "") {
+ $var = $form->like(lc $form->{"partnumber_$i"});
+ $where .= " AND lower(p.partnumber) LIKE '$var'";
+ }
+ if ($form->{"description_$i"} ne "") {
+ $var = $form->like(lc $form->{"description_$i"});
+ $where .= " AND lower(p.description) LIKE '$var'";
+ }
+ if ($form->{"partsgroup_$i"} ne "") {
+ ($null, $var) = split /--/, $form->{"partsgroup_$i"};
+ $where .= qq| AND p.partsgroup_id = $var|;
+ }
+
+ if ($form->{id}) {
+ $where .= " AND p.id != $form->{id}";
+ }
+
+ if ($form->{"description_$i"} ne "") {
+ $where .= " ORDER BY p.description";
+ } else {
+ $where .= " ORDER BY p.partnumber";
+ }
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $query = qq|SELECT p.id, p.partnumber, p.description, p.sellprice,
+ p.weight, p.onhand, p.unit, p.lastcost,
+ pg.partsgroup, p.partsgroup_id
+ FROM parts p
+ LEFT JOIN partsgroup pg ON (p.partsgroup_id = pg.id)
+ WHERE $where|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{item_list} }, $ref;
+ }
+
+ $sth->finish;
+ $dbh->disconnect;
+
+}
+
+
+sub all_parts {
+ my ($self, $myconfig, $form) = @_;
+
+ my $where = '1 = 1';
+ my $null;
+ my $var;
+ my $ref;
+
+ for (qw(partnumber drawing microfiche)) {
+ if ($form->{$_} ne "") {
+ $var = $form->like(lc $form->{$_});
+ $where .= " AND lower(p.$_) LIKE '$var'";
+ }
+ }
+ # special case for description
+ if ($form->{description} ne "") {
+ unless ($form->{bought} || $form->{sold} || $form->{onorder} || $form->{ordered} || $form->{rfq} || $form->{quoted}) {
+ $var = $form->like(lc $form->{description});
+ $where .= " AND lower(p.description) LIKE '$var'";
+ }
+ }
+
+ # assembly components
+ my $assemblyflds;
+ if ($form->{searchitems} eq 'component') {
+ $assemblyflds = qq|, p1.partnumber AS assemblypartnumber, a.id AS assembly_id|;
+ }
+
+ # special case for serialnumber
+ if ($form->{l_serialnumber}) {
+ if ($form->{serialnumber} ne "") {
+ $var = $form->like(lc $form->{serialnumber});
+ $where .= " AND lower(i.serialnumber) LIKE '$var'";
+ }
+ }
+
+ if (($form->{warehouse} ne "") || $form->{l_warehouse}) {
+ $form->{l_warehouse} = 1;
+ }
+
+ if ($form->{searchitems} eq 'part') {
+ $where .= " AND p.inventory_accno_id > 0 AND p.income_accno_id > 0";
+ }
+ if ($form->{searchitems} eq 'assembly') {
+ $form->{bought} = "";
+ $where .= " AND p.assembly = '1'";
+ }
+ if ($form->{searchitems} eq 'service') {
+ $where .= " AND p.assembly = '0' AND p.inventory_accno_id IS NULL";
+ }
+ if ($form->{searchitems} eq 'labor') {
+ $where .= " AND p.inventory_accno_id > 0 AND p.income_accno_id IS NULL";
+ }
+
+ # items which were never bought, sold or on an order
+ if ($form->{itemstatus} eq 'orphaned') {
+ $where .= qq| AND p.onhand = 0
+ AND p.id NOT IN (SELECT p.id FROM parts p
+ JOIN invoice i ON (p.id = i.parts_id))
+ AND p.id NOT IN (SELECT p.id FROM parts p
+ JOIN assembly a ON (p.id = a.parts_id))
+ AND p.id NOT IN (SELECT p.id FROM parts p
+ JOIN orderitems o ON (p.id = o.parts_id))
+ AND p.id NOT IN (SELECT p.id FROM parts p
+ JOIN jcitems j ON (p.id = j.parts_id))|;
+ }
+
+ if ($form->{itemstatus} eq 'active') {
+ $where .= " AND p.obsolete = '0'";
+ }
+ if ($form->{itemstatus} eq 'obsolete') {
+ $where .= " AND p.obsolete = '1'";
+ }
+ if ($form->{itemstatus} eq 'onhand') {
+ $where .= " AND p.onhand > 0";
+ }
+ if ($form->{itemstatus} eq 'short') {
+ $where .= " AND p.onhand < p.rop";
+ }
+
+ my $makemodelflds = qq|, '', ''|;;
+ my $makemodeljoin;
+
+ if (($form->{make} ne "") || $form->{l_make} || ($form->{model} ne "") || $form->{l_model}) {
+ $makemodelflds = qq|, m.make, m.model|;
+ $makemodeljoin = qq|LEFT JOIN makemodel m ON (m.parts_id = p.id)|;
+
+ if ($form->{make} ne "") {
+ $var = $form->like(lc $form->{make});
+ $where .= " AND lower(m.make) LIKE '$var'";
+ }
+ if ($form->{model} ne "") {
+ $var = $form->like(lc $form->{model});
+ $where .= " AND lower(m.model) LIKE '$var'";
+ }
+ }
+ if ($form->{partsgroup} ne "") {
+ ($null, $var) = split /--/, $form->{partsgroup};
+ $where .= qq| AND p.partsgroup_id = $var|;
+ }
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my %ordinal = ( 'partnumber' => 2,
+ 'description' => 3,
+ 'bin' => 6,
+ 'priceupdate' => 13,
+ 'drawing' => 15,
+ 'microfiche' => 16,
+ 'partsgroup' => 18,
+ 'make' => 21,
+ 'model' => 22,
+ 'assemblypartnumber' => 23
+ );
+
+ my @a = qw(partnumber description);
+ my $sortorder = $form->sort_order(\@a, \%ordinal);
+
+ my $query = qq|SELECT curr FROM defaults|;
+ my ($curr) = $dbh->selectrow_array($query);
+ $curr =~ s/:.*//;
+
+ my $flds = qq|p.id, p.partnumber, p.description, p.onhand, p.unit,
+ p.bin, p.sellprice, p.listprice, p.lastcost, p.rop,
+ p.avgcost,
+ p.weight, p.priceupdate, p.image, p.drawing, p.microfiche,
+ p.assembly, pg.partsgroup, '$curr' AS curr,
+ c1.accno AS inventory, c2.accno AS income, c3.accno AS expense,
+ p.notes
+ $makemodelflds $assemblyflds
+ |;
+
+ $query = qq|SELECT $flds
+ FROM parts p
+ LEFT JOIN partsgroup pg ON (p.partsgroup_id = pg.id)
+ LEFT JOIN chart c1 ON (c1.id = p.inventory_accno_id)
+ LEFT JOIN chart c2 ON (c2.id = p.income_accno_id)
+ LEFT JOIN chart c3 ON (c3.id = p.expense_accno_id)
+ $makemodeljoin
+ WHERE $where
+ ORDER BY $sortorder|;
+
+ # redo query for components report
+ if ($form->{searchitems} eq 'component') {
+
+ $flds =~ s/p.onhand/a.qty AS onhand/;
+
+ $query = qq|SELECT $flds
+ FROM assembly a
+ JOIN parts p ON (a.parts_id = p.id)
+ JOIN parts p1 ON (a.id = p1.id)
+ LEFT JOIN partsgroup pg ON (p.partsgroup_id = pg.id)
+ LEFT JOIN chart c1 ON (c1.id = p.inventory_accno_id)
+ LEFT JOIN chart c2 ON (c2.id = p.income_accno_id)
+ LEFT JOIN chart c3 ON (c3.id = p.expense_accno_id)
+ $makemodeljoin
+ WHERE $where
+ ORDER BY $sortorder|;
+ }
+
+
+ # rebuild query for bought and sold items
+ if ($form->{bought} || $form->{sold} || $form->{onorder} || $form->{ordered} || $form->{rfq} || $form->{quoted}) {
+
+ $form->sort_order();
+ @a = qw(partnumber description curr employee name serialnumber id);
+ push @a, "invnumber" if ($form->{bought} || $form->{sold});
+ push @a, "ordnumber" if ($form->{onorder} || $form->{ordered});
+ push @a, "quonumber" if ($form->{rfq} || $form->{quoted});
+
+ %ordinal = ( 'partnumber' => 2,
+ 'description' => 3,
+ 'serialnumber' => 4,
+ 'bin' => 7,
+ 'priceupdate' => 14,
+ 'partsgroup' => 19,
+ 'invnumber' => 20,
+ 'ordnumber' => 21,
+ 'quonumber' => 22,
+ 'name' => 24,
+ 'employee' => 25,
+ 'curr' => 26,
+ 'make' => 29,
+ 'model' => 30
+ );
+
+ $sortorder = $form->sort_order(\@a, \%ordinal);
+
+ my $union = "";
+ $query = "";
+
+ if ($form->{bought} || $form->{sold}) {
+
+ my $invwhere = "$where";
+ my $transdate = ($form->{method} eq 'accrual') ? "transdate" : "datepaid";
+
+ $invwhere .= " AND i.assemblyitem = '0'";
+ $invwhere .= " AND a.$transdate >= '$form->{transdatefrom}'" if $form->{transdatefrom};
+ $invwhere .= " AND a.$transdate <= '$form->{transdateto}'" if $form->{transdateto};
+
+ if ($form->{description} ne "") {
+ $var = $form->like(lc $form->{description});
+ $invwhere .= " AND lower(i.description) LIKE '$var'";
+ }
+
+ if ($form->{open} || $form->{closed}) {
+ if ($form->{open} && $form->{closed}) {
+ if ($form->{method} eq 'cash') {
+ $invwhere .= " AND a.amount = a.paid";
+ }
+ } else {
+ if ($form->{open}) {
+ if ($form->{method} eq 'cash') {
+ $invwhere .= " AND a.id = 0";
+ } else {
+ $invwhere .= " AND NOT a.amount = a.paid";
+ }
+ } else {
+ $invwhere .= " AND a.amount = a.paid";
+ }
+ }
+ } else {
+ $invwhere .= " AND a.id = 0";
+ }
+
+ my $flds = qq|p.id, p.partnumber, i.description, i.serialnumber,
+ i.qty AS onhand, i.unit, p.bin, i.sellprice,
+ p.listprice, p.lastcost, p.rop, p.weight,
+ p.avgcost,
+ p.priceupdate, p.image, p.drawing, p.microfiche,
+ p.assembly,
+ pg.partsgroup, a.invnumber, a.ordnumber, a.quonumber,
+ i.trans_id, ct.name, e.name AS employee, a.curr, a.till,
+ p.notes
+ $makemodelfld|;
+
+
+ if ($form->{bought}) {
+ my $rflds = $flds;
+ $rflds =~ s/i.qty AS onhand/i.qty * -1 AS onhand/;
+
+ $query = qq|
+ SELECT $rflds, 'ir' AS module, '' AS type,
+ (SELECT sell FROM exchangerate ex
+ WHERE ex.curr = a.curr
+ AND ex.transdate = a.$transdate) AS exchangerate,
+ i.discount
+ FROM invoice i
+ JOIN parts p ON (p.id = i.parts_id)
+ JOIN ap a ON (a.id = i.trans_id)
+ JOIN vendor ct ON (a.vendor_id = ct.id)
+ LEFT JOIN partsgroup pg ON (p.partsgroup_id = pg.id)
+ LEFT JOIN employee e ON (a.employee_id = e.id)
+ $makemodeljoin
+ WHERE $invwhere|;
+ $union = "
+ UNION ALL";
+ }
+
+ if ($form->{sold}) {
+ $query .= qq|$union
+ SELECT $flds, 'is' AS module, '' AS type,
+ (SELECT buy FROM exchangerate ex
+ WHERE ex.curr = a.curr
+ AND ex.transdate = a.$transdate) AS exchangerate,
+ i.discount
+ FROM invoice i
+ JOIN parts p ON (p.id = i.parts_id)
+ JOIN ar a ON (a.id = i.trans_id)
+ JOIN customer ct ON (a.customer_id = ct.id)
+ LEFT JOIN partsgroup pg ON (p.partsgroup_id = pg.id)
+ LEFT JOIN employee e ON (a.employee_id = e.id)
+ $makemodeljoin
+ WHERE $invwhere|;
+ $union = "
+ UNION ALL";
+ }
+ }
+
+ if ($form->{onorder} || $form->{ordered}) {
+ my $ordwhere = "$where
+ AND a.quotation = '0'";
+ $ordwhere .= " AND a.transdate >= '$form->{transdatefrom}'" if $form->{transdatefrom};
+ $ordwhere .= " AND a.transdate <= '$form->{transdateto}'" if $form->{transdateto};
+
+ if ($form->{description} ne "") {
+ $var = $form->like(lc $form->{description});
+ $ordwhere .= " AND lower(i.description) LIKE '$var'";
+ }
+
+ if ($form->{open} || $form->{closed}) {
+ unless ($form->{open} && $form->{closed}) {
+ $ordwhere .= " AND a.closed = '0'" if $form->{open};
+ $ordwhere .= " AND a.closed = '1'" if $form->{closed};
+ }
+ } else {
+ $ordwhere .= " AND a.id = 0";
+ }
+
+ $flds = qq|p.id, p.partnumber, i.description, i.serialnumber,
+ i.qty AS onhand, i.unit, p.bin, i.sellprice,
+ p.listprice, p.lastcost, p.rop, p.weight,
+ p.avgcost,
+ p.priceupdate, p.image, p.drawing, p.microfiche,
+ p.assembly,
+ pg.partsgroup, '' AS invnumber, a.ordnumber, a.quonumber,
+ i.trans_id, ct.name, e.name AS employee, a.curr, '0' AS till,
+ p.notes
+ $makemodelfld|;
+
+ if ($form->{ordered}) {
+ $query .= qq|$union
+ SELECT $flds, 'oe' AS module, 'sales_order' AS type,
+ (SELECT buy FROM exchangerate ex
+ WHERE ex.curr = a.curr
+ AND ex.transdate = a.transdate) AS exchangerate,
+ i.discount
+ FROM orderitems i
+ JOIN parts p ON (i.parts_id = p.id)
+ JOIN oe a ON (i.trans_id = a.id)
+ JOIN customer ct ON (a.customer_id = ct.id)
+ LEFT JOIN partsgroup pg ON (p.partsgroup_id = pg.id)
+ LEFT JOIN employee e ON (a.employee_id = e.id)
+ $makemodeljoin
+ WHERE $ordwhere
+ AND a.customer_id > 0|;
+ $union = "
+ UNION ALL";
+ }
+
+ if ($form->{onorder}) {
+ $flds = qq|p.id, p.partnumber, i.description, i.serialnumber,
+ i.qty AS onhand, i.unit, p.bin, i.sellprice,
+ p.listprice, p.lastcost, p.rop, p.weight,
+ p.avgcost,
+ p.priceupdate, p.image, p.drawing, p.microfiche,
+ p.assembly,
+ pg.partsgroup, '' AS invnumber, a.ordnumber, a.quonumber,
+ i.trans_id, ct.name,e.name AS employee, a.curr, '0' AS till,
+ p.notes
+ $makemodelfld|;
+
+ $query .= qq|$union
+ SELECT $flds, 'oe' AS module, 'purchase_order' AS type,
+ (SELECT sell FROM exchangerate ex
+ WHERE ex.curr = a.curr
+ AND ex.transdate = a.transdate) AS exchangerate,
+ i.discount
+ FROM orderitems i
+ JOIN parts p ON (i.parts_id = p.id)
+ JOIN oe a ON (i.trans_id = a.id)
+ JOIN vendor ct ON (a.vendor_id = ct.id)
+ LEFT JOIN partsgroup pg ON (p.partsgroup_id = pg.id)
+ LEFT JOIN employee e ON (a.employee_id = e.id)
+ $makemodeljoin
+ WHERE $ordwhere
+ AND a.vendor_id > 0|;
+ }
+
+ }
+
+ if ($form->{rfq} || $form->{quoted}) {
+ my $quowhere = "$where
+ AND a.quotation = '1'";
+ $quowhere .= " AND a.transdate >= '$form->{transdatefrom}'" if $form->{transdatefrom};
+ $quowhere .= " AND a.transdate <= '$form->{transdateto}'" if $form->{transdateto};
+
+ if ($form->{description} ne "") {
+ $var = $form->like(lc $form->{description});
+ $quowhere .= " AND lower(i.description) LIKE '$var'";
+ }
+
+ if ($form->{open} || $form->{closed}) {
+ unless ($form->{open} && $form->{closed}) {
+ $ordwhere .= " AND a.closed = '0'" if $form->{open};
+ $ordwhere .= " AND a.closed = '1'" if $form->{closed};
+ }
+ } else {
+ $ordwhere .= " AND a.id = 0";
+ }
+
+
+ $flds = qq|p.id, p.partnumber, i.description, i.serialnumber,
+ i.qty AS onhand, i.unit, p.bin, i.sellprice,
+ p.listprice, p.lastcost, p.rop, p.weight,
+ p.avgcost,
+ p.priceupdate, p.image, p.drawing, p.microfiche,
+ p.assembly,
+ pg.partsgroup, '' AS invnumber, a.ordnumber, a.quonumber,
+ i.trans_id, ct.name, e.name AS employee, a.curr, '0' AS till,
+ p.notes
+ $makemodelfld|;
+
+ if ($form->{quoted}) {
+ $query .= qq|$union
+ SELECT $flds, 'oe' AS module, 'sales_quotation' AS type,
+ (SELECT buy FROM exchangerate ex
+ WHERE ex.curr = a.curr
+ AND ex.transdate = a.transdate) AS exchangerate,
+ i.discount
+ FROM orderitems i
+ JOIN parts p ON (i.parts_id = p.id)
+ JOIN oe a ON (i.trans_id = a.id)
+ JOIN customer ct ON (a.customer_id = ct.id)
+ LEFT JOIN partsgroup pg ON (p.partsgroup_id = pg.id)
+ LEFT JOIN employee e ON (a.employee_id = e.id)
+ $makemodeljoin
+ WHERE $quowhere
+ AND a.customer_id > 0|;
+ $union = "
+ UNION ALL";
+ }
+
+ if ($form->{rfq}) {
+ $flds = qq|p.id, p.partnumber, i.description, i.serialnumber,
+ i.qty AS onhand, i.unit, p.bin, i.sellprice,
+ p.listprice, p.lastcost, p.rop, p.weight,
+ p.avgcost,
+ p.priceupdate, p.image, p.drawing, p.microfiche,
+ p.assembly,
+ pg.partsgroup, '' AS invnumber, a.ordnumber, a.quonumber,
+ i.trans_id, ct.name, e.name AS employee, a.curr, '0' AS till,
+ p.notes
+ $makemodelfld|;
+
+ $query .= qq|$union
+ SELECT $flds, 'oe' AS module, 'request_quotation' AS type,
+ (SELECT sell FROM exchangerate ex
+ WHERE ex.curr = a.curr
+ AND ex.transdate = a.transdate) AS exchangerate,
+ i.discount
+ FROM orderitems i
+ JOIN parts p ON (i.parts_id = p.id)
+ JOIN oe a ON (i.trans_id = a.id)
+ JOIN vendor ct ON (a.vendor_id = ct.id)
+ LEFT JOIN partsgroup pg ON (p.partsgroup_id = pg.id)
+ LEFT JOIN employee e ON (a.employee_id = e.id)
+ $makemodeljoin
+ WHERE $quowhere
+ AND a.vendor_id > 0|;
+ }
+
+ }
+
+ $query .= qq|
+ ORDER BY $sortorder|;
+
+ }
+
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ $query = qq|SELECT c.accno
+ FROM chart c
+ JOIN partstax pt ON (pt.chart_id = c.id)
+ WHERE pt.parts_id = ?
+ ORDER BY accno|;
+ my $pth = $dbh->prepare($query) || $form->dberror($query);
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ $pth->execute($ref->{id});
+ while (($accno) = $pth->fetchrow_array) {
+ $ref->{tax} .= "$accno ";
+ }
+ $pth->finish;
+
+ push @{ $form->{parts} }, $ref;
+ }
+ $sth->finish;
+
+ @a = ();
+
+ # include individual items for assembly
+ if (($form->{searchitems} eq 'assembly') && $form->{individual}) {
+
+ if ($form->{sold} || $form->{ordered} || $form->{quoted}) {
+ $flds = qq|p.id, p.partnumber, p.description, p.onhand AS perassembly, p.unit,
+ p.bin, p.sellprice, p.listprice, p.lastcost, p.rop,
+ p.avgcost,
+ p.weight, p.priceupdate, p.image, p.drawing, p.microfiche,
+ p.assembly, pg.partsgroup, p.notes
+ $makemodelflds $assemblyflds
+ |;
+ } else {
+ # replace p.onhand with a.qty AS onhand
+ $flds =~ s/p.onhand/a.qty AS perassembly/;
+ }
+
+ for (@{ $form->{parts} }) {
+ push @a, $_;
+ $_->{perassembly} = 1;
+ $flds =~ s/p\.onhand*AS perassembly/p\.onhand, a\.qty AS perassembly/;
+ push @a, &include_assembly($dbh, $myconfig, $form, $_->{id}, $flds, $makemodeljoin);
+ push @a, {id => $_->{id}, assemblyitem => 1}; # this is just for
+ # adding a blank line
+ }
+
+ # copy assemblies to $form->{parts}
+ @{ $form->{parts} } = @a;
+
+ }
+
+
+ @a = ();
+ if (($form->{warehouse} ne "") || $form->{l_warehouse}) {
+
+ if ($form->{warehouse} ne "") {
+ ($null, $var) = split /--/, $form->{warehouse};
+ $var *= 1;
+ $query = qq|SELECT SUM(qty) AS onhand, '$null' AS description
+ FROM inventory
+ WHERE warehouse_id = $var
+ AND parts_id = ?|;
+ } else {
+ $query = qq|SELECT SUM(i.qty) AS onhand, w.description AS warehouse
+ FROM inventory i
+ JOIN warehouse w ON (w.id = i.warehouse_id)
+ WHERE i.parts_id = ?
+ GROUP BY w.description|;
+ }
+
+ $sth = $dbh->prepare($query) || $form->dberror($query);
+
+ for (@{ $form->{parts} }) {
+
+ $sth->execute($_->{id}) || $form->dberror($query);
+
+ if ($form->{warehouse} ne "") {
+
+ $ref = $sth->fetchrow_hashref(NAME_lc);
+ if ($ref->{onhand} != 0) {
+ $_->{onhand} = $ref->{onhand};
+ push @a, $_;
+ }
+
+ } else {
+
+ push @a, $_;
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ if ($ref->{onhand} > 0) {
+ push @a, $ref;
+ }
+ }
+ }
+
+ $sth->finish;
+ }
+
+ @{ $form->{parts} } = @a;
+
+ }
+
+ $dbh->disconnect;
+
+}
+
+
+sub include_assembly {
+ my ($dbh, $myconfig, $form, $id, $flds, $makemodeljoin) = @_;
+
+ $form->{stagger}++;
+ if ($form->{stagger} > $form->{pncol}) {
+ $form->{pncol} = $form->{stagger};
+ }
+
+ $form->{$id} = 1;
+
+ my %oid = ('Pg' => 'a.oid',
+ 'PgPP' => 'a.oid',
+ 'Oracle' => 'a.rowid',
+ 'DB2' => '1=1'
+ );
+
+ my @a = qw(partnumber description bin);
+ if ($form->{sort} eq 'partnumber') {
+ $sortorder = "$oid{$myconfig->{dbdriver}}";
+ } else {
+ @a = grep !/$form->{sort}/, @a;
+ $sortorder = "$form->{sort} $form->{direction}, ". join ',', @a;
+ }
+
+ @a = ();
+ my $query = qq|SELECT $flds
+ FROM parts p
+ JOIN assembly a ON (a.parts_id = p.id)
+ LEFT JOIN partsgroup pg ON (pg.id = p.id)
+ LEFT JOIN chart c1 ON (c1.id = p.inventory_accno_id)
+ LEFT JOIN chart c2 ON (c2.id = p.income_accno_id)
+ LEFT JOIN chart c3 ON (c3.id = p.expense_accno_id)
+ $makemodeljoin
+ WHERE a.id = $id
+ ORDER BY $sortorder|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ $ref->{assemblyitem} = 1;
+ $ref->{stagger} = $form->{stagger};
+
+ push @a, $ref;
+ if ($ref->{assembly} && !$form->{$ref->{id}}) {
+ push @a, &include_assembly($dbh, $myconfig, $form, $ref->{id}, $flds, $makemodeljoin);
+ if ($form->{stagger} > $form->{pncol}) {
+ $form->{pncol} = $form->{stagger};
+ }
+ }
+ }
+ $sth->finish;
+
+ $form->{$id} = 0;
+ $form->{stagger}--;
+
+ @a;
+
+}
+
+
+sub requirements {
+ my ($self, $myconfig, $form) = @_;
+
+ my $null;
+ my $var;
+ my $ref;
+
+ my $where = qq|p.obsolete = '0'|;
+ my $dwhere;
+
+ for (qw(partnumber description)) {
+ if ($form->{$_} ne "") {
+ $var = $form->like(lc $form->{$_});
+ $where .= qq| AND lower(p.$_) LIKE '$var'|;
+ }
+ }
+
+ if ($form->{partsgroup} ne "") {
+ ($null, $var) = split /--/, $form->{partsgroup};
+ $where .= qq| AND p.partsgroup_id = $var|;
+ }
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my ($transdatefrom, $transdateto);
+ if ($form->{year}) {
+ ($transdatefrom, $transdateto) = $form->from_to($form->{year}, '01', 12);
+
+ $dwhere = qq| AND a.transdate >= '$transdatefrom'
+ AND a.transdate <= '$transdateto'|;
+ }
+
+ $query = qq|SELECT p.id, p.partnumber, p.description,
+ sum(i.qty) AS qty, p.onhand,
+ extract(MONTH FROM a.transdate) AS month,
+ '0' AS so, '0' AS po
+ FROM invoice i
+ JOIN parts p ON (p.id = i.parts_id)
+ JOIN ar a ON (a.id = i.trans_id)
+ WHERE $where
+ $dwhere
+ AND p.inventory_accno_id > 0
+ GROUP BY p.id, p.partnumber, p.description, p.onhand,
+ extract(MONTH FROM a.transdate)|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my %parts;
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ $parts{$ref->{id}} = $ref;
+ }
+ $sth->finish;
+
+ my %ofld = ( customer => so,
+ vendor => po );
+
+ for (qw(customer vendor)) {
+ $query = qq|SELECT p.id, p.partnumber, p.description,
+ sum(qty) - sum(ship) AS $ofld{$_}, p.onhand,
+ 0 AS month
+ FROM orderitems i
+ JOIN parts p ON (p.id = i.parts_id)
+ JOIN oe a ON (a.id = i.trans_id)
+ WHERE $where
+ AND p.inventory_accno_id > 0
+ AND p.assembly = '0'
+ AND a.closed = '0'
+ AND a.${_}_id > 0
+ GROUP BY p.id, p.partnumber, p.description, p.onhand,
+ month|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ if (exists $parts{$ref->{id}}->{$ofld{$_}}) {
+ $parts{$ref->{id}}->{$ofld{$_}} += $ref->{$ofld{$_}};
+ } else {
+ $parts{$ref->{id}} = $ref;
+ }
+ }
+ $sth->finish;
+ }
+
+ # add assemblies from open sales orders
+ $query = qq|SELECT DISTINCT a.id AS orderid, b.id, i.qty - i.ship AS qty
+ FROM parts p
+ JOIN assembly b ON (b.parts_id = p.id)
+ JOIN orderitems i ON (i.parts_id = b.id)
+ JOIN oe a ON (a.id = i.trans_id)
+ WHERE $where
+ AND (p.inventory_accno_id > 0 OR p.assembly = '1')
+ AND a.closed = '0'|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ &requirements_assembly($dbh, $form, \%parts, $ref->{id}, $ref->{qty}, $where) if $ref->{qty};
+ }
+ $sth->finish;
+
+ $dbh->disconnect;
+
+ for (sort { $parts{$a}->{$form->{sort}} cmp $parts{$b}->{$form->{sort}} } keys %parts) {
+ push @{ $form->{parts} }, $parts{$_};
+ }
+
+}
+
+
+sub requirements_assembly {
+ my ($dbh, $form, $parts, $id, $qty, $where) = @_;
+
+ # assemblies
+ my $query = qq|SELECT p.id, p.partnumber, p.description,
+ a.qty * $qty AS so, p.onhand, p.assembly,
+ p.partsgroup_id
+ FROM assembly a
+ JOIN parts p ON (p.id = a.parts_id)
+ WHERE $where
+ AND a.id = $id
+ AND p.inventory_accno_id > 0
+
+ UNION
+
+ SELECT p.id, p.partnumber, p.description,
+ a.qty * $qty AS so, p.onhand, p.assembly,
+ p.partsgroup_id
+ FROM assembly a
+ JOIN parts p ON (p.id = a.parts_id)
+ WHERE a.id = $id
+ AND p.assembly = '1'|;
+
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+ if ($ref->{assembly}) {
+ &requirements_assembly($dbh, $form, $parts, $ref->{id}, $ref->{so}, $where);
+ next;
+ }
+
+ if (exists $parts->{$ref->{id}}{so}) {
+ $parts->{$ref->{id}}{so} += $ref->{so};
+ } else {
+ $parts->{$ref->{id}} = $ref;
+ }
+ }
+ $sth->finish;
+
+}
+
+
+sub create_links {
+ my ($self, $module, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $ref;
+
+ my $query = qq|SELECT accno, description, link
+ FROM chart
+ WHERE link LIKE '%$module%'
+ ORDER BY accno|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ foreach my $key (split /:/, $ref->{link}) {
+ if ($key =~ /$module/) {
+ push @{ $form->{"${module}_links"}{$key} }, { accno => $ref->{accno},
+ description => $ref->{description} };
+ }
+ }
+ }
+ $sth->finish;
+
+ if ($form->{item} ne 'assembly') {
+ $query = qq|SELECT count(*) FROM vendor|;
+ my ($count) = $dbh->selectrow_array($query);
+
+ if ($count < $myconfig->{vclimit}) {
+ $query = qq|SELECT id, name
+ FROM vendor
+ ORDER BY name|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{all_vendor} }, $ref;
+ }
+ $sth->finish;
+ }
+ }
+
+ # pricegroups, customers
+ $query = qq|SELECT count(*) FROM customer|;
+ ($count) = $dbh->selectrow_array($query);
+
+ if ($count < $myconfig->{vclimit}) {
+ $query = qq|SELECT id, name
+ FROM customer
+ ORDER BY name|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{all_customer} }, $ref;
+ }
+ $sth->finish;
+ }
+
+ $query = qq|SELECT id, pricegroup
+ FROM pricegroup
+ ORDER BY pricegroup|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{all_pricegroup} }, $ref;
+ }
+ $sth->finish;
+
+
+ if ($form->{id}) {
+ $query = qq|SELECT weightunit, curr AS currencies
+ FROM defaults|;
+ ($form->{weightunit}, $form->{currencies}) = $dbh->selectrow_array($query);
+
+ } else {
+ $query = qq|SELECT d.weightunit, current_date AS priceupdate,
+ d.curr AS currencies,
+ c1.accno AS inventory_accno, c1.description AS inventory_description,
+ c2.accno AS income_accno, c2.description AS income_description,
+ c3.accno AS expense_accno, c3.description AS expense_description
+ FROM defaults d
+ LEFT JOIN chart c1 ON (d.inventory_accno_id = c1.id)
+ LEFT JOIN chart c2 ON (d.income_accno_id = c2.id)
+ LEFT JOIN chart c3 ON (d.expense_accno_id = c3.id)|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ $ref = $sth->fetchrow_hashref(NAME_lc);
+ for (qw(weightunit priceupdate currencies)) { $form->{$_} = $ref->{$_} }
+ # setup accno hash, {amount} is used in create_links
+ for (qw(inventory income expense)) { $form->{amount}{"IC_$_"} = { accno => $ref->{"${_}_accno"}, description => $ref->{"${_}_description"} } }
+
+ $sth->finish;
+ }
+
+ $dbh->disconnect;
+
+}
+
+
+sub get_warehouses {
+ my ($self, $myconfig, $form) = @_;
+
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $query = qq|SELECT id, description
+ FROM warehouse|;
+
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{all_warehouse} }, $ref;
+ }
+ $sth->finish;
+
+ $dbh->disconnect;
+
+}
+
+1;
+
diff --git a/LedgerSMB/IR.pm b/LedgerSMB/IR.pm
new file mode 100755
index 00000000..d06a233c
--- /dev/null
+++ b/LedgerSMB/IR.pm
@@ -0,0 +1,1123 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has NOT undergone whitespace cleanup.
+#
+#======================================================================
+#
+# Inventory received module
+#
+#======================================================================
+
+package IR;
+
+
+sub post_invoice {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database, turn off autocommit
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ my $query;
+ my $sth;
+ my $ref;
+ my $null;
+ my $project_id;
+ my $exchangerate = 0;
+ my $allocated;
+ my $taxrate;
+ my $taxamount;
+ my $diff = 0;
+ my $item;
+ my $invoice_id;
+ my $keepcleared;
+
+ ($null, $form->{employee_id}) = split /--/, $form->{employee};
+ unless ($form->{employee_id}) {
+ ($form->{employee}, $form->{employee_id}) = $form->get_employee($dbh);
+ }
+
+ ($null, $form->{department_id}) = split(/--/, $form->{department});
+ $form->{department_id} *= 1;
+
+ $query = qq|SELECT fxgain_accno_id, fxloss_accno_id
+ FROM defaults d|;
+ my ($fxgain_accno_id, $fxloss_accno_id) = $dbh->selectrow_array($query);
+
+ $query = qq|SELECT inventory_accno_id, income_accno_id, expense_accno_id
+ FROM parts
+ WHERE id = ?|;
+ my $pth = $dbh->prepare($query) || $form->dberror($query);
+
+ my %updparts = ();
+
+ if ($form->{id}) {
+ $keepcleared = 1;
+ $query = qq|SELECT id FROM ap
+ WHERE id = $form->{id}|;
+
+ if ($dbh->selectrow_array($query)) {
+ $query = qq|SELECT p.id, p.inventory_accno_id, p.income_accno_id
+ FROM invoice i
+ JOIN parts p ON (p.id = i.parts_id)
+ WHERE i.trans_id = $form->{id}|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+ while ($ref = $sth->fetchrow_hashref) {
+ if ($ref->{inventory_accno_id} && $ref->{income_accno_id}) {
+ $updparts{$ref->{id}} = 1;
+ }
+ }
+ $sth->finish;
+
+ &reverse_invoice($dbh, $form);
+ } else {
+ $query = qq|INSERT INTO ap (id)
+ VALUES ($form->{id})|;
+ $dbh->do($query) || $form->dberror($query);
+ }
+ }
+
+ my $uid = localtime;
+ $uid .= "$$";
+
+ if (! $form->{id}) {
+
+ $query = qq|INSERT INTO ap (invnumber, employee_id)
+ VALUES ('$uid', (SELECT id FROM employee
+ WHERE login = '$form->{login}'))|;
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|SELECT id FROM ap
+ WHERE invnumber = '$uid'|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ ($form->{id}) = $sth->fetchrow_array;
+ $sth->finish;
+
+ }
+
+ my $amount;
+ my $grossamount;
+ my $allocated;
+ my $invamount = 0;
+ my $invnetamount = 0;
+
+ if ($form->{currency} eq $form->{defaultcurrency}) {
+ $form->{exchangerate} = 1;
+ } else {
+ $exchangerate = $form->check_exchangerate($myconfig, $form->{currency}, $form->{transdate}, 'sell');
+ }
+
+ $form->{exchangerate} = ($exchangerate) ? $exchangerate : $form->parse_amount($myconfig, $form->{exchangerate});
+
+ for my $i (1 .. $form->{rowcount}) {
+ $form->{"qty_$i"} = $form->parse_amount($myconfig, $form->{"qty_$i"});
+
+ if ($form->{"qty_$i"}) {
+
+ $pth->execute($form->{"id_$i"});
+ $ref = $pth->fetchrow_hashref(NAME_lc);
+ for (keys %$ref) {
+ $form->{"${_}_$i"} = $ref->{$_};
+ }
+ $pth->finish;
+
+ # project
+ $project_id = 'NULL';
+ if ($form->{"projectnumber_$i"} ne "") {
+ ($null, $project_id) = split /--/, $form->{"projectnumber_$i"};
+ }
+
+ # undo discount formatting
+ $form->{"discount_$i"} = $form->parse_amount($myconfig, $form->{"discount_$i"}) / 100;
+
+ # keep entered selling price
+ my $fxsellprice = $form->parse_amount($myconfig, $form->{"sellprice_$i"});
+
+ my ($dec) = ($fxsellprice =~ /\.(\d+)/);
+ $dec = length $dec;
+ my $decimalplaces = ($dec > 2) ? $dec : 2;
+
+ # deduct discount
+ $form->{"sellprice_$i"} = $fxsellprice - $form->round_amount($fxsellprice * $form->{"discount_$i"}, $decimalplaces);
+
+ # linetotal
+ my $fxlinetotal = $form->round_amount($form->{"sellprice_$i"} * $form->{"qty_$i"}, 2);
+
+ $amount = $fxlinetotal * $form->{exchangerate};
+ my $linetotal = $form->round_amount($amount, 2);
+ $fxdiff += $amount - $linetotal;
+
+ @taxaccounts = split / /, $form->{"taxaccounts_$i"};
+
+ $ml = 1;
+ $tax = 0;
+ $fxtax = 0;
+
+ for (0 .. 1) {
+ $taxrate = 0;
+
+ # add tax rates
+ for (@taxaccounts) {
+ $taxrate += $form->{"${_}_rate"} if ($form->{"${_}_rate"} * $ml) > 0;
+ }
+
+ if ($form->{taxincluded}) {
+ $tax += $amount = $linetotal * ($taxrate / (1 + ($taxrate * $ml)));
+ $form->{"sellprice_$i"} -= $amount / $form->{"qty_$i"};
+ } else {
+ $tax += $amount = $linetotal * $taxrate;
+ $fxtax += $fxlinetotal * $taxrate;
+ }
+
+ for (@taxaccounts) {
+ $form->{acc_trans}{$form->{id}}{$_}{amount} += $amount * $form->{"${_}_rate"} / $taxrate if ($form->{"${_}_rate"} * $ml) > 0;
+ }
+
+ $ml = -1;
+ }
+
+ $grossamount = $form->round_amount($linetotal, 2);
+
+ if ($form->{taxincluded}) {
+ $amount = $form->round_amount($tax, 2);
+ $linetotal -= $form->round_amount($tax - $diff, 2);
+ $diff = ($amount - $tax);
+ }
+
+ $amount = $form->round_amount($linetotal, 2);
+ $allocated = 0;
+
+ # adjust and round sellprice
+ $form->{"sellprice_$i"} = $form->round_amount($form->{"sellprice_$i"} * $form->{exchangerate}, $decimalplaces);
+
+ # save detail record in invoice table
+ $query = qq|INSERT INTO invoice (description)
+ VALUES ('$uid')|;
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|SELECT id FROM invoice
+ WHERE description = '$uid'|;
+ ($invoice_id) = $dbh->selectrow_array($query);
+
+ $query = qq|UPDATE invoice SET
+ trans_id = $form->{id},
+ parts_id = $form->{"id_$i"},
+ description = |.$dbh->quote($form->{"description_$i"}).qq|,
+ qty = $form->{"qty_$i"} * -1,
+ sellprice = $form->{"sellprice_$i"},
+ fxsellprice = $fxsellprice,
+ discount = $form->{"discount_$i"},
+ allocated = $allocated,
+ unit = |.$dbh->quote($form->{"unit_$i"}).qq|,
+ deliverydate = |.$form->dbquote($form->{"deliverydate_$i"}, SQL_DATE).qq|,
+ project_id = $project_id,
+ serialnumber = |.$dbh->quote($form->{"serialnumber_$i"}).qq|,
+ notes = |.$dbh->quote($form->{"notes_$i"}).qq|
+ WHERE id = $invoice_id|;
+ $dbh->do($query) || $form->dberror($query);
+
+
+ if ($form->{"inventory_accno_id_$i"}) {
+
+ # add purchase to inventory
+ push @{ $form->{acc_trans}{lineitems} }, {
+ chart_id => $form->{"inventory_accno_id_$i"},
+ amount => $amount,
+ fxgrossamount => $fxlinetotal + $form->round_amount($fxtax, 2),
+ grossamount => $grossamount,
+ project_id => $project_id,
+ invoice_id => $invoice_id };
+
+
+ $updparts{$form->{"id_$i"}} = 1;
+
+ # update parts table
+ $form->update_balance($dbh,
+ "parts",
+ "onhand",
+ qq|id = $form->{"id_$i"}|,
+ $form->{"qty_$i"}) unless $form->{shipped};
+
+
+ # check if we sold the item
+ $query = qq|SELECT i.id, i.qty, i.allocated, i.trans_id, i.project_id,
+ p.inventory_accno_id, p.expense_accno_id, a.transdate
+ FROM invoice i
+ JOIN parts p ON (p.id = i.parts_id)
+ JOIN ar a ON (a.id = i.trans_id)
+ WHERE i.parts_id = $form->{"id_$i"}
+ AND (i.qty + i.allocated) > 0
+ ORDER BY transdate|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my $totalqty = $form->{"qty_$i"};
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+
+ my $qty = $ref->{qty} + $ref->{allocated};
+
+ if (($qty - $totalqty) > 0) {
+ $qty = $totalqty;
+ }
+
+ $linetotal = $form->round_amount($form->{"sellprice_$i"} * $qty, 2);
+ $ref->{project_id} ||= 'NULL';
+
+ # add entry for inventory, this one is for the sold item
+ if ($linetotal) {
+ $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount,
+ transdate, project_id, invoice_id)
+ VALUES ($ref->{trans_id}, $ref->{inventory_accno_id},
+ $linetotal, '$ref->{transdate}', $ref->{project_id},
+ $invoice_id)|;
+ $dbh->do($query) || $form->dberror($query);
+
+ # add expense
+ $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount,
+ transdate, project_id, invoice_id)
+ VALUES ($ref->{trans_id}, $ref->{expense_accno_id},
+ |. ($linetotal * -1) .qq|, '$ref->{transdate}',
+ $ref->{project_id}, $invoice_id)|;
+ $dbh->do($query) || $form->dberror($query);
+ }
+
+ # update allocated for sold item
+ $form->update_balance($dbh,
+ "invoice",
+ "allocated",
+ qq|id = $ref->{id}|,
+ $qty * -1);
+
+ $allocated += $qty;
+
+ last if (($totalqty -= $qty) <= 0);
+ }
+
+ $sth->finish;
+
+ } else {
+
+ # add purchase to expense
+ push @{ $form->{acc_trans}{lineitems} }, {
+ chart_id => $form->{"expense_accno_id_$i"},
+ amount => $amount,
+ fxgrossamount => $fxlinetotal + $form->round_amount($fxtax, 2),
+ grossamount => $grossamount,
+ project_id => $project_id,
+ invoice_id => $invoice_id };
+
+ }
+ }
+ }
+
+ $form->{paid} = 0;
+ for $i (1 .. $form->{paidaccounts}) {
+ $form->{"paid_$i"} = $form->parse_amount($myconfig, $form->{"paid_$i"});
+ $form->{paid} += $form->{"paid_$i"};
+ $form->{datepaid} = $form->{"datepaid_$i"} if ($form->{"datepaid_$i"});
+ }
+
+ # add lineitems + tax
+ $amount = 0;
+ $grossamount = 0;
+ $fxgrossamount = 0;
+ for (@{ $form->{acc_trans}{lineitems} }) {
+ $amount += $_->{amount};
+ $grossamount += $_->{grossamount};
+ $fxgrossamount += $_->{fxgrossamount};
+ }
+ $invnetamount = $amount;
+
+ $amount = 0;
+ for (split / /, $form->{taxaccounts}) {
+ $amount += $form->{acc_trans}{$form->{id}}{$_}{amount} = $form->round_amount($form->{acc_trans}{$form->{id}}{$_}{amount}, 2);
+ $form->{acc_trans}{$form->{id}}{$_}{amount} *= -1;
+ }
+ $invamount = $invnetamount + $amount;
+
+ $diff = 0;
+ if ($form->{taxincluded}) {
+ $diff = $form->round_amount($grossamount - $invamount, 2);
+ $invamount += $diff;
+ }
+ $fxdiff = $form->round_amount($fxdiff,2);
+ $invnetamount += $fxdiff;
+ $invamount += $fxdiff;
+
+ if ($form->round_amount($form->{paid} - $fxgrossamount,2) == 0) {
+ $form->{paid} = $invamount;
+ } else {
+ $form->{paid} = $form->round_amount($form->{paid} * $form->{exchangerate}, 2);
+ }
+
+ foreach $ref (sort { $b->{amount} <=> $a->{amount} } @ { $form->{acc_trans}{lineitems} }) {
+ $amount = $ref->{amount} + $diff + $fxdiff;
+ $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount,
+ transdate, project_id, invoice_id)
+ VALUES ($form->{id}, $ref->{chart_id}, $amount * -1,
+ '$form->{transdate}', $ref->{project_id}, $ref->{invoice_id})|;
+ $dbh->do($query) || $form->dberror($query);
+ $diff = 0;
+ $fxdiff = 0;
+ }
+
+ $form->{payables} = $invamount;
+
+ delete $form->{acc_trans}{lineitems};
+
+ # update exchangerate
+ if (($form->{currency} ne $form->{defaultcurrency}) && !$exchangerate) {
+ $form->update_exchangerate($dbh, $form->{currency}, $form->{transdate}, 0, $form->{exchangerate});
+ }
+
+ # record payable
+ if ($form->{payables}) {
+ ($accno) = split /--/, $form->{AP};
+
+ $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount,
+ transdate)
+ VALUES ($form->{id},
+ (SELECT id FROM chart
+ WHERE accno = '$accno'),
+ $form->{payables}, '$form->{transdate}')|;
+ $dbh->do($query) || $form->dberror($query);
+ }
+
+ foreach my $trans_id (keys %{$form->{acc_trans}}) {
+ foreach my $accno (keys %{ $form->{acc_trans}{$trans_id} }) {
+ $amount = $form->round_amount($form->{acc_trans}{$trans_id}{$accno}{amount}, 2);
+ if ($amount) {
+ $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount,
+ transdate)
+ VALUES ($trans_id, (SELECT id FROM chart
+ WHERE accno = '$accno'),
+ $amount, '$form->{transdate}')|;
+ $dbh->do($query) || $form->dberror($query);
+ }
+ }
+ }
+
+ # if there is no amount but a payment record payable
+ if ($invamount == 0) {
+ $form->{payables} = 1;
+ }
+
+ my $cleared = 0;
+
+ # record payments and offsetting AP
+ for my $i (1 .. $form->{paidaccounts}) {
+
+ if ($form->{"paid_$i"}) {
+ my ($accno) = split /--/, $form->{"AP_paid_$i"};
+ $form->{"datepaid_$i"} = $form->{transdate} unless ($form->{"datepaid_$i"});
+ $form->{datepaid} = $form->{"datepaid_$i"};
+
+ $exchangerate = 0;
+
+ if ($form->{currency} eq $form->{defaultcurrency}) {
+ $form->{"exchangerate_$i"} = 1;
+ } else {
+ $exchangerate = $form->check_exchangerate($myconfig, $form->{currency}, $form->{"datepaid_$i"}, 'sell');
+
+ $form->{"exchangerate_$i"} = ($exchangerate) ? $exchangerate : $form->parse_amount($myconfig, $form->{"exchangerate_$i"});
+ }
+
+
+ # record AP
+ $amount = ($form->round_amount($form->{"paid_$i"} * $form->{exchangerate}, 2)) * -1;
+
+ if ($form->{payables}) {
+ $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount,
+ transdate)
+ VALUES ($form->{id}, (SELECT id FROM chart
+ WHERE accno = '$form->{AP}'),
+ $amount, '$form->{"datepaid_$i"}')|;
+ $dbh->do($query) || $form->dberror($query);
+ }
+
+ if ($keepcleared) {
+ $cleared = ($form->{"cleared_$i"}) ? 1 : 0;
+ }
+
+ # record payment
+ $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate,
+ source, memo, cleared)
+ VALUES ($form->{id}, (SELECT id FROM chart
+ WHERE accno = '$accno'),
+ $form->{"paid_$i"}, '$form->{"datepaid_$i"}', |
+ .$dbh->quote($form->{"source_$i"}).qq|, |
+ .$dbh->quote($form->{"memo_$i"}).qq|, '$cleared')|;
+ $dbh->do($query) || $form->dberror($query);
+
+ # exchangerate difference
+ $amount = $form->round_amount($form->{"paid_$i"} * $form->{"exchangerate_$i"} - $form->{"paid_$i"}, 2);
+
+ if ($amount) {
+ $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount,
+ transdate, source, fx_transaction, cleared)
+ VALUES ($form->{id}, (SELECT id FROM chart
+ WHERE accno = '$accno'),
+ $amount, '$form->{"datepaid_$i"}', |
+ .$dbh->quote($form->{"source_$i"}).qq|, '1', '$cleared')|;
+ $dbh->do($query) || $form->dberror($query);
+ }
+
+ # gain/loss
+ $amount = $form->round_amount($form->round_amount($form->{"paid_$i"} * $form->{exchangerate},2) - $form->round_amount($form->{"paid_$i"} * $form->{"exchangerate_$i"},2), 2);
+
+ if ($amount) {
+ my $accno_id = ($amount > 0) ? $fxgain_accno_id : $fxloss_accno_id;
+ $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount,
+ transdate, fx_transaction, cleared)
+ VALUES ($form->{id}, $accno_id,
+ $amount, '$form->{"datepaid_$i"}', '1', '$cleared')|;
+ $dbh->do($query) || $form->dberror($query);
+ }
+
+ # update exchange rate
+ if (($form->{currency} ne $form->{defaultcurrency}) && !$exchangerate) {
+ $form->update_exchangerate($dbh, $form->{currency}, $form->{"datepaid_$i"}, 0, $form->{"exchangerate_$i"});
+ }
+ }
+ }
+
+ # set values which could be empty
+ $form->{taxincluded} *= 1;
+
+ $form->{invnumber} = $form->update_defaults($myconfig, "vinumber", $dbh) unless $form->{invnumber};
+
+ # save AP record
+ $query = qq|UPDATE ap set
+ invnumber = |.$dbh->quote($form->{invnumber}).qq|,
+ ordnumber = |.$dbh->quote($form->{ordnumber}).qq|,
+ quonumber = |.$dbh->quote($form->{quonumber}).qq|,
+ transdate = '$form->{transdate}',
+ vendor_id = $form->{vendor_id},
+ amount = $invamount,
+ netamount = $invnetamount,
+ paid = $form->{paid},
+ datepaid = |.$form->dbquote($form->{datepaid}, SQL_DATE).qq|,
+ duedate = |.$form->dbquote($form->{duedate}, SQL_DATE).qq|,
+ invoice = '1',
+ shippingpoint = |.$dbh->quote($form->{shippingpoint}).qq|,
+ shipvia = |.$dbh->quote($form->{shipvia}).qq|,
+ taxincluded = '$form->{taxincluded}',
+ notes = |.$dbh->quote($form->{notes}).qq|,
+ intnotes = |.$dbh->quote($form->{intnotes}).qq|,
+ curr = '$form->{currency}',
+ department_id = $form->{department_id},
+ employee_id = $form->{employee_id},
+ language_code = '$form->{language_code}',
+ ponumber = |.$dbh->quote($form->{ponumber}).qq|
+ WHERE id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ # add shipto
+ $form->{name} = $form->{vendor};
+ $form->{name} =~ s/--$form->{vendor_id}//;
+ $form->add_shipto($dbh, $form->{id});
+
+ my %audittrail = ( tablename => 'ap',
+ reference => $form->{invnumber},
+ formname => $form->{type},
+ action => 'posted',
+ id => $form->{id} );
+
+ $form->audittrail($dbh, "", \%audittrail);
+
+ my $rc = $dbh->commit;
+
+ foreach $item (keys %updparts) {
+ $query = qq|UPDATE parts SET
+ avgcost = avgcost($item),
+ lastcost = lastcost($item)
+ WHERE id = $item|;
+ $dbh->do($query) || $form->dberror($query);
+ $dbh->commit;
+ }
+
+ $dbh->disconnect;
+ $rc;
+
+}
+
+
+
+sub reverse_invoice {
+ my ($dbh, $form) = @_;
+
+ my $query = qq|SELECT id FROM ap
+ WHERE id = $form->{id}|;
+ my ($id) = $dbh->selectrow_array($query);
+
+ return unless $id;
+
+ # reverse inventory items
+ $query = qq|SELECT i.parts_id, p.inventory_accno_id, p.expense_accno_id,
+ i.qty, i.allocated, i.sellprice, i.project_id
+ FROM invoice i, parts p
+ WHERE i.parts_id = p.id
+ AND i.trans_id = $form->{id}|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my $netamount = 0;
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+ $netamount += $form->round_amount($ref->{sellprice} * $ref->{qty} * -1, 2);
+
+ if ($ref->{inventory_accno_id}) {
+ # update onhand
+ $form->update_balance($dbh,
+ "parts",
+ "onhand",
+ qq|id = $ref->{parts_id}|,
+ $ref->{qty});
+
+ # if $ref->{allocated} > 0 than we sold that many items
+ if ($ref->{allocated} > 0) {
+
+ # get references for sold items
+ $query = qq|SELECT i.id, i.trans_id, i.allocated, a.transdate
+ FROM invoice i, ar a
+ WHERE i.parts_id = $ref->{parts_id}
+ AND i.allocated < 0
+ AND i.trans_id = a.id
+ ORDER BY transdate DESC|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while (my $pthref = $sth->fetchrow_hashref(NAME_lc)) {
+ my $qty = $ref->{allocated};
+
+ if (($ref->{allocated} + $pthref->{allocated}) > 0) {
+ $qty = $pthref->{allocated} * -1;
+ }
+
+ my $amount = $form->round_amount($ref->{sellprice} * $qty, 2);
+
+ #adjust allocated
+ $form->update_balance($dbh,
+ "invoice",
+ "allocated",
+ qq|id = $pthref->{id}|,
+ $qty);
+
+ # add reversal for sale
+ $ref->{project_id} *= 1;
+ $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount,
+ transdate, project_id)
+ VALUES ($pthref->{trans_id}, $ref->{expense_accno_id},
+ $amount, '$form->{transdate}', $ref->{project_id})|;
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount,
+ transdate, project_id)
+ VALUES ($pthref->{trans_id}, $ref->{inventory_accno_id},
+ $amount * -1, '$form->{transdate}', $ref->{project_id})|;
+ $dbh->do($query) || $form->dberror($query);
+
+ last if (($ref->{allocated} -= $qty) <= 0);
+ }
+ $sth->finish;
+ }
+ }
+ }
+ $sth->finish;
+
+ # delete acc_trans
+ $query = qq|DELETE FROM acc_trans
+ WHERE trans_id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ # delete invoice entries
+ $query = qq|DELETE FROM invoice
+ WHERE trans_id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|DELETE FROM shipto
+ WHERE trans_id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ $dbh->commit;
+
+}
+
+
+
+sub delete_invoice {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ my %audittrail = ( tablename => 'ap',
+ reference => $form->{invnumber},
+ formname => $form->{type},
+ action => 'deleted',
+ id => $form->{id} );
+
+ $form->audittrail($dbh, "", \%audittrail);
+
+ my $query = qq|SELECT parts_id FROM invoice
+ WHERE trans_id = $form->{id}|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my $item;
+ my %updparts = ();
+ while (($item) = $sth->fetchrow_array) {
+ $updparts{$item} = 1;
+ }
+ $sth->finish;
+
+ &reverse_invoice($dbh, $form);
+
+ # delete AP record
+ $query = qq|DELETE FROM ap
+ WHERE id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ # delete spool files
+ $query = qq|SELECT spoolfile FROM status
+ WHERE trans_id = $form->{id}
+ AND spoolfile IS NOT NULL|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my $spoolfile;
+ my @spoolfiles = ();
+
+ while (($spoolfile) = $sth->fetchrow_array) {
+ push @spoolfiles, $spoolfile;
+ }
+ $sth->finish;
+
+ # delete status entries
+ $query = qq|DELETE FROM status
+ WHERE trans_id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ my $rc = $dbh->commit;
+
+ if ($rc) {
+ foreach $item (keys %updparts) {
+ $query = qq|UPDATE parts SET
+ avgcost = avgcost($item),
+ lastcost = lastcost($item)
+ WHERE id = $item|;
+ $dbh->do($query) || $form->dberror($query);
+ $dbh->commit;
+ }
+
+ foreach $spoolfile (@spoolfiles) {
+ unlink "$spool/$spoolfile" if $spoolfile;
+ }
+ }
+
+ $dbh->disconnect;
+
+ $rc;
+
+}
+
+
+
+sub retrieve_invoice {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ my $query;
+
+ if ($form->{id}) {
+ # get default accounts and last invoice number
+ $query = qq|SELECT (SELECT c.accno FROM chart c
+ WHERE d.inventory_accno_id = c.id) AS inventory_accno,
+ (SELECT c.accno FROM chart c
+ WHERE d.income_accno_id = c.id) AS income_accno,
+ (SELECT c.accno FROM chart c
+ WHERE d.expense_accno_id = c.id) AS expense_accno,
+ (SELECT c.accno FROM chart c
+ WHERE d.fxgain_accno_id = c.id) AS fxgain_accno,
+ (SELECT c.accno FROM chart c
+ WHERE d.fxloss_accno_id = c.id) AS fxloss_accno,
+ d.curr AS currencies
+ FROM defaults d|;
+ } else {
+ $query = qq|SELECT (SELECT c.accno FROM chart c
+ WHERE d.inventory_accno_id = c.id) AS inventory_accno,
+ (SELECT c.accno FROM chart c
+ WHERE d.income_accno_id = c.id) AS income_accno,
+ (SELECT c.accno FROM chart c
+ WHERE d.expense_accno_id = c.id) AS expense_accno,
+ (SELECT c.accno FROM chart c
+ WHERE d.fxgain_accno_id = c.id) AS fxgain_accno,
+ (SELECT c.accno FROM chart c
+ WHERE d.fxloss_accno_id = c.id) AS fxloss_accno,
+ d.curr AS currencies,
+ current_date AS transdate
+ FROM defaults d|;
+ }
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my $ref = $sth->fetchrow_hashref(NAME_lc);
+ for (keys %$ref) {
+ $form->{$_} = $ref->{$_};
+ }
+ $sth->finish;
+
+
+ if ($form->{id}) {
+
+ # retrieve invoice
+ $query = qq|SELECT a.invnumber, a.transdate, a.duedate,
+ a.ordnumber, a.quonumber, a.paid, a.taxincluded, a.notes,
+ a.intnotes, a.curr AS currency, a.vendor_id, a.language_code,
+ a.ponumber
+ FROM ap a
+ WHERE id = $form->{id}|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ $ref = $sth->fetchrow_hashref(NAME_lc);
+ for (keys %$ref) {
+ $form->{$_} = $ref->{$_};
+ }
+ $sth->finish;
+
+ # get shipto
+ $query = qq|SELECT * FROM shipto
+ WHERE trans_id = $form->{id}|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ $ref = $sth->fetchrow_hashref(NAME_lc);
+ for (keys %$ref) {
+ $form->{$_} = $ref->{$_};
+ }
+ $sth->finish;
+
+ # retrieve individual items
+ $query = qq|SELECT
+ p.partnumber, i.description, i.qty, i.fxsellprice, i.sellprice,
+ i.parts_id AS id, i.unit, p.bin, i.deliverydate,
+ pr.projectnumber,
+ i.project_id, i.serialnumber, i.discount, i.notes,
+ pg.partsgroup, p.partsgroup_id, p.partnumber AS sku,
+ p.weight, p.onhand,
+ p.inventory_accno_id, p.income_accno_id, p.expense_accno_id,
+ t.description AS partsgrouptranslation
+ FROM invoice i
+ JOIN parts p ON (i.parts_id = p.id)
+ LEFT JOIN project pr ON (i.project_id = pr.id)
+ LEFT JOIN partsgroup pg ON (pg.id = p.partsgroup_id)
+ LEFT JOIN translation t ON (t.trans_id = p.partsgroup_id AND t.language_code = '$form->{language_code}')
+ WHERE i.trans_id = $form->{id}
+ ORDER BY i.id|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ # exchangerate defaults
+ &exchangerate_defaults($dbh, $form);
+
+ # price matrix and vendor partnumber
+ $query = qq|SELECT partnumber
+ FROM partsvendor
+ WHERE parts_id = ?
+ AND vendor_id = $form->{vendor_id}|;
+ my $pmh = $dbh->prepare($query) || $form->dberror($query);
+
+ # tax rates for part
+ $query = qq|SELECT c.accno
+ FROM chart c
+ JOIN partstax pt ON (pt.chart_id = c.id)
+ WHERE pt.parts_id = ?|;
+ my $tth = $dbh->prepare($query);
+
+ my $ptref;
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+
+ my ($dec) = ($ref->{fxsellprice} =~ /\.(\d+)/);
+ $dec = length $dec;
+ my $decimalplaces = ($dec > 2) ? $dec : 2;
+
+ $tth->execute($ref->{id});
+ $ref->{taxaccounts} = "";
+ my $taxrate = 0;
+
+ while ($ptref = $tth->fetchrow_hashref(NAME_lc)) {
+ $ref->{taxaccounts} .= "$ptref->{accno} ";
+ $taxrate += $form->{"$ptref->{accno}_rate"};
+ }
+
+ $tth->finish;
+ chop $ref->{taxaccounts};
+
+ # price matrix
+ $ref->{sellprice} = $form->round_amount($ref->{fxsellprice} * $form->{$form->{currency}}, $decimalplaces);
+ &price_matrix($pmh, $ref, $decimalplaces, $form);
+
+ $ref->{sellprice} = $ref->{fxsellprice};
+ $ref->{qty} *= -1;
+
+ $ref->{partsgroup} = $ref->{partsgrouptranslation} if $ref->{partsgrouptranslation};
+
+ push @{ $form->{invoice_details} }, $ref;
+
+ }
+
+ $sth->finish;
+
+ }
+
+
+ my $rc = $dbh->commit;
+ $dbh->disconnect;
+
+ $rc;
+
+}
+
+
+sub retrieve_item {
+ my ($self, $myconfig, $form) = @_;
+
+ my $i = $form->{rowcount};
+ my $null;
+ my $var;
+
+ # don't include assemblies or obsolete parts
+ my $where = "WHERE p.assembly = '0' AND p.obsolete = '0'";
+
+ if ($form->{"partnumber_$i"} ne "") {
+ $var = $form->like(lc $form->{"partnumber_$i"});
+ $where .= " AND lower(p.partnumber) LIKE '$var'";
+ }
+
+ if ($form->{"description_$i"} ne "") {
+ $var = $form->like(lc $form->{"description_$i"});
+ if ($form->{language_code} ne "") {
+ $where .= " AND lower(t1.description) LIKE '$var'";
+ } else {
+ $where .= " AND lower(p.description) LIKE '$var'";
+ }
+ }
+
+ if ($form->{"partsgroup_$i"} ne "") {
+ ($null, $var) = split /--/, $form->{"partsgroup_$i"};
+ $var *= 1;
+ $where .= qq| AND p.partsgroup_id = $var|;
+ }
+
+ if ($form->{"description_$i"} ne "") {
+ $where .= " ORDER BY 3";
+ } else {
+ $where .= " ORDER BY 2";
+ }
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $query = qq|SELECT p.id, p.partnumber, p.description,
+ pg.partsgroup, p.partsgroup_id,
+ p.lastcost AS sellprice, p.unit, p.bin, p.onhand, p.notes,
+ p.inventory_accno_id, p.income_accno_id, p.expense_accno_id,
+ p.partnumber AS sku, p.weight,
+ t1.description AS translation,
+ t2.description AS grouptranslation
+ FROM parts p
+ LEFT JOIN partsgroup pg ON (pg.id = p.partsgroup_id)
+ LEFT JOIN translation t1 ON (t1.trans_id = p.id AND t1.language_code = '$form->{language_code}')
+ LEFT JOIN translation t2 ON (t2.trans_id = p.partsgroup_id AND t2.language_code = '$form->{language_code}')
+ $where|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ # foreign currency
+ &exchangerate_defaults($dbh, $form);
+
+ # taxes
+ $query = qq|SELECT c.accno
+ FROM chart c
+ JOIN partstax pt ON (pt.chart_id = c.id)
+ WHERE pt.parts_id = ?|;
+ my $tth = $dbh->prepare($query) || $form->dberror($query);
+
+ # price matrix
+ $query = qq|SELECT p.*
+ FROM partsvendor p
+ WHERE p.parts_id = ?
+ AND vendor_id = $form->{vendor_id}|;
+ my $pmh = $dbh->prepare($query) || $form->dberror($query);
+
+ my $ref;
+ my $ptref;
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+
+ my ($dec) = ($ref->{sellprice} =~ /\.(\d+)/);
+ $dec = length $dec;
+ my $decimalplaces = ($dec > 2) ? $dec : 2;
+
+ # get taxes for part
+ $tth->execute($ref->{id});
+
+ $ref->{taxaccounts} = "";
+ while ($ptref = $tth->fetchrow_hashref(NAME_lc)) {
+ $ref->{taxaccounts} .= "$ptref->{accno} ";
+ }
+ $tth->finish;
+ chop $ref->{taxaccounts};
+
+ # get vendor price and partnumber
+ &price_matrix($pmh, $ref, $decimalplaces, $form);
+
+ $ref->{description} = $ref->{translation} if $ref->{translation};
+ $ref->{partsgroup} = $ref->{grouptranslation} if $ref->{grouptranslation};
+
+ push @{ $form->{item_list} }, $ref;
+
+ }
+
+ $sth->finish;
+ $dbh->disconnect;
+
+}
+
+
+sub exchangerate_defaults {
+ my ($dbh, $form) = @_;
+
+ my $var;
+
+ # get default currencies
+ my $query = qq|SELECT substr(curr,1,3), curr FROM defaults|;
+ my $eth = $dbh->prepare($query) || $form->dberror($query);
+ $eth->execute;
+ ($form->{defaultcurrency}, $form->{currencies}) = $eth->fetchrow_array;
+ $eth->finish;
+
+ $query = qq|SELECT sell
+ FROM exchangerate
+ WHERE curr = ?
+ AND transdate = ?|;
+ my $eth1 = $dbh->prepare($query) || $form->dberror($query);
+
+ $query = qq~SELECT max(transdate || ' ' || sell || ' ' || curr)
+ FROM exchangerate
+ WHERE curr = ?~;
+ my $eth2 = $dbh->prepare($query) || $form->dberror($query);
+
+ # get exchange rates for transdate or max
+ foreach $var (split /:/, substr($form->{currencies},4)) {
+ $eth1->execute($var, $form->{transdate});
+ ($form->{$var}) = $eth1->fetchrow_array;
+ if (! $form->{$var} ) {
+ $eth2->execute($var);
+
+ ($form->{$var}) = $eth2->fetchrow_array;
+ ($null, $form->{$var}) = split / /, $form->{$var};
+ $form->{$var} = 1 unless $form->{$var};
+ $eth2->finish;
+ }
+ $eth1->finish;
+ }
+
+ $form->{$form->{currency}} = $form->{exchangerate} if $form->{exchangerate};
+ $form->{$form->{currency}} ||= 1;
+ $form->{$form->{defaultcurrency}} = 1;
+
+}
+
+
+sub price_matrix {
+ my ($pmh, $ref, $decimalplaces, $form) = @_;
+
+ $pmh->execute($ref->{id});
+ my $mref = $pmh->fetchrow_hashref(NAME_lc);
+
+ if ($mref->{partnumber} ne "") {
+ $ref->{partnumber} = $mref->{partnumber};
+ }
+
+ if ($mref->{lastcost}) {
+ # do a conversion
+ $ref->{sellprice} = $form->round_amount($mref->{lastcost} * $form->{$mref->{curr}}, $decimalplaces);
+ }
+ $pmh->finish;
+
+ $ref->{sellprice} *= 1;
+
+ # add 0:price to matrix
+ $ref->{pricematrix} = "0:$ref->{sellprice}";
+
+}
+
+
+sub vendor_details {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ # get rest for the vendor
+ my $query = qq|SELECT vendornumber, name, address1, address2, city, state,
+ zipcode, country,
+ contact, phone as vendorphone, fax as vendorfax, vendornumber,
+ taxnumber AS vendortaxnumber, sic_code AS sic, iban, bic,
+ gifi_accno AS gifi, startdate, enddate
+ FROM vendor
+ WHERE id = $form->{vendor_id}|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ $ref = $sth->fetchrow_hashref(NAME_lc);
+ for (keys %$ref) {
+ $form->{$_} = $ref->{$_};
+ }
+
+ $sth->finish;
+ $dbh->disconnect;
+
+}
+
+
+sub item_links {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $query = qq|SELECT accno, description, link
+ FROM chart
+ WHERE link LIKE '%IC%'
+ ORDER BY accno|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+ foreach my $key (split(/:/, $ref->{link})) {
+ if ($key =~ /IC/) {
+ push @{ $form->{IC_links}{$key} }, { accno => $ref->{accno},
+ description => $ref->{description} };
+ }
+ }
+ }
+
+ $sth->finish;
+}
+
+1;
+
diff --git a/LedgerSMB/IS.pm b/LedgerSMB/IS.pm
new file mode 100755
index 00000000..5bb7ef63
--- /dev/null
+++ b/LedgerSMB/IS.pm
@@ -0,0 +1,1684 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has NOT undergone whitespace cleanup.
+#
+#======================================================================
+#
+# Inventory invoicing module
+#
+#======================================================================
+
+package IS;
+
+
+sub invoice_details {
+ my ($self, $myconfig, $form) = @_;
+
+ $form->{duedate} = $form->{transdate} unless ($form->{duedate});
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $query = qq|SELECT date '$form->{duedate}' - date '$form->{transdate}'
+ AS terms, weightunit
+ FROM defaults|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ ($form->{terms}, $form->{weightunit}) = $sth->fetchrow_array;
+ $sth->finish;
+
+ # this is for the template
+ $form->{invdate} = $form->{transdate};
+
+ my $tax = 0;
+ my $item;
+ my $i;
+ my @sortlist = ();
+ my $projectnumber;
+ my $projectdescription;
+ my $projectnumber_id;
+ my $translation;
+ my $partsgroup;
+
+ my %oid = ( 'Pg' => 'oid',
+ 'PgPP' => 'oid',
+ 'Oracle' => 'rowid',
+ 'DB2' => '1=1'
+ );
+
+ my @taxaccounts;
+ my %taxaccounts;
+ my $tax;
+ my $taxrate;
+ my $taxamount;
+
+ my %translations;
+
+ $query = qq|SELECT p.description, t.description
+ FROM project p
+ LEFT JOIN translation t ON (t.trans_id = p.id AND t.language_code = '$form->{language_code}')
+ WHERE id = ?|;
+ my $prh = $dbh->prepare($query) || $form->dberror($query);
+
+ $query = qq|SELECT inventory_accno_id, income_accno_id,
+ expense_accno_id, assembly, weight FROM parts
+ WHERE id = ?|;
+ my $pth = $dbh->prepare($query) || $form->dberror($query);
+
+ my $sortby;
+
+ # sort items by project and partsgroup
+ for $i (1 .. $form->{rowcount} - 1) {
+
+ # account numbers
+ $pth->execute($form->{"id_$i"});
+ $ref = $pth->fetchrow_hashref(NAME_lc);
+ for (keys %$ref) { $form->{"${_}_$i"} = $ref->{$_} }
+ $pth->finish;
+
+ $projectnumber_id = 0;
+ $projectnumber = "";
+ $form->{partsgroup} = "";
+ $form->{projectnumber} = "";
+
+ if ($form->{groupprojectnumber} || $form->{grouppartsgroup}) {
+
+ $inventory_accno_id = ($form->{"inventory_accno_id_$i"} || $form->{"assembly_$i"}) ? "1" : "";
+
+ if ($form->{groupprojectnumber}) {
+ ($projectnumber, $projectnumber_id) = split /--/, $form->{"projectnumber_$i"};
+ }
+ if ($form->{grouppartsgroup}) {
+ ($form->{partsgroup}) = split /--/, $form->{"partsgroup_$i"};
+ }
+
+ if ($projectnumber_id && $form->{groupprojectnumber}) {
+ if ($translation{$projectnumber_id}) {
+ $form->{projectnumber} = $translation{$projectnumber_id};
+ } else {
+ # get project description
+ $prh->execute($projectnumber_id);
+ ($projectdescription, $translation) = $prh->fetchrow_array;
+ $prh->finish;
+
+ $form->{projectnumber} = ($translation) ? "$projectnumber, $translation" : "$projectnumber, $projectdescription";
+
+ $translation{$projectnumber_id} = $form->{projectnumber};
+ }
+ }
+
+ if ($form->{grouppartsgroup} && $form->{partsgroup}) {
+ $form->{projectnumber} .= " / " if $projectnumber_id;
+ $form->{projectnumber} .= $form->{partsgroup};
+ }
+
+ $form->format_string(projectnumber);
+
+ }
+
+ $sortby = qq|$projectnumber$form->{partsgroup}|;
+ if ($form->{sortby} ne 'runningnumber') {
+ for (qw(partnumber description bin)) {
+ $sortby .= $form->{"${_}_$i"} if $form->{sortby} eq $_;
+ }
+ }
+
+ push @sortlist, [ $i, qq|$projectnumber$form->{partsgroup}$inventory_accno_id|, $form->{projectnumber}, $projectnumber_id, $form->{partsgroup}, $sortby ];
+
+ }
+
+ # sort the whole thing by project and group
+ @sortlist = sort { $a->[5] cmp $b->[5] } @sortlist;
+
+ my $runningnumber = 1;
+ my $sameitem = "";
+ my $subtotal;
+ my $k = scalar @sortlist;
+ my $j = 0;
+
+ foreach $item (@sortlist) {
+
+ $i = $item->[0];
+ $j++;
+
+ # heading
+ if ($form->{groupprojectnumber} || $form->{grouppartsgroup}) {
+ if ($item->[1] ne $sameitem) {
+ $sameitem = $item->[1];
+
+ $ok = 0;
+
+ if ($form->{groupprojectnumber}) {
+ $ok = $form->{"projectnumber_$i"};
+ }
+ if ($form->{grouppartsgroup}) {
+ $ok = $form->{"partsgroup_$i"} unless $ok;
+ }
+
+ if ($ok) {
+
+ if ($form->{"inventory_accno_id_$i"} || $form->{"assembly_$i"}) {
+ push(@{ $form->{part} }, "");
+ push(@{ $form->{service} }, NULL);
+ } else {
+ push(@{ $form->{part} }, NULL);
+ push(@{ $form->{service} }, "");
+ }
+
+ push(@{ $form->{description} }, $item->[2]);
+ for (qw(taxrates runningnumber number sku serialnumber bin qty ship unit deliverydate projectnumber sellprice listprice netprice discount discountrate linetotal weight itemnotes)) { push(@{ $form->{$_} }, "") }
+ push(@{ $form->{lineitems} }, { amount => 0, tax => 0 });
+ }
+ }
+ }
+
+ $form->{"qty_$i"} = $form->parse_amount($myconfig, $form->{"qty_$i"});
+
+ if ($form->{"qty_$i"}) {
+
+ $form->{totalqty} += $form->{"qty_$i"};
+ $form->{totalship} += $form->{"qty_$i"};
+ $form->{totalweight} += ($form->{"qty_$i"} * $form->{"weight_$i"});
+ $form->{totalweightship} += ($form->{"qty_$i"} * $form->{"weight_$i"});
+
+ # add number, description and qty to $form->{number}, ....
+ push(@{ $form->{runningnumber} }, $runningnumber++);
+ push(@{ $form->{number} }, $form->{"partnumber_$i"});
+ push(@{ $form->{sku} }, $form->{"sku_$i"});
+ push(@{ $form->{serialnumber} }, $form->{"serialnumber_$i"});
+ push(@{ $form->{bin} }, $form->{"bin_$i"});
+ push(@{ $form->{description} }, $form->{"description_$i"});
+ push(@{ $form->{itemnotes} }, $form->{"notes_$i"});
+ push(@{ $form->{qty} }, $form->format_amount($myconfig, $form->{"qty_$i"}));
+ push(@{ $form->{ship} }, $form->format_amount($myconfig, $form->{"qty_$i"}));
+ push(@{ $form->{unit} }, $form->{"unit_$i"});
+ push(@{ $form->{deliverydate} }, $form->{"deliverydate_$i"});
+ push(@{ $form->{projectnumber} }, $form->{"projectnumber_$i"});
+
+ push(@{ $form->{sellprice} }, $form->{"sellprice_$i"});
+
+ # listprice
+ push(@{ $form->{listprice} }, $form->{"listprice_$i"});
+
+ push(@{ $form->{weight} }, $form->format_amount($myconfig, $form->{"weight_$i"} * $form->{"qty_$i"}));
+
+ my $sellprice = $form->parse_amount($myconfig, $form->{"sellprice_$i"});
+ my ($dec) = ($sellprice =~ /\.(\d+)/);
+ $dec = length $dec;
+ my $decimalplaces = ($dec > 2) ? $dec : 2;
+
+ my $discount = $form->round_amount($sellprice * $form->parse_amount($myconfig, $form->{"discount_$i"})/100, $decimalplaces);
+
+ # keep a netprice as well, (sellprice - discount)
+ $form->{"netprice_$i"} = $sellprice - $discount;
+
+ my $linetotal = $form->round_amount($form->{"qty_$i"} * $form->{"netprice_$i"}, 2);
+
+ if ($form->{"inventory_accno_id_$i"} || $form->{"assembly_$i"}) {
+ push(@{ $form->{part} }, $form->{"sku_$i"});
+ push(@{ $form->{service} }, NULL);
+ $form->{totalparts} += $linetotal;
+ } else {
+ push(@{ $form->{service} }, $form->{"sku_$i"});
+ push(@{ $form->{part} }, NULL);
+ $form->{totalservices} += $linetotal;
+ }
+
+ push(@{ $form->{netprice} }, ($form->{"netprice_$i"}) ? $form->format_amount($myconfig, $form->{"netprice_$i"}, $decimalplaces) : " ");
+
+ $discount = ($discount) ? $form->format_amount($myconfig, $discount * -1, $decimalplaces) : " ";
+ $linetotal = ($linetotal) ? $linetotal : " ";
+
+ push(@{ $form->{discount} }, $discount);
+ push(@{ $form->{discountrate} }, $form->format_amount($myconfig, $form->{"discount_$i"}));
+
+ $form->{total} += $linetotal;
+
+ # this is for the subtotals for grouping
+ $subtotal += $linetotal;
+
+ $form->{"linetotal_$i"} = $form->format_amount($myconfig, $linetotal, 2);
+ push(@{ $form->{linetotal} }, $form->{"linetotal_$i"});
+
+ @taxaccounts = split / /, $form->{"taxaccounts_$i"};
+
+ my $ml = 1;
+ my @taxrates = ();
+
+ $tax = 0;
+
+ for (0 .. 1) {
+ $taxrate = 0;
+
+ for (@taxaccounts) { $taxrate += $form->{"${_}_rate"} if ($form->{"${_}_rate"} * $ml) > 0 }
+
+ $taxrate *= $ml;
+ $taxamount = $linetotal * $taxrate / (1 + $taxrate);
+ $taxbase = ($linetotal - $taxamount);
+
+ foreach $item (@taxaccounts) {
+ if (($form->{"${item}_rate"} * $ml) > 0) {
+
+ push @taxrates, $form->{"${item}_rate"} * 100;
+
+ if ($form->{taxincluded}) {
+ $taxaccounts{$item} += $linetotal * $form->{"${item}_rate"} / (1 + $taxrate);
+ $taxbase{$item} += $taxbase;
+ } else {
+ $taxbase{$item} += $linetotal;
+ $taxaccounts{$item} += $linetotal * $form->{"${item}_rate"};
+ }
+ }
+ }
+
+ if ($form->{taxincluded}) {
+ $tax += $linetotal * ($taxrate / (1 + ($taxrate * $ml)));
+ } else {
+ $tax += $linetotal * $taxrate;
+ }
+
+ $ml *= -1;
+ }
+
+ push(@{ $form->{lineitems} }, { amount => $linetotal, tax => $form->round_amount($tax, 2) });
+ push(@{ $form->{taxrates} }, join ' ', sort { $a <=> $b } @taxrates);
+
+ if ($form->{"assembly_$i"}) {
+ $form->{stagger} = -1;
+ &assembly_details($myconfig, $form, $dbh, $form->{"id_$i"}, $oid{$myconfig->{dbdriver}}, $form->{"qty_$i"});
+ }
+
+ }
+
+ # add subtotal
+ if ($form->{groupprojectnumber} || $form->{grouppartsgroup}) {
+ if ($subtotal) {
+ if ($j < $k) {
+ # look at next item
+ if ($sortlist[$j]->[1] ne $sameitem) {
+
+ if ($form->{"inventory_accno_id_$j"} || $form->{"assembly_$i"}) {
+ push(@{ $form->{part} }, "");
+ push(@{ $form->{service} }, NULL);
+ } else {
+ push(@{ $form->{service} }, "");
+ push(@{ $form->{part} }, NULL);
+ }
+
+ for (qw(taxrates runningnumber number sku serialnumber bin qty ship unit deliverydate projectnumber sellprice listprice netprice discount discountrate weight itemnotes)) { push(@{ $form->{$_} }, "") }
+
+ push(@{ $form->{description} }, $form->{groupsubtotaldescription});
+
+ push(@{ $form->{lineitems} }, { amount => 0, tax => 0 });
+
+ if ($form->{groupsubtotaldescription} ne "") {
+ push(@{ $form->{linetotal} }, $form->format_amount($myconfig, $subtotal, 2));
+ } else {
+ push(@{ $form->{linetotal} }, "");
+ }
+ $subtotal = 0;
+ }
+
+ } else {
+
+ # got last item
+ if ($form->{groupsubtotaldescription} ne "") {
+
+ if ($form->{"inventory_accno_id_$j"} || $form->{"assembly_$i"}) {
+ push(@{ $form->{part} }, "");
+ push(@{ $form->{service} }, NULL);
+ } else {
+ push(@{ $form->{service} }, "");
+ push(@{ $form->{part} }, NULL);
+ }
+
+ for (qw(taxrates runningnumber number sku serialnumber bin qty ship unit deliverydate projectnumber sellprice listprice netprice discount discountrate weight itemnotes)) { push(@{ $form->{$_} }, "") }
+
+ push(@{ $form->{description} }, $form->{groupsubtotaldescription});
+ push(@{ $form->{linetotal} }, $form->format_amount($myconfig, $subtotal, 2));
+ push(@{ $form->{lineitems} }, { amount => 0, tax => 0 });
+ }
+ }
+ }
+ }
+ }
+
+
+ $tax = 0;
+ foreach my $item (sort keys %taxaccounts) {
+ if ($form->round_amount($taxaccounts{$item}, 2)) {
+ $tax += $taxamount = $form->round_amount($taxaccounts{$item}, 2);
+
+ push(@{ $form->{taxbaseinclusive} }, $form->{"${item}_taxbaseinclusive"} = $form->format_amount($myconfig, $taxbase{$item} + $tax, 2));
+ push(@{ $form->{taxbase} }, $form->{"${item}_taxbase"} = $form->format_amount($myconfig, $taxbase{$item}, 2));
+ push(@{ $form->{tax} }, $form->{"${item}_tax"} = $form->format_amount($myconfig, $taxamount, 2));
+
+ push(@{ $form->{taxdescription} }, $form->{"${item}_description"});
+
+ $form->{"${item}_taxrate"} = $form->format_amount($myconfig, $form->{"${item}_rate"} * 100);
+ push(@{ $form->{taxrate} }, $form->{"${item}_taxrate"});
+ push(@{ $form->{taxnumber} }, $form->{"${item}_taxnumber"});
+ }
+ }
+
+ # adjust taxes for lineitems
+ my $total = 0;
+ for (@{ $form->{lineitems} }) {
+ $total += $_->{tax};
+ }
+ if ($form->round_amount($total,2) != $form->round_amount($tax,2)) {
+ # get largest amount
+ for (reverse sort { $a->{tax} <=> $b->{tax} } @{ $form->{lineitems} }) {
+ $_->{tax} -= $total - $tax;
+ last;
+ }
+ }
+ $i = 1;
+ for (@{ $form->{lineitems} }) {
+ push(@{ $form->{linetax} }, $form->format_amount($myconfig, $_->{tax}, 2, ""));
+ }
+
+
+ for $i (1 .. $form->{paidaccounts}) {
+ if ($form->{"paid_$i"}) {
+ push(@{ $form->{payment} }, $form->{"paid_$i"});
+ my ($accno, $description) = split /--/, $form->{"AR_paid_$i"};
+ push(@{ $form->{paymentaccount} }, $description);
+ push(@{ $form->{paymentdate} }, $form->{"datepaid_$i"});
+ push(@{ $form->{paymentsource} }, $form->{"source_$i"});
+ push(@{ $form->{paymentmemo} }, $form->{"memo_$i"});
+
+ $form->{paid} += $form->parse_amount($myconfig, $form->{"paid_$i"});
+ }
+ }
+
+ for (qw(totalparts totalservices)) { $form->{$_} = $form->format_amount($myconfig, $form->{$_}, 2) }
+ for (qw(totalqty totalship totalweight)) { $form->{$_} = $form->format_amount($myconfig, $form->{$_}) }
+ $form->{subtotal} = $form->format_amount($myconfig, $form->{total}, 2);
+ $form->{invtotal} = ($form->{taxincluded}) ? $form->{total} : $form->{total} + $tax;
+
+ use LedgerSMB::CP;
+ my $c;
+ if ($form->{language_code} ne "") {
+ $c = new CP $form->{language_code};
+ } else {
+ $c = new CP $myconfig->{countrycode};
+ }
+ $c->init;
+ my $whole;
+ ($whole, $form->{decimal}) = split /\./, $form->{invtotal};
+ $form->{decimal} .= "00";
+ $form->{decimal} = substr($form->{decimal}, 0, 2);
+ $form->{text_decimal} = $c->num2text($form->{decimal} * 1);
+ $form->{text_amount} = $c->num2text($whole);
+ $form->{integer_amount} = $form->format_amount($myconfig, $whole);
+
+ $form->format_string(qw(text_amount text_decimal));
+
+ $form->{total} = $form->format_amount($myconfig, $form->{invtotal} - $form->{paid}, 2);
+ $form->{invtotal} = $form->format_amount($myconfig, $form->{invtotal}, 2);
+
+ $form->{paid} = $form->format_amount($myconfig, $form->{paid}, 2);
+
+ $dbh->disconnect;
+
+}
+
+
+sub assembly_details {
+ my ($myconfig, $form, $dbh, $id, $oid, $qty) = @_;
+
+ my $sm = "";
+ my $spacer;
+
+ $form->{stagger}++;
+ if ($form->{format} eq 'html') {
+ $spacer = "&nbsp;" x (3 * ($form->{stagger} - 1)) if $form->{stagger} > 1;
+ }
+ if ($form->{format} =~ /(postscript|pdf)/) {
+ if ($form->{stagger} > 1) {
+ $spacer = ($form->{stagger} - 1) * 3;
+ $spacer = '\rule{'.$spacer.'mm}{0mm}';
+ }
+ }
+
+ # get parts and push them onto the stack
+ my $sortorder = "";
+
+ if ($form->{grouppartsgroup}) {
+ $sortorder = qq|ORDER BY pg.partsgroup, a.$oid|;
+ } else {
+ $sortorder = qq|ORDER BY a.$oid|;
+ }
+
+ my $query = qq|SELECT p.partnumber, p.description, p.unit, a.qty,
+ pg.partsgroup, p.partnumber AS sku
+ FROM assembly a
+ JOIN parts p ON (a.parts_id = p.id)
+ LEFT JOIN partsgroup pg ON (p.partsgroup_id = pg.id)
+ WHERE a.bom = '1'
+ AND a.id = '$id'
+ $sortorder|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+
+ for (qw(partnumber description partsgroup)) {
+ $form->{"a_$_"} = $ref->{$_};
+ $form->format_string("a_$_");
+ }
+
+ if ($form->{grouppartsgroup} && $ref->{partsgroup} ne $sm) {
+ for (qw(taxrates runningnumber number sku serialnumber unit qty ship bin deliverydate projectnumber sellprice listprice netprice discount discountrate linetotal weight itemnotes)) { push(@{ $form->{$_} }, "") }
+ $sm = ($form->{"a_partsgroup"}) ? $form->{"a_partsgroup"} : "--";
+ push(@{ $form->{description} }, "$spacer$sm");
+ push(@{ $form->{lineitems} }, { amount => 0, tax => 0 });
+ }
+
+ if ($form->{stagger}) {
+
+ push(@{ $form->{description} }, $form->format_amount($myconfig, $ref->{qty} * $form->{"qty_$i"}) . qq| -- $form->{"a_partnumber"}, $form->{"a_description"}|);
+ for (qw(taxrates runningnumber number sku serialnumber unit qty ship bin deliverydate projectnumber sellprice listprice netprice discount discountrate linetotal weight itemnotes)) { push(@{ $form->{$_} }, "") }
+
+ } else {
+
+ push(@{ $form->{description} }, qq|$form->{"a_description"}|);
+ push(@{ $form->{number} }, $form->{"a_partnumber"});
+ push(@{ $form->{sku} }, $form->{"a_partnumber"});
+
+ for (qw(taxrates runningnumber ship serialnumber reqdate projectnumber sellprice listprice netprice discount discountrate linetotal weight itemnotes)) { push(@{ $form->{$_} }, "") }
+
+ }
+
+ push(@{ $form->{lineitems} }, { amount => 0, tax => 0 });
+
+ push(@{ $form->{qty} }, $form->format_amount($myconfig, $ref->{qty} * $qty));
+
+ for (qw(unit bin)) {
+ $form->{"a_$_"} = $ref->{$_};
+ $form->format_string("a_$_");
+ push(@{ $form->{$_} }, $form->{"a_$_"});
+ }
+
+ }
+ $sth->finish;
+
+ $form->{stagger}--;
+
+}
+
+
+sub project_description {
+ my ($self, $dbh, $id) = @_;
+
+ my $query = qq|SELECT description
+ FROM project
+ WHERE id = $id|;
+ ($_) = $dbh->selectrow_array($query);
+
+ $_;
+
+}
+
+
+sub customer_details {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ # get rest for the customer
+ my $query = qq|SELECT customernumber, name, address1, address2, city,
+ state, zipcode, country,
+ contact, phone as customerphone, fax as customerfax,
+ taxnumber AS customertaxnumber, sic_code AS sic, iban, bic,
+ startdate, enddate
+ FROM customer
+ WHERE id = $form->{customer_id}|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ $ref = $sth->fetchrow_hashref(NAME_lc);
+ for (keys %$ref) { $form->{$_} = $ref->{$_} }
+
+ $sth->finish;
+ $dbh->disconnect;
+
+}
+
+
+sub post_invoice {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database, turn off autocommit
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ my $query;
+ my $sth;
+ my $null;
+ my $project_id;
+ my $exchangerate = 0;
+ my $keepcleared = 0;
+
+ %$form->{acc_trans} = ();
+
+ ($null, $form->{employee_id}) = split /--/, $form->{employee};
+ unless ($form->{employee_id}) {
+ ($form->{employee}, $form->{employee_id}) = $form->get_employee($dbh);
+ }
+
+ ($null, $form->{department_id}) = split(/--/, $form->{department});
+ $form->{department_id} *= 1;
+
+ $query = qq|SELECT fxgain_accno_id, fxloss_accno_id
+ FROM defaults|;
+ my ($fxgain_accno_id, $fxloss_accno_id) = $dbh->selectrow_array($query);
+
+ $query = qq|SELECT p.assembly, p.inventory_accno_id,
+ p.income_accno_id, p.expense_accno_id, p.project_id
+ FROM parts p
+ WHERE p.id = ?|;
+ my $pth = $dbh->prepare($query) || $form->dberror($query);
+
+ if ($form->{id}) {
+ $keepcleared = 1;
+ $query = qq|SELECT id FROM ar
+ WHERE id = $form->{id}|;
+
+ if ($dbh->selectrow_array($query)) {
+ &reverse_invoice($dbh, $form);
+ } else {
+ $query = qq|INSERT INTO ar (id)
+ VALUES ($form->{id})|;
+ $dbh->do($query) || $form->dberror($query);
+ }
+
+ }
+
+ my $uid = localtime;
+ $uid .= "$$";
+
+ if (! $form->{id}) {
+
+ $query = qq|INSERT INTO ar (invnumber, employee_id)
+ VALUES ('$uid', $form->{employee_id})|;
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|SELECT id FROM ar
+ WHERE invnumber = '$uid'|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ ($form->{id}) = $sth->fetchrow_array;
+ $sth->finish;
+ }
+
+
+ if ($form->{currency} eq $form->{defaultcurrency}) {
+ $form->{exchangerate} = 1;
+ } else {
+ $exchangerate = $form->check_exchangerate($myconfig, $form->{currency}, $form->{transdate}, 'buy');
+ }
+
+ $form->{exchangerate} = ($exchangerate) ? $exchangerate : $form->parse_amount($myconfig, $form->{exchangerate});
+
+ my $i;
+ my $item;
+ my $allocated = 0;
+ my $taxrate;
+ my $tax;
+ my $fxtax;
+ my @taxaccounts;
+ my $amount;
+ my $grossamount;
+ my $invamount = 0;
+ my $invnetamount = 0;
+ my $diff = 0;
+ my $ml;
+ my $invoice_id;
+ my $ndx;
+
+ foreach $i (1 .. $form->{rowcount}) {
+ $form->{"qty_$i"} = $form->parse_amount($myconfig, $form->{"qty_$i"});
+
+ if ($form->{"qty_$i"}) {
+
+ $pth->execute($form->{"id_$i"});
+ $ref = $pth->fetchrow_hashref(NAME_lc);
+ for (keys %$ref) { $form->{"${_}_$i"} = $ref->{$_} }
+ $pth->finish;
+
+ # project
+ $project_id = 'NULL';
+ if ($form->{"projectnumber_$i"}) {
+ ($null, $project_id) = split /--/, $form->{"projectnumber_$i"};
+ }
+ $project_id = $form->{"project_id_$i"} if $form->{"project_id_$i"};
+
+ # keep entered selling price
+ my $fxsellprice = $form->parse_amount($myconfig, $form->{"sellprice_$i"});
+
+ my ($dec) = ($fxsellprice =~ /\.(\d+)/);
+ $dec = length $dec;
+ my $decimalplaces = ($dec > 2) ? $dec : 2;
+
+ # undo discount formatting
+ $form->{"discount_$i"} = $form->parse_amount($myconfig, $form->{"discount_$i"})/100;
+
+ # deduct discount
+ $form->{"sellprice_$i"} = $fxsellprice - $form->round_amount($fxsellprice * $form->{"discount_$i"}, $decimalplaces);
+
+ # linetotal
+ my $fxlinetotal = $form->round_amount($form->{"sellprice_$i"} * $form->{"qty_$i"}, 2);
+
+ $amount = $fxlinetotal * $form->{exchangerate};
+ my $linetotal = $form->round_amount($amount, 2);
+ $fxdiff += $amount - $linetotal;
+
+ @taxaccounts = split / /, $form->{"taxaccounts_$i"};
+ $ml = 1;
+ $tax = 0;
+ $fxtax = 0;
+
+ for (0 .. 1) {
+ $taxrate = 0;
+
+ # add tax rates
+ for (@taxaccounts) { $taxrate += $form->{"${_}_rate"} if ($form->{"${_}_rate"} * $ml) > 0 }
+
+ if ($form->{taxincluded}) {
+ $tax += $amount = $linetotal * ($taxrate / (1 + ($taxrate * $ml)));
+ $form->{"sellprice_$i"} -= $amount / $form->{"qty_$i"};
+ $fxtax += $fxlinetotal * ($taxrate / (1 + ($taxrate * $ml)));
+ } else {
+ $tax += $amount = $linetotal * $taxrate;
+ $fxtax += $fxlinetotal * $taxrate;
+ }
+
+ for (@taxaccounts) {
+ $form->{acc_trans}{$form->{id}}{$_}{amount} += $amount * $form->{"${_}_rate"} / $taxrate if ($form->{"${_}_rate"} * $ml) > 0;
+ }
+
+ $ml = -1;
+ }
+
+ $grossamount = $form->round_amount($linetotal, 2);
+
+ if ($form->{taxincluded}) {
+ $amount = $form->round_amount($tax, 2);
+ $linetotal -= $form->round_amount($tax - $diff, 2);
+ $diff = ($amount - $tax);
+ }
+
+ # add linetotal to income
+ $amount = $form->round_amount($linetotal, 2);
+
+ push @{ $form->{acc_trans}{lineitems} }, {
+ chart_id => $form->{"income_accno_id_$i"},
+ amount => $amount,
+ fxgrossamount => $fxlinetotal + $fxtax,
+ grossamount => $grossamount,
+ project_id => $project_id };
+ $ndx = $#{@{$form->{acc_trans}{lineitems}}};
+
+ $form->{"sellprice_$i"} = $form->round_amount($form->{"sellprice_$i"} * $form->{exchangerate}, $decimalplaces);
+
+ if ($form->{"inventory_accno_id_$i"} || $form->{"assembly_$i"}) {
+
+ if ($form->{"assembly_$i"}) {
+ # do not update if assembly consists of all services
+ $query = qq|SELECT sum(p.inventory_accno_id), p.assembly
+ FROM parts p
+ JOIN assembly a ON (a.parts_id = p.id)
+ WHERE a.id = $form->{"id_$i"}
+ GROUP BY p.assembly|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+ my ($inv, $assembly) = $sth->fetchrow_array;
+ $sth->finish;
+
+ if ($inv || $assembly) {
+ $form->update_balance($dbh,
+ "parts",
+ "onhand",
+ qq|id = $form->{"id_$i"}|,
+ $form->{"qty_$i"} * -1) unless $form->{shipped};
+ }
+
+ &process_assembly($dbh, $form, $form->{"id_$i"}, $form->{"qty_$i"}, $project_id);
+ } else {
+ $form->update_balance($dbh,
+ "parts",
+ "onhand",
+ qq|id = $form->{"id_$i"}|,
+ $form->{"qty_$i"} * -1) unless $form->{shipped};
+
+ $allocated = &cogs($dbh, $form, $form->{"id_$i"}, $form->{"qty_$i"}, $project_id);
+ }
+ }
+
+ # save detail record in invoice table
+ $query = qq|INSERT INTO invoice (description)
+ VALUES ('$uid')|;
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|SELECT id FROM invoice
+ WHERE description = '$uid'|;
+ ($invoice_id) = $dbh->selectrow_array($query);
+
+ $query = qq|UPDATE invoice SET
+ trans_id = $form->{id},
+ parts_id = $form->{"id_$i"},
+ description = |.$dbh->quote($form->{"description_$i"}).qq|,
+ qty = $form->{"qty_$i"},
+ sellprice = $form->{"sellprice_$i"},
+ fxsellprice = $fxsellprice,
+ discount = $form->{"discount_$i"},
+ allocated = $allocated,
+ unit = |.$dbh->quote($form->{"unit_$i"}).qq|,
+ deliverydate = |.$form->dbquote($form->{"deliverydate_$i"}, SQL_DATE).qq|,
+ project_id = $project_id,
+ serialnumber = |.$dbh->quote($form->{"serialnumber_$i"}).qq|,
+ notes = |.$dbh->quote($form->{"notes_$i"}).qq|
+ WHERE id = $invoice_id|;
+ $dbh->do($query) || $form->dberror($query);
+
+ # add invoice_id
+ $form->{acc_trans}{lineitems}[$ndx]->{invoice_id} = $invoice_id;
+
+ }
+ }
+
+ $form->{paid} = 0;
+ for $i (1 .. $form->{paidaccounts}) {
+ $form->{"paid_$i"} = $form->parse_amount($myconfig, $form->{"paid_$i"});
+ $form->{paid} += $form->{"paid_$i"};
+ $form->{datepaid} = $form->{"datepaid_$i"} if ($form->{"paid_$i"});
+ }
+
+ # add lineitems + tax
+ $amount = 0;
+ $grossamount = 0;
+ $fxgrossamount = 0;
+ for (@{ $form->{acc_trans}{lineitems} }) {
+ $amount += $_->{amount};
+ $grossamount += $_->{grossamount};
+ $fxgrossamount += $_->{fxgrossamount};
+ }
+ $invnetamount = $amount;
+
+ $amount = 0;
+ for (split / /, $form->{taxaccounts}) { $amount += $form->{acc_trans}{$form->{id}}{$_}{amount} = $form->round_amount($form->{acc_trans}{$form->{id}}{$_}{amount}, 2) }
+ $invamount = $invnetamount + $amount;
+
+ $diff = 0;
+ if ($form->{taxincluded}) {
+ $diff = $form->round_amount($grossamount - $invamount, 2);
+ $invamount += $diff;
+ }
+ $fxdiff = $form->round_amount($fxdiff,2);
+ $invnetamount += $fxdiff;
+ $invamount += $fxdiff;
+
+ if ($form->round_amount($form->{paid} - $fxgrossamount,2) == 0) {
+ $form->{paid} = $invamount;
+ } else {
+ $form->{paid} = $form->round_amount($form->{paid} * $form->{exchangerate}, 2);
+ }
+
+ foreach $ref (sort { $b->{amount} <=> $a->{amount} } @ { $form->{acc_trans}{lineitems} }) {
+ $amount = $ref->{amount} + $diff + $fxdiff;
+ $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount,
+ transdate, project_id, invoice_id)
+ VALUES ($form->{id}, $ref->{chart_id}, $amount,
+ '$form->{transdate}', $ref->{project_id}, $ref->{invoice_id})|;
+ $dbh->do($query) || $form->dberror($query);
+ $diff = 0;
+ $fxdiff = 0;
+ }
+
+ $form->{receivables} = $invamount * -1;
+
+ delete $form->{acc_trans}{lineitems};
+
+ # update exchangerate
+ if (($form->{currency} ne $form->{defaultcurrency}) && !$exchangerate) {
+ $form->update_exchangerate($dbh, $form->{currency}, $form->{transdate}, $form->{exchangerate}, 0);
+ }
+
+ # record receivable
+ if ($form->{receivables}) {
+ ($accno) = split /--/, $form->{AR};
+
+ $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount,
+ transdate)
+ VALUES ($form->{id},
+ (SELECT id FROM chart
+ WHERE accno = '$accno'),
+ $form->{receivables}, '$form->{transdate}')|;
+ $dbh->do($query) || $form->dberror($query);
+ }
+
+ foreach my $trans_id (keys %{$form->{acc_trans}}) {
+ foreach my $accno (keys %{$form->{acc_trans}{$trans_id}}) {
+ $amount = $form->round_amount($form->{acc_trans}{$trans_id}{$accno}{amount}, 2);
+ if ($amount) {
+ $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount,
+ transdate)
+ VALUES ($trans_id, (SELECT id FROM chart
+ WHERE accno = '$accno'),
+ $amount, '$form->{transdate}')|;
+ $dbh->do($query) || $form->dberror($query);
+ }
+ }
+ }
+
+
+ # if there is no amount but a payment record receivable
+ if ($invamount == 0) {
+ $form->{receivables} = 1;
+ }
+
+ my $cleared = 0;
+
+ # record payments and offsetting AR
+ for $i (1 .. $form->{paidaccounts}) {
+
+ if ($form->{"paid_$i"}) {
+ my ($accno) = split /--/, $form->{"AR_paid_$i"};
+ $form->{"datepaid_$i"} = $form->{transdate} unless ($form->{"datepaid_$i"});
+ $form->{datepaid} = $form->{"datepaid_$i"};
+
+ $exchangerate = 0;
+
+ if ($form->{currency} eq $form->{defaultcurrency}) {
+ $form->{"exchangerate_$i"} = 1;
+ } else {
+ $exchangerate = $form->check_exchangerate($myconfig, $form->{currency}, $form->{"datepaid_$i"}, 'buy');
+
+ $form->{"exchangerate_$i"} = ($exchangerate) ? $exchangerate : $form->parse_amount($myconfig, $form->{"exchangerate_$i"});
+ }
+
+
+ # record AR
+ $amount = $form->round_amount($form->{"paid_$i"} * $form->{exchangerate}, 2);
+
+ if ($form->{receivables}) {
+ $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount,
+ transdate)
+ VALUES ($form->{id}, (SELECT id FROM chart
+ WHERE accno = '$form->{AR}'),
+ $amount, '$form->{"datepaid_$i"}')|;
+ $dbh->do($query) || $form->dberror($query);
+ }
+
+ # record payment
+ $amount = $form->{"paid_$i"} * -1;
+ if ($keepcleared) {
+ $cleared = ($form->{"cleared_$i"}) ? 1 : 0;
+ }
+
+ $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate,
+ source, memo, cleared)
+ VALUES ($form->{id}, (SELECT id FROM chart
+ WHERE accno = '$accno'),
+ $amount, '$form->{"datepaid_$i"}', |
+ .$dbh->quote($form->{"source_$i"}).qq|, |
+ .$dbh->quote($form->{"memo_$i"}).qq|, '$cleared')|;
+ $dbh->do($query) || $form->dberror($query);
+
+ # exchangerate difference
+ $amount = $form->round_amount(($form->round_amount($form->{"paid_$i"} * $form->{"exchangerate_$i"} - $form->{"paid_$i"}, 2)) * -1, 2);
+
+ if ($amount) {
+ $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount,
+ transdate, source, fx_transaction, cleared)
+ VALUES ($form->{id}, (SELECT id FROM chart
+ WHERE accno = '$accno'),
+ $amount, '$form->{"datepaid_$i"}', |
+ .$dbh->quote($form->{"source_$i"}).qq|, '1', '$cleared')|;
+ $dbh->do($query) || $form->dberror($query);
+ }
+
+ # gain/loss
+ $amount = $form->round_amount(($form->round_amount($form->{"paid_$i"} * $form->{exchangerate},2) - $form->round_amount($form->{"paid_$i"} * $form->{"exchangerate_$i"},2)) * -1, 2);
+
+ if ($amount) {
+ my $accno_id = ($amount > 0) ? $fxgain_accno_id : $fxloss_accno_id;
+ $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount,
+ transdate, fx_transaction, cleared)
+ VALUES ($form->{id}, $accno_id,
+ $amount, '$form->{"datepaid_$i"}', '1', '$cleared')|;
+ $dbh->do($query) || $form->dberror($query);
+ }
+
+ # update exchange rate
+ if (($form->{currency} ne $form->{defaultcurrency}) && !$exchangerate) {
+ $form->update_exchangerate($dbh, $form->{currency}, $form->{"datepaid_$i"}, $form->{"exchangerate_$i"}, 0);
+ }
+ }
+ }
+
+ # set values which could be empty to 0
+ $form->{terms} *= 1;
+ $form->{taxincluded} *= 1;
+
+ # if this is from a till
+ my $till = ($form->{till}) ? qq|'$form->{till}'| : "NULL";
+
+ $form->{invnumber} = $form->update_defaults($myconfig, "sinumber", $dbh) unless $form->{invnumber};
+
+ # save AR record
+ $query = qq|UPDATE ar set
+ invnumber = |.$dbh->quote($form->{invnumber}).qq|,
+ ordnumber = |.$dbh->quote($form->{ordnumber}).qq|,
+ quonumber = |.$dbh->quote($form->{quonumber}).qq|,
+ transdate = '$form->{transdate}',
+ customer_id = $form->{customer_id},
+ amount = $invamount,
+ netamount = $invnetamount,
+ paid = $form->{paid},
+ datepaid = |.$form->dbquote($form->{datepaid}, SQL_DATE).qq|,
+ duedate = |.$form->dbquote($form->{duedate}, SQL_DATE).qq|,
+ invoice = '1',
+ shippingpoint = |.$dbh->quote($form->{shippingpoint}).qq|,
+ shipvia = |.$dbh->quote($form->{shipvia}).qq|,
+ terms = $form->{terms},
+ notes = |.$dbh->quote($form->{notes}).qq|,
+ intnotes = |.$dbh->quote($form->{intnotes}).qq|,
+ taxincluded = '$form->{taxincluded}',
+ curr = '$form->{currency}',
+ department_id = $form->{department_id},
+ employee_id = $form->{employee_id},
+ till = $till,
+ language_code = '$form->{language_code}',
+ ponumber = |.$dbh->quote($form->{ponumber}).qq|
+ WHERE id = $form->{id}
+ |;
+ $dbh->do($query) || $form->dberror($query);
+
+ # add shipto
+ $form->{name} = $form->{customer};
+ $form->{name} =~ s/--$form->{customer_id}//;
+ $form->add_shipto($dbh, $form->{id});
+
+ # save printed, emailed and queued
+ $form->save_status($dbh);
+
+ my %audittrail = ( tablename => 'ar',
+ reference => $form->{invnumber},
+ formname => $form->{type},
+ action => 'posted',
+ id => $form->{id} );
+
+ $form->audittrail($dbh, "", \%audittrail);
+
+ $form->save_recurring($dbh, $myconfig);
+
+ my $rc = $dbh->commit;
+
+ $dbh->disconnect;
+
+ $rc;
+
+}
+
+
+sub process_assembly {
+ my ($dbh, $form, $id, $totalqty, $project_id) = @_;
+
+ my $query = qq|SELECT a.parts_id, a.qty, p.assembly,
+ p.partnumber, p.description, p.unit,
+ p.inventory_accno_id, p.income_accno_id,
+ p.expense_accno_id
+ FROM assembly a
+ JOIN parts p ON (a.parts_id = p.id)
+ WHERE a.id = $id|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my $allocated;
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+
+ $allocated = 0;
+
+ $ref->{inventory_accno_id} *= 1;
+ $ref->{expense_accno_id} *= 1;
+
+ # multiply by number of assemblies
+ $ref->{qty} *= $totalqty;
+
+ if ($ref->{assembly}) {
+ &process_assembly($dbh, $form, $ref->{parts_id}, $ref->{qty}, $project_id);
+ next;
+ } else {
+ if ($ref->{inventory_accno_id}) {
+ $allocated = &cogs($dbh, $form, $ref->{parts_id}, $ref->{qty}, $project_id);
+ }
+ }
+
+ # save detail record for individual assembly item in invoice table
+ $query = qq|INSERT INTO invoice (trans_id, description, parts_id, qty,
+ sellprice, fxsellprice, allocated, assemblyitem, unit)
+ VALUES
+ ($form->{id}, |
+ .$dbh->quote($ref->{description}).qq|,
+ $ref->{parts_id}, $ref->{qty}, 0, 0, $allocated, 't', |
+ .$dbh->quote($ref->{unit}).qq|)|;
+ $dbh->do($query) || $form->dberror($query);
+
+ }
+
+ $sth->finish;
+
+}
+
+
+sub cogs {
+ my ($dbh, $form, $id, $totalqty, $project_id) = @_;
+
+ my $query = qq|SELECT i.id, i.trans_id, i.qty, i.allocated, i.sellprice,
+ i.fxsellprice, p.inventory_accno_id, p.expense_accno_id
+ FROM invoice i, parts p
+ WHERE i.parts_id = p.id
+ AND i.parts_id = $id
+ AND (i.qty + i.allocated) < 0
+ ORDER BY trans_id|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my $allocated = 0;
+ my $qty;
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+ if (($qty = (($ref->{qty} * -1) - $ref->{allocated})) > $totalqty) {
+ $qty = $totalqty;
+ }
+
+ $form->update_balance($dbh,
+ "invoice",
+ "allocated",
+ qq|id = $ref->{id}|,
+ $qty);
+
+ # total expenses and inventory
+ # sellprice is the cost of the item
+ my $linetotal = $form->round_amount($ref->{sellprice} * $qty, 2);
+
+ # add expense
+ push @{ $form->{acc_trans}{lineitems} }, {
+ chart_id => $ref->{expense_accno_id},
+ amount => $linetotal * -1,
+ project_id => $project_id,
+ invoice_id => $ref->{id} };
+
+ # deduct inventory
+ push @{ $form->{acc_trans}{lineitems} }, {
+ chart_id => $ref->{inventory_accno_id},
+ amount => $linetotal,
+ project_id => $project_id,
+ invoice_id => $ref->{id} };
+
+ # add allocated
+ $allocated += -$qty;
+
+ last if (($totalqty -= $qty) <= 0);
+ }
+
+ $sth->finish;
+
+ $allocated;
+
+}
+
+
+
+sub reverse_invoice {
+ my ($dbh, $form) = @_;
+
+ my $query = qq|SELECT id FROM ar
+ WHERE id = $form->{id}|;
+ my ($id) = $dbh->selectrow_array($query);
+
+ return unless $id;
+
+ # reverse inventory items
+ my $query = qq|SELECT i.id, i.parts_id, i.qty, i.assemblyitem, p.assembly,
+ p.inventory_accno_id
+ FROM invoice i
+ JOIN parts p ON (i.parts_id = p.id)
+ WHERE i.trans_id = $form->{id}|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+
+ if ($ref->{inventory_accno_id} || $ref->{assembly}) {
+
+ # if the invoice item is not an assemblyitem adjust parts onhand
+ if (!$ref->{assemblyitem}) {
+ # adjust onhand in parts table
+ $form->update_balance($dbh,
+ "parts",
+ "onhand",
+ qq|id = $ref->{parts_id}|,
+ $ref->{qty});
+ }
+
+ # loop if it is an assembly
+ next if ($ref->{assembly});
+
+ # de-allocated purchases
+ $query = qq|SELECT id, trans_id, allocated
+ FROM invoice
+ WHERE parts_id = $ref->{parts_id}
+ AND allocated > 0
+ ORDER BY trans_id DESC|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while (my $inhref = $sth->fetchrow_hashref(NAME_lc)) {
+ $qty = $ref->{qty};
+ if (($ref->{qty} - $inhref->{allocated}) > 0) {
+ $qty = $inhref->{allocated};
+ }
+
+ # update invoice
+ $form->update_balance($dbh,
+ "invoice",
+ "allocated",
+ qq|id = $inhref->{id}|,
+ $qty * -1);
+
+ last if (($ref->{qty} -= $qty) <= 0);
+ }
+ $sth->finish;
+ }
+ }
+
+ $sth->finish;
+
+ # delete acc_trans
+ $query = qq|DELETE FROM acc_trans
+ WHERE trans_id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ # delete invoice entries
+ $query = qq|DELETE FROM invoice
+ WHERE trans_id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|DELETE FROM shipto
+ WHERE trans_id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ $dbh->commit;
+
+}
+
+
+
+sub delete_invoice {
+ my ($self, $myconfig, $form, $spool) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ &reverse_invoice($dbh, $form);
+
+ my %audittrail = ( tablename => 'ar',
+ reference => $form->{invnumber},
+ formname => $form->{type},
+ action => 'deleted',
+ id => $form->{id} );
+
+ $form->audittrail($dbh, "", \%audittrail);
+
+ # delete AR record
+ my $query = qq|DELETE FROM ar
+ WHERE id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ # delete spool files
+ $query = qq|SELECT spoolfile FROM status
+ WHERE trans_id = $form->{id}
+ AND spoolfile IS NOT NULL|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my $spoolfile;
+ my @spoolfiles = ();
+
+ while (($spoolfile) = $sth->fetchrow_array) {
+ push @spoolfiles, $spoolfile;
+ }
+ $sth->finish;
+
+ # delete status entries
+ $query = qq|DELETE FROM status
+ WHERE trans_id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ my $rc = $dbh->commit;
+
+ if ($rc) {
+ foreach $spoolfile (@spoolfiles) {
+ unlink "$spool/$spoolfile" if $spoolfile;
+ }
+ }
+
+ $dbh->disconnect;
+
+ $rc;
+
+}
+
+
+
+sub retrieve_invoice {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ my $query;
+
+ if ($form->{id}) {
+ # get default accounts and last invoice number
+ $query = qq|SELECT d.curr AS currencies
+ FROM defaults d|;
+ } else {
+ $query = qq|SELECT d.curr AS currencies, current_date AS transdate
+ FROM defaults d|;
+ }
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my $ref = $sth->fetchrow_hashref(NAME_lc);
+ for (keys %$ref) { $form->{$_} = $ref->{$_} }
+ $sth->finish;
+
+
+ if ($form->{id}) {
+
+ # retrieve invoice
+ $query = qq|SELECT a.invnumber, a.ordnumber, a.quonumber,
+ a.transdate, a.paid,
+ a.shippingpoint, a.shipvia, a.terms, a.notes, a.intnotes,
+ a.duedate, a.taxincluded, a.curr AS currency,
+ a.employee_id, e.name AS employee, a.till, a.customer_id,
+ a.language_code, a.ponumber
+ FROM ar a
+ LEFT JOIN employee e ON (e.id = a.employee_id)
+ WHERE a.id = $form->{id}|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ $ref = $sth->fetchrow_hashref(NAME_lc);
+ for (keys %$ref) { $form->{$_} = $ref->{$_} }
+ $sth->finish;
+
+ # get shipto
+ $query = qq|SELECT * FROM shipto
+ WHERE trans_id = $form->{id}|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ $ref = $sth->fetchrow_hashref(NAME_lc);
+ for (keys %$ref) { $form->{$_} = $ref->{$_} }
+ $sth->finish;
+
+ # retrieve individual items
+ $query = qq|SELECT i.description, i.qty, i.fxsellprice, i.sellprice,
+ i.discount, i.parts_id AS id, i.unit, i.deliverydate,
+ i.project_id, pr.projectnumber, i.serialnumber, i.notes,
+ p.partnumber, p.assembly, p.bin,
+ pg.partsgroup, p.partsgroup_id, p.partnumber AS sku,
+ p.listprice, p.lastcost, p.weight, p.onhand,
+ p.inventory_accno_id, p.income_accno_id, p.expense_accno_id,
+ t.description AS partsgrouptranslation
+ FROM invoice i
+ JOIN parts p ON (i.parts_id = p.id)
+ LEFT JOIN project pr ON (i.project_id = pr.id)
+ LEFT JOIN partsgroup pg ON (p.partsgroup_id = pg.id)
+ LEFT JOIN translation t ON (t.trans_id = p.partsgroup_id AND t.language_code = '$form->{language_code}')
+ WHERE i.trans_id = $form->{id}
+ AND NOT i.assemblyitem = '1'
+ ORDER BY i.id|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ # foreign currency
+ &exchangerate_defaults($dbh, $form);
+
+ # query for price matrix
+ my $pmh = &price_matrix_query($dbh, $form);
+
+ # taxes
+ $query = qq|SELECT c.accno
+ FROM chart c
+ JOIN partstax pt ON (pt.chart_id = c.id)
+ WHERE pt.parts_id = ?|;
+ my $tth = $dbh->prepare($query) || $form->dberror($query);
+
+ my $taxrate;
+ my $ptref;
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+
+ my ($dec) = ($ref->{fxsellprice} =~ /\.(\d+)/);
+ $dec = length $dec;
+ my $decimalplaces = ($dec > 2) ? $dec : 2;
+
+ $tth->execute($ref->{id});
+
+ $ref->{taxaccounts} = "";
+ $taxrate = 0;
+
+ while ($ptref = $tth->fetchrow_hashref(NAME_lc)) {
+ $ref->{taxaccounts} .= "$ptref->{accno} ";
+ $taxrate += $form->{"$ptref->{accno}_rate"};
+ }
+ $tth->finish;
+ chop $ref->{taxaccounts};
+
+ # price matrix
+ $ref->{sellprice} = ($ref->{fxsellprice} * $form->{$form->{currency}});
+ &price_matrix($pmh, $ref, $form->{transdate}, $decimalplaces, $form, $myconfig);
+ $ref->{sellprice} = $ref->{fxsellprice};
+
+ $ref->{partsgroup} = $ref->{partsgrouptranslation} if $ref->{partsgrouptranslation};
+
+ push @{ $form->{invoice_details} }, $ref;
+ }
+ $sth->finish;
+
+ }
+
+ my $rc = $dbh->commit;
+ $dbh->disconnect;
+
+ $rc;
+
+}
+
+
+sub retrieve_item {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $i = $form->{rowcount};
+ my $null;
+ my $var;
+
+ my $where = "WHERE p.obsolete = '0' AND NOT p.income_accno_id IS NULL";
+
+ if ($form->{"partnumber_$i"} ne "") {
+ $var = $form->like(lc $form->{"partnumber_$i"});
+ $where .= " AND lower(p.partnumber) LIKE '$var'";
+ }
+ if ($form->{"description_$i"} ne "") {
+ $var = $form->like(lc $form->{"description_$i"});
+ if ($form->{language_code} ne "") {
+ $where .= " AND lower(t1.description) LIKE '$var'";
+ } else {
+ $where .= " AND lower(p.description) LIKE '$var'";
+ }
+ }
+
+ if ($form->{"partsgroup_$i"} ne "") {
+ ($null, $var) = split /--/, $form->{"partsgroup_$i"};
+ $var *= 1;
+ if ($var == 0) {
+ # search by partsgroup, this is for the POS
+ $where .= qq| AND pg.partsgroup = '$form->{"partsgroup_$i"}'|;
+ } else {
+ $where .= qq| AND p.partsgroup_id = $var|;
+ }
+ }
+
+ if ($form->{"description_$i"} ne "") {
+ $where .= " ORDER BY 3";
+ } else {
+ $where .= " ORDER BY 2";
+ }
+
+ my $query = qq|SELECT p.id, p.partnumber, p.description, p.sellprice,
+ p.listprice, p.lastcost,
+ p.unit, p.assembly, p.bin, p.onhand, p.notes,
+ p.inventory_accno_id, p.income_accno_id, p.expense_accno_id,
+ pg.partsgroup, p.partsgroup_id, p.partnumber AS sku,
+ p.weight,
+ t1.description AS translation,
+ t2.description AS grouptranslation
+ FROM parts p
+ LEFT JOIN partsgroup pg ON (pg.id = p.partsgroup_id)
+ LEFT JOIN translation t1 ON (t1.trans_id = p.id AND t1.language_code = '$form->{language_code}')
+ LEFT JOIN translation t2 ON (t2.trans_id = p.partsgroup_id AND t2.language_code = '$form->{language_code}')
+ $where|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my $ref;
+ my $ptref;
+
+ # setup exchange rates
+ &exchangerate_defaults($dbh, $form);
+
+ # taxes
+ $query = qq|SELECT c.accno
+ FROM chart c
+ JOIN partstax pt ON (c.id = pt.chart_id)
+ WHERE pt.parts_id = ?|;
+ my $tth = $dbh->prepare($query) || $form->dberror($query);
+
+
+ # price matrix
+ my $pmh = &price_matrix_query($dbh, $form);
+
+ my $transdate = $form->datetonum($myconfig, $form->{transdate});
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+
+ my ($dec) = ($ref->{sellprice} =~ /\.(\d+)/);
+ $dec = length $dec;
+ my $decimalplaces = ($dec > 2) ? $dec : 2;
+
+ # get taxes for part
+ $tth->execute($ref->{id});
+
+ $ref->{taxaccounts} = "";
+ while ($ptref = $tth->fetchrow_hashref(NAME_lc)) {
+ $ref->{taxaccounts} .= "$ptref->{accno} ";
+ }
+ $tth->finish;
+ chop $ref->{taxaccounts};
+
+ # get matrix
+ &price_matrix($pmh, $ref, $transdate, $decimalplaces, $form, $myconfig);
+
+ $ref->{description} = $ref->{translation} if $ref->{translation};
+ $ref->{partsgroup} = $ref->{grouptranslation} if $ref->{grouptranslation};
+
+ push @{ $form->{item_list} }, $ref;
+
+ }
+
+ $sth->finish;
+ $dbh->disconnect;
+
+}
+
+
+sub price_matrix_query {
+ my ($dbh, $form) = @_;
+
+ my $query = qq|SELECT p.id AS parts_id, 0 AS customer_id, 0 AS pricegroup_id,
+ 0 AS pricebreak, p.sellprice, NULL AS validfrom, NULL AS validto,
+ '$form->{defaultcurrency}' AS curr, '' AS pricegroup
+ FROM parts p
+ WHERE p.id = ?
+
+ UNION
+
+ SELECT p.*, g.pricegroup
+ FROM partscustomer p
+ LEFT JOIN pricegroup g ON (g.id = p.pricegroup_id)
+ WHERE p.parts_id = ?
+ AND p.customer_id = $form->{customer_id}
+
+ UNION
+
+ SELECT p.*, g.pricegroup
+ FROM partscustomer p
+ LEFT JOIN pricegroup g ON (g.id = p.pricegroup_id)
+ JOIN customer c ON (c.pricegroup_id = g.id)
+ WHERE p.parts_id = ?
+ AND c.id = $form->{customer_id}
+
+ UNION
+
+ SELECT p.*, '' AS pricegroup
+ FROM partscustomer p
+ WHERE p.customer_id = 0
+ AND p.pricegroup_id = 0
+ AND p.parts_id = ?
+
+ ORDER BY customer_id DESC, pricegroup_id DESC, pricebreak
+
+ |;
+ my $sth = $dbh->prepare($query) || $form->dberror($query);
+
+ $sth;
+
+}
+
+
+sub price_matrix {
+ my ($pmh, $ref, $transdate, $decimalplaces, $form, $myconfig) = @_;
+
+ $pmh->execute($ref->{id}, $ref->{id}, $ref->{id}, $ref->{id});
+
+ $ref->{pricematrix} = "";
+
+ my $customerprice;
+ my $pricegroupprice;
+ my $sellprice;
+ my $baseprice;
+ my $mref;
+ my %p = ();
+ my $i = 0;
+
+ while ($mref = $pmh->fetchrow_hashref(NAME_lc)) {
+
+ # check date
+ if ($mref->{validfrom}) {
+ next if $transdate < $form->datetonum($myconfig, $mref->{validfrom});
+ }
+ if ($mref->{validto}) {
+ next if $transdate > $form->datetonum($myconfig, $mref->{validto});
+ }
+
+ # convert price
+ $sellprice = $form->round_amount($mref->{sellprice} * $form->{$mref->{curr}}, $decimalplaces);
+
+ $mref->{pricebreak} *= 1;
+
+ if ($mref->{customer_id}) {
+ $p{$mref->{pricebreak}} = $sellprice;
+ $customerprice = 1;
+ }
+
+ if ($mref->{pricegroup_id}) {
+ if (!$customerprice) {
+ $p{$mref->{pricebreak}} = $sellprice;
+ $pricegroupprice = 1;
+ }
+ }
+
+ if (!$customerprice && !$pricegroupprice) {
+ $p{$mref->{pricebreak}} = $sellprice;
+ }
+
+ if (($mref->{pricebreak} + $mref->{customer_id} + $mref->{pricegroup_id}) == 0) {
+ $baseprice = $sellprice;
+ }
+
+ $i++;
+
+ }
+ $pmh->finish;
+
+ if (! exists $p{0}) {
+ $p{0} = $baseprice;
+ }
+
+ if ($i > 1) {
+ $ref->{sellprice} = $p{0};
+ for (sort { $a <=> $b } keys %p) { $ref->{pricematrix} .= "${_}:$p{$_} " }
+ } else {
+ $ref->{sellprice} = $form->round_amount($p{0} * (1 - $form->{tradediscount}), $decimalplaces);
+ $ref->{pricematrix} = "0:$ref->{sellprice} " if $ref->{sellprice};
+ }
+ chop $ref->{pricematrix};
+
+}
+
+
+sub exchangerate_defaults {
+ my ($dbh, $form) = @_;
+
+ my $var;
+
+ # get default currencies
+ my $query = qq|SELECT substr(curr,1,3), curr FROM defaults|;
+ my $eth = $dbh->prepare($query) || $form->dberror($query);
+ $eth->execute;
+ ($form->{defaultcurrency}, $form->{currencies}) = $eth->fetchrow_array;
+ $eth->finish;
+
+ $query = qq|SELECT buy
+ FROM exchangerate
+ WHERE curr = ?
+ AND transdate = ?|;
+ my $eth1 = $dbh->prepare($query) || $form->dberror($query);
+
+ $query = qq~SELECT max(transdate || ' ' || buy || ' ' || curr)
+ FROM exchangerate
+ WHERE curr = ?~;
+ my $eth2 = $dbh->prepare($query) || $form->dberror($query);
+
+ # get exchange rates for transdate or max
+ foreach $var (split /:/, substr($form->{currencies},4)) {
+ $eth1->execute($var, $form->{transdate});
+ ($form->{$var}) = $eth1->fetchrow_array;
+ if (! $form->{$var} ) {
+ $eth2->execute($var);
+
+ ($form->{$var}) = $eth2->fetchrow_array;
+ ($null, $form->{$var}) = split / /, $form->{$var};
+ $form->{$var} = 1 unless $form->{$var};
+ $eth2->finish;
+ }
+ $eth1->finish;
+ }
+
+ $form->{$form->{currency}} = $form->{exchangerate} if $form->{exchangerate};
+ $form->{$form->{currency}} ||= 1;
+ $form->{$form->{defaultcurrency}} = 1;
+
+}
+
+
+1;
+
diff --git a/LedgerSMB/Inifile.pm b/LedgerSMB/Inifile.pm
new file mode 100755
index 00000000..0b5055df
--- /dev/null
+++ b/LedgerSMB/Inifile.pm
@@ -0,0 +1,74 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has NOT undergone whitespace cleanup.
+#
+#======================================================================
+#
+# routines to retrieve / manipulate win ini style files
+# ORDER is used to keep the elements in the order they appear in .ini
+#
+#=====================================================================
+
+package Inifile;
+
+
+sub new {
+ my ($type, $file) = @_;
+
+ warn "$type has no copy constructor! creating a new object." if ref($type);
+ $type = ref($type) || $type;
+ my $self = bless {}, $type;
+ $self->add_file($file) if defined $file;
+
+ return $self;
+}
+
+
+sub add_file {
+ my ($self, $file) = @_;
+
+ my $id = "";
+ my %menuorder = ();
+
+ for (@{$self->{ORDER}}) { $menuorder{$_} = 1 }
+
+ open FH, "$file" or Form->error("$file : $!");
+
+ while (<FH>) {
+ next if /^(#|;|\s)/;
+ last if /^\./;
+
+ chop;
+
+ # strip comments
+ s/\s*(#|;).*//g;
+
+ # remove any trailing whitespace
+ s/^\s*(.*?)\s*$/$1/;
+
+ if (/^\[/) {
+ s/(\[|\])//g;
+ $id = $_;
+ push @{$self->{ORDER}}, $_ if ! $menuorder{$_};
+ $menuorder{$_} = 1;
+ next;
+ }
+
+ # add key=value to $id
+ my ($key, $value) = split /=/, $_, 2;
+
+ $self->{$id}{$key} = $value;
+
+ }
+ close FH;
+
+}
+
+
+1;
+
diff --git a/LedgerSMB/JC.pm b/LedgerSMB/JC.pm
new file mode 100755
index 00000000..af1ffd40
--- /dev/null
+++ b/LedgerSMB/JC.pm
@@ -0,0 +1,582 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has NOT undergone whitespace cleanup.
+#
+#======================================================================
+#
+# Job Costing
+#
+#======================================================================
+
+
+package JC;
+
+use LedgerSMB::IS;
+
+sub get_jcitems {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $query = qq|SELECT current_date FROM defaults|;
+ ($form->{transdate}) = $dbh->selectrow_array($query);
+
+ ($form->{employee}, $form->{employee_id}) = $form->get_employee($dbh);
+
+ my $dateformat = $myconfig->{dateformat};
+ $dateformat =~ s/yy/yyyy/;
+ $dateformat =~ s/yyyyyy/yyyy/;
+
+ if ($form->{id}) {
+ # retrieve timecard/storescard
+ $query = qq|SELECT j.*, to_char(j.checkedin, 'HH24:MI:SS') AS checkedina,
+ to_char(j.checkedout, 'HH24:MI:SS') AS checkedouta,
+ to_char(j.checkedin, '$dateformat') AS transdate,
+ e.name AS employee, p.partnumber,
+ pr.projectnumber, pr.description AS projectdescription,
+ pr.production, pr.completed, pr.parts_id AS project
+ FROM jcitems j
+ JOIN employee e ON (e.id = j.employee_id)
+ JOIN parts p ON (p.id = j.parts_id)
+ JOIN project pr ON (pr.id = j.project_id)
+ WHERE j.id = $form->{id}|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ $ref = $sth->fetchrow_hashref(NAME_lc);
+
+ for (keys %$ref) { $form->{$_} = $ref->{$_} }
+ $sth->finish;
+ $form->{project} = ($form->{project}) ? "job" : "project";
+ for (qw(checkedin checkedout)) {
+ $form->{$_} = $form->{"${_}a"};
+ delete $form->{"${_}a"};
+ }
+
+ $query = qq|SELECT s.printed, s.spoolfile, s.formname
+ FROM status s
+ WHERE s.formname = '$form->{type}'
+ AND s.trans_id = $form->{id}|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ $form->{printed} .= "$ref->{formname} " if $ref->{printed};
+ $form->{queued} .= "$ref->{formname} $ref->{spoolfile} " if $ref->{spoolfile};
+ }
+ $sth->finish;
+ for (qw(printed queued)) { $form->{$_} =~ s/ +$//g }
+ }
+
+ JC->jcitems_links($myconfig, $form, $dbh);
+
+ # get language codes
+ $query = qq|SELECT *
+ FROM language
+ ORDER BY 2|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ $form->{all_language} = ();
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{all_language} }, $ref;
+ }
+ $sth->finish;
+
+ $dbh->disconnect;
+
+}
+
+
+sub jcitems_links {
+ my ($self, $myconfig, $form, $dbh) = @_;
+
+ my $disconnect = 0;
+
+ if (! $dbh) {
+ $dbh = $form->dbconnect($myconfig);
+ $disconnect = 1;
+ }
+
+ my $query;
+
+ if ($form->{project_id}) {
+ $form->{orphaned} = 1;
+ $query = qq|SELECT parts_id
+ FROM project
+ WHERE id = $form->{project_id}|;
+ if ($dbh->selectrow_array($query)) {
+ $form->{project} = 'job';
+ $query = qq|SELECT id
+ FROM project
+ WHERE parts_id > 0
+ AND production > completed
+ AND id = $form->{project_id}|;
+ ($form->{orphaned}) = $dbh->selectrow_array($q);
+ } else {
+ $form->{project} = 'project';
+ }
+ }
+
+ JC->jcparts($myconfig, $form, $dbh);
+
+ $form->all_employees($myconfig, $dbh, $form->{transdate});
+
+ my $where;
+
+ if ($form->{transdate}) {
+ $where .= qq| AND (enddate IS NULL
+ OR enddate >= '$form->{transdate}')
+ AND (startdate <= '$form->{transdate}'
+ OR startdate IS NULL)|;
+ }
+
+ if ($form->{project} eq 'job') {
+ $query = qq|
+ SELECT pr.*
+ FROM project pr
+ WHERE pr.parts_id > 0
+ AND pr.production > pr.completed
+ $where|;
+ } elsif ($form->{project} eq 'project') {
+ $query = qq|
+ SELECT pr.*
+ FROM project pr
+ WHERE pr.parts_id IS NULL
+ $where|;
+ } else {
+ $query = qq|
+ SELECT pr.*
+ FROM project pr
+ WHERE 1=1
+ $where
+ EXCEPT
+ SELECT pr.*
+ FROM project pr
+ WHERE pr.parts_id > 0
+ AND pr.production = pr.completed|;
+ }
+
+ if ($form->{project_id}) {
+ $query .= qq|
+ UNION
+ SELECT *
+ FROM project
+ WHERE id = $form->{project_id}|;
+ }
+
+ $query .= qq|
+ ORDER BY projectnumber|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{all_project} }, $ref;
+ }
+ $sth->finish;
+
+ $dbh->disconnect if $disconnect;
+
+}
+
+
+sub jcparts {
+ my ($self, $myconfig, $form, $dbh) = @_;
+
+ my ($null, $project_id) = split /--/, $form->{projectnumber};
+ $project_id *= 1;
+
+ my $query = qq|SELECT customer_id
+ FROM project
+ WHERE id = $project_id|;
+ my ($customer_id) = $dbh->selectrow_array($query);
+ $customer_id *= 1;
+
+ my $where;
+
+ if ($form->{project} eq 'job') {
+ $where = " AND p.income_accno_id IS NULL";
+ if ($form->{type} eq 'storescard') {
+ $where = " AND p.inventory_accno_id > 0
+ AND p.income_accno_id > 0";
+ }
+
+ $query = qq|SELECT p.id, p.partnumber, p.description, p.sellprice,
+ p.unit, t.description AS translation
+ FROM parts p
+ LEFT JOIN translation t ON (t.trans_id = p.id AND t.language_code = '$form->{language_code}')
+ WHERE p.obsolete = '0'
+ $where|;
+ } elsif ($form->{project} eq 'project') {
+ $where = " AND p.inventory_accno_id IS NULL";
+ if ($form->{type} eq 'storescard') {
+ $where = " AND p.inventory_accno_id > 0";
+ }
+
+ $query = qq|SELECT p.id, p.partnumber, p.description, p.sellprice,
+ p.unit, t.description AS translation
+ FROM parts p
+ LEFT JOIN translation t ON (t.trans_id = p.id AND t.language_code = '$form->{language_code}')
+ WHERE p.obsolete = '0'
+ AND p.assembly = '0'
+ $where|;
+ } else {
+
+ $query = qq|SELECT p.id, p.partnumber, p.description, p.sellprice,
+ p.unit, t.description AS translation
+ FROM parts p
+ LEFT JOIN translation t ON (t.trans_id = p.id AND t.language_code = '$form->{language_code}')
+ WHERE p.obsolete = '0'
+ AND p.income_accno_id IS NULL
+ UNION
+ SELECT p.id, p.partnumber, p.description, p.sellprice,
+ p.unit, t.description AS translation
+ FROM parts p
+ LEFT JOIN translation t ON (t.trans_id = p.id AND t.language_code = '$form->{language_code}')
+ WHERE p.obsolete = '0'
+ AND p.assembly = '0'
+ AND p.inventory_accno_id IS NULL|;
+ }
+
+ $query .= qq|
+ ORDER BY 2|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my $pmh = price_matrix_query($dbh, $project_id, $customer_id);
+ IS::exchangerate_defaults($dbh, $form);
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+ $ref->{description} = $ref->{translation} if $ref->{translation};
+ IS::price_matrix($pmh, $ref, $form->datetonum($form->{transdate}), 4, $form, $myconfig);
+ push @{ $form->{all_parts} }, $ref;
+ }
+ $sth->finish;
+
+}
+
+
+sub delete_timecard {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ my %audittrail = ( tablename => 'jcitems',
+ reference => $form->{id},
+ formname => $form->{type},
+ action => 'deleted',
+ id => $form->{id} );
+
+ $form->audittrail($dbh, "", \%audittrail);
+
+ my $query = qq|DELETE FROM jcitems
+ WHERE id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ # delete spool files
+ $query = qq|SELECT spoolfile FROM status
+ WHERE formname = '$form->{type}'
+ AND trans_id = $form->{id}
+ AND spoolfile IS NOT NULL|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my $spoolfile;
+ my @spoolfiles = ();
+
+ while (($spoolfile) = $sth->fetchrow_array) {
+ push @spoolfiles, $spoolfile;
+ }
+ $sth->finish;
+
+ # delete status entries
+ $query = qq|DELETE FROM status
+ WHERE formname = '$form->{type}'
+ AND trans_id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ my $rc = $dbh->commit;
+
+ if ($rc) {
+ foreach $spoolfile (@spoolfiles) {
+ unlink "$spool/$spoolfile" if $spoolfile;
+ }
+ }
+
+ $dbh->disconnect;
+
+ $rc;
+
+}
+
+
+sub jcitems {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $query;
+ my $where = "1 = 1";
+ my $null;
+ my $var;
+
+ if ($form->{projectnumber}) {
+ ($null, $var) = split /--/, $form->{projectnumber};
+ $where .= " AND j.project_id = $var";
+
+ $query = qq|SELECT parts_id
+ FROM project
+ WHERE id = $var|;
+ my ($job) = $dbh->selectrow_array($query);
+ $form->{project} = ($job) ? "job" : "project";
+
+ }
+ if ($form->{partnumber}) {
+ ($null, $var) = split /--/, $form->{partnumber};
+ $where .= " AND j.parts_id = $var";
+
+ $query = qq|SELECT inventory_accno_id
+ FROM parts
+ WHERE id = $var|;
+ my ($job) = $dbh->selectrow_array($query);
+ $form->{project} = ($job) ? "job" : "project";
+
+ }
+ if ($form->{employee}) {
+ ($null, $var) = split /--/, $form->{employee};
+ $where .= " AND j.employee_id = $var";
+ }
+ if ($form->{open} || $form->{closed}) {
+ unless ($form->{open} && $form->{closed}) {
+ $where .= " AND j.qty != j.allocated" if $form->{open};
+ $where .= " AND j.qty = j.allocated" if $form->{closed};
+ }
+ }
+
+ ($form->{startdatefrom}, $form->{startdateto}) = $form->from_to($form->{year}, $form->{month}, $form->{interval}) if $form->{year} && $form->{month};
+
+ $where .= " AND j.checkedin >= '$form->{startdatefrom}'" if $form->{startdatefrom};
+ $where .= " AND j.checkedout < date '$form->{startdateto}' + 1" if $form->{startdateto};
+
+ my %ordinal = ( id => 1,
+ description => 2,
+ transdate => 7,
+ partnumber => 9,
+ projectnumber => 10,
+ projectdescription => 11,
+ );
+
+ my @a = (transdate, projectnumber);
+ my $sortorder = $form->sort_order(\@a, \%ordinal);
+
+ my $dateformat = $myconfig->{dateformat};
+ $dateformat =~ s/yy$/yyyy/;
+ $dateformat =~ s/yyyyyy/yyyy/;
+
+ if ($form->{project} eq 'job') {
+ if ($form->{type} eq 'timecard') {
+ $where .= " AND pr.parts_id > 0
+ AND p.income_accno_id IS NULL";
+ }
+
+ if ($form->{type} eq 'storescard') {
+ $where .= " AND pr.parts_id > 0
+ AND p.income_accno_id > 0";
+ }
+ }
+ if ($form->{project} eq 'project') {
+ $where .= " AND pr.parts_id IS NULL";
+ }
+
+ $query = qq|SELECT j.id, j.description, j.qty, j.allocated,
+ to_char(j.checkedin, 'HH24:MI') AS checkedin,
+ to_char(j.checkedout, 'HH24:MI') AS checkedout,
+ to_char(j.checkedin, 'yyyymmdd') AS transdate,
+ to_char(j.checkedin, '$dateformat') AS transdatea,
+ to_char(j.checkedin, 'D') AS weekday,
+ p.partnumber,
+ pr.projectnumber, pr.description AS projectdescription,
+ e.employeenumber, e.name AS employee,
+ to_char(j.checkedin, 'WW') AS workweek, pr.parts_id,
+ j.sellprice
+ FROM jcitems j
+ JOIN parts p ON (p.id = j.parts_id)
+ JOIN project pr ON (pr.id = j.project_id)
+ JOIN employee e ON (e.id = j.employee_id)
+ WHERE $where
+ ORDER BY employee, employeenumber, $sortorder|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ $ref->{project} = ($ref->{parts_id}) ? "job" : "project";
+ $ref->{transdate} = $ref->{transdatea};
+ delete $ref->{transdatea};
+ push @{ $form->{transactions} }, $ref;
+ }
+ $sth->finish;
+
+ $dbh->disconnect;
+
+}
+
+
+sub save {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ my $query;
+ my $sth;
+
+ my ($null, $project_id) = split /--/, $form->{projectnumber};
+
+ if ($form->{id}) {
+ # check if it was a job
+ $query = qq|SELECT pr.parts_id, pr.production - pr.completed
+ FROM project pr
+ JOIN jcitems j ON (j.project_id = pr.id)
+ WHERE j.id = $form->{id}|;
+ my ($job_id, $qty) = $dbh->selectrow_array($query);
+
+ if ($job_id && $qty == 0) {
+ $dbh->disconnect;
+ return -1;
+ }
+
+ # check if new one belongs to a job
+ if ($project_id) {
+ $query = qq|SELECT pr.parts_id, pr.production - pr.completed
+ FROM project pr
+ WHERE pr.id = $project_id|;
+ my ($job_id, $qty) = $dbh->selectrow_array($query);
+
+ if ($job_id && $qty == 0) {
+ $dbh->disconnect;
+ return -2;
+ }
+ }
+
+ } else {
+ my $uid = localtime;
+ $uid .= "$$";
+
+ $query = qq|INSERT INTO jcitems (description)
+ VALUES ('$uid')|;
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|SELECT id FROM jcitems
+ WHERE description = '$uid'|;
+ ($form->{id}) = $dbh->selectrow_array($query);
+ }
+
+ for (qw(inhour inmin insec outhour outmin outsec)) { $form->{$_} = substr("00$form->{$_}", -2) }
+ for (qw(qty sellprice allocated)) { $form->{$_} = $form->parse_amount($myconfig, $form->{$_}) }
+
+ my $checkedin = "$form->{inhour}$form->{inmin}$form->{insec}";
+ my $checkedout = "$form->{outhour}$form->{outmin}$form->{outsec}";
+
+ my $outdate = $form->{transdate};
+ if ($checkedout < $checkedin) {
+ $outdate = $form->add_date($myconfig, $form->{transdate}, 1, 'days');
+ }
+
+ ($null, $form->{employee_id}) = split /--/, $form->{employee};
+ unless ($form->{employee_id}) {
+ ($form->{employee}, $form->{employee_id}) = $form->get_employee($dbh);
+ }
+
+ my $parts_id;
+ ($null, $parts_id) = split /--/, $form->{partnumber};
+
+ $query = qq|UPDATE jcitems SET
+ project_id = $project_id,
+ parts_id = $parts_id,
+ description = |.$dbh->quote($form->{description}).qq|,
+ qty = $form->{qty},
+ allocated = $form->{allocated},
+ sellprice = $form->{sellprice},
+ fxsellprice = $form->{sellprice},
+ serialnumber = |.$dbh->quote($form->{serialnumber}).qq|,
+ checkedin = timestamp '$form->{transdate} $form->{inhour}:$form->{inmin}:$form->{insec}',
+ checkedout = timestamp '$outdate $form->{outhour}:$form->{outmin}:$form->{outsec}',
+ employee_id = $form->{employee_id},
+ notes = |.$dbh->quote($form->{notes}).qq|
+ WHERE id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ # save printed, queued
+ $form->save_status($dbh);
+
+ my %audittrail = ( tablename => 'jcitems',
+ reference => $form->{id},
+ formname => $form->{type},
+ action => 'saved',
+ id => $form->{id} );
+
+ $form->audittrail($dbh, "", \%audittrail);
+
+ my $rc = $dbh->commit;
+
+ $rc;
+
+}
+
+
+sub price_matrix_query {
+ my ($dbh, $project_id, $customer_id) = @_;
+
+ my $query = qq|SELECT p.id AS parts_id, 0 AS customer_id, 0 AS pricegroup_id,
+ 0 AS pricebreak, p.sellprice, NULL AS validfrom, NULL AS validto,
+ (SELECT substr(curr,1,3) FROM defaults) AS curr, '' AS pricegroup
+ FROM parts p
+ WHERE p.id = ?
+
+ UNION
+
+ SELECT p.*, g.pricegroup
+ FROM partscustomer p
+ LEFT JOIN pricegroup g ON (g.id = p.pricegroup_id)
+ WHERE p.parts_id = ?
+ AND p.customer_id = $customer_id
+
+ UNION
+
+ SELECT p.*, g.pricegroup
+ FROM partscustomer p
+ LEFT JOIN pricegroup g ON (g.id = p.pricegroup_id)
+ JOIN customer c ON (c.pricegroup_id = g.id)
+ WHERE p.parts_id = ?
+ AND c.id = $customer_id
+
+ UNION
+
+ SELECT p.*, '' AS pricegroup
+ FROM partscustomer p
+ WHERE p.customer_id = 0
+ AND p.pricegroup_id = 0
+ AND p.parts_id = ?
+
+ ORDER BY customer_id DESC, pricegroup_id DESC, pricebreak
+
+ |;
+ my $sth = $dbh->prepare($query) || $form->dberror($query);
+
+ $sth;
+
+}
+
+
+1;
+
diff --git a/LedgerSMB/Mailer.pm b/LedgerSMB/Mailer.pm
new file mode 100755
index 00000000..db44cff0
--- /dev/null
+++ b/LedgerSMB/Mailer.pm
@@ -0,0 +1,149 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has NOT undergone whitespace cleanup.
+#
+#======================================================================
+#
+# mailer package
+#
+#======================================================================
+
+package Mailer;
+
+sub new {
+ my ($type) = @_;
+ my $self = {};
+
+ bless $self, $type;
+}
+
+
+sub send {
+ my ($self, $out) = @_;
+
+ my $boundary = time;
+ $boundary = "LedgerSMB-$self->{version}-$boundary";
+ my $domain = $self->{from};
+ $domain =~ s/(.*?\@|>)//g;
+ my $msgid = "$boundary\@$domain";
+
+ $self->{charset} = "ISO-8859-1" unless $self->{charset};
+
+ if ($out) {
+ open(OUT, $out) or return "$out : $!";
+ } else {
+ open(OUT, ">-") or return "STDOUT : $!";
+ }
+
+ $self->{contenttype} = "text/plain" unless $self->{contenttype};
+
+ my %h;
+ for (qw(from to cc bcc)) {
+ $self->{$_} =~ s/\&lt;/</g;
+ $self->{$_} =~ s/\&gt;/>/g;
+ $self->{$_} =~ s/(\/|\\|\$)//g;
+ $h{$_} = $self->{$_};
+ }
+
+ $h{cc} = "Cc: $h{cc}\n" if $self->{cc};
+ $h{bcc} = "Bcc: $h{bcc}\n" if $self->{bcc};
+ $h{notify} = "Disposition-Notification-To: $h{from}\n" if $self->{notify};
+ $h{subject} = ($self->{subject} =~ /([\x00-\x1F]|[\x7B-\xFFFF])/) ? "Subject: =?$self->{charset}?B?".&encode_base64($self->{subject},"")."?=" : "Subject: $self->{subject}";
+
+ print OUT qq|From: $h{from}
+To: $h{to}
+$h{cc}$h{bcc}$h{subject}
+Message-ID: <$msgid>
+$h{notify}X-Mailer: LedgerSMB $self->{version}
+MIME-Version: 1.0
+|;
+
+
+ if (@{ $self->{attachments} }) {
+ print OUT qq|Content-Type: multipart/mixed; boundary="$boundary"
+
+|;
+ if ($self->{message} ne "") {
+ print OUT qq|--${boundary}
+Content-Type: $self->{contenttype}; charset="$self->{charset}"
+
+$self->{message}
+
+|;
+ }
+
+ foreach my $attachment (@{ $self->{attachments} }) {
+
+ my $application = ($attachment =~ /(^\w+$)|\.(html|text|txt|sql)$/) ? "text" : "application";
+
+ unless (open IN, $attachment) {
+ close(OUT);
+ return "$attachment : $!";
+ }
+
+ my $filename = $attachment;
+ # strip path
+ $filename =~ s/(.*\/|$self->{fileid})//g;
+
+ print OUT qq|--${boundary}
+Content-Type: $application/$self->{format}; name="$filename"; charset="$self->{charset}"
+Content-Transfer-Encoding: BASE64
+Content-Disposition: attachment; filename="$filename"\n\n|;
+
+ my $msg = "";
+ while (<IN>) {;
+ $msg .= $_;
+ }
+ print OUT &encode_base64($msg);
+
+ close(IN);
+
+ }
+ print OUT qq|--${boundary}--\n|;
+
+ } else {
+ print OUT qq|Content-Type: $self->{contenttype}; charset="$self->{charset}"
+
+$self->{message}
+|;
+ }
+
+ close(OUT);
+
+ return "";
+
+}
+
+
+sub encode_base64 ($;$) {
+
+ # this code is from the MIME-Base64-2.12 package
+ # Copyright 1995-1999,2001 Gisle Aas <gisle@ActiveState.com>
+
+ my $res = "";
+ my $eol = $_[1];
+ $eol = "\n" unless defined $eol;
+ pos($_[0]) = 0; # ensure start at the beginning
+
+ $res = join '', map( pack('u',$_)=~ /^.(\S*)/, ($_[0]=~/(.{1,45})/gs));
+
+ $res =~ tr|` -_|AA-Za-z0-9+/|; # `# help emacs
+ # fix padding at the end
+ my $padding = (3 - length($_[0]) % 3) % 3;
+ $res =~ s/.{$padding}$/'=' x $padding/e if $padding;
+ # break encoded string into lines of no more than 60 characters each
+ if (length $eol) {
+ $res =~ s/(.{1,60})/$1$eol/g;
+ }
+ return $res;
+
+}
+
+
+1;
+
diff --git a/LedgerSMB/Menu.pm b/LedgerSMB/Menu.pm
new file mode 100755
index 00000000..417f6cba
--- /dev/null
+++ b/LedgerSMB/Menu.pm
@@ -0,0 +1,91 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has NOT undergone whitespace cleanup.
+#
+#======================================================================
+#
+# routines for menu items
+#
+#=====================================================================
+
+package Menu;
+
+use LedgerSMB::Inifile;
+@ISA = qw/Inifile/;
+
+
+sub menuitem {
+ my ($self, $myconfig, $form, $item) = @_;
+
+ my $module = ($self->{$item}{module}) ? $self->{$item}{module} : $form->{script};
+ my $action = ($self->{$item}{action}) ? $self->{$item}{action} : "section_menu";
+ my $target = ($self->{$item}{target}) ? $self->{$item}{target} : "";
+
+ my $level = $form->escape($item);
+ my $str = qq|<a href="$module?path=$form->{path}&action=$action&level=$level&login=$form->{login}&timeout=$form->{timeout}&sessionid=$form->{sessionid}&js=$form->{js}|;
+
+ my @vars = qw(module action target href);
+
+ if ($self->{$item}{href}) {
+ $str = qq|<a href="$self->{$item}{href}|;
+ @vars = qw(module target href);
+ }
+
+ for (@vars) { delete $self->{$item}{$_} }
+
+ delete $self->{$item}{submenu};
+
+ # add other params
+ foreach my $key (keys %{ $self->{$item} }) {
+ $str .= "&".$form->escape($key)."=";
+ ($value, $conf) = split /=/, $self->{$item}{$key}, 2;
+ $value = "$myconfig->{$value}$conf" if $self->{$item}{$key} =~ /=/;
+
+ $str .= $form->escape($value);
+ }
+
+ $str .= qq|#id$form->{tag}| if $target eq 'acc_menu';
+
+ if ($target) {
+ $str .= qq|" target="$target"|;
+ }
+
+ $str .= qq|>|;
+
+}
+
+
+sub access_control {
+ my ($self, $myconfig, $menulevel) = @_;
+
+ my @menu = ();
+
+ if ($menulevel eq "") {
+ @menu = grep { !/--/ } @{ $self->{ORDER} };
+ } else {
+ @menu = grep { /^${menulevel}--/; } @{ $self->{ORDER} };
+ }
+
+ my @a = split /;/, $myconfig->{acs};
+ my $excl = ();
+
+ # remove --AR, --AP from array
+ grep { ($a, $b) = split /--/; s/--$a$//; } @a;
+
+ for (@a) { $excl{$_} = 1 }
+
+ @a = ();
+ for (@menu) { push @a, $_ unless $excl{$_} }
+
+ @a;
+
+}
+
+
+1;
+
diff --git a/LedgerSMB/Num2text.pm b/LedgerSMB/Num2text.pm
new file mode 100755
index 00000000..d8ecdef3
--- /dev/null
+++ b/LedgerSMB/Num2text.pm
@@ -0,0 +1,149 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has NOT undergone whitespace cleanup.
+#
+#======================================================================
+#
+# this is the default code for the Check package
+#
+#=====================================================================
+
+
+sub init {
+ my $self = shift;
+
+ %{ $self->{numbername} } =
+ (0 => 'Zero',
+ 1 => 'One',
+ 2 => 'Two',
+ 3 => 'Three',
+ 4 => 'Four',
+ 5 => 'Five',
+ 6 => 'Six',
+ 7 => 'Seven',
+ 8 => 'Eight',
+ 9 => 'Nine',
+ 10 => 'Ten',
+ 11 => 'Eleven',
+ 12 => 'Twelve',
+ 13 => 'Thirteen',
+ 14 => 'Fourteen',
+ 15 => 'Fifteen',
+ 16 => 'Sixteen',
+ 17 => 'Seventeen',
+ 18 => 'Eighteen',
+ 19 => 'Nineteen',
+ 20 => 'Twenty',
+ 30 => 'Thirty',
+ 40 => 'Forty',
+ 50 => 'Fifty',
+ 60 => 'Sixty',
+ 70 => 'Seventy',
+ 80 => 'Eighty',
+ 90 => 'Ninety',
+ 10**2 => 'Hundred',
+ 10**3 => 'Thousand',
+ 10**6 => 'Million',
+ 10**9 => 'Billion',
+ 10**12 => 'Trillion',
+ );
+
+}
+
+
+sub num2text {
+ my ($self, $amount) = @_;
+
+ return $self->{numbername}{0} unless $amount;
+
+ my @textnumber = ();
+
+ # split amount into chunks of 3
+ my @num = reverse split //, abs($amount);
+ my @numblock = ();
+ my @a;
+ my $i;
+
+ while (@num) {
+ @a = ();
+ for (1 .. 3) {
+ push @a, shift @num;
+ }
+ push @numblock, join / /, reverse @a;
+ }
+
+ while (@numblock) {
+
+ $i = $#numblock;
+ @num = split //, $numblock[$i];
+
+ if ($numblock[$i] == 0) {
+ pop @numblock;
+ next;
+ }
+
+ if ($numblock[$i] > 99) {
+ # the one from hundreds
+ push @textnumber, $self->{numbername}{$num[0]};
+
+ # add hundred designation
+ push @textnumber, $self->{numbername}{10**2};
+
+ # reduce numblock
+ $numblock[$i] -= $num[0] * 100;
+
+ }
+
+ $numblock[$i] *= 1;
+
+ if ($numblock[$i] > 9) {
+ # tens
+ push @textnumber, $self->format_ten($numblock[$i]);
+ } elsif ($numblock[$i] > 0) {
+ # ones
+ push @textnumber, $self->{numbername}{$numblock[$i]};
+ }
+
+ # add thousand, million
+ if ($i) {
+ $num = 10**($i * 3);
+ push @textnumber, $self->{numbername}{$num};
+ }
+
+ pop @numblock;
+
+ }
+
+ join ' ', @textnumber;
+
+}
+
+
+sub format_ten {
+ my ($self, $amount) = @_;
+
+ my $textnumber = "";
+ my @num = split //, $amount;
+
+ if ($amount > 20) {
+ $textnumber = $self->{numbername}{$num[0]*10};
+ $amount = $num[1];
+ } else {
+ $textnumber = $self->{numbername}{$amount};
+ $amount = 0;
+ }
+
+ $textnumber .= " ".$self->{numbername}{$amount} if $amount;
+
+ $textnumber;
+
+}
+
+
+1;
+
diff --git a/LedgerSMB/OE.pm b/LedgerSMB/OE.pm
new file mode 100755
index 00000000..25bcecd3
--- /dev/null
+++ b/LedgerSMB/OE.pm
@@ -0,0 +1,2238 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has NOT undergone whitespace cleanup.
+#
+#======================================================================
+#
+# Order entry module
+# Quotation
+#
+#======================================================================
+
+package OE;
+
+
+sub transactions {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $query;
+ my $null;
+ my $var;
+ my $ordnumber = 'ordnumber';
+ my $quotation = '0';
+ my $department;
+
+ my $rate = ($form->{vc} eq 'customer') ? 'buy' : 'sell';
+
+ ($form->{transdatefrom}, $form->{transdateto}) = $form->from_to($form->{year}, $form->{month}, $form->{interval}) if $form->{year} && $form->{month};
+
+ if ($form->{type} =~ /_quotation$/) {
+ $quotation = '1';
+ $ordnumber = 'quonumber';
+ }
+
+ my $number = $form->like(lc $form->{$ordnumber});
+ my $name = $form->like(lc $form->{$form->{vc}});
+
+ for (qw(department employee)) {
+ if ($form->{$_}) {
+ ($null, $var) = split /--/, $form->{$_};
+ $department .= " AND o.${_}_id = $var";
+ }
+ }
+
+ my $query = qq|SELECT o.id, o.ordnumber, o.transdate, o.reqdate,
+ o.amount, ct.name, o.netamount, o.$form->{vc}_id,
+ ex.$rate AS exchangerate,
+ o.closed, o.quonumber, o.shippingpoint, o.shipvia,
+ e.name AS employee, m.name AS manager, o.curr, o.ponumber
+ FROM oe o
+ JOIN $form->{vc} ct ON (o.$form->{vc}_id = ct.id)
+ LEFT JOIN employee e ON (o.employee_id = e.id)
+ LEFT JOIN employee m ON (e.managerid = m.id)
+ LEFT JOIN exchangerate ex ON (ex.curr = o.curr
+ AND ex.transdate = o.transdate)
+ WHERE o.quotation = '$quotation'
+ $department|;
+
+ my %ordinal = ( id => 1,
+ ordnumber => 2,
+ transdate => 3,
+ reqdate => 4,
+ name => 6,
+ quonumber => 11,
+ shipvia => 13,
+ employee => 14,
+ manager => 15,
+ curr => 16,
+ ponumber => 17
+ );
+
+ my @a = (transdate, $ordnumber, name);
+ push @a, "employee" if $form->{l_employee};
+ if ($form->{type} !~ /(ship|receive)_order/) {
+ push @a, "manager" if $form->{l_manager};
+ }
+ my $sortorder = $form->sort_order(\@a, \%ordinal);
+
+
+ # build query if type eq (ship|receive)_order
+ if ($form->{type} =~ /(ship|receive)_order/) {
+
+ my ($warehouse, $warehouse_id) = split /--/, $form->{warehouse};
+
+ $query = qq|SELECT DISTINCT o.id, o.ordnumber, o.transdate,
+ o.reqdate, o.amount, ct.name, o.netamount, o.$form->{vc}_id,
+ ex.$rate AS exchangerate,
+ o.closed, o.quonumber, o.shippingpoint, o.shipvia,
+ e.name AS employee, o.curr, o.ponumber
+ FROM oe o
+ JOIN $form->{vc} ct ON (o.$form->{vc}_id = ct.id)
+ JOIN orderitems oi ON (oi.trans_id = o.id)
+ JOIN parts p ON (p.id = oi.parts_id)|;
+
+ if ($warehouse_id && $form->{type} eq 'ship_order') {
+ $query .= qq|
+ JOIN inventory i ON (oi.parts_id = i.parts_id)
+ |;
+ }
+
+ $query .= qq|
+ LEFT JOIN employee e ON (o.employee_id = e.id)
+ LEFT JOIN exchangerate ex ON (ex.curr = o.curr
+ AND ex.transdate = o.transdate)
+ WHERE o.quotation = '0'
+ AND (p.inventory_accno_id > 0 OR p.assembly = '1')
+ AND oi.qty != oi.ship
+ $department|;
+
+ if ($warehouse_id && $form->{type} eq 'ship_order') {
+ $query .= qq|
+ AND i.warehouse_id = $warehouse_id
+ AND ( SELECT SUM(i.qty)
+ FROM inventory i
+ WHERE oi.parts_id = i.parts_id
+ AND i.warehouse_id = $warehouse_id ) > 0
+ |;
+ }
+
+ }
+
+ if ($form->{"$form->{vc}_id"}) {
+ $query .= qq| AND o.$form->{vc}_id = $form->{"$form->{vc}_id"}|;
+ } else {
+ if ($form->{$form->{vc}} ne "") {
+ $query .= " AND lower(ct.name) LIKE '$name'";
+ }
+ }
+
+ if ($form->{$ordnumber} ne "") {
+ $query .= " AND lower($ordnumber) LIKE '$number'";
+ $form->{open} = 1;
+ $form->{closed} = 1;
+ }
+ if ($form->{ponumber} ne "") {
+ $query .= " AND lower(ponumber) LIKE '$form->{ponumber}'";
+ }
+
+ if (!$form->{open} && !$form->{closed}) {
+ $query .= " AND o.id = 0";
+ } elsif (!($form->{open} && $form->{closed})) {
+ $query .= ($form->{open}) ? " AND o.closed = '0'" : " AND o.closed = '1'";
+ }
+
+ if ($form->{shipvia} ne "") {
+ $var = $form->like(lc $form->{shipvia});
+ $query .= " AND lower(o.shipvia) LIKE '$var'";
+ }
+ if ($form->{description} ne "") {
+ $var = $form->like(lc $form->{description});
+ $query .= " AND o.id IN (SELECT DISTINCT trans_id
+ FROM orderitems
+ WHERE lower(description) LIKE '$var')";
+ }
+
+ if ($form->{transdatefrom}) {
+ $query .= " AND o.transdate >= '$form->{transdatefrom}'";
+ }
+ if ($form->{transdateto}) {
+ $query .= " AND o.transdate <= '$form->{transdateto}'";
+ }
+
+ $query .= " ORDER by $sortorder";
+
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my %oid = ();
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+ $ref->{exchangerate} = 1 unless $ref->{exchangerate};
+ if ($ref->{id} != $oid{id}{$ref->{id}}) {
+ push @{ $form->{OE} }, $ref;
+ $oid{vc}{$ref->{curr}}{$ref->{"$form->{vc}_id"}}++;
+ }
+ $oid{id}{$ref->{id}} = $ref->{id};
+ }
+ $sth->finish;
+
+ $dbh->disconnect;
+
+ if ($form->{type} =~ /^consolidate_/) {
+ @a = ();
+ foreach $ref (@{ $form->{OE} }) { push @a, $ref if $oid{vc}{$ref->{curr}}{$ref->{"$form->{vc}_id"}} > 1 }
+
+ @{ $form->{OE} } = @a;
+ }
+
+}
+
+
+
+sub save {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database, turn off autocommit
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ my $query;
+ my $sth;
+ my $null;
+ my $exchangerate = 0;
+
+ ($null, $form->{employee_id}) = split /--/, $form->{employee};
+ if (! $form->{employee_id}) {
+ ($form->{employee}, $form->{employee_id}) = $form->get_employee($dbh);
+ $form->{employee} = "$form->{employee}--$form->{employee_id}";
+ }
+
+ my $ml = ($form->{type} eq 'sales_order') ? 1 : -1;
+
+ $query = qq|SELECT p.assembly, p.project_id
+ FROM parts p
+ WHERE p.id = ?|;
+ my $pth = $dbh->prepare($query) || $form->dberror($query);
+
+
+ if ($form->{id}) {
+ $query = qq|SELECT id FROM oe
+ WHERE id = $form->{id}|;
+
+ if ($dbh->selectrow_array($query)) {
+ &adj_onhand($dbh, $form, $ml) if $form->{type} =~ /_order$/;
+
+ $query = qq|DELETE FROM orderitems
+ WHERE trans_id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|DELETE FROM shipto
+ WHERE trans_id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ } else {
+ $query = qq|INSERT INTO oe (id)
+ VALUES ($form->{id})|;
+ $dbh->do($query) || $form->dberror($query);
+ }
+ }
+
+ if (! $form->{id}) {
+
+ my $uid = localtime;
+ $uid .= "$$";
+
+ $query = qq|INSERT INTO oe (ordnumber, employee_id)
+ VALUES ('$uid', $form->{employee_id})|;
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|SELECT id FROM oe
+ WHERE ordnumber = '$uid'|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+ ($form->{id}) = $sth->fetchrow_array;
+ $sth->finish;
+
+ }
+
+ my $amount;
+ my $linetotal;
+ my $discount;
+ my $project_id;
+ my $taxrate;
+ my $taxamount;
+ my $fxsellprice;
+ my %taxbase;
+ my @taxaccounts;
+ my %taxaccounts;
+ my $netamount = 0;
+
+
+ for my $i (1 .. $form->{rowcount}) {
+
+ for (qw(qty ship)) { $form->{"${_}_$i"} = $form->parse_amount($myconfig, $form->{"${_}_$i"}) }
+
+ $form->{"discount_$i"} = $form->parse_amount($myconfig, $form->{"discount_$i"}) / 100;
+ $form->{"sellprice_$i"} = $form->parse_amount($myconfig, $form->{"sellprice_$i"});
+
+ if ($form->{"qty_$i"}) {
+
+ $pth->execute($form->{"id_$i"});
+ $ref = $pth->fetchrow_hashref(NAME_lc);
+ for (keys %$ref) { $form->{"${_}_$i"} = $ref->{$_} }
+ $pth->finish;
+
+ $fxsellprice = $form->{"sellprice_$i"};
+
+ my ($dec) = ($form->{"sellprice_$i"} =~ /\.(\d+)/);
+ $dec = length $dec;
+ my $decimalplaces = ($dec > 2) ? $dec : 2;
+
+ $discount = $form->round_amount($form->{"sellprice_$i"} * $form->{"discount_$i"}, $decimalplaces);
+ $form->{"sellprice_$i"} = $form->round_amount($form->{"sellprice_$i"} - $discount, $decimalplaces);
+
+ $linetotal = $form->round_amount($form->{"sellprice_$i"} * $form->{"qty_$i"}, 2);
+
+ @taxaccounts = split / /, $form->{"taxaccounts_$i"};
+ $taxrate = 0;
+ $taxdiff = 0;
+
+ for (@taxaccounts) { $taxrate += $form->{"${_}_rate"} }
+
+ if ($form->{taxincluded}) {
+ $taxamount = $linetotal * $taxrate / (1 + $taxrate);
+ $taxbase = $linetotal - $taxamount;
+ # we are not keeping a natural price, do not round
+ $form->{"sellprice_$i"} = $form->{"sellprice_$i"} * (1 / (1 + $taxrate));
+ } else {
+ $taxamount = $linetotal * $taxrate;
+ $taxbase = $linetotal;
+ }
+
+ if (@taxaccounts && $form->round_amount($taxamount, 2) == 0) {
+ if ($form->{taxincluded}) {
+ foreach $item (@taxaccounts) {
+ $taxamount = $form->round_amount($linetotal * $form->{"${item}_rate"} / (1 + abs($form->{"${item}_rate"})), 2);
+
+ $taxaccounts{$item} += $taxamount;
+ $taxdiff += $taxamount;
+
+ $taxbase{$item} += $taxbase;
+ }
+ $taxaccounts{$taxaccounts[0]} += $taxdiff;
+ } else {
+ foreach $item (@taxaccounts) {
+ $taxaccounts{$item} += $linetotal * $form->{"${item}_rate"};
+ $taxbase{$item} += $taxbase;
+ }
+ }
+ } else {
+ foreach $item (@taxaccounts) {
+ $taxaccounts{$item} += $taxamount * $form->{"${item}_rate"} / $taxrate;
+ $taxbase{$item} += $taxbase;
+ }
+ }
+
+
+ $netamount += $form->{"sellprice_$i"} * $form->{"qty_$i"};
+
+ $project_id = 'NULL';
+ if ($form->{"projectnumber_$i"} ne "") {
+ ($null, $project_id) = split /--/, $form->{"projectnumber_$i"};
+ }
+ $project_id = $form->{"project_id_$i"} if $form->{"project_id_$i"};
+
+ # save detail record in orderitems table
+ $query = qq|INSERT INTO orderitems (|;
+ $query .= "id, " if $form->{"orderitems_id_$i"};
+ $query .= qq|trans_id, parts_id, description, qty, sellprice, discount,
+ unit, reqdate, project_id, ship, serialnumber, notes)
+ VALUES (|;
+ $query .= qq|$form->{"orderitems_id_$i"},| if $form->{"orderitems_id_$i"};
+ $query .= qq|$form->{id}, $form->{"id_$i"}, |
+ .$dbh->quote($form->{"description_$i"}).qq|,
+ $form->{"qty_$i"}, $fxsellprice, $form->{"discount_$i"}, |
+ .$dbh->quote($form->{"unit_$i"}).qq|, |
+ .$form->dbquote($form->{"reqdate_$i"}, SQL_DATE).qq|,
+ $project_id, $form->{"ship_$i"}, |
+ .$dbh->quote($form->{"serialnumber_$i"}).qq|, |
+ .$dbh->quote($form->{"notes_$i"}).qq|)|;
+ $dbh->do($query) || $form->dberror($query);
+
+ $form->{"sellprice_$i"} = $fxsellprice;
+ }
+ $form->{"discount_$i"} *= 100;
+ }
+
+
+ # set values which could be empty
+ for (qw(vendor_id customer_id taxincluded closed quotation)) { $form->{$_} *= 1 }
+
+ # add up the tax
+ my $tax = 0;
+ for (keys %taxaccounts) { $tax += $taxaccounts{$_} }
+
+ $amount = $form->round_amount($netamount + $tax, 2);
+ $netamount = $form->round_amount($netamount, 2);
+
+ if ($form->{currency} eq $form->{defaultcurrency}) {
+ $form->{exchangerate} = 1;
+ } else {
+ $exchangerate = $form->check_exchangerate($myconfig, $form->{currency}, $form->{transdate}, ($form->{vc} eq 'customer') ? 'buy' : 'sell');
+ }
+
+ $form->{exchangerate} = ($exchangerate) ? $exchangerate : $form->parse_amount($myconfig, $form->{exchangerate});
+
+ my $quotation;
+ my $ordnumber;
+ my $numberfld;
+ if ($form->{type} =~ /_order$/) {
+ $quotation = "0";
+ $ordnumber = "ordnumber";
+ $numberfld = ($form->{vc} eq 'customer') ? "sonumber" : "ponumber";
+ } else {
+ $quotation = "1";
+ $ordnumber = "quonumber";
+ $numberfld = ($form->{vc} eq 'customer') ? "sqnumber" : "rfqnumber";
+ }
+
+ $form->{$ordnumber} = $form->update_defaults($myconfig, $numberfld, $dbh) unless $form->{$ordnumber};
+
+ ($null, $form->{department_id}) = split(/--/, $form->{department});
+ for (qw(department_id terms)) { $form->{$_} *= 1 }
+
+ # save OE record
+ $query = qq|UPDATE oe set
+ ordnumber = |.$dbh->quote($form->{ordnumber}).qq|,
+ quonumber = |.$dbh->quote($form->{quonumber}).qq|,
+ transdate = '$form->{transdate}',
+ vendor_id = $form->{vendor_id},
+ customer_id = $form->{customer_id},
+ amount = $amount,
+ netamount = $netamount,
+ reqdate = |.$form->dbquote($form->{reqdate}, SQL_DATE).qq|,
+ taxincluded = '$form->{taxincluded}',
+ shippingpoint = |.$dbh->quote($form->{shippingpoint}).qq|,
+ shipvia = |.$dbh->quote($form->{shipvia}).qq|,
+ notes = |.$dbh->quote($form->{notes}).qq|,
+ intnotes = |.$dbh->quote($form->{intnotes}).qq|,
+ curr = '$form->{currency}',
+ closed = '$form->{closed}',
+ quotation = '$quotation',
+ department_id = $form->{department_id},
+ employee_id = $form->{employee_id},
+ language_code = '$form->{language_code}',
+ ponumber = |.$dbh->quote($form->{ponumber}).qq|,
+ terms = $form->{terms}
+ WHERE id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ $form->{ordtotal} = $amount;
+
+ # add shipto
+ $form->{name} = $form->{$form->{vc}};
+ $form->{name} =~ s/--$form->{"$form->{vc}_id"}//;
+ $form->add_shipto($dbh, $form->{id});
+
+ # save printed, emailed, queued
+ $form->save_status($dbh);
+
+ if (($form->{currency} ne $form->{defaultcurrency}) && !$exchangerate) {
+ if ($form->{vc} eq 'customer') {
+ $form->update_exchangerate($dbh, $form->{currency}, $form->{transdate}, $form->{exchangerate}, 0);
+ }
+ if ($form->{vc} eq 'vendor') {
+ $form->update_exchangerate($dbh, $form->{currency}, $form->{transdate}, 0, $form->{exchangerate});
+ }
+ }
+
+
+ if ($form->{type} =~ /_order$/) {
+ # adjust onhand
+ &adj_onhand($dbh, $form, $ml * -1);
+ &adj_inventory($dbh, $myconfig, $form);
+ }
+
+ my %audittrail = ( tablename => 'oe',
+ reference => ($form->{type} =~ /_order$/) ? $form->{ordnumber} : $form->{quonumber},
+ formname => $form->{type},
+ action => 'saved',
+ id => $form->{id} );
+
+ $form->audittrail($dbh, "", \%audittrail);
+
+ $form->save_recurring($dbh, $myconfig);
+
+ my $rc = $dbh->commit;
+ $dbh->disconnect;
+
+ $rc;
+
+}
+
+
+
+sub delete {
+ my ($self, $myconfig, $form, $spool) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ # delete spool files
+ my $query = qq|SELECT spoolfile FROM status
+ WHERE trans_id = $form->{id}
+ AND spoolfile IS NOT NULL|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my $spoolfile;
+ my @spoolfiles = ();
+
+ while (($spoolfile) = $sth->fetchrow_array) {
+ push @spoolfiles, $spoolfile;
+ }
+ $sth->finish;
+
+
+ $query = qq|SELECT o.parts_id, o.ship, p.inventory_accno_id, p.assembly
+ FROM orderitems o
+ JOIN parts p ON (p.id = o.parts_id)
+ WHERE trans_id = $form->{id}|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ if ($form->{type} =~ /_order$/) {
+ $ml = ($form->{type} eq 'purchase_order') ? -1 : 1;
+ while (my ($id, $ship, $inv, $assembly) = $sth->fetchrow_array) {
+ $form->update_balance($dbh,
+ "parts",
+ "onhand",
+ qq|id = $id|,
+ $ship * $ml) if ($inv || $assembly);
+ }
+ }
+ $sth->finish;
+
+ # delete inventory
+ $query = qq|DELETE FROM inventory
+ WHERE trans_id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ # delete status entries
+ $query = qq|DELETE FROM status
+ WHERE trans_id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ # delete OE record
+ $query = qq|DELETE FROM oe
+ WHERE id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ # delete individual entries
+ $query = qq|DELETE FROM orderitems
+ WHERE trans_id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|DELETE FROM shipto
+ WHERE trans_id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ my %audittrail = ( tablename => 'oe',
+ reference => ($form->{type} =~ /_order$/) ? $form->{ordnumber} : $form->{quonumber},
+ formname => $form->{type},
+ action => 'deleted',
+ id => $form->{id} );
+
+ $form->audittrail($dbh, "", \%audittrail);
+
+ my $rc = $dbh->commit;
+ $dbh->disconnect;
+
+ if ($rc) {
+ foreach $spoolfile (@spoolfiles) {
+ unlink "$spool/$spoolfile" if $spoolfile;
+ }
+ }
+
+ $rc;
+
+}
+
+
+
+sub retrieve {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $query;
+ my $sth;
+ my $var;
+ my $ref;
+
+ $query = qq|SELECT curr, current_date
+ FROM defaults|;
+ ($form->{currencies}, $form->{transdate}) = $dbh->selectrow_array($query);
+
+ if ($form->{id}) {
+
+ # retrieve order
+ $query = qq|SELECT o.ordnumber, o.transdate, o.reqdate, o.terms,
+ o.taxincluded, o.shippingpoint, o.shipvia, o.notes, o.intnotes,
+ o.curr AS currency, e.name AS employee, o.employee_id,
+ o.$form->{vc}_id, vc.name AS $form->{vc}, o.amount AS invtotal,
+ o.closed, o.reqdate, o.quonumber, o.department_id,
+ d.description AS department, o.language_code, o.ponumber
+ FROM oe o
+ JOIN $form->{vc} vc ON (o.$form->{vc}_id = vc.id)
+ LEFT JOIN employee e ON (o.employee_id = e.id)
+ LEFT JOIN department d ON (o.department_id = d.id)
+ WHERE o.id = $form->{id}|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ $ref = $sth->fetchrow_hashref(NAME_lc);
+ for (keys %$ref) { $form->{$_} = $ref->{$_} }
+ $sth->finish;
+
+ $query = qq|SELECT * FROM shipto
+ WHERE trans_id = $form->{id}|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ $ref = $sth->fetchrow_hashref(NAME_lc);
+ for (keys %$ref) { $form->{$_} = $ref->{$_} }
+ $sth->finish;
+
+ # get printed, emailed and queued
+ $query = qq|SELECT s.printed, s.emailed, s.spoolfile, s.formname
+ FROM status s
+ WHERE s.trans_id = $form->{id}|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ $form->{printed} .= "$ref->{formname} " if $ref->{printed};
+ $form->{emailed} .= "$ref->{formname} " if $ref->{emailed};
+ $form->{queued} .= "$ref->{formname} $ref->{spoolfile} " if $ref->{spoolfile};
+ }
+ $sth->finish;
+ for (qw(printed emailed queued)) { $form->{$_} =~ s/ +$//g }
+
+ my %oid = ( 'Pg' => 'oid',
+ 'PgPP' => 'oid',
+ 'Oracle' => 'rowid',
+ 'DB2' => '1=1'
+ );
+
+ # retrieve individual items
+ $query = qq|SELECT o.id AS orderitems_id,
+ p.partnumber, p.assembly, o.description, o.qty,
+ o.sellprice, o.parts_id AS id, o.unit, o.discount, p.bin,
+ o.reqdate, o.project_id, o.ship, o.serialnumber, o.notes,
+ pr.projectnumber,
+ pg.partsgroup, p.partsgroup_id, p.partnumber AS sku,
+ p.listprice, p.lastcost, p.weight, p.onhand,
+ p.inventory_accno_id, p.income_accno_id, p.expense_accno_id,
+ t.description AS partsgrouptranslation
+ FROM orderitems o
+ JOIN parts p ON (o.parts_id = p.id)
+ LEFT JOIN project pr ON (o.project_id = pr.id)
+ LEFT JOIN partsgroup pg ON (p.partsgroup_id = pg.id)
+ LEFT JOIN translation t ON (t.trans_id = p.partsgroup_id AND t.language_code = '$form->{language_code}')
+ WHERE o.trans_id = $form->{id}
+ ORDER BY o.$oid{$myconfig->{dbdriver}}|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ # foreign exchange rates
+ &exchangerate_defaults($dbh, $form);
+
+ # query for price matrix
+ my $pmh = &price_matrix_query($dbh, $form);
+
+ # taxes
+ $query = qq|SELECT c.accno
+ FROM chart c
+ JOIN partstax pt ON (pt.chart_id = c.id)
+ WHERE pt.parts_id = ?|;
+ my $tth = $dbh->prepare($query) || $form->dberror($query);
+
+ my $taxrate;
+ my $ptref;
+ my $sellprice;
+ my $listprice;
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+
+ ($decimalplaces) = ($ref->{sellprice} =~ /\.(\d+)/);
+ $decimalplaces = length $decimalplaces;
+ $decimalplaces = ($decimalplaces > 2) ? $decimalplaces : 2;
+
+ $tth->execute($ref->{id});
+ $ref->{taxaccounts} = "";
+ $taxrate = 0;
+
+ while ($ptref = $tth->fetchrow_hashref(NAME_lc)) {
+ $ref->{taxaccounts} .= "$ptref->{accno} ";
+ $taxrate += $form->{"$ptref->{accno}_rate"};
+ }
+ $tth->finish;
+ chop $ref->{taxaccounts};
+
+ # preserve price
+ $sellprice = $ref->{sellprice};
+
+ # multiply by exchangerate
+ $ref->{sellprice} = $form->round_amount($ref->{sellprice} * $form->{$form->{currency}}, $decimalplaces);
+
+ for (qw(listprice lastcost)) { $ref->{$_} = $form->round_amount($ref->{$_} / $form->{$form->{currency}}, $decimalplaces) }
+
+ # partnumber and price matrix
+ &price_matrix($pmh, $ref, $form->{transdate}, $decimalplaces, $form, $myconfig);
+
+ $ref->{sellprice} = $sellprice;
+
+ $ref->{partsgroup} = $ref->{partsgrouptranslation} if $ref->{partsgrouptranslation};
+
+ push @{ $form->{form_details} }, $ref;
+
+ }
+ $sth->finish;
+
+ # get recurring transaction
+ $form->get_recurring($dbh);
+
+ } else {
+
+ # get last name used
+ $form->lastname_used($myconfig, $dbh, $form->{vc}) unless $form->{"$form->{vc}_id"};
+ delete $form->{notes};
+
+ }
+
+ $dbh->disconnect;
+
+}
+
+
+sub price_matrix_query {
+ my ($dbh, $form) = @_;
+
+ my $query;
+ my $sth;
+
+ if ($form->{customer_id}) {
+ $query = qq|SELECT p.id AS parts_id, 0 AS customer_id, 0 AS pricegroup_id,
+ 0 AS pricebreak, p.sellprice, NULL AS validfrom, NULL AS validto,
+ '$form->{defaultcurrency}' AS curr, '' AS pricegroup
+ FROM parts p
+ WHERE p.id = ?
+
+ UNION
+
+ SELECT p.*, g.pricegroup
+ FROM partscustomer p
+ LEFT JOIN pricegroup g ON (g.id = p.pricegroup_id)
+ WHERE p.parts_id = ?
+ AND p.customer_id = $form->{customer_id}
+
+ UNION
+
+ SELECT p.*, g.pricegroup
+ FROM partscustomer p
+ LEFT JOIN pricegroup g ON (g.id = p.pricegroup_id)
+ JOIN customer c ON (c.pricegroup_id = g.id)
+ WHERE p.parts_id = ?
+ AND c.id = $form->{customer_id}
+
+ UNION
+
+ SELECT p.*, '' AS pricegroup
+ FROM partscustomer p
+ WHERE p.customer_id = 0
+ AND p.pricegroup_id = 0
+ AND p.parts_id = ?
+
+ ORDER BY customer_id DESC, pricegroup_id DESC, pricebreak
+ |;
+ $sth = $dbh->prepare($query) || $form->dberror($query);
+ }
+
+ if ($form->{vendor_id}) {
+ # price matrix and vendor's partnumber
+ $query = qq|SELECT partnumber
+ FROM partsvendor
+ WHERE parts_id = ?
+ AND vendor_id = $form->{vendor_id}|;
+ $sth = $dbh->prepare($query) || $form->dberror($query);
+ }
+
+ $sth;
+
+}
+
+
+sub price_matrix {
+ my ($pmh, $ref, $transdate, $decimalplaces, $form, $myconfig) = @_;
+
+ $ref->{pricematrix} = "";
+ my $customerprice;
+ my $pricegroupprice;
+ my $sellprice;
+ my $mref;
+ my %p = ();
+
+ # depends if this is a customer or vendor
+ if ($form->{customer_id}) {
+ $pmh->execute($ref->{id}, $ref->{id}, $ref->{id}, $ref->{id});
+
+ while ($mref = $pmh->fetchrow_hashref(NAME_lc)) {
+
+ # check date
+ if ($mref->{validfrom}) {
+ next if $transdate < $form->datetonum($myconfig, $mref->{validfrom});
+ }
+ if ($mref->{validto}) {
+ next if $transdate > $form->datetonum($myconfig, $mref->{validto});
+ }
+
+ # convert price
+ $sellprice = $form->round_amount($mref->{sellprice} * $form->{$mref->{curr}}, $decimalplaces);
+
+ if ($mref->{customer_id}) {
+ $ref->{sellprice} = $sellprice if !$mref->{pricebreak};
+ $p{$mref->{pricebreak}} = $sellprice;
+ $customerprice = 1;
+ }
+
+ if ($mref->{pricegroup_id}) {
+ if (! $customerprice) {
+ $ref->{sellprice} = $sellprice if !$mref->{pricebreak};
+ $p{$mref->{pricebreak}} = $sellprice;
+ }
+ $pricegroupprice = 1;
+ }
+
+ if (!$customerprice && !$pricegroupprice) {
+ $p{$mref->{pricebreak}} = $sellprice;
+ }
+
+ }
+ $pmh->finish;
+
+ if (%p) {
+ if ($ref->{sellprice}) {
+ $p{0} = $ref->{sellprice};
+ }
+ for (sort { $a <=> $b } keys %p) { $ref->{pricematrix} .= "${_}:$p{$_} " }
+ } else {
+ if ($init) {
+ $ref->{sellprice} = $form->round_amount($ref->{sellprice}, $decimalplaces);
+ } else {
+ $ref->{sellprice} = $form->round_amount($ref->{sellprice} * (1 - $form->{tradediscount}), $decimalplaces);
+ }
+ $ref->{pricematrix} = "0:$ref->{sellprice} " if $ref->{sellprice};
+ }
+ chop $ref->{pricematrix};
+
+ }
+
+
+ if ($form->{vendor_id}) {
+ $pmh->execute($ref->{id});
+
+ $mref = $pmh->fetchrow_hashref(NAME_lc);
+
+ if ($mref->{partnumber} ne "") {
+ $ref->{partnumber} = $mref->{partnumber};
+ }
+
+ if ($mref->{lastcost}) {
+ # do a conversion
+ $ref->{sellprice} = $form->round_amount($mref->{lastcost} * $form->{$mref->{curr}}, $decimalplaces);
+ }
+ $pmh->finish;
+
+ $ref->{sellprice} *= 1;
+
+ # add 0:price to matrix
+ $ref->{pricematrix} = "0:$ref->{sellprice}";
+
+ }
+
+}
+
+
+sub exchangerate_defaults {
+ my ($dbh, $form) = @_;
+
+ my $var;
+ my $buysell = ($form->{vc} eq "customer") ? "buy" : "sell";
+
+ # get default currencies
+ my $query = qq|SELECT substr(curr,1,3), curr FROM defaults|;
+ ($form->{defaultcurrency}, $form->{currencies}) = $dbh->selectrow_array($query);
+
+ $query = qq|SELECT $buysell
+ FROM exchangerate
+ WHERE curr = ?
+ AND transdate = ?|;
+ my $eth1 = $dbh->prepare($query) || $form->dberror($query);
+ $query = qq~SELECT max(transdate || ' ' || $buysell || ' ' || curr)
+ FROM exchangerate
+ WHERE curr = ?~;
+ my $eth2 = $dbh->prepare($query) || $form->dberror($query);
+
+ # get exchange rates for transdate or max
+ foreach $var (split /:/, substr($form->{currencies},4)) {
+ $eth1->execute($var, $form->{transdate});
+ ($form->{$var}) = $eth1->fetchrow_array;
+ if (! $form->{$var} ) {
+ $eth2->execute($var);
+
+ ($form->{$var}) = $eth2->fetchrow_array;
+ ($null, $form->{$var}) = split / /, $form->{$var};
+ $form->{$var} = 1 unless $form->{$var};
+ $eth2->finish;
+ }
+ $eth1->finish;
+ }
+
+ $form->{$form->{currency}} = $form->{exchangerate} if $form->{exchangerate};
+ $form->{$form->{currency}} ||= 1;
+ $form->{$form->{defaultcurrency}} = 1;
+
+}
+
+
+sub order_details {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+ my $query;
+ my $sth;
+
+ my $item;
+ my $i;
+ my @sortlist = ();
+ my $projectnumber;
+ my $projectdescription;
+ my $projectnumber_id;
+ my $translation;
+ my $partsgroup;
+
+ my %oid = ( 'Pg' => 'oid',
+ 'PgPP' => 'oid',
+ 'Oracle' => 'rowid',
+ 'DB2' => '1=1'
+ );
+
+ my @taxaccounts;
+ my %taxaccounts;
+ my $tax;
+ my $taxrate;
+ my $taxamount;
+
+ my %translations;
+
+ $query = qq|SELECT p.description, t.description
+ FROM project p
+ LEFT JOIN translation t ON (t.trans_id = p.id AND t.language_code = '$form->{language_code}')
+ WHERE id = ?|;
+ my $prh = $dbh->prepare($query) || $form->dberror($query);
+
+ $query = qq|SELECT inventory_accno_id, income_accno_id,
+ expense_accno_id, assembly FROM parts
+ WHERE id = ?|;
+ my $pth = $dbh->prepare($query) || $form->dberror($query);
+
+ my $sortby;
+
+ # sort items by project and partsgroup
+ for $i (1 .. $form->{rowcount}) {
+
+ if ($form->{"id_$i"}) {
+ # account numbers
+ $pth->execute($form->{"id_$i"});
+ $ref = $pth->fetchrow_hashref(NAME_lc);
+ for (keys %$ref) { $form->{"${_}_$i"} = $ref->{$_} }
+ $pth->finish;
+
+ $projectnumber_id = 0;
+ $projectnumber = "";
+ $form->{partsgroup} = "";
+ $form->{projectnumber} = "";
+
+ if ($form->{groupprojectnumber} || $form->{grouppartsgroup}) {
+
+ $inventory_accno_id = ($form->{"inventory_accno_id_$i"} || $form->{"assembly_$i"}) ? "1" : "";
+
+ if ($form->{groupprojectnumber}) {
+ ($projectnumber, $projectnumber_id) = split /--/, $form->{"projectnumber_$i"};
+ }
+ if ($form->{grouppartsgroup}) {
+ ($form->{partsgroup}) = split /--/, $form->{"partsgroup_$i"};
+ }
+
+ if ($projectnumber_id && $form->{groupprojectnumber}) {
+ if ($translation{$projectnumber_id}) {
+ $form->{projectnumber} = $translation{$projectnumber_id};
+ } else {
+ # get project description
+ $prh->execute($projectnumber_id);
+ ($projectdescription, $translation) = $prh->fetchrow_array;
+ $prh->finish;
+
+ $form->{projectnumber} = ($translation) ? "$projectnumber, $translation" : "$projectnumber, $projectdescription";
+
+ $translation{$projectnumber_id} = $form->{projectnumber};
+ }
+ }
+
+ if ($form->{grouppartsgroup} && $form->{partsgroup}) {
+ $form->{projectnumber} .= " / " if $projectnumber_id;
+ $form->{projectnumber} .= $form->{partsgroup};
+ }
+
+ $form->format_string(projectnumber);
+
+ }
+
+ $sortby = qq|$projectnumber$form->{partsgroup}|;
+ if ($form->{sortby} ne 'runningnumber') {
+ for (qw(partnumber description bin)) {
+ $sortby .= $form->{"${_}_$i"} if $form->{sortby} eq $_;
+ }
+ }
+
+ push @sortlist, [ $i, qq|$projectnumber$form->{partsgroup}$inventory_accno_id|, $form->{projectnumber}, $projectnumber_id, $form->{partsgroup}, $sortby ];
+ }
+
+ }
+
+ delete $form->{projectnumber};
+
+ # sort the whole thing by project and group
+ @sortlist = sort { $a->[5] cmp $b->[5] } @sortlist;
+
+
+ # if there is a warehouse limit picking
+ if ($form->{warehouse_id} && $form->{formname} =~ /(pick|packing)_list/) {
+ # run query to check for inventory
+ $query = qq|SELECT sum(qty) AS qty
+ FROM inventory
+ WHERE parts_id = ?
+ AND warehouse_id = ?|;
+ $sth = $dbh->prepare($query) || $form->dberror($query);
+
+ for $i (1 .. $form->{rowcount}) {
+ $sth->execute($form->{"id_$i"}, $form->{warehouse_id}) || $form->dberror;
+
+ ($qty) = $sth->fetchrow_array;
+ $sth->finish;
+
+ $form->{"qty_$i"} = 0 if $qty == 0;
+
+ if ($form->parse_amount($myconfig, $form->{"ship_$i"}) > $qty) {
+ $form->{"ship_$i"} = $form->format_amount($myconfig, $qty);
+ }
+ }
+ }
+
+
+ my $runningnumber = 1;
+ my $sameitem = "";
+ my $subtotal;
+ my $k = scalar @sortlist;
+ my $j = 0;
+
+ foreach $item (@sortlist) {
+ $i = $item->[0];
+ $j++;
+
+ if ($form->{groupprojectnumber} || $form->{grouppartsgroup}) {
+ if ($item->[1] ne $sameitem) {
+ $sameitem = $item->[1];
+
+ $ok = 0;
+
+ if ($form->{groupprojectnumber}) {
+ $ok = $form->{"projectnumber_$i"};
+ }
+ if ($form->{grouppartsgroup}) {
+ $ok = $form->{"partsgroup_$i"} unless $ok;
+ }
+
+ if ($ok) {
+ if ($form->{"inventory_accno_id_$i"} || $form->{"assembly_$i"}) {
+ push(@{ $form->{part} }, "");
+ push(@{ $form->{service} }, NULL);
+ } else {
+ push(@{ $form->{part} }, NULL);
+ push(@{ $form->{service} }, "");
+ }
+
+ push(@{ $form->{description} }, $item->[2]);
+ for (qw(taxrates runningnumber number sku qty ship unit bin serialnumber requiredate projectnumber sellprice listprice netprice discount discountrate linetotal weight itemnotes)) { push(@{ $form->{$_} }, "") }
+ push(@{ $form->{lineitems} }, { amount => 0, tax => 0 });
+ }
+ }
+ }
+
+ $form->{"qty_$i"} = $form->parse_amount($myconfig, $form->{"qty_$i"});
+ $form->{"ship_$i"} = $form->parse_amount($myconfig, $form->{"ship_$i"});
+
+ if ($form->{"qty_$i"}) {
+
+ $form->{totalqty} += $form->{"qty_$i"};
+ $form->{totalship} += $form->{"ship_$i"};
+ $form->{totalweight} += ($form->{"weight_$i"} * $form->{"qty_$i"});
+ $form->{totalweightship} += ($form->{"weight_$i"} * $form->{"ship_$i"});
+
+ # add number, description and qty to $form->{number}, ....
+ push(@{ $form->{runningnumber} }, $runningnumber++);
+ push(@{ $form->{number} }, qq|$form->{"partnumber_$i"}|);
+ push(@{ $form->{sku} }, qq|$form->{"sku_$i"}|);
+ push(@{ $form->{description} }, qq|$form->{"description_$i"}|);
+ push(@{ $form->{itemnotes} }, $form->{"notes_$i"});
+ push(@{ $form->{qty} }, $form->format_amount($myconfig, $form->{"qty_$i"}));
+ push(@{ $form->{ship} }, $form->format_amount($myconfig, $form->{"ship_$i"}));
+ push(@{ $form->{unit} }, qq|$form->{"unit_$i"}|);
+ push(@{ $form->{bin} }, qq|$form->{"bin_$i"}|);
+ push(@{ $form->{serialnumber} }, qq|$form->{"serialnumber_$i"}|);
+ push(@{ $form->{requiredate} }, qq|$form->{"reqdate_$i"}|);
+ push(@{ $form->{projectnumber} }, qq|$form->{"projectnumber_$i"}|);
+
+ push(@{ $form->{sellprice} }, $form->{"sellprice_$i"});
+
+ push(@{ $form->{listprice} }, $form->{"listprice_$i"});
+
+ push(@{ $form->{weight} }, $form->format_amount($myconfig, $form->{"weight_$i"} * $form->{"ship_$i"}));
+
+ my $sellprice = $form->parse_amount($myconfig, $form->{"sellprice_$i"});
+ my ($dec) = ($sellprice =~ /\.(\d+)/);
+ $dec = length $dec;
+ my $decimalplaces = ($dec > 2) ? $dec : 2;
+
+ my $discount = $form->round_amount($sellprice * $form->parse_amount($myconfig, $form->{"discount_$i"}) / 100, $decimalplaces);
+
+ # keep a netprice as well, (sellprice - discount)
+ $form->{"netprice_$i"} = $sellprice - $discount;
+
+ my $linetotal = $form->round_amount($form->{"qty_$i"} * $form->{"netprice_$i"}, 2);
+
+ if ($form->{"inventory_accno_id_$i"} || $form->{"assembly_$i"}) {
+ push(@{ $form->{part} }, $form->{"sku_$i"});
+ push(@{ $form->{service} }, NULL);
+ $form->{totalparts} += $linetotal;
+ } else {
+ push(@{ $form->{service} }, $form->{"sku_$i"});
+ push(@{ $form->{part} }, NULL);
+ $form->{totalservices} += $linetotal;
+ }
+
+ push(@{ $form->{netprice} }, ($form->{"netprice_$i"}) ? $form->format_amount($myconfig, $form->{"netprice_$i"}, $decimalplaces) : " ");
+
+ $discount = ($discount) ? $form->format_amount($myconfig, $discount * -1, $decimalplaces) : " ";
+
+ push(@{ $form->{discount} }, $discount);
+ push(@{ $form->{discountrate} }, $form->format_amount($myconfig, $form->{"discount_$i"}));
+
+ $form->{ordtotal} += $linetotal;
+
+ # this is for the subtotals for grouping
+ $subtotal += $linetotal;
+
+ $form->{"linetotal_$i"} = $form->format_amount($myconfig, $linetotal, 2);
+ push(@{ $form->{linetotal} }, $form->{"linetotal_$i"});
+
+ @taxaccounts = split / /, $form->{"taxaccounts_$i"};
+
+ my $ml = 1;
+ my @taxrates = ();
+
+ $tax = 0;
+
+ for (0 .. 1) {
+ $taxrate = 0;
+
+ for (@taxaccounts) { $taxrate += $form->{"${_}_rate"} if ($form->{"${_}_rate"} * $ml) > 0 }
+
+ $taxrate *= $ml;
+ $taxamount = $linetotal * $taxrate / (1 + $taxrate);
+ $taxbase = ($linetotal - $taxamount);
+
+ foreach $item (@taxaccounts) {
+ if (($form->{"${item}_rate"} * $ml) > 0) {
+
+ push @taxrates, $form->{"${item}_rate"} * 100;
+
+ if ($form->{taxincluded}) {
+ $taxaccounts{$item} += $linetotal * $form->{"${item}_rate"} / (1 + $taxrate);
+ $taxbase{$item} += $taxbase;
+ } else {
+ $taxbase{$item} += $linetotal;
+ $taxaccounts{$item} += $linetotal * $form->{"${item}_rate"};
+ }
+ }
+ }
+
+ if ($form->{taxincluded}) {
+ $tax += $linetotal * ($taxrate / (1 + ($taxrate * $ml)));
+ } else {
+ $tax += $linetotal * $taxrate;
+ }
+
+ $ml *= -1;
+ }
+
+ push(@{ $form->{lineitems} }, { amount => $linetotal, tax => $form->round_amount($tax, 2) });
+ push(@{ $form->{taxrates} }, join ' ', sort { $a <=> $b } @taxrates);
+
+ if ($form->{"assembly_$i"}) {
+ $form->{stagger} = -1;
+ &assembly_details($myconfig, $form, $dbh, $form->{"id_$i"}, $oid{$myconfig->{dbdriver}}, $form->{"qty_$i"});
+ }
+
+ }
+
+ # add subtotal
+ if ($form->{groupprojectnumber} || $form->{grouppartsgroup}) {
+ if ($subtotal) {
+ if ($j < $k) {
+ # look at next item
+ if ($sortlist[$j]->[1] ne $sameitem) {
+
+ if ($form->{"inventory_accno_id_$i"} || $form->{"assembly_$i"}) {
+ push(@{ $form->{part} }, "");
+ push(@{ $form->{service} }, NULL);
+ } else {
+ push(@{ $form->{service} }, "");
+ push(@{ $form->{part} }, NULL);
+ }
+
+ for (qw(taxrates runningnumber number sku qty ship unit bin serialnumber requiredate projectnumber sellprice listprice netprice discount discountrate weight itemnotes)) { push(@{ $form->{$_} }, "") }
+
+ push(@{ $form->{description} }, $form->{groupsubtotaldescription});
+
+ push(@{ $form->{lineitems} }, { amount => 0, tax => 0 });
+
+ if ($form->{groupsubtotaldescription} ne "") {
+ push(@{ $form->{linetotal} }, $form->format_amount($myconfig, $subtotal, 2));
+ } else {
+ push(@{ $form->{linetotal} }, "");
+ }
+ $subtotal = 0;
+ }
+
+ } else {
+
+ # got last item
+ if ($form->{groupsubtotaldescription} ne "") {
+
+ if ($form->{"inventory_accno_id_$i"} || $form->{"assembly_$i"}) {
+ push(@{ $form->{part} }, "");
+ push(@{ $form->{service} }, NULL);
+ } else {
+ push(@{ $form->{service} }, "");
+ push(@{ $form->{part} }, NULL);
+ }
+
+ for (qw(taxrates runningnumber number sku qty ship unit bin serialnumber requiredate projectnumber sellprice listprice netprice discount discountrate weight itemnotes)) { push(@{ $form->{$_} }, "") }
+
+ push(@{ $form->{description} }, $form->{groupsubtotaldescription});
+ push(@{ $form->{linetotal} }, $form->format_amount($myconfig, $subtotal, 2));
+ push(@{ $form->{lineitems} }, { amount => 0, tax => 0 });
+ }
+ }
+ }
+ }
+ }
+
+
+ $tax = 0;
+ foreach $item (sort keys %taxaccounts) {
+ if ($form->round_amount($taxaccounts{$item}, 2)) {
+ $tax += $taxamount = $form->round_amount($taxaccounts{$item}, 2);
+
+ push(@{ $form->{taxbaseinclusive} }, $form->{"${item}_taxbaseinclusive"} = $form->round_amount($taxbase{$item} + $tax, 2));
+ push(@{ $form->{taxbase} }, $form->{"${item}_taxbase"} = $form->format_amount($myconfig, $taxbase{$item}, 2));
+ push(@{ $form->{tax} }, $form->{"${item}_tax"} = $form->format_amount($myconfig, $taxamount, 2));
+
+ push(@{ $form->{taxdescription} }, $form->{"${item}_description"});
+
+ $form->{"${item}_taxrate"} = $form->format_amount($myconfig, $form->{"${item}_rate"} * 100);
+ push(@{ $form->{taxrate} }, $form->{"${item}_taxrate"});
+
+ push(@{ $form->{taxnumber} }, $form->{"${item}_taxnumber"});
+ }
+ }
+
+ # adjust taxes for lineitems
+ my $total = 0;
+ for (@{ $form->{lineitems} }) {
+ $total += $_->{tax};
+ }
+ if ($form->round_amount($total,2) != $form->round_amount($tax,2)) {
+ # get largest amount
+ for (reverse sort { $a->{tax} <=> $b->{tax} } @{ $form->{lineitems} }) {
+ $_->{tax} -= $total - $tax;
+ last;
+ }
+ }
+ $i = 1;
+ for (@{ $form->{lineitems} }) {
+ push(@{ $form->{linetax} }, $form->format_amount($myconfig, $_->{tax}, 2, ""));
+ }
+
+
+ for (qw(totalparts totalservices)) { $form->{$_} = $form->format_amount($myconfig, $form->{$_}, 2) }
+ for (qw(totalqty totalship totalweight)) { $form->{$_} = $form->format_amount($myconfig, $form->{$_}) }
+ $form->{subtotal} = $form->format_amount($myconfig, $form->{ordtotal}, 2);
+ $form->{ordtotal} = ($form->{taxincluded}) ? $form->{ordtotal} : $form->{ordtotal} + $tax;
+
+ use LedgerSMB::CP;
+ my $c;
+ if ($form->{language_code} ne "") {
+ $c = new CP $form->{language_code};
+ } else {
+ $c = new CP $myconfig->{countrycode};
+ }
+ $c->init;
+ my $whole;
+ ($whole, $form->{decimal}) = split /\./, $form->{ordtotal};
+ $form->{decimal} .= "00";
+ $form->{decimal} = substr($form->{decimal}, 0, 2);
+
+ $form->{text_decimal} = $c->num2text($form->{decimal} * 1);
+ $form->{text_amount} = $c->num2text($whole);
+ $form->{integer_amount} = $form->format_amount($myconfig, $whole);
+
+ # format amounts
+ $form->{quototal} = $form->{ordtotal} = $form->format_amount($myconfig, $form->{ordtotal}, 2);
+
+ $form->format_string(qw(text_amount text_decimal));
+
+ $query = qq|SELECT weightunit FROM defaults|;
+ ($form->{weightunit}) = $dbh->selectrow_array($query);
+
+ $dbh->disconnect;
+
+}
+
+
+sub assembly_details {
+ my ($myconfig, $form, $dbh, $id, $oid, $qty) = @_;
+
+ my $sm = "";
+ my $spacer;
+
+ $form->{stagger}++;
+ if ($form->{format} eq 'html') {
+ $spacer = "&nbsp;" x (3 * ($form->{stagger} - 1)) if $form->{stagger} > 1;
+ }
+ if ($form->{format} =~ /(postscript|pdf)/) {
+ if ($form->{stagger} > 1) {
+ $spacer = ($form->{stagger} - 1) * 3;
+ $spacer = '\rule{'.$spacer.'mm}{0mm}';
+ }
+ }
+
+ # get parts and push them onto the stack
+ my $sortorder = "";
+
+ if ($form->{grouppartsgroup}) {
+ $sortorder = qq|ORDER BY pg.partsgroup, a.$oid|;
+ } else {
+ $sortorder = qq|ORDER BY a.$oid|;
+ }
+
+ my $where = ($form->{formname} eq 'work_order') ? "1 = 1" : "a.bom = '1'";
+
+ my $query = qq|SELECT p.partnumber, p.description, p.unit, a.qty,
+ pg.partsgroup, p.partnumber AS sku, p.assembly, p.id, p.bin
+ FROM assembly a
+ JOIN parts p ON (a.parts_id = p.id)
+ LEFT JOIN partsgroup pg ON (p.partsgroup_id = pg.id)
+ WHERE $where
+ AND a.id = '$id'
+ $sortorder|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+
+ for (qw(partnumber description partsgroup)) {
+ $form->{"a_$_"} = $ref->{$_};
+ $form->format_string("a_$_");
+ }
+
+ if ($form->{grouppartsgroup} && $ref->{partsgroup} ne $sm) {
+ for (qw(taxrates number sku unit qty runningnumber ship bin serialnumber requiredate projectnumber sellprice listprice netprice discount discountrate linetotal weight itemnotes)) { push(@{ $form->{$_} }, "") }
+ $sm = ($form->{"a_partsgroup"}) ? $form->{"a_partsgroup"} : "";
+ push(@{ $form->{description} }, "$spacer$sm");
+
+ push(@{ $form->{lineitems} }, { amount => 0, tax => 0 });
+
+ }
+
+ if ($form->{stagger}) {
+
+ push(@{ $form->{description} }, qq|$spacer$form->{"a_partnumber"}, $form->{"a_description"}|);
+ for (qw(taxrates number sku runningnumber ship serialnumber requiredate projectnumber sellprice listprice netprice discount discountrate linetotal weight itemnotes)) { push(@{ $form->{$_} }, "") }
+
+ } else {
+
+ push(@{ $form->{description} }, qq|$form->{"a_description"}|);
+ push(@{ $form->{sku} }, $form->{"a_partnumber"});
+ push(@{ $form->{number} }, $form->{"a_partnumber"});
+
+ for (qw(taxrates runningnumber ship serialnumber requiredate projectnumber sellprice listprice netprice discount discountrate linetotal weight itemnotes)) { push(@{ $form->{$_} }, "") }
+
+ }
+
+ push(@{ $form->{lineitems} }, { amount => 0, tax => 0 });
+
+ push(@{ $form->{qty} }, $form->format_amount($myconfig, $ref->{qty} * $qty));
+ for (qw(unit bin)) {
+ $form->{"a_$_"} = $ref->{$_};
+ $form->format_string("a_$_");
+ push(@{ $form->{$_} }, $form->{"a_$_"});
+ }
+
+ if ($ref->{assembly} && $form->{formname} eq 'work_order') {
+ &assembly_details($myconfig, $form, $dbh, $ref->{id}, $oid, $ref->{qty} * $qty);
+ }
+
+ }
+ $sth->finish;
+
+ $form->{stagger}--;
+
+}
+
+
+sub project_description {
+ my ($self, $dbh, $id) = @_;
+
+ my $query = qq|SELECT description
+ FROM project
+ WHERE id = $id|;
+ ($_) = $dbh->selectrow_array($query);
+
+ $_;
+
+}
+
+
+sub get_warehouses {
+ my ($self, $myconfig, $form) = @_;
+
+ my $dbh = $form->dbconnect($myconfig);
+ # setup warehouses
+ my $query = qq|SELECT id, description
+ FROM warehouse
+ ORDER BY 2|;
+
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{all_warehouse} }, $ref;
+ }
+ $sth->finish;
+
+ $dbh->disconnect;
+
+}
+
+
+sub save_inventory {
+ my ($self, $myconfig, $form) = @_;
+
+ my ($null, $warehouse_id) = split /--/, $form->{warehouse};
+ $warehouse_id *= 1;
+
+ my $ml = ($form->{type} eq 'ship_order') ? -1 : 1;
+
+ my $dbh = $form->dbconnect_noauto($myconfig);
+ my $sth;
+ my $wth;
+ my $serialnumber;
+ my $ship;
+
+ my ($null, $employee_id) = split /--/, $form->{employee};
+ ($null, $employee_id) = $form->get_employee($dbh) if ! $employee_id;
+
+ $query = qq|SELECT serialnumber, ship
+ FROM orderitems
+ WHERE trans_id = ?
+ AND id = ?
+ FOR UPDATE|;
+ $sth = $dbh->prepare($query) || $form->dberror($query);
+
+ $query = qq|SELECT sum(qty)
+ FROM inventory
+ WHERE parts_id = ?
+ AND warehouse_id = ?|;
+ $wth = $dbh->prepare($query) || $form->dberror($query);
+
+
+ for my $i (1 .. $form->{rowcount}) {
+
+ $ship = (abs($form->{"ship_$i"}) > abs($form->{"qty_$i"})) ? $form->{"qty_$i"} : $form->{"ship_$i"};
+
+ if ($warehouse_id && $form->{type} eq 'ship_order') {
+
+ $wth->execute($form->{"id_$i"}, $warehouse_id) || $form->dberror;
+
+ ($qty) = $wth->fetchrow_array;
+ $wth->finish;
+
+ if ($ship > $qty) {
+ $ship = $qty;
+ }
+ }
+
+
+ if ($ship) {
+
+ $ship *= $ml;
+ $query = qq|INSERT INTO inventory (parts_id, warehouse_id,
+ qty, trans_id, orderitems_id, shippingdate, employee_id)
+ VALUES ($form->{"id_$i"}, $warehouse_id,
+ $ship, $form->{"id"},
+ $form->{"orderitems_id_$i"}, '$form->{shippingdate}',
+ $employee_id)|;
+ $dbh->do($query) || $form->dberror($query);
+
+ # add serialnumber, ship to orderitems
+ $sth->execute($form->{id}, $form->{"orderitems_id_$i"}) || $form->dberror;
+ ($serialnumber, $ship) = $sth->fetchrow_array;
+ $sth->finish;
+
+ $serialnumber .= " " if $serialnumber;
+ $serialnumber .= qq|$form->{"serialnumber_$i"}|;
+ $ship += $form->{"ship_$i"};
+
+ $query = qq|UPDATE orderitems SET
+ serialnumber = '$serialnumber',
+ ship = $ship,
+ reqdate = '$form->{shippingdate}'
+ WHERE trans_id = $form->{id}
+ AND id = $form->{"orderitems_id_$i"}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ # update order with ship via
+ $query = qq|UPDATE oe SET
+ shippingpoint = |.$dbh->quote($form->{shippingpoint}).qq|,
+ shipvia = |.$dbh->quote($form->{shipvia}).qq|
+ WHERE id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ # update onhand for parts
+ $form->update_balance($dbh,
+ "parts",
+ "onhand",
+ qq|id = $form->{"id_$i"}|,
+ $form->{"ship_$i"} * $ml);
+
+ }
+ }
+
+ my $rc = $dbh->commit;
+ $dbh->disconnect;
+
+ $rc;
+
+}
+
+
+sub adj_onhand {
+ my ($dbh, $form, $ml) = @_;
+
+ my $query = qq|SELECT oi.parts_id, oi.ship, p.inventory_accno_id, p.assembly
+ FROM orderitems oi
+ JOIN parts p ON (p.id = oi.parts_id)
+ WHERE oi.trans_id = $form->{id}|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ $query = qq|SELECT sum(p.inventory_accno_id), p.assembly
+ FROM parts p
+ JOIN assembly a ON (a.parts_id = p.id)
+ WHERE a.id = ?
+ GROUP BY p.assembly|;
+ my $ath = $dbh->prepare($query) || $form->dberror($query);
+
+ my $ref;
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+
+ if ($ref->{inventory_accno_id} || $ref->{assembly}) {
+
+ # do not update if assembly consists of all services
+ if ($ref->{assembly}) {
+ $ath->execute($ref->{parts_id}) || $form->dberror($query);
+
+ my ($inv, $assembly) = $ath->fetchrow_array;
+ $ath->finish;
+
+ next unless ($inv || $assembly);
+
+ }
+
+ # adjust onhand in parts table
+ $form->update_balance($dbh,
+ "parts",
+ "onhand",
+ qq|id = $ref->{parts_id}|,
+ $ref->{ship} * $ml);
+ }
+ }
+
+ $sth->finish;
+
+}
+
+
+sub adj_inventory {
+ my ($dbh, $myconfig, $form) = @_;
+
+ my %oid = ( 'Pg' => 'oid',
+ 'PgPP' => 'oid',
+ 'Oracle' => 'rowid',
+ 'DB2' => '1=1'
+ );
+
+ # increase/reduce qty in inventory table
+ my $query = qq|SELECT oi.id, oi.parts_id, oi.ship
+ FROM orderitems oi
+ WHERE oi.trans_id = $form->{id}|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ $query = qq|SELECT $oid{$myconfig->{dbdriver}} AS oid, qty,
+ (SELECT SUM(qty) FROM inventory
+ WHERE trans_id = $form->{id}
+ AND orderitems_id = ?) AS total
+ FROM inventory
+ WHERE trans_id = $form->{id}
+ AND orderitems_id = ?|;
+ my $ith = $dbh->prepare($query) || $form->dberror($query);
+
+ my $qty;
+ my $ml = ($form->{type} =~ /(ship|sales)_order/) ? -1 : 1;
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+
+ $ith->execute($ref->{id}, $ref->{id}) || $form->dberror($query);
+
+ my $ship = $ref->{ship};
+ while (my $inv = $ith->fetchrow_hashref(NAME_lc)) {
+
+ if (($qty = (($inv->{total} * $ml) - $ship)) >= 0) {
+ $qty = $inv->{qty} * $ml if ($qty > ($inv->{qty} * $ml));
+
+ $form->update_balance($dbh,
+ "inventory",
+ "qty",
+ qq|$oid{$myconfig->{dbdriver}} = $inv->{oid}|,
+ $qty * -1 * $ml);
+ $ship -= $qty;
+ }
+ }
+ $ith->finish;
+
+ }
+ $sth->finish;
+
+ # delete inventory entries if qty = 0
+ $query = qq|DELETE FROM inventory
+ WHERE trans_id = $form->{id}
+ AND qty = 0|;
+ $dbh->do($query) || $form->dberror($query);
+
+}
+
+
+sub get_inventory {
+ my ($self, $myconfig, $form) = @_;
+
+ my $where;
+ my $query;
+ my $null;
+ my $fromwarehouse_id;
+ my $towarehouse_id;
+ my $var;
+
+ my $dbh = $form->dbconnect($myconfig);
+
+ if ($form->{partnumber} ne "") {
+ $var = $form->like(lc $form->{partnumber});
+ $where .= "
+ AND lower(p.partnumber) LIKE '$var'";
+ }
+ if ($form->{description} ne "") {
+ $var = $form->like(lc $form->{description});
+ $where .= "
+ AND lower(p.description) LIKE '$var'";
+ }
+ if ($form->{partsgroup} ne "") {
+ ($null, $var) = split /--/, $form->{partsgroup};
+ $where .= "
+ AND pg.id = $var";
+ }
+
+
+ ($null, $fromwarehouse_id) = split /--/, $form->{fromwarehouse};
+ $fromwarehouse_id *= 1;
+
+ ($null, $towarehouse_id) = split /--/, $form->{towarehouse};
+ $towarehouse_id *= 1;
+
+ my %ordinal = ( partnumber => 2,
+ description => 3,
+ partsgroup => 5,
+ warehouse => 6,
+ );
+
+ my @a = (partnumber, warehouse);
+ my $sortorder = $form->sort_order(\@a, \%ordinal);
+
+ if ($fromwarehouse_id) {
+ if ($towarehouse_id) {
+ $where .= "
+ AND NOT i.warehouse_id = $towarehouse_id";
+ }
+ $query = qq|SELECT p.id, p.partnumber, p.description,
+ sum(i.qty) * 2 AS onhand, sum(i.qty) AS qty,
+ pg.partsgroup, w.description AS warehouse, i.warehouse_id
+ FROM inventory i
+ JOIN parts p ON (p.id = i.parts_id)
+ LEFT JOIN partsgroup pg ON (p.partsgroup_id = pg.id)
+ JOIN warehouse w ON (w.id = i.warehouse_id)
+ WHERE i.warehouse_id = $fromwarehouse_id
+ $where
+ GROUP BY p.id, p.partnumber, p.description, pg.partsgroup, w.description, i.warehouse_id
+ ORDER BY $sortorder|;
+ } else {
+ if ($towarehouse_id) {
+ $query = qq|
+ SELECT p.id, p.partnumber, p.description,
+ p.onhand, (SELECT SUM(qty) FROM inventory i WHERE i.parts_id = p.id) AS qty,
+ pg.partsgroup, '' AS warehouse, 0 AS warehouse_id
+ FROM parts p
+ LEFT JOIN partsgroup pg ON (p.partsgroup_id = pg.id)
+ WHERE p.onhand > 0
+ $where
+ UNION|;
+ }
+
+ $query .= qq|
+ SELECT p.id, p.partnumber, p.description,
+ sum(i.qty) * 2 AS onhand, sum(i.qty) AS qty,
+ pg.partsgroup, w.description AS warehouse, i.warehouse_id
+ FROM inventory i
+ JOIN parts p ON (p.id = i.parts_id)
+ LEFT JOIN partsgroup pg ON (p.partsgroup_id = pg.id)
+ JOIN warehouse w ON (w.id = i.warehouse_id)
+ WHERE i.warehouse_id != $towarehouse_id
+ $where
+ GROUP BY p.id, p.partnumber, p.description, pg.partsgroup, w.description, i.warehouse_id
+ ORDER BY $sortorder|;
+ }
+
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ $ref->{qty} = $ref->{onhand} - $ref->{qty};
+ push @{ $form->{all_inventory} }, $ref if $ref->{qty} > 0;
+ }
+ $sth->finish;
+
+ $dbh->disconnect;
+
+}
+
+
+sub transfer {
+ my ($self, $myconfig, $form) = @_;
+
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ ($form->{employee}, $form->{employee_id}) = $form->get_employee($dbh);
+
+ my @a = localtime;
+ $a[5] += 1900;
+ $a[4]++;
+ $a[4] = substr("0$a[4]", -2);
+ $a[3] = substr("0$a[3]", -2);
+ $shippingdate = "$a[5]$a[4]$a[3]";
+
+ my %total = ();
+
+ my $query = qq|INSERT INTO inventory
+ (warehouse_id, parts_id, qty, shippingdate, employee_id)
+ VALUES (?, ?, ?, '$shippingdate', $form->{employee_id})|;
+ $sth = $dbh->prepare($query) || $form->dberror($query);
+
+ my $qty;
+
+ for my $i (1 .. $form->{rowcount}) {
+ $qty = $form->parse_amount($myconfig, $form->{"transfer_$i"});
+
+ $qty = $form->{"qty_$i"} if ($qty > $form->{"qty_$i"});
+
+ if ($qty > 0) {
+ # to warehouse
+ if ($form->{warehouse_id}) {
+ $sth->execute($form->{warehouse_id}, $form->{"id_$i"}, $qty) || $form->dberror;
+ $sth->finish;
+ }
+
+ # from warehouse
+ if ($form->{"warehouse_id_$i"}) {
+ $sth->execute($form->{"warehouse_id_$i"}, $form->{"id_$i"}, $qty * -1) || $form->dberror;
+ $sth->finish;
+ }
+ }
+ }
+
+ my $rc = $dbh->commit;
+ $dbh->disconnect;
+
+ $rc;
+
+}
+
+
+sub get_soparts {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $id;
+ my $ref;
+
+ # store required items from selected sales orders
+ my $query = qq|SELECT p.id, oi.qty - oi.ship AS required,
+ p.assembly
+ FROM orderitems oi
+ JOIN parts p ON (p.id = oi.parts_id)
+ WHERE oi.trans_id = ?|;
+ my $sth = $dbh->prepare($query) || $form->dberror($query);
+
+ for (my $i = 1; $i <= $form->{rowcount}; $i++) {
+
+ if ($form->{"ndx_$i"}) {
+
+ $sth->execute($form->{"ndx_$i"});
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ &add_items_required("", $dbh, $form, $ref->{id}, $ref->{required}, $ref->{assembly});
+ }
+ $sth->finish;
+ }
+
+ }
+
+ $query = qq|SELECT current_date FROM defaults|;
+ ($form->{transdate}) = $dbh->selectrow_array($query);
+
+ # foreign exchange rates
+ &exchangerate_defaults($dbh, $form);
+
+ $dbh->disconnect;
+
+}
+
+
+sub add_items_required {
+ my ($self, $dbh, $form, $parts_id, $required, $assembly) = @_;
+
+ my $query;
+ my $sth;
+ my $ref;
+
+ if ($assembly) {
+ $query = qq|SELECT p.id, a.qty, p.assembly
+ FROM assembly a
+ JOIN parts p ON (p.id = a.parts_id)
+ WHERE a.id = $parts_id|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ &add_items_required("", $dbh, $form, $ref->{id}, $required * $ref->{qty}, $ref->{assembly});
+ }
+ $sth->finish;
+
+ } else {
+
+ $query = qq|SELECT partnumber, description, lastcost
+ FROM parts
+ WHERE id = $parts_id|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+ $ref = $sth->fetchrow_hashref(NAME_lc);
+ for (keys %$ref) { $form->{orderitems}{$parts_id}{$_} = $ref->{$_} }
+ $sth->finish;
+
+ $form->{orderitems}{$parts_id}{required} += $required;
+
+ $query = qq|SELECT pv.partnumber, pv.leadtime, pv.lastcost, pv.curr,
+ pv.vendor_id, v.name
+ FROM partsvendor pv
+ JOIN vendor v ON (v.id = pv.vendor_id)
+ WHERE pv.parts_id = ?|;
+ $sth = $dbh->prepare($query) || $form->dberror($query);
+
+ # get cost and vendor
+ $sth->execute($parts_id);
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ for (keys %$ref) { $form->{orderitems}{$parts_id}{partsvendor}{$ref->{vendor_id}}{$_} = $ref->{$_} }
+ }
+ $sth->finish;
+
+ }
+
+}
+
+
+sub generate_orders {
+ my ($self, $myconfig, $form) = @_;
+
+ my $i;
+ my %a;
+ my $query;
+ my $sth;
+
+ for ($i = 1; $i <= $form->{rowcount}; $i++) {
+ for (qw(qty lastcost)) { $form->{"${_}_$i"} = $form->parse_amount($myconfig, $form->{"${_}_$i"}) }
+
+ if ($form->{"qty_$i"}) {
+ ($vendor, $vendor_id) = split /--/, $form->{"vendor_$i"};
+ if ($vendor_id) {
+ $a{$vendor_id}{$form->{"id_$i"}}{qty} += $form->{"qty_$i"};
+ for (qw(curr lastcost)) { $a{$vendor_id}{$form->{"id_$i"}}{$_} = $form->{"${_}_$i"} }
+ }
+ }
+ }
+
+ # connect to database
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ # foreign exchange rates
+ &exchangerate_defaults($dbh, $form);
+
+ my $amount;
+ my $netamount;
+ my $curr = "";
+ my %tax;
+ my $taxincluded = 0;
+ my $vendor_id;
+
+ my $description;
+ my $unit;
+
+ my $sellprice;
+
+ foreach $vendor_id (keys %a) {
+
+ %tax = ();
+
+ $query = qq|SELECT v.curr, v.taxincluded, t.rate, c.accno
+ FROM vendor v
+ LEFT JOIN vendortax vt ON (v.id = vt.vendor_id)
+ LEFT JOIN tax t ON (t.chart_id = vt.chart_id)
+ LEFT JOIN chart c ON (c.id = t.chart_id)
+ WHERE v.id = $vendor_id|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ $curr = $ref->{curr};
+ $taxincluded = $ref->{taxincluded};
+ $tax{$ref->{accno}} = $ref->{rate};
+ }
+ $sth->finish;
+
+ $curr ||= $form->{defaultcurrency};
+ $taxincluded *= 1;
+
+ my $uid = localtime;
+ $uid .= "$$";
+
+ $query = qq|INSERT INTO oe (ordnumber)
+ VALUES ('$uid')|;
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|SELECT id FROM oe
+ WHERE ordnumber = '$uid'|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+ my ($id) = $sth->fetchrow_array;
+ $sth->finish;
+
+ $amount = 0;
+ $netamount = 0;
+
+ foreach my $parts_id (keys %{ $a{$vendor_id} }) {
+
+ if (($form->{$curr} * $form->{$a{$vendor_id}{$parts_id}{curr}}) > 0) {
+ $sellprice = $a{$vendor_id}{$parts_id}{lastcost} / $form->{$curr} * $form->{$a{$vendor_id}{$parts_id}{curr}};
+ } else {
+ $sellprice = $a{$vendor_id}{$parts_id}{lastcost};
+ }
+ $sellprice = $form->round_amount($sellprice, 2);
+
+ my $linetotal = $form->round_amount($sellprice * $a{$vendor_id}{$parts_id}{qty}, 2);
+
+ $query = qq|SELECT p.description, p.unit, c.accno FROM parts p
+ LEFT JOIN partstax pt ON (p.id = pt.parts_id)
+ LEFT JOIN chart c ON (c.id = pt.chart_id)
+ WHERE p.id = $parts_id|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my $rate = 0;
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ $description = $ref->{description};
+ $unit = $ref->{unit};
+ $rate += $tax{$ref->{accno}};
+ }
+ $sth->finish;
+
+ $netamount += $linetotal;
+ if ($taxincluded) {
+ $amount += $linetotal;
+ } else {
+ $amount += $form->round_amount($linetotal * (1 + $rate), 2);
+ }
+
+ $description = $dbh->quote($description);
+ $unit = $dbh->quote($unit);
+
+ $query = qq|INSERT INTO orderitems (trans_id, parts_id, description,
+ qty, ship, sellprice, unit) VALUES
+ ($id, $parts_id, $description,
+ $a{$vendor_id}{$parts_id}{qty}, 0, $sellprice, $unit)|;
+ $dbh->do($query) || $form->dberror($query);
+
+ }
+
+ my $ordnumber = $form->update_defaults($myconfig, 'ponumber');
+
+ my $null;
+ my $employee_id;
+ my $department_id;
+
+ ($null, $employee_id) = $form->get_employee($dbh);
+ ($null, $department_id) = split /--/, $form->{department};
+ $department_id *= 1;
+
+ $query = qq|UPDATE oe SET
+ ordnumber = |.$dbh->quote($ordnumber).qq|,
+ transdate = current_date,
+ vendor_id = $vendor_id,
+ customer_id = 0,
+ amount = $amount,
+ netamount = $netamount,
+ taxincluded = '$taxincluded',
+ curr = '$curr',
+ employee_id = $employee_id,
+ department_id = '$department_id',
+ ponumber = |.$dbh->quote($form->{ponumber}).qq|
+ WHERE id = $id|;
+ $dbh->do($query) || $form->dberror($query);
+
+ }
+
+ my $rc = $dbh->commit;
+ $dbh->disconnect;
+
+ $rc;
+
+}
+
+
+sub consolidate_orders {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ my $i;
+ my $id;
+ my $ref;
+ my %oe = ();
+
+ my $query = qq|SELECT * FROM oe
+ WHERE id = ?|;
+ my $sth = $dbh->prepare($query) || $form->dberror($query);
+
+ for ($i = 1; $i <= $form->{rowcount}; $i++) {
+ # retrieve order
+ if ($form->{"ndx_$i"}) {
+ $sth->execute($form->{"ndx_$i"});
+
+ $ref = $sth->fetchrow_hashref(NAME_lc);
+ $ref->{ndx} = $i;
+ $oe{oe}{$ref->{curr}}{$ref->{id}} = $ref;
+
+ $oe{vc}{$ref->{curr}}{$ref->{"$form->{vc}_id"}}++;
+ $sth->finish;
+ }
+ }
+
+ $query = qq|SELECT * FROM orderitems
+ WHERE trans_id = ?|;
+ $sth = $dbh->prepare($query) || $form->dberror($query);
+
+ foreach $curr (keys %{ $oe{oe} }) {
+
+ foreach $id (sort { $oe{oe}{$curr}{$a}->{ndx} <=> $oe{oe}{$curr}{$b}->{ndx} } keys %{ $oe{oe}{$curr} }) {
+
+ # retrieve order
+ $vc_id = $oe{oe}{$curr}{$id}->{"$form->{vc}_id"};
+
+ if ($oe{vc}{$oe{oe}{$curr}{$id}->{curr}}{$vc_id} > 1) {
+
+ push @{ $oe{orders}{$curr}{$vc_id} }, $id;
+
+ $sth->execute($id);
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $oe{orderitems}{$curr}{$id} }, $ref;
+ }
+ $sth->finish;
+
+ }
+ }
+ }
+
+
+ my $ordnumber = $form->{ordnumber};
+ my $numberfld = ($form->{vc} eq 'customer') ? 'sonumber' : 'ponumber';
+
+ my ($department, $department_id) = $form->{department};
+ $department_id *= 1;
+
+ my $uid = localtime;
+ $uid .= "$$";
+
+ my @orderitems = ();
+
+ foreach $curr (keys %{ $oe{orders} }) {
+
+ foreach $vc_id (sort { $a <=> $b } keys %{ $oe{orders}{$curr} }) {
+ # the orders
+ @orderitems = ();
+ $form->{customer_id} = $form->{vendor_id} = 0;
+ $form->{"$form->{vc}_id"} = $vc_id;
+ $amount = 0;
+ $netamount = 0;
+
+ foreach $id (@{ $oe{orders}{$curr}{$vc_id} }) {
+
+ # header
+ $ref = $oe{oe}{$curr}{$id};
+
+ $amount += $ref->{amount};
+ $netamount += $ref->{netamount};
+
+ foreach $item (@{ $oe{orderitems}{$curr}{$id} }) {
+ push @orderitems, $item;
+ }
+
+ # close order
+ $query = qq|UPDATE oe SET
+ closed = '1'
+ WHERE id = $id|;
+ $dbh->do($query) || $form->dberror($query);
+
+ # reset shipped
+ $query = qq|UPDATE orderitems SET
+ ship = 0
+ WHERE trans_id = $id|;
+ $dbh->do($query) || $form->dberror($query);
+
+ }
+
+ $ordnumber ||= $form->update_defaults($myconfig, $numberfld, $dbh);
+
+ $query = qq|INSERT INTO oe (ordnumber)
+ VALUES ($uid)|;
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|SELECT id
+ FROM oe
+ WHERE ordnumber = '$uid'|;
+ ($id) = $dbh->selectrow_array($query);
+
+ $ref->{employee_id} *= 1;
+
+ $query = qq|UPDATE oe SET
+ ordnumber = |.$dbh->quote($ordnumber).qq|,
+ transdate = current_date,
+ vendor_id = $form->{vendor_id},
+ customer_id = $form->{customer_id},
+ amount = $amount,
+ netamount = $netamount,
+ reqdate = |.$form->dbquote($ref->{reqdate}, SQL_DATE).qq|,
+ taxincluded = '$ref->{taxincluded}',
+ shippingpoint = |.$dbh->quote($ref->{shippingpoint}).qq|,
+ notes = |.$dbh->quote($ref->{notes}).qq|,
+ curr = '$curr',
+ employee_id = $ref->{employee_id},
+ intnotes = |.$dbh->quote($ref->{intnotes}).qq|,
+ shipvia = |.$dbh->quote($ref->{shipvia}).qq|,
+ language_code = '$ref->{language_code}',
+ ponumber = |.$dbh->quote($form->{ponumber}).qq|,
+ department_id = $department_id
+ WHERE id = $id|;
+ $dbh->do($query) || $form->dberror($query);
+
+
+ # add items
+ foreach $item (@orderitems) {
+ for (qw(qty sellprice discount project_id ship)) { $item->{$_} *= 1 }
+ $query = qq|INSERT INTO orderitems (
+ trans_id, parts_id, description,
+ qty, sellprice, discount,
+ unit, reqdate, project_id,
+ ship, serialnumber, notes)
+ VALUES (
+ $id, $item->{parts_id}, |.$dbh->quote($item->{description}).qq|,
+ $item->{qty}, $item->{sellprice}, $item->{discount},
+ |.$dbh->quote($item->{unit}).qq|, |.$form->dbquote($item->{reqdate}, SQL_DATE).qq|, $item->{project_id},
+ $item->{ship}, |.$dbh->quote($item->{serialnumber}).qq|, |.$dbh->quote($item->{notes}).qq|)|;
+
+ $dbh->do($query) || $form->dberror($query);
+
+ }
+ }
+ }
+
+
+ $rc = $dbh->commit;
+ $dbh->disconnect;
+
+ $rc;
+
+}
+
+
+1;
+
diff --git a/LedgerSMB/OP.pm b/LedgerSMB/OP.pm
new file mode 100755
index 00000000..65b8da31
--- /dev/null
+++ b/LedgerSMB/OP.pm
@@ -0,0 +1,101 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has NOT undergone whitespace cleanup.
+#
+#======================================================================
+#
+# Overpayment function
+# used in AR, AP, IS, IR, OE, CP
+#
+#======================================================================
+
+package OP;
+
+sub overpayment {
+ my ($self, $myconfig, $form, $dbh, $amount, $ml) = @_;
+
+ my $fxamount = $form->round_amount($amount * $form->{exchangerate}, 2);
+ my ($paymentaccno) = split /--/, $form->{account};
+
+ my ($null, $department_id) = split /--/, $form->{department};
+ $department_id *= 1;
+
+ my $uid = localtime;
+ $uid .= "$$";
+
+ # add AR/AP header transaction with a payment
+ $query = qq|INSERT INTO $form->{arap} (invnumber, employee_id)
+ VALUES ('$uid', (SELECT id FROM employee
+ WHERE login = '$form->{login}'))|;
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|SELECT id FROM $form->{arap}
+ WHERE invnumber = '$uid'|;
+ ($uid) = $dbh->selectrow_array($query);
+
+ my $invnumber = $form->{invnumber};
+ $invnumber = $form->update_defaults($myconfig, ($form->{arap} eq 'ar') ? "sinumber" : "vinumber", $dbh) unless $invnumber;
+
+ $query = qq|UPDATE $form->{arap} set
+ invnumber = |.$dbh->quote($invnumber).qq|,
+ $form->{vc}_id = $form->{"$form->{vc}_id"},
+ transdate = '$form->{datepaid}',
+ datepaid = '$form->{datepaid}',
+ duedate = '$form->{datepaid}',
+ netamount = 0,
+ amount = 0,
+ paid = $fxamount,
+ curr = '$form->{currency}',
+ department_id = $department_id
+ WHERE id = $uid|;
+ $dbh->do($query) || $form->dberror($query);
+
+ # add AR/AP
+ ($accno) = split /--/, $form->{$form->{ARAP}};
+
+ $query = qq|INSERT INTO acc_trans (trans_id, chart_id, transdate, amount)
+ VALUES ($uid, (SELECT id FROM chart
+ WHERE accno = '$accno'),
+ '$form->{datepaid}', $fxamount * $ml)|;
+ $dbh->do($query) || $form->dberror($query);
+
+ # add payment
+ $query = qq|INSERT INTO acc_trans (trans_id, chart_id, transdate,
+ amount, source, memo)
+ VALUES ($uid, (SELECT id FROM chart
+ WHERE accno = '$paymentaccno'),
+ '$form->{datepaid}', $amount * $ml * -1, |
+ .$dbh->quote($form->{source}).qq|, |
+ .$dbh->quote($form->{memo}).qq|)|;
+ $dbh->do($query) || $form->dberror($query);
+
+ # add exchangerate difference
+ if ($fxamount != $amount) {
+ $query = qq|INSERT INTO acc_trans (trans_id, chart_id, transdate,
+ amount, cleared, fx_transaction, source)
+ VALUES ($uid, (SELECT id FROM chart
+ WHERE accno = '$paymentaccno'),
+ '$form->{datepaid}', ($fxamount - $amount) * $ml * -1,
+ '1', '1', |
+ .$dbh->quote($form->{source}).qq|)|;
+ $dbh->do($query) || $form->dberror($query);
+ }
+
+ my %audittrail = ( tablename => $form->{arap},
+ reference => $invnumber,
+ formname => ($form->{arap} eq 'ar') ? 'deposit' : 'pre-payment',
+ action => 'posted',
+ id => $uid );
+
+ $form->audittrail($dbh, "", \%audittrail);
+
+}
+
+
+1;
+
diff --git a/LedgerSMB/PE.pm b/LedgerSMB/PE.pm
new file mode 100755
index 00000000..d85f4cc3
--- /dev/null
+++ b/LedgerSMB/PE.pm
@@ -0,0 +1,1499 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has NOT undergone whitespace cleanup.
+#
+#======================================================================
+#
+# Project module
+# also used for partsgroups
+#
+#======================================================================
+
+package PE;
+
+
+sub projects {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ $form->{sort} = "projectnumber" unless $form->{sort};
+ my @a = ($form->{sort});
+ my %ordinal = ( projectnumber => 2,
+ description => 3,
+ startdate => 4,
+ enddate => 5,
+ );
+ my $sortorder = $form->sort_order(\@a, \%ordinal);
+
+ my $query;
+ my $where = "WHERE 1=1";
+
+ $query = qq|SELECT pr.*, c.name
+ FROM project pr
+ LEFT JOIN customer c ON (c.id = pr.customer_id)|;
+
+ if ($form->{type} eq 'job') {
+ $where .= qq| AND pr.id NOT IN (SELECT DISTINCT id
+ FROM parts
+ WHERE project_id > 0)|;
+ }
+
+ my $var;
+ if ($form->{projectnumber} ne "") {
+ $var = $form->like(lc $form->{projectnumber});
+ $where .= " AND lower(pr.projectnumber) LIKE '$var'";
+ }
+ if ($form->{description} ne "") {
+ $var = $form->like(lc $form->{description});
+ $where .= " AND lower(pr.description) LIKE '$var'";
+ }
+
+ ($form->{startdatefrom}, $form->{startdateto}) = $form->from_to($form->{year}, $form->{month}, $form->{interval}) if $form->{year} && $form->{month};
+
+ if ($form->{startdatefrom}) {
+ $where .= " AND (pr.startdate IS NULL OR pr.startdate >= '$form->{startdatefrom}')";
+ }
+ if ($form->{startdateto}) {
+ $where .= " AND (pr.startdate IS NULL OR pr.startdate <= '$form->{startdateto}')";
+ }
+
+ if ($form->{status} eq 'orphaned') {
+ $where .= qq| AND pr.id NOT IN (SELECT DISTINCT project_id
+ FROM acc_trans
+ WHERE project_id > 0
+ UNION
+ SELECT DISTINCT project_id
+ FROM invoice
+ WHERE project_id > 0
+ UNION
+ SELECT DISTINCT project_id
+ FROM orderitems
+ WHERE project_id > 0
+ UNION
+ SELECT DISTINCT project_id
+ FROM jcitems
+ WHERE project_id > 0)
+ |;
+
+ }
+ if ($form->{status} eq 'active') {
+ $where .= qq| AND (pr.enddate IS NULL OR pr.enddate >= current_date)|;
+ }
+ if ($form->{status} eq 'inactive') {
+ $where .= qq| AND pr.enddate <= current_date|;
+ }
+
+ $query .= qq|
+ $where
+ ORDER BY $sortorder|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my $i = 0;
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{all_project} }, $ref;
+ $i++;
+ }
+
+ $sth->finish;
+ $dbh->disconnect;
+
+ $i;
+
+}
+
+
+sub get_project {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $query;
+ my $sth;
+ my $ref;
+ my $where;
+
+ if ($form->{id}) {
+
+ $where = "WHERE pr.id = $form->{id}" if $form->{id};
+
+ $query = qq|SELECT pr.*,
+ c.name AS customer
+ FROM project pr
+ LEFT JOIN customer c ON (c.id = pr.customer_id)
+ $where|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ $ref = $sth->fetchrow_hashref(NAME_lc);
+
+ for (keys %$ref) { $form->{$_} = $ref->{$_} }
+
+ $sth->finish;
+
+ # check if it is orphaned
+ $query = qq|SELECT count(*)
+ FROM acc_trans
+ WHERE project_id = $form->{id}
+ UNION
+ SELECT count(*)
+ FROM invoice
+ WHERE project_id = $form->{id}
+ UNION
+ SELECT count(*)
+ FROM orderitems
+ WHERE project_id = $form->{id}
+ UNION
+ SELECT count(*)
+ FROM jcitems
+ WHERE project_id = $form->{id}
+ |;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my $count;
+ while (($count) = $sth->fetchrow_array) {
+ $form->{orphaned} += $count;
+ }
+ $sth->finish;
+ $form->{orphaned} = !$form->{orphaned};
+ }
+
+ PE->get_customer($myconfig, $form, $dbh);
+
+ $dbh->disconnect;
+
+}
+
+
+sub save_project {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ $form->{customer_id} ||= 'NULL';
+
+ $form->{projectnumber} = $form->update_defaults($myconfig, "projectnumber", $dbh) unless $form->{projectnumber};
+
+ if ($form->{id}) {
+
+ $query = qq|UPDATE project SET
+ projectnumber = |.$dbh->quote($form->{projectnumber}).qq|,
+ description = |.$dbh->quote($form->{description}).qq|,
+ startdate = |.$form->dbquote($form->{startdate}, SQL_DATE).qq|,
+ enddate = |.$form->dbquote($form->{enddate}, SQL_DATE).qq|,
+ customer_id = $form->{customer_id}
+ WHERE id = $form->{id}|;
+ } else {
+
+ $query = qq|INSERT INTO project
+ (projectnumber, description, startdate, enddate, customer_id)
+ VALUES (|
+ .$dbh->quote($form->{projectnumber}).qq|, |
+ .$dbh->quote($form->{description}).qq|, |
+ .$form->dbquote($form->{startdate}, SQL_DATE).qq|, |
+ .$form->dbquote($form->{enddate}, SQL_DATE).qq|,
+ $form->{customer_id}
+ )|;
+ }
+ $dbh->do($query) || $form->dberror($query);
+
+ $dbh->disconnect;
+
+}
+
+
+sub list_stock {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $var;
+ my $where = "1 = 1";
+
+ if ($form->{status} eq 'active') {
+ $where = qq|(pr.enddate IS NULL
+ OR pr.enddate >= current_date)
+ AND pr.completed < pr.production|;
+ }
+ if ($form->{status} eq 'inactive') {
+ $where = qq|pr.completed = pr.production|;
+ }
+
+ if ($form->{projectnumber}) {
+ $var = $form->like(lc $form->{projectnumber});
+ $where .= " AND lower(pr.projectnumber) LIKE '$var'";
+ }
+
+ if ($form->{description}) {
+ $var = $form->like(lc $form->{description});
+ $where .= " AND lower(pr.description) LIKE '$var'";
+ }
+
+ $form->{sort} = "projectnumber" unless $form->{sort};
+ my @a = ($form->{sort});
+ my %ordinal = ( projectnumber => 2,
+ description => 3
+ );
+ my $sortorder = $form->sort_order(\@a, \%ordinal);
+
+ my $query = qq|SELECT pr.*, p.partnumber
+ FROM project pr
+ JOIN parts p ON (p.id = pr.parts_id)
+ WHERE $where
+ ORDER BY $sortorder|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{all_project} }, $ref;
+ }
+ $sth->finish;
+
+ $query = qq|SELECT current_date FROM defaults|;
+ ($form->{stockingdate}) = $dbh->selectrow_array($query) if !$form->{stockingdate};
+
+ $dbh->disconnect;
+
+}
+
+
+sub jobs {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ $form->{sort} = "projectnumber" unless $form->{sort};
+ my @a = ($form->{sort});
+ my %ordinal = ( projectnumber => 2,
+ description => 3,
+ startdate => 4,
+ );
+ my $sortorder = $form->sort_order(\@a, \%ordinal);
+
+ my $query = qq|SELECT pr.*, p.partnumber, p.onhand, c.name
+ FROM project pr
+ JOIN parts p ON (p.id = pr.parts_id)
+ LEFT JOIN customer c ON (c.id = pr.customer_id)
+ WHERE 1=1|;
+
+ if ($form->{projectnumber} ne "") {
+ $var = $form->like(lc $form->{projectnumber});
+ $query .= " AND lower(pr.projectnumber) LIKE '$var'";
+ }
+ if ($form->{description} ne "") {
+ $var = $form->like(lc $form->{description});
+ $query .= " AND lower(pr.description) LIKE '$var'";
+ }
+
+ ($form->{startdatefrom}, $form->{startdateto}) = $form->from_to($form->{year}, $form->{month}, $form->{interval}) if $form->{year} && $form->{month};
+
+ if ($form->{startdatefrom}) {
+ $query .= " AND pr.startdate >= '$form->{startdatefrom}'";
+ }
+ if ($form->{startdateto}) {
+ $query .= " AND pr.startdate <= '$form->{startdateto}'";
+ }
+
+ if ($form->{status} eq 'active') {
+ $query .= qq| AND NOT pr.production = pr.completed|;
+ }
+ if ($form->{status} eq 'inactive') {
+ $query .= qq| AND pr.production = pr.completed|;
+ }
+ if ($form->{status} eq 'orphaned') {
+ $query .= qq| AND pr.completed = 0
+ AND (pr.id NOT IN SELECT DISTINCT project_id
+ FROM invoice
+ WHERE project_id > 0)
+ UNION
+ SELECT DISTINCT project_id
+ FROM orderitems
+ WHERE project_id > 0
+ SELECT DISTINCT project_id
+ FROM jcitems
+ WHERE project_id > 0
+ )|;
+ }
+
+ $query .= qq|
+ ORDER BY $sortorder|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{all_project} }, $ref;
+ }
+
+ $sth->finish;
+
+ $dbh->disconnect;
+
+}
+
+
+sub get_job {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $query;
+ my $sth;
+ my $ref;
+
+ if ($form->{id}) {
+ $query = qq|SELECT weightunit
+ FROM defaults|;
+ ($form->{weightunit}) = $dbh->selectrow_array($query);
+
+ $query = qq|SELECT pr.*,
+ p.partnumber, p.description AS partdescription, p.unit, p.listprice,
+ p.sellprice, p.priceupdate, p.weight, p.notes, p.bin,
+ p.partsgroup_id,
+ ch.accno AS income_accno, ch.description AS income_description,
+ pr.customer_id, c.name AS customer,
+ pg.partsgroup
+ FROM project pr
+ LEFT JOIN parts p ON (p.id = pr.parts_id)
+ LEFT JOIN chart ch ON (ch.id = p.income_accno_id)
+ LEFT JOIN customer c ON (c.id = pr.customer_id)
+ LEFT JOIN partsgroup pg ON (pg.id = p.partsgroup_id)
+ WHERE pr.id = $form->{id}|;
+ } else {
+ $query = qq|SELECT weightunit, current_date AS startdate FROM defaults|;
+ }
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ $ref = $sth->fetchrow_hashref(NAME_lc);
+
+ for (keys %$ref) { $form->{$_} = $ref->{$_} }
+
+ $sth->finish;
+
+ if ($form->{id}) {
+ # check if it is orphaned
+ $query = qq|SELECT count(*)
+ FROM invoice
+ WHERE project_id = $form->{id}
+ UNION
+ SELECT count(*)
+ FROM orderitems
+ WHERE project_id = $form->{id}
+ UNION
+ SELECT count(*)
+ FROM jcitems
+ WHERE project_id = $form->{id}
+ |;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my $count;
+ while (($count) = $sth->fetchrow_array) {
+ $form->{orphaned} += $count;
+ }
+ $sth->finish;
+
+ }
+
+ $form->{orphaned} = !$form->{orphaned};
+
+ $query = qq|SELECT accno, description, link
+ FROM chart
+ WHERE link LIKE '%IC%'
+ ORDER BY accno|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ for (split /:/, $ref->{link}) {
+ if (/IC/) {
+ push @{ $form->{IC_links}{$_} }, { accno => $ref->{accno},
+ description => $ref->{description} };
+ }
+ }
+ }
+ $sth->finish;
+
+ if ($form->{id}) {
+ $query = qq|SELECT ch.accno
+ FROM parts p
+ JOIN partstax pt ON (pt.parts_id = p.id)
+ JOIN chart ch ON (pt.chart_id = ch.id)
+ WHERE p.id = $form->{id}|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ $form->{amount}{$ref->{accno}} = $ref->{accno};
+ }
+ $sth->finish;
+ }
+
+ PE->get_customer($myconfig, $form, $dbh);
+
+ $dbh->disconnect;
+
+}
+
+
+sub get_customer {
+ my ($self, $myconfig, $form, $dbh) = @_;
+
+ my $disconnect = 0;
+
+ if (! $dbh) {
+ $dbh = $form->dbconnect($myconfig);
+ $disconnect = 1;
+ }
+
+ my $query;
+ my $sth;
+ my $ref;
+
+ if (! $form->{startdate}) {
+ $query = qq|SELECT current_date FROM defaults|;
+ ($form->{startdate}) = $dbh->selectrow_array($query);
+ }
+
+ my $where = qq|(startdate >= '$form->{startdate}' OR startdate IS NULL OR enddate IS NULL)|;
+
+ if ($form->{enddate}) {
+ $where .= qq| AND (enddate >= '$form->{enddate}' OR enddate IS NULL)|;
+ } else {
+ $where .= qq| AND (enddate >= current_date OR enddate IS NULL)|;
+ }
+
+ $query = qq|SELECT count(*)
+ FROM customer
+ WHERE $where|;
+ my ($count) = $dbh->selectrow_array($query);
+
+ if ($count < $myconfig->{vclimit}) {
+ $query = qq|SELECT id, name
+ FROM customer
+ WHERE $where|;
+
+ if ($form->{customer_id}) {
+ $query .= qq|
+ UNION SELECT id,name
+ FROM customer
+ WHERE id = $form->{customer_id}|;
+ }
+
+ $query .= qq|
+ ORDER BY name|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ @{ $form->{all_customer} } = ();
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{all_customer} }, $ref;
+ }
+ $sth->finish;
+ }
+
+ $dbh->disconnect if $disconnect;
+
+}
+
+
+sub save_job {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ my ($income_accno) = split /--/, $form->{IC_income};
+
+ my ($partsgroup, $partsgroup_id) = split /--/, $form->{partsgroup};
+ $partsgroup_id ||= 'NULL';
+
+ if ($form->{id}) {
+ $query = qq|SELECT id FROM project
+ WHERE id = $form->{id}|;
+ ($form->{id}) = $dbh->selectrow_array($query);
+ }
+
+ if (!$form->{id}) {
+ my $uid = localtime;
+ $uid .= "$$";
+
+ $query = qq|INSERT INTO project (projectnumber)
+ VALUES ('$uid')|;
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|SELECT id FROM project
+ WHERE projectnumber = '$uid'|;
+ ($form->{id}) = $dbh->selectrow_array($query);
+ }
+
+ $form->{projectnumber} = $form->update_defaults($myconfig, "projectnumber", $dbh) unless $form->{projectnumber};
+
+ $query = qq|UPDATE project SET
+ projectnumber = |.$dbh->quote($form->{projectnumber}).qq|,
+ description = |.$dbh->quote($form->{description}).qq|,
+ startdate = |.$form->dbquote($form->{startdate}, SQL_DATE).qq|,
+ enddate = |.$form->dbquote($form->{enddate}, SQL_DATE).qq|,
+ parts_id = $form->{id},
+ production = |.$form->parse_amount($myconfig, $form->{production}).qq|,
+ customer_id = $form->{customer_id}
+ WHERE id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+
+ #### add/edit assembly
+ $query = qq|SELECT id FROM parts
+ WHERE id = $form->{id}|;
+ my ($id) = $dbh->selectrow_array($query);
+
+ if (!$id) {
+ $query = qq|INSERT INTO parts (id)
+ VALUES ($form->{id})|;
+ $dbh->do($query) || $form->dberror($query);
+ }
+
+ my $partnumber = ($form->{partnumber}) ? $form->{partnumber} : $form->{projectnumber};
+
+ $query = qq|UPDATE parts SET
+ partnumber = |.$dbh->quote($partnumber).qq|,
+ description = |.$dbh->quote($form->{partdescription}).qq|,
+ priceupdate = |.$form->dbquote($form->{priceupdate}, SQL_DATE).qq|,
+ listprice = |.$form->parse_amount($myconfig, $form->{listprice}).qq|,
+ sellprice = |.$form->parse_amount($myconfig, $form->{sellprice}).qq|,
+ weight = |.$form->parse_amount($myconfig, $form->{weight}).qq|,
+ bin = '$form->{bin}',
+ unit = |.$dbh->quote($form->{unit}).qq|,
+ notes = |.$dbh->quote($form->{notes}).qq|,
+ income_accno_id = (SELECT id FROM chart
+ WHERE accno = '$income_accno'),
+ partsgroup_id = $partsgroup_id,
+ assembly = '1',
+ obsolete = '1',
+ project_id = $form->{id}
+ WHERE id = $form->{id}|;
+
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|DELETE FROM partstax
+ WHERE parts_id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ for (split / /, $form->{taxaccounts}) {
+ if ($form->{"IC_tax_$_"}) {
+ $query = qq|INSERT INTO partstax (parts_id, chart_id)
+ VALUES ($form->{id},
+ (SELECT id
+ FROM chart
+ WHERE accno = '$_'))|;
+ $dbh->do($query) || $form->dberror($query);
+ }
+ }
+
+ $dbh->commit;
+ $dbh->disconnect;
+
+}
+
+
+sub stock_assembly {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ my $ref;
+
+ my $query = qq|SELECT *
+ FROM project
+ WHERE id = ?|;
+ my $sth = $dbh->prepare($query) || $form->dberror($query);
+
+ $query = qq|SELECT COUNT(*)
+ FROM parts
+ WHERE project_id = ?|;
+ my $rvh = $dbh->prepare($query) || $form->dberror($query);
+
+ if (! $form->{stockingdate}) {
+ $query = qq|SELECT current_date FROM defaults|;
+ ($form->{stockingdate}) = $dbh->selectrow_array($query);
+ }
+
+ $query = qq|SELECT *
+ FROM parts
+ WHERE id = ?|;
+ my $pth = $dbh->prepare($query) || $form->dberror($query);
+
+ $query = qq|SELECT j.*, p.lastcost FROM jcitems j
+ JOIN parts p ON (p.id = j.parts_id)
+ WHERE j.project_id = ?
+ AND j.checkedin <= '$form->{stockingdate}'
+ ORDER BY parts_id|;
+ my $jth = $dbh->prepare($query) || $form->dberror($query);
+
+ $query = qq|INSERT INTO assembly (id, parts_id, qty, bom, adj)
+ VALUES (?, ?, ?, '0', '0')|;
+ my $ath = $dbh->prepare($query) || $form->dberror($query);
+
+ my $i = 0;
+ my $sold;
+ my $ship;
+
+ while (1) {
+ $i++;
+ last unless $form->{"id_$i"};
+
+ $stock = $form->parse_amount($myconfig, $form->{"stock_$i"});
+
+ if ($stock) {
+ $sth->execute($form->{"id_$i"});
+ $ref = $sth->fetchrow_hashref(NAME_lc);
+
+ if ($stock > ($ref->{production} - $ref->{completed})) {
+ $stock = $ref->{production} - $ref->{completed};
+ }
+ if (($stock * -1) > $ref->{completed}) {
+ $stock = $ref->{completed} * -1;
+ }
+
+ $pth->execute($form->{"id_$i"});
+ $pref = $pth->fetchrow_hashref(NAME_lc);
+
+ my %assembly = ();
+ my $lastcost = 0;
+ my $sellprice = 0;
+ my $listprice = 0;
+
+ $jth->execute($form->{"id_$i"});
+ while ($jref = $jth->fetchrow_hashref(NAME_lc)) {
+ $assembly{qty}{$jref->{parts_id}} += ($jref->{qty} - $jref->{allocated});
+ $assembly{parts_id}{$jref->{parts_id}} = $jref->{parts_id};
+ $assembly{jcitems}{$jref->{id}} = $jref->{id};
+ $lastcost += $form->round_amount(($jref->{lastcost} * ($jref->{qty} - $jref->{allocated})), 2);
+ $sellprice += $form->round_amount(($jref->{sellprice} * ($jref->{qty} - $jref->{allocated})), 2);
+ $listprice += $form->round_amount(($jref->{listprice} * ($jref->{qty} - $jref->{allocated})), 2);
+ }
+ $jth->finish;
+
+ $uid = localtime;
+ $uid .= "$$";
+
+ $query = qq|INSERT INTO parts (partnumber)
+ VALUES ('$uid')|;
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|SELECT id
+ FROM parts
+ WHERE partnumber = '$uid'|;
+ ($uid) = $dbh->selectrow_array($query);
+
+ $lastcost = $form->round_amount($lastcost / $stock, 2);
+ $sellprice = ($pref->{sellprice}) ? $pref->{sellprice} : $form->round_amount($sellprice / $stock, 2);
+ $listprice = ($pref->{listprice}) ? $pref->{listprice} : $form->round_amount($listprice / $stock, 2);
+
+ $rvh->execute($form->{"id_$i"});
+ my ($rev) = $rvh->fetchrow_array;
+ $rvh->finish;
+
+ $query = qq|UPDATE parts SET
+ partnumber = '$pref->{partnumber}-$rev',
+ description = '$pref->{partdescription}',
+ priceupdate = '$form->{stockingdate}',
+ unit = '$pref->{unit}',
+ listprice = $listprice,
+ sellprice = $sellprice,
+ lastcost = $lastcost,
+ weight = $pref->{weight},
+ onhand = $stock,
+ notes = '$pref->{notes}',
+ assembly = '1',
+ income_accno_id = $pref->{income_accno_id},
+ bin = '$pref->{bin}',
+ project_id = $form->{"id_$i"}
+ WHERE id = $uid|;
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|INSERT INTO partstax (parts_id, chart_id)
+ SELECT '$uid', chart_id FROM partstax
+ WHERE parts_id = $pref->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+
+ $pth->finish;
+
+ for (keys %{$assembly{parts_id}}) {
+ if ($assembly{qty}{$_}) {
+ $ath->execute($uid, $assembly{parts_id}{$_}, $form->round_amount($assembly{qty}{$_} / $stock, 4));
+ $ath->finish;
+ }
+ }
+
+ $form->update_balance($dbh,
+ "project",
+ "completed",
+ qq|id = $form->{"id_$i"}|,
+ $stock);
+
+ $query = qq|UPDATE jcitems SET
+ allocated = qty
+ WHERE allocated != qty
+ AND checkedin <= '$form->{stockingdate}'
+ AND project_id = $form->{"id_$i"}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ $sth->finish;
+
+ }
+
+ }
+
+ my $rc = $dbh->commit;
+ $dbh->disconnect;
+
+ $rc;
+
+}
+
+
+sub delete_project {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ $query = qq|DELETE FROM project
+ WHERE id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|DELETE FROM translation
+ WHERE trans_id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ my $rc = $dbh->commit;
+ $dbh->disconnect;
+
+ $rc;
+
+}
+
+
+sub delete_partsgroup {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ $query = qq|DELETE FROM partsgroup
+ WHERE id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|DELETE FROM translation
+ WHERE trans_id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ my $rc = $dbh->commit;
+ $dbh->disconnect;
+
+ $rc;
+
+}
+
+
+sub delete_pricegroup {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ $query = qq|DELETE FROM pricegroup
+ WHERE id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ my $rc = $dbh->commit;
+ $dbh->disconnect;
+
+ $rc;
+
+}
+
+
+sub delete_job {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ my %audittrail = ( tablename => 'project',
+ reference => $form->{id},
+ formname => $form->{type},
+ action => 'deleted',
+ id => $form->{id} );
+
+ $form->audittrail($dbh, "", \%audittrail);
+
+ my $query = qq|DELETE FROM project
+ WHERE id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|DELETE FROM translation
+ WHERE trans_id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ # delete all the assemblies
+ $query = qq|DELETE FROM assembly a
+ JOIN parts p ON (a.id = p.id)
+ WHERE p.project_id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|DELETE FROM parts
+ WHERE project_id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ my $rc = $dbh->commit;
+ $dbh->disconnect;
+
+ $rc;
+
+}
+
+
+sub partsgroups {
+ my ($self, $myconfig, $form) = @_;
+
+ my $var;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ $form->{sort} = "partsgroup" unless $form->{partsgroup};
+ my @a = (partsgroup);
+ my $sortorder = $form->sort_order(\@a);
+
+ my $query = qq|SELECT g.*
+ FROM partsgroup g|;
+
+ my $where = "1 = 1";
+
+ if ($form->{partsgroup} ne "") {
+ $var = $form->like(lc $form->{partsgroup});
+ $where .= " AND lower(partsgroup) LIKE '$var'";
+ }
+ $query .= qq|
+ WHERE $where
+ ORDER BY $sortorder|;
+
+ if ($form->{status} eq 'orphaned') {
+ $query = qq|SELECT g.*
+ FROM partsgroup g
+ LEFT JOIN parts p ON (p.partsgroup_id = g.id)
+ WHERE $where
+ EXCEPT
+ SELECT g.*
+ FROM partsgroup g
+ JOIN parts p ON (p.partsgroup_id = g.id)
+ WHERE $where
+ ORDER BY $sortorder|;
+ }
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my $i = 0;
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{item_list} }, $ref;
+ $i++;
+ }
+
+ $sth->finish;
+ $dbh->disconnect;
+
+ $i;
+
+}
+
+
+sub save_partsgroup {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ if ($form->{id}) {
+ $query = qq|UPDATE partsgroup SET
+ partsgroup = |.$dbh->quote($form->{partsgroup}).qq|
+ WHERE id = $form->{id}|;
+ } else {
+ $query = qq|INSERT INTO partsgroup
+ (partsgroup)
+ VALUES (|.$dbh->quote($form->{partsgroup}).qq|)|;
+ }
+ $dbh->do($query) || $form->dberror($query);
+
+ $dbh->disconnect;
+
+}
+
+
+sub get_partsgroup {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $query = qq|SELECT *
+ FROM partsgroup
+ WHERE id = $form->{id}|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my $ref = $sth->fetchrow_hashref(NAME_lc);
+
+ for (keys %$ref) { $form->{$_} = $ref->{$_} }
+
+ $sth->finish;
+
+ # check if it is orphaned
+ $query = qq|SELECT count(*)
+ FROM parts
+ WHERE partsgroup_id = $form->{id}|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ ($form->{orphaned}) = $sth->fetchrow_array;
+ $form->{orphaned} = !$form->{orphaned};
+
+ $sth->finish;
+
+ $dbh->disconnect;
+
+}
+
+
+sub pricegroups {
+ my ($self, $myconfig, $form) = @_;
+
+ my $var;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ $form->{sort} = "pricegroup" unless $form->{sort};
+ my @a = (pricegroup);
+ my $sortorder = $form->sort_order(\@a);
+
+ my $query = qq|SELECT g.*
+ FROM pricegroup g|;
+
+ my $where = "1 = 1";
+
+ if ($form->{pricegroup} ne "") {
+ $var = $form->like(lc $form->{pricegroup});
+ $where .= " AND lower(pricegroup) LIKE '$var'";
+ }
+ $query .= qq|
+ WHERE $where
+ ORDER BY $sortorder|;
+
+ if ($form->{status} eq 'orphaned') {
+ $query = qq|SELECT g.*
+ FROM pricegroup g
+ WHERE $where
+ AND g.id NOT IN (SELECT DISTINCT pricegroup_id
+ FROM partscustomer
+ WHERE pricegroup_id > 0)
+ ORDER BY $sortorder|;
+ }
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my $i = 0;
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{item_list} }, $ref;
+ $i++;
+ }
+
+ $sth->finish;
+ $dbh->disconnect;
+
+ $i;
+
+}
+
+
+sub save_pricegroup {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ if ($form->{id}) {
+ $query = qq|UPDATE pricegroup SET
+ pricegroup = |.$dbh->quote($form->{pricegroup}).qq|
+ WHERE id = $form->{id}|;
+ } else {
+ $query = qq|INSERT INTO pricegroup
+ (pricegroup)
+ VALUES (|.$dbh->quote($form->{pricegroup}).qq|)|;
+ }
+ $dbh->do($query) || $form->dberror($query);
+
+ $dbh->disconnect;
+
+}
+
+
+sub get_pricegroup {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $query = qq|SELECT *
+ FROM pricegroup
+ WHERE id = $form->{id}|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my $ref = $sth->fetchrow_hashref(NAME_lc);
+
+ for (keys %$ref) { $form->{$_} = $ref->{$_} }
+
+ $sth->finish;
+
+ # check if it is orphaned
+ $query = qq|SELECT count(*)
+ FROM partscustomer
+ WHERE pricegroup_id = $form->{id}|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ ($form->{orphaned}) = $sth->fetchrow_array;
+ $form->{orphaned} = !$form->{orphaned};
+
+ $sth->finish;
+
+ $dbh->disconnect;
+
+}
+
+
+sub description_translations {
+ my ($self, $myconfig, $form) = @_;
+
+ my $where = "1 = 1";
+ my $var;
+ my $ref;
+
+ for (qw(partnumber description)) {
+ if ($form->{$_}) {
+ $var = $form->like(lc $form->{$_});
+ $where .= " AND lower(p.$_) LIKE '$var'";
+ }
+ }
+
+ $where .= " AND p.obsolete = '0'";
+ $where .= " AND p.id = $form->{id}" if $form->{id};
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my %ordinal = ( 'partnumber' => 2,
+ 'description' => 3
+ );
+
+ my @a = qw(partnumber description);
+ my $sortorder = $form->sort_order(\@a, \%ordinal);
+
+ my $query = qq|SELECT l.description AS language, t.description AS translation,
+ l.code
+ FROM translation t
+ JOIN language l ON (l.code = t.language_code)
+ WHERE trans_id = ?
+ ORDER BY 1|;
+ my $tth = $dbh->prepare($query);
+
+ $query = qq|SELECT p.id, p.partnumber, p.description
+ FROM parts p
+ WHERE $where
+ ORDER BY $sortorder|;
+
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my $tra;
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{translations} }, $ref;
+
+ # get translations for description
+ $tth->execute($ref->{id}) || $form->dberror;
+
+ while ($tra = $tth->fetchrow_hashref(NAME_lc)) {
+ $form->{trans_id} = $ref->{id};
+ $tra->{id} = $ref->{id};
+ push @{ $form->{translations} }, $tra;
+ }
+ $tth->finish;
+
+ }
+ $sth->finish;
+
+ &get_language("", $dbh, $form) if $form->{id};
+
+ $dbh->disconnect;
+
+}
+
+
+sub partsgroup_translations {
+ my ($self, $myconfig, $form) = @_;
+
+ my $where = "1 = 1";
+ my $ref;
+ my $var;
+
+ if ($form->{description}) {
+ $var = $form->like(lc $form->{description});
+ $where .= " AND lower(p.partsgroup) LIKE '$var'";
+ }
+ $where .= " AND p.id = $form->{id}" if $form->{id};
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $query = qq|SELECT l.description AS language, t.description AS translation,
+ l.code
+ FROM translation t
+ JOIN language l ON (l.code = t.language_code)
+ WHERE trans_id = ?
+ ORDER BY 1|;
+ my $tth = $dbh->prepare($query);
+
+ $form->sort_order();
+
+ $query = qq|SELECT p.id, p.partsgroup AS description
+ FROM partsgroup p
+ WHERE $where
+ ORDER BY 2 $form->{direction}|;
+
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my $tra;
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{translations} }, $ref;
+
+ # get translations for partsgroup
+ $tth->execute($ref->{id}) || $form->dberror;
+
+ while ($tra = $tth->fetchrow_hashref(NAME_lc)) {
+ $form->{trans_id} = $ref->{id};
+ push @{ $form->{translations} }, $tra;
+ }
+ $tth->finish;
+
+ }
+ $sth->finish;
+
+ &get_language("", $dbh, $form) if $form->{id};
+
+ $dbh->disconnect;
+
+}
+
+
+sub project_translations {
+ my ($self, $myconfig, $form) = @_;
+
+ my $where = "1 = 1";
+ my $var;
+ my $ref;
+
+ for (qw(projectnumber description)) {
+ if ($form->{$_}) {
+ $var = $form->like(lc $form->{$_});
+ $where .= " AND lower(p.$_) LIKE '$var'";
+ }
+ }
+
+ $where .= " AND p.id = $form->{id}" if $form->{id};
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my %ordinal = ( 'projectnumber' => 2,
+ 'description' => 3
+ );
+
+ my @a = qw(projectnumber description);
+ my $sortorder = $form->sort_order(\@a, \%ordinal);
+
+ my $query = qq|SELECT l.description AS language, t.description AS translation,
+ l.code
+ FROM translation t
+ JOIN language l ON (l.code = t.language_code)
+ WHERE trans_id = ?
+ ORDER BY 1|;
+ my $tth = $dbh->prepare($query);
+
+ $query = qq|SELECT p.id, p.projectnumber, p.description
+ FROM project p
+ WHERE $where
+ ORDER BY $sortorder|;
+
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my $tra;
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{translations} }, $ref;
+
+ # get translations for description
+ $tth->execute($ref->{id}) || $form->dberror;
+
+ while ($tra = $tth->fetchrow_hashref(NAME_lc)) {
+ $form->{trans_id} = $ref->{id};
+ $tra->{id} = $ref->{id};
+ push @{ $form->{translations} }, $tra;
+ }
+ $tth->finish;
+
+ }
+ $sth->finish;
+
+ &get_language("", $dbh, $form) if $form->{id};
+
+ $dbh->disconnect;
+
+}
+
+
+sub get_language {
+ my ($self, $dbh, $form) = @_;
+
+ # get language
+ my $query = qq|SELECT *
+ FROM language
+ ORDER BY 2|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{all_language} }, $ref;
+ }
+ $sth->finish;
+
+}
+
+
+sub save_translation {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ my $query = qq|DELETE FROM translation
+ WHERE trans_id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ $query = qq|INSERT INTO translation (trans_id, language_code, description)
+ VALUES ($form->{id}, ?, ?)|;
+ my $sth = $dbh->prepare($query) || $form->dberror($query);
+
+ foreach my $i (1 .. $form->{translation_rows}) {
+ if ($form->{"language_code_$i"} ne "") {
+ $sth->execute($form->{"language_code_$i"}, $form->{"translation_$i"});
+ $sth->finish;
+ }
+ }
+ $dbh->commit;
+ $dbh->disconnect;
+
+}
+
+
+sub delete_translation {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $query = qq|DELETE FROM translation
+ WHERE trans_id = $form->{id}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ $dbh->disconnect;
+
+}
+
+
+sub project_sales_order {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $query = qq|SELECT current_date FROM defaults|;
+ my ($transdate) = $dbh->selectrow_array($query);
+
+ $form->all_years($myconfig, $dbh);
+
+ $form->all_projects($myconfig, $dbh, $transdate);
+
+ $form->all_employees($myconfig, $dbh, $transdate);
+
+ $dbh->disconnect;
+
+}
+
+
+sub get_jcitems {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $null;
+ my $var;
+ my $where;
+
+ if ($form->{projectnumber}) {
+ ($null, $var) = split /--/, $form->{projectnumber};
+ $where .= " AND j.project_id = $var";
+ }
+
+ if ($form->{employee}) {
+ ($null, $var) = split /--/, $form->{employee};
+ $where .= " AND j.employee_id = $var";
+ }
+
+ ($form->{transdatefrom}, $form->{transdateto}) = $form->from_to($form->{year}, $form->{month}, $form->{interval}) if $form->{year} && $form->{month};
+
+ if ($form->{transdatefrom}) {
+ $where .= " AND j.checkedin >= '$form->{transdatefrom}'";
+ }
+ if ($form->{transdateto}) {
+ $where .= " AND j.checkedout <= (date '$form->{transdateto}' + interval '1 days')";
+ }
+
+ my $query;
+ my $ref;
+
+ $query = qq|SELECT j.id, j.description, j.qty - j.allocated AS qty,
+ j.sellprice, j.parts_id, pr.$form->{vc}_id, j.project_id,
+ j.checkedin::date AS transdate, j.notes,
+ c.name AS $form->{vc}, pr.projectnumber, p.partnumber
+ FROM jcitems j
+ JOIN project pr ON (pr.id = j.project_id)
+ JOIN employee e ON (e.id = j.employee_id)
+ JOIN parts p ON (p.id = j.parts_id)
+ LEFT JOIN $form->{vc} c ON (c.id = pr.$form->{vc}_id)
+ WHERE pr.parts_id IS NULL
+ AND j.allocated != j.qty
+ $where
+ ORDER BY pr.projectnumber, c.name, j.checkedin::date|;
+
+ if ($form->{summary}) {
+ $query =~ s/j\.description/p\.description/;
+ $query =~ s/c\.name,/c\.name, j\.parts_id, /;
+ }
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ # tax accounts
+ $query = qq|SELECT c.accno
+ FROM chart c
+ JOIN partstax pt ON (pt.chart_id = c.id)
+ WHERE pt.parts_id = ?|;
+ my $tth = $dbh->prepare($query) || $form->dberror($query);
+ my $ptref;
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+
+ $tth->execute($ref->{parts_id});
+ $ref->{taxaccounts} = "";
+ while ($ptref = $tth->fetchrow_hashref(NAME_lc)) {
+ $ref->{taxaccounts} .= "$ptref->{accno} ";
+ }
+ $tth->finish;
+ chop $ref->{taxaccounts};
+
+ $ref->{amount} = $ref->{sellprice} * $ref->{qty};
+
+ push @{ $form->{jcitems} }, $ref;
+ }
+
+ $sth->finish;
+
+ $query = qq|SELECT curr
+ FROM defaults|;
+ ($form->{currency}) = $dbh->selectrow_array($query);
+ $form->{currency} =~ s/:.*//;
+ $form->{defaultcurrency} = $form->{currency};
+
+ $query = qq|SELECT c.accno, t.rate
+ FROM tax t
+ JOIN chart c ON (c.id = t.chart_id)|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ $form->{taxaccounts} .= "$ref->{accno} ";
+ $form->{"$ref->{accno}_rate"} = $ref->{rate};
+ }
+ chop $form->{taxaccounts};
+ $sth->finish;
+
+ $dbh->disconnect;
+
+}
+
+
+sub allocate_projectitems {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ for my $i (1 .. $form->{rowcount}) {
+ for (split / /, $form->{"jcitems_$i"}) {
+ my ($id, $qty) = split /:/, $_;
+ $form->update_balance($dbh,
+ 'jcitems',
+ 'allocated',
+ "id = $id",
+ $qty);
+ }
+ }
+
+ $rc = $dbh->commit;
+ $dbh->disconnect;
+
+ $rc;
+
+}
+
+
+1;
+
diff --git a/LedgerSMB/RC.pm b/LedgerSMB/RC.pm
new file mode 100755
index 00000000..8b518cba
--- /dev/null
+++ b/LedgerSMB/RC.pm
@@ -0,0 +1,391 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has NOT undergone whitespace cleanup.
+#
+#======================================================================
+#
+# Account reconciliation routines
+#
+#======================================================================
+
+package RC;
+
+
+sub paymentaccounts {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $query = qq|SELECT accno, description
+ FROM chart
+ WHERE link LIKE '%_paid%'
+ AND (category = 'A' OR category = 'L')
+ ORDER BY accno|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{PR} }, $ref;
+ }
+ $sth->finish;
+
+ $form->all_years($myconfig, $dbh);
+
+ $dbh->disconnect;
+
+}
+
+
+sub payment_transactions {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database, turn AutoCommit off
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ my $query;
+ my $sth;
+
+ $query = qq|SELECT category FROM chart
+ WHERE accno = '$form->{accno}'|;
+ ($form->{category}) = $dbh->selectrow_array($query);
+
+ my $cleared;
+
+ ($form->{fromdate}, $form->{todate}) = $form->from_to($form->{year}, $form->{month}, $form->{interval}) if $form->{year} && $form->{month};
+
+ my $transdate = qq| AND ac.transdate < date '$form->{fromdate}'|;
+
+ if (! $form->{fromdate}) {
+ $cleared = qq| AND ac.cleared = '1'|;
+ $transdate = "";
+ }
+
+ # get beginning balance
+ $query = qq|SELECT sum(ac.amount)
+ FROM acc_trans ac
+ JOIN chart ch ON (ch.id = ac.chart_id)
+ WHERE ch.accno = '$form->{accno}'
+ $transdate
+ $cleared
+ |;
+ ($form->{beginningbalance}) = $dbh->selectrow_array($query);
+
+ # fx balance
+ $query = qq|SELECT sum(ac.amount)
+ FROM acc_trans ac
+ JOIN chart ch ON (ch.id = ac.chart_id)
+ WHERE ch.accno = '$form->{accno}'
+ AND ac.fx_transaction = '1'
+ $transdate
+ $cleared
+ |;
+ ($form->{fx_balance}) = $dbh->selectrow_array($query);
+
+
+ $transdate = "";
+ if ($form->{todate}) {
+ $transdate = qq| AND ac.transdate <= date '$form->{todate}'|;
+ }
+
+ # get statement balance
+ $query = qq|SELECT sum(ac.amount)
+ FROM acc_trans ac
+ JOIN chart ch ON (ch.id = ac.chart_id)
+ WHERE ch.accno = '$form->{accno}'
+ $transdate
+ |;
+ ($form->{endingbalance}) = $dbh->selectrow_array($query);
+
+ # fx balance
+ $query = qq|SELECT sum(ac.amount)
+ FROM acc_trans ac
+ JOIN chart ch ON (ch.id = ac.chart_id)
+ WHERE ch.accno = '$form->{accno}'
+ AND ac.fx_transaction = '1'
+ $transdate
+ |;
+ ($form->{fx_endingbalance}) = $dbh->selectrow_array($query);
+
+
+ $cleared = qq| AND ac.cleared = '0'| unless $form->{fromdate};
+
+ if ($form->{report}) {
+ $cleared = qq| AND NOT (ac.cleared = '0' OR ac.cleared = '1')|;
+ if ($form->{cleared}) {
+ $cleared = qq| AND ac.cleared = '1'|;
+ }
+ if ($form->{outstanding}) {
+ $cleared = ($form->{cleared}) ? "" : qq| AND ac.cleared = '0'|;
+ }
+ if (! $form->{fromdate}) {
+ $form->{beginningbalance} = 0;
+ $form->{fx_balance} = 0;
+ }
+ }
+
+ my $fx_transaction;
+ if ($form->{fx_transaction}) {
+ $fx_transaction = qq|
+ AND NOT
+ (ac.chart_id IN
+ (SELECT fxgain_accno_id FROM defaults
+ UNION
+ SELECT fxloss_accno_id FROM defaults))|;
+ } else {
+ $fx_transaction = qq|
+ AND ac.fx_transaction = '0'|;
+ }
+
+
+ if ($form->{summary}) {
+ $query = qq|SELECT ac.transdate, ac.source,
+ sum(ac.amount) AS amount, ac.cleared
+ FROM acc_trans ac
+ JOIN chart ch ON (ac.chart_id = ch.id)
+ WHERE ch.accno = '$form->{accno}'
+ AND ac.amount >= 0
+ $fx_transaction
+ $cleared|;
+ $query .= " AND ac.transdate >= '$form->{fromdate}'" if $form->{fromdate};
+ $query .= " AND ac.transdate <= '$form->{todate}'" if $form->{todate};
+ $query .= " GROUP BY ac.source, ac.transdate, ac.cleared";
+ $query .= qq|
+ UNION ALL
+ SELECT ac.transdate, ac.source,
+ sum(ac.amount) AS amount, ac.cleared
+ FROM acc_trans ac
+ JOIN chart ch ON (ac.chart_id = ch.id)
+ WHERE ch.accno = '$form->{accno}'
+ AND ac.amount < 0
+ $fx_transaction
+ $cleared|;
+ $query .= " AND ac.transdate >= '$form->{fromdate}'" if $form->{fromdate};
+ $query .= " AND ac.transdate <= '$form->{todate}'" if $form->{todate};
+ $query .= " GROUP BY ac.source, ac.transdate, ac.cleared";
+
+ $query .= " ORDER BY 1,2";
+
+ } else {
+
+ $query = qq|SELECT ac.transdate, ac.source, ac.fx_transaction,
+ ac.amount, ac.cleared, g.id, g.description
+ FROM acc_trans ac
+ JOIN chart ch ON (ac.chart_id = ch.id)
+ JOIN gl g ON (g.id = ac.trans_id)
+ WHERE ch.accno = '$form->{accno}'
+ $fx_transaction
+ $cleared|;
+ $query .= " AND ac.transdate >= '$form->{fromdate}'" if $form->{fromdate};
+ $query .= " AND ac.transdate <= '$form->{todate}'" if $form->{todate};
+ $query .= qq|
+ UNION ALL
+ SELECT ac.transdate, ac.source, ac.fx_transaction,
+ ac.amount, ac.cleared, a.id, n.name
+ FROM acc_trans ac
+ JOIN chart ch ON (ac.chart_id = ch.id)
+ JOIN ar a ON (a.id = ac.trans_id)
+ JOIN customer n ON (n.id = a.customer_id)
+ WHERE ch.accno = '$form->{accno}'
+ $fx_transaction
+ $cleared|;
+ $query .= " AND ac.transdate >= '$form->{fromdate}'" if $form->{fromdate};
+ $query .= " AND ac.transdate <= '$form->{todate}'" if $form->{todate};
+ $query .= qq|
+ UNION ALL
+ SELECT ac.transdate, ac.source, ac.fx_transaction,
+ ac.amount, ac.cleared, a.id, n.name
+ FROM acc_trans ac
+ JOIN chart ch ON (ac.chart_id = ch.id)
+ JOIN ap a ON (a.id = ac.trans_id)
+ JOIN vendor n ON (n.id = a.vendor_id)
+ WHERE ch.accno = '$form->{accno}'
+ $fx_transaction
+ $cleared|;
+ $query .= " AND ac.transdate >= '$form->{fromdate}'" if $form->{fromdate};
+ $query .= " AND ac.transdate <= '$form->{todate}'" if $form->{todate};
+
+ $query .= " ORDER BY 1,2,3";
+ }
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my $dr;
+ my $cr;
+
+ if ($form->{summary}) {
+ $query = qq|SELECT c.name
+ FROM customer c
+ JOIN ar a ON (c.id = a.customer_id)
+ JOIN acc_trans ac ON (a.id = ac.trans_id)
+ JOIN chart ch ON (ac.chart_id = ch.id)
+ WHERE ac.transdate = ?
+ AND ch.accno = '$form->{accno}'
+ AND (ac.source = ? OR ac.source IS NULL)
+ AND ac.amount >= 0
+ $cleared
+ UNION
+ SELECT v.name
+ FROM vendor v
+ JOIN ap a ON (v.id = a.vendor_id)
+ JOIN acc_trans ac ON (a.id = ac.trans_id)
+ JOIN chart ch ON (ac.chart_id = ch.id)
+ WHERE ac.transdate = ?
+ AND ch.accno = '$form->{accno}'
+ AND (ac.source = ? OR ac.source IS NULL)
+ AND ac.amount > 0
+ $cleared
+ UNION
+ SELECT g.description
+ FROM gl g
+ JOIN acc_trans ac ON (g.id = ac.trans_id)
+ JOIN chart ch ON (ac.chart_id = ch.id)
+ WHERE ac.transdate = ?
+ AND ch.accno = '$form->{accno}'
+ AND (ac.source = ? OR ac.source IS NULL)
+ AND ac.amount >= 0
+ $cleared
+ |;
+
+ $query .= " ORDER BY 1";
+ $dr = $dbh->prepare($query);
+
+ $query = qq|SELECT c.name
+ FROM customer c
+ JOIN ar a ON (c.id = a.customer_id)
+ JOIN acc_trans ac ON (a.id = ac.trans_id)
+ JOIN chart ch ON (ac.chart_id = ch.id)
+ WHERE ac.transdate = ?
+ AND ch.accno = '$form->{accno}'
+ AND (ac.source = ? OR ac.source IS NULL)
+ AND ac.amount < 0
+ $cleared
+ UNION
+ SELECT v.name
+ FROM vendor v
+ JOIN ap a ON (v.id = a.vendor_id)
+ JOIN acc_trans ac ON (a.id = ac.trans_id)
+ JOIN chart ch ON (ac.chart_id = ch.id)
+ WHERE ac.transdate = ?
+ AND ch.accno = '$form->{accno}'
+ AND (ac.source = ? OR ac.source IS NULL)
+ AND ac.amount < 0
+ $cleared
+ UNION
+ SELECT g.description
+ FROM gl g
+ JOIN acc_trans ac ON (g.id = ac.trans_id)
+ JOIN chart ch ON (ac.chart_id = ch.id)
+ WHERE ac.transdate = ?
+ AND ch.accno = '$form->{accno}'
+ AND (ac.source = ? OR ac.source IS NULL)
+ AND ac.amount < 0
+ $cleared
+ |;
+
+ $query .= " ORDER BY 1";
+ $cr = $dbh->prepare($query);
+ }
+
+ my $name;
+ my $ref;
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+
+ if ($form->{summary}) {
+
+ if ($ref->{amount} > 0) {
+ $dr->execute($ref->{transdate}, $ref->{source}, $ref->{transdate}, $ref->{source}, $ref->{transdate}, $ref->{source});
+ $ref->{oldcleared} = $ref->{cleared};
+ $ref->{name} = ();
+
+ while (($name) = $dr->fetchrow_array) {
+ push @{ $ref->{name} }, $name;
+ }
+ $dr->finish;
+ } else {
+
+ $cr->execute($ref->{transdate}, $ref->{source}, $ref->{transdate}, $ref->{source}, $ref->{transdate}, $ref->{source});
+ $ref->{oldcleared} = $ref->{cleared};
+ $ref->{name} = ();
+ while (($name) = $cr->fetchrow_array) {
+ push @{ $ref->{name} }, $name;
+ }
+ $cr->finish;
+
+ }
+
+ } else {
+ push @{ $ref->{name} }, $ref->{description};
+ }
+
+ push @{ $form->{PR} }, $ref;
+
+ }
+ $sth->finish;
+
+ $dbh->disconnect;
+
+}
+
+
+sub reconcile {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $query = qq|SELECT id FROM chart
+ WHERE accno = '$form->{accno}'|;
+ my ($chart_id) = $dbh->selectrow_array($query);
+ $chart_id *= 1;
+
+ $query = qq|SELECT trans_id FROM acc_trans
+ WHERE (source = ? OR source IS NULL)
+ AND transdate = ?
+ AND cleared = '0'
+ AND chart_id = $chart_id|;
+ my $sth = $dbh->prepare($query) || $form->dberror($query);
+
+ my $i;
+ my $trans_id;
+
+ $query = qq|UPDATE acc_trans SET cleared = '1'
+ WHERE cleared = '0'
+ AND trans_id = ?
+ AND transdate = ?
+ AND chart_id = $chart_id|;
+ my $tth = $dbh->prepare($query) || $form->dberror($query);
+
+ # clear flags
+ for $i (1 .. $form->{rowcount}) {
+ if ($form->{"cleared_$i"} && ! $form->{"oldcleared_$i"}) {
+ if ($form->{summary}) {
+ $sth->execute($form->{"source_$i"}, $form->{"transdate_$i"}) || $form->dberror;
+
+ while (($trans_id) = $sth->fetchrow_array) {
+ $tth->execute($trans_id, $form->{"transdate_$i"}) || $form->dberror;
+ $tth->finish;
+ }
+ $sth->finish;
+
+ } else {
+
+ $tth->execute($form->{"id_$i"}, $form->{"transdate_$i"}) || $form->dberror;
+ $tth->finish;
+ }
+ }
+ }
+
+ $dbh->disconnect;
+
+}
+
+1;
+
diff --git a/LedgerSMB/RP.pm b/LedgerSMB/RP.pm
new file mode 100755
index 00000000..946d4c69
--- /dev/null
+++ b/LedgerSMB/RP.pm
@@ -0,0 +1,2103 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has NOT undergone whitespace cleanup.
+#
+#======================================================================
+#
+# backend code for reports
+#
+#======================================================================
+
+package RP;
+
+
+sub yearend_statement {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ # if todate < existing yearends, delete GL and yearends
+ my $query = qq|SELECT trans_id FROM yearend
+ WHERE transdate >= '$form->{todate}'|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my @trans_id = ();
+ my $id;
+ while (($id) = $sth->fetchrow_array) {
+ push @trans_id, $id;
+ }
+ $sth->finish;
+
+ $query = qq|DELETE FROM gl
+ WHERE id = ?|;
+ $sth = $dbh->prepare($query) || $form->dberror($query);
+
+ $query = qq|DELETE FROM acc_trans
+ WHERE trans_id = ?|;
+ my $ath = $dbh->prepare($query) || $form->dberror($query);
+
+ foreach $id (@trans_id) {
+ $sth->execute($id);
+ $ath->execute($id);
+
+ $sth->finish;
+ $ath->finish;
+ }
+
+
+ my $last_period = 0;
+ my @categories = qw(I E);
+ my $category;
+
+ $form->{decimalplaces} *= 1;
+
+ &get_accounts($dbh, 0, $form->{fromdate}, $form->{todate}, $form, \@categories);
+
+ # disconnect
+ $dbh->disconnect;
+
+
+ # now we got $form->{I}{accno}{ }
+ # and $form->{E}{accno}{ }
+
+ my %account = ( 'I' => { 'label' => 'income',
+ 'labels' => 'income',
+ 'ml' => 1 },
+ 'E' => { 'label' => 'expense',
+ 'labels' => 'expenses',
+ 'ml' => -1 }
+ );
+
+ foreach $category (@categories) {
+ foreach $key (sort keys %{ $form->{$category} }) {
+ if ($form->{$category}{$key}{charttype} eq 'A') {
+ $form->{"total_$account{$category}{labels}_this_period"} += $form->{$category}{$key}{this} * $account{$category}{ml};
+ }
+ }
+ }
+
+
+ # totals for income and expenses
+ $form->{total_income_this_period} = $form->round_amount($form->{total_income_this_period}, $form->{decimalplaces});
+ $form->{total_expenses_this_period} = $form->round_amount($form->{total_expenses_this_period}, $form->{decimalplaces});
+
+ # total for income/loss
+ $form->{total_this_period} = $form->{total_income_this_period} - $form->{total_expenses_this_period};
+
+}
+
+
+sub income_statement {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $last_period = 0;
+ my @categories = qw(I E);
+ my $category;
+
+ $form->{decimalplaces} *= 1;
+
+ if (! ($form->{fromdate} || $form->{todate})) {
+ if ($form->{fromyear} && $form->{frommonth}) {
+ ($form->{fromdate}, $form->{todate}) = $form->from_to($form->{fromyear}, $form->{frommonth}, $form->{interval});
+ }
+ }
+
+ &get_accounts($dbh, $last_period, $form->{fromdate}, $form->{todate}, $form, \@categories, 1);
+
+ if (! ($form->{comparefromdate} || $form->{comparetodate})) {
+ if ($form->{compareyear} && $form->{comparemonth}) {
+ ($form->{comparefromdate}, $form->{comparetodate}) = $form->from_to($form->{compareyear}, $form->{comparemonth}, $form->{interval});
+ }
+ }
+
+ # if there are any compare dates
+ if ($form->{comparefromdate} || $form->{comparetodate}) {
+ $last_period = 1;
+
+ &get_accounts($dbh, $last_period, $form->{comparefromdate}, $form->{comparetodate}, $form, \@categories, 1);
+ }
+
+
+ # disconnect
+ $dbh->disconnect;
+
+
+ # now we got $form->{I}{accno}{ }
+ # and $form->{E}{accno}{ }
+
+ my %account = ( 'I' => { 'label' => 'income',
+ 'labels' => 'income',
+ 'ml' => 1 },
+ 'E' => { 'label' => 'expense',
+ 'labels' => 'expenses',
+ 'ml' => -1 }
+ );
+
+ my $str;
+
+ foreach $category (@categories) {
+
+ foreach $key (sort keys %{ $form->{$category} }) {
+ # push description onto array
+
+ $str = ($form->{l_heading}) ? $form->{padding} : "";
+
+ if ($form->{$category}{$key}{charttype} eq "A") {
+ $str .= ($form->{l_accno}) ? "$form->{$category}{$key}{accno} - $form->{$category}{$key}{description}" : "$form->{$category}{$key}{description}";
+ }
+ if ($form->{$category}{$key}{charttype} eq "H") {
+ if ($account{$category}{subtotal} && $form->{l_subtotal}) {
+ $dash = "- ";
+ push(@{$form->{"$account{$category}{label}_account"}}, "$str$form->{bold}$account{$category}{subdescription}$form->{endbold}");
+ push(@{$form->{"$account{$category}{labels}_this_period"}}, $form->format_amount($myconfig, $account{$category}{subthis} * $account{$category}{ml}, $form->{decimalplaces}, $dash));
+
+ if ($last_period) {
+ push(@{$form->{"$account{$category}{labels}_last_period"}}, $form->format_amount($myconfig, $account{$category}{sublast} * $account{$category}{ml}, $form->{decimalplaces}, $dash));
+ }
+
+ }
+
+ $str = "$form->{br}$form->{bold}$form->{$category}{$key}{description}$form->{endbold}";
+
+ $account{$category}{subthis} = $form->{$category}{$key}{this};
+ $account{$category}{sublast} = $form->{$category}{$key}{last};
+ $account{$category}{subdescription} = $form->{$category}{$key}{description};
+ $account{$category}{subtotal} = 1;
+
+ $form->{$category}{$key}{this} = 0;
+ $form->{$category}{$key}{last} = 0;
+
+ next unless $form->{l_heading};
+
+ $dash = " ";
+ }
+
+ push(@{$form->{"$account{$category}{label}_account"}}, $str);
+
+ if ($form->{$category}{$key}{charttype} eq 'A') {
+ $form->{"total_$account{$category}{labels}_this_period"} += $form->{$category}{$key}{this} * $account{$category}{ml};
+ $dash = "- ";
+ }
+
+ push(@{$form->{"$account{$category}{labels}_this_period"}}, $form->format_amount($myconfig, $form->{$category}{$key}{this} * $account{$category}{ml}, $form->{decimalplaces}, $dash));
+
+ # add amount or - for last period
+ if ($last_period) {
+ $form->{"total_$account{$category}{labels}_last_period"} += $form->{$category}{$key}{last} * $account{$category}{ml};
+
+ push(@{$form->{"$account{$category}{labels}_last_period"}}, $form->format_amount($myconfig,$form->{$category}{$key}{last} * $account{$category}{ml}, $form->{decimalplaces}, $dash));
+ }
+ }
+
+ $str = ($form->{l_heading}) ? $form->{padding} : "";
+ if ($account{$category}{subtotal} && $form->{l_subtotal}) {
+ push(@{$form->{"$account{$category}{label}_account"}}, "$str$form->{bold}$account{$category}{subdescription}$form->{endbold}");
+ push(@{$form->{"$account{$category}{labels}_this_period"}}, $form->format_amount($myconfig, $account{$category}{subthis} * $account{$category}{ml}, $form->{decimalplaces}, $dash));
+
+ if ($last_period) {
+ push(@{$form->{"$account{$category}{labels}_last_period"}}, $form->format_amount($myconfig, $account{$category}{sublast} * $account{$category}{ml}, $form->{decimalplaces}, $dash));
+ }
+ }
+
+ }
+
+
+ # totals for income and expenses
+ $form->{total_income_this_period} = $form->round_amount($form->{total_income_this_period}, $form->{decimalplaces});
+ $form->{total_expenses_this_period} = $form->round_amount($form->{total_expenses_this_period}, $form->{decimalplaces});
+
+ # total for income/loss
+ $form->{total_this_period} = $form->{total_income_this_period} - $form->{total_expenses_this_period};
+
+ if ($last_period) {
+ # total for income/loss
+ $form->{total_last_period} = $form->format_amount($myconfig, $form->{total_income_last_period} - $form->{total_expenses_last_period}, $form->{decimalplaces}, "- ");
+
+ # totals for income and expenses for last_period
+ $form->{total_income_last_period} = $form->format_amount($myconfig, $form->{total_income_last_period}, $form->{decimalplaces}, "- ");
+ $form->{total_expenses_last_period} = $form->format_amount($myconfig, $form->{total_expenses_last_period}, $form->{decimalplaces}, "- ");
+
+ }
+
+
+ $form->{total_income_this_period} = $form->format_amount($myconfig,$form->{total_income_this_period}, $form->{decimalplaces}, "- ");
+ $form->{total_expenses_this_period} = $form->format_amount($myconfig,$form->{total_expenses_this_period}, $form->{decimalplaces}, "- ");
+ $form->{total_this_period} = $form->format_amount($myconfig,$form->{total_this_period}, $form->{decimalplaces}, "- ");
+
+}
+
+
+sub balance_sheet {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $last_period = 0;
+ my @categories = qw(A L Q);
+
+ my $null;
+
+ if ($form->{asofdate}) {
+ if ($form->{asofyear} && $form->{asofmonth}) {
+ if ($form->{asofdate} !~ /\W/) {
+ $form->{asofdate} = "$form->{asofyear}$form->{asofmonth}$form->{asofdate}";
+ }
+ }
+ } else {
+ if ($form->{asofyear} && $form->{asofmonth}) {
+ ($null, $form->{asofdate}) = $form->from_to($form->{asofyear}, $form->{asofmonth});
+ }
+ }
+
+ # if there are any dates construct a where
+ if ($form->{asofdate}) {
+
+ $form->{this_period} = "$form->{asofdate}";
+ $form->{period} = "$form->{asofdate}";
+
+ }
+
+ $form->{decimalplaces} *= 1;
+
+ &get_accounts($dbh, $last_period, "", $form->{asofdate}, $form, \@categories, 1);
+
+ if ($form->{compareasofdate}) {
+ if ($form->{compareasofyear} && $form->{compareasofmonth}) {
+ if ($form->{compareasofdate} !~ /\W/) {
+ $form->{compareasofdate} = "$form->{compareasofyear}$form->{compareasofmonth}$form->{compareasofdate}";
+ }
+ }
+ } else {
+ if ($form->{compareasofyear} && $form->{compareasofmonth}) {
+ ($null, $form->{compareasofdate}) = $form->from_to($form->{compareasofyear}, $form->{compareasofmonth});
+ }
+ }
+
+ # if there are any compare dates
+ if ($form->{compareasofdate}) {
+
+ $last_period = 1;
+ &get_accounts($dbh, $last_period, "", $form->{compareasofdate}, $form, \@categories, 1);
+
+ $form->{last_period} = "$form->{compareasofdate}";
+
+ }
+
+
+ # disconnect
+ $dbh->disconnect;
+
+
+ # now we got $form->{A}{accno}{ } assets
+ # and $form->{L}{accno}{ } liabilities
+ # and $form->{Q}{accno}{ } equity
+ # build asset accounts
+
+ my $str;
+ my $key;
+
+ my %account = ( 'A' => { 'label' => 'asset',
+ 'labels' => 'assets',
+ 'ml' => -1 },
+ 'L' => { 'label' => 'liability',
+ 'labels' => 'liabilities',
+ 'ml' => 1 },
+ 'Q' => { 'label' => 'equity',
+ 'labels' => 'equity',
+ 'ml' => 1 }
+ );
+
+
+ foreach $category (@categories) {
+
+ foreach $key (sort keys %{ $form->{$category} }) {
+
+ $str = ($form->{l_heading}) ? $form->{padding} : "";
+
+ if ($form->{$category}{$key}{charttype} eq "A") {
+ $str .= ($form->{l_accno}) ? "$form->{$category}{$key}{accno} - $form->{$category}{$key}{description}" : "$form->{$category}{$key}{description}";
+ }
+ if ($form->{$category}{$key}{charttype} eq "H") {
+ if ($account{$category}{subtotal} && $form->{l_subtotal}) {
+ $dash = "- ";
+ push(@{$form->{"$account{$category}{label}_account"}}, "$str$form->{bold}$account{$category}{subdescription}$form->{endbold}");
+ push(@{$form->{"$account{$category}{label}_this_period"}}, $form->format_amount($myconfig, $account{$category}{subthis} * $account{$category}{ml}, $form->{decimalplaces}, $dash));
+
+ if ($last_period) {
+ push(@{$form->{"$account{$category}{label}_last_period"}}, $form->format_amount($myconfig, $account{$category}{sublast} * $account{$category}{ml}, $form->{decimalplaces}, $dash));
+ }
+ }
+
+ $str = "$form->{bold}$form->{$category}{$key}{description}$form->{endbold}";
+
+ $account{$category}{subthis} = $form->{$category}{$key}{this};
+ $account{$category}{sublast} = $form->{$category}{$key}{last};
+ $account{$category}{subdescription} = $form->{$category}{$key}{description};
+ $account{$category}{subtotal} = 1;
+
+ $form->{$category}{$key}{this} = 0;
+ $form->{$category}{$key}{last} = 0;
+
+ next unless $form->{l_heading};
+
+ $dash = " ";
+ }
+
+ # push description onto array
+ push(@{$form->{"$account{$category}{label}_account"}}, $str);
+
+ if ($form->{$category}{$key}{charttype} eq 'A') {
+ $form->{"total_$account{$category}{labels}_this_period"} += $form->{$category}{$key}{this} * $account{$category}{ml};
+ $dash = "- ";
+ }
+
+ push(@{$form->{"$account{$category}{label}_this_period"}}, $form->format_amount($myconfig, $form->{$category}{$key}{this} * $account{$category}{ml}, $form->{decimalplaces}, $dash));
+
+ if ($last_period) {
+ $form->{"total_$account{$category}{labels}_last_period"} += $form->{$category}{$key}{last} * $account{$category}{ml};
+
+ push(@{$form->{"$account{$category}{label}_last_period"}}, $form->format_amount($myconfig, $form->{$category}{$key}{last} * $account{$category}{ml}, $form->{decimalplaces}, $dash));
+ }
+ }
+
+ $str = ($form->{l_heading}) ? $form->{padding} : "";
+ if ($account{$category}{subtotal} && $form->{l_subtotal}) {
+ push(@{$form->{"$account{$category}{label}_account"}}, "$str$form->{bold}$account{$category}{subdescription}$form->{endbold}");
+ push(@{$form->{"$account{$category}{label}_this_period"}}, $form->format_amount($myconfig, $account{$category}{subthis} * $account{$category}{ml}, $form->{decimalplaces}, $dash));
+
+ if ($last_period) {
+ push(@{$form->{"$account{$category}{label}_last_period"}}, $form->format_amount($myconfig, $account{$category}{sublast} * $account{$category}{ml}, $form->{decimalplaces}, $dash));
+ }
+ }
+
+ }
+
+
+ # totals for assets, liabilities
+ $form->{total_assets_this_period} = $form->round_amount($form->{total_assets_this_period}, $form->{decimalplaces});
+ $form->{total_liabilities_this_period} = $form->round_amount($form->{total_liabilities_this_period}, $form->{decimalplaces});
+ $form->{total_equity_this_period} = $form->round_amount($form->{total_equity_this_period}, $form->{decimalplaces});
+
+ # calculate earnings
+ $form->{earnings_this_period} = $form->{total_assets_this_period} - $form->{total_liabilities_this_period} - $form->{total_equity_this_period};
+
+ push(@{$form->{equity_this_period}}, $form->format_amount($myconfig, $form->{earnings_this_period}, $form->{decimalplaces}, "- "));
+
+ $form->{total_equity_this_period} = $form->round_amount($form->{total_equity_this_period} + $form->{earnings_this_period}, $form->{decimalplaces});
+
+ # add liability + equity
+ $form->{total_this_period} = $form->format_amount($myconfig, $form->{total_liabilities_this_period} + $form->{total_equity_this_period}, $form->{decimalplaces}, "- ");
+
+
+ if ($last_period) {
+ # totals for assets, liabilities
+ $form->{total_assets_last_period} = $form->round_amount($form->{total_assets_last_period}, $form->{decimalplaces});
+ $form->{total_liabilities_last_period} = $form->round_amount($form->{total_liabilities_last_period}, $form->{decimalplaces});
+ $form->{total_equity_last_period} = $form->round_amount($form->{total_equity_last_period}, $form->{decimalplaces});
+
+ # calculate retained earnings
+ $form->{earnings_last_period} = $form->{total_assets_last_period} - $form->{total_liabilities_last_period} - $form->{total_equity_last_period};
+
+ push(@{$form->{equity_last_period}}, $form->format_amount($myconfig,$form->{earnings_last_period}, $form->{decimalplaces}, "- "));
+
+ $form->{total_equity_last_period} = $form->round_amount($form->{total_equity_last_period} + $form->{earnings_last_period}, $form->{decimalplaces});
+
+ # add liability + equity
+ $form->{total_last_period} = $form->format_amount($myconfig, $form->{total_liabilities_last_period} + $form->{total_equity_last_period}, $form->{decimalplaces}, "- ");
+
+ }
+
+
+ $form->{total_liabilities_last_period} = $form->format_amount($myconfig, $form->{total_liabilities_last_period}, $form->{decimalplaces}, "- ") if ($form->{total_liabilities_last_period});
+
+ $form->{total_equity_last_period} = $form->format_amount($myconfig, $form->{total_equity_last_period}, $form->{decimalplaces}, "- ") if ($form->{total_equity_last_period});
+
+ $form->{total_assets_last_period} = $form->format_amount($myconfig, $form->{total_assets_last_period}, $form->{decimalplaces}, "- ") if ($form->{total_assets_last_period});
+
+ $form->{total_assets_this_period} = $form->format_amount($myconfig, $form->{total_assets_this_period}, $form->{decimalplaces}, "- ");
+
+ $form->{total_liabilities_this_period} = $form->format_amount($myconfig, $form->{total_liabilities_this_period}, $form->{decimalplaces}, "- ");
+
+ $form->{total_equity_this_period} = $form->format_amount($myconfig, $form->{total_equity_this_period}, $form->{decimalplaces}, "- ");
+
+}
+
+
+sub get_accounts {
+ my ($dbh, $last_period, $fromdate, $todate, $form, $categories, $excludeyearend) = @_;
+
+ my $department_id;
+ my $project_id;
+
+ ($null, $department_id) = split /--/, $form->{department};
+ ($null, $project_id) = split /--/, $form->{projectnumber};
+
+ my $query;
+ my $dpt_where;
+ my $dpt_join;
+ my $project;
+ my $where = "1 = 1";
+ my $glwhere = "";
+ my $subwhere = "";
+ my $yearendwhere = "1 = 1";
+ my $item;
+
+ my $category = "AND (";
+ foreach $item (@{ $categories }) {
+ $category .= qq|c.category = '$item' OR |;
+ }
+ $category =~ s/OR $/\)/;
+
+
+ # get headings
+ $query = qq|SELECT accno, description, category
+ FROM chart c
+ WHERE c.charttype = 'H'
+ $category
+ ORDER by c.accno|;
+
+ if ($form->{accounttype} eq 'gifi')
+ {
+ $query = qq|SELECT g.accno, g.description, c.category
+ FROM gifi g
+ JOIN chart c ON (c.gifi_accno = g.accno)
+ WHERE c.charttype = 'H'
+ $category
+ ORDER BY g.accno|;
+ }
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my @headingaccounts = ();
+ while ($ref = $sth->fetchrow_hashref(NAME_lc))
+ {
+ $form->{$ref->{category}}{$ref->{accno}}{description} = "$ref->{description}";
+ $form->{$ref->{category}}{$ref->{accno}}{charttype} = "H";
+ $form->{$ref->{category}}{$ref->{accno}}{accno} = $ref->{accno};
+
+ push @headingaccounts, $ref->{accno};
+ }
+
+ $sth->finish;
+
+ if ($form->{method} eq 'cash' && !$todate) {
+ ($todate) = $dbh->selectrow_array(qq|SELECT current_date FROM defaults|);
+ }
+
+ if ($fromdate) {
+ if ($form->{method} eq 'cash') {
+ $subwhere .= " AND transdate >= '$fromdate'";
+ $glwhere = " AND ac.transdate >= '$fromdate'";
+ } else {
+ $where .= " AND ac.transdate >= '$fromdate'";
+ }
+ }
+
+ if ($todate) {
+ $where .= " AND ac.transdate <= '$todate'";
+ $subwhere .= " AND transdate <= '$todate'";
+ $yearendwhere = "ac.transdate < '$todate'";
+ }
+
+ if ($excludeyearend) {
+ $ywhere = " AND ac.trans_id NOT IN
+ (SELECT trans_id FROM yearend)";
+
+ if ($todate) {
+ $ywhere = " AND ac.trans_id NOT IN
+ (SELECT trans_id FROM yearend
+ WHERE transdate <= '$todate')";
+ }
+
+ if ($fromdate) {
+ $ywhere = " AND ac.trans_id NOT IN
+ (SELECT trans_id FROM yearend
+ WHERE transdate >= '$fromdate')";
+ if ($todate) {
+ $ywhere = " AND ac.trans_id NOT IN
+ (SELECT trans_id FROM yearend
+ WHERE transdate >= '$fromdate'
+ AND transdate <= '$todate')";
+ }
+ }
+ }
+
+ if ($department_id) {
+ $dpt_join = qq|
+ JOIN department t ON (a.department_id = t.id)
+ |;
+ $dpt_where = qq|
+ AND t.id = $department_id
+ |;
+ }
+
+ if ($project_id) {
+ $project = qq|
+ AND ac.project_id = $project_id
+ |;
+ }
+
+
+ if ($form->{accounttype} eq 'gifi') {
+
+ if ($form->{method} eq 'cash') {
+
+ $query = qq|
+
+ SELECT g.accno, sum(ac.amount) AS amount,
+ g.description, c.category
+ FROM acc_trans ac
+ JOIN chart c ON (c.id = ac.chart_id)
+ JOIN ar a ON (a.id = ac.trans_id)
+ JOIN gifi g ON (g.accno = c.gifi_accno)
+ $dpt_join
+ WHERE $where
+ $ywhere
+ $dpt_where
+ $category
+ AND ac.trans_id IN
+ (
+ SELECT trans_id
+ FROM acc_trans
+ JOIN chart ON (chart_id = id)
+ WHERE link LIKE '%AR_paid%'
+ $subwhere
+ )
+ $project
+ GROUP BY g.accno, g.description, c.category
+
+ UNION ALL
+
+ SELECT '' AS accno, SUM(ac.amount) AS amount,
+ '' AS description, c.category
+ FROM acc_trans ac
+ JOIN chart c ON (c.id = ac.chart_id)
+ JOIN ar a ON (a.id = ac.trans_id)
+ $dpt_join
+ WHERE $where
+ $ywhere
+ $dpt_where
+ $category
+ AND c.gifi_accno = ''
+ AND ac.trans_id IN
+ (
+ SELECT trans_id
+ FROM acc_trans
+ JOIN chart ON (chart_id = id)
+ WHERE link LIKE '%AR_paid%'
+ $subwhere
+ )
+ $project
+ GROUP BY c.category
+
+ UNION ALL
+
+ SELECT g.accno, sum(ac.amount) AS amount,
+ g.description, c.category
+ FROM acc_trans ac
+ JOIN chart c ON (c.id = ac.chart_id)
+ JOIN ap a ON (a.id = ac.trans_id)
+ JOIN gifi g ON (g.accno = c.gifi_accno)
+ $dpt_join
+ WHERE $where
+ $ywhere
+ $dpt_where
+ $category
+ AND ac.trans_id IN
+ (
+ SELECT trans_id
+ FROM acc_trans
+ JOIN chart ON (chart_id = id)
+ WHERE link LIKE '%AP_paid%'
+ $subwhere
+ )
+ $project
+ GROUP BY g.accno, g.description, c.category
+
+ UNION ALL
+
+ SELECT '' AS accno, SUM(ac.amount) AS amount,
+ '' AS description, c.category
+ FROM acc_trans ac
+ JOIN chart c ON (c.id = ac.chart_id)
+ JOIN ap a ON (a.id = ac.trans_id)
+ $dpt_join
+ WHERE $where
+ $ywhere
+ $dpt_where
+ $category
+ AND c.gifi_accno = ''
+ AND ac.trans_id IN
+ (
+ SELECT trans_id
+ FROM acc_trans
+ JOIN chart ON (chart_id = id)
+ WHERE link LIKE '%AP_paid%'
+ $subwhere
+ )
+ $project
+ GROUP BY c.category
+
+ UNION ALL
+
+-- add gl
+
+ SELECT g.accno, sum(ac.amount) AS amount,
+ g.description, c.category
+ FROM acc_trans ac
+ JOIN chart c ON (c.id = ac.chart_id)
+ JOIN gifi g ON (g.accno = c.gifi_accno)
+ JOIN gl a ON (a.id = ac.trans_id)
+ $dpt_join
+ WHERE $where
+ $ywhere
+ $glwhere
+ $dpt_where
+ $category
+ AND NOT (c.link = 'AR' OR c.link = 'AP')
+ $project
+ GROUP BY g.accno, g.description, c.category
+
+ UNION ALL
+
+ SELECT '' AS accno, SUM(ac.amount) AS amount,
+ '' AS description, c.category
+ FROM acc_trans ac
+ JOIN chart c ON (c.id = ac.chart_id)
+ JOIN gl a ON (a.id = ac.trans_id)
+ $dpt_join
+ WHERE $where
+ $ywhere
+ $glwhere
+ $dpt_where
+ $category
+ AND c.gifi_accno = ''
+ AND NOT (c.link = 'AR' OR c.link = 'AP')
+ $project
+ GROUP BY c.category
+ |;
+
+ if ($excludeyearend) {
+
+ # this is for the yearend
+
+ $query .= qq|
+
+ UNION ALL
+
+ SELECT g.accno, sum(ac.amount) AS amount,
+ g.description, c.category
+ FROM yearend y
+ JOIN gl a ON (a.id = y.trans_id)
+ JOIN acc_trans ac ON (ac.trans_id = y.trans_id)
+ JOIN chart c ON (c.id = ac.chart_id)
+ JOIN gifi g ON (g.accno = c.gifi_accno)
+ $dpt_join
+ WHERE $yearendwhere
+ AND c.category = 'Q'
+ $dpt_where
+ $project
+ GROUP BY g.accno, g.description, c.category
+ |;
+ }
+
+ } else {
+
+ if ($department_id) {
+ $dpt_join = qq|
+ JOIN dpt_trans t ON (t.trans_id = ac.trans_id)
+ |;
+ $dpt_where = qq|
+ AND t.department_id = $department_id
+ |;
+ }
+
+ $query = qq|
+
+ SELECT g.accno, SUM(ac.amount) AS amount,
+ g.description, c.category
+ FROM acc_trans ac
+ JOIN chart c ON (c.id = ac.chart_id)
+ JOIN gifi g ON (c.gifi_accno = g.accno)
+ $dpt_join
+ WHERE $where
+ $ywhere
+ $dpt_where
+ $category
+ $project
+ GROUP BY g.accno, g.description, c.category
+
+ UNION ALL
+
+ SELECT '' AS accno, SUM(ac.amount) AS amount,
+ '' AS description, c.category
+ FROM acc_trans ac
+ JOIN chart c ON (c.id = ac.chart_id)
+ $dpt_join
+ WHERE $where
+ $ywhere
+ $dpt_where
+ $category
+ AND c.gifi_accno = ''
+ $project
+ GROUP BY c.category
+ |;
+
+ if ($excludeyearend) {
+
+ # this is for the yearend
+
+ $query .= qq|
+
+ UNION ALL
+
+ SELECT g.accno, sum(ac.amount) AS amount,
+ g.description, c.category
+ FROM yearend y
+ JOIN gl a ON (a.id = y.trans_id)
+ JOIN acc_trans ac ON (ac.trans_id = y.trans_id)
+ JOIN chart c ON (c.id = ac.chart_id)
+ JOIN gifi g ON (g.accno = c.gifi_accno)
+ $dpt_join
+ WHERE $yearendwhere
+ AND c.category = 'Q'
+ $dpt_where
+ $project
+ GROUP BY g.accno, g.description, c.category
+ |;
+ }
+ }
+
+ } else { # standard account
+
+ if ($form->{method} eq 'cash') {
+
+ $query = qq|
+
+ SELECT c.accno, sum(ac.amount) AS amount,
+ c.description, c.category
+ FROM acc_trans ac
+ JOIN chart c ON (c.id = ac.chart_id)
+ JOIN ar a ON (a.id = ac.trans_id)
+ $dpt_join
+ WHERE $where
+ $ywhere
+ $dpt_where
+ $category
+ AND ac.trans_id IN
+ (
+ SELECT trans_id
+ FROM acc_trans
+ JOIN chart ON (chart_id = id)
+ WHERE link LIKE '%AR_paid%'
+ $subwhere
+ )
+
+ $project
+ GROUP BY c.accno, c.description, c.category
+
+ UNION ALL
+
+ SELECT c.accno, sum(ac.amount) AS amount,
+ c.description, c.category
+ FROM acc_trans ac
+ JOIN chart c ON (c.id = ac.chart_id)
+ JOIN ap a ON (a.id = ac.trans_id)
+ $dpt_join
+ WHERE $where
+ $ywhere
+ $dpt_where
+ $category
+ AND ac.trans_id IN
+ (
+ SELECT trans_id
+ FROM acc_trans
+ JOIN chart ON (chart_id = id)
+ WHERE link LIKE '%AP_paid%'
+ $subwhere
+ )
+
+ $project
+ GROUP BY c.accno, c.description, c.category
+
+ UNION ALL
+
+ SELECT c.accno, sum(ac.amount) AS amount,
+ c.description, c.category
+ FROM acc_trans ac
+ JOIN chart c ON (c.id = ac.chart_id)
+ JOIN gl a ON (a.id = ac.trans_id)
+ $dpt_join
+ WHERE $where
+ $ywhere
+ $glwhere
+ $dpt_where
+ $category
+ AND NOT (c.link = 'AR' OR c.link = 'AP')
+ $project
+ GROUP BY c.accno, c.description, c.category
+ |;
+
+ if ($excludeyearend) {
+
+ # this is for the yearend
+
+ $query .= qq|
+
+ UNION ALL
+
+ SELECT c.accno, sum(ac.amount) AS amount,
+ c.description, c.category
+ FROM yearend y
+ JOIN gl a ON (a.id = y.trans_id)
+ JOIN acc_trans ac ON (ac.trans_id = y.trans_id)
+ JOIN chart c ON (c.id = ac.chart_id)
+ $dpt_join
+ WHERE $yearendwhere
+ AND c.category = 'Q'
+ $dpt_where
+ $project
+ GROUP BY c.accno, c.description, c.category
+ |;
+ }
+
+ } else {
+
+ if ($department_id) {
+ $dpt_join = qq|
+ JOIN dpt_trans t ON (t.trans_id = ac.trans_id)
+ |;
+ $dpt_where = qq|
+ AND t.department_id = $department_id
+ |;
+ }
+
+
+ $query = qq|
+
+ SELECT c.accno, sum(ac.amount) AS amount,
+ c.description, c.category
+ FROM acc_trans ac
+ JOIN chart c ON (c.id = ac.chart_id)
+ $dpt_join
+ WHERE $where
+ $ywhere
+ $dpt_where
+ $category
+ $project
+ GROUP BY c.accno, c.description, c.category
+ |;
+
+ if ($excludeyearend) {
+
+ # this is for the yearend
+
+ $query .= qq|
+
+ UNION ALL
+
+ SELECT c.accno, sum(ac.amount) AS amount,
+ c.description, c.category
+ FROM yearend y
+ JOIN gl a ON (a.id = y.trans_id)
+ JOIN acc_trans ac ON (ac.trans_id = y.trans_id)
+ JOIN chart c ON (c.id = ac.chart_id)
+ $dpt_join
+ WHERE $yearendwhere
+ AND c.category = 'Q'
+ $dpt_where
+ $project
+ GROUP BY c.accno, c.description, c.category
+ |;
+ }
+ }
+ }
+
+ my @accno;
+ my $accno;
+ my $ref;
+
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+
+ # get last heading account
+ @accno = grep { $_ le "$ref->{accno}" } @headingaccounts;
+ $accno = pop @accno;
+ if ($accno && ($accno ne $ref->{accno}) ) {
+ if ($last_period)
+ {
+ $form->{$ref->{category}}{$accno}{last} += $ref->{amount};
+ } else {
+ $form->{$ref->{category}}{$accno}{this} += $ref->{amount};
+ }
+ }
+
+ $form->{$ref->{category}}{$ref->{accno}}{accno} = $ref->{accno};
+ $form->{$ref->{category}}{$ref->{accno}}{description} = $ref->{description};
+ $form->{$ref->{category}}{$ref->{accno}}{charttype} = "A";
+
+ if ($last_period) {
+ $form->{$ref->{category}}{$ref->{accno}}{last} += $ref->{amount};
+ } else {
+ $form->{$ref->{category}}{$ref->{accno}}{this} += $ref->{amount};
+ }
+ }
+ $sth->finish;
+
+
+ # remove accounts with zero balance
+ foreach $category (@{ $categories }) {
+ foreach $accno (keys %{ $form->{$category} }) {
+ $form->{$category}{$accno}{last} = $form->round_amount($form->{$category}{$accno}{last}, $form->{decimalplaces});
+ $form->{$category}{$accno}{this} = $form->round_amount($form->{$category}{$accno}{this}, $form->{decimalplaces});
+
+ delete $form->{$category}{$accno} if ($form->{$category}{$accno}{this} == 0 && $form->{$category}{$accno}{last} == 0);
+ }
+ }
+
+}
+
+
+
+sub trial_balance {
+ my ($self, $myconfig, $form) = @_;
+
+ my $dbh = $form->dbconnect($myconfig);
+
+ my ($query, $sth, $ref);
+ my %balance = ();
+ my %trb = ();
+ my $null;
+ my $department_id;
+ my $project_id;
+ my @headingaccounts = ();
+ my $dpt_where;
+ my $dpt_join;
+ my $project;
+
+ my $where = "1 = 1";
+ my $invwhere = $where;
+
+ ($null, $department_id) = split /--/, $form->{department};
+ ($null, $project_id) = split /--/, $form->{projectnumber};
+
+ if ($department_id) {
+ $dpt_join = qq|
+ JOIN dpt_trans t ON (ac.trans_id = t.trans_id)
+ |;
+ $dpt_where = qq|
+ AND t.department_id = $department_id
+ |;
+ }
+
+
+ if ($project_id) {
+ $project = qq|
+ AND ac.project_id = $project_id
+ |;
+ }
+
+ ($form->{fromdate}, $form->{todate}) = $form->from_to($form->{year}, $form->{month}, $form->{interval}) if $form->{year} && $form->{month};
+
+ # get beginning balances
+ if ($form->{fromdate}) {
+
+ if ($form->{accounttype} eq 'gifi') {
+
+ $query = qq|SELECT g.accno, c.category, SUM(ac.amount) AS amount,
+ g.description, c.contra
+ FROM acc_trans ac
+ JOIN chart c ON (ac.chart_id = c.id)
+ JOIN gifi g ON (c.gifi_accno = g.accno)
+ $dpt_join
+ WHERE ac.transdate < '$form->{fromdate}'
+ $dpt_where
+ $project
+ GROUP BY g.accno, c.category, g.description, c.contra
+ |;
+
+ } else {
+
+ $query = qq|SELECT c.accno, c.category, SUM(ac.amount) AS amount,
+ c.description, c.contra
+ FROM acc_trans ac
+ JOIN chart c ON (ac.chart_id = c.id)
+ $dpt_join
+ WHERE ac.transdate < '$form->{fromdate}'
+ $dpt_where
+ $project
+ GROUP BY c.accno, c.category, c.description, c.contra
+ |;
+
+ }
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+ $ref->{amount} = $form->round_amount($ref->{amount}, 2);
+ $balance{$ref->{accno}} = $ref->{amount};
+
+ if ($form->{all_accounts}) {
+ $trb{$ref->{accno}}{description} = $ref->{description};
+ $trb{$ref->{accno}}{charttype} = 'A';
+ $trb{$ref->{accno}}{category} = $ref->{category};
+ $trb{$ref->{accno}}{contra} = $ref->{contra};
+ }
+
+ }
+ $sth->finish;
+
+ }
+
+
+ # get headings
+ $query = qq|SELECT c.accno, c.description, c.category
+ FROM chart c
+ WHERE c.charttype = 'H'
+ ORDER by c.accno|;
+
+ if ($form->{accounttype} eq 'gifi')
+ {
+ $query = qq|SELECT g.accno, g.description, c.category, c.contra
+ FROM gifi g
+ JOIN chart c ON (c.gifi_accno = g.accno)
+ WHERE c.charttype = 'H'
+ ORDER BY g.accno|;
+ }
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc))
+ {
+ $trb{$ref->{accno}}{description} = $ref->{description};
+ $trb{$ref->{accno}}{charttype} = 'H';
+ $trb{$ref->{accno}}{category} = $ref->{category};
+ $trb{$ref->{accno}}{contra} = $ref->{contra};
+
+ push @headingaccounts, $ref->{accno};
+ }
+
+ $sth->finish;
+
+
+ if ($form->{fromdate} || $form->{todate}) {
+ if ($form->{fromdate}) {
+ $where .= " AND ac.transdate >= '$form->{fromdate}'";
+ $invwhere .= " AND a.transdate >= '$form->{fromdate}'";
+ }
+ if ($form->{todate}) {
+ $where .= " AND ac.transdate <= '$form->{todate}'";
+ $invwhere .= " AND a.transdate <= '$form->{todate}'";
+ }
+ }
+
+
+ if ($form->{accounttype} eq 'gifi') {
+
+ $query = qq|SELECT g.accno, g.description, c.category,
+ SUM(ac.amount) AS amount, c.contra
+ FROM acc_trans ac
+ JOIN chart c ON (c.id = ac.chart_id)
+ JOIN gifi g ON (c.gifi_accno = g.accno)
+ $dpt_join
+ WHERE $where
+ $dpt_where
+ $project
+ GROUP BY g.accno, g.description, c.category, c.contra
+ ORDER BY accno|;
+
+ } else {
+
+ $query = qq|SELECT c.accno, c.description, c.category,
+ SUM(ac.amount) AS amount, c.contra
+ FROM acc_trans ac
+ JOIN chart c ON (c.id = ac.chart_id)
+ $dpt_join
+ WHERE $where
+ $dpt_where
+ $project
+ GROUP BY c.accno, c.description, c.category, c.contra
+ ORDER BY accno|;
+
+ }
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ # prepare query for each account
+ $query = qq|SELECT (SELECT SUM(ac.amount) * -1
+ FROM acc_trans ac
+ JOIN chart c ON (c.id = ac.chart_id)
+ $dpt_join
+ WHERE $where
+ $dpt_where
+ $project
+ AND ac.amount < 0
+ AND c.accno = ?) AS debit,
+
+ (SELECT SUM(ac.amount)
+ FROM acc_trans ac
+ JOIN chart c ON (c.id = ac.chart_id)
+ $dpt_join
+ WHERE $where
+ $dpt_where
+ $project
+ AND ac.amount > 0
+ AND c.accno = ?) AS credit
+ |;
+
+ if ($form->{accounttype} eq 'gifi') {
+
+ $query = qq|SELECT (SELECT SUM(ac.amount) * -1
+ FROM acc_trans ac
+ JOIN chart c ON (c.id = ac.chart_id)
+ $dpt_join
+ WHERE $where
+ $dpt_where
+ $project
+ AND ac.amount < 0
+ AND c.gifi_accno = ?) AS debit,
+
+ (SELECT SUM(ac.amount)
+ FROM acc_trans ac
+ JOIN chart c ON (c.id = ac.chart_id)
+ $dpt_join
+ WHERE $where
+ $dpt_where
+ $project
+ AND ac.amount > 0
+ AND c.gifi_accno = ?) AS credit|;
+
+ }
+
+ $drcr = $dbh->prepare($query);
+
+ # calculate debit and credit for the period
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ $trb{$ref->{accno}}{description} = $ref->{description};
+ $trb{$ref->{accno}}{charttype} = 'A';
+ $trb{$ref->{accno}}{category} = $ref->{category};
+ $trb{$ref->{accno}}{contra} = $ref->{contra};
+ $trb{$ref->{accno}}{amount} += $ref->{amount};
+ }
+ $sth->finish;
+
+ my ($debit, $credit);
+
+ foreach my $accno (sort keys %trb) {
+ $ref = ();
+
+ $ref->{accno} = $accno;
+ for (qw(description category contra charttype amount)) { $ref->{$_} = $trb{$accno}{$_} }
+
+ $ref->{balance} = $balance{$ref->{accno}};
+
+ if ($trb{$accno}{charttype} eq 'A') {
+ if ($project_id) {
+
+ if ($ref->{amount} < 0) {
+ $ref->{debit} = $ref->{amount} * -1;
+ } else {
+ $ref->{credit} = $ref->{amount};
+ }
+ next if $form->round_amount($ref->{amount}, 2) == 0;
+
+ } else {
+
+ # get DR/CR
+ $drcr->execute($ref->{accno}, $ref->{accno});
+
+ ($debit, $credit) = (0,0);
+ while (($debit, $credit) = $drcr->fetchrow_array) {
+ $ref->{debit} += $debit;
+ $ref->{credit} += $credit;
+ }
+ $drcr->finish;
+
+ }
+
+ $ref->{debit} = $form->round_amount($ref->{debit}, 2);
+ $ref->{credit} = $form->round_amount($ref->{credit}, 2);
+
+ if (!$form->{all_accounts}) {
+ next if $form->round_amount($ref->{debit} + $ref->{credit}, 2) == 0;
+ }
+ }
+
+ # add subtotal
+ @accno = grep { $_ le "$ref->{accno}" } @headingaccounts;
+ $accno = pop @accno;
+ if ($accno) {
+ $trb{$accno}{debit} += $ref->{debit};
+ $trb{$accno}{credit} += $ref->{credit};
+ }
+
+ push @{ $form->{TB} }, $ref;
+
+ }
+
+ $dbh->disconnect;
+
+ # debits and credits for headings
+ foreach $accno (@headingaccounts) {
+ foreach $ref (@{ $form->{TB} }) {
+ if ($accno eq $ref->{accno}) {
+ $ref->{debit} = $trb{$accno}{debit};
+ $ref->{credit} = $trb{$accno}{credit};
+ }
+ }
+ }
+
+}
+
+
+sub aging {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+ my $invoice = ($form->{arap} eq 'ar') ? 'is' : 'ir';
+
+ my $query = qq|SELECT curr FROM defaults|;
+ ($form->{currencies}) = $dbh->selectrow_array($query);
+
+ ($null, $form->{todate}) = $form->from_to($form->{year}, $form->{month}) if $form->{year} && $form->{month};
+
+ if (! $form->{todate}) {
+ $query = qq|SELECT current_date FROM defaults|;
+ ($form->{todate}) = $dbh->selectrow_array($query);
+ }
+
+ my $where = "1 = 1";
+ my $name;
+ my $null;
+ my $ref;
+ my $transdate = ($form->{overdue}) ? "duedate" : "transdate";
+
+ if ($form->{"$form->{ct}_id"}) {
+ $where .= qq| AND ct.id = $form->{"$form->{ct}_id"}|;
+ } else {
+ if ($form->{$form->{ct}} ne "") {
+ $name = $form->like(lc $form->{$form->{ct}});
+ $where .= qq| AND lower(ct.name) LIKE '$name'| if $form->{$form->{ct}};
+ }
+ }
+
+ if ($form->{department}) {
+ ($null, $department_id) = split /--/, $form->{department};
+ $where .= qq| AND a.department_id = $department_id|;
+ }
+
+ # select outstanding vendors or customers, depends on $ct
+ $query = qq|SELECT DISTINCT ct.id, ct.name, ct.language_code
+ FROM $form->{ct} ct
+ JOIN $form->{arap} a ON (a.$form->{ct}_id = ct.id)
+ WHERE $where
+ AND a.paid != a.amount
+ AND (a.$transdate <= '$form->{todate}')
+ ORDER BY ct.name|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror;
+
+ my @ot = ();
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @ot, $ref;
+ }
+ $sth->finish;
+
+ my $buysell = ($form->{arap} eq 'ar') ? 'buy' : 'sell';
+
+ my %interval = ( 'Pg' => {
+ 'c0' => "(date '$form->{todate}' - interval '0 days')",
+ 'c30' => "(date '$form->{todate}' - interval '30 days')",
+ 'c60' => "(date '$form->{todate}' - interval '60 days')",
+ 'c90' => "(date '$form->{todate}' - interval '90 days')" },
+ 'DB2' => {
+ 'c0' => "(date ('$form->{todate}') - 0 days)",
+ 'c30' => "(date ('$form->{todate}') - 30 days)",
+ 'c60' => "(date ('$form->{todate}') - 60 days)",
+ 'c90' => "(date ('$form->{todate}') - 90 days)" }
+ );
+
+ $interval{Oracle} = $interval{PgPP} = $interval{Pg};
+
+
+ # for each company that has some stuff outstanding
+ $form->{currencies} ||= ":";
+
+
+ $where = qq|
+ a.paid != a.amount
+ AND c.id = ?
+ AND a.curr = ?|;
+
+ if ($department_id) {
+ $where .= qq| AND a.department_id = $department_id|;
+ }
+
+ $query = "";
+ my $union = "";
+
+ if ($form->{c0}) {
+ $query .= qq|
+ SELECT c.id AS ctid, c.$form->{ct}number, c.name,
+ c.address1, c.address2, c.city, c.state, c.zipcode, c.country,
+ c.contact, c.email,
+ c.phone as $form->{ct}phone, c.fax as $form->{ct}fax,
+ c.$form->{ct}number, c.taxnumber as $form->{ct}taxnumber,
+ a.invnumber, a.transdate, a.till, a.ordnumber, a.ponumber, a.notes,
+ (a.amount - a.paid) as c0, 0.00 as c30, 0.00 as c60, 0.00 as c90,
+ a.duedate, a.invoice, a.id, a.curr,
+ (SELECT $buysell FROM exchangerate e
+ WHERE a.curr = e.curr
+ AND e.transdate = a.transdate) AS exchangerate
+ FROM $form->{arap} a
+ JOIN $form->{ct} c ON (a.$form->{ct}_id = c.id)
+ WHERE $where
+ AND (
+ a.$transdate <= $interval{$myconfig->{dbdriver}}{c0}
+ AND a.$transdate >= $interval{$myconfig->{dbdriver}}{c30}
+ )
+|;
+
+ $union = qq|
+ UNION
+|;
+
+ }
+
+ if ($form->{c30}) {
+
+ $query .= qq|
+
+ $union
+
+ SELECT c.id AS ctid, c.$form->{ct}number, c.name,
+ c.address1, c.address2, c.city, c.state, c.zipcode, c.country,
+ c.contact, c.email,
+ c.phone as $form->{ct}phone, c.fax as $form->{ct}fax,
+ c.$form->{ct}number, c.taxnumber as $form->{ct}taxnumber,
+ a.invnumber, a.transdate, a.till, a.ordnumber, a.ponumber, a.notes,
+ 0.00 as c0, (a.amount - a.paid) as c30, 0.00 as c60, 0.00 as c90,
+ a.duedate, a.invoice, a.id, a.curr,
+ (SELECT $buysell FROM exchangerate e
+ WHERE a.curr = e.curr
+ AND e.transdate = a.transdate) AS exchangerate
+ FROM $form->{arap} a
+ JOIN $form->{ct} c ON (a.$form->{ct}_id = c.id)
+ WHERE $where
+ AND (
+ a.$transdate < $interval{$myconfig->{dbdriver}}{c30}
+ AND a.$transdate >= $interval{$myconfig->{dbdriver}}{c60}
+ )
+|;
+
+ $union = qq|
+ UNION
+|;
+
+ }
+
+ if ($form->{c60}) {
+
+ $query .= qq|
+
+ $union
+
+ SELECT c.id AS ctid, c.$form->{ct}number, c.name,
+ c.address1, c.address2, c.city, c.state, c.zipcode, c.country,
+ c.contact, c.email,
+ c.phone as $form->{ct}phone, c.fax as $form->{ct}fax,
+ c.$form->{ct}number, c.taxnumber as $form->{ct}taxnumber,
+ a.invnumber, a.transdate, a.till, a.ordnumber, a.ponumber, a.notes,
+ 0.00 as c0, 0.00 as c30, (a.amount - a.paid) as c60, 0.00 as c90,
+ a.duedate, a.invoice, a.id, a.curr,
+ (SELECT $buysell FROM exchangerate e
+ WHERE a.curr = e.curr
+ AND e.transdate = a.transdate) AS exchangerate
+ FROM $form->{arap} a
+ JOIN $form->{ct} c ON (a.$form->{ct}_id = c.id)
+ WHERE $where
+ AND (
+ a.$transdate < $interval{$myconfig->{dbdriver}}{c60}
+ AND a.$transdate >= $interval{$myconfig->{dbdriver}}{c90}
+ )
+|;
+
+ $union = qq|
+ UNION
+|;
+
+ }
+
+ if ($form->{c90}) {
+
+ $query .= qq|
+
+ $union
+
+ SELECT c.id AS ctid, c.$form->{ct}number, c.name,
+ c.address1, c.address2, c.city, c.state, c.zipcode, c.country,
+ c.contact, c.email,
+ c.phone as $form->{ct}phone, c.fax as $form->{ct}fax,
+ c.$form->{ct}number, c.taxnumber as $form->{ct}taxnumber,
+ a.invnumber, a.transdate, a.till, a.ordnumber, a.ponumber, a.notes,
+ 0.00 as c0, 0.00 as c30, 0.00 as c60, (a.amount - a.paid) as c90,
+ a.duedate, a.invoice, a.id, a.curr,
+ (SELECT $buysell FROM exchangerate e
+ WHERE a.curr = e.curr
+ AND e.transdate = a.transdate) AS exchangerate
+ FROM $form->{arap} a
+ JOIN $form->{ct} c ON (a.$form->{ct}_id = c.id)
+ WHERE $where
+ AND a.$transdate < $interval{$myconfig->{dbdriver}}{c90}
+|;
+ }
+
+ $query .= qq|
+
+ ORDER BY ctid, $transdate, invnumber|;
+
+ $sth = $dbh->prepare($query) || $form->dberror($query);
+
+ my @var = ();
+
+ if ($form->{c0} + $form->{c30} + $form->{c60} + $form->{c90}) {
+ foreach $curr (split /:/, $form->{currencies}) {
+
+ foreach $item (@ot) {
+
+ @var = ();
+ for (qw(c0 c30 c60 c90)) { push @var, ($item->{id}, $curr) if $form->{$_} }
+
+ $sth->execute(@var);
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ $ref->{module} = ($ref->{invoice}) ? $invoice : $form->{arap};
+ $ref->{module} = 'ps' if $ref->{till};
+ $ref->{exchangerate} = 1 unless $ref->{exchangerate};
+ $ref->{language_code} = $item->{language_code};
+ push @{ $form->{AG} }, $ref;
+ }
+ $sth->finish;
+
+ }
+ }
+ }
+
+ # get language
+ my $query = qq|SELECT *
+ FROM language
+ ORDER BY 2|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{all_language} }, $ref;
+ }
+ $sth->finish;
+
+ # disconnect
+ $dbh->disconnect;
+
+}
+
+
+sub get_customer {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $query = qq|SELECT name, email, cc, bcc
+ FROM $form->{ct} ct
+ WHERE ct.id = $form->{"$form->{ct}_id"}|;
+ ($form->{$form->{ct}}, $form->{email}, $form->{cc}, $form->{bcc}) = $dbh->selectrow_array($query);
+
+ $dbh->disconnect;
+
+}
+
+
+sub get_taxaccounts {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+ my $ARAP = uc $form->{db};
+
+ # get tax accounts
+ my $query = qq|SELECT DISTINCT c.accno, c.description
+ FROM chart c
+ JOIN tax t ON (c.id = t.chart_id)
+ WHERE c.link LIKE '%${ARAP}_tax%'
+ ORDER BY c.accno|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror;
+
+ my $ref = ();
+ while ($ref = $sth->fetchrow_hashref(NAME_lc) ) {
+ push @{ $form->{taxaccounts} }, $ref;
+ }
+ $sth->finish;
+
+ # get gifi tax accounts
+ my $query = qq|SELECT DISTINCT g.accno, g.description
+ FROM gifi g
+ JOIN chart c ON (c.gifi_accno= g.accno)
+ JOIN tax t ON (c.id = t.chart_id)
+ WHERE c.link LIKE '%${ARAP}_tax%'
+ ORDER BY accno|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror;
+
+ while ($ref = $sth->fetchrow_hashref(NAME_lc) ) {
+ push @{ $form->{gifi_taxaccounts} }, $ref;
+ }
+ $sth->finish;
+
+ $dbh->disconnect;
+
+}
+
+
+
+sub tax_report {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my ($null, $department_id) = split /--/, $form->{department};
+
+ # build WHERE
+ my $where = "1 = 1";
+ my $cashwhere = "";
+
+ if ($department_id) {
+ $where .= qq|
+ AND a.department_id = $department_id
+ |;
+ }
+
+ my $query;
+ my $sth;
+ my $accno;
+
+ if ($form->{accno}) {
+ if ($form->{accno} =~ /^gifi_/) {
+ ($null, $accno) = split /_/, $form->{accno};
+ $accno = qq| AND ch.gifi_accno = '$accno'|;
+ } else {
+ $accno = $form->{accno};
+ $accno = qq| AND ch.accno = '$accno'|;
+ }
+ }
+
+ my $table;
+ my $ARAP;
+
+ if ($form->{db} eq 'ar') {
+ $table = "customer";
+ $ARAP = "AR";
+ }
+ if ($form->{db} eq 'ap') {
+ $table = "vendor";
+ $ARAP = "AP";
+ }
+
+ my $transdate = "a.transdate";
+
+ ($form->{fromdate}, $form->{todate}) = $form->from_to($form->{year}, $form->{month}, $form->{interval}) if $form->{year} && $form->{month};
+
+ # if there are any dates construct a where
+ if ($form->{fromdate} || $form->{todate}) {
+ if ($form->{fromdate}) {
+ $where .= " AND $transdate >= '$form->{fromdate}'";
+ }
+ if ($form->{todate}) {
+ $where .= " AND $transdate <= '$form->{todate}'";
+ }
+ }
+
+
+ if ($form->{method} eq 'cash') {
+ $transdate = "a.datepaid";
+
+ my $todate = $form->{todate};
+ if (! $todate) {
+ ($todate) = $dbh->selectrow_array(qq|SELECT current_date FROM defaults|);
+ }
+
+ $cashwhere = qq|
+ AND ac.trans_id IN
+ (
+ SELECT trans_id
+ FROM acc_trans
+ JOIN chart ON (chart_id = chart.id)
+ WHERE link LIKE '%${ARAP}_paid%'
+ AND $transdate <= '$todate'
+ AND a.paid = a.amount
+ )
+ |;
+
+ }
+
+
+ my $ml = ($form->{db} eq 'ar') ? 1 : -1;
+
+ my %ordinal = ( 'transdate' => 3,
+ 'invnumber' => 4,
+ 'name' => 5
+ );
+
+ my @a = qw(transdate invnumber name);
+ my $sortorder = $form->sort_order(\@a, \%ordinal);
+
+ if ($form->{summary}) {
+
+ $query = qq|SELECT a.id, a.invoice, $transdate AS transdate,
+ a.invnumber, n.name, a.netamount,
+ ac.amount * $ml AS tax,
+ a.till
+ FROM acc_trans ac
+ JOIN $form->{db} a ON (a.id = ac.trans_id)
+ JOIN chart ch ON (ch.id = ac.chart_id)
+ JOIN $table n ON (n.id = a.${table}_id)
+ WHERE $where
+ $accno
+ $cashwhere
+ |;
+
+ if ($form->{fromdate}) {
+ # include open transactions from previous period
+ if ($cashwhere) {
+ $query .= qq|
+ UNION
+
+ SELECT a.id, a.invoice, $transdate AS transdate,
+ a.invnumber, n.name, a.netamount,
+ ac.amount * $ml AS tax,
+ a.till
+ FROM acc_trans ac
+ JOIN $form->{db} a ON (a.id = ac.trans_id)
+ JOIN chart ch ON (ch.id = ac.chart_id)
+ JOIN $table n ON (n.id = a.${table}_id)
+ WHERE a.datepaid >= '$form->{fromdate}'
+ $accno
+ $cashwhere
+ |;
+ }
+ }
+
+
+ } else {
+
+ $query = qq|SELECT a.id, '0' AS invoice, $transdate AS transdate,
+ a.invnumber, n.name, a.netamount,
+ ac.amount * $ml AS tax,
+ a.notes AS description, a.till
+ FROM acc_trans ac
+ JOIN $form->{db} a ON (a.id = ac.trans_id)
+ JOIN chart ch ON (ch.id = ac.chart_id)
+ JOIN $table n ON (n.id = a.${table}_id)
+ WHERE $where
+ $accno
+ AND a.invoice = '0'
+ $cashwhere
+
+ UNION
+
+ SELECT a.id, '1' AS invoice, $transdate AS transdate,
+ a.invnumber, n.name,
+ i.sellprice * i.qty * $ml AS netamount,
+ i.sellprice * i.qty * $ml *
+ (SELECT tx.rate FROM tax tx WHERE tx.chart_id = ch.id AND (tx.validto > $transdate OR tx.validto IS NULL) ORDER BY validto LIMIT 1) AS tax,
+ i.description, a.till
+ FROM acc_trans ac
+ JOIN $form->{db} a ON (a.id = ac.trans_id)
+ JOIN chart ch ON (ch.id = ac.chart_id)
+ JOIN $table n ON (n.id = a.${table}_id)
+ JOIN ${table}tax t ON (t.${table}_id = n.id AND t.chart_id = ch.id)
+ JOIN invoice i ON (i.trans_id = a.id)
+ JOIN partstax pt ON (pt.parts_id = i.parts_id AND pt.chart_id = ch.id)
+ WHERE $where
+ $accno
+ AND a.invoice = '1'
+ $cashwhere
+ |;
+
+ if ($form->{fromdate}) {
+ if ($cashwhere) {
+ $query .= qq|
+ UNION
+
+ SELECT a.id, '0' AS invoice, $transdate AS transdate,
+ a.invnumber, n.name, a.netamount,
+ ac.amount * $ml AS tax,
+ a.notes AS description, a.till
+ FROM acc_trans ac
+ JOIN $form->{db} a ON (a.id = ac.trans_id)
+ JOIN chart ch ON (ch.id = ac.chart_id)
+ JOIN $table n ON (n.id = a.${table}_id)
+ WHERE a.datepaid >= '$form->{fromdate}'
+ $accno
+ AND a.invoice = '0'
+ $cashwhere
+
+ UNION
+
+ SELECT a.id, '1' AS invoice, $transdate AS transdate,
+ a.invnumber, n.name,
+ i.sellprice * i.qty * $ml AS netamount,
+ i.sellprice * i.qty * $ml *
+ (SELECT tx.rate FROM tax tx WHERE tx.chart_id = ch.id AND (tx.validto > $transdate OR tx.validto IS NULL) ORDER BY validto LIMIT 1) AS tax,
+ i.description, a.till
+ FROM acc_trans ac
+ JOIN $form->{db} a ON (a.id = ac.trans_id)
+ JOIN chart ch ON (ch.id = ac.chart_id)
+ JOIN $table n ON (n.id = a.${table}_id)
+ JOIN ${table}tax t ON (t.${table}_id = n.id AND t.chart_id = ch.id)
+ JOIN invoice i ON (i.trans_id = a.id)
+ JOIN partstax pt ON (pt.parts_id = i.parts_id AND pt.chart_id = ch.id)
+ WHERE a.datepaid >= '$form->{fromdate}'
+ $accno
+ AND a.invoice = '1'
+ $cashwhere
+ |;
+ }
+ }
+ }
+
+
+ if ($form->{report} =~ /nontaxable/) {
+
+ if ($form->{summary}) {
+ # only gather up non-taxable transactions
+ $query = qq|SELECT DISTINCT a.id, a.invoice, $transdate AS transdate,
+ a.invnumber, n.name, a.netamount, a.till
+ FROM acc_trans ac
+ JOIN $form->{db} a ON (a.id = ac.trans_id)
+ JOIN $table n ON (n.id = a.${table}_id)
+ WHERE $where
+ AND a.netamount = a.amount
+ $cashwhere
+ |;
+
+ if ($form->{fromdate}) {
+ if ($cashwhere) {
+ $query .= qq|
+ UNION
+
+ SELECT DISTINCT a.id, a.invoice, $transdate AS transdate,
+ a.invnumber, n.name, a.netamount, a.till
+ FROM acc_trans ac
+ JOIN $form->{db} a ON (a.id = ac.trans_id)
+ JOIN $table n ON (n.id = a.${table}_id)
+ WHERE a.datepaid >= '$form->{fromdate}'
+ AND a.netamount = a.amount
+ $cashwhere
+ |;
+ }
+ }
+
+ } else {
+
+ # gather up details for non-taxable transactions
+ $query = qq|SELECT a.id, '0' AS invoice, $transdate AS transdate,
+ a.invnumber, n.name, a.netamount,
+ a.notes AS description, a.till
+ FROM acc_trans ac
+ JOIN $form->{db} a ON (a.id = ac.trans_id)
+ JOIN $table n ON (n.id = a.${table}_id)
+ WHERE $where
+ AND a.invoice = '0'
+ AND a.netamount = a.amount
+ $cashwhere
+ GROUP BY a.id, $transdate, a.invnumber, n.name, a.netamount,
+ a.notes, a.till
+
+ UNION
+
+ SELECT a.id, '1' AS invoice, $transdate AS transdate,
+ a.invnumber, n.name,
+ sum(ac.sellprice * ac.qty) * $ml AS netamount,
+ ac.description, a.till
+ FROM invoice ac
+ JOIN $form->{db} a ON (a.id = ac.trans_id)
+ JOIN $table n ON (n.id = a.${table}_id)
+ WHERE $where
+ AND a.invoice = '1'
+ AND (
+ a.${table}_id NOT IN (
+ SELECT ${table}_id FROM ${table}tax t (${table}_id)
+ ) OR
+ ac.parts_id NOT IN (
+ SELECT parts_id FROM partstax p (parts_id)
+ )
+ )
+ $cashwhere
+ GROUP BY a.id, a.invnumber, $transdate, n.name,
+ ac.description, a.till
+ |;
+
+ if ($form->{fromdate}) {
+ if ($cashwhere) {
+ $query .= qq|
+ UNION
+
+ SELECT a.id, '0' AS invoice, $transdate AS transdate,
+ a.invnumber, n.name, a.netamount,
+ a.notes AS description, a.till
+ FROM acc_trans ac
+ JOIN $form->{db} a ON (a.id = ac.trans_id)
+ JOIN $table n ON (n.id = a.${table}_id)
+ WHERE a.datepaid >= '$form->{fromdate}'
+ AND a.invoice = '0'
+ AND a.netamount = a.amount
+ $cashwhere
+ GROUP BY a.id, $transdate, a.invnumber, n.name, a.netamount,
+ a.notes, a.till
+
+ UNION
+
+ SELECT a.id, '1' AS invoice, $transdate AS transdate,
+ a.invnumber, n.name,
+ sum(ac.sellprice * ac.qty) * $ml AS netamount,
+ ac.description, a.till
+ FROM invoice ac
+ JOIN $form->{db} a ON (a.id = ac.trans_id)
+ JOIN $table n ON (n.id = a.${table}_id)
+ WHERE a.datepaid >= '$form->{fromdate}'
+ AND a.invoice = '1'
+ AND (
+ a.${table}_id NOT IN (
+ SELECT ${table}_id FROM ${table}tax t (${table}_id)
+ ) OR
+ ac.parts_id NOT IN (
+ SELECT parts_id FROM partstax p (parts_id)
+ )
+ )
+ $cashwhere
+ GROUP BY a.id, a.invnumber, $transdate, n.name,
+ ac.description, a.till
+ |;
+ }
+ }
+
+ }
+ }
+
+
+ $query .= qq|
+ ORDER by $sortorder|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while ( my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+ $ref->{tax} = $form->round_amount($ref->{tax}, 2);
+ if ($form->{report} =~ /nontaxable/) {
+ push @{ $form->{TR} }, $ref if $ref->{netamount};
+ } else {
+ push @{ $form->{TR} }, $ref if $ref->{tax};
+ }
+ }
+
+ $sth->finish;
+ $dbh->disconnect;
+
+}
+
+
+sub paymentaccounts {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database, turn AutoCommit off
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ my $ARAP = uc $form->{db};
+
+ # get A(R|P)_paid accounts
+ my $query = qq|SELECT accno, description
+ FROM chart
+ WHERE link LIKE '%${ARAP}_paid%'
+ ORDER BY accno|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{PR} }, $ref;
+ }
+ $sth->finish;
+
+ $form->all_years($myconfig, $dbh);
+
+ $dbh->disconnect;
+
+}
+
+
+sub payments {
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database, turn AutoCommit off
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ my $ml = 1;
+ if ($form->{db} eq 'ar') {
+ $table = 'customer';
+ $ml = -1;
+ }
+ if ($form->{db} eq 'ap') {
+ $table = 'vendor';
+ }
+
+
+ my $query;
+ my $sth;
+ my $dpt_join;
+ my $where;
+ my $var;
+
+ if ($form->{department_id}) {
+ $dpt_join = qq|
+ JOIN dpt_trans t ON (t.trans_id = ac.trans_id)
+ |;
+
+ $where = qq|
+ AND t.department_id = $form->{department_id}
+ |;
+ }
+
+ ($form->{fromdate}, $form->{todate}) = $form->from_to($form->{year}, $form->{month}, $form->{interval}) if $form->{year} && $form->{month};
+
+ if ($form->{fromdate}) {
+ $where .= " AND ac.transdate >= '$form->{fromdate}'";
+ }
+ if ($form->{todate}) {
+ $where .= " AND ac.transdate <= '$form->{todate}'";
+ }
+ if (!$form->{fx_transaction}) {
+ $where .= " AND ac.fx_transaction = '0'";
+ }
+
+ if ($form->{description} ne "") {
+ $var = $form->like(lc $form->{description});
+ $where .= " AND lower(c.name) LIKE '$var'";
+ }
+ if ($form->{source} ne "") {
+ $var = $form->like(lc $form->{source});
+ $where .= " AND lower(ac.source) LIKE '$var'";
+ }
+ if ($form->{memo} ne "") {
+ $var = $form->like(lc $form->{memo});
+ $where .= " AND lower(ac.memo) LIKE '$var'";
+ }
+
+ my %ordinal = ( 'name' => 1,
+ 'transdate' => 2,
+ 'source' => 4,
+ 'employee' => 6,
+ 'till' => 7
+ );
+
+ my @a = qw(name transdate employee);
+ my $sortorder = $form->sort_order(\@a, \%ordinal);
+
+ my $glwhere = $where;
+ $glwhere =~ s/\(c.name\)/\(g.description\)/;
+
+ # cycle through each id
+ foreach my $accno (split(/ /, $form->{paymentaccounts})) {
+
+ $query = qq|SELECT id, accno, description
+ FROM chart
+ WHERE accno = '$accno'|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my $ref = $sth->fetchrow_hashref(NAME_lc);
+ push @{ $form->{PR} }, $ref;
+ $sth->finish;
+
+ $query = qq|SELECT c.name, ac.transdate, sum(ac.amount) * $ml AS paid,
+ ac.source, ac.memo, e.name AS employee, a.till, a.curr
+ FROM acc_trans ac
+ JOIN $form->{db} a ON (ac.trans_id = a.id)
+ JOIN $table c ON (c.id = a.${table}_id)
+ LEFT JOIN employee e ON (a.employee_id = e.id)
+ $dpt_join
+ WHERE ac.chart_id = $ref->{id}
+ $where|;
+
+ if ($form->{till} ne "") {
+ $query .= " AND a.invoice = '1'
+ AND NOT a.till IS NULL";
+
+ if ($myconfig->{role} eq 'user') {
+ $query .= " AND e.login = '$form->{login}'";
+ }
+ }
+
+ $query .= qq|
+ GROUP BY c.name, ac.transdate, ac.source, ac.memo,
+ e.name, a.till, a.curr
+ |;
+
+ if ($form->{till} eq "") {
+# don't need gl for a till
+
+ $query .= qq|
+ UNION
+ SELECT g.description, ac.transdate, sum(ac.amount) * $ml AS paid, ac.source,
+ ac.memo, e.name AS employee, '' AS till, '' AS curr
+ FROM acc_trans ac
+ JOIN gl g ON (g.id = ac.trans_id)
+ LEFT JOIN employee e ON (g.employee_id = e.id)
+ $dpt_join
+ WHERE ac.chart_id = $ref->{id}
+ $glwhere
+ AND (ac.amount * $ml) > 0
+ GROUP BY g.description, ac.transdate, ac.source, ac.memo, e.name
+ |;
+
+ }
+
+ $query .= qq|
+ ORDER BY $sortorder|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while (my $pr = $sth->fetchrow_hashref(NAME_lc)) {
+ push @{ $form->{$ref->{id}} }, $pr;
+ }
+ $sth->finish;
+
+ }
+
+ $dbh->disconnect;
+
+}
+
+
+1;
+
+
diff --git a/LedgerSMB/Session.pm b/LedgerSMB/Session.pm
new file mode 100755
index 00000000..eb3a1208
--- /dev/null
+++ b/LedgerSMB/Session.pm
@@ -0,0 +1,143 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has undergone whitespace cleanup.
+#
+#======================================================================
+# This package contains session related functions:
+#
+# check - checks validity of session based on the user's cookie and login
+#
+# create - creates a new session, writes cookie upon success
+#
+# destroy - destroys session
+#====================================================================
+package Session;
+
+sub session_check {
+
+ my ($cookie, $form, %myconfig) = @_;
+ my ($sessionid, $token) = split /:/, $cookie;
+
+ # connect to database
+ my $dbh = DBI->connect($myconfig{dbconnect}, $myconfig{dbuser}, $myconfig{dbpasswd});
+
+ my $checkQuery = $dbh->prepare("SELECT sl_login FROM session WHERE session_id = ? AND token = ? AND last_used > now() - ?::interval");
+
+ my $updateAge = $dbh->prepare("UPDATE session SET last_used = now() WHERE session_id = ?;");
+
+ #must be an integer
+ $sessionid =~ s/[^0-9]//g;
+ $sessionid = int $sessionid;
+
+ #must be 32 chars long and contain hex chars
+ $token =~ s/[^0-9a-f]//g;
+ $token = substr($token, 0, 32);
+
+ if (!$myconfig{timeout}){
+ $timeout = "1 day";
+ } else {
+ $timeout = "$myconfig{timeout} seconds";
+ }
+
+ $checkQuery->execute($sessionid, $token, $timeout) || $form->dberror('Looking for session: ');
+ my $sessionValid = $checkQuery->rows;
+
+ if($sessionValid){
+
+ #user has a valid session cookie, now check the user
+ my ($sessionLogin) = $checkQuery->fetchrow_array;
+
+ my $login = $form->{login};
+ $login =~ s/[^a-zA-Z0-9@.-]//g;
+
+ if($sessionLogin eq $login){
+ $updateAge->execute($sessionid) || $form->dberror('Updating session age: ');
+ return 1;
+
+ } else {
+ #something's wrong, they have the cookie, but wrong user. Hijack attempt?
+ #delete the cookie in the browser
+ print qq|Set-Cookie: LedgerSMB=; path=/;\n|;
+ return 0;
+ }
+
+ } else {
+ #cookie is not valid
+ #delete the cookie in the browser
+ print qq|Set-Cookie: LedgerSMB=; path=/;\n|;
+ print qq|Set-Cookie: DiedHere=true; path=/;\n|;
+ return 0;
+ }
+}
+
+sub session_create {
+ my ($form, %myconfig) = @_;
+
+ # connect to database
+ my $dbh = DBI->connect($myconfig{dbconnect}, $myconfig{dbuser}, $myconfig{dbpasswd});
+
+ # TODO Change this to use %myconfig
+ my $deleteExisting = $dbh->prepare("DELETE FROM session WHERE sl_login = ? AND age(last_used) > ?::interval");
+
+ my $seedRandom = $dbh->prepare("SELECT setseed(?);");
+
+ my $fetchSequence = $dbh->prepare("SELECT nextval('session_session_id_seq'), md5(random());");
+
+ my $createNew = $dbh->prepare("INSERT INTO session (session_id, sl_login, token) VALUES(?, ?, ?);");
+
+
+ # this is assuming that $form->{login} is safe, which might be a bad assumption
+ # so, I'm going to remove some chars, which might make previously valid logins invalid
+ my $login = $form->{login};
+ $login =~ s/[^a-zA-Z0-9@.-]//g;
+
+ #delete any existing stale sessions with this login if they exist
+ if (!$myconfig{timeout}){
+ $myconfig{timeout} = 86400;
+ }
+
+ $deleteExisting->execute($login, "$myconfig{timeout} seconds") || $form->dberror('Delete from session: ');
+
+ #doing the md5 and random stuff in the db so that LedgerSMB won't
+ #require new perl modules (Digest::MD5 and a good random generator)
+ $fetchSequence->execute() || $form->dberror('Fetch sequence id: ');
+ my ($newSessionID, $newToken) = $fetchSequence->fetchrow_array;
+
+ #create a new session
+ $createNew->execute($newSessionID, $login, $newToken) || $form->dberror('Create new session: ');
+
+ #reseed the random number generator
+ my $randomSeed = 1.0 * ('0.'. (time() ^ ($$ + ($$ <<15))));
+ $seedRandom->execute($randomSeed)|| $form->dberror('Reseed random generator: ');;
+
+ $newCookieValue = $newSessionID . ':' . $newToken;
+
+ #now set the cookie in the browser
+ #TODO set domain from ENV, also set path to install path
+ print qq|Set-Cookie: LedgerSMB=$newCookieValue; path=/;\n|;
+ $form->{LedgerSMB} = $newCookieValue;
+}
+
+sub session_destroy {
+ my ($form) = @_;
+
+ my $login = $form->{login};
+ $login =~ s/[^a-zA-Z0-9@.-]//g;
+
+ # connect to database
+ my $dbh = DBI->connect($myconfig{dbconnect}, $myconfig{dbuser}, $myconfig{dbpasswd});
+
+ my $deleteExisting = $dbh->prepare("DELETE FROM session WHERE sl_login = ?;");
+ $deleteExisting->execute($login) || $form->dberror('Delete from session: ');
+
+ #delete the cookie in the browser
+ print qq|Set-Cookie: LedgerSMB=; path=/;\n|;
+
+}
+
+1;
diff --git a/LedgerSMB/User.pm b/LedgerSMB/User.pm
new file mode 100755
index 00000000..2398b06b
--- /dev/null
+++ b/LedgerSMB/User.pm
@@ -0,0 +1,927 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has NOT undergone whitespace cleanup.
+#
+#======================================================================
+#
+# user related functions
+#
+#=====================================================================
+
+package User;
+
+
+sub new {
+ my ($type, $memfile, $login) = @_;
+ my $self = {};
+
+ if ($login ne "") {
+ &error("", "$memfile locked!") if (-f "${memfile}.LCK");
+
+ open(MEMBER, "$memfile") or &error("", "$memfile : $!");
+
+ while (<MEMBER>) {
+ if (/^\[$login\]/) {
+ while (<MEMBER>) {
+ last if /^\[/;
+ next if /^(#|\s)/;
+
+ # remove comments
+ s/^\s*#.*//g;
+
+ # remove any trailing whitespace
+ s/^\s*(.*?)\s*$/$1/;
+
+ ($key, $value) = split /=/, $_, 2;
+
+ $self->{$key} = $value;
+ }
+
+ $self->{login} = $login;
+
+ last;
+ }
+ }
+ close MEMBER;
+ }
+
+ bless $self, $type;
+}
+
+
+sub country_codes {
+
+ my %cc = ();
+ my @language = ();
+
+ # scan the locale directory and read in the LANGUAGE files
+ opendir DIR, "locale";
+
+ my @dir = grep !/(^\.\.?$|\..*)/, readdir DIR;
+
+ foreach my $dir (@dir) {
+ next unless open(FH, "locale/$dir/LANGUAGE");
+ @language = <FH>;
+ close FH;
+
+ $cc{$dir} = "@language";
+ }
+
+ closedir(DIR);
+
+ %cc;
+
+}
+
+
+sub login {
+ my ($self, $form, $userspath) = @_;
+
+ my $rc = -1;
+
+ if ($self->{login} ne "") {
+
+ if ($self->{password} ne "") {
+ my $password = crypt $form->{password}, substr($self->{login}, 0, 2);
+ if ($self->{password} ne $password) {
+ return -1;
+ }
+ }
+
+ unless (-f "$userspath/$self->{login}.conf") {
+ $self->create_config("$userspath/$self->{login}.conf");
+ }
+
+ do "$userspath/$self->{login}.conf";
+ $myconfig{dbpasswd} = unpack 'u', $myconfig{dbpasswd};
+
+ # check if database is down
+ my $dbh = DBI->connect($myconfig{dbconnect}, $myconfig{dbuser}, $myconfig{dbpasswd}) or $self->error($DBI::errstr);
+
+ # we got a connection, check the version
+ my $query = qq|SELECT version FROM defaults|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my ($dbversion) = $sth->fetchrow_array;
+ $sth->finish;
+
+ # add login to employee table if it does not exist
+ # no error check for employee table, ignore if it does not exist
+ my $login = $self->{login};
+ $login =~ s/@.*//;
+ $query = qq|SELECT id FROM employee WHERE login = '$login'|;
+ $sth = $dbh->prepare($query);
+ $sth->execute;
+
+ my ($id) = $sth->fetchrow_array;
+ $sth->finish;
+
+ if (! $id) {
+ my ($employeenumber) = $form->update_defaults(\%myconfig, "employeenumber", $dbh);
+
+ $query = qq|INSERT INTO employee (login, employeenumber, name, workphone,
+ role)
+ VALUES ('$login', '$employeenumber', '$myconfig{name}',
+ '$myconfig{tel}', '$myconfig{role}')|;
+ $dbh->do($query);
+ }
+ $dbh->disconnect;
+
+ $rc = 0;
+
+
+ if ($form->{dbversion} ne $dbversion) {
+ $rc = -3;
+ $dbupdate = (calc_version($dbversion) < calc_version($form->{dbversion}));
+ }
+
+ if ($dbupdate) {
+ $rc = -4;
+
+ # if DB2 bale out
+ if ($myconfig{dbdriver} eq 'DB2') {
+ $rc = -2;
+ }
+ }
+ }
+
+ $rc;
+
+}
+
+
+sub check_recurring {
+ my ($self, $form) = @_;
+
+ $self->{dbpasswd} = unpack 'u', $self->{dbpasswd};
+
+ my $dbh = DBI->connect($self->{dbconnect}, $self->{dbuser}, $self->{dbpasswd}) or $form->dberror;
+
+ my $query = qq|SELECT count(*) FROM recurring
+ WHERE enddate >= current_date AND nextdate <= current_date|;
+ ($_) = $dbh->selectrow_array($query);
+
+ $dbh->disconnect;
+
+ $_;
+
+}
+
+
+sub dbconnect_vars {
+ my ($form, $db) = @_;
+
+ my %dboptions = (
+ 'Pg' => {
+ 'yy-mm-dd' => 'set DateStyle to \'ISO\'',
+ 'mm/dd/yy' => 'set DateStyle to \'SQL, US\'',
+ 'mm-dd-yy' => 'set DateStyle to \'POSTGRES, US\'',
+ 'dd/mm/yy' => 'set DateStyle to \'SQL, EUROPEAN\'',
+ 'dd-mm-yy' => 'set DateStyle to \'POSTGRES, EUROPEAN\'',
+ 'dd.mm.yy' => 'set DateStyle to \'GERMAN\''
+ },
+ 'Oracle' => {
+ 'yy-mm-dd' => 'ALTER SESSION SET NLS_DATE_FORMAT = \'YY-MM-DD\'',
+ 'mm/dd/yy' => 'ALTER SESSION SET NLS_DATE_FORMAT = \'MM/DD/YY\'',
+ 'mm-dd-yy' => 'ALTER SESSION SET NLS_DATE_FORMAT = \'MM-DD-YY\'',
+ 'dd/mm/yy' => 'ALTER SESSION SET NLS_DATE_FORMAT = \'DD/MM/YY\'',
+ 'dd-mm-yy' => 'ALTER SESSION SET NLS_DATE_FORMAT = \'DD-MM-YY\'',
+ 'dd.mm.yy' => 'ALTER SESSION SET NLS_DATE_FORMAT = \'DD.MM.YY\'',
+ }
+ );
+
+
+ $form->{dboptions} = $dboptions{$form->{dbdriver}}{$form->{dateformat}};
+
+ if ($form->{dbdriver} =~ /Pg/) {
+ $form->{dbconnect} = "dbi:$form->{dbdriver}:dbname=$db";
+ }
+
+ if ($form->{dbdriver} eq 'Oracle') {
+ $form->{dbconnect} = "dbi:Oracle:sid=$form->{sid}";
+ }
+
+ if ($form->{dbhost}) {
+ $form->{dbconnect} .= ";host=$form->{dbhost}";
+ }
+ if ($form->{dbport}) {
+ $form->{dbconnect} .= ";port=$form->{dbport}";
+ }
+
+}
+
+
+sub dbdrivers {
+
+ my @drivers = DBI->available_drivers();
+
+# return (grep { /(Pg|Oracle|DB2)/ } @drivers);
+ return (grep { /Pg$/ } @drivers);
+
+}
+
+
+sub dbsources {
+ my ($self, $form) = @_;
+
+ my @dbsources = ();
+ my ($sth, $query);
+
+ $form->{dbdefault} = $form->{dbuser} unless $form->{dbdefault};
+ $form->{sid} = $form->{dbdefault};
+ &dbconnect_vars($form, $form->{dbdefault});
+
+ my $dbh = DBI->connect($form->{dbconnect}, $form->{dbuser}, $form->{dbpasswd}) or $form->dberror;
+
+
+ if ($form->{dbdriver} eq 'Pg') {
+
+ $query = qq|SELECT datname FROM pg_database|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while (my ($db) = $sth->fetchrow_array) {
+
+ if ($form->{only_acc_db}) {
+
+ next if ($db =~ /^template/);
+
+ &dbconnect_vars($form, $db);
+ my $dbh = DBI->connect($form->{dbconnect}, $form->{dbuser}, $form->{dbpasswd}) or $form->dberror;
+
+ $query = qq|SELECT tablename FROM pg_tables
+ WHERE tablename = 'defaults'
+ AND tableowner = '$form->{dbuser}'|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ if ($sth->fetchrow_array) {
+ push @dbsources, $db;
+ }
+ $sth->finish;
+ $dbh->disconnect;
+ next;
+ }
+ push @dbsources, $db;
+ }
+ }
+
+ if ($form->{dbdriver} eq 'Oracle') {
+ if ($form->{only_acc_db}) {
+ $query = qq|SELECT owner FROM dba_objects
+ WHERE object_name = 'DEFAULTS'
+ AND object_type = 'TABLE'|;
+ } else {
+ $query = qq|SELECT username FROM dba_users|;
+ }
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while (my ($db) = $sth->fetchrow_array) {
+ push @dbsources, $db;
+ }
+ }
+
+
+# JJR
+ if ($form->{dbdriver} eq 'DB2') {
+ if ($form->{only_acc_db}) {
+ $query = qq|SELECT tabschema FROM syscat.tables WHERE tabname = 'DEFAULTS'|;
+ } else {
+ $query = qq|SELECT DISTINCT schemaname FROM syscat.schemata WHERE definer != 'SYSIBM' AND schemaname != 'NULLID'|;
+ }
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while (my ($db) = $sth->fetchrow_array) {
+ push @dbsources, $db;
+ }
+ }
+# End JJR
+
+# the above is not used but leave it in for future reference
+# DS, Oct. 28, 2003
+
+
+ $sth->finish;
+ $dbh->disconnect;
+
+ return @dbsources;
+
+}
+
+
+sub dbcreate {
+ my ($self, $form) = @_;
+
+ my %dbcreate = ( 'Pg' => qq|CREATE DATABASE "$form->{db}"|,
+ 'Oracle' => qq|CREATE USER "$form->{db}" DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP IDENTIFIED BY "$form->{db}"|);
+
+ $dbcreate{Pg} .= " WITH ENCODING = '$form->{encoding}'" if $form->{encoding};
+
+ $form->{sid} = $form->{dbdefault};
+ &dbconnect_vars($form, $form->{dbdefault});
+ my $dbh = DBI->connect($form->{dbconnect}, $form->{dbuser}, $form->{dbpasswd}) or $form->dberror;
+ my $query = qq|$dbcreate{$form->{dbdriver}}|;
+ $dbh->do($query);
+
+ if ($form->{dbdriver} eq 'Oracle') {
+ $query = qq|GRANT CONNECT,RESOURCE TO "$form->{db}"|;
+ $dbh->do($query) || $form->dberror($query);
+ }
+ $dbh->disconnect;
+
+
+ # setup variables for the new database
+ if ($form->{dbdriver} eq 'Oracle') {
+ $form->{dbuser} = $form->{db};
+ $form->{dbpasswd} = $form->{db};
+ }
+
+
+ &dbconnect_vars($form, $form->{db});
+
+ $dbh = DBI->connect($form->{dbconnect}, $form->{dbuser}, $form->{dbpasswd}) or $form->dberror;
+
+ # create the tables
+ my $dbdriver = ($form->{dbdriver} =~ /Pg/) ? 'Pg' : $form->{dbdriver};
+
+ my $filename = qq|sql/${dbdriver}-tables.sql|;
+ $self->process_query($form, $dbh, $filename);
+
+ # create functions
+ $filename = qq|sql/${dbdriver}-functions.sql|;
+ $self->process_query($form, $dbh, $filename);
+
+ # load gifi
+ ($filename) = split /_/, $form->{chart};
+ $filename =~ s/_//;
+ $self->process_query($form, $dbh, "sql/${filename}-gifi.sql");
+
+ # load chart of accounts
+ $filename = qq|sql/$form->{chart}-chart.sql|;
+ $self->process_query($form, $dbh, $filename);
+
+ # create indices
+ $filename = qq|sql/${dbdriver}-indices.sql|;
+ $self->process_query($form, $dbh, $filename);
+
+ # create custom tables and functions
+ my $item;
+ foreach $item (qw(tables functions)) {
+ $filename = "sql/${dbdriver}-custom_${item}.sql";
+ if (-f "$filename") {
+ $self->process_query($form, $dbh, $filename);
+ }
+ }
+
+ $dbh->disconnect;
+
+}
+
+
+
+sub process_query {
+ my ($self, $form, $dbh, $filename) = @_;
+
+ return unless (-f $filename);
+
+ open(FH, "$filename") or $form->error("$filename : $!\n");
+ my $query = "";
+ my $loop = 0;
+ my $sth;
+
+
+ while (<FH>) {
+
+ if ($loop && /^--\s*end\s*(procedure|function|trigger)/i) {
+ $loop = 0;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+ $sth->finish;
+
+ $query = "";
+ next;
+ }
+
+ if ($loop || /^create *(or replace)? *(procedure|function|trigger)/i) {
+ $loop = 1;
+ next if /^(--.*|\s+)$/;
+
+ $query .= $_;
+ next;
+ }
+
+ # don't add comments or empty lines
+ next if /^(--.*|\s+)$/;
+
+ # anything else, add to query
+ $query .= $_;
+
+ if (/;\s*$/) {
+ # strip ;... Oracle doesn't like it
+ $query =~ s/;\s*$//;
+ $query =~ s/\\'/''/g;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+ $sth->finish;
+
+ $query = "";
+ }
+
+ }
+ close FH;
+
+}
+
+
+
+sub dbdelete {
+ my ($self, $form) = @_;
+
+ my %dbdelete = ( 'Pg' => qq|DROP DATABASE "$form->{db}"|,
+ 'Oracle' => qq|DROP USER $form->{db} CASCADE|
+ );
+
+ $form->{sid} = $form->{dbdefault};
+ &dbconnect_vars($form, $form->{dbdefault});
+ my $dbh = DBI->connect($form->{dbconnect}, $form->{dbuser}, $form->{dbpasswd}) or $form->dberror;
+ my $query = qq|$dbdelete{$form->{dbdriver}}|;
+ $dbh->do($query) || $form->dberror($query);
+
+ $dbh->disconnect;
+
+}
+
+
+
+sub dbsources_unused {
+ my ($self, $form, $memfile) = @_;
+
+ my @dbexcl = ();
+ my @dbsources = ();
+
+ $form->error("$memfile locked!") if (-f "${memfile}.LCK");
+
+ # open members file
+ open(FH, "$memfile") or $form->error("$memfile : $!");
+
+ while (<FH>) {
+ if (/^dbname=/) {
+ my ($null,$item) = split /=/;
+ push @dbexcl, $item;
+ }
+ }
+
+ close FH;
+
+ $form->{only_acc_db} = 1;
+ my @db = &dbsources("", $form);
+
+ push @dbexcl, $form->{dbdefault};
+
+ foreach $item (@db) {
+ unless (grep /$item$/, @dbexcl) {
+ push @dbsources, $item;
+ }
+ }
+
+ return @dbsources;
+
+}
+
+
+sub dbneedsupdate {
+ my ($self, $form) = @_;
+
+ my %dbsources = ();
+ my $query;
+
+ $form->{sid} = $form->{dbdefault};
+ &dbconnect_vars($form, $form->{dbdefault});
+
+ my $dbh = DBI->connect($form->{dbconnect}, $form->{dbuser}, $form->{dbpasswd}) or $form->dberror;
+
+ if ($form->{dbdriver} =~ /Pg/) {
+
+ $query = qq|SELECT d.datname FROM pg_database d, pg_user u
+ WHERE d.datdba = u.usesysid
+ AND u.usename = '$form->{dbuser}'|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while (my ($db) = $sth->fetchrow_array) {
+
+ next if ($db =~ /^template/);
+
+ &dbconnect_vars($form, $db);
+
+ my $dbh = DBI->connect($form->{dbconnect}, $form->{dbuser}, $form->{dbpasswd}) or $form->dberror;
+
+ $query = qq|SELECT tablename FROM pg_tables
+ WHERE tablename = 'defaults'|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ if ($sth->fetchrow_array) {
+ $query = qq|SELECT version FROM defaults|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute;
+
+ if (my ($version) = $sth->fetchrow_array) {
+ $dbsources{$db} = $version;
+ }
+ $sth->finish;
+ }
+ $sth->finish;
+ $dbh->disconnect;
+ }
+ $sth->finish;
+ }
+
+
+ if ($form->{dbdriver} eq 'Oracle') {
+ $query = qq|SELECT owner FROM dba_objects
+ WHERE object_name = 'DEFAULTS'
+ AND object_type = 'TABLE'|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while (my ($db) = $sth->fetchrow_array) {
+
+ $form->{dbuser} = $db;
+ &dbconnect_vars($form, $db);
+
+ my $dbh = DBI->connect($form->{dbconnect}, $form->{dbuser}, $form->{dbpasswd}) or $form->dberror;
+
+ $query = qq|SELECT version FROM defaults|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute;
+
+ if (my ($version) = $sth->fetchrow_array) {
+ $dbsources{$db} = $version;
+ }
+ $sth->finish;
+ $dbh->disconnect;
+ }
+ $sth->finish;
+ }
+
+
+# JJR
+ if ($form->{dbdriver} eq 'DB2') {
+ $query = qq|SELECT tabschema FROM syscat.tables WHERE tabname = 'DEFAULTS'|;
+
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ while (my ($db) = $sth->fetchrow_array) {
+
+ &dbconnect_vars($form, $db);
+
+ my $dbh = DBI->connect($form->{dbconnect}, $form->{dbuser}, $form->{dbpasswd}) or $form->dberror;
+
+ $query = qq|SELECT version FROM defaults|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute;
+
+ if (my ($version) = $sth->fetchrow_array) {
+ $dbsources{$db} = $version;
+ }
+ $sth->finish;
+ $dbh->disconnect;
+ }
+ $sth->finish;
+ }
+# End JJR
+
+# code for DB2 is not used, keep for future reference
+# DS, Oct. 28, 2003
+
+ $dbh->disconnect;
+
+ %dbsources;
+
+}
+
+
+sub dbupdate {
+ my ($self, $form) = @_;
+
+ $form->{sid} = $form->{dbdefault};
+
+ my @upgradescripts = ();
+ my $query;
+ my $rc = -2;
+
+ if ($form->{dbupdate}) {
+ # read update scripts into memory
+ opendir SQLDIR, "sql/." or $form->error($!);
+ @upgradescripts = sort script_version grep /$form->{dbdriver}-upgrade-.*?\.sql$/, readdir SQLDIR;
+ closedir SQLDIR;
+ }
+
+
+ foreach my $db (split / /, $form->{dbupdate}) {
+
+ next unless $form->{$db};
+
+ # strip db from dataset
+ $db =~ s/^db//;
+ &dbconnect_vars($form, $db);
+
+ my $dbh = DBI->connect($form->{dbconnect}, $form->{dbuser}, $form->{dbpasswd}) or $form->dberror;
+
+ # check version
+ $query = qq|SELECT version FROM defaults|;
+ my $sth = $dbh->prepare($query);
+ # no error check, let it fall through
+ $sth->execute;
+
+ my $version = $sth->fetchrow_array;
+ $sth->finish;
+
+ next unless $version;
+
+ $version = calc_version($version);
+ my $dbversion = calc_version($form->{dbversion});
+
+ foreach my $upgradescript (@upgradescripts) {
+ my $a = $upgradescript;
+ $a =~ s/(^$form->{dbdriver}-upgrade-|\.sql$)//g;
+
+ my ($mindb, $maxdb) = split /-/, $a;
+ $mindb = calc_version($mindb);
+ $maxdb = calc_version($maxdb);
+
+ next if ($version >= $maxdb);
+
+ # exit if there is no upgrade script or version == mindb
+ last if ($version < $mindb || $version >= $dbversion);
+
+ # apply upgrade
+ $self->process_query($form, $dbh, "sql/$upgradescript");
+
+ $version = $maxdb;
+
+ }
+
+ $rc = 0;
+ $dbh->disconnect;
+
+ }
+
+ $rc;
+
+}
+
+
+sub calc_version {
+
+ my @v = split /\./, $_[0];
+ my $version = 0;
+ my $i;
+
+ for ($i = 0; $i <= $#v; $i++) {
+ $version *= 1000;
+ $version += $v[$i];
+ }
+
+ return $version;
+
+}
+
+
+sub script_version {
+ my ($my_a, $my_b) = ($a, $b);
+
+ my ($a_from, $a_to, $b_from, $b_to);
+ my ($res_a, $res_b, $i);
+
+ $my_a =~ s/.*-upgrade-//;
+ $my_a =~ s/.sql$//;
+ $my_b =~ s/.*-upgrade-//;
+ $my_b =~ s/.sql$//;
+ ($a_from, $a_to) = split(/-/, $my_a);
+ ($b_from, $b_to) = split(/-/, $my_b);
+
+ $res_a = calc_version($a_from);
+ $res_b = calc_version($b_from);
+
+ if ($res_a == $res_b) {
+ $res_a = calc_version($a_to);
+ $res_b = calc_version($b_to);
+ }
+
+ return $res_a <=> $res_b;
+
+}
+
+
+sub create_config {
+ my ($self, $filename) = @_;
+
+
+ @config = &config_vars;
+
+ open(CONF, ">$filename") or $self->error("$filename : $!");
+
+ # create the config file
+ print CONF qq|# configuration file for $self->{login}
+
+\%myconfig = (
+|;
+
+ foreach $key (sort @config) {
+ $self->{$key} =~ s/\\/\\\\/g;
+ $self->{$key} =~ s/'/\\'/g;
+ print CONF qq| $key => '$self->{$key}',\n|;
+ }
+
+
+ print CONF qq|);\n\n|;
+
+ close CONF;
+
+}
+
+
+sub save_member {
+ my ($self, $memberfile, $userspath) = @_;
+
+ # format dbconnect and dboptions string
+ &dbconnect_vars($self, $self->{dbname});
+
+ $self->error("$memberfile locked!") if (-f "${memberfile}.LCK");
+ open(FH, ">${memberfile}.LCK") or $self->error("${memberfile}.LCK : $!");
+ close(FH);
+
+ if (! open(CONF, "+<$memberfile")) {
+ unlink "${memberfile}.LCK";
+ $self->error("$memberfile : $!");
+ }
+
+ @config = <CONF>;
+
+ seek(CONF, 0, 0);
+ truncate(CONF, 0);
+
+ while ($line = shift @config) {
+ last if ($line =~ /^\[$self->{login}\]/);
+ print CONF $line;
+ }
+
+ # remove everything up to next login or EOF
+ while ($line = shift @config) {
+ last if ($line =~ /^\[/);
+ }
+
+ # this one is either the next login or EOF
+ print CONF $line;
+
+ while ($line = shift @config) {
+ print CONF $line;
+ }
+
+ print CONF qq|[$self->{login}]\n|;
+
+ if ($self->{packpw}) {
+ $self->{dbpasswd} = pack 'u', $self->{dbpasswd};
+ chop $self->{dbpasswd};
+ }
+
+ if ($self->{password} ne $self->{old_password}) {
+ $self->{password} = crypt $self->{password}, substr($self->{login}, 0, 2) if $self->{password};
+ }
+
+ if ($self->{'root login'}) {
+ @config = qw(password);
+ } else {
+ @config = &config_vars;
+ }
+
+ # replace \r\n with \n
+ for (qw(address signature)) { $self->{$_} =~ s/\r?\n/\\n/g }
+
+ for (sort @config) { print CONF qq|$_=$self->{$_}\n| }
+
+ print CONF "\n";
+ close CONF;
+ unlink "${memberfile}.LCK";
+
+ # create conf file
+ if (! $self->{'root login'}) {
+ $self->create_config("$userspath/$self->{login}.conf");
+
+ $self->{dbpasswd} =~ s/\\'/'/g;
+ $self->{dbpasswd} =~ s/\\\\/\\/g;
+ $self->{dbpasswd} = unpack 'u', $self->{dbpasswd};
+
+ # check if login is in database
+ my $dbh = DBI->connect($self->{dbconnect}, $self->{dbuser}, $self->{dbpasswd}, {AutoCommit => 0}) or $self->error($DBI::errstr);
+
+ # add login to employee table if it does not exist
+ my $login = $self->{login};
+ $login =~ s/@.*//;
+ my $query = qq|SELECT id FROM employee WHERE login = '$login'|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute;
+
+ my ($id) = $sth->fetchrow_array;
+ $sth->finish;
+
+ if ($id) {
+ $query = qq|UPDATE employee SET
+ role = '$self->{role}',
+ email = '$self->{email}',
+ name = '$self->{name}'
+ WHERE login = '$login'|;
+
+ } else {
+ my ($employeenumber) = Form::update_defaults("", \%$self, "employeenumber", $dbh);
+ $query = qq|INSERT INTO employee (login, employeenumber, name, workphone,
+ role, email, sales)
+ VALUES ('$login', '$employeenumber', '$self->{name}',
+ '$self->{tel}', '$self->{role}', '$self->{email}', '1')|;
+ }
+
+ $dbh->do($query);
+ $dbh->commit;
+ $dbh->disconnect;
+
+ }
+
+}
+
+
+sub delete_login {
+ my ($self, $form) = @_;
+
+ my $dbh = DBI->connect($form->{dbconnect}, $form->{dbuser}, $form->{dbpasswd}, {AutoCommit} => 0) or $form->dberror;
+
+ my $login = $form->{login};
+ $login =~ s/@.*//;
+ my $query = qq|SELECT id FROM employee
+ WHERE login = '$login'|;
+ my $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+
+ my ($id) = $sth->fetchrow_array;
+ $sth->finish;
+
+ my $query = qq|UPDATE employee SET
+ login = NULL,
+ enddate = current_date
+ WHERE login = '$login'|;
+ $dbh->do($query);
+
+ $dbh->commit;
+ $dbh->disconnect;
+
+}
+
+
+sub config_vars {
+
+ my @conf = qw(acs address businessnumber company countrycode
+ currency dateformat dbconnect dbdriver dbhost dbname dboptions
+ dbpasswd dbport dbuser email fax menuwidth name numberformat
+ password printer role sid signature stylesheet tel
+ templates timeout vclimit);
+
+ @conf;
+
+}
+
+
+sub error {
+ my ($self, $msg) = @_;
+
+ if ($ENV{HTTP_USER_AGENT}) {
+ print qq|Content-Type: text/html
+
+<body bgcolor=ffffff>
+
+<h2><font color=red>Error!</font></h2>
+<p><b>$msg</b>|;
+
+ }
+
+ die "Error: $msg\n";
+
+}
+
+
+1;
+
diff --git a/VERSION b/VERSION
new file mode 100644
index 00000000..ee4c1b2e
--- /dev/null
+++ b/VERSION
@@ -0,0 +1 @@
+2.6.17
diff --git a/admin.pl b/admin.pl
new file mode 100755
index 00000000..b747d65b
--- /dev/null
+++ b/admin.pl
@@ -0,0 +1,129 @@
+#!/usr/bin/perl
+#
+######################################################################
+# LedgerSMB Accounting and ERP
+# Copyright (C) 2001
+#
+# Author: Dieter Simader
+# Email: dsimader@sql-ledger.org
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+# Contributors:
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#######################################################################
+#
+# this script sets up the terminal and runs the scripts
+# in bin/$terminal directory
+# admin.pl is linked to this script
+#
+#######################################################################
+
+
+# setup defaults, DO NOT CHANGE
+$userspath = "users";
+$spool = "spool";
+$templates = "templates";
+$memberfile = "users/members";
+$sendmail = "| /usr/sbin/sendmail -t";
+%printer = ( Printer => 'lpr' );
+########## end ###########################################
+
+
+$| = 1;
+
+eval { require "ledger-smb.conf"; };
+
+
+if ($ENV{CONTENT_LENGTH}) {
+ read(STDIN, $_, $ENV{CONTENT_LENGTH});
+}
+
+if ($ENV{QUERY_STRING}) {
+ $_ = $ENV{QUERY_STRING};
+}
+
+if ($ARGV[0]) {
+ $_ = $ARGV[0];
+}
+
+
+%form = split /[&=]/;
+
+# fix for apache 2.0 bug
+map { $form{$_} =~ s/\\$// } keys %form;
+
+# name of this script
+$0 =~ tr/\\/\//;
+$pos = rindex $0, '/';
+$script = substr($0, $pos + 1);
+
+
+if (-e "$userspath/nologin" && $script ne 'admin.pl') {
+ print "Content-Type: text/html\n\n" if $ENV{HTTP_USER_AGENT};
+ print "\nLogin disabled!\n";
+ exit;
+}
+
+
+if ($form{path}) {
+ $form{path} =~ s/%2f/\//gi;
+ $form{path} =~ s/\.\.\///g;
+
+ if ($form{path} !~ /^bin\//) {
+ print "Content-Type: text/html\n\n" if $ENV{HTTP_USER_AGENT};
+ print "\nInvalid path!\n";
+ exit;
+ }
+
+
+ $ARGV[0] = "$_&script=$script";
+ require "$form{path}/$script";
+} else {
+
+ if (!$form{terminal}) {
+ if ($ENV{HTTP_USER_AGENT}) {
+ # web browser
+ $form{terminal} = "lynx";
+ if ($ENV{HTTP_USER_AGENT} !~ /lynx/i) {
+ $form{terminal} = "mozilla";
+ }
+ } else {
+ if ($ENV{TERM} =~ /xterm/) {
+ $form{terminal} = "xterm";
+ }
+ if ($ENV{TERM} =~ /(console|linux|vt.*)/i) {
+ $form{terminal} = "console";
+ }
+ }
+ }
+
+
+ if ($form{terminal}) {
+
+ $ARGV[0] = "path=bin/$form{terminal}&script=$script";
+ map { $ARGV[0] .= "&${_}=$form{$_}" } keys %form;
+
+ require "bin/$form{terminal}/$script";
+
+ } else {
+
+ print "Content-Type: text/html\n\n" if $ENV{HTTP_USER_AGENT};
+ print qq|\nUnknown terminal\n|;
+ }
+
+}
+
+# end of main
+
diff --git a/am.pl b/am.pl
new file mode 100755
index 00000000..742968ca
--- /dev/null
+++ b/am.pl
@@ -0,0 +1,2 @@
+#!/usr/bin/perl
+eval { require "menu.pl"; };
diff --git a/ap.pl b/ap.pl
new file mode 100755
index 00000000..742968ca
--- /dev/null
+++ b/ap.pl
@@ -0,0 +1,2 @@
+#!/usr/bin/perl
+eval { require "menu.pl"; };
diff --git a/ar.pl b/ar.pl
new file mode 100755
index 00000000..742968ca
--- /dev/null
+++ b/ar.pl
@@ -0,0 +1,2 @@
+#!/usr/bin/perl
+eval { require "menu.pl"; };
diff --git a/bin/lynx/aa.pl b/bin/lynx/aa.pl
new file mode 100755
index 00000000..5fbb9c93
--- /dev/null
+++ b/bin/lynx/aa.pl
@@ -0,0 +1,1693 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2005
+#
+# Author: DWS Systems Inc.
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+# Contributors:
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#======================================================================
+#
+# AR / AP
+#
+#======================================================================
+
+# any custom scripts for this one
+if (-f "$form->{path}/custom_aa.pl") {
+ eval { require "$form->{path}/custom_aa.pl"; };
+}
+if (-f "$form->{path}/$form->{login}_aa.pl") {
+ eval { require "$form->{path}/$form->{login}_aa.pl"; };
+}
+
+
+1;
+# end of main
+
+
+# this is for our long dates
+# $locale->text('January')
+# $locale->text('February')
+# $locale->text('March')
+# $locale->text('April')
+# $locale->text('May ')
+# $locale->text('June')
+# $locale->text('July')
+# $locale->text('August')
+# $locale->text('September')
+# $locale->text('October')
+# $locale->text('November')
+# $locale->text('December')
+
+# this is for our short month
+# $locale->text('Jan')
+# $locale->text('Feb')
+# $locale->text('Mar')
+# $locale->text('Apr')
+# $locale->text('May')
+# $locale->text('Jun')
+# $locale->text('Jul')
+# $locale->text('Aug')
+# $locale->text('Sep')
+# $locale->text('Oct')
+# $locale->text('Nov')
+# $locale->text('Dec')
+
+
+sub add {
+
+ $form->{title} = "Add";
+ $form->{callback} = "$form->{script}?action=add&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}" unless $form->{callback};
+
+ &create_links;
+
+ $form->{focus} = "amount_1";
+ &display_form;
+
+}
+
+
+sub edit {
+
+ $form->{title} = "Edit";
+
+ &create_links;
+ &display_form;
+
+}
+
+
+sub display_form {
+
+ &form_header;
+ &form_footer;
+
+}
+
+
+sub create_links {
+
+ $form->create_links($form->{ARAP}, \%myconfig, $form->{vc});
+
+ $duedate = $form->{duedate};
+ $taxincluded = $form->{taxincluded};
+
+ $form->{formname} = "transaction";
+ $form->{format} = "postscript" if $myconfig{printer};
+ $form->{media} = $myconfig{printer};
+
+ $form->{selectformname} = qq|<option value="transaction">|.$locale->text('Transaction');
+
+ if ($latex) {
+ if ($form->{ARAP} eq 'AR') {
+ $form->{selectformname} .= qq|
+ <option value="receipt">|.$locale->text('Receipt');
+ } else {
+ $form->{selectformname} .= qq|
+ <option value="check">|.$locale->text('Check');
+ }
+ }
+
+ # currencies
+ @curr = split /:/, $form->{currencies};
+ $form->{defaultcurrency} = $curr[0];
+ chomp $form->{defaultcurrency};
+
+ for (@curr) { $form->{selectcurrency} .= "<option>$_\n" }
+
+ AA->get_name(\%myconfig, \%$form);
+
+ $form->{currency} =~ s/ //g;
+ $form->{duedate} = $duedate if $duedate;
+ $form->{taxincluded} = $taxincluded if $form->{id};
+
+ $form->{notes} = $form->{intnotes} if !$form->{id};
+
+ $form->{"old$form->{vc}"} = qq|$form->{$form->{vc}}--$form->{"$form->{vc}_id"}|;
+ $form->{oldtransdate} = $form->{transdate};
+
+ # customers/vendors
+ $form->{"select$form->{vc}"} = "";
+ if (@{ $form->{"all_$form->{vc}"} }) {
+ $form->{$form->{vc}} = qq|$form->{$form->{vc}}--$form->{"$form->{vc}_id"}|;
+ for (@{ $form->{"all_$form->{vc}"} }) { $form->{"select$form->{vc}"} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+ }
+
+ # departments
+ if (@{ $form->{all_department} }) {
+ $form->{selectdepartment} = "<option>\n";
+ $form->{department} = "$form->{department}--$form->{department_id}" if $form->{department_id};
+
+ for (@{ $form->{all_department} }) { $form->{selectdepartment} .= qq|<option value="$_->{description}--$_->{id}">$_->{description}\n| }
+ }
+
+ $form->{employee} = "$form->{employee}--$form->{employee_id}";
+ # sales staff
+ if (@{ $form->{all_employee} }) {
+ $form->{selectemployee} = "";
+ for (@{ $form->{all_employee} }) { $form->{selectemployee} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+ }
+
+ # projects
+ if (@{ $form->{all_project} }) {
+ $form->{selectprojectnumber} = "<option>\n";
+ for (@{ $form->{all_project} }) { $form->{selectprojectnumber} .= qq|<option value="$_->{projectnumber}--$_->{id}">$_->{projectnumber}\n| }
+ }
+
+ if (@{ $form->{all_language} }) {
+ $form->{selectlanguage} = "<option>\n";
+ for (@{ $form->{all_language} }) { $form->{selectlanguage} .= qq|<option value="$_->{code}">$_->{description}\n| }
+ }
+
+ # forex
+ $form->{forex} = $form->{exchangerate};
+ $exchangerate = ($form->{exchangerate}) ? $form->{exchangerate} : 1;
+
+ $netamount = 0;
+ $tax = 0;
+ $taxrate = 0;
+ $ml = ($form->{ARAP} eq 'AR') ? 1 : -1;
+
+ foreach $key (keys %{ $form->{"$form->{ARAP}_links"} }) {
+
+ $form->{"select$key"} = "";
+ foreach $ref (@{ $form->{"$form->{ARAP}_links"}{$key} }) {
+ if ($key eq "$form->{ARAP}_tax") {
+ $form->{"select$form->{ARAP}_tax_$ref->{accno}"} = "<option>$ref->{accno}--$ref->{description}\n";
+ next;
+ }
+ $form->{"select$key"} .= "<option>$ref->{accno}--$ref->{description}\n";
+ }
+
+ # if there is a value we have an old entry
+ for $i (1 .. scalar @{ $form->{acc_trans}{$key} }) {
+ if ($key eq "$form->{ARAP}_paid") {
+ $form->{"$form->{ARAP}_paid_$i"} = "$form->{acc_trans}{$key}->[$i-1]->{accno}--$form->{acc_trans}{$key}->[$i-1]->{description}";
+ $form->{"paid_$i"} = $form->{acc_trans}{$key}->[$i-1]->{amount} * -1 * $ml;
+ $form->{"datepaid_$i"} = $form->{acc_trans}{$key}->[$i-1]->{transdate};
+ $form->{"source_$i"} = $form->{acc_trans}{$key}->[$i-1]->{source};
+ $form->{"memo_$i"} = $form->{acc_trans}{$key}->[$i-1]->{memo};
+
+ $form->{"forex_$i"} = $form->{"exchangerate_$i"} = $form->{acc_trans}{$key}->[$i-1]->{exchangerate};
+
+ $form->{paidaccounts}++;
+ } else {
+
+ $akey = $key;
+ $akey =~ s/$form->{ARAP}_//;
+
+ if ($key eq "$form->{ARAP}_tax") {
+ $form->{"${key}_$form->{acc_trans}{$key}->[$i-1]->{accno}"} = "$form->{acc_trans}{$key}->[$i-1]->{accno}--$form->{acc_trans}{$key}->[$i-1]->{description}";
+ $form->{"${akey}_$form->{acc_trans}{$key}->[$i-1]->{accno}"} = $form->{acc_trans}{$key}->[$i-1]->{amount} * $ml;
+
+ $tax += $form->{"${akey}_$form->{acc_trans}{$key}->[$i-1]->{accno}"};
+ $taxrate += $form->{"$form->{acc_trans}{$key}->[$i-1]->{accno}_rate"};
+
+ } else {
+ $form->{"${akey}_$i"} = $form->{acc_trans}{$key}->[$i-1]->{amount} * $ml;
+
+ if ($akey eq 'amount') {
+ $form->{"description_$i"} = $form->{acc_trans}{$key}->[$i-1]->{memo};
+ $form->{rowcount}++;
+ $netamount += $form->{"${akey}_$i"};
+
+ $form->{"projectnumber_$i"} = "$form->{acc_trans}{$key}->[$i-1]->{projectnumber}--$form->{acc_trans}{$key}->[$i-1]->{project_id}" if $form->{acc_trans}{$key}->[$i-1]->{project_id};
+ } else {
+ $form->{invtotal} = $form->{acc_trans}{$key}->[$i-1]->{amount} * -1 * $ml;
+ }
+ $form->{"${key}_$i"} = "$form->{acc_trans}{$key}->[$i-1]->{accno}--$form->{acc_trans}{$key}->[$i-1]->{description}";
+ }
+ }
+ }
+ }
+
+ $form->{paidaccounts} = 1 if not defined $form->{paidaccounts};
+
+ if ($form->{taxincluded}) {
+ $diff = 0;
+ # add tax to individual amounts
+ for $i (1 .. $form->{rowcount}) {
+ if ($netamount) {
+ $amount = $form->{"amount_$i"} * (1 + $tax / $netamount);
+ $form->{"amount_$i"} = $form->round_amount($amount, 2);
+ }
+ }
+ }
+
+ $form->{invtotal} = $netamount + $tax;
+
+ # check if calculated is equal to stored
+ # taxincluded is terrible to calculate
+ # this works only if all taxes are checked
+
+ @taxaccounts = split / /, $form->{taxaccounts};
+
+ if ($form->{id}) {
+ if ($form->{taxincluded}) {
+
+ $ml = 1;
+
+ for (0 .. 1) {
+ $taxrate = 0;
+ $diff = 0;
+
+ for (@taxaccounts) { $taxrate += $form->{"${_}_rate"} if ($form->{"${_}_rate"} * $ml) > 0 }
+ $taxrate *= $ml;
+
+ foreach $item (@taxaccounts) {
+
+ if (($form->{"${item}_rate"} * $ml) > 0) {
+ if ($taxrate) {
+ $amount = $form->{invtotal} * $form->{"${item}_rate"} / (1 + $taxrate);
+ $tax = $form->round_amount($amount, 2);
+ $tax{$item} = $form->round_amount($amount - $diff, 2);
+ $diff = $tax{$item} - ($amount - $diff);
+
+ if ($tax) {
+ if ($form->{"tax_$item"} == $tax{$item}) {
+ $form->{"calctax_$item"} = 1;
+ }
+ }
+ }
+ }
+ }
+ $ml *= -1;
+ }
+
+ } else {
+ for (@taxaccounts) {
+ $tax = $form->round_amount($netamount * $form->{"${_}_rate"}, 2);
+ if ($tax) {
+ if ($form->{"tax_$_"} == $tax) {
+ $form->{"calctax_$_"} = 1;
+ }
+ }
+ }
+ }
+
+ } else {
+ for (@taxaccounts) { $form->{"calctax_$_"} = 1 }
+ }
+
+
+ $form->{rowcount}++ if ($form->{id} || !$form->{rowcount});
+
+ $form->{$form->{ARAP}} = $form->{"$form->{ARAP}_1"};
+ $form->{rowcount} = 1 unless $form->{"$form->{ARAP}_amount_1"};
+
+ $form->{locked} = ($form->{revtrans}) ? '1' : ($form->datetonum(\%myconfig, $form->{transdate}) <= $form->datetonum(\%myconfig, $form->{closedto}));
+
+ # readonly
+ if (! $form->{readonly}) {
+ $form->{readonly} = 1 if $myconfig{acs} =~ /$form->{ARAP}--Add Transaction/;
+ }
+
+}
+
+
+sub form_header {
+
+ $title = $form->{title};
+ $form->{title} = $locale->text("$title $form->{ARAP} Transaction");
+
+ $form->{taxincluded} = ($form->{taxincluded}) ? "checked" : "";
+
+# $locale->text('Add AR Transaction')
+# $locale->text('Edit AR Transaction')
+# $locale->text('Add AP Transaction')
+# $locale->text('Edit AP Transaction')
+
+ # set option selected
+ for ("$form->{ARAP}", "currency") {
+ $form->{"select$_"} =~ s/ selected//;
+ $form->{"select$_"} =~ s/<option>\Q$form->{$_}\E/<option selected>$form->{$_}/;
+ }
+
+ for ("$form->{vc}", "department", "employee", "formname") {
+ $form->{"select$_"} = $form->unescape($form->{"select$_"});
+ $form->{"select$_"} =~ s/ selected//;
+ $form->{"select$_"} =~ s/(<option value="\Q$form->{$_}\E")/$1 selected/;
+ }
+
+ $form->{selectprojectnumber} = $form->unescape($form->{selectprojectnumber});
+
+ # format amounts
+ $form->{exchangerate} = $form->format_amount(\%myconfig, $form->{exchangerate});
+
+ $exchangerate = qq|<tr>|;
+ $exchangerate .= qq|
+ <th align=right nowrap>|.$locale->text('Currency').qq|</th>
+ <td><select name=currency>$form->{selectcurrency}</select></td> | if $form->{defaultcurrency};
+ $exchangerate .= qq|
+ <input type=hidden name=selectcurrency value="$form->{selectcurrency}">
+ <input type=hidden name=defaultcurrency value=$form->{defaultcurrency}>
+|;
+
+ if ($form->{defaultcurrency} && $form->{currency} ne $form->{defaultcurrency}) {
+ if ($form->{forex}) {
+ $exchangerate .= qq|
+ <th align=right>|.$locale->text('Exchange Rate').qq|</th>
+ <td><input type=hidden name=exchangerate value=$form->{exchangerate}>$form->{exchangerate}</td>
+|;
+ } else {
+ $exchangerate .= qq|
+ <th align=right>|.$locale->text('Exchange Rate').qq|</th>
+ <td><input name=exchangerate size=10 value=$form->{exchangerate}></td>
+|;
+ }
+ }
+ $exchangerate .= qq|
+<input type=hidden name=forex value=$form->{forex}>
+</tr>
+|;
+
+ $taxincluded = "";
+ if ($form->{taxaccounts}) {
+ $taxincluded = qq|
+ <tr>
+ <td align=right><input name=taxincluded class=checkbox type=checkbox value=1 $form->{taxincluded}></td>
+ <th align=left nowrap>|.$locale->text('Tax Included').qq|</th>
+ </tr>
+|;
+ }
+
+
+ if (($rows = $form->numtextrows($form->{notes}, 50) - 1) < 2) {
+ $rows = 2;
+ }
+ $notes = qq|<textarea name=notes rows=$rows cols=50 wrap=soft>$form->{notes}</textarea>|;
+
+ $department = qq|
+ <tr>
+ <th align="right" nowrap>|.$locale->text('Department').qq|</th>
+ <td colspan=3><select name=department>$form->{selectdepartment}</select>
+ <input type=hidden name=selectdepartment value="|.$form->escape($form->{selectdepartment},1).qq|">
+ </td>
+ </tr>
+| if $form->{selectdepartment};
+
+
+ $n = ($form->{creditremaining} < 0) ? "0" : "1";
+
+ $name = ($form->{"select$form->{vc}"}) ? qq|<select name="$form->{vc}">$form->{"select$form->{vc}"}</select>| : qq|<input name="$form->{vc}" value="$form->{$form->{vc}}" size=35>|;
+
+ $employee = qq|
+ <input type=hidden name=employee value="$form->{employee}">
+|;
+
+ if ($form->{selectemployee}) {
+ $label = ($form->{ARAP} eq 'AR') ? $locale->text('Salesperson') : $locale->text('Employee');
+
+ $employee = qq|
+ <tr>
+ <th align=right nowrap>$label</th>
+ <td><select name=employee>$form->{selectemployee}</select></td>
+ <input type=hidden name=selectemployee value="|.$form->escape($form->{selectemployee},1).qq|">
+ </tr>
+|;
+ }
+
+ $focus = ($form->{focus}) ? $form->{focus} : "amount_$form->{rowcount}";
+
+ $form->header;
+
+ print qq|
+<body onload="document.forms[0].${focus}.focus()" />
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=type value="$form->{formname}">
+<input type=hidden name=title value="$title">
+
+|;
+
+ $form->hide_form(qw(id printed emailed sort closedto locked oldtransdate audittrail recurring checktax));
+
+ if ($form->{vc} eq 'customer') {
+ $label = $locale->text('Customer');
+ } else {
+ $label = $locale->text('Vendor');
+ }
+
+ $form->hide_form("old$form->{vc}", "$form->{vc}_id", "terms", "creditlimit", "creditremaining", "selectcurrency", "defaultcurrency", "select$form->{ARAP}_amount", "rowcount");
+
+ print qq|
+
+<table width=100%>
+ <tr class=listtop>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr valign=top>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align="right" nowrap>$label</th>
+ <td colspan=3>$name</td>
+ <input type=hidden name="select$form->{vc}" value="|.$form->escape($form->{"select$form->{vc}"},1).qq|">
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan=3>
+ <table width=100%>
+ <tr>
+ <th align=left nowrap>|.$locale->text('Credit Limit').qq|</th>
+ <td>$form->{creditlimit}</td>
+ <th align=left nowrap>|.$locale->text('Remaining').qq|</th>
+ <td class="plus$n">|.$form->format_amount(\%myconfig, $form->{creditremaining}, 0, "0").qq|</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ $exchangerate
+ $department
+ $taxincluded
+ </table>
+ </td>
+ <td align=right>
+ <table>
+ $employee
+ <tr>
+ <th align=right nowrap>|.$locale->text('Invoice Number').qq|</th>
+ <td><input name=invnumber size=20 value="$form->{invnumber}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Order Number').qq|</th>
+ <td><input name=ordnumber size=20 value="$form->{ordnumber}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Invoice Date').qq|</th>
+ <td><input name=transdate size=11 title="($myconfig{'dateformat'})" value=$form->{transdate}></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Due Date').qq|</th>
+ <td><input name=duedate size=11 title="$myconfig{'dateformat'}" value=$form->{duedate}></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('PO Number').qq|</th>
+ <td><input name=ponumber size=20 value="$form->{ponumber}"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <input type=hidden name=selectprojectnumber value="|.$form->escape($form->{selectprojectnumber},1).qq|">
+ <tr>
+ <td>
+ <table>
+|;
+
+ $project = qq|
+ <th>|.$locale->text('Project').qq|</th>
+| if $form->{selectprojectnumber};
+
+ print qq|
+ <tr>
+ <th>|.$locale->text('Amount').qq|</th>
+ <th></th>
+ <th>|.$locale->text('Account').qq|</th>
+ <th>|.$locale->text('Description').qq|</th>
+ $project
+ </tr>
+|;
+
+ for $i (1 .. $form->{rowcount}) {
+
+ $selectamount = $form->{"select$form->{ARAP}_amount"};
+ $selectamount =~ s/option>\Q$form->{"$form->{ARAP}_amount_$i"}\E/option selected>$form->{"$form->{ARAP}_amount_$i"}/;
+
+ $selectprojectnumber = $form->{selectprojectnumber};
+ $selectprojectnumber =~ s/(<option value="\Q$form->{"projectnumber_$i"}\E")/$1 selected/;
+
+ # format amounts
+ $form->{"amount_$i"} = $form->format_amount(\%myconfig, $form->{"amount_$i"}, 2);
+
+ $project = qq|
+ <td align=right><select name="projectnumber_$i">$selectprojectnumber</select></td>
+| if $form->{selectprojectnumber};
+
+ if (($rows = $form->numtextrows($form->{"description_$i"}, 40)) > 1) {
+ $description = qq|<td><textarea name="description_$i" rows=$rows cols=40>$form->{"description_$i"}</textarea></td>|;
+ } else {
+ $description = qq|<td><input name="description_$i" size=40 value="$form->{"description_$i"}"></td>|;
+ }
+
+ print qq|
+ <tr valign=top>
+ <td><input name="amount_$i" size=10 value="$form->{"amount_$i"}" accesskey="$i"></td>
+ <td></td>
+ <td><select name="$form->{ARAP}_amount_$i">$selectamount</select></td>
+ $description
+ $project
+ </tr>
+|;
+ }
+
+ foreach $item (split / /, $form->{taxaccounts}) {
+
+ $form->{"calctax_$item"} = ($form->{"calctax_$item"}) ? "checked" : "";
+
+ $form->{"tax_$item"} = $form->format_amount(\%myconfig, $form->{"tax_$item"}, 2);
+
+ print qq|
+ <tr>
+ <td><input name="tax_$item" size=10 value=$form->{"tax_$item"}></td>
+ <td align=right><input name="calctax_$item" class=checkbox type=checkbox value=1 $form->{"calctax_$item"}></td>
+ <td><select name="$form->{ARAP}_tax_$item">$form->{"select$form->{ARAP}_tax_$item"}</select></td>
+ </tr>
+|;
+
+ $form->hide_form("${item}_rate", "${item}_description", "${item}_taxnumber", "select$form->{ARAP}_tax_$item");
+ }
+
+ $form->{invtotal} = $form->format_amount(\%myconfig, $form->{invtotal}, 2);
+
+ $form->hide_form("oldinvtotal", "oldtotalpaid", "taxaccounts", "select$form->{ARAP}");
+
+ print qq|
+ <tr>
+ <th align=left>$form->{invtotal}</th>
+ <td></td>
+ <td><select name=$form->{ARAP}>$form->{"select$form->{ARAP}"}</select></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Notes').qq|</th>
+ <td></td>
+ <td colspan=3>$notes</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr class=listheading>
+ <th class=listheading>|.$locale->text('Payments').qq|</th>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+|;
+
+ if ($form->{currency} eq $form->{defaultcurrency}) {
+ @column_index = qw(datepaid source memo paid ARAP_paid);
+ } else {
+ @column_index = qw(datepaid source memo paid exchangerate ARAP_paid);
+ }
+
+ $column_data{datepaid} = "<th>".$locale->text('Date')."</th>";
+ $column_data{paid} = "<th>".$locale->text('Amount')."</th>";
+ $column_data{exchangerate} = "<th>".$locale->text('Exch')."</th>";
+ $column_data{ARAP_paid} = "<th>".$locale->text('Account')."</th>";
+ $column_data{source} = "<th>".$locale->text('Source')."</th>";
+ $column_data{memo} = "<th>".$locale->text('Memo')."</th>";
+
+ print "
+ <tr>
+";
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print "
+ </tr>
+";
+
+
+ $form->{paidaccounts}++ if ($form->{"paid_$form->{paidaccounts}"});
+ for $i (1 .. $form->{paidaccounts}) {
+
+ $form->hide_form("cleared_$i");
+
+ print "
+ <tr>
+";
+
+ $form->{"select$form->{ARAP}_paid_$i"} = $form->{"select$form->{ARAP}_paid"};
+ $form->{"select$form->{ARAP}_paid_$i"} =~ s/option>\Q$form->{"$form->{ARAP}_paid_$i"}\E/option selected>$form->{"$form->{ARAP}_paid_$i"}/;
+
+ # format amounts
+ $form->{"paid_$i"} = $form->format_amount(\%myconfig, $form->{"paid_$i"}, 2);
+ $form->{"exchangerate_$i"} = $form->format_amount(\%myconfig, $form->{"exchangerate_$i"});
+
+ $exchangerate = qq|&nbsp;|;
+ if ($form->{currency} ne $form->{defaultcurrency}) {
+ if ($form->{"forex_$i"}) {
+ $form->hide_form("exchangerate_$i");
+ $exchangerate = qq|$form->{"exchangerate_$i"}|;
+ } else {
+ $exchangerate = qq|<input name="exchangerate_$i" size=10 value=$form->{"exchangerate_$i"}>|;
+ }
+ }
+
+ $form->hide_form("forex_$i");
+
+ $column_data{paid} = qq|<td align=center><input name="paid_$i" size=11 value=$form->{"paid_$i"}></td>|;
+ $column_data{ARAP_paid} = qq|<td align=center><select name="$form->{ARAP}_paid_$i">$form->{"select$form->{ARAP}_paid_$i"}</select></td>|;
+ $column_data{exchangerate} = qq|<td align=center>$exchangerate</td>|;
+ $column_data{datepaid} = qq|<td align=center><input name="datepaid_$i" size=11 value=$form->{"datepaid_$i"}></td>|;
+ $column_data{source} = qq|<td align=center><input name="source_$i" size=11 value="$form->{"source_$i"}"></td>|;
+ $column_data{memo} = qq|<td align=center><input name="memo_$i" size=11 value="$form->{"memo_$i"}"></td>|;
+
+ for (@column_index) { print qq|$column_data{$_}\n| }
+
+ print "
+ </tr>
+";
+ }
+
+ $form->hide_form("paidaccounts", "select$form->{ARAP}_paid");
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+}
+
+
+sub form_footer {
+
+ $form->hide_form(qw(callback path login sessionid));
+
+ $transdate = $form->datetonum(\%myconfig, $form->{transdate});
+ $closedto = $form->datetonum(\%myconfig, $form->{closedto});
+
+# type=submit $locale->text('Update')
+# type=submit $locale->text('Print')
+# type=submit $locale->text('Post')
+# type=submit $locale->text('Print and Post')
+# type=submit $locale->text('Schedule')
+# type=submit $locale->text('Ship to')
+# type=submit $locale->text('Post as new')
+# type=submit $locale->text('Print and Post as new')
+# type=submit $locale->text('Delete')
+
+ if (! $form->{readonly}) {
+
+ &print_options;
+
+ print "<br>";
+
+ %button = ('Update' => { ndx => 1, key => 'U', value => $locale->text('Update') },
+ 'Print' => { ndx => 2, key => 'P', value => $locale->text('Print') },
+ 'Post' => { ndx => 3, key => 'O', value => $locale->text('Post') },
+ 'Print and Post' => { ndx => 4, key => 'R', value => $locale->text('Print and Post') },
+ 'Post as new' => { ndx => 5, key => 'N', value => $locale->text('Post as new') },
+ 'Print and Post as new' => { ndx => 6, key => 'W', value => $locale->text('Print and Post as new') },
+ 'Schedule' => { ndx => 7, key => 'H', value => $locale->text('Schedule') },
+ 'Delete' => { ndx => 8, key => 'D', value => $locale->text('Delete') },
+ );
+
+ if ($form->{id}) {
+
+ if ($form->{locked} || $transdate <= $closedto) {
+ for ("Post", "Print and Post", "Delete") { delete $button{$_} }
+ }
+
+ if (!$latex) {
+ for ("Print and Post", "Print and Post as new") { delete $button{$_} }
+ }
+
+ } else {
+
+ for ("Post as new", "Print and Post as new", "Delete") { delete $button{$_} }
+ delete $button{"Print and Post"} if ! $latex;
+
+ if ($transdate <= $closedto) {
+ for ("Post", "Print and Post") { delete $button{$_} }
+ }
+ }
+
+ for (sort { $button{$a}->{ndx} <=> $button{$b}->{ndx} } keys %button) { $form->print_button(\%button, $_) }
+
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub update {
+ my $display = shift;
+
+ if (!$display) {
+
+ $form->{invtotal} = 0;
+
+ $form->{exchangerate} = $form->parse_amount(\%myconfig, $form->{exchangerate});
+
+ @flds = ("amount", "$form->{ARAP}_amount", "projectnumber", "description");
+ $count = 0;
+ @a = ();
+ for $i (1 .. $form->{rowcount}) {
+ $form->{"amount_$i"} = $form->parse_amount(\%myconfig, $form->{"amount_$i"});
+ if ($form->{"amount_$i"}) {
+ push @a, {};
+ $j = $#a;
+
+ for (@flds) { $a[$j]->{$_} = $form->{"${_}_$i"} }
+ $count++;
+ }
+ }
+
+ $form->redo_rows(\@flds, \@a, $count, $form->{rowcount});
+ $form->{rowcount} = $count + 1;
+
+ for (1 .. $form->{rowcount}) { $form->{invtotal} += $form->{"amount_$_"} }
+
+ $form->{exchangerate} = $exchangerate if ($form->{forex} = ($exchangerate = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{transdate}, ($form->{ARAP} eq 'AR') ? 'buy' : 'sell')));
+
+ if ($newname = &check_name($form->{vc})) {
+ $form->{notes} = $form->{intnotes} unless $form->{id};
+ &rebuild_vc($form->{vc}, $form->{ARAP}, $form->{transdate});
+ }
+ if ($form->{transdate} ne $form->{oldtransdate}) {
+ $form->{duedate} = $form->current_date(\%myconfig, $form->{transdate}, $form->{terms} * 1);
+ $form->{oldtransdate} = $form->{transdate};
+ $newproj = &rebuild_vc($form->{vc}, $form->{ARAP}, $form->{transdate}) if ! $newname;
+ $form->all_projects(\%myconfig, undef, $form->{transdate}) if ! $newproj;
+
+ $form->{selectemployee} = "";
+ if (@{ $form->{all_employee} }) {
+ for (@{ $form->{all_employee} }) { $form->{selectemployee} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+ }
+ }
+ }
+
+ # recalculate taxes
+ @taxaccounts = split / /, $form->{taxaccounts};
+
+ for (@taxaccounts) { $form->{"tax_$_"} = $form->parse_amount(\%myconfig, $form->{"tax_$_"}) }
+
+ if ($form->{taxincluded}) {
+
+ $ml = 1;
+
+ for (0 .. 1) {
+ $taxrate = 0;
+ $diff = 0;
+
+ for (@taxaccounts) {
+ if (($form->{"${_}_rate"} * $ml) > 0) {
+ if ($form->{"calctax_$_"}) {
+ $taxrate += $form->{"${_}_rate"};
+ } else {
+ if ($form->{checktax}) {
+ if ($form->{"tax_$_"}) {
+ $taxrate += $form->{"${_}_rate"};
+ }
+ }
+ }
+ }
+ }
+
+ $taxrate *= $ml;
+
+ foreach $item (@taxaccounts) {
+ if (($form->{"${item}_rate"} * $ml) > 0) {
+
+ if ($taxrate) {
+ $a = $form->{invtotal} * $form->{"${item}_rate"} / (1 + $taxrate);
+ $b = $form->round_amount($a, 2);
+ $tax = $form->round_amount($a - $diff, 2);
+ $diff = $b - ($a - $diff);
+ }
+ $form->{"tax_$item"} = $tax if $form->{"calctax_$item"};
+
+ $form->{"select$form->{ARAP}_tax_$item"} = qq|<option>$item--$form->{"${item}_description"}|;
+ $totaltax += $form->{"tax_$item"};
+ }
+ }
+ $ml *= -1;
+ }
+ $totaltax += $form->round_amount($diff, 2);
+
+ $form->{checktax} = 1;
+
+ } else {
+ foreach $item (@taxaccounts) {
+ $form->{"calctax_$item"} = 1 if $form->{calctax};
+
+ if ($form->{"calctax_$item"}) {
+ $form->{"tax_$item"} = $form->round_amount($form->{invtotal} * $form->{"${item}_rate"}, 2);
+ }
+ $form->{"select$form->{ARAP}_tax_$item"} = qq|<option>$item--$form->{"${item}_description"}|;
+ $totaltax += $form->{"tax_$item"};
+ }
+ }
+
+ $form->{invtotal} = ($form->{taxincluded}) ? $form->{invtotal} : $form->{invtotal} + $totaltax;
+
+ $j = 1;
+ for $i (1 .. $form->{paidaccounts}) {
+ if ($form->{"paid_$i"}) {
+ for (qw(datepaid source memo cleared)) { $form->{"${_}_$j"} = $form->{"${_}_$i"} }
+ for (qw(paid exchangerate)) { $form->{"${_}_$j"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) }
+
+ $totalpaid += $form->{"paid_$j"};
+
+ $form->{"exchangerate_$j"} = $exchangerate if ($form->{"forex_$j"} = ($exchangerate = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{"datepaid_$j"}, ($form->{ARAP} eq 'AR') ? 'buy' : 'sell')));
+
+ if ($j++ != $i) {
+ for (qw(datepaid source memo paid exchangerate forex cleared)) { delete $form->{"${_}_$i"} }
+ }
+ } else {
+ for (qw(datepaid source memo paid exchangerate forex cleared)) { delete $form->{"${_}_$i"} }
+ }
+ }
+ $form->{paidaccounts} = $j;
+
+ $form->{creditremaining} -= ($form->{invtotal} - $totalpaid + $form->{oldtotalpaid} - $form->{oldinvtotal});
+ $form->{oldinvtotal} = $form->{invtotal};
+ $form->{oldtotalpaid} = $totalpaid;
+
+ &display_form;
+
+}
+
+
+sub post {
+
+ $label = ($form->{vc} eq 'customer') ? $locale->text('Customer missing!') : $locale->text('Vendor missing!');
+
+ # check if there is an invoice number, invoice and due date
+ $form->isblank("transdate", $locale->text('Invoice Date missing!'));
+ $form->isblank("duedate", $locale->text('Due Date missing!'));
+ $form->isblank($form->{vc}, $label);
+
+ $closedto = $form->datetonum(\%myconfig, $form->{closedto});
+ $transdate = $form->datetonum(\%myconfig, $form->{transdate});
+
+ $form->error($locale->text('Cannot post transaction for a closed period!')) if ($transdate <= $closedto);
+
+ $form->isblank("exchangerate", $locale->text('Exchange rate missing!')) if ($form->{currency} ne $form->{defaultcurrency});
+
+ for $i (1 .. $form->{paidaccounts}) {
+ if ($form->{"paid_$i"}) {
+ $datepaid = $form->datetonum(\%myconfig, $form->{"datepaid_$i"});
+
+ $form->isblank("datepaid_$i", $locale->text('Payment date missing!'));
+
+ $form->error($locale->text('Cannot post payment for a closed period!')) if ($datepaid <= $closedto);
+
+ if ($form->{currency} ne $form->{defaultcurrency}) {
+ $form->{"exchangerate_$i"} = $form->{exchangerate} if ($transdate == $datepaid);
+ $form->isblank("exchangerate_$i", $locale->text('Exchange rate for payment missing!'));
+ }
+ }
+ }
+
+ # if oldname ne name redo form
+ ($name) = split /--/, $form->{$form->{vc}};
+ if ($form->{"old$form->{vc}"} ne qq|$name--$form->{"$form->{vc}_id"}|) {
+ &update;
+ exit;
+ }
+
+ if (! $form->{repost}) {
+ if ($form->{id}) {
+ &repost;
+ exit;
+ }
+ }
+
+ if (AA->post_transaction(\%myconfig, \%$form)) {
+ $form->redirect($locale->text('Transaction posted!'));
+ } else {
+ $form->error($locale->text('Cannot post transaction!'));
+ }
+
+}
+
+
+sub delete {
+
+ $form->{title} = $locale->text('Confirm!');
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+|;
+
+ $form->{action} = "yes";
+ $form->hide_form;
+
+ print qq|
+<h2 class=confirm>$form->{title}</h2>
+
+<h4>|.$locale->text('Are you sure you want to delete Transaction').qq| $form->{invnumber}</h4>
+
+<input name=action class=submit type=submit value="|.$locale->text('Yes').qq|">
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+
+sub yes {
+
+ if (AA->delete_transaction(\%myconfig, \%$form, $spool)) {
+ $form->redirect($locale->text('Transaction deleted!'));
+ } else {
+ $form->error($locale->text('Cannot delete transaction!'));
+ }
+
+}
+
+
+sub search {
+
+ $form->create_links($form->{ARAP}, \%myconfig, $form->{vc});
+
+ $form->{"select$form->{ARAP}"} = "<option>\n";
+ for (@{ $form->{"$form->{ARAP}_links"}{$form->{ARAP}} }) { $form->{"select$form->{ARAP}"} .= "<option>$_->{accno}--$_->{description}\n" }
+
+ if (@{ $form->{"all_$form->{vc}"} }) {
+ $selectname = "";
+ for (@{ $form->{"all_$form->{vc}"} }) { $selectname .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+ $selectname = qq|<select name="$form->{vc}"><option>\n$selectname</select>|;
+ } else {
+ $selectname = qq|<input name=$form->{vc} size=35>|;
+ }
+
+ # departments
+ if (@{ $form->{all_department} }) {
+ $form->{selectdepartment} = "<option>\n";
+
+ for (@{ $form->{all_department} }) { $form->{selectdepartment} .= qq|<option value="$_->{description}--$_->{id}">$_->{description}\n| }
+
+ $l_department = qq|<input name="l_department" class=checkbox type=checkbox value=Y> |.$locale->text('Department');
+
+ $department = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Department').qq|</th>
+ <td colspan=3><select name=department>$form->{selectdepartment}</select></td>
+ </tr>
+|;
+ }
+
+ if (@{ $form->{all_employee} }) {
+ $form->{selectemployee} = "<option>\n";
+ for (@{ $form->{all_employee} }) { $form->{selectemployee} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+
+ $employeelabel = ($form->{ARAP} eq 'AR') ? $locale->text('Salesperson') : $locale->text('Employee');
+
+ $employee = qq|
+ <tr>
+ <th align=right nowrap>$employeelabel</th>
+ <td colspan=3><select name=employee>$form->{selectemployee}</select></td>
+ </tr>
+|;
+
+ $l_employee = qq|<input name="l_employee" class=checkbox type=checkbox value=Y> $employeelabel|;
+
+ $l_manager = qq|<input name="l_manager" class=checkbox type=checkbox value=Y> |.$locale->text('Manager');
+ }
+
+
+ $form->{title} = ($form->{ARAP} eq 'AR') ? $locale->text('AR Transactions') : $locale->text('AP Transactions');
+
+ $invnumber = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Invoice Number').qq|</th>
+ <td colspan=3><input name=invnumber size=20></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Order Number').qq|</th>
+ <td colspan=3><input name=ordnumber size=20></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('PO Number').qq|</th>
+ <td colspan=3><input name=ponumber size=20></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Source').qq|</th>
+ <td colspan=3><input name=source size=40></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Description').qq|</th>
+ <td colspan=3><input name=description size=40></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Notes').qq|</th>
+ <td colspan=3><input name=notes size=40></td>
+ </tr>
+|;
+
+ $openclosed = qq|
+ <tr>
+ <td nowrap><input name=open class=checkbox type=checkbox value=Y checked> |.$locale->text('Open').qq|</td>
+ <td nowrap><input name=closed class=checkbox type=checkbox value=Y> |.$locale->text('Closed').qq|</td>
+ </tr>
+|;
+
+ $summary = qq|
+ <tr>
+ <td><input name=summary type=radio class=radio value=1 checked> |.$locale->text('Summary').qq|</td>
+ <td><input name=summary type=radio class=radio value=0> |.$locale->text('Detail').qq|
+ </td>
+ </tr>
+|;
+
+
+ if ($form->{outstanding}) {
+ $form->{title} = ($form->{ARAP} eq 'AR') ? $locale->text('AR Outstanding') : $locale->text('AP Outstanding');
+ $invnumber = "";
+ $openclosed = "";
+ $summary = "";
+ }
+
+ if (@{ $form->{all_years} }) {
+ # accounting years
+ $form->{selectaccountingyear} = "<option>\n";
+ for (@{ $form->{all_years} }) { $form->{selectaccountingyear} .= qq|<option>$_\n| }
+ $form->{selectaccountingmonth} = "<option>\n";
+ for (sort keys %{ $form->{all_month} }) { $form->{selectaccountingmonth} .= qq|<option value=$_>|.$locale->text($form->{all_month}{$_}).qq|\n| }
+
+ $selectfrom = qq|
+ <tr>
+ <th align=right>|.$locale->text('Period').qq|</th>
+ <td colspan=3>
+ <select name=month>$form->{selectaccountingmonth}</select>
+ <select name=year>$form->{selectaccountingyear}</select>
+ <input name=interval class=radio type=radio value=0 checked>&nbsp;|.$locale->text('Current').qq|
+ <input name=interval class=radio type=radio value=1>&nbsp;|.$locale->text('Month').qq|
+ <input name=interval class=radio type=radio value=3>&nbsp;|.$locale->text('Quarter').qq|
+ <input name=interval class=radio type=radio value=12>&nbsp;|.$locale->text('Year').qq|
+ </td>
+ </tr>
+|;
+ }
+
+
+ $name = $locale->text('Customer');
+ $l_name = qq|<input name="l_name" class=checkbox type=checkbox value=Y checked> $name|;
+ $l_till = qq|<input name="l_till" class=checkbox type=checkbox value=Y> |.$locale->text('Till');
+
+ if ($form->{vc} eq 'vendor') {
+ $name = $locale->text('Vendor');
+ $l_till = "";
+ $l_name = qq|<input name="l_name" class=checkbox type=checkbox value=Y checked> $name|;
+ }
+
+ @a = ();
+ push @a, qq|<input name="l_runningnumber" class=checkbox type=checkbox value=Y> |.$locale->text('No.');
+ push @a, qq|<input name="l_id" class=checkbox type=checkbox value=Y> |.$locale->text('ID');
+ push @a, qq|<input name="l_invnumber" class=checkbox type=checkbox value=Y checked> |.$locale->text('Invoice Number');
+ push @a, qq|<input name="l_ordnumber" class=checkbox type=checkbox value=Y> |.$locale->text('Order Number');
+ push @a, qq|<input name="l_ponumber" class=checkbox type=checkbox value=Y> |.$locale->text('PO Number');
+ push @a, qq|<input name="l_transdate" class=checkbox type=checkbox value=Y checked> |.$locale->text('Invoice Date');
+ push @a, $l_name;
+ push @a, $l_employee if $l_employee;
+ push @a, $l_manager if $l_employee;
+ push @a, $l_department if $l_department;
+ push @a, qq|<input name="l_netamount" class=checkbox type=checkbox value=Y> |.$locale->text('Amount');
+ push @a, qq|<input name="l_tax" class=checkbox type=checkbox value=Y> |.$locale->text('Tax');
+ push @a, qq|<input name="l_amount" class=checkbox type=checkbox value=Y checked> |.$locale->text('Total');
+ push @a, qq|<input name="l_curr" class=checkbox type=checkbox value=Y> |.$locale->text('Currency');
+ push @a, qq|<input name="l_datepaid" class=checkbox type=checkbox value=Y> |.$locale->text('Date Paid');
+ push @a, qq|<input name="l_paid" class=checkbox type=checkbox value=Y checked> |.$locale->text('Paid');
+ push @a, qq|<input name="l_duedate" class=checkbox type=checkbox value=Y> |.$locale->text('Due Date');
+ push @a, qq|<input name="l_due" class=checkbox type=checkbox value=Y> |.$locale->text('Amount Due');
+ push @a, qq|<input name="l_notes" class=checkbox type=checkbox value=Y> |.$locale->text('Notes');
+ push @a, $l_till if $l_till;
+ push @a, qq|<input name="l_shippingpoint" class=checkbox type=checkbox value=Y> |.$locale->text('Shipping Point');
+ push @a, qq|<input name="l_shipvia" class=checkbox type=checkbox value=Y> |.$locale->text('Ship via');
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr><th class=listtop>$form->{title}</th></tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right>|.$locale->text('Account').qq|</th>
+ <td colspan=3><select name=$form->{ARAP}>$form->{"select$form->{ARAP}"}</select></td>
+ </tr>
+ <tr>
+ <th align=right>$name</th>
+ <td colspan=3>$selectname</td>
+ </tr>
+ $employee
+ $department
+ $invnumber
+ <tr>
+ <th align=right>|.$locale->text('Ship via').qq|</th>
+ <td colspan=3><input name=shipvia size=40></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('From').qq|</th>
+ <td><input name=transdatefrom size=11 title="$myconfig{dateformat}"></td>
+ <th align=right>|.$locale->text('To').qq|</th>
+ <td><input name=transdateto size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+ $selectfrom
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Include in Report').qq|</th>
+ <td>
+ <table width=100%>
+ $openclosed
+ $summary
+|;
+
+ $form->{sort} = "transdate";
+ $form->hide_form(qw(title outstanding sort));
+
+
+ while (@a) {
+ for (1 .. 5) {
+ print qq|<td nowrap>|. shift @a;
+ print qq|</td>\n|;
+ }
+ print qq|</tr>\n|;
+ }
+
+ print qq|
+ <tr>
+ <td nowrap><input name="l_subtotal" class=checkbox type=checkbox value=Y> |.$locale->text('Subtotal').qq|</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+<input type=hidden name=action value=continue>
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">|;
+
+ $form->hide_form(qw(nextsub path login sessionid));
+
+ print qq|
+</form>
+|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+</body>
+</html>
+|;
+
+}
+
+
+sub transactions {
+
+ if ($form->{$form->{vc}}) {
+ $form->{$form->{vc}} = $form->unescape($form->{$form->{vc}});
+ ($form->{$form->{vc}}, $form->{"$form->{vc}_id"}) = split(/--/, $form->{$form->{vc}});
+ }
+
+ AA->transactions(\%myconfig, \%$form);
+
+ $href = "$form->{script}?action=transactions";
+ for (qw(direction oldsort till outstanding path login sessionid summary)) { $href .= qq|&$_=$form->{$_}| }
+ $href .= "&title=".$form->escape($form->{title});
+
+ $form->sort_order();
+
+ $callback = "$form->{script}?action=transactions";
+ for (qw(direction oldsort till outstanding path login sessionid summary)) { $callback .= qq|&$_=$form->{$_}| }
+ $callback .= "&title=".$form->escape($form->{title},1);
+
+ if ($form->{$form->{ARAP}}) {
+ $callback .= "&$form->{ARAP}=".$form->escape($form->{$form->{ARAP}},1);
+ $href .= "&$form->{ARAP}=".$form->escape($form->{$form->{ARAP}});
+ $form->{$form->{ARAP}} =~ s/--/ /;
+ $option = $locale->text('Account')." : $form->{$form->{ARAP}}";
+ }
+
+ if ($form->{$form->{vc}}) {
+ $callback .= "&$form->{vc}=".$form->escape($form->{$form->{vc}},1).qq|--$form->{"$form->{vc}_id"}|;
+ $href .= "&$form->{vc}=".$form->escape($form->{$form->{vc}}).qq|--$form->{"$form->{vc}_id"}|;
+ $option .= "\n<br>" if ($option);
+ $name = ($form->{vc} eq 'customer') ? $locale->text('Customer') : $locale->text('Vendor');
+ $option .= "$name : $form->{$form->{vc}}";
+ }
+ if ($form->{department}) {
+ $callback .= "&department=".$form->escape($form->{department},1);
+ $href .= "&department=".$form->escape($form->{department});
+ ($department) = split /--/, $form->{department};
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Department')." : $department";
+ }
+ if ($form->{employee}) {
+ $callback .= "&employee=".$form->escape($form->{employee},1);
+ $href .= "&employee=".$form->escape($form->{employee});
+ ($employee) = split /--/, $form->{employee};
+ $option .= "\n<br>" if ($option);
+ if ($form->{ARAP} eq 'AR') {
+ $option .= $locale->text('Salesperson');
+ } else {
+ $option .= $locale->text('Employee');
+ }
+ $option .= " : $employee";
+ }
+
+ if ($form->{invnumber}) {
+ $callback .= "&invnumber=".$form->escape($form->{invnumber},1);
+ $href .= "&invnumber=".$form->escape($form->{invnumber});
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Invoice Number')." : $form->{invnumber}";
+ }
+ if ($form->{ordnumber}) {
+ $callback .= "&ordnumber=".$form->escape($form->{ordnumber},1);
+ $href .= "&ordnumber=".$form->escape($form->{ordnumber});
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Order Number')." : $form->{ordnumber}";
+ }
+ if ($form->{ponumber}) {
+ $callback .= "&ponumber=".$form->escape($form->{ponumber},1);
+ $href .= "&ponumber=".$form->escape($form->{ponumber});
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('PO Number')." : $form->{ponumber}";
+ }
+ if ($form->{source}) {
+ $callback .= "&source=".$form->escape($form->{source},1);
+ $href .= "&source=".$form->escape($form->{source});
+ $option .= "\n<br>" if $option;
+ $option .= $locale->text('Source')." : $form->{source}";
+ }
+ if ($form->{description}) {
+ $callback .= "&description=".$form->escape($form->{description},1);
+ $href .= "&description=".$form->escape($form->{description});
+ $option .= "\n<br>" if $option;
+ $option .= $locale->text('Description')." : $form->{description}";
+ }
+ if ($form->{notes}) {
+ $callback .= "&notes=".$form->escape($form->{notes},1);
+ $href .= "&notes=".$form->escape($form->{notes});
+ $option .= "\n<br>" if $option;
+ $option .= $locale->text('Notes')." : $form->{notes}";
+ }
+ if ($form->{shipvia}) {
+ $callback .= "&shipvia=".$form->escape($form->{shipvia},1);
+ $href .= "&shipvia=".$form->escape($form->{shipvia});
+ $option .= "\n<br>" if $option;
+ $option .= $locale->text('Ship via')." : $form->{shipvia}";
+ }
+ if ($form->{transdatefrom}) {
+ $callback .= "&transdatefrom=$form->{transdatefrom}";
+ $href .= "&transdatefrom=$form->{transdatefrom}";
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('From')."&nbsp;".$locale->date(\%myconfig, $form->{transdatefrom}, 1);
+ }
+ if ($form->{transdateto}) {
+ $callback .= "&transdateto=$form->{transdateto}";
+ $href .= "&transdateto=$form->{transdateto}";
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('To')."&nbsp;".$locale->date(\%myconfig, $form->{transdateto}, 1);
+ }
+ if ($form->{open}) {
+ $callback .= "&open=$form->{open}";
+ $href .= "&open=$form->{open}";
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Open');
+ }
+ if ($form->{closed}) {
+ $callback .= "&closed=$form->{closed}";
+ $href .= "&closed=$form->{closed}";
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Closed');
+ }
+
+ @columns = $form->sort_columns(qw(transdate id invnumber ordnumber ponumber name netamount tax amount paid due curr datepaid duedate notes till employee manager shippingpoint shipvia department));
+ pop @columns if $form->{department};
+ unshift @columns, "runningnumber";
+
+ foreach $item (@columns) {
+ if ($form->{"l_$item"} eq "Y") {
+ push @column_index, $item;
+
+ if ($form->{l_curr} && $item =~ /(amount|tax|paid|due)/) {
+ push @column_index, "fx_$item";
+ }
+
+ # add column to href and callback
+ $callback .= "&l_$item=Y";
+ $href .= "&l_$item=Y";
+ }
+ }
+
+ if (!$form->{summary}) {
+ foreach $item (qw(source debit credit accno description projectnumber)) {
+ push @column_index, $item;
+ }
+ }
+
+ if ($form->{l_subtotal} eq 'Y') {
+ $callback .= "&l_subtotal=Y";
+ $href .= "&l_subtotal=Y";
+ }
+
+ $employee = ($form->{ARAP} eq 'AR') ? $locale->text('Salesperson') : $locale->text('Employee');
+ $name = ($form->{vc} eq 'customer') ? $locale->text('Customer') : $locale->text('Vendor');
+
+ $column_header{runningnumber} = qq|<th class=listheading>&nbsp;</th>|;
+ $column_header{id} = "<th><a class=listheading href=$href&sort=id>".$locale->text('ID')."</a></th>";
+ $column_header{transdate} = "<th><a class=listheading href=$href&sort=transdate>".$locale->text('Date')."</a></th>";
+ $column_header{duedate} = "<th><a class=listheading href=$href&sort=duedate>".$locale->text('Due Date')."</a></th>";
+ $column_header{invnumber} = "<th><a class=listheading href=$href&sort=invnumber>".$locale->text('Invoice')."</a></th>";
+ $column_header{ordnumber} = "<th><a class=listheading href=$href&sort=ordnumber>".$locale->text('Order')."</a></th>";
+ $column_header{ponumber} = "<th><a class=listheading href=$href&sort=ponumber>".$locale->text('PO Number')."</a></th>";
+ $column_header{name} = "<th><a class=listheading href=$href&sort=name>$name</a></th>";
+ $column_header{netamount} = "<th class=listheading>" . $locale->text('Amount') . "</th>";
+ $column_header{tax} = "<th class=listheading>" . $locale->text('Tax') . "</th>";
+ $column_header{amount} = "<th class=listheading>" . $locale->text('Total') . "</th>";
+ $column_header{paid} = "<th class=listheading>" . $locale->text('Paid') . "</th>";
+ $column_header{datepaid} = "<th><a class=listheading href=$href&sort=datepaid>" . $locale->text('Date Paid') . "</a></th>";
+ $column_header{due} = "<th class=listheading>" . $locale->text('Amount Due') . "</th>";
+ $column_header{notes} = "<th class=listheading>".$locale->text('Notes')."</th>";
+ $column_header{employee} = "<th><a class=listheading href=$href&sort=employee>$employee</th>";
+ $column_header{manager} = "<th><a class=listheading href=$href&sort=manager>".$locale->text('Manager')."</th>";
+ $column_header{till} = "<th class=listheading><a class=listheading href=$href&sort=till>".$locale->text('Till')."</th>";
+
+ $column_header{shippingpoint} = "<th><a class=listheading href=$href&sort=shippingpoint>" . $locale->text('Shipping Point') . "</a></th>";
+ $column_header{shipvia} = "<th><a class=listheading href=$href&sort=shipvia>" . $locale->text('Ship via') . "</a></th>";
+
+ $column_header{curr} = "<th><a class=listheading href=$href&sort=curr>" . $locale->text('Curr') . "</a></th>";
+ for (qw(amount tax netamount paid due)) { $column_header{"fx_$_"} = "<th>&nbsp;</th>" }
+
+ $column_header{department} = "<th><a class=listheading href=$href&sort=department>" . $locale->text('Department') . "</a></th>";
+
+ $column_header{accno} = "<th><a class=listheading href=$href&sort=accno>" . $locale->text('Account') . "</a></th>";
+ $column_header{source} = "<th><a class=listheading href=$href&sort=source>" . $locale->text('Source') . "</a></th>";
+ $column_header{debit} = "<th class=listheading>" . $locale->text('Debit') . "</th>";
+ $column_header{credit} = "<th class=listheading>" . $locale->text('Credit') . "</th>";
+ $column_header{projectnumber} = "<th><a class=listheading href=$href&sort=projectnumber>" . $locale->text('Project') . "</a></th>";
+ $column_header{description} = "<th><a class=listheading href=$href&sort=linedescription>" . $locale->text('Description') . "</a></th>";
+
+ $form->{title} = ($form->{title}) ? $form->{title} : $locale->text('AR Transactions');
+
+ $form->header;
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$option</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "\n$column_header{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+
+ # add sort and escape callback, this one we use for the add sub
+ $form->{callback} = $callback .= "&sort=$form->{sort}";
+
+ # escape callback for href
+ $callback = $form->escape($callback);
+
+ # flip direction
+ $direction = ($form->{direction} eq 'ASC') ? "ASC" : "DESC";
+ $href =~ s/&direction=(\w+)&/&direction=$direction&/;
+
+ if (@{ $form->{transactions} }) {
+ $sameitem = $form->{transactions}->[0]->{$form->{sort}};
+ }
+
+ # sums and tax on reports by Antonio Gallardo
+ #
+ $i = 0;
+ foreach $ref (@{ $form->{transactions} }) {
+
+ $i++;
+
+ if ($form->{l_subtotal} eq 'Y') {
+ if ($sameitem ne $ref->{$form->{sort}}) {
+ &subtotal;
+ $sameitem = $ref->{$form->{sort}};
+ }
+ }
+
+ if ($form->{l_curr}) {
+ for (qw(netamount amount paid)) { $ref->{"fx_$_"} = $ref->{$_}/$ref->{exchangerate} }
+
+ for (qw(netamount amount paid)) { $column_data{"fx_$_"} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{"fx_$_"}, 2, "&nbsp;")."</td>" }
+
+ $column_data{fx_tax} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{fx_amount} - $ref->{fx_netamount}, 2, "&nbsp;")."</td>";
+ $column_data{fx_due} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{fx_amount} - $ref->{fx_paid}, 2, "&nbsp;")."</td>";
+
+ $subtotalfxnetamount += $ref->{fx_netamount};
+ $subtotalfxamount += $ref->{fx_amount};
+ $subtotalfxpaid += $ref->{fx_paid};
+
+ $totalfxnetamount += $ref->{fx_netamount};
+ $totalfxamount += $ref->{fx_amount};
+ $totalfxpaid += $ref->{fx_paid};
+
+ }
+
+ $column_data{runningnumber} = "<td align=right>$i</td>";
+
+ for (qw(netamount amount paid debit credit)) { $column_data{$_} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{$_}, 2, "&nbsp;")."</td>" }
+
+ $column_data{tax} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{amount} - $ref->{netamount}, 2, "&nbsp;")."</td>";
+ $column_data{due} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{amount} - $ref->{paid}, 2, "&nbsp;")."</td>";
+
+
+ $subtotalnetamount += $ref->{netamount};
+ $subtotalamount += $ref->{amount};
+ $subtotalpaid += $ref->{paid};
+ $subtotaldebit += $ref->{debit};
+ $subtotalcredit += $ref->{credit};
+
+ $totalnetamount += $ref->{netamount};
+ $totalamount += $ref->{amount};
+ $totalpaid += $ref->{paid};
+ $totaldebit += $ref->{debit};
+ $totalcredit += $ref->{credit};
+
+ $module = ($ref->{invoice}) ? ($form->{ARAP} eq 'AR') ? "is.pl" : "ir.pl" : $form->{script};
+ $module = ($ref->{till}) ? "ps.pl" : $module;
+
+ $column_data{invnumber} = "<td><a href=$module?action=edit&id=$ref->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{invnumber}&nbsp;</a></td>";
+
+ for (qw(notes description)) { $ref->{$_} =~ s/\r?\n/<br>/g }
+ for (qw(transdate datepaid duedate department ordnumber ponumber notes shippingpoint shipvia employee manager till source description projectnumber)) { $column_data{$_} = "<td>$ref->{$_}&nbsp;</td>" }
+ for (qw(id curr)) { $column_data{$_} = "<td>$ref->{$_}</td>" }
+
+ $column_data{accno} = qq|<td><a href=ca.pl?path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&action=list_transactions&accounttype=standard&accno=$ref->{accno}&fromdate=$form->{transdatefrom}&todate=$form->{transdateto}&sort=transdate&l_subtotal=$form->{l_subtotal}&prevreport=$callback>$ref->{accno}</a></td>|;
+
+ $column_data{name} = qq|<td><a href=ct.pl?path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&action=edit&id=$ref->{"$form->{vc}_id"}&db=$form->{vc}&callback=$callback>$ref->{name}</a></td>|;
+
+ if ($ref->{id} != $sameid) {
+ $j++; $j %= 2;
+ }
+
+ print "
+ <tr class=listrow$j>
+";
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ $sameid = $ref->{id};
+
+
+ }
+
+ if ($form->{l_subtotal} eq 'Y') {
+ &subtotal;
+ $sameitem = $ref->{$form->{sort}};
+ }
+
+ # print totals
+ print qq|
+ <tr class=listtotal>
+|;
+
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $column_data{netamount} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totalnetamount, 2, "&nbsp;")."</th>";
+ $column_data{tax} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totalamount - $totalnetamount, 2, "&nbsp;")."</th>";
+ $column_data{amount} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totalamount, 2, "&nbsp;")."</th>";
+ $column_data{paid} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totalpaid, 2, "&nbsp;")."</th>";
+ $column_data{due} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totalamount - $totalpaid, 2, "&nbsp;")."</th>";
+ $column_data{debit} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totaldebit, 2, "&nbsp;")."</th>";
+ $column_data{credit} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totalcredit, 2, "&nbsp;")."</th>";
+
+ if ($form->{l_curr} && $form->{sort} eq 'curr' && $form->{l_subtotal}) {
+ $column_data{fx_netamount} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totalfxnetamount, 2, "&nbsp;")."</th>";
+ $column_data{fx_tax} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totalfxamount - $totalfxnetamount, 2, "&nbsp;")."</th>";
+ $column_data{fx_amount} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totalfxamount, 2, "&nbsp;")."</th>";
+ $column_data{fx_paid} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totalfxpaid, 2, "&nbsp;")."</th>";
+ $column_data{fx_due} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totalfxamount - $totalfxpaid, 2, "&nbsp;")."</th>";
+ }
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ if ($myconfig{acs} !~ /$form->{ARAP}--$form->{ARAP}/) {
+ $i = 1;
+ if ($form->{ARAP} eq 'AR') {
+ $button{'AR--Add Transaction'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('AR Transaction').qq|"> |;
+ $button{'AR--Add Transaction'}{order} = $i++;
+ $button{'AR--Sales Invoice'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Sales Invoice.').qq|"> |;
+ $button{'AR--Sales Invoice'}{order} = $i++;
+ } else {
+ $button{'AP--Add Transaction'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('AP Transaction').qq|"> |;
+ $button{'AP--Add Transaction'}{order} = $i++;
+ $button{'AP--Vendor Invoice'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Vendor Invoice.').qq|"> |;
+ $button{'AP--Vendor Invoice'}{order} = $i++;
+ }
+
+ foreach $item (split /;/, $myconfig{acs}) {
+ delete $button{$item};
+ }
+ }
+
+ print qq|
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+<form method=post action=$form->{script}>
+|;
+
+ $form->hide_form("callback", "path", "login", "sessionid", "$form->{vc}", "$form->{vc}_id");
+
+ if (! $form->{till}) {
+ foreach $item (sort { $a->{order} <=> $b->{order} } %button) {
+ print $item->{code};
+ }
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub subtotal {
+
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $column_data{tax} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotalamount - $subtotalnetamount, 2, "&nbsp;")."</th>";
+ $column_data{amount} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotalamount, 2, "&nbsp;")."</th>";
+ $column_data{paid} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotalpaid, 2, "&nbsp;")."</th>";
+ $column_data{due} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotalamount - $subtotalpaid, 2, "&nbsp;")."</th>";
+ $column_data{debit} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotaldebit, 2, "&nbsp;")."</th>";
+ $column_data{credit} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotalcredit, 2, "&nbsp;")."</th>";
+
+ if ($form->{l_curr} && $form->{sort} eq 'curr' && $form->{l_subtotal}) {
+ $column_data{fx_tax} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotalfxamount - $subtotalfxnetamount, 2, "&nbsp;")."</th>";
+ $column_data{fx_amount} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotalfxamount, 2, "&nbsp;")."</th>";
+ $column_data{fx_paid} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotalfxpaid, 2, "&nbsp;")."</th>";
+ $column_data{fx_due} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotalfxmount - $subtotalfxpaid, 2, "&nbsp;")."</th>";
+ }
+
+ $subtotalnetamount = 0;
+ $subtotalamount = 0;
+ $subtotalpaid = 0;
+ $subtotaldebit = 0;
+ $subtotalcredit = 0;
+
+ $subtotalfxnetamount = 0;
+ $subtotalfxamount = 0;
+ $subtotalfxpaid = 0;
+
+ print "<tr class=listsubtotal>";
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+print "
+</tr>
+";
+
+}
+
+
+
diff --git a/bin/lynx/admin.pl b/bin/lynx/admin.pl
new file mode 100755
index 00000000..ac422b8f
--- /dev/null
+++ b/bin/lynx/admin.pl
@@ -0,0 +1,1612 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2002
+#
+# Author: DWS Systems Inc.
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#======================================================================
+#
+# setup module
+# add/edit/delete users
+#
+#======================================================================
+
+$menufile = "menu.ini";
+
+use SL::Form;
+use SL::User;
+
+
+$form = new Form;
+
+$locale = new Locale $language, "admin";
+$form->{charset} = $locale->{charset};
+
+eval { require DBI; };
+$form->error($locale->text('DBI not installed!')) if ($@);
+
+$form->{stylesheet} = "sql-ledger.css";
+$form->{favicon} = "favicon.ico";
+$form->{timeout} = 600;
+
+require "$form->{path}/pw.pl";
+
+# customization
+if (-f "$form->{path}/custom_$form->{script}") {
+ eval { require "$form->{path}/custom_$form->{script}"; };
+ $form->error($@) if ($@);
+}
+
+
+if ($form->{action}) {
+
+ &check_password unless $form->{action} eq 'logout';
+
+ &{ $locale->findsub($form->{action}) };
+
+} else {
+
+ # if there are no drivers bail out
+ $form->error($locale->text('No Database Drivers available!')) unless (User->dbdrivers);
+
+ # create memberfile
+ if (! -f $memberfile) {
+ open(FH, ">$memberfile") or $form->error("$memberfile : $!");
+ print FH qq|# LedgerSMB Small Medium Business Accounting members
+
+[root login]
+password=
+
+|;
+ close FH;
+ }
+
+ &adminlogin;
+
+}
+
+1;
+# end
+
+
+sub adminlogin {
+
+ $form->{title} = qq|LedgerSMB $form->{version} |.$locale->text('Administration');
+
+ $form->header;
+
+ print qq|
+<script language="JavaScript" type="text/javascript">
+<!--
+function sf(){
+ document.admin.password.focus();
+}
+// End -->
+</script>
+
+<body class=admin onload="sf()">
+
+<div align=center>
+
+<a href="http://sourceforge.net/projects/ledger-smb/"><img src=ledger-smb.png border=0></a>
+<h1 class=login>|.$locale->text('Version').qq| $form->{version}<p>|.$locale->text('Administration').qq|</h1>
+
+<form method=post action="$form->{script}" name=admin>
+
+<table>
+ <tr>
+ <th>|.$locale->text('Password').qq|</th>
+ <td><input type=password name=password></td>
+ <td><input type=submit class=submit name=action value="|.$locale->text('Login').qq|"></td>
+ </tr>
+<input type=hidden name=action value=login>
+<input type=hidden name=path value=$form->{path}>
+</table>
+
+</form>
+
+<a href=http://sourceforge.net/projects/ledger-smb/>LedgerSMB |.$locale->text('website').qq|</a>
+
+</div>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub login {
+
+ &list_users;
+
+}
+
+
+sub logout {
+
+ $form->{callback} = "$form->{script}?path=$form->{path}&endsession=1";
+ $form->redirect($locale->text('You are logged out'));
+
+}
+
+
+sub add_user {
+
+ $form->{title} = "LedgerSMB ".$locale->text('Accounting')." ".$locale->text('Administration')." / ".$locale->text('Add User');
+
+ $form->{Oracle_sid} = $sid;
+ $form->{Oracle_dbport} = '1521';
+ $form->{Oracle_dbhost} = `hostname`;
+
+ if (-f "css/sql-ledger.css") {
+ $myconfig->{stylesheet} = "sql-ledger.css";
+ }
+ $myconfig->{vclimit} = 1000;
+ $myconfig->{menuwidth} = 155;
+ $myconfig->{timeout} = 3600;
+
+ &form_header;
+ &form_footer;
+
+}
+
+
+
+sub edit {
+
+ $form->{title} = "LedgerSMB ".$locale->text('Accounting')." ".$locale->text('Administration')." / ".$locale->text('Edit User');
+ $form->{edit} = 1;
+
+ &form_header;
+ &form_footer;
+
+}
+
+
+sub form_footer {
+
+ if ($form->{edit}) {
+ $delete = qq|<input type=submit class=submit name=action value="|.$locale->text('Delete').qq|">
+<input type=hidden name=edit value=1>|;
+ }
+
+ print qq|
+
+<input name=callback type=hidden value="$form->{script}?action=list_users&path=$form->{path}&sessionid=$form->{sessionid}">
+
+<input type=hidden name=path value=$form->{path}>
+<input type=hidden name=sessionid value=$form->{sessionid}>
+
+<input type=submit class=submit name=action value="|.$locale->text('Save').qq|">
+$delete
+
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub list_users {
+
+ open(FH, "$memberfile") or $form->error("$memberfile : $!");
+
+ $nologin = qq|
+<input type=submit class=submit name=action value="|.$locale->text('Lock System').qq|">|;
+
+ if (-e "$userspath/nologin") {
+ $nologin = qq|
+<input type=submit class=submit name=action value="|.$locale->text('Unlock System').qq|">|;
+ }
+
+
+ while (<FH>) {
+ chop;
+
+ if (/^\[.*\]/) {
+ $login = $_;
+ $login =~ s/(\[|\])//g;
+ }
+
+ if (/^(name=|company=|templates=|dbuser=|dbdriver=|dbname=|dbhost=)/) {
+ chop ($var = $&);
+ ($null, $member{$login}{$var}) = split /=/, $_, 2;
+ }
+ }
+
+ close(FH);
+
+# type=submit $locale->text('Pg Database Administration')
+# type=submit $locale->text('PgPP Database Administration')
+# type=submit $locale->text('Oracle Database Administration')
+
+ foreach $item (User->dbdrivers) {
+ $dbdrivers .= qq|<input name=action type=submit class=submit value="|.$locale->text("$item Database Administration").qq|">|;
+ }
+
+
+ $column_header{login} = qq|<th>|.$locale->text('Login').qq|</th>|;
+ $column_header{name} = qq|<th>|.$locale->text('Name').qq|</th>|;
+ $column_header{company} = qq|<th>|.$locale->text('Company').qq|</th>|;
+ $column_header{dbdriver} = qq|<th>|.$locale->text('Driver').qq|</th>|;
+ $column_header{dbhost} = qq|<th>|.$locale->text('Host').qq|</th>|;
+ $column_header{dataset} = qq|<th>|.$locale->text('Dataset').qq|</th>|;
+ $column_header{templates} = qq|<th>|.$locale->text('Templates').qq|</th>|;
+
+ @column_index = qw(login name company dbdriver dbhost dataset templates);
+
+ $form->{title} = "LedgerSMB ".$locale->text('Accounting')." ".$locale->text('Administration');
+
+ $form->{login} = "root login";
+ $form->header;
+
+ print qq|
+<body class=admin>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr>
+ <tr class=listheading>
+ <th>$form->{title}</th>
+ </tr>
+ <tr size=5></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>|;
+
+ for (@column_index) { print "$column_header{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+foreach $key (sort keys %member) {
+ $href = "$script?action=edit&login=$key&path=$form->{path}&sessionid=$form->{sessionid}";
+ $href =~ s/ /%20/g;
+
+ $member{$key}{templates} =~ s/^$templates\///;
+ $member{$key}{dbhost} = $locale->text('localhost') unless $member{$key}{dbhost};
+ $member{$key}{dbname} = $member{$key}{dbuser} if ($member{$key}{dbdriver} eq 'Oracle');
+
+ $column_data{login} = qq|<td><a href=$href>$key</a></td>|;
+ $column_data{name} = qq|<td>$member{$key}{name}</td>|;
+ $column_data{company} = qq|<td>$member{$key}{company}</td>|;
+ $column_data{dbdriver} = qq|<td>$member{$key}{dbdriver}</td>|;
+ $column_data{dbhost} = qq|<td>$member{$key}{dbhost}</td>|;
+ $column_data{dataset} = qq|<td>$member{$key}{dbname}</td>|;
+ $column_data{templates} = qq|<td>$member{$key}{templates}</td>|;
+
+ $i++; $i %= 2;
+ print qq|
+ <tr class=listrow$i>|;
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>|;
+}
+
+
+print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<input type=hidden name=path value=$form->{path}>
+<input type=hidden name=sessionid value=$form->{sessionid}>
+
+<br><input type=submit class=submit name=action value="|.$locale->text('Add User').qq|">
+<input type=submit class=submit name=action value="|.$locale->text('Change Admin Password').qq|">
+
+$dbdrivers
+$nologin
+
+<input type=submit class=submit name=action value="|.$locale->text('Logout').qq|">
+
+</form>
+
+|.$locale->text('Click on login name to edit!').qq|
+<br>
+|.$locale->text('To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.').qq|
+
+</body>
+</html>
+|;
+
+}
+
+
+
+sub form_header {
+
+ # if there is a login, get user
+ if ($form->{login}) {
+ # get user
+ $myconfig = new User "$memberfile", "$form->{login}";
+
+ for (qw(company address signature)) { $myconfig->{$_} = $form->quote($myconfig->{$_}) }
+ for (qw(address signature)) { $myconfig->{$_} =~ s/\\n/\n/g }
+
+ # strip basedir from templates directory
+ $myconfig->{templates} =~ s/^$templates\///;
+
+ $myconfig->{dbpasswd} = unpack 'u', $myconfig->{dbpasswd};
+ }
+
+ foreach $item (qw(mm-dd-yy mm/dd/yy dd-mm-yy dd/mm/yy dd.mm.yy yyyy-mm-dd)) {
+ $dateformat .= ($item eq $myconfig->{dateformat}) ? "<option selected>$item\n" : "<option>$item\n";
+ }
+
+ foreach $item (qw(1,000.00 1000.00 1.000,00 1000,00 1'000.00)) {
+ $numberformat .= ($item eq $myconfig->{numberformat}) ? "<option selected>$item\n" : "<option>$item\n";
+ }
+
+
+ %countrycodes = User->country_codes;
+ $countrycodes = "";
+
+ foreach $key (sort { $countrycodes{$a} cmp $countrycodes{$b} } keys %countrycodes) {
+ $countrycodes .= ($myconfig->{countrycode} eq $key) ? "<option selected value=$key>$countrycodes{$key}" : "<option value=$key>$countrycodes{$key}";
+ }
+ $countrycodes = qq|<option value="">English\n$countrycodes|;
+
+ # is there a templates basedir
+ if (! -d "$templates") {
+ $form->error($locale->text('Directory').": $templates ".$locale->text('does not exist'));
+ }
+
+ opendir TEMPLATEDIR, "$templates/." or $form->error("$templates : $!");
+ @all = grep !/^\.\.?$/, readdir TEMPLATEDIR;
+ closedir TEMPLATEDIR;
+
+ @allhtml = sort grep /\.html/, @all;
+
+ @alldir = ();
+ for (@all) {
+ if (-d "$templates/$_") {
+ push @alldir, $_;
+ }
+ }
+
+ @allhtml = reverse grep !/Default/, @allhtml;
+ push @allhtml, 'Default';
+ @allhtml = reverse @allhtml;
+
+ foreach $item (sort @alldir) {
+ if ($item eq $myconfig->{templates}) {
+ $usetemplates .= qq|<option selected>$item\n|;
+ } else {
+ $usetemplates .= qq|<option>$item\n|;
+ }
+ }
+
+ $lastitem = $allhtml[0];
+ $lastitem =~ s/-.*//g;
+ $mastertemplates = qq|<option>$lastitem\n|;
+ foreach $item (@allhtml) {
+ $item =~ s/-.*//g;
+
+ if ($item ne $lastitem) {
+ $mastertemplates .= qq|<option>$item\n|;
+ $lastitem = $item;
+ }
+ }
+
+ opendir CSS, "css/.";
+ @all = grep /.*\.css$/, readdir CSS;
+ closedir CSS;
+
+ foreach $item (@all) {
+ if ($item eq $myconfig->{stylesheet}) {
+ $selectstylesheet .= qq|<option selected>$item\n|;
+ } else {
+ $selectstylesheet .= qq|<option>$item\n|;
+ }
+ }
+ $selectstylesheet .= "<option>\n";
+
+ if (%printer && $latex) {
+ $selectprinter = "<option>\n";
+ foreach $item (sort keys %printer) {
+ if ($myconfig->{printer} eq $item) {
+ $selectprinter .= qq|<option value="$item" selected>$item\n|;
+ } else {
+ $selectprinter .= qq|<option value="$item">$item\n|;
+ }
+ }
+
+ $printer = qq|
+ <tr>
+ <th align=right>|.$locale->text('Printer').qq|</th>
+ <td><select name=printer>$selectprinter</select></td>
+ </tr>
+|;
+
+ }
+
+ $user = $form->{login};
+ $form->{login} = "root login";
+ $form->header;
+ $form->{login} = $user;
+
+ print qq|
+<body class=admin>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr class=listheading><th colspan=2>$form->{title}</th></tr>
+ <tr size=5></tr>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=right>|.$locale->text('Login').qq|</th>
+ <td><input name=login value="$myconfig->{login}"></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Password').qq|</th>
+ <td><input type=password name=new_password size=8 value=$myconfig->{password}></td>
+ <input type=hidden name=old_password value=$myconfig->{password}>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Name').qq|</th>
+ <td><input name=name size=15 value="$myconfig->{name}"></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('E-mail').qq|</th>
+ <td><input name=email size=30 value="$myconfig->{email}"></td>
+ </tr>
+ <tr valign=top>
+ <th align=right>|.$locale->text('Signature').qq|</th>
+ <td><textarea name=signature rows=3 cols=35>$myconfig->{signature}</textarea></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Phone').qq|</th>
+ <td><input name=tel size=14 value="$myconfig->{tel}"></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Fax').qq|</th>
+ <td><input name=fax size=14 value="$myconfig->{fax}"></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Company').qq|</th>
+ <td><input name=company size=35 value="$myconfig->{company}"></td>
+ </tr>
+ <tr valign=top>
+ <th align=right>|.$locale->text('Address').qq|</th>
+ <td><textarea name=address rows=4 cols=35>$myconfig->{address}</textarea></td>
+ </tr>
+ </table>
+ </td>
+ <td>
+ <table>
+ <tr>
+ <th align=right>|.$locale->text('Date Format').qq|</th>
+ <td><select name=dateformat>$dateformat</select></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Number Format').qq|</th>
+ <td><select name=numberformat>$numberformat</select></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Dropdown Limit').qq|</th>
+ <td><input name=vclimit value="$myconfig->{vclimit}"></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Menu Width').qq|</th>
+ <td><input name=menuwidth value="$myconfig->{menuwidth}"></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Language').qq|</th>
+ <td><select name=countrycode>$countrycodes</select></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Session Timeout').qq|</th>
+ <td><input name=newtimeout value="$myconfig->{timeout}"></td>
+ </tr>
+
+ <tr>
+ <th align=right>|.$locale->text('Stylesheet').qq|</th>
+ <td><select name=userstylesheet>$selectstylesheet</select></td>
+ </tr>
+ $printer
+ <tr>
+ <th align=right>|.$locale->text('Use Templates').qq|</th>
+ <td><select name=usetemplates>$usetemplates</select></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('New Templates').qq|</th>
+ <td><input name=newtemplates></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Setup Templates').qq|</th>
+ <td><select name=mastertemplates>$mastertemplates</select></td>
+ </tr>
+ <input type=hidden name=templates value=$myconfig->{templates}>
+ </table>
+ </td>
+ </tr>
+ <tr class=listheading>
+ <th colspan=2>|.$locale->text('Database').qq|</th>
+ </tr>|;
+
+ # list section for database drivers
+ foreach $item (User->dbdrivers) {
+
+ print qq|
+ <tr>
+ <td colspan=2>
+ <table>
+ <tr>|;
+
+ $checked = "";
+ if ($myconfig->{dbdriver} eq $item) {
+ for (qw(dbhost dbport dbuser dbpasswd dbname sid)) { $form->{"${item}_$_"} = $myconfig->{$_} }
+ $checked = "checked";
+ }
+
+ print qq|
+ <th align=right>|.$locale->text('Driver').qq|</th>
+ <td><input name=dbdriver type=radio class=radio value=$item $checked>&nbsp;$item</td>
+ <th align=right>|.$locale->text('Host').qq|</th>
+ <td><input name="${item}_dbhost" size=30 value=$form->{"${item}_dbhost"}></td>
+ </tr>
+ <tr>|;
+
+ if ($item =~ /Pg/) {
+ print qq|
+ <th align=right>|.$locale->text('Dataset').qq|</th>
+ <td><input name="${item}_dbname" size=15 value=$form->{"${item}_dbname"}></td>
+ <th align=right>|.$locale->text('Port').qq|</th>
+ <td><input name="${item}_dbport" size=4 value=$form->{"${item}_dbport"}></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('User').qq|</th>
+ <td><input name="${item}_dbuser" size=15 value=$form->{"${item}_dbuser"}></td>
+ <th align=right>|.$locale->text('Password').qq|</th>
+ <td><input name="${item}_dbpasswd" type=password size=10 value=$form->{"${item}_dbpasswd"}></td>
+ </tr>|;
+
+ }
+
+ if ($item eq 'Oracle') {
+ print qq|
+ <th align=right>SID</th>
+ <td><input name=Oracle_sid value=$form->{Oracle_sid}></td>
+ <th align=right>|.$locale->text('Port').qq|</th>
+ <td><input name="${item}_dbport size=4 value=$form->{"${item}_dbport"}></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Dataset').qq|</th>
+ <td><input name="${item}_dbuser" size=15 value=$form->{"${item}_dbuser"}></td>
+ <th align=right>|.$locale->text('Password').qq|</th>
+ <td><input name="${item}_dbpasswd" type=password size=10 value=$form->{"${item}_dbpasswd"}></td>
+
+ </tr>|;
+ }
+
+
+ print qq|
+ <input type=hidden name=old_dbpasswd value=$myconfig->{dbpasswd}>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td colspan=2><hr size=2 noshade></td>
+ </tr>
+|;
+
+ }
+
+
+ # access control
+ open(FH, $menufile) or $form->error("$menufile : $!");
+ # scan for first menu level
+ @a = <FH>;
+ close(FH);
+
+ if (open(FH, "custom_$menufile")) {
+ push @a, <FH>;
+ }
+ close(FH);
+
+ foreach $item (@a) {
+ next unless $item =~ /\[\w+/;
+ next if $item =~ /\#/;
+
+ $item =~ s/(\[|\])//g;
+ chop $item;
+
+ if ($item =~ /--/) {
+ ($level, $menuitem) = split /--/, $item, 2;
+ } else {
+ $level = $item;
+ $menuitem = $item;
+ push @acsorder, $item;
+ }
+
+ push @{ $acs{$level} }, $menuitem;
+
+ }
+
+ %role = ( 'admin' => $locale->text('Administrator'),
+ 'user' => $locale->text('User'),
+ 'supervisor' => $locale->text('Supervisor'),
+ 'manager' => $locale->text('Manager')
+
+ );
+
+ $selectrole = "";
+ foreach $item (qw(user admin supervisor manager)) {
+ $selectrole .= ($myconfig->{role} eq $item) ? "<option selected value=$item>$role{$item}\n" : "<option value=$item>$role{$item}\n";
+ }
+
+ print qq|
+ <tr class=listheading>
+ <th colspan=2>|.$locale->text('Access Control').qq|</th>
+ </tr>
+ <tr>
+ <td><select name=role>$selectrole</select></td>
+ </tr>
+|;
+
+ foreach $item (split /;/, $myconfig->{acs}) {
+ ($key, $value) = split /--/, $item, 2;
+ $excl{$key}{$value} = 1;
+ }
+
+ foreach $key (@acsorder) {
+
+ $checked = "checked";
+ if ($form->{login}) {
+ $checked = ($excl{$key}{$key}) ? "" : "checked";
+ }
+
+ # can't have variable names with & and spaces
+ $item = $form->escape("${key}--$key",1);
+
+ $acsheading = $key;
+ $acsheading =~ s/ /&nbsp;/g;
+
+ $acsheading = qq|
+ <th align=left nowrap><input name="$item" class=checkbox type=checkbox value=1 $checked>&nbsp;$acsheading</th>\n|;
+ $menuitems .= "$item;";
+ $acsdata = "
+ <td>";
+
+ foreach $item (@{ $acs{$key} }) {
+
+ next if ($key eq $item);
+
+ $checked = "checked";
+ if ($form->{login}) {
+ $checked = ($excl{$key}{$item}) ? "" : "checked";
+ }
+
+ $acsitem = $form->escape("${key}--$item",1);
+
+ $acsdata .= qq|
+ <br><input name="$acsitem" class=checkbox type=checkbox value=1 $checked>&nbsp;$item|;
+ $menuitems .= "$acsitem;";
+ }
+
+ $acsdata .= "
+ </td>";
+
+ print qq|
+ <tr valign=top>$acsheading $acsdata
+ </tr>
+|;
+ }
+
+ print qq|<input type=hidden name=acs value="$menuitems">
+
+ <tr>
+ <td colspan=2><hr size=3 noshade></td>
+ </tr>
+</table>
+</div>
+|;
+
+}
+
+
+sub save {
+
+ # no driver checked
+ $form->error($locale->text('Database Driver not checked!')) unless $form->{dbdriver};
+
+ # no spaces allowed in login name
+ $form->{login} =~ s/ //g;
+
+ $form->isblank("login", $locale->text('Login name missing!'));
+
+ # check for duplicates
+ if (!$form->{edit}) {
+ $temp = new User "$memberfile", "$form->{login}";
+
+ if ($temp->{login}) {
+ $form->error("$form->{login} ".$locale->text('is already a member!'));
+ }
+ }
+
+ # no spaces allowed in directories
+ $form->{newtemplates} =~ s/( |\.\.|\*)//g;
+
+ if ($form->{newtemplates} ne "") {
+ $form->{templates} = $form->{newtemplates};
+ } else {
+ $form->{templates} = ($form->{usetemplates}) ? $form->{usetemplates} : $form->{login};
+ }
+
+ # is there a basedir
+ if (! -d "$templates") {
+ $form->error($locale->text('Directory').": $templates ".$locale->text('does not exist'));
+ }
+
+ # add base directory to $form->{templates}
+ $form->{templates} = "$templates/$form->{templates}";
+
+
+ $myconfig = new User "$memberfile", "$form->{login}";
+
+ # redo acs variable and delete all the acs codes
+ @acs = split /;/, $form->{acs};
+
+ $form->{acs} = "";
+ foreach $item (@acs) {
+ $item = $form->escape($item,1);
+ if (!$form->{$item}) {
+ $form->{acs} .= $form->unescape($form->unescape("$item")).";";
+ }
+ delete $form->{$item};
+ }
+
+ # check which database was filled in
+
+ $form->{dbhost} = $form->{"$form->{dbdriver}_dbhost"};
+ $form->{dbport} = $form->{"$form->{dbdriver}_dbport"};
+ $form->{dbpasswd} = $form->{"$form->{dbdriver}_dbpasswd"};
+ $form->{dbuser} = $form->{"$form->{dbdriver}_dbuser"};
+ $form->{dbname} = $form->{"$form->{dbdriver}_dbname"};
+
+ if ($form->{dbdriver} eq 'Oracle') {
+ $form->{sid} = $form->{Oracle_sid}, ;
+
+ $form->isblank("dbhost", $locale->text('Hostname missing!'));
+ $form->isblank("dbport", $locale->text('Port missing!'));
+ $form->isblank("dbuser", $locale->text('Dataset missing!'));
+ }
+ if ($form->{dbdriver} =~ /Pg/) {
+ $form->isblank("dbname", $locale->text('Dataset missing!'));
+ $form->isblank("dbuser", $locale->text('Database User missing!'));
+ }
+
+ foreach $item (keys %{$form}) {
+ $myconfig->{$item} = $form->{$item};
+ }
+
+ $myconfig->{password} = $form->{old_password};
+ $myconfig->{password} = $form->{new_password} if $form->{new_password} ne $form->{old_password};
+ $myconfig->{timeout} = $form->{newtimeout};
+
+ delete $myconfig->{stylesheet};
+ if ($form->{userstylesheet}) {
+ $myconfig->{stylesheet} = $form->{userstylesheet};
+ }
+
+ $myconfig->{packpw} = 1;
+
+ $myconfig->save_member($memberfile, $userspath);
+
+ # create user template directory and copy master files
+ if (! -d "$form->{templates}") {
+
+ umask(002);
+
+ if (mkdir "$form->{templates}", oct("771")) {
+
+ umask(007);
+
+ # copy templates to the directory
+ opendir TEMPLATEDIR, "$templates/." or $form->error("$templates : $!");
+ @templates = grep /$form->{mastertemplates}-/, readdir TEMPLATEDIR;
+ closedir TEMPLATEDIR;
+
+ foreach $file (@templates) {
+ open(TEMP, "$templates/$file") or $form->error("$templates/$file : $!");
+
+ $file =~ s/$form->{mastertemplates}-//;
+ open(NEW, ">$form->{templates}/$file") or $form->error("$form->{templates}/$file : $!");
+
+ while ($line = <TEMP>) {
+ print NEW $line;
+ }
+ close(TEMP);
+ close(NEW);
+ }
+ } else {
+ $form->error("$form->{templates} : $!");
+ }
+ }
+
+ $form->redirect($locale->text('User saved!'));
+
+}
+
+
+sub delete {
+
+ $form->{templates} = ($form->{templates}) ? "$templates/$form->{templates}" : "$templates/$form->{login}";
+
+ $form->error("$memberfile ".$locale->text('locked!')) if (-f ${memberfile}.LCK);
+
+ open(FH, ">${memberfile}.LCK") or $form->error("${memberfile}.LCK : $!");
+ close(FH);
+
+ if (! open(CONF, "+<$memberfile")) {
+ unlink "${memberfile}.LCK";
+ $form->error("$memberfile : $!");
+ }
+
+ @config = <CONF>;
+
+ seek(CONF, 0, 0);
+ truncate(CONF, 0);
+
+ while ($line = shift @config) {
+
+ chop $line;
+
+ if ($line =~ /^\[/) {
+ last if ($line eq "[$form->{login}]");
+ $login = &login_name($line);
+ }
+
+ if ($line =~ /^templates=/) {
+ ($null, $user{$login}) = split /=/, $line, 2;
+ }
+
+ print CONF "$line\n";
+ }
+
+ # remove everything up to next login or EOF
+ # and save template variable
+ while ($line = shift @config) {
+
+ chop $line;
+
+ ($key, $value) = split /=/, $line, 2;
+ $myconfig{$key} = $value;
+
+ last if ($line =~ /^\[/);
+ }
+
+ # this one is either the next login or EOF
+ print CONF "$line\n";
+
+ $login = &login_name($line);
+
+
+ while ($line = shift @config) {
+
+ chop $line;
+
+ if ($line =~ /^\[/) {
+ $login = &login_name($line);
+ }
+
+ if ($line =~ /^templates=/) {
+ ($null, $user{$login}) = split /=/, $line, 2;
+ }
+
+ print CONF "$line\n";
+ }
+
+ close(CONF);
+ unlink "${memberfile}.LCK";
+
+ # scan %user for $templatedir
+ foreach $login (keys %user) {
+ last if ($found = ($form->{templates} eq $user{$login}));
+ }
+
+ # if found keep directory otherwise delete
+ if (!$found) {
+ # delete it if there is a template directory
+ $dir = "$form->{templates}";
+ if (-d "$dir") {
+ unlink <$dir/*>;
+ rmdir "$dir";
+ }
+ }
+
+ if ($myconfig{dbconnect}) {
+ $myconfig{dbpasswd} = unpack 'u', $myconfig{dbpasswd};
+ for (keys %myconfig) { $form->{$_} = $myconfig{$_} }
+
+ User->delete_login(\%$form);
+
+ # delete config file for user
+ unlink "$userspath/$form->{login}.conf";
+ }
+
+ $form->redirect($locale->text('User deleted!'));
+
+}
+
+
+sub login_name {
+ my $login = shift;
+
+ $login =~ s/\[\]//g;
+ return ($login) ? $login : undef;
+
+}
+
+
+sub change_admin_password {
+
+ $form->{title} = qq|LedgerSMB |.$locale->text('Accounting')." ".$locale->text('Administration')." / ".$locale->text('Change Admin Password');
+
+ $form->{login} = "root login";
+ $form->header;
+
+ print qq|
+<body class=admin>
+
+<form method=post action=$form->{script}>
+
+<table>
+ <tr>
+ <tr class=listheading>
+ <th>|.$locale->text('Change Password').qq|</th>
+ </tr>
+ <tr size=5></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+ <th align=right>|.$locale->text('Password').qq|</th>
+ <td><input type=password name=new_password></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Confirm').qq|</th>
+ <td><input type=password name=confirm_password></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+</table>
+
+<br>
+<hr size=3 noshade>
+<input type=hidden name=path value=$form->{path}>
+<input type=hidden name=sessionid value=$form->{sessionid}>
+
+<p>
+<input type=submit class=submit name=action value="|.$locale->text('Change Password').qq|">
+
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub change_password {
+
+ $form->error($locale->text('Passwords do not match!')) if $form->{new_password} ne $form->{confirm_password};
+
+ $root->{password} = $form->{new_password};
+
+ $root->{'root login'} = 1;
+ $root->save_member($memberfile);
+
+ $form->{callback} = "$form->{script}?action=list_users&path=$form->{path}&sessionid=$form->{sessionid}";
+
+ $form->redirect($locale->text('Password changed!'));
+
+}
+
+
+sub check_password {
+
+ $root = new User "$memberfile", "root login";
+
+ if ($root->{password}) {
+
+ if ($form->{password}) {
+ $form->{callback} .= "&password=$form->{password}" if $form->{callback};
+ $form->{sessionid} = time;
+ if ($root->{password} ne crypt $form->{password}, 'ro') {
+ &getpassword;
+ exit;
+ }
+ } else {
+ if ($ENV{HTTP_USER_AGENT}) {
+ $ENV{HTTP_COOKIE} =~ s/;\s*/;/g;
+ %cookie = split /[=;]/, $ENV{HTTP_COOKIE};
+ $cookie = ($form->{path} eq 'bin/lynx') ? $cookie{login} : $cookie{"SQL-Ledger-root login"};
+ if (! $cookie || $cookie ne $form->{sessionid}) {
+ &getpassword;
+ exit;
+ }
+ }
+ }
+ }
+
+}
+
+
+sub pg_database_administration {
+
+ $form->{dbdriver} = 'Pg';
+ &dbselect_source;
+
+}
+
+
+sub pgpp_database_administration {
+
+ $form->{dbdriver} = 'PgPP';
+ &dbselect_source;
+
+}
+
+
+sub oracle_database_administration {
+
+ $form->{dbdriver} = 'Oracle';
+ &dbselect_source;
+
+}
+
+
+sub dbdriver_defaults {
+
+ # load some defaults for the selected driver
+ %driverdefaults = ( 'Pg' => { dbport => '',
+ dbuser => 'sql-ledger',
+ dbdefault => 'template1',
+ dbhost => '',
+ connectstring => $locale->text('Connect to')
+ },
+ 'Oracle' => { dbport => '1521',
+ dbuser => 'oralin',
+ dbdefault => $sid,
+ dbhost => `hostname`,
+ connectstring => 'SID'
+ }
+ );
+
+ $driverdefaults{PgPP} = $driverdefaults{Pg};
+
+ for (keys %{ $driverdefaults{Pg} }) { $form->{$_} = $driverdefaults{$form->{dbdriver}}{$_} }
+
+}
+
+
+sub dbselect_source {
+
+ &dbdriver_defaults;
+
+ $form->{title} = "LedgerSMB ".$locale->text('Accounting')." / ".$locale->text('Database Administration');
+
+ $form->{login} = "root login";
+ $form->header;
+
+ print qq|
+<body class=admin>
+
+<center>
+<h2>$form->{title}</h2>
+
+<form method=post action=$form->{script}>
+
+<table>
+ <tr>
+ <td>
+ <table>
+ <tr class=listheading>
+ <th colspan=4>|.$locale->text('Database').qq|</th>
+ </tr>
+ <input type=hidden name=dbdriver value=$form->{dbdriver}>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right>|.$locale->text('Host').qq|</th>
+ <td><input name=dbhost size=25 value=$form->{dbhost}></td>
+ <th align=right>|.$locale->text('Port').qq|</th>
+ <td><input name=dbport size=5 value=$form->{dbport}></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('User').qq|</th>
+ <td><input name=dbuser size=10 value=$form->{dbuser}></td>
+ <th align=right>|.$locale->text('Password').qq|</th>
+ <td><input type=password name=dbpasswd size=10></td>
+ </tr>
+ <tr>
+
+ <th align=right>$form->{connectstring}</th>
+ <td colspan=3><input name=dbdefault size=10 value=$form->{dbdefault}></td>
+
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+
+<input name=callback type=hidden value="$form->{script}?action=list_users&path=$form->{path}&sessionid=$form->{sessionid}">
+<input type=hidden name=path value=$form->{path}>
+<input type=hidden name=sessionid value=$form->{sessionid}>
+
+<br>
+
+<input type=submit class=submit name=action value="|.$locale->text('Create Dataset').qq|">
+<input type=submit class=submit name=action value="|.$locale->text('Update Dataset').qq|">
+<input type=submit class=submit name=action value="|.$locale->text('Delete Dataset').qq|">
+
+</form>
+
+ </td>
+ </tr>
+</table>
+
+<p>|.$locale->text('This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!')
+
+.qq|
+</body>
+</html>
+|;
+
+}
+
+
+sub continue {
+
+ &{ $form->{nextsub} };
+
+}
+
+
+sub update_dataset {
+
+ %needsupdate = User->dbneedsupdate(\%$form);
+
+ $form->{title} = "LedgerSMB ".$locale->text('Accounting')." ".$locale->text('Database Administration')." / ".$locale->text('Update Dataset');
+
+ $form->{login} = "root login";
+ $form->header;
+
+ print qq|
+<body class=admin>
+
+
+<center>
+<h2>$form->{title}</h2>
+|;
+
+
+ foreach $key (sort keys %needsupdate) {
+ if ($needsupdate{$key} ne $form->{dbversion}) {
+ $upd .= qq|<input name="db$key" class=checkbox type=checkbox value=1 checked> $key\n|;
+ $form->{dbupdate} .= "db$key ";
+ }
+ }
+
+ chop $form->{dbupdate};
+
+
+ if ($form->{dbupdate}) {
+
+ print qq|
+<table width=100%>
+<form method=post action=$form->{script}>
+
+<input type=hidden name=dbdriver value=$form->{dbdriver}>
+<input type=hidden name=dbhost value=$form->{dbhost}>
+<input type=hidden name=dbport value=$form->{dbport}>
+<input type=hidden name=dbuser value=$form->{dbuser}>
+<input type=hidden name=dbpasswd value=$form->{dbpasswd}>
+<input type=hidden name=dbdefault value=$form->{dbdefault}>
+
+<tr class=listheading>
+ <th>|.$locale->text('The following Datasets need to be updated').qq|</th>
+</tr>
+<tr>
+<td>
+
+$upd
+
+</td>
+</tr>
+<tr>
+<td>
+
+<input name=dbupdate type=hidden value="$form->{dbupdate}">
+
+<input name=callback type=hidden value="$form->{script}?action=list_users&path=$form->{path}&sessionid=$form->{sessionid}">
+
+<input type=hidden name=path value=$form->{path}>
+<input type=hidden name=sessionid value=$form->{sessionid}>
+
+<input type=hidden name=nextsub value=dbupdate>
+
+<hr size=3 noshade>
+
+<br>
+<input type=submit class=submit name=action value="|.$locale->text('Continue').qq|">
+
+</td></tr>
+</table>
+</form>
+|;
+
+ } else {
+
+ print $locale->text('DBA')." : $form->{dbuser} : " .$locale->text('All Datasets up to date!');
+
+ }
+
+ print qq|
+
+</body>
+</html>
+|;
+
+}
+
+
+sub dbupdate {
+
+ User->dbupdate(\%$form);
+
+ $form->redirect($locale->text('Dataset updated!'));
+
+}
+
+
+sub create_dataset {
+
+ @dbsources = sort User->dbsources(\%$form);
+
+ opendir SQLDIR, "sql/." or $form->error($!);
+ foreach $item (sort grep /-chart\.sql/, readdir SQLDIR) {
+ next if ($item eq 'Default-chart.sql');
+ $item =~ s/-chart\.sql//;
+ push @charts, qq|<input name=chart class=radio type=radio value="$item">$item|;
+ }
+ closedir SQLDIR;
+
+ # add Default at beginning
+ unshift @charts, qq|<input name=chart class=radio type=radio value="Default" checked>Default|;
+
+ $selectencoding = qq|<option>
+ <option value=SQL_ASCII>ASCII
+ <option value=EUC_JP>Japanese EUC
+ <option value=EUC_CN>Chinese EUC
+ <option value=EUC_KR>Korean EUC
+ <option value=JOHAB>Korean EUC (Hangle base)
+ <option value=EUC_TW>Taiwan EUC
+ <option value=UNICODE>Unicode (UTF-8)
+ <option value=MULE_INTERNAL>Mule internal type
+ <option value=LATIN1>ISO 8859-1/ECMA 94 (Latin alphabet no. 1)
+ <option value=LATIN2>ISO 8859-2/ECMA 94 (Latin alphabet no. 2)
+ <option value=LATIN3>ISO 8859-3/ECMA 94 (Latin alphabet no. 3)
+ <option value=LATIN4>ISO 8859-4/ECMA 94 (Latin alphabet no. 4)
+ <option value=LATIN5>ISO 8859-9/ECMA 128 (Latin alphabet no. 5)
+ <option value=LATIN6>ISO 8859-10/ECMA 144 (Latin alphabet no. 6)
+ <option value=LATIN7>ISO 8859-13 (Latin alphabet no. 7)
+ <option value=LATIN8>ISO 8859-14 (Latin alphabet no. 8)
+ <option value=LATIN9>ISO 8859-15 (Latin alphabet no. 9)
+ <option value=LATIN10>ISO 8859-16/ASRO SR 14111 (Latin alphabet no. 10)
+ <option value=ISO_8859_5>ISO 8859-5/ECMA 113 (Latin/Cyrillic)
+ <option value=ISO_8859_6>ISO 8859-6/ECMA 114 (Latin/Arabic)
+ <option value=ISO_8859_7>ISO 8859-7/ECMA 118 (Latin/Greek)
+ <option value=ISO_8859_8>ISO 8859-8/ECMA 121 (Latin/Hebrew)
+ <option value=KOI8>KOI8-R(U)
+ <option value=WIN>Windows CP1251
+ <option value=ALT>Windows CP866
+ <option value=WIN1256>Windows CP1256 (Arabic)
+ <option value=TCVN>Windows CP1258 (Vietnamese)
+ <option value=WIN874>Windows CP874 (Thai)
+ |;
+
+ $form->{title} = "LedgerSMB ".$locale->text('Accounting')." ".$locale->text('Database Administration')." / ".$locale->text('Create Dataset');
+
+ $form->{login} = "root login";
+ $form->header;
+
+ print qq|
+<body class=admin>
+
+
+<center>
+<h2>$form->{title}</h2>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr class=listheading>
+ <th colspan=2>&nbsp;</th>
+ </tr>
+
+ <tr>
+
+ <th align=right nowrap>|.$locale->text('Existing Datasets').qq|</th>
+ <td>
+|;
+
+ for (@dbsources) { print "[&nbsp;$_&nbsp;] " }
+
+ print qq|
+ </td>
+ </tr>
+
+ <tr>
+
+ <th align=right nowrap>|.$locale->text('Create Dataset').qq|</th>
+ <td><input name=db></td>
+
+ </tr>
+
+ <tr>
+
+ <th align=right nowrap>|.$locale->text('Multibyte Encoding').qq|</th>
+ <td><select name=encoding>$selectencoding</select></td>
+
+ </tr>
+
+ <tr>
+
+ <th align=right nowrap>|.$locale->text('Create Chart of Accounts').qq|</th>
+ <td>
+ <table>
+|;
+
+ while (@charts) {
+ print qq|
+ <tr>
+|;
+
+ for (0 .. 2) { print "<td>$charts[$_]</td>\n" }
+
+ print qq|
+ </tr>
+|;
+
+ splice @charts, 0, 3;
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td colspan=2>
+ <hr size=3 noshade>
+ </td>
+ </tr>
+</table>
+|;
+
+ $form->hide_form(qw(dbdriver dbuser dbhost dbport dbpasswd dbdefault path sessionid));
+
+ print qq|
+
+<input name=callback type=hidden value="$form->{script}?action=list_users&path=$form->{path}&sessionid=$form->{sessionid}">
+<input type=hidden name=nextsub value=dbcreate>
+
+<br>
+<input type=submit class=submit name=action value="|.$locale->text('Continue').qq|">
+
+
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub dbcreate {
+
+ $form->isblank("db", $locale->text('Dataset missing!'));
+
+ User->dbcreate(\%$form);
+
+ $form->{title} = "LedgerSMB ".$locale->text('Accounting')." ".$locale->text('Database Administration')." / ".$locale->text('Create Dataset');
+
+ $form->{login} = "root login";
+ $form->header;
+
+ print qq|
+<body class=admin>
+
+
+<center>
+<h2>$form->{title}</h2>
+
+<form method=post action=$form->{script}>|
+
+.$locale->text('Dataset')." $form->{db} ".$locale->text('successfully created!')
+
+.qq|
+
+<input type=hidden name=path value="$form->{path}">
+<input type=hidden name=sessionid value=$form->{sessionid}>
+
+<input type=hidden name=nextsub value=list_users>
+
+<p><input type=submit class=submit name=action value="|.$locale->text('Continue').qq|">
+</form>
+
+
+</body>
+</html>
+|;
+
+}
+
+
+sub delete_dataset {
+
+ if (@dbsources = User->dbsources_unused(\%$form, $memberfile)) {
+ foreach $item (sort @dbsources) {
+ $dbsources .= qq|<input name=db class=radio type=radio value=$item>&nbsp;$item |;
+ }
+ } else {
+ $form->error($locale->text('Nothing to delete!'));
+ }
+
+ $form->{title} = "LedgerSMB ".$locale->text('Accounting')." ".$locale->text('Database Administration')." / ".$locale->text('Delete Dataset');
+
+ $form->{login} = "root login";
+ $form->header;
+
+ print qq|
+<body class=admin>
+
+<h2>$form->{title}</h2>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr class=listheading>
+ <th>|.$locale->text('The following Datasets are not in use and can be deleted').qq|</th>
+ </tr>
+
+ <tr>
+ <td>
+ $dbsources
+ </td>
+ </tr>
+
+ <tr><td>
+<p>
+<input type=hidden name=dbdriver value=$form->{dbdriver}>
+<input type=hidden name=dbuser value=$form->{dbuser}>
+<input type=hidden name=dbhost value=$form->{dbhost}>
+<input type=hidden name=dbport value=$form->{dbport}>
+<input type=hidden name=dbpasswd value=$form->{dbpasswd}>
+<input type=hidden name=dbdefault value=$form->{dbdefault}>
+
+<input name=callback type=hidden value="$form->{script}?action=list_users&path=$form->{path}&sessionid=$form->{sessionid}">
+
+<input type=hidden name=path value="$form->{path}">
+<input type=hidden name=sessionid value=$form->{sessionid}>
+
+<input type=hidden name=nextsub value=dbdelete>
+
+<hr size=3 noshade>
+
+<br>
+<input type=submit class=submit name=action value="|.$locale->text('Continue').qq|">
+
+ </td></tr>
+</table>
+
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub dbdelete {
+
+ if (!$form->{db}) {
+ $form->error($locale->text('No Dataset selected!'));
+ }
+
+ User->dbdelete(\%$form);
+
+ $form->{title} = "LedgerSMB ".$locale->text('Accounting')." ".$locale->text('Database Administration')." / ".$locale->text('Delete Dataset');
+
+ $form->{login} = "root login";
+ $form->header;
+
+ print qq|
+<body class=admin>
+
+
+<center>
+<h2>$form->{title}</h2>
+
+<form method=post action=$form->{script}>
+
+$form->{db} |.$locale->text('successfully deleted!')
+
+.qq|
+
+<input type=hidden name=path value="$form->{path}">
+<input type=hidden name=sessionid value=$form->{sessionid}>
+
+<input type=hidden name=nextsub value=list_users>
+
+<p><input type=submit class=submit name=action value="|.$locale->text('Continue').qq|">
+</form>
+
+
+</body>
+</html>
+|;
+
+}
+
+
+sub unlock_system {
+
+ unlink "$userspath/nologin";
+
+ $form->{callback} = "$form->{script}?action=list_users&path=$form->{path}&sessionid=$form->{sessionid}";
+
+ $form->redirect($locale->text('Lockfile removed!'));
+
+}
+
+
+sub lock_system {
+
+ open(FH, ">$userspath/nologin") or $form->error($locale->text('Cannot create Lock!'));
+ close(FH);
+
+ $form->{callback} = "$form->{script}?action=list_users&path=$form->{path}&sessionid=$form->{sessionid}";
+
+ $form->redirect($locale->text('Lockfile created!'));
+
+}
+
+
diff --git a/bin/lynx/am.pl b/bin/lynx/am.pl
new file mode 100755
index 00000000..ad2e91b2
--- /dev/null
+++ b/bin/lynx/am.pl
@@ -0,0 +1,3271 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2001
+#
+# Author: DWS Systems Inc.
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#======================================================================
+#
+# administration
+#
+#======================================================================
+
+
+use SL::AM;
+use SL::CA;
+use SL::Form;
+use SL::User;
+use SL::RP;
+use SL::GL;
+
+
+1;
+# end of main
+
+
+
+sub add { &{ "add_$form->{type}" } };
+sub edit { &{ "edit_$form->{type}" } };
+sub save { &{ "save_$form->{type}" } };
+sub delete { &{ "delete_$form->{type}" } };
+
+
+sub save_as_new {
+
+ delete $form->{id};
+
+ &save;
+
+}
+
+
+sub add_account {
+
+ $form->{title} = "Add";
+ $form->{charttype} = "A";
+
+ $form->{callback} = "$form->{script}?action=list_account&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}" unless $form->{callback};
+
+ &account_header;
+ &form_footer;
+
+}
+
+
+sub edit_account {
+
+ $form->{title} = "Edit";
+
+ $form->{accno} =~ s/\\'/'/g;
+ $form->{accno} =~ s/\\\\/\\/g;
+
+ AM->get_account(\%myconfig, \%$form);
+
+ foreach my $item (split(/:/, $form->{link})) {
+ $form->{$item} = "checked";
+ }
+
+ &account_header;
+ &form_footer;
+
+}
+
+
+sub account_header {
+
+ $form->{title} = $locale->text("$form->{title} Account");
+
+ $checked{$form->{charttype}} = "checked";
+ $checked{contra} = "checked" if $form->{contra};
+ $checked{"$form->{category}_"} = "checked";
+
+ for (qw(accno description)) { $form->{$_} = $form->quote($form->{$_}) }
+
+# this is for our parser only!
+# type=submit $locale->text('Add Account')
+# type=submit $locale->text('Edit Account')
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=id value=$form->{id}>
+<input type=hidden name=type value=account>
+
+<input type=hidden name=inventory_accno_id value=$form->{inventory_accno_id}>
+<input type=hidden name=income_accno_id value=$form->{income_accno_id}>
+<input type=hidden name=expense_accno_id value=$form->{expense_accno_id}>
+<input type=hidden name=fxgain_accno_id values=$form->{fxgain_accno_id}>
+<input type=hidden name=fxloss_accno_id values=$form->{fxloss_accno_id}>
+
+<table border=0 width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=right>|.$locale->text('Account Number').qq|</th>
+ <td><input name=accno size=20 value="$form->{accno}"></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Description').qq|</th>
+ <td><input name=description size=40 value="$form->{description}"></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Account Type').qq|</th>
+ <td>
+ <table>
+ <tr valign=top>
+ <td><input name=category type=radio class=radio value=A $checked{A_}>&nbsp;|.$locale->text('Asset').qq|\n<br>
+ <input name=category type=radio class=radio value=L $checked{L_}>&nbsp;|.$locale->text('Liability').qq|\n<br>
+ <input name=category type=radio class=radio value=Q $checked{Q_}>&nbsp;|.$locale->text('Equity').qq|\n<br>
+ <input name=category type=radio class=radio value=I $checked{I_}>&nbsp;|.$locale->text('Income').qq|\n<br>
+ <input name=category type=radio class=radio value=E $checked{E_}>&nbsp;|.$locale->text('Expense')
+ .qq|</td>
+ <td>
+ <input name=contra class=checkbox type=checkbox value=1 $checked{contra}>&nbsp;|.$locale->text('Contra').qq|
+ </td>
+ <td>
+ <input name=charttype type=radio class=radio value="H" $checked{H}>&nbsp;|.$locale->text('Heading').qq|<br>
+ <input name=charttype type=radio class=radio value="A" $checked{A}>&nbsp;|.$locale->text('Account')
+ .qq|</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+|;
+
+
+if ($form->{charttype} eq "A") {
+ print qq|
+ <tr>
+ <td colspan=2>
+ <table>
+ <tr>
+ <th align=left>|.$locale->text('Is this a summary account to record').qq|</th>
+ <td>
+ <input name=AR class=checkbox type=checkbox value=AR $form->{AR}>&nbsp;|.$locale->text('AR')
+ .qq|&nbsp;<input name=AP class=checkbox type=checkbox value=AP $form->{AP}>&nbsp;|.$locale->text('AP')
+ .qq|&nbsp;<input name=IC class=checkbox type=checkbox value=IC $form->{IC}>&nbsp;|.$locale->text('Inventory')
+ .qq|</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <th colspan=2>|.$locale->text('Include in drop-down menus').qq|</th>
+ </tr>
+ <tr valign=top>
+ <td colspan=2>
+ <table width=100%>
+ <tr>
+ <th align=left>|.$locale->text('Receivables').qq|</th>
+ <th align=left>|.$locale->text('Payables').qq|</th>
+ <th align=left>|.$locale->text('Tracking Items').qq|</th>
+ <th align=left>|.$locale->text('Non-tracking Items').qq|</th>
+ </tr>
+ <tr>
+ <td>
+ <input name=AR_amount class=checkbox type=checkbox value=AR_amount $form->{AR_amount}>&nbsp;|.$locale->text('Income').qq|\n<br>
+ <input name=AR_paid class=checkbox type=checkbox value=AR_paid $form->{AR_paid}>&nbsp;|.$locale->text('Payment').qq|\n<br>
+ <input name=AR_tax class=checkbox type=checkbox value=AR_tax $form->{AR_tax}>&nbsp;|.$locale->text('Tax') .qq|
+ </td>
+ <td>
+ <input name=AP_amount class=checkbox type=checkbox value=AP_amount $form->{AP_amount}>&nbsp;|.$locale->text('Expense/Asset').qq|\n<br>
+ <input name=AP_paid class=checkbox type=checkbox value=AP_paid $form->{AP_paid}>&nbsp;|.$locale->text('Payment').qq|\n<br>
+ <input name=AP_tax class=checkbox type=checkbox value=AP_tax $form->{AP_tax}>&nbsp;|.$locale->text('Tax') .qq|
+ </td>
+ <td>
+ <input name=IC_sale class=checkbox type=checkbox value=IC_sale $form->{IC_sale}>&nbsp;|.$locale->text('Income').qq|\n<br>
+ <input name=IC_cogs class=checkbox type=checkbox value=IC_cogs $form->{IC_cogs}>&nbsp;|.$locale->text('COGS').qq|\n<br>
+ <input name=IC_taxpart class=checkbox type=checkbox value=IC_taxpart $form->{IC_taxpart}>&nbsp;|.$locale->text('Tax') .qq|
+ </td>
+ <td>
+ <input name=IC_income class=checkbox type=checkbox value=IC_income $form->{IC_income}>&nbsp;|.$locale->text('Income').qq|\n<br>
+ <input name=IC_expense class=checkbox type=checkbox value=IC_expense $form->{IC_expense}>&nbsp;|.$locale->text('Expense').qq|\n<br>
+ <input name=IC_taxservice class=checkbox type=checkbox value=IC_taxservice $form->{IC_taxservice}>&nbsp;|.$locale->text('Tax') .qq|
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ </tr>
+|;
+}
+
+print qq|
+ <tr>
+ <th align=right>|.$locale->text('GIFI').qq|</th>
+ <td><input name=gifi_accno size=9 value=$form->{gifi_accno}></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+}
+
+
+sub form_footer {
+
+ $form->hide_form(qw(callback path login sessionid));
+
+# type=submit $locale->text('Save')
+# type=submit $locale->text('Save as new')
+# type=submit $locale->text('Delete')
+
+ %button = ();
+
+ if ($form->{id}) {
+ $button{'Save'} = { ndx => 3, key => 'S', value => $locale->text('Save') };
+ $button{'Save as new'} = { ndx => 7, key => 'N', value => $locale->text('Save as new') };
+
+ if ($form->{orphaned}) {
+ $button{'Delete'} = { ndx => 16, key => 'D', value => $locale->text('Delete') };
+ }
+ } else {
+ $button{'Save'} = { ndx => 3, key => 'S', value => $locale->text('Save') };
+ }
+
+ for (sort { $button{$a}->{ndx} <=> $button{$b}->{ndx} } keys %button) { $form->print_button(\%button, $_) }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub save_account {
+
+ $form->isblank("accno", $locale->text('Account Number missing!'));
+ $form->isblank("category", $locale->text('Account Type missing!'));
+
+ # check for conflicting accounts
+ if ($form->{AR} || $form->{AP} || $form->{IC}) {
+ $a = "";
+ for (qw(AR AP IC)) { $a .= $form->{$_} }
+ $form->error($locale->text('Cannot set account for more than one of AR, AP or IC')) if length $a > 2;
+
+ for (qw(AR_amount AR_tax AR_paid AP_amount AP_tax AP_paid IC_taxpart IC_taxservice IC_sale IC_cogs IC_income IC_expense)) { $form->error("$form->{AR}$form->{AP}$form->{IC} ". $locale->text('account cannot be set to any other type of account')) if $form->{$_} }
+ }
+
+ foreach $item ("AR", "AP") {
+ $i = 0;
+ for ("${item}_amount", "${item}_paid", "${item}_tax") { $i++ if $form->{$_} }
+ $form->error($locale->text('Cannot set multiple options for')." $item") if $i > 1;
+ }
+
+ if (AM->save_account(\%myconfig, \%$form)) {
+ $form->redirect($locale->text('Account saved!'));
+ } else {
+ $form->error($locale->text('Cannot save account!'));
+ }
+
+}
+
+
+sub list_account {
+
+ CA->all_accounts(\%myconfig, \%$form);
+
+ $form->{title} = $locale->text('Chart of Accounts');
+
+ # construct callback
+ $callback = "$form->{script}?action=list_account&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}";
+
+ @column_index = qw(accno gifi_accno description debit credit link);
+
+ $column_header{accno} = qq|<th class=listtop>|.$locale->text('Account').qq|</a></th>|;
+ $column_header{gifi_accno} = qq|<th class=listtop>|.$locale->text('GIFI').qq|</a></th>|;
+ $column_header{description} = qq|<th class=listtop>|.$locale->text('Description').qq|</a></th>|;
+ $column_header{debit} = qq|<th class=listtop>|.$locale->text('Debit').qq|</a></th>|;
+ $column_header{credit} = qq|<th class=listtop>|.$locale->text('Credit').qq|</a></th>|;
+ $column_header{link} = qq|<th class=listtop>|.$locale->text('Link').qq|</a></th>|;
+
+
+ $form->header;
+ $colspan = $#column_index + 1;
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop colspan=$colspan>$form->{title}</th>
+ </tr>
+ <tr height=5></tr>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "$column_header{$_}\n" }
+
+ print qq|
+</tr>
+|;
+
+ # escape callback
+ $callback = $form->escape($callback);
+
+ foreach $ca (@{ $form->{CA} }) {
+
+ $ca->{debit} = "&nbsp;";
+ $ca->{credit} = "&nbsp;";
+
+ if ($ca->{amount} > 0) {
+ $ca->{credit} = $form->format_amount(\%myconfig, $ca->{amount}, 2, "&nbsp;");
+ }
+ if ($ca->{amount} < 0) {
+ $ca->{debit} = $form->format_amount(\%myconfig, -$ca->{amount}, 2, "&nbsp;");
+ }
+
+ $ca->{link} =~ s/:/<br>/og;
+
+ $gifi_accno = $form->escape($ca->{gifi_accno});
+
+ if ($ca->{charttype} eq "H") {
+ print qq|<tr class=listheading>|;
+
+ $column_data{accno} = qq|<th><a class=listheading href=$form->{script}?action=edit_account&id=$ca->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ca->{accno}</a></th>|;
+ $column_data{gifi_accno} = qq|<th class=listheading><a href=$form->{script}?action=edit_gifi&accno=$gifi_accno&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ca->{gifi_accno}</a>&nbsp;</th>|;
+ $column_data{description} = qq|<th class=listheading>$ca->{description}&nbsp;</th>|;
+ $column_data{debit} = qq|<th>&nbsp;</th>|;
+ $column_data{credit} = qq| <th>&nbsp;</th>|;
+ $column_data{link} = qq|<th>&nbsp;</th>|;
+
+ } else {
+ $i++; $i %= 2;
+ print qq|
+<tr valign=top class=listrow$i>|;
+ $column_data{accno} = qq|<td><a href=$form->{script}?action=edit_account&id=$ca->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ca->{accno}</a></td>|;
+ $column_data{gifi_accno} = qq|<td><a href=$form->{script}?action=edit_gifi&accno=$gifi_accno&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ca->{gifi_accno}</a>&nbsp;</td>|;
+ $column_data{description} = qq|<td>$ca->{description}&nbsp;</td>|;
+ $column_data{debit} = qq|<td align=right>$ca->{debit}</td>|;
+ $column_data{credit} = qq|<td align=right>$ca->{credit}</td>|;
+ $column_data{link} = qq|<td>$ca->{link}&nbsp;</td>|;
+
+ }
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print "</tr>\n";
+ }
+
+ print qq|
+ <tr><td colspan=$colspan><hr size=3 noshade></td></tr>
+</table>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub delete_account {
+
+ $form->{title} = $locale->text('Delete Account');
+
+ foreach $id (qw(inventory_accno_id income_accno_id expense_accno_id fxgain_accno_id fxloss_accno_id)) {
+ if ($form->{id} == $form->{$id}) {
+ $form->error($locale->text('Cannot delete default account!'));
+ }
+ }
+
+ if (AM->delete_account(\%myconfig, \%$form)) {
+ $form->redirect($locale->text('Account deleted!'));
+ } else {
+ $form->error($locale->text('Cannot delete account!'));
+ }
+
+}
+
+
+sub list_gifi {
+
+ @{ $form->{fields} } = qw(accno description);
+ $form->{table} = "gifi";
+
+ AM->gifi_accounts(\%myconfig, \%$form);
+
+ $form->{title} = $locale->text('GIFI');
+
+ # construct callback
+ $callback = "$form->{script}?action=list_gifi&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}";
+
+ @column_index = qw(accno description);
+
+ $column_header{accno} = qq|<th class=listheading>|.$locale->text('GIFI').qq|</a></th>|;
+ $column_header{description} = qq|<th class=listheading>|.$locale->text('Description').qq|</a></th>|;
+
+
+ $form->header;
+ $colspan = $#column_index + 1;
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop colspan=$colspan>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "$column_header{$_}\n" }
+
+ print qq|
+</tr>
+|;
+
+ # escape callback
+ $callback = $form->escape($callback);
+
+ foreach $ca (@{ $form->{ALL} }) {
+
+ $i++; $i %= 2;
+
+ print qq|
+<tr valign=top class=listrow$i>|;
+
+ $accno = $form->escape($ca->{accno});
+ $column_data{accno} = qq|<td><a href=$form->{script}?action=edit_gifi&coa=1&accno=$accno&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ca->{accno}</td>|;
+ $column_data{description} = qq|<td>$ca->{description}&nbsp;</td>|;
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print "</tr>\n";
+ }
+
+ print qq|
+ <tr>
+ <td colspan=$colspan><hr size=3 noshade></td>
+ </tr>
+</table>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub add_gifi {
+ $form->{title} = "Add";
+
+ # construct callback
+ $form->{callback} = "$form->{script}?action=list_gifi&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}";
+
+ $form->{coa} = 1;
+
+ &gifi_header;
+ &gifi_footer;
+
+}
+
+
+sub edit_gifi {
+
+ $form->{title} = "Edit";
+
+ AM->get_gifi(\%myconfig, \%$form);
+
+ $form->error($locale->text('Account does not exist!')) unless $form->{accno};
+
+ &gifi_header;
+ &gifi_footer;
+
+}
+
+
+sub gifi_header {
+
+ $form->{title} = $locale->text("$form->{title} GIFI");
+
+# $locale->text('Add GIFI')
+# $locale->text('Edit GIFI')
+
+ for (qw(accno description)) { $form->{$_} = $form->quote($form->{$_}) }
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=id value="$form->{accno}">
+<input type=hidden name=type value=gifi>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right>|.$locale->text('GIFI').qq|</th>
+ <td><input name=accno size=20 value="$form->{accno}"></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Description').qq|</th>
+ <td><input name=description size=60 value="$form->{description}"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td colspan=2><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+}
+
+
+sub gifi_footer {
+
+ $form->hide_form(qw(callback path login sessionid));
+
+# type=submit $locale->text('Save')
+# type=submit $locale->text('Copy to COA')
+# type=submit $locale->text('Delete')
+
+ %button = ();
+
+ $button{'Save'} = { ndx => 3, key => 'S', value => $locale->text('Save') };
+
+ if ($form->{accno}) {
+ if ($form->{orphaned}) {
+ $button{'Delete'} = { ndx => 16, key => 'D', value => $locale->text('Delete') };
+ }
+ }
+
+ if ($form->{coa}) {
+ $button{'Copy to COA'} = { ndx => 7, key => 'C', value => $locale->text('Copy to COA') };
+ }
+
+ for (sort { $button{$a}->{ndx} <=> $button{$b}->{ndx} } keys %button) { $form->print_button(\%button, $_) }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub save_gifi {
+
+ $form->isblank("accno", $locale->text('GIFI missing!'));
+ AM->save_gifi(\%myconfig, \%$form);
+ $form->redirect($locale->text('GIFI saved!'));
+
+}
+
+
+sub copy_to_coa {
+
+ $form->isblank("accno", $locale->text('GIFI missing!'));
+
+ AM->save_gifi(\%myconfig, \%$form);
+
+ delete $form->{id};
+ $form->{gifi_accno} = $form->{accno};
+
+ $form->{title} = "Add";
+ $form->{charttype} = "A";
+
+ &account_header;
+ &form_footer;
+
+}
+
+
+sub delete_gifi {
+
+ AM->delete_gifi(\%myconfig, \%$form);
+ $form->redirect($locale->text('GIFI deleted!'));
+
+}
+
+
+sub add_department {
+
+ $form->{title} = "Add";
+ $form->{role} = "P";
+
+ $form->{callback} = "$form->{script}?action=add_department&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}" unless $form->{callback};
+
+ &department_header;
+ &form_footer;
+
+}
+
+
+sub edit_department {
+
+ $form->{title} = "Edit";
+
+ AM->get_department(\%myconfig, \%$form);
+
+ &department_header;
+ &form_footer;
+
+}
+
+
+sub list_department {
+
+ AM->departments(\%myconfig, \%$form);
+
+ $href = "$form->{script}?action=list_department&direction=$form->{direction}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}";
+
+ $form->sort_order();
+
+ $form->{callback} = "$form->{script}?action=list_department&direction=$form->{direction}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}";
+
+ $callback = $form->escape($form->{callback});
+
+ $form->{title} = $locale->text('Departments');
+
+ @column_index = qw(description cost profit);
+
+ $column_header{description} = qq|<th width=90%><a class=listheading href=$href>|.$locale->text('Description').qq|</a></th>|;
+ $column_header{cost} = qq|<th class=listheading nowrap>|.$locale->text('Cost Center').qq|</th>|;
+ $column_header{profit} = qq|<th class=listheading nowrap>|.$locale->text('Profit Center').qq|</th>|;
+
+ $form->header;
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "$column_header{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ foreach $ref (@{ $form->{ALL} }) {
+
+ $i++; $i %= 2;
+
+ print qq|
+ <tr valign=top class=listrow$i>
+|;
+
+ $costcenter = ($ref->{role} eq "C") ? "*" : "&nbsp;";
+ $profitcenter = ($ref->{role} eq "P") ? "*" : "&nbsp;";
+
+ $column_data{description} = qq|<td><a href=$form->{script}?action=edit_department&id=$ref->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{description}</td>|;
+ $column_data{cost} = qq|<td align=center>$costcenter</td>|;
+ $column_data{profit} = qq|<td align=center>$profitcenter</td>|;
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+<form method=post action=$form->{script}>
+|;
+
+ $form->{type} = "department";
+
+ $form->hide_form(qw(type callback path login sessionid));
+
+ print qq|
+<input class=submit type=submit name=action value="|.$locale->text('Add Department').qq|">|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+ </body>
+ </html>
+|;
+
+}
+
+
+sub department_header {
+
+ $form->{title} = $locale->text("$form->{title} Department");
+
+# $locale->text('Add Department')
+# $locale->text('Edit Department')
+
+ $form->{description} = $form->quote($form->{description});
+
+ if (($rows = $form->numtextrows($form->{description}, 60)) > 1) {
+ $description = qq|<textarea name="description" rows=$rows cols=60 wrap=soft>$form->{description}</textarea>|;
+ } else {
+ $description = qq|<input name=description size=60 value="$form->{description}">|;
+ }
+
+ $costcenter = "checked" if $form->{role} eq "C";
+ $profitcenter = "checked" if $form->{role} eq "P";
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=id value=$form->{id}>
+<input type=hidden name=type value=department>
+
+<table width=100%>
+ <tr>
+ <th class=listtop colspan=2>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <th align=right>|.$locale->text('Description').qq|</th>
+ <td>$description</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td><input type=radio style=radio name=role value="C" $costcenter> |.$locale->text('Cost Center').qq|
+ <input type=radio style=radio name=role value="P" $profitcenter> |.$locale->text('Profit Center').qq|
+ </td>
+ <tr>
+ <td colspan=2><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+}
+
+
+sub save_department {
+
+ $form->isblank("description", $locale->text('Description missing!'));
+ AM->save_department(\%myconfig, \%$form);
+ $form->redirect($locale->text('Department saved!'));
+
+}
+
+
+sub delete_department {
+
+ AM->delete_department(\%myconfig, \%$form);
+ $form->redirect($locale->text('Department deleted!'));
+
+}
+
+
+sub add_business {
+
+ $form->{title} = "Add";
+
+ $form->{callback} = "$form->{script}?action=add_business&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}" unless $form->{callback};
+
+ &business_header;
+ &form_footer;
+
+}
+
+
+sub edit_business {
+
+ $form->{title} = "Edit";
+
+ AM->get_business(\%myconfig, \%$form);
+
+ &business_header;
+
+ $form->{orphaned} = 1;
+ &form_footer;
+
+}
+
+
+sub list_business {
+
+ AM->business(\%myconfig, \%$form);
+
+ $href = "$form->{script}?action=list_business&direction=$form->{direction}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}";
+
+ $form->sort_order();
+
+ $form->{callback} = "$form->{script}?action=list_business&direction=$form->{direction}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}";
+
+ $callback = $form->escape($form->{callback});
+
+ $form->{title} = $locale->text('Type of Business');
+
+ @column_index = qw(description discount);
+
+ $column_header{description} = qq|<th width=90%><a class=listheading href=$href>|.$locale->text('Description').qq|</a></th>|;
+ $column_header{discount} = qq|<th class=listheading>|.$locale->text('Discount').qq| %</th>|;
+
+ $form->header;
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "$column_header{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ foreach $ref (@{ $form->{ALL} }) {
+
+ $i++; $i %= 2;
+
+ print qq|
+ <tr valign=top class=listrow$i>
+|;
+
+ $discount = $form->format_amount(\%myconfig, $ref->{discount} * 100, 2, "&nbsp");
+
+ $column_data{description} = qq|<td><a href=$form->{script}?action=edit_business&id=$ref->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{description}</td>|;
+ $column_data{discount} = qq|<td align=right>$discount</td>|;
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+<form method=post action=$form->{script}>
+|;
+
+ $form->{type} = "business";
+
+ $form->hide_form(qw(type callback path login sessionid));
+
+ print qq|
+<input class=submit type=submit name=action value="|.$locale->text('Add Business').qq|">|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+ </form>
+
+ </body>
+ </html>
+|;
+
+}
+
+
+sub business_header {
+
+ $form->{title} = $locale->text("$form->{title} Business");
+
+# $locale->text('Add Business')
+# $locale->text('Edit Business')
+
+ $form->{description} = $form->quote($form->{description});
+ $form->{discount} = $form->format_amount(\%myconfig, $form->{discount} * 100);
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=id value=$form->{id}>
+<input type=hidden name=type value=business>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right>|.$locale->text('Type of Business').qq|</th>
+ <td><input name=description size=30 value="$form->{description}"></td>
+ <tr>
+ <tr>
+ <th align=right>|.$locale->text('Discount').qq| %</th>
+ <td><input name=discount size=5 value=$form->{discount}></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+}
+
+
+sub save_business {
+
+ $form->isblank("description", $locale->text('Description missing!'));
+ AM->save_business(\%myconfig, \%$form);
+ $form->redirect($locale->text('Business saved!'));
+
+}
+
+
+sub delete_business {
+
+ AM->delete_business(\%myconfig, \%$form);
+ $form->redirect($locale->text('Business deleted!'));
+
+}
+
+
+
+sub add_sic {
+
+ $form->{title} = "Add";
+
+ $form->{callback} = "$form->{script}?action=add_sic&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}" unless $form->{callback};
+
+ &sic_header;
+ &form_footer;
+
+}
+
+
+sub edit_sic {
+
+ $form->{title} = "Edit";
+
+ $form->{code} =~ s/\\'/'/g;
+ $form->{code} =~ s/\\\\/\\/g;
+
+ AM->get_sic(\%myconfig, \%$form);
+ $form->{id} = $form->{code};
+
+ &sic_header;
+
+ $form->{orphaned} = 1;
+ &form_footer;
+
+}
+
+
+sub list_sic {
+
+ AM->sic(\%myconfig, \%$form);
+
+ $href = "$form->{script}?action=list_sic&direction=$form->{direction}&oldsort=$form->{oldsort}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}";
+
+ $form->sort_order();
+
+ $form->{callback} = "$form->{script}?action=list_sic&direction=$form->{direction}&oldsort=$form->{oldsort}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}";
+
+ $callback = $form->escape($form->{callback});
+
+ $form->{title} = $locale->text('Standard Industrial Codes');
+
+ @column_index = $form->sort_columns(qw(code description));
+
+ $column_header{code} = qq|<th><a class=listheading href=$href&sort=code>|.$locale->text('Code').qq|</a></th>|;
+ $column_header{description} = qq|<th><a class=listheading href=$href&sort=description>|.$locale->text('Description').qq|</a></th>|;
+
+ $form->header;
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "$column_header{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ foreach $ref (@{ $form->{ALL} }) {
+
+ $i++; $i %= 2;
+
+ if ($ref->{sictype} eq 'H') {
+ print qq|
+ <tr valign=top class=listheading>
+|;
+ $column_data{code} = qq|<th><a href=$form->{script}?action=edit_sic&code=$ref->{code}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{code}</th>|;
+ $column_data{description} = qq|<th>$ref->{description}</th>|;
+
+ } else {
+ print qq|
+ <tr valign=top class=listrow$i>
+|;
+
+ $column_data{code} = qq|<td><a href=$form->{script}?action=edit_sic&code=$ref->{code}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{code}</td>|;
+ $column_data{description} = qq|<td>$ref->{description}</td>|;
+
+ }
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+<form method=post action=$form->{script}>
+|;
+
+ $form->{type} = "sic";
+
+ $form->hide_form(qw(type callback path login sessionid));
+
+ print qq|
+<input class=submit type=submit name=action value="|.$locale->text('Add SIC').qq|">|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+ </body>
+ </html>
+|;
+
+}
+
+
+sub sic_header {
+
+ $form->{title} = $locale->text("$form->{title} SIC");
+
+# $locale->text('Add SIC')
+# $locale->text('Edit SIC')
+
+ for (qw(code description)) { $form->{$_} = $form->quote($form->{$_}) }
+
+ $checked = ($form->{sictype} eq 'H') ? "checked" : "";
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=type value=sic>
+<input type=hidden name=id value="$form->{code}">
+
+<table width=100%>
+ <tr>
+ <th class=listtop colspan=2>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <th align=right>|.$locale->text('Code').qq|</th>
+ <td><input name=code size=10 value="$form->{code}"></td>
+ <tr>
+ <tr>
+ <td></td>
+ <th align=left><input name=sictype class=checkbox type=checkbox value="H" $checked> |.$locale->text('Heading').qq|</th>
+ <tr>
+ <tr>
+ <th align=right>|.$locale->text('Description').qq|</th>
+ <td><input name=description size=60 value="$form->{description}"></td>
+ </tr>
+ <td colspan=2><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+}
+
+
+sub save_sic {
+
+ $form->isblank("code", $locale->text('Code missing!'));
+ $form->isblank("description", $locale->text('Description missing!'));
+ AM->save_sic(\%myconfig, \%$form);
+ $form->redirect($locale->text('SIC saved!'));
+
+}
+
+
+sub delete_sic {
+
+ AM->delete_sic(\%myconfig, \%$form);
+ $form->redirect($locale->text('SIC deleted!'));
+
+}
+
+
+sub add_language {
+
+ $form->{title} = "Add";
+
+ $form->{callback} = "$form->{script}?action=add_language&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}" unless $form->{callback};
+
+ &language_header;
+ &form_footer;
+
+}
+
+
+sub edit_language {
+
+ $form->{title} = "Edit";
+
+ $form->{code} =~ s/\\'/'/g;
+ $form->{code} =~ s/\\\\/\\/g;
+
+ AM->get_language(\%myconfig, \%$form);
+ $form->{id} = $form->{code};
+
+ &language_header;
+
+ $form->{orphaned} = 1;
+ &form_footer;
+
+}
+
+
+sub list_language {
+
+ AM->language(\%myconfig, \%$form);
+
+ $href = "$form->{script}?action=list_language&direction=$form->{direction}&oldsort=$form->{oldsort}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}";
+
+ $form->sort_order();
+
+ $form->{callback} = "$form->{script}?action=list_language&direction=$form->{direction}&oldsort=$form->{oldsort}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}";
+
+ $callback = $form->escape($form->{callback});
+
+ $form->{title} = $locale->text('Languages');
+
+ @column_index = $form->sort_columns(qw(code description));
+
+ $column_header{code} = qq|<th><a class=listheading href=$href&sort=code>|.$locale->text('Code').qq|</a></th>|;
+ $column_header{description} = qq|<th><a class=listheading href=$href&sort=description>|.$locale->text('Description').qq|</a></th>|;
+
+ $form->header;
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "$column_header{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ foreach $ref (@{ $form->{ALL} }) {
+
+ $i++; $i %= 2;
+
+ print qq|
+ <tr valign=top class=listrow$i>
+|;
+
+ $column_data{code} = qq|<td><a href=$form->{script}?action=edit_language&code=$ref->{code}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{code}</td>|;
+ $column_data{description} = qq|<td>$ref->{description}</td>|;
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+<form method=post action=$form->{script}>
+|;
+
+ $form->{type} = "language";
+
+ $form->hide_form(qw(type callback path login sessionid));
+
+ print qq|
+<input class=submit type=submit name=action value="|.$locale->text('Add Language').qq|">|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+ </body>
+ </html>
+|;
+
+}
+
+
+sub language_header {
+
+ $form->{title} = $locale->text("$form->{title} Language");
+
+# $locale->text('Add Language')
+# $locale->text('Edit Language')
+
+ for (qw(code description)) { $form->{$_} = $form->quote($form->{$_}) }
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=type value=language>
+<input type=hidden name=id value="$form->{code}">
+
+<table width=100%>
+ <tr>
+ <th class=listtop colspan=2>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <th align=right>|.$locale->text('Code').qq|</th>
+ <td><input name=code size=10 value="$form->{code}"></td>
+ <tr>
+ <tr>
+ <th align=right>|.$locale->text('Description').qq|</th>
+ <td><input name=description size=60 value="$form->{description}"></td>
+ </tr>
+ <td colspan=2><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+}
+
+
+sub save_language {
+
+ $form->isblank("code", $locale->text('Code missing!'));
+ $form->isblank("description", $locale->text('Description missing!'));
+
+ $form->{code} =~ s/(\.\.|\*)//g;
+
+ AM->save_language(\%myconfig, \%$form);
+
+ if (! -d "$myconfig{templates}/$form->{code}") {
+
+ umask(002);
+
+ if (mkdir "$myconfig{templates}/$form->{code}", oct("771")) {
+
+ umask(007);
+
+ opendir TEMPLATEDIR, "$myconfig{templates}" or $form->error("$myconfig{templates} : $!");
+ @templates = grep !/^(\.|\.\.)/, readdir TEMPLATEDIR;
+ closedir TEMPLATEDIR;
+
+ foreach $file (@templates) {
+ if (-f "$myconfig{templates}/$file") {
+ open(TEMP, "$myconfig{templates}/$file") or $form->error("$myconfig{templates}/$file : $!");
+
+ open(NEW, ">$myconfig{templates}/$form->{code}/$file") or $form->error("$myconfig{templates}/$form->{code}/$file : $!");
+
+ while ($line = <TEMP>) {
+ print NEW $line;
+ }
+ close(TEMP);
+ close(NEW);
+ }
+ }
+ } else {
+ $form->error("${templates}/$form->{code} : $!");
+ }
+ }
+
+ $form->redirect($locale->text('Language saved!'));
+
+}
+
+
+sub delete_language {
+
+ $form->{title} = $locale->text('Confirm!');
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+|;
+
+ for (qw(action nextsub)) { delete $form->{$_} }
+
+ $form->hide_form;
+
+ print qq|
+<h2 class=confirm>$form->{title}</h2>
+
+<h4>|.$locale->text('Deleting a language will also delete the templates for the language').qq| $form->{invnumber}</h4>
+
+<input type=hidden name=action value=continue>
+<input type=hidden name=nextsub value=yes_delete_language>
+<input name=action class=submit type=submit value="|.$locale->text('Continue').qq|">
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub yes_delete_language {
+
+ AM->delete_language(\%myconfig, \%$form);
+
+ # delete templates
+ $dir = "$myconfig{templates}/$form->{code}";
+ if (-d $dir) {
+ unlink <$dir/*>;
+ rmdir "$myconfig{templates}/$form->{code}";
+ }
+ $form->redirect($locale->text('Language deleted!'));
+
+}
+
+
+sub display_stylesheet {
+
+ $form->{file} = "css/$myconfig{stylesheet}";
+ &display_form;
+
+}
+
+
+sub list_templates {
+
+ AM->language(\%myconfig, \%$form);
+
+ if (! @{ $form->{ALL} }) {
+ &display_form;
+ exit;
+ }
+
+ unshift @{ $form->{ALL} }, { code => '.', description => $locale->text('Default Template') };
+
+ $href = "$form->{script}?action=list_templates&direction=$form->{direction}&oldsort=$form->{oldsort}&file=$form->{file}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}";
+
+ $form->sort_order();
+
+ $form->{callback} = "$form->{script}?action=list_templates&direction=$form->{direction}&oldsort=$form->{oldsort}&file=$form->{file}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}";
+
+ $callback = $form->escape($form->{callback});
+
+ chomp $myconfig{templates};
+ $form->{file} =~ s/$myconfig{templates}//;
+ $form->{file} =~ s/\///;
+ $form->{title} = $form->{file};
+
+ @column_index = $form->sort_columns(qw(code description));
+
+ $column_header{code} = qq|<th><a class=listheading href=$href&sort=code>|.$locale->text('Code').qq|</a></th>|;
+ $column_header{description} = qq|<th><a class=listheading href=$href&sort=description>|.$locale->text('Description').qq|</a></th>|;
+
+ $form->header;
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "$column_header{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ foreach $ref (@{ $form->{ALL} }) {
+
+ $i++; $i %= 2;
+
+ print qq|
+ <tr valign=top class=listrow$i>
+|;
+
+ $column_data{code} = qq|<td><a href=$form->{script}?action=display_form&file=$myconfig{templates}/$ref->{code}/$form->{file}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&code=$ref->{code}&callback=$callback>$ref->{code}</td>|;
+ $column_data{description} = qq|<td>$ref->{description}</td>|;
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+<form method=post action=$form->{script}>
+
+<input name=callback type=hidden value="$form->{callback}">
+
+<input type=hidden name=type value=language>
+
+<input type=hidden name=path value=$form->{path}>
+<input type=hidden name=login value=$form->{login}>
+<input type=hidden name=sessionid value=$form->{sessionid}>
+|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+ </body>
+ </html>
+|;
+
+}
+
+
+sub display_form {
+
+ $form->{file} =~ s/^(.:)*?\/|\.\.\///g;
+ $form->{file} =~ s/^\/*//g;
+ $form->{file} =~ s/$userspath//;
+ $form->{file} =~ s/$memberfile//;
+
+ $form->error("$!: $form->{file}") unless -f $form->{file};
+
+ AM->load_template(\%$form);
+
+ $form->{title} = $form->{file};
+
+ $form->{body} =~ s/<%include (.*?)%>/<a href=$form->{script}\?action=display_form&file=$myconfig{templates}\/$form->{code}\/$1&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}>$1<\/a>/g;
+
+ # if it is anything but html
+ if ($form->{file} !~ /\.html$/) {
+ $form->{body} = "<pre>\n$form->{body}\n</pre>";
+ }
+
+ $form->header;
+
+ print qq|
+<body>
+
+$form->{body}
+
+<form method=post action=$form->{script}>
+|;
+
+ $form->{type} = "template";
+
+ $form->hide_form(qw(file type path login sessionid));
+
+ print qq|
+<input name=action type=submit class=submit value="|.$locale->text('Edit').qq|">|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub edit_template {
+
+ AM->load_template(\%$form);
+
+ $form->{title} = $locale->text('Edit Template');
+ # convert &nbsp to &amp;nbsp;
+ $form->{body} =~ s/&nbsp;/&amp;nbsp;/gi;
+
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input name=file type=hidden value=$form->{file}>
+<input name=type type=hidden value=template>
+
+<input type=hidden name=path value=$form->{path}>
+<input type=hidden name=login value=$form->{login}>
+<input type=hidden name=sessionid value=$form->{sessionid}>
+
+<input name=callback type=hidden value="$form->{script}?action=display_form&file=$form->{file}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}">
+
+<textarea name=body rows=25 cols=70>
+$form->{body}
+</textarea>
+
+<br>
+<input type=submit class=submit name=action value="|.$locale->text('Save').qq|">|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print q|
+ </form>
+
+
+</body>
+</html>
+|;
+
+}
+
+
+sub save_template {
+
+ AM->save_template(\%$form);
+ $form->redirect($locale->text('Template saved!'));
+
+}
+
+
+sub defaults {
+
+ # get defaults for account numbers and last numbers
+ AM->defaultaccounts(\%myconfig, \%$form);
+
+ foreach $key (keys %{ $form->{accno} }) {
+ foreach $accno (sort keys %{ $form->{accno}{$key} }) {
+ $form->{account}{$key} .= "<option>$accno--$form->{accno}{$key}{$accno}{description}\n";
+ $form->{accno}{$form->{accno}{$key}{$accno}{id}} = $accno;
+ }
+ }
+
+ for (qw(IC IC_inventory IC_income IC_expense FX_gain FX_loss)) { $form->{account}{$_} =~ s/>$form->{accno}{$form->{defaults}{$_}}/ selected>$form->{accno}{$form->{defaults}{$_}}/ }
+
+ for (qw(accno defaults)) { delete $form->{$_} }
+
+ $form->{title} = $locale->text('System Defaults');
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=type value=defaults>
+
+<table width=100%>
+ <tr><th class=listtop>$form->{title}</th></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right>|.$locale->text('Business Number').qq|</th>
+ <td><input name=businessnumber size=25 value="$form->{businessnumber}"></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Weight Unit').qq|</th>
+ <td><input name=weightunit size=5 value="$form->{weightunit}"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <th class=listheading>|.$locale->text('Last Numbers & Default Accounts').qq|</th>
+ </tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Inventory').qq|</th>
+ <td><select name=IC>$form->{account}{IC}</select></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Income').qq|</th>
+ <td><select name=IC_income>$form->{account}{IC_income}</select></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Expense').qq|</th>
+ <td><select name=IC_expense>$form->{account}{IC_expense}</select></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Foreign Exchange Gain').qq|</th>
+ <td><select name=FX_gain>$form->{account}{FX_gain}</select></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Foreign Exchange Loss').qq|</th>
+ <td><select name=FX_loss>$form->{account}{FX_loss}</select></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <th align=left>|.$locale->text('Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies').qq|</th>
+ </tr>
+ <tr>
+ <td>
+ <input name=curr size=40 value="$form->{curr}">
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('GL Reference Number').qq|</th>
+ <td><input name=glnumber size=40 value="$form->{glnumber}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Sales Invoice/AR Transaction Number').qq|</th>
+ <td><input name=sinumber size=40 value="$form->{sinumber}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Sales Order Number').qq|</th>
+ <td><input name=sonumber size=40 value="$form->{sonumber}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Vendor Invoice/AP Transaction Number').qq|</th>
+ <td><input name=vinumber size=40 value="$form->{vinumber}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Purchase Order Number').qq|</th>
+ <td><input name=ponumber size=40 value="$form->{ponumber}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Sales Quotation Number').qq|</th>
+ <td><input name=sqnumber size=40 value="$form->{sqnumber}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('RFQ Number').qq|</th>
+ <td><input name=rfqnumber size=40 value="$form->{rfqnumber}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Part Number').qq|</th>
+ <td><input name=partnumber size=40 value="$form->{partnumber}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Job/Project Number').qq|</th>
+ <td><input name=projectnumber size=40 value="$form->{projectnumber}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Employee Number').qq|</th>
+ <td><input name=employeenumber size=40 value="$form->{employeenumber}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Customer Number').qq|</th>
+ <td><input name=customernumber size=40 value="$form->{customernumber}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Vendor Number').qq|</th>
+ <td><input name=vendornumber size=40 value="$form->{vendornumber}"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+ $form->hide_form(qw(path login sessionid));
+
+ print qq|
+<input type=submit class=submit name=action value="|.$locale->text('Save').qq|">|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub taxes {
+
+ # get tax account numbers
+ AM->taxes(\%myconfig, \%$form);
+
+ $i = 0;
+ foreach $ref (@{ $form->{taxrates} }) {
+ $i++;
+ $form->{"taxrate_$i"} = $form->format_amount(\%myconfig, $ref->{rate});
+ $form->{"taxdescription_$i"} = $ref->{description};
+
+ for (qw(taxnumber validto)) { $form->{"${_}_$i"} = $ref->{$_} }
+ $form->{taxaccounts} .= "$ref->{id}_$i ";
+ }
+ chop $form->{taxaccounts};
+
+ &display_taxes;
+
+}
+
+
+sub display_taxes {
+
+ $form->{title} = $locale->text('Taxes');
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=type value=taxes>
+
+<table width=100%>
+ <tr><th class=listtop>$form->{title}</th></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th></th>
+ <th>|.$locale->text('Rate').qq| (%)</th>
+ <th>|.$locale->text('Number').qq|</th>
+ <th>|.$locale->text('Valid To').qq|</th>
+ </tr>
+|;
+
+ for (split(/ /, $form->{taxaccounts})) {
+
+ ($null, $i) = split /_/, $_;
+
+ $form->{"taxrate_$i"} = $form->format_amount(\%myconfig, $form->{"taxrate_$i"});
+
+ $form->hide_form("taxdescription_$i");
+
+ print qq|
+ <tr>
+ <th align=right>|;
+
+ if ($form->{"taxdescription_$i"} eq $sametax) {
+ print "";
+ } else {
+ print qq|$form->{"taxdescription_$i"}|;
+ }
+
+ print qq|</th>
+ <td><input name="taxrate_$i" size=6 value=$form->{"taxrate_$i"}></td>
+ <td><input name="taxnumber_$i" value="$form->{"taxnumber_$i"}"></td>
+ <td><input name="validto_$i" size=11 value="$form->{"validto_$i"}" title="$myconfig{dateformat}"></td>
+ </tr>
+|;
+ $sametax = $form->{"taxdescription_$i"};
+
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+ $form->hide_form(qw(taxaccounts path login sessionid));
+
+ print qq|
+<input type=submit class=submit name=action value="|.$locale->text('Update').qq|">
+<input type=submit class=submit name=action value="|.$locale->text('Save').qq|">|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub update {
+
+ @a = split / /, $form->{taxaccounts};
+ $ndx = $#a + 1;
+
+ foreach $item (@a) {
+ ($accno, $i) = split /_/, $item;
+ push @t, $accno;
+
+ if ($form->{"validto_$i"}) {
+ $j = $i + 1;
+ if ($form->{"taxdescription_$i"} ne $form->{"taxdescription_$j"}) {
+ #insert line
+ for ($j = $ndx + 1; $j > $i; $j--) {
+ $k = $j - 1;
+ for (qw(taxrate taxdescription taxnumber validto)) { $form->{"${_}_$j"} = $form->{"${_}_$k"} }
+ }
+ $ndx++;
+ $k = $i + 1;
+ for (qw(taxdescription taxnumber)) { $form->{"${_}_$k"} = $form->{"${_}_$i"} }
+ for (qw(taxrate validto)) { $form->{"${_}_$k"} = "" }
+ push @t, $accno;
+ }
+ } else {
+ # remove line
+ $j = $i + 1;
+ if ($form->{"taxdescription_$i"} eq $form->{"taxdescription_$j"}) {
+ for ($j = $i + 1; $j <= $ndx; $j++) {
+ $k = $j + 1;
+ for (qw(taxrate taxdescription taxnumber validto)) { $form->{"${_}_$j"} = $form->{"${_}_$k"} }
+ }
+ $ndx--;
+ splice @t, $i-1, 1;
+ }
+ }
+
+ }
+
+ $i = 1;
+ $form->{taxaccounts} = "";
+ for (@t) {
+ $form->{taxaccounts} .= "${_}_$i ";
+ $i++;
+ }
+ chop $form->{taxaccounts};
+
+ &display_taxes;
+
+}
+
+
+
+sub config {
+
+ foreach $item (qw(mm-dd-yy mm/dd/yy dd-mm-yy dd/mm/yy dd.mm.yy yyyy-mm-dd)) {
+ $dateformat .= ($item eq $myconfig{dateformat}) ? "<option selected>$item\n" : "<option>$item\n";
+ }
+
+ foreach $item (qw(1,000.00 1000.00 1.000,00 1000,00 1'000.00)) {
+ $numberformat .= ($item eq $myconfig{numberformat}) ? "<option selected>$item\n" : "<option>$item\n";
+ }
+
+ for (qw(name company address signature)) { $myconfig{$_} = $form->quote($myconfig{$_}) }
+ for (qw(address signature)) { $myconfig{$_} =~ s/\\n/\n/g }
+
+ %countrycodes = User->country_codes;
+ $countrycodes = '';
+
+ foreach $key (sort { $countrycodes{$a} cmp $countrycodes{$b} } keys %countrycodes) {
+ $countrycodes .= ($myconfig{countrycode} eq $key) ? "<option selected value=$key>$countrycodes{$key}\n" : "<option value=$key>$countrycodes{$key}\n";
+ }
+ $countrycodes = qq|<option value="">English\n$countrycodes|;
+
+ opendir CSS, "css/.";
+ @all = grep /.*\.css$/, readdir CSS;
+ closedir CSS;
+
+ foreach $item (@all) {
+ if ($item eq $myconfig{stylesheet}) {
+ $selectstylesheet .= qq|<option selected>$item\n|;
+ } else {
+ $selectstylesheet .= qq|<option>$item\n|;
+ }
+ }
+ $selectstylesheet .= "<option>\n";
+
+ if (%printer && $latex) {
+ $selectprinter = "<option>\n";
+ foreach $item (sort keys %printer) {
+ if ($myconfig{printer} eq $item) {
+ $selectprinter .= qq|<option value="$item" selected>$item\n|;
+ } else {
+ $selectprinter .= qq|<option value="$item">$item\n|;
+ }
+ }
+
+ $printer = qq|
+ <tr>
+ <th align=right>|.$locale->text('Printer').qq|</th>
+ <td><select name=printer>$selectprinter</select></td>
+ </tr>
+|;
+ }
+
+ $form->{title} = $locale->text('Edit Preferences for').qq| $form->{login}|;
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=old_password value=$myconfig{password}>
+<input type=hidden name=type value=preferences>
+<input type=hidden name=role value=$myconfig{role}>
+
+<table width=100%>
+ <tr><th class=listtop>$form->{title}</th></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=right>|.$locale->text('Name').qq|</th>
+ <td><input name=name size=20 value="$myconfig{name}"></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('E-mail').qq|</th>
+ <td><input name=email size=35 value="$myconfig{email}"></td>
+ </tr>
+ <tr valign=top>
+ <th align=right>|.$locale->text('Signature').qq|</th>
+ <td><textarea name=signature rows=3 cols=35>$myconfig{signature}</textarea></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Phone').qq|</th>
+ <td><input name=tel size=14 value="$myconfig{tel}"></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Fax').qq|</th>
+ <td><input name=fax size=14 value="$myconfig{fax}"></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Company').qq|</th>
+ <td><input name=company size=35 value="$myconfig{company}"></td>
+ </tr>
+ <tr valign=top>
+ <th align=right>|.$locale->text('Address').qq|</th>
+ <td><textarea name=address rows=4 cols=35>$myconfig{address}</textarea></td>
+ </tr>
+ </table>
+ </td>
+ <td>
+ <table>
+ <tr>
+ <th align=right>|.$locale->text('Password').qq|</th>
+ <td><input type=password name=new_password size=10 value=$myconfig{password}></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Confirm').qq|</th>
+ <td><input type=password name=confirm_password size=10></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Date Format').qq|</th>
+ <td><select name=dateformat>$dateformat</select></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Number Format').qq|</th>
+ <td><select name=numberformat>$numberformat</select></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Dropdown Limit').qq|</th>
+ <td><input name=vclimit size=10 value="$myconfig{vclimit}"></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Menu Width').qq|</th>
+ <td><input name=menuwidth size=10 value="$myconfig{menuwidth}"></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Language').qq|</th>
+ <td><select name=countrycode>$countrycodes</select></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Session Timeout').qq|</th>
+ <td><input name=timeout size=10 value="$myconfig{timeout}"></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Stylesheet').qq|</th>
+ <td><select name=usestylesheet>$selectstylesheet</select></td>
+ </tr>
+ $printer
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+ $form->hide_form(qw(path login sessionid));
+
+ print qq|
+<input type=submit class=submit name=action value="|.$locale->text('Save').qq|">|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub save_defaults {
+
+ if (AM->save_defaults(\%myconfig, \%$form)) {
+ $form->redirect($locale->text('Defaults saved!'));
+ } else {
+ $form->error($locale->text('Cannot save defaults!'));
+ }
+
+}
+
+
+sub save_taxes {
+
+ if (AM->save_taxes(\%myconfig, \%$form)) {
+ $form->redirect($locale->text('Taxes saved!'));
+ } else {
+ $form->error($locale->text('Cannot save taxes!'));
+ }
+
+}
+
+
+sub save_preferences {
+
+ $form->{stylesheet} = $form->{usestylesheet};
+
+ if ($form->{new_password} ne $form->{old_password}) {
+ $form->error($locale->text('Password does not match!')) if $form->{new_password} ne $form->{confirm_password};
+ }
+
+ if (AM->save_preferences(\%myconfig, \%$form, $memberfile, $userspath)) {
+ $form->redirect($locale->text('Preferences saved!'));
+ } else {
+ $form->error($locale->text('Cannot save preferences!'));
+ }
+
+}
+
+
+sub backup {
+
+ if ($form->{media} eq 'email') {
+ $form->error($locale->text('No email address for')." $myconfig{name}") unless ($myconfig{email});
+
+ $form->{OUT} = "$sendmail";
+
+ }
+
+ $SIG{INT} = 'IGNORE';
+ AM->backup(\%myconfig, \%$form, $userspath, $gzip);
+
+ if ($form->{media} eq 'email') {
+ $form->redirect($locale->text('Backup sent to').qq| $myconfig{email}|);
+ }
+
+}
+
+
+
+sub audit_control {
+
+ $form->{title} = $locale->text('Audit Control');
+
+ AM->closedto(\%myconfig, \%$form);
+
+ if ($form->{revtrans}) {
+ $checked{revtransY} = "checked";
+ } else {
+ $checked{revtransN} = "checked";
+ }
+
+ if ($form->{audittrail}) {
+ $checked{audittrailY} = "checked";
+ } else {
+ $checked{audittrailN} = "checked";
+ }
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=path value=$form->{path}>
+<input type=hidden name=login value=$form->{login}>
+<input type=hidden name=sessionid value=$form->{sessionid}>
+
+<table width=100%>
+ <tr><th class=listtop>$form->{title}</th></tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right>|.$locale->text('Enforce transaction reversal for all dates').qq|</th>
+ <td><input name=revtrans class=radio type=radio value="1" $checked{revtransY}> |.$locale->text('Yes').qq| <input name=revtrans class=radio type=radio value="0" $checked{revtransN}> |.$locale->text('No').qq|</td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Close Books up to').qq|</th>
+ <td><input name=closedto size=11 title="$myconfig{dateformat}" value=$form->{closedto}></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Activate Audit trail').qq|</th>
+ <td><input name=audittrail class=radio type=radio value="1" $checked{audittrailY}> |.$locale->text('Yes').qq| <input name=audittrail class=radio type=radio value="0" $checked{audittrailN}> |.$locale->text('No').qq|</td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Remove Audit trail up to').qq|</th>
+ <td><input name=removeaudittrail size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+
+<hr size=3 noshade>
+
+<br>
+<input type=hidden name=nextsub value=doclose>
+<input type=hidden name=action value=continue>
+<input type=submit class=submit name=action value="|.$locale->text('Continue').qq|">
+
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub doclose {
+
+ AM->closebooks(\%myconfig, \%$form);
+
+ if ($form->{revtrans}) {
+ $msg = $locale->text('Transaction reversal enforced for all dates');
+ } else {
+
+ if ($form->{closedto}) {
+ $msg = $locale->text('Transaction reversal enforced up to')
+ ." ".$locale->date(\%myconfig, $form->{closedto}, 1);
+ } else {
+ $msg = $locale->text('Books are open');
+ }
+ }
+
+ $msg .= "<p>";
+ if ($form->{audittrail}) {
+ $msg .= $locale->text('Audit trail enabled');
+ } else {
+ $msg .= $locale->text('Audit trail disabled');
+ }
+
+ $msg .= "<p>";
+ if ($form->{removeaudittrail}) {
+ $msg .= $locale->text('Audit trail removed up to')
+ ." ".$locale->date(\%myconfig, $form->{removeaudittrail}, 1);
+ }
+
+ $form->redirect($msg);
+
+}
+
+
+sub add_warehouse {
+
+ $form->{title} = "Add";
+
+ $form->{callback} = "$form->{script}?action=add_warehouse&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}" unless $form->{callback};
+
+ &warehouse_header;
+ &form_footer;
+
+}
+
+
+sub edit_warehouse {
+
+ $form->{title} = "Edit";
+
+ AM->get_warehouse(\%myconfig, \%$form);
+
+ &warehouse_header;
+ &form_footer;
+
+}
+
+
+sub list_warehouse {
+
+ AM->warehouses(\%myconfig, \%$form);
+
+ $href = "$form->{script}?action=list_warehouse&direction=$form->{direction}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}";
+
+ $form->sort_order();
+
+ $form->{callback} = "$form->{script}?action=list_warehouse&direction=$form->{direction}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}";
+
+ $callback = $form->escape($form->{callback});
+
+ $form->{title} = $locale->text('Warehouses');
+
+ @column_index = qw(description);
+
+ $column_header{description} = qq|<th width=100%><a class=listheading href=$href>|.$locale->text('Description').qq|</a></th>|;
+
+ $form->header;
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "$column_header{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ foreach $ref (@{ $form->{ALL} }) {
+
+ $i++; $i %= 2;
+
+ print qq|
+ <tr valign=top class=listrow$i>
+|;
+
+ $column_data{description} = qq|<td><a href=$form->{script}?action=edit_warehouse&id=$ref->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{description}</td>|;
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+<form method=post action=$form->{script}>
+|;
+
+ $form->{type} = "warehouse";
+
+ $form->hide_form(qw(type callback path login sessionid));
+
+ print qq|
+<input class=submit type=submit name=action value="|.$locale->text('Add Warehouse').qq|">|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+ </body>
+ </html>
+|;
+
+}
+
+
+
+sub warehouse_header {
+
+ $form->{title} = $locale->text("$form->{title} Warehouse");
+
+# $locale->text('Add Warehouse')
+# $locale->text('Edit Warehouse')
+
+ $form->{description} = $form->quote($form->{description});
+
+ if (($rows = $form->numtextrows($form->{description}, 60)) > 1) {
+ $description = qq|<textarea name="description" rows=$rows cols=60 wrap=soft>$form->{description}</textarea>|;
+ } else {
+ $description = qq|<input name=description size=60 value="$form->{description}">|;
+ }
+
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=id value=$form->{id}>
+<input type=hidden name=type value=warehouse>
+
+<table width=100%>
+ <tr>
+ <th class=listtop colspan=2>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <th align=right>|.$locale->text('Description').qq|</th>
+ <td>$description</td>
+ </tr>
+ <tr>
+ <td colspan=2><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+}
+
+
+sub save_warehouse {
+
+ $form->isblank("description", $locale->text('Description missing!'));
+ AM->save_warehouse(\%myconfig, \%$form);
+ $form->redirect($locale->text('Warehouse saved!'));
+
+}
+
+
+sub delete_warehouse {
+
+ AM->delete_warehouse(\%myconfig, \%$form);
+ $form->redirect($locale->text('Warehouse deleted!'));
+
+}
+
+
+sub yearend {
+
+ AM->earningsaccounts(\%myconfig, \%$form);
+ $chart = "";
+ for (@{ $form->{chart} }) { $chart .= "<option>$_->{accno}--$_->{description}" }
+
+ $form->{title} = $locale->text('Yearend');
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=decimalplaces value=2>
+<input type=hidden name=l_accno value=Y>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right>|.$locale->text('Yearend').qq|</th>
+ <td><input name=todate size=11 title="$myconfig{dateformat}" value=$todate></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Reference').qq|</th>
+ <td><input name=reference size=20 value="|.$locale->text('Yearend').qq|"></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Description').qq|</th>
+ <td><textarea name=description rows=3 cols=50 wrap=soft></textarea></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Retained Earnings').qq|</th>
+ <td><select name=accno>$chart</select></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Method').qq|</th>
+ <td><input name=method class=radio type=radio value=accrual checked>&nbsp;|.$locale->text('Accrual').qq|&nbsp;<input name=method class=radio type=radio value=cash>&nbsp;|.$locale->text('Cash').qq|</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+
+<hr size=3 noshade>
+
+<input type=hidden name=nextsub value=generate_yearend>
+|;
+
+ $form->hide_form(qw(path login sessionid));
+
+ print qq|
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">|;
+
+}
+
+
+sub generate_yearend {
+
+ $form->isblank("todate", $locale->text('Yearend date missing!'));
+
+ RP->yearend_statement(\%myconfig, \%$form);
+
+ $form->{transdate} = $form->{todate};
+
+ $earnings = 0;
+
+ $form->{rowcount} = 1;
+ foreach $key (keys %{ $form->{I} }) {
+ if ($form->{I}{$key}{charttype} eq "A") {
+ $form->{"debit_$form->{rowcount}"} = $form->{I}{$key}{this};
+ $earnings += $form->{I}{$key}{this};
+ $form->{"accno_$form->{rowcount}"} = $key;
+ $form->{rowcount}++;
+ $ok = 1;
+ }
+ }
+
+ foreach $key (keys %{ $form->{E} }) {
+ if ($form->{E}{$key}{charttype} eq "A") {
+ $form->{"credit_$form->{rowcount}"} = $form->{E}{$key}{this} * -1;
+ $earnings += $form->{E}{$key}{this};
+ $form->{"accno_$form->{rowcount}"} = $key;
+ $form->{rowcount}++;
+ $ok = 1;
+ }
+ }
+ if ($earnings > 0) {
+ $form->{"credit_$form->{rowcount}"} = $earnings;
+ $form->{"accno_$form->{rowcount}"} = $form->{accno}
+ } else {
+ $form->{"debit_$form->{rowcount}"} = $earnings * -1;
+ $form->{"accno_$form->{rowcount}"} = $form->{accno}
+ }
+
+ if ($ok) {
+ if (AM->post_yearend(\%myconfig, \%$form)) {
+ $form->redirect($locale->text('Yearend posted!'));
+ } else {
+ $form->error($locale->text('Yearend posting failed!'));
+ }
+ } else {
+ $form->error('Nothing to do!');
+ }
+
+}
+
+
+
+sub company_logo {
+
+ $myconfig{address} =~ s/\\n/<br>/g;
+ $myconfig{dbhost} = $locale->text('localhost') unless $myconfig{dbhost};
+
+ $form->{stylesheet} = $myconfig{stylesheet};
+
+ $form->{title} = $locale->text('About');
+
+ # create the logo screen
+ $form->header;
+
+ print qq|
+<body>
+
+<pre>
+
+</pre>
+<center>
+<a href="http://sourceforge.net/projects/ledger-smb/" target=_blank><img src=ledger-smb.png border=0></a>
+<h1 class=login>|.$locale->text('Version').qq| $form->{version}</h1>
+
+<p>
+|.$locale->text('Licensed to').qq|
+<p>
+<b>
+$myconfig{company}
+<br>$myconfig{address}
+</b>
+
+<p>
+<table border=0>
+ <tr>
+ <th align=right>|.$locale->text('User').qq|</th>
+ <td>$myconfig{name}</td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Dataset').qq|</th>
+ <td>$myconfig{dbname}</td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Database Host').qq|</th>
+ <td>$myconfig{dbhost}</td>
+ </tr>
+</table>
+
+</center>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub recurring_transactions {
+
+# $locale->text('Day')
+# $locale->text('Days')
+# $locale->text('Month')
+# $locale->text('Months')
+# $locale->text('Week')
+# $locale->text('Weeks')
+# $locale->text('Year')
+# $locale->text('Years')
+
+ $form->{stylesheet} = $myconfig{stylesheet};
+
+ $form->{title} = $locale->text('Recurring Transactions');
+
+ $column_header{id} = "";
+
+ AM->recurring_transactions(\%myconfig, \%$form);
+
+ $href = "$form->{script}?action=recurring_transactions";
+ for (qw(direction oldsort path login sessionid)) { $href .= qq|&$_=$form->{$_}| }
+
+ $form->sort_order();
+
+ # create the logo screen
+ $form->header;
+
+ @column_index = qw(ndx reference description);
+
+ push @column_index, qw(nextdate enddate id amount curr repeat howmany recurringemail recurringprint);
+
+ $column_header{reference} = "<th><a class=listheading href=$href&sort=reference>".$locale->text('Reference').qq"</a></th>";
+ $column_header{ndx} = "<th class=listheading>&nbsp;</th>";
+ $column_header{id} = "<th class=listheading>".$locale->text('ID')."</th>";
+ $column_header{description} = "<th class=listheading>".$locale->text('Description')."</th>";
+ $column_header{nextdate} = "<th><a class=listheading href=$href&sort=nextdate>".$locale->text('Next')."</a></th>";
+ $column_header{enddate} = "<th><a class=listheading href=$href&sort=enddate>".$locale->text('Ends')."</a></th>";
+ $column_header{amount} = "<th class=listheading>".$locale->text('Amount')."</th>";
+ $column_header{curr} = "<th class=listheading>&nbsp;</th>";
+ $column_header{repeat} = "<th class=listheading>".$locale->text('Every')."</th>";
+ $column_header{howmany} = "<th class=listheading>".$locale->text('Times')."</th>";
+ $column_header{recurringemail} = "<th class=listheading>".$locale->text('E-mail')."</th>";
+ $column_header{recurringprint} = "<th class=listheading>".$locale->text('Print')."</th>";
+
+print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "\n$column_header{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ $i = 1;
+ $colspan = $#column_index + 1;
+
+ %tr = ( ar => $locale->text('AR'),
+ ap => $locale->text('AP'),
+ gl => $locale->text('GL'),
+ so => $locale->text('Sales Orders'),
+ po => $locale->text('Purchase Orders'),
+ );
+
+ %f = &formnames;
+
+ foreach $transaction (sort keys %{ $form->{transactions} }) {
+ print qq|
+ <tr>
+ <th class=listheading colspan=$colspan>$tr{$transaction}</th>
+ </tr>
+|;
+
+ foreach $ref (@{ $form->{transactions}{$transaction} }) {
+
+ for (@column_index) { $column_data{$_} = "<td nowrap>$ref->{$_}</td>" }
+
+ if ($ref->{repeat} > 1) {
+ $unit = $locale->text(ucfirst $ref->{unit});
+ $repeat = "$ref->{repeat} $unit";
+ } else {
+ chop $ref->{unit};
+ $unit = $locale->text(ucfirst $ref->{unit});
+ $repeat = $unit;
+ }
+
+ $column_data{ndx} = qq|<td></td>|;
+
+ if (!$ref->{expired}) {
+ if ($ref->{overdue} <= 0) {
+ $k++;
+ $column_data{ndx} = qq|<td nowrap><input name="ndx_$k" class=checkbox type=checkbox value=$ref->{id} checked></td>|;
+ }
+ }
+
+ $reference = ($ref->{reference}) ? $ref->{reference} : $locale->text('Next Number');
+ $column_data{reference} = qq|<td nowrap><a href=$form->{script}?action=edit_recurring&id=$ref->{id}&vc=$ref->{vc}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&module=$ref->{module}&invoice=$ref->{invoice}&transaction=$ref->{transaction}&recurringnextdate=$ref->{nextdate}>$reference</a></td>|;
+
+ $module = "$ref->{module}.pl";
+ $type = "";
+ if ($ref->{module} eq 'ar') {
+ $module = "is.pl" if $ref->{invoice};
+ $ref->{amount} /= $ref->{exchangerate};
+ }
+ if ($ref->{module} eq 'ap') {
+ $module = "ir.pl" if $ref->{invoice};
+ $ref->{amount} /= $ref->{exchangerate};
+ }
+ if ($ref->{module} eq 'oe') {
+ $type = ($ref->{vc} eq 'customer') ? "sales_order" : "purchase_order";
+ }
+
+ $column_data{id} = qq|<td><a href=$module?action=edit&id=$ref->{id}&vc=$ref->{vc}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&type=$type&readonly=1>$ref->{id}</a></td>|;
+
+ $column_data{repeat} = "<td align=right nowrap>$repeat</td>";
+ $column_data{howmany} = "<td align=right nowrap>".$form->format_amount(\%myconfig, $ref->{howmany})."</td>";
+ $column_data{amount} = "<td align=right nowrap>".$form->format_amount(\%myconfig, $ref->{amount}, 2)."</td>";
+
+ $column_data{recurringemail} = "<td nowrap>";
+ @f = split /:/, $ref->{recurringemail};
+ for (0 .. $#f) { $column_data{recurringemail} .= "$f{$f[$_]}<br>" }
+ $column_data{recurringemail} .= "</td>";
+
+ $column_data{recurringprint} = "<td nowrap>";
+ @f = split /:/, $ref->{recurringprint};
+ for (0 .. $#f) { $column_data{recurringprint} .= "$f{$f[$_]}<br>" }
+ $column_data{recurringprint} .= "</td>";
+
+ $j++; $j %= 2;
+ print qq|
+ <tr class=listrow$j>
+|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+ }
+ }
+
+ print qq|
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<input name=lastndx type=hidden value=$k>
+|;
+
+ $form->hide_form(qw(path login sessionid));
+
+ print qq|
+<input class=submit type=submit name=action value="|.$locale->text('Process Transactions').qq|">| if $k;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub edit_recurring {
+
+ %links = ( ar => 'create_links',
+ ap => 'create_links',
+ gl => 'create_links',
+ is => 'invoice_links',
+ ir => 'invoice_links',
+ oe => 'order_links',
+ );
+ %prepare = ( is => 'prepare_invoice',
+ ir => 'prepare_invoice',
+ oe => 'prepare_order',
+ );
+
+ $form->{callback} = "$form->{script}?action=recurring_transactions&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}";
+
+ $form->{type} = "transaction";
+
+ if ($form->{module} eq 'ar') {
+ if ($form->{invoice}) {
+ $form->{type} = "invoice";
+ $form->{module} = "is";
+ }
+ }
+ if ($form->{module} eq 'ap') {
+ if ($form->{invoice}) {
+ $form->{type} = "invoice";
+ $form->{module} = "ir";
+ }
+ }
+
+ if ($form->{module} eq 'oe') {
+ %tr = ( so => sales_order,
+ po => purchase_order,
+ );
+
+ $form->{type} = $tr{$form->{transaction}};
+ }
+
+ $form->{script} = "$form->{module}.pl";
+ do "$form->{path}/$form->{script}";
+
+ &{ $links{$form->{module}} };
+
+ # return if transaction doesn't exist
+ $form->redirect unless $form->{recurring};
+
+ if ($prepare{$form->{module}}) {
+ &{ $prepare{$form->{module}} };
+ }
+
+ $form->{selectformat} = qq|<option value="html">html\n|;
+ if ($latex) {
+ $form->{selectformat} .= qq|
+ <option value="postscript">|.$locale->text('Postscript').qq|
+ <option value="pdf">|.$locale->text('PDF');
+ }
+
+ &schedule;
+
+}
+
+
+sub process_transactions {
+
+ # save variables
+ my $pt = new Form;
+ for (keys %$form) { $pt->{$_} = $form->{$_} }
+
+ my $defaultprinter;
+ while (my ($key, $value) = each %printer) {
+ if ($value =~ /lpr/) {
+ $defaultprinter = $key;
+ last;
+ }
+ }
+
+ $myconfig{vclimit} = 0;
+ %f = &formnames;
+
+ for (my $i = 1; $i <= $pt->{lastndx}; $i++) {
+ if ($pt->{"ndx_$i"}) {
+ $id = $pt->{"ndx_$i"};
+
+ # process transaction
+ AM->recurring_details(\%myconfig, \%$pt, $id);
+
+ $header = $form->{header};
+ # reset $form
+ for (keys %$form) { delete $form->{$_}; }
+ for (qw(login path sessionid stylesheet timeout)) { $form->{$_} = $pt->{$_}; }
+ $form->{id} = $id;
+ $form->{header} = $header;
+
+ # post, print, email
+ if ($pt->{arid} || $pt->{apid} || $pt->{oeid}) {
+ if ($pt->{arid} || $pt->{apid}) {
+ if ($pt->{arid}) {
+ $form->{script} = ($pt->{invoice}) ? "is.pl" : "ar.pl";
+ $form->{ARAP} = "AR";
+ $form->{module} = "ar";
+ $invfld = "sinumber";
+ } else {
+ $form->{script} = ($pt->{invoice}) ? "ir.pl" : "ap.pl";
+ $form->{ARAP} = "AP";
+ $form->{module} = "ap";
+ $invfld = "vinumber";
+ }
+ do "$form->{path}/$form->{script}";
+
+ if ($pt->{invoice}) {
+ &invoice_links;
+ &prepare_invoice;
+
+ for (keys %$form) { $form->{$_} = $form->unquote($form->{$_}) }
+
+ } else {
+ &create_links;
+
+ $form->{type} = "transaction";
+ for (1 .. $form->{rowcount} - 1) { $form->{"amount_$_"} = $form->format_amount(\%myconfig, $form->{"amount_$_"}, 2) }
+ for (1 .. $form->{paidaccounts}) { $form->{"paid_$_"} = $form->format_amount(\%myconfig, $form->{"paid_$_"}, 2) }
+
+ }
+
+ delete $form->{"$form->{ARAP}_links"};
+ for (qw(acc_trans invoice_details)) { delete $form->{$_} }
+ for (qw(department employee language month partsgroup project years)) { delete $form->{"all_$_"} }
+
+ $form->{invnumber} = $pt->{reference};
+ $form->{transdate} = $pt->{nextdate};
+
+ # tax accounts
+ $form->all_taxaccounts(\%myconfig, undef, $form->{transdate});
+
+ # calculate duedate
+ $form->{duedate} = $form->add_date(\%myconfig, $form->{transdate}, $pt->{overdue}, "days");
+
+ if ($pt->{payment}) {
+ # calculate date paid
+ for ($j = 1; $j <= $form->{paidaccounts}; $j++) {
+ $form->{"datepaid_$j"} = $form->add_date(\%myconfig, $form->{transdate}, $pt->{paid}, "days");
+
+ ($form->{"$form->{ARAP}_paid_$j"}) = split /--/, $form->{"$form->{ARAP}_paid_$j"};
+ delete $form->{"cleared_$j"};
+ }
+
+ $form->{paidaccounts}++;
+ } else {
+ $form->{paidaccounts} = -1;
+ }
+
+ for (qw(id recurring intnotes printed emailed queued)) { delete $form->{$_} }
+
+ ($form->{$form->{ARAP}}) = split /--/, $form->{$form->{ARAP}};
+
+ $form->{invnumber} = $form->update_defaults(\%myconfig, "$invfld") unless $form->{invnumber};
+ $form->{reference} = $form->{invnumber};
+ for (qw(invnumber reference)) { $form->{$_} = $form->unquote($form->{$_}) }
+
+ if ($pt->{invoice}) {
+ if ($pt->{arid}) {
+ $form->info("\n".$locale->text('Posting')." ".$locale->text('Sales Invoice')." $form->{invnumber}");
+ $ok = IS->post_invoice(\%myconfig, \%$form);
+ } else {
+ $form->info("\n".$locale->text('Posting')." ".$locale->text('Vendor Invoice')." $form->{invnumber}");
+ $ok = IR->post_invoice(\%myconfig, \%$form);
+ }
+ } else {
+ if ($pt->{arid}) {
+ $form->info("\n".$locale->text('Posting')." ".$locale->text('Transaction')." $form->{invnumber}");
+ } else {
+ $form->info("\n".$locale->text('Posting')." ".$locale->text('Transaction')." $form->{invnumber}");
+ }
+
+ $ok = AA->post_transaction(\%myconfig, \%$form);
+
+ }
+ $form->info(" ..... ".$locale->text('done'));
+
+ # print form
+ if ($latex && $ok) {
+ $ok = &print_recurring(\%$pt, $defaultprinter);
+ }
+
+ &email_recurring(\%$pt) if $ok;
+
+ } else {
+
+ # order
+ $form->{script} = "oe.pl";
+ $form->{module} = "oe";
+
+ $ordnumber = "ordnumber";
+ if ($pt->{customer_id}) {
+ $form->{vc} = "customer";
+ $form->{type} = "sales_order";
+ $ordfld = "sonumber";
+ $flabel = $locale->text('Sales Order');
+ } else {
+ $form->{vc} = "vendor";
+ $form->{type} = "purchase_order";
+ $ordfld = "ponumber";
+ $flabel = $locale->text('Purchase Order');
+ }
+ require "$form->{path}/$form->{script}";
+
+ &order_links;
+ &prepare_order;
+
+ for (keys %$form) { $form->{$_} = $form->unquote($form->{$_}) }
+
+ $form->{$ordnumber} = $pt->{reference};
+ $form->{transdate} = $pt->{nextdate};
+
+ # calculate reqdate
+ $form->{reqdate} = $form->add_date(\%myconfig, $form->{transdate}, $pt->{req}, "days") if $form->{reqdate};
+
+ for (qw(id recurring intnotes printed emailed queued)) { delete $form->{$_} }
+ for (1 .. $form->{rowcount}) { delete $form->{"orderitems_id_$_"} }
+
+ $form->{$ordnumber} = $form->update_defaults(\%myconfig, "$ordfld") unless $form->{$ordnumber};
+ $form->{reference} = $form->{$ordnumber};
+ for ("$ordnumber", "reference") { $form->{$_} = $form->unquote($form->{$_}) }
+ $form->{closed} = 0;
+
+ $form->info("\n".$locale->text('Saving')." ".$flabel." $form->{$ordnumber}");
+ if ($ok = OE->save(\%myconfig, \%$form)) {
+ $form->info(" ..... ".$locale->text('done'));
+ } else {
+ $form->info(" ..... ".$locale->text('failed'));
+ }
+
+ # print form
+ if ($latex && $ok) {
+ &print_recurring(\%$pt, $defaultprinter);
+ }
+
+ &email_recurring(\%$pt);
+
+ }
+
+ } else {
+ # GL transaction
+ GL->transaction(\%myconfig, \%$form);
+
+ $form->{reference} = $pt->{reference};
+ $form->{transdate} = $pt->{nextdate};
+
+ $j = 1;
+ foreach $ref (@{ $form->{GL} }) {
+ $form->{"accno_$j"} = "$ref->{accno}--$ref->{description}";
+
+ $form->{"projectnumber_$j"} = "$ref->{projectnumber}--$ref->{project_id}" if $ref->{project_id};
+ $form->{"fx_transaction_$j"} = $ref->{fx_transaction};
+
+ if ($ref->{amount} < 0) {
+ $form->{"debit_$j"} = $ref->{amount} * -1;
+ } else {
+ $form->{"credit_$j"} = $ref->{amount};
+ }
+
+ $j++;
+ }
+
+ $form->{rowcount} = $j;
+
+ for (qw(id recurring)) { delete $form->{$_} }
+ $form->info("\n".$locale->text('Posting')." ".$locale->text('GL Transaction')." $form->{reference}");
+ $ok = GL->post_transaction(\%myconfig, \%$form);
+ $form->info(" ..... ".$locale->text('done'));
+
+ }
+
+ AM->update_recurring(\%myconfig, \%$pt, $id) if $ok;
+
+ }
+ }
+
+ $form->{callback} = "am.pl?action=recurring_transactions&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&header=$form->{header}";
+ $form->redirect;
+
+}
+
+
+sub print_recurring {
+ my ($pt, $defaultprinter) = @_;
+
+ my %f = &formnames;
+ my $ok = 1;
+
+ if ($pt->{recurringprint}) {
+ @f = split /:/, $pt->{recurringprint};
+ for ($j = 0; $j <= $#f; $j += 3) {
+ $media = $f[$j+2];
+ $media ||= $myconfig->{printer} if $printer{$myconfig->{printer}};
+ $media ||= $defaultprinter;
+
+ $form->info("\n".$locale->text('Printing')." ".$locale->text($f{$f[$j]})." $form->{reference}");
+
+ @a = ("perl", "$form->{script}", "action=reprint&module=$form->{module}&type=$form->{type}&login=$form->{login}&path=$form->{path}&sessionid=$form->{sessionid}&id=$form->{id}&formname=$f[$j]&format=$f[$j+1]&media=$media&vc=$form->{vc}&ARAP=$form->{ARAP}");
+
+ $ok = !(system(@a));
+
+ if ($ok) {
+ $form->info(" ..... ".$locale->text('done'));
+ } else {
+ $form->info(" ..... ".$locale->text('failed'));
+ last;
+ }
+ }
+ }
+
+ $ok;
+
+}
+
+
+sub email_recurring {
+ my ($pt) = @_;
+
+ my %f = &formnames;
+ my $ok = 1;
+
+ if ($pt->{recurringemail}) {
+
+ @f = split /:/, $pt->{recurringemail};
+ for ($j = 0; $j <= $#f; $j += 2) {
+
+ $form->info("\n".$locale->text('Sending')." ".$locale->text($f{$f[$j]})." $form->{reference}");
+
+ # no email, bail out
+ if (!$form->{email}) {
+ $form->info(" ..... ".$locale->text('E-mail address missing!'));
+ last;
+ }
+
+ $message = $form->escape($pt->{message},1);
+
+ @a = ("perl", "$form->{script}", "action=reprint&module=$form->{module}&type=$form->{type}&login=$form->{login}&path=$form->{path}&sessionid=$form->{sessionid}&id=$form->{id}&formname=$f[$j]&format=$f[$j+1]&media=email&vc=$form->{vc}&ARAP=$form->{ARAP}&message=$message");
+
+ $ok = !(system(@a));
+
+ if ($ok) {
+ $form->info(" ..... ".$locale->text('done'));
+ } else {
+ $form->info(" ..... ".$locale->text('failed'));
+ last;
+ }
+ }
+ }
+
+ $ok;
+
+}
+
+
+
+sub formnames {
+
+# $locale->text('Transaction')
+# $locale->text('Invoice')
+# $locale->text('Credit Invoice')
+# $locale->text('Debit Invoice')
+# $locale->text('Packing List')
+# $locale->text('Pick List')
+# $locale->text('Sales Order')
+# $locale->text('Work Order')
+# $locale->text('Purchase Order')
+# $locale->text('Bin List')
+
+ my %f = ( transaction => 'Transaction',
+ invoice => 'Invoice',
+ credit_invoice => 'Credit Invoice',
+ debit_invoice => 'Debit Invoice',
+ packing_list => 'Packing List',
+ pick_list => 'Pick List',
+ sales_order => 'Sales Order',
+ work_order => 'Work Order',
+ purchase_order => 'Purchase Order',
+ bin_list => 'Bin List',
+ );
+
+ %f;
+
+}
+
+
+sub continue { &{ $form->{nextsub} } };
+
diff --git a/bin/lynx/ap.pl b/bin/lynx/ap.pl
new file mode 100755
index 00000000..8eb246e0
--- /dev/null
+++ b/bin/lynx/ap.pl
@@ -0,0 +1,40 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (C) 2000
+#
+# Author: DWS Systems Inc.
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+# Contributors:
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#======================================================================
+#
+# Accounts Payable
+#
+#======================================================================
+
+use SL::PE;
+use SL::IR;
+
+require "$form->{path}/arap.pl";
+require "$form->{path}/arapprn.pl";
+require "$form->{path}/aa.pl";
+
+$form->{vc} = 'vendor';
+$form->{ARAP} = 'AP';
+
+1;
+# end of main
+
diff --git a/bin/lynx/ar.pl b/bin/lynx/ar.pl
new file mode 100755
index 00000000..4a475578
--- /dev/null
+++ b/bin/lynx/ar.pl
@@ -0,0 +1,40 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2000
+#
+# Author: DWS Systems Inc.
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+# Contributors:
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#======================================================================
+#
+# Accounts Receivable
+#
+#======================================================================
+
+use SL::PE;
+use SL::IS;
+
+require "$form->{path}/arap.pl";
+require "$form->{path}/arapprn.pl";
+require "$form->{path}/aa.pl";
+
+$form->{vc} = 'customer';
+$form->{ARAP} = 'AR';
+
+1;
+# end of main
+
diff --git a/bin/lynx/arap.pl b/bin/lynx/arap.pl
new file mode 100755
index 00000000..6fc44370
--- /dev/null
+++ b/bin/lynx/arap.pl
@@ -0,0 +1,918 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2003
+#
+# Author: DWS Systems Inc.
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#======================================================================
+#
+# common routines for gl, ar, ap, is, ir, oe
+#
+
+use SL::AA;
+
+# any custom scripts for this one
+if (-f "$form->{path}/custom_arap.pl") {
+ eval { require "$form->{path}/custom_arap.pl"; };
+}
+if (-f "$form->{path}/$form->{login}_arap.pl") {
+ eval { require "$form->{path}/$form->{login}_arap.pl"; };
+}
+
+
+1;
+# end of main
+
+
+sub check_name {
+ my ($name) = @_;
+
+ my ($new_name, $new_id) = split /--/, $form->{$name};
+ my $rv = 0;
+
+ # if we use a selection
+ if ($form->{"select$name"}) {
+ if ($form->{"old$name"} ne $form->{$name}) {
+ # this is needed for is, ir and oe
+ for (split / /, $form->{taxaccounts}) { delete $form->{"${_}_rate"} }
+
+ # for credit calculations
+ $form->{oldinvtotal} = 0;
+ $form->{oldtotalpaid} = 0;
+ $form->{calctax} = 1;
+
+ $form->{"${name}_id"} = $new_id;
+ AA->get_name(\%myconfig, \%$form);
+
+ $form->{$name} = $form->{"old$name"} = "$new_name--$new_id";
+ $form->{currency} =~ s/ //g;
+
+ # put employee together if there is a new employee_id
+ $form->{employee} = "$form->{employee}--$form->{employee_id}" if $form->{employee_id};
+
+ $rv = 1;
+ }
+ } else {
+
+ # check name, combine name and id
+ if ($form->{"old$name"} ne qq|$form->{$name}--$form->{"${name}_id"}|) {
+ # this is needed for is, ir and oe
+ for (split / /, $form->{taxaccounts}) { delete $form->{"${_}_rate"} }
+
+ # for credit calculations
+ $form->{oldinvtotal} = 0;
+ $form->{oldtotalpaid} = 0;
+ $form->{calctax} = 1;
+
+ # return one name or a list of names in $form->{name_list}
+ if (($rv = $form->get_name(\%myconfig, $name, $form->{transdate})) > 1) {
+ &select_name($name);
+ exit;
+ }
+
+ if ($rv == 1) {
+ # we got one name
+ $form->{"${name}_id"} = $form->{name_list}[0]->{id};
+ $form->{$name} = $form->{name_list}[0]->{name};
+ $form->{"old$name"} = qq|$form->{$name}--$form->{"${name}_id"}|;
+
+ AA->get_name(\%myconfig, \%$form);
+
+ $form->{currency} =~ s/ //g;
+ # put employee together if there is a new employee_id
+ $form->{employee} = "$form->{employee}--$form->{employee_id}" if $form->{employee_id};
+
+ } else {
+ # name is not on file
+ $msg = ucfirst $name . " not on file!";
+ $form->error($locale->text($msg));
+ }
+ }
+ }
+
+ $rv;
+
+}
+
+# $locale->text('Customer not on file!')
+# $locale->text('Vendor not on file!')
+
+
+sub select_name {
+ my ($table) = @_;
+
+ @column_index = qw(ndx name address);
+
+ $label = ucfirst $table;
+ $column_data{ndx} = qq|<th>&nbsp;</th>|;
+ $column_data{name} = qq|<th class=listheading>|.$locale->text($label).qq|</th>|;
+ $column_data{address} = qq|<th class=listheading colspan=5>|.$locale->text('Address').qq|</th>|;
+
+ # list items with radio button on a form
+ $form->header;
+
+ $title = $locale->text('Select from one of the names below');
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$title</th>
+ </tr>
+ <tr space=5></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ @column_index = qw(ndx name address city state zipcode country);
+
+ my $i = 0;
+ foreach $ref (@{ $form->{name_list} }) {
+ $checked = ($i++) ? "" : "checked";
+
+ $ref->{name} = $form->quote($ref->{name});
+
+ $column_data{ndx} = qq|<td><input name=ndx class=radio type=radio value=$i $checked></td>|;
+ $column_data{name} = qq|<td><input name="new_name_$i" type=hidden value="$ref->{name}">$ref->{name}</td>|;
+ $column_data{address} = qq|<td>$ref->{address1} $ref->{address2}</td>|;
+ for (qw(city state zipcode country)) { $column_data{$_} = qq|<td>$ref->{$_}&nbsp;</td>| }
+
+ $j++; $j %= 2;
+ print qq|
+ <tr class=listrow$j>|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+
+<input name="new_id_$i" type=hidden value=$ref->{id}>
+
+|;
+
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<input name=lastndx type=hidden value=$i>
+
+|;
+
+ # delete variables
+ for (qw(nextsub name_list)) { delete $form->{$_} }
+
+ $form->{action} = "name_selected";
+
+ $form->hide_form;
+
+ print qq|
+<input type=hidden name=nextsub value=name_selected>
+<input type=hidden name=vc value=$table>
+<br>
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+
+sub name_selected {
+
+ # replace the variable with the one checked
+
+ # index for new item
+ $i = $form->{ndx};
+
+ $form->{$form->{vc}} = $form->{"new_name_$i"};
+ $form->{"$form->{vc}_id"} = $form->{"new_id_$i"};
+ $form->{"old$form->{vc}"} = qq|$form->{$form->{vc}}--$form->{"$form->{vc}_id"}|;
+
+ # delete all the new_ variables
+ for $i (1 .. $form->{lastndx}) {
+ for (qw(id, name)) { delete $form->{"new_${_}_$i"} }
+ }
+
+ for (qw(ndx lastndx nextsub)) { delete $form->{$_} }
+
+ AA->get_name(\%myconfig, \%$form);
+
+ # put employee together if there is a new employee_id
+ $form->{employee} = "$form->{employee}--$form->{employee_id}" if $form->{employee_id};
+
+ &update(1);
+
+}
+
+
+sub rebuild_vc {
+ my ($vc, $ARAP, $transdate, $job) = @_;
+
+ ($null, $form->{employee_id}) = split /--/, $form->{employee};
+ $form->all_vc(\%myconfig, $vc, $ARAP, undef, $transdate, $job);
+ $form->{"select$vc"} = "";
+ for (@{ $form->{"all_$vc"} }) { $form->{"select$vc"} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+
+ $form->{selectprojectnumber} = "";
+ if (@{ $form->{all_project} }) {
+ $form->{selectprojectnumber} = "<option>\n";
+ for (@{ $form->{all_project} }) { $form->{selectprojectnumber} .= qq|<option value="$_->{projectnumber}--$_->{id}">$_->{projectnumber}\n| }
+ }
+
+ 1;
+}
+
+
+
+sub add_transaction {
+ my ($module) = @_;
+
+ delete $form->{script};
+ $form->{action} = "add";
+ $form->{type} = "invoice" if $module =~ /(is|ir)/;
+
+ $form->{callback} = $form->escape($form->{callback},1);
+ $argv = "";
+ for (keys %$form) { $argv .= "$_=$form->{$_}&" }
+
+ $form->{callback} = "$module.pl?$argv";
+
+ $form->redirect;
+
+}
+
+
+
+sub check_project {
+
+ for $i (1 .. $form->{rowcount}) {
+ $form->{"project_id_$i"} = "" unless $form->{"projectnumber_$i"};
+ if ($form->{"projectnumber_$i"} ne $form->{"oldprojectnumber_$i"}) {
+ if ($form->{"projectnumber_$i"}) {
+ # get new project
+ $form->{projectnumber} = $form->{"projectnumber_$i"};
+ if (($rows = PE->projects(\%myconfig, $form)) > 1) {
+ # check form->{project_list} how many there are
+ $form->{rownumber} = $i;
+ &select_project;
+ exit;
+ }
+
+ if ($rows == 1) {
+ $form->{"project_id_$i"} = $form->{project_list}->[0]->{id};
+ $form->{"projectnumber_$i"} = $form->{project_list}->[0]->{projectnumber};
+ $form->{"oldprojectnumber_$i"} = $form->{project_list}->[0]->{projectnumber};
+ } else {
+ # not on file
+ $form->error($locale->text('Project not on file!'));
+ }
+ } else {
+ $form->{"oldprojectnumber_$i"} = "";
+ }
+ }
+ }
+
+}
+
+
+sub select_project {
+
+ @column_index = qw(ndx projectnumber description);
+
+ $column_data{ndx} = qq|<th>&nbsp;</th>|;
+ $column_data{projectnumber} = qq|<th>|.$locale->text('Number').qq|</th>|;
+ $column_data{description} = qq|<th>|.$locale->text('Description').qq|</th>|;
+
+ # list items with radio button on a form
+ $form->header;
+
+ $title = $locale->text('Select from one of the projects below');
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=rownumber value=$form->{rownumber}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$title</th>
+ </tr>
+ <tr space=5></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ my $i = 0;
+ foreach $ref (@{ $form->{project_list} }) {
+ $checked = ($i++) ? "" : "checked";
+
+ $ref->{name} = $form->quote($ref->{name});
+
+ $column_data{ndx} = qq|<td><input name=ndx class=radio type=radio value=$i $checked></td>|;
+ $column_data{projectnumber} = qq|<td><input name="new_projectnumber_$i" type=hidden value="$ref->{projectnumber}">$ref->{projectnumber}</td>|;
+ $column_data{description} = qq|<td>$ref->{description}</td>|;
+
+ $j++; $j %= 2;
+ print qq|
+ <tr class=listrow$j>|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+
+<input name="new_id_$i" type=hidden value=$ref->{id}>
+
+|;
+
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<input name=lastndx type=hidden value=$i>
+
+|;
+
+ # delete list variable
+ for (qw(nextsub project_list)) { delete $form->{$_} }
+
+ $form->{action} = "project_selected";
+
+ $form->hide_form;
+
+ print qq|
+<input type=hidden name=nextsub value=project_selected>
+<br>
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub project_selected {
+
+ # replace the variable with the one checked
+
+ # index for new item
+ $i = $form->{ndx};
+
+ $form->{"projectnumber_$form->{rownumber}"} = $form->{"new_projectnumber_$i"};
+ $form->{"oldprojectnumber_$form->{rownumber}"} = $form->{"new_projectnumber_$i"};
+ $form->{"project_id_$form->{rownumber}"} = $form->{"new_id_$i"};
+
+ # delete all the new_ variables
+ for $i (1 .. $form->{lastndx}) {
+ for (qw(id projectnumber description)) { delete $form->{"new_${_}_$i"} }
+ }
+
+ for (qw(ndx lastndx nextsub)) { delete $form->{$_} }
+
+ if ($form->{update}) {
+ &{ $form->{update} };
+ } else {
+ &update;
+ }
+
+}
+
+
+sub post_as_new {
+
+ for (qw(id printed emailed queued)) { delete $form->{$_} }
+ &post;
+
+}
+
+
+sub print_and_post_as_new {
+
+ for (qw(id printed emailed queued)) { delete $form->{$_} }
+ &print_and_post;
+
+}
+
+
+sub repost {
+
+ if ($form->{type} =~ /_order/) {
+ if ($form->{print_and_save}) {
+ $form->{nextsub} = "print_and_save";
+ $msg = $locale->text('You are printing and saving an existing order');
+ } else {
+ $form->{nextsub} = "save";
+ $msg = $locale->text('You are saving an existing order');
+ }
+ } elsif ($form->{type} =~ /_quotation/) {
+ if ($form->{print_and_save}) {
+ $form->{nextsub} = "print_and_save";
+ $msg = $locale->text('You are printing and saving an existing quotation');
+ } else {
+ $form->{nextsub} = "save";
+ $msg = $locale->text('You are saving an existing quotation');
+ }
+ } else {
+ if ($form->{print_and_post}) {
+ $form->{nextsub} = "print_and_post";
+ $msg = $locale->text('You are printing and posting an existing transaction!');
+ } else {
+ $form->{nextsub} = "post";
+ $msg = $locale->text('You are posting an existing transaction!');
+ }
+ }
+
+ delete $form->{action};
+ $form->{repost} = 1;
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+|;
+
+ $form->hide_form;
+
+ print qq|
+<h2 class=confirm>|.$locale->text('Warning!').qq|</h2>
+
+<h4>$msg</h4>
+
+<input name=action class=submit type=submit value="|.$locale->text('Continue').qq|">
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub schedule {
+
+ ($form->{recurringreference}, $form->{recurringstartdate}, $form->{recurringrepeat}, $form->{recurringunit}, $form->{recurringhowmany}, $form->{recurringpayment}, $form->{recurringprint}, $form->{recurringemail}, $form->{recurringmessage}) = split /,/, $form->{recurring};
+
+ $form->{recurringreference} = $form->quote($form->unescape($form->{recurringreference}));
+ $form->{recurringmessage} = $form->quote($form->unescape($form->{recurringmessage}));
+
+ $form->{recurringstartdate} ||= $form->{transdate};
+ $recurringpayment = "checked" if $form->{recurringpayment};
+
+ if ($form->{paidaccounts}) {
+ $postpayment = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Include Payment').qq|</th>
+ <td><input name=recurringpayment type=checkbox class=checkbox value=1 $recurringpayment></td>
+ </tr>
+|;
+ }
+
+ if ($form->{recurringnextdate}) {
+ $nextdate = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Next Date').qq|</th>
+ <td><input name=recurringnextdate size=11 title="($myconfig{'dateformat'})" value=$form->{recurringnextdate}></td>
+ </tr>
+|;
+ }
+
+ @a = split /<option/, $form->unescape($form->{selectformname});
+ %formname = ();
+
+ for ($i = 1; $i <= $#a; $i++) {
+ $a[$i] =~ /"(.*)"/;
+ $v = $1;
+ $a[$i] =~ />(.*)/;
+ $formname{$v} = $1;
+ }
+ for (qw(check receipt)) { delete $formname{$_} }
+
+ $selectformat = $form->unescape($form->{selectformat});
+
+ if ($form->{type} !~ /transaction/ && %formname) {
+ $email = qq|
+ <table>
+ <tr>
+ <th colspan=2 class=listheading>|.$locale->text('E-mail').qq|</th>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+|;
+
+ # formname:format
+ @p = split /:/, $form->{recurringemail};
+ %p = ();
+ for ($i = 0; $i <= $#p; $i += 2) {
+ $p{$p[$i]}{format} = $p[$i+1];
+ }
+
+ foreach $item (keys %formname) {
+
+ $checked = ($p{$item}{format}) ? "checked" : "";
+ $selectformat =~ s/ selected//;
+ $p{$item}{format} ||= "pdf";
+ $selectformat =~ s/(<option value="\Q$p{$item}{format}\E")/$1 selected/;
+
+ $email .= qq|
+ <tr>
+ <td><input name="email$item" type=checkbox class=checkbox value=1 $checked></td>
+ <th align=left>$formname{$item}</th>
+ <td><select name="emailformat$item">$selectformat</select></td>
+ </tr>
+|;
+ }
+
+ $email .= qq|
+ </table>
+ </td>
+ </tr>
+ </table>
+|;
+
+ $message = qq|
+ <table>
+ <tr>
+ <th class=listheading>|.$locale->text('E-mail message').qq|</th>
+ </tr>
+
+ <tr>
+ <td><textarea name="recurringmessage" rows=10 cols=60 wrap=soft>$form->{recurringmessage}</textarea></td>
+ </tr>
+ </table>
+|;
+
+ }
+
+
+ if (%printer && $latex && %formname) {
+ $selectprinter = qq|<option>\n|;
+ for (sort keys %printer) { $selectprinter .= qq|<option value="$_">$_\n| }
+
+ # formname:format:printer
+ @p = split /:/, $form->{recurringprint};
+
+ %p = ();
+ for ($i = 0; $i <= $#p; $i += 3) {
+ $p{$p[$i]}{formname} = $p[$i];
+ $p{$p[$i]}{format} = $p[$i+1];
+ $p{$p[$i]}{printer} = $p[$i+2];
+ }
+
+ $print = qq|
+ <table>
+ <tr>
+ <th colspan=2 class=listheading>|.$locale->text('Print').qq|</th>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+|;
+
+ $selectformat =~ s/<option.*html//;
+ foreach $item (keys %formname) {
+
+ $selectprinter =~ s/ selected//;
+ $selectprinter =~ s/(<option value="\Q$p{$item}{printer}\E")/$1 selected/;
+
+ $checked = ($p{$item}{formname}) ? "checked" : "";
+
+ $selectformat =~ s/ selected//;
+ $p{$item}{format} ||= "postscript";
+ $selectformat =~ s/(<option value="\Q$p{$item}{format}\E")/$1 selected/;
+
+ $print .= qq|
+ <tr>
+ <td><input name="print$item" type=checkbox class=checkbox value=1 $checked></td>
+ <th align=left>$formname{$item}</th>
+ <td><select name="printprinter$item">$selectprinter</select></td>
+ <td><select name="printformat$item">$selectformat</select></td>
+ </tr>
+|;
+ }
+
+ $print .= qq|
+ </table>
+ </td>
+ </tr>
+ </table>
+|;
+
+
+ }
+
+ $selectrepeat = "";
+ for (1 .. 31) { $selectrepeat .= qq|<option value="$_">$_\n| }
+ $selectrepeat =~ s/(<option value="$form->{recurringrepeat}")/$1 selected/;
+
+ $selectunit = qq|<option value="days">|.$locale->text('Day(s)').qq|
+ <option value="weeks">|.$locale->text('Week(s)').qq|
+ <option value="months">|.$locale->text('Month(s)').qq|
+ <option value="years">|.$locale->text('Year(s)');
+
+ if ($form->{recurringunit}) {
+ $selectunit =~ s/(<option value="$form->{recurringunit}")/$1 selected/;
+ }
+
+ if ($form->{$form->{vc}}) {
+ $description = $form->{$form->{vc}};
+ } else {
+ $description = $form->{description};
+ }
+
+ $repeat = qq|
+ <table>
+ <tr>
+ <th colspan=3 class=listheading>|.$locale->text('Repeat').qq|</th>
+ </tr>
+
+ <tr>
+ <th align=right nowrap>|.$locale->text('Every').qq|</th>
+ <td><select name=recurringrepeat>$selectrepeat</td>
+ <td><select name=recurringunit>$selectunit</td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('For').qq|</th>
+ <td><input name=recurringhowmany size=3 value=$form->{recurringhowmany}></td>
+ <th align=left nowrap>|.$locale->text('time(s)').qq|</th>
+ </tr>
+ </table>
+|;
+
+
+ $title = $locale->text('Recurring Transaction') ." ". $locale->text('for') ." $description";
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr class=listtop>
+ <th class=listtop>$title</th>
+ </tr>
+ <tr space=5></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Reference').qq|</th>
+ <td><input name=recurringreference size=20 value="$form->{recurringreference}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Startdate').qq|</th>
+ <td><input name=recurringstartdate size=11 title="($myconfig{'dateformat'})" value=$form->{recurringstartdate}></td>
+ </tr>
+ $nextdate
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+ $postpayment
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+ <tr valign=top>
+ <td>$repeat</td>
+ <td>$print</td>
+ </tr>
+ <tr valign=top>
+ <td>$email</td>
+ <td>$message</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+|;
+
+# type=submit $locale->text('Save Schedule')
+# type=submit $locale->text('Delete Schedule')
+
+ %button = ('Save Schedule' => { ndx => 1, key => 'S', value => $locale->text('Save Schedule') },
+ 'Delete Schedule' => { ndx => 16, key => 'D', value => $locale->text('Delete Schedule') },
+ );
+
+ $form->print_button(\%button, 'Save Schedule');
+
+ if ($form->{recurring}) {
+ $form->print_button(\%button, 'Delete Schedule');
+ }
+
+ # delete variables
+ for (qw(action recurring)) { delete $form->{$_} }
+ for (qw(reference startdate nextdate enddate repeat unit howmany payment print email message)) { delete $form->{"recurring$_"} }
+
+ $form->hide_form;
+
+ print qq|
+
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub save_schedule {
+
+ $form->{recurring} = "";
+
+ $form->{recurringreference} = $form->escape($form->{recurringreference},1);
+ $form->{recurringmessage} = $form->escape($form->{recurringmessage},1);
+ if ($form->{recurringstartdate}) {
+ for (qw(reference startdate repeat unit howmany payment)) { $form->{recurring} .= qq|$form->{"recurring$_"},| }
+ }
+
+ @a = split /<option/, $form->unescape($form->{selectformname});
+ @p = ();
+
+ for ($i = 1; $i <= $#a; $i++) {
+ $a[$i] =~ /"(.*)"/;
+ push @p, $1;
+ }
+
+ $recurringemail = "";
+ for (@p) { $recurringemail .= qq|$_:$form->{"emailformat$_"}:| if $form->{"email$_"} }
+ chop $recurringemail;
+
+ $recurringprint = "";
+ for (@p) { $recurringprint .= qq|$_:$form->{"printformat$_"}:$form->{"printprinter$_"}:| if $form->{"print$_"} }
+ chop $recurringprint;
+
+ $form->{recurring} .= qq|$recurringprint,$recurringemail,$form->{recurringmessage}| if $recurringemail || $recurringprint;
+
+ $form->save_recurring(undef, \%myconfig) if $form->{id};
+
+ if ($form->{recurringid}) {
+ $form->redirect;
+ } else {
+ &update;
+ }
+
+}
+
+
+sub delete_schedule {
+
+ $form->{recurring} = "";
+
+ $form->save_recurring(undef, \%myconfig) if $form->{id};
+
+ if ($form->{recurringid}) {
+ $form->redirect;
+ } else {
+ &update;
+ }
+
+}
+
+
+sub reprint {
+
+ $myconfig{vclimit} = 0;
+ $pf = "print_form";
+
+ for (qw(format formname media message)) { $temp{$_} = $form->{$_} }
+
+ if ($form->{module} eq 'oe') {
+ &order_links;
+ &prepare_order;
+ delete $form->{order_details};
+ for (keys %$form) { $form->{$_} = $form->unquote($form->{$_}) }
+ } else {
+ if ($form->{type} eq 'invoice') {
+ &invoice_links;
+ &prepare_invoice;
+ for (keys %$form) { $form->{$_} = $form->unquote($form->{$_}) }
+ } else {
+ &create_links;
+ $form->{rowcount}--;
+ for (1 .. $form->{rowcount}) { $form->{"amount_$_"} = $form->format_amount(\%myconfig, $form->{"amount_$_"}, 2) }
+ for (split / /, $form->{taxaccounts}) { $form->{"tax_$_"} = $form->format_amount(\%myconfig, $form->{"tax_$_"}, 2) }
+ $pf = "print_transaction";
+ }
+ for (qw(acc_trans invoice_details)) { delete $form->{$_} }
+ }
+
+ for (qw(department employee language month partsgroup project years)) { delete $form->{"all_$_"} }
+
+ for (keys %temp) { $form->{$_} = $temp{$_} }
+
+ $form->{rowcount}++;
+ $form->{paidaccounts}++;
+
+ delete $form->{paid};
+
+ for (1 .. $form->{paidaccounts}) { $form->{"paid_$_"} = $form->format_amount(\%myconfig, $form->{"paid_$_"}, 2) }
+
+ $form->{copies} = 1;
+
+ &$pf;
+
+ if ($form->{media} eq 'email') {
+ # add email message
+ $now = scalar localtime;
+ $cc = $locale->text('Cc').qq|: $form->{cc}\n| if $form->{cc};
+ $bcc = $locale->text('Bcc').qq|: $form->{bcc}\n| if $form->{bcc};
+
+ $form->{intnotes} .= qq|\n\n| if $form->{intnotes};
+ $form->{intnotes} .= qq|[email]\n|
+ .$locale->text('Date').qq|: $now\n|
+ .$locale->text('To').qq|: $form->{email}\n${cc}${bcc}|
+ .$locale->text('Subject').qq|: $form->{subject}\n\n|
+ .$locale->text('Message').qq|: |;
+
+ $form->{intnotes} .= ($form->{message}) ? $form->{message} : $locale->text('sent');
+
+ $form->save_intnotes(\%myconfig, $form->{module});
+ }
+
+}
+
+
+sub continue { &{ $form->{nextsub} } };
+sub gl_transaction { &add };
+sub ar_transaction { &add_transaction(ar) };
+sub ap_transaction { &add_transaction(ap) };
+sub sales_invoice_ { &add_transaction(is) };
+sub vendor_invoice_ { &add_transaction(ir) };
+
diff --git a/bin/lynx/arapprn.pl b/bin/lynx/arapprn.pl
new file mode 100755
index 00000000..8519df47
--- /dev/null
+++ b/bin/lynx/arapprn.pl
@@ -0,0 +1,591 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2003
+#
+# Author: DWS Systems Inc.
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#======================================================================
+#
+#
+# printing routines for ar, ap
+#
+
+# any custom scripts for this one
+if (-f "$form->{path}/custom_arapprn.pl") {
+ eval { require "$form->{path}/custom_arapprn.pl"; };
+}
+if (-f "$form->{path}/$form->{login}_arapprn.pl") {
+ eval { require "$form->{path}/$form->{login}_arapprn.pl"; };
+}
+
+
+1;
+# end of main
+
+
+sub print {
+
+ if ($form->{media} !~ /screen/) {
+ $form->error($locale->text('Select postscript or PDF!')) if $form->{format} !~ /(postscript|pdf)/;
+ $old_form = new Form;
+ for (keys %$form) { $old_form->{$_} = $form->{$_} }
+ }
+
+ if ($form->{formname} =~ /(check|receipt)/) {
+ if ($form->{media} eq 'screen') {
+ $form->error($locale->text('Select postscript or PDF!')) if $form->{format} !~ /(postscript|pdf)/;
+ }
+ }
+
+ if (! $form->{invnumber}) {
+ $invfld = 'sinumber';
+ $invfld = 'vinumber' if $form->{ARAP} eq 'AP';
+ $form->{invnumber} = $form->update_defaults(\%myconfig, $invfld);
+ if ($form->{media} eq 'screen') {
+ if ($form->{media} eq 'screen') {
+ &update;
+ exit;
+ }
+ }
+ }
+
+ if ($form->{formname} =~ /(check|receipt)/) {
+ if ($form->{media} ne 'screen') {
+ for (qw(action header)) { delete $form->{$_} }
+ $form->{invtotal} = $form->{oldinvtotal};
+
+ foreach $key (keys %$form) {
+ $form->{$key} =~ s/&/%26/g;
+ $form->{previousform} .= qq|$key=$form->{$key}&|;
+ }
+ chop $form->{previousform};
+ $form->{previousform} = $form->escape($form->{previousform}, 1);
+ }
+
+ if ($form->{paidaccounts} > 1) {
+ if ($form->{"paid_$form->{paidaccounts}"}) {
+ &update;
+ exit;
+ } elsif ($form->{paidaccounts} > 2) {
+ # select payment
+ &select_payment;
+ exit;
+ }
+ } else {
+ $form->error($locale->text('Nothing to print!'));
+ }
+
+ }
+
+ &{ "print_$form->{formname}" }($old_form, 1);
+
+}
+
+
+sub print_check {
+ my ($old_form, $i) = @_;
+
+ $display_form = ($form->{display_form}) ? $form->{display_form} : "display_form";
+
+ if ($form->{"paid_$i"}) {
+ @a = ();
+
+ if (exists $form->{longformat}) {
+ $form->{"datepaid_$i"} = $locale->date(\%myconfig, $form->{"datepaid_$i"}, $form->{longformat});
+ }
+
+ push @a, "source_$i", "memo_$i";
+ $form->format_string(@a);
+ }
+
+ $form->{amount} = $form->{"paid_$i"};
+
+ if (($form->{formname} eq 'check' && $form->{vc} eq 'customer') ||
+ ($form->{formname} eq 'receipt' && $form->{vc} eq 'vendor')) {
+ $form->{amount} =~ s/-//g;
+ }
+
+ for (qw(datepaid source memo)) { $form->{$_} = $form->{"${_}_$i"} }
+
+ &{ "$form->{vc}_details" };
+ @a = qw(name address1 address2 city state zipcode country);
+
+ foreach $item (qw(invnumber ordnumber)) {
+ $temp{$item} = $form->{$item};
+ delete $form->{$item};
+ push(@{ $form->{$item} }, $temp{$item});
+ }
+ push(@{ $form->{invdate} }, $form->{transdate});
+ push(@{ $form->{due} }, $form->format_amount(\%myconfig, $form->{oldinvtotal}, 2));
+ push(@{ $form->{paid} }, $form->{"paid_$i"});
+
+ use SL::CP;
+ $c = CP->new(($form->{language_code}) ? $form->{language_code} : $myconfig{countrycode});
+ $c->init;
+ ($whole, $form->{decimal}) = split /\./, $form->parse_amount(\%myconfig, $form->{amount});
+
+ $form->{decimal} .= "00";
+ $form->{decimal} = substr($form->{decimal}, 0, 2);
+ $form->{text_decimal} = $c->num2text($form->{decimal} * 1);
+ $form->{text_amount} = $c->num2text($whole);
+ $form->{integer_amount} = $form->format_amount($myconfig, $whole);
+
+ ($form->{employee}) = split /--/, $form->{employee};
+
+ $form->{notes} =~ s/^\s+//g;
+ push @a, "notes";
+
+ for (qw(company address tel fax businessnumber)) { $form->{$_} = $myconfig{$_} }
+ $form->{address} =~ s/\\n/\n/g;
+
+ push @a, qw(company address tel fax businessnumber text_amount text_decimal);
+
+ $form->format_string(@a);
+
+ $form->{templates} = "$myconfig{templates}";
+ $form->{IN} = ($form->{formname} eq 'transaction') ? lc $form->{ARAP} . "_$form->{formname}.html" : "$form->{formname}.html";
+
+ if ($form->{format} =~ /(postscript|pdf)/) {
+ $form->{IN} =~ s/html$/tex/;
+ }
+
+ if ($form->{media} !~ /(screen)/) {
+ $form->{OUT} = "| $printer{$form->{media}}";
+
+ if ($form->{printed} !~ /$form->{formname}/) {
+
+ $form->{printed} .= " $form->{formname}";
+ $form->{printed} =~ s/^ //;
+
+ $form->update_status(\%myconfig);
+ }
+
+ %audittrail = ( tablename => lc $form->{ARAP},
+ reference => $form->{invnumber},
+ formname => $form->{formname},
+ action => 'printed',
+ id => $form->{id} );
+
+ %status = ();
+ for (qw(printed audittrail)) { $status{$_} = $form->{$_} }
+
+ $status{audittrail} .= $form->audittrail("", \%myconfig, \%audittrail);
+
+ }
+
+ $form->{fileid} = $invnumber;
+ $form->{fileid} =~ s/(\s|\W)+//g;
+
+ $form->parse_template(\%myconfig, $userspath);
+
+ if ($form->{previousform}) {
+
+ $previousform = $form->unescape($form->{previousform});
+
+ for (keys %$form) { delete $form->{$_} }
+
+ foreach $item (split /&/, $previousform) {
+ ($key, $value) = split /=/, $item, 2;
+ $value =~ s/%26/&/g;
+ $form->{$key} = $value;
+ }
+
+ for (qw(exchangerate creditlimit creditremaining)) { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) }
+
+ for (1 .. $form->{rowcount}) { $form->{"amount_$_"} = $form->parse_amount(\%myconfig, $form->{"amount_$_"}) }
+ for (split / /, $form->{taxaccounts}) { $form->{"tax_$_"} = $form->parse_amount(\%myconfig, $form->{"tax_$_"}) }
+
+ for $i (1 .. $form->{paidaccounts}) {
+ for (qw(paid exchangerate)) { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) }
+ }
+
+ for (qw(printed audittrail)) { $form->{$_} = $status{$_} }
+
+ &{ "$display_form" };
+
+ }
+
+}
+
+
+sub print_receipt {
+ my ($old_form, $i) = @_;
+
+ &print_check($old_form, $i);
+
+}
+
+
+sub print_transaction {
+ my ($old_form) = @_;
+
+ $display_form = ($form->{display_form}) ? $form->{display_form} : "display_form";
+
+
+ &{ "$form->{vc}_details" };
+ @a = qw(name address1 address2 city state zipcode country);
+
+
+ $form->{invtotal} = 0;
+ foreach $i (1 .. $form->{rowcount} - 1) {
+ ($form->{tempaccno}, $form->{tempaccount}) = split /--/, $form->{"$form->{ARAP}_amount_$i"};
+ ($form->{tempprojectnumber}) = split /--/, $form->{"projectnumber_$i"};
+ $form->{tempdescription} = $form->{"description_$i"};
+
+ $form->format_string(qw(tempaccno tempaccount tempprojectnumber tempdescription));
+
+ push(@{ $form->{accno} }, $form->{tempaccno});
+ push(@{ $form->{account} }, $form->{tempaccount});
+ push(@{ $form->{description} }, $form->{tempdescription});
+ push(@{ $form->{projectnumber} }, $form->{tempprojectnumber});
+
+ push(@{ $form->{amount} }, $form->{"amount_$i"});
+
+ $form->{subtotal} += $form->parse_amount(\%myconfig, $form->{"amount_$i"});
+
+ }
+
+ foreach $accno (split / /, $form->{taxaccounts}) {
+ if ($form->{"tax_$accno"}) {
+ $form->format_string("${accno}_description");
+
+ $tax += $form->parse_amount(\%myconfig, $form->{"tax_$accno"});
+
+ $form->{"${accno}_tax"} = $form->{"tax_$accno"};
+ push(@{ $form->{tax} }, $form->{"tax_$accno"});
+
+ push(@{ $form->{taxdescription} }, $form->{"${accno}_description"});
+
+ $form->{"${accno}_taxrate"} = $form->format_amount($myconfig, $form->{"${accno}_rate"} * 100);
+ push(@{ $form->{taxrate} }, $form->{"${accno}_taxrate"});
+
+ push(@{ $form->{taxnumber} }, $form->{"${accno}_taxnumber"});
+ }
+ }
+
+ $tax = 0 if $form->{taxincluded};
+
+ push @a, $form->{ARAP};
+ $form->format_string(@a);
+
+ $form->{paid} = 0;
+ for $i (1 .. $form->{paidaccounts} - 1) {
+
+ if ($form->{"paid_$i"}) {
+ @a = ();
+ $form->{paid} += $form->parse_amount(\%myconfig, $form->{"paid_$i"});
+
+ if (exists $form->{longformat}) {
+ $form->{"datepaid_$i"} = $locale->date(\%myconfig, $form->{"datepaid_$i"}, $form->{longformat});
+ }
+
+ push @a, "$form->{ARAP}_paid_$i", "source_$i", "memo_$i";
+ $form->format_string(@a);
+
+ ($accno, $account) = split /--/, $form->{"$form->{ARAP}_paid_$i"};
+
+ push(@{ $form->{payment} }, $form->{"paid_$i"});
+ push(@{ $form->{paymentdate} }, $form->{"datepaid_$i"});
+ push(@{ $form->{paymentaccount} }, $account);
+ push(@{ $form->{paymentsource} }, $form->{"source_$i"});
+ push(@{ $form->{paymentmemo} }, $form->{"memo_$i"});
+ }
+
+ }
+
+ $form->{invtotal} = $form->{subtotal} + $tax;
+ $form->{total} = $form->{invtotal} - $form->{paid};
+
+ use SL::CP;
+ $c = CP->new(($form->{language_code}) ? $form->{language_code} : $myconfig{countrycode});
+ $c->init;
+ ($whole, $form->{decimal}) = split /\./, $form->{invtotal};
+
+ $form->{decimal} .= "00";
+ $form->{decimal} = substr($form->{decimal}, 0, 2);
+ $form->{text_decimal} = $c->num2text($form->{decimal} * 1);
+ $form->{text_amount} = $c->num2text($whole);
+ $form->{integer_amount} = $form->format_amount($myconfig, $whole);
+
+ for (qw(invtotal subtotal paid total)) { $form->{$_} = $form->format_amount(\%myconfig, $form->{$_}, 2) }
+
+ ($form->{employee}) = split /--/, $form->{employee};
+
+ if (exists $form->{longformat}) {
+ for (qw(duedate transdate)) { $form->{$_} = $locale->date(\%myconfig, $form->{$_}, $form->{longformat}) }
+ }
+
+ $form->{notes} =~ s/^\s+//g;
+
+ @a = ("invnumber", "transdate", "duedate", "notes");
+
+ for (qw(company address tel fax businessnumber)) { $form->{$_} = $myconfig{$_} }
+ $form->{address} =~ s/\\n/\n/g;
+
+ push @a, qw(company address tel fax businessnumber text_amount text_decimal);
+
+ $form->format_string(@a);
+
+ $form->{invdate} = $form->{transdate};
+
+ $form->{templates} = "$myconfig{templates}";
+ $form->{IN} = ($form->{formname} eq 'transaction') ? lc $form->{ARAP} . "_$form->{formname}.html" : "$form->{formname}.html";
+
+ if ($form->{format} =~ /(postscript|pdf)/) {
+ $form->{IN} =~ s/html$/tex/;
+ }
+
+ if ($form->{media} !~ /(screen)/) {
+ $form->{OUT} = "| $printer{$form->{media}}";
+
+ if ($form->{printed} !~ /$form->{formname}/) {
+
+ $form->{printed} .= " $form->{formname}";
+ $form->{printed} =~ s/^ //;
+
+ $form->update_status(\%myconfig);
+ }
+
+ $old_form->{printed} = $form->{printed} if %$old_form;
+
+ %audittrail = ( tablename => lc $form->{ARAP},
+ reference => $form->{"invnumber"},
+ formname => $form->{formname},
+ action => 'printed',
+ id => $form->{id} );
+
+ $old_form->{audittrail} .= $form->audittrail("", \%myconfig, \%audittrail) if %$old_form;
+
+ }
+
+ $form->{fileid} = $form->{invnumber};
+ $form->{fileid} =~ s/(\s|\W)+//g;
+
+ $form->parse_template(\%myconfig, $userspath);
+
+ if (%$old_form) {
+ $old_form->{invnumber} = $form->{invnumber};
+ $old_form->{invtotal} = $form->{invtotal};
+
+ for (keys %$form) { delete $form->{$_} }
+ for (keys %$old_form) { $form->{$_} = $old_form->{$_} }
+
+ if (! $form->{printandpost}) {
+ for (qw(exchangerate creditlimit creditremaining)) { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) }
+
+ for (1 .. $form->{rowcount}) { $form->{"amount_$_"} = $form->parse_amount(\%myconfig, $form->{"amount_$_"}) }
+ for (split / /, $form->{taxaccounts}) { $form->{"tax_$_"} = $form->parse_amount(\%myconfig, $form->{"tax_$_"}) }
+
+ for $i (1 .. $form->{paidaccounts}) {
+ for (qw(paid exchangerate)) { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) }
+ }
+ }
+
+ &{ "$display_form" };
+
+ }
+
+}
+
+
+sub vendor_details { IR->vendor_details(\%myconfig, \%$form) };
+sub customer_details { IS->customer_details(\%myconfig, \%$form) };
+
+
+sub select_payment {
+
+ @column_index = ("ndx", "datepaid", "source", "memo", "paid", "$form->{ARAP}_paid");
+
+ # list payments with radio button on a form
+ $form->header;
+
+ $title = $locale->text('Select payment');
+
+ $column_data{ndx} = qq|<th width=1%>&nbsp;</th>|;
+ $column_data{datepaid} = qq|<th>|.$locale->text('Date').qq|</th>|;
+ $column_data{source} = qq|<th>|.$locale->text('Source').qq|</th>|;
+ $column_data{memo} = qq|<th>|.$locale->text('Memo').qq|</th>|;
+ $column_data{paid} = qq|<th>|.$locale->text('Amount').qq|</th>|;
+ $column_data{"$form->{ARAP}_paid"} = qq|<th>|.$locale->text('Account').qq|</th>|;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$title</th>
+ </tr>
+ <tr space=5></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ $checked = "checked";
+ foreach $i (1 .. $form->{paidaccounts} - 1) {
+
+ for (@column_index) { $column_data{$_} = qq|<td>$form->{"${_}_$i"}</td>| }
+
+ $paid = $form->{"paid_$i"};
+ $ok = 1;
+
+ $column_data{ndx} = qq|<td><input name=ndx class=radio type=radio value=$i $checked></td>|;
+ $column_data{paid} = qq|<td align=right>$paid</td>|;
+
+ $checked = "";
+
+ $j++; $j %= 2;
+ print qq|
+ <tr class=listrow$j>|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+ for (qw(action nextsub)) { delete $form->{$_} }
+
+ $form->hide_form;
+
+ print qq|
+
+<br>
+<input type=hidden name=nextsub value=payment_selected>
+|;
+
+ if ($ok) {
+ print qq|
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">|;
+ }
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+sub payment_selected {
+
+ &{ "print_$form->{formname}" }($form->{oldform}, $form->{ndx});
+
+}
+
+
+sub print_options {
+
+ if ($form->{selectlanguage}) {
+ $form->{"selectlanguage"} = $form->unescape($form->{"selectlanguage"});
+ $form->{"selectlanguage"} =~ s/ selected//;
+ $form->{"selectlanguage"} =~ s/(<option value="\Q$form->{language_code}\E")/$1 selected/;
+ $lang = qq|<select name=language_code>$form->{selectlanguage}</select>
+ <input type=hidden name=selectlanguage value="|.
+ $form->escape($form->{selectlanguage},1).qq|">|;
+ }
+
+ $form->{selectformname} = $form->unescape($form->{selectformname});
+ $form->{selectformname} =~ s/ selected//;
+ $form->{selectformname} =~ s/(<option value="\Q$form->{formname}\E")/$1 selected/;
+
+ $type = qq|<select name=formname>$form->{selectformname}</select>
+ <input type=hidden name=selectformname value="|.$form->escape($form->{selectformname},1).qq|">|;
+
+ $media = qq|<select name=media>
+ <option value="screen">|.$locale->text('Screen');
+
+ $form->{selectformat} = qq|<option value="html">html\n|;
+
+ if (%printer && $latex) {
+ for (sort keys %printer) { $media .= qq|
+ <option value="$_">$_| }
+ }
+
+ if ($latex) {
+ $form->{selectformat} .= qq|
+ <option value="postscript">|.$locale->text('Postscript').qq|
+ <option value="pdf">|.$locale->text('PDF');
+ }
+
+ $format = qq|<select name=format>$form->{selectformat}</select>|;
+ $format =~ s/(<option value="\Q$form->{format}\E")/$1 selected/;
+ $format .= qq|
+ <input type=hidden name=selectformat value="|.$form->escape($form->{selectformat},1).qq|">|;
+ $media .= qq|</select>|;
+ $media =~ s/(<option value="\Q$form->{media}\E")/$1 selected/;
+
+ print qq|
+ <table width=100%>
+ <tr>
+ <td>$type</td>
+ <td>$lang</td>
+ <td>$format</td>
+ <td>$media</td>
+ <td align=right width=90%>
+ |;
+
+ if ($form->{printed} =~ /$form->{formname}/) {
+ print $locale->text('Printed').qq|<br>|;
+ }
+
+ if ($form->{recurring}) {
+ print $locale->text('Scheduled');
+ }
+
+ print qq|
+ </td>
+ </tr>
+ </table>
+|;
+
+}
+
+
+sub print_and_post {
+
+ $form->error($locale->text('Select postscript or PDF!')) if $form->{format} !~ /(postscript|pdf)/;
+ $form->error($locale->text('Select a Printer!')) if $form->{media} eq 'screen';
+
+ $form->{printandpost} = 1;
+ $form->{display_form} = "post";
+ &print;
+
+}
+
+
diff --git a/bin/lynx/bp.pl b/bin/lynx/bp.pl
new file mode 100755
index 00000000..ce724baa
--- /dev/null
+++ b/bin/lynx/bp.pl
@@ -0,0 +1,531 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2003
+#
+# Author: DWS Systems Inc.
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#======================================================================
+#
+# Batch printing
+#
+#======================================================================
+
+
+use SL::BP;
+
+1;
+# end of main
+
+
+sub search {
+
+# $locale->text('Sales Invoices')
+# $locale->text('Packing Lists')
+# $locale->text('Pick Lists')
+# $locale->text('Sales Orders')
+# $locale->text('Work Orders')
+# $locale->text('Purchase Orders')
+# $locale->text('Bin Lists')
+# $locale->text('Quotations')
+# $locale->text('RFQs')
+# $locale->text('Time Cards')
+
+ # setup customer/vendor selection
+ BP->get_vc(\%myconfig, \%$form);
+
+ if (@{ $form->{"all_$form->{vc}"} }) {
+ $name = "<option>\n";
+ for (@{ $form->{"all_$form->{vc}"} }) { $name .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+ $name = qq|<select name=$form->{vc}>$name</select>|;
+ } else {
+ $name = qq|<input name=$form->{vc} size=35>|;
+ }
+
+# $locale->text('Customer')
+# $locale->text('Vendor')
+# $locale->text('Employee')
+
+ %label = ( invoice => { title => 'Sales Invoices', name => 'Customer' },
+ packing_list => { title => 'Packing Lists', name => 'Customer' },
+ pick_list => { title => 'Pick Lists', name => 'Customer' },
+ sales_order => { title => 'Sales Orders', name => 'Customer' },
+ work_order => { title => 'Work Orders', name => 'Customer' },
+ purchase_order => { title => 'Purchase Orders', name => 'Vendor' },
+ bin_list => { title => 'Bin Lists', name => 'Vendor' },
+ sales_quotation => { title => 'Quotations', name => 'Customer' },
+ request_quotation => { title => 'RFQs', name => 'Vendor' },
+ timecard => { title => 'Time Cards', name => 'Employee' },
+ );
+
+ $label{invoice}{invnumber} = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Invoice Number').qq|</th>
+ <td colspan=3><input name=invnumber size=20></td>
+ </tr>
+|;
+ $label{invoice}{ordnumber} = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Order Number').qq|</th>
+ <td colspan=3><input name=ordnumber size=20></td>
+ </tr>
+|;
+ $label{sales_quotation}{quonumber} = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Quotation Number').qq|</th>
+ <td colspan=3><input name=quonumber size=20></td>
+ </tr>
+|;
+
+ $label{packing_list}{invnumber} = $label{invoice}{invnumber};
+ $label{packing_list}{ordnumber} = $label{invoice}{ordnumber};
+ $label{pick_list}{invnumber} = $label{invoice}{invnumber};
+ $label{pick_list}{ordnumber} = $label{invoice}{ordnumber};
+ $label{sales_order}{ordnumber} = $label{invoice}{ordnumber};
+ $label{work_order}{ordnumber} = $label{invoice}{ordnumber};
+ $label{purchase_order}{ordnumber} = $label{invoice}{ordnumber};
+ $label{bin_list}{ordnumber} = $label{invoice}{ordnumber};
+ $label{request_quotation}{quonumber} = $label{sales_quotation}{quonumber};
+
+ # do one call to text
+ $form->{title} = $locale->text('Print')." ".$locale->text($label{$form->{type}}{title});
+
+ # accounting years
+ if (@{ $form->{all_years} }) {
+ # accounting years
+ $form->{selectaccountingyear} = "<option>\n";
+ for (@{ $form->{all_years} }) { $form->{selectaccountingyear} .= qq|<option>$_\n| }
+ $form->{selectaccountingmonth} = "<option>\n";
+ for (sort keys %{ $form->{all_month} }) { $form->{selectaccountingmonth} .= qq|<option value=$_>|.$locale->text($form->{all_month}{$_}).qq|\n| }
+
+ $selectfrom = qq|
+ <tr>
+ <th align=right>|.$locale->text('Period').qq|</th>
+ <td colspan=3>
+ <select name=month>$form->{selectaccountingmonth}</select>
+ <select name=year>$form->{selectaccountingyear}</select>
+ <input name=interval class=radio type=radio value=0 checked>&nbsp;|.$locale->text('Current').qq|
+ <input name=interval class=radio type=radio value=1>&nbsp;|.$locale->text('Month').qq|
+ <input name=interval class=radio type=radio value=3>&nbsp;|.$locale->text('Quarter').qq|
+ <input name=interval class=radio type=radio value=12>&nbsp;|.$locale->text('Year').qq|
+ </td>
+ </tr>
+|;
+ }
+
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+|;
+
+ $form->hide_form(qw(vc type title));
+
+ print qq|
+<table width=100%>
+ <tr><th class=listtop>$form->{title}</th></tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right>|.$locale->text($label{$form->{type}}{name}).qq|</th>
+ <td colspan=3>$name</td>
+ </tr>
+ $account
+ $label{$form->{type}}{invnumber}
+ $label{$form->{type}}{ordnumber}
+ $label{$form->{type}}{quonumber}
+ <tr>
+ <th align=right nowrap>|.$locale->text('From').qq|</th>
+ <td><input name=transdatefrom size=11 title="$myconfig{dateformat}"></td>
+ <th align=right>|.$locale->text('To').qq|</th>
+ <td><input name=transdateto size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+ $selectfrom
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<input type=hidden name=sort value=transdate>
+<input type=hidden name=nextsub value=list_spool>
+
+<br>
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">
+|;
+
+ $form->hide_form(qw(path login sessionid));
+
+ print qq|
+
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+
+sub remove {
+
+ $selected = 0;
+
+ for $i (1 .. $form->{rowcount}) {
+ if ($form->{"checked_$i"}) {
+ $selected = 1;
+ last;
+ }
+ }
+
+ $form->error('Nothing selected!') unless $selected;
+
+ $form->{title} = $locale->text('Confirm!');
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+|;
+
+ for (qw(action header)) { delete $form->{$_} }
+
+ foreach $key (keys %$form) {
+ print qq|<input type=hidden name=$key value="$form->{$key}">\n|;
+ }
+
+ print qq|
+<h2 class=confirm>$form->{title}</h2>
+
+<h4>|.$locale->text('Are you sure you want to remove the marked entries from the queue?').qq|</h4>
+
+<input name=action class=submit type=submit value="|.$locale->text('Yes').qq|">
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+
+sub yes {
+
+ $form->info($locale->text('Removing marked entries from queue ...'));
+ $form->{callback} .= "&header=1" if $form->{callback};
+
+ if (BP->delete_spool(\%myconfig, \%$form, $spool)) {
+ $form->redirect($locale->text('Removed spoolfiles!'));
+ } else {
+ $form->error($locale->text('Cannot remove files!'));
+ }
+
+}
+
+
+sub print {
+
+ if ($form->{callback}) {
+ for (1 .. $form->{rowcount}) { $form->{callback} .= "&checked_$_=1" if $form->{"checked_$_"} }
+ $form->{callback} .= "&header=1";
+ }
+
+ for $i (1 .. $form->{rowcount}) {
+ if ($form->{"checked_$i"}) {
+ $form->{OUT} = "| $printer{$form->{media}}";
+ $form->info($locale->text('Printing')." ...");
+
+ if (BP->print_spool(\%myconfig, \%$form, $spool)) {
+ print $locale->text('done');
+ $form->redirect($locale->text('Marked entries printed!'));
+ }
+ exit;
+ }
+ }
+
+ $form->error('Nothing selected!');
+
+}
+
+
+sub list_spool {
+
+ $form->{$form->{vc}} = $form->unescape($form->{$form->{vc}});
+ ($form->{$form->{vc}}, $form->{"$form->{vc}_id"}) = split(/--/, $form->{$form->{vc}});
+
+ BP->get_spoolfiles(\%myconfig, \%$form);
+
+ $title = $form->escape($form->{title});
+ $href = "$form->{script}?action=list_spool&direction=$form->{direction}&oldsort=$form->{oldsort}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&vc=$form->{vc}&type=$form->{type}&title=$title";
+
+ $form->sort_order();
+
+ $title = $form->escape($form->{title},1);
+ $callback = "$form->{script}?action=list_spool&direction=$form->{direction}&oldsort=$form->{oldsort}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&vc=$form->{vc}&type=$form->{type}&title=$title";
+
+ if ($form->{$form->{vc}}) {
+ $callback .= "&$form->{vc}=".$form->escape($form->{$form->{vc}},1);
+ $href .= "&$form->{vc}=".$form->escape($form->{$form->{vc}});
+ $option = ($form->{vc} eq 'customer') ? $locale->text('Customer') : $locale->text('Vendor');
+ $option .= " : $form->{$form->{vc}}";
+ }
+ if ($form->{account}) {
+ $callback .= "&account=".$form->escape($form->{account},1);
+ $href .= "&account=".$form->escape($form->{account});
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Account')." : $form->{account}";
+ }
+ if ($form->{invnumber}) {
+ $callback .= "&invnumber=".$form->escape($form->{invnumber},1);
+ $href .= "&invnumber=".$form->escape($form->{invnumber});
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Invoice Number')." : $form->{invnumber}";
+ }
+ if ($form->{ordnumber}) {
+ $callback .= "&ordnumber=".$form->escape($form->{ordnumber},1);
+ $href .= "&ordnumber=".$form->escape($form->{ordnumber});
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Order Number')." : $form->{ordnumber}";
+ }
+ if ($form->{quonumber}) {
+ $callback .= "&quonumber=".$form->escape($form->{quonumber},1);
+ $href .= "&quonumber=".$form->escape($form->{quonumber});
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Quotation Number')." : $form->{quonumber}";
+ }
+
+ if ($form->{transdatefrom}) {
+ $callback .= "&transdatefrom=$form->{transdatefrom}";
+ $href .= "&transdatefrom=$form->{transdatefrom}";
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('From')."&nbsp;".$locale->date(\%myconfig, $form->{transdatefrom}, 1);
+ }
+ if ($form->{transdateto}) {
+ $callback .= "&transdateto=$form->{transdateto}";
+ $href .= "&transdateto=$form->{transdateto}";
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('To')."&nbsp;".$locale->date(\%myconfig, $form->{transdateto}, 1);
+ }
+
+ $name = ucfirst $form->{vc};
+
+ @columns = qw(transdate);
+ if ($form->{type} =~ /(invoice)/) {
+ push @columns, "invnumber";
+ }
+ if ($form->{type} =~ /(packing|pick)_list/) {
+ push @columns, "invnumber";
+ }
+ if ($form->{type} =~ /_(order|list)$/) {
+ push @columns, "ordnumber";
+ }
+ if ($form->{type} =~ /_quotation$/) {
+ push @columns, "quonumber";
+ }
+ if ($form->{type} eq 'timecard') {
+ push @columns, "id";
+ }
+
+
+ push @columns, (name, spoolfile);
+ @column_index = $form->sort_columns(@columns);
+ unshift @column_index, "checked";
+
+ $column_header{checked} = "<th class=listheading>&nbsp;</th>";
+ $column_header{transdate} = "<th><a class=listheading href=$href&sort=transdate>".$locale->text('Date')."</a></th>";
+ $column_header{invnumber} = "<th><a class=listheading href=$href&sort=invnumber>".$locale->text('Invoice')."</a></th>";
+ $column_header{ordnumber} = "<th><a class=listheading href=$href&sort=ordnumber>".$locale->text('Order')."</a></th>";
+ $column_header{quonumber} = "<th><a class=listheading href=$href&sort=quonumber>".$locale->text('Quotation')."</a></th>";
+ $column_header{name} = "<th><a class=listheading href=$href&sort=name>".$locale->text($name)."</a></th>";
+ $column_header{id} = "<th><a class=listheading href=$href&sort=id>".$locale->text('ID')."</a></th>";
+ $column_header{spoolfile} = "<th class=listheading>".$locale->text('Spoolfile')."</th>";
+
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$option</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "\n$column_header{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+
+ # add sort and escape callback, this one we use for the add sub
+ $form->{callback} = $callback .= "&sort=$form->{sort}";
+
+ # escape callback for href
+ $callback = $form->escape($callback);
+
+ $i = 0;
+
+ foreach $ref (@{ $form->{SPOOL} }) {
+
+ $i++;
+
+ $form->{"checked_$i"} = "checked" if $form->{"checked_$i"};
+
+ # this is for audittrail
+ $form->{module} = $ref->{module};
+
+ if ($ref->{invoice}) {
+ $ref->{module} = ($ref->{module} eq 'ar') ? "is" : "ir";
+ }
+ $module = "$ref->{module}.pl";
+
+ $column_data{transdate} = "<td>$ref->{transdate}&nbsp;</td>";
+
+ if ($spoolfile eq $ref->{spoolfile}) {
+ $column_data{checked} = qq|<td></td>|;
+ } else {
+ $column_data{checked} = qq|<td><input name=checked_$i type=checkbox class=checkbox $form->{"checked_$i"} $form->{"checked_$i"}></td>|;
+ }
+
+ for (qw(id invnumber ordnumber quonumber)) { $column_data{$_} = qq|<td>$ref->{$_}</td>| }
+
+ if ($ref->{module} eq 'oe') {
+ $column_data{invnumber} = qq|<td>&nbsp</td>|;
+ $column_data{ordnumber} = qq|<td><a href=$module?action=edit&id=$ref->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&type=$form->{type}&callback=$callback>$ref->{ordnumber}</a></td>
+ <input type=hidden name="reference_$i" value="$ref->{ordnumber}">|;
+
+ $column_data{quonumber} = qq|<td><a href=$module?action=edit&id=$ref->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&type=$form->{type}&callback=$callback>$ref->{quonumber}</a></td>
+ <input type=hidden name="reference_$i" value="$ref->{quonumber}">|;
+
+ } elsif ($ref->{module} eq 'jc') {
+ $column_data{id} = qq|<td><a href=$module?action=edit&id=$ref->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&type=$form->{type}&callback=$callback>$ref->{id}</a></td>
+ <input type=hidden name="reference_$i" value="$ref->{id}">|;
+ } else {
+ $column_data{invnumber} = qq|<td><a href=$module?action=edit&id=$ref->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&type=$form->{type}&callback=$callback>$ref->{invnumber}</a></td>
+ <input type=hidden name="reference_$i" value="$ref->{invnumber}">|;
+ }
+
+
+ $column_data{name} = "<td>$ref->{name}</td>";
+ $column_data{spoolfile} = qq|<td><a href=$spool/$ref->{spoolfile}>$ref->{spoolfile}</a></td>
+
+|;
+
+ $spoolfile = $ref->{spoolfile};
+
+ $j++; $j %= 2;
+ print "
+ <tr class=listrow$j>
+";
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+<input type=hidden name="id_$i" value=$ref->{id}>
+<input type=hidden name="spoolfile_$i" value=$ref->{spoolfile}>
+
+ </tr>
+|;
+
+ }
+
+ print qq|
+<input type=hidden name=rowcount value=$i>
+
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+|;
+
+ $form->hide_form(qw(callback title vc type sort module account path login sessionid));
+
+ if (%printer && $latex) {
+ foreach $key (sort keys %printer) {
+ print qq|
+<input name=media type=radio class=radio value="$key" |;
+ print qq|checked| if $key eq $myconfig{printer};
+ print qq|>$key|;
+ }
+
+ print qq|<p>\n|;
+
+# type=submit $locale->text('Select all')
+# type=submit $locale->text('Print')
+# type=submit $locale->text('Remove')
+
+ %button = ('Select all' => { ndx => 2, key => 'A', value => $locale->text('Select all') },
+ 'Print' => { ndx => 3, key => 'P', value => $locale->text('Print') },
+ 'Remove' => { ndx => 4, key => 'R', value => $locale->text('Remove') },
+ );
+
+ for (sort { $button{$a}->{ndx} <=> $button{$b}->{ndx} } keys %button) { $form->print_button(\%button, $_) }
+
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub select_all {
+
+ for (1 .. $form->{rowcount}) { $form->{"checked_$_"} = 1 }
+ &list_spool;
+
+}
+
+
+sub continue { &{ $form->{nextsub} } };
+
diff --git a/bin/lynx/ca.pl b/bin/lynx/ca.pl
new file mode 100755
index 00000000..8ea9980d
--- /dev/null
+++ b/bin/lynx/ca.pl
@@ -0,0 +1,514 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (C) 2001
+#
+# Author: DWS Systems Inc.
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+# Contributors:
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#======================================================================
+#
+# module for Chart of Accounts, Income Statement and Balance Sheet
+# search and edit transactions posted by the GL, AR and AP
+#
+#======================================================================
+
+use SL::CA;
+
+1;
+# end of main
+
+# this is for our long dates
+# $locale->text('January')
+# $locale->text('February')
+# $locale->text('March')
+# $locale->text('April')
+# $locale->text('May ')
+# $locale->text('June')
+# $locale->text('July')
+# $locale->text('August')
+# $locale->text('September')
+# $locale->text('October')
+# $locale->text('November')
+# $locale->text('December')
+
+# this is for our short month
+# $locale->text('Jan')
+# $locale->text('Feb')
+# $locale->text('Mar')
+# $locale->text('Apr')
+# $locale->text('May')
+# $locale->text('Jun')
+# $locale->text('Jul')
+# $locale->text('Aug')
+# $locale->text('Sep')
+# $locale->text('Oct')
+# $locale->text('Nov')
+# $locale->text('Dec')
+
+
+sub chart_of_accounts {
+
+ CA->all_accounts(\%myconfig, \%$form);
+
+ @column_index = qw(accno gifi_accno description debit credit);
+
+ $column_header{accno} = qq|<th class=listtop>|.$locale->text('Account').qq|</th>\n|;
+ $column_header{gifi_accno} = qq|<th class=listtop>|.$locale->text('GIFI').qq|</th>\n|;
+ $column_header{description} = qq|<th class=listtop>|.$locale->text('Description').qq|</th>\n|;
+ $column_header{debit} = qq|<th class=listtop>|.$locale->text('Debit').qq|</th>\n|;
+ $column_header{credit} = qq|<th class=listtop>|.$locale->text('Credit').qq|</th>\n|;
+
+
+ $form->{title} = $locale->text('Chart of Accounts');
+
+ $colspan = $#column_index + 1;
+
+ $form->header;
+
+ print qq|
+<body>
+
+<table border=0 width=100%>
+ <tr><th class=listtop colspan=$colspan>$form->{title}</th></tr>
+ <tr height="5"></tr>
+ <tr class=listheading>|;
+
+ for (@column_index) { print $column_header{$_} }
+
+ print qq|
+ </tr>
+|;
+
+
+ foreach $ca (@{ $form->{CA} }) {
+
+ $description = $form->escape($ca->{description});
+ $gifi_description = $form->escape($ca->{gifi_description});
+
+ $href = qq|$form->{script}?path=$form->{path}&action=list&accno=$ca->{accno}&login=$form->{login}&sessionid=$form->{sessionid}&description=$description&gifi_accno=$ca->{gifi_accno}&gifi_description=$gifi_description|;
+
+ if ($ca->{charttype} eq "H") {
+ print qq|<tr class=listheading>|;
+ for (qw(accno description)) { $column_data{$_} = "<th class=listheading>$ca->{$_}</th>" }
+ $column_data{gifi_accno} = "<th class=listheading>$ca->{gifi_accno}&nbsp;</th>";
+ } else {
+ $i++; $i %= 2;
+ print qq|<tr class=listrow$i>|;
+ $column_data{accno} = "<td><a href=$href>$ca->{accno}</a></td>";
+ $column_data{gifi_accno} = "<td><a href=$href&accounttype=gifi>$ca->{gifi_accno}</a>&nbsp;</td>";
+ $column_data{description} = "<td>$ca->{description}</td>";
+ }
+
+ $column_data{debit} = "<td align=right>".$form->format_amount(\%myconfig, $ca->{debit}, 2, "&nbsp;")."</td>\n";
+ $column_data{credit} = "<td align=right>".$form->format_amount(\%myconfig, $ca->{credit}, 2, "&nbsp;")."</td>\n";
+
+ $totaldebit += $ca->{debit};
+ $totalcredit += $ca->{credit};
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+</tr>
+|;
+ }
+
+ for (qw(accno gifi_accno description)) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $column_data{debit} = "<th align=right class=listtotal>".$form->format_amount(\%myconfig, $totaldebit, 2, 0)."</th>";
+ $column_data{credit} = "<th align=right class=listtotal>".$form->format_amount(\%myconfig, $totalcredit, 2, 0)."</th>";
+
+ print "<tr class=listtotal>";
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+</tr>
+<tr>
+ <td colspan=$colspan><hr size=3 noshade></td>
+</tr>
+</table>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub list {
+
+ $form->{title} = $locale->text('List Transactions');
+ if ($form->{accounttype} eq 'gifi') {
+ $form->{title} .= " - ".$locale->text('GIFI')." $form->{gifi_accno} - $form->{gifi_description}";
+ } else {
+ $form->{title} .= " - ".$locale->text('Account')." $form->{accno} - $form->{description}";
+ }
+
+ # get departments
+ $form->all_departments(\%myconfig);
+ if (@{ $form->{all_department} }) {
+ $form->{selectdepartment} = "<option>\n";
+
+ for (@{ $form->{all_department} }) { $form->{selectdepartment} .= qq|<option value="$_->{description}--$_->{id}">$_->{description}\n| }
+ }
+
+ $department = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Department').qq|</th>
+ <td colspan=3><select name=department>$form->{selectdepartment}</select></td>
+ </tr>
+| if $form->{selectdepartment};
+
+ if (@{ $form->{all_years} }) {
+ # accounting years
+ $form->{selectaccountingyear} = "<option>\n";
+ for (@{ $form->{all_years} }) { $form->{selectaccountingyear} .= qq|<option>$_\n| }
+ $form->{selectaccountingmonth} = "<option>\n";
+ for (sort keys %{ $form->{all_month} }) { $form->{selectaccountingmonth} .= qq|<option value=$_>|.$locale->text($form->{all_month}{$_}).qq|\n| }
+
+ $selectfrom = qq|
+ <tr>
+ <th align=right>|.$locale->text('Period').qq|</th>
+ <td colspan=3>
+ <select name=month>$form->{selectaccountingmonth}</select>
+ <select name=year>$form->{selectaccountingyear}</select>
+ <input name=interval class=radio type=radio value=0 checked>&nbsp;|.$locale->text('Current').qq|
+ <input name=interval class=radio type=radio value=1>&nbsp;|.$locale->text('Month').qq|
+ <input name=interval class=radio type=radio value=3>&nbsp;|.$locale->text('Quarter').qq|
+ <input name=interval class=radio type=radio value=12>&nbsp;|.$locale->text('Year').qq|
+ </td>
+ </tr>
+|;
+ }
+
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=accno value=$form->{accno}>
+<input type=hidden name=description value="$form->{description}">
+
+<input type=hidden name=sort value=transdate>
+<input type=hidden name=oldsort value=transdate>
+
+<input type=hidden name=accounttype value=$form->{accounttype}>
+<input type=hidden name=gifi_accno value=$form->{gifi_accno}>
+<input type=hidden name=gifi_description value="$form->{gifi_description}">
+
+<table border=0 width=100%>
+ <tr><th class=listtop>$form->{title}</th></tr>
+ <tr height="5"></tr
+ <tr valign=top>
+ <td>
+ <table>
+ $department
+ <tr>
+ <th align=right>|.$locale->text('From').qq|</th>
+ <td><input name=fromdate size=11 title="$myconfig{dateformat}"></td>
+ <th align=right>|.$locale->text('To').qq|</th>
+ <td><input name=todate size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+ $selectfrom
+ <tr>
+ <th align=right>|.$locale->text('Include in Report').qq|</th>
+ <td colspan=3>
+ <input name=l_accno class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('AR/AP').qq|
+ <input name=l_subtotal class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Subtotal').qq|
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr><td><hr size=3 noshade></td></tr>
+</table>
+
+<input type=hidden name=login value=$form->{login}>
+<input type=hidden name=path value=$form->{path}>
+<input type=hidden name=sessionid value=$form->{sessionid}>
+
+<br><input class=submit type=submit name=action value="|.$locale->text('List Transactions').qq|">
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub list_transactions {
+
+ CA->all_transactions(\%myconfig, \%$form);
+
+ $department = $form->escape($form->{department});
+ $projectnumber = $form->escape($form->{projectnumber});
+ $title = $form->escape($form->{title});
+
+ # construct href
+ $href = "$form->{script}?action=list_transactions&department=$department&projectnumber=$projectnumber&title=$title";
+ for (qw(path oldsort accno login sessionid fromdate todate accounttype gifi_accno l_heading l_subtotal l_accno)) { $href .= "&$_=$form->{$_}" }
+
+ $drilldown = $href;
+ $drilldown .= "&sort=$form->{sort}";
+
+ $href .= "&direction=$form->{direction}";
+
+ $form->sort_order();
+
+ $drilldown .= "&direction=$form->{direction}";
+
+ $form->{prevreport} = $href unless $form->{prevreport};
+ $href .= "&prevreport=".$form->escape($form->{prevreport});
+ $drilldown .= "&prevreport=".$form->escape($form->{prevreport});
+
+ # figure out which column comes first
+ $column_header{transdate} = qq|<th><a class=listheading href=$href&sort=transdate>|.$locale->text('Date').qq|</a></th>|;
+ $column_header{reference} = qq|<th><a class=listheading href=$href&sort=reference>|.$locale->text('Reference').qq|</a></th>|;
+ $column_header{description} = qq|<th><a class=listheading href=$href&sort=description>|.$locale->text('Description').qq|</a></th>|;
+ $column_header{cleared} = qq|<th class=listheading>|.$locale->text('R').qq|</th>|;
+ $column_header{source} = qq|<th class=listheading>|.$locale->text('Source').qq|</th>|;
+ $column_header{debit} = qq|<th class=listheading>|.$locale->text('Debit').qq|</th>|;
+ $column_header{credit} = qq|<th class=listheading>|.$locale->text('Credit').qq|</th>|;
+ $column_header{balance} = qq|<th class=listheading>|.$locale->text('Balance').qq|</th>|;
+ $column_header{accno} = qq|<th class=listheading>|.$locale->text('AR/AP').qq|</th>|;
+
+ @columns = qw(transdate reference description debit credit);
+ if ($form->{link} =~ /_paid/) {
+ @columns = qw(transdate reference description source cleared debit credit);
+ }
+ push @columns, "accno" if $form->{l_accno};
+ @column_index = $form->sort_columns(@columns);
+
+
+ if ($form->{accounttype} eq 'gifi') {
+ for (qw(accno description)) { $form->{$_} = $form->{"gifi_$_"} }
+ }
+ if ($form->{accno}) {
+ push @column_index, "balance";
+ }
+
+ $form->{title} = ($form->{accounttype} eq 'gifi') ? $locale->text('GIFI') : $locale->text('Account');
+
+ $form->{title} .= " $form->{accno} - $form->{description}";
+
+ if ($form->{department}) {
+ ($department) = split /--/, $form->{department};
+ $options = $locale->text('Department')." : $department<br>";
+ }
+ if ($form->{projectnumber}) {
+ ($projectnumber) = split /--/, $form->{projectnumber};
+ $options .= $locale->text('Project Number')." : $projectnumber<br>";
+ }
+
+
+ if ($form->{fromdate} || $form->{todate}) {
+
+ if ($form->{fromdate}) {
+ $fromdate = $locale->date(\%myconfig, $form->{fromdate}, 1);
+ }
+ if ($form->{todate}) {
+ $todate = $locale->date(\%myconfig, $form->{todate}, 1);
+ }
+
+ $form->{period} = "$fromdate - $todate";
+ } else {
+ $form->{period} = $locale->date(\%myconfig, $form->current_date(\%myconfig), 1);
+ }
+
+ $form->{period} = "<a href=$form->{prevreport}>$form->{period}</a>" if $form->{prevreport};
+
+ $options .= $form->{period};
+
+
+ # construct callback
+ $department = $form->escape($form->{department},1);
+ $projectnumber = $form->escape($form->{projectnumber},1);
+ $title = $form->escape($form->{title},1);
+ $form->{prevreport} = $form->escape($form->{prevreport},1);
+
+ $form->{callback} = "$form->{script}?action=list_transactions&department=$department&projectnumber=$projectnumber&title=$title";
+ for (qw(path direction oldsort accno login sessionid fromdate todate accounttype gifi_accno l_heading l_subtotal l_accno prevreport)) { $form->{callback} .= "&$_=$form->{$_}" }
+
+
+ $form->header;
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$options</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "$column_header{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ # add sort to callback
+ $form->{callback} = $form->escape($form->{callback} . "&sort=$form->{sort}");
+
+ if (@{ $form->{CA} }) {
+ $sameitem = $form->{CA}->[0]->{$form->{sort}};
+ }
+
+ $ml = ($form->{category} =~ /(A|E)/) ? -1 : 1;
+ $ml *= -1 if $form->{contra};
+
+ if ($form->{accno} && $form->{balance}) {
+
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $column_data{balance} = "<td align=right>".$form->format_amount(\%myconfig, $form->{balance} * $ml, 2, 0)."</td>";
+
+ $i++; $i %= 2;
+
+ print qq|
+ <tr class=listrow$i>
+|;
+ for (@column_index) { print "$column_data{$_}\n" }
+ print qq|
+ </tr>
+|;
+
+ }
+
+ foreach $ca (@{ $form->{CA} }) {
+
+ if ($form->{l_subtotal} eq 'Y') {
+ if ($sameitem ne $ca->{$form->{sort}}) {
+ &ca_subtotal;
+ }
+ }
+
+ # construct link to source
+ $href = "<a href=$ca->{module}.pl?path=$form->{path}&action=edit&id=$ca->{id}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$form->{callback}>$ca->{reference}</a>";
+
+
+ $column_data{debit} = "<td align=right>".$form->format_amount(\%myconfig, $ca->{debit}, 2, "&nbsp;")."</td>";
+ $column_data{credit} = "<td align=right>".$form->format_amount(\%myconfig, $ca->{credit}, 2, "&nbsp;")."</td>";
+
+ $form->{balance} += $ca->{amount};
+ $column_data{balance} = "<td align=right>".$form->format_amount(\%myconfig, $form->{balance} * $ml, 2, 0)."</td>";
+
+ $subtotaldebit += $ca->{debit};
+ $subtotalcredit += $ca->{credit};
+
+ $totaldebit += $ca->{debit};
+ $totalcredit += $ca->{credit};
+
+ $column_data{transdate} = qq|<td>$ca->{transdate}</td>|;
+ $column_data{reference} = qq|<td>$href</td>|;
+ $column_data{description} = qq|<td>$ca->{description}&nbsp;</td>|;
+
+ $column_data{cleared} = ($ca->{cleared}) ? qq|<td>*</td>| : qq|<td>&nbsp;</td>|;
+ $column_data{source} = qq|<td>$ca->{source}&nbsp;</td>|;
+
+ $column_data{accno} = qq|<td>|;
+ for (@{ $ca->{accno} }) { $column_data{accno} .= "<a href=$drilldown&accno=$_>$_</a> " }
+ $column_data{accno} .= qq|&nbsp;</td>|;
+
+ if ($ca->{id} != $sameid) {
+ $i++; $i %= 2;
+ }
+ $sameid = $ca->{id};
+
+ print qq|
+ <tr class=listrow$i>
+|;
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ }
+
+
+ if ($form->{l_subtotal} eq 'Y') {
+ &ca_subtotal;
+ }
+
+
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $column_data{debit} = "<th align=right class=listtotal>".$form->format_amount(\%myconfig, $totaldebit, 2, "&nbsp;")."</th>";
+ $column_data{credit} = "<th align=right class=listtotal>".$form->format_amount(\%myconfig, $totalcredit, 2, "&nbsp;")."</th>";
+ $column_data{balance} = "<th align=right class=listtotal>".$form->format_amount(\%myconfig, $form->{balance} * $ml, 2, 0)."</th>";
+
+ print qq|
+ <tr class=listtotal>
+|;
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub ca_subtotal {
+
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $column_data{debit} = "<th align=right class=listsubtotal>".$form->format_amount(\%myconfig, $subtotaldebit, 2, "&nbsp;") . "</th>";
+ $column_data{credit} = "<th align=right class=listsubtotal>".$form->format_amount(\%myconfig, $subtotalcredit, 2, "&nbsp;") . "</th>";
+
+ $subtotaldebit = 0;
+ $subtotalcredit = 0;
+
+ $sameitem = $ca->{$form->{sort}};
+
+ print qq|
+ <tr class=listsubtotal>
+|;
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+}
+
diff --git a/bin/lynx/cp.pl b/bin/lynx/cp.pl
new file mode 100755
index 00000000..e7303904
--- /dev/null
+++ b/bin/lynx/cp.pl
@@ -0,0 +1,1392 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2002
+#
+# Author: DWS Systems Inc.
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+# Contributors:
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#======================================================================
+#
+# Payment module
+#
+#======================================================================
+
+
+use SL::CP;
+use SL::OP;
+use SL::IS;
+use SL::IR;
+
+require "$form->{path}/arap.pl";
+
+1;
+# end of main
+
+
+sub payment {
+
+ if ($form->{type} eq 'receipt') {
+ $form->{ARAP} = "AR";
+ $form->{arap} = "ar";
+ $form->{vc} = "customer";
+ $form->{formname} = "receipt";
+ }
+ if ($form->{type} eq 'check') {
+ $form->{ARAP} = "AP";
+ $form->{arap} = "ap";
+ $form->{vc} = "vendor";
+ $form->{formname} = "check";
+ }
+
+ $form->{payment} = "payment";
+
+ $form->{callback} = "$form->{script}?action=payment&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&all_vc=$form->{all_vc}&type=$form->{type}";
+
+ # setup customer/vendor selection for open invoices
+ if ($form->{all_vc}) {
+ $form->all_vc(\%myconfig, $form->{vc}, $form->{ARAP}, undef, $form->{datepaid});
+ } else {
+ CP->get_openvc(\%myconfig, \%$form);
+ if ($myconfig{vclimit} > 0) {
+ $form->{"all_$form->{vc}"} = $form->{name_list};
+ }
+ }
+
+ $form->{"select$form->{vc}"} = "";
+ if (@{ $form->{"all_$form->{vc}"} }) {
+ $form->{"$form->{vc}_id"} = $form->{"all_$form->{vc}"}->[0]->{id};
+ for (@{ $form->{"all_$form->{vc}"} }) { $form->{"select$form->{vc}"} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+ }
+
+ # departments
+ if (@{ $form->{all_department} }) {
+ $form->{selectdepartment} = "<option>\n";
+ $form->{department} = "$form->{department}--$form->{department_id}" if $form->{department};
+
+ for (@{ $form->{all_department} }) { $form->{selectdepartment} .= qq|<option value="$_->{description}--$_->{id}">$_->{description}\n| }
+ }
+
+ if (@{ $form->{all_language} }) {
+ $form->{selectlanguage} = "<option>\n";
+ for (@{ $form->{all_language} }) { $form->{selectlanguage} .= qq|<option value="$_->{code}">$_->{description}\n| }
+ }
+
+ CP->paymentaccounts(\%myconfig, \%$form);
+
+ $form->{selectaccount} = "";
+ $form->{"select$form->{ARAP}"} = "";
+
+ for (@{ $form->{PR}{"$form->{ARAP}_paid"} }) { $form->{selectaccount} .= "<option>$_->{accno}--$_->{description}\n" }
+ for (@{ $form->{PR}{$form->{ARAP}} }) { $form->{"select$form->{ARAP}"} .= "<option>$_->{accno}--$_->{description}\n" }
+
+ # currencies
+ @curr = split /:/, $form->{currencies};
+ $form->{defaultcurrency} = $curr[0];
+ chomp $form->{defaultcurrency};
+
+ $form->{selectcurrency} = "";
+ for (@curr) { $form->{selectcurrency} .= "<option>$_\n" }
+
+ $form->{currency} = $form->{defaultcurrency};
+ $form->{oldcurrency} = $form->{currency};
+
+ if ($form->{currency} ne $form->{defaultcurrency}) {
+ $form->{forex} = $form->{exchangerate} = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{datepaid}, ($form->{vc} eq 'customer') ? "buy" : "sell");
+ }
+
+ $form->{olddatepaid} = $form->{datepaid};
+
+ $form->{media} = $myconfig{printer};
+ $form->{format} = "pdf" unless $myconfig{printer};
+
+ &payment_header;
+ &payment_footer;
+
+}
+
+
+sub payments {
+
+ if ($form->{type} eq 'receipt') {
+ $form->{ARAP} = "AR";
+ $form->{arap} = "ar";
+ $form->{vc} = "customer";
+ $form->{formname} = "receipt";
+ }
+ if ($form->{type} eq 'check') {
+ $form->{ARAP} = "AP";
+ $form->{arap} = "ap";
+ $form->{vc} = "vendor";
+ $form->{formname} = "check";
+ }
+
+ $form->{payment} = "payments";
+
+ $form->{callback} = "$form->{script}?action=$form->{action}";
+ for (qw(path login sessionid type)) { $form->{callback} .= "&$_=$form->{$_}" }
+
+ CP->paymentaccounts(\%myconfig, \%$form);
+
+ if (@{ $form->{all_language} }) {
+ $form->{selectlanguage} = "<option>\n";
+ for (@{ $form->{all_language} }) { $form->{selectlanguage} .= qq|<option value="$_->{code}">$_->{description}\n| }
+ }
+
+ # departments
+ if (@{ $form->{all_department} }) {
+ $form->{selectdepartment} = "<option>\n";
+ $form->{department} = "$form->{department}--$form->{department_id}" if $form->{department};
+
+ for (@{ $form->{all_department} }) { $form->{selectdepartment} .= qq|<option value="$_->{description}--$_->{id}">$_->{description}\n| }
+ }
+
+ $form->{selectaccount} = "";
+ $form->{"select$form->{ARAP}"} = "";
+
+ for (@{ $form->{PR}{"$form->{ARAP}_paid"} }) { $form->{selectaccount} .= "<option>$_->{accno}--$_->{description}\n" }
+ for (@{ $form->{PR}{$form->{ARAP}} }) { $form->{"select$form->{ARAP}"} .= "<option>$_->{accno}--$_->{description}\n" }
+
+ # currencies
+ @curr = split /:/, $form->{currencies};
+ $form->{defaultcurrency} = $curr[0];
+ chomp $form->{defaultcurrency};
+
+ $form->{selectcurrency} = "";
+ for (@curr) { $form->{selectcurrency} .= "<option>$_\n" }
+
+ $form->{oldcurrency} = $form->{currency} = $form->{defaultcurrency};
+ $form->{oldduedateto} = $form->{datepaid};
+
+ $form->{media} = $myconfig{printer};
+ $form->{format} = "pdf" unless $myconfig{printer};
+
+ &payments_header;
+ &invoices_due;
+ &payments_footer;
+
+}
+
+
+sub payments_header {
+
+ if ($form->{type} eq 'receipt') {
+ $form->{title} = $locale->text('Receipts');
+ }
+ if ($form->{type} eq 'check') {
+ $form->{title} = $locale->text('Payments');
+ }
+
+
+ for ("department") {
+ $form->{"select$_"} = $form->unescape($form->{"select$_"});
+ $form->{"select$_"} =~ s/ selected//;
+ $form->{"select$_"} =~ s/(<option value="\Q$form->{$_}\E")/$1 selected/;
+ }
+
+ for ("account", "currency", "$form->{ARAP}") {
+ $form->{"select$_"} =~ s/ selected//;
+ $form->{"select$_"} =~ s/option>\Q$form->{$_}\E/option selected>$form->{$_}/;
+ }
+
+ if ($form->{defaultcurrency}) {
+ $exchangerate = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Currency').qq|</th>
+ <td><select name=currency>$form->{selectcurrency}</select></td>
+ <input type=hidden name=selectcurrency value="$form->{selectcurrency}">
+ <input type=hidden name=oldcurrency value=$form->{oldcurrency}>
+ </tr>
+|;
+ }
+
+ if ($form->{currency} ne $form->{defaultcurrency}) {
+ $form->{exchangerate} = $form->format_amount(\%myconfig, $form->{exchangerate});
+
+ if ($form->{forex}) {
+ $exchangerate .= qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Exchange Rate').qq|</th>
+ <td colspan=3><input type=hidden name=exchangerate size=10 value=$form->{exchangerate}>$form->{exchangerate}</td>
+ </tr>
+|;
+ } else {
+ $exchangerate .= qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Exchange Rate').qq|</th>
+ <td colspan=3><input name=exchangerate size=10 value=$form->{exchangerate}></td>
+ </tr>
+|;
+ }
+ }
+
+ $department = qq|
+ <tr>
+ <th align="right" nowrap>|.$locale->text('Department').qq|</th>
+ <td><select name=department>$form->{selectdepartment}</select>
+ <input type=hidden name=selectdepartment value="|.$form->escape($form->{selectdepartment},1).qq|">
+ </td>
+ </tr>
+| if $form->{selectdepartment};
+
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+|;
+
+ $form->hide_form(qw(defaultcurrency closedto vc type formname arap ARAP title oldduedatefrom oldduedateto payment olddepartment));
+
+ print qq|
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=right>|.$locale->text('Due Date').qq|&nbsp;|.$locale->text('From').qq|</th>
+ <td><input name=duedatefrom value="$form->{duedatefrom}" title="$myconfig{dateformat}" size=11></td>
+ <th align=right>|.$locale->text('To').qq|</th>
+ <td><input name=duedateto value="$form->{duedateto}" title="$myconfig{dateformat}" size=11></td>
+ </tr>
+ </table>
+ </td>
+ </td>
+ <td align=right>
+ <table>
+ $department
+ <tr>
+ <th align=right nowrap>|.$locale->text($form->{ARAP}).qq|</th>
+ <td colspan=3><select name=$form->{ARAP}>$form->{"select$form->{ARAP}"}</select>
+ </td>
+ <input type=hidden name="select$form->{ARAP}" value="$form->{"select$form->{ARAP}"}">
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Account').qq|</th>
+ <td colspan=3><select name=account>$form->{selectaccount}</select>
+ <input type=hidden name=selectaccount value="$form->{selectaccount}">
+ </td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Date').qq|</th>
+ <td><input name=datepaid value="$form->{datepaid}" title="$myconfig{dateformat}" size=11></td>
+ </tr>
+ $exchangerate
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+|;
+
+}
+
+
+sub invoices_due {
+
+ @column_index = qw(name invnumber transdate amount due checked paid memo source);
+ push @column_index, "language" if $form->{selectlanguage};
+
+ $colspan = $#column_index + 1;
+
+ $invoice = $locale->text('Invoices');
+ $vclabel = ucfirst $form->{vc};
+ $vclabel = $locale->text($vclabel);
+
+ print qq|
+ <input type=hidden name=column_index value="id @column_index">
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+ <th class=listheading colspan=$colspan>$invoice</th>
+ </tr>
+|;
+
+ $column_data{name} = qq|<th nowrap>$vclabel</th>|;
+ $column_data{invnumber} = qq|<th nowrap>|.$locale->text('Invoice')."</th>";
+ $column_data{transdate} = qq|<th nowrap>|.$locale->text('Date')."</th>";
+ $column_data{amount} = qq|<th nowrap>|.$locale->text('Amount')."</th>";
+ $column_data{due} = qq|<th nowrap>|.$locale->text('Amount Due')."</th>";
+ $column_data{paid} = qq|<th nowrap>|.$locale->text('Amount')."</th>";
+ $column_data{checked} = qq|<th nowrap>|.$locale->text('Select')."</th>";
+ $column_data{memo} = qq|<th nowrap>|.$locale->text('Memo')."</th>";
+ $column_data{source} = qq|<th nowrap>|.$locale->text('Source')."</th>";
+ $column_data{language} = qq|<th nowrap>|.$locale->text('Language')."</th>";
+
+ print qq|
+ <tr>
+|;
+ for (@column_index) { print "$column_data{$_}\n" }
+ print qq|
+ </tr>
+|;
+
+ $form->{selectlanguage} = $form->unescape($form->{selectlanguage});
+
+ for $i (1 .. $form->{rowcount}) {
+
+ for (qw(amount due paid)) { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) }
+
+ $totalamount += $form->{"amount_$i"};
+ $totaldue += $form->{"due_$i"};
+ $totalpaid += $form->{"paid_$i"};
+
+ for (qw(amount due paid)) { $form->{"${_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}, 2) }
+
+ $column_data{invnumber} = qq|<td>$form->{"invnumber_$i"}</td>
+ <input type=hidden name="invnumber_$i" value="$form->{"invnumber_$i"}">
+ <input type=hidden name="id_$i" value=$form->{"id_$i"}>|;
+ $column_data{transdate} = qq|<td>$form->{"transdate_$i"}</td>
+ <input type=hidden name="transdate_$i" value=$form->{"transdate_$i"}>|;
+ $column_data{amount} = qq|<td align=right>$form->{"amount_$i"}</td>
+ <input type=hidden name="amount_$i" value=$form->{"amount_$i"}>|;
+ $column_data{due} = qq|<td align=right>$form->{"due_$i"}</td>
+ <input type=hidden name="due_$i" value=$form->{"due_$i"}>|;
+
+ $column_data{paid} = qq|<td align=right><input name="paid_$i" size=10 value=$form->{"paid_$i"}></td>|;
+
+ if ($same_id eq $form->{"$form->{vc}_id_$i"}) {
+ for (qw(name memo source language)) { $column_data{$_} = qq|<td>&nbsp;</td>| }
+ } else {
+ $column_data{name} = qq|<td>$form->{"name_$i"}</td>|;
+ $column_data{memo} = qq|<td align=right><input name="memo_$i" size=10 value="$form->{"memo_$i"}"></td>|;
+ $column_data{source} = qq|<td align=right><input name="source_$i" size=10 value="$form->{"source_$i"}"></td>|;
+
+ if ($form->{selectlanguage}) {
+ $selectlanguage = $form->{selectlanguage};
+ $selectlanguage =~ s/(<option value="\Q$form->{"language_code_$i"}\E")/$1 selected/;
+ $column_data{language} = qq|<td><select name="language_code_$i">$selectlanguage</select></td>|;
+ }
+
+ }
+
+ $column_data{name} .= qq|
+ <input type=hidden name="name_$i" value="$form->{"name_$i"}">
+ <input type=hidden name="$form->{vc}_id_$i" value="$form->{"$form->{vc}_id_$i"}">|;
+
+ $form->{"checked_$i"} = ($form->{"checked_$i"}) ? "checked" : "";
+ $column_data{checked} = qq|<td align=center><input name="checked_$i" type=checkbox class=checkbox $form->{"checked_$i"}></td>|;
+
+ $j++; $j %= 2;
+ print qq|
+ <tr class=listrow$j>
+|;
+ for (@column_index) { print "$column_data{$_}\n" }
+ print qq|
+ </tr>
+|;
+
+ $same_id = $form->{"$form->{vc}_id_$i"};
+
+ }
+
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $column_data{amount} = qq|<th class=listtotal align=right>|.$form->format_amount(\%myconfig, $totalamount, 2, "&nbsp;").qq|</th>|;
+ $column_data{due} = qq|<th class=listtotal align=right>|.$form->format_amount(\%myconfig, $totaldue, 2, "&nbsp;").qq|</th>|;
+ $column_data{paid} = qq|<th class=listtotal align=right>|.$form->format_amount(\%myconfig, $totalpaid, 2, "&nbsp;").qq|</th>|;
+
+ print qq|
+ <tr class=listtotal>
+|;
+ for (@column_index) { print "$column_data{$_}\n" }
+ print qq|
+ </tr>
+ </table>
+ </td>
+ </tr>
+<input type=hidden name=selectlanguage value="|.$form->escape($form->{selectlanguage},1).qq|">
+|;
+
+}
+
+
+sub payments_footer {
+
+ $form->{DF}{$form->{format}} = "selected";
+
+ $transdate = $form->datetonum(\%myconfig, $form->{datepaid});
+ $closedto = $form->datetonum(\%myconfig, $form->{closedto});
+
+ if ($latex) {
+
+ $media = qq|<select name=media>
+ <option value=screen>|.$locale->text('Screen');
+
+ if (%printer) {
+ for (sort keys %printer) { $media .= qq|
+ <option value="$_">$_| }
+ }
+
+ $media .= qq|</select>|;
+ $format = qq|<select name=format>
+ <option value=postscript $form->{DF}{postscript}>|.$locale->text('Postscript').qq|
+ <option value=pdf $form->{DF}{pdf}>|.$locale->text('PDF').qq|</select>|;
+ }
+
+ print qq|
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+# type=submit $locale->text('Update')
+# type=submit $locale->text('Post')
+# type=submit $locale->text('Print')
+# type=submit $locale->text('Select all')
+
+ %button = ('Update' => { ndx => 1, key => 'U', value => $locale->text('Update') },
+ 'Select all' => { ndx => 2, key => 'A', value => $locale->text('Select all') },
+ 'Print' => { ndx => 3, key => 'P', value => $locale->text('Print') },
+ 'Post' => { ndx => 4, key => 'O', value => $locale->text('Post') },
+ );
+
+ if (! $latex) {
+ delete $button{'Print'};
+ }
+
+ if ($transdate <= $closedto) {
+ for ('Post', 'Print') { delete $button{$_} }
+ $media = $format = "";
+ }
+
+ for (sort { $button{$a}->{ndx} <=> $button{$b}->{ndx} } keys %button) { $form->print_button(\%button, $_) }
+
+ $media =~ s/(<option value="\Q$form->{media}\E")/$1 selected/;
+
+ print qq|
+ $format
+ $media
+|;
+
+ $form->hide_form(qw(callback rowcount path login sessionid));
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub select_all {
+
+ for (1 .. $form->{rowcount}) { $form->{"checked_$_"} = 1 }
+ &{"update_$form->{payment}"}
+
+}
+
+
+sub update {
+ my ($new_name_selected) = @_;
+
+ &{"update_$form->{payment}"};
+
+}
+
+
+sub update_payments {
+
+ if ($form->{ARAP} eq 'AR') {
+ $buysell = "buy";
+ } else {
+ $buysell = "sell";
+ }
+
+ if (($form->{oldduedatefrom} ne $form->{duedatefrom}) || ($form->{oldduedateto} ne $form->{duedateto}) || ($form->{department} ne $form->{olddepartment})) {
+ CP->get_openinvoices(\%myconfig, \%$form);
+ $form->{redo} = 1;
+ }
+
+ if ($form->{currency} ne $form->{oldcurrency}) {
+ $form->{oldcurrency} = $form->{currency};
+ if (!$form->{redo}) {
+ CP->get_openinvoices(\%myconfig, \%$form);
+ $form->{redo} = 1;
+ }
+ }
+
+ for (qw(duedatefrom duedateto department)) { $form->{"old$_"} = $form->{$_} }
+
+ $form->{exchangerate} = $exchangerate if ($form->{forex} = ($exchangerate = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{datepaid}, $buysell)));
+
+ if ($form->{redo}) {
+ $form->{rowcount} = 0;
+
+ $i = 0;
+ foreach $ref (@{ $form->{PR} }) {
+ $i++;
+ for (qw(id name invnumber transdate)) { $form->{"${_}_$i"} = $ref->{$_} }
+ $form->{"$form->{vc}_id_$i"} = $ref->{"$form->{vc}_id"};
+ $ref->{exchangerate} = 1 unless $ref->{exchangerate};
+ $form->{"amount_$i"} = $ref->{amount} / $ref->{exchangerate};
+ $form->{"due_$i"} = ($ref->{amount} - $ref->{paid}) / $ref->{exchangerate};
+ $form->{"checked_$i"} = "";
+ $form->{"paid_$i"} = "";
+
+ # need to format
+ for (qw(amount due)) { $form->{"${_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}, 2) }
+ }
+
+ $form->{rowcount} = $i;
+ }
+
+ $form->{amount} = $form->parse_amount(\%myconfig, $form->{amount});
+
+ # recalculate
+ $amount = 0;
+ for $i (1 .. $form->{rowcount}) {
+
+ for (qw(amount due paid)) { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) }
+
+ if ($form->{"checked_$i"}) {
+ # calculate paid_$i
+ if (!$form->{"paid_$i"}) {
+ $form->{"paid_$i"} = $form->{"due_$i"};
+ }
+
+ $amount += $form->{"paid_$i"};
+ $form->{redo} = 1;
+ } else {
+ $form->{"paid_$i"} = "";
+ }
+
+ for (qw(amount due paid)) { $form->{"${_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}, 2) }
+ }
+
+ $form->{amount} += ($amount - $form->{oldamount}) if $form->{redo};
+
+ &payments_header;
+ &invoices_due;
+ &payments_footer;
+
+}
+
+
+sub update_payment {
+
+ if ($form->{vc} eq 'customer') {
+ $buysell = "buy";
+ } else {
+ $buysell = "sell";
+ }
+
+ $department = $form->{department};
+
+ # get customer/vendor
+ &check_openvc;
+ $form->{department} = $department;
+
+ if ($form->{datepaid} ne $form->{olddatepaid}) {
+ $form->{olddatepaid} = $form->{datepaid};
+ $form->{oldall_vc} = !$form->{oldall_vc} if $form->{all_vc};
+ }
+
+ if ($form->{department} ne $form->{olddepartment}) {
+ $form->{olddepartment} = $form->{department};
+ $form->{redo} = 1;
+ }
+
+ # if we switched to all_vc
+ if ($form->{all_vc} ne $form->{oldall_vc}) {
+
+ if ($form->{"select$form->{vc}"}) {
+ $form->{redo} = ($form->{"old$name"} ne $form->{$name});
+ } else {
+ $form->{redo} = ($form->{"old$name"} ne qq|$form->{$name}--$form->{"${name}_id"}|);
+ }
+
+ $form->{"select$form->{vc}"} = "";
+
+ if ($form->{all_vc}) {
+ $form->all_vc(\%myconfig, $form->{vc}, $form->{ARAP}, undef, $form->{datepaid});
+
+ if (@{ $form->{"all_$form->{vc}"} }) {
+ for (@{ $form->{"all_$form->{vc}"} }) { $form->{"select$form->{vc}"} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+ }
+
+ } else {
+ if (($myconfig{vclimit} * 1) > 0) {
+ $form->{$form->{vc}} = "";
+ }
+
+ CP->get_openvc(\%myconfig, \%$form);
+
+ if (($myconfig{vclimit} * 1) > 0) {
+ $form->{"all_$form->{vc}"} = $form->{name_list};
+ }
+
+ if (@{ $form->{"all_$form->{vc}"} }) {
+ $newvc = qq|$form->{"all_$form->{vc}"}[0]->{name}--$form->{"all_$form->{vc}"}[0]->{id}|;
+ for (@{ $form->{"all_$form->{vc}"} }) { $form->{"select$form->{vc}"} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+
+
+ # if the name is not the same
+ if ($form->{"select$form->{vc}"} !~ /$form->{$form->{vc}}/) {
+ $form->{$form->{vc}} = $newvc;
+ &check_openvc;
+ }
+ }
+ }
+
+ if (@{ $form->{all_language} }) {
+ $form->{selectlanguage} = "<option>\n";
+ for (@{ $form->{all_language} }) { $form->{selectlanguage} .= qq|<option value="$_->{code}">$_->{description}\n| }
+ }
+
+ }
+
+ if ($new_name_selected || $form->{redo}) {
+ CP->get_openinvoices(\%myconfig, \%$form);
+ ($newvc) = split /--/, $form->{$form->{vc}};
+ $form->{"old$form->{vc}"} = qq|$newvc--$form->{"$form->{vc}_id"}|;;
+ $form->{redo} = 1;
+ }
+
+ if ($form->{currency} ne $form->{oldcurrency}) {
+ $form->{oldcurrency} = $form->{currency};
+ if (!$form->{redo}) {
+ CP->get_openinvoices(\%myconfig, \%$form);
+ $form->{redo} = 1;
+ }
+ }
+
+
+ $form->{exchangerate} = $exchangerate if ($form->{forex} = ($exchangerate = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{datepaid}, $buysell)));
+
+ if ($form->{redo}) {
+ $form->{rowcount} = 0;
+
+ $i = 0;
+ foreach $ref (@{ $form->{PR} }) {
+ $i++;
+ $form->{"id_$i"} = $ref->{id};
+ $form->{"invnumber_$i"} = $ref->{invnumber};
+ $form->{"transdate_$i"} = $ref->{transdate};
+ $ref->{exchangerate} = 1 unless $ref->{exchangerate};
+ $form->{"amount_$i"} = $ref->{amount} / $ref->{exchangerate};
+ $form->{"due_$i"} = ($ref->{amount} - $ref->{paid}) / $ref->{exchangerate};
+ $form->{"checked_$i"} = "";
+ $form->{"paid_$i"} = "";
+
+ # need to format
+ for (qw(amount due)) { $form->{"${_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}, 2) }
+ }
+ $form->{rowcount} = $i;
+ }
+
+ $form->{amount} = $form->parse_amount(\%myconfig, $form->{amount});
+
+ # recalculate
+ $amount = 0;
+ for $i (1 .. $form->{rowcount}) {
+
+ for (qw(amount due paid)) { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) }
+
+ if ($form->{"checked_$i"}) {
+ # calculate paid_$i
+ if (!$form->{"paid_$i"}) {
+ $form->{"paid_$i"} = $form->{"due_$i"};
+ }
+
+ $amount += $form->{"paid_$i"};
+ $form->{redo} = 1;
+ } else {
+ $form->{"paid_$i"} = "";
+ }
+
+ for (qw(amount due paid)) { $form->{"${_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}, 2) }
+ }
+
+ $form->{amount} += ($amount - $form->{oldamount}) if $form->{redo};
+
+ &payment_header;
+ &list_invoices;
+ &payment_footer;
+
+}
+
+
+
+
+sub payment_header {
+
+ $vclabel = ucfirst $form->{vc};
+ $vclabel = $locale->text($vclabel);
+
+ if ($form->{type} eq 'receipt') {
+ $form->{title} = $locale->text('Receipt');
+ }
+ if ($form->{type} eq 'check') {
+ $form->{title} = $locale->text('Payment');
+ }
+
+
+# $locale->text('Customer')
+# $locale->text('Vendor')
+
+ if ($form->{$form->{vc}} eq "") {
+ for (qw(address1 address2 city zipcode state country)) { $form->{$_} = "" }
+ }
+
+ for ("$form->{vc}", "department") {
+ $form->{"select$_"} = $form->unescape($form->{"select$_"});
+ $form->{"select$_"} =~ s/ selected//;
+ $form->{"select$_"} =~ s/(<option value="\Q$form->{$_}\E")/$1 selected/;
+ }
+
+ for ("account", "currency", "$form->{ARAP}") {
+ $form->{"select$_"} =~ s/ selected//;
+ $form->{"select$_"} =~ s/option>\Q$form->{$_}\E/option selected>$form->{$_}/;
+ }
+
+ if ($form->{defaultcurrency}) {
+ $exchangerate = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Currency').qq|</th>
+ <td><select name=currency>$form->{selectcurrency}</select></td>
+ <input type=hidden name=selectcurrency value="$form->{selectcurrency}">
+ <input type=hidden name=oldcurrency value=$form->{oldcurrency}>
+ </tr>
+|;
+ }
+
+ if ($form->{currency} ne $form->{defaultcurrency}) {
+ $form->{exchangerate} = $form->format_amount(\%myconfig, $form->{exchangerate});
+
+ if ($form->{forex}) {
+ $exchangerate .= qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Exchange Rate').qq|</th>
+ <td colspan=3><input type=hidden name=exchangerate size=10 value=$form->{exchangerate}>$form->{exchangerate}</td>
+ </tr>
+|;
+ } else {
+ $exchangerate .= qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Exchange Rate').qq|</th>
+ <td colspan=3><input name=exchangerate size=10 value=$form->{exchangerate}></td>
+ </tr>
+|;
+ }
+ }
+
+ $vc = ($form->{"select$form->{vc}"}) ? qq|<select name=$form->{vc}>$form->{"select$form->{vc}"}\n</select>| : qq|<input name=$form->{vc} size=35 value="$form->{$form->{vc}}">|;
+
+ if ($form->{all_vc}) {
+ $allvc = "checked";
+ } else {
+ $allvc = "";
+ }
+
+# $locale->text('AR')
+# $locale->text('AP')
+
+ $department = qq|
+ <tr>
+ <th align="right" nowrap>|.$locale->text('Department').qq|</th>
+ <td><select name=department>$form->{selectdepartment}</select>
+ <input type=hidden name=selectdepartment value="|.$form->escape($form->{selectdepartment},1).qq|">
+ </td>
+ </tr>
+| if $form->{selectdepartment};
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+|;
+
+ $form->hide_form(qw(defaultcurrency closedto vc type ARAP arap title formname payment olddepartment));
+
+ print qq|
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <td align=right>
+ <input name=all_vc type=checkbox class=checkbox value=Y $allvc>
+ <input type=hidden name="oldall_vc" value="$form->{all_vc}"></td>
+ <th align=left>|.$locale->text('All').qq|</th>
+ </tr>
+ <tr>
+ <th align=right>$vclabel</th>
+ <td>$vc</td>
+ <input type=hidden name="select$form->{vc}" value="|.$form->escape($form->{"select$form->{vc}"},1).qq|">
+ <input type=hidden name="$form->{vc}_id" value=$form->{"$form->{vc}_id"}>
+ <input type=hidden name="old$form->{vc}" value="$form->{"old$form->{vc}"}">
+ </tr>
+ <tr valign=top>
+ <th align=right nowrap>|.$locale->text('Address').qq|</th>
+ <td colspan=2>
+ <table>
+ <tr>
+ <td>$form->{address1}</td>
+ </tr>
+ <tr>
+ <td>$form->{address2}</td>
+ </tr>
+ <td>$form->{city}</td>
+ </tr>
+ </tr>
+ <td>$form->{state}</td>
+ </tr>
+ </tr>
+ <td>$form->{zipcode}</td>
+ </tr>
+ <tr>
+ <td>$form->{country}</td>
+ </tr>
+ </table>
+ </td>
+ <input type=hidden name=address1 value="$form->{address1}">
+ <input type=hidden name=address2 value="$form->{address2}">
+ <input type=hidden name=city value="$form->{city}">
+ <input type=hidden name=state value="$form->{state}">
+ <input type=hidden name=zipcode value="$form->{zipcode}">
+ <input type=hidden name=country value="$form->{country}">
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Memo').qq|</th>
+ <td colspan=2><input name="memo" size=30 value="$form->{memo}"></td>
+ </tr>
+ </table>
+ </td>
+ <td align=right>
+ <table>
+ $department
+ <tr>
+ <th align=right nowrap>|.$locale->text($form->{ARAP}).qq|</th>
+ <td colspan=3><select name=$form->{ARAP}>$form->{"select$form->{ARAP}"}</select>
+ </td>
+ <input type=hidden name="select$form->{ARAP}" value="$form->{"select$form->{ARAP}"}">
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Account').qq|</th>
+ <td colspan=3><select name=account>$form->{selectaccount}</select>
+ <input type=hidden name=selectaccount value="$form->{selectaccount}">
+ </td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Date').qq|</th>
+ <td><input name=datepaid value="$form->{datepaid}" title="$myconfig{dateformat}" size=11></td>
+ <input type=hidden name=olddatepaid value=$form->{olddatepaid}>
+ </tr>
+ $exchangerate
+ <tr>
+ <th align=right nowrap>|.$locale->text('Source').qq|</th>
+ <td colspan=3><input name=source value="$form->{source}" size=10></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Amount').qq|</th>
+ <td colspan=3><input name=amount size=10 value=|.$form->format_amount(\%myconfig, $form->{amount}, 2).qq|></td>
+ <input type=hidden name=oldamount value=$form->{amount}>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+|;
+
+}
+
+
+sub list_invoices {
+
+ @column_index = qw(invnumber transdate amount due checked paid);
+
+ $colspan = $#column_index + 1;
+
+ $invoice = $locale->text('Invoices');
+
+ print qq|
+ <input type=hidden name=column_index value="id @column_index">
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+ <th class=listheading colspan=$colspan>$invoice</th>
+ </tr>
+|;
+
+ $column_data{invnumber} = qq|<th nowrap>|.$locale->text('Invoice')."</th>";
+ $column_data{transdate} = qq|<th nowrap>|.$locale->text('Date')."</th>";
+ $column_data{amount} = qq|<th nowrap>|.$locale->text('Amount')."</th>";
+ $column_data{due} = qq|<th nowrap>|.$locale->text('Amount Due')."</th>";
+ $column_data{paid} = qq|<th nowrap>|.$locale->text('Amount')."</th>";
+ $column_data{checked} = qq|<th nowrap>|.$locale->text('Select')."</th>";
+
+ print qq|
+ <tr>
+|;
+ for (@column_index) { print "$column_data{$_}\n" }
+ print qq|
+ </tr>
+|;
+
+ for $i (1 .. $form->{rowcount}) {
+
+ for (qw(amount due paid)) { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) }
+
+ $totalamount += $form->{"amount_$i"};
+ $totaldue += $form->{"due_$i"};
+ $totalpaid += $form->{"paid_$i"};
+
+ for (qw(amount due paid)) { $form->{"${_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}, 2) }
+
+ $column_data{invnumber} = qq|<td>$form->{"invnumber_$i"}</td>
+ <input type=hidden name="invnumber_$i" value="$form->{"invnumber_$i"}">
+ <input type=hidden name="id_$i" value=$form->{"id_$i"}>|;
+ $column_data{transdate} = qq|<td width=15%>$form->{"transdate_$i"}</td>
+ <input type=hidden name="transdate_$i" value=$form->{"transdate_$i"}>|;
+ $column_data{amount} = qq|<td align=right width=15%>$form->{"amount_$i"}</td>
+ <input type=hidden name="amount_$i" value=$form->{"amount_$i"}>|;
+ $column_data{due} = qq|<td align=right width=15%>$form->{"due_$i"}</td>
+ <input type=hidden name="due_$i" value=$form->{"due_$i"}>|;
+
+ $column_data{paid} = qq|<td align=right width=15%><input name="paid_$i" size=10 value=$form->{"paid_$i"}></td>|;
+
+ $form->{"checked_$i"} = ($form->{"checked_$i"}) ? "checked" : "";
+ $column_data{checked} = qq|<td align=center width=10%><input name="checked_$i" type=checkbox class=checkbox $form->{"checked_$i"}></td>|;
+
+ $j++; $j %= 2;
+ print qq|
+ <tr class=listrow$j>
+|;
+ for (@column_index) { print "$column_data{$_}\n" }
+ print qq|
+ </tr>
+|;
+ }
+
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $column_data{amount} = qq|<th class=listtotal align=right>|.$form->format_amount(\%myconfig, $totalamount, 2, "&nbsp;").qq|</th>|;
+ $column_data{due} = qq|<th class=listtotal align=right>|.$form->format_amount(\%myconfig, $totaldue, 2, "&nbsp;").qq|</th>|;
+ $column_data{paid} = qq|<th class=listtotal align=right>|.$form->format_amount(\%myconfig, $totalpaid, 2, "&nbsp;").qq|</th>|;
+
+ print qq|
+ <tr class=listtotal>
+|;
+ for (@column_index) { print "$column_data{$_}\n" }
+ print qq|
+ </tr>
+ </table>
+ </td>
+ </tr>
+|;
+
+}
+
+
+sub payment_footer {
+
+ $form->{DF}{$form->{format}} = "selected";
+
+ $transdate = $form->datetonum(\%myconfig, $form->{datepaid});
+ $closedto = $form->datetonum(\%myconfig, $form->{closedto});
+
+ if ($latex) {
+ if ($form->{selectlanguage}) {
+ $form->{"selectlanguage"} = $form->unescape($form->{"selectlanguage"});
+ $form->{"selectlanguage"} =~ s/ selected//;
+ $form->{"selectlanguage"} =~ s/(<option value="\Q$form->{language_code}\E")/$1 selected/;
+ $lang = qq|<select name=language_code>$form->{selectlanguage}</select>
+ <input type=hidden name=selectlanguage value="|.
+ $form->escape($form->{selectlanguage},1).qq|">|;
+ }
+
+ $media = qq|<select name=media>
+ <option value=screen>|.$locale->text('Screen');
+
+ if (%printer) {
+ for (sort keys %printer) { $media .= qq|
+ <option value="$_">$_| }
+ }
+
+ $media .= qq|</select>|;
+ $format = qq|<select name=format>
+ <option value=postscript $form->{DF}{postscript}>|.$locale->text('Postscript').qq|
+ <option value=pdf $form->{DF}{pdf}>|.$locale->text('PDF').qq|</select>|;
+ }
+
+ print qq|
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+ %button = ('Update' => { ndx => 1, key => 'U', value => $locale->text('Update') },
+ 'Select all' => { ndx => 2, key => 'A', value => $locale->text('Select all') },
+ 'Print' => { ndx => 3, key => 'P', value => $locale->text('Print') },
+ 'Post' => { ndx => 4, key => 'O', value => $locale->text('Post') },
+ );
+
+ if (! $latex) {
+ delete $button{'Print'};
+ }
+
+ if ($transdate <= $closedto) {
+ for ('Post', 'Print') { delete $button{$_} }
+ $media = $format = "";
+ }
+
+ for (sort { $button{$a}->{ndx} <=> $button{$b}->{ndx} } keys %button) { $form->print_button(\%button, $_) }
+
+ $media =~ s/(<option value="\Q$form->{media}\E")/$1 selected/;
+
+ print qq|
+ $lang
+ $format
+ $media
+|;
+
+ $form->hide_form(qw(callback rowcount path login sessionid));
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub post { &{"post_$form->{payment}"} }
+
+
+sub post_payments {
+
+ if ($form->{currency} ne $form->{defaultcurrency}) {
+ $form->error($locale->text('Exchange rate missing!')) unless $form->{exchangerate};
+ }
+
+ if (CP->post_payments(\%myconfig, \%$form)) {
+ $form->redirect($locale->text('Payments posted!'));
+ } else {
+ $form->error($locale->text('Posting failed!'));
+ }
+
+}
+
+
+sub post_payment {
+
+ &check_form;
+
+ if ($form->{currency} ne $form->{defaultcurrency}) {
+ $form->error($locale->text('Exchange rate missing!')) unless $form->{exchangerate};
+ }
+
+ $msg1 = "$form->{title} posted!";
+ $msg2 = "Cannot post $form->{title}!";
+
+# $locale->text('Payment posted!')
+# $locale->text('Receipt posted!')
+# $locale->text('Cannot post Payment!')
+# $locale->text('Cannot post Receipt!')
+
+
+ $form->{amount} = $form->format_amount(\%myconfig, $form->{amount}, 2);
+
+ $source = $form->{source};
+ $source =~ s/(\d+)/$1 + 1/e;
+
+ if ($form->{callback}) {
+ $form->{callback} .= "&source=$source";
+ }
+
+ if (CP->post_payment(\%myconfig, \%$form)) {
+ $form->redirect($locale->text($msg1));
+ } else {
+ $form->error($locale->text($msg2));
+ }
+
+}
+
+
+sub print {
+
+ &{ "print_$form->{payment}" };
+ &update if $form->{media} ne 'screen';
+
+}
+
+
+sub print_payments {
+
+ $form->error($locale->text('Select postscript or PDF!')) if ($form->{format} !~ /(postscript|pdf)/);
+
+ $SIG{INT} = 'IGNORE';
+
+ for (qw(company address)) { $form->{$_} = $myconfig{$_} }
+ $form->{address} =~ s/\\n/\n/g;
+
+ %oldform = ();
+ for (keys %$form) { $oldform{$_} = $form->{$_} };
+
+ @a = qw(name company address text_amount text_decimal address1 address2 city state zipcode country memo);
+ for (@a) { $temp{$_} = $form->{$_} }
+
+ $form->format_string(@a);
+
+ $ok = 0;
+ $j = 0;
+ $temp{rowcount} = $form->{rowcount};
+
+ for $i (1 .. $temp{rowcount}) {
+
+ if ($form->{"$form->{vc}_id_$i"} ne $form->{"$form->{vc}_id"}) {
+
+ $form->{rowcount} = $j;
+ for (1 .. $j) { $form->{"id_$_"} = $temp{"id_$_"} }
+ &print_form if $ok;
+
+ $ok = 0;
+ $j = 0;
+ $form->{amount} = 0;
+ for (qw(invnumber invdate due paid)) { @{ $form->{$_} } = () }
+ for (qw(language_code source memo)) { $form->{$_} = $form->{"${_}_$i"} }
+
+ }
+
+ if ($form->{"checked_$i"}) {
+ $j++;
+ $ok = 1;
+ $temp{"id_$j"} = $form->{"id_$i"};
+ $form->{"invdate_$i"} = $form->{"transdate_$i"};
+ for (qw(invnumber invdate due paid)) { push @{ $form->{$_} }, $form->{"${_}_$i"} }
+ $form->{amount} += $form->parse_amount(\%myconfig, $form->{"paid_$i"});
+ $form->{"$form->{vc}_id"} = $form->{"$form->{vc}_id_$i"};
+ }
+
+ }
+
+ $form->{rowcount} = $j;
+ for (1 .. $j) { $form->{"id_$_"} = $temp{"id_$_"} }
+
+ &print_form if $ok;
+
+ for (keys %oldform) { $form->{$_} = $oldform{$_} }
+
+}
+
+
+sub print_form {
+
+ $c = CP->new(($form->{language_code}) ? $form->{language_code} : $myconfig{countrycode});
+ $c->init;
+
+ ($whole, $form->{decimal}) = split /\./, $form->{amount};
+ $form->{amount} = $form->format_amount(\%myconfig, $form->{amount}, 2);
+ $form->{decimal} .= "00";
+ $form->{decimal} = substr($form->{decimal}, 0, 2);
+ $form->{text_decimal} = $c->num2text($form->{decimal} * 1);
+ $form->{text_amount} = $c->num2text($whole);
+ $form->{integer_amount} = $form->format_amount($myconfig, $whole);
+
+ $datepaid = $form->datetonum(\%myconfig, $form->{datepaid});
+ ($form->{yyyy}, $form->{mm}, $form->{dd}) = $datepaid =~ /(....)(..)(..)/;
+
+ &{ "$form->{vc}_details" };
+
+ $form->{templates} = "$myconfig{templates}";
+ $form->{IN} = "$form->{formname}.tex";
+
+ if ($form->{media} ne 'screen') {
+ $form->{OUT} = "| $printer{$form->{media}}";
+ }
+
+ $form->parse_template(\%myconfig, $userspath);
+
+}
+
+
+sub print_payment {
+
+ &check_form;
+
+ for (qw(company address)) { $form->{$_} = $myconfig{$_} }
+ $form->{address} =~ s/\\n/\n/g;
+
+ @a = qw(name company address text_amount text_decimal address1 address2 city state zipcode country memo);
+
+ %temp = ();
+ for (@a) { $temp{$_} = $form->{$_} }
+
+ $form->format_string(@a);
+
+ &print_form;
+
+ for (keys %temp) { $form->{$_} = $temp{$_} }
+
+}
+
+
+sub customer_details { IS->customer_details(\%myconfig, \%$form) };
+sub vendor_details { IR->vendor_details(\%myconfig, \%$form) };
+
+
+sub check_form {
+
+ &check_openvc;
+
+ if ($form->{currency} ne $form->{oldcurrency}) {
+ &update;
+ exit;
+ }
+
+ $form->error($locale->text('Date missing!')) unless $form->{datepaid};
+
+ $closedto = $form->datetonum(\%myconfig, $form->{closedto});
+ $datepaid = $form->datetonum(\%myconfig, $form->{datepaid});
+
+ $form->error($locale->text('Cannot post payment for a closed period!')) if ($datepaid <= $closedto);
+
+ # this is just to format the year
+ $form->{datepaid} = $locale->date(\%myconfig, $form->{datepaid});
+
+ $amount = $form->parse_amount(\%myconfig, $form->{amount});
+ $form->{amount} = $amount;
+
+ for $i (1 .. $form->{rowcount}) {
+ if ($form->{"paid_$i"}) {
+ $amount -= $form->parse_amount(\%myconfig, $form->{"paid_$i"});
+
+ push(@{ $form->{paid} }, $form->{"paid_$i"});
+ push(@{ $form->{due} }, $form->{"due_$i"});
+ push(@{ $form->{invnumber} }, $form->{"invnumber_$i"});
+ push(@{ $form->{invdate} }, $form->{"transdate_$i"});
+ }
+ }
+
+ if ($form->round_amount($amount, 2) != 0) {
+ push(@{ $form->{paid} }, $form->format_amount(\%myconfig, $amount, 2));
+ push(@{ $form->{due} }, $form->format_amount(\%myconfig, 0, "0"));
+ push(@{ $form->{invnumber} }, ($form->{ARAP} eq 'AR') ? $locale->text('Deposit') : $locale->text('Prepayment'));
+ push(@{ $form->{invdate} }, $form->{datepaid});
+ }
+
+}
+
+
+sub check_openvc {
+
+ $name = $form->{vc};
+ ($new_name, $new_id) = split /--/, $form->{$name};
+
+ if ($form->{all_vc}) {
+ if ($form->{"select$name"}) {
+ $ok = ($form->{"old$name"} ne $form->{$name});
+ } else {
+ $ok = ($form->{"old$name"} ne qq|$form->{$name}--$form->{"${name}_id"}|);
+ }
+
+ if ($ok) {
+ $form->{redo} = 1;
+ if ($form->{"select$name"}) {
+ $form->{"${name}_id"} = $new_id;
+ AA->get_name(\%myconfig, \%$form);
+ $form->{$name} = $form->{"old$name"} = "$new_name--$new_id";
+ } else {
+ &check_name($form->{vc});
+ }
+ }
+
+ } else {
+
+ # if we use a selection
+ if ($form->{"select$name"}) {
+ if ($form->{"old$name"} ne $form->{$name}) {
+
+ $form->{"${name}_id"} = $new_id;
+ AA->get_name(\%myconfig, \%$form);
+
+ $form->{$name} = $form->{"old$name"} = "$new_name--$new_id";
+ $form->{redo} = 1;
+ }
+ } else {
+
+ # check name, combine name and id
+ if ($form->{"old$name"} ne qq|$form->{$name}--$form->{"${name}_id"}|) {
+
+ # return one name or a list of names in $form->{name_list}
+ if (($rv = CP->get_openvc(\%myconfig, \%$form)) > 1) {
+ $form->{redo} = 1;
+ &select_name($name);
+ exit;
+ }
+
+ if ($rv == 1) {
+ # we got one name
+ $form->{"${name}_id"} = $form->{name_list}[0]->{id};
+ $form->{$name} = $form->{name_list}[0]->{name};
+ $form->{"old$name"} = qq|$form->{$name}--$form->{"${name}_id"}|;
+
+ AA->get_name(\%myconfig, \%$form);
+
+ } else {
+ # nothing open
+ $form->error($locale->text('Nothing open!'));
+ }
+
+ $form->{redo} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/bin/lynx/ct.pl b/bin/lynx/ct.pl
new file mode 100755
index 00000000..300fda0a
--- /dev/null
+++ b/bin/lynx/ct.pl
@@ -0,0 +1,2478 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2001
+#
+# Author: DWS Systems Inc.
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+# Contributors: Reed White <alta@alta-research.com>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#======================================================================
+#
+# customer/vendor module
+#
+#======================================================================
+
+use SL::CT;
+
+1;
+# end of main
+
+
+
+sub add {
+
+ $form->{title} = "Add";
+# $locale->text('Add Customer')
+# $locale->text('Add Vendor')
+
+ $form->{callback} = "$form->{script}?action=add&db=$form->{db}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}" unless $form->{callback};
+
+ CT->create_links(\%myconfig, \%$form);
+
+ &form_header;
+ &form_footer;
+
+}
+
+
+sub history {
+
+# $locale->text('Customer History')
+# $locale->text('Vendor History')
+
+ $history = 1;
+ $label = ucfirst $form->{db};
+ $label .= " History";
+
+ if ($form->{db} eq 'customer') {
+ $invlabel = $locale->text('Sales Invoices');
+ $ordlabel = $locale->text('Sales Orders');
+ $quolabel = $locale->text('Quotations');
+ } else {
+ $invlabel = $locale->text('Vendor Invoices');
+ $ordlabel = $locale->text('Purchase Orders');
+ $quolabel = $locale->text('Request for Quotations');
+ }
+
+ $form->{title} = $locale->text($label);
+
+ $form->{nextsub} = "list_history";
+
+ $transactions = qq|
+ <tr>
+ <td></td>
+ <td>
+ <table>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <td><input name=type type=radio class=radio value=invoice checked> $invlabel</td>
+ </tr>
+ <tr>
+ <td><input name=type type=radio class=radio value=order> $ordlabel</td>
+ </tr>
+ <tr>
+ <td><input name="type" type=radio class=radio value=quotation> $quolabel</td>
+ </tr>
+ </table>
+ </td>
+ <td>
+ <table>
+ <tr>
+ <th>|.$locale->text('From').qq|</th>
+ <td><input name=transdatefrom size=11 title="$myconfig{dateformat}"></td>
+ <th>|.$locale->text('To').qq|</th>
+ <td><input name=transdateto size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan=3>
+ <input name="open" type=checkbox class=checkbox value=Y checked>&nbsp;|.$locale->text('Open').qq|
+ <input name="closed" type=checkbox class=checkbox value=Y checked>&nbsp;|.$locale->text('Closed').qq|
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+|;
+
+ $include = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Include in Report').qq|</th>
+ <td>
+ <table>
+ <tr>
+ <td><input name=history type=radio class=radio value=summary checked> |.$locale->text('Summary').qq|</td>
+ <td><input name=history type=radio class=radio value=detail> |.$locale->text('Detail').qq|
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <input name="l_partnumber" type=checkbox class=checkbox value=Y checked>&nbsp;|.$locale->text('Part Number').qq|
+ </td>
+ <td>
+ <input name="l_description" type=checkbox class=checkbox value=Y checked>&nbsp;|.$locale->text('Description').qq|
+ </td>
+ <td>
+ <input name="l_sellprice" type=checkbox class=checkbox value=Y checked>&nbsp;|.$locale->text('Sell Price').qq|
+ </td>
+ <td>
+ <input name="l_curr" type=checkbox class=checkbox value=Y>&nbsp;|.$locale->text('Currency').qq|
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <input name="l_qty" type=checkbox class=checkbox value=Y>&nbsp;|.$locale->text('Qty').qq|
+ </td>
+ <td>
+ <input name="l_unit" type=checkbox class=checkbox value=Y>&nbsp;|.$locale->text('Unit').qq|
+ </td>
+ <td>
+ <input name="l_discount" type=checkbox class=checkbox value=Y>&nbsp;|.$locale->text('Discount').qq|
+ </td>
+ <tr>
+ </tr>
+ <td>
+ <input name="l_deliverydate" type=checkbox class=checkbox value=Y>&nbsp;|.$locale->text('Delivery Date').qq|
+ </td>
+ <td>
+ <input name="l_projectnumber" type=checkbox class=checkbox value=Y>&nbsp;|.$locale->text('Project Number').qq|
+ </td>
+ <td>
+ <input name="l_serialnumber" type=checkbox class=checkbox value=Y>&nbsp;|.$locale->text('Serial Number').qq|
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+|;
+
+ &search_name;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+</body>
+</html>
+|;
+
+}
+
+
+sub transactions {
+
+ if ($form->{db} eq 'customer') {
+ $translabel = $locale->text('AR Transactions');
+ $invlabel = $locale->text('Sales Invoices');
+ $ordlabel = $locale->text('Sales Orders');
+ $quolabel = $locale->text('Quotations');
+ } else {
+ $translabel = $locale->text('AP Transactions');
+ $invlabel = $locale->text('Vendor Invoices');
+ $ordlabel = $locale->text('Purchase Orders');
+ $quolabel = $locale->text('Request for Quotations');
+ }
+
+
+ $transactions = qq|
+ <tr>
+ <td></td>
+ <td>
+ <table>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <td><input name="l_transnumber" type=checkbox class=checkbox value=Y> $translabel</td>
+ </tr>
+ <tr>
+ <td><input name="l_invnumber" type=checkbox class=checkbox value=Y> $invlabel</td>
+ </tr>
+ <tr>
+ <td><input name="l_ordnumber" type=checkbox class=checkbox value=Y> $ordlabel</td>
+ </tr>
+ <tr>
+ <td><input name="l_quonumber" type=checkbox class=checkbox value=Y> $quolabel</td>
+ </tr>
+ </table>
+ </td>
+ <td>
+ <table>
+ <tr>
+ <th>|.$locale->text('From').qq|</th>
+ <td><input name=transdatefrom size=11 title="$myconfig{dateformat}"></td>
+ <th>|.$locale->text('To').qq|</th>
+ <td><input name=transdateto size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan=3>
+ <input name="open" type=checkbox class=checkbox value=Y checked>&nbsp;|.$locale->text('Open').qq|
+ <input name="closed" type=checkbox class=checkbox value=Y checked>&nbsp;|.$locale->text('Closed').qq|
+ </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan=3>
+ <input name="l_amount" type=checkbox class=checkbox value=Y checked>&nbsp;|.$locale->text('Amount').qq|
+ <input name="l_tax" type=checkbox class=checkbox value=Y checked>&nbsp;|.$locale->text('Tax').qq|
+ <input name="l_total" type=checkbox class=checkbox value=Y checked>&nbsp;|.$locale->text('Total').qq|
+ <input name="l_subtotal" type=checkbox class=checkbox value=Y>&nbsp;|.$locale->text('Subtotal').qq|
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+|;
+
+}
+
+
+sub include_in_report {
+
+ $label = ucfirst $form->{db};
+
+ @a = ();
+
+ push @a, qq|<input name="l_ndx" type=checkbox class=checkbox value=Y> |.$locale->text('No.');
+ push @a, qq|<input name="l_id" type=checkbox class=checkbox value=Y> |.$locale->text('ID');
+ push @a, qq|<input name="l_$form->{db}number" type=checkbox class=checkbox value=Y> |.$locale->text($label . ' Number');
+ push @a, qq|<input name="l_name" type=checkbox class=checkbox value=Y $form->{l_name}> |.$locale->text('Company Name');
+ push @a, qq|<input name="l_contact" type=checkbox class=checkbox value=Y $form->{l_contact}> |.$locale->text('Contact');
+ push @a, qq|<input name="l_email" type=checkbox class=checkbox value=Y $form->{l_email}> |.$locale->text('E-mail');
+ push @a, qq|<input name="l_address" type=checkbox class=checkbox value=Y> |.$locale->text('Address');
+ push @a, qq|<input name="l_city" type=checkbox class=checkbox value=Y> |.$locale->text('City');
+ push @a, qq|<input name="l_state" type=checkbox class=checkbox value=Y> |.$locale->text('State/Province');
+ push @a, qq|<input name="l_zipcode" type=checkbox class=checkbox value=Y> |.$locale->text('Zip/Postal Code');
+ push @a, qq|<input name="l_country" type=checkbox class=checkbox value=Y> |.$locale->text('Country');
+ push @a, qq|<input name="l_phone" type=checkbox class=checkbox value=Y $form->{l_phone}> |.$locale->text('Phone');
+ push @a, qq|<input name="l_fax" type=checkbox class=checkbox value=Y> |.$locale->text('Fax');
+ push @a, qq|<input name="l_cc" type=checkbox class=checkbox value=Y> |.$locale->text('Cc');
+
+ if ($myconfig{role} =~ /(admin|manager)/) {
+ push @a, qq|<input name="l_bcc" type=checkbox class=checkbox value=Y> |.$locale->text('Bcc');
+ }
+
+ push @a, qq|<input name="l_notes" type=checkbox class=checkbox value=Y> |.$locale->text('Notes');
+ push @a, qq|<input name="l_discount" type=checkbox class=checkbox value=Y> |.$locale->text('Discount');
+ push @a, qq|<input name="l_taxaccount" type=checkbox class=checkbox value=Y> |.$locale->text('Tax Account');
+ push @a, qq|<input name="l_taxnumber" type=checkbox class=checkbox value=Y> |.$locale->text('Tax Number');
+
+ if ($form->{db} eq 'customer') {
+ push @a, qq|<input name="l_employee" type=checkbox class=checkbox value=Y> |.$locale->text('Salesperson');
+ push @a, qq|<input name="l_manager" type=checkbox class=checkbox value=Y> |.$locale->text('Manager');
+ push @a, qq|<input name="l_pricegroup" type=checkbox class=checkbox value=Y> |.$locale->text('Pricegroup');
+
+ } else {
+ push @a, qq|<input name="l_employee" type=checkbox class=checkbox value=Y> |.$locale->text('Employee');
+ push @a, qq|<input name="l_manager" type=checkbox class=checkbox value=Y> |.$locale->text('Manager');
+ push @a, qq|<input name="l_gifi_accno" type=checkbox class=checkbox value=Y> |.$locale->text('GIFI');
+
+ }
+
+ push @a, qq|<input name="l_sic_code" type=checkbox class=checkbox value=Y> |.$locale->text('SIC');
+ push @a, qq|<input name="l_iban" type=checkbox class=checkbox value=Y> |.$locale->text('IBAN');
+ push @a, qq|<input name="l_bic" type=checkbox class=checkbox value=Y> |.$locale->text('BIC');
+ push @a, qq|<input name="l_business" type=checkbox class=checkbox value=Y> |.$locale->text('Type of Business');
+ push @a, qq|<input name="l_terms" type=checkbox class=checkbox value=Y> |.$locale->text('Terms');
+ push @a, qq|<input name="l_language" type=checkbox class=checkbox value=Y> |.$locale->text('Language');
+ push @a, qq|<input name="l_startdate" type=checkbox class=checkbox value=Y> |.$locale->text('Startdate');
+ push @a, qq|<input name="l_enddate" type=checkbox class=checkbox value=Y> |.$locale->text('Enddate');
+
+
+ $include = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Include in Report').qq|</th>
+ <td>
+ <table>
+|;
+
+ while (@a) {
+ $include .= qq|<tr>\n|;
+ for (1 .. 5) {
+ $include .= qq|<td nowrap>|. shift @a;
+ $include .= qq|</td>\n|;
+ }
+ $include .= qq|</tr>\n|;
+ }
+
+ $include .= qq|
+ </table>
+ </td>
+ </tr>
+|;
+
+}
+
+
+sub search {
+
+# $locale->text('Customers')
+# $locale->text('Vendors')
+
+ $form->{title} = $locale->text('Search') unless $form->{title};
+
+ for (qw(name contact phone email)) { $form->{"l_$_"} = 'checked' }
+
+ $form->{nextsub} = "list_names";
+
+ $orphan = qq|
+ <tr>
+ <td></td>
+ <td><input name=status class=radio type=radio value=all checked>&nbsp;|.$locale->text('All').qq|
+ <input name=status class=radio type=radio value=active>&nbsp;|.$locale->text('Active').qq|
+ <input name=status class=radio type=radio value=inactive>&nbsp;|.$locale->text('Inactive').qq|
+ <input name=status class=radio type=radio value=orphaned>&nbsp;|.$locale->text('Orphaned').qq|</td>
+ </tr>
+|;
+
+
+ &transactions;
+ &include_in_report;
+ &search_name;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+</body>
+</html>
+|;
+
+}
+
+
+sub search_name {
+
+ $label = ucfirst $form->{db};
+
+ if ($form->{db} eq 'customer') {
+ $employee = qq|
+ <th align=right nowrap>|.$locale->text('Salesperson').qq|</th>
+ <td><input name=employee size=32></td>
+|;
+ }
+ if ($form->{db} eq 'vendor') {
+ $employee = qq|
+ <th align=right nowrap>|.$locale->text('Employee').qq|</th>
+ <td><input name=employee size=32></td>
+|;
+ }
+
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=db value=$form->{db}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Company Name').qq|</th>
+ <td><input name=name size=32></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Contact').qq|</th>
+ <td><input name=contact size=32></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('E-mail').qq|</th>
+ <td><input name=email size=32></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Phone').qq|</th>
+ <td><input name=phone size=20></td>
+ </tr>
+ <tr>
+ $employee
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Notes').qq|</th>
+ <td colspan=3><textarea name=notes rows=3 cols=32></textarea></td>
+ </tr>
+ </table>
+ </td>
+
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text($label . ' Number').qq|</th>
+ <td><input name=$form->{db}number size=32></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Address').qq|</th>
+ <td><input name=address size=32></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('City').qq|</th>
+ <td><input name=city size=32></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('State/Province').qq|</th>
+ <td><input name=state size=32></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Zip/Postal Code').qq|</th>
+ <td><input name=zipcode size=10></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Country').qq|</th>
+ <td><input name=country size=32></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Startdate').qq|</th>
+ <td>|.$locale->text('From').qq| <input name=startdatefrom size=11 title="$myconfig{dateformat}"> |.$locale->text('To').qq| <input name=startdateto size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+
+ $orphan
+ $transactions
+ $include
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<input type=hidden name=nextsub value=$form->{nextsub}>
+
+<input type=hidden name=path value=$form->{path}>
+<input type=hidden name=login value=$form->{login}>
+<input type=hidden name=sessionid value=$form->{sessionid}>
+
+<br>
+<input type=submit class=submit name=action value="|.$locale->text('Continue').qq|">
+</form>
+|;
+
+}
+
+
+sub list_names {
+
+ CT->search(\%myconfig, \%$form);
+
+ $href = "$form->{script}?action=list_names&direction=$form->{direction}&oldsort=$form->{oldsort}&db=$form->{db}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&status=$form->{status}&l_subtotal=$form->{l_subtotal}";
+
+ $form->sort_order();
+
+ $callback = "$form->{script}?action=list_names&direction=$form->{direction}&oldsort=$form->{oldsort}&db=$form->{db}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&status=$form->{status}&l_subtotal=$form->{l_subtotal}";
+
+ @columns = $form->sort_columns(id, name, "$form->{db}number", address,
+ city, state, zipcode, country, contact,
+ phone, fax, email, cc, bcc, employee,
+ manager, notes, discount, terms,
+ taxaccount, taxnumber, gifi_accno, sic_code, business,
+ pricegroup, language, iban, bic,
+ startdate, enddate,
+ invnumber, invamount, invtax, invtotal,
+ ordnumber, ordamount, ordtax, ordtotal,
+ quonumber, quoamount, quotax, quototal);
+ unshift @columns, "ndx";
+
+ $form->{l_invnumber} = "Y" if $form->{l_transnumber};
+ foreach $item (qw(inv ord quo)) {
+ if ($form->{"l_${item}number"}) {
+ for (qw(amount tax total)) { $form->{"l_$item$_"} = $form->{"l_$_"} }
+ $removeemployee = 1;
+ $openclosed = 1;
+ }
+ }
+ $form->{open} = $form->{closed} = "" if !$openclosed;
+
+
+ foreach $item (@columns) {
+ if ($form->{"l_$item"} eq "Y") {
+ push @column_index, $item;
+
+ # add column to href and callback
+ $callback .= "&l_$item=Y";
+ $href .= "&l_$item=Y";
+ }
+ }
+
+ foreach $item (qw(amount tax total transnumber)) {
+ if ($form->{"l_$item"} eq "Y") {
+ $callback .= "&l_$item=Y";
+ $href .= "&l_$item=Y";
+ }
+ }
+
+
+ if ($form->{status} eq 'all') {
+ $option = $locale->text('All');
+ }
+ if ($form->{status} eq 'orphaned') {
+ $option = $locale->text('Orphaned');
+ }
+ if ($form->{status} eq 'active') {
+ $option = $locale->text('Active');
+ }
+ if ($form->{status} eq 'inactive') {
+ $option = $locale->text('Inactive');
+ }
+
+ if ($form->{name}) {
+ $callback .= "&name=".$form->escape($form->{name},1);
+ $href .= "&name=".$form->escape($form->{name});
+ $option .= "\n<br>".$locale->text('Name')." : $form->{name}";
+ }
+ if ($form->{address}) {
+ $callback .= "&address=".$form->escape($form->{address},1);
+ $href .= "&address=".$form->escape($form->{address});
+ $option .= "\n<br>".$locale->text('Address')." : $form->{address}";
+ }
+ if ($form->{city}) {
+ $callback .= "&city=".$form->escape($form->{city},1);
+ $href .= "&city=".$form->escape($form->{city});
+ $option .= "\n<br>".$locale->text('City')." : $form->{city}";
+ }
+ if ($form->{state}) {
+ $callback .= "&state=".$form->escape($form->{state},1);
+ $href .= "&state=".$form->escape($form->{state});
+ $option .= "\n<br>".$locale->text('State')." : $form->{state}";
+ }
+ if ($form->{zipcode}) {
+ $callback .= "&zipcode=".$form->escape($form->{zipcode},1);
+ $href .= "&zipcode=".$form->escape($form->{zipcode});
+ $option .= "\n<br>".$locale->text('Zip/Postal Code')." : $form->{zipcode}";
+ }
+ if ($form->{country}) {
+ $callback .= "&country=".$form->escape($form->{country},1);
+ $href .= "&country=".$form->escape($form->{country});
+ $option .= "\n<br>".$locale->text('Country')." : $form->{country}";
+ }
+ if ($form->{contact}) {
+ $callback .= "&contact=".$form->escape($form->{contact},1);
+ $href .= "&contact=".$form->escape($form->{contact});
+ $option .= "\n<br>".$locale->text('Contact')." : $form->{contact}";
+ }
+ if ($form->{employee}) {
+ $callback .= "&employee=".$form->escape($form->{employee},1);
+ $href .= "&employee=".$form->escape($form->{employee});
+ $option .= "\n<br>";
+ if ($form->{db} eq 'customer') {
+ $option .= $locale->text('Salesperson');
+ }
+ if ($form->{db} eq 'vendor') {
+ $option .= $locale->text('Employee');
+ }
+ $option .= " : $form->{employee}";
+ }
+
+ $fromdate = "";
+ $todate = "";
+ if ($form->{startdatefrom}) {
+ $callback .= "&startdatefrom=$form->{startdatefrom}";
+ $href .= "&startdatefrom=$form->{startdatefrom}";
+ $fromdate = $locale->date(\%myconfig, $form->{startdatefrom}, 1);
+ }
+ if ($form->{startdateto}) {
+ $callback .= "&startdateto=$form->{startdateto}";
+ $href .= "&startdateto=$form->{startdateto}";
+ $todate = $locale->date(\%myconfig, $form->{startdateto}, 1);
+ }
+ if ($fromdate || $todate) {
+ $option .= "\n<br>".$locale->text('Startdate')." $fromdate - $todate";
+ }
+
+ if ($form->{notes}) {
+ $callback .= "&notes=".$form->escape($form->{notes},1);
+ $href .= "&notes=".$form->escape($form->{notes});
+ $option .= "\n<br>".$locale->text('Notes')." : $form->{notes}";
+ }
+ if ($form->{"$form->{db}number"}) {
+ $callback .= qq|&$form->{db}number=|.$form->escape($form->{"$form->{db}number"},1);
+ $href .= "&$form->{db}number=".$form->escape($form->{"$form->{db}number"});
+ $option .= "\n<br>".$locale->text('Number').qq| : $form->{"$form->{db}number"}|;
+ }
+ if ($form->{phone}) {
+ $callback .= "&phone=".$form->escape($form->{phone},1);
+ $href .= "&phone=".$form->escape($form->{phone});
+ $option .= "\n<br>".$locale->text('Phone')." : $form->{phone}";
+ }
+ if ($form->{email}) {
+ $callback .= "&email=".$form->escape($form->{email},1);
+ $href .= "&email=".$form->escape($form->{email});
+ $option .= "\n<br>".$locale->text('E-mail')." : $form->{email}";
+ }
+ if ($form->{transdatefrom}) {
+ $callback .= "&transdatefrom=$form->{transdatefrom}";
+ $href .= "&transdatefrom=$form->{transdatefrom}";
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('From')."&nbsp;".$locale->date(\%myconfig, $form->{transdatefrom}, 1);
+ }
+ if ($form->{transdateto}) {
+ $callback .= "&transdateto=$form->{transdateto}";
+ $href .= "&transdateto=$form->{transdateto}";
+ if ($form->{transdatefrom}) {
+ $option .= " ";
+ } else {
+ $option .= "\n<br>" if ($option);
+ }
+ $option .= $locale->text('To')."&nbsp;".$locale->date(\%myconfig, $form->{transdateto}, 1);
+ }
+ if ($form->{open}) {
+ $callback .= "&open=$form->{open}";
+ $href .= "&open=$form->{open}";
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Open');
+ }
+ if ($form->{closed}) {
+ $callback .= "&closed=$form->{closed}";
+ $href .= "&closed=$form->{closed}";
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Closed');
+ }
+
+
+ $form->{callback} = "$callback&sort=$form->{sort}";
+ $callback = $form->escape($form->{callback});
+
+ $column_header{ndx} = qq|<th class=listheading>&nbsp;</th>|;
+ $column_header{id} = qq|<th class=listheading>|.$locale->text('ID').qq|</th>|;
+ $column_header{"$form->{db}number"} = qq|<th><a class=listheading href=$href&sort=$form->{db}number>|.$locale->text('Number').qq|</a></th>|;
+ $column_header{name} = qq|<th><a class=listheading href=$href&sort=name>|.$locale->text('Name').qq|</a></th>|;
+ $column_header{address} = qq|<th class=listheading>|.$locale->text('Address').qq|</th>|;
+ $column_header{city} = qq|<th><a class=listheading href=$href&sort=city>|.$locale->text('City').qq|</a></th>|;
+ $column_header{state} = qq|<th><a class=listheading href=$href&sort=state>|.$locale->text('State/Province').qq|</a></th>|;
+ $column_header{zipcode} = qq|<th><a class=listheading href=$href&sort=zipcode>|.$locale->text('Zip/Postal Code').qq|</a></th>|;
+ $column_header{country} = qq|<th><a class=listheading href=$href&sort=country>|.$locale->text('Country').qq|</a></th>|;
+ $column_header{contact} = qq|<th><a class=listheading href=$href&sort=contact>|.$locale->text('Contact').qq|</a></th>|;
+ $column_header{phone} = qq|<th><a class=listheading href=$href&sort=phone>|.$locale->text('Phone').qq|</a></th>|;
+ $column_header{fax} = qq|<th><a class=listheading href=$href&sort=fax>|.$locale->text('Fax').qq|</a></th>|;
+ $column_header{email} = qq|<th><a class=listheading href=$href&sort=email>|.$locale->text('E-mail').qq|</a></th>|;
+ $column_header{cc} = qq|<th><a class=listheading href=$href&sort=cc>|.$locale->text('Cc').qq|</a></th>|;
+ $column_header{bcc} = qq|<th><a class=listheading href=$href&sort=cc>|.$locale->text('Bcc').qq|</a></th>|;
+ $column_header{notes} = qq|<th><a class=listheading href=$href&sort=notes>|.$locale->text('Notes').qq|</a></th>|;
+ $column_header{discount} = qq|<th class=listheading>%</th>|;
+ $column_header{terms} = qq|<th class=listheading>|.$locale->text('Terms').qq|</th>|;
+
+ $column_header{taxnumber} = qq|<th><a class=listheading href=$href&sort=taxnumber>|.$locale->text('Tax Number').qq|</a></th>|;
+ $column_header{taxaccount} = qq|<th class=listheading>|.$locale->text('Tax Account').qq|</th>|;
+ $column_header{gifi_accno} = qq|<th><a class=listheading href=$href&sort=gifi_accno>|.$locale->text('GIFI').qq|</a></th>|;
+ $column_header{sic_code} = qq|<th><a class=listheading href=$href&sort=sic_code>|.$locale->text('SIC').qq|</a></th>|;
+ $column_header{business} = qq|<th><a class=listheading href=$href&sort=business>|.$locale->text('Type of Business').qq|</a></th>|;
+ $column_header{iban} = qq|<th class=listheading>|.$locale->text('IBAN').qq|</th>|;
+ $column_header{bic} = qq|<th class=listheading>|.$locale->text('BIC').qq|</th>|;
+ $column_header{startdate} = qq|<th><a class=listheading href=$href&sort=startdate>|.$locale->text('Startdate').qq|</a></th>|;
+ $column_header{enddate} = qq|<th><a class=listheading href=$href&sort=enddate>|.$locale->text('Enddate').qq|</a></th>|;
+
+ $column_header{invnumber} = qq|<th><a class=listheading href=$href&sort=invnumber>|.$locale->text('Invoice').qq|</a></th>|;
+ $column_header{ordnumber} = qq|<th><a class=listheading href=$href&sort=ordnumber>|.$locale->text('Order').qq|</a></th>|;
+ $column_header{quonumber} = qq|<th><a class=listheading href=$href&sort=quonumber>|.$locale->text('Quotation').qq|</a></th>|;
+
+ if ($form->{db} eq 'customer') {
+ $column_header{employee} = qq|<th><a class=listheading href=$href&sort=employee>|.$locale->text('Salesperson').qq|</a></th>|;
+ } else {
+ $column_header{employee} = qq|<th><a class=listheading href=$href&sort=employee>|.$locale->text('Employee').qq|</a></th>|;
+ }
+ $column_header{manager} = qq|<th><a class=listheading href=$href&sort=manager>|.$locale->text('Manager').qq|</a></th>|;
+
+ $column_header{pricegroup} = qq|<th><a class=listheading href=$href&sort=pricegroup>|.$locale->text('Pricegroup').qq|</a></th>|;
+ $column_header{language} = qq|<th><a class=listheading href=$href&sort=language>|.$locale->text('Language').qq|</a></th>|;
+
+
+ $amount = $locale->text('Amount');
+ $tax = $locale->text('Tax');
+ $total = $locale->text('Total');
+
+ $column_header{invamount} = qq|<th class=listheading>$amount</th>|;
+ $column_header{ordamount} = qq|<th class=listheading>$amount</th>|;
+ $column_header{quoamount} = qq|<th class=listheading>$amount</th>|;
+
+ $column_header{invtax} = qq|<th class=listheading>$tax</th>|;
+ $column_header{ordtax} = qq|<th class=listheading>$tax</th>|;
+ $column_header{quotax} = qq|<th class=listheading>$tax</th>|;
+
+ $column_header{invtotal} = qq|<th class=listheading>$total</th>|;
+ $column_header{ordtotal} = qq|<th class=listheading>$total</th>|;
+ $column_header{quototal} = qq|<th class=listheading>$total</th>|;
+
+
+ if ($form->{status}) {
+ $label = ucfirst $form->{db}."s";
+ $form->{title} = $locale->text($label);
+ } else {
+ $label = ucfirst $form->{db};
+ $form->{title} = $locale->text($label ." Transactions");
+ }
+
+ $form->header;
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$option</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "$column_header{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ $ordertype = ($form->{db} eq 'customer') ? 'sales_order' : 'purchase_order';
+ $quotationtype = ($form->{db} eq 'customer') ? 'sales_quotation' : 'request_quotation';
+ $subtotal = 0;
+
+ $i = 0;
+ foreach $ref (@{ $form->{CT} }) {
+
+ if ($ref->{$form->{sort}} ne $sameitem && $form->{l_subtotal}) {
+ # print subtotal
+ if ($subtotal) {
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+ &list_subtotal;
+ }
+ }
+
+ if ($ref->{id} eq $sameid) {
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+ } else {
+
+ $i++;
+
+ $ref->{notes} =~ s/\r?\n/<br>/g;
+ for (@column_index) { $column_data{$_} = "<td>$ref->{$_}&nbsp;</td>" }
+
+ $column_data{ndx} = "<td align=right>$i</td>";
+
+ if ($ref->{$form->{sort}} eq $sameitem) {
+ $column_data{$form->{sort}} = "<td>&nbsp;</td>";
+ }
+
+ $column_data{address} = "<td>$ref->{address1} $ref->{address2}&nbsp;</td>";
+ $column_data{name} = "<td><a href=$form->{script}?action=edit&id=$ref->{id}&db=$form->{db}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&status=$form->{status}&callback=$callback>$ref->{name}&nbsp;</td>";
+
+ $email = "";
+ if ($form->{sort} =~ /(email|cc)/) {
+ if ($ref->{$form->{sort}} ne $sameitem) {
+ $email = 1;
+ }
+ } else {
+ $email = 1;
+ }
+
+ if ($email) {
+ foreach $item (qw(email cc bcc)) {
+ if ($ref->{$item}) {
+ $email = $ref->{$item};
+ $email =~ s/</\&lt;/;
+ $email =~ s/>/\&gt;/;
+
+ $column_data{$item} = qq|<td><a href="mailto:$ref->{$item}">$email</a></td>|;
+ }
+ }
+ }
+ }
+
+ if ($ref->{formtype} eq 'invoice') {
+ $column_data{invnumber} = "<td><a href=$ref->{module}.pl?action=edit&id=$ref->{invid}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{invnumber}&nbsp;</td>";
+
+ $column_data{invamount} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{netamount}, 2, "&nbsp;")."</td>";
+ $column_data{invtax} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{amount} - $ref->{netamount}, 2, "&nbsp;")."</td>";
+ $column_data{invtotal} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{amount}, 2, "&nbsp;")."</td>";
+
+ $invamountsubtotal += $ref->{netamount};
+ $invtaxsubtotal += ($ref->{amount} - $ref->{netamount});
+ $invtotalsubtotal += $ref->{amount};
+ $subtotal = 1;
+ }
+
+ if ($ref->{formtype} eq 'order') {
+ $column_data{ordnumber} = "<td><a href=$ref->{module}.pl?action=edit&id=$ref->{invid}&type=$ordertype&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{ordnumber}&nbsp;</td>";
+
+ $column_data{ordamount} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{netamount}, 2, "&nbsp;")."</td>";
+ $column_data{ordtax} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{amount} - $ref->{netamount}, 2, "&nbsp;")."</td>";
+ $column_data{ordtotal} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{amount}, 2, "&nbsp;")."</td>";
+
+ $ordamountsubtotal += $ref->{netamount};
+ $ordtaxsubtotal += ($ref->{amount} - $ref->{netamount});
+ $ordtotalsubtotal += $ref->{amount};
+ $subtotal = 1;
+ }
+
+ if ($ref->{formtype} eq 'quotation') {
+ $column_data{quonumber} = "<td><a href=$ref->{module}.pl?action=edit&id=$ref->{invid}&type=$quotationtype&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{quonumber}&nbsp;</td>";
+
+ $column_data{quoamount} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{netamount}, 2, "&nbsp;")."</td>";
+ $column_data{quotax} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{amount} - $ref->{netamount}, 2, "&nbsp;")."</td>";
+ $column_data{quototal} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{amount}, 2, "&nbsp;")."</td>";
+
+ $quoamountsubtotal += $ref->{netamount};
+ $quotaxsubtotal += ($ref->{amount} - $ref->{netamount});
+ $quototalsubtotal += $ref->{amount};
+ $subtotal = 1;
+ }
+
+ if ($sameid ne "$ref->{id}") {
+ if ($form->{l_discount}) {
+ $column_data{discount} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{discount} * 100, "", "&nbsp;")."</td>";
+ }
+ if ($form->{l_terms}) {
+ $column_data{terms} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{terms}, "", "&nbsp;")."</td>";
+ }
+ }
+
+ $j++; $j %= 2;
+ print "
+ <tr class=listrow$j>
+";
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ $sameitem = "$ref->{$form->{sort}}";
+ $sameid = $ref->{id};
+
+ }
+
+ if ($form->{l_subtotal} && $subtotal) {
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+ &list_subtotal;
+ }
+
+ $i = 1;
+ if ($myconfig{acs} !~ /AR--AR/) {
+ if ($form->{db} eq 'customer') {
+ $button{'AR--Customers--Add Customer'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Add Customer').qq|"> |;
+ $button{'AR--Customers--Add Customer'}{order} = $i++;
+ }
+ }
+ if ($myconfig{acs} !~ /AP--AP/) {
+ if ($form->{db} eq 'vendor') {
+ $button{'AP--Vendors--Add Vendor'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Add Vendor').qq|"> |;
+ $button{'AP--Vendors--Add Vendor'}{order} = $i++;
+ }
+ }
+
+ foreach $item (split /;/, $myconfig{acs}) {
+ delete $button{$item};
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+<form method=post action=$form->{script}>
+|;
+
+ $form->hide_form(qw(callback db path login sessionid));
+
+ if ($form->{status}) {
+ foreach $item (sort { $a->{order} <=> $b->{order} } %button) {
+ print $item->{code};
+ }
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub list_subtotal {
+
+ $column_data{invamount} = "<td align=right>".$form->format_amount(\%myconfig, $invamountsubtotal, 2, "&nbsp;")."</td>";
+ $column_data{invtax} = "<td align=right>".$form->format_amount(\%myconfig, $invtaxsubtotal, 2, "&nbsp;")."</td>";
+ $column_data{invtotal} = "<td align=right>".$form->format_amount(\%myconfig, $invtotalsubtotal, 2, "&nbsp;")."</td>";
+
+ $invamountsubtotal = 0;
+ $invtaxsubtotal = 0;
+ $invtotalsubtotal = 0;
+
+ $column_data{ordamount} = "<td align=right>".$form->format_amount(\%myconfig, $ordamountsubtotal, 2, "&nbsp;")."</td>";
+ $column_data{ordtax} = "<td align=right>".$form->format_amount(\%myconfig, $ordtaxsubtotal, 2, "&nbsp;")."</td>";
+ $column_data{ordtotal} = "<td align=right>".$form->format_amount(\%myconfig, $ordtotalsubtotal, 2, "&nbsp;")."</td>";
+
+ $ordamountsubtotal = 0;
+ $ordtaxsubtotal = 0;
+ $ordtotalsubtotal = 0;
+
+ $column_data{quoamount} = "<td align=right>".$form->format_amount(\%myconfig, $quoamountsubtotal, 2, "&nbsp;")."</td>";
+ $column_data{quotax} = "<td align=right>".$form->format_amount(\%myconfig, $quotaxsubtotal, 2, "&nbsp;")."</td>";
+ $column_data{quototal} = "<td align=right>".$form->format_amount(\%myconfig, $quototalsubtotal, 2, "&nbsp;")."</td>";
+
+ $quoamountsubtotal = 0;
+ $quotaxsubtotal = 0;
+ $quototalsubtotal = 0;
+
+ print "
+ <tr class=listsubtotal>
+";
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+
+}
+
+
+sub list_history {
+
+ CT->get_history(\%myconfig, \%$form);
+
+ $href = "$form->{script}?action=list_history&direction=$form->{direction}&oldsort=$form->{oldsort}&db=$form->{db}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&type=$form->{type}&transdatefrom=$form->{transdatefrom}&transdateto=$form->{transdateto}&history=$form->{history}";
+
+ $form->sort_order();
+
+ $callback = "$form->{script}?action=list_history&direction=$form->{direction}&oldsort=$form->{oldsort}&db=$form->{db}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&type=$form->{type}&transdatefrom=$form->{transdatefrom}&transdateto=$form->{transdateto}&history=$form->{history}";
+
+ $form->{l_fxsellprice} = $form->{l_curr};
+ @columns = $form->sort_columns(partnumber, description, qty, unit, sellprice, fxsellprice, curr, discount, deliverydate, projectnumber, serialnumber);
+
+ if ($form->{history} eq 'summary') {
+ @columns = $form->sort_columns(partnumber, description, qty, unit, sellprice, curr);
+ }
+
+ foreach $item (@columns) {
+ if ($form->{"l_$item"} eq "Y") {
+ push @column_index, $item;
+
+ # add column to href and callback
+ $callback .= "&l_$item=Y";
+ $href .= "&l_$item=Y";
+ }
+ }
+
+ if ($form->{history} eq 'detail') {
+ $option = $locale->text('Detail');
+ }
+ if ($form->{history} eq 'summary') {
+ $option .= $locale->text('Summary');
+ }
+ if ($form->{name}) {
+ $callback .= "&name=".$form->escape($form->{name},1);
+ $href .= "&name=".$form->escape($form->{name});
+ $option .= "\n<br>".$locale->text('Name')." : $form->{name}";
+ }
+ if ($form->{contact}) {
+ $callback .= "&contact=".$form->escape($form->{contact},1);
+ $href .= "&contact=".$form->escape($form->{contact});
+ $option .= "\n<br>".$locale->text('Contact')." : $form->{contact}";
+ }
+ if ($form->{"$form->{db}number"}) {
+ $callback .= qq|&$form->{db}number=|.$form->escape($form->{"$form->{db}number"},1);
+ $href .= "&$form->{db}number=".$form->escape($form->{"$form->{db}number"});
+ $option .= "\n<br>".$locale->text('Number').qq| : $form->{"$form->{db}number"}|;
+ }
+ if ($form->{email}) {
+ $callback .= "&email=".$form->escape($form->{email},1);
+ $href .= "&email=".$form->escape($form->{email});
+ $option .= "\n<br>".$locale->text('E-mail')." : $form->{email}";
+ }
+ if ($form->{transdatefrom}) {
+ $callback .= "&transdatefrom=$form->{transdatefrom}";
+ $href .= "&transdatefrom=$form->{transdatefrom}";
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('From')."&nbsp;".$locale->date(\%myconfig, $form->{transdatefrom}, 1);
+ }
+ if ($form->{transdateto}) {
+ $callback .= "&transdateto=$form->{transdateto}";
+ $href .= "&transdateto=$form->{transdateto}";
+ if ($form->{transdatefrom}) {
+ $option .= " ";
+ } else {
+ $option .= "\n<br>" if ($option);
+ }
+ $option .= $locale->text('To')."&nbsp;".$locale->date(\%myconfig, $form->{transdateto}, 1);
+ }
+ if ($form->{open}) {
+ $callback .= "&open=$form->{open}";
+ $href .= "&open=$form->{open}";
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Open');
+ }
+ if ($form->{closed}) {
+ $callback .= "&closed=$form->{closed}";
+ $href .= "&closed=$form->{closed}";
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Closed');
+ }
+
+
+ $form->{callback} = "$callback&sort=$form->{sort}";
+ $callback = $form->escape($form->{callback});
+
+ $column_header{partnumber} = qq|<th><a class=listheading href=$href&sort=partnumber>|.$locale->text('Part Number').qq|</a></th>|;
+ $column_header{description} = qq|<th><a class=listheading href=$href&sort=description>|.$locale->text('Description').qq|</a></th>|;
+
+ if ($form->{history} eq 'summary') {
+ $column_header{sellprice} = qq|<th class=listheading>|.$locale->text('Total').qq|</th>|;
+ } else {
+ $column_header{sellprice} = qq|<th class=listheading>|.$locale->text('Sell Price').qq|</th>|;
+ }
+ $column_header{fxsellprice} = qq|<th>&nbsp;</th>|;
+
+ $column_header{curr} = qq|<th class=listheading>|.$locale->text('Curr').qq|</th>|;
+ $column_header{discount} = qq|<th class=listheading>|.$locale->text('Discount').qq|</th>|;
+ $column_header{qty} = qq|<th class=listheading>|.$locale->text('Qty').qq|</th>|;
+ $column_header{unit} = qq|<th class=listheading>|.$locale->text('Unit').qq|</th>|;
+ $column_header{deliverydate} = qq|<th><a class=listheading href=$href&sort=deliverydate>|.$locale->text('Delivery Date').qq|</a></th>|;
+ $column_header{projectnumber} = qq|<th><a class=listheading href=$href&sort=projectnumber>|.$locale->text('Project Number').qq|</a></th>|;
+ $column_header{serialnumber} = qq|<th><a class=listheading href=$href&sort=serialnumber>|.$locale->text('Serial Number').qq|</a></th>|;
+
+
+# $locale->text('Customer History')
+# $locale->text('Vendor History')
+
+ $label = ucfirst $form->{db};
+ $form->{title} = $locale->text($label." History");
+
+ $colspan = $#column_index + 1;
+
+ $form->header;
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$option</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "$column_header{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+
+ $module = 'oe';
+ if ($form->{db} eq 'customer') {
+ $invlabel = $locale->text('Sales Invoice');
+ $ordlabel = $locale->text('Sales Order');
+ $quolabel = $locale->text('Quotation');
+
+ $ordertype = 'sales_order';
+ $quotationtype = 'sales_quotation';
+ if ($form->{type} eq 'invoice') {
+ $module = 'is';
+ }
+ } else {
+ $invlabel = $locale->text('Vendor Invoice');
+ $ordlabel = $locale->text('Purchase Order');
+ $quolabel = $locale->text('RFQ');
+
+ $ordertype = 'purchase_order';
+ $quotationtype = 'request_quotation';
+ if ($form->{type} eq 'invoice') {
+ $module = 'ir';
+ }
+ }
+
+ $ml = ($form->{db} eq 'vendor') ? -1 : 1;
+
+ foreach $ref (@{ $form->{CT} }) {
+
+ if ($ref->{id} ne $sameid) {
+ # print the header
+ print qq|
+ <tr class=listheading>
+ <th colspan=$colspan><a class=listheading href=$form->{script}?action=edit&id=$ref->{ctid}&db=$form->{db}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{name} $ref->{address}</a></th>
+ </tr>
+|;
+ }
+
+ if ($form->{type} ne 'invoice') {
+ $ref->{fxsellprice} = $ref->{sellprice};
+ $ref->{sellprice} *= $ref->{exchangerate};
+ }
+
+ if ($form->{history} eq 'detail' and $ref->{invid} ne $sameinvid) {
+ # print inv, ord, quo number
+ $i++; $i %= 2;
+
+ print qq|
+ <tr class=listrow$i>
+|;
+
+ if ($form->{type} eq 'invoice') {
+ print qq|<th align=left colspan=$colspan><a href=${module}.pl?action=edit&id=$ref->{invid}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$invlabel $ref->{invnumber} / $ref->{employee}</a></th>|;
+ }
+
+ if ($form->{type} eq 'order') {
+ print qq|<th align=left colspan=$colspan><a href=${module}.pl?action=edit&id=$ref->{invid}&type=$ordertype&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ordlabel $ref->{ordnumber} / $ref->{employee}</a></th>|;
+ }
+
+ if ($form->{type} eq 'quotation') {
+ print qq|<th align=left colspan=$colspan><a href=${module}.pl?action=edit&id=$ref->{invid}&type=$quotationtype&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$quolabel $ref->{quonumber} / $ref->{employee}</a></th>|;
+ }
+
+ print qq|
+ </tr>
+|;
+ }
+
+ for (@column_index) { $column_data{$_} = "<td>$ref->{$_}&nbsp;</td>" }
+
+ if ($form->{l_curr}) {
+ $column_data{fxsellprice} = qq|<td align=right>|.$form->format_amount(\%myconfig, $ref->{fxsellprice}, 2)."</td>";
+ }
+ $column_data{sellprice} = qq|<td align=right>|.$form->format_amount(\%myconfig, $ref->{sellprice}, 2)."</td>";
+
+ $column_data{qty} = qq|<td align=right>|.$form->format_amount(\%myconfig, $ref->{qty} * $ml)."</td>";
+ $column_data{discount} = qq|<td align=right>|.$form->format_amount(\%myconfig, $ref->{discount} * 100, "", "&nbsp;")."</td>";
+ $column_data{partnumber} = qq|<td><a href=ic.pl?action=edit&id=$ref->{pid}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{partnumber}</td>|;
+
+
+ $i++; $i %= 2;
+ print qq|
+ <tr class=listrow$i>
+|;
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ $sameid = $ref->{id};
+ $sameinvid = $ref->{invid};
+
+ }
+
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+</body>
+</html>
+|;
+
+}
+
+
+
+sub edit {
+
+# $locale->text('Edit Customer')
+# $locale->text('Edit Vendor')
+
+ CT->create_links(\%myconfig, \%$form);
+
+ for (keys %$form) { $form->{$_} = $form->quote($form->{$_}) }
+
+ $form->{title} = "Edit";
+
+ # format discount
+ $form->{discount} *= 100;
+
+ &form_header;
+ &form_footer;
+
+}
+
+
+sub form_header {
+
+ $form->{taxincluded} = ($form->{taxincluded}) ? "checked" : "";
+ $form->{creditlimit} = $form->format_amount(\%myconfig, $form->{creditlimit}, 0);
+ $form->{discount} = $form->format_amount(\%myconfig, $form->{discount}, "");
+ $form->{terms} = $form->format_amount(\%myconfig, $form->{terms}, "");
+
+ if ($myconfig{role} =~ /(admin|manager)/) {
+ $bcc = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Bcc').qq|</th>
+ <td><input name=bcc size=35 value="$form->{bcc}"></td>
+ </tr>
+|;
+ }
+
+ if ($form->{currencies}) {
+ # currencies
+ for (split /:/, $form->{currencies}) { $form->{selectcurrency} .= "<option>$_\n" }
+ $form->{selectcurrency} =~ s/option>($form->{curr})/option selected>$1/;
+ $currency = qq|
+ <th>|.$locale->text('Currency').qq|</th>
+ <td><select name=curr>$form->{selectcurrency}</select></td>
+|;
+ }
+
+ foreach $item (split / /, $form->{taxaccounts}) {
+ if ($form->{tax}{$item}{taxable}) {
+ $taxable .= qq| <input name="tax_$item" value=1 class=checkbox type=checkbox checked>&nbsp;<b>$form->{tax}{$item}{description}</b>|;
+ } else {
+ $taxable .= qq| <input name="tax_$item" value=1 class=checkbox type=checkbox>&nbsp;<b>$form->{tax}{$item}{description}</b>|;
+ }
+ }
+
+ if ($taxable) {
+ $tax = qq|
+ <tr>
+ <th align=right>|.$locale->text('Taxable').qq|</th>
+ <td colspan=5>
+ <table>
+ <tr>
+ <td>$taxable</td>
+ <td><input name=taxincluded class=checkbox type=checkbox value=1 $form->{taxincluded}></td>
+ <th align=left>|.$locale->text('Tax Included').qq|</th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+|;
+ }
+
+ $typeofbusiness = qq|
+ <th></th>
+ <td></td>
+|;
+
+ if (@{ $form->{all_business} }) {
+ $form->{selectbusiness} = qq|<option>\n|;
+ for (@{ $form->{all_business} }) { $form->{selectbusiness} .= qq|<option value="$_->{description}--$_->{id}">$_->{description}\n| }
+
+ $form->{selectbusiness} =~ s/(<option value="\Q$form->{business}--$form->{business_id}\E")>/$1 selected>/;
+
+ $typeofbusiness = qq|
+ <th align=right>|.$locale->text('Type of Business').qq|</th>
+ <td><select name=business>$form->{selectbusiness}</select></td>
+|;
+
+
+ }
+
+ $pricegroup = qq|
+ <th></th>
+ <td></td>
+|;
+
+ if (@{ $form->{all_pricegroup} } && $form->{db} eq 'customer') {
+ $form->{selectpricegroup} = qq|<option>\n|;
+ for (@{ $form->{all_pricegroup} }) { $form->{selectpricegroup} .= qq|<option value="$_->{pricegroup}--$_->{id}">$_->{pricegroup}\n| }
+
+ $form->{selectpricegroup} =~ s/(<option value="\Q$form->{pricegroup}--$form->{pricegroup_id}\E")/$1 selected/;
+
+ $pricegroup = qq|
+ <th align=right>|.$locale->text('Pricegroup').qq|</th>
+ <td><select name=pricegroup>$form->{selectpricegroup}</select></td>
+|;
+ }
+
+ $lang = qq|
+ <th></th>
+ <td></td>
+|;
+
+ if (@{ $form->{all_language} }) {
+ $form->{selectlanguage} = qq|<option>\n|;
+ for (@{ $form->{all_language} }) { $form->{selectlanguage} .= qq|<option value="$_->{description}--$_->{code}">$_->{description}\n| }
+
+ $form->{selectlanguage} =~ s/(<option value="\Q$form->{language}--$form->{language_code}\E")/$1 selected/;
+
+ $lang = qq|
+ <th align=right>|.$locale->text('Language').qq|</th>
+ <td><select name=language>$form->{selectlanguage}</select></td>
+|;
+ }
+
+ $employeelabel = $locale->text('Salesperson');
+
+ $form->{selectemployee} = qq|<option>\n|;
+ for (@{ $form->{all_employee} }) { $form->{selectemployee} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+
+ $form->{selectemployee} =~ s/(<option value="\Q$form->{employee}--$form->{employee_id}\E")/$1 selected/;
+
+ if ($form->{db} eq 'vendor') {
+ $gifi = qq|
+ <th align=right>|.$locale->text('Sub-contract GIFI').qq|</th>
+ <td><input name=gifi_accno size=9 value="$form->{gifi_accno}"></td>
+|;
+ $employeelabel = $locale->text('Employee');
+ }
+
+
+ if (@{ $form->{all_employee} }) {
+ $employee = qq|
+ <th align=right>$employeelabel</th>|;
+
+ if ($myconfig{role} ne 'user' || !$form->{id}) {
+ $employee .= qq|
+ <td><select name=employee>$form->{selectemployee}</select></td>
+|;
+ } else {
+ $employee .= qq|
+ <td>$form->{employee}</td>
+ <input type=hidden name=employee value="$form->{employee}--$form->{employee_id}">|;
+ }
+ }
+
+
+# $locale->text('Customer Number')
+# $locale->text('Vendor Number')
+
+ $label = ucfirst $form->{db};
+ $form->{title} = $locale->text("$form->{title} $label");
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=50%>
+ <table width=100%>
+ <tr class=listheading>
+ <th class=listheading colspan=2 width=50%>|.$locale->text('Billing Address').qq|</th>
+ <tr>
+ <th align=right nowrap>|.$locale->text($label .' Number').qq|</th>
+ <td><input name="$form->{db}number" size=35 maxlength=32 value="$form->{"$form->{db}number"}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Company Name').qq|</th>
+ <td><input name=name size=35 maxlength=64 value="$form->{name}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Address').qq|</th>
+ <td><input name=address1 size=35 maxlength=32 value="$form->{address1}"></td>
+ </tr>
+ <tr>
+ <th></th>
+ <td><input name=address2 size=35 maxlength=32 value="$form->{address2}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('City').qq|</th>
+ <td><input name=city size=35 maxlength=32 value="$form->{city}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('State/Province').qq|</th>
+ <td><input name=state size=35 maxlength=32 value="$form->{state}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Zip/Postal Code').qq|</th>
+ <td><input name=zipcode size=10 maxlength=10 value="$form->{zipcode}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Country').qq|</th>
+ <td><input name=country size=35 maxlength=32 value="$form->{country}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Contact').qq|</th>
+ <td><input name=contact size=35 maxlength=64 value="$form->{contact}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Phone').qq|</th>
+ <td><input name=phone size=20 maxlength=20 value="$form->{phone}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Fax').qq|</th>
+ <td><input name=fax size=20 maxlength=20 value="$form->{fax}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('E-mail').qq|</th>
+ <td><input name=email size=35 value="$form->{email}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Cc').qq|</th>
+ <td><input name=cc size=35 value="$form->{cc}"></td>
+ </tr>
+ $bcc
+ </table>
+ </td>
+ <td width=50%>
+ <table width=100%>
+ <tr>
+ <th class=listheading colspan=2>|.$locale->text('Shipping Address').qq|</th>
+ </tr>
+ <tr>
+ <td><input name=none size=35 value=|. ("=" x 35) .qq|></td>
+ </tr>
+ <tr>
+ <td><input name=shiptoname size=35 maxlength=64 value="$form->{shiptoname}"></td>
+ </tr>
+ <tr>
+ <td><input name=shiptoaddress1 size=35 maxlength=32 value="$form->{shiptoaddress1}"></td>
+ </tr>
+ <tr>
+ <td><input name=shiptoaddress2 size=35 maxlength=32 value="$form->{shiptoaddress2}"></td>
+ </tr>
+ <tr>
+ <td><input name=shiptocity size=35 maxlength=32 value="$form->{shiptocity}"></td>
+ </tr>
+ <tr>
+ <td><input name=shiptostate size=35 maxlength=32 value="$form->{shiptostate}"></td>
+ </tr>
+ <tr>
+ <td><input name=shiptozipcode size=10 maxlength=10 value="$form->{shiptozipcode}"></td>
+ </tr>
+ <tr>
+ <td><input name=shiptocountry size=35 maxlength=32 value="$form->{shiptocountry}"></td>
+ </tr>
+ <tr>
+ <td><input name=shiptocontact size=35 maxlength=64 value="$form->{shiptocontact}"></td>
+ </tr>
+ <tr>
+ <td><input name=shiptophone size=20 maxlength=20 value="$form->{shiptophone}"></td>
+ </tr>
+ <tr>
+ <td><input name=shiptofax size=20 maxlength=20 value="$form->{shiptofax}"></td>
+ </tr>
+ <tr>
+ <td><input name=shiptoemail size=35 value="$form->{shiptoemail}"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table>
+ $tax
+ <tr>
+ <th align=right>|.$locale->text('Startdate').qq|</th>
+ <td><input name=startdate size=11 title="$myconfig{dateformat}" value=$form->{startdate}></td>
+ <th align=right>|.$locale->text('Enddate').qq|</th>
+ <td><input name=enddate size=11 title="$myconfig{dateformat}" value=$form->{enddate}></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Credit Limit').qq|</th>
+ <td><input name=creditlimit size=9 value="$form->{creditlimit}"></td>
+ <th align=right>|.$locale->text('Terms').qq|</th>
+ <td><input name=terms size=2 value="$form->{terms}"> <b>|.$locale->text('days').qq|</b></td>
+ <th align=right>|.$locale->text('Discount').qq|</th>
+ <td><input name=discount size=4 value="$form->{discount}">
+ <b>%</b></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Tax Number / SSN').qq|</th>
+ <td><input name=taxnumber size=20 value="$form->{taxnumber}"></td>
+ $gifi
+ <th align=right>|.$locale->text('SIC').qq|</th>
+ <td><input name=sic_code size=6 maxlength=6 value="$form->{sic_code}"></td>
+ </tr>
+ <tr>
+ $typeofbusiness
+ <th align=right>|.$locale->text('BIC').qq|</th>
+ <td><input name=bic size=11 maxlength=11 value="$form->{bic}"></td>
+ <th align=right>|.$locale->text('IBAN').qq|</th>
+ <td><input name=iban size=24 maxlength=34 value="$form->{iban}"></td>
+ </tr>
+ <tr>
+ $pricegroup
+ $lang
+ $currency
+ </tr>
+ <tr valign=top>
+ $employee
+ <td colspan=4>
+ <table>
+ <tr valign=top>
+ <th align=left nowrap>|.$locale->text('Notes').qq|</th>
+ <td><textarea name=notes rows=3 cols=40 wrap=soft>$form->{notes}</textarea></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+}
+
+
+
+sub form_footer {
+
+# type=submit $locale->text('Save')
+# type=submit $locale->text('Save as new')
+# type=submit $locale->text('AR Transaction')
+# type=submit $locale->text('Sales Invoice')
+# type=submit $locale->text('Sales Order')
+# type=submit $locale->text('Quotation')
+# type=submit $locale->text('AP Transaction')
+# type=submit $locale->text('Vendor Invoice')
+# type=submit $locale->text('Purchase Order')
+# type=submit $locale->text('RFQ')
+# type=submit $locale->text('Pricelist')
+# type=submit $locale->text('Delete')
+# type=submit $locale->text('POS')
+
+ %button = ('Save' => { ndx => 1, key => 'S', value => $locale->text('Save') },
+ 'Save as new' => { ndx => 2, key => 'N', value => $locale->text('Save as new') },
+ 'AR Transaction' => { ndx => 7, key => 'A', value => $locale->text('AR Transaction') },
+ 'AP Transaction' => { ndx => 8, key => 'A', value => $locale->text('AP Transaction') },
+ 'Sales Invoice' => { ndx => 9, key => 'I', value => $locale->text('Sales Invoice') },
+ 'POS' => { ndx => 10, key => 'C', value => $locale->text('POS') },
+ 'Sales Order' => { ndx => 11, key => 'O', value => $locale->text('Sales Order') },
+ 'Quotation' => { ndx => 12, key => 'Q', value => $locale->text('Quotation') },
+ 'Vendor Invoice' => { ndx => 13, key => 'I', value => $locale->text('Vendor Invoice') },
+ 'Purchase Order' => { ndx => 14, key => 'O', value => $locale->text('Purchase Order') },
+ 'RFQ' => { ndx => 15, key => 'Q', value => $locale->text('RFQ') },
+ 'Pricelist' => { ndx => 16, key => 'P', value => $locale->text('Pricelist') },
+ 'Delete' => { ndx => 17, key => 'D', value => $locale->text('Delete') },
+ );
+
+
+ %a = ();
+
+ if ($form->{db} eq 'customer') {
+ if ($myconfig{acs} !~ /AR--Customers--Add Customer/) {
+ $a{'Save'} = 1;
+
+ if ($form->{id}) {
+ $a{'Save as new'} = 1;
+ if ($form->{status} eq 'orphaned') {
+ $a{'Delete'} = 1;
+ }
+ }
+ }
+
+ if ($myconfig{acs} !~ /AR--AR/) {
+ if ($myconfig{acs} !~ /AR--Add Transaction/) {
+ $a{'AR Transaction'} = 1;
+ }
+ if ($myconfig{acs} !~ /AR--Sales Invoice/) {
+ $a{'Sales Invoice'} = 1;
+ }
+ }
+ if ($myconfig{acs} !~ /POS--POS/) {
+ if ($myconfig{acs} !~ /POS--Sale/) {
+ $a{'POS'} = 1;
+ }
+ }
+ if ($myconfig{acs} !~ /Order Entry--Order Entry/) {
+ if ($myconfig{acs} !~ /Order Entry--Sales Order/) {
+ $a{'Sales Order'} = 1;
+ }
+ }
+ if ($myconfig{acs} !~ /Quotations--Quotations/) {
+ if ($myconfig{acs} !~ /Quotations--Quotation/) {
+ $a{'Quotation'} = 1;
+ }
+ }
+ }
+
+ if ($form->{db} eq 'vendor') {
+ if ($myconfig{acs} !~ /AP--Vendors--Add Vendor/) {
+ $a{'Save'} = 1;
+
+ if ($form->{id}) {
+ $a{'Save as new'} = 1;
+ if ($form->{status} eq 'orphaned') {
+ $a{'Delete'} = 1;
+ }
+ }
+ }
+
+ if ($myconfig{acs} !~ /AP--AP/) {
+ if ($myconfig{acs} !~ /AP--Add Transaction/) {
+ $a{'AP Transaction'} = 1;
+ }
+ if ($myconfig{acs} !~ /AP--Vendor Invoice/) {
+ $a{'Vendor Invoice'} = 1;
+ }
+ }
+ if ($myconfig{acs} !~ /Order Entry--Order Entry/) {
+ if ($myconfig{acs} !~ /Order Entry--Purchase Order/) {
+ $a{'Purchase Order'} = 1;
+ }
+ }
+ if ($myconfig{acs} !~ /Quotations--Quotations/) {
+ if ($myconfig{acs} !~ /Quotations--RFQ/) {
+ $a{'RFQ'} = 1;
+ }
+ }
+ }
+
+ if ($myconfig{acs} !~ /Goods & Services--Goods & Services/) {
+ $myconfig{acs} =~ s/(Goods & Services--)Add (Service|Assembly).*;/$1--Add Part/g;
+ if ($myconfig{acs} !~ /Goods & Services--Add Part/) {
+ $a{'Pricelist'} = 1;
+ }
+ }
+
+ $form->hide_form(qw(id taxaccounts path login sessionid callback db));
+
+ for (keys %button) { delete $button{$_} if ! $a{$_} }
+ for (sort { $button{$a}->{ndx} <=> $button{$b}->{ndx} } keys %button) { $form->print_button(\%button, $_) }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+ </form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub pricelist {
+
+ $form->isblank("name", $locale->text('Name missing!'));
+
+ $form->{display_form} ||= "display_pricelist";
+
+ CT->pricelist(\%myconfig, \%$form);
+
+ foreach $ref (@{ $form->{"all_partspricelist"} }) {
+ $i++;
+ for (keys %$ref) { $form->{"${_}_$i"} = $ref->{$_} }
+ }
+ $form->{rowcount} = $i;
+
+ # currencies
+ @curr = split /:/, $form->{currencies};
+ for (@curr) { $form->{selectcurrency} .= "<option>$_\n" }
+
+ if (@ { $form->{all_partsgroup} }) {
+ $form->{selectpartsgroup} = "";
+ foreach $ref (@ { $form->{all_partsgroup} }) {
+ $form->{selectpartsgroup} .= qq|$ref->{partsgroup}--$ref->{id}\n|;
+ }
+ }
+
+ for (qw(currencies all_partsgroup all_partspricelist)) { delete $form->{$_} }
+
+ foreach $i (1 .. $form->{rowcount}) {
+
+ if ($form->{db} eq 'customer') {
+
+ $form->{"pricebreak_$i"} = $form->format_amount(\%myconfig, $form->{"pricebreak_$i"});
+
+ $form->{"sellprice_$i"} = $form->format_amount(\%myconfig, $form->{"sellprice_$i"}, 2);
+
+ }
+
+ if ($form->{db} eq 'vendor') {
+
+ $form->{"leadtime_$i"} = $form->format_amount(\%myconfig, $form->{"leadtime_$i"});
+
+ $form->{"lastcost_$i"} = $form->format_amount(\%myconfig, $form->{"lastcost_$i"}, 2);
+
+ }
+ }
+
+ $form->{rowcount}++;
+ &{ "$form->{db}_pricelist" };
+
+}
+
+
+sub customer_pricelist {
+
+ @flds = qw(runningnumber id partnumber description sellprice unit partsgroup pricebreak curr validfrom validto);
+
+ $form->{rowcount}--;
+
+ # remove empty rows
+ if ($form->{rowcount}) {
+
+ foreach $i (1 .. $form->{rowcount}) {
+
+ for (qw(pricebreak sellprice)) { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) }
+
+ ($a, $b) = split /\./, $form->{"pricebreak_$i"};
+ $a = length $a;
+ $b = length $b;
+ $whole = ($whole > $a) ? $whole : $a;
+ $dec = ($dec > $b) ? $dec : $b;
+ }
+ $pad1 = '0' x $whole;
+ $pad2 = '0' x $dec;
+
+ foreach $i (1 .. $form->{rowcount}) {
+ ($a, $b) = split /\./, $form->{"pricebreak_$i"};
+
+ $a = substr("$pad1$a", -$whole);
+ $b = substr("$b$pad2", 0, $dec);
+ $ndx{qq|$form->{"partnumber_$i"}_$form->{"id_$i"}_$a$b|} = $i;
+ }
+
+ $i = 1;
+ for (sort keys %ndx) { $form->{"runningnumber_$ndx{$_}"} = $i++ }
+
+ foreach $i (1 .. $form->{rowcount}) {
+ if ($form->{"partnumber_$i"} && $form->{"sellprice_$i"}) {
+ if ($form->{"id_$i"} eq $sameid) {
+ $j = $i + 1;
+ next if ($form->{"id_$j"} eq $sameid && !$form->{"pricebreak_$i"});
+ }
+
+ push @a, {};
+ $j = $#a;
+
+ for (@flds) { $a[$j]->{$_} = $form->{"${_}_$i"} }
+ $count++;
+ }
+ $sameid = $form->{"id_$i"};
+ }
+
+ $form->redo_rows(\@flds, \@a, $count, $form->{rowcount});
+ $form->{rowcount} = $count;
+
+ }
+
+ $form->{rowcount}++;
+
+ if ($form->{display_form}) {
+ &{ "$form->{display_form}" };
+ }
+
+}
+
+
+sub vendor_pricelist {
+
+ @flds = qw(runningnumber id sku partnumber description lastcost unit partsgroup curr leadtime);
+
+ $form->{rowcount}--;
+
+ # remove empty rows
+ if ($form->{rowcount}) {
+
+ foreach $i (1 .. $form->{rowcount}) {
+
+ for (qw(leadtime lastcost)) { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) }
+ $var = ($form->{"partnumber_$i"}) ? $form->{"sku_$i"} : qq|_$form->{"sku_$i"}|;
+ $ndx{$var} = $i;
+
+ }
+
+ $i = 1;
+ for (sort keys %ndx) { $form->{"runningnumber_$ndx{$_}"} = $i++ }
+
+ foreach $i (1 .. $form->{rowcount}) {
+ if ($form->{"sku_$i"}) {
+ push @a, {};
+ $j = $#a;
+
+ for (@flds) { $a[$j]->{$_} = $form->{"${_}_$i"} }
+ $count++;
+ }
+ }
+
+ $form->redo_rows(\@flds, \@a, $count, $form->{rowcount});
+ $form->{rowcount} = $count;
+
+ }
+
+ $form->{rowcount}++;
+
+ if ($form->{display_form}) {
+ &{ "$form->{display_form}" };
+ }
+
+}
+
+
+sub display_pricelist {
+
+ &pricelist_header;
+ delete $form->{action};
+ $form->hide_form;
+ &pricelist_footer;
+
+}
+
+
+sub pricelist_header {
+
+ $form->{title} = $form->{name};
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action="$form->{script}">
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+|;
+
+ if ($form->{db} eq 'customer') {
+ @column_index = qw(partnumber description);
+ push @column_index, "partsgroup" if $form->{selectpartsgroup};
+ push @column_index, qw(pricebreak sellprice curr validfrom validto);
+
+ $column_header{pricebreak} = qq|<th class=listheading nowrap>|.$locale->text('Break').qq|</th>|;
+ $column_header{sellprice} = qq|<th class=listheading nowrap>|.$locale->text('Sell Price').qq|</th>|;
+ $column_header{validfrom} = qq|<th class=listheading nowrap>|.$locale->text('From').qq|</th>|;
+ $column_header{validto} = qq|<th class=listheading nowrap>|.$locale->text('To').qq|</th>|;
+ }
+
+ if ($form->{db} eq 'vendor') {
+ @column_index = qw(sku partnumber description);
+ push @column_index, "partsgroup" if $form->{selectpartsgroup};
+ push @column_index, qw(lastcost curr leadtime);
+
+
+ $column_header{sku} = qq|<th class=listheading nowrap>|.$locale->text('SKU').qq|</th>|;
+ $column_header{leadtime} = qq|<th class=listheading nowrap>|.$locale->text('Leadtime').qq|</th>|;
+ $column_header{lastcost} = qq|<th class=listheading nowrap>|.$locale->text('Cost').qq|</th>|;
+ }
+
+ $column_header{partnumber} = qq|<th class=listheading nowrap>|.$locale->text('Number').qq|</th>|;
+ $column_header{description} = qq|<th class=listheading nowrap width=80%>|.$locale->text('Description').qq|</th>|;
+ $column_header{partsgroup} = qq|<th class=listheading nowrap>|.$locale->text('Group').qq|</th>|;
+ $column_header{curr} = qq|<th class=listheading nowrap>|.$locale->text('Curr').qq|</th>|;
+
+ print qq|
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "\n$column_header{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ $sameid = "";
+ foreach $i (1 .. $form->{rowcount}) {
+
+ $selectcurrency = $form->{selectcurrency};
+ $selectcurrency =~ s/option>\Q$form->{"curr_$i"}\E/option selected>$form->{"curr_$i"}/;
+
+ if ($form->{selectpartsgroup}) {
+ if ($i < $form->{rowcount}) {
+ ($partsgroup) = split /--/, $form->{"partsgroup_$i"};
+ $column_data{partsgroup} = qq|<td>$partsgroup</td>
+ <input type=hidden name="partsgroup_$i" value="|.$form->quote($form->{"partsgroup_$i"}).qq|">|;
+ }
+ }
+
+
+ if ($i < $form->{rowcount}) {
+
+ if ($form->{"id_$i"} eq $sameid) {
+ for (qw(partnumber description partsgroup)) { $column_data{$_} = qq|<td>&nbsp;</td>
+ <input type=hidden name="${_}_$i" value="|.$form->quote($form->{"${_}_$i"}).qq|">| }
+ } else {
+
+ $column_data{sku} = qq|<td><input name="sku_$i" value="$form->{"sku_$i"}"></td>|;
+ $column_data{partnumber} = qq|<td><input name="partnumber_$i" value="$form->{"partnumber_$i"}"></td>|;
+
+ $column_data{description} = qq|<td>$form->{"description_$i"}&nbsp;</td>
+ <input type=hidden name="description_$i" value="|.$form->quote($form->{"description_$i"}).qq|">|;
+
+ }
+
+ $column_data{partnumber} .= qq|
+ <input type=hidden name="id_$i" value="$form->{"id_$i"}">|;
+
+ } else {
+
+ if ($form->{db} eq 'customer') {
+ $column_data{partnumber} = qq|<td><input name="partnumber_$i" value="$form->{"partnumber_$i"}"></td>|;
+ } else {
+ $column_data{partnumber} = qq|<td>&nbsp;</td>|;
+ }
+
+ $column_data{partnumber} .= qq|
+ <input type=hidden name="id_$i" value="$form->{"id_$i"}">|;
+
+ $column_data{sku} = qq|<td><input name="sku_$i" value="$form->{"sku_$i"}"></td>|;
+ $column_data{description} = qq|<td><input name="description_$i" value="$form->{"description_$i"}"></td>|;
+
+ if ($form->{selectpartsgroup}) {
+ $selectpartsgroup = "<option>";
+ foreach $line (split /\n/, $form->{selectpartsgroup}) {
+ $selectpartsgroup .= qq|\n<option value="|.$form->quote($line).qq|">| .(split /--/, $line)[0];
+ }
+ $column_data{partsgroup} = qq|<td><select name="partsgroup_$i">$selectpartsgroup</select></td>|;
+ }
+
+ }
+
+
+ if ($form->{db} eq 'customer') {
+
+ $column_data{pricebreak} = qq|<td align=right><input name="pricebreak_$i" size=5 value=|.$form->format_amount(\%myconfig, $form->{"pricebreak_$i"}).qq|></td>|;
+ $column_data{sellprice} = qq|<td align=right><input name="sellprice_$i" size=10 value=|.$form->format_amount(\%myconfig, $form->{"sellprice_$i"}, 2).qq|></td>|;
+
+ $column_data{validfrom} = qq|<td><input name="validfrom_$i" size=11 value=$form->{"validfrom_$i"}></td>|;
+ $column_data{validto} = qq|<td><input name="validto_$i" size=11 value=$form->{"validto_$i"}></td>|;
+ }
+
+ if ($form->{db} eq 'vendor') {
+ $column_data{leadtime} = qq|<td align=right><input name="leadtime_$i" size=5 value=|.$form->format_amount(\%myconfig, $form->{"leadtime_$i"}).qq|></td>|;
+ $column_data{lastcost} = qq|<td align=right><input name="lastcost_$i" size=10 value=|.$form->format_amount(\%myconfig, $form->{"lastcost_$i"}, 2).qq|></td>|;
+ }
+
+
+ $column_data{curr} = qq|<td><select name="curr_$i">$selectcurrency</select></td>|;
+
+
+ print qq|<tr valign=top>|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|</tr>|;
+
+ $sameid = $form->{"id_$i"};
+
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+ # delete variables
+ foreach $i (1 .. $form->{rowcount}) {
+ for (@column_index, "id") { delete $form->{"${_}_$i"} }
+ }
+ for (qw(title titlebar script none)) { delete $form->{$_} }
+
+}
+
+
+sub pricelist_footer {
+
+# type=submit $locale->text('Update')
+# type=submit $locale->text('Save Pricelist')
+
+ %button = ('Update' => { ndx => 1, key => 'U', value => $locale->text('Update') },
+ 'Save Pricelist' => { ndx => 3, key => 'S', value => $locale->text('Save Pricelist') },
+ );
+
+ for (sort { $button{$a}->{ndx} <=> $button{$b}->{ndx} } keys %button) { $form->print_button(\%button, $_) }
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub update {
+
+ $i = $form->{rowcount};
+ $additem = 0;
+
+ if ($form->{db} eq 'customer') {
+ $additem = 1 if ! (($form->{"partnumber_$i"} eq "") && ($form->{"description_$i"} eq "") && ($form->{"partsgroup_$i"} eq ""));
+ }
+ if ($form->{db} eq 'vendor') {
+ if (! (($form->{"sku_$i"} eq "") && ($form->{"description_$i"} eq "") && ($form->{"partsgroup_$i"} eq ""))) {
+ $additem = 1;
+ $form->{"partnumber_$i"} = $form->{"sku_$i"};
+ }
+ }
+
+ if ($additem) {
+
+ CT->retrieve_item(\%myconfig, \%$form);
+
+ $rows = scalar @{ $form->{item_list} };
+
+ if ($rows > 0) {
+
+ if ($rows > 1) {
+
+ &select_item;
+ exit;
+
+ } else {
+
+ $sellprice = $form->{"sellprice_$i"};
+ $pricebreak = $form->{"pricebreak_$i"};
+ $lastcost = $form->{"lastcost_$i"};
+
+ for (qw(partnumber description)) { $form->{item_list}[0]{$_} = $form->quote($form->{item_list}[0]{$_}) }
+ for (keys %{ $form->{item_list}[0] }) { $form->{"${_}_$i"} = $form->{item_list}[0]{$_} }
+
+ if ($form->{db} eq 'customer') {
+
+ if ($sellprice) {
+ $form->{"sellprice_$i"} = $sellprice;
+ }
+
+ $form->{"sellprice_$i"} = $form->format_amount(\%myconfig, $form->{"sellprice_$i"}, 2);
+
+ $form->{"pricebreak_$i"} = $pricebreak;
+
+ } else {
+
+ foreach $j (1 .. $form->{rowcount} - 1) {
+ if ($form->{"sku_$j"} eq $form->{"partnumber_$i"}) {
+ $form->error($locale->text('Item already on pricelist!'));
+ }
+ }
+
+ if ($lastcost) {
+ $form->{"lastcost_$i"} = $lastcost;
+ }
+
+ $form->{"lastcost_$i"} = $form->format_amount(\%myconfig, $form->{"lastcost_$i"}, 2);
+
+ $form->{"sku_$i"} = $form->{"partnumber_$i"};
+# delete $form->{"partnumber_$i"};
+
+ }
+
+ $form->{rowcount}++;
+
+ }
+
+ } else {
+
+ $form->error($locale->text('Item not on file!'));
+
+ }
+ }
+
+ &{ "$form->{db}_pricelist" };
+
+}
+
+
+
+sub select_item {
+
+ @column_index = qw(ndx partnumber description partsgroup unit sellprice lastcost);
+
+ $column_data{ndx} = qq|<th>&nbsp;</th>|;
+ $column_data{partnumber} = qq|<th class=listheading>|.$locale->text('Number').qq|</th>|;
+ $column_data{description} = qq|<th class=listheading>|.$locale->text('Description').qq|</th>|;
+ $column_data{partsgroup} = qq|<th class=listheading>|.$locale->text('Group').qq|</th>|;
+ $column_data{unit} = qq|<th class=listheading>|.$locale->text('Unit').qq|</th>|;
+ $column_data{sellprice} = qq|<th class=listheading>|.$locale->text('Sell Price').qq|</th>|;
+ $column_data{lastcost} = qq|<th class=listheading>|.$locale->text('Cost').qq|</th>|;
+
+ $form->header;
+
+ $title = $locale->text('Select items');
+
+ print qq|
+<body>
+
+<form method=post action="$form->{script}">
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$title</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$option</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ my $i = 0;
+ foreach $ref (@{ $form->{item_list} }) {
+ $i++;
+
+ for (qw(partnumber description unit)) { $ref->{$_} = $form->quote($ref->{$_}) }
+
+ $column_data{ndx} = qq|<td><input name="ndx_$i" class=checkbox type=checkbox value=$i></td>|;
+
+ for (qw(partnumber description partsgroup unit)) { $column_data{$_} = qq|<td>$ref->{$_}&nbsp;</td>| }
+
+ $column_data{sellprice} = qq|<td align=right>|.$form->format_amount(\%myconfig, $ref->{sellprice}, 2, "&nbsp;").qq|</td>|;
+ $column_data{lastcost} = qq|<td align=right>|.$form->format_amount(\%myconfig, $ref->{lastcost}, 2, "&nbsp;").qq|</td>|;
+
+ $j++; $j %= 2;
+
+ print qq|
+ <tr class=listrow$j>|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ for (qw(partnumber description partsgroup partsgroup_id sellprice lastcost unit id)) {
+ print qq|<input type=hidden name="new_${_}_$i" value="$ref->{$_}">\n|;
+ }
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<input name=lastndx type=hidden value=$i>
+
+|;
+
+ # delete action variable
+ for (qw(nextsub item_list)) { delete $form->{$_} }
+
+ $form->{action} = "item_selected";
+
+ $form->hide_form;
+
+ print qq|
+<input type=hidden name=nextsub value=item_selected>
+
+<br>
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">
+</form>
+
+</body>
+</html>
+|;
+}
+
+
+
+sub item_selected {
+
+ # add rows
+ $i = $form->{rowcount};
+
+ %id = ();
+ for $i (1 .. $form->{rowcount} - 1) {
+ $id{$form->{"id_$i"}} = 1;
+ }
+
+ for $j (1 .. $form->{lastndx}) {
+
+ if ($form->{"ndx_$j"}) {
+
+ if ($id{$form->{"new_id_$j"}}) {
+ next if $form->{db} eq 'vendor';
+ }
+
+ for (qw(id partnumber description unit sellprice lastcost)) {
+ $form->{"${_}_$i"} = $form->{"new_${_}_$j"};
+ }
+
+ $form->{"partsgroup_$i"} = qq|$form->{"new_partsgroup_$j"}--$form->{"new_partsgroup_id_$j"}|;
+ $form->{"sku_$i"} = $form->{"new_partnumber_$j"};
+
+ $i++;
+
+ }
+ }
+
+ $form->{rowcount} = $i;
+
+ # delete all the new_ variables
+ for $i (1 .. $form->{lastndx}) {
+ for (qw(id partnumber description unit sellprice lastcost partsgroup partsgroup_id)) { delete $form->{"new_${_}_$i"} }
+ delete $form->{"ndx_$i"};
+ }
+
+ for (qw(ndx lastndx nextsub)) { delete $form->{$_} }
+
+ &{ "$form->{db}_pricelist" };
+
+}
+
+
+
+
+sub save_pricelist {
+
+ &{ "CT::save_$form->{db}" }("", \%myconfig, \%$form);
+
+ $callback = $form->{callback};
+ $form->{callback} = "$form->{script}?action=edit";
+ for (qw(db id login path sessionid)) { $form->{callback} .= "&$_=$form->{$_}" }
+ $form->{callback} .= "&callback=".$form->escape($callback,1);
+
+ if (CT->save_pricelist(\%myconfig, \%$form)) {
+ $form->redirect;
+ } else {
+ $form->error($locale->text('Could not save pricelist!'));
+ }
+
+}
+
+
+
+sub add_transaction {
+
+ $form->isblank("name", $locale->text("Name missing!"));
+
+ &{ "CT::save_$form->{db}" }("", \%myconfig, \%$form);
+
+ $form->{callback} = $form->escape($form->{callback},1);
+ $name = $form->escape($form->{name},1);
+
+ $form->{callback} = "$form->{script}?login=$form->{login}&path=$form->{path}&sessionid=$form->{sessionid}&action=add&vc=$form->{db}&$form->{db}_id=$form->{id}&$form->{db}=$name&type=$form->{type}&callback=$form->{callback}";
+
+ $form->redirect;
+
+}
+
+sub ap_transaction {
+
+ $form->{script} = "ap.pl";
+ $form->{type} = "ap_transaction";
+ &add_transaction;
+
+}
+
+
+sub ar_transaction {
+
+ $form->{script} = "ar.pl";
+ $form->{type} = "ar_transaction";
+ &add_transaction;
+
+}
+
+
+sub sales_invoice {
+
+ $form->{script} = "is.pl";
+ $form->{type} = "invoice";
+ &add_transaction;
+
+}
+
+
+sub pos {
+
+ $form->{script} = "ps.pl";
+ $form->{type} = "pos_invoice";
+ &add_transaction;
+
+}
+
+
+sub vendor_invoice {
+
+ $form->{script} = "ir.pl";
+ $form->{type} = "invoice";
+ &add_transaction;
+
+}
+
+
+sub rfq {
+
+ $form->{script} = "oe.pl";
+ $form->{type} = "request_quotation";
+ &add_transaction;
+
+}
+
+
+sub quotation {
+
+ $form->{script} = "oe.pl";
+ $form->{type} = "sales_quotation";
+ &add_transaction;
+
+}
+
+
+sub sales_order {
+
+ $form->{script} = "oe.pl";
+ $form->{type} = "sales_order";
+ &add_transaction;
+
+}
+
+
+sub purchase_order {
+
+ $form->{script} = "oe.pl";
+ $form->{type} = "purchase_order";
+ &add_transaction;
+
+}
+
+
+sub save_as_new {
+
+ delete $form->{id};
+ &save;
+
+}
+
+
+sub save {
+
+# $locale->text('Customer saved!')
+# $locale->text('Vendor saved!')
+
+ $msg = ucfirst $form->{db};
+ $msg .= " saved!";
+
+ $form->isblank("name", $locale->text("Name missing!"));
+ &{ "CT::save_$form->{db}" }("", \%myconfig, \%$form);
+
+ $form->redirect($locale->text($msg));
+
+}
+
+
+sub delete {
+
+# $locale->text('Customer deleted!')
+# $locale->text('Cannot delete customer!')
+# $locale->text('Vendor deleted!')
+# $locale->text('Cannot delete vendor!')
+
+ CT->delete(\%myconfig, \%$form);
+
+ $msg = ucfirst $form->{db};
+ $msg .= " deleted!";
+ $form->redirect($locale->text($msg));
+
+}
+
+
+sub continue { &{ $form->{nextsub} } };
+
+sub add_customer { &add };
+sub add_vendor { &add };
+
diff --git a/bin/lynx/gl.pl b/bin/lynx/gl.pl
new file mode 100755
index 00000000..2cd298aa
--- /dev/null
+++ b/bin/lynx/gl.pl
@@ -0,0 +1,1128 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2001
+#
+# Author: DWS Systems Inc.
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+# Contributors:
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#======================================================================
+#
+# Genereal Ledger
+#
+#======================================================================
+
+
+use SL::GL;
+use SL::PE;
+
+require "$form->{path}/arap.pl";
+
+1;
+# end of main
+
+
+# this is for our long dates
+# $locale->text('January')
+# $locale->text('February')
+# $locale->text('March')
+# $locale->text('April')
+# $locale->text('May ')
+# $locale->text('June')
+# $locale->text('July')
+# $locale->text('August')
+# $locale->text('September')
+# $locale->text('October')
+# $locale->text('November')
+# $locale->text('December')
+
+# this is for our short month
+# $locale->text('Jan')
+# $locale->text('Feb')
+# $locale->text('Mar')
+# $locale->text('Apr')
+# $locale->text('May')
+# $locale->text('Jun')
+# $locale->text('Jul')
+# $locale->text('Aug')
+# $locale->text('Sep')
+# $locale->text('Oct')
+# $locale->text('Nov')
+# $locale->text('Dec')
+
+
+sub add {
+
+ $form->{title} = "Add";
+
+ $form->{callback} = "$form->{script}?action=add&transfer=$form->{transfer}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}" unless $form->{callback};
+
+ &create_links;
+
+ $form->{rowcount} = ($form->{transfer}) ? 3 : 9;
+ $form->{oldtransdate} = $form->{transdate};
+ $form->{focus} = "reference";
+
+ # departments
+ if (@{ $form->{all_department} }) {
+ $form->{selectdepartment} = "<option>\n";
+
+ for (@{ $form->{all_department} }) { $form->{selectdepartment} .= qq|<option value="$_->{description}--$_->{id}">$_->{description}\n| }
+ }
+
+ &display_form(1);
+
+}
+
+
+sub edit {
+
+ &create_links;
+
+ $form->{locked} = ($form->{revtrans}) ? '1' : ($form->datetonum(\%myconfig, $form->{transdate}) <= $form->datetonum(\%myconfig, $form->{closedto}));
+
+ # readonly
+ if (! $form->{readonly}) {
+ $form->{readonly} = 1 if $myconfig{acs} =~ /General Ledger--Add Transaction/;
+ }
+
+ $form->{title} = "Edit";
+
+ $i = 1;
+ foreach $ref (@{ $form->{GL} }) {
+ $form->{"accno_$i"} = "$ref->{accno}--$ref->{description}";
+
+ $form->{"projectnumber_$i"} = "$ref->{projectnumber}--$ref->{project_id}";
+ for (qw(fx_transaction source memo)) { $form->{"${_}_$i"} = $ref->{$_} }
+
+ if ($ref->{amount} < 0) {
+ $form->{totaldebit} -= $ref->{amount};
+ $form->{"debit_$i"} = $ref->{amount} * -1;
+ } else {
+ $form->{totalcredit} += $ref->{amount};
+ $form->{"credit_$i"} = $ref->{amount};
+ }
+
+ $i++;
+ }
+
+ $form->{rowcount} = $i;
+ $form->{focus} = "debit_$i";
+
+ &form_header;
+ &display_rows;
+ &form_footer;
+
+}
+
+
+
+sub create_links {
+
+ GL->transaction(\%myconfig, \%$form);
+
+ for (@{ $form->{all_accno} }) { $form->{selectaccno} .= "<option>$_->{accno}--$_->{description}\n" }
+
+ # projects
+ if (@{ $form->{all_project} }) {
+ $form->{selectprojectnumber} = "<option>\n";
+ for (@{ $form->{all_project} }) { $form->{selectprojectnumber} .= qq|<option value="$_->{projectnumber}--$_->{id}">$_->{projectnumber}\n| }
+ }
+
+ # departments
+ if (@{ $form->{all_department} }) {
+ $form->{department} = "$form->{department}--$form->{department_id}";
+ $form->{selectdepartment} = "<option>\n";
+ for (@{ $form->{all_department} }) { $form->{selectdepartment} .= qq|<option value="$_->{description}--$_->{id}">$_->{description}\n| }
+ }
+
+}
+
+
+sub search {
+
+ $form->{title} = $locale->text('General Ledger')." ".$locale->text('Reports');
+
+ $colspan = 5;
+ $form->all_departments(\%myconfig);
+ # departments
+ if (@{ $form->{all_department} }) {
+ $form->{selectdepartment} = "<option>\n";
+ for (@{ $form->{all_department} }) { $form->{selectdepartment} .= qq|<option value="$_->{description}--$_->{id}">$_->{description}\n| }
+
+ $l_department = qq|<input name="l_department" class=checkbox type=checkbox value=Y> |.$locale->text('Department');
+
+ $department = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Department').qq|</th>
+ <td colspan=$colspan><select name=department>$form->{selectdepartment}</select></td>
+ </tr>
+|;
+ }
+
+ if (@{ $form->{all_years} }) {
+ # accounting years
+ $form->{selectaccountingyear} = "<option>\n";
+ for (@{ $form->{all_years} }) { $form->{selectaccountingyear} .= qq|<option>$_\n| }
+ $form->{selectaccountingmonth} = "<option>\n";
+ for (sort keys %{ $form->{all_month} }) { $form->{selectaccountingmonth} .= qq|<option value=$_>|.$locale->text($form->{all_month}{$_}).qq|\n| }
+
+ $selectfrom = qq|
+ <tr>
+ <th align=right>|.$locale->text('Period').qq|</th>
+ <td colspan=$colspan>
+ <select name=month>$form->{selectaccountingmonth}</select>
+ <select name=year>$form->{selectaccountingyear}</select>
+ <input name=interval class=radio type=radio value=0 checked>&nbsp;|.$locale->text('Current').qq|
+ <input name=interval class=radio type=radio value=1>&nbsp;|.$locale->text('Month').qq|
+ <input name=interval class=radio type=radio value=3>&nbsp;|.$locale->text('Quarter').qq|
+ <input name=interval class=radio type=radio value=12>&nbsp;|.$locale->text('Year').qq|
+ </td>
+ </tr>
+|;
+ }
+
+ @a = ();
+ push @a, qq|<input name="l_id" class=checkbox type=checkbox value=Y> |.$locale->text('ID');
+ push @a, qq|<input name="l_transdate" class=checkbox type=checkbox value=Y checked> |.$locale->text('Date');
+ push @a, qq|<input name="l_reference" class=checkbox type=checkbox value=Y checked> |.$locale->text('Reference');
+ push @a, qq|<input name="l_description" class=checkbox type=checkbox value=Y checked> |.$locale->text('Description');
+ push @a, qq|<input name="l_notes" class=checkbox type=checkbox value=Y> |.$locale->text('Notes');
+ push @a, $l_department if $l_department;
+ push @a, qq|<input name="l_debit" class=checkbox type=checkbox value=Y checked> |.$locale->text('Debit');
+ push @a, qq|<input name="l_credit" class=checkbox type=checkbox value=Y checked> |.$locale->text('Credit');
+ push @a, qq|<input name="l_source" class=checkbox type=checkbox value=Y checked> |.$locale->text('Source');
+ push @a, qq|<input name="l_memo" class=checkbox type=checkbox value=Y> |.$locale->text('Memo');
+ push @a, qq|<input name="l_accno" class=checkbox type=checkbox value=Y checked> |.$locale->text('Account');
+ push @a, qq|<input name="l_gifi_accno" class=checkbox type=checkbox value=Y> |.$locale->text('GIFI');
+
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=sort value=transdate>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right>|.$locale->text('Reference').qq|</th>
+ <td><input name=reference size=20></td>
+
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Source').qq|</th>
+ <td><input name=source size=20></td>
+ <th align=right>|.$locale->text('Memo').qq|</th>
+ <td><input name=memo size=20></td>
+ </tr>
+ $department
+ <tr>
+ <th align=right>|.$locale->text('Description').qq|</th>
+ <td colspan=$colspan><input name=description size=60></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Notes').qq|</th>
+ <td colspan=$colspan><input name=notes size=60></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('From').qq|</th>
+ <td><input name=datefrom size=11 title="$myconfig{dateformat}"></td>
+ <th align=right>|.$locale->text('To').qq|</th>
+ <td><input name=dateto size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+ $selectfrom
+ <tr>
+ <th align=right>|.$locale->text('Amount').qq| >=</th>
+ <td><input name=amountfrom size=11></td>
+ <th align=right>|.$locale->text('Amount').qq| <=</th>
+ <td><input name=amountto size=11></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Include in Report').qq|</th>
+ <td colspan=$colspan>
+ <table>
+ <tr>
+ <td>
+ <input name="category" class=radio type=radio value=X checked>&nbsp;|.$locale->text('All').qq|
+ <input name="category" class=radio type=radio value=A>&nbsp;|.$locale->text('Asset').qq|
+ <input name="category" class=radio type=radio value=L>&nbsp;|.$locale->text('Liability').qq|
+ <input name="category" class=radio type=radio value=Q>&nbsp;|.$locale->text('Equity').qq|
+ <input name="category" class=radio type=radio value=I>&nbsp;|.$locale->text('Income').qq|
+ <input name="category" class=radio type=radio value=E>&nbsp;|.$locale->text('Expense').qq|
+ </td>
+ </tr>
+ <tr>
+ <table>
+|;
+
+ while (@a) {
+ print qq|<tr>\n|;
+ for (1 .. 5) {
+ print qq|<td nowrap>|. shift @a;
+ print qq|</td>\n|;
+ }
+ print qq|</tr>\n|;
+ }
+
+ print qq|
+ <tr>
+ <td nowrap><input name="l_subtotal" class=checkbox type=checkbox value=Y> |.$locale->text('Subtotal').qq|</td>
+ </tr>
+ </table>
+ </tr>
+ </table>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<input type=hidden name=nextsub value=generate_report>
+|;
+
+ $form->hide_form(qw(path login sessionid));
+
+ print qq|
+<br>
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">
+</form>
+|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+</body>
+</html>
+|;
+}
+
+
+sub generate_report {
+
+ $form->{sort} = "transdate" unless $form->{sort};
+
+ GL->all_transactions(\%myconfig, \%$form);
+
+ $href = "$form->{script}?action=generate_report&direction=$form->{direction}&oldsort=$form->{oldsort}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}";
+
+ $form->sort_order();
+
+ $callback = "$form->{script}?action=generate_report&direction=$form->{direction}&oldsort=$form->{oldsort}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}";
+
+ %acctype = ( 'A' => $locale->text('Asset'),
+ 'L' => $locale->text('Liability'),
+ 'Q' => $locale->text('Equity'),
+ 'I' => $locale->text('Income'),
+ 'E' => $locale->text('Expense'),
+ );
+
+ $form->{title} = $locale->text('General Ledger');
+
+ $ml = ($form->{category} =~ /(A|E)/) ? -1 : 1;
+
+ unless ($form->{category} eq 'X') {
+ $form->{title} .= " : ".$locale->text($acctype{$form->{category}});
+ }
+ if ($form->{accno}) {
+ $href .= "&accno=".$form->escape($form->{accno});
+ $callback .= "&accno=".$form->escape($form->{accno},1);
+ $option = $locale->text('Account')." : $form->{accno} $form->{account_description}";
+ }
+ if ($form->{gifi_accno}) {
+ $href .= "&gifi_accno=".$form->escape($form->{gifi_accno});
+ $callback .= "&gifi_accno=".$form->escape($form->{gifi_accno},1);
+ $option .= "\n<br>" if $option;
+ $option .= $locale->text('GIFI')." : $form->{gifi_accno} $form->{gifi_account_description}";
+ }
+ if ($form->{source}) {
+ $href .= "&source=".$form->escape($form->{source});
+ $callback .= "&source=".$form->escape($form->{source},1);
+ $option .= "\n<br>" if $option;
+ $option .= $locale->text('Source')." : $form->{source}";
+ }
+ if ($form->{memo}) {
+ $href .= "&memo=".$form->escape($form->{memo});
+ $callback .= "&memo=".$form->escape($form->{memo},1);
+ $option .= "\n<br>" if $option;
+ $option .= $locale->text('Memo')." : $form->{memo}";
+ }
+ if ($form->{reference}) {
+ $href .= "&reference=".$form->escape($form->{reference});
+ $callback .= "&reference=".$form->escape($form->{reference},1);
+ $option .= "\n<br>" if $option;
+ $option .= $locale->text('Reference')." : $form->{reference}";
+ }
+ if ($form->{department}) {
+ $href .= "&department=".$form->escape($form->{department});
+ $callback .= "&department=".$form->escape($form->{department},1);
+ ($department) = split /--/, $form->{department};
+ $option .= "\n<br>" if $option;
+ $option .= $locale->text('Department')." : $department";
+ }
+
+ if ($form->{description}) {
+ $href .= "&description=".$form->escape($form->{description});
+ $callback .= "&description=".$form->escape($form->{description},1);
+ $option .= "\n<br>" if $option;
+ $option .= $locale->text('Description')." : $form->{description}";
+ }
+ if ($form->{notes}) {
+ $href .= "&notes=".$form->escape($form->{notes});
+ $callback .= "&notes=".$form->escape($form->{notes},1);
+ $option .= "\n<br>" if $option;
+ $option .= $locale->text('Notes')." : $form->{notes}";
+ }
+
+ if ($form->{datefrom}) {
+ $href .= "&datefrom=$form->{datefrom}";
+ $callback .= "&datefrom=$form->{datefrom}";
+ $option .= "\n<br>" if $option;
+ $option .= $locale->text('From')." ".$locale->date(\%myconfig, $form->{datefrom}, 1);
+ }
+ if ($form->{dateto}) {
+ $href .= "&dateto=$form->{dateto}";
+ $callback .= "&dateto=$form->{dateto}";
+ if ($form->{datefrom}) {
+ $option .= " ";
+ } else {
+ $option .= "\n<br>" if $option;
+ }
+ $option .= $locale->text('To')." ".$locale->date(\%myconfig, $form->{dateto}, 1);
+ }
+
+ if ($form->{amountfrom}) {
+ $href .= "&amountfrom=$form->{amountfrom}";
+ $callback .= "&amountfrom=$form->{amountfrom}";
+ $option .= "\n<br>" if $option;
+ $option .= $locale->text('Amount')." >= ".$form->format_amount(\%myconfig, $form->{amountfrom}, 2);
+ }
+ if ($form->{amountto}) {
+ $href .= "&amountto=$form->{amountto}";
+ $callback .= "&amountto=$form->{amountto}";
+ if ($form->{amountfrom}) {
+ $option .= " <= ";
+ } else {
+ $option .= "\n<br>" if $option;
+ $option .= $locale->text('Amount')." <= ";
+ }
+ $option .= $form->format_amount(\%myconfig, $form->{amountto}, 2);
+ }
+
+
+ @columns = $form->sort_columns(qw(transdate id reference description notes source memo debit credit accno gifi_accno department));
+ pop @columns if $form->{department};
+
+ if ($form->{link} =~ /_paid/) {
+ @columns = $form->sort_columns(qw(transdate id reference description notes source memo cleared debit credit accno gifi_accno));
+ $form->{l_cleared} = "Y";
+ }
+
+ if ($form->{accno} || $form->{gifi_accno}) {
+ @columns = grep !/(accno|gifi_accno)/, @columns;
+ push @columns, "balance";
+ $form->{l_balance} = "Y";
+ }
+
+
+ foreach $item (@columns) {
+ if ($form->{"l_$item"} eq "Y") {
+ push @column_index, $item;
+
+ # add column to href and callback
+ $callback .= "&l_$item=Y";
+ $href .= "&l_$item=Y";
+ }
+ }
+
+ if ($form->{l_subtotal} eq 'Y') {
+ $callback .= "&l_subtotal=Y";
+ $href .= "&l_subtotal=Y";
+ }
+
+ $callback .= "&category=$form->{category}";
+ $href .= "&category=$form->{category}";
+
+ $column_header{id} = "<th><a class=listheading href=$href&sort=id>".$locale->text('ID')."</a></th>";
+ $column_header{transdate} = "<th><a class=listheading href=$href&sort=transdate>".$locale->text('Date')."</a></th>";
+ $column_header{reference} = "<th><a class=listheading href=$href&sort=reference>".$locale->text('Reference')."</a></th>";
+ $column_header{source} = "<th><a class=listheading href=$href&sort=source>".$locale->text('Source')."</a></th>";
+ $column_header{memo} = "<th><a class=listheading href=$href&sort=memo>".$locale->text('Memo')."</a></th>";
+ $column_header{description} = "<th><a class=listheading href=$href&sort=description>".$locale->text('Description')."</a></th>";
+ $column_header{department} = "<th><a class=listheading href=$href&sort=department>".$locale->text('Department')."</a></th>";
+ $column_header{notes} = "<th class=listheading>".$locale->text('Notes')."</th>";
+ $column_header{debit} = "<th class=listheading>".$locale->text('Debit')."</th>";
+ $column_header{credit} = "<th class=listheading>".$locale->text('Credit')."</th>";
+ $column_header{accno} = "<th><a class=listheading href=$href&sort=accno>".$locale->text('Account')."</a></th>";
+ $column_header{gifi_accno} = "<th><a class=listheading href=$href&sort=gifi_accno>".$locale->text('GIFI')."</a></th>";
+ $column_header{balance} = "<th>".$locale->text('Balance')."</th>";
+ $column_header{cleared} = qq|<th>|.$locale->text('R').qq|</th>|;
+
+ $form->header;
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$option</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "$column_header{$_}\n" }
+
+ print "
+ </tr>
+";
+
+ # add sort to callback
+ $form->{callback} = "$callback&sort=$form->{sort}";
+ $callback = $form->escape($form->{callback});
+
+ $cml = 1;
+ # initial item for subtotals
+ if (@{ $form->{GL} }) {
+ $sameitem = $form->{GL}->[0]->{$form->{sort}};
+ $cml = -1 if $form->{contra};
+ }
+
+ if (($form->{accno} || $form->{gifi_accno}) && $form->{balance}) {
+
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+ $column_data{balance} = "<td align=right>".$form->format_amount(\%myconfig, $form->{balance} * $ml * $cml, 2, 0)."</td>";
+
+ $i++; $i %= 2;
+ print qq|
+ <tr class=listrow$i>
+|;
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+ }
+
+ # reverse href
+ $direction = ($form->{direction} eq 'ASC') ? "ASC" : "DESC";
+ $form->sort_order();
+ $href =~ s/direction=$form->{direction}/direction=$direction/;
+
+ $i = 0;
+ foreach $ref (@{ $form->{GL} }) {
+
+ # if item ne sort print subtotal
+ if ($form->{l_subtotal} eq 'Y') {
+ if ($sameitem ne $ref->{$form->{sort}}) {
+ &gl_subtotal;
+ }
+ }
+
+ $form->{balance} += $ref->{amount};
+
+ $subtotaldebit += $ref->{debit};
+ $subtotalcredit += $ref->{credit};
+
+ $totaldebit += $ref->{debit};
+ $totalcredit += $ref->{credit};
+
+ $ref->{debit} = $form->format_amount(\%myconfig, $ref->{debit}, 2, "&nbsp;");
+ $ref->{credit} = $form->format_amount(\%myconfig, $ref->{credit}, 2, "&nbsp;");
+
+ for (qw(id transdate)) { $column_data{$_} = "<td>$ref->{$_}</td>" }
+
+ $column_data{reference} = "<td><a href=$ref->{module}.pl?action=edit&id=$ref->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{reference}</td>";
+
+ $ref->{notes} =~ s/\r?\n/<br>/g;
+ for (qw(description source memo notes department)) { $column_data{$_} = "<td>$ref->{$_}&nbsp;</td>" }
+
+ $column_data{debit} = "<td align=right>$ref->{debit}</td>";
+ $column_data{credit} = "<td align=right>$ref->{credit}</td>";
+
+ $column_data{accno} = "<td><a href=$href&accno=$ref->{accno}&callback=$callback>$ref->{accno}</a></td>";
+ $column_data{gifi_accno} = "<td><a href=$href&gifi_accno=$ref->{gifi_accno}&callback=$callback>$ref->{gifi_accno}</a>&nbsp;</td>";
+ $column_data{balance} = "<td align=right>".$form->format_amount(\%myconfig, $form->{balance} * $ml * $cml, 2, 0)."</td>";
+ $column_data{cleared} = ($ref->{cleared}) ? "<td>*</td>" : "<td>&nbsp;</td>";
+
+ if ($ref->{id} != $sameid) {
+ $i++; $i %= 2;
+ }
+ print "
+ <tr class=listrow$i>";
+ for (@column_index) { print "$column_data{$_}\n" }
+ print "</tr>";
+
+ $sameid = $ref->{id};
+ }
+
+
+ &gl_subtotal if ($form->{l_subtotal} eq 'Y');
+
+
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $column_data{debit} = "<th align=right class=listtotal>".$form->format_amount(\%myconfig, $totaldebit, 2, "&nbsp;")."</th>";
+ $column_data{credit} = "<th align=right class=listtotal>".$form->format_amount(\%myconfig, $totalcredit, 2, "&nbsp;")."</th>";
+ $column_data{balance} = "<th align=right class=listtotal>".$form->format_amount(\%myconfig, $form->{balance} * $ml * $cml, 2, 0)."</th>";
+
+ print qq|
+ <tr class=listtotal>
+|;
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ $i = 1;
+ if ($myconfig{acs} !~ /General Ledger--General Ledger/) {
+ $button{'General Ledger--Add Transaction'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('GL Transaction').qq|"> |;
+ $button{'General Ledger--Add Transaction'}{order} = $i++;
+ }
+ if ($myconfig{acs} !~ /AR--AR/) {
+ $button{'AR--Add Transaction'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('AR Transaction').qq|"> |;
+ $button{'AR--Add Transaction'}{order} = $i++;
+ $button{'AR--Sales Invoice'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Sales Invoice ').qq|"> |;
+ $button{'AR--Sales Invoice'}{order} = $i++;
+ }
+ if ($myconfig{acs} !~ /AP--AP/) {
+ $button{'AP--Add Transaction'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('AP Transaction').qq|"> |;
+ $button{'AP--Add Transaction'}{order} = $i++;
+ $button{'AP--Vendor Invoice'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Vendor Invoice ').qq|"> |;
+ $button{'AP--Vendor Invoice'}{order} = $i++;
+ }
+
+ foreach $item (split /;/, $myconfig{acs}) {
+ delete $button{$item};
+ }
+
+ print qq|
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+
+<form method=post action=$form->{script}>
+|;
+
+ $form->hide_form(qw(callback path login sessionid));
+
+ foreach $item (sort { $a->{order} <=> $b->{order} } %button) {
+ print $item->{code};
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub gl_subtotal {
+
+ $subtotaldebit = $form->format_amount(\%myconfig, $subtotaldebit, 2, "&nbsp;");
+ $subtotalcredit = $form->format_amount(\%myconfig, $subtotalcredit, 2, "&nbsp;");
+
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $column_data{debit} = "<th align=right class=listsubtotal>$subtotaldebit</td>";
+ $column_data{credit} = "<th align=right class=listsubtotal>$subtotalcredit</td>";
+
+
+ print "<tr class=listsubtotal>";
+ for (@column_index) { print "$column_data{$_}\n" }
+ print "</tr>";
+
+ $subtotaldebit = 0;
+ $subtotalcredit = 0;
+
+ $sameitem = $ref->{$form->{sort}};
+
+}
+
+
+sub update {
+
+ if ($form->{transdate} ne $form->{oldtransdate}) {
+ if ($form->{selectprojectnumber}) {
+ $form->all_projects(\%myconfig, undef, $form->{transdate});
+ if (@{ $form->{all_project} }) {
+ $form->{selectprojectnumber} = "<option>\n";
+ for (@{ $form->{all_project} }) { $form->{selectprojectnumber} .= qq|<option value="$_->{projectnumber}--$_->{id}">$_->{projectnumber}\n| }
+ $form->{selectprojectnumber} = $form->escape($form->{selectprojectnumber},1);
+ }
+ }
+ $form->{oldtransdate} = $form->{transdate};
+ }
+
+ @a = ();
+ $count = 0;
+ @flds = qw(accno debit credit projectnumber fx_transaction source memo);
+
+ for $i (1 .. $form->{rowcount}) {
+ unless (($form->{"debit_$i"} eq "") && ($form->{"credit_$i"} eq "")) {
+ for (qw(debit credit)) { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) }
+
+ push @a, {};
+ $j = $#a;
+
+ for (@flds) { $a[$j]->{$_} = $form->{"${_}_$i"} }
+ $count++;
+ }
+ }
+
+
+ for $i (1 .. $count) {
+ $j = $i - 1;
+ for (@flds) { $form->{"${_}_$i"} = $a[$j]->{$_} }
+ }
+
+ for $i ($count + 1 .. $form->{rowcount}) {
+ for (@flds) { delete $form->{"${_}_$i"} }
+ }
+
+ $form->{rowcount} = $count + 1;
+
+ &display_form;
+
+}
+
+
+sub display_form {
+ my ($init) = @_;
+
+ &form_header;
+ &display_rows($init);
+ &form_footer;
+
+}
+
+
+sub display_rows {
+ my ($init) = @_;
+
+ $form->{selectprojectnumber} = $form->unescape($form->{selectprojectnumber}) if $form->{selectprojectnumber};
+
+ $form->{totaldebit} = 0;
+ $form->{totalcredit} = 0;
+
+ for $i (1 .. $form->{rowcount}) {
+
+ $source = qq|
+ <td><input name="source_$i" size=10 value="$form->{"source_$i"}"></td>|;
+ $memo = qq|
+ <td><input name="memo_$i" value="$form->{"memo_$i"}"></td>|;
+
+ if ($init) {
+ $accno = qq|
+ <td><select name="accno_$i">$form->{selectaccno}</select></td>|;
+
+ if ($form->{selectprojectnumber}) {
+ $project = qq|
+ <td><select name="projectnumber_$i">$form->{selectprojectnumber}</select></td>|;
+ }
+
+ if ($form->{transfer}) {
+ $fx_transaction = qq|
+ <td><input name="fx_transaction_$i" class=checkbox type=checkbox value=1></td>
+ |;
+ }
+
+ } else {
+
+ $form->{totaldebit} += $form->{"debit_$i"};
+ $form->{totalcredit} += $form->{"credit_$i"};
+
+ for (qw(debit credit)) { $form->{"${_}_$i"} = ($form->{"${_}_$i"}) ? $form->format_amount(\%myconfig, $form->{"${_}_$i"}, 2) : "" }
+
+ if ($i < $form->{rowcount}) {
+
+ $accno = qq|<td>$form->{"accno_$i"}</td>|;
+
+ if ($form->{selectprojectnumber}) {
+ $form->{"projectnumber_$i"} = "" if $form->{selectprojectnumber} !~ /$form->{"projectnumber_$i"}/;
+
+ $project = $form->{"projectnumber_$i"};
+ $project =~ s/--.*//;
+ $project = qq|<td>$project</td>|;
+ }
+
+ if ($form->{transfer}) {
+ $checked = ($form->{"fx_transaction_$i"}) ? "1" : "";
+ $x = ($checked) ? "x" : "";
+ $fx_transaction = qq|
+ <td><input type=hidden name="fx_transaction_$i" value="$checked">$x</td>
+ |;
+ }
+
+ $form->hide_form("accno_$i", "projectnumber_$i");
+
+ } else {
+
+ $accno = qq|
+ <td><select name="accno_$i">$form->{selectaccno}</select></td>|;
+
+ if ($form->{selectprojectnumber}) {
+ $project = qq|
+ <td><select name="projectnumber_$i">$form->{selectprojectnumber}</select></td>|;
+ }
+
+ if ($form->{transfer}) {
+ $fx_transaction = qq|
+ <td><input name="fx_transaction_$i" class=checkbox type=checkbox value=1></td>
+ |;
+ }
+ }
+ }
+
+ print qq|<tr valign=top>
+ $accno
+ $fx_transaction
+ <td><input name="debit_$i" size=12 value="$form->{"debit_$i"}" accesskey=$i></td>
+ <td><input name="credit_$i" size=12 value=$form->{"credit_$i"}></td>
+ $source
+ $memo
+ $project
+ </tr>
+
+ |;
+ }
+
+ $form->hide_form(qw(rowcount selectaccno));
+
+ print qq|
+<input type=hidden name=selectprojectnumber value="|.$form->escape($form->{selectprojectnumber},1).qq|">|;
+
+}
+
+
+sub form_header {
+
+ $title = $form->{title};
+ if ($form->{transfer}) {
+ $form->{title} = $locale->text("$title Cash Transfer Transaction");
+ } else {
+ $form->{title} = $locale->text("$title General Ledger Transaction");
+ }
+
+# $locale->text('Add Cash Transfer Transaction')
+# $locale->text('Edit Cash Transfer Transaction')
+# $locale->text('Add General Ledger Transaction')
+# $locale->text('Edit General Ledger Transaction')
+
+
+ $form->{selectdepartment} = $form->unescape($form->{selectdepartment});
+ $form->{selectdepartment} =~ s/ selected//;
+ $form->{selectdepartment} =~ s/(<option value="\Q$form->{department}\E")/$1 selected/;
+
+ for (qw(reference description notes)) { $form->{$_} = $form->quote($form->{$_}) }
+
+ if (($rows = $form->numtextrows($form->{description}, 50)) > 1) {
+ $description = qq|<textarea name=description rows=$rows cols=50 wrap=soft>$form->{description}</textarea>|;
+ } else {
+ $description = qq|<input name=description size=50 value="$form->{description}">|;
+ }
+
+ if (($rows = $form->numtextrows($form->{notes}, 50)) > 1) {
+ $notes = qq|<textarea name=notes rows=$rows cols=50 wrap=soft>$form->{notes}</textarea>|;
+ } else {
+ $notes = qq|<input name=notes size=50 value="$form->{notes}">|;
+ }
+
+ $department = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Department').qq|</th>
+ <td><select name=department>$form->{selectdepartment}</select></td>
+ <input type=hidden name=selectdepartment value="|.$form->escape($form->{selectdepartment},1).qq|">
+ </tr>
+| if $form->{selectdepartment};
+
+ $project = qq|
+ <th class=listheading>|.$locale->text('Project').qq|</th>
+| if $form->{selectprojectnumber};
+
+ if ($form->{transfer}) {
+ $fx_transaction = qq|
+ <th class=listheading>|.$locale->text('FX').qq|</th>
+|;
+ }
+
+ $focus = ($form->{focus}) ? $form->{focus} : "debit_$form->{rowcount}";
+
+ $form->header;
+
+ print qq|
+<body onload="document.forms[0].${focus}.focus()" />
+
+<form method=post action=$form->{script}>
+|;
+
+ $form->hide_form(qw(id transfer selectaccno closedto locked oldtransdate recurring));
+
+ print qq|
+<input type=hidden name=title value="$title">
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right>|.$locale->text('Reference').qq|</th>
+ <td><input name=reference size=20 value="$form->{reference}"></td>
+ <th align=right>|.$locale->text('Date').qq|</th>
+ <td><input name=transdate size=11 title="$myconfig{dateformat}" value=$form->{transdate}></td>
+ </tr>
+ $department
+ <tr>
+ <th align=right>|.$locale->text('Description').qq|</th>
+ <td colspan=3>$description</td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Notes').qq|</th>
+ <td colspan=3>$notes</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+ <th class=listheading>|.$locale->text('Account').qq|</th>
+ $fx_transaction
+ <th class=listheading>|.$locale->text('Debit').qq|</th>
+ <th class=listheading>|.$locale->text('Credit').qq|</th>
+ <th class=listheading>|.$locale->text('Source').qq|</th>
+ <th class=listheading>|.$locale->text('Memo').qq|</th>
+ $project
+ </tr>
+|;
+
+}
+
+
+sub form_footer {
+
+ for (qw(totaldebit totalcredit)) { $form->{$_} = $form->format_amount(\%myconfig, $form->{$_}, 2, "&nbsp;") }
+
+
+ $project = qq|
+ <th>&nbsp;</th>
+| if $form->{selectprojectnumber};
+
+ if ($form->{transfer}) {
+ $fx_transaction = qq|
+ <th>&nbsp;</th>
+|;
+ }
+
+ print qq|
+ <tr class=listtotal>
+ <th>&nbsp;</th>
+ $fx_transaction
+ <th class=listtotal align=right>$form->{totaldebit}</th>
+ <th class=listtotal align=right>$form->{totalcredit}</th>
+ <th>&nbsp;</th>
+ <th>&nbsp;</th>
+ $project
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+ $form->hide_form(qw(path login sessionid callback));
+
+ $transdate = $form->datetonum(\%myconfig, $form->{transdate});
+ $closedto = $form->datetonum(\%myconfig, $form->{closedto});
+
+# type=submit $locale->text('Update')
+# type=submit $locale->text('Post')
+# type=submit $locale->text('Schedule')
+# type=submit $locale->text('Post as new')
+# type=submit $locale->text('Delete')
+
+ if (! $form->{readonly}) {
+
+ %button = ('Update' => { ndx => 1, key => 'U', value => $locale->text('Update') },
+ 'Post' => { ndx => 3, key => 'O', value => $locale->text('Post') },
+ 'Post as new' => { ndx => 6, key => 'N', value => $locale->text('Post as new') },
+ 'Schedule' => { ndx => 7, key => 'H', value => $locale->text('Schedule') },
+ 'Delete' => { ndx => 8, key => 'D', value => $locale->text('Delete') },
+ );
+
+ %a = ();
+
+ if ($form->{id}) {
+ for ('Update', 'Post as new', 'Schedule') { $a{$_} = 1 }
+
+ if (! $form->{locked}) {
+ if ($transdate > $closedto) {
+ for ('Post', 'Delete') { $a{$_} = 1 }
+ }
+ }
+
+ } else {
+ if ($transdate > $closedto) {
+ for ("Update", "Post", "Schedule") { $a{$_} = 1 }
+ }
+ }
+
+ for (keys %button) { delete $button{$_} if ! $a{$_} }
+ for (sort { $button{$a}->{ndx} <=> $button{$b}->{ndx} } keys %button) { $form->print_button(\%button, $_) }
+
+ }
+
+ if ($form->{recurring}) {
+ print qq|<div align=right>|.$locale->text('Scheduled').qq|</div>|;
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub delete {
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+|;
+
+ delete $form->{action};
+
+ $form->hide_form;
+
+ print qq|
+<h2 class=confirm>|.$locale->text('Confirm!').qq|</h2>
+
+<h4>|.$locale->text('Are you sure you want to delete Transaction').qq| $form->{reference}</h4>
+
+<input name=action class=submit type=submit value="|.$locale->text('Yes').qq|">
+</form>
+|;
+
+}
+
+
+sub yes {
+
+ if (GL->delete_transaction(\%myconfig, \%$form)) {
+ $form->redirect($locale->text('Transaction deleted!'));
+ } else {
+ $form->error($locale->text('Cannot delete transaction!'));
+ }
+
+}
+
+
+sub post {
+
+ $form->isblank("transdate", $locale->text('Transaction Date missing!'));
+
+ $transdate = $form->datetonum(\%myconfig, $form->{transdate});
+ $closedto = $form->datetonum(\%myconfig, $form->{closedto});
+
+ $form->error($locale->text('Cannot post transaction for a closed period!')) if ($transdate <= $closedto);
+
+ # add up debits and credits
+ for $i (1 .. $form->{rowcount}) {
+ $dr = $form->parse_amount(\%myconfig, $form->{"debit_$i"});
+ $cr = $form->parse_amount(\%myconfig, $form->{"credit_$i"});
+
+ if ($dr && $cr) {
+ $form->error($locale->text('Cannot post transaction with a debit and credit entry for the same account!'));
+ }
+ $debit += $dr;
+ $credit += $cr;
+ }
+
+ if ($form->round_amount($debit, 2) != $form->round_amount($credit, 2)) {
+ $form->error($locale->text('Out of balance transaction!'));
+ }
+
+ if (! $form->{repost}) {
+ if ($form->{id}) {
+ &repost;
+ exit;
+ }
+ }
+
+ if (GL->post_transaction(\%myconfig, \%$form)) {
+ $form->redirect($locale->text('Transaction posted!'));
+ } else {
+ $form->error($locale->text('Cannot post transaction!'));
+ }
+
+}
+
+
diff --git a/bin/lynx/hr.pl b/bin/lynx/hr.pl
new file mode 100755
index 00000000..9b86d86b
--- /dev/null
+++ b/bin/lynx/hr.pl
@@ -0,0 +1,1246 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2004
+#
+# Author: DWS Systems Inc.
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#======================================================================
+#
+# payroll module
+#
+#======================================================================
+
+use SL::HR;
+use SL::User;
+
+1;
+# end of main
+
+
+
+sub add {
+
+ $label = "Add ".ucfirst $form->{db};
+ $form->{title} = $locale->text($label);
+
+ $form->{callback} = "$form->{script}?action=add&db=$form->{db}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}" unless $form->{callback};
+
+ &{ "$form->{db}_links" };
+
+}
+
+
+sub search { &{ "search_$form->{db}" } };
+
+
+sub search_employee {
+
+ $form->{title} = $locale->text('Employees');
+
+ @a = ();
+
+ push @a, qq|<input name="l_ndx" type=checkbox class=checkbox value=Y> |.$locale->text('Pos');
+ push @a, qq|<input name="l_id" type=checkbox class=checkbox value=Y> |.$locale->text('ID');
+ push @a, qq|<input name="l_employeenumber" type=checkbox class=checkbox value=Y checked> |.$locale->text('Employee Number');
+ push @a, qq|<input name="l_name" type=checkbox class=checkbox value=Y checked> |.$locale->text('Employee Name');
+ push @a, qq|<input name="l_address" type=checkbox class=checkbox value=Y> |.$locale->text('Address');
+ push @a, qq|<input name="l_city" type=checkbox class=checkbox value=Y> |.$locale->text('City');
+ push @a, qq|<input name="l_state" type=checkbox class=checkbox value=Y> |.$locale->text('State/Province');
+ push @a, qq|<input name="l_zipcode" type=checkbox class=checkbox value=Y> |.$locale->text('Zip/Postal Code');
+ push @a, qq|<input name="l_country" type=checkbox class=checkbox value=Y> |.$locale->text('Country');
+ push @a, qq|<input name="l_workphone" type=checkbox class=checkbox value=Y checked> |.$locale->text('Work Phone');
+ push @a, qq|<input name="l_homephone" type=checkbox class=checkbox value=Y checked> |.$locale->text('Home Phone');
+ push @a, qq|<input name="l_startdate" type=checkbox class=checkbox value=Y checked> |.$locale->text('Startdate');
+ push @a, qq|<input name="l_enddate" type=checkbox class=checkbox value=Y checked> |.$locale->text('Enddate');
+ push @a, qq|<input name="l_sales" type=checkbox class=checkbox value=Y> |.$locale->text('Sales');
+ push @a, qq|<input name="l_manager" type=checkbox class=checkbox value=Y> |.$locale->text('Manager');
+ push @a, qq|<input name="l_role" type=checkbox class=checkbox value=Y checked> |.$locale->text('Role');
+ push @a, qq|<input name="l_login" type=checkbox class=checkbox value=Y checked> |.$locale->text('Login');
+ push @a, qq|<input name="l_email" type=checkbox class=checkbox value=Y> |.$locale->text('E-mail');
+ push @a, qq|<input name="l_ssn" type=checkbox class=checkbox value=Y> |.$locale->text('SSN');
+ push @a, qq|<input name="l_dob" type=checkbox class=checkbox value=Y> |.$locale->text('DOB');
+ push @a, qq|<input name="l_iban" type=checkbox class=checkbox value=Y> |.$locale->text('IBAN');
+ push @a, qq|<input name="l_bic" type=checkbox class=checkbox value=Y> |.$locale->text('BIC');
+ push @a, qq|<input name="l_notes" type=checkbox class=checkbox value=Y> |.$locale->text('Notes');
+
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Employee Number').qq|</th>
+ <td colspan=3><input name=employeenumber size=20></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Employee Name').qq|</th>
+ <td colspan=3><input name=name size=35></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Startdate').qq|</th>
+ <td>|.$locale->text('From').qq| <input name=startdatefrom size=11 title="$myconfig{dateformat}"> |.$locale->text('To').qq| <input name=startdateto size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+ <tr valign=top>
+ <th align=right nowrap>|.$locale->text('Notes').qq|</th>
+ <td colspan=3><input name=notes size=40></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan=3><input name=status class=radio type=radio value=all checked>&nbsp;|.$locale->text('All').qq|
+ <input name=status class=radio type=radio value=active>&nbsp;|.$locale->text('Active').qq|
+ <input name=status class=radio type=radio value=inactive>&nbsp;|.$locale->text('Inactive').qq|
+ <input name=status class=radio type=radio value=orphaned>&nbsp;|.$locale->text('Orphaned').qq|
+ <input name=sales class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Sales').qq|
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Include in Report').qq|</th>
+ <td colspan=3>
+ <table>
+|;
+
+ while (@a) {
+ print qq|<tr>\n|;
+ for (1 .. 5) {
+ print qq|<td nowrap>|. shift @a;
+ print qq|</td>\n|;
+ }
+ print qq|</tr>\n|;
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<input type=hidden name=nextsub value=list_employees>
+|;
+
+ $form->hide_form(qw(db path login sessionid));
+
+ print qq|
+<br>
+<input type=submit class=submit name=action value="|.$locale->text('Continue').qq|">
+</form>
+|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+</body>
+</html>
+|;
+}
+
+
+sub list_employees {
+
+ HR->employees(\%myconfig, \%$form);
+
+ $href = "$form->{script}?action=list_employees&direction=$form->{direction}&oldsort=$form->{oldsort}&db=$form->{db}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&status=$form->{status}";
+
+ $form->sort_order();
+
+ $callback = "$form->{script}?action=list_employees&direction=$form->{direction}&oldsort=$form->{oldsort}&db=$form->{db}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&status=$form->{status}";
+
+ @columns = $form->sort_columns(qw(id employeenumber name address city state zipcode country workphone homephone email startdate enddate ssn dob iban bic sales role manager login notes));
+ unshift @columns, "ndx";
+
+ foreach $item (@columns) {
+ if ($form->{"l_$item"} eq "Y") {
+ push @column_index, $item;
+
+ # add column to href and callback
+ $callback .= "&l_$item=Y";
+ $href .= "&l_$item=Y";
+ }
+ }
+
+ %role = ( user => $locale->text('User'),
+ supervisor => $locale->text('Supervisor'),
+ manager => $locale->text('Manager'),
+ admin => $locale->text('Administrator')
+ );
+
+ $option = $locale->text('All');
+
+ if ($form->{status} eq 'sales') {
+ $option = $locale->text('Sales');
+ }
+ if ($form->{status} eq 'orphaned') {
+ $option = $locale->text('Orphaned');
+ }
+ if ($form->{status} eq 'active') {
+ $option = $locale->text('Active');
+ }
+ if ($form->{status} eq 'inactive') {
+ $option = $locale->text('Inactive');
+ }
+
+ if ($form->{employeenumber}) {
+ $callback .= "&employeenumber=".$form->escape($form->{employeenumber},1);
+ $href .= "&employeenumber=".$form->escape($form->{employeenumber});
+ $option .= "\n<br>".$locale->text('Employee Number')." : $form->{employeenumber}";
+ }
+ if ($form->{name}) {
+ $callback .= "&name=".$form->escape($form->{name},1);
+ $href .= "&name=".$form->escape($form->{name});
+ $option .= "\n<br>".$locale->text('Employee Name')." : $form->{name}";
+ }
+ if ($form->{startdatefrom}) {
+ $callback .= "&startdatefrom=$form->{startdatefrom}";
+ $href .= "&startdatefrom=$form->{startdatefrom}";
+ $fromdate = $locale->date(\%myconfig, $form->{startdatefrom}, 1);
+ }
+ if ($form->{startdateto}) {
+ $callback .= "&startdateto=$form->{startdateto}";
+ $href .= "&startdateto=$form->{startdateto}";
+ $todate = $locale->date(\%myconfig, $form->{startdateto}, 1);
+ }
+ if ($fromdate || $todate) {
+ $option .= "\n<br>".$locale->text('Startdate')." $fromdate - $todate";
+ }
+
+ if ($form->{notes}) {
+ $callback .= "&notes=".$form->escape($form->{notes},1);
+ $href .= "&notes=".$form->escape($form->{notes});
+ $option .= "\n<br>" if $option;
+ $option .= $locale->text('Notes')." : $form->{notes}";
+ }
+
+ $form->{callback} = "$callback&sort=$form->{sort}";
+ $callback = $form->escape($form->{callback});
+
+ $column_header{ndx} = qq|<th class=listheading>&nbsp;</th>|;
+ $column_header{id} = qq|<th class=listheading>|.$locale->text('ID').qq|</th>|;
+ $column_header{employeenumber} = qq|<th><a class=listheading href=$href&sort=employeenumber>|.$locale->text('Number').qq|</a></th>|;
+ $column_header{name} = qq|<th><a class=listheading href=$href&sort=name>|.$locale->text('Name').qq|</a></th>|;
+ $column_header{manager} = qq|<th><a class=listheading href=$href&sort=manager>|.$locale->text('Manager').qq|</a></th>|;
+ $column_header{address} = qq|<th class=listheading>|.$locale->text('Address').qq|</a></th>|;
+ $column_header{city} = qq|<th><a class=listheading href=$href&sort=city>|.$locale->text('City').qq|</a></th>|;
+ $column_header{state} = qq|<th><a class=listheading href=$href&sort=state>|.$locale->text('State/Province').qq|</a></th>|;
+ $column_header{zipcode} = qq|<th><a class=listheading href=$href&sort=zipcode>|.$locale->text('Zip/Postal Code').qq|</a></th>|;
+ $column_header{country} = qq|<th><a class=listheading href=$href&sort=country>|.$locale->text('Country').qq|</a></th>|;
+ $column_header{workphone} = qq|<th><a class=listheading href=$href&sort=workphone>|.$locale->text('Work Phone').qq|</a></th>|;
+ $column_header{homephone} = qq|<th><a class=listheading href=$href&sort=homephone>|.$locale->text('Home Phone').qq|</a></th>|;
+
+ $column_header{startdate} = qq|<th><a class=listheading href=$href&sort=startdate>|.$locale->text('Startdate').qq|</a></th>|;
+ $column_header{enddate} = qq|<th><a class=listheading href=$href&sort=enddate>|.$locale->text('Enddate').qq|</a></th>|;
+ $column_header{notes} = qq|<th><a class=listheading href=$href&sort=notes>|.$locale->text('Notes').qq|</a></th>|;
+ $column_header{role} = qq|<th><a class=listheading href=$href&sort=role>|.$locale->text('Role').qq|</a></th>|;
+ $column_header{login} = qq|<th><a class=listheading href=$href&sort=login>|.$locale->text('Login').qq|</a></th>|;
+
+ $column_header{sales} = qq|<th class=listheading>|.$locale->text('S').qq|</th>|;
+ $column_header{email} = qq|<th><a class=listheading href=$href&sort=email>|.$locale->text('E-mail').qq|</a></th>|;
+ $column_header{ssn} = qq|<th><a class=listheading href=$href&sort=ssn>|.$locale->text('SSN').qq|</a></th>|;
+ $column_header{dob} = qq|<th><a class=listheading href=$href&sort=dob>|.$locale->text('DOB').qq|</a></th>|;
+ $column_header{iban} = qq|<th><a class=listheading href=$href&sort=iban>|.$locale->text('IBAN').qq|</a></th>|;
+ $column_header{bic} = qq|<th><a class=listheading href=$href&sort=bic>|.$locale->text('BIC').qq|</a></th>|;
+
+ $form->{title} = $locale->text('Employees');
+
+ $form->header;
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$option</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "$column_header{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ $i = 0;
+ foreach $ref (@{ $form->{all_employee} }) {
+
+ $i++;
+
+ $ref->{notes} =~ s/\r?\n/<br>/g;
+ for (@column_index) { $column_data{$_} = "<td>$ref->{$_}&nbsp;</td>" }
+
+ $column_data{ndx} = "<td align=right>$i</td>";
+
+ $column_data{sales} = ($ref->{sales}) ? "<td>x</td>" : "<td>&nbsp;</td>";
+ $column_data{role} = qq|<td>$role{"$ref->{role}"}&nbsp;</td>|;
+ $column_date{address} = qq|$ref->{address1} $ref->{address2}|;
+
+ $column_data{name} = "<td><a href=$form->{script}?action=edit&db=employee&id=$ref->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&status=$form->{status}&callback=$callback>$ref->{name}&nbsp;</td>";
+
+ if ($ref->{email}) {
+ $email = $ref->{email};
+ $email =~ s/</\&lt;/;
+ $email =~ s/>/\&gt;/;
+
+ $column_data{email} = qq|<td><a href="mailto:$ref->{email}">$email</a></td>|;
+ }
+
+ $j++; $j %= 2;
+ print "
+ <tr class=listrow$j>
+";
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ }
+
+ $i = 1;
+ $button{'HR--Employees--Add Employee'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Add Employee').qq|"> |;
+ $button{'HR--Employees--Add Employee'}{order} = $i++;
+
+ foreach $item (split /;/, $myconfig{acs}) {
+ delete $button{$item};
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+<form method=post action=$form->{script}>
+|;
+
+ $form->hide_form(qw(callback db path login sessionid));
+
+ foreach $item (sort { $a->{order} <=> $b->{order} } %button) {
+ print $item->{code};
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub edit {
+
+# $locale->text('Edit Employee')
+# $locale->text('Edit Deduction')
+
+ $label = ucfirst $form->{db};
+ $form->{title} = "Edit $label";
+
+ &{ "$form->{db}_links" };
+
+}
+
+
+sub employee_links {
+
+#$form->{deductions} = 1;
+ HR->get_employee(\%myconfig, \%$form);
+
+ for (keys %$form) { $form->{$_} = $form->quote($form->{$_}) }
+
+ if (@{ $form->{all_deduction} }) {
+ $form->{selectdeduction} = "<option>\n";
+ for (@{ $form->{all_deduction} }) { $form->{selectdeduction} .= qq|<option value="$_->{description}--$_->{id}">$_->{description}\n| }
+ }
+
+ $form->{manager} = "$form->{manager}--$form->{managerid}";
+
+ if (@{ $form->{all_manager} }) {
+ $form->{selectmanager} = "<option>\n";
+ for (@{ $form->{all_manager} }) { $form->{selectmanager} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+ }
+
+ %role = ( user => $locale->text('User'),
+ supervisor => $locale->text('Supervisor'),
+ manager => $locale->text('Manager'),
+ admin => $locale->text('Administrator')
+ );
+
+ $form->{selectrole} = "<option>\n";
+ for (qw(user supervisor manager admin)) { $form->{selectrole} .= "<option value=$_>$role{$_}\n" }
+
+ $i = 1;
+ foreach $ref (@{ $form->{all_employeededuction} }) {
+ $form->{"deduction_$i"} = "$ref->{description}--$ref->{id}" if $ref->{id};
+ for (qw(before after rate)) { $form->{"${_}_$i"} = $ref->{$_} }
+ $i++;
+ }
+ $form->{deduction_rows} = $i - 1;
+
+ &employee_header;
+ &employee_footer;
+
+}
+
+
+sub employee_header {
+
+ $sales = qq|<input type=hidden name=sales value=$form->{sales}>|;
+ $form->{sales} = ($form->{sales}) ? "checked" : "";
+
+ $form->{selectrole} =~ s/ selected//;
+ $form->{selectrole} =~ s/option value=\Q$form->{role}\E>/option value=$form->{role} selected>/;
+
+ $form->{selectdeduction} = $form->unescape($form->{selectdeduction});
+
+ $form->{selectmanager} = $form->unescape($form->{selectmanager});
+ $form->{selectmanager} =~ s/ selected//;
+ $form->{selectmanager} =~ s/(<option value="\Q$form->{manager}\E")/$1 selected/;
+
+ $sales .= qq|
+<input type=hidden name=role value=$form->{role}>
+<input type=hidden name=manager value=$form->{manager}>
+|;
+
+ if ($myconfig{role} ne 'user') {
+ $sales = qq|
+ <tr>
+ <th align=right>|.$locale->text('Sales').qq|</th>
+ <td><input name=sales class=checkbox type=checkbox value=1 $form->{sales}></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Role').qq|</th>
+ <td><select name=role>$form->{selectrole}</select></td>
+ </tr>
+|;
+
+ if ($form->{selectmanager}) {
+ $sales .= qq|
+ <tr>
+ <th align=right>|.$locale->text('Manager').qq|</th>
+ <td><select name=manager>$form->{selectmanager}</select></td>
+ </tr>
+|;
+ }
+ }
+
+ $form->{deduction_rows}++;
+
+ for $i (1 .. $form->{deduction_rows}) {
+ $form->{"selectdeduction_$i"} = $form->{selectdeduction};
+ if ($form->{"deduction_$i"}) {
+ $form->{"selectdeduction_$i"} =~ s/(<option value="\Q$form->{"deduction_$i"}\E")/$1 selected/;
+ }
+ }
+
+ $form->{selectdeduction} = $form->escape($form->{selectdeduction},1);
+ $form->{selectmanager} = $form->escape($form->{selectmanager},1);
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=selectdeduction value="$form->{selectdeduction}">
+<input type=hidden name=deduction_rows value=$form->{deduction_rows}>
+
+<input type=hidden name=selectmanager value="$form->{selectmanager}">
+<input type=hidden name=selectrole value="$form->{selectrole}">
+
+<input type=hidden name=status value=$form->{status}>
+
+<input type=hidden name=title value="$form->{title}">
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Number').qq|</th>
+ <td><input name=employeenumber size=32 maxlength=32 value="$form->{employeenumber}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Name').qq|</th>
+ <td><input name=name size=35 maxlength=64 value="$form->{name}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Address').qq|</th>
+ <td><input name=address1 size=35 maxlength=32 value="$form->{address1}"></td>
+ </tr>
+ <tr>
+ <th></th>
+ <td><input name=address2 size=35 maxlength=32 value="$form->{address2}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('City').qq|</th>
+ <td><input name=city size=35 maxlength=32 value="$form->{city}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('State/Province').qq|</th>
+ <td><input name=state size=35 maxlength=32 value="$form->{state}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Zip/Postal Code').qq|</th>
+ <td><input name=zipcode size=10 maxlength=10 value="$form->{zipcode}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Country').qq|</th>
+ <td><input name=country size=35 maxlength=32 value="$form->{country}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('E-mail').qq|</th>
+ <td><input name=email size=35 value="$form->{email}"></td>
+ </tr>
+ <tr>
+ $sales
+ </table>
+ </td>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Work Phone').qq|</th>
+ <td><input name=workphone size=20 maxlength=20 value="$form->{workphone}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Home Phone').qq|</th>
+ <td><input name=homephone size=20 maxlength=20 value="$form->{homephone}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Startdate').qq|</th>
+ <td><input name=startdate size=11 title="$myconfig{dateformat}" value=$form->{startdate}></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Enddate').qq|</th>
+ <td><input name=enddate size=11 title="$myconfig{dateformat}" value=$form->{enddate}></td>
+ </tr>
+
+ <tr>
+ <th align=right nowrap>|.$locale->text('SSN').qq|</th>
+ <td><input name=ssn size=20 maxlength=20 value="$form->{ssn}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('DOB').qq|</th>
+ <td><input name=dob size=11 title="$myconfig{dateformat}" value=$form->{dob}></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('IBAN').qq|</th>
+ <td><input name=iban size=34 maxlength=34 value="$form->{iban}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('BIC').qq|</th>
+ <td><input name=bic size=11 maxlength=11 value="$form->{bic}"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <th align=left nowrap>|.$locale->text('Notes').qq|</th>
+ </tr>
+ <tr>
+ <td><textarea name=notes rows=3 cols=60 wrap=soft>$form->{notes}</textarea></td>
+ </tr>
+|;
+
+ if ($form->{selectdeduction}) {
+
+ print qq|
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+ <th class=listheading>|.$locale->text('Payroll Deduction').qq|</th>
+ <th class=listheading colspan=3>|.$locale->text('Allowances').qq|</th>
+ </tr>
+
+ <tr class=listheading>
+ <th></th>
+ <th class=listheading>|.$locale->text('Before Deduction').qq|</th>
+ <th class=listheading>|.$locale->text('After Deduction').qq|</th>
+ <th class=listheading>|.$locale->text('Rate').qq|</th>
+ </tr>
+|;
+
+ for $i (1 .. $form->{deduction_rows}) {
+ print qq|
+ <tr>
+ <td><select name="deduction_$i">$form->{"selectdeduction_$i"}</select></td>
+ <td><input name="before_$i" value=|.$form->format_amount(\%myconfig, $form->{"before_$i"}, 2).qq|></td>
+ <td><input name="after_$i" value=|.$form->format_amount(\%myconfig, $form->{"after_$i"}, 2).qq|></td>
+ <td><input name="rate_$i" size=5 value=|.$form->format_amount(\%myconfig, $form->{"rate_$i"}).qq|></td>
+ </tr>
+|;
+ }
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+}
+
+
+
+sub employee_footer {
+
+ print qq|
+<input name=id type=hidden value=$form->{id}>
+
+<input type=hidden name=db value=$form->{db}>
+<input type=hidden name=employeelogin value=$form->{employeelogin}>
+
+<input type=hidden name=path value=$form->{path}>
+<input type=hidden name=login value=$form->{login}>
+<input type=hidden name=sessionid value=$form->{sessionid}>
+
+<input type=hidden name=callback value="$form->{callback}">
+
+<br>
+
+<input class=submit type=submit name=action value="|.$locale->text('Update').qq|">
+<input class=submit type=submit name=action value="|.$locale->text('Save').qq|">
+|;
+
+ if ($form->{id}) {
+ print qq|<input class=submit type=submit name=action value="|.$locale->text('Save as new').qq|">\n|;
+ if ($form->{status} eq 'orphaned') {
+ print qq|<input class=submit type=submit name=action value="|.$locale->text('Delete').qq|">\n|;
+ }
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+ </form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub save { &{ "save_$form->{db}" } };
+
+
+sub save_employee {
+
+ $form->isblank("name", $locale->text("Name missing!"));
+ HR->save_employee(\%myconfig, \%$form);
+
+ # if it is a login change memberfile and .conf
+ if ($form->{employeelogin}) {
+ $user = new User $memberfile, $form->{employeelogin};
+
+ for (qw(name email role)) { $user->{$_} = $form->{$_} }
+
+ # assign $myconfig for db
+ for (qw(dbconnect dbhost dbport dbpasswd)) { $user->{$_} = $myconfig{$_} }
+
+ for (qw(dbpasswd password)) { $user->{"old_$_"} = $user->{$_} }
+ $user->{packpw} = 1;
+
+ $user->save_member($memberfile, $userspath) if $user->{login};
+ }
+
+ $form->redirect($locale->text('Employee saved!'));
+
+}
+
+
+sub delete { &{ "delete_$form->{db}" } };
+
+
+sub delete_employee {
+
+ HR->delete_employee(\%myconfig, \%$form);
+ $form->redirect($locale->text('Employee deleted!'));
+
+}
+
+
+sub continue { &{ $form->{nextsub} } };
+
+sub add_employee { &add };
+sub add_deduction { &add };
+
+
+sub search_deduction {
+
+ HR->deductions(\%myconfig, \%$form);
+
+ $href = "$form->{script}?action=search_deduction&direction=$form->{direction}&oldsort=$form->{oldsort}&db=$form->{db}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}";
+
+ $form->sort_order();
+
+ $callback = "$form->{script}?action=search_deduction&direction=$form->{direction}&oldsort=$form->{oldsort}&db=$form->{db}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}";
+
+ @column_index = $form->sort_columns(qw(description rate amount above below employeepays employerpays ap_accno expense_accno));
+
+
+ $form->{callback} = $callback;
+ $callback = $form->escape($form->{callback});
+
+ $column_header{description} = qq|<th class=listheading href=$href>|.$locale->text('Description').qq|</th>|;
+ $column_header{rate} = qq|<th class=listheading nowrap>|.$locale->text('Rate').qq|<br>%</th>|;
+ $column_header{amount} = qq|<th class=listheading>|.$locale->text('Amount').qq|</th>|;
+ $column_header{above} = qq|<th class=listheading>|.$locale->text('Above').qq|</th>|;
+ $column_header{below} = qq|<th class=listheading>|.$locale->text('Below').qq|</th>|;
+ $column_header{employerpays} = qq|<th class=listheading>|.$locale->text('Employer').qq|</th>|;
+ $column_header{employeepays} = qq|<th class=listheading>|.$locale->text('Employee').qq|</th>|;
+
+ $column_header{ap_accno} = qq|<th class=listheading>|.$locale->text('AP').qq|</th>|;
+ $column_header{expense_accno} = qq|<th class=listheading>|.$locale->text('Expense').qq|</th>|;
+
+ $form->{title} = $locale->text('Deductions');
+
+ $form->header;
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$option</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "$column_header{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+
+ foreach $ref (@{ $form->{all_deduction} }) {
+
+ $rate = $form->format_amount(\%myconfig, $ref->{rate} * 100, "", "&nbsp;");
+
+ $column_data{rate} = "<td align=right>$rate</td>";
+
+ for (qw(amount below above)) { $column_data{$_} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{$_}, 2, "&nbsp;")."</td>" }
+
+ for (qw(ap_accno expense_accno)) { $column_data{$_} = "<td>$ref->{$_}&nbsp;</td>" }
+
+ for (qw(employerpays employeepays)) { $column_data{$_} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{$_}, "", "&nbsp;")."</td>" }
+
+ if ($ref->{description} ne $sameitem) {
+ $column_data{description} = "<td><a href=$form->{script}?action=edit&db=$form->{db}&id=$ref->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{description}</a></td>";
+ } else {
+ $column_data{description} = "<td>&nbsp;</td>";
+ }
+
+ $i++; $i %= 2;
+ print "
+ <tr class=listrow$i>
+";
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ $sameitem = $ref->{description};
+
+ }
+
+ $i = 1;
+ $button{'HR--Deductions--Add Deduction'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Add Deduction').qq|"> |;
+ $button{'HR--Deductions--Add Deduction'}{order} = $i++;
+
+ foreach $item (split /;/, $myconfig{acs}) {
+ delete $button{$item};
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+<form method=post action=$form->{script}>
+
+<input type=hidden name=db value=$form->{db}>
+
+<input name=callback type=hidden value="$form->{callback}">
+
+<input type=hidden name=path value=$form->{path}>
+<input type=hidden name=login value=$form->{login}>
+<input type=hidden name=sessionid value=$form->{sessionid}>
+|;
+
+ foreach $item (sort { $a->{order} <=> $b->{order} } %button) {
+ print $item->{code};
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub deduction_links {
+
+ HR->get_deduction(\%myconfig, \%$form);
+
+ $i = 1;
+ foreach $ref (@{ $form->{deductionrate} }) {
+ for (keys %$ref) { $form->{"${_}_$i"} = $ref->{$_} }
+ $i++;
+ }
+ $form->{rate_rows} = $i - 1;
+
+ $i = 1;
+ foreach $ref (@{ $form->{deductionbase} }) {
+ $form->{"base_$i"} = "$ref->{description}--$ref->{id}" if $ref->{id};
+ $form->{"maximum_$i"} = $ref->{maximum};
+ $i++;
+ }
+ $form->{base_rows} = $i - 1;
+
+ $i = 1;
+ foreach $ref (@{ $form->{deductionafter} }) {
+ $form->{"after_$i"} = "$ref->{description}--$ref->{id}" if $ref->{id};
+ $i++;
+ }
+ $form->{after_rows} = $i - 1;
+
+ $form->{employeepays} = 1;
+
+ $selectaccount = "<option>\n";
+ for (@{ $form->{ap_accounts} }) { $selectaccount .= "<option>$_->{accno}--$_->{description}\n" }
+
+ $form->{ap_accno} = qq|$form->{ap_accno}--$form->{ap_description}|;
+ $form->{selectap} = $selectaccount;
+
+ $selectaccount = "<option>\n";
+ for (@{ $form->{expense_accounts} }) { $selectaccount .= "<option>$_->{accno}--$_->{description}\n" }
+
+ $form->{expense_accno} = qq|$form->{expense_accno}--$form->{expense_description}|;
+ $form->{selectexpense} = $selectaccount;
+
+ for (1 .. $form->{rate_rows}) { $form->{"rate_$_"} *= 100 }
+
+ $form->{selectbase} = "<option>\n";
+ for (@{ $form->{all_deduction} }) { $form->{selectbase} .= qq|<option value="$_->{description}--$_->{id}">$_->{description}\n| }
+
+ &deduction_header;
+ &deduction_footer;
+
+}
+
+
+sub deduction_header {
+
+ $selectap = $form->{selectap};
+ $selectap =~ s/option>\Q$form->{ap_accno}\E/option selected>$form->{ap_accno}/;
+ $selectexpense = $form->{selectexpense};
+ $selectexpense =~ s/option>\Q$form->{expense_accno}\E/option selected>$form->{expense_accno}/;
+
+
+ $form->{rate_rows}++;
+ $form->{base_rows}++;
+ $form->{after_rows}++;
+
+ $form->{selectbase} = $form->unescape($form->{selectbase});
+
+ for $i (1 .. $form->{base_rows}) {
+ $form->{"selectbase_$i"} = $form->{selectbase};
+ if ($form->{"base_$i"}) {
+ $form->{"selectbase_$i"} =~ s/(<option value="\Q$form->{"base_$i"}\E")/$1 selected/;
+ }
+ }
+ for $i (1 .. $form->{after_rows}) {
+ $form->{"selectafter_$i"} = $form->{selectbase};
+ if ($form->{"after_$i"}) {
+ $form->{"selectafter_$i"} =~ s/(<option value="\Q$form->{"after_$i"}\E")/$1 selected/;
+ }
+ }
+
+
+ $form->header;
+
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=title value="$form->{title}">
+
+<input type=hidden name=selectap value="$form->{selectap}">
+<input type=hidden name=selectexpense value="$form->{selectexpense}">
+<input type=hidden name=selectbase value="|.$form->escape($form->{selectbase},1).qq|">
+
+<input type=hidden name=rate_rows value=$form->{rate_rows}>
+<input type=hidden name=base_rows value=$form->{base_rows}>
+<input type=hidden name=after_rows value=$form->{after_rows}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Description').qq|</th>
+ <td><input name=description size=35 value="$form->{description}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('AP').qq|</th>
+ <td><select name=ap_accno>$selectap</select></td>
+ <th align=right nowrap>|.$locale->text('Employee pays').qq| x</th>
+ <td><input name=employeepays size=4 value=|.$form->format_amount(\%myconfig, $form->{employeepays}).qq|></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Expense').qq|</th>
+ <td><select name=expense_accno>$selectexpense</select></td>
+ <th align=right nowrap>|.$locale->text('Employer pays').qq| x</th>
+ <td><input name=employerpays size=4 value=|.$form->format_amount(\%myconfig, $form->{employerpays}).qq|></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <th align=right nowrap>|.$locale->text('Exempt age <').qq|</th>
+ <td><input name=fromage size=4 value=|.$form->format_amount(\%myconfig, $form->{fromage}).qq|></td>
+ <th align=right nowrap>&gt;</th>
+ <td><input name=toage size=4 value=|.$form->format_amount(\%myconfig, $form->{toage}).qq|>
+ </tr>
+ <tr>
+ <td></td>
+ <td>
+ <table>
+ <tr class=listheading>
+ <th class=listheading>|.$locale->text('Rate').qq| %</th>
+ <th class=listheading>|.$locale->text('Amount').qq|</th>
+ <th class=listheading>|.$locale->text('Above').qq|</th>
+ <th class=listheading>|.$locale->text('Below').qq|</th>
+ </tr>
+|;
+
+ for $i (1 .. $form->{rate_rows}) {
+ print qq|
+ <tr>
+ <td><input name="rate_$i" size=10 value=|.$form->format_amount(\%myconfig, $form->{"rate_$i"}).qq|></td>
+ <td><input name="amount_$i" size=10 value=|.$form->format_amount(\%myconfig, $form->{"amount_$i"}, 2).qq|></td>
+ <td><input name="above_$i" size=10 value=|.$form->format_amount(\%myconfig, $form->{"above_$i"}, 2).qq|></td>
+ <td><input name="below_$i" size=10 value=|.$form->format_amount(\%myconfig, $form->{"below_$i"}, 2).qq|></td>
+ </tr>
+|;
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+|;
+
+ print qq|
+ <tr>
+ <td>
+ <table>
+|;
+
+ $basedon = $locale->text('Based on');
+ $maximum = $locale->text('Maximum');
+
+ for $i (1 .. $form->{base_rows}) {
+ print qq|
+ <tr>
+ <th>$basedon</th>
+ <td><select name="base_$i">$form->{"selectbase_$i"}</select></td>
+ <th>$maximum</th>
+ <td><input name="maximum_$i" value=|.$form->format_amount(\%myconfig, $form->{"maximum_$i"}, 2).qq|></td>
+ </tr>
+|;
+ $basedon = "";
+ $maximum = "";
+ }
+
+ $deductafter = $locale->text('Deduct after');
+
+ for $i (1 .. $form->{after_rows}) {
+ print qq|
+ <tr>
+ <th>$deductafter</th>
+ <td><select name="after_$i">$form->{"selectafter_$i"}</select></td>
+ </tr>
+|;
+ $deductafter = "";
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+}
+
+
+
+sub deduction_footer {
+
+ print qq|
+<input name=id type=hidden value=$form->{id}>
+
+<input type=hidden name=db value=$form->{db}>
+
+<input type=hidden name=path value=$form->{path}>
+<input type=hidden name=login value=$form->{login}>
+<input type=hidden name=sessionid value=$form->{sessionid}>
+
+<input type=hidden name=callback value="$form->{callback}">
+
+<br>
+
+<input class=submit type=submit name=action value="|.$locale->text("Update").qq|">
+<input class=submit type=submit name=action value="|.$locale->text("Save").qq|">
+|;
+
+ if ($form->{id}) {
+ print qq|<input class=submit type=submit name=action value="|.$locale->text('Save as new').qq|">\n|;
+
+ if ($form->{status} eq 'orphaned') {
+ print qq|<input class=submit type=submit name=action value="|.$locale->text('Delete').qq|">\n|;
+ }
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+ </form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub update { &{ "update_$form->{db}" }; }
+sub save { &{ "save_$form->{db}" } };
+
+
+sub update_deduction {
+
+ # if rate or amount is blank remove row
+ @flds = qw(rate amount above below);
+ $count = 0;
+ @a = ();
+ for $i (1 .. $form->{rate_rows}) {
+ for (@flds) { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) }
+ if ($form->{"rate_$i"} || $form->{"amount_$i"}) {
+ push @a, {};
+ $j = $#a;
+
+ for (@flds) { $a[$j]->{$_} = $form->{"${_}_$i"} }
+ $count++;
+ }
+ }
+ $form->redo_rows(\@flds, \@a, $count, $form->{rate_rows});
+ $form->{rate_rows} = $count;
+
+
+ @flds = qw(base maximum);
+ $count = 0;
+ @a = ();
+ for $i (1 .. $form->{"base_rows"}) {
+ $form->{"maximum_$i"} = $form->parse_amount(\%myconfig, $form->{"maximum_$i"});
+ if ($form->{"base_$i"}) {
+ push @a, {};
+ $j = $#a;
+
+ for (@flds) { $a[$j]->{$_} = $form->{"${_}_$i"} }
+ $count++;
+ }
+ }
+ $form->redo_rows(\@flds, \@a, $count, $form->{"base_rows"});
+ $form->{"base_rows"} = $count;
+
+
+ @flds = qw(after);
+ $count = 0;
+ @a = ();
+ for $i (1 .. $form->{"after_rows"}) {
+ if ($form->{"after_$i"}) {
+ push @a, {};
+ $j = $#a;
+
+ for (@flds) { $a[$j]->{$_} = $form->{"${_}_$i"} }
+ $count++;
+ }
+ }
+ $form->redo_rows(\@flds, \@a, $count, $form->{"after_rows"});
+ $form->{"after_rows"} = $count;
+
+ &deduction_header;
+ &deduction_footer;
+
+}
+
+
+sub update_employee {
+
+ # if rate or amount is blank remove row
+ @flds = qw(before after);
+ $count = 0;
+ @a = ();
+ for $i (1 .. $form->{deduction_rows}) {
+ for (@flds) { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) }
+ if ($form->{"deduction_$i"}) {
+ push @a, {};
+ $j = $#a;
+
+ for (@flds) { $a[$j]->{$_} = $form->{"${_}_$i"} }
+ $count++;
+ }
+ }
+ $form->redo_rows(\@flds, \@a, $count, $form->{deduction_rows});
+ $form->{deduction_rows} = $count;
+
+ &employee_header;
+ &employee_footer;
+
+}
+
+
+sub save_as_new {
+
+ $form->{id} = 0;
+ delete $form->{employeelogin};
+
+ &save;
+
+}
+
+
+sub save_deduction {
+
+ $form->isblank("description", $locale->text("Description missing!"));
+
+ unless ($form->{"rate_1"} || $form->{"amount_1"}) {
+ $form->isblank("rate_1", $locale->text("Rate missing!")) unless $form->{"amount_1"};
+ $form->isblank("amount_1", $locale->text("Amount missing!"));
+ }
+
+ HR->save_deduction(\%myconfig, \%$form);
+ $form->redirect($locale->text('Deduction saved!'));
+
+}
+
+
+sub delete_deduction {
+
+ HR->delete_deduction(\%myconfig, \%$form);
+ $form->redirect($locale->text('Deduction deleted!'));
+
+}
+
+
diff --git a/bin/lynx/ic.pl b/bin/lynx/ic.pl
new file mode 100755
index 00000000..47e0304d
--- /dev/null
+++ b/bin/lynx/ic.pl
@@ -0,0 +1,3238 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2001
+#
+# Author: DWS Systems Inc.
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+# Contributors:
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#======================================================================
+#
+# Inventory Control module
+#
+#======================================================================
+
+
+use SL::IC;
+
+require "$form->{path}/io.pl";
+
+1;
+# end of main
+
+
+
+sub add {
+
+ %label = ( part => 'Part',
+ service => 'Service',
+ assembly => 'Assembly',
+ labor => 'Labor/Overhead', );
+
+# $locale->text('Add Part')
+# $locale->text('Add Service')
+# $locale->text('Add Assembly')
+# $locale->text('Add Labor/Overhead')
+
+ $label = "Add $label{$form->{item}}";
+ $form->{title} = $locale->text($label);
+
+ $form->{callback} = "$form->{script}?action=add&item=$form->{item}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}" unless $form->{callback};
+
+ $form->{orphaned} = 1;
+
+ if ($form->{previousform}) {
+ $form->{callback} = "";
+ }
+
+ &link_part;
+
+ &display_form;
+
+}
+
+
+sub edit {
+
+ %label = ( part => 'Part',
+ service => 'Service',
+ assembly => 'Assembly',
+ labor => 'Labor/Overhead', );
+
+# $locale->text('Edit Part')
+# $locale->text('Edit Service')
+# $locale->text('Edit Assembly')
+# $locale->text('Edit Labor/Overhead')
+
+ IC->get_part(\%myconfig, \%$form);
+
+ $label = "Edit $label{$form->{item}}";
+ $form->{title} = $locale->text($label);
+
+ $form->{previousform} = $form->escape($form->{previousform}, 1) if $form->{previousform};
+
+ &link_part;
+
+ &display_form;
+
+}
+
+
+
+sub link_part {
+
+ IC->create_links("IC", \%myconfig, \%$form);
+
+ # currencies
+ $form->{selectcurrency} = "";
+ for (split /:/, $form->{currencies}) { $form->{selectcurrency} .= "<option>$_\n" }
+
+ # readonly
+ if ($form->{item} eq 'part') {
+ $form->{readonly} = 1 if $myconfig{acs} =~ /Goods \& Services--Add Part/;
+ $form->error($locale->text('Cannot create Part').";".$locale->text('Inventory account does not exist!')) if ! @{ $form->{IC_links}{IC} };
+ $form->error($locale->text('Cannot create Part').";".$locale->text('Income account does not exist!')) if ! @{ $form->{IC_links}{IC_sale} };
+ $form->error($locale->text('Cannot create Part').";".$locale->text('COGS account does not exist!')) if ! @{ $form->{IC_links}{IC_cogs} };
+ }
+
+ if ($form->{item} eq 'service') {
+ $form->{readonly} = 1 if $myconfig{acs} =~ /Goods \& Services--Add Service/;
+ $form->error($locale->text('Cannot create Service').";".$locale->text('Income account does not exist!')) if ! @{ $form->{IC_links}{IC_income} };
+ $form->error($locale->text('Cannot create Service').";".$locale->text('Expense account does not exist!')) if ! @{ $form->{IC_links}{IC_expense} };
+ }
+
+ if ($form->{item} eq 'assembly') {
+ $form->{readonly} = 1 if $myconfig{acs} =~ /Goods \& Services--Add Assembly/;
+ $form->error($locale->text('Cannot create Assembly').";".$locale->text('Income account does not exist!')) if ! @{ $form->{IC_links}{IC_income} };
+ }
+ if ($form->{item} eq 'labor') {
+ $form->{readonly} = 1 if $myconfig{acs} =~ /Goods \& Services--Add Labor\/Overhead/;
+ $form->error($locale->text('Cannot create Labor').";".$locale->text('Inventory account does not exist!')) if ! @{ $form->{IC_links}{IC} };
+ $form->error($locale->text('Cannot create Labor').";".$locale->text('COGS account does not exist!')) if ! @{ $form->{IC_links}{IC_cogs} };
+ }
+
+
+ # parts, assemblies , labor and overhead have the same links
+ $taxpart = ($form->{item} eq 'service') ? "service" : "part";
+
+ # build the popup menus
+ $form->{taxaccounts} = "";
+ foreach $key (keys %{ $form->{IC_links} }) {
+
+ $form->{"select$key"} = "";
+ foreach $ref (@{ $form->{IC_links}{$key} }) {
+ # if this is a tax field
+ if ($key =~ /IC_tax/) {
+ if ($key =~ /$taxpart/) {
+
+ $form->{taxaccounts} .= "$ref->{accno} ";
+ $form->{"IC_tax_$ref->{accno}_description"} = "$ref->{accno}--$ref->{description}";
+
+ if ($form->{id}) {
+ if ($form->{amount}{$ref->{accno}}) {
+ $form->{"IC_tax_$ref->{accno}"} = "checked";
+ }
+ } else {
+ $form->{"IC_tax_$ref->{accno}"} = "checked";
+ }
+
+ }
+ } else {
+
+ $form->{"select$key"} .= "<option>$ref->{accno}--$ref->{description}\n";
+
+ }
+ }
+ }
+ chop $form->{taxaccounts};
+
+ if ($form->{item} !~ /service/) {
+ $form->{selectIC_inventory} = $form->{selectIC};
+ $form->{selectIC_income} = $form->{selectIC_sale};
+ $form->{selectIC_expense} = $form->{selectIC_cogs};
+ $form->{IC_income} = $form->{IC_sale};
+ $form->{IC_expense} = $form->{IC_cogs};
+ }
+
+ # set option
+ for (qw(IC_inventory IC_income IC_expense)) { $form->{$_} = "$form->{amount}{$_}{accno}--$form->{amount}{$_}{description}" if $form->{amount}{$_}{accno} }
+
+ delete $form->{IC_links};
+ delete $form->{amount};
+
+ $form->get_partsgroup(\%myconfig, {all => 1});
+ if ($form->{partsgroup}) {
+ $form->{partsgroup} = $form->quote($form->{partsgroup})."--$form->{partsgroup_id}";
+ }
+
+ if (@{ $form->{all_partsgroup} }) {
+ $form->{selectpartsgroup} = qq|<option>\n|;
+
+ for (@{ $form->{all_partsgroup} }) { $form->{selectpartsgroup} .= qq|<option value="|.$form->quote($_->{partsgroup}).qq|--$_->{id}">$_->{partsgroup}\n| }
+ delete $form->{all_partsgroup};
+ }
+
+ if ($form->{item} eq 'assembly') {
+
+ for (1 .. $form->{assembly_rows}) {
+ if ($form->{"partsgroup_id_$_"}) {
+ $form->{"partsgroup_$_"} = qq|$form->{"partsgroup_$_"}--$form->{"partsgroup_id_$_"}|;
+ }
+ }
+
+ $form->get_partsgroup(\%myconfig);
+
+ if (@{ $form->{all_partsgroup} }) {
+ $form->{selectassemblypartsgroup} = qq|<option>\n|;
+
+ for (@{ $form->{all_partsgroup} }) { $form->{selectassemblypartsgroup} .= qq|<option value="$_->{partsgroup}--$_->{id}">$_->{partsgroup}\n| }
+ delete $form->{all_partsgroup};
+ }
+ }
+
+ # setup make and models
+ $i = 1;
+ foreach $ref (@{ $form->{makemodels} }) {
+ for (qw(make model)) { $form->{"${_}_$i"} = $ref->{$_} }
+ $i++;
+ }
+ $form->{makemodel_rows} = $i - 1;
+ delete $form->{makemodels};
+
+
+ # setup vendors
+ if (@{ $form->{all_vendor} }) {
+ $form->{selectvendor} = "<option>\n";
+ for (@{ $form->{all_vendor} }) { $form->{selectvendor} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+ delete $form->{all_vendor};
+ }
+
+ # vendor matrix
+ $i = 1;
+ foreach $ref (@{ $form->{vendormatrix} }) {
+ $form->{"vendor_$i"} = qq|$ref->{name}--$ref->{id}|;
+
+ for (qw(partnumber lastcost leadtime vendorcurr)) { $form->{"${_}_$i"} = $ref->{$_} }
+ $i++;
+ }
+ $form->{vendor_rows} = $i - 1;
+ delete $form->{vendormatrix};
+
+ # setup customers and groups
+ if (@{ $form->{all_customer} }) {
+ $form->{selectcustomer} = "<option>\n";
+ for (@{ $form->{all_customer} }) { $form->{selectcustomer} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+ delete $form->{all_customer};
+ }
+
+ if (@{ $form->{all_pricegroup} }) {
+ $form->{selectpricegroup} = "<option>\n";
+ for (@{ $form->{all_pricegroup} }) { $form->{selectpricegroup} .= qq|<option value="$_->{pricegroup}--$_->{id}">$_->{pricegroup}\n| }
+ delete $form->{all_pricegroup};
+ }
+
+ $i = 1;
+ # customer matrix
+ foreach $ref (@{ $form->{customermatrix} }) {
+
+ $form->{"customer_$i"} = "$ref->{name}--$ref->{cid}" if $ref->{cid};
+ $form->{"pricegroup_$i"} = "$ref->{pricegroup}--$ref->{gid}" if $ref->{gid};
+
+ for (qw(validfrom validto pricebreak customerprice customercurr)) { $form->{"${_}_$i"} = $ref->{$_} }
+
+ $i++;
+
+ }
+ $form->{customer_rows} = $i - 1;
+ delete $form->{customermatrix};
+
+}
+
+
+
+sub form_header {
+
+ if ($form->{lastcost} > 0) {
+ $markup = $form->round_amount((($form->{sellprice}/$form->{lastcost} - 1) * 100), 1);
+ $form->{markup} = $form->format_amount(\%myconfig, $markup, 1);
+ }
+
+ ($dec) = ($form->{sellprice} =~ /\.(\d+)/);
+ $dec = length $dec;
+ $decimalplaces = ($dec > 2) ? $dec : 2;
+
+ for (qw(listprice sellprice)) { $form->{$_} = $form->format_amount(\%myconfig, $form->{$_}, $decimalplaces) }
+
+ ($dec) = ($form->{lastcost} =~ /\.(\d+)/);
+ $dec = length $dec;
+ $decimalplaces = ($dec > 2) ? $dec : 2;
+
+ for (qw(lastcost avgcost)) { $form->{$_} = $form->format_amount(\%myconfig, $form->{$_}, $decimalplaces) }
+
+ for (qw(weight rop stock)) { $form->{$_} = $form->format_amount(\%myconfig, $form->{$_}) }
+
+ for (qw(partnumber description unit notes)) { $form->{$_} = $form->quote($form->{$_}) }
+
+ if (($rows = $form->numtextrows($form->{notes}, 40)) < 2) {
+ $rows = 2;
+ }
+
+ $notes = qq|<textarea name=notes rows=$rows cols=40 wrap=soft>$form->{notes}</textarea>|;
+
+ if (($rows = $form->numtextrows($form->{description}, 40)) > 1) {
+ $description = qq|<textarea name="description" rows=$rows cols=40 wrap=soft>$form->{description}</textarea>|;
+ } else {
+ $description = qq|<input name=description size=40 value="$form->{description}">|;
+ }
+
+ for (split / /, $form->{taxaccounts}) { $form->{"IC_tax_$_"} = ($form->{"IC_tax_$_"}) ? "checked" : "" }
+
+ $form->{selectIC_inventory} = $form->{selectIC};
+
+ # set option
+ for (qw(IC_inventory IC_income IC_expense)) {
+ if ($form->{$_}) {
+ if ($form->{orphaned}) {
+ $form->{"select$_"} =~ s/ selected//;
+ $form->{"select$_"} =~ s/option>\Q$form->{$_}\E/option selected>$form->{$_}/;
+ } else {
+ $form->{"select$_"} = qq|<option selected>$form->{$_}|;
+ }
+ }
+ }
+
+ if ($form->{selectpartsgroup}) {
+ $form->{selectpartsgroup} = $form->unescape($form->{selectpartsgroup});
+
+ $partsgroup = qq|<input type=hidden name=selectpartsgroup value="|.$form->escape($form->{selectpartsgroup},1).qq|">|;
+
+ $form->{partsgroup} = $form->quote($form->{partsgroup});
+ $form->{selectpartsgroup} =~ s/(<option value="\Q$form->{partsgroup}\E")/$1 selected/;
+
+ $partsgroup .= qq|\n<select name=partsgroup>$form->{selectpartsgroup}</select>|;
+ $group = $locale->text('Group');
+ }
+
+ # tax fields
+ foreach $item (split / /, $form->{taxaccounts}) {
+ $tax .= qq|
+ <input class=checkbox type=checkbox name="IC_tax_$item" value=1 $form->{"IC_tax_$item"}>&nbsp;<b>$form->{"IC_tax_${item}_description"}</b>
+ <br><input type=hidden name=IC_tax_${item}_description value="$form->{"IC_tax_${item}_description"}">
+|;
+ }
+
+
+ $sellprice = qq|
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('Sell Price').qq|</th>
+ <td><input name=sellprice size=11 value=$form->{sellprice}></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('List Price').qq|</th>
+ <td><input name=listprice size=11 value=$form->{listprice}></td>
+ </tr>
+|;
+
+ $avgcost = qq|
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('Average Cost').qq|</th>
+ <td><input type=hidden name=avgcost value=$form->{avgcost}>$form->{avgcost}</td>
+ </tr>
+|;
+
+ $lastcost = qq|
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('Last Cost').qq|</th>
+ <td><input name=lastcost size=11 value=$form->{lastcost}></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('Markup').qq| %</th>
+ <td><input name=markup size=5 value=$form->{markup}></td>
+ <input type=hidden name=oldmarkup value=$markup>
+ </tr>
+|;
+
+
+ if ($form->{item} =~ /(part|assembly)/) {
+ $n = ($form->{onhand} > 0) ? "1" : "0";
+ $onhand = qq|
+ <tr>
+ <th align="right" nowrap>|.$locale->text('On Hand').qq|</th>
+ <th align=left nowrap class="plus$n">&nbsp;|.$form->format_amount(\%myconfig, $form->{onhand}).qq|</th>
+ </tr>
+|;
+
+ $rop = qq|
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('ROP').qq|</th>
+ <td><input name=rop size=10 value=$form->{rop}></td>
+ </tr>
+|;
+
+ $bin = qq|
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('Bin').qq|</th>
+ <td><input name=bin size=10 value="$form->{bin}"></td>
+ </tr>
+|;
+
+ $imagelinks = qq|
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Image').qq|</th>
+ <td><input name=image size=40 value="$form->{image}"></td>
+ <th align=right nowrap>|.$locale->text('Microfiche').qq|</th>
+ <td><input name=microfiche size=20 value="$form->{microfiche}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Drawing').qq|</th>
+ <td><input name=drawing size=40 value="$form->{drawing}"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+|;
+ }
+
+
+ if ($form->{item} eq "part") {
+
+ $linkaccounts = qq|
+ <tr>
+ <th align=right>|.$locale->text('Inventory').qq|</th>
+ <td><select name=IC_inventory>$form->{selectIC_inventory}</select></td>
+ <input name=selectIC type=hidden value="$form->{selectIC}">
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Income').qq|</th>
+ <td><select name=IC_income>$form->{selectIC_income}</select></td>
+ <input name=selectIC_income type=hidden value="$form->{selectIC_income}">
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('COGS').qq|</th>
+ <td><select name=IC_expense>$form->{selectIC_expense}</select></td>
+ <input name=selectIC_expense type=hidden value="$form->{selectIC_expense}">
+ </tr>
+|;
+
+ if ($tax) {
+ $linkaccounts .= qq|
+ <tr>
+ <th align=right>|.$locale->text('Tax').qq|</th>
+ <td>$tax</td>
+ </tr>
+|;
+ }
+
+ $weight = qq|
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('Weight').qq|</th>
+ <td>
+ <table>
+ <tr>
+ <td>
+ <input name=weight size=10 value=$form->{weight}>
+ </td>
+ <th>
+ &nbsp;
+ $form->{weightunit}
+ <input type=hidden name=weightunit value=$form->{weightunit}>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+|;
+
+ }
+
+
+ if ($form->{item} eq "assembly") {
+
+ $avgcost = "";
+
+ if ($form->{project_id}) {
+ $weight = qq|
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('Weight').qq|</th>
+ <td>
+ <table>
+ <tr>
+ <td>
+ <input name=weight size=10 value=$form->{weight}>
+ </td>
+ <th>
+ &nbsp;
+ $form->{weightunit}
+ <input type=hidden name=weightunit value=$form->{weightunit}>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+|;
+ } else {
+
+ $weight = qq|
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('Weight').qq|</th>
+ <td>
+ <table>
+ <tr>
+ <td>
+ &nbsp;$form->{weight}
+ <input type=hidden name=weight value=$form->{weight}>
+ </td>
+ <th>
+ &nbsp;
+ $form->{weightunit}
+ <input type=hidden name=weightunit value=$form->{weightunit}>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+|;
+ }
+
+
+ if ($form->{project_id}) {
+ $lastcost = "";
+ $avgcost = "";
+ $onhand = "";
+ $rop = "";
+ $form->{isassemblyitem} = 1;
+
+ } else {
+ $stock = qq|
+ <tr>
+ <th align="right" nowrap>|.$locale->text('Stock').qq|</th>
+ <td><input name=stock size=10 value=$form->{stock}></td>
+ </tr>
+|;
+
+ $lastcost = qq|
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('Last Cost').qq|</th>
+ <td><input type=hidden name=lastcost value=$form->{lastcost}>$form->{lastcost}</td>
+ </tr>
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('Markup').qq| %</th>
+ <td><input name=markup size=5 value=$form->{markup}></td>
+ <input type=hidden name=oldmarkup value=$markup>
+ </tr>
+|;
+
+ }
+
+ $linkaccounts = qq|
+ <tr>
+ <th align=right>|.$locale->text('Income').qq|</th>
+ <td><select name=IC_income>$form->{selectIC_income}</select></td>
+ <input name=selectIC_income type=hidden value="$form->{selectIC_income}">
+ </tr>
+|;
+
+ if ($tax) {
+ $linkaccounts .= qq|
+ <tr>
+ <th align=right>|.$locale->text('Tax').qq|</th>
+ <td>$tax</td>
+ </tr>
+|;
+ }
+
+ }
+
+
+ if ($form->{item} eq "service") {
+ $avgcost = "";
+ $linkaccounts = qq|
+ <tr>
+ <th align=right>|.$locale->text('Income').qq|</th>
+ <td><select name=IC_income>$form->{selectIC_income}</select></td>
+ <input name=selectIC_income type=hidden value="$form->{selectIC_income}">
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Expense').qq|</th>
+ <td><select name=IC_expense>$form->{selectIC_expense}</select></td>
+ <input name=selectIC_expense type=hidden value="$form->{selectIC_expense}">
+ </tr>
+|;
+
+ if ($tax) {
+ $linkaccounts .= qq|
+ <tr>
+ <th align=right>|.$locale->text('Tax').qq|</th>
+ <td>$tax</td>
+ </tr>
+|;
+ }
+
+ }
+
+ if ($form->{item} eq 'labor') {
+ $avgcost = "";
+
+ $n = ($form->{onhand} > 0) ? "1" : "0";
+ $onhand = qq|
+ <tr>
+ <th align="right" nowrap>|.$locale->text('On Hand').qq|</th>
+ <th align=left nowrap class="plus$n">&nbsp;|.$form->format_amount(\%myconfig, $form->{onhand}).qq|</th>
+ </tr>
+|;
+
+ $linkaccounts = qq|
+ <tr>
+ <th align=right>|.$locale->text('Labor/Overhead').qq|</th>
+ <td><select name=IC_inventory>$form->{selectIC_inventory}</select></td>
+ <input name=selectIC type=hidden value="$form->{selectIC}">
+ </tr>
+
+ <tr>
+ <th align=right>|.$locale->text('COGS').qq|</th>
+ <td><select name=IC_expense>$form->{selectIC_expense}</select></td>
+ <input name=selectIC_expense type=hidden value="$form->{selectIC_expense}">
+ </tr>
+|;
+
+ }
+
+ if ($form->{id}) {
+ $checked = ($form->{obsolete}) ? "checked" : "";
+ $obsolete = qq|
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('Obsolete').qq|</th>
+ <td><input name=obsolete type=checkbox class=checkbox value=1 $checked></td>
+ </tr>
+|;
+ $obsolete = "<input type=hidden name=obsolete value=$form->{obsolete}>" if $form->{project_id};
+ }
+
+
+# type=submit $locale->text('Edit Part')
+# type=submit $locale->text('Edit Service')
+# type=submit $locale->text('Edit Assembly')
+
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action="$form->{script}">
+|;
+
+ $form->hide_form(qw(id item title makemodel alternate onhand orphaned taxaccounts rowcount baseassembly project_id));
+
+ print qq|
+<table width="100%">
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width="100%">
+ <tr valign=top>
+ <th align=left>|.$locale->text('Number').qq|</th>
+ <th align=left>|.$locale->text('Description').qq|</th>
+ <th align=left>$group</th>
+ </tr>
+ <tr valign=top>
+ <td><input name=partnumber value="$form->{partnumber}" size=20></td>
+ <td>$description</td>
+ <td>$partsgroup</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table width="100%" height="100%">
+ <tr valign=top>
+ <td width=70%>
+ <table width="100%" height="100%">
+ <tr class="listheading">
+ <th class="listheading" align="center" colspan=2>|.$locale->text('Link Accounts').qq|</th>
+ </tr>
+ $linkaccounts
+ <tr>
+ <th align="left">|.$locale->text('Notes').qq|</th>
+ </tr>
+ <tr>
+ <td colspan=2>
+ $notes
+ </td>
+ </tr>
+ </table>
+ </td>
+ <td width="30%">
+ <table width="100%">
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('Updated').qq|</th>
+ <td><input name=priceupdate size=11 title="$myconfig{dateformat}" value=$form->{priceupdate}></td>
+ </tr>
+ $sellprice
+ $lastcost
+ $avgcost
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('Unit').qq|</th>
+ <td><input name=unit size=5 value="$form->{unit}"></td>
+ </tr>
+ $weight
+ $onhand
+ $stock
+ $rop
+ $bin
+ $obsolete
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ $imagelinks
+|;
+}
+
+
+sub form_footer {
+
+ print qq|
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+ $form->hide_form(qw(customer_rows));
+
+ if ($form->{item} =~ /(part|assembly)/) {
+ $form->hide_form(qw(makemodel_rows));
+ }
+
+ if ($form->{item} =~ /(part|service)/) {
+ $form->hide_form(qw(vendor_rows));
+ }
+
+# type=submit $locale->text('Update')
+# type=submit $locale->text('Save')
+# type=submit $locale->text('Save as new')
+# type=submit $locale->text('Delete')
+
+ if (! $form->{readonly}) {
+
+ %button = ('Update' => { ndx => 1, key => 'U', value => $locale->text('Update') },
+ 'Save' => { ndx => 3, key => 'S', value => $locale->text('Save') },
+ );
+
+ if ($form->{id}) {
+
+ if (!$form->{isassemblyitem}) {
+ $button{'Save as new'} = { ndx => 7, key => 'N', value => $locale->text('Save as new') };
+ }
+
+ if ($form->{orphaned}) {
+ $button{'Delete'} = { ndx => 16, key => 'D', value => $locale->text('Delete') };
+ }
+ }
+
+ for (sort { $button{$a}->{ndx} <=> $button{$b}->{ndx} } keys %button) { $form->print_button(\%button, $_) }
+
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ &assembly_row(++$form->{assembly_rows}) if $form->{item} eq 'assembly';
+
+ $form->hide_form(qw(login path sessionid callback previousform isassemblyitem));
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub search {
+
+ $form->get_partsgroup(\%myconfig, { searchitems => $form->{searchitems}});
+
+ IC->get_warehouses(\%myconfig, \%$form) unless $form->{searchitems} =~ /(service|labor)/;
+
+ if (@{ $form->{all_partsgroup} }) {
+ $partsgroup = qq|<option>\n|;
+
+ for (@{ $form->{all_partsgroup} }) { $partsgroup .= qq|<option value="|.$form->quote($_->{partsgroup}).qq|--$_->{id}">$_->{partsgroup}\n| }
+
+ $partsgroup = qq|
+ <th align=right nowrap>|.$locale->text('Group').qq|</th>
+ <td><select name=partsgroup>$partsgroup</select></td>
+|;
+
+ $l_partsgroup = qq|<input name=l_partsgroup class=checkbox type=checkbox value=Y> |.$locale->text('Group');
+ }
+
+ $l_listprice = qq|<input name=l_listprice class=checkbox type=checkbox value=Y> |.$locale->text('List Price');
+ $l_sellprice = qq|<input name=l_sellprice class=checkbox type=checkbox value=Y checked> |.$locale->text('Sell Price');
+ $l_lastcost = qq|<input name=l_lastcost class=checkbox type=checkbox value=Y checked> |.$locale->text('Last Cost');
+ $l_avgcost = qq|<input name=l_avgcost class=checkbox type=checkbox value=Y checked> |.$locale->text('Average Cost');
+ $l_linetotal = qq|<input name=l_linetotal class=checkbox type=checkbox value=Y> |.$locale->text('Line Total');
+ $l_markup = qq|<input name=l_markup class=checkbox type=checkbox value=Y> |.$locale->text('Markup');
+ $l_account = qq|<input name=l_account class=checkbox type=checkbox value=Y> |.$locale->text('Accounts');
+
+ $bought = qq|
+ <td>
+ <table>
+ <tr>
+ <td><input name=bought class=checkbox type=checkbox value=1></td>
+ <td nowrap>|.$locale->text('Vendor Invoices').qq|</td>
+ </tr>
+ <tr>
+ <td><input name=onorder class=checkbox type=checkbox value=1></td>
+ <td nowrap>|.$locale->text('Purchase Orders').qq|</td>
+ </tr>
+ <tr>
+ <td><input name=rfq class=checkbox type=checkbox value=1></td>
+ <td nowrap>|.$locale->text('RFQ').qq|</td>
+ </tr>
+ </table>
+ </td>
+|;
+
+ $sold = qq|
+ <td>
+ <table>
+ <tr>
+ <td><input name=sold class=checkbox type=checkbox value=1></td>
+ <td nowrap>|.$locale->text('Sales Invoices').qq|</td>
+ </tr>
+ <tr>
+ <td><input name=ordered class=checkbox type=checkbox value=1></td>
+ <td nowrap>|.$locale->text('Sales Orders').qq|</td>
+ </tr>
+ <tr>
+ <td><input name=quoted class=checkbox type=checkbox value=1></td>
+ <td nowrap>|.$locale->text('Quotations').qq|</td>
+ </tr>
+ </table>
+ </td>
+|;
+
+ $fromto = qq|
+ <td>
+ <table>
+ <tr>
+ <td nowrap><b>|.$locale->text('From').qq|</b>
+ <input name=transdatefrom size=11 title="$myconfig{dateformat}">
+ <b>|.$locale->text('To').qq|</b>
+ <input name=transdateto size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+ <tr>
+ <td nowrap><input name=method class=radio type=radio value=accrual checked>|.$locale->text('Accrual').qq|
+ <input name=method class=radio type=radio value=cash>|.$locale->text('Cash').qq|</td>
+ </tr>
+ <tr>
+ <td nowrap>
+ <input name=open class=checkbox type=checkbox value=1 checked> |.$locale->text('Open').qq|
+ <input name=closed class=checkbox type=checkbox> |.$locale->text('Closed').qq|
+ <input name=summary type=radio class=radio value=1> |.$locale->text('Summary').qq|
+ <input name=summary type=radio class=radio value=0 checked> |.$locale->text('Detail').qq|
+ </td>
+ </tr>
+ </table>
+ </td>
+|;
+
+ $l_name = qq|<input name=l_name class=checkbox type=checkbox value=Y> |.$locale->text('Name');
+ $l_curr = qq|<input name=l_curr class=checkbox type=checkbox value=Y> |.$locale->text('Currency');
+ $l_employee = qq|<input name=l_employee class=checkbox type=checkbox value=Y> |.$locale->text('Employee');
+ $l_serialnumber = qq|<input name=l_serialnumber class=checkbox type=checkbox value=Y> |.$locale->text('Serial Number');
+
+ $serialnumber = qq|
+ <th align=right nowrap>|.$locale->text('Serial Number').qq|</th>
+ <td><input name=serialnumber size=20></td>
+|;
+
+ $orphaned = qq|
+ <input name=itemstatus class=radio type=radio value=orphaned>&nbsp;|.$locale->text('Orphaned');
+
+ if ($form->{searchitems} =~ /(all|part|assembly)/) {
+
+ $onhand = qq|
+ <input name=itemstatus class=radio type=radio value=onhand>&nbsp;|.$locale->text('On Hand').qq|
+ <input name=itemstatus class=radio type=radio value=short>&nbsp;|.$locale->text('Short').qq|
+|;
+
+ $makemodel = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Make').qq|</th>
+ <td><input name=make size=20></td>
+ <th align=right nowrap>|.$locale->text('Model').qq|</th>
+ <td><input name=model size=20></td>
+ </tr>
+|;
+
+ $l_make = qq|<input name=l_make class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Make');
+ $l_model = qq|<input name=l_model class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Model');
+
+ $l_bin = qq|<input name=l_bin class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Bin');
+
+ $l_rop = qq|<input name=l_rop class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('ROP');
+
+ $l_weight = qq|<input name=l_weight class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Weight');
+
+
+ if (@{ $form->{all_warehouse} }) {
+ $selectwarehouse = "<option>\n";
+
+ for (@{ $form->{all_warehouse} }) { $selectwarehouse .= qq|<option value="$_->{description}--$_->{id}">$_->{description}\n| }
+
+ $warehouse = qq|
+ <th align=right nowrap>|.$locale->text('Warehouse').qq|</th>
+ <td><select name=warehouse>$selectwarehouse</select></td>
+|;
+
+ $l_warehouse = qq|<input name=l_warehouse class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Warehouse');
+
+ }
+
+ $drawing = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Drawing').qq|</th>
+ <td><input name=drawing size=20></td>
+ <th align=right nowrap>|.$locale->text('Microfiche').qq|</th>
+ <td><input name=microfiche size=20></td>
+ </tr>
+|;
+
+ $l_image = qq|<input name=l_image class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Image');
+
+ $l_drawing = qq|<input name=l_drawing class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Drawing');
+ $l_microfiche = qq|<input name=l_microfiche class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Microfiche');
+
+ }
+
+ if ($form->{searchitems} eq 'assembly') {
+
+ $bought = "";
+
+ $toplevel = qq|
+ <tr>
+ <td></td>
+ <td colspan=3>
+ <input name=null class=radio type=radio checked>&nbsp;|.$locale->text('Top Level').qq|
+ <input name=individual class=checkbox type=checkbox value=1>&nbsp;|.$locale->text('Individual Items').qq|
+ </td>
+ </tr>
+|;
+ $bom = qq|<input name=itemstatus type=radio value=bom>&nbsp;|.$locale->text('BOM');
+
+ } elsif ($form->{searchitems} eq 'component') {
+
+ $bought = "";
+ $sold = "";
+ $fromto = "";
+ $l_name = "";
+ $l_curr = "";
+ $l_employee = "";
+ $l_serialnumber = "";
+
+ $warehouse = "";
+ $serialnumber = "";
+ $orphaned = "";
+ $l_warehouse = "";
+ $l_account = "";
+
+ } elsif ($form->{searchitems} eq 'labor') {
+
+ $sold = "";
+
+ $warehouse = "";
+ $serialnumber = "";
+ $l_avgcost = "";
+
+ }
+
+
+ @a = ();
+ push @a, qq|<input name=l_runningnumber class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('No.');
+ push @a, qq|<input name=l_partnumber class=checkbox type=checkbox value=Y checked>&nbsp;|.$locale->text('Number');
+ push @a, qq|<input name=l_description class=checkbox type=checkbox value=Y checked>&nbsp;|.$locale->text('Description');
+ push @a, qq|<input name=l_qty class=checkbox type=checkbox value=Y checked>&nbsp;|.$locale->text('Qty');
+ push @a, qq|<input name=l_unit class=checkbox type=checkbox value=Y checked>&nbsp;|.$locale->text('Unit');
+ push @a, qq|<input name=l_priceupdate class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Updated');
+ push @a, $l_partsgroup if $l_partsgroup;
+ push @a, $l_listprice if $l_listprice;
+ push @a, $l_sellprice if $l_sellprice;
+ push @a, $l_lastcost if $l_lastcost;
+ push @a, $l_avgcost if $l_avgcost;
+ push @a, $l_linetotal if $l_linetotal;
+ push @a, $l_markup if $l_markup;
+ push @a, $l_bin if $l_bin;
+ push @a, $l_rop if $l_rop;
+ push @a, $l_weight if $l_weight;
+ push @a, qq|<input name=l_notes class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Notes');
+ push @a, $l_image if $l_image;
+ push @a, $l_drawing if $l_drawing;
+ push @a, $l_microfiche if $l_microfiche;
+ push @a, $l_make if $l_make;
+ push @a, $l_model if $l_model;
+ push @a, $l_warehouse if $l_warehouse;
+ push @a, $l_account if $l_account;
+ push @a, $l_name if $l_name;
+ push @a, $l_curr if $l_curr;
+ push @a, $l_employee if $l_employee;
+ push @a, $l_serialnumber if $l_serialnumber;
+
+ %title = ( all => 'Items',
+ part => 'Parts',
+ labor => 'Labor/Overhead',
+ service => 'Services',
+ assembly => 'Assemblies',
+ component => 'Components'
+ );
+
+# $locale->text('Items')
+# $locale->text('Parts')
+# $locale->text('Labor/Overhead')
+# $locale->text('Services')
+# $locale->text('Assemblies')
+# $locale->text('Components')
+
+ $form->{title} = $locale->text($title{$form->{searchitems}});
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+|;
+
+ $form->hide_form(qw(searchitems title));
+
+ print qq|
+
+<table width="100%">
+ <tr><th class=listtop>$form->{title}</th></tr>
+ <tr height="5"></tr>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Number').qq|</th>
+ <td><input name=partnumber size=20></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Description').qq|</th>
+ <td colspan=3><input name=description size=40></td>
+ </tr>
+ <tr>
+ $warehouse
+ </tr>
+ <tr>
+ $partsgroup
+ $serialnumber
+ </tr>
+ $makemodel
+ $drawing
+ $toplevel
+ <tr>
+ <td></td>
+ <td colspan=3>
+ <input name=itemstatus class=radio type=radio value=active checked>&nbsp;|.$locale->text('Active').qq|
+ $onhand
+ <input name=itemstatus class=radio type=radio value=obsolete>&nbsp;|.$locale->text('Obsolete').qq|
+ $orphaned
+ $bom
+ </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan=3>
+ <hr size=1 noshade>
+ </td>
+ </tr>
+ <tr>
+ <td></td>
+ $bought
+ $sold
+ $fromto
+ <tr>
+ <td></td>
+ <td colspan=3>
+ <hr size=1 noshade>
+ </td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Include in Report').qq|</th>
+ <td colspan=3>
+ <table>
+ <tr>
+|;
+
+ while (@a) {
+ for (1 .. 5) {
+ print qq|<td nowrap>|. shift @a;
+ print qq|</td>\n|;
+ }
+ print qq|</tr>\n|;
+ }
+
+ print qq|
+ </tr>
+ <tr>
+ <td><input name=l_subtotal class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Subtotal').qq|</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr><td colspan=4><hr size=3 noshade></td></tr>
+</table>
+
+<input type=hidden name=nextsub value=generate_report>
+
+<br>
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">|;
+
+ $form->hide_form(qw(path login sessionid));
+
+ print qq|
+</form>
+|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+</body>
+</html>
+|;
+
+}
+
+
+
+sub generate_report {
+
+ # setup $form->{sort}
+ unless ($form->{sort}) {
+ if ($form->{description} && !($form->{partnumber})) {
+ $form->{sort} = "description";
+ } else {
+ $form->{sort} = "partnumber";
+ }
+ }
+
+ if ($form->{itemstatus} eq 'bom') {
+ $form->{l_perassembly} = "Y" if $form->{l_qty} eq "Y";
+ $form->{individual} = 1;
+ $form->{title} = $locale->text('BOM');
+ }
+
+ $callback = "$form->{script}?action=generate_report";
+ for (qw(path login sessionid searchitems itemstatus individual bom l_linetotal method)) { $callback .= qq|&$_=$form->{$_}| }
+ for (qw(warehouse partsgroup title)) { $callback .= qq|&$_=|.$form->escape($form->{$_},1) }
+
+ # if we have a serialnumber limit search
+ if ($form->{serialnumber} || $form->{l_serialnumber}) {
+ $form->{l_serialnumber} = "Y";
+ unless ($form->{bought} || $form->{sold} || $form->{onorder} || $form->{ordered}) {
+ if ($form->{searchitems} eq 'assembly') {
+ $form->{sold} = $form->{ordered} = 1;
+ } else {
+ $form->{bought} = $form->{sold} = $form->{onorder} = $form->{ordered} = 1;
+ }
+ }
+ }
+
+
+ if ($form->{itemstatus} eq 'active') {
+ $option .= $locale->text('Active')." : ";
+ }
+ if ($form->{itemstatus} eq 'obsolete') {
+ $form->{onhand} = $form->{short} = 0;
+
+ $form->{l_qty} = 0;
+ $form->{warehouse} = "";
+ $form->{l_warehouse} = 0;
+
+ $option .= $locale->text('Obsolete')." : ";
+ }
+ if ($form->{itemstatus} eq 'orphaned') {
+ $form->{onhand} = $form->{short} = 0;
+ $form->{bought} = $form->{sold} = 0;
+ $form->{onorder} = $form->{ordered} = 0;
+ $form->{rfq} = $form->{quoted} = 0;
+
+ $form->{l_qty} = 0;
+ $form->{warehouse} = "";
+ $form->{l_warehouse} = 0;
+
+ $form->{transdatefrom} = $form->{transdateto} = "";
+
+ $option .= $locale->text('Orphaned')." : ";
+ }
+ if ($form->{itemstatus} eq 'onhand') {
+ $option .= $locale->text('On Hand')." : ";
+ $form->{l_onhand} = "Y";
+ }
+ if ($form->{itemstatus} eq 'short') {
+ $option .= $locale->text('Short')." : ";
+ $form->{l_onhand} = "Y";
+ $form->{l_rop} = "Y" unless $form->{searchitems} eq 'labor';
+
+ $form->{warehouse} = "";
+ $form->{l_warehouse} = 0;
+ }
+
+ if ($form->{l_account}) {
+ for (qw(l_name l_curr l_employee)) { delete $form->{$_} }
+ } else {
+ $ok = 0;
+ foreach $l (qw(l_name l_curr l_employee)) {
+ if ($form->{$l}) {
+ foreach $v (qw(onorder ordered rfq quoted bought sold)) {
+ if ($form->{$v}) {
+ $ok = 1;
+ last;
+ }
+ }
+ if (!$ok) {
+ for (qw(onorder ordered rfq quoted bought sold)) { $form->{$_} = 1 }
+ }
+ last;
+ }
+ }
+ }
+
+ if ($form->{onorder}) {
+ $form->{l_ordnumber} = "Y";
+ $callback .= "&onorder=$form->{onorder}";
+ $option .= $locale->text('Purchase Order')." : ";
+ }
+ if ($form->{ordered}) {
+ $form->{l_ordnumber} = "Y";
+ $callback .= "&ordered=$form->{ordered}";
+ $option .= $locale->text('Sales Order')." : ";
+ }
+ if ($form->{rfq}) {
+ $form->{l_quonumber} = "Y";
+ $callback .= "&rfq=$form->{rfq}";
+ $option .= $locale->text('RFQ')." : ";
+ }
+ if ($form->{quoted}) {
+ $form->{l_quonumber} = "Y";
+ $callback .= "&quoted=$form->{quoted}";
+ $option .= $locale->text('Quotation')." : ";
+ }
+ if ($form->{bought}) {
+ $form->{l_invnumber} = "Y";
+ $callback .= "&bought=$form->{bought}";
+ $option .= $locale->text('Vendor Invoice')." : ";
+ }
+ if ($form->{sold}) {
+ $form->{l_invnumber} = "Y";
+ $callback .= "&sold=$form->{sold}";
+ $option .= $locale->text('Sales Invoice')." : ";
+ }
+ if ($form->{sold} || $form->{bought}) {
+ $label = ucfirst $form->{method};
+ $option .= $locale->text($label) ." : ";
+ }
+
+ if ($form->{bought} || $form->{sold} || $form->{onorder} || $form->{ordered} || $form->{rfq} || $form->{quoted}) {
+
+ # warehouse stuff is meaningless
+ $form->{warehouse} = "";
+ $form->{l_warehouse} = 0;
+
+ $form->{l_account} = "";
+
+ if ($form->{open}) {
+ $callback .= "&open=$form->{open}";
+ $option .= $locale->text('Open');
+ }
+ if ($form->{closed}) {
+ $callback .= "&closed=$form->{closed}";
+ if ($form->{open}) {
+ $option .= " : ".$locale->text('Closed');
+ } else {
+ $option .= $locale->text('Closed');
+ }
+ }
+ if ($form->{summary}) {
+ $callback .= "&summary=$form->{summary}";
+ $option .= " : ".$locale->text('Summary');
+ $form->{l_ordnumber} = "";
+ $form->{l_quonumber} = "";
+ $form->{l_invnumber} = "";
+ } else {
+ $option .= " : ".$locale->text('Detail');
+ }
+
+ if ($form->{transdatefrom}) {
+ $callback .= "&transdatefrom=$form->{transdatefrom}";
+ $option .= "\n<br>".$locale->text('From')."&nbsp;".$locale->date(\%myconfig, $form->{transdatefrom}, 1);
+ }
+ if ($form->{transdateto}) {
+ $callback .= "&transdateto=$form->{transdateto}";
+ $option .= "\n<br>".$locale->text('To')."&nbsp;".$locale->date(\%myconfig, $form->{transdateto}, 1);
+ }
+ }
+
+ if ($form->{warehouse}) {
+ ($warehouse) = split /--/, $form->{warehouse};
+ $option .= "<br>".$locale->text('Warehouse')." : $warehouse";
+ $form->{l_warehouse} = 0;
+ }
+
+ $option .= "<br>";
+
+ if ($form->{partnumber}) {
+ $callback .= "&partnumber=".$form->escape($form->{partnumber},1);
+ $option .= $locale->text('Number').qq| : $form->{partnumber}<br>|;
+ }
+ if ($form->{partsgroup}) {
+ ($partsgroup) = split /--/, $form->{partsgroup};
+ $option .= $locale->text('Group').qq| : $partsgroup<br>|;
+ }
+ if ($form->{serialnumber}) {
+ $callback .= "&serialnumber=".$form->escape($form->{serialnumber},1);
+ $option .= $locale->text('Serial Number').qq| : $form->{serialnumber}<br>|;
+ }
+ if ($form->{description}) {
+ $callback .= "&description=".$form->escape($form->{description},1);
+ $description = $form->{description};
+ $description =~ s/\r?\n/<br>/g;
+ $option .= $locale->text('Description').qq| : $form->{description}<br>|;
+ }
+ if ($form->{make}) {
+ $callback .= "&make=".$form->escape($form->{make},1);
+ $option .= $locale->text('Make').qq| : $form->{make}<br>|;
+ }
+ if ($form->{model}) {
+ $callback .= "&model=".$form->escape($form->{model},1);
+ $option .= $locale->text('Model').qq| : $form->{model}<br>|;
+ }
+ if ($form->{drawing}) {
+ $callback .= "&drawing=".$form->escape($form->{drawing},1);
+ $option .= $locale->text('Drawing').qq| : $form->{drawing}<br>|;
+ }
+ if ($form->{microfiche}) {
+ $callback .= "&microfiche=".$form->escape($form->{microfiche},1);
+ $option .= $locale->text('Microfiche').qq| : $form->{microfiche}<br>|;
+ }
+
+ if ($form->{l_markup}) {
+ $form->{l_sellprice} = "Y";
+ $form->{l_lastcostmarkup} = "Y" if $form->{l_lastcost};
+ $form->{l_avgcostmarkup} = "Y" if $form->{l_avgcost};
+ }
+
+
+ @columns = $form->sort_columns(qw(partnumber description notes assemblypartnumber partsgroup make model bin onhand perassembly rop unit listprice linetotallistprice sellprice linetotalsellprice lastcost linetotallastcost lastcostmarkup avgcost linetotalavgcost avgcostmarkup curr priceupdate weight image drawing microfiche invnumber ordnumber quonumber name employee serialnumber warehouse));
+ unshift @columns, "runningnumber";
+
+ if ($form->{l_linetotal}) {
+ $form->{l_onhand} = "Y";
+ $form->{l_linetotalsellprice} = "Y" if $form->{l_sellprice};
+ $form->{l_linetotallastcost} = "Y" if $form->{l_lastcost};
+ $form->{l_linetotalavgcost} = "Y" if $form->{l_avgcost};
+ $form->{l_linetotallistprice} = "Y" if $form->{l_listprice};
+ }
+
+ if ($form->{searchitems} eq 'service') {
+ # remove bin, weight and rop from list
+ for (qw(bin weight rop)) { $form->{"l_$_"} = "" }
+
+ $form->{l_onhand} = "";
+ # qty is irrelevant unless bought or sold
+ if ($form->{bought} || $form->{sold} || $form->{onorder} ||
+ $form->{ordered} || $form->{rfq} || $form->{quoted}) {
+ $form->{l_onhand} = "Y";
+ } else {
+ for (qw(sellprice lastcost avgcost listprice)) { $form->{"l_linetotal$_"} = "" }
+ }
+ } else {
+ $form->{l_onhand} = "Y" if $form->{l_qty};
+ }
+
+ foreach $item (@columns) {
+ if ($form->{"l_$item"} eq "Y") {
+ push @column_index, $item;
+
+ # add column to callback
+ $callback .= "&l_$item=Y";
+ }
+ }
+
+ if ($form->{l_account} eq 'Y') {
+ if ($form->{searchitems} eq 'all' || $form->{searchitems} eq 'part') {
+ push @column_index, (qw(inventory income expense tax));
+ } elsif ($form->{searchitems} eq 'service') {
+ push @column_index, (qw(income expense tax));
+ } elsif ($form->{searchitems} eq 'assembly') {
+ push @column_index, (qw(income tax));
+ } else {
+ push @column_index, (qw(inventory expense));
+ }
+
+ $callback .= "&l_account=Y";
+ }
+
+ if ($form->{l_subtotal} eq 'Y') {
+ $callback .= "&l_subtotal=Y";
+ }
+
+ IC->all_parts(\%myconfig, \%$form);
+
+ $callback .= "&direction=$form->{direction}&oldsort=$form->{oldsort}";
+
+ $href = $callback;
+
+ $form->sort_order();
+
+ $callback =~ s/(direction=).*?\&/$1$form->{direction}\&/;
+
+ if ($form->{searchitems} eq 'assembly') {
+ if ($form->{l_partnumber}) {
+ # replace partnumber with partnumber_
+ $ndx = 0;
+ foreach $item (@column_index) {
+ $ndx++;
+ last if $item eq 'partnumber';
+ }
+
+ splice @column_index, $ndx, 0, map { "partnumber_$_" } (1 .. $form->{pncol});
+ $colspan = $form->{pncol} + 1;
+ }
+ }
+
+ if ($form->{searchitems} eq 'component') {
+ if ($form->{l_partnumber}) {
+ # splice it in after the partnumber
+ $ndx = 0;
+ foreach $item (@column_index) {
+ $ndx++;
+ last if $item eq 'partnumber';
+ }
+
+ @a = splice @column_index, 0, $ndx;
+ unshift @column_index, "assemblypartnumber";
+ unshift @column_index, @a;
+ }
+ }
+
+
+ $column_header{runningnumber} = qq|<th a class=listheading>&nbsp;</th>|;
+ $column_header{partnumber} = qq|<th nowrap colspan=$colspan><a class=listheading href=$href&sort=partnumber>|.$locale->text('Number').qq|</a></th>|;
+ $column_header{description} = qq|<th nowrap><a class=listheading href=$href&sort=description>|.$locale->text('Description').qq|</a></th>|;
+ $column_header{notes} = qq|<th nowrap class=listheading>|.$locale->text('Notes').qq|</th>|;
+ $column_header{partsgroup} = qq|<th nowrap><a class=listheading href=$href&sort=partsgroup>|.$locale->text('Group').qq|</a></th>|;
+ $column_header{bin} = qq|<th><a class=listheading href=$href&sort=bin>|.$locale->text('Bin').qq|</a></th>|;
+ $column_header{priceupdate} = qq|<th nowrap><a class=listheading href=$href&sort=priceupdate>|.$locale->text('Updated').qq|</a></th>|;
+ $column_header{onhand} = qq|<th class=listheading nowrap>|.$locale->text('Qty').qq|</th>|;
+ $column_header{perassembly} = qq|<th>&nbsp;</th>|;
+ $column_header{unit} = qq|<th class=listheading nowrap>|.$locale->text('Unit').qq|</th>|;
+ $column_header{listprice} = qq|<th class=listheading nowrap>|.$locale->text('List Price').qq|</th>|;
+ $column_header{lastcost} = qq|<th class=listheading nowrap>|.$locale->text('Last Cost').qq|</th>|;
+ $column_header{avgcost} = qq|<th class=listheading nowrap>|.$locale->text('Avg Cost').qq|</th>|;
+ $column_header{rop} = qq|<th class=listheading nowrap>|.$locale->text('ROP').qq|</th>|;
+ $column_header{weight} = qq|<th class=listheading nowrap>|.$locale->text('Weight').qq|</th>|;
+ $column_header{avgcostmarkup} = qq|<th class=listheading nowrap>%</th>|;
+ $column_header{lastcostmarkup} = qq|<th class=listheading nowrap>%</th>|;
+
+ $column_header{make} = qq|<th nowrap><a class=listheading href=$href&sort=make>|.$locale->text('Make').qq|</a></th>|;
+ $column_header{model} = qq|<th nowrap><a class=listheading href=$href&sort=model>|.$locale->text('Model').qq|</a></th>|;
+
+ $column_header{invnumber} = qq|<th nowrap><a class=listheading href=$href&sort=invnumber>|.$locale->text('Invoice Number').qq|</a></th>|;
+ $column_header{ordnumber} = qq|<th nowrap><a class=listheading href=$href&sort=ordnumber>|.$locale->text('Order Number').qq|</a></th>|;
+ $column_header{quonumber} = qq|<th nowrap><a class=listheading href=$href&sort=quonumber>|.$locale->text('Quotation').qq|</a></th>|;
+
+ $column_header{name} = qq|<th nowrap><a class=listheading href=$href&sort=name>|.$locale->text('Name').qq|</a></th>|;
+
+ $column_header{employee} = qq|<th nowrap><a class=listheading href=$href&sort=employee>|.$locale->text('Employee').qq|</a></th>|;
+
+ $column_header{sellprice} = qq|<th class=listheading nowrap>|.$locale->text('Sell Price').qq|</th>|;
+
+ for (qw(sellprice lastcost avgcost listprice)) { $column_header{"linetotal$_"} = qq|<th class=listheading nowrap>|.$locale->text('Extended').qq|</th>| }
+
+ $column_header{curr} = qq|<th nowrap><a class=listheading href=$href&sort=curr>|.$locale->text('Curr').qq|</a></th>|;
+
+ $column_header{image} = qq|<th class=listheading nowrap>|.$locale->text('Image').qq|</a></th>|;
+ $column_header{drawing} = qq|<th nowrap><a class=listheading href=$href&sort=drawing>|.$locale->text('Drawing').qq|</a></th>|;
+ $column_header{microfiche} = qq|<th nowrap><a class=listheading href=$href&sort=microfiche>|.$locale->text('Microfiche').qq|</a></th>|;
+
+ $column_header{serialnumber} = qq|<th nowrap><a class=listheading href=$href&sort=serialnumber>|.$locale->text('Serial Number').qq|</a></th>|;
+
+ $column_header{assemblypartnumber} = qq|<th nowrap><a class=listheading href=$href&sort=assemblypartnumber>|.$locale->text('Assembly').qq|</a></th>|;
+
+ $column_header{warehouse} = qq|<th nowrap class=listheading>|.$locale->text('Warehouse').qq|</th>|;
+
+ $column_header{inventory} = qq|<th nowrap class=listheading>|.$locale->text('Inventory').qq|</th>|;
+ $column_header{income} = qq|<th nowrap class=listheading>|.$locale->text('Income').qq|</th>|;
+ $column_header{expense} = qq|<th nowrap class=listheading>|.$locale->text('Expense').qq|</th>|;
+ $column_header{tax} = qq|<th nowrap class=listheading>|.$locale->text('Tax').qq|</th>|;
+
+ $form->header;
+
+ $i = 1;
+ if ($form->{searchitems} eq 'part') {
+ $button{'Goods & Services--Add Part'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Add Part').qq|"> |;
+ $button{'Goods & Services--Add Part'}{order} = $i++;
+ }
+ if ($form->{searchitems} eq 'service') {
+ $button{'Goods & Services--Add Service'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Add Service').qq|"> |;
+ $button{'Goods & Services--Add Service'}{order} = $i++;
+ }
+ if ($form->{searchitems} eq 'assembly') {
+ $button{'Goods & Services--Add Assembly'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Add Assembly').qq|"> |;
+ $button{'Goods & Services--Add Assembly'}{order} = $i++;
+ }
+ if ($form->{searchitems} eq 'labor') {
+ $button{'Goods & Services--Add Labor/Overhead'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Add Labor/Overhead').qq|"> |;
+ $button{'Goods & Services--Add Labor/Overhead'}{order} = $i++;
+ }
+
+ foreach $item (split /;/, $myconfig{acs}) {
+ delete $button{$item};
+ }
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+
+ <tr><td>$option</td></tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "\n$column_header{$_}" }
+
+ print qq|
+ </tr>
+ |;
+
+
+ # add order to callback
+ $form->{callback} = $callback .= "&sort=$form->{sort}";
+
+ # escape callback for href
+ $callback = $form->escape($callback);
+
+
+ $k = $#{@{ $form->{parts} }};
+ @groupby = ($form->{sort});
+
+ if ($form->{summary}) {
+ @groupby = ();
+ for (qw(partnumber description notes partsgroup make model bin curr priceupdate image drawing microfiche invnumber ordnumber quonumber name employee serialnumber warehouse)) { $a{$_} = 1 };
+
+ for (@column_index) {
+ if ($a{$_}) {
+ push @groupby, $_;
+ }
+ }
+ push @groupby, "id";
+ }
+
+ if ($k > 0) {
+ $samegroup = "";
+ for (@groupby) { $samegroup .= $form->{parts}->[0]->{$_} }
+ }
+
+ $i = 0;
+ $n = 0;
+
+ foreach $ref (@{ $form->{parts} }) {
+
+ $ref->{exchangerate} ||= 1;
+ $ref->{discount} *= 1;
+
+ if ($form->{summary}) {
+
+ $summary{$ref->{id}}{total} += $ref->{sellprice} * $ref->{onhand};
+ $summary{$ref->{id}}{onhand} += $ref->{onhand};
+
+ if ($n < $k) {
+ $nextgroup = "";
+ for (@groupby) { $nextgroup .= $form->{parts}->[$n+1]->{$_} }
+ $n++;
+
+ $form->{parts}->[$n]->{exchangerate} ||= 1;
+
+ if ($samegroup eq $nextgroup) {
+ for (qw(exchangerate discount)) { $form->{parts}->[$n]->{$_} = ($ref->{$_} + $form->{parts}->[$n]->{$_}) / 2 }
+ next;
+ }
+ $samegroup = $nextgroup;
+ }
+
+ $ref->{onhand} = $summary{$ref->{id}}{onhand};
+ $ref->{sellprice} = ($ref->{onhand}) ? $summary{$ref->{id}}{total} / $ref->{onhand} : 0;
+
+ $summary{$ref->{id}}{total} = 0;
+ $summary{$ref->{id}}{onhand} = 0;
+
+ }
+
+ if ($form->{l_subtotal} eq 'Y' && !$ref->{assemblyitem}) {
+ if ($sameitem ne $ref->{$form->{sort}}) {
+ &parts_subtotal;
+ $sameitem = $ref->{$form->{sort}};
+ }
+ }
+
+ $i++;
+
+ if ($form->{l_curr}) {
+ if ($ref->{module} eq 'oe') {
+ $ref->{sellprice} = $ref->{sellprice} * (1 - $ref->{discount});
+ } else {
+ for (qw(sellprice listprice lastcost avgcost)) { $ref->{$_} /= $ref->{exchangerate} }
+ }
+ } else {
+ if ($ref->{module} eq 'oe') {
+ $ref->{sellprice} = $ref->{sellprice} * (1 - $ref->{discount});
+ for (qw(sellprice listprice lastcost avgcost)) { $ref->{$_} *= $ref->{exchangerate} }
+ }
+ }
+
+ if (!$form->{summary}) {
+ for (qw(sellprice listprice lastcost avgcost)) { $ref->{$_} = $form->round_amount($ref->{$_}, 2) }
+ }
+
+ if ($form->{l_markup}) {
+ $ref->{lastcostmarkup} = (($ref->{sellprice} / $ref->{lastcost}) - 1) * 100 if $ref->{lastcost} != 0;
+ $ref->{avgcostmarkup} = (($ref->{sellprice} / $ref->{avgcost}) - 1) * 100 if $ref->{avgcost} != 0;
+ }
+
+ # use this for assemblies
+ $onhand = $ref->{onhand};
+
+ for (qw(description notes)) { $ref->{$_} =~ s/\r?\n/<br>/g }
+
+ for (1 .. $form->{pncol}) { $column_data{"partnumber_$_"} = "<td>&nbsp;</td>" }
+
+ $column_data{runningnumber} = "<td align=right>$i</td>";
+ $column_data{partnumber} = "<td><a href=$form->{script}?action=edit&id=$ref->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{partnumber}&nbsp;</a></td>";
+
+ if ($ref->{assemblypartnumber}) {
+ if ($sameid eq $ref->{id}) {
+ $i--;
+ for (qw(runningnumber partnumber)) { $column_data{$_} = "<td>&nbsp;</td>" }
+ }
+ }
+
+ $column_data{assemblypartnumber} = "<td><a href=$form->{script}?action=edit&id=$ref->{assembly_id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{assemblypartnumber}&nbsp;</a></td>";
+
+ if ($ref->{assemblyitem}) {
+ $onhand = 0 if $form->{sold};
+ $ref->{income} = "";
+
+ for (qw(runningnumber partnumber)) { $column_data{$_} = "<td>&nbsp;</td>" }
+ $i--;
+
+ $column_data{"partnumber_$ref->{stagger}"} = "<td><a href=$form->{script}?action=edit&id=$ref->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{partnumber}&nbsp;</a></td>";
+
+ }
+
+ for (qw(description notes partsgroup employee curr)) { $column_data{$_} = "<td>$ref->{$_}&nbsp;</td>" }
+
+ $column_data{onhand} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{onhand}, '', "&nbsp;")."</td>";
+ $column_data{perassembly} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{perassembly}, '', "&nbsp;")."</td>";
+
+ if ($form->{summary}) {
+ $column_data{sellprice} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{sellprice}, 4, "&nbsp;") . "</td>";
+ } else {
+ $column_data{sellprice} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{sellprice}, 2, "&nbsp;") . "</td>";
+ }
+ for (qw(listprice lastcost avgcost)) { $column_data{$_} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{$_}, 2, "&nbsp;") . "</td>" }
+
+ for (qw(lastcost avgcost)) { $column_data{"${_}markup"} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{"${_}markup"}, 1, "&nbsp;")."</td>" }
+
+ if ($form->{l_linetotal}) {
+ for (qw(sellprice lastcost avgcost listprice)) { $column_data{"linetotal$_"} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{onhand} * $ref->{$_}, 2, "&nbsp;")."</td>" }
+ }
+
+ if ($ref->{assemblyitem} && $ref->{stagger} > 1) {
+ for (qw(sellprice lastcost avgcost listprice)) { $column_data{"linetotal$_"} = "<td>&nbsp;</td>" }
+ }
+
+ if (!$ref->{assemblyitem}) {
+ $totalsellprice += $onhand * $ref->{sellprice};
+ $totallastcost += $onhand * $ref->{lastcost};
+ $totalavgcost += $onhand * $ref->{avgcost};
+ $totallistprice += $onhand * $ref->{listprice};
+
+ $subtotalonhand += $onhand;
+ $subtotalsellprice += $onhand * $ref->{sellprice};
+ $subtotallastcost += $onhand * $ref->{lastcost};
+ $subtotalavgcost += $onhand * $ref->{avgcost};
+ $subtotallistprice += $onhand * $ref->{listprice};
+ }
+
+ $column_data{rop} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{rop}, '', "&nbsp;")."</td>";
+ $column_data{weight} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{weight}, '', "&nbsp;")."</td>";
+ $column_data{unit} = "<td>$ref->{unit}&nbsp;</td>";
+ $column_data{bin} = "<td>$ref->{bin}&nbsp;</td>";
+ $column_data{priceupdate} = "<td>$ref->{priceupdate}&nbsp;</td>";
+
+ $ref->{module} = 'ps' if $ref->{till};
+ $column_data{invnumber} = ($ref->{module} ne 'oe') ? "<td><a href=$ref->{module}.pl?action=edit&type=invoice&id=$ref->{trans_id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{invnumber}&nbsp;</a></td>" : "<td>$ref->{invnumber}&nbsp;</td>";
+ $column_data{ordnumber} = ($ref->{module} eq 'oe') ? "<td><a href=$ref->{module}.pl?action=edit&type=$ref->{type}&id=$ref->{trans_id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{ordnumber}&nbsp;</a></td>" : "<td>$ref->{ordnumber}&nbsp;</td>";
+ $column_data{quonumber} = ($ref->{module} eq 'oe' && !$ref->{ordnumber}) ? "<td><a href=$ref->{module}.pl?action=edit&type=$ref->{type}&id=$ref->{trans_id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{quonumber}&nbsp;</a></td>" : "<td>$ref->{quonumber}&nbsp;</td>";
+
+ $column_data{name} = "<td>$ref->{name}&nbsp;</td>";
+
+ $column_data{image} = ($ref->{image}) ? "<td><a href=$ref->{image}><img src=$ref->{image} height=32 border=0></a></td>" : "<td>&nbsp;</td>";
+ $column_data{drawing} = ($ref->{drawing}) ? "<td><a href=$ref->{drawing}>$ref->{drawing}</a></td>" : "<td>&nbsp;</td>";
+ $column_data{microfiche} = ($ref->{microfiche}) ? "<td><a href=$ref->{microfiche}>$ref->{microfiche}</a></td>" : "<td>&nbsp;</td>";
+
+ for (qw(make model serialnumber warehouse inventory income expense tax)) { $column_data{$_} = "<td>$ref->{$_}&nbsp;</td>" }
+
+ $j++; $j %= 2;
+ print "<tr class=listrow$j>";
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ $sameid = $ref->{id};
+
+ }
+
+
+ if ($form->{l_subtotal} eq 'Y') {
+ &parts_subtotal;
+ }
+
+ if ($form->{"l_linetotal"}) {
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+ $column_data{linetotalsellprice} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totalsellprice, 2, "&nbsp;")."</th>";
+ $column_data{linetotallastcost} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totallastcost, 2, "&nbsp;")."</th>";
+ $column_data{linetotalavgcost} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totalavgcost, 2, "&nbsp;")."</th>";
+ $column_data{linetotallistprice} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totallistprice, 2, "&nbsp;")."</th>";
+
+ print "<tr class=listtotal>";
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|</tr>
+ |;
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr><td><hr size=3 noshade></td></tr>
+</table>
+
+|;
+
+ print qq|
+
+<br>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=item value=$form->{searchitems}>
+|;
+
+ $form->hide_form(qw(callback path login sessionid));
+
+ foreach $item (sort { $a->{order} <=> $b->{order} } %button) {
+ print $item->{code};
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub parts_subtotal {
+
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+ $subtotalonhand = 0 if ($form->{searchitems} eq 'assembly' && $form->{individual});
+
+ $column_data{onhand} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotalonhand, '', "&nbsp;")."</th>";
+
+ $column_data{linetotalsellprice} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotalsellprice, 2, "&nbsp;")."</th>";
+ $column_data{linetotallistprice} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotallistprice, 2, "&nbsp;")."</th>";
+ $column_data{linetotallastcost} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotallastcost, 2, "&nbsp;")."</th>";
+ $column_data{linetotalavgcost} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotalavgcost, 2, "&nbsp;")."</th>";
+
+ $subtotalonhand = 0;
+ $subtotalsellprice = 0;
+ $subtotallistprice = 0;
+ $subtotallastcost = 0;
+ $subtotalavgcost = 0;
+
+ print "<tr class=listsubtotal>";
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+}
+
+
+sub requirements {
+
+ $form->get_partsgroup(\%myconfig, { searchitems => 'parts'});
+ $form->all_years(\%myconfig);
+
+ if (@{ $form->{all_partsgroup} }) {
+ $partsgroup = qq|<option>\n|;
+
+ for (@{ $form->{all_partsgroup} }) { $partsgroup .= qq|<option value="|.$form->quote($_->{partsgroup}).qq|--$_->{id}">$_->{partsgroup}\n| }
+
+ $partsgroup = qq|
+ <th align=right nowrap>|.$locale->text('Group').qq|</th>
+ <td><select name=partsgroup>$partsgroup</select></td>
+|;
+
+ $l_partsgroup = qq|<input name=l_partsgroup class=checkbox type=checkbox value=Y> |.$locale->text('Group');
+ }
+
+ if (@{ $form->{all_years} }) {
+ # accounting years
+ $form->{selectaccountingyear} = qq|<option>\n|;
+ for (@{ $form->{all_years} }) { $form->{selectaccountingyear} .= qq|<option>$_\n| }
+
+
+ $selectfrom = qq|
+ <tr>
+ <th align=right>|.$locale->text('Period').qq|</th>
+ <td colspan=3>
+ <table>
+ <tr>
+ <td>
+ <select name=year>$form->{selectaccountingyear}</select>
+ </td>
+ <td>
+|;
+
+ $selectfrom .= qq|
+ <table>
+ <tr>
+|;
+
+ for (sort keys %{ $form->{all_month} }) {
+ $i = ($_ * 1) - 1;
+ if (($i % 3) == 0) {
+ $selectfrom .= qq|
+ </tr>
+ <tr>
+|;
+ }
+
+ $i = $_ * 1;
+
+ $selectfrom .= qq|
+ <td nowrap><input name="l_month_$i" class checkbox type=checkbox value=Y>&nbsp;|.$locale->text($form->{all_month}{$_}).qq|</td>\n|;
+ }
+
+ $selectfrom .= qq|
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+|;
+ } else {
+ $form->error($locale->text('No History!'));
+ }
+
+ $form->{title} = $locale->text('Parts Requirements');
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+|;
+
+ print qq|
+
+<table width="100%">
+
+ <tr><th class=listtop>$form->{title}</th></tr>
+ <tr height="5"></tr>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Number').qq|</th>
+ <td><input name=partnumber size=20></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Description').qq|</th>
+ <td colspan=3><input name=description size=40></td>
+ </tr>
+ <tr>
+ $partsgroup
+ </tr>
+ $selectfrom
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<input type=hidden name=nextsub value=requirements_report>
+<input type=hidden name=sort value=partnumber>
+
+<br>
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">|;
+
+ $form->hide_form(qw(path login sessionid));
+
+ print qq|
+</form>
+|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+</body>
+</html>
+|;
+
+}
+
+
+
+sub requirements_report {
+
+ $callback = "$form->{script}?action=requirements_report";
+ for (qw(path login sessionid year)) { $callback .= qq|&$_=$form->{$_}| }
+ for (qw(partsgroup)) { $callback .= qq|&$_=|.$form->escape($form->{$_},1) }
+
+ if ($form->{partnumber}) {
+ $callback .= "&partnumber=".$form->escape($form->{partnumber},1);
+ $option .= $locale->text('Number').qq| : $form->{partnumber}<br>|;
+ }
+ if ($form->{partsgroup}) {
+ ($partsgroup) = split /--/, $form->{partsgroup};
+ $option .= $locale->text('Group').qq| : $partsgroup<br>|;
+ }
+ if ($form->{description}) {
+ $callback .= "&description=".$form->escape($form->{description},1);
+ $description = $form->{description};
+ $description =~ s/\r?\n/<br>/g;
+ $option .= $locale->text('Description').qq| : $form->{description}<br>|;
+ }
+
+
+ @column_index = $form->sort_columns(qw(partnumber description));
+ unshift @column_index, "runningnumber";
+
+ for (1 .. 12) {
+ if ($form->{"l_month_$_"}) {
+ $callback .= qq|&l_month_$_=$form->{"l_month_$_"}|;
+ push @column_index, $_;
+ $month{$_} = 1;
+ }
+ }
+
+ push @column_index, "year" unless %month;
+ push @column_index, qw(onhand so po order);
+
+ IC->requirements(\%myconfig, \%$form);
+
+ $form->sort_order();
+
+ $callback .= "&direction=$form->{direction}&oldsort=$form->{oldsort}";
+
+ $href = $callback;
+
+ $callback =~ s/(direction=).*?\&/$1$form->{direction}\&/;
+
+ if (%month) {
+ $option .= $locale->text('Year').qq| : $form->{year}<br>|;
+ }
+
+
+ $column_header{runningnumber} = qq|<th a class=listheading>&nbsp;</th>|;
+ $column_header{partnumber} = qq|<th nowrap colspan=$colspan><a class=listheading href=$href&sort=partnumber>|.$locale->text('Number').qq|</a></th>|;
+ $column_header{description} = qq|<th nowrap><a class=listheading href=$href&sort=description>|.$locale->text('Description').qq|</a></th>|;
+ $column_header{onhand} = qq|<th class=listheading nowrap>|.$locale->text('Onhand').qq|</th>|;
+ $column_header{so} = qq|<th class=listheading nowrap>|.$locale->text('SO').qq|</th>|;
+ $column_header{po} = qq|<th class=listheading nowrap>|.$locale->text('PO').qq|</th>|;
+ $column_header{order} = qq|<th class=listheading nowrap>|.$locale->text('Order').qq|</th>|;
+ $column_header{year} = qq|<th class=listheading nowrap>$form->{year}</th>|;
+
+ for (sort { $a <=> $b } keys %month) { $column_header{$_} = qq|<th class=listheading nowrap>|.$locale->text($locale->{SHORT_MONTH}[$_-1]).qq|</th>| }
+
+ $form->{title} = $locale->text('Parts Requirements');
+
+ $form->header;
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+
+ <tr><td>$option</td></tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "\n$column_header{$_}" }
+
+ print qq|
+ </tr>
+ |;
+
+
+ # add order to callback
+ $form->{callback} = $callback .= "&sort=$form->{sort}";
+
+ # escape callback for href
+ $callback = $form->escape($callback);
+
+ if (@{ $form->{parts} }) {
+ $sameid = $form->{parts}->[0]->{id};
+ }
+
+ for (keys %month) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $i = 0;
+ $qty = 0;
+ foreach $ref (@{ $form->{parts} }) {
+
+ if ($ref->{id} != $sameid) {
+
+ $i++;
+ $column_data{runningnumber} = "<td align=right>$i</td>";
+
+ $order = 0 if $order < 0;
+ $column_data{order} = "<td align=right>".$form->format_amount(\%myconfig, $order, '', "-")."</td>";
+ $j++; $j %= 2;
+ print "<tr class=listrow$j>";
+
+ for (@column_index) {
+ print "\n$column_data{$_}";
+ $column_data{$_} = "<td>&nbsp;</td>";
+ }
+
+ print qq|
+ </tr>
+|;
+ $qty = 0;
+ }
+
+
+ $ref->{description} =~ s/\r?\n/<br>/g;
+
+ $column_data{partnumber} = "<td><a href=$form->{script}?action=edit&id=$ref->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{partnumber}&nbsp;</a></td>";
+
+ $column_data{description} = "<td>$ref->{description}&nbsp;</td>";
+
+ $column_data{onhand} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{onhand}, '', "&nbsp;")."</td>";
+ $column_data{so} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{so}, '', "&nbsp;")."</td>";
+ $column_data{po} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{po}, '', "&nbsp;")."</td>";
+
+ $column_data{$ref->{month}} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{qty}, '', "&nbsp;")."</td>";
+ if (%month) {
+ $qty += $ref->{qty} if exists $month{$ref->{month}};
+ } else {
+ $qty += $ref->{qty};
+ }
+
+ $column_data{year} = "<td align=right>".$form->format_amount(\%myconfig, $qty, '', "&nbsp;")."</td>";
+
+ $order = $qty + $ref->{so} - $ref->{po} - $ref->{onhand};
+
+ $sameid = $ref->{id};
+
+ }
+
+ if (@{ $form->{parts} }) {
+ $i++;
+ $column_data{runningnumber} = "<td align=right>$i</td>";
+
+ $order = 0 if $order < 0;
+ $column_data{order} = "<td align=right>".$form->format_amount(\%myconfig, $order, '', "-")."</td>";
+ $j++; $j %= 2;
+ print "<tr class=listrow$j>";
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr><td><hr size=3 noshade></td></tr>
+</table>
+
+|;
+
+ print qq|
+
+<br>
+
+<form method=post action=$form->{script}>
+
+|;
+
+ $form->hide_form(qw(callback path login sessionid));
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub makemodel_row {
+ my ($numrows) = @_;
+
+ for (qw(make model)) { $form->{"${_}_$i"} = $form->quote($form->{"${_}_$i"}) }
+
+ print qq|
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+ <th class="listheading">|.$locale->text('Make').qq|</th>
+ <th class="listheading">|.$locale->text('Model').qq|</th>
+ </tr>
+|;
+
+ for $i (1 .. $numrows) {
+ print qq|
+ <tr>
+ <td><input name="make_$i" size=30 value="$form->{"make_$i"}"></td>
+ <td><input name="model_$i" size=30 value="$form->{"model_$i"}"></td>
+ </tr>
+|;
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+|;
+
+}
+
+
+sub vendor_row {
+ my ($numrows) = @_;
+
+ $form->{selectvendor} = $form->unescape($form->{selectvendor});
+
+ $currency = qq|
+ <th class="listheading">|.$locale->text('Curr').qq|</th>| if $form->{selectcurrency};
+
+ print qq|
+ <input type=hidden name=selectvendor value="|.$form->escape($form->{selectvendor},1).qq|">
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+ <th class="listheading">|.$locale->text('Vendor').qq|</th>
+ <th class="listheading">|.$locale->text('Number').qq|</th>
+ <th class="listheading">|.$locale->text('Cost').qq|</th>
+ $currency
+ <th class="listheading">|.$locale->text('Leadtime').qq|</th>
+ </tr>
+|;
+
+ for $i (1 .. $numrows) {
+
+ if ($form->{selectcurrency}) {
+ $form->{selectcurrency} =~ s/ selected//;
+ $form->{selectcurrency} =~ s/option>$form->{"vendorcurr_$i"}/option selected>$form->{"vendorcurr_$i"}/;
+ $currency = qq|
+ <td><select name="vendorcurr_$i">$form->{selectcurrency}</select></td>|;
+ }
+
+ if ($i == $numrows) {
+
+ $vendor = qq|
+ <td><input name="vendor_$i" size=35 value="$form->{"vendor_$i"}"></td>
+|;
+
+ if ($form->{selectvendor}) {
+ $vendor = qq|
+ <td width=99%><select name="vendor_$i">$form->{selectvendor}</select></td>
+|;
+ }
+
+ } else {
+
+ ($vendor) = split /--/, $form->{"vendor_$i"};
+ $vendor = qq|
+ <td>$vendor
+ <input type=hidden name="vendor_$i" value="$form->{"vendor_$i"}">
+ </td>
+|;
+ }
+
+ $form->{"partnumber_$i"} = $form->quote($form->{"partnumber_$i"});
+ print qq|
+ <tr>
+ $vendor
+ <td><input name="partnumber_$i" size=20 value="$form->{"partnumber_$i"}"></td>
+ <td><input name="lastcost_$i" size=10 value=|.$form->format_amount(\%myconfig, $form->{"lastcost_$i"}, 2).qq|></td>
+ $currency
+ <td nowrap><input name="leadtime_$i" size=5 value=|.$form->format_amount(\%myconfig, $form->{"leadtime_$i"}).qq|> <b>|.$locale->text('days').qq|</b></td>
+ </tr>
+|;
+
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+|;
+
+}
+
+
+sub customer_row {
+ my ($numrows) = @_;
+
+ if ($form->{selectpricegroup}) {
+ $pricegroup = qq|
+ <th class="listheading">|.$locale->text('Pricegroup').qq|
+ </th>
+|;
+ }
+
+ $form->{selectcustomer} = $form->unescape($form->{selectcustomer});
+ $form->{selectpricegroup} = $form->unescape($form->{selectpricegroup});
+
+ $form->hide_form(qw(selectcurrency));
+
+ $currency = qq|<th class="listheading">|.$locale->text('Curr').qq|</th>| if $form->{selectcurrency};
+
+ print qq|
+ <input type=hidden name=selectcustomer value="|.$form->escape($form->{selectcustomer},1).qq|">
+ <input type=hidden name=selectpricegroup value="|.$form->escape($form->{selectpricegroup},1).qq|">
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+ <th class="listheading">|.$locale->text('Customer').qq|</th>
+ $pricegroup
+ <th class="listheading">|.$locale->text('Break').qq|</th>
+ <th class="listheading">|.$locale->text('Sell Price').qq|</th>
+ $currency
+ <th class="listheading">|.$locale->text('From').qq|</th>
+ <th class="listheading">|.$locale->text('To').qq|</th>
+ </tr>
+|;
+
+ for $i (1 .. $numrows) {
+
+ if ($form->{selectcurrency}) {
+ $form->{selectcurrency} =~ s/ selected//;
+ $form->{selectcurrency} =~ s/option>$form->{"customercurr_$i"}/option selected>$form->{"customercurr_$i"}/;
+ $currency = qq|
+ <td><select name="customercurr_$i">$form->{selectcurrency}</select></td>|;
+ }
+
+ if ($i == $numrows) {
+ $customer = qq|
+ <td><input name="customer_$i" size=35 value="$form->{"customer_$i"}"></td>
+ |;
+
+ if ($form->{selectcustomer}) {
+ $customer = qq|
+ <td><select name="customer_$i">$form->{selectcustomer}</select></td>
+|;
+ }
+
+ if ($form->{selectpricegroup}) {
+ $pricegroup = qq|
+ <td><select name="pricegroup_$i">$form->{selectpricegroup}</select></td>
+|;
+ }
+
+ } else {
+ ($customer) = split /--/, $form->{"customer_$i"};
+ $customer = qq|
+ <td>$customer</td>
+ <input type=hidden name="customer_$i" value="$form->{"customer_$i"}">
+ |;
+
+ if ($form->{selectpricegroup}) {
+ ($pricegroup) = split /--/, $form->{"pricegroup_$i"};
+ $pricegroup = qq|
+ <td>$pricegroup</td>
+ <input type=hidden name="pricegroup_$i" value="$form->{"pricegroup_$i"}">
+|;
+ }
+ }
+
+
+ print qq|
+ <tr>
+ $customer
+ $pricegroup
+
+ <td><input name="pricebreak_$i" size=5 value=|.$form->format_amount(\%myconfig, $form->{"pricebreak_$i"}).qq|></td>
+ <td><input name="customerprice_$i" size=10 value=|.$form->format_amount(\%myconfig, $form->{"customerprice_$i"}, 2).qq|></td>
+ $currency
+ <td><input name="validfrom_$i" size=11 title="$myconfig{dateformat}" value="$form->{"validfrom_$i"}"></td>
+ <td><input name="validto_$i" size=11 title="$myconfig{dateformat}" value="$form->{"validto_$i"}"></td>
+ </tr>
+|;
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+|;
+
+}
+
+
+
+sub assembly_row {
+ my ($numrows) = @_;
+
+ @column_index = qw(runningnumber qty unit bom adj partnumber description sellprice listprice lastcost);
+
+ if ($form->{selectassemblypartsgroup}) {
+ $form->{selectassemblypartsgroup} = $form->unescape($form->{selectassemblypartsgroup});
+ @column_index = qw(runningnumber qty unit bom adj partnumber description partsgroup sellprice listprice lastcost);
+ }
+
+ delete $form->{previousform};
+
+ # change callback
+ $form->{old_callback} = $form->{callback};
+ $callback = $form->{callback};
+ $form->{callback} = "$form->{script}?action=display_form";
+
+ # delete action
+ for (qw(action header)) { delete $form->{$_} }
+
+ $form->{baseassembly} = 0;
+ $previousform = "";
+ # save form variables in a previousform variable
+ $form->{selectcustomer} = ""; # we seem to have run into a 40kb limit
+ foreach $key (sort keys %$form) {
+ # escape ampersands
+ $form->{$key} =~ s/&/%26/g;
+ $previousform .= qq|$key=$form->{$key}&| if $form->{$key};
+ }
+ chop $previousform;
+ $form->{previousform} = $form->escape($previousform, 1);
+
+ $form->{sellprice} = 0;
+ $form->{listprice} = 0;
+ $form->{lastcost} = 0;
+ $form->{weight} = 0;
+
+ $form->{callback} = $callback;
+
+
+ $column_header{runningnumber} = qq|<th nowrap width=5%>|.$locale->text('Item').qq|</th>|;
+ $column_header{qty} = qq|<th align=left nowrap width=10%>|.$locale->text('Qty').qq|</th>|;
+ $column_header{unit} = qq|<th align=left nowrap width=5%>|.$locale->text('Unit').qq|</th>|;
+ $column_header{partnumber} = qq|<th align=left nowrap width=20%>|.$locale->text('Number').qq|</th>|;
+ $column_header{description} = qq|<th nowrap width=50%>|.$locale->text('Description').qq|</th>|;
+ $column_header{sellprice} = qq|<th align=right nowrap>|.$locale->text('Sell').qq|</th>|;
+ $column_header{listprice} = qq|<th align=right nowrap>|.$locale->text('List').qq|</th>|;
+ $column_header{lastcost} = qq|<th align=right nowrap>|.$locale->text('Cost').qq|</th>|;
+ $column_header{bom} = qq|<th>|.$locale->text('BOM').qq|</th>|;
+ $column_header{adj} = qq|<th>|.$locale->text('A').qq|</th>|;
+ $column_header{partsgroup} = qq|<th>|.$locale->text('Group').qq|</th>|;
+
+ print qq|
+ <p>
+
+ <table width=100%>
+ <tr class=listheading>
+ <th class=listheading>|.$locale->text('Individual Items').qq|</th>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+|;
+
+ for (@column_index) { print "\n$column_header{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ $spc = ($form->{path} =~ /lynx/) ? "." : " ";
+ $numrows-- if $form->{project_id};
+
+ for $i (1 .. $numrows) {
+ for (qw(partnumber description)) { $form->{"${_}_$i"} = $form->quote($form->{"${_}_$i"}) }
+
+ $linetotalsellprice = $form->round_amount($form->{"sellprice_$i"} * $form->{"qty_$i"}, 2);
+ $form->{sellprice} += $linetotalsellprice;
+
+ $linetotallistprice = $form->round_amount($form->{"listprice_$i"} * $form->{"qty_$i"}, 2);
+ $form->{listprice} += $linetotallistprice;
+
+ $linetotallastcost = $form->round_amount($form->{"lastcost_$i"} * $form->{"qty_$i"}, 2);
+ $form->{lastcost} += $linetotallastcost;
+
+
+ $form->{"qty_$i"} = $form->format_amount(\%myconfig, $form->{"qty_$i"});
+
+ $linetotalsellprice = $form->format_amount(\%myconfig, $linetotalsellprice, 2);
+ $linetotallistprice = $form->format_amount(\%myconfig, $linetotallistprice, 2);
+ $linetotallastcost = $form->format_amount(\%myconfig, $linetotallastcost, 2);
+
+ if ($i == $numrows && !$form->{project_id}) {
+
+ for (qw(runningnumber unit bom adj)) { $column_data{$_} = qq|<td></td>| }
+
+ $column_data{qty} = qq|<td><input name="qty_$i" size=6 value="$form->{"qty_$i"}" accesskey="$i" title="[Alt-$i]"></td>|;
+ $column_data{partnumber} = qq|<td><input name="partnumber_$i" size=15 value="$form->{"partnumber_$i"}"></td>|;
+ $column_data{description} = qq|<td><input name="description_$i" size=30 value="$form->{"description_$i"}"></td>|;
+ $column_data{partsgroup} = qq|<td><select name="partsgroup_$i">$form->{selectassemblypartsgroup}</select></td>|;
+
+ } else {
+
+ $column_data{partnumber} = qq|<td><input class=submit type=submit name=action value="$spc$form->{"partnumber_$i"}"></td>
+ <input type=hidden name="partnumber_$i" value="$form->{"partnumber_$i"}">|;
+
+ $column_data{runningnumber} = qq|<td><input name="runningnumber_$i" size=3 value="$i"></td>|;
+ $column_data{qty} = qq|<td><input name="qty_$i" size=6 value="$form->{"qty_$i"}" accesskey="$i" title="[Alt-$i]"></td>|;
+
+ for (qw(bom adj)) { $form->{"${_}_$i"} = ($form->{"${_}_$i"}) ? "checked" : "" }
+ $column_data{bom} = qq|<td align=center><input name="bom_$i" type=checkbox class=checkbox value=1 $form->{"bom_$i"}></td>|;
+ $column_data{adj} = qq|<td align=center><input name="adj_$i" type=checkbox class=checkbox value=1 $form->{"adj_$i"}></td>|;
+
+ ($partsgroup) = split /--/, $form->{"partsgroup_$i"};
+ $column_data{partsgroup} = qq|<td><input type=hidden name="partsgroup_$i" value="$form->{"partsgroup_$i"}">$partsgroup</td>|;
+
+ $column_data{unit} = qq|<td><input type=hidden name="unit_$i" value="$form->{"unit_$i"}">$form->{"unit_$i"}</td>|;
+ $column_data{description} = qq|<td><input type=hidden name="description_$i" value="$form->{"description_$i"}">$form->{"description_$i"}</td>|;
+
+ }
+
+ $column_data{sellprice} = qq|<td align=right>$linetotalsellprice</td>|;
+ $column_data{listprice} = qq|<td align=right>$linetotallistprice</td>|;
+ $column_data{lastcost} = qq|<td align=right>$linetotallastcost</td>|;
+
+ print qq|
+ <tr>|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+ $form->hide_form("id_$i","sellprice_$i","listprice_$i","lastcost_$i","weight_$i","assembly_$i");
+
+ }
+
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $column_data{sellprice} = "<th align=right>".$form->format_amount(\%myconfig, $form->{sellprice}, 2)."</th>";
+ $column_data{listprice} = "<th align=right>".$form->format_amount(\%myconfig, $form->{listprice}, 2)."</th>";
+ $column_data{lastcost} = "<th align=right>".$form->format_amount(\%myconfig, $form->{lastcost}, 2)."</th>";
+
+ print qq|
+ <tr>|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+ </table>
+ <input type=hidden name=assembly_rows value=$form->{assembly_rows}>
+ <input type=hidden name=nextsub value=edit_assemblyitem>
+ <input type=hidden name=selectassemblypartsgroup value="|.$form->escape($form->{selectassemblypartsgroup},1).qq|">
+|;
+
+}
+
+
+sub edit_assemblyitem {
+
+ $pn = substr($form->{action}, 1);
+
+ $i = 0;
+ for (1 .. $form->{assembly_rows} - 1) {
+ $i++;
+ last if $form->{"partnumber_$_"} eq $pn;
+ }
+
+ $form->error($locale->text('unexpected error!')) unless $i;
+
+ $form->{baseassembly} = ($form->{baseassembly}) ? $form->{baseassembly} : $form->{"assembly_$i"};
+
+ $form->{callback} = qq|$form->{script}?action=edit&id=$form->{"id_$i"}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&rowcount=$i&baseassembly=$form->{baseassembly}&isassemblyitem=1&previousform=$form->{previousform}|;
+
+ $form->redirect;
+
+}
+
+
+sub update {
+
+ if ($form->{item} eq "assembly") {
+
+ $i = $form->{assembly_rows};
+ $i = $form->{assembly_rows} + 1 if $form->{project_id};
+
+ # if last row is empty check the form otherwise retrieve item
+ if (($form->{"partnumber_$i"} eq "") && ($form->{"description_$i"} eq "") && ($form->{"partsgroup_$i"} eq "")) {
+
+ &check_form;
+
+ } else {
+
+ IC->assembly_item(\%myconfig, \%$form);
+
+ $rows = scalar @{ $form->{item_list} };
+
+ if ($rows) {
+ $form->{"adj_$i"} = 1;
+
+ if ($rows > 1) {
+ $form->{makemodel_rows}--;
+ $form->{customer_rows}--;
+ &select_item;
+ exit;
+ } else {
+ $form->{"qty_$i"} = 1;
+ $form->{"adj_$i"} = 1;
+ for (qw(partnumber description unit)) { $form->{item_list}[$i]{$_} = $form->quote($form->{item_list}[$i]{$_}) }
+ for (keys %{ $form->{item_list}[0] }) { $form->{"${_}_$i"} = $form->{item_list}[0]{$_} }
+
+ if ($form->{item_list}[0]{partsgroup_id}) {
+ $form->{"partsgroup_$i"} = qq|$form->{item_list}[0]{partsgroup}--$form->{item_list}[0]{partsgroup_id}|;
+ }
+
+ $form->{"runningnumber_$i"} = $form->{assembly_rows};
+ $form->{assembly_rows}++;
+
+ &check_form;
+
+ }
+
+ } else {
+
+ $form->{rowcount} = $i;
+ $form->{assembly_rows}++;
+
+ &new_item;
+
+ }
+ }
+
+ } else {
+
+ &check_form;
+
+ }
+
+}
+
+
+sub check_vendor {
+
+ @flds = qw(vendor partnumber lastcost leadtime vendorcurr);
+ @a = ();
+ $count = 0;
+
+ for (qw(lastcost leadtime)) { $form->{"${_}_$form->{vendor_rows}"} = $form->parse_amount(\%myconfig, $form->{"${_}_$form->{vendor_rows}"}) }
+
+ for $i (1 .. $form->{vendor_rows} - 1) {
+
+ for (qw(lastcost leadtime)) { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) }
+
+ if ($form->{"lastcost_$i"} || $form->{"partnumber_$i"}) {
+
+ push @a, {};
+ $j = $#a;
+ for (@flds) { $a[$j]->{$_} = $form->{"${_}_$i"} }
+ $count++;
+
+ }
+ }
+
+ $i = $form->{vendor_rows};
+
+ if (!$form->{selectvendor}) {
+
+ if ($form->{"vendor_$i"} && !$form->{"vendor_id_$i"}) {
+ ($form->{vendor}) = split /--/, $form->{"vendor_$i"};
+ if (($j = $form->get_name(\%myconfig, vendor)) > 1) {
+ &select_name(vendor, $i);
+ exit;
+ }
+
+ if ($j == 1) {
+ # we got one name
+ $form->{"vendor_$i"} = qq|$form->{name_list}[0]->{name}--$form->{name_list}[0]->{id}|;
+ } else {
+ # name is not on file
+ $form->error(qq|$form->{"vendor_$i"} : |.$locale->text('Vendor not on file!'));
+ }
+ }
+ }
+
+ if ($form->{"vendor_$i"}) {
+ push @a, {};
+ $j = $#a;
+ for (@flds) { $a[$j]->{$_} = $form->{"${_}_$i"} }
+ $count++;
+ }
+
+ $form->redo_rows(\@flds, \@a, $count, $form->{vendor_rows});
+ $form->{vendor_rows} = $count;
+
+}
+
+
+sub check_customer {
+
+ @flds = qw(customer validfrom validto pricebreak customerprice pricegroup customercurr);
+ @a = ();
+ $count = 0;
+
+ for (qw(customerprice pricebreak)) { $form->{"${_}_$form->{customer_rows}"} = $form->parse_amount(\%myconfig, $form->{"${_}_$form->{customer_rows}"}) }
+
+ for $i (1 .. $form->{customer_rows} - 1) {
+
+ for (qw(customerprice pricebreak)) { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) }
+
+ if ($form->{"customerprice_$i"}) {
+ if ($form->{"pricebreak_$i"} || $form->{"customer_$i"} || $form->{"pricegroup_$i"}) {
+
+ push @a, {};
+ $j = $#a;
+ for (@flds) { $a[$j]->{$_} = $form->{"${_}_$i"} }
+ $count++;
+
+ }
+ }
+ }
+
+ $i = $form->{customer_rows};
+
+ if (!$form->{selectcustomer}) {
+
+ if ($form->{"customer_$i"} && !$form->{"customer_id_$i"}) {
+ ($form->{customer}) = split /--/, $form->{"customer_$i"};
+
+ if (($j = $form->get_name(\%myconfig, customer)) > 1) {
+ &select_name(customer, $i);
+ exit;
+ }
+
+ if ($j == 1) {
+ # we got one name
+ $form->{"customer_$i"} = qq|$form->{name_list}[0]->{name}--$form->{name_list}[0]->{id}|;
+ } else {
+ # name is not on file
+ $form->error(qq|$form->{customer} : |.$locale->text('Customer not on file!'));
+ }
+ }
+ }
+
+ if ($form->{"customer_$i"} || $form->{"pricegroup_$i"} || ($form->{"customerprice_$i"} || $form->{"pricebreak_$i"})) {
+ push @a, {};
+ $j = $#a;
+ for (@flds) { $a[$j]->{$_} = $form->{"${_}_$i"} }
+ $count++;
+ }
+
+ $form->redo_rows(\@flds, \@a, $count, $form->{customer_rows});
+ $form->{customer_rows} = $count;
+
+}
+
+
+
+sub select_name {
+ my ($table, $vr) = @_;
+
+ @column_index = qw(ndx name address);
+
+ $label = ucfirst $table;
+ $column_data{ndx} = qq|<th>&nbsp;</th>|;
+ $column_data{name} = qq|<th class=listheading>|.$locale->text($label).qq|</th>|;
+ $column_data{address} = qq|<th class=listheading colspan=5>|.$locale->text('Address').qq|</th>|;
+
+ # list items with radio button on a form
+ $form->header;
+
+ $title = $locale->text('Select from one of the names below');
+
+ print qq|
+<body>
+
+<form method=post action="$form->{script}">
+
+<input type=hidden name=vr value=$vr>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$title</th>
+ </tr>
+ <tr space=5></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ @column_index = qw(ndx name address city state zipcode country);
+
+ my $i = 0;
+ foreach $ref (@{ $form->{name_list} }) {
+ $checked = ($i++) ? "" : "checked";
+
+ $ref->{name} = $form->quote($ref->{name});
+
+ $column_data{ndx} = qq|<td><input name=ndx class=radio type=radio value=$i $checked></td>|;
+ $column_data{name} = qq|<td><input name="new_name_$i" type=hidden value="$ref->{name}">$ref->{name}</td>|;
+ $column_data{address} = qq|<td>$ref->{address1} $ref->{address2}|;
+ for (qw(city state zipcode country)) { $column_data{$_} = qq|<td>$ref->{$_}&nbsp;</td>| }
+
+ $j++; $j %= 2;
+ print qq|
+ <tr class=listrow$j>|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+
+<input name="new_id_$i" type=hidden value=$ref->{id}>
+
+|;
+
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<input name=lastndx type=hidden value=$i>
+
+|;
+
+ # delete variables
+ for (qw(action nextsub name_list)) { delete $form->{$_} }
+
+ $form->hide_form;
+
+ print qq|
+<input type=hidden name=nextsub value=name_selected>
+<input type=hidden name=vc value=$table>
+<br>
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+
+sub name_selected {
+
+ # replace the variable with the one checked
+
+ # index for new item
+ $i = $form->{ndx};
+
+ $form->{"$form->{vc}_$form->{vr}"} = qq|$form->{"new_name_$i"}--$form->{"new_id_$i"}|;
+ $form->{"$form->{vc}_id_$form->{vr}"} = $form->{"new_id_$i"};
+
+ # delete all the new_ variables
+ for $i (1 .. $form->{lastndx}) {
+ for (qw(id name)) { delete $form->{"new_${_}_$i"} }
+ }
+
+ for (qw(ndx lastndx nextsub)) { delete $form->{$_} }
+
+ &update;
+
+}
+
+
+sub save {
+
+ if ($form->{obsolete}) {
+ $form->error($locale->text("Inventory quantity must be zero before you can set this $form->{item} obsolete!")) if ($form->{onhand});
+ }
+
+# expand dynamic strings
+# $locale->text('Inventory quantity must be zero before you can set this part obsolete!')
+# $locale->text('Inventory quantity must be zero before you can set this assembly obsolete!')
+
+ $olditem = $form->{id};
+
+ # save part
+ $rc = IC->save(\%myconfig, \%$form);
+
+ $parts_id = $form->{id};
+
+ # load previous variables
+ if ($form->{previousform} && !$form->{callback}) {
+ # save the new form variables before splitting previousform
+ for (keys %$form) { $newform{$_} = $form->{$_} }
+
+ $previousform = $form->unescape($form->{previousform});
+ $baseassembly = $form->{baseassembly};
+
+ # don't trample on previous variables
+ for (keys %newform) { delete $form->{$_} }
+
+ # now take it apart and restore original values
+ foreach $item (split /&/, $previousform) {
+ ($key, $value) = split /=/, $item, 2;
+ $value =~ s/%26/&/g;
+ $form->{$key} = $value;
+ }
+
+
+ if ($form->{item} eq 'assembly') {
+
+ if ($baseassembly) {
+ #redo the assembly
+ $previousform =~ /\&id=(\d+)/;
+ $form->{id} = $1;
+
+ # restore original callback
+ $form->{callback} = $form->unescape($form->{old_callback});
+
+ &edit;
+ exit;
+ }
+
+ # undo number formatting
+ for (qw(weight listprice sellprice lastcost rop)) { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) }
+
+ $form->{assembly_rows}-- if $olditem;
+ $i = $newform{rowcount};
+ $form->{"qty_$i"} = 1 unless ($form->{"qty_$i"});
+
+ $form->{listprice} -= $form->{"listprice_$i"} * $form->{"qty_$i"};
+ $form->{sellprice} -= $form->{"sellprice_$i"} * $form->{"qty_$i"};
+ $form->{lastcost} -= $form->{"lastcost_$i"} * $form->{"qty_$i"};
+ $form->{weight} -= $form->{"weight_$i"} * $form->{"qty_$i"};
+
+ # change/add values for assembly item
+ for (qw(partnumber description bin unit weight listprice sellprice lastcost)) { $form->{"${_}_$i"} = $newform{$_} }
+
+ foreach $item (qw(listprice sellprice lastcost)) {
+ $form->{$item} += $form->{"${item}_$i"} * $form->{"qty_$i"};
+ $form->{$item} = $form->round_amount($form->{$item}, 2);
+ }
+
+ $form->{weight} += $form->{"weight_$i"} * $form->{"qty_$i"};
+
+ $form->{"adj_$i"} = 1 if !$olditem;
+
+ $form->{customer_rows}--;
+
+ } else {
+ # set values for last invoice/order item
+ $i = $form->{rowcount};
+ $form->{"qty_$i"} = 1 unless ($form->{"qty_$i"});
+
+ for (qw(partnumber description bin unit listprice sellprice partsgroup)) { $form->{"${_}_$i"} = $newform{$_} }
+ for (qw(inventory income expense)) {
+ $form->{"${_}_accno_id_$i"} = $newform{"IC_$_"};
+ $form->{"${_}_accno_id_$i"} =~ s/--.*//;
+ }
+ $form->{"sellprice_$i"} = $newform{lastcost} if ($form->{vendor_id});
+
+ if ($form->{exchangerate} != 0) {
+ $form->{"sellprice_$i"} = $form->round_amount($form->{"sellprice_$i"} / $form->{exchangerate}, 2);
+ }
+
+ for (split / /, $newform{taxaccounts}) { $form->{"taxaccounts_$i"} .= "$_ " if ($newform{"IC_tax_$_"}) }
+ chop $form->{"taxaccounts_$i"};
+
+ # credit remaining calculation
+ $amount = $form->{"sellprice_$i"} * (1 - $form->{"discount_$i"} / 100) * $form->{"qty_$i"};
+ for (split / /, $form->{"taxaccounts_$i"}) { $form->{"${_}_base"} += $amount }
+ if (!$form->{taxincluded}) {
+ for (split / /, $form->{"taxaccounts_$i"}) { $amount += ($form->{"${_}_base"} * $form->{"${_}_rate"}) }
+ }
+
+ $ml = 1;
+ if ($form->{type} =~ /invoice/) {
+ $ml = -1 if $form->{type} =~ /_invoice/;
+ }
+ $form->{creditremaining} -= ($amount * $ml);
+
+ }
+
+ $form->{"id_$i"} = $parts_id;
+ delete $form->{action};
+
+ # restore original callback
+ $callback = $form->unescape($form->{callback});
+ $form->{callback} = $form->unescape($form->{old_callback});
+ delete $form->{old_callback};
+
+ $form->{makemodel_rows}--;
+
+ # put callback together
+ foreach $key (keys %$form) {
+ # do single escape for Apache 2.0
+ $value = $form->escape($form->{$key}, 1);
+ $callback .= qq|&$key=$value|;
+ }
+ $form->{callback} = $callback;
+ }
+
+ # redirect
+ $form->redirect;
+
+}
+
+
+sub save_as_new {
+
+ $form->{id} = 0;
+ &save;
+
+}
+
+
+sub delete {
+
+ # redirect
+ if (IC->delete(\%myconfig, \%$form)) {
+ $form->redirect($locale->text('Item deleted!'));
+ } else {
+ $form->error($locale->text('Cannot delete item!'));
+ }
+
+}
+
+
+
+sub stock_assembly {
+
+ $form->{title} = $locale->text('Stock Assembly');
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width="100%">
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('Number').qq|</th>
+ <td><input name=partnumber size=20></td>
+ <td>&nbsp;</td>
+ </tr>
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('Description').qq|</th>
+ <td><input name=description size=40></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td><input name=checkinventory class=checkbox type=checkbox value=1>&nbsp;|.$locale->text('Check Inventory').qq|</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr><td><hr size=3 noshade></td></tr>
+</table>
+
+<input type=hidden name=sort value=partnumber>
+|;
+
+ $form->hide_form(qw(path login sessionid));
+
+ print qq|
+<input type=hidden name=nextsub value=list_assemblies>
+
+<br>
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">
+</form>
+|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+</body>
+</html>
+|;
+
+}
+
+
+
+
+sub list_assemblies {
+
+ IC->retrieve_assemblies(\%myconfig, \%$form);
+
+ $callback = "$form->{script}?action=list_assemblies&direction=$form->{direction}&oldsort=$form->{oldsort}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&checkinventory=$form->{checkinventory}";
+
+ $form->sort_order();
+ $href = "$form->{script}?action=list_assemblies&direction=$form->{direction}&oldsort=$form->{oldsort}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&checkinventory=$form->{checkinventory}";
+
+ if ($form->{partnumber}) {
+ $callback .= "&partnumber=".$form->escape($form->{partnumber},1);
+ $href .= "&partnumber=".$form->escape($form->{partnumber});
+ $form->{sort} = "partnumber" unless $form->{sort};
+ }
+ if ($form->{description}) {
+ $callback .= "&description=".$form->escape($form->{description},1);
+ $href .= "&description=".$form->escape($form->{description});
+ $form->{sort} = "description" unless $form->{sort};
+ }
+
+ $column_header{partnumber} = qq|<th><a class=listheading href=$href&sort=partnumber>|.$locale->text('Number').qq|</th>|;
+ $column_header{description} = qq|<th><a class=listheading href=$href&sort=description>|.$locale->text('Description').qq|</th>|;
+ $column_header{bin} = qq|<th><a class=listheading href=$href&sort=bin>|.$locale->text('Bin').qq|</th>|;
+ $column_header{onhand} = qq|<th class=listheading>|.$locale->text('Qty').qq|</th>|;
+ $column_header{rop} = qq|<th class=listheading>|.$locale->text('ROP').qq|</th>|;
+ $column_header{stock} = qq|<th class=listheading>|.$locale->text('Add').qq|</th>|;
+
+ @column_index = $form->sort_columns(qw(partnumber description bin onhand rop stock));
+
+ $form->{title} = $locale->text('Stock Assembly');
+
+
+ $form->header;
+
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr size=5></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "\n$column_header{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ # add sort and escape callback
+ $form->{callback} = $callback .= "&sort=$form->{sort}";
+
+ # escape callback for href
+ $callback = $form->escape($callback);
+
+
+ $i = 1;
+ foreach $ref (@{ $form->{assembly_items} }) {
+
+ for (qw(partnumber description)) { $ref->{$_} = $form->quote($ref->{$_}) }
+
+ $column_data{partnumber} = "<td width=20%><a href=$form->{script}?action=edit&id=$ref->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{partnumber}&nbsp;</a></td>";
+
+ $column_data{description} = qq|<td width=50%>$ref->{description}&nbsp;</td>|;
+ $column_data{bin} = qq|<td>$ref->{bin}&nbsp;</td>|;
+ $column_data{onhand} = qq|<td align=right>|.$form->format_amount(\%myconfig, $ref->{onhand}, "", "&nbsp;").qq|</td>|;
+ $column_data{rop} = qq|<td align=right>|.$form->format_amount(\%myconfig, $ref->{rop}, '', "&nbsp;").qq|</td>|;
+ $column_data{stock} = qq|<td width=10%><input name="qty_$i" size=10 value=|.$form->format_amount(\%myconfig, $ref->{stock}).qq|></td>
+ <input type=hidden name="stock_$i" value=$ref->{stock}>|;
+
+ $j++; $j %= 2;
+ print qq|<tr class=listrow$j><input name="id_$i" type=hidden value=$ref->{id}>\n|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ $i++;
+
+ }
+
+ $i--;
+ print qq|
+ </td>
+ </table>
+ <tr>
+ <td><hr size=3 noshade>
+ </tr>
+</table>
+|;
+
+ $form->hide_form(qw(checkinventory path login sessionid callback));
+
+ print qq|
+<input type=hidden name=rowcount value="$i">
+<input type=hidden name=nextsub value=restock_assemblies>
+
+<br>
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">
+
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub restock_assemblies {
+
+
+ if ($form->{checkinventory}) {
+ for (1 .. $form->{rowcount}) { $form->error($locale->text('Quantity exceeds available units to stock!')) if $form->parse_amount($myconfig, $form->{"qty_$_"}) > $form->{"stock_$_"} }
+ }
+
+ if (IC->restock_assemblies(\%myconfig, \%$form)) {
+ if ($form->{callback} =~ /(direction=)(.*?)\&/) {
+ $direction = ($2 eq 'ASC') ? 'DESC' : 'ASC';
+ }
+ $form->{callback} =~ s/direction=(.*?)\&/direction=$direction\&/;
+ $form->redirect($locale->text('Assemblies restocked!'));
+ } else {
+ $form->error($locale->text('Cannot stock assemblies!'));
+ }
+
+}
+
+
+sub continue { &{ $form->{nextsub} } };
+
+sub add_part { &add };
+sub add_service { &add };
+sub add_assembly { &add };
+sub add_labor_overhead { &add };
+
+
diff --git a/bin/lynx/io.pl b/bin/lynx/io.pl
new file mode 100755
index 00000000..fbc37ac7
--- /dev/null
+++ b/bin/lynx/io.pl
@@ -0,0 +1,1683 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2002
+#
+# Author: DWS Systems Inc.
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#######################################################################
+#
+# common routines used in is, ir, oe
+#
+#######################################################################
+
+# any custom scripts for this one
+if (-f "$form->{path}/custom_io.pl") {
+ eval { require "$form->{path}/custom_io.pl"; };
+}
+if (-f "$form->{path}/$form->{login}_io.pl") {
+ eval { require "$form->{path}/$form->{login}_io.pl"; };
+}
+
+
+1;
+# end of main
+
+
+# this is for our long dates
+# $locale->text('January')
+# $locale->text('February')
+# $locale->text('March')
+# $locale->text('April')
+# $locale->text('May ')
+# $locale->text('June')
+# $locale->text('July')
+# $locale->text('August')
+# $locale->text('September')
+# $locale->text('October')
+# $locale->text('November')
+# $locale->text('December')
+
+# this is for our short month
+# $locale->text('Jan')
+# $locale->text('Feb')
+# $locale->text('Mar')
+# $locale->text('Apr')
+# $locale->text('May')
+# $locale->text('Jun')
+# $locale->text('Jul')
+# $locale->text('Aug')
+# $locale->text('Sep')
+# $locale->text('Oct')
+# $locale->text('Nov')
+# $locale->text('Dec')
+
+
+sub display_row {
+ my $numrows = shift;
+
+ @column_index = qw(runningnumber partnumber description qty);
+
+ if ($form->{type} eq "sales_order") {
+ push @column_index, "ship";
+ $column_data{ship} = qq|<th class=listheading align=center width="auto">|.$locale->text('Ship').qq|</th>|;
+ }
+ if ($form->{type} eq "purchase_order") {
+ push @column_index, "ship";
+ $column_data{ship} = qq|<th class=listheading align=center width="auto">|.$locale->text('Recd').qq|</th>|;
+ }
+
+ for (qw(projectnumber partsgroup)) {
+ $form->{"select$_"} = $form->unescape($form->{"select$_"}) if $form->{"select$_"};
+ }
+
+ if ($form->{language_code} ne $form->{oldlanguage_code}) {
+ # rebuild partsgroup
+ $l{language_code} = $form->{language_code};
+ $l{searchitems} = 'nolabor' if $form->{vc} eq 'customer';
+
+ $form->get_partsgroup(\%myconfig, \%l);
+ if (@ { $form->{all_partsgroup} }) {
+ $form->{selectpartsgroup} = "<option>\n";
+ foreach $ref (@ { $form->{all_partsgroup} }) {
+ if ($ref->{translation}) {
+ $form->{selectpartsgroup} .= qq|<option value="$ref->{partsgroup}--$ref->{id}">$ref->{translation}\n|;
+ } else {
+ $form->{selectpartsgroup} .= qq|<option value="$ref->{partsgroup}--$ref->{id}">$ref->{partsgroup}\n|;
+ }
+ }
+ }
+ $form->{oldlanguage_code} = $form->{language_code};
+ }
+
+
+ push @column_index, qw(unit sellprice discount linetotal);
+
+ my $colspan = $#column_index + 1;
+
+ $form->{invsubtotal} = 0;
+ for (split / /, $form->{taxaccounts}) { $form->{"${_}_base"} = 0 }
+
+ $column_data{runningnumber} = qq|<th class=listheading nowrap>|.$locale->text('Item').qq|</th>|;
+ $column_data{partnumber} = qq|<th class=listheading nowrap>|.$locale->text('Number').qq|</th>|;
+ $column_data{description} = qq|<th class=listheading nowrap>|.$locale->text('Description').qq|</th>|;
+ $column_data{qty} = qq|<th class=listheading nowrap>|.$locale->text('Qty').qq|</th>|;
+ $column_data{unit} = qq|<th class=listheading nowrap>|.$locale->text('Unit').qq|</th>|;
+ $column_data{sellprice} = qq|<th class=listheading nowrap>|.$locale->text('Price').qq|</th>|;
+ $column_data{discount} = qq|<th class=listheading>%</th>|;
+ $column_data{linetotal} = qq|<th class=listheading nowrap>|.$locale->text('Extended').qq|</th>|;
+ $column_data{bin} = qq|<th class=listheading nowrap>|.$locale->text('Bin').qq|</th>|;
+ $column_data{onhand} = qq|<th class=listheading nowrap>|.$locale->text('OH').qq|</th>|;
+
+ print qq|
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+
+ $deliverydate = $locale->text('Delivery Date');
+ $serialnumber = $locale->text('Serial No.');
+ $projectnumber = $locale->text('Project');
+ $group = $locale->text('Group');
+ $sku = $locale->text('SKU');
+
+ $delvar = 'deliverydate';
+
+ if ($form->{type} =~ /_(order|quotation)$/) {
+ $reqdate = $locale->text('Required by');
+ $delvar = 'reqdate';
+ }
+
+ $exchangerate = $form->parse_amount(\%myconfig, $form->{exchangerate});
+ $exchangerate = ($exchangerate) ? $exchangerate : 1;
+
+ $spc = substr($myconfig{numberformat},-3,1);
+ for $i (1 .. $numrows) {
+ if ($spc eq '.') {
+ ($null, $dec) = split /\./, $form->{"sellprice_$i"};
+ } else {
+ ($null, $dec) = split /,/, $form->{"sellprice_$i"};
+ }
+ $dec = length $dec;
+ $decimalplaces = ($dec > 2) ? $dec : 2;
+
+ # undo formatting
+ for (qw(qty oldqty ship discount sellprice)) { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) }
+
+ if ($form->{"qty_$i"} != $form->{"oldqty_$i"}) {
+ # check pricematrix
+ @a = split / /, $form->{"pricematrix_$i"};
+ if (scalar @a > 2) {
+ foreach $item (@a) {
+ ($q, $p) = split /:/, $item;
+ if (($p * 1) && ($form->{"qty_$i"} >= ($q * 1))) {
+ ($dec) = ($p =~ /\.(\d+)/);
+ $dec = length $dec;
+ $decimalplaces = ($dec > 2) ? $dec : 2;
+ $form->{"sellprice_$i"} = $form->round_amount($p / $exchangerate, $decimalplaces);
+ }
+ }
+ }
+ }
+
+ $discount = $form->round_amount($form->{"sellprice_$i"} * $form->{"discount_$i"}/100, $decimalplaces);
+ $linetotal = $form->round_amount($form->{"sellprice_$i"} - $discount, $decimalplaces);
+ $linetotal = $form->round_amount($linetotal * $form->{"qty_$i"}, 2);
+
+
+ if (($rows = $form->numtextrows($form->{"description_$i"}, 46, 6)) > 1) {
+ $form->{"description_$i"} = $form->quote($form->{"description_$i"});
+ $column_data{description} = qq|<td><textarea name="description_$i" rows=$rows cols=46 wrap=soft>$form->{"description_$i"}</textarea></td>|;
+ } else {
+ $form->{"description_$i"} = $form->quote($form->{"description_$i"});
+ $column_data{description} = qq|<td><input name="description_$i" size=48 value="$form->{"description_$i"}"></td>|;
+ }
+
+ for (qw(partnumber sku unit)) { $form->{"${_}_$i"} = $form->quote($form->{"${_}_$i"}) }
+
+ $skunumber = qq|
+ <p><b>$sku</b> $form->{"sku_$i"}| if ($form->{vc} eq 'vendor' && $form->{"sku_$i"});
+
+
+ if ($form->{selectpartsgroup}) {
+ if ($i < $numrows) {
+ $partsgroup = qq|
+ <b>$group</b>
+ <input type=hidden name="partsgroup_$i" value="$form->{"partsgroup_$i"}">|;
+ ($form->{"partsgroup_$i"}) = split /--/, $form->{"partsgroup_$i"};
+ $partsgroup .= $form->{"partsgroup_$i"};
+ $partsgroup = "" unless $form->{"partsgroup_$i"};
+ }
+ }
+
+ $delivery = qq|
+ <td colspan=2 nowrap>
+ <b>${$delvar}</b>
+ <input name="${delvar}_$i" size=11 title="$myconfig{dateformat}" value="$form->{"${delvar}_$i"}"></td>
+|;
+
+ $column_data{runningnumber} = qq|<td><input name="runningnumber_$i" size=3 value=$i></td>|;
+ $column_data{partnumber} = qq|<td><input name="partnumber_$i" size=15 value="$form->{"partnumber_$i"}" accesskey="$i" title="[Alt-$i]">$skunumber</td>|;
+ $column_data{qty} = qq|<td align=right><input name="qty_$i" title="$form->{"onhand_$i"}" size=5 value=|.$form->format_amount(\%myconfig, $form->{"qty_$i"}).qq|></td>|;
+ $column_data{ship} = qq|<td align=right><input name="ship_$i" size=5 value=|.$form->format_amount(\%myconfig, $form->{"ship_$i"}).qq|></td>|;
+ $column_data{unit} = qq|<td><input name="unit_$i" size=5 value="$form->{"unit_$i"}"></td>|;
+ $column_data{sellprice} = qq|<td align=right><input name="sellprice_$i" size=9 value=|.$form->format_amount(\%myconfig, $form->{"sellprice_$i"}, $decimalplaces).qq|></td>|;
+ $column_data{discount} = qq|<td align=right><input name="discount_$i" size=3 value=|.$form->format_amount(\%myconfig, $form->{"discount_$i"}).qq|></td>|;
+ $column_data{linetotal} = qq|<td align=right>|.$form->format_amount(\%myconfig, $linetotal, 2).qq|</td>|;
+ $column_data{bin} = qq|<td>$form->{"bin_$i"}</td>|;
+ $column_data{onhand} = qq|<td>$form->{"onhand_$i"}</td>|;
+
+ print qq|
+ <tr valign=top>|;
+
+ for (@column_index) {
+ print "\n$column_data{$_}";
+ }
+
+ print qq|
+ </tr>
+<input type=hidden name="oldqty_$i" value="$form->{"qty_$i"}">
+|;
+
+ for (qw(orderitems_id id bin weight listprice lastcost taxaccounts pricematrix sku onhand assembly inventory_accno_id income_accno_id expense_accno_id)) {
+ $form->hide_form("${_}_$i");
+ }
+
+ $form->{selectprojectnumber} =~ s/ selected//;
+ $form->{selectprojectnumber} =~ s/(<option value="\Q$form->{"projectnumber_$i"}\E")/$1 selected/;
+
+ $project = qq|
+ <b>$projectnumber</b>
+ <select name="projectnumber_$i">$form->{selectprojectnumber}</select>
+| if $form->{selectprojectnumber};
+
+
+ if (($rows = $form->numtextrows($form->{"notes_$i"}, 46, 6)) > 1) {
+ $form->{"notes_$i"} = $form->quote($form->{"notes_$i"});
+ $notes = qq|<td><textarea name="notes_$i" rows=$rows cols=46 wrap=soft>$form->{"notes_$i"}</textarea></td>|;
+ } else {
+ $form->{"notes_$i"} = $form->quote($form->{"notes_$i"});
+ $notes = qq|<td><input name="notes_$i" size=48 value="$form->{"notes_$i"}"></td>|;
+ }
+
+ $serial = qq|
+ <td colspan=6 nowrap><b>$serialnumber</b> <input name="serialnumber_$i" value="$form->{"serialnumber_$i"}"></td>| if $form->{type} !~ /_quotation/;
+
+ if ($i == $numrows) {
+ $partsgroup = "";
+ if ($form->{selectpartsgroup}) {
+ $partsgroup = qq|
+ <b>$group</b>
+ <select name="partsgroup_$i">$form->{selectpartsgroup}</select>
+|;
+ }
+
+ $serial = "";
+ $project = "";
+ $delivery = "";
+ $notes = "";
+ }
+
+
+ # print second and third row
+ print qq|
+ <tr valign=top>
+ $delivery
+ $notes
+ $serial
+ </tr>
+ <tr valign=top>
+ <td colspan=$colspan>
+ $project
+ $partsgroup
+ </td>
+ </tr>
+ <tr>
+ <td colspan=$colspan><hr size=1 noshade></td>
+ </tr>
+|;
+
+ $skunumber = "";
+
+ for (split / /, $form->{"taxaccounts_$i"}) {
+ $form->{"${_}_base"} += $linetotal;
+ }
+
+ $form->{invsubtotal} += $linetotal;
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+|;
+
+ $form->hide_form(qw(audittrail));
+
+ print qq|
+
+<input type=hidden name=oldcurrency value=$form->{currency}>
+
+<input type=hidden name=selectpartsgroup value="|.$form->escape($form->{selectpartsgroup},1).qq|">
+<input type=hidden name=selectprojectnumber value="|.$form->escape($form->{selectprojectnumber},1).qq|">
+
+|;
+
+}
+
+
+sub select_item {
+
+ if ($form->{vc} eq "vendor") {
+ @column_index = qw(ndx partnumber sku description partsgroup onhand sellprice);
+ } else {
+ @column_index = qw(ndx partnumber description partsgroup onhand sellprice);
+ }
+
+ $column_data{ndx} = qq|<th>&nbsp;</th>|;
+ $column_data{partnumber} = qq|<th class=listheading>|.$locale->text('Number').qq|</th>|;
+ $column_data{sku} = qq|<th class=listheading>|.$locale->text('SKU').qq|</th>|;
+ $column_data{description} = qq|<th class=listheading>|.$locale->text('Description').qq|</th>|;
+ $column_data{partsgroup} = qq|<th class=listheading>|.$locale->text('Group').qq|</th>|;
+ $column_data{sellprice} = qq|<th class=listheading>|.$locale->text('Price').qq|</th>|;
+ $column_data{onhand} = qq|<th class=listheading>|.$locale->text('Qty').qq|</th>|;
+
+ $exchangerate = ($form->{exchangerate}) ? $form->{exchangerate} : 1;
+
+ # list items with radio button on a form
+ $form->header;
+
+ $title = $locale->text('Select items');
+
+ print qq|
+<body>
+
+<form method=post action="$form->{script}">
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$title</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$option</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ my $i = 0;
+ foreach $ref (@{ $form->{item_list} }) {
+ $i++;
+
+ for (qw(sku partnumber description unit notes partsgroup)) {
+ $ref->{$_} = $form->quote($ref->{$_});
+ }
+
+ $column_data{ndx} = qq|<td><input name="ndx_$i" class=checkbox type=checkbox value=$i></td>|;
+
+ for (qw(partnumber sku description partsgroup)) { $column_data{$_} = qq|<td>$ref->{$_}&nbsp;</td>| }
+
+ $column_data{sellprice} = qq|<td align=right>|.$form->format_amount(\%myconfig, $ref->{sellprice} / $exchangerate, 2, "&nbsp;").qq|</td>|;
+ $column_data{onhand} = qq|<td align=right>|.$form->format_amount(\%myconfig, $ref->{onhand}, '', "&nbsp;").qq|</td>|;
+
+ $j++; $j %= 2;
+ print qq|
+ <tr class=listrow$j>|;
+
+ for (@column_index) {
+ print "\n$column_data{$_}";
+ }
+
+ print qq|
+ </tr>
+|;
+
+ for (qw(partnumber sku description partsgroup partsgroup_id bin weight sellprice listprice lastcost onhand unit assembly taxaccounts inventory_accno_id income_accno_id expense_accno_id pricematrix id notes)) {
+ print qq|<input type=hidden name="new_${_}_$i" value="$ref->{$_}">\n|;
+ }
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<input name=lastndx type=hidden value=$i>
+
+|;
+
+ # delete variables
+ for (qw(nextsub item_list)) { delete $form->{$_} }
+
+ $form->{action} = "item_selected";
+
+ $form->hide_form;
+
+ print qq|
+<input type=hidden name=nextsub value=item_selected>
+
+<br>
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+
+sub item_selected {
+
+ $i = $form->{rowcount} - 1;
+ $i = $form->{assembly_rows} - 1 if ($form->{item} eq 'assembly');
+ $qty = ($form->{"qty_$form->{rowcount}"}) ? $form->{"qty_$form->{rowcount}"} : 1;
+
+ for $j (1 .. $form->{lastndx}) {
+
+ if ($form->{"ndx_$j"}) {
+
+ $i++;
+
+ $form->{"qty_$i"} = $qty;
+ $form->{"discount_$i"} = $form->{discount} * 100;
+ $form->{"reqdate_$i"} = $form->{reqdate} if $form->{type} !~ /_quotation/;
+
+ for (qw(id partnumber sku description sellprice listprice lastcost bin unit weight assembly taxaccounts pricematrix onhand notes inventory_accno_id income_accno_id expense_accno_id)) {
+ $form->{"${_}_$i"} = $form->{"new_${_}_$j"};
+ }
+
+ $form->{"partsgroup_$i"} = qq|$form->{"new_partsgroup_$j"}--$form->{"new_partsgroup_id_$j"}|;
+
+ ($dec) = ($form->{"sellprice_$i"} =~ /\.(\d+)/);
+ $dec = length $dec;
+ $decimalplaces1 = ($dec > 2) ? $dec : 2;
+
+ ($dec) = ($form->{"lastcost_$i"} =~ /\.(\d+)/);
+ $dec = length $dec;
+ $decimalplaces2 = ($dec > 2) ? $dec : 2;
+
+ # if there is an exchange rate adjust sellprice
+ if (($form->{exchangerate} * 1)) {
+ for (qw(sellprice listprice lastcost)) { $form->{"${_}_$i"} /= $form->{exchangerate} }
+ # don't format list and cost
+ $form->{"sellprice_$i"} = $form->round_amount($form->{"sellprice_$i"}, $decimalplaces1);
+ }
+
+ # this is for the assembly
+ if ($form->{item} eq 'assembly') {
+ $form->{"adj_$i"} = 1;
+
+ for (qw(sellprice listprice weight)) { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) }
+
+ $form->{sellprice} += ($form->{"sellprice_$i"} * $form->{"qty_$i"});
+ $form->{weight} += ($form->{"weight_$i"} * $form->{"qty_$i"});
+ }
+
+ $amount = $form->{"sellprice_$i"} * (1 - $form->{"discount_$i"} / 100) * $form->{"qty_$i"};
+ for (split / /, $form->{"taxaccounts_$i"}) { $form->{"${_}_base"} += $amount }
+ if (!$form->{taxincluded}) {
+ for (split / /, $form->{"taxaccounts_$i"}) { $amount += ($form->{"${_}_base"} * $form->{"${_}_rate"}) }
+ }
+
+ $form->{creditremaining} -= $amount;
+
+ $form->{"runningnumber_$i"} = $i;
+
+ # format amounts
+ if ($form->{item} ne 'assembly') {
+ for (qw(sellprice listprice)) { $form->{"${_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}, $decimalplaces1) }
+ $form->{"lastcost_$i"} = $form->format_amount(\%myconfig, $form->{"lastcost_$i"}, $decimalplaces2);
+ }
+ $form->{"discount_$i"} = $form->format_amount(\%myconfig, $form->{"discount_$i"});
+
+ }
+ }
+
+ $form->{rowcount} = $i;
+ $form->{assembly_rows} = $i if ($form->{item} eq 'assembly');
+
+ $form->{focus} = "description_$i";
+
+ # delete all the new_ variables
+ for $i (1 .. $form->{lastndx}) {
+ for (qw(id partnumber sku description sellprice listprice lastcost bin unit weight assembly taxaccounts pricematrix onhand notes inventory_accno_id income_accno_id expense_accno_id)) {
+ delete $form->{"new_${_}_$i"};
+ }
+ }
+
+ for (qw(ndx lastndx nextsub)) { delete $form->{$_} }
+
+ &display_form;
+
+}
+
+
+sub new_item {
+
+ if ($form->{language_code} && $form->{"description_$form->{rowcount}"}) {
+ $form->error($locale->text('Translation not on file!'));
+ }
+
+ # change callback
+ $form->{old_callback} = $form->escape($form->{callback},1);
+ $form->{callback} = $form->escape("$form->{script}?action=display_form",1);
+
+ # delete action
+ delete $form->{action};
+
+ # save all other form variables in a previousform variable
+ if (!$form->{previousform}) {
+ foreach $key (keys %$form) {
+ # escape ampersands
+ $form->{$key} =~ s/&/%26/g;
+ $form->{previousform} .= qq|$key=$form->{$key}&|;
+ }
+ chop $form->{previousform};
+ $form->{previousform} = $form->escape($form->{previousform}, 1);
+ }
+
+ $i = $form->{rowcount};
+ for (qw(partnumber description)) { $form->{"${_}_$i"} = $form->quote($form->{"${_}_$i"}) }
+
+ $form->header;
+
+ print qq|
+<body>
+
+<h4 class=error>|.$locale->text('Item not on file!').qq|</h4>|;
+
+ if ($myconfig{acs} !~ /(Goods \& Services--Add Part|Goods \& Services--Add Service)/) {
+
+ print qq|
+<h4>|.$locale->text('What type of item is this?').qq|</h4>
+
+<form method=post action=ic.pl>
+
+<p>
+
+ <input class=radio type=radio name=item value=part checked>&nbsp;|.$locale->text('Part')
+.qq|<br>
+ <input class=radio type=radio name=item value=service>&nbsp;|.$locale->text('Service')
+
+.qq|
+<input type=hidden name=partnumber value="$form->{"partnumber_$i"}">
+<input type=hidden name=description value="$form->{"description_$i"}">
+<input type=hidden name=nextsub value=add>
+<input type=hidden name=action value=add>
+|;
+
+ $form->hide_form(qw(previousform rowcount path login sessionid));
+
+ print qq|
+<p>
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">
+</form>
+|;
+ }
+
+ print qq|
+</body>
+</html>
+|;
+
+}
+
+
+
+sub display_form {
+
+ # if we have a display_form
+ if ($form->{display_form}) {
+ &{ "$form->{display_form}" };
+ exit;
+ }
+
+ &form_header;
+
+ $numrows = ++$form->{rowcount};
+ $subroutine = "display_row";
+
+ if ($form->{item} eq 'part') {
+ # create makemodel rows
+ &makemodel_row(++$form->{makemodel_rows});
+
+ &vendor_row(++$form->{vendor_rows});
+
+ $numrows = ++$form->{customer_rows};
+ $subroutine = "customer_row";
+ }
+ if ($form->{item} eq 'assembly') {
+ # create makemodel rows
+ &makemodel_row(++$form->{makemodel_rows});
+
+ $numrows = ++$form->{customer_rows};
+ $subroutine = "customer_row";
+ }
+ if ($form->{item} eq 'service') {
+ &vendor_row(++$form->{vendor_rows});
+
+ $numrows = ++$form->{customer_rows};
+ $subroutine = "customer_row";
+ }
+ if ($form->{item} eq 'labor') {
+ $numrows = 0;
+ }
+
+ # create rows
+ &{ $subroutine }($numrows) if $numrows;
+
+ &form_footer;
+
+}
+
+
+
+sub check_form {
+
+ my @a = ();
+ my $count = 0;
+ my $i;
+ my $j;
+ my @flds = qw(id runningnumber partnumber description partsgroup qty ship unit sellprice discount oldqty orderitems_id bin weight listprice lastcost taxaccounts pricematrix sku onhand assembly inventory_accno_id income_accno_id expense_accno_id notes reqdate deliverydate serialnumber projectnumber);
+
+ # remove any makes or model rows
+ if ($form->{item} eq 'part') {
+ for (qw(listprice sellprice lastcost avgcost weight rop markup)) { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) }
+
+ &calc_markup;
+
+ @flds = qw(make model);
+ $count = 0;
+ @a = ();
+ for $i (1 .. $form->{makemodel_rows}) {
+ if (($form->{"make_$i"} ne "") || ($form->{"model_$i"} ne "")) {
+ push @a, {};
+ $j = $#a;
+
+ for (@flds) { $a[$j]->{$_} = $form->{"${_}_$i"} }
+ $count++;
+ }
+ }
+
+ $form->redo_rows(\@flds, \@a, $count, $form->{makemodel_rows});
+ $form->{makemodel_rows} = $count;
+
+ &check_vendor;
+ &check_customer;
+
+ }
+
+ if ($form->{item} eq 'service') {
+
+ for (qw(sellprice listprice lastcost avgcost markup)) { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) }
+
+ &calc_markup;
+ &check_vendor;
+ &check_customer;
+
+ }
+
+ if ($form->{item} eq 'assembly') {
+
+ if (!$form->{project_id}) {
+ $form->{sellprice} = 0;
+ $form->{listprice} = 0;
+ $form->{lastcost} = 0;
+ $form->{weight} = 0;
+ }
+
+ for (qw(rop stock markup)) { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) }
+
+ @flds = qw(id qty unit bom adj partnumber description sellprice listprice lastcost weight assembly runningnumber partsgroup);
+ $count = 0;
+ @a = ();
+
+ for $i (1 .. ($form->{assembly_rows} - 1)) {
+ if ($form->{"qty_$i"}) {
+ push @a, {};
+ my $j = $#a;
+
+ $form->{"qty_$i"} = $form->parse_amount(\%myconfig, $form->{"qty_$i"});
+
+ for (@flds) { $a[$j]->{$_} = $form->{"${_}_$i"} }
+
+ if (! $form->{project_id}) {
+ for (qw(sellprice listprice weight lastcost)) { $form->{$_} += ($form->{"${_}_$i"} * $form->{"qty_$i"}) }
+ }
+
+ $count++;
+ }
+ }
+
+ if ($form->{markup} && $form->{markup} != $form->{oldmarkup}) {
+ $form->{sellprice} = 0;
+ &calc_markup;
+ }
+
+ for (qw(sellprice lastcost listprice)) { $form->{$_} = $form->round_amount($form->{$_}, 2) }
+
+ $form->redo_rows(\@flds, \@a, $count, $form->{assembly_rows});
+ $form->{assembly_rows} = $count;
+
+ $count = 0;
+ @flds = qw(make model);
+ @a = ();
+
+ for $i (1 .. ($form->{makemodel_rows})) {
+ if (($form->{"make_$i"} ne "") || ($form->{"model_$i"} ne "")) {
+ push @a, {};
+ my $j = $#a;
+
+ for (@flds) { $a[$j]->{$_} = $form->{"${_}_$i"} }
+ $count++;
+ }
+ }
+
+ $form->redo_rows(\@flds, \@a, $count, $form->{makemodel_rows});
+ $form->{makemodel_rows} = $count;
+
+ &check_customer;
+
+ }
+
+ if ($form->{type}) {
+
+ # this section applies to invoices and orders
+ # remove any empty numbers
+
+ $count = 0;
+ @a = ();
+ if ($form->{rowcount}) {
+ for $i (1 .. $form->{rowcount} - 1) {
+ if ($form->{"partnumber_$i"}) {
+ push @a, {};
+ my $j = $#a;
+
+ for (@flds) { $a[$j]->{$_} = $form->{"${_}_$i"} }
+ $count++;
+ }
+ }
+
+ $form->redo_rows(\@flds, \@a, $count, $form->{rowcount});
+ $form->{rowcount} = $count;
+
+ $form->{creditremaining} -= &invoicetotal;
+
+ }
+ }
+
+ &display_form;
+
+}
+
+
+sub calc_markup {
+
+ if ($form->{markup}) {
+ if ($form->{markup} != $form->{oldmarkup}) {
+ if ($form->{lastcost}) {
+ $form->{sellprice} = $form->{lastcost} * (1 + $form->{markup}/100);
+ $form->{sellprice} = $form->round_amount($form->{sellprice}, 2);
+ } else {
+ $form->{lastcost} = $form->{sellprice} / (1 + $form->{markup}/100);
+ $form->{lastcost} = $form->round_amount($form->{lastcost}, 2);
+ }
+ }
+ } else {
+ if ($form->{lastcost}) {
+ $form->{markup} = $form->round_amount(((1 - $form->{sellprice} / $form->{lastcost}) * 100), 1);
+ }
+ $form->{markup} = "" if $form->{markup} == 0;
+ }
+
+}
+
+
+sub invoicetotal {
+
+ $form->{oldinvtotal} = 0;
+ # add all parts and deduct paid
+ for (split / /, $form->{taxaccounts}) { $form->{"${_}_base"} = 0 }
+
+ my ($amount, $sellprice, $discount, $qty);
+
+ for $i (1 .. $form->{rowcount}) {
+ $sellprice = $form->parse_amount(\%myconfig, $form->{"sellprice_$i"});
+ $discount = $form->parse_amount(\%myconfig, $form->{"discount_$i"});
+ $qty = $form->parse_amount(\%myconfig, $form->{"qty_$i"});
+
+ $amount = $sellprice * (1 - $discount / 100) * $qty;
+ for (split / /, $form->{"taxaccounts_$i"}) { $form->{"${_}_base"} += $amount }
+ $form->{oldinvtotal} += $amount;
+ }
+
+ if (!$form->{taxincluded}) {
+ for (split / /, $form->{taxaccounts}) { $form->{oldinvtotal} += ($form->{"${_}_base"} * $form->{"${_}_rate"}) }
+ }
+
+ $form->{oldtotalpaid} = 0;
+ for $i (1 .. $form->{paidaccounts}) {
+ $form->{oldtotalpaid} += $form->{"paid_$i"};
+ }
+
+ # return total
+ ($form->{oldinvtotal} - $form->{oldtotalpaid});
+
+}
+
+
+sub validate_items {
+
+ # check if items are valid
+ if ($form->{rowcount} == 1) {
+ &update;
+ exit;
+ }
+
+ for $i (1 .. $form->{rowcount} - 1) {
+ $form->isblank("partnumber_$i", $locale->text('Number missing in Row') . " $i");
+ }
+
+}
+
+
+
+sub purchase_order {
+
+ $form->{title} = $locale->text('Add Purchase Order');
+ $form->{vc} = 'vendor';
+ $form->{type} = 'purchase_order';
+ $buysell = 'sell';
+
+ &create_form;
+
+}
+
+
+sub sales_order {
+
+ $form->{title} = $locale->text('Add Sales Order');
+ $form->{vc} = 'customer';
+ $form->{type} = 'sales_order';
+ $buysell = 'buy';
+
+ &create_form;
+
+}
+
+
+sub rfq {
+
+ $form->{title} = $locale->text('Add Request for Quotation');
+ $form->{vc} = 'vendor';
+ $form->{type} = 'request_quotation';
+ $buysell = 'sell';
+
+ &create_form;
+
+}
+
+
+sub quotation {
+
+ $form->{title} = $locale->text('Add Quotation');
+ $form->{vc} = 'customer';
+ $form->{type} = 'sales_quotation';
+ $buysell = 'buy';
+
+ &create_form;
+
+}
+
+
+sub create_form {
+
+ for (qw(id printed emailed queued)) { delete $form->{$_} }
+
+ $form->{script} = 'oe.pl';
+
+ $form->{shipto} = 1;
+
+ $form->{rowcount}-- if $form->{rowcount};
+ $form->{rowcount} = 0 if ! $form->{"$form->{vc}_id"};
+
+ do "$form->{path}/$form->{script}";
+
+ for ("$form->{vc}", "currency") { $form->{"select$_"} = "" }
+
+ for (qw(currency employee department intnotes notes language_code taxincluded)) { $temp{$_} = $form->{$_} }
+
+ &order_links;
+
+ for (keys %temp) { $form->{$_} = $temp{$_} if $temp{$_} }
+
+ $form->{exchangerate} = "";
+ $form->{forex} = "";
+ if ($form->{currency} ne $form->{defaultcurrency}) {
+ $form->{exchangerate} = $exchangerate if ($form->{forex} = ($exchangerate = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{transdate}, $buysell)));
+ }
+
+ &prepare_order;
+
+ &display_form;
+
+}
+
+
+
+sub e_mail {
+
+ $bcc = qq|<input type=hidden name=bcc value="$form->{bcc}">|;
+ if ($myconfig{role} =~ /(admin|manager)/) {
+ $bcc = qq|
+ <th align=right nowrap=true>|.$locale->text('Bcc').qq|</th>
+ <td><input name=bcc size=30 value="$form->{bcc}"></td>
+|;
+ }
+
+ if ($form->{formname} =~ /(pick|packing|bin)_list/) {
+ $form->{email} = $form->{shiptoemail} if $form->{shiptoemail};
+ }
+
+ $name = $form->{$form->{vc}};
+ $name =~ s/--.*//g;
+ $title = $locale->text('E-mail')." $name";
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action="$form->{script}">
+
+<table width=100%>
+ <tr class=listtop>
+ <th class=listtop>$title</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+ <th align=right nowrap>|.$locale->text('E-mail').qq|</th>
+ <td><input name=email size=30 value="$form->{email}"></td>
+ <th align=right nowrap>|.$locale->text('Cc').qq|</th>
+ <td><input name=cc size=30 value="$form->{cc}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Subject').qq|</th>
+ <td><input name=subject size=30 value="$form->{subject}"></td>
+ $bcc
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+ <th align=left nowrap>|.$locale->text('Message').qq|</th>
+ </tr>
+ <tr>
+ <td><textarea name=message rows=15 cols=60 wrap=soft>$form->{message}</textarea></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+|;
+
+ $form->{oldmedia} = $form->{media};
+ $form->{media} = "email";
+ $form->{format} = "pdf";
+
+ &print_options;
+
+ for (qw(email cc bcc subject message formname sendmode format language_code action nextsub)) { delete $form->{$_} }
+
+ $form->hide_form;
+
+ print qq|
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<input type=hidden name=nextsub value=send_email>
+
+<br>
+<input name=action class=submit type=submit value="|.$locale->text('Continue').qq|">
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub send_email {
+
+ $old_form = new Form;
+
+ for (keys %$form) { $old_form->{$_} = $form->{$_} }
+ $old_form->{media} = $old_form->{oldmedia};
+
+ &print_form($old_form);
+
+}
+
+
+
+sub print_options {
+
+ $form->{sendmode} = "attachment";
+ $form->{copies} = 1 unless $form->{copies};
+
+ $form->{SM}{$form->{sendmode}} = "selected";
+
+ if ($form->{selectlanguage}) {
+ $form->{"selectlanguage"} = $form->unescape($form->{"selectlanguage"});
+ $form->{"selectlanguage"} =~ s/ selected//;
+ $form->{"selectlanguage"} =~ s/(<option value="\Q$form->{language_code}\E")/$1 selected/;
+
+ $lang = qq|<select name=language_code>$form->{selectlanguage}</select>
+ <input type=hidden name=oldlanguage_code value=$form->{oldlanguage_code}>
+ <input type=hidden name=selectlanguage value="|.$form->escape($form->{selectlanguage},1).qq|">|;
+ }
+
+ $form->{selectformname} = $form->unescape($form->{selectformname});
+ $form->{selectformname} =~ s/ selected//;
+ $form->{selectformname} =~ s/(<option value="\Q$form->{formname}\E")/$1 selected/;
+
+ $type = qq|<select name=formname>$form->{selectformname}</select>
+ <input type=hidden name=selectformname value="|.$form->escape($form->{selectformname},1).qq|">|;
+
+
+ if ($form->{media} eq 'email') {
+ $media = qq|<select name=sendmode>
+ <option value=attachment $form->{SM}{attachment}>|.$locale->text('Attachment').qq|
+ <option value=inline $form->{SM}{inline}>|.$locale->text('In-line').qq|</select>|;
+ } else {
+ $media = qq|<select name=media>
+ <option value="screen">|.$locale->text('Screen');
+
+ if (%printer && $latex) {
+ for (sort keys %printer) { $media .= qq|
+ <option value="$_">$_| }
+ }
+ if ($latex) {
+ $media .= qq|
+ <option value="queue">|.$locale->text('Queue');
+ }
+ $media .= qq|</select>|;
+
+ # set option selected
+ $media =~ s/(<option value="\Q$form->{media}\E")/$1 selected/;
+
+ }
+
+
+ $form->{selectformat} = qq|<option value="html">html\n|;
+# <option value="txt">|.$locale->text('Text');
+
+ if ($latex) {
+ $form->{selectformat} .= qq|
+ <option value="postscript">|.$locale->text('Postscript').qq|
+ <option value="pdf">|.$locale->text('PDF');
+ }
+
+ $format = qq|<select name=format>$form->{selectformat}</select>|;
+ $format =~ s/(<option value="\Q$form->{format}\E")/$1 selected/;
+ $format .= qq|
+ <input type=hidden name=selectformat value="|.$form->escape($form->{selectformat},1).qq|">|;
+
+ print qq|
+<table width=100%>
+ <tr>
+ <td>$type</td>
+ <td>$lang</td>
+ <td>$format</td>
+ <td>$media</td>
+|;
+
+ if (%printer && $latex && $form->{media} ne 'email') {
+ print qq|
+ <td nowrap>|.$locale->text('Copies').qq|
+ <input name=copies size=2 value=$form->{copies}></td>
+|;
+ }
+
+# $locale->text('Printed')
+# $locale->text('E-mailed')
+# $locale->text('Queued')
+# $locale->text('Scheduled')
+
+ %status = ( printed => 'Printed',
+ emailed => 'E-mailed',
+ queued => 'Queued',
+ recurring => 'Scheduled' );
+
+ print qq|<td align=right width=90%>|;
+
+ for (qw(printed emailed queued recurring)) {
+ if ($form->{$_} =~ /$form->{formname}/) {
+ print $locale->text($status{$_}).qq|<br>|;
+ }
+ }
+
+ print qq|
+ </td>
+ </tr>
+|;
+
+ $form->{groupprojectnumber} = "checked" if $form->{groupprojectnumber};
+ $form->{grouppartsgroup} = "checked" if $form->{grouppartsgroup};
+
+ for (qw(runningnumber partnumber description bin)) { $sortby{$_} = "checked" if $form->{sortby} eq $_ }
+
+ print qq|
+ <tr>
+ <td colspan=3>|.$locale->text('Group by').qq| ->
+ <input name=groupprojectnumber type=checkbox class=checkbox $form->{groupprojectnumber}>
+ |.$locale->text('Project').qq|
+ <input name=grouppartsgroup type=checkbox class=checkbox $form->{grouppartsgroup}>
+ |.$locale->text('Group').qq|
+ </td>
+
+ <td colspan=3>|.$locale->text('Sort by').qq| ->
+ <input name=sortby type=radio class=radio value=runningnumber $sortby{runningnumber}>
+ |.$locale->text('Item').qq|
+ <input name=sortby type=radio class=radio value=partnumber $sortby{partnumber}>
+ |.$locale->text('Number').qq|
+ <input name=sortby type=radio class=radio value=description $sortby{description}>
+ |.$locale->text('Description').qq|
+ <input name=sortby type=radio class=radio value=bin $sortby{bin}>
+ |.$locale->text('Bin').qq|
+ </td>
+
+ </tr>
+</table>
+|;
+
+}
+
+
+
+sub print {
+
+ # if this goes to the printer pass through
+ if ($form->{media} !~ /(screen|email)/) {
+ $form->error($locale->text('Select txt, postscript or PDF!')) if ($form->{format} !~ /(txt|postscript|pdf)/);
+
+ $old_form = new Form;
+ for (keys %$form) { $old_form->{$_} = $form->{$_} }
+
+ }
+
+ &print_form($old_form);
+
+}
+
+
+sub print_form {
+ my ($old_form) = @_;
+
+ $inv = "inv";
+ $due = "due";
+
+ $numberfld = "sinumber";
+
+ $display_form = ($form->{display_form}) ? $form->{display_form} : "display_form";
+
+ if ($form->{formname} eq "invoice") {
+ $form->{label} = $locale->text('Invoice');
+ }
+ if ($form->{formname} eq 'sales_order') {
+ $inv = "ord";
+ $due = "req";
+ $form->{label} = $locale->text('Sales Order');
+ $numberfld = "sonumber";
+ $order = 1;
+ }
+ if ($form->{formname} eq 'work_order') {
+ $inv = "ord";
+ $due = "req";
+ $form->{label} = $locale->text('Work Order');
+ $numberfld = "sonumber";
+ $order = 1;
+ }
+ if ($form->{formname} eq 'packing_list') {
+ # we use the same packing list as from an invoice
+ $form->{label} = $locale->text('Packing List');
+
+ if ($form->{type} ne 'invoice') {
+ $inv = "ord";
+ $due = "req";
+ $numberfld = "sonumber";
+ $order = 1;
+
+ $filled = 0;
+ for ($i = 1; $i < $form->{rowcount}; $i++) {
+ if ($form->{"ship_$i"}) {
+ $filled = 1;
+ last;
+ }
+ }
+ if (!$filled) {
+ for (1 .. $form->{rowcount}) { $form->{"ship_$_"} = $form->{"qty_$_"} }
+ }
+ }
+ }
+ if ($form->{formname} eq 'pick_list') {
+ $form->{label} = $locale->text('Pick List');
+ if ($form->{type} ne 'invoice') {
+ $inv = "ord";
+ $due = "req";
+ $order = 1;
+ $numberfld = "sonumber";
+ }
+ }
+ if ($form->{formname} eq 'purchase_order') {
+ $inv = "ord";
+ $due = "req";
+ $form->{label} = $locale->text('Purchase Order');
+ $numberfld = "ponumber";
+ $order = 1;
+ }
+ if ($form->{formname} eq 'bin_list') {
+ $inv = "ord";
+ $due = "req";
+ $form->{label} = $locale->text('Bin List');
+ $numberfld = "ponumber";
+ $order = 1;
+ }
+ if ($form->{formname} eq 'sales_quotation') {
+ $inv = "quo";
+ $due = "req";
+ $form->{label} = $locale->text('Quotation');
+ $numberfld = "sqnumber";
+ $order = 1;
+ }
+ if ($form->{formname} eq 'request_quotation') {
+ $inv = "quo";
+ $due = "req";
+ $form->{label} = $locale->text('Quotation');
+ $numberfld = "rfqnumber";
+ $order = 1;
+ }
+
+ &validate_items;
+
+ $form->{"${inv}date"} = $form->{transdate};
+
+ $form->isblank("email", $locale->text('E-mail address missing!')) if ($form->{media} eq 'email');
+ $form->isblank("${inv}date", $locale->text($form->{label} .' Date missing!'));
+
+ # get next number
+ if (! $form->{"${inv}number"}) {
+ $form->{"${inv}number"} = $form->update_defaults(\%myconfig, $numberfld);
+ if ($form->{media} eq 'screen') {
+ &update;
+ exit;
+ }
+ }
+
+
+# $locale->text('Invoice Number missing!')
+# $locale->text('Invoice Date missing!')
+# $locale->text('Packing List Number missing!')
+# $locale->text('Packing List Date missing!')
+# $locale->text('Order Number missing!')
+# $locale->text('Order Date missing!')
+# $locale->text('Quotation Number missing!')
+# $locale->text('Quotation Date missing!')
+
+ &{ "$form->{vc}_details" };
+
+ @a = ();
+ foreach $i (1 .. $form->{rowcount}) {
+ push @a, ("partnumber_$i", "description_$i", "projectnumber_$i", "partsgroup_$i", "serialnumber_$i", "bin_$i", "unit_$i", "notes_$i");
+ }
+ for (split / /, $form->{taxaccounts}) { push @a, "${_}_description" }
+
+ $ARAP = ($form->{vc} eq 'customer') ? "AR" : "AP";
+ push @a, $ARAP;
+
+ # format payment dates
+ for $i (1 .. $form->{paidaccounts} - 1) {
+ if (exists $form->{longformat}) {
+ $form->{"datepaid_$i"} = $locale->date(\%myconfig, $form->{"datepaid_$i"}, $form->{longformat});
+ }
+
+ push @a, "${ARAP}_paid_$i", "source_$i", "memo_$i";
+ }
+
+ $form->format_string(@a);
+
+ ($form->{employee}) = split /--/, $form->{employee};
+ ($form->{warehouse}, $form->{warehouse_id}) = split /--/, $form->{warehouse};
+
+ # this is a label for the subtotals
+ $form->{groupsubtotaldescription} = $locale->text('Subtotal') if not exists $form->{groupsubtotaldescription};
+ delete $form->{groupsubtotaldescription} if $form->{deletegroupsubtotal};
+
+ $duedate = $form->{"${due}date"};
+
+ # create the form variables
+ if ($order) {
+ OE->order_details(\%myconfig, \%$form);
+ } else {
+ IS->invoice_details(\%myconfig, \%$form);
+ }
+
+ if (exists $form->{longformat}) {
+ $form->{"${due}date"} = $duedate;
+ for ("${inv}date", "${due}date", "shippingdate", "transdate") { $form->{$_} = $locale->date(\%myconfig, $form->{$_}, $form->{longformat}) }
+ }
+
+ @a = qw(name address1 address2 city state zipcode country contact phone fax email);
+
+ $shipto = 1;
+ # if there is no shipto fill it in from billto
+ foreach $item (@a) {
+ if ($form->{"shipto$item"}) {
+ $shipto = 0;
+ last;
+ }
+ }
+
+ if ($shipto) {
+ if ($form->{formname} eq 'purchase_order' || $form->{formname} eq 'request_quotation') {
+ $form->{shiptoname} = $myconfig{company};
+ $form->{shiptoaddress1} = $myconfig{address};
+ $form->{shiptoaddress1} =~ s/\\n/\n/g;
+ } else {
+ if ($form->{formname} !~ /bin_list/) {
+ for (@a) { $form->{"shipto$_"} = $form->{$_} }
+ }
+ }
+ }
+
+ # some of the stuff could have umlauts so we translate them
+ push @a, qw(contact shiptoname shiptoaddress1 shiptoaddress2 shiptocity shiptostate shiptozipcode shiptocountry shiptocontact shiptoemail shippingpoint shipvia notes intnotes employee warehouse);
+
+ push @a, ("${inv}number", "${inv}date", "${due}date");
+
+ for (qw(company address tel fax businessnumber)) { $form->{$_} = $myconfig{$_} }
+ $form->{address} =~ s/\\n/\n/g;
+
+ for (qw(name email)) { $form->{"user$_"} = $myconfig{$_} }
+
+ push @a, qw(company address tel fax businessnumber username useremail);
+
+ for (qw(notes intnotes)) { $form->{$_} =~ s/^\s+//g }
+
+ # before we format replace <%var%>
+ for (qw(notes intnotes message)) { $form->{$_} =~ s/<%(.*?)%>/$form->{$1}/g }
+
+ $form->format_string(@a);
+
+
+ $form->{templates} = "$myconfig{templates}";
+ $form->{IN} = "$form->{formname}.$form->{format}";
+
+ if ($form->{format} =~ /(postscript|pdf)/) {
+ $form->{IN} =~ s/$&$/tex/;
+ }
+
+
+ $form->{pre} = "<body bgcolor=#ffffff>\n<pre>" if $form->{format} eq 'txt';
+
+ if ($form->{media} !~ /(screen|queue|email)/) {
+ $form->{OUT} = "| $printer{$form->{media}}";
+
+ $form->{OUT} =~ s/<%(fax)%>/<%$form->{vc}$1%>/;
+ $form->{OUT} =~ s/<%(.*?)%>/$form->{$1}/g;
+
+ if ($form->{printed} !~ /$form->{formname}/) {
+
+ $form->{printed} .= " $form->{formname}";
+ $form->{printed} =~ s/^ //;
+
+ $form->update_status(\%myconfig);
+ }
+
+ $old_form->{printed} = $form->{printed} if defined %$old_form;
+
+ %audittrail = ( tablename => ($order) ? 'oe' : lc $ARAP,
+ reference => $form->{"${inv}number"},
+ formname => $form->{formname},
+ action => 'printed',
+ id => $form->{id} );
+
+ $old_form->{audittrail} .= $form->audittrail("", \%myconfig, \%audittrail) if defined %$old_form;
+
+ }
+
+
+ if ($form->{media} eq 'email') {
+ $form->{subject} = qq|$form->{label} $form->{"${inv}number"}| unless $form->{subject};
+
+ $form->{plainpaper} = 1;
+ $form->{OUT} = "$sendmail";
+
+ if ($form->{emailed} !~ /$form->{formname}/) {
+ $form->{emailed} .= " $form->{formname}";
+ $form->{emailed} =~ s/^ //;
+
+ # save status
+ $form->update_status(\%myconfig);
+ }
+
+ $now = scalar localtime;
+ $cc = $locale->text('Cc').qq|: $form->{cc}\n| if $form->{cc};
+ $bcc = $locale->text('Bcc').qq|: $form->{bcc}\n| if $form->{bcc};
+
+ if (defined %$old_form) {
+ $old_form->{intnotes} = qq|$old_form->{intnotes}\n\n| if $old_form->{intnotes};
+ $old_form->{intnotes} .= qq|[email]\n|
+ .$locale->text('Date').qq|: $now\n|
+ .$locale->text('To').qq|: $form->{email}\n${cc}${bcc}|
+ .$locale->text('Subject').qq|: $form->{subject}\n|;
+
+ $old_form->{intnotes} .= qq|\n|.$locale->text('Message').qq|: |;
+ $old_form->{intnotes} .= ($form->{message}) ? $form->{message} : $locale->text('sent');
+
+ $old_form->{message} = $form->{message};
+ $old_form->{emailed} = $form->{emailed};
+
+ $old_form->{format} = "postscript" if $myconfig{printer};
+ $old_form->{media} = $myconfig{printer};
+
+ $old_form->save_intnotes(\%myconfig, ($order) ? 'oe' : lc $ARAP);
+ }
+
+ %audittrail = ( tablename => ($order) ? 'oe' : lc $ARAP,
+ reference => $form->{"${inv}number"},
+ formname => $form->{formname},
+ action => 'emailed',
+ id => $form->{id} );
+
+ $old_form->{audittrail} .= $form->audittrail("", \%myconfig, \%audittrail) if defined %$old_form;
+ }
+
+
+ if ($form->{media} eq 'queue') {
+ %queued = split / /, $form->{queued};
+
+ if ($filename = $queued{$form->{formname}}) {
+ $form->{queued} =~ s/$form->{formname} $filename//;
+ unlink "$spool/$filename";
+ $filename =~ s/\..*$//g;
+ } else {
+ $filename = time;
+ $filename .= $$;
+ }
+
+ $filename .= ($form->{format} eq 'postscript') ? '.ps' : '.pdf';
+ $form->{OUT} = ">$spool/$filename";
+
+ $form->{queued} .= " $form->{formname} $filename";
+ $form->{queued} =~ s/^ //;
+
+ # save status
+ $form->update_status(\%myconfig);
+
+ $old_form->{queued} = $form->{queued};
+
+ %audittrail = ( tablename => ($order) ? 'oe' : lc $ARAP,
+ reference => $form->{"${inv}number"},
+ formname => $form->{formname},
+ action => 'queued',
+ id => $form->{id} );
+
+ $old_form->{audittrail} .= $form->audittrail("", \%myconfig, \%audittrail);
+
+ }
+
+
+ $form->format_string("email", "cc", "bcc");
+
+ $form->{fileid} = $form->{"${inv}number"};
+ $form->{fileid} =~ s/(\s|\W)+//g;
+
+ $form->parse_template(\%myconfig, $userspath);
+
+ # if we got back here restore the previous form
+ if (defined %$old_form) {
+
+ $old_form->{"${inv}number"} = $form->{"${inv}number"};
+
+ # restore and display form
+ for (keys %$old_form) { $form->{$_} = $old_form->{$_} }
+ delete $form->{pre};
+
+ $form->{rowcount}--;
+
+ for (qw(exchangerate creditlimit creditremaining)) { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) }
+
+ for $i (1 .. $form->{paidaccounts}) {
+ for (qw(paid exchangerate)) { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) }
+ }
+
+ &{ "$display_form" };
+
+ }
+
+}
+
+
+sub customer_details {
+
+ IS->customer_details(\%myconfig, \%$form);
+
+}
+
+
+sub vendor_details {
+
+ IR->vendor_details(\%myconfig, \%$form);
+
+}
+
+
+sub ship_to {
+
+ $title = $form->{title};
+ $form->{title} = $locale->text('Ship to');
+
+ for (qw(exchangerate creditlimit creditremaining)) { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) }
+ for (1 .. $form->{paidaccounts}) { $form->{"paid_$_"} = $form->parse_amount(\%myconfig, $form->{"paid_$_"}) }
+
+ # get details for name
+ &{ "$form->{vc}_details" };
+
+ $number = ($form->{vc} eq 'customer') ? $locale->text('Customer Number') : $locale->text('Vendor Number');
+
+ $nextsub = ($form->{display_form}) ? $form->{display_form} : "display_form";
+
+ $form->{rowcount}--;
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr>
+ <td>
+ <table>
+ <tr class=listheading>
+ <th class=listheading colspan=2 width=50%>|.$locale->text('Billing Address').qq|</th>
+ <th class=listheading width=50%>|.$locale->text('Shipping Address').qq|</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <th align=right nowrap>$number</th>
+ <td>$form->{"$form->{vc}number"}</td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Company Name').qq|</th>
+ <td>$form->{name}</td>
+ <td><input name=shiptoname size=35 maxlength=64 value="$form->{shiptoname}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Address').qq|</th>
+ <td>$form->{address1}</td>
+ <td><input name=shiptoaddress1 size=35 maxlength=32 value="$form->{shiptoaddress1}"></td>
+ </tr>
+ <tr>
+ <th></th>
+ <td>$form->{address2}</td>
+ <td><input name=shiptoaddress2 size=35 maxlength=32 value="$form->{shiptoaddress2}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('City').qq|</th>
+ <td>$form->{city}</td>
+ <td><input name=shiptocity size=35 maxlength=32 value="$form->{shiptocity}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('State/Province').qq|</th>
+ <td>$form->{state}</td>
+ <td><input name=shiptostate size=35 maxlength=32 value="$form->{shiptostate}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Zip/Postal Code').qq|</th>
+ <td>$form->{zipcode}</td>
+ <td><input name=shiptozipcode size=10 maxlength=10 value="$form->{shiptozipcode}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Country').qq|</th>
+ <td>$form->{country}</td>
+ <td><input name=shiptocountry size=35 maxlength=32 value="$form->{shiptocountry}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Contact').qq|</th>
+ <td>$form->{contact}</td>
+ <td><input name=shiptocontact size=35 maxlength=64 value="$form->{shiptocontact}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Phone').qq|</th>
+ <td>$form->{"$form->{vc}phone"}</td>
+ <td><input name=shiptophone size=20 value="$form->{shiptophone}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Fax').qq|</th>
+ <td>$form->{"$form->{vc}fax"}</td>
+ <td><input name=shiptofax size=20 value="$form->{shiptofax}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('E-mail').qq|</th>
+ <td>$form->{email}</td>
+ <td><input name=shiptoemail size=35 value="$form->{shiptoemail}"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+
+<input type=hidden name=nextsub value=$nextsub>
+|;
+
+ # delete shipto
+ for (qw(action nextsub)) { delete $form->{$_} }
+ for (qw(name address1 address2 city state zipcode country contact phone fax email)) { delete $form->{"shipto$_"} }
+ $form->{title} = $title;
+
+ $form->hide_form;
+
+ print qq|
+
+<hr size=3 noshade>
+
+<br>
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
diff --git a/bin/lynx/ir.pl b/bin/lynx/ir.pl
new file mode 100755
index 00000000..3a4c9905
--- /dev/null
+++ b/bin/lynx/ir.pl
@@ -0,0 +1,845 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2001
+#
+# Author: DWS Systems Inc.
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#======================================================================
+#
+# Inventory received module
+#
+#======================================================================
+
+
+use SL::IR;
+use SL::PE;
+
+require "$form->{path}/io.pl";
+require "$form->{path}/arap.pl";
+
+1;
+# end of main
+
+
+
+sub add {
+
+ $form->{title} = $locale->text('Add Vendor Invoice');
+
+ $form->{callback} = "$form->{script}?action=add&type=$form->{type}&login=$form->{login}&path=$form->{path}&sessionid=$form->{sessionid}" unless $form->{callback};
+ &invoice_links;
+ &prepare_invoice;
+ &display_form;
+
+}
+
+
+sub edit {
+
+ $form->{title} = $locale->text('Edit Vendor Invoice');
+
+ &invoice_links;
+ &prepare_invoice;
+ &display_form;
+
+}
+
+
+sub invoice_links {
+
+ $form->{vc} = "vendor";
+ $form->{type} = "invoice";
+
+ # create links
+ $form->create_links("AP", \%myconfig, "vendor", 1);
+
+ # currencies
+ @curr = split /:/, $form->{currencies};
+ $form->{defaultcurrency} = $curr[0];
+ chomp $form->{defaultcurrency};
+
+ for (@curr) { $form->{selectcurrency} .= "<option>$_\n" }
+
+ if (@{ $form->{all_vendor} }) {
+ unless ($form->{vendor_id}) {
+ $form->{vendor_id} = $form->{all_vendor}->[0]->{id};
+ }
+ }
+
+ AA->get_name(\%myconfig, \%$form);
+ delete $form->{notes};
+ IR->retrieve_invoice(\%myconfig, \%$form);
+
+ $form->{oldlanguage_code} = $form->{language_code};
+
+ $form->get_partsgroup(\%myconfig, { language_code => $form->{language_code} });
+ if (@ { $form->{all_partsgroup} }) {
+ $form->{selectpartsgroup} = "<option>\n";
+ foreach $ref (@ { $form->{all_partsgroup} }) {
+ if ($ref->{translation}) {
+ $form->{selectpartsgroup} .= qq|<option value="$ref->{partsgroup}--$ref->{id}">$ref->{translation}\n|;
+ } else {
+ $form->{selectpartsgroup} .= qq|<option value="$ref->{partsgroup}--$ref->{id}">$ref->{partsgroup}\n|;
+ }
+ }
+ }
+
+ if (@{ $form->{all_project} }) {
+ $form->{selectprojectnumber} = "<option>\n";
+ for (@{ $form->{all_project} }) { $form->{selectprojectnumber} .= qq|<option value="$_->{projectnumber}--$_->{id}">$_->{projectnumber}\n| }
+ }
+
+ $form->{oldvendor} = "$form->{vendor}--$form->{vendor_id}";
+ $form->{oldtransdate} = $form->{transdate};
+
+ # vendors
+ $form->{selectvendor} = "";
+ if (@{ $form->{all_vendor} }) {
+ $form->{vendor} = "$form->{vendor}--$form->{vendor_id}";
+ for (@{ $form->{all_vendor} }) { $form->{selectvendor} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+ }
+
+ # departments
+ if (@{ $form->{all_department} }) {
+ $form->{selectdepartment} = "<option>\n";
+ $form->{department} = "$form->{department}--$form->{department_id}" if $form->{department_id};
+
+ for (@{ $form->{all_department} }) { $form->{selectdepartment} .= qq|<option value="$_->{description}--$_->{id}">$_->{description}\n| }
+ }
+
+ if (@{ $form->{all_language} }) {
+ $form->{selectlanguage} = "<option>\n";
+ for (@{ $form->{all_language} }) { $form->{selectlanguage} .= qq|<option value="$_->{code}">$_->{description}\n| }
+ }
+
+ # forex
+ $form->{forex} = $form->{exchangerate};
+ $exchangerate = ($form->{exchangerate}) ? $form->{exchangerate} : 1;
+
+ foreach $key (keys %{ $form->{AP_links} }) {
+
+ $form->{"select$key"} = "";
+ foreach $ref (@{ $form->{AP_links}{$key} }) {
+ $form->{"select$key"} .= "<option>$ref->{accno}--$ref->{description}\n";
+ }
+
+ if ($key eq "AP_paid") {
+ for $i (1 .. scalar @{ $form->{acc_trans}{$key} }) {
+ $form->{"AP_paid_$i"} = "$form->{acc_trans}{$key}->[$i-1]->{accno}--$form->{acc_trans}{$key}->[$i-1]->{description}";
+ # reverse paid
+ $form->{"paid_$i"} = $form->{acc_trans}{$key}->[$i-1]->{amount};
+ $form->{"datepaid_$i"} = $form->{acc_trans}{$key}->[$i-1]->{transdate};
+ $form->{"forex_$i"} = $form->{"exchangerate_$i"} = $form->{acc_trans}{$key}->[$i-1]->{exchangerate};
+ $form->{"source_$i"} = $form->{acc_trans}{$key}->[$i-1]->{source};
+ $form->{"memo_$i"} = $form->{acc_trans}{$key}->[$i-1]->{memo};
+ $form->{"cleared_$i"} = $form->{acc_trans}{$key}->[$i-1]->{cleared};
+
+ $form->{paidaccounts} = $i;
+ }
+ } else {
+ $form->{$key} = "$form->{acc_trans}{$key}->[0]->{accno}--$form->{acc_trans}{$key}->[0]->{description}" if $form->{acc_trans}{$key}->[0]->{accno};
+ }
+
+ }
+
+ $form->{paidaccounts} = 1 unless (exists $form->{paidaccounts});
+
+ $form->{AP} = $form->{AP_1} unless $form->{id};
+
+ $form->{locked} = ($form->{revtrans}) ? '1' : ($form->datetonum(\%myconfig, $form->{transdate}) <= $form->datetonum(\%myconfig, $form->{closedto}));
+
+ if (! $form->{readonly}) {
+ $form->{readonly} = 1 if $myconfig{acs} =~ /AP--Vendor Invoice/;
+ }
+
+}
+
+
+
+sub prepare_invoice {
+
+ $form->{type} = "invoice";
+ $form->{currency} =~ s/ //g;
+ $form->{oldcurrency} = $form->{currency};
+
+ if ($form->{id}) {
+
+ for (qw(invnumber ordnumber ponumber quonumber)) { $form->{$_} = $form->quote($form->{$_}) }
+
+ foreach $ref (@{ $form->{invoice_details} }) {
+ $i++;
+ for (keys %$ref) { $form->{"${_}_$i"} = $ref->{$_} }
+
+ $form->{"projectnumber_$i"} = qq|$ref->{projectnumber}--$ref->{project_id}| if $ref->{project_id};
+ $form->{"partsgroup_$i"} = qq|$ref->{partsgroup}--$ref->{partsgroup_id}| if $ref->{partsgroup_id};
+
+ $form->{"discount_$i"} = $form->format_amount(\%myconfig, $form->{"discount_$i"} * 100);
+
+ ($dec) = ($form->{"sellprice_$i"} =~ /\.(\d+)/);
+ $dec = length $dec;
+ $decimalplaces = ($dec > 2) ? $dec : 2;
+
+ $form->{"sellprice_$i"} = $form->format_amount(\%myconfig, $form->{"sellprice_$i"}, $decimalplaces);
+ $form->{"qty_$i"} = $form->format_amount(\%myconfig, $form->{"qty_$i"});
+ $form->{"oldqty_$i"} = $form->{"qty_$i"};
+
+ for (qw(partnumber sku description unit)) { $form->{"${_}_$i"} = $form->quote($form->{"${_}_$i"}) }
+
+ $form->{rowcount} = $i;
+ }
+ }
+
+}
+
+
+
+sub form_header {
+
+ # set option selected
+ for (qw(AP currency)) {
+ $form->{"select$_"} =~ s/ selected//;
+ $form->{"select$_"} =~ s/option>\Q$form->{$_}\E/option selected>$form->{$_}/;
+ }
+
+ for (qw(vendor department)) {
+ $form->{"select$_"} = $form->unescape($form->{"select$_"});
+ $form->{"select$_"} =~ s/ selected//;
+ $form->{"select$_"} =~ s/(<option value="\Q$form->{$_}\E")/$1 selected/;
+ }
+
+ if ($form->{selectlanguage}) {
+ $form->{"selectlanguage"} = $form->unescape($form->{"selectlanguage"});
+ $form->{"selectlanguage"} =~ s/ selected//;
+ $form->{"selectlanguage"} =~ s/(<option value="\Q$form->{language_code}\E")/$1 selected/;
+
+ $lang = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Language').qq|</th>
+ <td><select name=language_code>$form->{selectlanguage}</select></td>
+ <input type=hidden name=oldlanguage_code value=$form->{oldlanguage_code}>
+ <input type=hidden name="selectlanguage" value="|.
+ $form->escape($form->{selectlanguage},1).qq|">
+ </tr>
+|;
+
+ }
+
+
+ $form->{exchangerate} = $form->format_amount(\%myconfig, $form->{exchangerate});
+
+ $exchangerate = qq|<tr>|;
+ $exchangerate .= qq|
+ <th align=right nowrap>|.$locale->text('Currency').qq|</th>
+ <td><select name=currency>$form->{selectcurrency}</select></td> | if $form->{defaultcurrency};
+ $exchangerate .= qq|
+ <input type=hidden name=selectcurrency value="$form->{selectcurrency}">
+ <input type=hidden name=defaultcurrency value=$form->{defaultcurrency}>
+|;
+
+ if ($form->{defaultcurrency} && $form->{currency} ne $form->{defaultcurrency}) {
+ if ($form->{forex}) {
+ $exchangerate .= qq|
+ <th align=right nowrap>|.$locale->text('Exchange Rate').qq|</th>
+ <td>$form->{exchangerate}<input type=hidden name=exchangerate value=$form->{exchangerate}></td>
+|;
+ } else {
+ $exchangerate .= qq|
+ <th align=right nowrap>|.$locale->text('Exchange Rate').qq|</th>
+ <td><input name=exchangerate size=10 value=$form->{exchangerate}></td>
+|;
+ }
+ }
+ $exchangerate .= qq|
+<input type=hidden name=forex value=$form->{forex}>
+</tr>
+|;
+
+ if ($form->{selectvendor}) {
+ $vendor = qq|<select name=vendor>$form->{selectvendor}</select>
+ <input type=hidden name="selectvendor" value="|.
+ $form->escape($form->{selectvendor},1).qq|">|;
+ } else {
+ $vendor = qq|<input name=vendor value="$form->{vendor}" size=35>|;
+ }
+
+ $department = qq|
+ <tr>
+ <th align="right" nowrap>|.$locale->text('Department').qq|</th>
+ <td colspan=3><select name=department>$form->{selectdepartment}</select>
+ <input type=hidden name=selectdepartment value="|.
+ $form->escape($form->{selectdepartment},1).qq|">
+ </td>
+ </tr>
+| if $form->{selectdepartment};
+
+ $n = ($form->{creditremaining} < 0) ? "0" : "1";
+
+ $i = $form->{rowcount} + 1;
+ $focus = "partnumber_$i";
+
+ $form->header;
+
+ print qq|
+<body onLoad="document.forms[0].${focus}.focus()" />
+
+<form method=post action="$form->{script}">
+|;
+
+ $form->{vc} = "vendor";
+ $form->hide_form(qw(id title vc type terms creditlimit creditremaining closedto locked shipped oldtransdate recurring));
+
+ print qq|
+<table width=100%>
+ <tr class=listtop>
+ <th>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Vendor').qq|</th>
+ <td colspan=3>$vendor</td>
+
+ <input type=hidden name=vendor_id value=$form->{vendor_id}>
+ <input type=hidden name=oldvendor value="$form->{oldvendor}">
+
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan=3>
+ <table>
+ <tr>
+ <th nowrap>|.$locale->text('Credit Limit').qq|</th>
+ <td>|.$form->format_amount(\%myconfig, $form->{creditlimit}, 0, "0").qq|</td>
+ <td width=20%></td>
+ <th nowrap>|.$locale->text('Remaining').qq|</th>
+ <td class="plus$n" nowrap>|.$form->format_amount(\%myconfig, $form->{creditremaining}, 0, "0").qq|</td>
+ </tr>
+ </table>
+ </td>
+ <tr>
+ <th align=right>|.$locale->text('Record in').qq|</th>
+ <td colspan=3><select name=AP>$form->{selectAP}</select></td>
+ <input type=hidden name=selectAP value="$form->{selectAP}">
+ </tr>
+ $department
+ $exchangerate
+ </table>
+ </td>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Invoice Number').qq|</th>
+ <td><input name=invnumber size=20 value="$form->{invnumber}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Order Number').qq|</th>
+ <td><input name=ordnumber size=20 value="$form->{ordnumber}"></td>
+<input type=hidden name=quonumber value="$form->{quonumber}">
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Invoice Date').qq|</th>
+ <td><input name=transdate size=11 title="$myconfig{dateformat}" value=$form->{transdate}></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Due Date').qq|</th>
+ <td><input name=duedate size=11 title="$myconfig{dateformat}" value=$form->{duedate}></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('PO Number').qq|</th>
+ <td><input name=ponumber size=20 value="$form->{ponumber}"></td>
+ </tr>
+ $lang
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+|;
+
+ $form->hide_form(qw(selectcurrency defaultcurrency taxaccounts));
+
+ for (split / /, $form->{taxaccounts}) { $form->hide_form("${_}_rate", "${_}_description") }
+
+}
+
+
+
+sub form_footer {
+
+ $form->{invtotal} = $form->{invsubtotal};
+
+ if (($rows = $form->numtextrows($form->{notes}, 35, 8)) < 2) {
+ $rows = 2;
+ }
+ if (($introws = $form->numtextrows($form->{intnotes}, 35, 8)) < 2) {
+ $introws = 2;
+ }
+ $rows = ($rows > $introws) ? $rows : $introws;
+ $notes = qq|<textarea name=notes rows=$rows cols=35 wrap=soft>$form->{notes}</textarea>|;
+ $intnotes = qq|<textarea name=intnotes rows=$rows cols=35 wrap=soft>$form->{intnotes}</textarea>|;
+
+ $form->{taxincluded} = ($form->{taxincluded}) ? "checked" : "";
+
+ $taxincluded = "";
+ if ($form->{taxaccounts}) {
+ $taxincluded = qq|
+ <input name=taxincluded class=checkbox type=checkbox value=1 $form->{taxincluded}> <b>|.$locale->text('Tax Included').qq|</b>
+|;
+ }
+
+ if (!$form->{taxincluded}) {
+
+ foreach $item (split / /, $form->{taxaccounts}) {
+ if ($form->{"${item}_base"}) {
+ $form->{invtotal} += $form->{"${item}_total"} = $form->round_amount($form->{"${item}_base"} * $form->{"${item}_rate"}, 2);
+ $form->{"${item}_total"} = $form->format_amount(\%myconfig, $form->{"${item}_total"}, 2);
+
+ $tax .= qq|
+ <tr>
+ <th align=right>$form->{"${item}_description"}</th>
+ <td align=right>$form->{"${item}_total"}</td>
+ </tr>
+|;
+ }
+ }
+
+ $form->{invsubtotal} = $form->format_amount(\%myconfig, $form->{invsubtotal}, 2, 0);
+
+ $subtotal = qq|
+ <tr>
+ <th align=right>|.$locale->text('Subtotal').qq|</th>
+ <td align=right>$form->{invsubtotal}</td>
+ </tr>
+|;
+
+ }
+
+ $form->{oldinvtotal} = $form->{invtotal};
+ $form->{invtotal} = $form->format_amount(\%myconfig, $form->{invtotal}, 2, 0);
+
+ print qq|
+ <tr>
+ <td>
+ <table width=100%>
+ <tr valign=bottom>
+ <td>
+ <table>
+ <tr>
+ <th align=left>|.$locale->text('Notes').qq|</th>
+ <th align=left>|.$locale->text('Internal Notes').qq|</th>
+ </tr>
+ <tr valign=top>
+ <td>$notes</td>
+ <td>$intnotes</td>
+ </tr>
+ </table>
+ </td>
+ <td align=right>
+ $taxincluded
+ <br>
+ <table>
+ $subtotal
+ $tax
+ <tr>
+ <th align=right>|.$locale->text('Total').qq|</th>
+ <td align=right>$form->{invtotal}</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+ <th colspan=6 class=listheading>|.$locale->text('Payments').qq|</th>
+ </tr>
+|;
+
+ if ($form->{currency} eq $form->{defaultcurrency}) {
+ @column_index = qw(datepaid source memo paid AP_paid);
+ } else {
+ @column_index = qw(datepaid source memo paid exchangerate AP_paid);
+ }
+
+ $column_data{datepaid} = "<th>".$locale->text('Date')."</th>";
+ $column_data{paid} = "<th>".$locale->text('Amount')."</th>";
+ $column_data{exchangerate} = "<th>".$locale->text('Exch')."</th>";
+ $column_data{AP_paid} = "<th>".$locale->text('Account')."</th>";
+ $column_data{source} = "<th>".$locale->text('Source')."</th>";
+ $column_data{memo} = "<th>".$locale->text('Memo')."</th>";
+
+ print qq|
+ <tr>
+|;
+ for (@column_index) { print "$column_data{$_}\n" }
+ print qq|
+ </tr>
+|;
+
+ $form->{paidaccounts}++ if ($form->{"paid_$form->{paidaccounts}"});
+ for $i (1 .. $form->{paidaccounts}) {
+
+ $form->hide_form("cleared_$i");
+
+ print qq|
+ <tr>
+|;
+
+ $form->{"selectAP_paid_$i"} = $form->{selectAP_paid};
+ $form->{"selectAP_paid_$i"} =~ s/option>\Q$form->{"AP_paid_$i"}\E/option selected>$form->{"AP_paid_$i"}/;
+
+ # format amounts
+ $totalpaid += $form->{"paid_$i"};
+ $form->{"paid_$i"} = $form->format_amount(\%myconfig, $form->{"paid_$i"}, 2);
+ $form->{"exchangerate_$i"} = $form->format_amount(\%myconfig, $form->{"exchangerate_$i"});
+
+ $exchangerate = qq|&nbsp;|;
+ if ($form->{currency} ne $form->{defaultcurrency}) {
+ if ($form->{"forex_$i"}) {
+ $exchangerate = qq|<input type=hidden name="exchangerate_$i" value=$form->{"exchangerate_$i"}>$form->{"exchangerate_$i"}|;
+ } else {
+ $exchangerate = qq|<input name="exchangerate_$i" size=10 value=$form->{"exchangerate_$i"}>|;
+ }
+ }
+ $exchangerate .= qq|
+<input type=hidden name="forex_$i" value=$form->{"forex_$i"}>
+|;
+
+ $column_data{"paid_$i"} = qq|<td align=center><input name="paid_$i" size=11 value=$form->{"paid_$i"}></td>|;
+ $column_data{"exchangerate_$i"} = qq|<td align=center>$exchangerate</td>|;
+ $column_data{"AP_paid_$i"} = qq|<td align=center><select name="AP_paid_$i">$form->{"selectAP_paid_$i"}</select></td>|;
+ $column_data{"datepaid_$i"} = qq|<td align=center><input name="datepaid_$i" size=11 title="$myconfig{dateformat}" value=$form->{"datepaid_$i"}></td>|;
+ $column_data{"source_$i"} = qq|<td align=center><input name="source_$i" size=11 value="$form->{"source_$i"}"></td>|;
+ $column_data{"memo_$i"} = qq|<td align=center><input name="memo_$i" size=11 value="$form->{"memo_$i"}"></td>|;
+
+ for (@column_index) { print qq|$column_data{"${_}_$i"}\n| }
+
+ print qq|
+ </tr>
+|;
+ }
+
+ $form->{oldtotalpaid} = $totalpaid;
+ $form->hide_form(qw(paidaccounts selectAP_paid oldinvtotal oldtotalpaid));
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+<br>
+|;
+
+ $transdate = $form->datetonum(\%myconfig, $form->{transdate});
+ $closedto = $form->datetonum(\%myconfig, $form->{closedto});
+
+# type=submit $locale->text('Update')
+# type=submit $locale->text('Post')
+# type=submit $locale->text('Post as new')
+# type=submit $locale->text('Schedule')
+# type=submit $locale->text('Purchase Order')
+# type=submit $locale->text('Delete')
+
+ if (! $form->{readonly}) {
+ %button = ('Update' => { ndx => 1, key => 'U', value => $locale->text('Update') },
+ 'Post' => { ndx => 3, key => 'O', value => $locale->text('Post') },
+ 'Post as new' => { ndx => 5, key => 'N', value => $locale->text('Post as new') },
+ 'Purchase Order' => { ndx => 6, key => 'L', value => $locale->text('Purchase Order') },
+ 'Schedule' => { ndx => 7, key => 'H', value => $locale->text('Schedule') },
+ 'Delete' => { ndx => 8, key => 'D', value => $locale->text('Delete') },
+ );
+
+ if ($form->{id}) {
+
+ if ($form->{locked}) {
+ for ("Post", "Delete") { delete $button{$_} }
+ }
+
+ } else {
+
+ if ($transdate > $closedto) {
+ for ('Update', 'Post', 'Schedule') { $a{$_} = 1 }
+ }
+ for (keys %button) { delete $button{$_} if ! $a{$_} }
+ }
+
+ for (sort { $button{$a}->{ndx} <=> $button{$b}->{ndx} } keys %button) { $form->print_button(\%button, $_) }
+
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ $form->hide_form(qw(rowcount callback path login sessionid));
+
+print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+
+sub update {
+
+ $form->{exchangerate} = $form->parse_amount(\%myconfig, $form->{exchangerate});
+
+ if ($newname = &check_name(vendor)) {
+ &rebuild_vc(vendor, AP, $form->{transdate}, 1);
+ }
+ if ($form->{transdate} ne $form->{oldtransdate}) {
+ $form->{duedate} = ($form->{terms}) ? $form->current_date(\%myconfig, $form->{transdate}, $form->{terms} * 1) : $form->{duedate};
+ $form->{oldtransdate} = $form->{transdate};
+ &rebuild_vc(vendor, AP, $form->{transdate}, 1) if ! $newname;
+
+ if ($form->{currency} ne $form->{defaultcurrency}) {
+ delete $form->{exchangerate};
+ $form->{exchangerate} = $exchangerate if ($form->{forex} = ($exchangerate = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{transdate}, 'sell')));
+ $form->{oldcurrency} = $form->{currency};
+ }
+ }
+
+ if ($form->{currency} ne $form->{oldcurrency}) {
+ delete $form->{exchangerate};
+ $form->{exchangerate} = $exchangerate if ($form->{forex} = ($exchangerate = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{transdate}, 'sell')));
+ }
+
+
+ $j = 1;
+ for $i (1 .. $form->{paidaccounts}) {
+ if ($form->{"paid_$i"}) {
+ for (qw(datepaid source memo cleared)) { $form->{"${_}_$j"} = $form->{"${_}_$i"} }
+ for (qw(paid exchangerate)) { $form->{"${_}_$j"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) }
+
+ $form->{"exchangerate_$j"} = $exchangerate if ($form->{"forex_$j"} = ($exchangerate = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{"datepaid_$j"}, 'sell')));
+ if ($j++ != $i) {
+ for (qw(datepaid source memo cleared paid exchangerate forex)) { delete $form->{"${_}_$i"} }
+ }
+ } else {
+ for (qw(datepaid source memo cleared paid exchangerate forex)) { delete $form->{"${_}_$i"} }
+ }
+ $form->{paidaccounts} = $j;
+ }
+
+ $i = $form->{rowcount};
+ $exchangerate = ($form->{exchangerate}) ? $form->{exchangerate} : 1;
+
+ for (qw(partsgroup projectnumber)) {
+ $form->{"select$_"} = $form->unescape($form->{"select$_"}) if $form->{"select$_"};
+ }
+
+ if (($form->{"partnumber_$i"} eq "") && ($form->{"description_$i"} eq "") && ($form->{"partsgroup_$i"} eq "")) {
+
+ $form->{creditremaining} += ($form->{oldinvtotal} - $form->{oldtotalpaid});
+ &check_form;
+
+ } else {
+
+ IR->retrieve_item(\%myconfig, \%$form);
+
+ my $rows = scalar @{ $form->{item_list} };
+
+ if ($form->{language_code} && $rows == 0) {
+ $language_code = $form->{language_code};
+ $form->{language_code} = "";
+ IR->retrieve_item(\%myconfig, \%$form);
+ $form->{language_code} = $language_code;
+ $rows = scalar @{ $form->{item_list} };
+ }
+
+ if ($rows) {
+
+ if ($rows > 1) {
+
+ &select_item;
+ exit;
+
+ } else {
+
+ $form->{"qty_$i"} = ($form->{"qty_$i"} * 1) ? $form->{"qty_$i"} : 1;
+
+ $sellprice = $form->parse_amount(\%myconfig, $form->{"sellprice_$i"});
+
+ for (qw(partnumber description unit)) { $form->{item_list}[$i]{$_} = $form->quote($form->{item_list}[$i]{$_}) }
+
+ for (keys %{ $form->{item_list}[0] }) { $form->{"${_}_$i"} = $form->{item_list}[0]{$_} }
+
+ $form->{"discount_$i"} = $form->{discount} * 100;
+
+ if ($sellprice) {
+ $form->{"sellprice_$i"} = $sellprice;
+
+ ($dec) = ($form->{"sellprice_$i"} =~ /\.(\d+)/);
+ $dec = length $dec;
+ $decimalplaces = ($dec > 2) ? $dec : 2;
+ } else {
+ ($dec) = ($form->{"sellprice_$i"} =~ /\.(\d+)/);
+ $dec = length $dec;
+ $decimalplaces = ($dec > 2) ? $dec : 2;
+
+ $form->{"sellprice_$i"} /= $exchangerate;
+ }
+
+ $amount = $form->{"sellprice_$i"} * $form->{"qty_$i"} * (1 - $form->{"discount_$i"} / 100);
+ for (split / /, $form->{taxaccounts}) { $form->{"${_}_base"} = 0 }
+ for (split / /, $form->{"taxaccounts_$i"}) { $form->{"${_}_base"} += $amount }
+ if (!$form->{taxincluded}) {
+ for (split / /, $form->{"taxaccounts_$i"}) { $amount += ($form->{"${_}_base"} * $form->{"${_}_rate"}) }
+ }
+
+ $form->{creditremaining} -= $amount;
+
+ $form->{"sellprice_$i"} = $form->format_amount(\%myconfig, $form->{"sellprice_$i"}, $decimalplaces);
+
+ $form->{"oldqty_$i"} = $form->{"qty_$i"};
+ for (qw(qty discount)) { $form->{"{_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}) }
+
+ }
+
+ &display_form;
+
+ } else {
+ # ok, so this is a new part
+ # ask if it is a part or service item
+
+ if ($form->{"partsgroup_$i"} && ($form->{"partsnumber_$i"} eq "") && ($form->{"description_$i"} eq "")) {
+ $form->{"discount_$i"} = "";
+ &display_form;
+ } else {
+
+ $form->{"id_$i"} = 0;
+ $form->{"unit_$i"} = $locale->text('ea');
+
+ &new_item;
+
+ }
+ }
+ }
+}
+
+
+
+sub post {
+
+ $form->isblank("transdate", $locale->text('Invoice Date missing!'));
+ $form->isblank("vendor", $locale->text('Vendor missing!'));
+
+ # if the vendor changed get new values
+ if (&check_name(vendor)) {
+ &update;
+ exit;
+ }
+
+ &validate_items;
+
+ $closedto = $form->datetonum(\%myconfig, $form->{closedto});
+ $transdate = $form->datetonum(\%myconfig, $form->{transdate});
+
+ $form->error($locale->text('Cannot post invoice for a closed period!')) if ($transdate <= $closedto);
+
+ $form->isblank("exchangerate", $locale->text('Exchange rate missing!')) if ($form->{currency} ne $form->{defaultcurrency});
+
+ for $i (1 .. $form->{paidaccounts}) {
+ if ($form->{"paid_$i"}) {
+ $datepaid = $form->datetonum(\%myconfig, $form->{"datepaid_$i"});
+
+ $form->isblank("datepaid_$i", $locale->text('Payment date missing!'));
+
+ $form->error($locale->text('Cannot post payment for a closed period!')) if ($datepaid <= $closedto);
+
+ if ($form->{currency} ne $form->{defaultcurrency}) {
+ $form->{"exchangerate_$i"} = $form->{exchangerate} if ($transdate == $datepaid);
+ $form->isblank("exchangerate_$i", $locale->text('Exchange rate for payment missing!'));
+ }
+ }
+ }
+
+ if (! $form->{repost}) {
+ if ($form->{id}) {
+ &repost;
+ exit;
+ }
+ }
+
+ ($form->{AP}) = split /--/, $form->{AP};
+ ($form->{AP_paid}) = split /--/, $form->{AP_paid};
+
+ if (IR->post_invoice(\%myconfig, \%$form)) {
+ $form->redirect($locale->text('Invoice')." $form->{invnumber} ".$locale->text('posted!'));
+ } else {
+ $form->error($locale->text('Cannot post invoice!'));
+ }
+
+}
+
+
+
+sub delete {
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+|;
+
+ $form->{action} = "yes";
+ $form->hide_form;
+
+ print qq|
+<h2 class=confirm>|.$locale->text('Confirm!').qq|</h2>
+
+<h4>|.$locale->text('Are you sure you want to delete Invoice Number').qq| $form->{invnumber}</h4>
+<p>
+<input name=action class=submit type=submit value="|.$locale->text('Yes').qq|">
+</form>
+|;
+
+
+}
+
+
+
+sub yes {
+
+ if (IR->delete_invoice(\%myconfig, \%$form)) {
+ $form->redirect($locale->text('Invoice deleted!'));
+ } else {
+ $form->error($locale->text('Cannot delete invoice!'));
+ }
+
+}
+
+
diff --git a/bin/lynx/is.pl b/bin/lynx/is.pl
new file mode 100755
index 00000000..1dde9d87
--- /dev/null
+++ b/bin/lynx/is.pl
@@ -0,0 +1,952 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2001
+#
+# Author: DWS Systems Inc.
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#======================================================================
+#
+# Inventory invoicing module
+#
+#======================================================================
+
+
+use SL::IS;
+use SL::PE;
+
+require "$form->{path}/arap.pl";
+require "$form->{path}/io.pl";
+
+
+1;
+# end of main
+
+
+
+sub add {
+
+ $form->{title} = $locale->text('Add Sales Invoice');
+
+ $form->{callback} = "$form->{script}?action=add&type=$form->{type}&login=$form->{login}&path=$form->{path}&sessionid=$form->{sessionid}" unless $form->{callback};
+
+ &invoice_links;
+ &prepare_invoice;
+ &display_form;
+
+}
+
+
+sub edit {
+
+ $form->{title} = $locale->text('Edit Sales Invoice');
+
+ &invoice_links;
+ &prepare_invoice;
+ &display_form;
+
+}
+
+
+sub invoice_links {
+
+ $form->{vc} = "customer";
+ $form->{type} = "invoice";
+
+ # create links
+ $form->create_links("AR", \%myconfig, "customer", 1);
+
+ # currencies
+ @curr = split /:/, $form->{currencies};
+ $form->{defaultcurrency} = $curr[0];
+ chomp $form->{defaultcurrency};
+
+ for (@curr) { $form->{selectcurrency} .= "<option>$_\n" }
+
+ if (@{ $form->{all_customer} }) {
+ unless ($form->{customer_id}) {
+ $form->{customer_id} = $form->{all_customer}->[0]->{id};
+ }
+ }
+
+ AA->get_name(\%myconfig, \%$form);
+ delete $form->{notes};
+ IS->retrieve_invoice(\%myconfig, \%$form);
+
+ $form->{oldlanguage_code} = $form->{language_code};
+
+ $form->get_partsgroup(\%myconfig, { language_code => $form->{language_code}, searchitems => 'nolabor' });
+
+ if (@{ $form->{all_partsgroup} }) {
+ $form->{selectpartsgroup} = "<option>\n";
+ foreach $ref (@ { $form->{all_partsgroup} }) {
+ if ($ref->{translation}) {
+ $form->{selectpartsgroup} .= qq|<option value="$ref->{partsgroup}--$ref->{id}">$ref->{translation}\n|;
+ } else {
+ $form->{selectpartsgroup} .= qq|<option value="$ref->{partsgroup}--$ref->{id}">$ref->{partsgroup}\n|;
+ }
+ }
+ }
+
+ if (@{ $form->{all_project} }) {
+ $form->{selectprojectnumber} = "<option>\n";
+ for (@{ $form->{all_project} }) { $form->{selectprojectnumber} .= qq|<option value="$_->{projectnumber}--$_->{id}">$_->{projectnumber}\n| }
+ }
+
+ $form->{oldcustomer} = "$form->{customer}--$form->{customer_id}";
+ $form->{oldtransdate} = $form->{transdate};
+
+ $form->{selectcustomer} = "";
+ if (@{ $form->{all_customer} }) {
+ $form->{customer} = "$form->{customer}--$form->{customer_id}";
+ for (@{ $form->{all_customer} }) { $form->{selectcustomer} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+ }
+
+ # departments
+ if (@{ $form->{all_department} }) {
+ $form->{selectdepartment} = "<option>\n";
+ $form->{department} = "$form->{department}--$form->{department_id}" if $form->{department_id};
+
+ for (@{ $form->{all_department} }) { $form->{selectdepartment} .= qq|<option value="$_->{description}--$_->{id}">$_->{description}\n| }
+ }
+
+ $form->{employee} = "$form->{employee}--$form->{employee_id}";
+ # sales staff
+ if (@{ $form->{all_employee} }) {
+ $form->{selectemployee} = "";
+ for (@{ $form->{all_employee} }) { $form->{selectemployee} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+ }
+
+ if (@{ $form->{all_language} }) {
+ $form->{selectlanguage} = "<option>\n";
+ for (@{ $form->{all_language} }) { $form->{selectlanguage} .= qq|<option value="$_->{code}">$_->{description}\n| }
+ }
+
+ # forex
+ $form->{forex} = $form->{exchangerate};
+ $exchangerate = ($form->{exchangerate}) ? $form->{exchangerate} : 1;
+
+ foreach $key (keys %{ $form->{AR_links} }) {
+
+ $form->{"select$key"} = "";
+ foreach $ref (@{ $form->{AR_links}{$key} }) {
+ $form->{"select$key"} .= "<option>$ref->{accno}--$ref->{description}\n";
+ }
+
+ if ($key eq "AR_paid") {
+ for $i (1 .. scalar @{ $form->{acc_trans}{$key} }) {
+ $form->{"AR_paid_$i"} = "$form->{acc_trans}{$key}->[$i-1]->{accno}--$form->{acc_trans}{$key}->[$i-1]->{description}";
+ # reverse paid
+ $form->{"paid_$i"} = $form->{acc_trans}{$key}->[$i-1]->{amount} * -1;
+ $form->{"datepaid_$i"} = $form->{acc_trans}{$key}->[$i-1]->{transdate};
+ $form->{"forex_$i"} = $form->{"exchangerate_$i"} = $form->{acc_trans}{$key}->[$i-1]->{exchangerate};
+ $form->{"source_$i"} = $form->{acc_trans}{$key}->[$i-1]->{source};
+ $form->{"memo_$i"} = $form->{acc_trans}{$key}->[$i-1]->{memo};
+ $form->{"cleared_$i"} = $form->{acc_trans}{$key}->[$i-1]->{cleared};
+
+ $form->{paidaccounts} = $i;
+ }
+ } else {
+ $form->{$key} = "$form->{acc_trans}{$key}->[0]->{accno}--$form->{acc_trans}{$key}->[0]->{description}" if $form->{acc_trans}{$key}->[0]->{accno};
+ }
+
+ }
+
+ for (qw(AR_links acc_trans)) { delete $form->{$_} }
+
+ $form->{paidaccounts} = 1 unless (exists $form->{paidaccounts});
+
+ $form->{AR} = $form->{AR_1} unless $form->{id};
+
+ $form->{locked} = ($form->{revtrans}) ? '1' : ($form->datetonum(\%myconfig, $form->{transdate}) <= $form->datetonum(\%myconfig, $form->{closedto}));
+
+ if (! $form->{readonly}) {
+ $form->{readonly} = 1 if $myconfig{acs} =~ /AR--Sales Invoice/;
+ }
+
+}
+
+
+sub prepare_invoice {
+
+ $form->{type} = "invoice";
+ $form->{formname} = "invoice";
+ $form->{sortby} ||= "runningnumber";
+ $form->{format} = "postscript" if $myconfig{printer};
+ $form->{media} = $myconfig{printer};
+
+ $form->{selectformname} = qq|<option value="invoice">|.$locale->text('Invoice').qq|
+<option value="pick_list">|.$locale->text('Pick List').qq|
+<option value="packing_list">|.$locale->text('Packing List');
+
+ $i = 0;
+ $form->{currency} =~ s/ //g;
+ $form->{oldcurrency} = $form->{currency};
+
+ if ($form->{id}) {
+
+ for (qw(invnumber ordnumber ponumber quonumber shippingpoint shipvia notes intnotes)) { $form->{$_} = $form->quote($form->{$_}) }
+
+ foreach $ref (@{ $form->{invoice_details} } ) {
+ $i++;
+ for (keys %$ref) { $form->{"${_}_$i"} = $ref->{$_} }
+
+ $form->{"projectnumber_$i"} = qq|$ref->{projectnumber}--$ref->{project_id}| if $ref->{project_id};
+ $form->{"partsgroup_$i"} = qq|$ref->{partsgroup}--$ref->{partsgroup_id}| if $ref->{partsgroup_id};
+
+ $form->{"discount_$i"} = $form->format_amount(\%myconfig, $form->{"discount_$i"} * 100);
+
+ ($dec) = ($form->{"sellprice_$i"} =~ /\.(\d+)/);
+ $dec = length $dec;
+ $decimalplaces = ($dec > 2) ? $dec : 2;
+
+ $form->{"sellprice_$i"} = $form->format_amount(\%myconfig, $form->{"sellprice_$i"}, $decimalplaces);
+ $form->{"qty_$i"} = $form->format_amount(\%myconfig, $form->{"qty_$i"});
+ $form->{"oldqty_$i"} = $form->{"qty_$i"};
+
+ for (qw(partnumber sku description unit)) { $form->{"${_}_$i"} = $form->quote($form->{"${_}_$i"}) }
+ $form->{rowcount} = $i;
+ }
+ }
+
+}
+
+
+
+sub form_header {
+
+ # set option selected
+ for (qw(AR currency)) {
+ $form->{"select$_"} =~ s/ selected//;
+ $form->{"select$_"} =~ s/option>\Q$form->{$_}\E/option selected>$form->{$_}/;
+ }
+
+ for (qw(customer department employee)) {
+ $form->{"select$_"} = $form->unescape($form->{"select$_"});
+ $form->{"select$_"} =~ s/ selected//;
+ $form->{"select$_"} =~ s/(<option value="\Q$form->{$_}\E")/$1 selected/;
+ }
+
+ $form->{exchangerate} = $form->format_amount(\%myconfig, $form->{exchangerate});
+
+
+ $exchangerate = qq|<tr>|;
+ $exchangerate .= qq|
+ <th align=right nowrap>|.$locale->text('Currency').qq|</th>
+ <td><select name=currency>$form->{selectcurrency}</select></td>
+| if $form->{defaultcurrency};
+ $exchangerate .= qq|
+ <input type=hidden name=selectcurrency value="$form->{selectcurrency}">
+ <input type=hidden name=defaultcurrency value=$form->{defaultcurrency}>
+|;
+
+ if ($form->{defaultcurrency} && $form->{currency} ne $form->{defaultcurrency}) {
+ if ($form->{forex}) {
+ $exchangerate .= qq|<th align=right>|.$locale->text('Exchange Rate').qq|</th><td>$form->{exchangerate}<input type=hidden name=exchangerate value=$form->{exchangerate}></td>|;
+ } else {
+ $exchangerate .= qq|<th align=right>|.$locale->text('Exchange Rate').qq|</th><td><input name=exchangerate size=10 value=$form->{exchangerate}></td>|;
+ }
+ }
+ $exchangerate .= qq|
+<input type=hidden name=forex value=$form->{forex}>
+</tr>
+|;
+
+ if ($form->{selectcustomer}) {
+ $customer = qq|<select name=customer>$form->{selectcustomer}</select>
+ <input type=hidden name="selectcustomer" value="|.
+ $form->escape($form->{selectcustomer},1).qq|">|;
+ } else {
+ $customer = qq|<input name=customer value="$form->{customer}" size=35>|;
+ }
+
+ $department = qq|
+ <tr>
+ <th align="right" nowrap>|.$locale->text('Department').qq|</th>
+ <td colspan=3><select name=department>$form->{selectdepartment}</select>
+ <input type=hidden name=selectdepartment value="|.
+ $form->escape($form->{selectdepartment},1).qq|">
+ </td>
+ </tr>
+| if $form->{selectdepartment};
+
+
+ $n = ($form->{creditremaining} < 0) ? "0" : "1";
+
+
+ if ($form->{business}) {
+ $business = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Business').qq|</th>
+ <td>$form->{business}</td>
+ <td width=10></td>
+ <th align=right nowrap>|.$locale->text('Trade Discount').qq|</th>
+ <td>|.$form->format_amount(\%myconfig, $form->{tradediscount} * 100).qq| %</td>
+ </tr>
+|;
+ }
+
+ $employee = qq|
+ <input type=hidden name=employee value="$form->{employee}">
+|;
+
+
+ $employee = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Salesperson').qq|</th>
+ <td><select name=employee>$form->{selectemployee}</select></td>
+ <input type=hidden name=selectemployee value="|.
+ $form->escape($form->{selectemployee},1).qq|">
+ </tr>
+| if $form->{selectemployee};
+
+ $i = $form->{rowcount} + 1;
+ $focus = "partnumber_$i";
+
+ $form->header;
+
+ print qq|
+<body onLoad="document.forms[0].${focus}.focus()" />
+
+<form method=post action="$form->{script}">
+|;
+
+ $form->hide_form(qw(id type media format printed emailed queued title vc terms discount creditlimit creditremaining tradediscount business closedto locked shipped oldtransdate recurring));
+
+ print qq|
+<table width=100%>
+ <tr class=listtop>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Customer').qq|</th>
+ <td colspan=3>$customer</td>
+ <input type=hidden name=customer_id value=$form->{customer_id}>
+ <input type=hidden name=oldcustomer value="$form->{oldcustomer}">
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan=3>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Credit Limit').qq|</th>
+ <td>|.$form->format_amount(\%myconfig, $form->{creditlimit}, 0, "0").qq|</td>
+ <td width=10></td>
+ <th align=right nowrap>|.$locale->text('Remaining').qq|</th>
+ <td class="plus$n" nowrap>|.$form->format_amount(\%myconfig, $form->{creditremaining}, 0, "0").qq|</td>
+ </tr>
+ $business
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Record in').qq|</th>
+ <td colspan=3><select name=AR>$form->{selectAR}</select></td>
+ <input type=hidden name=selectAR value="$form->{selectAR}">
+ </tr>
+ $department
+ $exchangerate
+ <tr>
+ <th align=right nowrap>|.$locale->text('Shipping Point').qq|</th>
+ <td colspan=3><input name=shippingpoint size=35 value="$form->{shippingpoint}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Ship via').qq|</th>
+ <td colspan=3><input name=shipvia size=35 value="$form->{shipvia}"></td>
+ </tr>
+ </table>
+ </td>
+ <td align=right>
+ <table>
+ $employee
+ <tr>
+ <th align=right nowrap>|.$locale->text('Invoice Number').qq|</th>
+ <td><input name=invnumber size=20 value="$form->{invnumber}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Order Number').qq|</th>
+ <td><input name=ordnumber size=20 value="$form->{ordnumber}"></td>
+<input type=hidden name=quonumber value="$form->{quonumber}">
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Invoice Date').qq|</th>
+ <td><input name=transdate size=11 title="$myconfig{dateformat}" value=$form->{transdate}></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Due Date').qq|</th>
+ <td><input name=duedate size=11 title="$myconfig{dateformat}" value=$form->{duedate}></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('PO Number').qq|</th>
+ <td><input name=ponumber size=20 value="$form->{ponumber}"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ </td>
+ </tr>
+|;
+
+ $form->hide_form(qw(shiptoname shiptoaddress1 shiptoaddress2 shiptocity shiptostate shiptozipcode shiptocountry shiptocontact shiptophone shiptofax shiptoemail message email subject cc bcc taxaccounts));
+
+ foreach $item (split / /, $form->{taxaccounts}) {
+ $form->hide_form("${item}_rate", "${item}_description", "${item}_taxnumber");
+ }
+
+}
+
+
+
+sub form_footer {
+
+ $form->{invtotal} = $form->{invsubtotal};
+
+ if (($rows = $form->numtextrows($form->{notes}, 35, 8)) < 2) {
+ $rows = 2;
+ }
+ if (($introws = $form->numtextrows($form->{intnotes}, 35, 8)) < 2) {
+ $introws = 2;
+ }
+ $rows = ($rows > $introws) ? $rows : $introws;
+ $notes = qq|<textarea name=notes rows=$rows cols=35 wrap=soft>$form->{notes}</textarea>|;
+ $intnotes = qq|<textarea name=intnotes rows=$rows cols=35 wrap=soft>$form->{intnotes}</textarea>|;
+
+ $form->{taxincluded} = ($form->{taxincluded}) ? "checked" : "";
+
+ $taxincluded = "";
+ if ($form->{taxaccounts}) {
+ $taxincluded = qq|
+ <tr height="5"></tr>
+ <tr>
+ <td align=right>
+ <input name=taxincluded class=checkbox type=checkbox value=1 $form->{taxincluded}></td><th align=left>|.$locale->text('Tax Included').qq|</th>
+ </tr>
+|;
+ }
+
+ if (!$form->{taxincluded}) {
+
+ for (split / /, $form->{taxaccounts}) {
+ if ($form->{"${_}_base"}) {
+ $form->{"${_}_total"} = $form->round_amount($form->{"${_}_base"} * $form->{"${_}_rate"}, 2);
+ $form->{invtotal} += $form->{"${_}_total"};
+ $form->{"${_}_total"} = $form->format_amount(\%myconfig, $form->{"${_}_total"}, 2);
+
+ $tax .= qq|
+ <tr>
+ <th align=right>$form->{"${_}_description"}</th>
+ <td align=right>$form->{"${_}_total"}</td>
+ </tr>
+|;
+ }
+ }
+
+ $form->{invsubtotal} = $form->format_amount(\%myconfig, $form->{invsubtotal}, 2, 0);
+
+ $subtotal = qq|
+ <tr>
+ <th align=right>|.$locale->text('Subtotal').qq|</th>
+ <td align=right>$form->{invsubtotal}</td>
+ </tr>
+|;
+
+ }
+
+ $form->{oldinvtotal} = $form->{invtotal};
+ $form->{invtotal} = $form->format_amount(\%myconfig, $form->{invtotal}, 2, 0);
+
+ print qq|
+ <tr>
+ <td>
+ <table width=100%>
+ <tr valign=bottom>
+ <td>
+ <table>
+ <tr>
+ <th align=left>|.$locale->text('Notes').qq|</th>
+ <th align=left>|.$locale->text('Internal Notes').qq|</th>
+ </tr>
+ <tr valign=top>
+ <td>$notes</td>
+ <td>$intnotes</td>
+ </tr>
+ </table>
+ </td>
+ <td align=right>
+ <table>
+ $subtotal
+ $tax
+ <tr>
+ <th align=right>|.$locale->text('Total').qq|</th>
+ <td align=right>$form->{invtotal}</td>
+ </tr>
+ $taxincluded
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+ <th colspan=6 class=listheading>|.$locale->text('Payments')
+ .qq|</th>
+ </tr>
+|;
+
+ if ($form->{currency} eq $form->{defaultcurrency}) {
+ @column_index = qw(datepaid source memo paid AR_paid);
+ } else {
+ @column_index = qw(datepaid source memo paid exchangerate AR_paid);
+ }
+
+ $column_data{datepaid} = "<th>".$locale->text('Date')."</th>";
+ $column_data{paid} = "<th>".$locale->text('Amount')."</th>";
+ $column_data{exchangerate} = "<th>".$locale->text('Exch')."</th>";
+ $column_data{AR_paid} = "<th>".$locale->text('Account')."</th>";
+ $column_data{source} = "<th>".$locale->text('Source')."</th>";
+ $column_data{memo} = "<th>".$locale->text('Memo')."</th>";
+
+ print "
+ <tr>
+";
+ for (@column_index) { print "$column_data{$_}\n" }
+ print "
+ </tr>
+";
+
+ $form->{paidaccounts}++ if ($form->{"paid_$form->{paidaccounts}"});
+ for $i (1 .. $form->{paidaccounts}) {
+
+ $form->hide_form("cleared_$i");
+
+ print "
+ <tr>\n";
+
+ $form->{"selectAR_paid_$i"} = $form->{selectAR_paid};
+ $form->{"selectAR_paid_$i"} =~ s/option>\Q$form->{"AR_paid_$i"}\E/option selected>$form->{"AR_paid_$i"}/;
+
+ # format amounts
+ $totalpaid += $form->{"paid_$i"};
+ $form->{"paid_$i"} = $form->format_amount(\%myconfig, $form->{"paid_$i"}, 2);
+ $form->{"exchangerate_$i"} = $form->format_amount(\%myconfig, $form->{"exchangerate_$i"});
+
+ $exchangerate = qq|&nbsp;|;
+ if ($form->{currency} ne $form->{defaultcurrency}) {
+ if ($form->{"forex_$i"}) {
+ $exchangerate = qq|<input type=hidden name="exchangerate_$i" value=$form->{"exchangerate_$i"}>$form->{"exchangerate_$i"}|;
+ } else {
+ $exchangerate = qq|<input name="exchangerate_$i" size=10 value=$form->{"exchangerate_$i"}>|;
+ }
+ }
+
+ $exchangerate .= qq|
+<input type=hidden name="forex_$i" value=$form->{"forex_$i"}>
+|;
+
+ $column_data{paid} = qq|<td align=center><input name="paid_$i" size=11 value=$form->{"paid_$i"}></td>|;
+ $column_data{exchangerate} = qq|<td align=center>$exchangerate</td>|;
+ $column_data{AR_paid} = qq|<td align=center><select name="AR_paid_$i">$form->{"selectAR_paid_$i"}</select></td>|;
+ $column_data{datepaid} = qq|<td align=center><input name="datepaid_$i" size=11 title="$myconfig{dateformat}" value=$form->{"datepaid_$i"}></td>|;
+ $column_data{source} = qq|<td align=center><input name="source_$i" size=11 value="$form->{"source_$i"}"></td>|;
+ $column_data{memo} = qq|<td align=center><input name="memo_$i" size=11 value="$form->{"memo_$i"}"></td>|;
+
+ for (@column_index) { print qq|$column_data{$_}\n| }
+ print "
+ </tr>\n";
+ }
+
+ $form->{oldtotalpaid} = $totalpaid;
+ $form->hide_form(qw(paidaccounts selectAR_paid oldinvtotal oldtotalpaid));
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+ <tr>
+ <td>
+|;
+
+ &print_options;
+
+ print qq|
+ </td>
+ </tr>
+</table>
+<br>
+|;
+
+
+ $transdate = $form->datetonum(\%myconfig, $form->{transdate});
+ $closedto = $form->datetonum(\%myconfig, $form->{closedto});
+
+# type=submit $locale->text('Update')
+# type=submit $locale->text('Print')
+# type=submit $locale->text('Post')
+# type=submit $locale->text('Print and Post')
+# type=submit $locale->text('Schedule')
+# type=submit $locale->text('Ship to')
+# type=submit $locale->text('Post as new')
+# type=submit $locale->text('Print and Post as new')
+# type=submit $locale->text('E-mail')
+# type=submit $locale->text('Delete')
+# type=submit $locale->text('Sales Order')
+
+ if (! $form->{readonly}) {
+
+ %button = ('Update' => { ndx => 1, key => 'U', value => $locale->text('Update') },
+ 'Print' => { ndx => 2, key => 'P', value => $locale->text('Print') },
+ 'Post' => { ndx => 3, key => 'O', value => $locale->text('Post') },
+ 'Ship to' => { ndx => 4, key => 'T', value => $locale->text('Ship to') },
+ 'E-mail' => { ndx => 5, key => 'E', value => $locale->text('E-mail') },
+ 'Print and Post' => { ndx => 6, key => 'R', value => $locale->text('Print and Post') },
+ 'Post as new' => { ndx => 7, key => 'N', value => $locale->text('Post as new') },
+ 'Print and Post as new' => { ndx => 8, key => 'W', value => $locale->text('Print and Post as new') },
+ 'Sales Order' => { ndx => 9, key => 'L', value => $locale->text('Sales Order') },
+ 'Schedule' => { ndx => 10, key => 'H', value => $locale->text('Schedule') },
+ 'Delete' => { ndx => 11, key => 'D', value => $locale->text('Delete') },
+ );
+
+ if ($form->{id}) {
+
+ if ($form->{locked} || $transdate <= $closedto) {
+ for ("Post", "Print and Post", "Delete") { delete $button{$_} }
+ }
+
+ if (!$latex) {
+ for ("Print and Post", "Print and Post as new") { delete $button{$_} }
+ }
+
+ } else {
+
+ if ($transdate > $closedto) {
+
+ for ("Update", "Ship to", "Print", "E-mail", "Post", "Schedule") { $a{$_} = 1 }
+ $a{'Print and Post'} = 1 if $latex;
+
+ }
+ for (keys %button) { delete $button{$_} if ! $a{$_} }
+ }
+
+ for (sort { $button{$a}->{ndx} <=> $button{$b}->{ndx} } keys %button) { $form->print_button(\%button, $_) }
+
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ $form->hide_form(qw(rowcount callback path login sessionid));
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub update {
+
+ $form->{exchangerate} = $form->parse_amount(\%myconfig, $form->{exchangerate});
+
+ if ($newname = &check_name(customer)) {
+ &rebuild_vc(customer, AR, $form->{transdate}, 1);
+ }
+ if ($form->{transdate} ne $form->{oldtransdate}) {
+ $form->{duedate} = ($form->{terms}) ? $form->current_date(\%myconfig, $form->{transdate}, $form->{terms} * 1) : $form->{duedate};
+ $form->{oldtransdate} = $form->{transdate};
+ &rebuild_vc(customer, AR, $form->{transdate}, 1) if ! $newname;
+
+ if ($form->{currency} ne $form->{defaultcurrency}) {
+ delete $form->{exchangerate};
+ $form->{exchangerate} = $exchangerate if ($form->{forex} = ($exchangerate = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{transdate}, 'buy')));
+ }
+
+ $form->{selectemployee} = "";
+ if (@{ $form->{all_employee} }) {
+ for (@{ $form->{all_employee} }) { $form->{selectemployee} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+ }
+ }
+
+ if ($form->{currency} ne $form->{oldcurrency}) {
+ delete $form->{exchangerate};
+ $form->{exchangerate} = $exchangerate if ($form->{forex} = ($exchangerate = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{transdate}, 'buy')));
+ }
+
+
+ $j = 1;
+ for $i (1 .. $form->{paidaccounts}) {
+ if ($form->{"paid_$i"}) {
+ for (qw(datepaid source memo cleared)) { $form->{"${_}_$j"} = $form->{"${_}_$i"} }
+ for (qw(paid exchangerate)) { $form->{"${_}_$j"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) }
+
+ $form->{"exchangerate_$j"} = $exchangerate if ($form->{"forex_$j"} = ($exchangerate = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{"datepaid_$j"}, 'buy')));
+ if ($j++ != $i) {
+ for (qw(datepaid source memo cleared paid exchangerate forex)) { delete $form->{"${_}_$i"} }
+ }
+ } else {
+ for (qw(datepaid source memo cleared paid exchangerate forex)) { delete $form->{"${_}_$i"} }
+ }
+ }
+ $form->{paidaccounts} = $j;
+
+ $i = $form->{rowcount};
+ $exchangerate = ($form->{exchangerate}) ? $form->{exchangerate} : 1;
+
+ for (qw(partsgroup projectnumber)) {
+ $form->{"select$_"} = $form->unescape($form->{"select$_"}) if $form->{"select$_"};
+ }
+
+ # if last row empty, check the form otherwise retrieve new item
+ if (($form->{"partnumber_$i"} eq "") && ($form->{"description_$i"} eq "") && ($form->{"partsgroup_$i"} eq "")) {
+
+ $form->{creditremaining} += ($form->{oldinvtotal} - $form->{oldtotalpaid});
+ &check_form;
+
+ } else {
+
+ IS->retrieve_item(\%myconfig, \%$form);
+
+ $rows = scalar @{ $form->{item_list} };
+
+ if ($form->{language_code} && $rows == 0) {
+ $language_code = $form->{language_code};
+ $form->{language_code} = "";
+ IS->retrieve_item(\%myconfig, \%$form);
+ $form->{language_code} = $language_code;
+ $rows = scalar @{ $form->{item_list} };
+ }
+
+ if ($rows) {
+
+ if ($rows > 1) {
+
+ &select_item;
+ exit;
+
+ } else {
+
+ $form->{"qty_$i"} = ($form->{"qty_$i"} * 1) ? $form->{"qty_$i"} : 1;
+
+ $sellprice = $form->parse_amount(\%myconfig, $form->{"sellprice_$i"});
+
+ for (qw(partnumber description unit)) { $form->{item_list}[$i]{$_} = $form->quote($form->{item_list}[$i]{$_}) }
+ for (keys %{ $form->{item_list}[0] }) { $form->{"${_}_$i"} = $form->{item_list}[0]{$_} }
+
+ $form->{"discount_$i"} = $form->{discount} * 100;
+
+ if ($sellprice) {
+ $form->{"sellprice_$i"} = $sellprice;
+
+ ($dec) = ($form->{"sellprice_$i"} =~ /\.(\d+)/);
+ $dec = length $dec;
+ $decimalplaces1 = ($dec > 2) ? $dec : 2;
+ } else {
+ ($dec) = ($form->{"sellprice_$i"} =~ /\.(\d+)/);
+ $dec = length $dec;
+ $decimalplaces1 = ($dec > 2) ? $dec : 2;
+
+ $form->{"sellprice_$i"} /= $exchangerate;
+ }
+
+ ($dec) = ($form->{"lastcost_$i"} =~ /\.(\d+)/);
+ $dec = length $dec;
+ $decimalplaces2 = ($dec > 2) ? $dec : 2;
+
+ # if there is an exchange rate adjust sellprice
+ for (qw(listprice lastcost)) { $form->{"${_}_$i"} /= $exchangerate }
+
+ $amount = $form->{"sellprice_$i"} * $form->{"qty_$i"} * (1 - $form->{"discount_$i"} / 100);
+ for (split / /, $form->{taxaccounts}) { $form->{"${_}_base"} = 0 }
+ for (split / /, $form->{"taxaccounts_$i"}) { $form->{"${_}_base"} += $amount }
+ if (!$form->{taxincluded}) {
+ for (split / /, $form->{"taxaccounts_$i"}) { $amount += ($form->{"${_}_base"} * $form->{"${_}_rate"}) }
+ }
+
+ $form->{creditremaining} -= $amount;
+
+ for (qw(sellprice listprice)) { $form->{"${_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}, $decimalplaces1) }
+ $form->{"lastcost_$i"} = $form->format_amount(\%myconfig, $form->{"lastcost_$i"}, $decimalplaces2);
+
+ $form->{"oldqty_$i"} = $form->{"qty_$i"};
+ for (qw(qty discount)) { $form->{"{_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}) }
+
+ }
+
+ &display_form;
+
+ } else {
+ # ok, so this is a new part
+ # ask if it is a part or service item
+
+ if ($form->{"partsgroup_$i"} && ($form->{"partsnumber_$i"} eq "") && ($form->{"description_$i"} eq "")) {
+ $form->{rowcount}--;
+ &display_form;
+ } else {
+
+ $form->{"id_$i"} = 0;
+ $form->{"unit_$i"} = $locale->text('ea');
+
+ &new_item;
+
+ }
+ }
+ }
+}
+
+
+
+sub post {
+
+ $form->isblank("transdate", $locale->text('Invoice Date missing!'));
+ $form->isblank("customer", $locale->text('Customer missing!'));
+
+ # if oldcustomer ne customer redo form
+ if (&check_name(customer)) {
+ &update;
+ exit;
+ }
+
+ &validate_items;
+
+ $closedto = $form->datetonum(\%myconfig, $form->{closedto});
+ $transdate = $form->datetonum(\%myconfig, $form->{transdate});
+
+ $form->error($locale->text('Cannot post invoice for a closed period!')) if ($transdate <= $closedto);
+
+ $form->isblank("exchangerate", $locale->text('Exchange rate missing!')) if ($form->{currency} ne $form->{defaultcurrency});
+
+ for $i (1 .. $form->{paidaccounts}) {
+ if ($form->{"paid_$i"}) {
+ $datepaid = $form->datetonum(\%myconfig, $form->{"datepaid_$i"});
+
+ $form->isblank("datepaid_$i", $locale->text('Payment date missing!'));
+
+ $form->error($locale->text('Cannot post payment for a closed period!')) if ($datepaid <= $closedto);
+
+ if ($form->{currency} ne $form->{defaultcurrency}) {
+ $form->{"exchangerate_$i"} = $form->{exchangerate} if ($transdate == $datepaid);
+ $form->isblank("exchangerate_$i", $locale->text('Exchange rate for payment missing!'));
+ }
+ }
+ }
+
+
+ $form->{label} = $locale->text('Invoice');
+
+ if (! $form->{repost}) {
+ if ($form->{id}) {
+ &repost;
+ exit;
+ }
+ }
+
+ ($form->{AR}) = split /--/, $form->{AR};
+ ($form->{AR_paid}) = split /--/, $form->{AR_paid};
+
+ if (IS->post_invoice(\%myconfig, \%$form)) {
+ $form->redirect($locale->text('Invoice')." $form->{invnumber} ".$locale->text('posted!'));
+ } else {
+ $form->error($locale->text('Cannot post invoice!'));
+ }
+
+}
+
+
+sub print_and_post {
+
+ $form->error($locale->text('Select postscript or PDF!')) if $form->{format} !~ /(postscript|pdf)/;
+ $form->error($locale->text('Select a Printer!')) if $form->{media} eq 'screen';
+
+ if (! $form->{repost}) {
+ if ($form->{id}) {
+ $form->{print_and_post} = 1;
+ &repost;
+ exit;
+ }
+ }
+
+ $old_form = new Form;
+ $form->{display_form} = "post";
+ for (keys %$form) { $old_form->{$_} = $form->{$_} }
+ $old_form->{rowcount}++;
+
+ &print_form($old_form);
+
+}
+
+
+sub delete {
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+|;
+
+ $form->{action} = "yes";
+ $form->hide_form;
+
+ print qq|
+<h2 class=confirm>|.$locale->text('Confirm!').qq|</h2>
+
+<h4>|.$locale->text('Are you sure you want to delete Invoice Number').qq| $form->{invnumber}
+</h4>
+
+<p>
+<input name=action class=submit type=submit value="|.$locale->text('Yes').qq|">
+</form>
+|;
+
+
+}
+
+
+
+sub yes {
+
+ if (IS->delete_invoice(\%myconfig, \%$form, $spool)) {
+ $form->redirect($locale->text('Invoice deleted!'));
+ } else {
+ $form->error($locale->text('Cannot delete invoice!'));
+ }
+
+}
+
+
diff --git a/bin/lynx/jc.pl b/bin/lynx/jc.pl
new file mode 100755
index 00000000..2312dabc
--- /dev/null
+++ b/bin/lynx/jc.pl
@@ -0,0 +1,1912 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2005
+#
+# Author: DWS Systems Inc.
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#======================================================================
+#
+# Job Costing module
+#
+#======================================================================
+
+use SL::JC;
+
+1;
+# end of main
+
+
+
+sub add {
+
+ if ($form->{type} eq 'timecard') {
+ $form->{title} = $locale->text('Add Time Card');
+ }
+ if ($form->{type} eq 'storescard') {
+ $form->{title} = $locale->text('Add Stores Card');
+ }
+
+ $form->{callback} = "$form->{script}?action=add&type=$form->{type}&login=$form->{login}&path=$form->{path}&sessionid=$form->{sessionid}&project=$form->{project}" unless $form->{callback};
+
+ &{ "prepare_$form->{type}" };
+
+ $form->{orphaned} = 1;
+ &display_form;
+
+}
+
+
+sub edit {
+
+ if ($form->{type} eq 'timecard') {
+ $form->{title} = $locale->text('Edit Time Card');
+ }
+ if ($form->{type} eq 'storescard') {
+ $form->{title} = $locale->text('Add Stores Card');
+ }
+
+ &{ "prepare_$form->{type}" };
+
+ &display_form;
+
+}
+
+
+sub jcitems_links {
+
+ if (@{ $form->{all_project} }) {
+ $form->{selectprojectnumber} = "<option>\n";
+ foreach $ref (@{ $form->{all_project} }) {
+ $form->{selectprojectnumber} .= qq|<option value="$ref->{projectnumber}--$ref->{id}">$ref->{projectnumber}\n|;
+ if ($form->{projectnumber} eq "$ref->{projectnumber}--$ref->{id}") {
+ $form->{projectdescription} = $ref->{description};
+ }
+ }
+ } else {
+ if ($form->{project} eq 'job') {
+ $form->error($locale->text('No open Jobs!'));
+ } else {
+ $form->error($locale->text('No open Projects!'));
+ }
+ }
+
+ if (@{ $form->{all_parts} }) {
+ $form->{selectpartnumber} = "<option>\n";
+ foreach $ref (@{ $form->{all_parts} }) {
+ $form->{selectpartnumber} .= qq|<option value="$ref->{partnumber}--$ref->{id}">$ref->{partnumber}\n|;
+ if ($form->{partnumber} eq "$ref->{partnumber}--$ref->{id}") {
+ if ($form->{partnumber} ne $form->{oldpartnumber}) {
+ for (qw(description unit sellprice pricematrix)) { $form->{$_} = $ref->{$_} }
+ }
+ }
+ }
+ } else {
+ if ($form->{type} eq 'timecard') {
+ if ($form->{project} eq 'job') {
+ $form->error($locale->text('No Labor codes on file!'));
+ } else {
+ $form->error($locale->text('No Services on file!'));
+ }
+ } else {
+ $form->error($locale->text('No Parts on file!'));
+ }
+ }
+
+ # employees
+ if (@{ $form->{all_employee} }) {
+ $form->{selectemployee} = "<option>\n";
+ for (@{ $form->{all_employee} }) { $form->{selectemployee} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+ } else {
+ $form->error($locale->text('No Employees on file!'));
+ }
+
+}
+
+
+sub search {
+
+ # accounting years
+ $form->all_years(\%myconfig);
+
+ if (@{ $form->{all_years} }) {
+ $form->{selectaccountingyear} = "<option>\n";
+ for (@{ $form->{all_years} }) { $form->{selectaccountingyear} .= qq|<option>$_\n| }
+
+ $form->{selectaccountingmonth} = "<option>\n";
+ for (sort keys %{ $form->{all_month} }) { $form->{selectaccountingmonth} .= qq|<option value=$_>|.$locale->text($form->{all_month}{$_}).qq|\n| }
+
+ $selectfrom = qq|
+ <tr>
+ <th align=right>|.$locale->text('Period').qq|</th>
+ <td colspan=3>
+ <select name=month>$form->{selectaccountingmonth}</select>
+ <select name=year>$form->{selectaccountingyear}</select>
+ <input name=interval class=radio type=radio value=0 checked>&nbsp;|.$locale->text('Current').qq|
+ <input name=interval class=radio type=radio value=1>&nbsp;|.$locale->text('Month').qq|
+ <input name=interval class=radio type=radio value=3>&nbsp;|.$locale->text('Quarter').qq|
+ <input name=interval class=radio type=radio value=12>&nbsp;|.$locale->text('Year').qq|
+ </td>
+ </tr>
+|;
+ }
+
+ $fromto = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Startdate').qq|</th>
+ <td>|.$locale->text('From').qq| <input name=startdatefrom size=11 title="$myconfig{dateformat}">
+ |.$locale->text('To').qq| <input name=startdateto size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+ $selectfrom
+|;
+
+
+ if ($form->{type} eq 'timecard') {
+ $form->{title} = $locale->text('Time Cards');
+ JC->jcitems_links(\%myconfig, \%$form);
+ }
+ if ($form->{type} eq 'storescard') {
+ $form->{title} = $locale->text('Stores Cards');
+ JC->jcitems_links(\%myconfig, \%$form);
+ }
+
+ if (@{ $form->{all_project} }) {
+ $form->{selectprojectnumber} = "<option>\n";
+ for (@{ $form->{all_project} }) { $form->{selectprojectnumber} .= qq|<option value="$_->{projectnumber}--$_->{id}">$_->{projectnumber}\n| }
+ }
+
+ if (@{ $form->{all_parts} }) {
+ $form->{selectpartnumber} = "<option>\n";
+ foreach $ref (@{ $form->{all_parts} }) {
+ $form->{selectpartnumber} .= qq|<option value="$ref->{partnumber}--$ref->{id}">$ref->{partnumber}\n|;
+ }
+ }
+
+ if ($form->{project} eq 'job') {
+ $joblabel = $locale->text('Job Number');
+ $laborlabel = $locale->text('Labor Code');
+ } elsif ($form->{project} eq 'project') {
+ $joblabel = $locale->text('Project Number');
+ $laborlabel = $locale->text('Service Code');
+ } else {
+ $joblabel = $locale->text('Project/Job Number');
+ $laborlabel = $locale->text('Service/Labor Code');
+ }
+
+ if ($form->{selectprojectnumber}) {
+ $jobnumber = qq|
+ <tr>
+ <th align=right nowrap>$joblabel</th>
+ <td colspan=3><select name=projectnumber>$form->{selectprojectnumber}</select></td>
+ </tr>
+|;
+ }
+
+
+ if ($form->{type} eq 'timecard') {
+ # employees
+ if (@{ $form->{all_employee} }) {
+ $form->{selectemployee} = "<option>\n";
+ for (@{ $form->{all_employee} }) { $form->{selectemployee} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+ } else {
+ $form->error($locale->text('No Employees on file!'));
+ }
+
+ if ($form->{selectpartnumber}) {
+ $partnumber = qq|
+ <tr>
+ <th align=right nowrap>$laborlabel</th>
+ <td colspan=3><select name=partnumber>$form->{selectpartnumber}</select></td>
+ </tr>
+|;
+ }
+
+ $employee = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Employee').qq|</th>
+ <td colspan=3><select name=employee>$form->{selectemployee}</select></td>
+ </tr>
+|;
+
+ $l_time = qq|<td nowrap><input name=l_time class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Time').qq|</td>|;
+
+ }
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr valign=top>
+ <td>
+ <table>
+ $jobnumber
+ $partnumber
+ $employee
+ $fromto
+
+ <tr>
+ <th align=right nowrap>|.$locale->text('Include in Report').qq|</th>
+ <td>
+ <table>
+ <tr>
+ <td nowrap><input name=open class=checkbox type=checkbox value=Y checked> |.$locale->text('Open').qq|</td>
+ <td nowrap><input name=closed class=checkbox type=checkbox value=Y> |.$locale->text('Closed').qq|</td>
+ </tr>
+ <tr>
+ $l_time
+ <td nowrap><input name=l_allocated class=checkbox type=checkbox value=Y> |.$locale->text('Allocated').qq|</td>
+ </tr>
+ <tr>
+ <td><input name=l_subtotal class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Subtotal').qq|</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<input type=hidden name=nextsub value="list_$form->{type}">
+<input type=hidden name=sort value="transdate">
+|;
+
+ $form->hide_form(qw(db path login sessionid project type));
+
+ print qq|
+<br>
+<input type=submit class=submit name=action value="|.$locale->text('Continue').qq|">
+</form>
+|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+</body>
+</html>
+|;
+
+}
+
+
+sub display_form {
+
+ &{ "$form->{type}_header" };
+ &{ "$form->{type}_footer" };
+
+}
+
+
+sub form_header {
+
+ &{ "$form->{type}_header" };
+
+}
+
+
+sub form_footer {
+
+ &{ "form->{type}_footer" };
+
+}
+
+
+sub prepare_timecard {
+
+ $form->{formname} = "timecard";
+ $form->{format} = "postscript" if $myconfig{printer};
+ $form->{media} = $myconfig{printer};
+
+ JC->get_jcitems(\%myconfig, \%$form);
+
+ $form->{selectformname} = qq|<option value="timecard">|.$locale->text('Time Card');
+
+ foreach $item (qw(in out)) {
+ ($form->{"${item}hour"}, $form->{"${item}min"}, $form->{"${item}sec"}) = split /:/, $form->{"checked$item"};
+ for (qw(hour min sec)) {
+ if (($form->{"$item$_"} *= 1) > 0) {
+ $form->{"$item$_"} = substr(qq|0$form->{"$item$_"}|,-2);
+ } else {
+ $form->{"$item$_"} ||= "";
+ }
+ }
+ }
+
+ $form->{checkedin} = $form->{inhour} * 3600 + $form->{inmin} * 60 + $form->{insec};
+ $form->{checkedout} = $form->{outhour} * 3600 + $form->{outmin} * 60 + $form->{outsec};
+
+ if ($form->{checkedin} > $form->{checkedout}) {
+ $form->{checkedout} = 86400 - ($form->{checkedin} - $form->{checkedout});
+ $form->{checkedin} = 0;
+ }
+
+ $form->{clocked} = ($form->{checkedout} - $form->{checkedin}) / 3600;
+ if ($form->{clocked}) {
+ $form->{oldnoncharge} = $form->{clocked} - $form->{qty};
+ }
+ $form->{oldqty} = $form->{qty};
+
+ $form->{noncharge} = $form->format_amount(\%myconfig, $form->{clocked} - $form->{qty}, 4) if $form->{checkedin} != $form->{checkedout};
+ $form->{clocked} = $form->format_amount(\%myconfig, $form->{clocked}, 4);
+
+ $form->{amount} = $form->{sellprice} * $form->{qty};
+ for (qw(sellprice amount)) { $form->{$_} = $form->format_amount(\%myconfig, $form->{$_}, 2) }
+ $form->{qty} = $form->format_amount(\%myconfig, $form->{qty}, 4);
+ $form->{allocated} = $form->format_amount(\%myconfig, $form->{allocated});
+
+ $form->{employee} .= "--$form->{employee_id}";
+ $form->{projectnumber} .= "--$form->{project_id}";
+ $form->{partnumber} .= "--$form->{parts_id}";
+ $form->{oldpartnumber} = $form->{partnumber};
+
+ if (@{ $form->{all_language} }) {
+ $form->{selectlanguage} = "<option>\n";
+ for (@{ $form->{all_language} }) { $form->{selectlanguage} .= qq|<option value="$_->{code}">$_->{description}\n| }
+ }
+
+ &jcitems_links;
+
+ $form->{locked} = ($form->{revtrans}) ? '1' : ($form->datetonum(\%myconfig, $form->{transdate}) <= $form->datetonum(\%myconfig, $form->{closedto}));
+
+ $form->{readonly} = 1 if $myconfig{acs} =~ /Production--Add Time Card/;
+
+ if ($form->{income_accno_id}) {
+ $form->{locked} = 1 if $form->{production} == $form->{completed};
+ }
+
+}
+
+
+sub timecard_header {
+
+ # set option selected
+ for (qw(employee projectnumber partnumber)) {
+ $form->{"select$_"} =~ s/ selected//;
+ $form->{"select$_"} =~ s/(<option value="\Q$form->{$_}\E")/$1 selected/;
+ }
+
+ $rows = $form->numtextrows($form->{description}, 50, 8);
+
+ for (qw(transdate checkedin checkedout partnumber)) { $form->{"old$_"} = $form->{$_} }
+ for (qw(partnumber description)) { $form->{$_} = $form->quote($form->{$_}) }
+
+ if ($rows > 1) {
+ $description = qq|<textarea name=description rows=$rows cols=46 wrap=soft>$form->{description}</textarea>|;
+ } else {
+ $description = qq|<input name=description size=48 value="$form->{description}">|;
+ }
+
+ if ($form->{project} eq 'job') {
+
+ $projectlabel = $locale->text('Job Number');
+ $laborlabel = $locale->text('Labor Code');
+ $rate = qq|<input type=hidden name=sellprice value=$form->{sellprice}>|;
+
+ } else {
+
+ if ($form->{project} eq 'project') {
+ $projectlabel = $locale->text('Project Number');
+ $laborlabel = $locale->text('Service Code');
+ } else {
+ $projectlabel = $locale->text('Project/Job Number');
+ $laborlabel = $locale->text('Service/Labor Code');
+ }
+
+ if ($myconfig{role} ne 'user') {
+ $rate = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Chargeout Rate').qq|</th>
+ <td><input name=sellprice value=$form->{sellprice}></td>
+ <th align=right nowrap>|.$locale->text('Total').qq|</th>
+ <td>$form->{amount}</td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Allocated').qq|</th>
+ <td><input name=allocated value=$form->{allocated}></td>
+ </tr>
+|;
+ } else {
+ $rate = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Chargeout Rate').qq|</th>
+ <td>$form->{sellprice}</td>
+ <th align=right nowrap>|.$locale->text('Total').qq|</th>
+ <td>$form->{amount}</td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Allocated').qq|</th>
+ <td>$form->{allocated}</td>
+ </tr>
+ <input type=hidden name=sellprice value=$form->{sellprice}>
+ <input type=hidden name=allocated value=$form->{allocated}>
+|;
+ }
+ }
+
+ if ($myconfig{role} eq 'user') {
+ $charge = qq|<input type=hidden name=qty value=$form->{qty}>$form->{qty}|;
+ } else {
+ $charge = qq|<input name=qty value=$form->{qty}>|;
+ }
+
+ if (($rows = $form->numtextrows($form->{notes}, 40, 6)) < 2) {
+ $rows = 2;
+ }
+
+ $notes = qq|<tr>
+ <th align=right>|.$locale->text('Notes').qq|</th>
+ <td colspan=3><textarea name="notes" rows=$rows cols=46 wrap=soft>$form->{notes}</textarea>
+ </td>
+ </tr>
+|;
+
+##################
+ ($null, $form->{oldproject_id}) = split /--/, $form->{projectnumber};
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action="$form->{script}">
+|;
+
+ $form->hide_form(qw(id type media format printed queued title closedto locked oldtransdate oldcheckedin oldcheckedout oldpartnumber project oldqty oldnoncharge pricematrix oldproject_id));
+
+ print qq|
+<table width=100%>
+ <tr class=listtop>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Employee').qq|</th>
+ <td><select name=employee>$form->{selectemployee}</select></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>$projectlabel</th>
+ <td><select name=projectnumber>$form->{selectprojectnumber}</select>
+ </td>
+ <td></td>
+ <td>$form->{projectdescription}</td>
+ <input type=hidden name=projectdescription value="|.$form->quote($form->{projectdescription}).qq|">
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Date worked').qq|</th>
+ <td><input name=transdate size=11 title="$myconfig{dateformat}" value=$form->{transdate}></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>$laborlabel</th>
+ <td><select name=partnumber>$form->{selectpartnumber}</select></td>
+ </tr>
+ <tr valign=top>
+ <th align=right nowrap>|.$locale->text('Description').qq|</th>
+ <td colspan=3>$description</td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Time In').qq|</th>
+ <td>
+ <table>
+ <tr>
+ <td><input name=inhour title="hh" size=3 maxlength=2 value=$form->{inhour}></td>
+ <td><input name=inmin title="mm" size=3 maxlength=2 value=$form->{inmin}></td>
+ <td><input name=insec title="ss" size=3 maxlength=2 value=$form->{insec}></td>
+ </tr>
+ </table>
+ </td>
+ <th align=right nowrap>|.$locale->text('Time Out').qq|</th>
+ <td>
+ <table>
+ <tr>
+ <td><input name=outhour title="hh" size=3 maxlength=2 value=$form->{outhour}></td>
+ <td><input name=outmin title="mm" size=3 maxlength=2 value=$form->{outmin}></td>
+ <td><input name=outsec title="ss" size=3 maxlength=2 value=$form->{outsec}></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Clocked').qq|</th>
+ <td>$form->{clocked}</td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Non-chargeable').qq|</th>
+ <td><input name=noncharge value=$form->{noncharge}></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Chargeable').qq|</th>
+ <td>$charge</td>
+ </tr>
+ $rate
+ $notes
+ </table>
+ </td>
+ </tr>
+
+|;
+
+}
+
+
+sub timecard_footer {
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+ <tr>
+ <td>
+|;
+
+ &print_options;
+
+ print qq|
+ </td>
+ </tr>
+</table>
+<br>
+|;
+
+ $transdate = $form->datetonum(\%myconfig, $form->{transdate});
+ $closedto = $form->datetonum(\%myconfig, $form->{closedto});
+
+ if (! $form->{readonly}) {
+
+# type=submit $locale->text('Update')
+# type=submit $locale->text('Print')
+# type=submit $locale->text('Save')
+# type=submit $locale->text('Print and Save')
+# type=submit $locale->text('Save as new')
+# type=submit $locale->text('Print and Save as new')
+# type=submit $locale->text('Delete')
+
+ %button = ('Update' => { ndx => 1, key => 'U', value => $locale->text('Update') },
+ 'Print' => { ndx => 2, key => 'P', value => $locale->text('Print') },
+ 'Save' => { ndx => 3, key => 'S', value => $locale->text('Save') },
+ 'Print and Save' => { ndx => 6, key => 'R', value => $locale->text('Print and Save') },
+ 'Save as new' => { ndx => 7, key => 'N', value => $locale->text('Save as new') },
+ 'Print and Save as new' => { ndx => 8, key => 'W', value => $locale->text('Print and Save as new') },
+
+ 'Delete' => { ndx => 16, key => 'D', value => $locale->text('Delete') },
+ );
+
+ %a = ();
+
+ if ($form->{id}) {
+
+ if (!$form->{locked}) {
+ for ('Update', 'Print', 'Save', 'Save as new') { $a{$_} = 1 }
+
+ if ($latex) {
+ for ('Print and Save', 'Print and Save as new') { $a{$_} = 1 }
+ }
+
+ if ($form->{orphaned}) {
+ $a{'Delete'} = 1;
+ }
+
+ }
+
+ } else {
+
+ if ($transdate > $closedto) {
+
+ for ('Update', 'Print', 'Save') { $a{$_} = 1 }
+
+ if ($latex) {
+ $a{'Print and Save'} = 1;
+ }
+
+ }
+ }
+ }
+
+ for (keys %button) { delete $button{$_} if ! $a{$_} }
+ for (sort { $button{$a}->{ndx} <=> $button{$b}->{ndx} } keys %button) { $form->print_button(\%button, $_) }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ $form->hide_form(qw(callback path login sessionid));
+
+ print qq|
+
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub prepare_storescard {
+
+ $form->{formname} = "storescard";
+ $form->{format} = "postscript" if $myconfig{printer};
+ $form->{media} = $myconfig{printer};
+
+ JC->get_jcitems(\%myconfig, \%$form);
+
+ $form->{selectformname} = qq|<option value="storescard">|.$locale->text('Stores Card');
+
+ $form->{amount} = $form->{sellprice} * $form->{qty};
+ for (qw(sellprice amount)) { $form->{$_} = $form->format_amount(\%myconfig, $form->{$_}, 2) }
+ $form->{qty} = $form->format_amount(\%myconfig, $form->{qty}, 4);
+
+ $form->{employee} .= "--$form->{employee_id}";
+ $form->{projectnumber} .= "--$form->{project_id}";
+ $form->{partnumber} .= "--$form->{parts_id}";
+ $form->{oldpartnumber} = $form->{partnumber};
+
+ if (@{ $form->{all_language} }) {
+ $form->{selectlanguage} = "<option>\n";
+ for (@{ $form->{all_language} }) { $form->{selectlanguage} .= qq|<option value="$_->{code}">$_->{description}\n| }
+ }
+
+ &jcitems_links;
+
+ $form->{locked} = ($form->{revtrans}) ? '1' : ($form->datetonum(\%myconfig, $form->{transdate}) <= $form->datetonum(\%myconfig, $form->{closedto}));
+
+ $form->{readonly} = 1 if $myconfig{acs} =~ /Production--Add Time Card/;
+
+ if ($form->{income_accno_id}) {
+ $form->{locked} = 1 if $form->{production} == $form->{completed};
+ }
+
+}
+
+
+sub storescard_header {
+
+ # set option selected
+ for (qw(employee projectnumber partnumber)) {
+ $form->{"select$_"} =~ s/ selected//;
+ $form->{"select$_"} =~ s/(<option value="\Q$form->{$_}\E")/$1 selected/;
+ }
+
+ $rows = $form->numtextrows($form->{description}, 50, 8);
+
+ for (qw(transdate partnumber)) { $form->{"old$_"} = $form->{$_} }
+ for (qw(partnumber description)) { $form->{$_} = $form->quote($form->{$_}) }
+
+ if ($rows > 1) {
+ $description = qq|<textarea name=description rows=$rows cols=46 wrap=soft>$form->{description}</textarea>|;
+ } else {
+ $description = qq|<input name=description size=48 value="$form->{description}">|;
+ }
+
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action="$form->{script}">
+|;
+
+ $form->hide_form(qw(id type media format printed queued title closedto locked oldtransdate oldpartnumber project));
+
+ print qq|
+<table width=100%>
+ <tr class=listtop>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Job Number').qq|</th>
+ <td><select name=projectnumber>$form->{selectprojectnumber}</select>
+ </td>
+ <td>$form->{projectdescription}</td>
+ <input type=hidden name=projectdescription value="|.$form->quote($form->{projectdescription}).qq|">
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Date').qq|</th>
+ <td><input name=transdate size=11 title="$myconfig{dateformat}" value=$form->{transdate}></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Part Number').qq|</th>
+ <td><select name=partnumber>$form->{selectpartnumber}</td>
+ </tr>
+ <tr valign=top>
+ <th align=right nowrap>|.$locale->text('Description').qq|</th>
+ <td>$description</td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Qty').qq|</th>
+ <td><input name=qty size=6 value=$form->{qty}>
+ <b>|.$locale->text('Cost').qq|</b>
+ <input name=sellprice size=10 value=$form->{sellprice}></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Total').qq|</th>
+ <td>$form->{amount}</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+|;
+
+}
+
+
+sub storescard_footer {
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+ <tr>
+ <td>
+|;
+
+ &print_options;
+
+ print qq|
+ </td>
+ </tr>
+</table>
+<br>
+|;
+
+ $transdate = $form->datetonum(\%myconfig, $form->{transdate});
+ $closedto = $form->datetonum(\%myconfig, $form->{closedto});
+
+# type=submit $locale->text('Update')
+# type=submit $locale->text('Print')
+# type=submit $locale->text('Save')
+# type=submit $locale->text('Print and Save')
+# type=submit $locale->text('Save as new')
+# type=submit $locale->text('Print and Save as new')
+# type=submit $locale->text('Delete')
+
+
+ if (! $form->{readonly}) {
+
+ %button = ('Update' => { ndx => 1, key => 'U', value => $locale->text('Update') },
+ 'Print' => { ndx => 2, key => 'P', value => $locale->text('Print') },
+ 'Save' => { ndx => 3, key => 'S', value => $locale->text('Save') },
+ 'Print and Save' => { ndx => 6, key => 'R', value => $locale->text('Print and Save') },
+ 'Save as new' => { ndx => 7, key => 'N', value => $locale->text('Save as new') },
+ 'Print and Save as new' => { ndx => 8, key => 'W', value => $locale->text('Print and Save as new') },
+ 'Delete' => { ndx => 16, key => 'D', value => $locale->text('Delete') },
+ );
+
+ %a = ();
+
+ if ($form->{id}) {
+
+ if (!$form->{locked}) {
+ for ('Update', 'Print', 'Save', 'Save as new') { $a{$_} = 1 }
+ if ($latex) {
+ for ('Print and Save', 'Print and Save as new') { $a{$_} = 1 }
+ }
+ if ($form->{orphaned}) {
+ $a{'Delete'} = 1;
+ }
+ }
+
+ } else {
+
+ if ($transdate > $closedto) {
+ for ('Update', 'Print', 'Save') { $a{$_} = 1 }
+
+ if ($latex) {
+ $a{'Print and Save'} = 1;
+ }
+ }
+ }
+
+ for (keys %button) { delete $button{$_} if ! $a{$_} }
+ for (sort { $button{$a}->{ndx} <=> $button{$b}->{ndx} } keys %button) { $form->print_button(\%button, $_) }
+
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ $form->hide_form(qw(callback path login sessionid));
+
+ print qq|
+
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+
+sub update {
+
+ ($null, $form->{project_id}) = split /--/, $form->{projectnumber};
+
+ # check labor/part
+ JC->jcitems_links(\%myconfig, \%$form);
+
+ &jcitems_links;
+
+ $checkmatrix = 1 if $form->{oldproject_id} != $form->{project_id};
+
+ if ($form->{type} eq 'timecard') {
+
+ # time clocked
+ %hour = ( in => 0, out => 0 );
+ for $t (qw(in out)) {
+ if ($form->{"${t}sec"} > 60) {
+ $form->{"${t}sec"} -= 60;
+ $form->{"${t}min"}++;
+ }
+ if ($form->{"${t}min"} > 60) {
+ $form->{"${t}min"} -= 60;
+ $form->{"${t}hour"}++;
+ }
+ $hour{$t} = $form->{"${t}hour"};
+ }
+
+ $form->{checkedin} = $hour{in} * 3600 + $form->{inmin} * 60 + $form->{insec};
+ $form->{checkedout} = $hour{out} * 3600 + $form->{outmin} * 60 + $form->{outsec};
+
+ if ($form->{checkedin} > $form->{checkedout}) {
+ $form->{checkedout} = 86400 - ($form->{checkedin} - $form->{checkedout});
+ $form->{checkedin} = 0;
+ }
+
+ $form->{clocked} = ($form->{checkedout} - $form->{checkedin}) / 3600;
+
+ for (qw(sellprice qty noncharge allocated)) { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) }
+
+ $checkmatrix = 1 if $form->{oldqty} != $form->{qty};
+
+ if (($form->{oldcheckedin} != $form->{checkedin}) || ($form->{oldcheckedout} != $form->{checkedout})) {
+ $checkmatrix = 1;
+ $form->{oldqty} = $form->{qty} = $form->{clocked} - $form->{noncharge};
+ $form->{oldnoncharge} = $form->{noncharge};
+ }
+
+ if (($form->{qty} != $form->{oldqty}) && $form->{clocked}) {
+ $form->{oldnoncharge} = $form->{noncharge} = $form->{clocked} - $form->{qty};
+ $checkmatrix = 1;
+ }
+
+ if (($form->{oldnoncharge} != $form->{noncharge}) && $form->{clocked}) {
+ $form->{oldqty} = $form->{qty} = $form->{clocked} - $form->{noncharge};
+ $checkmatrix = 1;
+ }
+
+ if ($checkmatrix) {
+ @a = split / /, $form->{pricematrix};
+ if (scalar @a > 2) {
+ for (@a) {
+ ($q, $p) = split /:/, $_;
+ if (($p * 1) && ($form->{qty} >= ($q * 1))) {
+ $form->{sellprice} = $p;
+ }
+ }
+ }
+ }
+
+ $form->{amount} = $form->{sellprice} * $form->{qty};
+
+ $form->{clocked} = $form->format_amount(\%myconfig, $form->{clocked}, 4);
+ for (qw(sellprice amount)) { $form->{$_} = $form->format_amount(\%myconfig, $form->{$_}, 2) }
+ for (qw(qty noncharge)) {
+ $form->{"old$_"} = $form->{$_};
+ $form->{$_} = $form->format_amount(\%myconfig, $form->{$_}, 4);
+ }
+
+ } else {
+
+ for (qw(sellprice qty allocated)) { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) }
+
+ if ($form->{oldqty} != $form->{qty}) {
+ @a = split / /, $form->{pricematrix};
+ if (scalar @a > 2) {
+ for (@a) {
+ ($q, $p) = split /:/, $_;
+ if (($p * 1) && ($form->{qty} >= ($q * 1))) {
+ $form->{sellprice} = $p;
+ }
+ }
+ }
+ }
+
+ $form->{amount} = $form->{sellprice} * $form->{qty};
+ for (qw(sellprice amount)) { $form->{$_} = $form->format_amount(\%myconfig, $form->{$_}, 2) }
+
+ }
+
+ $form->{allocated} = $form->format_amount(\%myconfig, $form->{allocated});
+
+ &display_form;
+
+}
+
+
+sub save {
+
+ $form->isblank("transdate", $locale->text('Date missing!'));
+
+ if ($form->{project} eq 'project') {
+ $form->isblank("projectnumber", $locale->text('Project Number missing!'));
+ $form->isblank("partnumber", $locale->text('Service Code missing!'));
+ } else {
+ $form->isblank("projectnumber", $locale->text('Job Number missing!'));
+ $form->isblank("partnumber", $locale->text('Labor Code missing!'));
+ }
+
+ $closedto = $form->datetonum(\%myconfig, $form->{closedto});
+ $transdate = $form->datetonum(\%myconfig, $form->{transdate});
+
+ $msg = ($form->{type} eq 'timecard') ? $locale->text('Cannot save time card for a closed period!') : $locale->text('Cannot save stores card for a closed period!');
+ $form->error($msg) if ($transdate <= $closedto);
+
+ if (! $form->{resave}) {
+ if ($form->{id}) {
+ &resave;
+ exit;
+ }
+ }
+
+
+ $rc = JC->save(\%myconfig, \%$form);
+
+ if ($form->{type} eq 'timecard') {
+ $form->error($locale->text('Cannot change time card for a completed job!')) if ($rc == -1);
+ $form->error($locale->text('Cannot add time card for a completed job!')) if ($rc == -2);
+
+ if ($rc) {
+ $form->redirect($locale->text('Time Card saved!'));
+ } else {
+ $form->error($locale->text('Cannot save time card!'));
+ }
+
+ } else {
+ $form->error($locale->text('Cannot change stores card for a completed job!')) if ($rc == -1);
+ $form->error($locale->text('Cannot add stores card for a completed job!')) if ($rc == -2);
+
+ if ($rc) {
+ $form->redirect($locale->text('Stores Card saved!'));
+ } else {
+ $form->error($locale->text('Cannot save stores card!'));
+ }
+ }
+
+}
+
+
+sub save_as_new {
+
+ delete $form->{id};
+ &save;
+
+}
+
+
+sub print_and_save_as_new {
+
+ delete $form->{id};
+ &print_and_save;
+
+}
+
+
+sub resave {
+
+ if ($form->{print_and_save}) {
+ $form->{nextsub} = "print_and_save";
+ $msg = $locale->text('You are printing and saving an existing transaction!');
+ } else {
+ $form->{nextsub} = "save";
+ $msg = $locale->text('You are saving an existing transaction!');
+ }
+
+ $form->{resave} = 1;
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+|;
+
+ delete $form->{action};
+
+ $form->hide_form;
+
+ print qq|
+<h2 class=confirm>|.$locale->text('Warning!').qq|</h2>
+
+<h4>$msg</h4>
+
+<input name=action class=submit type=submit value="|.$locale->text('Continue').qq|">
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub print_and_save {
+
+ $form->error($locale->text('Select postscript or PDF!')) if $form->{format} !~ /(postscript|pdf)/;
+ $form->error($locale->text('Select a Printer!')) if $form->{media} eq 'screen';
+
+ if (! $form->{resave}) {
+ if ($form->{id}) {
+ $form->{print_and_save} = 1;
+ &resave;
+ exit;
+ }
+ }
+
+ $old_form = new Form;
+ $form->{display_form} = "save";
+ for (keys %$form) { $old_form->{$_} = $form->{$_} }
+
+ &{ "print_$form->{formname}" }($old_form);
+
+}
+
+
+sub delete_timecard {
+
+ $form->header;
+
+ $employee = $form->{employee};
+ $employee =~ s/--.*//g;
+ $projectnumber = $form->{projectnumber};
+ $projectnumber =~ s/--.*//g;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+|;
+
+ delete $form->{action};
+
+ $form->hide_form;
+
+ print qq|
+<h2 class=confirm>|.$locale->text('Confirm!').qq|</h2>
+
+<h4>|.$locale->text('Are you sure you want to delete time card for').qq|
+<p>$form->{transdate}
+<br>$employee
+<br>$projectnumber
+</h4>
+
+<p>
+<input name=action class=submit type=submit value="|.$locale->text('Yes').qq|">
+</form>
+|;
+
+}
+
+
+sub delete { &{ "delete_$form->{type}" } };
+sub yes { &{ "yes_delete_$form->{type}" } };
+
+
+sub yes_delete_timecard {
+
+ if (JC->delete_timecard(\%myconfig, \%$form)) {
+ $form->redirect($locale->text('Time Card deleted!'));
+ } else {
+ $form->error($locale->text('Cannot delete time card!'));
+ }
+
+}
+
+
+sub list_timecard {
+
+ $form->{type} = "timecard";
+
+ JC->jcitems(\%myconfig, \%$form);
+
+ $form->{title} = $locale->text('Time Cards');
+
+ @a = qw(type direction oldsort path login sessionid project l_subtotal open closed l_time l_allocated);
+ $href = "$form->{script}?action=list_timecard";
+ for (@a) { $href .= "&$_=$form->{$_}" }
+
+ $href .= "&title=".$form->escape($form->{title});
+
+ $form->sort_order();
+
+ $callback = "$form->{script}?action=list_timecard";
+ for (@a) { $callback .= "&$_=$form->{$_}" }
+
+ $callback .= "&title=".$form->escape($form->{title},1);
+
+ @column_index = (qw(transdate projectnumber projectdescription id partnumber description));
+
+ push @column_index, (qw(allocated)) if $form->{l_allocated};
+ push @column_index, (qw(1 2 3 4 5 6 7));
+
+ @column_index = $form->sort_columns(@column_index);
+
+ if ($form->{project} eq 'job') {
+ $joblabel = $locale->text('Job Number');
+ $laborlabel = $locale->text('Labor Code');
+ $desclabel = $locale->text('Job Name');
+ } elsif ($form->{project} eq 'project') {
+ $joblabel = $locale->text('Project Number');
+ $laborlabel = $locale->text('Service Code');
+ $desclabel = $locale->text('Project Name');
+ } else {
+ $joblabel = $locale->text('Project/Job Number');
+ $laborlabel = $locale->text('Service/Labor Code');
+ $desclabel = $locale->text('Project/Job Name');
+ }
+
+ if ($form->{projectnumber}) {
+ $callback .= "&projectnumber=".$form->escape($form->{projectnumber},1);
+ $href .= "&projectnumber=".$form->escape($form->{projectnumber});
+ ($var) = split /--/, $form->{projectnumber};
+ $option .= "\n<br>" if ($option);
+ $option .= "$joblabel : $var";
+ @column_index = grep !/projectnumber/, @column_index;
+ }
+ if ($form->{partnumber}) {
+ $callback .= "&partnumber=".$form->escape($form->{partnumber},1);
+ $href .= "&partnumber=".$form->escape($form->{partnumber});
+ ($var) = split /--/, $form->{partnumber};
+ $option .= "\n<br>" if ($option);
+ $option .= "$laborlabel : $var";
+ @column_index = grep !/partnumber/, @column_index;
+ }
+ if ($form->{employee}) {
+ $callback .= "&employee=".$form->escape($form->{employee},1);
+ $href .= "&employee=".$form->escape($form->{employee});
+ }
+
+ if ($form->{startdatefrom}) {
+ $callback .= "&startdatefrom=$form->{startdatefrom}";
+ $href .= "&startdatefrom=$form->{startdatefrom}";
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('From')."&nbsp;".$locale->date(\%myconfig, $form->{startdatefrom}, 1);
+ }
+ if ($form->{startdateto}) {
+ $callback .= "&startdateto=$form->{startdateto}";
+ $href .= "&startdateto=$form->{startdateto}";
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('To')."&nbsp;".$locale->date(\%myconfig, $form->{startdateto}, 1);
+ }
+ if ($form->{open}) {
+ $callback .= "&open=$form->{open}";
+ $href .= "&open=$form->{open}";
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Open');
+ }
+ if ($form->{closed}) {
+ $callback .= "&closed=$form->{closed}";
+ $href .= "&closed=$form->{closed}";
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Closed');
+ }
+
+ %weekday = ( 1 => $locale->text('Sunday'),
+ 2 => $locale->text('Monday'),
+ 3 => $locale->text('Tuesday'),
+ 4 => $locale->text('Wednesday'),
+ 5 => $locale->text('Thursday'),
+ 6 => $locale->text('Friday'),
+ 7 => $locale->text('Saturday'),
+ );
+
+ for (keys %weekday) { $column_header{$_} = "<th class=listheading width=25>".substr($weekday{$_},0,3)."</th>" }
+
+ $column_header{id} = "<th><a class=listheading href=$href&sort=id>".$locale->text('ID')."</a></th>";
+ $column_header{transdate} = "<th><a class=listheading href=$href&sort=transdate>".$locale->text('Date')."</a></th>";
+ $column_header{description} = "<th><a class=listheading href=$href&sort=description>" . $locale->text('Description') . "</th>";
+ $column_header{projectnumber} = "<th><a class=listheading href=$href&sort=projectnumber>$joblabel</a></th>";
+ $column_header{partnumber} = "<th><a class=listheading href=$href&sort=partnumber>$laborlabel</a></th>";
+ $column_header{projectdescription} = "<th><a class=listheading href=$href&sort=projectdescription>$desclabel</a></th>";
+ $column_header{allocated} = "<th class=listheading></th>";
+
+
+ $form->header;
+
+ if (@{ $form->{transactions} }) {
+ $sameitem = $form->{transactions}->[0]->{$form->{sort}};
+ $sameemployeenumber = $form->{transactions}->[0]->{employeenumber};
+ $employee = $form->{transactions}->[0]->{employee};
+ $sameweek = $form->{transactions}->[0]->{workweek};
+ }
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$option</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+ <th colspan=2 align=left>
+ $employee
+ </th>
+ <th align=left>
+ $sameemployeenumber
+ </th>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "\n$column_header{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ # add sort and escape callback, this one we use for the add sub
+ $form->{callback} = $callback .= "&sort=$form->{sort}";
+
+ # escape callback for href
+ $callback = $form->escape($callback);
+
+ # flip direction
+ $direction = ($form->{direction} eq 'ASC') ? "ASC" : "DESC";
+ $href =~ s/&direction=(\w+)&/&direction=$direction&/;
+
+ %total = ();
+
+ foreach $ref (@{ $form->{transactions} }) {
+
+ if ($sameemployeenumber ne $ref->{employeenumber}) {
+ $sameemployeenumber = $ref->{employeenumber};
+ $sameweek = $ref->{workweek};
+
+ if ($form->{l_subtotal}) {
+ print qq|
+ <tr class=listsubtotal>
+|;
+
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $weektotal = 0;
+ for (keys %weekday) {
+ $column_data{$_} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotal{$_}, "", "&nbsp;")."</th>";
+ $weektotal += $subtotal{$_};
+ $subtotal{$_} = 0;
+ }
+
+ $column_data{$form->{sort}} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $weektotal, "", "&nbsp;")."</th>";
+
+ for (@column_index) { print "\n$column_data{$_}" }
+ }
+
+ # print total
+ print qq|
+ <tr class=listtotal>
+|;
+
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $total = 0;
+ for (keys %weekday) {
+ $column_data{$_} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $total{$_}, "", "&nbsp;")."</th>";
+ $total += $total{$_};
+ $total{$_} = 0;
+ }
+
+ $column_data{$form->{sort}} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $total, "", "&nbsp;")."</th>";
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+
+ print qq|
+ <tr height=30 valign=bottom>
+ <th colspan=2 align=left>
+ $ref->{employee}
+ </th>
+ <th align=left>
+ $ref->{employeenumber}
+ </th>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "\n$column_header{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ }
+
+ if ($form->{l_subtotal}) {
+ if ($ref->{workweek} != $sameweek) {
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+ $weektotal = 0;
+ for (keys %weekday) {
+ $column_data{$_} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotal{$_}, "", "&nbsp;")."</th>";
+ $weektotal += $subtotal{$_};
+ $subtotal{$_} = 0
+ }
+ $column_data{$form->{sort}} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $weektotal, "", "&nbsp;")."</th>";
+ $sameweek = $ref->{workweek};
+
+ print qq|
+ <tr class=listsubtotal>
+|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+ }
+ }
+
+ for (@column_index) { $column_data{$_} = "<td>$ref->{$_}&nbsp;</td>" }
+ for (keys %weekday) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $column_data{allocated} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{allocated}, "", "&nbsp;")."</td>";
+ $column_data{$ref->{weekday}} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{qty}, "", "&nbsp;");
+
+ if ($form->{l_time}) {
+ $column_data{$ref->{weekday}} .= "<br>$ref->{checkedin}<br>$ref->{checkedout}";
+ }
+ $column_data{$ref->{weekday}} .= "</td>";
+
+ $column_data{id} = "<td><a href=$form->{script}?action=edit&id=$ref->{id}&type=$form->{type}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&project=$form->{project}&callback=$callback>$ref->{id}</a></td>";
+
+ $subtotal{$ref->{weekday}} += $ref->{qty};
+ $total{$ref->{weekday}} += $ref->{qty};
+
+ $j++; $j %= 2;
+ print qq|
+ <tr class=listrow$j>
+|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+ }
+
+ # print last subtotal
+ if ($form->{l_subtotal}) {
+ print qq|
+ <tr class=listsubtotal>
+|;
+
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $weektotal = 0;
+ for (keys %weekday) {
+ $column_data{$_} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotal{$_}, "", "&nbsp;")."</th>";
+ $weektotal += $subtotal{$_};
+ }
+
+ $column_data{$form->{sort}} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $weektotal, "", "&nbsp;")."</th>";
+
+ for (@column_index) { print "\n$column_data{$_}" }
+ }
+
+ # print last total
+ print qq|
+ <tr class=listtotal>
+|;
+
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $total = 0;
+ for (keys %weekday) {
+ $column_data{$_} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $total{$_}, "", "&nbsp;")."</th>";
+ $total += $total{$_};
+ $total{$_} = 0;
+ }
+
+ $column_data{$form->{sort}} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $total, "", "&nbsp;")."</th>";
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ if ($form->{project} eq 'job') {
+ if ($myconfig{acs} !~ /Production--Production/) {
+ $i = 1;
+ $button{'Production--Add Time Card'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Add Time Card').qq|"> |;
+ $button{'Production--Add Time Card'}{order} = $i++;
+ }
+ } elsif ($form->{project} eq 'project') {
+ if ($myconfig{acs} !~ /Projects--Projects/) {
+ $i = 1;
+ $button{'Projects--Add Time Card'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Add Time Card').qq|"> |;
+ $button{'Projects--Add Time Card'}{order} = $i++;
+ }
+ } else {
+ if ($myconfig{acs} !~ /Time Cards--Time Cards/) {
+ $i = 1;
+ $button{'Time Cards--Add Time Card'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Add Time Card').qq|"> |;
+ $button{'Time Cards--Add Time Card'}{order} = $i++;
+ }
+ }
+
+ for (split /;/, $myconfig{acs}) { delete $button{$_} }
+
+ print qq|
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+<form method=post action=$form->{script}>
+|;
+
+ $form->hide_form(qw(callback path login sessionid project));
+
+ foreach $item (sort { $a->{order} <=> $b->{order} } %button) {
+ print $item->{code};
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub list_storescard {
+
+ $form->{type} = "storescard";
+
+ JC->jcitems(\%myconfig, \%$form);
+
+ $form->{title} = $locale->text('Stores Cards');
+
+ $href = "$form->{script}?action=list_storescard";
+ for (qw(type direction oldsort path login sessionid project)) { $href .= "&$_=$form->{$_}" }
+
+ $href .= "&title=".$form->escape($form->{title});
+
+ $form->sort_order();
+
+ $callback = "$form->{script}?action=list_storescard";
+ for (qw(type direction oldsort path login sessionid project)) { $callback .= "&$_=$form->{$_}" }
+
+ $callback .= "&title=".$form->escape($form->{title},1);
+
+ @column_index = $form->sort_columns(qw(transdate projectnumber projectdescription id partnumber description qty amount));
+
+
+ if ($form->{projectnumber}) {
+ $callback .= "&projectnumber=".$form->escape($form->{projectnumber},1);
+ $href .= "&projectnumber=".$form->escape($form->{projectnumber});
+ ($var) = split /--/, $form->{projectnumber};
+ $option .= "\n<br>" if ($option);
+ $option .= "$joblabel : $var";
+ @column_index = grep !/projectnumber/, @column_index;
+ }
+ if ($form->{partnumber}) {
+ $callback .= "&partnumber=".$form->escape($form->{partnumber},1);
+ $href .= "&partnumber=".$form->escape($form->{partnumber});
+ ($var) = split /--/, $form->{partnumber};
+ $option .= "\n<br>" if ($option);
+ $option .= "$laborlabel : $var";
+ @column_index = grep !/partnumber/, @column_index;
+ }
+ if ($form->{startdatefrom}) {
+ $callback .= "&startdatefrom=$form->{startdatefrom}";
+ $href .= "&startdatefrom=$form->{startdatefrom}";
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('From')."&nbsp;".$locale->date(\%myconfig, $form->{startdatefrom}, 1);
+ }
+ if ($form->{startdateto}) {
+ $callback .= "&startdateto=$form->{startdateto}";
+ $href .= "&startdateto=$form->{startdateto}";
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('To')."&nbsp;".$locale->date(\%myconfig, $form->{startdateto}, 1);
+ }
+
+ $column_header{id} = "<th><a class=listheading href=$href&sort=id>" . $locale->text('ID') . "</a></th>";
+ $column_header{transdate} = "<th><a class=listheading href=$href&sort=transdate>".$locale->text('Date')."</a></th>";
+ $column_header{projectnumber} = "<th><a class=listheading href=$href&sort=projectnumber>" . $locale->text('Job Number') . "</a></th>";
+ $column_header{projectdescription} = "<th><a class=listheading href=$href&sort=projectdescription>" . $locale->text('Job Description') . "</a></th>";
+ $column_header{partnumber} = "<th><a class=listheading href=$href&sort=partnumber>" . $locale->text('Part Number') . "</a></th>";
+ $column_header{description} = "<th><a class=listheading href=$href&sort=description>" . $locale->text('Description') . "</a></th>";
+ $column_header{qty} = "<th class=listheading>" . $locale->text('Qty') . "</th>";
+ $column_header{amount} = "<th class=listheading>" . $locale->text('Amount') . "</th>";
+
+
+ $form->header;
+
+ if (@{ $form->{transactions} }) {
+ $sameitem = $form->{transactions}->[0]->{$form->{sort}};
+ }
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$option</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "\n$column_header{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ # add sort and escape callback, this one we use for the add sub
+ $form->{callback} = $callback .= "&sort=$form->{sort}";
+
+ # escape callback for href
+ $callback = $form->escape($callback);
+
+ # flip direction
+ $direction = ($form->{direction} eq 'ASC') ? "ASC" : "DESC";
+ $href =~ s/&direction=(\w+)&/&direction=$direction&/;
+
+ $total = 0;
+ foreach $ref (@{ $form->{transactions} }) {
+
+ for (@column_index) { $column_data{$_} = "<td>$ref->{$_}&nbsp;</td>" }
+ $column_data{qty} = qq|<td align=right>|.$form->format_amount(\%myconfig, $ref->{qty}, "", "&nbsp;")."</td>";
+ $column_data{amount} = qq|<td align=right>|.$form->format_amount(\%myconfig, $ref->{qty} * $ref->{sellprice}, 2)."</td>";
+
+ $column_data{id} = "<td><a href=$form->{script}?action=edit&id=$ref->{id}&type=$form->{type}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&project=$form->{project}&callback=$callback>$ref->{id}</a></td>";
+
+ $total += ($ref->{qty} * $ref->{sellprice});
+
+ $j++; $j %= 2;
+ print qq|
+ <tr class=listrow$j>
+|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+ }
+
+ # print total
+ print qq|
+ <tr class=listtotal>
+|;
+
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+ $column_data{amount} = qq|<th align=right>|.$form->format_amount(\%myconfig, $total, 2)."</th";
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ if ($form->{project} eq 'job') {
+ if ($myconfig{acs} !~ /Production--Production/) {
+ $i = 1;
+ $button{'Production--Add Stores Card'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Add Stores Card').qq|"> |;
+ $button{'Production--Add Stores Card'}{order} = $i++;
+ }
+ }
+
+ for (split /;/, $myconfig{acs}) { delete $button{$_} }
+
+ print qq|
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+<form method=post action=$form->{script}>
+|;
+
+ $form->hide_form(qw(callback path login sessionid project));
+
+ foreach $item (sort { $a->{order} <=> $b->{order} } %button) {
+ print $item->{code};
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+
+sub continue { &{ $form->{nextsub} } };
+
+sub add_time_card {
+
+ $form->{type} = "timecard";
+ &add;
+
+}
+
+
+sub add_stores_card {
+
+ $form->{type} = "storescard";
+ &add;
+
+}
+
+
+sub print_options {
+
+ if ($form->{selectlanguage}) {
+ $form->{"selectlanguage"} = $form->unescape($form->{"selectlanguage"});
+ $form->{"selectlanguage"} =~ s/ selected//;
+ $form->{"selectlanguage"} =~ s/(<option value="\Q$form->{language_code}\E")/$1 selected/;
+ $lang = qq|<select name=language_code>$form->{selectlanguage}</select>
+ <input type=hidden name=selectlanguage value="|.
+ $form->escape($form->{selectlanguage},1).qq|">|;
+ }
+
+ $form->{selectformname} = $form->unescape($form->{selectformname});
+ $form->{selectformname} =~ s/ selected//;
+ $form->{selectformname} =~ s/(<option value="\Q$form->{formname}\E")/$1 selected/;
+
+ $type = qq|<select name=formname>$form->{selectformname}</select>
+ <input type=hidden name=selectformname value="|.$form->escape($form->{selectformname},1).qq|">|;
+
+ $media = qq|<select name=media>
+ <option value="screen">|.$locale->text('Screen');
+
+ $form->{selectformat} = qq|<option value="html">html\n|;
+
+ if (%printer && $latex) {
+ for (sort keys %printer) { $media .= qq|
+ <option value="$_">$_| }
+ }
+
+ if ($latex) {
+ $media .= qq|
+ <option value="queue">|.$locale->text('Queue');
+
+ $form->{selectformat} .= qq|
+ <option value="postscript">|.$locale->text('Postscript').qq|
+ <option value="pdf">|.$locale->text('PDF');
+ }
+
+ $format = qq|<select name=format>$form->{selectformat}</select>|;
+ $format =~ s/(<option value="\Q$form->{format}\E")/$1 selected/;
+ $format .= qq|
+ <input type=hidden name=selectformat value="|.$form->escape($form->{selectformat},1).qq|">|;
+ $media .= qq|</select>|;
+ $media =~ s/(<option value="\Q$form->{media}\E")/$1 selected/;
+
+ print qq|
+ <table width=100%>
+ <tr>
+ <td>$type</td>
+ <td>$lang</td>
+ <td>$format</td>
+ <td>$media</td>
+ <td align=right width=90%>
+ |;
+
+ if ($form->{printed} =~ /$form->{formname}/) {
+ print $locale->text('Printed').qq|<br>|;
+ }
+
+ if ($form->{queued} =~ /$form->{formname}/) {
+ print $locale->text('Queued');
+ }
+
+ print qq|
+ </td>
+ </tr>
+ </table>
+|;
+
+}
+
+
+sub print {
+
+ if ($form->{media} !~ /screen/) {
+ $form->error($locale->text('Select postscript or PDF!')) if $form->{format} !~ /(postscript|pdf)/;
+ $old_form = new Form;
+ for (keys %$form) { $old_form->{$_} = $form->{$_} }
+ }
+
+ &{ "print_$form->{formname}" }($old_form);
+
+}
+
+
+sub print_timecard {
+ my ($old_form) = @_;
+
+ $display_form = ($form->{display_form}) ? $form->{display_form} : "update";
+
+ $form->{description} =~ s/^\s+//g;
+
+ for (qw(partnumber projectnumber)) { $form->{$_} =~ s/--.*// }
+
+ @a = qw(hour min sec);
+ foreach $item (qw(in out)) {
+ for (@a) { $form->{"$item$_"} = substr(qq|00$form->{"$item$_"}|, -2) }
+ $form->{"checked$item"} = qq|$form->{"${item}hour"}:$form->{"${item}min"}:$form->{"${item}sec"}|;
+ }
+
+ @a = ();
+ for (qw(company address tel fax businessnumber)) { $form->{$_} = $myconfig{$_} }
+ $form->{address} =~ s/\\n/\n/g;
+
+ push @a, qw(partnumber description projectnumber projectdescription);
+ push @a, qw(company address tel fax businessnumber username useremail);
+
+ $form->format_string(@a);
+
+ $form->{total} = $form->format_amount(\%myconfig, $form->parse_amount(\%myconfig, $form->{qty}) * $form->parse_amount(\%myconfig, $form->{sellprice}), 2);
+
+
+ ($form->{employee}, $form->{employee_id}) = split /--/, $form->{employee};
+
+ $form->{templates} = "$myconfig{templates}";
+ $form->{IN} = "$form->{formname}.html";
+
+ if ($form->{format} =~ /(postscript|pdf)/) {
+ $form->{IN} =~ s/html$/tex/;
+ }
+
+ if ($form->{media} !~ /(screen|queue)/) {
+ $form->{OUT} = "| $printer{$form->{media}}";
+
+ if ($form->{printed} !~ /$form->{formname}/) {
+ $form->{printed} .= " $form->{formname}";
+ $form->{printed} =~ s/^ //;
+
+ $form->update_status(\%myconfig);
+ }
+
+ %audittrail = ( tablename => jcitems,
+ reference => $form->{id},
+ formname => $form->{formname},
+ action => 'printed',
+ id => $form->{id} );
+
+ %status = ();
+ for (qw(printed queued audittrail)) { $status{$_} = $form->{$_} }
+
+ $status{audittrail} .= $form->audittrail("", \%myconfig, \%audittrail);
+
+ }
+
+ if ($form->{media} eq 'queue') {
+ %queued = split / /, $form->{queued};
+
+ if ($filename = $queued{$form->{formname}}) {
+ $form->{queued} =~ s/$form->{formname} $filename//;
+ unlink "$spool/$filename";
+ $filename =~ s/\..*$//g;
+ } else {
+ $filename = time;
+ $filename .= $$;
+ }
+
+ $filename .= ($form->{format} eq 'postscript') ? '.ps' : '.pdf';
+ $form->{OUT} = ">$spool/$filename";
+
+ $form->{queued} = "$form->{formname} $filename";
+ $form->update_status(\%myconfig);
+
+ %audittrail = ( tablename => jcitems,
+ reference => $form->{id},
+ formname => $form->{formname},
+ action => 'queued',
+ id => $form->{id} );
+
+ %status = ();
+ for (qw(printed queued audittrail)) { $status{$_} = $form->{$_} }
+
+ $status{audittrail} .= $form->audittrail("", \%myconfig, \%audittrail);
+ }
+
+ $form->parse_template(\%myconfig, $userspath);
+
+ if (defined %$old_form) {
+
+ for (keys %$old_form) { $form->{$_} = $old_form->{$_} }
+ for (qw(printed queued audittrail)) { $form->{$_} = $status{$_} }
+
+ &{ "$display_form" };
+
+ }
+
+}
+
+
diff --git a/bin/lynx/login.pl b/bin/lynx/login.pl
new file mode 100755
index 00000000..b674b03f
--- /dev/null
+++ b/bin/lynx/login.pl
@@ -0,0 +1,350 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2000
+#
+# Author: DWS Systems Inc.
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+######################################################################
+#
+# login frontend
+#
+#######################################################################
+
+
+use DBI;
+use SL::User;
+use SL::Form;
+
+
+$form = new Form;
+
+
+$locale = new Locale $language, "login";
+$form->{charset} = $locale->{charset};
+
+# customization
+if (-f "$form->{path}/custom_$form->{script}") {
+ eval { require "$form->{path}/custom_$form->{script}"; };
+ $form->error($@) if ($@);
+}
+
+# per login customization
+if (-f "$form->{path}/$form->{login}_$form->{script}") {
+ eval { require "$form->{path}/$form->{login}_$form->{script}"; };
+ $form->error($@) if ($@);
+}
+
+# window title bar, user info
+$form->{titlebar} = "LedgerSMB ".$locale->text('Version'). " $form->{version}";
+
+if ($form->{action}) {
+ $form->{titlebar} .= " - $myconfig{name} - $myconfig{dbname}";
+ &{ $locale->findsub($form->{action}) };
+} else {
+ &login_screen;
+}
+
+
+1;
+
+
+sub login_screen {
+
+ $form->{stylesheet} = "sql-ledger.css";
+ $form->{favicon} = "sql-ledger.ico";
+
+ $form->{endsession} = 1;
+ $form->header(1);
+
+ if ($form->{login}) {
+ $sf = qq|function sf() { document.login.password.focus(); }|;
+ } else {
+ $sf = qq|function sf() { document.login.login.focus(); }|;
+ }
+
+ print qq|
+<script language="JavaScript" type="text/javascript">
+<!--
+var agt = navigator.userAgent.toLowerCase();
+var is_major = parseInt(navigator.appVersion);
+var is_nav = ((agt.indexOf('mozilla') != -1) && (agt.indexOf('spoofer') == -1)
+ && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera') == -1)
+ && (agt.indexOf('webtv') == -1));
+var is_nav4lo = (is_nav && (is_major <= 4));
+
+function jsp() {
+ if (is_nav4lo)
+ document.login.js.value = "0"
+ else
+ document.login.js.value = "1"
+}
+$sf
+// End -->
+</script>
+|;
+
+ print qq|
+
+<body class=login onload="jsp(); sf()">
+
+<pre>
+
+</pre>
+
+<center>
+<table class=login border=3 cellpadding=20>
+ <tr>
+ <td class=login align=center><a href="http://sourceforge.net/projects/ledger-smb/" target=_top><img src=ledger-smb.png border=0></a>
+<h1 class=login align=center>|.$locale->text('Version').qq| $form->{version}
+</h1>
+
+<p>
+
+<form method=post action=$form->{script} name=login>
+
+ <table width=100%>
+ <tr>
+ <td align=center>
+ <table>
+ <tr>
+ <th align=right>|.$locale->text('Name').qq|</th>
+ <td><input class=login name=login size=30 value=$form->{login}></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Password').qq|</th>
+ <td><input class=login type=password name=password size=30></td>
+ </tr>
+ <input type=hidden name=path value=$form->{path}>
+ <input type=hidden name=js value=$form->{js}>
+ </table>
+
+ <br>
+ <input type=submit name=action value="|.$locale->text('Login').qq|">
+ </td>
+ </tr>
+ </table>
+
+</form>
+
+ </td>
+ </tr>
+</table>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub selectdataset {
+ my ($login) = @_;
+
+ if (-f "css/sql-ledger.css") {
+ $form->{stylesheet} = "sql-ledger.css";
+ }
+
+ $form->header(1);
+
+ print qq|
+<body class=login onload="document.forms[0].password.focus()" />
+
+<pre>
+
+</pre>
+
+<center>
+<table class=login border=3 cellpadding=20>
+ <tr>
+ <td class=login align=center><a href="http://sourceforge.net/projects/ledger-smb/" target=_top><img src=ledger-smb.png border=0></a>
+<h1 class=login align=center>|.$locale->text('Version').qq| $form->{version}
+</h1>
+
+<p>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=beenthere value=1>
+
+ <table width=100%>
+ <tr>
+ <td align=center>
+ <table>
+ <tr>
+ <th align=right>|.$locale->text('Name').qq|</th>
+ <td>$form->{login}</td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Password').qq|</th>
+ <td><input class=login type=password name=password size=30 value=$form->{password}></td>
+ </tr>
+ <input type=hidden name=js value=$form->{js}>
+ <input type=hidden name=path value=$form->{path}>
+ <tr>
+ <th align=right>|.$locale->text('Company').qq|</th>
+ <td>|;
+
+ $checked = "checked";
+ foreach $login (sort { $login{$a} cmp $login{$b} } keys %{ $login }) {
+ print qq|
+ <br><input class=login type=radio name=login value=$login $checked>$login{$login}
+ |;
+ $checked = "";
+ }
+
+ print qq|
+ </td>
+ </tr>
+ </table>
+ <br>
+ <input type=submit name=action value="|.$locale->text('Login').qq|">
+ </td>
+ </tr>
+ </table>
+
+</form>
+
+ </td>
+ </tr>
+</table>
+
+</body>
+</html>
+|;
+
+
+}
+
+
+sub login {
+
+ $form->{stylesheet} = "sql-ledger.css";
+ $form->{favicon} = "sql-ledger.ico";
+
+ $form->error($locale->text('You did not enter a name!')) unless ($form->{login});
+
+ if (! $form->{beenthere}) {
+ open(FH, "$memberfile") or $form->error("$memberfile : $!");
+ @a = <FH>;
+ close(FH);
+
+ foreach $item (@a) {
+
+ if ($item =~ /^\[(.*?)\]/) {
+ $login = $1;
+ $found = 1;
+ }
+
+ if ($item =~ /^company=/) {
+ if ($login =~ /$form->{login}\@/ && $found) {
+ ($null, $name) = split /=/, $item, 2;
+ $login{$login} = $name;
+ }
+ $found = 0;
+ }
+
+ }
+
+ if (keys %login > 1) {
+ &selectdataset(\%login);
+ exit;
+ }
+ }
+
+
+ $user = new User $memberfile, $form->{login};
+
+ # if we get an error back, bale out
+ if (($errno = $user->login(\%$form, $userspath)) <= -1) {
+
+ $errno *= -1;
+ $err[1] = $locale->text('Access Denied!');
+ $err[2] = $locale->text('Incorrect Dataset version!');
+ $err[3] = $locale->text('Dataset is newer than version!');
+
+ if ($errno == 4) {
+ # upgrade dataset and log in again
+ open FH, ">$userspath/nologin" or $form->error($!);
+
+ for (qw(dbname dbhost dbport dbdriver dbuser dbpasswd)) { $form->{$_} = $user->{$_} }
+
+ $form->{dbpasswd} = unpack 'u', $form->{dbpasswd};
+
+ $form->{dbupdate} = "db$user->{dbname}";
+ $form->{$form->{dbupdate}} = 1;
+
+ $form->header;
+ print $locale->text('Upgrading to Version')." $form->{version} ... ";
+
+ # required for Oracle
+ $form->{dbdefault} = $sid;
+
+ $user->dbupdate(\%$form);
+
+ # remove lock file
+ unlink "$userspath/nologin";
+
+ print $locale->text('done');
+
+ print "<p><a href=menu.pl?login=$form->{login}&sessionid=$form->{sessionid}&path=$form->{path}&action=display&main=company_logo&js=$form->{js}>".$locale->text('Continue')."</a>";
+
+ exit;
+ }
+
+ $form->error($err[$errno]);
+ }
+
+ # made it this far, setup callback for the menu
+ $form->{callback} = "menu.pl?action=display";
+ for (qw(login path js)) { $form->{callback} .= "&$_=$form->{$_}" }
+
+ # check for recurring transactions
+ if ($user->{acs} !~ /Recurring Transactions/) {
+ if ($user->check_recurring(\%$form)) {
+ $form->{callback} .= "&main=recurring_transactions";
+ } else {
+ $form->{callback} .= "&main=company_logo";
+ }
+ } else {
+ if ($user->{role} eq 'user') {
+ $form->{callback} .= "&main=company_logo";
+ } else {
+ if ($user->check_recurring(\%$form)) {
+ $form->{callback} .= "&main=recurring_transactions";
+ } else {
+ $form->{callback} .= "&main=company_logo";
+ }
+ }
+ }
+
+ $form->redirect;
+
+}
+
+
+
+sub logout {
+
+ $form->{callback} = "$form->{script}?path=$form->{path}&login=$form->{login}";
+
+ $form->{endsession} = 1;
+
+ $form->redirect;
+
+}
+
+
diff --git a/bin/lynx/menu.pl b/bin/lynx/menu.pl
new file mode 100755
index 00000000..58d75511
--- /dev/null
+++ b/bin/lynx/menu.pl
@@ -0,0 +1,153 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2000
+#
+# Author: Dieter Simader
+# Email: dsimader@sql-ledger.org
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+# Contributors: Christopher Browne <cbrowne@acm.org>
+# Tony Fraser <tony@sybaspace.com>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#######################################################################
+#
+# menu for text based browsers (lynx)
+#
+#######################################################################
+
+$menufile = "menu.ini";
+use SL::Menu;
+
+
+1;
+# end of main
+
+
+
+sub display {
+
+ $menu = new Menu "$menufile";
+ $menu->add_file("custom_$menufile") if -f "custom_$menufile";
+ $menu->add_file("$form->{login}_$menufile") if -f "$form->{login}_$menufile";
+
+ @menuorder = $menu->access_control(\%myconfig);
+
+ $form->{title} = "LedgerSMB $form->{version}";
+
+ $form->header(1);
+
+ $offset = int (21 - $#menuorder)/2;
+
+ print "<pre>";
+ print "\n" x $offset;
+ print "</pre>";
+
+ print qq|<center><table>|;
+
+ map { print "<tr><td>".$menu->menuitem(\%myconfig, \%$form, $_).$locale->text($_).qq|</a></td></tr>|; } @menuorder;
+
+ print qq'
+</table>
+
+</body>
+</html>
+';
+
+}
+
+
+sub section_menu {
+
+ $menu = new Menu "$menufile", $form->{level};
+
+ $menu->add_file("custom_$menufile") if -f "custom_$menufile";
+ $menu->add_file("$form->{login}_$menufile") if -f "$form->{login}_$menufile";
+
+ # build tiered menus
+ @menuorder = $menu->access_control(\%myconfig, $form->{level});
+
+ foreach $item (@menuorder) {
+ $a = $item;
+ $item =~ s/^$form->{level}--//;
+ push @neworder, $a unless ($item =~ /--/);
+ }
+ @menuorder = @neworder;
+
+ $level = $form->{level};
+ $level =~ s/--/ /g;
+
+ $form->{title} = $locale->text($level);
+
+ $form->header;
+
+ $offset = int (21 - $#menuorder)/2;
+ print "<pre>";
+ print "\n" x $offset;
+ print "</pre>";
+
+ print qq|<center><table>|;
+
+ foreach $item (@menuorder) {
+ $label = $item;
+ $label =~ s/$form->{level}--//g;
+
+ # remove target
+ $menu->{$item}{target} = "";
+
+ print "<tr><td>".$menu->menuitem(\%myconfig, \%$form, $item, $form->{level}).$locale->text($label)."</a></td></tr>";
+ }
+
+ print qq'</table>
+
+</body>
+</html>
+';
+
+}
+
+
+sub acc_menu {
+
+ &section_menu;
+
+}
+
+
+sub menubar {
+ $menu = new Menu "$menufile", "";
+
+ # build menubar
+ @menuorder = $menu->access_control(\%myconfig, "");
+
+ @neworder = ();
+ map { push @neworder, $_ unless ($_ =~ /--/) } @menuorder;
+ @menuorder = @neworder;
+
+ print "<p>";
+ $form->{script} = "menu.pl";
+
+ print "| ";
+ foreach $item (@menuorder) {
+ $label = $item;
+
+ # remove target
+ $menu->{$item}{target} = "";
+
+ print $menu->menuitem(\%myconfig, \%$form, $item, "").$locale->text($label)."</a> | ";
+ }
+
+}
+
+
diff --git a/bin/lynx/oe.pl b/bin/lynx/oe.pl
new file mode 100755
index 00000000..6d369ef5
--- /dev/null
+++ b/bin/lynx/oe.pl
@@ -0,0 +1,3023 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2001
+#
+# Author: DWS Systems Inc.
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#======================================================================
+#
+# Order entry module
+# Quotation module
+#
+#======================================================================
+
+
+use SL::OE;
+use SL::IR;
+use SL::IS;
+use SL::PE;
+
+require "$form->{path}/arap.pl";
+require "$form->{path}/io.pl";
+
+
+1;
+# end of main
+
+
+sub add {
+
+ if ($form->{type} eq 'purchase_order') {
+ $form->{title} = $locale->text('Add Purchase Order');
+ $form->{vc} = 'vendor';
+ }
+ if ($form->{type} eq 'sales_order') {
+ $form->{title} = $locale->text('Add Sales Order');
+ $form->{vc} = 'customer';
+ }
+ if ($form->{type} eq 'request_quotation') {
+ $form->{title} = $locale->text('Add Request for Quotation');
+ $form->{vc} = 'vendor';
+ }
+ if ($form->{type} eq 'sales_quotation') {
+ $form->{title} = $locale->text('Add Quotation');
+ $form->{vc} = 'customer';
+ }
+
+ $form->{callback} = "$form->{script}?action=add&type=$form->{type}&vc=$form->{vc}&login=$form->{login}&path=$form->{path}&sessionid=$form->{sessionid}" unless $form->{callback};
+
+ $form->{rowcount} = 0;
+
+ &order_links;
+ &prepare_order;
+ &display_form;
+
+}
+
+
+sub edit {
+
+ if ($form->{type} =~ /(purchase_order|bin_list)/) {
+ $form->{title} = $locale->text('Edit Purchase Order');
+ $form->{vc} = 'vendor';
+ $form->{type} = 'purchase_order';
+ }
+ if ($form->{type} =~ /((sales|work)_order|(packing|pick)_list)/) {
+ $form->{title} = $locale->text('Edit Sales Order');
+ $form->{vc} = 'customer';
+ $form->{type} = 'sales_order';
+ }
+ if ($form->{type} eq 'request_quotation') {
+ $form->{title} = $locale->text('Edit Request for Quotation');
+ $form->{vc} = 'vendor';
+ }
+ if ($form->{type} eq 'sales_quotation') {
+ $form->{title} = $locale->text('Edit Quotation');
+ $form->{vc} = 'customer';
+ }
+
+ &order_links;
+ &prepare_order;
+ &display_form;
+
+}
+
+
+
+sub order_links {
+
+ # retrieve order/quotation
+ OE->retrieve(\%myconfig, \%$form);
+
+ # get customer/vendor
+ $form->all_vc(\%myconfig, $form->{vc}, ($form->{vc} eq 'customer') ? "AR" : "AP", undef, $form->{transdate}, 1);
+
+ # currencies
+ @curr = split /:/, $form->{currencies};
+ $form->{defaultcurrency} = $curr[0];
+ chomp $form->{defaultcurrency};
+ $form->{currency} = $form->{defaultcurrency} unless $form->{currency};
+
+ for (@curr) { $form->{selectcurrency} .= "<option>$_\n" }
+
+ $form->{oldlanguage_code} = $form->{language_code};
+
+ $l{language_code} = $form->{language_code};
+ $l{searchitems} = 'nolabor' if $form->{vc} eq 'customer';
+
+ $form->get_partsgroup(\%myconfig, \%l);
+
+ if (@{ $form->{all_partsgroup} }) {
+ $form->{selectpartsgroup} = "<option>\n";
+ foreach $ref (@ { $form->{all_partsgroup} }) {
+ if ($ref->{translation}) {
+ $form->{selectpartsgroup} .= qq|<option value="$ref->{partsgroup}--$ref->{id}">$ref->{translation}\n|;
+ } else {
+ $form->{selectpartsgroup} .= qq|<option value="$ref->{partsgroup}--$ref->{id}">$ref->{partsgroup}\n|;
+ }
+ }
+ }
+
+ if (@{ $form->{all_project} }) {
+ $form->{selectprojectnumber} = "<option>\n";
+ for (@{ $form->{all_project} }) { $form->{selectprojectnumber} .= qq|<option value="$_->{projectnumber}--$_->{id}">$_->{projectnumber}\n| }
+ }
+
+ if (@{ $form->{"all_$form->{vc}"} }) {
+ unless ($form->{"$form->{vc}_id"}) {
+ $form->{"$form->{vc}_id"} = $form->{"all_$form->{vc}"}->[0]->{id};
+ }
+ }
+
+ for (qw(terms taxincluded)) { $temp{$_} = $form->{$_} }
+ $form->{shipto} = 1 if $form->{id};
+
+ # get customer / vendor
+ AA->get_name(\%myconfig, \%$form);
+
+ if ($form->{id}) {
+ for (qw(terms taxincluded)) { $form->{$_} = $temp{$_} }
+ }
+
+ ($form->{$form->{vc}}) = split /--/, $form->{$form->{vc}};
+ $form->{"old$form->{vc}"} = qq|$form->{$form->{vc}}--$form->{"$form->{vc}_id"}|;
+
+ # build selection list
+ $form->{"select$form->{vc}"} = "";
+ if (@{ $form->{"all_$form->{vc}"} }) {
+ $form->{$form->{vc}} = qq|$form->{$form->{vc}}--$form->{"$form->{vc}_id"}|;
+ for (@{ $form->{"all_$form->{vc}"} }) { $form->{"select$form->{vc}"} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+ }
+
+ # departments
+ if (@{ $form->{all_department} }) {
+ $form->{selectdepartment} = "<option>\n";
+ $form->{department} = "$form->{department}--$form->{department_id}" if $form->{department_id};
+
+ for (@{ $form->{all_department} }) { $form->{selectdepartment} .= qq|<option value="$_->{description}--$_->{id}">$_->{description}\n| }
+ }
+
+ $form->{employee} = "$form->{employee}--$form->{employee_id}";
+
+ # sales staff
+ if (@{ $form->{all_employee} }) {
+ $form->{selectemployee} = "";
+ for (@{ $form->{all_employee} }) { $form->{selectemployee} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+ }
+
+ if (@{ $form->{all_language} }) {
+ $form->{selectlanguage} = "<option>\n";
+ for (@{ $form->{all_language} }) { $form->{selectlanguage} .= qq|<option value="$_->{code}">$_->{description}\n| }
+ }
+
+ # forex
+ $form->{forex} = $form->{exchangerate};
+
+}
+
+
+sub prepare_order {
+
+ $form->{format} = "postscript" if $myconfig{printer};
+ $form->{media} = $myconfig{printer};
+ $form->{formname} = $form->{type};
+ $form->{sortby} ||= "runningnumber";
+ $form->{currency} =~ s/ //g;
+ $form->{oldcurrency} = $form->{currency};
+
+ if ($form->{id}) {
+
+ for (qw(ordnumber quonumber shippingpoint shipvia notes intnotes shiptoname shiptoaddress1 shiptoaddress2 shiptocity shiptostate shiptozipcode shiptocountry shiptocontact)) { $form->{$_} = $form->quote($form->{$_}) }
+
+ foreach $ref (@{ $form->{form_details} } ) {
+ $i++;
+ for (keys %$ref) { $form->{"${_}_$i"} = $ref->{$_} }
+
+ $form->{"projectnumber_$i"} = qq|$ref->{projectnumber}--$ref->{project_id}| if $ref->{project_id};
+ $form->{"partsgroup_$i"} = qq|$ref->{partsgroup}--$ref->{partsgroup_id}| if $ref->{partsgroup_id};
+
+ $form->{"discount_$i"} = $form->format_amount(\%myconfig, $form->{"discount_$i"} * 100);
+
+ ($dec) = ($form->{"sellprice_$i"} =~ /\.(\d+)/);
+ $dec = length $dec;
+ $decimalplaces = ($dec > 2) ? $dec : 2;
+
+ for (map { "${_}_$i" } qw(sellprice listprice)) { $form->{$_} = $form->format_amount(\%myconfig, $form->{$_}, $decimalplaces) }
+
+ ($dec) = ($form->{"lastcost_$i"} =~ /\.(\d+)/);
+ $dec = length $dec;
+ $decimalplaces = ($dec > 2) ? $dec : 2;
+
+ $form->{"lastcost_$i"} = $form->format_amount(\%myconfig, $form->{"lastcost_$i"}, $decimalplaces);
+
+ $form->{"qty_$i"} = $form->format_amount(\%myconfig, $form->{"qty_$i"});
+ $form->{"oldqty_$i"} = $form->{"qty_$i"};
+
+ for (qw(partnumber sku description unit)) { $form->{"${_}_$i"} = $form->quote($form->{"${_}_$i"}) }
+ $form->{rowcount} = $i;
+ }
+ }
+
+ $form->{oldtransdate} = $form->{transdate};
+
+ if ($form->{type} eq 'sales_quotation') {
+ if (! $form->{readonly}) {
+ $form->{readonly} = 1 if $myconfig{acs} =~ /Quotations--Quotation/;
+ }
+
+ $form->{selectformname} = qq|<option value="sales_quotation">|.$locale->text('Quotation');
+ }
+
+ if ($form->{type} eq 'request_quotation') {
+ if (! $form->{readonly}) {
+ $form->{readonly} = 1 if $myconfig{acs} =~ /Quotations--RFQ/;
+ }
+
+ $form->{selectformname} = qq|<option value="request_quotation">|.$locale->text('RFQ');
+ }
+
+ if ($form->{type} eq 'sales_order') {
+ if (! $form->{readonly}) {
+ $form->{readonly} = 1 if $myconfig{acs} =~ /Order Entry--Sales Order/;
+ }
+
+ $form->{selectformname} = qq|<option value="sales_order">|.$locale->text('Sales Order').qq|
+ <option value="work_order">|.$locale->text('Work Order').qq|
+ <option value="pick_list">|.$locale->text('Pick List').qq|
+ <option value="packing_list">|.$locale->text('Packing List');
+ }
+
+ if ($form->{type} eq 'purchase_order') {
+ if (! $form->{readonly}) {
+ $form->{readonly} = 1 if $myconfig{acs} =~ /Order Entry--Purchase Order/;
+ }
+
+ $form->{selectformname} = qq|<option value="purchase_order">|.$locale->text('Purchase Order').qq|
+ <option value="bin_list">|.$locale->text('Bin List');
+ }
+
+ if ($form->{type} eq 'ship_order') {
+ $form->{selectformname} = qq|<option value="pick_list">|.$locale->text('Pick List').qq|
+ <option value="packing_list">|.$locale->text('Packing List');
+ }
+
+ if ($form->{type} eq 'receive_order') {
+ $form->{selectformname} = qq|<option value="bin_list">|.$locale->text('Bin List');
+ }
+
+}
+
+
+sub form_header {
+
+ $checkedopen = ($form->{closed}) ? "" : "checked";
+ $checkedclosed = ($form->{closed}) ? "checked" : "";
+
+ if ($form->{id}) {
+ $openclosed = qq|
+ <tr>
+ <th nowrap align=right><input name=closed type=radio class=radio value=0 $checkedopen> |.$locale->text('Open').qq|</th>
+ <th nowrap align=left><input name=closed type=radio class=radio value=1 $checkedclosed> |.$locale->text('Closed').qq|</th>
+ </tr>
+|;
+ }
+
+ # set option selected
+ $form->{selectcurrency} =~ s/ selected//;
+ $form->{selectcurrency} =~ s/option>\Q$form->{currency}\E/option selected>$form->{currency}/;
+
+ for ("$form->{vc}", "department", "employee") {
+ $form->{"select$_"} = $form->unescape($form->{"select$_"});
+ $form->{"select$_"} =~ s/ selected//;
+ $form->{"select$_"} =~ s/(<option value="\Q$form->{$_}\E")/$1 selected/;
+ }
+
+
+ $form->{exchangerate} = $form->format_amount(\%myconfig, $form->{exchangerate});
+
+ $exchangerate = qq|<tr>|;
+ $exchangerate .= qq|
+ <th align=right nowrap>|.$locale->text('Currency').qq|</th>
+ <td><select name=currency>$form->{selectcurrency}</select></td> | if $form->{defaultcurrency};
+ $exchangerate .= qq|
+ <input type=hidden name=selectcurrency value="$form->{selectcurrency}">
+ <input type=hidden name=defaultcurrency value=$form->{defaultcurrency}>
+|;
+
+ if ($form->{defaultcurrency} && $form->{currency} ne $form->{defaultcurrency}) {
+ if ($form->{forex}) {
+ $exchangerate .= qq|<th align=right>|.$locale->text('Exchange Rate').qq|</th><td>$form->{exchangerate}</td>
+ <input type=hidden name=exchangerate value=$form->{exchangerate}>
+|;
+ } else {
+ $exchangerate .= qq|<th align=right>|.$locale->text('Exchange Rate').qq|</th><td><input name=exchangerate size=10 value=$form->{exchangerate}></td>|;
+ }
+ }
+ $exchangerate .= qq|
+<input type=hidden name=forex value=$form->{forex}>
+</tr>
+|;
+
+
+
+ $vclabel = ucfirst $form->{vc};
+ $vclabel = $locale->text($vclabel);
+
+ $terms = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Terms').qq|</th>
+ <td nowrap><input name=terms size="3" maxlength="3" value=$form->{terms}> |.$locale->text('days').qq|</td>
+ </tr>
+|;
+
+
+ if ($form->{business}) {
+ $business = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Business').qq|</th>
+ <td colspan=3>$form->{business}
+ &nbsp;&nbsp;&nbsp;|;
+ $business .= qq|
+ <b>|.$locale->text('Trade Discount').qq|</b>
+ |.$form->format_amount(\%myconfig, $form->{tradediscount} * 100).qq| %| if $form->{vc} eq 'customer';
+ $business .= qq|</td>
+ </tr>
+|;
+ }
+
+ if ($form->{type} !~ /_quotation$/) {
+ $ordnumber = qq|
+ <tr>
+ <th width=70% align=right nowrap>|.$locale->text('Order Number').qq|</th>
+ <td><input name=ordnumber size=20 value="$form->{ordnumber}"></td>
+ <input type=hidden name=quonumber value="$form->{quonumber}">
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Order Date').qq|</th>
+ <td><input name=transdate size=11 title="$myconfig{dateformat}" value=$form->{transdate}></td>
+ </tr>
+ <tr>
+ <th align=right nowrap=true>|.$locale->text('Required by').qq|</th>
+ <td><input name=reqdate size=11 title="$myconfig{dateformat}" value=$form->{reqdate}></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('PO Number').qq|</th>
+ <td><input name=ponumber size=20 value="$form->{ponumber}"></td>
+ </tr>
+|;
+
+ $n = ($form->{creditremaining} < 0) ? "0" : "1";
+
+ $creditremaining = qq|
+ <tr>
+ <td></td>
+ <td colspan=3>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Credit Limit').qq|</th>
+ <td>|.$form->format_amount(\%myconfig, $form->{creditlimit}, 0, "0").qq|</td>
+ <td width=10></td>
+ <th align=right nowrap>|.$locale->text('Remaining').qq|</th>
+ <td class="plus$n" nowrap>|.$form->format_amount(\%myconfig, $form->{creditremaining}, 0, "0").qq|</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+|;
+ } else {
+ $reqlabel = ($form->{type} eq 'sales_quotation') ? $locale->text('Valid until') : $locale->text('Required by');
+ if ($form->{type} eq 'sales_quotation') {
+ $ordnumber = qq|
+ <tr>
+ <th width=70% align=right nowrap>|.$locale->text('Quotation Number').qq|</th>
+ <td><input name=quonumber size=20 value="$form->{quonumber}"></td>
+ <input type=hidden name=ordnumber value="$form->{ordnumber}">
+ </tr>
+|;
+ } else {
+ $ordnumber = qq|
+ <tr>
+ <th width=70% align=right nowrap>|.$locale->text('RFQ Number').qq|</th>
+ <td><input name=quonumber size=20 value="$form->{quonumber}"></td>
+ <input type=hidden name=ordnumber value="$form->{ordnumber}">
+ </tr>
+|;
+
+ $terms = "";
+ }
+
+
+ $ordnumber .= qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Quotation Date').qq|</th>
+ <td><input name=transdate size=11 title="$myconfig{dateformat}" value=$form->{transdate}></td>
+ </tr>
+ <tr>
+ <th align=right nowrap=true>$reqlabel</th>
+ <td><input name=reqdate size=11 title="$myconfig{dateformat}" value=$form->{reqdate}></td>
+ </tr>
+|;
+
+ }
+
+ $ordnumber .= qq|
+<input type=hidden name=oldtransdate value=$form->{oldtransdate}>|;
+
+ if ($form->{"select$form->{vc}"}) {
+ $vc = qq|<select name=$form->{vc}>$form->{"select$form->{vc}"}</select>
+ <input type=hidden name="select$form->{vc}" value="|
+ .$form->escape($form->{"select$form->{vc}"},1).qq|">|;
+ } else {
+ $vc = qq|<input name=$form->{vc} value="$form->{$form->{vc}}" size=35>|;
+ }
+
+ $department = qq|
+ <tr>
+ <th align="right" nowrap>|.$locale->text('Department').qq|</th>
+ <td colspan=3><select name=department>$form->{selectdepartment}</select>
+ <input type=hidden name=selectdepartment value="|
+ .$form->escape($form->{selectdepartment},1).qq|">
+ </td>
+ </tr>
+| if $form->{selectdepartment};
+
+ $employee = qq|
+ <input type=hidden name=employee value="$form->{employee}">
+|;
+
+ if ($form->{type} eq 'sales_order') {
+ if ($form->{selectemployee}) {
+ $employee = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Salesperson').qq|</th>
+ <td><select name=employee>$form->{selectemployee}</select></td>
+ <input type=hidden name=selectemployee value="|.
+ $form->escape($form->{selectemployee},1).qq|"
+ </tr>
+|;
+ }
+ } else {
+ if ($form->{selectemployee}) {
+ $employee = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Employee').qq|</th>
+ <td><select name=employee>$form->{selectemployee}</select></td>
+ <input type=hidden name=selectemployee value="|.
+ $form->escape($form->{selectemployee},1).qq|"
+ </tr>
+|;
+ }
+ }
+
+ $i = $form->{rowcount} + 1;
+ $focus = "partnumber_$i";
+
+ $form->header;
+
+ print qq|
+<body onLoad="document.forms[0].${focus}.focus()" />
+
+<form method=post action="$form->{script}">
+|;
+
+ $form->hide_form(qw(id type formname media format printed emailed queued vc title discount creditlimit creditremaining tradediscount business recurring));
+
+ print qq|
+<table width=100%>
+ <tr class=listtop>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width="100%">
+ <tr valign=top>
+ <td>
+ <table width=100%>
+ <tr>
+ <th align=right>$vclabel</th>
+ <td colspan=3>$vc</td>
+ <input type=hidden name=$form->{vc}_id value=$form->{"$form->{vc}_id"}>
+ <input type=hidden name="old$form->{vc}" value="$form->{"old$form->{vc}"}">
+ </tr>
+ $creditremaining
+ $business
+ $department
+ $exchangerate
+ <tr>
+ <th align=right>|.$locale->text('Shipping Point').qq|</th>
+ <td colspan=3><input name=shippingpoint size=35 value="$form->{shippingpoint}"></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Ship via').qq|</th>
+ <td colspan=3><input name=shipvia size=35 value="$form->{shipvia}"></td>
+ </tr>
+ </table>
+ </td>
+ <td align=right>
+ <table>
+ $openclosed
+ $employee
+ $ordnumber
+ $terms
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+|;
+
+ $form->hide_form(qw(shiptoname shiptoaddress1 shiptoaddress2 shiptocity shiptostate shiptozipcode shiptocountry shiptocontact shiptophone shiptofax shiptoemail message email subject cc bcc taxaccounts));
+
+ for (split / /, $form->{taxaccounts}) {
+ print qq|
+<input type=hidden name="${_}_rate" value=$form->{"${_}_rate"}>
+<input type=hidden name="${_}_description" value="$form->{"${_}_description"}">
+|;
+ }
+
+}
+
+
+sub form_footer {
+
+ $form->{invtotal} = $form->{invsubtotal};
+
+ if (($rows = $form->numtextrows($form->{notes}, 35, 8)) < 2) {
+ $rows = 2;
+ }
+ if (($introws = $form->numtextrows($form->{intnotes}, 35, 8)) < 2) {
+ $introws = 2;
+ }
+ $rows = ($rows > $introws) ? $rows : $introws;
+ $notes = qq|<textarea name=notes rows=$rows cols=35 wrap=soft>$form->{notes}</textarea>|;
+ $intnotes = qq|<textarea name=intnotes rows=$rows cols=35 wrap=soft>$form->{intnotes}</textarea>|;
+
+
+ $form->{taxincluded} = ($form->{taxincluded}) ? "checked" : "";
+
+ $taxincluded = "";
+ if ($form->{taxaccounts}) {
+ $taxincluded = qq|
+ <tr height="5"></tr>
+ <tr>
+ <td align=right>
+ <input name=taxincluded class=checkbox type=checkbox value=1 $form->{taxincluded}></td>
+ <th align=left>|.$locale->text('Tax Included').qq|</th>
+ </tr>
+|;
+ }
+
+ if (!$form->{taxincluded}) {
+
+ for (split / /, $form->{taxaccounts}) {
+ if ($form->{"${_}_base"}) {
+ $form->{invtotal} += $form->{"${_}_total"} = $form->round_amount($form->{"${_}_base"} * $form->{"${_}_rate"}, 2);
+ $form->{"${_}_total"} = $form->format_amount(\%myconfig, $form->{"${_}_total"}, 2);
+
+ $tax .= qq|
+ <tr>
+ <th align=right>$form->{"${_}_description"}</th>
+ <td align=right>$form->{"${_}_total"}</td>
+ </tr>
+|;
+ }
+ }
+
+ $form->{invsubtotal} = $form->format_amount(\%myconfig, $form->{invsubtotal}, 2, 0);
+
+ $subtotal = qq|
+ <tr>
+ <th align=right>|.$locale->text('Subtotal').qq|</th>
+ <td align=right>$form->{invsubtotal}</td>
+ </tr>
+|;
+
+ }
+
+ $form->{oldinvtotal} = $form->{invtotal};
+ $form->{invtotal} = $form->format_amount(\%myconfig, $form->{invtotal}, 2, 0);
+
+
+ print qq|
+ <tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=left>|.$locale->text('Notes').qq|</th>
+ <th align=left>|.$locale->text('Internal Notes').qq|</th>
+ </tr>
+ <tr valign=top>
+ <td>$notes</td>
+ <td>$intnotes</td>
+ </tr>
+ </table>
+ </td>
+ <td align=right>
+ <table>
+ $subtotal
+ $tax
+ <tr>
+ <th align=right>|.$locale->text('Total').qq|</th>
+ <td align=right>$form->{invtotal}</td>
+ </tr>
+ $taxincluded
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+<input type=hidden name=oldinvtotal value=$form->{oldinvtotal}>
+<input type=hidden name=oldtotalpaid value=$totalpaid>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+ <tr>
+ <td>
+|;
+
+ &print_options;
+
+ print qq|
+ </td>
+ </tr>
+</table>
+
+<br>
+|;
+
+# type=submit $locale->text('Update')
+# type=submit $locale->text('Print')
+# type=submit $locale->text('Schedule')
+# type=submit $locale->text('Save')
+# type=submit $locale->text('Print and Save')
+# type=submit $locale->text('Ship to')
+# type=submit $locale->text('Save as new')
+# type=submit $locale->text('Print and Save as new')
+# type=submit $locale->text('E-mail')
+# type=submit $locale->text('Delete')
+# type=submit $locale->text('Sales Invoice')
+# type=submit $locale->text('Vendor Invoice')
+# type=submit $locale->text('Quotation')
+# type=submit $locale->text('RFQ')
+# type=submit $locale->text('Sales Order')
+# type=submit $locale->text('Purchase Order')
+
+ if (! $form->{readonly}) {
+ %button = ('Update' => { ndx => 1, key => 'U', value => $locale->text('Update') },
+ 'Print' => { ndx => 2, key => 'P', value => $locale->text('Print') },
+ 'Save' => { ndx => 3, key => 'S', value => $locale->text('Save') },
+ 'Ship to' => { ndx => 4, key => 'T', value => $locale->text('Ship to') },
+ 'E-mail' => { ndx => 5, key => 'E', value => $locale->text('E-mail') },
+ 'Print and Save' => { ndx => 6, key => 'R', value => $locale->text('Print and Save') },
+ 'Save as new' => { ndx => 7, key => 'N', value => $locale->text('Save as new') },
+ 'Print and Save as new' => { ndx => 8, key => 'W', value => $locale->text('Print and Save as new') },
+ 'Sales Invoice' => { ndx => 9, key => 'I', value => $locale->text('Sales Invoice') },
+ 'Sales Order' => { ndx => 10, key => 'O', value => $locale->text('Sales Order') },
+ 'Quotation' => { ndx => 11, key => 'Q', value => $locale->text('Quotation') },
+ 'Vendor Invoice' => { ndx => 12, key => 'I', value => $locale->text('Vendor Invoice') },
+ 'Purchase Order' => { ndx => 13, key => 'O', value => $locale->text('Purchase Order') },
+ 'RFQ' => { ndx => 14, key => 'Q', value => $locale->text('RFQ') },
+ 'Schedule' => { ndx => 15, key => 'H', value => $locale->text('Schedule') },
+ 'Delete' => { ndx => 16, key => 'D', value => $locale->text('Delete') },
+ );
+
+
+ %a = ();
+ for ("Update", "Ship to", "Print", "E-mail", "Save") { $a{$_} = 1 }
+ $a{'Print and Save'} = 1 if $latex;
+
+ if ($form->{id}) {
+
+ $a{'Delete'} = 1;
+ $a{'Save as new'} = 1;
+ $a{'Print and Save as new'} = 1 if $latex;
+
+ if ($form->{type} =~ /sales_/) {
+ if ($myconfig{acs} !~ /AR--Sales Invoice/) {
+ $a{'Sales Invoice'} = 1;
+ }
+ } else {
+ if ($myconfig{acs} !~ /AP--Vendor Invoice/) {
+ $a{'Vendor Invoice'} = 1;
+ }
+ }
+
+ if ($form->{type} eq 'sales_order') {
+ if ($myconfig{acs} !~ /Quotations--RFQ/) {
+ $a{'Quotation'} = 1;
+ }
+ }
+
+ if ($form->{type} eq 'purchase_order') {
+ if ($myconfig{acs} !~ /Quotations--RFQ/) {
+ $a{'RFQ'} = 1;
+ }
+ }
+
+ if ($form->{type} eq 'sales_quotation') {
+ if ($myconfig{acs} !~ /Order Entry--Sales Order/) {
+ $a{'Sales Order'} = 1;
+ }
+ }
+
+ if ($myconfig{acs} !~ /Order Entry--Purchase Order/) {
+ if ($form->{type} eq 'request_quotation') {
+ $a{'Purchase Order'} = 1;
+ }
+ }
+ }
+
+ if ($form->{type} =~ /_order/) {
+ $a{'Schedule'} = 1;
+ }
+
+ }
+
+ for (keys %button) { delete $button{$_} if ! $a{$_} }
+ for (sort { $button{$a}->{ndx} <=> $button{$b}->{ndx} } keys %button) { $form->print_button(\%button, $_) }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ $form->hide_form(qw(rowcount callback path login sessionid));
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub update {
+
+ if ($form->{type} eq 'generate_purchase_order') {
+
+ for (1 .. $form->{rowcount}) {
+ if ($form->{"ndx_$_"}) {
+ $form->{"$form->{vc}_id_$_"} = $form->{"$form->{vc}_id"};
+ $form->{"$form->{vc}_$_"} = qq|$form->{$form->{vc}}--$form->{"$form->{vc}_id"}|;
+ }
+ }
+
+ &po_orderitems;
+ exit;
+ }
+
+ $form->{exchangerate} = $form->parse_amount(\%myconfig, $form->{exchangerate});
+
+ if ($form->{vc} eq 'customer') {
+ $buysell = "buy";
+ $ARAP = "AR";
+ } else {
+ $buysell = "sell";
+ $ARAP = "AP";
+ }
+
+ if ($newname = &check_name($form->{vc})) {
+ &rebuild_vc($form->{vc}, $ARAP, $form->{transdate}, 1);
+ }
+
+ if ($form->{transdate} ne $form->{oldtransdate}) {
+ $form->{reqdate} = ($form->{terms}) ? $form->current_date(\%myconfig, $form->{transdate}, $form->{terms} * 1) : $form->{reqdate};
+ $form->{oldtransdate} = $form->{transdate};
+ &rebuild_vc($form->{vc}, $ARAP, $form->{transdate}, 1) if ! $newname;
+
+ if ($form->{currency} ne $form->{defaultcurrency}) {
+ delete $form->{exchangerate};
+ $form->{exchangerate} = $exchangerate if ($form->{forex} = ($exchangerate = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{transdate}, $buysell)));
+ }
+
+ $form->{selectemployee} = "";
+ if (@{ $form->{all_employee} }) {
+ for (@{ $form->{all_employee} }) { $form->{selectemployee} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+ }
+ }
+
+
+ if ($form->{currency} ne $form->{oldcurrency}) {
+ delete $form->{exchangerate};
+ $form->{exchangerate} = $exchangerate if ($form->{forex} = ($exchangerate = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{transdate}, $buysell)));
+ }
+
+ my $i = $form->{rowcount};
+ $exchangerate = ($form->{exchangerate}) ? $form->{exchangerate} : 1;
+
+ for (qw(partsgroup projectnumber)) {
+ $form->{"select$_"} = $form->unescape($form->{"select$_"}) if $form->{"select$_"};
+ }
+
+ if (($form->{"partnumber_$i"} eq "") && ($form->{"description_$i"} eq "") && ($form->{"partsgroup_$i"} eq "")) {
+
+ $form->{creditremaining} += ($form->{oldinvtotal} - $form->{oldtotalpaid});
+ &check_form;
+
+ } else {
+
+ $retrieve_item = "";
+ if ($form->{type} eq 'purchase_order' || $form->{type} eq 'request_quotation') {
+ $retrieve_item = "IR::retrieve_item";
+ }
+ if ($form->{type} eq 'sales_order' || $form->{type} eq 'sales_quotation') {
+ $retrieve_item = "IS::retrieve_item";
+ }
+
+ &{ "$retrieve_item" }("", \%myconfig, \%$form);
+
+ $rows = scalar @{ $form->{item_list} };
+
+ if ($form->{language_code} && $rows == 0) {
+ $language_code = $form->{language_code};
+ $form->{language_code} = "";
+ if ($retrieve_item) {
+ &{ "$retrieve_item" }("", \%myconfig, \%$form);
+ }
+ $form->{language_code} = $language_code;
+ $rows = scalar @{ $form->{item_list} };
+ }
+
+ if ($rows) {
+
+ if ($rows > 1) {
+
+ &select_item;
+ exit;
+
+ } else {
+
+ $form->{"qty_$i"} = ($form->{"qty_$i"} * 1) ? $form->{"qty_$i"} : 1;
+ $form->{"reqdate_$i"} = $form->{reqdate} if $form->{type} ne 'sales_quotation';
+ $sellprice = $form->parse_amount(\%myconfig, $form->{"sellprice_$i"});
+
+ for (qw(partnumber description unit)) { $form->{item_list}[$i]{$_} = $form->quote($form->{item_list}[$i]{$_}) }
+ for (keys %{ $form->{item_list}[0] }) { $form->{"${_}_$i"} = $form->{item_list}[0]{$_} }
+
+ $form->{"discount_$i"} = $form->{discount} * 100;
+
+ if ($sellprice) {
+ $form->{"sellprice_$i"} = $sellprice;
+
+ ($dec) = ($form->{"sellprice_$i"} =~ /\.(\d+)/);
+ $dec = length $dec;
+ $decimalplaces1 = ($dec > 2) ? $dec : 2;
+ } else {
+ ($dec) = ($form->{"sellprice_$i"} =~ /\.(\d+)/);
+ $dec = length $dec;
+ $decimalplaces1 = ($dec > 2) ? $dec : 2;
+
+ $form->{"sellprice_$i"} /= $exchangerate;
+ }
+
+ ($dec) = ($form->{"lastcost_$i"} =~ /\.(\d+)/);
+ $dec = length $dec;
+ $decimalplaces2 = ($dec > 2) ? $dec : 2;
+
+ for (qw(listprice lastcost)) { $form->{"${_}_$i"} /= $exchangerate }
+
+ $amount = $form->{"sellprice_$i"} * $form->{"qty_$i"} * (1 - $form->{"discount_$i"} / 100);
+ for (split / /, $form->{taxaccounts}) { $form->{"${_}_base"} = 0 }
+ for (split / /, $form->{"taxaccounts_$i"}) { $form->{"${_}_base"} += $amount }
+ if (!$form->{taxincluded}) {
+ for (split / /, $form->{taxaccounts}) { $amount += ($form->{"${_}_base"} * $form->{"${_}_rate"}) }
+ }
+
+ $form->{creditremaining} -= $amount;
+
+ for (qw(sellprice listprice)) { $form->{"${_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}, $decimalplaces1) }
+ $form->{"lastcost_$i"} = $form->format_amount(\%myconfig, $form->{"lastcost_$i"}, $decimalplaces2);
+
+ $form->{"oldqty_$i"} = $form->{"qty_$i"};
+ for (qw(qty discount)) { $form->{"{_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}) }
+
+ }
+
+ &display_form;
+
+ } else {
+ # ok, so this is a new part
+ # ask if it is a part or service item
+
+ if ($form->{"partsgroup_$i"} && ($form->{"partsnumber_$i"} eq "") && ($form->{"description_$i"} eq "")) {
+ $form->{rowcount}--;
+ &display_form;
+ } else {
+
+ $form->{"id_$i"} = 0;
+ $form->{"unit_$i"} = $locale->text('ea');
+ &new_item;
+
+ }
+ }
+ }
+
+}
+
+
+
+sub search {
+
+ $requiredby = $locale->text('Required by');
+
+ if ($form->{type} eq 'purchase_order') {
+ $form->{title} = $locale->text('Purchase Orders');
+ $form->{vc} = 'vendor';
+ $ordlabel = $locale->text('Order Number');
+ $ordnumber = 'ordnumber';
+ $employee = $locale->text('Employee');
+ }
+
+ if ($form->{type} eq 'receive_order') {
+ $form->{title} = $locale->text('Receive Merchandise');
+ $form->{vc} = 'vendor';
+ $ordlabel = $locale->text('Order Number');
+ $ordnumber = 'ordnumber';
+ $employee = $locale->text('Employee');
+ }
+
+ if ($form->{type} eq 'generate_sales_order') {
+ $form->{title} = $locale->text('Generate Sales Order from Purchase Orders');
+ $form->{vc} = 'vendor';
+ $ordlabel = $locale->text('Order Number');
+ $ordnumber = 'ordnumber';
+ $employee = $locale->text('Employee');
+ }
+
+ if ($form->{type} eq 'consolidate_sales_order') {
+ $form->{title} = $locale->text('Consolidate Sales Orders');
+ $form->{vc} = 'customer';
+ $ordlabel = $locale->text('Order Number');
+ $ordnumber = 'ordnumber';
+ $employee = $locale->text('Salesperson');
+ }
+
+ if ($form->{type} eq 'request_quotation') {
+ $form->{title} = $locale->text('Request for Quotations');
+ $form->{vc} = 'vendor';
+ $ordlabel = $locale->text('RFQ Number');
+ $ordnumber = 'quonumber';
+ $employee = $locale->text('Employee');
+ }
+
+ if ($form->{type} eq 'sales_order') {
+ $form->{title} = $locale->text('Sales Orders');
+ $form->{vc} = 'customer';
+ $ordlabel = $locale->text('Order Number');
+ $ordnumber = 'ordnumber';
+ $employee = $locale->text('Salesperson');
+ }
+
+ if ($form->{type} eq 'ship_order') {
+ $form->{title} = $locale->text('Ship Merchandise');
+ $form->{vc} = 'customer';
+ $ordlabel = $locale->text('Order Number');
+ $ordnumber = 'ordnumber';
+ $employee = $locale->text('Salesperson');
+ }
+
+ if ($form->{type} eq 'sales_quotation') {
+ $form->{title} = $locale->text('Quotations');
+ $form->{vc} = 'customer';
+ $ordlabel = $locale->text('Quotation Number');
+ $ordnumber = 'quonumber';
+ $employee = $locale->text('Employee');
+ $requiredby = $locale->text('Valid until');
+ }
+
+ if ($form->{type} eq 'generate_purchase_order') {
+ $form->{title} = $locale->text('Generate Purchase Orders from Sales Order');
+ $form->{vc} = 'customer';
+ $ordlabel = $locale->text('Order Number');
+ $ordnumber = 'ordnumber';
+ $employee = $locale->text('Salesperson');
+ }
+
+ if ($form->{type} eq 'consolidate_purchase_order') {
+ $form->{title} = $locale->text('Consolidate Purchase Orders');
+ $form->{vc} = 'vendor';
+ $ordlabel = $locale->text('Order Number');
+ $ordnumber = 'ordnumber';
+ $employee = $locale->text('Employee');
+ }
+
+ $l_employee = qq|<input name="l_employee" class=checkbox type=checkbox value=Y> $employee|;
+ $l_manager = qq|<input name="l_manager" class=checkbox type=checkbox value=Y> |.$locale->text('Manager');
+
+ if ($form->{type} =~ /(ship|receive)_order/) {
+ OE->get_warehouses(\%myconfig, \%$form);
+
+ $l_manager = "";
+
+ # warehouse
+ if (@{ $form->{all_warehouse} }) {
+ $form->{selectwarehouse} = "<option>\n";
+ $form->{warehouse} = qq|$form->{warehouse}--$form->{warehouse_id}|;
+
+ for (@{ $form->{all_warehouse} }) { $form->{selectwarehouse} .= qq|<option value="$_->{description}--$_->{id}">$_->{description}\n| }
+
+ $warehouse = qq|
+ <tr>
+ <th align=right>|.$locale->text('Warehouse').qq|</th>
+ <td><select name=warehouse>$form->{selectwarehouse}</select></td>
+ <input type=hidden name=selectwarehouse value="|.
+ $form->escape($form->{selectwarehouse},1).qq|">
+ </tr>
+|;
+
+ }
+ }
+
+ # setup vendor / customer selection
+ $form->all_vc(\%myconfig, $form->{vc}, ($form->{vc} eq 'customer') ? "AR" : "AP");
+
+ for (@{ $form->{"all_$form->{vc}"} }) { $vc .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+
+ $selectemployee = "";
+ if (@{ $form->{all_employee} }) {
+ $selectemployee = "<option>\n";
+ for (@{ $form->{all_employee} }) { $selectemployee .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+
+ $selectemployee = qq|
+ <tr>
+ <th align=right>$employee</th>
+ <td colspan=3><select name=employee>$selectemployee</select></td>
+ </tr>
+|;
+ } else {
+ $l_employee = $l_manager = "";
+ }
+
+ $vclabel = ucfirst $form->{vc};
+ $vclabel = $locale->text($vclabel);
+
+# $locale->text('Vendor')
+# $locale->text('Customer')
+
+ $vc = ($vc) ? qq|<select name=$form->{vc}><option>\n$vc</select>| : qq|<input name=$form->{vc} size=35>|;
+
+ # departments
+ if (@{ $form->{all_department} }) {
+ $form->{selectdepartment} = "<option>\n";
+
+ for (@{ $form->{all_department} }) { $form->{selectdepartment} .= qq|<option value="$_->{description}--$_->{id}">$_->{description}\n| }
+ }
+
+ $department = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Department').qq|</th>
+ <td colspan=3><select name=department>$form->{selectdepartment}</select></td>
+ </tr>
+| if $form->{selectdepartment};
+
+ if ($form->{type} =~ /(consolidate.*|generate.*|ship|receive)_order/) {
+
+ $openclosed = qq|
+ <input type=hidden name="open" value=1>
+|;
+
+ } else {
+
+ $openclosed = qq|
+ <tr>
+ <td nowrap><input name="open" class=checkbox type=checkbox value=1 checked> |.$locale->text('Open').qq|</td>
+ <td nowrap><input name="closed" class=checkbox type=checkbox value=1 $form->{closed}> |.$locale->text('Closed').qq|</td>
+ </tr>
+|;
+ }
+
+ if (@{ $form->{all_years} }) {
+ # accounting years
+ $form->{selectaccountingyear} = "<option>\n";
+ for (@{ $form->{all_years} }) { $form->{selectaccountingyear} .= qq|<option>$_\n| }
+ $form->{selectaccountingmonth} = "<option>\n";
+ for (sort keys %{ $form->{all_month} }) { $form->{selectaccountingmonth} .= qq|<option value=$_>|.$locale->text($form->{all_month}{$_}).qq|\n| }
+
+ $selectfrom = qq|
+ <tr>
+ <th align=right>|.$locale->text('Period').qq|</th>
+ <td colspan=3>
+ <select name=month>$form->{selectaccountingmonth}</select>
+ <select name=year>$form->{selectaccountingyear}</select>
+ <input name=interval class=radio type=radio value=0 checked>&nbsp;|.$locale->text('Current').qq|
+ <input name=interval class=radio type=radio value=1>&nbsp;|.$locale->text('Month').qq|
+ <input name=interval class=radio type=radio value=3>&nbsp;|.$locale->text('Quarter').qq|
+ <input name=interval class=radio type=radio value=12>&nbsp;|.$locale->text('Year').qq|
+ </td>
+ </tr>
+|;
+ }
+
+ if ($form->{type} =~ /_order/) {
+ $ponumber = qq|
+ <tr>
+ <th align=right>|.$locale->text('PO Number').qq|</th>
+ <td colspan=3><input name="ponumber" size=20></td>
+ </tr>
+|;
+
+
+ $l_ponumber = qq|<input name="l_ponumber" class=checkbox type=checkbox value=Y> |.$locale->text('PO Number');
+ }
+
+ @a = ();
+ push @a, qq|<input name="l_runningnumber" class=checkbox type=checkbox value=Y> |.$locale->text('No.');
+ push @a, qq|<input name="l_id" class=checkbox type=checkbox value=Y> |.$locale->text('ID');
+ push @a, qq|<input name="l_$ordnumber" class=checkbox type=checkbox value=Y checked> $ordlabel|;
+ push @a, qq|<input name="l_transdate" class=checkbox type=checkbox value=Y checked> |.$locale->text('Date');
+ push @a, $l_ponumber if $l_ponumber;
+ push @a, qq|<input name="l_reqdate" class=checkbox type=checkbox value=Y checked> $requiredby|;
+ push @a, qq|<input name="l_name" class=checkbox type=checkbox value=Y checked> $vclabel|;
+ push @a, $l_employee if $l_employee;
+ push @a, $l_manager if $l_manager;
+ push @a, qq|<input name="l_shipvia" class=checkbox type=checkbox value=Y> |.$locale->text('Ship via');
+ push @a, qq|<input name="l_netamount" class=checkbox type=checkbox value=Y> |.$locale->text('Amount');
+ push @a, qq|<input name="l_tax" class=checkbox type=checkbox value=Y> |.$locale->text('Tax');
+ push @a, qq|<input name="l_amount" class=checkbox type=checkbox value=Y checked> |.$locale->text('Total');
+ push @a, qq|<input name="l_curr" class=checkbox type=checkbox value=Y checked> |.$locale->text('Currency');
+
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right>$vclabel</th>
+ <td colspan=3>$vc</td>
+ </tr>
+ $warehouse
+ $department
+ $selectemployee
+ <tr>
+ <th align=right>$ordlabel</th>
+ <td colspan=3><input name="$ordnumber" size=20></td>
+ </tr>
+ $ponumber
+ <tr>
+ <th align=right>|.$locale->text('Ship via').qq|</th>
+ <td colspan=3><input name="shipvia" size=40></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Description').qq|</th>
+ <td colspan=3><input name="description" size=40></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('From').qq|</th>
+ <td><input name=transdatefrom size=11 title="$myconfig{dateformat}"></td>
+ <th align=right>|.$locale->text('To').qq|</th>
+ <td><input name=transdateto size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+ <input type=hidden name=sort value=transdate>
+ $selectfrom
+ <tr>
+ <th align=right>|.$locale->text('Include in Report').qq|</th>
+ <td colspan=3>
+ <table>
+ $openclosed
+|;
+
+ while (@a) {
+ for (1 .. 5) {
+ print qq|<td nowrap>|. shift @a;
+ print qq|</td>\n|;
+ }
+ print qq|</tr>\n|;
+ }
+
+ print qq|
+ <tr>
+ <td><input name="l_subtotal" class=checkbox type=checkbox value=Y> |.$locale->text('Subtotal').qq|</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr><td colspan=4><hr size=3 noshade></td></tr>
+</table>
+
+<br>
+<input type=hidden name=nextsub value=transactions>
+|;
+
+ $form->hide_form(qw(path login sessionid vc type));
+
+ print qq|
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">
+</form>
+|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+</body>
+</html>
+|;
+
+}
+
+
+sub transactions {
+
+ # split vendor / customer
+ ($form->{$form->{vc}}, $form->{"$form->{vc}_id"}) = split(/--/, $form->{$form->{vc}});
+
+ OE->transactions(\%myconfig, \%$form);
+
+ $ordnumber = ($form->{type} =~ /_order/) ? 'ordnumber' : 'quonumber';
+ $name = $form->escape($form->{$form->{vc}});
+ $name .= qq|--$form->{"$form->{vc}_id"}| if $form->{"$form->{vc}_id"};
+
+ # construct href
+ $href = qq|$form->{script}?action=transactions|;
+ for ("oldsort", "direction", "path", "type", "vc", "login", "sessionid", "transdatefrom", "transdateto", "open", "closed") { $href .= qq|&$_=$form->{$_}| }
+ for ("$ordnumber", "department", "warehouse", "shipvia", "ponumber", "description", "employee") { $href .= qq|&$_=|.$form->escape($form->{$_}) }
+ $href .= "&$form->{vc}=$name";
+
+ # construct callback
+ $name = $form->escape($form->{$form->{vc}},1);
+ $name .= qq|--$form->{"$form->{vc}_id"}| if $form->{"$form->{vc}_id"};
+
+ # flip direction
+ $form->sort_order();
+
+ $callback = qq|$form->{script}?action=transactions|;
+ for ("oldsort", "direction", "path", "type", "vc", "login", "sessionid", "transdatefrom", "transdateto", "open", "closed") { $callback .= qq|&$_=$form->{$_}| }
+ for ("$ordnumber", "department", "warehouse", "shipvia", "ponumber", "description", "employee") { $callback .= qq|&$_=|.$form->escape($form->{$_},1) }
+ $callback .= "&$form->{vc}=$name";
+
+
+ @columns = $form->sort_columns("transdate", "reqdate", "id", "$ordnumber", "ponumber", "name", "netamount", "tax", "amount", "curr", "employee", "manager", "shipvia", "open", "closed");
+ unshift @columns, "runningnumber";
+
+ $form->{l_open} = $form->{l_closed} = "Y" if ($form->{open} && $form->{closed}) ;
+
+ for (@columns) {
+ if ($form->{"l_$_"} eq "Y") {
+ push @column_index, $_;
+
+ if ($form->{l_curr} && $_ =~ /(amount|tax)/) {
+ push @column_index, "fx_$_";
+ }
+
+ # add column to href and callback
+ $callback .= "&l_$_=Y";
+ $href .= "&l_$_=Y";
+ }
+ }
+
+ if ($form->{l_subtotal} eq 'Y') {
+ $callback .= "&l_subtotal=Y";
+ $href .= "&l_subtotal=Y";
+ }
+
+ $requiredby = $locale->text('Required by');
+
+ $i = 1;
+ if ($form->{vc} eq 'vendor') {
+ if ($form->{type} eq 'receive_order') {
+ $form->{title} = $locale->text('Receive Merchandise');
+ }
+ if ($form->{type} eq 'purchase_order') {
+ $form->{title} = $locale->text('Purchase Orders');
+ if ($myconfig{acs} !~ /Order Entry--Order Entry/) {
+ $button{'Order Entry--Purchase Order'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Purchase Order').qq|"> |;
+ $button{'Order Entry--Purchase Order'}{order} = $i++;
+ }
+ }
+ if ($form->{type} eq 'generate_sales_order') {
+ $form->{title} = $locale->text('Purchase Orders');
+ $form->{type} = "purchase_order";
+ unshift @column_index, "ndx";
+ if ($myconfig{acs} !~ /Order Entry--Order Entry/) {
+ $button{'Order Entry--Sales Order'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Generate Sales Order').qq|"> |;
+ $button{'Order Entry--Sales Order'}{order} = $i++;
+ }
+ }
+ if ($form->{type} eq 'consolidate_purchase_order') {
+ $form->{title} = $locale->text('Purchase Orders');
+ $form->{type} = "purchase_order";
+ unshift @column_index, "ndx";
+ if ($myconfig{acs} !~ /Order Entry--Order Entry/) {
+ $button{'Order Entry--Purchase Order'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Consolidate Orders').qq|"> |;
+ $button{'Order Entry--Purchase Order'}{order} = $i++;
+ }
+ }
+
+ if ($form->{type} eq 'request_quotation') {
+ $form->{title} = $locale->text('Request for Quotations');
+ $quotation = $locale->text('RFQ');
+
+ if ($myconfig{acs} !~ /Quotations--Quotations/) {
+ $button{'Quotations--RFQ'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('RFQ ').qq|"> |;
+ $button{'Quotations--RFQ'}{order} = $i++;
+ }
+
+ }
+ $name = $locale->text('Vendor');
+ $employee = $locale->text('Employee');
+ }
+ if ($form->{vc} eq 'customer') {
+ if ($form->{type} eq 'sales_order') {
+ $form->{title} = $locale->text('Sales Orders');
+ $employee = $locale->text('Salesperson');
+
+ if ($myconfig{acs} !~ /Order Entry--Order Entry/) {
+ $button{'Order Entry--Sales Order'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Sales Order').qq|"> |;
+ $button{'Order Entry--Sales Order'}{order} = $i++;
+ }
+
+ }
+ if ($form->{type} eq 'generate_purchase_order') {
+ $form->{title} = $locale->text('Sales Orders');
+ $form->{type} = "sales_order";
+ $employee = $locale->text('Salesperson');
+ unshift @column_index, "ndx";
+ if ($myconfig{acs} !~ /Order Entry--Order Entry/) {
+ $button{'Order Entry--Purchase Order'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Generate Purchase Orders').qq|"> |;
+ $button{'Order Entry--Purchase Order'}{order} = $i++;
+ }
+ }
+ if ($form->{type} eq 'consolidate_sales_order') {
+ $form->{title} = $locale->text('Sales Orders');
+ $form->{type} = "sales_order";
+ unshift @column_index, "ndx";
+ if ($myconfig{acs} !~ /Order Entry--Order Entry/) {
+ $button{'Order Entry--Sales Order'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Consolidate Orders').qq|"> |;
+ $button{'Order Entry--Sales Order'}{order} = $i++;
+ }
+ }
+
+ if ($form->{type} eq 'ship_order') {
+ $form->{title} = $locale->text('Ship Merchandise');
+ $employee = $locale->text('Salesperson');
+ }
+ if ($form->{type} eq 'sales_quotation') {
+ $form->{title} = $locale->text('Quotations');
+ $employee = $locale->text('Employee');
+ $requiredby = $locale->text('Valid until');
+ $quotation = $locale->text('Quotation');
+
+ if ($myconfig{acs} !~ /Quotations--Quotations/) {
+ $button{'Quotations--Quotation'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Quotation ').qq|"> |;
+ $button{'Quotations--Quotation'}{order} = $i++;
+ }
+
+ }
+ $name = $locale->text('Customer');
+ }
+
+ for (split /;/, $myconfig{acs}) { delete $button{$_} }
+
+ $column_header{ndx} = qq|<th class=listheading>&nbsp;</th>|;
+ $column_header{runningnumber} = qq|<th class=listheading>&nbsp;</th>|;
+ $column_header{id} = qq|<th><a class=listheading href=$href&sort=id>|.$locale->text('ID').qq|</a></th>|;
+ $column_header{transdate} = qq|<th><a class=listheading href=$href&sort=transdate>|.$locale->text('Date').qq|</a></th>|;
+ $column_header{reqdate} = qq|<th><a class=listheading href=$href&sort=reqdate>$requiredby</a></th>|;
+ $column_header{ordnumber} = qq|<th><a class=listheading href=$href&sort=ordnumber>|.$locale->text('Order').qq|</a></th>|;
+ $column_header{ponumber} = qq|<th><a class=listheading href=$href&sort=ponumber>|.$locale->text('PO Number').qq|</a></th>|;
+ $column_header{quonumber} = qq|<th><a class=listheading href=$href&sort=quonumber>$quotation</a></th>|;
+ $column_header{name} = qq|<th><a class=listheading href=$href&sort=name>$name</a></th>|;
+ $column_header{netamount} = qq|<th class=listheading>|.$locale->text('Amount').qq|</th>|;
+ $column_header{tax} = qq|<th class=listheading>|.$locale->text('Tax').qq|</th>|;
+ $column_header{amount} = qq|<th class=listheading>|.$locale->text('Total').qq|</th>|;
+ $column_header{curr} = qq|<th><a class=listheading href=$href&sort=curr>|.$locale->text('Curr').qq|</a></th>|;
+ $column_header{shipvia} = qq|<th><a class=listheading href=$href&sort=shipvia>|.$locale->text('Ship via').qq|</a></th>|;
+ $column_header{open} = qq|<th class=listheading>|.$locale->text('O').qq|</th>|;
+ $column_header{closed} = qq|<th class=listheading>|.$locale->text('C').qq|</th>|;
+
+ $column_header{employee} = qq|<th><a class=listheading href=$href&sort=employee>$employee</a></th>|;
+ $column_header{manager} = qq|<th><a class=listheading href=$href&sort=manager>|.$locale->text('Manager').qq|</a></th>|;
+
+ for (qw(amount tax netamount)) { $column_header{"fx_$_"} = "<th>&nbsp;</th>" }
+
+ if ($form->{$form->{vc}}) {
+ $option = $locale->text(ucfirst $form->{vc});
+ $option .= " : $form->{$form->{vc}}";
+ }
+ if ($form->{warehouse}) {
+ ($warehouse) = split /--/, $form->{warehouse};
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Warehouse');
+ $option .= " : $warehouse";
+ }
+ if ($form->{department}) {
+ $option .= "\n<br>" if ($option);
+ ($department) = split /--/, $form->{department};
+ $option .= $locale->text('Department')." : $department";
+ }
+ if ($form->{employee}) {
+ ($employee) = split /--/, $form->{employee};
+ $option .= "\n<br>" if ($option);
+ if ($form->{vc} eq 'customer') {
+ $option .= $locale->text('Salesperson');
+ } else {
+ $option .= $locale->text('Employee');
+ }
+ $option .= " : $employee";
+ }
+ if ($form->{ordnumber}) {
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Order Number')." : $form->{ordnumber}";
+ }
+ if ($form->{quonumber}) {
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Quotation Number')." : $form->{quonumber}";
+ }
+ if ($form->{ponumber}) {
+ $option = $locale->text('PO Number');
+ $option .= " : $form->{ponumber}";
+ }
+ if ($form->{shipvia}) {
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Ship via')." : $form->{shipvia}";
+ }
+ if ($form->{description}) {
+ $option .= "\n<br>" if $option;
+ $option .= $locale->text('Description')." : $form->{description}";
+ }
+ if ($form->{transdatefrom}) {
+ $option .= "\n<br>".$locale->text('From')." ".$locale->date(\%myconfig, $form->{transdatefrom}, 1);
+ }
+ if ($form->{transdateto}) {
+ $option .= "\n<br>".$locale->text('To')." ".$locale->date(\%myconfig, $form->{transdateto}, 1);
+ }
+ if ($form->{open}) {
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Open');
+ }
+ if ($form->{closed}) {
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Closed');
+ }
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$option</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>|;
+
+ for (@column_index) { print "\n$column_header{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ # add sort and escape callback
+ $callback .= "&sort=$form->{sort}";
+ $form->{callback} = $callback;
+ $callback = $form->escape($callback);
+
+ # flip direction
+ $direction = ($form->{direction} eq 'ASC') ? "ASC" : "DESC";
+ $href =~ s/&direction=(\w+)&/&direction=$direction&/;
+
+ if (@{ $form->{OE} }) {
+ $sameitem = $form->{OE}->[0]->{$form->{sort}};
+ }
+
+ $action = "edit";
+ $action = "ship_receive" if ($form->{type} =~ /(ship|receive)_order/);
+
+ $warehouse = $form->escape($form->{warehouse});
+
+ $i = 0;
+ foreach $oe (@{ $form->{OE} }) {
+
+ $i++;
+
+ if ($form->{l_subtotal} eq 'Y') {
+ if ($sameitem ne $oe->{$form->{sort}}) {
+ &subtotal;
+ $sameitem = $oe->{$form->{sort}};
+ }
+ }
+
+ if ($form->{l_curr}) {
+ for (qw(netamount amount)) { $oe->{"fx_$_"} = $oe->{$_} }
+ $oe->{fx_tax} = $oe->{fx_amount} - $oe->{fx_netamount};
+ for (qw(netamount amount)) { $oe->{$_} *= $oe->{exchangerate} }
+
+ for (qw(netamount amount)) { $column_data{"fx_$_"} = "<td align=right>".$form->format_amount(\%myconfig, $oe->{"fx_$_"}, 2, "&nbsp;")."</td>" }
+ $column_data{fx_tax} = "<td align=right>".$form->format_amount(\%myconfig, $oe->{fx_amount} - $oe->{fx_netamount}, 2, "&nbsp;")."</td>";
+
+ $totalfxnetamount += $oe->{fx_netamount};
+ $totalfxamount += $oe->{fx_amount};
+
+ $subtotalfxnetamount += $oe->{fx_netamount};
+ $subtotalfxamount += $oe->{fx_amount};
+ }
+
+ for (qw(netamount amount)) { $column_data{$_} = "<td align=right>".$form->format_amount(\%myconfig, $oe->{$_}, 2, "&nbsp;")."</td>" }
+ $column_data{tax} = "<td align=right>".$form->format_amount(\%myconfig, $oe->{amount} - $oe->{netamount}, 2, "&nbsp;")."</td>";
+
+ $totalnetamount += $oe->{netamount};
+ $totalamount += $oe->{amount};
+
+ $subtotalnetamount += $oe->{netamount};
+ $subtotalamount += $oe->{amount};
+
+
+ $column_data{id} = "<td>$oe->{id}</td>";
+ $column_data{transdate} = "<td>$oe->{transdate}&nbsp;</td>";
+ $column_data{reqdate} = "<td>$oe->{reqdate}&nbsp;</td>";
+
+ $column_data{runningnumber} = qq|<td align=right>$i</td>|;
+ $column_data{ndx} = qq|<td><input name="ndx_$i" class=checkbox type=checkbox value=$oe->{id} checked></td>|;
+ $column_data{$ordnumber} = "<td><a href=$form->{script}?path=$form->{path}&action=$action&type=$form->{type}&id=$oe->{id}&warehouse=$warehouse&vc=$form->{vc}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$oe->{$ordnumber}</a></td>";
+
+ $name = $form->escape($oe->{name});
+ $column_data{name} = qq|<td><a href=ct.pl?path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&action=edit&id=$oe->{"$form->{vc}_id"}&db=$form->{vc}&callback=$callback>$oe->{name}</a></td>|;
+
+ for (qw(employee manager shipvia curr ponumber)) { $column_data{$_} = "<td>$oe->{$_}&nbsp;</td>" }
+
+ if ($oe->{closed}) {
+ $column_data{closed} = "<td align=center>*</td>";
+ $column_data{open} = "<td>&nbsp;</td>";
+ } else {
+ $column_data{closed} = "<td>&nbsp;</td>";
+ $column_data{open} = "<td align=center>*</td>";
+ }
+
+ $j++; $j %= 2;
+ print "
+ <tr class=listrow$j>";
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ }
+
+ if ($form->{l_subtotal} eq 'Y') {
+ &subtotal;
+ }
+
+ # print totals
+ print qq|
+ <tr class=listtotal>|;
+
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $column_data{netamount} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totalnetamount, 2, "&nbsp;")."</th>";
+ $column_data{tax} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totalamount - $totalnetamount, 2, "&nbsp;")."</th>";
+ $column_data{amount} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totalamount, 2, "&nbsp;")."</th>";
+
+ if ($form->{l_curr} && $form->{sort} eq 'curr' && $form->{l_subtotal}) {
+ $column_data{fx_netamount} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totalfxnetamount, 2, "&nbsp;")."</th>";
+ $column_data{fx_tax} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totalfxamount - $totalfxnetamount, 2, "&nbsp;")."</th>";
+ $column_data{fx_amount} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totalfxamount, 2, "&nbsp;")."</th>";
+ }
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+ </td>
+ </table>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+|;
+
+ $form->hide_form(qw(callback type vc path login sessionid department ordnumber ponumber shipvia));
+
+ print qq|
+
+<input type=hidden name=rowcount value=$i>
+
+<input type=hidden name=$form->{vc} value="$form->{$form->{vc}}">
+<input type=hidden name="$form->{vc}_id" value=$form->{"$form->{vc}_id"}>
+
+|;
+
+ if ($form->{type} !~ /(ship|receive)_order/) {
+ for (sort { $a->{order} <=> $b->{order} } %button) { print $_->{code} }
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+
+sub subtotal {
+
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $column_data{netamount} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotalnetamount, 2, "&nbsp;")."</th>";
+ $column_data{tax} = "<td class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotalamount - $subtotalnetamount, 2, "&nbsp;")."</th>";
+ $column_data{amount} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotalamount, 2, "&nbsp;")."</th>";
+
+ if ($form->{l_curr} && $form->{sort} eq 'curr' && $form->{l_subtotal}) {
+ $column_data{fx_netamount} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotalfxnetamount, 2, "&nbsp;")."</th>";
+ $column_data{fx_tax} = "<td class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotalfxamount - $subtotalfxnetamount, 2, "&nbsp;")."</th>";
+ $column_data{fx_amount} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotalfxamount, 2, "&nbsp;")."</th>";
+ }
+
+ $subtotalnetamount = 0;
+ $subtotalamount = 0;
+
+ $subtotalfxnetamount = 0;
+ $subtotalfxamount = 0;
+
+ print "
+ <tr class=listsubtotal>
+";
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+}
+
+
+sub save {
+
+ if ($form->{type} =~ /_order$/) {
+ $msg = $locale->text('Order Date missing!');
+ } else {
+ $msg = $locale->text('Quotation Date missing!');
+ }
+
+ $form->isblank("transdate", $msg);
+
+ $msg = ucfirst $form->{vc};
+ $form->isblank($form->{vc}, $locale->text($msg . " missing!"));
+
+# $locale->text('Customer missing!');
+# $locale->text('Vendor missing!');
+
+ $form->isblank("exchangerate", $locale->text('Exchange rate missing!')) if ($form->{currency} ne $form->{defaultcurrency});
+
+ &validate_items;
+
+ # if the name changed get new values
+ if (&check_name($form->{vc})) {
+ &update;
+ exit;
+ }
+
+
+ # this is for the internal notes section for the [email] Subject
+ if ($form->{type} =~ /_order$/) {
+ if ($form->{type} eq 'sales_order') {
+ $form->{label} = $locale->text('Sales Order');
+
+ $numberfld = "sonumber";
+ $ordnumber = "ordnumber";
+ } else {
+ $form->{label} = $locale->text('Purchase Order');
+
+ $numberfld = "ponumber";
+ $ordnumber = "ordnumber";
+ }
+
+ $err = $locale->text('Cannot save order!');
+
+ } else {
+ if ($form->{type} eq 'sales_quotation') {
+ $form->{label} = $locale->text('Quotation');
+
+ $numberfld = "sqnumber";
+ $ordnumber = "quonumber";
+ } else {
+ $form->{label} = $locale->text('Request for Quotation');
+
+ $numberfld = "rfqnumber";
+ $ordnumber = "quonumber";
+ }
+
+ $err = $locale->text('Cannot save quotation!');
+
+ }
+
+ if (! $form->{repost}) {
+ if ($form->{id}) {
+ &repost("Save");
+ exit;
+ }
+ }
+
+ if (OE->save(\%myconfig, \%$form)) {
+ $form->redirect($locale->text('Order saved!'));
+ } else {
+ $form->error($err);
+ }
+
+}
+
+
+sub print_and_save {
+
+ $form->error($locale->text('Select postscript or PDF!')) if $form->{format} !~ /(postscript|pdf)/;
+ $form->error($locale->text('Select a Printer!')) if $form->{media} eq 'screen';
+
+ $old_form = new Form;
+ $form->{display_form} = "save";
+ for (keys %$form) { $old_form->{$_} = $form->{$_} }
+ $old_form->{rowcount}++;
+
+ &print_form($old_form);
+
+}
+
+
+sub delete {
+
+ $form->header;
+
+ if ($form->{type} =~ /_order$/) {
+ $msg = $locale->text('Are you sure you want to delete Order Number');
+ $ordnumber = 'ordnumber';
+ } else {
+ $msg = $locale->text('Are you sure you want to delete Quotation Number');
+ $ordnumber = 'quonumber';
+ }
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+|;
+
+ $form->{action} = "yes";
+ $form->hide_form;
+
+ print qq|
+<h2 class=confirm>|.$locale->text('Confirm!').qq|</h2>
+
+<h4>$msg $form->{$ordnumber}</h4>
+<p>
+<input name=action class=submit type=submit value="|.$locale->text('Yes').qq|">
+</form>
+
+</body>
+</html>
+|;
+
+
+}
+
+
+
+sub yes {
+
+ if ($form->{type} =~ /_order$/) {
+ $msg = $locale->text('Order deleted!');
+ $err = $locale->text('Cannot delete order!');
+ } else {
+ $msg = $locale->text('Quotation deleted!');
+ $err = $locale->text('Cannot delete quotation!');
+ }
+
+ if (OE->delete(\%myconfig, \%$form, $spool)) {
+ $form->redirect($msg);
+ } else {
+ $form->error($err);
+ }
+
+}
+
+
+sub vendor_invoice { &invoice };
+sub sales_invoice { &invoice };
+
+sub invoice {
+
+ if ($form->{type} =~ /_order$/) {
+ $form->isblank("ordnumber", $locale->text('Order Number missing!'));
+ $form->isblank("transdate", $locale->text('Order Date missing!'));
+
+ } else {
+ $form->isblank("quonumber", $locale->text('Quotation Number missing!'));
+ $form->isblank("transdate", $locale->text('Quotation Date missing!'));
+ $form->{ordnumber} = "";
+ }
+
+ # if the name changed get new values
+ if (&check_name($form->{vc})) {
+ &update;
+ exit;
+ }
+
+
+ if ($form->{type} =~ /_order/ && $form->{currency} ne $form->{defaultcurrency}) {
+ # check if we need a new exchangerate
+ $buysell = ($form->{type} eq 'sales_order') ? "buy" : "sell";
+
+ $orddate = $form->current_date(\%myconfig);
+ $exchangerate = $form->check_exchangerate(\%myconfig, $form->{currency}, $orddate, $buysell);
+
+ if (!$exchangerate) {
+ &backorder_exchangerate($orddate, $buysell);
+ exit;
+ }
+ }
+
+
+ # close orders/quotations
+ $form->{closed} = 1;
+
+ OE->save(\%myconfig, \%$form);
+
+ $form->{transdate} = $form->current_date(\%myconfig);
+ $form->{duedate} = $form->current_date(\%myconfig, $form->{transdate}, $form->{terms} * 1);
+
+ $form->{id} = '';
+ $form->{closed} = 0;
+ $form->{rowcount}--;
+ $form->{shipto} = 1;
+
+
+ if ($form->{type} =~ /_order$/) {
+ $form->{exchangerate} = $exchangerate;
+ &create_backorder;
+ }
+
+
+ if ($form->{type} eq 'purchase_order' || $form->{type} eq 'request_quotation') {
+ $form->{title} = $locale->text('Add Vendor Invoice');
+ $form->{script} = 'ir.pl';
+
+ $script = "ir";
+ $buysell = 'sell';
+ }
+ if ($form->{type} eq 'sales_order' || $form->{type} eq 'sales_quotation') {
+ $form->{title} = $locale->text('Add Sales Invoice');
+ $form->{script} = 'is.pl';
+ $script = "is";
+ $buysell = 'buy';
+ }
+
+ for (qw(id subject message cc bcc printed emailed queued)) { delete $form->{$_} }
+ $form->{$form->{vc}} =~ s/--.*//g;
+ $form->{type} = "invoice";
+
+ # locale messages
+ $locale = new Locale "$myconfig{countrycode}", "$script";
+
+ require "$form->{path}/$form->{script}";
+
+ # customized scripts
+ if (-f "$form->{path}/custom_$form->{script}") {
+ eval { require "$form->{path}/custom_$form->{script}"; };
+ }
+
+ # customized scripts for login
+ if (-f "$form->{path}/$form->{login}_$form->{script}") {
+ eval { require "$form->{path}/$form->{login}_$form->{script}"; };
+ }
+
+ for ("$form->{vc}", "currency") { $form->{"select$_"} = "" }
+ for (qw(currency oldcurrency employee department intnotes notes taxincluded)) { $temp{$_} = $form->{$_} }
+
+ &invoice_links;
+
+ $form->{creditremaining} -= ($form->{oldinvtotal} - $form->{ordtotal});
+
+ &prepare_invoice;
+
+ for (keys %temp) { $form->{$_} = $temp{$_} }
+
+ $form->{exchangerate} = "";
+ $form->{forex} = "";
+ $form->{exchangerate} = $exchangerate if ($form->{forex} = ($exchangerate = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{transdate}, $buysell)));
+
+ for $i (1 .. $form->{rowcount}) {
+ $form->{"deliverydate_$i"} = $form->{"reqdate_$i"};
+ for (qw(qty sellprice discount)) { $form->{"${_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}) }
+ }
+
+ for (qw(id subject message cc bcc printed emailed queued audittrail)) { delete $form->{$_} }
+
+ &display_form;
+
+}
+
+
+
+sub backorder_exchangerate {
+ my ($orddate, $buysell) = @_;
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+|;
+
+ # delete action variable
+ for (qw(action nextsub exchangerate)) { delete $form->{$_} }
+
+ $form->hide_form;
+
+ $form->{title} = $locale->text('Add Exchange Rate');
+
+ print qq|
+
+<input type=hidden name=exchangeratedate value=$orddate>
+<input type=hidden name=buysell value=$buysell>
+
+<table width=100%>
+ <tr><th class=listtop>$form->{title}</th></tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right>|.$locale->text('Currency').qq|</th>
+ <td>$form->{currency}</td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Date').qq|</th>
+ <td>$orddate</td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Exchange Rate').qq|</th>
+ <td><input name=exchangerate size=11></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+
+<hr size=3 noshade>
+
+<br>
+<input type=hidden name=nextsub value=save_exchangerate>
+
+<input name=action class=submit type=submit value="|.$locale->text('Continue').qq|">
+
+</form>
+
+</body>
+</html>
+|;
+
+
+}
+
+
+sub save_exchangerate {
+
+ $form->isblank("exchangerate", $locale->text('Exchange rate missing!'));
+ $form->{exchangerate} = $form->parse_amount(\%myconfig, $form->{exchangerate});
+ $form->save_exchangerate(\%myconfig, $form->{currency}, $form->{exchangeratedate}, $form->{exchangerate}, $form->{buysell});
+
+ &invoice;
+
+}
+
+
+sub create_backorder {
+
+ $form->{shipped} = 1;
+
+ # figure out if we need to create a backorder
+ # items aren't saved if qty != 0
+
+ $dec1 = $dec2 = 0;
+ for $i (1 .. $form->{rowcount}) {
+ ($dec) = ($form->{"qty_$i"} =~ /\.(\d+)/);
+ $dec = length $dec;
+ $dec1 = ($dec > $dec1) ? $dec : $dec1;
+
+ ($dec) = ($form->{"ship_$i"} =~ /\.(\d+)/);
+ $dec = length $dec;
+ $dec2 = ($dec > $dec2) ? $dec : $dec2;
+
+ $totalqty += $qty = $form->{"qty_$i"};
+ $totalship += $ship = $form->{"ship_$i"};
+
+ $form->{"qty_$i"} = $qty - $ship;
+ }
+
+ $totalqty = $form->round_amount($totalqty, $dec1);
+ $totalship = $form->round_amount($totalship, $dec2);
+
+ if ($totalship == 0) {
+ for (1 .. $form->{rowcount}) { $form->{"ship_$_"} = $form->{"qty_$_"} }
+ $form->{ordtotal} = 0;
+ $form->{shipped} = 0;
+ return;
+ }
+
+ if ($totalqty == $totalship) {
+ for (1 .. $form->{rowcount}) { $form->{"qty_$_"} = $form->{"ship_$_"} }
+ $form->{ordtotal} = 0;
+ return;
+ }
+
+ @flds = qw(partnumber description qty ship unit sellprice discount oldqty orderitems_id id bin weight listprice lastcost taxaccounts pricematrix sku onhand deliverydate reqdate projectnumber partsgroup assembly);
+
+ for $i (1 .. $form->{rowcount}) {
+ for (qw(qty sellprice discount)) { $form->{"${_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}) }
+
+ $form->{"oldship_$i"} = $form->{"ship_$i"};
+ $form->{"ship_$i"} = 0;
+ }
+
+ # clear flags
+ for (qw(id subject message cc bcc printed emailed queued audittrail)) { delete $form->{$_} }
+
+ OE->save(\%myconfig, \%$form);
+
+ # rebuild rows for invoice
+ @a = ();
+ $count = 0;
+
+ for $i (1 .. $form->{rowcount}) {
+ $form->{"qty_$i"} = $form->{"oldship_$i"};
+ $form->{"oldqty_$i"} = $form->{"qty_$i"};
+
+ $form->{"orderitems_id_$i"} = "";
+
+ if ($form->{"qty_$i"}) {
+ push @a, {};
+ $j = $#a;
+ for (@flds) { $a[$j]->{$_} = $form->{"${_}_$i"} }
+ $count++;
+ }
+ }
+
+ $form->redo_rows(\@flds, \@a, $count, $form->{rowcount});
+ $form->{rowcount} = $count;
+
+}
+
+
+
+sub save_as_new {
+
+ for (qw(closed id printed emailed queued)) { delete $form->{$_} }
+ &save;
+
+}
+
+
+sub print_and_save_as_new {
+
+ for (qw(closed id printed emailed queued)) { delete $form->{$_} }
+ &print_and_save;
+
+}
+
+
+sub ship_receive {
+
+ &order_links;
+
+ &prepare_order;
+
+ OE->get_warehouses(\%myconfig, \%$form);
+
+ # warehouse
+ if (@{ $form->{all_warehouse} }) {
+ $form->{selectwarehouse} = "<option>\n";
+
+ for (@{ $form->{all_warehouse} }) { $form->{selectwarehouse} .= qq|<option value="$_->{description}--$_->{id}">$_->{description}\n| }
+
+ if ($form->{warehouse}) {
+ $form->{selectwarehouse} = qq|<option value="$form->{warehouse}">|;
+ $form->{warehouse} =~ s/--.*//;
+ $form->{selectwarehouse} .= $form->{warehouse};
+ }
+ }
+
+ $form->{shippingdate} = $form->current_date(\%myconfig);
+ $form->{"$form->{vc}"} =~ s/--.*//;
+ $form->{"old$form->{vc}"} = qq|$form->{"$form->{vc}"}--$form->{"$form->{vc}_id"}|;
+
+ @flds = ();
+ @a = ();
+ $count = 0;
+ foreach $key (keys %$form) {
+ if ($key =~ /_1$/) {
+ $key =~ s/_1//;
+ push @flds, $key;
+ }
+ }
+
+ for $i (1 .. $form->{rowcount}) {
+ # undo formatting from prepare_order
+ for (qw(qty ship)) { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) }
+ $n = ($form->{"qty_$i"} -= $form->{"ship_$i"});
+ if (abs($n) > 0) {
+ $form->{"ship_$i"} = "";
+ $form->{"serialnumber_$i"} = "";
+
+ push @a, {};
+ $j = $#a;
+
+ for (@flds) { $a[$j]->{$_} = $form->{"${_}_$i"} }
+ $count++;
+ }
+ }
+
+ $form->redo_rows(\@flds, \@a, $count, $form->{rowcount});
+ $form->{rowcount} = $count;
+
+ &display_ship_receive;
+
+}
+
+
+sub display_ship_receive {
+
+ $vclabel = ucfirst $form->{vc};
+ $vclabel = $locale->text($vclabel);
+
+ $form->{rowcount}++;
+
+ if ($form->{vc} eq 'customer') {
+ $form->{title} = $locale->text('Ship Merchandise');
+ $shipped = $locale->text('Shipping Date');
+ } else {
+ $form->{title} = $locale->text('Receive Merchandise');
+ $shipped = $locale->text('Date Received');
+ }
+
+ # set option selected
+ for (qw(warehouse employee)) {
+ $form->{"select$_"} = $form->unescape($form->{"select$_"});
+ $form->{"select$_"} =~ s/ selected//;
+ $form->{"select$_"} =~ s/(<option value="\Q$form->{$_}\E")/$1 selected/;
+ }
+
+
+ $warehouse = qq|
+ <tr>
+ <th align=right>|.$locale->text('Warehouse').qq|</th>
+ <td><select name=warehouse>$form->{selectwarehouse}</select></td>
+ <input type=hidden name=selectwarehouse value="|.
+ $form->escape($form->{selectwarehouse},1).qq|">
+ </tr>
+| if $form->{selectwarehouse};
+
+ $employee = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Contact').qq|</th>
+ <td><select name=employee>$form->{selectemployee}</select></td>
+ <input type=hidden name=selectemployee value="|.
+ $form->escape($form->{selectemployee},1).qq|">
+ </tr>
+|;
+
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=display_form value=display_ship_receive>
+|;
+
+ $form->hide_form(qw(id type media format printed emailed queued vc));
+
+ print qq|
+<input type=hidden name="old$form->{vc}" value="$form->{"old$form->{vc}"}">
+
+<table width=100%>
+ <tr class=listtop>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width="100%">
+ <tr valign=top>
+ <td>
+ <table width=100%>
+ <tr>
+ <th align=right>$vclabel</th>
+ <td colspan=3>$form->{$form->{vc}}</td>
+ <input type=hidden name=$form->{vc} value="$form->{$form->{vc}}">
+ <input type=hidden name="$form->{vc}_id" value=$form->{"$form->{vc}_id"}>
+ </tr>
+ $department
+ <tr>
+ <th align=right>|.$locale->text('Shipping Point').qq|</th>
+ <td colspan=3>
+ <input name=shippingpoint size=35 value="$form->{shippingpoint}">
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Ship via').qq|</th>
+ <td colspan=3>
+ <input name=shipvia size=35 value="$form->{shipvia}">
+ </tr>
+ $warehouse
+ </table>
+ </td>
+ <td align=right>
+ <table>
+ $employee
+ <tr>
+ <th align=right nowrap>|.$locale->text('Order Number').qq|</th>
+ <td>$form->{ordnumber}</td>
+ <input type=hidden name=ordnumber value="$form->{ordnumber}">
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Order Date').qq|</th>
+ <td>$form->{transdate}</td>
+ <input type=hidden name=transdate value=$form->{transdate}>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('PO Number').qq|</th>
+ <td>$form->{ponumber}</td>
+ <input type=hidden name=ponumber value="$form->{ponumber}">
+ </tr>
+ <tr>
+ <th align=right nowrap>$shipped</th>
+ <td><input name=shippingdate size=11 value=$form->{shippingdate}></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+|;
+
+ $form->hide_form(qw(shiptoname shiptoaddress1 shiptoaddress2 shiptocity shiptostate shiptozipcode shiptocountry shiptocontact shiptophone shiptofax shiptoemail message email subject cc bcc));
+
+ @column_index = qw(partnumber);
+
+ if ($form->{type} eq "ship_order") {
+ $column_data{ship} = qq|<th class=listheading>|.$locale->text('Ship').qq|</th>|;
+ }
+ if ($form->{type} eq "receive_order") {
+ $column_data{ship} = qq|<th class=listheading>|.$locale->text('Recd').qq|</th>|;
+ $column_data{sku} = qq|<th class=listheading>|.$locale->text('SKU').qq|</th>|;
+ push @column_index, "sku";
+ }
+ push @column_index, qw(description qty ship unit bin serialnumber);
+
+ my $colspan = $#column_index + 1;
+
+ $column_data{partnumber} = qq|<th class=listheading nowrap>|.$locale->text('Number').qq|</th>|;
+ $column_data{description} = qq|<th class=listheading nowrap>|.$locale->text('Description').qq|</th>|;
+ $column_data{qty} = qq|<th class=listheading nowrap>|.$locale->text('Qty').qq|</th>|;
+ $column_data{unit} = qq|<th class=listheading nowrap>|.$locale->text('Unit').qq|</th>|;
+ $column_data{bin} = qq|<th class=listheading nowrap>|.$locale->text('Bin').qq|</th>|;
+ $column_data{serialnumber} = qq|<th class=listheading nowrap>|.$locale->text('Serial No.').qq|</th>|;
+
+ print qq|
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+
+ for $i (1 .. $form->{rowcount} - 1) {
+
+ # undo formatting
+ $form->{"ship_$i"} = $form->parse_amount(\%myconfig, $form->{"ship_$i"});
+
+ for (qw(partnumber sku description unit bin serialnumber)) { $form->{"${_}_$i"} = $form->quote($form->{"${_}_$i"}) }
+
+ $description = $form->{"description_$i"};
+ $description =~ s/\r?\n/<br>/g;
+
+ $column_data{partnumber} = qq|<td>$form->{"partnumber_$i"}<input type=hidden name="partnumber_$i" value="$form->{"partnumber_$i"}"></td>|;
+ $column_data{sku} = qq|<td>$form->{"sku_$i"}<input type=hidden name="sku_$i" value="$form->{"sku_$i"}"></td>|;
+ $column_data{description} = qq|<td>$description<input type=hidden name="description_$i" value="$form->{"description_$i"}"></td>|;
+ $column_data{qty} = qq|<td align=right>|.$form->format_amount(\%myconfig, $form->{"qty_$i"}).qq|<input type=hidden name="qty_$i" value="$form->{"qty_$i"}"></td>|;
+ $column_data{ship} = qq|<td align=right><input name="ship_$i" size=5 value=|.$form->format_amount(\%myconfig, $form->{"ship_$i"}).qq|></td>|;
+ $column_data{unit} = qq|<td>$form->{"unit_$i"}<input type=hidden name="unit_$i" value="$form->{"unit_$i"}"></td>|;
+ $column_data{bin} = qq|<td>$form->{"bin_$i"}<input type=hidden name="bin_$i" value="$form->{"bin_$i"}"></td>|;
+
+ $column_data{serialnumber} = qq|<td><input name="serialnumber_$i" size=15 value="$form->{"serialnumber_$i"}"></td>|;
+
+ print qq|
+ <tr valign=top>|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+ $form->hide_form("orderitems_id_$i","id_$i","partsgroup_$i");
+
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+ <tr>
+ <td>
+|;
+
+ $form->{copies} = 1;
+
+ &print_options;
+
+ print qq|
+ </td>
+ </tr>
+</table>
+<br>
+|;
+
+# type=submit $locale->text('Done')
+
+ %button = ('Update' => { ndx => 1, key => 'U', value => $locale->text('Update') },
+ 'Print' => { ndx => 2, key => 'P', value => $locale->text('Print') },
+ 'Ship to' => { ndx => 4, key => 'T', value => $locale->text('Ship to') },
+ 'E-mail' => { ndx => 5, key => 'E', value => $locale->text('E-mail') },
+ 'Done' => { ndx => 11, key => 'D', value => $locale->text('Done') },
+ );
+
+ for ("Update", "Print") { $form->print_button(\%button, $_) }
+
+ if ($form->{type} eq 'ship_order') {
+ for ('Ship to', 'E-mail') { $form->print_button(\%button, $_) }
+ }
+
+ $form->print_button(\%button, 'Done');
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ $form->hide_form(qw(rowcount callback path login sessionid));
+
+ print qq|
+
+</form>
+
+</body>
+</html>
+|;
+
+
+}
+
+
+sub done {
+
+ if ($form->{type} eq 'ship_order') {
+ $form->isblank("shippingdate", $locale->text('Shipping Date missing!'));
+ } else {
+ $form->isblank("shippingdate", $locale->text('Date received missing!'));
+ }
+
+ $total = 0;
+ for (1 .. $form->{rowcount} - 1) { $total += $form->{"ship_$_"} = $form->parse_amount(\%myconfig, $form->{"ship_$_"}) }
+
+ $form->error($locale->text('Nothing entered!')) unless $total;
+
+ if (OE->save_inventory(\%myconfig, \%$form)) {
+ $form->redirect($locale->text('Inventory saved!'));
+ } else {
+ $form->error($locale->text('Could not save!'));
+ }
+
+}
+
+
+sub search_transfer {
+
+ OE->get_warehouses(\%myconfig, \%$form);
+
+ # warehouse
+ if (@{ $form->{all_warehouse} }) {
+ $form->{selectwarehouse} = "<option>\n";
+ $form->{warehouse} = qq|$form->{warehouse}--$form->{warehouse_id}| if $form->{warehouse_id};
+
+ for (@{ $form->{all_warehouse} }) { $form->{selectwarehouse} .= qq|<option value="$_->{description}--$_->{id}">$_->{description}\n| }
+ } else {
+ $form->error($locale->text('Nothing to transfer!'));
+ }
+
+ $form->get_partsgroup(\%myconfig, { searchitems => 'part'});
+ if (@{ $form->{all_partsgroup} }) {
+ $form->{selectpartsgroup} = "<option>\n";
+ for (@{ $form->{all_partsgroup} }) { $form->{selectpartsgroup} .= qq|<option value="$_->{partsgroup}--$_->{id}">$_->{partsgroup}\n| }
+ }
+
+ $form->{title} = $locale->text('Transfer Inventory');
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Transfer from').qq|</th>
+ <td><select name=fromwarehouse>$form->{selectwarehouse}</select></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Transfer to').qq|</th>
+ <td><select name=towarehouse>$form->{selectwarehouse}</select></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('Part Number').qq|</th>
+ <td><input name=partnumber size=20></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('Description').qq|</th>
+ <td><input name=description size=40></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Group').qq|</th>
+ <td><select name=partsgroup>$form->{selectpartsgroup}</select></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+<input type=hidden name=nextsub value=list_transfer>
+
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">|;
+
+ $form->hide_form(qw(path login sessionid));
+
+ print qq|
+</form>
+|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+</body>
+</html>
+|;
+
+}
+
+
+sub list_transfer {
+
+ $form->{sort} = "partnumber" unless $form->{sort};
+
+ OE->get_inventory(\%myconfig, \%$form);
+
+ # construct href
+ $href = "$form->{script}?action=list_transfer";
+ for (qw(direction oldsort path login sessionid)) { $href .= "&$_=$form->{$_}" }
+ for (qw(partnumber fromwarehouse towarehouse description partsgroup)) { $href .= "&$_=".$form->escape($form->{$_}) }
+
+ $form->sort_order();
+
+ # construct callback
+ $callback = "$form->{script}?action=list_transfer";
+ for (qw(direction oldsort path login sessionid)) { $callback .= "&$_=$form->{$_}" }
+ for (qw(partnumber fromwarehouse towarehouse description partsgroup)) { $callback .= "&$_=".$form->escape($form->{$_},1) }
+
+ @column_index = $form->sort_columns(qw(partnumber description partsgroup make model fromwarehouse qty towarehouse transfer));
+
+ $column_header{partnumber} = qq|<th><a class=listheading href=$href&sort=partnumber>|.$locale->text('Part Number').qq|</a></th>|;
+ $column_header{description} = qq|<th><a class=listheading href=$href&sort=description>|.$locale->text('Description').qq|</a></th>|;
+ $column_header{partsgroup} = qq|<th><a class=listheading href=$href&sort=partsgroup>|.$locale->text('Group').qq|</a></th>|;
+ $column_header{fromwarehouse} = qq|<th><a class=listheading href=$href&sort=warehouse>|.$locale->text('From').qq|</a></th>|;
+ $column_header{towarehouse} = qq|<th class=listheading>|.$locale->text('To').qq|</th>|;
+ $column_header{qty} = qq|<th class=listheading>|.$locale->text('Qty').qq|</a></th>|;
+ $column_header{transfer} = qq|<th class=listheading>|.$locale->text('Transfer').qq|</a></th>|;
+
+
+ ($warehouse, $warehouse_id) = split /--/, $form->{fromwarehouse};
+
+ if ($form->{fromwarehouse}) {
+ $option .= "\n<br>";
+ $option .= $locale->text('From Warehouse')." : $warehouse";
+ }
+ ($warehouse, $warehouse_id) = split /--/, $form->{towarehouse};
+ if ($form->{towarehouse}) {
+ $option .= "\n<br>";
+ $option .= $locale->text('To Warehouse')." : $warehouse";
+ }
+ if ($form->{partnumber}) {
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Part Number')." : $form->{partnumber}";
+ }
+ if ($form->{description}) {
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Description')." : $form->{description}";
+ }
+ if ($form->{partsgroup}) {
+ ($partsgroup) = split /--/, $form->{partsgroup};
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Group')." : $partsgroup";
+ }
+
+ $form->{title} = $locale->text('Transfer Inventory');
+
+ $callback .= "&sort=$form->{sort}";
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=warehouse_id value=$warehouse_id>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$option</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>|;
+
+for (@column_index) { print "\n$column_header{$_}" }
+
+print qq|
+ </tr>
+|;
+
+ if (@{ $form->{all_inventory} }) {
+ $sameitem = $form->{all_inventory}->[0]->{$form->{sort}};
+ }
+
+ $i = 0;
+ foreach $ref (@{ $form->{all_inventory} }) {
+
+ $i++;
+
+ $column_data{partnumber} = qq|<td><input type=hidden name="id_$i" value=$ref->{id}>$ref->{partnumber}</td>|;
+ $column_data{description} = "<td>$ref->{description}&nbsp;</td>";
+ $column_data{partsgroup} = "<td>$ref->{partsgroup}&nbsp;</td>";
+ $column_data{fromwarehouse} = qq|<td><input type=hidden name="warehouse_id_$i" value=$ref->{warehouse_id}>$ref->{warehouse}&nbsp;</td>|;
+ $column_data{towarehouse} = qq|<td>$warehouse&nbsp;</td>|;
+ $column_data{qty} = qq|<td><input type=hidden name="qty_$i" value=$ref->{qty}>|.$form->format_amount(\%myconfig, $ref->{qty}).qq|</td>|;
+ $column_data{transfer} = qq|<td><input name="transfer_$i" size=4></td>|;
+
+ $j++; $j %= 2;
+ print "
+ <tr class=listrow$j>";
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+
+<input name=callback type=hidden value="$callback">
+
+<input type=hidden name=rowcount value=$i>
+|;
+
+ $form->{action} = "transfer";
+ $form->hide_form(qw(path login sessionid action));
+
+ print qq|
+<input class=submit type=submit name=action value="|.$locale->text('Transfer').qq|">|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+
+}
+
+
+sub transfer {
+
+ if (OE->transfer(\%myconfig, \%$form)) {
+ $form->redirect($locale->text('Inventory transferred!'));
+ } else {
+ $form->error($locale->text('Could not transfer Inventory!'));
+ }
+
+}
+
+
+sub rfq_ { &add };
+sub quotation_ { &add };
+
+
+sub generate_purchase_orders {
+
+ for (1 .. $form->{rowcount}) {
+ if ($form->{"ndx_$_"}) {
+ $ok = 1;
+ last;
+ }
+ }
+
+ $form->error($locale->text('Nothing selected!')) unless $ok;
+
+ ($null, $argv) = split /\?/, $form->{callback};
+
+ for (split /\&/, $argv) {
+ ($key, $value) = split /=/, $_;
+ $form->{$key} = $value;
+ }
+
+ $form->{vc} = "vendor";
+
+ OE->get_soparts(\%myconfig, \%$form);
+
+ # flatten array
+ $i = 0;
+ foreach $parts_id (sort { $form->{orderitems}{$a}{partnumber} cmp $form->{orderitems}{$b}{partnumber} } keys %{ $form->{orderitems} }) {
+
+ $required = $form->{orderitems}{$parts_id}{required};
+ next if $required <= 0;
+
+ $i++;
+
+ $form->{"required_$i"} = $form->format_amount(\%myconfig, $required);
+ $form->{"id_$i"} = $parts_id;
+ $form->{"sku_$i"} = $form->{orderitems}{$parts_id}{partnumber};
+
+ $form->{"curr_$i"} = $form->{defaultcurrency};
+ $form->{"description_$i"} = $form->{orderitems}{$parts_id}{description};
+
+ $form->{"lastcost_$i"} = $form->format_amount(\%myconfig, $form->{orderitems}{$parts_id}{lastcost}, 2);
+
+ $form->{"qty_$i"} = $required;
+
+ if (exists $form->{orderitems}{$parts_id}{"parts$form->{vc}"}) {
+ $form->{"qty_$i"} = "";
+
+ foreach $id (sort { $form->{orderitems}{$parts_id}{"parts$form->{vc}"}{$a}{lastcost} * $form->{$form->{orderitems}{$parts_id}{"parts$form->{vc}"}{$a}{curr}} <=> $form->{orderitems}{$parts_id}{"parts$form->{vc}"}{$b}{lastcost} * $form->{$form->{orderitems}{$parts_id}{"parts$form->{vc}"}{$b}{curr}} } keys %{ $form->{orderitems}{$parts_id}{"parts$form->{vc}"} }) {
+ $i++;
+
+ $form->{"qty_$i"} = $form->format_amount(\%myconfig, $required);
+
+ $form->{"description_$i"} = "";
+ for (qw(partnumber curr)) { $form->{"${_}_$i"} = $form->{orderitems}{$parts_id}{"parts$form->{vc}"}{$id}{$_} }
+
+ $form->{"lastcost_$i"} = $form->format_amount(\%myconfig, $form->{orderitems}{$parts_id}{"parts$form->{vc}"}{$id}{lastcost}, 2);
+ $form->{"leadtime_$i"} = $form->format_amount(\%myconfig, $form->{orderitems}{$parts_id}{"parts$form->{vc}"}{$id}{leadtime});
+ $form->{"fx_$i"} = $form->format_amount(\%myconfig, $form->{orderitems}{$parts_id}{"parts$form->{vc}"}{$id}{lastcost} * $form->{$form->{orderitems}{$parts_id}{"parts$form->{vc}"}{$id}{curr}}, 2);
+
+ $form->{"id_$i"} = $parts_id;
+
+ $form->{"$form->{vc}_$i"} = qq|$form->{orderitems}{$parts_id}{"parts$form->{vc}"}{$id}{name}--$id|;
+ $form->{"$form->{vc}_id_$i"} = $id;
+
+ $required = "";
+ }
+ }
+ $form->{"blankrow_$i"} = 1;
+ }
+
+ $form->{rowcount} = $i;
+
+ &po_orderitems;
+
+}
+
+
+sub po_orderitems {
+
+ @column_index = qw(sku description partnumber leadtime fx lastcost curr required qty name);
+
+ $column_header{sku} = qq|<th class=listheading>|.$locale->text('SKU').qq|</th>|;
+ $column_header{partnumber} = qq|<th class=listheading>|.$locale->text('Part Number').qq|</th>|;
+ $column_header{description} = qq|<th class=listheading>|.$locale->text('Description').qq|</th>|;
+ $column_header{name} = qq|<th class=listheading>|.$locale->text('Vendor').qq|</th>|;
+ $column_header{qty} = qq|<th class=listheading>|.$locale->text('Order').qq|</th>|;
+ $column_header{required} = qq|<th class=listheading>|.$locale->text('Req').qq|</th>|;
+ $column_header{lastcost} = qq|<th class=listheading>|.$locale->text('Cost').qq|</th>|;
+ $column_header{fx} = qq|<th class=listheading>&nbsp;</th>|;
+ $column_header{leadtime} = qq|<th class=listheading>|.$locale->text('Lead').qq|</th>|;
+ $column_header{curr} = qq|<th class=listheading>|.$locale->text('Curr').qq|</th>|;
+
+
+ $form->{title} = $locale->text('Generate Purchase Orders');
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>|;
+
+ for (@column_index) { print "\n$column_header{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ for $i (1 .. $form->{rowcount}) {
+
+ for (qw(sku partnumber description curr)) { $column_data{$_} = qq|<td>$form->{"${_}_$i"}&nbsp;</td>| }
+
+ for (qw(required leadtime lastcost fx)) { $column_data{$_} = qq|<td align=right>$form->{"${_}_$i"}</td>| }
+
+ $column_data{qty} = qq|<td align=right><input name="qty_$i" size=6 value=$form->{"qty_$i"}></td>|;
+
+ if ($form->{"$form->{vc}_id_$i"}) {
+ $name = $form->{"$form->{vc}_$i"};
+ $name =~ s/--.*//;
+ $column_data{name} = qq|<td>$name</td>|;
+ $form->hide_form("$form->{vc}_id_$i", "$form->{vc}_$i");
+ } else {
+ $column_data{name} = qq|<td><input name="ndx_$i" class=checkbox type=checkbox value="1"></td>|;
+ }
+
+ $form->hide_form(map { "${_}_$i" } qw(id sku partnumber description curr required leadtime lastcost fx name blankrow));
+
+ $blankrow = $form->{"blankrow_$i"};
+
+BLANKROW:
+ $j++; $j %= 2;
+ print "
+ <tr class=listrow$j>";
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ if ($blankrow) {
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+ $blankrow = 0;
+
+ goto BLANKROW;
+ }
+
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+|;
+
+ $form->hide_form(qw(callback department ponumber path login sessionid employee_id vc nextsub rowcount type));
+
+ print qq|
+<input class=submit type=submit name=action value="|.$locale->text('Generate Orders').qq|">|;
+
+ print qq|
+<input class=submit type=submit name=action value="|.$locale->text('Select Vendor').qq|">|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub generate_orders {
+
+ if (OE->generate_orders(\%myconfig, \%$form)) {
+ $form->redirect;
+ } else {
+ $form->error($locale->text('Order generation failed!'));
+ }
+
+}
+
+
+
+sub consolidate_orders {
+
+ for (1 .. $form->{rowcount}) {
+ if ($form->{"ndx_$_"}) {
+ $ok = 1;
+ last;
+ }
+ }
+
+ $form->error($locale->text('Nothing selected!')) unless $ok;
+
+ ($null, $argv) = split /\?/, $form->{callback};
+
+ for (split /\&/, $argv) {
+ ($key, $value) = split /=/, $_;
+ $form->{$key} = $value;
+ }
+
+ if (OE->consolidate_orders(\%myconfig, \%$form)) {
+ $form->redirect;
+ } else {
+ $form->error($locale->text('Order generation failed!'));
+ }
+
+}
+
+
+sub select_vendor {
+
+ for (1 .. $form->{rowcount}) {
+ last if ($ok = $form->{"ndx_$_"});
+ }
+
+ $form->error($locale->text('Nothing selected!')) unless $ok;
+
+ $form->header;
+
+ print qq|
+<body onload="document.forms[0].vendor.focus()" />
+
+<form method=post action=$form->{script}>
+
+<b>|.$locale->text('Vendor').qq|</b> <input name=vendor size=40>
+
+|;
+
+ $form->{nextsub} = "vendor_selected";
+ $form->{action} = "vendor_selected";
+
+ $form->hide_form;
+
+ print qq|
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">
+
+</form>
+|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+</body>
+</html>
+|;
+
+}
+
+
+sub vendor_selected {
+
+ if (($rv = $form->get_name(\%myconfig, $form->{vc}, $form->{transdate})) > 1) {
+ &select_name($form->{vc});
+ exit;
+ }
+
+ if ($rv == 1) {
+ for (1 .. $form->{rowcount}) {
+ if ($form->{"ndx_$_"}) {
+ $form->{"$form->{vc}_id_$_"} = $form->{name_list}[0]->{id};
+ $form->{"$form->{vc}_$_"} = "$form->{name_list}[0]->{name}--$form->{name_list}[0]->{id}";
+ }
+ }
+ } else {
+ $msg = ucfirst $form->{vc} . " not on file!" unless $msg;
+ $form->error($locale->text($msg));
+ }
+
+ &po_orderitems;
+
+}
+
+
diff --git a/bin/lynx/pe.pl b/bin/lynx/pe.pl
new file mode 100755
index 00000000..bc7b108f
--- /dev/null
+++ b/bin/lynx/pe.pl
@@ -0,0 +1,2578 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2002
+#
+# Author: DWS Systems Inc.
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#======================================================================
+#
+# project/job administration
+# partsgroup administration
+# translation maintainance
+#
+#======================================================================
+
+
+use SL::PE;
+use SL::AA;
+use SL::OE;
+
+1;
+# end of main
+
+
+
+sub add {
+
+ # construct callback
+ $form->{callback} = "$form->{script}?action=add&type=$form->{type}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}" unless $form->{callback};
+
+ &{ "prepare_$form->{type}" };
+
+ $form->{orphaned} = 1;
+ &display_form;
+
+}
+
+
+sub edit {
+
+ &{ "prepare_$form->{type}" };
+ &display_form;
+
+}
+
+
+sub prepare_partsgroup { PE->get_partsgroup(\%myconfig, \%$form) if $form->{id} }
+sub prepare_pricegroup { PE->get_pricegroup(\%myconfig, \%$form) if $form->{id} }
+
+sub prepare_job {
+
+# $locale->text('Add Job')
+# $locale->text('Edit Job')
+
+ $form->{vc} = 'customer';
+
+ PE->get_job(\%myconfig, \%$form);
+
+ $form->{taxaccounts} = "";
+ for (keys %{ $form->{IC_links} }) {
+
+ $form->{"select$_"} = "";
+ foreach $ref (@{ $form->{IC_links}{$_} }) {
+ if (/IC_tax/) {
+ if (/taxpart/) {
+ $form->{taxaccounts} .= "$ref->{accno} ";
+ $form->{"IC_tax_$ref->{accno}_description"} = "$ref->{accno}--$ref->{description}";
+ if ($form->{id}) {
+ if ($form->{amount}{$ref->{accno}}) {
+ $form->{"IC_tax_$ref->{accno}"} = "checked";
+ }
+ } else {
+ $form->{"IC_tax_$ref->{accno}"} = "checked";
+ }
+ }
+ } else {
+ $form->{"select$_"} .= "<option>$ref->{accno}--$ref->{description}\n";
+ }
+ }
+ }
+ chop $form->{taxaccounts};
+
+ $form->{selectIC_income} = $form->{selectIC_sale};
+ $form->{IC_income} = $form->{IC_sale};
+
+ $form->{IC_income} = qq|$form->{income_accno}--$form->{income_description}|;
+
+ delete $form->{IC_links};
+
+ $form->{"old$form->{vc}"} = qq|$form->{"$form->{vc}"}--$form->{"$form->{vc}_id"}|;
+
+ if (@{ $form->{"all_$form->{vc}"} }) {
+ $form->{"$form->{vc}"} = qq|$form->{"$form->{vc}"}--$form->{"$form->{vc}_id"}|;
+ $form->{"select$form->{vc}"} = qq|<option>\n|;
+ for (@{ $form->{"all_$form->{vc}"} }) { $form->{"select$form->{vc}"} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+ }
+
+ $form->get_partsgroup(\%myconfig, {all => 1});
+ $form->{partsgroup} = $form->quote($form->{partsgroup})."--$form->{partsgroup_id}";
+ if (@{ $form->{all_partsgroup} }) {
+ $form->{selectpartsgroup} = qq|<option>\n|;
+ for (@{ $form->{all_partsgroup} }) { $form->{selectpartsgroup} .= qq|<option value="|.$form->quote($_->{partsgroup}).qq|--$_->{id}">$_->{partsgroup}\n| }
+ }
+
+ $form->{locked} = ($form->{revtrans}) ? '1' : ($form->datetonum(\%myconfig, $form->{transdate}) <= $form->datetonum(\%myconfig, $form->{closedto}));
+
+ $form->{readonly} = 1 if $myconfig{acs} =~ /Job Costing--Add Job/;
+
+}
+
+
+sub job_header {
+
+ for (qw(partnumber partdescription description notes unit)) { $form->{$_} = $form->quote($form->{$_}) }
+
+ for (qw(production weight)) { $form->{$_} = $form->format_amount(\%myconfig, $form->{$_}) }
+ for (qw(listprice sellprice)) { $form->{$_} = $form->format_amount(\%myconfig, $form->{$_}, 2) }
+
+ if (($rows = $form->numtextrows($form->{partdescription}, 60)) > 1) {
+ $partdescription = qq|<textarea name="partdescription" rows=$rows cols=60 style="width: 100%" wrap=soft>$form->{partdescription}</textarea>|;
+ } else {
+ $partdescription = qq|<input name=partdescription size=60 value="$form->{partdescription}">|;
+ }
+
+ if (($rows = $form->numtextrows($form->{description}, 60)) > 1) {
+ $description = qq|<textarea name="description" rows=$rows cols=60 style="width: 100%" wrap=soft>$form->{description}</textarea>|;
+ } else {
+ $description = qq|<input name=description size=60 value="$form->{description}">|;
+ }
+
+ if (($rows = $form->numtextrows($form->{notes}, 40)) < 2) {
+ $rows = 2;
+ }
+
+ $notes = qq|<textarea name=notes rows=$rows cols=40 wrap=soft>$form->{notes}</textarea>|;
+
+ $form->{selectIC_income} = $form->unescape($form->{selectIC_income});
+ $form->{"select$form->{vc}"} = $form->unescape($form->{"select$form->{vc}"});
+ $form->{"select$form->{vc}"} =~ s/ selected//;
+ $form->{"select$form->{vc}"} =~ s/(<option value="\Q$form->{"$form->{vc}"}\E")/$1 selected/;
+
+
+ $label = ucfirst $form->{vc};
+ if ($form->{"select$form->{vc}"}) {
+ $name = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text($label).qq|</th>
+ <td colspan=3><select name="$form->{vc}">$form->{"select$form->{vc}"}</select></td>
+ <input type=hidden name="select$form->{vc}" value="|.
+ $form->escape($form->{"select$form->{vc}"},1).qq|">
+ </tr>
+|;
+ } else {
+ $name = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text($label).qq|</th>
+ <td colspan=3><input name="$form->{vc}" value="$form->{"$form->{vc}"}" size=35></td>
+ <input type=hidden name="select$form->{vc}" value="|.
+ $form->escape($form->{"select$form->{vc}"},1).qq|">
+ </tr>
+|;
+ }
+
+ if ($form->{orphaned}) {
+
+ for (qw(income)) {
+ $form->{"selectIC_$_"} =~ s/ selected//;
+ $form->{"selectIC_$_"} =~ s/option>\Q$form->{"IC_$_"}\E/option selected>$form->{"IC_$_"}/;
+ }
+
+ $production = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Production').qq|</th>
+ <td><input name=production size=10 value="$form->{production}"></td>
+ <th align=right nowrap>|.$locale->text('Completed').qq|</th>
+ <td>$form->{completed}</td>
+ </tr>
+|;
+
+ } else {
+
+ $form->{selectIC_income} = qq|<option selected>$form->{IC_income}|;
+
+ $production = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Production').qq|</th>
+ <td><input type=hidden name=production value="$form->{production}">$form->{production}</td>
+ <th align=right nowrap>|.$locale->text('Completed').qq|</th>
+ <td>$form->{completed}</td>
+ </tr>
+|;
+
+ }
+
+ for (split / /, $form->{taxaccounts}) { $form->{"IC_tax_$_"} = ($form->{"IC_tax_$_"}) ? "checked" : "" }
+
+ if ($form->{selectpartsgroup}) {
+ $form->{selectpartsgroup} = $form->unescape($form->{selectpartsgroup});
+
+ $partsgroup = qq|<input type=hidden name=selectpartsgroup value="|.$form->escape($form->{selectpartsgroup},1).qq|">|;
+ $form->{partsgroup} = $form->quote($form->{partsgroup});
+ $form->{selectpartsgroup} =~ s/(<option value="\Q$form->{partsgroup}\E")/$1 selected/;
+
+ $partsgroup .= qq|\n<select name=partsgroup>$form->{selectpartsgroup}</select>|;
+ $group = $locale->text('Group');
+ }
+
+ $linkaccounts = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Income').qq|</th>
+ <td><select name=IC_income>$form->{selectIC_income}</select></td>
+ </tr>
+|;
+
+ for (split / /, $form->{taxaccounts}) {
+ $tax .= qq|
+ <input class=checkbox type=checkbox name="IC_tax_$_" value=1 $form->{"IC_tax_$_"}>&nbsp;<b>$form->{"IC_tax_${_}_description"}</b>
+ <br><input type=hidden name=IC_tax_${_}_description value="$form->{"IC_tax_${_}_description"}">
+|;
+ }
+
+ if ($tax) {
+ $linkaccounts .= qq|
+ <tr>
+ <th align=right>|.$locale->text('Tax').qq|</th>
+ <td>$tax</td>
+ </tr>
+|;
+ }
+
+ $partnumber = qq|
+ <tr>
+ <td>
+ <table>
+ <tr valign=top>
+ <th align=left>|.$locale->text('Number').qq|</th>
+ <th align=left>|.$locale->text('Description').qq|</th>
+ <th align=left>$group</th>
+ </tr>
+ <tr valign=top>
+ <td><input name=partnumber value="$form->{partnumber}" size=20></td>
+ <td>$partdescription</td>
+ <td>$partsgroup</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+|;
+
+ $form->{title} = ($form->{id}) ? $locale->text('Edit Job') : $locale->text('Add Job');
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+|;
+
+ for (qw(partnumber startdate enddate)) { $form->{"old$_"} = $form->{$_} }
+
+ print qq|<input type=hidden name="selectIC_income" value="|.$form->escape($form->{"selectIC_income"},1).qq|">\n|;
+
+ $form->hide_form("id", "type", "old$form->{vc}", "$form->{vc}_id", "orphaned", "taxaccounts", "vc", "project");
+
+ print qq|
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right>|.$locale->text('Number').qq|</th>
+ <td><input name=projectnumber size=20 value="$form->{projectnumber}"></td>
+ <th align=right>|.$locale->text('Description').qq|</th>
+ <td>$description</td>
+ </tr>
+ $name
+ <tr>
+ <th align=right>|.$locale->text('Startdate').qq|</th>
+ <td><input name=startdate size=11 title="($myconfig{dateformat})" value=$form->{startdate}></td>
+ <th align=right>|.$locale->text('Enddate').qq|</th>
+ <td><input name=enddate size=11 title="($myconfig{dateformat})" value=$form->{enddate}></td>
+ </tr>
+ $production
+ </table>
+ </td>
+ </tr>
+ <tr class="listheading">
+ <th class="listheading" align="center">|.$locale->text('Assembly').qq|</th>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ $partnumber
+ <tr>
+ <td colspan=3>
+ <table width=100%>
+ <tr>
+ <td width=70%>
+ <table width=100%>
+ <tr class="listheading">
+ <th class="listheading" align="center" colspan=2>|.$locale->text('Link Accounts').qq|</th>
+ </tr>
+ $linkaccounts
+ <tr>
+ <th align="left">|.$locale->text('Notes').qq|</th>
+ </tr>
+ <tr>
+ <td colspan=2>
+ $notes
+ </td>
+ </tr>
+ </table>
+ </td>
+ <td align=right>
+ <table>
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('Updated').qq|</th>
+ <td><input name=priceupdate size=11 title="$myconfig{dateformat}" value=$form->{priceupdate}></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('List Price').qq|</th>
+ <td><input name=listprice size=11 value=$form->{listprice}></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('Sell Price').qq|</th>
+ <td><input name=sellprice size=11 value=$form->{sellprice}></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('Weight').qq|</th>
+ <td>
+ <table>
+ <tr>
+ <td>
+ <input name=weight size=10 value=$form->{weight}>
+ </td>
+ <th>
+ &nbsp;
+ $form->{weightunit}
+ <input type=hidden name=weightunit value=$form->{weightunit}>
+ </th>
+ </tr>
+ </table>
+ </td>
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('Bin').qq|</th>
+ <td><input name=bin size=10 value="$form->{bin}"></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('Unit').qq|</th>
+ <td><input name=unit size=5 value="$form->{unit}"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+}
+
+
+sub job_footer {
+
+ $form->hide_form(qw(callback path login sessionid));
+
+# type=submit $locale->text('Update')
+# type=submit $locale->text('Save')
+# type=submit $locale->text('Delete')
+
+ %button = ('Update' => { ndx => 1, key => 'U', value => $locale->text('Update') },
+ );
+
+ if ($myconfig{acs} !~ /Job Costing--Add Job/) {
+ $button{'Save'} = { ndx => 3, key => 'S', value => $locale->text('Save') };
+
+ if ($form->{id} && $form->{orphaned}) {
+ $button{'Delete'} = { ndx => 16, key => 'D', value => $locale->text('Delete') };
+ }
+ }
+
+ for (sort { $button{$a}->{ndx} <=> $button{$b}->{ndx} } keys %button) { $form->print_button(\%button, $_) }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub list_stock {
+
+ PE->list_stock(\%myconfig, \%$form);
+
+ $form->{title} = $locale->text('Stock Finished Goods');
+ $form->{action} = "list_stock";
+
+ $href = "$form->{script}?";
+ for (qw(action direction oldsort type path login sessionid status)) { $href .= "$_=$form->{$_}&" }
+
+ $form->sort_order();
+
+ $callback = "$form->{script}?";
+ for (qw(action direction oldsort type path login sessionid status)) { $callback .= "$_=$form->{$_}&" }
+
+ @column_index = $form->sort_columns(qw(projectnumber description startdate partnumber production completed stock));
+
+ if ($form->{projectnumber}) {
+ $href .= "&projectnumber=".$form->escape($form->{projectnumber});
+ $callback .= "&projectnumber=$form->{projectnumber}";
+ ($var) = split /--/, $form->{projectnumber};
+ $option .= "\n<br>".$locale->text('Job Number')." : $var";
+ }
+ if ($form->{stockingdate}) {
+ $href .= "&stockingdate=$form->{stockingdate}";
+ $option .= "\n<br>".$locale->text('As of')." : ".$locale->date(\%myconfig, $form->{stockingdate}, 1);
+ }
+
+ $column_header{projectnumber} = qq|<th width=30%><a class=listheading href=$href&sort=projectnumber>|.$locale->text('Number').qq|</a></th>|;
+ $column_header{description} = qq|<th width=50%><a class=listheading href=$href&sort=description>|.$locale->text('Description').qq|</a></th>|;
+ $column_header{startdate} = qq|<th width=10%><a class=listheading href=$href&sort=startdate>|.$locale->text('Startdate').qq|</a></th>|;
+ $column_header{partnumber} = "<th><a class=listheading href=$href&sort=partnumber>" . $locale->text('Assembly') . "</a></th>";
+ $column_header{production} = "<th class=listheading>" . $locale->text('Production') . "</a></th>";
+ $column_header{completed} = "<th class=listheading>" . $locale->text('Completed') . "</a></th>";
+ $column_header{stock} = "<th class=listheading>" . $locale->text('Add') . "</a></th>";
+
+
+ $form->header;
+
+ if (@{ $form->{all_project} }) {
+ $sameitem = $form->{all_project}->[0]->{$form->{sort}};
+ }
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$option</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "$column_header{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ # escape callback
+ $form->{callback} = $callback .= "&sort=$form->{sort}";
+
+ # escape callback for href
+ $callback = $form->escape($callback);
+
+ # flip direction
+ $direction = ($form->{direction} eq 'ASC') ? "ASC" : "DESC";
+ $href =~ s/&direction=(\w+)&/&direction=$direction&/;
+
+ $i = 0;
+ foreach $ref (@{ $form->{all_project} }) {
+
+ $i++;
+
+ for (qw(projectnumber description startdate enddate partnumber)) { $column_data{$_} = qq|<td>$ref->{$_}&nbsp;</td>| }
+ for (qw(production completed)) { $column_data{$_} = qq|<td align=right>|.$form->format_amount(\%myconfig, $ref->{$_}).qq|</td>| }
+ $column_data{stock} = qq|<td><input name="stock_$i" size=6></td>|;
+
+ $j++; $j %= 2;
+
+ print qq|
+ <tr valign=top class=listrow$j>
+ <input type=hidden name="id_$i" value=$ref->{id}>
+|;
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print "
+ </tr>
+";
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+ $form->hide_form(qw(callback type path login sessionid status));
+
+ print qq|
+<input type=hidden name=nextsub value="stock">
+<br>
+<input type=submit class=submit name=action value="|.$locale->text('Continue').qq|">
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub stock {
+
+ if (PE->stock_assembly(\%myconfig, \%$form)) {
+ $form->redirect($locale->text('Assembly stocked!'));
+ } else {
+ $form->error($locale->text('Cannot stock Assembly!'));
+ }
+
+}
+
+
+sub prepare_project {
+
+ $form->{vc} = 'customer';
+
+ PE->get_project(\%myconfig, \%$form);
+
+ $form->{title} = ($form->{id}) ? $locale->text('Edit Project') : $locale->text('Add Project');
+
+ $form->{"old$form->{vc}"} = qq|$form->{"$form->{vc}"}--$form->{"$form->{vc}_id"}|;
+
+ if (@{ $form->{"all_$form->{vc}"} }) {
+ $form->{"$form->{vc}"} = qq|$form->{"$form->{vc}"}--$form->{"$form->{vc}_id"}|;
+ $form->{"select$form->{vc}"} = qq|<option>\n|;
+ for (@{ $form->{"all_$form->{vc}"} }) { $form->{"select$form->{vc}"} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+ }
+
+}
+
+
+sub search {
+
+ # accounting years
+ $form->all_years(\%myconfig);
+
+ if (@{ $form->{all_years} }) {
+ $form->{selectaccountingyear} = "<option>\n";
+ for (@{ $form->{all_years} }) { $form->{selectaccountingyear} .= qq|<option>$_\n| }
+
+ $form->{selectaccountingmonth} = "<option>\n";
+ for (sort keys %{ $form->{all_month} }) { $form->{selectaccountingmonth} .= qq|<option value=$_>|.$locale->text($form->{all_month}{$_}).qq|\n| }
+
+ $fromto = qq|
+ <tr>
+ <th align=right>|.$locale->text('Startdate').qq|</th>
+ <td>|.$locale->text('From').qq| <input name=startdatefrom size=11 title="($myconfig{'dateformat'})">|.$locale->text('To').qq|
+ <input name=startdateto size=11 title="($myconfig{'dateformat'})"></td>
+ </tr>
+|;
+
+ $selectperiod = qq|
+ <tr>
+ <th align=right>|.$locale->text('Period').qq|</th>
+ <td colspan=3>
+ <select name=month>$form->{selectaccountingmonth}</select>
+ <select name=year>$form->{selectaccountingyear}</select>
+ <input name=interval class=radio type=radio value=0 checked>&nbsp;|.$locale->text('Current').qq|
+ <input name=interval class=radio type=radio value=1>&nbsp;|.$locale->text('Month').qq|
+ <input name=interval class=radio type=radio value=3>&nbsp;|.$locale->text('Quarter').qq|
+ <input name=interval class=radio type=radio value=12>&nbsp;|.$locale->text('Year').qq|
+ </td>
+ </tr>
+|;
+ }
+
+
+ $orphaned = qq|
+ <input name=status class=radio type=radio value=orphaned>&nbsp;|.$locale->text('Orphaned');
+
+ if ($form->{type} eq 'project') {
+ $report = "project_report";
+ $sort = "projectnumber";
+ $form->{title} = $locale->text('Projects');
+
+ $number = qq|
+ <tr>
+ <th align=right width=1%>|.$locale->text('Number').qq|</th>
+ <td><input name=projectnumber size=20></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Description').qq|</th>
+ <td><input name=description size=60></td>
+ </tr>
+|;
+ }
+
+ if ($form->{type} eq 'stock') {
+ $report = "list_stock";
+ $form->{title} = $locale->text('Stock Finished Goods');
+ PE->list_stock(\%myconfig, \%$form);
+
+ $selectperiod = "";
+ $orphaned = "";
+ $fromto = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('As of').qq|</th>
+ <td><input name=stockingdate size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+|;
+
+ $number = qq|
+ <tr>
+ <th align=right width=1%>|.$locale->text('Job Number').qq|</th>
+ <td><input name=projectnumber size=20></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Description').qq|</th>
+ <td><input name=description size=60></td>
+ </tr>
+|;
+ }
+
+ if ($form->{type} eq 'job') {
+ $report = "job_report";
+ $sort = "projectnumber";
+ $form->{title} = $locale->text('Jobs');
+
+ $number = qq|
+ <tr>
+ <th align=right width=1%>|.$locale->text('Number').qq|</th>
+ <td><input name=projectnumber size=20></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Description').qq|</th>
+ <td><input name=description size=60></td>
+ </tr>
+|;
+ }
+
+ if ($form->{type} eq 'partsgroup') {
+ $report = "partsgroup_report";
+ $sort = 'partsgroup';
+ $form->{title} = $locale->text('Groups');
+
+ $fromto = "";
+ $selectperiod = "";
+ $number = qq|
+ <tr>
+ <th align=right width=1%>|.$locale->text('Group').qq|</th>
+ <td><input name=partsgroup size=20></td>
+ </tr>
+|;
+ }
+
+ if ($form->{type} eq 'pricegroup') {
+ $report = "pricegroup_report";
+ $sort = 'pricegroup';
+ $form->{title} = $locale->text('Pricegroups');
+
+ $fromto = "";
+ $selectperiod = "";
+ $number = qq|
+ <tr>
+ <th align=right width=1%>|.$locale->text('Pricegroup').qq|</th>
+ <td><input name=pricegroup size=20></td>
+ </tr>
+|;
+ }
+
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=sort value=$sort>
+<input type=hidden name=type value=$form->{type}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ $number
+ $fromto
+ $selectperiod
+ <tr>
+ <td></td>
+ <td><input name=status class=radio type=radio value=all checked>&nbsp;|.$locale->text('All').qq|
+ <input name=status class=radio type=radio value=active>&nbsp;|.$locale->text('Active').qq|
+ <input name=status class=radio type=radio value=inactive>&nbsp;|.$locale->text('Inactive').qq|
+ $orphaned</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<input type=hidden name=nextsub value=$report>
+|;
+
+ $form->hide_form(qw(path login sessionid title));
+
+ print qq|
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">
+</form>
+|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+</body>
+</html>
+|;
+
+}
+
+
+sub job_report {
+
+ for (qw(projectnumber description)) { $form->{$_} = $form->unescape($form->{$_}) }
+ PE->jobs(\%myconfig, \%$form);
+
+ $form->{action} = "job_report";
+ &list_projects;
+
+}
+
+
+sub project_report {
+
+ for (qw(projectnumber description)) { $form->{$_} = $form->unescape($form->{$_}) }
+ PE->projects(\%myconfig, \%$form);
+
+ $form->{action} = "project_report";
+ &list_projects;
+
+}
+
+
+sub list_projects {
+
+ $href = "$form->{script}?";
+ for (qw(action direction oldsort type path login sessionid status startdatefrom startdateto)) { $href .= "$_=$form->{$_}&" }
+
+ $form->sort_order();
+
+ $callback = "$form->{script}?";
+ for (qw(action direction oldsort type path login sessionid status startdatefrom startdateto)) { $callback .= "$_=$form->{$_}&" }
+
+ @column_index = $form->sort_columns(qw(projectnumber description name startdate enddate));
+
+ if ($form->{status} eq 'all') {
+ $option = $locale->text('All');
+ }
+ if ($form->{status} eq 'orphaned') {
+ $option .= $locale->text('Orphaned');
+ }
+ if ($form->{status} eq 'active') {
+ $option = $locale->text('Active');
+ @column_index = $form->sort_columns(qw(projectnumber description name startdate));
+ }
+ if ($form->{status} eq 'inactive') {
+ $option = $locale->text('Inactive');
+ }
+
+ if ($form->{type} eq 'project') {
+ $label = $locale->text('Project');
+ $form->{title} = $locale->text('Projects');
+ } else {
+ $label = $locale->text('Job');
+ push @column_index, qw(partnumber production completed);
+ $form->{title} = $locale->text('Jobs');
+ }
+
+ if ($form->{projectnumber}) {
+ $href .= "&projectnumber=".$form->escape($form->{projectnumber});
+ $callback .= "&projectnumber=$form->{projectnumber}";
+ $option .= "\n<br>$label : $form->{projectnumber}";
+ }
+ if ($form->{description}) {
+ $href .= "&description=".$form->escape($form->{description});
+ $callback .= "&description=$form->{description}";
+ $option .= "\n<br>".$locale->text('Description')." : $form->{description}";
+ }
+ if ($form->{startdatefrom}) {
+ $href .= "&startdatefrom=$form->{startdatefrom}";
+ $option .= "\n<br>".$locale->text('From')."&nbsp;".$locale->date(\%myconfig, $form->{startdatefrom}, 1);
+ }
+ if ($form->{startdateto}) {
+ $href .= "&startdateto=$form->{startdateto}";
+ if ($form->{startdatefrom}) {
+ $option .= " ";
+ } else {
+ $option .= "\n<br>" if ($option);
+ }
+ $option .= $locale->text('To')."&nbsp;".$locale->date(\%myconfig, $form->{startdateto}, 1);
+ }
+
+
+ $column_header{projectnumber} = qq|<th><a class=listheading href=$href&sort=projectnumber>|.$locale->text('Number').qq|</a></th>|;
+ $column_header{description} = qq|<th><a class=listheading href=$href&sort=description>|.$locale->text('Description').qq|</a></th>|;
+ $column_header{startdate} = qq|<th width=10><a class=listheading href=$href&sort=startdate>|.$locale->text('Startdate').qq|</a></th>|;
+ $column_header{enddate} = qq|<th width=10><a class=listheading href=$href&sort=enddate>|.$locale->text('Enddate').qq|</a></th>|;
+
+ $column_header{partnumber} = "<th><a class=listheading href=$href&sort=partnumber>" . $locale->text('Assembly') . "</a></th>";
+ $column_header{production} = "<th width=10 class=listheading>" . $locale->text('Production') . "</th>";
+ $column_header{completed} = "<th width=10 class=listheading>" . $locale->text('Completed') . "</th>";
+ $column_header{name} = "<th class=listheading>" . $locale->text('Customer') . "</th>";
+
+
+ $form->header;
+
+ if (@{ $form->{all_project} }) {
+ $sameitem = $form->{all_project}->[0]->{$form->{sort}};
+ }
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$option</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "$column_header{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ # escape callback
+ $form->{callback} = $callback .= "&sort=$form->{sort}";
+
+ # escape callback for href
+ $callback = $form->escape($callback);
+
+ # flip direction
+ $direction = ($form->{direction} eq 'ASC') ? "ASC" : "DESC";
+ $href =~ s/&direction=(\w+)&/&direction=$direction&/;
+
+ foreach $ref (@{ $form->{all_project} }) {
+
+ for (qw(description startdate enddate name)) { $column_data{$_} = qq|<td>$ref->{$_}&nbsp;</td>| }
+
+ for (qw(production completed)) { $column_data{$_} = qq|<td align=right>|.$form->format_amount(\%myconfig, $ref->{$_}) }
+
+ $column_data{projectnumber} = qq|<td><a href=$form->{script}?action=edit&type=$form->{type}&status=$form->{status}&id=$ref->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&project=$form->{project}&callback=$callback>$ref->{projectnumber}</td>|;
+ $column_data{partnumber} = qq|<td><a href=ic.pl?action=edit&id=$ref->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{partnumber}</td>|;
+
+ $j++; $j %= 2;
+
+ print qq|
+ <tr valign=top class=listrow$j>
+|;
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print "
+ </tr>
+";
+ }
+
+ $i = 1;
+ if ($form->{type} eq 'project') {
+ if ($myconfig{acs} !~ /Projects--Projects/) {
+ $button{'Projects--Add Project'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Add Project').qq|"> |;
+ $button{'Projects--Add Project'}{order} = $i++;
+
+ for (split /;/, $myconfig{acs}) {
+ delete $button{$_};
+ }
+ }
+ } else {
+ if ($myconfig{acs} !~ /Job Costing--Job Costing/) {
+ $button{'Job Costing--Add Job'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Add Job').qq|"> |;
+ $button{'Job Costing--Add Job'}{order} = $i++;
+
+ for (split /;/, $myconfig{acs}) {
+ delete $button{$_};
+ }
+ }
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+<form method=post action=$form->{script}>
+|;
+
+ $form->hide_form(qw(callback type path login sessionid));
+
+ foreach $item (sort { $a->{order} <=> $b->{order} } %button) {
+ print $item->{code};
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub project_header {
+
+ $form->{description} = $form->quote($form->{description});
+
+ if (($rows = $form->numtextrows($form->{description}, 60)) > 1) {
+ $description = qq|<textarea name="description" rows=$rows cols=60 style="width: 100%" wrap=soft>$form->{description}</textarea>|;
+ } else {
+ $description = qq|<input name=description size=60 value="$form->{description}">|;
+ }
+
+ $form->{"select$form->{vc}"} = $form->unescape($form->{"select$form->{vc}"});
+ $form->{"select$form->{vc}"} =~ s/ selected//;
+ $form->{"select$form->{vc}"} =~ s/(<option value="\Q$form->{"$form->{vc}"}\E")/$1 selected/;
+
+ $label = ucfirst $form->{vc};
+ if ($form->{"select$form->{vc}"}) {
+ $name = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text($label).qq|</th>
+ <td colspan=3><select name="$form->{vc}">$form->{"select$form->{vc}"}</select></td>
+ <input type=hidden name="select$form->{vc}" value="|.
+ $form->escape($form->{"select$form->{vc}"},1).qq|">
+ </tr>
+|;
+ } else {
+ $name = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text($label).qq|</th>
+ <td colspan=3><input name="$form->{vc}" value="$form->{"$form->{vc}"}" size=35></td>
+ <input type=hidden name="select$form->{vc}" value="|.
+ $form->escape($form->{"select$form->{vc}"},1).qq|">
+ </tr>
+|;
+ }
+
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+|;
+
+ $form->hide_form("id", "type", "old$form->{vc}", "$form->{vc}_id", "orphaned","vc", "title");
+
+ print qq|
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right>|.$locale->text('Number').qq|</th>
+ <td><input name=projectnumber size=20 value="$form->{projectnumber}"></td>
+ <th align=right>|.$locale->text('Description').qq|</th>
+ <td>$description</td>
+ </tr>
+ $name
+ <tr>
+ <th align=right>|.$locale->text('Startdate').qq|</th>
+ <td><input name=startdate size=11 title="($myconfig{dateformat})" value=$form->{startdate}></td>
+ <th align=right>|.$locale->text('Enddate').qq|</th>
+ <td><input name=enddate size=11 title="($myconfig{dateformat})" value=$form->{enddate}></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+}
+
+
+sub project_footer {
+
+ $form->hide_form(qw(callback path login sessionid));
+
+ %button = ('Update' => { ndx => 1, key => 'U', value => $locale->text('Update') },
+ );
+
+ if ($myconfig{acs} !~ /Projects--Add Project/) {
+ $button{'Save'} = { ndx => 3, key => 'S', value => $locale->text('Save') };
+
+ if ($form->{id} && $form->{orphaned}) {
+ $button{'Delete'} = { ndx => 16, key => 'D', value => $locale->text('Delete') };
+ }
+ }
+
+ for (sort { $button{$a}->{ndx} <=> $button{$b}->{ndx} } keys %button) { $form->print_button(\%button, $_) }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub save {
+
+ if ($form->{translation}) {
+ PE->save_translation(\%myconfig, \%$form);
+ $form->redirect($locale->text('Translations saved!'));
+ exit;
+ }
+
+ if ($form->{type} eq 'project') {
+ if ($form->{"select$form->{vc}"}) {
+ ($null, $form->{"$form->{vc}_id"}) = split /--/, $form->{"$form->{vc}"};
+ } else {
+ if ($form->{"old$form->{vc}"} ne qq|$form->{"$form->{vc}"}--$form->{"$form->{vc}_id"}|) {
+
+ if (($rv = $form->get_name(\%myconfig, $form->{vc}, $form->{startdate})) > 1) {
+ &select_name;
+ exit;
+ }
+
+ if ($rv == 1) {
+ $form->{"$form->{vc}_id"} = $form->{name_list}[0]->{id};
+ $form->{"$form->{vc}"} = $form->{name_list}[0]->{name};
+ $form->{"old$form->{vc}"} = qq|$form->{"$form->{vc}"}--$form->{"$form->{vc}_id"}|;
+ }
+ }
+ }
+
+ PE->save_project(\%myconfig, \%$form);
+ $form->redirect($locale->text('Project saved!'));
+ }
+
+ if ($form->{type} eq 'partsgroup') {
+ $form->isblank("partsgroup", $locale->text('Group missing!'));
+ PE->save_partsgroup(\%myconfig, \%$form);
+ $form->redirect($locale->text('Group saved!'));
+ }
+
+ if ($form->{type} eq 'pricegroup') {
+ $form->isblank("pricegroup", $locale->text('Pricegroup missing!'));
+ PE->save_pricegroup(\%myconfig, \%$form);
+ $form->redirect($locale->text('Pricegroup saved!'));
+ }
+
+
+ if ($form->{type} eq 'job') {
+ if ($form->{"select$form->{vc}"}) {
+ ($null, $form->{"$form->{vc}_id"}) = split /--/, $form->{"$form->{vc}"};
+ } else {
+ if ($form->{"old$form->{vc}"} ne qq|$form->{"$form->{vc}"}--$form->{"$form->{vc}_id"}|) {
+
+ if (($rv = $form->get_name(\%myconfig, $form->{vc}, $form->{startdate})) > 1) {
+ &select_name;
+ exit;
+ }
+
+ if ($rv == 1) {
+ $form->{"$form->{vc}_id"} = $form->{name_list}[0]->{id};
+ $form->{"$form->{vc}"} = $form->{name_list}[0]->{name};
+ $form->{"old$form->{vc}"} = qq|$form->{"$form->{vc}"}--$form->{"$form->{vc}_id"}|;
+ }
+ }
+ }
+
+ PE->save_job(\%myconfig, \%$form);
+ $form->redirect($locale->text('Job saved!'));
+ }
+
+}
+
+
+sub delete {
+
+ if ($form->{translation}) {
+ PE->delete_translation(\%myconfig, \%$form);
+ $form->redirect($locale->text('Translation deleted!'));
+
+ } else {
+
+ if ($form->{type} eq 'project') {
+ PE->delete_project(\%myconfig, \%$form);
+ $form->redirect($locale->text('Project deleted!'));
+ }
+ if ($form->{type} eq 'job') {
+ PE->delete_job(\%myconfig, \%$form);
+ $form->redirect($locale->text('Job deleted!'));
+ }
+ if ($form->{type} eq 'partsgroup') {
+ PE->delete_partsgroup(\%myconfig, \%$form);
+ $form->redirect($locale->text('Group deleted!'));
+ }
+ if ($form->{type} eq 'pricegroup') {
+ PE->delete_pricegroup(\%myconfig, \%$form);
+ $form->redirect($locale->text('Pricegroup deleted!'));
+ }
+ }
+
+}
+
+
+sub partsgroup_report {
+
+ $form->{partsgroup} = $form->unescape($form->{partsgroup});
+ PE->partsgroups(\%myconfig, \%$form);
+
+ $href = "$form->{script}?action=partsgroup_report&direction=$form->{direction}&oldsort=$form->{oldsort}&type=$form->{type}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&status=$form->{status}";
+
+ $form->sort_order();
+
+ $callback = "$form->{script}?action=partsgroup_report&direction=$form->{direction}&oldsort=$form->{oldsort}&type=$form->{type}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&status=$form->{status}";
+
+ if ($form->{status} eq 'all') {
+ $option = $locale->text('All');
+ }
+ if ($form->{status} eq 'orphaned') {
+ $option .= $locale->text('Orphaned');
+ }
+ if ($form->{partsgroup}) {
+ $callback .= "&partsgroup=$form->{partsgroup}";
+ $option .= "\n<br>".$locale->text('Group')." : $form->{partsgroup}";
+ }
+
+
+ @column_index = $form->sort_columns(qw(partsgroup));
+
+ $column_header{partsgroup} = qq|<th><a class=listheading href=$href&sort=partsgroup width=90%>|.$locale->text('Group').qq|</a></th>|;
+
+ $form->{title} = $locale->text('Groups');
+
+ $form->header;
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$option</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "$column_header{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ # escape callback
+ $form->{callback} = $callback;
+
+ # escape callback for href
+ $callback = $form->escape($callback);
+
+ foreach $ref (@{ $form->{item_list} }) {
+
+ $i++; $i %= 2;
+
+ print qq|
+ <tr valign=top class=listrow$i>
+|;
+
+ $column_data{partsgroup} = qq|<td><a href=$form->{script}?action=edit&type=$form->{type}&status=$form->{status}&id=$ref->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{partsgroup}</td>|;
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print "
+ </tr>
+";
+ }
+
+ $i = 1;
+ if ($myconfig{acs} !~ /Goods \& Services--Goods \& Services/) {
+ $button{'Goods & Services--Add Group'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Add Group').qq|"> |;
+ $button{'Goods & Services--Add Group'}{order} = $i++;
+
+ foreach $item (split /;/, $myconfig{acs}) {
+ delete $button{$item};
+ }
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+<form method=post action=$form->{script}>
+|;
+
+ $form->hide_form(qw(callback type path login sessionid));
+
+ foreach $item (sort { $a->{order} <=> $b->{order} } %button) {
+ print $item->{code};
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub partsgroup_header {
+
+ $form->{action} =~ s/_.*//;
+ $form->{title} = $locale->text(ucfirst $form->{action} . " Group");
+
+# $locale->text('Add Group')
+# $locale->text('Edit Group')
+
+ $form->{partsgroup} = $form->quote($form->{partsgroup});
+
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=id value=$form->{id}>
+<input type=hidden name=type value=$form->{type}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+ <th align=right>|.$locale->text('Group').qq|</th>
+
+ <td><input name=partsgroup size=30 value="$form->{partsgroup}"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td colspan=2><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+}
+
+
+sub partsgroup_footer {
+
+ $form->hide_form(qw(callback path login sessionid));
+
+ if ($myconfig{acs} !~ /Goods \& Services--Add Group/) {
+ print qq|
+<input type=submit class=submit name=action value="|.$locale->text('Save').qq|">
+|;
+
+ if ($form->{id} && $form->{orphaned}) {
+ print qq|
+<input type=submit class=submit name=action value="|.$locale->text('Delete').qq|">|;
+ }
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub pricegroup_report {
+
+ $form->{pricegroup} = $form->unescape($form->{pricegroup});
+ PE->pricegroups(\%myconfig, \%$form);
+
+ $href = "$form->{script}?action=pricegroup_report&direction=$form->{direction}&oldsort=$form->{oldsort}&type=$form->{type}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&status=$form->{status}";
+
+ $form->sort_order();
+
+ $callback = "$form->{script}?action=pricegroup_report&direction=$form->{direction}&oldsort=$form->{oldsort}&type=$form->{type}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&status=$form->{status}";
+
+ if ($form->{status} eq 'all') {
+ $option = $locale->text('All');
+ }
+ if ($form->{status} eq 'orphaned') {
+ $option .= $locale->text('Orphaned');
+ }
+ if ($form->{pricegroup}) {
+ $callback .= "&pricegroup=$form->{pricegroup}";
+ $option .= "\n<br>".$locale->text('Pricegroup')." : $form->{pricegroup}";
+ }
+
+
+ @column_index = $form->sort_columns(qw(pricegroup));
+
+ $column_header{pricegroup} = qq|<th><a class=listheading href=$href&sort=pricegroup width=90%>|.$locale->text('Pricegroup').qq|</th>|;
+
+ $form->{title} = $locale->text('Pricegroups');
+
+ $form->header;
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$option</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "$column_header{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ # escape callback
+ $form->{callback} = $callback;
+
+ # escape callback for href
+ $callback = $form->escape($callback);
+
+ foreach $ref (@{ $form->{item_list} }) {
+
+ $i++; $i %= 2;
+
+ print qq|
+ <tr valign=top class=listrow$i>
+|;
+
+ $column_data{pricegroup} = qq|<td><a href=$form->{script}?action=edit&type=$form->{type}&status=$form->{status}&id=$ref->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{pricegroup}</td>|;
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print "
+ </tr>
+";
+ }
+
+ $i = 1;
+ if ($myconfig{acs} !~ /Goods \& Services--Goods \& Services/) {
+ $button{'Goods & Services--Add Pricegroup'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Add Pricegroup').qq|"> |;
+ $button{'Goods & Services--Add Pricegroup'}{order} = $i++;
+
+ foreach $item (split /;/, $myconfig{acs}) {
+ delete $button{$item};
+ }
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+<form method=post action=$form->{script}>
+|;
+
+ $form->hide_form(qw(callback type path login sessionid));
+
+ foreach $item (sort { $a->{order} <=> $b->{order} } %button) {
+ print $item->{code};
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub pricegroup_header {
+
+ $form->{title} = $locale->text(ucfirst $form->{action} ." Pricegroup");
+
+# $locale->text('Add Pricegroup')
+# $locale->text('Edit Pricegroup')
+
+ $form->{pricegroup} = $form->quote($form->{pricegroup});
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=id value=$form->{id}>
+<input type=hidden name=type value=$form->{type}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+ <th align=right>|.$locale->text('Pricegroup').qq|</th>
+
+ <td><input name=pricegroup size=30 value="$form->{pricegroup}"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td colspan=2><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+}
+
+
+sub pricegroup_footer {
+
+ $form->hide_form(qw(callback path login sessionid));
+
+ if ($myconfig{acs} !~ /Goods \& Services--Add Pricegroup/) {
+ print qq|
+<input type=submit class=submit name=action value="|.$locale->text('Save').qq|">
+|;
+
+ if ($form->{id} && $form->{orphaned}) {
+ print qq|
+<input type=submit class=submit name=action value="|.$locale->text('Delete').qq|">|;
+ }
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub translation {
+
+ if ($form->{translation} eq 'description') {
+ $form->{title} = $locale->text('Description Translations');
+ $sort = qq|<input type=hidden name=sort value=partnumber>|;
+ $form->{number} = "partnumber";
+ $number = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Number').qq|</th>
+ <td><input name=partnumber size=20></td>
+ </tr>
+|;
+ }
+
+ if ($form->{translation} eq 'partsgroup') {
+ $form->{title} = $locale->text('Group Translations');
+ $sort = qq|<input type=hidden name=sort value=partsgroup>|;
+ }
+
+ if ($form->{translation} eq 'project') {
+ $form->{title} = $locale->text('Project Description Translations');
+ $form->{number} = "projectnumber";
+ $sort = qq|<input type=hidden name=sort value=projectnumber>|;
+ $number = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Project Number').qq|</th>
+ <td><input name=projectnumber size=20></td>
+ </tr>
+|;
+ }
+
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+|;
+
+ $form->hide_form(qw(translation title number));
+
+ print qq|
+
+<table width="100%">
+ <tr><th class=listtop>$form->{title}</th></tr>
+ <tr height="5"></tr>
+ <tr valign=top>
+ <td>
+ <table>
+ $number
+ <tr>
+ <th align=right nowrap>|.$locale->text('Description').qq|</th>
+ <td colspan=3><input name=description size=40></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr><td><hr size=3 noshade></td></tr>
+</table>
+
+<input type=hidden name=nextsub value=list_translations>
+$sort
+|;
+
+ $form->hide_form(qw(path login sessionid));
+
+ print qq|
+
+<br>
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub list_translations {
+
+ $title = $form->escape($form->{title},1);
+
+ $callback = "$form->{script}?action=list_translations&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&translation=$form->{translation}&number=$form->{number}&title=$title";
+
+ if ($form->{"$form->{number}"}) {
+ $callback .= qq|&$form->{number}=$form->{"$form->{number}"}|;
+ $option .= $locale->text('Number').qq| : $form->{"$form->{number}"}<br>|;
+ }
+ if ($form->{description}) {
+ $callback .= "&description=$form->{description}";
+ $description = $form->{description};
+ $description =~ s/\r?\n/<br>/g;
+ $option .= $locale->text('Description').qq| : $form->{description}<br>|;
+ }
+
+ if ($form->{translation} eq 'partsgroup') {
+ @column_index = qw(description language translation);
+ $form->{sort} = "";
+ } else {
+ @column_index = $form->sort_columns("$form->{number}", "description", "language", "translation");
+ }
+
+ &{ "PE::$form->{translation}_translations" }("", \%myconfig, \%$form);
+
+ $callback .= "&direction=$form->{direction}&oldsort=$form->{oldsort}";
+
+ $href = $callback;
+
+ $form->sort_order();
+
+ $callback =~ s/(direction=).*\&{1}/$1$form->{direction}\&/;
+
+ $column_header{"$form->{number}"} = qq|<th nowrap><a class=listheading href=$href&sort=$form->{number}>|.$locale->text('Number').qq|</a></th>|;
+ $column_header{description} = qq|<th nowrap width=40%><a class=listheading href=$href&sort=description>|.$locale->text('Description').qq|</a></th>|;
+ $column_header{language} = qq|<th nowrap class=listheading>|.$locale->text('Language').qq|</a></th>|;
+ $column_header{translation} = qq|<th nowrap width=40% class=listheading>|.$locale->text('Translation').qq|</a></th>|;
+
+ $form->header;
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+
+ <tr><td>$option</td></tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "\n$column_header{$_}" }
+
+ print qq|
+ </tr>
+ |;
+
+
+ # add order to callback
+ $form->{callback} = $callback .= "&sort=$form->{sort}";
+
+ # escape callback for href
+ $callback = $form->escape($callback);
+
+ if (@{ $form->{translations} }) {
+ $sameitem = $form->{translations}->[0]->{$form->{sort}};
+ }
+
+ foreach $ref (@{ $form->{translations} }) {
+
+ $ref->{description} =~ s/\r?\n/<br>/g;
+
+ for (@column_index) { $column_data{$_} = "<td>$ref->{$_}&nbsp;</td>" }
+
+ $column_data{description} = "<td><a href=$form->{script}?action=edit_translation&translation=$form->{translation}&number=$form->{number}&id=$ref->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{description}&nbsp;</a></td>";
+
+ $i++; $i %= 2;
+ print "<tr class=listrow$i>";
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr><td><hr size=3 noshade></td></tr>
+</table>
+
+|;
+
+ print qq|
+
+<br>
+
+<form method=post action=$form->{script}>
+
+<input name=callback type=hidden value="$form->{callback}">
+|;
+
+ $form->hide_form(qw(path login sessionid));
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub edit_translation {
+
+ &{ "PE::$form->{translation}_translations" }("", \%myconfig, \%$form);
+
+ $form->error($locale->text('Languages not defined!')) unless @{ $form->{all_language} };
+
+ $form->{selectlanguage} = qq|<option>\n|;
+ for (@{ $form->{all_language} }) { $form->{selectlanguage} .= qq|<option value="$_->{code}">$_->{description}\n| }
+
+ $form->{"$form->{number}"} = $form->{translations}->[0]->{"$form->{number}"};
+ $form->{description} = $form->{translations}->[0]->{description};
+ $form->{description} =~ s/\r?\n/<br>/g;
+
+ shift @{ $form->{translations} };
+
+ $i = 1;
+ foreach $row (@{ $form->{translations} }) {
+ $form->{"language_code_$i"} = $row->{code};
+ $form->{"translation_$i"} = $row->{translation};
+ $i++;
+ }
+ $form->{translation_rows} = $i - 1;
+
+ $form->{title} = $locale->text('Edit Description Translations');
+
+ &translation_header;
+ &translation_footer;
+
+}
+
+
+sub translation_header {
+
+ $form->{translation_rows}++;
+
+ $form->{selectlanguage} = $form->unescape($form->{selectlanguage});
+ for $i (1 .. $form->{translation_rows}) {
+ $form->{"selectlanguage_$i"} = $form->{selectlanguage};
+ if ($form->{"language_code_$i"}) {
+ $form->{"selectlanguage_$i"} =~ s/(<option value="\Q$form->{"language_code_$i"}\E")/$1 selected/;
+ }
+ }
+
+ $form->{selectlanguage} = $form->escape($form->{selectlanguage},1);
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=$form->{number} value="|.$form->quote($form->{"$form->{number}"}).qq|">
+<input type=hidden name=description value="|.$form->quote($form->{description}).qq|">
+|;
+
+ $form->hide_form(qw(id trans_id selectlanguage translation_rows number translation title));
+
+ print qq|
+
+<table width="100%">
+ <tr><th class=listtop>$form->{title}</th></tr>
+ <tr height="5"></tr>
+ <tr valign=top>
+ <td>
+ <table width=100%>
+ <tr>
+ <td align=left>$form->{"$form->{number}"}</th>
+ <td align=left>$form->{description}</th>
+ </tr>
+ <tr>
+ <tr>
+ <th class=listheading>|.$locale->text('Language').qq|</th>
+ <th class=listheading>|.$locale->text('Translation').qq|</th>
+ </tr>
+|;
+
+ for $i (1 .. $form->{translation_rows}) {
+
+ if (($rows = $form->numtextrows($form->{"translation_$i"}, 40)) > 1) {
+ $translation = qq|<textarea name="translation_$i" rows=$rows cols=40 wrap=soft>$form->{"translation_$i"}</textarea>|;
+ } else {
+ $translation = qq|<input name="translation_$i" size=40 value="$form->{"translation_$i"}">|;
+ }
+
+ print qq|
+ <tr valign=top>
+ <td><select name="language_code_$i">$form->{"selectlanguage_$i"}</select></td>
+ <td>$translation</td>
+ </tr>
+|;
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+}
+
+
+sub translation_footer {
+
+ $form->hide_form(qw(path login sessionid callback));
+
+ %button = ('Update' => { ndx => 1, key => 'U', value => $locale->text('Update') },
+ 'Save' => { ndx => 3, key => 'S', value => $locale->text('Save') },
+ 'Delete' => { ndx => 16, key => 'D', value => $locale->text('Delete') },
+ );
+
+ if (! $form->{trans_id}) {
+ delete $button{'Delete'};
+ }
+
+ for (sort { $button{$a}->{ndx} <=> $button{$b}->{ndx} } keys %button) { $form->print_button(\%button, $_) }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+ </form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub update {
+
+ if ($form->{translation}) {
+ @flds = qw(language translation);
+ $count = 0;
+ @a = ();
+ for $i (1 .. $form->{translation_rows}) {
+ if ($form->{"language_code_$i"} ne "") {
+ push @a, {};
+ $j = $#a;
+
+ for (@flds) { $a[$j]->{$_} = $form->{"${_}_$i"} }
+ $count++;
+ }
+ }
+ $form->redo_rows(\@flds, \@a, $count, $form->{translation_rows});
+ $form->{translation_rows} = $count;
+
+ &translation_header;
+ &translation_footer;
+
+ exit;
+
+ }
+
+ if ($form->{type} =~ /(job|project)/) {
+
+# $locale->text('Customer not on file!')
+# $locale->text('Vendor not on file!')
+
+ for (qw(production listprice sellprice weight)) { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) }
+
+ $form->{projectnumber} = $form->update_defaults(\%myconfig, "projectnumber") unless $form->{projectnumber};
+
+ if ($form->{"select$form->{vc}"}) {
+ if ($form->{startdate} ne $form->{oldstartdate} || $form->{enddate} ne $form->{oldenddate}) {
+
+ PE->get_customer(\%myconfig, \%$form);
+
+ if (@{ $form->{"all_$form->{vc}"} }) {
+ $form->{"select$form->{vc}"} = qq|<option>\n|;
+ for (@{ $form->{"all_$form->{vc}"} }) { $form->{"select$form->{vc}"} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+ }
+ }
+
+ $form->{"old$form->{vc}"} = $form->{"$form->{vc}"};
+ ($null, $form->{"$form->{vc}_id"}) = split /--/, $form->{"$form->{vc}"};
+
+ } else {
+
+ if ($form->{"old$form->{vc}"} ne qq|$form->{"$form->{vc}"}--$form->{"$form->{vc}_id"}|) {
+
+ if (($rv = $form->get_name(\%myconfig, $form->{vc}, $form->{startdate})) > 1) {
+ &select_name;
+ exit;
+ }
+
+ if ($rv == 1) {
+ $form->{"$form->{vc}_id"} = $form->{name_list}[0]->{id};
+ $form->{"$form->{vc}"} = $form->{name_list}[0]->{name};
+ $form->{"old$form->{vc}"} = qq|$form->{"$form->{vc}"}--$form->{"$form->{vc}_id"}|;
+ } else {
+ $msg = ucfirst $form->{vc} ." not on file!";
+ $form->error($locale->text($msg));
+ }
+ }
+ }
+ }
+
+ &display_form;
+
+}
+
+
+sub select_name {
+
+ $label = ucfirst $form->{vc};
+
+ @column_index = qw(ndx name address);
+ $column_data{ndx} = qq|<th>&nbsp;</th>|;
+ $column_data{name} = qq|<th class=listheading>|.$locale->text($label).qq|</th>|;
+ $column_data{address} = qq|<th class=listheading colspan=5>|.$locale->text('Address').qq|</th>|;
+
+ $form->header;
+ $title = $locale->text('Select from one of the names below');
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$title</th>
+ </tr>
+ <tr space=5></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ @column_index = qw(ndx name address city state zipcode country);
+
+ my $i = 0;
+ foreach $ref (@{ $form->{name_list} }) {
+ $checked = ($i++) ? "" : "checked";
+
+ $ref->{name} = $form->quote($ref->{name});
+
+ $column_data{ndx} = qq|<td><input name=ndx class=radio type=radio value=$i $checked></td>|;
+ $column_data{name} = qq|<td><input name="new_name_$i" type=hidden value="$ref->{name}">$ref->{name}</td>|;
+ $column_data{address} = qq|<td>$ref->{address1} $ref->{address2}</td>|;
+ for (qw(city state zipcode country)) { $column_data{$_} = qq|<td>$ref->{$_}&nbsp;</td>| }
+
+ $j++; $j %= 2;
+ print qq|
+ <tr class=listrow$j>|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+
+<input name="new_id_$i" type=hidden value=$ref->{id}>
+
+|;
+
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<input name=lastndx type=hidden value=$i>
+
+|;
+
+ # delete variables
+ for (qw(action nextsub name_list)) { delete $form->{$_} }
+
+ $form->hide_form;
+
+ print qq|
+<input type=hidden name=nextsub value=name_selected>
+<br>
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub name_selected {
+
+ # replace the variable with the one checked
+
+ # index for new item
+ $i = $form->{ndx};
+
+ $form->{$form->{vc}} = $form->{"new_name_$i"};
+ $form->{"$form->{vc}_id"} = $form->{"new_id_$i"};
+ $form->{"old$form->{vc}"} = qq|$form->{$form->{vc}}--$form->{"$form->{vc}_id"}|;
+
+ # delete all the new_ variables
+ for $i (1 .. $form->{lastndx}) {
+ for (qw(id name)) { delete $form->{"new_${_}_$i"} }
+ }
+
+ for (qw(ndx lastndx nextsub)) { delete $form->{$_} }
+
+ &display_form;
+
+}
+
+
+sub display_form {
+
+ &{ "$form->{type}_header" };
+ &{ "$form->{type}_footer" };
+
+}
+
+sub continue { &{ $form->{nextsub} } };
+
+sub add_group { &add }
+sub add_project { &add }
+sub add_job { &add }
+sub add_pricegroup { &add }
+
+
+
+sub project_sales_order {
+
+ PE->project_sales_order(\%myconfig, \%$form);
+
+ if (@{ $form->{all_years} }) {
+ $form->{selectaccountingyear} = "<option>\n";
+ for (@{ $form->{all_years} }) { $form->{selectaccountingyear} .= qq|<option>$_\n| }
+
+ $form->{selectaccountingmonth} = "<option>\n";
+ for (sort keys %{ $form->{all_month} }) { $form->{selectaccountingmonth} .= qq|<option value=$_>|.$locale->text($form->{all_month}{$_}).qq|\n| }
+
+ $selectfrom = qq|
+ <tr>
+ <th align=right>|.$locale->text('Period').qq|</th>
+ <td colspan=3>
+ <select name=month>$form->{selectaccountingmonth}</select>
+ <select name=year>$form->{selectaccountingyear}</select>
+ <input name=interval class=radio type=radio value=0 checked>&nbsp;|.$locale->text('Current').qq|
+ <input name=interval class=radio type=radio value=1>&nbsp;|.$locale->text('Month').qq|
+ <input name=interval class=radio type=radio value=3>&nbsp;|.$locale->text('Quarter').qq|
+ <input name=interval class=radio type=radio value=12>&nbsp;|.$locale->text('Year').qq|
+ </td>
+ </tr>
+|;
+ }
+
+ $fromto = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Transaction Dates').qq|</th>
+ <td>|.$locale->text('From').qq| <input name=transdatefrom size=11 title="$myconfig{dateformat}">
+ |.$locale->text('To').qq| <input name=transdateto size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+ $selectfrom
+|;
+
+ if (@{ $form->{all_project} }) {
+ $form->{selectprojectnumber} = "<option>\n";
+ for (@{ $form->{all_project} }) { $form->{selectprojectnumber} .= qq|<option value="$_->{projectnumber}--$_->{id}">$_->{projectnumber}\n| }
+ } else {
+ $form->error($locale->text('No open Projects!'));
+ }
+
+ if (@{ $form->{all_employee} }) {
+ $form->{selectemployee} = "<option>\n";
+ for (@{ $form->{all_employee} }) { $form->{selectemployee} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+
+ $employee = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Employee').qq|</th>
+ <td><select name=employee>$form->{selectemployee}</select></td>
+ </tr>
+|;
+ }
+
+ $form->{title} = $locale->text('Generate Sales Orders');
+ $form->{vc} = "customer";
+ $form->{type} = "sales_order";
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=right>|.$locale->text('Project').qq|</th>
+ <td colspan=3><select name=projectnumber>$form->{selectprojectnumber}</select></td>
+ </tr>
+ $employee
+ $fromto
+ <tr>
+ <th></th>
+ <td><input name=summary type=radio class=radio value=1 checked> |.$locale->text('Summary').qq|
+ <input name=summary type=radio class=radio value=0> |.$locale->text('Detail').qq|
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+|;
+
+ $form->{nextsub} = "project_jcitems_list";
+ $form->hide_form(qw(path login sessionid nextsub type vc));
+
+ print qq|
+<input type=submit class=submit name=action value="|.$locale->text('Continue').qq|">
+
+</form>
+|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+</body>
+</html>
+|;
+
+}
+
+
+sub project_jcitems_list {
+
+ $form->{projectnumber} = $form->unescape($form->{projectnumber});
+ $form->{employee} = $form->unescape($form->{employee});
+ $form->{callback} = "$form->{script}?action=project_jcitems_list";
+ for (qw(month year interval summary transdatefrom transdateto login path sessionid nextsub type vc)) { $form->{callback} .= "&$_=$form->{$_}" }
+ for (qw(employe projectnumber)) { $form->{callback} .= "&$_=".$form->escape($form->{$_},1) }
+
+ PE->get_jcitems(\%myconfig, \%$form);
+
+ # flatten array
+ $i = 1;
+ foreach $ref (@{ $form->{jcitems} }) {
+
+ if ($form->{summary}) {
+
+ $thisitem = qq|$ref->{project_id}:$ref->{"$form->{vc}_id"}:$ref->{parts_id}|;
+
+ if ($thisitem eq $sameitem) {
+
+ $i--;
+ for (qw(qty amount)) { $form->{"${_}_$i"} += $ref->{$_} }
+ $form->{"id_$i"} .= " $ref->{id}:$ref->{qty}";
+ if ($form->{"notes_$i"}) {
+ $form->{"notes_$i"} .= qq|\n\n$ref->{notes}|;
+ } else {
+ $form->{"notes_$i"} = $ref->{notes};
+ }
+
+ } else {
+
+ for (keys %$ref) { $form->{"${_}_$i"} = $ref->{$_} }
+
+ $form->{"checked_$i"} = 1;
+ $form->{"$form->{vc}_$i"} = $ref->{$form->{vc}};
+ $form->{"id_$i"} = "$ref->{id}:$ref->{qty}";
+
+ }
+
+ $sameitem = qq|$ref->{project_id}:$ref->{"$form->{vc}_id"}:$ref->{parts_id}|;
+ } else {
+
+ for (keys %$ref) { $form->{"${_}_$i"} = $ref->{$_} }
+ $form->{"checked_$i"} = 1;
+ $form->{"id_$i"} = "$ref->{id}:$ref->{qty}";
+
+ }
+
+ $i++;
+
+ }
+
+ $form->{rowcount} = $i - 1;
+
+ for $i (1 .. $form->{rowcount}) {
+ for (qw(qty allocated)) { $form->{"${_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}) }
+ for (qw(amount sellprice)) { $form->{"${_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}, 2) }
+ }
+
+ &jcitems;
+
+}
+
+
+sub jcitems {
+
+# $locale->text('Customer')
+# $locale->text('Vendor')
+
+ $vc = ucfirst $form->{vc};
+
+ @column_index = qw(id projectnumber name);
+ if (!$form->{summary}) {
+ push @column_index, qw(transdate);
+ }
+ push @column_index, qw(partnumber description qty amount);
+
+ $column_header{id} = qq|<th>&nbsp;</th>|;
+ $column_header{transdate} = qq|<th class=listheading>|.$locale->text('Date').qq|</th>|;
+ $column_header{partnumber} = qq|<th class=listheading>|.$locale->text('Service Code').qq|<br>|.$locale->text('Part Number').qq|</th>|;
+ $column_header{projectnumber} = qq|<th class=listheading>|.$locale->text('Project Number').qq|</th>|;
+ $column_header{description} = qq|<th class=listheading>|.$locale->text('Description').qq|</th>|;
+ $column_header{name} = qq|<th class=listheading>$vc</th>|;
+ $column_header{qty} = qq|<th class=listheading>|.$locale->text('Qty').qq|</th>|;
+ $column_header{amount} = qq|<th class=listheading>|.$locale->text('Amount').qq|</th>|;
+
+ if ($form->{type} eq 'sales_order') {
+ $form->{title} = $locale->text('Generate Sales Orders');
+ }
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>|;
+
+ for (@column_index) { print "\n$column_header{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ for $i (1 .. $form->{rowcount}) {
+
+ for (@column_index) { $column_data{$_} = qq|<td>$form->{"${_}_$i"}</td>| }
+ for (qw(qty amount)) { $column_data{$_} = qq|<td align=right>$form->{"${_}_$i"}</td>| }
+
+ $checked = ($form->{"checked_$i"}) ? "checked" : "";
+ $column_data{id} = qq|<td><input name="checked_$i" class=checkbox type=checkbox value="1" $checked></td>|;
+
+ if ($form->{"$form->{vc}_id_$i"}) {
+ $column_data{name} = qq|<td>$form->{"$form->{vc}_$i"}</td>|;
+ $form->hide_form("$form->{vc}_id_$i", "$form->{vc}_$i");
+ } else {
+ $column_data{name} = qq|<td><input name="ndx_$i" class=checkbox type=checkbox value="1"></td>|;
+ }
+
+ for (qw(projectnumber partnumber description notes)) { $form->{"${_}_$i"} = $form->quote($form->{"${_}_$i"}) }
+ $form->hide_form(map {"${_}_$i"} qw(id project_id parts_id projectnumber transdate partnumber description notes qty amount taxaccounts sellprice));
+
+ $j++; $j %= 2;
+ print "
+ <tr class=listrow$j>";
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+|;
+
+ $form->hide_form(qw(path login sessionid vc nextsub rowcount type currency defaultcurrency taxaccounts summary callback));
+
+ for (split / /, $form->{taxaccounts}) { $form->hide_form("${_}_rate") }
+
+ if ($form->{rowcount}) {
+ print qq|
+<input class=submit type=submit name=action value="|.$locale->text('Generate Sales Orders').qq|">|;
+
+ print qq|
+<input class=submit type=submit name=action value="|.$locale->text('Select Customer').qq|">|;
+
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub select_customer {
+
+ for (1 .. $form->{rowcount}) {
+ last if ($ok = $form->{"ndx_$_"});
+ }
+
+ $form->error($locale->text('Nothing selected!')) unless $ok;
+
+ $label = ($form->{vc} eq 'customer') ? $locale->text('Customer') : $locale->text('Vendor');
+
+ $form->header;
+
+ print qq|
+<body onLoad="document.forms[0].$form->{vc}.focus()" />
+
+<form method=post action=$form->{script}>
+
+<b>$label</b> <input name=$form->{vc} size=40>
+
+|;
+
+ $form->{nextsub} = "$form->{vc}_selected";
+ $form->{action} = "$form->{vc}_selected";
+
+ $form->hide_form;
+
+ print qq|
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">
+
+</form>
+|;
+
+ print qq|
+
+</body>
+</html>
+|;
+
+}
+
+
+sub customer_selected {
+
+ if (($rv = $form->get_name(\%myconfig, $form->{vc}, $form->{startdate})) > 1) {
+ &select_name($form->{vc});
+ exit;
+ }
+
+ if ($rv == 1) {
+ $form->{"$form->{vc}"} = $form->{name_list}[0]->{name};
+ $form->{"$form->{vc}_id"} = $form->{name_list}[0]->{id};
+ } else {
+ $msg = ($form->{vc} eq 'customer') ? $locale->text('Customer not on file!') : $locale->text('Vendor not on file!');
+ $form->error($locale->text($msg));
+ }
+
+ &display_form;
+
+}
+
+
+sub sales_order_header {
+
+ for (1 .. $form->{rowcount}) {
+ if ($form->{"ndx_$_"}) {
+ $form->{"$form->{vc}_id_$_"} = $form->{"$form->{vc}_id"};
+ $form->{"$form->{vc}_$_"} = $form->{"$form->{vc}"};
+ }
+ }
+
+}
+
+sub sales_order_footer { &jcitems }
+
+
+sub generate_sales_orders {
+
+ for $i (1 .. $form->{rowcount}) {
+ $form->error($locale->text('Customer missing!')) if ($form->{"checked_$i"} && !$form->{"customer_$i"});
+ }
+
+ for $i (1 .. $form->{rowcount}) {
+ if ($form->{"checked_$i"}) {
+ push @{ $form->{order}{qq|$form->{"customer_id_$i"}|} }, {
+ partnumber => $form->{"partnumber_$i"},
+ id => $form->{"parts_id_$i"},
+ description => $form->{"description_$i"},
+ qty => $form->{"qty_$i"},
+ sellprice => $form->{"sellprice_$i"},
+ projectnumber => qq|--$form->{"project_id_$i"}|,
+ reqdate => $form->{"transdate_$i"},
+ taxaccounts => $form->{"taxaccounts_$i"},
+ jcitems => $form->{"id_$i"},
+ notes => $form->{"notes_$i"},
+ }
+ }
+ }
+
+ $order = new Form;
+ for (keys %{ $form->{order} }) {
+
+ for (qw(type vc defaultcurrency login)) { $order->{$_} = $form->{$_} }
+ for (split / /, $form->{taxaccounts}) { $order->{"${_}_rate"} = $form->{"${_}_rate"} }
+
+ $i = 0;
+ $order->{"$order->{vc}_id"} = $_;
+
+ AA->get_name(\%myconfig, \%$order);
+
+ foreach $ref (@ {$form->{order}{$_} }) {
+ $i++;
+
+ for (keys %$ref) { $order->{"${_}_$i"} = $ref->{$_} }
+
+ $taxaccounts = "";
+ for (split / /, $order->{taxaccounts}) { $taxaccounts .= qq|$_ | if ($_ =~ /$order->{"taxaccounts_$i"}/) }
+ $order->{"taxaccounts_$i"} = $taxaccounts;
+
+ }
+ $order->{rowcount} = $i;
+
+ for (qw(currency)) { $order->{$_} = $form->{$_} }
+
+ $order->{ordnumber} = $order->update_defaults(\%myconfig, 'sonumber');
+ $order->{transdate} = $order->current_date(\%myconfig);
+ $order->{reqdate} = $order->{transdate};
+
+ for (qw(intnotes employee employee_id)) { delete $order->{$_} }
+
+ if (OE->save(\%myconfig, \%$order)) {
+ if (! PE->allocate_projectitems(\%myconfig, \%$order)) {
+ OE->delete(\%myconfig, \%$order, $spool);
+ }
+ } else {
+ $order->error($locale->text('Failed to save order!'));
+ }
+
+ for (keys %$order) { delete $order->{$_} }
+
+ }
+
+ $form->redirect($locale->text('Orders generated!'));
+
+}
+
+
diff --git a/bin/lynx/pos.pl b/bin/lynx/pos.pl
new file mode 100755
index 00000000..ca6a87b4
--- /dev/null
+++ b/bin/lynx/pos.pl
@@ -0,0 +1,938 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2003
+#
+# Author: DWS Systems Inc.
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+# Contributors: Steve Doerr <sdoerr907@everestkc.net>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=====================================================================
+#
+# POS
+#
+#=====================================================================
+
+
+1;
+# end
+
+
+sub add {
+
+ $form->{title} = $locale->text('Add POS Invoice');
+
+ $form->{callback} = "$form->{script}?action=$form->{nextsub}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}" unless $form->{callback};
+
+ &invoice_links;
+
+ $form->{type} = "pos_invoice";
+ $form->{format} = "txt";
+ $form->{media} = ($myconfig{printer}) ? $myconfig{printer} : "screen";
+ $form->{rowcount} = 0;
+
+ $form->{readonly} = ($myconfig{acs} =~ /POS--Sale/) ? 1 : 0;
+
+ $ENV{REMOTE_ADDR} =~ /(\d+)\.(\d+)\.(\d+)\.(\d+)/;
+ $form->{till} = $4;
+
+ $form->{partsgroup} = "";
+ for (@{ $form->{all_partsgroup} }) { $form->{partsgroup} .= "$_->{partsgroup}--$_->{translation}\n"; }
+
+ &display_form;
+
+}
+
+
+sub openinvoices {
+
+ $ENV{REMOTE_ADDR} =~ /(\d+)\.(\d+)\.(\d+)\.(\d+)/;
+ $form->{till} = $4;
+
+ $form->{sort} = 'transdate';
+
+ for (qw(open l_invnumber l_transdate l_name l_amount l_curr l_till l_subtotal)) { $form->{$_} = 'Y'; }
+
+ if ($myconfig{role} ne 'user') {
+ $form->{l_employee} = 'Y';
+ }
+
+ $form->{title} = $locale->text('Open');
+ transactions;
+
+}
+
+
+sub edit {
+
+ $form->{title} = $locale->text('Edit POS Invoice');
+
+ $form->{callback} = "$form->{script}?action=$form->{nextsub}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}" unless $form->{callback};
+
+ &invoice_links;
+ &prepare_invoice;
+
+ $form->{type} = "pos_invoice";
+ $form->{format} = "txt";
+ $form->{media} = ($myconfig{printer}) ? $myconfig{printer} : "screen";
+
+ $form->{readonly} = ($myconfig{acs} =~ /POS--Sale/) ? 1 : 0;
+
+ $form->{partsgroup} = "";
+ for (@{ $form->{all_partsgroup} }) { $form->{partsgroup} .= "$_->{partsgroup}--$_->{translation}\n"; }
+
+ &display_form;
+
+}
+
+
+sub form_header {
+
+ # set option selected
+ for (qw(AR currency)) {
+ $form->{"select$_"} =~ s/ selected//;
+ $form->{"select$_"} =~ s/option>\Q$form->{$_}\E/option selected>$form->{$_}/;
+ }
+
+ for (qw(customer department employee)) {
+ $form->{"select$_"} = $form->unescape($form->{"select$_"});
+ $form->{"select$_"} =~ s/ selected//;
+ $form->{"select$_"} =~ s/(<option value="\Q$form->{$_}\E")/$1 selected/;
+ }
+
+ $form->{exchangerate} = $form->format_amount(\%myconfig, $form->{exchangerate});
+
+ $exchangerate = qq|<tr>|;
+ $exchangerate .= qq|
+ <th align=right nowrap>|.$locale->text('Currency').qq|</th>
+ <td><select name=currency>$form->{selectcurrency}</select></td> | if $form->{defaultcurrency};
+ $exchangerate .= qq|
+ <input type=hidden name=selectcurrency value="$form->{selectcurrency}">
+ <input type=hidden name=defaultcurrency value=$form->{defaultcurrency}>
+|;
+
+ if ($form->{defaultcurrency} && $form->{currency} ne $form->{defaultcurrency}) {
+ if ($form->{forex}) {
+ $exchangerate .= qq|<th align=right>|.$locale->text('Exchange Rate').qq|</th><td>$form->{exchangerate}<input type=hidden name=exchangerate value=$form->{exchangerate}></td>|;
+ } else {
+ $exchangerate .= qq|<th align=right>|.$locale->text('Exchange Rate').qq|</th><td><input name=exchangerate size=10 value=$form->{exchangerate}></td>|;
+ }
+ }
+ $exchangerate .= qq|
+<input type=hidden name=forex value=$form->{forex}>
+</tr>
+|;
+
+ if ($form->{selectcustomer}) {
+ $customer = qq|<select name=customer>$form->{selectcustomer}</select>
+ <input type=hidden name="selectcustomer" value="|.
+ $form->escape($form->{selectcustomer},1).qq|">|;
+ } else {
+ $customer = qq|<input name=customer value="$form->{customer}" size=35>|;
+ }
+
+ $department = qq|
+ <tr>
+ <th align="right" nowrap>|.$locale->text('Department').qq|</th>
+ <td colspan=3><select name=department>$form->{selectdepartment}</select>
+ <input type=hidden name=selectdepartment value="|.
+ $form->escape($form->{selectdepartment},1).qq|">
+ </td>
+ </tr>
+| if $form->{selectdepartment};
+
+ $employee = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Salesperson').qq|</th>
+ <td colspan=3><select name=employee>$form->{selectemployee}</select></td>
+ <input type=hidden name=selectemployee value="|.
+ $form->escape($form->{selectemployee},1).qq|">
+ </tr>
+| if $form->{selectemployee};
+
+ if ($form->{change} != $form->{oldchange}) {
+ $form->{creditremaining} -= $form->{oldchange};
+ }
+ $n = ($form->{creditremaining} < 0) ? "0" : "1";
+
+ if ($form->{business}) {
+ $business = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Business').qq|</th>
+ <td>$form->{business}</td>
+ <td width=10></td>
+ <th align=right nowrap>|.$locale->text('Trade Discount').qq|</th>
+ <td>|.$form->format_amount(\%myconfig, $form->{tradediscount} * 100).qq| %</td>
+ </tr>
+|;
+ }
+
+ if ($form->{selectlanguage}) {
+ if ($form->{language_code} ne $form->{oldlanguage_code}) {
+ # rebuild partsgroup
+ $form->get_partsgroup(\%myconfig, { language_code => $form->{language_code}, searchitems => 'nolabor'});
+ $form->{partsgroup} = "";
+ for (@{ $form->{all_partsgroup} }) { $form->{partsgroup} .= "$_->{partsgroup}--$_->{translation}\n"; }
+ $form->{oldlanguage_code} = $form->{language_code};
+ }
+
+
+ $form->{"selectlanguage"} = $form->unescape($form->{"selectlanguage"});
+ $form->{"selectlanguage"} =~ s/ selected//;
+ $form->{"selectlanguage"} =~ s/(<option value="\Q$form->{language_code}\E")/$1 selected/;
+ $lang = qq|
+ <tr>
+ <th align=right>|.$locale->text('Language').qq|</th>
+ <td colspan=3><select name=language_code>$form->{selectlanguage}</select></td>
+ </tr>
+ <input type=hidden name=oldlanguage_code value=$form->{oldlanguage_code}>
+ <input type=hidden name=selectlanguage value="|.
+ $form->escape($form->{selectlanguage},1).qq|">|;
+ }
+
+ $i = $form->{rowcount} + 1;
+ $focus = "partnumber_$i";
+
+ $form->header;
+
+ print qq|
+<body onLoad="document.forms[0].${focus}.focus()" />
+
+<form method=post action="$form->{script}">
+|;
+
+ $form->hide_form(qw(id till type format printed title discount creditlimit creditremaining tradediscount business closedto locked oldtransdate customer_id oldcustomer));
+
+ print qq|
+<input type=hidden name=vc value="customer">
+
+<table width=100%>
+ <tr class=listtop>
+ <th class=listtop>$form->{title}</font></th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Customer').qq|</th>
+ <td colspan=3>$customer</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan=3>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Credit Limit').qq|</th>
+ <td>$form->{creditlimit}</td>
+ <td width=10></td>
+ <th align=right nowrap>|.$locale->text('Remaining').qq|</th>
+ <td class="plus$n">|.$form->format_amount(\%myconfig, $form->{creditremaining}, 0, "0").qq|</font></td>
+ </tr>
+ $business
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Record in').qq|</th>
+ <td colspan=3><select name=AR>$form->{selectAR}</select></td>
+ <input type=hidden name=selectAR value="$form->{selectAR}">
+ </tr>
+ $department
+ </table>
+ </td>
+ <td>
+ <table>
+ $employee
+ $exchangerate
+ $lang
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ </td>
+ </tr>
+|;
+
+ $form->hide_form(qw(taxaccounts duedate invnumber transdate selectcurrency defaultcurrency));
+
+ for (split / /, $form->{taxaccounts}) {
+ $form->hide_form("${_}_rate", "${_}_description", "${_}_taxnumber");
+ }
+
+}
+
+
+
+sub form_footer {
+
+ $form->{invtotal} = $form->{invsubtotal};
+
+ $form->{taxincluded} = ($form->{taxincluded}) ? "checked" : "";
+
+ $taxincluded = "";
+ if ($form->{taxaccounts}) {
+ $taxincluded = qq|
+ <tr height="5"></tr>
+ <tr>
+ <td align=right>
+ <input name=taxincluded class=checkbox type=checkbox value=1 $form->{taxincluded}></td><th align=left>|.$locale->text('Tax Included').qq|</th>
+ </tr>
+|;
+ }
+
+ if (!$form->{taxincluded}) {
+
+ for (split / /, $form->{taxaccounts}) {
+ if ($form->{"${_}_base"}) {
+ $form->{"${_}_total"} = $form->round_amount($form->{"${_}_base"} * $form->{"${_}_rate"}, 2);
+ $form->{invtotal} += $form->{"${_}_total"};
+ $form->{"${_}_total"} = $form->format_amount(\%myconfig, $form->{"${_}_total"}, 2, 0);
+
+ $tax .= qq|
+ <tr>
+ <th align=right>$form->{"${_}_description"}</th>
+ <td align=right>$form->{"${_}_total"}</td>
+ </tr>
+|;
+ }
+ }
+
+ $form->{invsubtotal} = $form->format_amount(\%myconfig, $form->{invsubtotal}, 2, 0);
+
+ $subtotal = qq|
+ <tr>
+ <th align=right>|.$locale->text('Subtotal').qq|</th>
+ <td align=right>$form->{invsubtotal}</td>
+ </tr>
+|;
+ }
+
+ @column_index = qw(paid source memo AR_paid);
+
+ $column_data{paid} = "<th>".$locale->text('Amount')."</th>";
+ $column_data{source} = "<th>".$locale->text('Source')."</th>";
+ $column_data{memo} = "<th>".$locale->text('Memo')."</th>";
+ $column_data{AR_paid} = "<th>&nbsp;</th>";
+
+ print qq|
+ <tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+|;
+
+ for (@column_index) { print "$column_data{$_}\n"; }
+
+ print qq|
+ </tr>
+|;
+
+ $totalpaid = 0;
+
+ $form->{paidaccounts}++ if ($form->{"paid_$form->{paidaccounts}"});
+ for $i (1 .. $form->{paidaccounts}) {
+
+ $form->{"selectAR_paid_$i"} = $form->{selectAR_paid};
+ $form->{"selectAR_paid_$i"} =~ s/option>\Q$form->{"AR_paid_$i"}\E/option selected>$form->{"AR_paid_$i"}/;
+
+ # format amounts
+ $totalpaid += $form->{"paid_$i"};
+ $form->{"paid_$i"} = $form->format_amount(\%myconfig, $form->{"paid_$i"}, 2);
+ $form->{"exchangerate_$i"} = $form->format_amount(\%myconfig, $form->{"exchangerate_$i"});
+
+
+ $column_data{paid} = qq|<td><input name="paid_$i" size=11 value=$form->{"paid_$i"}></td>|;
+ $column_data{source} = qq|<td><input name="source_$i" size=10 value="$form->{"source_$i"}"></td>|;
+ $column_data{memo} = qq|<td><input name="memo_$i" size=10 value="$form->{"memo_$i"}"></td>|;
+ $column_data{AR_paid} = qq|<td><select name="AR_paid_$i">$form->{"selectAR_paid_$i"}</select></td>|;
+
+ print qq|
+ <tr>
+|;
+ for (@column_index) { print "$column_data{$_}\n"; }
+
+ print qq|
+ </tr>
+|;
+
+ $form->hide_form("cleared_$i", "exchangerate_$i", "forex_$i");
+
+ }
+
+ $form->{change} = 0;
+ if ($totalpaid > $form->{invtotal}) {
+ $form->{change} = $totalpaid - $form->{invtotal};
+ }
+ $form->{oldchange} = $form->{change};
+ $form->{change} = $form->format_amount(\%myconfig, $form->{change}, 2, 0);
+ $form->{totalpaid} = $form->format_amount(\%myconfig, $totalpaid, 2);
+
+ $form->{oldinvtotal} = $form->{invtotal};
+ $form->{invtotal} = $form->format_amount(\%myconfig, $form->{invtotal}, 2, 0);
+
+ print qq|
+ <tr>
+ <th align=right>|.$locale->text('Change').qq|</th>
+ <th>$form->{change}</th>
+ </tr>
+ </table>
+ </td>
+ <td align=right>
+ <table>
+ $subtotal
+ $tax
+ <tr>
+ <th align=right>|.$locale->text('Total').qq|</th>
+ <td align=right>$form->{invtotal}</td>
+ </tr>
+ $taxincluded
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+<input type=hidden name=oldtotalpaid value=$totalpaid>
+<input type=hidden name=datepaid value=$form->{transdate}>
+
+<tr>
+ <td>
+|;
+
+ $form->hide_form(qw(paidaccounts selectAR_paid oldinvtotal change oldchange invtotal));
+
+ &print_options;
+
+ print qq|
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+ $transdate = $form->datetonum(\%myconfig, $form->{transdate});
+ $closedto = $form->datetonum(\%myconfig, $form->{closedto});
+
+# type=submit $locale->text('Update')
+# type=submit $locale->text('Print')
+# type=submit $locale->text('Post')
+# type=submit $locale->text('Print and Post')
+# type=submit $locale->text('Delete')
+
+ if (! $form->{readonly}) {
+ %button = ('Update' => { ndx => 1, key => 'U', value => $locale->text('Update') },
+ 'Print' => { ndx => 2, key => 'P', value => $locale->text('Print') },
+ 'Post' => { ndx => 3, key => 'O', value => $locale->text('Post') },
+ 'Print and Post' => { ndx => 4, key => 'R', value => $locale->text('Print and Post') },
+ 'Delete' => { ndx => 5, key => 'D', value => $locale->text('Delete') },
+ );
+
+ if ($transdate > $closedto) {
+
+ if (! $form->{id}) {
+ delete $button{'Delete'};
+ }
+
+ delete $button{'Print and Post'} unless $latex;
+ } else {
+ for ('Print', 'Post', 'Print and Post', 'Delete') { delete $button{$_} }
+ }
+
+ for (sort { $button{$a}->{ndx} <=> $button{$b}->{ndx} } keys %button) { $form->print_button(\%button, $_) }
+
+ print qq|<p>
+ <input type=text size=1 value="B" accesskey="B" title="[Alt-B]">\n|;
+
+ if ($form->{partsgroup}) {
+ $form->{partsgroup} =~ s/\r//g;
+ $form->{partsgroup} = $form->quote($form->{partsgroup});
+
+ $spc = ($form->{path} =~ /lynx/) ? "." : " ";
+ print qq|
+<input type=hidden name=nextsub value=lookup_partsgroup>
+<input type=hidden name=partsgroup value="$form->{partsgroup}">|;
+
+ foreach $item (split /\n/, $form->{partsgroup}) {
+ ($partsgroup, $translation) = split /--/, $item;
+ $item = ($translation) ? $translation : $partsgroup;
+ print qq| <input class=submit type=submit name=action value="$spc$item">\n| if $item;
+ }
+ }
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ $form->hide_form(qw(rowcount callback path login sessionid));
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub post {
+
+ $form->isblank("customer", $locale->text('Customer missing!'));
+
+ # if oldcustomer ne customer redo form
+ $customer = $form->{customer};
+ $customer =~ s/--.*//g;
+ $customer .= "--$form->{customer_id}";
+ if ($customer ne $form->{oldcustomer}) {
+ &update;
+ exit;
+ }
+
+ &validate_items;
+
+ $form->isblank("exchangerate", $locale->text('Exchange rate missing!')) if ($form->{currency} ne $form->{defaultcurrency});
+
+ $paid = 0;
+ for (1 .. $form->{paidaccounts}) { $paid += $form->parse_amount(\%myconfig, $form->{"paid_$_"}); }
+ delete $form->{datepaid} unless $paid;
+
+ $total = $form->parse_amount(\%myconfig, $form->{invtotal});
+
+ # deduct change from first payment
+ $form->{"paid_1"} = $form->format_amount(\%myconfig, $form->parse_amount(\%myconfig, $form->{"paid_1"}) - ($paid - $total), 2) if $paid > $total;
+
+ ($form->{AR}) = split /--/, $form->{AR};
+
+ if (IS->post_invoice(\%myconfig, \%$form)) {
+ $form->redirect($locale->text('Posted!'));
+ } else {
+ $form->error($locale->text('Cannot post transaction!'));
+ }
+
+}
+
+
+sub display_row {
+ my $numrows = shift;
+
+ @column_index = qw(partnumber description partsgroup qty unit sellprice discount linetotal);
+
+ $form->{invsubtotal} = 0;
+
+ for (split / /, $form->{taxaccounts}) { $form->{"${_}_base"} = 0; }
+
+ $column_data{partnumber} = qq|<th class=listheading nowrap>|.$locale->text('Number').qq|</th>|;
+ $column_data{description} = qq|<th class=listheading nowrap>|.$locale->text('Description').qq|</th>|;
+ $column_data{qty} = qq|<th class=listheading nowrap>|.$locale->text('Qty').qq|</th>|;
+ $column_data{unit} = qq|<th class=listheading nowrap>|.$locale->text('Unit').qq|</th>|;
+ $column_data{sellprice} = qq|<th class=listheading nowrap>|.$locale->text('Price').qq|</th>|;
+ $column_data{linetotal} = qq|<th class=listheading nowrap>|.$locale->text('Extended').qq|</th>|;
+ $column_data{discount} = qq|<th class=listheading nowrap>%</th>|;
+
+ print qq|
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>|;
+
+ for (@column_index) { print "\n$column_data{$_}"; };
+
+ print qq|
+ </tr>
+|;
+
+ $exchangerate = $form->parse_amount(\%myconfig, $form->{exchangerate});
+ $exchangerate = ($exchangerate) ? $exchangerate : 1;
+
+ for $i (1 .. $numrows) {
+ # undo formatting
+ for (qw(qty discount sellprice)) { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}); }
+
+ ($dec) = ($form->{"sellprice_$i"} =~ /\.(\d+)/);
+ $dec = length $dec;
+ $decimalplaces = ($dec > 2) ? $dec : 2;
+
+ if (($form->{"qty_$i"} != $form->{"oldqty_$i"}) || ($form->{currency} ne $form->{oldcurrency})) {
+ # check for a pricematrix
+ @a = split / /, $form->{"pricematrix_$i"};
+ if (scalar @a) {
+ foreach $item (@a) {
+ ($q, $p) = split /:/, $item;
+ if (($p * 1) && ($form->{"qty_$i"} >= ($q * 1))) {
+ ($dec) = ($p =~ /\.(\d+)/);
+ $dec = length $dec;
+ $decimalplaces = ($dec > 2) ? $dec : 2;
+ $form->{"sellprice_$i"} = $form->round_amount($p / $exchangerate, $decimalplaces);
+ }
+ }
+ }
+ }
+
+ if ($i < $numrows) {
+ $column_data{discount} = qq|<td align=right><input name="discount_$i" size=3 value=|.$form->format_amount(\%myconfig, $form->{"discount_$i"}).qq|></td>|;
+ } else {
+ $column_data{discount} = qq|<td></td>|;
+ }
+
+ $discount = $form->round_amount($form->{"sellprice_$i"} * $form->{"discount_$i"}/100, $decimalplaces);
+ $linetotal = $form->round_amount($form->{"sellprice_$i"} - $discount, $decimalplaces);
+ $linetotal = $form->round_amount($linetotal * $form->{"qty_$i"}, 2);
+
+ for (qw(partnumber sku description partsgroup unit)) { $form->{"${_}_$i"} = $form->quote($form->{"${_}_$i"}); }
+
+ $column_data{partnumber} = qq|<td><input name="partnumber_$i" size=20 value="$form->{"partnumber_$i"}" accesskey="$i" title="[Alt-$i]"></td>|;
+
+ if (($rows = $form->numtextrows($form->{"description_$i"}, 40, 6)) > 1) {
+ $column_data{description} = qq|<td><textarea name="description_$i" rows=$rows cols=46 wrap=soft>$form->{"description_$i"}</textarea></td>|;
+ } else {
+ $column_data{description} = qq|<td><input name="description_$i" size=48 value="$form->{"description_$i"}"></td>|;
+ }
+
+ $column_data{qty} = qq|<td align=right><input name="qty_$i" size=5 value=|.$form->format_amount(\%myconfig, $form->{"qty_$i"}).qq|></td>|;
+ $column_data{unit} = qq|<td>$form->{"unit_$i"}</td>|;
+ $column_data{sellprice} = qq|<td align=right><input name="sellprice_$i" size=9 value=|.$form->format_amount(\%myconfig, $form->{"sellprice_$i"}, $decimalplaces).qq|></td>|;
+ $column_data{linetotal} = qq|<td align=right>|.$form->format_amount(\%myconfig, $linetotal, 2).qq|</td>|;
+
+ print qq|
+ <tr valign=top>|;
+
+ for (@column_index) { print "\n$column_data{$_}"; }
+
+ print qq|
+ </tr>
+|;
+
+ $form->{"oldqty_$i"} = $form->{"qty_$i"};
+
+ for (qw(id listprice lastcost taxaccounts pricematrix oldqty sku partsgroup unit inventory_accno_id income_accno_id expense_accno_id)) { $form->hide_form("${_}_$i") }
+
+ for (split / /, $form->{"taxaccounts_$i"}) { $form->{"${_}_base"} += $linetotal; }
+
+ $form->{invsubtotal} += $linetotal;
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+
+<input type=hidden name=oldcurrency value=$form->{currency}>
+
+|;
+
+}
+
+
+sub print {
+
+ if (!$form->{invnumber}) {
+ $form->{invnumber} = $form->update_defaults(\%myconfig, "sinumber");
+ if ($form->{media} eq 'screen') {
+ &update;
+ exit;
+ }
+ }
+
+ $old_form = new Form;
+ for (keys %$form) { $old_form->{$_} = $form->{$_}; }
+
+ for (qw(employee department)) { $form->{$_} =~ s/--.*//g; }
+ $form->{invdate} = $form->{transdate};
+ $form->{dateprinted} = scalar localtime;
+
+ &print_form($old_form);
+
+}
+
+
+sub print_form {
+ my $old_form = shift;
+
+ # if oldcustomer ne customer redo form
+ $customer = $form->{customer};
+ $customer =~ s/--.*//g;
+ $customer .= "--$form->{customer_id}";
+ if ($customer ne $form->{oldcustomer}) {
+ &update;
+ exit;
+ }
+
+ &validate_items;
+
+ &{ "$form->{vc}_details" };
+
+ @a = ();
+ for (1 .. $form->{rowcount}) { push @a, ("partnumber_$_", "description_$_"); }
+ for (split / /, $form->{taxaccounts}) { push @a, "${_}_description"; }
+ $form->format_string(@a);
+
+ # format payment dates
+ for (1 .. $form->{paidaccounts}) { $form->{"datepaid_$_"} = $locale->date(\%myconfig, $form->{"datepaid_$_"}); }
+
+ IS->invoice_details(\%myconfig, \%$form);
+
+ if ($form->parse_amount(\%myconfig, $form->{total}) <= 0) {
+ $form->{total} = 0;
+ } else {
+ $form->{change} = 0;
+ }
+
+ for (qw(company address tel fax businessnumber)) { $form->{$_} = $myconfig{$_}; }
+ $form->{username} = $myconfig{name};
+
+ $form->{address} =~ s/\\n/\n/g;
+ push @a, qw(company address tel fax businessnumber username);
+ $form->format_string(@a);
+
+ $form->{templates} = "$myconfig{templates}";
+ $form->{IN} = "$form->{type}.$form->{format}";
+
+ if ($form->{format} =~ /(postscript|pdf)/) {
+ $form->{IN} =~ s/$&$/tex/;
+ }
+
+ if ($form->{media} ne 'screen') {
+ $form->{OUT} = "| $printer{$form->{media}}";
+ }
+
+ $form->{discount} = $form->format_amount(\%myconfig, $form->{discount} * 100);
+
+ $form->{rowcount}--;
+ $form->{pre} = "<body bgcolor=#ffffff>\n<pre>";
+ delete $form->{stylesheet};
+
+ $form->parse_template(\%myconfig, $userspath);
+
+ if ($form->{printed} !~ /$form->{formname}/) {
+ $form->{printed} .= " $form->{formname}";
+ $form->{printed} =~ s/^ //;
+
+ $form->update_status(\%myconfig);
+ }
+ $old_form->{printed} = $form->{printed};
+
+ # if we got back here restore the previous form
+ if ($form->{media} ne 'screen') {
+ # restore and display form
+ for (keys %$old_form) { $form->{$_} = $old_form->{$_}; }
+ $form->{exchangerate} = $form->parse_amount(\%myconfig, $form->{exchangerate});
+
+ for $i (1 .. $form->{paidaccounts}) {
+ for (qw(paid exchangerate)) { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}); }
+ }
+
+ delete $form->{pre};
+
+ if (! $form->{printandpost}) {
+ $form->{rowcount}--;
+ &display_form;
+ }
+ }
+
+}
+
+
+sub print_and_post {
+
+ $form->error($locale->text('Select a Printer!')) if ($form->{media} eq 'screen');
+ $form->{printandpost} = 1;
+ &print;
+ &post;
+
+}
+
+sub lookup_partsgroup {
+
+ $form->{action} =~ s/\r//;
+ $form->{action} = substr($form->{action}, 1);
+
+ if ($form->{language_code}) {
+ # get english
+ foreach $item (split /\n/, $form->{partsgroup}) {
+ if ($item =~ /$form->{action}/) {
+ ($partsgroup, $translation) = split /--/, $item;
+ $form->{action} = $partsgroup;
+ last;
+ }
+ }
+ }
+
+ $form->{"partsgroup_$form->{rowcount}"} = $form->{action};
+
+ &update;
+
+}
+
+
+
+sub print_options {
+
+ $form->{PD}{$form->{type}} = "checked";
+
+ print qq|
+<input type=hidden name=format value=$form->{format}>
+<input type=hidden name=formname value=$form->{type}>
+
+<table width=100%>
+ <tr>
+|;
+
+
+ $media = qq|
+ <td><input class=radio type=radio name=media value="screen"></td>
+ <td>|.$locale->text('Screen').qq|</td>|;
+
+ if (%printer) {
+ for (keys %printer) {
+ $media .= qq|
+ <td><input class=radio type=radio name=media value="$_"></td>
+ <td nowrap>$_</td>
+|;
+ }
+ }
+
+ $media =~ s/(value="\Q$form->{media}\E")/$1 checked/;
+
+ print qq|
+ $media
+
+ <td width=99%>&nbsp;</td>|;
+
+ if ($form->{printed} =~ /$form->{type}/) {
+ print qq|
+ <th>\||.$locale->text('Printed').qq|\|</th>|;
+ }
+
+ print qq|
+ </tr>
+</table>
+|;
+
+}
+
+
+sub receipts {
+
+ $form->{title} = $locale->text('Receipts');
+
+ $form->{db} = 'ar';
+ RP->paymentaccounts(\%myconfig, \%$form);
+
+ $paymentaccounts = "";
+ for (@{ $form->{PR} } ) { $paymentaccounts .= "$_->{accno} "; }
+
+ if (@{ $form->{all_years} }) {
+ # accounting years
+ $form->{selectaccountingyear} = "<option>\n";
+ for (@{ $form->{all_years} }) { $form->{selectaccountingyear} .= qq|<option>$_\n|; }
+ $form->{selectaccountingmonth} = "<option>\n";
+ for (sort keys %{ $form->{all_month} }) { $form->{selectaccountingmonth} .= qq|<option value=$_>|.$locale->text($form->{all_month}{$_}).qq|\n|; }
+
+ $selectfrom = qq|
+ <tr>
+ <th align=right>|.$locale->text('Period').qq|</th>
+ <td colspan=3>
+ <select name=month>$form->{selectaccountingmonth}</select>
+ <select name=year>$form->{selectaccountingyear}</select>
+ <input name=interval class=radio type=radio value=0 checked>&nbsp;|.$locale->text('Current').qq|
+ <input name=interval class=radio type=radio value=1>&nbsp;|.$locale->text('Month').qq|
+ <input name=interval class=radio type=radio value=3>&nbsp;|.$locale->text('Quarter').qq|
+ <input name=interval class=radio type=radio value=12>&nbsp;|.$locale->text('Year').qq|
+ </td>
+ </tr>
+|;
+ }
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=title value="$form->{title}">
+<input type=hidden name=paymentaccounts value="$paymentaccounts">
+
+<input type=hidden name=till value=1>
+<input type=hidden name=subtotal value=1>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+
+ <input type=hidden name=nextsub value=list_payments>
+
+ <tr>
+ <th align=right>|.$locale->text('From').qq|</th>
+ <td><input name=fromdate size=11 title="$myconfig{dateformat}" value=$form->{fromdate}></td>
+ <th align=right>|.$locale->text('To').qq|</th>
+ <td><input name=todate size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+ $selectfrom
+ <input type=hidden name=sort value=transdate>
+ <input type=hidden name=db value=$form->{db}>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+<input type=hidden name=path value=$form->{path}>
+<input type=hidden name=login value=$form->{login}>
+<input type=hidden name=sessionid value=$form->{sessionid}>
+
+<input type=submit class=submit name=action value="|.$locale->text('Continue').qq|">
+|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
diff --git a/bin/lynx/ps.pl b/bin/lynx/ps.pl
new file mode 100755
index 00000000..1a11743e
--- /dev/null
+++ b/bin/lynx/ps.pl
@@ -0,0 +1,45 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 1999 - 2005
+#
+# Author: DWS Systems Inc.
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+#
+# point of sale script
+#
+#######################################################################
+
+use SL::AA;
+use SL::IS;
+use SL::RP;
+
+require "$form->{path}/ar.pl";
+require "$form->{path}/is.pl";
+require "$form->{path}/rp.pl";
+require "$form->{path}/pos.pl";
+
+# customizations
+if (-f "$form->{path}/custom_pos.pl") {
+ eval { require "$form->{path}/custom_pos.pl"; };
+}
+if (-f "$form->{path}/$form->{login}_pos.pl") {
+ eval { require "$form->{path}/$form->{login}_pos.pl"; };
+}
+
+1;
+# end
diff --git a/bin/lynx/pw.pl b/bin/lynx/pw.pl
new file mode 100755
index 00000000..a634e74b
--- /dev/null
+++ b/bin/lynx/pw.pl
@@ -0,0 +1,73 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2004
+#
+# Author: DWS Systems Inc.
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#======================================================================
+
+
+1;
+# end of main
+
+
+sub getpassword {
+ my ($s) = @_;
+
+ $form->{endsession} = 1;
+ $form->header;
+
+ $sessionexpired = qq|<b><font color=red><blink>|.$locale->text('Session expired!').qq|</blink></font></b><p>| if $s;
+
+ print qq|
+<script language="JavaScript" type="text/javascript">
+<!--
+function sf(){
+ document.pw.password.focus();
+}
+// End -->
+</script>
+
+<body onload="sf()">
+
+ $sessionexpired
+
+<form method=post action=$form->{script} name=pw>
+
+<table>
+ <tr>
+ <th align=right>|.$locale->text('Password').qq|</th>
+ <td><input type=password name=password size=30></td>
+ <td><input type=submit value="|.$locale->text('Continue').qq|"></td>
+ </tr>
+</table>
+
+|;
+
+ for (qw(script endsession password)) { delete $form->{$_} }
+ $form->hide_form;
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
diff --git a/bin/lynx/rc.pl b/bin/lynx/rc.pl
new file mode 100755
index 00000000..3ba199e4
--- /dev/null
+++ b/bin/lynx/rc.pl
@@ -0,0 +1,502 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2003
+#
+# Author: DWS Systems Inc.
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#======================================================================
+#
+# Account reconciliation module
+#
+#======================================================================
+
+use SL::RC;
+
+1;
+# end of main
+
+# this is for our long dates
+# $locale->text('January')
+# $locale->text('February')
+# $locale->text('March')
+# $locale->text('April')
+# $locale->text('May ')
+# $locale->text('June')
+# $locale->text('July')
+# $locale->text('August')
+# $locale->text('September')
+# $locale->text('October')
+# $locale->text('November')
+# $locale->text('December')
+
+# this is for our short month
+# $locale->text('Jan')
+# $locale->text('Feb')
+# $locale->text('Mar')
+# $locale->text('Apr')
+# $locale->text('May')
+# $locale->text('Jun')
+# $locale->text('Jul')
+# $locale->text('Aug')
+# $locale->text('Sep')
+# $locale->text('Oct')
+# $locale->text('Nov')
+# $locale->text('Dec')
+
+
+sub reconciliation {
+
+ RC->paymentaccounts(\%myconfig, \%$form);
+
+ $selection = "";
+ for (@{ $form->{PR} }) { $selection .= "<option>$_->{accno}--$_->{description}\n" }
+
+ $form->{title} = $locale->text('Reconciliation');
+
+ if ($form->{report}) {
+ $form->{title} = $locale->text('Reconciliation Report');
+ $cleared = qq|
+ <input type=hidden name=report value=1>
+ <tr>
+ <td align=right><input type=checkbox class=checkbox name=outstanding value=1 checked></td>
+ <td>|.$locale->text('Outstanding').qq|</td>
+ <td align=right><input type=checkbox class=checkbox name=cleared value=1></td>
+ <td>|.$locale->text('Cleared').qq|</td>
+ </tr>
+|;
+
+ }
+
+ if (@{ $form->{all_years} }) {
+ # accounting years
+ $form->{selectaccountingyear} = "<option>\n";
+ for (@{ $form->{all_years} }) { $form->{selectaccountingyear} .= qq|<option>$_\n| }
+ $form->{selectaccountingmonth} = "<option>\n";
+ for (sort keys %{ $form->{all_month} }) { $form->{selectaccountingmonth} .= qq|<option value=$_>|.$locale->text($form->{all_month}{$_}).qq|\n| }
+
+ $selectfrom = qq|
+ <tr>
+ <th align=right>|.$locale->text('Period').qq|</th>
+ <td colspan=3>
+ <select name=month>$form->{selectaccountingmonth}</select>
+ <select name=year>$form->{selectaccountingyear}</select>
+ <input name=interval class=radio type=radio value=0 checked>&nbsp;|.$locale->text('Current').qq|
+ <input name=interval class=radio type=radio value=1>&nbsp;|.$locale->text('Month').qq|
+ <input name=interval class=radio type=radio value=3>&nbsp;|.$locale->text('Quarter').qq|
+ <input name=interval class=radio type=radio value=12>&nbsp;|.$locale->text('Year').qq|
+ </td>
+ </tr>
+|;
+ }
+
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Account').qq|</th>
+ <td colspan=3><select name=accno>$selection</select></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('From').qq|</th>
+ <td colspan=3><input name=fromdate size=11 title="$myconfig{dateformat}"> <b>|.$locale->text('To').qq|</b> <input name=todate size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+ $selectfrom
+ $cleared
+ <tr>
+ <td></td>
+ <td colspan=3><input type=radio style=radio name=summary value=1 checked> |.$locale->text('Summary').qq|
+ <input type=radio style=radio name=summary value=0> |.$locale->text('Detail').qq|</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan=3><input type=checkbox class=checkbox name=fx_transaction value=1 checked> |.$locale->text('Include Exchange Rate Difference').qq|</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+<input type=hidden name=nextsub value=get_payments>
+|;
+
+ $form->hide_form(qw(path login sessionid));
+
+ print qq|
+<input type=submit class=submit name=action value="|.$locale->text('Continue').qq|">
+
+</form>
+|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+</body>
+</html>
+|;
+
+}
+
+
+sub continue { &{ $form->{nextsub} } };
+
+
+sub get_payments {
+
+ ($form->{accno}, $form->{account}) = split /--/, $form->{accno};
+
+ RC->payment_transactions(\%myconfig, \%$form);
+
+ $ml = ($form->{category} eq 'A') ? -1 : 1;
+ $form->{statementbalance} = $form->{endingbalance} * $ml;
+ if (! $form->{fx_transaction}) {
+ $form->{statementbalance} = ($form->{endingbalance} - $form->{fx_endingbalance}) * $ml;
+ }
+
+ $form->{statementbalance} = $form->format_amount(\%myconfig, $form->{statementbalance}, 2, 0);
+
+ &display_form;
+
+}
+
+
+sub display_form {
+
+ if ($form->{report}) {
+ @column_index = qw(transdate source name cleared debit credit);
+ } else {
+ @column_index = qw(transdate source name cleared debit credit balance);
+ }
+
+ $column_header{cleared} = qq|<th>|.$locale->text('R').qq|</th>|;
+ $column_header{source} = "<th class=listheading>".$locale->text('Source')."</a></th>";
+ $column_header{name} = "<th class=listheading>".$locale->text('Description')."</a></th>";
+ $column_header{transdate} = "<th class=listheading>".$locale->text('Date')."</a></th>";
+
+ $column_header{debit} = "<th class=listheading>".$locale->text('Debit')."</a></th>";
+ $column_header{credit} = "<th class=listheading>".$locale->text('Credit')."</a></th>";
+ $column_header{balance} = "<th class=listheading>".$locale->text('Balance')."</a></th>";
+
+ if ($form->{fromdate}) {
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('From')."&nbsp;".$locale->date(\%myconfig, $form->{fromdate}, 1);
+ }
+ if ($form->{todate}) {
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('To')."&nbsp;".$locale->date(\%myconfig, $form->{todate}, 1);
+ }
+
+ $form->{title} = "$form->{accno}--$form->{account}";
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$option</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "\n$column_header{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ $ml = ($form->{category} eq 'A') ? -1 : 1;
+ $form->{beginningbalance} *= $ml;
+ $form->{fx_balance} *= $ml;
+
+ if (! $form->{fx_transaction}) {
+ $form->{beginningbalance} -= $form->{fx_balance};
+ }
+ $balance = $form->{beginningbalance};
+
+ $i = 0;
+ $j = 0;
+
+ for (qw(cleared transdate source debit credit)) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ if (! $form->{report}) {
+ $column_data{name} = qq|<td>|.$locale->text('Beginning Balance').qq|</td>|;
+ $column_data{balance} = "<td align=right>".$form->format_amount(\%myconfig, $balance, 2, 0)."</td>";
+ print qq|
+ <tr class=listrow$j>
+|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+ }
+
+
+ foreach $ref (@{ $form->{PR} }) {
+
+ $i++;
+
+ if (! $form->{fx_transaction}) {
+ next if $ref->{fx_transaction};
+ }
+
+ $checked = ($ref->{cleared}) ? "checked" : "";
+
+ %temp = ();
+ if (!$ref->{fx_transaction}) {
+ for (qw(name source transdate)) { $temp{$_} = $ref->{$_} }
+ }
+
+ $column_data{name} = "<td>";
+ for (@{ $temp{name} }) { $column_data{name} .= "$_<br>" }
+ $column_data{name} .= "</td>";
+ $column_data{source} = qq|<td>$temp{source}&nbsp;</td>
+ <input type=hidden name="id_$i" value=$ref->{id}>|;
+
+ $column_data{debit} = "<td>&nbsp;</td>";
+ $column_data{credit} = "<td>&nbsp;</td>";
+
+ $balance += $ref->{amount} * $ml;
+
+ if ($ref->{amount} < 0) {
+
+ $totaldebits += $ref->{amount} * -1;
+
+ $column_data{debit} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{amount} * -1, 2, "&nbsp;")."</td>";
+
+ } else {
+
+ $totalcredits += $ref->{amount};
+
+ $column_data{credit} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{amount}, 2, "&nbsp;")."</td>";
+
+ }
+
+ $column_data{balance} = "<td align=right>".$form->format_amount(\%myconfig, $balance, 2, 0)."</td>";
+
+ if ($ref->{fx_transaction}) {
+
+ $column_data{cleared} = ($clearfx) ? qq|<td align=center>*</td>| : qq|<td>&nbsp;</td>|;
+ $cleared += $ref->{amount} * $ml if $clearfx;
+
+ } else {
+
+ if ($form->{report}) {
+
+ if ($ref->{cleared}) {
+ $column_data{cleared} = qq|<td align=center>*</td>|;
+ $clearfx = 1;
+ } else {
+ $column_data{cleared} = qq|<td>&nbsp;</td>|;
+ $clearfx = 0;
+ }
+
+ } else {
+
+ if ($ref->{oldcleared}) {
+ $cleared += $ref->{amount} * $ml;
+ $clearfx = 1;
+ $column_data{cleared} = qq|<td align=center>*</td>
+ <input type=hidden name="cleared_$i" value=$ref->{cleared}>
+ <input type=hidden name="oldcleared_$i" value=$ref->{oldcleared}>
+ <input type=hidden name="source_$i" value="$ref->{source}">|;
+ } else {
+ $cleared += $ref->{amount} * $ml if $checked;
+ $clearfx = ($checked) ? 1 : 0;
+ $column_data{cleared} = qq|<td align=center><input name="cleared_$i" type=checkbox class=checkbox value=1 $checked>
+ <input type=hidden name="source_$i" value="$ref->{source}"></td>|;
+ }
+
+ }
+ }
+
+ $column_data{transdate} = qq|<td>$temp{transdate}&nbsp;</td>
+ <input type=hidden name="transdate_$i" value=$ref->{transdate}>|;
+
+ $j++; $j %= 2;
+ print qq|
+ <tr class=listrow$j>
+|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ }
+
+ $form->{rowcount} = $i;
+
+ # print totals
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $column_data{debit} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totaldebits, 2, "&nbsp;")."</th>";
+ $column_data{credit} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totalcredits, 2, "&nbsp;")."</th>";
+
+ print qq|
+ <tr class=listtotal>
+|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ $form->{statementbalance} = $form->parse_amount(\%myconfig, $form->{statementbalance});
+ $difference = $form->format_amount(\%myconfig, $form->{beginningbalance} + $cleared - $form->{statementbalance}, 2, 0);
+ $form->{statementbalance} = $form->format_amount(\%myconfig, $form->{statementbalance}, 2, 0);
+
+ print qq|
+ </tr>
+ </table>
+ </td>
+ </tr>
+|;
+
+
+ if ($form->{report}) {
+
+ print qq|
+ </tr>
+ </table>
+|;
+
+ } else {
+
+ print qq|
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Statement Balance').qq|</th>
+ <td width=10%></td>
+ <td align=right><input name=statementbalance size=11 value=$form->{statementbalance}></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Difference').qq|</th>
+ <td width=10%></td>
+ <td align=right><input name=null size=11 value=$difference></td>
+ <input type=hidden name=difference value=$difference>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+ $form->hide_form(qw(fx_transaction summary rowcount accno account fromdate todate path login sessionid));
+
+ print qq|
+<br>
+<input type=submit class=submit name=action value="|.$locale->text('Update').qq|">
+<input type=submit class=submit name=action value="|.$locale->text('Select all').qq|">
+<input type=submit class=submit name=action value="|.$locale->text('Done').qq|">|;
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub update {
+
+ RC->payment_transactions(\%myconfig, \%$form);
+
+ $i = 0;
+ foreach $ref (@{ $form->{PR} }) {
+ $i++;
+ $ref->{cleared} = ($form->{"cleared_$i"}) ? 1 : 0;
+ }
+
+ &display_form;
+
+}
+
+
+sub select_all {
+
+ RC->payment_transactions(\%myconfig, \%$form);
+
+ for (@{ $form->{PR} }) { $_->{cleared} = 1 }
+
+ &display_form;
+
+}
+
+
+sub done {
+
+ $form->{callback} = "$form->{script}?path=$form->{path}&action=reconciliation&login=$form->{login}&sessionid=$form->{sessionid}";
+
+ $form->error($locale->text('Out of balance!')) if ($form->{difference} *= 1);
+
+ RC->reconcile(\%myconfig, \%$form);
+ $form->redirect;
+
+}
+
+
diff --git a/bin/lynx/rp.pl b/bin/lynx/rp.pl
new file mode 100755
index 00000000..d9803c93
--- /dev/null
+++ b/bin/lynx/rp.pl
@@ -0,0 +1,2351 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2001
+#
+# Author: DWS Systems Inc.
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+# Contributors: Antonio Gallardo <agssa@ibw.com.ni>
+# Benjamin Lee <benjaminlee@consultant.com>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#======================================================================
+#
+# module for preparing Income Statement and Balance Sheet
+#
+#======================================================================
+
+require "$form->{path}/arap.pl";
+
+use SL::PE;
+use SL::RP;
+
+1;
+# end of main
+
+# this is for our long dates
+# $locale->text('January')
+# $locale->text('February')
+# $locale->text('March')
+# $locale->text('April')
+# $locale->text('May ')
+# $locale->text('June')
+# $locale->text('July')
+# $locale->text('August')
+# $locale->text('September')
+# $locale->text('October')
+# $locale->text('November')
+# $locale->text('December')
+
+# this is for our short month
+# $locale->text('Jan')
+# $locale->text('Feb')
+# $locale->text('Mar')
+# $locale->text('Apr')
+# $locale->text('May')
+# $locale->text('Jun')
+# $locale->text('Jul')
+# $locale->text('Aug')
+# $locale->text('Sep')
+# $locale->text('Oct')
+# $locale->text('Nov')
+# $locale->text('Dec')
+
+# $locale->text('Balance Sheet')
+# $locale->text('Income Statement')
+# $locale->text('Trial Balance')
+# $locale->text('AR Aging')
+# $locale->text('AP Aging')
+# $locale->text('Tax collected')
+# $locale->text('Tax paid')
+# $locale->text('Receipts')
+# $locale->text('Payments')
+# $locale->text('Project Transactions')
+# $locale->text('Non-taxable Sales')
+# $locale->text('Non-taxable Purchases')
+
+
+sub report {
+
+ %report = ( balance_sheet => { title => 'Balance Sheet' },
+ income_statement => { title => 'Income Statement' },
+ trial_balance => { title => 'Trial Balance' },
+ ar_aging => { title => 'AR Aging', vc => 'customer' },
+ ap_aging => { title => 'AP Aging', vc => 'vendor' },
+ tax_collected => { title => 'Tax collected', vc => 'customer' },
+ tax_paid => { title => 'Tax paid' },
+ nontaxable_sales => { title => 'Non-taxable Sales', vc => 'customer' },
+ nontaxable_purchases => { title => 'Non-taxable Purchases' },
+ receipts => { title => 'Receipts', vc => 'customer' },
+ payments => { title => 'Payments' },
+ projects => { title => 'Project Transactions' },
+ );
+
+ $form->{title} = $locale->text($report{$form->{report}}->{title});
+
+ $gifi = qq|
+<tr>
+ <th align=right>|.$locale->text('Accounts').qq|</th>
+ <td><input name=accounttype class=radio type=radio value=standard checked> |.$locale->text('Standard').qq|
+
+ <input name=accounttype class=radio type=radio value=gifi> |.$locale->text('GIFI').qq|
+ </td>
+</tr>
+|;
+
+
+ # get departments
+ $form->all_departments(\%myconfig, undef, $report{$form->{report}}->{vc});
+ if (@{ $form->{all_department} }) {
+ $form->{selectdepartment} = "<option>\n";
+
+ for (@{ $form->{all_department} }) { $form->{selectdepartment} .= qq|<option value="$_->{description}--$_->{id}">$_->{description}\n| }
+ }
+
+ $department = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Department').qq|</th>
+ <td colspan=3><select name=department>$form->{selectdepartment}</select></td>
+ </tr>
+| if $form->{selectdepartment};
+
+ if (@{ $form->{all_years} }) {
+ # accounting years
+ $form->{selectaccountingyear} = "<option>\n";
+ for (@{ $form->{all_years} }) { $form->{selectaccountingyear} .= qq|<option>$_\n| }
+
+ $form->{selectaccountingmonth} = "<option>\n";
+ for (sort keys %{ $form->{all_month} }) { $form->{selectaccountingmonth} .= qq|<option value=$_>|.$locale->text($form->{all_month}{$_}).qq|\n| }
+
+ $selectfrom = qq|
+ <tr>
+ <th align=right>|.$locale->text('Period').qq|</th>
+ <td colspan=3>
+ <select name=month>$form->{selectaccountingmonth}</select>
+ <select name=year>$form->{selectaccountingyear}</select>
+ <input name=interval class=radio type=radio value=0 checked>&nbsp;|.$locale->text('Current').qq|
+ <input name=interval class=radio type=radio value=1>&nbsp;|.$locale->text('Month').qq|
+ <input name=interval class=radio type=radio value=3>&nbsp;|.$locale->text('Quarter').qq|
+ <input name=interval class=radio type=radio value=12>&nbsp;|.$locale->text('Year').qq|
+ </td>
+ </tr>
+|;
+
+ $selectto = qq|
+ <tr>
+ <th align=right></th>
+ <td>
+ <select name=month>$form->{selectaccountingmonth}</select>
+ <select name=year>$form->{selectaccountingyear}</select>
+ </td>
+ </tr>
+|;
+ }
+
+
+ $summary = qq|
+ <tr>
+ <th></th>
+ <td><input name=summary type=radio class=radio value=1 checked> |.$locale->text('Summary').qq|
+ <input name=summary type=radio class=radio value=0> |.$locale->text('Detail').qq|
+ </td>
+ </tr>
+|;
+
+ # get projects
+ $form->all_projects(\%myconfig);
+ if (@{ $form->{all_project} }) {
+ $form->{selectproject} = "<option>\n";
+ for (@{ $form->{all_project} }) { $form->{selectproject} .= qq|<option value="$_->{projectnumber}--$_->{id}">$_->{projectnumber}\n| }
+
+ $project = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Project').qq|</th>
+ <td colspan=3><select name=projectnumber>$form->{selectproject}</select></td>
+ </tr>|;
+
+ }
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=title value="$form->{title}">
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ $department
+|;
+
+ if ($form->{report} eq "projects") {
+ print qq|
+ $project
+ <input type=hidden name=nextsub value=generate_projects>
+ <tr>
+ <th align=right>|.$locale->text('From').qq|</th>
+ <td><input name=fromdate size=11 title="$myconfig{dateformat}" value=$form->{fromdate}></td>
+ <th align=right>|.$locale->text('To').qq|</th>
+ <td><input name=todate size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+ $selectfrom
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Include in Report').qq|</th>
+ <td><input name=l_heading class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Heading').qq|
+ <input name=l_subtotal class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Subtotal').qq|</td>
+ </tr>
+|;
+ }
+
+ if ($form->{report} eq "income_statement") {
+ print qq|
+ $project
+ <input type=hidden name=nextsub value=generate_income_statement>
+ <tr>
+ <th align=right>|.$locale->text('From').qq|</th>
+ <td><input name=fromdate size=11 title="$myconfig{dateformat}" value=$form->{fromdate}></td>
+ <th align=right>|.$locale->text('To').qq|</th>
+ <td><input name=todate size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+|;
+
+ if ($selectfrom) {
+ print qq|
+ <tr>
+ <th align=right>|.$locale->text('Period').qq|</th>
+ <td colspan=3>
+ <select name=frommonth>$form->{selectaccountingmonth}</select>
+ <select name=fromyear>$form->{selectaccountingyear}</select>
+ <input name=interval class=radio type=radio value=0 checked>&nbsp;|.$locale->text('Current').qq|
+ <input name=interval class=radio type=radio value=1>&nbsp;|.$locale->text('Month').qq|
+ <input name=interval class=radio type=radio value=3>&nbsp;|.$locale->text('Quarter').qq|
+ <input name=interval class=radio type=radio value=12>&nbsp;|.$locale->text('Year').qq|
+ </td>
+ </tr>
+|;
+ }
+
+ print qq|
+
+ <tr>
+ <th align=right>|.$locale->text('Compare to').qq|</th>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('From').qq|</th>
+ <td><input name=comparefromdate size=11 title="$myconfig{dateformat}"></td>
+ <th align=right>|.$locale->text('To').qq|</th>
+ <td><input name=comparetodate size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+|;
+
+ if ($selectto) {
+ print qq|
+ <tr>
+ <th align=right>|.$locale->text('Period').qq|</th>
+ <td>
+ <select name=comparemonth>$form->{selectaccountingmonth}</select>
+ <select name=compareyear>$form->{selectaccountingyear}</select>
+ </td>
+ </tr>
+|;
+ }
+
+ print qq|
+ <tr>
+ <th align=right>|.$locale->text('Decimalplaces').qq|</th>
+ <td><input name=decimalplaces size=3 value=2></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right>|.$locale->text('Method').qq|</th>
+ <td colspan=3><input name=method class=radio type=radio value=accrual checked>|.$locale->text('Accrual').qq|
+ &nbsp;<input name=method class=radio type=radio value=cash>|.$locale->text('Cash').qq|</td>
+ </tr>
+
+ <tr>
+ <th align=right nowrap>|.$locale->text('Include in Report').qq|</th>
+ <td colspan=3><input name=l_heading class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Heading').qq|
+ <input name=l_subtotal class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Subtotal').qq|
+ <input name=l_accno class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Account Number').qq|</td>
+ </tr>
+|;
+ }
+
+
+ if ($form->{report} eq "balance_sheet") {
+ print qq|
+ <input type=hidden name=nextsub value=generate_balance_sheet>
+ <tr>
+ <th align=right>|.$locale->text('as at').qq|</th>
+ <td><input name=asofdate size=11 title="$myconfig{dateformat}" value=$form->{asofdate}></td>
+|;
+
+ if ($selectfrom) {
+ print qq|
+ <td>
+ <select name=asofmonth>$form->{selectaccountingmonth}</select>
+ <select name=asofyear>$form->{selectaccountingyear}</select>
+ </td>
+|;
+ }
+
+ print qq|
+ </tr>
+
+ <th align=right nowrap>|.$locale->text('Compare to').qq|</th>
+ <td><input name=compareasofdate size=11 title="$myconfig{dateformat}"></td>
+ <td>
+|;
+
+ if ($selectto) {
+ print qq|
+ <select name=compareasofmonth>$form->{selectaccountingmonth}</select>
+ <select name=compareasofyear>$form->{selectaccountingyear}</select>
+ </td>
+|;
+ }
+
+ print qq|
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Decimalplaces').qq|</th>
+ <td><input name=decimalplaces size=3 value=2></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right>|.$locale->text('Method').qq|</th>
+ <td colspan=3><input name=method class=radio type=radio value=accrual checked>|.$locale->text('Accrual').qq|
+ &nbsp;<input name=method class=radio type=radio value=cash>|.$locale->text('Cash').qq|</td>
+ </tr>
+
+ <tr>
+ <th align=right nowrap>|.$locale->text('Include in Report').qq|</th>
+ <td><input name=l_heading class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Heading').qq|
+ <input name=l_subtotal class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Subtotal').qq|
+ <input name=l_accno class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Account Number').qq|</td>
+ </tr>
+|;
+ }
+
+
+ if ($form->{report} eq "trial_balance") {
+ print qq|
+ <input type=hidden name=nextsub value=generate_trial_balance>
+ <tr>
+ <th align=right>|.$locale->text('From').qq|</th>
+ <td><input name=fromdate size=11 title="$myconfig{dateformat}" value=$form->{fromdate}></td>
+ <th align=right>|.$locale->text('To').qq|</th>
+ <td><input name=todate size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+ $selectfrom
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Include in Report').qq|</th>
+ <td><input name=l_heading class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Heading').qq|
+ <input name=l_subtotal class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Subtotal').qq|
+ <input name=all_accounts class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('All Accounts').qq|</td>
+ </tr>
+|;
+ }
+
+
+ if ($form->{report} =~ /^tax_/) {
+ $gifi = "";
+
+ $form->{db} = ($form->{report} =~ /_collected/) ? "ar" : "ap";
+
+ RP->get_taxaccounts(\%myconfig, \%$form);
+
+ print qq|
+ <input type=hidden name=nextsub value=generate_tax_report>
+ <tr>
+ <th align=right>|.$locale->text('From').qq|</th>
+ <td><input name=fromdate size=11 title="$myconfig{dateformat}" value=$form->{fromdate}></td>
+ <th align=right>|.$locale->text('To').qq|</th>
+ <td><input name=todate size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+ $selectfrom
+ $summary
+ <tr>
+ <th align=right>|.$locale->text('Report for').qq|</th>
+ <td colspan=3>
+|;
+
+ $checked = "checked";
+ foreach $ref (@{ $form->{taxaccounts} }) {
+
+ print qq|<input name=accno class=radio type=radio value=$ref->{accno} $checked>&nbsp;$ref->{description}
+
+ <input name="$ref->{accno}_description" type=hidden value="$ref->{description}">
+ <input name="$ref->{accno}_rate" type=hidden value="$ref->{rate}">|;
+
+ $checked = "";
+
+ }
+
+ print qq|
+ <input type=hidden name=db value=$form->{db}>
+ <input type=hidden name=sort value=transdate>
+
+ </td>
+ </tr>
+|;
+
+
+ if (@{ $form->{gifi_taxaccounts} }) {
+ print qq|
+ <tr>
+ <th align=right>|.$locale->text('GIFI').qq|</th>
+ <td colspan=3>
+|;
+
+ foreach $ref (@{ $form->{gifi_taxaccounts} }) {
+
+ print qq|<input name=accno class=radio type=radio value="gifi_$ref->{accno}">&nbsp;$ref->{description}
+
+ <input name="gifi_$ref->{accno}_description" type=hidden value="$ref->{description}">
+ <input name="gifi_$ref->{accno}_rate" type=hidden value="$ref->{rate}">|;
+
+ }
+
+ print qq|
+ </td>
+ </tr>
+|;
+ }
+
+
+print qq|
+ <tr>
+ <th align=right>|.$locale->text('Method').qq|</th>
+ <td colspan=3><input name=method class=radio type=radio value=accrual checked>|.$locale->text('Accrual').qq|
+ &nbsp;<input name=method class=radio type=radio value=cash>|.$locale->text('Cash').qq|</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right>|.$locale->text('Include in Report').qq|</th>
+ <td>
+ <table>
+ <tr>
+ <td><input name="l_id" class=checkbox type=checkbox value=Y></td>
+ <td>|.$locale->text('ID').qq|</td>
+ <td><input name="l_invnumber" class=checkbox type=checkbox value=Y checked></td>
+ <td>|.$locale->text('Invoice').qq|</td>
+ <td><input name="l_transdate" class=checkbox type=checkbox value=Y checked></td>
+ <td>|.$locale->text('Date').qq|</td>
+ </tr>
+ <tr>
+ <td><input name="l_name" class=checkbox type=checkbox value=Y checked></td>
+|;
+
+ if ($form->{db} eq 'ar') {
+ print qq|<td>|.$locale->text('Customer').qq|</td>|;
+ }
+ if ($form->{db} eq 'ap') {
+ print qq|<td>|.$locale->text('Vendor').qq|</td>|;
+ }
+
+ print qq|
+ <td><input name="l_description" class=checkbox type=checkbox value=Y checked></td>
+ <td>|.$locale->text('Description').qq|</td>
+ <td><input name="l_netamount" class=checkbox type=checkbox value=Y checked></td>
+ <td>|.$locale->text('Amount').qq|</td>
+
+ <td><input name="l_tax" class=checkbox type=checkbox value=Y checked></td>
+ <td>|.$locale->text('Tax').qq|</td>
+
+ <td><input name="l_total" class=checkbox type=checkbox value=Y checked></td>
+ <td>|.$locale->text('Total').qq|</td>
+ </tr>
+ <tr>
+ </tr>
+ <tr>
+ <td><input name="l_subtotal" class=checkbox type=checkbox value=Y></td>
+ <td>|.$locale->text('Subtotal').qq|</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+|;
+
+ }
+
+
+ if ($form->{report} =~ /^nontaxable_/) {
+ $gifi = "";
+
+ $form->{db} = ($form->{report} =~ /_sales/) ? "ar" : "ap";
+
+ print qq|
+ <input type=hidden name=nextsub value=generate_tax_report>
+
+ <input type=hidden name=db value=$form->{db}>
+ <input type=hidden name=sort value=transdate>
+ <input type=hidden name=report value=$form->{report}>
+
+ <tr>
+ <th align=right>|.$locale->text('From').qq|</th>
+ <td><input name=fromdate size=11 title="$myconfig{dateformat}" value=$form->{fromdate}></td>
+ <th align=right>|.$locale->text('To').qq|</th>
+ <td><input name=todate size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+ $selectfrom
+ $summary
+ <tr>
+ <th align=right>|.$locale->text('Method').qq|</th>
+ <td colspan=3><input name=method class=radio type=radio value=accrual checked>|.$locale->text('Accrual').qq|
+ &nbsp;<input name=method class=radio type=radio value=cash>|.$locale->text('Cash').qq|</td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Include in Report').qq|</th>
+ <td colspan=3>
+ <table>
+ <tr>
+ <td><input name="l_id" class=checkbox type=checkbox value=Y></td>
+ <td>|.$locale->text('ID').qq|</td>
+ <td><input name="l_invnumber" class=checkbox type=checkbox value=Y checked></td>
+ <td>|.$locale->text('Invoice').qq|</td>
+ <td><input name="l_transdate" class=checkbox type=checkbox value=Y checked></td>
+ <td>|.$locale->text('Date').qq|</td>
+ </tr>
+ <tr>
+ <td><input name="l_name" class=checkbox type=checkbox value=Y checked></td>
+|;
+
+ if ($form->{db} eq 'ar') {
+ print qq|<td>|.$locale->text('Customer').qq|</td>|;
+ }
+ if ($form->{db} eq 'ap') {
+ print qq|<td>|.$locale->text('Vendor').qq|</td>|;
+ }
+
+ print qq|
+ <td><input name="l_description" class=checkbox type=checkbox value=Y checked></td>
+ <td>|.$locale->text('Description').qq|</td>
+ <td><input name="l_netamount" class=checkbox type=checkbox value=Y checked></td>
+ <td>|.$locale->text('Amount').qq|</td>
+ </tr>
+ <tr>
+ <td><input name="l_subtotal" class=checkbox type=checkbox value=Y></td>
+ <td>|.$locale->text('Subtotal').qq|</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+|;
+
+ }
+
+
+ if (($form->{report} eq "ar_aging") || ($form->{report} eq "ap_aging")) {
+ $gifi = "";
+
+ if ($form->{report} eq 'ar_aging') {
+ $label = $locale->text('Customer');
+ $form->{vc} = 'customer';
+ } else {
+ $label = $locale->text('Vendor');
+ $form->{vc} = 'vendor';
+ }
+
+ $nextsub = "generate_$form->{report}";
+
+ # setup vc selection
+ $form->all_vc(\%myconfig, $form->{vc}, ($form->{vc} eq 'customer') ? "AR" : "AP");
+
+ for (@{ $form->{"all_$form->{vc}"} }) { $vc .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+
+ $vc = ($vc) ? qq|<select name=$form->{vc}><option>\n$vc</select>| : qq|<input name=$form->{vc} size=35>|;
+
+ $postscript = "postscript" if $myconfig{printer};
+
+ print qq|
+ <tr>
+ <th align=right>|.$locale->text($label).qq|</th>
+ <td>$vc</td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('To').qq|</th>
+ <td><input name=todate size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+ $selectto
+ <input type=hidden name=type value=statement>
+ <input type=hidden name=format value=$postscript>
+ <input type=hidden name=media value="$myconfig{printer}">
+
+ <input type=hidden name=nextsub value=$nextsub>
+ <input type=hidden name=action value=$nextsub>
+ $summary
+ <tr>
+ <table>
+ <tr>
+ <th>|.$locale->text('Include in Report').qq|</th>
+
+ <td>
+ <table>
+ <tr>
+ <td nowrap><input name=overdue type=radio class=radio value=0 checked> |.$locale->text('Aged').qq|</td>
+ <td nowrap><input name=overdue type=radio class=radio value=1> |.$locale->text('Overdue').qq|</td>
+ </tr>
+ <tr>
+ <td nowrap width=70><input name=c0 type=checkbox class=checkbox value=1 checked> |.$locale->text('Current').qq|</td>
+ <td nowrap width=70><input name=c30 type=checkbox class=checkbox value=1 checked> 30</td>
+ <td nowrap width=70><input name=c60 type=checkbox class=checkbox value=1 checked> 60</td>
+ <td nowrap width=70><input name=c90 type=checkbox class=checkbox value=1 checked> 90</td>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </tr>
+
+|;
+ }
+
+# above action can be removed if there is more than one input field
+
+
+ if ($form->{report} =~ /(receipts|payments)$/) {
+ $gifi = "";
+
+ $form->{db} = ($form->{report} =~ /payments$/) ? "ap" : "ar";
+
+ RP->paymentaccounts(\%myconfig, \%$form);
+
+ $selection = "<option>\n";
+ foreach $ref (@{ $form->{PR} }) {
+ $paymentaccounts .= "$ref->{accno} ";
+ $selection .= "<option>$ref->{accno}--$ref->{description}\n";
+ }
+
+ chop $paymentaccounts;
+
+ print qq|
+ <input type=hidden name=nextsub value=list_payments>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Account').qq|</th>
+ <td colspan=3><select name=account>$selection</select>
+ <input type=hidden name=paymentaccounts value="$paymentaccounts">
+ </td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Description').qq|</th>
+ <td colspan=3><input name=description size=35></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Source').qq|</th>
+ <td colspan=3><input name=source></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Memo').qq|</th>
+ <td colspan=3><input name=memo size=30></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('From').qq|</th>
+ <td><input name=fromdate size=11 title="$myconfig{dateformat}" value=$form->{fromdate}></td>
+ <th align=right>|.$locale->text('To').qq|</th>
+ <td><input name=todate size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+ $selectfrom
+ <tr>
+ <td align=right><input type=checkbox class=checkbox name=fx_transaction value=1 checked></td>
+ <td colspan=3>|.$locale->text('Include Exchange Rate Difference').qq|</td>
+ </tr>
+ <tr>
+ <td align=right><input name=l_subtotal class=checkbox type=checkbox value=Y></td>
+ <td align=left colspan=3>|.$locale->text('Subtotal').qq|</th>
+ </tr>
+
+ <input type=hidden name=db value=$form->{db}>
+ <input type=hidden name=sort value=transdate>
+|;
+
+ }
+
+
+ print qq|
+
+$gifi
+
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+<input type=hidden name=path value=$form->{path}>
+<input type=hidden name=login value=$form->{login}>
+<input type=hidden name=sessionid value=$form->{sessionid}>
+
+<input type=submit class=submit name=action value="|.$locale->text('Continue').qq|">
+
+</form>
+|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+</body>
+</html>
+|;
+
+}
+
+
+sub continue { &{$form->{nextsub}} };
+
+
+sub generate_income_statement {
+
+ $form->{padding} = "&nbsp;&nbsp;";
+ $form->{bold} = "<b>";
+ $form->{endbold} = "</b>";
+ $form->{br} = "<br>";
+
+ RP->income_statement(\%myconfig, \%$form);
+
+ ($form->{department}) = split /--/, $form->{department};
+ ($form->{projectnumber}) = split /--/, $form->{projectnumber};
+
+ $form->{period} = $locale->date(\%myconfig, $form->current_date(\%myconfig), 1);
+ $form->{todate} = $form->current_date(\%myconfig) unless $form->{todate};
+
+ # if there are any dates construct a where
+ if ($form->{fromdate} || $form->{todate}) {
+
+ unless ($form->{todate}) {
+ $form->{todate} = $form->current_date(\%myconfig);
+ }
+
+ $longtodate = $locale->date(\%myconfig, $form->{todate}, 1);
+ $shorttodate = $locale->date(\%myconfig, $form->{todate}, 0);
+
+ $longfromdate = $locale->date(\%myconfig, $form->{fromdate}, 1);
+ $shortfromdate = $locale->date(\%myconfig, $form->{fromdate}, 0);
+
+ $form->{this_period} = "$shortfromdate<br>\n$shorttodate";
+ $form->{period} = $locale->text('for Period').qq|<br>\n$longfromdate |.$locale->text('To').qq| $longtodate|;
+ }
+
+ if ($form->{comparefromdate} || $form->{comparetodate}) {
+ $longcomparefromdate = $locale->date(\%myconfig, $form->{comparefromdate}, 1);
+ $shortcomparefromdate = $locale->date(\%myconfig, $form->{comparefromdate}, 0);
+
+ $longcomparetodate = $locale->date(\%myconfig, $form->{comparetodate}, 1);
+ $shortcomparetodate = $locale->date(\%myconfig, $form->{comparetodate}, 0);
+
+ $form->{last_period} = "$shortcomparefromdate<br>\n$shortcomparetodate";
+ $form->{period} .= "<br>\n$longcomparefromdate ".$locale->text('To').qq| $longcomparetodate|;
+ }
+
+ # setup variables for the form
+ @a = qw(company address businessnumber);
+ for (@a) { $form->{$_} = $myconfig{$_} }
+ $form->{address} =~ s/\\n/<br>/g;
+
+ $form->{templates} = $myconfig{templates};
+
+ $form->{IN} = "income_statement.html";
+
+ $form->parse_template;
+
+}
+
+
+sub generate_balance_sheet {
+
+ $form->{padding} = "&nbsp;&nbsp;";
+ $form->{bold} = "<b>";
+ $form->{endbold} = "</b>";
+ $form->{br} = "<br>";
+
+ RP->balance_sheet(\%myconfig, \%$form);
+
+ $form->{asofdate} = $form->current_date(\%myconfig) unless $form->{asofdate};
+ $form->{period} = $locale->date(\%myconfig, $form->current_date(\%myconfig), 1);
+
+ ($form->{department}) = split /--/, $form->{department};
+
+ # define Current Earnings account
+ $padding = ($form->{l_heading}) ? $form->{padding} : "";
+ push(@{$form->{equity_account}}, $padding.$locale->text('Current Earnings'));
+
+ $form->{this_period} = $locale->date(\%myconfig, $form->{asofdate}, 0);
+ $form->{last_period} = $locale->date(\%myconfig, $form->{compareasofdate}, 0);
+
+ $form->{IN} = "balance_sheet.html";
+
+ # setup company variables for the form
+ for (qw(company address businessnumber nativecurr)) { $form->{$_} = $myconfig{$_} }
+ $form->{address} =~ s/\\n/<br>/g;
+
+ $form->{templates} = $myconfig{templates};
+
+ $form->parse_template;
+
+}
+
+
+sub generate_projects {
+
+ $form->{nextsub} = "generate_projects";
+ $form->{title} = $locale->text('Project Transactions');
+
+ RP->trial_balance(\%myconfig, \%$form);
+
+ &list_accounts;
+
+}
+
+
+# Antonio Gallardo
+#
+# D.S. Feb 16, 2001
+# included links to display transactions for period entered
+# added headers and subtotals
+#
+sub generate_trial_balance {
+
+ # get for each account initial balance, debits and credits
+ RP->trial_balance(\%myconfig, \%$form);
+
+ $form->{nextsub} = "generate_trial_balance";
+ $form->{title} = $locale->text('Trial Balance');
+
+ $form->{callback} = "$form->{script}?action=generate_trial_balance";
+ for (qw(login path sessionid nextsub fromdate todate month year interval l_heading l_subtotal all_accounts accounttype title)) { $form->{callback} .= "&$_=$form->{$_}" }
+ $form->{callback} = $form->escape($form->{callback});
+
+ &list_accounts;
+
+}
+
+
+sub list_accounts {
+
+ $title = $form->escape($form->{title});
+
+ if ($form->{department}) {
+ ($department) = split /--/, $form->{department};
+ $options = $locale->text('Department')." : $department<br>";
+ $department = $form->escape($form->{department});
+ }
+ if ($form->{projectnumber}) {
+ ($projectnumber) = split /--/, $form->{projectnumber};
+ $options .= $locale->text('Project Number')." : $projectnumber<br>";
+ $projectnumber = $form->escape($form->{projectnumber});
+ }
+
+ # if there are any dates
+ if ($form->{fromdate} || $form->{todate}) {
+
+ if ($form->{fromdate}) {
+ $fromdate = $locale->date(\%myconfig, $form->{fromdate}, 1);
+ }
+ if ($form->{todate}) {
+ $todate = $locale->date(\%myconfig, $form->{todate}, 1);
+ }
+
+ $form->{period} = "$fromdate - $todate";
+ } else {
+ $form->{period} = $locale->date(\%myconfig, $form->current_date(\%myconfig), 1);
+
+ }
+ $options .= $form->{period};
+
+ @column_index = qw(accno description begbalance debit credit endbalance);
+
+ $column_header{accno} = qq|<th class=listheading>|.$locale->text('Account').qq|</th>|;
+ $column_header{description} = qq|<th class=listheading>|.$locale->text('Description').qq|</th>|;
+ $column_header{debit} = qq|<th class=listheading>|.$locale->text('Debit').qq|</th>|;
+ $column_header{credit} = qq|<th class=listheading>|.$locale->text('Credit').qq|</th>|;
+ $column_header{begbalance} = qq|<th class=listheading>|.$locale->text('Balance').qq|</th>|;
+ $column_header{endbalance} = qq|<th class=listheading>|.$locale->text('Balance').qq|</th>|;
+
+
+ if ($form->{accounttype} eq 'gifi') {
+ $column_header{accno} = qq|<th class=listheading>|.$locale->text('GIFI').qq|</th>|;
+ }
+
+
+ $form->header;
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$options</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>|;
+
+ for (@column_index) { print "$column_header{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+
+
+ # sort the whole thing by account numbers and display
+ foreach $ref (sort { $a->{accno} cmp $b->{accno} } @{ $form->{TB} }) {
+
+ $description = $form->escape($ref->{description});
+
+ $href = qq|ca.pl?path=$form->{path}&action=list_transactions&accounttype=$form->{accounttype}&login=$form->{login}&sessionid=$form->{sessionid}&fromdate=$form->{fromdate}&todate=$form->{todate}&sort=transdate&l_heading=$form->{l_heading}&l_subtotal=$form->{l_subtotal}&department=$department&projectnumber=$projectnumber&project_id=$form->{project_id}&title=$title&nextsub=$form->{nextsub}&prevreport=$form->{callback}|;
+
+ if ($form->{accounttype} eq 'gifi') {
+ $href .= "&gifi_accno=$ref->{accno}&gifi_description=$description";
+ $na = $locale->text('N/A');
+ if (!$ref->{accno}) {
+ for (qw(accno description)) { $ref->{$_} = $na }
+ }
+ } else {
+ $href .= "&accno=$ref->{accno}&description=$description";
+ }
+
+ $ml = ($ref->{category} =~ /(A|E)/) ? -1 : 1;
+ $ml *= -1 if $ref->{contra};
+
+ $debit = $form->format_amount(\%myconfig, $ref->{debit}, 2, "&nbsp;");
+ $credit = $form->format_amount(\%myconfig, $ref->{credit}, 2, "&nbsp;");
+ $begbalance = $form->format_amount(\%myconfig, $ref->{balance} * $ml, 2, "&nbsp;");
+ $endbalance = $form->format_amount(\%myconfig, ($ref->{balance} + $ref->{amount}) * $ml, 2, "&nbsp;");
+
+
+ if ($ref->{charttype} eq "H" && $subtotal && $form->{l_subtotal}) {
+
+ if ($subtotal) {
+
+ for (qw(accno begbalance endbalance)) { $column_data{$_} = "<th>&nbsp;</th>" }
+
+ $subtotalbegbalance = $form->format_amount(\%myconfig, $subtotalbegbalance, 2, "&nbsp;");
+ $subtotalendbalance = $form->format_amount(\%myconfig, $subtotalendbalance, 2, "&nbsp;");
+ $subtotaldebit = $form->format_amount(\%myconfig, $subtotaldebit, 2, "&nbsp;");
+ $subtotalcredit = $form->format_amount(\%myconfig, $subtotalcredit, 2, "&nbsp;");
+
+ $column_data{description} = "<th class=listsubtotal>$subtotaldescription</th>";
+ $column_data{begbalance} = "<th align=right class=listsubtotal>$subtotalbegbalance</th>";
+ $column_data{endbalance} = "<th align=right class=listsubtotal>$subtotalendbalance</th>";
+ $column_data{debit} = "<th align=right class=listsubtotal>$subtotaldebit</th>";
+ $column_data{credit} = "<th align=right class=listsubtotal>$subtotalcredit</th>";
+
+ print qq|
+ <tr class=listsubtotal>
+|;
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+ }
+ }
+
+ if ($ref->{charttype} eq "H") {
+ $subtotal = 1;
+ $subtotaldescription = $ref->{description};
+ $subtotaldebit = $ref->{debit};
+ $subtotalcredit = $ref->{credit};
+ $subtotalbegbalance = 0;
+ $subtotalendbalance = 0;
+
+ if ($form->{l_heading}) {
+ if (! $form->{all_accounts}) {
+ if (($subtotaldebit + $subtotalcredit) == 0) {
+ $subtotal = 0;
+ next;
+ }
+ }
+ } else {
+ $subtotal = 0;
+ if ($form->{all_accounts} || ($form->{l_subtotal} && (($subtotaldebit + $subtotalcredit) != 0))) {
+ $subtotal = 1;
+ }
+ next;
+ }
+
+ for (qw(accno debit credit begbalance endbalance)) { $column_data{$_} = "<th>&nbsp;</th>" }
+ $column_data{description} = "<th class=listheading>$ref->{description}</th>";
+ }
+
+ if ($ref->{charttype} eq "A") {
+ $column_data{accno} = "<td><a href=$href>$ref->{accno}</a></td>";
+ $column_data{description} = "<td>$ref->{description}</td>";
+ $column_data{debit} = "<td align=right>$debit</td>";
+ $column_data{credit} = "<td align=right>$credit</td>";
+ $column_data{begbalance} = "<td align=right>$begbalance</td>";
+ $column_data{endbalance} = "<td align=right>$endbalance</td>";
+
+ $totaldebit += $ref->{debit};
+ $totalcredit += $ref->{credit};
+
+ $cml = ($ref->{contra}) ? -1 : 1;
+
+ $subtotalbegbalance += $ref->{balance} * $ml * $cml;
+ $subtotalendbalance += ($ref->{balance} + $ref->{amount}) * $ml * $cml;
+
+ }
+
+
+ if ($ref->{charttype} eq "H") {
+ print qq|
+ <tr class=listheading>
+|;
+ }
+ if ($ref->{charttype} eq "A") {
+ $i++; $i %= 2;
+ print qq|
+ <tr class=listrow$i>
+|;
+ }
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+ }
+
+
+ # print last subtotal
+ if ($subtotal && $form->{l_subtotal}) {
+ for (qw(accno begbalance endbalance)) { $column_data{$_} = "<th>&nbsp;</th>" }
+ $subtotalbegbalance = $form->format_amount(\%myconfig, $subtotalbegbalance, 2, "&nbsp;");
+ $subtotalendbalance = $form->format_amount(\%myconfig, $subtotalendbalance, 2, "&nbsp;");
+ $subtotaldebit = $form->format_amount(\%myconfig, $subtotaldebit, 2, "&nbsp;");
+ $subtotalcredit = $form->format_amount(\%myconfig, $subtotalcredit, 2, "&nbsp;");
+ $column_data{description} = "<th class=listsubtotal>$subtotaldescription</th>";
+ $column_data{begbalance} = "<th align=right class=listsubtotal>$subtotalbegbalance</th>";
+ $column_data{endbalance} = "<th align=right class=listsubtotal>$subtotalendbalance</th>";
+ $column_data{debit} = "<th align=right class=listsubtotal>$subtotaldebit</th>";
+ $column_data{credit} = "<th align=right class=listsubtotal>$subtotalcredit</th>";
+
+ print qq|
+ <tr class=listsubtotal>
+|;
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+ }
+
+ $totaldebit = $form->format_amount(\%myconfig, $totaldebit, 2, "&nbsp;");
+ $totalcredit = $form->format_amount(\%myconfig, $totalcredit, 2, "&nbsp;");
+
+ for (qw(accno description begbalance endbalance)) { $column_data{$_} = "<th>&nbsp;</th>" }
+
+ $column_data{debit} = qq|<th align=right class=listtotal>$totaldebit</th>|;
+ $column_data{credit} = qq|<th align=right class=listtotal>$totalcredit</th>|;
+
+ print qq|
+ <tr class=listtotal>
+|;
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub generate_ar_aging {
+
+ # split customer
+ ($form->{customer}) = split(/--/, $form->{customer});
+ $customer = $form->escape($form->{customer},1);
+ $title = $form->escape($form->{title},1);
+ $media = $form->escape($form->{media},1);
+
+ $form->{ct} = "customer";
+ $form->{arap} = "ar";
+
+ RP->aging(\%myconfig, \%$form);
+
+ $form->{callback} = qq|$form->{script}?path=$form->{path}&action=generate_ar_aging&login=$form->{login}&sessionid=$form->{sessionid}&todate=$form->{todate}&customer=$customer&title=$title&type=$form->{type}&format=$form->{format}&media=$media&summary=$form->{summary}|;
+
+ &aging;
+
+}
+
+
+sub generate_ap_aging {
+
+ # split vendor
+ ($form->{vendor}) = split(/--/, $form->{vendor});
+ $vendor = $form->escape($form->{vendor},1);
+ $title = $form->escape($form->{title},1);
+ $media = $form->escape($form->{media},1);
+
+ $form->{ct} = "vendor";
+ $form->{arap} = "ap";
+
+ RP->aging(\%myconfig, \%$form);
+
+ $form->{callback} = qq|$form->{script}?path=$form->{path}&action=generate_ap_aging&login=$form->{login}&sessionid=$form->{sessionid}&todate=$form->{todate}&vendor=$vendor&title=$title&type=$form->{type}&format=$form->{format}&media=$media&summary=$form->{summary}|;
+
+ &aging;
+
+}
+
+
+sub aging {
+
+ $form->header;
+
+ $column_header{statement} = qq|<th class=listheading width=1%>&nbsp;</th>|;
+ $column_header{ct} = qq|<th class=listheading width=60%>|.$locale->text(ucfirst $form->{ct}).qq|</th>|;
+ $column_header{language} = qq|<th class=listheading>|.$locale->text('Language').qq|</th>|;
+ $column_header{invnumber} = qq|<th class=listheading>|.$locale->text('Invoice').qq|</th>|;
+ $column_header{ordnumber} = qq|<th class=listheading>|.$locale->text('Order').qq|</th>|;
+ $column_header{transdate} = qq|<th class=listheading nowrap>|.$locale->text('Date').qq|</th>|;
+ $column_header{duedate} = qq|<th class=listheading nowrap>|.$locale->text('Due Date').qq|</th>|;
+ $column_header{c0} = qq|<th class=listheading width=10% nowrap>|.$locale->text('Current').qq|</th>|;
+ $column_header{c30} = qq|<th class=listheading width=10% nowrap>30</th>|;
+ $column_header{c60} = qq|<th class=listheading width=10% nowrap>60</th>|;
+ $column_header{c90} = qq|<th class=listheading width=10% nowrap>90</th>|;
+ $column_header{total} = qq|<th class=listheading width=10% nowrap>|.$locale->text('Total').qq|</th>|;
+
+ @column_index = qw(statement ct);
+
+ if (@{ $form->{all_language} } && $form->{arap} eq 'ar') {
+ push @column_index, "language";
+ $form->{selectlanguage} = qq|<option>\n|;
+
+ for (@{ $form->{all_language} }) { $form->{selectlanguage} .= qq|<option value="$_->{code}">$_->{description}\n| }
+ }
+
+ @c = ();
+ for (qw(c0 c30 c60 c90)) {
+ if ($form->{$_}) {
+ push @c, $_;
+ $form->{callback} .= "&$_=$form->{$_}";
+ }
+ }
+
+ if (!$form->{summary}) {
+ push @column_index, qw(invnumber ordnumber transdate duedate);
+ }
+ push @column_index, @c;
+ push @column_index, "total";
+
+ $option = $locale->text('Aged');
+ if ($form->{overdue}) {
+ $option= $locale->text('Aged Overdue');
+ $form->{callback} .= "&overdue=$form->{overdue}";
+ }
+
+ if ($form->{department}) {
+ $option .= "\n<br>" if $option;
+ ($department) = split /--/, $form->{department};
+ $option .= $locale->text('Department')." : $department";
+ $department = $form->escape($form->{department},1);
+ $form->{callback} .= "&department=$department";
+ }
+
+ if ($form->{arap} eq 'ar') {
+ if ($form->{customer}) {
+ $option .= "\n<br>" if $option;
+ $option .= $form->{customer};
+ }
+ }
+ if ($form->{arap} eq 'ap') {
+ shift @column_index;
+ if ($form->{vendor}) {
+ $option .= "\n<br>" if $option;
+ $option .= $form->{vendor};
+ }
+ }
+
+ $todate = $locale->date(\%myconfig, $form->{todate}, 1);
+ $option .= "\n<br>" if $option;
+ $option .= $locale->text('for Period')." ".$locale->text('To')." $todate";
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$option</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+|;
+
+ $ctid = 0;
+ $i = 0;
+ $k = 0;
+ $l = $#{ $form->{AG} };
+
+ foreach $ref (@{ $form->{AG} }) {
+
+ if ($curr ne $ref->{curr}) {
+ $ctid = 0;
+ for (@column_index) { $column_data{$_} = qq|<th>&nbsp;</th>| }
+ if ($curr) {
+ $c0total = $form->format_amount(\%myconfig, $c0total, 2, "&nbsp");
+ $c30total = $form->format_amount(\%myconfig, $c30total, 2, "&nbsp");
+ $c60total = $form->format_amount(\%myconfig, $c60total, 2, "&nbsp");
+ $c90total = $form->format_amount(\%myconfig, $c90total, 2, "&nbsp");
+ $total = $form->format_amount(\%myconfig, $total, 2, "&nbsp");
+
+ for (qw(ct statement language)) { $column_data{$_} = qq|<td>&nbsp;</td>| }
+ $column_data{c0} = qq|<th align=right>$c0total</th>|;
+ $column_data{c30} = qq|<th align=right>$c30total</th>|;
+ $column_data{c60} = qq|<th align=right>$c60total</th>|;
+ $column_data{c90} = qq|<th align=right>$c90total</th>|;
+ $column_data{total} = qq|<th align=right>$total</th>|;
+
+ print qq|
+ <tr class=listtotal>
+|;
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ $c0subtotal = 0;
+ $c30subtotal = 0;
+ $c60subtotal = 0;
+ $c90subtotal = 0;
+ $subtotal = 0;
+
+ $c0total = 0;
+ $c30total = 0;
+ $c60total = 0;
+ $c90total = 0;
+ $total = 0;
+
+ }
+
+ $curr = $ref->{curr};
+ print qq|
+ <tr>
+ <td></td>
+ <th>$curr</th>
+ </tr>
+
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "$column_header{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+ }
+
+ $k++;
+
+ if ($ctid != $ref->{ctid}) {
+
+ $i++;
+
+ $column_data{ct} = qq|<td>$ref->{name}</td>|;
+
+ if ($form->{selectlanguage}) {
+ $form->{"selectlanguage_$i"} = $form->{selectlanguage};
+ $form->{"selectlanguage_$i"} =~ s/(<option value="\Q$ref->{language_code}\E")/$1 selected/;
+ $column_data{language} = qq|<td><select name="language_code_$i">$form->{"selectlanguage_$i"}</select></td>|;
+ }
+
+ $column_data{statement} = qq|<td><input name="statement_$i" type=checkbox class=checkbox value=1 $ref->{checked}>
+ <input type=hidden name="$form->{ct}_id_$i" value=$ref->{ctid}>
+ <input type=hidden name="curr_$i" value=$ref->{curr}>
+ </td>|;
+
+ }
+
+ $ctid = $ref->{ctid};
+
+ for (qw(c0 c30 c60 c90)) { $ref->{$_} = $form->round_amount($ref->{$_} / $ref->{exchangerate}, 2) }
+
+ $c0subtotal += $ref->{c0};
+ $c30subtotal += $ref->{c30};
+ $c60subtotal += $ref->{c60};
+ $c90subtotal += $ref->{c90};
+
+ $c0total += $ref->{c0};
+ $c30total += $ref->{c30};
+ $c60total += $ref->{c60};
+ $c90total += $ref->{c90};
+
+ $ref->{total} = ($ref->{c0} + $ref->{c30} + $ref->{c60} + $ref->{c90});
+ $subtotal += $ref->{total};
+ $total += $ref->{total};
+
+ $ref->{c0} = $form->format_amount(\%myconfig, $ref->{c0}, 2, "&nbsp;");
+ $ref->{c30} = $form->format_amount(\%myconfig, $ref->{c30}, 2, "&nbsp;");
+ $ref->{c60} = $form->format_amount(\%myconfig, $ref->{c60}, 2, "&nbsp;");
+ $ref->{c90} = $form->format_amount(\%myconfig, $ref->{c90}, 2, "&nbsp;");
+ $ref->{total} = $form->format_amount(\%myconfig, $ref->{total}, 2, "&nbsp;");
+
+ $href = qq|$ref->{module}.pl?path=$form->{path}&action=edit&id=$ref->{id}&login=$form->{login}&sessionid=$form->{sessionid}&callback=|.$form->escape($form->{callback});
+
+ $column_data{invnumber} = qq|<td><a href=$href>$ref->{invnumber}</a></td>|;
+ for (qw(ordnumber transdate duedate)) { $column_data{$_} = qq|<td>$ref->{$_}</td>| }
+ for (qw(c0 c30 c60 c90 total)) { $column_data{$_} = qq|<td align=right>$ref->{$_}</td>| }
+
+ if (!$form->{summary}) {
+
+ $j++; $j %= 2;
+ print qq|
+ <tr class=listrow$j>
+|;
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ for (qw(ct statement language)) { $column_data{$_} = qq|<td>&nbsp;</td>| }
+
+ }
+
+ # print subtotal
+ $nextid = ($k <= $l) ? $form->{AG}->[$k]->{ctid} : 0;
+ if ($ctid != $nextid) {
+
+ $c0subtotal = $form->format_amount(\%myconfig, $c0subtotal, 2, "&nbsp");
+ $c30subtotal = $form->format_amount(\%myconfig, $c30subtotal, 2, "&nbsp");
+ $c60subtotal = $form->format_amount(\%myconfig, $c60subtotal, 2, "&nbsp");
+ $c90subtotal = $form->format_amount(\%myconfig, $c90subtotal, 2, "&nbsp");
+ $subtotal = $form->format_amount(\%myconfig, $subtotal, 2, "&nbsp");
+
+ if ($form->{summary}) {
+ $column_data{c0} = qq|<td align=right>$c0subtotal</th>|;
+ $column_data{c30} = qq|<td align=right>$c30subtotal</th>|;
+ $column_data{c60} = qq|<td align=right>$c60subtotal</th>|;
+ $column_data{c90} = qq|<td align=right>$c90subtotal</th>|;
+ $column_data{total} = qq|<td align=right>$subtotal</th>|;
+
+ $j++; $j %= 2;
+ print qq|
+ <tr class=listrow$j>
+|;
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ } else {
+
+ for (@column_index) { $column_data{$_} = qq|<th>&nbsp;</th>| }
+
+ $column_data{c0} = qq|<th class=listsubtotal align=right>$c0subtotal</th>|;
+ $column_data{c30} = qq|<th class=listsubtotal align=right>$c30subtotal</th>|;
+ $column_data{c60} = qq|<th class=listsubtotal align=right>$c60subtotal</th>|;
+ $column_data{c90} = qq|<th class=listsubtotal align=right>$c90subtotal</th>|;
+ $column_data{total} = qq|<th class=listsubtotal align=right>$subtotal</th>|;
+
+ # print subtotals
+ print qq|
+ <tr class=listsubtotal>
+|;
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ }
+
+ $c0subtotal = 0;
+ $c30subtotal = 0;
+ $c60subtotal = 0;
+ $c90subtotal = 0;
+ $subtotal = 0;
+
+ }
+ }
+
+ print qq|
+ </tr>
+ <tr class=listtotal>
+|;
+
+ for (@column_index) { $column_data{$_} = qq|<th>&nbsp;</th>| }
+
+ $c0total = $form->format_amount(\%myconfig, $c0total, 2, "&nbsp;");
+ $c30total = $form->format_amount(\%myconfig, $c30total, 2, "&nbsp;");
+ $c60total = $form->format_amount(\%myconfig, $c60total, 2, "&nbsp;");
+ $c90total = $form->format_amount(\%myconfig, $c90total, 2, "&nbsp;");
+ $total = $form->format_amount(\%myconfig, $total, 2, "&nbsp;");
+
+ $column_data{c0} = qq|<th align=right class=listtotal>$c0total</th>|;
+ $column_data{c30} = qq|<th align=right class=listtotal>$c30total</th>|;
+ $column_data{c60} = qq|<th align=right class=listtotal>$c60total</th>|;
+ $column_data{c90} = qq|<th align=right class=listtotal>$c90total</th>|;
+ $column_data{total} = qq|<th align=right class=listtotal>$total</th>|;
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+ <input type=hidden name=rowcount value=$i>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+|;
+
+ &print_options if ($form->{arap} eq 'ar');
+
+ print qq|
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+ if ($form->{arap} eq 'ar') {
+
+ $form->hide_form(qw(todate title summary overdue c0 c30 c60 c90 callback arap ct department path login sessionid));
+
+ print qq|
+<input type=hidden name=$form->{ct} value="$form->{$form->{ct}}">
+|;
+
+# type=submit $locale->text('Select all')
+# type=submit $locale->text('Print')
+# type=submit $locale->text('E-mail')
+
+ %button = ('Select all' => { ndx => 1, key => 'A', value => $locale->text('Select all') },
+ 'Print' => { ndx => 2, key => 'P', value => $locale->text('Print') },
+ 'E-mail' => { ndx => 5, key => 'E', value => $locale->text('E-mail') },
+ );
+
+ for (sort { $button{$a}->{ndx} <=> $button{$b}->{ndx} } keys %button) { $form->print_button(\%button, $_) }
+
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub select_all {
+
+ RP->aging(\%myconfig, \%$form);
+
+ for (@{ $form->{AG} }) { $_->{checked} = "checked" }
+
+ &aging;
+
+}
+
+
+sub print_options {
+
+ $form->{sendmode} = "attachment";
+ $form->{copies} = 1 unless $form->{copies};
+
+ $form->{PD}{$form->{type}} = "selected";
+ $form->{DF}{$form->{format}} = "selected";
+ $form->{SM}{$form->{sendmode}} = "selected";
+
+ $format = qq|
+ <option value=html $form->{PD}{format}>html|;
+
+ $type = qq|
+ <option value=statement $form->{PD}{statement}>|.$locale->text('Statement');
+
+
+ if ($form->{media} eq 'email') {
+ $media = qq|
+ <td><select name=sendmode>
+ <option value=attachment $form->{SM}{attachment}>|.$locale->text('Attachment').qq|
+ <option value=inline $form->{SM}{inline}>|.$locale->text('In-line');
+ } else {
+ $media = qq|
+ <td><select name=media>
+ <option value=screen>|.$locale->text('Screen');
+ if (%printer && $latex) {
+ for (sort keys %printer) { $media .= qq|
+ <option value="$_">$_| }
+ }
+ }
+
+ $media =~ s/(<option value="\Q$form->{media}\E")/$1 selected/;
+ $media .= qq|</select></td>|;
+
+ if ($latex) {
+ $format .= qq|
+ <option value=postscript $form->{DF}{postscript}>|.$locale->text('Postscript').qq|
+ <option value=pdf $form->{DF}{pdf}>|.$locale->text('PDF');
+ }
+
+ print qq|
+<table>
+ <tr>
+ <td><select name=type>$type</select></td>
+ <td><select name=format>$format</select></td>
+ $media
+|;
+
+ if (%printer && $latex && $form->{media} ne 'email') {
+ print qq|
+ <td>|.$locale->text('Copies').qq|
+ <input name=copies size=2 value=$form->{copies}></td>
+|;
+ }
+
+ print qq|
+ </tr>
+</table>
+|;
+
+}
+
+
+sub e_mail {
+
+ # get name and email addresses
+ for $i (1 .. $form->{rowcount}) {
+ if ($form->{"statement_$i"}) {
+ $form->{"$form->{ct}_id"} = $form->{"$form->{ct}_id_$i"};
+ $form->{"statement_1"} = 1;
+ $form->{"language_code_1"} = $form->{"language_code_$i"};
+ $form->{"curr_1"} = $form->{"curr_$i"};
+ RP->get_customer(\%myconfig, \%$form);
+ $selected = 1;
+ last;
+ }
+ }
+
+ $form->error($locale->text('Nothing selected!')) unless $selected;
+
+ if ($myconfig{role} =~ /(admin|manager)/) {
+ $bcc = qq|
+ <th align=right nowrap=true>|.$locale->text('Bcc').qq|</th>
+ <td><input name=bcc size=30 value="$form->{bcc}"></td>
+|;
+ }
+
+ $title = $locale->text('E-mail Statement to')." $form->{$form->{ct}}";
+
+ $form->{media} = "email";
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr class=listtop>
+ <th>$title</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+ <th align=right nowrap>|.$locale->text('E-mail').qq|</th>
+ <td><input name=email size=30 value="$form->{email}"></td>
+ <th align=right nowrap>|.$locale->text('Cc').qq|</th>
+ <td><input name=cc size=30 value="$form->{cc}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Subject').qq|</th>
+ <td><input name=subject size=30 value="$form->{subject}"></td>
+ $bcc
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+ <th align=left nowrap>|.$locale->text('Message').qq|</th>
+ </tr>
+ <tr>
+ <td><textarea name=message rows=15 cols=60 wrap=soft>$form->{message}</textarea></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+|;
+
+ &print_options;
+
+ for (qw(email cc bcc subject message type sendmode format action nextsub)) { delete $form->{$_} }
+
+ $form->hide_form;
+
+ print qq|
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<input type=hidden name=nextsub value=send_email>
+
+<br>
+<input name=action class=submit type=submit value="|.$locale->text('Continue').qq|">
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub send_email {
+
+ $form->{OUT} = "$sendmail";
+
+ $form->{subject} = $locale->text('Statement').qq| - $form->{todate}| unless $form->{subject};
+ $form->isblank("email", $locale->text('E-mail address missing!'));
+
+ RP->aging(\%myconfig, \%$form);
+
+ &print_form;
+
+ $form->redirect($locale->text('Statement sent to')." $form->{$form->{ct}}");
+
+}
+
+
+
+sub print {
+
+ if ($form->{media} !~ /(screen|email)/) {
+ $form->error($locale->text('Select postscript or PDF!')) if ($form->{format} !~ /(postscript|pdf)/);
+ }
+
+ for $i (1 .. $form->{rowcount}) {
+ if ($form->{"statement_$i"}) {
+ $form->{"$form->{ct}_id"} = $form->{"$form->{ct}_id_$i"};
+ $language_code = $form->{"language_code_$i"};
+ $curr = $form->{"curr_$i"};
+ $selected = 1;
+ last;
+ }
+ }
+
+ $form->error($locale->text('Nothing selected!')) unless $selected;
+
+
+ if ($form->{media} !~ /(screen|email)/) {
+ $form->{OUT} = "| $printer{$form->{media}}";
+ $form->{"$form->{ct}_id"} = "";
+ $SIG{INT} = 'IGNORE';
+ } else {
+ $form->{"statement_1"} = 1;
+ $form->{"language_code_1"} = $language_code;
+ $form->{"curr_1"} = $curr;
+ }
+
+ RP->aging(\%myconfig, \%$form);
+
+ &print_form;
+
+ $form->redirect($locale->text('Statements sent to printer!')) if ($form->{media} !~ /(screen|email)/);
+
+}
+
+
+sub print_form {
+
+ $form->{statementdate} = $locale->date(\%myconfig, $form->{todate}, 1);
+
+ $form->{templates} = "$myconfig{templates}";
+
+ # setup variables for the form
+ @a = qw(company address businessnumber tel fax);
+ for (@a) { $form->{$_} = $myconfig{$_} }
+ $form->{address} =~ s/\\n/\n/g;
+
+ $form->format_string(@a);
+
+ $form->{IN} = "$form->{type}.html";
+
+ if ($form->{format} eq 'postscript') {
+ $form->{IN} =~ s/html$/tex/;
+ }
+ if ($form->{format} eq 'pdf') {
+ $form->{IN} =~ s/html$/tex/;
+ }
+
+ @a = qw(name address1 address2 city state zipcode country contact);
+ push @a, "$form->{ct}phone", "$form->{ct}fax", "$form->{ct}taxnumber";
+ push @a, 'email' if ! $form->{media} eq 'email';
+
+ $i = 0;
+ while (@{ $form->{AG} }) {
+
+ $ref = shift @{ $form->{AG} };
+
+ if ($ctid != $ref->{ctid}) {
+
+ $ctid = $ref->{ctid};
+ $i++;
+
+ if ($form->{"statement_$i"}) {
+
+ for (@a) { $form->{$_} = $ref->{$_} }
+ $form->format_string(@a);
+
+ $form->{$form->{ct}} = $form->{name};
+ $form->{"$form->{ct}_id"} = $ref->{ctid};
+ $form->{language_code} = $form->{"language_code_$i"};
+ $form->{currency} = $form->{"curr_$i"};
+
+ for (qw(invnumber ordnumber ponumber notes invdate duedate)) { $form->{$_} = () }
+ $form->{total} = 0;
+ foreach $item (qw(c0 c30 c60 c90)) {
+ $form->{$item} = ();
+ $form->{"${item}total"} = 0;
+ }
+
+ &statement_details($ref) if $ref->{curr} eq $form->{currency};
+
+ while ($ref) {
+
+ if (scalar (@{ $form->{AG} }) > 0) {
+ # one or more left to go
+ if ($ctid == $form->{AG}->[0]->{ctid}) {
+ $ref = shift @{ $form->{AG} };
+ &statement_details($ref) if $ref->{curr} eq $form->{currency};
+ # any more?
+ $ref = scalar (@{ $form->{AG} });
+ } else {
+ $ref = 0;
+ }
+ } else {
+ # set initial ref to 0
+ $ref = 0;
+ }
+
+ }
+
+ for ("c0", "c30", "c60", "c90", "") { $form->{"${_}total"} = $form->format_amount(\%myconfig, $form->{"${_}total"}, 2) }
+
+ $form->parse_template(\%myconfig, $userspath);
+
+ }
+ }
+ }
+
+}
+
+
+sub statement_details {
+ my ($ref) = @_;
+
+ $ref->{invdate} = $ref->{transdate};
+ my @a = qw(invnumber ordnumber ponumber notes invdate duedate);
+ for (@a) { $form->{"${_}_1"} = $ref->{$_} }
+ $form->format_string(qw(invnumber_1 ordnumber_1 ponumber_1 notes_1));
+ for (@a) { push @{ $form->{$_} }, $form->{"${_}_1"} }
+
+ foreach $item (qw(c0 c30 c60 c90)) {
+ eval { $ref->{$item} = $form->round_amount($ref->{$item} / $ref->{exchangerate}, 2) };
+ $form->{"${item}total"} += $ref->{$item};
+ $form->{total} += $ref->{$item};
+ push @{ $form->{$item} }, $form->format_amount(\%myconfig, $ref->{$item}, 2);
+ }
+
+}
+
+
+sub generate_tax_report {
+
+ RP->tax_report(\%myconfig, \%$form);
+
+ $descvar = "$form->{accno}_description";
+ $description = $form->escape($form->{$descvar});
+ $ratevar = "$form->{accno}_rate";
+ $taxrate = $form->{"$form->{accno}_rate"};
+
+ if ($form->{accno} =~ /^gifi_/) {
+ $descvar = "gifi_$form->{accno}_description";
+ $description = $form->escape($form->{$descvar});
+ $ratevar = "gifi_$form->{accno}_rate";
+ $taxrate = $form->{"gifi_$form->{accno}_rate"};
+ }
+
+ $department = $form->escape($form->{department});
+
+ # construct href
+ $href = "$form->{script}?path=$form->{path}&direction=$form->{direction}&oldsort=$form->{oldsort}&action=generate_tax_report&login=$form->{login}&sessionid=$form->{sessionid}&fromdate=$form->{fromdate}&todate=$form->{todate}&db=$form->{db}&method=$form->{method}&summary=$form->{summary}&accno=$form->{accno}&$descvar=$description&department=$department&$ratevar=$taxrate&report=$form->{report}";
+
+ # construct callback
+ $description = $form->escape($form->{$descvar},1);
+ $department = $form->escape($form->{department},1);
+
+ $form->sort_order();
+
+ $callback = "$form->{script}?path=$form->{path}&direction=$form->{direction}&oldsort=$form->{oldsort}&action=generate_tax_report&login=$form->{login}&sessionid=$form->{sessionid}&fromdate=$form->{fromdate}&todate=$form->{todate}&db=$form->{db}&method=$form->{method}&summary=$form->{summary}&accno=$form->{accno}&$descvar=$description&department=$department&$ratevar=$taxrate&report=$form->{report}";
+
+ $form->{title} = $locale->text('GIFI')." - " if ($form->{accno} =~ /^gifi_/);
+
+ $title = $form->escape($form->{title});
+ $href .= "&title=$title";
+ $title = $form->escape($form->{title},1);
+ $callback .= "&title=$title";
+
+ $form->{title} = qq|$form->{title} $form->{"$form->{accno}_description"} |;
+
+ @columns = $form->sort_columns(qw(id transdate invnumber name description netamount tax total));
+
+ $form->{"l_description"} = "" if $form->{summary};
+
+ foreach $item (@columns) {
+ if ($form->{"l_$item"} eq "Y") {
+ push @column_index, $item;
+
+ # add column to href and callback
+ $callback .= "&l_$item=Y";
+ $href .= "&l_$item=Y";
+ }
+ }
+
+
+ if ($form->{l_subtotal} eq 'Y') {
+ $callback .= "&l_subtotal=Y";
+ $href .= "&l_subtotal=Y";
+ }
+
+
+ if ($form->{department}) {
+ ($department) = split /--/, $form->{department};
+ $option = $locale->text('Department')." : $department";
+ }
+
+ # if there are any dates
+ if ($form->{fromdate} || $form->{todate}) {
+ if ($form->{fromdate}) {
+ $fromdate = $locale->date(\%myconfig, $form->{fromdate}, 1);
+ }
+ if ($form->{todate}) {
+ $todate = $locale->date(\%myconfig, $form->{todate}, 1);
+ }
+
+ $form->{period} = "$fromdate - $todate";
+ } else {
+ $form->{period} = $locale->date(\%myconfig, $form->current_date(\%myconfig), 1);
+ }
+
+
+ if ($form->{db} eq 'ar') {
+ $name = $locale->text('Customer');
+ $invoice = 'is.pl';
+ $arap = 'ar.pl';
+ }
+ if ($form->{db} eq 'ap') {
+ $name = $locale->text('Vendor');
+ $invoice = 'ir.pl';
+ $arap = 'ap.pl';
+ }
+
+ $option .= "<br>" if $option;
+ $option .= "$form->{period}";
+
+
+ $column_header{id} = qq|<th><a class=listheading href=$href&sort=id>|.$locale->text('ID').qq|</th>|;
+ $column_header{invnumber} = qq|<th><a class=listheading href=$href&sort=invnumber>|.$locale->text('Invoice').qq|</th>|;
+ $column_header{transdate} = qq|<th><a class=listheading href=$href&sort=transdate>|.$locale->text('Date').qq|</th>|;
+ $column_header{netamount} = qq|<th class=listheading>|.$locale->text('Amount').qq|</th>|;
+ $column_header{tax} = qq|<th class=listheading>|.$locale->text('Tax').qq|</th>|;
+ $column_header{total} = qq|<th class=listheading>|.$locale->text('Total').qq|</th>|;
+
+ $column_header{name} = qq|<th><a class=listheading href=$href&sort=name>$name</th>|;
+
+ $column_header{description} = qq|<th><a class=listheading href=$href&sort=description>|.$locale->text('Description').qq|</th>|;
+
+
+ $form->header;
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop colspan=$colspan>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$option</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "$column_header{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ # add sort and escape callback
+ $callback = $form->escape($callback . "&sort=$form->{sort}");
+
+ if (@{ $form->{TR} }) {
+ $sameitem = $form->{TR}->[0]->{$form->{sort}};
+ }
+
+ foreach $ref (@{ $form->{TR} }) {
+
+ $module = ($ref->{invoice}) ? $invoice : $arap;
+ $module = 'ps.pl' if $ref->{till};
+
+ if ($form->{l_subtotal} eq 'Y') {
+ if ($sameitem ne $ref->{$form->{sort}}) {
+ &tax_subtotal;
+ $sameitem = $ref->{$form->{sort}};
+ }
+ }
+
+ $totalnetamount += $ref->{netamount};
+ $totaltax += $ref->{tax};
+ $ref->{total} = $ref->{netamount} + $ref->{tax};
+
+ $subtotalnetamount += $ref->{netamount};
+ $subtotaltax += $ref->{tax};
+
+ for (qw(netamount tax total)) { $ref->{$_} = $form->format_amount(\%myconfig, $ref->{$_}, 2, "&nbsp;"); }
+
+ $column_data{id} = qq|<td>$ref->{id}</td>|;
+ $column_data{invnumber} = qq|<td><a href=$module?path=$form->{path}&action=edit&id=$ref->{id}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{invnumber}</a></td>|;
+
+ for (qw(id transdate name partnumber description)) { $column_data{$_} = qq|<td>$ref->{$_}</td>| }
+
+ for (qw(netamount tax total)) { $column_data{$_} = qq|<td align=right>$ref->{$_}</td>| }
+
+ $i++; $i %= 2;
+ print qq|
+ <tr class=listrow$i>
+|;
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ }
+
+ if ($form->{l_subtotal} eq 'Y') {
+ &tax_subtotal;
+ }
+
+
+ for (@column_index) { $column_data{$_} = qq|<th>&nbsp;</th>| }
+
+ print qq|
+ </tr>
+ <tr class=listtotal>
+|;
+
+ $total = $form->format_amount(\%myconfig, $totalnetamount + $totaltax, 2, "&nbsp;");
+ $totalnetamount = $form->format_amount(\%myconfig, $totalnetamount, 2, "&nbsp;");
+ $totaltax = $form->format_amount(\%myconfig, $totaltax, 2, "&nbsp;");
+
+ $column_data{netamount} = qq|<th class=listtotal align=right>$totalnetamount</th>|;
+ $column_data{tax} = qq|<th class=listtotal align=right>$totaltax</th>|;
+ $column_data{total} = qq|<th class=listtotal align=right>$total</th>|;
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+
+ print qq|
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub tax_subtotal {
+
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $subtotal = $form->format_amount(\%myconfig, $subtotalnetamount + $subtotaltax, 2, "&nbsp;");
+ $subtotalnetamount = $form->format_amount(\%myconfig, $subtotalnetamount, 2, "&nbsp;");
+ $subtotaltax = $form->format_amount(\%myconfig, $subtotaltax, 2, "&nbsp;");
+
+ $column_data{netamount} = "<th class=listsubtotal align=right>$subtotalnetamount</th>";
+ $column_data{tax} = "<th class=listsubtotal align=right>$subtotaltax</th>";
+ $column_data{total} = "<th class=listsubtotal align=right>$subtotal</th>";
+
+ $subtotalnetamount = 0;
+ $subtotaltax = 0;
+
+ print qq|
+ <tr class=listsubtotal>
+|;
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+}
+
+
+
+sub list_payments {
+
+
+ if ($form->{account}) {
+ ($form->{paymentaccounts}) = split /--/, $form->{account};
+ }
+ if ($form->{department}) {
+ ($department, $form->{department_id}) = split /--/, $form->{department};
+ $option = $locale->text('Department')." : $department";
+ }
+
+ RP->payments(\%myconfig, \%$form);
+
+ @columns = $form->sort_columns(qw(transdate name paid source memo));
+
+ if ($form->{till}) {
+ @columns = $form->sort_columns(qw(transdate name paid curr source till));
+ if ($myconfig{role} ne 'user') {
+ @columns = $form->sort_columns(qw(transdate name paid curr source till employee));
+ }
+ }
+
+ # construct href
+ $title = $form->escape($form->{title});
+ $form->{paymentaccounts} =~ s/ /%20/g;
+
+ $href = "$form->{script}?path=$form->{path}&direction=$form->{direction}&sort=$form->{sort}&oldsort=$form->{oldsort}&action=list_payments&till=$form->{till}&login=$form->{login}&sessionid=$form->{sessionid}&fromdate=$form->{fromdate}&todate=$form->{todate}&fx_transaction=$form->{fx_transaction}&db=$form->{db}&l_subtotal=$form->{l_subtotal}&prepayment=$form->{prepayment}&paymentaccounts=$form->{paymentaccounts}&title=".$form->escape($form->{title});
+
+ $form->sort_order();
+
+ $form->{callback} = "$form->{script}?path=$form->{path}&direction=$form->{direction}&sort=$form->{sort}&oldsort=$form->{oldsort}&action=list_payments&till=$form->{till}&login=$form->{login}&sessionid=$form->{sessionid}&fromdate=$form->{fromdate}&todate=$form->{todate}&fx_transaction=$form->{fx_transaction}&db=$form->{db}&l_subtotal=$form->{l_subtotal}&prepayment=$form->{prepayment}&paymentaccounts=$form->{paymentaccounts}&title=".$form->escape($form->{title},1);
+
+ if ($form->{account}) {
+ $callback .= "&account=".$form->escape($form->{account},1);
+ $href .= "&account=".$form->escape($form->{account});
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Account')." : $form->{account}";
+ }
+ if ($form->{department}) {
+ $callback .= "&department=".$form->escape($form->{department},1);
+ $href .= "&department=".$form->escape($form->{department});
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Department')." : $form->{department}";
+ }
+ if ($form->{description}) {
+ $callback .= "&description=".$form->escape($form->{description},1);
+ $href .= "&description=".$form->escape($form->{description});
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Description')." : $form->{description}";
+ }
+ if ($form->{source}) {
+ $callback .= "&source=".$form->escape($form->{source},1);
+ $href .= "&source=".$form->escape($form->{source});
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Source')." : $form->{source}";
+ }
+ if ($form->{memo}) {
+ $callback .= "&memo=".$form->escape($form->{memo},1);
+ $href .= "&memo=".$form->escape($form->{memo});
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Memo')." : $form->{memo}";
+ }
+ if ($form->{fromdate}) {
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('From')."&nbsp;".$locale->date(\%myconfig, $form->{fromdate}, 1);
+ }
+ if ($form->{todate}) {
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('To')."&nbsp;".$locale->date(\%myconfig, $form->{todate}, 1);
+ }
+
+ $callback = $form->escape($form->{callback});
+
+ $column_header{name} = "<th><a class=listheading href=$href&sort=name>".$locale->text('Description')."</a></th>";
+ $column_header{transdate} = "<th><a class=listheading href=$href&sort=transdate>".$locale->text('Date')."</a></th>";
+ $column_header{paid} = "<th class=listheading>".$locale->text('Amount')."</a></th>";
+ $column_header{curr} = "<th class=listheading>".$locale->text('Curr')."</a></th>";
+ $column_header{source} = "<th><a class=listheading href=$href&sort=source>".$locale->text('Source')."</a></th>";
+ $column_header{memo} = "<th><a class=listheading href=$href&sort=memo>".$locale->text('Memo')."</a></th>";
+
+ $column_header{employee} = "<th><a class=listheading href=$href&sort=employee>".$locale->text('Salesperson')."</a></th>";
+ $column_header{till} = "<th><a class=listheading href=$href&sort=till>".$locale->text('Till')."</a></th>";
+
+ @column_index = @columns;
+ $colspan = $#column_index + 1;
+
+ $form->header;
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$option</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "\n$column_header{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+
+ foreach $ref (sort { $a->{accno} cmp $b->{accno} } @{ $form->{PR} }) {
+
+ next unless @{ $form->{$ref->{id}} };
+
+ print qq|
+ <tr>
+ <th colspan=$colspan align=left>$ref->{accno}--$ref->{description}</th>
+ </tr>
+|;
+
+ if (@{ $form->{$ref->{id}} }) {
+ $sameitem = $form->{$ref->{id}}[0]->{$form->{sort}};
+ }
+
+ foreach $payment (@{ $form->{$ref->{id}} }) {
+
+ if ($form->{l_subtotal}) {
+ if ($payment->{$form->{sort}} ne $sameitem) {
+ # print subtotal
+ &payment_subtotal;
+ }
+ }
+
+ next if ($form->{till} && ! $payment->{till});
+
+ $column_data{name} = "<td>$payment->{name}&nbsp;</td>";
+ $column_data{transdate} = "<td>$payment->{transdate}&nbsp;</td>";
+ $column_data{paid} = "<td align=right>".$form->format_amount(\%myconfig, $payment->{paid}, 2, "&nbsp;")."</td>";
+ $column_data{curr} = "<td>$payment->{curr}</td>";
+ $column_data{source} = "<td>$payment->{source}&nbsp;</td>";
+ $column_data{memo} = "<td>$payment->{memo}&nbsp;</td>";
+ $column_data{employee} = "<td>$payment->{employee}&nbsp;</td>";
+ $column_data{till} = "<td>$payment->{till}&nbsp;</td>";
+
+ $subtotalpaid += $payment->{paid};
+ $accounttotalpaid += $payment->{paid};
+ $totalpaid += $payment->{paid};
+
+ $i++; $i %= 2;
+ print qq|
+ <tr class=listrow$i>
+|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ $sameitem = $payment->{$form->{sort}};
+
+ }
+
+ &payment_subtotal if $form->{l_subtotal};
+
+ # print account totals
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $column_data{paid} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $accounttotalpaid, 2, "&nbsp;")."</th>";
+
+ print qq|
+ <tr class=listtotal>
+|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ $accounttotalpaid = 0;
+
+ }
+
+
+ # print total
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $column_data{paid} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totalpaid, 2, "&nbsp;")."</th>";
+
+ print qq|
+ <tr class=listtotal>
+|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+</body>
+</html>
+|;
+
+}
+
+
+sub payment_subtotal {
+
+ if ($subtotalpaid != 0) {
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $column_data{paid} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotalpaid, 2, "&nbsp;")."</th>";
+
+ print qq|
+ <tr class=listsubtotal>
+|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+ }
+
+ $subtotalpaid = 0;
+
+}
+
+
diff --git a/bin/mozilla/aa.pl b/bin/mozilla/aa.pl
new file mode 100755
index 00000000..0e02bf2f
--- /dev/null
+++ b/bin/mozilla/aa.pl
@@ -0,0 +1,1681 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has NOT undergone whitespace cleanup.
+#
+#======================================================================
+#
+# AR / AP
+#
+#======================================================================
+
+# any custom scripts for this one
+if (-f "$form->{path}/custom_aa.pl") {
+ eval { require "$form->{path}/custom_aa.pl"; };
+}
+if (-f "$form->{path}/$form->{login}_aa.pl") {
+ eval { require "$form->{path}/$form->{login}_aa.pl"; };
+}
+
+
+1;
+# end of main
+
+
+# this is for our long dates
+# $locale->text('January')
+# $locale->text('February')
+# $locale->text('March')
+# $locale->text('April')
+# $locale->text('May ')
+# $locale->text('June')
+# $locale->text('July')
+# $locale->text('August')
+# $locale->text('September')
+# $locale->text('October')
+# $locale->text('November')
+# $locale->text('December')
+
+# this is for our short month
+# $locale->text('Jan')
+# $locale->text('Feb')
+# $locale->text('Mar')
+# $locale->text('Apr')
+# $locale->text('May')
+# $locale->text('Jun')
+# $locale->text('Jul')
+# $locale->text('Aug')
+# $locale->text('Sep')
+# $locale->text('Oct')
+# $locale->text('Nov')
+# $locale->text('Dec')
+
+
+sub add {
+
+ $form->{title} = "Add";
+ $form->{callback} = "$form->{script}?action=add&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}" unless $form->{callback};
+
+ &create_links;
+
+ $form->{focus} = "amount_1";
+ &display_form;
+
+}
+
+
+sub edit {
+
+ $form->{title} = "Edit";
+
+ &create_links;
+ &display_form;
+
+}
+
+
+sub display_form {
+
+ &form_header;
+ &form_footer;
+
+}
+
+
+sub create_links {
+
+ $form->create_links($form->{ARAP}, \%myconfig, $form->{vc});
+
+ $duedate = $form->{duedate};
+ $taxincluded = $form->{taxincluded};
+
+ $form->{formname} = "transaction";
+ $form->{format} = "postscript" if $myconfig{printer};
+ $form->{media} = $myconfig{printer};
+
+ $form->{selectformname} = qq|<option value="transaction">|.$locale->text('Transaction');
+
+ if ($latex) {
+ if ($form->{ARAP} eq 'AR') {
+ $form->{selectformname} .= qq|
+ <option value="receipt">|.$locale->text('Receipt');
+ } else {
+ $form->{selectformname} .= qq|
+ <option value="check">|.$locale->text('Check');
+ }
+ }
+
+ # currencies
+ @curr = split /:/, $form->{currencies};
+ $form->{defaultcurrency} = $curr[0];
+ chomp $form->{defaultcurrency};
+
+ for (@curr) { $form->{selectcurrency} .= "<option>$_\n" }
+
+ AA->get_name(\%myconfig, \%$form);
+
+ $form->{currency} =~ s/ //g;
+ $form->{duedate} = $duedate if $duedate;
+ $form->{taxincluded} = $taxincluded if $form->{id};
+
+ $form->{notes} = $form->{intnotes} if !$form->{id};
+
+ $form->{"old$form->{vc}"} = qq|$form->{$form->{vc}}--$form->{"$form->{vc}_id"}|;
+ $form->{oldtransdate} = $form->{transdate};
+
+ # customers/vendors
+ $form->{"select$form->{vc}"} = "";
+ if (@{ $form->{"all_$form->{vc}"} }) {
+ $form->{$form->{vc}} = qq|$form->{$form->{vc}}--$form->{"$form->{vc}_id"}|;
+ for (@{ $form->{"all_$form->{vc}"} }) { $form->{"select$form->{vc}"} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+ }
+
+ # departments
+ if (@{ $form->{all_department} }) {
+ $form->{selectdepartment} = "<option>\n";
+ $form->{department} = "$form->{department}--$form->{department_id}" if $form->{department_id};
+
+ for (@{ $form->{all_department} }) { $form->{selectdepartment} .= qq|<option value="$_->{description}--$_->{id}">$_->{description}\n| }
+ }
+
+ $form->{employee} = "$form->{employee}--$form->{employee_id}";
+ # sales staff
+ if (@{ $form->{all_employee} }) {
+ $form->{selectemployee} = "";
+ for (@{ $form->{all_employee} }) { $form->{selectemployee} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+ }
+
+ # projects
+ if (@{ $form->{all_project} }) {
+ $form->{selectprojectnumber} = "<option>\n";
+ for (@{ $form->{all_project} }) { $form->{selectprojectnumber} .= qq|<option value="$_->{projectnumber}--$_->{id}">$_->{projectnumber}\n| }
+ }
+
+ if (@{ $form->{all_language} }) {
+ $form->{selectlanguage} = "<option>\n";
+ for (@{ $form->{all_language} }) { $form->{selectlanguage} .= qq|<option value="$_->{code}">$_->{description}\n| }
+ }
+
+ # forex
+ $form->{forex} = $form->{exchangerate};
+ $exchangerate = ($form->{exchangerate}) ? $form->{exchangerate} : 1;
+
+ $netamount = 0;
+ $tax = 0;
+ $taxrate = 0;
+ $ml = ($form->{ARAP} eq 'AR') ? 1 : -1;
+
+ foreach $key (keys %{ $form->{"$form->{ARAP}_links"} }) {
+
+ $form->{"select$key"} = "";
+ foreach $ref (@{ $form->{"$form->{ARAP}_links"}{$key} }) {
+ if ($key eq "$form->{ARAP}_tax") {
+ $form->{"select$form->{ARAP}_tax_$ref->{accno}"} = "<option>$ref->{accno}--$ref->{description}\n";
+ next;
+ }
+ $form->{"select$key"} .= "<option>$ref->{accno}--$ref->{description}\n";
+ }
+
+ # if there is a value we have an old entry
+ for $i (1 .. scalar @{ $form->{acc_trans}{$key} }) {
+ if ($key eq "$form->{ARAP}_paid") {
+ $form->{"$form->{ARAP}_paid_$i"} = "$form->{acc_trans}{$key}->[$i-1]->{accno}--$form->{acc_trans}{$key}->[$i-1]->{description}";
+ $form->{"paid_$i"} = $form->{acc_trans}{$key}->[$i-1]->{amount} * -1 * $ml;
+ $form->{"datepaid_$i"} = $form->{acc_trans}{$key}->[$i-1]->{transdate};
+ $form->{"source_$i"} = $form->{acc_trans}{$key}->[$i-1]->{source};
+ $form->{"memo_$i"} = $form->{acc_trans}{$key}->[$i-1]->{memo};
+
+ $form->{"forex_$i"} = $form->{"exchangerate_$i"} = $form->{acc_trans}{$key}->[$i-1]->{exchangerate};
+
+ $form->{paidaccounts}++;
+ } else {
+
+ $akey = $key;
+ $akey =~ s/$form->{ARAP}_//;
+
+ if ($key eq "$form->{ARAP}_tax") {
+ $form->{"${key}_$form->{acc_trans}{$key}->[$i-1]->{accno}"} = "$form->{acc_trans}{$key}->[$i-1]->{accno}--$form->{acc_trans}{$key}->[$i-1]->{description}";
+ $form->{"${akey}_$form->{acc_trans}{$key}->[$i-1]->{accno}"} = $form->{acc_trans}{$key}->[$i-1]->{amount} * $ml;
+
+ $tax += $form->{"${akey}_$form->{acc_trans}{$key}->[$i-1]->{accno}"};
+ $taxrate += $form->{"$form->{acc_trans}{$key}->[$i-1]->{accno}_rate"};
+
+ } else {
+ $form->{"${akey}_$i"} = $form->{acc_trans}{$key}->[$i-1]->{amount} * $ml;
+
+ if ($akey eq 'amount') {
+ $form->{"description_$i"} = $form->{acc_trans}{$key}->[$i-1]->{memo};
+ $form->{rowcount}++;
+ $netamount += $form->{"${akey}_$i"};
+
+ $form->{"projectnumber_$i"} = "$form->{acc_trans}{$key}->[$i-1]->{projectnumber}--$form->{acc_trans}{$key}->[$i-1]->{project_id}" if $form->{acc_trans}{$key}->[$i-1]->{project_id};
+ } else {
+ $form->{invtotal} = $form->{acc_trans}{$key}->[$i-1]->{amount} * -1 * $ml;
+ }
+ $form->{"${key}_$i"} = "$form->{acc_trans}{$key}->[$i-1]->{accno}--$form->{acc_trans}{$key}->[$i-1]->{description}";
+ }
+ }
+ }
+ }
+
+ $form->{paidaccounts} = 1 if not defined $form->{paidaccounts};
+
+ if ($form->{taxincluded}) {
+ $diff = 0;
+ # add tax to individual amounts
+ for $i (1 .. $form->{rowcount}) {
+ if ($netamount) {
+ $amount = $form->{"amount_$i"} * (1 + $tax / $netamount);
+ $form->{"amount_$i"} = $form->round_amount($amount, 2);
+ }
+ }
+ }
+
+ $form->{invtotal} = $netamount + $tax;
+
+ # check if calculated is equal to stored
+ # taxincluded is terrible to calculate
+ # this works only if all taxes are checked
+
+ @taxaccounts = split / /, $form->{taxaccounts};
+
+ if ($form->{id}) {
+ if ($form->{taxincluded}) {
+
+ $ml = 1;
+
+ for (0 .. 1) {
+ $taxrate = 0;
+ $diff = 0;
+
+ for (@taxaccounts) { $taxrate += $form->{"${_}_rate"} if ($form->{"${_}_rate"} * $ml) > 0 }
+ $taxrate *= $ml;
+
+ foreach $item (@taxaccounts) {
+
+ if (($form->{"${item}_rate"} * $ml) > 0) {
+ if ($taxrate) {
+ $amount = $form->{invtotal} * $form->{"${item}_rate"} / (1 + $taxrate);
+ $tax = $form->round_amount($amount, 2);
+ $tax{$item} = $form->round_amount($amount - $diff, 2);
+ $diff = $tax{$item} - ($amount - $diff);
+
+ if ($tax) {
+ if ($form->{"tax_$item"} == $tax{$item}) {
+ $form->{"calctax_$item"} = 1;
+ }
+ }
+ }
+ }
+ }
+ $ml *= -1;
+ }
+
+ } else {
+ for (@taxaccounts) {
+ $tax = $form->round_amount($netamount * $form->{"${_}_rate"}, 2);
+ if ($tax) {
+ if ($form->{"tax_$_"} == $tax) {
+ $form->{"calctax_$_"} = 1;
+ }
+ }
+ }
+ }
+
+ } else {
+ for (@taxaccounts) { $form->{"calctax_$_"} = 1 }
+ }
+
+
+ $form->{rowcount}++ if ($form->{id} || !$form->{rowcount});
+
+ $form->{$form->{ARAP}} = $form->{"$form->{ARAP}_1"};
+ $form->{rowcount} = 1 unless $form->{"$form->{ARAP}_amount_1"};
+
+ $form->{locked} = ($form->{revtrans}) ? '1' : ($form->datetonum(\%myconfig, $form->{transdate}) <= $form->datetonum(\%myconfig, $form->{closedto}));
+
+ # readonly
+ if (! $form->{readonly}) {
+ $form->{readonly} = 1 if $myconfig{acs} =~ /$form->{ARAP}--Add Transaction/;
+ }
+
+}
+
+
+sub form_header {
+
+ $title = $form->{title};
+ $form->{title} = $locale->text("$title $form->{ARAP} Transaction");
+
+ $form->{taxincluded} = ($form->{taxincluded}) ? "checked" : "";
+
+# $locale->text('Add AR Transaction')
+# $locale->text('Edit AR Transaction')
+# $locale->text('Add AP Transaction')
+# $locale->text('Edit AP Transaction')
+
+ # set option selected
+ for ("$form->{ARAP}", "currency") {
+ $form->{"select$_"} =~ s/ selected//;
+ $form->{"select$_"} =~ s/<option>\Q$form->{$_}\E/<option selected>$form->{$_}/;
+ }
+
+ for ("$form->{vc}", "department", "employee", "formname") {
+ $form->{"select$_"} = $form->unescape($form->{"select$_"});
+ $form->{"select$_"} =~ s/ selected//;
+ $form->{"select$_"} =~ s/(<option value="\Q$form->{$_}\E")/$1 selected/;
+ }
+
+ $form->{selectprojectnumber} = $form->unescape($form->{selectprojectnumber});
+
+ # format amounts
+ $form->{exchangerate} = $form->format_amount(\%myconfig, $form->{exchangerate});
+
+ $exchangerate = qq|<tr>|;
+ $exchangerate .= qq|
+ <th align=right nowrap>|.$locale->text('Currency').qq|</th>
+ <td><select name=currency>$form->{selectcurrency}</select></td> | if $form->{defaultcurrency};
+ $exchangerate .= qq|
+ <input type=hidden name=selectcurrency value="$form->{selectcurrency}">
+ <input type=hidden name=defaultcurrency value=$form->{defaultcurrency}>
+|;
+
+ if ($form->{defaultcurrency} && $form->{currency} ne $form->{defaultcurrency}) {
+ if ($form->{forex}) {
+ $exchangerate .= qq|
+ <th align=right>|.$locale->text('Exchange Rate').qq|</th>
+ <td><input type=hidden name=exchangerate value=$form->{exchangerate}>$form->{exchangerate}</td>
+|;
+ } else {
+ $exchangerate .= qq|
+ <th align=right>|.$locale->text('Exchange Rate').qq|</th>
+ <td><input name=exchangerate size=10 value=$form->{exchangerate}></td>
+|;
+ }
+ }
+ $exchangerate .= qq|
+<input type=hidden name=forex value=$form->{forex}>
+</tr>
+|;
+
+ $taxincluded = "";
+ if ($form->{taxaccounts}) {
+ $taxincluded = qq|
+ <tr>
+ <td align=right><input name=taxincluded class=checkbox type=checkbox value=1 $form->{taxincluded}></td>
+ <th align=left nowrap>|.$locale->text('Tax Included').qq|</th>
+ </tr>
+|;
+ }
+
+
+ if (($rows = $form->numtextrows($form->{notes}, 50) - 1) < 2) {
+ $rows = 2;
+ }
+ $notes = qq|<textarea name=notes rows=$rows cols=50 wrap=soft>$form->{notes}</textarea>|;
+
+ $department = qq|
+ <tr>
+ <th align="right" nowrap>|.$locale->text('Department').qq|</th>
+ <td colspan=3><select name=department>$form->{selectdepartment}</select>
+ <input type=hidden name=selectdepartment value="|.$form->escape($form->{selectdepartment},1).qq|">
+ </td>
+ </tr>
+| if $form->{selectdepartment};
+
+
+ $n = ($form->{creditremaining} < 0) ? "0" : "1";
+
+ $name = ($form->{"select$form->{vc}"}) ? qq|<select name="$form->{vc}">$form->{"select$form->{vc}"}</select>| : qq|<input name="$form->{vc}" value="$form->{$form->{vc}}" size=35>|;
+
+ $employee = qq|
+ <input type=hidden name=employee value="$form->{employee}">
+|;
+
+ if ($form->{selectemployee}) {
+ $label = ($form->{ARAP} eq 'AR') ? $locale->text('Salesperson') : $locale->text('Employee');
+
+ $employee = qq|
+ <tr>
+ <th align=right nowrap>$label</th>
+ <td><select name=employee>$form->{selectemployee}</select></td>
+ <input type=hidden name=selectemployee value="|.$form->escape($form->{selectemployee},1).qq|">
+ </tr>
+|;
+ }
+
+ $focus = ($form->{focus}) ? $form->{focus} : "amount_$form->{rowcount}";
+
+ $form->header;
+
+ print qq|
+<body onload="document.forms[0].${focus}.focus()" />
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=type value="$form->{formname}">
+<input type=hidden name=title value="$title">
+
+|;
+
+ $form->hide_form(qw(id printed emailed sort closedto locked oldtransdate audittrail recurring checktax));
+
+ if ($form->{vc} eq 'customer') {
+ $label = $locale->text('Customer');
+ } else {
+ $label = $locale->text('Vendor');
+ }
+
+ $form->hide_form("old$form->{vc}", "$form->{vc}_id", "terms", "creditlimit", "creditremaining", "selectcurrency", "defaultcurrency", "select$form->{ARAP}_amount", "rowcount");
+
+ print qq|
+
+<table width=100%>
+ <tr class=listtop>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr valign=top>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align="right" nowrap>$label</th>
+ <td colspan=3>$name</td>
+ <input type=hidden name="select$form->{vc}" value="|.$form->escape($form->{"select$form->{vc}"},1).qq|">
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan=3>
+ <table width=100%>
+ <tr>
+ <th align=left nowrap>|.$locale->text('Credit Limit').qq|</th>
+ <td>$form->{creditlimit}</td>
+ <th align=left nowrap>|.$locale->text('Remaining').qq|</th>
+ <td class="plus$n">|.$form->format_amount(\%myconfig, $form->{creditremaining}, 0, "0").qq|</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ $exchangerate
+ $department
+ $taxincluded
+ </table>
+ </td>
+ <td align=right>
+ <table>
+ $employee
+ <tr>
+ <th align=right nowrap>|.$locale->text('Invoice Number').qq|</th>
+ <td><input name=invnumber size=20 value="$form->{invnumber}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Order Number').qq|</th>
+ <td><input name=ordnumber size=20 value="$form->{ordnumber}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Invoice Date').qq|</th>
+ <td><input name=transdate size=11 title="($myconfig{'dateformat'})" value=$form->{transdate}></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Due Date').qq|</th>
+ <td><input name=duedate size=11 title="$myconfig{'dateformat'}" value=$form->{duedate}></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('PO Number').qq|</th>
+ <td><input name=ponumber size=20 value="$form->{ponumber}"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <input type=hidden name=selectprojectnumber value="|.$form->escape($form->{selectprojectnumber},1).qq|">
+ <tr>
+ <td>
+ <table>
+|;
+
+ $project = qq|
+ <th>|.$locale->text('Project').qq|</th>
+| if $form->{selectprojectnumber};
+
+ print qq|
+ <tr>
+ <th>|.$locale->text('Amount').qq|</th>
+ <th></th>
+ <th>|.$locale->text('Account').qq|</th>
+ <th>|.$locale->text('Description').qq|</th>
+ $project
+ </tr>
+|;
+
+ for $i (1 .. $form->{rowcount}) {
+
+ $selectamount = $form->{"select$form->{ARAP}_amount"};
+ $selectamount =~ s/option>\Q$form->{"$form->{ARAP}_amount_$i"}\E/option selected>$form->{"$form->{ARAP}_amount_$i"}/;
+
+ $selectprojectnumber = $form->{selectprojectnumber};
+ $selectprojectnumber =~ s/(<option value="\Q$form->{"projectnumber_$i"}\E")/$1 selected/;
+
+ # format amounts
+ $form->{"amount_$i"} = $form->format_amount(\%myconfig, $form->{"amount_$i"}, 2);
+
+ $project = qq|
+ <td align=right><select name="projectnumber_$i">$selectprojectnumber</select></td>
+| if $form->{selectprojectnumber};
+
+ if (($rows = $form->numtextrows($form->{"description_$i"}, 40)) > 1) {
+ $description = qq|<td><textarea name="description_$i" rows=$rows cols=40>$form->{"description_$i"}</textarea></td>|;
+ } else {
+ $description = qq|<td><input name="description_$i" size=40 value="$form->{"description_$i"}"></td>|;
+ }
+
+ print qq|
+ <tr valign=top>
+ <td><input name="amount_$i" size=10 value="$form->{"amount_$i"}" accesskey="$i"></td>
+ <td></td>
+ <td><select name="$form->{ARAP}_amount_$i">$selectamount</select></td>
+ $description
+ $project
+ </tr>
+|;
+ }
+
+ foreach $item (split / /, $form->{taxaccounts}) {
+
+ $form->{"calctax_$item"} = ($form->{"calctax_$item"}) ? "checked" : "";
+
+ $form->{"tax_$item"} = $form->format_amount(\%myconfig, $form->{"tax_$item"}, 2);
+
+ print qq|
+ <tr>
+ <td><input name="tax_$item" size=10 value=$form->{"tax_$item"}></td>
+ <td align=right><input name="calctax_$item" class=checkbox type=checkbox value=1 $form->{"calctax_$item"}></td>
+ <td><select name="$form->{ARAP}_tax_$item">$form->{"select$form->{ARAP}_tax_$item"}</select></td>
+ </tr>
+|;
+
+ $form->hide_form("${item}_rate", "${item}_description", "${item}_taxnumber", "select$form->{ARAP}_tax_$item");
+ }
+
+ $form->{invtotal} = $form->format_amount(\%myconfig, $form->{invtotal}, 2);
+
+ $form->hide_form("oldinvtotal", "oldtotalpaid", "taxaccounts", "select$form->{ARAP}");
+
+ print qq|
+ <tr>
+ <th align=left>$form->{invtotal}</th>
+ <td></td>
+ <td><select name=$form->{ARAP}>$form->{"select$form->{ARAP}"}</select></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Notes').qq|</th>
+ <td></td>
+ <td colspan=3>$notes</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr class=listheading>
+ <th class=listheading>|.$locale->text('Payments').qq|</th>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+|;
+
+ if ($form->{currency} eq $form->{defaultcurrency}) {
+ @column_index = qw(datepaid source memo paid ARAP_paid);
+ } else {
+ @column_index = qw(datepaid source memo paid exchangerate ARAP_paid);
+ }
+
+ $column_data{datepaid} = "<th>".$locale->text('Date')."</th>";
+ $column_data{paid} = "<th>".$locale->text('Amount')."</th>";
+ $column_data{exchangerate} = "<th>".$locale->text('Exch')."</th>";
+ $column_data{ARAP_paid} = "<th>".$locale->text('Account')."</th>";
+ $column_data{source} = "<th>".$locale->text('Source')."</th>";
+ $column_data{memo} = "<th>".$locale->text('Memo')."</th>";
+
+ print "
+ <tr>
+";
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print "
+ </tr>
+";
+
+
+ $form->{paidaccounts}++ if ($form->{"paid_$form->{paidaccounts}"});
+ for $i (1 .. $form->{paidaccounts}) {
+
+ $form->hide_form("cleared_$i");
+
+ print "
+ <tr>
+";
+
+ $form->{"select$form->{ARAP}_paid_$i"} = $form->{"select$form->{ARAP}_paid"};
+ $form->{"select$form->{ARAP}_paid_$i"} =~ s/option>\Q$form->{"$form->{ARAP}_paid_$i"}\E/option selected>$form->{"$form->{ARAP}_paid_$i"}/;
+
+ # format amounts
+ $form->{"paid_$i"} = $form->format_amount(\%myconfig, $form->{"paid_$i"}, 2);
+ $form->{"exchangerate_$i"} = $form->format_amount(\%myconfig, $form->{"exchangerate_$i"});
+
+ $exchangerate = qq|&nbsp;|;
+ if ($form->{currency} ne $form->{defaultcurrency}) {
+ if ($form->{"forex_$i"}) {
+ $form->hide_form("exchangerate_$i");
+ $exchangerate = qq|$form->{"exchangerate_$i"}|;
+ } else {
+ $exchangerate = qq|<input name="exchangerate_$i" size=10 value=$form->{"exchangerate_$i"}>|;
+ }
+ }
+
+ $form->hide_form("forex_$i");
+
+ $column_data{paid} = qq|<td align=center><input name="paid_$i" size=11 value=$form->{"paid_$i"}></td>|;
+ $column_data{ARAP_paid} = qq|<td align=center><select name="$form->{ARAP}_paid_$i">$form->{"select$form->{ARAP}_paid_$i"}</select></td>|;
+ $column_data{exchangerate} = qq|<td align=center>$exchangerate</td>|;
+ $column_data{datepaid} = qq|<td align=center><input name="datepaid_$i" size=11 value=$form->{"datepaid_$i"}></td>|;
+ $column_data{source} = qq|<td align=center><input name="source_$i" size=11 value="$form->{"source_$i"}"></td>|;
+ $column_data{memo} = qq|<td align=center><input name="memo_$i" size=11 value="$form->{"memo_$i"}"></td>|;
+
+ for (@column_index) { print qq|$column_data{$_}\n| }
+
+ print "
+ </tr>
+";
+ }
+
+ $form->hide_form("paidaccounts", "select$form->{ARAP}_paid");
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+}
+
+
+sub form_footer {
+
+ $form->hide_form(qw(callback path login sessionid));
+
+ $transdate = $form->datetonum(\%myconfig, $form->{transdate});
+ $closedto = $form->datetonum(\%myconfig, $form->{closedto});
+
+# type=submit $locale->text('Update')
+# type=submit $locale->text('Print')
+# type=submit $locale->text('Post')
+# type=submit $locale->text('Print and Post')
+# type=submit $locale->text('Schedule')
+# type=submit $locale->text('Ship to')
+# type=submit $locale->text('Post as new')
+# type=submit $locale->text('Print and Post as new')
+# type=submit $locale->text('Delete')
+
+ if (! $form->{readonly}) {
+
+ &print_options;
+
+ print "<br>";
+
+ %button = ('Update' => { ndx => 1, key => 'U', value => $locale->text('Update') },
+ 'Print' => { ndx => 2, key => 'P', value => $locale->text('Print') },
+ 'Post' => { ndx => 3, key => 'O', value => $locale->text('Post') },
+ 'Print and Post' => { ndx => 4, key => 'R', value => $locale->text('Print and Post') },
+ 'Post as new' => { ndx => 5, key => 'N', value => $locale->text('Post as new') },
+ 'Print and Post as new' => { ndx => 6, key => 'W', value => $locale->text('Print and Post as new') },
+ 'Schedule' => { ndx => 7, key => 'H', value => $locale->text('Schedule') },
+ 'Delete' => { ndx => 8, key => 'D', value => $locale->text('Delete') },
+ );
+
+ if ($form->{id}) {
+
+ if ($form->{locked} || $transdate <= $closedto) {
+ for ("Post", "Print and Post", "Delete") { delete $button{$_} }
+ }
+
+ if (!$latex) {
+ for ("Print and Post", "Print and Post as new") { delete $button{$_} }
+ }
+
+ } else {
+
+ for ("Post as new", "Print and Post as new", "Delete") { delete $button{$_} }
+ delete $button{"Print and Post"} if ! $latex;
+
+ if ($transdate <= $closedto) {
+ for ("Post", "Print and Post") { delete $button{$_} }
+ }
+ }
+
+ for (sort { $button{$a}->{ndx} <=> $button{$b}->{ndx} } keys %button) { $form->print_button(\%button, $_) }
+
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub update {
+ my $display = shift;
+
+ if (!$display) {
+
+ $form->{invtotal} = 0;
+
+ $form->{exchangerate} = $form->parse_amount(\%myconfig, $form->{exchangerate});
+
+ @flds = ("amount", "$form->{ARAP}_amount", "projectnumber", "description");
+ $count = 0;
+ @a = ();
+ for $i (1 .. $form->{rowcount}) {
+ $form->{"amount_$i"} = $form->parse_amount(\%myconfig, $form->{"amount_$i"});
+ if ($form->{"amount_$i"}) {
+ push @a, {};
+ $j = $#a;
+
+ for (@flds) { $a[$j]->{$_} = $form->{"${_}_$i"} }
+ $count++;
+ }
+ }
+
+ $form->redo_rows(\@flds, \@a, $count, $form->{rowcount});
+ $form->{rowcount} = $count + 1;
+
+ for (1 .. $form->{rowcount}) { $form->{invtotal} += $form->{"amount_$_"} }
+
+ $form->{exchangerate} = $exchangerate if ($form->{forex} = ($exchangerate = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{transdate}, ($form->{ARAP} eq 'AR') ? 'buy' : 'sell')));
+
+ if ($newname = &check_name($form->{vc})) {
+ $form->{notes} = $form->{intnotes} unless $form->{id};
+ &rebuild_vc($form->{vc}, $form->{ARAP}, $form->{transdate});
+ }
+ if ($form->{transdate} ne $form->{oldtransdate}) {
+ $form->{duedate} = $form->current_date(\%myconfig, $form->{transdate}, $form->{terms} * 1);
+ $form->{oldtransdate} = $form->{transdate};
+ $newproj = &rebuild_vc($form->{vc}, $form->{ARAP}, $form->{transdate}) if ! $newname;
+ $form->all_projects(\%myconfig, undef, $form->{transdate}) if ! $newproj;
+
+ $form->{selectemployee} = "";
+ if (@{ $form->{all_employee} }) {
+ for (@{ $form->{all_employee} }) { $form->{selectemployee} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+ }
+ }
+ }
+
+ # recalculate taxes
+ @taxaccounts = split / /, $form->{taxaccounts};
+
+ for (@taxaccounts) { $form->{"tax_$_"} = $form->parse_amount(\%myconfig, $form->{"tax_$_"}) }
+
+ if ($form->{taxincluded}) {
+
+ $ml = 1;
+
+ for (0 .. 1) {
+ $taxrate = 0;
+ $diff = 0;
+
+ for (@taxaccounts) {
+ if (($form->{"${_}_rate"} * $ml) > 0) {
+ if ($form->{"calctax_$_"}) {
+ $taxrate += $form->{"${_}_rate"};
+ } else {
+ if ($form->{checktax}) {
+ if ($form->{"tax_$_"}) {
+ $taxrate += $form->{"${_}_rate"};
+ }
+ }
+ }
+ }
+ }
+
+ $taxrate *= $ml;
+
+ foreach $item (@taxaccounts) {
+ if (($form->{"${item}_rate"} * $ml) > 0) {
+
+ if ($taxrate) {
+ $a = $form->{invtotal} * $form->{"${item}_rate"} / (1 + $taxrate);
+ $b = $form->round_amount($a, 2);
+ $tax = $form->round_amount($a - $diff, 2);
+ $diff = $b - ($a - $diff);
+ }
+ $form->{"tax_$item"} = $tax if $form->{"calctax_$item"};
+
+ $form->{"select$form->{ARAP}_tax_$item"} = qq|<option>$item--$form->{"${item}_description"}|;
+ $totaltax += $form->{"tax_$item"};
+ }
+ }
+ $ml *= -1;
+ }
+ $totaltax += $form->round_amount($diff, 2);
+
+ $form->{checktax} = 1;
+
+ } else {
+ foreach $item (@taxaccounts) {
+ $form->{"calctax_$item"} = 1 if $form->{calctax};
+
+ if ($form->{"calctax_$item"}) {
+ $form->{"tax_$item"} = $form->round_amount($form->{invtotal} * $form->{"${item}_rate"}, 2);
+ }
+ $form->{"select$form->{ARAP}_tax_$item"} = qq|<option>$item--$form->{"${item}_description"}|;
+ $totaltax += $form->{"tax_$item"};
+ }
+ }
+
+ $form->{invtotal} = ($form->{taxincluded}) ? $form->{invtotal} : $form->{invtotal} + $totaltax;
+
+ $j = 1;
+ for $i (1 .. $form->{paidaccounts}) {
+ if ($form->{"paid_$i"}) {
+ for (qw(datepaid source memo cleared)) { $form->{"${_}_$j"} = $form->{"${_}_$i"} }
+ for (qw(paid exchangerate)) { $form->{"${_}_$j"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) }
+
+ $totalpaid += $form->{"paid_$j"};
+
+ $form->{"exchangerate_$j"} = $exchangerate if ($form->{"forex_$j"} = ($exchangerate = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{"datepaid_$j"}, ($form->{ARAP} eq 'AR') ? 'buy' : 'sell')));
+
+ if ($j++ != $i) {
+ for (qw(datepaid source memo paid exchangerate forex cleared)) { delete $form->{"${_}_$i"} }
+ }
+ } else {
+ for (qw(datepaid source memo paid exchangerate forex cleared)) { delete $form->{"${_}_$i"} }
+ }
+ }
+ $form->{paidaccounts} = $j;
+
+ $form->{creditremaining} -= ($form->{invtotal} - $totalpaid + $form->{oldtotalpaid} - $form->{oldinvtotal});
+ $form->{oldinvtotal} = $form->{invtotal};
+ $form->{oldtotalpaid} = $totalpaid;
+
+ &display_form;
+
+}
+
+
+sub post {
+
+ $label = ($form->{vc} eq 'customer') ? $locale->text('Customer missing!') : $locale->text('Vendor missing!');
+
+ # check if there is an invoice number, invoice and due date
+ $form->isblank("transdate", $locale->text('Invoice Date missing!'));
+ $form->isblank("duedate", $locale->text('Due Date missing!'));
+ $form->isblank($form->{vc}, $label);
+
+ $closedto = $form->datetonum(\%myconfig, $form->{closedto});
+ $transdate = $form->datetonum(\%myconfig, $form->{transdate});
+
+ $form->error($locale->text('Cannot post transaction for a closed period!')) if ($transdate <= $closedto);
+
+ $form->isblank("exchangerate", $locale->text('Exchange rate missing!')) if ($form->{currency} ne $form->{defaultcurrency});
+
+ for $i (1 .. $form->{paidaccounts}) {
+ if ($form->{"paid_$i"}) {
+ $datepaid = $form->datetonum(\%myconfig, $form->{"datepaid_$i"});
+
+ $form->isblank("datepaid_$i", $locale->text('Payment date missing!'));
+
+ $form->error($locale->text('Cannot post payment for a closed period!')) if ($datepaid <= $closedto);
+
+ if ($form->{currency} ne $form->{defaultcurrency}) {
+ $form->{"exchangerate_$i"} = $form->{exchangerate} if ($transdate == $datepaid);
+ $form->isblank("exchangerate_$i", $locale->text('Exchange rate for payment missing!'));
+ }
+ }
+ }
+
+ # if oldname ne name redo form
+ ($name) = split /--/, $form->{$form->{vc}};
+ if ($form->{"old$form->{vc}"} ne qq|$name--$form->{"$form->{vc}_id"}|) {
+ &update;
+ exit;
+ }
+
+ if (! $form->{repost}) {
+ if ($form->{id}) {
+ &repost;
+ exit;
+ }
+ }
+
+ if (AA->post_transaction(\%myconfig, \%$form)) {
+ $form->redirect($locale->text('Transaction posted!'));
+ } else {
+ $form->error($locale->text('Cannot post transaction!'));
+ }
+
+}
+
+
+sub delete {
+
+ $form->{title} = $locale->text('Confirm!');
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+|;
+
+ $form->{action} = "yes";
+ $form->hide_form;
+
+ print qq|
+<h2 class=confirm>$form->{title}</h2>
+
+<h4>|.$locale->text('Are you sure you want to delete Transaction').qq| $form->{invnumber}</h4>
+
+<input name=action class=submit type=submit value="|.$locale->text('Yes').qq|">
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+
+sub yes {
+
+ if (AA->delete_transaction(\%myconfig, \%$form, $spool)) {
+ $form->redirect($locale->text('Transaction deleted!'));
+ } else {
+ $form->error($locale->text('Cannot delete transaction!'));
+ }
+
+}
+
+
+sub search {
+
+ $form->create_links($form->{ARAP}, \%myconfig, $form->{vc});
+
+ $form->{"select$form->{ARAP}"} = "<option>\n";
+ for (@{ $form->{"$form->{ARAP}_links"}{$form->{ARAP}} }) { $form->{"select$form->{ARAP}"} .= "<option>$_->{accno}--$_->{description}\n" }
+
+ if (@{ $form->{"all_$form->{vc}"} }) {
+ $selectname = "";
+ for (@{ $form->{"all_$form->{vc}"} }) { $selectname .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+ $selectname = qq|<select name="$form->{vc}"><option>\n$selectname</select>|;
+ } else {
+ $selectname = qq|<input name=$form->{vc} size=35>|;
+ }
+
+ # departments
+ if (@{ $form->{all_department} }) {
+ $form->{selectdepartment} = "<option>\n";
+
+ for (@{ $form->{all_department} }) { $form->{selectdepartment} .= qq|<option value="$_->{description}--$_->{id}">$_->{description}\n| }
+
+ $l_department = qq|<input name="l_department" class=checkbox type=checkbox value=Y> |.$locale->text('Department');
+
+ $department = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Department').qq|</th>
+ <td colspan=3><select name=department>$form->{selectdepartment}</select></td>
+ </tr>
+|;
+ }
+
+ if (@{ $form->{all_employee} }) {
+ $form->{selectemployee} = "<option>\n";
+ for (@{ $form->{all_employee} }) { $form->{selectemployee} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+
+ $employeelabel = ($form->{ARAP} eq 'AR') ? $locale->text('Salesperson') : $locale->text('Employee');
+
+ $employee = qq|
+ <tr>
+ <th align=right nowrap>$employeelabel</th>
+ <td colspan=3><select name=employee>$form->{selectemployee}</select></td>
+ </tr>
+|;
+
+ $l_employee = qq|<input name="l_employee" class=checkbox type=checkbox value=Y> $employeelabel|;
+
+ $l_manager = qq|<input name="l_manager" class=checkbox type=checkbox value=Y> |.$locale->text('Manager');
+ }
+
+
+ $form->{title} = ($form->{ARAP} eq 'AR') ? $locale->text('AR Transactions') : $locale->text('AP Transactions');
+
+ $invnumber = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Invoice Number').qq|</th>
+ <td colspan=3><input name=invnumber size=20></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Order Number').qq|</th>
+ <td colspan=3><input name=ordnumber size=20></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('PO Number').qq|</th>
+ <td colspan=3><input name=ponumber size=20></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Source').qq|</th>
+ <td colspan=3><input name=source size=40></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Description').qq|</th>
+ <td colspan=3><input name=description size=40></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Notes').qq|</th>
+ <td colspan=3><input name=notes size=40></td>
+ </tr>
+|;
+
+ $openclosed = qq|
+ <tr>
+ <td nowrap><input name=open class=checkbox type=checkbox value=Y checked> |.$locale->text('Open').qq|</td>
+ <td nowrap><input name=closed class=checkbox type=checkbox value=Y> |.$locale->text('Closed').qq|</td>
+ </tr>
+|;
+
+ $summary = qq|
+ <tr>
+ <td><input name=summary type=radio class=radio value=1 checked> |.$locale->text('Summary').qq|</td>
+ <td><input name=summary type=radio class=radio value=0> |.$locale->text('Detail').qq|
+ </td>
+ </tr>
+|;
+
+
+ if ($form->{outstanding}) {
+ $form->{title} = ($form->{ARAP} eq 'AR') ? $locale->text('AR Outstanding') : $locale->text('AP Outstanding');
+ $invnumber = "";
+ $openclosed = "";
+ $summary = "";
+ }
+
+ if (@{ $form->{all_years} }) {
+ # accounting years
+ $form->{selectaccountingyear} = "<option>\n";
+ for (@{ $form->{all_years} }) { $form->{selectaccountingyear} .= qq|<option>$_\n| }
+ $form->{selectaccountingmonth} = "<option>\n";
+ for (sort keys %{ $form->{all_month} }) { $form->{selectaccountingmonth} .= qq|<option value=$_>|.$locale->text($form->{all_month}{$_}).qq|\n| }
+
+ $selectfrom = qq|
+ <tr>
+ <th align=right>|.$locale->text('Period').qq|</th>
+ <td colspan=3>
+ <select name=month>$form->{selectaccountingmonth}</select>
+ <select name=year>$form->{selectaccountingyear}</select>
+ <input name=interval class=radio type=radio value=0 checked>&nbsp;|.$locale->text('Current').qq|
+ <input name=interval class=radio type=radio value=1>&nbsp;|.$locale->text('Month').qq|
+ <input name=interval class=radio type=radio value=3>&nbsp;|.$locale->text('Quarter').qq|
+ <input name=interval class=radio type=radio value=12>&nbsp;|.$locale->text('Year').qq|
+ </td>
+ </tr>
+|;
+ }
+
+
+ $name = $locale->text('Customer');
+ $l_name = qq|<input name="l_name" class=checkbox type=checkbox value=Y checked> $name|;
+ $l_till = qq|<input name="l_till" class=checkbox type=checkbox value=Y> |.$locale->text('Till');
+
+ if ($form->{vc} eq 'vendor') {
+ $name = $locale->text('Vendor');
+ $l_till = "";
+ $l_name = qq|<input name="l_name" class=checkbox type=checkbox value=Y checked> $name|;
+ }
+
+ @a = ();
+ push @a, qq|<input name="l_runningnumber" class=checkbox type=checkbox value=Y> |.$locale->text('No.');
+ push @a, qq|<input name="l_id" class=checkbox type=checkbox value=Y> |.$locale->text('ID');
+ push @a, qq|<input name="l_invnumber" class=checkbox type=checkbox value=Y checked> |.$locale->text('Invoice Number');
+ push @a, qq|<input name="l_ordnumber" class=checkbox type=checkbox value=Y> |.$locale->text('Order Number');
+ push @a, qq|<input name="l_ponumber" class=checkbox type=checkbox value=Y> |.$locale->text('PO Number');
+ push @a, qq|<input name="l_transdate" class=checkbox type=checkbox value=Y checked> |.$locale->text('Invoice Date');
+ push @a, $l_name;
+ push @a, $l_employee if $l_employee;
+ push @a, $l_manager if $l_employee;
+ push @a, $l_department if $l_department;
+ push @a, qq|<input name="l_netamount" class=checkbox type=checkbox value=Y> |.$locale->text('Amount');
+ push @a, qq|<input name="l_tax" class=checkbox type=checkbox value=Y> |.$locale->text('Tax');
+ push @a, qq|<input name="l_amount" class=checkbox type=checkbox value=Y checked> |.$locale->text('Total');
+ push @a, qq|<input name="l_curr" class=checkbox type=checkbox value=Y> |.$locale->text('Currency');
+ push @a, qq|<input name="l_datepaid" class=checkbox type=checkbox value=Y> |.$locale->text('Date Paid');
+ push @a, qq|<input name="l_paid" class=checkbox type=checkbox value=Y checked> |.$locale->text('Paid');
+ push @a, qq|<input name="l_duedate" class=checkbox type=checkbox value=Y> |.$locale->text('Due Date');
+ push @a, qq|<input name="l_due" class=checkbox type=checkbox value=Y> |.$locale->text('Amount Due');
+ push @a, qq|<input name="l_notes" class=checkbox type=checkbox value=Y> |.$locale->text('Notes');
+ push @a, $l_till if $l_till;
+ push @a, qq|<input name="l_shippingpoint" class=checkbox type=checkbox value=Y> |.$locale->text('Shipping Point');
+ push @a, qq|<input name="l_shipvia" class=checkbox type=checkbox value=Y> |.$locale->text('Ship via');
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr><th class=listtop>$form->{title}</th></tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right>|.$locale->text('Account').qq|</th>
+ <td colspan=3><select name=$form->{ARAP}>$form->{"select$form->{ARAP}"}</select></td>
+ </tr>
+ <tr>
+ <th align=right>$name</th>
+ <td colspan=3>$selectname</td>
+ </tr>
+ $employee
+ $department
+ $invnumber
+ <tr>
+ <th align=right>|.$locale->text('Ship via').qq|</th>
+ <td colspan=3><input name=shipvia size=40></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('From').qq|</th>
+ <td><input name=transdatefrom size=11 title="$myconfig{dateformat}"></td>
+ <th align=right>|.$locale->text('To').qq|</th>
+ <td><input name=transdateto size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+ $selectfrom
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Include in Report').qq|</th>
+ <td>
+ <table width=100%>
+ $openclosed
+ $summary
+|;
+
+ $form->{sort} = "transdate";
+ $form->hide_form(qw(title outstanding sort));
+
+
+ while (@a) {
+ for (1 .. 5) {
+ print qq|<td nowrap>|. shift @a;
+ print qq|</td>\n|;
+ }
+ print qq|</tr>\n|;
+ }
+
+ print qq|
+ <tr>
+ <td nowrap><input name="l_subtotal" class=checkbox type=checkbox value=Y> |.$locale->text('Subtotal').qq|</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+<input type=hidden name=action value=continue>
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">|;
+
+ $form->hide_form(qw(nextsub path login sessionid));
+
+ print qq|
+</form>
+|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+</body>
+</html>
+|;
+
+}
+
+
+sub transactions {
+
+ if ($form->{$form->{vc}}) {
+ $form->{$form->{vc}} = $form->unescape($form->{$form->{vc}});
+ ($form->{$form->{vc}}, $form->{"$form->{vc}_id"}) = split(/--/, $form->{$form->{vc}});
+ }
+
+ AA->transactions(\%myconfig, \%$form);
+
+ $href = "$form->{script}?action=transactions";
+ for (qw(direction oldsort till outstanding path login sessionid summary)) { $href .= qq|&$_=$form->{$_}| }
+ $href .= "&title=".$form->escape($form->{title});
+
+ $form->sort_order();
+
+ $callback = "$form->{script}?action=transactions";
+ for (qw(direction oldsort till outstanding path login sessionid summary)) { $callback .= qq|&$_=$form->{$_}| }
+ $callback .= "&title=".$form->escape($form->{title},1);
+
+ if ($form->{$form->{ARAP}}) {
+ $callback .= "&$form->{ARAP}=".$form->escape($form->{$form->{ARAP}},1);
+ $href .= "&$form->{ARAP}=".$form->escape($form->{$form->{ARAP}});
+ $form->{$form->{ARAP}} =~ s/--/ /;
+ $option = $locale->text('Account')." : $form->{$form->{ARAP}}";
+ }
+
+ if ($form->{$form->{vc}}) {
+ $callback .= "&$form->{vc}=".$form->escape($form->{$form->{vc}},1).qq|--$form->{"$form->{vc}_id"}|;
+ $href .= "&$form->{vc}=".$form->escape($form->{$form->{vc}}).qq|--$form->{"$form->{vc}_id"}|;
+ $option .= "\n<br>" if ($option);
+ $name = ($form->{vc} eq 'customer') ? $locale->text('Customer') : $locale->text('Vendor');
+ $option .= "$name : $form->{$form->{vc}}";
+ }
+ if ($form->{department}) {
+ $callback .= "&department=".$form->escape($form->{department},1);
+ $href .= "&department=".$form->escape($form->{department});
+ ($department) = split /--/, $form->{department};
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Department')." : $department";
+ }
+ if ($form->{employee}) {
+ $callback .= "&employee=".$form->escape($form->{employee},1);
+ $href .= "&employee=".$form->escape($form->{employee});
+ ($employee) = split /--/, $form->{employee};
+ $option .= "\n<br>" if ($option);
+ if ($form->{ARAP} eq 'AR') {
+ $option .= $locale->text('Salesperson');
+ } else {
+ $option .= $locale->text('Employee');
+ }
+ $option .= " : $employee";
+ }
+
+ if ($form->{invnumber}) {
+ $callback .= "&invnumber=".$form->escape($form->{invnumber},1);
+ $href .= "&invnumber=".$form->escape($form->{invnumber});
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Invoice Number')." : $form->{invnumber}";
+ }
+ if ($form->{ordnumber}) {
+ $callback .= "&ordnumber=".$form->escape($form->{ordnumber},1);
+ $href .= "&ordnumber=".$form->escape($form->{ordnumber});
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Order Number')." : $form->{ordnumber}";
+ }
+ if ($form->{ponumber}) {
+ $callback .= "&ponumber=".$form->escape($form->{ponumber},1);
+ $href .= "&ponumber=".$form->escape($form->{ponumber});
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('PO Number')." : $form->{ponumber}";
+ }
+ if ($form->{source}) {
+ $callback .= "&source=".$form->escape($form->{source},1);
+ $href .= "&source=".$form->escape($form->{source});
+ $option .= "\n<br>" if $option;
+ $option .= $locale->text('Source')." : $form->{source}";
+ }
+ if ($form->{description}) {
+ $callback .= "&description=".$form->escape($form->{description},1);
+ $href .= "&description=".$form->escape($form->{description});
+ $option .= "\n<br>" if $option;
+ $option .= $locale->text('Description')." : $form->{description}";
+ }
+ if ($form->{notes}) {
+ $callback .= "&notes=".$form->escape($form->{notes},1);
+ $href .= "&notes=".$form->escape($form->{notes});
+ $option .= "\n<br>" if $option;
+ $option .= $locale->text('Notes')." : $form->{notes}";
+ }
+ if ($form->{shipvia}) {
+ $callback .= "&shipvia=".$form->escape($form->{shipvia},1);
+ $href .= "&shipvia=".$form->escape($form->{shipvia});
+ $option .= "\n<br>" if $option;
+ $option .= $locale->text('Ship via')." : $form->{shipvia}";
+ }
+ if ($form->{transdatefrom}) {
+ $callback .= "&transdatefrom=$form->{transdatefrom}";
+ $href .= "&transdatefrom=$form->{transdatefrom}";
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('From')."&nbsp;".$locale->date(\%myconfig, $form->{transdatefrom}, 1);
+ }
+ if ($form->{transdateto}) {
+ $callback .= "&transdateto=$form->{transdateto}";
+ $href .= "&transdateto=$form->{transdateto}";
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('To')."&nbsp;".$locale->date(\%myconfig, $form->{transdateto}, 1);
+ }
+ if ($form->{open}) {
+ $callback .= "&open=$form->{open}";
+ $href .= "&open=$form->{open}";
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Open');
+ }
+ if ($form->{closed}) {
+ $callback .= "&closed=$form->{closed}";
+ $href .= "&closed=$form->{closed}";
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Closed');
+ }
+
+ @columns = $form->sort_columns(qw(transdate id invnumber ordnumber ponumber name netamount tax amount paid due curr datepaid duedate notes till employee manager shippingpoint shipvia department));
+ pop @columns if $form->{department};
+ unshift @columns, "runningnumber";
+
+ foreach $item (@columns) {
+ if ($form->{"l_$item"} eq "Y") {
+ push @column_index, $item;
+
+ if ($form->{l_curr} && $item =~ /(amount|tax|paid|due)/) {
+ push @column_index, "fx_$item";
+ }
+
+ # add column to href and callback
+ $callback .= "&l_$item=Y";
+ $href .= "&l_$item=Y";
+ }
+ }
+
+ if (!$form->{summary}) {
+ foreach $item (qw(source debit credit accno description projectnumber)) {
+ push @column_index, $item;
+ }
+ }
+
+ if ($form->{l_subtotal} eq 'Y') {
+ $callback .= "&l_subtotal=Y";
+ $href .= "&l_subtotal=Y";
+ }
+
+ $employee = ($form->{ARAP} eq 'AR') ? $locale->text('Salesperson') : $locale->text('Employee');
+ $name = ($form->{vc} eq 'customer') ? $locale->text('Customer') : $locale->text('Vendor');
+
+ $column_header{runningnumber} = qq|<th class=listheading>&nbsp;</th>|;
+ $column_header{id} = "<th><a class=listheading href=$href&sort=id>".$locale->text('ID')."</a></th>";
+ $column_header{transdate} = "<th><a class=listheading href=$href&sort=transdate>".$locale->text('Date')."</a></th>";
+ $column_header{duedate} = "<th><a class=listheading href=$href&sort=duedate>".$locale->text('Due Date')."</a></th>";
+ $column_header{invnumber} = "<th><a class=listheading href=$href&sort=invnumber>".$locale->text('Invoice')."</a></th>";
+ $column_header{ordnumber} = "<th><a class=listheading href=$href&sort=ordnumber>".$locale->text('Order')."</a></th>";
+ $column_header{ponumber} = "<th><a class=listheading href=$href&sort=ponumber>".$locale->text('PO Number')."</a></th>";
+ $column_header{name} = "<th><a class=listheading href=$href&sort=name>$name</a></th>";
+ $column_header{netamount} = "<th class=listheading>" . $locale->text('Amount') . "</th>";
+ $column_header{tax} = "<th class=listheading>" . $locale->text('Tax') . "</th>";
+ $column_header{amount} = "<th class=listheading>" . $locale->text('Total') . "</th>";
+ $column_header{paid} = "<th class=listheading>" . $locale->text('Paid') . "</th>";
+ $column_header{datepaid} = "<th><a class=listheading href=$href&sort=datepaid>" . $locale->text('Date Paid') . "</a></th>";
+ $column_header{due} = "<th class=listheading>" . $locale->text('Amount Due') . "</th>";
+ $column_header{notes} = "<th class=listheading>".$locale->text('Notes')."</th>";
+ $column_header{employee} = "<th><a class=listheading href=$href&sort=employee>$employee</th>";
+ $column_header{manager} = "<th><a class=listheading href=$href&sort=manager>".$locale->text('Manager')."</th>";
+ $column_header{till} = "<th class=listheading><a class=listheading href=$href&sort=till>".$locale->text('Till')."</th>";
+
+ $column_header{shippingpoint} = "<th><a class=listheading href=$href&sort=shippingpoint>" . $locale->text('Shipping Point') . "</a></th>";
+ $column_header{shipvia} = "<th><a class=listheading href=$href&sort=shipvia>" . $locale->text('Ship via') . "</a></th>";
+
+ $column_header{curr} = "<th><a class=listheading href=$href&sort=curr>" . $locale->text('Curr') . "</a></th>";
+ for (qw(amount tax netamount paid due)) { $column_header{"fx_$_"} = "<th>&nbsp;</th>" }
+
+ $column_header{department} = "<th><a class=listheading href=$href&sort=department>" . $locale->text('Department') . "</a></th>";
+
+ $column_header{accno} = "<th><a class=listheading href=$href&sort=accno>" . $locale->text('Account') . "</a></th>";
+ $column_header{source} = "<th><a class=listheading href=$href&sort=source>" . $locale->text('Source') . "</a></th>";
+ $column_header{debit} = "<th class=listheading>" . $locale->text('Debit') . "</th>";
+ $column_header{credit} = "<th class=listheading>" . $locale->text('Credit') . "</th>";
+ $column_header{projectnumber} = "<th><a class=listheading href=$href&sort=projectnumber>" . $locale->text('Project') . "</a></th>";
+ $column_header{description} = "<th><a class=listheading href=$href&sort=linedescription>" . $locale->text('Description') . "</a></th>";
+
+ $form->{title} = ($form->{title}) ? $form->{title} : $locale->text('AR Transactions');
+
+ $form->header;
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$option</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "\n$column_header{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+
+ # add sort and escape callback, this one we use for the add sub
+ $form->{callback} = $callback .= "&sort=$form->{sort}";
+
+ # escape callback for href
+ $callback = $form->escape($callback);
+
+ # flip direction
+ $direction = ($form->{direction} eq 'ASC') ? "ASC" : "DESC";
+ $href =~ s/&direction=(\w+)&/&direction=$direction&/;
+
+ if (@{ $form->{transactions} }) {
+ $sameitem = $form->{transactions}->[0]->{$form->{sort}};
+ }
+
+ # sums and tax on reports by Antonio Gallardo
+ #
+ $i = 0;
+ foreach $ref (@{ $form->{transactions} }) {
+
+ $i++;
+
+ if ($form->{l_subtotal} eq 'Y') {
+ if ($sameitem ne $ref->{$form->{sort}}) {
+ &subtotal;
+ $sameitem = $ref->{$form->{sort}};
+ }
+ }
+
+ if ($form->{l_curr}) {
+ for (qw(netamount amount paid)) { $ref->{"fx_$_"} = $ref->{$_}/$ref->{exchangerate} }
+
+ for (qw(netamount amount paid)) { $column_data{"fx_$_"} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{"fx_$_"}, 2, "&nbsp;")."</td>" }
+
+ $column_data{fx_tax} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{fx_amount} - $ref->{fx_netamount}, 2, "&nbsp;")."</td>";
+ $column_data{fx_due} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{fx_amount} - $ref->{fx_paid}, 2, "&nbsp;")."</td>";
+
+ $subtotalfxnetamount += $ref->{fx_netamount};
+ $subtotalfxamount += $ref->{fx_amount};
+ $subtotalfxpaid += $ref->{fx_paid};
+
+ $totalfxnetamount += $ref->{fx_netamount};
+ $totalfxamount += $ref->{fx_amount};
+ $totalfxpaid += $ref->{fx_paid};
+
+ }
+
+ $column_data{runningnumber} = "<td align=right>$i</td>";
+
+ for (qw(netamount amount paid debit credit)) { $column_data{$_} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{$_}, 2, "&nbsp;")."</td>" }
+
+ $column_data{tax} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{amount} - $ref->{netamount}, 2, "&nbsp;")."</td>";
+ $column_data{due} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{amount} - $ref->{paid}, 2, "&nbsp;")."</td>";
+
+
+ $subtotalnetamount += $ref->{netamount};
+ $subtotalamount += $ref->{amount};
+ $subtotalpaid += $ref->{paid};
+ $subtotaldebit += $ref->{debit};
+ $subtotalcredit += $ref->{credit};
+
+ $totalnetamount += $ref->{netamount};
+ $totalamount += $ref->{amount};
+ $totalpaid += $ref->{paid};
+ $totaldebit += $ref->{debit};
+ $totalcredit += $ref->{credit};
+
+ $module = ($ref->{invoice}) ? ($form->{ARAP} eq 'AR') ? "is.pl" : "ir.pl" : $form->{script};
+ $module = ($ref->{till}) ? "ps.pl" : $module;
+
+ $column_data{invnumber} = "<td><a href=$module?action=edit&id=$ref->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{invnumber}&nbsp;</a></td>";
+
+ for (qw(notes description)) { $ref->{$_} =~ s/\r?\n/<br>/g }
+ for (qw(transdate datepaid duedate department ordnumber ponumber notes shippingpoint shipvia employee manager till source description projectnumber)) { $column_data{$_} = "<td>$ref->{$_}&nbsp;</td>" }
+ for (qw(id curr)) { $column_data{$_} = "<td>$ref->{$_}</td>" }
+
+ $column_data{accno} = qq|<td><a href=ca.pl?path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&action=list_transactions&accounttype=standard&accno=$ref->{accno}&fromdate=$form->{transdatefrom}&todate=$form->{transdateto}&sort=transdate&l_subtotal=$form->{l_subtotal}&prevreport=$callback>$ref->{accno}</a></td>|;
+
+ $column_data{name} = qq|<td><a href=ct.pl?path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&action=edit&id=$ref->{"$form->{vc}_id"}&db=$form->{vc}&callback=$callback>$ref->{name}</a></td>|;
+
+ if ($ref->{id} != $sameid) {
+ $j++; $j %= 2;
+ }
+
+ print "
+ <tr class=listrow$j>
+";
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ $sameid = $ref->{id};
+
+
+ }
+
+ if ($form->{l_subtotal} eq 'Y') {
+ &subtotal;
+ $sameitem = $ref->{$form->{sort}};
+ }
+
+ # print totals
+ print qq|
+ <tr class=listtotal>
+|;
+
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $column_data{netamount} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totalnetamount, 2, "&nbsp;")."</th>";
+ $column_data{tax} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totalamount - $totalnetamount, 2, "&nbsp;")."</th>";
+ $column_data{amount} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totalamount, 2, "&nbsp;")."</th>";
+ $column_data{paid} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totalpaid, 2, "&nbsp;")."</th>";
+ $column_data{due} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totalamount - $totalpaid, 2, "&nbsp;")."</th>";
+ $column_data{debit} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totaldebit, 2, "&nbsp;")."</th>";
+ $column_data{credit} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totalcredit, 2, "&nbsp;")."</th>";
+
+ if ($form->{l_curr} && $form->{sort} eq 'curr' && $form->{l_subtotal}) {
+ $column_data{fx_netamount} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totalfxnetamount, 2, "&nbsp;")."</th>";
+ $column_data{fx_tax} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totalfxamount - $totalfxnetamount, 2, "&nbsp;")."</th>";
+ $column_data{fx_amount} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totalfxamount, 2, "&nbsp;")."</th>";
+ $column_data{fx_paid} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totalfxpaid, 2, "&nbsp;")."</th>";
+ $column_data{fx_due} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totalfxamount - $totalfxpaid, 2, "&nbsp;")."</th>";
+ }
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ if ($myconfig{acs} !~ /$form->{ARAP}--$form->{ARAP}/) {
+ $i = 1;
+ if ($form->{ARAP} eq 'AR') {
+ $button{'AR--Add Transaction'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('AR Transaction').qq|"> |;
+ $button{'AR--Add Transaction'}{order} = $i++;
+ $button{'AR--Sales Invoice'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Sales Invoice.').qq|"> |;
+ $button{'AR--Sales Invoice'}{order} = $i++;
+ } else {
+ $button{'AP--Add Transaction'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('AP Transaction').qq|"> |;
+ $button{'AP--Add Transaction'}{order} = $i++;
+ $button{'AP--Vendor Invoice'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Vendor Invoice.').qq|"> |;
+ $button{'AP--Vendor Invoice'}{order} = $i++;
+ }
+
+ foreach $item (split /;/, $myconfig{acs}) {
+ delete $button{$item};
+ }
+ }
+
+ print qq|
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+<form method=post action=$form->{script}>
+|;
+
+ $form->hide_form("callback", "path", "login", "sessionid", "$form->{vc}", "$form->{vc}_id");
+
+ if (! $form->{till}) {
+ foreach $item (sort { $a->{order} <=> $b->{order} } %button) {
+ print $item->{code};
+ }
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub subtotal {
+
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $column_data{tax} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotalamount - $subtotalnetamount, 2, "&nbsp;")."</th>";
+ $column_data{amount} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotalamount, 2, "&nbsp;")."</th>";
+ $column_data{paid} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotalpaid, 2, "&nbsp;")."</th>";
+ $column_data{due} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotalamount - $subtotalpaid, 2, "&nbsp;")."</th>";
+ $column_data{debit} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotaldebit, 2, "&nbsp;")."</th>";
+ $column_data{credit} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotalcredit, 2, "&nbsp;")."</th>";
+
+ if ($form->{l_curr} && $form->{sort} eq 'curr' && $form->{l_subtotal}) {
+ $column_data{fx_tax} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotalfxamount - $subtotalfxnetamount, 2, "&nbsp;")."</th>";
+ $column_data{fx_amount} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotalfxamount, 2, "&nbsp;")."</th>";
+ $column_data{fx_paid} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotalfxpaid, 2, "&nbsp;")."</th>";
+ $column_data{fx_due} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotalfxmount - $subtotalfxpaid, 2, "&nbsp;")."</th>";
+ }
+
+ $subtotalnetamount = 0;
+ $subtotalamount = 0;
+ $subtotalpaid = 0;
+ $subtotaldebit = 0;
+ $subtotalcredit = 0;
+
+ $subtotalfxnetamount = 0;
+ $subtotalfxamount = 0;
+ $subtotalfxpaid = 0;
+
+ print "<tr class=listsubtotal>";
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+print "
+</tr>
+";
+
+}
+
+
+
diff --git a/bin/mozilla/admin.pl b/bin/mozilla/admin.pl
new file mode 100755
index 00000000..77a33aae
--- /dev/null
+++ b/bin/mozilla/admin.pl
@@ -0,0 +1,1628 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has NOT undergone whitespace cleanup.
+#
+#======================================================================
+#
+# setup module
+# add/edit/delete users
+#
+#======================================================================
+
+$menufile = "menu.ini";
+
+use LedgerSMB::Form;
+use LedgerSMB::User;
+
+
+$form = new Form;
+
+$locale = new Locale $language, "admin";
+$form->{charset} = $locale->{charset};
+
+eval { require DBI; };
+$form->error($locale->text('DBI not installed!')) if ($@);
+
+$form->{stylesheet} = "sql-ledger.css";
+$form->{favicon} = "favicon.ico";
+$form->{timeout} = 600;
+
+require "$form->{path}/pw.pl";
+
+# customization
+if (-f "$form->{path}/custom_$form->{script}") {
+ eval { require "$form->{path}/custom_$form->{script}"; };
+ $form->error($@) if ($@);
+}
+
+
+if ($form->{action}) {
+
+ &check_password unless $form->{action} eq 'logout';
+
+ &{ $locale->findsub($form->{action}) };
+
+} else {
+
+ # if there are no drivers bail out
+ $form->error($locale->text('No Database Drivers available!')) unless (User->dbdrivers);
+
+ # create memberfile
+ if (! -f $memberfile) {
+ open(FH, ">$memberfile") or $form->error("$memberfile : $!");
+ print FH qq|# LedgerSMB Accounting members
+
+[root login]
+password=
+
+|;
+ close FH;
+ }
+
+ &adminlogin;
+
+}
+
+1;
+# end
+
+
+sub adminlogin {
+
+ $form->{title} = qq|LedgerSMB $form->{version} |.$locale->text('Administration');
+
+ $form->header;
+
+ print qq|
+<script language="JavaScript" type="text/javascript">
+<!--
+function sf(){
+ document.admin.password.focus();
+}
+// End -->
+</script>
+
+<body class=admin onload="sf()">
+
+<div align=center>
+
+<a href="http://sourceforge.net/projects/ledger-smb/"><img src="ledger-smb.png" width="200" height="100" border="0"></a>
+<h1 class=login>|.$locale->text('Version').qq| $form->{version}<p>|.$locale->text('Administration').qq|</h1>
+
+<form method=post action="$form->{script}" name=admin>
+
+<table>
+ <tr>
+ <th>|.$locale->text('Password').qq|</th>
+ <td><input type=password name=password></td>
+ <td><input type=submit class=submit name=action value="|.$locale->text('Login').qq|"></td>
+ </tr>
+<input type=hidden name=action value=login>
+<input type=hidden name=path value=$form->{path}>
+</table>
+
+</form>
+
+<a href="http://sourceforge.net/projects/ledger-smb/">LedgerSMB |.$locale->text('website').qq|</a>
+
+</div>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub login {
+
+ &list_users;
+
+}
+
+
+sub logout {
+
+ $form->{callback} = "$form->{script}?path=$form->{path}&endsession=1";
+ $form->redirect($locale->text('You are logged out'));
+ unlink "$userspath/adminhash";
+ print qq|Set-Cookie: LedgerSMB=; path=/;\n|;
+
+}
+
+
+sub add_user {
+
+ $form->{title} = "LedgerSMB ".$locale->text('Accounting')." ".$locale->text('Administration')." / ".$locale->text('Add User');
+
+ $form->{Oracle_sid} = $sid;
+ $form->{Oracle_dbport} = '1521';
+ $form->{Oracle_dbhost} = `hostname`;
+
+ if (-f "css/sql-ledger.css") {
+ $myconfig->{stylesheet} = "sql-ledger.css";
+ }
+ $myconfig->{vclimit} = 1000;
+ $myconfig->{menuwidth} = 155;
+ $myconfig->{timeout} = 3600;
+
+ &form_header;
+ &form_footer;
+
+}
+
+
+
+sub edit {
+
+ $form->{title} = "LedgerSMB ".$locale->text('Accounting')." ".$locale->text('Administration')." / ".$locale->text('Edit User');
+ $form->{edit} = 1;
+
+ &form_header;
+ &form_footer;
+
+}
+
+
+sub form_footer {
+
+ if ($form->{edit}) {
+ $delete = qq|<input type=submit class=submit name=action value="|.$locale->text('Delete').qq|">
+<input type=hidden name=edit value=1>|;
+ }
+
+ print qq|
+
+<input name=callback type=hidden value="$form->{script}?action=list_users&path=$form->{path}&sessionid=$form->{sessionid}">
+
+<input type=hidden name=path value=$form->{path}>
+<input type=hidden name=sessionid value=$form->{sessionid}>
+
+<input type=submit class=submit name=action value="|.$locale->text('Save').qq|">
+$delete
+
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub list_users {
+
+ open(FH, "$memberfile") or $form->error("$memberfile : $!");
+
+ $nologin = qq|
+<input type=submit class=submit name=action value="|.$locale->text('Lock System').qq|">|;
+
+ if (-e "$userspath/nologin") {
+ $nologin = qq|
+<input type=submit class=submit name=action value="|.$locale->text('Unlock System').qq|">|;
+ }
+
+
+ while (<FH>) {
+ chop;
+
+ if (/^\[.*\]/) {
+ $login = $_;
+ $login =~ s/(\[|\])//g;
+ }
+
+ if (/^(name=|company=|templates=|dbuser=|dbdriver=|dbname=|dbhost=)/) {
+ chop ($var = $&);
+ ($null, $member{$login}{$var}) = split /=/, $_, 2;
+ }
+ }
+
+ close(FH);
+
+# type=submit $locale->text('Pg Database Administration')
+# type=submit $locale->text('PgPP Database Administration')
+# type=submit $locale->text('Oracle Database Administration')
+
+ foreach $item (User->dbdrivers) {
+ $dbdrivers .= qq|<input name=action type=submit class=submit value="|.$locale->text("$item Database Administration").qq|">|;
+ }
+
+
+ $column_header{login} = qq|<th>|.$locale->text('Login').qq|</th>|;
+ $column_header{name} = qq|<th>|.$locale->text('Name').qq|</th>|;
+ $column_header{company} = qq|<th>|.$locale->text('Company').qq|</th>|;
+ $column_header{dbdriver} = qq|<th>|.$locale->text('Driver').qq|</th>|;
+ $column_header{dbhost} = qq|<th>|.$locale->text('Host').qq|</th>|;
+ $column_header{dataset} = qq|<th>|.$locale->text('Dataset').qq|</th>|;
+ $column_header{templates} = qq|<th>|.$locale->text('Templates').qq|</th>|;
+
+ @column_index = qw(login name company dbdriver dbhost dataset templates);
+
+ $form->{title} = "LedgerSMB ".$locale->text('Accounting')." ".$locale->text('Administration');
+
+ $form->{login} = "root login";
+ $form->header;
+
+ print qq|
+<body class=admin>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr>
+ <tr class=listheading>
+ <th>$form->{title}</th>
+ </tr>
+ <tr size=5></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>|;
+
+ for (@column_index) { print "$column_header{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+foreach $key (sort keys %member) {
+ $href = "$script?action=edit&login=$key&path=$form->{path}&sessionid=$form->{sessionid}";
+ $href =~ s/ /%20/g;
+
+ $member{$key}{templates} =~ s/^$templates\///;
+ $member{$key}{dbhost} = $locale->text('localhost') unless $member{$key}{dbhost};
+ $member{$key}{dbname} = $member{$key}{dbuser} if ($member{$key}{dbdriver} eq 'Oracle');
+
+ $column_data{login} = qq|<td><a href=$href>$key</a></td>|;
+ $column_data{name} = qq|<td>$member{$key}{name}</td>|;
+ $column_data{company} = qq|<td>$member{$key}{company}</td>|;
+ $column_data{dbdriver} = qq|<td>$member{$key}{dbdriver}</td>|;
+ $column_data{dbhost} = qq|<td>$member{$key}{dbhost}</td>|;
+ $column_data{dataset} = qq|<td>$member{$key}{dbname}</td>|;
+ $column_data{templates} = qq|<td>$member{$key}{templates}</td>|;
+
+ $i++; $i %= 2;
+ print qq|
+ <tr class=listrow$i>|;
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>|;
+}
+
+
+print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<input type=hidden name=path value=$form->{path}>
+<input type=hidden name=sessionid value=$form->{sessionid}>
+
+<br><input type=submit class=submit name=action value="|.$locale->text('Add User').qq|">
+<input type=submit class=submit name=action value="|.$locale->text('Change Admin Password').qq|">
+
+$dbdrivers
+$nologin
+
+<input type=submit class=submit name=action value="|.$locale->text('Logout').qq|">
+
+</form>
+
+|.$locale->text('Click on login name to edit!').qq|
+<br>
+|.$locale->text('To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.').qq|
+
+</body>
+</html>
+|;
+
+}
+
+
+
+sub form_header {
+
+ # if there is a login, get user
+ if ($form->{login}) {
+ # get user
+ $myconfig = new User "$memberfile", "$form->{login}";
+
+ for (qw(company address signature)) { $myconfig->{$_} = $form->quote($myconfig->{$_}) }
+ for (qw(address signature)) { $myconfig->{$_} =~ s/\\n/\n/g }
+
+ # strip basedir from templates directory
+ $myconfig->{templates} =~ s/^$templates\///;
+
+ $myconfig->{dbpasswd} = unpack 'u', $myconfig->{dbpasswd};
+ }
+
+ foreach $item (qw(mm-dd-yy mm/dd/yy dd-mm-yy dd/mm/yy dd.mm.yy yyyy-mm-dd)) {
+ $dateformat .= ($item eq $myconfig->{dateformat}) ? "<option selected>$item\n" : "<option>$item\n";
+ }
+
+ foreach $item (qw(1,000.00 1000.00 1.000,00 1000,00 1'000.00)) {
+ $numberformat .= ($item eq $myconfig->{numberformat}) ? "<option selected>$item\n" : "<option>$item\n";
+ }
+
+
+ %countrycodes = User->country_codes;
+ $countrycodes = "";
+
+ foreach $key (sort { $countrycodes{$a} cmp $countrycodes{$b} } keys %countrycodes) {
+ $countrycodes .= ($myconfig->{countrycode} eq $key) ? "<option selected value=$key>$countrycodes{$key}" : "<option value=$key>$countrycodes{$key}";
+ }
+ $countrycodes = qq|<option value="">English\n$countrycodes|;
+
+ # is there a templates basedir
+ if (! -d "$templates") {
+ $form->error($locale->text('Directory').": $templates ".$locale->text('does not exist'));
+ }
+
+ opendir TEMPLATEDIR, "$templates/." or $form->error("$templates : $!");
+ @all = grep !/^\.\.?$/, readdir TEMPLATEDIR;
+ closedir TEMPLATEDIR;
+
+ @allhtml = sort grep /\.html/, @all;
+
+ @alldir = ();
+ for (@all) {
+ if (-d "$templates/$_") {
+ push @alldir, $_;
+ }
+ }
+
+ @allhtml = reverse grep !/Default/, @allhtml;
+ push @allhtml, 'Default';
+ @allhtml = reverse @allhtml;
+
+ foreach $item (sort @alldir) {
+ if ($item eq $myconfig->{templates}) {
+ $usetemplates .= qq|<option selected>$item\n|;
+ } else {
+ $usetemplates .= qq|<option>$item\n|;
+ }
+ }
+
+ $lastitem = $allhtml[0];
+ $lastitem =~ s/-.*//g;
+ $mastertemplates = qq|<option>$lastitem\n|;
+ foreach $item (@allhtml) {
+ $item =~ s/-.*//g;
+
+ if ($item ne $lastitem) {
+ $mastertemplates .= qq|<option>$item\n|;
+ $lastitem = $item;
+ }
+ }
+
+ opendir CSS, "css/.";
+ @all = grep /.*\.css$/, readdir CSS;
+ closedir CSS;
+
+ foreach $item (@all) {
+ if ($item eq $myconfig->{stylesheet}) {
+ $selectstylesheet .= qq|<option selected>$item\n|;
+ } else {
+ $selectstylesheet .= qq|<option>$item\n|;
+ }
+ }
+ $selectstylesheet .= "<option>\n";
+
+ if (%printer && $latex) {
+ $selectprinter = "<option>\n";
+ foreach $item (sort keys %printer) {
+ if ($myconfig->{printer} eq $item) {
+ $selectprinter .= qq|<option value="$item" selected>$item\n|;
+ } else {
+ $selectprinter .= qq|<option value="$item">$item\n|;
+ }
+ }
+
+ $printer = qq|
+ <tr>
+ <th align=right>|.$locale->text('Printer').qq|</th>
+ <td><select name=printer>$selectprinter</select></td>
+ </tr>
+|;
+
+ }
+
+ $user = $form->{login};
+ $form->{login} = "root login";
+ $form->header;
+ $form->{login} = $user;
+
+ print qq|
+<body class=admin>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr class=listheading><th colspan=2>$form->{title}</th></tr>
+ <tr size=5></tr>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=right>|.$locale->text('Login').qq|</th>
+ <td><input name=login value="$myconfig->{login}"></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Password').qq|</th>
+ <td><input type=password name=new_password size=8 value=$myconfig->{password}></td>
+ <input type=hidden name=old_password value=$myconfig->{password}>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Name').qq|</th>
+ <td><input name=name size=15 value="$myconfig->{name}"></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('E-mail').qq|</th>
+ <td><input name=email size=30 value="$myconfig->{email}"></td>
+ </tr>
+ <tr valign=top>
+ <th align=right>|.$locale->text('Signature').qq|</th>
+ <td><textarea name=signature rows=3 cols=35>$myconfig->{signature}</textarea></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Phone').qq|</th>
+ <td><input name=tel size=14 value="$myconfig->{tel}"></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Fax').qq|</th>
+ <td><input name=fax size=14 value="$myconfig->{fax}"></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Company').qq|</th>
+ <td><input name=company size=35 value="$myconfig->{company}"></td>
+ </tr>
+ <tr valign=top>
+ <th align=right>|.$locale->text('Address').qq|</th>
+ <td><textarea name=address rows=4 cols=35>$myconfig->{address}</textarea></td>
+ </tr>
+ </table>
+ </td>
+ <td>
+ <table>
+ <tr>
+ <th align=right>|.$locale->text('Date Format').qq|</th>
+ <td><select name=dateformat>$dateformat</select></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Number Format').qq|</th>
+ <td><select name=numberformat>$numberformat</select></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Dropdown Limit').qq|</th>
+ <td><input name=vclimit value="$myconfig->{vclimit}"></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Menu Width').qq|</th>
+ <td><input name=menuwidth value="$myconfig->{menuwidth}"></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Language').qq|</th>
+ <td><select name=countrycode>$countrycodes</select></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Session Timeout').qq|</th>
+ <td><input name=newtimeout value="$myconfig->{timeout}"></td>
+ </tr>
+
+ <tr>
+ <th align=right>|.$locale->text('Stylesheet').qq|</th>
+ <td><select name=userstylesheet>$selectstylesheet</select></td>
+ </tr>
+ $printer
+ <tr>
+ <th align=right>|.$locale->text('Use Templates').qq|</th>
+ <td><select name=usetemplates>$usetemplates</select></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('New Templates').qq|</th>
+ <td><input name=newtemplates></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Setup Templates').qq|</th>
+ <td><select name=mastertemplates>$mastertemplates</select></td>
+ </tr>
+ <input type=hidden name=templates value=$myconfig->{templates}>
+ </table>
+ </td>
+ </tr>
+ <tr class=listheading>
+ <th colspan=2>|.$locale->text('Database').qq|</th>
+ </tr>|;
+
+ # list section for database drivers
+ foreach $item (User->dbdrivers) {
+
+ print qq|
+ <tr>
+ <td colspan=2>
+ <table>
+ <tr>|;
+
+ $checked = "";
+ if ($myconfig->{dbdriver} eq $item) {
+ for (qw(dbhost dbport dbuser dbpasswd dbname sid)) { $form->{"${item}_$_"} = $myconfig->{$_} }
+ $checked = "checked";
+ }
+
+ print qq|
+ <th align=right>|.$locale->text('Driver').qq|</th>
+ <td><input name=dbdriver type=radio class=radio value=$item $checked>&nbsp;$item</td>
+ <th align=right>|.$locale->text('Host').qq|</th>
+ <td><input name="${item}_dbhost" size=30 value=$form->{"${item}_dbhost"}></td>
+ </tr>
+ <tr>|;
+
+ if ($item =~ /Pg/) {
+ print qq|
+ <th align=right>|.$locale->text('Dataset').qq|</th>
+ <td><input name="${item}_dbname" size=15 value=$form->{"${item}_dbname"}></td>
+ <th align=right>|.$locale->text('Port').qq|</th>
+ <td><input name="${item}_dbport" size=4 value=$form->{"${item}_dbport"}></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('User').qq|</th>
+ <td><input name="${item}_dbuser" size=15 value=$form->{"${item}_dbuser"}></td>
+ <th align=right>|.$locale->text('Password').qq|</th>
+ <td><input name="${item}_dbpasswd" type=password size=10 value=$form->{"${item}_dbpasswd"}></td>
+ </tr>|;
+
+ }
+
+ if ($item eq 'Oracle') {
+ print qq|
+ <th align=right>SID</th>
+ <td><input name=Oracle_sid value=$form->{Oracle_sid}></td>
+ <th align=right>|.$locale->text('Port').qq|</th>
+ <td><input name="${item}_dbport size=4 value=$form->{"${item}_dbport"}></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Dataset').qq|</th>
+ <td><input name="${item}_dbuser" size=15 value=$form->{"${item}_dbuser"}></td>
+ <th align=right>|.$locale->text('Password').qq|</th>
+ <td><input name="${item}_dbpasswd" type=password size=10 value=$form->{"${item}_dbpasswd"}></td>
+
+ </tr>|;
+ }
+
+
+ print qq|
+ <input type=hidden name=old_dbpasswd value=$myconfig->{dbpasswd}>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td colspan=2><hr size=2 noshade></td>
+ </tr>
+|;
+
+ }
+
+
+ # access control
+ open(FH, $menufile) or $form->error("$menufile : $!");
+ # scan for first menu level
+ @a = <FH>;
+ close(FH);
+
+ if (open(FH, "custom_$menufile")) {
+ push @a, <FH>;
+ }
+ close(FH);
+
+ foreach $item (@a) {
+ next unless $item =~ /\[\w+/;
+ next if $item =~ /\#/;
+
+ $item =~ s/(\[|\])//g;
+ chop $item;
+
+ if ($item =~ /--/) {
+ ($level, $menuitem) = split /--/, $item, 2;
+ } else {
+ $level = $item;
+ $menuitem = $item;
+ push @acsorder, $item;
+ }
+
+ push @{ $acs{$level} }, $menuitem;
+
+ }
+
+ %role = ( 'admin' => $locale->text('Administrator'),
+ 'user' => $locale->text('User'),
+ 'supervisor' => $locale->text('Supervisor'),
+ 'manager' => $locale->text('Manager')
+
+ );
+
+ $selectrole = "";
+ foreach $item (qw(user admin supervisor manager)) {
+ $selectrole .= ($myconfig->{role} eq $item) ? "<option selected value=$item>$role{$item}\n" : "<option value=$item>$role{$item}\n";
+ }
+
+ print qq|
+ <tr class=listheading>
+ <th colspan=2>|.$locale->text('Access Control').qq|</th>
+ </tr>
+ <tr>
+ <td><select name=role>$selectrole</select></td>
+ </tr>
+|;
+
+ foreach $item (split /;/, $myconfig->{acs}) {
+ ($key, $value) = split /--/, $item, 2;
+ $excl{$key}{$value} = 1;
+ }
+
+ foreach $key (@acsorder) {
+
+ $checked = "checked";
+ if ($form->{login}) {
+ $checked = ($excl{$key}{$key}) ? "" : "checked";
+ }
+
+ # can't have variable names with & and spaces
+ $item = $form->escape("${key}--$key",1);
+
+ $acsheading = $key;
+ $acsheading =~ s/ /&nbsp;/g;
+
+ $acsheading = qq|
+ <th align=left nowrap><input name="$item" class=checkbox type=checkbox value=1 $checked>&nbsp;$acsheading</th>\n|;
+ $menuitems .= "$item;";
+ $acsdata = "
+ <td>";
+
+ foreach $item (@{ $acs{$key} }) {
+
+ next if ($key eq $item);
+
+ $checked = "checked";
+ if ($form->{login}) {
+ $checked = ($excl{$key}{$item}) ? "" : "checked";
+ }
+
+ $acsitem = $form->escape("${key}--$item",1);
+
+ $acsdata .= qq|
+ <br><input name="$acsitem" class=checkbox type=checkbox value=1 $checked>&nbsp;$item|;
+ $menuitems .= "$acsitem;";
+ }
+
+ $acsdata .= "
+ </td>";
+
+ print qq|
+ <tr valign=top>$acsheading $acsdata
+ </tr>
+|;
+ }
+
+ print qq|<input type=hidden name=acs value="$menuitems">
+
+ <tr>
+ <td colspan=2><hr size=3 noshade></td>
+ </tr>
+</table>
+</div>
+|;
+
+}
+
+
+sub save {
+
+ # no driver checked
+ $form->error($locale->text('Database Driver not checked!')) unless $form->{dbdriver};
+
+ # no spaces allowed in login name
+ $form->{login} =~ s/ //g;
+
+ $form->isblank("login", $locale->text('Login name missing!'));
+
+ # check for duplicates
+ if (!$form->{edit}) {
+ $temp = new User "$memberfile", "$form->{login}";
+
+ if ($temp->{login}) {
+ $form->error("$form->{login} ".$locale->text('is already a member!'));
+ }
+ }
+
+ # no spaces allowed in directories
+ $form->{newtemplates} =~ s/( |\.\.|\*)//g;
+
+ if ($form->{newtemplates} ne "") {
+ $form->{templates} = $form->{newtemplates};
+ } else {
+ $form->{templates} = ($form->{usetemplates}) ? $form->{usetemplates} : $form->{login};
+ }
+
+ # is there a basedir
+ if (! -d "$templates") {
+ $form->error($locale->text('Directory').": $templates ".$locale->text('does not exist'));
+ }
+
+ # add base directory to $form->{templates}
+ $form->{templates} = "$templates/$form->{templates}";
+
+
+ $myconfig = new User "$memberfile", "$form->{login}";
+
+ # redo acs variable and delete all the acs codes
+ @acs = split /;/, $form->{acs};
+
+ $form->{acs} = "";
+ foreach $item (@acs) {
+ $item = $form->escape($item,1);
+ if (!$form->{$item}) {
+ $form->{acs} .= $form->unescape($form->unescape("$item")).";";
+ }
+ delete $form->{$item};
+ }
+
+ # check which database was filled in
+
+ $form->{dbhost} = $form->{"$form->{dbdriver}_dbhost"};
+ $form->{dbport} = $form->{"$form->{dbdriver}_dbport"};
+ $form->{dbpasswd} = $form->{"$form->{dbdriver}_dbpasswd"};
+ $form->{dbuser} = $form->{"$form->{dbdriver}_dbuser"};
+ $form->{dbname} = $form->{"$form->{dbdriver}_dbname"};
+
+ if ($form->{dbdriver} eq 'Oracle') {
+ $form->{sid} = $form->{Oracle_sid}, ;
+
+ $form->isblank("dbhost", $locale->text('Hostname missing!'));
+ $form->isblank("dbport", $locale->text('Port missing!'));
+ $form->isblank("dbuser", $locale->text('Dataset missing!'));
+ }
+ if ($form->{dbdriver} =~ /Pg/) {
+ $form->isblank("dbname", $locale->text('Dataset missing!'));
+ $form->isblank("dbuser", $locale->text('Database User missing!'));
+ }
+
+ foreach $item (keys %{$form}) {
+ $myconfig->{$item} = $form->{$item};
+ }
+
+ $myconfig->{password} = $form->{old_password};
+ $myconfig->{password} = $form->{new_password} if $form->{new_password} ne $form->{old_password};
+ $myconfig->{timeout} = $form->{newtimeout};
+
+ delete $myconfig->{stylesheet};
+ if ($form->{userstylesheet}) {
+ $myconfig->{stylesheet} = $form->{userstylesheet};
+ }
+
+ $myconfig->{packpw} = 1;
+
+ $myconfig->save_member($memberfile, $userspath);
+
+ # create user template directory and copy master files
+ if (! -d "$form->{templates}") {
+
+ umask(002);
+
+ if (mkdir "$form->{templates}", oct("771")) {
+
+ umask(007);
+
+ # copy templates to the directory
+ opendir TEMPLATEDIR, "$templates/." or $form->error("$templates : $!");
+ @templates = grep /$form->{mastertemplates}-/, readdir TEMPLATEDIR;
+ closedir TEMPLATEDIR;
+
+ foreach $file (@templates) {
+ open(TEMP, "$templates/$file") or $form->error("$templates/$file : $!");
+
+ $file =~ s/$form->{mastertemplates}-//;
+ open(NEW, ">$form->{templates}/$file") or $form->error("$form->{templates}/$file : $!");
+
+ while ($line = <TEMP>) {
+ print NEW $line;
+ }
+ close(TEMP);
+ close(NEW);
+ }
+ } else {
+ $form->error("$form->{templates} : $!");
+ }
+ }
+
+ $form->redirect($locale->text('User saved!'));
+
+}
+
+
+sub delete {
+
+ $form->{templates} = ($form->{templates}) ? "$templates/$form->{templates}" : "$templates/$form->{login}";
+
+ $form->error("$memberfile ".$locale->text('locked!')) if (-f ${memberfile}.LCK);
+
+ open(FH, ">${memberfile}.LCK") or $form->error("${memberfile}.LCK : $!");
+ close(FH);
+
+ if (! open(CONF, "+<$memberfile")) {
+ unlink "${memberfile}.LCK";
+ $form->error("$memberfile : $!");
+ }
+
+ @config = <CONF>;
+
+ seek(CONF, 0, 0);
+ truncate(CONF, 0);
+
+ while ($line = shift @config) {
+
+ chop $line;
+
+ if ($line =~ /^\[/) {
+ last if ($line eq "[$form->{login}]");
+ $login = &login_name($line);
+ }
+
+ if ($line =~ /^templates=/) {
+ ($null, $user{$login}) = split /=/, $line, 2;
+ }
+
+ print CONF "$line\n";
+ }
+
+ # remove everything up to next login or EOF
+ # and save template variable
+ while ($line = shift @config) {
+
+ chop $line;
+
+ ($key, $value) = split /=/, $line, 2;
+ $myconfig{$key} = $value;
+
+ last if ($line =~ /^\[/);
+ }
+
+ # this one is either the next login or EOF
+ print CONF "$line\n";
+
+ $login = &login_name($line);
+
+
+ while ($line = shift @config) {
+
+ chop $line;
+
+ if ($line =~ /^\[/) {
+ $login = &login_name($line);
+ }
+
+ if ($line =~ /^templates=/) {
+ ($null, $user{$login}) = split /=/, $line, 2;
+ }
+
+ print CONF "$line\n";
+ }
+
+ close(CONF);
+ unlink "${memberfile}.LCK";
+
+ # scan %user for $templatedir
+ foreach $login (keys %user) {
+ last if ($found = ($form->{templates} eq $user{$login}));
+ }
+
+ # if found keep directory otherwise delete
+ if (!$found) {
+ # delete it if there is a template directory
+ $dir = "$form->{templates}";
+ if (-d "$dir") {
+ unlink <$dir/*>;
+ rmdir "$dir";
+ }
+ }
+
+ if ($myconfig{dbconnect}) {
+ $myconfig{dbpasswd} = unpack 'u', $myconfig{dbpasswd};
+ for (keys %myconfig) { $form->{$_} = $myconfig{$_} }
+
+ User->delete_login(\%$form);
+
+ # delete config file for user
+ unlink "$userspath/$form->{login}.conf";
+ }
+
+ $form->redirect($locale->text('User deleted!'));
+
+}
+
+
+sub login_name {
+ my $login = shift;
+
+ $login =~ s/\[\]//g;
+ return ($login) ? $login : undef;
+
+}
+
+
+sub change_admin_password {
+
+ $form->{title} = qq|LedgerSMB |.$locale->text('Accounting')." ".$locale->text('Administration')." / ".$locale->text('Change Admin Password');
+
+ $form->{login} = "root login";
+ $form->header;
+
+ print qq|
+<body class=admin>
+
+<form method=post action=$form->{script}>
+
+<table>
+ <tr>
+ <tr class=listheading>
+ <th>|.$locale->text('Change Password').qq|</th>
+ </tr>
+ <tr size=5></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+ <th align=right>|.$locale->text('Password').qq|</th>
+ <td><input type=password name=new_password></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Confirm').qq|</th>
+ <td><input type=password name=confirm_password></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+</table>
+
+<br>
+<hr size=3 noshade>
+<input type=hidden name=path value=$form->{path}>
+<input type=hidden name=sessionid value=$form->{sessionid}>
+
+<p>
+<input type=submit class=submit name=action value="|.$locale->text('Change Password').qq|">
+
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub change_password {
+
+ $form->error($locale->text('Passwords do not match!')) if $form->{new_password} ne $form->{confirm_password};
+
+ $root->{password} = $form->{new_password};
+
+ $root->{'root login'} = 1;
+ $root->save_member($memberfile);
+
+ $form->{callback} = "$form->{script}?action=list_users&path=$form->{path}&sessionid=$form->{sessionid}";
+
+ $form->redirect($locale->text('Password changed!'));
+
+}
+
+sub get_hash {
+ use Digest::MD5;
+ $form->{hash} = Digest::MD5::md5_hex rand();
+
+}
+
+sub check_password {
+
+
+
+ $root = new User "$memberfile", "root login";
+
+ if ($root->{password}) {
+
+ if ($form->{password}) {
+ $form->{callback} .= "&password=$form->{password}" if $form->{callback};
+ $form->{sessionid} = time;
+ if ($root->{password} ne crypt $form->{password}, 'ro') {
+ &getpassword;
+ exit;
+ }
+
+ &get_hash;
+
+ open(HASHFILE, "> $userspath/adminhash")
+ || $form->error("Can't Open Hashfile: $!");
+ print HASHFILE $form->{hash};
+
+ print qq|Set-Cookie: LedgerSMB=$form->{hash}; path=/;\n|;
+
+ } else {
+ if ($ENV{HTTP_USER_AGENT}) {
+ $ENV{HTTP_COOKIE} =~ s/;\s*/;/g;
+ %cookie = split /[=;]/, $ENV{HTTP_COOKIE}; # Changeme to %cookies
+ $cookie = ($form->{path} eq 'bin/lynx') ? $cookie{login} : $cookie{"LedgerSMB-root login"};
+
+ open (HASHFILE, "< $userspath/adminhash") || $form->error("Can't Open Hashfile: $!");
+
+ chomp($form->{hash} = <HASHFILE>);
+
+ %cookies = split /[=;]/, $ENV{HTTP_COOKIE};
+
+ if (! $cookie || $cookie ne $form->{sessionid} ||
+ $form->{hash} ne $cookies{LedgerSMB}) {
+ &getpassword;
+ exit;
+ }
+ }
+ }
+ }
+
+}
+
+
+sub pg_database_administration {
+
+ $form->{dbdriver} = 'Pg';
+ &dbselect_source;
+
+}
+
+
+sub pgpp_database_administration {
+
+ $form->{dbdriver} = 'PgPP';
+ &dbselect_source;
+
+}
+
+
+sub oracle_database_administration {
+
+ $form->{dbdriver} = 'Oracle';
+ &dbselect_source;
+
+}
+
+
+sub dbdriver_defaults {
+
+ # load some defaults for the selected driver
+ %driverdefaults = ( 'Pg' => { dbport => '',
+ dbuser => 'sql-ledger',
+ dbdefault => 'template1',
+ dbhost => '',
+ connectstring => $locale->text('Connect to')
+ },
+ 'Oracle' => { dbport => '1521',
+ dbuser => 'oralin',
+ dbdefault => $sid,
+ dbhost => `hostname`,
+ connectstring => 'SID'
+ }
+ );
+
+ $driverdefaults{PgPP} = $driverdefaults{Pg};
+
+ for (keys %{ $driverdefaults{Pg} }) { $form->{$_} = $driverdefaults{$form->{dbdriver}}{$_} }
+
+}
+
+
+sub dbselect_source {
+
+ &dbdriver_defaults;
+
+ $form->{title} = "LedgerSMB ".$locale->text('Accounting')." / ".$locale->text('Database Administration');
+
+ $form->{login} = "root login";
+ $form->header;
+
+ print qq|
+<body class=admin>
+
+<center>
+<h2>$form->{title}</h2>
+
+<form method=post action=$form->{script}>
+
+<table>
+ <tr>
+ <td>
+ <table>
+ <tr class=listheading>
+ <th colspan=4>|.$locale->text('Database').qq|</th>
+ </tr>
+ <input type=hidden name=dbdriver value=$form->{dbdriver}>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right>|.$locale->text('Host').qq|</th>
+ <td><input name=dbhost size=25 value=$form->{dbhost}></td>
+ <th align=right>|.$locale->text('Port').qq|</th>
+ <td><input name=dbport size=5 value=$form->{dbport}></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('User').qq|</th>
+ <td><input name=dbuser size=10 value=$form->{dbuser}></td>
+ <th align=right>|.$locale->text('Password').qq|</th>
+ <td><input type=password name=dbpasswd size=10></td>
+ </tr>
+ <tr>
+
+ <th align=right>$form->{connectstring}</th>
+ <td colspan=3><input name=dbdefault size=10 value=$form->{dbdefault}></td>
+
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+
+<input name=callback type=hidden value="$form->{script}?action=list_users&path=$form->{path}&sessionid=$form->{sessionid}">
+<input type=hidden name=path value=$form->{path}>
+<input type=hidden name=sessionid value=$form->{sessionid}>
+
+<br>
+
+<input type=submit class=submit name=action value="|.$locale->text('Create Dataset').qq|">
+<input type=submit class=submit name=action value="|.$locale->text('Update Dataset').qq|">
+<input type=submit class=submit name=action value="|.$locale->text('Delete Dataset').qq|">
+
+</form>
+
+ </td>
+ </tr>
+</table>
+
+<p>|.$locale->text('This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!')
+
+.qq|
+</body>
+</html>
+|;
+
+}
+
+
+sub continue {
+
+ &{ $form->{nextsub} };
+
+}
+
+
+sub update_dataset {
+
+ %needsupdate = User->dbneedsupdate(\%$form);
+
+ $form->{title} = "LedgerSMB ".$locale->text('Accounting')." ".$locale->text('Database Administration')." / ".$locale->text('Update Dataset');
+
+ $form->{login} = "root login";
+ $form->header;
+
+ print qq|
+<body class=admin>
+
+
+<center>
+<h2>$form->{title}</h2>
+|;
+
+
+ foreach $key (sort keys %needsupdate) {
+ if ($needsupdate{$key} ne $form->{dbversion}) {
+ $upd .= qq|<input name="db$key" class=checkbox type=checkbox value=1 checked> $key\n|;
+ $form->{dbupdate} .= "db$key ";
+ }
+ }
+
+ chop $form->{dbupdate};
+
+
+ if ($form->{dbupdate}) {
+
+ print qq|
+<table width=100%>
+<form method=post action=$form->{script}>
+
+<input type=hidden name=dbdriver value=$form->{dbdriver}>
+<input type=hidden name=dbhost value=$form->{dbhost}>
+<input type=hidden name=dbport value=$form->{dbport}>
+<input type=hidden name=dbuser value=$form->{dbuser}>
+<input type=hidden name=dbpasswd value=$form->{dbpasswd}>
+<input type=hidden name=dbdefault value=$form->{dbdefault}>
+
+<tr class=listheading>
+ <th>|.$locale->text('The following Datasets need to be updated').qq|</th>
+</tr>
+<tr>
+<td>
+
+$upd
+
+</td>
+</tr>
+<tr>
+<td>
+
+<input name=dbupdate type=hidden value="$form->{dbupdate}">
+
+<input name=callback type=hidden value="$form->{script}?action=list_users&path=$form->{path}&sessionid=$form->{sessionid}">
+
+<input type=hidden name=path value=$form->{path}>
+<input type=hidden name=sessionid value=$form->{sessionid}>
+
+<input type=hidden name=nextsub value=dbupdate>
+
+<hr size=3 noshade>
+
+<br>
+<input type=submit class=submit name=action value="|.$locale->text('Continue').qq|">
+
+</td></tr>
+</table>
+</form>
+|;
+
+ } else {
+
+ print $locale->text('DBA')." : $form->{dbuser} : " .$locale->text('All Datasets up to date!');
+
+ }
+
+ print qq|
+
+</body>
+</html>
+|;
+
+}
+
+
+sub dbupdate {
+
+ User->dbupdate(\%$form);
+
+ $form->redirect($locale->text('Dataset updated!'));
+
+}
+
+
+sub create_dataset {
+
+ @dbsources = sort User->dbsources(\%$form);
+
+ opendir SQLDIR, "sql/." or $form->error($!);
+ foreach $item (sort grep /-chart\.sql/, readdir SQLDIR) {
+ next if ($item eq 'Default-chart.sql');
+ $item =~ s/-chart\.sql//;
+ push @charts, qq|<input name=chart class=radio type=radio value="$item">$item|;
+ }
+ closedir SQLDIR;
+
+ # add Default at beginning
+ unshift @charts, qq|<input name=chart class=radio type=radio value="Default" checked>Default|;
+
+ $selectencoding = qq|<option>
+ <option value=SQL_ASCII>ASCII
+ <option value=EUC_JP>Japanese EUC
+ <option value=EUC_CN>Chinese EUC
+ <option value=EUC_KR>Korean EUC
+ <option value=JOHAB>Korean EUC (Hangle base)
+ <option value=EUC_TW>Taiwan EUC
+ <option value=UNICODE>Unicode (UTF-8)
+ <option value=MULE_INTERNAL>Mule internal type
+ <option value=LATIN1>ISO 8859-1/ECMA 94 (Latin alphabet no. 1)
+ <option value=LATIN2>ISO 8859-2/ECMA 94 (Latin alphabet no. 2)
+ <option value=LATIN3>ISO 8859-3/ECMA 94 (Latin alphabet no. 3)
+ <option value=LATIN4>ISO 8859-4/ECMA 94 (Latin alphabet no. 4)
+ <option value=LATIN5>ISO 8859-9/ECMA 128 (Latin alphabet no. 5)
+ <option value=LATIN6>ISO 8859-10/ECMA 144 (Latin alphabet no. 6)
+ <option value=LATIN7>ISO 8859-13 (Latin alphabet no. 7)
+ <option value=LATIN8>ISO 8859-14 (Latin alphabet no. 8)
+ <option value=LATIN9>ISO 8859-15 (Latin alphabet no. 9)
+ <option value=LATIN10>ISO 8859-16/ASRO SR 14111 (Latin alphabet no. 10)
+ <option value=ISO_8859_5>ISO 8859-5/ECMA 113 (Latin/Cyrillic)
+ <option value=ISO_8859_6>ISO 8859-6/ECMA 114 (Latin/Arabic)
+ <option value=ISO_8859_7>ISO 8859-7/ECMA 118 (Latin/Greek)
+ <option value=ISO_8859_8>ISO 8859-8/ECMA 121 (Latin/Hebrew)
+ <option value=KOI8>KOI8-R(U)
+ <option value=WIN>Windows CP1251
+ <option value=ALT>Windows CP866
+ <option value=WIN1256>Windows CP1256 (Arabic)
+ <option value=TCVN>Windows CP1258 (Vietnamese)
+ <option value=WIN874>Windows CP874 (Thai)
+ |;
+
+ $form->{title} = "LedgerSMB ".$locale->text('Accounting')." ".$locale->text('Database Administration')." / ".$locale->text('Create Dataset');
+
+ $form->{login} = "root login";
+ $form->header;
+
+ print qq|
+<body class=admin>
+
+
+<center>
+<h2>$form->{title}</h2>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr class=listheading>
+ <th colspan=2>&nbsp;</th>
+ </tr>
+
+ <tr>
+
+ <th align=right nowrap>|.$locale->text('Existing Datasets').qq|</th>
+ <td>
+|;
+
+ for (@dbsources) { print "[&nbsp;$_&nbsp;] " }
+
+ print qq|
+ </td>
+ </tr>
+
+ <tr>
+
+ <th align=right nowrap>|.$locale->text('Create Dataset').qq|</th>
+ <td><input name=db></td>
+
+ </tr>
+
+ <tr>
+
+ <th align=right nowrap>|.$locale->text('Multibyte Encoding').qq|</th>
+ <td><select name=encoding>$selectencoding</select></td>
+
+ </tr>
+
+ <tr>
+
+ <th align=right nowrap>|.$locale->text('Create Chart of Accounts').qq|</th>
+ <td>
+ <table>
+|;
+
+ while (@charts) {
+ print qq|
+ <tr>
+|;
+
+ for (0 .. 2) { print "<td>$charts[$_]</td>\n" }
+
+ print qq|
+ </tr>
+|;
+
+ splice @charts, 0, 3;
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td colspan=2>
+ <hr size=3 noshade>
+ </td>
+ </tr>
+</table>
+|;
+
+ $form->hide_form(qw(dbdriver dbuser dbhost dbport dbpasswd dbdefault path sessionid));
+
+ print qq|
+
+<input name=callback type=hidden value="$form->{script}?action=list_users&path=$form->{path}&sessionid=$form->{sessionid}">
+<input type=hidden name=nextsub value=dbcreate>
+
+<br>
+<input type=submit class=submit name=action value="|.$locale->text('Continue').qq|">
+
+
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub dbcreate {
+
+ $form->isblank("db", $locale->text('Dataset missing!'));
+
+ User->dbcreate(\%$form);
+
+ $form->{title} = "LedgerSMB ".$locale->text('Accounting')." ".$locale->text('Database Administration')." / ".$locale->text('Create Dataset');
+
+ $form->{login} = "root login";
+ $form->header;
+
+ print qq|
+<body class=admin>
+
+
+<center>
+<h2>$form->{title}</h2>
+
+<form method=post action=$form->{script}>|
+
+.$locale->text('Dataset')." $form->{db} ".$locale->text('successfully created!')
+
+.qq|
+
+<input type=hidden name=path value="$form->{path}">
+<input type=hidden name=sessionid value=$form->{sessionid}>
+
+<input type=hidden name=nextsub value=list_users>
+
+<p><input type=submit class=submit name=action value="|.$locale->text('Continue').qq|">
+</form>
+
+
+</body>
+</html>
+|;
+
+}
+
+
+sub delete_dataset {
+
+ if (@dbsources = User->dbsources_unused(\%$form, $memberfile)) {
+ foreach $item (sort @dbsources) {
+ $dbsources .= qq|<input name=db class=radio type=radio value=$item>&nbsp;$item |;
+ }
+ } else {
+ $form->error($locale->text('Nothing to delete!'));
+ }
+
+ $form->{title} = "LedgerSMB ".$locale->text('Accounting')." ".$locale->text('Database Administration')." / ".$locale->text('Delete Dataset');
+
+ $form->{login} = "root login";
+ $form->header;
+
+ print qq|
+<body class=admin>
+
+<h2>$form->{title}</h2>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr class=listheading>
+ <th>|.$locale->text('The following Datasets are not in use and can be deleted').qq|</th>
+ </tr>
+
+ <tr>
+ <td>
+ $dbsources
+ </td>
+ </tr>
+
+ <tr><td>
+<p>
+<input type=hidden name=dbdriver value=$form->{dbdriver}>
+<input type=hidden name=dbuser value=$form->{dbuser}>
+<input type=hidden name=dbhost value=$form->{dbhost}>
+<input type=hidden name=dbport value=$form->{dbport}>
+<input type=hidden name=dbpasswd value=$form->{dbpasswd}>
+<input type=hidden name=dbdefault value=$form->{dbdefault}>
+
+<input name=callback type=hidden value="$form->{script}?action=list_users&path=$form->{path}&sessionid=$form->{sessionid}">
+
+<input type=hidden name=path value="$form->{path}">
+<input type=hidden name=sessionid value=$form->{sessionid}>
+
+<input type=hidden name=nextsub value=dbdelete>
+
+<hr size=3 noshade>
+
+<br>
+<input type=submit class=submit name=action value="|.$locale->text('Continue').qq|">
+
+ </td></tr>
+</table>
+
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub dbdelete {
+
+ if (!$form->{db}) {
+ $form->error($locale->text('No Dataset selected!'));
+ }
+
+ User->dbdelete(\%$form);
+
+ $form->{title} = "LedgerSMB ".$locale->text('Accounting')." ".$locale->text('Database Administration')." / ".$locale->text('Delete Dataset');
+
+ $form->{login} = "root login";
+ $form->header;
+
+ print qq|
+<body class=admin>
+
+
+<center>
+<h2>$form->{title}</h2>
+
+<form method=post action=$form->{script}>
+
+$form->{db} |.$locale->text('successfully deleted!')
+
+.qq|
+
+<input type=hidden name=path value="$form->{path}">
+<input type=hidden name=sessionid value=$form->{sessionid}>
+
+<input type=hidden name=nextsub value=list_users>
+
+<p><input type=submit class=submit name=action value="|.$locale->text('Continue').qq|">
+</form>
+
+
+</body>
+</html>
+|;
+
+}
+
+
+sub unlock_system {
+
+ unlink "$userspath/nologin";
+
+ $form->{callback} = "$form->{script}?action=list_users&path=$form->{path}&sessionid=$form->{sessionid}";
+
+ $form->redirect($locale->text('Lockfile removed!'));
+
+}
+
+
+sub lock_system {
+
+ open(FH, ">$userspath/nologin") or $form->error($locale->text('Cannot create Lock!'));
+ close(FH);
+
+ $form->{callback} = "$form->{script}?action=list_users&path=$form->{path}&sessionid=$form->{sessionid}";
+
+ $form->redirect($locale->text('Lockfile created!'));
+
+}
+
+
+
diff --git a/bin/mozilla/am.pl b/bin/mozilla/am.pl
new file mode 100755
index 00000000..e5601954
--- /dev/null
+++ b/bin/mozilla/am.pl
@@ -0,0 +1,3260 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has NOT undergone whitespace cleanup.
+#
+#======================================================================
+#
+# administration
+#
+#======================================================================
+
+
+use LedgerSMB::AM;
+use LedgerSMB::CA;
+use LedgerSMB::Form;
+use LedgerSMB::User;
+use LedgerSMB::RP;
+use LedgerSMB::GL;
+
+
+1;
+# end of main
+
+
+
+sub add { &{ "add_$form->{type}" } };
+sub edit { &{ "edit_$form->{type}" } };
+sub save { &{ "save_$form->{type}" } };
+sub delete { &{ "delete_$form->{type}" } };
+
+
+sub save_as_new {
+
+ delete $form->{id};
+
+ &save;
+
+}
+
+
+sub add_account {
+
+ $form->{title} = "Add";
+ $form->{charttype} = "A";
+
+ $form->{callback} = "$form->{script}?action=list_account&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}" unless $form->{callback};
+
+ &account_header;
+ &form_footer;
+
+}
+
+
+sub edit_account {
+
+ $form->{title} = "Edit";
+
+ $form->{accno} =~ s/\\'/'/g;
+ $form->{accno} =~ s/\\\\/\\/g;
+
+ AM->get_account(\%myconfig, \%$form);
+
+ foreach my $item (split(/:/, $form->{link})) {
+ $form->{$item} = "checked";
+ }
+
+ &account_header;
+ &form_footer;
+
+}
+
+
+sub account_header {
+
+ $form->{title} = $locale->text("$form->{title} Account");
+
+ $checked{$form->{charttype}} = "checked";
+ $checked{contra} = "checked" if $form->{contra};
+ $checked{"$form->{category}_"} = "checked";
+
+ for (qw(accno description)) { $form->{$_} = $form->quote($form->{$_}) }
+
+# this is for our parser only!
+# type=submit $locale->text('Add Account')
+# type=submit $locale->text('Edit Account')
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=id value=$form->{id}>
+<input type=hidden name=type value=account>
+
+<input type=hidden name=inventory_accno_id value=$form->{inventory_accno_id}>
+<input type=hidden name=income_accno_id value=$form->{income_accno_id}>
+<input type=hidden name=expense_accno_id value=$form->{expense_accno_id}>
+<input type=hidden name=fxgain_accno_id values=$form->{fxgain_accno_id}>
+<input type=hidden name=fxloss_accno_id values=$form->{fxloss_accno_id}>
+
+<table border=0 width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align="right">|.$locale->text('Account Number').qq|</th>
+ <td><input name=accno size=20 value="$form->{accno}"></td>
+ </tr>
+ <tr>
+ <th align="right">|.$locale->text('Description').qq|</th>
+ <td><input name=description size=40 value="$form->{description}"></td>
+ </tr>
+ <tr>
+ <th align="right">|.$locale->text('Account Type').qq|</th>
+ <td>
+ <table>
+ <tr valign=top>
+ <td><input name=category type=radio class=radio value=A $checked{A_}>&nbsp;|.$locale->text('Asset').qq|\n<br>
+ <input name=category type=radio class=radio value=L $checked{L_}>&nbsp;|.$locale->text('Liability').qq|\n<br>
+ <input name=category type=radio class=radio value=Q $checked{Q_}>&nbsp;|.$locale->text('Equity').qq|\n<br>
+ <input name=category type=radio class=radio value=I $checked{I_}>&nbsp;|.$locale->text('Income').qq|\n<br>
+ <input name=category type=radio class=radio value=E $checked{E_}>&nbsp;|.$locale->text('Expense')
+ .qq|</td>
+ <td>
+ <input name=contra class=checkbox type=checkbox value=1 $checked{contra}>&nbsp;|.$locale->text('Contra').qq|
+ </td>
+ <td>
+ <input name=charttype type=radio class=radio value="H" $checked{H}>&nbsp;|.$locale->text('Heading').qq|<br>
+ <input name=charttype type=radio class=radio value="A" $checked{A}>&nbsp;|.$locale->text('Account')
+ .qq|</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+|;
+
+
+if ($form->{charttype} eq "A") {
+ print qq|
+ <tr>
+ <td colspan=2>
+ <table>
+ <tr>
+ <th align=left>|.$locale->text('Is this a summary account to record').qq|</th>
+ <td>
+ <input name=AR class=checkbox type=checkbox value=AR $form->{AR}>&nbsp;|.$locale->text('AR')
+ .qq|&nbsp;<input name=AP class=checkbox type=checkbox value=AP $form->{AP}>&nbsp;|.$locale->text('AP')
+ .qq|&nbsp;<input name=IC class=checkbox type=checkbox value=IC $form->{IC}>&nbsp;|.$locale->text('Inventory')
+ .qq|</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <th colspan=2>|.$locale->text('Include in drop-down menus').qq|</th>
+ </tr>
+ <tr valign=top>
+ <td colspan=2>
+ <table width=100%>
+ <tr>
+ <th align=left>|.$locale->text('Receivables').qq|</th>
+ <th align=left>|.$locale->text('Payables').qq|</th>
+ <th align=left>|.$locale->text('Tracking Items').qq|</th>
+ <th align=left>|.$locale->text('Non-tracking Items').qq|</th>
+ </tr>
+ <tr>
+ <td>
+ <input name=AR_amount class=checkbox type=checkbox value=AR_amount $form->{AR_amount}>&nbsp;|.$locale->text('Income').qq|\n<br>
+ <input name=AR_paid class=checkbox type=checkbox value=AR_paid $form->{AR_paid}>&nbsp;|.$locale->text('Payment').qq|\n<br>
+ <input name=AR_tax class=checkbox type=checkbox value=AR_tax $form->{AR_tax}>&nbsp;|.$locale->text('Tax') .qq|
+ </td>
+ <td>
+ <input name=AP_amount class=checkbox type=checkbox value=AP_amount $form->{AP_amount}>&nbsp;|.$locale->text('Expense/Asset').qq|\n<br>
+ <input name=AP_paid class=checkbox type=checkbox value=AP_paid $form->{AP_paid}>&nbsp;|.$locale->text('Payment').qq|\n<br>
+ <input name=AP_tax class=checkbox type=checkbox value=AP_tax $form->{AP_tax}>&nbsp;|.$locale->text('Tax') .qq|
+ </td>
+ <td>
+ <input name=IC_sale class=checkbox type=checkbox value=IC_sale $form->{IC_sale}>&nbsp;|.$locale->text('Income').qq|\n<br>
+ <input name=IC_cogs class=checkbox type=checkbox value=IC_cogs $form->{IC_cogs}>&nbsp;|.$locale->text('COGS').qq|\n<br>
+ <input name=IC_taxpart class=checkbox type=checkbox value=IC_taxpart $form->{IC_taxpart}>&nbsp;|.$locale->text('Tax') .qq|
+ </td>
+ <td>
+ <input name=IC_income class=checkbox type=checkbox value=IC_income $form->{IC_income}>&nbsp;|.$locale->text('Income').qq|\n<br>
+ <input name=IC_expense class=checkbox type=checkbox value=IC_expense $form->{IC_expense}>&nbsp;|.$locale->text('Expense').qq|\n<br>
+ <input name=IC_taxservice class=checkbox type=checkbox value=IC_taxservice $form->{IC_taxservice}>&nbsp;|.$locale->text('Tax') .qq|
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ </tr>
+|;
+}
+
+print qq|
+ <tr>
+ <th align="right">|.$locale->text('GIFI').qq|</th>
+ <td><input name=gifi_accno size=9 value=$form->{gifi_accno}></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+}
+
+
+sub form_footer {
+
+ $form->hide_form(qw(callback path login sessionid));
+
+# type=submit $locale->text('Save')
+# type=submit $locale->text('Save as new')
+# type=submit $locale->text('Delete')
+
+ %button = ();
+
+ if ($form->{id}) {
+ $button{'Save'} = { ndx => 3, key => 'S', value => $locale->text('Save') };
+ $button{'Save as new'} = { ndx => 7, key => 'N', value => $locale->text('Save as new') };
+
+ if ($form->{orphaned}) {
+ $button{'Delete'} = { ndx => 16, key => 'D', value => $locale->text('Delete') };
+ }
+ } else {
+ $button{'Save'} = { ndx => 3, key => 'S', value => $locale->text('Save') };
+ }
+
+ for (sort { $button{$a}->{ndx} <=> $button{$b}->{ndx} } keys %button) { $form->print_button(\%button, $_) }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub save_account {
+
+ $form->isblank("accno", $locale->text('Account Number missing!'));
+ $form->isblank("category", $locale->text('Account Type missing!'));
+
+ # check for conflicting accounts
+ if ($form->{AR} || $form->{AP} || $form->{IC}) {
+ $a = "";
+ for (qw(AR AP IC)) { $a .= $form->{$_} }
+ $form->error($locale->text('Cannot set account for more than one of AR, AP or IC')) if length $a > 2;
+
+ for (qw(AR_amount AR_tax AR_paid AP_amount AP_tax AP_paid IC_taxpart IC_taxservice IC_sale IC_cogs IC_income IC_expense)) { $form->error("$form->{AR}$form->{AP}$form->{IC} ". $locale->text('account cannot be set to any other type of account')) if $form->{$_} }
+ }
+
+ foreach $item ("AR", "AP") {
+ $i = 0;
+ for ("${item}_amount", "${item}_paid", "${item}_tax") { $i++ if $form->{$_} }
+ $form->error($locale->text('Cannot set multiple options for')." $item") if $i > 1;
+ }
+
+ if (AM->save_account(\%myconfig, \%$form)) {
+ $form->redirect($locale->text('Account saved!'));
+ } else {
+ $form->error($locale->text('Cannot save account!'));
+ }
+
+}
+
+
+sub list_account {
+
+ CA->all_accounts(\%myconfig, \%$form);
+
+ $form->{title} = $locale->text('Chart of Accounts');
+
+ # construct callback
+ $callback = "$form->{script}?action=list_account&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}";
+
+ @column_index = qw(accno gifi_accno description debit credit link);
+
+ $column_header{accno} = qq|<th class=listtop>|.$locale->text('Account').qq|</a></th>|;
+ $column_header{gifi_accno} = qq|<th class=listtop>|.$locale->text('GIFI').qq|</a></th>|;
+ $column_header{description} = qq|<th class=listtop>|.$locale->text('Description').qq|</a></th>|;
+ $column_header{debit} = qq|<th class=listtop>|.$locale->text('Debit').qq|</a></th>|;
+ $column_header{credit} = qq|<th class=listtop>|.$locale->text('Credit').qq|</a></th>|;
+ $column_header{link} = qq|<th class=listtop>|.$locale->text('Link').qq|</a></th>|;
+
+
+ $form->header;
+ $colspan = $#column_index + 1;
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop colspan=$colspan>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr class="listheading">
+|;
+
+ for (@column_index) { print "$column_header{$_}\n" }
+
+ print qq|
+</tr>
+|;
+
+ # escape callback
+ $callback = $form->escape($callback);
+
+ foreach $ca (@{ $form->{CA} }) {
+
+ $ca->{debit} = "&nbsp;";
+ $ca->{credit} = "&nbsp;";
+
+ if ($ca->{amount} > 0) {
+ $ca->{credit} = $form->format_amount(\%myconfig, $ca->{amount}, 2, "&nbsp;");
+ }
+ if ($ca->{amount} < 0) {
+ $ca->{debit} = $form->format_amount(\%myconfig, -$ca->{amount}, 2, "&nbsp;");
+ }
+
+ $ca->{link} =~ s/:/<br>/og;
+
+ $gifi_accno = $form->escape($ca->{gifi_accno});
+
+ if ($ca->{charttype} eq "H") {
+ print qq|<tr class="listheading">|;
+
+ $column_data{accno} = qq|<th><a class="listheading" href="$form->{script}?action=edit_account&id=$ca->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback">$ca->{accno}</a></th>|;
+ $column_data{gifi_accno} = qq|<th class="listheading"><a href="$form->{script}?action=edit_gifi&accno=$gifi_accno&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback">$ca->{gifi_accno}</a>&nbsp;</th>|;
+ $column_data{description} = qq|<th class="listheading">$ca->{description}&nbsp;</th>|;
+ $column_data{debit} = qq|<th>&nbsp;</th>|;
+ $column_data{credit} = qq| <th>&nbsp;</th>|;
+ $column_data{link} = qq|<th>&nbsp;</th>|;
+
+ } else {
+ $i++; $i %= 2;
+ print qq|
+<tr valign=top class="listrow$i">|;
+ $column_data{accno} = qq|<td><a href="$form->{script}?action=edit_account&id=$ca->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback">$ca->{accno}</a></td>|;
+ $column_data{gifi_accno} = qq|<td><a href="$form->{script}?action=edit_gifi&accno=$gifi_accno&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback">$ca->{gifi_accno}</a>&nbsp;</td>|;
+ $column_data{description} = qq|<td>$ca->{description}&nbsp;</td>|;
+ $column_data{debit} = qq|<td align="right">$ca->{debit}</td>|;
+ $column_data{credit} = qq|<td align="right">$ca->{credit}</td>|;
+ $column_data{link} = qq|<td>$ca->{link}&nbsp;</td>|;
+
+ }
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print "</tr>\n";
+ }
+
+ print qq|
+ <tr><td colspan="$colspan"><hr size="3" noshade /></td></tr>
+</table>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub delete_account {
+
+ $form->{title} = $locale->text('Delete Account');
+
+ foreach $id (qw(inventory_accno_id income_accno_id expense_accno_id fxgain_accno_id fxloss_accno_id)) {
+ if ($form->{id} == $form->{$id}) {
+ $form->error($locale->text('Cannot delete default account!'));
+ }
+ }
+
+ if (AM->delete_account(\%myconfig, \%$form)) {
+ $form->redirect($locale->text('Account deleted!'));
+ } else {
+ $form->error($locale->text('Cannot delete account!'));
+ }
+
+}
+
+
+sub list_gifi {
+
+ @{ $form->{fields} } = qw(accno description);
+ $form->{table} = "gifi";
+
+ AM->gifi_accounts(\%myconfig, \%$form);
+
+ $form->{title} = $locale->text('GIFI');
+
+ # construct callback
+ $callback = "$form->{script}?action=list_gifi&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}";
+
+ @column_index = qw(accno description);
+
+ $column_header{accno} = qq|<th class="listheading">|.$locale->text('GIFI').qq|</a></th>|;
+ $column_header{description} = qq|<th class="listheading">|.$locale->text('Description').qq|</a></th>|;
+
+
+ $form->header;
+ $colspan = $#column_index + 1;
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop colspan=$colspan>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr class="listheading">
+|;
+
+ for (@column_index) { print "$column_header{$_}\n" }
+
+ print qq|
+</tr>
+|;
+
+ # escape callback
+ $callback = $form->escape($callback);
+
+ foreach $ca (@{ $form->{ALL} }) {
+
+ $i++; $i %= 2;
+
+ print qq|
+<tr valign=top class=listrow$i>|;
+
+ $accno = $form->escape($ca->{accno});
+ $column_data{accno} = qq|<td><a href=$form->{script}?action=edit_gifi&coa=1&accno=$accno&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ca->{accno}</td>|;
+ $column_data{description} = qq|<td>$ca->{description}&nbsp;</td>|;
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print "</tr>\n";
+ }
+
+ print qq|
+ <tr>
+ <td colspan=$colspan><hr size=3 noshade></td>
+ </tr>
+</table>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub add_gifi {
+ $form->{title} = "Add";
+
+ # construct callback
+ $form->{callback} = "$form->{script}?action=list_gifi&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}";
+
+ $form->{coa} = 1;
+
+ &gifi_header;
+ &gifi_footer;
+
+}
+
+
+sub edit_gifi {
+
+ $form->{title} = "Edit";
+
+ AM->get_gifi(\%myconfig, \%$form);
+
+ $form->error($locale->text('Account does not exist!')) unless $form->{accno};
+
+ &gifi_header;
+ &gifi_footer;
+
+}
+
+
+sub gifi_header {
+
+ $form->{title} = $locale->text("$form->{title} GIFI");
+
+# $locale->text('Add GIFI')
+# $locale->text('Edit GIFI')
+
+ for (qw(accno description)) { $form->{$_} = $form->quote($form->{$_}) }
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=id value="$form->{accno}">
+<input type=hidden name=type value=gifi>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align="right">|.$locale->text('GIFI').qq|</th>
+ <td><input name=accno size=20 value="$form->{accno}"></td>
+ </tr>
+ <tr>
+ <th align="right">|.$locale->text('Description').qq|</th>
+ <td><input name=description size=60 value="$form->{description}"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td colspan=2><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+}
+
+
+sub gifi_footer {
+
+ $form->hide_form(qw(callback path login sessionid));
+
+# type=submit $locale->text('Save')
+# type=submit $locale->text('Copy to COA')
+# type=submit $locale->text('Delete')
+
+ %button = ();
+
+ $button{'Save'} = { ndx => 3, key => 'S', value => $locale->text('Save') };
+
+ if ($form->{accno}) {
+ if ($form->{orphaned}) {
+ $button{'Delete'} = { ndx => 16, key => 'D', value => $locale->text('Delete') };
+ }
+ }
+
+ if ($form->{coa}) {
+ $button{'Copy to COA'} = { ndx => 7, key => 'C', value => $locale->text('Copy to COA') };
+ }
+
+ for (sort { $button{$a}->{ndx} <=> $button{$b}->{ndx} } keys %button) { $form->print_button(\%button, $_) }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub save_gifi {
+
+ $form->isblank("accno", $locale->text('GIFI missing!'));
+ AM->save_gifi(\%myconfig, \%$form);
+ $form->redirect($locale->text('GIFI saved!'));
+
+}
+
+
+sub copy_to_coa {
+
+ $form->isblank("accno", $locale->text('GIFI missing!'));
+
+ AM->save_gifi(\%myconfig, \%$form);
+
+ delete $form->{id};
+ $form->{gifi_accno} = $form->{accno};
+
+ $form->{title} = "Add";
+ $form->{charttype} = "A";
+
+ &account_header;
+ &form_footer;
+
+}
+
+
+sub delete_gifi {
+
+ AM->delete_gifi(\%myconfig, \%$form);
+ $form->redirect($locale->text('GIFI deleted!'));
+
+}
+
+
+sub add_department {
+
+ $form->{title} = "Add";
+ $form->{role} = "P";
+
+ $form->{callback} = "$form->{script}?action=add_department&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}" unless $form->{callback};
+
+ &department_header;
+ &form_footer;
+
+}
+
+
+sub edit_department {
+
+ $form->{title} = "Edit";
+
+ AM->get_department(\%myconfig, \%$form);
+
+ &department_header;
+ &form_footer;
+
+}
+
+
+sub list_department {
+
+ AM->departments(\%myconfig, \%$form);
+
+ $href = "$form->{script}?action=list_department&direction=$form->{direction}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}";
+
+ $form->sort_order();
+
+ $form->{callback} = "$form->{script}?action=list_department&direction=$form->{direction}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}";
+
+ $callback = $form->escape($form->{callback});
+
+ $form->{title} = $locale->text('Departments');
+
+ @column_index = qw(description cost profit);
+
+ $column_header{description} = qq|<th width=90%><a class="listheading" href=$href>|.$locale->text('Description').qq|</a></th>|;
+ $column_header{cost} = qq|<th class="listheading" nowrap>|.$locale->text('Cost Center').qq|</th>|;
+ $column_header{profit} = qq|<th class="listheading" nowrap>|.$locale->text('Profit Center').qq|</th>|;
+
+ $form->header;
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class="listheading">
+|;
+
+ for (@column_index) { print "$column_header{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ foreach $ref (@{ $form->{ALL} }) {
+
+ $i++; $i %= 2;
+
+ print qq|
+ <tr valign=top class=listrow$i>
+|;
+
+ $costcenter = ($ref->{role} eq "C") ? "*" : "&nbsp;";
+ $profitcenter = ($ref->{role} eq "P") ? "*" : "&nbsp;";
+
+ $column_data{description} = qq|<td><a href=$form->{script}?action=edit_department&id=$ref->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{description}</td>|;
+ $column_data{cost} = qq|<td align=center>$costcenter</td>|;
+ $column_data{profit} = qq|<td align=center>$profitcenter</td>|;
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+<form method=post action=$form->{script}>
+|;
+
+ $form->{type} = "department";
+
+ $form->hide_form(qw(type callback path login sessionid));
+
+ print qq|
+<input class=submit type=submit name=action value="|.$locale->text('Add Department').qq|">|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+ </body>
+ </html>
+|;
+
+}
+
+
+sub department_header {
+
+ $form->{title} = $locale->text("$form->{title} Department");
+
+# $locale->text('Add Department')
+# $locale->text('Edit Department')
+
+ $form->{description} = $form->quote($form->{description});
+
+ if (($rows = $form->numtextrows($form->{description}, 60)) > 1) {
+ $description = qq|<textarea name="description" rows=$rows cols=60 wrap=soft>$form->{description}</textarea>|;
+ } else {
+ $description = qq|<input name=description size=60 value="$form->{description}">|;
+ }
+
+ $costcenter = "checked" if $form->{role} eq "C";
+ $profitcenter = "checked" if $form->{role} eq "P";
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=id value=$form->{id}>
+<input type=hidden name=type value=department>
+
+<table width=100%>
+ <tr>
+ <th class=listtop colspan=2>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <th align="right">|.$locale->text('Description').qq|</th>
+ <td>$description</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td><input type=radio style=radio name=role value="C" $costcenter> |.$locale->text('Cost Center').qq|
+ <input type=radio style=radio name=role value="P" $profitcenter> |.$locale->text('Profit Center').qq|
+ </td>
+ <tr>
+ <td colspan=2><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+}
+
+
+sub save_department {
+
+ $form->isblank("description", $locale->text('Description missing!'));
+ AM->save_department(\%myconfig, \%$form);
+ $form->redirect($locale->text('Department saved!'));
+
+}
+
+
+sub delete_department {
+
+ AM->delete_department(\%myconfig, \%$form);
+ $form->redirect($locale->text('Department deleted!'));
+
+}
+
+
+sub add_business {
+
+ $form->{title} = "Add";
+
+ $form->{callback} = "$form->{script}?action=add_business&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}" unless $form->{callback};
+
+ &business_header;
+ &form_footer;
+
+}
+
+
+sub edit_business {
+
+ $form->{title} = "Edit";
+
+ AM->get_business(\%myconfig, \%$form);
+
+ &business_header;
+
+ $form->{orphaned} = 1;
+ &form_footer;
+
+}
+
+
+sub list_business {
+
+ AM->business(\%myconfig, \%$form);
+
+ $href = "$form->{script}?action=list_business&direction=$form->{direction}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}";
+
+ $form->sort_order();
+
+ $form->{callback} = "$form->{script}?action=list_business&direction=$form->{direction}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}";
+
+ $callback = $form->escape($form->{callback});
+
+ $form->{title} = $locale->text('Type of Business');
+
+ @column_index = qw(description discount);
+
+ $column_header{description} = qq|<th width=90%><a class="listheading" href=$href>|.$locale->text('Description').qq|</a></th>|;
+ $column_header{discount} = qq|<th class="listheading">|.$locale->text('Discount').qq| %</th>|;
+
+ $form->header;
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class="listheading">
+|;
+
+ for (@column_index) { print "$column_header{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ foreach $ref (@{ $form->{ALL} }) {
+
+ $i++; $i %= 2;
+
+ print qq|
+ <tr valign=top class=listrow$i>
+|;
+
+ $discount = $form->format_amount(\%myconfig, $ref->{discount} * 100, 2, "&nbsp");
+
+ $column_data{description} = qq|<td><a href=$form->{script}?action=edit_business&id=$ref->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{description}</td>|;
+ $column_data{discount} = qq|<td align="right">$discount</td>|;
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+<form method=post action=$form->{script}>
+|;
+
+ $form->{type} = "business";
+
+ $form->hide_form(qw(type callback path login sessionid));
+
+ print qq|
+<input class=submit type=submit name=action value="|.$locale->text('Add Business').qq|">|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+ </form>
+
+ </body>
+ </html>
+|;
+
+}
+
+
+sub business_header {
+
+ $form->{title} = $locale->text("$form->{title} Business");
+
+# $locale->text('Add Business')
+# $locale->text('Edit Business')
+
+ $form->{description} = $form->quote($form->{description});
+ $form->{discount} = $form->format_amount(\%myconfig, $form->{discount} * 100);
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=id value=$form->{id}>
+<input type=hidden name=type value=business>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align="right">|.$locale->text('Type of Business').qq|</th>
+ <td><input name=description size=30 value="$form->{description}"></td>
+ <tr>
+ <tr>
+ <th align="right">|.$locale->text('Discount').qq| %</th>
+ <td><input name=discount size=5 value=$form->{discount}></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+}
+
+
+sub save_business {
+
+ $form->isblank("description", $locale->text('Description missing!'));
+ AM->save_business(\%myconfig, \%$form);
+ $form->redirect($locale->text('Business saved!'));
+
+}
+
+
+sub delete_business {
+
+ AM->delete_business(\%myconfig, \%$form);
+ $form->redirect($locale->text('Business deleted!'));
+
+}
+
+
+
+sub add_sic {
+
+ $form->{title} = "Add";
+
+ $form->{callback} = "$form->{script}?action=add_sic&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}" unless $form->{callback};
+
+ &sic_header;
+ &form_footer;
+
+}
+
+
+sub edit_sic {
+
+ $form->{title} = "Edit";
+
+ $form->{code} =~ s/\\'/'/g;
+ $form->{code} =~ s/\\\\/\\/g;
+
+ AM->get_sic(\%myconfig, \%$form);
+ $form->{id} = $form->{code};
+
+ &sic_header;
+
+ $form->{orphaned} = 1;
+ &form_footer;
+
+}
+
+
+sub list_sic {
+
+ AM->sic(\%myconfig, \%$form);
+
+ $href = "$form->{script}?action=list_sic&direction=$form->{direction}&oldsort=$form->{oldsort}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}";
+
+ $form->sort_order();
+
+ $form->{callback} = "$form->{script}?action=list_sic&direction=$form->{direction}&oldsort=$form->{oldsort}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}";
+
+ $callback = $form->escape($form->{callback});
+
+ $form->{title} = $locale->text('Standard Industrial Codes');
+
+ @column_index = $form->sort_columns(qw(code description));
+
+ $column_header{code} = qq|<th><a class="listheading" href=$href&sort=code>|.$locale->text('Code').qq|</a></th>|;
+ $column_header{description} = qq|<th><a class="listheading" href=$href&sort=description>|.$locale->text('Description').qq|</a></th>|;
+
+ $form->header;
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class="listheading">
+|;
+
+ for (@column_index) { print "$column_header{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ foreach $ref (@{ $form->{ALL} }) {
+
+ $i++; $i %= 2;
+
+ if ($ref->{sictype} eq 'H') {
+ print qq|
+ <tr valign=top class="listheading">
+|;
+ $column_data{code} = qq|<th><a href=$form->{script}?action=edit_sic&code=$ref->{code}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{code}</th>|;
+ $column_data{description} = qq|<th>$ref->{description}</th>|;
+
+ } else {
+ print qq|
+ <tr valign=top class=listrow$i>
+|;
+
+ $column_data{code} = qq|<td><a href=$form->{script}?action=edit_sic&code=$ref->{code}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{code}</td>|;
+ $column_data{description} = qq|<td>$ref->{description}</td>|;
+
+ }
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+<form method=post action=$form->{script}>
+|;
+
+ $form->{type} = "sic";
+
+ $form->hide_form(qw(type callback path login sessionid));
+
+ print qq|
+<input class=submit type=submit name=action value="|.$locale->text('Add SIC').qq|">|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+ </body>
+ </html>
+|;
+
+}
+
+
+sub sic_header {
+
+ $form->{title} = $locale->text("$form->{title} SIC");
+
+# $locale->text('Add SIC')
+# $locale->text('Edit SIC')
+
+ for (qw(code description)) { $form->{$_} = $form->quote($form->{$_}) }
+
+ $checked = ($form->{sictype} eq 'H') ? "checked" : "";
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=type value=sic>
+<input type=hidden name=id value="$form->{code}">
+
+<table width=100%>
+ <tr>
+ <th class=listtop colspan=2>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <th align="right">|.$locale->text('Code').qq|</th>
+ <td><input name=code size=10 value="$form->{code}"></td>
+ <tr>
+ <tr>
+ <td></td>
+ <th align=left><input name=sictype class=checkbox type=checkbox value="H" $checked> |.$locale->text('Heading').qq|</th>
+ <tr>
+ <tr>
+ <th align="right">|.$locale->text('Description').qq|</th>
+ <td><input name=description size=60 value="$form->{description}"></td>
+ </tr>
+ <td colspan=2><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+}
+
+
+sub save_sic {
+
+ $form->isblank("code", $locale->text('Code missing!'));
+ $form->isblank("description", $locale->text('Description missing!'));
+ AM->save_sic(\%myconfig, \%$form);
+ $form->redirect($locale->text('SIC saved!'));
+
+}
+
+
+sub delete_sic {
+
+ AM->delete_sic(\%myconfig, \%$form);
+ $form->redirect($locale->text('SIC deleted!'));
+
+}
+
+
+sub add_language {
+
+ $form->{title} = "Add";
+
+ $form->{callback} = "$form->{script}?action=add_language&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}" unless $form->{callback};
+
+ &language_header;
+ &form_footer;
+
+}
+
+
+sub edit_language {
+
+ $form->{title} = "Edit";
+
+ $form->{code} =~ s/\\'/'/g;
+ $form->{code} =~ s/\\\\/\\/g;
+
+ AM->get_language(\%myconfig, \%$form);
+ $form->{id} = $form->{code};
+
+ &language_header;
+
+ $form->{orphaned} = 1;
+ &form_footer;
+
+}
+
+
+sub list_language {
+
+ AM->language(\%myconfig, \%$form);
+
+ $href = "$form->{script}?action=list_language&direction=$form->{direction}&oldsort=$form->{oldsort}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}";
+
+ $form->sort_order();
+
+ $form->{callback} = "$form->{script}?action=list_language&direction=$form->{direction}&oldsort=$form->{oldsort}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}";
+
+ $callback = $form->escape($form->{callback});
+
+ $form->{title} = $locale->text('Languages');
+
+ @column_index = $form->sort_columns(qw(code description));
+
+ $column_header{code} = qq|<th><a class="listheading" href=$href&sort=code>|.$locale->text('Code').qq|</a></th>|;
+ $column_header{description} = qq|<th><a class="listheading" href=$href&sort=description>|.$locale->text('Description').qq|</a></th>|;
+
+ $form->header;
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class="listheading">
+|;
+
+ for (@column_index) { print "$column_header{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ foreach $ref (@{ $form->{ALL} }) {
+
+ $i++; $i %= 2;
+
+ print qq|
+ <tr valign=top class=listrow$i>
+|;
+
+ $column_data{code} = qq|<td><a href=$form->{script}?action=edit_language&code=$ref->{code}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{code}</td>|;
+ $column_data{description} = qq|<td>$ref->{description}</td>|;
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+<form method=post action=$form->{script}>
+|;
+
+ $form->{type} = "language";
+
+ $form->hide_form(qw(type callback path login sessionid));
+
+ print qq|
+<input class=submit type=submit name=action value="|.$locale->text('Add Language').qq|">|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+ </body>
+ </html>
+|;
+
+}
+
+
+sub language_header {
+
+ $form->{title} = $locale->text("$form->{title} Language");
+
+# $locale->text('Add Language')
+# $locale->text('Edit Language')
+
+ for (qw(code description)) { $form->{$_} = $form->quote($form->{$_}) }
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=type value=language>
+<input type=hidden name=id value="$form->{code}">
+
+<table width=100%>
+ <tr>
+ <th class=listtop colspan=2>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <th align="right">|.$locale->text('Code').qq|</th>
+ <td><input name=code size=10 value="$form->{code}"></td>
+ <tr>
+ <tr>
+ <th align="right">|.$locale->text('Description').qq|</th>
+ <td><input name=description size=60 value="$form->{description}"></td>
+ </tr>
+ <td colspan=2><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+}
+
+
+sub save_language {
+
+ $form->isblank("code", $locale->text('Code missing!'));
+ $form->isblank("description", $locale->text('Description missing!'));
+
+ $form->{code} =~ s/(\.\.|\*)//g;
+
+ AM->save_language(\%myconfig, \%$form);
+
+ if (! -d "$myconfig{templates}/$form->{code}") {
+
+ umask(002);
+
+ if (mkdir "$myconfig{templates}/$form->{code}", oct("771")) {
+
+ umask(007);
+
+ opendir TEMPLATEDIR, "$myconfig{templates}" or $form->error("$myconfig{templates} : $!");
+ @templates = grep !/^(\.|\.\.)/, readdir TEMPLATEDIR;
+ closedir TEMPLATEDIR;
+
+ foreach $file (@templates) {
+ if (-f "$myconfig{templates}/$file") {
+ open(TEMP, "$myconfig{templates}/$file") or $form->error("$myconfig{templates}/$file : $!");
+
+ open(NEW, ">$myconfig{templates}/$form->{code}/$file") or $form->error("$myconfig{templates}/$form->{code}/$file : $!");
+
+ while ($line = <TEMP>) {
+ print NEW $line;
+ }
+ close(TEMP);
+ close(NEW);
+ }
+ }
+ } else {
+ $form->error("${templates}/$form->{code} : $!");
+ }
+ }
+
+ $form->redirect($locale->text('Language saved!'));
+
+}
+
+
+sub delete_language {
+
+ $form->{title} = $locale->text('Confirm!');
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+|;
+
+ for (qw(action nextsub)) { delete $form->{$_} }
+
+ $form->hide_form;
+
+ print qq|
+<h2 class=confirm>$form->{title}</h2>
+
+<h4>|.$locale->text('Deleting a language will also delete the templates for the language').qq| $form->{invnumber}</h4>
+
+<input type=hidden name=action value=continue>
+<input type=hidden name=nextsub value=yes_delete_language>
+<input name=action class=submit type=submit value="|.$locale->text('Continue').qq|">
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub yes_delete_language {
+
+ AM->delete_language(\%myconfig, \%$form);
+
+ # delete templates
+ $dir = "$myconfig{templates}/$form->{code}";
+ if (-d $dir) {
+ unlink <$dir/*>;
+ rmdir "$myconfig{templates}/$form->{code}";
+ }
+ $form->redirect($locale->text('Language deleted!'));
+
+}
+
+
+sub display_stylesheet {
+
+ $form->{file} = "css/$myconfig{stylesheet}";
+ &display_form;
+
+}
+
+
+sub list_templates {
+
+ AM->language(\%myconfig, \%$form);
+
+ if (! @{ $form->{ALL} }) {
+ &display_form;
+ exit;
+ }
+
+ unshift @{ $form->{ALL} }, { code => '.', description => $locale->text('Default Template') };
+
+ $href = "$form->{script}?action=list_templates&direction=$form->{direction}&oldsort=$form->{oldsort}&file=$form->{file}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}";
+
+ $form->sort_order();
+
+ $form->{callback} = "$form->{script}?action=list_templates&direction=$form->{direction}&oldsort=$form->{oldsort}&file=$form->{file}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}";
+
+ $callback = $form->escape($form->{callback});
+
+ chomp $myconfig{templates};
+ $form->{file} =~ s/$myconfig{templates}//;
+ $form->{file} =~ s/\///;
+ $form->{title} = $form->{file};
+
+ @column_index = $form->sort_columns(qw(code description));
+
+ $column_header{code} = qq|<th><a class="listheading" href=$href&sort=code>|.$locale->text('Code').qq|</a></th>|;
+ $column_header{description} = qq|<th><a class="listheading" href=$href&sort=description>|.$locale->text('Description').qq|</a></th>|;
+
+ $form->header;
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class="listheading">
+|;
+
+ for (@column_index) { print "$column_header{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ foreach $ref (@{ $form->{ALL} }) {
+
+ $i++; $i %= 2;
+
+ print qq|
+ <tr valign=top class=listrow$i>
+|;
+
+ $column_data{code} = qq|<td><a href=$form->{script}?action=display_form&file=$myconfig{templates}/$ref->{code}/$form->{file}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&code=$ref->{code}&callback=$callback>$ref->{code}</td>|;
+ $column_data{description} = qq|<td>$ref->{description}</td>|;
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+<form method=post action=$form->{script}>
+
+<input name=callback type=hidden value="$form->{callback}">
+
+<input type=hidden name=type value=language>
+
+<input type=hidden name=path value=$form->{path}>
+<input type=hidden name=login value=$form->{login}>
+<input type=hidden name=sessionid value=$form->{sessionid}>
+|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+ </body>
+ </html>
+|;
+
+}
+
+
+sub display_form {
+
+ $form->{file} =~ s/^(.:)*?\/|\.\.\///g;
+ $form->{file} =~ s/^\/*//g;
+ $form->{file} =~ s/$userspath//;
+ $form->{file} =~ s/$memberfile//;
+
+ $form->error("$!: $form->{file}") unless -f $form->{file};
+
+ AM->load_template(\%$form);
+
+ $form->{title} = $form->{file};
+
+ $form->{body} =~ s/<%include (.*?)%>/<a href=$form->{script}\?action=display_form&file=$myconfig{templates}\/$form->{code}\/$1&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}>$1<\/a>/g;
+
+ # if it is anything but html
+ if ($form->{file} !~ /\.html$/) {
+ $form->{body} = "<pre>\n$form->{body}\n</pre>";
+ }
+
+ $form->header;
+
+ print qq|
+<body>
+
+$form->{body}
+
+<form method=post action=$form->{script}>
+|;
+
+ $form->{type} = "template";
+
+ $form->hide_form(qw(file type path login sessionid));
+
+ print qq|
+<input name=action type=submit class=submit value="|.$locale->text('Edit').qq|">|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub edit_template {
+
+ AM->load_template(\%$form);
+
+ $form->{title} = $locale->text('Edit Template');
+ # convert &nbsp to &amp;nbsp;
+ $form->{body} =~ s/&nbsp;/&amp;nbsp;/gi;
+
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input name=file type=hidden value=$form->{file}>
+<input name=type type=hidden value=template>
+
+<input type=hidden name=path value=$form->{path}>
+<input type=hidden name=login value=$form->{login}>
+<input type=hidden name=sessionid value=$form->{sessionid}>
+
+<input name=callback type=hidden value="$form->{script}?action=display_form&file=$form->{file}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}">
+
+<textarea name=body rows=25 cols=70>
+$form->{body}
+</textarea>
+
+<br>
+<input type=submit class=submit name=action value="|.$locale->text('Save').qq|">|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print q|
+ </form>
+
+
+</body>
+</html>
+|;
+
+}
+
+
+sub save_template {
+
+ AM->save_template(\%$form);
+ $form->redirect($locale->text('Template saved!'));
+
+}
+
+
+sub defaults {
+
+ # get defaults for account numbers and last numbers
+ AM->defaultaccounts(\%myconfig, \%$form);
+
+ foreach $key (keys %{ $form->{accno} }) {
+ foreach $accno (sort keys %{ $form->{accno}{$key} }) {
+ $form->{account}{$key} .= "<option>$accno--$form->{accno}{$key}{$accno}{description}\n";
+ $form->{accno}{$form->{accno}{$key}{$accno}{id}} = $accno;
+ }
+ }
+
+ for (qw(IC IC_inventory IC_income IC_expense FX_gain FX_loss)) { $form->{account}{$_} =~ s/>$form->{accno}{$form->{defaults}{$_}}/ selected>$form->{accno}{$form->{defaults}{$_}}/ }
+
+ for (qw(accno defaults)) { delete $form->{$_} }
+
+ $form->{title} = $locale->text('System Defaults');
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=type value=defaults>
+
+<table width=100%>
+ <tr><th class=listtop>$form->{title}</th></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align="right">|.$locale->text('Business Number').qq|</th>
+ <td><input name=businessnumber size=25 value="$form->{businessnumber}"></td>
+ </tr>
+ <tr>
+ <th align="right">|.$locale->text('Weight Unit').qq|</th>
+ <td><input name=weightunit size=5 value="$form->{weightunit}"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <th class="listheading">|.$locale->text('Last Numbers & Default Accounts').qq|</th>
+ </tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align="right" nowrap>|.$locale->text('Inventory').qq|</th>
+ <td><select name=IC>$form->{account}{IC}</select></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap>|.$locale->text('Income').qq|</th>
+ <td><select name=IC_income>$form->{account}{IC_income}</select></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap>|.$locale->text('Expense').qq|</th>
+ <td><select name=IC_expense>$form->{account}{IC_expense}</select></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap>|.$locale->text('Foreign Exchange Gain').qq|</th>
+ <td><select name=FX_gain>$form->{account}{FX_gain}</select></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap>|.$locale->text('Foreign Exchange Loss').qq|</th>
+ <td><select name=FX_loss>$form->{account}{FX_loss}</select></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <th align=left>|.$locale->text('Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies').qq|</th>
+ </tr>
+ <tr>
+ <td>
+ <input name=curr size=40 value="$form->{curr}">
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align="right" nowrap>|.$locale->text('GL Reference Number').qq|</th>
+ <td><input name=glnumber size=40 value="$form->{glnumber}"></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap>|.$locale->text('Sales Invoice/AR Transaction Number').qq|</th>
+ <td><input name=sinumber size=40 value="$form->{sinumber}"></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap>|.$locale->text('Sales Order Number').qq|</th>
+ <td><input name=sonumber size=40 value="$form->{sonumber}"></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap>|.$locale->text('Vendor Invoice/AP Transaction Number').qq|</th>
+ <td><input name=vinumber size=40 value="$form->{vinumber}"></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap>|.$locale->text('Purchase Order Number').qq|</th>
+ <td><input name=ponumber size=40 value="$form->{ponumber}"></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap>|.$locale->text('Sales Quotation Number').qq|</th>
+ <td><input name=sqnumber size=40 value="$form->{sqnumber}"></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap>|.$locale->text('RFQ Number').qq|</th>
+ <td><input name=rfqnumber size=40 value="$form->{rfqnumber}"></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap>|.$locale->text('Part Number').qq|</th>
+ <td><input name=partnumber size=40 value="$form->{partnumber}"></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap>|.$locale->text('Job/Project Number').qq|</th>
+ <td><input name=projectnumber size=40 value="$form->{projectnumber}"></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap>|.$locale->text('Employee Number').qq|</th>
+ <td><input name=employeenumber size=40 value="$form->{employeenumber}"></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap>|.$locale->text('Customer Number').qq|</th>
+ <td><input name=customernumber size=40 value="$form->{customernumber}"></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap>|.$locale->text('Vendor Number').qq|</th>
+ <td><input name=vendornumber size=40 value="$form->{vendornumber}"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+ $form->hide_form(qw(path login sessionid));
+
+ print qq|
+<input type=submit class=submit name=action value="|.$locale->text('Save').qq|">|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub taxes {
+
+ # get tax account numbers
+ AM->taxes(\%myconfig, \%$form);
+
+ $i = 0;
+ foreach $ref (@{ $form->{taxrates} }) {
+ $i++;
+ $form->{"taxrate_$i"} = $form->format_amount(\%myconfig, $ref->{rate});
+ $form->{"taxdescription_$i"} = $ref->{description};
+
+ for (qw(taxnumber validto)) { $form->{"${_}_$i"} = $ref->{$_} }
+ $form->{taxaccounts} .= "$ref->{id}_$i ";
+ }
+ chop $form->{taxaccounts};
+
+ &display_taxes;
+
+}
+
+
+sub display_taxes {
+
+ $form->{title} = $locale->text('Taxes');
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=type value=taxes>
+
+<table width=100%>
+ <tr><th class=listtop>$form->{title}</th></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th></th>
+ <th>|.$locale->text('Rate').qq| (%)</th>
+ <th>|.$locale->text('Number').qq|</th>
+ <th>|.$locale->text('Valid To').qq|</th>
+ </tr>
+|;
+
+ for (split(/ /, $form->{taxaccounts})) {
+
+ ($null, $i) = split /_/, $_;
+
+ $form->{"taxrate_$i"} = $form->format_amount(\%myconfig, $form->{"taxrate_$i"});
+
+ $form->hide_form("taxdescription_$i");
+
+ print qq|
+ <tr>
+ <th align="right">|;
+
+ if ($form->{"taxdescription_$i"} eq $sametax) {
+ print "";
+ } else {
+ print qq|$form->{"taxdescription_$i"}|;
+ }
+
+ print qq|</th>
+ <td><input name="taxrate_$i" size=6 value=$form->{"taxrate_$i"}></td>
+ <td><input name="taxnumber_$i" value="$form->{"taxnumber_$i"}"></td>
+ <td><input name="validto_$i" size=11 value="$form->{"validto_$i"}" title="$myconfig{dateformat}"></td>
+ </tr>
+|;
+ $sametax = $form->{"taxdescription_$i"};
+
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+ $form->hide_form(qw(taxaccounts path login sessionid));
+
+ print qq|
+<input type=submit class=submit name=action value="|.$locale->text('Update').qq|">
+<input type=submit class=submit name=action value="|.$locale->text('Save').qq|">|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub update {
+
+ @a = split / /, $form->{taxaccounts};
+ $ndx = $#a + 1;
+
+ foreach $item (@a) {
+ ($accno, $i) = split /_/, $item;
+ push @t, $accno;
+
+ if ($form->{"validto_$i"}) {
+ $j = $i + 1;
+ if ($form->{"taxdescription_$i"} ne $form->{"taxdescription_$j"}) {
+ #insert line
+ for ($j = $ndx + 1; $j > $i; $j--) {
+ $k = $j - 1;
+ for (qw(taxrate taxdescription taxnumber validto)) { $form->{"${_}_$j"} = $form->{"${_}_$k"} }
+ }
+ $ndx++;
+ $k = $i + 1;
+ for (qw(taxdescription taxnumber)) { $form->{"${_}_$k"} = $form->{"${_}_$i"} }
+ for (qw(taxrate validto)) { $form->{"${_}_$k"} = "" }
+ push @t, $accno;
+ }
+ } else {
+ # remove line
+ $j = $i + 1;
+ if ($form->{"taxdescription_$i"} eq $form->{"taxdescription_$j"}) {
+ for ($j = $i + 1; $j <= $ndx; $j++) {
+ $k = $j + 1;
+ for (qw(taxrate taxdescription taxnumber validto)) { $form->{"${_}_$j"} = $form->{"${_}_$k"} }
+ }
+ $ndx--;
+ splice @t, $i-1, 1;
+ }
+ }
+
+ }
+
+ $i = 1;
+ $form->{taxaccounts} = "";
+ for (@t) {
+ $form->{taxaccounts} .= "${_}_$i ";
+ $i++;
+ }
+ chop $form->{taxaccounts};
+
+ &display_taxes;
+
+}
+
+
+
+sub config {
+
+ foreach $item (qw(mm-dd-yy mm/dd/yy dd-mm-yy dd/mm/yy dd.mm.yy yyyy-mm-dd)) {
+ $dateformat .= ($item eq $myconfig{dateformat}) ? "<option selected>$item\n" : "<option>$item\n";
+ }
+
+ foreach $item (qw(1,000.00 1000.00 1.000,00 1000,00 1'000.00)) {
+ $numberformat .= ($item eq $myconfig{numberformat}) ? "<option selected>$item\n" : "<option>$item\n";
+ }
+
+ for (qw(name company address signature)) { $myconfig{$_} = $form->quote($myconfig{$_}) }
+ for (qw(address signature)) { $myconfig{$_} =~ s/\\n/\n/g }
+
+ %countrycodes = User->country_codes;
+ $countrycodes = '';
+
+ foreach $key (sort { $countrycodes{$a} cmp $countrycodes{$b} } keys %countrycodes) {
+ $countrycodes .= ($myconfig{countrycode} eq $key) ? "<option selected value=$key>$countrycodes{$key}\n" : "<option value=$key>$countrycodes{$key}\n";
+ }
+ $countrycodes = qq|<option value="">English\n$countrycodes|;
+
+ opendir CSS, "css/.";
+ @all = grep /.*\.css$/, readdir CSS;
+ closedir CSS;
+
+ foreach $item (@all) {
+ if ($item eq $myconfig{stylesheet}) {
+ $selectstylesheet .= qq|<option selected>$item\n|;
+ } else {
+ $selectstylesheet .= qq|<option>$item\n|;
+ }
+ }
+ $selectstylesheet .= "<option>\n";
+
+ if (%printer && $latex) {
+ $selectprinter = "<option>\n";
+ foreach $item (sort keys %printer) {
+ if ($myconfig{printer} eq $item) {
+ $selectprinter .= qq|<option value="$item" selected>$item\n|;
+ } else {
+ $selectprinter .= qq|<option value="$item">$item\n|;
+ }
+ }
+
+ $printer = qq|
+ <tr>
+ <th align="right">|.$locale->text('Printer').qq|</th>
+ <td><select name=printer>$selectprinter</select></td>
+ </tr>
+|;
+ }
+
+ $form->{title} = $locale->text('Edit Preferences for').qq| $form->{login}|;
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=old_password value=$myconfig{password}>
+<input type=hidden name=type value=preferences>
+<input type=hidden name=role value=$myconfig{role}>
+
+<table width=100%>
+ <tr><th class=listtop>$form->{title}</th></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align="right">|.$locale->text('Name').qq|</th>
+ <td><input name=name size=20 value="$myconfig{name}"></td>
+ </tr>
+ <tr>
+ <th align="right">|.$locale->text('E-mail').qq|</th>
+ <td><input name=email size=35 value="$myconfig{email}"></td>
+ </tr>
+ <tr valign=top>
+ <th align="right">|.$locale->text('Signature').qq|</th>
+ <td><textarea name=signature rows=3 cols=35>$myconfig{signature}</textarea></td>
+ </tr>
+ <tr>
+ <th align="right">|.$locale->text('Phone').qq|</th>
+ <td><input name=tel size=14 value="$myconfig{tel}"></td>
+ </tr>
+ <tr>
+ <th align="right">|.$locale->text('Fax').qq|</th>
+ <td><input name=fax size=14 value="$myconfig{fax}"></td>
+ </tr>
+ <tr>
+ <th align="right">|.$locale->text('Company').qq|</th>
+ <td><input name=company size=35 value="$myconfig{company}"></td>
+ </tr>
+ <tr valign=top>
+ <th align="right">|.$locale->text('Address').qq|</th>
+ <td><textarea name=address rows=4 cols=35>$myconfig{address}</textarea></td>
+ </tr>
+ </table>
+ </td>
+ <td>
+ <table>
+ <tr>
+ <th align="right">|.$locale->text('Password').qq|</th>
+ <td><input type=password name=new_password size=10 value=$myconfig{password}></td>
+ </tr>
+ <tr>
+ <th align="right">|.$locale->text('Confirm').qq|</th>
+ <td><input type=password name=confirm_password size=10></td>
+ </tr>
+ <tr>
+ <th align="right">|.$locale->text('Date Format').qq|</th>
+ <td><select name=dateformat>$dateformat</select></td>
+ </tr>
+ <tr>
+ <th align="right">|.$locale->text('Number Format').qq|</th>
+ <td><select name=numberformat>$numberformat</select></td>
+ </tr>
+ <tr>
+ <th align="right">|.$locale->text('Dropdown Limit').qq|</th>
+ <td><input name=vclimit size=10 value="$myconfig{vclimit}"></td>
+ </tr>
+ <tr>
+ <th align="right">|.$locale->text('Menu Width').qq|</th>
+ <td><input name=menuwidth size=10 value="$myconfig{menuwidth}"></td>
+ </tr>
+ <tr>
+ <th align="right">|.$locale->text('Language').qq|</th>
+ <td><select name=countrycode>$countrycodes</select></td>
+ </tr>
+ <tr>
+ <th align="right">|.$locale->text('Session Timeout').qq|</th>
+ <td><input name=timeout size=10 value="$myconfig{timeout}"></td>
+ </tr>
+ <tr>
+ <th align="right">|.$locale->text('Stylesheet').qq|</th>
+ <td><select name=usestylesheet>$selectstylesheet</select></td>
+ </tr>
+ $printer
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+ $form->hide_form(qw(path login sessionid));
+
+ print qq|
+<input type=submit class=submit name=action value="|.$locale->text('Save').qq|">|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub save_defaults {
+
+ if (AM->save_defaults(\%myconfig, \%$form)) {
+ $form->redirect($locale->text('Defaults saved!'));
+ } else {
+ $form->error($locale->text('Cannot save defaults!'));
+ }
+
+}
+
+
+sub save_taxes {
+
+ if (AM->save_taxes(\%myconfig, \%$form)) {
+ $form->redirect($locale->text('Taxes saved!'));
+ } else {
+ $form->error($locale->text('Cannot save taxes!'));
+ }
+
+}
+
+
+sub save_preferences {
+
+ $form->{stylesheet} = $form->{usestylesheet};
+
+ if ($form->{new_password} ne $form->{old_password}) {
+ $form->error($locale->text('Password does not match!')) if $form->{new_password} ne $form->{confirm_password};
+ }
+
+ if (AM->save_preferences(\%myconfig, \%$form, $memberfile, $userspath)) {
+ $form->redirect($locale->text('Preferences saved!'));
+ } else {
+ $form->error($locale->text('Cannot save preferences!'));
+ }
+
+}
+
+
+sub backup {
+
+ if ($form->{media} eq 'email') {
+ $form->error($locale->text('No email address for')." $myconfig{name}") unless ($myconfig{email});
+
+ $form->{OUT} = "$sendmail";
+
+ }
+
+ $SIG{INT} = 'IGNORE';
+ AM->backup(\%myconfig, \%$form, $userspath, $gzip);
+
+ if ($form->{media} eq 'email') {
+ $form->redirect($locale->text('Backup sent to').qq| $myconfig{email}|);
+ }
+
+}
+
+
+
+sub audit_control {
+
+ $form->{title} = $locale->text('Audit Control');
+
+ AM->closedto(\%myconfig, \%$form);
+
+ if ($form->{revtrans}) {
+ $checked{revtransY} = "checked";
+ } else {
+ $checked{revtransN} = "checked";
+ }
+
+ if ($form->{audittrail}) {
+ $checked{audittrailY} = "checked";
+ } else {
+ $checked{audittrailN} = "checked";
+ }
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=path value=$form->{path}>
+<input type=hidden name=login value=$form->{login}>
+<input type=hidden name=sessionid value=$form->{sessionid}>
+
+<table width=100%>
+ <tr><th class=listtop>$form->{title}</th></tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align="right">|.$locale->text('Enforce transaction reversal for all dates').qq|</th>
+ <td><input name=revtrans class=radio type=radio value="1" $checked{revtransY}> |.$locale->text('Yes').qq| <input name=revtrans class=radio type=radio value="0" $checked{revtransN}> |.$locale->text('No').qq|</td>
+ </tr>
+ <tr>
+ <th align="right">|.$locale->text('Close Books up to').qq|</th>
+ <td><input name=closedto size=11 title="$myconfig{dateformat}" value=$form->{closedto}></td>
+ </tr>
+ <tr>
+ <th align="right">|.$locale->text('Activate Audit trail').qq|</th>
+ <td><input name=audittrail class=radio type=radio value="1" $checked{audittrailY}> |.$locale->text('Yes').qq| <input name=audittrail class=radio type=radio value="0" $checked{audittrailN}> |.$locale->text('No').qq|</td>
+ </tr>
+ <tr>
+ <th align="right">|.$locale->text('Remove Audit trail up to').qq|</th>
+ <td><input name=removeaudittrail size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+
+<hr size=3 noshade>
+
+<br>
+<input type=hidden name=nextsub value=doclose>
+<input type=hidden name=action value=continue>
+<input type=submit class=submit name=action value="|.$locale->text('Continue').qq|">
+
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub doclose {
+
+ AM->closebooks(\%myconfig, \%$form);
+
+ if ($form->{revtrans}) {
+ $msg = $locale->text('Transaction reversal enforced for all dates');
+ } else {
+
+ if ($form->{closedto}) {
+ $msg = $locale->text('Transaction reversal enforced up to')
+ ." ".$locale->date(\%myconfig, $form->{closedto}, 1);
+ } else {
+ $msg = $locale->text('Books are open');
+ }
+ }
+
+ $msg .= "<p>";
+ if ($form->{audittrail}) {
+ $msg .= $locale->text('Audit trail enabled');
+ } else {
+ $msg .= $locale->text('Audit trail disabled');
+ }
+
+ $msg .= "<p>";
+ if ($form->{removeaudittrail}) {
+ $msg .= $locale->text('Audit trail removed up to')
+ ." ".$locale->date(\%myconfig, $form->{removeaudittrail}, 1);
+ }
+
+ $form->redirect($msg);
+
+}
+
+
+sub add_warehouse {
+
+ $form->{title} = "Add";
+
+ $form->{callback} = "$form->{script}?action=add_warehouse&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}" unless $form->{callback};
+
+ &warehouse_header;
+ &form_footer;
+
+}
+
+
+sub edit_warehouse {
+
+ $form->{title} = "Edit";
+
+ AM->get_warehouse(\%myconfig, \%$form);
+
+ &warehouse_header;
+ &form_footer;
+
+}
+
+
+sub list_warehouse {
+
+ AM->warehouses(\%myconfig, \%$form);
+
+ $href = "$form->{script}?action=list_warehouse&direction=$form->{direction}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}";
+
+ $form->sort_order();
+
+ $form->{callback} = "$form->{script}?action=list_warehouse&direction=$form->{direction}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}";
+
+ $callback = $form->escape($form->{callback});
+
+ $form->{title} = $locale->text('Warehouses');
+
+ @column_index = qw(description);
+
+ $column_header{description} = qq|<th width=100%><a class="listheading" href=$href>|.$locale->text('Description').qq|</a></th>|;
+
+ $form->header;
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class="listheading">
+|;
+
+ for (@column_index) { print "$column_header{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ foreach $ref (@{ $form->{ALL} }) {
+
+ $i++; $i %= 2;
+
+ print qq|
+ <tr valign=top class=listrow$i>
+|;
+
+ $column_data{description} = qq|<td><a href=$form->{script}?action=edit_warehouse&id=$ref->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{description}</td>|;
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+<form method=post action=$form->{script}>
+|;
+
+ $form->{type} = "warehouse";
+
+ $form->hide_form(qw(type callback path login sessionid));
+
+ print qq|
+<input class=submit type=submit name=action value="|.$locale->text('Add Warehouse').qq|">|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+ </body>
+ </html>
+|;
+
+}
+
+
+
+sub warehouse_header {
+
+ $form->{title} = $locale->text("$form->{title} Warehouse");
+
+# $locale->text('Add Warehouse')
+# $locale->text('Edit Warehouse')
+
+ $form->{description} = $form->quote($form->{description});
+
+ if (($rows = $form->numtextrows($form->{description}, 60)) > 1) {
+ $description = qq|<textarea name="description" rows=$rows cols=60 wrap=soft>$form->{description}</textarea>|;
+ } else {
+ $description = qq|<input name=description size=60 value="$form->{description}">|;
+ }
+
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=id value=$form->{id}>
+<input type=hidden name=type value=warehouse>
+
+<table width=100%>
+ <tr>
+ <th class=listtop colspan=2>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <th align="right">|.$locale->text('Description').qq|</th>
+ <td>$description</td>
+ </tr>
+ <tr>
+ <td colspan=2><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+}
+
+
+sub save_warehouse {
+
+ $form->isblank("description", $locale->text('Description missing!'));
+ AM->save_warehouse(\%myconfig, \%$form);
+ $form->redirect($locale->text('Warehouse saved!'));
+
+}
+
+
+sub delete_warehouse {
+
+ AM->delete_warehouse(\%myconfig, \%$form);
+ $form->redirect($locale->text('Warehouse deleted!'));
+
+}
+
+
+sub yearend {
+
+ AM->earningsaccounts(\%myconfig, \%$form);
+ $chart = "";
+ for (@{ $form->{chart} }) { $chart .= "<option>$_->{accno}--$_->{description}" }
+
+ $form->{title} = $locale->text('Yearend');
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=decimalplaces value=2>
+<input type=hidden name=l_accno value=Y>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align="right">|.$locale->text('Yearend').qq|</th>
+ <td><input name=todate size=11 title="$myconfig{dateformat}" value=$todate></td>
+ </tr>
+ <tr>
+ <th align="right">|.$locale->text('Reference').qq|</th>
+ <td><input name=reference size=20 value="|.$locale->text('Yearend').qq|"></td>
+ </tr>
+ <tr>
+ <th align="right">|.$locale->text('Description').qq|</th>
+ <td><textarea name=description rows=3 cols=50 wrap=soft></textarea></td>
+ </tr>
+ <tr>
+ <th align="right">|.$locale->text('Retained Earnings').qq|</th>
+ <td><select name=accno>$chart</select></td>
+ </tr>
+ <tr>
+ <th align="right">|.$locale->text('Method').qq|</th>
+ <td><input name=method class=radio type=radio value=accrual checked>&nbsp;|.$locale->text('Accrual').qq|&nbsp;<input name=method class=radio type=radio value=cash>&nbsp;|.$locale->text('Cash').qq|</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+
+<hr size=3 noshade>
+
+<input type=hidden name=nextsub value=generate_yearend>
+|;
+
+ $form->hide_form(qw(path login sessionid));
+
+ print qq|
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">|;
+
+}
+
+
+sub generate_yearend {
+
+ $form->isblank("todate", $locale->text('Yearend date missing!'));
+
+ RP->yearend_statement(\%myconfig, \%$form);
+
+ $form->{transdate} = $form->{todate};
+
+ $earnings = 0;
+
+ $form->{rowcount} = 1;
+ foreach $key (keys %{ $form->{I} }) {
+ if ($form->{I}{$key}{charttype} eq "A") {
+ $form->{"debit_$form->{rowcount}"} = $form->{I}{$key}{this};
+ $earnings += $form->{I}{$key}{this};
+ $form->{"accno_$form->{rowcount}"} = $key;
+ $form->{rowcount}++;
+ $ok = 1;
+ }
+ }
+
+ foreach $key (keys %{ $form->{E} }) {
+ if ($form->{E}{$key}{charttype} eq "A") {
+ $form->{"credit_$form->{rowcount}"} = $form->{E}{$key}{this} * -1;
+ $earnings += $form->{E}{$key}{this};
+ $form->{"accno_$form->{rowcount}"} = $key;
+ $form->{rowcount}++;
+ $ok = 1;
+ }
+ }
+ if ($earnings > 0) {
+ $form->{"credit_$form->{rowcount}"} = $earnings;
+ $form->{"accno_$form->{rowcount}"} = $form->{accno}
+ } else {
+ $form->{"debit_$form->{rowcount}"} = $earnings * -1;
+ $form->{"accno_$form->{rowcount}"} = $form->{accno}
+ }
+
+ if ($ok) {
+ if (AM->post_yearend(\%myconfig, \%$form)) {
+ $form->redirect($locale->text('Yearend posted!'));
+ } else {
+ $form->error($locale->text('Yearend posting failed!'));
+ }
+ } else {
+ $form->error('Nothing to do!');
+ }
+
+}
+
+
+
+sub company_logo {
+
+ $myconfig{address} =~ s/\\n/<br>/g;
+ $myconfig{dbhost} = $locale->text('localhost') unless $myconfig{dbhost};
+
+ $form->{stylesheet} = $myconfig{stylesheet};
+
+ $form->{title} = $locale->text('About');
+
+ # create the logo screen
+ $form->header;
+
+ print qq|
+<body>
+
+<pre>
+
+</pre>
+<center>
+<a href="http://sourceforge.net/projects/ledger-smb/" target="_blank"><img src="ledger-smb.png" width="200" height="100" border="0" alt="LedgerSMB Logo" /></a>
+<h1 class="login">|.$locale->text('Version').qq| $form->{version}</h1>
+
+<p>
+|.$locale->text('Licensed to').qq|
+<p>
+<b>
+$myconfig{company}
+<br>$myconfig{address}
+</b>
+
+<p>
+<table border=0>
+ <tr>
+ <th align="right">|.$locale->text('User').qq|</th>
+ <td>$myconfig{name}</td>
+ </tr>
+ <tr>
+ <th align="right">|.$locale->text('Dataset').qq|</th>
+ <td>$myconfig{dbname}</td>
+ </tr>
+ <tr>
+ <th align="right">|.$locale->text('Database Host').qq|</th>
+ <td>$myconfig{dbhost}</td>
+ </tr>
+</table>
+
+</center>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub recurring_transactions {
+
+# $locale->text('Day')
+# $locale->text('Days')
+# $locale->text('Month')
+# $locale->text('Months')
+# $locale->text('Week')
+# $locale->text('Weeks')
+# $locale->text('Year')
+# $locale->text('Years')
+
+ $form->{stylesheet} = $myconfig{stylesheet};
+
+ $form->{title} = $locale->text('Recurring Transactions');
+
+ $column_header{id} = "";
+
+ AM->recurring_transactions(\%myconfig, \%$form);
+
+ $href = "$form->{script}?action=recurring_transactions";
+ for (qw(direction oldsort path login sessionid)) { $href .= qq|&$_=$form->{$_}| }
+
+ $form->sort_order();
+
+ # create the logo screen
+ $form->header;
+
+ @column_index = qw(ndx reference description);
+
+ push @column_index, qw(nextdate enddate id amount curr repeat howmany recurringemail recurringprint);
+
+ $column_header{reference} = qq|<th><a class="listheading" href="$href&sort=reference">|.$locale->text('Reference').q|</a></th>|;
+ $column_header{ndx} = q|<th class="listheading">&nbsp;</th>|;
+ $column_header{id} = q|<th class="listheading">|.$locale->text('ID').q|</th>|;
+ $column_header{description} = q|<th class="listheading">|.$locale->text('Description').q|</th>|;
+ $column_header{nextdate} = qq|<th><a class="listheading" href="$href&sort=nextdate">|.$locale->text('Next').q|</a></th>|;
+ $column_header{enddate} = qq|<th><a class="listheading" href="$href&sort=enddate">|.$locale->text('Ends').q|</a></th>|;
+ $column_header{amount} = q|<th class="listheading">|.$locale->text('Amount').q|</th>|;
+ $column_header{curr} = q|<th class="listheading">&nbsp;</th>|;
+ $column_header{repeat} = q|<th class="listheading">|.$locale->text('Every').q|</th>|;
+ $column_header{howmany} = q|<th class="listheading">|.$locale->text('Times').q|</th>|;
+ $column_header{recurringemail} = q|<th class="listheading">|.$locale->text('E-mail').q|</th>|;
+ $column_header{recurringprint} = q|<th class="listheading">|.$locale->text('Print').q|</th>|;
+
+print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class="listheading">
+|;
+
+ for (@column_index) { print "\n$column_header{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ $i = 1;
+ $colspan = $#column_index + 1;
+
+ %tr = ( ar => $locale->text('AR'),
+ ap => $locale->text('AP'),
+ gl => $locale->text('GL'),
+ so => $locale->text('Sales Orders'),
+ po => $locale->text('Purchase Orders'),
+ );
+
+ %f = &formnames;
+
+ foreach $transaction (sort keys %{ $form->{transactions} }) {
+ print qq|
+ <tr>
+ <th class="listheading" colspan=$colspan>$tr{$transaction}</th>
+ </tr>
+|;
+
+ foreach $ref (@{ $form->{transactions}{$transaction} }) {
+
+ for (@column_index) { $column_data{$_} = "<td nowrap>$ref->{$_}</td>" }
+
+ if ($ref->{repeat} > 1) {
+ $unit = $locale->text(ucfirst $ref->{unit});
+ $repeat = "$ref->{repeat} $unit";
+ } else {
+ chop $ref->{unit};
+ $unit = $locale->text(ucfirst $ref->{unit});
+ $repeat = $unit;
+ }
+
+ $column_data{ndx} = qq|<td></td>|;
+
+ if (!$ref->{expired}) {
+ if ($ref->{overdue} <= 0) {
+ $k++;
+ $column_data{ndx} = qq|<td nowrap><input name="ndx_$k" class=checkbox type=checkbox value=$ref->{id} checked></td>|;
+ }
+ }
+
+ $reference = ($ref->{reference}) ? $ref->{reference} : $locale->text('Next Number');
+ $column_data{reference} = qq|<td nowrap><a href=$form->{script}?action=edit_recurring&id=$ref->{id}&vc=$ref->{vc}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&module=$ref->{module}&invoice=$ref->{invoice}&transaction=$ref->{transaction}&recurringnextdate=$ref->{nextdate}>$reference</a></td>|;
+
+ $module = "$ref->{module}.pl";
+ $type = "";
+ if ($ref->{module} eq 'ar') {
+ $module = "is.pl" if $ref->{invoice};
+ $ref->{amount} /= $ref->{exchangerate};
+ }
+ if ($ref->{module} eq 'ap') {
+ $module = "ir.pl" if $ref->{invoice};
+ $ref->{amount} /= $ref->{exchangerate};
+ }
+ if ($ref->{module} eq 'oe') {
+ $type = ($ref->{vc} eq 'customer') ? "sales_order" : "purchase_order";
+ }
+
+ $column_data{id} = qq|<td><a href="$module?action=edit&id=$ref->{id}&vc=$ref->{vc}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&type=$type&readonly=1">$ref->{id}</a></td>|;
+
+ $column_data{repeat} = qq|<td align="right" nowrap>$repeat</td>|;
+ $column_data{howmany} = qq|<td align="right" nowrap>|.$form->format_amount(\%myconfig, $ref->{howmany})."</td>";
+ $column_data{amount} = qq|<td align="right" nowrap>|.$form->format_amount(\%myconfig, $ref->{amount}, 2)."</td>";
+
+ $column_data{recurringemail} = "<td nowrap>";
+ @f = split /:/, $ref->{recurringemail};
+ for (0 .. $#f) { $column_data{recurringemail} .= "$f{$f[$_]}<br>" }
+ $column_data{recurringemail} .= "</td>";
+
+ $column_data{recurringprint} = "<td nowrap>";
+ @f = split /:/, $ref->{recurringprint};
+ for (0 .. $#f) { $column_data{recurringprint} .= "$f{$f[$_]}<br>" }
+ $column_data{recurringprint} .= "</td>";
+
+ $j++; $j %= 2;
+ print qq|
+ <tr class=listrow$j>
+|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+ }
+ }
+
+ print qq|
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<input name=lastndx type=hidden value=$k>
+|;
+
+ $form->hide_form(qw(path login sessionid));
+
+ print qq|
+<input class=submit type=submit name=action value="|.$locale->text('Process Transactions').qq|">| if $k;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub edit_recurring {
+
+ %links = ( ar => 'create_links',
+ ap => 'create_links',
+ gl => 'create_links',
+ is => 'invoice_links',
+ ir => 'invoice_links',
+ oe => 'order_links',
+ );
+ %prepare = ( is => 'prepare_invoice',
+ ir => 'prepare_invoice',
+ oe => 'prepare_order',
+ );
+
+ $form->{callback} = "$form->{script}?action=recurring_transactions&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}";
+
+ $form->{type} = "transaction";
+
+ if ($form->{module} eq 'ar') {
+ if ($form->{invoice}) {
+ $form->{type} = "invoice";
+ $form->{module} = "is";
+ }
+ }
+ if ($form->{module} eq 'ap') {
+ if ($form->{invoice}) {
+ $form->{type} = "invoice";
+ $form->{module} = "ir";
+ }
+ }
+
+ if ($form->{module} eq 'oe') {
+ %tr = ( so => sales_order,
+ po => purchase_order,
+ );
+
+ $form->{type} = $tr{$form->{transaction}};
+ }
+
+ $form->{script} = "$form->{module}.pl";
+ do "$form->{path}/$form->{script}";
+
+ &{ $links{$form->{module}} };
+
+ # return if transaction doesn't exist
+ $form->redirect unless $form->{recurring};
+
+ if ($prepare{$form->{module}}) {
+ &{ $prepare{$form->{module}} };
+ }
+
+ $form->{selectformat} = qq|<option value="html">html\n|;
+ if ($latex) {
+ $form->{selectformat} .= qq|
+ <option value="postscript">|.$locale->text('Postscript').qq|
+ <option value="pdf">|.$locale->text('PDF');
+ }
+
+ &schedule;
+
+}
+
+
+sub process_transactions {
+
+ # save variables
+ my $pt = new Form;
+ for (keys %$form) { $pt->{$_} = $form->{$_} }
+
+ my $defaultprinter;
+ while (my ($key, $value) = each %printer) {
+ if ($value =~ /lpr/) {
+ $defaultprinter = $key;
+ last;
+ }
+ }
+
+ $myconfig{vclimit} = 0;
+ %f = &formnames;
+
+ for (my $i = 1; $i <= $pt->{lastndx}; $i++) {
+ if ($pt->{"ndx_$i"}) {
+ $id = $pt->{"ndx_$i"};
+
+ # process transaction
+ AM->recurring_details(\%myconfig, \%$pt, $id);
+
+ $header = $form->{header};
+ # reset $form
+ for (keys %$form) { delete $form->{$_}; }
+ for (qw(login path sessionid stylesheet timeout)) { $form->{$_} = $pt->{$_}; }
+ $form->{id} = $id;
+ $form->{header} = $header;
+
+ # post, print, email
+ if ($pt->{arid} || $pt->{apid} || $pt->{oeid}) {
+ if ($pt->{arid} || $pt->{apid}) {
+ if ($pt->{arid}) {
+ $form->{script} = ($pt->{invoice}) ? "is.pl" : "ar.pl";
+ $form->{ARAP} = "AR";
+ $form->{module} = "ar";
+ $invfld = "sinumber";
+ } else {
+ $form->{script} = ($pt->{invoice}) ? "ir.pl" : "ap.pl";
+ $form->{ARAP} = "AP";
+ $form->{module} = "ap";
+ $invfld = "vinumber";
+ }
+ do "$form->{path}/$form->{script}";
+
+ if ($pt->{invoice}) {
+ &invoice_links;
+ &prepare_invoice;
+
+ for (keys %$form) { $form->{$_} = $form->unquote($form->{$_}) }
+
+ } else {
+ &create_links;
+
+ $form->{type} = "transaction";
+ for (1 .. $form->{rowcount} - 1) { $form->{"amount_$_"} = $form->format_amount(\%myconfig, $form->{"amount_$_"}, 2) }
+ for (1 .. $form->{paidaccounts}) { $form->{"paid_$_"} = $form->format_amount(\%myconfig, $form->{"paid_$_"}, 2) }
+
+ }
+
+ delete $form->{"$form->{ARAP}_links"};
+ for (qw(acc_trans invoice_details)) { delete $form->{$_} }
+ for (qw(department employee language month partsgroup project years)) { delete $form->{"all_$_"} }
+
+ $form->{invnumber} = $pt->{reference};
+ $form->{transdate} = $pt->{nextdate};
+
+ # tax accounts
+ $form->all_taxaccounts(\%myconfig, undef, $form->{transdate});
+
+ # calculate duedate
+ $form->{duedate} = $form->add_date(\%myconfig, $form->{transdate}, $pt->{overdue}, "days");
+
+ if ($pt->{payment}) {
+ # calculate date paid
+ for ($j = 1; $j <= $form->{paidaccounts}; $j++) {
+ $form->{"datepaid_$j"} = $form->add_date(\%myconfig, $form->{transdate}, $pt->{paid}, "days");
+
+ ($form->{"$form->{ARAP}_paid_$j"}) = split /--/, $form->{"$form->{ARAP}_paid_$j"};
+ delete $form->{"cleared_$j"};
+ }
+
+ $form->{paidaccounts}++;
+ } else {
+ $form->{paidaccounts} = -1;
+ }
+
+ for (qw(id recurring intnotes printed emailed queued)) { delete $form->{$_} }
+
+ ($form->{$form->{ARAP}}) = split /--/, $form->{$form->{ARAP}};
+
+ $form->{invnumber} = $form->update_defaults(\%myconfig, "$invfld") unless $form->{invnumber};
+ $form->{reference} = $form->{invnumber};
+ for (qw(invnumber reference)) { $form->{$_} = $form->unquote($form->{$_}) }
+
+ if ($pt->{invoice}) {
+ if ($pt->{arid}) {
+ $form->info("\n".$locale->text('Posting')." ".$locale->text('Sales Invoice')." $form->{invnumber}");
+ $ok = IS->post_invoice(\%myconfig, \%$form);
+ } else {
+ $form->info("\n".$locale->text('Posting')." ".$locale->text('Vendor Invoice')." $form->{invnumber}");
+ $ok = IR->post_invoice(\%myconfig, \%$form);
+ }
+ } else {
+ if ($pt->{arid}) {
+ $form->info("\n".$locale->text('Posting')." ".$locale->text('Transaction')." $form->{invnumber}");
+ } else {
+ $form->info("\n".$locale->text('Posting')." ".$locale->text('Transaction')." $form->{invnumber}");
+ }
+
+ $ok = AA->post_transaction(\%myconfig, \%$form);
+
+ }
+ $form->info(" ..... ".$locale->text('done'));
+
+ # print form
+ if ($latex && $ok) {
+ $ok = &print_recurring(\%$pt, $defaultprinter);
+ }
+
+ &email_recurring(\%$pt) if $ok;
+
+ } else {
+
+ # order
+ $form->{script} = "oe.pl";
+ $form->{module} = "oe";
+
+ $ordnumber = "ordnumber";
+ if ($pt->{customer_id}) {
+ $form->{vc} = "customer";
+ $form->{type} = "sales_order";
+ $ordfld = "sonumber";
+ $flabel = $locale->text('Sales Order');
+ } else {
+ $form->{vc} = "vendor";
+ $form->{type} = "purchase_order";
+ $ordfld = "ponumber";
+ $flabel = $locale->text('Purchase Order');
+ }
+ require "$form->{path}/$form->{script}";
+
+ &order_links;
+ &prepare_order;
+
+ for (keys %$form) { $form->{$_} = $form->unquote($form->{$_}) }
+
+ $form->{$ordnumber} = $pt->{reference};
+ $form->{transdate} = $pt->{nextdate};
+
+ # calculate reqdate
+ $form->{reqdate} = $form->add_date(\%myconfig, $form->{transdate}, $pt->{req}, "days") if $form->{reqdate};
+
+ for (qw(id recurring intnotes printed emailed queued)) { delete $form->{$_} }
+ for (1 .. $form->{rowcount}) { delete $form->{"orderitems_id_$_"} }
+
+ $form->{$ordnumber} = $form->update_defaults(\%myconfig, "$ordfld") unless $form->{$ordnumber};
+ $form->{reference} = $form->{$ordnumber};
+ for ("$ordnumber", "reference") { $form->{$_} = $form->unquote($form->{$_}) }
+ $form->{closed} = 0;
+
+ $form->info("\n".$locale->text('Saving')." ".$flabel." $form->{$ordnumber}");
+ if ($ok = OE->save(\%myconfig, \%$form)) {
+ $form->info(" ..... ".$locale->text('done'));
+ } else {
+ $form->info(" ..... ".$locale->text('failed'));
+ }
+
+ # print form
+ if ($latex && $ok) {
+ &print_recurring(\%$pt, $defaultprinter);
+ }
+
+ &email_recurring(\%$pt);
+
+ }
+
+ } else {
+ # GL transaction
+ GL->transaction(\%myconfig, \%$form);
+
+ $form->{reference} = $pt->{reference};
+ $form->{transdate} = $pt->{nextdate};
+
+ $j = 1;
+ foreach $ref (@{ $form->{GL} }) {
+ $form->{"accno_$j"} = "$ref->{accno}--$ref->{description}";
+
+ $form->{"projectnumber_$j"} = "$ref->{projectnumber}--$ref->{project_id}" if $ref->{project_id};
+ $form->{"fx_transaction_$j"} = $ref->{fx_transaction};
+
+ if ($ref->{amount} < 0) {
+ $form->{"debit_$j"} = $ref->{amount} * -1;
+ } else {
+ $form->{"credit_$j"} = $ref->{amount};
+ }
+
+ $j++;
+ }
+
+ $form->{rowcount} = $j;
+
+ for (qw(id recurring)) { delete $form->{$_} }
+ $form->info("\n".$locale->text('Posting')." ".$locale->text('GL Transaction')." $form->{reference}");
+ $ok = GL->post_transaction(\%myconfig, \%$form);
+ $form->info(" ..... ".$locale->text('done'));
+
+ }
+
+ AM->update_recurring(\%myconfig, \%$pt, $id) if $ok;
+
+ }
+ }
+
+ $form->{callback} = "am.pl?action=recurring_transactions&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&header=$form->{header}";
+ $form->redirect;
+
+}
+
+
+sub print_recurring {
+ my ($pt, $defaultprinter) = @_;
+
+ my %f = &formnames;
+ my $ok = 1;
+
+ if ($pt->{recurringprint}) {
+ @f = split /:/, $pt->{recurringprint};
+ for ($j = 0; $j <= $#f; $j += 3) {
+ $media = $f[$j+2];
+ $media ||= $myconfig->{printer} if $printer{$myconfig->{printer}};
+ $media ||= $defaultprinter;
+
+ $form->info("\n".$locale->text('Printing')." ".$locale->text($f{$f[$j]})." $form->{reference}");
+
+ @a = ("perl", "$form->{script}", "action=reprint&module=$form->{module}&type=$form->{type}&login=$form->{login}&path=$form->{path}&sessionid=$form->{sessionid}&id=$form->{id}&formname=$f[$j]&format=$f[$j+1]&media=$media&vc=$form->{vc}&ARAP=$form->{ARAP}");
+
+ $ok = !(system(@a));
+
+ if ($ok) {
+ $form->info(" ..... ".$locale->text('done'));
+ } else {
+ $form->info(" ..... ".$locale->text('failed'));
+ last;
+ }
+ }
+ }
+
+ $ok;
+
+}
+
+
+sub email_recurring {
+ my ($pt) = @_;
+
+ my %f = &formnames;
+ my $ok = 1;
+
+ if ($pt->{recurringemail}) {
+
+ @f = split /:/, $pt->{recurringemail};
+ for ($j = 0; $j <= $#f; $j += 2) {
+
+ $form->info("\n".$locale->text('Sending')." ".$locale->text($f{$f[$j]})." $form->{reference}");
+
+ # no email, bail out
+ if (!$form->{email}) {
+ $form->info(" ..... ".$locale->text('E-mail address missing!'));
+ last;
+ }
+
+ $message = $form->escape($pt->{message},1);
+
+ @a = ("perl", "$form->{script}", "action=reprint&module=$form->{module}&type=$form->{type}&login=$form->{login}&path=$form->{path}&sessionid=$form->{sessionid}&id=$form->{id}&formname=$f[$j]&format=$f[$j+1]&media=email&vc=$form->{vc}&ARAP=$form->{ARAP}&message=$message");
+
+ $ok = !(system(@a));
+
+ if ($ok) {
+ $form->info(" ..... ".$locale->text('done'));
+ } else {
+ $form->info(" ..... ".$locale->text('failed'));
+ last;
+ }
+ }
+ }
+
+ $ok;
+
+}
+
+
+
+sub formnames {
+
+# $locale->text('Transaction')
+# $locale->text('Invoice')
+# $locale->text('Credit Invoice')
+# $locale->text('Debit Invoice')
+# $locale->text('Packing List')
+# $locale->text('Pick List')
+# $locale->text('Sales Order')
+# $locale->text('Work Order')
+# $locale->text('Purchase Order')
+# $locale->text('Bin List')
+
+ my %f = ( transaction => 'Transaction',
+ invoice => 'Invoice',
+ credit_invoice => 'Credit Invoice',
+ debit_invoice => 'Debit Invoice',
+ packing_list => 'Packing List',
+ pick_list => 'Pick List',
+ sales_order => 'Sales Order',
+ work_order => 'Work Order',
+ purchase_order => 'Purchase Order',
+ bin_list => 'Bin List',
+ );
+
+ %f;
+
+}
+
+
+sub continue { &{ $form->{nextsub} } };
+
diff --git a/bin/mozilla/ap.pl b/bin/mozilla/ap.pl
new file mode 100755
index 00000000..41ac1702
--- /dev/null
+++ b/bin/mozilla/ap.pl
@@ -0,0 +1,28 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has NOT undergone whitespace cleanup.
+#
+#======================================================================
+#
+# Accounts Payable
+#
+#======================================================================
+
+use LedgerSMB::PE;
+use LedgerSMB::IR;
+
+require "$form->{path}/arap.pl";
+require "$form->{path}/arapprn.pl";
+require "$form->{path}/aa.pl";
+
+$form->{vc} = 'vendor';
+$form->{ARAP} = 'AP';
+
+1;
+# end of main
+
diff --git a/bin/mozilla/ar.pl b/bin/mozilla/ar.pl
new file mode 100755
index 00000000..c150a045
--- /dev/null
+++ b/bin/mozilla/ar.pl
@@ -0,0 +1,28 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has NOT undergone whitespace cleanup.
+#
+#======================================================================
+#
+# Accounts Receivable
+#
+#======================================================================
+
+use LedgerSMB::PE;
+use LedgerSMB::IS;
+
+require "$form->{path}/arap.pl";
+require "$form->{path}/arapprn.pl";
+require "$form->{path}/aa.pl";
+
+$form->{vc} = 'customer';
+$form->{ARAP} = 'AR';
+
+1;
+# end of main
+
diff --git a/bin/mozilla/arap.pl b/bin/mozilla/arap.pl
new file mode 100755
index 00000000..4c6914bd
--- /dev/null
+++ b/bin/mozilla/arap.pl
@@ -0,0 +1,907 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has NOT undergone whitespace cleanup.
+#
+#======================================================================
+#
+# common routines for gl, ar, ap, is, ir, oe
+#
+
+use LedgerSMB::AA;
+
+# any custom scripts for this one
+if (-f "$form->{path}/custom_arap.pl") {
+ eval { require "$form->{path}/custom_arap.pl"; };
+}
+if (-f "$form->{path}/$form->{login}_arap.pl") {
+ eval { require "$form->{path}/$form->{login}_arap.pl"; };
+}
+
+
+1;
+# end of main
+
+
+sub check_name {
+ my ($name) = @_;
+
+ my ($new_name, $new_id) = split /--/, $form->{$name};
+ my $rv = 0;
+
+ # if we use a selection
+ if ($form->{"select$name"}) {
+ if ($form->{"old$name"} ne $form->{$name}) {
+ # this is needed for is, ir and oe
+ for (split / /, $form->{taxaccounts}) { delete $form->{"${_}_rate"} }
+
+ # for credit calculations
+ $form->{oldinvtotal} = 0;
+ $form->{oldtotalpaid} = 0;
+ $form->{calctax} = 1;
+
+ $form->{"${name}_id"} = $new_id;
+ AA->get_name(\%myconfig, \%$form);
+
+ $form->{$name} = $form->{"old$name"} = "$new_name--$new_id";
+ $form->{currency} =~ s/ //g;
+
+ # put employee together if there is a new employee_id
+ $form->{employee} = "$form->{employee}--$form->{employee_id}" if $form->{employee_id};
+
+ $rv = 1;
+ }
+ } else {
+
+ # check name, combine name and id
+ if ($form->{"old$name"} ne qq|$form->{$name}--$form->{"${name}_id"}|) {
+ # this is needed for is, ir and oe
+ for (split / /, $form->{taxaccounts}) { delete $form->{"${_}_rate"} }
+
+ # for credit calculations
+ $form->{oldinvtotal} = 0;
+ $form->{oldtotalpaid} = 0;
+ $form->{calctax} = 1;
+
+ # return one name or a list of names in $form->{name_list}
+ if (($rv = $form->get_name(\%myconfig, $name, $form->{transdate})) > 1) {
+ &select_name($name);
+ exit;
+ }
+
+ if ($rv == 1) {
+ # we got one name
+ $form->{"${name}_id"} = $form->{name_list}[0]->{id};
+ $form->{$name} = $form->{name_list}[0]->{name};
+ $form->{"old$name"} = qq|$form->{$name}--$form->{"${name}_id"}|;
+
+ AA->get_name(\%myconfig, \%$form);
+
+ $form->{currency} =~ s/ //g;
+ # put employee together if there is a new employee_id
+ $form->{employee} = "$form->{employee}--$form->{employee_id}" if $form->{employee_id};
+
+ } else {
+ # name is not on file
+ $msg = ucfirst $name . " not on file!";
+ $form->error($locale->text($msg));
+ }
+ }
+ }
+
+ $rv;
+
+}
+
+# $locale->text('Customer not on file!')
+# $locale->text('Vendor not on file!')
+
+
+sub select_name {
+ my ($table) = @_;
+
+ @column_index = qw(ndx name address);
+
+ $label = ucfirst $table;
+ $column_data{ndx} = qq|<th>&nbsp;</th>|;
+ $column_data{name} = qq|<th class=listheading>|.$locale->text($label).qq|</th>|;
+ $column_data{address} = qq|<th class=listheading colspan=5>|.$locale->text('Address').qq|</th>|;
+
+ # list items with radio button on a form
+ $form->header;
+
+ $title = $locale->text('Select from one of the names below');
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$title</th>
+ </tr>
+ <tr space=5></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ @column_index = qw(ndx name address city state zipcode country);
+
+ my $i = 0;
+ foreach $ref (@{ $form->{name_list} }) {
+ $checked = ($i++) ? "" : "checked";
+
+ $ref->{name} = $form->quote($ref->{name});
+
+ $column_data{ndx} = qq|<td><input name=ndx class=radio type=radio value=$i $checked></td>|;
+ $column_data{name} = qq|<td><input name="new_name_$i" type=hidden value="$ref->{name}">$ref->{name}</td>|;
+ $column_data{address} = qq|<td>$ref->{address1} $ref->{address2}</td>|;
+ for (qw(city state zipcode country)) { $column_data{$_} = qq|<td>$ref->{$_}&nbsp;</td>| }
+
+ $j++; $j %= 2;
+ print qq|
+ <tr class=listrow$j>|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+
+<input name="new_id_$i" type=hidden value=$ref->{id}>
+
+|;
+
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<input name=lastndx type=hidden value=$i>
+
+|;
+
+ # delete variables
+ for (qw(nextsub name_list)) { delete $form->{$_} }
+
+ $form->{action} = "name_selected";
+
+ $form->hide_form;
+
+ print qq|
+<input type=hidden name=nextsub value=name_selected>
+<input type=hidden name=vc value=$table>
+<br>
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+
+sub name_selected {
+
+ # replace the variable with the one checked
+
+ # index for new item
+ $i = $form->{ndx};
+
+ $form->{$form->{vc}} = $form->{"new_name_$i"};
+ $form->{"$form->{vc}_id"} = $form->{"new_id_$i"};
+ $form->{"old$form->{vc}"} = qq|$form->{$form->{vc}}--$form->{"$form->{vc}_id"}|;
+
+ # delete all the new_ variables
+ for $i (1 .. $form->{lastndx}) {
+ for (qw(id, name)) { delete $form->{"new_${_}_$i"} }
+ }
+
+ for (qw(ndx lastndx nextsub)) { delete $form->{$_} }
+
+ AA->get_name(\%myconfig, \%$form);
+
+ # put employee together if there is a new employee_id
+ $form->{employee} = "$form->{employee}--$form->{employee_id}" if $form->{employee_id};
+
+ &update(1);
+
+}
+
+
+sub rebuild_vc {
+ my ($vc, $ARAP, $transdate, $job) = @_;
+
+ ($null, $form->{employee_id}) = split /--/, $form->{employee};
+ $form->all_vc(\%myconfig, $vc, $ARAP, undef, $transdate, $job);
+ $form->{"select$vc"} = "";
+ for (@{ $form->{"all_$vc"} }) { $form->{"select$vc"} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+
+ $form->{selectprojectnumber} = "";
+ if (@{ $form->{all_project} }) {
+ $form->{selectprojectnumber} = "<option>\n";
+ for (@{ $form->{all_project} }) { $form->{selectprojectnumber} .= qq|<option value="$_->{projectnumber}--$_->{id}">$_->{projectnumber}\n| }
+ }
+
+ 1;
+}
+
+
+
+sub add_transaction {
+ my ($module) = @_;
+
+ delete $form->{script};
+ $form->{action} = "add";
+ $form->{type} = "invoice" if $module =~ /(is|ir)/;
+
+ $form->{callback} = $form->escape($form->{callback},1);
+ $argv = "";
+ for (keys %$form) { $argv .= "$_=$form->{$_}&" }
+
+ $form->{callback} = "$module.pl?$argv";
+
+ $form->redirect;
+
+}
+
+
+
+sub check_project {
+
+ for $i (1 .. $form->{rowcount}) {
+ $form->{"project_id_$i"} = "" unless $form->{"projectnumber_$i"};
+ if ($form->{"projectnumber_$i"} ne $form->{"oldprojectnumber_$i"}) {
+ if ($form->{"projectnumber_$i"}) {
+ # get new project
+ $form->{projectnumber} = $form->{"projectnumber_$i"};
+ if (($rows = PE->projects(\%myconfig, $form)) > 1) {
+ # check form->{project_list} how many there are
+ $form->{rownumber} = $i;
+ &select_project;
+ exit;
+ }
+
+ if ($rows == 1) {
+ $form->{"project_id_$i"} = $form->{project_list}->[0]->{id};
+ $form->{"projectnumber_$i"} = $form->{project_list}->[0]->{projectnumber};
+ $form->{"oldprojectnumber_$i"} = $form->{project_list}->[0]->{projectnumber};
+ } else {
+ # not on file
+ $form->error($locale->text('Project not on file!'));
+ }
+ } else {
+ $form->{"oldprojectnumber_$i"} = "";
+ }
+ }
+ }
+
+}
+
+
+sub select_project {
+
+ @column_index = qw(ndx projectnumber description);
+
+ $column_data{ndx} = qq|<th>&nbsp;</th>|;
+ $column_data{projectnumber} = qq|<th>|.$locale->text('Number').qq|</th>|;
+ $column_data{description} = qq|<th>|.$locale->text('Description').qq|</th>|;
+
+ # list items with radio button on a form
+ $form->header;
+
+ $title = $locale->text('Select from one of the projects below');
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=rownumber value=$form->{rownumber}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$title</th>
+ </tr>
+ <tr space=5></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ my $i = 0;
+ foreach $ref (@{ $form->{project_list} }) {
+ $checked = ($i++) ? "" : "checked";
+
+ $ref->{name} = $form->quote($ref->{name});
+
+ $column_data{ndx} = qq|<td><input name=ndx class=radio type=radio value=$i $checked></td>|;
+ $column_data{projectnumber} = qq|<td><input name="new_projectnumber_$i" type=hidden value="$ref->{projectnumber}">$ref->{projectnumber}</td>|;
+ $column_data{description} = qq|<td>$ref->{description}</td>|;
+
+ $j++; $j %= 2;
+ print qq|
+ <tr class=listrow$j>|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+
+<input name="new_id_$i" type=hidden value=$ref->{id}>
+
+|;
+
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<input name=lastndx type=hidden value=$i>
+
+|;
+
+ # delete list variable
+ for (qw(nextsub project_list)) { delete $form->{$_} }
+
+ $form->{action} = "project_selected";
+
+ $form->hide_form;
+
+ print qq|
+<input type=hidden name=nextsub value=project_selected>
+<br>
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub project_selected {
+
+ # replace the variable with the one checked
+
+ # index for new item
+ $i = $form->{ndx};
+
+ $form->{"projectnumber_$form->{rownumber}"} = $form->{"new_projectnumber_$i"};
+ $form->{"oldprojectnumber_$form->{rownumber}"} = $form->{"new_projectnumber_$i"};
+ $form->{"project_id_$form->{rownumber}"} = $form->{"new_id_$i"};
+
+ # delete all the new_ variables
+ for $i (1 .. $form->{lastndx}) {
+ for (qw(id projectnumber description)) { delete $form->{"new_${_}_$i"} }
+ }
+
+ for (qw(ndx lastndx nextsub)) { delete $form->{$_} }
+
+ if ($form->{update}) {
+ &{ $form->{update} };
+ } else {
+ &update;
+ }
+
+}
+
+
+sub post_as_new {
+
+ for (qw(id printed emailed queued)) { delete $form->{$_} }
+ &post;
+
+}
+
+
+sub print_and_post_as_new {
+
+ for (qw(id printed emailed queued)) { delete $form->{$_} }
+ &print_and_post;
+
+}
+
+
+sub repost {
+
+ if ($form->{type} =~ /_order/) {
+ if ($form->{print_and_save}) {
+ $form->{nextsub} = "print_and_save";
+ $msg = $locale->text('You are printing and saving an existing order');
+ } else {
+ $form->{nextsub} = "save";
+ $msg = $locale->text('You are saving an existing order');
+ }
+ } elsif ($form->{type} =~ /_quotation/) {
+ if ($form->{print_and_save}) {
+ $form->{nextsub} = "print_and_save";
+ $msg = $locale->text('You are printing and saving an existing quotation');
+ } else {
+ $form->{nextsub} = "save";
+ $msg = $locale->text('You are saving an existing quotation');
+ }
+ } else {
+ if ($form->{print_and_post}) {
+ $form->{nextsub} = "print_and_post";
+ $msg = $locale->text('You are printing and posting an existing transaction!');
+ } else {
+ $form->{nextsub} = "post";
+ $msg = $locale->text('You are posting an existing transaction!');
+ }
+ }
+
+ delete $form->{action};
+ $form->{repost} = 1;
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+|;
+
+ $form->hide_form;
+
+ print qq|
+<h2 class=confirm>|.$locale->text('Warning!').qq|</h2>
+
+<h4>$msg</h4>
+
+<input name=action class=submit type=submit value="|.$locale->text('Continue').qq|">
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub schedule {
+
+ ($form->{recurringreference}, $form->{recurringstartdate}, $form->{recurringrepeat}, $form->{recurringunit}, $form->{recurringhowmany}, $form->{recurringpayment}, $form->{recurringprint}, $form->{recurringemail}, $form->{recurringmessage}) = split /,/, $form->{recurring};
+
+ $form->{recurringreference} = $form->quote($form->unescape($form->{recurringreference}));
+ $form->{recurringmessage} = $form->quote($form->unescape($form->{recurringmessage}));
+
+ $form->{recurringstartdate} ||= $form->{transdate};
+ $recurringpayment = "checked" if $form->{recurringpayment};
+
+ if ($form->{paidaccounts}) {
+ $postpayment = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Include Payment').qq|</th>
+ <td><input name=recurringpayment type=checkbox class=checkbox value=1 $recurringpayment></td>
+ </tr>
+|;
+ }
+
+ if ($form->{recurringnextdate}) {
+ $nextdate = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Next Date').qq|</th>
+ <td><input name=recurringnextdate size=11 title="($myconfig{'dateformat'})" value=$form->{recurringnextdate}></td>
+ </tr>
+|;
+ }
+
+ @a = split /<option/, $form->unescape($form->{selectformname});
+ %formname = ();
+
+ for ($i = 1; $i <= $#a; $i++) {
+ $a[$i] =~ /"(.*)"/;
+ $v = $1;
+ $a[$i] =~ />(.*)/;
+ $formname{$v} = $1;
+ }
+ for (qw(check receipt)) { delete $formname{$_} }
+
+ $selectformat = $form->unescape($form->{selectformat});
+
+ if ($form->{type} !~ /transaction/ && %formname) {
+ $email = qq|
+ <table>
+ <tr>
+ <th colspan=2 class=listheading>|.$locale->text('E-mail').qq|</th>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+|;
+
+ # formname:format
+ @p = split /:/, $form->{recurringemail};
+ %p = ();
+ for ($i = 0; $i <= $#p; $i += 2) {
+ $p{$p[$i]}{format} = $p[$i+1];
+ }
+
+ foreach $item (keys %formname) {
+
+ $checked = ($p{$item}{format}) ? "checked" : "";
+ $selectformat =~ s/ selected//;
+ $p{$item}{format} ||= "pdf";
+ $selectformat =~ s/(<option value="\Q$p{$item}{format}\E")/$1 selected/;
+
+ $email .= qq|
+ <tr>
+ <td><input name="email$item" type=checkbox class=checkbox value=1 $checked></td>
+ <th align=left>$formname{$item}</th>
+ <td><select name="emailformat$item">$selectformat</select></td>
+ </tr>
+|;
+ }
+
+ $email .= qq|
+ </table>
+ </td>
+ </tr>
+ </table>
+|;
+
+ $message = qq|
+ <table>
+ <tr>
+ <th class=listheading>|.$locale->text('E-mail message').qq|</th>
+ </tr>
+
+ <tr>
+ <td><textarea name="recurringmessage" rows=10 cols=60 wrap=soft>$form->{recurringmessage}</textarea></td>
+ </tr>
+ </table>
+|;
+
+ }
+
+
+ if (%printer && $latex && %formname) {
+ $selectprinter = qq|<option>\n|;
+ for (sort keys %printer) { $selectprinter .= qq|<option value="$_">$_\n| }
+
+ # formname:format:printer
+ @p = split /:/, $form->{recurringprint};
+
+ %p = ();
+ for ($i = 0; $i <= $#p; $i += 3) {
+ $p{$p[$i]}{formname} = $p[$i];
+ $p{$p[$i]}{format} = $p[$i+1];
+ $p{$p[$i]}{printer} = $p[$i+2];
+ }
+
+ $print = qq|
+ <table>
+ <tr>
+ <th colspan=2 class=listheading>|.$locale->text('Print').qq|</th>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+|;
+
+ $selectformat =~ s/<option.*html//;
+ foreach $item (keys %formname) {
+
+ $selectprinter =~ s/ selected//;
+ $selectprinter =~ s/(<option value="\Q$p{$item}{printer}\E")/$1 selected/;
+
+ $checked = ($p{$item}{formname}) ? "checked" : "";
+
+ $selectformat =~ s/ selected//;
+ $p{$item}{format} ||= "postscript";
+ $selectformat =~ s/(<option value="\Q$p{$item}{format}\E")/$1 selected/;
+
+ $print .= qq|
+ <tr>
+ <td><input name="print$item" type=checkbox class=checkbox value=1 $checked></td>
+ <th align=left>$formname{$item}</th>
+ <td><select name="printprinter$item">$selectprinter</select></td>
+ <td><select name="printformat$item">$selectformat</select></td>
+ </tr>
+|;
+ }
+
+ $print .= qq|
+ </table>
+ </td>
+ </tr>
+ </table>
+|;
+
+
+ }
+
+ $selectrepeat = "";
+ for (1 .. 31) { $selectrepeat .= qq|<option value="$_">$_\n| }
+ $selectrepeat =~ s/(<option value="$form->{recurringrepeat}")/$1 selected/;
+
+ $selectunit = qq|<option value="days">|.$locale->text('Day(s)').qq|
+ <option value="weeks">|.$locale->text('Week(s)').qq|
+ <option value="months">|.$locale->text('Month(s)').qq|
+ <option value="years">|.$locale->text('Year(s)');
+
+ if ($form->{recurringunit}) {
+ $selectunit =~ s/(<option value="$form->{recurringunit}")/$1 selected/;
+ }
+
+ if ($form->{$form->{vc}}) {
+ $description = $form->{$form->{vc}};
+ } else {
+ $description = $form->{description};
+ }
+
+ $repeat = qq|
+ <table>
+ <tr>
+ <th colspan=3 class=listheading>|.$locale->text('Repeat').qq|</th>
+ </tr>
+
+ <tr>
+ <th align=right nowrap>|.$locale->text('Every').qq|</th>
+ <td><select name=recurringrepeat>$selectrepeat</td>
+ <td><select name=recurringunit>$selectunit</td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('For').qq|</th>
+ <td><input name=recurringhowmany size=3 value=$form->{recurringhowmany}></td>
+ <th align=left nowrap>|.$locale->text('time(s)').qq|</th>
+ </tr>
+ </table>
+|;
+
+
+ $title = $locale->text('Recurring Transaction') ." ". $locale->text('for') ." $description";
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr class=listtop>
+ <th class=listtop>$title</th>
+ </tr>
+ <tr space=5></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Reference').qq|</th>
+ <td><input name=recurringreference size=20 value="$form->{recurringreference}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Startdate').qq|</th>
+ <td><input name=recurringstartdate size=11 title="($myconfig{'dateformat'})" value=$form->{recurringstartdate}></td>
+ </tr>
+ $nextdate
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+ $postpayment
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+ <tr valign=top>
+ <td>$repeat</td>
+ <td>$print</td>
+ </tr>
+ <tr valign=top>
+ <td>$email</td>
+ <td>$message</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+|;
+
+# type=submit $locale->text('Save Schedule')
+# type=submit $locale->text('Delete Schedule')
+
+ %button = ('Save Schedule' => { ndx => 1, key => 'S', value => $locale->text('Save Schedule') },
+ 'Delete Schedule' => { ndx => 16, key => 'D', value => $locale->text('Delete Schedule') },
+ );
+
+ $form->print_button(\%button, 'Save Schedule');
+
+ if ($form->{recurring}) {
+ $form->print_button(\%button, 'Delete Schedule');
+ }
+
+ # delete variables
+ for (qw(action recurring)) { delete $form->{$_} }
+ for (qw(reference startdate nextdate enddate repeat unit howmany payment print email message)) { delete $form->{"recurring$_"} }
+
+ $form->hide_form;
+
+ print qq|
+
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub save_schedule {
+
+ $form->{recurring} = "";
+
+ $form->{recurringreference} = $form->escape($form->{recurringreference},1);
+ $form->{recurringmessage} = $form->escape($form->{recurringmessage},1);
+ if ($form->{recurringstartdate}) {
+ for (qw(reference startdate repeat unit howmany payment)) { $form->{recurring} .= qq|$form->{"recurring$_"},| }
+ }
+
+ @a = split /<option/, $form->unescape($form->{selectformname});
+ @p = ();
+
+ for ($i = 1; $i <= $#a; $i++) {
+ $a[$i] =~ /"(.*)"/;
+ push @p, $1;
+ }
+
+ $recurringemail = "";
+ for (@p) { $recurringemail .= qq|$_:$form->{"emailformat$_"}:| if $form->{"email$_"} }
+ chop $recurringemail;
+
+ $recurringprint = "";
+ for (@p) { $recurringprint .= qq|$_:$form->{"printformat$_"}:$form->{"printprinter$_"}:| if $form->{"print$_"} }
+ chop $recurringprint;
+
+ $form->{recurring} .= qq|$recurringprint,$recurringemail,$form->{recurringmessage}| if $recurringemail || $recurringprint;
+
+ $form->save_recurring(undef, \%myconfig) if $form->{id};
+
+ if ($form->{recurringid}) {
+ $form->redirect;
+ } else {
+ &update;
+ }
+
+}
+
+
+sub delete_schedule {
+
+ $form->{recurring} = "";
+
+ $form->save_recurring(undef, \%myconfig) if $form->{id};
+
+ if ($form->{recurringid}) {
+ $form->redirect;
+ } else {
+ &update;
+ }
+
+}
+
+
+sub reprint {
+
+ $myconfig{vclimit} = 0;
+ $pf = "print_form";
+
+ for (qw(format formname media message)) { $temp{$_} = $form->{$_} }
+
+ if ($form->{module} eq 'oe') {
+ &order_links;
+ &prepare_order;
+ delete $form->{order_details};
+ for (keys %$form) { $form->{$_} = $form->unquote($form->{$_}) }
+ } else {
+ if ($form->{type} eq 'invoice') {
+ &invoice_links;
+ &prepare_invoice;
+ for (keys %$form) { $form->{$_} = $form->unquote($form->{$_}) }
+ } else {
+ &create_links;
+ $form->{rowcount}--;
+ for (1 .. $form->{rowcount}) { $form->{"amount_$_"} = $form->format_amount(\%myconfig, $form->{"amount_$_"}, 2) }
+ for (split / /, $form->{taxaccounts}) { $form->{"tax_$_"} = $form->format_amount(\%myconfig, $form->{"tax_$_"}, 2) }
+ $pf = "print_transaction";
+ }
+ for (qw(acc_trans invoice_details)) { delete $form->{$_} }
+ }
+
+ for (qw(department employee language month partsgroup project years)) { delete $form->{"all_$_"} }
+
+ for (keys %temp) { $form->{$_} = $temp{$_} }
+
+ $form->{rowcount}++;
+ $form->{paidaccounts}++;
+
+ delete $form->{paid};
+
+ for (1 .. $form->{paidaccounts}) { $form->{"paid_$_"} = $form->format_amount(\%myconfig, $form->{"paid_$_"}, 2) }
+
+ $form->{copies} = 1;
+
+ &$pf;
+
+ if ($form->{media} eq 'email') {
+ # add email message
+ $now = scalar localtime;
+ $cc = $locale->text('Cc').qq|: $form->{cc}\n| if $form->{cc};
+ $bcc = $locale->text('Bcc').qq|: $form->{bcc}\n| if $form->{bcc};
+
+ $form->{intnotes} .= qq|\n\n| if $form->{intnotes};
+ $form->{intnotes} .= qq|[email]\n|
+ .$locale->text('Date').qq|: $now\n|
+ .$locale->text('To').qq|: $form->{email}\n${cc}${bcc}|
+ .$locale->text('Subject').qq|: $form->{subject}\n\n|
+ .$locale->text('Message').qq|: |;
+
+ $form->{intnotes} .= ($form->{message}) ? $form->{message} : $locale->text('sent');
+
+ $form->save_intnotes(\%myconfig, $form->{module});
+ }
+
+}
+
+
+sub continue { &{ $form->{nextsub} } };
+sub gl_transaction { &add };
+sub ar_transaction { &add_transaction(ar) };
+sub ap_transaction { &add_transaction(ap) };
+sub sales_invoice_ { &add_transaction(is) };
+sub vendor_invoice_ { &add_transaction(ir) };
+
diff --git a/bin/mozilla/arapprn.pl b/bin/mozilla/arapprn.pl
new file mode 100755
index 00000000..84548415
--- /dev/null
+++ b/bin/mozilla/arapprn.pl
@@ -0,0 +1,580 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has NOT undergone whitespace cleanup.
+#
+#======================================================================
+#
+#
+# printing routines for ar, ap
+#
+
+# any custom scripts for this one
+if (-f "$form->{path}/custom_arapprn.pl") {
+ eval { require "$form->{path}/custom_arapprn.pl"; };
+}
+if (-f "$form->{path}/$form->{login}_arapprn.pl") {
+ eval { require "$form->{path}/$form->{login}_arapprn.pl"; };
+}
+
+
+1;
+# end of main
+
+
+sub print {
+
+ if ($form->{media} !~ /screen/) {
+ $form->error($locale->text('Select postscript or PDF!')) if $form->{format} !~ /(postscript|pdf)/;
+ $old_form = new Form;
+ for (keys %$form) { $old_form->{$_} = $form->{$_} }
+ }
+
+ if ($form->{formname} =~ /(check|receipt)/) {
+ if ($form->{media} eq 'screen') {
+ $form->error($locale->text('Select postscript or PDF!')) if $form->{format} !~ /(postscript|pdf)/;
+ }
+ }
+
+ if (! $form->{invnumber}) {
+ $invfld = 'sinumber';
+ $invfld = 'vinumber' if $form->{ARAP} eq 'AP';
+ $form->{invnumber} = $form->update_defaults(\%myconfig, $invfld);
+ if ($form->{media} eq 'screen') {
+ if ($form->{media} eq 'screen') {
+ &update;
+ exit;
+ }
+ }
+ }
+
+ if ($form->{formname} =~ /(check|receipt)/) {
+ if ($form->{media} ne 'screen') {
+ for (qw(action header)) { delete $form->{$_} }
+ $form->{invtotal} = $form->{oldinvtotal};
+
+ foreach $key (keys %$form) {
+ $form->{$key} =~ s/&/%26/g;
+ $form->{previousform} .= qq|$key=$form->{$key}&|;
+ }
+ chop $form->{previousform};
+ $form->{previousform} = $form->escape($form->{previousform}, 1);
+ }
+
+ if ($form->{paidaccounts} > 1) {
+ if ($form->{"paid_$form->{paidaccounts}"}) {
+ &update;
+ exit;
+ } elsif ($form->{paidaccounts} > 2) {
+ # select payment
+ &select_payment;
+ exit;
+ }
+ } else {
+ $form->error($locale->text('Nothing to print!'));
+ }
+
+ }
+
+ &{ "print_$form->{formname}" }($old_form, 1);
+
+}
+
+
+sub print_check {
+ my ($old_form, $i) = @_;
+
+ $display_form = ($form->{display_form}) ? $form->{display_form} : "display_form";
+
+ if ($form->{"paid_$i"}) {
+ @a = ();
+
+ if (exists $form->{longformat}) {
+ $form->{"datepaid_$i"} = $locale->date(\%myconfig, $form->{"datepaid_$i"}, $form->{longformat});
+ }
+
+ push @a, "source_$i", "memo_$i";
+ $form->format_string(@a);
+ }
+
+ $form->{amount} = $form->{"paid_$i"};
+
+ if (($form->{formname} eq 'check' && $form->{vc} eq 'customer') ||
+ ($form->{formname} eq 'receipt' && $form->{vc} eq 'vendor')) {
+ $form->{amount} =~ s/-//g;
+ }
+
+ for (qw(datepaid source memo)) { $form->{$_} = $form->{"${_}_$i"} }
+
+ &{ "$form->{vc}_details" };
+ @a = qw(name address1 address2 city state zipcode country);
+
+ foreach $item (qw(invnumber ordnumber)) {
+ $temp{$item} = $form->{$item};
+ delete $form->{$item};
+ push(@{ $form->{$item} }, $temp{$item});
+ }
+ push(@{ $form->{invdate} }, $form->{transdate});
+ push(@{ $form->{due} }, $form->format_amount(\%myconfig, $form->{oldinvtotal}, 2));
+ push(@{ $form->{paid} }, $form->{"paid_$i"});
+
+ use LedgerSMB::CP;
+ $c = CP->new(($form->{language_code}) ? $form->{language_code} : $myconfig{countrycode});
+ $c->init;
+ ($whole, $form->{decimal}) = split /\./, $form->parse_amount(\%myconfig, $form->{amount});
+
+ $form->{decimal} .= "00";
+ $form->{decimal} = substr($form->{decimal}, 0, 2);
+ $form->{text_decimal} = $c->num2text($form->{decimal} * 1);
+ $form->{text_amount} = $c->num2text($whole);
+ $form->{integer_amount} = $form->format_amount($myconfig, $whole);
+
+ ($form->{employee}) = split /--/, $form->{employee};
+
+ $form->{notes} =~ s/^\s+//g;
+ push @a, "notes";
+
+ for (qw(company address tel fax businessnumber)) { $form->{$_} = $myconfig{$_} }
+ $form->{address} =~ s/\\n/\n/g;
+
+ push @a, qw(company address tel fax businessnumber text_amount text_decimal);
+
+ $form->format_string(@a);
+
+ $form->{templates} = "$myconfig{templates}";
+ $form->{IN} = ($form->{formname} eq 'transaction') ? lc $form->{ARAP} . "_$form->{formname}.html" : "$form->{formname}.html";
+
+ if ($form->{format} =~ /(postscript|pdf)/) {
+ $form->{IN} =~ s/html$/tex/;
+ }
+
+ if ($form->{media} !~ /(screen)/) {
+ $form->{OUT} = "| $printer{$form->{media}}";
+
+ if ($form->{printed} !~ /$form->{formname}/) {
+
+ $form->{printed} .= " $form->{formname}";
+ $form->{printed} =~ s/^ //;
+
+ $form->update_status(\%myconfig);
+ }
+
+ %audittrail = ( tablename => lc $form->{ARAP},
+ reference => $form->{invnumber},
+ formname => $form->{formname},
+ action => 'printed',
+ id => $form->{id} );
+
+ %status = ();
+ for (qw(printed audittrail)) { $status{$_} = $form->{$_} }
+
+ $status{audittrail} .= $form->audittrail("", \%myconfig, \%audittrail);
+
+ }
+
+ $form->{fileid} = $invnumber;
+ $form->{fileid} =~ s/(\s|\W)+//g;
+
+ $form->parse_template(\%myconfig, $userspath);
+
+ if ($form->{previousform}) {
+
+ $previousform = $form->unescape($form->{previousform});
+
+ for (keys %$form) { delete $form->{$_} }
+
+ foreach $item (split /&/, $previousform) {
+ ($key, $value) = split /=/, $item, 2;
+ $value =~ s/%26/&/g;
+ $form->{$key} = $value;
+ }
+
+ for (qw(exchangerate creditlimit creditremaining)) { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) }
+
+ for (1 .. $form->{rowcount}) { $form->{"amount_$_"} = $form->parse_amount(\%myconfig, $form->{"amount_$_"}) }
+ for (split / /, $form->{taxaccounts}) { $form->{"tax_$_"} = $form->parse_amount(\%myconfig, $form->{"tax_$_"}) }
+
+ for $i (1 .. $form->{paidaccounts}) {
+ for (qw(paid exchangerate)) { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) }
+ }
+
+ for (qw(printed audittrail)) { $form->{$_} = $status{$_} }
+
+ &{ "$display_form" };
+
+ }
+
+}
+
+
+sub print_receipt {
+ my ($old_form, $i) = @_;
+
+ &print_check($old_form, $i);
+
+}
+
+
+sub print_transaction {
+ my ($old_form) = @_;
+
+ $display_form = ($form->{display_form}) ? $form->{display_form} : "display_form";
+
+
+ &{ "$form->{vc}_details" };
+ @a = qw(name address1 address2 city state zipcode country);
+
+
+ $form->{invtotal} = 0;
+ foreach $i (1 .. $form->{rowcount} - 1) {
+ ($form->{tempaccno}, $form->{tempaccount}) = split /--/, $form->{"$form->{ARAP}_amount_$i"};
+ ($form->{tempprojectnumber}) = split /--/, $form->{"projectnumber_$i"};
+ $form->{tempdescription} = $form->{"description_$i"};
+
+ $form->format_string(qw(tempaccno tempaccount tempprojectnumber tempdescription));
+
+ push(@{ $form->{accno} }, $form->{tempaccno});
+ push(@{ $form->{account} }, $form->{tempaccount});
+ push(@{ $form->{description} }, $form->{tempdescription});
+ push(@{ $form->{projectnumber} }, $form->{tempprojectnumber});
+
+ push(@{ $form->{amount} }, $form->{"amount_$i"});
+
+ $form->{subtotal} += $form->parse_amount(\%myconfig, $form->{"amount_$i"});
+
+ }
+
+ foreach $accno (split / /, $form->{taxaccounts}) {
+ if ($form->{"tax_$accno"}) {
+ $form->format_string("${accno}_description");
+
+ $tax += $form->parse_amount(\%myconfig, $form->{"tax_$accno"});
+
+ $form->{"${accno}_tax"} = $form->{"tax_$accno"};
+ push(@{ $form->{tax} }, $form->{"tax_$accno"});
+
+ push(@{ $form->{taxdescription} }, $form->{"${accno}_description"});
+
+ $form->{"${accno}_taxrate"} = $form->format_amount($myconfig, $form->{"${accno}_rate"} * 100);
+ push(@{ $form->{taxrate} }, $form->{"${accno}_taxrate"});
+
+ push(@{ $form->{taxnumber} }, $form->{"${accno}_taxnumber"});
+ }
+ }
+
+ $tax = 0 if $form->{taxincluded};
+
+ push @a, $form->{ARAP};
+ $form->format_string(@a);
+
+ $form->{paid} = 0;
+ for $i (1 .. $form->{paidaccounts} - 1) {
+
+ if ($form->{"paid_$i"}) {
+ @a = ();
+ $form->{paid} += $form->parse_amount(\%myconfig, $form->{"paid_$i"});
+
+ if (exists $form->{longformat}) {
+ $form->{"datepaid_$i"} = $locale->date(\%myconfig, $form->{"datepaid_$i"}, $form->{longformat});
+ }
+
+ push @a, "$form->{ARAP}_paid_$i", "source_$i", "memo_$i";
+ $form->format_string(@a);
+
+ ($accno, $account) = split /--/, $form->{"$form->{ARAP}_paid_$i"};
+
+ push(@{ $form->{payment} }, $form->{"paid_$i"});
+ push(@{ $form->{paymentdate} }, $form->{"datepaid_$i"});
+ push(@{ $form->{paymentaccount} }, $account);
+ push(@{ $form->{paymentsource} }, $form->{"source_$i"});
+ push(@{ $form->{paymentmemo} }, $form->{"memo_$i"});
+ }
+
+ }
+
+ $form->{invtotal} = $form->{subtotal} + $tax;
+ $form->{total} = $form->{invtotal} - $form->{paid};
+
+ use LedgerSMB::CP;
+ $c = CP->new(($form->{language_code}) ? $form->{language_code} : $myconfig{countrycode});
+ $c->init;
+ ($whole, $form->{decimal}) = split /\./, $form->{invtotal};
+
+ $form->{decimal} .= "00";
+ $form->{decimal} = substr($form->{decimal}, 0, 2);
+ $form->{text_decimal} = $c->num2text($form->{decimal} * 1);
+ $form->{text_amount} = $c->num2text($whole);
+ $form->{integer_amount} = $form->format_amount($myconfig, $whole);
+
+ for (qw(invtotal subtotal paid total)) { $form->{$_} = $form->format_amount(\%myconfig, $form->{$_}, 2) }
+
+ ($form->{employee}) = split /--/, $form->{employee};
+
+ if (exists $form->{longformat}) {
+ for (qw(duedate transdate)) { $form->{$_} = $locale->date(\%myconfig, $form->{$_}, $form->{longformat}) }
+ }
+
+ $form->{notes} =~ s/^\s+//g;
+
+ @a = ("invnumber", "transdate", "duedate", "notes");
+
+ for (qw(company address tel fax businessnumber)) { $form->{$_} = $myconfig{$_} }
+ $form->{address} =~ s/\\n/\n/g;
+
+ push @a, qw(company address tel fax businessnumber text_amount text_decimal);
+
+ $form->format_string(@a);
+
+ $form->{invdate} = $form->{transdate};
+
+ $form->{templates} = "$myconfig{templates}";
+ $form->{IN} = ($form->{formname} eq 'transaction') ? lc $form->{ARAP} . "_$form->{formname}.html" : "$form->{formname}.html";
+
+ if ($form->{format} =~ /(postscript|pdf)/) {
+ $form->{IN} =~ s/html$/tex/;
+ }
+
+ if ($form->{media} !~ /(screen)/) {
+ $form->{OUT} = "| $printer{$form->{media}}";
+
+ if ($form->{printed} !~ /$form->{formname}/) {
+
+ $form->{printed} .= " $form->{formname}";
+ $form->{printed} =~ s/^ //;
+
+ $form->update_status(\%myconfig);
+ }
+
+ $old_form->{printed} = $form->{printed} if %$old_form;
+
+ %audittrail = ( tablename => lc $form->{ARAP},
+ reference => $form->{"invnumber"},
+ formname => $form->{formname},
+ action => 'printed',
+ id => $form->{id} );
+
+ $old_form->{audittrail} .= $form->audittrail("", \%myconfig, \%audittrail) if %$old_form;
+
+ }
+
+ $form->{fileid} = $form->{invnumber};
+ $form->{fileid} =~ s/(\s|\W)+//g;
+
+ $form->parse_template(\%myconfig, $userspath);
+
+ if (%$old_form) {
+ $old_form->{invnumber} = $form->{invnumber};
+ $old_form->{invtotal} = $form->{invtotal};
+
+ for (keys %$form) { delete $form->{$_} }
+ for (keys %$old_form) { $form->{$_} = $old_form->{$_} }
+
+ if (! $form->{printandpost}) {
+ for (qw(exchangerate creditlimit creditremaining)) { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) }
+
+ for (1 .. $form->{rowcount}) { $form->{"amount_$_"} = $form->parse_amount(\%myconfig, $form->{"amount_$_"}) }
+ for (split / /, $form->{taxaccounts}) { $form->{"tax_$_"} = $form->parse_amount(\%myconfig, $form->{"tax_$_"}) }
+
+ for $i (1 .. $form->{paidaccounts}) {
+ for (qw(paid exchangerate)) { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) }
+ }
+ }
+
+ &{ "$display_form" };
+
+ }
+
+}
+
+
+sub vendor_details { IR->vendor_details(\%myconfig, \%$form) };
+sub customer_details { IS->customer_details(\%myconfig, \%$form) };
+
+
+sub select_payment {
+
+ @column_index = ("ndx", "datepaid", "source", "memo", "paid", "$form->{ARAP}_paid");
+
+ # list payments with radio button on a form
+ $form->header;
+
+ $title = $locale->text('Select payment');
+
+ $column_data{ndx} = qq|<th width=1%>&nbsp;</th>|;
+ $column_data{datepaid} = qq|<th>|.$locale->text('Date').qq|</th>|;
+ $column_data{source} = qq|<th>|.$locale->text('Source').qq|</th>|;
+ $column_data{memo} = qq|<th>|.$locale->text('Memo').qq|</th>|;
+ $column_data{paid} = qq|<th>|.$locale->text('Amount').qq|</th>|;
+ $column_data{"$form->{ARAP}_paid"} = qq|<th>|.$locale->text('Account').qq|</th>|;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$title</th>
+ </tr>
+ <tr space=5></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ $checked = "checked";
+ foreach $i (1 .. $form->{paidaccounts} - 1) {
+
+ for (@column_index) { $column_data{$_} = qq|<td>$form->{"${_}_$i"}</td>| }
+
+ $paid = $form->{"paid_$i"};
+ $ok = 1;
+
+ $column_data{ndx} = qq|<td><input name=ndx class=radio type=radio value=$i $checked></td>|;
+ $column_data{paid} = qq|<td align=right>$paid</td>|;
+
+ $checked = "";
+
+ $j++; $j %= 2;
+ print qq|
+ <tr class=listrow$j>|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+ for (qw(action nextsub)) { delete $form->{$_} }
+
+ $form->hide_form;
+
+ print qq|
+
+<br>
+<input type=hidden name=nextsub value=payment_selected>
+|;
+
+ if ($ok) {
+ print qq|
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">|;
+ }
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+sub payment_selected {
+
+ &{ "print_$form->{formname}" }($form->{oldform}, $form->{ndx});
+
+}
+
+
+sub print_options {
+
+ if ($form->{selectlanguage}) {
+ $form->{"selectlanguage"} = $form->unescape($form->{"selectlanguage"});
+ $form->{"selectlanguage"} =~ s/ selected//;
+ $form->{"selectlanguage"} =~ s/(<option value="\Q$form->{language_code}\E")/$1 selected/;
+ $lang = qq|<select name=language_code>$form->{selectlanguage}</select>
+ <input type=hidden name=selectlanguage value="|.
+ $form->escape($form->{selectlanguage},1).qq|">|;
+ }
+
+ $form->{selectformname} = $form->unescape($form->{selectformname});
+ $form->{selectformname} =~ s/ selected//;
+ $form->{selectformname} =~ s/(<option value="\Q$form->{formname}\E")/$1 selected/;
+
+ $type = qq|<select name=formname>$form->{selectformname}</select>
+ <input type=hidden name=selectformname value="|.$form->escape($form->{selectformname},1).qq|">|;
+
+ $media = qq|<select name=media>
+ <option value="screen">|.$locale->text('Screen');
+
+ $form->{selectformat} = qq|<option value="html">html\n|;
+
+ if (%printer && $latex) {
+ for (sort keys %printer) { $media .= qq|
+ <option value="$_">$_| }
+ }
+
+ if ($latex) {
+ $form->{selectformat} .= qq|
+ <option value="postscript">|.$locale->text('Postscript').qq|
+ <option value="pdf">|.$locale->text('PDF');
+ }
+
+ $format = qq|<select name=format>$form->{selectformat}</select>|;
+ $format =~ s/(<option value="\Q$form->{format}\E")/$1 selected/;
+ $format .= qq|
+ <input type=hidden name=selectformat value="|.$form->escape($form->{selectformat},1).qq|">|;
+ $media .= qq|</select>|;
+ $media =~ s/(<option value="\Q$form->{media}\E")/$1 selected/;
+
+ print qq|
+ <table width=100%>
+ <tr>
+ <td>$type</td>
+ <td>$lang</td>
+ <td>$format</td>
+ <td>$media</td>
+ <td align=right width=90%>
+ |;
+
+ if ($form->{printed} =~ /$form->{formname}/) {
+ print $locale->text('Printed').qq|<br>|;
+ }
+
+ if ($form->{recurring}) {
+ print $locale->text('Scheduled');
+ }
+
+ print qq|
+ </td>
+ </tr>
+ </table>
+|;
+
+}
+
+
+sub print_and_post {
+
+ $form->error($locale->text('Select postscript or PDF!')) if $form->{format} !~ /(postscript|pdf)/;
+ $form->error($locale->text('Select a Printer!')) if $form->{media} eq 'screen';
+
+ $form->{printandpost} = 1;
+ $form->{display_form} = "post";
+ &print;
+
+}
+
+
diff --git a/bin/mozilla/bp.pl b/bin/mozilla/bp.pl
new file mode 100755
index 00000000..4ed10cb8
--- /dev/null
+++ b/bin/mozilla/bp.pl
@@ -0,0 +1,520 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has NOT undergone whitespace cleanup.
+#
+#======================================================================
+#
+# Batch printing
+#
+#======================================================================
+
+
+use LedgerSMB::BP;
+
+1;
+# end of main
+
+
+sub search {
+
+# $locale->text('Sales Invoices')
+# $locale->text('Packing Lists')
+# $locale->text('Pick Lists')
+# $locale->text('Sales Orders')
+# $locale->text('Work Orders')
+# $locale->text('Purchase Orders')
+# $locale->text('Bin Lists')
+# $locale->text('Quotations')
+# $locale->text('RFQs')
+# $locale->text('Time Cards')
+
+ # setup customer/vendor selection
+ BP->get_vc(\%myconfig, \%$form);
+
+ if (@{ $form->{"all_$form->{vc}"} }) {
+ $name = "<option>\n";
+ for (@{ $form->{"all_$form->{vc}"} }) { $name .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+ $name = qq|<select name=$form->{vc}>$name</select>|;
+ } else {
+ $name = qq|<input name=$form->{vc} size=35>|;
+ }
+
+# $locale->text('Customer')
+# $locale->text('Vendor')
+# $locale->text('Employee')
+
+ %label = ( invoice => { title => 'Sales Invoices', name => 'Customer' },
+ packing_list => { title => 'Packing Lists', name => 'Customer' },
+ pick_list => { title => 'Pick Lists', name => 'Customer' },
+ sales_order => { title => 'Sales Orders', name => 'Customer' },
+ work_order => { title => 'Work Orders', name => 'Customer' },
+ purchase_order => { title => 'Purchase Orders', name => 'Vendor' },
+ bin_list => { title => 'Bin Lists', name => 'Vendor' },
+ sales_quotation => { title => 'Quotations', name => 'Customer' },
+ request_quotation => { title => 'RFQs', name => 'Vendor' },
+ timecard => { title => 'Time Cards', name => 'Employee' },
+ );
+
+ $label{invoice}{invnumber} = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Invoice Number').qq|</th>
+ <td colspan=3><input name=invnumber size=20></td>
+ </tr>
+|;
+ $label{invoice}{ordnumber} = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Order Number').qq|</th>
+ <td colspan=3><input name=ordnumber size=20></td>
+ </tr>
+|;
+ $label{sales_quotation}{quonumber} = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Quotation Number').qq|</th>
+ <td colspan=3><input name=quonumber size=20></td>
+ </tr>
+|;
+
+ $label{packing_list}{invnumber} = $label{invoice}{invnumber};
+ $label{packing_list}{ordnumber} = $label{invoice}{ordnumber};
+ $label{pick_list}{invnumber} = $label{invoice}{invnumber};
+ $label{pick_list}{ordnumber} = $label{invoice}{ordnumber};
+ $label{sales_order}{ordnumber} = $label{invoice}{ordnumber};
+ $label{work_order}{ordnumber} = $label{invoice}{ordnumber};
+ $label{purchase_order}{ordnumber} = $label{invoice}{ordnumber};
+ $label{bin_list}{ordnumber} = $label{invoice}{ordnumber};
+ $label{request_quotation}{quonumber} = $label{sales_quotation}{quonumber};
+
+ # do one call to text
+ $form->{title} = $locale->text('Print')." ".$locale->text($label{$form->{type}}{title});
+
+ # accounting years
+ if (@{ $form->{all_years} }) {
+ # accounting years
+ $form->{selectaccountingyear} = "<option>\n";
+ for (@{ $form->{all_years} }) { $form->{selectaccountingyear} .= qq|<option>$_\n| }
+ $form->{selectaccountingmonth} = "<option>\n";
+ for (sort keys %{ $form->{all_month} }) { $form->{selectaccountingmonth} .= qq|<option value=$_>|.$locale->text($form->{all_month}{$_}).qq|\n| }
+
+ $selectfrom = qq|
+ <tr>
+ <th align=right>|.$locale->text('Period').qq|</th>
+ <td colspan=3>
+ <select name=month>$form->{selectaccountingmonth}</select>
+ <select name=year>$form->{selectaccountingyear}</select>
+ <input name=interval class=radio type=radio value=0 checked>&nbsp;|.$locale->text('Current').qq|
+ <input name=interval class=radio type=radio value=1>&nbsp;|.$locale->text('Month').qq|
+ <input name=interval class=radio type=radio value=3>&nbsp;|.$locale->text('Quarter').qq|
+ <input name=interval class=radio type=radio value=12>&nbsp;|.$locale->text('Year').qq|
+ </td>
+ </tr>
+|;
+ }
+
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+|;
+
+ $form->hide_form(qw(vc type title));
+
+ print qq|
+<table width=100%>
+ <tr><th class=listtop>$form->{title}</th></tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right>|.$locale->text($label{$form->{type}}{name}).qq|</th>
+ <td colspan=3>$name</td>
+ </tr>
+ $account
+ $label{$form->{type}}{invnumber}
+ $label{$form->{type}}{ordnumber}
+ $label{$form->{type}}{quonumber}
+ <tr>
+ <th align=right nowrap>|.$locale->text('From').qq|</th>
+ <td><input name=transdatefrom size=11 title="$myconfig{dateformat}"></td>
+ <th align=right>|.$locale->text('To').qq|</th>
+ <td><input name=transdateto size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+ $selectfrom
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<input type=hidden name=sort value=transdate>
+<input type=hidden name=nextsub value=list_spool>
+
+<br>
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">
+|;
+
+ $form->hide_form(qw(path login sessionid));
+
+ print qq|
+
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+
+sub remove {
+
+ $selected = 0;
+
+ for $i (1 .. $form->{rowcount}) {
+ if ($form->{"checked_$i"}) {
+ $selected = 1;
+ last;
+ }
+ }
+
+ $form->error('Nothing selected!') unless $selected;
+
+ $form->{title} = $locale->text('Confirm!');
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+|;
+
+ for (qw(action header)) { delete $form->{$_} }
+
+ foreach $key (keys %$form) {
+ print qq|<input type=hidden name=$key value="$form->{$key}">\n|;
+ }
+
+ print qq|
+<h2 class=confirm>$form->{title}</h2>
+
+<h4>|.$locale->text('Are you sure you want to remove the marked entries from the queue?').qq|</h4>
+
+<input name=action class=submit type=submit value="|.$locale->text('Yes').qq|">
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+
+sub yes {
+
+ $form->info($locale->text('Removing marked entries from queue ...'));
+ $form->{callback} .= "&header=1" if $form->{callback};
+
+ if (BP->delete_spool(\%myconfig, \%$form, $spool)) {
+ $form->redirect($locale->text('Removed spoolfiles!'));
+ } else {
+ $form->error($locale->text('Cannot remove files!'));
+ }
+
+}
+
+
+sub print {
+
+ if ($form->{callback}) {
+ for (1 .. $form->{rowcount}) { $form->{callback} .= "&checked_$_=1" if $form->{"checked_$_"} }
+ $form->{callback} .= "&header=1";
+ }
+
+ for $i (1 .. $form->{rowcount}) {
+ if ($form->{"checked_$i"}) {
+ $form->{OUT} = "| $printer{$form->{media}}";
+ $form->info($locale->text('Printing')." ...");
+
+ if (BP->print_spool(\%myconfig, \%$form, $spool)) {
+ print $locale->text('done');
+ $form->redirect($locale->text('Marked entries printed!'));
+ }
+ exit;
+ }
+ }
+
+ $form->error('Nothing selected!');
+
+}
+
+
+sub list_spool {
+
+ $form->{$form->{vc}} = $form->unescape($form->{$form->{vc}});
+ ($form->{$form->{vc}}, $form->{"$form->{vc}_id"}) = split(/--/, $form->{$form->{vc}});
+
+ BP->get_spoolfiles(\%myconfig, \%$form);
+
+ $title = $form->escape($form->{title});
+ $href = "$form->{script}?action=list_spool&direction=$form->{direction}&oldsort=$form->{oldsort}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&vc=$form->{vc}&type=$form->{type}&title=$title";
+
+ $form->sort_order();
+
+ $title = $form->escape($form->{title},1);
+ $callback = "$form->{script}?action=list_spool&direction=$form->{direction}&oldsort=$form->{oldsort}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&vc=$form->{vc}&type=$form->{type}&title=$title";
+
+ if ($form->{$form->{vc}}) {
+ $callback .= "&$form->{vc}=".$form->escape($form->{$form->{vc}},1);
+ $href .= "&$form->{vc}=".$form->escape($form->{$form->{vc}});
+ $option = ($form->{vc} eq 'customer') ? $locale->text('Customer') : $locale->text('Vendor');
+ $option .= " : $form->{$form->{vc}}";
+ }
+ if ($form->{account}) {
+ $callback .= "&account=".$form->escape($form->{account},1);
+ $href .= "&account=".$form->escape($form->{account});
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Account')." : $form->{account}";
+ }
+ if ($form->{invnumber}) {
+ $callback .= "&invnumber=".$form->escape($form->{invnumber},1);
+ $href .= "&invnumber=".$form->escape($form->{invnumber});
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Invoice Number')." : $form->{invnumber}";
+ }
+ if ($form->{ordnumber}) {
+ $callback .= "&ordnumber=".$form->escape($form->{ordnumber},1);
+ $href .= "&ordnumber=".$form->escape($form->{ordnumber});
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Order Number')." : $form->{ordnumber}";
+ }
+ if ($form->{quonumber}) {
+ $callback .= "&quonumber=".$form->escape($form->{quonumber},1);
+ $href .= "&quonumber=".$form->escape($form->{quonumber});
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Quotation Number')." : $form->{quonumber}";
+ }
+
+ if ($form->{transdatefrom}) {
+ $callback .= "&transdatefrom=$form->{transdatefrom}";
+ $href .= "&transdatefrom=$form->{transdatefrom}";
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('From')."&nbsp;".$locale->date(\%myconfig, $form->{transdatefrom}, 1);
+ }
+ if ($form->{transdateto}) {
+ $callback .= "&transdateto=$form->{transdateto}";
+ $href .= "&transdateto=$form->{transdateto}";
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('To')."&nbsp;".$locale->date(\%myconfig, $form->{transdateto}, 1);
+ }
+
+ $name = ucfirst $form->{vc};
+
+ @columns = qw(transdate);
+ if ($form->{type} =~ /(invoice)/) {
+ push @columns, "invnumber";
+ }
+ if ($form->{type} =~ /(packing|pick)_list/) {
+ push @columns, "invnumber";
+ }
+ if ($form->{type} =~ /_(order|list)$/) {
+ push @columns, "ordnumber";
+ }
+ if ($form->{type} =~ /_quotation$/) {
+ push @columns, "quonumber";
+ }
+ if ($form->{type} eq 'timecard') {
+ push @columns, "id";
+ }
+
+
+ push @columns, (name, spoolfile);
+ @column_index = $form->sort_columns(@columns);
+ unshift @column_index, "checked";
+
+ $column_header{checked} = "<th class=listheading>&nbsp;</th>";
+ $column_header{transdate} = "<th><a class=listheading href=$href&sort=transdate>".$locale->text('Date')."</a></th>";
+ $column_header{invnumber} = "<th><a class=listheading href=$href&sort=invnumber>".$locale->text('Invoice')."</a></th>";
+ $column_header{ordnumber} = "<th><a class=listheading href=$href&sort=ordnumber>".$locale->text('Order')."</a></th>";
+ $column_header{quonumber} = "<th><a class=listheading href=$href&sort=quonumber>".$locale->text('Quotation')."</a></th>";
+ $column_header{name} = "<th><a class=listheading href=$href&sort=name>".$locale->text($name)."</a></th>";
+ $column_header{id} = "<th><a class=listheading href=$href&sort=id>".$locale->text('ID')."</a></th>";
+ $column_header{spoolfile} = "<th class=listheading>".$locale->text('Spoolfile')."</th>";
+
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$option</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "\n$column_header{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+
+ # add sort and escape callback, this one we use for the add sub
+ $form->{callback} = $callback .= "&sort=$form->{sort}";
+
+ # escape callback for href
+ $callback = $form->escape($callback);
+
+ $i = 0;
+
+ foreach $ref (@{ $form->{SPOOL} }) {
+
+ $i++;
+
+ $form->{"checked_$i"} = "checked" if $form->{"checked_$i"};
+
+ # this is for audittrail
+ $form->{module} = $ref->{module};
+
+ if ($ref->{invoice}) {
+ $ref->{module} = ($ref->{module} eq 'ar') ? "is" : "ir";
+ }
+ $module = "$ref->{module}.pl";
+
+ $column_data{transdate} = "<td>$ref->{transdate}&nbsp;</td>";
+
+ if ($spoolfile eq $ref->{spoolfile}) {
+ $column_data{checked} = qq|<td></td>|;
+ } else {
+ $column_data{checked} = qq|<td><input name=checked_$i type=checkbox class=checkbox $form->{"checked_$i"} $form->{"checked_$i"}></td>|;
+ }
+
+ for (qw(id invnumber ordnumber quonumber)) { $column_data{$_} = qq|<td>$ref->{$_}</td>| }
+
+ if ($ref->{module} eq 'oe') {
+ $column_data{invnumber} = qq|<td>&nbsp</td>|;
+ $column_data{ordnumber} = qq|<td><a href=$module?action=edit&id=$ref->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&type=$form->{type}&callback=$callback>$ref->{ordnumber}</a></td>
+ <input type=hidden name="reference_$i" value="$ref->{ordnumber}">|;
+
+ $column_data{quonumber} = qq|<td><a href=$module?action=edit&id=$ref->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&type=$form->{type}&callback=$callback>$ref->{quonumber}</a></td>
+ <input type=hidden name="reference_$i" value="$ref->{quonumber}">|;
+
+ } elsif ($ref->{module} eq 'jc') {
+ $column_data{id} = qq|<td><a href=$module?action=edit&id=$ref->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&type=$form->{type}&callback=$callback>$ref->{id}</a></td>
+ <input type=hidden name="reference_$i" value="$ref->{id}">|;
+ } else {
+ $column_data{invnumber} = qq|<td><a href=$module?action=edit&id=$ref->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&type=$form->{type}&callback=$callback>$ref->{invnumber}</a></td>
+ <input type=hidden name="reference_$i" value="$ref->{invnumber}">|;
+ }
+
+
+ $column_data{name} = "<td>$ref->{name}</td>";
+ $column_data{spoolfile} = qq|<td><a href=$spool/$ref->{spoolfile}>$ref->{spoolfile}</a></td>
+
+|;
+
+ $spoolfile = $ref->{spoolfile};
+
+ $j++; $j %= 2;
+ print "
+ <tr class=listrow$j>
+";
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+<input type=hidden name="id_$i" value=$ref->{id}>
+<input type=hidden name="spoolfile_$i" value=$ref->{spoolfile}>
+
+ </tr>
+|;
+
+ }
+
+ print qq|
+<input type=hidden name=rowcount value=$i>
+
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+|;
+
+ $form->hide_form(qw(callback title vc type sort module account path login sessionid));
+
+ if (%printer && $latex) {
+ foreach $key (sort keys %printer) {
+ print qq|
+<input name=media type=radio class=radio value="$key" |;
+ print qq|checked| if $key eq $myconfig{printer};
+ print qq|>$key|;
+ }
+
+ print qq|<p>\n|;
+
+# type=submit $locale->text('Select all')
+# type=submit $locale->text('Print')
+# type=submit $locale->text('Remove')
+
+ %button = ('Select all' => { ndx => 2, key => 'A', value => $locale->text('Select all') },
+ 'Print' => { ndx => 3, key => 'P', value => $locale->text('Print') },
+ 'Remove' => { ndx => 4, key => 'R', value => $locale->text('Remove') },
+ );
+
+ for (sort { $button{$a}->{ndx} <=> $button{$b}->{ndx} } keys %button) { $form->print_button(\%button, $_) }
+
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub select_all {
+
+ for (1 .. $form->{rowcount}) { $form->{"checked_$_"} = 1 }
+ &list_spool;
+
+}
+
+
+sub continue { &{ $form->{nextsub} } };
+
diff --git a/bin/mozilla/ca.pl b/bin/mozilla/ca.pl
new file mode 100755
index 00000000..60ba9ab5
--- /dev/null
+++ b/bin/mozilla/ca.pl
@@ -0,0 +1,502 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has NOT undergone whitespace cleanup.
+#
+#======================================================================
+#
+# module for Chart of Accounts, Income Statement and Balance Sheet
+# search and edit transactions posted by the GL, AR and AP
+#
+#======================================================================
+
+use LedgerSMB::CA;
+
+1;
+# end of main
+
+# this is for our long dates
+# $locale->text('January')
+# $locale->text('February')
+# $locale->text('March')
+# $locale->text('April')
+# $locale->text('May ')
+# $locale->text('June')
+# $locale->text('July')
+# $locale->text('August')
+# $locale->text('September')
+# $locale->text('October')
+# $locale->text('November')
+# $locale->text('December')
+
+# this is for our short month
+# $locale->text('Jan')
+# $locale->text('Feb')
+# $locale->text('Mar')
+# $locale->text('Apr')
+# $locale->text('May')
+# $locale->text('Jun')
+# $locale->text('Jul')
+# $locale->text('Aug')
+# $locale->text('Sep')
+# $locale->text('Oct')
+# $locale->text('Nov')
+# $locale->text('Dec')
+
+
+sub chart_of_accounts {
+
+ CA->all_accounts(\%myconfig, \%$form);
+
+ @column_index = qw(accno gifi_accno description debit credit);
+
+ $column_header{accno} = qq|<th class=listtop>|.$locale->text('Account').qq|</th>\n|;
+ $column_header{gifi_accno} = qq|<th class=listtop>|.$locale->text('GIFI').qq|</th>\n|;
+ $column_header{description} = qq|<th class=listtop>|.$locale->text('Description').qq|</th>\n|;
+ $column_header{debit} = qq|<th class=listtop>|.$locale->text('Debit').qq|</th>\n|;
+ $column_header{credit} = qq|<th class=listtop>|.$locale->text('Credit').qq|</th>\n|;
+
+
+ $form->{title} = $locale->text('Chart of Accounts');
+
+ $colspan = $#column_index + 1;
+
+ $form->header;
+
+ print qq|
+<body>
+
+<table border=0 width=100%>
+ <tr><th class=listtop colspan=$colspan>$form->{title}</th></tr>
+ <tr height="5"></tr>
+ <tr class=listheading>|;
+
+ for (@column_index) { print $column_header{$_} }
+
+ print qq|
+ </tr>
+|;
+
+
+ foreach $ca (@{ $form->{CA} }) {
+
+ $description = $form->escape($ca->{description});
+ $gifi_description = $form->escape($ca->{gifi_description});
+
+ $href = qq|$form->{script}?path=$form->{path}&action=list&accno=$ca->{accno}&login=$form->{login}&sessionid=$form->{sessionid}&description=$description&gifi_accno=$ca->{gifi_accno}&gifi_description=$gifi_description|;
+
+ if ($ca->{charttype} eq "H") {
+ print qq|<tr class=listheading>|;
+ for (qw(accno description)) { $column_data{$_} = "<th class=listheading>$ca->{$_}</th>" }
+ $column_data{gifi_accno} = "<th class=listheading>$ca->{gifi_accno}&nbsp;</th>";
+ } else {
+ $i++; $i %= 2;
+ print qq|<tr class=listrow$i>|;
+ $column_data{accno} = "<td><a href=$href>$ca->{accno}</a></td>";
+ $column_data{gifi_accno} = "<td><a href=$href&accounttype=gifi>$ca->{gifi_accno}</a>&nbsp;</td>";
+ $column_data{description} = "<td>$ca->{description}</td>";
+ }
+
+ $column_data{debit} = "<td align=right>".$form->format_amount(\%myconfig, $ca->{debit}, 2, "&nbsp;")."</td>\n";
+ $column_data{credit} = "<td align=right>".$form->format_amount(\%myconfig, $ca->{credit}, 2, "&nbsp;")."</td>\n";
+
+ $totaldebit += $ca->{debit};
+ $totalcredit += $ca->{credit};
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+</tr>
+|;
+ }
+
+ for (qw(accno gifi_accno description)) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $column_data{debit} = "<th align=right class=listtotal>".$form->format_amount(\%myconfig, $totaldebit, 2, 0)."</th>";
+ $column_data{credit} = "<th align=right class=listtotal>".$form->format_amount(\%myconfig, $totalcredit, 2, 0)."</th>";
+
+ print "<tr class=listtotal>";
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+</tr>
+<tr>
+ <td colspan=$colspan><hr size=3 noshade></td>
+</tr>
+</table>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub list {
+
+ $form->{title} = $locale->text('List Transactions');
+ if ($form->{accounttype} eq 'gifi') {
+ $form->{title} .= " - ".$locale->text('GIFI')." $form->{gifi_accno} - $form->{gifi_description}";
+ } else {
+ $form->{title} .= " - ".$locale->text('Account')." $form->{accno} - $form->{description}";
+ }
+
+ # get departments
+ $form->all_departments(\%myconfig);
+ if (@{ $form->{all_department} }) {
+ $form->{selectdepartment} = "<option>\n";
+
+ for (@{ $form->{all_department} }) { $form->{selectdepartment} .= qq|<option value="$_->{description}--$_->{id}">$_->{description}\n| }
+ }
+
+ $department = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Department').qq|</th>
+ <td colspan=3><select name=department>$form->{selectdepartment}</select></td>
+ </tr>
+| if $form->{selectdepartment};
+
+ if (@{ $form->{all_years} }) {
+ # accounting years
+ $form->{selectaccountingyear} = "<option>\n";
+ for (@{ $form->{all_years} }) { $form->{selectaccountingyear} .= qq|<option>$_\n| }
+ $form->{selectaccountingmonth} = "<option>\n";
+ for (sort keys %{ $form->{all_month} }) { $form->{selectaccountingmonth} .= qq|<option value=$_>|.$locale->text($form->{all_month}{$_}).qq|\n| }
+
+ $selectfrom = qq|
+ <tr>
+ <th align=right>|.$locale->text('Period').qq|</th>
+ <td colspan=3>
+ <select name=month>$form->{selectaccountingmonth}</select>
+ <select name=year>$form->{selectaccountingyear}</select>
+ <input name=interval class=radio type=radio value=0 checked>&nbsp;|.$locale->text('Current').qq|
+ <input name=interval class=radio type=radio value=1>&nbsp;|.$locale->text('Month').qq|
+ <input name=interval class=radio type=radio value=3>&nbsp;|.$locale->text('Quarter').qq|
+ <input name=interval class=radio type=radio value=12>&nbsp;|.$locale->text('Year').qq|
+ </td>
+ </tr>
+|;
+ }
+
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=accno value=$form->{accno}>
+<input type=hidden name=description value="$form->{description}">
+
+<input type=hidden name=sort value=transdate>
+<input type=hidden name=oldsort value=transdate>
+
+<input type=hidden name=accounttype value=$form->{accounttype}>
+<input type=hidden name=gifi_accno value=$form->{gifi_accno}>
+<input type=hidden name=gifi_description value="$form->{gifi_description}">
+
+<table border=0 width=100%>
+ <tr><th class=listtop>$form->{title}</th></tr>
+ <tr height="5"></tr
+ <tr valign=top>
+ <td>
+ <table>
+ $department
+ <tr>
+ <th align=right>|.$locale->text('From').qq|</th>
+ <td><input name=fromdate size=11 title="$myconfig{dateformat}"></td>
+ <th align=right>|.$locale->text('To').qq|</th>
+ <td><input name=todate size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+ $selectfrom
+ <tr>
+ <th align=right>|.$locale->text('Include in Report').qq|</th>
+ <td colspan=3>
+ <input name=l_accno class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('AR/AP').qq|
+ <input name=l_subtotal class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Subtotal').qq|
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr><td><hr size=3 noshade></td></tr>
+</table>
+
+<input type=hidden name=login value=$form->{login}>
+<input type=hidden name=path value=$form->{path}>
+<input type=hidden name=sessionid value=$form->{sessionid}>
+
+<br><input class=submit type=submit name=action value="|.$locale->text('List Transactions').qq|">
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub list_transactions {
+
+ CA->all_transactions(\%myconfig, \%$form);
+
+ $department = $form->escape($form->{department});
+ $projectnumber = $form->escape($form->{projectnumber});
+ $title = $form->escape($form->{title});
+
+ # construct href
+ $href = "$form->{script}?action=list_transactions&department=$department&projectnumber=$projectnumber&title=$title";
+ for (qw(path oldsort accno login sessionid fromdate todate accounttype gifi_accno l_heading l_subtotal l_accno)) { $href .= "&$_=$form->{$_}" }
+
+ $drilldown = $href;
+ $drilldown .= "&sort=$form->{sort}";
+
+ $href .= "&direction=$form->{direction}";
+
+ $form->sort_order();
+
+ $drilldown .= "&direction=$form->{direction}";
+
+ $form->{prevreport} = $href unless $form->{prevreport};
+ $href .= "&prevreport=".$form->escape($form->{prevreport});
+ $drilldown .= "&prevreport=".$form->escape($form->{prevreport});
+
+ # figure out which column comes first
+ $column_header{transdate} = qq|<th><a class=listheading href=$href&sort=transdate>|.$locale->text('Date').qq|</a></th>|;
+ $column_header{reference} = qq|<th><a class=listheading href=$href&sort=reference>|.$locale->text('Reference').qq|</a></th>|;
+ $column_header{description} = qq|<th><a class=listheading href=$href&sort=description>|.$locale->text('Description').qq|</a></th>|;
+ $column_header{cleared} = qq|<th class=listheading>|.$locale->text('R').qq|</th>|;
+ $column_header{source} = qq|<th class=listheading>|.$locale->text('Source').qq|</th>|;
+ $column_header{debit} = qq|<th class=listheading>|.$locale->text('Debit').qq|</th>|;
+ $column_header{credit} = qq|<th class=listheading>|.$locale->text('Credit').qq|</th>|;
+ $column_header{balance} = qq|<th class=listheading>|.$locale->text('Balance').qq|</th>|;
+ $column_header{accno} = qq|<th class=listheading>|.$locale->text('AR/AP').qq|</th>|;
+
+ @columns = qw(transdate reference description debit credit);
+ if ($form->{link} =~ /_paid/) {
+ @columns = qw(transdate reference description source cleared debit credit);
+ }
+ push @columns, "accno" if $form->{l_accno};
+ @column_index = $form->sort_columns(@columns);
+
+
+ if ($form->{accounttype} eq 'gifi') {
+ for (qw(accno description)) { $form->{$_} = $form->{"gifi_$_"} }
+ }
+ if ($form->{accno}) {
+ push @column_index, "balance";
+ }
+
+ $form->{title} = ($form->{accounttype} eq 'gifi') ? $locale->text('GIFI') : $locale->text('Account');
+
+ $form->{title} .= " $form->{accno} - $form->{description}";
+
+ if ($form->{department}) {
+ ($department) = split /--/, $form->{department};
+ $options = $locale->text('Department')." : $department<br>";
+ }
+ if ($form->{projectnumber}) {
+ ($projectnumber) = split /--/, $form->{projectnumber};
+ $options .= $locale->text('Project Number')." : $projectnumber<br>";
+ }
+
+
+ if ($form->{fromdate} || $form->{todate}) {
+
+ if ($form->{fromdate}) {
+ $fromdate = $locale->date(\%myconfig, $form->{fromdate}, 1);
+ }
+ if ($form->{todate}) {
+ $todate = $locale->date(\%myconfig, $form->{todate}, 1);
+ }
+
+ $form->{period} = "$fromdate - $todate";
+ } else {
+ $form->{period} = $locale->date(\%myconfig, $form->current_date(\%myconfig), 1);
+ }
+
+ $form->{period} = "<a href=$form->{prevreport}>$form->{period}</a>" if $form->{prevreport};
+
+ $options .= $form->{period};
+
+
+ # construct callback
+ $department = $form->escape($form->{department},1);
+ $projectnumber = $form->escape($form->{projectnumber},1);
+ $title = $form->escape($form->{title},1);
+ $form->{prevreport} = $form->escape($form->{prevreport},1);
+
+ $form->{callback} = "$form->{script}?action=list_transactions&department=$department&projectnumber=$projectnumber&title=$title";
+ for (qw(path direction oldsort accno login sessionid fromdate todate accounttype gifi_accno l_heading l_subtotal l_accno prevreport)) { $form->{callback} .= "&$_=$form->{$_}" }
+
+
+ $form->header;
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$options</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "$column_header{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ # add sort to callback
+ $form->{callback} = $form->escape($form->{callback} . "&sort=$form->{sort}");
+
+ if (@{ $form->{CA} }) {
+ $sameitem = $form->{CA}->[0]->{$form->{sort}};
+ }
+
+ $ml = ($form->{category} =~ /(A|E)/) ? -1 : 1;
+ $ml *= -1 if $form->{contra};
+
+ if ($form->{accno} && $form->{balance}) {
+
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $column_data{balance} = "<td align=right>".$form->format_amount(\%myconfig, $form->{balance} * $ml, 2, 0)."</td>";
+
+ $i++; $i %= 2;
+
+ print qq|
+ <tr class=listrow$i>
+|;
+ for (@column_index) { print "$column_data{$_}\n" }
+ print qq|
+ </tr>
+|;
+
+ }
+
+ foreach $ca (@{ $form->{CA} }) {
+
+ if ($form->{l_subtotal} eq 'Y') {
+ if ($sameitem ne $ca->{$form->{sort}}) {
+ &ca_subtotal;
+ }
+ }
+
+ # construct link to source
+ $href = "<a href=$ca->{module}.pl?path=$form->{path}&action=edit&id=$ca->{id}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$form->{callback}>$ca->{reference}</a>";
+
+
+ $column_data{debit} = "<td align=right>".$form->format_amount(\%myconfig, $ca->{debit}, 2, "&nbsp;")."</td>";
+ $column_data{credit} = "<td align=right>".$form->format_amount(\%myconfig, $ca->{credit}, 2, "&nbsp;")."</td>";
+
+ $form->{balance} += $ca->{amount};
+ $column_data{balance} = "<td align=right>".$form->format_amount(\%myconfig, $form->{balance} * $ml, 2, 0)."</td>";
+
+ $subtotaldebit += $ca->{debit};
+ $subtotalcredit += $ca->{credit};
+
+ $totaldebit += $ca->{debit};
+ $totalcredit += $ca->{credit};
+
+ $column_data{transdate} = qq|<td>$ca->{transdate}</td>|;
+ $column_data{reference} = qq|<td>$href</td>|;
+ $column_data{description} = qq|<td>$ca->{description}&nbsp;</td>|;
+
+ $column_data{cleared} = ($ca->{cleared}) ? qq|<td>*</td>| : qq|<td>&nbsp;</td>|;
+ $column_data{source} = qq|<td>$ca->{source}&nbsp;</td>|;
+
+ $column_data{accno} = qq|<td>|;
+ for (@{ $ca->{accno} }) { $column_data{accno} .= "<a href=$drilldown&accno=$_>$_</a> " }
+ $column_data{accno} .= qq|&nbsp;</td>|;
+
+ if ($ca->{id} != $sameid) {
+ $i++; $i %= 2;
+ }
+ $sameid = $ca->{id};
+
+ print qq|
+ <tr class=listrow$i>
+|;
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ }
+
+
+ if ($form->{l_subtotal} eq 'Y') {
+ &ca_subtotal;
+ }
+
+
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $column_data{debit} = "<th align=right class=listtotal>".$form->format_amount(\%myconfig, $totaldebit, 2, "&nbsp;")."</th>";
+ $column_data{credit} = "<th align=right class=listtotal>".$form->format_amount(\%myconfig, $totalcredit, 2, "&nbsp;")."</th>";
+ $column_data{balance} = "<th align=right class=listtotal>".$form->format_amount(\%myconfig, $form->{balance} * $ml, 2, 0)."</th>";
+
+ print qq|
+ <tr class=listtotal>
+|;
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub ca_subtotal {
+
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $column_data{debit} = "<th align=right class=listsubtotal>".$form->format_amount(\%myconfig, $subtotaldebit, 2, "&nbsp;") . "</th>";
+ $column_data{credit} = "<th align=right class=listsubtotal>".$form->format_amount(\%myconfig, $subtotalcredit, 2, "&nbsp;") . "</th>";
+
+ $subtotaldebit = 0;
+ $subtotalcredit = 0;
+
+ $sameitem = $ca->{$form->{sort}};
+
+ print qq|
+ <tr class=listsubtotal>
+|;
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+}
+
diff --git a/bin/mozilla/cp.pl b/bin/mozilla/cp.pl
new file mode 100755
index 00000000..8848c9cb
--- /dev/null
+++ b/bin/mozilla/cp.pl
@@ -0,0 +1,1380 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has NOT undergone whitespace cleanup.
+#
+#======================================================================
+#
+# Payment module
+#
+#======================================================================
+
+
+use LedgerSMB::CP;
+use LedgerSMB::OP;
+use LedgerSMB::IS;
+use LedgerSMB::IR;
+
+require "$form->{path}/arap.pl";
+
+1;
+# end of main
+
+
+sub payment {
+
+ if ($form->{type} eq 'receipt') {
+ $form->{ARAP} = "AR";
+ $form->{arap} = "ar";
+ $form->{vc} = "customer";
+ $form->{formname} = "receipt";
+ }
+ if ($form->{type} eq 'check') {
+ $form->{ARAP} = "AP";
+ $form->{arap} = "ap";
+ $form->{vc} = "vendor";
+ $form->{formname} = "check";
+ }
+
+ $form->{payment} = "payment";
+
+ $form->{callback} = "$form->{script}?action=payment&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&all_vc=$form->{all_vc}&type=$form->{type}";
+
+ # setup customer/vendor selection for open invoices
+ if ($form->{all_vc}) {
+ $form->all_vc(\%myconfig, $form->{vc}, $form->{ARAP}, undef, $form->{datepaid});
+ } else {
+ CP->get_openvc(\%myconfig, \%$form);
+ if ($myconfig{vclimit} > 0) {
+ $form->{"all_$form->{vc}"} = $form->{name_list};
+ }
+ }
+
+ $form->{"select$form->{vc}"} = "";
+ if (@{ $form->{"all_$form->{vc}"} }) {
+ $form->{"$form->{vc}_id"} = $form->{"all_$form->{vc}"}->[0]->{id};
+ for (@{ $form->{"all_$form->{vc}"} }) { $form->{"select$form->{vc}"} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+ }
+
+ # departments
+ if (@{ $form->{all_department} }) {
+ $form->{selectdepartment} = "<option>\n";
+ $form->{department} = "$form->{department}--$form->{department_id}" if $form->{department};
+
+ for (@{ $form->{all_department} }) { $form->{selectdepartment} .= qq|<option value="$_->{description}--$_->{id}">$_->{description}\n| }
+ }
+
+ if (@{ $form->{all_language} }) {
+ $form->{selectlanguage} = "<option>\n";
+ for (@{ $form->{all_language} }) { $form->{selectlanguage} .= qq|<option value="$_->{code}">$_->{description}\n| }
+ }
+
+ CP->paymentaccounts(\%myconfig, \%$form);
+
+ $form->{selectaccount} = "";
+ $form->{"select$form->{ARAP}"} = "";
+
+ for (@{ $form->{PR}{"$form->{ARAP}_paid"} }) { $form->{selectaccount} .= "<option>$_->{accno}--$_->{description}\n" }
+ for (@{ $form->{PR}{$form->{ARAP}} }) { $form->{"select$form->{ARAP}"} .= "<option>$_->{accno}--$_->{description}\n" }
+
+ # currencies
+ @curr = split /:/, $form->{currencies};
+ $form->{defaultcurrency} = $curr[0];
+ chomp $form->{defaultcurrency};
+
+ $form->{selectcurrency} = "";
+ for (@curr) { $form->{selectcurrency} .= "<option>$_\n" }
+
+ $form->{currency} = $form->{defaultcurrency};
+ $form->{oldcurrency} = $form->{currency};
+
+ if ($form->{currency} ne $form->{defaultcurrency}) {
+ $form->{forex} = $form->{exchangerate} = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{datepaid}, ($form->{vc} eq 'customer') ? "buy" : "sell");
+ }
+
+ $form->{olddatepaid} = $form->{datepaid};
+
+ $form->{media} = $myconfig{printer};
+ $form->{format} = "pdf" unless $myconfig{printer};
+
+ &payment_header;
+ &payment_footer;
+
+}
+
+
+sub payments {
+
+ if ($form->{type} eq 'receipt') {
+ $form->{ARAP} = "AR";
+ $form->{arap} = "ar";
+ $form->{vc} = "customer";
+ $form->{formname} = "receipt";
+ }
+ if ($form->{type} eq 'check') {
+ $form->{ARAP} = "AP";
+ $form->{arap} = "ap";
+ $form->{vc} = "vendor";
+ $form->{formname} = "check";
+ }
+
+ $form->{payment} = "payments";
+
+ $form->{callback} = "$form->{script}?action=$form->{action}";
+ for (qw(path login sessionid type)) { $form->{callback} .= "&$_=$form->{$_}" }
+
+ CP->paymentaccounts(\%myconfig, \%$form);
+
+ if (@{ $form->{all_language} }) {
+ $form->{selectlanguage} = "<option>\n";
+ for (@{ $form->{all_language} }) { $form->{selectlanguage} .= qq|<option value="$_->{code}">$_->{description}\n| }
+ }
+
+ # departments
+ if (@{ $form->{all_department} }) {
+ $form->{selectdepartment} = "<option>\n";
+ $form->{department} = "$form->{department}--$form->{department_id}" if $form->{department};
+
+ for (@{ $form->{all_department} }) { $form->{selectdepartment} .= qq|<option value="$_->{description}--$_->{id}">$_->{description}\n| }
+ }
+
+ $form->{selectaccount} = "";
+ $form->{"select$form->{ARAP}"} = "";
+
+ for (@{ $form->{PR}{"$form->{ARAP}_paid"} }) { $form->{selectaccount} .= "<option>$_->{accno}--$_->{description}\n" }
+ for (@{ $form->{PR}{$form->{ARAP}} }) { $form->{"select$form->{ARAP}"} .= "<option>$_->{accno}--$_->{description}\n" }
+
+ # currencies
+ @curr = split /:/, $form->{currencies};
+ $form->{defaultcurrency} = $curr[0];
+ chomp $form->{defaultcurrency};
+
+ $form->{selectcurrency} = "";
+ for (@curr) { $form->{selectcurrency} .= "<option>$_\n" }
+
+ $form->{oldcurrency} = $form->{currency} = $form->{defaultcurrency};
+ $form->{oldduedateto} = $form->{datepaid};
+
+ $form->{media} = $myconfig{printer};
+ $form->{format} = "pdf" unless $myconfig{printer};
+
+ &payments_header;
+ &invoices_due;
+ &payments_footer;
+
+}
+
+
+sub payments_header {
+
+ if ($form->{type} eq 'receipt') {
+ $form->{title} = $locale->text('Receipts');
+ }
+ if ($form->{type} eq 'check') {
+ $form->{title} = $locale->text('Payments');
+ }
+
+
+ for ("department") {
+ $form->{"select$_"} = $form->unescape($form->{"select$_"});
+ $form->{"select$_"} =~ s/ selected//;
+ $form->{"select$_"} =~ s/(<option value="\Q$form->{$_}\E")/$1 selected/;
+ }
+
+ for ("account", "currency", "$form->{ARAP}") {
+ $form->{"select$_"} =~ s/ selected//;
+ $form->{"select$_"} =~ s/option>\Q$form->{$_}\E/option selected>$form->{$_}/;
+ }
+
+ if ($form->{defaultcurrency}) {
+ $exchangerate = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Currency').qq|</th>
+ <td><select name=currency>$form->{selectcurrency}</select></td>
+ <input type=hidden name=selectcurrency value="$form->{selectcurrency}">
+ <input type=hidden name=oldcurrency value=$form->{oldcurrency}>
+ </tr>
+|;
+ }
+
+ if ($form->{currency} ne $form->{defaultcurrency}) {
+ $form->{exchangerate} = $form->format_amount(\%myconfig, $form->{exchangerate});
+
+ if ($form->{forex}) {
+ $exchangerate .= qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Exchange Rate').qq|</th>
+ <td colspan=3><input type=hidden name=exchangerate size=10 value=$form->{exchangerate}>$form->{exchangerate}</td>
+ </tr>
+|;
+ } else {
+ $exchangerate .= qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Exchange Rate').qq|</th>
+ <td colspan=3><input name=exchangerate size=10 value=$form->{exchangerate}></td>
+ </tr>
+|;
+ }
+ }
+
+ $department = qq|
+ <tr>
+ <th align="right" nowrap>|.$locale->text('Department').qq|</th>
+ <td><select name=department>$form->{selectdepartment}</select>
+ <input type=hidden name=selectdepartment value="|.$form->escape($form->{selectdepartment},1).qq|">
+ </td>
+ </tr>
+| if $form->{selectdepartment};
+
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+|;
+
+ $form->hide_form(qw(defaultcurrency closedto vc type formname arap ARAP title oldduedatefrom oldduedateto payment olddepartment));
+
+ print qq|
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=right>|.$locale->text('Due Date').qq|&nbsp;|.$locale->text('From').qq|</th>
+ <td><input name=duedatefrom value="$form->{duedatefrom}" title="$myconfig{dateformat}" size=11></td>
+ <th align=right>|.$locale->text('To').qq|</th>
+ <td><input name=duedateto value="$form->{duedateto}" title="$myconfig{dateformat}" size=11></td>
+ </tr>
+ </table>
+ </td>
+ </td>
+ <td align=right>
+ <table>
+ $department
+ <tr>
+ <th align=right nowrap>|.$locale->text($form->{ARAP}).qq|</th>
+ <td colspan=3><select name=$form->{ARAP}>$form->{"select$form->{ARAP}"}</select>
+ </td>
+ <input type=hidden name="select$form->{ARAP}" value="$form->{"select$form->{ARAP}"}">
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Account').qq|</th>
+ <td colspan=3><select name=account>$form->{selectaccount}</select>
+ <input type=hidden name=selectaccount value="$form->{selectaccount}">
+ </td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Date').qq|</th>
+ <td><input name=datepaid value="$form->{datepaid}" title="$myconfig{dateformat}" size=11></td>
+ </tr>
+ $exchangerate
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+|;
+
+}
+
+
+sub invoices_due {
+
+ @column_index = qw(name invnumber transdate amount due checked paid memo source);
+ push @column_index, "language" if $form->{selectlanguage};
+
+ $colspan = $#column_index + 1;
+
+ $invoice = $locale->text('Invoices');
+ $vclabel = ucfirst $form->{vc};
+ $vclabel = $locale->text($vclabel);
+
+ print qq|
+ <input type=hidden name=column_index value="id @column_index">
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+ <th class=listheading colspan=$colspan>$invoice</th>
+ </tr>
+|;
+
+ $column_data{name} = qq|<th nowrap>$vclabel</th>|;
+ $column_data{invnumber} = qq|<th nowrap>|.$locale->text('Invoice')."</th>";
+ $column_data{transdate} = qq|<th nowrap>|.$locale->text('Date')."</th>";
+ $column_data{amount} = qq|<th nowrap>|.$locale->text('Amount')."</th>";
+ $column_data{due} = qq|<th nowrap>|.$locale->text('Amount Due')."</th>";
+ $column_data{paid} = qq|<th nowrap>|.$locale->text('Amount')."</th>";
+ $column_data{checked} = qq|<th nowrap>|.$locale->text('Select')."</th>";
+ $column_data{memo} = qq|<th nowrap>|.$locale->text('Memo')."</th>";
+ $column_data{source} = qq|<th nowrap>|.$locale->text('Source')."</th>";
+ $column_data{language} = qq|<th nowrap>|.$locale->text('Language')."</th>";
+
+ print qq|
+ <tr>
+|;
+ for (@column_index) { print "$column_data{$_}\n" }
+ print qq|
+ </tr>
+|;
+
+ $form->{selectlanguage} = $form->unescape($form->{selectlanguage});
+
+ for $i (1 .. $form->{rowcount}) {
+
+ for (qw(amount due paid)) { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) }
+
+ $totalamount += $form->{"amount_$i"};
+ $totaldue += $form->{"due_$i"};
+ $totalpaid += $form->{"paid_$i"};
+
+ for (qw(amount due paid)) { $form->{"${_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}, 2) }
+
+ $column_data{invnumber} = qq|<td>$form->{"invnumber_$i"}</td>
+ <input type=hidden name="invnumber_$i" value="$form->{"invnumber_$i"}">
+ <input type=hidden name="id_$i" value=$form->{"id_$i"}>|;
+ $column_data{transdate} = qq|<td>$form->{"transdate_$i"}</td>
+ <input type=hidden name="transdate_$i" value=$form->{"transdate_$i"}>|;
+ $column_data{amount} = qq|<td align=right>$form->{"amount_$i"}</td>
+ <input type=hidden name="amount_$i" value=$form->{"amount_$i"}>|;
+ $column_data{due} = qq|<td align=right>$form->{"due_$i"}</td>
+ <input type=hidden name="due_$i" value=$form->{"due_$i"}>|;
+
+ $column_data{paid} = qq|<td align=right><input name="paid_$i" size=10 value=$form->{"paid_$i"}></td>|;
+
+ if ($same_id eq $form->{"$form->{vc}_id_$i"}) {
+ for (qw(name memo source language)) { $column_data{$_} = qq|<td>&nbsp;</td>| }
+ } else {
+ $column_data{name} = qq|<td>$form->{"name_$i"}</td>|;
+ $column_data{memo} = qq|<td align=right><input name="memo_$i" size=10 value="$form->{"memo_$i"}"></td>|;
+ $column_data{source} = qq|<td align=right><input name="source_$i" size=10 value="$form->{"source_$i"}"></td>|;
+
+ if ($form->{selectlanguage}) {
+ $selectlanguage = $form->{selectlanguage};
+ $selectlanguage =~ s/(<option value="\Q$form->{"language_code_$i"}\E")/$1 selected/;
+ $column_data{language} = qq|<td><select name="language_code_$i">$selectlanguage</select></td>|;
+ }
+
+ }
+
+ $column_data{name} .= qq|
+ <input type=hidden name="name_$i" value="$form->{"name_$i"}">
+ <input type=hidden name="$form->{vc}_id_$i" value="$form->{"$form->{vc}_id_$i"}">|;
+
+ $form->{"checked_$i"} = ($form->{"checked_$i"}) ? "checked" : "";
+ $column_data{checked} = qq|<td align=center><input name="checked_$i" type=checkbox class=checkbox $form->{"checked_$i"}></td>|;
+
+ $j++; $j %= 2;
+ print qq|
+ <tr class=listrow$j>
+|;
+ for (@column_index) { print "$column_data{$_}\n" }
+ print qq|
+ </tr>
+|;
+
+ $same_id = $form->{"$form->{vc}_id_$i"};
+
+ }
+
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $column_data{amount} = qq|<th class=listtotal align=right>|.$form->format_amount(\%myconfig, $totalamount, 2, "&nbsp;").qq|</th>|;
+ $column_data{due} = qq|<th class=listtotal align=right>|.$form->format_amount(\%myconfig, $totaldue, 2, "&nbsp;").qq|</th>|;
+ $column_data{paid} = qq|<th class=listtotal align=right>|.$form->format_amount(\%myconfig, $totalpaid, 2, "&nbsp;").qq|</th>|;
+
+ print qq|
+ <tr class=listtotal>
+|;
+ for (@column_index) { print "$column_data{$_}\n" }
+ print qq|
+ </tr>
+ </table>
+ </td>
+ </tr>
+<input type=hidden name=selectlanguage value="|.$form->escape($form->{selectlanguage},1).qq|">
+|;
+
+}
+
+
+sub payments_footer {
+
+ $form->{DF}{$form->{format}} = "selected";
+
+ $transdate = $form->datetonum(\%myconfig, $form->{datepaid});
+ $closedto = $form->datetonum(\%myconfig, $form->{closedto});
+
+ if ($latex) {
+
+ $media = qq|<select name=media>
+ <option value=screen>|.$locale->text('Screen');
+
+ if (%printer) {
+ for (sort keys %printer) { $media .= qq|
+ <option value="$_">$_| }
+ }
+
+ $media .= qq|</select>|;
+ $format = qq|<select name=format>
+ <option value=postscript $form->{DF}{postscript}>|.$locale->text('Postscript').qq|
+ <option value=pdf $form->{DF}{pdf}>|.$locale->text('PDF').qq|</select>|;
+ }
+
+ print qq|
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+# type=submit $locale->text('Update')
+# type=submit $locale->text('Post')
+# type=submit $locale->text('Print')
+# type=submit $locale->text('Select all')
+
+ %button = ('Update' => { ndx => 1, key => 'U', value => $locale->text('Update') },
+ 'Select all' => { ndx => 2, key => 'A', value => $locale->text('Select all') },
+ 'Print' => { ndx => 3, key => 'P', value => $locale->text('Print') },
+ 'Post' => { ndx => 4, key => 'O', value => $locale->text('Post') },
+ );
+
+ if (! $latex) {
+ delete $button{'Print'};
+ }
+
+ if ($transdate <= $closedto) {
+ for ('Post', 'Print') { delete $button{$_} }
+ $media = $format = "";
+ }
+
+ for (sort { $button{$a}->{ndx} <=> $button{$b}->{ndx} } keys %button) { $form->print_button(\%button, $_) }
+
+ $media =~ s/(<option value="\Q$form->{media}\E")/$1 selected/;
+
+ print qq|
+ $format
+ $media
+|;
+
+ $form->hide_form(qw(callback rowcount path login sessionid));
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub select_all {
+
+ for (1 .. $form->{rowcount}) { $form->{"checked_$_"} = 1 }
+ &{"update_$form->{payment}"}
+
+}
+
+
+sub update {
+ my ($new_name_selected) = @_;
+
+ &{"update_$form->{payment}"};
+
+}
+
+
+sub update_payments {
+
+ if ($form->{ARAP} eq 'AR') {
+ $buysell = "buy";
+ } else {
+ $buysell = "sell";
+ }
+
+ if (($form->{oldduedatefrom} ne $form->{duedatefrom}) || ($form->{oldduedateto} ne $form->{duedateto}) || ($form->{department} ne $form->{olddepartment})) {
+ CP->get_openinvoices(\%myconfig, \%$form);
+ $form->{redo} = 1;
+ }
+
+ if ($form->{currency} ne $form->{oldcurrency}) {
+ $form->{oldcurrency} = $form->{currency};
+ if (!$form->{redo}) {
+ CP->get_openinvoices(\%myconfig, \%$form);
+ $form->{redo} = 1;
+ }
+ }
+
+ for (qw(duedatefrom duedateto department)) { $form->{"old$_"} = $form->{$_} }
+
+ $form->{exchangerate} = $exchangerate if ($form->{forex} = ($exchangerate = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{datepaid}, $buysell)));
+
+ if ($form->{redo}) {
+ $form->{rowcount} = 0;
+
+ $i = 0;
+ foreach $ref (@{ $form->{PR} }) {
+ $i++;
+ for (qw(id name invnumber transdate)) { $form->{"${_}_$i"} = $ref->{$_} }
+ $form->{"$form->{vc}_id_$i"} = $ref->{"$form->{vc}_id"};
+ $ref->{exchangerate} = 1 unless $ref->{exchangerate};
+ $form->{"amount_$i"} = $ref->{amount} / $ref->{exchangerate};
+ $form->{"due_$i"} = ($ref->{amount} - $ref->{paid}) / $ref->{exchangerate};
+ $form->{"checked_$i"} = "";
+ $form->{"paid_$i"} = "";
+
+ # need to format
+ for (qw(amount due)) { $form->{"${_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}, 2) }
+ }
+
+ $form->{rowcount} = $i;
+ }
+
+ $form->{amount} = $form->parse_amount(\%myconfig, $form->{amount});
+
+ # recalculate
+ $amount = 0;
+ for $i (1 .. $form->{rowcount}) {
+
+ for (qw(amount due paid)) { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) }
+
+ if ($form->{"checked_$i"}) {
+ # calculate paid_$i
+ if (!$form->{"paid_$i"}) {
+ $form->{"paid_$i"} = $form->{"due_$i"};
+ }
+
+ $amount += $form->{"paid_$i"};
+ $form->{redo} = 1;
+ } else {
+ $form->{"paid_$i"} = "";
+ }
+
+ for (qw(amount due paid)) { $form->{"${_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}, 2) }
+ }
+
+ $form->{amount} += ($amount - $form->{oldamount}) if $form->{redo};
+
+ &payments_header;
+ &invoices_due;
+ &payments_footer;
+
+}
+
+
+sub update_payment {
+
+ if ($form->{vc} eq 'customer') {
+ $buysell = "buy";
+ } else {
+ $buysell = "sell";
+ }
+
+ $department = $form->{department};
+
+ # get customer/vendor
+ &check_openvc;
+ $form->{department} = $department;
+
+ if ($form->{datepaid} ne $form->{olddatepaid}) {
+ $form->{olddatepaid} = $form->{datepaid};
+ $form->{oldall_vc} = !$form->{oldall_vc} if $form->{all_vc};
+ }
+
+ if ($form->{department} ne $form->{olddepartment}) {
+ $form->{olddepartment} = $form->{department};
+ $form->{redo} = 1;
+ }
+
+ # if we switched to all_vc
+ if ($form->{all_vc} ne $form->{oldall_vc}) {
+
+ if ($form->{"select$form->{vc}"}) {
+ $form->{redo} = ($form->{"old$name"} ne $form->{$name});
+ } else {
+ $form->{redo} = ($form->{"old$name"} ne qq|$form->{$name}--$form->{"${name}_id"}|);
+ }
+
+ $form->{"select$form->{vc}"} = "";
+
+ if ($form->{all_vc}) {
+ $form->all_vc(\%myconfig, $form->{vc}, $form->{ARAP}, undef, $form->{datepaid});
+
+ if (@{ $form->{"all_$form->{vc}"} }) {
+ for (@{ $form->{"all_$form->{vc}"} }) { $form->{"select$form->{vc}"} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+ }
+
+ } else {
+ if (($myconfig{vclimit} * 1) > 0) {
+ $form->{$form->{vc}} = "";
+ }
+
+ CP->get_openvc(\%myconfig, \%$form);
+
+ if (($myconfig{vclimit} * 1) > 0) {
+ $form->{"all_$form->{vc}"} = $form->{name_list};
+ }
+
+ if (@{ $form->{"all_$form->{vc}"} }) {
+ $newvc = qq|$form->{"all_$form->{vc}"}[0]->{name}--$form->{"all_$form->{vc}"}[0]->{id}|;
+ for (@{ $form->{"all_$form->{vc}"} }) { $form->{"select$form->{vc}"} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+
+
+ # if the name is not the same
+ if ($form->{"select$form->{vc}"} !~ /$form->{$form->{vc}}/) {
+ $form->{$form->{vc}} = $newvc;
+ &check_openvc;
+ }
+ }
+ }
+
+ if (@{ $form->{all_language} }) {
+ $form->{selectlanguage} = "<option>\n";
+ for (@{ $form->{all_language} }) { $form->{selectlanguage} .= qq|<option value="$_->{code}">$_->{description}\n| }
+ }
+
+ }
+
+ if ($new_name_selected || $form->{redo}) {
+ CP->get_openinvoices(\%myconfig, \%$form);
+ ($newvc) = split /--/, $form->{$form->{vc}};
+ $form->{"old$form->{vc}"} = qq|$newvc--$form->{"$form->{vc}_id"}|;;
+ $form->{redo} = 1;
+ }
+
+ if ($form->{currency} ne $form->{oldcurrency}) {
+ $form->{oldcurrency} = $form->{currency};
+ if (!$form->{redo}) {
+ CP->get_openinvoices(\%myconfig, \%$form);
+ $form->{redo} = 1;
+ }
+ }
+
+
+ $form->{exchangerate} = $exchangerate if ($form->{forex} = ($exchangerate = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{datepaid}, $buysell)));
+
+ if ($form->{redo}) {
+ $form->{rowcount} = 0;
+
+ $i = 0;
+ foreach $ref (@{ $form->{PR} }) {
+ $i++;
+ $form->{"id_$i"} = $ref->{id};
+ $form->{"invnumber_$i"} = $ref->{invnumber};
+ $form->{"transdate_$i"} = $ref->{transdate};
+ $ref->{exchangerate} = 1 unless $ref->{exchangerate};
+ $form->{"amount_$i"} = $ref->{amount} / $ref->{exchangerate};
+ $form->{"due_$i"} = ($ref->{amount} - $ref->{paid}) / $ref->{exchangerate};
+ $form->{"checked_$i"} = "";
+ $form->{"paid_$i"} = "";
+
+ # need to format
+ for (qw(amount due)) { $form->{"${_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}, 2) }
+ }
+ $form->{rowcount} = $i;
+ }
+
+ $form->{amount} = $form->parse_amount(\%myconfig, $form->{amount});
+
+ # recalculate
+ $amount = 0;
+ for $i (1 .. $form->{rowcount}) {
+
+ for (qw(amount due paid)) { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) }
+
+ if ($form->{"checked_$i"}) {
+ # calculate paid_$i
+ if (!$form->{"paid_$i"}) {
+ $form->{"paid_$i"} = $form->{"due_$i"};
+ }
+
+ $amount += $form->{"paid_$i"};
+ $form->{redo} = 1;
+ } else {
+ $form->{"paid_$i"} = "";
+ }
+
+ for (qw(amount due paid)) { $form->{"${_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}, 2) }
+ }
+
+ $form->{amount} += ($amount - $form->{oldamount}) if $form->{redo};
+
+ &payment_header;
+ &list_invoices;
+ &payment_footer;
+
+}
+
+
+
+
+sub payment_header {
+
+ $vclabel = ucfirst $form->{vc};
+ $vclabel = $locale->text($vclabel);
+
+ if ($form->{type} eq 'receipt') {
+ $form->{title} = $locale->text('Receipt');
+ }
+ if ($form->{type} eq 'check') {
+ $form->{title} = $locale->text('Payment');
+ }
+
+
+# $locale->text('Customer')
+# $locale->text('Vendor')
+
+ if ($form->{$form->{vc}} eq "") {
+ for (qw(address1 address2 city zipcode state country)) { $form->{$_} = "" }
+ }
+
+ for ("$form->{vc}", "department") {
+ $form->{"select$_"} = $form->unescape($form->{"select$_"});
+ $form->{"select$_"} =~ s/ selected//;
+ $form->{"select$_"} =~ s/(<option value="\Q$form->{$_}\E")/$1 selected/;
+ }
+
+ for ("account", "currency", "$form->{ARAP}") {
+ $form->{"select$_"} =~ s/ selected//;
+ $form->{"select$_"} =~ s/option>\Q$form->{$_}\E/option selected>$form->{$_}/;
+ }
+
+ if ($form->{defaultcurrency}) {
+ $exchangerate = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Currency').qq|</th>
+ <td><select name=currency>$form->{selectcurrency}</select></td>
+ <input type=hidden name=selectcurrency value="$form->{selectcurrency}">
+ <input type=hidden name=oldcurrency value=$form->{oldcurrency}>
+ </tr>
+|;
+ }
+
+ if ($form->{currency} ne $form->{defaultcurrency}) {
+ $form->{exchangerate} = $form->format_amount(\%myconfig, $form->{exchangerate});
+
+ if ($form->{forex}) {
+ $exchangerate .= qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Exchange Rate').qq|</th>
+ <td colspan=3><input type=hidden name=exchangerate size=10 value=$form->{exchangerate}>$form->{exchangerate}</td>
+ </tr>
+|;
+ } else {
+ $exchangerate .= qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Exchange Rate').qq|</th>
+ <td colspan=3><input name=exchangerate size=10 value=$form->{exchangerate}></td>
+ </tr>
+|;
+ }
+ }
+
+ $vc = ($form->{"select$form->{vc}"}) ? qq|<select name=$form->{vc}>$form->{"select$form->{vc}"}\n</select>| : qq|<input name=$form->{vc} size=35 value="$form->{$form->{vc}}">|;
+
+ if ($form->{all_vc}) {
+ $allvc = "checked";
+ } else {
+ $allvc = "";
+ }
+
+# $locale->text('AR')
+# $locale->text('AP')
+
+ $department = qq|
+ <tr>
+ <th align="right" nowrap>|.$locale->text('Department').qq|</th>
+ <td><select name=department>$form->{selectdepartment}</select>
+ <input type=hidden name=selectdepartment value="|.$form->escape($form->{selectdepartment},1).qq|">
+ </td>
+ </tr>
+| if $form->{selectdepartment};
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+|;
+
+ $form->hide_form(qw(defaultcurrency closedto vc type ARAP arap title formname payment olddepartment));
+
+ print qq|
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <td align=right>
+ <input name=all_vc type=checkbox class=checkbox value=Y $allvc>
+ <input type=hidden name="oldall_vc" value="$form->{all_vc}"></td>
+ <th align=left>|.$locale->text('All').qq|</th>
+ </tr>
+ <tr>
+ <th align=right>$vclabel</th>
+ <td>$vc</td>
+ <input type=hidden name="select$form->{vc}" value="|.$form->escape($form->{"select$form->{vc}"},1).qq|">
+ <input type=hidden name="$form->{vc}_id" value=$form->{"$form->{vc}_id"}>
+ <input type=hidden name="old$form->{vc}" value="$form->{"old$form->{vc}"}">
+ </tr>
+ <tr valign=top>
+ <th align=right nowrap>|.$locale->text('Address').qq|</th>
+ <td colspan=2>
+ <table>
+ <tr>
+ <td>$form->{address1}</td>
+ </tr>
+ <tr>
+ <td>$form->{address2}</td>
+ </tr>
+ <td>$form->{city}</td>
+ </tr>
+ </tr>
+ <td>$form->{state}</td>
+ </tr>
+ </tr>
+ <td>$form->{zipcode}</td>
+ </tr>
+ <tr>
+ <td>$form->{country}</td>
+ </tr>
+ </table>
+ </td>
+ <input type=hidden name=address1 value="$form->{address1}">
+ <input type=hidden name=address2 value="$form->{address2}">
+ <input type=hidden name=city value="$form->{city}">
+ <input type=hidden name=state value="$form->{state}">
+ <input type=hidden name=zipcode value="$form->{zipcode}">
+ <input type=hidden name=country value="$form->{country}">
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Memo').qq|</th>
+ <td colspan=2><input name="memo" size=30 value="$form->{memo}"></td>
+ </tr>
+ </table>
+ </td>
+ <td align=right>
+ <table>
+ $department
+ <tr>
+ <th align=right nowrap>|.$locale->text($form->{ARAP}).qq|</th>
+ <td colspan=3><select name=$form->{ARAP}>$form->{"select$form->{ARAP}"}</select>
+ </td>
+ <input type=hidden name="select$form->{ARAP}" value="$form->{"select$form->{ARAP}"}">
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Account').qq|</th>
+ <td colspan=3><select name=account>$form->{selectaccount}</select>
+ <input type=hidden name=selectaccount value="$form->{selectaccount}">
+ </td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Date').qq|</th>
+ <td><input name=datepaid value="$form->{datepaid}" title="$myconfig{dateformat}" size=11></td>
+ <input type=hidden name=olddatepaid value=$form->{olddatepaid}>
+ </tr>
+ $exchangerate
+ <tr>
+ <th align=right nowrap>|.$locale->text('Source').qq|</th>
+ <td colspan=3><input name=source value="$form->{source}" size=10></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Amount').qq|</th>
+ <td colspan=3><input name=amount size=10 value=|.$form->format_amount(\%myconfig, $form->{amount}, 2).qq|></td>
+ <input type=hidden name=oldamount value=$form->{amount}>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+|;
+
+}
+
+
+sub list_invoices {
+
+ @column_index = qw(invnumber transdate amount due checked paid);
+
+ $colspan = $#column_index + 1;
+
+ $invoice = $locale->text('Invoices');
+
+ print qq|
+ <input type=hidden name=column_index value="id @column_index">
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+ <th class=listheading colspan=$colspan>$invoice</th>
+ </tr>
+|;
+
+ $column_data{invnumber} = qq|<th nowrap>|.$locale->text('Invoice')."</th>";
+ $column_data{transdate} = qq|<th nowrap>|.$locale->text('Date')."</th>";
+ $column_data{amount} = qq|<th nowrap>|.$locale->text('Amount')."</th>";
+ $column_data{due} = qq|<th nowrap>|.$locale->text('Amount Due')."</th>";
+ $column_data{paid} = qq|<th nowrap>|.$locale->text('Amount')."</th>";
+ $column_data{checked} = qq|<th nowrap>|.$locale->text('Select')."</th>";
+
+ print qq|
+ <tr>
+|;
+ for (@column_index) { print "$column_data{$_}\n" }
+ print qq|
+ </tr>
+|;
+
+ for $i (1 .. $form->{rowcount}) {
+
+ for (qw(amount due paid)) { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) }
+
+ $totalamount += $form->{"amount_$i"};
+ $totaldue += $form->{"due_$i"};
+ $totalpaid += $form->{"paid_$i"};
+
+ for (qw(amount due paid)) { $form->{"${_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}, 2) }
+
+ $column_data{invnumber} = qq|<td>$form->{"invnumber_$i"}</td>
+ <input type=hidden name="invnumber_$i" value="$form->{"invnumber_$i"}">
+ <input type=hidden name="id_$i" value=$form->{"id_$i"}>|;
+ $column_data{transdate} = qq|<td width=15%>$form->{"transdate_$i"}</td>
+ <input type=hidden name="transdate_$i" value=$form->{"transdate_$i"}>|;
+ $column_data{amount} = qq|<td align=right width=15%>$form->{"amount_$i"}</td>
+ <input type=hidden name="amount_$i" value=$form->{"amount_$i"}>|;
+ $column_data{due} = qq|<td align=right width=15%>$form->{"due_$i"}</td>
+ <input type=hidden name="due_$i" value=$form->{"due_$i"}>|;
+
+ $column_data{paid} = qq|<td align=right width=15%><input name="paid_$i" size=10 value=$form->{"paid_$i"}></td>|;
+
+ $form->{"checked_$i"} = ($form->{"checked_$i"}) ? "checked" : "";
+ $column_data{checked} = qq|<td align=center width=10%><input name="checked_$i" type=checkbox class=checkbox $form->{"checked_$i"}></td>|;
+
+ $j++; $j %= 2;
+ print qq|
+ <tr class=listrow$j>
+|;
+ for (@column_index) { print "$column_data{$_}\n" }
+ print qq|
+ </tr>
+|;
+ }
+
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $column_data{amount} = qq|<th class=listtotal align=right>|.$form->format_amount(\%myconfig, $totalamount, 2, "&nbsp;").qq|</th>|;
+ $column_data{due} = qq|<th class=listtotal align=right>|.$form->format_amount(\%myconfig, $totaldue, 2, "&nbsp;").qq|</th>|;
+ $column_data{paid} = qq|<th class=listtotal align=right>|.$form->format_amount(\%myconfig, $totalpaid, 2, "&nbsp;").qq|</th>|;
+
+ print qq|
+ <tr class=listtotal>
+|;
+ for (@column_index) { print "$column_data{$_}\n" }
+ print qq|
+ </tr>
+ </table>
+ </td>
+ </tr>
+|;
+
+}
+
+
+sub payment_footer {
+
+ $form->{DF}{$form->{format}} = "selected";
+
+ $transdate = $form->datetonum(\%myconfig, $form->{datepaid});
+ $closedto = $form->datetonum(\%myconfig, $form->{closedto});
+
+ if ($latex) {
+ if ($form->{selectlanguage}) {
+ $form->{"selectlanguage"} = $form->unescape($form->{"selectlanguage"});
+ $form->{"selectlanguage"} =~ s/ selected//;
+ $form->{"selectlanguage"} =~ s/(<option value="\Q$form->{language_code}\E")/$1 selected/;
+ $lang = qq|<select name=language_code>$form->{selectlanguage}</select>
+ <input type=hidden name=selectlanguage value="|.
+ $form->escape($form->{selectlanguage},1).qq|">|;
+ }
+
+ $media = qq|<select name=media>
+ <option value=screen>|.$locale->text('Screen');
+
+ if (%printer) {
+ for (sort keys %printer) { $media .= qq|
+ <option value="$_">$_| }
+ }
+
+ $media .= qq|</select>|;
+ $format = qq|<select name=format>
+ <option value=postscript $form->{DF}{postscript}>|.$locale->text('Postscript').qq|
+ <option value=pdf $form->{DF}{pdf}>|.$locale->text('PDF').qq|</select>|;
+ }
+
+ print qq|
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+ %button = ('Update' => { ndx => 1, key => 'U', value => $locale->text('Update') },
+ 'Select all' => { ndx => 2, key => 'A', value => $locale->text('Select all') },
+ 'Print' => { ndx => 3, key => 'P', value => $locale->text('Print') },
+ 'Post' => { ndx => 4, key => 'O', value => $locale->text('Post') },
+ );
+
+ if (! $latex) {
+ delete $button{'Print'};
+ }
+
+ if ($transdate <= $closedto) {
+ for ('Post', 'Print') { delete $button{$_} }
+ $media = $format = "";
+ }
+
+ for (sort { $button{$a}->{ndx} <=> $button{$b}->{ndx} } keys %button) { $form->print_button(\%button, $_) }
+
+ $media =~ s/(<option value="\Q$form->{media}\E")/$1 selected/;
+
+ print qq|
+ $lang
+ $format
+ $media
+|;
+
+ $form->hide_form(qw(callback rowcount path login sessionid));
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub post { &{"post_$form->{payment}"} }
+
+
+sub post_payments {
+
+ if ($form->{currency} ne $form->{defaultcurrency}) {
+ $form->error($locale->text('Exchange rate missing!')) unless $form->{exchangerate};
+ }
+
+ if (CP->post_payments(\%myconfig, \%$form)) {
+ $form->redirect($locale->text('Payments posted!'));
+ } else {
+ $form->error($locale->text('Posting failed!'));
+ }
+
+}
+
+
+sub post_payment {
+
+ &check_form;
+
+ if ($form->{currency} ne $form->{defaultcurrency}) {
+ $form->error($locale->text('Exchange rate missing!')) unless $form->{exchangerate};
+ }
+
+ $msg1 = "$form->{title} posted!";
+ $msg2 = "Cannot post $form->{title}!";
+
+# $locale->text('Payment posted!')
+# $locale->text('Receipt posted!')
+# $locale->text('Cannot post Payment!')
+# $locale->text('Cannot post Receipt!')
+
+
+ $form->{amount} = $form->format_amount(\%myconfig, $form->{amount}, 2);
+
+ $source = $form->{source};
+ $source =~ s/(\d+)/$1 + 1/e;
+
+ if ($form->{callback}) {
+ $form->{callback} .= "&source=$source";
+ }
+
+ if (CP->post_payment(\%myconfig, \%$form)) {
+ $form->redirect($locale->text($msg1));
+ } else {
+ $form->error($locale->text($msg2));
+ }
+
+}
+
+
+sub print {
+
+ &{ "print_$form->{payment}" };
+ &update if $form->{media} ne 'screen';
+
+}
+
+
+sub print_payments {
+
+ $form->error($locale->text('Select postscript or PDF!')) if ($form->{format} !~ /(postscript|pdf)/);
+
+ $SIG{INT} = 'IGNORE';
+
+ for (qw(company address)) { $form->{$_} = $myconfig{$_} }
+ $form->{address} =~ s/\\n/\n/g;
+
+ %oldform = ();
+ for (keys %$form) { $oldform{$_} = $form->{$_} };
+
+ @a = qw(name company address text_amount text_decimal address1 address2 city state zipcode country memo);
+ for (@a) { $temp{$_} = $form->{$_} }
+
+ $form->format_string(@a);
+
+ $ok = 0;
+ $j = 0;
+ $temp{rowcount} = $form->{rowcount};
+
+ for $i (1 .. $temp{rowcount}) {
+
+ if ($form->{"$form->{vc}_id_$i"} ne $form->{"$form->{vc}_id"}) {
+
+ $form->{rowcount} = $j;
+ for (1 .. $j) { $form->{"id_$_"} = $temp{"id_$_"} }
+ &print_form if $ok;
+
+ $ok = 0;
+ $j = 0;
+ $form->{amount} = 0;
+ for (qw(invnumber invdate due paid)) { @{ $form->{$_} } = () }
+ for (qw(language_code source memo)) { $form->{$_} = $form->{"${_}_$i"} }
+
+ }
+
+ if ($form->{"checked_$i"}) {
+ $j++;
+ $ok = 1;
+ $temp{"id_$j"} = $form->{"id_$i"};
+ $form->{"invdate_$i"} = $form->{"transdate_$i"};
+ for (qw(invnumber invdate due paid)) { push @{ $form->{$_} }, $form->{"${_}_$i"} }
+ $form->{amount} += $form->parse_amount(\%myconfig, $form->{"paid_$i"});
+ $form->{"$form->{vc}_id"} = $form->{"$form->{vc}_id_$i"};
+ }
+
+ }
+
+ $form->{rowcount} = $j;
+ for (1 .. $j) { $form->{"id_$_"} = $temp{"id_$_"} }
+
+ &print_form if $ok;
+
+ for (keys %oldform) { $form->{$_} = $oldform{$_} }
+
+}
+
+
+sub print_form {
+
+ $c = CP->new(($form->{language_code}) ? $form->{language_code} : $myconfig{countrycode});
+ $c->init;
+
+ ($whole, $form->{decimal}) = split /\./, $form->{amount};
+ $form->{amount} = $form->format_amount(\%myconfig, $form->{amount}, 2);
+ $form->{decimal} .= "00";
+ $form->{decimal} = substr($form->{decimal}, 0, 2);
+ $form->{text_decimal} = $c->num2text($form->{decimal} * 1);
+ $form->{text_amount} = $c->num2text($whole);
+ $form->{integer_amount} = $form->format_amount($myconfig, $whole);
+
+ $datepaid = $form->datetonum(\%myconfig, $form->{datepaid});
+ ($form->{yyyy}, $form->{mm}, $form->{dd}) = $datepaid =~ /(....)(..)(..)/;
+
+ &{ "$form->{vc}_details" };
+
+ $form->{templates} = "$myconfig{templates}";
+ $form->{IN} = "$form->{formname}.tex";
+
+ if ($form->{media} ne 'screen') {
+ $form->{OUT} = "| $printer{$form->{media}}";
+ }
+
+ $form->parse_template(\%myconfig, $userspath);
+
+}
+
+
+sub print_payment {
+
+ &check_form;
+
+ for (qw(company address)) { $form->{$_} = $myconfig{$_} }
+ $form->{address} =~ s/\\n/\n/g;
+
+ @a = qw(name company address text_amount text_decimal address1 address2 city state zipcode country memo);
+
+ %temp = ();
+ for (@a) { $temp{$_} = $form->{$_} }
+
+ $form->format_string(@a);
+
+ &print_form;
+
+ for (keys %temp) { $form->{$_} = $temp{$_} }
+
+}
+
+
+sub customer_details { IS->customer_details(\%myconfig, \%$form) };
+sub vendor_details { IR->vendor_details(\%myconfig, \%$form) };
+
+
+sub check_form {
+
+ &check_openvc;
+
+ if ($form->{currency} ne $form->{oldcurrency}) {
+ &update;
+ exit;
+ }
+
+ $form->error($locale->text('Date missing!')) unless $form->{datepaid};
+
+ $closedto = $form->datetonum(\%myconfig, $form->{closedto});
+ $datepaid = $form->datetonum(\%myconfig, $form->{datepaid});
+
+ $form->error($locale->text('Cannot post payment for a closed period!')) if ($datepaid <= $closedto);
+
+ # this is just to format the year
+ $form->{datepaid} = $locale->date(\%myconfig, $form->{datepaid});
+
+ $amount = $form->parse_amount(\%myconfig, $form->{amount});
+ $form->{amount} = $amount;
+
+ for $i (1 .. $form->{rowcount}) {
+ if ($form->{"paid_$i"}) {
+ $amount -= $form->parse_amount(\%myconfig, $form->{"paid_$i"});
+
+ push(@{ $form->{paid} }, $form->{"paid_$i"});
+ push(@{ $form->{due} }, $form->{"due_$i"});
+ push(@{ $form->{invnumber} }, $form->{"invnumber_$i"});
+ push(@{ $form->{invdate} }, $form->{"transdate_$i"});
+ }
+ }
+
+ if ($form->round_amount($amount, 2) != 0) {
+ push(@{ $form->{paid} }, $form->format_amount(\%myconfig, $amount, 2));
+ push(@{ $form->{due} }, $form->format_amount(\%myconfig, 0, "0"));
+ push(@{ $form->{invnumber} }, ($form->{ARAP} eq 'AR') ? $locale->text('Deposit') : $locale->text('Prepayment'));
+ push(@{ $form->{invdate} }, $form->{datepaid});
+ }
+
+}
+
+
+sub check_openvc {
+
+ $name = $form->{vc};
+ ($new_name, $new_id) = split /--/, $form->{$name};
+
+ if ($form->{all_vc}) {
+ if ($form->{"select$name"}) {
+ $ok = ($form->{"old$name"} ne $form->{$name});
+ } else {
+ $ok = ($form->{"old$name"} ne qq|$form->{$name}--$form->{"${name}_id"}|);
+ }
+
+ if ($ok) {
+ $form->{redo} = 1;
+ if ($form->{"select$name"}) {
+ $form->{"${name}_id"} = $new_id;
+ AA->get_name(\%myconfig, \%$form);
+ $form->{$name} = $form->{"old$name"} = "$new_name--$new_id";
+ } else {
+ &check_name($form->{vc});
+ }
+ }
+
+ } else {
+
+ # if we use a selection
+ if ($form->{"select$name"}) {
+ if ($form->{"old$name"} ne $form->{$name}) {
+
+ $form->{"${name}_id"} = $new_id;
+ AA->get_name(\%myconfig, \%$form);
+
+ $form->{$name} = $form->{"old$name"} = "$new_name--$new_id";
+ $form->{redo} = 1;
+ }
+ } else {
+
+ # check name, combine name and id
+ if ($form->{"old$name"} ne qq|$form->{$name}--$form->{"${name}_id"}|) {
+
+ # return one name or a list of names in $form->{name_list}
+ if (($rv = CP->get_openvc(\%myconfig, \%$form)) > 1) {
+ $form->{redo} = 1;
+ &select_name($name);
+ exit;
+ }
+
+ if ($rv == 1) {
+ # we got one name
+ $form->{"${name}_id"} = $form->{name_list}[0]->{id};
+ $form->{$name} = $form->{name_list}[0]->{name};
+ $form->{"old$name"} = qq|$form->{$name}--$form->{"${name}_id"}|;
+
+ AA->get_name(\%myconfig, \%$form);
+
+ } else {
+ # nothing open
+ $form->error($locale->text('Nothing open!'));
+ }
+
+ $form->{redo} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/bin/mozilla/ct.pl b/bin/mozilla/ct.pl
new file mode 100755
index 00000000..d72bf11a
--- /dev/null
+++ b/bin/mozilla/ct.pl
@@ -0,0 +1,2466 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has NOT undergone whitespace cleanup.
+#
+#======================================================================
+#
+# customer/vendor module
+#
+#======================================================================
+
+use LedgerSMB::CT;
+
+1;
+# end of main
+
+
+
+sub add {
+
+ $form->{title} = "Add";
+# $locale->text('Add Customer')
+# $locale->text('Add Vendor')
+
+ $form->{callback} = "$form->{script}?action=add&db=$form->{db}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}" unless $form->{callback};
+
+ CT->create_links(\%myconfig, \%$form);
+
+ &form_header;
+ &form_footer;
+
+}
+
+
+sub history {
+
+# $locale->text('Customer History')
+# $locale->text('Vendor History')
+
+ $history = 1;
+ $label = ucfirst $form->{db};
+ $label .= " History";
+
+ if ($form->{db} eq 'customer') {
+ $invlabel = $locale->text('Sales Invoices');
+ $ordlabel = $locale->text('Sales Orders');
+ $quolabel = $locale->text('Quotations');
+ } else {
+ $invlabel = $locale->text('Vendor Invoices');
+ $ordlabel = $locale->text('Purchase Orders');
+ $quolabel = $locale->text('Request for Quotations');
+ }
+
+ $form->{title} = $locale->text($label);
+
+ $form->{nextsub} = "list_history";
+
+ $transactions = qq|
+ <tr>
+ <td></td>
+ <td>
+ <table>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <td><input name=type type=radio class=radio value=invoice checked> $invlabel</td>
+ </tr>
+ <tr>
+ <td><input name=type type=radio class=radio value=order> $ordlabel</td>
+ </tr>
+ <tr>
+ <td><input name="type" type=radio class=radio value=quotation> $quolabel</td>
+ </tr>
+ </table>
+ </td>
+ <td>
+ <table>
+ <tr>
+ <th>|.$locale->text('From').qq|</th>
+ <td><input name=transdatefrom size=11 title="$myconfig{dateformat}"></td>
+ <th>|.$locale->text('To').qq|</th>
+ <td><input name=transdateto size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan=3>
+ <input name="open" type=checkbox class=checkbox value=Y checked>&nbsp;|.$locale->text('Open').qq|
+ <input name="closed" type=checkbox class=checkbox value=Y checked>&nbsp;|.$locale->text('Closed').qq|
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+|;
+
+ $include = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Include in Report').qq|</th>
+ <td>
+ <table>
+ <tr>
+ <td><input name=history type=radio class=radio value=summary checked> |.$locale->text('Summary').qq|</td>
+ <td><input name=history type=radio class=radio value=detail> |.$locale->text('Detail').qq|
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <input name="l_partnumber" type=checkbox class=checkbox value=Y checked>&nbsp;|.$locale->text('Part Number').qq|
+ </td>
+ <td>
+ <input name="l_description" type=checkbox class=checkbox value=Y checked>&nbsp;|.$locale->text('Description').qq|
+ </td>
+ <td>
+ <input name="l_sellprice" type=checkbox class=checkbox value=Y checked>&nbsp;|.$locale->text('Sell Price').qq|
+ </td>
+ <td>
+ <input name="l_curr" type=checkbox class=checkbox value=Y>&nbsp;|.$locale->text('Currency').qq|
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <input name="l_qty" type=checkbox class=checkbox value=Y>&nbsp;|.$locale->text('Qty').qq|
+ </td>
+ <td>
+ <input name="l_unit" type=checkbox class=checkbox value=Y>&nbsp;|.$locale->text('Unit').qq|
+ </td>
+ <td>
+ <input name="l_discount" type=checkbox class=checkbox value=Y>&nbsp;|.$locale->text('Discount').qq|
+ </td>
+ <tr>
+ </tr>
+ <td>
+ <input name="l_deliverydate" type=checkbox class=checkbox value=Y>&nbsp;|.$locale->text('Delivery Date').qq|
+ </td>
+ <td>
+ <input name="l_projectnumber" type=checkbox class=checkbox value=Y>&nbsp;|.$locale->text('Project Number').qq|
+ </td>
+ <td>
+ <input name="l_serialnumber" type=checkbox class=checkbox value=Y>&nbsp;|.$locale->text('Serial Number').qq|
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+|;
+
+ &search_name;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+</body>
+</html>
+|;
+
+}
+
+
+sub transactions {
+
+ if ($form->{db} eq 'customer') {
+ $translabel = $locale->text('AR Transactions');
+ $invlabel = $locale->text('Sales Invoices');
+ $ordlabel = $locale->text('Sales Orders');
+ $quolabel = $locale->text('Quotations');
+ } else {
+ $translabel = $locale->text('AP Transactions');
+ $invlabel = $locale->text('Vendor Invoices');
+ $ordlabel = $locale->text('Purchase Orders');
+ $quolabel = $locale->text('Request for Quotations');
+ }
+
+
+ $transactions = qq|
+ <tr>
+ <td></td>
+ <td>
+ <table>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <td><input name="l_transnumber" type=checkbox class=checkbox value=Y> $translabel</td>
+ </tr>
+ <tr>
+ <td><input name="l_invnumber" type=checkbox class=checkbox value=Y> $invlabel</td>
+ </tr>
+ <tr>
+ <td><input name="l_ordnumber" type=checkbox class=checkbox value=Y> $ordlabel</td>
+ </tr>
+ <tr>
+ <td><input name="l_quonumber" type=checkbox class=checkbox value=Y> $quolabel</td>
+ </tr>
+ </table>
+ </td>
+ <td>
+ <table>
+ <tr>
+ <th>|.$locale->text('From').qq|</th>
+ <td><input name=transdatefrom size=11 title="$myconfig{dateformat}"></td>
+ <th>|.$locale->text('To').qq|</th>
+ <td><input name=transdateto size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan=3>
+ <input name="open" type=checkbox class=checkbox value=Y checked>&nbsp;|.$locale->text('Open').qq|
+ <input name="closed" type=checkbox class=checkbox value=Y checked>&nbsp;|.$locale->text('Closed').qq|
+ </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan=3>
+ <input name="l_amount" type=checkbox class=checkbox value=Y checked>&nbsp;|.$locale->text('Amount').qq|
+ <input name="l_tax" type=checkbox class=checkbox value=Y checked>&nbsp;|.$locale->text('Tax').qq|
+ <input name="l_total" type=checkbox class=checkbox value=Y checked>&nbsp;|.$locale->text('Total').qq|
+ <input name="l_subtotal" type=checkbox class=checkbox value=Y>&nbsp;|.$locale->text('Subtotal').qq|
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+|;
+
+}
+
+
+sub include_in_report {
+
+ $label = ucfirst $form->{db};
+
+ @a = ();
+
+ push @a, qq|<input name="l_ndx" type=checkbox class=checkbox value=Y> |.$locale->text('No.');
+ push @a, qq|<input name="l_id" type=checkbox class=checkbox value=Y> |.$locale->text('ID');
+ push @a, qq|<input name="l_$form->{db}number" type=checkbox class=checkbox value=Y> |.$locale->text($label . ' Number');
+ push @a, qq|<input name="l_name" type=checkbox class=checkbox value=Y $form->{l_name}> |.$locale->text('Company Name');
+ push @a, qq|<input name="l_contact" type=checkbox class=checkbox value=Y $form->{l_contact}> |.$locale->text('Contact');
+ push @a, qq|<input name="l_email" type=checkbox class=checkbox value=Y $form->{l_email}> |.$locale->text('E-mail');
+ push @a, qq|<input name="l_address" type=checkbox class=checkbox value=Y> |.$locale->text('Address');
+ push @a, qq|<input name="l_city" type=checkbox class=checkbox value=Y> |.$locale->text('City');
+ push @a, qq|<input name="l_state" type=checkbox class=checkbox value=Y> |.$locale->text('State/Province');
+ push @a, qq|<input name="l_zipcode" type=checkbox class=checkbox value=Y> |.$locale->text('Zip/Postal Code');
+ push @a, qq|<input name="l_country" type=checkbox class=checkbox value=Y> |.$locale->text('Country');
+ push @a, qq|<input name="l_phone" type=checkbox class=checkbox value=Y $form->{l_phone}> |.$locale->text('Phone');
+ push @a, qq|<input name="l_fax" type=checkbox class=checkbox value=Y> |.$locale->text('Fax');
+ push @a, qq|<input name="l_cc" type=checkbox class=checkbox value=Y> |.$locale->text('Cc');
+
+ if ($myconfig{role} =~ /(admin|manager)/) {
+ push @a, qq|<input name="l_bcc" type=checkbox class=checkbox value=Y> |.$locale->text('Bcc');
+ }
+
+ push @a, qq|<input name="l_notes" type=checkbox class=checkbox value=Y> |.$locale->text('Notes');
+ push @a, qq|<input name="l_discount" type=checkbox class=checkbox value=Y> |.$locale->text('Discount');
+ push @a, qq|<input name="l_taxaccount" type=checkbox class=checkbox value=Y> |.$locale->text('Tax Account');
+ push @a, qq|<input name="l_taxnumber" type=checkbox class=checkbox value=Y> |.$locale->text('Tax Number');
+
+ if ($form->{db} eq 'customer') {
+ push @a, qq|<input name="l_employee" type=checkbox class=checkbox value=Y> |.$locale->text('Salesperson');
+ push @a, qq|<input name="l_manager" type=checkbox class=checkbox value=Y> |.$locale->text('Manager');
+ push @a, qq|<input name="l_pricegroup" type=checkbox class=checkbox value=Y> |.$locale->text('Pricegroup');
+
+ } else {
+ push @a, qq|<input name="l_employee" type=checkbox class=checkbox value=Y> |.$locale->text('Employee');
+ push @a, qq|<input name="l_manager" type=checkbox class=checkbox value=Y> |.$locale->text('Manager');
+ push @a, qq|<input name="l_gifi_accno" type=checkbox class=checkbox value=Y> |.$locale->text('GIFI');
+
+ }
+
+ push @a, qq|<input name="l_sic_code" type=checkbox class=checkbox value=Y> |.$locale->text('SIC');
+ push @a, qq|<input name="l_iban" type=checkbox class=checkbox value=Y> |.$locale->text('IBAN');
+ push @a, qq|<input name="l_bic" type=checkbox class=checkbox value=Y> |.$locale->text('BIC');
+ push @a, qq|<input name="l_business" type=checkbox class=checkbox value=Y> |.$locale->text('Type of Business');
+ push @a, qq|<input name="l_terms" type=checkbox class=checkbox value=Y> |.$locale->text('Terms');
+ push @a, qq|<input name="l_language" type=checkbox class=checkbox value=Y> |.$locale->text('Language');
+ push @a, qq|<input name="l_startdate" type=checkbox class=checkbox value=Y> |.$locale->text('Startdate');
+ push @a, qq|<input name="l_enddate" type=checkbox class=checkbox value=Y> |.$locale->text('Enddate');
+
+
+ $include = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Include in Report').qq|</th>
+ <td>
+ <table>
+|;
+
+ while (@a) {
+ $include .= qq|<tr>\n|;
+ for (1 .. 5) {
+ $include .= qq|<td nowrap>|. shift @a;
+ $include .= qq|</td>\n|;
+ }
+ $include .= qq|</tr>\n|;
+ }
+
+ $include .= qq|
+ </table>
+ </td>
+ </tr>
+|;
+
+}
+
+
+sub search {
+
+# $locale->text('Customers')
+# $locale->text('Vendors')
+
+ $form->{title} = $locale->text('Search') unless $form->{title};
+
+ for (qw(name contact phone email)) { $form->{"l_$_"} = 'checked' }
+
+ $form->{nextsub} = "list_names";
+
+ $orphan = qq|
+ <tr>
+ <td></td>
+ <td><input name=status class=radio type=radio value=all checked>&nbsp;|.$locale->text('All').qq|
+ <input name=status class=radio type=radio value=active>&nbsp;|.$locale->text('Active').qq|
+ <input name=status class=radio type=radio value=inactive>&nbsp;|.$locale->text('Inactive').qq|
+ <input name=status class=radio type=radio value=orphaned>&nbsp;|.$locale->text('Orphaned').qq|</td>
+ </tr>
+|;
+
+
+ &transactions;
+ &include_in_report;
+ &search_name;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+</body>
+</html>
+|;
+
+}
+
+
+sub search_name {
+
+ $label = ucfirst $form->{db};
+
+ if ($form->{db} eq 'customer') {
+ $employee = qq|
+ <th align=right nowrap>|.$locale->text('Salesperson').qq|</th>
+ <td><input name=employee size=32></td>
+|;
+ }
+ if ($form->{db} eq 'vendor') {
+ $employee = qq|
+ <th align=right nowrap>|.$locale->text('Employee').qq|</th>
+ <td><input name=employee size=32></td>
+|;
+ }
+
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=db value=$form->{db}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Company Name').qq|</th>
+ <td><input name=name size=32></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Contact').qq|</th>
+ <td><input name=contact size=32></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('E-mail').qq|</th>
+ <td><input name=email size=32></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Phone').qq|</th>
+ <td><input name=phone size=20></td>
+ </tr>
+ <tr>
+ $employee
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Notes').qq|</th>
+ <td colspan=3><textarea name=notes rows=3 cols=32></textarea></td>
+ </tr>
+ </table>
+ </td>
+
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text($label . ' Number').qq|</th>
+ <td><input name=$form->{db}number size=32></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Address').qq|</th>
+ <td><input name=address size=32></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('City').qq|</th>
+ <td><input name=city size=32></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('State/Province').qq|</th>
+ <td><input name=state size=32></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Zip/Postal Code').qq|</th>
+ <td><input name=zipcode size=10></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Country').qq|</th>
+ <td><input name=country size=32></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Startdate').qq|</th>
+ <td>|.$locale->text('From').qq| <input name=startdatefrom size=11 title="$myconfig{dateformat}"> |.$locale->text('To').qq| <input name=startdateto size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+
+ $orphan
+ $transactions
+ $include
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<input type=hidden name=nextsub value=$form->{nextsub}>
+
+<input type=hidden name=path value=$form->{path}>
+<input type=hidden name=login value=$form->{login}>
+<input type=hidden name=sessionid value=$form->{sessionid}>
+
+<br>
+<input type=submit class=submit name=action value="|.$locale->text('Continue').qq|">
+</form>
+|;
+
+}
+
+
+sub list_names {
+
+ CT->search(\%myconfig, \%$form);
+
+ $href = "$form->{script}?action=list_names&direction=$form->{direction}&oldsort=$form->{oldsort}&db=$form->{db}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&status=$form->{status}&l_subtotal=$form->{l_subtotal}";
+
+ $form->sort_order();
+
+ $callback = "$form->{script}?action=list_names&direction=$form->{direction}&oldsort=$form->{oldsort}&db=$form->{db}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&status=$form->{status}&l_subtotal=$form->{l_subtotal}";
+
+ @columns = $form->sort_columns(id, name, "$form->{db}number", address,
+ city, state, zipcode, country, contact,
+ phone, fax, email, cc, bcc, employee,
+ manager, notes, discount, terms,
+ taxaccount, taxnumber, gifi_accno, sic_code, business,
+ pricegroup, language, iban, bic,
+ startdate, enddate,
+ invnumber, invamount, invtax, invtotal,
+ ordnumber, ordamount, ordtax, ordtotal,
+ quonumber, quoamount, quotax, quototal);
+ unshift @columns, "ndx";
+
+ $form->{l_invnumber} = "Y" if $form->{l_transnumber};
+ foreach $item (qw(inv ord quo)) {
+ if ($form->{"l_${item}number"}) {
+ for (qw(amount tax total)) { $form->{"l_$item$_"} = $form->{"l_$_"} }
+ $removeemployee = 1;
+ $openclosed = 1;
+ }
+ }
+ $form->{open} = $form->{closed} = "" if !$openclosed;
+
+
+ foreach $item (@columns) {
+ if ($form->{"l_$item"} eq "Y") {
+ push @column_index, $item;
+
+ # add column to href and callback
+ $callback .= "&l_$item=Y";
+ $href .= "&l_$item=Y";
+ }
+ }
+
+ foreach $item (qw(amount tax total transnumber)) {
+ if ($form->{"l_$item"} eq "Y") {
+ $callback .= "&l_$item=Y";
+ $href .= "&l_$item=Y";
+ }
+ }
+
+
+ if ($form->{status} eq 'all') {
+ $option = $locale->text('All');
+ }
+ if ($form->{status} eq 'orphaned') {
+ $option = $locale->text('Orphaned');
+ }
+ if ($form->{status} eq 'active') {
+ $option = $locale->text('Active');
+ }
+ if ($form->{status} eq 'inactive') {
+ $option = $locale->text('Inactive');
+ }
+
+ if ($form->{name}) {
+ $callback .= "&name=".$form->escape($form->{name},1);
+ $href .= "&name=".$form->escape($form->{name});
+ $option .= "\n<br>".$locale->text('Name')." : $form->{name}";
+ }
+ if ($form->{address}) {
+ $callback .= "&address=".$form->escape($form->{address},1);
+ $href .= "&address=".$form->escape($form->{address});
+ $option .= "\n<br>".$locale->text('Address')." : $form->{address}";
+ }
+ if ($form->{city}) {
+ $callback .= "&city=".$form->escape($form->{city},1);
+ $href .= "&city=".$form->escape($form->{city});
+ $option .= "\n<br>".$locale->text('City')." : $form->{city}";
+ }
+ if ($form->{state}) {
+ $callback .= "&state=".$form->escape($form->{state},1);
+ $href .= "&state=".$form->escape($form->{state});
+ $option .= "\n<br>".$locale->text('State')." : $form->{state}";
+ }
+ if ($form->{zipcode}) {
+ $callback .= "&zipcode=".$form->escape($form->{zipcode},1);
+ $href .= "&zipcode=".$form->escape($form->{zipcode});
+ $option .= "\n<br>".$locale->text('Zip/Postal Code')." : $form->{zipcode}";
+ }
+ if ($form->{country}) {
+ $callback .= "&country=".$form->escape($form->{country},1);
+ $href .= "&country=".$form->escape($form->{country});
+ $option .= "\n<br>".$locale->text('Country')." : $form->{country}";
+ }
+ if ($form->{contact}) {
+ $callback .= "&contact=".$form->escape($form->{contact},1);
+ $href .= "&contact=".$form->escape($form->{contact});
+ $option .= "\n<br>".$locale->text('Contact')." : $form->{contact}";
+ }
+ if ($form->{employee}) {
+ $callback .= "&employee=".$form->escape($form->{employee},1);
+ $href .= "&employee=".$form->escape($form->{employee});
+ $option .= "\n<br>";
+ if ($form->{db} eq 'customer') {
+ $option .= $locale->text('Salesperson');
+ }
+ if ($form->{db} eq 'vendor') {
+ $option .= $locale->text('Employee');
+ }
+ $option .= " : $form->{employee}";
+ }
+
+ $fromdate = "";
+ $todate = "";
+ if ($form->{startdatefrom}) {
+ $callback .= "&startdatefrom=$form->{startdatefrom}";
+ $href .= "&startdatefrom=$form->{startdatefrom}";
+ $fromdate = $locale->date(\%myconfig, $form->{startdatefrom}, 1);
+ }
+ if ($form->{startdateto}) {
+ $callback .= "&startdateto=$form->{startdateto}";
+ $href .= "&startdateto=$form->{startdateto}";
+ $todate = $locale->date(\%myconfig, $form->{startdateto}, 1);
+ }
+ if ($fromdate || $todate) {
+ $option .= "\n<br>".$locale->text('Startdate')." $fromdate - $todate";
+ }
+
+ if ($form->{notes}) {
+ $callback .= "&notes=".$form->escape($form->{notes},1);
+ $href .= "&notes=".$form->escape($form->{notes});
+ $option .= "\n<br>".$locale->text('Notes')." : $form->{notes}";
+ }
+ if ($form->{"$form->{db}number"}) {
+ $callback .= qq|&$form->{db}number=|.$form->escape($form->{"$form->{db}number"},1);
+ $href .= "&$form->{db}number=".$form->escape($form->{"$form->{db}number"});
+ $option .= "\n<br>".$locale->text('Number').qq| : $form->{"$form->{db}number"}|;
+ }
+ if ($form->{phone}) {
+ $callback .= "&phone=".$form->escape($form->{phone},1);
+ $href .= "&phone=".$form->escape($form->{phone});
+ $option .= "\n<br>".$locale->text('Phone')." : $form->{phone}";
+ }
+ if ($form->{email}) {
+ $callback .= "&email=".$form->escape($form->{email},1);
+ $href .= "&email=".$form->escape($form->{email});
+ $option .= "\n<br>".$locale->text('E-mail')." : $form->{email}";
+ }
+ if ($form->{transdatefrom}) {
+ $callback .= "&transdatefrom=$form->{transdatefrom}";
+ $href .= "&transdatefrom=$form->{transdatefrom}";
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('From')."&nbsp;".$locale->date(\%myconfig, $form->{transdatefrom}, 1);
+ }
+ if ($form->{transdateto}) {
+ $callback .= "&transdateto=$form->{transdateto}";
+ $href .= "&transdateto=$form->{transdateto}";
+ if ($form->{transdatefrom}) {
+ $option .= " ";
+ } else {
+ $option .= "\n<br>" if ($option);
+ }
+ $option .= $locale->text('To')."&nbsp;".$locale->date(\%myconfig, $form->{transdateto}, 1);
+ }
+ if ($form->{open}) {
+ $callback .= "&open=$form->{open}";
+ $href .= "&open=$form->{open}";
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Open');
+ }
+ if ($form->{closed}) {
+ $callback .= "&closed=$form->{closed}";
+ $href .= "&closed=$form->{closed}";
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Closed');
+ }
+
+
+ $form->{callback} = "$callback&sort=$form->{sort}";
+ $callback = $form->escape($form->{callback});
+
+ $column_header{ndx} = qq|<th class=listheading>&nbsp;</th>|;
+ $column_header{id} = qq|<th class=listheading>|.$locale->text('ID').qq|</th>|;
+ $column_header{"$form->{db}number"} = qq|<th><a class=listheading href=$href&sort=$form->{db}number>|.$locale->text('Number').qq|</a></th>|;
+ $column_header{name} = qq|<th><a class=listheading href=$href&sort=name>|.$locale->text('Name').qq|</a></th>|;
+ $column_header{address} = qq|<th class=listheading>|.$locale->text('Address').qq|</th>|;
+ $column_header{city} = qq|<th><a class=listheading href=$href&sort=city>|.$locale->text('City').qq|</a></th>|;
+ $column_header{state} = qq|<th><a class=listheading href=$href&sort=state>|.$locale->text('State/Province').qq|</a></th>|;
+ $column_header{zipcode} = qq|<th><a class=listheading href=$href&sort=zipcode>|.$locale->text('Zip/Postal Code').qq|</a></th>|;
+ $column_header{country} = qq|<th><a class=listheading href=$href&sort=country>|.$locale->text('Country').qq|</a></th>|;
+ $column_header{contact} = qq|<th><a class=listheading href=$href&sort=contact>|.$locale->text('Contact').qq|</a></th>|;
+ $column_header{phone} = qq|<th><a class=listheading href=$href&sort=phone>|.$locale->text('Phone').qq|</a></th>|;
+ $column_header{fax} = qq|<th><a class=listheading href=$href&sort=fax>|.$locale->text('Fax').qq|</a></th>|;
+ $column_header{email} = qq|<th><a class=listheading href=$href&sort=email>|.$locale->text('E-mail').qq|</a></th>|;
+ $column_header{cc} = qq|<th><a class=listheading href=$href&sort=cc>|.$locale->text('Cc').qq|</a></th>|;
+ $column_header{bcc} = qq|<th><a class=listheading href=$href&sort=cc>|.$locale->text('Bcc').qq|</a></th>|;
+ $column_header{notes} = qq|<th><a class=listheading href=$href&sort=notes>|.$locale->text('Notes').qq|</a></th>|;
+ $column_header{discount} = qq|<th class=listheading>%</th>|;
+ $column_header{terms} = qq|<th class=listheading>|.$locale->text('Terms').qq|</th>|;
+
+ $column_header{taxnumber} = qq|<th><a class=listheading href=$href&sort=taxnumber>|.$locale->text('Tax Number').qq|</a></th>|;
+ $column_header{taxaccount} = qq|<th class=listheading>|.$locale->text('Tax Account').qq|</th>|;
+ $column_header{gifi_accno} = qq|<th><a class=listheading href=$href&sort=gifi_accno>|.$locale->text('GIFI').qq|</a></th>|;
+ $column_header{sic_code} = qq|<th><a class=listheading href=$href&sort=sic_code>|.$locale->text('SIC').qq|</a></th>|;
+ $column_header{business} = qq|<th><a class=listheading href=$href&sort=business>|.$locale->text('Type of Business').qq|</a></th>|;
+ $column_header{iban} = qq|<th class=listheading>|.$locale->text('IBAN').qq|</th>|;
+ $column_header{bic} = qq|<th class=listheading>|.$locale->text('BIC').qq|</th>|;
+ $column_header{startdate} = qq|<th><a class=listheading href=$href&sort=startdate>|.$locale->text('Startdate').qq|</a></th>|;
+ $column_header{enddate} = qq|<th><a class=listheading href=$href&sort=enddate>|.$locale->text('Enddate').qq|</a></th>|;
+
+ $column_header{invnumber} = qq|<th><a class=listheading href=$href&sort=invnumber>|.$locale->text('Invoice').qq|</a></th>|;
+ $column_header{ordnumber} = qq|<th><a class=listheading href=$href&sort=ordnumber>|.$locale->text('Order').qq|</a></th>|;
+ $column_header{quonumber} = qq|<th><a class=listheading href=$href&sort=quonumber>|.$locale->text('Quotation').qq|</a></th>|;
+
+ if ($form->{db} eq 'customer') {
+ $column_header{employee} = qq|<th><a class=listheading href=$href&sort=employee>|.$locale->text('Salesperson').qq|</a></th>|;
+ } else {
+ $column_header{employee} = qq|<th><a class=listheading href=$href&sort=employee>|.$locale->text('Employee').qq|</a></th>|;
+ }
+ $column_header{manager} = qq|<th><a class=listheading href=$href&sort=manager>|.$locale->text('Manager').qq|</a></th>|;
+
+ $column_header{pricegroup} = qq|<th><a class=listheading href=$href&sort=pricegroup>|.$locale->text('Pricegroup').qq|</a></th>|;
+ $column_header{language} = qq|<th><a class=listheading href=$href&sort=language>|.$locale->text('Language').qq|</a></th>|;
+
+
+ $amount = $locale->text('Amount');
+ $tax = $locale->text('Tax');
+ $total = $locale->text('Total');
+
+ $column_header{invamount} = qq|<th class=listheading>$amount</th>|;
+ $column_header{ordamount} = qq|<th class=listheading>$amount</th>|;
+ $column_header{quoamount} = qq|<th class=listheading>$amount</th>|;
+
+ $column_header{invtax} = qq|<th class=listheading>$tax</th>|;
+ $column_header{ordtax} = qq|<th class=listheading>$tax</th>|;
+ $column_header{quotax} = qq|<th class=listheading>$tax</th>|;
+
+ $column_header{invtotal} = qq|<th class=listheading>$total</th>|;
+ $column_header{ordtotal} = qq|<th class=listheading>$total</th>|;
+ $column_header{quototal} = qq|<th class=listheading>$total</th>|;
+
+
+ if ($form->{status}) {
+ $label = ucfirst $form->{db}."s";
+ $form->{title} = $locale->text($label);
+ } else {
+ $label = ucfirst $form->{db};
+ $form->{title} = $locale->text($label ." Transactions");
+ }
+
+ $form->header;
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$option</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "$column_header{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ $ordertype = ($form->{db} eq 'customer') ? 'sales_order' : 'purchase_order';
+ $quotationtype = ($form->{db} eq 'customer') ? 'sales_quotation' : 'request_quotation';
+ $subtotal = 0;
+
+ $i = 0;
+ foreach $ref (@{ $form->{CT} }) {
+
+ if ($ref->{$form->{sort}} ne $sameitem && $form->{l_subtotal}) {
+ # print subtotal
+ if ($subtotal) {
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+ &list_subtotal;
+ }
+ }
+
+ if ($ref->{id} eq $sameid) {
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+ } else {
+
+ $i++;
+
+ $ref->{notes} =~ s/\r?\n/<br>/g;
+ for (@column_index) { $column_data{$_} = "<td>$ref->{$_}&nbsp;</td>" }
+
+ $column_data{ndx} = "<td align=right>$i</td>";
+
+ if ($ref->{$form->{sort}} eq $sameitem) {
+ $column_data{$form->{sort}} = "<td>&nbsp;</td>";
+ }
+
+ $column_data{address} = "<td>$ref->{address1} $ref->{address2}&nbsp;</td>";
+ $column_data{name} = "<td><a href=$form->{script}?action=edit&id=$ref->{id}&db=$form->{db}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&status=$form->{status}&callback=$callback>$ref->{name}&nbsp;</td>";
+
+ $email = "";
+ if ($form->{sort} =~ /(email|cc)/) {
+ if ($ref->{$form->{sort}} ne $sameitem) {
+ $email = 1;
+ }
+ } else {
+ $email = 1;
+ }
+
+ if ($email) {
+ foreach $item (qw(email cc bcc)) {
+ if ($ref->{$item}) {
+ $email = $ref->{$item};
+ $email =~ s/</\&lt;/;
+ $email =~ s/>/\&gt;/;
+
+ $column_data{$item} = qq|<td><a href="mailto:$ref->{$item}">$email</a></td>|;
+ }
+ }
+ }
+ }
+
+ if ($ref->{formtype} eq 'invoice') {
+ $column_data{invnumber} = "<td><a href=$ref->{module}.pl?action=edit&id=$ref->{invid}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{invnumber}&nbsp;</td>";
+
+ $column_data{invamount} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{netamount}, 2, "&nbsp;")."</td>";
+ $column_data{invtax} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{amount} - $ref->{netamount}, 2, "&nbsp;")."</td>";
+ $column_data{invtotal} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{amount}, 2, "&nbsp;")."</td>";
+
+ $invamountsubtotal += $ref->{netamount};
+ $invtaxsubtotal += ($ref->{amount} - $ref->{netamount});
+ $invtotalsubtotal += $ref->{amount};
+ $subtotal = 1;
+ }
+
+ if ($ref->{formtype} eq 'order') {
+ $column_data{ordnumber} = "<td><a href=$ref->{module}.pl?action=edit&id=$ref->{invid}&type=$ordertype&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{ordnumber}&nbsp;</td>";
+
+ $column_data{ordamount} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{netamount}, 2, "&nbsp;")."</td>";
+ $column_data{ordtax} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{amount} - $ref->{netamount}, 2, "&nbsp;")."</td>";
+ $column_data{ordtotal} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{amount}, 2, "&nbsp;")."</td>";
+
+ $ordamountsubtotal += $ref->{netamount};
+ $ordtaxsubtotal += ($ref->{amount} - $ref->{netamount});
+ $ordtotalsubtotal += $ref->{amount};
+ $subtotal = 1;
+ }
+
+ if ($ref->{formtype} eq 'quotation') {
+ $column_data{quonumber} = "<td><a href=$ref->{module}.pl?action=edit&id=$ref->{invid}&type=$quotationtype&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{quonumber}&nbsp;</td>";
+
+ $column_data{quoamount} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{netamount}, 2, "&nbsp;")."</td>";
+ $column_data{quotax} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{amount} - $ref->{netamount}, 2, "&nbsp;")."</td>";
+ $column_data{quototal} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{amount}, 2, "&nbsp;")."</td>";
+
+ $quoamountsubtotal += $ref->{netamount};
+ $quotaxsubtotal += ($ref->{amount} - $ref->{netamount});
+ $quototalsubtotal += $ref->{amount};
+ $subtotal = 1;
+ }
+
+ if ($sameid ne "$ref->{id}") {
+ if ($form->{l_discount}) {
+ $column_data{discount} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{discount} * 100, "", "&nbsp;")."</td>";
+ }
+ if ($form->{l_terms}) {
+ $column_data{terms} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{terms}, "", "&nbsp;")."</td>";
+ }
+ }
+
+ $j++; $j %= 2;
+ print "
+ <tr class=listrow$j>
+";
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ $sameitem = "$ref->{$form->{sort}}";
+ $sameid = $ref->{id};
+
+ }
+
+ if ($form->{l_subtotal} && $subtotal) {
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+ &list_subtotal;
+ }
+
+ $i = 1;
+ if ($myconfig{acs} !~ /AR--AR/) {
+ if ($form->{db} eq 'customer') {
+ $button{'AR--Customers--Add Customer'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Add Customer').qq|"> |;
+ $button{'AR--Customers--Add Customer'}{order} = $i++;
+ }
+ }
+ if ($myconfig{acs} !~ /AP--AP/) {
+ if ($form->{db} eq 'vendor') {
+ $button{'AP--Vendors--Add Vendor'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Add Vendor').qq|"> |;
+ $button{'AP--Vendors--Add Vendor'}{order} = $i++;
+ }
+ }
+
+ foreach $item (split /;/, $myconfig{acs}) {
+ delete $button{$item};
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+<form method=post action=$form->{script}>
+|;
+
+ $form->hide_form(qw(callback db path login sessionid));
+
+ if ($form->{status}) {
+ foreach $item (sort { $a->{order} <=> $b->{order} } %button) {
+ print $item->{code};
+ }
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub list_subtotal {
+
+ $column_data{invamount} = "<td align=right>".$form->format_amount(\%myconfig, $invamountsubtotal, 2, "&nbsp;")."</td>";
+ $column_data{invtax} = "<td align=right>".$form->format_amount(\%myconfig, $invtaxsubtotal, 2, "&nbsp;")."</td>";
+ $column_data{invtotal} = "<td align=right>".$form->format_amount(\%myconfig, $invtotalsubtotal, 2, "&nbsp;")."</td>";
+
+ $invamountsubtotal = 0;
+ $invtaxsubtotal = 0;
+ $invtotalsubtotal = 0;
+
+ $column_data{ordamount} = "<td align=right>".$form->format_amount(\%myconfig, $ordamountsubtotal, 2, "&nbsp;")."</td>";
+ $column_data{ordtax} = "<td align=right>".$form->format_amount(\%myconfig, $ordtaxsubtotal, 2, "&nbsp;")."</td>";
+ $column_data{ordtotal} = "<td align=right>".$form->format_amount(\%myconfig, $ordtotalsubtotal, 2, "&nbsp;")."</td>";
+
+ $ordamountsubtotal = 0;
+ $ordtaxsubtotal = 0;
+ $ordtotalsubtotal = 0;
+
+ $column_data{quoamount} = "<td align=right>".$form->format_amount(\%myconfig, $quoamountsubtotal, 2, "&nbsp;")."</td>";
+ $column_data{quotax} = "<td align=right>".$form->format_amount(\%myconfig, $quotaxsubtotal, 2, "&nbsp;")."</td>";
+ $column_data{quototal} = "<td align=right>".$form->format_amount(\%myconfig, $quototalsubtotal, 2, "&nbsp;")."</td>";
+
+ $quoamountsubtotal = 0;
+ $quotaxsubtotal = 0;
+ $quototalsubtotal = 0;
+
+ print "
+ <tr class=listsubtotal>
+";
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+
+}
+
+
+sub list_history {
+
+ CT->get_history(\%myconfig, \%$form);
+
+ $href = "$form->{script}?action=list_history&direction=$form->{direction}&oldsort=$form->{oldsort}&db=$form->{db}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&type=$form->{type}&transdatefrom=$form->{transdatefrom}&transdateto=$form->{transdateto}&history=$form->{history}";
+
+ $form->sort_order();
+
+ $callback = "$form->{script}?action=list_history&direction=$form->{direction}&oldsort=$form->{oldsort}&db=$form->{db}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&type=$form->{type}&transdatefrom=$form->{transdatefrom}&transdateto=$form->{transdateto}&history=$form->{history}";
+
+ $form->{l_fxsellprice} = $form->{l_curr};
+ @columns = $form->sort_columns(partnumber, description, qty, unit, sellprice, fxsellprice, curr, discount, deliverydate, projectnumber, serialnumber);
+
+ if ($form->{history} eq 'summary') {
+ @columns = $form->sort_columns(partnumber, description, qty, unit, sellprice, curr);
+ }
+
+ foreach $item (@columns) {
+ if ($form->{"l_$item"} eq "Y") {
+ push @column_index, $item;
+
+ # add column to href and callback
+ $callback .= "&l_$item=Y";
+ $href .= "&l_$item=Y";
+ }
+ }
+
+ if ($form->{history} eq 'detail') {
+ $option = $locale->text('Detail');
+ }
+ if ($form->{history} eq 'summary') {
+ $option .= $locale->text('Summary');
+ }
+ if ($form->{name}) {
+ $callback .= "&name=".$form->escape($form->{name},1);
+ $href .= "&name=".$form->escape($form->{name});
+ $option .= "\n<br>".$locale->text('Name')." : $form->{name}";
+ }
+ if ($form->{contact}) {
+ $callback .= "&contact=".$form->escape($form->{contact},1);
+ $href .= "&contact=".$form->escape($form->{contact});
+ $option .= "\n<br>".$locale->text('Contact')." : $form->{contact}";
+ }
+ if ($form->{"$form->{db}number"}) {
+ $callback .= qq|&$form->{db}number=|.$form->escape($form->{"$form->{db}number"},1);
+ $href .= "&$form->{db}number=".$form->escape($form->{"$form->{db}number"});
+ $option .= "\n<br>".$locale->text('Number').qq| : $form->{"$form->{db}number"}|;
+ }
+ if ($form->{email}) {
+ $callback .= "&email=".$form->escape($form->{email},1);
+ $href .= "&email=".$form->escape($form->{email});
+ $option .= "\n<br>".$locale->text('E-mail')." : $form->{email}";
+ }
+ if ($form->{transdatefrom}) {
+ $callback .= "&transdatefrom=$form->{transdatefrom}";
+ $href .= "&transdatefrom=$form->{transdatefrom}";
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('From')."&nbsp;".$locale->date(\%myconfig, $form->{transdatefrom}, 1);
+ }
+ if ($form->{transdateto}) {
+ $callback .= "&transdateto=$form->{transdateto}";
+ $href .= "&transdateto=$form->{transdateto}";
+ if ($form->{transdatefrom}) {
+ $option .= " ";
+ } else {
+ $option .= "\n<br>" if ($option);
+ }
+ $option .= $locale->text('To')."&nbsp;".$locale->date(\%myconfig, $form->{transdateto}, 1);
+ }
+ if ($form->{open}) {
+ $callback .= "&open=$form->{open}";
+ $href .= "&open=$form->{open}";
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Open');
+ }
+ if ($form->{closed}) {
+ $callback .= "&closed=$form->{closed}";
+ $href .= "&closed=$form->{closed}";
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Closed');
+ }
+
+
+ $form->{callback} = "$callback&sort=$form->{sort}";
+ $callback = $form->escape($form->{callback});
+
+ $column_header{partnumber} = qq|<th><a class=listheading href=$href&sort=partnumber>|.$locale->text('Part Number').qq|</a></th>|;
+ $column_header{description} = qq|<th><a class=listheading href=$href&sort=description>|.$locale->text('Description').qq|</a></th>|;
+
+ if ($form->{history} eq 'summary') {
+ $column_header{sellprice} = qq|<th class=listheading>|.$locale->text('Total').qq|</th>|;
+ } else {
+ $column_header{sellprice} = qq|<th class=listheading>|.$locale->text('Sell Price').qq|</th>|;
+ }
+ $column_header{fxsellprice} = qq|<th>&nbsp;</th>|;
+
+ $column_header{curr} = qq|<th class=listheading>|.$locale->text('Curr').qq|</th>|;
+ $column_header{discount} = qq|<th class=listheading>|.$locale->text('Discount').qq|</th>|;
+ $column_header{qty} = qq|<th class=listheading>|.$locale->text('Qty').qq|</th>|;
+ $column_header{unit} = qq|<th class=listheading>|.$locale->text('Unit').qq|</th>|;
+ $column_header{deliverydate} = qq|<th><a class=listheading href=$href&sort=deliverydate>|.$locale->text('Delivery Date').qq|</a></th>|;
+ $column_header{projectnumber} = qq|<th><a class=listheading href=$href&sort=projectnumber>|.$locale->text('Project Number').qq|</a></th>|;
+ $column_header{serialnumber} = qq|<th><a class=listheading href=$href&sort=serialnumber>|.$locale->text('Serial Number').qq|</a></th>|;
+
+
+# $locale->text('Customer History')
+# $locale->text('Vendor History')
+
+ $label = ucfirst $form->{db};
+ $form->{title} = $locale->text($label." History");
+
+ $colspan = $#column_index + 1;
+
+ $form->header;
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$option</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "$column_header{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+
+ $module = 'oe';
+ if ($form->{db} eq 'customer') {
+ $invlabel = $locale->text('Sales Invoice');
+ $ordlabel = $locale->text('Sales Order');
+ $quolabel = $locale->text('Quotation');
+
+ $ordertype = 'sales_order';
+ $quotationtype = 'sales_quotation';
+ if ($form->{type} eq 'invoice') {
+ $module = 'is';
+ }
+ } else {
+ $invlabel = $locale->text('Vendor Invoice');
+ $ordlabel = $locale->text('Purchase Order');
+ $quolabel = $locale->text('RFQ');
+
+ $ordertype = 'purchase_order';
+ $quotationtype = 'request_quotation';
+ if ($form->{type} eq 'invoice') {
+ $module = 'ir';
+ }
+ }
+
+ $ml = ($form->{db} eq 'vendor') ? -1 : 1;
+
+ foreach $ref (@{ $form->{CT} }) {
+
+ if ($ref->{id} ne $sameid) {
+ # print the header
+ print qq|
+ <tr class=listheading>
+ <th colspan=$colspan><a class=listheading href=$form->{script}?action=edit&id=$ref->{ctid}&db=$form->{db}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{name} $ref->{address}</a></th>
+ </tr>
+|;
+ }
+
+ if ($form->{type} ne 'invoice') {
+ $ref->{fxsellprice} = $ref->{sellprice};
+ $ref->{sellprice} *= $ref->{exchangerate};
+ }
+
+ if ($form->{history} eq 'detail' and $ref->{invid} ne $sameinvid) {
+ # print inv, ord, quo number
+ $i++; $i %= 2;
+
+ print qq|
+ <tr class=listrow$i>
+|;
+
+ if ($form->{type} eq 'invoice') {
+ print qq|<th align=left colspan=$colspan><a href=${module}.pl?action=edit&id=$ref->{invid}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$invlabel $ref->{invnumber} / $ref->{employee}</a></th>|;
+ }
+
+ if ($form->{type} eq 'order') {
+ print qq|<th align=left colspan=$colspan><a href=${module}.pl?action=edit&id=$ref->{invid}&type=$ordertype&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ordlabel $ref->{ordnumber} / $ref->{employee}</a></th>|;
+ }
+
+ if ($form->{type} eq 'quotation') {
+ print qq|<th align=left colspan=$colspan><a href=${module}.pl?action=edit&id=$ref->{invid}&type=$quotationtype&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$quolabel $ref->{quonumber} / $ref->{employee}</a></th>|;
+ }
+
+ print qq|
+ </tr>
+|;
+ }
+
+ for (@column_index) { $column_data{$_} = "<td>$ref->{$_}&nbsp;</td>" }
+
+ if ($form->{l_curr}) {
+ $column_data{fxsellprice} = qq|<td align=right>|.$form->format_amount(\%myconfig, $ref->{fxsellprice}, 2)."</td>";
+ }
+ $column_data{sellprice} = qq|<td align=right>|.$form->format_amount(\%myconfig, $ref->{sellprice}, 2)."</td>";
+
+ $column_data{qty} = qq|<td align=right>|.$form->format_amount(\%myconfig, $ref->{qty} * $ml)."</td>";
+ $column_data{discount} = qq|<td align=right>|.$form->format_amount(\%myconfig, $ref->{discount} * 100, "", "&nbsp;")."</td>";
+ $column_data{partnumber} = qq|<td><a href=ic.pl?action=edit&id=$ref->{pid}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{partnumber}</td>|;
+
+
+ $i++; $i %= 2;
+ print qq|
+ <tr class=listrow$i>
+|;
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ $sameid = $ref->{id};
+ $sameinvid = $ref->{invid};
+
+ }
+
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+</body>
+</html>
+|;
+
+}
+
+
+
+sub edit {
+
+# $locale->text('Edit Customer')
+# $locale->text('Edit Vendor')
+
+ CT->create_links(\%myconfig, \%$form);
+
+ for (keys %$form) { $form->{$_} = $form->quote($form->{$_}) }
+
+ $form->{title} = "Edit";
+
+ # format discount
+ $form->{discount} *= 100;
+
+ &form_header;
+ &form_footer;
+
+}
+
+
+sub form_header {
+
+ $form->{taxincluded} = ($form->{taxincluded}) ? "checked" : "";
+ $form->{creditlimit} = $form->format_amount(\%myconfig, $form->{creditlimit}, 0);
+ $form->{discount} = $form->format_amount(\%myconfig, $form->{discount}, "");
+ $form->{terms} = $form->format_amount(\%myconfig, $form->{terms}, "");
+
+ if ($myconfig{role} =~ /(admin|manager)/) {
+ $bcc = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Bcc').qq|</th>
+ <td><input name=bcc size=35 value="$form->{bcc}"></td>
+ </tr>
+|;
+ }
+
+ if ($form->{currencies}) {
+ # currencies
+ for (split /:/, $form->{currencies}) { $form->{selectcurrency} .= "<option>$_\n" }
+ $form->{selectcurrency} =~ s/option>($form->{curr})/option selected>$1/;
+ $currency = qq|
+ <th>|.$locale->text('Currency').qq|</th>
+ <td><select name=curr>$form->{selectcurrency}</select></td>
+|;
+ }
+
+ foreach $item (split / /, $form->{taxaccounts}) {
+ if ($form->{tax}{$item}{taxable}) {
+ $taxable .= qq| <input name="tax_$item" value=1 class=checkbox type=checkbox checked>&nbsp;<b>$form->{tax}{$item}{description}</b>|;
+ } else {
+ $taxable .= qq| <input name="tax_$item" value=1 class=checkbox type=checkbox>&nbsp;<b>$form->{tax}{$item}{description}</b>|;
+ }
+ }
+
+ if ($taxable) {
+ $tax = qq|
+ <tr>
+ <th align=right>|.$locale->text('Taxable').qq|</th>
+ <td colspan=5>
+ <table>
+ <tr>
+ <td>$taxable</td>
+ <td><input name=taxincluded class=checkbox type=checkbox value=1 $form->{taxincluded}></td>
+ <th align=left>|.$locale->text('Tax Included').qq|</th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+|;
+ }
+
+ $typeofbusiness = qq|
+ <th></th>
+ <td></td>
+|;
+
+ if (@{ $form->{all_business} }) {
+ $form->{selectbusiness} = qq|<option>\n|;
+ for (@{ $form->{all_business} }) { $form->{selectbusiness} .= qq|<option value="$_->{description}--$_->{id}">$_->{description}\n| }
+
+ $form->{selectbusiness} =~ s/(<option value="\Q$form->{business}--$form->{business_id}\E")>/$1 selected>/;
+
+ $typeofbusiness = qq|
+ <th align=right>|.$locale->text('Type of Business').qq|</th>
+ <td><select name=business>$form->{selectbusiness}</select></td>
+|;
+
+
+ }
+
+ $pricegroup = qq|
+ <th></th>
+ <td></td>
+|;
+
+ if (@{ $form->{all_pricegroup} } && $form->{db} eq 'customer') {
+ $form->{selectpricegroup} = qq|<option>\n|;
+ for (@{ $form->{all_pricegroup} }) { $form->{selectpricegroup} .= qq|<option value="$_->{pricegroup}--$_->{id}">$_->{pricegroup}\n| }
+
+ $form->{selectpricegroup} =~ s/(<option value="\Q$form->{pricegroup}--$form->{pricegroup_id}\E")/$1 selected/;
+
+ $pricegroup = qq|
+ <th align=right>|.$locale->text('Pricegroup').qq|</th>
+ <td><select name=pricegroup>$form->{selectpricegroup}</select></td>
+|;
+ }
+
+ $lang = qq|
+ <th></th>
+ <td></td>
+|;
+
+ if (@{ $form->{all_language} }) {
+ $form->{selectlanguage} = qq|<option>\n|;
+ for (@{ $form->{all_language} }) { $form->{selectlanguage} .= qq|<option value="$_->{description}--$_->{code}">$_->{description}\n| }
+
+ $form->{selectlanguage} =~ s/(<option value="\Q$form->{language}--$form->{language_code}\E")/$1 selected/;
+
+ $lang = qq|
+ <th align=right>|.$locale->text('Language').qq|</th>
+ <td><select name=language>$form->{selectlanguage}</select></td>
+|;
+ }
+
+ $employeelabel = $locale->text('Salesperson');
+
+ $form->{selectemployee} = qq|<option>\n|;
+ for (@{ $form->{all_employee} }) { $form->{selectemployee} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+
+ $form->{selectemployee} =~ s/(<option value="\Q$form->{employee}--$form->{employee_id}\E")/$1 selected/;
+
+ if ($form->{db} eq 'vendor') {
+ $gifi = qq|
+ <th align=right>|.$locale->text('Sub-contract GIFI').qq|</th>
+ <td><input name=gifi_accno size=9 value="$form->{gifi_accno}"></td>
+|;
+ $employeelabel = $locale->text('Employee');
+ }
+
+
+ if (@{ $form->{all_employee} }) {
+ $employee = qq|
+ <th align=right>$employeelabel</th>|;
+
+ if ($myconfig{role} ne 'user' || !$form->{id}) {
+ $employee .= qq|
+ <td><select name=employee>$form->{selectemployee}</select></td>
+|;
+ } else {
+ $employee .= qq|
+ <td>$form->{employee}</td>
+ <input type=hidden name=employee value="$form->{employee}--$form->{employee_id}">|;
+ }
+ }
+
+
+# $locale->text('Customer Number')
+# $locale->text('Vendor Number')
+
+ $label = ucfirst $form->{db};
+ $form->{title} = $locale->text("$form->{title} $label");
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=50%>
+ <table width=100%>
+ <tr class=listheading>
+ <th class=listheading colspan=2 width=50%>|.$locale->text('Billing Address').qq|</th>
+ <tr>
+ <th align=right nowrap>|.$locale->text($label .' Number').qq|</th>
+ <td><input name="$form->{db}number" size=35 maxlength=32 value="$form->{"$form->{db}number"}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Company Name').qq|</th>
+ <td><input name=name size=35 maxlength=64 value="$form->{name}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Address').qq|</th>
+ <td><input name=address1 size=35 maxlength=32 value="$form->{address1}"></td>
+ </tr>
+ <tr>
+ <th></th>
+ <td><input name=address2 size=35 maxlength=32 value="$form->{address2}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('City').qq|</th>
+ <td><input name=city size=35 maxlength=32 value="$form->{city}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('State/Province').qq|</th>
+ <td><input name=state size=35 maxlength=32 value="$form->{state}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Zip/Postal Code').qq|</th>
+ <td><input name=zipcode size=10 maxlength=10 value="$form->{zipcode}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Country').qq|</th>
+ <td><input name=country size=35 maxlength=32 value="$form->{country}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Contact').qq|</th>
+ <td><input name=contact size=35 maxlength=64 value="$form->{contact}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Phone').qq|</th>
+ <td><input name=phone size=20 maxlength=20 value="$form->{phone}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Fax').qq|</th>
+ <td><input name=fax size=20 maxlength=20 value="$form->{fax}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('E-mail').qq|</th>
+ <td><input name=email size=35 value="$form->{email}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Cc').qq|</th>
+ <td><input name=cc size=35 value="$form->{cc}"></td>
+ </tr>
+ $bcc
+ </table>
+ </td>
+ <td width=50%>
+ <table width=100%>
+ <tr>
+ <th class=listheading colspan=2>|.$locale->text('Shipping Address').qq|</th>
+ </tr>
+ <tr>
+ <td><input name=none size=35 value=|. ("=" x 35) .qq|></td>
+ </tr>
+ <tr>
+ <td><input name=shiptoname size=35 maxlength=64 value="$form->{shiptoname}"></td>
+ </tr>
+ <tr>
+ <td><input name=shiptoaddress1 size=35 maxlength=32 value="$form->{shiptoaddress1}"></td>
+ </tr>
+ <tr>
+ <td><input name=shiptoaddress2 size=35 maxlength=32 value="$form->{shiptoaddress2}"></td>
+ </tr>
+ <tr>
+ <td><input name=shiptocity size=35 maxlength=32 value="$form->{shiptocity}"></td>
+ </tr>
+ <tr>
+ <td><input name=shiptostate size=35 maxlength=32 value="$form->{shiptostate}"></td>
+ </tr>
+ <tr>
+ <td><input name=shiptozipcode size=10 maxlength=10 value="$form->{shiptozipcode}"></td>
+ </tr>
+ <tr>
+ <td><input name=shiptocountry size=35 maxlength=32 value="$form->{shiptocountry}"></td>
+ </tr>
+ <tr>
+ <td><input name=shiptocontact size=35 maxlength=64 value="$form->{shiptocontact}"></td>
+ </tr>
+ <tr>
+ <td><input name=shiptophone size=20 maxlength=20 value="$form->{shiptophone}"></td>
+ </tr>
+ <tr>
+ <td><input name=shiptofax size=20 maxlength=20 value="$form->{shiptofax}"></td>
+ </tr>
+ <tr>
+ <td><input name=shiptoemail size=35 value="$form->{shiptoemail}"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table>
+ $tax
+ <tr>
+ <th align=right>|.$locale->text('Startdate').qq|</th>
+ <td><input name=startdate size=11 title="$myconfig{dateformat}" value=$form->{startdate}></td>
+ <th align=right>|.$locale->text('Enddate').qq|</th>
+ <td><input name=enddate size=11 title="$myconfig{dateformat}" value=$form->{enddate}></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Credit Limit').qq|</th>
+ <td><input name=creditlimit size=9 value="$form->{creditlimit}"></td>
+ <th align=right>|.$locale->text('Terms').qq|</th>
+ <td><input name=terms size=2 value="$form->{terms}"> <b>|.$locale->text('days').qq|</b></td>
+ <th align=right>|.$locale->text('Discount').qq|</th>
+ <td><input name=discount size=4 value="$form->{discount}">
+ <b>%</b></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Tax Number / SSN').qq|</th>
+ <td><input name=taxnumber size=20 value="$form->{taxnumber}"></td>
+ $gifi
+ <th align=right>|.$locale->text('SIC').qq|</th>
+ <td><input name=sic_code size=6 maxlength=6 value="$form->{sic_code}"></td>
+ </tr>
+ <tr>
+ $typeofbusiness
+ <th align=right>|.$locale->text('BIC').qq|</th>
+ <td><input name=bic size=11 maxlength=11 value="$form->{bic}"></td>
+ <th align=right>|.$locale->text('IBAN').qq|</th>
+ <td><input name=iban size=24 maxlength=34 value="$form->{iban}"></td>
+ </tr>
+ <tr>
+ $pricegroup
+ $lang
+ $currency
+ </tr>
+ <tr valign=top>
+ $employee
+ <td colspan=4>
+ <table>
+ <tr valign=top>
+ <th align=left nowrap>|.$locale->text('Notes').qq|</th>
+ <td><textarea name=notes rows=3 cols=40 wrap=soft>$form->{notes}</textarea></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+}
+
+
+
+sub form_footer {
+
+# type=submit $locale->text('Save')
+# type=submit $locale->text('Save as new')
+# type=submit $locale->text('AR Transaction')
+# type=submit $locale->text('Sales Invoice')
+# type=submit $locale->text('Sales Order')
+# type=submit $locale->text('Quotation')
+# type=submit $locale->text('AP Transaction')
+# type=submit $locale->text('Vendor Invoice')
+# type=submit $locale->text('Purchase Order')
+# type=submit $locale->text('RFQ')
+# type=submit $locale->text('Pricelist')
+# type=submit $locale->text('Delete')
+# type=submit $locale->text('POS')
+
+ %button = ('Save' => { ndx => 1, key => 'S', value => $locale->text('Save') },
+ 'Save as new' => { ndx => 2, key => 'N', value => $locale->text('Save as new') },
+ 'AR Transaction' => { ndx => 7, key => 'A', value => $locale->text('AR Transaction') },
+ 'AP Transaction' => { ndx => 8, key => 'A', value => $locale->text('AP Transaction') },
+ 'Sales Invoice' => { ndx => 9, key => 'I', value => $locale->text('Sales Invoice') },
+ 'POS' => { ndx => 10, key => 'C', value => $locale->text('POS') },
+ 'Sales Order' => { ndx => 11, key => 'O', value => $locale->text('Sales Order') },
+ 'Quotation' => { ndx => 12, key => 'Q', value => $locale->text('Quotation') },
+ 'Vendor Invoice' => { ndx => 13, key => 'I', value => $locale->text('Vendor Invoice') },
+ 'Purchase Order' => { ndx => 14, key => 'O', value => $locale->text('Purchase Order') },
+ 'RFQ' => { ndx => 15, key => 'Q', value => $locale->text('RFQ') },
+ 'Pricelist' => { ndx => 16, key => 'P', value => $locale->text('Pricelist') },
+ 'Delete' => { ndx => 17, key => 'D', value => $locale->text('Delete') },
+ );
+
+
+ %a = ();
+
+ if ($form->{db} eq 'customer') {
+ if ($myconfig{acs} !~ /AR--Customers--Add Customer/) {
+ $a{'Save'} = 1;
+
+ if ($form->{id}) {
+ $a{'Save as new'} = 1;
+ if ($form->{status} eq 'orphaned') {
+ $a{'Delete'} = 1;
+ }
+ }
+ }
+
+ if ($myconfig{acs} !~ /AR--AR/) {
+ if ($myconfig{acs} !~ /AR--Add Transaction/) {
+ $a{'AR Transaction'} = 1;
+ }
+ if ($myconfig{acs} !~ /AR--Sales Invoice/) {
+ $a{'Sales Invoice'} = 1;
+ }
+ }
+ if ($myconfig{acs} !~ /POS--POS/) {
+ if ($myconfig{acs} !~ /POS--Sale/) {
+ $a{'POS'} = 1;
+ }
+ }
+ if ($myconfig{acs} !~ /Order Entry--Order Entry/) {
+ if ($myconfig{acs} !~ /Order Entry--Sales Order/) {
+ $a{'Sales Order'} = 1;
+ }
+ }
+ if ($myconfig{acs} !~ /Quotations--Quotations/) {
+ if ($myconfig{acs} !~ /Quotations--Quotation/) {
+ $a{'Quotation'} = 1;
+ }
+ }
+ }
+
+ if ($form->{db} eq 'vendor') {
+ if ($myconfig{acs} !~ /AP--Vendors--Add Vendor/) {
+ $a{'Save'} = 1;
+
+ if ($form->{id}) {
+ $a{'Save as new'} = 1;
+ if ($form->{status} eq 'orphaned') {
+ $a{'Delete'} = 1;
+ }
+ }
+ }
+
+ if ($myconfig{acs} !~ /AP--AP/) {
+ if ($myconfig{acs} !~ /AP--Add Transaction/) {
+ $a{'AP Transaction'} = 1;
+ }
+ if ($myconfig{acs} !~ /AP--Vendor Invoice/) {
+ $a{'Vendor Invoice'} = 1;
+ }
+ }
+ if ($myconfig{acs} !~ /Order Entry--Order Entry/) {
+ if ($myconfig{acs} !~ /Order Entry--Purchase Order/) {
+ $a{'Purchase Order'} = 1;
+ }
+ }
+ if ($myconfig{acs} !~ /Quotations--Quotations/) {
+ if ($myconfig{acs} !~ /Quotations--RFQ/) {
+ $a{'RFQ'} = 1;
+ }
+ }
+ }
+
+ if ($myconfig{acs} !~ /Goods & Services--Goods & Services/) {
+ $myconfig{acs} =~ s/(Goods & Services--)Add (Service|Assembly).*;/$1--Add Part/g;
+ if ($myconfig{acs} !~ /Goods & Services--Add Part/) {
+ $a{'Pricelist'} = 1;
+ }
+ }
+
+ $form->hide_form(qw(id taxaccounts path login sessionid callback db));
+
+ for (keys %button) { delete $button{$_} if ! $a{$_} }
+ for (sort { $button{$a}->{ndx} <=> $button{$b}->{ndx} } keys %button) { $form->print_button(\%button, $_) }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+ </form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub pricelist {
+
+ $form->isblank("name", $locale->text('Name missing!'));
+
+ $form->{display_form} ||= "display_pricelist";
+
+ CT->pricelist(\%myconfig, \%$form);
+
+ foreach $ref (@{ $form->{"all_partspricelist"} }) {
+ $i++;
+ for (keys %$ref) { $form->{"${_}_$i"} = $ref->{$_} }
+ }
+ $form->{rowcount} = $i;
+
+ # currencies
+ @curr = split /:/, $form->{currencies};
+ for (@curr) { $form->{selectcurrency} .= "<option>$_\n" }
+
+ if (@ { $form->{all_partsgroup} }) {
+ $form->{selectpartsgroup} = "";
+ foreach $ref (@ { $form->{all_partsgroup} }) {
+ $form->{selectpartsgroup} .= qq|$ref->{partsgroup}--$ref->{id}\n|;
+ }
+ }
+
+ for (qw(currencies all_partsgroup all_partspricelist)) { delete $form->{$_} }
+
+ foreach $i (1 .. $form->{rowcount}) {
+
+ if ($form->{db} eq 'customer') {
+
+ $form->{"pricebreak_$i"} = $form->format_amount(\%myconfig, $form->{"pricebreak_$i"});
+
+ $form->{"sellprice_$i"} = $form->format_amount(\%myconfig, $form->{"sellprice_$i"}, 2);
+
+ }
+
+ if ($form->{db} eq 'vendor') {
+
+ $form->{"leadtime_$i"} = $form->format_amount(\%myconfig, $form->{"leadtime_$i"});
+
+ $form->{"lastcost_$i"} = $form->format_amount(\%myconfig, $form->{"lastcost_$i"}, 2);
+
+ }
+ }
+
+ $form->{rowcount}++;
+ &{ "$form->{db}_pricelist" };
+
+}
+
+
+sub customer_pricelist {
+
+ @flds = qw(runningnumber id partnumber description sellprice unit partsgroup pricebreak curr validfrom validto);
+
+ $form->{rowcount}--;
+
+ # remove empty rows
+ if ($form->{rowcount}) {
+
+ foreach $i (1 .. $form->{rowcount}) {
+
+ for (qw(pricebreak sellprice)) { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) }
+
+ ($a, $b) = split /\./, $form->{"pricebreak_$i"};
+ $a = length $a;
+ $b = length $b;
+ $whole = ($whole > $a) ? $whole : $a;
+ $dec = ($dec > $b) ? $dec : $b;
+ }
+ $pad1 = '0' x $whole;
+ $pad2 = '0' x $dec;
+
+ foreach $i (1 .. $form->{rowcount}) {
+ ($a, $b) = split /\./, $form->{"pricebreak_$i"};
+
+ $a = substr("$pad1$a", -$whole);
+ $b = substr("$b$pad2", 0, $dec);
+ $ndx{qq|$form->{"partnumber_$i"}_$form->{"id_$i"}_$a$b|} = $i;
+ }
+
+ $i = 1;
+ for (sort keys %ndx) { $form->{"runningnumber_$ndx{$_}"} = $i++ }
+
+ foreach $i (1 .. $form->{rowcount}) {
+ if ($form->{"partnumber_$i"} && $form->{"sellprice_$i"}) {
+ if ($form->{"id_$i"} eq $sameid) {
+ $j = $i + 1;
+ next if ($form->{"id_$j"} eq $sameid && !$form->{"pricebreak_$i"});
+ }
+
+ push @a, {};
+ $j = $#a;
+
+ for (@flds) { $a[$j]->{$_} = $form->{"${_}_$i"} }
+ $count++;
+ }
+ $sameid = $form->{"id_$i"};
+ }
+
+ $form->redo_rows(\@flds, \@a, $count, $form->{rowcount});
+ $form->{rowcount} = $count;
+
+ }
+
+ $form->{rowcount}++;
+
+ if ($form->{display_form}) {
+ &{ "$form->{display_form}" };
+ }
+
+}
+
+
+sub vendor_pricelist {
+
+ @flds = qw(runningnumber id sku partnumber description lastcost unit partsgroup curr leadtime);
+
+ $form->{rowcount}--;
+
+ # remove empty rows
+ if ($form->{rowcount}) {
+
+ foreach $i (1 .. $form->{rowcount}) {
+
+ for (qw(leadtime lastcost)) { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) }
+ $var = ($form->{"partnumber_$i"}) ? $form->{"sku_$i"} : qq|_$form->{"sku_$i"}|;
+ $ndx{$var} = $i;
+
+ }
+
+ $i = 1;
+ for (sort keys %ndx) { $form->{"runningnumber_$ndx{$_}"} = $i++ }
+
+ foreach $i (1 .. $form->{rowcount}) {
+ if ($form->{"sku_$i"}) {
+ push @a, {};
+ $j = $#a;
+
+ for (@flds) { $a[$j]->{$_} = $form->{"${_}_$i"} }
+ $count++;
+ }
+ }
+
+ $form->redo_rows(\@flds, \@a, $count, $form->{rowcount});
+ $form->{rowcount} = $count;
+
+ }
+
+ $form->{rowcount}++;
+
+ if ($form->{display_form}) {
+ &{ "$form->{display_form}" };
+ }
+
+}
+
+
+sub display_pricelist {
+
+ &pricelist_header;
+ delete $form->{action};
+ $form->hide_form;
+ &pricelist_footer;
+
+}
+
+
+sub pricelist_header {
+
+ $form->{title} = $form->{name};
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action="$form->{script}">
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+|;
+
+ if ($form->{db} eq 'customer') {
+ @column_index = qw(partnumber description);
+ push @column_index, "partsgroup" if $form->{selectpartsgroup};
+ push @column_index, qw(pricebreak sellprice curr validfrom validto);
+
+ $column_header{pricebreak} = qq|<th class=listheading nowrap>|.$locale->text('Break').qq|</th>|;
+ $column_header{sellprice} = qq|<th class=listheading nowrap>|.$locale->text('Sell Price').qq|</th>|;
+ $column_header{validfrom} = qq|<th class=listheading nowrap>|.$locale->text('From').qq|</th>|;
+ $column_header{validto} = qq|<th class=listheading nowrap>|.$locale->text('To').qq|</th>|;
+ }
+
+ if ($form->{db} eq 'vendor') {
+ @column_index = qw(sku partnumber description);
+ push @column_index, "partsgroup" if $form->{selectpartsgroup};
+ push @column_index, qw(lastcost curr leadtime);
+
+
+ $column_header{sku} = qq|<th class=listheading nowrap>|.$locale->text('SKU').qq|</th>|;
+ $column_header{leadtime} = qq|<th class=listheading nowrap>|.$locale->text('Leadtime').qq|</th>|;
+ $column_header{lastcost} = qq|<th class=listheading nowrap>|.$locale->text('Cost').qq|</th>|;
+ }
+
+ $column_header{partnumber} = qq|<th class=listheading nowrap>|.$locale->text('Number').qq|</th>|;
+ $column_header{description} = qq|<th class=listheading nowrap width=80%>|.$locale->text('Description').qq|</th>|;
+ $column_header{partsgroup} = qq|<th class=listheading nowrap>|.$locale->text('Group').qq|</th>|;
+ $column_header{curr} = qq|<th class=listheading nowrap>|.$locale->text('Curr').qq|</th>|;
+
+ print qq|
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "\n$column_header{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ $sameid = "";
+ foreach $i (1 .. $form->{rowcount}) {
+
+ $selectcurrency = $form->{selectcurrency};
+ $selectcurrency =~ s/option>\Q$form->{"curr_$i"}\E/option selected>$form->{"curr_$i"}/;
+
+ if ($form->{selectpartsgroup}) {
+ if ($i < $form->{rowcount}) {
+ ($partsgroup) = split /--/, $form->{"partsgroup_$i"};
+ $column_data{partsgroup} = qq|<td>$partsgroup</td>
+ <input type=hidden name="partsgroup_$i" value="|.$form->quote($form->{"partsgroup_$i"}).qq|">|;
+ }
+ }
+
+
+ if ($i < $form->{rowcount}) {
+
+ if ($form->{"id_$i"} eq $sameid) {
+ for (qw(partnumber description partsgroup)) { $column_data{$_} = qq|<td>&nbsp;</td>
+ <input type=hidden name="${_}_$i" value="|.$form->quote($form->{"${_}_$i"}).qq|">| }
+ } else {
+
+ $column_data{sku} = qq|<td><input name="sku_$i" value="$form->{"sku_$i"}"></td>|;
+ $column_data{partnumber} = qq|<td><input name="partnumber_$i" value="$form->{"partnumber_$i"}"></td>|;
+
+ $column_data{description} = qq|<td>$form->{"description_$i"}&nbsp;</td>
+ <input type=hidden name="description_$i" value="|.$form->quote($form->{"description_$i"}).qq|">|;
+
+ }
+
+ $column_data{partnumber} .= qq|
+ <input type=hidden name="id_$i" value="$form->{"id_$i"}">|;
+
+ } else {
+
+ if ($form->{db} eq 'customer') {
+ $column_data{partnumber} = qq|<td><input name="partnumber_$i" value="$form->{"partnumber_$i"}"></td>|;
+ } else {
+ $column_data{partnumber} = qq|<td>&nbsp;</td>|;
+ }
+
+ $column_data{partnumber} .= qq|
+ <input type=hidden name="id_$i" value="$form->{"id_$i"}">|;
+
+ $column_data{sku} = qq|<td><input name="sku_$i" value="$form->{"sku_$i"}"></td>|;
+ $column_data{description} = qq|<td><input name="description_$i" value="$form->{"description_$i"}"></td>|;
+
+ if ($form->{selectpartsgroup}) {
+ $selectpartsgroup = "<option>";
+ foreach $line (split /\n/, $form->{selectpartsgroup}) {
+ $selectpartsgroup .= qq|\n<option value="|.$form->quote($line).qq|">| .(split /--/, $line)[0];
+ }
+ $column_data{partsgroup} = qq|<td><select name="partsgroup_$i">$selectpartsgroup</select></td>|;
+ }
+
+ }
+
+
+ if ($form->{db} eq 'customer') {
+
+ $column_data{pricebreak} = qq|<td align=right><input name="pricebreak_$i" size=5 value=|.$form->format_amount(\%myconfig, $form->{"pricebreak_$i"}).qq|></td>|;
+ $column_data{sellprice} = qq|<td align=right><input name="sellprice_$i" size=10 value=|.$form->format_amount(\%myconfig, $form->{"sellprice_$i"}, 2).qq|></td>|;
+
+ $column_data{validfrom} = qq|<td><input name="validfrom_$i" size=11 value=$form->{"validfrom_$i"}></td>|;
+ $column_data{validto} = qq|<td><input name="validto_$i" size=11 value=$form->{"validto_$i"}></td>|;
+ }
+
+ if ($form->{db} eq 'vendor') {
+ $column_data{leadtime} = qq|<td align=right><input name="leadtime_$i" size=5 value=|.$form->format_amount(\%myconfig, $form->{"leadtime_$i"}).qq|></td>|;
+ $column_data{lastcost} = qq|<td align=right><input name="lastcost_$i" size=10 value=|.$form->format_amount(\%myconfig, $form->{"lastcost_$i"}, 2).qq|></td>|;
+ }
+
+
+ $column_data{curr} = qq|<td><select name="curr_$i">$selectcurrency</select></td>|;
+
+
+ print qq|<tr valign=top>|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|</tr>|;
+
+ $sameid = $form->{"id_$i"};
+
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+ # delete variables
+ foreach $i (1 .. $form->{rowcount}) {
+ for (@column_index, "id") { delete $form->{"${_}_$i"} }
+ }
+ for (qw(title titlebar script none)) { delete $form->{$_} }
+
+}
+
+
+sub pricelist_footer {
+
+# type=submit $locale->text('Update')
+# type=submit $locale->text('Save Pricelist')
+
+ %button = ('Update' => { ndx => 1, key => 'U', value => $locale->text('Update') },
+ 'Save Pricelist' => { ndx => 3, key => 'S', value => $locale->text('Save Pricelist') },
+ );
+
+ for (sort { $button{$a}->{ndx} <=> $button{$b}->{ndx} } keys %button) { $form->print_button(\%button, $_) }
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub update {
+
+ $i = $form->{rowcount};
+ $additem = 0;
+
+ if ($form->{db} eq 'customer') {
+ $additem = 1 if ! (($form->{"partnumber_$i"} eq "") && ($form->{"description_$i"} eq "") && ($form->{"partsgroup_$i"} eq ""));
+ }
+ if ($form->{db} eq 'vendor') {
+ if (! (($form->{"sku_$i"} eq "") && ($form->{"description_$i"} eq "") && ($form->{"partsgroup_$i"} eq ""))) {
+ $additem = 1;
+ $form->{"partnumber_$i"} = $form->{"sku_$i"};
+ }
+ }
+
+ if ($additem) {
+
+ CT->retrieve_item(\%myconfig, \%$form);
+
+ $rows = scalar @{ $form->{item_list} };
+
+ if ($rows > 0) {
+
+ if ($rows > 1) {
+
+ &select_item;
+ exit;
+
+ } else {
+
+ $sellprice = $form->{"sellprice_$i"};
+ $pricebreak = $form->{"pricebreak_$i"};
+ $lastcost = $form->{"lastcost_$i"};
+
+ for (qw(partnumber description)) { $form->{item_list}[0]{$_} = $form->quote($form->{item_list}[0]{$_}) }
+ for (keys %{ $form->{item_list}[0] }) { $form->{"${_}_$i"} = $form->{item_list}[0]{$_} }
+
+ if ($form->{db} eq 'customer') {
+
+ if ($sellprice) {
+ $form->{"sellprice_$i"} = $sellprice;
+ }
+
+ $form->{"sellprice_$i"} = $form->format_amount(\%myconfig, $form->{"sellprice_$i"}, 2);
+
+ $form->{"pricebreak_$i"} = $pricebreak;
+
+ } else {
+
+ foreach $j (1 .. $form->{rowcount} - 1) {
+ if ($form->{"sku_$j"} eq $form->{"partnumber_$i"}) {
+ $form->error($locale->text('Item already on pricelist!'));
+ }
+ }
+
+ if ($lastcost) {
+ $form->{"lastcost_$i"} = $lastcost;
+ }
+
+ $form->{"lastcost_$i"} = $form->format_amount(\%myconfig, $form->{"lastcost_$i"}, 2);
+
+ $form->{"sku_$i"} = $form->{"partnumber_$i"};
+# delete $form->{"partnumber_$i"};
+
+ }
+
+ $form->{rowcount}++;
+
+ }
+
+ } else {
+
+ $form->error($locale->text('Item not on file!'));
+
+ }
+ }
+
+ &{ "$form->{db}_pricelist" };
+
+}
+
+
+
+sub select_item {
+
+ @column_index = qw(ndx partnumber description partsgroup unit sellprice lastcost);
+
+ $column_data{ndx} = qq|<th>&nbsp;</th>|;
+ $column_data{partnumber} = qq|<th class=listheading>|.$locale->text('Number').qq|</th>|;
+ $column_data{description} = qq|<th class=listheading>|.$locale->text('Description').qq|</th>|;
+ $column_data{partsgroup} = qq|<th class=listheading>|.$locale->text('Group').qq|</th>|;
+ $column_data{unit} = qq|<th class=listheading>|.$locale->text('Unit').qq|</th>|;
+ $column_data{sellprice} = qq|<th class=listheading>|.$locale->text('Sell Price').qq|</th>|;
+ $column_data{lastcost} = qq|<th class=listheading>|.$locale->text('Cost').qq|</th>|;
+
+ $form->header;
+
+ $title = $locale->text('Select items');
+
+ print qq|
+<body>
+
+<form method=post action="$form->{script}">
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$title</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$option</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ my $i = 0;
+ foreach $ref (@{ $form->{item_list} }) {
+ $i++;
+
+ for (qw(partnumber description unit)) { $ref->{$_} = $form->quote($ref->{$_}) }
+
+ $column_data{ndx} = qq|<td><input name="ndx_$i" class=checkbox type=checkbox value=$i></td>|;
+
+ for (qw(partnumber description partsgroup unit)) { $column_data{$_} = qq|<td>$ref->{$_}&nbsp;</td>| }
+
+ $column_data{sellprice} = qq|<td align=right>|.$form->format_amount(\%myconfig, $ref->{sellprice}, 2, "&nbsp;").qq|</td>|;
+ $column_data{lastcost} = qq|<td align=right>|.$form->format_amount(\%myconfig, $ref->{lastcost}, 2, "&nbsp;").qq|</td>|;
+
+ $j++; $j %= 2;
+
+ print qq|
+ <tr class=listrow$j>|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ for (qw(partnumber description partsgroup partsgroup_id sellprice lastcost unit id)) {
+ print qq|<input type=hidden name="new_${_}_$i" value="$ref->{$_}">\n|;
+ }
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<input name=lastndx type=hidden value=$i>
+
+|;
+
+ # delete action variable
+ for (qw(nextsub item_list)) { delete $form->{$_} }
+
+ $form->{action} = "item_selected";
+
+ $form->hide_form;
+
+ print qq|
+<input type=hidden name=nextsub value=item_selected>
+
+<br>
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">
+</form>
+
+</body>
+</html>
+|;
+}
+
+
+
+sub item_selected {
+
+ # add rows
+ $i = $form->{rowcount};
+
+ %id = ();
+ for $i (1 .. $form->{rowcount} - 1) {
+ $id{$form->{"id_$i"}} = 1;
+ }
+
+ for $j (1 .. $form->{lastndx}) {
+
+ if ($form->{"ndx_$j"}) {
+
+ if ($id{$form->{"new_id_$j"}}) {
+ next if $form->{db} eq 'vendor';
+ }
+
+ for (qw(id partnumber description unit sellprice lastcost)) {
+ $form->{"${_}_$i"} = $form->{"new_${_}_$j"};
+ }
+
+ $form->{"partsgroup_$i"} = qq|$form->{"new_partsgroup_$j"}--$form->{"new_partsgroup_id_$j"}|;
+ $form->{"sku_$i"} = $form->{"new_partnumber_$j"};
+
+ $i++;
+
+ }
+ }
+
+ $form->{rowcount} = $i;
+
+ # delete all the new_ variables
+ for $i (1 .. $form->{lastndx}) {
+ for (qw(id partnumber description unit sellprice lastcost partsgroup partsgroup_id)) { delete $form->{"new_${_}_$i"} }
+ delete $form->{"ndx_$i"};
+ }
+
+ for (qw(ndx lastndx nextsub)) { delete $form->{$_} }
+
+ &{ "$form->{db}_pricelist" };
+
+}
+
+
+
+
+sub save_pricelist {
+
+ &{ "CT::save_$form->{db}" }("", \%myconfig, \%$form);
+
+ $callback = $form->{callback};
+ $form->{callback} = "$form->{script}?action=edit";
+ for (qw(db id login path sessionid)) { $form->{callback} .= "&$_=$form->{$_}" }
+ $form->{callback} .= "&callback=".$form->escape($callback,1);
+
+ if (CT->save_pricelist(\%myconfig, \%$form)) {
+ $form->redirect;
+ } else {
+ $form->error($locale->text('Could not save pricelist!'));
+ }
+
+}
+
+
+
+sub add_transaction {
+
+ $form->isblank("name", $locale->text("Name missing!"));
+
+ &{ "CT::save_$form->{db}" }("", \%myconfig, \%$form);
+
+ $form->{callback} = $form->escape($form->{callback},1);
+ $name = $form->escape($form->{name},1);
+
+ $form->{callback} = "$form->{script}?login=$form->{login}&path=$form->{path}&sessionid=$form->{sessionid}&action=add&vc=$form->{db}&$form->{db}_id=$form->{id}&$form->{db}=$name&type=$form->{type}&callback=$form->{callback}";
+
+ $form->redirect;
+
+}
+
+sub ap_transaction {
+
+ $form->{script} = "ap.pl";
+ $form->{type} = "ap_transaction";
+ &add_transaction;
+
+}
+
+
+sub ar_transaction {
+
+ $form->{script} = "ar.pl";
+ $form->{type} = "ar_transaction";
+ &add_transaction;
+
+}
+
+
+sub sales_invoice {
+
+ $form->{script} = "is.pl";
+ $form->{type} = "invoice";
+ &add_transaction;
+
+}
+
+
+sub pos {
+
+ $form->{script} = "ps.pl";
+ $form->{type} = "pos_invoice";
+ &add_transaction;
+
+}
+
+
+sub vendor_invoice {
+
+ $form->{script} = "ir.pl";
+ $form->{type} = "invoice";
+ &add_transaction;
+
+}
+
+
+sub rfq {
+
+ $form->{script} = "oe.pl";
+ $form->{type} = "request_quotation";
+ &add_transaction;
+
+}
+
+
+sub quotation {
+
+ $form->{script} = "oe.pl";
+ $form->{type} = "sales_quotation";
+ &add_transaction;
+
+}
+
+
+sub sales_order {
+
+ $form->{script} = "oe.pl";
+ $form->{type} = "sales_order";
+ &add_transaction;
+
+}
+
+
+sub purchase_order {
+
+ $form->{script} = "oe.pl";
+ $form->{type} = "purchase_order";
+ &add_transaction;
+
+}
+
+
+sub save_as_new {
+
+ delete $form->{id};
+ &save;
+
+}
+
+
+sub save {
+
+# $locale->text('Customer saved!')
+# $locale->text('Vendor saved!')
+
+ $msg = ucfirst $form->{db};
+ $msg .= " saved!";
+
+ $form->isblank("name", $locale->text("Name missing!"));
+ &{ "CT::save_$form->{db}" }("", \%myconfig, \%$form);
+
+ $form->redirect($locale->text($msg));
+
+}
+
+
+sub delete {
+
+# $locale->text('Customer deleted!')
+# $locale->text('Cannot delete customer!')
+# $locale->text('Vendor deleted!')
+# $locale->text('Cannot delete vendor!')
+
+ CT->delete(\%myconfig, \%$form);
+
+ $msg = ucfirst $form->{db};
+ $msg .= " deleted!";
+ $form->redirect($locale->text($msg));
+
+}
+
+
+sub continue { &{ $form->{nextsub} } };
+
+sub add_customer { &add };
+sub add_vendor { &add };
+
diff --git a/bin/mozilla/gl.pl b/bin/mozilla/gl.pl
new file mode 100755
index 00000000..0acfbb65
--- /dev/null
+++ b/bin/mozilla/gl.pl
@@ -0,0 +1,1116 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has NOT undergone whitespace cleanup.
+#
+#======================================================================
+#
+# Genereal Ledger
+#
+#======================================================================
+
+
+use LedgerSMB::GL;
+use LedgerSMB::PE;
+
+require "$form->{path}/arap.pl";
+
+1;
+# end of main
+
+
+# this is for our long dates
+# $locale->text('January')
+# $locale->text('February')
+# $locale->text('March')
+# $locale->text('April')
+# $locale->text('May ')
+# $locale->text('June')
+# $locale->text('July')
+# $locale->text('August')
+# $locale->text('September')
+# $locale->text('October')
+# $locale->text('November')
+# $locale->text('December')
+
+# this is for our short month
+# $locale->text('Jan')
+# $locale->text('Feb')
+# $locale->text('Mar')
+# $locale->text('Apr')
+# $locale->text('May')
+# $locale->text('Jun')
+# $locale->text('Jul')
+# $locale->text('Aug')
+# $locale->text('Sep')
+# $locale->text('Oct')
+# $locale->text('Nov')
+# $locale->text('Dec')
+
+
+sub add {
+
+ $form->{title} = "Add";
+
+ $form->{callback} = "$form->{script}?action=add&transfer=$form->{transfer}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}" unless $form->{callback};
+
+ &create_links;
+
+ $form->{rowcount} = ($form->{transfer}) ? 3 : 9;
+ $form->{oldtransdate} = $form->{transdate};
+ $form->{focus} = "reference";
+
+ # departments
+ if (@{ $form->{all_department} }) {
+ $form->{selectdepartment} = "<option>\n";
+
+ for (@{ $form->{all_department} }) { $form->{selectdepartment} .= qq|<option value="$_->{description}--$_->{id}">$_->{description}\n| }
+ }
+
+ &display_form(1);
+
+}
+
+
+sub edit {
+
+ &create_links;
+
+ $form->{locked} = ($form->{revtrans}) ? '1' : ($form->datetonum(\%myconfig, $form->{transdate}) <= $form->datetonum(\%myconfig, $form->{closedto}));
+
+ # readonly
+ if (! $form->{readonly}) {
+ $form->{readonly} = 1 if $myconfig{acs} =~ /General Ledger--Add Transaction/;
+ }
+
+ $form->{title} = "Edit";
+
+ $i = 1;
+ foreach $ref (@{ $form->{GL} }) {
+ $form->{"accno_$i"} = "$ref->{accno}--$ref->{description}";
+
+ $form->{"projectnumber_$i"} = "$ref->{projectnumber}--$ref->{project_id}";
+ for (qw(fx_transaction source memo)) { $form->{"${_}_$i"} = $ref->{$_} }
+
+ if ($ref->{amount} < 0) {
+ $form->{totaldebit} -= $ref->{amount};
+ $form->{"debit_$i"} = $ref->{amount} * -1;
+ } else {
+ $form->{totalcredit} += $ref->{amount};
+ $form->{"credit_$i"} = $ref->{amount};
+ }
+
+ $i++;
+ }
+
+ $form->{rowcount} = $i;
+ $form->{focus} = "debit_$i";
+
+ &form_header;
+ &display_rows;
+ &form_footer;
+
+}
+
+
+
+sub create_links {
+
+ GL->transaction(\%myconfig, \%$form);
+
+ for (@{ $form->{all_accno} }) { $form->{selectaccno} .= "<option>$_->{accno}--$_->{description}\n" }
+
+ # projects
+ if (@{ $form->{all_project} }) {
+ $form->{selectprojectnumber} = "<option>\n";
+ for (@{ $form->{all_project} }) { $form->{selectprojectnumber} .= qq|<option value="$_->{projectnumber}--$_->{id}">$_->{projectnumber}\n| }
+ }
+
+ # departments
+ if (@{ $form->{all_department} }) {
+ $form->{department} = "$form->{department}--$form->{department_id}";
+ $form->{selectdepartment} = "<option>\n";
+ for (@{ $form->{all_department} }) { $form->{selectdepartment} .= qq|<option value="$_->{description}--$_->{id}">$_->{description}\n| }
+ }
+
+}
+
+
+sub search {
+
+ $form->{title} = $locale->text('General Ledger')." ".$locale->text('Reports');
+
+ $colspan = 5;
+ $form->all_departments(\%myconfig);
+ # departments
+ if (@{ $form->{all_department} }) {
+ $form->{selectdepartment} = "<option>\n";
+ for (@{ $form->{all_department} }) { $form->{selectdepartment} .= qq|<option value="$_->{description}--$_->{id}">$_->{description}\n| }
+
+ $l_department = qq|<input name="l_department" class=checkbox type=checkbox value=Y> |.$locale->text('Department');
+
+ $department = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Department').qq|</th>
+ <td colspan=$colspan><select name=department>$form->{selectdepartment}</select></td>
+ </tr>
+|;
+ }
+
+ if (@{ $form->{all_years} }) {
+ # accounting years
+ $form->{selectaccountingyear} = "<option>\n";
+ for (@{ $form->{all_years} }) { $form->{selectaccountingyear} .= qq|<option>$_\n| }
+ $form->{selectaccountingmonth} = "<option>\n";
+ for (sort keys %{ $form->{all_month} }) { $form->{selectaccountingmonth} .= qq|<option value=$_>|.$locale->text($form->{all_month}{$_}).qq|\n| }
+
+ $selectfrom = qq|
+ <tr>
+ <th align=right>|.$locale->text('Period').qq|</th>
+ <td colspan=$colspan>
+ <select name=month>$form->{selectaccountingmonth}</select>
+ <select name=year>$form->{selectaccountingyear}</select>
+ <input name=interval class=radio type=radio value=0 checked>&nbsp;|.$locale->text('Current').qq|
+ <input name=interval class=radio type=radio value=1>&nbsp;|.$locale->text('Month').qq|
+ <input name=interval class=radio type=radio value=3>&nbsp;|.$locale->text('Quarter').qq|
+ <input name=interval class=radio type=radio value=12>&nbsp;|.$locale->text('Year').qq|
+ </td>
+ </tr>
+|;
+ }
+
+ @a = ();
+ push @a, qq|<input name="l_id" class=checkbox type=checkbox value=Y> |.$locale->text('ID');
+ push @a, qq|<input name="l_transdate" class=checkbox type=checkbox value=Y checked> |.$locale->text('Date');
+ push @a, qq|<input name="l_reference" class=checkbox type=checkbox value=Y checked> |.$locale->text('Reference');
+ push @a, qq|<input name="l_description" class=checkbox type=checkbox value=Y checked> |.$locale->text('Description');
+ push @a, qq|<input name="l_notes" class=checkbox type=checkbox value=Y> |.$locale->text('Notes');
+ push @a, $l_department if $l_department;
+ push @a, qq|<input name="l_debit" class=checkbox type=checkbox value=Y checked> |.$locale->text('Debit');
+ push @a, qq|<input name="l_credit" class=checkbox type=checkbox value=Y checked> |.$locale->text('Credit');
+ push @a, qq|<input name="l_source" class=checkbox type=checkbox value=Y checked> |.$locale->text('Source');
+ push @a, qq|<input name="l_memo" class=checkbox type=checkbox value=Y> |.$locale->text('Memo');
+ push @a, qq|<input name="l_accno" class=checkbox type=checkbox value=Y checked> |.$locale->text('Account');
+ push @a, qq|<input name="l_gifi_accno" class=checkbox type=checkbox value=Y> |.$locale->text('GIFI');
+
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=sort value=transdate>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right>|.$locale->text('Reference').qq|</th>
+ <td><input name=reference size=20></td>
+
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Source').qq|</th>
+ <td><input name=source size=20></td>
+ <th align=right>|.$locale->text('Memo').qq|</th>
+ <td><input name=memo size=20></td>
+ </tr>
+ $department
+ <tr>
+ <th align=right>|.$locale->text('Description').qq|</th>
+ <td colspan=$colspan><input name=description size=60></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Notes').qq|</th>
+ <td colspan=$colspan><input name=notes size=60></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('From').qq|</th>
+ <td><input name=datefrom size=11 title="$myconfig{dateformat}"></td>
+ <th align=right>|.$locale->text('To').qq|</th>
+ <td><input name=dateto size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+ $selectfrom
+ <tr>
+ <th align=right>|.$locale->text('Amount').qq| >=</th>
+ <td><input name=amountfrom size=11></td>
+ <th align=right>|.$locale->text('Amount').qq| <=</th>
+ <td><input name=amountto size=11></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Include in Report').qq|</th>
+ <td colspan=$colspan>
+ <table>
+ <tr>
+ <td>
+ <input name="category" class=radio type=radio value=X checked>&nbsp;|.$locale->text('All').qq|
+ <input name="category" class=radio type=radio value=A>&nbsp;|.$locale->text('Asset').qq|
+ <input name="category" class=radio type=radio value=L>&nbsp;|.$locale->text('Liability').qq|
+ <input name="category" class=radio type=radio value=Q>&nbsp;|.$locale->text('Equity').qq|
+ <input name="category" class=radio type=radio value=I>&nbsp;|.$locale->text('Income').qq|
+ <input name="category" class=radio type=radio value=E>&nbsp;|.$locale->text('Expense').qq|
+ </td>
+ </tr>
+ <tr>
+ <table>
+|;
+
+ while (@a) {
+ print qq|<tr>\n|;
+ for (1 .. 5) {
+ print qq|<td nowrap>|. shift @a;
+ print qq|</td>\n|;
+ }
+ print qq|</tr>\n|;
+ }
+
+ print qq|
+ <tr>
+ <td nowrap><input name="l_subtotal" class=checkbox type=checkbox value=Y> |.$locale->text('Subtotal').qq|</td>
+ </tr>
+ </table>
+ </tr>
+ </table>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<input type=hidden name=nextsub value=generate_report>
+|;
+
+ $form->hide_form(qw(path login sessionid));
+
+ print qq|
+<br>
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">
+</form>
+|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+</body>
+</html>
+|;
+}
+
+
+sub generate_report {
+
+ $form->{sort} = "transdate" unless $form->{sort};
+
+ GL->all_transactions(\%myconfig, \%$form);
+
+ $href = "$form->{script}?action=generate_report&direction=$form->{direction}&oldsort=$form->{oldsort}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}";
+
+ $form->sort_order();
+
+ $callback = "$form->{script}?action=generate_report&direction=$form->{direction}&oldsort=$form->{oldsort}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}";
+
+ %acctype = ( 'A' => $locale->text('Asset'),
+ 'L' => $locale->text('Liability'),
+ 'Q' => $locale->text('Equity'),
+ 'I' => $locale->text('Income'),
+ 'E' => $locale->text('Expense'),
+ );
+
+ $form->{title} = $locale->text('General Ledger');
+
+ $ml = ($form->{category} =~ /(A|E)/) ? -1 : 1;
+
+ unless ($form->{category} eq 'X') {
+ $form->{title} .= " : ".$locale->text($acctype{$form->{category}});
+ }
+ if ($form->{accno}) {
+ $href .= "&accno=".$form->escape($form->{accno});
+ $callback .= "&accno=".$form->escape($form->{accno},1);
+ $option = $locale->text('Account')." : $form->{accno} $form->{account_description}";
+ }
+ if ($form->{gifi_accno}) {
+ $href .= "&gifi_accno=".$form->escape($form->{gifi_accno});
+ $callback .= "&gifi_accno=".$form->escape($form->{gifi_accno},1);
+ $option .= "\n<br>" if $option;
+ $option .= $locale->text('GIFI')." : $form->{gifi_accno} $form->{gifi_account_description}";
+ }
+ if ($form->{source}) {
+ $href .= "&source=".$form->escape($form->{source});
+ $callback .= "&source=".$form->escape($form->{source},1);
+ $option .= "\n<br>" if $option;
+ $option .= $locale->text('Source')." : $form->{source}";
+ }
+ if ($form->{memo}) {
+ $href .= "&memo=".$form->escape($form->{memo});
+ $callback .= "&memo=".$form->escape($form->{memo},1);
+ $option .= "\n<br>" if $option;
+ $option .= $locale->text('Memo')." : $form->{memo}";
+ }
+ if ($form->{reference}) {
+ $href .= "&reference=".$form->escape($form->{reference});
+ $callback .= "&reference=".$form->escape($form->{reference},1);
+ $option .= "\n<br>" if $option;
+ $option .= $locale->text('Reference')." : $form->{reference}";
+ }
+ if ($form->{department}) {
+ $href .= "&department=".$form->escape($form->{department});
+ $callback .= "&department=".$form->escape($form->{department},1);
+ ($department) = split /--/, $form->{department};
+ $option .= "\n<br>" if $option;
+ $option .= $locale->text('Department')." : $department";
+ }
+
+ if ($form->{description}) {
+ $href .= "&description=".$form->escape($form->{description});
+ $callback .= "&description=".$form->escape($form->{description},1);
+ $option .= "\n<br>" if $option;
+ $option .= $locale->text('Description')." : $form->{description}";
+ }
+ if ($form->{notes}) {
+ $href .= "&notes=".$form->escape($form->{notes});
+ $callback .= "&notes=".$form->escape($form->{notes},1);
+ $option .= "\n<br>" if $option;
+ $option .= $locale->text('Notes')." : $form->{notes}";
+ }
+
+ if ($form->{datefrom}) {
+ $href .= "&datefrom=$form->{datefrom}";
+ $callback .= "&datefrom=$form->{datefrom}";
+ $option .= "\n<br>" if $option;
+ $option .= $locale->text('From')." ".$locale->date(\%myconfig, $form->{datefrom}, 1);
+ }
+ if ($form->{dateto}) {
+ $href .= "&dateto=$form->{dateto}";
+ $callback .= "&dateto=$form->{dateto}";
+ if ($form->{datefrom}) {
+ $option .= " ";
+ } else {
+ $option .= "\n<br>" if $option;
+ }
+ $option .= $locale->text('To')." ".$locale->date(\%myconfig, $form->{dateto}, 1);
+ }
+
+ if ($form->{amountfrom}) {
+ $href .= "&amountfrom=$form->{amountfrom}";
+ $callback .= "&amountfrom=$form->{amountfrom}";
+ $option .= "\n<br>" if $option;
+ $option .= $locale->text('Amount')." >= ".$form->format_amount(\%myconfig, $form->{amountfrom}, 2);
+ }
+ if ($form->{amountto}) {
+ $href .= "&amountto=$form->{amountto}";
+ $callback .= "&amountto=$form->{amountto}";
+ if ($form->{amountfrom}) {
+ $option .= " <= ";
+ } else {
+ $option .= "\n<br>" if $option;
+ $option .= $locale->text('Amount')." <= ";
+ }
+ $option .= $form->format_amount(\%myconfig, $form->{amountto}, 2);
+ }
+
+
+ @columns = $form->sort_columns(qw(transdate id reference description notes source memo debit credit accno gifi_accno department));
+ pop @columns if $form->{department};
+
+ if ($form->{link} =~ /_paid/) {
+ @columns = $form->sort_columns(qw(transdate id reference description notes source memo cleared debit credit accno gifi_accno));
+ $form->{l_cleared} = "Y";
+ }
+
+ if ($form->{accno} || $form->{gifi_accno}) {
+ @columns = grep !/(accno|gifi_accno)/, @columns;
+ push @columns, "balance";
+ $form->{l_balance} = "Y";
+ }
+
+
+ foreach $item (@columns) {
+ if ($form->{"l_$item"} eq "Y") {
+ push @column_index, $item;
+
+ # add column to href and callback
+ $callback .= "&l_$item=Y";
+ $href .= "&l_$item=Y";
+ }
+ }
+
+ if ($form->{l_subtotal} eq 'Y') {
+ $callback .= "&l_subtotal=Y";
+ $href .= "&l_subtotal=Y";
+ }
+
+ $callback .= "&category=$form->{category}";
+ $href .= "&category=$form->{category}";
+
+ $column_header{id} = "<th><a class=listheading href=$href&sort=id>".$locale->text('ID')."</a></th>";
+ $column_header{transdate} = "<th><a class=listheading href=$href&sort=transdate>".$locale->text('Date')."</a></th>";
+ $column_header{reference} = "<th><a class=listheading href=$href&sort=reference>".$locale->text('Reference')."</a></th>";
+ $column_header{source} = "<th><a class=listheading href=$href&sort=source>".$locale->text('Source')."</a></th>";
+ $column_header{memo} = "<th><a class=listheading href=$href&sort=memo>".$locale->text('Memo')."</a></th>";
+ $column_header{description} = "<th><a class=listheading href=$href&sort=description>".$locale->text('Description')."</a></th>";
+ $column_header{department} = "<th><a class=listheading href=$href&sort=department>".$locale->text('Department')."</a></th>";
+ $column_header{notes} = "<th class=listheading>".$locale->text('Notes')."</th>";
+ $column_header{debit} = "<th class=listheading>".$locale->text('Debit')."</th>";
+ $column_header{credit} = "<th class=listheading>".$locale->text('Credit')."</th>";
+ $column_header{accno} = "<th><a class=listheading href=$href&sort=accno>".$locale->text('Account')."</a></th>";
+ $column_header{gifi_accno} = "<th><a class=listheading href=$href&sort=gifi_accno>".$locale->text('GIFI')."</a></th>";
+ $column_header{balance} = "<th>".$locale->text('Balance')."</th>";
+ $column_header{cleared} = qq|<th>|.$locale->text('R').qq|</th>|;
+
+ $form->header;
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$option</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "$column_header{$_}\n" }
+
+ print "
+ </tr>
+";
+
+ # add sort to callback
+ $form->{callback} = "$callback&sort=$form->{sort}";
+ $callback = $form->escape($form->{callback});
+
+ $cml = 1;
+ # initial item for subtotals
+ if (@{ $form->{GL} }) {
+ $sameitem = $form->{GL}->[0]->{$form->{sort}};
+ $cml = -1 if $form->{contra};
+ }
+
+ if (($form->{accno} || $form->{gifi_accno}) && $form->{balance}) {
+
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+ $column_data{balance} = "<td align=right>".$form->format_amount(\%myconfig, $form->{balance} * $ml * $cml, 2, 0)."</td>";
+
+ $i++; $i %= 2;
+ print qq|
+ <tr class=listrow$i>
+|;
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+ }
+
+ # reverse href
+ $direction = ($form->{direction} eq 'ASC') ? "ASC" : "DESC";
+ $form->sort_order();
+ $href =~ s/direction=$form->{direction}/direction=$direction/;
+
+ $i = 0;
+ foreach $ref (@{ $form->{GL} }) {
+
+ # if item ne sort print subtotal
+ if ($form->{l_subtotal} eq 'Y') {
+ if ($sameitem ne $ref->{$form->{sort}}) {
+ &gl_subtotal;
+ }
+ }
+
+ $form->{balance} += $ref->{amount};
+
+ $subtotaldebit += $ref->{debit};
+ $subtotalcredit += $ref->{credit};
+
+ $totaldebit += $ref->{debit};
+ $totalcredit += $ref->{credit};
+
+ $ref->{debit} = $form->format_amount(\%myconfig, $ref->{debit}, 2, "&nbsp;");
+ $ref->{credit} = $form->format_amount(\%myconfig, $ref->{credit}, 2, "&nbsp;");
+
+ for (qw(id transdate)) { $column_data{$_} = "<td>$ref->{$_}</td>" }
+
+ $column_data{reference} = "<td><a href=$ref->{module}.pl?action=edit&id=$ref->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{reference}</td>";
+
+ $ref->{notes} =~ s/\r?\n/<br>/g;
+ for (qw(description source memo notes department)) { $column_data{$_} = "<td>$ref->{$_}&nbsp;</td>" }
+
+ $column_data{debit} = "<td align=right>$ref->{debit}</td>";
+ $column_data{credit} = "<td align=right>$ref->{credit}</td>";
+
+ $column_data{accno} = "<td><a href=$href&accno=$ref->{accno}&callback=$callback>$ref->{accno}</a></td>";
+ $column_data{gifi_accno} = "<td><a href=$href&gifi_accno=$ref->{gifi_accno}&callback=$callback>$ref->{gifi_accno}</a>&nbsp;</td>";
+ $column_data{balance} = "<td align=right>".$form->format_amount(\%myconfig, $form->{balance} * $ml * $cml, 2, 0)."</td>";
+ $column_data{cleared} = ($ref->{cleared}) ? "<td>*</td>" : "<td>&nbsp;</td>";
+
+ if ($ref->{id} != $sameid) {
+ $i++; $i %= 2;
+ }
+ print "
+ <tr class=listrow$i>";
+ for (@column_index) { print "$column_data{$_}\n" }
+ print "</tr>";
+
+ $sameid = $ref->{id};
+ }
+
+
+ &gl_subtotal if ($form->{l_subtotal} eq 'Y');
+
+
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $column_data{debit} = "<th align=right class=listtotal>".$form->format_amount(\%myconfig, $totaldebit, 2, "&nbsp;")."</th>";
+ $column_data{credit} = "<th align=right class=listtotal>".$form->format_amount(\%myconfig, $totalcredit, 2, "&nbsp;")."</th>";
+ $column_data{balance} = "<th align=right class=listtotal>".$form->format_amount(\%myconfig, $form->{balance} * $ml * $cml, 2, 0)."</th>";
+
+ print qq|
+ <tr class=listtotal>
+|;
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ $i = 1;
+ if ($myconfig{acs} !~ /General Ledger--General Ledger/) {
+ $button{'General Ledger--Add Transaction'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('GL Transaction').qq|"> |;
+ $button{'General Ledger--Add Transaction'}{order} = $i++;
+ }
+ if ($myconfig{acs} !~ /AR--AR/) {
+ $button{'AR--Add Transaction'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('AR Transaction').qq|"> |;
+ $button{'AR--Add Transaction'}{order} = $i++;
+ $button{'AR--Sales Invoice'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Sales Invoice ').qq|"> |;
+ $button{'AR--Sales Invoice'}{order} = $i++;
+ }
+ if ($myconfig{acs} !~ /AP--AP/) {
+ $button{'AP--Add Transaction'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('AP Transaction').qq|"> |;
+ $button{'AP--Add Transaction'}{order} = $i++;
+ $button{'AP--Vendor Invoice'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Vendor Invoice ').qq|"> |;
+ $button{'AP--Vendor Invoice'}{order} = $i++;
+ }
+
+ foreach $item (split /;/, $myconfig{acs}) {
+ delete $button{$item};
+ }
+
+ print qq|
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+
+<form method=post action=$form->{script}>
+|;
+
+ $form->hide_form(qw(callback path login sessionid));
+
+ foreach $item (sort { $a->{order} <=> $b->{order} } %button) {
+ print $item->{code};
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub gl_subtotal {
+
+ $subtotaldebit = $form->format_amount(\%myconfig, $subtotaldebit, 2, "&nbsp;");
+ $subtotalcredit = $form->format_amount(\%myconfig, $subtotalcredit, 2, "&nbsp;");
+
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $column_data{debit} = "<th align=right class=listsubtotal>$subtotaldebit</td>";
+ $column_data{credit} = "<th align=right class=listsubtotal>$subtotalcredit</td>";
+
+
+ print "<tr class=listsubtotal>";
+ for (@column_index) { print "$column_data{$_}\n" }
+ print "</tr>";
+
+ $subtotaldebit = 0;
+ $subtotalcredit = 0;
+
+ $sameitem = $ref->{$form->{sort}};
+
+}
+
+
+sub update {
+
+ if ($form->{transdate} ne $form->{oldtransdate}) {
+ if ($form->{selectprojectnumber}) {
+ $form->all_projects(\%myconfig, undef, $form->{transdate});
+ if (@{ $form->{all_project} }) {
+ $form->{selectprojectnumber} = "<option>\n";
+ for (@{ $form->{all_project} }) { $form->{selectprojectnumber} .= qq|<option value="$_->{projectnumber}--$_->{id}">$_->{projectnumber}\n| }
+ $form->{selectprojectnumber} = $form->escape($form->{selectprojectnumber},1);
+ }
+ }
+ $form->{oldtransdate} = $form->{transdate};
+ }
+
+ @a = ();
+ $count = 0;
+ @flds = qw(accno debit credit projectnumber fx_transaction source memo);
+
+ for $i (1 .. $form->{rowcount}) {
+ unless (($form->{"debit_$i"} eq "") && ($form->{"credit_$i"} eq "")) {
+ for (qw(debit credit)) { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) }
+
+ push @a, {};
+ $j = $#a;
+
+ for (@flds) { $a[$j]->{$_} = $form->{"${_}_$i"} }
+ $count++;
+ }
+ }
+
+
+ for $i (1 .. $count) {
+ $j = $i - 1;
+ for (@flds) { $form->{"${_}_$i"} = $a[$j]->{$_} }
+ }
+
+ for $i ($count + 1 .. $form->{rowcount}) {
+ for (@flds) { delete $form->{"${_}_$i"} }
+ }
+
+ $form->{rowcount} = $count + 1;
+
+ &display_form;
+
+}
+
+
+sub display_form {
+ my ($init) = @_;
+
+ &form_header;
+ &display_rows($init);
+ &form_footer;
+
+}
+
+
+sub display_rows {
+ my ($init) = @_;
+
+ $form->{selectprojectnumber} = $form->unescape($form->{selectprojectnumber}) if $form->{selectprojectnumber};
+
+ $form->{totaldebit} = 0;
+ $form->{totalcredit} = 0;
+
+ for $i (1 .. $form->{rowcount}) {
+
+ $source = qq|
+ <td><input name="source_$i" size=10 value="$form->{"source_$i"}"></td>|;
+ $memo = qq|
+ <td><input name="memo_$i" value="$form->{"memo_$i"}"></td>|;
+
+ if ($init) {
+ $accno = qq|
+ <td><select name="accno_$i">$form->{selectaccno}</select></td>|;
+
+ if ($form->{selectprojectnumber}) {
+ $project = qq|
+ <td><select name="projectnumber_$i">$form->{selectprojectnumber}</select></td>|;
+ }
+
+ if ($form->{transfer}) {
+ $fx_transaction = qq|
+ <td><input name="fx_transaction_$i" class=checkbox type=checkbox value=1></td>
+ |;
+ }
+
+ } else {
+
+ $form->{totaldebit} += $form->{"debit_$i"};
+ $form->{totalcredit} += $form->{"credit_$i"};
+
+ for (qw(debit credit)) { $form->{"${_}_$i"} = ($form->{"${_}_$i"}) ? $form->format_amount(\%myconfig, $form->{"${_}_$i"}, 2) : "" }
+
+ if ($i < $form->{rowcount}) {
+
+ $accno = qq|<td>$form->{"accno_$i"}</td>|;
+
+ if ($form->{selectprojectnumber}) {
+ $form->{"projectnumber_$i"} = "" if $form->{selectprojectnumber} !~ /$form->{"projectnumber_$i"}/;
+
+ $project = $form->{"projectnumber_$i"};
+ $project =~ s/--.*//;
+ $project = qq|<td>$project</td>|;
+ }
+
+ if ($form->{transfer}) {
+ $checked = ($form->{"fx_transaction_$i"}) ? "1" : "";
+ $x = ($checked) ? "x" : "";
+ $fx_transaction = qq|
+ <td><input type=hidden name="fx_transaction_$i" value="$checked">$x</td>
+ |;
+ }
+
+ $form->hide_form("accno_$i", "projectnumber_$i");
+
+ } else {
+
+ $accno = qq|
+ <td><select name="accno_$i">$form->{selectaccno}</select></td>|;
+
+ if ($form->{selectprojectnumber}) {
+ $project = qq|
+ <td><select name="projectnumber_$i">$form->{selectprojectnumber}</select></td>|;
+ }
+
+ if ($form->{transfer}) {
+ $fx_transaction = qq|
+ <td><input name="fx_transaction_$i" class=checkbox type=checkbox value=1></td>
+ |;
+ }
+ }
+ }
+
+ print qq|<tr valign=top>
+ $accno
+ $fx_transaction
+ <td><input name="debit_$i" size=12 value="$form->{"debit_$i"}" accesskey=$i></td>
+ <td><input name="credit_$i" size=12 value=$form->{"credit_$i"}></td>
+ $source
+ $memo
+ $project
+ </tr>
+
+ |;
+ }
+
+ $form->hide_form(qw(rowcount selectaccno));
+
+ print qq|
+<input type=hidden name=selectprojectnumber value="|.$form->escape($form->{selectprojectnumber},1).qq|">|;
+
+}
+
+
+sub form_header {
+
+ $title = $form->{title};
+ if ($form->{transfer}) {
+ $form->{title} = $locale->text("$title Cash Transfer Transaction");
+ } else {
+ $form->{title} = $locale->text("$title General Ledger Transaction");
+ }
+
+# $locale->text('Add Cash Transfer Transaction')
+# $locale->text('Edit Cash Transfer Transaction')
+# $locale->text('Add General Ledger Transaction')
+# $locale->text('Edit General Ledger Transaction')
+
+
+ $form->{selectdepartment} = $form->unescape($form->{selectdepartment});
+ $form->{selectdepartment} =~ s/ selected//;
+ $form->{selectdepartment} =~ s/(<option value="\Q$form->{department}\E")/$1 selected/;
+
+ for (qw(reference description notes)) { $form->{$_} = $form->quote($form->{$_}) }
+
+ if (($rows = $form->numtextrows($form->{description}, 50)) > 1) {
+ $description = qq|<textarea name=description rows=$rows cols=50 wrap=soft>$form->{description}</textarea>|;
+ } else {
+ $description = qq|<input name=description size=50 value="$form->{description}">|;
+ }
+
+ if (($rows = $form->numtextrows($form->{notes}, 50)) > 1) {
+ $notes = qq|<textarea name=notes rows=$rows cols=50 wrap=soft>$form->{notes}</textarea>|;
+ } else {
+ $notes = qq|<input name=notes size=50 value="$form->{notes}">|;
+ }
+
+ $department = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Department').qq|</th>
+ <td><select name=department>$form->{selectdepartment}</select></td>
+ <input type=hidden name=selectdepartment value="|.$form->escape($form->{selectdepartment},1).qq|">
+ </tr>
+| if $form->{selectdepartment};
+
+ $project = qq|
+ <th class=listheading>|.$locale->text('Project').qq|</th>
+| if $form->{selectprojectnumber};
+
+ if ($form->{transfer}) {
+ $fx_transaction = qq|
+ <th class=listheading>|.$locale->text('FX').qq|</th>
+|;
+ }
+
+ $focus = ($form->{focus}) ? $form->{focus} : "debit_$form->{rowcount}";
+
+ $form->header;
+
+ print qq|
+<body onload="document.forms[0].${focus}.focus()" />
+
+<form method=post action=$form->{script}>
+|;
+
+ $form->hide_form(qw(id transfer selectaccno closedto locked oldtransdate recurring));
+
+ print qq|
+<input type=hidden name=title value="$title">
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right>|.$locale->text('Reference').qq|</th>
+ <td><input name=reference size=20 value="$form->{reference}"></td>
+ <th align=right>|.$locale->text('Date').qq|</th>
+ <td><input name=transdate size=11 title="$myconfig{dateformat}" value=$form->{transdate}></td>
+ </tr>
+ $department
+ <tr>
+ <th align=right>|.$locale->text('Description').qq|</th>
+ <td colspan=3>$description</td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Notes').qq|</th>
+ <td colspan=3>$notes</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+ <th class=listheading>|.$locale->text('Account').qq|</th>
+ $fx_transaction
+ <th class=listheading>|.$locale->text('Debit').qq|</th>
+ <th class=listheading>|.$locale->text('Credit').qq|</th>
+ <th class=listheading>|.$locale->text('Source').qq|</th>
+ <th class=listheading>|.$locale->text('Memo').qq|</th>
+ $project
+ </tr>
+|;
+
+}
+
+
+sub form_footer {
+
+ for (qw(totaldebit totalcredit)) { $form->{$_} = $form->format_amount(\%myconfig, $form->{$_}, 2, "&nbsp;") }
+
+
+ $project = qq|
+ <th>&nbsp;</th>
+| if $form->{selectprojectnumber};
+
+ if ($form->{transfer}) {
+ $fx_transaction = qq|
+ <th>&nbsp;</th>
+|;
+ }
+
+ print qq|
+ <tr class=listtotal>
+ <th>&nbsp;</th>
+ $fx_transaction
+ <th class=listtotal align=right>$form->{totaldebit}</th>
+ <th class=listtotal align=right>$form->{totalcredit}</th>
+ <th>&nbsp;</th>
+ <th>&nbsp;</th>
+ $project
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+ $form->hide_form(qw(path login sessionid callback));
+
+ $transdate = $form->datetonum(\%myconfig, $form->{transdate});
+ $closedto = $form->datetonum(\%myconfig, $form->{closedto});
+
+# type=submit $locale->text('Update')
+# type=submit $locale->text('Post')
+# type=submit $locale->text('Schedule')
+# type=submit $locale->text('Post as new')
+# type=submit $locale->text('Delete')
+
+ if (! $form->{readonly}) {
+
+ %button = ('Update' => { ndx => 1, key => 'U', value => $locale->text('Update') },
+ 'Post' => { ndx => 3, key => 'O', value => $locale->text('Post') },
+ 'Post as new' => { ndx => 6, key => 'N', value => $locale->text('Post as new') },
+ 'Schedule' => { ndx => 7, key => 'H', value => $locale->text('Schedule') },
+ 'Delete' => { ndx => 8, key => 'D', value => $locale->text('Delete') },
+ );
+
+ %a = ();
+
+ if ($form->{id}) {
+ for ('Update', 'Post as new', 'Schedule') { $a{$_} = 1 }
+
+ if (! $form->{locked}) {
+ if ($transdate > $closedto) {
+ for ('Post', 'Delete') { $a{$_} = 1 }
+ }
+ }
+
+ } else {
+ if ($transdate > $closedto) {
+ for ("Update", "Post", "Schedule") { $a{$_} = 1 }
+ }
+ }
+
+ for (keys %button) { delete $button{$_} if ! $a{$_} }
+ for (sort { $button{$a}->{ndx} <=> $button{$b}->{ndx} } keys %button) { $form->print_button(\%button, $_) }
+
+ }
+
+ if ($form->{recurring}) {
+ print qq|<div align=right>|.$locale->text('Scheduled').qq|</div>|;
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub delete {
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+|;
+
+ delete $form->{action};
+
+ $form->hide_form;
+
+ print qq|
+<h2 class=confirm>|.$locale->text('Confirm!').qq|</h2>
+
+<h4>|.$locale->text('Are you sure you want to delete Transaction').qq| $form->{reference}</h4>
+
+<input name=action class=submit type=submit value="|.$locale->text('Yes').qq|">
+</form>
+|;
+
+}
+
+
+sub yes {
+
+ if (GL->delete_transaction(\%myconfig, \%$form)) {
+ $form->redirect($locale->text('Transaction deleted!'));
+ } else {
+ $form->error($locale->text('Cannot delete transaction!'));
+ }
+
+}
+
+
+sub post {
+
+ $form->isblank("transdate", $locale->text('Transaction Date missing!'));
+
+ $transdate = $form->datetonum(\%myconfig, $form->{transdate});
+ $closedto = $form->datetonum(\%myconfig, $form->{closedto});
+
+ $form->error($locale->text('Cannot post transaction for a closed period!')) if ($transdate <= $closedto);
+
+ # add up debits and credits
+ for $i (1 .. $form->{rowcount}) {
+ $dr = $form->parse_amount(\%myconfig, $form->{"debit_$i"});
+ $cr = $form->parse_amount(\%myconfig, $form->{"credit_$i"});
+
+ if ($dr && $cr) {
+ $form->error($locale->text('Cannot post transaction with a debit and credit entry for the same account!'));
+ }
+ $debit += $dr;
+ $credit += $cr;
+ }
+
+ if ($form->round_amount($debit, 2) != $form->round_amount($credit, 2)) {
+ $form->error($locale->text('Out of balance transaction!'));
+ }
+
+ if (! $form->{repost}) {
+ if ($form->{id}) {
+ &repost;
+ exit;
+ }
+ }
+
+ if (GL->post_transaction(\%myconfig, \%$form)) {
+ $form->redirect($locale->text('Transaction posted!'));
+ } else {
+ $form->error($locale->text('Cannot post transaction!'));
+ }
+
+}
+
+
diff --git a/bin/mozilla/hr.pl b/bin/mozilla/hr.pl
new file mode 100755
index 00000000..42325e58
--- /dev/null
+++ b/bin/mozilla/hr.pl
@@ -0,0 +1,1235 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has NOT undergone whitespace cleanup.
+#
+#======================================================================
+#
+# payroll module
+#
+#======================================================================
+
+use LedgerSMB::HR;
+use LedgerSMB::User;
+
+1;
+# end of main
+
+
+
+sub add {
+
+ $label = "Add ".ucfirst $form->{db};
+ $form->{title} = $locale->text($label);
+
+ $form->{callback} = "$form->{script}?action=add&db=$form->{db}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}" unless $form->{callback};
+
+ &{ "$form->{db}_links" };
+
+}
+
+
+sub search { &{ "search_$form->{db}" } };
+
+
+sub search_employee {
+
+ $form->{title} = $locale->text('Employees');
+
+ @a = ();
+
+ push @a, qq|<input name="l_ndx" type=checkbox class=checkbox value=Y> |.$locale->text('Pos');
+ push @a, qq|<input name="l_id" type=checkbox class=checkbox value=Y> |.$locale->text('ID');
+ push @a, qq|<input name="l_employeenumber" type=checkbox class=checkbox value=Y checked> |.$locale->text('Employee Number');
+ push @a, qq|<input name="l_name" type=checkbox class=checkbox value=Y checked> |.$locale->text('Employee Name');
+ push @a, qq|<input name="l_address" type=checkbox class=checkbox value=Y> |.$locale->text('Address');
+ push @a, qq|<input name="l_city" type=checkbox class=checkbox value=Y> |.$locale->text('City');
+ push @a, qq|<input name="l_state" type=checkbox class=checkbox value=Y> |.$locale->text('State/Province');
+ push @a, qq|<input name="l_zipcode" type=checkbox class=checkbox value=Y> |.$locale->text('Zip/Postal Code');
+ push @a, qq|<input name="l_country" type=checkbox class=checkbox value=Y> |.$locale->text('Country');
+ push @a, qq|<input name="l_workphone" type=checkbox class=checkbox value=Y checked> |.$locale->text('Work Phone');
+ push @a, qq|<input name="l_homephone" type=checkbox class=checkbox value=Y checked> |.$locale->text('Home Phone');
+ push @a, qq|<input name="l_startdate" type=checkbox class=checkbox value=Y checked> |.$locale->text('Startdate');
+ push @a, qq|<input name="l_enddate" type=checkbox class=checkbox value=Y checked> |.$locale->text('Enddate');
+ push @a, qq|<input name="l_sales" type=checkbox class=checkbox value=Y> |.$locale->text('Sales');
+ push @a, qq|<input name="l_manager" type=checkbox class=checkbox value=Y> |.$locale->text('Manager');
+ push @a, qq|<input name="l_role" type=checkbox class=checkbox value=Y checked> |.$locale->text('Role');
+ push @a, qq|<input name="l_login" type=checkbox class=checkbox value=Y checked> |.$locale->text('Login');
+ push @a, qq|<input name="l_email" type=checkbox class=checkbox value=Y> |.$locale->text('E-mail');
+ push @a, qq|<input name="l_ssn" type=checkbox class=checkbox value=Y> |.$locale->text('SSN');
+ push @a, qq|<input name="l_dob" type=checkbox class=checkbox value=Y> |.$locale->text('DOB');
+ push @a, qq|<input name="l_iban" type=checkbox class=checkbox value=Y> |.$locale->text('IBAN');
+ push @a, qq|<input name="l_bic" type=checkbox class=checkbox value=Y> |.$locale->text('BIC');
+ push @a, qq|<input name="l_notes" type=checkbox class=checkbox value=Y> |.$locale->text('Notes');
+
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Employee Number').qq|</th>
+ <td colspan=3><input name=employeenumber size=20></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Employee Name').qq|</th>
+ <td colspan=3><input name=name size=35></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Startdate').qq|</th>
+ <td>|.$locale->text('From').qq| <input name=startdatefrom size=11 title="$myconfig{dateformat}"> |.$locale->text('To').qq| <input name=startdateto size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+ <tr valign=top>
+ <th align=right nowrap>|.$locale->text('Notes').qq|</th>
+ <td colspan=3><input name=notes size=40></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan=3><input name=status class=radio type=radio value=all checked>&nbsp;|.$locale->text('All').qq|
+ <input name=status class=radio type=radio value=active>&nbsp;|.$locale->text('Active').qq|
+ <input name=status class=radio type=radio value=inactive>&nbsp;|.$locale->text('Inactive').qq|
+ <input name=status class=radio type=radio value=orphaned>&nbsp;|.$locale->text('Orphaned').qq|
+ <input name=sales class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Sales').qq|
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Include in Report').qq|</th>
+ <td colspan=3>
+ <table>
+|;
+
+ while (@a) {
+ print qq|<tr>\n|;
+ for (1 .. 5) {
+ print qq|<td nowrap>|. shift @a;
+ print qq|</td>\n|;
+ }
+ print qq|</tr>\n|;
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<input type=hidden name=nextsub value=list_employees>
+|;
+
+ $form->hide_form(qw(db path login sessionid));
+
+ print qq|
+<br>
+<input type=submit class=submit name=action value="|.$locale->text('Continue').qq|">
+</form>
+|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+</body>
+</html>
+|;
+}
+
+
+sub list_employees {
+
+ HR->employees(\%myconfig, \%$form);
+
+ $href = "$form->{script}?action=list_employees&direction=$form->{direction}&oldsort=$form->{oldsort}&db=$form->{db}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&status=$form->{status}";
+
+ $form->sort_order();
+
+ $callback = "$form->{script}?action=list_employees&direction=$form->{direction}&oldsort=$form->{oldsort}&db=$form->{db}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&status=$form->{status}";
+
+ @columns = $form->sort_columns(qw(id employeenumber name address city state zipcode country workphone homephone email startdate enddate ssn dob iban bic sales role manager login notes));
+ unshift @columns, "ndx";
+
+ foreach $item (@columns) {
+ if ($form->{"l_$item"} eq "Y") {
+ push @column_index, $item;
+
+ # add column to href and callback
+ $callback .= "&l_$item=Y";
+ $href .= "&l_$item=Y";
+ }
+ }
+
+ %role = ( user => $locale->text('User'),
+ supervisor => $locale->text('Supervisor'),
+ manager => $locale->text('Manager'),
+ admin => $locale->text('Administrator')
+ );
+
+ $option = $locale->text('All');
+
+ if ($form->{status} eq 'sales') {
+ $option = $locale->text('Sales');
+ }
+ if ($form->{status} eq 'orphaned') {
+ $option = $locale->text('Orphaned');
+ }
+ if ($form->{status} eq 'active') {
+ $option = $locale->text('Active');
+ }
+ if ($form->{status} eq 'inactive') {
+ $option = $locale->text('Inactive');
+ }
+
+ if ($form->{employeenumber}) {
+ $callback .= "&employeenumber=".$form->escape($form->{employeenumber},1);
+ $href .= "&employeenumber=".$form->escape($form->{employeenumber});
+ $option .= "\n<br>".$locale->text('Employee Number')." : $form->{employeenumber}";
+ }
+ if ($form->{name}) {
+ $callback .= "&name=".$form->escape($form->{name},1);
+ $href .= "&name=".$form->escape($form->{name});
+ $option .= "\n<br>".$locale->text('Employee Name')." : $form->{name}";
+ }
+ if ($form->{startdatefrom}) {
+ $callback .= "&startdatefrom=$form->{startdatefrom}";
+ $href .= "&startdatefrom=$form->{startdatefrom}";
+ $fromdate = $locale->date(\%myconfig, $form->{startdatefrom}, 1);
+ }
+ if ($form->{startdateto}) {
+ $callback .= "&startdateto=$form->{startdateto}";
+ $href .= "&startdateto=$form->{startdateto}";
+ $todate = $locale->date(\%myconfig, $form->{startdateto}, 1);
+ }
+ if ($fromdate || $todate) {
+ $option .= "\n<br>".$locale->text('Startdate')." $fromdate - $todate";
+ }
+
+ if ($form->{notes}) {
+ $callback .= "&notes=".$form->escape($form->{notes},1);
+ $href .= "&notes=".$form->escape($form->{notes});
+ $option .= "\n<br>" if $option;
+ $option .= $locale->text('Notes')." : $form->{notes}";
+ }
+
+ $form->{callback} = "$callback&sort=$form->{sort}";
+ $callback = $form->escape($form->{callback});
+
+ $column_header{ndx} = qq|<th class=listheading>&nbsp;</th>|;
+ $column_header{id} = qq|<th class=listheading>|.$locale->text('ID').qq|</th>|;
+ $column_header{employeenumber} = qq|<th><a class=listheading href=$href&sort=employeenumber>|.$locale->text('Number').qq|</a></th>|;
+ $column_header{name} = qq|<th><a class=listheading href=$href&sort=name>|.$locale->text('Name').qq|</a></th>|;
+ $column_header{manager} = qq|<th><a class=listheading href=$href&sort=manager>|.$locale->text('Manager').qq|</a></th>|;
+ $column_header{address} = qq|<th class=listheading>|.$locale->text('Address').qq|</a></th>|;
+ $column_header{city} = qq|<th><a class=listheading href=$href&sort=city>|.$locale->text('City').qq|</a></th>|;
+ $column_header{state} = qq|<th><a class=listheading href=$href&sort=state>|.$locale->text('State/Province').qq|</a></th>|;
+ $column_header{zipcode} = qq|<th><a class=listheading href=$href&sort=zipcode>|.$locale->text('Zip/Postal Code').qq|</a></th>|;
+ $column_header{country} = qq|<th><a class=listheading href=$href&sort=country>|.$locale->text('Country').qq|</a></th>|;
+ $column_header{workphone} = qq|<th><a class=listheading href=$href&sort=workphone>|.$locale->text('Work Phone').qq|</a></th>|;
+ $column_header{homephone} = qq|<th><a class=listheading href=$href&sort=homephone>|.$locale->text('Home Phone').qq|</a></th>|;
+
+ $column_header{startdate} = qq|<th><a class=listheading href=$href&sort=startdate>|.$locale->text('Startdate').qq|</a></th>|;
+ $column_header{enddate} = qq|<th><a class=listheading href=$href&sort=enddate>|.$locale->text('Enddate').qq|</a></th>|;
+ $column_header{notes} = qq|<th><a class=listheading href=$href&sort=notes>|.$locale->text('Notes').qq|</a></th>|;
+ $column_header{role} = qq|<th><a class=listheading href=$href&sort=role>|.$locale->text('Role').qq|</a></th>|;
+ $column_header{login} = qq|<th><a class=listheading href=$href&sort=login>|.$locale->text('Login').qq|</a></th>|;
+
+ $column_header{sales} = qq|<th class=listheading>|.$locale->text('S').qq|</th>|;
+ $column_header{email} = qq|<th><a class=listheading href=$href&sort=email>|.$locale->text('E-mail').qq|</a></th>|;
+ $column_header{ssn} = qq|<th><a class=listheading href=$href&sort=ssn>|.$locale->text('SSN').qq|</a></th>|;
+ $column_header{dob} = qq|<th><a class=listheading href=$href&sort=dob>|.$locale->text('DOB').qq|</a></th>|;
+ $column_header{iban} = qq|<th><a class=listheading href=$href&sort=iban>|.$locale->text('IBAN').qq|</a></th>|;
+ $column_header{bic} = qq|<th><a class=listheading href=$href&sort=bic>|.$locale->text('BIC').qq|</a></th>|;
+
+ $form->{title} = $locale->text('Employees');
+
+ $form->header;
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$option</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "$column_header{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ $i = 0;
+ foreach $ref (@{ $form->{all_employee} }) {
+
+ $i++;
+
+ $ref->{notes} =~ s/\r?\n/<br>/g;
+ for (@column_index) { $column_data{$_} = "<td>$ref->{$_}&nbsp;</td>" }
+
+ $column_data{ndx} = "<td align=right>$i</td>";
+
+ $column_data{sales} = ($ref->{sales}) ? "<td>x</td>" : "<td>&nbsp;</td>";
+ $column_data{role} = qq|<td>$role{"$ref->{role}"}&nbsp;</td>|;
+ $column_date{address} = qq|$ref->{address1} $ref->{address2}|;
+
+ $column_data{name} = "<td><a href=$form->{script}?action=edit&db=employee&id=$ref->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&status=$form->{status}&callback=$callback>$ref->{name}&nbsp;</td>";
+
+ if ($ref->{email}) {
+ $email = $ref->{email};
+ $email =~ s/</\&lt;/;
+ $email =~ s/>/\&gt;/;
+
+ $column_data{email} = qq|<td><a href="mailto:$ref->{email}">$email</a></td>|;
+ }
+
+ $j++; $j %= 2;
+ print "
+ <tr class=listrow$j>
+";
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ }
+
+ $i = 1;
+ $button{'HR--Employees--Add Employee'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Add Employee').qq|"> |;
+ $button{'HR--Employees--Add Employee'}{order} = $i++;
+
+ foreach $item (split /;/, $myconfig{acs}) {
+ delete $button{$item};
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+<form method=post action=$form->{script}>
+|;
+
+ $form->hide_form(qw(callback db path login sessionid));
+
+ foreach $item (sort { $a->{order} <=> $b->{order} } %button) {
+ print $item->{code};
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub edit {
+
+# $locale->text('Edit Employee')
+# $locale->text('Edit Deduction')
+
+ $label = ucfirst $form->{db};
+ $form->{title} = "Edit $label";
+
+ &{ "$form->{db}_links" };
+
+}
+
+
+sub employee_links {
+
+#$form->{deductions} = 1;
+ HR->get_employee(\%myconfig, \%$form);
+
+ for (keys %$form) { $form->{$_} = $form->quote($form->{$_}) }
+
+ if (@{ $form->{all_deduction} }) {
+ $form->{selectdeduction} = "<option>\n";
+ for (@{ $form->{all_deduction} }) { $form->{selectdeduction} .= qq|<option value="$_->{description}--$_->{id}">$_->{description}\n| }
+ }
+
+ $form->{manager} = "$form->{manager}--$form->{managerid}";
+
+ if (@{ $form->{all_manager} }) {
+ $form->{selectmanager} = "<option>\n";
+ for (@{ $form->{all_manager} }) { $form->{selectmanager} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+ }
+
+ %role = ( user => $locale->text('User'),
+ supervisor => $locale->text('Supervisor'),
+ manager => $locale->text('Manager'),
+ admin => $locale->text('Administrator')
+ );
+
+ $form->{selectrole} = "<option>\n";
+ for (qw(user supervisor manager admin)) { $form->{selectrole} .= "<option value=$_>$role{$_}\n" }
+
+ $i = 1;
+ foreach $ref (@{ $form->{all_employeededuction} }) {
+ $form->{"deduction_$i"} = "$ref->{description}--$ref->{id}" if $ref->{id};
+ for (qw(before after rate)) { $form->{"${_}_$i"} = $ref->{$_} }
+ $i++;
+ }
+ $form->{deduction_rows} = $i - 1;
+
+ &employee_header;
+ &employee_footer;
+
+}
+
+
+sub employee_header {
+
+ $sales = qq|<input type=hidden name=sales value=$form->{sales}>|;
+ $form->{sales} = ($form->{sales}) ? "checked" : "";
+
+ $form->{selectrole} =~ s/ selected//;
+ $form->{selectrole} =~ s/option value=\Q$form->{role}\E>/option value=$form->{role} selected>/;
+
+ $form->{selectdeduction} = $form->unescape($form->{selectdeduction});
+
+ $form->{selectmanager} = $form->unescape($form->{selectmanager});
+ $form->{selectmanager} =~ s/ selected//;
+ $form->{selectmanager} =~ s/(<option value="\Q$form->{manager}\E")/$1 selected/;
+
+ $sales .= qq|
+<input type=hidden name=role value=$form->{role}>
+<input type=hidden name=manager value=$form->{manager}>
+|;
+
+ if ($myconfig{role} ne 'user') {
+ $sales = qq|
+ <tr>
+ <th align=right>|.$locale->text('Sales').qq|</th>
+ <td><input name=sales class=checkbox type=checkbox value=1 $form->{sales}></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Role').qq|</th>
+ <td><select name=role>$form->{selectrole}</select></td>
+ </tr>
+|;
+
+ if ($form->{selectmanager}) {
+ $sales .= qq|
+ <tr>
+ <th align=right>|.$locale->text('Manager').qq|</th>
+ <td><select name=manager>$form->{selectmanager}</select></td>
+ </tr>
+|;
+ }
+ }
+
+ $form->{deduction_rows}++;
+
+ for $i (1 .. $form->{deduction_rows}) {
+ $form->{"selectdeduction_$i"} = $form->{selectdeduction};
+ if ($form->{"deduction_$i"}) {
+ $form->{"selectdeduction_$i"} =~ s/(<option value="\Q$form->{"deduction_$i"}\E")/$1 selected/;
+ }
+ }
+
+ $form->{selectdeduction} = $form->escape($form->{selectdeduction},1);
+ $form->{selectmanager} = $form->escape($form->{selectmanager},1);
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=selectdeduction value="$form->{selectdeduction}">
+<input type=hidden name=deduction_rows value=$form->{deduction_rows}>
+
+<input type=hidden name=selectmanager value="$form->{selectmanager}">
+<input type=hidden name=selectrole value="$form->{selectrole}">
+
+<input type=hidden name=status value=$form->{status}>
+
+<input type=hidden name=title value="$form->{title}">
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Number').qq|</th>
+ <td><input name=employeenumber size=32 maxlength=32 value="$form->{employeenumber}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Name').qq|</th>
+ <td><input name=name size=35 maxlength=64 value="$form->{name}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Address').qq|</th>
+ <td><input name=address1 size=35 maxlength=32 value="$form->{address1}"></td>
+ </tr>
+ <tr>
+ <th></th>
+ <td><input name=address2 size=35 maxlength=32 value="$form->{address2}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('City').qq|</th>
+ <td><input name=city size=35 maxlength=32 value="$form->{city}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('State/Province').qq|</th>
+ <td><input name=state size=35 maxlength=32 value="$form->{state}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Zip/Postal Code').qq|</th>
+ <td><input name=zipcode size=10 maxlength=10 value="$form->{zipcode}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Country').qq|</th>
+ <td><input name=country size=35 maxlength=32 value="$form->{country}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('E-mail').qq|</th>
+ <td><input name=email size=35 value="$form->{email}"></td>
+ </tr>
+ <tr>
+ $sales
+ </table>
+ </td>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Work Phone').qq|</th>
+ <td><input name=workphone size=20 maxlength=20 value="$form->{workphone}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Home Phone').qq|</th>
+ <td><input name=homephone size=20 maxlength=20 value="$form->{homephone}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Startdate').qq|</th>
+ <td><input name=startdate size=11 title="$myconfig{dateformat}" value=$form->{startdate}></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Enddate').qq|</th>
+ <td><input name=enddate size=11 title="$myconfig{dateformat}" value=$form->{enddate}></td>
+ </tr>
+
+ <tr>
+ <th align=right nowrap>|.$locale->text('SSN').qq|</th>
+ <td><input name=ssn size=20 maxlength=20 value="$form->{ssn}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('DOB').qq|</th>
+ <td><input name=dob size=11 title="$myconfig{dateformat}" value=$form->{dob}></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('IBAN').qq|</th>
+ <td><input name=iban size=34 maxlength=34 value="$form->{iban}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('BIC').qq|</th>
+ <td><input name=bic size=11 maxlength=11 value="$form->{bic}"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <th align=left nowrap>|.$locale->text('Notes').qq|</th>
+ </tr>
+ <tr>
+ <td><textarea name=notes rows=3 cols=60 wrap=soft>$form->{notes}</textarea></td>
+ </tr>
+|;
+
+ if ($form->{selectdeduction}) {
+
+ print qq|
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+ <th class=listheading>|.$locale->text('Payroll Deduction').qq|</th>
+ <th class=listheading colspan=3>|.$locale->text('Allowances').qq|</th>
+ </tr>
+
+ <tr class=listheading>
+ <th></th>
+ <th class=listheading>|.$locale->text('Before Deduction').qq|</th>
+ <th class=listheading>|.$locale->text('After Deduction').qq|</th>
+ <th class=listheading>|.$locale->text('Rate').qq|</th>
+ </tr>
+|;
+
+ for $i (1 .. $form->{deduction_rows}) {
+ print qq|
+ <tr>
+ <td><select name="deduction_$i">$form->{"selectdeduction_$i"}</select></td>
+ <td><input name="before_$i" value=|.$form->format_amount(\%myconfig, $form->{"before_$i"}, 2).qq|></td>
+ <td><input name="after_$i" value=|.$form->format_amount(\%myconfig, $form->{"after_$i"}, 2).qq|></td>
+ <td><input name="rate_$i" size=5 value=|.$form->format_amount(\%myconfig, $form->{"rate_$i"}).qq|></td>
+ </tr>
+|;
+ }
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+}
+
+
+
+sub employee_footer {
+
+ print qq|
+<input name=id type=hidden value=$form->{id}>
+
+<input type=hidden name=db value=$form->{db}>
+<input type=hidden name=employeelogin value=$form->{employeelogin}>
+
+<input type=hidden name=path value=$form->{path}>
+<input type=hidden name=login value=$form->{login}>
+<input type=hidden name=sessionid value=$form->{sessionid}>
+
+<input type=hidden name=callback value="$form->{callback}">
+
+<br>
+
+<input class=submit type=submit name=action value="|.$locale->text('Update').qq|">
+<input class=submit type=submit name=action value="|.$locale->text('Save').qq|">
+|;
+
+ if ($form->{id}) {
+ print qq|<input class=submit type=submit name=action value="|.$locale->text('Save as new').qq|">\n|;
+ if ($form->{status} eq 'orphaned') {
+ print qq|<input class=submit type=submit name=action value="|.$locale->text('Delete').qq|">\n|;
+ }
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+ </form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub save { &{ "save_$form->{db}" } };
+
+
+sub save_employee {
+
+ $form->isblank("name", $locale->text("Name missing!"));
+ HR->save_employee(\%myconfig, \%$form);
+
+ # if it is a login change memberfile and .conf
+ if ($form->{employeelogin}) {
+ $user = new User $memberfile, $form->{employeelogin};
+
+ for (qw(name email role)) { $user->{$_} = $form->{$_} }
+
+ # assign $myconfig for db
+ for (qw(dbconnect dbhost dbport dbpasswd)) { $user->{$_} = $myconfig{$_} }
+
+ for (qw(dbpasswd password)) { $user->{"old_$_"} = $user->{$_} }
+ $user->{packpw} = 1;
+
+ $user->save_member($memberfile, $userspath) if $user->{login};
+ }
+
+ $form->redirect($locale->text('Employee saved!'));
+
+}
+
+
+sub delete { &{ "delete_$form->{db}" } };
+
+
+sub delete_employee {
+
+ HR->delete_employee(\%myconfig, \%$form);
+ $form->redirect($locale->text('Employee deleted!'));
+
+}
+
+
+sub continue { &{ $form->{nextsub} } };
+
+sub add_employee { &add };
+sub add_deduction { &add };
+
+
+sub search_deduction {
+
+ HR->deductions(\%myconfig, \%$form);
+
+ $href = "$form->{script}?action=search_deduction&direction=$form->{direction}&oldsort=$form->{oldsort}&db=$form->{db}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}";
+
+ $form->sort_order();
+
+ $callback = "$form->{script}?action=search_deduction&direction=$form->{direction}&oldsort=$form->{oldsort}&db=$form->{db}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}";
+
+ @column_index = $form->sort_columns(qw(description rate amount above below employeepays employerpays ap_accno expense_accno));
+
+
+ $form->{callback} = $callback;
+ $callback = $form->escape($form->{callback});
+
+ $column_header{description} = qq|<th class=listheading href=$href>|.$locale->text('Description').qq|</th>|;
+ $column_header{rate} = qq|<th class=listheading nowrap>|.$locale->text('Rate').qq|<br>%</th>|;
+ $column_header{amount} = qq|<th class=listheading>|.$locale->text('Amount').qq|</th>|;
+ $column_header{above} = qq|<th class=listheading>|.$locale->text('Above').qq|</th>|;
+ $column_header{below} = qq|<th class=listheading>|.$locale->text('Below').qq|</th>|;
+ $column_header{employerpays} = qq|<th class=listheading>|.$locale->text('Employer').qq|</th>|;
+ $column_header{employeepays} = qq|<th class=listheading>|.$locale->text('Employee').qq|</th>|;
+
+ $column_header{ap_accno} = qq|<th class=listheading>|.$locale->text('AP').qq|</th>|;
+ $column_header{expense_accno} = qq|<th class=listheading>|.$locale->text('Expense').qq|</th>|;
+
+ $form->{title} = $locale->text('Deductions');
+
+ $form->header;
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$option</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "$column_header{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+
+ foreach $ref (@{ $form->{all_deduction} }) {
+
+ $rate = $form->format_amount(\%myconfig, $ref->{rate} * 100, "", "&nbsp;");
+
+ $column_data{rate} = "<td align=right>$rate</td>";
+
+ for (qw(amount below above)) { $column_data{$_} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{$_}, 2, "&nbsp;")."</td>" }
+
+ for (qw(ap_accno expense_accno)) { $column_data{$_} = "<td>$ref->{$_}&nbsp;</td>" }
+
+ for (qw(employerpays employeepays)) { $column_data{$_} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{$_}, "", "&nbsp;")."</td>" }
+
+ if ($ref->{description} ne $sameitem) {
+ $column_data{description} = "<td><a href=$form->{script}?action=edit&db=$form->{db}&id=$ref->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{description}</a></td>";
+ } else {
+ $column_data{description} = "<td>&nbsp;</td>";
+ }
+
+ $i++; $i %= 2;
+ print "
+ <tr class=listrow$i>
+";
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ $sameitem = $ref->{description};
+
+ }
+
+ $i = 1;
+ $button{'HR--Deductions--Add Deduction'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Add Deduction').qq|"> |;
+ $button{'HR--Deductions--Add Deduction'}{order} = $i++;
+
+ foreach $item (split /;/, $myconfig{acs}) {
+ delete $button{$item};
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+<form method=post action=$form->{script}>
+
+<input type=hidden name=db value=$form->{db}>
+
+<input name=callback type=hidden value="$form->{callback}">
+
+<input type=hidden name=path value=$form->{path}>
+<input type=hidden name=login value=$form->{login}>
+<input type=hidden name=sessionid value=$form->{sessionid}>
+|;
+
+ foreach $item (sort { $a->{order} <=> $b->{order} } %button) {
+ print $item->{code};
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub deduction_links {
+
+ HR->get_deduction(\%myconfig, \%$form);
+
+ $i = 1;
+ foreach $ref (@{ $form->{deductionrate} }) {
+ for (keys %$ref) { $form->{"${_}_$i"} = $ref->{$_} }
+ $i++;
+ }
+ $form->{rate_rows} = $i - 1;
+
+ $i = 1;
+ foreach $ref (@{ $form->{deductionbase} }) {
+ $form->{"base_$i"} = "$ref->{description}--$ref->{id}" if $ref->{id};
+ $form->{"maximum_$i"} = $ref->{maximum};
+ $i++;
+ }
+ $form->{base_rows} = $i - 1;
+
+ $i = 1;
+ foreach $ref (@{ $form->{deductionafter} }) {
+ $form->{"after_$i"} = "$ref->{description}--$ref->{id}" if $ref->{id};
+ $i++;
+ }
+ $form->{after_rows} = $i - 1;
+
+ $form->{employeepays} = 1;
+
+ $selectaccount = "<option>\n";
+ for (@{ $form->{ap_accounts} }) { $selectaccount .= "<option>$_->{accno}--$_->{description}\n" }
+
+ $form->{ap_accno} = qq|$form->{ap_accno}--$form->{ap_description}|;
+ $form->{selectap} = $selectaccount;
+
+ $selectaccount = "<option>\n";
+ for (@{ $form->{expense_accounts} }) { $selectaccount .= "<option>$_->{accno}--$_->{description}\n" }
+
+ $form->{expense_accno} = qq|$form->{expense_accno}--$form->{expense_description}|;
+ $form->{selectexpense} = $selectaccount;
+
+ for (1 .. $form->{rate_rows}) { $form->{"rate_$_"} *= 100 }
+
+ $form->{selectbase} = "<option>\n";
+ for (@{ $form->{all_deduction} }) { $form->{selectbase} .= qq|<option value="$_->{description}--$_->{id}">$_->{description}\n| }
+
+ &deduction_header;
+ &deduction_footer;
+
+}
+
+
+sub deduction_header {
+
+ $selectap = $form->{selectap};
+ $selectap =~ s/option>\Q$form->{ap_accno}\E/option selected>$form->{ap_accno}/;
+ $selectexpense = $form->{selectexpense};
+ $selectexpense =~ s/option>\Q$form->{expense_accno}\E/option selected>$form->{expense_accno}/;
+
+
+ $form->{rate_rows}++;
+ $form->{base_rows}++;
+ $form->{after_rows}++;
+
+ $form->{selectbase} = $form->unescape($form->{selectbase});
+
+ for $i (1 .. $form->{base_rows}) {
+ $form->{"selectbase_$i"} = $form->{selectbase};
+ if ($form->{"base_$i"}) {
+ $form->{"selectbase_$i"} =~ s/(<option value="\Q$form->{"base_$i"}\E")/$1 selected/;
+ }
+ }
+ for $i (1 .. $form->{after_rows}) {
+ $form->{"selectafter_$i"} = $form->{selectbase};
+ if ($form->{"after_$i"}) {
+ $form->{"selectafter_$i"} =~ s/(<option value="\Q$form->{"after_$i"}\E")/$1 selected/;
+ }
+ }
+
+
+ $form->header;
+
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=title value="$form->{title}">
+
+<input type=hidden name=selectap value="$form->{selectap}">
+<input type=hidden name=selectexpense value="$form->{selectexpense}">
+<input type=hidden name=selectbase value="|.$form->escape($form->{selectbase},1).qq|">
+
+<input type=hidden name=rate_rows value=$form->{rate_rows}>
+<input type=hidden name=base_rows value=$form->{base_rows}>
+<input type=hidden name=after_rows value=$form->{after_rows}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Description').qq|</th>
+ <td><input name=description size=35 value="$form->{description}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('AP').qq|</th>
+ <td><select name=ap_accno>$selectap</select></td>
+ <th align=right nowrap>|.$locale->text('Employee pays').qq| x</th>
+ <td><input name=employeepays size=4 value=|.$form->format_amount(\%myconfig, $form->{employeepays}).qq|></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Expense').qq|</th>
+ <td><select name=expense_accno>$selectexpense</select></td>
+ <th align=right nowrap>|.$locale->text('Employer pays').qq| x</th>
+ <td><input name=employerpays size=4 value=|.$form->format_amount(\%myconfig, $form->{employerpays}).qq|></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <th align=right nowrap>|.$locale->text('Exempt age <').qq|</th>
+ <td><input name=fromage size=4 value=|.$form->format_amount(\%myconfig, $form->{fromage}).qq|></td>
+ <th align=right nowrap>&gt;</th>
+ <td><input name=toage size=4 value=|.$form->format_amount(\%myconfig, $form->{toage}).qq|>
+ </tr>
+ <tr>
+ <td></td>
+ <td>
+ <table>
+ <tr class=listheading>
+ <th class=listheading>|.$locale->text('Rate').qq| %</th>
+ <th class=listheading>|.$locale->text('Amount').qq|</th>
+ <th class=listheading>|.$locale->text('Above').qq|</th>
+ <th class=listheading>|.$locale->text('Below').qq|</th>
+ </tr>
+|;
+
+ for $i (1 .. $form->{rate_rows}) {
+ print qq|
+ <tr>
+ <td><input name="rate_$i" size=10 value=|.$form->format_amount(\%myconfig, $form->{"rate_$i"}).qq|></td>
+ <td><input name="amount_$i" size=10 value=|.$form->format_amount(\%myconfig, $form->{"amount_$i"}, 2).qq|></td>
+ <td><input name="above_$i" size=10 value=|.$form->format_amount(\%myconfig, $form->{"above_$i"}, 2).qq|></td>
+ <td><input name="below_$i" size=10 value=|.$form->format_amount(\%myconfig, $form->{"below_$i"}, 2).qq|></td>
+ </tr>
+|;
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+|;
+
+ print qq|
+ <tr>
+ <td>
+ <table>
+|;
+
+ $basedon = $locale->text('Based on');
+ $maximum = $locale->text('Maximum');
+
+ for $i (1 .. $form->{base_rows}) {
+ print qq|
+ <tr>
+ <th>$basedon</th>
+ <td><select name="base_$i">$form->{"selectbase_$i"}</select></td>
+ <th>$maximum</th>
+ <td><input name="maximum_$i" value=|.$form->format_amount(\%myconfig, $form->{"maximum_$i"}, 2).qq|></td>
+ </tr>
+|;
+ $basedon = "";
+ $maximum = "";
+ }
+
+ $deductafter = $locale->text('Deduct after');
+
+ for $i (1 .. $form->{after_rows}) {
+ print qq|
+ <tr>
+ <th>$deductafter</th>
+ <td><select name="after_$i">$form->{"selectafter_$i"}</select></td>
+ </tr>
+|;
+ $deductafter = "";
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+}
+
+
+
+sub deduction_footer {
+
+ print qq|
+<input name=id type=hidden value=$form->{id}>
+
+<input type=hidden name=db value=$form->{db}>
+
+<input type=hidden name=path value=$form->{path}>
+<input type=hidden name=login value=$form->{login}>
+<input type=hidden name=sessionid value=$form->{sessionid}>
+
+<input type=hidden name=callback value="$form->{callback}">
+
+<br>
+
+<input class=submit type=submit name=action value="|.$locale->text("Update").qq|">
+<input class=submit type=submit name=action value="|.$locale->text("Save").qq|">
+|;
+
+ if ($form->{id}) {
+ print qq|<input class=submit type=submit name=action value="|.$locale->text('Save as new').qq|">\n|;
+
+ if ($form->{status} eq 'orphaned') {
+ print qq|<input class=submit type=submit name=action value="|.$locale->text('Delete').qq|">\n|;
+ }
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+ </form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub update { &{ "update_$form->{db}" }; }
+sub save { &{ "save_$form->{db}" } };
+
+
+sub update_deduction {
+
+ # if rate or amount is blank remove row
+ @flds = qw(rate amount above below);
+ $count = 0;
+ @a = ();
+ for $i (1 .. $form->{rate_rows}) {
+ for (@flds) { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) }
+ if ($form->{"rate_$i"} || $form->{"amount_$i"}) {
+ push @a, {};
+ $j = $#a;
+
+ for (@flds) { $a[$j]->{$_} = $form->{"${_}_$i"} }
+ $count++;
+ }
+ }
+ $form->redo_rows(\@flds, \@a, $count, $form->{rate_rows});
+ $form->{rate_rows} = $count;
+
+
+ @flds = qw(base maximum);
+ $count = 0;
+ @a = ();
+ for $i (1 .. $form->{"base_rows"}) {
+ $form->{"maximum_$i"} = $form->parse_amount(\%myconfig, $form->{"maximum_$i"});
+ if ($form->{"base_$i"}) {
+ push @a, {};
+ $j = $#a;
+
+ for (@flds) { $a[$j]->{$_} = $form->{"${_}_$i"} }
+ $count++;
+ }
+ }
+ $form->redo_rows(\@flds, \@a, $count, $form->{"base_rows"});
+ $form->{"base_rows"} = $count;
+
+
+ @flds = qw(after);
+ $count = 0;
+ @a = ();
+ for $i (1 .. $form->{"after_rows"}) {
+ if ($form->{"after_$i"}) {
+ push @a, {};
+ $j = $#a;
+
+ for (@flds) { $a[$j]->{$_} = $form->{"${_}_$i"} }
+ $count++;
+ }
+ }
+ $form->redo_rows(\@flds, \@a, $count, $form->{"after_rows"});
+ $form->{"after_rows"} = $count;
+
+ &deduction_header;
+ &deduction_footer;
+
+}
+
+
+sub update_employee {
+
+ # if rate or amount is blank remove row
+ @flds = qw(before after);
+ $count = 0;
+ @a = ();
+ for $i (1 .. $form->{deduction_rows}) {
+ for (@flds) { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) }
+ if ($form->{"deduction_$i"}) {
+ push @a, {};
+ $j = $#a;
+
+ for (@flds) { $a[$j]->{$_} = $form->{"${_}_$i"} }
+ $count++;
+ }
+ }
+ $form->redo_rows(\@flds, \@a, $count, $form->{deduction_rows});
+ $form->{deduction_rows} = $count;
+
+ &employee_header;
+ &employee_footer;
+
+}
+
+
+sub save_as_new {
+
+ $form->{id} = 0;
+ delete $form->{employeelogin};
+
+ &save;
+
+}
+
+
+sub save_deduction {
+
+ $form->isblank("description", $locale->text("Description missing!"));
+
+ unless ($form->{"rate_1"} || $form->{"amount_1"}) {
+ $form->isblank("rate_1", $locale->text("Rate missing!")) unless $form->{"amount_1"};
+ $form->isblank("amount_1", $locale->text("Amount missing!"));
+ }
+
+ HR->save_deduction(\%myconfig, \%$form);
+ $form->redirect($locale->text('Deduction saved!'));
+
+}
+
+
+sub delete_deduction {
+
+ HR->delete_deduction(\%myconfig, \%$form);
+ $form->redirect($locale->text('Deduction deleted!'));
+
+}
+
+
diff --git a/bin/mozilla/ic.pl b/bin/mozilla/ic.pl
new file mode 100755
index 00000000..b3574c1a
--- /dev/null
+++ b/bin/mozilla/ic.pl
@@ -0,0 +1,3226 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has NOT undergone whitespace cleanup.
+#
+#======================================================================
+#
+# Inventory Control module
+#
+#======================================================================
+
+
+use LedgerSMB::IC;
+
+require "$form->{path}/io.pl";
+
+1;
+# end of main
+
+
+
+sub add {
+
+ %label = ( part => 'Part',
+ service => 'Service',
+ assembly => 'Assembly',
+ labor => 'Labor/Overhead', );
+
+# $locale->text('Add Part')
+# $locale->text('Add Service')
+# $locale->text('Add Assembly')
+# $locale->text('Add Labor/Overhead')
+
+ $label = "Add $label{$form->{item}}";
+ $form->{title} = $locale->text($label);
+
+ $form->{callback} = "$form->{script}?action=add&item=$form->{item}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}" unless $form->{callback};
+
+ $form->{orphaned} = 1;
+
+ if ($form->{previousform}) {
+ $form->{callback} = "";
+ }
+
+ &link_part;
+
+ &display_form;
+
+}
+
+
+sub edit {
+
+ %label = ( part => 'Part',
+ service => 'Service',
+ assembly => 'Assembly',
+ labor => 'Labor/Overhead', );
+
+# $locale->text('Edit Part')
+# $locale->text('Edit Service')
+# $locale->text('Edit Assembly')
+# $locale->text('Edit Labor/Overhead')
+
+ IC->get_part(\%myconfig, \%$form);
+
+ $label = "Edit $label{$form->{item}}";
+ $form->{title} = $locale->text($label);
+
+ $form->{previousform} = $form->escape($form->{previousform}, 1) if $form->{previousform};
+
+ &link_part;
+
+ &display_form;
+
+}
+
+
+
+sub link_part {
+
+ IC->create_links("IC", \%myconfig, \%$form);
+
+ # currencies
+ $form->{selectcurrency} = "";
+ for (split /:/, $form->{currencies}) { $form->{selectcurrency} .= "<option>$_\n" }
+
+ # readonly
+ if ($form->{item} eq 'part') {
+ $form->{readonly} = 1 if $myconfig{acs} =~ /Goods \& Services--Add Part/;
+ $form->error($locale->text('Cannot create Part').";".$locale->text('Inventory account does not exist!')) if ! @{ $form->{IC_links}{IC} };
+ $form->error($locale->text('Cannot create Part').";".$locale->text('Income account does not exist!')) if ! @{ $form->{IC_links}{IC_sale} };
+ $form->error($locale->text('Cannot create Part').";".$locale->text('COGS account does not exist!')) if ! @{ $form->{IC_links}{IC_cogs} };
+ }
+
+ if ($form->{item} eq 'service') {
+ $form->{readonly} = 1 if $myconfig{acs} =~ /Goods \& Services--Add Service/;
+ $form->error($locale->text('Cannot create Service').";".$locale->text('Income account does not exist!')) if ! @{ $form->{IC_links}{IC_income} };
+ $form->error($locale->text('Cannot create Service').";".$locale->text('Expense account does not exist!')) if ! @{ $form->{IC_links}{IC_expense} };
+ }
+
+ if ($form->{item} eq 'assembly') {
+ $form->{readonly} = 1 if $myconfig{acs} =~ /Goods \& Services--Add Assembly/;
+ $form->error($locale->text('Cannot create Assembly').";".$locale->text('Income account does not exist!')) if ! @{ $form->{IC_links}{IC_income} };
+ }
+ if ($form->{item} eq 'labor') {
+ $form->{readonly} = 1 if $myconfig{acs} =~ /Goods \& Services--Add Labor\/Overhead/;
+ $form->error($locale->text('Cannot create Labor').";".$locale->text('Inventory account does not exist!')) if ! @{ $form->{IC_links}{IC} };
+ $form->error($locale->text('Cannot create Labor').";".$locale->text('COGS account does not exist!')) if ! @{ $form->{IC_links}{IC_cogs} };
+ }
+
+
+ # parts, assemblies , labor and overhead have the same links
+ $taxpart = ($form->{item} eq 'service') ? "service" : "part";
+
+ # build the popup menus
+ $form->{taxaccounts} = "";
+ foreach $key (keys %{ $form->{IC_links} }) {
+
+ $form->{"select$key"} = "";
+ foreach $ref (@{ $form->{IC_links}{$key} }) {
+ # if this is a tax field
+ if ($key =~ /IC_tax/) {
+ if ($key =~ /$taxpart/) {
+
+ $form->{taxaccounts} .= "$ref->{accno} ";
+ $form->{"IC_tax_$ref->{accno}_description"} = "$ref->{accno}--$ref->{description}";
+
+ if ($form->{id}) {
+ if ($form->{amount}{$ref->{accno}}) {
+ $form->{"IC_tax_$ref->{accno}"} = "checked";
+ }
+ } else {
+ $form->{"IC_tax_$ref->{accno}"} = "checked";
+ }
+
+ }
+ } else {
+
+ $form->{"select$key"} .= "<option>$ref->{accno}--$ref->{description}\n";
+
+ }
+ }
+ }
+ chop $form->{taxaccounts};
+
+ if ($form->{item} !~ /service/) {
+ $form->{selectIC_inventory} = $form->{selectIC};
+ $form->{selectIC_income} = $form->{selectIC_sale};
+ $form->{selectIC_expense} = $form->{selectIC_cogs};
+ $form->{IC_income} = $form->{IC_sale};
+ $form->{IC_expense} = $form->{IC_cogs};
+ }
+
+ # set option
+ for (qw(IC_inventory IC_income IC_expense)) { $form->{$_} = "$form->{amount}{$_}{accno}--$form->{amount}{$_}{description}" if $form->{amount}{$_}{accno} }
+
+ delete $form->{IC_links};
+ delete $form->{amount};
+
+ $form->get_partsgroup(\%myconfig, {all => 1});
+ if ($form->{partsgroup}) {
+ $form->{partsgroup} = $form->quote($form->{partsgroup})."--$form->{partsgroup_id}";
+ }
+
+ if (@{ $form->{all_partsgroup} }) {
+ $form->{selectpartsgroup} = qq|<option>\n|;
+
+ for (@{ $form->{all_partsgroup} }) { $form->{selectpartsgroup} .= qq|<option value="|.$form->quote($_->{partsgroup}).qq|--$_->{id}">$_->{partsgroup}\n| }
+ delete $form->{all_partsgroup};
+ }
+
+ if ($form->{item} eq 'assembly') {
+
+ for (1 .. $form->{assembly_rows}) {
+ if ($form->{"partsgroup_id_$_"}) {
+ $form->{"partsgroup_$_"} = qq|$form->{"partsgroup_$_"}--$form->{"partsgroup_id_$_"}|;
+ }
+ }
+
+ $form->get_partsgroup(\%myconfig);
+
+ if (@{ $form->{all_partsgroup} }) {
+ $form->{selectassemblypartsgroup} = qq|<option>\n|;
+
+ for (@{ $form->{all_partsgroup} }) { $form->{selectassemblypartsgroup} .= qq|<option value="$_->{partsgroup}--$_->{id}">$_->{partsgroup}\n| }
+ delete $form->{all_partsgroup};
+ }
+ }
+
+ # setup make and models
+ $i = 1;
+ foreach $ref (@{ $form->{makemodels} }) {
+ for (qw(make model)) { $form->{"${_}_$i"} = $ref->{$_} }
+ $i++;
+ }
+ $form->{makemodel_rows} = $i - 1;
+ delete $form->{makemodels};
+
+
+ # setup vendors
+ if (@{ $form->{all_vendor} }) {
+ $form->{selectvendor} = "<option>\n";
+ for (@{ $form->{all_vendor} }) { $form->{selectvendor} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+ delete $form->{all_vendor};
+ }
+
+ # vendor matrix
+ $i = 1;
+ foreach $ref (@{ $form->{vendormatrix} }) {
+ $form->{"vendor_$i"} = qq|$ref->{name}--$ref->{id}|;
+
+ for (qw(partnumber lastcost leadtime vendorcurr)) { $form->{"${_}_$i"} = $ref->{$_} }
+ $i++;
+ }
+ $form->{vendor_rows} = $i - 1;
+ delete $form->{vendormatrix};
+
+ # setup customers and groups
+ if (@{ $form->{all_customer} }) {
+ $form->{selectcustomer} = "<option>\n";
+ for (@{ $form->{all_customer} }) { $form->{selectcustomer} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+ delete $form->{all_customer};
+ }
+
+ if (@{ $form->{all_pricegroup} }) {
+ $form->{selectpricegroup} = "<option>\n";
+ for (@{ $form->{all_pricegroup} }) { $form->{selectpricegroup} .= qq|<option value="$_->{pricegroup}--$_->{id}">$_->{pricegroup}\n| }
+ delete $form->{all_pricegroup};
+ }
+
+ $i = 1;
+ # customer matrix
+ foreach $ref (@{ $form->{customermatrix} }) {
+
+ $form->{"customer_$i"} = "$ref->{name}--$ref->{cid}" if $ref->{cid};
+ $form->{"pricegroup_$i"} = "$ref->{pricegroup}--$ref->{gid}" if $ref->{gid};
+
+ for (qw(validfrom validto pricebreak customerprice customercurr)) { $form->{"${_}_$i"} = $ref->{$_} }
+
+ $i++;
+
+ }
+ $form->{customer_rows} = $i - 1;
+ delete $form->{customermatrix};
+
+}
+
+
+
+sub form_header {
+
+ if ($form->{lastcost} > 0) {
+ $markup = $form->round_amount((($form->{sellprice}/$form->{lastcost} - 1) * 100), 1);
+ $form->{markup} = $form->format_amount(\%myconfig, $markup, 1);
+ }
+
+ ($dec) = ($form->{sellprice} =~ /\.(\d+)/);
+ $dec = length $dec;
+ $decimalplaces = ($dec > 2) ? $dec : 2;
+
+ for (qw(listprice sellprice)) { $form->{$_} = $form->format_amount(\%myconfig, $form->{$_}, $decimalplaces) }
+
+ ($dec) = ($form->{lastcost} =~ /\.(\d+)/);
+ $dec = length $dec;
+ $decimalplaces = ($dec > 2) ? $dec : 2;
+
+ for (qw(lastcost avgcost)) { $form->{$_} = $form->format_amount(\%myconfig, $form->{$_}, $decimalplaces) }
+
+ for (qw(weight rop stock)) { $form->{$_} = $form->format_amount(\%myconfig, $form->{$_}) }
+
+ for (qw(partnumber description unit notes)) { $form->{$_} = $form->quote($form->{$_}) }
+
+ if (($rows = $form->numtextrows($form->{notes}, 40)) < 2) {
+ $rows = 2;
+ }
+
+ $notes = qq|<textarea name=notes rows=$rows cols=40 wrap=soft>$form->{notes}</textarea>|;
+
+ if (($rows = $form->numtextrows($form->{description}, 40)) > 1) {
+ $description = qq|<textarea name="description" rows=$rows cols=40 wrap=soft>$form->{description}</textarea>|;
+ } else {
+ $description = qq|<input name=description size=40 value="$form->{description}">|;
+ }
+
+ for (split / /, $form->{taxaccounts}) { $form->{"IC_tax_$_"} = ($form->{"IC_tax_$_"}) ? "checked" : "" }
+
+ $form->{selectIC_inventory} = $form->{selectIC};
+
+ # set option
+ for (qw(IC_inventory IC_income IC_expense)) {
+ if ($form->{$_}) {
+ if ($form->{orphaned}) {
+ $form->{"select$_"} =~ s/ selected//;
+ $form->{"select$_"} =~ s/option>\Q$form->{$_}\E/option selected>$form->{$_}/;
+ } else {
+ $form->{"select$_"} = qq|<option selected>$form->{$_}|;
+ }
+ }
+ }
+
+ if ($form->{selectpartsgroup}) {
+ $form->{selectpartsgroup} = $form->unescape($form->{selectpartsgroup});
+
+ $partsgroup = qq|<input type=hidden name=selectpartsgroup value="|.$form->escape($form->{selectpartsgroup},1).qq|">|;
+
+ $form->{partsgroup} = $form->quote($form->{partsgroup});
+ $form->{selectpartsgroup} =~ s/(<option value="\Q$form->{partsgroup}\E")/$1 selected/;
+
+ $partsgroup .= qq|\n<select name=partsgroup>$form->{selectpartsgroup}</select>|;
+ $group = $locale->text('Group');
+ }
+
+ # tax fields
+ foreach $item (split / /, $form->{taxaccounts}) {
+ $tax .= qq|
+ <input class=checkbox type=checkbox name="IC_tax_$item" value=1 $form->{"IC_tax_$item"}>&nbsp;<b>$form->{"IC_tax_${item}_description"}</b>
+ <br><input type=hidden name=IC_tax_${item}_description value="$form->{"IC_tax_${item}_description"}">
+|;
+ }
+
+
+ $sellprice = qq|
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('Sell Price').qq|</th>
+ <td><input name=sellprice size=11 value=$form->{sellprice}></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('List Price').qq|</th>
+ <td><input name=listprice size=11 value=$form->{listprice}></td>
+ </tr>
+|;
+
+ $avgcost = qq|
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('Average Cost').qq|</th>
+ <td><input type=hidden name=avgcost value=$form->{avgcost}>$form->{avgcost}</td>
+ </tr>
+|;
+
+ $lastcost = qq|
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('Last Cost').qq|</th>
+ <td><input name=lastcost size=11 value=$form->{lastcost}></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('Markup').qq| %</th>
+ <td><input name=markup size=5 value=$form->{markup}></td>
+ <input type=hidden name=oldmarkup value=$markup>
+ </tr>
+|;
+
+
+ if ($form->{item} =~ /(part|assembly)/) {
+ $n = ($form->{onhand} > 0) ? "1" : "0";
+ $onhand = qq|
+ <tr>
+ <th align="right" nowrap>|.$locale->text('On Hand').qq|</th>
+ <th align=left nowrap class="plus$n">&nbsp;|.$form->format_amount(\%myconfig, $form->{onhand}).qq|</th>
+ </tr>
+|;
+
+ $rop = qq|
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('ROP').qq|</th>
+ <td><input name=rop size=10 value=$form->{rop}></td>
+ </tr>
+|;
+
+ $bin = qq|
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('Bin').qq|</th>
+ <td><input name=bin size=10 value="$form->{bin}"></td>
+ </tr>
+|;
+
+ $imagelinks = qq|
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Image').qq|</th>
+ <td><input name=image size=40 value="$form->{image}"></td>
+ <th align=right nowrap>|.$locale->text('Microfiche').qq|</th>
+ <td><input name=microfiche size=20 value="$form->{microfiche}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Drawing').qq|</th>
+ <td><input name=drawing size=40 value="$form->{drawing}"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+|;
+ }
+
+
+ if ($form->{item} eq "part") {
+
+ $linkaccounts = qq|
+ <tr>
+ <th align=right>|.$locale->text('Inventory').qq|</th>
+ <td><select name=IC_inventory>$form->{selectIC_inventory}</select></td>
+ <input name=selectIC type=hidden value="$form->{selectIC}">
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Income').qq|</th>
+ <td><select name=IC_income>$form->{selectIC_income}</select></td>
+ <input name=selectIC_income type=hidden value="$form->{selectIC_income}">
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('COGS').qq|</th>
+ <td><select name=IC_expense>$form->{selectIC_expense}</select></td>
+ <input name=selectIC_expense type=hidden value="$form->{selectIC_expense}">
+ </tr>
+|;
+
+ if ($tax) {
+ $linkaccounts .= qq|
+ <tr>
+ <th align=right>|.$locale->text('Tax').qq|</th>
+ <td>$tax</td>
+ </tr>
+|;
+ }
+
+ $weight = qq|
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('Weight').qq|</th>
+ <td>
+ <table>
+ <tr>
+ <td>
+ <input name=weight size=10 value=$form->{weight}>
+ </td>
+ <th>
+ &nbsp;
+ $form->{weightunit}
+ <input type=hidden name=weightunit value=$form->{weightunit}>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+|;
+
+ }
+
+
+ if ($form->{item} eq "assembly") {
+
+ $avgcost = "";
+
+ if ($form->{project_id}) {
+ $weight = qq|
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('Weight').qq|</th>
+ <td>
+ <table>
+ <tr>
+ <td>
+ <input name=weight size=10 value=$form->{weight}>
+ </td>
+ <th>
+ &nbsp;
+ $form->{weightunit}
+ <input type=hidden name=weightunit value=$form->{weightunit}>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+|;
+ } else {
+
+ $weight = qq|
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('Weight').qq|</th>
+ <td>
+ <table>
+ <tr>
+ <td>
+ &nbsp;$form->{weight}
+ <input type=hidden name=weight value=$form->{weight}>
+ </td>
+ <th>
+ &nbsp;
+ $form->{weightunit}
+ <input type=hidden name=weightunit value=$form->{weightunit}>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+|;
+ }
+
+
+ if ($form->{project_id}) {
+ $lastcost = "";
+ $avgcost = "";
+ $onhand = "";
+ $rop = "";
+ $form->{isassemblyitem} = 1;
+
+ } else {
+ $stock = qq|
+ <tr>
+ <th align="right" nowrap>|.$locale->text('Stock').qq|</th>
+ <td><input name=stock size=10 value=$form->{stock}></td>
+ </tr>
+|;
+
+ $lastcost = qq|
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('Last Cost').qq|</th>
+ <td><input type=hidden name=lastcost value=$form->{lastcost}>$form->{lastcost}</td>
+ </tr>
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('Markup').qq| %</th>
+ <td><input name=markup size=5 value=$form->{markup}></td>
+ <input type=hidden name=oldmarkup value=$markup>
+ </tr>
+|;
+
+ }
+
+ $linkaccounts = qq|
+ <tr>
+ <th align=right>|.$locale->text('Income').qq|</th>
+ <td><select name=IC_income>$form->{selectIC_income}</select></td>
+ <input name=selectIC_income type=hidden value="$form->{selectIC_income}">
+ </tr>
+|;
+
+ if ($tax) {
+ $linkaccounts .= qq|
+ <tr>
+ <th align=right>|.$locale->text('Tax').qq|</th>
+ <td>$tax</td>
+ </tr>
+|;
+ }
+
+ }
+
+
+ if ($form->{item} eq "service") {
+ $avgcost = "";
+ $linkaccounts = qq|
+ <tr>
+ <th align=right>|.$locale->text('Income').qq|</th>
+ <td><select name=IC_income>$form->{selectIC_income}</select></td>
+ <input name=selectIC_income type=hidden value="$form->{selectIC_income}">
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Expense').qq|</th>
+ <td><select name=IC_expense>$form->{selectIC_expense}</select></td>
+ <input name=selectIC_expense type=hidden value="$form->{selectIC_expense}">
+ </tr>
+|;
+
+ if ($tax) {
+ $linkaccounts .= qq|
+ <tr>
+ <th align=right>|.$locale->text('Tax').qq|</th>
+ <td>$tax</td>
+ </tr>
+|;
+ }
+
+ }
+
+ if ($form->{item} eq 'labor') {
+ $avgcost = "";
+
+ $n = ($form->{onhand} > 0) ? "1" : "0";
+ $onhand = qq|
+ <tr>
+ <th align="right" nowrap>|.$locale->text('On Hand').qq|</th>
+ <th align=left nowrap class="plus$n">&nbsp;|.$form->format_amount(\%myconfig, $form->{onhand}).qq|</th>
+ </tr>
+|;
+
+ $linkaccounts = qq|
+ <tr>
+ <th align=right>|.$locale->text('Labor/Overhead').qq|</th>
+ <td><select name=IC_inventory>$form->{selectIC_inventory}</select></td>
+ <input name=selectIC type=hidden value="$form->{selectIC}">
+ </tr>
+
+ <tr>
+ <th align=right>|.$locale->text('COGS').qq|</th>
+ <td><select name=IC_expense>$form->{selectIC_expense}</select></td>
+ <input name=selectIC_expense type=hidden value="$form->{selectIC_expense}">
+ </tr>
+|;
+
+ }
+
+ if ($form->{id}) {
+ $checked = ($form->{obsolete}) ? "checked" : "";
+ $obsolete = qq|
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('Obsolete').qq|</th>
+ <td><input name=obsolete type=checkbox class=checkbox value=1 $checked></td>
+ </tr>
+|;
+ $obsolete = "<input type=hidden name=obsolete value=$form->{obsolete}>" if $form->{project_id};
+ }
+
+
+# type=submit $locale->text('Edit Part')
+# type=submit $locale->text('Edit Service')
+# type=submit $locale->text('Edit Assembly')
+
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action="$form->{script}">
+|;
+
+ $form->hide_form(qw(id item title makemodel alternate onhand orphaned taxaccounts rowcount baseassembly project_id));
+
+ print qq|
+<table width="100%">
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width="100%">
+ <tr valign=top>
+ <th align=left>|.$locale->text('Number').qq|</th>
+ <th align=left>|.$locale->text('Description').qq|</th>
+ <th align=left>$group</th>
+ </tr>
+ <tr valign=top>
+ <td><input name=partnumber value="$form->{partnumber}" size=20></td>
+ <td>$description</td>
+ <td>$partsgroup</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table width="100%" height="100%">
+ <tr valign=top>
+ <td width=70%>
+ <table width="100%" height="100%">
+ <tr class="listheading">
+ <th class="listheading" align="center" colspan=2>|.$locale->text('Link Accounts').qq|</th>
+ </tr>
+ $linkaccounts
+ <tr>
+ <th align="left">|.$locale->text('Notes').qq|</th>
+ </tr>
+ <tr>
+ <td colspan=2>
+ $notes
+ </td>
+ </tr>
+ </table>
+ </td>
+ <td width="30%">
+ <table width="100%">
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('Updated').qq|</th>
+ <td><input name=priceupdate size=11 title="$myconfig{dateformat}" value=$form->{priceupdate}></td>
+ </tr>
+ $sellprice
+ $lastcost
+ $avgcost
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('Unit').qq|</th>
+ <td><input name=unit size=5 value="$form->{unit}"></td>
+ </tr>
+ $weight
+ $onhand
+ $stock
+ $rop
+ $bin
+ $obsolete
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ $imagelinks
+|;
+}
+
+
+sub form_footer {
+
+ print qq|
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+ $form->hide_form(qw(customer_rows));
+
+ if ($form->{item} =~ /(part|assembly)/) {
+ $form->hide_form(qw(makemodel_rows));
+ }
+
+ if ($form->{item} =~ /(part|service)/) {
+ $form->hide_form(qw(vendor_rows));
+ }
+
+# type=submit $locale->text('Update')
+# type=submit $locale->text('Save')
+# type=submit $locale->text('Save as new')
+# type=submit $locale->text('Delete')
+
+ if (! $form->{readonly}) {
+
+ %button = ('Update' => { ndx => 1, key => 'U', value => $locale->text('Update') },
+ 'Save' => { ndx => 3, key => 'S', value => $locale->text('Save') },
+ );
+
+ if ($form->{id}) {
+
+ if (!$form->{isassemblyitem}) {
+ $button{'Save as new'} = { ndx => 7, key => 'N', value => $locale->text('Save as new') };
+ }
+
+ if ($form->{orphaned}) {
+ $button{'Delete'} = { ndx => 16, key => 'D', value => $locale->text('Delete') };
+ }
+ }
+
+ for (sort { $button{$a}->{ndx} <=> $button{$b}->{ndx} } keys %button) { $form->print_button(\%button, $_) }
+
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ &assembly_row(++$form->{assembly_rows}) if $form->{item} eq 'assembly';
+
+ $form->hide_form(qw(login path sessionid callback previousform isassemblyitem));
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub search {
+
+ $form->get_partsgroup(\%myconfig, { searchitems => $form->{searchitems}});
+
+ IC->get_warehouses(\%myconfig, \%$form) unless $form->{searchitems} =~ /(service|labor)/;
+
+ if (@{ $form->{all_partsgroup} }) {
+ $partsgroup = qq|<option>\n|;
+
+ for (@{ $form->{all_partsgroup} }) { $partsgroup .= qq|<option value="|.$form->quote($_->{partsgroup}).qq|--$_->{id}">$_->{partsgroup}\n| }
+
+ $partsgroup = qq|
+ <th align=right nowrap>|.$locale->text('Group').qq|</th>
+ <td><select name=partsgroup>$partsgroup</select></td>
+|;
+
+ $l_partsgroup = qq|<input name=l_partsgroup class=checkbox type=checkbox value=Y> |.$locale->text('Group');
+ }
+
+ $l_listprice = qq|<input name=l_listprice class=checkbox type=checkbox value=Y> |.$locale->text('List Price');
+ $l_sellprice = qq|<input name=l_sellprice class=checkbox type=checkbox value=Y checked> |.$locale->text('Sell Price');
+ $l_lastcost = qq|<input name=l_lastcost class=checkbox type=checkbox value=Y checked> |.$locale->text('Last Cost');
+ $l_avgcost = qq|<input name=l_avgcost class=checkbox type=checkbox value=Y checked> |.$locale->text('Average Cost');
+ $l_linetotal = qq|<input name=l_linetotal class=checkbox type=checkbox value=Y> |.$locale->text('Line Total');
+ $l_markup = qq|<input name=l_markup class=checkbox type=checkbox value=Y> |.$locale->text('Markup');
+ $l_account = qq|<input name=l_account class=checkbox type=checkbox value=Y> |.$locale->text('Accounts');
+
+ $bought = qq|
+ <td>
+ <table>
+ <tr>
+ <td><input name=bought class=checkbox type=checkbox value=1></td>
+ <td nowrap>|.$locale->text('Vendor Invoices').qq|</td>
+ </tr>
+ <tr>
+ <td><input name=onorder class=checkbox type=checkbox value=1></td>
+ <td nowrap>|.$locale->text('Purchase Orders').qq|</td>
+ </tr>
+ <tr>
+ <td><input name=rfq class=checkbox type=checkbox value=1></td>
+ <td nowrap>|.$locale->text('RFQ').qq|</td>
+ </tr>
+ </table>
+ </td>
+|;
+
+ $sold = qq|
+ <td>
+ <table>
+ <tr>
+ <td><input name=sold class=checkbox type=checkbox value=1></td>
+ <td nowrap>|.$locale->text('Sales Invoices').qq|</td>
+ </tr>
+ <tr>
+ <td><input name=ordered class=checkbox type=checkbox value=1></td>
+ <td nowrap>|.$locale->text('Sales Orders').qq|</td>
+ </tr>
+ <tr>
+ <td><input name=quoted class=checkbox type=checkbox value=1></td>
+ <td nowrap>|.$locale->text('Quotations').qq|</td>
+ </tr>
+ </table>
+ </td>
+|;
+
+ $fromto = qq|
+ <td>
+ <table>
+ <tr>
+ <td nowrap><b>|.$locale->text('From').qq|</b>
+ <input name=transdatefrom size=11 title="$myconfig{dateformat}">
+ <b>|.$locale->text('To').qq|</b>
+ <input name=transdateto size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+ <tr>
+ <td nowrap><input name=method class=radio type=radio value=accrual checked>|.$locale->text('Accrual').qq|
+ <input name=method class=radio type=radio value=cash>|.$locale->text('Cash').qq|</td>
+ </tr>
+ <tr>
+ <td nowrap>
+ <input name=open class=checkbox type=checkbox value=1 checked> |.$locale->text('Open').qq|
+ <input name=closed class=checkbox type=checkbox> |.$locale->text('Closed').qq|
+ <input name=summary type=radio class=radio value=1> |.$locale->text('Summary').qq|
+ <input name=summary type=radio class=radio value=0 checked> |.$locale->text('Detail').qq|
+ </td>
+ </tr>
+ </table>
+ </td>
+|;
+
+ $l_name = qq|<input name=l_name class=checkbox type=checkbox value=Y> |.$locale->text('Name');
+ $l_curr = qq|<input name=l_curr class=checkbox type=checkbox value=Y> |.$locale->text('Currency');
+ $l_employee = qq|<input name=l_employee class=checkbox type=checkbox value=Y> |.$locale->text('Employee');
+ $l_serialnumber = qq|<input name=l_serialnumber class=checkbox type=checkbox value=Y> |.$locale->text('Serial Number');
+
+ $serialnumber = qq|
+ <th align=right nowrap>|.$locale->text('Serial Number').qq|</th>
+ <td><input name=serialnumber size=20></td>
+|;
+
+ $orphaned = qq|
+ <input name=itemstatus class=radio type=radio value=orphaned>&nbsp;|.$locale->text('Orphaned');
+
+ if ($form->{searchitems} =~ /(all|part|assembly)/) {
+
+ $onhand = qq|
+ <input name=itemstatus class=radio type=radio value=onhand>&nbsp;|.$locale->text('On Hand').qq|
+ <input name=itemstatus class=radio type=radio value=short>&nbsp;|.$locale->text('Short').qq|
+|;
+
+ $makemodel = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Make').qq|</th>
+ <td><input name=make size=20></td>
+ <th align=right nowrap>|.$locale->text('Model').qq|</th>
+ <td><input name=model size=20></td>
+ </tr>
+|;
+
+ $l_make = qq|<input name=l_make class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Make');
+ $l_model = qq|<input name=l_model class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Model');
+
+ $l_bin = qq|<input name=l_bin class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Bin');
+
+ $l_rop = qq|<input name=l_rop class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('ROP');
+
+ $l_weight = qq|<input name=l_weight class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Weight');
+
+
+ if (@{ $form->{all_warehouse} }) {
+ $selectwarehouse = "<option>\n";
+
+ for (@{ $form->{all_warehouse} }) { $selectwarehouse .= qq|<option value="$_->{description}--$_->{id}">$_->{description}\n| }
+
+ $warehouse = qq|
+ <th align=right nowrap>|.$locale->text('Warehouse').qq|</th>
+ <td><select name=warehouse>$selectwarehouse</select></td>
+|;
+
+ $l_warehouse = qq|<input name=l_warehouse class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Warehouse');
+
+ }
+
+ $drawing = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Drawing').qq|</th>
+ <td><input name=drawing size=20></td>
+ <th align=right nowrap>|.$locale->text('Microfiche').qq|</th>
+ <td><input name=microfiche size=20></td>
+ </tr>
+|;
+
+ $l_image = qq|<input name=l_image class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Image');
+
+ $l_drawing = qq|<input name=l_drawing class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Drawing');
+ $l_microfiche = qq|<input name=l_microfiche class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Microfiche');
+
+ }
+
+ if ($form->{searchitems} eq 'assembly') {
+
+ $bought = "";
+
+ $toplevel = qq|
+ <tr>
+ <td></td>
+ <td colspan=3>
+ <input name=null class=radio type=radio checked>&nbsp;|.$locale->text('Top Level').qq|
+ <input name=individual class=checkbox type=checkbox value=1>&nbsp;|.$locale->text('Individual Items').qq|
+ </td>
+ </tr>
+|;
+ $bom = qq|<input name=itemstatus type=radio value=bom>&nbsp;|.$locale->text('BOM');
+
+ } elsif ($form->{searchitems} eq 'component') {
+
+ $bought = "";
+ $sold = "";
+ $fromto = "";
+ $l_name = "";
+ $l_curr = "";
+ $l_employee = "";
+ $l_serialnumber = "";
+
+ $warehouse = "";
+ $serialnumber = "";
+ $orphaned = "";
+ $l_warehouse = "";
+ $l_account = "";
+
+ } elsif ($form->{searchitems} eq 'labor') {
+
+ $sold = "";
+
+ $warehouse = "";
+ $serialnumber = "";
+ $l_avgcost = "";
+
+ }
+
+
+ @a = ();
+ push @a, qq|<input name=l_runningnumber class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('No.');
+ push @a, qq|<input name=l_partnumber class=checkbox type=checkbox value=Y checked>&nbsp;|.$locale->text('Number');
+ push @a, qq|<input name=l_description class=checkbox type=checkbox value=Y checked>&nbsp;|.$locale->text('Description');
+ push @a, qq|<input name=l_qty class=checkbox type=checkbox value=Y checked>&nbsp;|.$locale->text('Qty');
+ push @a, qq|<input name=l_unit class=checkbox type=checkbox value=Y checked>&nbsp;|.$locale->text('Unit');
+ push @a, qq|<input name=l_priceupdate class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Updated');
+ push @a, $l_partsgroup if $l_partsgroup;
+ push @a, $l_listprice if $l_listprice;
+ push @a, $l_sellprice if $l_sellprice;
+ push @a, $l_lastcost if $l_lastcost;
+ push @a, $l_avgcost if $l_avgcost;
+ push @a, $l_linetotal if $l_linetotal;
+ push @a, $l_markup if $l_markup;
+ push @a, $l_bin if $l_bin;
+ push @a, $l_rop if $l_rop;
+ push @a, $l_weight if $l_weight;
+ push @a, qq|<input name=l_notes class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Notes');
+ push @a, $l_image if $l_image;
+ push @a, $l_drawing if $l_drawing;
+ push @a, $l_microfiche if $l_microfiche;
+ push @a, $l_make if $l_make;
+ push @a, $l_model if $l_model;
+ push @a, $l_warehouse if $l_warehouse;
+ push @a, $l_account if $l_account;
+ push @a, $l_name if $l_name;
+ push @a, $l_curr if $l_curr;
+ push @a, $l_employee if $l_employee;
+ push @a, $l_serialnumber if $l_serialnumber;
+
+ %title = ( all => 'Items',
+ part => 'Parts',
+ labor => 'Labor/Overhead',
+ service => 'Services',
+ assembly => 'Assemblies',
+ component => 'Components'
+ );
+
+# $locale->text('Items')
+# $locale->text('Parts')
+# $locale->text('Labor/Overhead')
+# $locale->text('Services')
+# $locale->text('Assemblies')
+# $locale->text('Components')
+
+ $form->{title} = $locale->text($title{$form->{searchitems}});
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+|;
+
+ $form->hide_form(qw(searchitems title));
+
+ print qq|
+
+<table width="100%">
+ <tr><th class=listtop>$form->{title}</th></tr>
+ <tr height="5"></tr>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Number').qq|</th>
+ <td><input name=partnumber size=20></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Description').qq|</th>
+ <td colspan=3><input name=description size=40></td>
+ </tr>
+ <tr>
+ $warehouse
+ </tr>
+ <tr>
+ $partsgroup
+ $serialnumber
+ </tr>
+ $makemodel
+ $drawing
+ $toplevel
+ <tr>
+ <td></td>
+ <td colspan=3>
+ <input name=itemstatus class=radio type=radio value=active checked>&nbsp;|.$locale->text('Active').qq|
+ $onhand
+ <input name=itemstatus class=radio type=radio value=obsolete>&nbsp;|.$locale->text('Obsolete').qq|
+ $orphaned
+ $bom
+ </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan=3>
+ <hr size=1 noshade>
+ </td>
+ </tr>
+ <tr>
+ <td></td>
+ $bought
+ $sold
+ $fromto
+ <tr>
+ <td></td>
+ <td colspan=3>
+ <hr size=1 noshade>
+ </td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Include in Report').qq|</th>
+ <td colspan=3>
+ <table>
+ <tr>
+|;
+
+ while (@a) {
+ for (1 .. 5) {
+ print qq|<td nowrap>|. shift @a;
+ print qq|</td>\n|;
+ }
+ print qq|</tr>\n|;
+ }
+
+ print qq|
+ </tr>
+ <tr>
+ <td><input name=l_subtotal class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Subtotal').qq|</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr><td colspan=4><hr size=3 noshade></td></tr>
+</table>
+
+<input type=hidden name=nextsub value=generate_report>
+
+<br>
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">|;
+
+ $form->hide_form(qw(path login sessionid));
+
+ print qq|
+</form>
+|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+</body>
+</html>
+|;
+
+}
+
+
+
+sub generate_report {
+
+ # setup $form->{sort}
+ unless ($form->{sort}) {
+ if ($form->{description} && !($form->{partnumber})) {
+ $form->{sort} = "description";
+ } else {
+ $form->{sort} = "partnumber";
+ }
+ }
+
+ if ($form->{itemstatus} eq 'bom') {
+ $form->{l_perassembly} = "Y" if $form->{l_qty} eq "Y";
+ $form->{individual} = 1;
+ $form->{title} = $locale->text('BOM');
+ }
+
+ $callback = "$form->{script}?action=generate_report";
+ for (qw(path login sessionid searchitems itemstatus individual bom l_linetotal method)) { $callback .= qq|&$_=$form->{$_}| }
+ for (qw(warehouse partsgroup title)) { $callback .= qq|&$_=|.$form->escape($form->{$_},1) }
+
+ # if we have a serialnumber limit search
+ if ($form->{serialnumber} || $form->{l_serialnumber}) {
+ $form->{l_serialnumber} = "Y";
+ unless ($form->{bought} || $form->{sold} || $form->{onorder} || $form->{ordered}) {
+ if ($form->{searchitems} eq 'assembly') {
+ $form->{sold} = $form->{ordered} = 1;
+ } else {
+ $form->{bought} = $form->{sold} = $form->{onorder} = $form->{ordered} = 1;
+ }
+ }
+ }
+
+
+ if ($form->{itemstatus} eq 'active') {
+ $option .= $locale->text('Active')." : ";
+ }
+ if ($form->{itemstatus} eq 'obsolete') {
+ $form->{onhand} = $form->{short} = 0;
+
+ $form->{l_qty} = 0;
+ $form->{warehouse} = "";
+ $form->{l_warehouse} = 0;
+
+ $option .= $locale->text('Obsolete')." : ";
+ }
+ if ($form->{itemstatus} eq 'orphaned') {
+ $form->{onhand} = $form->{short} = 0;
+ $form->{bought} = $form->{sold} = 0;
+ $form->{onorder} = $form->{ordered} = 0;
+ $form->{rfq} = $form->{quoted} = 0;
+
+ $form->{l_qty} = 0;
+ $form->{warehouse} = "";
+ $form->{l_warehouse} = 0;
+
+ $form->{transdatefrom} = $form->{transdateto} = "";
+
+ $option .= $locale->text('Orphaned')." : ";
+ }
+ if ($form->{itemstatus} eq 'onhand') {
+ $option .= $locale->text('On Hand')." : ";
+ $form->{l_onhand} = "Y";
+ }
+ if ($form->{itemstatus} eq 'short') {
+ $option .= $locale->text('Short')." : ";
+ $form->{l_onhand} = "Y";
+ $form->{l_rop} = "Y" unless $form->{searchitems} eq 'labor';
+
+ $form->{warehouse} = "";
+ $form->{l_warehouse} = 0;
+ }
+
+ if ($form->{l_account}) {
+ for (qw(l_name l_curr l_employee)) { delete $form->{$_} }
+ } else {
+ $ok = 0;
+ foreach $l (qw(l_name l_curr l_employee)) {
+ if ($form->{$l}) {
+ foreach $v (qw(onorder ordered rfq quoted bought sold)) {
+ if ($form->{$v}) {
+ $ok = 1;
+ last;
+ }
+ }
+ if (!$ok) {
+ for (qw(onorder ordered rfq quoted bought sold)) { $form->{$_} = 1 }
+ }
+ last;
+ }
+ }
+ }
+
+ if ($form->{onorder}) {
+ $form->{l_ordnumber} = "Y";
+ $callback .= "&onorder=$form->{onorder}";
+ $option .= $locale->text('Purchase Order')." : ";
+ }
+ if ($form->{ordered}) {
+ $form->{l_ordnumber} = "Y";
+ $callback .= "&ordered=$form->{ordered}";
+ $option .= $locale->text('Sales Order')." : ";
+ }
+ if ($form->{rfq}) {
+ $form->{l_quonumber} = "Y";
+ $callback .= "&rfq=$form->{rfq}";
+ $option .= $locale->text('RFQ')." : ";
+ }
+ if ($form->{quoted}) {
+ $form->{l_quonumber} = "Y";
+ $callback .= "&quoted=$form->{quoted}";
+ $option .= $locale->text('Quotation')." : ";
+ }
+ if ($form->{bought}) {
+ $form->{l_invnumber} = "Y";
+ $callback .= "&bought=$form->{bought}";
+ $option .= $locale->text('Vendor Invoice')." : ";
+ }
+ if ($form->{sold}) {
+ $form->{l_invnumber} = "Y";
+ $callback .= "&sold=$form->{sold}";
+ $option .= $locale->text('Sales Invoice')." : ";
+ }
+ if ($form->{sold} || $form->{bought}) {
+ $label = ucfirst $form->{method};
+ $option .= $locale->text($label) ." : ";
+ }
+
+ if ($form->{bought} || $form->{sold} || $form->{onorder} || $form->{ordered} || $form->{rfq} || $form->{quoted}) {
+
+ # warehouse stuff is meaningless
+ $form->{warehouse} = "";
+ $form->{l_warehouse} = 0;
+
+ $form->{l_account} = "";
+
+ if ($form->{open}) {
+ $callback .= "&open=$form->{open}";
+ $option .= $locale->text('Open');
+ }
+ if ($form->{closed}) {
+ $callback .= "&closed=$form->{closed}";
+ if ($form->{open}) {
+ $option .= " : ".$locale->text('Closed');
+ } else {
+ $option .= $locale->text('Closed');
+ }
+ }
+ if ($form->{summary}) {
+ $callback .= "&summary=$form->{summary}";
+ $option .= " : ".$locale->text('Summary');
+ $form->{l_ordnumber} = "";
+ $form->{l_quonumber} = "";
+ $form->{l_invnumber} = "";
+ } else {
+ $option .= " : ".$locale->text('Detail');
+ }
+
+ if ($form->{transdatefrom}) {
+ $callback .= "&transdatefrom=$form->{transdatefrom}";
+ $option .= "\n<br>".$locale->text('From')."&nbsp;".$locale->date(\%myconfig, $form->{transdatefrom}, 1);
+ }
+ if ($form->{transdateto}) {
+ $callback .= "&transdateto=$form->{transdateto}";
+ $option .= "\n<br>".$locale->text('To')."&nbsp;".$locale->date(\%myconfig, $form->{transdateto}, 1);
+ }
+ }
+
+ if ($form->{warehouse}) {
+ ($warehouse) = split /--/, $form->{warehouse};
+ $option .= "<br>".$locale->text('Warehouse')." : $warehouse";
+ $form->{l_warehouse} = 0;
+ }
+
+ $option .= "<br>";
+
+ if ($form->{partnumber}) {
+ $callback .= "&partnumber=".$form->escape($form->{partnumber},1);
+ $option .= $locale->text('Number').qq| : $form->{partnumber}<br>|;
+ }
+ if ($form->{partsgroup}) {
+ ($partsgroup) = split /--/, $form->{partsgroup};
+ $option .= $locale->text('Group').qq| : $partsgroup<br>|;
+ }
+ if ($form->{serialnumber}) {
+ $callback .= "&serialnumber=".$form->escape($form->{serialnumber},1);
+ $option .= $locale->text('Serial Number').qq| : $form->{serialnumber}<br>|;
+ }
+ if ($form->{description}) {
+ $callback .= "&description=".$form->escape($form->{description},1);
+ $description = $form->{description};
+ $description =~ s/\r?\n/<br>/g;
+ $option .= $locale->text('Description').qq| : $form->{description}<br>|;
+ }
+ if ($form->{make}) {
+ $callback .= "&make=".$form->escape($form->{make},1);
+ $option .= $locale->text('Make').qq| : $form->{make}<br>|;
+ }
+ if ($form->{model}) {
+ $callback .= "&model=".$form->escape($form->{model},1);
+ $option .= $locale->text('Model').qq| : $form->{model}<br>|;
+ }
+ if ($form->{drawing}) {
+ $callback .= "&drawing=".$form->escape($form->{drawing},1);
+ $option .= $locale->text('Drawing').qq| : $form->{drawing}<br>|;
+ }
+ if ($form->{microfiche}) {
+ $callback .= "&microfiche=".$form->escape($form->{microfiche},1);
+ $option .= $locale->text('Microfiche').qq| : $form->{microfiche}<br>|;
+ }
+
+ if ($form->{l_markup}) {
+ $form->{l_sellprice} = "Y";
+ $form->{l_lastcostmarkup} = "Y" if $form->{l_lastcost};
+ $form->{l_avgcostmarkup} = "Y" if $form->{l_avgcost};
+ }
+
+
+ @columns = $form->sort_columns(qw(partnumber description notes assemblypartnumber partsgroup make model bin onhand perassembly rop unit listprice linetotallistprice sellprice linetotalsellprice lastcost linetotallastcost lastcostmarkup avgcost linetotalavgcost avgcostmarkup curr priceupdate weight image drawing microfiche invnumber ordnumber quonumber name employee serialnumber warehouse));
+ unshift @columns, "runningnumber";
+
+ if ($form->{l_linetotal}) {
+ $form->{l_onhand} = "Y";
+ $form->{l_linetotalsellprice} = "Y" if $form->{l_sellprice};
+ $form->{l_linetotallastcost} = "Y" if $form->{l_lastcost};
+ $form->{l_linetotalavgcost} = "Y" if $form->{l_avgcost};
+ $form->{l_linetotallistprice} = "Y" if $form->{l_listprice};
+ }
+
+ if ($form->{searchitems} eq 'service') {
+ # remove bin, weight and rop from list
+ for (qw(bin weight rop)) { $form->{"l_$_"} = "" }
+
+ $form->{l_onhand} = "";
+ # qty is irrelevant unless bought or sold
+ if ($form->{bought} || $form->{sold} || $form->{onorder} ||
+ $form->{ordered} || $form->{rfq} || $form->{quoted}) {
+ $form->{l_onhand} = "Y";
+ } else {
+ for (qw(sellprice lastcost avgcost listprice)) { $form->{"l_linetotal$_"} = "" }
+ }
+ } else {
+ $form->{l_onhand} = "Y" if $form->{l_qty};
+ }
+
+ foreach $item (@columns) {
+ if ($form->{"l_$item"} eq "Y") {
+ push @column_index, $item;
+
+ # add column to callback
+ $callback .= "&l_$item=Y";
+ }
+ }
+
+ if ($form->{l_account} eq 'Y') {
+ if ($form->{searchitems} eq 'all' || $form->{searchitems} eq 'part') {
+ push @column_index, (qw(inventory income expense tax));
+ } elsif ($form->{searchitems} eq 'service') {
+ push @column_index, (qw(income expense tax));
+ } elsif ($form->{searchitems} eq 'assembly') {
+ push @column_index, (qw(income tax));
+ } else {
+ push @column_index, (qw(inventory expense));
+ }
+
+ $callback .= "&l_account=Y";
+ }
+
+ if ($form->{l_subtotal} eq 'Y') {
+ $callback .= "&l_subtotal=Y";
+ }
+
+ IC->all_parts(\%myconfig, \%$form);
+
+ $callback .= "&direction=$form->{direction}&oldsort=$form->{oldsort}";
+
+ $href = $callback;
+
+ $form->sort_order();
+
+ $callback =~ s/(direction=).*?\&/$1$form->{direction}\&/;
+
+ if ($form->{searchitems} eq 'assembly') {
+ if ($form->{l_partnumber}) {
+ # replace partnumber with partnumber_
+ $ndx = 0;
+ foreach $item (@column_index) {
+ $ndx++;
+ last if $item eq 'partnumber';
+ }
+
+ splice @column_index, $ndx, 0, map { "partnumber_$_" } (1 .. $form->{pncol});
+ $colspan = $form->{pncol} + 1;
+ }
+ }
+
+ if ($form->{searchitems} eq 'component') {
+ if ($form->{l_partnumber}) {
+ # splice it in after the partnumber
+ $ndx = 0;
+ foreach $item (@column_index) {
+ $ndx++;
+ last if $item eq 'partnumber';
+ }
+
+ @a = splice @column_index, 0, $ndx;
+ unshift @column_index, "assemblypartnumber";
+ unshift @column_index, @a;
+ }
+ }
+
+
+ $column_header{runningnumber} = qq|<th a class=listheading>&nbsp;</th>|;
+ $column_header{partnumber} = qq|<th nowrap colspan=$colspan><a class=listheading href=$href&sort=partnumber>|.$locale->text('Number').qq|</a></th>|;
+ $column_header{description} = qq|<th nowrap><a class=listheading href=$href&sort=description>|.$locale->text('Description').qq|</a></th>|;
+ $column_header{notes} = qq|<th nowrap class=listheading>|.$locale->text('Notes').qq|</th>|;
+ $column_header{partsgroup} = qq|<th nowrap><a class=listheading href=$href&sort=partsgroup>|.$locale->text('Group').qq|</a></th>|;
+ $column_header{bin} = qq|<th><a class=listheading href=$href&sort=bin>|.$locale->text('Bin').qq|</a></th>|;
+ $column_header{priceupdate} = qq|<th nowrap><a class=listheading href=$href&sort=priceupdate>|.$locale->text('Updated').qq|</a></th>|;
+ $column_header{onhand} = qq|<th class=listheading nowrap>|.$locale->text('Qty').qq|</th>|;
+ $column_header{perassembly} = qq|<th>&nbsp;</th>|;
+ $column_header{unit} = qq|<th class=listheading nowrap>|.$locale->text('Unit').qq|</th>|;
+ $column_header{listprice} = qq|<th class=listheading nowrap>|.$locale->text('List Price').qq|</th>|;
+ $column_header{lastcost} = qq|<th class=listheading nowrap>|.$locale->text('Last Cost').qq|</th>|;
+ $column_header{avgcost} = qq|<th class=listheading nowrap>|.$locale->text('Avg Cost').qq|</th>|;
+ $column_header{rop} = qq|<th class=listheading nowrap>|.$locale->text('ROP').qq|</th>|;
+ $column_header{weight} = qq|<th class=listheading nowrap>|.$locale->text('Weight').qq|</th>|;
+ $column_header{avgcostmarkup} = qq|<th class=listheading nowrap>%</th>|;
+ $column_header{lastcostmarkup} = qq|<th class=listheading nowrap>%</th>|;
+
+ $column_header{make} = qq|<th nowrap><a class=listheading href=$href&sort=make>|.$locale->text('Make').qq|</a></th>|;
+ $column_header{model} = qq|<th nowrap><a class=listheading href=$href&sort=model>|.$locale->text('Model').qq|</a></th>|;
+
+ $column_header{invnumber} = qq|<th nowrap><a class=listheading href=$href&sort=invnumber>|.$locale->text('Invoice Number').qq|</a></th>|;
+ $column_header{ordnumber} = qq|<th nowrap><a class=listheading href=$href&sort=ordnumber>|.$locale->text('Order Number').qq|</a></th>|;
+ $column_header{quonumber} = qq|<th nowrap><a class=listheading href=$href&sort=quonumber>|.$locale->text('Quotation').qq|</a></th>|;
+
+ $column_header{name} = qq|<th nowrap><a class=listheading href=$href&sort=name>|.$locale->text('Name').qq|</a></th>|;
+
+ $column_header{employee} = qq|<th nowrap><a class=listheading href=$href&sort=employee>|.$locale->text('Employee').qq|</a></th>|;
+
+ $column_header{sellprice} = qq|<th class=listheading nowrap>|.$locale->text('Sell Price').qq|</th>|;
+
+ for (qw(sellprice lastcost avgcost listprice)) { $column_header{"linetotal$_"} = qq|<th class=listheading nowrap>|.$locale->text('Extended').qq|</th>| }
+
+ $column_header{curr} = qq|<th nowrap><a class=listheading href=$href&sort=curr>|.$locale->text('Curr').qq|</a></th>|;
+
+ $column_header{image} = qq|<th class=listheading nowrap>|.$locale->text('Image').qq|</a></th>|;
+ $column_header{drawing} = qq|<th nowrap><a class=listheading href=$href&sort=drawing>|.$locale->text('Drawing').qq|</a></th>|;
+ $column_header{microfiche} = qq|<th nowrap><a class=listheading href=$href&sort=microfiche>|.$locale->text('Microfiche').qq|</a></th>|;
+
+ $column_header{serialnumber} = qq|<th nowrap><a class=listheading href=$href&sort=serialnumber>|.$locale->text('Serial Number').qq|</a></th>|;
+
+ $column_header{assemblypartnumber} = qq|<th nowrap><a class=listheading href=$href&sort=assemblypartnumber>|.$locale->text('Assembly').qq|</a></th>|;
+
+ $column_header{warehouse} = qq|<th nowrap class=listheading>|.$locale->text('Warehouse').qq|</th>|;
+
+ $column_header{inventory} = qq|<th nowrap class=listheading>|.$locale->text('Inventory').qq|</th>|;
+ $column_header{income} = qq|<th nowrap class=listheading>|.$locale->text('Income').qq|</th>|;
+ $column_header{expense} = qq|<th nowrap class=listheading>|.$locale->text('Expense').qq|</th>|;
+ $column_header{tax} = qq|<th nowrap class=listheading>|.$locale->text('Tax').qq|</th>|;
+
+ $form->header;
+
+ $i = 1;
+ if ($form->{searchitems} eq 'part') {
+ $button{'Goods & Services--Add Part'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Add Part').qq|"> |;
+ $button{'Goods & Services--Add Part'}{order} = $i++;
+ }
+ if ($form->{searchitems} eq 'service') {
+ $button{'Goods & Services--Add Service'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Add Service').qq|"> |;
+ $button{'Goods & Services--Add Service'}{order} = $i++;
+ }
+ if ($form->{searchitems} eq 'assembly') {
+ $button{'Goods & Services--Add Assembly'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Add Assembly').qq|"> |;
+ $button{'Goods & Services--Add Assembly'}{order} = $i++;
+ }
+ if ($form->{searchitems} eq 'labor') {
+ $button{'Goods & Services--Add Labor/Overhead'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Add Labor/Overhead').qq|"> |;
+ $button{'Goods & Services--Add Labor/Overhead'}{order} = $i++;
+ }
+
+ foreach $item (split /;/, $myconfig{acs}) {
+ delete $button{$item};
+ }
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+
+ <tr><td>$option</td></tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "\n$column_header{$_}" }
+
+ print qq|
+ </tr>
+ |;
+
+
+ # add order to callback
+ $form->{callback} = $callback .= "&sort=$form->{sort}";
+
+ # escape callback for href
+ $callback = $form->escape($callback);
+
+
+ $k = $#{@{ $form->{parts} }};
+ @groupby = ($form->{sort});
+
+ if ($form->{summary}) {
+ @groupby = ();
+ for (qw(partnumber description notes partsgroup make model bin curr priceupdate image drawing microfiche invnumber ordnumber quonumber name employee serialnumber warehouse)) { $a{$_} = 1 };
+
+ for (@column_index) {
+ if ($a{$_}) {
+ push @groupby, $_;
+ }
+ }
+ push @groupby, "id";
+ }
+
+ if ($k > 0) {
+ $samegroup = "";
+ for (@groupby) { $samegroup .= $form->{parts}->[0]->{$_} }
+ }
+
+ $i = 0;
+ $n = 0;
+
+ foreach $ref (@{ $form->{parts} }) {
+
+ $ref->{exchangerate} ||= 1;
+ $ref->{discount} *= 1;
+
+ if ($form->{summary}) {
+
+ $summary{$ref->{id}}{total} += $ref->{sellprice} * $ref->{onhand};
+ $summary{$ref->{id}}{onhand} += $ref->{onhand};
+
+ if ($n < $k) {
+ $nextgroup = "";
+ for (@groupby) { $nextgroup .= $form->{parts}->[$n+1]->{$_} }
+ $n++;
+
+ $form->{parts}->[$n]->{exchangerate} ||= 1;
+
+ if ($samegroup eq $nextgroup) {
+ for (qw(exchangerate discount)) { $form->{parts}->[$n]->{$_} = ($ref->{$_} + $form->{parts}->[$n]->{$_}) / 2 }
+ next;
+ }
+ $samegroup = $nextgroup;
+ }
+
+ $ref->{onhand} = $summary{$ref->{id}}{onhand};
+ $ref->{sellprice} = ($ref->{onhand}) ? $summary{$ref->{id}}{total} / $ref->{onhand} : 0;
+
+ $summary{$ref->{id}}{total} = 0;
+ $summary{$ref->{id}}{onhand} = 0;
+
+ }
+
+ if ($form->{l_subtotal} eq 'Y' && !$ref->{assemblyitem}) {
+ if ($sameitem ne $ref->{$form->{sort}}) {
+ &parts_subtotal;
+ $sameitem = $ref->{$form->{sort}};
+ }
+ }
+
+ $i++;
+
+ if ($form->{l_curr}) {
+ if ($ref->{module} eq 'oe') {
+ $ref->{sellprice} = $ref->{sellprice} * (1 - $ref->{discount});
+ } else {
+ for (qw(sellprice listprice lastcost avgcost)) { $ref->{$_} /= $ref->{exchangerate} }
+ }
+ } else {
+ if ($ref->{module} eq 'oe') {
+ $ref->{sellprice} = $ref->{sellprice} * (1 - $ref->{discount});
+ for (qw(sellprice listprice lastcost avgcost)) { $ref->{$_} *= $ref->{exchangerate} }
+ }
+ }
+
+ if (!$form->{summary}) {
+ for (qw(sellprice listprice lastcost avgcost)) { $ref->{$_} = $form->round_amount($ref->{$_}, 2) }
+ }
+
+ if ($form->{l_markup}) {
+ $ref->{lastcostmarkup} = (($ref->{sellprice} / $ref->{lastcost}) - 1) * 100 if $ref->{lastcost} != 0;
+ $ref->{avgcostmarkup} = (($ref->{sellprice} / $ref->{avgcost}) - 1) * 100 if $ref->{avgcost} != 0;
+ }
+
+ # use this for assemblies
+ $onhand = $ref->{onhand};
+
+ for (qw(description notes)) { $ref->{$_} =~ s/\r?\n/<br>/g }
+
+ for (1 .. $form->{pncol}) { $column_data{"partnumber_$_"} = "<td>&nbsp;</td>" }
+
+ $column_data{runningnumber} = "<td align=right>$i</td>";
+ $column_data{partnumber} = "<td><a href=$form->{script}?action=edit&id=$ref->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{partnumber}&nbsp;</a></td>";
+
+ if ($ref->{assemblypartnumber}) {
+ if ($sameid eq $ref->{id}) {
+ $i--;
+ for (qw(runningnumber partnumber)) { $column_data{$_} = "<td>&nbsp;</td>" }
+ }
+ }
+
+ $column_data{assemblypartnumber} = "<td><a href=$form->{script}?action=edit&id=$ref->{assembly_id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{assemblypartnumber}&nbsp;</a></td>";
+
+ if ($ref->{assemblyitem}) {
+ $onhand = 0 if $form->{sold};
+ $ref->{income} = "";
+
+ for (qw(runningnumber partnumber)) { $column_data{$_} = "<td>&nbsp;</td>" }
+ $i--;
+
+ $column_data{"partnumber_$ref->{stagger}"} = "<td><a href=$form->{script}?action=edit&id=$ref->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{partnumber}&nbsp;</a></td>";
+
+ }
+
+ for (qw(description notes partsgroup employee curr)) { $column_data{$_} = "<td>$ref->{$_}&nbsp;</td>" }
+
+ $column_data{onhand} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{onhand}, '', "&nbsp;")."</td>";
+ $column_data{perassembly} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{perassembly}, '', "&nbsp;")."</td>";
+
+ if ($form->{summary}) {
+ $column_data{sellprice} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{sellprice}, 4, "&nbsp;") . "</td>";
+ } else {
+ $column_data{sellprice} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{sellprice}, 2, "&nbsp;") . "</td>";
+ }
+ for (qw(listprice lastcost avgcost)) { $column_data{$_} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{$_}, 2, "&nbsp;") . "</td>" }
+
+ for (qw(lastcost avgcost)) { $column_data{"${_}markup"} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{"${_}markup"}, 1, "&nbsp;")."</td>" }
+
+ if ($form->{l_linetotal}) {
+ for (qw(sellprice lastcost avgcost listprice)) { $column_data{"linetotal$_"} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{onhand} * $ref->{$_}, 2, "&nbsp;")."</td>" }
+ }
+
+ if ($ref->{assemblyitem} && $ref->{stagger} > 1) {
+ for (qw(sellprice lastcost avgcost listprice)) { $column_data{"linetotal$_"} = "<td>&nbsp;</td>" }
+ }
+
+ if (!$ref->{assemblyitem}) {
+ $totalsellprice += $onhand * $ref->{sellprice};
+ $totallastcost += $onhand * $ref->{lastcost};
+ $totalavgcost += $onhand * $ref->{avgcost};
+ $totallistprice += $onhand * $ref->{listprice};
+
+ $subtotalonhand += $onhand;
+ $subtotalsellprice += $onhand * $ref->{sellprice};
+ $subtotallastcost += $onhand * $ref->{lastcost};
+ $subtotalavgcost += $onhand * $ref->{avgcost};
+ $subtotallistprice += $onhand * $ref->{listprice};
+ }
+
+ $column_data{rop} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{rop}, '', "&nbsp;")."</td>";
+ $column_data{weight} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{weight}, '', "&nbsp;")."</td>";
+ $column_data{unit} = "<td>$ref->{unit}&nbsp;</td>";
+ $column_data{bin} = "<td>$ref->{bin}&nbsp;</td>";
+ $column_data{priceupdate} = "<td>$ref->{priceupdate}&nbsp;</td>";
+
+ $ref->{module} = 'ps' if $ref->{till};
+ $column_data{invnumber} = ($ref->{module} ne 'oe') ? "<td><a href=$ref->{module}.pl?action=edit&type=invoice&id=$ref->{trans_id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{invnumber}&nbsp;</a></td>" : "<td>$ref->{invnumber}&nbsp;</td>";
+ $column_data{ordnumber} = ($ref->{module} eq 'oe') ? "<td><a href=$ref->{module}.pl?action=edit&type=$ref->{type}&id=$ref->{trans_id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{ordnumber}&nbsp;</a></td>" : "<td>$ref->{ordnumber}&nbsp;</td>";
+ $column_data{quonumber} = ($ref->{module} eq 'oe' && !$ref->{ordnumber}) ? "<td><a href=$ref->{module}.pl?action=edit&type=$ref->{type}&id=$ref->{trans_id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{quonumber}&nbsp;</a></td>" : "<td>$ref->{quonumber}&nbsp;</td>";
+
+ $column_data{name} = "<td>$ref->{name}&nbsp;</td>";
+
+ $column_data{image} = ($ref->{image}) ? "<td><a href=$ref->{image}><img src=$ref->{image} height=32 border=0></a></td>" : "<td>&nbsp;</td>";
+ $column_data{drawing} = ($ref->{drawing}) ? "<td><a href=$ref->{drawing}>$ref->{drawing}</a></td>" : "<td>&nbsp;</td>";
+ $column_data{microfiche} = ($ref->{microfiche}) ? "<td><a href=$ref->{microfiche}>$ref->{microfiche}</a></td>" : "<td>&nbsp;</td>";
+
+ for (qw(make model serialnumber warehouse inventory income expense tax)) { $column_data{$_} = "<td>$ref->{$_}&nbsp;</td>" }
+
+ $j++; $j %= 2;
+ print "<tr class=listrow$j>";
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ $sameid = $ref->{id};
+
+ }
+
+
+ if ($form->{l_subtotal} eq 'Y') {
+ &parts_subtotal;
+ }
+
+ if ($form->{"l_linetotal"}) {
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+ $column_data{linetotalsellprice} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totalsellprice, 2, "&nbsp;")."</th>";
+ $column_data{linetotallastcost} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totallastcost, 2, "&nbsp;")."</th>";
+ $column_data{linetotalavgcost} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totalavgcost, 2, "&nbsp;")."</th>";
+ $column_data{linetotallistprice} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totallistprice, 2, "&nbsp;")."</th>";
+
+ print "<tr class=listtotal>";
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|</tr>
+ |;
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr><td><hr size=3 noshade></td></tr>
+</table>
+
+|;
+
+ print qq|
+
+<br>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=item value=$form->{searchitems}>
+|;
+
+ $form->hide_form(qw(callback path login sessionid));
+
+ foreach $item (sort { $a->{order} <=> $b->{order} } %button) {
+ print $item->{code};
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub parts_subtotal {
+
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+ $subtotalonhand = 0 if ($form->{searchitems} eq 'assembly' && $form->{individual});
+
+ $column_data{onhand} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotalonhand, '', "&nbsp;")."</th>";
+
+ $column_data{linetotalsellprice} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotalsellprice, 2, "&nbsp;")."</th>";
+ $column_data{linetotallistprice} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotallistprice, 2, "&nbsp;")."</th>";
+ $column_data{linetotallastcost} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotallastcost, 2, "&nbsp;")."</th>";
+ $column_data{linetotalavgcost} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotalavgcost, 2, "&nbsp;")."</th>";
+
+ $subtotalonhand = 0;
+ $subtotalsellprice = 0;
+ $subtotallistprice = 0;
+ $subtotallastcost = 0;
+ $subtotalavgcost = 0;
+
+ print "<tr class=listsubtotal>";
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+}
+
+
+sub requirements {
+
+ $form->get_partsgroup(\%myconfig, { searchitems => 'parts'});
+ $form->all_years(\%myconfig);
+
+ if (@{ $form->{all_partsgroup} }) {
+ $partsgroup = qq|<option>\n|;
+
+ for (@{ $form->{all_partsgroup} }) { $partsgroup .= qq|<option value="|.$form->quote($_->{partsgroup}).qq|--$_->{id}">$_->{partsgroup}\n| }
+
+ $partsgroup = qq|
+ <th align=right nowrap>|.$locale->text('Group').qq|</th>
+ <td><select name=partsgroup>$partsgroup</select></td>
+|;
+
+ $l_partsgroup = qq|<input name=l_partsgroup class=checkbox type=checkbox value=Y> |.$locale->text('Group');
+ }
+
+ if (@{ $form->{all_years} }) {
+ # accounting years
+ $form->{selectaccountingyear} = qq|<option>\n|;
+ for (@{ $form->{all_years} }) { $form->{selectaccountingyear} .= qq|<option>$_\n| }
+
+
+ $selectfrom = qq|
+ <tr>
+ <th align=right>|.$locale->text('Period').qq|</th>
+ <td colspan=3>
+ <table>
+ <tr>
+ <td>
+ <select name=year>$form->{selectaccountingyear}</select>
+ </td>
+ <td>
+|;
+
+ $selectfrom .= qq|
+ <table>
+ <tr>
+|;
+
+ for (sort keys %{ $form->{all_month} }) {
+ $i = ($_ * 1) - 1;
+ if (($i % 3) == 0) {
+ $selectfrom .= qq|
+ </tr>
+ <tr>
+|;
+ }
+
+ $i = $_ * 1;
+
+ $selectfrom .= qq|
+ <td nowrap><input name="l_month_$i" class checkbox type=checkbox value=Y>&nbsp;|.$locale->text($form->{all_month}{$_}).qq|</td>\n|;
+ }
+
+ $selectfrom .= qq|
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+|;
+ } else {
+ $form->error($locale->text('No History!'));
+ }
+
+ $form->{title} = $locale->text('Parts Requirements');
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+|;
+
+ print qq|
+
+<table width="100%">
+
+ <tr><th class=listtop>$form->{title}</th></tr>
+ <tr height="5"></tr>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Number').qq|</th>
+ <td><input name=partnumber size=20></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Description').qq|</th>
+ <td colspan=3><input name=description size=40></td>
+ </tr>
+ <tr>
+ $partsgroup
+ </tr>
+ $selectfrom
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<input type=hidden name=nextsub value=requirements_report>
+<input type=hidden name=sort value=partnumber>
+
+<br>
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">|;
+
+ $form->hide_form(qw(path login sessionid));
+
+ print qq|
+</form>
+|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+</body>
+</html>
+|;
+
+}
+
+
+
+sub requirements_report {
+
+ $callback = "$form->{script}?action=requirements_report";
+ for (qw(path login sessionid year)) { $callback .= qq|&$_=$form->{$_}| }
+ for (qw(partsgroup)) { $callback .= qq|&$_=|.$form->escape($form->{$_},1) }
+
+ if ($form->{partnumber}) {
+ $callback .= "&partnumber=".$form->escape($form->{partnumber},1);
+ $option .= $locale->text('Number').qq| : $form->{partnumber}<br>|;
+ }
+ if ($form->{partsgroup}) {
+ ($partsgroup) = split /--/, $form->{partsgroup};
+ $option .= $locale->text('Group').qq| : $partsgroup<br>|;
+ }
+ if ($form->{description}) {
+ $callback .= "&description=".$form->escape($form->{description},1);
+ $description = $form->{description};
+ $description =~ s/\r?\n/<br>/g;
+ $option .= $locale->text('Description').qq| : $form->{description}<br>|;
+ }
+
+
+ @column_index = $form->sort_columns(qw(partnumber description));
+ unshift @column_index, "runningnumber";
+
+ for (1 .. 12) {
+ if ($form->{"l_month_$_"}) {
+ $callback .= qq|&l_month_$_=$form->{"l_month_$_"}|;
+ push @column_index, $_;
+ $month{$_} = 1;
+ }
+ }
+
+ push @column_index, "year" unless %month;
+ push @column_index, qw(onhand so po order);
+
+ IC->requirements(\%myconfig, \%$form);
+
+ $form->sort_order();
+
+ $callback .= "&direction=$form->{direction}&oldsort=$form->{oldsort}";
+
+ $href = $callback;
+
+ $callback =~ s/(direction=).*?\&/$1$form->{direction}\&/;
+
+ if (%month) {
+ $option .= $locale->text('Year').qq| : $form->{year}<br>|;
+ }
+
+
+ $column_header{runningnumber} = qq|<th a class=listheading>&nbsp;</th>|;
+ $column_header{partnumber} = qq|<th nowrap colspan=$colspan><a class=listheading href=$href&sort=partnumber>|.$locale->text('Number').qq|</a></th>|;
+ $column_header{description} = qq|<th nowrap><a class=listheading href=$href&sort=description>|.$locale->text('Description').qq|</a></th>|;
+ $column_header{onhand} = qq|<th class=listheading nowrap>|.$locale->text('Onhand').qq|</th>|;
+ $column_header{so} = qq|<th class=listheading nowrap>|.$locale->text('SO').qq|</th>|;
+ $column_header{po} = qq|<th class=listheading nowrap>|.$locale->text('PO').qq|</th>|;
+ $column_header{order} = qq|<th class=listheading nowrap>|.$locale->text('Order').qq|</th>|;
+ $column_header{year} = qq|<th class=listheading nowrap>$form->{year}</th>|;
+
+ for (sort { $a <=> $b } keys %month) { $column_header{$_} = qq|<th class=listheading nowrap>|.$locale->text($locale->{SHORT_MONTH}[$_-1]).qq|</th>| }
+
+ $form->{title} = $locale->text('Parts Requirements');
+
+ $form->header;
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+
+ <tr><td>$option</td></tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "\n$column_header{$_}" }
+
+ print qq|
+ </tr>
+ |;
+
+
+ # add order to callback
+ $form->{callback} = $callback .= "&sort=$form->{sort}";
+
+ # escape callback for href
+ $callback = $form->escape($callback);
+
+ if (@{ $form->{parts} }) {
+ $sameid = $form->{parts}->[0]->{id};
+ }
+
+ for (keys %month) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $i = 0;
+ $qty = 0;
+ foreach $ref (@{ $form->{parts} }) {
+
+ if ($ref->{id} != $sameid) {
+
+ $i++;
+ $column_data{runningnumber} = "<td align=right>$i</td>";
+
+ $order = 0 if $order < 0;
+ $column_data{order} = "<td align=right>".$form->format_amount(\%myconfig, $order, '', "-")."</td>";
+ $j++; $j %= 2;
+ print "<tr class=listrow$j>";
+
+ for (@column_index) {
+ print "\n$column_data{$_}";
+ $column_data{$_} = "<td>&nbsp;</td>";
+ }
+
+ print qq|
+ </tr>
+|;
+ $qty = 0;
+ }
+
+
+ $ref->{description} =~ s/\r?\n/<br>/g;
+
+ $column_data{partnumber} = "<td><a href=$form->{script}?action=edit&id=$ref->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{partnumber}&nbsp;</a></td>";
+
+ $column_data{description} = "<td>$ref->{description}&nbsp;</td>";
+
+ $column_data{onhand} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{onhand}, '', "&nbsp;")."</td>";
+ $column_data{so} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{so}, '', "&nbsp;")."</td>";
+ $column_data{po} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{po}, '', "&nbsp;")."</td>";
+
+ $column_data{$ref->{month}} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{qty}, '', "&nbsp;")."</td>";
+ if (%month) {
+ $qty += $ref->{qty} if exists $month{$ref->{month}};
+ } else {
+ $qty += $ref->{qty};
+ }
+
+ $column_data{year} = "<td align=right>".$form->format_amount(\%myconfig, $qty, '', "&nbsp;")."</td>";
+
+ $order = $qty + $ref->{so} - $ref->{po} - $ref->{onhand};
+
+ $sameid = $ref->{id};
+
+ }
+
+ if (@{ $form->{parts} }) {
+ $i++;
+ $column_data{runningnumber} = "<td align=right>$i</td>";
+
+ $order = 0 if $order < 0;
+ $column_data{order} = "<td align=right>".$form->format_amount(\%myconfig, $order, '', "-")."</td>";
+ $j++; $j %= 2;
+ print "<tr class=listrow$j>";
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr><td><hr size=3 noshade></td></tr>
+</table>
+
+|;
+
+ print qq|
+
+<br>
+
+<form method=post action=$form->{script}>
+
+|;
+
+ $form->hide_form(qw(callback path login sessionid));
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub makemodel_row {
+ my ($numrows) = @_;
+
+ for (qw(make model)) { $form->{"${_}_$i"} = $form->quote($form->{"${_}_$i"}) }
+
+ print qq|
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+ <th class="listheading">|.$locale->text('Make').qq|</th>
+ <th class="listheading">|.$locale->text('Model').qq|</th>
+ </tr>
+|;
+
+ for $i (1 .. $numrows) {
+ print qq|
+ <tr>
+ <td><input name="make_$i" size=30 value="$form->{"make_$i"}"></td>
+ <td><input name="model_$i" size=30 value="$form->{"model_$i"}"></td>
+ </tr>
+|;
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+|;
+
+}
+
+
+sub vendor_row {
+ my ($numrows) = @_;
+
+ $form->{selectvendor} = $form->unescape($form->{selectvendor});
+
+ $currency = qq|
+ <th class="listheading">|.$locale->text('Curr').qq|</th>| if $form->{selectcurrency};
+
+ print qq|
+ <input type=hidden name=selectvendor value="|.$form->escape($form->{selectvendor},1).qq|">
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+ <th class="listheading">|.$locale->text('Vendor').qq|</th>
+ <th class="listheading">|.$locale->text('Number').qq|</th>
+ <th class="listheading">|.$locale->text('Cost').qq|</th>
+ $currency
+ <th class="listheading">|.$locale->text('Leadtime').qq|</th>
+ </tr>
+|;
+
+ for $i (1 .. $numrows) {
+
+ if ($form->{selectcurrency}) {
+ $form->{selectcurrency} =~ s/ selected//;
+ $form->{selectcurrency} =~ s/option>$form->{"vendorcurr_$i"}/option selected>$form->{"vendorcurr_$i"}/;
+ $currency = qq|
+ <td><select name="vendorcurr_$i">$form->{selectcurrency}</select></td>|;
+ }
+
+ if ($i == $numrows) {
+
+ $vendor = qq|
+ <td><input name="vendor_$i" size=35 value="$form->{"vendor_$i"}"></td>
+|;
+
+ if ($form->{selectvendor}) {
+ $vendor = qq|
+ <td width=99%><select name="vendor_$i">$form->{selectvendor}</select></td>
+|;
+ }
+
+ } else {
+
+ ($vendor) = split /--/, $form->{"vendor_$i"};
+ $vendor = qq|
+ <td>$vendor
+ <input type=hidden name="vendor_$i" value="$form->{"vendor_$i"}">
+ </td>
+|;
+ }
+
+ $form->{"partnumber_$i"} = $form->quote($form->{"partnumber_$i"});
+ print qq|
+ <tr>
+ $vendor
+ <td><input name="partnumber_$i" size=20 value="$form->{"partnumber_$i"}"></td>
+ <td><input name="lastcost_$i" size=10 value=|.$form->format_amount(\%myconfig, $form->{"lastcost_$i"}, 2).qq|></td>
+ $currency
+ <td nowrap><input name="leadtime_$i" size=5 value=|.$form->format_amount(\%myconfig, $form->{"leadtime_$i"}).qq|> <b>|.$locale->text('days').qq|</b></td>
+ </tr>
+|;
+
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+|;
+
+}
+
+
+sub customer_row {
+ my ($numrows) = @_;
+
+ if ($form->{selectpricegroup}) {
+ $pricegroup = qq|
+ <th class="listheading">|.$locale->text('Pricegroup').qq|
+ </th>
+|;
+ }
+
+ $form->{selectcustomer} = $form->unescape($form->{selectcustomer});
+ $form->{selectpricegroup} = $form->unescape($form->{selectpricegroup});
+
+ $form->hide_form(qw(selectcurrency));
+
+ $currency = qq|<th class="listheading">|.$locale->text('Curr').qq|</th>| if $form->{selectcurrency};
+
+ print qq|
+ <input type=hidden name=selectcustomer value="|.$form->escape($form->{selectcustomer},1).qq|">
+ <input type=hidden name=selectpricegroup value="|.$form->escape($form->{selectpricegroup},1).qq|">
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+ <th class="listheading">|.$locale->text('Customer').qq|</th>
+ $pricegroup
+ <th class="listheading">|.$locale->text('Break').qq|</th>
+ <th class="listheading">|.$locale->text('Sell Price').qq|</th>
+ $currency
+ <th class="listheading">|.$locale->text('From').qq|</th>
+ <th class="listheading">|.$locale->text('To').qq|</th>
+ </tr>
+|;
+
+ for $i (1 .. $numrows) {
+
+ if ($form->{selectcurrency}) {
+ $form->{selectcurrency} =~ s/ selected//;
+ $form->{selectcurrency} =~ s/option>$form->{"customercurr_$i"}/option selected>$form->{"customercurr_$i"}/;
+ $currency = qq|
+ <td><select name="customercurr_$i">$form->{selectcurrency}</select></td>|;
+ }
+
+ if ($i == $numrows) {
+ $customer = qq|
+ <td><input name="customer_$i" size=35 value="$form->{"customer_$i"}"></td>
+ |;
+
+ if ($form->{selectcustomer}) {
+ $customer = qq|
+ <td><select name="customer_$i">$form->{selectcustomer}</select></td>
+|;
+ }
+
+ if ($form->{selectpricegroup}) {
+ $pricegroup = qq|
+ <td><select name="pricegroup_$i">$form->{selectpricegroup}</select></td>
+|;
+ }
+
+ } else {
+ ($customer) = split /--/, $form->{"customer_$i"};
+ $customer = qq|
+ <td>$customer</td>
+ <input type=hidden name="customer_$i" value="$form->{"customer_$i"}">
+ |;
+
+ if ($form->{selectpricegroup}) {
+ ($pricegroup) = split /--/, $form->{"pricegroup_$i"};
+ $pricegroup = qq|
+ <td>$pricegroup</td>
+ <input type=hidden name="pricegroup_$i" value="$form->{"pricegroup_$i"}">
+|;
+ }
+ }
+
+
+ print qq|
+ <tr>
+ $customer
+ $pricegroup
+
+ <td><input name="pricebreak_$i" size=5 value=|.$form->format_amount(\%myconfig, $form->{"pricebreak_$i"}).qq|></td>
+ <td><input name="customerprice_$i" size=10 value=|.$form->format_amount(\%myconfig, $form->{"customerprice_$i"}, 2).qq|></td>
+ $currency
+ <td><input name="validfrom_$i" size=11 title="$myconfig{dateformat}" value="$form->{"validfrom_$i"}"></td>
+ <td><input name="validto_$i" size=11 title="$myconfig{dateformat}" value="$form->{"validto_$i"}"></td>
+ </tr>
+|;
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+|;
+
+}
+
+
+
+sub assembly_row {
+ my ($numrows) = @_;
+
+ @column_index = qw(runningnumber qty unit bom adj partnumber description sellprice listprice lastcost);
+
+ if ($form->{selectassemblypartsgroup}) {
+ $form->{selectassemblypartsgroup} = $form->unescape($form->{selectassemblypartsgroup});
+ @column_index = qw(runningnumber qty unit bom adj partnumber description partsgroup sellprice listprice lastcost);
+ }
+
+ delete $form->{previousform};
+
+ # change callback
+ $form->{old_callback} = $form->{callback};
+ $callback = $form->{callback};
+ $form->{callback} = "$form->{script}?action=display_form";
+
+ # delete action
+ for (qw(action header)) { delete $form->{$_} }
+
+ $form->{baseassembly} = 0;
+ $previousform = "";
+ # save form variables in a previousform variable
+ $form->{selectcustomer} = ""; # we seem to have run into a 40kb limit
+ foreach $key (sort keys %$form) {
+ # escape ampersands
+ $form->{$key} =~ s/&/%26/g;
+ $previousform .= qq|$key=$form->{$key}&| if $form->{$key};
+ }
+ chop $previousform;
+ $form->{previousform} = $form->escape($previousform, 1);
+
+ $form->{sellprice} = 0;
+ $form->{listprice} = 0;
+ $form->{lastcost} = 0;
+ $form->{weight} = 0;
+
+ $form->{callback} = $callback;
+
+
+ $column_header{runningnumber} = qq|<th nowrap width=5%>|.$locale->text('Item').qq|</th>|;
+ $column_header{qty} = qq|<th align=left nowrap width=10%>|.$locale->text('Qty').qq|</th>|;
+ $column_header{unit} = qq|<th align=left nowrap width=5%>|.$locale->text('Unit').qq|</th>|;
+ $column_header{partnumber} = qq|<th align=left nowrap width=20%>|.$locale->text('Number').qq|</th>|;
+ $column_header{description} = qq|<th nowrap width=50%>|.$locale->text('Description').qq|</th>|;
+ $column_header{sellprice} = qq|<th align=right nowrap>|.$locale->text('Sell').qq|</th>|;
+ $column_header{listprice} = qq|<th align=right nowrap>|.$locale->text('List').qq|</th>|;
+ $column_header{lastcost} = qq|<th align=right nowrap>|.$locale->text('Cost').qq|</th>|;
+ $column_header{bom} = qq|<th>|.$locale->text('BOM').qq|</th>|;
+ $column_header{adj} = qq|<th>|.$locale->text('A').qq|</th>|;
+ $column_header{partsgroup} = qq|<th>|.$locale->text('Group').qq|</th>|;
+
+ print qq|
+ <p>
+
+ <table width=100%>
+ <tr class=listheading>
+ <th class=listheading>|.$locale->text('Individual Items').qq|</th>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+|;
+
+ for (@column_index) { print "\n$column_header{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ $spc = ($form->{path} =~ /lynx/) ? "." : " ";
+ $numrows-- if $form->{project_id};
+
+ for $i (1 .. $numrows) {
+ for (qw(partnumber description)) { $form->{"${_}_$i"} = $form->quote($form->{"${_}_$i"}) }
+
+ $linetotalsellprice = $form->round_amount($form->{"sellprice_$i"} * $form->{"qty_$i"}, 2);
+ $form->{sellprice} += $linetotalsellprice;
+
+ $linetotallistprice = $form->round_amount($form->{"listprice_$i"} * $form->{"qty_$i"}, 2);
+ $form->{listprice} += $linetotallistprice;
+
+ $linetotallastcost = $form->round_amount($form->{"lastcost_$i"} * $form->{"qty_$i"}, 2);
+ $form->{lastcost} += $linetotallastcost;
+
+
+ $form->{"qty_$i"} = $form->format_amount(\%myconfig, $form->{"qty_$i"});
+
+ $linetotalsellprice = $form->format_amount(\%myconfig, $linetotalsellprice, 2);
+ $linetotallistprice = $form->format_amount(\%myconfig, $linetotallistprice, 2);
+ $linetotallastcost = $form->format_amount(\%myconfig, $linetotallastcost, 2);
+
+ if ($i == $numrows && !$form->{project_id}) {
+
+ for (qw(runningnumber unit bom adj)) { $column_data{$_} = qq|<td></td>| }
+
+ $column_data{qty} = qq|<td><input name="qty_$i" size=6 value="$form->{"qty_$i"}" accesskey="$i" title="[Alt-$i]"></td>|;
+ $column_data{partnumber} = qq|<td><input name="partnumber_$i" size=15 value="$form->{"partnumber_$i"}"></td>|;
+ $column_data{description} = qq|<td><input name="description_$i" size=30 value="$form->{"description_$i"}"></td>|;
+ $column_data{partsgroup} = qq|<td><select name="partsgroup_$i">$form->{selectassemblypartsgroup}</select></td>|;
+
+ } else {
+
+ $column_data{partnumber} = qq|<td><input class=submit type=submit name=action value="$spc$form->{"partnumber_$i"}"></td>
+ <input type=hidden name="partnumber_$i" value="$form->{"partnumber_$i"}">|;
+
+ $column_data{runningnumber} = qq|<td><input name="runningnumber_$i" size=3 value="$i"></td>|;
+ $column_data{qty} = qq|<td><input name="qty_$i" size=6 value="$form->{"qty_$i"}" accesskey="$i" title="[Alt-$i]"></td>|;
+
+ for (qw(bom adj)) { $form->{"${_}_$i"} = ($form->{"${_}_$i"}) ? "checked" : "" }
+ $column_data{bom} = qq|<td align=center><input name="bom_$i" type=checkbox class=checkbox value=1 $form->{"bom_$i"}></td>|;
+ $column_data{adj} = qq|<td align=center><input name="adj_$i" type=checkbox class=checkbox value=1 $form->{"adj_$i"}></td>|;
+
+ ($partsgroup) = split /--/, $form->{"partsgroup_$i"};
+ $column_data{partsgroup} = qq|<td><input type=hidden name="partsgroup_$i" value="$form->{"partsgroup_$i"}">$partsgroup</td>|;
+
+ $column_data{unit} = qq|<td><input type=hidden name="unit_$i" value="$form->{"unit_$i"}">$form->{"unit_$i"}</td>|;
+ $column_data{description} = qq|<td><input type=hidden name="description_$i" value="$form->{"description_$i"}">$form->{"description_$i"}</td>|;
+
+ }
+
+ $column_data{sellprice} = qq|<td align=right>$linetotalsellprice</td>|;
+ $column_data{listprice} = qq|<td align=right>$linetotallistprice</td>|;
+ $column_data{lastcost} = qq|<td align=right>$linetotallastcost</td>|;
+
+ print qq|
+ <tr>|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+ $form->hide_form("id_$i","sellprice_$i","listprice_$i","lastcost_$i","weight_$i","assembly_$i");
+
+ }
+
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $column_data{sellprice} = "<th align=right>".$form->format_amount(\%myconfig, $form->{sellprice}, 2)."</th>";
+ $column_data{listprice} = "<th align=right>".$form->format_amount(\%myconfig, $form->{listprice}, 2)."</th>";
+ $column_data{lastcost} = "<th align=right>".$form->format_amount(\%myconfig, $form->{lastcost}, 2)."</th>";
+
+ print qq|
+ <tr>|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+ </table>
+ <input type=hidden name=assembly_rows value=$form->{assembly_rows}>
+ <input type=hidden name=nextsub value=edit_assemblyitem>
+ <input type=hidden name=selectassemblypartsgroup value="|.$form->escape($form->{selectassemblypartsgroup},1).qq|">
+|;
+
+}
+
+
+sub edit_assemblyitem {
+
+ $pn = substr($form->{action}, 1);
+
+ $i = 0;
+ for (1 .. $form->{assembly_rows} - 1) {
+ $i++;
+ last if $form->{"partnumber_$_"} eq $pn;
+ }
+
+ $form->error($locale->text('unexpected error!')) unless $i;
+
+ $form->{baseassembly} = ($form->{baseassembly}) ? $form->{baseassembly} : $form->{"assembly_$i"};
+
+ $form->{callback} = qq|$form->{script}?action=edit&id=$form->{"id_$i"}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&rowcount=$i&baseassembly=$form->{baseassembly}&isassemblyitem=1&previousform=$form->{previousform}|;
+
+ $form->redirect;
+
+}
+
+
+sub update {
+
+ if ($form->{item} eq "assembly") {
+
+ $i = $form->{assembly_rows};
+ $i = $form->{assembly_rows} + 1 if $form->{project_id};
+
+ # if last row is empty check the form otherwise retrieve item
+ if (($form->{"partnumber_$i"} eq "") && ($form->{"description_$i"} eq "") && ($form->{"partsgroup_$i"} eq "")) {
+
+ &check_form;
+
+ } else {
+
+ IC->assembly_item(\%myconfig, \%$form);
+
+ $rows = scalar @{ $form->{item_list} };
+
+ if ($rows) {
+ $form->{"adj_$i"} = 1;
+
+ if ($rows > 1) {
+ $form->{makemodel_rows}--;
+ $form->{customer_rows}--;
+ &select_item;
+ exit;
+ } else {
+ $form->{"qty_$i"} = 1;
+ $form->{"adj_$i"} = 1;
+ for (qw(partnumber description unit)) { $form->{item_list}[$i]{$_} = $form->quote($form->{item_list}[$i]{$_}) }
+ for (keys %{ $form->{item_list}[0] }) { $form->{"${_}_$i"} = $form->{item_list}[0]{$_} }
+
+ if ($form->{item_list}[0]{partsgroup_id}) {
+ $form->{"partsgroup_$i"} = qq|$form->{item_list}[0]{partsgroup}--$form->{item_list}[0]{partsgroup_id}|;
+ }
+
+ $form->{"runningnumber_$i"} = $form->{assembly_rows};
+ $form->{assembly_rows}++;
+
+ &check_form;
+
+ }
+
+ } else {
+
+ $form->{rowcount} = $i;
+ $form->{assembly_rows}++;
+
+ &new_item;
+
+ }
+ }
+
+ } else {
+
+ &check_form;
+
+ }
+
+}
+
+
+sub check_vendor {
+
+ @flds = qw(vendor partnumber lastcost leadtime vendorcurr);
+ @a = ();
+ $count = 0;
+
+ for (qw(lastcost leadtime)) { $form->{"${_}_$form->{vendor_rows}"} = $form->parse_amount(\%myconfig, $form->{"${_}_$form->{vendor_rows}"}) }
+
+ for $i (1 .. $form->{vendor_rows} - 1) {
+
+ for (qw(lastcost leadtime)) { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) }
+
+ if ($form->{"lastcost_$i"} || $form->{"partnumber_$i"}) {
+
+ push @a, {};
+ $j = $#a;
+ for (@flds) { $a[$j]->{$_} = $form->{"${_}_$i"} }
+ $count++;
+
+ }
+ }
+
+ $i = $form->{vendor_rows};
+
+ if (!$form->{selectvendor}) {
+
+ if ($form->{"vendor_$i"} && !$form->{"vendor_id_$i"}) {
+ ($form->{vendor}) = split /--/, $form->{"vendor_$i"};
+ if (($j = $form->get_name(\%myconfig, vendor)) > 1) {
+ &select_name(vendor, $i);
+ exit;
+ }
+
+ if ($j == 1) {
+ # we got one name
+ $form->{"vendor_$i"} = qq|$form->{name_list}[0]->{name}--$form->{name_list}[0]->{id}|;
+ } else {
+ # name is not on file
+ $form->error(qq|$form->{"vendor_$i"} : |.$locale->text('Vendor not on file!'));
+ }
+ }
+ }
+
+ if ($form->{"vendor_$i"}) {
+ push @a, {};
+ $j = $#a;
+ for (@flds) { $a[$j]->{$_} = $form->{"${_}_$i"} }
+ $count++;
+ }
+
+ $form->redo_rows(\@flds, \@a, $count, $form->{vendor_rows});
+ $form->{vendor_rows} = $count;
+
+}
+
+
+sub check_customer {
+
+ @flds = qw(customer validfrom validto pricebreak customerprice pricegroup customercurr);
+ @a = ();
+ $count = 0;
+
+ for (qw(customerprice pricebreak)) { $form->{"${_}_$form->{customer_rows}"} = $form->parse_amount(\%myconfig, $form->{"${_}_$form->{customer_rows}"}) }
+
+ for $i (1 .. $form->{customer_rows} - 1) {
+
+ for (qw(customerprice pricebreak)) { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) }
+
+ if ($form->{"customerprice_$i"}) {
+ if ($form->{"pricebreak_$i"} || $form->{"customer_$i"} || $form->{"pricegroup_$i"}) {
+
+ push @a, {};
+ $j = $#a;
+ for (@flds) { $a[$j]->{$_} = $form->{"${_}_$i"} }
+ $count++;
+
+ }
+ }
+ }
+
+ $i = $form->{customer_rows};
+
+ if (!$form->{selectcustomer}) {
+
+ if ($form->{"customer_$i"} && !$form->{"customer_id_$i"}) {
+ ($form->{customer}) = split /--/, $form->{"customer_$i"};
+
+ if (($j = $form->get_name(\%myconfig, customer)) > 1) {
+ &select_name(customer, $i);
+ exit;
+ }
+
+ if ($j == 1) {
+ # we got one name
+ $form->{"customer_$i"} = qq|$form->{name_list}[0]->{name}--$form->{name_list}[0]->{id}|;
+ } else {
+ # name is not on file
+ $form->error(qq|$form->{customer} : |.$locale->text('Customer not on file!'));
+ }
+ }
+ }
+
+ if ($form->{"customer_$i"} || $form->{"pricegroup_$i"} || ($form->{"customerprice_$i"} || $form->{"pricebreak_$i"})) {
+ push @a, {};
+ $j = $#a;
+ for (@flds) { $a[$j]->{$_} = $form->{"${_}_$i"} }
+ $count++;
+ }
+
+ $form->redo_rows(\@flds, \@a, $count, $form->{customer_rows});
+ $form->{customer_rows} = $count;
+
+}
+
+
+
+sub select_name {
+ my ($table, $vr) = @_;
+
+ @column_index = qw(ndx name address);
+
+ $label = ucfirst $table;
+ $column_data{ndx} = qq|<th>&nbsp;</th>|;
+ $column_data{name} = qq|<th class=listheading>|.$locale->text($label).qq|</th>|;
+ $column_data{address} = qq|<th class=listheading colspan=5>|.$locale->text('Address').qq|</th>|;
+
+ # list items with radio button on a form
+ $form->header;
+
+ $title = $locale->text('Select from one of the names below');
+
+ print qq|
+<body>
+
+<form method=post action="$form->{script}">
+
+<input type=hidden name=vr value=$vr>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$title</th>
+ </tr>
+ <tr space=5></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ @column_index = qw(ndx name address city state zipcode country);
+
+ my $i = 0;
+ foreach $ref (@{ $form->{name_list} }) {
+ $checked = ($i++) ? "" : "checked";
+
+ $ref->{name} = $form->quote($ref->{name});
+
+ $column_data{ndx} = qq|<td><input name=ndx class=radio type=radio value=$i $checked></td>|;
+ $column_data{name} = qq|<td><input name="new_name_$i" type=hidden value="$ref->{name}">$ref->{name}</td>|;
+ $column_data{address} = qq|<td>$ref->{address1} $ref->{address2}|;
+ for (qw(city state zipcode country)) { $column_data{$_} = qq|<td>$ref->{$_}&nbsp;</td>| }
+
+ $j++; $j %= 2;
+ print qq|
+ <tr class=listrow$j>|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+
+<input name="new_id_$i" type=hidden value=$ref->{id}>
+
+|;
+
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<input name=lastndx type=hidden value=$i>
+
+|;
+
+ # delete variables
+ for (qw(action nextsub name_list)) { delete $form->{$_} }
+
+ $form->hide_form;
+
+ print qq|
+<input type=hidden name=nextsub value=name_selected>
+<input type=hidden name=vc value=$table>
+<br>
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+
+sub name_selected {
+
+ # replace the variable with the one checked
+
+ # index for new item
+ $i = $form->{ndx};
+
+ $form->{"$form->{vc}_$form->{vr}"} = qq|$form->{"new_name_$i"}--$form->{"new_id_$i"}|;
+ $form->{"$form->{vc}_id_$form->{vr}"} = $form->{"new_id_$i"};
+
+ # delete all the new_ variables
+ for $i (1 .. $form->{lastndx}) {
+ for (qw(id name)) { delete $form->{"new_${_}_$i"} }
+ }
+
+ for (qw(ndx lastndx nextsub)) { delete $form->{$_} }
+
+ &update;
+
+}
+
+
+sub save {
+
+ if ($form->{obsolete}) {
+ $form->error($locale->text("Inventory quantity must be zero before you can set this $form->{item} obsolete!")) if ($form->{onhand});
+ }
+
+# expand dynamic strings
+# $locale->text('Inventory quantity must be zero before you can set this part obsolete!')
+# $locale->text('Inventory quantity must be zero before you can set this assembly obsolete!')
+
+ $olditem = $form->{id};
+
+ # save part
+ $rc = IC->save(\%myconfig, \%$form);
+
+ $parts_id = $form->{id};
+
+ # load previous variables
+ if ($form->{previousform} && !$form->{callback}) {
+ # save the new form variables before splitting previousform
+ for (keys %$form) { $newform{$_} = $form->{$_} }
+
+ $previousform = $form->unescape($form->{previousform});
+ $baseassembly = $form->{baseassembly};
+
+ # don't trample on previous variables
+ for (keys %newform) { delete $form->{$_} }
+
+ # now take it apart and restore original values
+ foreach $item (split /&/, $previousform) {
+ ($key, $value) = split /=/, $item, 2;
+ $value =~ s/%26/&/g;
+ $form->{$key} = $value;
+ }
+
+
+ if ($form->{item} eq 'assembly') {
+
+ if ($baseassembly) {
+ #redo the assembly
+ $previousform =~ /\&id=(\d+)/;
+ $form->{id} = $1;
+
+ # restore original callback
+ $form->{callback} = $form->unescape($form->{old_callback});
+
+ &edit;
+ exit;
+ }
+
+ # undo number formatting
+ for (qw(weight listprice sellprice lastcost rop)) { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) }
+
+ $form->{assembly_rows}-- if $olditem;
+ $i = $newform{rowcount};
+ $form->{"qty_$i"} = 1 unless ($form->{"qty_$i"});
+
+ $form->{listprice} -= $form->{"listprice_$i"} * $form->{"qty_$i"};
+ $form->{sellprice} -= $form->{"sellprice_$i"} * $form->{"qty_$i"};
+ $form->{lastcost} -= $form->{"lastcost_$i"} * $form->{"qty_$i"};
+ $form->{weight} -= $form->{"weight_$i"} * $form->{"qty_$i"};
+
+ # change/add values for assembly item
+ for (qw(partnumber description bin unit weight listprice sellprice lastcost)) { $form->{"${_}_$i"} = $newform{$_} }
+
+ foreach $item (qw(listprice sellprice lastcost)) {
+ $form->{$item} += $form->{"${item}_$i"} * $form->{"qty_$i"};
+ $form->{$item} = $form->round_amount($form->{$item}, 2);
+ }
+
+ $form->{weight} += $form->{"weight_$i"} * $form->{"qty_$i"};
+
+ $form->{"adj_$i"} = 1 if !$olditem;
+
+ $form->{customer_rows}--;
+
+ } else {
+ # set values for last invoice/order item
+ $i = $form->{rowcount};
+ $form->{"qty_$i"} = 1 unless ($form->{"qty_$i"});
+
+ for (qw(partnumber description bin unit listprice sellprice partsgroup)) { $form->{"${_}_$i"} = $newform{$_} }
+ for (qw(inventory income expense)) {
+ $form->{"${_}_accno_id_$i"} = $newform{"IC_$_"};
+ $form->{"${_}_accno_id_$i"} =~ s/--.*//;
+ }
+ $form->{"sellprice_$i"} = $newform{lastcost} if ($form->{vendor_id});
+
+ if ($form->{exchangerate} != 0) {
+ $form->{"sellprice_$i"} = $form->round_amount($form->{"sellprice_$i"} / $form->{exchangerate}, 2);
+ }
+
+ for (split / /, $newform{taxaccounts}) { $form->{"taxaccounts_$i"} .= "$_ " if ($newform{"IC_tax_$_"}) }
+ chop $form->{"taxaccounts_$i"};
+
+ # credit remaining calculation
+ $amount = $form->{"sellprice_$i"} * (1 - $form->{"discount_$i"} / 100) * $form->{"qty_$i"};
+ for (split / /, $form->{"taxaccounts_$i"}) { $form->{"${_}_base"} += $amount }
+ if (!$form->{taxincluded}) {
+ for (split / /, $form->{"taxaccounts_$i"}) { $amount += ($form->{"${_}_base"} * $form->{"${_}_rate"}) }
+ }
+
+ $ml = 1;
+ if ($form->{type} =~ /invoice/) {
+ $ml = -1 if $form->{type} =~ /_invoice/;
+ }
+ $form->{creditremaining} -= ($amount * $ml);
+
+ }
+
+ $form->{"id_$i"} = $parts_id;
+ delete $form->{action};
+
+ # restore original callback
+ $callback = $form->unescape($form->{callback});
+ $form->{callback} = $form->unescape($form->{old_callback});
+ delete $form->{old_callback};
+
+ $form->{makemodel_rows}--;
+
+ # put callback together
+ foreach $key (keys %$form) {
+ # do single escape for Apache 2.0
+ $value = $form->escape($form->{$key}, 1);
+ $callback .= qq|&$key=$value|;
+ }
+ $form->{callback} = $callback;
+ }
+
+ # redirect
+ $form->redirect;
+
+}
+
+
+sub save_as_new {
+
+ $form->{id} = 0;
+ &save;
+
+}
+
+
+sub delete {
+
+ # redirect
+ if (IC->delete(\%myconfig, \%$form)) {
+ $form->redirect($locale->text('Item deleted!'));
+ } else {
+ $form->error($locale->text('Cannot delete item!'));
+ }
+
+}
+
+
+
+sub stock_assembly {
+
+ $form->{title} = $locale->text('Stock Assembly');
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width="100%">
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('Number').qq|</th>
+ <td><input name=partnumber size=20></td>
+ <td>&nbsp;</td>
+ </tr>
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('Description').qq|</th>
+ <td><input name=description size=40></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td><input name=checkinventory class=checkbox type=checkbox value=1>&nbsp;|.$locale->text('Check Inventory').qq|</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr><td><hr size=3 noshade></td></tr>
+</table>
+
+<input type=hidden name=sort value=partnumber>
+|;
+
+ $form->hide_form(qw(path login sessionid));
+
+ print qq|
+<input type=hidden name=nextsub value=list_assemblies>
+
+<br>
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">
+</form>
+|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+</body>
+</html>
+|;
+
+}
+
+
+
+
+sub list_assemblies {
+
+ IC->retrieve_assemblies(\%myconfig, \%$form);
+
+ $callback = "$form->{script}?action=list_assemblies&direction=$form->{direction}&oldsort=$form->{oldsort}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&checkinventory=$form->{checkinventory}";
+
+ $form->sort_order();
+ $href = "$form->{script}?action=list_assemblies&direction=$form->{direction}&oldsort=$form->{oldsort}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&checkinventory=$form->{checkinventory}";
+
+ if ($form->{partnumber}) {
+ $callback .= "&partnumber=".$form->escape($form->{partnumber},1);
+ $href .= "&partnumber=".$form->escape($form->{partnumber});
+ $form->{sort} = "partnumber" unless $form->{sort};
+ }
+ if ($form->{description}) {
+ $callback .= "&description=".$form->escape($form->{description},1);
+ $href .= "&description=".$form->escape($form->{description});
+ $form->{sort} = "description" unless $form->{sort};
+ }
+
+ $column_header{partnumber} = qq|<th><a class=listheading href=$href&sort=partnumber>|.$locale->text('Number').qq|</th>|;
+ $column_header{description} = qq|<th><a class=listheading href=$href&sort=description>|.$locale->text('Description').qq|</th>|;
+ $column_header{bin} = qq|<th><a class=listheading href=$href&sort=bin>|.$locale->text('Bin').qq|</th>|;
+ $column_header{onhand} = qq|<th class=listheading>|.$locale->text('Qty').qq|</th>|;
+ $column_header{rop} = qq|<th class=listheading>|.$locale->text('ROP').qq|</th>|;
+ $column_header{stock} = qq|<th class=listheading>|.$locale->text('Add').qq|</th>|;
+
+ @column_index = $form->sort_columns(qw(partnumber description bin onhand rop stock));
+
+ $form->{title} = $locale->text('Stock Assembly');
+
+
+ $form->header;
+
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr size=5></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "\n$column_header{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ # add sort and escape callback
+ $form->{callback} = $callback .= "&sort=$form->{sort}";
+
+ # escape callback for href
+ $callback = $form->escape($callback);
+
+
+ $i = 1;
+ foreach $ref (@{ $form->{assembly_items} }) {
+
+ for (qw(partnumber description)) { $ref->{$_} = $form->quote($ref->{$_}) }
+
+ $column_data{partnumber} = "<td width=20%><a href=$form->{script}?action=edit&id=$ref->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{partnumber}&nbsp;</a></td>";
+
+ $column_data{description} = qq|<td width=50%>$ref->{description}&nbsp;</td>|;
+ $column_data{bin} = qq|<td>$ref->{bin}&nbsp;</td>|;
+ $column_data{onhand} = qq|<td align=right>|.$form->format_amount(\%myconfig, $ref->{onhand}, "", "&nbsp;").qq|</td>|;
+ $column_data{rop} = qq|<td align=right>|.$form->format_amount(\%myconfig, $ref->{rop}, '', "&nbsp;").qq|</td>|;
+ $column_data{stock} = qq|<td width=10%><input name="qty_$i" size=10 value=|.$form->format_amount(\%myconfig, $ref->{stock}).qq|></td>
+ <input type=hidden name="stock_$i" value=$ref->{stock}>|;
+
+ $j++; $j %= 2;
+ print qq|<tr class=listrow$j><input name="id_$i" type=hidden value=$ref->{id}>\n|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ $i++;
+
+ }
+
+ $i--;
+ print qq|
+ </td>
+ </table>
+ <tr>
+ <td><hr size=3 noshade>
+ </tr>
+</table>
+|;
+
+ $form->hide_form(qw(checkinventory path login sessionid callback));
+
+ print qq|
+<input type=hidden name=rowcount value="$i">
+<input type=hidden name=nextsub value=restock_assemblies>
+
+<br>
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">
+
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub restock_assemblies {
+
+
+ if ($form->{checkinventory}) {
+ for (1 .. $form->{rowcount}) { $form->error($locale->text('Quantity exceeds available units to stock!')) if $form->parse_amount($myconfig, $form->{"qty_$_"}) > $form->{"stock_$_"} }
+ }
+
+ if (IC->restock_assemblies(\%myconfig, \%$form)) {
+ if ($form->{callback} =~ /(direction=)(.*?)\&/) {
+ $direction = ($2 eq 'ASC') ? 'DESC' : 'ASC';
+ }
+ $form->{callback} =~ s/direction=(.*?)\&/direction=$direction\&/;
+ $form->redirect($locale->text('Assemblies restocked!'));
+ } else {
+ $form->error($locale->text('Cannot stock assemblies!'));
+ }
+
+}
+
+
+sub continue { &{ $form->{nextsub} } };
+
+sub add_part { &add };
+sub add_service { &add };
+sub add_assembly { &add };
+sub add_labor_overhead { &add };
+
+
diff --git a/bin/mozilla/io.pl b/bin/mozilla/io.pl
new file mode 100755
index 00000000..ccc74dca
--- /dev/null
+++ b/bin/mozilla/io.pl
@@ -0,0 +1,1672 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has NOT undergone whitespace cleanup.
+#
+#======================================================================
+#
+# common routines used in is, ir, oe
+#
+#######################################################################
+
+# any custom scripts for this one
+if (-f "$form->{path}/custom_io.pl") {
+ eval { require "$form->{path}/custom_io.pl"; };
+}
+if (-f "$form->{path}/$form->{login}_io.pl") {
+ eval { require "$form->{path}/$form->{login}_io.pl"; };
+}
+
+
+1;
+# end of main
+
+
+# this is for our long dates
+# $locale->text('January')
+# $locale->text('February')
+# $locale->text('March')
+# $locale->text('April')
+# $locale->text('May ')
+# $locale->text('June')
+# $locale->text('July')
+# $locale->text('August')
+# $locale->text('September')
+# $locale->text('October')
+# $locale->text('November')
+# $locale->text('December')
+
+# this is for our short month
+# $locale->text('Jan')
+# $locale->text('Feb')
+# $locale->text('Mar')
+# $locale->text('Apr')
+# $locale->text('May')
+# $locale->text('Jun')
+# $locale->text('Jul')
+# $locale->text('Aug')
+# $locale->text('Sep')
+# $locale->text('Oct')
+# $locale->text('Nov')
+# $locale->text('Dec')
+
+
+sub display_row {
+ my $numrows = shift;
+
+ @column_index = qw(runningnumber partnumber description qty);
+
+ if ($form->{type} eq "sales_order") {
+ push @column_index, "ship";
+ $column_data{ship} = qq|<th class=listheading align=center width="auto">|.$locale->text('Ship').qq|</th>|;
+ }
+ if ($form->{type} eq "purchase_order") {
+ push @column_index, "ship";
+ $column_data{ship} = qq|<th class=listheading align=center width="auto">|.$locale->text('Recd').qq|</th>|;
+ }
+
+ for (qw(projectnumber partsgroup)) {
+ $form->{"select$_"} = $form->unescape($form->{"select$_"}) if $form->{"select$_"};
+ }
+
+ if ($form->{language_code} ne $form->{oldlanguage_code}) {
+ # rebuild partsgroup
+ $l{language_code} = $form->{language_code};
+ $l{searchitems} = 'nolabor' if $form->{vc} eq 'customer';
+
+ $form->get_partsgroup(\%myconfig, \%l);
+ if (@ { $form->{all_partsgroup} }) {
+ $form->{selectpartsgroup} = "<option>\n";
+ foreach $ref (@ { $form->{all_partsgroup} }) {
+ if ($ref->{translation}) {
+ $form->{selectpartsgroup} .= qq|<option value="$ref->{partsgroup}--$ref->{id}">$ref->{translation}\n|;
+ } else {
+ $form->{selectpartsgroup} .= qq|<option value="$ref->{partsgroup}--$ref->{id}">$ref->{partsgroup}\n|;
+ }
+ }
+ }
+ $form->{oldlanguage_code} = $form->{language_code};
+ }
+
+
+ push @column_index, qw(unit sellprice discount linetotal);
+
+ my $colspan = $#column_index + 1;
+
+ $form->{invsubtotal} = 0;
+ for (split / /, $form->{taxaccounts}) { $form->{"${_}_base"} = 0 }
+
+ $column_data{runningnumber} = qq|<th class=listheading nowrap>|.$locale->text('Item').qq|</th>|;
+ $column_data{partnumber} = qq|<th class=listheading nowrap>|.$locale->text('Number').qq|</th>|;
+ $column_data{description} = qq|<th class=listheading nowrap>|.$locale->text('Description').qq|</th>|;
+ $column_data{qty} = qq|<th class=listheading nowrap>|.$locale->text('Qty').qq|</th>|;
+ $column_data{unit} = qq|<th class=listheading nowrap>|.$locale->text('Unit').qq|</th>|;
+ $column_data{sellprice} = qq|<th class=listheading nowrap>|.$locale->text('Price').qq|</th>|;
+ $column_data{discount} = qq|<th class=listheading>%</th>|;
+ $column_data{linetotal} = qq|<th class=listheading nowrap>|.$locale->text('Extended').qq|</th>|;
+ $column_data{bin} = qq|<th class=listheading nowrap>|.$locale->text('Bin').qq|</th>|;
+ $column_data{onhand} = qq|<th class=listheading nowrap>|.$locale->text('OH').qq|</th>|;
+
+ print qq|
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+
+ $deliverydate = $locale->text('Delivery Date');
+ $serialnumber = $locale->text('Serial No.');
+ $projectnumber = $locale->text('Project');
+ $group = $locale->text('Group');
+ $sku = $locale->text('SKU');
+
+ $delvar = 'deliverydate';
+
+ if ($form->{type} =~ /_(order|quotation)$/) {
+ $reqdate = $locale->text('Required by');
+ $delvar = 'reqdate';
+ }
+
+ $exchangerate = $form->parse_amount(\%myconfig, $form->{exchangerate});
+ $exchangerate = ($exchangerate) ? $exchangerate : 1;
+
+ $spc = substr($myconfig{numberformat},-3,1);
+ for $i (1 .. $numrows) {
+ if ($spc eq '.') {
+ ($null, $dec) = split /\./, $form->{"sellprice_$i"};
+ } else {
+ ($null, $dec) = split /,/, $form->{"sellprice_$i"};
+ }
+ $dec = length $dec;
+ $decimalplaces = ($dec > 2) ? $dec : 2;
+
+ # undo formatting
+ for (qw(qty oldqty ship discount sellprice)) { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) }
+
+ if ($form->{"qty_$i"} != $form->{"oldqty_$i"}) {
+ # check pricematrix
+ @a = split / /, $form->{"pricematrix_$i"};
+ if (scalar @a > 2) {
+ foreach $item (@a) {
+ ($q, $p) = split /:/, $item;
+ if (($p * 1) && ($form->{"qty_$i"} >= ($q * 1))) {
+ ($dec) = ($p =~ /\.(\d+)/);
+ $dec = length $dec;
+ $decimalplaces = ($dec > 2) ? $dec : 2;
+ $form->{"sellprice_$i"} = $form->round_amount($p / $exchangerate, $decimalplaces);
+ }
+ }
+ }
+ }
+
+ $discount = $form->round_amount($form->{"sellprice_$i"} * $form->{"discount_$i"}/100, $decimalplaces);
+ $linetotal = $form->round_amount($form->{"sellprice_$i"} - $discount, $decimalplaces);
+ $linetotal = $form->round_amount($linetotal * $form->{"qty_$i"}, 2);
+
+
+ if (($rows = $form->numtextrows($form->{"description_$i"}, 46, 6)) > 1) {
+ $form->{"description_$i"} = $form->quote($form->{"description_$i"});
+ $column_data{description} = qq|<td><textarea name="description_$i" rows=$rows cols=46 wrap=soft>$form->{"description_$i"}</textarea></td>|;
+ } else {
+ $form->{"description_$i"} = $form->quote($form->{"description_$i"});
+ $column_data{description} = qq|<td><input name="description_$i" size=48 value="$form->{"description_$i"}"></td>|;
+ }
+
+ for (qw(partnumber sku unit)) { $form->{"${_}_$i"} = $form->quote($form->{"${_}_$i"}) }
+
+ $skunumber = qq|
+ <p><b>$sku</b> $form->{"sku_$i"}| if ($form->{vc} eq 'vendor' && $form->{"sku_$i"});
+
+
+ if ($form->{selectpartsgroup}) {
+ if ($i < $numrows) {
+ $partsgroup = qq|
+ <b>$group</b>
+ <input type=hidden name="partsgroup_$i" value="$form->{"partsgroup_$i"}">|;
+ ($form->{"partsgroup_$i"}) = split /--/, $form->{"partsgroup_$i"};
+ $partsgroup .= $form->{"partsgroup_$i"};
+ $partsgroup = "" unless $form->{"partsgroup_$i"};
+ }
+ }
+
+ $delivery = qq|
+ <td colspan=2 nowrap>
+ <b>${$delvar}</b>
+ <input name="${delvar}_$i" size=11 title="$myconfig{dateformat}" value="$form->{"${delvar}_$i"}"></td>
+|;
+
+ $column_data{runningnumber} = qq|<td><input name="runningnumber_$i" size=3 value=$i></td>|;
+ $column_data{partnumber} = qq|<td><input name="partnumber_$i" size=15 value="$form->{"partnumber_$i"}" accesskey="$i" title="[Alt-$i]">$skunumber</td>|;
+ $column_data{qty} = qq|<td align=right><input name="qty_$i" title="$form->{"onhand_$i"}" size=5 value=|.$form->format_amount(\%myconfig, $form->{"qty_$i"}).qq|></td>|;
+ $column_data{ship} = qq|<td align=right><input name="ship_$i" size=5 value=|.$form->format_amount(\%myconfig, $form->{"ship_$i"}).qq|></td>|;
+ $column_data{unit} = qq|<td><input name="unit_$i" size=5 value="$form->{"unit_$i"}"></td>|;
+ $column_data{sellprice} = qq|<td align=right><input name="sellprice_$i" size=9 value=|.$form->format_amount(\%myconfig, $form->{"sellprice_$i"}, $decimalplaces).qq|></td>|;
+ $column_data{discount} = qq|<td align=right><input name="discount_$i" size=3 value=|.$form->format_amount(\%myconfig, $form->{"discount_$i"}).qq|></td>|;
+ $column_data{linetotal} = qq|<td align=right>|.$form->format_amount(\%myconfig, $linetotal, 2).qq|</td>|;
+ $column_data{bin} = qq|<td>$form->{"bin_$i"}</td>|;
+ $column_data{onhand} = qq|<td>$form->{"onhand_$i"}</td>|;
+
+ print qq|
+ <tr valign=top>|;
+
+ for (@column_index) {
+ print "\n$column_data{$_}";
+ }
+
+ print qq|
+ </tr>
+<input type=hidden name="oldqty_$i" value="$form->{"qty_$i"}">
+|;
+
+ for (qw(orderitems_id id bin weight listprice lastcost taxaccounts pricematrix sku onhand assembly inventory_accno_id income_accno_id expense_accno_id)) {
+ $form->hide_form("${_}_$i");
+ }
+
+ $form->{selectprojectnumber} =~ s/ selected//;
+ $form->{selectprojectnumber} =~ s/(<option value="\Q$form->{"projectnumber_$i"}\E")/$1 selected/;
+
+ $project = qq|
+ <b>$projectnumber</b>
+ <select name="projectnumber_$i">$form->{selectprojectnumber}</select>
+| if $form->{selectprojectnumber};
+
+
+ if (($rows = $form->numtextrows($form->{"notes_$i"}, 46, 6)) > 1) {
+ $form->{"notes_$i"} = $form->quote($form->{"notes_$i"});
+ $notes = qq|<td><textarea name="notes_$i" rows=$rows cols=46 wrap=soft>$form->{"notes_$i"}</textarea></td>|;
+ } else {
+ $form->{"notes_$i"} = $form->quote($form->{"notes_$i"});
+ $notes = qq|<td><input name="notes_$i" size=48 value="$form->{"notes_$i"}"></td>|;
+ }
+
+ $serial = qq|
+ <td colspan=6 nowrap><b>$serialnumber</b> <input name="serialnumber_$i" value="$form->{"serialnumber_$i"}"></td>| if $form->{type} !~ /_quotation/;
+
+ if ($i == $numrows) {
+ $partsgroup = "";
+ if ($form->{selectpartsgroup}) {
+ $partsgroup = qq|
+ <b>$group</b>
+ <select name="partsgroup_$i">$form->{selectpartsgroup}</select>
+|;
+ }
+
+ $serial = "";
+ $project = "";
+ $delivery = "";
+ $notes = "";
+ }
+
+
+ # print second and third row
+ print qq|
+ <tr valign=top>
+ $delivery
+ $notes
+ $serial
+ </tr>
+ <tr valign=top>
+ <td colspan=$colspan>
+ $project
+ $partsgroup
+ </td>
+ </tr>
+ <tr>
+ <td colspan=$colspan><hr size=1 noshade></td>
+ </tr>
+|;
+
+ $skunumber = "";
+
+ for (split / /, $form->{"taxaccounts_$i"}) {
+ $form->{"${_}_base"} += $linetotal;
+ }
+
+ $form->{invsubtotal} += $linetotal;
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+|;
+
+ $form->hide_form(qw(audittrail));
+
+ print qq|
+
+<input type=hidden name=oldcurrency value=$form->{currency}>
+
+<input type=hidden name=selectpartsgroup value="|.$form->escape($form->{selectpartsgroup},1).qq|">
+<input type=hidden name=selectprojectnumber value="|.$form->escape($form->{selectprojectnumber},1).qq|">
+
+|;
+
+}
+
+
+sub select_item {
+
+ if ($form->{vc} eq "vendor") {
+ @column_index = qw(ndx partnumber sku description partsgroup onhand sellprice);
+ } else {
+ @column_index = qw(ndx partnumber description partsgroup onhand sellprice);
+ }
+
+ $column_data{ndx} = qq|<th>&nbsp;</th>|;
+ $column_data{partnumber} = qq|<th class=listheading>|.$locale->text('Number').qq|</th>|;
+ $column_data{sku} = qq|<th class=listheading>|.$locale->text('SKU').qq|</th>|;
+ $column_data{description} = qq|<th class=listheading>|.$locale->text('Description').qq|</th>|;
+ $column_data{partsgroup} = qq|<th class=listheading>|.$locale->text('Group').qq|</th>|;
+ $column_data{sellprice} = qq|<th class=listheading>|.$locale->text('Price').qq|</th>|;
+ $column_data{onhand} = qq|<th class=listheading>|.$locale->text('Qty').qq|</th>|;
+
+ $exchangerate = ($form->{exchangerate}) ? $form->{exchangerate} : 1;
+
+ # list items with radio button on a form
+ $form->header;
+
+ $title = $locale->text('Select items');
+
+ print qq|
+<body>
+
+<form method=post action="$form->{script}">
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$title</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$option</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ my $i = 0;
+ foreach $ref (@{ $form->{item_list} }) {
+ $i++;
+
+ for (qw(sku partnumber description unit notes partsgroup)) {
+ $ref->{$_} = $form->quote($ref->{$_});
+ }
+
+ $column_data{ndx} = qq|<td><input name="ndx_$i" class=checkbox type=checkbox value=$i></td>|;
+
+ for (qw(partnumber sku description partsgroup)) { $column_data{$_} = qq|<td>$ref->{$_}&nbsp;</td>| }
+
+ $column_data{sellprice} = qq|<td align=right>|.$form->format_amount(\%myconfig, $ref->{sellprice} / $exchangerate, 2, "&nbsp;").qq|</td>|;
+ $column_data{onhand} = qq|<td align=right>|.$form->format_amount(\%myconfig, $ref->{onhand}, '', "&nbsp;").qq|</td>|;
+
+ $j++; $j %= 2;
+ print qq|
+ <tr class=listrow$j>|;
+
+ for (@column_index) {
+ print "\n$column_data{$_}";
+ }
+
+ print qq|
+ </tr>
+|;
+
+ for (qw(partnumber sku description partsgroup partsgroup_id bin weight sellprice listprice lastcost onhand unit assembly taxaccounts inventory_accno_id income_accno_id expense_accno_id pricematrix id notes)) {
+ print qq|<input type=hidden name="new_${_}_$i" value="$ref->{$_}">\n|;
+ }
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<input name=lastndx type=hidden value=$i>
+
+|;
+
+ # delete variables
+ for (qw(nextsub item_list)) { delete $form->{$_} }
+
+ $form->{action} = "item_selected";
+
+ $form->hide_form;
+
+ print qq|
+<input type=hidden name=nextsub value=item_selected>
+
+<br>
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+
+sub item_selected {
+
+ $i = $form->{rowcount} - 1;
+ $i = $form->{assembly_rows} - 1 if ($form->{item} eq 'assembly');
+ $qty = ($form->{"qty_$form->{rowcount}"}) ? $form->{"qty_$form->{rowcount}"} : 1;
+
+ for $j (1 .. $form->{lastndx}) {
+
+ if ($form->{"ndx_$j"}) {
+
+ $i++;
+
+ $form->{"qty_$i"} = $qty;
+ $form->{"discount_$i"} = $form->{discount} * 100;
+ $form->{"reqdate_$i"} = $form->{reqdate} if $form->{type} !~ /_quotation/;
+
+ for (qw(id partnumber sku description sellprice listprice lastcost bin unit weight assembly taxaccounts pricematrix onhand notes inventory_accno_id income_accno_id expense_accno_id)) {
+ $form->{"${_}_$i"} = $form->{"new_${_}_$j"};
+ }
+
+ $form->{"partsgroup_$i"} = qq|$form->{"new_partsgroup_$j"}--$form->{"new_partsgroup_id_$j"}|;
+
+ ($dec) = ($form->{"sellprice_$i"} =~ /\.(\d+)/);
+ $dec = length $dec;
+ $decimalplaces1 = ($dec > 2) ? $dec : 2;
+
+ ($dec) = ($form->{"lastcost_$i"} =~ /\.(\d+)/);
+ $dec = length $dec;
+ $decimalplaces2 = ($dec > 2) ? $dec : 2;
+
+ # if there is an exchange rate adjust sellprice
+ if (($form->{exchangerate} * 1)) {
+ for (qw(sellprice listprice lastcost)) { $form->{"${_}_$i"} /= $form->{exchangerate} }
+ # don't format list and cost
+ $form->{"sellprice_$i"} = $form->round_amount($form->{"sellprice_$i"}, $decimalplaces1);
+ }
+
+ # this is for the assembly
+ if ($form->{item} eq 'assembly') {
+ $form->{"adj_$i"} = 1;
+
+ for (qw(sellprice listprice weight)) { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) }
+
+ $form->{sellprice} += ($form->{"sellprice_$i"} * $form->{"qty_$i"});
+ $form->{weight} += ($form->{"weight_$i"} * $form->{"qty_$i"});
+ }
+
+ $amount = $form->{"sellprice_$i"} * (1 - $form->{"discount_$i"} / 100) * $form->{"qty_$i"};
+ for (split / /, $form->{"taxaccounts_$i"}) { $form->{"${_}_base"} += $amount }
+ if (!$form->{taxincluded}) {
+ for (split / /, $form->{"taxaccounts_$i"}) { $amount += ($form->{"${_}_base"} * $form->{"${_}_rate"}) }
+ }
+
+ $form->{creditremaining} -= $amount;
+
+ $form->{"runningnumber_$i"} = $i;
+
+ # format amounts
+ if ($form->{item} ne 'assembly') {
+ for (qw(sellprice listprice)) { $form->{"${_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}, $decimalplaces1) }
+ $form->{"lastcost_$i"} = $form->format_amount(\%myconfig, $form->{"lastcost_$i"}, $decimalplaces2);
+ }
+ $form->{"discount_$i"} = $form->format_amount(\%myconfig, $form->{"discount_$i"});
+
+ }
+ }
+
+ $form->{rowcount} = $i;
+ $form->{assembly_rows} = $i if ($form->{item} eq 'assembly');
+
+ $form->{focus} = "description_$i";
+
+ # delete all the new_ variables
+ for $i (1 .. $form->{lastndx}) {
+ for (qw(id partnumber sku description sellprice listprice lastcost bin unit weight assembly taxaccounts pricematrix onhand notes inventory_accno_id income_accno_id expense_accno_id)) {
+ delete $form->{"new_${_}_$i"};
+ }
+ }
+
+ for (qw(ndx lastndx nextsub)) { delete $form->{$_} }
+
+ &display_form;
+
+}
+
+
+sub new_item {
+
+ if ($form->{language_code} && $form->{"description_$form->{rowcount}"}) {
+ $form->error($locale->text('Translation not on file!'));
+ }
+
+ # change callback
+ $form->{old_callback} = $form->escape($form->{callback},1);
+ $form->{callback} = $form->escape("$form->{script}?action=display_form",1);
+
+ # delete action
+ delete $form->{action};
+
+ # save all other form variables in a previousform variable
+ if (!$form->{previousform}) {
+ foreach $key (keys %$form) {
+ # escape ampersands
+ $form->{$key} =~ s/&/%26/g;
+ $form->{previousform} .= qq|$key=$form->{$key}&|;
+ }
+ chop $form->{previousform};
+ $form->{previousform} = $form->escape($form->{previousform}, 1);
+ }
+
+ $i = $form->{rowcount};
+ for (qw(partnumber description)) { $form->{"${_}_$i"} = $form->quote($form->{"${_}_$i"}) }
+
+ $form->header;
+
+ print qq|
+<body>
+
+<h4 class=error>|.$locale->text('Item not on file!').qq|</h4>|;
+
+ if ($myconfig{acs} !~ /(Goods \& Services--Add Part|Goods \& Services--Add Service)/) {
+
+ print qq|
+<h4>|.$locale->text('What type of item is this?').qq|</h4>
+
+<form method=post action=ic.pl>
+
+<p>
+
+ <input class=radio type=radio name=item value=part checked>&nbsp;|.$locale->text('Part')
+.qq|<br>
+ <input class=radio type=radio name=item value=service>&nbsp;|.$locale->text('Service')
+
+.qq|
+<input type=hidden name=partnumber value="$form->{"partnumber_$i"}">
+<input type=hidden name=description value="$form->{"description_$i"}">
+<input type=hidden name=nextsub value=add>
+<input type=hidden name=action value=add>
+|;
+
+ $form->hide_form(qw(previousform rowcount path login sessionid));
+
+ print qq|
+<p>
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">
+</form>
+|;
+ }
+
+ print qq|
+</body>
+</html>
+|;
+
+}
+
+
+
+sub display_form {
+
+ # if we have a display_form
+ if ($form->{display_form}) {
+ &{ "$form->{display_form}" };
+ exit;
+ }
+
+ &form_header;
+
+ $numrows = ++$form->{rowcount};
+ $subroutine = "display_row";
+
+ if ($form->{item} eq 'part') {
+ # create makemodel rows
+ &makemodel_row(++$form->{makemodel_rows});
+
+ &vendor_row(++$form->{vendor_rows});
+
+ $numrows = ++$form->{customer_rows};
+ $subroutine = "customer_row";
+ }
+ if ($form->{item} eq 'assembly') {
+ # create makemodel rows
+ &makemodel_row(++$form->{makemodel_rows});
+
+ $numrows = ++$form->{customer_rows};
+ $subroutine = "customer_row";
+ }
+ if ($form->{item} eq 'service') {
+ &vendor_row(++$form->{vendor_rows});
+
+ $numrows = ++$form->{customer_rows};
+ $subroutine = "customer_row";
+ }
+ if ($form->{item} eq 'labor') {
+ $numrows = 0;
+ }
+
+ # create rows
+ &{ $subroutine }($numrows) if $numrows;
+
+ &form_footer;
+
+}
+
+
+
+sub check_form {
+
+ my @a = ();
+ my $count = 0;
+ my $i;
+ my $j;
+ my @flds = qw(id runningnumber partnumber description partsgroup qty ship unit sellprice discount oldqty orderitems_id bin weight listprice lastcost taxaccounts pricematrix sku onhand assembly inventory_accno_id income_accno_id expense_accno_id notes reqdate deliverydate serialnumber projectnumber);
+
+ # remove any makes or model rows
+ if ($form->{item} eq 'part') {
+ for (qw(listprice sellprice lastcost avgcost weight rop markup)) { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) }
+
+ &calc_markup;
+
+ @flds = qw(make model);
+ $count = 0;
+ @a = ();
+ for $i (1 .. $form->{makemodel_rows}) {
+ if (($form->{"make_$i"} ne "") || ($form->{"model_$i"} ne "")) {
+ push @a, {};
+ $j = $#a;
+
+ for (@flds) { $a[$j]->{$_} = $form->{"${_}_$i"} }
+ $count++;
+ }
+ }
+
+ $form->redo_rows(\@flds, \@a, $count, $form->{makemodel_rows});
+ $form->{makemodel_rows} = $count;
+
+ &check_vendor;
+ &check_customer;
+
+ }
+
+ if ($form->{item} eq 'service') {
+
+ for (qw(sellprice listprice lastcost avgcost markup)) { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) }
+
+ &calc_markup;
+ &check_vendor;
+ &check_customer;
+
+ }
+
+ if ($form->{item} eq 'assembly') {
+
+ if (!$form->{project_id}) {
+ $form->{sellprice} = 0;
+ $form->{listprice} = 0;
+ $form->{lastcost} = 0;
+ $form->{weight} = 0;
+ }
+
+ for (qw(rop stock markup)) { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) }
+
+ @flds = qw(id qty unit bom adj partnumber description sellprice listprice lastcost weight assembly runningnumber partsgroup);
+ $count = 0;
+ @a = ();
+
+ for $i (1 .. ($form->{assembly_rows} - 1)) {
+ if ($form->{"qty_$i"}) {
+ push @a, {};
+ my $j = $#a;
+
+ $form->{"qty_$i"} = $form->parse_amount(\%myconfig, $form->{"qty_$i"});
+
+ for (@flds) { $a[$j]->{$_} = $form->{"${_}_$i"} }
+
+ if (! $form->{project_id}) {
+ for (qw(sellprice listprice weight lastcost)) { $form->{$_} += ($form->{"${_}_$i"} * $form->{"qty_$i"}) }
+ }
+
+ $count++;
+ }
+ }
+
+ if ($form->{markup} && $form->{markup} != $form->{oldmarkup}) {
+ $form->{sellprice} = 0;
+ &calc_markup;
+ }
+
+ for (qw(sellprice lastcost listprice)) { $form->{$_} = $form->round_amount($form->{$_}, 2) }
+
+ $form->redo_rows(\@flds, \@a, $count, $form->{assembly_rows});
+ $form->{assembly_rows} = $count;
+
+ $count = 0;
+ @flds = qw(make model);
+ @a = ();
+
+ for $i (1 .. ($form->{makemodel_rows})) {
+ if (($form->{"make_$i"} ne "") || ($form->{"model_$i"} ne "")) {
+ push @a, {};
+ my $j = $#a;
+
+ for (@flds) { $a[$j]->{$_} = $form->{"${_}_$i"} }
+ $count++;
+ }
+ }
+
+ $form->redo_rows(\@flds, \@a, $count, $form->{makemodel_rows});
+ $form->{makemodel_rows} = $count;
+
+ &check_customer;
+
+ }
+
+ if ($form->{type}) {
+
+ # this section applies to invoices and orders
+ # remove any empty numbers
+
+ $count = 0;
+ @a = ();
+ if ($form->{rowcount}) {
+ for $i (1 .. $form->{rowcount} - 1) {
+ if ($form->{"partnumber_$i"}) {
+ push @a, {};
+ my $j = $#a;
+
+ for (@flds) { $a[$j]->{$_} = $form->{"${_}_$i"} }
+ $count++;
+ }
+ }
+
+ $form->redo_rows(\@flds, \@a, $count, $form->{rowcount});
+ $form->{rowcount} = $count;
+
+ $form->{creditremaining} -= &invoicetotal;
+
+ }
+ }
+
+ &display_form;
+
+}
+
+
+sub calc_markup {
+
+ if ($form->{markup}) {
+ if ($form->{markup} != $form->{oldmarkup}) {
+ if ($form->{lastcost}) {
+ $form->{sellprice} = $form->{lastcost} * (1 + $form->{markup}/100);
+ $form->{sellprice} = $form->round_amount($form->{sellprice}, 2);
+ } else {
+ $form->{lastcost} = $form->{sellprice} / (1 + $form->{markup}/100);
+ $form->{lastcost} = $form->round_amount($form->{lastcost}, 2);
+ }
+ }
+ } else {
+ if ($form->{lastcost}) {
+ $form->{markup} = $form->round_amount(((1 - $form->{sellprice} / $form->{lastcost}) * 100), 1);
+ }
+ $form->{markup} = "" if $form->{markup} == 0;
+ }
+
+}
+
+
+sub invoicetotal {
+
+ $form->{oldinvtotal} = 0;
+ # add all parts and deduct paid
+ for (split / /, $form->{taxaccounts}) { $form->{"${_}_base"} = 0 }
+
+ my ($amount, $sellprice, $discount, $qty);
+
+ for $i (1 .. $form->{rowcount}) {
+ $sellprice = $form->parse_amount(\%myconfig, $form->{"sellprice_$i"});
+ $discount = $form->parse_amount(\%myconfig, $form->{"discount_$i"});
+ $qty = $form->parse_amount(\%myconfig, $form->{"qty_$i"});
+
+ $amount = $sellprice * (1 - $discount / 100) * $qty;
+ for (split / /, $form->{"taxaccounts_$i"}) { $form->{"${_}_base"} += $amount }
+ $form->{oldinvtotal} += $amount;
+ }
+
+ if (!$form->{taxincluded}) {
+ for (split / /, $form->{taxaccounts}) { $form->{oldinvtotal} += ($form->{"${_}_base"} * $form->{"${_}_rate"}) }
+ }
+
+ $form->{oldtotalpaid} = 0;
+ for $i (1 .. $form->{paidaccounts}) {
+ $form->{oldtotalpaid} += $form->{"paid_$i"};
+ }
+
+ # return total
+ ($form->{oldinvtotal} - $form->{oldtotalpaid});
+
+}
+
+
+sub validate_items {
+
+ # check if items are valid
+ if ($form->{rowcount} == 1) {
+ &update;
+ exit;
+ }
+
+ for $i (1 .. $form->{rowcount} - 1) {
+ $form->isblank("partnumber_$i", $locale->text('Number missing in Row') . " $i");
+ }
+
+}
+
+
+
+sub purchase_order {
+
+ $form->{title} = $locale->text('Add Purchase Order');
+ $form->{vc} = 'vendor';
+ $form->{type} = 'purchase_order';
+ $buysell = 'sell';
+
+ &create_form;
+
+}
+
+
+sub sales_order {
+
+ $form->{title} = $locale->text('Add Sales Order');
+ $form->{vc} = 'customer';
+ $form->{type} = 'sales_order';
+ $buysell = 'buy';
+
+ &create_form;
+
+}
+
+
+sub rfq {
+
+ $form->{title} = $locale->text('Add Request for Quotation');
+ $form->{vc} = 'vendor';
+ $form->{type} = 'request_quotation';
+ $buysell = 'sell';
+
+ &create_form;
+
+}
+
+
+sub quotation {
+
+ $form->{title} = $locale->text('Add Quotation');
+ $form->{vc} = 'customer';
+ $form->{type} = 'sales_quotation';
+ $buysell = 'buy';
+
+ &create_form;
+
+}
+
+
+sub create_form {
+
+ for (qw(id printed emailed queued)) { delete $form->{$_} }
+
+ $form->{script} = 'oe.pl';
+
+ $form->{shipto} = 1;
+
+ $form->{rowcount}-- if $form->{rowcount};
+ $form->{rowcount} = 0 if ! $form->{"$form->{vc}_id"};
+
+ do "$form->{path}/$form->{script}";
+
+ for ("$form->{vc}", "currency") { $form->{"select$_"} = "" }
+
+ for (qw(currency employee department intnotes notes language_code taxincluded)) { $temp{$_} = $form->{$_} }
+
+ &order_links;
+
+ for (keys %temp) { $form->{$_} = $temp{$_} if $temp{$_} }
+
+ $form->{exchangerate} = "";
+ $form->{forex} = "";
+ if ($form->{currency} ne $form->{defaultcurrency}) {
+ $form->{exchangerate} = $exchangerate if ($form->{forex} = ($exchangerate = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{transdate}, $buysell)));
+ }
+
+ &prepare_order;
+
+ &display_form;
+
+}
+
+
+
+sub e_mail {
+
+ $bcc = qq|<input type=hidden name=bcc value="$form->{bcc}">|;
+ if ($myconfig{role} =~ /(admin|manager)/) {
+ $bcc = qq|
+ <th align=right nowrap=true>|.$locale->text('Bcc').qq|</th>
+ <td><input name=bcc size=30 value="$form->{bcc}"></td>
+|;
+ }
+
+ if ($form->{formname} =~ /(pick|packing|bin)_list/) {
+ $form->{email} = $form->{shiptoemail} if $form->{shiptoemail};
+ }
+
+ $name = $form->{$form->{vc}};
+ $name =~ s/--.*//g;
+ $title = $locale->text('E-mail')." $name";
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action="$form->{script}">
+
+<table width=100%>
+ <tr class=listtop>
+ <th class=listtop>$title</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+ <th align=right nowrap>|.$locale->text('E-mail').qq|</th>
+ <td><input name=email size=30 value="$form->{email}"></td>
+ <th align=right nowrap>|.$locale->text('Cc').qq|</th>
+ <td><input name=cc size=30 value="$form->{cc}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Subject').qq|</th>
+ <td><input name=subject size=30 value="$form->{subject}"></td>
+ $bcc
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+ <th align=left nowrap>|.$locale->text('Message').qq|</th>
+ </tr>
+ <tr>
+ <td><textarea name=message rows=15 cols=60 wrap=soft>$form->{message}</textarea></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+|;
+
+ $form->{oldmedia} = $form->{media};
+ $form->{media} = "email";
+ $form->{format} = "pdf";
+
+ &print_options;
+
+ for (qw(email cc bcc subject message formname sendmode format language_code action nextsub)) { delete $form->{$_} }
+
+ $form->hide_form;
+
+ print qq|
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<input type=hidden name=nextsub value=send_email>
+
+<br>
+<input name=action class=submit type=submit value="|.$locale->text('Continue').qq|">
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub send_email {
+
+ $old_form = new Form;
+
+ for (keys %$form) { $old_form->{$_} = $form->{$_} }
+ $old_form->{media} = $old_form->{oldmedia};
+
+ &print_form($old_form);
+
+}
+
+
+
+sub print_options {
+
+ $form->{sendmode} = "attachment";
+ $form->{copies} = 1 unless $form->{copies};
+
+ $form->{SM}{$form->{sendmode}} = "selected";
+
+ if ($form->{selectlanguage}) {
+ $form->{"selectlanguage"} = $form->unescape($form->{"selectlanguage"});
+ $form->{"selectlanguage"} =~ s/ selected//;
+ $form->{"selectlanguage"} =~ s/(<option value="\Q$form->{language_code}\E")/$1 selected/;
+
+ $lang = qq|<select name=language_code>$form->{selectlanguage}</select>
+ <input type=hidden name=oldlanguage_code value=$form->{oldlanguage_code}>
+ <input type=hidden name=selectlanguage value="|.$form->escape($form->{selectlanguage},1).qq|">|;
+ }
+
+ $form->{selectformname} = $form->unescape($form->{selectformname});
+ $form->{selectformname} =~ s/ selected//;
+ $form->{selectformname} =~ s/(<option value="\Q$form->{formname}\E")/$1 selected/;
+
+ $type = qq|<select name=formname>$form->{selectformname}</select>
+ <input type=hidden name=selectformname value="|.$form->escape($form->{selectformname},1).qq|">|;
+
+
+ if ($form->{media} eq 'email') {
+ $media = qq|<select name=sendmode>
+ <option value=attachment $form->{SM}{attachment}>|.$locale->text('Attachment').qq|
+ <option value=inline $form->{SM}{inline}>|.$locale->text('In-line').qq|</select>|;
+ } else {
+ $media = qq|<select name=media>
+ <option value="screen">|.$locale->text('Screen');
+
+ if (%printer && $latex) {
+ for (sort keys %printer) { $media .= qq|
+ <option value="$_">$_| }
+ }
+ if ($latex) {
+ $media .= qq|
+ <option value="queue">|.$locale->text('Queue');
+ }
+ $media .= qq|</select>|;
+
+ # set option selected
+ $media =~ s/(<option value="\Q$form->{media}\E")/$1 selected/;
+
+ }
+
+
+ $form->{selectformat} = qq|<option value="html">html\n|;
+# <option value="txt">|.$locale->text('Text');
+
+ if ($latex) {
+ $form->{selectformat} .= qq|
+ <option value="postscript">|.$locale->text('Postscript').qq|
+ <option value="pdf">|.$locale->text('PDF');
+ }
+
+ $format = qq|<select name=format>$form->{selectformat}</select>|;
+ $format =~ s/(<option value="\Q$form->{format}\E")/$1 selected/;
+ $format .= qq|
+ <input type=hidden name=selectformat value="|.$form->escape($form->{selectformat},1).qq|">|;
+
+ print qq|
+<table width=100%>
+ <tr>
+ <td>$type</td>
+ <td>$lang</td>
+ <td>$format</td>
+ <td>$media</td>
+|;
+
+ if (%printer && $latex && $form->{media} ne 'email') {
+ print qq|
+ <td nowrap>|.$locale->text('Copies').qq|
+ <input name=copies size=2 value=$form->{copies}></td>
+|;
+ }
+
+# $locale->text('Printed')
+# $locale->text('E-mailed')
+# $locale->text('Queued')
+# $locale->text('Scheduled')
+
+ %status = ( printed => 'Printed',
+ emailed => 'E-mailed',
+ queued => 'Queued',
+ recurring => 'Scheduled' );
+
+ print qq|<td align=right width=90%>|;
+
+ for (qw(printed emailed queued recurring)) {
+ if ($form->{$_} =~ /$form->{formname}/) {
+ print $locale->text($status{$_}).qq|<br>|;
+ }
+ }
+
+ print qq|
+ </td>
+ </tr>
+|;
+
+ $form->{groupprojectnumber} = "checked" if $form->{groupprojectnumber};
+ $form->{grouppartsgroup} = "checked" if $form->{grouppartsgroup};
+
+ for (qw(runningnumber partnumber description bin)) { $sortby{$_} = "checked" if $form->{sortby} eq $_ }
+
+ print qq|
+ <tr>
+ <td colspan=3>|.$locale->text('Group by').qq| ->
+ <input name=groupprojectnumber type=checkbox class=checkbox $form->{groupprojectnumber}>
+ |.$locale->text('Project').qq|
+ <input name=grouppartsgroup type=checkbox class=checkbox $form->{grouppartsgroup}>
+ |.$locale->text('Group').qq|
+ </td>
+
+ <td colspan=3>|.$locale->text('Sort by').qq| ->
+ <input name=sortby type=radio class=radio value=runningnumber $sortby{runningnumber}>
+ |.$locale->text('Item').qq|
+ <input name=sortby type=radio class=radio value=partnumber $sortby{partnumber}>
+ |.$locale->text('Number').qq|
+ <input name=sortby type=radio class=radio value=description $sortby{description}>
+ |.$locale->text('Description').qq|
+ <input name=sortby type=radio class=radio value=bin $sortby{bin}>
+ |.$locale->text('Bin').qq|
+ </td>
+
+ </tr>
+</table>
+|;
+
+}
+
+
+
+sub print {
+
+ # if this goes to the printer pass through
+ if ($form->{media} !~ /(screen|email)/) {
+ $form->error($locale->text('Select txt, postscript or PDF!')) if ($form->{format} !~ /(txt|postscript|pdf)/);
+
+ $old_form = new Form;
+ for (keys %$form) { $old_form->{$_} = $form->{$_} }
+
+ }
+
+ &print_form($old_form);
+
+}
+
+
+sub print_form {
+ my ($old_form) = @_;
+
+ $inv = "inv";
+ $due = "due";
+
+ $numberfld = "sinumber";
+
+ $display_form = ($form->{display_form}) ? $form->{display_form} : "display_form";
+
+ if ($form->{formname} eq "invoice") {
+ $form->{label} = $locale->text('Invoice');
+ }
+ if ($form->{formname} eq 'sales_order') {
+ $inv = "ord";
+ $due = "req";
+ $form->{label} = $locale->text('Sales Order');
+ $numberfld = "sonumber";
+ $order = 1;
+ }
+ if ($form->{formname} eq 'work_order') {
+ $inv = "ord";
+ $due = "req";
+ $form->{label} = $locale->text('Work Order');
+ $numberfld = "sonumber";
+ $order = 1;
+ }
+ if ($form->{formname} eq 'packing_list') {
+ # we use the same packing list as from an invoice
+ $form->{label} = $locale->text('Packing List');
+
+ if ($form->{type} ne 'invoice') {
+ $inv = "ord";
+ $due = "req";
+ $numberfld = "sonumber";
+ $order = 1;
+
+ $filled = 0;
+ for ($i = 1; $i < $form->{rowcount}; $i++) {
+ if ($form->{"ship_$i"}) {
+ $filled = 1;
+ last;
+ }
+ }
+ if (!$filled) {
+ for (1 .. $form->{rowcount}) { $form->{"ship_$_"} = $form->{"qty_$_"} }
+ }
+ }
+ }
+ if ($form->{formname} eq 'pick_list') {
+ $form->{label} = $locale->text('Pick List');
+ if ($form->{type} ne 'invoice') {
+ $inv = "ord";
+ $due = "req";
+ $order = 1;
+ $numberfld = "sonumber";
+ }
+ }
+ if ($form->{formname} eq 'purchase_order') {
+ $inv = "ord";
+ $due = "req";
+ $form->{label} = $locale->text('Purchase Order');
+ $numberfld = "ponumber";
+ $order = 1;
+ }
+ if ($form->{formname} eq 'bin_list') {
+ $inv = "ord";
+ $due = "req";
+ $form->{label} = $locale->text('Bin List');
+ $numberfld = "ponumber";
+ $order = 1;
+ }
+ if ($form->{formname} eq 'sales_quotation') {
+ $inv = "quo";
+ $due = "req";
+ $form->{label} = $locale->text('Quotation');
+ $numberfld = "sqnumber";
+ $order = 1;
+ }
+ if ($form->{formname} eq 'request_quotation') {
+ $inv = "quo";
+ $due = "req";
+ $form->{label} = $locale->text('Quotation');
+ $numberfld = "rfqnumber";
+ $order = 1;
+ }
+
+ &validate_items;
+
+ $form->{"${inv}date"} = $form->{transdate};
+
+ $form->isblank("email", $locale->text('E-mail address missing!')) if ($form->{media} eq 'email');
+ $form->isblank("${inv}date", $locale->text($form->{label} .' Date missing!'));
+
+ # get next number
+ if (! $form->{"${inv}number"}) {
+ $form->{"${inv}number"} = $form->update_defaults(\%myconfig, $numberfld);
+ if ($form->{media} eq 'screen') {
+ &update;
+ exit;
+ }
+ }
+
+
+# $locale->text('Invoice Number missing!')
+# $locale->text('Invoice Date missing!')
+# $locale->text('Packing List Number missing!')
+# $locale->text('Packing List Date missing!')
+# $locale->text('Order Number missing!')
+# $locale->text('Order Date missing!')
+# $locale->text('Quotation Number missing!')
+# $locale->text('Quotation Date missing!')
+
+ &{ "$form->{vc}_details" };
+
+ @a = ();
+ foreach $i (1 .. $form->{rowcount}) {
+ push @a, ("partnumber_$i", "description_$i", "projectnumber_$i", "partsgroup_$i", "serialnumber_$i", "bin_$i", "unit_$i", "notes_$i");
+ }
+ for (split / /, $form->{taxaccounts}) { push @a, "${_}_description" }
+
+ $ARAP = ($form->{vc} eq 'customer') ? "AR" : "AP";
+ push @a, $ARAP;
+
+ # format payment dates
+ for $i (1 .. $form->{paidaccounts} - 1) {
+ if (exists $form->{longformat}) {
+ $form->{"datepaid_$i"} = $locale->date(\%myconfig, $form->{"datepaid_$i"}, $form->{longformat});
+ }
+
+ push @a, "${ARAP}_paid_$i", "source_$i", "memo_$i";
+ }
+
+ $form->format_string(@a);
+
+ ($form->{employee}) = split /--/, $form->{employee};
+ ($form->{warehouse}, $form->{warehouse_id}) = split /--/, $form->{warehouse};
+
+ # this is a label for the subtotals
+ $form->{groupsubtotaldescription} = $locale->text('Subtotal') if not exists $form->{groupsubtotaldescription};
+ delete $form->{groupsubtotaldescription} if $form->{deletegroupsubtotal};
+
+ $duedate = $form->{"${due}date"};
+
+ # create the form variables
+ if ($order) {
+ OE->order_details(\%myconfig, \%$form);
+ } else {
+ IS->invoice_details(\%myconfig, \%$form);
+ }
+
+ if (exists $form->{longformat}) {
+ $form->{"${due}date"} = $duedate;
+ for ("${inv}date", "${due}date", "shippingdate", "transdate") { $form->{$_} = $locale->date(\%myconfig, $form->{$_}, $form->{longformat}) }
+ }
+
+ @a = qw(name address1 address2 city state zipcode country contact phone fax email);
+
+ $shipto = 1;
+ # if there is no shipto fill it in from billto
+ foreach $item (@a) {
+ if ($form->{"shipto$item"}) {
+ $shipto = 0;
+ last;
+ }
+ }
+
+ if ($shipto) {
+ if ($form->{formname} eq 'purchase_order' || $form->{formname} eq 'request_quotation') {
+ $form->{shiptoname} = $myconfig{company};
+ $form->{shiptoaddress1} = $myconfig{address};
+ $form->{shiptoaddress1} =~ s/\\n/\n/g;
+ } else {
+ if ($form->{formname} !~ /bin_list/) {
+ for (@a) { $form->{"shipto$_"} = $form->{$_} }
+ }
+ }
+ }
+
+ # some of the stuff could have umlauts so we translate them
+ push @a, qw(contact shiptoname shiptoaddress1 shiptoaddress2 shiptocity shiptostate shiptozipcode shiptocountry shiptocontact shiptoemail shippingpoint shipvia notes intnotes employee warehouse);
+
+ push @a, ("${inv}number", "${inv}date", "${due}date");
+
+ for (qw(company address tel fax businessnumber)) { $form->{$_} = $myconfig{$_} }
+ $form->{address} =~ s/\\n/\n/g;
+
+ for (qw(name email)) { $form->{"user$_"} = $myconfig{$_} }
+
+ push @a, qw(company address tel fax businessnumber username useremail);
+
+ for (qw(notes intnotes)) { $form->{$_} =~ s/^\s+//g }
+
+ # before we format replace <%var%>
+ for (qw(notes intnotes message)) { $form->{$_} =~ s/<%(.*?)%>/$form->{$1}/g }
+
+ $form->format_string(@a);
+
+
+ $form->{templates} = "$myconfig{templates}";
+ $form->{IN} = "$form->{formname}.$form->{format}";
+
+ if ($form->{format} =~ /(postscript|pdf)/) {
+ $form->{IN} =~ s/$&$/tex/;
+ }
+
+
+ $form->{pre} = "<body bgcolor=#ffffff>\n<pre>" if $form->{format} eq 'txt';
+
+ if ($form->{media} !~ /(screen|queue|email)/) {
+ $form->{OUT} = "| $printer{$form->{media}}";
+
+ $form->{OUT} =~ s/<%(fax)%>/<%$form->{vc}$1%>/;
+ $form->{OUT} =~ s/<%(.*?)%>/$form->{$1}/g;
+
+ if ($form->{printed} !~ /$form->{formname}/) {
+
+ $form->{printed} .= " $form->{formname}";
+ $form->{printed} =~ s/^ //;
+
+ $form->update_status(\%myconfig);
+ }
+
+ $old_form->{printed} = $form->{printed} if defined %$old_form;
+
+ %audittrail = ( tablename => ($order) ? 'oe' : lc $ARAP,
+ reference => $form->{"${inv}number"},
+ formname => $form->{formname},
+ action => 'printed',
+ id => $form->{id} );
+
+ $old_form->{audittrail} .= $form->audittrail("", \%myconfig, \%audittrail) if defined %$old_form;
+
+ }
+
+
+ if ($form->{media} eq 'email') {
+ $form->{subject} = qq|$form->{label} $form->{"${inv}number"}| unless $form->{subject};
+
+ $form->{plainpaper} = 1;
+ $form->{OUT} = "$sendmail";
+
+ if ($form->{emailed} !~ /$form->{formname}/) {
+ $form->{emailed} .= " $form->{formname}";
+ $form->{emailed} =~ s/^ //;
+
+ # save status
+ $form->update_status(\%myconfig);
+ }
+
+ $now = scalar localtime;
+ $cc = $locale->text('Cc').qq|: $form->{cc}\n| if $form->{cc};
+ $bcc = $locale->text('Bcc').qq|: $form->{bcc}\n| if $form->{bcc};
+
+ if (defined %$old_form) {
+ $old_form->{intnotes} = qq|$old_form->{intnotes}\n\n| if $old_form->{intnotes};
+ $old_form->{intnotes} .= qq|[email]\n|
+ .$locale->text('Date').qq|: $now\n|
+ .$locale->text('To').qq|: $form->{email}\n${cc}${bcc}|
+ .$locale->text('Subject').qq|: $form->{subject}\n|;
+
+ $old_form->{intnotes} .= qq|\n|.$locale->text('Message').qq|: |;
+ $old_form->{intnotes} .= ($form->{message}) ? $form->{message} : $locale->text('sent');
+
+ $old_form->{message} = $form->{message};
+ $old_form->{emailed} = $form->{emailed};
+
+ $old_form->{format} = "postscript" if $myconfig{printer};
+ $old_form->{media} = $myconfig{printer};
+
+ $old_form->save_intnotes(\%myconfig, ($order) ? 'oe' : lc $ARAP);
+ }
+
+ %audittrail = ( tablename => ($order) ? 'oe' : lc $ARAP,
+ reference => $form->{"${inv}number"},
+ formname => $form->{formname},
+ action => 'emailed',
+ id => $form->{id} );
+
+ $old_form->{audittrail} .= $form->audittrail("", \%myconfig, \%audittrail) if defined %$old_form;
+ }
+
+
+ if ($form->{media} eq 'queue') {
+ %queued = split / /, $form->{queued};
+
+ if ($filename = $queued{$form->{formname}}) {
+ $form->{queued} =~ s/$form->{formname} $filename//;
+ unlink "$spool/$filename";
+ $filename =~ s/\..*$//g;
+ } else {
+ $filename = time;
+ $filename .= $$;
+ }
+
+ $filename .= ($form->{format} eq 'postscript') ? '.ps' : '.pdf';
+ $form->{OUT} = ">$spool/$filename";
+
+ $form->{queued} .= " $form->{formname} $filename";
+ $form->{queued} =~ s/^ //;
+
+ # save status
+ $form->update_status(\%myconfig);
+
+ $old_form->{queued} = $form->{queued};
+
+ %audittrail = ( tablename => ($order) ? 'oe' : lc $ARAP,
+ reference => $form->{"${inv}number"},
+ formname => $form->{formname},
+ action => 'queued',
+ id => $form->{id} );
+
+ $old_form->{audittrail} .= $form->audittrail("", \%myconfig, \%audittrail);
+
+ }
+
+
+ $form->format_string("email", "cc", "bcc");
+
+ $form->{fileid} = $form->{"${inv}number"};
+ $form->{fileid} =~ s/(\s|\W)+//g;
+
+ $form->parse_template(\%myconfig, $userspath);
+
+ # if we got back here restore the previous form
+ if (defined %$old_form) {
+
+ $old_form->{"${inv}number"} = $form->{"${inv}number"};
+
+ # restore and display form
+ for (keys %$old_form) { $form->{$_} = $old_form->{$_} }
+ delete $form->{pre};
+
+ $form->{rowcount}--;
+
+ for (qw(exchangerate creditlimit creditremaining)) { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) }
+
+ for $i (1 .. $form->{paidaccounts}) {
+ for (qw(paid exchangerate)) { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) }
+ }
+
+ &{ "$display_form" };
+
+ }
+
+}
+
+
+sub customer_details {
+
+ IS->customer_details(\%myconfig, \%$form);
+
+}
+
+
+sub vendor_details {
+
+ IR->vendor_details(\%myconfig, \%$form);
+
+}
+
+
+sub ship_to {
+
+ $title = $form->{title};
+ $form->{title} = $locale->text('Ship to');
+
+ for (qw(exchangerate creditlimit creditremaining)) { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) }
+ for (1 .. $form->{paidaccounts}) { $form->{"paid_$_"} = $form->parse_amount(\%myconfig, $form->{"paid_$_"}) }
+
+ # get details for name
+ &{ "$form->{vc}_details" };
+
+ $number = ($form->{vc} eq 'customer') ? $locale->text('Customer Number') : $locale->text('Vendor Number');
+
+ $nextsub = ($form->{display_form}) ? $form->{display_form} : "display_form";
+
+ $form->{rowcount}--;
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr>
+ <td>
+ <table>
+ <tr class=listheading>
+ <th class=listheading colspan=2 width=50%>|.$locale->text('Billing Address').qq|</th>
+ <th class=listheading width=50%>|.$locale->text('Shipping Address').qq|</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <th align=right nowrap>$number</th>
+ <td>$form->{"$form->{vc}number"}</td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Company Name').qq|</th>
+ <td>$form->{name}</td>
+ <td><input name=shiptoname size=35 maxlength=64 value="$form->{shiptoname}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Address').qq|</th>
+ <td>$form->{address1}</td>
+ <td><input name=shiptoaddress1 size=35 maxlength=32 value="$form->{shiptoaddress1}"></td>
+ </tr>
+ <tr>
+ <th></th>
+ <td>$form->{address2}</td>
+ <td><input name=shiptoaddress2 size=35 maxlength=32 value="$form->{shiptoaddress2}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('City').qq|</th>
+ <td>$form->{city}</td>
+ <td><input name=shiptocity size=35 maxlength=32 value="$form->{shiptocity}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('State/Province').qq|</th>
+ <td>$form->{state}</td>
+ <td><input name=shiptostate size=35 maxlength=32 value="$form->{shiptostate}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Zip/Postal Code').qq|</th>
+ <td>$form->{zipcode}</td>
+ <td><input name=shiptozipcode size=10 maxlength=10 value="$form->{shiptozipcode}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Country').qq|</th>
+ <td>$form->{country}</td>
+ <td><input name=shiptocountry size=35 maxlength=32 value="$form->{shiptocountry}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Contact').qq|</th>
+ <td>$form->{contact}</td>
+ <td><input name=shiptocontact size=35 maxlength=64 value="$form->{shiptocontact}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Phone').qq|</th>
+ <td>$form->{"$form->{vc}phone"}</td>
+ <td><input name=shiptophone size=20 value="$form->{shiptophone}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Fax').qq|</th>
+ <td>$form->{"$form->{vc}fax"}</td>
+ <td><input name=shiptofax size=20 value="$form->{shiptofax}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('E-mail').qq|</th>
+ <td>$form->{email}</td>
+ <td><input name=shiptoemail size=35 value="$form->{shiptoemail}"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+
+<input type=hidden name=nextsub value=$nextsub>
+|;
+
+ # delete shipto
+ for (qw(action nextsub)) { delete $form->{$_} }
+ for (qw(name address1 address2 city state zipcode country contact phone fax email)) { delete $form->{"shipto$_"} }
+ $form->{title} = $title;
+
+ $form->hide_form;
+
+ print qq|
+
+<hr size=3 noshade>
+
+<br>
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
diff --git a/bin/mozilla/ir.pl b/bin/mozilla/ir.pl
new file mode 100755
index 00000000..416a230f
--- /dev/null
+++ b/bin/mozilla/ir.pl
@@ -0,0 +1,834 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has NOT undergone whitespace cleanup.
+#
+#======================================================================
+#
+# Inventory received module
+#
+#======================================================================
+
+
+use LedgerSMB::IR;
+use LedgerSMB::PE;
+
+require "$form->{path}/io.pl";
+require "$form->{path}/arap.pl";
+
+1;
+# end of main
+
+
+
+sub add {
+
+ $form->{title} = $locale->text('Add Vendor Invoice');
+
+ $form->{callback} = "$form->{script}?action=add&type=$form->{type}&login=$form->{login}&path=$form->{path}&sessionid=$form->{sessionid}" unless $form->{callback};
+ &invoice_links;
+ &prepare_invoice;
+ &display_form;
+
+}
+
+
+sub edit {
+
+ $form->{title} = $locale->text('Edit Vendor Invoice');
+
+ &invoice_links;
+ &prepare_invoice;
+ &display_form;
+
+}
+
+
+sub invoice_links {
+
+ $form->{vc} = "vendor";
+ $form->{type} = "invoice";
+
+ # create links
+ $form->create_links("AP", \%myconfig, "vendor", 1);
+
+ # currencies
+ @curr = split /:/, $form->{currencies};
+ $form->{defaultcurrency} = $curr[0];
+ chomp $form->{defaultcurrency};
+
+ for (@curr) { $form->{selectcurrency} .= "<option>$_\n" }
+
+ if (@{ $form->{all_vendor} }) {
+ unless ($form->{vendor_id}) {
+ $form->{vendor_id} = $form->{all_vendor}->[0]->{id};
+ }
+ }
+
+ AA->get_name(\%myconfig, \%$form);
+ delete $form->{notes};
+ IR->retrieve_invoice(\%myconfig, \%$form);
+
+ $form->{oldlanguage_code} = $form->{language_code};
+
+ $form->get_partsgroup(\%myconfig, { language_code => $form->{language_code} });
+ if (@ { $form->{all_partsgroup} }) {
+ $form->{selectpartsgroup} = "<option>\n";
+ foreach $ref (@ { $form->{all_partsgroup} }) {
+ if ($ref->{translation}) {
+ $form->{selectpartsgroup} .= qq|<option value="$ref->{partsgroup}--$ref->{id}">$ref->{translation}\n|;
+ } else {
+ $form->{selectpartsgroup} .= qq|<option value="$ref->{partsgroup}--$ref->{id}">$ref->{partsgroup}\n|;
+ }
+ }
+ }
+
+ if (@{ $form->{all_project} }) {
+ $form->{selectprojectnumber} = "<option>\n";
+ for (@{ $form->{all_project} }) { $form->{selectprojectnumber} .= qq|<option value="$_->{projectnumber}--$_->{id}">$_->{projectnumber}\n| }
+ }
+
+ $form->{oldvendor} = "$form->{vendor}--$form->{vendor_id}";
+ $form->{oldtransdate} = $form->{transdate};
+
+ # vendors
+ $form->{selectvendor} = "";
+ if (@{ $form->{all_vendor} }) {
+ $form->{vendor} = "$form->{vendor}--$form->{vendor_id}";
+ for (@{ $form->{all_vendor} }) { $form->{selectvendor} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+ }
+
+ # departments
+ if (@{ $form->{all_department} }) {
+ $form->{selectdepartment} = "<option>\n";
+ $form->{department} = "$form->{department}--$form->{department_id}" if $form->{department_id};
+
+ for (@{ $form->{all_department} }) { $form->{selectdepartment} .= qq|<option value="$_->{description}--$_->{id}">$_->{description}\n| }
+ }
+
+ if (@{ $form->{all_language} }) {
+ $form->{selectlanguage} = "<option>\n";
+ for (@{ $form->{all_language} }) { $form->{selectlanguage} .= qq|<option value="$_->{code}">$_->{description}\n| }
+ }
+
+ # forex
+ $form->{forex} = $form->{exchangerate};
+ $exchangerate = ($form->{exchangerate}) ? $form->{exchangerate} : 1;
+
+ foreach $key (keys %{ $form->{AP_links} }) {
+
+ $form->{"select$key"} = "";
+ foreach $ref (@{ $form->{AP_links}{$key} }) {
+ $form->{"select$key"} .= "<option>$ref->{accno}--$ref->{description}\n";
+ }
+
+ if ($key eq "AP_paid") {
+ for $i (1 .. scalar @{ $form->{acc_trans}{$key} }) {
+ $form->{"AP_paid_$i"} = "$form->{acc_trans}{$key}->[$i-1]->{accno}--$form->{acc_trans}{$key}->[$i-1]->{description}";
+ # reverse paid
+ $form->{"paid_$i"} = $form->{acc_trans}{$key}->[$i-1]->{amount};
+ $form->{"datepaid_$i"} = $form->{acc_trans}{$key}->[$i-1]->{transdate};
+ $form->{"forex_$i"} = $form->{"exchangerate_$i"} = $form->{acc_trans}{$key}->[$i-1]->{exchangerate};
+ $form->{"source_$i"} = $form->{acc_trans}{$key}->[$i-1]->{source};
+ $form->{"memo_$i"} = $form->{acc_trans}{$key}->[$i-1]->{memo};
+ $form->{"cleared_$i"} = $form->{acc_trans}{$key}->[$i-1]->{cleared};
+
+ $form->{paidaccounts} = $i;
+ }
+ } else {
+ $form->{$key} = "$form->{acc_trans}{$key}->[0]->{accno}--$form->{acc_trans}{$key}->[0]->{description}" if $form->{acc_trans}{$key}->[0]->{accno};
+ }
+
+ }
+
+ $form->{paidaccounts} = 1 unless (exists $form->{paidaccounts});
+
+ $form->{AP} = $form->{AP_1} unless $form->{id};
+
+ $form->{locked} = ($form->{revtrans}) ? '1' : ($form->datetonum(\%myconfig, $form->{transdate}) <= $form->datetonum(\%myconfig, $form->{closedto}));
+
+ if (! $form->{readonly}) {
+ $form->{readonly} = 1 if $myconfig{acs} =~ /AP--Vendor Invoice/;
+ }
+
+}
+
+
+
+sub prepare_invoice {
+
+ $form->{type} = "invoice";
+ $form->{currency} =~ s/ //g;
+ $form->{oldcurrency} = $form->{currency};
+
+ if ($form->{id}) {
+
+ for (qw(invnumber ordnumber ponumber quonumber)) { $form->{$_} = $form->quote($form->{$_}) }
+
+ foreach $ref (@{ $form->{invoice_details} }) {
+ $i++;
+ for (keys %$ref) { $form->{"${_}_$i"} = $ref->{$_} }
+
+ $form->{"projectnumber_$i"} = qq|$ref->{projectnumber}--$ref->{project_id}| if $ref->{project_id};
+ $form->{"partsgroup_$i"} = qq|$ref->{partsgroup}--$ref->{partsgroup_id}| if $ref->{partsgroup_id};
+
+ $form->{"discount_$i"} = $form->format_amount(\%myconfig, $form->{"discount_$i"} * 100);
+
+ ($dec) = ($form->{"sellprice_$i"} =~ /\.(\d+)/);
+ $dec = length $dec;
+ $decimalplaces = ($dec > 2) ? $dec : 2;
+
+ $form->{"sellprice_$i"} = $form->format_amount(\%myconfig, $form->{"sellprice_$i"}, $decimalplaces);
+ $form->{"qty_$i"} = $form->format_amount(\%myconfig, $form->{"qty_$i"});
+ $form->{"oldqty_$i"} = $form->{"qty_$i"};
+
+ for (qw(partnumber sku description unit)) { $form->{"${_}_$i"} = $form->quote($form->{"${_}_$i"}) }
+
+ $form->{rowcount} = $i;
+ }
+ }
+
+}
+
+
+
+sub form_header {
+
+ # set option selected
+ for (qw(AP currency)) {
+ $form->{"select$_"} =~ s/ selected//;
+ $form->{"select$_"} =~ s/option>\Q$form->{$_}\E/option selected>$form->{$_}/;
+ }
+
+ for (qw(vendor department)) {
+ $form->{"select$_"} = $form->unescape($form->{"select$_"});
+ $form->{"select$_"} =~ s/ selected//;
+ $form->{"select$_"} =~ s/(<option value="\Q$form->{$_}\E")/$1 selected/;
+ }
+
+ if ($form->{selectlanguage}) {
+ $form->{"selectlanguage"} = $form->unescape($form->{"selectlanguage"});
+ $form->{"selectlanguage"} =~ s/ selected//;
+ $form->{"selectlanguage"} =~ s/(<option value="\Q$form->{language_code}\E")/$1 selected/;
+
+ $lang = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Language').qq|</th>
+ <td><select name=language_code>$form->{selectlanguage}</select></td>
+ <input type=hidden name=oldlanguage_code value=$form->{oldlanguage_code}>
+ <input type=hidden name="selectlanguage" value="|.
+ $form->escape($form->{selectlanguage},1).qq|">
+ </tr>
+|;
+
+ }
+
+
+ $form->{exchangerate} = $form->format_amount(\%myconfig, $form->{exchangerate});
+
+ $exchangerate = qq|<tr>|;
+ $exchangerate .= qq|
+ <th align=right nowrap>|.$locale->text('Currency').qq|</th>
+ <td><select name=currency>$form->{selectcurrency}</select></td> | if $form->{defaultcurrency};
+ $exchangerate .= qq|
+ <input type=hidden name=selectcurrency value="$form->{selectcurrency}">
+ <input type=hidden name=defaultcurrency value=$form->{defaultcurrency}>
+|;
+
+ if ($form->{defaultcurrency} && $form->{currency} ne $form->{defaultcurrency}) {
+ if ($form->{forex}) {
+ $exchangerate .= qq|
+ <th align=right nowrap>|.$locale->text('Exchange Rate').qq|</th>
+ <td>$form->{exchangerate}<input type=hidden name=exchangerate value=$form->{exchangerate}></td>
+|;
+ } else {
+ $exchangerate .= qq|
+ <th align=right nowrap>|.$locale->text('Exchange Rate').qq|</th>
+ <td><input name=exchangerate size=10 value=$form->{exchangerate}></td>
+|;
+ }
+ }
+ $exchangerate .= qq|
+<input type=hidden name=forex value=$form->{forex}>
+</tr>
+|;
+
+ if ($form->{selectvendor}) {
+ $vendor = qq|<select name=vendor>$form->{selectvendor}</select>
+ <input type=hidden name="selectvendor" value="|.
+ $form->escape($form->{selectvendor},1).qq|">|;
+ } else {
+ $vendor = qq|<input name=vendor value="$form->{vendor}" size=35>|;
+ }
+
+ $department = qq|
+ <tr>
+ <th align="right" nowrap>|.$locale->text('Department').qq|</th>
+ <td colspan=3><select name=department>$form->{selectdepartment}</select>
+ <input type=hidden name=selectdepartment value="|.
+ $form->escape($form->{selectdepartment},1).qq|">
+ </td>
+ </tr>
+| if $form->{selectdepartment};
+
+ $n = ($form->{creditremaining} < 0) ? "0" : "1";
+
+ $i = $form->{rowcount} + 1;
+ $focus = "partnumber_$i";
+
+ $form->header;
+
+ print qq|
+<body onLoad="document.forms[0].${focus}.focus()" />
+
+<form method=post action="$form->{script}">
+|;
+
+ $form->{vc} = "vendor";
+ $form->hide_form(qw(id title vc type terms creditlimit creditremaining closedto locked shipped oldtransdate recurring));
+
+ print qq|
+<table width=100%>
+ <tr class=listtop>
+ <th>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Vendor').qq|</th>
+ <td colspan=3>$vendor</td>
+
+ <input type=hidden name=vendor_id value=$form->{vendor_id}>
+ <input type=hidden name=oldvendor value="$form->{oldvendor}">
+
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan=3>
+ <table>
+ <tr>
+ <th nowrap>|.$locale->text('Credit Limit').qq|</th>
+ <td>|.$form->format_amount(\%myconfig, $form->{creditlimit}, 0, "0").qq|</td>
+ <td width=20%></td>
+ <th nowrap>|.$locale->text('Remaining').qq|</th>
+ <td class="plus$n" nowrap>|.$form->format_amount(\%myconfig, $form->{creditremaining}, 0, "0").qq|</td>
+ </tr>
+ </table>
+ </td>
+ <tr>
+ <th align=right>|.$locale->text('Record in').qq|</th>
+ <td colspan=3><select name=AP>$form->{selectAP}</select></td>
+ <input type=hidden name=selectAP value="$form->{selectAP}">
+ </tr>
+ $department
+ $exchangerate
+ </table>
+ </td>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Invoice Number').qq|</th>
+ <td><input name=invnumber size=20 value="$form->{invnumber}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Order Number').qq|</th>
+ <td><input name=ordnumber size=20 value="$form->{ordnumber}"></td>
+<input type=hidden name=quonumber value="$form->{quonumber}">
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Invoice Date').qq|</th>
+ <td><input name=transdate size=11 title="$myconfig{dateformat}" value=$form->{transdate}></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Due Date').qq|</th>
+ <td><input name=duedate size=11 title="$myconfig{dateformat}" value=$form->{duedate}></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('PO Number').qq|</th>
+ <td><input name=ponumber size=20 value="$form->{ponumber}"></td>
+ </tr>
+ $lang
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+|;
+
+ $form->hide_form(qw(selectcurrency defaultcurrency taxaccounts));
+
+ for (split / /, $form->{taxaccounts}) { $form->hide_form("${_}_rate", "${_}_description") }
+
+}
+
+
+
+sub form_footer {
+
+ $form->{invtotal} = $form->{invsubtotal};
+
+ if (($rows = $form->numtextrows($form->{notes}, 35, 8)) < 2) {
+ $rows = 2;
+ }
+ if (($introws = $form->numtextrows($form->{intnotes}, 35, 8)) < 2) {
+ $introws = 2;
+ }
+ $rows = ($rows > $introws) ? $rows : $introws;
+ $notes = qq|<textarea name=notes rows=$rows cols=35 wrap=soft>$form->{notes}</textarea>|;
+ $intnotes = qq|<textarea name=intnotes rows=$rows cols=35 wrap=soft>$form->{intnotes}</textarea>|;
+
+ $form->{taxincluded} = ($form->{taxincluded}) ? "checked" : "";
+
+ $taxincluded = "";
+ if ($form->{taxaccounts}) {
+ $taxincluded = qq|
+ <input name=taxincluded class=checkbox type=checkbox value=1 $form->{taxincluded}> <b>|.$locale->text('Tax Included').qq|</b>
+|;
+ }
+
+ if (!$form->{taxincluded}) {
+
+ foreach $item (split / /, $form->{taxaccounts}) {
+ if ($form->{"${item}_base"}) {
+ $form->{invtotal} += $form->{"${item}_total"} = $form->round_amount($form->{"${item}_base"} * $form->{"${item}_rate"}, 2);
+ $form->{"${item}_total"} = $form->format_amount(\%myconfig, $form->{"${item}_total"}, 2);
+
+ $tax .= qq|
+ <tr>
+ <th align=right>$form->{"${item}_description"}</th>
+ <td align=right>$form->{"${item}_total"}</td>
+ </tr>
+|;
+ }
+ }
+
+ $form->{invsubtotal} = $form->format_amount(\%myconfig, $form->{invsubtotal}, 2, 0);
+
+ $subtotal = qq|
+ <tr>
+ <th align=right>|.$locale->text('Subtotal').qq|</th>
+ <td align=right>$form->{invsubtotal}</td>
+ </tr>
+|;
+
+ }
+
+ $form->{oldinvtotal} = $form->{invtotal};
+ $form->{invtotal} = $form->format_amount(\%myconfig, $form->{invtotal}, 2, 0);
+
+ print qq|
+ <tr>
+ <td>
+ <table width=100%>
+ <tr valign=bottom>
+ <td>
+ <table>
+ <tr>
+ <th align=left>|.$locale->text('Notes').qq|</th>
+ <th align=left>|.$locale->text('Internal Notes').qq|</th>
+ </tr>
+ <tr valign=top>
+ <td>$notes</td>
+ <td>$intnotes</td>
+ </tr>
+ </table>
+ </td>
+ <td align=right>
+ $taxincluded
+ <br>
+ <table>
+ $subtotal
+ $tax
+ <tr>
+ <th align=right>|.$locale->text('Total').qq|</th>
+ <td align=right>$form->{invtotal}</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+ <th colspan=6 class=listheading>|.$locale->text('Payments').qq|</th>
+ </tr>
+|;
+
+ if ($form->{currency} eq $form->{defaultcurrency}) {
+ @column_index = qw(datepaid source memo paid AP_paid);
+ } else {
+ @column_index = qw(datepaid source memo paid exchangerate AP_paid);
+ }
+
+ $column_data{datepaid} = "<th>".$locale->text('Date')."</th>";
+ $column_data{paid} = "<th>".$locale->text('Amount')."</th>";
+ $column_data{exchangerate} = "<th>".$locale->text('Exch')."</th>";
+ $column_data{AP_paid} = "<th>".$locale->text('Account')."</th>";
+ $column_data{source} = "<th>".$locale->text('Source')."</th>";
+ $column_data{memo} = "<th>".$locale->text('Memo')."</th>";
+
+ print qq|
+ <tr>
+|;
+ for (@column_index) { print "$column_data{$_}\n" }
+ print qq|
+ </tr>
+|;
+
+ $form->{paidaccounts}++ if ($form->{"paid_$form->{paidaccounts}"});
+ for $i (1 .. $form->{paidaccounts}) {
+
+ $form->hide_form("cleared_$i");
+
+ print qq|
+ <tr>
+|;
+
+ $form->{"selectAP_paid_$i"} = $form->{selectAP_paid};
+ $form->{"selectAP_paid_$i"} =~ s/option>\Q$form->{"AP_paid_$i"}\E/option selected>$form->{"AP_paid_$i"}/;
+
+ # format amounts
+ $totalpaid += $form->{"paid_$i"};
+ $form->{"paid_$i"} = $form->format_amount(\%myconfig, $form->{"paid_$i"}, 2);
+ $form->{"exchangerate_$i"} = $form->format_amount(\%myconfig, $form->{"exchangerate_$i"});
+
+ $exchangerate = qq|&nbsp;|;
+ if ($form->{currency} ne $form->{defaultcurrency}) {
+ if ($form->{"forex_$i"}) {
+ $exchangerate = qq|<input type=hidden name="exchangerate_$i" value=$form->{"exchangerate_$i"}>$form->{"exchangerate_$i"}|;
+ } else {
+ $exchangerate = qq|<input name="exchangerate_$i" size=10 value=$form->{"exchangerate_$i"}>|;
+ }
+ }
+ $exchangerate .= qq|
+<input type=hidden name="forex_$i" value=$form->{"forex_$i"}>
+|;
+
+ $column_data{"paid_$i"} = qq|<td align=center><input name="paid_$i" size=11 value=$form->{"paid_$i"}></td>|;
+ $column_data{"exchangerate_$i"} = qq|<td align=center>$exchangerate</td>|;
+ $column_data{"AP_paid_$i"} = qq|<td align=center><select name="AP_paid_$i">$form->{"selectAP_paid_$i"}</select></td>|;
+ $column_data{"datepaid_$i"} = qq|<td align=center><input name="datepaid_$i" size=11 title="$myconfig{dateformat}" value=$form->{"datepaid_$i"}></td>|;
+ $column_data{"source_$i"} = qq|<td align=center><input name="source_$i" size=11 value="$form->{"source_$i"}"></td>|;
+ $column_data{"memo_$i"} = qq|<td align=center><input name="memo_$i" size=11 value="$form->{"memo_$i"}"></td>|;
+
+ for (@column_index) { print qq|$column_data{"${_}_$i"}\n| }
+
+ print qq|
+ </tr>
+|;
+ }
+
+ $form->{oldtotalpaid} = $totalpaid;
+ $form->hide_form(qw(paidaccounts selectAP_paid oldinvtotal oldtotalpaid));
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+<br>
+|;
+
+ $transdate = $form->datetonum(\%myconfig, $form->{transdate});
+ $closedto = $form->datetonum(\%myconfig, $form->{closedto});
+
+# type=submit $locale->text('Update')
+# type=submit $locale->text('Post')
+# type=submit $locale->text('Post as new')
+# type=submit $locale->text('Schedule')
+# type=submit $locale->text('Purchase Order')
+# type=submit $locale->text('Delete')
+
+ if (! $form->{readonly}) {
+ %button = ('Update' => { ndx => 1, key => 'U', value => $locale->text('Update') },
+ 'Post' => { ndx => 3, key => 'O', value => $locale->text('Post') },
+ 'Post as new' => { ndx => 5, key => 'N', value => $locale->text('Post as new') },
+ 'Purchase Order' => { ndx => 6, key => 'L', value => $locale->text('Purchase Order') },
+ 'Schedule' => { ndx => 7, key => 'H', value => $locale->text('Schedule') },
+ 'Delete' => { ndx => 8, key => 'D', value => $locale->text('Delete') },
+ );
+
+ if ($form->{id}) {
+
+ if ($form->{locked}) {
+ for ("Post", "Delete") { delete $button{$_} }
+ }
+
+ } else {
+
+ if ($transdate > $closedto) {
+ for ('Update', 'Post', 'Schedule') { $a{$_} = 1 }
+ }
+ for (keys %button) { delete $button{$_} if ! $a{$_} }
+ }
+
+ for (sort { $button{$a}->{ndx} <=> $button{$b}->{ndx} } keys %button) { $form->print_button(\%button, $_) }
+
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ $form->hide_form(qw(rowcount callback path login sessionid));
+
+print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+
+sub update {
+
+ $form->{exchangerate} = $form->parse_amount(\%myconfig, $form->{exchangerate});
+
+ if ($newname = &check_name(vendor)) {
+ &rebuild_vc(vendor, AP, $form->{transdate}, 1);
+ }
+ if ($form->{transdate} ne $form->{oldtransdate}) {
+ $form->{duedate} = ($form->{terms}) ? $form->current_date(\%myconfig, $form->{transdate}, $form->{terms} * 1) : $form->{duedate};
+ $form->{oldtransdate} = $form->{transdate};
+ &rebuild_vc(vendor, AP, $form->{transdate}, 1) if ! $newname;
+
+ if ($form->{currency} ne $form->{defaultcurrency}) {
+ delete $form->{exchangerate};
+ $form->{exchangerate} = $exchangerate if ($form->{forex} = ($exchangerate = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{transdate}, 'sell')));
+ $form->{oldcurrency} = $form->{currency};
+ }
+ }
+
+ if ($form->{currency} ne $form->{oldcurrency}) {
+ delete $form->{exchangerate};
+ $form->{exchangerate} = $exchangerate if ($form->{forex} = ($exchangerate = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{transdate}, 'sell')));
+ }
+
+
+ $j = 1;
+ for $i (1 .. $form->{paidaccounts}) {
+ if ($form->{"paid_$i"}) {
+ for (qw(datepaid source memo cleared)) { $form->{"${_}_$j"} = $form->{"${_}_$i"} }
+ for (qw(paid exchangerate)) { $form->{"${_}_$j"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) }
+
+ $form->{"exchangerate_$j"} = $exchangerate if ($form->{"forex_$j"} = ($exchangerate = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{"datepaid_$j"}, 'sell')));
+ if ($j++ != $i) {
+ for (qw(datepaid source memo cleared paid exchangerate forex)) { delete $form->{"${_}_$i"} }
+ }
+ } else {
+ for (qw(datepaid source memo cleared paid exchangerate forex)) { delete $form->{"${_}_$i"} }
+ }
+ $form->{paidaccounts} = $j;
+ }
+
+ $i = $form->{rowcount};
+ $exchangerate = ($form->{exchangerate}) ? $form->{exchangerate} : 1;
+
+ for (qw(partsgroup projectnumber)) {
+ $form->{"select$_"} = $form->unescape($form->{"select$_"}) if $form->{"select$_"};
+ }
+
+ if (($form->{"partnumber_$i"} eq "") && ($form->{"description_$i"} eq "") && ($form->{"partsgroup_$i"} eq "")) {
+
+ $form->{creditremaining} += ($form->{oldinvtotal} - $form->{oldtotalpaid});
+ &check_form;
+
+ } else {
+
+ IR->retrieve_item(\%myconfig, \%$form);
+
+ my $rows = scalar @{ $form->{item_list} };
+
+ if ($form->{language_code} && $rows == 0) {
+ $language_code = $form->{language_code};
+ $form->{language_code} = "";
+ IR->retrieve_item(\%myconfig, \%$form);
+ $form->{language_code} = $language_code;
+ $rows = scalar @{ $form->{item_list} };
+ }
+
+ if ($rows) {
+
+ if ($rows > 1) {
+
+ &select_item;
+ exit;
+
+ } else {
+
+ $form->{"qty_$i"} = ($form->{"qty_$i"} * 1) ? $form->{"qty_$i"} : 1;
+
+ $sellprice = $form->parse_amount(\%myconfig, $form->{"sellprice_$i"});
+
+ for (qw(partnumber description unit)) { $form->{item_list}[$i]{$_} = $form->quote($form->{item_list}[$i]{$_}) }
+
+ for (keys %{ $form->{item_list}[0] }) { $form->{"${_}_$i"} = $form->{item_list}[0]{$_} }
+
+ $form->{"discount_$i"} = $form->{discount} * 100;
+
+ if ($sellprice) {
+ $form->{"sellprice_$i"} = $sellprice;
+
+ ($dec) = ($form->{"sellprice_$i"} =~ /\.(\d+)/);
+ $dec = length $dec;
+ $decimalplaces = ($dec > 2) ? $dec : 2;
+ } else {
+ ($dec) = ($form->{"sellprice_$i"} =~ /\.(\d+)/);
+ $dec = length $dec;
+ $decimalplaces = ($dec > 2) ? $dec : 2;
+
+ $form->{"sellprice_$i"} /= $exchangerate;
+ }
+
+ $amount = $form->{"sellprice_$i"} * $form->{"qty_$i"} * (1 - $form->{"discount_$i"} / 100);
+ for (split / /, $form->{taxaccounts}) { $form->{"${_}_base"} = 0 }
+ for (split / /, $form->{"taxaccounts_$i"}) { $form->{"${_}_base"} += $amount }
+ if (!$form->{taxincluded}) {
+ for (split / /, $form->{"taxaccounts_$i"}) { $amount += ($form->{"${_}_base"} * $form->{"${_}_rate"}) }
+ }
+
+ $form->{creditremaining} -= $amount;
+
+ $form->{"sellprice_$i"} = $form->format_amount(\%myconfig, $form->{"sellprice_$i"}, $decimalplaces);
+
+ $form->{"oldqty_$i"} = $form->{"qty_$i"};
+ for (qw(qty discount)) { $form->{"{_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}) }
+
+ }
+
+ &display_form;
+
+ } else {
+ # ok, so this is a new part
+ # ask if it is a part or service item
+
+ if ($form->{"partsgroup_$i"} && ($form->{"partsnumber_$i"} eq "") && ($form->{"description_$i"} eq "")) {
+ $form->{"discount_$i"} = "";
+ &display_form;
+ } else {
+
+ $form->{"id_$i"} = 0;
+ $form->{"unit_$i"} = $locale->text('ea');
+
+ &new_item;
+
+ }
+ }
+ }
+}
+
+
+
+sub post {
+
+ $form->isblank("transdate", $locale->text('Invoice Date missing!'));
+ $form->isblank("vendor", $locale->text('Vendor missing!'));
+
+ # if the vendor changed get new values
+ if (&check_name(vendor)) {
+ &update;
+ exit;
+ }
+
+ &validate_items;
+
+ $closedto = $form->datetonum(\%myconfig, $form->{closedto});
+ $transdate = $form->datetonum(\%myconfig, $form->{transdate});
+
+ $form->error($locale->text('Cannot post invoice for a closed period!')) if ($transdate <= $closedto);
+
+ $form->isblank("exchangerate", $locale->text('Exchange rate missing!')) if ($form->{currency} ne $form->{defaultcurrency});
+
+ for $i (1 .. $form->{paidaccounts}) {
+ if ($form->{"paid_$i"}) {
+ $datepaid = $form->datetonum(\%myconfig, $form->{"datepaid_$i"});
+
+ $form->isblank("datepaid_$i", $locale->text('Payment date missing!'));
+
+ $form->error($locale->text('Cannot post payment for a closed period!')) if ($datepaid <= $closedto);
+
+ if ($form->{currency} ne $form->{defaultcurrency}) {
+ $form->{"exchangerate_$i"} = $form->{exchangerate} if ($transdate == $datepaid);
+ $form->isblank("exchangerate_$i", $locale->text('Exchange rate for payment missing!'));
+ }
+ }
+ }
+
+ if (! $form->{repost}) {
+ if ($form->{id}) {
+ &repost;
+ exit;
+ }
+ }
+
+ ($form->{AP}) = split /--/, $form->{AP};
+ ($form->{AP_paid}) = split /--/, $form->{AP_paid};
+
+ if (IR->post_invoice(\%myconfig, \%$form)) {
+ $form->redirect($locale->text('Invoice')." $form->{invnumber} ".$locale->text('posted!'));
+ } else {
+ $form->error($locale->text('Cannot post invoice!'));
+ }
+
+}
+
+
+
+sub delete {
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+|;
+
+ $form->{action} = "yes";
+ $form->hide_form;
+
+ print qq|
+<h2 class=confirm>|.$locale->text('Confirm!').qq|</h2>
+
+<h4>|.$locale->text('Are you sure you want to delete Invoice Number').qq| $form->{invnumber}</h4>
+<p>
+<input name=action class=submit type=submit value="|.$locale->text('Yes').qq|">
+</form>
+|;
+
+
+}
+
+
+
+sub yes {
+
+ if (IR->delete_invoice(\%myconfig, \%$form)) {
+ $form->redirect($locale->text('Invoice deleted!'));
+ } else {
+ $form->error($locale->text('Cannot delete invoice!'));
+ }
+
+}
+
+
diff --git a/bin/mozilla/is.pl b/bin/mozilla/is.pl
new file mode 100755
index 00000000..44314941
--- /dev/null
+++ b/bin/mozilla/is.pl
@@ -0,0 +1,941 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has NOT undergone whitespace cleanup.
+#
+#======================================================================
+#
+# Inventory invoicing module
+#
+#======================================================================
+
+
+use LedgerSMB::IS;
+use LedgerSMB::PE;
+
+require "$form->{path}/arap.pl";
+require "$form->{path}/io.pl";
+
+
+1;
+# end of main
+
+
+
+sub add {
+
+ $form->{title} = $locale->text('Add Sales Invoice');
+
+ $form->{callback} = "$form->{script}?action=add&type=$form->{type}&login=$form->{login}&path=$form->{path}&sessionid=$form->{sessionid}" unless $form->{callback};
+
+ &invoice_links;
+ &prepare_invoice;
+ &display_form;
+
+}
+
+
+sub edit {
+
+ $form->{title} = $locale->text('Edit Sales Invoice');
+
+ &invoice_links;
+ &prepare_invoice;
+ &display_form;
+
+}
+
+
+sub invoice_links {
+
+ $form->{vc} = "customer";
+ $form->{type} = "invoice";
+
+ # create links
+ $form->create_links("AR", \%myconfig, "customer", 1);
+
+ # currencies
+ @curr = split /:/, $form->{currencies};
+ $form->{defaultcurrency} = $curr[0];
+ chomp $form->{defaultcurrency};
+
+ for (@curr) { $form->{selectcurrency} .= "<option>$_\n" }
+
+ if (@{ $form->{all_customer} }) {
+ unless ($form->{customer_id}) {
+ $form->{customer_id} = $form->{all_customer}->[0]->{id};
+ }
+ }
+
+ AA->get_name(\%myconfig, \%$form);
+ delete $form->{notes};
+ IS->retrieve_invoice(\%myconfig, \%$form);
+
+ $form->{oldlanguage_code} = $form->{language_code};
+
+ $form->get_partsgroup(\%myconfig, { language_code => $form->{language_code}, searchitems => 'nolabor' });
+
+ if (@{ $form->{all_partsgroup} }) {
+ $form->{selectpartsgroup} = "<option>\n";
+ foreach $ref (@ { $form->{all_partsgroup} }) {
+ if ($ref->{translation}) {
+ $form->{selectpartsgroup} .= qq|<option value="$ref->{partsgroup}--$ref->{id}">$ref->{translation}\n|;
+ } else {
+ $form->{selectpartsgroup} .= qq|<option value="$ref->{partsgroup}--$ref->{id}">$ref->{partsgroup}\n|;
+ }
+ }
+ }
+
+ if (@{ $form->{all_project} }) {
+ $form->{selectprojectnumber} = "<option>\n";
+ for (@{ $form->{all_project} }) { $form->{selectprojectnumber} .= qq|<option value="$_->{projectnumber}--$_->{id}">$_->{projectnumber}\n| }
+ }
+
+ $form->{oldcustomer} = "$form->{customer}--$form->{customer_id}";
+ $form->{oldtransdate} = $form->{transdate};
+
+ $form->{selectcustomer} = "";
+ if (@{ $form->{all_customer} }) {
+ $form->{customer} = "$form->{customer}--$form->{customer_id}";
+ for (@{ $form->{all_customer} }) { $form->{selectcustomer} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+ }
+
+ # departments
+ if (@{ $form->{all_department} }) {
+ $form->{selectdepartment} = "<option>\n";
+ $form->{department} = "$form->{department}--$form->{department_id}" if $form->{department_id};
+
+ for (@{ $form->{all_department} }) { $form->{selectdepartment} .= qq|<option value="$_->{description}--$_->{id}">$_->{description}\n| }
+ }
+
+ $form->{employee} = "$form->{employee}--$form->{employee_id}";
+ # sales staff
+ if (@{ $form->{all_employee} }) {
+ $form->{selectemployee} = "";
+ for (@{ $form->{all_employee} }) { $form->{selectemployee} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+ }
+
+ if (@{ $form->{all_language} }) {
+ $form->{selectlanguage} = "<option>\n";
+ for (@{ $form->{all_language} }) { $form->{selectlanguage} .= qq|<option value="$_->{code}">$_->{description}\n| }
+ }
+
+ # forex
+ $form->{forex} = $form->{exchangerate};
+ $exchangerate = ($form->{exchangerate}) ? $form->{exchangerate} : 1;
+
+ foreach $key (keys %{ $form->{AR_links} }) {
+
+ $form->{"select$key"} = "";
+ foreach $ref (@{ $form->{AR_links}{$key} }) {
+ $form->{"select$key"} .= "<option>$ref->{accno}--$ref->{description}\n";
+ }
+
+ if ($key eq "AR_paid") {
+ for $i (1 .. scalar @{ $form->{acc_trans}{$key} }) {
+ $form->{"AR_paid_$i"} = "$form->{acc_trans}{$key}->[$i-1]->{accno}--$form->{acc_trans}{$key}->[$i-1]->{description}";
+ # reverse paid
+ $form->{"paid_$i"} = $form->{acc_trans}{$key}->[$i-1]->{amount} * -1;
+ $form->{"datepaid_$i"} = $form->{acc_trans}{$key}->[$i-1]->{transdate};
+ $form->{"forex_$i"} = $form->{"exchangerate_$i"} = $form->{acc_trans}{$key}->[$i-1]->{exchangerate};
+ $form->{"source_$i"} = $form->{acc_trans}{$key}->[$i-1]->{source};
+ $form->{"memo_$i"} = $form->{acc_trans}{$key}->[$i-1]->{memo};
+ $form->{"cleared_$i"} = $form->{acc_trans}{$key}->[$i-1]->{cleared};
+
+ $form->{paidaccounts} = $i;
+ }
+ } else {
+ $form->{$key} = "$form->{acc_trans}{$key}->[0]->{accno}--$form->{acc_trans}{$key}->[0]->{description}" if $form->{acc_trans}{$key}->[0]->{accno};
+ }
+
+ }
+
+ for (qw(AR_links acc_trans)) { delete $form->{$_} }
+
+ $form->{paidaccounts} = 1 unless (exists $form->{paidaccounts});
+
+ $form->{AR} = $form->{AR_1} unless $form->{id};
+
+ $form->{locked} = ($form->{revtrans}) ? '1' : ($form->datetonum(\%myconfig, $form->{transdate}) <= $form->datetonum(\%myconfig, $form->{closedto}));
+
+ if (! $form->{readonly}) {
+ $form->{readonly} = 1 if $myconfig{acs} =~ /AR--Sales Invoice/;
+ }
+
+}
+
+
+sub prepare_invoice {
+
+ $form->{type} = "invoice";
+ $form->{formname} = "invoice";
+ $form->{sortby} ||= "runningnumber";
+ $form->{format} = "postscript" if $myconfig{printer};
+ $form->{media} = $myconfig{printer};
+
+ $form->{selectformname} = qq|<option value="invoice">|.$locale->text('Invoice').qq|
+<option value="pick_list">|.$locale->text('Pick List').qq|
+<option value="packing_list">|.$locale->text('Packing List');
+
+ $i = 0;
+ $form->{currency} =~ s/ //g;
+ $form->{oldcurrency} = $form->{currency};
+
+ if ($form->{id}) {
+
+ for (qw(invnumber ordnumber ponumber quonumber shippingpoint shipvia notes intnotes)) { $form->{$_} = $form->quote($form->{$_}) }
+
+ foreach $ref (@{ $form->{invoice_details} } ) {
+ $i++;
+ for (keys %$ref) { $form->{"${_}_$i"} = $ref->{$_} }
+
+ $form->{"projectnumber_$i"} = qq|$ref->{projectnumber}--$ref->{project_id}| if $ref->{project_id};
+ $form->{"partsgroup_$i"} = qq|$ref->{partsgroup}--$ref->{partsgroup_id}| if $ref->{partsgroup_id};
+
+ $form->{"discount_$i"} = $form->format_amount(\%myconfig, $form->{"discount_$i"} * 100);
+
+ ($dec) = ($form->{"sellprice_$i"} =~ /\.(\d+)/);
+ $dec = length $dec;
+ $decimalplaces = ($dec > 2) ? $dec : 2;
+
+ $form->{"sellprice_$i"} = $form->format_amount(\%myconfig, $form->{"sellprice_$i"}, $decimalplaces);
+ $form->{"qty_$i"} = $form->format_amount(\%myconfig, $form->{"qty_$i"});
+ $form->{"oldqty_$i"} = $form->{"qty_$i"};
+
+ for (qw(partnumber sku description unit)) { $form->{"${_}_$i"} = $form->quote($form->{"${_}_$i"}) }
+ $form->{rowcount} = $i;
+ }
+ }
+
+}
+
+
+
+sub form_header {
+
+ # set option selected
+ for (qw(AR currency)) {
+ $form->{"select$_"} =~ s/ selected//;
+ $form->{"select$_"} =~ s/option>\Q$form->{$_}\E/option selected>$form->{$_}/;
+ }
+
+ for (qw(customer department employee)) {
+ $form->{"select$_"} = $form->unescape($form->{"select$_"});
+ $form->{"select$_"} =~ s/ selected//;
+ $form->{"select$_"} =~ s/(<option value="\Q$form->{$_}\E")/$1 selected/;
+ }
+
+ $form->{exchangerate} = $form->format_amount(\%myconfig, $form->{exchangerate});
+
+
+ $exchangerate = qq|<tr>|;
+ $exchangerate .= qq|
+ <th align=right nowrap>|.$locale->text('Currency').qq|</th>
+ <td><select name=currency>$form->{selectcurrency}</select></td>
+| if $form->{defaultcurrency};
+ $exchangerate .= qq|
+ <input type=hidden name=selectcurrency value="$form->{selectcurrency}">
+ <input type=hidden name=defaultcurrency value=$form->{defaultcurrency}>
+|;
+
+ if ($form->{defaultcurrency} && $form->{currency} ne $form->{defaultcurrency}) {
+ if ($form->{forex}) {
+ $exchangerate .= qq|<th align=right>|.$locale->text('Exchange Rate').qq|</th><td>$form->{exchangerate}<input type=hidden name=exchangerate value=$form->{exchangerate}></td>|;
+ } else {
+ $exchangerate .= qq|<th align=right>|.$locale->text('Exchange Rate').qq|</th><td><input name=exchangerate size=10 value=$form->{exchangerate}></td>|;
+ }
+ }
+ $exchangerate .= qq|
+<input type=hidden name=forex value=$form->{forex}>
+</tr>
+|;
+
+ if ($form->{selectcustomer}) {
+ $customer = qq|<select name=customer>$form->{selectcustomer}</select>
+ <input type=hidden name="selectcustomer" value="|.
+ $form->escape($form->{selectcustomer},1).qq|">|;
+ } else {
+ $customer = qq|<input name=customer value="$form->{customer}" size=35>|;
+ }
+
+ $department = qq|
+ <tr>
+ <th align="right" nowrap>|.$locale->text('Department').qq|</th>
+ <td colspan=3><select name=department>$form->{selectdepartment}</select>
+ <input type=hidden name=selectdepartment value="|.
+ $form->escape($form->{selectdepartment},1).qq|">
+ </td>
+ </tr>
+| if $form->{selectdepartment};
+
+
+ $n = ($form->{creditremaining} < 0) ? "0" : "1";
+
+
+ if ($form->{business}) {
+ $business = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Business').qq|</th>
+ <td>$form->{business}</td>
+ <td width=10></td>
+ <th align=right nowrap>|.$locale->text('Trade Discount').qq|</th>
+ <td>|.$form->format_amount(\%myconfig, $form->{tradediscount} * 100).qq| %</td>
+ </tr>
+|;
+ }
+
+ $employee = qq|
+ <input type=hidden name=employee value="$form->{employee}">
+|;
+
+
+ $employee = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Salesperson').qq|</th>
+ <td><select name=employee>$form->{selectemployee}</select></td>
+ <input type=hidden name=selectemployee value="|.
+ $form->escape($form->{selectemployee},1).qq|">
+ </tr>
+| if $form->{selectemployee};
+
+ $i = $form->{rowcount} + 1;
+ $focus = "partnumber_$i";
+
+ $form->header;
+
+ print qq|
+<body onLoad="document.forms[0].${focus}.focus()" />
+
+<form method=post action="$form->{script}">
+|;
+
+ $form->hide_form(qw(id type media format printed emailed queued title vc terms discount creditlimit creditremaining tradediscount business closedto locked shipped oldtransdate recurring));
+
+ print qq|
+<table width=100%>
+ <tr class=listtop>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Customer').qq|</th>
+ <td colspan=3>$customer</td>
+ <input type=hidden name=customer_id value=$form->{customer_id}>
+ <input type=hidden name=oldcustomer value="$form->{oldcustomer}">
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan=3>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Credit Limit').qq|</th>
+ <td>|.$form->format_amount(\%myconfig, $form->{creditlimit}, 0, "0").qq|</td>
+ <td width=10></td>
+ <th align=right nowrap>|.$locale->text('Remaining').qq|</th>
+ <td class="plus$n" nowrap>|.$form->format_amount(\%myconfig, $form->{creditremaining}, 0, "0").qq|</td>
+ </tr>
+ $business
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Record in').qq|</th>
+ <td colspan=3><select name=AR>$form->{selectAR}</select></td>
+ <input type=hidden name=selectAR value="$form->{selectAR}">
+ </tr>
+ $department
+ $exchangerate
+ <tr>
+ <th align=right nowrap>|.$locale->text('Shipping Point').qq|</th>
+ <td colspan=3><input name=shippingpoint size=35 value="$form->{shippingpoint}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Ship via').qq|</th>
+ <td colspan=3><input name=shipvia size=35 value="$form->{shipvia}"></td>
+ </tr>
+ </table>
+ </td>
+ <td align=right>
+ <table>
+ $employee
+ <tr>
+ <th align=right nowrap>|.$locale->text('Invoice Number').qq|</th>
+ <td><input name=invnumber size=20 value="$form->{invnumber}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Order Number').qq|</th>
+ <td><input name=ordnumber size=20 value="$form->{ordnumber}"></td>
+<input type=hidden name=quonumber value="$form->{quonumber}">
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Invoice Date').qq|</th>
+ <td><input name=transdate size=11 title="$myconfig{dateformat}" value=$form->{transdate}></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Due Date').qq|</th>
+ <td><input name=duedate size=11 title="$myconfig{dateformat}" value=$form->{duedate}></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('PO Number').qq|</th>
+ <td><input name=ponumber size=20 value="$form->{ponumber}"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ </td>
+ </tr>
+|;
+
+ $form->hide_form(qw(shiptoname shiptoaddress1 shiptoaddress2 shiptocity shiptostate shiptozipcode shiptocountry shiptocontact shiptophone shiptofax shiptoemail message email subject cc bcc taxaccounts));
+
+ foreach $item (split / /, $form->{taxaccounts}) {
+ $form->hide_form("${item}_rate", "${item}_description", "${item}_taxnumber");
+ }
+
+}
+
+
+
+sub form_footer {
+
+ $form->{invtotal} = $form->{invsubtotal};
+
+ if (($rows = $form->numtextrows($form->{notes}, 35, 8)) < 2) {
+ $rows = 2;
+ }
+ if (($introws = $form->numtextrows($form->{intnotes}, 35, 8)) < 2) {
+ $introws = 2;
+ }
+ $rows = ($rows > $introws) ? $rows : $introws;
+ $notes = qq|<textarea name=notes rows=$rows cols=35 wrap=soft>$form->{notes}</textarea>|;
+ $intnotes = qq|<textarea name=intnotes rows=$rows cols=35 wrap=soft>$form->{intnotes}</textarea>|;
+
+ $form->{taxincluded} = ($form->{taxincluded}) ? "checked" : "";
+
+ $taxincluded = "";
+ if ($form->{taxaccounts}) {
+ $taxincluded = qq|
+ <tr height="5"></tr>
+ <tr>
+ <td align=right>
+ <input name=taxincluded class=checkbox type=checkbox value=1 $form->{taxincluded}></td><th align=left>|.$locale->text('Tax Included').qq|</th>
+ </tr>
+|;
+ }
+
+ if (!$form->{taxincluded}) {
+
+ for (split / /, $form->{taxaccounts}) {
+ if ($form->{"${_}_base"}) {
+ $form->{"${_}_total"} = $form->round_amount($form->{"${_}_base"} * $form->{"${_}_rate"}, 2);
+ $form->{invtotal} += $form->{"${_}_total"};
+ $form->{"${_}_total"} = $form->format_amount(\%myconfig, $form->{"${_}_total"}, 2);
+
+ $tax .= qq|
+ <tr>
+ <th align=right>$form->{"${_}_description"}</th>
+ <td align=right>$form->{"${_}_total"}</td>
+ </tr>
+|;
+ }
+ }
+
+ $form->{invsubtotal} = $form->format_amount(\%myconfig, $form->{invsubtotal}, 2, 0);
+
+ $subtotal = qq|
+ <tr>
+ <th align=right>|.$locale->text('Subtotal').qq|</th>
+ <td align=right>$form->{invsubtotal}</td>
+ </tr>
+|;
+
+ }
+
+ $form->{oldinvtotal} = $form->{invtotal};
+ $form->{invtotal} = $form->format_amount(\%myconfig, $form->{invtotal}, 2, 0);
+
+ print qq|
+ <tr>
+ <td>
+ <table width=100%>
+ <tr valign=bottom>
+ <td>
+ <table>
+ <tr>
+ <th align=left>|.$locale->text('Notes').qq|</th>
+ <th align=left>|.$locale->text('Internal Notes').qq|</th>
+ </tr>
+ <tr valign=top>
+ <td>$notes</td>
+ <td>$intnotes</td>
+ </tr>
+ </table>
+ </td>
+ <td align=right>
+ <table>
+ $subtotal
+ $tax
+ <tr>
+ <th align=right>|.$locale->text('Total').qq|</th>
+ <td align=right>$form->{invtotal}</td>
+ </tr>
+ $taxincluded
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+ <th colspan=6 class=listheading>|.$locale->text('Payments')
+ .qq|</th>
+ </tr>
+|;
+
+ if ($form->{currency} eq $form->{defaultcurrency}) {
+ @column_index = qw(datepaid source memo paid AR_paid);
+ } else {
+ @column_index = qw(datepaid source memo paid exchangerate AR_paid);
+ }
+
+ $column_data{datepaid} = "<th>".$locale->text('Date')."</th>";
+ $column_data{paid} = "<th>".$locale->text('Amount')."</th>";
+ $column_data{exchangerate} = "<th>".$locale->text('Exch')."</th>";
+ $column_data{AR_paid} = "<th>".$locale->text('Account')."</th>";
+ $column_data{source} = "<th>".$locale->text('Source')."</th>";
+ $column_data{memo} = "<th>".$locale->text('Memo')."</th>";
+
+ print "
+ <tr>
+";
+ for (@column_index) { print "$column_data{$_}\n" }
+ print "
+ </tr>
+";
+
+ $form->{paidaccounts}++ if ($form->{"paid_$form->{paidaccounts}"});
+ for $i (1 .. $form->{paidaccounts}) {
+
+ $form->hide_form("cleared_$i");
+
+ print "
+ <tr>\n";
+
+ $form->{"selectAR_paid_$i"} = $form->{selectAR_paid};
+ $form->{"selectAR_paid_$i"} =~ s/option>\Q$form->{"AR_paid_$i"}\E/option selected>$form->{"AR_paid_$i"}/;
+
+ # format amounts
+ $totalpaid += $form->{"paid_$i"};
+ $form->{"paid_$i"} = $form->format_amount(\%myconfig, $form->{"paid_$i"}, 2);
+ $form->{"exchangerate_$i"} = $form->format_amount(\%myconfig, $form->{"exchangerate_$i"});
+
+ $exchangerate = qq|&nbsp;|;
+ if ($form->{currency} ne $form->{defaultcurrency}) {
+ if ($form->{"forex_$i"}) {
+ $exchangerate = qq|<input type=hidden name="exchangerate_$i" value=$form->{"exchangerate_$i"}>$form->{"exchangerate_$i"}|;
+ } else {
+ $exchangerate = qq|<input name="exchangerate_$i" size=10 value=$form->{"exchangerate_$i"}>|;
+ }
+ }
+
+ $exchangerate .= qq|
+<input type=hidden name="forex_$i" value=$form->{"forex_$i"}>
+|;
+
+ $column_data{paid} = qq|<td align=center><input name="paid_$i" size=11 value=$form->{"paid_$i"}></td>|;
+ $column_data{exchangerate} = qq|<td align=center>$exchangerate</td>|;
+ $column_data{AR_paid} = qq|<td align=center><select name="AR_paid_$i">$form->{"selectAR_paid_$i"}</select></td>|;
+ $column_data{datepaid} = qq|<td align=center><input name="datepaid_$i" size=11 title="$myconfig{dateformat}" value=$form->{"datepaid_$i"}></td>|;
+ $column_data{source} = qq|<td align=center><input name="source_$i" size=11 value="$form->{"source_$i"}"></td>|;
+ $column_data{memo} = qq|<td align=center><input name="memo_$i" size=11 value="$form->{"memo_$i"}"></td>|;
+
+ for (@column_index) { print qq|$column_data{$_}\n| }
+ print "
+ </tr>\n";
+ }
+
+ $form->{oldtotalpaid} = $totalpaid;
+ $form->hide_form(qw(paidaccounts selectAR_paid oldinvtotal oldtotalpaid));
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+ <tr>
+ <td>
+|;
+
+ &print_options;
+
+ print qq|
+ </td>
+ </tr>
+</table>
+<br>
+|;
+
+
+ $transdate = $form->datetonum(\%myconfig, $form->{transdate});
+ $closedto = $form->datetonum(\%myconfig, $form->{closedto});
+
+# type=submit $locale->text('Update')
+# type=submit $locale->text('Print')
+# type=submit $locale->text('Post')
+# type=submit $locale->text('Print and Post')
+# type=submit $locale->text('Schedule')
+# type=submit $locale->text('Ship to')
+# type=submit $locale->text('Post as new')
+# type=submit $locale->text('Print and Post as new')
+# type=submit $locale->text('E-mail')
+# type=submit $locale->text('Delete')
+# type=submit $locale->text('Sales Order')
+
+ if (! $form->{readonly}) {
+
+ %button = ('Update' => { ndx => 1, key => 'U', value => $locale->text('Update') },
+ 'Print' => { ndx => 2, key => 'P', value => $locale->text('Print') },
+ 'Post' => { ndx => 3, key => 'O', value => $locale->text('Post') },
+ 'Ship to' => { ndx => 4, key => 'T', value => $locale->text('Ship to') },
+ 'E-mail' => { ndx => 5, key => 'E', value => $locale->text('E-mail') },
+ 'Print and Post' => { ndx => 6, key => 'R', value => $locale->text('Print and Post') },
+ 'Post as new' => { ndx => 7, key => 'N', value => $locale->text('Post as new') },
+ 'Print and Post as new' => { ndx => 8, key => 'W', value => $locale->text('Print and Post as new') },
+ 'Sales Order' => { ndx => 9, key => 'L', value => $locale->text('Sales Order') },
+ 'Schedule' => { ndx => 10, key => 'H', value => $locale->text('Schedule') },
+ 'Delete' => { ndx => 11, key => 'D', value => $locale->text('Delete') },
+ );
+
+ if ($form->{id}) {
+
+ if ($form->{locked} || $transdate <= $closedto) {
+ for ("Post", "Print and Post", "Delete") { delete $button{$_} }
+ }
+
+ if (!$latex) {
+ for ("Print and Post", "Print and Post as new") { delete $button{$_} }
+ }
+
+ } else {
+
+ if ($transdate > $closedto) {
+
+ for ("Update", "Ship to", "Print", "E-mail", "Post", "Schedule") { $a{$_} = 1 }
+ $a{'Print and Post'} = 1 if $latex;
+
+ }
+ for (keys %button) { delete $button{$_} if ! $a{$_} }
+ }
+
+ for (sort { $button{$a}->{ndx} <=> $button{$b}->{ndx} } keys %button) { $form->print_button(\%button, $_) }
+
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ $form->hide_form(qw(rowcount callback path login sessionid));
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub update {
+
+ $form->{exchangerate} = $form->parse_amount(\%myconfig, $form->{exchangerate});
+
+ if ($newname = &check_name(customer)) {
+ &rebuild_vc(customer, AR, $form->{transdate}, 1);
+ }
+ if ($form->{transdate} ne $form->{oldtransdate}) {
+ $form->{duedate} = ($form->{terms}) ? $form->current_date(\%myconfig, $form->{transdate}, $form->{terms} * 1) : $form->{duedate};
+ $form->{oldtransdate} = $form->{transdate};
+ &rebuild_vc(customer, AR, $form->{transdate}, 1) if ! $newname;
+
+ if ($form->{currency} ne $form->{defaultcurrency}) {
+ delete $form->{exchangerate};
+ $form->{exchangerate} = $exchangerate if ($form->{forex} = ($exchangerate = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{transdate}, 'buy')));
+ }
+
+ $form->{selectemployee} = "";
+ if (@{ $form->{all_employee} }) {
+ for (@{ $form->{all_employee} }) { $form->{selectemployee} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+ }
+ }
+
+ if ($form->{currency} ne $form->{oldcurrency}) {
+ delete $form->{exchangerate};
+ $form->{exchangerate} = $exchangerate if ($form->{forex} = ($exchangerate = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{transdate}, 'buy')));
+ }
+
+
+ $j = 1;
+ for $i (1 .. $form->{paidaccounts}) {
+ if ($form->{"paid_$i"}) {
+ for (qw(datepaid source memo cleared)) { $form->{"${_}_$j"} = $form->{"${_}_$i"} }
+ for (qw(paid exchangerate)) { $form->{"${_}_$j"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) }
+
+ $form->{"exchangerate_$j"} = $exchangerate if ($form->{"forex_$j"} = ($exchangerate = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{"datepaid_$j"}, 'buy')));
+ if ($j++ != $i) {
+ for (qw(datepaid source memo cleared paid exchangerate forex)) { delete $form->{"${_}_$i"} }
+ }
+ } else {
+ for (qw(datepaid source memo cleared paid exchangerate forex)) { delete $form->{"${_}_$i"} }
+ }
+ }
+ $form->{paidaccounts} = $j;
+
+ $i = $form->{rowcount};
+ $exchangerate = ($form->{exchangerate}) ? $form->{exchangerate} : 1;
+
+ for (qw(partsgroup projectnumber)) {
+ $form->{"select$_"} = $form->unescape($form->{"select$_"}) if $form->{"select$_"};
+ }
+
+ # if last row empty, check the form otherwise retrieve new item
+ if (($form->{"partnumber_$i"} eq "") && ($form->{"description_$i"} eq "") && ($form->{"partsgroup_$i"} eq "")) {
+
+ $form->{creditremaining} += ($form->{oldinvtotal} - $form->{oldtotalpaid});
+ &check_form;
+
+ } else {
+
+ IS->retrieve_item(\%myconfig, \%$form);
+
+ $rows = scalar @{ $form->{item_list} };
+
+ if ($form->{language_code} && $rows == 0) {
+ $language_code = $form->{language_code};
+ $form->{language_code} = "";
+ IS->retrieve_item(\%myconfig, \%$form);
+ $form->{language_code} = $language_code;
+ $rows = scalar @{ $form->{item_list} };
+ }
+
+ if ($rows) {
+
+ if ($rows > 1) {
+
+ &select_item;
+ exit;
+
+ } else {
+
+ $form->{"qty_$i"} = ($form->{"qty_$i"} * 1) ? $form->{"qty_$i"} : 1;
+
+ $sellprice = $form->parse_amount(\%myconfig, $form->{"sellprice_$i"});
+
+ for (qw(partnumber description unit)) { $form->{item_list}[$i]{$_} = $form->quote($form->{item_list}[$i]{$_}) }
+ for (keys %{ $form->{item_list}[0] }) { $form->{"${_}_$i"} = $form->{item_list}[0]{$_} }
+
+ $form->{"discount_$i"} = $form->{discount} * 100;
+
+ if ($sellprice) {
+ $form->{"sellprice_$i"} = $sellprice;
+
+ ($dec) = ($form->{"sellprice_$i"} =~ /\.(\d+)/);
+ $dec = length $dec;
+ $decimalplaces1 = ($dec > 2) ? $dec : 2;
+ } else {
+ ($dec) = ($form->{"sellprice_$i"} =~ /\.(\d+)/);
+ $dec = length $dec;
+ $decimalplaces1 = ($dec > 2) ? $dec : 2;
+
+ $form->{"sellprice_$i"} /= $exchangerate;
+ }
+
+ ($dec) = ($form->{"lastcost_$i"} =~ /\.(\d+)/);
+ $dec = length $dec;
+ $decimalplaces2 = ($dec > 2) ? $dec : 2;
+
+ # if there is an exchange rate adjust sellprice
+ for (qw(listprice lastcost)) { $form->{"${_}_$i"} /= $exchangerate }
+
+ $amount = $form->{"sellprice_$i"} * $form->{"qty_$i"} * (1 - $form->{"discount_$i"} / 100);
+ for (split / /, $form->{taxaccounts}) { $form->{"${_}_base"} = 0 }
+ for (split / /, $form->{"taxaccounts_$i"}) { $form->{"${_}_base"} += $amount }
+ if (!$form->{taxincluded}) {
+ for (split / /, $form->{"taxaccounts_$i"}) { $amount += ($form->{"${_}_base"} * $form->{"${_}_rate"}) }
+ }
+
+ $form->{creditremaining} -= $amount;
+
+ for (qw(sellprice listprice)) { $form->{"${_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}, $decimalplaces1) }
+ $form->{"lastcost_$i"} = $form->format_amount(\%myconfig, $form->{"lastcost_$i"}, $decimalplaces2);
+
+ $form->{"oldqty_$i"} = $form->{"qty_$i"};
+ for (qw(qty discount)) { $form->{"{_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}) }
+
+ }
+
+ &display_form;
+
+ } else {
+ # ok, so this is a new part
+ # ask if it is a part or service item
+
+ if ($form->{"partsgroup_$i"} && ($form->{"partsnumber_$i"} eq "") && ($form->{"description_$i"} eq "")) {
+ $form->{rowcount}--;
+ &display_form;
+ } else {
+
+ $form->{"id_$i"} = 0;
+ $form->{"unit_$i"} = $locale->text('ea');
+
+ &new_item;
+
+ }
+ }
+ }
+}
+
+
+
+sub post {
+
+ $form->isblank("transdate", $locale->text('Invoice Date missing!'));
+ $form->isblank("customer", $locale->text('Customer missing!'));
+
+ # if oldcustomer ne customer redo form
+ if (&check_name(customer)) {
+ &update;
+ exit;
+ }
+
+ &validate_items;
+
+ $closedto = $form->datetonum(\%myconfig, $form->{closedto});
+ $transdate = $form->datetonum(\%myconfig, $form->{transdate});
+
+ $form->error($locale->text('Cannot post invoice for a closed period!')) if ($transdate <= $closedto);
+
+ $form->isblank("exchangerate", $locale->text('Exchange rate missing!')) if ($form->{currency} ne $form->{defaultcurrency});
+
+ for $i (1 .. $form->{paidaccounts}) {
+ if ($form->{"paid_$i"}) {
+ $datepaid = $form->datetonum(\%myconfig, $form->{"datepaid_$i"});
+
+ $form->isblank("datepaid_$i", $locale->text('Payment date missing!'));
+
+ $form->error($locale->text('Cannot post payment for a closed period!')) if ($datepaid <= $closedto);
+
+ if ($form->{currency} ne $form->{defaultcurrency}) {
+ $form->{"exchangerate_$i"} = $form->{exchangerate} if ($transdate == $datepaid);
+ $form->isblank("exchangerate_$i", $locale->text('Exchange rate for payment missing!'));
+ }
+ }
+ }
+
+
+ $form->{label} = $locale->text('Invoice');
+
+ if (! $form->{repost}) {
+ if ($form->{id}) {
+ &repost;
+ exit;
+ }
+ }
+
+ ($form->{AR}) = split /--/, $form->{AR};
+ ($form->{AR_paid}) = split /--/, $form->{AR_paid};
+
+ if (IS->post_invoice(\%myconfig, \%$form)) {
+ $form->redirect($locale->text('Invoice')." $form->{invnumber} ".$locale->text('posted!'));
+ } else {
+ $form->error($locale->text('Cannot post invoice!'));
+ }
+
+}
+
+
+sub print_and_post {
+
+ $form->error($locale->text('Select postscript or PDF!')) if $form->{format} !~ /(postscript|pdf)/;
+ $form->error($locale->text('Select a Printer!')) if $form->{media} eq 'screen';
+
+ if (! $form->{repost}) {
+ if ($form->{id}) {
+ $form->{print_and_post} = 1;
+ &repost;
+ exit;
+ }
+ }
+
+ $old_form = new Form;
+ $form->{display_form} = "post";
+ for (keys %$form) { $old_form->{$_} = $form->{$_} }
+ $old_form->{rowcount}++;
+
+ &print_form($old_form);
+
+}
+
+
+sub delete {
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+|;
+
+ $form->{action} = "yes";
+ $form->hide_form;
+
+ print qq|
+<h2 class=confirm>|.$locale->text('Confirm!').qq|</h2>
+
+<h4>|.$locale->text('Are you sure you want to delete Invoice Number').qq| $form->{invnumber}
+</h4>
+
+<p>
+<input name=action class=submit type=submit value="|.$locale->text('Yes').qq|">
+</form>
+|;
+
+
+}
+
+
+
+sub yes {
+
+ if (IS->delete_invoice(\%myconfig, \%$form, $spool)) {
+ $form->redirect($locale->text('Invoice deleted!'));
+ } else {
+ $form->error($locale->text('Cannot delete invoice!'));
+ }
+
+}
+
+
diff --git a/bin/mozilla/jc.pl b/bin/mozilla/jc.pl
new file mode 100755
index 00000000..c4205333
--- /dev/null
+++ b/bin/mozilla/jc.pl
@@ -0,0 +1,1901 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has NOT undergone whitespace cleanup.
+#
+#======================================================================
+#
+# Job Costing module
+#
+#======================================================================
+
+use LedgerSMB::JC;
+
+1;
+# end of main
+
+
+
+sub add {
+
+ if ($form->{type} eq 'timecard') {
+ $form->{title} = $locale->text('Add Time Card');
+ }
+ if ($form->{type} eq 'storescard') {
+ $form->{title} = $locale->text('Add Stores Card');
+ }
+
+ $form->{callback} = "$form->{script}?action=add&type=$form->{type}&login=$form->{login}&path=$form->{path}&sessionid=$form->{sessionid}&project=$form->{project}" unless $form->{callback};
+
+ &{ "prepare_$form->{type}" };
+
+ $form->{orphaned} = 1;
+ &display_form;
+
+}
+
+
+sub edit {
+
+ if ($form->{type} eq 'timecard') {
+ $form->{title} = $locale->text('Edit Time Card');
+ }
+ if ($form->{type} eq 'storescard') {
+ $form->{title} = $locale->text('Add Stores Card');
+ }
+
+ &{ "prepare_$form->{type}" };
+
+ &display_form;
+
+}
+
+
+sub jcitems_links {
+
+ if (@{ $form->{all_project} }) {
+ $form->{selectprojectnumber} = "<option>\n";
+ foreach $ref (@{ $form->{all_project} }) {
+ $form->{selectprojectnumber} .= qq|<option value="$ref->{projectnumber}--$ref->{id}">$ref->{projectnumber}\n|;
+ if ($form->{projectnumber} eq "$ref->{projectnumber}--$ref->{id}") {
+ $form->{projectdescription} = $ref->{description};
+ }
+ }
+ } else {
+ if ($form->{project} eq 'job') {
+ $form->error($locale->text('No open Jobs!'));
+ } else {
+ $form->error($locale->text('No open Projects!'));
+ }
+ }
+
+ if (@{ $form->{all_parts} }) {
+ $form->{selectpartnumber} = "<option>\n";
+ foreach $ref (@{ $form->{all_parts} }) {
+ $form->{selectpartnumber} .= qq|<option value="$ref->{partnumber}--$ref->{id}">$ref->{partnumber}\n|;
+ if ($form->{partnumber} eq "$ref->{partnumber}--$ref->{id}") {
+ if ($form->{partnumber} ne $form->{oldpartnumber}) {
+ for (qw(description unit sellprice pricematrix)) { $form->{$_} = $ref->{$_} }
+ }
+ }
+ }
+ } else {
+ if ($form->{type} eq 'timecard') {
+ if ($form->{project} eq 'job') {
+ $form->error($locale->text('No Labor codes on file!'));
+ } else {
+ $form->error($locale->text('No Services on file!'));
+ }
+ } else {
+ $form->error($locale->text('No Parts on file!'));
+ }
+ }
+
+ # employees
+ if (@{ $form->{all_employee} }) {
+ $form->{selectemployee} = "<option>\n";
+ for (@{ $form->{all_employee} }) { $form->{selectemployee} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+ } else {
+ $form->error($locale->text('No Employees on file!'));
+ }
+
+}
+
+
+sub search {
+
+ # accounting years
+ $form->all_years(\%myconfig);
+
+ if (@{ $form->{all_years} }) {
+ $form->{selectaccountingyear} = "<option>\n";
+ for (@{ $form->{all_years} }) { $form->{selectaccountingyear} .= qq|<option>$_\n| }
+
+ $form->{selectaccountingmonth} = "<option>\n";
+ for (sort keys %{ $form->{all_month} }) { $form->{selectaccountingmonth} .= qq|<option value=$_>|.$locale->text($form->{all_month}{$_}).qq|\n| }
+
+ $selectfrom = qq|
+ <tr>
+ <th align=right>|.$locale->text('Period').qq|</th>
+ <td colspan=3>
+ <select name=month>$form->{selectaccountingmonth}</select>
+ <select name=year>$form->{selectaccountingyear}</select>
+ <input name=interval class=radio type=radio value=0 checked>&nbsp;|.$locale->text('Current').qq|
+ <input name=interval class=radio type=radio value=1>&nbsp;|.$locale->text('Month').qq|
+ <input name=interval class=radio type=radio value=3>&nbsp;|.$locale->text('Quarter').qq|
+ <input name=interval class=radio type=radio value=12>&nbsp;|.$locale->text('Year').qq|
+ </td>
+ </tr>
+|;
+ }
+
+ $fromto = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Startdate').qq|</th>
+ <td>|.$locale->text('From').qq| <input name=startdatefrom size=11 title="$myconfig{dateformat}">
+ |.$locale->text('To').qq| <input name=startdateto size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+ $selectfrom
+|;
+
+
+ if ($form->{type} eq 'timecard') {
+ $form->{title} = $locale->text('Time Cards');
+ JC->jcitems_links(\%myconfig, \%$form);
+ }
+ if ($form->{type} eq 'storescard') {
+ $form->{title} = $locale->text('Stores Cards');
+ JC->jcitems_links(\%myconfig, \%$form);
+ }
+
+ if (@{ $form->{all_project} }) {
+ $form->{selectprojectnumber} = "<option>\n";
+ for (@{ $form->{all_project} }) { $form->{selectprojectnumber} .= qq|<option value="$_->{projectnumber}--$_->{id}">$_->{projectnumber}\n| }
+ }
+
+ if (@{ $form->{all_parts} }) {
+ $form->{selectpartnumber} = "<option>\n";
+ foreach $ref (@{ $form->{all_parts} }) {
+ $form->{selectpartnumber} .= qq|<option value="$ref->{partnumber}--$ref->{id}">$ref->{partnumber}\n|;
+ }
+ }
+
+ if ($form->{project} eq 'job') {
+ $joblabel = $locale->text('Job Number');
+ $laborlabel = $locale->text('Labor Code');
+ } elsif ($form->{project} eq 'project') {
+ $joblabel = $locale->text('Project Number');
+ $laborlabel = $locale->text('Service Code');
+ } else {
+ $joblabel = $locale->text('Project/Job Number');
+ $laborlabel = $locale->text('Service/Labor Code');
+ }
+
+ if ($form->{selectprojectnumber}) {
+ $jobnumber = qq|
+ <tr>
+ <th align=right nowrap>$joblabel</th>
+ <td colspan=3><select name=projectnumber>$form->{selectprojectnumber}</select></td>
+ </tr>
+|;
+ }
+
+
+ if ($form->{type} eq 'timecard') {
+ # employees
+ if (@{ $form->{all_employee} }) {
+ $form->{selectemployee} = "<option>\n";
+ for (@{ $form->{all_employee} }) { $form->{selectemployee} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+ } else {
+ $form->error($locale->text('No Employees on file!'));
+ }
+
+ if ($form->{selectpartnumber}) {
+ $partnumber = qq|
+ <tr>
+ <th align=right nowrap>$laborlabel</th>
+ <td colspan=3><select name=partnumber>$form->{selectpartnumber}</select></td>
+ </tr>
+|;
+ }
+
+ $employee = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Employee').qq|</th>
+ <td colspan=3><select name=employee>$form->{selectemployee}</select></td>
+ </tr>
+|;
+
+ $l_time = qq|<td nowrap><input name=l_time class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Time').qq|</td>|;
+
+ }
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr valign=top>
+ <td>
+ <table>
+ $jobnumber
+ $partnumber
+ $employee
+ $fromto
+
+ <tr>
+ <th align=right nowrap>|.$locale->text('Include in Report').qq|</th>
+ <td>
+ <table>
+ <tr>
+ <td nowrap><input name=open class=checkbox type=checkbox value=Y checked> |.$locale->text('Open').qq|</td>
+ <td nowrap><input name=closed class=checkbox type=checkbox value=Y> |.$locale->text('Closed').qq|</td>
+ </tr>
+ <tr>
+ $l_time
+ <td nowrap><input name=l_allocated class=checkbox type=checkbox value=Y> |.$locale->text('Allocated').qq|</td>
+ </tr>
+ <tr>
+ <td><input name=l_subtotal class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Subtotal').qq|</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<input type=hidden name=nextsub value="list_$form->{type}">
+<input type=hidden name=sort value="transdate">
+|;
+
+ $form->hide_form(qw(db path login sessionid project type));
+
+ print qq|
+<br>
+<input type=submit class=submit name=action value="|.$locale->text('Continue').qq|">
+</form>
+|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+</body>
+</html>
+|;
+
+}
+
+
+sub display_form {
+
+ &{ "$form->{type}_header" };
+ &{ "$form->{type}_footer" };
+
+}
+
+
+sub form_header {
+
+ &{ "$form->{type}_header" };
+
+}
+
+
+sub form_footer {
+
+ &{ "form->{type}_footer" };
+
+}
+
+
+sub prepare_timecard {
+
+ $form->{formname} = "timecard";
+ $form->{format} = "postscript" if $myconfig{printer};
+ $form->{media} = $myconfig{printer};
+
+ JC->get_jcitems(\%myconfig, \%$form);
+
+ $form->{selectformname} = qq|<option value="timecard">|.$locale->text('Time Card');
+
+ foreach $item (qw(in out)) {
+ ($form->{"${item}hour"}, $form->{"${item}min"}, $form->{"${item}sec"}) = split /:/, $form->{"checked$item"};
+ for (qw(hour min sec)) {
+ if (($form->{"$item$_"} *= 1) > 0) {
+ $form->{"$item$_"} = substr(qq|0$form->{"$item$_"}|,-2);
+ } else {
+ $form->{"$item$_"} ||= "";
+ }
+ }
+ }
+
+ $form->{checkedin} = $form->{inhour} * 3600 + $form->{inmin} * 60 + $form->{insec};
+ $form->{checkedout} = $form->{outhour} * 3600 + $form->{outmin} * 60 + $form->{outsec};
+
+ if ($form->{checkedin} > $form->{checkedout}) {
+ $form->{checkedout} = 86400 - ($form->{checkedin} - $form->{checkedout});
+ $form->{checkedin} = 0;
+ }
+
+ $form->{clocked} = ($form->{checkedout} - $form->{checkedin}) / 3600;
+ if ($form->{clocked}) {
+ $form->{oldnoncharge} = $form->{clocked} - $form->{qty};
+ }
+ $form->{oldqty} = $form->{qty};
+
+ $form->{noncharge} = $form->format_amount(\%myconfig, $form->{clocked} - $form->{qty}, 4) if $form->{checkedin} != $form->{checkedout};
+ $form->{clocked} = $form->format_amount(\%myconfig, $form->{clocked}, 4);
+
+ $form->{amount} = $form->{sellprice} * $form->{qty};
+ for (qw(sellprice amount)) { $form->{$_} = $form->format_amount(\%myconfig, $form->{$_}, 2) }
+ $form->{qty} = $form->format_amount(\%myconfig, $form->{qty}, 4);
+ $form->{allocated} = $form->format_amount(\%myconfig, $form->{allocated});
+
+ $form->{employee} .= "--$form->{employee_id}";
+ $form->{projectnumber} .= "--$form->{project_id}";
+ $form->{partnumber} .= "--$form->{parts_id}";
+ $form->{oldpartnumber} = $form->{partnumber};
+
+ if (@{ $form->{all_language} }) {
+ $form->{selectlanguage} = "<option>\n";
+ for (@{ $form->{all_language} }) { $form->{selectlanguage} .= qq|<option value="$_->{code}">$_->{description}\n| }
+ }
+
+ &jcitems_links;
+
+ $form->{locked} = ($form->{revtrans}) ? '1' : ($form->datetonum(\%myconfig, $form->{transdate}) <= $form->datetonum(\%myconfig, $form->{closedto}));
+
+ $form->{readonly} = 1 if $myconfig{acs} =~ /Production--Add Time Card/;
+
+ if ($form->{income_accno_id}) {
+ $form->{locked} = 1 if $form->{production} == $form->{completed};
+ }
+
+}
+
+
+sub timecard_header {
+
+ # set option selected
+ for (qw(employee projectnumber partnumber)) {
+ $form->{"select$_"} =~ s/ selected//;
+ $form->{"select$_"} =~ s/(<option value="\Q$form->{$_}\E")/$1 selected/;
+ }
+
+ $rows = $form->numtextrows($form->{description}, 50, 8);
+
+ for (qw(transdate checkedin checkedout partnumber)) { $form->{"old$_"} = $form->{$_} }
+ for (qw(partnumber description)) { $form->{$_} = $form->quote($form->{$_}) }
+
+ if ($rows > 1) {
+ $description = qq|<textarea name=description rows=$rows cols=46 wrap=soft>$form->{description}</textarea>|;
+ } else {
+ $description = qq|<input name=description size=48 value="$form->{description}">|;
+ }
+
+ if ($form->{project} eq 'job') {
+
+ $projectlabel = $locale->text('Job Number');
+ $laborlabel = $locale->text('Labor Code');
+ $rate = qq|<input type=hidden name=sellprice value=$form->{sellprice}>|;
+
+ } else {
+
+ if ($form->{project} eq 'project') {
+ $projectlabel = $locale->text('Project Number');
+ $laborlabel = $locale->text('Service Code');
+ } else {
+ $projectlabel = $locale->text('Project/Job Number');
+ $laborlabel = $locale->text('Service/Labor Code');
+ }
+
+ if ($myconfig{role} ne 'user') {
+ $rate = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Chargeout Rate').qq|</th>
+ <td><input name=sellprice value=$form->{sellprice}></td>
+ <th align=right nowrap>|.$locale->text('Total').qq|</th>
+ <td>$form->{amount}</td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Allocated').qq|</th>
+ <td><input name=allocated value=$form->{allocated}></td>
+ </tr>
+|;
+ } else {
+ $rate = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Chargeout Rate').qq|</th>
+ <td>$form->{sellprice}</td>
+ <th align=right nowrap>|.$locale->text('Total').qq|</th>
+ <td>$form->{amount}</td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Allocated').qq|</th>
+ <td>$form->{allocated}</td>
+ </tr>
+ <input type=hidden name=sellprice value=$form->{sellprice}>
+ <input type=hidden name=allocated value=$form->{allocated}>
+|;
+ }
+ }
+
+ if ($myconfig{role} eq 'user') {
+ $charge = qq|<input type=hidden name=qty value=$form->{qty}>$form->{qty}|;
+ } else {
+ $charge = qq|<input name=qty value=$form->{qty}>|;
+ }
+
+ if (($rows = $form->numtextrows($form->{notes}, 40, 6)) < 2) {
+ $rows = 2;
+ }
+
+ $notes = qq|<tr>
+ <th align=right>|.$locale->text('Notes').qq|</th>
+ <td colspan=3><textarea name="notes" rows=$rows cols=46 wrap=soft>$form->{notes}</textarea>
+ </td>
+ </tr>
+|;
+
+##################
+ ($null, $form->{oldproject_id}) = split /--/, $form->{projectnumber};
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action="$form->{script}">
+|;
+
+ $form->hide_form(qw(id type media format printed queued title closedto locked oldtransdate oldcheckedin oldcheckedout oldpartnumber project oldqty oldnoncharge pricematrix oldproject_id));
+
+ print qq|
+<table width=100%>
+ <tr class=listtop>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Employee').qq|</th>
+ <td><select name=employee>$form->{selectemployee}</select></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>$projectlabel</th>
+ <td><select name=projectnumber>$form->{selectprojectnumber}</select>
+ </td>
+ <td></td>
+ <td>$form->{projectdescription}</td>
+ <input type=hidden name=projectdescription value="|.$form->quote($form->{projectdescription}).qq|">
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Date worked').qq|</th>
+ <td><input name=transdate size=11 title="$myconfig{dateformat}" value=$form->{transdate}></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>$laborlabel</th>
+ <td><select name=partnumber>$form->{selectpartnumber}</select></td>
+ </tr>
+ <tr valign=top>
+ <th align=right nowrap>|.$locale->text('Description').qq|</th>
+ <td colspan=3>$description</td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Time In').qq|</th>
+ <td>
+ <table>
+ <tr>
+ <td><input name=inhour title="hh" size=3 maxlength=2 value=$form->{inhour}></td>
+ <td><input name=inmin title="mm" size=3 maxlength=2 value=$form->{inmin}></td>
+ <td><input name=insec title="ss" size=3 maxlength=2 value=$form->{insec}></td>
+ </tr>
+ </table>
+ </td>
+ <th align=right nowrap>|.$locale->text('Time Out').qq|</th>
+ <td>
+ <table>
+ <tr>
+ <td><input name=outhour title="hh" size=3 maxlength=2 value=$form->{outhour}></td>
+ <td><input name=outmin title="mm" size=3 maxlength=2 value=$form->{outmin}></td>
+ <td><input name=outsec title="ss" size=3 maxlength=2 value=$form->{outsec}></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Clocked').qq|</th>
+ <td>$form->{clocked}</td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Non-chargeable').qq|</th>
+ <td><input name=noncharge value=$form->{noncharge}></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Chargeable').qq|</th>
+ <td>$charge</td>
+ </tr>
+ $rate
+ $notes
+ </table>
+ </td>
+ </tr>
+
+|;
+
+}
+
+
+sub timecard_footer {
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+ <tr>
+ <td>
+|;
+
+ &print_options;
+
+ print qq|
+ </td>
+ </tr>
+</table>
+<br>
+|;
+
+ $transdate = $form->datetonum(\%myconfig, $form->{transdate});
+ $closedto = $form->datetonum(\%myconfig, $form->{closedto});
+
+ if (! $form->{readonly}) {
+
+# type=submit $locale->text('Update')
+# type=submit $locale->text('Print')
+# type=submit $locale->text('Save')
+# type=submit $locale->text('Print and Save')
+# type=submit $locale->text('Save as new')
+# type=submit $locale->text('Print and Save as new')
+# type=submit $locale->text('Delete')
+
+ %button = ('Update' => { ndx => 1, key => 'U', value => $locale->text('Update') },
+ 'Print' => { ndx => 2, key => 'P', value => $locale->text('Print') },
+ 'Save' => { ndx => 3, key => 'S', value => $locale->text('Save') },
+ 'Print and Save' => { ndx => 6, key => 'R', value => $locale->text('Print and Save') },
+ 'Save as new' => { ndx => 7, key => 'N', value => $locale->text('Save as new') },
+ 'Print and Save as new' => { ndx => 8, key => 'W', value => $locale->text('Print and Save as new') },
+
+ 'Delete' => { ndx => 16, key => 'D', value => $locale->text('Delete') },
+ );
+
+ %a = ();
+
+ if ($form->{id}) {
+
+ if (!$form->{locked}) {
+ for ('Update', 'Print', 'Save', 'Save as new') { $a{$_} = 1 }
+
+ if ($latex) {
+ for ('Print and Save', 'Print and Save as new') { $a{$_} = 1 }
+ }
+
+ if ($form->{orphaned}) {
+ $a{'Delete'} = 1;
+ }
+
+ }
+
+ } else {
+
+ if ($transdate > $closedto) {
+
+ for ('Update', 'Print', 'Save') { $a{$_} = 1 }
+
+ if ($latex) {
+ $a{'Print and Save'} = 1;
+ }
+
+ }
+ }
+ }
+
+ for (keys %button) { delete $button{$_} if ! $a{$_} }
+ for (sort { $button{$a}->{ndx} <=> $button{$b}->{ndx} } keys %button) { $form->print_button(\%button, $_) }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ $form->hide_form(qw(callback path login sessionid));
+
+ print qq|
+
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub prepare_storescard {
+
+ $form->{formname} = "storescard";
+ $form->{format} = "postscript" if $myconfig{printer};
+ $form->{media} = $myconfig{printer};
+
+ JC->get_jcitems(\%myconfig, \%$form);
+
+ $form->{selectformname} = qq|<option value="storescard">|.$locale->text('Stores Card');
+
+ $form->{amount} = $form->{sellprice} * $form->{qty};
+ for (qw(sellprice amount)) { $form->{$_} = $form->format_amount(\%myconfig, $form->{$_}, 2) }
+ $form->{qty} = $form->format_amount(\%myconfig, $form->{qty}, 4);
+
+ $form->{employee} .= "--$form->{employee_id}";
+ $form->{projectnumber} .= "--$form->{project_id}";
+ $form->{partnumber} .= "--$form->{parts_id}";
+ $form->{oldpartnumber} = $form->{partnumber};
+
+ if (@{ $form->{all_language} }) {
+ $form->{selectlanguage} = "<option>\n";
+ for (@{ $form->{all_language} }) { $form->{selectlanguage} .= qq|<option value="$_->{code}">$_->{description}\n| }
+ }
+
+ &jcitems_links;
+
+ $form->{locked} = ($form->{revtrans}) ? '1' : ($form->datetonum(\%myconfig, $form->{transdate}) <= $form->datetonum(\%myconfig, $form->{closedto}));
+
+ $form->{readonly} = 1 if $myconfig{acs} =~ /Production--Add Time Card/;
+
+ if ($form->{income_accno_id}) {
+ $form->{locked} = 1 if $form->{production} == $form->{completed};
+ }
+
+}
+
+
+sub storescard_header {
+
+ # set option selected
+ for (qw(employee projectnumber partnumber)) {
+ $form->{"select$_"} =~ s/ selected//;
+ $form->{"select$_"} =~ s/(<option value="\Q$form->{$_}\E")/$1 selected/;
+ }
+
+ $rows = $form->numtextrows($form->{description}, 50, 8);
+
+ for (qw(transdate partnumber)) { $form->{"old$_"} = $form->{$_} }
+ for (qw(partnumber description)) { $form->{$_} = $form->quote($form->{$_}) }
+
+ if ($rows > 1) {
+ $description = qq|<textarea name=description rows=$rows cols=46 wrap=soft>$form->{description}</textarea>|;
+ } else {
+ $description = qq|<input name=description size=48 value="$form->{description}">|;
+ }
+
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action="$form->{script}">
+|;
+
+ $form->hide_form(qw(id type media format printed queued title closedto locked oldtransdate oldpartnumber project));
+
+ print qq|
+<table width=100%>
+ <tr class=listtop>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Job Number').qq|</th>
+ <td><select name=projectnumber>$form->{selectprojectnumber}</select>
+ </td>
+ <td>$form->{projectdescription}</td>
+ <input type=hidden name=projectdescription value="|.$form->quote($form->{projectdescription}).qq|">
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Date').qq|</th>
+ <td><input name=transdate size=11 title="$myconfig{dateformat}" value=$form->{transdate}></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Part Number').qq|</th>
+ <td><select name=partnumber>$form->{selectpartnumber}</td>
+ </tr>
+ <tr valign=top>
+ <th align=right nowrap>|.$locale->text('Description').qq|</th>
+ <td>$description</td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Qty').qq|</th>
+ <td><input name=qty size=6 value=$form->{qty}>
+ <b>|.$locale->text('Cost').qq|</b>
+ <input name=sellprice size=10 value=$form->{sellprice}></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Total').qq|</th>
+ <td>$form->{amount}</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+|;
+
+}
+
+
+sub storescard_footer {
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+ <tr>
+ <td>
+|;
+
+ &print_options;
+
+ print qq|
+ </td>
+ </tr>
+</table>
+<br>
+|;
+
+ $transdate = $form->datetonum(\%myconfig, $form->{transdate});
+ $closedto = $form->datetonum(\%myconfig, $form->{closedto});
+
+# type=submit $locale->text('Update')
+# type=submit $locale->text('Print')
+# type=submit $locale->text('Save')
+# type=submit $locale->text('Print and Save')
+# type=submit $locale->text('Save as new')
+# type=submit $locale->text('Print and Save as new')
+# type=submit $locale->text('Delete')
+
+
+ if (! $form->{readonly}) {
+
+ %button = ('Update' => { ndx => 1, key => 'U', value => $locale->text('Update') },
+ 'Print' => { ndx => 2, key => 'P', value => $locale->text('Print') },
+ 'Save' => { ndx => 3, key => 'S', value => $locale->text('Save') },
+ 'Print and Save' => { ndx => 6, key => 'R', value => $locale->text('Print and Save') },
+ 'Save as new' => { ndx => 7, key => 'N', value => $locale->text('Save as new') },
+ 'Print and Save as new' => { ndx => 8, key => 'W', value => $locale->text('Print and Save as new') },
+ 'Delete' => { ndx => 16, key => 'D', value => $locale->text('Delete') },
+ );
+
+ %a = ();
+
+ if ($form->{id}) {
+
+ if (!$form->{locked}) {
+ for ('Update', 'Print', 'Save', 'Save as new') { $a{$_} = 1 }
+ if ($latex) {
+ for ('Print and Save', 'Print and Save as new') { $a{$_} = 1 }
+ }
+ if ($form->{orphaned}) {
+ $a{'Delete'} = 1;
+ }
+ }
+
+ } else {
+
+ if ($transdate > $closedto) {
+ for ('Update', 'Print', 'Save') { $a{$_} = 1 }
+
+ if ($latex) {
+ $a{'Print and Save'} = 1;
+ }
+ }
+ }
+
+ for (keys %button) { delete $button{$_} if ! $a{$_} }
+ for (sort { $button{$a}->{ndx} <=> $button{$b}->{ndx} } keys %button) { $form->print_button(\%button, $_) }
+
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ $form->hide_form(qw(callback path login sessionid));
+
+ print qq|
+
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+
+sub update {
+
+ ($null, $form->{project_id}) = split /--/, $form->{projectnumber};
+
+ # check labor/part
+ JC->jcitems_links(\%myconfig, \%$form);
+
+ &jcitems_links;
+
+ $checkmatrix = 1 if $form->{oldproject_id} != $form->{project_id};
+
+ if ($form->{type} eq 'timecard') {
+
+ # time clocked
+ %hour = ( in => 0, out => 0 );
+ for $t (qw(in out)) {
+ if ($form->{"${t}sec"} > 60) {
+ $form->{"${t}sec"} -= 60;
+ $form->{"${t}min"}++;
+ }
+ if ($form->{"${t}min"} > 60) {
+ $form->{"${t}min"} -= 60;
+ $form->{"${t}hour"}++;
+ }
+ $hour{$t} = $form->{"${t}hour"};
+ }
+
+ $form->{checkedin} = $hour{in} * 3600 + $form->{inmin} * 60 + $form->{insec};
+ $form->{checkedout} = $hour{out} * 3600 + $form->{outmin} * 60 + $form->{outsec};
+
+ if ($form->{checkedin} > $form->{checkedout}) {
+ $form->{checkedout} = 86400 - ($form->{checkedin} - $form->{checkedout});
+ $form->{checkedin} = 0;
+ }
+
+ $form->{clocked} = ($form->{checkedout} - $form->{checkedin}) / 3600;
+
+ for (qw(sellprice qty noncharge allocated)) { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) }
+
+ $checkmatrix = 1 if $form->{oldqty} != $form->{qty};
+
+ if (($form->{oldcheckedin} != $form->{checkedin}) || ($form->{oldcheckedout} != $form->{checkedout})) {
+ $checkmatrix = 1;
+ $form->{oldqty} = $form->{qty} = $form->{clocked} - $form->{noncharge};
+ $form->{oldnoncharge} = $form->{noncharge};
+ }
+
+ if (($form->{qty} != $form->{oldqty}) && $form->{clocked}) {
+ $form->{oldnoncharge} = $form->{noncharge} = $form->{clocked} - $form->{qty};
+ $checkmatrix = 1;
+ }
+
+ if (($form->{oldnoncharge} != $form->{noncharge}) && $form->{clocked}) {
+ $form->{oldqty} = $form->{qty} = $form->{clocked} - $form->{noncharge};
+ $checkmatrix = 1;
+ }
+
+ if ($checkmatrix) {
+ @a = split / /, $form->{pricematrix};
+ if (scalar @a > 2) {
+ for (@a) {
+ ($q, $p) = split /:/, $_;
+ if (($p * 1) && ($form->{qty} >= ($q * 1))) {
+ $form->{sellprice} = $p;
+ }
+ }
+ }
+ }
+
+ $form->{amount} = $form->{sellprice} * $form->{qty};
+
+ $form->{clocked} = $form->format_amount(\%myconfig, $form->{clocked}, 4);
+ for (qw(sellprice amount)) { $form->{$_} = $form->format_amount(\%myconfig, $form->{$_}, 2) }
+ for (qw(qty noncharge)) {
+ $form->{"old$_"} = $form->{$_};
+ $form->{$_} = $form->format_amount(\%myconfig, $form->{$_}, 4);
+ }
+
+ } else {
+
+ for (qw(sellprice qty allocated)) { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) }
+
+ if ($form->{oldqty} != $form->{qty}) {
+ @a = split / /, $form->{pricematrix};
+ if (scalar @a > 2) {
+ for (@a) {
+ ($q, $p) = split /:/, $_;
+ if (($p * 1) && ($form->{qty} >= ($q * 1))) {
+ $form->{sellprice} = $p;
+ }
+ }
+ }
+ }
+
+ $form->{amount} = $form->{sellprice} * $form->{qty};
+ for (qw(sellprice amount)) { $form->{$_} = $form->format_amount(\%myconfig, $form->{$_}, 2) }
+
+ }
+
+ $form->{allocated} = $form->format_amount(\%myconfig, $form->{allocated});
+
+ &display_form;
+
+}
+
+
+sub save {
+
+ $form->isblank("transdate", $locale->text('Date missing!'));
+
+ if ($form->{project} eq 'project') {
+ $form->isblank("projectnumber", $locale->text('Project Number missing!'));
+ $form->isblank("partnumber", $locale->text('Service Code missing!'));
+ } else {
+ $form->isblank("projectnumber", $locale->text('Job Number missing!'));
+ $form->isblank("partnumber", $locale->text('Labor Code missing!'));
+ }
+
+ $closedto = $form->datetonum(\%myconfig, $form->{closedto});
+ $transdate = $form->datetonum(\%myconfig, $form->{transdate});
+
+ $msg = ($form->{type} eq 'timecard') ? $locale->text('Cannot save time card for a closed period!') : $locale->text('Cannot save stores card for a closed period!');
+ $form->error($msg) if ($transdate <= $closedto);
+
+ if (! $form->{resave}) {
+ if ($form->{id}) {
+ &resave;
+ exit;
+ }
+ }
+
+
+ $rc = JC->save(\%myconfig, \%$form);
+
+ if ($form->{type} eq 'timecard') {
+ $form->error($locale->text('Cannot change time card for a completed job!')) if ($rc == -1);
+ $form->error($locale->text('Cannot add time card for a completed job!')) if ($rc == -2);
+
+ if ($rc) {
+ $form->redirect($locale->text('Time Card saved!'));
+ } else {
+ $form->error($locale->text('Cannot save time card!'));
+ }
+
+ } else {
+ $form->error($locale->text('Cannot change stores card for a completed job!')) if ($rc == -1);
+ $form->error($locale->text('Cannot add stores card for a completed job!')) if ($rc == -2);
+
+ if ($rc) {
+ $form->redirect($locale->text('Stores Card saved!'));
+ } else {
+ $form->error($locale->text('Cannot save stores card!'));
+ }
+ }
+
+}
+
+
+sub save_as_new {
+
+ delete $form->{id};
+ &save;
+
+}
+
+
+sub print_and_save_as_new {
+
+ delete $form->{id};
+ &print_and_save;
+
+}
+
+
+sub resave {
+
+ if ($form->{print_and_save}) {
+ $form->{nextsub} = "print_and_save";
+ $msg = $locale->text('You are printing and saving an existing transaction!');
+ } else {
+ $form->{nextsub} = "save";
+ $msg = $locale->text('You are saving an existing transaction!');
+ }
+
+ $form->{resave} = 1;
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+|;
+
+ delete $form->{action};
+
+ $form->hide_form;
+
+ print qq|
+<h2 class=confirm>|.$locale->text('Warning!').qq|</h2>
+
+<h4>$msg</h4>
+
+<input name=action class=submit type=submit value="|.$locale->text('Continue').qq|">
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub print_and_save {
+
+ $form->error($locale->text('Select postscript or PDF!')) if $form->{format} !~ /(postscript|pdf)/;
+ $form->error($locale->text('Select a Printer!')) if $form->{media} eq 'screen';
+
+ if (! $form->{resave}) {
+ if ($form->{id}) {
+ $form->{print_and_save} = 1;
+ &resave;
+ exit;
+ }
+ }
+
+ $old_form = new Form;
+ $form->{display_form} = "save";
+ for (keys %$form) { $old_form->{$_} = $form->{$_} }
+
+ &{ "print_$form->{formname}" }($old_form);
+
+}
+
+
+sub delete_timecard {
+
+ $form->header;
+
+ $employee = $form->{employee};
+ $employee =~ s/--.*//g;
+ $projectnumber = $form->{projectnumber};
+ $projectnumber =~ s/--.*//g;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+|;
+
+ delete $form->{action};
+
+ $form->hide_form;
+
+ print qq|
+<h2 class=confirm>|.$locale->text('Confirm!').qq|</h2>
+
+<h4>|.$locale->text('Are you sure you want to delete time card for').qq|
+<p>$form->{transdate}
+<br>$employee
+<br>$projectnumber
+</h4>
+
+<p>
+<input name=action class=submit type=submit value="|.$locale->text('Yes').qq|">
+</form>
+|;
+
+}
+
+
+sub delete { &{ "delete_$form->{type}" } };
+sub yes { &{ "yes_delete_$form->{type}" } };
+
+
+sub yes_delete_timecard {
+
+ if (JC->delete_timecard(\%myconfig, \%$form)) {
+ $form->redirect($locale->text('Time Card deleted!'));
+ } else {
+ $form->error($locale->text('Cannot delete time card!'));
+ }
+
+}
+
+
+sub list_timecard {
+
+ $form->{type} = "timecard";
+
+ JC->jcitems(\%myconfig, \%$form);
+
+ $form->{title} = $locale->text('Time Cards');
+
+ @a = qw(type direction oldsort path login sessionid project l_subtotal open closed l_time l_allocated);
+ $href = "$form->{script}?action=list_timecard";
+ for (@a) { $href .= "&$_=$form->{$_}" }
+
+ $href .= "&title=".$form->escape($form->{title});
+
+ $form->sort_order();
+
+ $callback = "$form->{script}?action=list_timecard";
+ for (@a) { $callback .= "&$_=$form->{$_}" }
+
+ $callback .= "&title=".$form->escape($form->{title},1);
+
+ @column_index = (qw(transdate projectnumber projectdescription id partnumber description));
+
+ push @column_index, (qw(allocated)) if $form->{l_allocated};
+ push @column_index, (qw(1 2 3 4 5 6 7));
+
+ @column_index = $form->sort_columns(@column_index);
+
+ if ($form->{project} eq 'job') {
+ $joblabel = $locale->text('Job Number');
+ $laborlabel = $locale->text('Labor Code');
+ $desclabel = $locale->text('Job Name');
+ } elsif ($form->{project} eq 'project') {
+ $joblabel = $locale->text('Project Number');
+ $laborlabel = $locale->text('Service Code');
+ $desclabel = $locale->text('Project Name');
+ } else {
+ $joblabel = $locale->text('Project/Job Number');
+ $laborlabel = $locale->text('Service/Labor Code');
+ $desclabel = $locale->text('Project/Job Name');
+ }
+
+ if ($form->{projectnumber}) {
+ $callback .= "&projectnumber=".$form->escape($form->{projectnumber},1);
+ $href .= "&projectnumber=".$form->escape($form->{projectnumber});
+ ($var) = split /--/, $form->{projectnumber};
+ $option .= "\n<br>" if ($option);
+ $option .= "$joblabel : $var";
+ @column_index = grep !/projectnumber/, @column_index;
+ }
+ if ($form->{partnumber}) {
+ $callback .= "&partnumber=".$form->escape($form->{partnumber},1);
+ $href .= "&partnumber=".$form->escape($form->{partnumber});
+ ($var) = split /--/, $form->{partnumber};
+ $option .= "\n<br>" if ($option);
+ $option .= "$laborlabel : $var";
+ @column_index = grep !/partnumber/, @column_index;
+ }
+ if ($form->{employee}) {
+ $callback .= "&employee=".$form->escape($form->{employee},1);
+ $href .= "&employee=".$form->escape($form->{employee});
+ }
+
+ if ($form->{startdatefrom}) {
+ $callback .= "&startdatefrom=$form->{startdatefrom}";
+ $href .= "&startdatefrom=$form->{startdatefrom}";
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('From')."&nbsp;".$locale->date(\%myconfig, $form->{startdatefrom}, 1);
+ }
+ if ($form->{startdateto}) {
+ $callback .= "&startdateto=$form->{startdateto}";
+ $href .= "&startdateto=$form->{startdateto}";
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('To')."&nbsp;".$locale->date(\%myconfig, $form->{startdateto}, 1);
+ }
+ if ($form->{open}) {
+ $callback .= "&open=$form->{open}";
+ $href .= "&open=$form->{open}";
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Open');
+ }
+ if ($form->{closed}) {
+ $callback .= "&closed=$form->{closed}";
+ $href .= "&closed=$form->{closed}";
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Closed');
+ }
+
+ %weekday = ( 1 => $locale->text('Sunday'),
+ 2 => $locale->text('Monday'),
+ 3 => $locale->text('Tuesday'),
+ 4 => $locale->text('Wednesday'),
+ 5 => $locale->text('Thursday'),
+ 6 => $locale->text('Friday'),
+ 7 => $locale->text('Saturday'),
+ );
+
+ for (keys %weekday) { $column_header{$_} = "<th class=listheading width=25>".substr($weekday{$_},0,3)."</th>" }
+
+ $column_header{id} = "<th><a class=listheading href=$href&sort=id>".$locale->text('ID')."</a></th>";
+ $column_header{transdate} = "<th><a class=listheading href=$href&sort=transdate>".$locale->text('Date')."</a></th>";
+ $column_header{description} = "<th><a class=listheading href=$href&sort=description>" . $locale->text('Description') . "</th>";
+ $column_header{projectnumber} = "<th><a class=listheading href=$href&sort=projectnumber>$joblabel</a></th>";
+ $column_header{partnumber} = "<th><a class=listheading href=$href&sort=partnumber>$laborlabel</a></th>";
+ $column_header{projectdescription} = "<th><a class=listheading href=$href&sort=projectdescription>$desclabel</a></th>";
+ $column_header{allocated} = "<th class=listheading></th>";
+
+
+ $form->header;
+
+ if (@{ $form->{transactions} }) {
+ $sameitem = $form->{transactions}->[0]->{$form->{sort}};
+ $sameemployeenumber = $form->{transactions}->[0]->{employeenumber};
+ $employee = $form->{transactions}->[0]->{employee};
+ $sameweek = $form->{transactions}->[0]->{workweek};
+ }
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$option</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+ <th colspan=2 align=left>
+ $employee
+ </th>
+ <th align=left>
+ $sameemployeenumber
+ </th>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "\n$column_header{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ # add sort and escape callback, this one we use for the add sub
+ $form->{callback} = $callback .= "&sort=$form->{sort}";
+
+ # escape callback for href
+ $callback = $form->escape($callback);
+
+ # flip direction
+ $direction = ($form->{direction} eq 'ASC') ? "ASC" : "DESC";
+ $href =~ s/&direction=(\w+)&/&direction=$direction&/;
+
+ %total = ();
+
+ foreach $ref (@{ $form->{transactions} }) {
+
+ if ($sameemployeenumber ne $ref->{employeenumber}) {
+ $sameemployeenumber = $ref->{employeenumber};
+ $sameweek = $ref->{workweek};
+
+ if ($form->{l_subtotal}) {
+ print qq|
+ <tr class=listsubtotal>
+|;
+
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $weektotal = 0;
+ for (keys %weekday) {
+ $column_data{$_} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotal{$_}, "", "&nbsp;")."</th>";
+ $weektotal += $subtotal{$_};
+ $subtotal{$_} = 0;
+ }
+
+ $column_data{$form->{sort}} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $weektotal, "", "&nbsp;")."</th>";
+
+ for (@column_index) { print "\n$column_data{$_}" }
+ }
+
+ # print total
+ print qq|
+ <tr class=listtotal>
+|;
+
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $total = 0;
+ for (keys %weekday) {
+ $column_data{$_} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $total{$_}, "", "&nbsp;")."</th>";
+ $total += $total{$_};
+ $total{$_} = 0;
+ }
+
+ $column_data{$form->{sort}} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $total, "", "&nbsp;")."</th>";
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+
+ print qq|
+ <tr height=30 valign=bottom>
+ <th colspan=2 align=left>
+ $ref->{employee}
+ </th>
+ <th align=left>
+ $ref->{employeenumber}
+ </th>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "\n$column_header{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ }
+
+ if ($form->{l_subtotal}) {
+ if ($ref->{workweek} != $sameweek) {
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+ $weektotal = 0;
+ for (keys %weekday) {
+ $column_data{$_} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotal{$_}, "", "&nbsp;")."</th>";
+ $weektotal += $subtotal{$_};
+ $subtotal{$_} = 0
+ }
+ $column_data{$form->{sort}} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $weektotal, "", "&nbsp;")."</th>";
+ $sameweek = $ref->{workweek};
+
+ print qq|
+ <tr class=listsubtotal>
+|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+ }
+ }
+
+ for (@column_index) { $column_data{$_} = "<td>$ref->{$_}&nbsp;</td>" }
+ for (keys %weekday) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $column_data{allocated} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{allocated}, "", "&nbsp;")."</td>";
+ $column_data{$ref->{weekday}} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{qty}, "", "&nbsp;");
+
+ if ($form->{l_time}) {
+ $column_data{$ref->{weekday}} .= "<br>$ref->{checkedin}<br>$ref->{checkedout}";
+ }
+ $column_data{$ref->{weekday}} .= "</td>";
+
+ $column_data{id} = "<td><a href=$form->{script}?action=edit&id=$ref->{id}&type=$form->{type}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&project=$form->{project}&callback=$callback>$ref->{id}</a></td>";
+
+ $subtotal{$ref->{weekday}} += $ref->{qty};
+ $total{$ref->{weekday}} += $ref->{qty};
+
+ $j++; $j %= 2;
+ print qq|
+ <tr class=listrow$j>
+|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+ }
+
+ # print last subtotal
+ if ($form->{l_subtotal}) {
+ print qq|
+ <tr class=listsubtotal>
+|;
+
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $weektotal = 0;
+ for (keys %weekday) {
+ $column_data{$_} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotal{$_}, "", "&nbsp;")."</th>";
+ $weektotal += $subtotal{$_};
+ }
+
+ $column_data{$form->{sort}} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $weektotal, "", "&nbsp;")."</th>";
+
+ for (@column_index) { print "\n$column_data{$_}" }
+ }
+
+ # print last total
+ print qq|
+ <tr class=listtotal>
+|;
+
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $total = 0;
+ for (keys %weekday) {
+ $column_data{$_} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $total{$_}, "", "&nbsp;")."</th>";
+ $total += $total{$_};
+ $total{$_} = 0;
+ }
+
+ $column_data{$form->{sort}} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $total, "", "&nbsp;")."</th>";
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ if ($form->{project} eq 'job') {
+ if ($myconfig{acs} !~ /Production--Production/) {
+ $i = 1;
+ $button{'Production--Add Time Card'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Add Time Card').qq|"> |;
+ $button{'Production--Add Time Card'}{order} = $i++;
+ }
+ } elsif ($form->{project} eq 'project') {
+ if ($myconfig{acs} !~ /Projects--Projects/) {
+ $i = 1;
+ $button{'Projects--Add Time Card'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Add Time Card').qq|"> |;
+ $button{'Projects--Add Time Card'}{order} = $i++;
+ }
+ } else {
+ if ($myconfig{acs} !~ /Time Cards--Time Cards/) {
+ $i = 1;
+ $button{'Time Cards--Add Time Card'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Add Time Card').qq|"> |;
+ $button{'Time Cards--Add Time Card'}{order} = $i++;
+ }
+ }
+
+ for (split /;/, $myconfig{acs}) { delete $button{$_} }
+
+ print qq|
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+<form method=post action=$form->{script}>
+|;
+
+ $form->hide_form(qw(callback path login sessionid project));
+
+ foreach $item (sort { $a->{order} <=> $b->{order} } %button) {
+ print $item->{code};
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub list_storescard {
+
+ $form->{type} = "storescard";
+
+ JC->jcitems(\%myconfig, \%$form);
+
+ $form->{title} = $locale->text('Stores Cards');
+
+ $href = "$form->{script}?action=list_storescard";
+ for (qw(type direction oldsort path login sessionid project)) { $href .= "&$_=$form->{$_}" }
+
+ $href .= "&title=".$form->escape($form->{title});
+
+ $form->sort_order();
+
+ $callback = "$form->{script}?action=list_storescard";
+ for (qw(type direction oldsort path login sessionid project)) { $callback .= "&$_=$form->{$_}" }
+
+ $callback .= "&title=".$form->escape($form->{title},1);
+
+ @column_index = $form->sort_columns(qw(transdate projectnumber projectdescription id partnumber description qty amount));
+
+
+ if ($form->{projectnumber}) {
+ $callback .= "&projectnumber=".$form->escape($form->{projectnumber},1);
+ $href .= "&projectnumber=".$form->escape($form->{projectnumber});
+ ($var) = split /--/, $form->{projectnumber};
+ $option .= "\n<br>" if ($option);
+ $option .= "$joblabel : $var";
+ @column_index = grep !/projectnumber/, @column_index;
+ }
+ if ($form->{partnumber}) {
+ $callback .= "&partnumber=".$form->escape($form->{partnumber},1);
+ $href .= "&partnumber=".$form->escape($form->{partnumber});
+ ($var) = split /--/, $form->{partnumber};
+ $option .= "\n<br>" if ($option);
+ $option .= "$laborlabel : $var";
+ @column_index = grep !/partnumber/, @column_index;
+ }
+ if ($form->{startdatefrom}) {
+ $callback .= "&startdatefrom=$form->{startdatefrom}";
+ $href .= "&startdatefrom=$form->{startdatefrom}";
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('From')."&nbsp;".$locale->date(\%myconfig, $form->{startdatefrom}, 1);
+ }
+ if ($form->{startdateto}) {
+ $callback .= "&startdateto=$form->{startdateto}";
+ $href .= "&startdateto=$form->{startdateto}";
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('To')."&nbsp;".$locale->date(\%myconfig, $form->{startdateto}, 1);
+ }
+
+ $column_header{id} = "<th><a class=listheading href=$href&sort=id>" . $locale->text('ID') . "</a></th>";
+ $column_header{transdate} = "<th><a class=listheading href=$href&sort=transdate>".$locale->text('Date')."</a></th>";
+ $column_header{projectnumber} = "<th><a class=listheading href=$href&sort=projectnumber>" . $locale->text('Job Number') . "</a></th>";
+ $column_header{projectdescription} = "<th><a class=listheading href=$href&sort=projectdescription>" . $locale->text('Job Description') . "</a></th>";
+ $column_header{partnumber} = "<th><a class=listheading href=$href&sort=partnumber>" . $locale->text('Part Number') . "</a></th>";
+ $column_header{description} = "<th><a class=listheading href=$href&sort=description>" . $locale->text('Description') . "</a></th>";
+ $column_header{qty} = "<th class=listheading>" . $locale->text('Qty') . "</th>";
+ $column_header{amount} = "<th class=listheading>" . $locale->text('Amount') . "</th>";
+
+
+ $form->header;
+
+ if (@{ $form->{transactions} }) {
+ $sameitem = $form->{transactions}->[0]->{$form->{sort}};
+ }
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$option</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "\n$column_header{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ # add sort and escape callback, this one we use for the add sub
+ $form->{callback} = $callback .= "&sort=$form->{sort}";
+
+ # escape callback for href
+ $callback = $form->escape($callback);
+
+ # flip direction
+ $direction = ($form->{direction} eq 'ASC') ? "ASC" : "DESC";
+ $href =~ s/&direction=(\w+)&/&direction=$direction&/;
+
+ $total = 0;
+ foreach $ref (@{ $form->{transactions} }) {
+
+ for (@column_index) { $column_data{$_} = "<td>$ref->{$_}&nbsp;</td>" }
+ $column_data{qty} = qq|<td align=right>|.$form->format_amount(\%myconfig, $ref->{qty}, "", "&nbsp;")."</td>";
+ $column_data{amount} = qq|<td align=right>|.$form->format_amount(\%myconfig, $ref->{qty} * $ref->{sellprice}, 2)."</td>";
+
+ $column_data{id} = "<td><a href=$form->{script}?action=edit&id=$ref->{id}&type=$form->{type}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&project=$form->{project}&callback=$callback>$ref->{id}</a></td>";
+
+ $total += ($ref->{qty} * $ref->{sellprice});
+
+ $j++; $j %= 2;
+ print qq|
+ <tr class=listrow$j>
+|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+ }
+
+ # print total
+ print qq|
+ <tr class=listtotal>
+|;
+
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+ $column_data{amount} = qq|<th align=right>|.$form->format_amount(\%myconfig, $total, 2)."</th";
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ if ($form->{project} eq 'job') {
+ if ($myconfig{acs} !~ /Production--Production/) {
+ $i = 1;
+ $button{'Production--Add Stores Card'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Add Stores Card').qq|"> |;
+ $button{'Production--Add Stores Card'}{order} = $i++;
+ }
+ }
+
+ for (split /;/, $myconfig{acs}) { delete $button{$_} }
+
+ print qq|
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+<form method=post action=$form->{script}>
+|;
+
+ $form->hide_form(qw(callback path login sessionid project));
+
+ foreach $item (sort { $a->{order} <=> $b->{order} } %button) {
+ print $item->{code};
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+
+sub continue { &{ $form->{nextsub} } };
+
+sub add_time_card {
+
+ $form->{type} = "timecard";
+ &add;
+
+}
+
+
+sub add_stores_card {
+
+ $form->{type} = "storescard";
+ &add;
+
+}
+
+
+sub print_options {
+
+ if ($form->{selectlanguage}) {
+ $form->{"selectlanguage"} = $form->unescape($form->{"selectlanguage"});
+ $form->{"selectlanguage"} =~ s/ selected//;
+ $form->{"selectlanguage"} =~ s/(<option value="\Q$form->{language_code}\E")/$1 selected/;
+ $lang = qq|<select name=language_code>$form->{selectlanguage}</select>
+ <input type=hidden name=selectlanguage value="|.
+ $form->escape($form->{selectlanguage},1).qq|">|;
+ }
+
+ $form->{selectformname} = $form->unescape($form->{selectformname});
+ $form->{selectformname} =~ s/ selected//;
+ $form->{selectformname} =~ s/(<option value="\Q$form->{formname}\E")/$1 selected/;
+
+ $type = qq|<select name=formname>$form->{selectformname}</select>
+ <input type=hidden name=selectformname value="|.$form->escape($form->{selectformname},1).qq|">|;
+
+ $media = qq|<select name=media>
+ <option value="screen">|.$locale->text('Screen');
+
+ $form->{selectformat} = qq|<option value="html">html\n|;
+
+ if (%printer && $latex) {
+ for (sort keys %printer) { $media .= qq|
+ <option value="$_">$_| }
+ }
+
+ if ($latex) {
+ $media .= qq|
+ <option value="queue">|.$locale->text('Queue');
+
+ $form->{selectformat} .= qq|
+ <option value="postscript">|.$locale->text('Postscript').qq|
+ <option value="pdf">|.$locale->text('PDF');
+ }
+
+ $format = qq|<select name=format>$form->{selectformat}</select>|;
+ $format =~ s/(<option value="\Q$form->{format}\E")/$1 selected/;
+ $format .= qq|
+ <input type=hidden name=selectformat value="|.$form->escape($form->{selectformat},1).qq|">|;
+ $media .= qq|</select>|;
+ $media =~ s/(<option value="\Q$form->{media}\E")/$1 selected/;
+
+ print qq|
+ <table width=100%>
+ <tr>
+ <td>$type</td>
+ <td>$lang</td>
+ <td>$format</td>
+ <td>$media</td>
+ <td align=right width=90%>
+ |;
+
+ if ($form->{printed} =~ /$form->{formname}/) {
+ print $locale->text('Printed').qq|<br>|;
+ }
+
+ if ($form->{queued} =~ /$form->{formname}/) {
+ print $locale->text('Queued');
+ }
+
+ print qq|
+ </td>
+ </tr>
+ </table>
+|;
+
+}
+
+
+sub print {
+
+ if ($form->{media} !~ /screen/) {
+ $form->error($locale->text('Select postscript or PDF!')) if $form->{format} !~ /(postscript|pdf)/;
+ $old_form = new Form;
+ for (keys %$form) { $old_form->{$_} = $form->{$_} }
+ }
+
+ &{ "print_$form->{formname}" }($old_form);
+
+}
+
+
+sub print_timecard {
+ my ($old_form) = @_;
+
+ $display_form = ($form->{display_form}) ? $form->{display_form} : "update";
+
+ $form->{description} =~ s/^\s+//g;
+
+ for (qw(partnumber projectnumber)) { $form->{$_} =~ s/--.*// }
+
+ @a = qw(hour min sec);
+ foreach $item (qw(in out)) {
+ for (@a) { $form->{"$item$_"} = substr(qq|00$form->{"$item$_"}|, -2) }
+ $form->{"checked$item"} = qq|$form->{"${item}hour"}:$form->{"${item}min"}:$form->{"${item}sec"}|;
+ }
+
+ @a = ();
+ for (qw(company address tel fax businessnumber)) { $form->{$_} = $myconfig{$_} }
+ $form->{address} =~ s/\\n/\n/g;
+
+ push @a, qw(partnumber description projectnumber projectdescription);
+ push @a, qw(company address tel fax businessnumber username useremail);
+
+ $form->format_string(@a);
+
+ $form->{total} = $form->format_amount(\%myconfig, $form->parse_amount(\%myconfig, $form->{qty}) * $form->parse_amount(\%myconfig, $form->{sellprice}), 2);
+
+
+ ($form->{employee}, $form->{employee_id}) = split /--/, $form->{employee};
+
+ $form->{templates} = "$myconfig{templates}";
+ $form->{IN} = "$form->{formname}.html";
+
+ if ($form->{format} =~ /(postscript|pdf)/) {
+ $form->{IN} =~ s/html$/tex/;
+ }
+
+ if ($form->{media} !~ /(screen|queue)/) {
+ $form->{OUT} = "| $printer{$form->{media}}";
+
+ if ($form->{printed} !~ /$form->{formname}/) {
+ $form->{printed} .= " $form->{formname}";
+ $form->{printed} =~ s/^ //;
+
+ $form->update_status(\%myconfig);
+ }
+
+ %audittrail = ( tablename => jcitems,
+ reference => $form->{id},
+ formname => $form->{formname},
+ action => 'printed',
+ id => $form->{id} );
+
+ %status = ();
+ for (qw(printed queued audittrail)) { $status{$_} = $form->{$_} }
+
+ $status{audittrail} .= $form->audittrail("", \%myconfig, \%audittrail);
+
+ }
+
+ if ($form->{media} eq 'queue') {
+ %queued = split / /, $form->{queued};
+
+ if ($filename = $queued{$form->{formname}}) {
+ $form->{queued} =~ s/$form->{formname} $filename//;
+ unlink "$spool/$filename";
+ $filename =~ s/\..*$//g;
+ } else {
+ $filename = time;
+ $filename .= $$;
+ }
+
+ $filename .= ($form->{format} eq 'postscript') ? '.ps' : '.pdf';
+ $form->{OUT} = ">$spool/$filename";
+
+ $form->{queued} = "$form->{formname} $filename";
+ $form->update_status(\%myconfig);
+
+ %audittrail = ( tablename => jcitems,
+ reference => $form->{id},
+ formname => $form->{formname},
+ action => 'queued',
+ id => $form->{id} );
+
+ %status = ();
+ for (qw(printed queued audittrail)) { $status{$_} = $form->{$_} }
+
+ $status{audittrail} .= $form->audittrail("", \%myconfig, \%audittrail);
+ }
+
+ $form->parse_template(\%myconfig, $userspath);
+
+ if (defined %$old_form) {
+
+ for (keys %$old_form) { $form->{$_} = $old_form->{$_} }
+ for (qw(printed queued audittrail)) { $form->{$_} = $status{$_} }
+
+ &{ "$display_form" };
+
+ }
+
+}
+
+
diff --git a/bin/mozilla/login.pl b/bin/mozilla/login.pl
new file mode 100755
index 00000000..6d690984
--- /dev/null
+++ b/bin/mozilla/login.pl
@@ -0,0 +1,340 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has NOT undergone whitespace cleanup.
+#
+#======================================================================
+#
+# login frontend
+#
+#######################################################################
+
+
+use DBI;
+use LedgerSMB::User;
+use LedgerSMB::Form;
+use LedgerSMB::Session;
+
+
+$form = new Form;
+
+
+$locale = new Locale $language, "login";
+$form->{charset} = $locale->{charset};
+
+# customization
+if (-f "$form->{path}/custom_$form->{script}") {
+ eval { require "$form->{path}/custom_$form->{script}"; };
+ $form->error($@) if ($@);
+}
+
+# per login customization
+if (-f "$form->{path}/$form->{login}_$form->{script}") {
+ eval { require "$form->{path}/$form->{login}_$form->{script}"; };
+ $form->error($@) if ($@);
+}
+
+# window title bar, user info
+$form->{titlebar} = "LedgerSMB ".$locale->text('Version'). " $form->{version}";
+
+if ($form->{action}) {
+ $form->{titlebar} .= " - $myconfig{name} - $myconfig{dbname}";
+ &{ $locale->findsub($form->{action}) };
+} else {
+ &login_screen;
+}
+
+
+1;
+
+
+sub login_screen {
+
+ $form->{stylesheet} = "sql-ledger.css";
+ $form->{favicon} = "favicon.ico";
+
+ $form->{endsession} = 1;
+ $form->header(1);
+
+ if ($form->{login}) {
+ $sf = qq|function sf() { document.login.password.focus(); }|;
+ } else {
+ $sf = qq|function sf() { document.login.login.focus(); }|;
+ }
+
+ print qq|
+<script language="JavaScript" type="text/javascript">
+<!--
+var agt = navigator.userAgent.toLowerCase();
+var is_major = parseInt(navigator.appVersion);
+var is_nav = ((agt.indexOf('mozilla') != -1) && (agt.indexOf('spoofer') == -1)
+ && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera') == -1)
+ && (agt.indexOf('webtv') == -1));
+var is_nav4lo = (is_nav && (is_major <= 4));
+
+function jsp() {
+ if (is_nav4lo)
+ document.login.js.value = "0"
+ else
+ document.login.js.value = "1"
+}
+$sf
+// End -->
+</script>
+|;
+
+ print qq|
+
+<body class=login onload="jsp(); sf()">
+
+<pre>
+
+</pre>
+
+<center>
+<table class=login border=3 cellpadding=20>
+ <tr>
+ <td class=login align=center><a href="http://sourceforge.net/projects/ledger-smb/" target=_top><img src="ledger-smb.png" width="200" heith="100" border="0" /></a>
+<h1 class=login align=center>|.$locale->text('Version').qq| $form->{version}
+</h1>
+
+<p>
+
+<form method=post action=$form->{script} name=login>
+
+ <table width=100%>
+ <tr>
+ <td align=center>
+ <table>
+ <tr>
+ <th align=right>|.$locale->text('Name').qq|</th>
+ <td><input class=login name=login size=30 value=$form->{login}></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Password').qq|</th>
+ <td><input class=login type=password name=password size=30></td>
+ </tr>
+ <input type=hidden name=path value=$form->{path}>
+ <input type=hidden name=js value=$form->{js}>
+ </table>
+
+ <br>
+ <input type=submit name=action value="|.$locale->text('Login').qq|">
+ </td>
+ </tr>
+ </table>
+
+</form>
+
+ </td>
+ </tr>
+</table>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub selectdataset {
+ my ($login) = @_;
+
+ if (-f "css/sql-ledger.css") {
+ $form->{stylesheet} = "sql-ledger.css";
+ }
+
+ $form->header(1);
+
+ print qq|
+<body class=login onload="document.forms[0].password.focus()" />
+
+<pre>
+
+</pre>
+
+<center>
+<table class=login border=3 cellpadding=20>
+ <tr>
+ <td class=login align=center><a href="http://sourceforge.net/projects/ledger-smb/" target=_top><img src="ledger-smb.png" width="100" heith="100" border="0" /></a>
+<h1 class=login align=center>|.$locale->text('Version').qq| $form->{version}
+</h1>
+
+<p>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=beenthere value=1>
+
+ <table width=100%>
+ <tr>
+ <td align=center>
+ <table>
+ <tr>
+ <th align=right>|.$locale->text('Name').qq|</th>
+ <td>$form->{login}</td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Password').qq|</th>
+ <td><input class=login type=password name=password size=30 value=$form->{password}></td>
+ </tr>
+ <input type=hidden name=js value=$form->{js}>
+ <input type=hidden name=path value=$form->{path}>
+ <tr>
+ <th align=right>|.$locale->text('Company').qq|</th>
+ <td>|;
+
+ $checked = "checked";
+ foreach $login (sort { $login{$a} cmp $login{$b} } keys %{ $login }) {
+ print qq|
+ <br><input class=login type=radio name=login value=$login $checked>$login{$login}
+ |;
+ $checked = "";
+ }
+
+ print qq|
+ </td>
+ </tr>
+ </table>
+ <br>
+ <input type=submit name=action value="|.$locale->text('Login').qq|">
+ </td>
+ </tr>
+ </table>
+
+</form>
+
+ </td>
+ </tr>
+</table>
+
+</body>
+</html>
+|;
+
+
+}
+
+
+sub login {
+
+ $form->{stylesheet} = "sql-ledger.css";
+ $form->{favicon} = "favicon.ico";
+
+ $form->error($locale->text('You did not enter a name!')) unless ($form->{login});
+
+ if (! $form->{beenthere}) {
+ open(FH, "$memberfile") or $form->error("$memberfile : $!");
+ @a = <FH>;
+ close(FH);
+
+ foreach $item (@a) {
+
+ if ($item =~ /^\[(.*?)\]/) {
+ $login = $1;
+ $found = 1;
+ }
+
+ if ($item =~ /^company=/) {
+ if ($login =~ /$form->{login}\@/ && $found) {
+ ($null, $name) = split /=/, $item, 2;
+ $login{$login} = $name;
+ }
+ $found = 0;
+ }
+
+ }
+
+ if (keys %login > 1) {
+ &selectdataset(\%login);
+ exit;
+ }
+ }
+
+
+ $user = new User $memberfile, $form->{login};
+
+ # if we get an error back, bale out
+ if (($errno = $user->login(\%$form, $userspath)) <= -1) {
+
+ $errno *= -1;
+ $err[1] = $locale->text('Access Denied!');
+ $err[2] = $locale->text('Incorrect Dataset version!');
+ $err[3] = $locale->text('Dataset is newer than version!');
+
+ if ($errno == 4) {
+ # upgrade dataset and log in again
+ open FH, ">$userspath/nologin" or $form->error($!);
+
+ for (qw(dbname dbhost dbport dbdriver dbuser dbpasswd)) { $form->{$_} = $user->{$_} }
+
+ $form->{dbpasswd} = unpack 'u', $form->{dbpasswd};
+
+ $form->{dbupdate} = "db$user->{dbname}";
+ $form->{$form->{dbupdate}} = 1;
+
+ $form->header;
+ print $locale->text('Upgrading to Version')." $form->{version} ... ";
+
+ # required for Oracle
+ $form->{dbdefault} = $sid;
+
+ $user->dbupdate(\%$form);
+
+ # remove lock file
+ unlink "$userspath/nologin";
+
+ print $locale->text('done');
+
+ print "<p><a href=menu.pl?login=$form->{login}&sessionid=$form->{sessionid}&path=$form->{path}&action=display&main=company_logo&js=$form->{js}>".$locale->text('Continue')."</a>";
+
+ exit;
+ }
+
+ $form->error($err[$errno]);
+ }
+
+ # made it this far, setup callback for the menu
+ $form->{callback} = "menu.pl?action=display&password=$form->{password}";
+ for (qw(login path js)) { $form->{callback} .= "&$_=$form->{$_}" }
+
+ # check for recurring transactions
+ if ($user->{acs} !~ /Recurring Transactions/) {
+ if ($user->check_recurring(\%$form)) {
+ $form->{callback} .= "&main=recurring_transactions";
+ } else {
+ $form->{callback} .= "&main=company_logo";
+ }
+ } else {
+ if ($user->{role} eq 'user') {
+ $form->{callback} .= "&main=company_logo";
+ } else {
+ if ($user->check_recurring(\%$form)) {
+ $form->{callback} .= "&main=recurring_transactions";
+ } else {
+ $form->{callback} .= "&main=company_logo";
+ }
+ }
+ }
+
+ $form->redirect;
+
+}
+
+
+
+sub logout {
+
+ $form->{callback} = "$form->{script}?path=$form->{path}&login=$form->{login}";
+
+ $form->{endsession} = 1;
+
+ $form->redirect;
+
+}
+
+
diff --git a/bin/mozilla/menu.pl b/bin/mozilla/menu.pl
new file mode 100755
index 00000000..f380dfb1
--- /dev/null
+++ b/bin/mozilla/menu.pl
@@ -0,0 +1,255 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has NOT undergone whitespace cleanup.
+#
+#======================================================================
+#
+# two frame layout with refractured menu
+#
+#######################################################################
+
+$menufile = "menu.ini";
+use LedgerSMB::Menu;
+
+
+1;
+# end of main
+
+
+sub display {
+
+ $menuwidth = ($ENV{HTTP_USER_AGENT} =~ /links/i) ? "240" : "155";
+ $menuwidth = $myconfig{menuwidth} if $myconfig{menuwidth};
+
+ $form->header(!$form->{duplicate});
+
+ print qq|
+
+<frameset cols="$menuwidth,*" border="1">
+
+ <frame name="acc_menu" src="$form->{script}?login=$form->{login}&sessionid=$form->{sessionid}&action=acc_menu&path=$form->{path}&js=$form->{js}">
+ <frame name="main_window" src="am.pl?login=$form->{login}&sessionid=$form->{sessionid}&action=$form->{main}&path=$form->{path}">
+
+</frameset>
+
+</body>
+</html>
+|;
+
+}
+
+
+
+sub acc_menu {
+
+ my $menu = new Menu "$menufile";
+ $menu->add_file("custom_$menufile") if -f "custom_$menufile";
+ $menu->add_file("$form->{login}_$menufile") if -f "$form->{login}_$menufile";
+
+ $form->{title} = $locale->text('Accounting Menu');
+
+ $form->header;
+
+ print qq|
+<script type="text/javascript">
+function SwitchMenu(obj) {
+ if (document.getElementById) {
+ var el = document.getElementById(obj);
+ var ar = document.getElementById("cont").getElementsByTagName("DIV");
+
+ if (el.style.display == "none") {
+ el.style.display = "block"; //display the block of info
+ } else {
+ el.style.display = "none";
+ }
+ }
+}
+
+function ChangeClass(menu, newClass) {
+ if (document.getElementById) {
+ document.getElementById(menu).className = newClass;
+ }
+}
+document.onselectstart = new Function("return false");
+</script>
+
+<body class=menu>
+
+<img class="cornderlogo" src="ledger-smb_small.png" width="100" height="50" border="1" />
+|;
+
+ if ($form->{js}) {
+ &js_menu($menu);
+ } else {
+ &section_menu($menu);
+ }
+
+ print qq|
+</body>
+</html>
+|;
+
+}
+
+
+sub section_menu {
+ my ($menu, $level) = @_;
+
+ # build tiered menus
+ my @menuorder = $menu->access_control(\%myconfig, $level);
+
+ while (@menuorder) {
+ $item = shift @menuorder;
+ $label = $item;
+ $label =~ s/$level--//g;
+
+ my $spacer = "&nbsp;" x (($item =~ s/--/--/g) * 2);
+
+ $label =~ s/.*--//g;
+ $label = $locale->text($label);
+ $label =~ s/ /&nbsp;/g if $label !~ /<img /i;
+
+ $menu->{$item}{target} = "main_window" unless $menu->{$item}{target};
+
+ if ($menu->{$item}{submenu}) {
+
+ $menu->{$item}{$item} = !$form->{$item};
+
+ if ($form->{level} && $item =~ $form->{level}) {
+
+ # expand menu
+ print qq|<br>\n$spacer|.$menu->menuitem(\%myconfig, \%$form, $item, $level).qq|$label</a>|;
+
+ # remove same level items
+ map { shift @menuorder } grep /^$item/, @menuorder;
+
+ &section_menu($menu, $item);
+
+ print qq|<br>\n|;
+
+ } else {
+
+ print qq|<br>\n$spacer|.$menu->menuitem(\%myconfig, \%$form, $item, $level).qq|$label&nbsp;...</a>|;
+
+ # remove same level items
+ map { shift @menuorder } grep /^$item/, @menuorder;
+
+ }
+
+ } else {
+
+ if ($menu->{$item}{module}) {
+
+ print qq|<br>\n$spacer|.$menu->menuitem(\%myconfig, \%$form, $item, $level).qq|$label</a>|;
+
+ } else {
+
+ $form->{tag}++;
+ print qq|<a name="id$form->{tag}"></a>
+ <p><b>$label</b>|;
+
+ &section_menu($menu, $item);
+
+ print qq|<br>\n|;
+
+ }
+ }
+ }
+}
+
+
+
+sub js_menu {
+ my ($menu, $level) = @_;
+
+ print qq|
+ <div id="cont">
+ |;
+
+ # build tiered menus
+ my @menuorder = $menu->access_control(\%myconfig, $level);
+
+ while (@menuorder){
+ $i++;
+ $item = shift @menuorder;
+ $label = $item;
+ $label =~ s/.*--//g;
+ $label = $locale->text($label);
+
+ $menu->{$item}{target} = "main_window" unless $menu->{$item}{target};
+
+ if ($menu->{$item}{submenu}) {
+
+ $display = "display: none;" unless $level eq ' ';
+
+ print qq|
+<div id="menu$i" class="menuOut" onclick="SwitchMenu('sub$i')" onmouseover="ChangeClass('menu$i','menuOver')" onmouseout="ChangeClass('menu$i','menuOut')">$label</div>
+ <div class="submenu" id="sub$i" style="$display">|;
+
+ # remove same level items
+ map { shift @menuorder } grep /^$item/, @menuorder;
+
+ &js_menu($menu, $item);
+
+ print qq|
+
+ </div>
+ |;
+
+ } else {
+
+ if ($menu->{$item}{module}) {
+ if ($level eq "") {
+ print qq|<div id="menu$i" class="menuOut" onmouseover="ChangeClass('menu$i','menuOver')" onmouseout="ChangeClass('menu$i','menuOut')"> |.
+ $menu->menuitem(\%myconfig, \%$form, $item, $level).qq|$label</a></div>|;
+
+ # remove same level items
+ map { shift @menuorder } grep /^$item/, @menuorder;
+
+ &js_menu($menu, $item);
+
+ } else {
+
+ print qq|<div class="submenu"> |.
+ $menu->menuitem(\%myconfig, \%$form, $item, $level).qq|$label</a></div>|;
+ }
+
+ } else {
+
+ $display = "display: none;" unless $item eq ' ';
+
+ print qq|
+<div id="menu$i" class="menuOut" onclick="SwitchMenu('sub$i')" onmouseover="ChangeClass('menu$i','menuOver')" onmouseout="ChangeClass('menu$i','menuOut')">$label</div>
+ <div class="submenu" id="sub$i" style="$display">|;
+
+ &js_menu($menu, $item);
+
+ print qq|
+
+ </div>
+ |;
+
+ }
+
+ }
+
+ }
+
+ print qq|
+ </div>
+ |;
+}
+
+
+sub menubar {
+
+ 1;
+
+}
+
+
diff --git a/bin/mozilla/oe.pl b/bin/mozilla/oe.pl
new file mode 100755
index 00000000..ba8c89ca
--- /dev/null
+++ b/bin/mozilla/oe.pl
@@ -0,0 +1,3012 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has NOT undergone whitespace cleanup.
+#
+#======================================================================
+#
+# Order entry module
+# Quotation module
+#
+#======================================================================
+
+
+use LedgerSMB::OE;
+use LedgerSMB::IR;
+use LedgerSMB::IS;
+use LedgerSMB::PE;
+
+require "$form->{path}/arap.pl";
+require "$form->{path}/io.pl";
+
+
+1;
+# end of main
+
+
+sub add {
+
+ if ($form->{type} eq 'purchase_order') {
+ $form->{title} = $locale->text('Add Purchase Order');
+ $form->{vc} = 'vendor';
+ }
+ if ($form->{type} eq 'sales_order') {
+ $form->{title} = $locale->text('Add Sales Order');
+ $form->{vc} = 'customer';
+ }
+ if ($form->{type} eq 'request_quotation') {
+ $form->{title} = $locale->text('Add Request for Quotation');
+ $form->{vc} = 'vendor';
+ }
+ if ($form->{type} eq 'sales_quotation') {
+ $form->{title} = $locale->text('Add Quotation');
+ $form->{vc} = 'customer';
+ }
+
+ $form->{callback} = "$form->{script}?action=add&type=$form->{type}&vc=$form->{vc}&login=$form->{login}&path=$form->{path}&sessionid=$form->{sessionid}" unless $form->{callback};
+
+ $form->{rowcount} = 0;
+
+ &order_links;
+ &prepare_order;
+ &display_form;
+
+}
+
+
+sub edit {
+
+ if ($form->{type} =~ /(purchase_order|bin_list)/) {
+ $form->{title} = $locale->text('Edit Purchase Order');
+ $form->{vc} = 'vendor';
+ $form->{type} = 'purchase_order';
+ }
+ if ($form->{type} =~ /((sales|work)_order|(packing|pick)_list)/) {
+ $form->{title} = $locale->text('Edit Sales Order');
+ $form->{vc} = 'customer';
+ $form->{type} = 'sales_order';
+ }
+ if ($form->{type} eq 'request_quotation') {
+ $form->{title} = $locale->text('Edit Request for Quotation');
+ $form->{vc} = 'vendor';
+ }
+ if ($form->{type} eq 'sales_quotation') {
+ $form->{title} = $locale->text('Edit Quotation');
+ $form->{vc} = 'customer';
+ }
+
+ &order_links;
+ &prepare_order;
+ &display_form;
+
+}
+
+
+
+sub order_links {
+
+ # retrieve order/quotation
+ OE->retrieve(\%myconfig, \%$form);
+
+ # get customer/vendor
+ $form->all_vc(\%myconfig, $form->{vc}, ($form->{vc} eq 'customer') ? "AR" : "AP", undef, $form->{transdate}, 1);
+
+ # currencies
+ @curr = split /:/, $form->{currencies};
+ $form->{defaultcurrency} = $curr[0];
+ chomp $form->{defaultcurrency};
+ $form->{currency} = $form->{defaultcurrency} unless $form->{currency};
+
+ for (@curr) { $form->{selectcurrency} .= "<option>$_\n" }
+
+ $form->{oldlanguage_code} = $form->{language_code};
+
+ $l{language_code} = $form->{language_code};
+ $l{searchitems} = 'nolabor' if $form->{vc} eq 'customer';
+
+ $form->get_partsgroup(\%myconfig, \%l);
+
+ if (@{ $form->{all_partsgroup} }) {
+ $form->{selectpartsgroup} = "<option>\n";
+ foreach $ref (@ { $form->{all_partsgroup} }) {
+ if ($ref->{translation}) {
+ $form->{selectpartsgroup} .= qq|<option value="$ref->{partsgroup}--$ref->{id}">$ref->{translation}\n|;
+ } else {
+ $form->{selectpartsgroup} .= qq|<option value="$ref->{partsgroup}--$ref->{id}">$ref->{partsgroup}\n|;
+ }
+ }
+ }
+
+ if (@{ $form->{all_project} }) {
+ $form->{selectprojectnumber} = "<option>\n";
+ for (@{ $form->{all_project} }) { $form->{selectprojectnumber} .= qq|<option value="$_->{projectnumber}--$_->{id}">$_->{projectnumber}\n| }
+ }
+
+ if (@{ $form->{"all_$form->{vc}"} }) {
+ unless ($form->{"$form->{vc}_id"}) {
+ $form->{"$form->{vc}_id"} = $form->{"all_$form->{vc}"}->[0]->{id};
+ }
+ }
+
+ for (qw(terms taxincluded)) { $temp{$_} = $form->{$_} }
+ $form->{shipto} = 1 if $form->{id};
+
+ # get customer / vendor
+ AA->get_name(\%myconfig, \%$form);
+
+ if ($form->{id}) {
+ for (qw(terms taxincluded)) { $form->{$_} = $temp{$_} }
+ }
+
+ ($form->{$form->{vc}}) = split /--/, $form->{$form->{vc}};
+ $form->{"old$form->{vc}"} = qq|$form->{$form->{vc}}--$form->{"$form->{vc}_id"}|;
+
+ # build selection list
+ $form->{"select$form->{vc}"} = "";
+ if (@{ $form->{"all_$form->{vc}"} }) {
+ $form->{$form->{vc}} = qq|$form->{$form->{vc}}--$form->{"$form->{vc}_id"}|;
+ for (@{ $form->{"all_$form->{vc}"} }) { $form->{"select$form->{vc}"} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+ }
+
+ # departments
+ if (@{ $form->{all_department} }) {
+ $form->{selectdepartment} = "<option>\n";
+ $form->{department} = "$form->{department}--$form->{department_id}" if $form->{department_id};
+
+ for (@{ $form->{all_department} }) { $form->{selectdepartment} .= qq|<option value="$_->{description}--$_->{id}">$_->{description}\n| }
+ }
+
+ $form->{employee} = "$form->{employee}--$form->{employee_id}";
+
+ # sales staff
+ if (@{ $form->{all_employee} }) {
+ $form->{selectemployee} = "";
+ for (@{ $form->{all_employee} }) { $form->{selectemployee} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+ }
+
+ if (@{ $form->{all_language} }) {
+ $form->{selectlanguage} = "<option>\n";
+ for (@{ $form->{all_language} }) { $form->{selectlanguage} .= qq|<option value="$_->{code}">$_->{description}\n| }
+ }
+
+ # forex
+ $form->{forex} = $form->{exchangerate};
+
+}
+
+
+sub prepare_order {
+
+ $form->{format} = "postscript" if $myconfig{printer};
+ $form->{media} = $myconfig{printer};
+ $form->{formname} = $form->{type};
+ $form->{sortby} ||= "runningnumber";
+ $form->{currency} =~ s/ //g;
+ $form->{oldcurrency} = $form->{currency};
+
+ if ($form->{id}) {
+
+ for (qw(ordnumber quonumber shippingpoint shipvia notes intnotes shiptoname shiptoaddress1 shiptoaddress2 shiptocity shiptostate shiptozipcode shiptocountry shiptocontact)) { $form->{$_} = $form->quote($form->{$_}) }
+
+ foreach $ref (@{ $form->{form_details} } ) {
+ $i++;
+ for (keys %$ref) { $form->{"${_}_$i"} = $ref->{$_} }
+
+ $form->{"projectnumber_$i"} = qq|$ref->{projectnumber}--$ref->{project_id}| if $ref->{project_id};
+ $form->{"partsgroup_$i"} = qq|$ref->{partsgroup}--$ref->{partsgroup_id}| if $ref->{partsgroup_id};
+
+ $form->{"discount_$i"} = $form->format_amount(\%myconfig, $form->{"discount_$i"} * 100);
+
+ ($dec) = ($form->{"sellprice_$i"} =~ /\.(\d+)/);
+ $dec = length $dec;
+ $decimalplaces = ($dec > 2) ? $dec : 2;
+
+ for (map { "${_}_$i" } qw(sellprice listprice)) { $form->{$_} = $form->format_amount(\%myconfig, $form->{$_}, $decimalplaces) }
+
+ ($dec) = ($form->{"lastcost_$i"} =~ /\.(\d+)/);
+ $dec = length $dec;
+ $decimalplaces = ($dec > 2) ? $dec : 2;
+
+ $form->{"lastcost_$i"} = $form->format_amount(\%myconfig, $form->{"lastcost_$i"}, $decimalplaces);
+
+ $form->{"qty_$i"} = $form->format_amount(\%myconfig, $form->{"qty_$i"});
+ $form->{"oldqty_$i"} = $form->{"qty_$i"};
+
+ for (qw(partnumber sku description unit)) { $form->{"${_}_$i"} = $form->quote($form->{"${_}_$i"}) }
+ $form->{rowcount} = $i;
+ }
+ }
+
+ $form->{oldtransdate} = $form->{transdate};
+
+ if ($form->{type} eq 'sales_quotation') {
+ if (! $form->{readonly}) {
+ $form->{readonly} = 1 if $myconfig{acs} =~ /Quotations--Quotation/;
+ }
+
+ $form->{selectformname} = qq|<option value="sales_quotation">|.$locale->text('Quotation');
+ }
+
+ if ($form->{type} eq 'request_quotation') {
+ if (! $form->{readonly}) {
+ $form->{readonly} = 1 if $myconfig{acs} =~ /Quotations--RFQ/;
+ }
+
+ $form->{selectformname} = qq|<option value="request_quotation">|.$locale->text('RFQ');
+ }
+
+ if ($form->{type} eq 'sales_order') {
+ if (! $form->{readonly}) {
+ $form->{readonly} = 1 if $myconfig{acs} =~ /Order Entry--Sales Order/;
+ }
+
+ $form->{selectformname} = qq|<option value="sales_order">|.$locale->text('Sales Order').qq|
+ <option value="work_order">|.$locale->text('Work Order').qq|
+ <option value="pick_list">|.$locale->text('Pick List').qq|
+ <option value="packing_list">|.$locale->text('Packing List');
+ }
+
+ if ($form->{type} eq 'purchase_order') {
+ if (! $form->{readonly}) {
+ $form->{readonly} = 1 if $myconfig{acs} =~ /Order Entry--Purchase Order/;
+ }
+
+ $form->{selectformname} = qq|<option value="purchase_order">|.$locale->text('Purchase Order').qq|
+ <option value="bin_list">|.$locale->text('Bin List');
+ }
+
+ if ($form->{type} eq 'ship_order') {
+ $form->{selectformname} = qq|<option value="pick_list">|.$locale->text('Pick List').qq|
+ <option value="packing_list">|.$locale->text('Packing List');
+ }
+
+ if ($form->{type} eq 'receive_order') {
+ $form->{selectformname} = qq|<option value="bin_list">|.$locale->text('Bin List');
+ }
+
+}
+
+
+sub form_header {
+
+ $checkedopen = ($form->{closed}) ? "" : "checked";
+ $checkedclosed = ($form->{closed}) ? "checked" : "";
+
+ if ($form->{id}) {
+ $openclosed = qq|
+ <tr>
+ <th nowrap align=right><input name=closed type=radio class=radio value=0 $checkedopen> |.$locale->text('Open').qq|</th>
+ <th nowrap align=left><input name=closed type=radio class=radio value=1 $checkedclosed> |.$locale->text('Closed').qq|</th>
+ </tr>
+|;
+ }
+
+ # set option selected
+ $form->{selectcurrency} =~ s/ selected//;
+ $form->{selectcurrency} =~ s/option>\Q$form->{currency}\E/option selected>$form->{currency}/;
+
+ for ("$form->{vc}", "department", "employee") {
+ $form->{"select$_"} = $form->unescape($form->{"select$_"});
+ $form->{"select$_"} =~ s/ selected//;
+ $form->{"select$_"} =~ s/(<option value="\Q$form->{$_}\E")/$1 selected/;
+ }
+
+
+ $form->{exchangerate} = $form->format_amount(\%myconfig, $form->{exchangerate});
+
+ $exchangerate = qq|<tr>|;
+ $exchangerate .= qq|
+ <th align=right nowrap>|.$locale->text('Currency').qq|</th>
+ <td><select name=currency>$form->{selectcurrency}</select></td> | if $form->{defaultcurrency};
+ $exchangerate .= qq|
+ <input type=hidden name=selectcurrency value="$form->{selectcurrency}">
+ <input type=hidden name=defaultcurrency value=$form->{defaultcurrency}>
+|;
+
+ if ($form->{defaultcurrency} && $form->{currency} ne $form->{defaultcurrency}) {
+ if ($form->{forex}) {
+ $exchangerate .= qq|<th align=right>|.$locale->text('Exchange Rate').qq|</th><td>$form->{exchangerate}</td>
+ <input type=hidden name=exchangerate value=$form->{exchangerate}>
+|;
+ } else {
+ $exchangerate .= qq|<th align=right>|.$locale->text('Exchange Rate').qq|</th><td><input name=exchangerate size=10 value=$form->{exchangerate}></td>|;
+ }
+ }
+ $exchangerate .= qq|
+<input type=hidden name=forex value=$form->{forex}>
+</tr>
+|;
+
+
+
+ $vclabel = ucfirst $form->{vc};
+ $vclabel = $locale->text($vclabel);
+
+ $terms = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Terms').qq|</th>
+ <td nowrap><input name=terms size="3" maxlength="3" value=$form->{terms}> |.$locale->text('days').qq|</td>
+ </tr>
+|;
+
+
+ if ($form->{business}) {
+ $business = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Business').qq|</th>
+ <td colspan=3>$form->{business}
+ &nbsp;&nbsp;&nbsp;|;
+ $business .= qq|
+ <b>|.$locale->text('Trade Discount').qq|</b>
+ |.$form->format_amount(\%myconfig, $form->{tradediscount} * 100).qq| %| if $form->{vc} eq 'customer';
+ $business .= qq|</td>
+ </tr>
+|;
+ }
+
+ if ($form->{type} !~ /_quotation$/) {
+ $ordnumber = qq|
+ <tr>
+ <th width=70% align=right nowrap>|.$locale->text('Order Number').qq|</th>
+ <td><input name=ordnumber size=20 value="$form->{ordnumber}"></td>
+ <input type=hidden name=quonumber value="$form->{quonumber}">
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Order Date').qq|</th>
+ <td><input name=transdate size=11 title="$myconfig{dateformat}" value=$form->{transdate}></td>
+ </tr>
+ <tr>
+ <th align=right nowrap=true>|.$locale->text('Required by').qq|</th>
+ <td><input name=reqdate size=11 title="$myconfig{dateformat}" value=$form->{reqdate}></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('PO Number').qq|</th>
+ <td><input name=ponumber size=20 value="$form->{ponumber}"></td>
+ </tr>
+|;
+
+ $n = ($form->{creditremaining} < 0) ? "0" : "1";
+
+ $creditremaining = qq|
+ <tr>
+ <td></td>
+ <td colspan=3>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Credit Limit').qq|</th>
+ <td>|.$form->format_amount(\%myconfig, $form->{creditlimit}, 0, "0").qq|</td>
+ <td width=10></td>
+ <th align=right nowrap>|.$locale->text('Remaining').qq|</th>
+ <td class="plus$n" nowrap>|.$form->format_amount(\%myconfig, $form->{creditremaining}, 0, "0").qq|</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+|;
+ } else {
+ $reqlabel = ($form->{type} eq 'sales_quotation') ? $locale->text('Valid until') : $locale->text('Required by');
+ if ($form->{type} eq 'sales_quotation') {
+ $ordnumber = qq|
+ <tr>
+ <th width=70% align=right nowrap>|.$locale->text('Quotation Number').qq|</th>
+ <td><input name=quonumber size=20 value="$form->{quonumber}"></td>
+ <input type=hidden name=ordnumber value="$form->{ordnumber}">
+ </tr>
+|;
+ } else {
+ $ordnumber = qq|
+ <tr>
+ <th width=70% align=right nowrap>|.$locale->text('RFQ Number').qq|</th>
+ <td><input name=quonumber size=20 value="$form->{quonumber}"></td>
+ <input type=hidden name=ordnumber value="$form->{ordnumber}">
+ </tr>
+|;
+
+ $terms = "";
+ }
+
+
+ $ordnumber .= qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Quotation Date').qq|</th>
+ <td><input name=transdate size=11 title="$myconfig{dateformat}" value=$form->{transdate}></td>
+ </tr>
+ <tr>
+ <th align=right nowrap=true>$reqlabel</th>
+ <td><input name=reqdate size=11 title="$myconfig{dateformat}" value=$form->{reqdate}></td>
+ </tr>
+|;
+
+ }
+
+ $ordnumber .= qq|
+<input type=hidden name=oldtransdate value=$form->{oldtransdate}>|;
+
+ if ($form->{"select$form->{vc}"}) {
+ $vc = qq|<select name=$form->{vc}>$form->{"select$form->{vc}"}</select>
+ <input type=hidden name="select$form->{vc}" value="|
+ .$form->escape($form->{"select$form->{vc}"},1).qq|">|;
+ } else {
+ $vc = qq|<input name=$form->{vc} value="$form->{$form->{vc}}" size=35>|;
+ }
+
+ $department = qq|
+ <tr>
+ <th align="right" nowrap>|.$locale->text('Department').qq|</th>
+ <td colspan=3><select name=department>$form->{selectdepartment}</select>
+ <input type=hidden name=selectdepartment value="|
+ .$form->escape($form->{selectdepartment},1).qq|">
+ </td>
+ </tr>
+| if $form->{selectdepartment};
+
+ $employee = qq|
+ <input type=hidden name=employee value="$form->{employee}">
+|;
+
+ if ($form->{type} eq 'sales_order') {
+ if ($form->{selectemployee}) {
+ $employee = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Salesperson').qq|</th>
+ <td><select name=employee>$form->{selectemployee}</select></td>
+ <input type=hidden name=selectemployee value="|.
+ $form->escape($form->{selectemployee},1).qq|"
+ </tr>
+|;
+ }
+ } else {
+ if ($form->{selectemployee}) {
+ $employee = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Employee').qq|</th>
+ <td><select name=employee>$form->{selectemployee}</select></td>
+ <input type=hidden name=selectemployee value="|.
+ $form->escape($form->{selectemployee},1).qq|"
+ </tr>
+|;
+ }
+ }
+
+ $i = $form->{rowcount} + 1;
+ $focus = "partnumber_$i";
+
+ $form->header;
+
+ print qq|
+<body onLoad="document.forms[0].${focus}.focus()" />
+
+<form method=post action="$form->{script}">
+|;
+
+ $form->hide_form(qw(id type formname media format printed emailed queued vc title discount creditlimit creditremaining tradediscount business recurring));
+
+ print qq|
+<table width=100%>
+ <tr class=listtop>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width="100%">
+ <tr valign=top>
+ <td>
+ <table width=100%>
+ <tr>
+ <th align=right>$vclabel</th>
+ <td colspan=3>$vc</td>
+ <input type=hidden name=$form->{vc}_id value=$form->{"$form->{vc}_id"}>
+ <input type=hidden name="old$form->{vc}" value="$form->{"old$form->{vc}"}">
+ </tr>
+ $creditremaining
+ $business
+ $department
+ $exchangerate
+ <tr>
+ <th align=right>|.$locale->text('Shipping Point').qq|</th>
+ <td colspan=3><input name=shippingpoint size=35 value="$form->{shippingpoint}"></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Ship via').qq|</th>
+ <td colspan=3><input name=shipvia size=35 value="$form->{shipvia}"></td>
+ </tr>
+ </table>
+ </td>
+ <td align=right>
+ <table>
+ $openclosed
+ $employee
+ $ordnumber
+ $terms
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+|;
+
+ $form->hide_form(qw(shiptoname shiptoaddress1 shiptoaddress2 shiptocity shiptostate shiptozipcode shiptocountry shiptocontact shiptophone shiptofax shiptoemail message email subject cc bcc taxaccounts));
+
+ for (split / /, $form->{taxaccounts}) {
+ print qq|
+<input type=hidden name="${_}_rate" value=$form->{"${_}_rate"}>
+<input type=hidden name="${_}_description" value="$form->{"${_}_description"}">
+|;
+ }
+
+}
+
+
+sub form_footer {
+
+ $form->{invtotal} = $form->{invsubtotal};
+
+ if (($rows = $form->numtextrows($form->{notes}, 35, 8)) < 2) {
+ $rows = 2;
+ }
+ if (($introws = $form->numtextrows($form->{intnotes}, 35, 8)) < 2) {
+ $introws = 2;
+ }
+ $rows = ($rows > $introws) ? $rows : $introws;
+ $notes = qq|<textarea name=notes rows=$rows cols=35 wrap=soft>$form->{notes}</textarea>|;
+ $intnotes = qq|<textarea name=intnotes rows=$rows cols=35 wrap=soft>$form->{intnotes}</textarea>|;
+
+
+ $form->{taxincluded} = ($form->{taxincluded}) ? "checked" : "";
+
+ $taxincluded = "";
+ if ($form->{taxaccounts}) {
+ $taxincluded = qq|
+ <tr height="5"></tr>
+ <tr>
+ <td align=right>
+ <input name=taxincluded class=checkbox type=checkbox value=1 $form->{taxincluded}></td>
+ <th align=left>|.$locale->text('Tax Included').qq|</th>
+ </tr>
+|;
+ }
+
+ if (!$form->{taxincluded}) {
+
+ for (split / /, $form->{taxaccounts}) {
+ if ($form->{"${_}_base"}) {
+ $form->{invtotal} += $form->{"${_}_total"} = $form->round_amount($form->{"${_}_base"} * $form->{"${_}_rate"}, 2);
+ $form->{"${_}_total"} = $form->format_amount(\%myconfig, $form->{"${_}_total"}, 2);
+
+ $tax .= qq|
+ <tr>
+ <th align=right>$form->{"${_}_description"}</th>
+ <td align=right>$form->{"${_}_total"}</td>
+ </tr>
+|;
+ }
+ }
+
+ $form->{invsubtotal} = $form->format_amount(\%myconfig, $form->{invsubtotal}, 2, 0);
+
+ $subtotal = qq|
+ <tr>
+ <th align=right>|.$locale->text('Subtotal').qq|</th>
+ <td align=right>$form->{invsubtotal}</td>
+ </tr>
+|;
+
+ }
+
+ $form->{oldinvtotal} = $form->{invtotal};
+ $form->{invtotal} = $form->format_amount(\%myconfig, $form->{invtotal}, 2, 0);
+
+
+ print qq|
+ <tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=left>|.$locale->text('Notes').qq|</th>
+ <th align=left>|.$locale->text('Internal Notes').qq|</th>
+ </tr>
+ <tr valign=top>
+ <td>$notes</td>
+ <td>$intnotes</td>
+ </tr>
+ </table>
+ </td>
+ <td align=right>
+ <table>
+ $subtotal
+ $tax
+ <tr>
+ <th align=right>|.$locale->text('Total').qq|</th>
+ <td align=right>$form->{invtotal}</td>
+ </tr>
+ $taxincluded
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+<input type=hidden name=oldinvtotal value=$form->{oldinvtotal}>
+<input type=hidden name=oldtotalpaid value=$totalpaid>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+ <tr>
+ <td>
+|;
+
+ &print_options;
+
+ print qq|
+ </td>
+ </tr>
+</table>
+
+<br>
+|;
+
+# type=submit $locale->text('Update')
+# type=submit $locale->text('Print')
+# type=submit $locale->text('Schedule')
+# type=submit $locale->text('Save')
+# type=submit $locale->text('Print and Save')
+# type=submit $locale->text('Ship to')
+# type=submit $locale->text('Save as new')
+# type=submit $locale->text('Print and Save as new')
+# type=submit $locale->text('E-mail')
+# type=submit $locale->text('Delete')
+# type=submit $locale->text('Sales Invoice')
+# type=submit $locale->text('Vendor Invoice')
+# type=submit $locale->text('Quotation')
+# type=submit $locale->text('RFQ')
+# type=submit $locale->text('Sales Order')
+# type=submit $locale->text('Purchase Order')
+
+ if (! $form->{readonly}) {
+ %button = ('Update' => { ndx => 1, key => 'U', value => $locale->text('Update') },
+ 'Print' => { ndx => 2, key => 'P', value => $locale->text('Print') },
+ 'Save' => { ndx => 3, key => 'S', value => $locale->text('Save') },
+ 'Ship to' => { ndx => 4, key => 'T', value => $locale->text('Ship to') },
+ 'E-mail' => { ndx => 5, key => 'E', value => $locale->text('E-mail') },
+ 'Print and Save' => { ndx => 6, key => 'R', value => $locale->text('Print and Save') },
+ 'Save as new' => { ndx => 7, key => 'N', value => $locale->text('Save as new') },
+ 'Print and Save as new' => { ndx => 8, key => 'W', value => $locale->text('Print and Save as new') },
+ 'Sales Invoice' => { ndx => 9, key => 'I', value => $locale->text('Sales Invoice') },
+ 'Sales Order' => { ndx => 10, key => 'O', value => $locale->text('Sales Order') },
+ 'Quotation' => { ndx => 11, key => 'Q', value => $locale->text('Quotation') },
+ 'Vendor Invoice' => { ndx => 12, key => 'I', value => $locale->text('Vendor Invoice') },
+ 'Purchase Order' => { ndx => 13, key => 'O', value => $locale->text('Purchase Order') },
+ 'RFQ' => { ndx => 14, key => 'Q', value => $locale->text('RFQ') },
+ 'Schedule' => { ndx => 15, key => 'H', value => $locale->text('Schedule') },
+ 'Delete' => { ndx => 16, key => 'D', value => $locale->text('Delete') },
+ );
+
+
+ %a = ();
+ for ("Update", "Ship to", "Print", "E-mail", "Save") { $a{$_} = 1 }
+ $a{'Print and Save'} = 1 if $latex;
+
+ if ($form->{id}) {
+
+ $a{'Delete'} = 1;
+ $a{'Save as new'} = 1;
+ $a{'Print and Save as new'} = 1 if $latex;
+
+ if ($form->{type} =~ /sales_/) {
+ if ($myconfig{acs} !~ /AR--Sales Invoice/) {
+ $a{'Sales Invoice'} = 1;
+ }
+ } else {
+ if ($myconfig{acs} !~ /AP--Vendor Invoice/) {
+ $a{'Vendor Invoice'} = 1;
+ }
+ }
+
+ if ($form->{type} eq 'sales_order') {
+ if ($myconfig{acs} !~ /Quotations--RFQ/) {
+ $a{'Quotation'} = 1;
+ }
+ }
+
+ if ($form->{type} eq 'purchase_order') {
+ if ($myconfig{acs} !~ /Quotations--RFQ/) {
+ $a{'RFQ'} = 1;
+ }
+ }
+
+ if ($form->{type} eq 'sales_quotation') {
+ if ($myconfig{acs} !~ /Order Entry--Sales Order/) {
+ $a{'Sales Order'} = 1;
+ }
+ }
+
+ if ($myconfig{acs} !~ /Order Entry--Purchase Order/) {
+ if ($form->{type} eq 'request_quotation') {
+ $a{'Purchase Order'} = 1;
+ }
+ }
+ }
+
+ if ($form->{type} =~ /_order/) {
+ $a{'Schedule'} = 1;
+ }
+
+ }
+
+ for (keys %button) { delete $button{$_} if ! $a{$_} }
+ for (sort { $button{$a}->{ndx} <=> $button{$b}->{ndx} } keys %button) { $form->print_button(\%button, $_) }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ $form->hide_form(qw(rowcount callback path login sessionid));
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub update {
+
+ if ($form->{type} eq 'generate_purchase_order') {
+
+ for (1 .. $form->{rowcount}) {
+ if ($form->{"ndx_$_"}) {
+ $form->{"$form->{vc}_id_$_"} = $form->{"$form->{vc}_id"};
+ $form->{"$form->{vc}_$_"} = qq|$form->{$form->{vc}}--$form->{"$form->{vc}_id"}|;
+ }
+ }
+
+ &po_orderitems;
+ exit;
+ }
+
+ $form->{exchangerate} = $form->parse_amount(\%myconfig, $form->{exchangerate});
+
+ if ($form->{vc} eq 'customer') {
+ $buysell = "buy";
+ $ARAP = "AR";
+ } else {
+ $buysell = "sell";
+ $ARAP = "AP";
+ }
+
+ if ($newname = &check_name($form->{vc})) {
+ &rebuild_vc($form->{vc}, $ARAP, $form->{transdate}, 1);
+ }
+
+ if ($form->{transdate} ne $form->{oldtransdate}) {
+ $form->{reqdate} = ($form->{terms}) ? $form->current_date(\%myconfig, $form->{transdate}, $form->{terms} * 1) : $form->{reqdate};
+ $form->{oldtransdate} = $form->{transdate};
+ &rebuild_vc($form->{vc}, $ARAP, $form->{transdate}, 1) if ! $newname;
+
+ if ($form->{currency} ne $form->{defaultcurrency}) {
+ delete $form->{exchangerate};
+ $form->{exchangerate} = $exchangerate if ($form->{forex} = ($exchangerate = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{transdate}, $buysell)));
+ }
+
+ $form->{selectemployee} = "";
+ if (@{ $form->{all_employee} }) {
+ for (@{ $form->{all_employee} }) { $form->{selectemployee} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+ }
+ }
+
+
+ if ($form->{currency} ne $form->{oldcurrency}) {
+ delete $form->{exchangerate};
+ $form->{exchangerate} = $exchangerate if ($form->{forex} = ($exchangerate = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{transdate}, $buysell)));
+ }
+
+ my $i = $form->{rowcount};
+ $exchangerate = ($form->{exchangerate}) ? $form->{exchangerate} : 1;
+
+ for (qw(partsgroup projectnumber)) {
+ $form->{"select$_"} = $form->unescape($form->{"select$_"}) if $form->{"select$_"};
+ }
+
+ if (($form->{"partnumber_$i"} eq "") && ($form->{"description_$i"} eq "") && ($form->{"partsgroup_$i"} eq "")) {
+
+ $form->{creditremaining} += ($form->{oldinvtotal} - $form->{oldtotalpaid});
+ &check_form;
+
+ } else {
+
+ $retrieve_item = "";
+ if ($form->{type} eq 'purchase_order' || $form->{type} eq 'request_quotation') {
+ $retrieve_item = "IR::retrieve_item";
+ }
+ if ($form->{type} eq 'sales_order' || $form->{type} eq 'sales_quotation') {
+ $retrieve_item = "IS::retrieve_item";
+ }
+
+ &{ "$retrieve_item" }("", \%myconfig, \%$form);
+
+ $rows = scalar @{ $form->{item_list} };
+
+ if ($form->{language_code} && $rows == 0) {
+ $language_code = $form->{language_code};
+ $form->{language_code} = "";
+ if ($retrieve_item) {
+ &{ "$retrieve_item" }("", \%myconfig, \%$form);
+ }
+ $form->{language_code} = $language_code;
+ $rows = scalar @{ $form->{item_list} };
+ }
+
+ if ($rows) {
+
+ if ($rows > 1) {
+
+ &select_item;
+ exit;
+
+ } else {
+
+ $form->{"qty_$i"} = ($form->{"qty_$i"} * 1) ? $form->{"qty_$i"} : 1;
+ $form->{"reqdate_$i"} = $form->{reqdate} if $form->{type} ne 'sales_quotation';
+ $sellprice = $form->parse_amount(\%myconfig, $form->{"sellprice_$i"});
+
+ for (qw(partnumber description unit)) { $form->{item_list}[$i]{$_} = $form->quote($form->{item_list}[$i]{$_}) }
+ for (keys %{ $form->{item_list}[0] }) { $form->{"${_}_$i"} = $form->{item_list}[0]{$_} }
+
+ $form->{"discount_$i"} = $form->{discount} * 100;
+
+ if ($sellprice) {
+ $form->{"sellprice_$i"} = $sellprice;
+
+ ($dec) = ($form->{"sellprice_$i"} =~ /\.(\d+)/);
+ $dec = length $dec;
+ $decimalplaces1 = ($dec > 2) ? $dec : 2;
+ } else {
+ ($dec) = ($form->{"sellprice_$i"} =~ /\.(\d+)/);
+ $dec = length $dec;
+ $decimalplaces1 = ($dec > 2) ? $dec : 2;
+
+ $form->{"sellprice_$i"} /= $exchangerate;
+ }
+
+ ($dec) = ($form->{"lastcost_$i"} =~ /\.(\d+)/);
+ $dec = length $dec;
+ $decimalplaces2 = ($dec > 2) ? $dec : 2;
+
+ for (qw(listprice lastcost)) { $form->{"${_}_$i"} /= $exchangerate }
+
+ $amount = $form->{"sellprice_$i"} * $form->{"qty_$i"} * (1 - $form->{"discount_$i"} / 100);
+ for (split / /, $form->{taxaccounts}) { $form->{"${_}_base"} = 0 }
+ for (split / /, $form->{"taxaccounts_$i"}) { $form->{"${_}_base"} += $amount }
+ if (!$form->{taxincluded}) {
+ for (split / /, $form->{taxaccounts}) { $amount += ($form->{"${_}_base"} * $form->{"${_}_rate"}) }
+ }
+
+ $form->{creditremaining} -= $amount;
+
+ for (qw(sellprice listprice)) { $form->{"${_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}, $decimalplaces1) }
+ $form->{"lastcost_$i"} = $form->format_amount(\%myconfig, $form->{"lastcost_$i"}, $decimalplaces2);
+
+ $form->{"oldqty_$i"} = $form->{"qty_$i"};
+ for (qw(qty discount)) { $form->{"{_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}) }
+
+ }
+
+ &display_form;
+
+ } else {
+ # ok, so this is a new part
+ # ask if it is a part or service item
+
+ if ($form->{"partsgroup_$i"} && ($form->{"partsnumber_$i"} eq "") && ($form->{"description_$i"} eq "")) {
+ $form->{rowcount}--;
+ &display_form;
+ } else {
+
+ $form->{"id_$i"} = 0;
+ $form->{"unit_$i"} = $locale->text('ea');
+ &new_item;
+
+ }
+ }
+ }
+
+}
+
+
+
+sub search {
+
+ $requiredby = $locale->text('Required by');
+
+ if ($form->{type} eq 'purchase_order') {
+ $form->{title} = $locale->text('Purchase Orders');
+ $form->{vc} = 'vendor';
+ $ordlabel = $locale->text('Order Number');
+ $ordnumber = 'ordnumber';
+ $employee = $locale->text('Employee');
+ }
+
+ if ($form->{type} eq 'receive_order') {
+ $form->{title} = $locale->text('Receive Merchandise');
+ $form->{vc} = 'vendor';
+ $ordlabel = $locale->text('Order Number');
+ $ordnumber = 'ordnumber';
+ $employee = $locale->text('Employee');
+ }
+
+ if ($form->{type} eq 'generate_sales_order') {
+ $form->{title} = $locale->text('Generate Sales Order from Purchase Orders');
+ $form->{vc} = 'vendor';
+ $ordlabel = $locale->text('Order Number');
+ $ordnumber = 'ordnumber';
+ $employee = $locale->text('Employee');
+ }
+
+ if ($form->{type} eq 'consolidate_sales_order') {
+ $form->{title} = $locale->text('Consolidate Sales Orders');
+ $form->{vc} = 'customer';
+ $ordlabel = $locale->text('Order Number');
+ $ordnumber = 'ordnumber';
+ $employee = $locale->text('Salesperson');
+ }
+
+ if ($form->{type} eq 'request_quotation') {
+ $form->{title} = $locale->text('Request for Quotations');
+ $form->{vc} = 'vendor';
+ $ordlabel = $locale->text('RFQ Number');
+ $ordnumber = 'quonumber';
+ $employee = $locale->text('Employee');
+ }
+
+ if ($form->{type} eq 'sales_order') {
+ $form->{title} = $locale->text('Sales Orders');
+ $form->{vc} = 'customer';
+ $ordlabel = $locale->text('Order Number');
+ $ordnumber = 'ordnumber';
+ $employee = $locale->text('Salesperson');
+ }
+
+ if ($form->{type} eq 'ship_order') {
+ $form->{title} = $locale->text('Ship Merchandise');
+ $form->{vc} = 'customer';
+ $ordlabel = $locale->text('Order Number');
+ $ordnumber = 'ordnumber';
+ $employee = $locale->text('Salesperson');
+ }
+
+ if ($form->{type} eq 'sales_quotation') {
+ $form->{title} = $locale->text('Quotations');
+ $form->{vc} = 'customer';
+ $ordlabel = $locale->text('Quotation Number');
+ $ordnumber = 'quonumber';
+ $employee = $locale->text('Employee');
+ $requiredby = $locale->text('Valid until');
+ }
+
+ if ($form->{type} eq 'generate_purchase_order') {
+ $form->{title} = $locale->text('Generate Purchase Orders from Sales Order');
+ $form->{vc} = 'customer';
+ $ordlabel = $locale->text('Order Number');
+ $ordnumber = 'ordnumber';
+ $employee = $locale->text('Salesperson');
+ }
+
+ if ($form->{type} eq 'consolidate_purchase_order') {
+ $form->{title} = $locale->text('Consolidate Purchase Orders');
+ $form->{vc} = 'vendor';
+ $ordlabel = $locale->text('Order Number');
+ $ordnumber = 'ordnumber';
+ $employee = $locale->text('Employee');
+ }
+
+ $l_employee = qq|<input name="l_employee" class=checkbox type=checkbox value=Y> $employee|;
+ $l_manager = qq|<input name="l_manager" class=checkbox type=checkbox value=Y> |.$locale->text('Manager');
+
+ if ($form->{type} =~ /(ship|receive)_order/) {
+ OE->get_warehouses(\%myconfig, \%$form);
+
+ $l_manager = "";
+
+ # warehouse
+ if (@{ $form->{all_warehouse} }) {
+ $form->{selectwarehouse} = "<option>\n";
+ $form->{warehouse} = qq|$form->{warehouse}--$form->{warehouse_id}|;
+
+ for (@{ $form->{all_warehouse} }) { $form->{selectwarehouse} .= qq|<option value="$_->{description}--$_->{id}">$_->{description}\n| }
+
+ $warehouse = qq|
+ <tr>
+ <th align=right>|.$locale->text('Warehouse').qq|</th>
+ <td><select name=warehouse>$form->{selectwarehouse}</select></td>
+ <input type=hidden name=selectwarehouse value="|.
+ $form->escape($form->{selectwarehouse},1).qq|">
+ </tr>
+|;
+
+ }
+ }
+
+ # setup vendor / customer selection
+ $form->all_vc(\%myconfig, $form->{vc}, ($form->{vc} eq 'customer') ? "AR" : "AP");
+
+ for (@{ $form->{"all_$form->{vc}"} }) { $vc .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+
+ $selectemployee = "";
+ if (@{ $form->{all_employee} }) {
+ $selectemployee = "<option>\n";
+ for (@{ $form->{all_employee} }) { $selectemployee .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+
+ $selectemployee = qq|
+ <tr>
+ <th align=right>$employee</th>
+ <td colspan=3><select name=employee>$selectemployee</select></td>
+ </tr>
+|;
+ } else {
+ $l_employee = $l_manager = "";
+ }
+
+ $vclabel = ucfirst $form->{vc};
+ $vclabel = $locale->text($vclabel);
+
+# $locale->text('Vendor')
+# $locale->text('Customer')
+
+ $vc = ($vc) ? qq|<select name=$form->{vc}><option>\n$vc</select>| : qq|<input name=$form->{vc} size=35>|;
+
+ # departments
+ if (@{ $form->{all_department} }) {
+ $form->{selectdepartment} = "<option>\n";
+
+ for (@{ $form->{all_department} }) { $form->{selectdepartment} .= qq|<option value="$_->{description}--$_->{id}">$_->{description}\n| }
+ }
+
+ $department = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Department').qq|</th>
+ <td colspan=3><select name=department>$form->{selectdepartment}</select></td>
+ </tr>
+| if $form->{selectdepartment};
+
+ if ($form->{type} =~ /(consolidate.*|generate.*|ship|receive)_order/) {
+
+ $openclosed = qq|
+ <input type=hidden name="open" value=1>
+|;
+
+ } else {
+
+ $openclosed = qq|
+ <tr>
+ <td nowrap><input name="open" class=checkbox type=checkbox value=1 checked> |.$locale->text('Open').qq|</td>
+ <td nowrap><input name="closed" class=checkbox type=checkbox value=1 $form->{closed}> |.$locale->text('Closed').qq|</td>
+ </tr>
+|;
+ }
+
+ if (@{ $form->{all_years} }) {
+ # accounting years
+ $form->{selectaccountingyear} = "<option>\n";
+ for (@{ $form->{all_years} }) { $form->{selectaccountingyear} .= qq|<option>$_\n| }
+ $form->{selectaccountingmonth} = "<option>\n";
+ for (sort keys %{ $form->{all_month} }) { $form->{selectaccountingmonth} .= qq|<option value=$_>|.$locale->text($form->{all_month}{$_}).qq|\n| }
+
+ $selectfrom = qq|
+ <tr>
+ <th align=right>|.$locale->text('Period').qq|</th>
+ <td colspan=3>
+ <select name=month>$form->{selectaccountingmonth}</select>
+ <select name=year>$form->{selectaccountingyear}</select>
+ <input name=interval class=radio type=radio value=0 checked>&nbsp;|.$locale->text('Current').qq|
+ <input name=interval class=radio type=radio value=1>&nbsp;|.$locale->text('Month').qq|
+ <input name=interval class=radio type=radio value=3>&nbsp;|.$locale->text('Quarter').qq|
+ <input name=interval class=radio type=radio value=12>&nbsp;|.$locale->text('Year').qq|
+ </td>
+ </tr>
+|;
+ }
+
+ if ($form->{type} =~ /_order/) {
+ $ponumber = qq|
+ <tr>
+ <th align=right>|.$locale->text('PO Number').qq|</th>
+ <td colspan=3><input name="ponumber" size=20></td>
+ </tr>
+|;
+
+
+ $l_ponumber = qq|<input name="l_ponumber" class=checkbox type=checkbox value=Y> |.$locale->text('PO Number');
+ }
+
+ @a = ();
+ push @a, qq|<input name="l_runningnumber" class=checkbox type=checkbox value=Y> |.$locale->text('No.');
+ push @a, qq|<input name="l_id" class=checkbox type=checkbox value=Y> |.$locale->text('ID');
+ push @a, qq|<input name="l_$ordnumber" class=checkbox type=checkbox value=Y checked> $ordlabel|;
+ push @a, qq|<input name="l_transdate" class=checkbox type=checkbox value=Y checked> |.$locale->text('Date');
+ push @a, $l_ponumber if $l_ponumber;
+ push @a, qq|<input name="l_reqdate" class=checkbox type=checkbox value=Y checked> $requiredby|;
+ push @a, qq|<input name="l_name" class=checkbox type=checkbox value=Y checked> $vclabel|;
+ push @a, $l_employee if $l_employee;
+ push @a, $l_manager if $l_manager;
+ push @a, qq|<input name="l_shipvia" class=checkbox type=checkbox value=Y> |.$locale->text('Ship via');
+ push @a, qq|<input name="l_netamount" class=checkbox type=checkbox value=Y> |.$locale->text('Amount');
+ push @a, qq|<input name="l_tax" class=checkbox type=checkbox value=Y> |.$locale->text('Tax');
+ push @a, qq|<input name="l_amount" class=checkbox type=checkbox value=Y checked> |.$locale->text('Total');
+ push @a, qq|<input name="l_curr" class=checkbox type=checkbox value=Y checked> |.$locale->text('Currency');
+
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right>$vclabel</th>
+ <td colspan=3>$vc</td>
+ </tr>
+ $warehouse
+ $department
+ $selectemployee
+ <tr>
+ <th align=right>$ordlabel</th>
+ <td colspan=3><input name="$ordnumber" size=20></td>
+ </tr>
+ $ponumber
+ <tr>
+ <th align=right>|.$locale->text('Ship via').qq|</th>
+ <td colspan=3><input name="shipvia" size=40></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Description').qq|</th>
+ <td colspan=3><input name="description" size=40></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('From').qq|</th>
+ <td><input name=transdatefrom size=11 title="$myconfig{dateformat}"></td>
+ <th align=right>|.$locale->text('To').qq|</th>
+ <td><input name=transdateto size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+ <input type=hidden name=sort value=transdate>
+ $selectfrom
+ <tr>
+ <th align=right>|.$locale->text('Include in Report').qq|</th>
+ <td colspan=3>
+ <table>
+ $openclosed
+|;
+
+ while (@a) {
+ for (1 .. 5) {
+ print qq|<td nowrap>|. shift @a;
+ print qq|</td>\n|;
+ }
+ print qq|</tr>\n|;
+ }
+
+ print qq|
+ <tr>
+ <td><input name="l_subtotal" class=checkbox type=checkbox value=Y> |.$locale->text('Subtotal').qq|</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr><td colspan=4><hr size=3 noshade></td></tr>
+</table>
+
+<br>
+<input type=hidden name=nextsub value=transactions>
+|;
+
+ $form->hide_form(qw(path login sessionid vc type));
+
+ print qq|
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">
+</form>
+|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+</body>
+</html>
+|;
+
+}
+
+
+sub transactions {
+
+ # split vendor / customer
+ ($form->{$form->{vc}}, $form->{"$form->{vc}_id"}) = split(/--/, $form->{$form->{vc}});
+
+ OE->transactions(\%myconfig, \%$form);
+
+ $ordnumber = ($form->{type} =~ /_order/) ? 'ordnumber' : 'quonumber';
+ $name = $form->escape($form->{$form->{vc}});
+ $name .= qq|--$form->{"$form->{vc}_id"}| if $form->{"$form->{vc}_id"};
+
+ # construct href
+ $href = qq|$form->{script}?action=transactions|;
+ for ("oldsort", "direction", "path", "type", "vc", "login", "sessionid", "transdatefrom", "transdateto", "open", "closed") { $href .= qq|&$_=$form->{$_}| }
+ for ("$ordnumber", "department", "warehouse", "shipvia", "ponumber", "description", "employee") { $href .= qq|&$_=|.$form->escape($form->{$_}) }
+ $href .= "&$form->{vc}=$name";
+
+ # construct callback
+ $name = $form->escape($form->{$form->{vc}},1);
+ $name .= qq|--$form->{"$form->{vc}_id"}| if $form->{"$form->{vc}_id"};
+
+ # flip direction
+ $form->sort_order();
+
+ $callback = qq|$form->{script}?action=transactions|;
+ for ("oldsort", "direction", "path", "type", "vc", "login", "sessionid", "transdatefrom", "transdateto", "open", "closed") { $callback .= qq|&$_=$form->{$_}| }
+ for ("$ordnumber", "department", "warehouse", "shipvia", "ponumber", "description", "employee") { $callback .= qq|&$_=|.$form->escape($form->{$_},1) }
+ $callback .= "&$form->{vc}=$name";
+
+
+ @columns = $form->sort_columns("transdate", "reqdate", "id", "$ordnumber", "ponumber", "name", "netamount", "tax", "amount", "curr", "employee", "manager", "shipvia", "open", "closed");
+ unshift @columns, "runningnumber";
+
+ $form->{l_open} = $form->{l_closed} = "Y" if ($form->{open} && $form->{closed}) ;
+
+ for (@columns) {
+ if ($form->{"l_$_"} eq "Y") {
+ push @column_index, $_;
+
+ if ($form->{l_curr} && $_ =~ /(amount|tax)/) {
+ push @column_index, "fx_$_";
+ }
+
+ # add column to href and callback
+ $callback .= "&l_$_=Y";
+ $href .= "&l_$_=Y";
+ }
+ }
+
+ if ($form->{l_subtotal} eq 'Y') {
+ $callback .= "&l_subtotal=Y";
+ $href .= "&l_subtotal=Y";
+ }
+
+ $requiredby = $locale->text('Required by');
+
+ $i = 1;
+ if ($form->{vc} eq 'vendor') {
+ if ($form->{type} eq 'receive_order') {
+ $form->{title} = $locale->text('Receive Merchandise');
+ }
+ if ($form->{type} eq 'purchase_order') {
+ $form->{title} = $locale->text('Purchase Orders');
+ if ($myconfig{acs} !~ /Order Entry--Order Entry/) {
+ $button{'Order Entry--Purchase Order'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Purchase Order').qq|"> |;
+ $button{'Order Entry--Purchase Order'}{order} = $i++;
+ }
+ }
+ if ($form->{type} eq 'generate_sales_order') {
+ $form->{title} = $locale->text('Purchase Orders');
+ $form->{type} = "purchase_order";
+ unshift @column_index, "ndx";
+ if ($myconfig{acs} !~ /Order Entry--Order Entry/) {
+ $button{'Order Entry--Sales Order'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Generate Sales Order').qq|"> |;
+ $button{'Order Entry--Sales Order'}{order} = $i++;
+ }
+ }
+ if ($form->{type} eq 'consolidate_purchase_order') {
+ $form->{title} = $locale->text('Purchase Orders');
+ $form->{type} = "purchase_order";
+ unshift @column_index, "ndx";
+ if ($myconfig{acs} !~ /Order Entry--Order Entry/) {
+ $button{'Order Entry--Purchase Order'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Consolidate Orders').qq|"> |;
+ $button{'Order Entry--Purchase Order'}{order} = $i++;
+ }
+ }
+
+ if ($form->{type} eq 'request_quotation') {
+ $form->{title} = $locale->text('Request for Quotations');
+ $quotation = $locale->text('RFQ');
+
+ if ($myconfig{acs} !~ /Quotations--Quotations/) {
+ $button{'Quotations--RFQ'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('RFQ ').qq|"> |;
+ $button{'Quotations--RFQ'}{order} = $i++;
+ }
+
+ }
+ $name = $locale->text('Vendor');
+ $employee = $locale->text('Employee');
+ }
+ if ($form->{vc} eq 'customer') {
+ if ($form->{type} eq 'sales_order') {
+ $form->{title} = $locale->text('Sales Orders');
+ $employee = $locale->text('Salesperson');
+
+ if ($myconfig{acs} !~ /Order Entry--Order Entry/) {
+ $button{'Order Entry--Sales Order'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Sales Order').qq|"> |;
+ $button{'Order Entry--Sales Order'}{order} = $i++;
+ }
+
+ }
+ if ($form->{type} eq 'generate_purchase_order') {
+ $form->{title} = $locale->text('Sales Orders');
+ $form->{type} = "sales_order";
+ $employee = $locale->text('Salesperson');
+ unshift @column_index, "ndx";
+ if ($myconfig{acs} !~ /Order Entry--Order Entry/) {
+ $button{'Order Entry--Purchase Order'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Generate Purchase Orders').qq|"> |;
+ $button{'Order Entry--Purchase Order'}{order} = $i++;
+ }
+ }
+ if ($form->{type} eq 'consolidate_sales_order') {
+ $form->{title} = $locale->text('Sales Orders');
+ $form->{type} = "sales_order";
+ unshift @column_index, "ndx";
+ if ($myconfig{acs} !~ /Order Entry--Order Entry/) {
+ $button{'Order Entry--Sales Order'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Consolidate Orders').qq|"> |;
+ $button{'Order Entry--Sales Order'}{order} = $i++;
+ }
+ }
+
+ if ($form->{type} eq 'ship_order') {
+ $form->{title} = $locale->text('Ship Merchandise');
+ $employee = $locale->text('Salesperson');
+ }
+ if ($form->{type} eq 'sales_quotation') {
+ $form->{title} = $locale->text('Quotations');
+ $employee = $locale->text('Employee');
+ $requiredby = $locale->text('Valid until');
+ $quotation = $locale->text('Quotation');
+
+ if ($myconfig{acs} !~ /Quotations--Quotations/) {
+ $button{'Quotations--Quotation'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Quotation ').qq|"> |;
+ $button{'Quotations--Quotation'}{order} = $i++;
+ }
+
+ }
+ $name = $locale->text('Customer');
+ }
+
+ for (split /;/, $myconfig{acs}) { delete $button{$_} }
+
+ $column_header{ndx} = qq|<th class=listheading>&nbsp;</th>|;
+ $column_header{runningnumber} = qq|<th class=listheading>&nbsp;</th>|;
+ $column_header{id} = qq|<th><a class=listheading href=$href&sort=id>|.$locale->text('ID').qq|</a></th>|;
+ $column_header{transdate} = qq|<th><a class=listheading href=$href&sort=transdate>|.$locale->text('Date').qq|</a></th>|;
+ $column_header{reqdate} = qq|<th><a class=listheading href=$href&sort=reqdate>$requiredby</a></th>|;
+ $column_header{ordnumber} = qq|<th><a class=listheading href=$href&sort=ordnumber>|.$locale->text('Order').qq|</a></th>|;
+ $column_header{ponumber} = qq|<th><a class=listheading href=$href&sort=ponumber>|.$locale->text('PO Number').qq|</a></th>|;
+ $column_header{quonumber} = qq|<th><a class=listheading href=$href&sort=quonumber>$quotation</a></th>|;
+ $column_header{name} = qq|<th><a class=listheading href=$href&sort=name>$name</a></th>|;
+ $column_header{netamount} = qq|<th class=listheading>|.$locale->text('Amount').qq|</th>|;
+ $column_header{tax} = qq|<th class=listheading>|.$locale->text('Tax').qq|</th>|;
+ $column_header{amount} = qq|<th class=listheading>|.$locale->text('Total').qq|</th>|;
+ $column_header{curr} = qq|<th><a class=listheading href=$href&sort=curr>|.$locale->text('Curr').qq|</a></th>|;
+ $column_header{shipvia} = qq|<th><a class=listheading href=$href&sort=shipvia>|.$locale->text('Ship via').qq|</a></th>|;
+ $column_header{open} = qq|<th class=listheading>|.$locale->text('O').qq|</th>|;
+ $column_header{closed} = qq|<th class=listheading>|.$locale->text('C').qq|</th>|;
+
+ $column_header{employee} = qq|<th><a class=listheading href=$href&sort=employee>$employee</a></th>|;
+ $column_header{manager} = qq|<th><a class=listheading href=$href&sort=manager>|.$locale->text('Manager').qq|</a></th>|;
+
+ for (qw(amount tax netamount)) { $column_header{"fx_$_"} = "<th>&nbsp;</th>" }
+
+ if ($form->{$form->{vc}}) {
+ $option = $locale->text(ucfirst $form->{vc});
+ $option .= " : $form->{$form->{vc}}";
+ }
+ if ($form->{warehouse}) {
+ ($warehouse) = split /--/, $form->{warehouse};
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Warehouse');
+ $option .= " : $warehouse";
+ }
+ if ($form->{department}) {
+ $option .= "\n<br>" if ($option);
+ ($department) = split /--/, $form->{department};
+ $option .= $locale->text('Department')." : $department";
+ }
+ if ($form->{employee}) {
+ ($employee) = split /--/, $form->{employee};
+ $option .= "\n<br>" if ($option);
+ if ($form->{vc} eq 'customer') {
+ $option .= $locale->text('Salesperson');
+ } else {
+ $option .= $locale->text('Employee');
+ }
+ $option .= " : $employee";
+ }
+ if ($form->{ordnumber}) {
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Order Number')." : $form->{ordnumber}";
+ }
+ if ($form->{quonumber}) {
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Quotation Number')." : $form->{quonumber}";
+ }
+ if ($form->{ponumber}) {
+ $option = $locale->text('PO Number');
+ $option .= " : $form->{ponumber}";
+ }
+ if ($form->{shipvia}) {
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Ship via')." : $form->{shipvia}";
+ }
+ if ($form->{description}) {
+ $option .= "\n<br>" if $option;
+ $option .= $locale->text('Description')." : $form->{description}";
+ }
+ if ($form->{transdatefrom}) {
+ $option .= "\n<br>".$locale->text('From')." ".$locale->date(\%myconfig, $form->{transdatefrom}, 1);
+ }
+ if ($form->{transdateto}) {
+ $option .= "\n<br>".$locale->text('To')." ".$locale->date(\%myconfig, $form->{transdateto}, 1);
+ }
+ if ($form->{open}) {
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Open');
+ }
+ if ($form->{closed}) {
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Closed');
+ }
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$option</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>|;
+
+ for (@column_index) { print "\n$column_header{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ # add sort and escape callback
+ $callback .= "&sort=$form->{sort}";
+ $form->{callback} = $callback;
+ $callback = $form->escape($callback);
+
+ # flip direction
+ $direction = ($form->{direction} eq 'ASC') ? "ASC" : "DESC";
+ $href =~ s/&direction=(\w+)&/&direction=$direction&/;
+
+ if (@{ $form->{OE} }) {
+ $sameitem = $form->{OE}->[0]->{$form->{sort}};
+ }
+
+ $action = "edit";
+ $action = "ship_receive" if ($form->{type} =~ /(ship|receive)_order/);
+
+ $warehouse = $form->escape($form->{warehouse});
+
+ $i = 0;
+ foreach $oe (@{ $form->{OE} }) {
+
+ $i++;
+
+ if ($form->{l_subtotal} eq 'Y') {
+ if ($sameitem ne $oe->{$form->{sort}}) {
+ &subtotal;
+ $sameitem = $oe->{$form->{sort}};
+ }
+ }
+
+ if ($form->{l_curr}) {
+ for (qw(netamount amount)) { $oe->{"fx_$_"} = $oe->{$_} }
+ $oe->{fx_tax} = $oe->{fx_amount} - $oe->{fx_netamount};
+ for (qw(netamount amount)) { $oe->{$_} *= $oe->{exchangerate} }
+
+ for (qw(netamount amount)) { $column_data{"fx_$_"} = "<td align=right>".$form->format_amount(\%myconfig, $oe->{"fx_$_"}, 2, "&nbsp;")."</td>" }
+ $column_data{fx_tax} = "<td align=right>".$form->format_amount(\%myconfig, $oe->{fx_amount} - $oe->{fx_netamount}, 2, "&nbsp;")."</td>";
+
+ $totalfxnetamount += $oe->{fx_netamount};
+ $totalfxamount += $oe->{fx_amount};
+
+ $subtotalfxnetamount += $oe->{fx_netamount};
+ $subtotalfxamount += $oe->{fx_amount};
+ }
+
+ for (qw(netamount amount)) { $column_data{$_} = "<td align=right>".$form->format_amount(\%myconfig, $oe->{$_}, 2, "&nbsp;")."</td>" }
+ $column_data{tax} = "<td align=right>".$form->format_amount(\%myconfig, $oe->{amount} - $oe->{netamount}, 2, "&nbsp;")."</td>";
+
+ $totalnetamount += $oe->{netamount};
+ $totalamount += $oe->{amount};
+
+ $subtotalnetamount += $oe->{netamount};
+ $subtotalamount += $oe->{amount};
+
+
+ $column_data{id} = "<td>$oe->{id}</td>";
+ $column_data{transdate} = "<td>$oe->{transdate}&nbsp;</td>";
+ $column_data{reqdate} = "<td>$oe->{reqdate}&nbsp;</td>";
+
+ $column_data{runningnumber} = qq|<td align=right>$i</td>|;
+ $column_data{ndx} = qq|<td><input name="ndx_$i" class=checkbox type=checkbox value=$oe->{id} checked></td>|;
+ $column_data{$ordnumber} = "<td><a href=$form->{script}?path=$form->{path}&action=$action&type=$form->{type}&id=$oe->{id}&warehouse=$warehouse&vc=$form->{vc}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$oe->{$ordnumber}</a></td>";
+
+ $name = $form->escape($oe->{name});
+ $column_data{name} = qq|<td><a href=ct.pl?path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&action=edit&id=$oe->{"$form->{vc}_id"}&db=$form->{vc}&callback=$callback>$oe->{name}</a></td>|;
+
+ for (qw(employee manager shipvia curr ponumber)) { $column_data{$_} = "<td>$oe->{$_}&nbsp;</td>" }
+
+ if ($oe->{closed}) {
+ $column_data{closed} = "<td align=center>*</td>";
+ $column_data{open} = "<td>&nbsp;</td>";
+ } else {
+ $column_data{closed} = "<td>&nbsp;</td>";
+ $column_data{open} = "<td align=center>*</td>";
+ }
+
+ $j++; $j %= 2;
+ print "
+ <tr class=listrow$j>";
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ }
+
+ if ($form->{l_subtotal} eq 'Y') {
+ &subtotal;
+ }
+
+ # print totals
+ print qq|
+ <tr class=listtotal>|;
+
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $column_data{netamount} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totalnetamount, 2, "&nbsp;")."</th>";
+ $column_data{tax} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totalamount - $totalnetamount, 2, "&nbsp;")."</th>";
+ $column_data{amount} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totalamount, 2, "&nbsp;")."</th>";
+
+ if ($form->{l_curr} && $form->{sort} eq 'curr' && $form->{l_subtotal}) {
+ $column_data{fx_netamount} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totalfxnetamount, 2, "&nbsp;")."</th>";
+ $column_data{fx_tax} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totalfxamount - $totalfxnetamount, 2, "&nbsp;")."</th>";
+ $column_data{fx_amount} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totalfxamount, 2, "&nbsp;")."</th>";
+ }
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+ </td>
+ </table>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+|;
+
+ $form->hide_form(qw(callback type vc path login sessionid department ordnumber ponumber shipvia));
+
+ print qq|
+
+<input type=hidden name=rowcount value=$i>
+
+<input type=hidden name=$form->{vc} value="$form->{$form->{vc}}">
+<input type=hidden name="$form->{vc}_id" value=$form->{"$form->{vc}_id"}>
+
+|;
+
+ if ($form->{type} !~ /(ship|receive)_order/) {
+ for (sort { $a->{order} <=> $b->{order} } %button) { print $_->{code} }
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+
+sub subtotal {
+
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $column_data{netamount} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotalnetamount, 2, "&nbsp;")."</th>";
+ $column_data{tax} = "<td class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotalamount - $subtotalnetamount, 2, "&nbsp;")."</th>";
+ $column_data{amount} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotalamount, 2, "&nbsp;")."</th>";
+
+ if ($form->{l_curr} && $form->{sort} eq 'curr' && $form->{l_subtotal}) {
+ $column_data{fx_netamount} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotalfxnetamount, 2, "&nbsp;")."</th>";
+ $column_data{fx_tax} = "<td class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotalfxamount - $subtotalfxnetamount, 2, "&nbsp;")."</th>";
+ $column_data{fx_amount} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotalfxamount, 2, "&nbsp;")."</th>";
+ }
+
+ $subtotalnetamount = 0;
+ $subtotalamount = 0;
+
+ $subtotalfxnetamount = 0;
+ $subtotalfxamount = 0;
+
+ print "
+ <tr class=listsubtotal>
+";
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+}
+
+
+sub save {
+
+ if ($form->{type} =~ /_order$/) {
+ $msg = $locale->text('Order Date missing!');
+ } else {
+ $msg = $locale->text('Quotation Date missing!');
+ }
+
+ $form->isblank("transdate", $msg);
+
+ $msg = ucfirst $form->{vc};
+ $form->isblank($form->{vc}, $locale->text($msg . " missing!"));
+
+# $locale->text('Customer missing!');
+# $locale->text('Vendor missing!');
+
+ $form->isblank("exchangerate", $locale->text('Exchange rate missing!')) if ($form->{currency} ne $form->{defaultcurrency});
+
+ &validate_items;
+
+ # if the name changed get new values
+ if (&check_name($form->{vc})) {
+ &update;
+ exit;
+ }
+
+
+ # this is for the internal notes section for the [email] Subject
+ if ($form->{type} =~ /_order$/) {
+ if ($form->{type} eq 'sales_order') {
+ $form->{label} = $locale->text('Sales Order');
+
+ $numberfld = "sonumber";
+ $ordnumber = "ordnumber";
+ } else {
+ $form->{label} = $locale->text('Purchase Order');
+
+ $numberfld = "ponumber";
+ $ordnumber = "ordnumber";
+ }
+
+ $err = $locale->text('Cannot save order!');
+
+ } else {
+ if ($form->{type} eq 'sales_quotation') {
+ $form->{label} = $locale->text('Quotation');
+
+ $numberfld = "sqnumber";
+ $ordnumber = "quonumber";
+ } else {
+ $form->{label} = $locale->text('Request for Quotation');
+
+ $numberfld = "rfqnumber";
+ $ordnumber = "quonumber";
+ }
+
+ $err = $locale->text('Cannot save quotation!');
+
+ }
+
+ if (! $form->{repost}) {
+ if ($form->{id}) {
+ &repost("Save");
+ exit;
+ }
+ }
+
+ if (OE->save(\%myconfig, \%$form)) {
+ $form->redirect($locale->text('Order saved!'));
+ } else {
+ $form->error($err);
+ }
+
+}
+
+
+sub print_and_save {
+
+ $form->error($locale->text('Select postscript or PDF!')) if $form->{format} !~ /(postscript|pdf)/;
+ $form->error($locale->text('Select a Printer!')) if $form->{media} eq 'screen';
+
+ $old_form = new Form;
+ $form->{display_form} = "save";
+ for (keys %$form) { $old_form->{$_} = $form->{$_} }
+ $old_form->{rowcount}++;
+
+ &print_form($old_form);
+
+}
+
+
+sub delete {
+
+ $form->header;
+
+ if ($form->{type} =~ /_order$/) {
+ $msg = $locale->text('Are you sure you want to delete Order Number');
+ $ordnumber = 'ordnumber';
+ } else {
+ $msg = $locale->text('Are you sure you want to delete Quotation Number');
+ $ordnumber = 'quonumber';
+ }
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+|;
+
+ $form->{action} = "yes";
+ $form->hide_form;
+
+ print qq|
+<h2 class=confirm>|.$locale->text('Confirm!').qq|</h2>
+
+<h4>$msg $form->{$ordnumber}</h4>
+<p>
+<input name=action class=submit type=submit value="|.$locale->text('Yes').qq|">
+</form>
+
+</body>
+</html>
+|;
+
+
+}
+
+
+
+sub yes {
+
+ if ($form->{type} =~ /_order$/) {
+ $msg = $locale->text('Order deleted!');
+ $err = $locale->text('Cannot delete order!');
+ } else {
+ $msg = $locale->text('Quotation deleted!');
+ $err = $locale->text('Cannot delete quotation!');
+ }
+
+ if (OE->delete(\%myconfig, \%$form, $spool)) {
+ $form->redirect($msg);
+ } else {
+ $form->error($err);
+ }
+
+}
+
+
+sub vendor_invoice { &invoice };
+sub sales_invoice { &invoice };
+
+sub invoice {
+
+ if ($form->{type} =~ /_order$/) {
+ $form->isblank("ordnumber", $locale->text('Order Number missing!'));
+ $form->isblank("transdate", $locale->text('Order Date missing!'));
+
+ } else {
+ $form->isblank("quonumber", $locale->text('Quotation Number missing!'));
+ $form->isblank("transdate", $locale->text('Quotation Date missing!'));
+ $form->{ordnumber} = "";
+ }
+
+ # if the name changed get new values
+ if (&check_name($form->{vc})) {
+ &update;
+ exit;
+ }
+
+
+ if ($form->{type} =~ /_order/ && $form->{currency} ne $form->{defaultcurrency}) {
+ # check if we need a new exchangerate
+ $buysell = ($form->{type} eq 'sales_order') ? "buy" : "sell";
+
+ $orddate = $form->current_date(\%myconfig);
+ $exchangerate = $form->check_exchangerate(\%myconfig, $form->{currency}, $orddate, $buysell);
+
+ if (!$exchangerate) {
+ &backorder_exchangerate($orddate, $buysell);
+ exit;
+ }
+ }
+
+
+ # close orders/quotations
+ $form->{closed} = 1;
+
+ OE->save(\%myconfig, \%$form);
+
+ $form->{transdate} = $form->current_date(\%myconfig);
+ $form->{duedate} = $form->current_date(\%myconfig, $form->{transdate}, $form->{terms} * 1);
+
+ $form->{id} = '';
+ $form->{closed} = 0;
+ $form->{rowcount}--;
+ $form->{shipto} = 1;
+
+
+ if ($form->{type} =~ /_order$/) {
+ $form->{exchangerate} = $exchangerate;
+ &create_backorder;
+ }
+
+
+ if ($form->{type} eq 'purchase_order' || $form->{type} eq 'request_quotation') {
+ $form->{title} = $locale->text('Add Vendor Invoice');
+ $form->{script} = 'ir.pl';
+
+ $script = "ir";
+ $buysell = 'sell';
+ }
+ if ($form->{type} eq 'sales_order' || $form->{type} eq 'sales_quotation') {
+ $form->{title} = $locale->text('Add Sales Invoice');
+ $form->{script} = 'is.pl';
+ $script = "is";
+ $buysell = 'buy';
+ }
+
+ for (qw(id subject message cc bcc printed emailed queued)) { delete $form->{$_} }
+ $form->{$form->{vc}} =~ s/--.*//g;
+ $form->{type} = "invoice";
+
+ # locale messages
+ $locale = new Locale "$myconfig{countrycode}", "$script";
+
+ require "$form->{path}/$form->{script}";
+
+ # customized scripts
+ if (-f "$form->{path}/custom_$form->{script}") {
+ eval { require "$form->{path}/custom_$form->{script}"; };
+ }
+
+ # customized scripts for login
+ if (-f "$form->{path}/$form->{login}_$form->{script}") {
+ eval { require "$form->{path}/$form->{login}_$form->{script}"; };
+ }
+
+ for ("$form->{vc}", "currency") { $form->{"select$_"} = "" }
+ for (qw(currency oldcurrency employee department intnotes notes taxincluded)) { $temp{$_} = $form->{$_} }
+
+ &invoice_links;
+
+ $form->{creditremaining} -= ($form->{oldinvtotal} - $form->{ordtotal});
+
+ &prepare_invoice;
+
+ for (keys %temp) { $form->{$_} = $temp{$_} }
+
+ $form->{exchangerate} = "";
+ $form->{forex} = "";
+ $form->{exchangerate} = $exchangerate if ($form->{forex} = ($exchangerate = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{transdate}, $buysell)));
+
+ for $i (1 .. $form->{rowcount}) {
+ $form->{"deliverydate_$i"} = $form->{"reqdate_$i"};
+ for (qw(qty sellprice discount)) { $form->{"${_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}) }
+ }
+
+ for (qw(id subject message cc bcc printed emailed queued audittrail)) { delete $form->{$_} }
+
+ &display_form;
+
+}
+
+
+
+sub backorder_exchangerate {
+ my ($orddate, $buysell) = @_;
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+|;
+
+ # delete action variable
+ for (qw(action nextsub exchangerate)) { delete $form->{$_} }
+
+ $form->hide_form;
+
+ $form->{title} = $locale->text('Add Exchange Rate');
+
+ print qq|
+
+<input type=hidden name=exchangeratedate value=$orddate>
+<input type=hidden name=buysell value=$buysell>
+
+<table width=100%>
+ <tr><th class=listtop>$form->{title}</th></tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right>|.$locale->text('Currency').qq|</th>
+ <td>$form->{currency}</td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Date').qq|</th>
+ <td>$orddate</td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Exchange Rate').qq|</th>
+ <td><input name=exchangerate size=11></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+
+<hr size=3 noshade>
+
+<br>
+<input type=hidden name=nextsub value=save_exchangerate>
+
+<input name=action class=submit type=submit value="|.$locale->text('Continue').qq|">
+
+</form>
+
+</body>
+</html>
+|;
+
+
+}
+
+
+sub save_exchangerate {
+
+ $form->isblank("exchangerate", $locale->text('Exchange rate missing!'));
+ $form->{exchangerate} = $form->parse_amount(\%myconfig, $form->{exchangerate});
+ $form->save_exchangerate(\%myconfig, $form->{currency}, $form->{exchangeratedate}, $form->{exchangerate}, $form->{buysell});
+
+ &invoice;
+
+}
+
+
+sub create_backorder {
+
+ $form->{shipped} = 1;
+
+ # figure out if we need to create a backorder
+ # items aren't saved if qty != 0
+
+ $dec1 = $dec2 = 0;
+ for $i (1 .. $form->{rowcount}) {
+ ($dec) = ($form->{"qty_$i"} =~ /\.(\d+)/);
+ $dec = length $dec;
+ $dec1 = ($dec > $dec1) ? $dec : $dec1;
+
+ ($dec) = ($form->{"ship_$i"} =~ /\.(\d+)/);
+ $dec = length $dec;
+ $dec2 = ($dec > $dec2) ? $dec : $dec2;
+
+ $totalqty += $qty = $form->{"qty_$i"};
+ $totalship += $ship = $form->{"ship_$i"};
+
+ $form->{"qty_$i"} = $qty - $ship;
+ }
+
+ $totalqty = $form->round_amount($totalqty, $dec1);
+ $totalship = $form->round_amount($totalship, $dec2);
+
+ if ($totalship == 0) {
+ for (1 .. $form->{rowcount}) { $form->{"ship_$_"} = $form->{"qty_$_"} }
+ $form->{ordtotal} = 0;
+ $form->{shipped} = 0;
+ return;
+ }
+
+ if ($totalqty == $totalship) {
+ for (1 .. $form->{rowcount}) { $form->{"qty_$_"} = $form->{"ship_$_"} }
+ $form->{ordtotal} = 0;
+ return;
+ }
+
+ @flds = qw(partnumber description qty ship unit sellprice discount oldqty orderitems_id id bin weight listprice lastcost taxaccounts pricematrix sku onhand deliverydate reqdate projectnumber partsgroup assembly);
+
+ for $i (1 .. $form->{rowcount}) {
+ for (qw(qty sellprice discount)) { $form->{"${_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}) }
+
+ $form->{"oldship_$i"} = $form->{"ship_$i"};
+ $form->{"ship_$i"} = 0;
+ }
+
+ # clear flags
+ for (qw(id subject message cc bcc printed emailed queued audittrail)) { delete $form->{$_} }
+
+ OE->save(\%myconfig, \%$form);
+
+ # rebuild rows for invoice
+ @a = ();
+ $count = 0;
+
+ for $i (1 .. $form->{rowcount}) {
+ $form->{"qty_$i"} = $form->{"oldship_$i"};
+ $form->{"oldqty_$i"} = $form->{"qty_$i"};
+
+ $form->{"orderitems_id_$i"} = "";
+
+ if ($form->{"qty_$i"}) {
+ push @a, {};
+ $j = $#a;
+ for (@flds) { $a[$j]->{$_} = $form->{"${_}_$i"} }
+ $count++;
+ }
+ }
+
+ $form->redo_rows(\@flds, \@a, $count, $form->{rowcount});
+ $form->{rowcount} = $count;
+
+}
+
+
+
+sub save_as_new {
+
+ for (qw(closed id printed emailed queued)) { delete $form->{$_} }
+ &save;
+
+}
+
+
+sub print_and_save_as_new {
+
+ for (qw(closed id printed emailed queued)) { delete $form->{$_} }
+ &print_and_save;
+
+}
+
+
+sub ship_receive {
+
+ &order_links;
+
+ &prepare_order;
+
+ OE->get_warehouses(\%myconfig, \%$form);
+
+ # warehouse
+ if (@{ $form->{all_warehouse} }) {
+ $form->{selectwarehouse} = "<option>\n";
+
+ for (@{ $form->{all_warehouse} }) { $form->{selectwarehouse} .= qq|<option value="$_->{description}--$_->{id}">$_->{description}\n| }
+
+ if ($form->{warehouse}) {
+ $form->{selectwarehouse} = qq|<option value="$form->{warehouse}">|;
+ $form->{warehouse} =~ s/--.*//;
+ $form->{selectwarehouse} .= $form->{warehouse};
+ }
+ }
+
+ $form->{shippingdate} = $form->current_date(\%myconfig);
+ $form->{"$form->{vc}"} =~ s/--.*//;
+ $form->{"old$form->{vc}"} = qq|$form->{"$form->{vc}"}--$form->{"$form->{vc}_id"}|;
+
+ @flds = ();
+ @a = ();
+ $count = 0;
+ foreach $key (keys %$form) {
+ if ($key =~ /_1$/) {
+ $key =~ s/_1//;
+ push @flds, $key;
+ }
+ }
+
+ for $i (1 .. $form->{rowcount}) {
+ # undo formatting from prepare_order
+ for (qw(qty ship)) { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) }
+ $n = ($form->{"qty_$i"} -= $form->{"ship_$i"});
+ if (abs($n) > 0) {
+ $form->{"ship_$i"} = "";
+ $form->{"serialnumber_$i"} = "";
+
+ push @a, {};
+ $j = $#a;
+
+ for (@flds) { $a[$j]->{$_} = $form->{"${_}_$i"} }
+ $count++;
+ }
+ }
+
+ $form->redo_rows(\@flds, \@a, $count, $form->{rowcount});
+ $form->{rowcount} = $count;
+
+ &display_ship_receive;
+
+}
+
+
+sub display_ship_receive {
+
+ $vclabel = ucfirst $form->{vc};
+ $vclabel = $locale->text($vclabel);
+
+ $form->{rowcount}++;
+
+ if ($form->{vc} eq 'customer') {
+ $form->{title} = $locale->text('Ship Merchandise');
+ $shipped = $locale->text('Shipping Date');
+ } else {
+ $form->{title} = $locale->text('Receive Merchandise');
+ $shipped = $locale->text('Date Received');
+ }
+
+ # set option selected
+ for (qw(warehouse employee)) {
+ $form->{"select$_"} = $form->unescape($form->{"select$_"});
+ $form->{"select$_"} =~ s/ selected//;
+ $form->{"select$_"} =~ s/(<option value="\Q$form->{$_}\E")/$1 selected/;
+ }
+
+
+ $warehouse = qq|
+ <tr>
+ <th align=right>|.$locale->text('Warehouse').qq|</th>
+ <td><select name=warehouse>$form->{selectwarehouse}</select></td>
+ <input type=hidden name=selectwarehouse value="|.
+ $form->escape($form->{selectwarehouse},1).qq|">
+ </tr>
+| if $form->{selectwarehouse};
+
+ $employee = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Contact').qq|</th>
+ <td><select name=employee>$form->{selectemployee}</select></td>
+ <input type=hidden name=selectemployee value="|.
+ $form->escape($form->{selectemployee},1).qq|">
+ </tr>
+|;
+
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=display_form value=display_ship_receive>
+|;
+
+ $form->hide_form(qw(id type media format printed emailed queued vc));
+
+ print qq|
+<input type=hidden name="old$form->{vc}" value="$form->{"old$form->{vc}"}">
+
+<table width=100%>
+ <tr class=listtop>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width="100%">
+ <tr valign=top>
+ <td>
+ <table width=100%>
+ <tr>
+ <th align=right>$vclabel</th>
+ <td colspan=3>$form->{$form->{vc}}</td>
+ <input type=hidden name=$form->{vc} value="$form->{$form->{vc}}">
+ <input type=hidden name="$form->{vc}_id" value=$form->{"$form->{vc}_id"}>
+ </tr>
+ $department
+ <tr>
+ <th align=right>|.$locale->text('Shipping Point').qq|</th>
+ <td colspan=3>
+ <input name=shippingpoint size=35 value="$form->{shippingpoint}">
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Ship via').qq|</th>
+ <td colspan=3>
+ <input name=shipvia size=35 value="$form->{shipvia}">
+ </tr>
+ $warehouse
+ </table>
+ </td>
+ <td align=right>
+ <table>
+ $employee
+ <tr>
+ <th align=right nowrap>|.$locale->text('Order Number').qq|</th>
+ <td>$form->{ordnumber}</td>
+ <input type=hidden name=ordnumber value="$form->{ordnumber}">
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Order Date').qq|</th>
+ <td>$form->{transdate}</td>
+ <input type=hidden name=transdate value=$form->{transdate}>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('PO Number').qq|</th>
+ <td>$form->{ponumber}</td>
+ <input type=hidden name=ponumber value="$form->{ponumber}">
+ </tr>
+ <tr>
+ <th align=right nowrap>$shipped</th>
+ <td><input name=shippingdate size=11 value=$form->{shippingdate}></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+|;
+
+ $form->hide_form(qw(shiptoname shiptoaddress1 shiptoaddress2 shiptocity shiptostate shiptozipcode shiptocountry shiptocontact shiptophone shiptofax shiptoemail message email subject cc bcc));
+
+ @column_index = qw(partnumber);
+
+ if ($form->{type} eq "ship_order") {
+ $column_data{ship} = qq|<th class=listheading>|.$locale->text('Ship').qq|</th>|;
+ }
+ if ($form->{type} eq "receive_order") {
+ $column_data{ship} = qq|<th class=listheading>|.$locale->text('Recd').qq|</th>|;
+ $column_data{sku} = qq|<th class=listheading>|.$locale->text('SKU').qq|</th>|;
+ push @column_index, "sku";
+ }
+ push @column_index, qw(description qty ship unit bin serialnumber);
+
+ my $colspan = $#column_index + 1;
+
+ $column_data{partnumber} = qq|<th class=listheading nowrap>|.$locale->text('Number').qq|</th>|;
+ $column_data{description} = qq|<th class=listheading nowrap>|.$locale->text('Description').qq|</th>|;
+ $column_data{qty} = qq|<th class=listheading nowrap>|.$locale->text('Qty').qq|</th>|;
+ $column_data{unit} = qq|<th class=listheading nowrap>|.$locale->text('Unit').qq|</th>|;
+ $column_data{bin} = qq|<th class=listheading nowrap>|.$locale->text('Bin').qq|</th>|;
+ $column_data{serialnumber} = qq|<th class=listheading nowrap>|.$locale->text('Serial No.').qq|</th>|;
+
+ print qq|
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+
+ for $i (1 .. $form->{rowcount} - 1) {
+
+ # undo formatting
+ $form->{"ship_$i"} = $form->parse_amount(\%myconfig, $form->{"ship_$i"});
+
+ for (qw(partnumber sku description unit bin serialnumber)) { $form->{"${_}_$i"} = $form->quote($form->{"${_}_$i"}) }
+
+ $description = $form->{"description_$i"};
+ $description =~ s/\r?\n/<br>/g;
+
+ $column_data{partnumber} = qq|<td>$form->{"partnumber_$i"}<input type=hidden name="partnumber_$i" value="$form->{"partnumber_$i"}"></td>|;
+ $column_data{sku} = qq|<td>$form->{"sku_$i"}<input type=hidden name="sku_$i" value="$form->{"sku_$i"}"></td>|;
+ $column_data{description} = qq|<td>$description<input type=hidden name="description_$i" value="$form->{"description_$i"}"></td>|;
+ $column_data{qty} = qq|<td align=right>|.$form->format_amount(\%myconfig, $form->{"qty_$i"}).qq|<input type=hidden name="qty_$i" value="$form->{"qty_$i"}"></td>|;
+ $column_data{ship} = qq|<td align=right><input name="ship_$i" size=5 value=|.$form->format_amount(\%myconfig, $form->{"ship_$i"}).qq|></td>|;
+ $column_data{unit} = qq|<td>$form->{"unit_$i"}<input type=hidden name="unit_$i" value="$form->{"unit_$i"}"></td>|;
+ $column_data{bin} = qq|<td>$form->{"bin_$i"}<input type=hidden name="bin_$i" value="$form->{"bin_$i"}"></td>|;
+
+ $column_data{serialnumber} = qq|<td><input name="serialnumber_$i" size=15 value="$form->{"serialnumber_$i"}"></td>|;
+
+ print qq|
+ <tr valign=top>|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+ $form->hide_form("orderitems_id_$i","id_$i","partsgroup_$i");
+
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+ <tr>
+ <td>
+|;
+
+ $form->{copies} = 1;
+
+ &print_options;
+
+ print qq|
+ </td>
+ </tr>
+</table>
+<br>
+|;
+
+# type=submit $locale->text('Done')
+
+ %button = ('Update' => { ndx => 1, key => 'U', value => $locale->text('Update') },
+ 'Print' => { ndx => 2, key => 'P', value => $locale->text('Print') },
+ 'Ship to' => { ndx => 4, key => 'T', value => $locale->text('Ship to') },
+ 'E-mail' => { ndx => 5, key => 'E', value => $locale->text('E-mail') },
+ 'Done' => { ndx => 11, key => 'D', value => $locale->text('Done') },
+ );
+
+ for ("Update", "Print") { $form->print_button(\%button, $_) }
+
+ if ($form->{type} eq 'ship_order') {
+ for ('Ship to', 'E-mail') { $form->print_button(\%button, $_) }
+ }
+
+ $form->print_button(\%button, 'Done');
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ $form->hide_form(qw(rowcount callback path login sessionid));
+
+ print qq|
+
+</form>
+
+</body>
+</html>
+|;
+
+
+}
+
+
+sub done {
+
+ if ($form->{type} eq 'ship_order') {
+ $form->isblank("shippingdate", $locale->text('Shipping Date missing!'));
+ } else {
+ $form->isblank("shippingdate", $locale->text('Date received missing!'));
+ }
+
+ $total = 0;
+ for (1 .. $form->{rowcount} - 1) { $total += $form->{"ship_$_"} = $form->parse_amount(\%myconfig, $form->{"ship_$_"}) }
+
+ $form->error($locale->text('Nothing entered!')) unless $total;
+
+ if (OE->save_inventory(\%myconfig, \%$form)) {
+ $form->redirect($locale->text('Inventory saved!'));
+ } else {
+ $form->error($locale->text('Could not save!'));
+ }
+
+}
+
+
+sub search_transfer {
+
+ OE->get_warehouses(\%myconfig, \%$form);
+
+ # warehouse
+ if (@{ $form->{all_warehouse} }) {
+ $form->{selectwarehouse} = "<option>\n";
+ $form->{warehouse} = qq|$form->{warehouse}--$form->{warehouse_id}| if $form->{warehouse_id};
+
+ for (@{ $form->{all_warehouse} }) { $form->{selectwarehouse} .= qq|<option value="$_->{description}--$_->{id}">$_->{description}\n| }
+ } else {
+ $form->error($locale->text('Nothing to transfer!'));
+ }
+
+ $form->get_partsgroup(\%myconfig, { searchitems => 'part'});
+ if (@{ $form->{all_partsgroup} }) {
+ $form->{selectpartsgroup} = "<option>\n";
+ for (@{ $form->{all_partsgroup} }) { $form->{selectpartsgroup} .= qq|<option value="$_->{partsgroup}--$_->{id}">$_->{partsgroup}\n| }
+ }
+
+ $form->{title} = $locale->text('Transfer Inventory');
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Transfer from').qq|</th>
+ <td><select name=fromwarehouse>$form->{selectwarehouse}</select></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Transfer to').qq|</th>
+ <td><select name=towarehouse>$form->{selectwarehouse}</select></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('Part Number').qq|</th>
+ <td><input name=partnumber size=20></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('Description').qq|</th>
+ <td><input name=description size=40></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Group').qq|</th>
+ <td><select name=partsgroup>$form->{selectpartsgroup}</select></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+<input type=hidden name=nextsub value=list_transfer>
+
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">|;
+
+ $form->hide_form(qw(path login sessionid));
+
+ print qq|
+</form>
+|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+</body>
+</html>
+|;
+
+}
+
+
+sub list_transfer {
+
+ $form->{sort} = "partnumber" unless $form->{sort};
+
+ OE->get_inventory(\%myconfig, \%$form);
+
+ # construct href
+ $href = "$form->{script}?action=list_transfer";
+ for (qw(direction oldsort path login sessionid)) { $href .= "&$_=$form->{$_}" }
+ for (qw(partnumber fromwarehouse towarehouse description partsgroup)) { $href .= "&$_=".$form->escape($form->{$_}) }
+
+ $form->sort_order();
+
+ # construct callback
+ $callback = "$form->{script}?action=list_transfer";
+ for (qw(direction oldsort path login sessionid)) { $callback .= "&$_=$form->{$_}" }
+ for (qw(partnumber fromwarehouse towarehouse description partsgroup)) { $callback .= "&$_=".$form->escape($form->{$_},1) }
+
+ @column_index = $form->sort_columns(qw(partnumber description partsgroup make model fromwarehouse qty towarehouse transfer));
+
+ $column_header{partnumber} = qq|<th><a class=listheading href=$href&sort=partnumber>|.$locale->text('Part Number').qq|</a></th>|;
+ $column_header{description} = qq|<th><a class=listheading href=$href&sort=description>|.$locale->text('Description').qq|</a></th>|;
+ $column_header{partsgroup} = qq|<th><a class=listheading href=$href&sort=partsgroup>|.$locale->text('Group').qq|</a></th>|;
+ $column_header{fromwarehouse} = qq|<th><a class=listheading href=$href&sort=warehouse>|.$locale->text('From').qq|</a></th>|;
+ $column_header{towarehouse} = qq|<th class=listheading>|.$locale->text('To').qq|</th>|;
+ $column_header{qty} = qq|<th class=listheading>|.$locale->text('Qty').qq|</a></th>|;
+ $column_header{transfer} = qq|<th class=listheading>|.$locale->text('Transfer').qq|</a></th>|;
+
+
+ ($warehouse, $warehouse_id) = split /--/, $form->{fromwarehouse};
+
+ if ($form->{fromwarehouse}) {
+ $option .= "\n<br>";
+ $option .= $locale->text('From Warehouse')." : $warehouse";
+ }
+ ($warehouse, $warehouse_id) = split /--/, $form->{towarehouse};
+ if ($form->{towarehouse}) {
+ $option .= "\n<br>";
+ $option .= $locale->text('To Warehouse')." : $warehouse";
+ }
+ if ($form->{partnumber}) {
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Part Number')." : $form->{partnumber}";
+ }
+ if ($form->{description}) {
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Description')." : $form->{description}";
+ }
+ if ($form->{partsgroup}) {
+ ($partsgroup) = split /--/, $form->{partsgroup};
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Group')." : $partsgroup";
+ }
+
+ $form->{title} = $locale->text('Transfer Inventory');
+
+ $callback .= "&sort=$form->{sort}";
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=warehouse_id value=$warehouse_id>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$option</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>|;
+
+for (@column_index) { print "\n$column_header{$_}" }
+
+print qq|
+ </tr>
+|;
+
+ if (@{ $form->{all_inventory} }) {
+ $sameitem = $form->{all_inventory}->[0]->{$form->{sort}};
+ }
+
+ $i = 0;
+ foreach $ref (@{ $form->{all_inventory} }) {
+
+ $i++;
+
+ $column_data{partnumber} = qq|<td><input type=hidden name="id_$i" value=$ref->{id}>$ref->{partnumber}</td>|;
+ $column_data{description} = "<td>$ref->{description}&nbsp;</td>";
+ $column_data{partsgroup} = "<td>$ref->{partsgroup}&nbsp;</td>";
+ $column_data{fromwarehouse} = qq|<td><input type=hidden name="warehouse_id_$i" value=$ref->{warehouse_id}>$ref->{warehouse}&nbsp;</td>|;
+ $column_data{towarehouse} = qq|<td>$warehouse&nbsp;</td>|;
+ $column_data{qty} = qq|<td><input type=hidden name="qty_$i" value=$ref->{qty}>|.$form->format_amount(\%myconfig, $ref->{qty}).qq|</td>|;
+ $column_data{transfer} = qq|<td><input name="transfer_$i" size=4></td>|;
+
+ $j++; $j %= 2;
+ print "
+ <tr class=listrow$j>";
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+
+<input name=callback type=hidden value="$callback">
+
+<input type=hidden name=rowcount value=$i>
+|;
+
+ $form->{action} = "transfer";
+ $form->hide_form(qw(path login sessionid action));
+
+ print qq|
+<input class=submit type=submit name=action value="|.$locale->text('Transfer').qq|">|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+
+}
+
+
+sub transfer {
+
+ if (OE->transfer(\%myconfig, \%$form)) {
+ $form->redirect($locale->text('Inventory transferred!'));
+ } else {
+ $form->error($locale->text('Could not transfer Inventory!'));
+ }
+
+}
+
+
+sub rfq_ { &add };
+sub quotation_ { &add };
+
+
+sub generate_purchase_orders {
+
+ for (1 .. $form->{rowcount}) {
+ if ($form->{"ndx_$_"}) {
+ $ok = 1;
+ last;
+ }
+ }
+
+ $form->error($locale->text('Nothing selected!')) unless $ok;
+
+ ($null, $argv) = split /\?/, $form->{callback};
+
+ for (split /\&/, $argv) {
+ ($key, $value) = split /=/, $_;
+ $form->{$key} = $value;
+ }
+
+ $form->{vc} = "vendor";
+
+ OE->get_soparts(\%myconfig, \%$form);
+
+ # flatten array
+ $i = 0;
+ foreach $parts_id (sort { $form->{orderitems}{$a}{partnumber} cmp $form->{orderitems}{$b}{partnumber} } keys %{ $form->{orderitems} }) {
+
+ $required = $form->{orderitems}{$parts_id}{required};
+ next if $required <= 0;
+
+ $i++;
+
+ $form->{"required_$i"} = $form->format_amount(\%myconfig, $required);
+ $form->{"id_$i"} = $parts_id;
+ $form->{"sku_$i"} = $form->{orderitems}{$parts_id}{partnumber};
+
+ $form->{"curr_$i"} = $form->{defaultcurrency};
+ $form->{"description_$i"} = $form->{orderitems}{$parts_id}{description};
+
+ $form->{"lastcost_$i"} = $form->format_amount(\%myconfig, $form->{orderitems}{$parts_id}{lastcost}, 2);
+
+ $form->{"qty_$i"} = $required;
+
+ if (exists $form->{orderitems}{$parts_id}{"parts$form->{vc}"}) {
+ $form->{"qty_$i"} = "";
+
+ foreach $id (sort { $form->{orderitems}{$parts_id}{"parts$form->{vc}"}{$a}{lastcost} * $form->{$form->{orderitems}{$parts_id}{"parts$form->{vc}"}{$a}{curr}} <=> $form->{orderitems}{$parts_id}{"parts$form->{vc}"}{$b}{lastcost} * $form->{$form->{orderitems}{$parts_id}{"parts$form->{vc}"}{$b}{curr}} } keys %{ $form->{orderitems}{$parts_id}{"parts$form->{vc}"} }) {
+ $i++;
+
+ $form->{"qty_$i"} = $form->format_amount(\%myconfig, $required);
+
+ $form->{"description_$i"} = "";
+ for (qw(partnumber curr)) { $form->{"${_}_$i"} = $form->{orderitems}{$parts_id}{"parts$form->{vc}"}{$id}{$_} }
+
+ $form->{"lastcost_$i"} = $form->format_amount(\%myconfig, $form->{orderitems}{$parts_id}{"parts$form->{vc}"}{$id}{lastcost}, 2);
+ $form->{"leadtime_$i"} = $form->format_amount(\%myconfig, $form->{orderitems}{$parts_id}{"parts$form->{vc}"}{$id}{leadtime});
+ $form->{"fx_$i"} = $form->format_amount(\%myconfig, $form->{orderitems}{$parts_id}{"parts$form->{vc}"}{$id}{lastcost} * $form->{$form->{orderitems}{$parts_id}{"parts$form->{vc}"}{$id}{curr}}, 2);
+
+ $form->{"id_$i"} = $parts_id;
+
+ $form->{"$form->{vc}_$i"} = qq|$form->{orderitems}{$parts_id}{"parts$form->{vc}"}{$id}{name}--$id|;
+ $form->{"$form->{vc}_id_$i"} = $id;
+
+ $required = "";
+ }
+ }
+ $form->{"blankrow_$i"} = 1;
+ }
+
+ $form->{rowcount} = $i;
+
+ &po_orderitems;
+
+}
+
+
+sub po_orderitems {
+
+ @column_index = qw(sku description partnumber leadtime fx lastcost curr required qty name);
+
+ $column_header{sku} = qq|<th class=listheading>|.$locale->text('SKU').qq|</th>|;
+ $column_header{partnumber} = qq|<th class=listheading>|.$locale->text('Part Number').qq|</th>|;
+ $column_header{description} = qq|<th class=listheading>|.$locale->text('Description').qq|</th>|;
+ $column_header{name} = qq|<th class=listheading>|.$locale->text('Vendor').qq|</th>|;
+ $column_header{qty} = qq|<th class=listheading>|.$locale->text('Order').qq|</th>|;
+ $column_header{required} = qq|<th class=listheading>|.$locale->text('Req').qq|</th>|;
+ $column_header{lastcost} = qq|<th class=listheading>|.$locale->text('Cost').qq|</th>|;
+ $column_header{fx} = qq|<th class=listheading>&nbsp;</th>|;
+ $column_header{leadtime} = qq|<th class=listheading>|.$locale->text('Lead').qq|</th>|;
+ $column_header{curr} = qq|<th class=listheading>|.$locale->text('Curr').qq|</th>|;
+
+
+ $form->{title} = $locale->text('Generate Purchase Orders');
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>|;
+
+ for (@column_index) { print "\n$column_header{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ for $i (1 .. $form->{rowcount}) {
+
+ for (qw(sku partnumber description curr)) { $column_data{$_} = qq|<td>$form->{"${_}_$i"}&nbsp;</td>| }
+
+ for (qw(required leadtime lastcost fx)) { $column_data{$_} = qq|<td align=right>$form->{"${_}_$i"}</td>| }
+
+ $column_data{qty} = qq|<td align=right><input name="qty_$i" size=6 value=$form->{"qty_$i"}></td>|;
+
+ if ($form->{"$form->{vc}_id_$i"}) {
+ $name = $form->{"$form->{vc}_$i"};
+ $name =~ s/--.*//;
+ $column_data{name} = qq|<td>$name</td>|;
+ $form->hide_form("$form->{vc}_id_$i", "$form->{vc}_$i");
+ } else {
+ $column_data{name} = qq|<td><input name="ndx_$i" class=checkbox type=checkbox value="1"></td>|;
+ }
+
+ $form->hide_form(map { "${_}_$i" } qw(id sku partnumber description curr required leadtime lastcost fx name blankrow));
+
+ $blankrow = $form->{"blankrow_$i"};
+
+BLANKROW:
+ $j++; $j %= 2;
+ print "
+ <tr class=listrow$j>";
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ if ($blankrow) {
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+ $blankrow = 0;
+
+ goto BLANKROW;
+ }
+
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+|;
+
+ $form->hide_form(qw(callback department ponumber path login sessionid employee_id vc nextsub rowcount type));
+
+ print qq|
+<input class=submit type=submit name=action value="|.$locale->text('Generate Orders').qq|">|;
+
+ print qq|
+<input class=submit type=submit name=action value="|.$locale->text('Select Vendor').qq|">|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub generate_orders {
+
+ if (OE->generate_orders(\%myconfig, \%$form)) {
+ $form->redirect;
+ } else {
+ $form->error($locale->text('Order generation failed!'));
+ }
+
+}
+
+
+
+sub consolidate_orders {
+
+ for (1 .. $form->{rowcount}) {
+ if ($form->{"ndx_$_"}) {
+ $ok = 1;
+ last;
+ }
+ }
+
+ $form->error($locale->text('Nothing selected!')) unless $ok;
+
+ ($null, $argv) = split /\?/, $form->{callback};
+
+ for (split /\&/, $argv) {
+ ($key, $value) = split /=/, $_;
+ $form->{$key} = $value;
+ }
+
+ if (OE->consolidate_orders(\%myconfig, \%$form)) {
+ $form->redirect;
+ } else {
+ $form->error($locale->text('Order generation failed!'));
+ }
+
+}
+
+
+sub select_vendor {
+
+ for (1 .. $form->{rowcount}) {
+ last if ($ok = $form->{"ndx_$_"});
+ }
+
+ $form->error($locale->text('Nothing selected!')) unless $ok;
+
+ $form->header;
+
+ print qq|
+<body onload="document.forms[0].vendor.focus()" />
+
+<form method=post action=$form->{script}>
+
+<b>|.$locale->text('Vendor').qq|</b> <input name=vendor size=40>
+
+|;
+
+ $form->{nextsub} = "vendor_selected";
+ $form->{action} = "vendor_selected";
+
+ $form->hide_form;
+
+ print qq|
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">
+
+</form>
+|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+</body>
+</html>
+|;
+
+}
+
+
+sub vendor_selected {
+
+ if (($rv = $form->get_name(\%myconfig, $form->{vc}, $form->{transdate})) > 1) {
+ &select_name($form->{vc});
+ exit;
+ }
+
+ if ($rv == 1) {
+ for (1 .. $form->{rowcount}) {
+ if ($form->{"ndx_$_"}) {
+ $form->{"$form->{vc}_id_$_"} = $form->{name_list}[0]->{id};
+ $form->{"$form->{vc}_$_"} = "$form->{name_list}[0]->{name}--$form->{name_list}[0]->{id}";
+ }
+ }
+ } else {
+ $msg = ucfirst $form->{vc} . " not on file!" unless $msg;
+ $form->error($locale->text($msg));
+ }
+
+ &po_orderitems;
+
+}
+
+
diff --git a/bin/mozilla/pe.pl b/bin/mozilla/pe.pl
new file mode 100755
index 00000000..39ff34e3
--- /dev/null
+++ b/bin/mozilla/pe.pl
@@ -0,0 +1,2567 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has NOT undergone whitespace cleanup.
+#
+#======================================================================
+#
+# project/job administration
+# partsgroup administration
+# translation maintainance
+#
+#======================================================================
+
+
+use LedgerSMB::PE;
+use LedgerSMB::AA;
+use LedgerSMB::OE;
+
+1;
+# end of main
+
+
+
+sub add {
+
+ # construct callback
+ $form->{callback} = "$form->{script}?action=add&type=$form->{type}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}" unless $form->{callback};
+
+ &{ "prepare_$form->{type}" };
+
+ $form->{orphaned} = 1;
+ &display_form;
+
+}
+
+
+sub edit {
+
+ &{ "prepare_$form->{type}" };
+ &display_form;
+
+}
+
+
+sub prepare_partsgroup { PE->get_partsgroup(\%myconfig, \%$form) if $form->{id} }
+sub prepare_pricegroup { PE->get_pricegroup(\%myconfig, \%$form) if $form->{id} }
+
+sub prepare_job {
+
+# $locale->text('Add Job')
+# $locale->text('Edit Job')
+
+ $form->{vc} = 'customer';
+
+ PE->get_job(\%myconfig, \%$form);
+
+ $form->{taxaccounts} = "";
+ for (keys %{ $form->{IC_links} }) {
+
+ $form->{"select$_"} = "";
+ foreach $ref (@{ $form->{IC_links}{$_} }) {
+ if (/IC_tax/) {
+ if (/taxpart/) {
+ $form->{taxaccounts} .= "$ref->{accno} ";
+ $form->{"IC_tax_$ref->{accno}_description"} = "$ref->{accno}--$ref->{description}";
+ if ($form->{id}) {
+ if ($form->{amount}{$ref->{accno}}) {
+ $form->{"IC_tax_$ref->{accno}"} = "checked";
+ }
+ } else {
+ $form->{"IC_tax_$ref->{accno}"} = "checked";
+ }
+ }
+ } else {
+ $form->{"select$_"} .= "<option>$ref->{accno}--$ref->{description}\n";
+ }
+ }
+ }
+ chop $form->{taxaccounts};
+
+ $form->{selectIC_income} = $form->{selectIC_sale};
+ $form->{IC_income} = $form->{IC_sale};
+
+ $form->{IC_income} = qq|$form->{income_accno}--$form->{income_description}|;
+
+ delete $form->{IC_links};
+
+ $form->{"old$form->{vc}"} = qq|$form->{"$form->{vc}"}--$form->{"$form->{vc}_id"}|;
+
+ if (@{ $form->{"all_$form->{vc}"} }) {
+ $form->{"$form->{vc}"} = qq|$form->{"$form->{vc}"}--$form->{"$form->{vc}_id"}|;
+ $form->{"select$form->{vc}"} = qq|<option>\n|;
+ for (@{ $form->{"all_$form->{vc}"} }) { $form->{"select$form->{vc}"} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+ }
+
+ $form->get_partsgroup(\%myconfig, {all => 1});
+ $form->{partsgroup} = $form->quote($form->{partsgroup})."--$form->{partsgroup_id}";
+ if (@{ $form->{all_partsgroup} }) {
+ $form->{selectpartsgroup} = qq|<option>\n|;
+ for (@{ $form->{all_partsgroup} }) { $form->{selectpartsgroup} .= qq|<option value="|.$form->quote($_->{partsgroup}).qq|--$_->{id}">$_->{partsgroup}\n| }
+ }
+
+ $form->{locked} = ($form->{revtrans}) ? '1' : ($form->datetonum(\%myconfig, $form->{transdate}) <= $form->datetonum(\%myconfig, $form->{closedto}));
+
+ $form->{readonly} = 1 if $myconfig{acs} =~ /Job Costing--Add Job/;
+
+}
+
+
+sub job_header {
+
+ for (qw(partnumber partdescription description notes unit)) { $form->{$_} = $form->quote($form->{$_}) }
+
+ for (qw(production weight)) { $form->{$_} = $form->format_amount(\%myconfig, $form->{$_}) }
+ for (qw(listprice sellprice)) { $form->{$_} = $form->format_amount(\%myconfig, $form->{$_}, 2) }
+
+ if (($rows = $form->numtextrows($form->{partdescription}, 60)) > 1) {
+ $partdescription = qq|<textarea name="partdescription" rows=$rows cols=60 style="width: 100%" wrap=soft>$form->{partdescription}</textarea>|;
+ } else {
+ $partdescription = qq|<input name=partdescription size=60 value="$form->{partdescription}">|;
+ }
+
+ if (($rows = $form->numtextrows($form->{description}, 60)) > 1) {
+ $description = qq|<textarea name="description" rows=$rows cols=60 style="width: 100%" wrap=soft>$form->{description}</textarea>|;
+ } else {
+ $description = qq|<input name=description size=60 value="$form->{description}">|;
+ }
+
+ if (($rows = $form->numtextrows($form->{notes}, 40)) < 2) {
+ $rows = 2;
+ }
+
+ $notes = qq|<textarea name=notes rows=$rows cols=40 wrap=soft>$form->{notes}</textarea>|;
+
+ $form->{selectIC_income} = $form->unescape($form->{selectIC_income});
+ $form->{"select$form->{vc}"} = $form->unescape($form->{"select$form->{vc}"});
+ $form->{"select$form->{vc}"} =~ s/ selected//;
+ $form->{"select$form->{vc}"} =~ s/(<option value="\Q$form->{"$form->{vc}"}\E")/$1 selected/;
+
+
+ $label = ucfirst $form->{vc};
+ if ($form->{"select$form->{vc}"}) {
+ $name = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text($label).qq|</th>
+ <td colspan=3><select name="$form->{vc}">$form->{"select$form->{vc}"}</select></td>
+ <input type=hidden name="select$form->{vc}" value="|.
+ $form->escape($form->{"select$form->{vc}"},1).qq|">
+ </tr>
+|;
+ } else {
+ $name = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text($label).qq|</th>
+ <td colspan=3><input name="$form->{vc}" value="$form->{"$form->{vc}"}" size=35></td>
+ <input type=hidden name="select$form->{vc}" value="|.
+ $form->escape($form->{"select$form->{vc}"},1).qq|">
+ </tr>
+|;
+ }
+
+ if ($form->{orphaned}) {
+
+ for (qw(income)) {
+ $form->{"selectIC_$_"} =~ s/ selected//;
+ $form->{"selectIC_$_"} =~ s/option>\Q$form->{"IC_$_"}\E/option selected>$form->{"IC_$_"}/;
+ }
+
+ $production = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Production').qq|</th>
+ <td><input name=production size=10 value="$form->{production}"></td>
+ <th align=right nowrap>|.$locale->text('Completed').qq|</th>
+ <td>$form->{completed}</td>
+ </tr>
+|;
+
+ } else {
+
+ $form->{selectIC_income} = qq|<option selected>$form->{IC_income}|;
+
+ $production = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Production').qq|</th>
+ <td><input type=hidden name=production value="$form->{production}">$form->{production}</td>
+ <th align=right nowrap>|.$locale->text('Completed').qq|</th>
+ <td>$form->{completed}</td>
+ </tr>
+|;
+
+ }
+
+ for (split / /, $form->{taxaccounts}) { $form->{"IC_tax_$_"} = ($form->{"IC_tax_$_"}) ? "checked" : "" }
+
+ if ($form->{selectpartsgroup}) {
+ $form->{selectpartsgroup} = $form->unescape($form->{selectpartsgroup});
+
+ $partsgroup = qq|<input type=hidden name=selectpartsgroup value="|.$form->escape($form->{selectpartsgroup},1).qq|">|;
+ $form->{partsgroup} = $form->quote($form->{partsgroup});
+ $form->{selectpartsgroup} =~ s/(<option value="\Q$form->{partsgroup}\E")/$1 selected/;
+
+ $partsgroup .= qq|\n<select name=partsgroup>$form->{selectpartsgroup}</select>|;
+ $group = $locale->text('Group');
+ }
+
+ $linkaccounts = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Income').qq|</th>
+ <td><select name=IC_income>$form->{selectIC_income}</select></td>
+ </tr>
+|;
+
+ for (split / /, $form->{taxaccounts}) {
+ $tax .= qq|
+ <input class=checkbox type=checkbox name="IC_tax_$_" value=1 $form->{"IC_tax_$_"}>&nbsp;<b>$form->{"IC_tax_${_}_description"}</b>
+ <br><input type=hidden name=IC_tax_${_}_description value="$form->{"IC_tax_${_}_description"}">
+|;
+ }
+
+ if ($tax) {
+ $linkaccounts .= qq|
+ <tr>
+ <th align=right>|.$locale->text('Tax').qq|</th>
+ <td>$tax</td>
+ </tr>
+|;
+ }
+
+ $partnumber = qq|
+ <tr>
+ <td>
+ <table>
+ <tr valign=top>
+ <th align=left>|.$locale->text('Number').qq|</th>
+ <th align=left>|.$locale->text('Description').qq|</th>
+ <th align=left>$group</th>
+ </tr>
+ <tr valign=top>
+ <td><input name=partnumber value="$form->{partnumber}" size=20></td>
+ <td>$partdescription</td>
+ <td>$partsgroup</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+|;
+
+ $form->{title} = ($form->{id}) ? $locale->text('Edit Job') : $locale->text('Add Job');
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+|;
+
+ for (qw(partnumber startdate enddate)) { $form->{"old$_"} = $form->{$_} }
+
+ print qq|<input type=hidden name="selectIC_income" value="|.$form->escape($form->{"selectIC_income"},1).qq|">\n|;
+
+ $form->hide_form("id", "type", "old$form->{vc}", "$form->{vc}_id", "orphaned", "taxaccounts", "vc", "project");
+
+ print qq|
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right>|.$locale->text('Number').qq|</th>
+ <td><input name=projectnumber size=20 value="$form->{projectnumber}"></td>
+ <th align=right>|.$locale->text('Description').qq|</th>
+ <td>$description</td>
+ </tr>
+ $name
+ <tr>
+ <th align=right>|.$locale->text('Startdate').qq|</th>
+ <td><input name=startdate size=11 title="($myconfig{dateformat})" value=$form->{startdate}></td>
+ <th align=right>|.$locale->text('Enddate').qq|</th>
+ <td><input name=enddate size=11 title="($myconfig{dateformat})" value=$form->{enddate}></td>
+ </tr>
+ $production
+ </table>
+ </td>
+ </tr>
+ <tr class="listheading">
+ <th class="listheading" align="center">|.$locale->text('Assembly').qq|</th>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ $partnumber
+ <tr>
+ <td colspan=3>
+ <table width=100%>
+ <tr>
+ <td width=70%>
+ <table width=100%>
+ <tr class="listheading">
+ <th class="listheading" align="center" colspan=2>|.$locale->text('Link Accounts').qq|</th>
+ </tr>
+ $linkaccounts
+ <tr>
+ <th align="left">|.$locale->text('Notes').qq|</th>
+ </tr>
+ <tr>
+ <td colspan=2>
+ $notes
+ </td>
+ </tr>
+ </table>
+ </td>
+ <td align=right>
+ <table>
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('Updated').qq|</th>
+ <td><input name=priceupdate size=11 title="$myconfig{dateformat}" value=$form->{priceupdate}></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('List Price').qq|</th>
+ <td><input name=listprice size=11 value=$form->{listprice}></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('Sell Price').qq|</th>
+ <td><input name=sellprice size=11 value=$form->{sellprice}></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('Weight').qq|</th>
+ <td>
+ <table>
+ <tr>
+ <td>
+ <input name=weight size=10 value=$form->{weight}>
+ </td>
+ <th>
+ &nbsp;
+ $form->{weightunit}
+ <input type=hidden name=weightunit value=$form->{weightunit}>
+ </th>
+ </tr>
+ </table>
+ </td>
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('Bin').qq|</th>
+ <td><input name=bin size=10 value="$form->{bin}"></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap="true">|.$locale->text('Unit').qq|</th>
+ <td><input name=unit size=5 value="$form->{unit}"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+}
+
+
+sub job_footer {
+
+ $form->hide_form(qw(callback path login sessionid));
+
+# type=submit $locale->text('Update')
+# type=submit $locale->text('Save')
+# type=submit $locale->text('Delete')
+
+ %button = ('Update' => { ndx => 1, key => 'U', value => $locale->text('Update') },
+ );
+
+ if ($myconfig{acs} !~ /Job Costing--Add Job/) {
+ $button{'Save'} = { ndx => 3, key => 'S', value => $locale->text('Save') };
+
+ if ($form->{id} && $form->{orphaned}) {
+ $button{'Delete'} = { ndx => 16, key => 'D', value => $locale->text('Delete') };
+ }
+ }
+
+ for (sort { $button{$a}->{ndx} <=> $button{$b}->{ndx} } keys %button) { $form->print_button(\%button, $_) }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub list_stock {
+
+ PE->list_stock(\%myconfig, \%$form);
+
+ $form->{title} = $locale->text('Stock Finished Goods');
+ $form->{action} = "list_stock";
+
+ $href = "$form->{script}?";
+ for (qw(action direction oldsort type path login sessionid status)) { $href .= "$_=$form->{$_}&" }
+
+ $form->sort_order();
+
+ $callback = "$form->{script}?";
+ for (qw(action direction oldsort type path login sessionid status)) { $callback .= "$_=$form->{$_}&" }
+
+ @column_index = $form->sort_columns(qw(projectnumber description startdate partnumber production completed stock));
+
+ if ($form->{projectnumber}) {
+ $href .= "&projectnumber=".$form->escape($form->{projectnumber});
+ $callback .= "&projectnumber=$form->{projectnumber}";
+ ($var) = split /--/, $form->{projectnumber};
+ $option .= "\n<br>".$locale->text('Job Number')." : $var";
+ }
+ if ($form->{stockingdate}) {
+ $href .= "&stockingdate=$form->{stockingdate}";
+ $option .= "\n<br>".$locale->text('As of')." : ".$locale->date(\%myconfig, $form->{stockingdate}, 1);
+ }
+
+ $column_header{projectnumber} = qq|<th width=30%><a class=listheading href=$href&sort=projectnumber>|.$locale->text('Number').qq|</a></th>|;
+ $column_header{description} = qq|<th width=50%><a class=listheading href=$href&sort=description>|.$locale->text('Description').qq|</a></th>|;
+ $column_header{startdate} = qq|<th width=10%><a class=listheading href=$href&sort=startdate>|.$locale->text('Startdate').qq|</a></th>|;
+ $column_header{partnumber} = "<th><a class=listheading href=$href&sort=partnumber>" . $locale->text('Assembly') . "</a></th>";
+ $column_header{production} = "<th class=listheading>" . $locale->text('Production') . "</a></th>";
+ $column_header{completed} = "<th class=listheading>" . $locale->text('Completed') . "</a></th>";
+ $column_header{stock} = "<th class=listheading>" . $locale->text('Add') . "</a></th>";
+
+
+ $form->header;
+
+ if (@{ $form->{all_project} }) {
+ $sameitem = $form->{all_project}->[0]->{$form->{sort}};
+ }
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$option</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "$column_header{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ # escape callback
+ $form->{callback} = $callback .= "&sort=$form->{sort}";
+
+ # escape callback for href
+ $callback = $form->escape($callback);
+
+ # flip direction
+ $direction = ($form->{direction} eq 'ASC') ? "ASC" : "DESC";
+ $href =~ s/&direction=(\w+)&/&direction=$direction&/;
+
+ $i = 0;
+ foreach $ref (@{ $form->{all_project} }) {
+
+ $i++;
+
+ for (qw(projectnumber description startdate enddate partnumber)) { $column_data{$_} = qq|<td>$ref->{$_}&nbsp;</td>| }
+ for (qw(production completed)) { $column_data{$_} = qq|<td align=right>|.$form->format_amount(\%myconfig, $ref->{$_}).qq|</td>| }
+ $column_data{stock} = qq|<td><input name="stock_$i" size=6></td>|;
+
+ $j++; $j %= 2;
+
+ print qq|
+ <tr valign=top class=listrow$j>
+ <input type=hidden name="id_$i" value=$ref->{id}>
+|;
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print "
+ </tr>
+";
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+ $form->hide_form(qw(callback type path login sessionid status));
+
+ print qq|
+<input type=hidden name=nextsub value="stock">
+<br>
+<input type=submit class=submit name=action value="|.$locale->text('Continue').qq|">
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub stock {
+
+ if (PE->stock_assembly(\%myconfig, \%$form)) {
+ $form->redirect($locale->text('Assembly stocked!'));
+ } else {
+ $form->error($locale->text('Cannot stock Assembly!'));
+ }
+
+}
+
+
+sub prepare_project {
+
+ $form->{vc} = 'customer';
+
+ PE->get_project(\%myconfig, \%$form);
+
+ $form->{title} = ($form->{id}) ? $locale->text('Edit Project') : $locale->text('Add Project');
+
+ $form->{"old$form->{vc}"} = qq|$form->{"$form->{vc}"}--$form->{"$form->{vc}_id"}|;
+
+ if (@{ $form->{"all_$form->{vc}"} }) {
+ $form->{"$form->{vc}"} = qq|$form->{"$form->{vc}"}--$form->{"$form->{vc}_id"}|;
+ $form->{"select$form->{vc}"} = qq|<option>\n|;
+ for (@{ $form->{"all_$form->{vc}"} }) { $form->{"select$form->{vc}"} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+ }
+
+}
+
+
+sub search {
+
+ # accounting years
+ $form->all_years(\%myconfig);
+
+ if (@{ $form->{all_years} }) {
+ $form->{selectaccountingyear} = "<option>\n";
+ for (@{ $form->{all_years} }) { $form->{selectaccountingyear} .= qq|<option>$_\n| }
+
+ $form->{selectaccountingmonth} = "<option>\n";
+ for (sort keys %{ $form->{all_month} }) { $form->{selectaccountingmonth} .= qq|<option value=$_>|.$locale->text($form->{all_month}{$_}).qq|\n| }
+
+ $fromto = qq|
+ <tr>
+ <th align=right>|.$locale->text('Startdate').qq|</th>
+ <td>|.$locale->text('From').qq| <input name=startdatefrom size=11 title="($myconfig{'dateformat'})">|.$locale->text('To').qq|
+ <input name=startdateto size=11 title="($myconfig{'dateformat'})"></td>
+ </tr>
+|;
+
+ $selectperiod = qq|
+ <tr>
+ <th align=right>|.$locale->text('Period').qq|</th>
+ <td colspan=3>
+ <select name=month>$form->{selectaccountingmonth}</select>
+ <select name=year>$form->{selectaccountingyear}</select>
+ <input name=interval class=radio type=radio value=0 checked>&nbsp;|.$locale->text('Current').qq|
+ <input name=interval class=radio type=radio value=1>&nbsp;|.$locale->text('Month').qq|
+ <input name=interval class=radio type=radio value=3>&nbsp;|.$locale->text('Quarter').qq|
+ <input name=interval class=radio type=radio value=12>&nbsp;|.$locale->text('Year').qq|
+ </td>
+ </tr>
+|;
+ }
+
+
+ $orphaned = qq|
+ <input name=status class=radio type=radio value=orphaned>&nbsp;|.$locale->text('Orphaned');
+
+ if ($form->{type} eq 'project') {
+ $report = "project_report";
+ $sort = "projectnumber";
+ $form->{title} = $locale->text('Projects');
+
+ $number = qq|
+ <tr>
+ <th align=right width=1%>|.$locale->text('Number').qq|</th>
+ <td><input name=projectnumber size=20></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Description').qq|</th>
+ <td><input name=description size=60></td>
+ </tr>
+|;
+ }
+
+ if ($form->{type} eq 'stock') {
+ $report = "list_stock";
+ $form->{title} = $locale->text('Stock Finished Goods');
+ PE->list_stock(\%myconfig, \%$form);
+
+ $selectperiod = "";
+ $orphaned = "";
+ $fromto = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('As of').qq|</th>
+ <td><input name=stockingdate size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+|;
+
+ $number = qq|
+ <tr>
+ <th align=right width=1%>|.$locale->text('Job Number').qq|</th>
+ <td><input name=projectnumber size=20></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Description').qq|</th>
+ <td><input name=description size=60></td>
+ </tr>
+|;
+ }
+
+ if ($form->{type} eq 'job') {
+ $report = "job_report";
+ $sort = "projectnumber";
+ $form->{title} = $locale->text('Jobs');
+
+ $number = qq|
+ <tr>
+ <th align=right width=1%>|.$locale->text('Number').qq|</th>
+ <td><input name=projectnumber size=20></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Description').qq|</th>
+ <td><input name=description size=60></td>
+ </tr>
+|;
+ }
+
+ if ($form->{type} eq 'partsgroup') {
+ $report = "partsgroup_report";
+ $sort = 'partsgroup';
+ $form->{title} = $locale->text('Groups');
+
+ $fromto = "";
+ $selectperiod = "";
+ $number = qq|
+ <tr>
+ <th align=right width=1%>|.$locale->text('Group').qq|</th>
+ <td><input name=partsgroup size=20></td>
+ </tr>
+|;
+ }
+
+ if ($form->{type} eq 'pricegroup') {
+ $report = "pricegroup_report";
+ $sort = 'pricegroup';
+ $form->{title} = $locale->text('Pricegroups');
+
+ $fromto = "";
+ $selectperiod = "";
+ $number = qq|
+ <tr>
+ <th align=right width=1%>|.$locale->text('Pricegroup').qq|</th>
+ <td><input name=pricegroup size=20></td>
+ </tr>
+|;
+ }
+
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=sort value=$sort>
+<input type=hidden name=type value=$form->{type}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ $number
+ $fromto
+ $selectperiod
+ <tr>
+ <td></td>
+ <td><input name=status class=radio type=radio value=all checked>&nbsp;|.$locale->text('All').qq|
+ <input name=status class=radio type=radio value=active>&nbsp;|.$locale->text('Active').qq|
+ <input name=status class=radio type=radio value=inactive>&nbsp;|.$locale->text('Inactive').qq|
+ $orphaned</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<input type=hidden name=nextsub value=$report>
+|;
+
+ $form->hide_form(qw(path login sessionid title));
+
+ print qq|
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">
+</form>
+|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+</body>
+</html>
+|;
+
+}
+
+
+sub job_report {
+
+ for (qw(projectnumber description)) { $form->{$_} = $form->unescape($form->{$_}) }
+ PE->jobs(\%myconfig, \%$form);
+
+ $form->{action} = "job_report";
+ &list_projects;
+
+}
+
+
+sub project_report {
+
+ for (qw(projectnumber description)) { $form->{$_} = $form->unescape($form->{$_}) }
+ PE->projects(\%myconfig, \%$form);
+
+ $form->{action} = "project_report";
+ &list_projects;
+
+}
+
+
+sub list_projects {
+
+ $href = "$form->{script}?";
+ for (qw(action direction oldsort type path login sessionid status startdatefrom startdateto)) { $href .= "$_=$form->{$_}&" }
+
+ $form->sort_order();
+
+ $callback = "$form->{script}?";
+ for (qw(action direction oldsort type path login sessionid status startdatefrom startdateto)) { $callback .= "$_=$form->{$_}&" }
+
+ @column_index = $form->sort_columns(qw(projectnumber description name startdate enddate));
+
+ if ($form->{status} eq 'all') {
+ $option = $locale->text('All');
+ }
+ if ($form->{status} eq 'orphaned') {
+ $option .= $locale->text('Orphaned');
+ }
+ if ($form->{status} eq 'active') {
+ $option = $locale->text('Active');
+ @column_index = $form->sort_columns(qw(projectnumber description name startdate));
+ }
+ if ($form->{status} eq 'inactive') {
+ $option = $locale->text('Inactive');
+ }
+
+ if ($form->{type} eq 'project') {
+ $label = $locale->text('Project');
+ $form->{title} = $locale->text('Projects');
+ } else {
+ $label = $locale->text('Job');
+ push @column_index, qw(partnumber production completed);
+ $form->{title} = $locale->text('Jobs');
+ }
+
+ if ($form->{projectnumber}) {
+ $href .= "&projectnumber=".$form->escape($form->{projectnumber});
+ $callback .= "&projectnumber=$form->{projectnumber}";
+ $option .= "\n<br>$label : $form->{projectnumber}";
+ }
+ if ($form->{description}) {
+ $href .= "&description=".$form->escape($form->{description});
+ $callback .= "&description=$form->{description}";
+ $option .= "\n<br>".$locale->text('Description')." : $form->{description}";
+ }
+ if ($form->{startdatefrom}) {
+ $href .= "&startdatefrom=$form->{startdatefrom}";
+ $option .= "\n<br>".$locale->text('From')."&nbsp;".$locale->date(\%myconfig, $form->{startdatefrom}, 1);
+ }
+ if ($form->{startdateto}) {
+ $href .= "&startdateto=$form->{startdateto}";
+ if ($form->{startdatefrom}) {
+ $option .= " ";
+ } else {
+ $option .= "\n<br>" if ($option);
+ }
+ $option .= $locale->text('To')."&nbsp;".$locale->date(\%myconfig, $form->{startdateto}, 1);
+ }
+
+
+ $column_header{projectnumber} = qq|<th><a class=listheading href=$href&sort=projectnumber>|.$locale->text('Number').qq|</a></th>|;
+ $column_header{description} = qq|<th><a class=listheading href=$href&sort=description>|.$locale->text('Description').qq|</a></th>|;
+ $column_header{startdate} = qq|<th width=10><a class=listheading href=$href&sort=startdate>|.$locale->text('Startdate').qq|</a></th>|;
+ $column_header{enddate} = qq|<th width=10><a class=listheading href=$href&sort=enddate>|.$locale->text('Enddate').qq|</a></th>|;
+
+ $column_header{partnumber} = "<th><a class=listheading href=$href&sort=partnumber>" . $locale->text('Assembly') . "</a></th>";
+ $column_header{production} = "<th width=10 class=listheading>" . $locale->text('Production') . "</th>";
+ $column_header{completed} = "<th width=10 class=listheading>" . $locale->text('Completed') . "</th>";
+ $column_header{name} = "<th class=listheading>" . $locale->text('Customer') . "</th>";
+
+
+ $form->header;
+
+ if (@{ $form->{all_project} }) {
+ $sameitem = $form->{all_project}->[0]->{$form->{sort}};
+ }
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$option</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "$column_header{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ # escape callback
+ $form->{callback} = $callback .= "&sort=$form->{sort}";
+
+ # escape callback for href
+ $callback = $form->escape($callback);
+
+ # flip direction
+ $direction = ($form->{direction} eq 'ASC') ? "ASC" : "DESC";
+ $href =~ s/&direction=(\w+)&/&direction=$direction&/;
+
+ foreach $ref (@{ $form->{all_project} }) {
+
+ for (qw(description startdate enddate name)) { $column_data{$_} = qq|<td>$ref->{$_}&nbsp;</td>| }
+
+ for (qw(production completed)) { $column_data{$_} = qq|<td align=right>|.$form->format_amount(\%myconfig, $ref->{$_}) }
+
+ $column_data{projectnumber} = qq|<td><a href=$form->{script}?action=edit&type=$form->{type}&status=$form->{status}&id=$ref->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&project=$form->{project}&callback=$callback>$ref->{projectnumber}</td>|;
+ $column_data{partnumber} = qq|<td><a href=ic.pl?action=edit&id=$ref->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{partnumber}</td>|;
+
+ $j++; $j %= 2;
+
+ print qq|
+ <tr valign=top class=listrow$j>
+|;
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print "
+ </tr>
+";
+ }
+
+ $i = 1;
+ if ($form->{type} eq 'project') {
+ if ($myconfig{acs} !~ /Projects--Projects/) {
+ $button{'Projects--Add Project'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Add Project').qq|"> |;
+ $button{'Projects--Add Project'}{order} = $i++;
+
+ for (split /;/, $myconfig{acs}) {
+ delete $button{$_};
+ }
+ }
+ } else {
+ if ($myconfig{acs} !~ /Job Costing--Job Costing/) {
+ $button{'Job Costing--Add Job'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Add Job').qq|"> |;
+ $button{'Job Costing--Add Job'}{order} = $i++;
+
+ for (split /;/, $myconfig{acs}) {
+ delete $button{$_};
+ }
+ }
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+<form method=post action=$form->{script}>
+|;
+
+ $form->hide_form(qw(callback type path login sessionid));
+
+ foreach $item (sort { $a->{order} <=> $b->{order} } %button) {
+ print $item->{code};
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub project_header {
+
+ $form->{description} = $form->quote($form->{description});
+
+ if (($rows = $form->numtextrows($form->{description}, 60)) > 1) {
+ $description = qq|<textarea name="description" rows=$rows cols=60 style="width: 100%" wrap=soft>$form->{description}</textarea>|;
+ } else {
+ $description = qq|<input name=description size=60 value="$form->{description}">|;
+ }
+
+ $form->{"select$form->{vc}"} = $form->unescape($form->{"select$form->{vc}"});
+ $form->{"select$form->{vc}"} =~ s/ selected//;
+ $form->{"select$form->{vc}"} =~ s/(<option value="\Q$form->{"$form->{vc}"}\E")/$1 selected/;
+
+ $label = ucfirst $form->{vc};
+ if ($form->{"select$form->{vc}"}) {
+ $name = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text($label).qq|</th>
+ <td colspan=3><select name="$form->{vc}">$form->{"select$form->{vc}"}</select></td>
+ <input type=hidden name="select$form->{vc}" value="|.
+ $form->escape($form->{"select$form->{vc}"},1).qq|">
+ </tr>
+|;
+ } else {
+ $name = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text($label).qq|</th>
+ <td colspan=3><input name="$form->{vc}" value="$form->{"$form->{vc}"}" size=35></td>
+ <input type=hidden name="select$form->{vc}" value="|.
+ $form->escape($form->{"select$form->{vc}"},1).qq|">
+ </tr>
+|;
+ }
+
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+|;
+
+ $form->hide_form("id", "type", "old$form->{vc}", "$form->{vc}_id", "orphaned","vc", "title");
+
+ print qq|
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right>|.$locale->text('Number').qq|</th>
+ <td><input name=projectnumber size=20 value="$form->{projectnumber}"></td>
+ <th align=right>|.$locale->text('Description').qq|</th>
+ <td>$description</td>
+ </tr>
+ $name
+ <tr>
+ <th align=right>|.$locale->text('Startdate').qq|</th>
+ <td><input name=startdate size=11 title="($myconfig{dateformat})" value=$form->{startdate}></td>
+ <th align=right>|.$locale->text('Enddate').qq|</th>
+ <td><input name=enddate size=11 title="($myconfig{dateformat})" value=$form->{enddate}></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+}
+
+
+sub project_footer {
+
+ $form->hide_form(qw(callback path login sessionid));
+
+ %button = ('Update' => { ndx => 1, key => 'U', value => $locale->text('Update') },
+ );
+
+ if ($myconfig{acs} !~ /Projects--Add Project/) {
+ $button{'Save'} = { ndx => 3, key => 'S', value => $locale->text('Save') };
+
+ if ($form->{id} && $form->{orphaned}) {
+ $button{'Delete'} = { ndx => 16, key => 'D', value => $locale->text('Delete') };
+ }
+ }
+
+ for (sort { $button{$a}->{ndx} <=> $button{$b}->{ndx} } keys %button) { $form->print_button(\%button, $_) }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub save {
+
+ if ($form->{translation}) {
+ PE->save_translation(\%myconfig, \%$form);
+ $form->redirect($locale->text('Translations saved!'));
+ exit;
+ }
+
+ if ($form->{type} eq 'project') {
+ if ($form->{"select$form->{vc}"}) {
+ ($null, $form->{"$form->{vc}_id"}) = split /--/, $form->{"$form->{vc}"};
+ } else {
+ if ($form->{"old$form->{vc}"} ne qq|$form->{"$form->{vc}"}--$form->{"$form->{vc}_id"}|) {
+
+ if (($rv = $form->get_name(\%myconfig, $form->{vc}, $form->{startdate})) > 1) {
+ &select_name;
+ exit;
+ }
+
+ if ($rv == 1) {
+ $form->{"$form->{vc}_id"} = $form->{name_list}[0]->{id};
+ $form->{"$form->{vc}"} = $form->{name_list}[0]->{name};
+ $form->{"old$form->{vc}"} = qq|$form->{"$form->{vc}"}--$form->{"$form->{vc}_id"}|;
+ }
+ }
+ }
+
+ PE->save_project(\%myconfig, \%$form);
+ $form->redirect($locale->text('Project saved!'));
+ }
+
+ if ($form->{type} eq 'partsgroup') {
+ $form->isblank("partsgroup", $locale->text('Group missing!'));
+ PE->save_partsgroup(\%myconfig, \%$form);
+ $form->redirect($locale->text('Group saved!'));
+ }
+
+ if ($form->{type} eq 'pricegroup') {
+ $form->isblank("pricegroup", $locale->text('Pricegroup missing!'));
+ PE->save_pricegroup(\%myconfig, \%$form);
+ $form->redirect($locale->text('Pricegroup saved!'));
+ }
+
+
+ if ($form->{type} eq 'job') {
+ if ($form->{"select$form->{vc}"}) {
+ ($null, $form->{"$form->{vc}_id"}) = split /--/, $form->{"$form->{vc}"};
+ } else {
+ if ($form->{"old$form->{vc}"} ne qq|$form->{"$form->{vc}"}--$form->{"$form->{vc}_id"}|) {
+
+ if (($rv = $form->get_name(\%myconfig, $form->{vc}, $form->{startdate})) > 1) {
+ &select_name;
+ exit;
+ }
+
+ if ($rv == 1) {
+ $form->{"$form->{vc}_id"} = $form->{name_list}[0]->{id};
+ $form->{"$form->{vc}"} = $form->{name_list}[0]->{name};
+ $form->{"old$form->{vc}"} = qq|$form->{"$form->{vc}"}--$form->{"$form->{vc}_id"}|;
+ }
+ }
+ }
+
+ PE->save_job(\%myconfig, \%$form);
+ $form->redirect($locale->text('Job saved!'));
+ }
+
+}
+
+
+sub delete {
+
+ if ($form->{translation}) {
+ PE->delete_translation(\%myconfig, \%$form);
+ $form->redirect($locale->text('Translation deleted!'));
+
+ } else {
+
+ if ($form->{type} eq 'project') {
+ PE->delete_project(\%myconfig, \%$form);
+ $form->redirect($locale->text('Project deleted!'));
+ }
+ if ($form->{type} eq 'job') {
+ PE->delete_job(\%myconfig, \%$form);
+ $form->redirect($locale->text('Job deleted!'));
+ }
+ if ($form->{type} eq 'partsgroup') {
+ PE->delete_partsgroup(\%myconfig, \%$form);
+ $form->redirect($locale->text('Group deleted!'));
+ }
+ if ($form->{type} eq 'pricegroup') {
+ PE->delete_pricegroup(\%myconfig, \%$form);
+ $form->redirect($locale->text('Pricegroup deleted!'));
+ }
+ }
+
+}
+
+
+sub partsgroup_report {
+
+ $form->{partsgroup} = $form->unescape($form->{partsgroup});
+ PE->partsgroups(\%myconfig, \%$form);
+
+ $href = "$form->{script}?action=partsgroup_report&direction=$form->{direction}&oldsort=$form->{oldsort}&type=$form->{type}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&status=$form->{status}";
+
+ $form->sort_order();
+
+ $callback = "$form->{script}?action=partsgroup_report&direction=$form->{direction}&oldsort=$form->{oldsort}&type=$form->{type}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&status=$form->{status}";
+
+ if ($form->{status} eq 'all') {
+ $option = $locale->text('All');
+ }
+ if ($form->{status} eq 'orphaned') {
+ $option .= $locale->text('Orphaned');
+ }
+ if ($form->{partsgroup}) {
+ $callback .= "&partsgroup=$form->{partsgroup}";
+ $option .= "\n<br>".$locale->text('Group')." : $form->{partsgroup}";
+ }
+
+
+ @column_index = $form->sort_columns(qw(partsgroup));
+
+ $column_header{partsgroup} = qq|<th><a class=listheading href=$href&sort=partsgroup width=90%>|.$locale->text('Group').qq|</a></th>|;
+
+ $form->{title} = $locale->text('Groups');
+
+ $form->header;
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$option</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "$column_header{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ # escape callback
+ $form->{callback} = $callback;
+
+ # escape callback for href
+ $callback = $form->escape($callback);
+
+ foreach $ref (@{ $form->{item_list} }) {
+
+ $i++; $i %= 2;
+
+ print qq|
+ <tr valign=top class=listrow$i>
+|;
+
+ $column_data{partsgroup} = qq|<td><a href=$form->{script}?action=edit&type=$form->{type}&status=$form->{status}&id=$ref->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{partsgroup}</td>|;
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print "
+ </tr>
+";
+ }
+
+ $i = 1;
+ if ($myconfig{acs} !~ /Goods \& Services--Goods \& Services/) {
+ $button{'Goods & Services--Add Group'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Add Group').qq|"> |;
+ $button{'Goods & Services--Add Group'}{order} = $i++;
+
+ foreach $item (split /;/, $myconfig{acs}) {
+ delete $button{$item};
+ }
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+<form method=post action=$form->{script}>
+|;
+
+ $form->hide_form(qw(callback type path login sessionid));
+
+ foreach $item (sort { $a->{order} <=> $b->{order} } %button) {
+ print $item->{code};
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub partsgroup_header {
+
+ $form->{action} =~ s/_.*//;
+ $form->{title} = $locale->text(ucfirst $form->{action} . " Group");
+
+# $locale->text('Add Group')
+# $locale->text('Edit Group')
+
+ $form->{partsgroup} = $form->quote($form->{partsgroup});
+
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=id value=$form->{id}>
+<input type=hidden name=type value=$form->{type}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+ <th align=right>|.$locale->text('Group').qq|</th>
+
+ <td><input name=partsgroup size=30 value="$form->{partsgroup}"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td colspan=2><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+}
+
+
+sub partsgroup_footer {
+
+ $form->hide_form(qw(callback path login sessionid));
+
+ if ($myconfig{acs} !~ /Goods \& Services--Add Group/) {
+ print qq|
+<input type=submit class=submit name=action value="|.$locale->text('Save').qq|">
+|;
+
+ if ($form->{id} && $form->{orphaned}) {
+ print qq|
+<input type=submit class=submit name=action value="|.$locale->text('Delete').qq|">|;
+ }
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub pricegroup_report {
+
+ $form->{pricegroup} = $form->unescape($form->{pricegroup});
+ PE->pricegroups(\%myconfig, \%$form);
+
+ $href = "$form->{script}?action=pricegroup_report&direction=$form->{direction}&oldsort=$form->{oldsort}&type=$form->{type}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&status=$form->{status}";
+
+ $form->sort_order();
+
+ $callback = "$form->{script}?action=pricegroup_report&direction=$form->{direction}&oldsort=$form->{oldsort}&type=$form->{type}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&status=$form->{status}";
+
+ if ($form->{status} eq 'all') {
+ $option = $locale->text('All');
+ }
+ if ($form->{status} eq 'orphaned') {
+ $option .= $locale->text('Orphaned');
+ }
+ if ($form->{pricegroup}) {
+ $callback .= "&pricegroup=$form->{pricegroup}";
+ $option .= "\n<br>".$locale->text('Pricegroup')." : $form->{pricegroup}";
+ }
+
+
+ @column_index = $form->sort_columns(qw(pricegroup));
+
+ $column_header{pricegroup} = qq|<th><a class=listheading href=$href&sort=pricegroup width=90%>|.$locale->text('Pricegroup').qq|</th>|;
+
+ $form->{title} = $locale->text('Pricegroups');
+
+ $form->header;
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$option</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "$column_header{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ # escape callback
+ $form->{callback} = $callback;
+
+ # escape callback for href
+ $callback = $form->escape($callback);
+
+ foreach $ref (@{ $form->{item_list} }) {
+
+ $i++; $i %= 2;
+
+ print qq|
+ <tr valign=top class=listrow$i>
+|;
+
+ $column_data{pricegroup} = qq|<td><a href=$form->{script}?action=edit&type=$form->{type}&status=$form->{status}&id=$ref->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{pricegroup}</td>|;
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print "
+ </tr>
+";
+ }
+
+ $i = 1;
+ if ($myconfig{acs} !~ /Goods \& Services--Goods \& Services/) {
+ $button{'Goods & Services--Add Pricegroup'}{code} = qq|<input class=submit type=submit name=action value="|.$locale->text('Add Pricegroup').qq|"> |;
+ $button{'Goods & Services--Add Pricegroup'}{order} = $i++;
+
+ foreach $item (split /;/, $myconfig{acs}) {
+ delete $button{$item};
+ }
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+<form method=post action=$form->{script}>
+|;
+
+ $form->hide_form(qw(callback type path login sessionid));
+
+ foreach $item (sort { $a->{order} <=> $b->{order} } %button) {
+ print $item->{code};
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub pricegroup_header {
+
+ $form->{title} = $locale->text(ucfirst $form->{action} ." Pricegroup");
+
+# $locale->text('Add Pricegroup')
+# $locale->text('Edit Pricegroup')
+
+ $form->{pricegroup} = $form->quote($form->{pricegroup});
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=id value=$form->{id}>
+<input type=hidden name=type value=$form->{type}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+ <th align=right>|.$locale->text('Pricegroup').qq|</th>
+
+ <td><input name=pricegroup size=30 value="$form->{pricegroup}"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td colspan=2><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+}
+
+
+sub pricegroup_footer {
+
+ $form->hide_form(qw(callback path login sessionid));
+
+ if ($myconfig{acs} !~ /Goods \& Services--Add Pricegroup/) {
+ print qq|
+<input type=submit class=submit name=action value="|.$locale->text('Save').qq|">
+|;
+
+ if ($form->{id} && $form->{orphaned}) {
+ print qq|
+<input type=submit class=submit name=action value="|.$locale->text('Delete').qq|">|;
+ }
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub translation {
+
+ if ($form->{translation} eq 'description') {
+ $form->{title} = $locale->text('Description Translations');
+ $sort = qq|<input type=hidden name=sort value=partnumber>|;
+ $form->{number} = "partnumber";
+ $number = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Number').qq|</th>
+ <td><input name=partnumber size=20></td>
+ </tr>
+|;
+ }
+
+ if ($form->{translation} eq 'partsgroup') {
+ $form->{title} = $locale->text('Group Translations');
+ $sort = qq|<input type=hidden name=sort value=partsgroup>|;
+ }
+
+ if ($form->{translation} eq 'project') {
+ $form->{title} = $locale->text('Project Description Translations');
+ $form->{number} = "projectnumber";
+ $sort = qq|<input type=hidden name=sort value=projectnumber>|;
+ $number = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Project Number').qq|</th>
+ <td><input name=projectnumber size=20></td>
+ </tr>
+|;
+ }
+
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+|;
+
+ $form->hide_form(qw(translation title number));
+
+ print qq|
+
+<table width="100%">
+ <tr><th class=listtop>$form->{title}</th></tr>
+ <tr height="5"></tr>
+ <tr valign=top>
+ <td>
+ <table>
+ $number
+ <tr>
+ <th align=right nowrap>|.$locale->text('Description').qq|</th>
+ <td colspan=3><input name=description size=40></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr><td><hr size=3 noshade></td></tr>
+</table>
+
+<input type=hidden name=nextsub value=list_translations>
+$sort
+|;
+
+ $form->hide_form(qw(path login sessionid));
+
+ print qq|
+
+<br>
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub list_translations {
+
+ $title = $form->escape($form->{title},1);
+
+ $callback = "$form->{script}?action=list_translations&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&translation=$form->{translation}&number=$form->{number}&title=$title";
+
+ if ($form->{"$form->{number}"}) {
+ $callback .= qq|&$form->{number}=$form->{"$form->{number}"}|;
+ $option .= $locale->text('Number').qq| : $form->{"$form->{number}"}<br>|;
+ }
+ if ($form->{description}) {
+ $callback .= "&description=$form->{description}";
+ $description = $form->{description};
+ $description =~ s/\r?\n/<br>/g;
+ $option .= $locale->text('Description').qq| : $form->{description}<br>|;
+ }
+
+ if ($form->{translation} eq 'partsgroup') {
+ @column_index = qw(description language translation);
+ $form->{sort} = "";
+ } else {
+ @column_index = $form->sort_columns("$form->{number}", "description", "language", "translation");
+ }
+
+ &{ "PE::$form->{translation}_translations" }("", \%myconfig, \%$form);
+
+ $callback .= "&direction=$form->{direction}&oldsort=$form->{oldsort}";
+
+ $href = $callback;
+
+ $form->sort_order();
+
+ $callback =~ s/(direction=).*\&{1}/$1$form->{direction}\&/;
+
+ $column_header{"$form->{number}"} = qq|<th nowrap><a class=listheading href=$href&sort=$form->{number}>|.$locale->text('Number').qq|</a></th>|;
+ $column_header{description} = qq|<th nowrap width=40%><a class=listheading href=$href&sort=description>|.$locale->text('Description').qq|</a></th>|;
+ $column_header{language} = qq|<th nowrap class=listheading>|.$locale->text('Language').qq|</a></th>|;
+ $column_header{translation} = qq|<th nowrap width=40% class=listheading>|.$locale->text('Translation').qq|</a></th>|;
+
+ $form->header;
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+
+ <tr><td>$option</td></tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "\n$column_header{$_}" }
+
+ print qq|
+ </tr>
+ |;
+
+
+ # add order to callback
+ $form->{callback} = $callback .= "&sort=$form->{sort}";
+
+ # escape callback for href
+ $callback = $form->escape($callback);
+
+ if (@{ $form->{translations} }) {
+ $sameitem = $form->{translations}->[0]->{$form->{sort}};
+ }
+
+ foreach $ref (@{ $form->{translations} }) {
+
+ $ref->{description} =~ s/\r?\n/<br>/g;
+
+ for (@column_index) { $column_data{$_} = "<td>$ref->{$_}&nbsp;</td>" }
+
+ $column_data{description} = "<td><a href=$form->{script}?action=edit_translation&translation=$form->{translation}&number=$form->{number}&id=$ref->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{description}&nbsp;</a></td>";
+
+ $i++; $i %= 2;
+ print "<tr class=listrow$i>";
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr><td><hr size=3 noshade></td></tr>
+</table>
+
+|;
+
+ print qq|
+
+<br>
+
+<form method=post action=$form->{script}>
+
+<input name=callback type=hidden value="$form->{callback}">
+|;
+
+ $form->hide_form(qw(path login sessionid));
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+ </form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub edit_translation {
+
+ &{ "PE::$form->{translation}_translations" }("", \%myconfig, \%$form);
+
+ $form->error($locale->text('Languages not defined!')) unless @{ $form->{all_language} };
+
+ $form->{selectlanguage} = qq|<option>\n|;
+ for (@{ $form->{all_language} }) { $form->{selectlanguage} .= qq|<option value="$_->{code}">$_->{description}\n| }
+
+ $form->{"$form->{number}"} = $form->{translations}->[0]->{"$form->{number}"};
+ $form->{description} = $form->{translations}->[0]->{description};
+ $form->{description} =~ s/\r?\n/<br>/g;
+
+ shift @{ $form->{translations} };
+
+ $i = 1;
+ foreach $row (@{ $form->{translations} }) {
+ $form->{"language_code_$i"} = $row->{code};
+ $form->{"translation_$i"} = $row->{translation};
+ $i++;
+ }
+ $form->{translation_rows} = $i - 1;
+
+ $form->{title} = $locale->text('Edit Description Translations');
+
+ &translation_header;
+ &translation_footer;
+
+}
+
+
+sub translation_header {
+
+ $form->{translation_rows}++;
+
+ $form->{selectlanguage} = $form->unescape($form->{selectlanguage});
+ for $i (1 .. $form->{translation_rows}) {
+ $form->{"selectlanguage_$i"} = $form->{selectlanguage};
+ if ($form->{"language_code_$i"}) {
+ $form->{"selectlanguage_$i"} =~ s/(<option value="\Q$form->{"language_code_$i"}\E")/$1 selected/;
+ }
+ }
+
+ $form->{selectlanguage} = $form->escape($form->{selectlanguage},1);
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=$form->{number} value="|.$form->quote($form->{"$form->{number}"}).qq|">
+<input type=hidden name=description value="|.$form->quote($form->{description}).qq|">
+|;
+
+ $form->hide_form(qw(id trans_id selectlanguage translation_rows number translation title));
+
+ print qq|
+
+<table width="100%">
+ <tr><th class=listtop>$form->{title}</th></tr>
+ <tr height="5"></tr>
+ <tr valign=top>
+ <td>
+ <table width=100%>
+ <tr>
+ <td align=left>$form->{"$form->{number}"}</th>
+ <td align=left>$form->{description}</th>
+ </tr>
+ <tr>
+ <tr>
+ <th class=listheading>|.$locale->text('Language').qq|</th>
+ <th class=listheading>|.$locale->text('Translation').qq|</th>
+ </tr>
+|;
+
+ for $i (1 .. $form->{translation_rows}) {
+
+ if (($rows = $form->numtextrows($form->{"translation_$i"}, 40)) > 1) {
+ $translation = qq|<textarea name="translation_$i" rows=$rows cols=40 wrap=soft>$form->{"translation_$i"}</textarea>|;
+ } else {
+ $translation = qq|<input name="translation_$i" size=40 value="$form->{"translation_$i"}">|;
+ }
+
+ print qq|
+ <tr valign=top>
+ <td><select name="language_code_$i">$form->{"selectlanguage_$i"}</select></td>
+ <td>$translation</td>
+ </tr>
+|;
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+}
+
+
+sub translation_footer {
+
+ $form->hide_form(qw(path login sessionid callback));
+
+ %button = ('Update' => { ndx => 1, key => 'U', value => $locale->text('Update') },
+ 'Save' => { ndx => 3, key => 'S', value => $locale->text('Save') },
+ 'Delete' => { ndx => 16, key => 'D', value => $locale->text('Delete') },
+ );
+
+ if (! $form->{trans_id}) {
+ delete $button{'Delete'};
+ }
+
+ for (sort { $button{$a}->{ndx} <=> $button{$b}->{ndx} } keys %button) { $form->print_button(\%button, $_) }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+ </form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub update {
+
+ if ($form->{translation}) {
+ @flds = qw(language translation);
+ $count = 0;
+ @a = ();
+ for $i (1 .. $form->{translation_rows}) {
+ if ($form->{"language_code_$i"} ne "") {
+ push @a, {};
+ $j = $#a;
+
+ for (@flds) { $a[$j]->{$_} = $form->{"${_}_$i"} }
+ $count++;
+ }
+ }
+ $form->redo_rows(\@flds, \@a, $count, $form->{translation_rows});
+ $form->{translation_rows} = $count;
+
+ &translation_header;
+ &translation_footer;
+
+ exit;
+
+ }
+
+ if ($form->{type} =~ /(job|project)/) {
+
+# $locale->text('Customer not on file!')
+# $locale->text('Vendor not on file!')
+
+ for (qw(production listprice sellprice weight)) { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) }
+
+ $form->{projectnumber} = $form->update_defaults(\%myconfig, "projectnumber") unless $form->{projectnumber};
+
+ if ($form->{"select$form->{vc}"}) {
+ if ($form->{startdate} ne $form->{oldstartdate} || $form->{enddate} ne $form->{oldenddate}) {
+
+ PE->get_customer(\%myconfig, \%$form);
+
+ if (@{ $form->{"all_$form->{vc}"} }) {
+ $form->{"select$form->{vc}"} = qq|<option>\n|;
+ for (@{ $form->{"all_$form->{vc}"} }) { $form->{"select$form->{vc}"} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+ }
+ }
+
+ $form->{"old$form->{vc}"} = $form->{"$form->{vc}"};
+ ($null, $form->{"$form->{vc}_id"}) = split /--/, $form->{"$form->{vc}"};
+
+ } else {
+
+ if ($form->{"old$form->{vc}"} ne qq|$form->{"$form->{vc}"}--$form->{"$form->{vc}_id"}|) {
+
+ if (($rv = $form->get_name(\%myconfig, $form->{vc}, $form->{startdate})) > 1) {
+ &select_name;
+ exit;
+ }
+
+ if ($rv == 1) {
+ $form->{"$form->{vc}_id"} = $form->{name_list}[0]->{id};
+ $form->{"$form->{vc}"} = $form->{name_list}[0]->{name};
+ $form->{"old$form->{vc}"} = qq|$form->{"$form->{vc}"}--$form->{"$form->{vc}_id"}|;
+ } else {
+ $msg = ucfirst $form->{vc} ." not on file!";
+ $form->error($locale->text($msg));
+ }
+ }
+ }
+ }
+
+ &display_form;
+
+}
+
+
+sub select_name {
+
+ $label = ucfirst $form->{vc};
+
+ @column_index = qw(ndx name address);
+ $column_data{ndx} = qq|<th>&nbsp;</th>|;
+ $column_data{name} = qq|<th class=listheading>|.$locale->text($label).qq|</th>|;
+ $column_data{address} = qq|<th class=listheading colspan=5>|.$locale->text('Address').qq|</th>|;
+
+ $form->header;
+ $title = $locale->text('Select from one of the names below');
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$title</th>
+ </tr>
+ <tr space=5></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ @column_index = qw(ndx name address city state zipcode country);
+
+ my $i = 0;
+ foreach $ref (@{ $form->{name_list} }) {
+ $checked = ($i++) ? "" : "checked";
+
+ $ref->{name} = $form->quote($ref->{name});
+
+ $column_data{ndx} = qq|<td><input name=ndx class=radio type=radio value=$i $checked></td>|;
+ $column_data{name} = qq|<td><input name="new_name_$i" type=hidden value="$ref->{name}">$ref->{name}</td>|;
+ $column_data{address} = qq|<td>$ref->{address1} $ref->{address2}</td>|;
+ for (qw(city state zipcode country)) { $column_data{$_} = qq|<td>$ref->{$_}&nbsp;</td>| }
+
+ $j++; $j %= 2;
+ print qq|
+ <tr class=listrow$j>|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+
+<input name="new_id_$i" type=hidden value=$ref->{id}>
+
+|;
+
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<input name=lastndx type=hidden value=$i>
+
+|;
+
+ # delete variables
+ for (qw(action nextsub name_list)) { delete $form->{$_} }
+
+ $form->hide_form;
+
+ print qq|
+<input type=hidden name=nextsub value=name_selected>
+<br>
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub name_selected {
+
+ # replace the variable with the one checked
+
+ # index for new item
+ $i = $form->{ndx};
+
+ $form->{$form->{vc}} = $form->{"new_name_$i"};
+ $form->{"$form->{vc}_id"} = $form->{"new_id_$i"};
+ $form->{"old$form->{vc}"} = qq|$form->{$form->{vc}}--$form->{"$form->{vc}_id"}|;
+
+ # delete all the new_ variables
+ for $i (1 .. $form->{lastndx}) {
+ for (qw(id name)) { delete $form->{"new_${_}_$i"} }
+ }
+
+ for (qw(ndx lastndx nextsub)) { delete $form->{$_} }
+
+ &display_form;
+
+}
+
+
+sub display_form {
+
+ &{ "$form->{type}_header" };
+ &{ "$form->{type}_footer" };
+
+}
+
+sub continue { &{ $form->{nextsub} } };
+
+sub add_group { &add }
+sub add_project { &add }
+sub add_job { &add }
+sub add_pricegroup { &add }
+
+
+
+sub project_sales_order {
+
+ PE->project_sales_order(\%myconfig, \%$form);
+
+ if (@{ $form->{all_years} }) {
+ $form->{selectaccountingyear} = "<option>\n";
+ for (@{ $form->{all_years} }) { $form->{selectaccountingyear} .= qq|<option>$_\n| }
+
+ $form->{selectaccountingmonth} = "<option>\n";
+ for (sort keys %{ $form->{all_month} }) { $form->{selectaccountingmonth} .= qq|<option value=$_>|.$locale->text($form->{all_month}{$_}).qq|\n| }
+
+ $selectfrom = qq|
+ <tr>
+ <th align=right>|.$locale->text('Period').qq|</th>
+ <td colspan=3>
+ <select name=month>$form->{selectaccountingmonth}</select>
+ <select name=year>$form->{selectaccountingyear}</select>
+ <input name=interval class=radio type=radio value=0 checked>&nbsp;|.$locale->text('Current').qq|
+ <input name=interval class=radio type=radio value=1>&nbsp;|.$locale->text('Month').qq|
+ <input name=interval class=radio type=radio value=3>&nbsp;|.$locale->text('Quarter').qq|
+ <input name=interval class=radio type=radio value=12>&nbsp;|.$locale->text('Year').qq|
+ </td>
+ </tr>
+|;
+ }
+
+ $fromto = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Transaction Dates').qq|</th>
+ <td>|.$locale->text('From').qq| <input name=transdatefrom size=11 title="$myconfig{dateformat}">
+ |.$locale->text('To').qq| <input name=transdateto size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+ $selectfrom
+|;
+
+ if (@{ $form->{all_project} }) {
+ $form->{selectprojectnumber} = "<option>\n";
+ for (@{ $form->{all_project} }) { $form->{selectprojectnumber} .= qq|<option value="$_->{projectnumber}--$_->{id}">$_->{projectnumber}\n| }
+ } else {
+ $form->error($locale->text('No open Projects!'));
+ }
+
+ if (@{ $form->{all_employee} }) {
+ $form->{selectemployee} = "<option>\n";
+ for (@{ $form->{all_employee} }) { $form->{selectemployee} .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+
+ $employee = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Employee').qq|</th>
+ <td><select name=employee>$form->{selectemployee}</select></td>
+ </tr>
+|;
+ }
+
+ $form->{title} = $locale->text('Generate Sales Orders');
+ $form->{vc} = "customer";
+ $form->{type} = "sales_order";
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=right>|.$locale->text('Project').qq|</th>
+ <td colspan=3><select name=projectnumber>$form->{selectprojectnumber}</select></td>
+ </tr>
+ $employee
+ $fromto
+ <tr>
+ <th></th>
+ <td><input name=summary type=radio class=radio value=1 checked> |.$locale->text('Summary').qq|
+ <input name=summary type=radio class=radio value=0> |.$locale->text('Detail').qq|
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+|;
+
+ $form->{nextsub} = "project_jcitems_list";
+ $form->hide_form(qw(path login sessionid nextsub type vc));
+
+ print qq|
+<input type=submit class=submit name=action value="|.$locale->text('Continue').qq|">
+
+</form>
+|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+</body>
+</html>
+|;
+
+}
+
+
+sub project_jcitems_list {
+
+ $form->{projectnumber} = $form->unescape($form->{projectnumber});
+ $form->{employee} = $form->unescape($form->{employee});
+ $form->{callback} = "$form->{script}?action=project_jcitems_list";
+ for (qw(month year interval summary transdatefrom transdateto login path sessionid nextsub type vc)) { $form->{callback} .= "&$_=$form->{$_}" }
+ for (qw(employe projectnumber)) { $form->{callback} .= "&$_=".$form->escape($form->{$_},1) }
+
+ PE->get_jcitems(\%myconfig, \%$form);
+
+ # flatten array
+ $i = 1;
+ foreach $ref (@{ $form->{jcitems} }) {
+
+ if ($form->{summary}) {
+
+ $thisitem = qq|$ref->{project_id}:$ref->{"$form->{vc}_id"}:$ref->{parts_id}|;
+
+ if ($thisitem eq $sameitem) {
+
+ $i--;
+ for (qw(qty amount)) { $form->{"${_}_$i"} += $ref->{$_} }
+ $form->{"id_$i"} .= " $ref->{id}:$ref->{qty}";
+ if ($form->{"notes_$i"}) {
+ $form->{"notes_$i"} .= qq|\n\n$ref->{notes}|;
+ } else {
+ $form->{"notes_$i"} = $ref->{notes};
+ }
+
+ } else {
+
+ for (keys %$ref) { $form->{"${_}_$i"} = $ref->{$_} }
+
+ $form->{"checked_$i"} = 1;
+ $form->{"$form->{vc}_$i"} = $ref->{$form->{vc}};
+ $form->{"id_$i"} = "$ref->{id}:$ref->{qty}";
+
+ }
+
+ $sameitem = qq|$ref->{project_id}:$ref->{"$form->{vc}_id"}:$ref->{parts_id}|;
+ } else {
+
+ for (keys %$ref) { $form->{"${_}_$i"} = $ref->{$_} }
+ $form->{"checked_$i"} = 1;
+ $form->{"id_$i"} = "$ref->{id}:$ref->{qty}";
+
+ }
+
+ $i++;
+
+ }
+
+ $form->{rowcount} = $i - 1;
+
+ for $i (1 .. $form->{rowcount}) {
+ for (qw(qty allocated)) { $form->{"${_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}) }
+ for (qw(amount sellprice)) { $form->{"${_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}, 2) }
+ }
+
+ &jcitems;
+
+}
+
+
+sub jcitems {
+
+# $locale->text('Customer')
+# $locale->text('Vendor')
+
+ $vc = ucfirst $form->{vc};
+
+ @column_index = qw(id projectnumber name);
+ if (!$form->{summary}) {
+ push @column_index, qw(transdate);
+ }
+ push @column_index, qw(partnumber description qty amount);
+
+ $column_header{id} = qq|<th>&nbsp;</th>|;
+ $column_header{transdate} = qq|<th class=listheading>|.$locale->text('Date').qq|</th>|;
+ $column_header{partnumber} = qq|<th class=listheading>|.$locale->text('Service Code').qq|<br>|.$locale->text('Part Number').qq|</th>|;
+ $column_header{projectnumber} = qq|<th class=listheading>|.$locale->text('Project Number').qq|</th>|;
+ $column_header{description} = qq|<th class=listheading>|.$locale->text('Description').qq|</th>|;
+ $column_header{name} = qq|<th class=listheading>$vc</th>|;
+ $column_header{qty} = qq|<th class=listheading>|.$locale->text('Qty').qq|</th>|;
+ $column_header{amount} = qq|<th class=listheading>|.$locale->text('Amount').qq|</th>|;
+
+ if ($form->{type} eq 'sales_order') {
+ $form->{title} = $locale->text('Generate Sales Orders');
+ }
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>|;
+
+ for (@column_index) { print "\n$column_header{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ for $i (1 .. $form->{rowcount}) {
+
+ for (@column_index) { $column_data{$_} = qq|<td>$form->{"${_}_$i"}</td>| }
+ for (qw(qty amount)) { $column_data{$_} = qq|<td align=right>$form->{"${_}_$i"}</td>| }
+
+ $checked = ($form->{"checked_$i"}) ? "checked" : "";
+ $column_data{id} = qq|<td><input name="checked_$i" class=checkbox type=checkbox value="1" $checked></td>|;
+
+ if ($form->{"$form->{vc}_id_$i"}) {
+ $column_data{name} = qq|<td>$form->{"$form->{vc}_$i"}</td>|;
+ $form->hide_form("$form->{vc}_id_$i", "$form->{vc}_$i");
+ } else {
+ $column_data{name} = qq|<td><input name="ndx_$i" class=checkbox type=checkbox value="1"></td>|;
+ }
+
+ for (qw(projectnumber partnumber description notes)) { $form->{"${_}_$i"} = $form->quote($form->{"${_}_$i"}) }
+ $form->hide_form(map {"${_}_$i"} qw(id project_id parts_id projectnumber transdate partnumber description notes qty amount taxaccounts sellprice));
+
+ $j++; $j %= 2;
+ print "
+ <tr class=listrow$j>";
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+|;
+
+ $form->hide_form(qw(path login sessionid vc nextsub rowcount type currency defaultcurrency taxaccounts summary callback));
+
+ for (split / /, $form->{taxaccounts}) { $form->hide_form("${_}_rate") }
+
+ if ($form->{rowcount}) {
+ print qq|
+<input class=submit type=submit name=action value="|.$locale->text('Generate Sales Orders').qq|">|;
+
+ print qq|
+<input class=submit type=submit name=action value="|.$locale->text('Select Customer').qq|">|;
+
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub select_customer {
+
+ for (1 .. $form->{rowcount}) {
+ last if ($ok = $form->{"ndx_$_"});
+ }
+
+ $form->error($locale->text('Nothing selected!')) unless $ok;
+
+ $label = ($form->{vc} eq 'customer') ? $locale->text('Customer') : $locale->text('Vendor');
+
+ $form->header;
+
+ print qq|
+<body onLoad="document.forms[0].$form->{vc}.focus()" />
+
+<form method=post action=$form->{script}>
+
+<b>$label</b> <input name=$form->{vc} size=40>
+
+|;
+
+ $form->{nextsub} = "$form->{vc}_selected";
+ $form->{action} = "$form->{vc}_selected";
+
+ $form->hide_form;
+
+ print qq|
+<input class=submit type=submit name=action value="|.$locale->text('Continue').qq|">
+
+</form>
+|;
+
+ print qq|
+
+</body>
+</html>
+|;
+
+}
+
+
+sub customer_selected {
+
+ if (($rv = $form->get_name(\%myconfig, $form->{vc}, $form->{startdate})) > 1) {
+ &select_name($form->{vc});
+ exit;
+ }
+
+ if ($rv == 1) {
+ $form->{"$form->{vc}"} = $form->{name_list}[0]->{name};
+ $form->{"$form->{vc}_id"} = $form->{name_list}[0]->{id};
+ } else {
+ $msg = ($form->{vc} eq 'customer') ? $locale->text('Customer not on file!') : $locale->text('Vendor not on file!');
+ $form->error($locale->text($msg));
+ }
+
+ &display_form;
+
+}
+
+
+sub sales_order_header {
+
+ for (1 .. $form->{rowcount}) {
+ if ($form->{"ndx_$_"}) {
+ $form->{"$form->{vc}_id_$_"} = $form->{"$form->{vc}_id"};
+ $form->{"$form->{vc}_$_"} = $form->{"$form->{vc}"};
+ }
+ }
+
+}
+
+sub sales_order_footer { &jcitems }
+
+
+sub generate_sales_orders {
+
+ for $i (1 .. $form->{rowcount}) {
+ $form->error($locale->text('Customer missing!')) if ($form->{"checked_$i"} && !$form->{"customer_$i"});
+ }
+
+ for $i (1 .. $form->{rowcount}) {
+ if ($form->{"checked_$i"}) {
+ push @{ $form->{order}{qq|$form->{"customer_id_$i"}|} }, {
+ partnumber => $form->{"partnumber_$i"},
+ id => $form->{"parts_id_$i"},
+ description => $form->{"description_$i"},
+ qty => $form->{"qty_$i"},
+ sellprice => $form->{"sellprice_$i"},
+ projectnumber => qq|--$form->{"project_id_$i"}|,
+ reqdate => $form->{"transdate_$i"},
+ taxaccounts => $form->{"taxaccounts_$i"},
+ jcitems => $form->{"id_$i"},
+ notes => $form->{"notes_$i"},
+ }
+ }
+ }
+
+ $order = new Form;
+ for (keys %{ $form->{order} }) {
+
+ for (qw(type vc defaultcurrency login)) { $order->{$_} = $form->{$_} }
+ for (split / /, $form->{taxaccounts}) { $order->{"${_}_rate"} = $form->{"${_}_rate"} }
+
+ $i = 0;
+ $order->{"$order->{vc}_id"} = $_;
+
+ AA->get_name(\%myconfig, \%$order);
+
+ foreach $ref (@ {$form->{order}{$_} }) {
+ $i++;
+
+ for (keys %$ref) { $order->{"${_}_$i"} = $ref->{$_} }
+
+ $taxaccounts = "";
+ for (split / /, $order->{taxaccounts}) { $taxaccounts .= qq|$_ | if ($_ =~ /$order->{"taxaccounts_$i"}/) }
+ $order->{"taxaccounts_$i"} = $taxaccounts;
+
+ }
+ $order->{rowcount} = $i;
+
+ for (qw(currency)) { $order->{$_} = $form->{$_} }
+
+ $order->{ordnumber} = $order->update_defaults(\%myconfig, 'sonumber');
+ $order->{transdate} = $order->current_date(\%myconfig);
+ $order->{reqdate} = $order->{transdate};
+
+ for (qw(intnotes employee employee_id)) { delete $order->{$_} }
+
+ if (OE->save(\%myconfig, \%$order)) {
+ if (! PE->allocate_projectitems(\%myconfig, \%$order)) {
+ OE->delete(\%myconfig, \%$order, $spool);
+ }
+ } else {
+ $order->error($locale->text('Failed to save order!'));
+ }
+
+ for (keys %$order) { delete $order->{$_} }
+
+ }
+
+ $form->redirect($locale->text('Orders generated!'));
+
+}
+
+
diff --git a/bin/mozilla/pos.pl b/bin/mozilla/pos.pl
new file mode 100755
index 00000000..e86592f7
--- /dev/null
+++ b/bin/mozilla/pos.pl
@@ -0,0 +1,926 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has NOT undergone whitespace cleanup.
+#
+#======================================================================
+#
+# POS
+#
+#=====================================================================
+
+
+1;
+# end
+
+
+sub add {
+
+ $form->{title} = $locale->text('Add POS Invoice');
+
+ $form->{callback} = "$form->{script}?action=$form->{nextsub}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}" unless $form->{callback};
+
+ &invoice_links;
+
+ $form->{type} = "pos_invoice";
+ $form->{format} = "txt";
+ $form->{media} = ($myconfig{printer}) ? $myconfig{printer} : "screen";
+ $form->{rowcount} = 0;
+
+ $form->{readonly} = ($myconfig{acs} =~ /POS--Sale/) ? 1 : 0;
+
+ $ENV{REMOTE_ADDR} =~ /(\d+)\.(\d+)\.(\d+)\.(\d+)/;
+ $form->{till} = $4;
+
+ $form->{partsgroup} = "";
+ for (@{ $form->{all_partsgroup} }) { $form->{partsgroup} .= "$_->{partsgroup}--$_->{translation}\n"; }
+
+ &display_form;
+
+}
+
+
+sub openinvoices {
+
+ $ENV{REMOTE_ADDR} =~ /(\d+)\.(\d+)\.(\d+)\.(\d+)/;
+ $form->{till} = $4;
+
+ $form->{sort} = 'transdate';
+
+ for (qw(open l_invnumber l_transdate l_name l_amount l_curr l_till l_subtotal)) { $form->{$_} = 'Y'; }
+
+ if ($myconfig{role} ne 'user') {
+ $form->{l_employee} = 'Y';
+ }
+
+ $form->{title} = $locale->text('Open');
+ transactions;
+
+}
+
+
+sub edit {
+
+ $form->{title} = $locale->text('Edit POS Invoice');
+
+ $form->{callback} = "$form->{script}?action=$form->{nextsub}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}" unless $form->{callback};
+
+ &invoice_links;
+ &prepare_invoice;
+
+ $form->{type} = "pos_invoice";
+ $form->{format} = "txt";
+ $form->{media} = ($myconfig{printer}) ? $myconfig{printer} : "screen";
+
+ $form->{readonly} = ($myconfig{acs} =~ /POS--Sale/) ? 1 : 0;
+
+ $form->{partsgroup} = "";
+ for (@{ $form->{all_partsgroup} }) { $form->{partsgroup} .= "$_->{partsgroup}--$_->{translation}\n"; }
+
+ &display_form;
+
+}
+
+
+sub form_header {
+
+ # set option selected
+ for (qw(AR currency)) {
+ $form->{"select$_"} =~ s/ selected//;
+ $form->{"select$_"} =~ s/option>\Q$form->{$_}\E/option selected>$form->{$_}/;
+ }
+
+ for (qw(customer department employee)) {
+ $form->{"select$_"} = $form->unescape($form->{"select$_"});
+ $form->{"select$_"} =~ s/ selected//;
+ $form->{"select$_"} =~ s/(<option value="\Q$form->{$_}\E")/$1 selected/;
+ }
+
+ $form->{exchangerate} = $form->format_amount(\%myconfig, $form->{exchangerate});
+
+ $exchangerate = qq|<tr>|;
+ $exchangerate .= qq|
+ <th align=right nowrap>|.$locale->text('Currency').qq|</th>
+ <td><select name=currency>$form->{selectcurrency}</select></td> | if $form->{defaultcurrency};
+ $exchangerate .= qq|
+ <input type=hidden name=selectcurrency value="$form->{selectcurrency}">
+ <input type=hidden name=defaultcurrency value=$form->{defaultcurrency}>
+|;
+
+ if ($form->{defaultcurrency} && $form->{currency} ne $form->{defaultcurrency}) {
+ if ($form->{forex}) {
+ $exchangerate .= qq|<th align=right>|.$locale->text('Exchange Rate').qq|</th><td>$form->{exchangerate}<input type=hidden name=exchangerate value=$form->{exchangerate}></td>|;
+ } else {
+ $exchangerate .= qq|<th align=right>|.$locale->text('Exchange Rate').qq|</th><td><input name=exchangerate size=10 value=$form->{exchangerate}></td>|;
+ }
+ }
+ $exchangerate .= qq|
+<input type=hidden name=forex value=$form->{forex}>
+</tr>
+|;
+
+ if ($form->{selectcustomer}) {
+ $customer = qq|<select name=customer>$form->{selectcustomer}</select>
+ <input type=hidden name="selectcustomer" value="|.
+ $form->escape($form->{selectcustomer},1).qq|">|;
+ } else {
+ $customer = qq|<input name=customer value="$form->{customer}" size=35>|;
+ }
+
+ $department = qq|
+ <tr>
+ <th align="right" nowrap>|.$locale->text('Department').qq|</th>
+ <td colspan=3><select name=department>$form->{selectdepartment}</select>
+ <input type=hidden name=selectdepartment value="|.
+ $form->escape($form->{selectdepartment},1).qq|">
+ </td>
+ </tr>
+| if $form->{selectdepartment};
+
+ $employee = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Salesperson').qq|</th>
+ <td colspan=3><select name=employee>$form->{selectemployee}</select></td>
+ <input type=hidden name=selectemployee value="|.
+ $form->escape($form->{selectemployee},1).qq|">
+ </tr>
+| if $form->{selectemployee};
+
+ if ($form->{change} != $form->{oldchange}) {
+ $form->{creditremaining} -= $form->{oldchange};
+ }
+ $n = ($form->{creditremaining} < 0) ? "0" : "1";
+
+ if ($form->{business}) {
+ $business = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Business').qq|</th>
+ <td>$form->{business}</td>
+ <td width=10></td>
+ <th align=right nowrap>|.$locale->text('Trade Discount').qq|</th>
+ <td>|.$form->format_amount(\%myconfig, $form->{tradediscount} * 100).qq| %</td>
+ </tr>
+|;
+ }
+
+ if ($form->{selectlanguage}) {
+ if ($form->{language_code} ne $form->{oldlanguage_code}) {
+ # rebuild partsgroup
+ $form->get_partsgroup(\%myconfig, { language_code => $form->{language_code}, searchitems => 'nolabor'});
+ $form->{partsgroup} = "";
+ for (@{ $form->{all_partsgroup} }) { $form->{partsgroup} .= "$_->{partsgroup}--$_->{translation}\n"; }
+ $form->{oldlanguage_code} = $form->{language_code};
+ }
+
+
+ $form->{"selectlanguage"} = $form->unescape($form->{"selectlanguage"});
+ $form->{"selectlanguage"} =~ s/ selected//;
+ $form->{"selectlanguage"} =~ s/(<option value="\Q$form->{language_code}\E")/$1 selected/;
+ $lang = qq|
+ <tr>
+ <th align=right>|.$locale->text('Language').qq|</th>
+ <td colspan=3><select name=language_code>$form->{selectlanguage}</select></td>
+ </tr>
+ <input type=hidden name=oldlanguage_code value=$form->{oldlanguage_code}>
+ <input type=hidden name=selectlanguage value="|.
+ $form->escape($form->{selectlanguage},1).qq|">|;
+ }
+
+ $i = $form->{rowcount} + 1;
+ $focus = "partnumber_$i";
+
+ $form->header;
+
+ print qq|
+<body onLoad="document.forms[0].${focus}.focus()" />
+
+<form method=post action="$form->{script}">
+|;
+
+ $form->hide_form(qw(id till type format printed title discount creditlimit creditremaining tradediscount business closedto locked oldtransdate customer_id oldcustomer));
+
+ print qq|
+<input type=hidden name=vc value="customer">
+
+<table width=100%>
+ <tr class=listtop>
+ <th class=listtop>$form->{title}</font></th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Customer').qq|</th>
+ <td colspan=3>$customer</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan=3>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Credit Limit').qq|</th>
+ <td>$form->{creditlimit}</td>
+ <td width=10></td>
+ <th align=right nowrap>|.$locale->text('Remaining').qq|</th>
+ <td class="plus$n">|.$form->format_amount(\%myconfig, $form->{creditremaining}, 0, "0").qq|</font></td>
+ </tr>
+ $business
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Record in').qq|</th>
+ <td colspan=3><select name=AR>$form->{selectAR}</select></td>
+ <input type=hidden name=selectAR value="$form->{selectAR}">
+ </tr>
+ $department
+ </table>
+ </td>
+ <td>
+ <table>
+ $employee
+ $exchangerate
+ $lang
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ </td>
+ </tr>
+|;
+
+ $form->hide_form(qw(taxaccounts duedate invnumber transdate selectcurrency defaultcurrency));
+
+ for (split / /, $form->{taxaccounts}) {
+ $form->hide_form("${_}_rate", "${_}_description", "${_}_taxnumber");
+ }
+
+}
+
+
+
+sub form_footer {
+
+ $form->{invtotal} = $form->{invsubtotal};
+
+ $form->{taxincluded} = ($form->{taxincluded}) ? "checked" : "";
+
+ $taxincluded = "";
+ if ($form->{taxaccounts}) {
+ $taxincluded = qq|
+ <tr height="5"></tr>
+ <tr>
+ <td align=right>
+ <input name=taxincluded class=checkbox type=checkbox value=1 $form->{taxincluded}></td><th align=left>|.$locale->text('Tax Included').qq|</th>
+ </tr>
+|;
+ }
+
+ if (!$form->{taxincluded}) {
+
+ for (split / /, $form->{taxaccounts}) {
+ if ($form->{"${_}_base"}) {
+ $form->{"${_}_total"} = $form->round_amount($form->{"${_}_base"} * $form->{"${_}_rate"}, 2);
+ $form->{invtotal} += $form->{"${_}_total"};
+ $form->{"${_}_total"} = $form->format_amount(\%myconfig, $form->{"${_}_total"}, 2, 0);
+
+ $tax .= qq|
+ <tr>
+ <th align=right>$form->{"${_}_description"}</th>
+ <td align=right>$form->{"${_}_total"}</td>
+ </tr>
+|;
+ }
+ }
+
+ $form->{invsubtotal} = $form->format_amount(\%myconfig, $form->{invsubtotal}, 2, 0);
+
+ $subtotal = qq|
+ <tr>
+ <th align=right>|.$locale->text('Subtotal').qq|</th>
+ <td align=right>$form->{invsubtotal}</td>
+ </tr>
+|;
+ }
+
+ @column_index = qw(paid source memo AR_paid);
+
+ $column_data{paid} = "<th>".$locale->text('Amount')."</th>";
+ $column_data{source} = "<th>".$locale->text('Source')."</th>";
+ $column_data{memo} = "<th>".$locale->text('Memo')."</th>";
+ $column_data{AR_paid} = "<th>&nbsp;</th>";
+
+ print qq|
+ <tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+|;
+
+ for (@column_index) { print "$column_data{$_}\n"; }
+
+ print qq|
+ </tr>
+|;
+
+ $totalpaid = 0;
+
+ $form->{paidaccounts}++ if ($form->{"paid_$form->{paidaccounts}"});
+ for $i (1 .. $form->{paidaccounts}) {
+
+ $form->{"selectAR_paid_$i"} = $form->{selectAR_paid};
+ $form->{"selectAR_paid_$i"} =~ s/option>\Q$form->{"AR_paid_$i"}\E/option selected>$form->{"AR_paid_$i"}/;
+
+ # format amounts
+ $totalpaid += $form->{"paid_$i"};
+ $form->{"paid_$i"} = $form->format_amount(\%myconfig, $form->{"paid_$i"}, 2);
+ $form->{"exchangerate_$i"} = $form->format_amount(\%myconfig, $form->{"exchangerate_$i"});
+
+
+ $column_data{paid} = qq|<td><input name="paid_$i" size=11 value=$form->{"paid_$i"}></td>|;
+ $column_data{source} = qq|<td><input name="source_$i" size=10 value="$form->{"source_$i"}"></td>|;
+ $column_data{memo} = qq|<td><input name="memo_$i" size=10 value="$form->{"memo_$i"}"></td>|;
+ $column_data{AR_paid} = qq|<td><select name="AR_paid_$i">$form->{"selectAR_paid_$i"}</select></td>|;
+
+ print qq|
+ <tr>
+|;
+ for (@column_index) { print "$column_data{$_}\n"; }
+
+ print qq|
+ </tr>
+|;
+
+ $form->hide_form("cleared_$i", "exchangerate_$i", "forex_$i");
+
+ }
+
+ $form->{change} = 0;
+ if ($totalpaid > $form->{invtotal}) {
+ $form->{change} = $totalpaid - $form->{invtotal};
+ }
+ $form->{oldchange} = $form->{change};
+ $form->{change} = $form->format_amount(\%myconfig, $form->{change}, 2, 0);
+ $form->{totalpaid} = $form->format_amount(\%myconfig, $totalpaid, 2);
+
+ $form->{oldinvtotal} = $form->{invtotal};
+ $form->{invtotal} = $form->format_amount(\%myconfig, $form->{invtotal}, 2, 0);
+
+ print qq|
+ <tr>
+ <th align=right>|.$locale->text('Change').qq|</th>
+ <th>$form->{change}</th>
+ </tr>
+ </table>
+ </td>
+ <td align=right>
+ <table>
+ $subtotal
+ $tax
+ <tr>
+ <th align=right>|.$locale->text('Total').qq|</th>
+ <td align=right>$form->{invtotal}</td>
+ </tr>
+ $taxincluded
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+<input type=hidden name=oldtotalpaid value=$totalpaid>
+<input type=hidden name=datepaid value=$form->{transdate}>
+
+<tr>
+ <td>
+|;
+
+ $form->hide_form(qw(paidaccounts selectAR_paid oldinvtotal change oldchange invtotal));
+
+ &print_options;
+
+ print qq|
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+ $transdate = $form->datetonum(\%myconfig, $form->{transdate});
+ $closedto = $form->datetonum(\%myconfig, $form->{closedto});
+
+# type=submit $locale->text('Update')
+# type=submit $locale->text('Print')
+# type=submit $locale->text('Post')
+# type=submit $locale->text('Print and Post')
+# type=submit $locale->text('Delete')
+
+ if (! $form->{readonly}) {
+ %button = ('Update' => { ndx => 1, key => 'U', value => $locale->text('Update') },
+ 'Print' => { ndx => 2, key => 'P', value => $locale->text('Print') },
+ 'Post' => { ndx => 3, key => 'O', value => $locale->text('Post') },
+ 'Print and Post' => { ndx => 4, key => 'R', value => $locale->text('Print and Post') },
+ 'Delete' => { ndx => 5, key => 'D', value => $locale->text('Delete') },
+ );
+
+ if ($transdate > $closedto) {
+
+ if (! $form->{id}) {
+ delete $button{'Delete'};
+ }
+
+ delete $button{'Print and Post'} unless $latex;
+ } else {
+ for ('Print', 'Post', 'Print and Post', 'Delete') { delete $button{$_} }
+ }
+
+ for (sort { $button{$a}->{ndx} <=> $button{$b}->{ndx} } keys %button) { $form->print_button(\%button, $_) }
+
+ print qq|<p>
+ <input type=text size=1 value="B" accesskey="B" title="[Alt-B]">\n|;
+
+ if ($form->{partsgroup}) {
+ $form->{partsgroup} =~ s/\r//g;
+ $form->{partsgroup} = $form->quote($form->{partsgroup});
+
+ $spc = ($form->{path} =~ /lynx/) ? "." : " ";
+ print qq|
+<input type=hidden name=nextsub value=lookup_partsgroup>
+<input type=hidden name=partsgroup value="$form->{partsgroup}">|;
+
+ foreach $item (split /\n/, $form->{partsgroup}) {
+ ($partsgroup, $translation) = split /--/, $item;
+ $item = ($translation) ? $translation : $partsgroup;
+ print qq| <input class=submit type=submit name=action value="$spc$item">\n| if $item;
+ }
+ }
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ $form->hide_form(qw(rowcount callback path login sessionid));
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub post {
+
+ $form->isblank("customer", $locale->text('Customer missing!'));
+
+ # if oldcustomer ne customer redo form
+ $customer = $form->{customer};
+ $customer =~ s/--.*//g;
+ $customer .= "--$form->{customer_id}";
+ if ($customer ne $form->{oldcustomer}) {
+ &update;
+ exit;
+ }
+
+ &validate_items;
+
+ $form->isblank("exchangerate", $locale->text('Exchange rate missing!')) if ($form->{currency} ne $form->{defaultcurrency});
+
+ $paid = 0;
+ for (1 .. $form->{paidaccounts}) { $paid += $form->parse_amount(\%myconfig, $form->{"paid_$_"}); }
+ delete $form->{datepaid} unless $paid;
+
+ $total = $form->parse_amount(\%myconfig, $form->{invtotal});
+
+ # deduct change from first payment
+ $form->{"paid_1"} = $form->format_amount(\%myconfig, $form->parse_amount(\%myconfig, $form->{"paid_1"}) - ($paid - $total), 2) if $paid > $total;
+
+ ($form->{AR}) = split /--/, $form->{AR};
+
+ if (IS->post_invoice(\%myconfig, \%$form)) {
+ $form->redirect($locale->text('Posted!'));
+ } else {
+ $form->error($locale->text('Cannot post transaction!'));
+ }
+
+}
+
+
+sub display_row {
+ my $numrows = shift;
+
+ @column_index = qw(partnumber description partsgroup qty unit sellprice discount linetotal);
+
+ $form->{invsubtotal} = 0;
+
+ for (split / /, $form->{taxaccounts}) { $form->{"${_}_base"} = 0; }
+
+ $column_data{partnumber} = qq|<th class=listheading nowrap>|.$locale->text('Number').qq|</th>|;
+ $column_data{description} = qq|<th class=listheading nowrap>|.$locale->text('Description').qq|</th>|;
+ $column_data{qty} = qq|<th class=listheading nowrap>|.$locale->text('Qty').qq|</th>|;
+ $column_data{unit} = qq|<th class=listheading nowrap>|.$locale->text('Unit').qq|</th>|;
+ $column_data{sellprice} = qq|<th class=listheading nowrap>|.$locale->text('Price').qq|</th>|;
+ $column_data{linetotal} = qq|<th class=listheading nowrap>|.$locale->text('Extended').qq|</th>|;
+ $column_data{discount} = qq|<th class=listheading nowrap>%</th>|;
+
+ print qq|
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>|;
+
+ for (@column_index) { print "\n$column_data{$_}"; };
+
+ print qq|
+ </tr>
+|;
+
+ $exchangerate = $form->parse_amount(\%myconfig, $form->{exchangerate});
+ $exchangerate = ($exchangerate) ? $exchangerate : 1;
+
+ for $i (1 .. $numrows) {
+ # undo formatting
+ for (qw(qty discount sellprice)) { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}); }
+
+ ($dec) = ($form->{"sellprice_$i"} =~ /\.(\d+)/);
+ $dec = length $dec;
+ $decimalplaces = ($dec > 2) ? $dec : 2;
+
+ if (($form->{"qty_$i"} != $form->{"oldqty_$i"}) || ($form->{currency} ne $form->{oldcurrency})) {
+ # check for a pricematrix
+ @a = split / /, $form->{"pricematrix_$i"};
+ if (scalar @a) {
+ foreach $item (@a) {
+ ($q, $p) = split /:/, $item;
+ if (($p * 1) && ($form->{"qty_$i"} >= ($q * 1))) {
+ ($dec) = ($p =~ /\.(\d+)/);
+ $dec = length $dec;
+ $decimalplaces = ($dec > 2) ? $dec : 2;
+ $form->{"sellprice_$i"} = $form->round_amount($p / $exchangerate, $decimalplaces);
+ }
+ }
+ }
+ }
+
+ if ($i < $numrows) {
+ $column_data{discount} = qq|<td align=right><input name="discount_$i" size=3 value=|.$form->format_amount(\%myconfig, $form->{"discount_$i"}).qq|></td>|;
+ } else {
+ $column_data{discount} = qq|<td></td>|;
+ }
+
+ $discount = $form->round_amount($form->{"sellprice_$i"} * $form->{"discount_$i"}/100, $decimalplaces);
+ $linetotal = $form->round_amount($form->{"sellprice_$i"} - $discount, $decimalplaces);
+ $linetotal = $form->round_amount($linetotal * $form->{"qty_$i"}, 2);
+
+ for (qw(partnumber sku description partsgroup unit)) { $form->{"${_}_$i"} = $form->quote($form->{"${_}_$i"}); }
+
+ $column_data{partnumber} = qq|<td><input name="partnumber_$i" size=20 value="$form->{"partnumber_$i"}" accesskey="$i" title="[Alt-$i]"></td>|;
+
+ if (($rows = $form->numtextrows($form->{"description_$i"}, 40, 6)) > 1) {
+ $column_data{description} = qq|<td><textarea name="description_$i" rows=$rows cols=46 wrap=soft>$form->{"description_$i"}</textarea></td>|;
+ } else {
+ $column_data{description} = qq|<td><input name="description_$i" size=48 value="$form->{"description_$i"}"></td>|;
+ }
+
+ $column_data{qty} = qq|<td align=right><input name="qty_$i" size=5 value=|.$form->format_amount(\%myconfig, $form->{"qty_$i"}).qq|></td>|;
+ $column_data{unit} = qq|<td>$form->{"unit_$i"}</td>|;
+ $column_data{sellprice} = qq|<td align=right><input name="sellprice_$i" size=9 value=|.$form->format_amount(\%myconfig, $form->{"sellprice_$i"}, $decimalplaces).qq|></td>|;
+ $column_data{linetotal} = qq|<td align=right>|.$form->format_amount(\%myconfig, $linetotal, 2).qq|</td>|;
+
+ print qq|
+ <tr valign=top>|;
+
+ for (@column_index) { print "\n$column_data{$_}"; }
+
+ print qq|
+ </tr>
+|;
+
+ $form->{"oldqty_$i"} = $form->{"qty_$i"};
+
+ for (qw(id listprice lastcost taxaccounts pricematrix oldqty sku partsgroup unit inventory_accno_id income_accno_id expense_accno_id)) { $form->hide_form("${_}_$i") }
+
+ for (split / /, $form->{"taxaccounts_$i"}) { $form->{"${_}_base"} += $linetotal; }
+
+ $form->{invsubtotal} += $linetotal;
+ }
+
+ print qq|
+ </table>
+ </td>
+ </tr>
+
+<input type=hidden name=oldcurrency value=$form->{currency}>
+
+|;
+
+}
+
+
+sub print {
+
+ if (!$form->{invnumber}) {
+ $form->{invnumber} = $form->update_defaults(\%myconfig, "sinumber");
+ if ($form->{media} eq 'screen') {
+ &update;
+ exit;
+ }
+ }
+
+ $old_form = new Form;
+ for (keys %$form) { $old_form->{$_} = $form->{$_}; }
+
+ for (qw(employee department)) { $form->{$_} =~ s/--.*//g; }
+ $form->{invdate} = $form->{transdate};
+ $form->{dateprinted} = scalar localtime;
+
+ &print_form($old_form);
+
+}
+
+
+sub print_form {
+ my $old_form = shift;
+
+ # if oldcustomer ne customer redo form
+ $customer = $form->{customer};
+ $customer =~ s/--.*//g;
+ $customer .= "--$form->{customer_id}";
+ if ($customer ne $form->{oldcustomer}) {
+ &update;
+ exit;
+ }
+
+ &validate_items;
+
+ &{ "$form->{vc}_details" };
+
+ @a = ();
+ for (1 .. $form->{rowcount}) { push @a, ("partnumber_$_", "description_$_"); }
+ for (split / /, $form->{taxaccounts}) { push @a, "${_}_description"; }
+ $form->format_string(@a);
+
+ # format payment dates
+ for (1 .. $form->{paidaccounts}) { $form->{"datepaid_$_"} = $locale->date(\%myconfig, $form->{"datepaid_$_"}); }
+
+ IS->invoice_details(\%myconfig, \%$form);
+
+ if ($form->parse_amount(\%myconfig, $form->{total}) <= 0) {
+ $form->{total} = 0;
+ } else {
+ $form->{change} = 0;
+ }
+
+ for (qw(company address tel fax businessnumber)) { $form->{$_} = $myconfig{$_}; }
+ $form->{username} = $myconfig{name};
+
+ $form->{address} =~ s/\\n/\n/g;
+ push @a, qw(company address tel fax businessnumber username);
+ $form->format_string(@a);
+
+ $form->{templates} = "$myconfig{templates}";
+ $form->{IN} = "$form->{type}.$form->{format}";
+
+ if ($form->{format} =~ /(postscript|pdf)/) {
+ $form->{IN} =~ s/$&$/tex/;
+ }
+
+ if ($form->{media} ne 'screen') {
+ $form->{OUT} = "| $printer{$form->{media}}";
+ }
+
+ $form->{discount} = $form->format_amount(\%myconfig, $form->{discount} * 100);
+
+ $form->{rowcount}--;
+ $form->{pre} = "<body bgcolor=#ffffff>\n<pre>";
+ delete $form->{stylesheet};
+
+ $form->parse_template(\%myconfig, $userspath);
+
+ if ($form->{printed} !~ /$form->{formname}/) {
+ $form->{printed} .= " $form->{formname}";
+ $form->{printed} =~ s/^ //;
+
+ $form->update_status(\%myconfig);
+ }
+ $old_form->{printed} = $form->{printed};
+
+ # if we got back here restore the previous form
+ if ($form->{media} ne 'screen') {
+ # restore and display form
+ for (keys %$old_form) { $form->{$_} = $old_form->{$_}; }
+ $form->{exchangerate} = $form->parse_amount(\%myconfig, $form->{exchangerate});
+
+ for $i (1 .. $form->{paidaccounts}) {
+ for (qw(paid exchangerate)) { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}); }
+ }
+
+ delete $form->{pre};
+
+ if (! $form->{printandpost}) {
+ $form->{rowcount}--;
+ &display_form;
+ }
+ }
+
+}
+
+
+sub print_and_post {
+
+ $form->error($locale->text('Select a Printer!')) if ($form->{media} eq 'screen');
+ $form->{printandpost} = 1;
+ &print;
+ &post;
+
+}
+
+sub lookup_partsgroup {
+
+ $form->{action} =~ s/\r//;
+ $form->{action} = substr($form->{action}, 1);
+
+ if ($form->{language_code}) {
+ # get english
+ foreach $item (split /\n/, $form->{partsgroup}) {
+ if ($item =~ /$form->{action}/) {
+ ($partsgroup, $translation) = split /--/, $item;
+ $form->{action} = $partsgroup;
+ last;
+ }
+ }
+ }
+
+ $form->{"partsgroup_$form->{rowcount}"} = $form->{action};
+
+ &update;
+
+}
+
+
+
+sub print_options {
+
+ $form->{PD}{$form->{type}} = "checked";
+
+ print qq|
+<input type=hidden name=format value=$form->{format}>
+<input type=hidden name=formname value=$form->{type}>
+
+<table width=100%>
+ <tr>
+|;
+
+
+ $media = qq|
+ <td><input class=radio type=radio name=media value="screen"></td>
+ <td>|.$locale->text('Screen').qq|</td>|;
+
+ if (%printer) {
+ for (keys %printer) {
+ $media .= qq|
+ <td><input class=radio type=radio name=media value="$_"></td>
+ <td nowrap>$_</td>
+|;
+ }
+ }
+
+ $media =~ s/(value="\Q$form->{media}\E")/$1 checked/;
+
+ print qq|
+ $media
+
+ <td width=99%>&nbsp;</td>|;
+
+ if ($form->{printed} =~ /$form->{type}/) {
+ print qq|
+ <th>\||.$locale->text('Printed').qq|\|</th>|;
+ }
+
+ print qq|
+ </tr>
+</table>
+|;
+
+}
+
+
+sub receipts {
+
+ $form->{title} = $locale->text('Receipts');
+
+ $form->{db} = 'ar';
+ RP->paymentaccounts(\%myconfig, \%$form);
+
+ $paymentaccounts = "";
+ for (@{ $form->{PR} } ) { $paymentaccounts .= "$_->{accno} "; }
+
+ if (@{ $form->{all_years} }) {
+ # accounting years
+ $form->{selectaccountingyear} = "<option>\n";
+ for (@{ $form->{all_years} }) { $form->{selectaccountingyear} .= qq|<option>$_\n|; }
+ $form->{selectaccountingmonth} = "<option>\n";
+ for (sort keys %{ $form->{all_month} }) { $form->{selectaccountingmonth} .= qq|<option value=$_>|.$locale->text($form->{all_month}{$_}).qq|\n|; }
+
+ $selectfrom = qq|
+ <tr>
+ <th align=right>|.$locale->text('Period').qq|</th>
+ <td colspan=3>
+ <select name=month>$form->{selectaccountingmonth}</select>
+ <select name=year>$form->{selectaccountingyear}</select>
+ <input name=interval class=radio type=radio value=0 checked>&nbsp;|.$locale->text('Current').qq|
+ <input name=interval class=radio type=radio value=1>&nbsp;|.$locale->text('Month').qq|
+ <input name=interval class=radio type=radio value=3>&nbsp;|.$locale->text('Quarter').qq|
+ <input name=interval class=radio type=radio value=12>&nbsp;|.$locale->text('Year').qq|
+ </td>
+ </tr>
+|;
+ }
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=title value="$form->{title}">
+<input type=hidden name=paymentaccounts value="$paymentaccounts">
+
+<input type=hidden name=till value=1>
+<input type=hidden name=subtotal value=1>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+
+ <input type=hidden name=nextsub value=list_payments>
+
+ <tr>
+ <th align=right>|.$locale->text('From').qq|</th>
+ <td><input name=fromdate size=11 title="$myconfig{dateformat}" value=$form->{fromdate}></td>
+ <th align=right>|.$locale->text('To').qq|</th>
+ <td><input name=todate size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+ $selectfrom
+ <input type=hidden name=sort value=transdate>
+ <input type=hidden name=db value=$form->{db}>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+<input type=hidden name=path value=$form->{path}>
+<input type=hidden name=login value=$form->{login}>
+<input type=hidden name=sessionid value=$form->{sessionid}>
+
+<input type=submit class=submit name=action value="|.$locale->text('Continue').qq|">
+|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
diff --git a/bin/mozilla/ps.pl b/bin/mozilla/ps.pl
new file mode 100755
index 00000000..abda8e8f
--- /dev/null
+++ b/bin/mozilla/ps.pl
@@ -0,0 +1,34 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has NOT undergone whitespace cleanup.
+#
+#======================================================================
+#
+# point of sale script
+#
+#######################################################################
+
+use LedgerSMB::AA;
+use LedgerSMB::IS;
+use LedgerSMB::RP;
+
+require "$form->{path}/ar.pl";
+require "$form->{path}/is.pl";
+require "$form->{path}/rp.pl";
+require "$form->{path}/pos.pl";
+
+# customizations
+if (-f "$form->{path}/custom_pos.pl") {
+ eval { require "$form->{path}/custom_pos.pl"; };
+}
+if (-f "$form->{path}/$form->{login}_pos.pl") {
+ eval { require "$form->{path}/$form->{login}_pos.pl"; };
+}
+
+1;
+# end
diff --git a/bin/mozilla/pw.pl b/bin/mozilla/pw.pl
new file mode 100755
index 00000000..1b219c8e
--- /dev/null
+++ b/bin/mozilla/pw.pl
@@ -0,0 +1,62 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has NOT undergone whitespace cleanup.
+#
+#======================================================================
+
+
+1;
+# end of main
+
+
+sub getpassword {
+ my ($s) = @_;
+
+ $form->{endsession} = 1;
+ $form->header;
+
+ $sessionexpired = qq|<b><font color=red><blink>|.$locale->text('Session expired!').qq|</blink></font></b><p>| if $s;
+
+ print qq|
+<script language="JavaScript" type="text/javascript">
+<!--
+function sf(){
+ document.pw.password.focus();
+}
+// End -->
+</script>
+
+<body onload="sf()">
+
+ $sessionexpired
+
+<form method=post action=$form->{script} name=pw>
+
+<table>
+ <tr>
+ <th align=right>|.$locale->text('Password').qq|</th>
+ <td><input type=password name=password size=30></td>
+ <td><input type=submit value="|.$locale->text('Continue').qq|"></td>
+ </tr>
+</table>
+
+|;
+
+ for (qw(script endsession password)) { delete $form->{$_} }
+ $form->hide_form;
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
diff --git a/bin/mozilla/rc.pl b/bin/mozilla/rc.pl
new file mode 100755
index 00000000..60dfc4a3
--- /dev/null
+++ b/bin/mozilla/rc.pl
@@ -0,0 +1,491 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has NOT undergone whitespace cleanup.
+#
+#======================================================================
+#
+# Account reconciliation module
+#
+#======================================================================
+
+use LedgerSMB::RC;
+
+1;
+# end of main
+
+# this is for our long dates
+# $locale->text('January')
+# $locale->text('February')
+# $locale->text('March')
+# $locale->text('April')
+# $locale->text('May ')
+# $locale->text('June')
+# $locale->text('July')
+# $locale->text('August')
+# $locale->text('September')
+# $locale->text('October')
+# $locale->text('November')
+# $locale->text('December')
+
+# this is for our short month
+# $locale->text('Jan')
+# $locale->text('Feb')
+# $locale->text('Mar')
+# $locale->text('Apr')
+# $locale->text('May')
+# $locale->text('Jun')
+# $locale->text('Jul')
+# $locale->text('Aug')
+# $locale->text('Sep')
+# $locale->text('Oct')
+# $locale->text('Nov')
+# $locale->text('Dec')
+
+
+sub reconciliation {
+
+ RC->paymentaccounts(\%myconfig, \%$form);
+
+ $selection = "";
+ for (@{ $form->{PR} }) { $selection .= "<option>$_->{accno}--$_->{description}\n" }
+
+ $form->{title} = $locale->text('Reconciliation');
+
+ if ($form->{report}) {
+ $form->{title} = $locale->text('Reconciliation Report');
+ $cleared = qq|
+ <input type=hidden name=report value=1>
+ <tr>
+ <td align=right><input type=checkbox class=checkbox name=outstanding value=1 checked></td>
+ <td>|.$locale->text('Outstanding').qq|</td>
+ <td align=right><input type=checkbox class=checkbox name=cleared value=1></td>
+ <td>|.$locale->text('Cleared').qq|</td>
+ </tr>
+|;
+
+ }
+
+ if (@{ $form->{all_years} }) {
+ # accounting years
+ $form->{selectaccountingyear} = "<option>\n";
+ for (@{ $form->{all_years} }) { $form->{selectaccountingyear} .= qq|<option>$_\n| }
+ $form->{selectaccountingmonth} = "<option>\n";
+ for (sort keys %{ $form->{all_month} }) { $form->{selectaccountingmonth} .= qq|<option value=$_>|.$locale->text($form->{all_month}{$_}).qq|\n| }
+
+ $selectfrom = qq|
+ <tr>
+ <th align=right>|.$locale->text('Period').qq|</th>
+ <td colspan=3>
+ <select name=month>$form->{selectaccountingmonth}</select>
+ <select name=year>$form->{selectaccountingyear}</select>
+ <input name=interval class=radio type=radio value=0 checked>&nbsp;|.$locale->text('Current').qq|
+ <input name=interval class=radio type=radio value=1>&nbsp;|.$locale->text('Month').qq|
+ <input name=interval class=radio type=radio value=3>&nbsp;|.$locale->text('Quarter').qq|
+ <input name=interval class=radio type=radio value=12>&nbsp;|.$locale->text('Year').qq|
+ </td>
+ </tr>
+|;
+ }
+
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Account').qq|</th>
+ <td colspan=3><select name=accno>$selection</select></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('From').qq|</th>
+ <td colspan=3><input name=fromdate size=11 title="$myconfig{dateformat}"> <b>|.$locale->text('To').qq|</b> <input name=todate size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+ $selectfrom
+ $cleared
+ <tr>
+ <td></td>
+ <td colspan=3><input type=radio style=radio name=summary value=1 checked> |.$locale->text('Summary').qq|
+ <input type=radio style=radio name=summary value=0> |.$locale->text('Detail').qq|</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan=3><input type=checkbox class=checkbox name=fx_transaction value=1 checked> |.$locale->text('Include Exchange Rate Difference').qq|</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+<input type=hidden name=nextsub value=get_payments>
+|;
+
+ $form->hide_form(qw(path login sessionid));
+
+ print qq|
+<input type=submit class=submit name=action value="|.$locale->text('Continue').qq|">
+
+</form>
+|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+</body>
+</html>
+|;
+
+}
+
+
+sub continue { &{ $form->{nextsub} } };
+
+
+sub get_payments {
+
+ ($form->{accno}, $form->{account}) = split /--/, $form->{accno};
+
+ RC->payment_transactions(\%myconfig, \%$form);
+
+ $ml = ($form->{category} eq 'A') ? -1 : 1;
+ $form->{statementbalance} = $form->{endingbalance} * $ml;
+ if (! $form->{fx_transaction}) {
+ $form->{statementbalance} = ($form->{endingbalance} - $form->{fx_endingbalance}) * $ml;
+ }
+
+ $form->{statementbalance} = $form->format_amount(\%myconfig, $form->{statementbalance}, 2, 0);
+
+ &display_form;
+
+}
+
+
+sub display_form {
+
+ if ($form->{report}) {
+ @column_index = qw(transdate source name cleared debit credit);
+ } else {
+ @column_index = qw(transdate source name cleared debit credit balance);
+ }
+
+ $column_header{cleared} = qq|<th>|.$locale->text('R').qq|</th>|;
+ $column_header{source} = "<th class=listheading>".$locale->text('Source')."</a></th>";
+ $column_header{name} = "<th class=listheading>".$locale->text('Description')."</a></th>";
+ $column_header{transdate} = "<th class=listheading>".$locale->text('Date')."</a></th>";
+
+ $column_header{debit} = "<th class=listheading>".$locale->text('Debit')."</a></th>";
+ $column_header{credit} = "<th class=listheading>".$locale->text('Credit')."</a></th>";
+ $column_header{balance} = "<th class=listheading>".$locale->text('Balance')."</a></th>";
+
+ if ($form->{fromdate}) {
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('From')."&nbsp;".$locale->date(\%myconfig, $form->{fromdate}, 1);
+ }
+ if ($form->{todate}) {
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('To')."&nbsp;".$locale->date(\%myconfig, $form->{todate}, 1);
+ }
+
+ $form->{title} = "$form->{accno}--$form->{account}";
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$option</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "\n$column_header{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ $ml = ($form->{category} eq 'A') ? -1 : 1;
+ $form->{beginningbalance} *= $ml;
+ $form->{fx_balance} *= $ml;
+
+ if (! $form->{fx_transaction}) {
+ $form->{beginningbalance} -= $form->{fx_balance};
+ }
+ $balance = $form->{beginningbalance};
+
+ $i = 0;
+ $j = 0;
+
+ for (qw(cleared transdate source debit credit)) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ if (! $form->{report}) {
+ $column_data{name} = qq|<td>|.$locale->text('Beginning Balance').qq|</td>|;
+ $column_data{balance} = "<td align=right>".$form->format_amount(\%myconfig, $balance, 2, 0)."</td>";
+ print qq|
+ <tr class=listrow$j>
+|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+ }
+
+
+ foreach $ref (@{ $form->{PR} }) {
+
+ $i++;
+
+ if (! $form->{fx_transaction}) {
+ next if $ref->{fx_transaction};
+ }
+
+ $checked = ($ref->{cleared}) ? "checked" : "";
+
+ %temp = ();
+ if (!$ref->{fx_transaction}) {
+ for (qw(name source transdate)) { $temp{$_} = $ref->{$_} }
+ }
+
+ $column_data{name} = "<td>";
+ for (@{ $temp{name} }) { $column_data{name} .= "$_<br>" }
+ $column_data{name} .= "</td>";
+ $column_data{source} = qq|<td>$temp{source}&nbsp;</td>
+ <input type=hidden name="id_$i" value=$ref->{id}>|;
+
+ $column_data{debit} = "<td>&nbsp;</td>";
+ $column_data{credit} = "<td>&nbsp;</td>";
+
+ $balance += $ref->{amount} * $ml;
+
+ if ($ref->{amount} < 0) {
+
+ $totaldebits += $ref->{amount} * -1;
+
+ $column_data{debit} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{amount} * -1, 2, "&nbsp;")."</td>";
+
+ } else {
+
+ $totalcredits += $ref->{amount};
+
+ $column_data{credit} = "<td align=right>".$form->format_amount(\%myconfig, $ref->{amount}, 2, "&nbsp;")."</td>";
+
+ }
+
+ $column_data{balance} = "<td align=right>".$form->format_amount(\%myconfig, $balance, 2, 0)."</td>";
+
+ if ($ref->{fx_transaction}) {
+
+ $column_data{cleared} = ($clearfx) ? qq|<td align=center>*</td>| : qq|<td>&nbsp;</td>|;
+ $cleared += $ref->{amount} * $ml if $clearfx;
+
+ } else {
+
+ if ($form->{report}) {
+
+ if ($ref->{cleared}) {
+ $column_data{cleared} = qq|<td align=center>*</td>|;
+ $clearfx = 1;
+ } else {
+ $column_data{cleared} = qq|<td>&nbsp;</td>|;
+ $clearfx = 0;
+ }
+
+ } else {
+
+ if ($ref->{oldcleared}) {
+ $cleared += $ref->{amount} * $ml;
+ $clearfx = 1;
+ $column_data{cleared} = qq|<td align=center>*</td>
+ <input type=hidden name="cleared_$i" value=$ref->{cleared}>
+ <input type=hidden name="oldcleared_$i" value=$ref->{oldcleared}>
+ <input type=hidden name="source_$i" value="$ref->{source}">|;
+ } else {
+ $cleared += $ref->{amount} * $ml if $checked;
+ $clearfx = ($checked) ? 1 : 0;
+ $column_data{cleared} = qq|<td align=center><input name="cleared_$i" type=checkbox class=checkbox value=1 $checked>
+ <input type=hidden name="source_$i" value="$ref->{source}"></td>|;
+ }
+
+ }
+ }
+
+ $column_data{transdate} = qq|<td>$temp{transdate}&nbsp;</td>
+ <input type=hidden name="transdate_$i" value=$ref->{transdate}>|;
+
+ $j++; $j %= 2;
+ print qq|
+ <tr class=listrow$j>
+|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ }
+
+ $form->{rowcount} = $i;
+
+ # print totals
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $column_data{debit} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totaldebits, 2, "&nbsp;")."</th>";
+ $column_data{credit} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totalcredits, 2, "&nbsp;")."</th>";
+
+ print qq|
+ <tr class=listtotal>
+|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ $form->{statementbalance} = $form->parse_amount(\%myconfig, $form->{statementbalance});
+ $difference = $form->format_amount(\%myconfig, $form->{beginningbalance} + $cleared - $form->{statementbalance}, 2, 0);
+ $form->{statementbalance} = $form->format_amount(\%myconfig, $form->{statementbalance}, 2, 0);
+
+ print qq|
+ </tr>
+ </table>
+ </td>
+ </tr>
+|;
+
+
+ if ($form->{report}) {
+
+ print qq|
+ </tr>
+ </table>
+|;
+
+ } else {
+
+ print qq|
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Statement Balance').qq|</th>
+ <td width=10%></td>
+ <td align=right><input name=statementbalance size=11 value=$form->{statementbalance}></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Difference').qq|</th>
+ <td width=10%></td>
+ <td align=right><input name=null size=11 value=$difference></td>
+ <input type=hidden name=difference value=$difference>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+ $form->hide_form(qw(fx_transaction summary rowcount accno account fromdate todate path login sessionid));
+
+ print qq|
+<br>
+<input type=submit class=submit name=action value="|.$locale->text('Update').qq|">
+<input type=submit class=submit name=action value="|.$locale->text('Select all').qq|">
+<input type=submit class=submit name=action value="|.$locale->text('Done').qq|">|;
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub update {
+
+ RC->payment_transactions(\%myconfig, \%$form);
+
+ $i = 0;
+ foreach $ref (@{ $form->{PR} }) {
+ $i++;
+ $ref->{cleared} = ($form->{"cleared_$i"}) ? 1 : 0;
+ }
+
+ &display_form;
+
+}
+
+
+sub select_all {
+
+ RC->payment_transactions(\%myconfig, \%$form);
+
+ for (@{ $form->{PR} }) { $_->{cleared} = 1 }
+
+ &display_form;
+
+}
+
+
+sub done {
+
+ $form->{callback} = "$form->{script}?path=$form->{path}&action=reconciliation&login=$form->{login}&sessionid=$form->{sessionid}";
+
+ $form->error($locale->text('Out of balance!')) if ($form->{difference} *= 1);
+
+ RC->reconcile(\%myconfig, \%$form);
+ $form->redirect;
+
+}
+
+
diff --git a/bin/mozilla/rp.pl b/bin/mozilla/rp.pl
new file mode 100755
index 00000000..c4e6eec9
--- /dev/null
+++ b/bin/mozilla/rp.pl
@@ -0,0 +1,2338 @@
+#=====================================================================
+# LedgerSMB
+# Small Medium Business Accounting software
+#
+# See COPYRIGHT file for copyright information
+#======================================================================
+#
+# This file has NOT undergone whitespace cleanup.
+#
+#======================================================================
+#
+# module for preparing Income Statement and Balance Sheet
+#
+#======================================================================
+
+require "$form->{path}/arap.pl";
+
+use LedgerSMB::PE;
+use LedgerSMB::RP;
+
+1;
+# end of main
+
+# this is for our long dates
+# $locale->text('January')
+# $locale->text('February')
+# $locale->text('March')
+# $locale->text('April')
+# $locale->text('May ')
+# $locale->text('June')
+# $locale->text('July')
+# $locale->text('August')
+# $locale->text('September')
+# $locale->text('October')
+# $locale->text('November')
+# $locale->text('December')
+
+# this is for our short month
+# $locale->text('Jan')
+# $locale->text('Feb')
+# $locale->text('Mar')
+# $locale->text('Apr')
+# $locale->text('May')
+# $locale->text('Jun')
+# $locale->text('Jul')
+# $locale->text('Aug')
+# $locale->text('Sep')
+# $locale->text('Oct')
+# $locale->text('Nov')
+# $locale->text('Dec')
+
+# $locale->text('Balance Sheet')
+# $locale->text('Income Statement')
+# $locale->text('Trial Balance')
+# $locale->text('AR Aging')
+# $locale->text('AP Aging')
+# $locale->text('Tax collected')
+# $locale->text('Tax paid')
+# $locale->text('Receipts')
+# $locale->text('Payments')
+# $locale->text('Project Transactions')
+# $locale->text('Non-taxable Sales')
+# $locale->text('Non-taxable Purchases')
+
+
+sub report {
+
+ %report = ( balance_sheet => { title => 'Balance Sheet' },
+ income_statement => { title => 'Income Statement' },
+ trial_balance => { title => 'Trial Balance' },
+ ar_aging => { title => 'AR Aging', vc => 'customer' },
+ ap_aging => { title => 'AP Aging', vc => 'vendor' },
+ tax_collected => { title => 'Tax collected', vc => 'customer' },
+ tax_paid => { title => 'Tax paid' },
+ nontaxable_sales => { title => 'Non-taxable Sales', vc => 'customer' },
+ nontaxable_purchases => { title => 'Non-taxable Purchases' },
+ receipts => { title => 'Receipts', vc => 'customer' },
+ payments => { title => 'Payments' },
+ projects => { title => 'Project Transactions' },
+ );
+
+ $form->{title} = $locale->text($report{$form->{report}}->{title});
+
+ $gifi = qq|
+<tr>
+ <th align=right>|.$locale->text('Accounts').qq|</th>
+ <td><input name=accounttype class=radio type=radio value=standard checked> |.$locale->text('Standard').qq|
+
+ <input name=accounttype class=radio type=radio value=gifi> |.$locale->text('GIFI').qq|
+ </td>
+</tr>
+|;
+
+
+ # get departments
+ $form->all_departments(\%myconfig, undef, $report{$form->{report}}->{vc});
+ if (@{ $form->{all_department} }) {
+ $form->{selectdepartment} = "<option>\n";
+
+ for (@{ $form->{all_department} }) { $form->{selectdepartment} .= qq|<option value="$_->{description}--$_->{id}">$_->{description}\n| }
+ }
+
+ $department = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Department').qq|</th>
+ <td colspan=3><select name=department>$form->{selectdepartment}</select></td>
+ </tr>
+| if $form->{selectdepartment};
+
+ if (@{ $form->{all_years} }) {
+ # accounting years
+ $form->{selectaccountingyear} = "<option>\n";
+ for (@{ $form->{all_years} }) { $form->{selectaccountingyear} .= qq|<option>$_\n| }
+
+ $form->{selectaccountingmonth} = "<option>\n";
+ for (sort keys %{ $form->{all_month} }) { $form->{selectaccountingmonth} .= qq|<option value=$_>|.$locale->text($form->{all_month}{$_}).qq|\n| }
+
+ $selectfrom = qq|
+ <tr>
+ <th align=right>|.$locale->text('Period').qq|</th>
+ <td colspan=3>
+ <select name=month>$form->{selectaccountingmonth}</select>
+ <select name=year>$form->{selectaccountingyear}</select>
+ <input name=interval class=radio type=radio value=0 checked>&nbsp;|.$locale->text('Current').qq|
+ <input name=interval class=radio type=radio value=1>&nbsp;|.$locale->text('Month').qq|
+ <input name=interval class=radio type=radio value=3>&nbsp;|.$locale->text('Quarter').qq|
+ <input name=interval class=radio type=radio value=12>&nbsp;|.$locale->text('Year').qq|
+ </td>
+ </tr>
+|;
+
+ $selectto = qq|
+ <tr>
+ <th align=right></th>
+ <td>
+ <select name=month>$form->{selectaccountingmonth}</select>
+ <select name=year>$form->{selectaccountingyear}</select>
+ </td>
+ </tr>
+|;
+ }
+
+
+ $summary = qq|
+ <tr>
+ <th></th>
+ <td><input name=summary type=radio class=radio value=1 checked> |.$locale->text('Summary').qq|
+ <input name=summary type=radio class=radio value=0> |.$locale->text('Detail').qq|
+ </td>
+ </tr>
+|;
+
+ # get projects
+ $form->all_projects(\%myconfig);
+ if (@{ $form->{all_project} }) {
+ $form->{selectproject} = "<option>\n";
+ for (@{ $form->{all_project} }) { $form->{selectproject} .= qq|<option value="$_->{projectnumber}--$_->{id}">$_->{projectnumber}\n| }
+
+ $project = qq|
+ <tr>
+ <th align=right nowrap>|.$locale->text('Project').qq|</th>
+ <td colspan=3><select name=projectnumber>$form->{selectproject}</select></td>
+ </tr>|;
+
+ }
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<input type=hidden name=title value="$form->{title}">
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ $department
+|;
+
+ if ($form->{report} eq "projects") {
+ print qq|
+ $project
+ <input type=hidden name=nextsub value=generate_projects>
+ <tr>
+ <th align=right>|.$locale->text('From').qq|</th>
+ <td><input name=fromdate size=11 title="$myconfig{dateformat}" value=$form->{fromdate}></td>
+ <th align=right>|.$locale->text('To').qq|</th>
+ <td><input name=todate size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+ $selectfrom
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Include in Report').qq|</th>
+ <td><input name=l_heading class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Heading').qq|
+ <input name=l_subtotal class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Subtotal').qq|</td>
+ </tr>
+|;
+ }
+
+ if ($form->{report} eq "income_statement") {
+ print qq|
+ $project
+ <input type=hidden name=nextsub value=generate_income_statement>
+ <tr>
+ <th align=right>|.$locale->text('From').qq|</th>
+ <td><input name=fromdate size=11 title="$myconfig{dateformat}" value=$form->{fromdate}></td>
+ <th align=right>|.$locale->text('To').qq|</th>
+ <td><input name=todate size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+|;
+
+ if ($selectfrom) {
+ print qq|
+ <tr>
+ <th align=right>|.$locale->text('Period').qq|</th>
+ <td colspan=3>
+ <select name=frommonth>$form->{selectaccountingmonth}</select>
+ <select name=fromyear>$form->{selectaccountingyear}</select>
+ <input name=interval class=radio type=radio value=0 checked>&nbsp;|.$locale->text('Current').qq|
+ <input name=interval class=radio type=radio value=1>&nbsp;|.$locale->text('Month').qq|
+ <input name=interval class=radio type=radio value=3>&nbsp;|.$locale->text('Quarter').qq|
+ <input name=interval class=radio type=radio value=12>&nbsp;|.$locale->text('Year').qq|
+ </td>
+ </tr>
+|;
+ }
+
+ print qq|
+
+ <tr>
+ <th align=right>|.$locale->text('Compare to').qq|</th>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('From').qq|</th>
+ <td><input name=comparefromdate size=11 title="$myconfig{dateformat}"></td>
+ <th align=right>|.$locale->text('To').qq|</th>
+ <td><input name=comparetodate size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+|;
+
+ if ($selectto) {
+ print qq|
+ <tr>
+ <th align=right>|.$locale->text('Period').qq|</th>
+ <td>
+ <select name=comparemonth>$form->{selectaccountingmonth}</select>
+ <select name=compareyear>$form->{selectaccountingyear}</select>
+ </td>
+ </tr>
+|;
+ }
+
+ print qq|
+ <tr>
+ <th align=right>|.$locale->text('Decimalplaces').qq|</th>
+ <td><input name=decimalplaces size=3 value=2></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right>|.$locale->text('Method').qq|</th>
+ <td colspan=3><input name=method class=radio type=radio value=accrual checked>|.$locale->text('Accrual').qq|
+ &nbsp;<input name=method class=radio type=radio value=cash>|.$locale->text('Cash').qq|</td>
+ </tr>
+
+ <tr>
+ <th align=right nowrap>|.$locale->text('Include in Report').qq|</th>
+ <td colspan=3><input name=l_heading class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Heading').qq|
+ <input name=l_subtotal class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Subtotal').qq|
+ <input name=l_accno class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Account Number').qq|</td>
+ </tr>
+|;
+ }
+
+
+ if ($form->{report} eq "balance_sheet") {
+ print qq|
+ <input type=hidden name=nextsub value=generate_balance_sheet>
+ <tr>
+ <th align=right>|.$locale->text('as at').qq|</th>
+ <td><input name=asofdate size=11 title="$myconfig{dateformat}" value=$form->{asofdate}></td>
+|;
+
+ if ($selectfrom) {
+ print qq|
+ <td>
+ <select name=asofmonth>$form->{selectaccountingmonth}</select>
+ <select name=asofyear>$form->{selectaccountingyear}</select>
+ </td>
+|;
+ }
+
+ print qq|
+ </tr>
+
+ <th align=right nowrap>|.$locale->text('Compare to').qq|</th>
+ <td><input name=compareasofdate size=11 title="$myconfig{dateformat}"></td>
+ <td>
+|;
+
+ if ($selectto) {
+ print qq|
+ <select name=compareasofmonth>$form->{selectaccountingmonth}</select>
+ <select name=compareasofyear>$form->{selectaccountingyear}</select>
+ </td>
+|;
+ }
+
+ print qq|
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Decimalplaces').qq|</th>
+ <td><input name=decimalplaces size=3 value=2></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right>|.$locale->text('Method').qq|</th>
+ <td colspan=3><input name=method class=radio type=radio value=accrual checked>|.$locale->text('Accrual').qq|
+ &nbsp;<input name=method class=radio type=radio value=cash>|.$locale->text('Cash').qq|</td>
+ </tr>
+
+ <tr>
+ <th align=right nowrap>|.$locale->text('Include in Report').qq|</th>
+ <td><input name=l_heading class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Heading').qq|
+ <input name=l_subtotal class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Subtotal').qq|
+ <input name=l_accno class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Account Number').qq|</td>
+ </tr>
+|;
+ }
+
+
+ if ($form->{report} eq "trial_balance") {
+ print qq|
+ <input type=hidden name=nextsub value=generate_trial_balance>
+ <tr>
+ <th align=right>|.$locale->text('From').qq|</th>
+ <td><input name=fromdate size=11 title="$myconfig{dateformat}" value=$form->{fromdate}></td>
+ <th align=right>|.$locale->text('To').qq|</th>
+ <td><input name=todate size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+ $selectfrom
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Include in Report').qq|</th>
+ <td><input name=l_heading class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Heading').qq|
+ <input name=l_subtotal class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Subtotal').qq|
+ <input name=all_accounts class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('All Accounts').qq|</td>
+ </tr>
+|;
+ }
+
+
+ if ($form->{report} =~ /^tax_/) {
+ $gifi = "";
+
+ $form->{db} = ($form->{report} =~ /_collected/) ? "ar" : "ap";
+
+ RP->get_taxaccounts(\%myconfig, \%$form);
+
+ print qq|
+ <input type=hidden name=nextsub value=generate_tax_report>
+ <tr>
+ <th align=right>|.$locale->text('From').qq|</th>
+ <td><input name=fromdate size=11 title="$myconfig{dateformat}" value=$form->{fromdate}></td>
+ <th align=right>|.$locale->text('To').qq|</th>
+ <td><input name=todate size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+ $selectfrom
+ $summary
+ <tr>
+ <th align=right>|.$locale->text('Report for').qq|</th>
+ <td colspan=3>
+|;
+
+ $checked = "checked";
+ foreach $ref (@{ $form->{taxaccounts} }) {
+
+ print qq|<input name=accno class=radio type=radio value=$ref->{accno} $checked>&nbsp;$ref->{description}
+
+ <input name="$ref->{accno}_description" type=hidden value="$ref->{description}">
+ <input name="$ref->{accno}_rate" type=hidden value="$ref->{rate}">|;
+
+ $checked = "";
+
+ }
+
+ print qq|
+ <input type=hidden name=db value=$form->{db}>
+ <input type=hidden name=sort value=transdate>
+
+ </td>
+ </tr>
+|;
+
+
+ if (@{ $form->{gifi_taxaccounts} }) {
+ print qq|
+ <tr>
+ <th align=right>|.$locale->text('GIFI').qq|</th>
+ <td colspan=3>
+|;
+
+ foreach $ref (@{ $form->{gifi_taxaccounts} }) {
+
+ print qq|<input name=accno class=radio type=radio value="gifi_$ref->{accno}">&nbsp;$ref->{description}
+
+ <input name="gifi_$ref->{accno}_description" type=hidden value="$ref->{description}">
+ <input name="gifi_$ref->{accno}_rate" type=hidden value="$ref->{rate}">|;
+
+ }
+
+ print qq|
+ </td>
+ </tr>
+|;
+ }
+
+
+print qq|
+ <tr>
+ <th align=right>|.$locale->text('Method').qq|</th>
+ <td colspan=3><input name=method class=radio type=radio value=accrual checked>|.$locale->text('Accrual').qq|
+ &nbsp;<input name=method class=radio type=radio value=cash>|.$locale->text('Cash').qq|</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right>|.$locale->text('Include in Report').qq|</th>
+ <td>
+ <table>
+ <tr>
+ <td><input name="l_id" class=checkbox type=checkbox value=Y></td>
+ <td>|.$locale->text('ID').qq|</td>
+ <td><input name="l_invnumber" class=checkbox type=checkbox value=Y checked></td>
+ <td>|.$locale->text('Invoice').qq|</td>
+ <td><input name="l_transdate" class=checkbox type=checkbox value=Y checked></td>
+ <td>|.$locale->text('Date').qq|</td>
+ </tr>
+ <tr>
+ <td><input name="l_name" class=checkbox type=checkbox value=Y checked></td>
+|;
+
+ if ($form->{db} eq 'ar') {
+ print qq|<td>|.$locale->text('Customer').qq|</td>|;
+ }
+ if ($form->{db} eq 'ap') {
+ print qq|<td>|.$locale->text('Vendor').qq|</td>|;
+ }
+
+ print qq|
+ <td><input name="l_description" class=checkbox type=checkbox value=Y checked></td>
+ <td>|.$locale->text('Description').qq|</td>
+ <td><input name="l_netamount" class=checkbox type=checkbox value=Y checked></td>
+ <td>|.$locale->text('Amount').qq|</td>
+
+ <td><input name="l_tax" class=checkbox type=checkbox value=Y checked></td>
+ <td>|.$locale->text('Tax').qq|</td>
+
+ <td><input name="l_total" class=checkbox type=checkbox value=Y checked></td>
+ <td>|.$locale->text('Total').qq|</td>
+ </tr>
+ <tr>
+ </tr>
+ <tr>
+ <td><input name="l_subtotal" class=checkbox type=checkbox value=Y></td>
+ <td>|.$locale->text('Subtotal').qq|</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+|;
+
+ }
+
+
+ if ($form->{report} =~ /^nontaxable_/) {
+ $gifi = "";
+
+ $form->{db} = ($form->{report} =~ /_sales/) ? "ar" : "ap";
+
+ print qq|
+ <input type=hidden name=nextsub value=generate_tax_report>
+
+ <input type=hidden name=db value=$form->{db}>
+ <input type=hidden name=sort value=transdate>
+ <input type=hidden name=report value=$form->{report}>
+
+ <tr>
+ <th align=right>|.$locale->text('From').qq|</th>
+ <td><input name=fromdate size=11 title="$myconfig{dateformat}" value=$form->{fromdate}></td>
+ <th align=right>|.$locale->text('To').qq|</th>
+ <td><input name=todate size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+ $selectfrom
+ $summary
+ <tr>
+ <th align=right>|.$locale->text('Method').qq|</th>
+ <td colspan=3><input name=method class=radio type=radio value=accrual checked>|.$locale->text('Accrual').qq|
+ &nbsp;<input name=method class=radio type=radio value=cash>|.$locale->text('Cash').qq|</td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('Include in Report').qq|</th>
+ <td colspan=3>
+ <table>
+ <tr>
+ <td><input name="l_id" class=checkbox type=checkbox value=Y></td>
+ <td>|.$locale->text('ID').qq|</td>
+ <td><input name="l_invnumber" class=checkbox type=checkbox value=Y checked></td>
+ <td>|.$locale->text('Invoice').qq|</td>
+ <td><input name="l_transdate" class=checkbox type=checkbox value=Y checked></td>
+ <td>|.$locale->text('Date').qq|</td>
+ </tr>
+ <tr>
+ <td><input name="l_name" class=checkbox type=checkbox value=Y checked></td>
+|;
+
+ if ($form->{db} eq 'ar') {
+ print qq|<td>|.$locale->text('Customer').qq|</td>|;
+ }
+ if ($form->{db} eq 'ap') {
+ print qq|<td>|.$locale->text('Vendor').qq|</td>|;
+ }
+
+ print qq|
+ <td><input name="l_description" class=checkbox type=checkbox value=Y checked></td>
+ <td>|.$locale->text('Description').qq|</td>
+ <td><input name="l_netamount" class=checkbox type=checkbox value=Y checked></td>
+ <td>|.$locale->text('Amount').qq|</td>
+ </tr>
+ <tr>
+ <td><input name="l_subtotal" class=checkbox type=checkbox value=Y></td>
+ <td>|.$locale->text('Subtotal').qq|</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+|;
+
+ }
+
+
+ if (($form->{report} eq "ar_aging") || ($form->{report} eq "ap_aging")) {
+ $gifi = "";
+
+ if ($form->{report} eq 'ar_aging') {
+ $label = $locale->text('Customer');
+ $form->{vc} = 'customer';
+ } else {
+ $label = $locale->text('Vendor');
+ $form->{vc} = 'vendor';
+ }
+
+ $nextsub = "generate_$form->{report}";
+
+ # setup vc selection
+ $form->all_vc(\%myconfig, $form->{vc}, ($form->{vc} eq 'customer') ? "AR" : "AP");
+
+ for (@{ $form->{"all_$form->{vc}"} }) { $vc .= qq|<option value="$_->{name}--$_->{id}">$_->{name}\n| }
+
+ $vc = ($vc) ? qq|<select name=$form->{vc}><option>\n$vc</select>| : qq|<input name=$form->{vc} size=35>|;
+
+ $postscript = "postscript" if $myconfig{printer};
+
+ print qq|
+ <tr>
+ <th align=right>|.$locale->text($label).qq|</th>
+ <td>$vc</td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('To').qq|</th>
+ <td><input name=todate size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+ $selectto
+ <input type=hidden name=type value=statement>
+ <input type=hidden name=format value=$postscript>
+ <input type=hidden name=media value="$myconfig{printer}">
+
+ <input type=hidden name=nextsub value=$nextsub>
+ <input type=hidden name=action value=$nextsub>
+ $summary
+ <tr>
+ <table>
+ <tr>
+ <th>|.$locale->text('Include in Report').qq|</th>
+
+ <td>
+ <table>
+ <tr>
+ <td nowrap><input name=overdue type=radio class=radio value=0 checked> |.$locale->text('Aged').qq|</td>
+ <td nowrap><input name=overdue type=radio class=radio value=1> |.$locale->text('Overdue').qq|</td>
+ </tr>
+ <tr>
+ <td nowrap width=70><input name=c0 type=checkbox class=checkbox value=1 checked> |.$locale->text('Current').qq|</td>
+ <td nowrap width=70><input name=c30 type=checkbox class=checkbox value=1 checked> 30</td>
+ <td nowrap width=70><input name=c60 type=checkbox class=checkbox value=1 checked> 60</td>
+ <td nowrap width=70><input name=c90 type=checkbox class=checkbox value=1 checked> 90</td>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </tr>
+
+|;
+ }
+
+# above action can be removed if there is more than one input field
+
+
+ if ($form->{report} =~ /(receipts|payments)$/) {
+ $gifi = "";
+
+ $form->{db} = ($form->{report} =~ /payments$/) ? "ap" : "ar";
+
+ RP->paymentaccounts(\%myconfig, \%$form);
+
+ $selection = "<option>\n";
+ foreach $ref (@{ $form->{PR} }) {
+ $paymentaccounts .= "$ref->{accno} ";
+ $selection .= "<option>$ref->{accno}--$ref->{description}\n";
+ }
+
+ chop $paymentaccounts;
+
+ print qq|
+ <input type=hidden name=nextsub value=list_payments>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Account').qq|</th>
+ <td colspan=3><select name=account>$selection</select>
+ <input type=hidden name=paymentaccounts value="$paymentaccounts">
+ </td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Description').qq|</th>
+ <td colspan=3><input name=description size=35></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Source').qq|</th>
+ <td colspan=3><input name=source></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Memo').qq|</th>
+ <td colspan=3><input name=memo size=30></td>
+ </tr>
+ <tr>
+ <th align=right>|.$locale->text('From').qq|</th>
+ <td><input name=fromdate size=11 title="$myconfig{dateformat}" value=$form->{fromdate}></td>
+ <th align=right>|.$locale->text('To').qq|</th>
+ <td><input name=todate size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+ $selectfrom
+ <tr>
+ <td align=right><input type=checkbox class=checkbox name=fx_transaction value=1 checked></td>
+ <td colspan=3>|.$locale->text('Include Exchange Rate Difference').qq|</td>
+ </tr>
+ <tr>
+ <td align=right><input name=l_subtotal class=checkbox type=checkbox value=Y></td>
+ <td align=left colspan=3>|.$locale->text('Subtotal').qq|</th>
+ </tr>
+
+ <input type=hidden name=db value=$form->{db}>
+ <input type=hidden name=sort value=transdate>
+|;
+
+ }
+
+
+ print qq|
+
+$gifi
+
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<br>
+<input type=hidden name=path value=$form->{path}>
+<input type=hidden name=login value=$form->{login}>
+<input type=hidden name=sessionid value=$form->{sessionid}>
+
+<input type=submit class=submit name=action value="|.$locale->text('Continue').qq|">
+
+</form>
+|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+</body>
+</html>
+|;
+
+}
+
+
+sub continue { &{$form->{nextsub}} };
+
+
+sub generate_income_statement {
+
+ $form->{padding} = "&nbsp;&nbsp;";
+ $form->{bold} = "<b>";
+ $form->{endbold} = "</b>";
+ $form->{br} = "<br>";
+
+ RP->income_statement(\%myconfig, \%$form);
+
+ ($form->{department}) = split /--/, $form->{department};
+ ($form->{projectnumber}) = split /--/, $form->{projectnumber};
+
+ $form->{period} = $locale->date(\%myconfig, $form->current_date(\%myconfig), 1);
+ $form->{todate} = $form->current_date(\%myconfig) unless $form->{todate};
+
+ # if there are any dates construct a where
+ if ($form->{fromdate} || $form->{todate}) {
+
+ unless ($form->{todate}) {
+ $form->{todate} = $form->current_date(\%myconfig);
+ }
+
+ $longtodate = $locale->date(\%myconfig, $form->{todate}, 1);
+ $shorttodate = $locale->date(\%myconfig, $form->{todate}, 0);
+
+ $longfromdate = $locale->date(\%myconfig, $form->{fromdate}, 1);
+ $shortfromdate = $locale->date(\%myconfig, $form->{fromdate}, 0);
+
+ $form->{this_period} = "$shortfromdate<br>\n$shorttodate";
+ $form->{period} = $locale->text('for Period').qq|<br>\n$longfromdate |.$locale->text('To').qq| $longtodate|;
+ }
+
+ if ($form->{comparefromdate} || $form->{comparetodate}) {
+ $longcomparefromdate = $locale->date(\%myconfig, $form->{comparefromdate}, 1);
+ $shortcomparefromdate = $locale->date(\%myconfig, $form->{comparefromdate}, 0);
+
+ $longcomparetodate = $locale->date(\%myconfig, $form->{comparetodate}, 1);
+ $shortcomparetodate = $locale->date(\%myconfig, $form->{comparetodate}, 0);
+
+ $form->{last_period} = "$shortcomparefromdate<br>\n$shortcomparetodate";
+ $form->{period} .= "<br>\n$longcomparefromdate ".$locale->text('To').qq| $longcomparetodate|;
+ }
+
+ # setup variables for the form
+ @a = qw(company address businessnumber);
+ for (@a) { $form->{$_} = $myconfig{$_} }
+ $form->{address} =~ s/\\n/<br>/g;
+
+ $form->{templates} = $myconfig{templates};
+
+ $form->{IN} = "income_statement.html";
+
+ $form->parse_template;
+
+}
+
+
+sub generate_balance_sheet {
+
+ $form->{padding} = "&nbsp;&nbsp;";
+ $form->{bold} = "<b>";
+ $form->{endbold} = "</b>";
+ $form->{br} = "<br>";
+
+ RP->balance_sheet(\%myconfig, \%$form);
+
+ $form->{asofdate} = $form->current_date(\%myconfig) unless $form->{asofdate};
+ $form->{period} = $locale->date(\%myconfig, $form->current_date(\%myconfig), 1);
+
+ ($form->{department}) = split /--/, $form->{department};
+
+ # define Current Earnings account
+ $padding = ($form->{l_heading}) ? $form->{padding} : "";
+ push(@{$form->{equity_account}}, $padding.$locale->text('Current Earnings'));
+
+ $form->{this_period} = $locale->date(\%myconfig, $form->{asofdate}, 0);
+ $form->{last_period} = $locale->date(\%myconfig, $form->{compareasofdate}, 0);
+
+ $form->{IN} = "balance_sheet.html";
+
+ # setup company variables for the form
+ for (qw(company address businessnumber nativecurr)) { $form->{$_} = $myconfig{$_} }
+ $form->{address} =~ s/\\n/<br>/g;
+
+ $form->{templates} = $myconfig{templates};
+
+ $form->parse_template;
+
+}
+
+
+sub generate_projects {
+
+ $form->{nextsub} = "generate_projects";
+ $form->{title} = $locale->text('Project Transactions');
+
+ RP->trial_balance(\%myconfig, \%$form);
+
+ &list_accounts;
+
+}
+
+
+# Antonio Gallardo
+#
+# D.S. Feb 16, 2001
+# included links to display transactions for period entered
+# added headers and subtotals
+#
+sub generate_trial_balance {
+
+ # get for each account initial balance, debits and credits
+ RP->trial_balance(\%myconfig, \%$form);
+
+ $form->{nextsub} = "generate_trial_balance";
+ $form->{title} = $locale->text('Trial Balance');
+
+ $form->{callback} = "$form->{script}?action=generate_trial_balance";
+ for (qw(login path sessionid nextsub fromdate todate month year interval l_heading l_subtotal all_accounts accounttype title)) { $form->{callback} .= "&$_=$form->{$_}" }
+ $form->{callback} = $form->escape($form->{callback});
+
+ &list_accounts;
+
+}
+
+
+sub list_accounts {
+
+ $title = $form->escape($form->{title});
+
+ if ($form->{department}) {
+ ($department) = split /--/, $form->{department};
+ $options = $locale->text('Department')." : $department<br>";
+ $department = $form->escape($form->{department});
+ }
+ if ($form->{projectnumber}) {
+ ($projectnumber) = split /--/, $form->{projectnumber};
+ $options .= $locale->text('Project Number')." : $projectnumber<br>";
+ $projectnumber = $form->escape($form->{projectnumber});
+ }
+
+ # if there are any dates
+ if ($form->{fromdate} || $form->{todate}) {
+
+ if ($form->{fromdate}) {
+ $fromdate = $locale->date(\%myconfig, $form->{fromdate}, 1);
+ }
+ if ($form->{todate}) {
+ $todate = $locale->date(\%myconfig, $form->{todate}, 1);
+ }
+
+ $form->{period} = "$fromdate - $todate";
+ } else {
+ $form->{period} = $locale->date(\%myconfig, $form->current_date(\%myconfig), 1);
+
+ }
+ $options .= $form->{period};
+
+ @column_index = qw(accno description begbalance debit credit endbalance);
+
+ $column_header{accno} = qq|<th class=listheading>|.$locale->text('Account').qq|</th>|;
+ $column_header{description} = qq|<th class=listheading>|.$locale->text('Description').qq|</th>|;
+ $column_header{debit} = qq|<th class=listheading>|.$locale->text('Debit').qq|</th>|;
+ $column_header{credit} = qq|<th class=listheading>|.$locale->text('Credit').qq|</th>|;
+ $column_header{begbalance} = qq|<th class=listheading>|.$locale->text('Balance').qq|</th>|;
+ $column_header{endbalance} = qq|<th class=listheading>|.$locale->text('Balance').qq|</th>|;
+
+
+ if ($form->{accounttype} eq 'gifi') {
+ $column_header{accno} = qq|<th class=listheading>|.$locale->text('GIFI').qq|</th>|;
+ }
+
+
+ $form->header;
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$options</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>|;
+
+ for (@column_index) { print "$column_header{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+
+
+ # sort the whole thing by account numbers and display
+ foreach $ref (sort { $a->{accno} cmp $b->{accno} } @{ $form->{TB} }) {
+
+ $description = $form->escape($ref->{description});
+
+ $href = qq|ca.pl?path=$form->{path}&action=list_transactions&accounttype=$form->{accounttype}&login=$form->{login}&sessionid=$form->{sessionid}&fromdate=$form->{fromdate}&todate=$form->{todate}&sort=transdate&l_heading=$form->{l_heading}&l_subtotal=$form->{l_subtotal}&department=$department&projectnumber=$projectnumber&project_id=$form->{project_id}&title=$title&nextsub=$form->{nextsub}&prevreport=$form->{callback}|;
+
+ if ($form->{accounttype} eq 'gifi') {
+ $href .= "&gifi_accno=$ref->{accno}&gifi_description=$description";
+ $na = $locale->text('N/A');
+ if (!$ref->{accno}) {
+ for (qw(accno description)) { $ref->{$_} = $na }
+ }
+ } else {
+ $href .= "&accno=$ref->{accno}&description=$description";
+ }
+
+ $ml = ($ref->{category} =~ /(A|E)/) ? -1 : 1;
+ $ml *= -1 if $ref->{contra};
+
+ $debit = $form->format_amount(\%myconfig, $ref->{debit}, 2, "&nbsp;");
+ $credit = $form->format_amount(\%myconfig, $ref->{credit}, 2, "&nbsp;");
+ $begbalance = $form->format_amount(\%myconfig, $ref->{balance} * $ml, 2, "&nbsp;");
+ $endbalance = $form->format_amount(\%myconfig, ($ref->{balance} + $ref->{amount}) * $ml, 2, "&nbsp;");
+
+
+ if ($ref->{charttype} eq "H" && $subtotal && $form->{l_subtotal}) {
+
+ if ($subtotal) {
+
+ for (qw(accno begbalance endbalance)) { $column_data{$_} = "<th>&nbsp;</th>" }
+
+ $subtotalbegbalance = $form->format_amount(\%myconfig, $subtotalbegbalance, 2, "&nbsp;");
+ $subtotalendbalance = $form->format_amount(\%myconfig, $subtotalendbalance, 2, "&nbsp;");
+ $subtotaldebit = $form->format_amount(\%myconfig, $subtotaldebit, 2, "&nbsp;");
+ $subtotalcredit = $form->format_amount(\%myconfig, $subtotalcredit, 2, "&nbsp;");
+
+ $column_data{description} = "<th class=listsubtotal>$subtotaldescription</th>";
+ $column_data{begbalance} = "<th align=right class=listsubtotal>$subtotalbegbalance</th>";
+ $column_data{endbalance} = "<th align=right class=listsubtotal>$subtotalendbalance</th>";
+ $column_data{debit} = "<th align=right class=listsubtotal>$subtotaldebit</th>";
+ $column_data{credit} = "<th align=right class=listsubtotal>$subtotalcredit</th>";
+
+ print qq|
+ <tr class=listsubtotal>
+|;
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+ }
+ }
+
+ if ($ref->{charttype} eq "H") {
+ $subtotal = 1;
+ $subtotaldescription = $ref->{description};
+ $subtotaldebit = $ref->{debit};
+ $subtotalcredit = $ref->{credit};
+ $subtotalbegbalance = 0;
+ $subtotalendbalance = 0;
+
+ if ($form->{l_heading}) {
+ if (! $form->{all_accounts}) {
+ if (($subtotaldebit + $subtotalcredit) == 0) {
+ $subtotal = 0;
+ next;
+ }
+ }
+ } else {
+ $subtotal = 0;
+ if ($form->{all_accounts} || ($form->{l_subtotal} && (($subtotaldebit + $subtotalcredit) != 0))) {
+ $subtotal = 1;
+ }
+ next;
+ }
+
+ for (qw(accno debit credit begbalance endbalance)) { $column_data{$_} = "<th>&nbsp;</th>" }
+ $column_data{description} = "<th class=listheading>$ref->{description}</th>";
+ }
+
+ if ($ref->{charttype} eq "A") {
+ $column_data{accno} = "<td><a href=$href>$ref->{accno}</a></td>";
+ $column_data{description} = "<td>$ref->{description}</td>";
+ $column_data{debit} = "<td align=right>$debit</td>";
+ $column_data{credit} = "<td align=right>$credit</td>";
+ $column_data{begbalance} = "<td align=right>$begbalance</td>";
+ $column_data{endbalance} = "<td align=right>$endbalance</td>";
+
+ $totaldebit += $ref->{debit};
+ $totalcredit += $ref->{credit};
+
+ $cml = ($ref->{contra}) ? -1 : 1;
+
+ $subtotalbegbalance += $ref->{balance} * $ml * $cml;
+ $subtotalendbalance += ($ref->{balance} + $ref->{amount}) * $ml * $cml;
+
+ }
+
+
+ if ($ref->{charttype} eq "H") {
+ print qq|
+ <tr class=listheading>
+|;
+ }
+ if ($ref->{charttype} eq "A") {
+ $i++; $i %= 2;
+ print qq|
+ <tr class=listrow$i>
+|;
+ }
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+ }
+
+
+ # print last subtotal
+ if ($subtotal && $form->{l_subtotal}) {
+ for (qw(accno begbalance endbalance)) { $column_data{$_} = "<th>&nbsp;</th>" }
+ $subtotalbegbalance = $form->format_amount(\%myconfig, $subtotalbegbalance, 2, "&nbsp;");
+ $subtotalendbalance = $form->format_amount(\%myconfig, $subtotalendbalance, 2, "&nbsp;");
+ $subtotaldebit = $form->format_amount(\%myconfig, $subtotaldebit, 2, "&nbsp;");
+ $subtotalcredit = $form->format_amount(\%myconfig, $subtotalcredit, 2, "&nbsp;");
+ $column_data{description} = "<th class=listsubtotal>$subtotaldescription</th>";
+ $column_data{begbalance} = "<th align=right class=listsubtotal>$subtotalbegbalance</th>";
+ $column_data{endbalance} = "<th align=right class=listsubtotal>$subtotalendbalance</th>";
+ $column_data{debit} = "<th align=right class=listsubtotal>$subtotaldebit</th>";
+ $column_data{credit} = "<th align=right class=listsubtotal>$subtotalcredit</th>";
+
+ print qq|
+ <tr class=listsubtotal>
+|;
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+ }
+
+ $totaldebit = $form->format_amount(\%myconfig, $totaldebit, 2, "&nbsp;");
+ $totalcredit = $form->format_amount(\%myconfig, $totalcredit, 2, "&nbsp;");
+
+ for (qw(accno description begbalance endbalance)) { $column_data{$_} = "<th>&nbsp;</th>" }
+
+ $column_data{debit} = qq|<th align=right class=listtotal>$totaldebit</th>|;
+ $column_data{credit} = qq|<th align=right class=listtotal>$totalcredit</th>|;
+
+ print qq|
+ <tr class=listtotal>
+|;
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub generate_ar_aging {
+
+ # split customer
+ ($form->{customer}) = split(/--/, $form->{customer});
+ $customer = $form->escape($form->{customer},1);
+ $title = $form->escape($form->{title},1);
+ $media = $form->escape($form->{media},1);
+
+ $form->{ct} = "customer";
+ $form->{arap} = "ar";
+
+ RP->aging(\%myconfig, \%$form);
+
+ $form->{callback} = qq|$form->{script}?path=$form->{path}&action=generate_ar_aging&login=$form->{login}&sessionid=$form->{sessionid}&todate=$form->{todate}&customer=$customer&title=$title&type=$form->{type}&format=$form->{format}&media=$media&summary=$form->{summary}|;
+
+ &aging;
+
+}
+
+
+sub generate_ap_aging {
+
+ # split vendor
+ ($form->{vendor}) = split(/--/, $form->{vendor});
+ $vendor = $form->escape($form->{vendor},1);
+ $title = $form->escape($form->{title},1);
+ $media = $form->escape($form->{media},1);
+
+ $form->{ct} = "vendor";
+ $form->{arap} = "ap";
+
+ RP->aging(\%myconfig, \%$form);
+
+ $form->{callback} = qq|$form->{script}?path=$form->{path}&action=generate_ap_aging&login=$form->{login}&sessionid=$form->{sessionid}&todate=$form->{todate}&vendor=$vendor&title=$title&type=$form->{type}&format=$form->{format}&media=$media&summary=$form->{summary}|;
+
+ &aging;
+
+}
+
+
+sub aging {
+
+ $form->header;
+
+ $column_header{statement} = qq|<th class=listheading width=1%>&nbsp;</th>|;
+ $column_header{ct} = qq|<th class=listheading width=60%>|.$locale->text(ucfirst $form->{ct}).qq|</th>|;
+ $column_header{language} = qq|<th class=listheading>|.$locale->text('Language').qq|</th>|;
+ $column_header{invnumber} = qq|<th class=listheading>|.$locale->text('Invoice').qq|</th>|;
+ $column_header{ordnumber} = qq|<th class=listheading>|.$locale->text('Order').qq|</th>|;
+ $column_header{transdate} = qq|<th class=listheading nowrap>|.$locale->text('Date').qq|</th>|;
+ $column_header{duedate} = qq|<th class=listheading nowrap>|.$locale->text('Due Date').qq|</th>|;
+ $column_header{c0} = qq|<th class=listheading width=10% nowrap>|.$locale->text('Current').qq|</th>|;
+ $column_header{c30} = qq|<th class=listheading width=10% nowrap>30</th>|;
+ $column_header{c60} = qq|<th class=listheading width=10% nowrap>60</th>|;
+ $column_header{c90} = qq|<th class=listheading width=10% nowrap>90</th>|;
+ $column_header{total} = qq|<th class=listheading width=10% nowrap>|.$locale->text('Total').qq|</th>|;
+
+ @column_index = qw(statement ct);
+
+ if (@{ $form->{all_language} } && $form->{arap} eq 'ar') {
+ push @column_index, "language";
+ $form->{selectlanguage} = qq|<option>\n|;
+
+ for (@{ $form->{all_language} }) { $form->{selectlanguage} .= qq|<option value="$_->{code}">$_->{description}\n| }
+ }
+
+ @c = ();
+ for (qw(c0 c30 c60 c90)) {
+ if ($form->{$_}) {
+ push @c, $_;
+ $form->{callback} .= "&$_=$form->{$_}";
+ }
+ }
+
+ if (!$form->{summary}) {
+ push @column_index, qw(invnumber ordnumber transdate duedate);
+ }
+ push @column_index, @c;
+ push @column_index, "total";
+
+ $option = $locale->text('Aged');
+ if ($form->{overdue}) {
+ $option= $locale->text('Aged Overdue');
+ $form->{callback} .= "&overdue=$form->{overdue}";
+ }
+
+ if ($form->{department}) {
+ $option .= "\n<br>" if $option;
+ ($department) = split /--/, $form->{department};
+ $option .= $locale->text('Department')." : $department";
+ $department = $form->escape($form->{department},1);
+ $form->{callback} .= "&department=$department";
+ }
+
+ if ($form->{arap} eq 'ar') {
+ if ($form->{customer}) {
+ $option .= "\n<br>" if $option;
+ $option .= $form->{customer};
+ }
+ }
+ if ($form->{arap} eq 'ap') {
+ shift @column_index;
+ if ($form->{vendor}) {
+ $option .= "\n<br>" if $option;
+ $option .= $form->{vendor};
+ }
+ }
+
+ $todate = $locale->date(\%myconfig, $form->{todate}, 1);
+ $option .= "\n<br>" if $option;
+ $option .= $locale->text('for Period')." ".$locale->text('To')." $todate";
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$option</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+|;
+
+ $ctid = 0;
+ $i = 0;
+ $k = 0;
+ $l = $#{ $form->{AG} };
+
+ foreach $ref (@{ $form->{AG} }) {
+
+ if ($curr ne $ref->{curr}) {
+ $ctid = 0;
+ for (@column_index) { $column_data{$_} = qq|<th>&nbsp;</th>| }
+ if ($curr) {
+ $c0total = $form->format_amount(\%myconfig, $c0total, 2, "&nbsp");
+ $c30total = $form->format_amount(\%myconfig, $c30total, 2, "&nbsp");
+ $c60total = $form->format_amount(\%myconfig, $c60total, 2, "&nbsp");
+ $c90total = $form->format_amount(\%myconfig, $c90total, 2, "&nbsp");
+ $total = $form->format_amount(\%myconfig, $total, 2, "&nbsp");
+
+ for (qw(ct statement language)) { $column_data{$_} = qq|<td>&nbsp;</td>| }
+ $column_data{c0} = qq|<th align=right>$c0total</th>|;
+ $column_data{c30} = qq|<th align=right>$c30total</th>|;
+ $column_data{c60} = qq|<th align=right>$c60total</th>|;
+ $column_data{c90} = qq|<th align=right>$c90total</th>|;
+ $column_data{total} = qq|<th align=right>$total</th>|;
+
+ print qq|
+ <tr class=listtotal>
+|;
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ $c0subtotal = 0;
+ $c30subtotal = 0;
+ $c60subtotal = 0;
+ $c90subtotal = 0;
+ $subtotal = 0;
+
+ $c0total = 0;
+ $c30total = 0;
+ $c60total = 0;
+ $c90total = 0;
+ $total = 0;
+
+ }
+
+ $curr = $ref->{curr};
+ print qq|
+ <tr>
+ <td></td>
+ <th>$curr</th>
+ </tr>
+
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "$column_header{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+ }
+
+ $k++;
+
+ if ($ctid != $ref->{ctid}) {
+
+ $i++;
+
+ $column_data{ct} = qq|<td>$ref->{name}</td>|;
+
+ if ($form->{selectlanguage}) {
+ $form->{"selectlanguage_$i"} = $form->{selectlanguage};
+ $form->{"selectlanguage_$i"} =~ s/(<option value="\Q$ref->{language_code}\E")/$1 selected/;
+ $column_data{language} = qq|<td><select name="language_code_$i">$form->{"selectlanguage_$i"}</select></td>|;
+ }
+
+ $column_data{statement} = qq|<td><input name="statement_$i" type=checkbox class=checkbox value=1 $ref->{checked}>
+ <input type=hidden name="$form->{ct}_id_$i" value=$ref->{ctid}>
+ <input type=hidden name="curr_$i" value=$ref->{curr}>
+ </td>|;
+
+ }
+
+ $ctid = $ref->{ctid};
+
+ for (qw(c0 c30 c60 c90)) { $ref->{$_} = $form->round_amount($ref->{$_} / $ref->{exchangerate}, 2) }
+
+ $c0subtotal += $ref->{c0};
+ $c30subtotal += $ref->{c30};
+ $c60subtotal += $ref->{c60};
+ $c90subtotal += $ref->{c90};
+
+ $c0total += $ref->{c0};
+ $c30total += $ref->{c30};
+ $c60total += $ref->{c60};
+ $c90total += $ref->{c90};
+
+ $ref->{total} = ($ref->{c0} + $ref->{c30} + $ref->{c60} + $ref->{c90});
+ $subtotal += $ref->{total};
+ $total += $ref->{total};
+
+ $ref->{c0} = $form->format_amount(\%myconfig, $ref->{c0}, 2, "&nbsp;");
+ $ref->{c30} = $form->format_amount(\%myconfig, $ref->{c30}, 2, "&nbsp;");
+ $ref->{c60} = $form->format_amount(\%myconfig, $ref->{c60}, 2, "&nbsp;");
+ $ref->{c90} = $form->format_amount(\%myconfig, $ref->{c90}, 2, "&nbsp;");
+ $ref->{total} = $form->format_amount(\%myconfig, $ref->{total}, 2, "&nbsp;");
+
+ $href = qq|$ref->{module}.pl?path=$form->{path}&action=edit&id=$ref->{id}&login=$form->{login}&sessionid=$form->{sessionid}&callback=|.$form->escape($form->{callback});
+
+ $column_data{invnumber} = qq|<td><a href=$href>$ref->{invnumber}</a></td>|;
+ for (qw(ordnumber transdate duedate)) { $column_data{$_} = qq|<td>$ref->{$_}</td>| }
+ for (qw(c0 c30 c60 c90 total)) { $column_data{$_} = qq|<td align=right>$ref->{$_}</td>| }
+
+ if (!$form->{summary}) {
+
+ $j++; $j %= 2;
+ print qq|
+ <tr class=listrow$j>
+|;
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ for (qw(ct statement language)) { $column_data{$_} = qq|<td>&nbsp;</td>| }
+
+ }
+
+ # print subtotal
+ $nextid = ($k <= $l) ? $form->{AG}->[$k]->{ctid} : 0;
+ if ($ctid != $nextid) {
+
+ $c0subtotal = $form->format_amount(\%myconfig, $c0subtotal, 2, "&nbsp");
+ $c30subtotal = $form->format_amount(\%myconfig, $c30subtotal, 2, "&nbsp");
+ $c60subtotal = $form->format_amount(\%myconfig, $c60subtotal, 2, "&nbsp");
+ $c90subtotal = $form->format_amount(\%myconfig, $c90subtotal, 2, "&nbsp");
+ $subtotal = $form->format_amount(\%myconfig, $subtotal, 2, "&nbsp");
+
+ if ($form->{summary}) {
+ $column_data{c0} = qq|<td align=right>$c0subtotal</th>|;
+ $column_data{c30} = qq|<td align=right>$c30subtotal</th>|;
+ $column_data{c60} = qq|<td align=right>$c60subtotal</th>|;
+ $column_data{c90} = qq|<td align=right>$c90subtotal</th>|;
+ $column_data{total} = qq|<td align=right>$subtotal</th>|;
+
+ $j++; $j %= 2;
+ print qq|
+ <tr class=listrow$j>
+|;
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ } else {
+
+ for (@column_index) { $column_data{$_} = qq|<th>&nbsp;</th>| }
+
+ $column_data{c0} = qq|<th class=listsubtotal align=right>$c0subtotal</th>|;
+ $column_data{c30} = qq|<th class=listsubtotal align=right>$c30subtotal</th>|;
+ $column_data{c60} = qq|<th class=listsubtotal align=right>$c60subtotal</th>|;
+ $column_data{c90} = qq|<th class=listsubtotal align=right>$c90subtotal</th>|;
+ $column_data{total} = qq|<th class=listsubtotal align=right>$subtotal</th>|;
+
+ # print subtotals
+ print qq|
+ <tr class=listsubtotal>
+|;
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ }
+
+ $c0subtotal = 0;
+ $c30subtotal = 0;
+ $c60subtotal = 0;
+ $c90subtotal = 0;
+ $subtotal = 0;
+
+ }
+ }
+
+ print qq|
+ </tr>
+ <tr class=listtotal>
+|;
+
+ for (@column_index) { $column_data{$_} = qq|<th>&nbsp;</th>| }
+
+ $c0total = $form->format_amount(\%myconfig, $c0total, 2, "&nbsp;");
+ $c30total = $form->format_amount(\%myconfig, $c30total, 2, "&nbsp;");
+ $c60total = $form->format_amount(\%myconfig, $c60total, 2, "&nbsp;");
+ $c90total = $form->format_amount(\%myconfig, $c90total, 2, "&nbsp;");
+ $total = $form->format_amount(\%myconfig, $total, 2, "&nbsp;");
+
+ $column_data{c0} = qq|<th align=right class=listtotal>$c0total</th>|;
+ $column_data{c30} = qq|<th align=right class=listtotal>$c30total</th>|;
+ $column_data{c60} = qq|<th align=right class=listtotal>$c60total</th>|;
+ $column_data{c90} = qq|<th align=right class=listtotal>$c90total</th>|;
+ $column_data{total} = qq|<th align=right class=listtotal>$total</th>|;
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+ <input type=hidden name=rowcount value=$i>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+|;
+
+ &print_options if ($form->{arap} eq 'ar');
+
+ print qq|
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+ if ($form->{arap} eq 'ar') {
+
+ $form->hide_form(qw(todate title summary overdue c0 c30 c60 c90 callback arap ct department path login sessionid));
+
+ print qq|
+<input type=hidden name=$form->{ct} value="$form->{$form->{ct}}">
+|;
+
+# type=submit $locale->text('Select all')
+# type=submit $locale->text('Print')
+# type=submit $locale->text('E-mail')
+
+ %button = ('Select all' => { ndx => 1, key => 'A', value => $locale->text('Select all') },
+ 'Print' => { ndx => 2, key => 'P', value => $locale->text('Print') },
+ 'E-mail' => { ndx => 5, key => 'E', value => $locale->text('E-mail') },
+ );
+
+ for (sort { $button{$a}->{ndx} <=> $button{$b}->{ndx} } keys %button) { $form->print_button(\%button, $_) }
+
+ }
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub select_all {
+
+ RP->aging(\%myconfig, \%$form);
+
+ for (@{ $form->{AG} }) { $_->{checked} = "checked" }
+
+ &aging;
+
+}
+
+
+sub print_options {
+
+ $form->{sendmode} = "attachment";
+ $form->{copies} = 1 unless $form->{copies};
+
+ $form->{PD}{$form->{type}} = "selected";
+ $form->{DF}{$form->{format}} = "selected";
+ $form->{SM}{$form->{sendmode}} = "selected";
+
+ $format = qq|
+ <option value=html $form->{PD}{format}>html|;
+
+ $type = qq|
+ <option value=statement $form->{PD}{statement}>|.$locale->text('Statement');
+
+
+ if ($form->{media} eq 'email') {
+ $media = qq|
+ <td><select name=sendmode>
+ <option value=attachment $form->{SM}{attachment}>|.$locale->text('Attachment').qq|
+ <option value=inline $form->{SM}{inline}>|.$locale->text('In-line');
+ } else {
+ $media = qq|
+ <td><select name=media>
+ <option value=screen>|.$locale->text('Screen');
+ if (%printer && $latex) {
+ for (sort keys %printer) { $media .= qq|
+ <option value="$_">$_| }
+ }
+ }
+
+ $media =~ s/(<option value="\Q$form->{media}\E")/$1 selected/;
+ $media .= qq|</select></td>|;
+
+ if ($latex) {
+ $format .= qq|
+ <option value=postscript $form->{DF}{postscript}>|.$locale->text('Postscript').qq|
+ <option value=pdf $form->{DF}{pdf}>|.$locale->text('PDF');
+ }
+
+ print qq|
+<table>
+ <tr>
+ <td><select name=type>$type</select></td>
+ <td><select name=format>$format</select></td>
+ $media
+|;
+
+ if (%printer && $latex && $form->{media} ne 'email') {
+ print qq|
+ <td>|.$locale->text('Copies').qq|
+ <input name=copies size=2 value=$form->{copies}></td>
+|;
+ }
+
+ print qq|
+ </tr>
+</table>
+|;
+
+}
+
+
+sub e_mail {
+
+ # get name and email addresses
+ for $i (1 .. $form->{rowcount}) {
+ if ($form->{"statement_$i"}) {
+ $form->{"$form->{ct}_id"} = $form->{"$form->{ct}_id_$i"};
+ $form->{"statement_1"} = 1;
+ $form->{"language_code_1"} = $form->{"language_code_$i"};
+ $form->{"curr_1"} = $form->{"curr_$i"};
+ RP->get_customer(\%myconfig, \%$form);
+ $selected = 1;
+ last;
+ }
+ }
+
+ $form->error($locale->text('Nothing selected!')) unless $selected;
+
+ if ($myconfig{role} =~ /(admin|manager)/) {
+ $bcc = qq|
+ <th align=right nowrap=true>|.$locale->text('Bcc').qq|</th>
+ <td><input name=bcc size=30 value="$form->{bcc}"></td>
+|;
+ }
+
+ $title = $locale->text('E-mail Statement to')." $form->{$form->{ct}}";
+
+ $form->{media} = "email";
+
+ $form->header;
+
+ print qq|
+<body>
+
+<form method=post action=$form->{script}>
+
+<table width=100%>
+ <tr class=listtop>
+ <th>$title</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+ <th align=right nowrap>|.$locale->text('E-mail').qq|</th>
+ <td><input name=email size=30 value="$form->{email}"></td>
+ <th align=right nowrap>|.$locale->text('Cc').qq|</th>
+ <td><input name=cc size=30 value="$form->{cc}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>|.$locale->text('Subject').qq|</th>
+ <td><input name=subject size=30 value="$form->{subject}"></td>
+ $bcc
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+ <th align=left nowrap>|.$locale->text('Message').qq|</th>
+ </tr>
+ <tr>
+ <td><textarea name=message rows=15 cols=60 wrap=soft>$form->{message}</textarea></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+|;
+
+ &print_options;
+
+ for (qw(email cc bcc subject message type sendmode format action nextsub)) { delete $form->{$_} }
+
+ $form->hide_form;
+
+ print qq|
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+<input type=hidden name=nextsub value=send_email>
+
+<br>
+<input name=action class=submit type=submit value="|.$locale->text('Continue').qq|">
+</form>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub send_email {
+
+ $form->{OUT} = "$sendmail";
+
+ $form->{subject} = $locale->text('Statement').qq| - $form->{todate}| unless $form->{subject};
+ $form->isblank("email", $locale->text('E-mail address missing!'));
+
+ RP->aging(\%myconfig, \%$form);
+
+ &print_form;
+
+ $form->redirect($locale->text('Statement sent to')." $form->{$form->{ct}}");
+
+}
+
+
+
+sub print {
+
+ if ($form->{media} !~ /(screen|email)/) {
+ $form->error($locale->text('Select postscript or PDF!')) if ($form->{format} !~ /(postscript|pdf)/);
+ }
+
+ for $i (1 .. $form->{rowcount}) {
+ if ($form->{"statement_$i"}) {
+ $form->{"$form->{ct}_id"} = $form->{"$form->{ct}_id_$i"};
+ $language_code = $form->{"language_code_$i"};
+ $curr = $form->{"curr_$i"};
+ $selected = 1;
+ last;
+ }
+ }
+
+ $form->error($locale->text('Nothing selected!')) unless $selected;
+
+
+ if ($form->{media} !~ /(screen|email)/) {
+ $form->{OUT} = "| $printer{$form->{media}}";
+ $form->{"$form->{ct}_id"} = "";
+ $SIG{INT} = 'IGNORE';
+ } else {
+ $form->{"statement_1"} = 1;
+ $form->{"language_code_1"} = $language_code;
+ $form->{"curr_1"} = $curr;
+ }
+
+ RP->aging(\%myconfig, \%$form);
+
+ &print_form;
+
+ $form->redirect($locale->text('Statements sent to printer!')) if ($form->{media} !~ /(screen|email)/);
+
+}
+
+
+sub print_form {
+
+ $form->{statementdate} = $locale->date(\%myconfig, $form->{todate}, 1);
+
+ $form->{templates} = "$myconfig{templates}";
+
+ # setup variables for the form
+ @a = qw(company address businessnumber tel fax);
+ for (@a) { $form->{$_} = $myconfig{$_} }
+ $form->{address} =~ s/\\n/\n/g;
+
+ $form->format_string(@a);
+
+ $form->{IN} = "$form->{type}.html";
+
+ if ($form->{format} eq 'postscript') {
+ $form->{IN} =~ s/html$/tex/;
+ }
+ if ($form->{format} eq 'pdf') {
+ $form->{IN} =~ s/html$/tex/;
+ }
+
+ @a = qw(name address1 address2 city state zipcode country contact);
+ push @a, "$form->{ct}phone", "$form->{ct}fax", "$form->{ct}taxnumber";
+ push @a, 'email' if ! $form->{media} eq 'email';
+
+ $i = 0;
+ while (@{ $form->{AG} }) {
+
+ $ref = shift @{ $form->{AG} };
+
+ if ($ctid != $ref->{ctid}) {
+
+ $ctid = $ref->{ctid};
+ $i++;
+
+ if ($form->{"statement_$i"}) {
+
+ for (@a) { $form->{$_} = $ref->{$_} }
+ $form->format_string(@a);
+
+ $form->{$form->{ct}} = $form->{name};
+ $form->{"$form->{ct}_id"} = $ref->{ctid};
+ $form->{language_code} = $form->{"language_code_$i"};
+ $form->{currency} = $form->{"curr_$i"};
+
+ for (qw(invnumber ordnumber ponumber notes invdate duedate)) { $form->{$_} = () }
+ $form->{total} = 0;
+ foreach $item (qw(c0 c30 c60 c90)) {
+ $form->{$item} = ();
+ $form->{"${item}total"} = 0;
+ }
+
+ &statement_details($ref) if $ref->{curr} eq $form->{currency};
+
+ while ($ref) {
+
+ if (scalar (@{ $form->{AG} }) > 0) {
+ # one or more left to go
+ if ($ctid == $form->{AG}->[0]->{ctid}) {
+ $ref = shift @{ $form->{AG} };
+ &statement_details($ref) if $ref->{curr} eq $form->{currency};
+ # any more?
+ $ref = scalar (@{ $form->{AG} });
+ } else {
+ $ref = 0;
+ }
+ } else {
+ # set initial ref to 0
+ $ref = 0;
+ }
+
+ }
+
+ for ("c0", "c30", "c60", "c90", "") { $form->{"${_}total"} = $form->format_amount(\%myconfig, $form->{"${_}total"}, 2) }
+
+ $form->parse_template(\%myconfig, $userspath);
+
+ }
+ }
+ }
+
+}
+
+
+sub statement_details {
+ my ($ref) = @_;
+
+ $ref->{invdate} = $ref->{transdate};
+ my @a = qw(invnumber ordnumber ponumber notes invdate duedate);
+ for (@a) { $form->{"${_}_1"} = $ref->{$_} }
+ $form->format_string(qw(invnumber_1 ordnumber_1 ponumber_1 notes_1));
+ for (@a) { push @{ $form->{$_} }, $form->{"${_}_1"} }
+
+ foreach $item (qw(c0 c30 c60 c90)) {
+ eval { $ref->{$item} = $form->round_amount($ref->{$item} / $ref->{exchangerate}, 2) };
+ $form->{"${item}total"} += $ref->{$item};
+ $form->{total} += $ref->{$item};
+ push @{ $form->{$item} }, $form->format_amount(\%myconfig, $ref->{$item}, 2);
+ }
+
+}
+
+
+sub generate_tax_report {
+
+ RP->tax_report(\%myconfig, \%$form);
+
+ $descvar = "$form->{accno}_description";
+ $description = $form->escape($form->{$descvar});
+ $ratevar = "$form->{accno}_rate";
+ $taxrate = $form->{"$form->{accno}_rate"};
+
+ if ($form->{accno} =~ /^gifi_/) {
+ $descvar = "gifi_$form->{accno}_description";
+ $description = $form->escape($form->{$descvar});
+ $ratevar = "gifi_$form->{accno}_rate";
+ $taxrate = $form->{"gifi_$form->{accno}_rate"};
+ }
+
+ $department = $form->escape($form->{department});
+
+ # construct href
+ $href = "$form->{script}?path=$form->{path}&direction=$form->{direction}&oldsort=$form->{oldsort}&action=generate_tax_report&login=$form->{login}&sessionid=$form->{sessionid}&fromdate=$form->{fromdate}&todate=$form->{todate}&db=$form->{db}&method=$form->{method}&summary=$form->{summary}&accno=$form->{accno}&$descvar=$description&department=$department&$ratevar=$taxrate&report=$form->{report}";
+
+ # construct callback
+ $description = $form->escape($form->{$descvar},1);
+ $department = $form->escape($form->{department},1);
+
+ $form->sort_order();
+
+ $callback = "$form->{script}?path=$form->{path}&direction=$form->{direction}&oldsort=$form->{oldsort}&action=generate_tax_report&login=$form->{login}&sessionid=$form->{sessionid}&fromdate=$form->{fromdate}&todate=$form->{todate}&db=$form->{db}&method=$form->{method}&summary=$form->{summary}&accno=$form->{accno}&$descvar=$description&department=$department&$ratevar=$taxrate&report=$form->{report}";
+
+ $form->{title} = $locale->text('GIFI')." - " if ($form->{accno} =~ /^gifi_/);
+
+ $title = $form->escape($form->{title});
+ $href .= "&title=$title";
+ $title = $form->escape($form->{title},1);
+ $callback .= "&title=$title";
+
+ $form->{title} = qq|$form->{title} $form->{"$form->{accno}_description"} |;
+
+ @columns = $form->sort_columns(qw(id transdate invnumber name description netamount tax total));
+
+ $form->{"l_description"} = "" if $form->{summary};
+
+ foreach $item (@columns) {
+ if ($form->{"l_$item"} eq "Y") {
+ push @column_index, $item;
+
+ # add column to href and callback
+ $callback .= "&l_$item=Y";
+ $href .= "&l_$item=Y";
+ }
+ }
+
+
+ if ($form->{l_subtotal} eq 'Y') {
+ $callback .= "&l_subtotal=Y";
+ $href .= "&l_subtotal=Y";
+ }
+
+
+ if ($form->{department}) {
+ ($department) = split /--/, $form->{department};
+ $option = $locale->text('Department')." : $department";
+ }
+
+ # if there are any dates
+ if ($form->{fromdate} || $form->{todate}) {
+ if ($form->{fromdate}) {
+ $fromdate = $locale->date(\%myconfig, $form->{fromdate}, 1);
+ }
+ if ($form->{todate}) {
+ $todate = $locale->date(\%myconfig, $form->{todate}, 1);
+ }
+
+ $form->{period} = "$fromdate - $todate";
+ } else {
+ $form->{period} = $locale->date(\%myconfig, $form->current_date(\%myconfig), 1);
+ }
+
+
+ if ($form->{db} eq 'ar') {
+ $name = $locale->text('Customer');
+ $invoice = 'is.pl';
+ $arap = 'ar.pl';
+ }
+ if ($form->{db} eq 'ap') {
+ $name = $locale->text('Vendor');
+ $invoice = 'ir.pl';
+ $arap = 'ap.pl';
+ }
+
+ $option .= "<br>" if $option;
+ $option .= "$form->{period}";
+
+
+ $column_header{id} = qq|<th><a class=listheading href=$href&sort=id>|.$locale->text('ID').qq|</th>|;
+ $column_header{invnumber} = qq|<th><a class=listheading href=$href&sort=invnumber>|.$locale->text('Invoice').qq|</th>|;
+ $column_header{transdate} = qq|<th><a class=listheading href=$href&sort=transdate>|.$locale->text('Date').qq|</th>|;
+ $column_header{netamount} = qq|<th class=listheading>|.$locale->text('Amount').qq|</th>|;
+ $column_header{tax} = qq|<th class=listheading>|.$locale->text('Tax').qq|</th>|;
+ $column_header{total} = qq|<th class=listheading>|.$locale->text('Total').qq|</th>|;
+
+ $column_header{name} = qq|<th><a class=listheading href=$href&sort=name>$name</th>|;
+
+ $column_header{description} = qq|<th><a class=listheading href=$href&sort=description>|.$locale->text('Description').qq|</th>|;
+
+
+ $form->header;
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop colspan=$colspan>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$option</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "$column_header{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ # add sort and escape callback
+ $callback = $form->escape($callback . "&sort=$form->{sort}");
+
+ if (@{ $form->{TR} }) {
+ $sameitem = $form->{TR}->[0]->{$form->{sort}};
+ }
+
+ foreach $ref (@{ $form->{TR} }) {
+
+ $module = ($ref->{invoice}) ? $invoice : $arap;
+ $module = 'ps.pl' if $ref->{till};
+
+ if ($form->{l_subtotal} eq 'Y') {
+ if ($sameitem ne $ref->{$form->{sort}}) {
+ &tax_subtotal;
+ $sameitem = $ref->{$form->{sort}};
+ }
+ }
+
+ $totalnetamount += $ref->{netamount};
+ $totaltax += $ref->{tax};
+ $ref->{total} = $ref->{netamount} + $ref->{tax};
+
+ $subtotalnetamount += $ref->{netamount};
+ $subtotaltax += $ref->{tax};
+
+ for (qw(netamount tax total)) { $ref->{$_} = $form->format_amount(\%myconfig, $ref->{$_}, 2, "&nbsp;"); }
+
+ $column_data{id} = qq|<td>$ref->{id}</td>|;
+ $column_data{invnumber} = qq|<td><a href=$module?path=$form->{path}&action=edit&id=$ref->{id}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{invnumber}</a></td>|;
+
+ for (qw(id transdate name partnumber description)) { $column_data{$_} = qq|<td>$ref->{$_}</td>| }
+
+ for (qw(netamount tax total)) { $column_data{$_} = qq|<td align=right>$ref->{$_}</td>| }
+
+ $i++; $i %= 2;
+ print qq|
+ <tr class=listrow$i>
+|;
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+ print qq|
+ </tr>
+|;
+
+ }
+
+ if ($form->{l_subtotal} eq 'Y') {
+ &tax_subtotal;
+ }
+
+
+ for (@column_index) { $column_data{$_} = qq|<th>&nbsp;</th>| }
+
+ print qq|
+ </tr>
+ <tr class=listtotal>
+|;
+
+ $total = $form->format_amount(\%myconfig, $totalnetamount + $totaltax, 2, "&nbsp;");
+ $totalnetamount = $form->format_amount(\%myconfig, $totalnetamount, 2, "&nbsp;");
+ $totaltax = $form->format_amount(\%myconfig, $totaltax, 2, "&nbsp;");
+
+ $column_data{netamount} = qq|<th class=listtotal align=right>$totalnetamount</th>|;
+ $column_data{tax} = qq|<th class=listtotal align=right>$totaltax</th>|;
+ $column_data{total} = qq|<th class=listtotal align=right>$total</th>|;
+
+ for (@column_index) { print "$column_data{$_}\n" }
+
+
+ print qq|
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+
+</body>
+</html>
+|;
+
+}
+
+
+sub tax_subtotal {
+
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $subtotal = $form->format_amount(\%myconfig, $subtotalnetamount + $subtotaltax, 2, "&nbsp;");
+ $subtotalnetamount = $form->format_amount(\%myconfig, $subtotalnetamount, 2, "&nbsp;");
+ $subtotaltax = $form->format_amount(\%myconfig, $subtotaltax, 2, "&nbsp;");
+
+ $column_data{netamount} = "<th class=listsubtotal align=right>$subtotalnetamount</th>";
+ $column_data{tax} = "<th class=listsubtotal align=right>$subtotaltax</th>";
+ $column_data{total} = "<th class=listsubtotal align=right>$subtotal</th>";
+
+ $subtotalnetamount = 0;
+ $subtotaltax = 0;
+
+ print qq|
+ <tr class=listsubtotal>
+|;
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+}
+
+
+
+sub list_payments {
+
+
+ if ($form->{account}) {
+ ($form->{paymentaccounts}) = split /--/, $form->{account};
+ }
+ if ($form->{department}) {
+ ($department, $form->{department_id}) = split /--/, $form->{department};
+ $option = $locale->text('Department')." : $department";
+ }
+
+ RP->payments(\%myconfig, \%$form);
+
+ @columns = $form->sort_columns(qw(transdate name paid source memo));
+
+ if ($form->{till}) {
+ @columns = $form->sort_columns(qw(transdate name paid curr source till));
+ if ($myconfig{role} ne 'user') {
+ @columns = $form->sort_columns(qw(transdate name paid curr source till employee));
+ }
+ }
+
+ # construct href
+ $title = $form->escape($form->{title});
+ $form->{paymentaccounts} =~ s/ /%20/g;
+
+ $href = "$form->{script}?path=$form->{path}&direction=$form->{direction}&sort=$form->{sort}&oldsort=$form->{oldsort}&action=list_payments&till=$form->{till}&login=$form->{login}&sessionid=$form->{sessionid}&fromdate=$form->{fromdate}&todate=$form->{todate}&fx_transaction=$form->{fx_transaction}&db=$form->{db}&l_subtotal=$form->{l_subtotal}&prepayment=$form->{prepayment}&paymentaccounts=$form->{paymentaccounts}&title=".$form->escape($form->{title});
+
+ $form->sort_order();
+
+ $form->{callback} = "$form->{script}?path=$form->{path}&direction=$form->{direction}&sort=$form->{sort}&oldsort=$form->{oldsort}&action=list_payments&till=$form->{till}&login=$form->{login}&sessionid=$form->{sessionid}&fromdate=$form->{fromdate}&todate=$form->{todate}&fx_transaction=$form->{fx_transaction}&db=$form->{db}&l_subtotal=$form->{l_subtotal}&prepayment=$form->{prepayment}&paymentaccounts=$form->{paymentaccounts}&title=".$form->escape($form->{title},1);
+
+ if ($form->{account}) {
+ $callback .= "&account=".$form->escape($form->{account},1);
+ $href .= "&account=".$form->escape($form->{account});
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Account')." : $form->{account}";
+ }
+ if ($form->{department}) {
+ $callback .= "&department=".$form->escape($form->{department},1);
+ $href .= "&department=".$form->escape($form->{department});
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Department')." : $form->{department}";
+ }
+ if ($form->{description}) {
+ $callback .= "&description=".$form->escape($form->{description},1);
+ $href .= "&description=".$form->escape($form->{description});
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Description')." : $form->{description}";
+ }
+ if ($form->{source}) {
+ $callback .= "&source=".$form->escape($form->{source},1);
+ $href .= "&source=".$form->escape($form->{source});
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Source')." : $form->{source}";
+ }
+ if ($form->{memo}) {
+ $callback .= "&memo=".$form->escape($form->{memo},1);
+ $href .= "&memo=".$form->escape($form->{memo});
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('Memo')." : $form->{memo}";
+ }
+ if ($form->{fromdate}) {
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('From')."&nbsp;".$locale->date(\%myconfig, $form->{fromdate}, 1);
+ }
+ if ($form->{todate}) {
+ $option .= "\n<br>" if ($option);
+ $option .= $locale->text('To')."&nbsp;".$locale->date(\%myconfig, $form->{todate}, 1);
+ }
+
+ $callback = $form->escape($form->{callback});
+
+ $column_header{name} = "<th><a class=listheading href=$href&sort=name>".$locale->text('Description')."</a></th>";
+ $column_header{transdate} = "<th><a class=listheading href=$href&sort=transdate>".$locale->text('Date')."</a></th>";
+ $column_header{paid} = "<th class=listheading>".$locale->text('Amount')."</a></th>";
+ $column_header{curr} = "<th class=listheading>".$locale->text('Curr')."</a></th>";
+ $column_header{source} = "<th><a class=listheading href=$href&sort=source>".$locale->text('Source')."</a></th>";
+ $column_header{memo} = "<th><a class=listheading href=$href&sort=memo>".$locale->text('Memo')."</a></th>";
+
+ $column_header{employee} = "<th><a class=listheading href=$href&sort=employee>".$locale->text('Salesperson')."</a></th>";
+ $column_header{till} = "<th><a class=listheading href=$href&sort=till>".$locale->text('Till')."</a></th>";
+
+ @column_index = @columns;
+ $colspan = $#column_index + 1;
+
+ $form->header;
+
+ print qq|
+<body>
+
+<table width=100%>
+ <tr>
+ <th class=listtop>$form->{title}</th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>$option</td>
+ </tr>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+|;
+
+ for (@column_index) { print "\n$column_header{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+
+ foreach $ref (sort { $a->{accno} cmp $b->{accno} } @{ $form->{PR} }) {
+
+ next unless @{ $form->{$ref->{id}} };
+
+ print qq|
+ <tr>
+ <th colspan=$colspan align=left>$ref->{accno}--$ref->{description}</th>
+ </tr>
+|;
+
+ if (@{ $form->{$ref->{id}} }) {
+ $sameitem = $form->{$ref->{id}}[0]->{$form->{sort}};
+ }
+
+ foreach $payment (@{ $form->{$ref->{id}} }) {
+
+ if ($form->{l_subtotal}) {
+ if ($payment->{$form->{sort}} ne $sameitem) {
+ # print subtotal
+ &payment_subtotal;
+ }
+ }
+
+ next if ($form->{till} && ! $payment->{till});
+
+ $column_data{name} = "<td>$payment->{name}&nbsp;</td>";
+ $column_data{transdate} = "<td>$payment->{transdate}&nbsp;</td>";
+ $column_data{paid} = "<td align=right>".$form->format_amount(\%myconfig, $payment->{paid}, 2, "&nbsp;")."</td>";
+ $column_data{curr} = "<td>$payment->{curr}</td>";
+ $column_data{source} = "<td>$payment->{source}&nbsp;</td>";
+ $column_data{memo} = "<td>$payment->{memo}&nbsp;</td>";
+ $column_data{employee} = "<td>$payment->{employee}&nbsp;</td>";
+ $column_data{till} = "<td>$payment->{till}&nbsp;</td>";
+
+ $subtotalpaid += $payment->{paid};
+ $accounttotalpaid += $payment->{paid};
+ $totalpaid += $payment->{paid};
+
+ $i++; $i %= 2;
+ print qq|
+ <tr class=listrow$i>
+|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ $sameitem = $payment->{$form->{sort}};
+
+ }
+
+ &payment_subtotal if $form->{l_subtotal};
+
+ # print account totals
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $column_data{paid} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $accounttotalpaid, 2, "&nbsp;")."</th>";
+
+ print qq|
+ <tr class=listtotal>
+|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+
+ $accounttotalpaid = 0;
+
+ }
+
+
+ # print total
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $column_data{paid} = "<th class=listtotal align=right>".$form->format_amount(\%myconfig, $totalpaid, 2, "&nbsp;")."</th>";
+
+ print qq|
+ <tr class=listtotal>
+|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+</table>
+|;
+
+ if ($form->{menubar}) {
+ require "$form->{path}/menu.pl";
+ &menubar;
+ }
+
+ print qq|
+
+</body>
+</html>
+|;
+
+}
+
+
+sub payment_subtotal {
+
+ if ($subtotalpaid != 0) {
+ for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
+
+ $column_data{paid} = "<th class=listsubtotal align=right>".$form->format_amount(\%myconfig, $subtotalpaid, 2, "&nbsp;")."</th>";
+
+ print qq|
+ <tr class=listsubtotal>
+|;
+
+ for (@column_index) { print "\n$column_data{$_}" }
+
+ print qq|
+ </tr>
+|;
+ }
+
+ $subtotalpaid = 0;
+
+}
+
+
diff --git a/bp.pl b/bp.pl
new file mode 100755
index 00000000..742968ca
--- /dev/null
+++ b/bp.pl
@@ -0,0 +1,2 @@
+#!/usr/bin/perl
+eval { require "menu.pl"; };
diff --git a/ca.pl b/ca.pl
new file mode 100755
index 00000000..742968ca
--- /dev/null
+++ b/ca.pl
@@ -0,0 +1,2 @@
+#!/usr/bin/perl
+eval { require "menu.pl"; };
diff --git a/cp.pl b/cp.pl
new file mode 100755
index 00000000..742968ca
--- /dev/null
+++ b/cp.pl
@@ -0,0 +1,2 @@
+#!/usr/bin/perl
+eval { require "menu.pl"; };
diff --git a/css/sql-ledger-blue.css b/css/sql-ledger-blue.css
new file mode 100755
index 00000000..c44c07b2
--- /dev/null
+++ b/css/sql-ledger-blue.css
@@ -0,0 +1,206 @@
+Below is the result of your feedback form. It was submitted by
+Eduard Rozenberg (edrozenberg@pobox.com) on Thursday, August 18, 2005 at 15:41:32
+---------------------------------------------------------------------------
+
+message: Hello,
+
+I've created a new stylesheet more based on the color blue,
+and am pasting it below in case it's useful as a possible
+alternate (sql-ledger_blue.css)
+
+Regards,
+--Ed Rozenberg
+
+================
+
+/* stylesheet for sql-ledger */
+
+/* general stuff */
+A:link { color: #a0522d; text-decoration: none; }
+A:visited { color: #a0522d; text-decoration: none; }
+A:active { color: #a0522d; text-decoration: underline; border: 1px #6495ED; }
+/*A:hover { color: white;
+ background-color: #bbbbbb;
+ text-decoration: none;
+}*/
+
+body {
+ font-family: Verdana, Arial, Helvetica;
+ font-size: 10pt;
+ background-color: white;
+ color: black
+}
+
+td {
+ font-family: Verdana, Arial, Helvetica;
+ font-size: 10pt;
+}
+
+th {
+ font-family: Verdana, Arial, Helvetica;
+ font-size: 10pt;
+}
+
+/* login and admin */
+.login {
+ font-family: Verdana, Arial, Helvetica;
+}
+body.login {
+ background: #5a7d9b;
+ color: black;
+}
+h1.login {
+ font-size: 18pt;
+}
+table.login {
+ background-color: #FBFFE7;
+ padding: 20px;
+}
+td.login {
+ text-align: center;
+}
+th.login {
+ text-align: right;
+}
+
+body.admin {
+ background-color: #FBFFE7;
+ color: black;
+}
+
+body.menu {
+ font-family: Verdana, Arial, Helvetica;
+ font-size: 10pt;
+ color: black;
+ background: #F0F0F0;
+}
+
+.menuOut {
+ cursor: pointer;
+ font-size: 12px;
+ color: Black;
+ /* border: 1px solid #d8bfd8; */
+ padding: 2px;
+ text-align: left;
+ font-weight: bold;
+}
+
+.menuOver {
+ cursor: pointer;
+ font-size: 12px;
+ color: #32CD32;
+ /* border: 1px solid #d8bfd8; */
+ padding: 2px;
+ text-align: left;
+ font-weight: bold;
+}
+
+.submenu {
+ font-family: Verdana, Arial, Helvetica;
+ font-size: 12px;
+ padding-left: 5px;
+}
+
+.menuOut a {
+ cursor: pointer;
+ margin: 0px;
+ font-size: 12px;
+ color: #6495ED;
+ border: 0px solid #000000;
+ padding: 0px;
+ text-align: left;
+ font-weight: bold;
+}
+
+.menuOver a {
+ cursor: pointer;
+ margin: 0px;
+ font-size: 12px;
+ color: #32CD32;
+ border: 0px solid #000000;
+ padding: 0px;
+ text-align: left;
+ font-weight: bold;
+}
+
+.submenu a {
+ color: #6495ED;
+ text-decoration: none;
+}
+
+.submenu a:hover {
+ color: #32CD32;
+ text-decoration: none;
+}
+
+.listtop { font-size: 10pt; background-color: black; color: white; }
+.listheading { font-size: 10pt; background-color: #6495ED;; color: white; }
+A.listheading:link, A.listheading:active, A.listheading:visited {
+ color: white;
+ text-decoration: none; }
+.listrow1 { font-size: 10pt; background-color: #dedede; color: black; vertical-align: top; }
+.listrow0 { font-size: 10pt; background-color: #f5f5f5; color: black; vertical-align: top; }
+.listsubtotal { font-size: 10pt; background-color: #336666; color: white; }
+.listtotal { font-size: 10pt; background-color: black; color: white; }
+
+textarea {
+ font-family: Verdana, Arial, Helvetica;
+ font-size: 10pt;
+}
+
+input {
+ font-family: Verdana, Arial, Helvetica;
+ font-size: 10pt;
+}
+
+select {
+ font-family: Verdana, Arial, Helvetica;
+ font-size: 10pt;
+}
+
+.submit {
+ font-family: Verdana, Arial, Helvetica;
+ font-size: 10pt;
+ color: Black;
+}
+
+.checkbox, .radio {
+ font-family: Verdana, Arial, Helvetica;
+ font-size: 10pt;
+}
+
+.plus0 { /* font color for negative numbers */
+ color: red;
+}
+
+.plus1 {
+ color: green;
+}
+
+h2.confirm {
+ color: blue;
+ font-size: 14pt;
+}
+
+h2.error {
+ color: red;
+ font-size: 14pt;
+}
+
+
+/* media stuff */
+
+@media screen {
+ .noscreen { /* items with this class won't display */
+ display: none;
+ }
+}
+
+@media print {
+ .noprint { /* items with this class won't print */
+ display: none;
+ }
+}
+
+
+---------------------------------------------------------------------------
diff --git a/css/sql-ledger-brown.css b/css/sql-ledger-brown.css
new file mode 100755
index 00000000..e978fc5a
--- /dev/null
+++ b/css/sql-ledger-brown.css
@@ -0,0 +1,215 @@
+/* stylesheet for sql-ledger */
+
+/* general stuff */
+A:link { color: #a0522d; text-decoration: none; }
+A:visited { color: #a0522d; text-decoration: none; }
+A:active { color: #a0522d; text-decoration: underline; }
+A:hover { color: white;
+ background-color: #bbbbbb;
+ text-decoration: none;
+}
+
+
+body {
+ margin: 0px 0px 0px 0px;
+ font-family: Arial, Verdana, Helvetica, sans-serif;
+ color: #444444;
+ font-size: 10pt;
+ background-color: #ffffff;
+ scrollbar-arrow-color: #FFFFFF;
+ scrollbar-3dlight-color: #dddddd;
+ scrollbar-highlight-color: #aaaaaa;
+ scrollbar-face-color: #aaaaaa;
+ scrollbar-shadow-color: #aaaaaa;
+ scrollbar-track-color: #cccccc;
+ scrollbar-darkshadow-color: #666666;
+ }
+
+
+td {
+ font-family: Verdana, Helvetica, Arial, sans-serif;
+ font-size: 10pt;
+}
+
+th {
+ font-family: Verdana, Helvetica, Arial, sans-serif;
+ font-size: 10pt;
+}
+
+/* login and admin */
+.login {
+ font-family: Verdana, Helvetica, Arial, sans-serif;
+}
+body.login {
+ background: #636163;
+ color: black;
+}
+h1.login {
+ font-size: 18pt;
+}
+table.login {
+ background-color: #eeeecc;
+ padding: 20px;
+}
+td.login {
+ text-align: center;
+}
+th.login {
+ text-align: right;
+}
+
+body.admin {
+ background-color: #636163;
+ color: black;
+}
+
+body.menu {
+ background-color: #EEEECC;
+ font-family: Verdana, Helvetica, Arial, sans-serif;
+ font-size: 10pt;
+ color: black;
+}
+
+.menuOut {
+ cursor: pointer;
+ background-color: #EEEECC;
+ font-size: 10px;
+ color: #000084;
+ border: 1px solid #EEEECC;
+ padding: 2px;
+ text-align: left;
+ font-weight: bold;
+}
+
+.menuOver {
+ cursor: pointer;
+ background-color: #5a7d9b;
+ font-size: 10px;
+ color: #ffffff;
+ border: 1px solid #EEEECC;
+ padding: 2px;
+ text-align: left;
+ font-weight: bold;
+}
+
+.submenu {
+ font-family: Verdana, Helvetica, Arial, sans-serif;
+ font-size: 10px;
+ padding-left: 5px;
+}
+
+.menuOut a {
+ cursor: pointer;
+ margin: 0px;
+ background-color: #EEEECC;
+ font-size: 10px;
+ color: #000084;
+ border: 0px solid #000000;
+ padding: 0px;
+ text-align: left;
+ font-weight: bold;
+}
+
+.menuOver a {
+ cursor: pointer;
+ margin: 0px;
+ background-color: #5a7d9b;
+ font-size: 10px;
+ color: #ffffff;
+ border: 0px solid #000000;
+ padding: 0px;
+ text-align: left;
+ font-weight: bold;
+ text-decoration: none;
+}
+
+.submenu a {
+ color: #a0522d;
+ text-decoration: none;
+}
+
+.submenu a:hover {
+ color: #a0522d;
+ text-decoration: none;
+}
+
+.listtop { font-size: 10pt; background-color: #004d99; color: white; }
+.listheading { font-size: 10pt; background-color: #356799; color: white; }
+A.listheading:link, A.listheading:active, A.listheading:visited {
+ color: white;
+ text-decoration: none; }
+.listrow1 { font-size: 10pt; background-color: #ffffee; color: black;
+vertical-align: top; }
+.listrow0 { font-size: 10pt; background-color: #eeeecc; color: black;
+vertical-align: top; }
+.listsubtotal { font-size: 10pt; background-color: #dad561; color: white; }
+.listtotal { font-size: 10pt; background-color: black; color: white; }
+
+textarea {
+ font-family: Verdana, Helvetica, Arial, sans-serif;
+ border: 1px solid #888888;
+ font-size: 11px;
+ background-color: #eeeeee;
+ font-weight: bold;
+ }
+
+input {
+ font-family: Verdana, Helvetica, Arial, sans-serif;
+ border: 1px solid #888888;
+ font-size: 11px;
+ background-color: #eeeeee;
+ font-weight: bold;
+}
+
+select {
+ font-family: Verdana, Helvetica, Arial, sans-serif;
+ font-size: 10pt;
+}
+
+.submit {
+ border: 1px solid #386CA1;
+ font-size: 11px;
+ color: #ffffff;
+ background-color: #3F7BB7;
+ font-weight: normal;
+}
+
+.checkbox, .radio {
+ font-family: Verdana, Helvetica, Arial, sans-serif;
+ font-size: 10px;
+}
+
+.plus0 { /* font color for negative numbers */
+ color: red;
+}
+
+.plus1 {
+ color: green;
+}
+
+h2.confirm {
+ color: blue;
+ font-size: 14pt;
+}
+
+h2.error {
+ color: red;
+ font-size: 14pt;
+}
+
+
+/* media stuff */
+
+@media screen {
+ .noscreen { /* items with this class won't display */
+ display: none;
+ }
+}
+
+@media print {
+ .noprint { /* items with this class won't print */
+ display: none;
+ }
+}
+
+
diff --git a/css/sql-ledger-purple.css b/css/sql-ledger-purple.css
new file mode 100755
index 00000000..500994f8
--- /dev/null
+++ b/css/sql-ledger-purple.css
@@ -0,0 +1,195 @@
+/* stylesheet for sql-ledger */
+
+/* general stuff */
+A:link { color: #a0522d; text-decoration: none; }
+A:visited { color: #a0522d; text-decoration: none; }
+A:active { color: #a0522d; text-decoration: underline; }
+A:hover { color: white;
+ background-color: #bbbbbb;
+ text-decoration: none;
+}
+
+body {
+ font-family: Verdana, Arial, Helvetica;
+ font-size: 10pt;
+ background-color: white;
+ color: black
+}
+
+td {
+ font-family: Verdana, Arial, Helvetica;
+ font-size: 10pt;
+}
+
+th {
+ font-family: Verdana, Arial, Helvetica;
+ font-size: 10pt;
+}
+
+/* login and admin */
+.login {
+ font-family: Verdana, Arial, Helvetica;
+}
+body.login {
+ background: #5a7d9b;
+ color: black;
+}
+h1.login {
+ font-size: 18pt;
+}
+table.login {
+ background-color: #FBFFE7;
+ padding: 20px;
+}
+td.login {
+ text-align: center;
+}
+th.login {
+ text-align: right;
+}
+
+body.admin {
+ background-color: #FBFFE7;
+ color: black;
+}
+
+body.menu {
+ background-color: #d8bfd8;
+ font-family: Verdana, Arial, Helvetica;
+ font-size: 10pt;
+ color: black;
+}
+
+.menuOut {
+ cursor: pointer;
+ background-color: #d8bfd8;
+ font-size: 10px;
+ color: #000084;
+ border: 1px solid #d8bfd8;
+ padding: 2px;
+ text-align: left;
+ font-weight: bold;
+}
+
+.menuOver {
+ cursor: pointer;
+ background-color: #5a7d9b;
+ font-size: 10px;
+ color: #ffffff;
+ border: 1px solid #d8bfd8;
+ padding: 2px;
+ text-align: left;
+ font-weight: bold;
+}
+
+.submenu {
+ font-family: Verdana, Arial, Helvetica;
+ font-size: 10px;
+ padding-left: 5px;
+}
+
+.menuOut a {
+ cursor: pointer;
+ margin: 0px;
+ background-color: #e6e6fa;
+ font-size: 10px;
+ color: #000084;
+ border: 0px solid #000000;
+ padding: 0px;
+ text-align: left;
+ font-weight: bold;
+}
+
+.menuOver a {
+ cursor: pointer;
+ margin: 0px;
+ background-color: #5a7d9b;
+ font-size: 10px;
+ color: #ffffff;
+ border: 0px solid #000000;
+ padding: 0px;
+ text-align: left;
+ font-weight: bold;
+}
+
+.submenu a {
+ color: #a0522d;
+ text-decoration: none;
+}
+
+.submenu a:hover {
+ color: #a0522d;
+ text-decoration: none;
+}
+
+.listtop { font-size: 10pt; background-color: black; color: white; }
+.listheading { font-size: 10pt; background-color: #336666; color: white; }
+A.listheading:link, A.listheading:active, A.listheading:visited {
+ color: white;
+ text-decoration: none; }
+.listrow1 { font-size: 10pt; background-color: #e6e6fa; color: black; vertical-align: top; }
+.listrow0 { font-size: 10pt; background-color: #ffe4e1; color: black; vertical-align: top; }
+.listsubtotal { font-size: 10pt; background-color: #5a7d9b; color: white; }
+.listtotal { font-size: 10pt; background-color: black; color: white; }
+
+textarea {
+ font-family: Verdana, Arial, Helvetica;
+ font-size: 10pt;
+}
+
+input {
+ font-family: Verdana, Arial, Helvetica;
+ font-size: 10pt;
+}
+
+select {
+ font-family: Verdana, Arial, Helvetica;
+ font-size: 10pt;
+}
+
+.submit {
+ font-family: Verdana, Arial, Helvetica;
+ font-size: 10pt;
+ color: #000080;
+}
+
+.checkbox, .radio {
+ font-family: Verdana, Arial, Helvetica;
+ font-size: 10pt;
+}
+
+.plus0 { /* font color for negative numbers */
+ color: red;
+}
+
+.plus1 {
+ color: green;
+}
+
+h2.confirm {
+ color: blue;
+ font-size: 14pt;
+}
+
+h2.error {
+ color: red;
+ font-size: 14pt;
+}
+
+
+/* media stuff */
+
+@media screen {
+ .noscreen { /* items with this class won't display */
+ display: none;
+ }
+}
+
+@media print {
+ .noprint { /* items with this class won't print */
+ display: none;
+ }
+}
+
+
+
diff --git a/css/sql-ledger-red.css b/css/sql-ledger-red.css
new file mode 100755
index 00000000..89a8209d
--- /dev/null
+++ b/css/sql-ledger-red.css
@@ -0,0 +1,189 @@
+/* stylesheet for sql-ledger */
+
+/* general stuff */
+A:link { color: #a0522d; text-decoration: none; }
+A:visited { color: #a0522d; text-decoration: none; }
+A:active { color: #a0522d; text-decoration: underline; }
+A:hover { color: white;
+ background-color: #bbbbbb;
+ text-decoration: none;
+}
+
+body {
+ font-family: Verdana, Arial, Helvetica;
+ font-size: 10pt;
+ background-color: white;
+ color: black
+}
+
+td {
+ font-family: Verdana, Arial, Helvetica;
+ font-size: 10pt;
+}
+
+th {
+ font-family: Verdana, Arial, Helvetica;
+ font-size: 10pt;
+}
+
+/* login and admin */
+.login {
+ font-family: Verdana, Arial, Helvetica;
+}
+body.login {
+ background: red;
+ color: black;
+}
+h1.login {
+ font-size: 18pt;
+}
+table.login {
+ background-color: white;
+ padding: 20px;
+}
+td.login {
+ text-align: center;
+}
+th.login {
+ text-align: right;
+}
+
+body.admin {
+ background-color: red;
+ color: black;
+}
+
+body.menu {
+ background-color: red;
+ font-family: Verdana, Arial, Helvetica;
+ font-size: 12pt;
+ color: black;
+}
+
+.menuOut {
+ cursor: pointer;
+ background-color: red;
+ font-size: 12px;
+ color: #000000;
+ border: 0px solid red;
+ padding: 2px;
+ text-align: left;
+}
+
+.menuOver {
+ cursor: pointer;
+ background-color: #5a7d9b;
+ font-size: 12px;
+ color: #ffffff;
+ border: 0px solid red;
+ padding: 2px;
+ text-align: left;
+}
+
+.submenu {
+ font-family: Verdana, Arial, Helvetica;
+ font-size: 12px;
+ padding-left: 5px;
+}
+
+.menuOut a {
+ cursor: pointer;
+ margin: 0px;
+ background-color: red;
+ font-size: 12px;
+ color: #840000;
+ border: 0px solid #000000;
+ padding: 0px;
+ text-align: left;
+}
+
+.menuOver a {
+ cursor: pointer;
+ margin: 0px;
+ background-color: #5a7d9b;
+ font-size: 12px;
+ color: #ffffff;
+ border: 0px solid #000000;
+ padding: 0px;
+ text-align: left;
+}
+
+.submenu a {
+ color: #840000;
+ text-decoration: none;
+}
+
+.submenu a:hover {
+ color: #840000;
+ text-decoration: none;
+}
+
+.listtop { font-size: 10pt; background-color: red; color: black; border: 1px solid #000000 }
+.listheading { font-size: 10pt; background-color: red; color: black; border: 1px solid #000000 }
+A.listheading:link, A.listheading:active, A.listheading:visited {
+ color: black;
+ text-decoration: none; }
+.listrow1 { font-size: 10pt; background-color: #e6e6fa; color: black; vertical-align: top; }
+.listrow0 { font-size: 10pt; background-color: #ffe4e1; color: black; vertical-align: top; }
+.listsubtotal { font-size: 10pt; background-color: #5a7d9b; color: white; }
+.listtotal { font-size: 10pt; background-color: black; color: white; }
+
+textarea {
+ font-family: Verdana, Arial, Helvetica;
+ font-size: 10pt;
+}
+
+input {
+ font-family: Verdana, Arial, Helvetica;
+ font-size: 10pt;
+}
+
+select {
+ font-family: Verdana, Arial, Helvetica;
+ font-size: 10pt;
+}
+
+.submit {
+ font-family: Verdana, Arial, Helvetica;
+ font-size: 10pt;
+ color: #000080;
+}
+
+.checkbox, .radio {
+ font-family: Verdana, Arial, Helvetica;
+ font-size: 10pt;
+}
+
+.plus0 { /* font color for negative numbers */
+ color: red;
+}
+
+.plus1 {
+ color: green;
+}
+
+h2.confirm {
+ color: blue;
+ font-size: 14pt;
+}
+
+h2.error {
+ color: red;
+ font-size: 14pt;
+}
+
+
+/* media stuff */
+
+@media screen {
+ .noscreen { /* items with this class won't display */
+ display: none;
+ }
+}
+
+@media print {
+ .noprint { /* items with this class won't print */
+ display: none;
+ }
+}
+
diff --git a/css/sql-ledger-yellow.css b/css/sql-ledger-yellow.css
new file mode 100755
index 00000000..e5764af7
--- /dev/null
+++ b/css/sql-ledger-yellow.css
@@ -0,0 +1,189 @@
+/* stylesheet for sql-ledger */
+
+/* general stuff */
+A:link { color: #a0522d; text-decoration: none; }
+A:visited { color: #a0522d; text-decoration: none; }
+A:active { color: #a0522d; text-decoration: underline; }
+A:hover { color: white;
+ background-color: #bbbbbb;
+ text-decoration: none;
+}
+
+body {
+ font-family: Verdana, Arial, Helvetica;
+ font-size: 10pt;
+ background-color: white;
+ color: black
+}
+
+td {
+ font-family: Verdana, Arial, Helvetica;
+ font-size: 10pt;
+}
+
+th {
+ font-family: Verdana, Arial, Helvetica;
+ font-size: 10pt;
+}
+
+/* login and admin */
+.login {
+ font-family: Verdana, Arial, Helvetica;
+}
+body.login {
+ background: #D89C0F;
+ color: black;
+}
+h1.login {
+ font-size: 18pt;
+}
+table.login {
+ background-color: white;
+ padding: 20px;
+}
+td.login {
+ text-align: center;
+}
+th.login {
+ text-align: right;
+}
+
+body.admin {
+ background-color: #D89C0F;
+ color: black;
+}
+
+body.menu {
+ background-color: #D89C0F;
+ font-family: Verdana, Arial, Helvetica;
+ font-size: 12pt;
+ color: black;
+}
+
+.menuOut {
+ cursor: pointer;
+ background-color: #D89C0F;
+ font-size: 12px;
+ color: #000000;
+ border: 0px solid #D89C0F;
+ padding: 2px;
+ text-align: left;
+}
+
+.menuOver {
+ cursor: pointer;
+ background-color: #5a7d9b;
+ font-size: 12px;
+ color: #ffffff;
+ border: 0px solid #D89C0F;
+ padding: 2px;
+ text-align: left;
+}
+
+.submenu {
+ font-family: Verdana, Arial, Helvetica;
+ font-size: 12px;
+ padding-left: 5px;
+}
+
+.menuOut a {
+ cursor: pointer;
+ margin: 0px;
+ background-color: #D89C0F;
+ font-size: 12px;
+ color: #840000;
+ border: 0px solid #000000;
+ padding: 0px;
+ text-align: left;
+}
+
+.menuOver a {
+ cursor: pointer;
+ margin: 0px;
+ background-color: #5a7d9b;
+ font-size: 12px;
+ color: #ffffff;
+ border: 0px solid #000000;
+ padding: 0px;
+ text-align: left;
+}
+
+.submenu a {
+ color: #840000;
+ text-decoration: none;
+}
+
+.submenu a:hover {
+ color: #840000;
+ text-decoration: none;
+}
+
+.listtop { font-size: 10pt; background-color: #D89C0F; color: black; border: 1px solid #000000 }
+.listheading { font-size: 10pt; background-color: #D89C0F; color: black; border: 1px solid #000000 }
+A.listheading:link, A.listheading:active, A.listheading:visited {
+ color: black;
+ text-decoration: none; }
+.listrow1 { font-size: 10pt; background-color: #e6e6fa; color: black; vertical-align: top; }
+.listrow0 { font-size: 10pt; background-color: #ffe4e1; color: black; vertical-align: top; }
+.listsubtotal { font-size: 10pt; background-color: #5a7d9b; color: white; }
+.listtotal { font-size: 10pt; background-color: black; color: white; }
+
+textarea {
+ font-family: Verdana, Arial, Helvetica;
+ font-size: 10pt;
+}
+
+input {
+ font-family: Verdana, Arial, Helvetica;
+ font-size: 10pt;
+}
+
+select {
+ font-family: Verdana, Arial, Helvetica;
+ font-size: 10pt;
+}
+
+.submit {
+ font-family: Verdana, Arial, Helvetica;
+ font-size: 10pt;
+ color: #000080;
+}
+
+.checkbox, .radio {
+ font-family: Verdana, Arial, Helvetica;
+ font-size: 10pt;
+}
+
+.plus0 { /* font color for negative numbers */
+ color: red;
+}
+
+.plus1 {
+ color: green;
+}
+
+h2.confirm {
+ color: blue;
+ font-size: 14pt;
+}
+
+h2.error {
+ color: red;
+ font-size: 14pt;
+}
+
+
+/* media stuff */
+
+@media screen {
+ .noscreen { /* items with this class won't display */
+ display: none;
+ }
+}
+
+@media print {
+ .noprint { /* items with this class won't print */
+ display: none;
+ }
+}
+
diff --git a/css/sql-ledger.css b/css/sql-ledger.css
new file mode 100755
index 00000000..4e87df01
--- /dev/null
+++ b/css/sql-ledger.css
@@ -0,0 +1,208 @@
+/* stylesheet for sql-ledger */
+
+/* general stuff */
+A:link { text-decoration: none; }
+A:visited {text-decoration: none; }
+A:active { text-decoration: underline; }
+A:hover { color: transparent;
+ background-color: transparent;
+ text-decoration: none;
+}
+
+body {
+ font-family: Arial, Verdana, Helvetica, sans-serif;
+ color: #444444;
+ font-size: 10pt;
+ background-color: #ffffff;
+ scrollbar-arrow-color: #FFFFFF;
+ scrollbar-3dlight-color: #dddddd;
+ scrollbar-highlight-color: #aaaaaa;
+ scrollbar-face-color: #aaaaaa;
+ scrollbar-shadow-color: #aaaaaa;
+ scrollbar-track-color: #cccccc;
+ scrollbar-darkshadow-color: #666666;
+}
+
+td {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 10pt;
+}
+
+th {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 10pt;
+}
+
+/* login and admin */
+.login {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+}
+body.login {
+ background: #5a7d9b;
+ color: black;
+}
+h1.login {
+ font-size: 18pt;
+}
+table.login {
+ background-color: #FFFFFF;
+ padding: 20px;
+}
+td.login {
+ text-align: center;
+}
+th.login {
+ text-align: right;
+}
+
+body.admin {
+ background-color: #FFFFFF;
+ color: black;
+}
+
+body.menu {
+ background-color: #eeeeee;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 11px;
+ color: black;
+}
+
+cornerlogo {
+ border: 1px solid #000000;
+ margin-left: auto;
+ margin-right: auto;
+ background: #ffffff;
+ padding: 4px;
+}
+
+.menuOut {
+ cursor: pointer;
+ background-color: #eeeeee;
+ font-size: 11px;
+ color: #000084;
+ padding: 2px;
+ text-align: left;
+}
+
+.menuOver {
+ cursor: pointer;
+ background-color: #004a80;
+ font-size: 11px;
+ color: #ffffff;
+ padding: 2px;
+ text-align: left;
+}
+
+.submenu {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ padding-left: 5px;
+}
+
+.menuOut a {
+ cursor: pointer;
+ margin: 0px;
+ background-color: #eeeeee;
+ font-size: 11px;
+ color: #000084;
+ border: 0px solid #000000;
+ padding: 0px;
+ text-align: left;
+}
+
+.menuOver a {
+ margin: 0px;
+ background-color: transparent;
+ font-size: 11px;
+ color: #ffffff;
+ padding: 0px;
+ text-align: left;
+}
+
+.submenu a {
+ color: #004a80;
+ text-decoration: none;
+}
+
+.submenu a:hover {
+ text-decoration: none;
+ color: #eeeeee;
+ background: #004a80;
+ padding: 2px;
+}
+
+.listtop { font-size: 10pt; background-color: black; color: white; }
+.listheading { font-size: 10pt; background-color: #004a80; color: white; }
+A.listheading:link, A.listheading:active, A.listheading:visited {
+ color: transparent;
+ text-decoration: none; }
+.listrow1 { font-size: 10pt; background-color: #e6e6fa; color: black; vertical-align: top; }
+.listrow0 { font-size: 10pt; background-color: #ffe4e1; color: black; vertical-align: top; }
+.listsubtotal { font-size: 10pt; background-color: #5a7d9b; color: white; }
+.listtotal { font-size: 10pt; background-color: #004d99; color: white; }
+
+textarea {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ border: 1px solid #888888;
+ font-size: 11px;
+ background-color: #eeeeee;
+ font-weight: bold;
+}
+
+input {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ border: 1px solid #888888;
+ font-size: 11px;
+ background-color: #eeeeee;
+ font-weight: bold;
+}
+
+select {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 10pt;
+}
+
+.submit {
+ font-size: 10pt;
+ color: #000080;
+ font-weight: normal;
+}
+
+.checkbox, .radio {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 10pt;
+}
+
+.plus0 { /* font color for negative numbers */
+ color: red;
+}
+
+.plus1 {
+ color: green;
+}
+
+h2.confirm {
+ color: blue;
+ font-size: 14pt;
+}
+
+h2.error {
+ color: red;
+ font-size: 14pt;
+}
+
+
+/* media stuff */
+
+@media screen {
+ .noscreen { /* items with this class won't display */
+ display: none;
+ }
+}
+
+@media print {
+ .noprint { /* items with this class won't print */
+ display: none;
+ }
+}
+
diff --git a/ct.pl b/ct.pl
new file mode 100755
index 00000000..742968ca
--- /dev/null
+++ b/ct.pl
@@ -0,0 +1,2 @@
+#!/usr/bin/perl
+eval { require "menu.pl"; };
diff --git a/doc/COPYING b/doc/COPYING
new file mode 100755
index 00000000..083bb415
--- /dev/null
+++ b/doc/COPYING
@@ -0,0 +1,355 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+<HEAD>
+<TITLE>GNU General Public License</TITLE>
+</HEAD>
+
+<BODY BGCOLOR=ffffff>
+
+
+<pre>
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 675 Mass Ave, Cambridge, MA 02139, 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 Library 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
+ Appendix: 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.
+
+ &lt;one line to give the program's name and a brief idea of what it does.&gt;
+ Copyright (C) 19yy &lt;name of author&gt;
+
+ 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., 675 Mass Ave, Cambridge, MA 02139, 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) 19yy 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.
+
+ &lt;signature of Ty Coon&gt;, 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 Library General
+Public License instead of this License.
+
+
+</BODY>
+</HTML>
+
diff --git a/doc/COPYRIGHT b/doc/COPYRIGHT
new file mode 100755
index 00000000..f41ecdf5
--- /dev/null
+++ b/doc/COPYRIGHT
@@ -0,0 +1,21 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 1999 - 2005, DWS Systems Inc.
+#
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/doc/README b/doc/README
new file mode 100755
index 00000000..d5aea879
--- /dev/null
+++ b/doc/README
@@ -0,0 +1,343 @@
+ LedgerSMB Small Medium Business Accounting
+ Version 2.6
+
+
+DESCRIPTION:
+------------
+LedgerSMB is a double-entry accounting system written
+in perl. It has been tested with PostgreSQL, Apache,
+Netscape, Mozilla, Galeon, Explorer, Links, Lynx,
+Konqueror, Voyager, W3M and Opera clients on Linux,
+FreeBSD, Solaris, Windows, Mac computers and PDA's.
+
+Data is stored in a SQL database server, either locally or
+remote, the display is through a text or GUI web browser.
+The system is linked by a chart of accounts. All transactions
+for AR, AP and GL are stored in a transaction table. Hyper-links
+from the chart of accounts let you view transactions posted
+through AR, AP and GL.
+
+Configuration files let you specify to which SQL database server
+to connect to, personal preferences such as company name,
+language, number and date format, etc.
+
+With the admin script you can create, edit or delete users,
+create and delete datasets and set up the Chart of Accounts
+and templates needed for the system.
+
+You can have a group of users using the same dataset and
+templates for generating Invoices, Income Statements and
+Balance Sheets or a different set altogether.
+
+Templates are supplied in html, text and tex format to
+generate most of the forms. Forms can be printed to screen,
+sent to a printer or e-mailed.
+
+
+COPYRIGHT:
+----------
+Licensed under the terms of the GPL.
+
+
+LATEST VERSION:
+---------------
+available from http://sourceforge.net/projects/ledger-smb/
+
+
+PLATFORMS:
+----------
+Non specific, see requirements.
+
+
+REQUIREMENTS:
+-------------
+1 - Perl, 5+
+2 - http server (Apache, NCSA, httpi, thttpd, ...)
+3 - SQL Server (PostgreSQL 7.1+)
+4 - DBD (DBD-Pg)
+5 - DBI
+6 - LaTeX (optional)
+
+
+FOREIGN LANGUAGE SUPPORT:
+-------------------------
+28 languages are supported. Language files are
+ordinary text files, no special software is
+needed to change or add new translations.
+
+Some of the translation files are not 100% complete.
+If strings are missing, English is used instead.
+
+
+INSTALLATION WITH setup.pl:
+---------------------------
+Make a directory
+
+ mkdir /usr/local/sql-ledger
+
+Copy setup.pl to /usr/local/sql-ledger
+
+run setup.pl as root and follow the prompts.
+
+ perl setup.pl
+
+Go to the next step, "PREPARE YOUR SQL DATABASE SERVER".
+
+NOTE: If you are behind a firewall and cannot download
+the code with setup.pl, download the source code and
+pass the filename as an argument on the command line.
+
+ perl setup.pl sql-ledger-2.6.x.tar.gz
+
+VERY IMPORTANT: setup.pl tries to figure out your system
+but it will not succeed if your distribution decided
+to "hide" configuration files for your web server in some
+other file.
+
+
+INSTALLATION WITHOUT setup.pl:
+------------------------------
+unpack the tar.gz file in /usr/local
+
+ tar xzvf sql-ledger-2.6.x.tar.gz
+
+you should now have everything in /usr/local/sql-ledger
+
+rename ledger-smb.conf.default to ledger-smb.conf
+
+edit ledger-smb.conf
+
+create a file sql-ledger-httpd.conf in the same location
+where your httpd.conf is and copy the next section into the file
+
+ Alias /sql-ledger /usr/local/sql-ledger/
+ <Directory /usr/local/sql-ledger>
+ AllowOverride All
+ AddHandler cgi-script .pl
+ AddDefaultCharset On
+ Options ExecCGI Includes FollowSymlinks
+ Order Allow,Deny
+ Allow from All
+ </Directory>
+
+ <Directory /usr/local/sql-ledger/users>
+ Order Deny,Allow
+ Deny from All
+ </Directory>
+
+edit httpd.conf and add
+
+ # SQL-Ledger
+ Include /config_directory/sql-ledger-httpd.conf
+
+Note: use an absolute or relative path to include
+the configuration in your httpd.conf file.
+
+i.e. /etc/httpd/sql-ledger-httpd.conf
+ etc/apache2/sql-ledger-httpd.conf
+
+restart your web server.
+
+
+Note: /usr/local/sql-ledger is only a suggested
+path, you can install in any directory.
+
+Some versions of Apache 2.0 use a conf directory for
+configuration files. If this is the case copy
+sql-ledger-httpd.conf into this directory and leave
+httpd.conf as is.
+
+
+SET PERMISSION:
+---------------
+change directory to /usr/local/sql-ledger
+
+# chown -hR nobody:nogroup users templates css spool
+
+replace nobody:nogroup with the web server user and group.
+Some systems use apache:apache, www, www-data, ...
+
+
+FTP INSTALLATION:
+-----------------
+If you do not have access to the server's configuration
+files install LedgerSMB in userspace by ftp'ing all the
+files to your server.
+
+a) untar sql-ledger in your private_html directory
+b) turn on script execution for the folder sql-ledger
+You can control this with an .htaccess file
+
+ Options +ExecCGI
+ DirectoryIndex login.pl
+
+c) protect the users directory with an .htpasswd file
+
+AuthGroupFile /dev/null
+AuthName "Unauthorized"
+AuthType Basic
+AuthUserFile /home/host.domain/private_html/sql-ledger/users/.htpasswd
+require valid-user
+
+d) protect the templates directory with an .htpasswd file
+
+AuthGroupFile /dev/null
+AuthName "Templates"
+AuthType Basic
+AuthUserFile /home/host.domain/private_html/sql-ledger/templates/.htpasswd
+require valid-user
+
+e) set up your PostgreSQL database and the tables.
+
+You will most likely only have access to PostgreSQL with
+some other tools like pgadmin.
+
+1) create a database user or use an assigned database user
+2) create a blank database or use one which was created for you
+3) load your web browser and connect to
+http://host.domain.com/private_html/sql-ledger/admin.pl
+to create the tables.
+
+There is no password so just hit the Enter key or click
+on "Continue".
+
+Select the "Database Administration" link
+
+Host [database host] Port [ ]
+User [database user] Password [for your database]
+Connect to [your database]
+
+click on "Create Dataset"
+
+The next screen is for choosing a Chart of Accounts
+
+Create Dataset [your database]
+Multibyte Encoding [ ]
+
+Select a chart of accounts and click on "Continue".
+
+Your tables will now be created and the chart of accounts
+will be loaded.
+
+Go to the next step, "SET UP A USER"
+
+
+PREPARE YOUR SQL DATABASE SERVER:
+---------------------------------
+
+ PostgreSQL:
+ -----------
+ add one database user with create database privileges
+ to manage the datasets and tables for SQL-Ledger
+
+ # su postgres
+ $ createuser -d sql-ledger
+ Shall the new user be allowed to create databases? (y/n) y
+ Shall the new user be allowed to create more new users? (y/n) n
+
+ if you use passwords to access postgres use this command
+ $ createuser -d -P sql-ledger
+
+ Install PL/PGSQL in template1 if it has not been installed yet
+
+ # su postgres
+ $ createlang plpgsql template1
+
+
+SET UP A DATABASE AND TABLES:
+-----------------------------
+Load your web browser and connect to
+http://localhost/sql-ledger/admin.pl
+
+Select the "Database Administration" link,
+enter the user you created in the previous step.
+
+The "Create Dataset" link queries the server
+for existing datasets and displays them in a
+table. Enter a name for the new dataset (use
+lowercase letters only!) and select one of the
+Chart of Accounts and click on Continue.
+
+You cannot manage any other datasets from this
+interface, only the datasets used by SQL-Ledger.
+
+POSTGRESQL: template1 is only used to query
+the server, none of the information stored
+in template1 is manipulated in any way.
+You can connect to any other database you
+own, template1 is only a default.
+
+
+SET UP A USER:
+-------------
+Load your web browser and connect to
+http://localhost/sql-ledger/admin.pl
+
+Click on "Add User". In the Database
+section select the driver and enter
+the user you used to create the dataset.
+
+
+LOAD THE ACCOUNTING PROGRAM:
+----------------------------
+Load your web browser and connect to
+http://localhost/sql-ledger/login.pl
+
+
+UPGRADING TO A NEWER VERSION:
+-----------------------------
+1. load admin.pl and lock the system
+2. untar the new version over top
+3. check the doc directory for specific notes
+4. load admin.pl and unlock the system
+5. log in
+
+NOTE: datasets are upgraded when you log in for
+the first time. During the upgrade process the
+dataset is locked so nobody can do any work.
+If an error occurs the system will remain locked.
+Track down the error, fix it, load admin.pl,
+unlock the system and log in again.
+
+
+UPGRADING WITH setup.pl:
+------------------------
+run setup.pl from the command line and follow the prompts.
+
+
+INSTALLATION CHECKLIST:
+-----------------------
+1. untar LedgerSMB somewhere (i.e /usr/local, /opt)
+2. change permission for the users, templates, css and spool directory
+3. edit httpd.conf
+4. edit ledger-smb.conf
+5. add the database user sql-ledger
+6. load admin.pl
+7. create datasets for companies
+8. add users
+
+ In the Database section enter
+
+ a) PostgreSQL
+
+ Host: for local connections leave blank
+ Dataset: the dataset created in step 7
+ Port: for local connections leave blank
+ User: sql-ledger
+ Password: password for sql-ledger
+
+
+IF SOMETHING DOESN'T WORK:
+--------------------------
+There is a FAQ at http://sourceforge.net/projects/ledger-smb//misc/faq.html
+or see the one included in the doc directory.
+
+There are also several mailing lists at
+http://sourceforge.net/projects/ledger-smb//misc/mailinglist.html
+where you can seek free help.
+
+For commercial support see http://www.sql-ledger.com
+
+=====================================================================
+June 14, 2006
+
diff --git a/doc/README.DB2 b/doc/README.DB2
new file mode 100755
index 00000000..9d143bef
--- /dev/null
+++ b/doc/README.DB2
@@ -0,0 +1,82 @@
+To build and install the DBD::DB2 module, you need the following:
+
+*Perl 5.004_04 or later
+*DBI 0.93 or later
+*DB2 Application Development Client
+*A supported C compiler as documented under
+ 'Supported Operating Systems'
+ at the DB2 Application Development Web page:
+
+http://www-3.ibm.com/software/data/db2/udb/ad/index.html
+
+Install Notes:
+
+http://www.perl.com/CPAN-local/modules/by-module/DBD/DBD-DB2-0.76.readme
+
+Module:
+
+http://www.perl.com/CPAN-local/modules/by-module/DBD/DBD-DB2-0.76.tar.gz
+
+Notes:
+-----------------------------
+
+LedgerSMB tested with IBM DB2 v7.2 and v8.1.
+Compiled for use with DBI 1.18 for all testing.
+
+DB2 Application Development Client used was with
+the DB2 Personal Developer's Edition (PDE). All
+databases and application code tested under RedHat
+Linux 7.2 kernel 2.4.7-10.
+
+ADDITIONAL NOTES: DB2 specific
+------------------------------
+
+1. DB2 installed under default owner, and group:
+ db2inst1 and db2grp1.
+
+2. LedgerSMB app owner (ledger) was added to DB2 group db2grp1
+ thereby given SYSADM authority.
+
+3. LedgerSMB app owner has same ENV variables as the db2inst1 user.
+ This can be added, or have:
+ . $DB_HOME/sqllib/db2profile in the LedgerSMB app owner .(bash_)profile.
+
+4. LedgerSMB app owner must have environment variable
+ DB2INSTANCE set.
+
+5. LedgerSMB app owner, now with SYSADM authority and PATH
+ containing DB2's bin should run the following:
+
+ prompt>: db2set -all # To view instance and registry variables
+ prompt>: db2set DB2DBDFT=your_default_database_name i.e. LEDGER
+ prompt>: db2set DB2CLIINIPATH=set_to_usually $DB_HOME/sqllib/cfg
+
+ Now, cd to the DB2CLIINIPATH directory and edit the db2cli.ini
+ file. Continuing with our use of LEDGER as the database that
+ will be created and used, add:
+
+ [LEDGER]
+ AUTOCOMMIT=1
+ LONGDATACOMPAT=1
+ DBALIAS=LEDGER
+ DEFERREDPREPARE=1
+
+ If DEFERREDPREPARE=1 is the last line, add a blank line. A blank
+ line must be the last line.
+
+6. Create the database, objects, and initialize by moving to the directory:
+ /where_you_installed_SQL-Ledger/sql , and review the file
+ DB2-sql-ledger.order. The commands outlined are in the required order,
+ create a database called LEDGER using default SMS tablespaces. The
+ last command-line creates the "Default" Chart-of-Accounts.
+
+ *Modify the files at will to:
+ create a different named database (make sure you review the
+ step where you -> db2set DB2DBDFT=your_default_database_name)
+
+ create DMS tablespaces
+
+ different Chart-of-Accounts.
+
+ If a 'gifi' sql script needs to be run, make sure the
+ "db2 -tvf" is used so the ';' are accepted as command terminators.
diff --git a/doc/UPGRADE-1.6-1.8 b/doc/UPGRADE-1.6-1.8
new file mode 100755
index 00000000..cc965849
--- /dev/null
+++ b/doc/UPGRADE-1.6-1.8
@@ -0,0 +1,61 @@
+Upgrading from version 1.6 to 1.8
+
+1. make a backup copy of your databases and SQL-Ledger, just in case!
+ $ cd /usr/local/www/sql-ledger
+ $ pg_dump database > db.out
+ $ tar cvf ~/sql-ledger.tar .
+
+2. install LedgerSMB over top of your old installation
+ $ cd /usr/local/www
+ $ tar zxvf sql-ledger-1.8.0.tar.gz
+
+3. change the tables to the new layout
+ $ cd sql-ledger/sql
+ $ psql database < upgrade-1.6-1.8.sql
+
+4. copy the new master templates to your template directory
+ $ cd ../templates
+
+ $ cp Default-email_purchase_order.html your_template_dir/email_purchase_order.html
+ $ cp Default-purchase_order.html your_template_dir/purchase_order.html
+ $ cp Default-email_sales_order.html your_template_dir/email_sales_order.html
+ $ cp Default-sales_order.html your_template_dir/sales_order.html
+
+5. Two new accounts were hopefully added to your chart of accounts
+ One account for Foreign Exchange Gains and one for
+ Foreign Exchange Losses
+ edit and change to suit your COA. You can safely change
+ the account number too.
+
+6. Edit your preferences
+
+ In field 'Stylesheet' enter -> sql-ledger.css
+ Stylesheet is in the css directory
+
+ Add your foreign currencies in the Currencies field
+ The first currency in the list is your default
+ i.e CDN:USD:EUR:YEN
+ If you used a nativecurr than it should be listed in the
+ new currencies field.
+
+7. <%nativecurr%> has changed to <%currency%>
+ edit all your templates and change nativecurr to currency
+
+8. I also added four more variables which can be used in your templates.
+ <%contact%>, <%shiptocontact%>, <%shiptophone%>, <%shiptofax%>
+
+9. Nameing convention for templates has changed from an
+ underscore to a minus sign. If you designed your own
+ master templates rename the templates from
+ industry_invoice.html to industry-invoice.html,
+ industry_packing_list.html to industry-packing_list.html, etc.
+ The minus sign is used to separate the name and list them in
+ the setup screen.
+
+ This change only applies to the master templates in the
+ templates root directory NOT the individual templates which
+ are used by users.
+
+It looks more than it really is. Steps 1 to 4 are important,
+the rest is for fine tuning and info.
+
diff --git a/doc/UPGRADE-1.8-1.8.3 b/doc/UPGRADE-1.8-1.8.3
new file mode 100755
index 00000000..10522d14
--- /dev/null
+++ b/doc/UPGRADE-1.8-1.8.3
@@ -0,0 +1,23 @@
+Upgrading from version 1.8.(0-2) to 1.8.3
+
+1. install LedgerSMB over top of your old installation
+ $ cd /usr/local
+ $ tar zxvf sql-ledger-1.8.3.tar.gz
+
+2. copy ledger-smb.conf.default to ledger-smb.conf
+ $ cp ledger-smb.conf.default ledger-smb.conf
+
+ if you modified ledger-smb.conf merge the changes from the
+ .default file rather than copying over top.
+
+3. copy the new master templates to your template directory
+ $ cd ../templates
+
+ $ cp Default-invoice.tex your_template_dir/invoice.tex
+ $ cp Default-packing_list.tex your_template_dir/packing_list.tex
+ $ cp Default-purchase_order.tex your_template_dir/purchase_order.tex
+ $ cp Default-sales_order.tex your_template_dir/sales_order.tex
+
+4. edit ledger-smb.conf
+ instructions are in the file
+
diff --git a/doc/UPGRADE-1.8.3-1.8.4 b/doc/UPGRADE-1.8.3-1.8.4
new file mode 100755
index 00000000..c4e9beaf
--- /dev/null
+++ b/doc/UPGRADE-1.8.3-1.8.4
@@ -0,0 +1,10 @@
+Upgrading from version 1.8.3 to 1.8.4
+
+1. install LedgerSMB over top of your old installation
+ $ cd /usr/local
+ $ tar zxvf sql-ledger-1.8.4.tar.gz
+
+2. update the tables with the admin script
+
+ You will not be able to log in until you upgraded the tables.
+
diff --git a/doc/UPGRADE-1.8.4-1.8.5 b/doc/UPGRADE-1.8.4-1.8.5
new file mode 100755
index 00000000..68e1fbc6
--- /dev/null
+++ b/doc/UPGRADE-1.8.4-1.8.5
@@ -0,0 +1,18 @@
+Upgrading from version 1.8.4 to 1.8.5
+
+1. install LedgerSMB over top of your old installation
+ $ cd /usr/local
+ $ tar zxvf sql-ledger-1.8.5.tar.gz
+
+2. update the tables with the admin script
+
+ You will not be able to log in until you upgraded the tables.
+
+
+There are two new variables (<%customernumber%> and <%vendornumber%>)
+which can be used in the forms. These may be used instead of the
+internally generated customer_id and vendor_id.
+
+Typically these numbers are used to retrieve a customer, vendor
+by some ID. In most counter operations the phone number is used.
+
diff --git a/doc/UPGRADE-1.8.5-1.8.7 b/doc/UPGRADE-1.8.5-1.8.7
new file mode 100755
index 00000000..2c328609
--- /dev/null
+++ b/doc/UPGRADE-1.8.5-1.8.7
@@ -0,0 +1,6 @@
+Upgrading from version 1.8.5 to 1.8.7
+
+1. install LedgerSMB over top of your old installation
+ $ cd /usr/local
+ $ tar zxvf sql-ledger-1.8.7.tar.gz
+
diff --git a/doc/UPGRADE-1.8.7-2.0.0 b/doc/UPGRADE-1.8.7-2.0.0
new file mode 100755
index 00000000..184f2605
--- /dev/null
+++ b/doc/UPGRADE-1.8.7-2.0.0
@@ -0,0 +1,20 @@
+Upgrading to Version 2.0.0
+
+1. install LedgerSMB over top of your old installation
+ $ cd /usr/local
+ $ tar zxvf sql-ledger-2.0.0.tar.gz
+
+2. load admin.pl and update the tables
+
+ You will not be able to log in until the tables are up to date.
+
+3. copy the new templates to your personal template directory
+
+ $ cd templates
+ $ cp Default-check.tex dir/check.tex
+ $ cp Default-receipt.tex dir/receipt.tex
+ $ cp Default-statement.html dir/statement.html
+ $ cp Default-statement.tex dir/statement.tex
+
+ replace 'dir' with your directory name
+
diff --git a/doc/UPGRADE-2.0-2.0.8 b/doc/UPGRADE-2.0-2.0.8
new file mode 100755
index 00000000..ae592d8a
--- /dev/null
+++ b/doc/UPGRADE-2.0-2.0.8
@@ -0,0 +1,8 @@
+Upgrading from version 2.0.[0-7] to 2.0.8
+
+1. install LedgerSMB over top of your old installation
+ $ cd /usr/local
+ $ tar zxvf sql-ledger-2.0.8.tar.gz
+
+2. update your datasets with the admin script
+
diff --git a/doc/UPGRADE-2.0.8-2.0.9 b/doc/UPGRADE-2.0.8-2.0.9
new file mode 100755
index 00000000..a18f1038
--- /dev/null
+++ b/doc/UPGRADE-2.0.8-2.0.9
@@ -0,0 +1,6 @@
+Upgrading from version 2.0.8 to 2.0.9
+
+1. install LedgerSMB over top of your old installation
+ $ cd /usr/local
+ $ tar zxvf sql-ledger-2.0.9.tar.gz
+
diff --git a/doc/UPGRADE-2.0.9-2.2.0 b/doc/UPGRADE-2.0.9-2.2.0
new file mode 100755
index 00000000..f7386a74
--- /dev/null
+++ b/doc/UPGRADE-2.0.9-2.2.0
@@ -0,0 +1,12 @@
+Upgrading from version 2.0.9 to 2.2.0
+
+1. backup your datasets. Always a good idea!
+
+2. install LedgerSMB over top of your old installation
+ $ cd /usr/local
+ $ tar zxvf sql-ledger-2.2.0.tar.gz
+
+3. copy Default-pos_invoice.txt to
+ templates/your_private_directory/pos_invoice.txt
+ and edit to suit.
+
diff --git a/doc/UPGRADE-2.2.0-2.2.7 b/doc/UPGRADE-2.2.0-2.2.7
new file mode 100755
index 00000000..ae4ba8b1
--- /dev/null
+++ b/doc/UPGRADE-2.2.0-2.2.7
@@ -0,0 +1,11 @@
+Upgrading to version 2.2.7
+
+1. install LedgerSMB over top
+ # cd /usr/local
+ # tar zxvf sql-ledger-2.2.7.tar.gz
+
+2. fix permissions
+ # chown -R nobody:nogroup *
+ # chmod 711 templates users
+
+Note: replace nobody:nogroup with your web server user and group
diff --git a/doc/UPGRADE-2.2.7-2.4.0 b/doc/UPGRADE-2.2.7-2.4.0
new file mode 100755
index 00000000..b5c317b2
--- /dev/null
+++ b/doc/UPGRADE-2.2.7-2.4.0
@@ -0,0 +1,84 @@
+Upgrading to version 2.4.0
+
+1. install LedgerSMB over top
+ # cd /usr/local
+ # tar zxvf sql-ledger-2.4.0.tar.gz
+
+2. fix permissions
+ # chown -hR nobody:nogroup *
+ # chmod 711 templates users spool
+
+replace nobody:nogroup with your web server user and group
+
+3. install the plpgsql language compiler for PostgreSQL
+ # createlang plpgsql <dataset>
+
+4. install plpgsql in template1
+ # createlang plpgsql template1
+
+5. Edit your templates! The old address fields are obsolete.
+
+The new fields are:
+ address1
+ address2
+ city
+ state
+ zipcode
+ country
+
+The same applies to the "shipto" addresses.
+
+Before you log in edit Pg-upgrade-2.3.4-2.3.5.sql and change the
+way addresses are rewritten if you don't want US style addresses.
+
+North-american addresses are usually in the form of
+
+Five Star Stables
+123 Horsehoe Blvd.
+Sweetgrass, MT 19867
+U.S.A
+
+addr1 --> address1
+addr2 --> city
+addr3 --> country
+addr4 --> state
+
+addr4 was put into the state field to bring the field forward
+to the new layout. To check if there is something in the field run
+a report and sort by the "State" field.
+
+Either edit the records or run the SQL queries below to take them apart.
+
+If you have anything in the "state" field change the records to match
+the others before you run the following queries.
+
+dbname=# update customer set state = substr(city,strpos(city,' ')+1);
+dbname=# update customer set zipcode = substr(state,strpos(state,' ')+1);
+dbname=# update customer set state = substr(state,1,strpos(state,' ')-1);
+dbname=# update customer set city = substr(city,1,strpos(city,',')-1);
+
+do the same with the vendor and shipto table.
+
+6. create a new set of templates
+
+ * load admin.pl and edit one of the user's
+ * in the "New Templates" field enter "new" and save the user
+ * go back in your browser so you have the same screen again
+ as before
+ * change the template directory back to what it was before
+ the change and save the user
+
+ * drop into a shell window
+ * cd to sql-ledger/templates/new
+ * copy the additional templates to your private template directory
+
+7. Printers
+
+printer setup has changed to multiple printers which allow
+users to choose a printer. Printers can be defined in ledger-smb.conf
+
+
+Oracle and DB2:
+===============
+There is no upgrade available for Oracle and DB2 yet.
+
diff --git a/doc/UPGRADE-2.4.0-2.4.2 b/doc/UPGRADE-2.4.0-2.4.2
new file mode 100755
index 00000000..9172849e
--- /dev/null
+++ b/doc/UPGRADE-2.4.0-2.4.2
@@ -0,0 +1,12 @@
+Upgrading from version 2.4.(0-1) to 2.4.2
+
+1. install LedgerSMB over top
+ # cd /usr/local
+ # tar zxvf sql-ledger-2.4.x.tar.gz
+
+2. fix permissions
+ # chown -hR nobody:nogroup *
+ # chmod 711 templates users css spool
+
+Note: replace nobody:nogroup with your web server user and group
+
diff --git a/doc/UPGRADE-2.4.16-2.6.0 b/doc/UPGRADE-2.4.16-2.6.0
new file mode 100755
index 00000000..86c9baff
--- /dev/null
+++ b/doc/UPGRADE-2.4.16-2.6.0
@@ -0,0 +1,19 @@
+Upgrading from version 2.4 to 2.6
+
+1. install LedgerSMB over top
+ # cd /usr/local
+ # tar zxvf sql-ledger-2.6.x.tar.gz
+
+2. fix permissions
+ # chown -hR nobody:nogroup *
+ # chmod 711 templates users css spool
+
+Note: replace nobody:nogroup with your web server user and group
+
+3. Copy the new templates to your private template directory
+
+ $ cp Default-timecard.html your_template_dir/timecard.html
+ $ cp Default-timecard.tex your_template_dir/timecard.tex
+
+4. log in
+
diff --git a/doc/UPGRADE-2.4.2-2.4.3 b/doc/UPGRADE-2.4.2-2.4.3
new file mode 100755
index 00000000..70a096d0
--- /dev/null
+++ b/doc/UPGRADE-2.4.2-2.4.3
@@ -0,0 +1,22 @@
+Upgrading from version 2.4.2 to 2.4.3
+
+1. install LedgerSMB over top of your old installation
+ $ cd /usr/local
+ $ tar zxvf sql-ledger-2.4.3.tar.gz
+
+2. fix permissions
+ # chown -hR nobody:nogroup *
+ # chmod 711 templates users css spool
+
+ Note: replace nobody:nogroup with your web server user and group
+
+3. copy the following templates to your template directory
+ $ cd templates
+
+ $ cp Default-ar_transaction.html your_template_dir/ar_transaction.html
+ $ cp Default-ar_transaction.tex your_template_dir/ar_transaction.tex
+ $ cp Default-ap_transaction.html your_template_dir/ap_transaction.html
+ $ cp Default-ap_transaction.tex your_template_dir/ap_transaction.tex
+
+4. log in
+
diff --git a/doc/UPGRADE-2.4.3-2.4.16 b/doc/UPGRADE-2.4.3-2.4.16
new file mode 100755
index 00000000..a0e24f4b
--- /dev/null
+++ b/doc/UPGRADE-2.4.3-2.4.16
@@ -0,0 +1,12 @@
+Upgrading from version 2.4.(3-15) to 2.4.16
+
+1. install LedgerSMB over top
+ # cd /usr/local
+ # tar zxvf sql-ledger-2.4.x.tar.gz
+
+2. fix permissions
+ # chown -hR nobody:nogroup *
+ # chmod 711 templates users css spool
+
+Note: replace nobody:nogroup with your web server user and group
+
diff --git a/doc/UPGRADE-2.6.0-2.6.17 b/doc/UPGRADE-2.6.0-2.6.17
new file mode 100755
index 00000000..3965bb00
--- /dev/null
+++ b/doc/UPGRADE-2.6.0-2.6.17
@@ -0,0 +1,14 @@
+Upgrading from version 2.6.(0-16) to 2.6.17
+
+1. install LedgerSMB over top
+ # cd /usr/local
+ # tar zxvf sql-ledger-2.6.17.tar.gz
+
+2. fix permissions
+ # chown -hR nobody:nogroup *
+ # chmod 711 templates users css spool
+
+Note: replace nobody:nogroup with your web server user and group
+
+3. log in
+
diff --git a/doc/faq.html b/doc/faq.html
new file mode 100755
index 00000000..ff0999ab
--- /dev/null
+++ b/doc/faq.html
@@ -0,0 +1,707 @@
+<ul>
+<p><li><h4>PostgreSQL 8.x</h4>
+PostgreSQL added a restriction in v8.x that a sequence cannot be dropped
+after if it is referenced by a table. However backups created with
+LedgerSMB v2.6.13 and earlier have a DROP SEQUENCE step in the backup
+which will fail. To fix this edit the backup before restoring on a 8.x
+system.
+
+<p>This typically looks like this:
+<pre>
+DROP SEQUENCE id ;
+CREATE SEQUENCE id START 10579;
+--
+DROP SEQUENCE invoiceid ;
+CREATE SEQUENCE invoiceid START 11096;
+--
+DROP SEQUENCE orderitemsid ;
+CREATE SEQUENCE orderitemsid START 178;
+--
+DROP SEQUENCE jcitemsid ;
+CREATE SEQUENCE jcitemsid START 53;
+</pre>
+
+<p>Change it to:
+<pre>
+CREATE SEQUENCE id;
+SELECT SETVAL('id', 10579);
+CREATE SEQUENCE invoiceid;
+SELECT SETVAL('invoiceid', 11096);
+CREATE SEQUENCE orderitemsid;
+SELECT SETVAL('orderitemsid', 178);
+CREATE SEQUENCE jcitemsid;
+SELECT SETVAL('jcitemsid', 53);
+</pre>
+
+
+<p><li><h4>PostgreSQL template1</h4>
+template1 is a template to build new databases
+from. Anything you put into template1 will be copied to a new database.
+So when you try to create a new dataset, the tables are already created from
+template1 and when LedgerSMB tries to create them you'll get an error that
+the tables already exist.
+
+
+<p><li><h4>PostgreSQL 8.0+</h4>
+To use LedgerSMB with 8.0+ you have to modify Pg-tables.sql The file
+is in the sql directory.
+
+<pre>
+CREATE TABLE orderitems (
+ trans_id int,
+ parts_id int,
+ description text,
+ qty float4,
+ sellprice float8,
+ discount float4,
+ unit varchar(5),
+ project_id int,
+ reqdate date,
+ ship float4,
+ serialnumber text,
+ id int default nextval('orderitemsid')
+) WITH OIDS;
+
+CREATE TABLE inventory (
+ warehouse_id int,
+ parts_id int,
+ trans_id int,
+ orderitems_id int,
+ qty float4,
+ shippingdate date,
+ employee_id int
+) WITH OIDS;
+
+CREATE TABLE assembly (
+ id int,
+ parts_id int,
+ qty float,
+ bom bool,
+ adj bool
+) WITH OIDS;
+</pre>
+
+This change is only required for LedgerSMB versions 2.6.3 and below.
+
+<p>If you already built a dataset without this change you will get
+an error when you try to save a PO or assembly.
+<p>"ERROR: column "oid" does not exist"
+
+<p>Drop the tables and rebuild WITH OIDS.
+
+
+<p><li><h4>Japanese characters</h4>
+modify apache so that EUC_JP is the main additional language.
+<br>comment out all unrelated languages except, UTF_8 shift jis, EUC_JP
+<br>restart apache
+<br>Fire up psql and do the encoding as per the table:-
+<br>Table 5-2. Postgres Client/Server Character Set Encodings
+
+<p>Server Encoding Available Client Encodings
+<br>EUC_JP EUC_JP, SJIS
+<br>EUC_TW EUC_TW, BIG5
+<br>LATIN2 LATIN2, WIN1250
+<br>LATIN5 LATIN5, WIN, ALT
+<br>MULE_INTERNAL EUC_JP, SJIS, EUC_KR, EUC_CN, EUC_TW, BIG5, LATIN1 to LATIN5, WIN, ALT, WIN1250
+
+<p>Create the dataset from admin.pl, now the Japanese shows up in multibyte encoding
+
+<p>Now you can write in Hiragana, Katakana, Kanji and English
+
+
+<p><li><h4>Error posting a check/receipt</h4>
+<pre>
+DBD::Pg::db do failed: ERROR: syntax error at or near "," at character 114
+Error!
+INSERT INTO acc_trans (trans_id, chart_id, transdate,amount)
+VALUES (13314, , '03-22-2005',1.00 * 1)
+ERROR: syntax error at or near "," at character 114 </pre>
+This error is caused by a transaction which does not have links to
+an AR/AP account.
+<br>set up your chart of accounts properly and create at least one
+AR and AP account. Then edit all your transactions and repost.
+
+
+<p><li><h4>SELinux</h4>
+<a href=http://fedora.redhat.com/docs/selinux-faq-fc3/index.html>http://fedora.redhat.com/docs/selinux-faq-fc3/index.html</a>
+
+<p>modify /etc/selinux/conf and set SELINUX=permissive
+
+<p>use audit2allow and add the following to policy.conf,
+then run "make reload"
+
+<p>#line 83
+<br>allow httpd_sys_script_t port_type:{ tcp_socket udp_socket } { send_msg
+recv_msg };
+<br>allow httpd_sys_script_t sysctl_kernel_t:dir search;
+<br>allow httpd_sys_script_t sysctl_t:dir search;
+<br>allow httpd_sys_script_t tmp_t:sock_file write;
+<br>allow httpd_sys_script_t httpd_sys_content_t:lnk_file read;
+<br>allow httpd_sys_script_t sysctl_kernel_t:file read;
+<br>allow httpd_sys_script_t unconfined_t:unix_stream_socket connectto;
+
+
+<p><li><h4>session timeouts</h4>
+If you get frequent timeouts or can't even log in synchronize
+the clocks from the server and workstation.
+
+
+<p><li><h4>lineitems not printing</h4>
+Templates designed on a UNIX platform don't work on a DOS platform.
+To make them work load the template either with the builtin template editor
+or a text editor and save. Templates designed on a Windows platform have the
+same problem and won't work on a UNIX platform. Once you strip the ^M's
+the'll work just fine.
+
+
+<p><li><h4>UTF-8 character encoding</h4>
+Most of the translations are in ISO format. To convert the translations
+change directory to locale/cc and convert the files with iconv to UTF-8.
+You should also convert the COAs too and make sure you select UTF-8
+encoding when you set up a new dataset.
+
+
+<p><li><h4>characterset problems</h4>
+If you have problems displaying the correct characterset try adding
+<pre>
+ AddDefaultCharset On</pre>
+in your httpd.conf file.
+
+<p><li><h4>About installation</h4>
+The easiest is to use the setup.pl script as root.
+You don't need to know very much about your system, just login as root,
+run 'perl setup.pl' and follow the prompts.
+<p>setup.pl does not check for missing software packages and it is your
+responsibilite to make sure you have the required software
+installed either from source or from a package.
+
+<p>Requirements are clearly indicated in the README file and on the
+download page.
+
+
+<p><li><h4>cannot create function</h4>
+<ol>
+<li>either run createlang and install the plpgsql language handler or
+install yourself. For more information how to do that, visit
+<a href=http://www.postgresql.org/docs/>PostgreSQL</a> and
+read the interactive documentation for procedural languages.
+
+<li>load admin.pl
+<li>unlock the system
+<li>login
+</ol>
+
+
+<p><li><h4>The requested URL /sql-ledger/admin.pl was not found</h4>
+Your webserver doesn't know where to find the script. Most commonly this
+is from distributions hiding webserver configuration files in different
+locations or files and setup.pl wasn't able to configure the location for
+you. Find out which file (httpd.conf, httpdcommon.conf, ...)
+controls your webserver configuration and add
+<pre>
+ # SQL-Ledger
+ Include /etc/httpd/sql-ledger-httpd.conf</pre>
+
+Create a file 'sql-ledger-httpd.conf' in /etc/httpd and copy the next part
+into the file.
+
+<pre>
+ AddHandler cgi-script .pl
+ AddDefaultCharset On
+ Alias /sql-ledger /var/www/sql-ledger/
+ &lt;Directory /var/www/sql-ledger&gt;
+ Options ExecCGI Includes FollowSymlinks
+ &lt;/Directory&gt;
+
+ &lt;Directory /var/www/sql-ledger/users&gt;
+ Order Deny,Allow
+ Deny from All
+ &lt;/Directory&gt;</pre>
+replace '/etc/httpd' and '/var/www' with the appropriate directories.
+
+
+<p><li><h4>users/members : Permission denied</h4>
+Your webserver must have write access to the users directory.
+If your server runs as user/group 'apache:apache' then set the
+users directory to owner/group apache:apache.
+<pre>
+ # chown -R apache:apache users</pre>
+
+
+<p><li><h4>Dataset newer than version</h4>
+You are trying to use an older version with a dataset which was
+created with a newer version.
+
+
+<p><li><h4>PDF option not working</h4>
+Check if you have latex and pdflatex installed.
+
+
+<p><li><h4>Apache 2.0 "error 500"</h4>
+Some of the early versions of Apache 2.0 (< patchlevel 44) had a rewrite engine
+which decoded escaped strings. This created a lot of problems and I worked
+around it by escaping strings twice.
+If you get a server 500 error 'filename too long' or if collapsed menus
+don't expand you may have to adjusted the following code in
+SL/Form.pm and change the number (44) on line 84.
+<pre>
+ # for Apache 2 we escape strings twice
+ if (($ENV{SERVER_SIGNATURE} =~ /Apache\/2\.(\d+)\.(\d+)/) && !$beenthere) {
+ $str = $self->escape($str, 1) if $2 < 44;
+ }</pre>
+
+
+<p><li><h4>IDENT Authentication failed for user "sql-ledger"</h4>
+Edit pg_hba.conf and change authentication to
+
+<pre>
+ local all all trust</pre>
+
+The file is in the 'data' directory of your postgresql installation.
+This is different with every distribution so look for it.
+<pre>
+ # find / -name 'pg_hba.conf'</pre>
+
+<p>Some people can't read and seem to think 'localhost' is just some
+fancy word for a local machine.
+'localhost' is a host like any other host on a network.
+A 'local' entry in pg_hba.conf will allow socket connections ONLY and
+not allow a host connection. If you then try to connect to 'localhost'
+postgres will come back with an authentication error.
+
+<p>So, forget you ever heard there is such a thing as 'localhost' and leave
+the Host portion blank.
+
+<p><b>WARNING!</b> DO NOT just put a 'host all all trust' in pg_hba.conf
+unless you know what you are doing.
+
+
+<p><li><h4>DBD-Pg for Mandrake 9.0</h4>
+Mandrake did not package a compiled DBD-Pg package again, so install DBD-Pg
+from the source package.
+Install perl-DBD-Pg-1.01-4mdk.i586.rpm from the 'contrib' area.
+(Mandrake / 9.0 / contrib / RPMS)
+
+
+<p><li><h4>LaTeX error</h4>
+If for some reason LaTeX produces an error message check for strange
+characters in your account description and parts description
+and use \usepackage[latin1]{inputenc} in the preamble.
+
+
+<p><li><h4>LaTeX templates</h4>
+If you don't want to edit tex code by hand,
+you could use Lyx, Abiword, or any WYSIWYG editor capable of exporting
+latex code.
+To do that you must change the tokens for the variables <% and %> to something
+like << and >>. % is the comment character in tex. There is also a
+pagebreak block which must be commented out.
+When you are done with the changes
+replace << and >> with <% and %> and uncomment the pagebreak block.
+
+<p>LaTeX is difficult but it also offers a much superior environment
+to produce professionally looking forms in postscript and PDF format.
+Unfortunately with all that power there is also a steep learning curve.
+
+
+<p><li><h4>W3M</h4>
+pass terminal=mozilla when you start w3m
+<pre>
+ $ w3m -F http://localhost/sql-ledger/login.pl?terminal=mozilla</pre>
+
+To use without frames
+<pre>
+ $ w3m http://localhost/sql-ledger/login.pl?terminal=lynx</pre>
+
+<p><li><h4>PDF option disappeared</h4>
+Edit ledger-smb.conf and set $latex = 1;
+<br>ledger-smb.conf is perl code, check if it compiles, if it does not,
+the internal defaults are used which turn off $latex, hence no PDF option.
+
+<p><li><h4>Installation on Windows (WIN32)</h4>
+<ul>
+<li>install Apache, perl,
+<a href=http://techdocs.postgresql.org/guides/InstallingOnWindows>Postgres</a>
+or Oracle, DBI and the appropriate DBD
+module
+<br>if you can't compile DBD-Pg here is a precompiled
+<a href=http://www.edmund-mergl.de/export/>DBD-Pg module</a>
+<li>download the latest version of <a href=/cgi-bin/nav.pl?page=source/index.html&title=Download>SQL-Ledger</a>
+<li>extract the files to c:\apache\sql-ledger
+<li>run 'perl shebang' to change the first line of the scripts. If perl
+is not in c:\perl\bin' change '#!c:\\perl\\bin\\perl' to the location where
+your perl binary is.
+<li>edit c:\apache\conf\httpd.conf and add
+<pre>
+Alias /sql-ledger "c:/apache/sql-ledger/"
+&lt;Directory "c:/apache/sql-ledger"&gt;
+ AllowOverride All
+ AddHandler cgi-script .pl
+ AddDefaultCharset On
+ Options +ExecCGI
+ Order Allow,Deny
+ Allow from All
+&lt;/Directory&gt;
+
+&lt;Directory "c:/apache/sql-ledger/users"&gt;
+ Order Deny,Allow
+ Deny from All
+&lt;/Directory&gt;
+</pre>
+
+<li>start Apache
+<li>start Postgres|Oracle|DB2
+<li>connect to http://localhost/sql-ledger/admin.pl and set up users
+and datasets
+<li>connect to http://localhost/sql-ledger/login.pl and login
+
+</ul>
+
+<p><li><h4>Installation on Windows /w cygwin</h4>
+<ul>
+<li>install <a href=http://sources.redhat.com/cygwin/>cygwin</a>
+Apache, perl, postgres, gcc and lynx
+<li>install <a href=http://search.cpan.org/search?module=DBI>DBI</a>
+<li>tar zxvf DBI-1.30.tar.gz
+<li>cd DBI-1.30
+<li>perl Makefile.PL
+<li>make install
+<li>install <a href=http://search.cpan.org/search?dist=DBD-Pg>DBD-Pg</a>
+<li>tar -zxvf DBD-Pg-1.13.tar.gz
+<li>export POSTGRES_INCLUDE=/usr/include/postgresql
+<li>export POSTGRES_LIB=/usr/lib/postgresql
+<li>cd DBD-Pg-1.13
+<li>perl Makefile.PL
+<li>make install
+<li>edit /etc/apache/httpd.conf and add
+<pre>
+AddHandler cgi-script .pl
+AddDefaultCharset On
+Alias /sql-ledger /var/www/sql-ledger/
+&lt;Directory /var/www/sql-ledger&gt;
+ Options +ExecCGI
+&lt;/Directory&gt;
+
+&lt;Directory /var/www/sql-ledger/users&gt;
+ Order Deny,Allow
+ Deny from All
+&lt/Directory&gt;
+</pre>
+<li>install SQL-Ledger
+<li>cd /var/www
+<li>mkdir sql-ledger
+<li>download <a href=/cgi-bin/download.pl?setup.pl>setup.pl</a> and save the file
+in /var/www/sql-ledger
+<li>cd /var/www/sql-ledger
+<li>perl setup.pl
+</ul>
+
+<p><li><h4>What do I enter for the language</h4>
+If you use English, nothing, if you want to use a foreign language for
+the login screen and admin stuff enter the language code, this is the
+directory in the locale directory.
+
+
+<p><li><h4>printing to a printer</h4>
+Printers are defined in ledger-smb.conf
+
+<pre>
+%printer = ( 'Default' => 'lpr', 'Color' => 'lpr -PEpson' );</pre>
+
+Check in your /etc/printcap file for the names of available printers.
+
+<p>If you have LaTeX installed set
+<pre>
+ $latex = 1</pre> in ledger-smb.conf
+
+<p>To send the document to the printer check the "Postscript" or "PDF" format,
+enter the number of copies and click on the "Print" button.
+
+<p>The printer you enter in your preferences is the default printer.
+You can choose any other available printer. This makes it possible
+to print from anywhere on the network to any printer.
+
+<p>Note: html format is for screen preview. Use the "Print" option from your
+browser to print to a printer.
+
+
+<p><li><h4>Using samba to send printjobs to a printer attached to a Windows XP workstation</h4>
+The next part applies to roll your own print filters only. If you use CUPS or
+LPRng your milage may vary but you can still use this as a guide how it works.
+I use the printer 'Epson' as an example which is
+attached to a XP workstation called Raven.
+
+<pre>
+/etc/printcap entry on the server which runs lpd
+
+epson:Epson\
+ :sh:\
+ :lp=/dev/null:\
+ :sd=/var/spool/output/epson:\
+ :if=/usr/libexec/lpr/epson/prnfilter:\
+
+# end of entry in /etc/printcap
+
+
+# prnfilter shell script
+#!/bin/sh
+# Filter for Epson Stylus
+
+PATH="$PATH:/usr/local/bin"
+
+#read first_line
+read tmp
+first_line=`echo $tmp | cut -b1-2 | sed -n '1p'`
+
+first_chr=`expr "$first_line" : '\(.\)'`
+first_two=`expr "$first_line" : '\(..\)'`
+rewindstdin
+
+if [ "$first_two" = "%!" ]; then # Postscript file
+ gs @st640p.upp -dSAFER -dNOPAUSE -q -sOutputFile=/tmp/$$ -
+else
+ # text file
+ cat &gt; /tmp/$$
+ echo -n "^L" &gt;&gt; /tmp/$$
+ smbclient '\\Raven\Epson' "" -c 'printmode text'
+fi
+
+smbclient '\\Raven\Epson' "" -P -c "print /tmp/$$"
+rm /tmp/$$
+
+# EOF
+
+
+rewindstdin is a small program to rewind the filehandle for STDIN
+save the next part up to EOF to a file rewindstdin.c and compile
+
+#include &lt;sys/types.h&gt;
+#include &lt;unistd.h&gt;
+extern int errno;
+main()
+{
+ if( lseek(0,0,0) == 0 ){
+ errno = 0;
+ }
+ return( errno );
+}
+
+# EOF
+
+compile to an executable
+
+gcc -o /usr/local/bin/rewindstdin rewindstdin.c
+</pre>
+
+
+<p><li><h4>beginning balances</h4>
+Add a GL Journal entry and enter the beginning balance for your accounts.
+Beginning balances are the balances from your last balance sheet. If you also
+add open invoices to account for COGS for inventory, add the invoices
+and make the appropriate adjustments.
+
+
+<p><li><h4>establish a beginning inventory</h4>
+add the parts with a vendor invoice. Use the <b>real cost</b> for the items,
+not zero. If you use zero cost then the cost of goods will be zero when you
+sell the item.
+
+
+<p><li><h4>Assemblies</h4>
+Assemblies are manufactured goods assembled from parts, services and
+assemblies. Because you do not buy assemblies you 'stock assemblies' by
+adding assembled units to your inventory. The quantity for individual parts
+is reduced and the quantity for the assembly increased. To disassemble an
+assembly you simply return the parts to inventory by entering a negative
+quantity for the number of assemblies to stock.
+
+
+<p><li><h4>customizing SQL-Ledger</h4>
+The <a href=/cgi-bin/nav.pl?page=feature/api.html&title=Application%20Interface>application interface</a>
+consists of a global and private interface.
+
+
+<p><li><h4>DBD-Pg not installed</h4>
+
+Most modern distributions now package DBD-Pg. If it is
+not packaged follow this recipe to get it working.
+
+<ul>
+ <li>check if you have the header files for PostgreSQL
+ <br>$ find / -name 'libpq-fe.h'
+ <br>if nothing shows up install the development package for PostgreSQL
+ <li>download and untar DBD-Pg
+ <li>set the environment variables POSTGRES_LIB and POSTGRES_INCLUDE
+ <li>cd to DBD-Pg directory
+ <br>as ordinary user
+ <br>$ perl Makefile.PL
+ <br>$ make
+ <br>$ make test
+ <br>if all went well su to root
+ <br># make install
+ <li>remove DBD-Pg
+</ul>
+
+
+<p><li><h4>login.pl has compilation error</h4>
+
+This could be because of a missing configuration file in the users directory
+
+<p>check the permission for the users directory. The directory must be
+set writeable for the webserver. If your webserver runs ias user/group
+nobody.nogroup set the directory to
+<pre>
+drwx--x--x 2 nobody nogroup 1024 May 26 16:49 users
+
+or
+
+drwxrwx--x 2 johndoe nogroup 1024 May 26 16:49 users</pre>
+
+
+<p><li><h4>script not executing, shows in browser instead</h4>
+
+Add
+<pre>
+ AddHandler cgi-script .pl</pre>
+in your httpd.conf file.
+
+
+<p><li><h4>unknown terminal!</h4>
+the frontend script couldn't figure out which browser you are using
+<p>include the terminal variable on the URL
+<pre>
+ http://localhost/sql-ledger/login.pl?terminal=lynx</pre>
+Valid terminal variables are lynx, mozilla and js
+
+
+<p><li><h4>permission denied</h4>
+
+Check if your web server has write permission to write to the following
+files and directories:
+<pre>
+ users/
+ templates/
+ users/members
+
+ # chown nobody:nogroup users templates users/members
+</pre>
+
+
+<p><li><h4>permission denied to access tables</h4>
+The user you entered in the "Database section" must be a valid
+database user who has rights to access the tables.
+
+<p>If the tables are owned by 'joe' and you enter 'mary' as the dba
+you might run into this problem if mary doesn't have the rights to
+access tables owned by joe.
+
+
+<p><li><h4>html and graphics files don't show up on screen</h4>
+
+Enable Includes and FollowSymlinks Options in your httpd.conf file
+<pre>
+ &lt;Directory /usr/local/sql-ledger&gt;
+ Options ExecCGI Includes FollowSymlinks
+ &lt;/Directory&gt;
+</pre>
+
+
+<p><li><h4>switch display to a foreign language</h4>
+
+Load your preferences and select the language.
+<br>Language selection is in accordance to
+<a href=http://www.unece.org/cefact/locode/service/main.htm>
+ISO 3166-1</a> standards.
+
+
+<p><li><h4>Text shows in English when I use a foreign language</h4>
+
+This is because the corresponding hash entry is missing.
+Add the missing text in the locale/cc/all or locale/cc/missing
+file and run 'perl locales.pl' from the command line to rebuild
+the individual files.
+
+<br>cc refers to the country code.
+
+
+<p><li><h4>switch to a foreign language for the login and admin screen</h4>
+
+Edit ledger-smb.conf and enter the code for the $language variable
+<pre>
+ $language = "de";</pre>
+
+<p>This is a global change and applies to all logins, individual settings
+may be changed by setting the language in your Preferences.
+
+
+</ul>
+
+<p>
+<hr>
+<a name=security>
+<h1>LedgerSMB security</h1>
+</a>
+
+<ul>
+<li>The security features built into LedgerSMB provide encrypted passwords
+and access control which makes it fairly safe out of the box to run even in
+front of a firewall.
+Some precautions which are out of our control must be taken though.
+It matters where you install SL and how you configure your web server and
+SQL server.
+
+<pre>
+ Typical setups:
+
+ /usr/local/vh/www <- DocumentRoot for virtual host
+ /usr/local/vh/sql-ledger <- Alias for sql-ledger
+ /usr/local/vh/users <- users directory out of reach
+
+<hr width=60% align=left>
+ /usr/local/vh/www <- DocumentRoot for virtual host
+ /usr/local/vh/www/sql-ledger <- Alias for sql-ledger
+ /usr/local/vh/www/sql-ledger/users <- users configuration files and tmp space
+
+ &lt;Directory /usr/local/vh/www/sql-ledger/users&gt; <- disable webserver access
+ Order Deny,Allow for users directory
+ Deny from All
+ &lt;/Directory&gt;
+
+</pre>
+
+The location for the users directory can be specified in ledger-smb.conf
+
+<p><li>Set permission for the users and templates directory to 711
+
+<p><li>If you do not want anyone to change the templates with the built-in
+editor set the files in templates/directory/ to read only or disable
+the menu item to edit the templates.
+
+<p><li>You can set up a read-only environment if you disable the menu items
+to add data. i.e 'Add Transaction' if unchecked you will not be able to add
+a transaction or repost a transaction. You may look at it but nothing else.
+
+<p><li>There are various settings for audit control and you may disable
+reposting entirely or up to a certain date. And with the audit trail enabled
+you can keep tab of who is doing what.
+
+<p><li>For PostgreSQL you may also set who has access to the server in the file
+pg_hba.conf
+<br>Authentication crypt does not work because not all SQL servers
+accept encrypted passwords.
+
+<p><li>in addition you can secure the tables from unauthorized access by
+setting up a different database user and GRANT rights. For instance,
+users without DELETE rights will still be able to use the program, change
+customers and vendors, add transactions but will not be able to delete or
+repost transactions.
+<br>To lock all the tables to create a RO system GRANT SELECT rights only.
+
+<p><li>Other security options include a secure shell, your webserver's
+authentication system, SSL, encrypted tunnels, ...
+
+</ul>
+
+</BODY>
+</HTML>
+
diff --git a/favicon.ico b/favicon.ico
new file mode 100755
index 00000000..0e114430
--- /dev/null
+++ b/favicon.ico
Binary files differ
diff --git a/gl.pl b/gl.pl
new file mode 100755
index 00000000..742968ca
--- /dev/null
+++ b/gl.pl
@@ -0,0 +1,2 @@
+#!/usr/bin/perl
+eval { require "menu.pl"; };
diff --git a/hr.pl b/hr.pl
new file mode 100755
index 00000000..742968ca
--- /dev/null
+++ b/hr.pl
@@ -0,0 +1,2 @@
+#!/usr/bin/perl
+eval { require "menu.pl"; };
diff --git a/ic.pl b/ic.pl
new file mode 100755
index 00000000..742968ca
--- /dev/null
+++ b/ic.pl
@@ -0,0 +1,2 @@
+#!/usr/bin/perl
+eval { require "menu.pl"; };
diff --git a/index.html b/index.html
new file mode 100644
index 00000000..eddacb26
--- /dev/null
+++ b/index.html
@@ -0,0 +1,10 @@
+<html>
+<head>
+ <title>SQL-Ledger</title>
+ <meta http-equiv="refresh" content="0; URL=login.pl">
+</head>
+<body>
+<h2>SQL-Ledger</h2>
+<a href=login.pl>Login</a><br>
+</body>
+</html>
diff --git a/ir.pl b/ir.pl
new file mode 100755
index 00000000..742968ca
--- /dev/null
+++ b/ir.pl
@@ -0,0 +1,2 @@
+#!/usr/bin/perl
+eval { require "menu.pl"; };
diff --git a/is.pl b/is.pl
new file mode 100755
index 00000000..742968ca
--- /dev/null
+++ b/is.pl
@@ -0,0 +1,2 @@
+#!/usr/bin/perl
+eval { require "menu.pl"; };
diff --git a/jc.pl b/jc.pl
new file mode 100755
index 00000000..742968ca
--- /dev/null
+++ b/jc.pl
@@ -0,0 +1,2 @@
+#!/usr/bin/perl
+eval { require "menu.pl"; };
diff --git a/ledger-smb-httpd.conf b/ledger-smb-httpd.conf
new file mode 100644
index 00000000..02237a0e
--- /dev/null
+++ b/ledger-smb-httpd.conf
@@ -0,0 +1,16 @@
+
+Alias /ledger-smb /some/path/to/ledger-smb/
+
+<Directory /some/path/to/ledger-smb>
+ AllowOverride All
+ AddHandler cgi-script .pl
+ Options ExecCGI Includes FollowSymlinks
+ Order Allow,Deny
+ Allow from All
+</Directory>
+
+<Directory /some/path/to/ledger-smb/users>
+ Order Deny,Allow
+ Deny from All
+</Directory>
+
diff --git a/ledger-smb.conf b/ledger-smb.conf
new file mode 100644
index 00000000..cd16e308
--- /dev/null
+++ b/ledger-smb.conf
@@ -0,0 +1,48 @@
+use vars qw($userspath $spool $memberfile $templates $sendmail $language $sid $latex %printer $gzip);
+
+# path to user configuration files
+$userspath = "users";
+
+# spool directory for batch printing
+$spool = "spool";
+
+# templates base directory
+$templates = "templates";
+
+# member file
+$memberfile = "users/members";
+
+# location of sendmail
+$sendmail = "| /usr/sbin/sendmail -t";
+
+# set language for login and admin
+$language = "";
+
+# Oracle
+#$sid = "T80509";
+#$ENV{"ORACLE_HOME"} = "/usr/local/oracle";
+
+# if you have latex installed set to 1
+$latex = 1;
+
+# available printers
+%printer = ( Laser => 'lpr -Plaser',
+ Epson => 'lpr -PEpson',
+ );
+
+# program to use for file compression
+$gzip = "gzip -S .gz";
+
+# if the server can't find gzip, latex, dvips or pdflatex, add the path
+$ENV{PATH} .= ":/usr/local/bin";
+
+# on mac os X using Fink's Perl libs, add the path
+#$ENV{PERL5LIB} .= ":/sw/lib/perl5";
+
+# DB2, Default dataset is expected to be LEDGER
+#$ENV{DB2INSTANCE} = "db2inst1";
+#$ENV{DB2_HOME} = "/opt/IBM/db2/V8.1/";
+
+
+1;
+
diff --git a/ledger-smb.conf.default b/ledger-smb.conf.default
new file mode 100644
index 00000000..cd16e308
--- /dev/null
+++ b/ledger-smb.conf.default
@@ -0,0 +1,48 @@
+use vars qw($userspath $spool $memberfile $templates $sendmail $language $sid $latex %printer $gzip);
+
+# path to user configuration files
+$userspath = "users";
+
+# spool directory for batch printing
+$spool = "spool";
+
+# templates base directory
+$templates = "templates";
+
+# member file
+$memberfile = "users/members";
+
+# location of sendmail
+$sendmail = "| /usr/sbin/sendmail -t";
+
+# set language for login and admin
+$language = "";
+
+# Oracle
+#$sid = "T80509";
+#$ENV{"ORACLE_HOME"} = "/usr/local/oracle";
+
+# if you have latex installed set to 1
+$latex = 1;
+
+# available printers
+%printer = ( Laser => 'lpr -Plaser',
+ Epson => 'lpr -PEpson',
+ );
+
+# program to use for file compression
+$gzip = "gzip -S .gz";
+
+# if the server can't find gzip, latex, dvips or pdflatex, add the path
+$ENV{PATH} .= ":/usr/local/bin";
+
+# on mac os X using Fink's Perl libs, add the path
+#$ENV{PERL5LIB} .= ":/sw/lib/perl5";
+
+# DB2, Default dataset is expected to be LEDGER
+#$ENV{DB2INSTANCE} = "db2inst1";
+#$ENV{DB2_HOME} = "/opt/IBM/db2/V8.1/";
+
+
+1;
+
diff --git a/ledger-smb.eps b/ledger-smb.eps
new file mode 100755
index 00000000..fb526310
--- /dev/null
+++ b/ledger-smb.eps
@@ -0,0 +1,496 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: GIMP PostScript file plugin V 1.17 by Peter Kirchgessner
+%%Title: ledger-smb.eps
+%%CreationDate: Mon Aug 28 22:43:40 2006
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 2
+%%Pages: 1
+%%BoundingBox: 14 14 219 151
+%%EndComments
+%%BeginProlog
+% Use own dictionary to avoid conflicts
+10 dict begin
+%%EndProlog
+%%Page: 1 1
+% Translate for offset
+14.173228346456694 14.173228346456694 translate
+% Translate to begin of first scanline
+0 135.98300212473441 translate
+203.97450318710162 -135.98300212473441 scale
+% Image geometry
+204 136 8
+% Transformation matrix
+[ 204 0 0 136 0 0 ]
+% Strings to hold RGB-samples per scanline
+/rstr 204 string def
+/gstr 204 string def
+/bstr 204 string def
+{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop}
+true 3
+%%BeginData: 14399 ASCII Bytes
+colorimage
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+TDnn7r]-JJJ,~>
+TDnn0r\'c@J,~>
+TDnn]rc"A,J,~>
+g&M%3!-ZQc!-\?%S,\!~>
+g&M%)!,p'\!,qiiS,\!~>
+g&M%j!1_74!1a%-S,\!~>
+g&M%3!-ZQc!-\?%S,\!~>
+g&M%)!,p'\!,qiiS,\!~>
+g&M%j!1_74!1a%-S,\!~>
+g&M%3!-ZQc!-\?%S,\!~>
+g&M%)!,p'\!,qiiS,\!~>
+g&M%j!1_74!1a%-S,\!~>
+g&M%3!-ZQc!-\?%S,\!~>
+g&M%)!,p'\!,qiiS,\!~>
+g&M%j!1_74!1a%-S,\!~>
+g&M%3!-ZQc!-\?%S,\!~>
+g&M%)!,p'\!,qiiS,\!~>
+g&M%j!1_74!1a%-S,\!~>
+g&M%3!-ZQc!-\?%S,\!~>
+g&M%)!,p'\!,qiiS,\!~>
+g&M%j!1_74!1a%-S,\!~>
+g&M%3!-ZQc!-\?%S,\!~>
+g&M%)!,p'\!,qiiS,\!~>
+g&M%j!1_74!1a%-S,\!~>
+g&M%3!-[].#3EOqT;B0]nc&dEZ_F\Eq#:9nG5aMqrs&JPZD+SEq<e1djh7O`V7YjWrrr8EXe2B9
+iW"E~>
+g&M%)!,q3'#3<@iR\71Onc&dCYFVc5q#:9nDuME`rs&JMY+;Z5q!J(cjLV(STXa(Nrrr5BWLKO+
+iW"E~>
+g&M%j!1`BT#40[N\\?AUnc&dPaLoOEqYpKpSGmL$rs&J\a1TFDqsFCfm*EGW^<Z*5rrr;T`4EY=
+iW"E~>
+g&M%3!-[f1!rT6*qDeR`^%MC+^/Y"j"@\FEs*"B%p\t9#:]*3U7[3cLG5aMrrrW,%>5C5[?bQ46
+r](+)s7V^HrAak.iW"E~>
+g&M%)!,q<*!rT)sqC_kN](Q((\kN#T"?_S6s)7lip\t8t7f4nB4c]@<DuMEarrW,!;Yi$I=1\/+
+r\"Cms7MF7r@\.riW"E~>
+g&M%j!1`KW!r^)oqJZInch7;=d"M=9"F73Fs.'(-p\t98JGa?hHF!GJSGmL%rrW/<M#)&kMpM.t
+rbr"1s7imErGVb3iW"E~>
+g&M%3!-[i2!TIDY3<=F#q>UKpM>0(4=R:513Vi[Ur-A&t!b(J>r]0cR!TIDY3<=F#q>^FS!d<j3
+q`+Y,iW"E~>
+g&M%)!,q?+!T@&P0*-+gq>UKpKD7)$;!W'!0DYVKr,_Wd!a4l.r\+'H!T@&P0*-+gq>^FI!cR="
+q_%qpiW"E~>
+g&M%j!1`NX!U>R9DulR,q>UKpWq^N7L@Lf5E;BM7rL`k(!fcc@rc%Z4!U>R9DulR,q>^G5!hAb8
+qeuP1iW"E~>
+g&M%3!-[l3!T$EI3<hlmP+.JC3rV,?DuBJ3!0d@A#ZHSJLf-5nA9@f2q>UGFrAb-bMjfQ*3B;#$
+r]0fS!T$EI3<hlmP+.JC3rV,?DuBJ3r](:*?9(#BKUJ0ML>i/_~>
+g&M%)!,qB,!Sfs>0*XIRN0]<+0`E^+B`.`,!07"2#YK`6Jk7UK?#BQoq>UG@r@\FOKp@?e0/$sV
+r\+*I!Sfs>0*XIRN0]<+0`E^+B`.`,r\"Rn<\H*rI?Th4JDpNY~>
+g&M%j!1`QY!U"k0E!CQUYd^csEW0nXQi6d\!3uKA#_T.cWIf).O.6,fq>UGjrGW$rX1#'_E,_/6
+rc%]5!U"k0E!CQUYd^csEW0nXQi6d\rbr13Mf<WcVR<e$W8[c,~>
+g&M%3!-[o4#4thS3C0P:r;QfQ@/`.dTDSWmcoO0I4g"__rri>&4?5V)3VraU^]$4o6+Qpn"1UWW
+55mS=rs&*o3B9C&p\b$lggL+A!2',fr](*C3C1%OrVllpiW"E~>
+g&M%)!,qE-#4tM@0/oX"r;QfO=T0rRRf!*hc7gn)1TCBQrri>"1+tK`0Db\K]DaGa2n&Ya"1:'@
+2?#9*rs&*f0/#8Yp\b$lg0">-!1Ncar\"C/0/p-7rVllpiW"E~>
+g&M%j!1`TZ#5<ahE-B"lr;Qf[N;dbr\blC2h/RCQF2\(Wrri>=Ec?+!E;KS7d/ItbG0Tsb"3bq-
+FT-7Urs&4ME,^!8q>C6nk)B:Y!4ht+rbr![E-BA&rVllqiW"E~>
+g&M%3!-[o4"HGK&6.>Z0"nl4^3C<96rr?R.3<6MarrBA&3W&gWr`9"Y!64m8!64psqYp\Y3B9CS
+q>UWl>rao3nb`@b3<;4cgAc[~>
+g&M%)!,qE-"Gncb2pqI$"nkqL00&J!rr?:&0*&<SrrB5"0DkbMr_<AF!5n[5!5n^fqYp\T0/#93
+q>UWl<A-!bnGE7a0**fLgAc[~>
+g&M%j!1`TZ"Kl]_G2N,q"o4$pE-CpPrrA)YDue&WrrC+;E;TY9re:>j!7q#H!7q'eqYp]$E,^!X
+q>UWoMK!NXp&"dfDujt4gAc[~>
+g&M%3!-[r5"ReN73McEL!7Lj,!3?(u!8@E4!,qZ4!,VToqu6Z?r]'t,q#:>BrAjcT"ReN73McEL
+!7Lj,!3?"srAak7g&HR~>
+g&M%)!,qH."Re3$0;/(>!7:]u!2oeq!8.9(!,)*,!+l*^qu6Z<r\"7qq#:>;r@e'J"Re3$0;/(>
+!7:]u!2o_or@\/'g&HR~>
+g&M%j!1`W["S?eTE4u#G!8d]o!5e^7!9F,u!13K\!1!M%qu6ZMrbqk2q#:>frG_Z6"S?eTE4u#G
+!8d]o!5eX5rGVb:g&HR~>
+g&M%3!-[r5"Ka[E5P4[L"&M!<G5_F@SGkMK_YF-2_>QCkrrA8^3<7D#rrCCD3W&gZXZ8C+o_/:e
+:cUOZqu?UT!8H3,J,~>
+g&M%)!,qH."K=%-2Y?_C"%P!tDuK\9Qi8W<^\Ig/^AT_^rrA)Y0*'5krrC:A0DkbPW@on_o_/:e
+7kZN6qu?UJ!86'*J,~>
+g&M%j!1`W["N57uFSGM/"+bE1SGiHf\,L=He+iqCdf".^rrB>'Due\grrCjQE;TY<`,K[;p\+Uh
+JT,Ruqu?V6!9Mo6J,~>
+g&M%3!-[r5"*lmeAG,s)D)jUTrVm"?3B94uq#:Bj4T7A<rrd!q3C3W=rrN'`r]0lU"*lmeAG,s)
+D)jUTqu?XU!(bcBJ,~>
+g&M%)!,qH."*6+K?1n4"AhPf0rVm"80/#*Vq#:Bi1B&s(rrca`0/rk)rrN'Vr\+0K"*6+K?1n4"
+AhPf0qu?XK!'f-9J,~>
+g&M%j!1`W[".sOOO7iMTQ>geqrVm"fE,]jpq#:BlErL%TrreL(E-D6UrrN(@rc%c7".sOOO7iMT
+Q>geqqu?Y7!.3AuJ,~>
+g&M%3!-[r5"'7KC3qYQ:3]T2crVlst3B:=;rr?7%3W&gY:,t=CpAY,"r]0lU"'7KC3qYQ:3]T2c
+qu?XU!+sm`J,~>
+g&M%)!,qH."&:L&0_I.&0J>(;rVlsk0/$8trr>pq0DkbO75$;spAY+or\+0K"&:L&0_I.&0J>(;
+qu?XK!++=XJ,~>
+g&M%j!1`W[",1]5EV4>SEH#l>rVltOE,^[-rr@lSE;TY;IrK@dpAY,Nrc%c7",1]5EV4>SEH#l>
+qu?Y7!0Pq6J,~>
+g&M%3!-[r5!(-*6rVlsg3B:pLrr?j63W&gY69.&EpAY,1r]0lU!(-*6qu?XU!-6`lJ,~>
+g&M%)!,qH.!'0I#rVls]0/$o1rr?R.0DkbO3%lptpAY,)r\+0K!'0I#qu?XK!,L6eJ,~>
+g&M%j!1`W[!-djMrVltEE,_*9rrA;_E;TY;G&VDepAY,Yrc%c7!-djMqu?Y7!1MR?J,~>
+g&M%3!-[r5!'BU/rVls]3B;3Trr@->3W&gY4?5ECpAY,6r]0lU!'BU/qu?XU!-[#pJ,~>
+g&M%)!,qH.!&<mprVlsS0/%29rr?m70DkbO1+t:spAY,/r\+0K!&<mpqu?XK!,pNiJ,~>
+g&M%j!1`W[!-.FGrVlt?E,_<?rrAMeE;TY;Ec>udpAY,]rc%c7!-.FGqu?Y7!1_^AJ,~>
+g&M%3!-[r5"$S_*E:*Z-76*AEpAY,.r]0lU"%P@3C%hQ,B`:$hrrYGF3H4<ar]'t%f`-I~>
+g&M%)!,qH."#V_bC$kp&4"i6upAY,&r\+0K"$S@k@eTg%@K%qWrrY,3059bPr\"7if`-I~>
+g&M%j!1`W["*AL$R-jnUG]7VepAY,Wrc%c7"+"p*PP5"VP5]Ftrr[@^E1#tkrbqk-f`-I~>
+g&M%3!-[r5"&M!<@I='s;E6aApAY+rr]0lU"'7KC;>1"i;#WKPrrZ(X3FV7Rr]'t%f`-I~>
+g&M%)!,qH."%P!t=mc4k8M;_qpAY+ir\+0K"&:L&8G<&`8,b1=rrYbE03RW@r\"7if`-I~>
+g&M%j!1`W["+Y?0NU?`JJoG[cpAY,Krc%c7",1]5JbK*DJc9Wcrr[djE/j2`rbqk-f`-I~>
+g&M%3!-[r5"E6@]55FXH"E?F^4o4sR!VnkW3W&gVIJu5,n+cn_meo0Crrd:$3Bm9*s8G"YG1chF~>
+g&M%)!,qH."DKMB2>HV>"DTSC1\phG!VeGL0DkbLG5a,pmeHe^mJS^8rrd$h0/`Oks8FYODqP)?~>
+g&M%j!1`W["IO.IFSkM+"IO.IF8Pb4!W-p:E;TY8U&K!2oD&=coDNY*rre^.E-2!Ds8Hs;SCmjl~>
+g&M%3!-[r5!2KNR!5\+'!1a$K!5nU3!5e[pqu6Yrr]'t[q#:>prAjcT!2KNR!5\%%r]'t%f`-I~>
+g&M%)!,qH.!2'6D!5@n$!13[<!5SC0!5JIcqu6Ymr\"8Mq#:>lr@e'J!2'6D!5@h"r\"7if`-I~>
+g&M%j!1`W[!58AN!7L<8!4VrH!7^fD!7Umcqu6Z4rbqkTq#:?2rG_Z6!58AN!7L66rbqk-f`-I~>
+g&M%3!-[r5"mA$.3FD[PrrCaO3<4$nrr?p73W&g[m6*Hi;"jbc!VT=f3W&g[kW:db?i06jr]'t%
+f`-I~>
+g&M%)!,qH."m7Tn03A&>rrC[M0*#_]rr?[00DkbQln^:J8+ufZ!VT"]0DkbQk:nVC=8VCbr\"7i
+f`-I~>
+g&M%j!1`W["n$DME/XY_rrD-ZDuc:#rrAA`E;TY=noJbhJGK'A!Vq9EE;TY=mW*8cMu;uBrbqk-
+f`-I~>
+g&M%3!-[o4!/:D4!JLFFrrCCBrr?R.3<6ScrrBG(3VraUK)Rb2GPh=<!W.'<3VraUL&O(5K`1WE
+!71NAr]'t%f`-I~>
+g&M%)!,qE-!.Xu$!Ik"@rrC:?rr?:&0*&EVrrB>%0Db\KI/Yc"E;TS5!W-g50Db\KJ,V)%If9!?
+!6k<>r\"7if`-I~>
+g&M%j!1`TZ!2og8!N,hhrrCjOrrA)YDue,YrrC1=E;KS7V>bE7Sc&Ec!W8JcE;KS7VuCW9VZ$5g
+!8RGNrbqk-f`-I~>
+g&M%3!-[o4!V'"c3<<gCqYpZdZ=Gumrrpb13B9:,rVm$"Y!"d/r]0iT!U`MX3=/s&n,;^e>WG,U
+r]0iT!V'"c3<<gCqYpZdZ=Guls8G"YG1chF~>
+g&M%)!,qE-!UrVY0*,M/qYpZdY$E^XrrpY$0/#/_rVm$"W\Z:br\+-J!UW,N0*tUfmeuR`<%g72
+r\+-J!UrVY0*,M/qYpZdY$E^Ws8FYODqP)?~>
+g&M%j!1`TZ!VM!BDul-[qYpZia,b3:rrq4uE,]m;rVm$"`H-!>rc%`6!V:[;E!_BHoD\@,M/[Zq
+rc%`6!VM!BDul-[qYpZia,b39s8Hs;SCmjl~>
+g&M%3!'9a6!1<cc!SpBH3<rT;Q(=.g><DgEqYpPZrAb-^MOKB#3B:Skr]0fS!R3q)3<Zj83B91s
+rrLqJrAb*`K9`!lITno53VrdT3<46Ts*t~>
+g&M%)!&4%"!0dE^!S]p=0*b4!OI2&Q;_e8)qYpPUr@\FLKU%0^0/$OHr\+*I!R!Fr0*JY#0/#'U
+rrLk?r@\CMI#s_UGZ-?r0Db_J0*#qCs*t~>
+g&M%j!-.XO!4;b*!Tne.E!M)nZad<8M/iN6qYpQ#rGW$pWj\p[E,^i,rc%]5!S_elE!4@SE,]jn
+rrM80rGW!qV6d\;U5<mhE;KV6DucE\s*t~>
+g&LP%!1!N_!Tdnb3<28>rrN+Tpc/CWlZW7fq#:BB<;JTZ6b`S=3B9S(rrM4moJln8qZ$OT!-[#p
+J,~>
+g&LOp!0I0Z!T[PY0*!j*rrN+Npb)\Dl>QYTq#:B@9_pCH3kG?(0/#K`rrM1doIg2$qZ$OJ!,pNi
+J,~>
+g&LP\!42Y(!UPp?DuatUrrN+upi$:gn=9Jsq#:BOK_fWlGL6AVE,^-urrMJJoPaeOqZ$P6!1_^A
+J,~>
+g&LP%!1!K^"9,oG48Lr>5]3[nq#:B.;uAWY7#gg<G5aMrrsnk/Db`JiA>8Gjs'RiI;YU1nrjui*
+qDeXCDQNC)s8G"YG1chF~>
+g&LOp!0I-Y"9,f=1&<O*2J/oWq#:B+9DgFG3f!;+DuMEarsnh*BLOaF>b13\s&^p-8b`5erjZAk
+qC_q/AuP4qs8FYODqP)?~>
+g&LP\!42V'"9-T/EVaVVFdBr<q#:B@KD]ZkGcg]>SGmL%rsnqGQ[a()O1b&`s,:o9K(o9Irm$[H
+qJZOZQG`Cls8Hs;SCmjl~>
+^]+T.a/tu+Wk7!]oD]!EZD"JApu_SZq`d)$DY3r7n&MQ&T;oNWqTAhg~>
+^]+T.`2T5qV7>1RoD]!CY+2Q1pu_SZq_g)\B(Z*/n&22pS#*XIq9&_f~>
+^]+T3f>P83_9V-=oD]!Qa1K=AqW@e\r,cmsQLt1_o[h$m]"u\Qqo\qh~>
+L]7@kr]'tE[/YX~>
+L]7@hr\"86[/YX~>
+L]7A'rbqkD[/YX~>
+M#RMQ@K&7ed'Wh'~>
+M#RMQ=oL&ScF!V%~>
+M#RMRNW*ksh6d34~>
+P5bO'q>UKlJ,VG.>-n6Z~>
+P5bO$q>UKkGlB>r;7$:Q~>
+P5bO6q>UKmUAf*3LpR,3~>
+P5bhKAus\Yrq>3J;uScX3m4l0J,~>
+P5bhA?DuKJrq>-C9E$RF0Z^U#J,~>
+P5bi-Oi-8TrqY`nKDofjES7\uJ,~>
+P5k/7!2-XtJ,~>
+P5k/-!1U:oJ,~>
+P5k/n!5#Q:J,~>
+P5bMIpGi7J\?Z'a~>
+P5bM?pFcP7[B]a^~>
+P5bN)pM^.]bd%1u~>
+P5bp`]SgAr5W_G:J$f!Ts*t~>
+P5bp_\V4?X2DI?iGd-tIs*t~>
+P5bpbc`<1XF`Me^U<389s*t~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+OoPI\rVZlus8W)sYlB4~>
+P5bpgY#-&>$o)tOpno.:s*t~>
+P5bpgY#-&>$o)tOpno.:s*t~>
+P5bU_rVc]orVZ`qqu6_R;&]BF!3c%p!W,4^&HWtMq#13oLJA]_!!NB5/Ru<ikl6/~>
+PQ(pV7fa*:Uof7orW*!qqu6`5Ukeo#!7g`A!WAPeJc^b(qu-NrLJA]_!!NB5/Ru<ikl6/~>
+PQ(pV7fa*:Uof7orW*!qqu6_W=XF"d!4)7s!W,Og*!.Nkpsf=o~>
+PQ(^`rVcWn"9/8trqZQpj;@k.!1*9W!0I-k!E/UdrrMd4rW!6Z\BV^@(]XOtj6?So~>
+PlCma63/+`rVm#p;um#Qq>UKcL&QZ(aRoK4`VkAhV#'oe!VIH3!!tBic+SfJ!!#+@l2Q8~>
+PlCma63/+`rVm#p;um#Qq>UKW,5rP^Re6U[Q2M['>4p>DJ,~>
+PlCjbrVc`ls8W#trqZQpq\fAF!.4D=!SJ=g&HL2Prr>7^!!'5$rrq[3!!">9lMlA~>
+PlCi\!<K+qrr_j.!P/%+!W@cPJcNCTrrMG>rIP%3p\t4WrVur%rVm&d+ohTho'67*~>
+PlCi\!<K+qrr_j.!P/%+!W+/A)utQ_rrLjur>YgcdJn^~>
+PlCgarVcQl!WN&mrrC"9&HH85rrW*d)#b*J0)kVF"<mgG!q-!d!2KMn!.jG8J,~>
+PlChS!<MWbrrQj7mJ6b^i;J6-XS2YqrgefCJcLr,rraMG!!;TdrrAhn!!%T8s*t~>
+PlChS!<MWbrrQj7mJ6b^a8HtXC%hQ.r(SF8*!&%udJn^~>
+PlLa]q>UKprV6BrIM"1E&P)Qp!g4..rXf-Lp\t6[rVupSqu6ZXrVupLlMlA~>
+PlCh!!<N)orrJB1q#:N0JrtY:T(`0c`e(DnJcN1PrrDEb!!"hPrrD0[!!"S8s*t~>
+PlCh!!<N)orrJB1q#:MN*&noX;"jnjQQ0oB)ut30s*t~>
+PlLa]q>^Koq#:L\1h%%//bf8Ig)+(=rXf.8p\t5mrVuq?qu6ZorVup'lMlA~>
+PlCgf!<LdJrrK6)q#:McPc]OhOn\kXl\2=Irdk.$p\t5mrVuq?qu6ZorVup'lMlA~>
+PlCgf!<LdJrrK6)q#:Le4_YlU2u!=SgEL-UrYtpFd/SU~>
+PlLa]!<2fo!<2fo#O)h@Hk?r*r;$?ur'hgm2\?W7me?_]A,ZH.[ep()oDS^i"mZ,<~>
+PlCh%!<HX*rrLuiq>U]kK!i1AJqX.!rri=mMY!/5JcPN=rr?R.!!'J)rrDZi!!!2fs*t~>
+PlCh%!<HX*rrLuiq>U]b*-m,U*$G1Trs8Nu.d95=*$+Lps*t~>
+PlCa_rquirnc&]h&[@Z$&HM%jrr\MuVWRji!(-G["o]MB!!DfhrrC7A!!"P7s*t~>
+PlC_grW*"lnc&^=K%A$BJcPE<rr^;nd.70f!1`f`"o]MB!!DfhrrC7A!!"P7s*t~>
+PlC_grW*"lnc&]l*4247*!#7!rr\]0Wos@$!)(Z<J,~>
+PQ1U[!<2Qh"(`,4Z2P=8cMIPDg_a#iVZ%/-K_PKHfDYaM3;WXTHN!mEJa38c~>
+PlCp;"p"`.[IX>"Y(HAurdk.3qYp]bL8Fpsrdk-ap\t6FrVupXqYpPArVuqLlMlA~>
+PlCp;"p"`.[IX>"C`VrNrYtpbqYp]S,@(5JrYtopci8L~>
+PQ(X^rVZ`qo`#'m,s_LRrXf.:qu6it80$[iBDrJC`:s93Oo>=\HMd^Gi=,be-hHX'J,~>
+PQ(WHrW*$*]Cc++rf!?HjSj`2fDGROrh##9s0)ER!9!VO!0R6\!.+PB"lTmj!%7C's*t~>
+PQ(WHrW*$*]Cc++r@^bBc2J[_\,61/r)"j&s).fU!6<FcJ,~>
+P5bO]rVcBg"O@[0s5j4l!1E`a$'l0ps8FAX&KCQ?rr>^k!!'Y/rrq7/!!"t?l2Q8~>
+PQ([_DZ0Y;$GuK9"Qk<Ks7-)?!6Y3=$-7_Bs8S+2Jqs9urr>^k!!'Y/rrq7/!!"t?l2Q8~>
+PQ([_DZ0Y;$GuK9"O\9Ds5s;#!1s)f$(Dp/s8F_m*%(O.s*t~>
+OoGF\rVcEh#`TG1s8*HA&V'`Y"l'tirVtIJ&HGl+rt"l4!!!2qs8D)jCC'tuT)7aOJ,~>
+P5bR]?iC',%aXkK#fD8Ms8@S%K"V$]"mq&<rr;6^JcM\Brt"l4!!!2qs8D)jCC'tuT)7aOJ,~>
+P5bR]?iC',%aXkK#a-1Ds8*iW*/4=j"l:M)rVtOL)us<js*t~>
+OT,=[rVcHi#YQ!-s8OM[&S:q@#5q.3hZ*VArXf-rp\t6-rW!$%((UNH!!+Utjo9i~>
+OoGIY9`>%n)Wg_n#bZnJs8S.3K!,(P#6(9Mmf3=.rdk-kp\t6-rW!$%((UNH!!+Utjo9i~>
+OoGIY9`>%n)Wg_n#ZDo?s8Okp*,PTR#5qFFi;`hGrYtp-cMrC~>
+O8o.Vq#:Ed'i"]-"%*Y49E"klQk>Y`rr?+!&HLGWrr@<C!",V"o&7B/#659qroa<3~>
+OT,@S4T5?^5lLNY!r.GBrr3(jJqBZorrU;oaSu2>VZ)/IlM(;YGl@[MVY]lB^j$(a&!-_Qs*t~>
+OT,@S4T5?^5lLNY!qRO7rr3'o*#qoUrrS`2Rf<<e?N(oEg!9VJ~>
+NrT(V!<2fo!jrVurr3(,&J6bsrsR[%7K!2cq&9nX.K9)A!&FNR!9a:["iLTF!+u5os*t~>
+O8f7L/cGbNVYU5nfRh!>rr]9QJs636$LW\?rr<#rLOt,=pAY+JrVur]r;Qr="onX8rojB4~>
+O8f7L/cGbNVYU5n\K$b2rrZgP*'4*!$fE=+r;Zfn-6+!]rm(Oo~>
+NW9"V!<2fo!cnsrrr3:L&J5iYs8>V-g&D!O`VpGLCA7`.lM^b`/,K8GFT)7?Wp'J5~>
+NrK7=&-2euq>UN(K&ck1$+PS=L&_2PTnVh3rrD$WJcN(MrrD?`!!"PGrr@0?!!'%_s*t~>
+NrK7=&-2euq>UMA*6eE^$%<j6+o_N?<$C#qrrC.>)ut!'s*t~>
+Qi@'bq#:?nrr)Zm!\k_mrr2t]rXf;!s-jU\rVlkPrXf.1p\t5jrVuq<qYpQArVupakl6/~>
+R/[3JV"jrlMZEhhq>UM[M#I>Q!65"i"SMf<K#IWf!5JMb!7LWA!2f_q!-.l8!71WE!(#iKJ,~>
+R/[3JV"jrlMZEhhq>ULW./X#D!13[)"RQ/]*0^@$!/pgr!3XTHJ,~>
+R/d3cp](6kqYpWR&R#)4!3H/3"OZ-H5Pk?Y!(Hl!!:'=Y!+>d+!4r%,!;QNn!"J/lJ,~>
+R/[2mBDDK/i;ir_qYpWbJuJYJ!7Uq!"R#6/Rf33b!1j+@!;-$c!+>d+!4r%,!;QNn!"J/lJ,~>
+R/[2mBDDK/i;ir_qYpWT*+AgG!3lGB"Ol?W8GiAc!)EM5!:.o0J,~>
+R/d3cp](6kqYpVe&X`Os!65!M"1:l=df'1KnIlKH4SSjZrYbb:$MXDs!;HHm!!DHbJ,~>
+R/[2F;>C.nq>gU8qYpW?K$!uk!9*p/"5'?$kPbD`pk+0MRJ6^brYbb:$MXDs!;HHm!!DHbJ,~>
+R/[2F;>C.nq>gU8qYpVj*1d'.!6P3["1_GTeG]CMnfAbj7Ekd^~>
+R/[3drV-?lr;cinrrQ@9fDY^Lhu42h64ntMrrBG*&HI7RrrCOI!!#XerrC^N!!")(s*t~>
+R/[4u)#a:1"69I`:\t(mW.O=5rrDKdJc_En^\n*3f`$I&]D)=*e,B=I9)8Jef_tjN*pEWS~>
+R/[4u)#a:1"69I`:\t(m@3!u!rrD$W*!/_PMu<ST\GdHJK?X@G~>
+R/d3b!<2fo"9/8trql]tp_tU[rVllmr=K&jq#(-lFoDsQ^A%X-NW&nXO88eUPl:X_@Hd`A~>
+R/[4N!O;J#".]GnU\k&mqhL40rrDrpJcV59r;Qc*rdk.+p\t5QrVuqZq>UGZrVuq,kl6/~>
+R/[4N!O;J#".]GnU\k&npa.`prVllmr>Yi)q>C6mHi=ub_9Dq0~>
+R/d0aq>^HmqYpW.&S:k>"=4Wl'@$FS">g]&)#!_(!(["g!71NA"o0GE!!1C/s*t~>
+R/[7'!@%"0rrhm<!A+-FrrUr,Y5A5%N.QY6jno&\Q%FUAqY1!i8,`JgchdYFq'?"@!RBp/J,~>
+R/[7'!@%"0rrhm<!A+-FrrTkRD#=580,trQchm_F4rbOdp<<Pe~>
+R/d-`qu6`srVcQl!bW+9qu6a_&J9HgrrD$W&HGArrrr'$!!!E)qu6]rCAn25HKY<Y~>
+RK!9RrW*$Uh>R?Vl9YL_fD>LKYCb!qrr\^AK"Lp[!:To=!2'#c"n`-$!"8`%rrN+6rVuqEkPp&~>
+RK!9RrW*$Uh>R?Vl9YL_fD>LKDB,DJrrYe3*/".g!9=%u!)^r>J,~>
+R/[<frr2lprVlfpq>UQ[(_OLZrrZC91\U_G!/1=`!,)'+!2oer!>PJ0rrM=arVut>rTF32~>
+RK!`8#[9Rt#[*4RB+G"leb]:JnqD\Oqu6bsJs?-/rrBe4JcN"KrrAtr!!*f3r;Qf]<rN("ErG2$
+J,~>
+RK!`8#[9Rt#[*4RB+G"leb]:JkTV"_qu6b,*'Erlrr@oT)usm"s*t~>
+RK*<drr<#trr)lrq>UTk<"T_'qu6_=&]XbK!r]29rXf0$qYC-li[+O'$<Oj`^meI4!!"RYjo9i~>
+RK!\eMuWhBP!fi`(eUCrqYp]pV1O<;qu6`*K&QY-!rgZ%rdk0BrV?Hoi[+O'$<Oj`^meI4!!"RY
+jo9i~>
+RK!\eMuWhBP!fi`(eUCrqYp]l>T=`Jqu6_C*6J-Y!r]>GrYtr8qoo(j~>
+LAq:4-N+MX6=p)orrJ+%rVlrs=Xj4[![LR4rVlra3X#3X"U#W'F2@k:s*t~>
+LAq:kNW"G1S?DkjrrL$GrVlruW/ph-!fWktrVlra3X#3X"U#W'F2@k:s*t~>
+LAq::0`;sm95OP*rrJ:0rVlrs@5Id#!\RQKcMrC~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+%%EndData
+showpage
+%%Trailer
+end
+%%EOF
diff --git a/ledger-smb.gif b/ledger-smb.gif
new file mode 100755
index 00000000..768f2915
--- /dev/null
+++ b/ledger-smb.gif
Binary files differ
diff --git a/ledger-smb.png b/ledger-smb.png
new file mode 100755
index 00000000..e8c8b84f
--- /dev/null
+++ b/ledger-smb.png
Binary files differ
diff --git a/ledger-smb_small.png b/ledger-smb_small.png
new file mode 100755
index 00000000..d6b849ce
--- /dev/null
+++ b/ledger-smb_small.png
Binary files differ
diff --git a/locale/be_fr/COPYING b/locale/be_fr/COPYING
new file mode 100755
index 00000000..223ea7d0
--- /dev/null
+++ b/locale/be_fr/COPYING
@@ -0,0 +1,29 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2003
+#
+# French texts:
+#
+# Author: Sèbastien Brassard <sbrassar.cgocable.ca>
+# Oscar Buijten <oscar@elbie.com>
+# Wolfgang Sourdeau <wolfgang@contre.com>
+# Aguibou KONE <aguibou.kone@rocketmail.com>
+# Jens-Ingo Brodesser <jens-ingo@all2all.org>
+# Mathieu Chappuis <mathieu.chappuis@nchp.net>
+# Olivier Cornet <ocornet@biz.tiscali.be>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/be_fr/LANGUAGE b/locale/be_fr/LANGUAGE
new file mode 100755
index 00000000..4c161347
--- /dev/null
+++ b/locale/be_fr/LANGUAGE
@@ -0,0 +1 @@
+French/Belgium
diff --git a/locale/be_fr/Num2text b/locale/be_fr/Num2text
new file mode 100755
index 00000000..90295031
--- /dev/null
+++ b/locale/be_fr/Num2text
@@ -0,0 +1,202 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (C) 2002
+#
+# Author: Dieter Simader
+# Email: dsimader@sql-ledger.org
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+# Contributors: Bruno Leveque <bruno.leveque@net6d.com>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=====================================================================
+#
+# this is the french code for printing numbers in text
+#
+#=====================================================================
+
+
+sub init {
+ my $self = shift;
+
+ %{ $self->{numbername} } =
+ (0 => 'Zéro',
+ 1 => 'Un',
+ 2 => 'Deux',
+ 3 => 'Trois',
+ 4 => 'Quatre',
+ 5 => 'Cinq',
+ 6 => 'Six',
+ 7 => 'Sept',
+ 8 => 'Huit',
+ 9 => 'Neuf',
+ 10 => 'Dix',
+ 11 => 'Onze',
+ 12 => 'Douze',
+ 13 => 'Treize',
+ 14 => 'Quatorze',
+ 15 => 'Quinze',
+ 16 => 'Seize',
+ 17 => 'Dix-sept',
+ 18 => 'Dix-huit',
+ 19 => 'Dix-neuf',
+ 20 => 'Vingt',
+ 30 => 'Trente',
+ 40 => 'Quarante',
+ 50 => 'Cinquante',
+ 60 => 'Soixante',
+ 70 => 'Septante',
+ 80 => 'Quatre-vingt',
+ 90 => 'Nonante',
+ 10**2 => 'Cent',
+ 10**3 => 'Mille',
+ 10**6 => 'Million',
+ 10**9 => 'Milliard',
+ 10**12 => 'Billion',
+ );
+
+}
+
+
+sub num2text {
+ my ($self, $amount) = @_;
+
+ return $self->{numbername}{0} unless $amount;
+
+ my @textnumber = ();
+
+ # split amount into chunks of 3
+ my @num = reverse split //, abs($amount);
+ my @numblock = ();
+ my @a;
+ my $i;
+
+ while (@num) {
+ @a = ();
+ for (1 .. 3) {
+ push @a, shift @num;
+ }
+ push @numblock, join / /, reverse @a;
+ }
+
+ my $cent=0;
+
+ while (@numblock) {
+
+ $i = $#numblock;
+ @num = split //, $numblock[$i];
+
+ if ($numblock[$i] == 0) {
+ pop @numblock;
+ next;
+ }
+
+ if ($numblock[$i] > 99) {
+ $cent=1;
+
+ # the one from hundreds
+
+ if ($num[0] > 1) {
+ push @textnumber, $self->{numbername}{$num[0]};
+ }
+
+ # reduce numblock
+ $numblock[$i] -= $num[0] * 100;
+
+ # add hundred designation
+ if ($num[0] > 1) {
+ if($numblock[$i] > 0) {
+ push @textnumber, $self->{numbername}{10**2};
+ } else {
+ push @textnumber, "$self->{numbername}{10**2}s";
+ }
+ } else {
+ push @textnumber, $self->{numbername}{10**2};
+ }
+
+ }
+
+ $numblock[$i] *= 1;
+
+ if ($numblock[$i] > 9) {
+ # tens
+ push @textnumber, $self->format_ten($numblock[$i]);
+ } elsif ($numblock[$i] > 0) {
+ # ones
+ if ($i == 1) {
+ if ($cent == 1) {
+ push @textnumber, $self->{numbername}{$numblock[$i]};
+ }
+ $cent = 0;
+ } else {
+ push @textnumber, $self->{numbername}{$numblock[$i]};
+ }
+ }
+
+ # add thousand, million
+ if ($i) {
+ $num = 10**($i * 3);
+ if ($i == 1) {
+ push @textnumber, $self->{numbername}{$num};
+ } elsif ($numblock[$i] > 1) {
+ push @textnumber, "$self->{numbername}{$num}s";
+ } else {
+ push @textnumber, "$self->{numbername}{$num}";
+ }
+ }
+
+ pop @numblock;
+
+ }
+
+ join ' ', @textnumber;
+
+}
+
+
+sub format_ten {
+ my ($self, $amount) = @_;
+
+ my $textnumber = "";
+ my @num = split //, $amount;
+
+ if ($amount > 20) {
+ if ($num[0] == 8) {
+ if ($num[1] > 0) {
+ $textnumber = $self->{numbername}{$num[0]*10};
+ } else {
+ $textnumber = "$self->{numbername}{$num[0]*10}s";
+ }
+ } else {
+ $textnumber = $self->{numbername}{$num[0]*10};
+
+ $textnumber .= " et" if ($num[1] == 1);
+
+
+ }
+ $amount = $num[1];
+ } else {
+ $textnumber = "$self->{numbername}{$amount}";
+ $amount = 0;
+ }
+
+ $textnumber .= " ".$self->{numbername}{$amount} if $amount;
+
+ $textnumber;
+
+}
+
+
+1;
+
diff --git a/locale/be_fr/aa b/locale/be_fr/aa
new file mode 100755
index 00000000..429f3d8f
--- /dev/null
+++ b/locale/be_fr/aa
@@ -0,0 +1,161 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Dépenses en retard',
+ 'AP Transaction' => 'Écriture dépenses',
+ 'AP Transactions' => 'Mouvements - Dépenses',
+ 'AR Outstanding' => 'Recettes en retard',
+ 'AR Transaction' => 'Écriture recettes',
+ 'AR Transactions' => 'Mouvements - Recettes',
+ 'Account' => 'Compte',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Add AP Transaction' => 'Ajouter une dépense',
+ 'Add AR Transaction' => 'Ajouter une recette',
+ 'Amount' => 'Montant',
+ 'Amount Due' => 'Montant dû',
+ 'Apr' => 'Avril',
+ 'April' => 'Avril',
+ 'Are you sure you want to delete Transaction' => 'Êtes vous sûr de vouloir effacer la saisie?',
+ 'Aug' => 'Août',
+ 'August' => 'Août',
+ 'Cannot delete transaction!' => 'Impossible de supprimer l\'écriture!',
+ 'Cannot post payment for a closed period!' => 'Impossible d\'enregistrer le paiement sur un exercice clos!',
+ 'Cannot post transaction for a closed period!' => 'Impossible d\'enregistrer l\'écriture sur un exercice clos!',
+ 'Cannot post transaction!' => 'Impossible d\'enregistrer l\'écriture!',
+ 'Check' => 'Chèque',
+ 'Closed' => 'Clôturé',
+ 'Confirm!' => 'Confirmer!',
+ 'Continue' => 'Continuer',
+ 'Credit' => 'Crédit',
+ 'Credit Limit' => 'Encours autorisé',
+ 'Curr' => 'Dev.',
+ 'Currency' => 'Devise',
+ 'Current' => 'En cours',
+ 'Customer' => 'Client',
+ 'Customer missing!' => 'Client manquant!',
+ 'Date' => 'Date',
+ 'Date Paid' => 'Date de paiement',
+ 'Debit' => 'Débit',
+ 'Dec' => 'Déc.',
+ 'December' => 'Décembre',
+ 'Delete' => 'Supprimer',
+ 'Department' => 'Service',
+ 'Description' => 'Description',
+ 'Detail' => 'Détail',
+ 'Due Date' => 'Échéance',
+ 'Due Date missing!' => 'Date d\'échéance manquante!',
+ 'Edit AP Transaction' => 'Modifier une dépense',
+ 'Edit AR Transaction' => 'Modifier une recette',
+ 'Employee' => 'Employé',
+ 'Exch' => 'Change',
+ 'Exchange Rate' => 'Taux de change',
+ 'Exchange rate for payment missing!' => 'Taux de change manquant pour le paiement!',
+ 'Exchange rate missing!' => 'Taux de change manquant!',
+ 'Feb' => 'Fév.',
+ 'February' => 'Février',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Inclure dans l\'état',
+ 'Invoice' => 'Facture',
+ 'Invoice Date' => 'Date de facturation',
+ 'Invoice Date missing!' => 'Date de facture manquante!',
+ 'Invoice Number' => 'Numéro de facture',
+ 'Jan' => 'Jan.',
+ 'January' => 'Janvier',
+ 'Jul' => 'Juill.',
+ 'July' => 'Juillet',
+ 'Jun' => 'Juin',
+ 'June' => 'Juin',
+ 'Manager' => 'Gestionnaire',
+ 'Mar' => 'Mars',
+ 'March' => 'Mars',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Mémo',
+ 'Month' => 'Mois',
+ 'No.' => 'N°',
+ 'Notes' => 'Notes',
+ 'Nov' => 'Nov.',
+ 'November' => 'Novembre',
+ 'Oct' => 'Oct.',
+ 'October' => 'Octobre',
+ 'Open' => 'Ouvert',
+ 'Order' => 'Commande',
+ 'Order Number' => 'Numéro de commande',
+ 'PO Number' => 'Numéro de référence',
+ 'Paid' => 'Total payé',
+ 'Payment date missing!' => 'Date de paiement manquante!',
+ 'Payments' => 'Paiements',
+ 'Period' => 'Période',
+ 'Post' => 'Enregistrer',
+ 'Post as new' => 'Enregistrer comme nouveau',
+ 'Print' => 'Imprimer',
+ 'Print and Post' => 'Imprimer et imputer',
+ 'Print and Post as new' => 'Imprimer et enregister comme nouveau',
+ 'Project' => 'Projet',
+ 'Quarter' => 'Trimestre',
+ 'Receipt' => 'Reçu',
+ 'Remaining' => 'Restant',
+ 'Sales Invoice.' => 'Facture de vente.',
+ 'Salesperson' => 'Vendeur',
+ 'Schedule' => 'Planification',
+ 'Sep' => 'Sept.',
+ 'September' => 'Septembre',
+ 'Ship to' => 'Expédier à',
+ 'Ship via' => 'Expédier via',
+ 'Shipping Point' => 'Expéditeur',
+ 'Source' => 'Source',
+ 'Subtotal' => 'Sous total',
+ 'Summary' => 'Résumé',
+ 'Tax' => 'Taxe',
+ 'Tax Included' => 'Taxe incluse',
+ 'Till' => 'Caisse',
+ 'To' => 'À',
+ 'Total' => 'Total',
+ 'Transaction' => 'Écriture',
+ 'Transaction deleted!' => 'Écriture supprimée!',
+ 'Transaction posted!' => 'Écriture enregistrée!',
+ 'Update' => 'Mettre à jour',
+ 'Vendor' => 'Fournisseur',
+ 'Vendor Invoice.' => 'Facture d\'achat.',
+ 'Vendor missing!' => 'Fournisseur manquant!',
+ 'Year' => 'Année',
+ 'Yes' => 'Oui',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'Écriture_dépenses' => 'ap_transaction',
+ 'Écriture_recettes' => 'ar_transaction',
+ 'continuer' => 'continue',
+ 'supprimer' => 'delete',
+ 'enregistrer' => 'post',
+ 'enregistrer_comme_nouveau' => 'post_as_new',
+ 'imprimer' => 'print',
+ 'imprimer_et_imputer' => 'print_and_post',
+ 'imprimer_et_enregister_comme_nouveau' => 'print_and_post_as_new',
+ 'facture_de_vente_' => 'sales_invoice_',
+ 'planification' => 'schedule',
+ 'expédier_à' => 'ship_to',
+ 'mettre_à_jour' => 'update',
+ 'facture_d\'achat_' => 'vendor_invoice_',
+ 'oui' => 'yes',
+};
+
+1;
+
diff --git a/locale/be_fr/admin b/locale/be_fr/admin
new file mode 100755
index 00000000..8abe889a
--- /dev/null
+++ b/locale/be_fr/admin
@@ -0,0 +1,144 @@
+$self{texts} = {
+ 'Access Control' => 'Contrôle d\'accès',
+ 'Accounting' => 'Comptabilité',
+ 'Add User' => 'Ajouter utilisateur',
+ 'Address' => 'Adresse',
+ 'Administration' => 'Administration',
+ 'Administrator' => 'Administrateur',
+ 'All Datasets up to date!' => 'Tous les fichiers de données sont à jour!',
+ 'Cannot create Lock!' => 'Impossible de verrouiller le fichier!',
+ 'Change Admin Password' => 'Modifier mot de passe administrateur',
+ 'Change Password' => 'Modifier mot de passe',
+ 'Click on login name to edit!' => 'Cliquer sur votre identifiant pour editer!',
+ 'Company' => 'Société',
+ 'Confirm' => 'Confirmer',
+ 'Connect to' => 'Connecter à',
+ 'Continue' => 'Continuer',
+ 'Create Chart of Accounts' => 'Créer le plan comptable',
+ 'Create Dataset' => 'Créer fichier de données',
+ 'DBA' => 'DBA',
+ 'DBI not installed!' => 'DBI non installée!',
+ 'Database' => 'Base de données',
+ 'Database Administration' => 'Gérer base de données',
+ 'Database Driver not checked!' => 'Pilotes de base de données non verifiés!',
+ 'Database User missing!' => 'Utilisateur base de données manquant!',
+ 'Dataset' => 'Fichier de données',
+ 'Dataset missing!' => 'Fichier de données manquant!',
+ 'Dataset updated!' => 'Base de données mise à jour!',
+ 'Date Format' => 'Format de date',
+ 'Delete' => 'Supprimer',
+ 'Delete Dataset' => 'Supprimer fichier de données',
+ 'Directory' => 'Répertoire',
+ 'Driver' => 'Pilote',
+ 'Dropdown Limit' => 'Limite de déroulement',
+ 'E-mail' => 'E-mail',
+ 'Edit User' => 'Modifier utilisateur',
+ 'Existing Datasets' => 'Fichiers de données existants',
+ 'Fax' => 'Fax',
+ 'Host' => 'Hôte',
+ 'Hostname missing!' => 'Nom de l\'hôte manquant',
+ 'Language' => 'Langue',
+ 'Lock System' => 'Verrouiller le système',
+ 'Lockfile created!' => 'Verrouillage en place!',
+ 'Lockfile removed!' => 'Verrouillage enlevé!',
+ 'Login' => 'Login',
+ 'Login name missing!' => 'Nom d\'utilisateur manquant!',
+ 'Logout' => 'Déconnexion',
+ 'Manager' => 'Gestionnaire',
+ 'Menu Width' => 'Largeur menu',
+ 'Multibyte Encoding' => 'Encodage multibyte',
+ 'Name' => 'Nom',
+ 'New Templates' => 'Nouveaux squelettes',
+ 'No Database Drivers available!' => 'Pas de pilote de base de données disponible!',
+ 'No Dataset selected!' => 'Pas de fichier de données sélectionné!',
+ 'Nothing to delete!' => 'Rien à supprimer',
+ 'Number Format' => 'Format des numéros',
+ 'Oracle Database Administration' => 'Administration de base de données Oracle',
+ 'Password' => 'Mot de passe',
+ 'Password changed!' => 'Mot de passe modifié!',
+ 'Passwords do not match!' => 'Mots de passes non-identiques',
+ 'Pg Database Administration' => 'Administration base de données PostgreSQL',
+ 'PgPP Database Administration' => 'Administration base de données PgPP',
+ 'Phone' => 'Tél.',
+ 'Port' => 'Port',
+ 'Port missing!' => 'Port manquant!',
+ 'Printer' => 'Imprimante',
+ 'Save' => 'Enregistrer',
+ 'Session Timeout' => 'Fin de session',
+ 'Session expired!' => 'Session terminée!',
+ 'Setup Templates' => 'Configuration des squelettes',
+ 'Signature' => 'Signature',
+ 'Stylesheet' => 'Feuille de style',
+ 'Supervisor' => 'Chef de service',
+ 'Templates' => 'Squelettes',
+ 'The following Datasets are not in use and can be deleted' => 'Les fichiers de données suivants ne sont pas utilisés et peuvent être supprimés.',
+ 'The following Datasets need to be updated' => 'Les fichiers de données suivants doivent être mis à jour',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Ceci est un test préliminaire des sources existantes. Aucune modification à ce stade!',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Pour ajouter un utilisateur à un groupe, editer un "nom", changer le "login" et enregistrer. Un nouvel utilisateur avec les mêmes données sera enregistré avec le nouveau "login".',
+ 'Unlock System' => 'Déverrouiller le système',
+ 'Update Dataset' => 'Mise à jour de la base de données',
+ 'Use Templates' => 'Utiliser les squelettes',
+ 'User' => 'Utilisateur',
+ 'User deleted!' => 'Utilisateur supprimé!',
+ 'User saved!' => 'Utilisateur enregistré!',
+ 'Version' => 'Version',
+ 'You are logged out' => 'Vous êtes déconnecté!',
+ 'does not exist' => 'n\'existe pas!',
+ 'is already a member!' => 'est déjà un membre!',
+ 'localhost' => 'hôte local',
+ 'locked!' => 'verrouillé!',
+ 'successfully created!' => 'créé avec succès',
+ 'successfully deleted!' => 'supprimé avec succès',
+ 'website' => 'site web',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'ajouter_utilisateur' => 'add_user',
+ 'modifier_mot_de_passe_administrateur' => 'change_admin_password',
+ 'modifier_mot_de_passe' => 'change_password',
+ 'continuer' => 'continue',
+ 'créer_fichier_de_données' => 'create_dataset',
+ 'supprimer' => 'delete',
+ 'supprimer_fichier_de_données' => 'delete_dataset',
+ 'verrouiller_le_système' => 'lock_system',
+ 'login' => 'login',
+ 'déconnexion' => 'logout',
+ 'administration_de_base_de_données_oracle' => 'oracle_database_administration',
+ 'administration_base_de_données_postgresql' => 'pg_database_administration',
+ 'administration_base_de_données_pgpp' => 'pgpp_database_administration',
+ 'enregistrer' => 'save',
+ 'déverrouiller_le_système' => 'unlock_system',
+ 'mise_à_jour_de_la_base_de_données' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/be_fr/all b/locale/be_fr/all
new file mode 100755
index 00000000..7e90399c
--- /dev/null
+++ b/locale/be_fr/all
@@ -0,0 +1,928 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+
+$self{texts} = {
+ 'A' => 'A',
+ 'AP' => 'Dépenses',
+ 'AP Aging' => 'Dépenses exigibles',
+ 'AP Outstanding' => 'Dépenses en retard',
+ 'AP Transaction' => 'Écriture dépenses',
+ 'AP Transactions' => 'Mouvements - Dépenses',
+ 'AR' => 'Recettes',
+ 'AR Aging' => 'Recettes exigibles',
+ 'AR Outstanding' => 'Recettes en retard',
+ 'AR Transaction' => 'Écriture recettes',
+ 'AR Transactions' => 'Mouvements - Recettes',
+ 'AR/AP' => 'Recettes/Dépenses',
+ 'About' => 'À propos',
+ 'Above' => 'En dessus',
+ 'Access Control' => 'Contrôle d\'accès',
+ 'Access Denied!' => 'Accès interdit!',
+ 'Account' => 'Compte',
+ 'Account Number' => 'Numéro de compte',
+ 'Account Number missing!' => 'Numéro de compte manquant!',
+ 'Account Type' => 'Type de compte',
+ 'Account Type missing!' => 'Type de compte manquant!',
+ 'Account deleted!' => 'Compte supprimé',
+ 'Account does not exist!' => 'Compte non existant!',
+ 'Account saved!' => 'Compte enregistré',
+ 'Accounting' => 'Comptabilité',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Accounts' => 'Comptes',
+ 'Accrual' => 'Accumulation',
+ 'Activate Audit trail' => 'Activer la journalisation des accès aux écritures clôturées',
+ 'Activate Audit trails' => 'Activer la journalisation des accès aux écritures clôturées',
+ 'Active' => 'Actif',
+ 'Add' => 'Ajouter',
+ 'Add AP Transaction' => 'Ajouter une dépense',
+ 'Add AR Transaction' => 'Ajouter une recette',
+ 'Add Account' => 'Ajouter compte',
+ 'Add Assembly' => 'Ajouter produit',
+ 'Add Business' => 'Ajouter type d\'affaire',
+ 'Add Cash Transfer Transaction' => 'Saisie d\'écriture - Virements internes',
+ 'Add Customer' => 'Ajouter client',
+ 'Add Deduction' => 'Ajouter prélèvement',
+ 'Add Department' => 'Ajouter service',
+ 'Add Employee' => 'Ajouter employé',
+ 'Add Exchange Rate' => 'Ajouter taux de change',
+ 'Add GIFI' => 'Ajouter code d\'identification comptable ou fiscale',
+ 'Add General Ledger Transaction' => 'Ajouter une écriture au grand-livre',
+ 'Add Group' => 'Ajouter groupe',
+ 'Add Job' => 'Ajouter travail',
+ 'Add Labor/Overhead' => 'Ajouter coût de production',
+ 'Add Language' => 'Ajouter langue',
+ 'Add POS Invoice' => 'Saisie ticket de caisse',
+ 'Add Part' => 'Ajouter marchandise',
+ 'Add Pricegroup' => 'Ajouter groupe de prix',
+ 'Add Project' => 'Ajouter projet',
+ 'Add Purchase Order' => 'Établir commande d\'achat',
+ 'Add Quotation' => 'Établir devis',
+ 'Add Request for Quotation' => 'Établir demande de devis',
+ 'Add SIC' => 'Ajouter code secteur économique',
+ 'Add Sales Invoice' => 'Établir facture de vente',
+ 'Add Sales Order' => 'Établir commande de vente',
+ 'Add Service' => 'Ajouter prestation',
+ 'Add Stores Card' => 'Ajouter fiche magasin',
+ 'Add Time Card' => 'Ajouter fiche de travail',
+ 'Add Transaction' => 'Saisie d\'écriture',
+ 'Add User' => 'Ajouter utilisateur',
+ 'Add Vendor' => 'Ajouter fournisseur',
+ 'Add Vendor Invoice' => 'Établir facture d\'achat',
+ 'Add Warehouse' => 'Ajouter entrepôt',
+ 'Address' => 'Adresse',
+ 'Administration' => 'Administration',
+ 'Administrator' => 'Administrateur',
+ 'After Deduction' => 'Après prélèvement',
+ 'Aged' => 'Âgé',
+ 'Aged Overdue' => 'Âgé en retard',
+ 'All' => 'Tous',
+ 'All Accounts' => 'Afficher tous les comptes',
+ 'All Datasets up to date!' => 'Tous les fichiers de données sont à jour!',
+ 'All Items' => 'Tout objet',
+ 'Allocated' => 'Attribué',
+ 'Allowances' => 'Indemnités',
+ 'Amount' => 'Montant',
+ 'Amount Due' => 'Montant dû',
+ 'Amount missing!' => 'Montant manquant!',
+ 'Apr' => 'Avril',
+ 'April' => 'Avril',
+ 'Are you sure you want to delete Invoice Number' => 'Êtes-vous sûr de vouloir supprimer la facture n°',
+ 'Are you sure you want to delete Order Number' => 'Êtes vous sûr de vouloir supprimer la commande n°',
+ 'Are you sure you want to delete Quotation Number' => 'Êtes vous sûr de vouloir supprimer le devis n°',
+ 'Are you sure you want to delete Transaction' => 'Êtes vous sûr de vouloir effacer la saisie?',
+ 'Are you sure you want to delete time card for' => 'Êtes-vous sûr de vouloir supprimer la fiche de travail pour',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Êtes vous sûr de vouloir enlever les objets sélectionnés de la queue?',
+ 'As of' => 'Au',
+ 'Assemblies' => 'Produits finis',
+ 'Assemblies restocked!' => 'Renvoyer produits vers stock!',
+ 'Assembly' => 'Produit fini',
+ 'Assembly stocked!' => 'Produit stocké!',
+ 'Asset' => 'Actif',
+ 'Attachment' => 'Pièce jointe',
+ 'Audit Control' => 'Clôture périodique',
+ 'Audit trail disabled' => 'Journalisation clôture desactivée',
+ 'Audit trail enabled' => 'Journalisation clôture activée',
+ 'Audit trail removed up to' => 'Annulation de la journalisation des accès aux écritures clôturées jusqu\'au',
+ 'Audit trails disabled' => 'Journalisation clôture desactivée',
+ 'Audit trails enabled' => 'Journalisation clôture activée',
+ 'Aug' => 'Août',
+ 'August' => 'Août',
+ 'Average Cost' => 'Coût moyen',
+ 'Avg Cost' => 'Coût moy.',
+ 'BIC' => 'BIC',
+ 'BOM' => 'Nomenclature composantes',
+ 'Backup' => 'Sauvegarder',
+ 'Backup sent to' => 'Sauvegarde envoyée à',
+ 'Balance' => 'Solde',
+ 'Balance Sheet' => 'Bilan',
+ 'Based on' => 'Basé sur',
+ 'Batch Printing' => 'Impression en masse',
+ 'Bcc' => 'Copie cachée',
+ 'Before Deduction' => 'Avant prélèvement',
+ 'Beginning Balance' => 'Solde du départ',
+ 'Below' => 'En dessous',
+ 'Billing Address' => 'Adresse de facturation',
+ 'Bin' => 'Lieu stockage',
+ 'Bin List' => 'Liste des emplacements',
+ 'Bin Lists' => 'Liste des emplacements',
+ 'Books are open' => 'Début exercice',
+ 'Break' => 'Rupture',
+ 'Business' => 'Type d\'affaire',
+ 'Business Number' => 'Numéro d\'enregistrement société',
+ 'Business deleted!' => 'Type d\'affaire effacé!',
+ 'Business saved!' => 'Type d\'affaire enregistré!',
+ 'C' => 'C',
+ 'COGS' => 'Coût des produits vendus',
+ 'COGS account does not exist!' => 'Compte des coûts des produits vendus inexistant!',
+ 'Cannot add stores card for a completed job!' => 'Impossible d\'enregistrer une fiche de magasin liée à un travail accompli!',
+ 'Cannot add time card for a completed job!' => 'Impossible d\'enregistrer une fiche de travail liée à un travail accompli!',
+ 'Cannot change stores card for a completed job!' => 'Impossible de modifier une fiche de magasin liée à un travail accompli!',
+ 'Cannot change time card for a completed job!' => 'Impossible de modifier une fiche de travail liée à un travail accompli!',
+ 'Cannot create Assembly' => 'Impossible de créer le produit',
+ 'Cannot create Labor' => 'Impossible de créer le coût de production',
+ 'Cannot create Lock!' => 'Impossible de verrouiller le fichier!',
+ 'Cannot create Part' => 'Impossible de créer la marchandise',
+ 'Cannot create Service' => 'Impossible de créer la prestation',
+ 'Cannot delete account!' => 'Impossible de supprimer le compte!',
+ 'Cannot delete customer!' => 'Impossible de supprimer le client!',
+ 'Cannot delete default account!' => 'Impossible de supprimer le compte par défaut!',
+ 'Cannot delete invoice!' => 'Impossible de supprimer la facture!',
+ 'Cannot delete item!' => 'Impossible de supprimer l\'objet!',
+ 'Cannot delete order!' => 'Impossible de supprimer la commande!',
+ 'Cannot delete quotation!' => 'Impossible de supprimer le devis!',
+ 'Cannot delete time card!' => 'Impossbile d\'effacer la fiche de travail!',
+ 'Cannot delete transaction!' => 'Impossible de supprimer la saisie!',
+ 'Cannot delete vendor!' => 'Impossible de supprimer le fournisseur!',
+ 'Cannot post Payment!' => 'Impossible d\'enregistrer le paiement!',
+ 'Cannot post Receipt!' => 'Impossible d\'enregistrer le reçu!',
+ 'Cannot post invoice for a closed period!' => 'Impossible d\'enregistrer la facture sur un exercice clos!',
+ 'Cannot post invoice!' => 'Impossible d\'enregistrer la facture!',
+ 'Cannot post payment for a closed period!' => 'Impossible d\'enregistrer le paiement sur un exercice clos!',
+ 'Cannot post transaction for a closed period!' => 'Impossible d\'enregistrer l\'écriture sur un exercice clos!',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => 'Impossible d\'enregistrer la transaction avec un débit et crédit pour le même compte!',
+ 'Cannot post transaction!' => 'Impossible d\'enregistrer l\'écriture!',
+ 'Cannot remove files!' => 'Impossible d\'effacer les fichiers!',
+ 'Cannot save account!' => 'Impossible d\'enregistrer le compte!',
+ 'Cannot save defaults!' => 'Impossible d\'enregistrer les valeurs par défaut!',
+ 'Cannot save order!' => 'Impossible d\'enregistrer la commande!',
+ 'Cannot save preferences!' => 'Impossible d\'enregistrer les préférences',
+ 'Cannot save quotation!' => 'Impossible d\'enregistrer le devis!',
+ 'Cannot save stores card for a closed period!' => 'Impossible d\'enregister une fiche de magasin sur un exercice clos!',
+ 'Cannot save stores card!' => 'Impossible d\'enregistrer la fiche de magasin!',
+ 'Cannot save time card for a closed period!' => 'Impossible d\'enregister une fiche de travail sur un exercice clos!',
+ 'Cannot save time card!' => 'Impossible d\'enregistrer la fiche de travail!',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Impossible d\'enregistrer le compte simultanément en tant que compte de recettes, dépenses ou service',
+ 'Cannot set multiple options for' => 'Impossible de choisir plusieurs options pour',
+ 'Cannot set multiple options for Item' => 'Impossible de sélectionner des options multiples pour l\'objet',
+ 'Cannot stock Assembly!' => 'Impossible de stocker le produit fini!',
+ 'Cannot stock assemblies!' => 'Impossible de stocker l\'assemblage!',
+ 'Cash' => 'Financier',
+ 'Cc' => 'Copie',
+ 'Change' => 'Retour monnaie',
+ 'Change Admin Password' => 'Modifier mot de passe administrateur',
+ 'Change Password' => 'Modifier mot de passe',
+ 'Chargeable' => 'À facturer',
+ 'Chart of Accounts' => 'Plan Comptable',
+ 'Check' => 'Chèque',
+ 'Check Inventory' => 'Listing chèques',
+ 'Checks' => 'Chèques',
+ 'City' => 'Ville',
+ 'Cleared' => 'Lettré',
+ 'Click on login name to edit!' => 'Cliquer sur votre identifiant pour editer!',
+ 'Clocked' => 'Pointé',
+ 'Close Books up to' => 'Clôturer l\'exercice jusqu\'au',
+ 'Closed' => 'Clôturé',
+ 'Code' => 'Code',
+ 'Code missing!' => 'Code manquant!',
+ 'Company' => 'Société',
+ 'Company Name' => 'Nom de société',
+ 'Compare to' => 'Comparer à',
+ 'Completed' => 'Terminé',
+ 'Components' => 'Composants',
+ 'Confirm' => 'Confirmer',
+ 'Confirm!' => 'Confirmer!',
+ 'Connect to' => 'Connecter à',
+ 'Consolidate Orders' => 'Consolider commandes',
+ 'Consolidate Purchase Orders' => 'Consolider commandes d\'achats',
+ 'Consolidate Sales Orders' => 'Consilder commandes de ventes',
+ 'Contact' => 'Contact',
+ 'Continue' => 'Continuer',
+ 'Contra' => 'Contrepartie',
+ 'Copies' => 'Copies',
+ 'Copy to COA' => 'Copier dans le plan comptable',
+ 'Cost' => 'Coût',
+ 'Cost Center' => 'Axé coûts',
+ 'Could not save pricelist!' => 'Enregistrement de la liste de prix impossible!',
+ 'Could not save!' => 'Enregistrement impossible!',
+ 'Could not transfer Inventory!' => 'Impossible de transférer l\'inventaire!',
+ 'Country' => 'Pays',
+ 'Create Chart of Accounts' => 'Créer le plan comptable',
+ 'Create Dataset' => 'Créer fichier de données',
+ 'Credit' => 'Crédit',
+ 'Credit Limit' => 'Encours autorisé',
+ 'Curr' => 'Dev.',
+ 'Currency' => 'Devise',
+ 'Current' => 'En cours',
+ 'Current Earnings' => 'Bénéfice de l\'exercice',
+ 'Customer' => 'Client',
+ 'Customer History' => 'Historique client',
+ 'Customer Number' => 'Numéro de client',
+ 'Customer deleted!' => 'Client supprimé!',
+ 'Customer missing!' => 'Client manquant!',
+ 'Customer not on file!' => 'Client absent du fichier!',
+ 'Customer saved!' => 'Client enregistré!',
+ 'Customers' => 'Clients',
+ 'DBA' => 'DBA',
+ 'DBI not installed!' => 'DBI non installée!',
+ 'DOB' => 'Date de naissance',
+ 'Database' => 'Base de données',
+ 'Database Administration' => 'Gérer base de données',
+ 'Database Driver not checked!' => 'Pilotes de base de données non verifiés!',
+ 'Database Host' => 'Hôte de base de données',
+ 'Database User missing!' => 'Utilisateur base de données manquant!',
+ 'Dataset' => 'Fichier de données',
+ 'Dataset is newer than version!' => 'Fichier de données plus récent que le logiciel!',
+ 'Dataset missing!' => 'Fichier de données manquant!',
+ 'Dataset updated!' => 'Base de données mise à jour!',
+ 'Date' => 'Date',
+ 'Date Format' => 'Format de date',
+ 'Date Paid' => 'Date de paiement',
+ 'Date Received' => 'Date de réception',
+ 'Date missing!' => 'Date manquante!',
+ 'Date received missing!' => 'Date de réception manquante!',
+ 'Date worked' => 'Date de travail',
+ 'Day' => 'Jour',
+ 'Day(s)' => 'Jour(s)',
+ 'Days' => 'Jours',
+ 'Debit' => 'Débit',
+ 'Dec' => 'Déc.',
+ 'December' => 'Décembre',
+ 'Decimalplaces' => 'Décimales',
+ 'Decrease' => 'Diminution',
+ 'Deduct after' => 'Prélèver après',
+ 'Deduction deleted!' => 'Prélèvement supprimé!',
+ 'Deduction saved!' => 'Prélèvement enrégistré!',
+ 'Deductions' => 'Prélèvements',
+ 'Default Template' => 'Squelette par defaut',
+ 'Defaults' => 'Valeurs par défaut',
+ 'Defaults saved!' => 'Valeurs par défaut enrégistrées!',
+ 'Delete' => 'Supprimer',
+ 'Delete Account' => 'Supprimer compte',
+ 'Delete Dataset' => 'Supprimer fichier de données',
+ 'Delete Schedule' => 'Effacer transaction planifiée',
+ 'Deleting a language will also delete the templates for the language' => 'Effacer une langue, implique également l\'effacement des squelettes correspondants à cette langue',
+ 'Delivery Date' => 'Date de livraison',
+ 'Department' => 'Service',
+ 'Department deleted!' => 'Service effacé!',
+ 'Department saved!' => 'Service enregistré!',
+ 'Departments' => 'Services',
+ 'Deposit' => 'Dépôt',
+ 'Description' => 'Description',
+ 'Description Translations' => 'Description traductions',
+ 'Description missing!' => 'Description manquante!',
+ 'Detail' => 'Détail',
+ 'Difference' => 'Différence',
+ 'Directory' => 'Répertoire',
+ 'Discount' => 'Remise',
+ 'Done' => 'Fait!',
+ 'Drawing' => 'Dessin',
+ 'Driver' => 'Pilote',
+ 'Dropdown Limit' => 'Limite de déroulement',
+ 'Due Date' => 'Échéance',
+ 'Due Date missing!' => 'Date d\'échéance manquante!',
+ 'E-mail' => 'E-mail',
+ 'E-mail Statement to' => 'Message éléctronique à',
+ 'E-mail address missing!' => 'Adresse e-mail manquante!',
+ 'E-mail message' => 'Message e-mail',
+ 'E-mailed' => 'E-mail envoyé',
+ 'Edit' => 'Modifier',
+ 'Edit AP Transaction' => 'Modifier une dépense',
+ 'Edit AR Transaction' => 'Modifier une recette',
+ 'Edit Account' => 'Modifier le compte',
+ 'Edit Assembly' => 'Modifier produit fini / transformé',
+ 'Edit Business' => 'Modifier type d\'affaire',
+ 'Edit Cash Transfer Transaction' => 'Modifier virements internes',
+ 'Edit Customer' => 'Modifier client',
+ 'Edit Deduction' => 'Modifier prélèvement',
+ 'Edit Department' => 'Modifier service de l\'entreprise',
+ 'Edit Description Translations' => 'Modifier traductions description',
+ 'Edit Employee' => 'Modifier employé',
+ 'Edit GIFI' => 'Modifier code d\'identification comptable ou fiscale',
+ 'Edit General Ledger Transaction' => 'Modifier écriture grand-livre',
+ 'Edit Group' => 'Modifier groupe',
+ 'Edit Job' => 'Modifier travail',
+ 'Edit Labor/Overhead' => 'Modifier coût de production',
+ 'Edit Language' => 'Modifier langue',
+ 'Edit POS Invoice' => 'Modifier ticket de caisse',
+ 'Edit Part' => 'Modifier marchandise',
+ 'Edit Preferences for' => 'Modifier les préférences pour',
+ 'Edit Pricegroup' => 'Modifier groupe de prix',
+ 'Edit Project' => 'Modifier projet',
+ 'Edit Purchase Order' => 'Modifier commande d\'achat',
+ 'Edit Quotation' => 'Modifier devis',
+ 'Edit Request for Quotation' => 'Modifier demande de devis',
+ 'Edit SIC' => 'Modifier code de secteur économique',
+ 'Edit Sales Invoice' => 'Modifier facture de vente',
+ 'Edit Sales Order' => 'Modifier commande de vente',
+ 'Edit Service' => 'Modifier service',
+ 'Edit Template' => 'Modifier squelette',
+ 'Edit Time Card' => 'Modifier fiche de travail',
+ 'Edit User' => 'Modifier utilisateur',
+ 'Edit Vendor' => 'Modifier fournisseur',
+ 'Edit Vendor Invoice' => 'Modifier facture de fournisseur',
+ 'Edit Warehouse' => 'Modifier entrepôt',
+ 'Employee' => 'Employé',
+ 'Employee Name' => 'Nom employé',
+ 'Employee Number' => 'Numéro d\'employé',
+ 'Employee deleted!' => 'Employé effacé!',
+ 'Employee pays' => 'Employé pays',
+ 'Employee saved!' => 'Employé enregistré',
+ 'Employees' => 'Employés',
+ 'Employer' => 'Employeur',
+ 'Employer pays' => 'Employeur pays',
+ 'Enddate' => 'Date de fin',
+ 'Ends' => 'Se termine',
+ 'Enforce transaction reversal for all dates' => 'Activer la clôture des écritures pour toutes les dates',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Entrer le nom de la monnaie nationale et des monnaies étrangères en 3 lettres séparées par (:) (Ex: EUR:USD:CAD)',
+ 'Equity' => 'Capital',
+ 'Every' => 'Chaque',
+ 'Exch' => 'Change',
+ 'Exchange Rate' => 'Taux de change',
+ 'Exchange rate for payment missing!' => 'Taux de change manquant pour le paiement!',
+ 'Exchange rate missing!' => 'Taux de change manquant!',
+ 'Exempt age <' => 'Exempter âge <',
+ 'Existing Datasets' => 'Fichiers de données existants',
+ 'Expense' => 'Dépenses',
+ 'Expense account does not exist!' => 'Compte de dépenses inexistant!',
+ 'Expense/Asset' => 'Dépenses/actif',
+ 'Extended' => 'Prix total',
+ 'FX' => 'Devises',
+ 'Failed to save order!' => 'Impossible d\'enregister la commande!',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Fév.',
+ 'February' => 'Février',
+ 'For' => 'Pour',
+ 'Foreign Exchange Gain' => 'Produit conversion devises',
+ 'Foreign Exchange Loss' => 'Perte conversion devises',
+ 'Friday' => 'Vendredi',
+ 'From' => 'De',
+ 'From Warehouse' => 'Du entrepôt',
+ 'GIFI' => 'Code d\'identification comptable ou fiscale',
+ 'GIFI deleted!' => 'Code d\'identification comptable ou fiscale supprimé!',
+ 'GIFI missing!' => 'Code d\'identification comptable ou fiscale manquant!',
+ 'GIFI saved!' => 'Code d\'identification comptable ou fiscale enregistré!',
+ 'GL' => 'Grand-livre',
+ 'GL Reference Number' => 'Numéro de réf. Grand-livre',
+ 'GL Transaction' => 'Transaction grand-livre',
+ 'General Ledger' => 'Grand-livre',
+ 'Generate' => 'Générer',
+ 'Generate Orders' => 'Générer commandes',
+ 'Generate Purchase Orders' => 'Générer commandes d\'achat',
+ 'Generate Purchase Orders from Sales Order' => 'Générer commandes d\'achat d\'une commande de vente',
+ 'Generate Sales Order' => 'Générer commandes de vente',
+ 'Generate Sales Order from Purchase Orders' => 'Générer commandes de vente d\'une commande d\'achat',
+ 'Generate Sales Orders' => 'Générer commandes de ventes',
+ 'Goods & Services' => 'Articles & Prestations',
+ 'Group' => 'Groupe',
+ 'Group Items' => 'Grouper objets',
+ 'Group Translations' => 'Grouper traductions',
+ 'Group deleted!' => 'Groupe effacé!',
+ 'Group missing!' => 'Groupe absent!',
+ 'Group saved!' => 'Groupe enregistré!',
+ 'Groups' => 'Groupes',
+ 'HR' => 'Ressources humaines',
+ 'HTML Templates' => 'Squelettes HTML',
+ 'Heading' => 'En-tête',
+ 'History' => 'Historique',
+ 'Home Phone' => 'Téléphone privé',
+ 'Host' => 'Hôte',
+ 'Hostname missing!' => 'Nom de l\'hôte manquant',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Image' => 'Image',
+ 'In-line' => 'En ligne',
+ 'Inactive' => 'Inactive',
+ 'Include Exchange Rate Difference' => 'Inclure différence conversion devises',
+ 'Include Payment' => 'Inclure paiement',
+ 'Include in Report' => 'Inclure dans l\'état',
+ 'Include in drop-down menus' => 'Inclure dans les menus déroulants',
+ 'Income' => 'Recettes',
+ 'Income Statement' => 'Compte de résultat',
+ 'Income account does not exist!' => 'Compte de recettes inexistant!',
+ 'Incorrect Dataset version!' => 'Fichier de données incorrect!',
+ 'Increase' => 'Augmentation',
+ 'Individual Items' => 'Composition en marchandises individuelles',
+ 'Internal Notes' => 'Notes internes',
+ 'Inventory' => 'Inventaire',
+ 'Inventory account does not exist!' => 'Compte de stock inexistant!',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'La quantité en stock doit être zéro avant de pouvoir annuler cet assemblage!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'La quantité en stock doit être zero avant de pouvoir annuler cette pièce!',
+ 'Inventory saved!' => 'Inventaire enregistré!',
+ 'Inventory transferred!' => 'Inventaire transféré!',
+ 'Invoice' => 'Facture',
+ 'Invoice Date' => 'Date de facturation',
+ 'Invoice Date missing!' => 'Date de facture manquante!',
+ 'Invoice Number' => 'Numéro de facture',
+ 'Invoice Number missing!' => 'Numéro de facture manquant!',
+ 'Invoice deleted!' => 'Facture supprimée!',
+ 'Invoices' => 'Factures',
+ 'Is this a summary account to record' => 'Est-ce que c\'est un compte sommaire à enregistrer?',
+ 'Item' => 'Article',
+ 'Item already on pricelist!' => 'Objet déjà présent dans la liste des prix',
+ 'Item deleted!' => 'Objet supprimé!',
+ 'Item not on file!' => 'Objet non-listé!',
+ 'Items' => 'Objets',
+ 'Jan' => 'Jan.',
+ 'January' => 'Janvier',
+ 'Job' => 'Travail',
+ 'Job Description' => 'Description travail',
+ 'Job Name' => 'Nom de travail',
+ 'Job Number' => 'Numéro de travail',
+ 'Job Number missing!' => 'Numéro de travail manquant!',
+ 'Job deleted!' => 'Travail effacé!',
+ 'Job saved!' => 'Travail enregistré!',
+ 'Jobs' => 'Travaux',
+ 'Jul' => 'Juill.',
+ 'July' => 'Juillet',
+ 'Jun' => 'Juin',
+ 'June' => 'Juin',
+ 'LaTeX Templates' => 'Squelettes LaTeX',
+ 'Labor Code' => 'Compte prestation',
+ 'Labor Code missing!' => 'Compte prestation manquant!',
+ 'Labor/Overhead' => 'Coût de production',
+ 'Language' => 'Langue',
+ 'Language deleted!' => 'Langue effacée!',
+ 'Language saved!' => 'Langue enregistrée!',
+ 'Languages' => 'Langues',
+ 'Languages not defined!' => 'Langues non définis!',
+ 'Last Cost' => 'Dernier prix',
+ 'Last Numbers & Default Accounts' => 'Derniers numéros et comptes par défauts',
+ 'Lead' => 'Délai',
+ 'Leadtime' => 'Délai',
+ 'Leave host and port field empty unless you want to make a remote connection.' => 'Laisser "port" et "hôte" vide, sauf si vous voulez vous connecter à distance (par réseau)',
+ 'Liability' => 'Passif',
+ 'Licensed to' => 'Licence à',
+ 'Line Total' => 'Total ligne',
+ 'Link' => 'Liens',
+ 'Link Accounts' => 'Lier comptes',
+ 'List' => 'Liste',
+ 'List Accounts' => 'Liste des comptes',
+ 'List Businesses' => 'Liste types d\'affaire',
+ 'List Departments' => 'Liste des services',
+ 'List GIFI' => 'Afficher la liste des codes d\'identification comptable ou fiscale',
+ 'List Languages' => 'Liste des langues',
+ 'List Price' => 'Prix de revient',
+ 'List Projects' => 'Liste des projets',
+ 'List SIC' => 'Liste des codes secteur économique',
+ 'List Transactions' => 'Afficher écritures',
+ 'List Warehouses' => 'Liste des entrepôts',
+ 'Lock System' => 'Verrouiller le système',
+ 'Lockfile created!' => 'Verrouillage en place!',
+ 'Lockfile removed!' => 'Verrouillage enlevé!',
+ 'Login' => 'Login',
+ 'Login name missing!' => 'Nom d\'utilisateur manquant!',
+ 'Logout' => 'Déconnexion',
+ 'Make' => 'Marque',
+ 'Manager' => 'Gestionnaire',
+ 'Mar' => 'Mars',
+ 'March' => 'Mars',
+ 'Marked entries printed!' => 'Éléments marqués imprimés!',
+ 'Markup' => 'Majoration',
+ 'Maximum' => 'Maximum',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Mémo',
+ 'Menu Width' => 'Largeur menu',
+ 'Message' => 'Message',
+ 'Method' => 'Méthode',
+ 'Microfiche' => 'Microfiche',
+ 'Model' => 'Modèle',
+ 'Monday' => 'Lundi',
+ 'Month' => 'Mois',
+ 'Month(s)' => 'Mois',
+ 'Months' => 'Mois',
+ 'Multibyte Encoding' => 'Encodage multibyte',
+ 'N/A' => 'Non applicable',
+ 'Name' => 'Nom',
+ 'Name missing!' => 'Nom manquant!',
+ 'New Templates' => 'Nouveaux squelettes',
+ 'New Window' => 'Nouvelle fenêtre',
+ 'Next' => 'Prochain',
+ 'Next Date' => 'Prochaine date',
+ 'Next Number' => 'Prochain numéro',
+ 'No' => 'Non',
+ 'No Database Drivers available!' => 'Pas de pilote de base de données disponible!',
+ 'No Dataset selected!' => 'Pas de fichier de données sélectionné!',
+ 'No Employees on file!' => 'Aucun employé dans la base de données!',
+ 'No History!' => 'Aucun historique',
+ 'No Labor codes on file!' => 'Aucun compte de prestation dans la base de données!',
+ 'No Parts on file!' => 'Aucune marchandise dans la base de données!',
+ 'No Services on file!' => 'Aucune prestation dans la base de données!',
+ 'No email address for' => 'Pas d\'adresse email pour',
+ 'No open Jobs!' => 'Aucun travail ouvert!',
+ 'No open Projects!' => 'Aucun projet ouvert!',
+ 'No.' => 'N°',
+ 'Non-chargeable' => 'Hors facture',
+ 'Non-taxable' => 'Non imposable',
+ 'Non-taxable Purchases' => 'Achats hors taxe',
+ 'Non-taxable Sales' => 'Ventes hors taxe',
+ 'Non-tracking Items' => 'Objets non-référencés',
+ 'Notes' => 'Notes',
+ 'Nothing entered!' => 'Rien n\'a été saisi!',
+ 'Nothing open!' => 'Rien est ouvert!',
+ 'Nothing selected!' => 'Pas de sélection!',
+ 'Nothing to delete!' => 'Rien à supprimer',
+ 'Nothing to print!' => 'Rien à imprimer',
+ 'Nothing to transfer!' => 'Rien à transférer!',
+ 'Nov' => 'Nov.',
+ 'November' => 'Novembre',
+ 'Number' => 'Numéro',
+ 'Number Format' => 'Format des numéros',
+ 'Number missing in Row' => 'Numéro manquant dans ligne',
+ 'O' => 'O',
+ 'OH' => 'OH',
+ 'Obsolete' => 'Obsolète',
+ 'Oct' => 'Oct.',
+ 'October' => 'Octobre',
+ 'On Hand' => 'En Stock / disponible',
+ 'Onhand' => 'Disponible',
+ 'Open' => 'Ouvert',
+ 'Oracle Database Administration' => 'Administration de base de données Oracle',
+ 'Order' => 'Commande',
+ 'Order Date' => 'Date de commande',
+ 'Order Date missing!' => 'Date de commande manquante!',
+ 'Order Entry' => 'Commandes',
+ 'Order Number' => 'Numéro de commande',
+ 'Order Number missing!' => 'Numéro de commande manquant!',
+ 'Order deleted!' => 'Commande supprimée!',
+ 'Order generation failed!' => 'Génération commande échouée!',
+ 'Order saved!' => 'Commande enregistrée!',
+ 'Orders generated!' => 'Commandes générées!',
+ 'Orphaned' => 'Orphelin',
+ 'Out of balance transaction!' => 'Écriture non-soldée!',
+ 'Out of balance!' => 'Non-soldée!',
+ 'Outstanding' => 'En retard',
+ 'Overdue' => 'En retard',
+ 'PDF' => 'PDF',
+ 'PO' => 'PO',
+ 'PO Number' => 'Numéro de référence',
+ 'POS' => 'Point de vente',
+ 'POS Invoice' => 'Ticket de caisse',
+ 'Packing List' => 'Liste d\'envoi',
+ 'Packing List Date missing!' => 'La liste d\'envoi n\'a pas de date!',
+ 'Packing List Number missing!' => 'Le numéro de la liste d\'envoi est manquant!',
+ 'Packing Lists' => 'Listes d\'envoi',
+ 'Paid' => 'Total payé',
+ 'Part' => 'Marchandise',
+ 'Part Number' => 'Numéro marchandise',
+ 'Partnumber' => 'Numéro de marchandise',
+ 'Parts' => 'Marchandises',
+ 'Parts Requirements' => 'Exigences en marchandises',
+ 'Password' => 'Mot de passe',
+ 'Password changed!' => 'Mot de passe modifié!',
+ 'Password does not match!' => 'Mot de passe incorrect!',
+ 'Passwords do not match!' => 'Mots de passes non-identiques',
+ 'Payables' => 'À payer',
+ 'Payment' => 'Paiement',
+ 'Payment date missing!' => 'Date de paiement manquante!',
+ 'Payment posted!' => 'Paiement enregistré!',
+ 'Payments' => 'Paiements',
+ 'Payments posted!' => 'Paiements enregistrés!',
+ 'Payroll Deduction' => 'Prélèvement salaire',
+ 'Period' => 'Période',
+ 'Pg Database Administration' => 'Administration base de données PostgreSQL',
+ 'PgPP Database Administration' => 'Administration base de données PgPP',
+ 'Phone' => 'Tél.',
+ 'Pick List' => 'Liste de sélection',
+ 'Pick Lists' => 'Liste de sélection',
+ 'Port' => 'Port',
+ 'Port missing!' => 'Port manquant!',
+ 'Pos' => 'N°',
+ 'Post' => 'Enregistrer',
+ 'Post as new' => 'Enregistrer comme nouveau',
+ 'Posted!' => 'Enregistré!',
+ 'Posting' => 'Enregistrement',
+ 'Posting failed!' => 'Enregistrement échoué!',
+ 'Postscript' => 'Postcript',
+ 'Preferences' => 'Préférences',
+ 'Preferences saved!' => 'Préférences enregistrées!',
+ 'Prepayment' => 'Paiement à l\'avance',
+ 'Price' => 'Prix',
+ 'Pricegroup' => 'Groupe de prix',
+ 'Pricegroup deleted!' => 'Groupe de prix supprimé!',
+ 'Pricegroup missing!' => 'Groupe de prix manquant!',
+ 'Pricegroup saved!' => 'Groupe de prix enregistré!',
+ 'Pricegroups' => 'Groupes de prix',
+ 'Pricelist' => 'Liste de prix',
+ 'Print' => 'Imprimer',
+ 'Print and Post' => 'Imprimer et imputer',
+ 'Print and Post as new' => 'Imprimer et enregister comme nouveau',
+ 'Print and Save' => 'Imprimer et sauver',
+ 'Print and Save as new' => 'Imprimer et enregister comme nouveau',
+ 'Printed' => 'Imprimé',
+ 'Printer' => 'Imprimante',
+ 'Printing' => 'Impression',
+ 'Printing ... ' => 'Impression en cours ... ',
+ 'Process Transactions' => 'Traiter transactions',
+ 'Production' => 'Production',
+ 'Profit Center' => 'Axé profit',
+ 'Project' => 'Projet',
+ 'Project Description Translations' => 'Traductions description de projet',
+ 'Project Name' => 'Nom de projet',
+ 'Project Number' => 'Numéro de projet',
+ 'Project Number missing!' => 'Numéro du projet manquant!',
+ 'Project Transactions' => 'Mouvements - Projet',
+ 'Project deleted!' => 'Projet supprimé!',
+ 'Project not on file!' => 'Projet absent du fichier!',
+ 'Project saved!' => 'Projet enregistré!',
+ 'Project/Job Name' => 'Nom de projet/travail',
+ 'Project/Job Number' => 'Numéro de projet/travail',
+ 'Projects' => 'Projets',
+ 'Purchase Order' => 'Commande d\'achat',
+ 'Purchase Order Number' => 'Numéro de commande',
+ 'Purchase Orders' => 'Commandes d\'achat',
+ 'Qty' => 'Qté',
+ 'Quantity exceeds available units to stock!' => 'La quantité dépasse le nombre d\'unités en stock',
+ 'Quarter' => 'Trimestre',
+ 'Queue' => 'File d\'attente',
+ 'Queued' => 'Mis en file d\'attente',
+ 'Quotation' => 'Devis',
+ 'Quotation ' => 'Devis ',
+ 'Quotation Date' => 'Date de devis',
+ 'Quotation Date missing!' => 'Date de devis manqante!',
+ 'Quotation Number' => 'Numéro de devis',
+ 'Quotation Number missing!' => 'Numéro de devis manquant!',
+ 'Quotation deleted!' => 'Devis effacé!',
+ 'Quotations' => 'Devis',
+ 'R' => 'R',
+ 'RFQ' => 'Demande de devis',
+ 'RFQ ' => 'Demande de devis ',
+ 'RFQ Number' => 'Numéro de demande de devis',
+ 'RFQs' => 'Demandes de devis',
+ 'ROP' => 'Seuil réapprovisionnement',
+ 'Rate' => 'Taux',
+ 'Rate missing!' => 'Taux manquant!',
+ 'Recd' => 'Reçu',
+ 'Receipt' => 'Reçu',
+ 'Receipt posted!' => 'Reçu enregistré!',
+ 'Receipts' => 'Reçus',
+ 'Receivables' => 'À recevoir',
+ 'Receive' => 'Réception',
+ 'Receive Merchandise' => 'Réception marchandise',
+ 'Reconciliation' => 'Rapprochement',
+ 'Reconciliation Report' => 'Rapport de rapprochement',
+ 'Record in' => 'Enregistrer dans',
+ 'Recurring Transaction' => 'Transaction périodique',
+ 'Recurring Transactions' => 'Transactions périodiques',
+ 'Reference' => 'Référence',
+ 'Remaining' => 'Restant',
+ 'Remove' => 'Effacer',
+ 'Remove Audit trail up to' => 'Annuler la journalisation des accès aux écritures clôturées jusqu\'au',
+ 'Remove Audit trails up to' => 'Annuler la journalisation des accès aux écritures clôturées jusqu\'au',
+ 'Removed spoolfiles!' => 'File d\'attente impression effacée!',
+ 'Removing marked entries from queue ...' => 'Suppression des éléments sélectionnés de la file d\'attente ...',
+ 'Repeat' => 'Répéter',
+ 'Report for' => 'Rapport de',
+ 'Reports' => 'Rapports',
+ 'Req' => 'Exigence',
+ 'Request for Quotation' => 'Demande de devis',
+ 'Request for Quotations' => 'Demandes de devis',
+ 'Required by' => 'Requis pour',
+ 'Requirements' => 'Exigences',
+ 'Retained Earnings' => 'Éxcédents non distribués',
+ 'Role' => 'Rôle',
+ 'S' => 'S',
+ 'SIC' => 'Code secteur économique',
+ 'SIC deleted!' => 'Code secteur économique effacé!',
+ 'SIC saved!' => 'Code secteur économique enregistré!',
+ 'SKU' => 'SKU',
+ 'SO' => 'SO',
+ 'SSN' => 'Numéro sécurité sociale',
+ 'Sale' => 'Vente',
+ 'Sales' => 'Ventes',
+ 'Sales Invoice' => 'Facture de vente',
+ 'Sales Invoice ' => 'Facture de vente ',
+ 'Sales Invoice.' => 'Facture de vente.',
+ 'Sales Invoice/AR Transaction Number' => 'Numéro facture de vente/écriture recette',
+ 'Sales Invoices' => 'Factures de vente',
+ 'Sales Order' => 'Commande de vente',
+ 'Sales Order Number' => 'Numéro de commande de vente',
+ 'Sales Orders' => 'Commandes de vente',
+ 'Sales Quotation Number' => 'Numéro de devis de vente',
+ 'Salesperson' => 'Vendeur',
+ 'Saturday' => 'Samedi',
+ 'Save' => 'Enregistrer',
+ 'Save Pricelist' => 'Enregistrer la liste de prix',
+ 'Save Schedule' => 'Enregistrer transaction planifiée',
+ 'Save as new' => 'Enregistrer comme nouveau',
+ 'Save to File' => 'Enregistrer dans un fichier',
+ 'Saving' => 'Enregistrement',
+ 'Schedule' => 'Planification',
+ 'Scheduled' => 'Planifié',
+ 'Screen' => 'Écran',
+ 'Search' => 'Recherche',
+ 'Select' => 'Sélectionner',
+ 'Select Customer' => 'Séléctionner client',
+ 'Select Vendor' => 'Sélectionner vendeur',
+ 'Select a Printer!' => 'Sélectionner une imprimante!',
+ 'Select a printer!' => 'Séléctionner une imprimante!',
+ 'Select all' => 'Tout sélectionner',
+ 'Select from one of the items below' => 'Sélectionner un des objets ci-dessous',
+ 'Select from one of the names below' => 'Sélectionner un des noms ci-dessous',
+ 'Select from one of the projects below' => 'Sélectionner un des projets ci-dessous',
+ 'Select items' => 'Sélectionner éléments',
+ 'Select payment' => 'Sélectionner le payement',
+ 'Select postscript or PDF!' => 'Sélectionner Postscript ou PDF!',
+ 'Select txt, postscript or PDF!' => 'Sélectionner Txt, Postscript ou PDF!',
+ 'Sell' => 'Vente',
+ 'Sell Price' => 'Prix de vente',
+ 'Send by E-Mail' => 'Envoyer par e-mail',
+ 'Sending' => 'Envoyer',
+ 'Sep' => 'Sept.',
+ 'September' => 'Septembre',
+ 'Serial No.' => 'N° série',
+ 'Serial Number' => 'Numéro de série',
+ 'Service' => 'Prestation de service',
+ 'Service Code' => 'Compte de prestation',
+ 'Service Code missing!' => 'Compte de prestation manquant!',
+ 'Service/Labor Code' => 'Compte de prestation/coût de production',
+ 'Services' => 'Prestations de services',
+ 'Session Timeout' => 'Fin de session',
+ 'Session expired!' => 'Session terminée!',
+ 'Setup Templates' => 'Configuration des squelettes',
+ 'Ship' => 'Expédier',
+ 'Ship Merchandise' => 'Expédier marchandise',
+ 'Ship to' => 'Expédier à',
+ 'Ship via' => 'Expédier via',
+ 'Shipping' => 'Expédition',
+ 'Shipping Address' => 'Adresse d\'envoi',
+ 'Shipping Date' => 'Date d\'expédition',
+ 'Shipping Date missing!' => 'Date d\'expédition manquante!',
+ 'Shipping Point' => 'Expéditeur',
+ 'Short' => 'Court',
+ 'Signature' => 'Signature',
+ 'Source' => 'Source',
+ 'Spoolfile' => 'Fichier file d\'attente impression',
+ 'Standard' => 'Standard',
+ 'Standard Industrial Codes' => 'Code secteur économique',
+ 'Startdate' => 'Date de début',
+ 'State' => 'Etat',
+ 'State/Province' => 'Région/État',
+ 'Statement' => 'Relevé',
+ 'Statement Balance' => 'Solde relevé de compte',
+ 'Statement sent to' => 'Relevé envoyé à',
+ 'Statements sent to printer!' => 'Relevés envoyés à l\'imprimante!',
+ 'Stock' => 'Stock',
+ 'Stock Assembly' => 'Stock de produits',
+ 'Stock Finished Goods' => 'Produit fini stocké',
+ 'Stores Card' => 'Fiche de magasin',
+ 'Stores Card saved!' => 'Fiche de magasin enregistrée',
+ 'Stores Cards' => 'Fiches de magasins',
+ 'Stylesheet' => 'Feuille de style',
+ 'Sub-contract GIFI' => 'Code d\'identification comptable ou fiscale - Sous-traitance',
+ 'Subject' => 'Objet',
+ 'Subtotal' => 'Sous total',
+ 'Summary' => 'Résumé',
+ 'Sunday' => 'Dimanche',
+ 'Supervisor' => 'Chef de service',
+ 'System' => 'Système',
+ 'System Defaults' => 'Préférences système',
+ 'Tax' => 'Taxe',
+ 'Tax Account' => 'Compte de taxe',
+ 'Tax Accounts' => 'Comptes de taxe',
+ 'Tax Included' => 'Taxe incluse',
+ 'Tax Number' => 'Numéro de TVA',
+ 'Tax Number / SSN' => 'Numéro de TVA / Sécurité Sociale',
+ 'Tax collected' => 'Taxe collectée',
+ 'Tax paid' => 'Taxe payée',
+ 'Taxable' => 'Imposable',
+ 'Template saved!' => 'Squelette enregistré!',
+ 'Templates' => 'Squelettes',
+ 'Terms' => 'Crédit limité à',
+ 'Text' => 'Texte',
+ 'Text Templates' => 'Squelettes texte',
+ 'The following Datasets are not in use and can be deleted' => 'Les fichiers de données suivants ne sont pas utilisés et peuvent être supprimés.',
+ 'The following Datasets need to be updated' => 'Les fichiers de données suivants doivent être mis à jour',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Ceci est un test préliminaire des sources existantes. Aucune modification à ce stade!',
+ 'Thursday' => 'Jeudi',
+ 'Till' => 'Caisse',
+ 'Time' => 'Temps',
+ 'Time Card' => 'Fiche de travail',
+ 'Time Card deleted!' => 'Fiche de travail effacée!',
+ 'Time Card saved!' => 'Fiche de travil enregistrée!',
+ 'Time Cards' => 'Fiches de travail',
+ 'Time In' => 'Temps de début',
+ 'Time Out' => 'Temps de fin',
+ 'Times' => 'Temps',
+ 'To' => 'Jusqu\'au',
+ 'To Warehouse' => 'Vers entrepôt',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Pour ajouter un utilisateur à un groupe, editer un "nom", changer le "login" et enregistrer. Un nouvel utilisateur avec les mêmes données sera enregistré avec le nouveau "login".',
+ 'Top Level' => 'Description principale',
+ 'Total' => 'Total',
+ 'Tracking Items' => 'Objets référencés',
+ 'Trade Discount' => 'Escompte commercial',
+ 'Transaction' => 'Écriture',
+ 'Transaction Date missing!' => 'Date d\'écriture manquante!',
+ 'Transaction Dates' => 'Dates de transactions',
+ 'Transaction deleted!' => 'Écriture supprimée!',
+ 'Transaction posted!' => 'Écriture enregistrée!',
+ 'Transaction reversal enforced for all dates' => 'Inversion des écritures exécutée pour toutes les dates',
+ 'Transaction reversal enforced up to' => 'Inversion des écritures exécutée jusqu\'au',
+ 'Transactions' => 'Mouvements',
+ 'Transfer' => 'Transfert',
+ 'Transfer Inventory' => 'Transfert inventaire',
+ 'Transfer from' => 'Transfert à partir',
+ 'Transfer to' => 'Transférer vers',
+ 'Translation' => 'Traduction',
+ 'Translation deleted!' => 'Traduction supprimée!',
+ 'Translation not on file!' => 'Pas de traduction dans le fichier',
+ 'Translations' => 'Traductions',
+ 'Translations saved!' => 'Traductions enregistrées',
+ 'Trial Balance' => 'Balance Globale',
+ 'Tuesday' => 'Mardi',
+ 'Type of Business' => 'Type d\'affaire',
+ 'Unit' => 'Unité',
+ 'Unit Rate' => 'Tarif unitaire',
+ 'Unit of measure' => 'Unité de mesure',
+ 'Unlock System' => 'Déverrouiller le système',
+ 'Update' => 'Mettre à jour',
+ 'Update Dataset' => 'Mise à jour de la base de données',
+ 'Updated' => 'Mis à jour',
+ 'Upgrading to Version' => 'Mise à jour à la version',
+ 'Use Templates' => 'Utiliser les squelettes',
+ 'User' => 'Utilisateur',
+ 'User deleted!' => 'Utilisateur supprimé!',
+ 'User saved!' => 'Utilisateur enregistré!',
+ 'Valid until' => 'Valable jusqu\'au',
+ 'Vendor' => 'Fournisseur',
+ 'Vendor History' => 'Historique fournisseurs',
+ 'Vendor Invoice' => 'Facture d\'achat',
+ 'Vendor Invoice ' => 'Facture d\'achat ',
+ 'Vendor Invoice.' => 'Facture d\'achat.',
+ 'Vendor Invoice/AP Transaction Number' => 'Numéro facture d\'achat/écriture achat',
+ 'Vendor Invoices' => 'Factures d\'achat',
+ 'Vendor Number' => 'Numéro de fournisseur',
+ 'Vendor deleted!' => 'Fournisseur supprimé!',
+ 'Vendor missing!' => 'Fournisseur manquant!',
+ 'Vendor not on file!' => 'Fournisseur absent du fichier!',
+ 'Vendor saved!' => 'Fournisseur enregistré!',
+ 'Vendors' => 'Fournisseurs',
+ 'Version' => 'Version',
+ 'Warehouse' => 'Entrepôt',
+ 'Warehouse deleted!' => 'Entrepôt supprimé',
+ 'Warehouse saved!' => 'Entrepôt enregistré',
+ 'Warehouses' => 'Entrepôts',
+ 'Warning!' => 'Attention!',
+ 'Wednesday' => 'Mercredi',
+ 'Week' => 'Semaine',
+ 'Week(s)' => 'Semaine(s)',
+ 'Weeks' => 'Semaines',
+ 'Weight' => 'Poids',
+ 'Weight Unit' => 'Unité de poids',
+ 'What type of item is this?' => 'De quel type est cet objet?',
+ 'Work Order' => 'Fiche de traitement',
+ 'Work Orders' => 'Fiche de traitement',
+ 'Work Phone' => 'Téléphone travail',
+ 'Year' => 'Année',
+ 'Year(s)' => 'Année(s)',
+ 'Yearend' => 'Écriture de fin d\'exercice',
+ 'Yearend date missing!' => 'Écriture de fin d\'exercice - date manquante',
+ 'Yearend posted!' => 'Écriture de fin d\'exercice enregistrée',
+ 'Yearend posting failed!' => 'Échec enregistrement écriture fin d\'exercice!',
+ 'Years' => 'Années',
+ 'Yes' => 'Oui',
+ 'You are logged out' => 'Vous êtes déconnecté!',
+ 'You are posting an existing transaction!' => 'Vous enregistrez une transaction existante!',
+ 'You are printing and posting an existing transaction!' => 'Vous imprimez et enregistrez une transaction existante!',
+ 'You are printing and saving an existing order' => 'Vous imprimez et enregistrez une commande existante!',
+ 'You are printing and saving an existing quotation' => 'Vous imprimez et enregistrez un devis existant!',
+ 'You are printing and saving an existing transaction!' => 'Vous imprimez et enregistrez une transaction existante!',
+ 'You are saving an existing order' => 'Vous enregistrez une commande existante',
+ 'You are saving an existing quotation' => 'Vous enregistrez un devis existant',
+ 'You are saving an existing transaction!' => 'Vous enregistrez une transaction existante!',
+ 'You did not enter a name!' => 'Vous n\'avez pas saisi de nom!',
+ 'You must enter a host and port for local and remote connections!' => 'Vous devez saisir un "hôte" et un "port" pour les connexions distantes!',
+ 'Zip/Postal Code' => 'Code postal',
+ 'account cannot be set to any other type of account' => 'compte ne peut pas être changé vers un autre type de compte',
+ 'as at' => 'au',
+ 'days' => 'jours',
+ 'does not exist' => 'n\'existe pas!',
+ 'done' => 'fait',
+ 'ea' => 'ch',
+ 'failed' => 'échec',
+ 'for' => 'pour',
+ 'for Period' => 'pour la période',
+ 'is already a member!' => 'est déjà un membre!',
+ 'localhost' => 'hôte local',
+ 'locked!' => 'verrouillé!',
+ 'posted!' => 'enregistré!',
+ 'sent' => 'envoyé',
+ 'successfully created!' => 'créé avec succès',
+ 'successfully deleted!' => 'supprimé avec succès',
+ 'time(s)' => 'temps',
+ 'unexpected error!' => 'Erreur inattendue!',
+ 'website' => 'site web',
+};
+
+1;
diff --git a/locale/be_fr/am b/locale/be_fr/am
new file mode 100755
index 00000000..0d9fac4d
--- /dev/null
+++ b/locale/be_fr/am
@@ -0,0 +1,312 @@
+$self{texts} = {
+ 'AP' => 'Dépenses',
+ 'AR' => 'Recettes',
+ 'About' => 'À propos',
+ 'Account' => 'Compte',
+ 'Account Number' => 'Numéro de compte',
+ 'Account Number missing!' => 'Numéro de compte manquant!',
+ 'Account Type' => 'Type de compte',
+ 'Account Type missing!' => 'Type de compte manquant!',
+ 'Account deleted!' => 'Compte supprimé',
+ 'Account does not exist!' => 'Compte non existant!',
+ 'Account saved!' => 'Compte enregistré',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Accrual' => 'Accumulation',
+ 'Activate Audit trail' => 'Activer la journalisation des accès aux écritures clôturées',
+ 'Add Account' => 'Ajouter compte',
+ 'Add Business' => 'Ajouter type d\'affaire',
+ 'Add Department' => 'Ajouter service',
+ 'Add GIFI' => 'Ajouter code d\'identification comptable ou fiscale',
+ 'Add Language' => 'Ajouter langue',
+ 'Add SIC' => 'Ajouter code secteur économique',
+ 'Add Warehouse' => 'Ajouter entrepôt',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Montant',
+ 'Asset' => 'Actif',
+ 'Audit Control' => 'Clôture périodique',
+ 'Audit trail disabled' => 'Journalisation clôture desactivée',
+ 'Audit trail enabled' => 'Journalisation clôture activée',
+ 'Audit trail removed up to' => 'Annulation de la journalisation des accès aux écritures clôturées jusqu\'au',
+ 'Backup sent to' => 'Sauvegarde envoyée à',
+ 'Bin List' => 'Liste des emplacements',
+ 'Books are open' => 'Début exercice',
+ 'Business Number' => 'Numéro d\'enregistrement société',
+ 'Business deleted!' => 'Type d\'affaire effacé!',
+ 'Business saved!' => 'Type d\'affaire enregistré!',
+ 'COGS' => 'Coût des produits vendus',
+ 'Cannot delete account!' => 'Impossible de supprimer le compte!',
+ 'Cannot delete default account!' => 'Impossible de supprimer le compte par défaut!',
+ 'Cannot save account!' => 'Impossible d\'enregistrer le compte!',
+ 'Cannot save defaults!' => 'Impossible d\'enregistrer les valeurs par défaut!',
+ 'Cannot save preferences!' => 'Impossible d\'enregistrer les préférences',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Impossible d\'enregistrer le compte simultanément en tant que compte de recettes, dépenses ou service',
+ 'Cannot set multiple options for' => 'Impossible de choisir plusieurs options pour',
+ 'Cash' => 'Financier',
+ 'Chart of Accounts' => 'Plan Comptable',
+ 'Close Books up to' => 'Clôturer l\'exercice jusqu\'au',
+ 'Code' => 'Code',
+ 'Code missing!' => 'Code manquant!',
+ 'Company' => 'Société',
+ 'Confirm' => 'Confirmer',
+ 'Confirm!' => 'Confirmer!',
+ 'Continue' => 'Continuer',
+ 'Contra' => 'Contrepartie',
+ 'Copy to COA' => 'Copier dans le plan comptable',
+ 'Cost Center' => 'Axé coûts',
+ 'Credit' => 'Crédit',
+ 'Customer Number' => 'Numéro de client',
+ 'Database Host' => 'Hôte de base de données',
+ 'Dataset' => 'Fichier de données',
+ 'Date Format' => 'Format de date',
+ 'Day' => 'Jour',
+ 'Days' => 'Jours',
+ 'Debit' => 'Débit',
+ 'Default Template' => 'Squelette par defaut',
+ 'Defaults saved!' => 'Valeurs par défaut enrégistrées!',
+ 'Delete' => 'Supprimer',
+ 'Delete Account' => 'Supprimer compte',
+ 'Deleting a language will also delete the templates for the language' => 'Effacer une langue, implique également l\'effacement des squelettes correspondants à cette langue',
+ 'Department deleted!' => 'Service effacé!',
+ 'Department saved!' => 'Service enregistré!',
+ 'Departments' => 'Services',
+ 'Description' => 'Description',
+ 'Description missing!' => 'Description manquante!',
+ 'Discount' => 'Remise',
+ 'Dropdown Limit' => 'Limite de déroulement',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Adresse e-mail manquante!',
+ 'Edit' => 'Modifier',
+ 'Edit Account' => 'Modifier le compte',
+ 'Edit Business' => 'Modifier type d\'affaire',
+ 'Edit Department' => 'Modifier service de l\'entreprise',
+ 'Edit GIFI' => 'Modifier code d\'identification comptable ou fiscale',
+ 'Edit Language' => 'Modifier langue',
+ 'Edit Preferences for' => 'Modifier les préférences pour',
+ 'Edit SIC' => 'Modifier code de secteur économique',
+ 'Edit Template' => 'Modifier squelette',
+ 'Edit Warehouse' => 'Modifier entrepôt',
+ 'Employee Number' => 'Numéro d\'employé',
+ 'Ends' => 'Se termine',
+ 'Enforce transaction reversal for all dates' => 'Activer la clôture des écritures pour toutes les dates',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Entrer le nom de la monnaie nationale et des monnaies étrangères en 3 lettres séparées par (:) (Ex: EUR:USD:CAD)',
+ 'Equity' => 'Capital',
+ 'Every' => 'Chaque',
+ 'Expense' => 'Dépenses',
+ 'Expense/Asset' => 'Dépenses/actif',
+ 'Fax' => 'Fax',
+ 'Foreign Exchange Gain' => 'Produit conversion devises',
+ 'Foreign Exchange Loss' => 'Perte conversion devises',
+ 'GIFI' => 'Code d\'identification comptable ou fiscale',
+ 'GIFI deleted!' => 'Code d\'identification comptable ou fiscale supprimé!',
+ 'GIFI missing!' => 'Code d\'identification comptable ou fiscale manquant!',
+ 'GIFI saved!' => 'Code d\'identification comptable ou fiscale enregistré!',
+ 'GL' => 'Grand-livre',
+ 'GL Reference Number' => 'Numéro de réf. Grand-livre',
+ 'GL Transaction' => 'Transaction grand-livre',
+ 'Heading' => 'En-tête',
+ 'ID' => 'ID',
+ 'Include in drop-down menus' => 'Inclure dans les menus déroulants',
+ 'Income' => 'Recettes',
+ 'Inventory' => 'Inventaire',
+ 'Invoice' => 'Facture',
+ 'Is this a summary account to record' => 'Est-ce que c\'est un compte sommaire à enregistrer?',
+ 'Language' => 'Langue',
+ 'Language deleted!' => 'Langue effacée!',
+ 'Language saved!' => 'Langue enregistrée!',
+ 'Languages' => 'Langues',
+ 'Last Numbers & Default Accounts' => 'Derniers numéros et comptes par défauts',
+ 'Liability' => 'Passif',
+ 'Licensed to' => 'Licence à',
+ 'Link' => 'Liens',
+ 'Menu Width' => 'Largeur menu',
+ 'Method' => 'Méthode',
+ 'Month' => 'Mois',
+ 'Months' => 'Mois',
+ 'Name' => 'Nom',
+ 'Next' => 'Prochain',
+ 'Next Number' => 'Prochain numéro',
+ 'No' => 'Non',
+ 'No email address for' => 'Pas d\'adresse email pour',
+ 'Non-tracking Items' => 'Objets non-référencés',
+ 'Number' => 'Numéro',
+ 'Number Format' => 'Format des numéros',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Liste d\'envoi',
+ 'Part Number' => 'Numéro marchandise',
+ 'Password' => 'Mot de passe',
+ 'Password does not match!' => 'Mot de passe incorrect!',
+ 'Payables' => 'À payer',
+ 'Payment' => 'Paiement',
+ 'Phone' => 'Tél.',
+ 'Pick List' => 'Liste de sélection',
+ 'Posting' => 'Enregistrement',
+ 'Postscript' => 'Postcript',
+ 'Preferences saved!' => 'Préférences enregistrées!',
+ 'Print' => 'Imprimer',
+ 'Printer' => 'Imprimante',
+ 'Printing' => 'Impression',
+ 'Process Transactions' => 'Traiter transactions',
+ 'Profit Center' => 'Axé profit',
+ 'Purchase Order' => 'Commande d\'achat',
+ 'Purchase Order Number' => 'Numéro de commande',
+ 'Purchase Orders' => 'Commandes d\'achat',
+ 'RFQ Number' => 'Numéro de demande de devis',
+ 'Rate' => 'Taux',
+ 'Receivables' => 'À recevoir',
+ 'Recurring Transactions' => 'Transactions périodiques',
+ 'Reference' => 'Référence',
+ 'Remove Audit trail up to' => 'Annuler la journalisation des accès aux écritures clôturées jusqu\'au',
+ 'Retained Earnings' => 'Éxcédents non distribués',
+ 'SIC deleted!' => 'Code secteur économique effacé!',
+ 'SIC saved!' => 'Code secteur économique enregistré!',
+ 'Sales Invoice' => 'Facture de vente',
+ 'Sales Invoice/AR Transaction Number' => 'Numéro facture de vente/écriture recette',
+ 'Sales Order' => 'Commande de vente',
+ 'Sales Order Number' => 'Numéro de commande de vente',
+ 'Sales Orders' => 'Commandes de vente',
+ 'Sales Quotation Number' => 'Numéro de devis de vente',
+ 'Save' => 'Enregistrer',
+ 'Save as new' => 'Enregistrer comme nouveau',
+ 'Saving' => 'Enregistrement',
+ 'Sending' => 'Envoyer',
+ 'Session Timeout' => 'Fin de session',
+ 'Signature' => 'Signature',
+ 'Standard Industrial Codes' => 'Code secteur économique',
+ 'Stylesheet' => 'Feuille de style',
+ 'System Defaults' => 'Préférences système',
+ 'Tax' => 'Taxe',
+ 'Template saved!' => 'Squelette enregistré!',
+ 'Times' => 'Temps',
+ 'Tracking Items' => 'Objets référencés',
+ 'Transaction' => 'Écriture',
+ 'Transaction reversal enforced for all dates' => 'Inversion des écritures exécutée pour toutes les dates',
+ 'Transaction reversal enforced up to' => 'Inversion des écritures exécutée jusqu\'au',
+ 'Type of Business' => 'Type d\'affaire',
+ 'Update' => 'Mettre à jour',
+ 'User' => 'Utilisateur',
+ 'Vendor Invoice' => 'Facture d\'achat',
+ 'Vendor Invoice/AP Transaction Number' => 'Numéro facture d\'achat/écriture achat',
+ 'Vendor Number' => 'Numéro de fournisseur',
+ 'Version' => 'Version',
+ 'Warehouse deleted!' => 'Entrepôt supprimé',
+ 'Warehouse saved!' => 'Entrepôt enregistré',
+ 'Warehouses' => 'Entrepôts',
+ 'Week' => 'Semaine',
+ 'Weeks' => 'Semaines',
+ 'Weight Unit' => 'Unité de poids',
+ 'Work Order' => 'Fiche de traitement',
+ 'Year' => 'Année',
+ 'Yearend' => 'Écriture de fin d\'exercice',
+ 'Yearend date missing!' => 'Écriture de fin d\'exercice - date manquante',
+ 'Yearend posted!' => 'Écriture de fin d\'exercice enregistrée',
+ 'Yearend posting failed!' => 'Échec enregistrement écriture fin d\'exercice!',
+ 'Years' => 'Années',
+ 'Yes' => 'Oui',
+ 'account cannot be set to any other type of account' => 'compte ne peut pas être changé vers un autre type de compte',
+ 'done' => 'fait',
+ 'failed' => 'échec',
+ 'localhost' => 'hôte local',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'ajouter_compte' => 'add_account',
+ 'ajouter_type_d\'affaire' => 'add_business',
+ 'ajouter_service' => 'add_department',
+ 'ajouter_langue' => 'add_language',
+ 'ajouter_code_secteur_économique' => 'add_sic',
+ 'ajouter_entrepôt' => 'add_warehouse',
+ 'continuer' => 'continue',
+ 'copier_dans_le_plan_comptable' => 'copy_to_coa',
+ 'supprimer' => 'delete',
+ 'modifier' => 'edit',
+ 'modifier_le_compte' => 'edit_account',
+ 'traiter_transactions' => 'process_transactions',
+ 'enregistrer' => 'save',
+ 'enregistrer_comme_nouveau' => 'save_as_new',
+ 'mettre_à_jour' => 'update',
+};
+
+1;
+
diff --git a/locale/be_fr/ap b/locale/be_fr/ap
new file mode 100755
index 00000000..56e370a2
--- /dev/null
+++ b/locale/be_fr/ap
@@ -0,0 +1,240 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Dépenses en retard',
+ 'AP Transaction' => 'Écriture dépenses',
+ 'AP Transactions' => 'Mouvements - Dépenses',
+ 'AR Outstanding' => 'Recettes en retard',
+ 'AR Transaction' => 'Écriture recettes',
+ 'AR Transactions' => 'Mouvements - Recettes',
+ 'Account' => 'Compte',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Add AP Transaction' => 'Ajouter une dépense',
+ 'Add AR Transaction' => 'Ajouter une recette',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Montant',
+ 'Amount Due' => 'Montant dû',
+ 'Apr' => 'Avril',
+ 'April' => 'Avril',
+ 'Are you sure you want to delete Transaction' => 'Êtes vous sûr de vouloir effacer la saisie?',
+ 'Aug' => 'Août',
+ 'August' => 'Août',
+ 'Bcc' => 'Copie cachée',
+ 'Cannot delete transaction!' => 'Impossible de supprimer l\'écriture!',
+ 'Cannot post payment for a closed period!' => 'Impossible d\'enregistrer le paiement sur un exercice clos!',
+ 'Cannot post transaction for a closed period!' => 'Impossible d\'enregistrer l\'écriture sur un exercice clos!',
+ 'Cannot post transaction!' => 'Impossible d\'enregistrer l\'écriture!',
+ 'Cc' => 'Copie',
+ 'Check' => 'Chèque',
+ 'Closed' => 'Clôturé',
+ 'Confirm!' => 'Confirmer!',
+ 'Continue' => 'Continuer',
+ 'Credit' => 'Crédit',
+ 'Credit Limit' => 'Encours autorisé',
+ 'Curr' => 'Dev.',
+ 'Currency' => 'Devise',
+ 'Current' => 'En cours',
+ 'Customer' => 'Client',
+ 'Customer missing!' => 'Client manquant!',
+ 'Customer not on file!' => 'Client absent du fichier!',
+ 'Date' => 'Date',
+ 'Date Paid' => 'Date de paiement',
+ 'Day(s)' => 'Jour(s)',
+ 'Debit' => 'Débit',
+ 'Dec' => 'Déc.',
+ 'December' => 'Décembre',
+ 'Delete' => 'Supprimer',
+ 'Delete Schedule' => 'Effacer transaction planifiée',
+ 'Department' => 'Service',
+ 'Description' => 'Description',
+ 'Detail' => 'Détail',
+ 'Due Date' => 'Échéance',
+ 'Due Date missing!' => 'Date d\'échéance manquante!',
+ 'E-mail' => 'E-mail',
+ 'E-mail message' => 'Message e-mail',
+ 'Edit AP Transaction' => 'Modifier une dépense',
+ 'Edit AR Transaction' => 'Modifier une recette',
+ 'Employee' => 'Employé',
+ 'Every' => 'Chaque',
+ 'Exch' => 'Change',
+ 'Exchange Rate' => 'Taux de change',
+ 'Exchange rate for payment missing!' => 'Taux de change manquant pour le paiement!',
+ 'Exchange rate missing!' => 'Taux de change manquant!',
+ 'Feb' => 'Fév.',
+ 'February' => 'Février',
+ 'For' => 'Pour',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'Include Payment' => 'Inclure paiement',
+ 'Include in Report' => 'Inclure dans l\'état',
+ 'Invoice' => 'Facture',
+ 'Invoice Date' => 'Date de facturation',
+ 'Invoice Date missing!' => 'Date de facture manquante!',
+ 'Invoice Number' => 'Numéro de facture',
+ 'Jan' => 'Jan.',
+ 'January' => 'Janvier',
+ 'Jul' => 'Juill.',
+ 'July' => 'Juillet',
+ 'Jun' => 'Juin',
+ 'June' => 'Juin',
+ 'Manager' => 'Gestionnaire',
+ 'Mar' => 'Mars',
+ 'March' => 'Mars',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Mémo',
+ 'Message' => 'Message',
+ 'Month' => 'Mois',
+ 'Month(s)' => 'Mois',
+ 'Next Date' => 'Prochaine date',
+ 'No.' => 'N°',
+ 'Notes' => 'Notes',
+ 'Nothing to print!' => 'Rien à imprimer',
+ 'Nov' => 'Nov.',
+ 'November' => 'Novembre',
+ 'Number' => 'Numéro',
+ 'Oct' => 'Oct.',
+ 'October' => 'Octobre',
+ 'Open' => 'Ouvert',
+ 'Order' => 'Commande',
+ 'Order Number' => 'Numéro de commande',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Numéro de référence',
+ 'Paid' => 'Total payé',
+ 'Payment date missing!' => 'Date de paiement manquante!',
+ 'Payments' => 'Paiements',
+ 'Period' => 'Période',
+ 'Post' => 'Enregistrer',
+ 'Post as new' => 'Enregistrer comme nouveau',
+ 'Postscript' => 'Postcript',
+ 'Print' => 'Imprimer',
+ 'Print and Post' => 'Imprimer et imputer',
+ 'Print and Post as new' => 'Imprimer et enregister comme nouveau',
+ 'Printed' => 'Imprimé',
+ 'Project' => 'Projet',
+ 'Project not on file!' => 'Projet absent du fichier!',
+ 'Quarter' => 'Trimestre',
+ 'Receipt' => 'Reçu',
+ 'Recurring Transaction' => 'Transaction périodique',
+ 'Reference' => 'Référence',
+ 'Remaining' => 'Restant',
+ 'Repeat' => 'Répéter',
+ 'Sales Invoice.' => 'Facture de vente.',
+ 'Salesperson' => 'Vendeur',
+ 'Save Schedule' => 'Enregistrer transaction planifiée',
+ 'Schedule' => 'Planification',
+ 'Scheduled' => 'Planifié',
+ 'Screen' => 'Écran',
+ 'Select a Printer!' => 'Sélectionner une imprimante!',
+ 'Select from one of the names below' => 'Sélectionner un des noms ci-dessous',
+ 'Select from one of the projects below' => 'Sélectionner un des projets ci-dessous',
+ 'Select payment' => 'Sélectionner le payement',
+ 'Select postscript or PDF!' => 'Sélectionner Postscript ou PDF!',
+ 'Sep' => 'Sept.',
+ 'September' => 'Septembre',
+ 'Ship to' => 'Expédier à',
+ 'Ship via' => 'Expédier via',
+ 'Shipping Point' => 'Expéditeur',
+ 'Source' => 'Source',
+ 'Startdate' => 'Date de début',
+ 'Subject' => 'Objet',
+ 'Subtotal' => 'Sous total',
+ 'Summary' => 'Résumé',
+ 'Tax' => 'Taxe',
+ 'Tax Included' => 'Taxe incluse',
+ 'Till' => 'Caisse',
+ 'To' => 'À',
+ 'Total' => 'Total',
+ 'Transaction' => 'Écriture',
+ 'Transaction deleted!' => 'Écriture supprimée!',
+ 'Transaction posted!' => 'Écriture enregistrée!',
+ 'Update' => 'Mettre à jour',
+ 'Vendor' => 'Fournisseur',
+ 'Vendor Invoice.' => 'Facture d\'achat.',
+ 'Vendor missing!' => 'Fournisseur manquant!',
+ 'Vendor not on file!' => 'Fournisseur absent du fichier!',
+ 'Warning!' => 'Attention!',
+ 'Week(s)' => 'Semaine(s)',
+ 'Year' => 'Année',
+ 'Year(s)' => 'Année(s)',
+ 'Yes' => 'Oui',
+ 'You are posting an existing transaction!' => 'Vous enregistrez une transaction existante!',
+ 'You are printing and posting an existing transaction!' => 'Vous imprimez et enregistrez une transaction existante!',
+ 'You are printing and saving an existing order' => 'Vous imprimez et enregistrez une commande existante!',
+ 'You are printing and saving an existing quotation' => 'Vous imprimez et enregistrez un devis existant!',
+ 'You are saving an existing order' => 'Vous enregistrez une commande existante',
+ 'You are saving an existing quotation' => 'Vous enregistrez un devis existant',
+ 'for' => 'pour',
+ 'sent' => 'envoyé',
+ 'time(s)' => 'temps',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'Écriture_dépenses' => 'ap_transaction',
+ 'Écriture_recettes' => 'ar_transaction',
+ 'continuer' => 'continue',
+ 'supprimer' => 'delete',
+ 'effacer_transaction_planifiée' => 'delete_schedule',
+ 'enregistrer' => 'post',
+ 'enregistrer_comme_nouveau' => 'post_as_new',
+ 'imprimer' => 'print',
+ 'imprimer_et_imputer' => 'print_and_post',
+ 'imprimer_et_enregister_comme_nouveau' => 'print_and_post_as_new',
+ 'facture_de_vente_' => 'sales_invoice_',
+ 'enregistrer_transaction_planifiée' => 'save_schedule',
+ 'planification' => 'schedule',
+ 'expédier_à' => 'ship_to',
+ 'mettre_à_jour' => 'update',
+ 'facture_d\'achat_' => 'vendor_invoice_',
+ 'oui' => 'yes',
+};
+
+1;
+
diff --git a/locale/be_fr/ar b/locale/be_fr/ar
new file mode 100755
index 00000000..56e370a2
--- /dev/null
+++ b/locale/be_fr/ar
@@ -0,0 +1,240 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Dépenses en retard',
+ 'AP Transaction' => 'Écriture dépenses',
+ 'AP Transactions' => 'Mouvements - Dépenses',
+ 'AR Outstanding' => 'Recettes en retard',
+ 'AR Transaction' => 'Écriture recettes',
+ 'AR Transactions' => 'Mouvements - Recettes',
+ 'Account' => 'Compte',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Add AP Transaction' => 'Ajouter une dépense',
+ 'Add AR Transaction' => 'Ajouter une recette',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Montant',
+ 'Amount Due' => 'Montant dû',
+ 'Apr' => 'Avril',
+ 'April' => 'Avril',
+ 'Are you sure you want to delete Transaction' => 'Êtes vous sûr de vouloir effacer la saisie?',
+ 'Aug' => 'Août',
+ 'August' => 'Août',
+ 'Bcc' => 'Copie cachée',
+ 'Cannot delete transaction!' => 'Impossible de supprimer l\'écriture!',
+ 'Cannot post payment for a closed period!' => 'Impossible d\'enregistrer le paiement sur un exercice clos!',
+ 'Cannot post transaction for a closed period!' => 'Impossible d\'enregistrer l\'écriture sur un exercice clos!',
+ 'Cannot post transaction!' => 'Impossible d\'enregistrer l\'écriture!',
+ 'Cc' => 'Copie',
+ 'Check' => 'Chèque',
+ 'Closed' => 'Clôturé',
+ 'Confirm!' => 'Confirmer!',
+ 'Continue' => 'Continuer',
+ 'Credit' => 'Crédit',
+ 'Credit Limit' => 'Encours autorisé',
+ 'Curr' => 'Dev.',
+ 'Currency' => 'Devise',
+ 'Current' => 'En cours',
+ 'Customer' => 'Client',
+ 'Customer missing!' => 'Client manquant!',
+ 'Customer not on file!' => 'Client absent du fichier!',
+ 'Date' => 'Date',
+ 'Date Paid' => 'Date de paiement',
+ 'Day(s)' => 'Jour(s)',
+ 'Debit' => 'Débit',
+ 'Dec' => 'Déc.',
+ 'December' => 'Décembre',
+ 'Delete' => 'Supprimer',
+ 'Delete Schedule' => 'Effacer transaction planifiée',
+ 'Department' => 'Service',
+ 'Description' => 'Description',
+ 'Detail' => 'Détail',
+ 'Due Date' => 'Échéance',
+ 'Due Date missing!' => 'Date d\'échéance manquante!',
+ 'E-mail' => 'E-mail',
+ 'E-mail message' => 'Message e-mail',
+ 'Edit AP Transaction' => 'Modifier une dépense',
+ 'Edit AR Transaction' => 'Modifier une recette',
+ 'Employee' => 'Employé',
+ 'Every' => 'Chaque',
+ 'Exch' => 'Change',
+ 'Exchange Rate' => 'Taux de change',
+ 'Exchange rate for payment missing!' => 'Taux de change manquant pour le paiement!',
+ 'Exchange rate missing!' => 'Taux de change manquant!',
+ 'Feb' => 'Fév.',
+ 'February' => 'Février',
+ 'For' => 'Pour',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'Include Payment' => 'Inclure paiement',
+ 'Include in Report' => 'Inclure dans l\'état',
+ 'Invoice' => 'Facture',
+ 'Invoice Date' => 'Date de facturation',
+ 'Invoice Date missing!' => 'Date de facture manquante!',
+ 'Invoice Number' => 'Numéro de facture',
+ 'Jan' => 'Jan.',
+ 'January' => 'Janvier',
+ 'Jul' => 'Juill.',
+ 'July' => 'Juillet',
+ 'Jun' => 'Juin',
+ 'June' => 'Juin',
+ 'Manager' => 'Gestionnaire',
+ 'Mar' => 'Mars',
+ 'March' => 'Mars',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Mémo',
+ 'Message' => 'Message',
+ 'Month' => 'Mois',
+ 'Month(s)' => 'Mois',
+ 'Next Date' => 'Prochaine date',
+ 'No.' => 'N°',
+ 'Notes' => 'Notes',
+ 'Nothing to print!' => 'Rien à imprimer',
+ 'Nov' => 'Nov.',
+ 'November' => 'Novembre',
+ 'Number' => 'Numéro',
+ 'Oct' => 'Oct.',
+ 'October' => 'Octobre',
+ 'Open' => 'Ouvert',
+ 'Order' => 'Commande',
+ 'Order Number' => 'Numéro de commande',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Numéro de référence',
+ 'Paid' => 'Total payé',
+ 'Payment date missing!' => 'Date de paiement manquante!',
+ 'Payments' => 'Paiements',
+ 'Period' => 'Période',
+ 'Post' => 'Enregistrer',
+ 'Post as new' => 'Enregistrer comme nouveau',
+ 'Postscript' => 'Postcript',
+ 'Print' => 'Imprimer',
+ 'Print and Post' => 'Imprimer et imputer',
+ 'Print and Post as new' => 'Imprimer et enregister comme nouveau',
+ 'Printed' => 'Imprimé',
+ 'Project' => 'Projet',
+ 'Project not on file!' => 'Projet absent du fichier!',
+ 'Quarter' => 'Trimestre',
+ 'Receipt' => 'Reçu',
+ 'Recurring Transaction' => 'Transaction périodique',
+ 'Reference' => 'Référence',
+ 'Remaining' => 'Restant',
+ 'Repeat' => 'Répéter',
+ 'Sales Invoice.' => 'Facture de vente.',
+ 'Salesperson' => 'Vendeur',
+ 'Save Schedule' => 'Enregistrer transaction planifiée',
+ 'Schedule' => 'Planification',
+ 'Scheduled' => 'Planifié',
+ 'Screen' => 'Écran',
+ 'Select a Printer!' => 'Sélectionner une imprimante!',
+ 'Select from one of the names below' => 'Sélectionner un des noms ci-dessous',
+ 'Select from one of the projects below' => 'Sélectionner un des projets ci-dessous',
+ 'Select payment' => 'Sélectionner le payement',
+ 'Select postscript or PDF!' => 'Sélectionner Postscript ou PDF!',
+ 'Sep' => 'Sept.',
+ 'September' => 'Septembre',
+ 'Ship to' => 'Expédier à',
+ 'Ship via' => 'Expédier via',
+ 'Shipping Point' => 'Expéditeur',
+ 'Source' => 'Source',
+ 'Startdate' => 'Date de début',
+ 'Subject' => 'Objet',
+ 'Subtotal' => 'Sous total',
+ 'Summary' => 'Résumé',
+ 'Tax' => 'Taxe',
+ 'Tax Included' => 'Taxe incluse',
+ 'Till' => 'Caisse',
+ 'To' => 'À',
+ 'Total' => 'Total',
+ 'Transaction' => 'Écriture',
+ 'Transaction deleted!' => 'Écriture supprimée!',
+ 'Transaction posted!' => 'Écriture enregistrée!',
+ 'Update' => 'Mettre à jour',
+ 'Vendor' => 'Fournisseur',
+ 'Vendor Invoice.' => 'Facture d\'achat.',
+ 'Vendor missing!' => 'Fournisseur manquant!',
+ 'Vendor not on file!' => 'Fournisseur absent du fichier!',
+ 'Warning!' => 'Attention!',
+ 'Week(s)' => 'Semaine(s)',
+ 'Year' => 'Année',
+ 'Year(s)' => 'Année(s)',
+ 'Yes' => 'Oui',
+ 'You are posting an existing transaction!' => 'Vous enregistrez une transaction existante!',
+ 'You are printing and posting an existing transaction!' => 'Vous imprimez et enregistrez une transaction existante!',
+ 'You are printing and saving an existing order' => 'Vous imprimez et enregistrez une commande existante!',
+ 'You are printing and saving an existing quotation' => 'Vous imprimez et enregistrez un devis existant!',
+ 'You are saving an existing order' => 'Vous enregistrez une commande existante',
+ 'You are saving an existing quotation' => 'Vous enregistrez un devis existant',
+ 'for' => 'pour',
+ 'sent' => 'envoyé',
+ 'time(s)' => 'temps',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'Écriture_dépenses' => 'ap_transaction',
+ 'Écriture_recettes' => 'ar_transaction',
+ 'continuer' => 'continue',
+ 'supprimer' => 'delete',
+ 'effacer_transaction_planifiée' => 'delete_schedule',
+ 'enregistrer' => 'post',
+ 'enregistrer_comme_nouveau' => 'post_as_new',
+ 'imprimer' => 'print',
+ 'imprimer_et_imputer' => 'print_and_post',
+ 'imprimer_et_enregister_comme_nouveau' => 'print_and_post_as_new',
+ 'facture_de_vente_' => 'sales_invoice_',
+ 'enregistrer_transaction_planifiée' => 'save_schedule',
+ 'planification' => 'schedule',
+ 'expédier_à' => 'ship_to',
+ 'mettre_à_jour' => 'update',
+ 'facture_d\'achat_' => 'vendor_invoice_',
+ 'oui' => 'yes',
+};
+
+1;
+
diff --git a/locale/be_fr/arap b/locale/be_fr/arap
new file mode 100755
index 00000000..c39b64c0
--- /dev/null
+++ b/locale/be_fr/arap
@@ -0,0 +1,74 @@
+$self{texts} = {
+ 'Address' => 'Adresse',
+ 'Bcc' => 'Copie cachée',
+ 'Cc' => 'Copie',
+ 'Continue' => 'Continuer',
+ 'Customer not on file!' => 'Client absent du fichier!',
+ 'Date' => 'Date',
+ 'Day(s)' => 'Jour(s)',
+ 'Delete Schedule' => 'Effacer transaction planifiée',
+ 'Description' => 'Description',
+ 'E-mail' => 'E-mail',
+ 'E-mail message' => 'Message e-mail',
+ 'Every' => 'Chaque',
+ 'For' => 'Pour',
+ 'Include Payment' => 'Inclure paiement',
+ 'Message' => 'Message',
+ 'Month(s)' => 'Mois',
+ 'Next Date' => 'Prochaine date',
+ 'Number' => 'Numéro',
+ 'Print' => 'Imprimer',
+ 'Project not on file!' => 'Projet absent du fichier!',
+ 'Recurring Transaction' => 'Transaction périodique',
+ 'Reference' => 'Référence',
+ 'Repeat' => 'Répéter',
+ 'Save Schedule' => 'Enregistrer transaction planifiée',
+ 'Select from one of the names below' => 'Sélectionner un des noms ci-dessous',
+ 'Select from one of the projects below' => 'Sélectionner un des projets ci-dessous',
+ 'Startdate' => 'Date de début',
+ 'Subject' => 'Objet',
+ 'To' => 'À',
+ 'Vendor not on file!' => 'Fournisseur absent du fichier!',
+ 'Warning!' => 'Attention!',
+ 'Week(s)' => 'Semaine(s)',
+ 'Year(s)' => 'Année(s)',
+ 'You are posting an existing transaction!' => 'Vous enregistrez une transaction existante!',
+ 'You are printing and posting an existing transaction!' => 'Vous imprimez et enregistrez une transaction existante!',
+ 'You are printing and saving an existing order' => 'Vous imprimez et enregistrez une commande existante!',
+ 'You are printing and saving an existing quotation' => 'Vous imprimez et enregistrez un devis existant!',
+ 'You are saving an existing order' => 'Vous enregistrez une commande existante',
+ 'You are saving an existing quotation' => 'Vous enregistrez un devis existant',
+ 'for' => 'pour',
+ 'sent' => 'envoyé',
+ 'time(s)' => 'temps',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuer' => 'continue',
+ 'effacer_transaction_planifiée' => 'delete_schedule',
+ 'enregistrer_transaction_planifiée' => 'save_schedule',
+};
+
+1;
+
diff --git a/locale/be_fr/arapprn b/locale/be_fr/arapprn
new file mode 100755
index 00000000..e7dfb7ad
--- /dev/null
+++ b/locale/be_fr/arapprn
@@ -0,0 +1,34 @@
+$self{texts} = {
+ 'Account' => 'Compte',
+ 'Amount' => 'Montant',
+ 'Continue' => 'Continuer',
+ 'Date' => 'Date',
+ 'Memo' => 'Mémo',
+ 'Nothing to print!' => 'Rien à imprimer',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'Postcript',
+ 'Printed' => 'Imprimé',
+ 'Scheduled' => 'Planifié',
+ 'Screen' => 'Écran',
+ 'Select a Printer!' => 'Sélectionner une imprimante!',
+ 'Select payment' => 'Sélectionner le payement',
+ 'Select postscript or PDF!' => 'Sélectionner Postscript ou PDF!',
+ 'Source' => 'Source',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'continuer' => 'continue',
+};
+
+1;
+
diff --git a/locale/be_fr/bp b/locale/be_fr/bp
new file mode 100755
index 00000000..e4dafae0
--- /dev/null
+++ b/locale/be_fr/bp
@@ -0,0 +1,69 @@
+$self{texts} = {
+ 'Account' => 'Compte',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Êtes vous sûr de vouloir enlever les objets sélectionnés de la queue?',
+ 'Bin Lists' => 'Liste des emplacements',
+ 'Cannot remove files!' => 'Impossible d\'effacer les fichiers!',
+ 'Confirm!' => 'Confirmer!',
+ 'Continue' => 'Continuer',
+ 'Current' => 'En cours',
+ 'Customer' => 'Client',
+ 'Date' => 'Date',
+ 'Employee' => 'Employé',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'Invoice' => 'Facture',
+ 'Invoice Number' => 'Numéro de facture',
+ 'Marked entries printed!' => 'Éléments marqués imprimés!',
+ 'Month' => 'Mois',
+ 'Order' => 'Commande',
+ 'Order Number' => 'Numéro de commande',
+ 'Packing Lists' => 'Listes d\'envoi',
+ 'Period' => 'Période',
+ 'Pick Lists' => 'Liste de sélection',
+ 'Print' => 'Imprimer',
+ 'Printing' => 'Impression',
+ 'Purchase Orders' => 'Commandes d\'achat',
+ 'Quarter' => 'Trimestre',
+ 'Quotation' => 'Devis',
+ 'Quotation Number' => 'Numéro de devis',
+ 'Quotations' => 'Devis',
+ 'RFQs' => 'Demandes de devis',
+ 'Remove' => 'Effacer',
+ 'Removed spoolfiles!' => 'File d\'attente impression effacée!',
+ 'Removing marked entries from queue ...' => 'Suppression des éléments sélectionnés de la file d\'attente ...',
+ 'Sales Invoices' => 'Factures de vente',
+ 'Sales Orders' => 'Commandes de vente',
+ 'Select all' => 'Tout sélectionner',
+ 'Spoolfile' => 'Fichier file d\'attente impression',
+ 'Time Cards' => 'Fiches de travail',
+ 'To' => 'À',
+ 'Vendor' => 'Fournisseur',
+ 'Work Orders' => 'Fiche de traitement',
+ 'Year' => 'Année',
+ 'Yes' => 'Oui',
+ 'done' => 'fait',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'continuer' => 'continue',
+ 'imprimer' => 'print',
+ 'effacer' => 'remove',
+ 'tout_sélectionner' => 'select_all',
+ 'oui' => 'yes',
+};
+
+1;
+
diff --git a/locale/be_fr/ca b/locale/be_fr/ca
new file mode 100755
index 00000000..623cbd74
--- /dev/null
+++ b/locale/be_fr/ca
@@ -0,0 +1,60 @@
+$self{texts} = {
+ 'AR/AP' => 'Recettes/Dépenses',
+ 'Account' => 'Compte',
+ 'Apr' => 'Avril',
+ 'April' => 'Avril',
+ 'Aug' => 'Août',
+ 'August' => 'Août',
+ 'Balance' => 'Solde',
+ 'Chart of Accounts' => 'Plan Comptable',
+ 'Credit' => 'Crédit',
+ 'Current' => 'En cours',
+ 'Date' => 'Date',
+ 'Debit' => 'Débit',
+ 'Dec' => 'Déc.',
+ 'December' => 'Décembre',
+ 'Department' => 'Service',
+ 'Description' => 'Description',
+ 'Feb' => 'Fév.',
+ 'February' => 'Février',
+ 'From' => 'De',
+ 'GIFI' => 'Code d\'identification comptable ou fiscale',
+ 'Include in Report' => 'Inclure dans l\'état',
+ 'Jan' => 'Jan.',
+ 'January' => 'Janvier',
+ 'Jul' => 'Juill.',
+ 'July' => 'Juillet',
+ 'Jun' => 'Juin',
+ 'June' => 'Juin',
+ 'List Transactions' => 'Afficher écritures',
+ 'Mar' => 'Mars',
+ 'March' => 'Mars',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Month' => 'Mois',
+ 'Nov' => 'Nov.',
+ 'November' => 'Novembre',
+ 'Oct' => 'Oct.',
+ 'October' => 'Octobre',
+ 'Period' => 'Période',
+ 'Project Number' => 'Numéro de projet',
+ 'Quarter' => 'Trimestre',
+ 'R' => 'R',
+ 'Reference' => 'Référence',
+ 'Sep' => 'Sept.',
+ 'September' => 'Septembre',
+ 'Subtotal' => 'Sous total',
+ 'To' => 'À',
+ 'Year' => 'Année',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'afficher_écritures' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/be_fr/cp b/locale/be_fr/cp
new file mode 100755
index 00000000..1783d43b
--- /dev/null
+++ b/locale/be_fr/cp
@@ -0,0 +1,149 @@
+$self{texts} = {
+ 'AP' => 'Dépenses',
+ 'AR' => 'Recettes',
+ 'Account' => 'Compte',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Address' => 'Adresse',
+ 'All' => 'Tous',
+ 'Amount' => 'Montant',
+ 'Amount Due' => 'Montant dû',
+ 'Bcc' => 'Copie cachée',
+ 'Cannot post Payment!' => 'Impossible d\'enregistrer le paiement!',
+ 'Cannot post Receipt!' => 'Impossible d\'enregistrer le reçu!',
+ 'Cannot post payment for a closed period!' => 'Impossible d\'enregistrer le paiement sur un exercice clos!',
+ 'Cc' => 'Copie',
+ 'Continue' => 'Continuer',
+ 'Currency' => 'Devise',
+ 'Customer' => 'Client',
+ 'Customer not on file!' => 'Client absent du fichier!',
+ 'Date' => 'Date',
+ 'Date missing!' => 'Date manquante!',
+ 'Day(s)' => 'Jour(s)',
+ 'Delete Schedule' => 'Effacer transaction planifiée',
+ 'Department' => 'Service',
+ 'Deposit' => 'Dépôt',
+ 'Description' => 'Description',
+ 'Due Date' => 'Échéance',
+ 'E-mail' => 'E-mail',
+ 'E-mail message' => 'Message e-mail',
+ 'Every' => 'Chaque',
+ 'Exchange Rate' => 'Taux de change',
+ 'Exchange rate missing!' => 'Taux de change manquant!',
+ 'For' => 'Pour',
+ 'From' => 'De',
+ 'Include Payment' => 'Inclure paiement',
+ 'Invoice' => 'Facture',
+ 'Invoices' => 'Factures',
+ 'Language' => 'Langue',
+ 'Memo' => 'Mémo',
+ 'Message' => 'Message',
+ 'Month(s)' => 'Mois',
+ 'Next Date' => 'Prochaine date',
+ 'Nothing open!' => 'Rien est ouvert!',
+ 'Number' => 'Numéro',
+ 'PDF' => 'PDF',
+ 'Payment' => 'Paiement',
+ 'Payment posted!' => 'Paiement enregistré!',
+ 'Payments' => 'Paiements',
+ 'Payments posted!' => 'Paiements enregistrés!',
+ 'Post' => 'Enregistrer',
+ 'Posting failed!' => 'Enregistrement échoué!',
+ 'Postscript' => 'Postcript',
+ 'Prepayment' => 'Paiement à l\'avance',
+ 'Print' => 'Imprimer',
+ 'Project not on file!' => 'Projet absent du fichier!',
+ 'Receipt' => 'Reçu',
+ 'Receipt posted!' => 'Reçu enregistré!',
+ 'Receipts' => 'Reçus',
+ 'Recurring Transaction' => 'Transaction périodique',
+ 'Reference' => 'Référence',
+ 'Repeat' => 'Répéter',
+ 'Save Schedule' => 'Enregistrer transaction planifiée',
+ 'Screen' => 'Écran',
+ 'Select' => 'Sélectionner',
+ 'Select all' => 'Tout sélectionner',
+ 'Select from one of the names below' => 'Sélectionner un des noms ci-dessous',
+ 'Select from one of the projects below' => 'Sélectionner un des projets ci-dessous',
+ 'Select postscript or PDF!' => 'Sélectionner Postscript ou PDF!',
+ 'Source' => 'Source',
+ 'Startdate' => 'Date de début',
+ 'Subject' => 'Objet',
+ 'To' => 'À',
+ 'Update' => 'Mettre à jour',
+ 'Vendor' => 'Fournisseur',
+ 'Vendor not on file!' => 'Fournisseur absent du fichier!',
+ 'Warning!' => 'Attention!',
+ 'Week(s)' => 'Semaine(s)',
+ 'Year(s)' => 'Année(s)',
+ 'You are posting an existing transaction!' => 'Vous enregistrez une transaction existante!',
+ 'You are printing and posting an existing transaction!' => 'Vous imprimez et enregistrez une transaction existante!',
+ 'You are printing and saving an existing order' => 'Vous imprimez et enregistrez une commande existante!',
+ 'You are printing and saving an existing quotation' => 'Vous imprimez et enregistrez un devis existant!',
+ 'You are saving an existing order' => 'Vous enregistrez une commande existante',
+ 'You are saving an existing quotation' => 'Vous enregistrez un devis existant',
+ 'for' => 'pour',
+ 'sent' => 'envoyé',
+ 'time(s)' => 'temps',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuer' => 'continue',
+ 'effacer_transaction_planifiée' => 'delete_schedule',
+ 'enregistrer' => 'post',
+ 'imprimer' => 'print',
+ 'enregistrer_transaction_planifiée' => 'save_schedule',
+ 'tout_sélectionner' => 'select_all',
+ 'mettre_à_jour' => 'update',
+};
+
+1;
+
diff --git a/locale/be_fr/ct b/locale/be_fr/ct
new file mode 100755
index 00000000..d0b76d69
--- /dev/null
+++ b/locale/be_fr/ct
@@ -0,0 +1,190 @@
+$self{texts} = {
+ 'AP Transaction' => 'Écriture dépenses',
+ 'AP Transactions' => 'Mouvements - Dépenses',
+ 'AR Transaction' => 'Écriture recettes',
+ 'AR Transactions' => 'Mouvements - Recettes',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Active' => 'Actif',
+ 'Add Customer' => 'Ajouter client',
+ 'Add Vendor' => 'Ajouter fournisseur',
+ 'Address' => 'Adresse',
+ 'All' => 'Tous',
+ 'Amount' => 'Montant',
+ 'BIC' => 'BIC',
+ 'Bcc' => 'Copie cachée',
+ 'Billing Address' => 'Adresse de facturation',
+ 'Break' => 'Rupture',
+ 'Cannot delete customer!' => 'Impossible de supprimer le client!',
+ 'Cannot delete vendor!' => 'Impossible de supprimer le fournisseur!',
+ 'Cc' => 'Copie',
+ 'City' => 'Ville',
+ 'Closed' => 'Clôturé',
+ 'Company Name' => 'Nom de société',
+ 'Contact' => 'Contact',
+ 'Continue' => 'Continuer',
+ 'Cost' => 'Coût',
+ 'Could not save pricelist!' => 'Enregistrement de la liste de prix impossible!',
+ 'Country' => 'Pays',
+ 'Credit Limit' => 'Encours autorisé',
+ 'Curr' => 'Dev.',
+ 'Currency' => 'Devise',
+ 'Customer History' => 'Historique client',
+ 'Customer Number' => 'Numéro de client',
+ 'Customer deleted!' => 'Client supprimé!',
+ 'Customer saved!' => 'Client enregistré!',
+ 'Customers' => 'Clients',
+ 'Delete' => 'Supprimer',
+ 'Delivery Date' => 'Date de livraison',
+ 'Description' => 'Description',
+ 'Detail' => 'Détail',
+ 'Discount' => 'Remise',
+ 'E-mail' => 'E-mail',
+ 'Edit Customer' => 'Modifier client',
+ 'Edit Vendor' => 'Modifier fournisseur',
+ 'Employee' => 'Employé',
+ 'Enddate' => 'Date de fin',
+ 'Fax' => 'Fax',
+ 'From' => 'De',
+ 'GIFI' => 'Code d\'identification comptable ou fiscale',
+ 'Group' => 'Groupe',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Inactive' => 'Inactive',
+ 'Include in Report' => 'Inclure dans l\'état',
+ 'Invoice' => 'Facture',
+ 'Item already on pricelist!' => 'Objet déjà présent dans la liste des prix',
+ 'Item not on file!' => 'Objet non-listé!',
+ 'Language' => 'Langue',
+ 'Leadtime' => 'Délai',
+ 'Manager' => 'Gestionnaire',
+ 'Name' => 'Nom',
+ 'Name missing!' => 'Nom manquant!',
+ 'No.' => 'N°',
+ 'Notes' => 'Notes',
+ 'Number' => 'Numéro',
+ 'Open' => 'Ouvert',
+ 'Order' => 'Commande',
+ 'Orphaned' => 'Orphelin',
+ 'POS' => 'Point de vente',
+ 'Part Number' => 'Numéro marchandise',
+ 'Phone' => 'Tél.',
+ 'Pricegroup' => 'Groupe de prix',
+ 'Pricelist' => 'Liste de prix',
+ 'Project Number' => 'Numéro de projet',
+ 'Purchase Order' => 'Commande d\'achat',
+ 'Purchase Orders' => 'Commandes d\'achat',
+ 'Qty' => 'Qté',
+ 'Quotation' => 'Devis',
+ 'Quotations' => 'Devis',
+ 'RFQ' => 'Demande de devis',
+ 'Request for Quotations' => 'Demandes de devis',
+ 'SIC' => 'Code secteur économique',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Facture de vente',
+ 'Sales Invoices' => 'Factures de vente',
+ 'Sales Order' => 'Commande de vente',
+ 'Sales Orders' => 'Commandes de vente',
+ 'Salesperson' => 'Vendeur',
+ 'Save' => 'Enregistrer',
+ 'Save Pricelist' => 'Enregistrer la liste de prix',
+ 'Save as new' => 'Enregistrer comme nouveau',
+ 'Search' => 'Recherche',
+ 'Select items' => 'Sélectionner éléments',
+ 'Sell Price' => 'Prix de vente',
+ 'Serial Number' => 'Numéro de série',
+ 'Shipping Address' => 'Adresse d\'envoi',
+ 'Startdate' => 'Date de début',
+ 'State' => 'Etat',
+ 'State/Province' => 'Région/État',
+ 'Sub-contract GIFI' => 'Code d\'identification comptable ou fiscale - Sous-traitance',
+ 'Subtotal' => 'Sous total',
+ 'Summary' => 'Résumé',
+ 'Tax' => 'Taxe',
+ 'Tax Account' => 'Compte de taxe',
+ 'Tax Included' => 'Taxe incluse',
+ 'Tax Number' => 'Numéro de TVA',
+ 'Tax Number / SSN' => 'Numéro de TVA / Sécurité Sociale',
+ 'Taxable' => 'Imposable',
+ 'Terms' => 'Crédit limité à',
+ 'To' => 'À',
+ 'Total' => 'Total',
+ 'Type of Business' => 'Type d\'affaire',
+ 'Unit' => 'Unité',
+ 'Update' => 'Mettre à jour',
+ 'Vendor History' => 'Historique fournisseurs',
+ 'Vendor Invoice' => 'Facture d\'achat',
+ 'Vendor Invoices' => 'Factures d\'achat',
+ 'Vendor Number' => 'Numéro de fournisseur',
+ 'Vendor deleted!' => 'Fournisseur supprimé!',
+ 'Vendor saved!' => 'Fournisseur enregistré!',
+ 'Vendors' => 'Fournisseurs',
+ 'Zip/Postal Code' => 'Code postal',
+ 'days' => 'jours',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'Écriture_dépenses' => 'ap_transaction',
+ 'Écriture_recettes' => 'ar_transaction',
+ 'ajouter_client' => 'add_customer',
+ 'ajouter_fournisseur' => 'add_vendor',
+ 'continuer' => 'continue',
+ 'supprimer' => 'delete',
+ 'point_de_vente' => 'pos',
+ 'liste_de_prix' => 'pricelist',
+ 'commande_d\'achat' => 'purchase_order',
+ 'devis' => 'quotation',
+ 'demande_de_devis' => 'rfq',
+ 'facture_de_vente' => 'sales_invoice',
+ 'commande_de_vente' => 'sales_order',
+ 'enregistrer' => 'save',
+ 'enregistrer_la_liste_de_prix' => 'save_pricelist',
+ 'enregistrer_comme_nouveau' => 'save_as_new',
+ 'mettre_à_jour' => 'update',
+ 'facture_d\'achat' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/be_fr/gl b/locale/be_fr/gl
new file mode 100755
index 00000000..bbb4eca3
--- /dev/null
+++ b/locale/be_fr/gl
@@ -0,0 +1,185 @@
+$self{texts} = {
+ 'AP Transaction' => 'Écriture dépenses',
+ 'AR Transaction' => 'Écriture recettes',
+ 'Account' => 'Compte',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Add Cash Transfer Transaction' => 'Saisie d\'écriture - Virements internes',
+ 'Add General Ledger Transaction' => 'Ajouter une écriture au grand-livre',
+ 'Address' => 'Adresse',
+ 'All' => 'Tous',
+ 'Amount' => 'Montant',
+ 'Apr' => 'Avril',
+ 'April' => 'Avril',
+ 'Are you sure you want to delete Transaction' => 'Êtes vous sûr de vouloir effacer la saisie?',
+ 'Asset' => 'Actif',
+ 'Aug' => 'Août',
+ 'August' => 'Août',
+ 'Balance' => 'Solde',
+ 'Bcc' => 'Copie cachée',
+ 'Cannot delete transaction!' => 'Impossible de supprimer l\'écriture!',
+ 'Cannot post transaction for a closed period!' => 'Impossible d\'enregistrer l\'écriture sur un exercice clos!',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => 'Impossible d\'enregistrer l\'écriture avec un débit et un crédit sur le même compte!',
+ 'Cannot post transaction!' => 'Impossible d\'enregistrer l\'écriture!',
+ 'Cc' => 'Copie',
+ 'Confirm!' => 'Confirmer!',
+ 'Continue' => 'Continuer',
+ 'Credit' => 'Crédit',
+ 'Current' => 'En cours',
+ 'Customer not on file!' => 'Client absent du fichier!',
+ 'Date' => 'Date',
+ 'Day(s)' => 'Jour(s)',
+ 'Debit' => 'Débit',
+ 'Dec' => 'Déc.',
+ 'December' => 'Décembre',
+ 'Delete' => 'Supprimer',
+ 'Delete Schedule' => 'Effacer transaction planifiée',
+ 'Department' => 'Service',
+ 'Description' => 'Description',
+ 'E-mail' => 'E-mail',
+ 'E-mail message' => 'Message e-mail',
+ 'Edit Cash Transfer Transaction' => 'Modifier virements internes',
+ 'Edit General Ledger Transaction' => 'Modifier écriture grand-livre',
+ 'Equity' => 'Capital',
+ 'Every' => 'Chaque',
+ 'Expense' => 'Dépenses',
+ 'FX' => 'Devises',
+ 'Feb' => 'Fév.',
+ 'February' => 'Février',
+ 'For' => 'Pour',
+ 'From' => 'De',
+ 'GIFI' => 'Code d\'identification comptable ou fiscale',
+ 'GL Transaction' => 'Transaction grand-livre',
+ 'General Ledger' => 'Grand-livre',
+ 'ID' => 'ID',
+ 'Include Payment' => 'Inclure paiement',
+ 'Include in Report' => 'Inclure dans l\'état',
+ 'Income' => 'Recettes',
+ 'Jan' => 'Jan.',
+ 'January' => 'Janvier',
+ 'Jul' => 'Juill.',
+ 'July' => 'Juillet',
+ 'Jun' => 'Juin',
+ 'June' => 'Juin',
+ 'Liability' => 'Passif',
+ 'Mar' => 'Mars',
+ 'March' => 'Mars',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Mémo',
+ 'Message' => 'Message',
+ 'Month' => 'Mois',
+ 'Month(s)' => 'Mois',
+ 'Next Date' => 'Prochaine date',
+ 'Notes' => 'Notes',
+ 'Nov' => 'Nov.',
+ 'November' => 'Novembre',
+ 'Number' => 'Numéro',
+ 'Oct' => 'Oct.',
+ 'October' => 'Octobre',
+ 'Out of balance transaction!' => 'Écriture non-soldée!',
+ 'Period' => 'Période',
+ 'Post' => 'Enregistrer',
+ 'Post as new' => 'Enregistrer comme nouveau',
+ 'Print' => 'Imprimer',
+ 'Project' => 'Projet',
+ 'Project not on file!' => 'Projet absent du fichier!',
+ 'Quarter' => 'Trimestre',
+ 'R' => 'R',
+ 'Recurring Transaction' => 'Transaction périodique',
+ 'Reference' => 'Référence',
+ 'Repeat' => 'Répéter',
+ 'Reports' => 'Rapports',
+ 'Sales Invoice ' => 'Facture de vente ',
+ 'Save Schedule' => 'Enregistrer transaction planifiée',
+ 'Schedule' => 'Planification',
+ 'Scheduled' => 'Planifié',
+ 'Select from one of the names below' => 'Sélectionner un des noms ci-dessous',
+ 'Select from one of the projects below' => 'Sélectionner un des projets ci-dessous',
+ 'Sep' => 'Sept.',
+ 'September' => 'Septembre',
+ 'Source' => 'Source',
+ 'Startdate' => 'Date de début',
+ 'Subject' => 'Objet',
+ 'Subtotal' => 'Sous total',
+ 'To' => 'À',
+ 'Transaction Date missing!' => 'Date d\'écriture manquante!',
+ 'Transaction deleted!' => 'Écriture supprimée!',
+ 'Transaction posted!' => 'Écriture enregistrée!',
+ 'Update' => 'Mettre à jour',
+ 'Vendor Invoice ' => 'Facture d\'achat ',
+ 'Vendor not on file!' => 'Fournisseur absent du fichier!',
+ 'Warning!' => 'Attention!',
+ 'Week(s)' => 'Semaine(s)',
+ 'Year' => 'Année',
+ 'Year(s)' => 'Année(s)',
+ 'Yes' => 'Oui',
+ 'You are posting an existing transaction!' => 'Vous enregistrez une transaction existante!',
+ 'You are printing and posting an existing transaction!' => 'Vous imprimez et enregistrez une transaction existante!',
+ 'You are printing and saving an existing order' => 'Vous imprimez et enregistrez une commande existante!',
+ 'You are printing and saving an existing quotation' => 'Vous imprimez et enregistrez un devis existant!',
+ 'You are saving an existing order' => 'Vous enregistrez une commande existante',
+ 'You are saving an existing quotation' => 'Vous enregistrez un devis existant',
+ 'for' => 'pour',
+ 'sent' => 'envoyé',
+ 'time(s)' => 'temps',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'Écriture_dépenses' => 'ap_transaction',
+ 'Écriture_recettes' => 'ar_transaction',
+ 'continuer' => 'continue',
+ 'supprimer' => 'delete',
+ 'effacer_transaction_planifiée' => 'delete_schedule',
+ 'transaction_grand_livre' => 'gl_transaction',
+ 'enregistrer' => 'post',
+ 'enregistrer_comme_nouveau' => 'post_as_new',
+ 'facture_de_vente_' => 'sales_invoice_',
+ 'enregistrer_transaction_planifiée' => 'save_schedule',
+ 'planification' => 'schedule',
+ 'mettre_à_jour' => 'update',
+ 'facture_d\'achat_' => 'vendor_invoice_',
+ 'oui' => 'yes',
+};
+
+1;
+
diff --git a/locale/be_fr/hr b/locale/be_fr/hr
new file mode 100755
index 00000000..d04c9c29
--- /dev/null
+++ b/locale/be_fr/hr
@@ -0,0 +1,120 @@
+$self{texts} = {
+ 'AP' => 'Dépenses',
+ 'Above' => 'En dessus',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Active' => 'Actif',
+ 'Add Deduction' => 'Ajouter prélèvement',
+ 'Add Employee' => 'Ajouter employé',
+ 'Address' => 'Adresse',
+ 'Administrator' => 'Administrateur',
+ 'After Deduction' => 'Après prélèvement',
+ 'All' => 'Tous',
+ 'Allowances' => 'Indemnités',
+ 'Amount' => 'Montant',
+ 'Amount missing!' => 'Montant manquant!',
+ 'BIC' => 'BIC',
+ 'Based on' => 'Basé sur',
+ 'Before Deduction' => 'Avant prélèvement',
+ 'Below' => 'En dessous',
+ 'City' => 'Ville',
+ 'Continue' => 'Continuer',
+ 'Country' => 'Pays',
+ 'DOB' => 'Date de naissance',
+ 'Deduct after' => 'Prélèver après',
+ 'Deduction deleted!' => 'Prélèvement supprimé!',
+ 'Deduction saved!' => 'Prélèvement enrégistré!',
+ 'Deductions' => 'Prélèvements',
+ 'Delete' => 'Supprimer',
+ 'Description' => 'Description',
+ 'Description missing!' => 'Description manquante!',
+ 'E-mail' => 'E-mail',
+ 'Edit Deduction' => 'Modifier prélèvement',
+ 'Edit Employee' => 'Modifier employé',
+ 'Employee' => 'Employé',
+ 'Employee Name' => 'Nom employé',
+ 'Employee Number' => 'Numéro d\'employé',
+ 'Employee deleted!' => 'Employé effacé!',
+ 'Employee pays' => 'Employé pays',
+ 'Employee saved!' => 'Employé enregistré',
+ 'Employees' => 'Employés',
+ 'Employer' => 'Employeur',
+ 'Employer pays' => 'Employeur pays',
+ 'Enddate' => 'Date de fin',
+ 'Exempt age <' => 'Exempter âge <',
+ 'Expense' => 'Dépenses',
+ 'From' => 'De',
+ 'Home Phone' => 'Téléphone privé',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Inactive' => 'Inactive',
+ 'Include in Report' => 'Inclure dans l\'état',
+ 'Login' => 'Login',
+ 'Manager' => 'Gestionnaire',
+ 'Maximum' => 'Maximum',
+ 'Name' => 'Nom',
+ 'Name missing!' => 'Nom manquant!',
+ 'Notes' => 'Notes',
+ 'Number' => 'Numéro',
+ 'Orphaned' => 'Orphelin',
+ 'Payroll Deduction' => 'Prélèvement salaire',
+ 'Pos' => 'PDV',
+ 'Rate' => 'Taux',
+ 'Rate missing!' => 'Taux manquant!',
+ 'Role' => 'Rôle',
+ 'S' => 'S',
+ 'SSN' => 'Numéro sécurité sociale',
+ 'Sales' => 'Ventes',
+ 'Save' => 'Enregistrer',
+ 'Save as new' => 'Enregistrer comme nouveau',
+ 'Startdate' => 'Date de début',
+ 'State/Province' => 'Région/État',
+ 'Supervisor' => 'Chef de service',
+ 'To' => 'À',
+ 'Update' => 'Mettre à jour',
+ 'User' => 'Utilisateur',
+ 'Work Phone' => 'Téléphone travail',
+ 'Zip/Postal Code' => 'Code postal',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'ajouter_prélèvement' => 'add_deduction',
+ 'ajouter_employé' => 'add_employee',
+ 'continuer' => 'continue',
+ 'supprimer' => 'delete',
+ 'enregistrer' => 'save',
+ 'enregistrer_comme_nouveau' => 'save_as_new',
+ 'mettre_à_jour' => 'update',
+};
+
+1;
+
diff --git a/locale/be_fr/ic b/locale/be_fr/ic
new file mode 100755
index 00000000..abe84baf
--- /dev/null
+++ b/locale/be_fr/ic
@@ -0,0 +1,301 @@
+$self{texts} = {
+ 'A' => 'A',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Accounts' => 'Comptes',
+ 'Accrual' => 'Accumulation',
+ 'Active' => 'Actif',
+ 'Add' => 'Ajouter',
+ 'Add Assembly' => 'Ajouter produit',
+ 'Add Labor/Overhead' => 'Ajouter coût de production',
+ 'Add Part' => 'Ajouter marchandise',
+ 'Add Purchase Order' => 'Établir commande d\'achat',
+ 'Add Quotation' => 'Établir devis',
+ 'Add Request for Quotation' => 'Établir demande de devis',
+ 'Add Sales Order' => 'Établir commande de vente',
+ 'Add Service' => 'Ajouter prestation',
+ 'Address' => 'Adresse',
+ 'Apr' => 'Avril',
+ 'April' => 'Avril',
+ 'Assemblies' => 'Produits finis',
+ 'Assemblies restocked!' => 'Renvoyer produits vers stock!',
+ 'Assembly' => 'Produit fini',
+ 'Attachment' => 'Pièce jointe',
+ 'Aug' => 'Août',
+ 'August' => 'Août',
+ 'Average Cost' => 'Coût moyen',
+ 'Avg Cost' => 'Coût moy.',
+ 'BOM' => 'Nomenclature composantes',
+ 'Bcc' => 'Copie cachée',
+ 'Billing Address' => 'Adresse de facturation',
+ 'Bin' => 'Lieu stockage',
+ 'Bin List' => 'Liste des emplacements',
+ 'Break' => 'Rupture',
+ 'COGS' => 'Coût des produits vendus',
+ 'COGS account does not exist!' => 'Compte des produits vendus inexistant!',
+ 'Cannot create Assembly' => 'Impossible de créer le produit fini',
+ 'Cannot create Labor' => 'Impossible de créer le coût de production',
+ 'Cannot create Part' => 'Impossible de créer la marchandise',
+ 'Cannot create Service' => 'Impossible de créer le service',
+ 'Cannot delete item!' => 'Impossible de supprimer l\'objet!',
+ 'Cannot stock assemblies!' => 'Impossible de stocker l\'assemblage!',
+ 'Cash' => 'Financier',
+ 'Cc' => 'Copie',
+ 'Check Inventory' => 'Listing chèques',
+ 'City' => 'Ville',
+ 'Closed' => 'Clôturé',
+ 'Company Name' => 'Nom de société',
+ 'Components' => 'Composants',
+ 'Contact' => 'Contact',
+ 'Continue' => 'Continuer',
+ 'Copies' => 'Copies',
+ 'Cost' => 'Coût',
+ 'Country' => 'Pays',
+ 'Curr' => 'Dev.',
+ 'Currency' => 'Devise',
+ 'Customer' => 'Client',
+ 'Customer Number' => 'Numéro de client',
+ 'Customer not on file!' => 'Client absent du fichier!',
+ 'Date' => 'Date',
+ 'Dec' => 'Déc.',
+ 'December' => 'Décembre',
+ 'Delete' => 'Supprimer',
+ 'Delivery Date' => 'Date de livraison',
+ 'Description' => 'Description',
+ 'Detail' => 'Détail',
+ 'Drawing' => 'Dessin',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Adresse e-mail manquante!',
+ 'E-mailed' => 'E-mail envoyé',
+ 'Edit Assembly' => 'Modifier produit fini / transformé',
+ 'Edit Labor/Overhead' => 'Modifier coût de production',
+ 'Edit Part' => 'Modifier marchandise',
+ 'Edit Service' => 'Modifier service',
+ 'Employee' => 'Employé',
+ 'Expense' => 'Dépenses',
+ 'Expense account does not exist!' => 'Compte de dépenses inexistant',
+ 'Extended' => 'Prix total',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Fév.',
+ 'February' => 'Février',
+ 'From' => 'De',
+ 'Group' => 'Groupe',
+ 'Image' => 'Image',
+ 'In-line' => 'En ligne',
+ 'Include in Report' => 'Inclure dans l\'état',
+ 'Income' => 'Recettes',
+ 'Income account does not exist!' => 'Compte de recettes inexistant',
+ 'Individual Items' => 'Composition en marchandises individuelles',
+ 'Inventory' => 'Inventaire',
+ 'Inventory account does not exist!' => 'Compte de stock inexistant',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'La quantité en stock doit être zéro avant de pouvoir annuler cet assemblage!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'La quantité en stock doit être zero avant de pouvoir annuler cette pièce!',
+ 'Invoice' => 'Facture',
+ 'Invoice Date missing!' => 'Date de facture manquante!',
+ 'Invoice Number' => 'Numéro de facture',
+ 'Invoice Number missing!' => 'Numéro de facture manquant!',
+ 'Item' => 'Article',
+ 'Item deleted!' => 'Objet supprimé!',
+ 'Item not on file!' => 'Objet non-listé!',
+ 'Items' => 'Objets',
+ 'Jan' => 'Jan.',
+ 'January' => 'Janvier',
+ 'Jul' => 'Juill.',
+ 'July' => 'Juillet',
+ 'Jun' => 'Juin',
+ 'June' => 'Juin',
+ 'Labor/Overhead' => 'Coût de production',
+ 'Last Cost' => 'Dernier prix',
+ 'Leadtime' => 'Délai',
+ 'Line Total' => 'Total ligne',
+ 'Link Accounts' => 'Lier comptes',
+ 'List' => 'Liste',
+ 'List Price' => 'Prix de revient',
+ 'Make' => 'Marque',
+ 'Mar' => 'Mars',
+ 'March' => 'Mars',
+ 'Markup' => 'Majoration',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Message' => 'Message',
+ 'Microfiche' => 'Microfiche',
+ 'Model' => 'Modèle',
+ 'Name' => 'Nom',
+ 'No History!' => 'Aucun historique',
+ 'No.' => 'N°',
+ 'Notes' => 'Notes',
+ 'Nov' => 'Nov.',
+ 'November' => 'Novembre',
+ 'Number' => 'Numéro',
+ 'Number missing in Row' => 'Numéro manquant dans ligne',
+ 'OH' => 'OH',
+ 'Obsolete' => 'Obsolète',
+ 'Oct' => 'Oct.',
+ 'October' => 'Octobre',
+ 'On Hand' => 'En Stock / disponible',
+ 'Onhand' => 'Disponible',
+ 'Open' => 'Ouvert',
+ 'Order' => 'Commande',
+ 'Order Date missing!' => 'Date de commande manquante!',
+ 'Order Number' => 'Numéro de commande',
+ 'Order Number missing!' => 'Numéro de commande manquant!',
+ 'Orphaned' => 'Orphelin',
+ 'PDF' => 'PDF',
+ 'PO' => 'PO',
+ 'Packing List' => 'Liste d\'envoi',
+ 'Packing List Date missing!' => 'La liste d\'envoi n\'a pas de date!',
+ 'Packing List Number missing!' => 'Le numéro de la liste d\'envoi est manquant!',
+ 'Part' => 'Marchandise',
+ 'Parts' => 'Marchandises',
+ 'Parts Requirements' => 'Exigences en marchandises',
+ 'Period' => 'Période',
+ 'Phone' => 'Tél.',
+ 'Pick List' => 'Liste de sélection',
+ 'Postscript' => 'Postcript',
+ 'Price' => 'Prix',
+ 'Pricegroup' => 'Groupe de prix',
+ 'Printed' => 'Imprimé',
+ 'Project' => 'Projet',
+ 'Purchase Order' => 'Commande d\'achat',
+ 'Purchase Orders' => 'Commandes d\'achat',
+ 'Qty' => 'Qté',
+ 'Quantity exceeds available units to stock!' => 'La quantité dépasse le nombre d\'unités en stock',
+ 'Queue' => 'File d\'attente',
+ 'Queued' => 'Mis en file d\'attente',
+ 'Quotation' => 'Devis',
+ 'Quotation Date missing!' => 'Date de devis manqante!',
+ 'Quotation Number missing!' => 'Numéro de devis manquant!',
+ 'Quotations' => 'Devis',
+ 'RFQ' => 'Demande de devis',
+ 'ROP' => 'Seuil réapprovisionnement',
+ 'Recd' => 'Reçu',
+ 'Required by' => 'Requis pour',
+ 'SKU' => 'SKU',
+ 'SO' => 'SO',
+ 'Sales Invoice' => 'Facture de vente',
+ 'Sales Invoices' => 'Factures de vente',
+ 'Sales Order' => 'Commande de vente',
+ 'Sales Orders' => 'Commandes de vente',
+ 'Save' => 'Enregistrer',
+ 'Save as new' => 'Enregistrer comme nouveau',
+ 'Scheduled' => 'Planifié',
+ 'Screen' => 'Écran',
+ 'Select from one of the names below' => 'Sélectionner un des noms ci-dessous',
+ 'Select items' => 'Sélectionner éléments',
+ 'Select txt, postscript or PDF!' => 'Sélectionner Txt, Postscript ou PDF!',
+ 'Sell' => 'Vente',
+ 'Sell Price' => 'Prix de vente',
+ 'Sep' => 'Sept.',
+ 'September' => 'Septembre',
+ 'Serial No.' => 'N° série',
+ 'Serial Number' => 'Numéro de série',
+ 'Service' => 'Prestation de service',
+ 'Services' => 'Prestations de services',
+ 'Ship' => 'Expédier',
+ 'Ship to' => 'Expédier à',
+ 'Shipping Address' => 'Adresse d\'envoi',
+ 'Short' => 'Court',
+ 'State/Province' => 'Région/État',
+ 'Stock' => 'Stock',
+ 'Stock Assembly' => 'Stock de produits',
+ 'Subject' => 'Objet',
+ 'Subtotal' => 'Sous total',
+ 'Summary' => 'Résumé',
+ 'Tax' => 'Taxe',
+ 'Text' => 'Texte',
+ 'To' => 'À',
+ 'Top Level' => 'Description principale',
+ 'Translation not on file!' => 'Pas de traduction dans le fichier',
+ 'Unit' => 'Unité',
+ 'Update' => 'Mettre à jour',
+ 'Updated' => 'Mis à jour',
+ 'Vendor' => 'Fournisseur',
+ 'Vendor Invoice' => 'Facture d\'achat',
+ 'Vendor Invoices' => 'Factures d\'achat',
+ 'Vendor Number' => 'Numéro de fournisseur',
+ 'Vendor not on file!' => 'Fournisseur absent du fichier!',
+ 'Warehouse' => 'Entrepôt',
+ 'Weight' => 'Poids',
+ 'What type of item is this?' => 'De quel type est cet objet?',
+ 'Work Order' => 'Fiche de traitement',
+ 'Year' => 'Année',
+ 'Zip/Postal Code' => 'Code postal',
+ 'days' => 'jours',
+ 'sent' => 'envoyé',
+ 'unexpected error!' => 'Erreur inattendue!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'ajouter_produit' => 'add_assembly',
+ 'ajouter_coût_de_production' => 'add_labor_overhead',
+ 'ajouter_marchandise' => 'add_part',
+ 'ajouter_prestation' => 'add_service',
+ 'continuer' => 'continue',
+ 'supprimer' => 'delete',
+ 'modifier_produit_fini___transformé' => 'edit_assembly',
+ 'modifier_marchandise' => 'edit_part',
+ 'modifier_service' => 'edit_service',
+ 'enregistrer' => 'save',
+ 'enregistrer_comme_nouveau' => 'save_as_new',
+ 'mettre_à_jour' => 'update',
+};
+
+1;
+
diff --git a/locale/be_fr/io b/locale/be_fr/io
new file mode 100755
index 00000000..14f9da92
--- /dev/null
+++ b/locale/be_fr/io
@@ -0,0 +1,137 @@
+$self{texts} = {
+ 'Add Purchase Order' => 'Établir commande d\'achat',
+ 'Add Quotation' => 'Établir devis',
+ 'Add Request for Quotation' => 'Établir demande de devis',
+ 'Add Sales Order' => 'Établir commande de vente',
+ 'Address' => 'Adresse',
+ 'Apr' => 'Avril',
+ 'April' => 'Avril',
+ 'Attachment' => 'Pièce jointe',
+ 'Aug' => 'Août',
+ 'August' => 'Août',
+ 'Bcc' => 'Copie cachée',
+ 'Billing Address' => 'Adresse de facturation',
+ 'Bin' => 'Lieu stockage',
+ 'Bin List' => 'Liste des emplacements',
+ 'Cc' => 'Copie',
+ 'City' => 'Ville',
+ 'Company Name' => 'Nom de société',
+ 'Contact' => 'Contact',
+ 'Continue' => 'Continuer',
+ 'Copies' => 'Copies',
+ 'Country' => 'Pays',
+ 'Customer Number' => 'Numéro de client',
+ 'Date' => 'Date',
+ 'Dec' => 'Déc.',
+ 'December' => 'Décembre',
+ 'Delivery Date' => 'Date de livraison',
+ 'Description' => 'Description',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Adresse e-mail manquante!',
+ 'E-mailed' => 'E-mail envoyé',
+ 'Extended' => 'Prix total',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Fév.',
+ 'February' => 'Février',
+ 'Group' => 'Groupe',
+ 'In-line' => 'En ligne',
+ 'Invoice' => 'Facture',
+ 'Invoice Date missing!' => 'Date de facture manquante!',
+ 'Invoice Number missing!' => 'Numéro de facture manquant!',
+ 'Item' => 'Article',
+ 'Item not on file!' => 'Objet non-listé!',
+ 'Jan' => 'Jan.',
+ 'January' => 'Janvier',
+ 'Jul' => 'Juill.',
+ 'July' => 'Juillet',
+ 'Jun' => 'Juin',
+ 'June' => 'Juin',
+ 'Mar' => 'Mars',
+ 'March' => 'Mars',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Message' => 'Message',
+ 'Nov' => 'Nov.',
+ 'November' => 'Novembre',
+ 'Number' => 'Numéro',
+ 'Number missing in Row' => 'Numéro manquant dans ligne',
+ 'OH' => 'OH',
+ 'Oct' => 'Oct.',
+ 'October' => 'Octobre',
+ 'Order Date missing!' => 'Date de commande manquante!',
+ 'Order Number missing!' => 'Numéro de commande manquant!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Liste d\'envoi',
+ 'Packing List Date missing!' => 'La liste d\'envoi n\'a pas de date!',
+ 'Packing List Number missing!' => 'Le numéro de la liste d\'envoi est manquant!',
+ 'Part' => 'Marchandise',
+ 'Phone' => 'Tél.',
+ 'Pick List' => 'Liste de sélection',
+ 'Postscript' => 'Postcript',
+ 'Price' => 'Prix',
+ 'Printed' => 'Imprimé',
+ 'Project' => 'Projet',
+ 'Purchase Order' => 'Commande d\'achat',
+ 'Qty' => 'Qté',
+ 'Queue' => 'File d\'attente',
+ 'Queued' => 'Mis en file d\'attente',
+ 'Quotation' => 'Devis',
+ 'Quotation Date missing!' => 'Date de devis manqante!',
+ 'Quotation Number missing!' => 'Numéro de devis manquant!',
+ 'Recd' => 'Reçu',
+ 'Required by' => 'Requis pour',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Commande de vente',
+ 'Scheduled' => 'Planifié',
+ 'Screen' => 'Écran',
+ 'Select items' => 'Sélectionner éléments',
+ 'Select txt, postscript or PDF!' => 'Sélectionner Txt, Postscript ou PDF!',
+ 'Sep' => 'Sept.',
+ 'September' => 'Septembre',
+ 'Serial No.' => 'N° série',
+ 'Service' => 'Prestation de service',
+ 'Ship' => 'Expédier',
+ 'Ship to' => 'Expédier à',
+ 'Shipping Address' => 'Adresse d\'envoi',
+ 'State/Province' => 'Région/État',
+ 'Subject' => 'Objet',
+ 'Subtotal' => 'Sous total',
+ 'Text' => 'Texte',
+ 'To' => 'À',
+ 'Translation not on file!' => 'Pas de traduction dans le fichier',
+ 'Unit' => 'Unité',
+ 'Vendor Number' => 'Numéro de fournisseur',
+ 'What type of item is this?' => 'De quel type est cet objet?',
+ 'Work Order' => 'Fiche de traitement',
+ 'Zip/Postal Code' => 'Code postal',
+ 'sent' => 'envoyé',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'continuer' => 'continue',
+};
+
+1;
+
diff --git a/locale/be_fr/ir b/locale/be_fr/ir
new file mode 100755
index 00000000..b04e1e04
--- /dev/null
+++ b/locale/be_fr/ir
@@ -0,0 +1,257 @@
+$self{texts} = {
+ 'Account' => 'Compte',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Add Purchase Order' => 'Établir commande d\'achat',
+ 'Add Quotation' => 'Établir devis',
+ 'Add Request for Quotation' => 'Établir demande de devis',
+ 'Add Sales Order' => 'Établir commande de vente',
+ 'Add Vendor Invoice' => 'Établir facture d\'achat',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Montant',
+ 'Apr' => 'Avril',
+ 'April' => 'Avril',
+ 'Are you sure you want to delete Invoice Number' => 'Êtes-vous sûr de vouloir supprimer la facture n°',
+ 'Attachment' => 'Pièce jointe',
+ 'Aug' => 'Août',
+ 'August' => 'Août',
+ 'Bcc' => 'Copie cachée',
+ 'Billing Address' => 'Adresse de facturation',
+ 'Bin' => 'Lieu stockage',
+ 'Bin List' => 'Liste des emplacements',
+ 'Cannot delete invoice!' => 'Impossible de supprimer la facture!',
+ 'Cannot post invoice for a closed period!' => 'Impossible d\'enregistrer la facture sur un exercice clos!',
+ 'Cannot post invoice!' => 'Impossible d\'enregistrer la facture!',
+ 'Cannot post payment for a closed period!' => 'Impossible d\'enregistrer le paiement sur un exercice clos!',
+ 'Cc' => 'Copie',
+ 'City' => 'Ville',
+ 'Company Name' => 'Nom de société',
+ 'Confirm!' => 'Confirmer!',
+ 'Contact' => 'Contact',
+ 'Continue' => 'Continuer',
+ 'Copies' => 'Copies',
+ 'Country' => 'Pays',
+ 'Credit Limit' => 'Encours autorisé',
+ 'Currency' => 'Devise',
+ 'Customer Number' => 'Numéro de client',
+ 'Customer not on file!' => 'Client absent du fichier!',
+ 'Date' => 'Date',
+ 'Day(s)' => 'Jour(s)',
+ 'Dec' => 'Déc.',
+ 'December' => 'Décembre',
+ 'Delete' => 'Supprimer',
+ 'Delete Schedule' => 'Effacer transaction planifiée',
+ 'Delivery Date' => 'Date de livraison',
+ 'Department' => 'Service',
+ 'Description' => 'Description',
+ 'Due Date' => 'Échéance',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Adresse e-mail manquante!',
+ 'E-mail message' => 'Message e-mail',
+ 'E-mailed' => 'E-mail envoyé',
+ 'Edit Vendor Invoice' => 'Modifier facture de fournisseur',
+ 'Every' => 'Chaque',
+ 'Exch' => 'Change',
+ 'Exchange Rate' => 'Taux de change',
+ 'Exchange rate for payment missing!' => 'Taux de change manquant pour le paiement!',
+ 'Exchange rate missing!' => 'Taux de change manquant!',
+ 'Extended' => 'Prix total',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Fév.',
+ 'February' => 'Février',
+ 'For' => 'Pour',
+ 'Group' => 'Groupe',
+ 'In-line' => 'En ligne',
+ 'Include Payment' => 'Inclure paiement',
+ 'Internal Notes' => 'Notes internes',
+ 'Invoice' => 'Facture',
+ 'Invoice Date' => 'Date de facturation',
+ 'Invoice Date missing!' => 'Date de facture manquante!',
+ 'Invoice Number' => 'Numéro de facture',
+ 'Invoice Number missing!' => 'Numéro de facture manquant!',
+ 'Invoice deleted!' => 'Facture supprimée!',
+ 'Item' => 'Article',
+ 'Item not on file!' => 'Objet non-listé!',
+ 'Jan' => 'Jan.',
+ 'January' => 'Janvier',
+ 'Jul' => 'Juill.',
+ 'July' => 'Juillet',
+ 'Jun' => 'Juin',
+ 'June' => 'Juin',
+ 'Language' => 'Langue',
+ 'Mar' => 'Mars',
+ 'March' => 'Mars',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Mémo',
+ 'Message' => 'Message',
+ 'Month(s)' => 'Mois',
+ 'Next Date' => 'Prochaine date',
+ 'Notes' => 'Notes',
+ 'Nov' => 'Nov.',
+ 'November' => 'Novembre',
+ 'Number' => 'Numéro',
+ 'Number missing in Row' => 'Numéro manquant dans ligne',
+ 'OH' => 'OH',
+ 'Oct' => 'Oct.',
+ 'October' => 'Octobre',
+ 'Order Date missing!' => 'Date de commande manquante!',
+ 'Order Number' => 'Numéro de commande',
+ 'Order Number missing!' => 'Numéro de commande manquant!',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Numéro de référence',
+ 'Packing List' => 'Liste d\'envoi',
+ 'Packing List Date missing!' => 'La liste d\'envoi n\'a pas de date!',
+ 'Packing List Number missing!' => 'Le numéro de la liste d\'envoi est manquant!',
+ 'Part' => 'Marchandise',
+ 'Payment date missing!' => 'Date de paiement manquante!',
+ 'Payments' => 'Paiements',
+ 'Phone' => 'Tél.',
+ 'Pick List' => 'Liste de sélection',
+ 'Post' => 'Enregistrer',
+ 'Post as new' => 'Enregistrer comme nouveau',
+ 'Postscript' => 'Postcript',
+ 'Price' => 'Prix',
+ 'Print' => 'Imprimer',
+ 'Printed' => 'Imprimé',
+ 'Project' => 'Projet',
+ 'Project not on file!' => 'Projet absent du fichier!',
+ 'Purchase Order' => 'Commande d\'achat',
+ 'Qty' => 'Qté',
+ 'Queue' => 'File d\'attente',
+ 'Queued' => 'Mis en file d\'attente',
+ 'Quotation' => 'Devis',
+ 'Quotation Date missing!' => 'Date de devis manqante!',
+ 'Quotation Number missing!' => 'Numéro de devis manquant!',
+ 'Recd' => 'Reçu',
+ 'Record in' => 'Enregistrer dans',
+ 'Recurring Transaction' => 'Transaction périodique',
+ 'Reference' => 'Référence',
+ 'Remaining' => 'Restant',
+ 'Repeat' => 'Répéter',
+ 'Required by' => 'Requis pour',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Commande de vente',
+ 'Save Schedule' => 'Enregistrer transaction planifiée',
+ 'Schedule' => 'Planification',
+ 'Scheduled' => 'Planifié',
+ 'Screen' => 'Écran',
+ 'Select from one of the names below' => 'Sélectionner un des noms ci-dessous',
+ 'Select from one of the projects below' => 'Sélectionner un des projets ci-dessous',
+ 'Select items' => 'Sélectionner éléments',
+ 'Select txt, postscript or PDF!' => 'Sélectionner Txt, Postscript ou PDF!',
+ 'Sep' => 'Sept.',
+ 'September' => 'Septembre',
+ 'Serial No.' => 'N° série',
+ 'Service' => 'Prestation de service',
+ 'Ship' => 'Expédier',
+ 'Ship to' => 'Expédier à',
+ 'Shipping Address' => 'Adresse d\'envoi',
+ 'Source' => 'Source',
+ 'Startdate' => 'Date de début',
+ 'State/Province' => 'Région/État',
+ 'Subject' => 'Objet',
+ 'Subtotal' => 'Sous total',
+ 'Tax Included' => 'Taxe incluse',
+ 'Text' => 'Texte',
+ 'To' => 'À',
+ 'Total' => 'Total',
+ 'Translation not on file!' => 'Pas de traduction dans le fichier',
+ 'Unit' => 'Unité',
+ 'Update' => 'Mettre à jour',
+ 'Vendor' => 'Fournisseur',
+ 'Vendor Number' => 'Numéro de fournisseur',
+ 'Vendor missing!' => 'Fournisseur manquant!',
+ 'Vendor not on file!' => 'Fournisseur absent du fichier!',
+ 'Warning!' => 'Attention!',
+ 'Week(s)' => 'Semaine(s)',
+ 'What type of item is this?' => 'De quel type est cet objet?',
+ 'Work Order' => 'Fiche de traitement',
+ 'Year(s)' => 'Année(s)',
+ 'Yes' => 'Oui',
+ 'You are posting an existing transaction!' => 'Vous enregistrez une transaction existante!',
+ 'You are printing and posting an existing transaction!' => 'Vous imprimez et enregistrez une transaction existante!',
+ 'You are printing and saving an existing order' => 'Vous imprimez et enregistrez une commande existante!',
+ 'You are printing and saving an existing quotation' => 'Vous imprimez et enregistrez un devis existant!',
+ 'You are saving an existing order' => 'Vous enregistrez une commande existante',
+ 'You are saving an existing quotation' => 'Vous enregistrez un devis existant',
+ 'Zip/Postal Code' => 'Code postal',
+ 'ea' => 'pièce(s)',
+ 'for' => 'pour',
+ 'posted!' => 'enregistré!',
+ 'sent' => 'envoyé',
+ 'time(s)' => 'temps',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'continuer' => 'continue',
+ 'supprimer' => 'delete',
+ 'effacer_transaction_planifiée' => 'delete_schedule',
+ 'enregistrer' => 'post',
+ 'enregistrer_comme_nouveau' => 'post_as_new',
+ 'commande_d\'achat' => 'purchase_order',
+ 'enregistrer_transaction_planifiée' => 'save_schedule',
+ 'planification' => 'schedule',
+ 'mettre_à_jour' => 'update',
+ 'oui' => 'yes',
+};
+
+1;
+
diff --git a/locale/be_fr/is b/locale/be_fr/is
new file mode 100755
index 00000000..cd390334
--- /dev/null
+++ b/locale/be_fr/is
@@ -0,0 +1,271 @@
+$self{texts} = {
+ 'Account' => 'Compte',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Add Purchase Order' => 'Établir commande d\'achat',
+ 'Add Quotation' => 'Établir devis',
+ 'Add Request for Quotation' => 'Établir demande de devis',
+ 'Add Sales Invoice' => 'Établir facture de vente',
+ 'Add Sales Order' => 'Établir commande de vente',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Montant',
+ 'Apr' => 'Avril',
+ 'April' => 'Avril',
+ 'Are you sure you want to delete Invoice Number' => 'Êtes-vous sûr de vouloir supprimer la facture n°',
+ 'Attachment' => 'Pièce jointe',
+ 'Aug' => 'Août',
+ 'August' => 'Août',
+ 'Bcc' => 'Copie cachée',
+ 'Billing Address' => 'Adresse de facturation',
+ 'Bin' => 'Lieu stockage',
+ 'Bin List' => 'Liste des emplacements',
+ 'Business' => 'Type d\'affaire',
+ 'Cannot delete invoice!' => 'Impossible de supprimer la facture!',
+ 'Cannot post invoice for a closed period!' => 'Impossible d\'enregistrer la facture sur un exercice clos!',
+ 'Cannot post invoice!' => 'Impossible d\'enregistrer la facture!',
+ 'Cannot post payment for a closed period!' => 'Impossible d\'enregistrer le paiement sur un exercice clos!',
+ 'Cc' => 'Copie',
+ 'City' => 'Ville',
+ 'Company Name' => 'Nom de société',
+ 'Confirm!' => 'Confirmer!',
+ 'Contact' => 'Contact',
+ 'Continue' => 'Continuer',
+ 'Copies' => 'Copies',
+ 'Country' => 'Pays',
+ 'Credit Limit' => 'Encours autorisé',
+ 'Currency' => 'Devise',
+ 'Customer' => 'Client',
+ 'Customer Number' => 'Numéro de client',
+ 'Customer missing!' => 'Client manquant!',
+ 'Customer not on file!' => 'Client absent du fichier!',
+ 'Date' => 'Date',
+ 'Day(s)' => 'Jour(s)',
+ 'Dec' => 'Déc.',
+ 'December' => 'Décembre',
+ 'Delete' => 'Supprimer',
+ 'Delete Schedule' => 'Effacer transaction planifiée',
+ 'Delivery Date' => 'Date de livraison',
+ 'Department' => 'Service',
+ 'Description' => 'Description',
+ 'Due Date' => 'Échéance',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Adresse e-mail manquante!',
+ 'E-mail message' => 'Message e-mail',
+ 'E-mailed' => 'E-mail envoyé',
+ 'Edit Sales Invoice' => 'Modifier facture de vente',
+ 'Every' => 'Chaque',
+ 'Exch' => 'Change',
+ 'Exchange Rate' => 'Taux de change',
+ 'Exchange rate for payment missing!' => 'Taux de change manquant pour le paiement!',
+ 'Exchange rate missing!' => 'Taux de change manquant!',
+ 'Extended' => 'Prix total',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Fév.',
+ 'February' => 'Février',
+ 'For' => 'Pour',
+ 'Group' => 'Groupe',
+ 'In-line' => 'En ligne',
+ 'Include Payment' => 'Inclure paiement',
+ 'Internal Notes' => 'Notes internes',
+ 'Invoice' => 'Facture',
+ 'Invoice Date' => 'Date de facturation',
+ 'Invoice Date missing!' => 'Date de facture manquante!',
+ 'Invoice Number' => 'Numéro de facture',
+ 'Invoice Number missing!' => 'Numéro de facture manquant!',
+ 'Invoice deleted!' => 'Facture supprimée!',
+ 'Item' => 'Article',
+ 'Item not on file!' => 'Objet non-listé!',
+ 'Jan' => 'Jan.',
+ 'January' => 'Janvier',
+ 'Jul' => 'Juill.',
+ 'July' => 'Juillet',
+ 'Jun' => 'Juin',
+ 'June' => 'Juin',
+ 'Mar' => 'Mars',
+ 'March' => 'Mars',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Mémo',
+ 'Message' => 'Message',
+ 'Month(s)' => 'Mois',
+ 'Next Date' => 'Prochaine date',
+ 'Notes' => 'Notes',
+ 'Nov' => 'Nov.',
+ 'November' => 'Novembre',
+ 'Number' => 'Numéro',
+ 'Number missing in Row' => 'Numéro manquant dans ligne',
+ 'OH' => 'OH',
+ 'Oct' => 'Oct.',
+ 'October' => 'Octobre',
+ 'Order Date missing!' => 'Date de commande manquante!',
+ 'Order Number' => 'Numéro de commande',
+ 'Order Number missing!' => 'Numéro de commande manquant!',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Numéro de référence',
+ 'Packing List' => 'Liste d\'envoi',
+ 'Packing List Date missing!' => 'La liste d\'envoi n\'a pas de date!',
+ 'Packing List Number missing!' => 'Le numéro de la liste d\'envoi est manquant!',
+ 'Part' => 'Marchandise',
+ 'Payment date missing!' => 'Date de paiement manquante!',
+ 'Payments' => 'Paiements',
+ 'Phone' => 'Tél.',
+ 'Pick List' => 'Liste de sélection',
+ 'Post' => 'Enregistrer',
+ 'Post as new' => 'Enregistrer comme nouveau',
+ 'Postscript' => 'Postcript',
+ 'Price' => 'Prix',
+ 'Print' => 'Imprimer',
+ 'Print and Post' => 'Imprimer et imputer',
+ 'Print and Post as new' => 'Imprimer et enregister comme nouveau',
+ 'Printed' => 'Imprimé',
+ 'Project' => 'Projet',
+ 'Project not on file!' => 'Projet absent du fichier!',
+ 'Purchase Order' => 'Commande d\'achat',
+ 'Qty' => 'Qté',
+ 'Queue' => 'File d\'attente',
+ 'Queued' => 'Mis en file d\'attente',
+ 'Quotation' => 'Devis',
+ 'Quotation Date missing!' => 'Date de devis manqante!',
+ 'Quotation Number missing!' => 'Numéro de devis manquant!',
+ 'Recd' => 'Reçu',
+ 'Record in' => 'Enregistrer dans',
+ 'Recurring Transaction' => 'Transaction périodique',
+ 'Reference' => 'Référence',
+ 'Remaining' => 'Restant',
+ 'Repeat' => 'Répéter',
+ 'Required by' => 'Requis pour',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Commande de vente',
+ 'Salesperson' => 'Vendeur',
+ 'Save Schedule' => 'Enregistrer transaction planifiée',
+ 'Schedule' => 'Planification',
+ 'Scheduled' => 'Planifié',
+ 'Screen' => 'Écran',
+ 'Select a Printer!' => 'Sélectionner une imprimante!',
+ 'Select from one of the names below' => 'Sélectionner un des noms ci-dessous',
+ 'Select from one of the projects below' => 'Sélectionner un des projets ci-dessous',
+ 'Select items' => 'Sélectionner éléments',
+ 'Select postscript or PDF!' => 'Sélectionner Postscript ou PDF!',
+ 'Select txt, postscript or PDF!' => 'Sélectionner Txt, Postscript ou PDF!',
+ 'Sep' => 'Sept.',
+ 'September' => 'Septembre',
+ 'Serial No.' => 'N° série',
+ 'Service' => 'Prestation de service',
+ 'Ship' => 'Expédier',
+ 'Ship to' => 'Expédier à',
+ 'Ship via' => 'Expédier via',
+ 'Shipping Address' => 'Adresse d\'envoi',
+ 'Shipping Point' => 'Expéditeur',
+ 'Source' => 'Source',
+ 'Startdate' => 'Date de début',
+ 'State/Province' => 'Région/État',
+ 'Subject' => 'Objet',
+ 'Subtotal' => 'Sous total',
+ 'Tax Included' => 'Taxe incluse',
+ 'Text' => 'Texte',
+ 'To' => 'À',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Escompte commercial',
+ 'Translation not on file!' => 'Pas de traduction dans le fichier',
+ 'Unit' => 'Unité',
+ 'Update' => 'Mettre à jour',
+ 'Vendor Number' => 'Numéro de fournisseur',
+ 'Vendor not on file!' => 'Fournisseur absent du fichier!',
+ 'Warning!' => 'Attention!',
+ 'Week(s)' => 'Semaine(s)',
+ 'What type of item is this?' => 'De quel type est cet objet?',
+ 'Work Order' => 'Fiche de traitement',
+ 'Year(s)' => 'Année(s)',
+ 'Yes' => 'Oui',
+ 'You are posting an existing transaction!' => 'Vous enregistrez une transaction existante!',
+ 'You are printing and posting an existing transaction!' => 'Vous imprimez et enregistrez une transaction existante!',
+ 'You are printing and saving an existing order' => 'Vous imprimez et enregistrez une commande existante!',
+ 'You are printing and saving an existing quotation' => 'Vous imprimez et enregistrez un devis existant!',
+ 'You are saving an existing order' => 'Vous enregistrez une commande existante',
+ 'You are saving an existing quotation' => 'Vous enregistrez un devis existant',
+ 'Zip/Postal Code' => 'Code postal',
+ 'ea' => 'pièce(s)',
+ 'for' => 'pour',
+ 'posted!' => 'enregistré!',
+ 'sent' => 'envoyé',
+ 'time(s)' => 'temps',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'continuer' => 'continue',
+ 'supprimer' => 'delete',
+ 'effacer_transaction_planifiée' => 'delete_schedule',
+ 'e_mail' => 'e_mail',
+ 'enregistrer' => 'post',
+ 'enregistrer_comme_nouveau' => 'post_as_new',
+ 'imprimer' => 'print',
+ 'imprimer_et_imputer' => 'print_and_post',
+ 'imprimer_et_enregister_comme_nouveau' => 'print_and_post_as_new',
+ 'commande_de_vente' => 'sales_order',
+ 'enregistrer_transaction_planifiée' => 'save_schedule',
+ 'planification' => 'schedule',
+ 'expédier_à' => 'ship_to',
+ 'mettre_à_jour' => 'update',
+ 'oui' => 'yes',
+};
+
+1;
+
diff --git a/locale/be_fr/jc b/locale/be_fr/jc
new file mode 100755
index 00000000..1caaed1b
--- /dev/null
+++ b/locale/be_fr/jc
@@ -0,0 +1,155 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Add Stores Card' => 'Ajouter fiche magasin',
+ 'Add Time Card' => 'Ajouter fiche de travail',
+ 'Allocated' => 'Attribué',
+ 'Amount' => 'Montant',
+ 'Are you sure you want to delete time card for' => 'Êtes-vous sûr de vouloir supprimer la fiche de travail pour',
+ 'Cannot add stores card for a completed job!' => 'Impossible d\'enregistrer une fiche de magasin liée à un travail accompli!',
+ 'Cannot add time card for a completed job!' => 'Impossible d\'enregistrer une fiche de travail liée à un travail accompli!',
+ 'Cannot change stores card for a completed job!' => 'Impossible de modifier une fiche de magasin liée à un travail accompli!',
+ 'Cannot change time card for a completed job!' => 'Impossible de modifier une fiche de travail liée à un travail accompli!',
+ 'Cannot delete time card!' => 'Impossbile d\'effacer la fiche de travail!',
+ 'Cannot save stores card for a closed period!' => 'Impossible d\'enregister une fiche de magasin sur un exercice clos!',
+ 'Cannot save stores card!' => 'Impossible d\'enregistrer la fiche de magasin!',
+ 'Cannot save time card for a closed period!' => 'Impossible d\'enregister une fiche de travail sur un exercice clos!',
+ 'Cannot save time card!' => 'Impossible d\'enregistrer la fiche de travail!',
+ 'Chargeable' => 'À facturer',
+ 'Clocked' => 'Pointé',
+ 'Closed' => 'Clôturé',
+ 'Confirm!' => 'Confirmer!',
+ 'Continue' => 'Continuer',
+ 'Cost' => 'Coût',
+ 'Current' => 'En cours',
+ 'Date' => 'Date',
+ 'Date missing!' => 'Date manquante!',
+ 'Date worked' => 'Date de travail',
+ 'Delete' => 'Supprimer',
+ 'Description' => 'Description',
+ 'Edit Time Card' => 'Modifier fiche de travail',
+ 'Employee' => 'Employé',
+ 'Friday' => 'Vendredi',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Inclure dans l\'état',
+ 'Job Description' => 'Description travail',
+ 'Job Name' => 'Nom de travail',
+ 'Job Number' => 'Numéro de travail',
+ 'Job Number missing!' => 'Numéro de travail manquant!',
+ 'Labor Code' => 'Compte prestation',
+ 'Labor Code missing!' => 'Compte prestation manquant!',
+ 'Monday' => 'Lundi',
+ 'Month' => 'Mois',
+ 'No Employees on file!' => 'Aucun employé dans la base de données!',
+ 'No Labor codes on file!' => 'Aucun compte de prestation dans la base de données!',
+ 'No Parts on file!' => 'Aucune marchandise dans la base de données!',
+ 'No Services on file!' => 'Aucune prestation dans la base de données!',
+ 'No open Jobs!' => 'Aucun travail ouvert!',
+ 'No open Projects!' => 'Aucun projet ouvert!',
+ 'Non-chargeable' => 'Sans facture',
+ 'Notes' => 'Notes',
+ 'Open' => 'Ouvert',
+ 'PDF' => 'PDF',
+ 'Part Number' => 'Numéro marchandise',
+ 'Period' => 'Période',
+ 'Postscript' => 'Postcript',
+ 'Print' => 'Imprimer',
+ 'Print and Save' => 'Imprimer et sauver',
+ 'Print and Save as new' => 'Imprimer et enregister comme nouveau',
+ 'Printed' => 'Imprimé',
+ 'Project Name' => 'Nom de projet',
+ 'Project Number' => 'Numéro de projet',
+ 'Project Number missing!' => 'Numéro du projet manquant!',
+ 'Project/Job Name' => 'Nom de projet/travail',
+ 'Project/Job Number' => 'Numéro de projet/travail',
+ 'Qty' => 'Qté',
+ 'Quarter' => 'Trimestre',
+ 'Queue' => 'File d\'attente',
+ 'Queued' => 'Mis en file d\'attente',
+ 'Saturday' => 'Samedi',
+ 'Save' => 'Enregistrer',
+ 'Save as new' => 'Enregistrer comme nouveau',
+ 'Screen' => 'Écran',
+ 'Select a Printer!' => 'Sélectionner une imprimante!',
+ 'Select postscript or PDF!' => 'Sélectionner Postscript ou PDF!',
+ 'Service Code' => 'Compte de prestation',
+ 'Service Code missing!' => 'Compte de prestation manquant!',
+ 'Service/Labor Code' => 'Compte de prestation/coût de production',
+ 'Startdate' => 'Date de début',
+ 'Stores Card' => 'Fiche de magasin',
+ 'Stores Card saved!' => 'Fiche de magasin enregistrée',
+ 'Stores Cards' => 'Fiches de magasins',
+ 'Subtotal' => 'Sous total',
+ 'Sunday' => 'Dimanche',
+ 'Thursday' => 'Jeudi',
+ 'Time' => 'Temps',
+ 'Time Card' => 'Fiche de travail',
+ 'Time Card deleted!' => 'Fiche de travail effacée!',
+ 'Time Card saved!' => 'Fiche de travil enregistrée!',
+ 'Time Cards' => 'Fiches de travail',
+ 'Time In' => 'Temps de début',
+ 'Time Out' => 'Temps de fin',
+ 'To' => 'À',
+ 'Total' => 'Total',
+ 'Tuesday' => 'Mardi',
+ 'Update' => 'Mettre à jour',
+ 'Warning!' => 'Attention!',
+ 'Wednesday' => 'Mercredi',
+ 'Year' => 'Année',
+ 'Yes' => 'Oui',
+ 'You are printing and saving an existing transaction!' => 'Vous imprimez et enregistrez une transaction existante!',
+ 'You are saving an existing transaction!' => 'Vous enregistrez une transaction existante!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'ajouter_fiche_magasin' => 'add_stores_card',
+ 'ajouter_fiche_de_travail' => 'add_time_card',
+ 'continuer' => 'continue',
+ 'supprimer' => 'delete',
+ 'imprimer' => 'print',
+ 'imprimer_et_sauver' => 'print_and_save',
+ 'imprimer_et_enregister_comme_nouveau' => 'print_and_save_as_new',
+ 'enregistrer' => 'save',
+ 'enregistrer_comme_nouveau' => 'save_as_new',
+ 'mettre_à_jour' => 'update',
+ 'oui' => 'yes',
+};
+
+1;
+
diff --git a/locale/be_fr/locales.pl b/locale/be_fr/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/be_fr/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/be_fr/login b/locale/be_fr/login
new file mode 100755
index 00000000..6c4e7653
--- /dev/null
+++ b/locale/be_fr/login
@@ -0,0 +1,25 @@
+$self{texts} = {
+ 'Access Denied!' => 'Accès interdit!',
+ 'Company' => 'Société',
+ 'Continue' => 'Continuer',
+ 'Dataset is newer than version!' => 'Fichier de données plus récent que le logiciel!',
+ 'Incorrect Dataset version!' => 'Fichier de données incorrect!',
+ 'Login' => 'Login',
+ 'Name' => 'Nom',
+ 'Password' => 'Mot de passe',
+ 'Upgrading to Version' => 'Mise à jour à la version',
+ 'Version' => 'Version',
+ 'You did not enter a name!' => 'Vous n\'avez pas saisi de nom!',
+ 'done' => 'fait',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ 'login' => 'login',
+};
+
+1;
+
diff --git a/locale/be_fr/menu b/locale/be_fr/menu
new file mode 100755
index 00000000..c02ddbbe
--- /dev/null
+++ b/locale/be_fr/menu
@@ -0,0 +1,142 @@
+$self{texts} = {
+ 'AP' => 'Dépenses',
+ 'AP Aging' => 'Dépenses exigibles',
+ 'AP Transaction' => 'Écriture dépenses',
+ 'AR' => 'Recettes',
+ 'AR Aging' => 'Recettes exigibles',
+ 'AR Transaction' => 'Écriture recettes',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Add Account' => 'Ajouter compte',
+ 'Add Assembly' => 'Ajouter produit',
+ 'Add Business' => 'Ajouter type d\'affaire',
+ 'Add Customer' => 'Ajouter client',
+ 'Add Department' => 'Ajouter service',
+ 'Add Employee' => 'Ajouter employé',
+ 'Add GIFI' => 'Ajouter code d\'identification comptable ou fiscale',
+ 'Add Group' => 'Ajouter groupe',
+ 'Add Labor/Overhead' => 'Ajouter coût de production',
+ 'Add Language' => 'Ajouter langue',
+ 'Add Part' => 'Ajouter marchandise',
+ 'Add Pricegroup' => 'Ajouter groupe de prix',
+ 'Add Project' => 'Ajouter projet',
+ 'Add SIC' => 'Ajouter code secteur économique',
+ 'Add Service' => 'Ajouter prestation',
+ 'Add Time Card' => 'Ajouter fiche de travail',
+ 'Add Transaction' => 'Saisie d\'écriture',
+ 'Add Vendor' => 'Ajouter fournisseur',
+ 'Add Warehouse' => 'Ajouter entrepôt',
+ 'All Items' => 'Tout objet',
+ 'Assemblies' => 'Produits finis',
+ 'Audit Control' => 'Clôture périodique',
+ 'Backup' => 'Sauvegarder',
+ 'Balance Sheet' => 'Bilan',
+ 'Batch Printing' => 'Impression en masse',
+ 'Bin List' => 'Liste des emplacements',
+ 'Bin Lists' => 'Liste des emplacements',
+ 'Cash' => 'Financier',
+ 'Chart of Accounts' => 'Plan Comptable',
+ 'Check' => 'Chèque',
+ 'Components' => 'Composants',
+ 'Customers' => 'Clients',
+ 'Defaults' => 'Valeurs par défaut',
+ 'Departments' => 'Services',
+ 'Description' => 'Description',
+ 'Employees' => 'Employés',
+ 'General Ledger' => 'Grand-livre',
+ 'Generate' => 'Générer',
+ 'Goods & Services' => 'Articles & Prestations',
+ 'Groups' => 'Groupes',
+ 'HR' => 'Ressources humaines',
+ 'HTML Templates' => 'Squelettes HTML',
+ 'History' => 'Historique',
+ 'Income Statement' => 'Compte de résultat',
+ 'Invoice' => 'Facture',
+ 'LaTeX Templates' => 'Squelettes LaTeX',
+ 'Labor/Overhead' => 'Coût de production',
+ 'Language' => 'Langue',
+ 'List Accounts' => 'Liste des comptes',
+ 'List Businesses' => 'Liste types d\'affaire',
+ 'List Departments' => 'Liste des services',
+ 'List GIFI' => 'Afficher la liste des codes d\'identification comptable ou fiscale',
+ 'List Languages' => 'Liste des langues',
+ 'List Projects' => 'Liste des projets',
+ 'List SIC' => 'Liste des codes secteur économique',
+ 'List Warehouses' => 'Liste des entrepôts',
+ 'Logout' => 'Déconnexion',
+ 'New Window' => 'Nouvelle fenêtre',
+ 'Non-taxable' => 'Non imposable',
+ 'Open' => 'Ouvert',
+ 'Order Entry' => 'Commandes',
+ 'Outstanding' => 'En retard',
+ 'POS' => 'Point de vente',
+ 'POS Invoice' => 'Ticket de caisse',
+ 'Packing List' => 'Liste d\'envoi',
+ 'Packing Lists' => 'Listes d\'envoi',
+ 'Parts' => 'Marchandises',
+ 'Payment' => 'Paiement',
+ 'Payments' => 'Paiements',
+ 'Pick List' => 'Liste de sélection',
+ 'Pick Lists' => 'Liste de sélection',
+ 'Preferences' => 'Préférences',
+ 'Pricegroups' => 'Groupes de prix',
+ 'Print' => 'Imprimer',
+ 'Projects' => 'Projets',
+ 'Purchase Order' => 'Commande d\'achat',
+ 'Purchase Orders' => 'Commandes d\'achat',
+ 'Quotation' => 'Devis',
+ 'Quotations' => 'Devis',
+ 'RFQ' => 'Demande de devis',
+ 'RFQs' => 'Demandes de devis',
+ 'Receipt' => 'Reçu',
+ 'Receipts' => 'Reçus',
+ 'Receive' => 'Réception',
+ 'Reconciliation' => 'Rapprochement',
+ 'Recurring Transactions' => 'Transactions périodiques',
+ 'Reports' => 'Rapports',
+ 'Requirements' => 'Exigences',
+ 'SIC' => 'Code secteur économique',
+ 'Sale' => 'Vente',
+ 'Sales Invoice' => 'Facture de vente',
+ 'Sales Invoices' => 'Factures de vente',
+ 'Sales Order' => 'Commande de vente',
+ 'Sales Orders' => 'Commandes de vente',
+ 'Save to File' => 'Enregistrer dans un fichier',
+ 'Search' => 'Recherche',
+ 'Send by E-Mail' => 'Envoyer par e-mail',
+ 'Services' => 'Prestations de services',
+ 'Ship' => 'Expédier',
+ 'Shipping' => 'Expédition',
+ 'Statement' => 'Relevé',
+ 'Stock Assembly' => 'Stock de produits',
+ 'Stylesheet' => 'Feuille de style',
+ 'System' => 'Système',
+ 'Tax collected' => 'Taxe collectée',
+ 'Tax paid' => 'Taxe payée',
+ 'Text Templates' => 'Squelettes texte',
+ 'Time Card' => 'Fiche de travail',
+ 'Time Cards' => 'Fiches de travail',
+ 'Transactions' => 'Mouvements',
+ 'Transfer' => 'Transfert',
+ 'Transfer Inventory' => 'Transfert inventaire',
+ 'Translations' => 'Traductions',
+ 'Trial Balance' => 'Balance Globale',
+ 'Type of Business' => 'Type d\'affaire',
+ 'Vendor Invoice' => 'Facture d\'achat',
+ 'Vendors' => 'Fournisseurs',
+ 'Version' => 'Version',
+ 'Warehouses' => 'Entrepôts',
+ 'Work Order' => 'Fiche de traitement',
+ 'Work Orders' => 'Fiche de traitement',
+ 'Yearend' => 'Écriture de fin d\'exercice',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/be_fr/oe b/locale/be_fr/oe
new file mode 100755
index 00000000..358e8b65
--- /dev/null
+++ b/locale/be_fr/oe
@@ -0,0 +1,378 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Add Exchange Rate' => 'Ajouter taux de change',
+ 'Add Purchase Order' => 'Établir commande d\'achat',
+ 'Add Quotation' => 'Établir devis',
+ 'Add Request for Quotation' => 'Établir demande de devis',
+ 'Add Sales Invoice' => 'Établir facture de vente',
+ 'Add Sales Order' => 'Établir commande de vente',
+ 'Add Vendor Invoice' => 'Établir facture d\'achat',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Montant',
+ 'Apr' => 'Avril',
+ 'April' => 'Avril',
+ 'Are you sure you want to delete Order Number' => 'Êtes vous sûr de vouloir supprimer la commande n°',
+ 'Are you sure you want to delete Quotation Number' => 'Êtes vous sûr de vouloir supprimer le devis n°',
+ 'Attachment' => 'Pièce jointe',
+ 'Aug' => 'Août',
+ 'August' => 'Août',
+ 'Bcc' => 'Copie cachée',
+ 'Billing Address' => 'Adresse de facturation',
+ 'Bin' => 'Lieu stockage',
+ 'Bin List' => 'Liste des emplacements',
+ 'Business' => 'Type d\'affaire',
+ 'C' => 'C',
+ 'Cannot delete order!' => 'Impossible de supprimer la commande!',
+ 'Cannot delete quotation!' => 'Impossible de supprimer le devis!',
+ 'Cannot save order!' => 'Impossible d\'enregistrer la commande!',
+ 'Cannot save quotation!' => 'Impossible d\'enregistrer le devis!',
+ 'Cc' => 'Copie',
+ 'City' => 'Ville',
+ 'Closed' => 'Clôturé',
+ 'Company Name' => 'Nom de société',
+ 'Confirm!' => 'Confirmer!',
+ 'Consolidate Orders' => 'Consolider commandes',
+ 'Consolidate Purchase Orders' => 'Consolider commandes d\'achats',
+ 'Consolidate Sales Orders' => 'Consilder commandes de ventes',
+ 'Contact' => 'Contact',
+ 'Continue' => 'Continuer',
+ 'Copies' => 'Copies',
+ 'Cost' => 'Coût',
+ 'Could not save!' => 'Enregistrement impossible!',
+ 'Could not transfer Inventory!' => 'Impossible de transférer l\'inventaire!',
+ 'Country' => 'Pays',
+ 'Credit Limit' => 'Encours autorisé',
+ 'Curr' => 'Dev.',
+ 'Currency' => 'Devise',
+ 'Current' => 'En cours',
+ 'Customer' => 'Client',
+ 'Customer Number' => 'Numéro de client',
+ 'Customer missing!' => 'Client manquant!',
+ 'Customer not on file!' => 'Client absent du fichier!',
+ 'Date' => 'Date',
+ 'Date Received' => 'Date de réception',
+ 'Date received missing!' => 'Date de réception manquante!',
+ 'Day(s)' => 'Jour(s)',
+ 'Dec' => 'Déc.',
+ 'December' => 'Décembre',
+ 'Delete' => 'Supprimer',
+ 'Delete Schedule' => 'Effacer transaction planifiée',
+ 'Delivery Date' => 'Date de livraison',
+ 'Department' => 'Service',
+ 'Description' => 'Description',
+ 'Done' => 'Fait!',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Adresse e-mail manquante!',
+ 'E-mail message' => 'Message e-mail',
+ 'E-mailed' => 'E-mail envoyé',
+ 'Edit Purchase Order' => 'Modifier commande d\'achat',
+ 'Edit Quotation' => 'Modifier devis',
+ 'Edit Request for Quotation' => 'Modifier demande de devis',
+ 'Edit Sales Order' => 'Modifier commande de vente',
+ 'Employee' => 'Employé',
+ 'Every' => 'Chaque',
+ 'Exchange Rate' => 'Taux de change',
+ 'Exchange rate missing!' => 'Taux de change manquant!',
+ 'Extended' => 'Prix total',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Fév.',
+ 'February' => 'Février',
+ 'For' => 'Pour',
+ 'From' => 'De',
+ 'From Warehouse' => 'Du entrepôt',
+ 'Generate Orders' => 'Générer commandes',
+ 'Generate Purchase Orders' => 'Générer commandes d\'achat',
+ 'Generate Purchase Orders from Sales Order' => 'Générer commandes d\'achat d\'une commande de vente',
+ 'Generate Sales Order' => 'Générer commandes de vente',
+ 'Generate Sales Order from Purchase Orders' => 'Générer commandes de vente d\'une commande d\'achat',
+ 'Group' => 'Groupe',
+ 'ID' => 'ID',
+ 'In-line' => 'En ligne',
+ 'Include Payment' => 'Inclure paiement',
+ 'Include in Report' => 'Inclure dans l\'état',
+ 'Internal Notes' => 'Notes internes',
+ 'Inventory saved!' => 'Inventaire enregistré!',
+ 'Inventory transferred!' => 'Inventaire transféré!',
+ 'Invoice' => 'Facture',
+ 'Invoice Date missing!' => 'Date de facture manquante!',
+ 'Invoice Number missing!' => 'Numéro de facture manquant!',
+ 'Item' => 'Article',
+ 'Item not on file!' => 'Objet non-listé!',
+ 'Jan' => 'Jan.',
+ 'January' => 'Janvier',
+ 'Jul' => 'Juill.',
+ 'July' => 'Juillet',
+ 'Jun' => 'Juin',
+ 'June' => 'Juin',
+ 'Lead' => 'Délai',
+ 'Manager' => 'Gestionnaire',
+ 'Mar' => 'Mars',
+ 'March' => 'Mars',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Message' => 'Message',
+ 'Month' => 'Mois',
+ 'Month(s)' => 'Mois',
+ 'Next Date' => 'Prochaine date',
+ 'No.' => 'N°',
+ 'Notes' => 'Notes',
+ 'Nothing entered!' => 'Rien n\'a été saisi!',
+ 'Nothing selected!' => 'Pas de sélection!',
+ 'Nothing to transfer!' => 'Rien à transférer!',
+ 'Nov' => 'Nov.',
+ 'November' => 'Novembre',
+ 'Number' => 'Numéro',
+ 'Number missing in Row' => 'Numéro manquant dans ligne',
+ 'O' => 'O',
+ 'OH' => 'OH',
+ 'Oct' => 'Oct.',
+ 'October' => 'Octobre',
+ 'Open' => 'Ouvert',
+ 'Order' => 'Commande',
+ 'Order Date' => 'Date de commande',
+ 'Order Date missing!' => 'Date de commande manquante!',
+ 'Order Number' => 'Numéro de commande',
+ 'Order Number missing!' => 'Numéro de commande manquant!',
+ 'Order deleted!' => 'Commande supprimée!',
+ 'Order generation failed!' => 'Génération commande échouée!',
+ 'Order saved!' => 'Commande enregistrée!',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Numéro de référence',
+ 'Packing List' => 'Liste d\'envoi',
+ 'Packing List Date missing!' => 'La liste d\'envoi n\'a pas de date!',
+ 'Packing List Number missing!' => 'Le numéro de la liste d\'envoi est manquant!',
+ 'Part' => 'Marchandise',
+ 'Part Number' => 'Numéro marchandise',
+ 'Period' => 'Période',
+ 'Phone' => 'Tél.',
+ 'Pick List' => 'Liste de sélection',
+ 'Postscript' => 'Postcript',
+ 'Price' => 'Prix',
+ 'Print' => 'Imprimer',
+ 'Print and Save' => 'Imprimer et sauver',
+ 'Print and Save as new' => 'Imprimer et enregister comme nouveau',
+ 'Printed' => 'Imprimé',
+ 'Project' => 'Projet',
+ 'Project not on file!' => 'Projet absent du fichier!',
+ 'Purchase Order' => 'Commande d\'achat',
+ 'Purchase Orders' => 'Commandes d\'achat',
+ 'Qty' => 'Qté',
+ 'Quarter' => 'Trimestre',
+ 'Queue' => 'File d\'attente',
+ 'Queued' => 'Mis en file d\'attente',
+ 'Quotation' => 'Devis',
+ 'Quotation ' => 'Devis ',
+ 'Quotation Date' => 'Date de devis',
+ 'Quotation Date missing!' => 'Date de devis manqante!',
+ 'Quotation Number' => 'Numéro de devis',
+ 'Quotation Number missing!' => 'Numéro de devis manquant!',
+ 'Quotation deleted!' => 'Devis effacé!',
+ 'Quotations' => 'Devis',
+ 'RFQ' => 'Demande de devis',
+ 'RFQ ' => 'Demande de devis ',
+ 'RFQ Number' => 'Numéro de demande de devis',
+ 'Recd' => 'Reçu',
+ 'Receive Merchandise' => 'Réception marchandise',
+ 'Recurring Transaction' => 'Transaction périodique',
+ 'Reference' => 'Référence',
+ 'Remaining' => 'Restant',
+ 'Repeat' => 'Répéter',
+ 'Req' => 'Exigence',
+ 'Request for Quotation' => 'Demande de devis',
+ 'Request for Quotations' => 'Demandes de devis',
+ 'Required by' => 'Requis pour',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Facture de vente',
+ 'Sales Order' => 'Commande de vente',
+ 'Sales Orders' => 'Commandes de vente',
+ 'Salesperson' => 'Vendeur',
+ 'Save' => 'Enregistrer',
+ 'Save Schedule' => 'Enregistrer transaction planifiée',
+ 'Save as new' => 'Enregistrer comme nouveau',
+ 'Schedule' => 'Planification',
+ 'Scheduled' => 'Planifié',
+ 'Screen' => 'Écran',
+ 'Select Vendor' => 'Sélectionner vendeur',
+ 'Select a Printer!' => 'Sélectionner une imprimante!',
+ 'Select from one of the names below' => 'Sélectionner un des noms ci-dessous',
+ 'Select from one of the projects below' => 'Sélectionner un des projets ci-dessous',
+ 'Select items' => 'Sélectionner éléments',
+ 'Select postscript or PDF!' => 'Sélectionner Postscript ou PDF!',
+ 'Select txt, postscript or PDF!' => 'Sélectionner Txt, Postscript ou PDF!',
+ 'Sep' => 'Sept.',
+ 'September' => 'Septembre',
+ 'Serial No.' => 'N° série',
+ 'Service' => 'Prestation de service',
+ 'Ship' => 'Expédier',
+ 'Ship Merchandise' => 'Expédier marchandise',
+ 'Ship to' => 'Expédier à',
+ 'Ship via' => 'Expédier via',
+ 'Shipping Address' => 'Adresse d\'envoi',
+ 'Shipping Date' => 'Date d\'expédition',
+ 'Shipping Date missing!' => 'Date d\'expédition manquante!',
+ 'Shipping Point' => 'Expéditeur',
+ 'Startdate' => 'Date de début',
+ 'State/Province' => 'Région/État',
+ 'Subject' => 'Objet',
+ 'Subtotal' => 'Sous total',
+ 'Tax' => 'Taxe',
+ 'Tax Included' => 'Taxe incluse',
+ 'Terms' => 'Crédit limité à',
+ 'Text' => 'Texte',
+ 'To' => 'À',
+ 'To Warehouse' => 'Vers entrepôt',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Escompte commercial',
+ 'Transfer' => 'Transfert',
+ 'Transfer Inventory' => 'Transfert inventaire',
+ 'Transfer from' => 'Transfert à partir',
+ 'Transfer to' => 'Transférer vers',
+ 'Translation not on file!' => 'Pas de traduction dans le fichier',
+ 'Unit' => 'Unité',
+ 'Update' => 'Mettre à jour',
+ 'Valid until' => 'Valable jusqu\'au',
+ 'Vendor' => 'Fournisseur',
+ 'Vendor Invoice' => 'Facture d\'achat',
+ 'Vendor Number' => 'Numéro de fournisseur',
+ 'Vendor missing!' => 'Fournisseur manquant!',
+ 'Vendor not on file!' => 'Fournisseur absent du fichier!',
+ 'Warehouse' => 'Entrepôt',
+ 'Warning!' => 'Attention!',
+ 'Week(s)' => 'Semaine(s)',
+ 'What type of item is this?' => 'De quel type est cet objet?',
+ 'Work Order' => 'Fiche de traitement',
+ 'Year' => 'Année',
+ 'Year(s)' => 'Année(s)',
+ 'Yes' => 'Oui',
+ 'You are posting an existing transaction!' => 'Vous enregistrez une transaction existante!',
+ 'You are printing and posting an existing transaction!' => 'Vous imprimez et enregistrez une transaction existante!',
+ 'You are printing and saving an existing order' => 'Vous imprimez et enregistrez une commande existante!',
+ 'You are printing and saving an existing quotation' => 'Vous imprimez et enregistrez un devis existant!',
+ 'You are saving an existing order' => 'Vous enregistrez une commande existante',
+ 'You are saving an existing quotation' => 'Vous enregistrez un devis existant',
+ 'Zip/Postal Code' => 'Code postal',
+ 'days' => 'jours',
+ 'ea' => 'pièce(s)',
+ 'for' => 'pour',
+ 'sent' => 'envoyé',
+ 'time(s)' => 'temps',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'consolider_commandes' => 'consolidate_orders',
+ 'continuer' => 'continue',
+ 'supprimer' => 'delete',
+ 'effacer_transaction_planifiée' => 'delete_schedule',
+ 'fait!' => 'done',
+ 'e_mail' => 'e_mail',
+ 'générer_commandes' => 'generate_orders',
+ 'générer_commandes_d\'achat' => 'generate_purchase_orders',
+ 'générer_commandes_de_vente' => 'generate_sales_order',
+ 'imprimer' => 'print',
+ 'imprimer_et_sauver' => 'print_and_save',
+ 'imprimer_et_enregister_comme_nouveau' => 'print_and_save_as_new',
+ 'commande_d\'achat' => 'purchase_order',
+ 'devis' => 'quotation',
+ 'devis_' => 'quotation_',
+ 'demande_de_devis' => 'rfq',
+ 'demande_de_devis_' => 'rfq_',
+ 'facture_de_vente' => 'sales_invoice',
+ 'commande_de_vente' => 'sales_order',
+ 'enregistrer' => 'save',
+ 'enregistrer_transaction_planifiée' => 'save_schedule',
+ 'enregistrer_comme_nouveau' => 'save_as_new',
+ 'planification' => 'schedule',
+ 'sélectionner_vendeur' => 'select_vendor',
+ 'expédier_à' => 'ship_to',
+ 'transfert' => 'transfer',
+ 'mettre_à_jour' => 'update',
+ 'facture_d\'achat' => 'vendor_invoice',
+ 'oui' => 'yes',
+};
+
+1;
+
diff --git a/locale/be_fr/pe b/locale/be_fr/pe
new file mode 100755
index 00000000..5956e46a
--- /dev/null
+++ b/locale/be_fr/pe
@@ -0,0 +1,166 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Active' => 'Actif',
+ 'Add' => 'Ajouter',
+ 'Add Group' => 'Ajouter groupe',
+ 'Add Job' => 'Ajouter travail',
+ 'Add Pricegroup' => 'Ajouter groupe de prix',
+ 'Add Project' => 'Ajouter projet',
+ 'Address' => 'Adresse',
+ 'All' => 'Tous',
+ 'Amount' => 'Montant',
+ 'As of' => 'Au',
+ 'Assembly' => 'Produit fini',
+ 'Assembly stocked!' => 'Produit stocké!',
+ 'Bin' => 'Lieu stockage',
+ 'Cannot stock Assembly!' => 'Impossible de stocker le produit fini!',
+ 'Completed' => 'Terminé',
+ 'Continue' => 'Continuer',
+ 'Current' => 'En cours',
+ 'Customer' => 'Client',
+ 'Customer missing!' => 'Client manquant!',
+ 'Customer not on file!' => 'Client absent du fichier!',
+ 'Date' => 'Date',
+ 'Delete' => 'Supprimer',
+ 'Description' => 'Description',
+ 'Description Translations' => 'Description traductions',
+ 'Detail' => 'Détail',
+ 'Edit Description Translations' => 'Modifier traductions description',
+ 'Edit Group' => 'Modifier groupe',
+ 'Edit Job' => 'Modifier travail',
+ 'Edit Pricegroup' => 'Modifier groupe de prix',
+ 'Edit Project' => 'Modifier projet',
+ 'Employee' => 'Employé',
+ 'Enddate' => 'Date de fin',
+ 'Failed to save order!' => 'Impossible d\'enregister la commande!',
+ 'From' => 'De',
+ 'Generate Sales Orders' => 'Générer commandes de ventes',
+ 'Group' => 'Groupe',
+ 'Group Translations' => 'Grouper traductions',
+ 'Group deleted!' => 'Groupe effacé!',
+ 'Group missing!' => 'Groupe absent!',
+ 'Group saved!' => 'Groupe enregistré!',
+ 'Groups' => 'Groupes',
+ 'Inactive' => 'Inactive',
+ 'Income' => 'Recettes',
+ 'Job' => 'Travail',
+ 'Job Number' => 'Numéro de travail',
+ 'Job deleted!' => 'Travail effacé!',
+ 'Job saved!' => 'Travail enregistré!',
+ 'Jobs' => 'Travaux',
+ 'Language' => 'Langue',
+ 'Languages not defined!' => 'Langues non définis!',
+ 'Link Accounts' => 'Lier comptes',
+ 'List Price' => 'Prix de revient',
+ 'Month' => 'Mois',
+ 'No open Projects!' => 'Aucun projet ouvert!',
+ 'Notes' => 'Notes',
+ 'Nothing selected!' => 'Pas de sélection!',
+ 'Number' => 'Numéro',
+ 'Orders generated!' => 'Commandes générées!',
+ 'Orphaned' => 'Orphelin',
+ 'Part Number' => 'Numéro marchandise',
+ 'Period' => 'Période',
+ 'Pricegroup' => 'Groupe de prix',
+ 'Pricegroup deleted!' => 'Groupe de prix supprimé!',
+ 'Pricegroup missing!' => 'Groupe de prix manquant!',
+ 'Pricegroup saved!' => 'Groupe de prix enregistré!',
+ 'Pricegroups' => 'Groupes de prix',
+ 'Production' => 'Production',
+ 'Project' => 'Projet',
+ 'Project Description Translations' => 'Traductions description de projet',
+ 'Project Number' => 'Numéro de projet',
+ 'Project deleted!' => 'Projet supprimé!',
+ 'Project saved!' => 'Projet enregistré!',
+ 'Projects' => 'Projets',
+ 'Qty' => 'Qté',
+ 'Quarter' => 'Trimestre',
+ 'Save' => 'Enregistrer',
+ 'Select Customer' => 'Séléctionner client',
+ 'Select from one of the names below' => 'Sélectionner un des noms ci-dessous',
+ 'Sell Price' => 'Prix de vente',
+ 'Service Code' => 'Compte de prestation',
+ 'Startdate' => 'Date de début',
+ 'Stock Finished Goods' => 'Produit fini stocké',
+ 'Summary' => 'Résumé',
+ 'Tax' => 'Taxe',
+ 'To' => 'À',
+ 'Transaction Dates' => 'Dates de transactions',
+ 'Translation' => 'Traduction',
+ 'Translation deleted!' => 'Traduction supprimée!',
+ 'Translations saved!' => 'Traductions enregistrées',
+ 'Unit' => 'Unité',
+ 'Update' => 'Mettre à jour',
+ 'Updated' => 'Mis à jour',
+ 'Vendor' => 'Fournisseur',
+ 'Vendor not on file!' => 'Fournisseur absent du fichier!',
+ 'Weight' => 'Poids',
+ 'Year' => 'Année',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'ajouter_groupe' => 'add_group',
+ 'ajouter_travail' => 'add_job',
+ 'ajouter_groupe_de_prix' => 'add_pricegroup',
+ 'ajouter_projet' => 'add_project',
+ 'continuer' => 'continue',
+ 'supprimer' => 'delete',
+ 'générer_commandes_de_ventes' => 'generate_sales_orders',
+ 'enregistrer' => 'save',
+ 'séléctionner_client' => 'select_customer',
+ 'mettre_à_jour' => 'update',
+};
+
+1;
+
diff --git a/locale/be_fr/pos b/locale/be_fr/pos
new file mode 100755
index 00000000..7b1e7a47
--- /dev/null
+++ b/locale/be_fr/pos
@@ -0,0 +1,81 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Add POS Invoice' => 'Saisie ticket de caisse',
+ 'Amount' => 'Montant',
+ 'Business' => 'Type d\'affaire',
+ 'Cannot post transaction!' => 'Impossible d\'enregistrer l\'écriture!',
+ 'Change' => 'Retour monnaie',
+ 'Continue' => 'Continuer',
+ 'Credit Limit' => 'Encours autorisé',
+ 'Currency' => 'Devise',
+ 'Current' => 'En cours',
+ 'Customer' => 'Client',
+ 'Customer missing!' => 'Client manquant!',
+ 'Delete' => 'Supprimer',
+ 'Department' => 'Service',
+ 'Description' => 'Description',
+ 'Edit POS Invoice' => 'Modifier ticket de caisse',
+ 'Exchange Rate' => 'Taux de change',
+ 'Exchange rate missing!' => 'Taux de change manquant!',
+ 'Extended' => 'Prix total',
+ 'From' => 'De',
+ 'Language' => 'Langue',
+ 'Memo' => 'Mémo',
+ 'Month' => 'Mois',
+ 'Number' => 'Numéro',
+ 'Open' => 'Ouvert',
+ 'Period' => 'Période',
+ 'Post' => 'Enregistrer',
+ 'Posted!' => 'Enregistré!',
+ 'Price' => 'Prix',
+ 'Print' => 'Imprimer',
+ 'Print and Post' => 'Imprimer et imputer',
+ 'Printed' => 'Imprimé',
+ 'Qty' => 'Qté',
+ 'Quarter' => 'Trimestre',
+ 'Receipts' => 'Reçus',
+ 'Record in' => 'Enregistrer dans',
+ 'Remaining' => 'Restant',
+ 'Salesperson' => 'Vendeur',
+ 'Screen' => 'Écran',
+ 'Select a Printer!' => 'Sélectionner une imprimante!',
+ 'Source' => 'Source',
+ 'Subtotal' => 'Sous total',
+ 'Tax Included' => 'Taxe incluse',
+ 'To' => 'À',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Escompte commercial',
+ 'Unit' => 'Unité',
+ 'Update' => 'Mettre à jour',
+ 'Year' => 'Année',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'continuer' => 'continue',
+ 'supprimer' => 'delete',
+ 'enregistrer' => 'post',
+ 'imprimer' => 'print',
+ 'imprimer_et_imputer' => 'print_and_post',
+ 'mettre_à_jour' => 'update',
+};
+
+1;
+
diff --git a/locale/be_fr/ps b/locale/be_fr/ps
new file mode 100755
index 00000000..659923d1
--- /dev/null
+++ b/locale/be_fr/ps
@@ -0,0 +1,397 @@
+$self{texts} = {
+ 'AP Aging' => 'Dépenses exigibles',
+ 'AP Outstanding' => 'Dépenses en retard',
+ 'AP Transaction' => 'Écriture dépenses',
+ 'AP Transactions' => 'Mouvements - Dépenses',
+ 'AR Aging' => 'Recettes exigibles',
+ 'AR Outstanding' => 'Recettes en retard',
+ 'AR Transaction' => 'Écriture recettes',
+ 'AR Transactions' => 'Mouvements - Recettes',
+ 'Account' => 'Compte',
+ 'Account Number' => 'Numéro de compte',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Accounts' => 'Comptes',
+ 'Accrual' => 'Accumulation',
+ 'Add AP Transaction' => 'Ajouter une dépense',
+ 'Add AR Transaction' => 'Ajouter une recette',
+ 'Add POS Invoice' => 'Saisie ticket de caisse',
+ 'Add Purchase Order' => 'Établir commande d\'achat',
+ 'Add Quotation' => 'Établir devis',
+ 'Add Request for Quotation' => 'Établir demande de devis',
+ 'Add Sales Invoice' => 'Établir facture de vente',
+ 'Add Sales Order' => 'Établir commande de vente',
+ 'Address' => 'Adresse',
+ 'Aged' => 'Âgé',
+ 'Aged Overdue' => 'Âgé en retard',
+ 'All Accounts' => 'Afficher tous les comptes',
+ 'Amount' => 'Montant',
+ 'Amount Due' => 'Montant dû',
+ 'Apr' => 'Avril',
+ 'April' => 'Avril',
+ 'Are you sure you want to delete Invoice Number' => 'Êtes-vous sûr de vouloir supprimer la facture n°',
+ 'Are you sure you want to delete Transaction' => 'Êtes vous sûr de vouloir effacer la saisie?',
+ 'Attachment' => 'Pièce jointe',
+ 'Aug' => 'Août',
+ 'August' => 'Août',
+ 'Balance' => 'Solde',
+ 'Balance Sheet' => 'Bilan',
+ 'Bcc' => 'Copie cachée',
+ 'Billing Address' => 'Adresse de facturation',
+ 'Bin' => 'Lieu stockage',
+ 'Bin List' => 'Liste des emplacements',
+ 'Business' => 'Type d\'affaire',
+ 'Cannot delete invoice!' => 'Impossible de supprimer la facture!',
+ 'Cannot delete transaction!' => 'Impossible de supprimer l\'écriture!',
+ 'Cannot post invoice for a closed period!' => 'Impossible d\'enregistrer la facture sur un exercice clos!',
+ 'Cannot post invoice!' => 'Impossible d\'enregistrer la facture!',
+ 'Cannot post payment for a closed period!' => 'Impossible d\'enregistrer le paiement sur un exercice clos!',
+ 'Cannot post transaction for a closed period!' => 'Impossible d\'enregistrer l\'écriture sur un exercice clos!',
+ 'Cannot post transaction!' => 'Impossible d\'enregistrer l\'écriture!',
+ 'Cash' => 'Financier',
+ 'Cc' => 'Copie',
+ 'Change' => 'Retour monnaie',
+ 'Check' => 'Chèque',
+ 'City' => 'Ville',
+ 'Closed' => 'Clôturé',
+ 'Company Name' => 'Nom de société',
+ 'Compare to' => 'Comparer à',
+ 'Confirm!' => 'Confirmer!',
+ 'Contact' => 'Contact',
+ 'Continue' => 'Continuer',
+ 'Copies' => 'Copies',
+ 'Country' => 'Pays',
+ 'Credit' => 'Crédit',
+ 'Credit Limit' => 'Encours autorisé',
+ 'Curr' => 'Dev.',
+ 'Currency' => 'Devise',
+ 'Current' => 'En cours',
+ 'Current Earnings' => 'Bénéfice de l\'exercice',
+ 'Customer' => 'Client',
+ 'Customer Number' => 'Numéro de client',
+ 'Customer missing!' => 'Client manquant!',
+ 'Customer not on file!' => 'Client absent du fichier!',
+ 'Date' => 'Date',
+ 'Date Paid' => 'Date de paiement',
+ 'Day(s)' => 'Jour(s)',
+ 'Debit' => 'Débit',
+ 'Dec' => 'Déc.',
+ 'December' => 'Décembre',
+ 'Decimalplaces' => 'Décimales',
+ 'Delete' => 'Supprimer',
+ 'Delete Schedule' => 'Effacer transaction planifiée',
+ 'Delivery Date' => 'Date de livraison',
+ 'Department' => 'Service',
+ 'Description' => 'Description',
+ 'Detail' => 'Détail',
+ 'Due Date' => 'Échéance',
+ 'Due Date missing!' => 'Date d\'échéance manquante!',
+ 'E-mail' => 'E-mail',
+ 'E-mail Statement to' => 'Message éléctronique à',
+ 'E-mail address missing!' => 'Adresse e-mail manquante!',
+ 'E-mail message' => 'Message e-mail',
+ 'E-mailed' => 'E-mail envoyé',
+ 'Edit AP Transaction' => 'Modifier une dépense',
+ 'Edit AR Transaction' => 'Modifier une recette',
+ 'Edit POS Invoice' => 'Modifier ticket de caisse',
+ 'Edit Sales Invoice' => 'Modifier facture de vente',
+ 'Employee' => 'Employé',
+ 'Every' => 'Chaque',
+ 'Exch' => 'Change',
+ 'Exchange Rate' => 'Taux de change',
+ 'Exchange rate for payment missing!' => 'Taux de change manquant pour le paiement!',
+ 'Exchange rate missing!' => 'Taux de change manquant!',
+ 'Extended' => 'Prix total',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Fév.',
+ 'February' => 'Février',
+ 'For' => 'Pour',
+ 'From' => 'De',
+ 'GIFI' => 'Code d\'identification comptable ou fiscale',
+ 'Group' => 'Groupe',
+ 'Heading' => 'En-tête',
+ 'ID' => 'ID',
+ 'In-line' => 'En ligne',
+ 'Include Exchange Rate Difference' => 'Inclure différence conversion devises',
+ 'Include Payment' => 'Inclure paiement',
+ 'Include in Report' => 'Inclure dans l\'état',
+ 'Income Statement' => 'Compte de résultat',
+ 'Internal Notes' => 'Notes internes',
+ 'Invoice' => 'Facture',
+ 'Invoice Date' => 'Date de facturation',
+ 'Invoice Date missing!' => 'Date de facture manquante!',
+ 'Invoice Number' => 'Numéro de facture',
+ 'Invoice Number missing!' => 'Numéro de facture manquant!',
+ 'Invoice deleted!' => 'Facture supprimée!',
+ 'Item' => 'Article',
+ 'Item not on file!' => 'Objet non-listé!',
+ 'Jan' => 'Jan.',
+ 'January' => 'Janvier',
+ 'Jul' => 'Juill.',
+ 'July' => 'Juillet',
+ 'Jun' => 'Juin',
+ 'June' => 'Juin',
+ 'Language' => 'Langue',
+ 'Manager' => 'Gestionnaire',
+ 'Mar' => 'Mars',
+ 'March' => 'Mars',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Mémo',
+ 'Message' => 'Message',
+ 'Method' => 'Méthode',
+ 'Month' => 'Mois',
+ 'Month(s)' => 'Mois',
+ 'N/A' => 'Non applicable',
+ 'Next Date' => 'Prochaine date',
+ 'No.' => 'N°',
+ 'Non-taxable Purchases' => 'Achats hors taxe',
+ 'Non-taxable Sales' => 'Ventes hors taxe',
+ 'Notes' => 'Notes',
+ 'Nothing selected!' => 'Pas de sélection!',
+ 'Nothing to print!' => 'Rien à imprimer',
+ 'Nov' => 'Nov.',
+ 'November' => 'Novembre',
+ 'Number' => 'Numéro',
+ 'Number missing in Row' => 'Numéro manquant dans ligne',
+ 'OH' => 'OH',
+ 'Oct' => 'Oct.',
+ 'October' => 'Octobre',
+ 'Open' => 'Ouvert',
+ 'Order' => 'Commande',
+ 'Order Date missing!' => 'Date de commande manquante!',
+ 'Order Number' => 'Numéro de commande',
+ 'Order Number missing!' => 'Numéro de commande manquant!',
+ 'Overdue' => 'En retard',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Numéro de référence',
+ 'Packing List' => 'Liste d\'envoi',
+ 'Packing List Date missing!' => 'La liste d\'envoi n\'a pas de date!',
+ 'Packing List Number missing!' => 'Le numéro de la liste d\'envoi est manquant!',
+ 'Paid' => 'Total payé',
+ 'Part' => 'Marchandise',
+ 'Payment date missing!' => 'Date de paiement manquante!',
+ 'Payments' => 'Paiements',
+ 'Period' => 'Période',
+ 'Phone' => 'Tél.',
+ 'Pick List' => 'Liste de sélection',
+ 'Post' => 'Enregistrer',
+ 'Post as new' => 'Enregistrer comme nouveau',
+ 'Posted!' => 'Enregistré!',
+ 'Postscript' => 'Postcript',
+ 'Price' => 'Prix',
+ 'Print' => 'Imprimer',
+ 'Print and Post' => 'Imprimer et imputer',
+ 'Print and Post as new' => 'Imprimer et enregister comme nouveau',
+ 'Printed' => 'Imprimé',
+ 'Project' => 'Projet',
+ 'Project Number' => 'Numéro de projet',
+ 'Project Transactions' => 'Mouvements - Projet',
+ 'Project not on file!' => 'Projet absent du fichier!',
+ 'Purchase Order' => 'Commande d\'achat',
+ 'Qty' => 'Qté',
+ 'Quarter' => 'Trimestre',
+ 'Queue' => 'File d\'attente',
+ 'Queued' => 'Mis en file d\'attente',
+ 'Quotation' => 'Devis',
+ 'Quotation Date missing!' => 'Date de devis manqante!',
+ 'Quotation Number missing!' => 'Numéro de devis manquant!',
+ 'Recd' => 'Reçu',
+ 'Receipt' => 'Reçu',
+ 'Receipts' => 'Reçus',
+ 'Record in' => 'Enregistrer dans',
+ 'Recurring Transaction' => 'Transaction périodique',
+ 'Reference' => 'Référence',
+ 'Remaining' => 'Restant',
+ 'Repeat' => 'Répéter',
+ 'Report for' => 'Rapport de',
+ 'Required by' => 'Requis pour',
+ 'SKU' => 'SKU',
+ 'Sales Invoice.' => 'Facture de vente.',
+ 'Sales Order' => 'Commande de vente',
+ 'Salesperson' => 'Vendeur',
+ 'Save Schedule' => 'Enregistrer transaction planifiée',
+ 'Schedule' => 'Planification',
+ 'Scheduled' => 'Planifié',
+ 'Screen' => 'Écran',
+ 'Select a Printer!' => 'Sélectionner une imprimante!',
+ 'Select all' => 'Tout sélectionner',
+ 'Select from one of the names below' => 'Sélectionner un des noms ci-dessous',
+ 'Select from one of the projects below' => 'Sélectionner un des projets ci-dessous',
+ 'Select items' => 'Sélectionner éléments',
+ 'Select payment' => 'Sélectionner le payement',
+ 'Select postscript or PDF!' => 'Sélectionner Postscript ou PDF!',
+ 'Select txt, postscript or PDF!' => 'Sélectionner Txt, Postscript ou PDF!',
+ 'Sep' => 'Sept.',
+ 'September' => 'Septembre',
+ 'Serial No.' => 'N° série',
+ 'Service' => 'Prestation de service',
+ 'Ship' => 'Expédier',
+ 'Ship to' => 'Expédier à',
+ 'Ship via' => 'Expédier via',
+ 'Shipping Address' => 'Adresse d\'envoi',
+ 'Shipping Point' => 'Expéditeur',
+ 'Source' => 'Source',
+ 'Standard' => 'Standard',
+ 'Startdate' => 'Date de début',
+ 'State/Province' => 'Région/État',
+ 'Statement' => 'Relevé',
+ 'Statement sent to' => 'Relevé envoyé à',
+ 'Statements sent to printer!' => 'Relevés envoyés à l\'imprimante!',
+ 'Subject' => 'Objet',
+ 'Subtotal' => 'Sous total',
+ 'Summary' => 'Résumé',
+ 'Tax' => 'Taxe',
+ 'Tax Included' => 'Taxe incluse',
+ 'Tax collected' => 'Taxe collectée',
+ 'Tax paid' => 'Taxe payée',
+ 'Text' => 'Texte',
+ 'Till' => 'Caisse',
+ 'To' => 'À',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Escompte commercial',
+ 'Transaction' => 'Écriture',
+ 'Transaction deleted!' => 'Écriture supprimée!',
+ 'Transaction posted!' => 'Écriture enregistrée!',
+ 'Translation not on file!' => 'Pas de traduction dans le fichier',
+ 'Trial Balance' => 'Balance Globale',
+ 'Unit' => 'Unité',
+ 'Update' => 'Mettre à jour',
+ 'Vendor' => 'Fournisseur',
+ 'Vendor Invoice.' => 'Facture d\'achat.',
+ 'Vendor Number' => 'Numéro de fournisseur',
+ 'Vendor missing!' => 'Fournisseur manquant!',
+ 'Vendor not on file!' => 'Fournisseur absent du fichier!',
+ 'Warning!' => 'Attention!',
+ 'Week(s)' => 'Semaine(s)',
+ 'What type of item is this?' => 'De quel type est cet objet?',
+ 'Work Order' => 'Fiche de traitement',
+ 'Year' => 'Année',
+ 'Year(s)' => 'Année(s)',
+ 'Yes' => 'Oui',
+ 'You are posting an existing transaction!' => 'Vous enregistrez une transaction existante!',
+ 'You are printing and posting an existing transaction!' => 'Vous imprimez et enregistrez une transaction existante!',
+ 'You are printing and saving an existing order' => 'Vous imprimez et enregistrez une commande existante!',
+ 'You are printing and saving an existing quotation' => 'Vous imprimez et enregistrez un devis existant!',
+ 'You are saving an existing order' => 'Vous enregistrez une commande existante',
+ 'You are saving an existing quotation' => 'Vous enregistrez un devis existant',
+ 'Zip/Postal Code' => 'Code postal',
+ 'as at' => 'au',
+ 'ea' => 'pièce(s)',
+ 'for' => 'pour',
+ 'for Period' => 'pour la période',
+ 'posted!' => 'enregistré!',
+ 'sent' => 'envoyé',
+ 'time(s)' => 'temps',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'Écriture_dépenses' => 'ap_transaction',
+ 'Écriture_recettes' => 'ar_transaction',
+ 'continuer' => 'continue',
+ 'supprimer' => 'delete',
+ 'effacer_transaction_planifiée' => 'delete_schedule',
+ 'e_mail' => 'e_mail',
+ 'enregistrer' => 'post',
+ 'enregistrer_comme_nouveau' => 'post_as_new',
+ 'imprimer' => 'print',
+ 'imprimer_et_imputer' => 'print_and_post',
+ 'imprimer_et_enregister_comme_nouveau' => 'print_and_post_as_new',
+ 'facture_de_vente_' => 'sales_invoice_',
+ 'commande_de_vente' => 'sales_order',
+ 'enregistrer_transaction_planifiée' => 'save_schedule',
+ 'planification' => 'schedule',
+ 'tout_sélectionner' => 'select_all',
+ 'expédier_à' => 'ship_to',
+ 'mettre_à_jour' => 'update',
+ 'facture_d\'achat_' => 'vendor_invoice_',
+ 'oui' => 'yes',
+};
+
+1;
+
diff --git a/locale/be_fr/pw b/locale/be_fr/pw
new file mode 100755
index 00000000..fde00cae
--- /dev/null
+++ b/locale/be_fr/pw
@@ -0,0 +1,13 @@
+$self{texts} = {
+ 'Continue' => 'Continuer',
+ 'Password' => 'Mot de passe',
+ 'Session expired!' => 'Session terminée!',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'continuer' => 'continue',
+};
+
+1;
+
diff --git a/locale/be_fr/rc b/locale/be_fr/rc
new file mode 100755
index 00000000..3e6dc439
--- /dev/null
+++ b/locale/be_fr/rc
@@ -0,0 +1,79 @@
+$self{texts} = {
+ 'Account' => 'Compte',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Apr' => 'Avril',
+ 'April' => 'Avril',
+ 'Aug' => 'Août',
+ 'August' => 'Août',
+ 'Balance' => 'Solde',
+ 'Beginning Balance' => 'Solde du départ',
+ 'Cleared' => 'Lettré',
+ 'Continue' => 'Continuer',
+ 'Credit' => 'Crédit',
+ 'Current' => 'En cours',
+ 'Date' => 'Date',
+ 'Debit' => 'Débit',
+ 'Dec' => 'Déc.',
+ 'December' => 'Décembre',
+ 'Description' => 'Description',
+ 'Detail' => 'Détail',
+ 'Difference' => 'Différence',
+ 'Done' => 'Fait!',
+ 'Feb' => 'Fév.',
+ 'February' => 'Février',
+ 'From' => 'De',
+ 'Include Exchange Rate Difference' => 'Inclure différence conversion devises',
+ 'Jan' => 'Jan.',
+ 'January' => 'Janvier',
+ 'Jul' => 'Juill.',
+ 'July' => 'Juillet',
+ 'Jun' => 'Juin',
+ 'June' => 'Juin',
+ 'Mar' => 'Mars',
+ 'March' => 'Mars',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Month' => 'Mois',
+ 'Nov' => 'Nov.',
+ 'November' => 'Novembre',
+ 'Oct' => 'Oct.',
+ 'October' => 'Octobre',
+ 'Out of balance!' => 'Non-soldée!',
+ 'Outstanding' => 'En retard',
+ 'Period' => 'Période',
+ 'Quarter' => 'Trimestre',
+ 'R' => 'R',
+ 'Reconciliation' => 'Rapprochement',
+ 'Reconciliation Report' => 'Rapport de rapprochement',
+ 'Select all' => 'Tout sélectionner',
+ 'Sep' => 'Sept.',
+ 'September' => 'Septembre',
+ 'Source' => 'Source',
+ 'Statement Balance' => 'Solde relevé de compte',
+ 'Summary' => 'Résumé',
+ 'To' => 'À',
+ 'Update' => 'Mettre à jour',
+ 'Year' => 'Année',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'continuer' => 'continue',
+ 'fait!' => 'done',
+ 'tout_sélectionner' => 'select_all',
+ 'mettre_à_jour' => 'update',
+};
+
+1;
+
diff --git a/locale/be_fr/rp b/locale/be_fr/rp
new file mode 100755
index 00000000..32c12321
--- /dev/null
+++ b/locale/be_fr/rp
@@ -0,0 +1,205 @@
+$self{texts} = {
+ 'AP Aging' => 'Dépenses exigibles',
+ 'AR Aging' => 'Recettes exigibles',
+ 'Account' => 'Compte',
+ 'Account Number' => 'Numéro de compte',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Accounts' => 'Comptes',
+ 'Accrual' => 'Accumulation',
+ 'Address' => 'Adresse',
+ 'Aged' => 'Âgé',
+ 'Aged Overdue' => 'Âgé en retard',
+ 'All Accounts' => 'Afficher tous les comptes',
+ 'Amount' => 'Montant',
+ 'Apr' => 'Avril',
+ 'April' => 'Avril',
+ 'Attachment' => 'Pièce jointe',
+ 'Aug' => 'Août',
+ 'August' => 'Août',
+ 'Balance' => 'Solde',
+ 'Balance Sheet' => 'Bilan',
+ 'Bcc' => 'Copie cachée',
+ 'Cash' => 'Financier',
+ 'Cc' => 'Copie',
+ 'Compare to' => 'Comparer à',
+ 'Continue' => 'Continuer',
+ 'Copies' => 'Copies',
+ 'Credit' => 'Crédit',
+ 'Curr' => 'Dev.',
+ 'Current' => 'En cours',
+ 'Current Earnings' => 'Bénéfice de l\'exercice',
+ 'Customer' => 'Client',
+ 'Customer not on file!' => 'Client absent du fichier!',
+ 'Date' => 'Date',
+ 'Day(s)' => 'Jour(s)',
+ 'Debit' => 'Débit',
+ 'Dec' => 'Déc.',
+ 'December' => 'Décembre',
+ 'Decimalplaces' => 'Décimales',
+ 'Delete Schedule' => 'Effacer transaction planifiée',
+ 'Department' => 'Service',
+ 'Description' => 'Description',
+ 'Detail' => 'Détail',
+ 'Due Date' => 'Échéance',
+ 'E-mail' => 'E-mail',
+ 'E-mail Statement to' => 'Message éléctronique à',
+ 'E-mail address missing!' => 'Adresse e-mail manquante!',
+ 'E-mail message' => 'Message e-mail',
+ 'Every' => 'Chaque',
+ 'Feb' => 'Fév.',
+ 'February' => 'Février',
+ 'For' => 'Pour',
+ 'From' => 'De',
+ 'GIFI' => 'Code d\'identification comptable ou fiscale',
+ 'Heading' => 'En-tête',
+ 'ID' => 'ID',
+ 'In-line' => 'En ligne',
+ 'Include Exchange Rate Difference' => 'Inclure différence conversion devises',
+ 'Include Payment' => 'Inclure paiement',
+ 'Include in Report' => 'Inclure dans l\'état',
+ 'Income Statement' => 'Compte de résultat',
+ 'Invoice' => 'Facture',
+ 'Jan' => 'Jan.',
+ 'January' => 'Janvier',
+ 'Jul' => 'Juill.',
+ 'July' => 'Juillet',
+ 'Jun' => 'Juin',
+ 'June' => 'Juin',
+ 'Language' => 'Langue',
+ 'Mar' => 'Mars',
+ 'March' => 'Mars',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Mémo',
+ 'Message' => 'Message',
+ 'Method' => 'Méthode',
+ 'Month' => 'Mois',
+ 'Month(s)' => 'Mois',
+ 'N/A' => 'Non applicable',
+ 'Next Date' => 'Prochaine date',
+ 'Non-taxable Purchases' => 'Achats hors taxe',
+ 'Non-taxable Sales' => 'Ventes hors taxe',
+ 'Nothing selected!' => 'Pas de sélection!',
+ 'Nov' => 'Nov.',
+ 'November' => 'Novembre',
+ 'Number' => 'Numéro',
+ 'Oct' => 'Oct.',
+ 'October' => 'Octobre',
+ 'Order' => 'Commande',
+ 'Overdue' => 'En retard',
+ 'PDF' => 'PDF',
+ 'Payments' => 'Paiements',
+ 'Period' => 'Période',
+ 'Postscript' => 'Postcript',
+ 'Print' => 'Imprimer',
+ 'Project' => 'Projet',
+ 'Project Number' => 'Numéro de projet',
+ 'Project Transactions' => 'Mouvements - Projet',
+ 'Project not on file!' => 'Projet absent du fichier!',
+ 'Quarter' => 'Trimestre',
+ 'Receipts' => 'Reçus',
+ 'Recurring Transaction' => 'Transaction périodique',
+ 'Reference' => 'Référence',
+ 'Repeat' => 'Répéter',
+ 'Report for' => 'Rapport de',
+ 'Salesperson' => 'Vendeur',
+ 'Save Schedule' => 'Enregistrer transaction planifiée',
+ 'Screen' => 'Écran',
+ 'Select all' => 'Tout sélectionner',
+ 'Select from one of the names below' => 'Sélectionner un des noms ci-dessous',
+ 'Select from one of the projects below' => 'Sélectionner un des projets ci-dessous',
+ 'Select postscript or PDF!' => 'Sélectionner Postscript ou PDF!',
+ 'Sep' => 'Sept.',
+ 'September' => 'Septembre',
+ 'Source' => 'Source',
+ 'Standard' => 'Standard',
+ 'Startdate' => 'Date de début',
+ 'Statement' => 'Relevé',
+ 'Statement sent to' => 'Relevé envoyé à',
+ 'Statements sent to printer!' => 'Relevés envoyés à l\'imprimante!',
+ 'Subject' => 'Objet',
+ 'Subtotal' => 'Sous total',
+ 'Summary' => 'Résumé',
+ 'Tax' => 'Taxe',
+ 'Tax collected' => 'Taxe collectée',
+ 'Tax paid' => 'Taxe payée',
+ 'Till' => 'Caisse',
+ 'To' => 'À',
+ 'Total' => 'Total',
+ 'Trial Balance' => 'Balance Globale',
+ 'Vendor' => 'Fournisseur',
+ 'Vendor not on file!' => 'Fournisseur absent du fichier!',
+ 'Warning!' => 'Attention!',
+ 'Week(s)' => 'Semaine(s)',
+ 'Year' => 'Année',
+ 'Year(s)' => 'Année(s)',
+ 'You are posting an existing transaction!' => 'Vous enregistrez une transaction existante!',
+ 'You are printing and posting an existing transaction!' => 'Vous imprimez et enregistrez une transaction existante!',
+ 'You are printing and saving an existing order' => 'Vous imprimez et enregistrez une commande existante!',
+ 'You are printing and saving an existing quotation' => 'Vous imprimez et enregistrez un devis existant!',
+ 'You are saving an existing order' => 'Vous enregistrez une commande existante',
+ 'You are saving an existing quotation' => 'Vous enregistrez un devis existant',
+ 'as at' => 'au',
+ 'for' => 'pour',
+ 'for Period' => 'pour la période',
+ 'sent' => 'envoyé',
+ 'time(s)' => 'temps',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuer' => 'continue',
+ 'effacer_transaction_planifiée' => 'delete_schedule',
+ 'e_mail' => 'e_mail',
+ 'imprimer' => 'print',
+ 'enregistrer_transaction_planifiée' => 'save_schedule',
+ 'tout_sélectionner' => 'select_all',
+};
+
+1;
+
diff --git a/locale/be_nl/COPYING b/locale/be_nl/COPYING
new file mode 100755
index 00000000..b998ec3b
--- /dev/null
+++ b/locale/be_nl/COPYING
@@ -0,0 +1,23 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2004
+#
+# Belgian Dutch texts:
+#
+# Author:
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/be_nl/LANGUAGE b/locale/be_nl/LANGUAGE
new file mode 100755
index 00000000..e1b3a0b4
--- /dev/null
+++ b/locale/be_nl/LANGUAGE
@@ -0,0 +1 @@
+Dutch/Belgium
diff --git a/locale/be_nl/Num2text b/locale/be_nl/Num2text
new file mode 100755
index 00000000..7bf3208c
--- /dev/null
+++ b/locale/be_nl/Num2text
@@ -0,0 +1,161 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (C) 2002
+#
+# Author: Dieter Simader
+# Email: dsimader@sql-ledger.org
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+# Contributors: Paul Tammes <finance@bermuda-holding.com>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#======================================================================
+#
+# this is a variation of the Lingua package
+# written for check and receipt printing
+# it returns a properly formatted text string
+# for a number up to 10**12
+
+sub init {
+ my $self = shift;
+
+ %{ $self->{numbername} } =
+ (0 => 'nul',
+ 1 => 'een',
+ 2 => 'twee',
+ 3 => 'drie',
+ 4 => 'vier',
+ 5 => 'vijf',
+ 6 => 'zes',
+ 7 => 'zeven',
+ 8 => 'acht',
+ 9 => 'negen',
+ 10 => 'tien',
+ 11 => 'elf',
+ 12 => 'twalf',
+ 13 => 'dertien',
+ 14 => 'veertien',
+ 15 => 'vijftien',
+ 16 => 'zestien',
+ 17 => 'zeventien',
+ 18 => 'achtien',
+ 19 => 'negentien',
+ 20 => 'twintig',
+ 30 => 'dertig',
+ 40 => 'veertig',
+ 50 => 'vijftig',
+ 60 => 'zestig',
+ 70 => 'zeventig',
+ 80 => 'tachtig',
+ 90 => 'negentig',
+ 10**2 => 'honderd',
+ 10**3 => 'duizend',
+ 10**6 => 'miljoen',
+ 10**9 => 'miljard',
+ 10**12 => 'biljoen'
+ );
+
+}
+
+
+sub num2text {
+ my ($self, $amount) = @_;
+
+ return $self->{numbername}{0} unless $amount;
+
+ my @textnumber = ('**');
+
+ # split amount into chunks of 3
+ my @num = reverse split //, abs($amount);
+ my @numblock = ();
+ my ($i, $appendn);
+ my @a = ();
+
+ while (@num) {
+ @a = ();
+ for (1 .. 3) {
+ push @a, shift @num;
+ }
+ push @numblock, join / /, reverse @a;
+ }
+
+
+ while (@numblock) {
+
+ $i = $#numblock;
+ @num = split //, $numblock[$i];
+
+ $numblock[$i] *= 1;
+
+ if ($numblock[$i] == 0) {
+ pop @numblock;
+ next;
+ }
+
+ if ($numblock[$i] > 99) {
+ # the one from hundreds
+ push @textnumber, $self->{numbername}{$num[0]};
+
+ # add hundred designation
+ push @textnumber, $self->{numbername}{10**2};
+
+ # reduce numblock
+ $numblock[$i] -= $num[0] * 100;
+ }
+
+ if ($numblock[$i] > 9) {
+ # tens
+ push @textnumber, $self->format_ten($numblock[$i]);
+ } else {
+ # ones
+ push @textnumber, $self->{numbername}{$numblock[$i]};
+ }
+
+ # add thousand, million
+ if ($i) {
+ $amount = 10**($i * 3);
+ push @textnumber, $self->{numbername}{$amount};
+ }
+
+ pop @numblock;
+
+ }
+
+ push @textnumber, '**';
+ join '', @textnumber;
+
+}
+
+
+sub format_ten {
+ my ($self, $amount) = @_;
+
+ my $textnumber = "";
+ my @num = split //, $amount;
+
+ if ($amount > 20) {
+ # reverse one and ten and glue together with 'en'
+ $amount = $num[0] * 10;
+ $textnumber = $self->{numbername}{$num[1]}.'en'.$self->{numbername}{$amount};
+ } else {
+ $textnumber = $self->{numbername}{$amount};
+ }
+
+ $textnumber;
+
+}
+
+
+1;
+
diff --git a/locale/be_nl/aa b/locale/be_nl/aa
new file mode 100755
index 00000000..dfc3bc68
--- /dev/null
+++ b/locale/be_nl/aa
@@ -0,0 +1,141 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Openstaande Crediteuren',
+ 'AP Transaction' => 'Crediteurenboeking',
+ 'AP Transactions' => 'Crediteurenboekingen',
+ 'AR Outstanding' => 'Openstaande Debiteuren',
+ 'AR Transaction' => 'Debiteurenboeking',
+ 'AR Transactions' => 'Debiteurenboekingen',
+ 'Account' => 'Rekening',
+ 'Accounting Menu' => 'Boekhoudmenu',
+ 'Amount' => 'Bedrag',
+ 'Amount Due' => 'Verschuldigd bedrag',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Transaction' => 'Weet u zeker dat u deze boeking wilt verwijderen?',
+ 'Aug' => 'Aug',
+ 'August' => 'Augustus',
+ 'Cannot delete transaction!' => 'Kan boeking niet verwijderen!',
+ 'Cannot post payment for a closed period!' => 'Kan geen betaling boeken voor afgesloten periode!',
+ 'Cannot post transaction for a closed period!' => 'Kan geen boeking maken in afgesloten periode',
+ 'Cannot post transaction!' => 'Kan transactie niet boeken!',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Afgesloten',
+ 'Confirm!' => 'Bevestig!',
+ 'Continue' => 'Verder',
+ 'Credit' => 'Credit',
+ 'Credit Limit' => 'Kredietlimiet',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valuta',
+ 'Current' => 'Huidig',
+ 'Customer' => 'Klant',
+ 'Customer missing!' => 'Klant ontbreekt!',
+ 'Date' => 'Datum',
+ 'Date Paid' => 'Betaaldatum',
+ 'Debit' => 'Debet',
+ 'Dec' => 'Dec',
+ 'December' => 'December',
+ 'Delete' => 'Verwijder',
+ 'Department' => 'Afdeling',
+ 'Description' => 'Omschrijving',
+ 'Detail' => 'Detail',
+ 'Due Date' => 'Vervaldatum',
+ 'Due Date missing!' => 'Vervaldatum ontbreekt!',
+ 'Employee' => 'Werknemer',
+ 'Exch' => 'Wisselkoers',
+ 'Exchange Rate' => 'Wisselkoers',
+ 'Exchange rate for payment missing!' => 'Wisselkoers voor Betaling ontbreekt!',
+ 'Exchange rate missing!' => 'Wisselkoers ontbreekt!',
+ 'Feb' => 'Feb',
+ 'February' => 'Februari',
+ 'From' => 'Van',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Toevoegen aan Uitvoer',
+ 'Invoice' => 'Factuur',
+ 'Invoice Date' => 'Factuurdatum',
+ 'Invoice Date missing!' => 'Factuurdatum ontbreekt!',
+ 'Invoice Number' => 'Factuurnummer',
+ 'Jan' => 'Jan',
+ 'January' => 'Januari',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Manager' => 'Manager',
+ 'Mar' => 'Mrt',
+ 'March' => 'Maart',
+ 'May' => 'Mei',
+ 'May ' => 'Mei',
+ 'Memo' => 'Memo',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Opmerkingen',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Open' => 'Open',
+ 'Order' => 'Bestelling',
+ 'Order Number' => 'Referentie',
+ 'Paid' => 'Betaald',
+ 'Payment date missing!' => 'Geen betalingsdatum aanwezig!',
+ 'Payments' => 'Betalingen',
+ 'Post' => 'Boek',
+ 'Post as new' => 'Boek als nieuw',
+ 'Print' => 'Afdrukken',
+ 'Project' => 'Project',
+ 'Receipt' => 'Ontvangstbewijs',
+ 'Remaining' => 'Resterend',
+ 'Salesperson' => 'Verkoper',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Ship to' => 'Verzenden aan',
+ 'Ship via' => 'Verzenden via',
+ 'Shipping Point' => 'Verzendpunt',
+ 'Source' => 'Herkomst',
+ 'Subtotal' => 'Subtotaal',
+ 'Summary' => 'Overzicht',
+ 'Tax' => 'Belasting',
+ 'Tax Included' => 'Inclusief Belasting',
+ 'Till' => 'Kassa',
+ 'To' => 'Tot',
+ 'Total' => 'Totaal',
+ 'Transaction deleted!' => 'Boeking verwijderd!',
+ 'Transaction posted!' => 'Boeking opgeslagen!',
+ 'Update' => 'Bijwerken',
+ 'Vendor' => 'Leverancier',
+ 'Vendor missing!' => 'Leverancier ontbreekt!',
+ 'Yes' => 'Ja',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'crediteurenboeking' => 'ap_transaction',
+ 'debiteurenboeking' => 'ar_transaction',
+ 'verder' => 'continue',
+ 'verwijder' => 'delete',
+ 'boek' => 'post',
+ 'boek_als_nieuw' => 'post_as_new',
+ 'afdrukken' => 'print',
+ 'verzenden_aan' => 'ship_to',
+ 'bijwerken' => 'update',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/be_nl/admin b/locale/be_nl/admin
new file mode 100755
index 00000000..02d679c1
--- /dev/null
+++ b/locale/be_nl/admin
@@ -0,0 +1,137 @@
+$self{texts} = {
+ 'Access Control' => 'Toegangsbeheer',
+ 'Accounting' => 'Boekhouding',
+ 'Add User' => 'Gebruiker toevoegen',
+ 'Address' => 'Adres',
+ 'Administration' => 'Administratie',
+ 'Administrator' => 'Beheerder',
+ 'All Datasets up to date!' => 'Alle Datasets actueel',
+ 'Cannot create Lock!' => 'Kan geen exclusieve toegang krijgen!',
+ 'Change Admin Password' => 'Admin wachtwoord veranderen',
+ 'Change Password' => 'Verander wachtwoord',
+ 'Click on login name to edit!' => 'Klik op login naam om deze te bewerken.',
+ 'Company' => 'Bedrijf',
+ 'Connect to' => 'Verbinden met',
+ 'Continue' => 'Verder',
+ 'Create Chart of Accounts' => 'Maak rekeningstelsel',
+ 'Create Dataset' => 'Maak dataset',
+ 'DBI not installed!' => 'DBI niet geinstalleerd',
+ 'Database' => 'Database',
+ 'Database Administration' => 'Database administratie',
+ 'Database Driver not checked!' => 'Database Driver niet aangevinkt',
+ 'Database User missing!' => 'Geen database gebruiker aanwezig!',
+ 'Dataset' => 'Dataset',
+ 'Dataset missing!' => 'Geen dataset aanwezig',
+ 'Dataset updated!' => 'Dataset aangepast aan nieuwe versie!',
+ 'Date Format' => 'Datum formaat',
+ 'Delete' => 'Verwijder',
+ 'Delete Dataset' => 'Verwijder dataset',
+ 'Directory' => 'Directory',
+ 'Driver' => 'Besturings programma',
+ 'Dropdown Limit' => 'Maximum in dropdown-lijst',
+ 'E-mail' => 'E-mail',
+ 'Edit User' => 'Gebruiker wijzigen',
+ 'Existing Datasets' => 'Bestaande datasets',
+ 'Fax' => 'Fax',
+ 'Host' => 'Host',
+ 'Hostname missing!' => 'Geen hostnaam!',
+ 'Language' => 'Taal',
+ 'Lock System' => 'Vergrendel het systeem',
+ 'Lockfile created!' => 'Blokkeerbestand aangemaakt!',
+ 'Lockfile removed!' => 'Blokkeerbestand verwijderd!',
+ 'Login' => 'Login',
+ 'Login name missing!' => 'Login naam ontbreekt!',
+ 'Logout' => 'Logout',
+ 'Manager' => 'Manager',
+ 'Menu Width' => 'Menu Breedte',
+ 'Multibyte Encoding' => 'Unicode',
+ 'Name' => 'Naam',
+ 'New Templates' => 'Nieuwe templates',
+ 'No Database Drivers available!' => 'Geen database besturings programma aanwezig',
+ 'No Dataset selected!' => 'Geen dataset geselecteerd',
+ 'Nothing to delete!' => 'Niets te verwijderen!',
+ 'Number Format' => 'Nummeraanduiding',
+ 'Oracle Database Administration' => 'Oracle Database Administratie',
+ 'Password' => 'Wachtwoord',
+ 'Password changed!' => 'Wachtwoord gewijzigd!',
+ 'Pg Database Administration' => 'Pg Database Administratie',
+ 'PgPP Database Administration' => 'PgPP Database Administratie',
+ 'Phone' => 'Tel.',
+ 'Port' => 'Port',
+ 'Port missing!' => 'Geen port aanwezig',
+ 'Printer' => 'Printer',
+ 'Save' => 'Opslaan',
+ 'Setup Templates' => 'Setup templates',
+ 'Signature' => 'Handtekening',
+ 'Stylesheet' => 'Stylesheet',
+ 'Templates' => 'Templates',
+ 'The following Datasets are not in use and can be deleted' => 'De volgende datasets zijn niet ingebruik en kunnen worder verwijderd.',
+ 'The following Datasets need to be updated' => 'De volgende datasets moeten worden bijgewerkt',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Dit is een eerste controle. Er wordt niks gecreéerd of verwijderd.',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Om een gebruiker aan een groep toe te voegen, een naam te wijzigen, een login naam te wijzigen en op te slaan. Een nieuwe gebruiker zal dan worder opgeslagen met dezelfde gegevens onder de nieuwe login naam.',
+ 'Unlock System' => 'Unlock System',
+ 'Update Dataset' => 'Dataset bijwerken',
+ 'Use Templates' => 'Gebruik templates',
+ 'User' => 'Gebruiker',
+ 'User deleted!' => 'Gebruiker verwijderd!',
+ 'User saved!' => 'Gebruiker opgeslagen!',
+ 'Version' => 'Versie',
+ 'does not exist' => 'bestaat niet',
+ 'is already a member!' => 'is al een gebruiker',
+ 'localhost' => 'localhost',
+ 'locked!' => 'Geblokeerd!',
+ 'successfully created!' => 'Met succes aangemaakt!',
+ 'successfully deleted!' => 'Met succes verwijderd!',
+ 'website' => 'website',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'gebruiker_toevoegen' => 'add_user',
+ 'admin_wachtwoord_veranderen' => 'change_admin_password',
+ 'verander_wachtwoord' => 'change_password',
+ 'verder' => 'continue',
+ 'maak_dataset' => 'create_dataset',
+ 'verwijder' => 'delete',
+ 'verwijder_dataset' => 'delete_dataset',
+ 'vergrendel_het_systeem' => 'lock_system',
+ 'login' => 'login',
+ 'logout' => 'logout',
+ 'oracle_database_administratie' => 'oracle_database_administration',
+ 'pg_database_administratie' => 'pg_database_administration',
+ 'pgpp_database_administratie' => 'pgpp_database_administration',
+ 'opslaan' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'dataset_bijwerken' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/be_nl/all b/locale/be_nl/all
new file mode 100755
index 00000000..9acb1abd
--- /dev/null
+++ b/locale/be_nl/all
@@ -0,0 +1,702 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+
+$self{texts} = {
+ 'A' => 'A',
+ 'AP' => 'Crediteuren',
+ 'AP Aging' => 'Crediteuren Ouderdomsoverzicht',
+ 'AP Outstanding' => 'Openstaande Crediteuren',
+ 'AP Transaction' => 'Crediteurenboeking',
+ 'AP Transactions' => 'Crediteurenboekingen',
+ 'AR' => 'Debiteuren',
+ 'AR Aging' => 'Debiteuren Ouderdomsoverzicht',
+ 'AR Outstanding' => 'Openstaande Debiteuren',
+ 'AR Transaction' => 'Debiteurenboeking',
+ 'AR Transactions' => 'Debiteurenboekingen',
+ 'About' => 'Over',
+ 'Above' => 'Boven',
+ 'Access Control' => 'Toegangsbeheer',
+ 'Account' => 'Rekening',
+ 'Account Number' => 'Rekeningnummer',
+ 'Account Number missing!' => 'Rekeningnummer ontbreekt!',
+ 'Account Type' => 'Rekeningtype',
+ 'Account Type missing!' => 'Rekeningtype ontbreekt!',
+ 'Account deleted!' => 'Rekening verwijderd',
+ 'Account does not exist!' => 'Rekening bestaat niet',
+ 'Account saved!' => 'Rekening opgeslagen',
+ 'Accounting' => 'Boekhouding',
+ 'Accounting Menu' => 'Boekhoudmenu',
+ 'Accounts' => 'Rekeningen',
+ 'Accrual' => 'Opeengestapeld',
+ 'Activate Audit trail' => 'Activeer Accountants opsporing',
+ 'Activate Audit trails' => 'Activeer Accountants opsporing',
+ 'Active' => 'Actief',
+ 'Add' => 'Toevoegen',
+ 'Add Account' => 'Rekening toevoegen',
+ 'Add Assembly' => 'Assemblage toevoegen',
+ 'Add Business' => 'Zaaktype toevoegen',
+ 'Add Cash Transfer Transaction' => 'Geldoverboeking toevoegen',
+ 'Add Customer' => 'Klant toevoegen',
+ 'Add Deduction' => 'Korting toevoegen',
+ 'Add Department' => 'Afdeling toevoegen',
+ 'Add Employee' => 'Werknemer toevoegen',
+ 'Add Exchange Rate' => 'Wisselkoers toevoegen',
+ 'Add GIFI' => 'Toevoegen GIFI',
+ 'Add General Ledger Transaction' => 'Journaalpost toevoegen',
+ 'Add Group' => 'Groep toevoegen',
+ 'Add Labor/Overhead' => 'Arbeid/Overheadskosten toevoegen',
+ 'Add Language' => 'Taal toevoegen',
+ 'Add POS Invoice' => 'Directe verkooporder toevoegen',
+ 'Add Part' => 'Artikel toevoegen',
+ 'Add Pricegroup' => 'Prijsgroep toevoegen',
+ 'Add Project' => 'Project toevoegen',
+ 'Add Purchase Order' => 'Inkooporder toevoegen',
+ 'Add Quotation' => 'Offerte toevoegen',
+ 'Add Request for Quotation' => 'Offerteaanvraag toevoegen',
+ 'Add SIC' => 'SIC toevoegen',
+ 'Add Sales Invoice' => 'Verkoopfactuur toevoegen',
+ 'Add Sales Order' => 'Verkooporder toevoegen',
+ 'Add Service' => 'Dienst toevoegen',
+ 'Add Transaction' => 'Boeking toevoegen',
+ 'Add User' => 'Gebruiker toevoegen',
+ 'Add Vendor' => 'Leverancier toevoegen',
+ 'Add Vendor Invoice' => 'Inkoop factuur toevoegen',
+ 'Add Warehouse' => 'Magazijn toevoegen',
+ 'Address' => 'Adres',
+ 'Administration' => 'Administratie',
+ 'Administrator' => 'Beheerder',
+ 'After Deduction' => 'Na korting',
+ 'All' => 'Allemaal',
+ 'All Accounts' => 'Alle Rekeningen',
+ 'All Datasets up to date!' => 'Alle Datasets actueel',
+ 'All Items' => 'Alle onderdelen',
+ 'Allowances' => 'Toelagen',
+ 'Amount' => 'Bedrag',
+ 'Amount Due' => 'Verschuldigd bedrag',
+ 'Amount missing!' => 'Bedrag ontbreekt',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Invoice Number' => 'Weet u zeker dat u dit factuurnummer wilt verwijderen?',
+ 'Are you sure you want to delete Order Number' => 'Weet u zeker dat u dit ordernummer wilt verwijderen?',
+ 'Are you sure you want to delete Quotation Number' => 'Weet u zeker dat u dit offertenummer wilt verwijderen?',
+ 'Are you sure you want to delete Transaction' => 'Weet u zeker dat u deze boeking wilt verwijderen?',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Weet us zeker dat u de gemarkeerde stukken wil verwijderen uit de wachtrij?',
+ 'Assemblies' => 'Assemblages',
+ 'Assemblies restocked!' => 'Assemblage naar voorraad geboekt',
+ 'Assembly' => 'Assemblage',
+ 'Asset' => 'Activa (bezittingen)',
+ 'Attachment' => 'Bijlage',
+ 'Audit Control' => 'Accountants Controle',
+ 'Audit trail disabled' => 'Accountants opsporing onbruikbaar',
+ 'Audit trail enabled' => 'Accountants opsporing toegelaten',
+ 'Audit trail removed up to' => 'Accountants opsporing verwijderd tot',
+ 'Audit trails disabled' => 'Accountants opsporing onbruikbaar',
+ 'Audit trails enabled' => 'Accountants opsporing toegelaten',
+ 'Aug' => 'Aug',
+ 'August' => 'Augustus',
+ 'BIC' => 'BIC',
+ 'BOM' => 'Onderdelenlijst',
+ 'Backup' => 'Backup',
+ 'Backup sent to' => 'Backup gezonden aan',
+ 'Balance' => 'Saldo',
+ 'Balance Sheet' => 'Balans',
+ 'Based on' => 'Gebaseerd op',
+ 'Bcc' => 'Onzichtbare kopie aan',
+ 'Before Deduction' => 'Voor korting',
+ 'Beginning Balance' => 'Begin Balans',
+ 'Below' => 'Onder',
+ 'Billing Address' => 'Facturatieadres',
+ 'Bin' => 'Locatie',
+ 'Bin List' => 'Locatielijst',
+ 'Bin Lists' => 'Verzamel lijsten',
+ 'Books are open' => 'Boekingsperiode is open',
+ 'Break' => 'Onderbreking',
+ 'Business' => 'Zaaktype',
+ 'Business Number' => 'Kamer van Koophandel nummer',
+ 'Business deleted!' => 'Zaaktype verwijderd!',
+ 'Business saved!' => 'Zaaktype opgeslagen',
+ 'C' => 'C',
+ 'COGS' => 'Kostprijs Verkopen',
+ 'Cannot create Lock!' => 'Kan geen exclusieve toegang krijgen!',
+ 'Cannot delete account!' => 'Kan bedrag niet verwijderen!',
+ 'Cannot delete customer!' => 'Kan klant niet verwijderen!',
+ 'Cannot delete default account!' => 'Kan standaardrekening niet verwijderen!',
+ 'Cannot delete invoice!' => 'Kan factuur niet verwijderen!',
+ 'Cannot delete item!' => 'Kan onderdeel niet verwijderen!',
+ 'Cannot delete order!' => 'Kan order niet verwijderen!',
+ 'Cannot delete quotation!' => 'Kan offerte niet verwijderen!',
+ 'Cannot delete transaction!' => 'Kan boeking niet verwijderen!',
+ 'Cannot delete vendor!' => 'Kan leverancier niet verwijderen!',
+ 'Cannot post Payment!' => 'Kan betaling niet boeken!',
+ 'Cannot post Receipt!' => 'Kan ontvangst niet boeken!',
+ 'Cannot post invoice for a closed period!' => 'Kan geen factuur boeken in afgesloten periode!',
+ 'Cannot post invoice!' => 'Kan factuur niet boeken!',
+ 'Cannot post payment for a closed period!' => 'Kan geen betaling boeken voor afgesloten periode!',
+ 'Cannot post transaction for a closed period!' => 'Kan geen boeking maken in afgesloten periode',
+ 'Cannot post transaction!' => 'Kan transactie niet boeken!',
+ 'Cannot remove files!' => 'Kan bestanden niet verwijderen!',
+ 'Cannot save account!' => 'Kan rekening niet opslaan!',
+ 'Cannot save defaults!' => 'Kan de standaard niet opslaan!',
+ 'Cannot save order!' => 'Kan order niet opslaan!',
+ 'Cannot save preferences!' => 'Kan voorkeuren niet opslaan!',
+ 'Cannot save quotation!' => 'Kan offerte niet opslaan!',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Kan rekening niet toekennen aan meer dan één debiteuren-, crediteuren- of inventarisrekening',
+ 'Cannot set multiple options for' => 'Kan de meerdere opties voor niet instellen',
+ 'Cannot stock assemblies!' => 'Kan assemblages niet in voorraad nemen!',
+ 'Cash' => 'Kas (contant)',
+ 'Cc' => 'Kopie aan',
+ 'Change' => 'Wijzig',
+ 'Change Admin Password' => 'Admin wachtwoord veranderen',
+ 'Change Password' => 'Verander wachtwoord',
+ 'Chart of Accounts' => 'Rekeningstelsel',
+ 'Check' => 'Cheque',
+ 'Check Inventory' => 'Inventaris controleren',
+ 'Checks' => 'Cheques',
+ 'City' => 'Stad',
+ 'Cleared' => 'Opgeschoond',
+ 'Click on login name to edit!' => 'Klik op login naam om deze te bewerken.',
+ 'Close Books up to' => 'Boeken afsluiten tot',
+ 'Closed' => 'Afgesloten',
+ 'Code' => 'Code',
+ 'Code missing!' => 'Code ontbreekt!',
+ 'Company' => 'Bedrijf',
+ 'Company Name' => 'Bedrijfsnaam',
+ 'Compare to' => 'Vergelijk met',
+ 'Components' => 'Componenten',
+ 'Confirm!' => 'Bevestig!',
+ 'Connect to' => 'Verbinden met',
+ 'Contact' => 'Contact',
+ 'Continue' => 'Verder',
+ 'Contra' => 'Tegen',
+ 'Copies' => 'Kopieën',
+ 'Copy to COA' => 'Kopieër naar rekeningstelsel',
+ 'Cost' => 'Kost',
+ 'Cost Center' => 'Kostenpost',
+ 'Could not save!' => 'Kon niet opslaan!',
+ 'Could not transfer Inventory!' => 'Kon geen inventaris overboeken!',
+ 'Country' => 'Land',
+ 'Create Chart of Accounts' => 'Maak rekeningstelsel',
+ 'Create Dataset' => 'Maak dataset',
+ 'Credit' => 'Credit',
+ 'Credit Limit' => 'Kredietlimiet',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valuta',
+ 'Current' => 'Huidig',
+ 'Current Earnings' => 'Huidige winst',
+ 'Customer' => 'Klant',
+ 'Customer History' => 'Klant Historie',
+ 'Customer Number' => 'Klantnummer',
+ 'Customer deleted!' => 'Klant verwijderd!',
+ 'Customer missing!' => 'Klant ontbreekt!',
+ 'Customer not on file!' => 'Klant bestaat niet!',
+ 'Customer saved!' => 'Klant opgeslagen!',
+ 'Customers' => 'Klanten',
+ 'DBI not installed!' => 'DBI niet geinstalleerd',
+ 'Database' => 'Database',
+ 'Database Administration' => 'Database administratie',
+ 'Database Driver not checked!' => 'Database Driver niet aangevinkt',
+ 'Database Host' => 'Database computer',
+ 'Database User missing!' => 'Geen database gebruiker aanwezig!',
+ 'Dataset' => 'Dataset',
+ 'Dataset is newer than version!' => 'Dataset is nieuwer dan de versie!',
+ 'Dataset missing!' => 'Geen dataset aanwezig',
+ 'Dataset updated!' => 'Dataset aangepast aan nieuwe versie!',
+ 'Date' => 'Datum',
+ 'Date Format' => 'Datum formaat',
+ 'Date Paid' => 'Betaaldatum',
+ 'Date Received' => 'Ontvangstdatum',
+ 'Date missing!' => 'Datum ontbreekt!',
+ 'Date received missing!' => 'Ontvangstdatum ontbreekt!',
+ 'Debit' => 'Debet',
+ 'Dec' => 'Dec',
+ 'December' => 'December',
+ 'Decimalplaces' => 'Aantal Decimalen',
+ 'Decrease' => 'Vermindering',
+ 'Deduct after' => 'Verminder na',
+ 'Deduction deleted!' => 'Korting verwijderd!',
+ 'Deduction saved!' => 'Korting opgeslagen!',
+ 'Deductions' => 'Kortingen',
+ 'Defaults' => 'Standaard',
+ 'Defaults saved!' => 'Standaarden bewaard!',
+ 'Delete' => 'Verwijder',
+ 'Delete Account' => 'Rekening verwijderen',
+ 'Delete Dataset' => 'Verwijder dataset',
+ 'Delivery Date' => 'Leverdatum',
+ 'Department' => 'Afdeling',
+ 'Department deleted!' => 'Afdeling verwijderd!',
+ 'Department saved!' => 'Afdeling opgeslagen!',
+ 'Departments' => 'Afdelingen',
+ 'Deposit' => 'Storting',
+ 'Description' => 'Omschrijving',
+ 'Description Translations' => 'Omschrijving Vertaling',
+ 'Description missing!' => 'Omschrijving ontbreekt',
+ 'Detail' => 'Detail',
+ 'Difference' => 'Verschil',
+ 'Directory' => 'Directory',
+ 'Discount' => 'Korting',
+ 'Done' => 'Klaar',
+ 'Drawing' => 'Tekening',
+ 'Driver' => 'Besturings programma',
+ 'Dropdown Limit' => 'Maximum in dropdown-lijst',
+ 'Due Date' => 'Vervaldatum',
+ 'Due Date missing!' => 'Vervaldatum ontbreekt!',
+ 'E-mail' => 'E-mail',
+ 'E-mail Statement to' => 'E-mail Overzicht aan',
+ 'E-mail address missing!' => 'E-mailadres ontbreekt!',
+ 'E-mailed' => 'Gemaild',
+ 'Edit' => 'Wijzig',
+ 'Edit Account' => 'Rekening wijzigen',
+ 'Edit Assembly' => 'Assemblage wijzigen',
+ 'Edit Business' => 'Zaaktype wijzigen',
+ 'Edit Cash Transfer Transaction' => 'Kasoverboeking wijzigen',
+ 'Edit Customer' => 'Klant wijzigen',
+ 'Edit Deduction' => 'Korting wijzigen',
+ 'Edit Department' => 'Afdeling wijzigen',
+ 'Edit Description Translations' => 'Wijzig Omschrijving Vertaling',
+ 'Edit Employee' => 'Werknemer wijzigen',
+ 'Edit GIFI' => 'Wijzig GIFI',
+ 'Edit General Ledger Transaction' => 'Boeking in grootboek wijzigen',
+ 'Edit Group' => 'Groep wijzigen',
+ 'Edit Labor/Overhead' => 'Arbeid/Overheadskosten wijzigen',
+ 'Edit Language' => 'Taal Wijzigen',
+ 'Edit POS Invoice' => 'Directe verkooporder wijzigen',
+ 'Edit Part' => 'Artikel wijzigen',
+ 'Edit Preferences for' => 'Instellingen wijzigen voor',
+ 'Edit Pricegroup' => 'Prijsgroep wijzigen ',
+ 'Edit Project' => 'Project wijzigen',
+ 'Edit Purchase Order' => 'Inkooporder wijzigen',
+ 'Edit Quotation' => 'Offerte wijzigen',
+ 'Edit Request for Quotation' => 'Offerteaanvraag wijzigen',
+ 'Edit SIC' => 'SIC wijzigen',
+ 'Edit Sales Invoice' => 'Verkoopfactuur wijzigen',
+ 'Edit Sales Order' => 'Verkoop order wijzigen',
+ 'Edit Service' => 'Dienst wijzigen',
+ 'Edit Template' => 'Template wijzigen',
+ 'Edit User' => 'Gebruiker wijzigen',
+ 'Edit Vendor' => 'Leverancier wijzigen',
+ 'Edit Vendor Invoice' => 'Inkoop factuur wijzigen',
+ 'Edit Warehouse' => 'Magazijn wijzigen',
+ 'Employee' => 'Werknemer',
+ 'Employee Name' => 'Werknemernaam',
+ 'Employee deleted!' => 'Werknemer verwijderd',
+ 'Employee pays' => 'Werknemerbetalingen',
+ 'Employee saved!' => 'Werknemer opgeslagen!',
+ 'Employees' => 'Werknemers',
+ 'Employer' => 'Werkgever',
+ 'Employer pays' => 'Werkgeverbetalingen',
+ 'Enddate' => 'Einddatum',
+ 'Enforce transaction reversal for all dates' => 'Boeking terugdraaien voor alle data',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Vul max drie karakters in, gescheiden door een dubbelepunt (b.v. EUR:USD:GBP:CAD) voor lokale en buitenlandse valuta',
+ 'Equity' => 'Passiva/Eigen Vermogen',
+ 'Exch' => 'Wisselkoers',
+ 'Exchange Rate' => 'Wisselkoers',
+ 'Exchange rate for payment missing!' => 'Wisselkoers voor Betaling ontbreekt!',
+ 'Exchange rate missing!' => 'Wisselkoers ontbreekt!',
+ 'Existing Datasets' => 'Bestaande datasets',
+ 'Expense' => 'Onkosten',
+ 'Expense/Asset' => 'Uitgaven',
+ 'Extended' => 'Uitgebreid',
+ 'FX' => 'FX',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Februari',
+ 'Foreign Exchange Gain' => 'Wisselkoers winst',
+ 'Foreign Exchange Loss' => 'Wisselkoers verlies',
+ 'From' => 'Van',
+ 'GIFI' => 'GIFI',
+ 'GIFI deleted!' => 'GIFI verwijderd!',
+ 'GIFI missing!' => 'GIFI ontbreekt!',
+ 'GIFI saved!' => 'GIFI opgeslagen!',
+ 'GL Transaction' => 'Grootboekboeking (memoriaal) ',
+ 'General Ledger' => 'Grootboek',
+ 'Goods & Services' => 'Goederen & Diensten',
+ 'Group' => 'Groep',
+ 'Group Items' => 'Groepeer Onderdelen',
+ 'Group Translations' => 'Groep vertaling',
+ 'Group deleted!' => 'Groep verwijderd!',
+ 'Group missing!' => 'Groep ontbreekt!',
+ 'Group saved!' => 'Groep opgeslagen!',
+ 'Groups' => 'Groepen',
+ 'HR' => 'Personeel',
+ 'HTML Templates' => 'HTML Sjablonen',
+ 'Heading' => 'Kopregel',
+ 'History' => 'Geschiedenis',
+ 'Home Phone' => 'Thuistelefoon',
+ 'Host' => 'Host',
+ 'Hostname missing!' => 'Geen hostnaam!',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Image' => 'Plaatje',
+ 'In-line' => 'In Lijn',
+ 'Include Exchange Rate Difference' => 'Inclusief wisselkoersverschil',
+ 'Include in Report' => 'Toevoegen aan Uitvoer',
+ 'Include in drop-down menus' => 'Toevoegen aan drop-down menus',
+ 'Income' => 'Inkomsten',
+ 'Income Statement' => 'Inkomstenoverzicht',
+ 'Incorrect Dataset version!' => 'Ongeldige versie Dataset!!',
+ 'Increase' => 'Toename',
+ 'Individual Items' => 'Onderliggende onderdelen',
+ 'Internal Notes' => 'Interne notities',
+ 'Inventory' => 'Voorraad',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Aanwezige voorraad moet nul zijn voordat een assemblage als \'niet actief\' kan worden gemarkeerd.',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Aanwezige voorraad moet nul zijn voordat een product als \'niet actief\' kan worden gemarkeerd.',
+ 'Inventory saved!' => 'Voorraad opgeslagen',
+ 'Inventory transferred!' => 'Voorraad overgeheveld',
+ 'Invoice' => 'Factuur',
+ 'Invoice Date' => 'Factuurdatum',
+ 'Invoice Date missing!' => 'Factuurdatum ontbreekt!',
+ 'Invoice Number' => 'Factuurnummer',
+ 'Invoice Number missing!' => 'Factuurnummer ontbreekt!',
+ 'Invoice deleted!' => 'Factuur verwijderd!',
+ 'Invoices' => 'Facturen',
+ 'Is this a summary account to record' => 'Totaalrekening voor',
+ 'Item deleted!' => 'Onderdeel verwijderd!',
+ 'Item not on file!' => 'Dit onderdeel is niet in de database gevonden!',
+ 'Items' => 'Onderdelen',
+ 'Jan' => 'Jan',
+ 'January' => 'Januari',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'LaTeX Templates' => 'Latex Sjablonen',
+ 'Labor/Overhead' => 'Arbeid/Overheadskosten',
+ 'Language' => 'Taal',
+ 'Language deleted!' => 'Taal verwijderd!',
+ 'Language saved!' => 'Taal opgeslagen!',
+ 'Languages' => 'Talen',
+ 'Languages not defined!' => 'Taal niet gedefinieerd!',
+ 'Last Numbers & Default Accounts' => 'Laatst toegekende nummers & Standaard Rekeningen',
+ 'Leadtime' => 'Levertijd',
+ 'Leave host and port field empty unless you want to make a remote connection.' => 'Laat host en port veld leeg, tenzij u een netwerk connectie wilt opzetten.',
+ 'Liability' => 'Passiva',
+ 'Licensed to' => 'Gelicenseerd aan',
+ 'Line Total' => 'Totaal Regel',
+ 'Link' => 'Verbinding',
+ 'Link Accounts' => 'Rekeningen verbinden',
+ 'List Accounts' => 'Rekeningen weergeven',
+ 'List Businesses' => 'Zaaktypes weergeven',
+ 'List Departments' => 'Afdelingen weergeven',
+ 'List GIFI' => 'GIFI weergeven',
+ 'List Languages' => 'Talen weergeven',
+ 'List Price' => 'Catalogusprijs',
+ 'List Projects' => 'Projecten weergeven',
+ 'List SIC' => 'SIC weergeven',
+ 'List Transactions' => 'Boekingen tonen',
+ 'List Warehouses' => 'Magazijnen weergeven',
+ 'Lock System' => 'Vergrendel het systeem',
+ 'Lockfile created!' => 'Blokkeerbestand aangemaakt!',
+ 'Lockfile removed!' => 'Blokkeerbestand verwijderd!',
+ 'Login' => 'Login',
+ 'Login name missing!' => 'Login naam ontbreekt!',
+ 'Logout' => 'Logout',
+ 'Make' => 'Fabrikant',
+ 'Manager' => 'Manager',
+ 'Mar' => 'Mrt',
+ 'March' => 'Maart',
+ 'Marked entries printed!' => 'Gemarkeerde delen afgedrukt!',
+ 'Markup' => 'Winstmarge',
+ 'Maximum' => 'Maximum',
+ 'May' => 'Mei',
+ 'May ' => 'Mei',
+ 'Memo' => 'Memo',
+ 'Menu Width' => 'Menu Breedte',
+ 'Message' => 'Boodschap',
+ 'Method' => 'Methode',
+ 'Microfiche' => 'Microfiche',
+ 'Model' => 'Type',
+ 'Multibyte Encoding' => 'Unicode',
+ 'N/A' => 'N/A',
+ 'Name' => 'Naam',
+ 'Name missing!' => 'Naam ontbreekt!',
+ 'New Templates' => 'Nieuwe templates',
+ 'No' => 'Nee',
+ 'No Database Drivers available!' => 'Geen database besturings programma aanwezig',
+ 'No Dataset selected!' => 'Geen dataset geselecteerd',
+ 'No email address for' => 'Geen email adres voor',
+ 'No.' => 'Nr.',
+ 'Non-taxable' => 'Onbelast',
+ 'Non-taxable Purchases' => 'Onbelaste aankopen',
+ 'Non-taxable Sales' => 'Onbelaste verkopen',
+ 'Notes' => 'Opmerkingen',
+ 'Nothing entered!' => 'Niets ingevuld!',
+ 'Nothing selected!' => 'Niets geselecteerd!',
+ 'Nothing to delete!' => 'Niets te verwijderen!',
+ 'Nothing to transfer!' => 'Niets over te boeken!',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Nummer',
+ 'Number Format' => 'Nummeraanduiding',
+ 'Number missing in Row' => 'Getal ontbreekt in Regel',
+ 'O' => 'O',
+ 'Obsolete' => 'Niet actief',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'On Hand' => 'Op voorraad',
+ 'Open' => 'Open',
+ 'Oracle Database Administration' => 'Oracle Database Administratie',
+ 'Order' => 'Bestelling',
+ 'Order Date' => 'Orderdatum',
+ 'Order Date missing!' => 'Geen order datum aanwezig',
+ 'Order Entry' => 'Order invoer',
+ 'Order Number' => 'Referentie',
+ 'Order Number missing!' => 'Geen ordernummer aanwezig',
+ 'Order deleted!' => 'Order verwijderd!',
+ 'Order saved!' => 'Order opgeslagen!',
+ 'Orphaned' => 'Wees',
+ 'Out of balance transaction!' => 'Boeking is niet in evenwicht',
+ 'Out of balance!' => 'Niet in evenwicht!',
+ 'Outstanding' => 'Openstaand',
+ 'PDF' => 'PDF',
+ 'POS' => 'Verkooppunt',
+ 'POS Invoice' => 'Verkooppunt Rekening',
+ 'Packing List' => 'Pakbon',
+ 'Packing List Date missing!' => 'Pakbon datum ontbreekt!',
+ 'Packing List Number missing!' => 'Pakbon nummer ontbreekt!',
+ 'Packing Lists' => 'Pakbonnen',
+ 'Paid' => 'Betaald',
+ 'Part' => 'Artikel',
+ 'Parts' => 'Artikelen',
+ 'Password' => 'Wachtwoord',
+ 'Password changed!' => 'Wachtwoord gewijzigd!',
+ 'Payables' => 'Betalingen',
+ 'Payment' => 'Betaling',
+ 'Payment date missing!' => 'Geen betalingsdatum aanwezig!',
+ 'Payment posted!' => 'Betaling geboekt!',
+ 'Payments' => 'Betalingen',
+ 'Payroll Deduction' => 'Loonkorting',
+ 'Pg Database Administration' => 'Pg Database Administratie',
+ 'PgPP Database Administration' => 'PgPP Database Administratie',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Uitzoeklijst',
+ 'Pick Lists' => 'Pick lijsten',
+ 'Port' => 'Port',
+ 'Port missing!' => 'Geen port aanwezig',
+ 'Post' => 'Boek',
+ 'Post as new' => 'Boek als nieuw',
+ 'Posted!' => 'Geboekt!',
+ 'Postscript' => 'Postscript',
+ 'Preferences' => 'Instellingen',
+ 'Preferences saved!' => 'Instellingen bewaard!',
+ 'Prepayment' => 'Voorschot',
+ 'Price' => 'Prijs',
+ 'Pricegroup' => 'Prijsgroep',
+ 'Pricegroup deleted!' => 'Prijsgroep verwijderd!',
+ 'Pricegroup missing!' => 'Prijsgroep mist!',
+ 'Pricegroup saved!' => 'Prijsgroep opgeslagen!',
+ 'Pricegroups' => 'Prijsgroepen',
+ 'Print' => 'Afdrukken',
+ 'Printed' => 'Afgedrukt',
+ 'Printer' => 'Printer',
+ 'Printing ... ' => 'Afdrukken ...',
+ 'Profit Center' => 'Inkomstenpost',
+ 'Project' => 'Project',
+ 'Project Description Translations' => 'Project Omschrijving Vertaling',
+ 'Project Number' => 'Projectnummer',
+ 'Project Number missing!' => 'Projectnummer ontbreekt!',
+ 'Project Transactions' => 'Projectboekingen',
+ 'Project deleted!' => 'Project verwijderd!',
+ 'Project not on file!' => 'Onbekend project!',
+ 'Project saved!' => 'Project opgeslagen!',
+ 'Projects' => 'Projecten',
+ 'Purchase Order' => 'Inkooporder',
+ 'Purchase Orders' => 'Inkooporders',
+ 'Qty' => 'Aantal',
+ 'Quantity exceeds available units to stock!' => 'Aantal is hoger dan de aanwezige voorraad!',
+ 'Quotation' => 'Offerte',
+ 'Quotation Date' => 'Offertedatum',
+ 'Quotation Date missing!' => 'Offertedatum ontbreekt!',
+ 'Quotation Number' => 'Offertenummer',
+ 'Quotation Number missing!' => 'Offertenummer ontbreekt!',
+ 'Quotation deleted!' => 'Offerte verwijderd!',
+ 'Quotations' => 'Offertes',
+ 'R' => 'R',
+ 'RFQ' => 'Offerteaanvraag',
+ 'RFQ Number' => 'Offerteaanvraagnummer',
+ 'RFQs' => 'Offerteaanvragen',
+ 'ROP' => 'Minimum voorraad',
+ 'Rate' => 'Percentage',
+ 'Rate missing!' => 'Percentage ontbreekt!',
+ 'Recd' => 'Ontvangen',
+ 'Receipt' => 'Ontvangstbewijs',
+ 'Receipt posted!' => 'Ontvangstbewijs geboekt',
+ 'Receipts' => 'Ontvangstbewijzen',
+ 'Receivables' => 'Vorderingen',
+ 'Receive' => 'Inkomende zending',
+ 'Receive Merchandise' => 'Goederen Ontvangen',
+ 'Reconciliation' => 'Boekingen Verwerken',
+ 'Reconciliation Report' => 'Reconcilidatie rapport',
+ 'Record in' => 'Boeken op',
+ 'Reference' => 'Referentie',
+ 'Remaining' => 'Resterend',
+ 'Remove' => 'Verwijder',
+ 'Remove Audit trail up to' => 'Verwijder Accountants opsporing tot',
+ 'Remove Audit trails up to' => 'Verwijder Accountants opsporing tot',
+ 'Removed spoolfiles!' => 'Spoolfiles verwijderd!',
+ 'Removing marked entries from queue ...' => 'Gemarkeerde stukken uit de wachtrij aan het verwijderen',
+ 'Report for' => 'Rapport voor',
+ 'Reports' => 'Rapporten',
+ 'Request for Quotation' => 'Offerteaanvraag',
+ 'Request for Quotations' => 'Offerteaanvragen',
+ 'Required by' => 'Nodig voor',
+ 'Retained Earnings' => 'Winstreserve',
+ 'Role' => 'Rol',
+ 'S' => 'S',
+ 'SIC' => 'SIC',
+ 'SIC deleted!' => 'SIC verwijderd!',
+ 'SIC saved!' => 'SIC opgeslagen!',
+ 'SKU' => 'SKU',
+ 'SSN' => 'Pers.nr.',
+ 'Sale' => 'Verkoopfactuur',
+ 'Sales' => 'Verkoop',
+ 'Sales Invoice' => 'Verkoopfactuur',
+ 'Sales Invoices' => 'Verkoopfacturen',
+ 'Sales Order' => 'Verkooporder',
+ 'Sales Orders' => 'Verkooporders',
+ 'Salesperson' => 'Verkoper',
+ 'Save' => 'Opslaan',
+ 'Save as new' => 'Opslaan als nieuw',
+ 'Save to File' => 'Opslaan als bestand',
+ 'Screen' => 'Scherm',
+ 'Search' => 'Zoek',
+ 'Select' => 'Selecteer',
+ 'Select all' => 'Selecteer alles',
+ 'Select from one of the items below' => 'Kies een van de onderstaande onderdelen',
+ 'Select from one of the names below' => 'Kies een van de onderstaande namen',
+ 'Select from one of the projects below' => 'Kies een van de onderstaande projecten',
+ 'Select postscript or PDF!' => 'Kies postscript of PDF',
+ 'Sell Price' => 'Verkoopprijs',
+ 'Send by E-Mail' => 'Verzenden per E-mail',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Serial No.' => 'Serienr',
+ 'Serial Number' => 'Serienummer',
+ 'Service' => 'Dienst',
+ 'Services' => 'Diensten',
+ 'Setup Templates' => 'Setup templates',
+ 'Ship' => 'Verzenden',
+ 'Ship Merchandise' => 'Goederen Verzenden',
+ 'Ship to' => 'Verzenden aan',
+ 'Ship via' => 'Verzenden via',
+ 'Shipping' => 'Zendingen',
+ 'Shipping Address' => 'Verzendadres',
+ 'Shipping Date' => 'Verzenddatum',
+ 'Shipping Date missing!' => 'Verzenddatum ontbreekt!',
+ 'Shipping Point' => 'Verzendpunt',
+ 'Short' => 'Kort',
+ 'Signature' => 'Handtekening',
+ 'Source' => 'Herkomst',
+ 'Spoolfile' => 'Spoolfile',
+ 'Standard' => 'Standaard',
+ 'Standard Industrial Codes' => 'Standaard Industiële Codes',
+ 'Startdate' => 'Begindatum',
+ 'State/Province' => 'Staat/Provincie',
+ 'Statement' => 'Overzicht',
+ 'Statement Balance' => 'Saldo Overzicht',
+ 'Statement sent to' => 'Overzicht verzonden aan',
+ 'Statements sent to printer!' => 'Overzichten afgedrukt',
+ 'Stock' => 'Voorraad',
+ 'Stock Assembly' => 'Assemblage voorraad',
+ 'Stylesheet' => 'Stylesheet',
+ 'Sub-contract GIFI' => 'GIFI Onderaannemer',
+ 'Subject' => 'Onderwerp',
+ 'Subtotal' => 'Subtotaal',
+ 'Summary' => 'Overzicht',
+ 'System' => 'Systeem',
+ 'System Defaults' => 'Systeem Standaard',
+ 'Tax' => 'Belasting',
+ 'Tax Accounts' => 'Belasting Rekeningen',
+ 'Tax Included' => 'Inclusief Belasting',
+ 'Tax Number' => 'Belastingnummer',
+ 'Tax Number / SSN' => 'Belastingnummer / Pers.nr.',
+ 'Tax collected' => 'Belasting verschuldigd',
+ 'Tax paid' => 'Belasting Betaald',
+ 'Taxable' => 'Belastbaar percentage',
+ 'Template saved!' => 'Template opgeslagen!',
+ 'Templates' => 'Templates',
+ 'Terms' => 'Termijn',
+ 'Text Templates' => 'Tekst templates',
+ 'The following Datasets are not in use and can be deleted' => 'De volgende datasets zijn niet ingebruik en kunnen worder verwijderd.',
+ 'The following Datasets need to be updated' => 'De volgende datasets moeten worden bijgewerkt',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Dit is een eerste controle. Er wordt niks gecreéerd of verwijderd.',
+ 'Till' => 'Kassa',
+ 'To' => 'Tot',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Om een gebruiker aan een groep toe te voegen, een naam te wijzigen, een login naam te wijzigen en op te slaan. Een nieuwe gebruiker zal dan worder opgeslagen met dezelfde gegevens onder de nieuwe login naam.',
+ 'Top Level' => 'Top Niveau',
+ 'Total' => 'Totaal',
+ 'Trade Discount' => 'Handelskorting',
+ 'Transaction Date missing!' => 'Boekingsdatum ontbreekt!',
+ 'Transaction deleted!' => 'Boeking verwijderd!',
+ 'Transaction posted!' => 'Boeking opgeslagen!',
+ 'Transaction reversal enforced for all dates' => 'Boekingen verplicht terugdraaien voor alle datums',
+ 'Transaction reversal enforced up to' => 'Boekingen verplicht terugdraaien tot aan',
+ 'Transactions' => 'Boekingen',
+ 'Transfer' => 'Overboeking',
+ 'Transfer Inventory' => 'Inventaris overboeken',
+ 'Transfer to' => 'Overboeken naar',
+ 'Translation' => 'Vertaling',
+ 'Translation deleted!' => 'Vertaling verwijderd!',
+ 'Translations' => 'Vertalingen',
+ 'Translations saved!' => 'Vertalingen opgeslagen!',
+ 'Trial Balance' => 'Proefbalans',
+ 'Type of Business' => 'Zaaktype',
+ 'Unit' => 'Eenheid',
+ 'Unit of measure' => 'Rekeneenheid',
+ 'Unlock System' => 'Unlock System',
+ 'Update' => 'Bijwerken',
+ 'Update Dataset' => 'Dataset bijwerken',
+ 'Updated' => 'Bijgewerkt',
+ 'Upgrading to Version' => 'Opwaarderen naar Versie',
+ 'Use Templates' => 'Gebruik templates',
+ 'User' => 'Gebruiker',
+ 'User deleted!' => 'Gebruiker verwijderd!',
+ 'User saved!' => 'Gebruiker opgeslagen!',
+ 'Valid until' => 'Geldig tot',
+ 'Vendor' => 'Leverancier',
+ 'Vendor History' => 'Leverancier Historie',
+ 'Vendor Invoice' => 'Inkoopfaktuur',
+ 'Vendor Invoices' => 'Leverancier inkoopfacturen',
+ 'Vendor Number' => 'Leveranciernummer',
+ 'Vendor deleted!' => 'Leverancier verwijderd!',
+ 'Vendor missing!' => 'Leverancier ontbreekt!',
+ 'Vendor not on file!' => 'Leverancier bestaat niet!',
+ 'Vendor saved!' => 'Leverancier opgeslagen!',
+ 'Vendors' => 'Leveranciers',
+ 'Version' => 'Versie',
+ 'Warehouse' => 'Magazijn',
+ 'Warehouse deleted!' => 'Magazijn verwijderd!',
+ 'Warehouse saved!' => 'Magazijn opgeslagen',
+ 'Warehouses' => 'Magazijnen',
+ 'Warning!' => 'Waarschuwing!',
+ 'Weight' => 'Gewicht',
+ 'Weight Unit' => 'Gewichtseenheid',
+ 'What type of item is this?' => 'Wat voor soort artikel is dit?',
+ 'Work Order' => 'Bedrijfs order',
+ 'Work Orders' => 'Werk orders',
+ 'Work Phone' => 'Bedrijfstelefoon',
+ 'Yearend' => 'Jaareinde',
+ 'Yearend date missing!' => 'Jaareinde ontbreekt!',
+ 'Yearend posted!' => 'Jaareinde geboekt!',
+ 'Yearend posting failed!' => 'Boeking jaareinde mislukt!',
+ 'Yes' => 'Ja',
+ 'You did not enter a name!' => 'U heeft geen naam gegeven!',
+ 'You must enter a host and port for local and remote connections!' => 'Vul een "host" en een "port" voor netwerk connecties!',
+ 'account cannot be set to any other type of account' => 'Rekening kan niet omgezet worden naar ander type Rekening',
+ 'as at' => 'per',
+ 'days' => 'dagen',
+ 'does not exist' => 'bestaat niet',
+ 'done' => 'gebeurd',
+ 'ea' => 'voor',
+ 'for Period' => 'voor periode',
+ 'is already a member!' => 'is al een gebruiker',
+ 'localhost' => 'localhost',
+ 'locked!' => 'Geblokeerd!',
+ 'posted!' => 'opgeslagen!',
+ 'sent' => 'verzonden',
+ 'successfully created!' => 'Met succes aangemaakt!',
+ 'successfully deleted!' => 'Met succes verwijderd!',
+ 'website' => 'website',
+};
+
+1;
diff --git a/locale/be_nl/am b/locale/be_nl/am
new file mode 100755
index 00000000..84b008ef
--- /dev/null
+++ b/locale/be_nl/am
@@ -0,0 +1,274 @@
+$self{texts} = {
+ 'AP' => 'Crediteuren',
+ 'AR' => 'Debiteuren',
+ 'About' => 'Over',
+ 'Account' => 'Rekening',
+ 'Account Number' => 'Rekeningnummer',
+ 'Account Number missing!' => 'Rekeningnummer ontbreekt!',
+ 'Account Type' => 'Rekeningtype',
+ 'Account Type missing!' => 'Rekeningtype ontbreekt!',
+ 'Account deleted!' => 'Rekening verwijderd',
+ 'Account does not exist!' => 'Rekening bestaat niet',
+ 'Account saved!' => 'Rekening opgeslagen',
+ 'Accounting Menu' => 'Boekhoudmenu',
+ 'Accrual' => 'Opeengestapeld',
+ 'Activate Audit trail' => 'Activeer Accountants opsporing',
+ 'Add Account' => 'Rekening toevoegen',
+ 'Add Business' => 'Zaaktype toevoegen',
+ 'Add Department' => 'Afdeling toevoegen',
+ 'Add GIFI' => 'Toevoegen GIFI',
+ 'Add Language' => 'Taal toevoegen',
+ 'Add SIC' => 'SIC toevoegen',
+ 'Add Warehouse' => 'Magazijn toevoegen',
+ 'Address' => 'Adres',
+ 'Amount' => 'Bedrag',
+ 'Asset' => 'Activa (bezittingen)',
+ 'Audit Control' => 'Accountants Controle',
+ 'Audit trail disabled' => 'Accountants opsporing onbruikbaar',
+ 'Audit trail enabled' => 'Accountants opsporing toegelaten',
+ 'Audit trail removed up to' => 'Accountants opsporing verwijderd tot',
+ 'Backup sent to' => 'Backup gezonden aan',
+ 'Bin List' => 'Locatielijst',
+ 'Books are open' => 'Boekingsperiode is open',
+ 'Business Number' => 'Kamer van Koophandel nummer',
+ 'Business deleted!' => 'Zaaktype verwijderd!',
+ 'Business saved!' => 'Zaaktype opgeslagen',
+ 'COGS' => 'Kostprijs Verkopen',
+ 'Cannot delete account!' => 'Kan bedrag niet verwijderen!',
+ 'Cannot delete default account!' => 'Kan standaardrekening niet verwijderen!',
+ 'Cannot save account!' => 'Kan rekening niet opslaan!',
+ 'Cannot save defaults!' => 'Kan de standaard niet opslaan!',
+ 'Cannot save preferences!' => 'Kan voorkeuren niet opslaan!',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Kan rekening niet toekennen aan meer dan één debiteuren-, crediteuren- of inventarisrekening',
+ 'Cannot set multiple options for' => 'Kan de meerdere opties voor niet instellen',
+ 'Cash' => 'Kas (contant)',
+ 'Chart of Accounts' => 'Rekeningstelsel',
+ 'Close Books up to' => 'Boeken afsluiten tot',
+ 'Code' => 'Code',
+ 'Code missing!' => 'Code ontbreekt!',
+ 'Company' => 'Bedrijf',
+ 'Confirm!' => 'Bevestig!',
+ 'Continue' => 'Verder',
+ 'Contra' => 'Tegen',
+ 'Copy to COA' => 'Kopieër naar rekeningstelsel',
+ 'Cost Center' => 'Kostenpost',
+ 'Credit' => 'Credit',
+ 'Customer Number' => 'Klantnummer',
+ 'Database Host' => 'Database computer',
+ 'Dataset' => 'Dataset',
+ 'Date Format' => 'Datum formaat',
+ 'Debit' => 'Debet',
+ 'Defaults saved!' => 'Standaarden bewaard!',
+ 'Delete' => 'Verwijder',
+ 'Delete Account' => 'Rekening verwijderen',
+ 'Department deleted!' => 'Afdeling verwijderd!',
+ 'Department saved!' => 'Afdeling opgeslagen!',
+ 'Departments' => 'Afdelingen',
+ 'Description' => 'Omschrijving',
+ 'Description missing!' => 'Omschrijving ontbreekt',
+ 'Discount' => 'Korting',
+ 'Dropdown Limit' => 'Maximum in dropdown-lijst',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'E-mailadres ontbreekt!',
+ 'Edit' => 'Wijzig',
+ 'Edit Account' => 'Rekening wijzigen',
+ 'Edit Business' => 'Zaaktype wijzigen',
+ 'Edit Department' => 'Afdeling wijzigen',
+ 'Edit GIFI' => 'Wijzig GIFI',
+ 'Edit Language' => 'Taal Wijzigen',
+ 'Edit Preferences for' => 'Instellingen wijzigen voor',
+ 'Edit SIC' => 'SIC wijzigen',
+ 'Edit Template' => 'Template wijzigen',
+ 'Edit Warehouse' => 'Magazijn wijzigen',
+ 'Enforce transaction reversal for all dates' => 'Boeking terugdraaien voor alle data',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Vul max drie karakters in, gescheiden door een dubbelepunt (b.v. EUR:USD:GBP:CAD) voor lokale en buitenlandse valuta',
+ 'Equity' => 'Passiva/Eigen Vermogen',
+ 'Expense' => 'Onkosten',
+ 'Expense/Asset' => 'Uitgaven',
+ 'Fax' => 'Fax',
+ 'Foreign Exchange Gain' => 'Wisselkoers winst',
+ 'Foreign Exchange Loss' => 'Wisselkoers verlies',
+ 'GIFI' => 'GIFI',
+ 'GIFI deleted!' => 'GIFI verwijderd!',
+ 'GIFI missing!' => 'GIFI ontbreekt!',
+ 'GIFI saved!' => 'GIFI opgeslagen!',
+ 'GL Transaction' => 'Grootboekboeking (memoriaal) ',
+ 'Heading' => 'Kopregel',
+ 'ID' => 'ID',
+ 'Include in drop-down menus' => 'Toevoegen aan drop-down menus',
+ 'Income' => 'Inkomsten',
+ 'Inventory' => 'Voorraad',
+ 'Invoice' => 'Factuur',
+ 'Is this a summary account to record' => 'Totaalrekening voor',
+ 'Language' => 'Taal',
+ 'Language deleted!' => 'Taal verwijderd!',
+ 'Language saved!' => 'Taal opgeslagen!',
+ 'Languages' => 'Talen',
+ 'Last Numbers & Default Accounts' => 'Laatst toegekende nummers & Standaard Rekeningen',
+ 'Liability' => 'Passiva',
+ 'Licensed to' => 'Gelicenseerd aan',
+ 'Link' => 'Verbinding',
+ 'Menu Width' => 'Menu Breedte',
+ 'Method' => 'Methode',
+ 'Name' => 'Naam',
+ 'No' => 'Nee',
+ 'No email address for' => 'Geen email adres voor',
+ 'Number' => 'Nummer',
+ 'Number Format' => 'Nummeraanduiding',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Pakbon',
+ 'Password' => 'Wachtwoord',
+ 'Payables' => 'Betalingen',
+ 'Payment' => 'Betaling',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Uitzoeklijst',
+ 'Postscript' => 'Postscript',
+ 'Preferences saved!' => 'Instellingen bewaard!',
+ 'Print' => 'Afdrukken',
+ 'Printer' => 'Printer',
+ 'Profit Center' => 'Inkomstenpost',
+ 'Purchase Order' => 'Inkooporder',
+ 'Purchase Orders' => 'Inkooporders',
+ 'RFQ Number' => 'Offerteaanvraagnummer',
+ 'Rate' => 'Percentage',
+ 'Receivables' => 'Vorderingen',
+ 'Reference' => 'Referentie',
+ 'Remove Audit trail up to' => 'Verwijder Accountants opsporing tot',
+ 'Retained Earnings' => 'Winstreserve',
+ 'SIC deleted!' => 'SIC verwijderd!',
+ 'SIC saved!' => 'SIC opgeslagen!',
+ 'Sales Invoice' => 'Verkoopfactuur',
+ 'Sales Order' => 'Verkooporder',
+ 'Sales Orders' => 'Verkooporders',
+ 'Save' => 'Opslaan',
+ 'Save as new' => 'Opslaan als nieuw',
+ 'Signature' => 'Handtekening',
+ 'Standard Industrial Codes' => 'Standaard Industiële Codes',
+ 'Stylesheet' => 'Stylesheet',
+ 'System Defaults' => 'Systeem Standaard',
+ 'Tax' => 'Belasting',
+ 'Template saved!' => 'Template opgeslagen!',
+ 'Transaction reversal enforced for all dates' => 'Boekingen verplicht terugdraaien voor alle datums',
+ 'Transaction reversal enforced up to' => 'Boekingen verplicht terugdraaien tot aan',
+ 'Type of Business' => 'Zaaktype',
+ 'Update' => 'Bijwerken',
+ 'User' => 'Gebruiker',
+ 'Vendor Invoice' => 'Inkoopfaktuur',
+ 'Vendor Number' => 'Leveranciernummer',
+ 'Version' => 'Versie',
+ 'Warehouse deleted!' => 'Magazijn verwijderd!',
+ 'Warehouse saved!' => 'Magazijn opgeslagen',
+ 'Warehouses' => 'Magazijnen',
+ 'Weight Unit' => 'Gewichtseenheid',
+ 'Work Order' => 'Bedrijfs order',
+ 'Yearend' => 'Jaareinde',
+ 'Yearend date missing!' => 'Jaareinde ontbreekt!',
+ 'Yearend posted!' => 'Jaareinde geboekt!',
+ 'Yearend posting failed!' => 'Boeking jaareinde mislukt!',
+ 'Yes' => 'Ja',
+ 'account cannot be set to any other type of account' => 'Rekening kan niet omgezet worden naar ander type Rekening',
+ 'done' => 'gebeurd',
+ 'localhost' => 'localhost',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'rekening_toevoegen' => 'add_account',
+ 'zaaktype_toevoegen' => 'add_business',
+ 'afdeling_toevoegen' => 'add_department',
+ 'taal_toevoegen' => 'add_language',
+ 'sic_toevoegen' => 'add_sic',
+ 'magazijn_toevoegen' => 'add_warehouse',
+ 'verder' => 'continue',
+ 'kopieër_naar_rekeningstelsel' => 'copy_to_coa',
+ 'verwijder' => 'delete',
+ 'wijzig' => 'edit',
+ 'rekening_wijzigen' => 'edit_account',
+ 'opslaan' => 'save',
+ 'opslaan_als_nieuw' => 'save_as_new',
+ 'bijwerken' => 'update',
+};
+
+1;
+
diff --git a/locale/be_nl/ap b/locale/be_nl/ap
new file mode 100755
index 00000000..b000cdc5
--- /dev/null
+++ b/locale/be_nl/ap
@@ -0,0 +1,193 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Openstaande Crediteuren',
+ 'AP Transaction' => 'Crediteurenboeking',
+ 'AP Transactions' => 'Crediteurenboekingen',
+ 'AR Outstanding' => 'Openstaande Debiteuren',
+ 'AR Transaction' => 'Debiteurenboeking',
+ 'AR Transactions' => 'Debiteurenboekingen',
+ 'Account' => 'Rekening',
+ 'Accounting Menu' => 'Boekhoudmenu',
+ 'Address' => 'Adres',
+ 'Amount' => 'Bedrag',
+ 'Amount Due' => 'Verschuldigd bedrag',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Transaction' => 'Weet u zeker dat u deze boeking wilt verwijderen?',
+ 'Aug' => 'Aug',
+ 'August' => 'Augustus',
+ 'Bcc' => 'Onzichtbare kopie aan',
+ 'Cannot delete transaction!' => 'Kan boeking niet verwijderen!',
+ 'Cannot post payment for a closed period!' => 'Kan geen betaling boeken voor afgesloten periode!',
+ 'Cannot post transaction for a closed period!' => 'Kan geen boeking maken in afgesloten periode',
+ 'Cannot post transaction!' => 'Kan transactie niet boeken!',
+ 'Cc' => 'Kopie aan',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Afgesloten',
+ 'Confirm!' => 'Bevestig!',
+ 'Continue' => 'Verder',
+ 'Credit' => 'Credit',
+ 'Credit Limit' => 'Kredietlimiet',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valuta',
+ 'Current' => 'Huidig',
+ 'Customer' => 'Klant',
+ 'Customer missing!' => 'Klant ontbreekt!',
+ 'Customer not on file!' => 'Klant bestaat niet!',
+ 'Date' => 'Datum',
+ 'Date Paid' => 'Betaaldatum',
+ 'Debit' => 'Debet',
+ 'Dec' => 'Dec',
+ 'December' => 'December',
+ 'Delete' => 'Verwijder',
+ 'Department' => 'Afdeling',
+ 'Description' => 'Omschrijving',
+ 'Detail' => 'Detail',
+ 'Due Date' => 'Vervaldatum',
+ 'Due Date missing!' => 'Vervaldatum ontbreekt!',
+ 'E-mail' => 'E-mail',
+ 'Employee' => 'Werknemer',
+ 'Exch' => 'Wisselkoers',
+ 'Exchange Rate' => 'Wisselkoers',
+ 'Exchange rate for payment missing!' => 'Wisselkoers voor Betaling ontbreekt!',
+ 'Exchange rate missing!' => 'Wisselkoers ontbreekt!',
+ 'Feb' => 'Feb',
+ 'February' => 'Februari',
+ 'From' => 'Van',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Toevoegen aan Uitvoer',
+ 'Invoice' => 'Factuur',
+ 'Invoice Date' => 'Factuurdatum',
+ 'Invoice Date missing!' => 'Factuurdatum ontbreekt!',
+ 'Invoice Number' => 'Factuurnummer',
+ 'Jan' => 'Jan',
+ 'January' => 'Januari',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Manager' => 'Manager',
+ 'Mar' => 'Mrt',
+ 'March' => 'Maart',
+ 'May' => 'Mei',
+ 'May ' => 'Mei',
+ 'Memo' => 'Memo',
+ 'Message' => 'Boodschap',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Opmerkingen',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Nummer',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Open' => 'Open',
+ 'Order' => 'Bestelling',
+ 'Order Number' => 'Referentie',
+ 'PDF' => 'PDF',
+ 'Paid' => 'Betaald',
+ 'Payment date missing!' => 'Geen betalingsdatum aanwezig!',
+ 'Payments' => 'Betalingen',
+ 'Post' => 'Boek',
+ 'Post as new' => 'Boek als nieuw',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Afdrukken',
+ 'Printed' => 'Afgedrukt',
+ 'Project' => 'Project',
+ 'Project not on file!' => 'Onbekend project!',
+ 'Receipt' => 'Ontvangstbewijs',
+ 'Reference' => 'Referentie',
+ 'Remaining' => 'Resterend',
+ 'Salesperson' => 'Verkoper',
+ 'Screen' => 'Scherm',
+ 'Select from one of the names below' => 'Kies een van de onderstaande namen',
+ 'Select from one of the projects below' => 'Kies een van de onderstaande projecten',
+ 'Select postscript or PDF!' => 'Kies postscript of PDF',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Ship to' => 'Verzenden aan',
+ 'Ship via' => 'Verzenden via',
+ 'Shipping Point' => 'Verzendpunt',
+ 'Source' => 'Herkomst',
+ 'Startdate' => 'Begindatum',
+ 'Subject' => 'Onderwerp',
+ 'Subtotal' => 'Subtotaal',
+ 'Summary' => 'Overzicht',
+ 'Tax' => 'Belasting',
+ 'Tax Included' => 'Inclusief Belasting',
+ 'Till' => 'Kassa',
+ 'To' => 'Tot',
+ 'Total' => 'Totaal',
+ 'Transaction deleted!' => 'Boeking verwijderd!',
+ 'Transaction posted!' => 'Boeking opgeslagen!',
+ 'Update' => 'Bijwerken',
+ 'Vendor' => 'Leverancier',
+ 'Vendor missing!' => 'Leverancier ontbreekt!',
+ 'Vendor not on file!' => 'Leverancier bestaat niet!',
+ 'Warning!' => 'Waarschuwing!',
+ 'Yes' => 'Ja',
+ 'sent' => 'verzonden',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'crediteurenboeking' => 'ap_transaction',
+ 'debiteurenboeking' => 'ar_transaction',
+ 'verder' => 'continue',
+ 'verwijder' => 'delete',
+ 'boek' => 'post',
+ 'boek_als_nieuw' => 'post_as_new',
+ 'afdrukken' => 'print',
+ 'verzenden_aan' => 'ship_to',
+ 'bijwerken' => 'update',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/be_nl/ar b/locale/be_nl/ar
new file mode 100755
index 00000000..b000cdc5
--- /dev/null
+++ b/locale/be_nl/ar
@@ -0,0 +1,193 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Openstaande Crediteuren',
+ 'AP Transaction' => 'Crediteurenboeking',
+ 'AP Transactions' => 'Crediteurenboekingen',
+ 'AR Outstanding' => 'Openstaande Debiteuren',
+ 'AR Transaction' => 'Debiteurenboeking',
+ 'AR Transactions' => 'Debiteurenboekingen',
+ 'Account' => 'Rekening',
+ 'Accounting Menu' => 'Boekhoudmenu',
+ 'Address' => 'Adres',
+ 'Amount' => 'Bedrag',
+ 'Amount Due' => 'Verschuldigd bedrag',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Transaction' => 'Weet u zeker dat u deze boeking wilt verwijderen?',
+ 'Aug' => 'Aug',
+ 'August' => 'Augustus',
+ 'Bcc' => 'Onzichtbare kopie aan',
+ 'Cannot delete transaction!' => 'Kan boeking niet verwijderen!',
+ 'Cannot post payment for a closed period!' => 'Kan geen betaling boeken voor afgesloten periode!',
+ 'Cannot post transaction for a closed period!' => 'Kan geen boeking maken in afgesloten periode',
+ 'Cannot post transaction!' => 'Kan transactie niet boeken!',
+ 'Cc' => 'Kopie aan',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Afgesloten',
+ 'Confirm!' => 'Bevestig!',
+ 'Continue' => 'Verder',
+ 'Credit' => 'Credit',
+ 'Credit Limit' => 'Kredietlimiet',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valuta',
+ 'Current' => 'Huidig',
+ 'Customer' => 'Klant',
+ 'Customer missing!' => 'Klant ontbreekt!',
+ 'Customer not on file!' => 'Klant bestaat niet!',
+ 'Date' => 'Datum',
+ 'Date Paid' => 'Betaaldatum',
+ 'Debit' => 'Debet',
+ 'Dec' => 'Dec',
+ 'December' => 'December',
+ 'Delete' => 'Verwijder',
+ 'Department' => 'Afdeling',
+ 'Description' => 'Omschrijving',
+ 'Detail' => 'Detail',
+ 'Due Date' => 'Vervaldatum',
+ 'Due Date missing!' => 'Vervaldatum ontbreekt!',
+ 'E-mail' => 'E-mail',
+ 'Employee' => 'Werknemer',
+ 'Exch' => 'Wisselkoers',
+ 'Exchange Rate' => 'Wisselkoers',
+ 'Exchange rate for payment missing!' => 'Wisselkoers voor Betaling ontbreekt!',
+ 'Exchange rate missing!' => 'Wisselkoers ontbreekt!',
+ 'Feb' => 'Feb',
+ 'February' => 'Februari',
+ 'From' => 'Van',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Toevoegen aan Uitvoer',
+ 'Invoice' => 'Factuur',
+ 'Invoice Date' => 'Factuurdatum',
+ 'Invoice Date missing!' => 'Factuurdatum ontbreekt!',
+ 'Invoice Number' => 'Factuurnummer',
+ 'Jan' => 'Jan',
+ 'January' => 'Januari',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Manager' => 'Manager',
+ 'Mar' => 'Mrt',
+ 'March' => 'Maart',
+ 'May' => 'Mei',
+ 'May ' => 'Mei',
+ 'Memo' => 'Memo',
+ 'Message' => 'Boodschap',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Opmerkingen',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Nummer',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Open' => 'Open',
+ 'Order' => 'Bestelling',
+ 'Order Number' => 'Referentie',
+ 'PDF' => 'PDF',
+ 'Paid' => 'Betaald',
+ 'Payment date missing!' => 'Geen betalingsdatum aanwezig!',
+ 'Payments' => 'Betalingen',
+ 'Post' => 'Boek',
+ 'Post as new' => 'Boek als nieuw',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Afdrukken',
+ 'Printed' => 'Afgedrukt',
+ 'Project' => 'Project',
+ 'Project not on file!' => 'Onbekend project!',
+ 'Receipt' => 'Ontvangstbewijs',
+ 'Reference' => 'Referentie',
+ 'Remaining' => 'Resterend',
+ 'Salesperson' => 'Verkoper',
+ 'Screen' => 'Scherm',
+ 'Select from one of the names below' => 'Kies een van de onderstaande namen',
+ 'Select from one of the projects below' => 'Kies een van de onderstaande projecten',
+ 'Select postscript or PDF!' => 'Kies postscript of PDF',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Ship to' => 'Verzenden aan',
+ 'Ship via' => 'Verzenden via',
+ 'Shipping Point' => 'Verzendpunt',
+ 'Source' => 'Herkomst',
+ 'Startdate' => 'Begindatum',
+ 'Subject' => 'Onderwerp',
+ 'Subtotal' => 'Subtotaal',
+ 'Summary' => 'Overzicht',
+ 'Tax' => 'Belasting',
+ 'Tax Included' => 'Inclusief Belasting',
+ 'Till' => 'Kassa',
+ 'To' => 'Tot',
+ 'Total' => 'Totaal',
+ 'Transaction deleted!' => 'Boeking verwijderd!',
+ 'Transaction posted!' => 'Boeking opgeslagen!',
+ 'Update' => 'Bijwerken',
+ 'Vendor' => 'Leverancier',
+ 'Vendor missing!' => 'Leverancier ontbreekt!',
+ 'Vendor not on file!' => 'Leverancier bestaat niet!',
+ 'Warning!' => 'Waarschuwing!',
+ 'Yes' => 'Ja',
+ 'sent' => 'verzonden',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'crediteurenboeking' => 'ap_transaction',
+ 'debiteurenboeking' => 'ar_transaction',
+ 'verder' => 'continue',
+ 'verwijder' => 'delete',
+ 'boek' => 'post',
+ 'boek_als_nieuw' => 'post_as_new',
+ 'afdrukken' => 'print',
+ 'verzenden_aan' => 'ship_to',
+ 'bijwerken' => 'update',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/be_nl/arap b/locale/be_nl/arap
new file mode 100755
index 00000000..a38d19cb
--- /dev/null
+++ b/locale/be_nl/arap
@@ -0,0 +1,51 @@
+$self{texts} = {
+ 'Address' => 'Adres',
+ 'Bcc' => 'Onzichtbare kopie aan',
+ 'Cc' => 'Kopie aan',
+ 'Continue' => 'Verder',
+ 'Customer not on file!' => 'Klant bestaat niet!',
+ 'Date' => 'Datum',
+ 'Description' => 'Omschrijving',
+ 'E-mail' => 'E-mail',
+ 'Message' => 'Boodschap',
+ 'Number' => 'Nummer',
+ 'Print' => 'Afdrukken',
+ 'Project not on file!' => 'Onbekend project!',
+ 'Reference' => 'Referentie',
+ 'Select from one of the names below' => 'Kies een van de onderstaande namen',
+ 'Select from one of the projects below' => 'Kies een van de onderstaande projecten',
+ 'Startdate' => 'Begindatum',
+ 'Subject' => 'Onderwerp',
+ 'To' => 'Tot',
+ 'Vendor not on file!' => 'Leverancier bestaat niet!',
+ 'Warning!' => 'Waarschuwing!',
+ 'sent' => 'verzonden',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'verder' => 'continue',
+};
+
+1;
+
diff --git a/locale/be_nl/arapprn b/locale/be_nl/arapprn
new file mode 100755
index 00000000..8d2b6ca2
--- /dev/null
+++ b/locale/be_nl/arapprn
@@ -0,0 +1,30 @@
+$self{texts} = {
+ 'Account' => 'Rekening',
+ 'Amount' => 'Bedrag',
+ 'Continue' => 'Verder',
+ 'Date' => 'Datum',
+ 'Memo' => 'Memo',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'Postscript',
+ 'Printed' => 'Afgedrukt',
+ 'Screen' => 'Scherm',
+ 'Select postscript or PDF!' => 'Kies postscript of PDF',
+ 'Source' => 'Herkomst',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'verder' => 'continue',
+};
+
+1;
+
diff --git a/locale/be_nl/bp b/locale/be_nl/bp
new file mode 100755
index 00000000..7dcf9b93
--- /dev/null
+++ b/locale/be_nl/bp
@@ -0,0 +1,63 @@
+$self{texts} = {
+ 'Account' => 'Rekening',
+ 'Accounting Menu' => 'Boekhoudmenu',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Weet us zeker dat u de gemarkeerde stukken wil verwijderen uit de wachtrij?',
+ 'Bin Lists' => 'Verzamel lijsten',
+ 'Cannot remove files!' => 'Kan bestanden niet verwijderen!',
+ 'Confirm!' => 'Bevestig!',
+ 'Continue' => 'Verder',
+ 'Current' => 'Huidig',
+ 'Customer' => 'Klant',
+ 'Date' => 'Datum',
+ 'Employee' => 'Werknemer',
+ 'From' => 'Van',
+ 'ID' => 'ID',
+ 'Invoice' => 'Factuur',
+ 'Invoice Number' => 'Factuurnummer',
+ 'Marked entries printed!' => 'Gemarkeerde delen afgedrukt!',
+ 'Order' => 'Bestelling',
+ 'Order Number' => 'Referentie',
+ 'Packing Lists' => 'Pakbonnen',
+ 'Pick Lists' => 'Pick lijsten',
+ 'Print' => 'Afdrukken',
+ 'Purchase Orders' => 'Inkooporders',
+ 'Quotation' => 'Offerte',
+ 'Quotation Number' => 'Offertenummer',
+ 'Quotations' => 'Offertes',
+ 'RFQs' => 'Offerteaanvragen',
+ 'Remove' => 'Verwijder',
+ 'Removed spoolfiles!' => 'Spoolfiles verwijderd!',
+ 'Removing marked entries from queue ...' => 'Gemarkeerde stukken uit de wachtrij aan het verwijderen',
+ 'Sales Invoices' => 'Verkoopfacturen',
+ 'Sales Orders' => 'Verkooporders',
+ 'Select all' => 'Selecteer alles',
+ 'Spoolfile' => 'Spoolfile',
+ 'To' => 'Tot',
+ 'Vendor' => 'Leverancier',
+ 'Work Orders' => 'Werk orders',
+ 'Yes' => 'Ja',
+ 'done' => 'gebeurd',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'verder' => 'continue',
+ 'afdrukken' => 'print',
+ 'verwijder' => 'remove',
+ 'selecteer_alles' => 'select_all',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/be_nl/ca b/locale/be_nl/ca
new file mode 100755
index 00000000..5abe92f9
--- /dev/null
+++ b/locale/be_nl/ca
@@ -0,0 +1,55 @@
+$self{texts} = {
+ 'Account' => 'Rekening',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Aug' => 'Aug',
+ 'August' => 'Augustus',
+ 'Balance' => 'Saldo',
+ 'Chart of Accounts' => 'Rekeningstelsel',
+ 'Credit' => 'Credit',
+ 'Current' => 'Huidig',
+ 'Date' => 'Datum',
+ 'Debit' => 'Debet',
+ 'Dec' => 'Dec',
+ 'December' => 'December',
+ 'Department' => 'Afdeling',
+ 'Description' => 'Omschrijving',
+ 'Feb' => 'Feb',
+ 'February' => 'Februari',
+ 'From' => 'Van',
+ 'GIFI' => 'GIFI',
+ 'Include in Report' => 'Toevoegen aan Uitvoer',
+ 'Jan' => 'Jan',
+ 'January' => 'Januari',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'List Transactions' => 'Boekingen tonen',
+ 'Mar' => 'Mrt',
+ 'March' => 'Maart',
+ 'May' => 'Mei',
+ 'May ' => 'Mei',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Project Number' => 'Projectnummer',
+ 'R' => 'R',
+ 'Reference' => 'Referentie',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Subtotal' => 'Subtotaal',
+ 'To' => 'Tot',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'boekingen_tonen' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/be_nl/cp b/locale/be_nl/cp
new file mode 100755
index 00000000..8c04bc57
--- /dev/null
+++ b/locale/be_nl/cp
@@ -0,0 +1,123 @@
+$self{texts} = {
+ 'AP' => 'Crediteuren',
+ 'AR' => 'Debiteuren',
+ 'Account' => 'Rekening',
+ 'Accounting Menu' => 'Boekhoudmenu',
+ 'Address' => 'Adres',
+ 'All' => 'Allemaal',
+ 'Amount' => 'Bedrag',
+ 'Amount Due' => 'Verschuldigd bedrag',
+ 'Bcc' => 'Onzichtbare kopie aan',
+ 'Cannot post Payment!' => 'Kan betaling niet boeken!',
+ 'Cannot post Receipt!' => 'Kan ontvangst niet boeken!',
+ 'Cannot post payment for a closed period!' => 'Kan geen betaling boeken voor afgesloten periode!',
+ 'Cc' => 'Kopie aan',
+ 'Continue' => 'Verder',
+ 'Currency' => 'Valuta',
+ 'Customer' => 'Klant',
+ 'Customer not on file!' => 'Klant bestaat niet!',
+ 'Date' => 'Datum',
+ 'Date missing!' => 'Datum ontbreekt!',
+ 'Department' => 'Afdeling',
+ 'Deposit' => 'Storting',
+ 'Description' => 'Omschrijving',
+ 'Due Date' => 'Vervaldatum',
+ 'E-mail' => 'E-mail',
+ 'Exchange Rate' => 'Wisselkoers',
+ 'Exchange rate missing!' => 'Wisselkoers ontbreekt!',
+ 'From' => 'Van',
+ 'Invoice' => 'Factuur',
+ 'Invoices' => 'Facturen',
+ 'Language' => 'Taal',
+ 'Memo' => 'Memo',
+ 'Message' => 'Boodschap',
+ 'Number' => 'Nummer',
+ 'PDF' => 'PDF',
+ 'Payment' => 'Betaling',
+ 'Payment posted!' => 'Betaling geboekt!',
+ 'Payments' => 'Betalingen',
+ 'Post' => 'Boek',
+ 'Postscript' => 'Postscript',
+ 'Prepayment' => 'Voorschot',
+ 'Print' => 'Afdrukken',
+ 'Project not on file!' => 'Onbekend project!',
+ 'Receipt' => 'Ontvangstbewijs',
+ 'Receipt posted!' => 'Ontvangstbewijs geboekt',
+ 'Receipts' => 'Ontvangstbewijzen',
+ 'Reference' => 'Referentie',
+ 'Screen' => 'Scherm',
+ 'Select' => 'Selecteer',
+ 'Select all' => 'Selecteer alles',
+ 'Select from one of the names below' => 'Kies een van de onderstaande namen',
+ 'Select from one of the projects below' => 'Kies een van de onderstaande projecten',
+ 'Select postscript or PDF!' => 'Kies postscript of PDF',
+ 'Source' => 'Herkomst',
+ 'Startdate' => 'Begindatum',
+ 'Subject' => 'Onderwerp',
+ 'To' => 'Tot',
+ 'Update' => 'Bijwerken',
+ 'Vendor' => 'Leverancier',
+ 'Vendor not on file!' => 'Leverancier bestaat niet!',
+ 'Warning!' => 'Waarschuwing!',
+ 'sent' => 'verzonden',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'verder' => 'continue',
+ 'boek' => 'post',
+ 'afdrukken' => 'print',
+ 'selecteer_alles' => 'select_all',
+ 'bijwerken' => 'update',
+};
+
+1;
+
diff --git a/locale/be_nl/ct b/locale/be_nl/ct
new file mode 100755
index 00000000..141549ae
--- /dev/null
+++ b/locale/be_nl/ct
@@ -0,0 +1,178 @@
+$self{texts} = {
+ 'AP Transaction' => 'Crediteurenboeking',
+ 'AP Transactions' => 'Crediteurenboekingen',
+ 'AR Transaction' => 'Debiteurenboeking',
+ 'AR Transactions' => 'Debiteurenboekingen',
+ 'Accounting Menu' => 'Boekhoudmenu',
+ 'Active' => 'Actief',
+ 'Add Customer' => 'Klant toevoegen',
+ 'Add Vendor' => 'Leverancier toevoegen',
+ 'Address' => 'Adres',
+ 'All' => 'Allemaal',
+ 'Amount' => 'Bedrag',
+ 'BIC' => 'BIC',
+ 'Bcc' => 'Onzichtbare kopie aan',
+ 'Billing Address' => 'Facturatieadres',
+ 'Break' => 'Onderbreking',
+ 'Cannot delete customer!' => 'Kan klant niet verwijderen!',
+ 'Cannot delete vendor!' => 'Kan leverancier niet verwijderen!',
+ 'Cc' => 'Kopie aan',
+ 'City' => 'Stad',
+ 'Closed' => 'Afgesloten',
+ 'Company Name' => 'Bedrijfsnaam',
+ 'Contact' => 'Contact',
+ 'Continue' => 'Verder',
+ 'Cost' => 'Kost',
+ 'Country' => 'Land',
+ 'Credit Limit' => 'Kredietlimiet',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valuta',
+ 'Customer History' => 'Klant Historie',
+ 'Customer Number' => 'Klantnummer',
+ 'Customer deleted!' => 'Klant verwijderd!',
+ 'Customer saved!' => 'Klant opgeslagen!',
+ 'Customers' => 'Klanten',
+ 'Delete' => 'Verwijder',
+ 'Delivery Date' => 'Leverdatum',
+ 'Description' => 'Omschrijving',
+ 'Detail' => 'Detail',
+ 'Discount' => 'Korting',
+ 'E-mail' => 'E-mail',
+ 'Edit Customer' => 'Klant wijzigen',
+ 'Edit Vendor' => 'Leverancier wijzigen',
+ 'Employee' => 'Werknemer',
+ 'Enddate' => 'Einddatum',
+ 'Fax' => 'Fax',
+ 'From' => 'Van',
+ 'GIFI' => 'GIFI',
+ 'Group' => 'Groep',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Toevoegen aan Uitvoer',
+ 'Invoice' => 'Factuur',
+ 'Item not on file!' => 'Dit onderdeel is niet in de database gevonden!',
+ 'Language' => 'Taal',
+ 'Leadtime' => 'Levertijd',
+ 'Manager' => 'Manager',
+ 'Name' => 'Naam',
+ 'Name missing!' => 'Naam ontbreekt!',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Opmerkingen',
+ 'Number' => 'Nummer',
+ 'Open' => 'Open',
+ 'Order' => 'Bestelling',
+ 'Orphaned' => 'Wees',
+ 'POS' => 'Verkooppunt',
+ 'Phone' => 'Tel.',
+ 'Pricegroup' => 'Prijsgroep',
+ 'Project Number' => 'Projectnummer',
+ 'Purchase Order' => 'Inkooporder',
+ 'Purchase Orders' => 'Inkooporders',
+ 'Qty' => 'Aantal',
+ 'Quotation' => 'Offerte',
+ 'Quotations' => 'Offertes',
+ 'RFQ' => 'Offerteaanvraag',
+ 'Request for Quotations' => 'Offerteaanvragen',
+ 'SIC' => 'SIC',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Verkoopfactuur',
+ 'Sales Invoices' => 'Verkoopfacturen',
+ 'Sales Order' => 'Verkooporder',
+ 'Sales Orders' => 'Verkooporders',
+ 'Salesperson' => 'Verkoper',
+ 'Save' => 'Opslaan',
+ 'Save as new' => 'Opslaan als nieuw',
+ 'Search' => 'Zoek',
+ 'Sell Price' => 'Verkoopprijs',
+ 'Serial Number' => 'Serienummer',
+ 'Shipping Address' => 'Verzendadres',
+ 'Startdate' => 'Begindatum',
+ 'State/Province' => 'Staat/Provincie',
+ 'Sub-contract GIFI' => 'GIFI Onderaannemer',
+ 'Subtotal' => 'Subtotaal',
+ 'Summary' => 'Overzicht',
+ 'Tax' => 'Belasting',
+ 'Tax Included' => 'Inclusief Belasting',
+ 'Tax Number' => 'Belastingnummer',
+ 'Tax Number / SSN' => 'Belastingnummer / Pers.nr.',
+ 'Taxable' => 'Belastbaar percentage',
+ 'Terms' => 'Termijn',
+ 'To' => 'Tot',
+ 'Total' => 'Totaal',
+ 'Type of Business' => 'Zaaktype',
+ 'Unit' => 'Eenheid',
+ 'Update' => 'Bijwerken',
+ 'Vendor History' => 'Leverancier Historie',
+ 'Vendor Invoice' => 'Inkoopfaktuur',
+ 'Vendor Invoices' => 'Leverancier inkoopfacturen',
+ 'Vendor Number' => 'Leveranciernummer',
+ 'Vendor deleted!' => 'Leverancier verwijderd!',
+ 'Vendor saved!' => 'Leverancier opgeslagen!',
+ 'Vendors' => 'Leveranciers',
+ 'days' => 'dagen',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'crediteurenboeking' => 'ap_transaction',
+ 'debiteurenboeking' => 'ar_transaction',
+ 'klant_toevoegen' => 'add_customer',
+ 'leverancier_toevoegen' => 'add_vendor',
+ 'verder' => 'continue',
+ 'verwijder' => 'delete',
+ 'verkooppunt' => 'pos',
+ 'inkooporder' => 'purchase_order',
+ 'offerte' => 'quotation',
+ 'offerteaanvraag' => 'rfq',
+ 'verkoopfactuur' => 'sales_invoice',
+ 'verkooporder' => 'sales_order',
+ 'opslaan' => 'save',
+ 'opslaan_als_nieuw' => 'save_as_new',
+ 'bijwerken' => 'update',
+ 'inkoopfaktuur' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/be_nl/gl b/locale/be_nl/gl
new file mode 100755
index 00000000..37f3dbb3
--- /dev/null
+++ b/locale/be_nl/gl
@@ -0,0 +1,150 @@
+$self{texts} = {
+ 'AP Transaction' => 'Crediteurenboeking',
+ 'AR Transaction' => 'Debiteurenboeking',
+ 'Account' => 'Rekening',
+ 'Accounting Menu' => 'Boekhoudmenu',
+ 'Add Cash Transfer Transaction' => 'Geldoverboeking toevoegen',
+ 'Add General Ledger Transaction' => 'Journaalpost toevoegen',
+ 'Address' => 'Adres',
+ 'All' => 'Allemaal',
+ 'Amount' => 'Bedrag',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Transaction' => 'Weet u zeker dat u deze boeking wilt verwijderen?',
+ 'Asset' => 'Activa (bezittingen)',
+ 'Aug' => 'Aug',
+ 'August' => 'Augustus',
+ 'Balance' => 'Saldo',
+ 'Bcc' => 'Onzichtbare kopie aan',
+ 'Cannot delete transaction!' => 'Kan boeking niet verwijderen!',
+ 'Cannot post transaction for a closed period!' => 'Kan geen boeking maken in afgesloten periode',
+ 'Cannot post transaction!' => 'Kan transactie niet boeken!',
+ 'Cc' => 'Kopie aan',
+ 'Confirm!' => 'Bevestig!',
+ 'Continue' => 'Verder',
+ 'Credit' => 'Credit',
+ 'Current' => 'Huidig',
+ 'Customer not on file!' => 'Klant bestaat niet!',
+ 'Date' => 'Datum',
+ 'Debit' => 'Debet',
+ 'Dec' => 'Dec',
+ 'December' => 'December',
+ 'Delete' => 'Verwijder',
+ 'Department' => 'Afdeling',
+ 'Description' => 'Omschrijving',
+ 'E-mail' => 'E-mail',
+ 'Edit Cash Transfer Transaction' => 'Kasoverboeking wijzigen',
+ 'Edit General Ledger Transaction' => 'Boeking in grootboek wijzigen',
+ 'Equity' => 'Passiva/Eigen Vermogen',
+ 'Expense' => 'Onkosten',
+ 'FX' => 'FX',
+ 'Feb' => 'Feb',
+ 'February' => 'Februari',
+ 'From' => 'Van',
+ 'GIFI' => 'GIFI',
+ 'GL Transaction' => 'Grootboekboeking (memoriaal) ',
+ 'General Ledger' => 'Grootboek',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Toevoegen aan Uitvoer',
+ 'Income' => 'Inkomsten',
+ 'Jan' => 'Jan',
+ 'January' => 'Januari',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Liability' => 'Passiva',
+ 'Mar' => 'Mrt',
+ 'March' => 'Maart',
+ 'May' => 'Mei',
+ 'May ' => 'Mei',
+ 'Memo' => 'Memo',
+ 'Message' => 'Boodschap',
+ 'Notes' => 'Opmerkingen',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Nummer',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Out of balance transaction!' => 'Boeking is niet in evenwicht',
+ 'Post' => 'Boek',
+ 'Post as new' => 'Boek als nieuw',
+ 'Print' => 'Afdrukken',
+ 'Project' => 'Project',
+ 'Project not on file!' => 'Onbekend project!',
+ 'R' => 'R',
+ 'Reference' => 'Referentie',
+ 'Reports' => 'Rapporten',
+ 'Select from one of the names below' => 'Kies een van de onderstaande namen',
+ 'Select from one of the projects below' => 'Kies een van de onderstaande projecten',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Source' => 'Herkomst',
+ 'Startdate' => 'Begindatum',
+ 'Subject' => 'Onderwerp',
+ 'Subtotal' => 'Subtotaal',
+ 'To' => 'Tot',
+ 'Transaction Date missing!' => 'Boekingsdatum ontbreekt!',
+ 'Transaction deleted!' => 'Boeking verwijderd!',
+ 'Transaction posted!' => 'Boeking opgeslagen!',
+ 'Update' => 'Bijwerken',
+ 'Vendor not on file!' => 'Leverancier bestaat niet!',
+ 'Warning!' => 'Waarschuwing!',
+ 'Yes' => 'Ja',
+ 'sent' => 'verzonden',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'crediteurenboeking' => 'ap_transaction',
+ 'debiteurenboeking' => 'ar_transaction',
+ 'verder' => 'continue',
+ 'verwijder' => 'delete',
+ 'grootboekboeking_(memoriaal)_' => 'gl_transaction',
+ 'boek' => 'post',
+ 'boek_als_nieuw' => 'post_as_new',
+ 'bijwerken' => 'update',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/be_nl/hr b/locale/be_nl/hr
new file mode 100755
index 00000000..a66a68fc
--- /dev/null
+++ b/locale/be_nl/hr
@@ -0,0 +1,113 @@
+$self{texts} = {
+ 'AP' => 'Crediteuren',
+ 'Above' => 'Boven',
+ 'Accounting Menu' => 'Boekhoudmenu',
+ 'Active' => 'Actief',
+ 'Add Deduction' => 'Korting toevoegen',
+ 'Add Employee' => 'Werknemer toevoegen',
+ 'Address' => 'Adres',
+ 'Administrator' => 'Beheerder',
+ 'After Deduction' => 'Na korting',
+ 'All' => 'Allemaal',
+ 'Allowances' => 'Toelagen',
+ 'Amount' => 'Bedrag',
+ 'Amount missing!' => 'Bedrag ontbreekt',
+ 'BIC' => 'BIC',
+ 'Based on' => 'Gebaseerd op',
+ 'Before Deduction' => 'Voor korting',
+ 'Below' => 'Onder',
+ 'City' => 'Stad',
+ 'Continue' => 'Verder',
+ 'Country' => 'Land',
+ 'Deduct after' => 'Verminder na',
+ 'Deduction deleted!' => 'Korting verwijderd!',
+ 'Deduction saved!' => 'Korting opgeslagen!',
+ 'Deductions' => 'Kortingen',
+ 'Delete' => 'Verwijder',
+ 'Description' => 'Omschrijving',
+ 'Description missing!' => 'Omschrijving ontbreekt',
+ 'E-mail' => 'E-mail',
+ 'Edit Deduction' => 'Korting wijzigen',
+ 'Edit Employee' => 'Werknemer wijzigen',
+ 'Employee' => 'Werknemer',
+ 'Employee Name' => 'Werknemernaam',
+ 'Employee deleted!' => 'Werknemer verwijderd',
+ 'Employee pays' => 'Werknemerbetalingen',
+ 'Employee saved!' => 'Werknemer opgeslagen!',
+ 'Employees' => 'Werknemers',
+ 'Employer' => 'Werkgever',
+ 'Employer pays' => 'Werkgeverbetalingen',
+ 'Enddate' => 'Einddatum',
+ 'Expense' => 'Onkosten',
+ 'From' => 'Van',
+ 'Home Phone' => 'Thuistelefoon',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Toevoegen aan Uitvoer',
+ 'Login' => 'Login',
+ 'Manager' => 'Manager',
+ 'Maximum' => 'Maximum',
+ 'Name' => 'Naam',
+ 'Name missing!' => 'Naam ontbreekt!',
+ 'Notes' => 'Opmerkingen',
+ 'Number' => 'Nummer',
+ 'Orphaned' => 'Wees',
+ 'Payroll Deduction' => 'Loonkorting',
+ 'Rate' => 'Percentage',
+ 'Rate missing!' => 'Percentage ontbreekt!',
+ 'Role' => 'Rol',
+ 'S' => 'S',
+ 'SSN' => 'Pers.nr.',
+ 'Sales' => 'Verkoop',
+ 'Save' => 'Opslaan',
+ 'Save as new' => 'Opslaan als nieuw',
+ 'Startdate' => 'Begindatum',
+ 'State/Province' => 'Staat/Provincie',
+ 'To' => 'Tot',
+ 'Update' => 'Bijwerken',
+ 'User' => 'Gebruiker',
+ 'Work Phone' => 'Bedrijfstelefoon',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'korting_toevoegen' => 'add_deduction',
+ 'werknemer_toevoegen' => 'add_employee',
+ 'verder' => 'continue',
+ 'verwijder' => 'delete',
+ 'opslaan' => 'save',
+ 'opslaan_als_nieuw' => 'save_as_new',
+ 'bijwerken' => 'update',
+};
+
+1;
+
diff --git a/locale/be_nl/ic b/locale/be_nl/ic
new file mode 100755
index 00000000..21016a17
--- /dev/null
+++ b/locale/be_nl/ic
@@ -0,0 +1,270 @@
+$self{texts} = {
+ 'A' => 'A',
+ 'Accounting Menu' => 'Boekhoudmenu',
+ 'Accounts' => 'Rekeningen',
+ 'Accrual' => 'Opeengestapeld',
+ 'Active' => 'Actief',
+ 'Add' => 'Toevoegen',
+ 'Add Assembly' => 'Assemblage toevoegen',
+ 'Add Labor/Overhead' => 'Arbeid/Overheadskosten toevoegen',
+ 'Add Part' => 'Artikel toevoegen',
+ 'Add Purchase Order' => 'Inkooporder toevoegen',
+ 'Add Quotation' => 'Offerte toevoegen',
+ 'Add Request for Quotation' => 'Offerteaanvraag toevoegen',
+ 'Add Sales Order' => 'Verkooporder toevoegen',
+ 'Add Service' => 'Dienst toevoegen',
+ 'Address' => 'Adres',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Assemblies' => 'Assemblages',
+ 'Assemblies restocked!' => 'Assemblage naar voorraad geboekt',
+ 'Assembly' => 'Assemblage',
+ 'Attachment' => 'Bijlage',
+ 'Aug' => 'Aug',
+ 'August' => 'Augustus',
+ 'BOM' => 'Onderdelenlijst',
+ 'Bcc' => 'Onzichtbare kopie aan',
+ 'Billing Address' => 'Facturatieadres',
+ 'Bin' => 'Locatie',
+ 'Bin List' => 'Locatielijst',
+ 'Break' => 'Onderbreking',
+ 'COGS' => 'Kostprijs Verkopen',
+ 'Cannot delete item!' => 'Kan onderdeel niet verwijderen!',
+ 'Cannot stock assemblies!' => 'Kan assemblages niet in voorraad nemen!',
+ 'Cash' => 'Kas (contant)',
+ 'Cc' => 'Kopie aan',
+ 'Check Inventory' => 'Inventaris controleren',
+ 'City' => 'Stad',
+ 'Closed' => 'Afgesloten',
+ 'Company Name' => 'Bedrijfsnaam',
+ 'Components' => 'Componenten',
+ 'Contact' => 'Contact',
+ 'Continue' => 'Verder',
+ 'Copies' => 'Kopieën',
+ 'Cost' => 'Kost',
+ 'Country' => 'Land',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valuta',
+ 'Customer' => 'Klant',
+ 'Customer Number' => 'Klantnummer',
+ 'Customer not on file!' => 'Klant bestaat niet!',
+ 'Date' => 'Datum',
+ 'Dec' => 'Dec',
+ 'December' => 'December',
+ 'Delete' => 'Verwijder',
+ 'Delivery Date' => 'Leverdatum',
+ 'Description' => 'Omschrijving',
+ 'Detail' => 'Detail',
+ 'Drawing' => 'Tekening',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'E-mailadres ontbreekt!',
+ 'E-mailed' => 'Gemaild',
+ 'Edit Assembly' => 'Assemblage wijzigen',
+ 'Edit Labor/Overhead' => 'Arbeid/Overheadskosten wijzigen',
+ 'Edit Part' => 'Artikel wijzigen',
+ 'Edit Service' => 'Dienst wijzigen',
+ 'Employee' => 'Werknemer',
+ 'Expense' => 'Onkosten',
+ 'Extended' => 'Uitgebreid',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Februari',
+ 'From' => 'Van',
+ 'Group' => 'Groep',
+ 'Image' => 'Plaatje',
+ 'In-line' => 'In Lijn',
+ 'Include in Report' => 'Toevoegen aan Uitvoer',
+ 'Income' => 'Inkomsten',
+ 'Individual Items' => 'Onderliggende onderdelen',
+ 'Inventory' => 'Voorraad',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Aanwezige voorraad moet nul zijn voordat een assemblage als \'niet actief\' kan worden gemarkeerd.',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Aanwezige voorraad moet nul zijn voordat een product als \'niet actief\' kan worden gemarkeerd.',
+ 'Invoice' => 'Factuur',
+ 'Invoice Date missing!' => 'Factuurdatum ontbreekt!',
+ 'Invoice Number' => 'Factuurnummer',
+ 'Invoice Number missing!' => 'Factuurnummer ontbreekt!',
+ 'Item deleted!' => 'Onderdeel verwijderd!',
+ 'Item not on file!' => 'Dit onderdeel is niet in de database gevonden!',
+ 'Items' => 'Onderdelen',
+ 'Jan' => 'Jan',
+ 'January' => 'Januari',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Labor/Overhead' => 'Arbeid/Overheadskosten',
+ 'Leadtime' => 'Levertijd',
+ 'Line Total' => 'Totaal Regel',
+ 'Link Accounts' => 'Rekeningen verbinden',
+ 'List Price' => 'Catalogusprijs',
+ 'Make' => 'Fabrikant',
+ 'Mar' => 'Mrt',
+ 'March' => 'Maart',
+ 'Markup' => 'Winstmarge',
+ 'May' => 'Mei',
+ 'May ' => 'Mei',
+ 'Message' => 'Boodschap',
+ 'Microfiche' => 'Microfiche',
+ 'Model' => 'Type',
+ 'Name' => 'Naam',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Opmerkingen',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Nummer',
+ 'Number missing in Row' => 'Getal ontbreekt in Regel',
+ 'Obsolete' => 'Niet actief',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'On Hand' => 'Op voorraad',
+ 'Open' => 'Open',
+ 'Order' => 'Bestelling',
+ 'Order Date missing!' => 'Geen order datum aanwezig',
+ 'Order Number' => 'Referentie',
+ 'Order Number missing!' => 'Geen ordernummer aanwezig',
+ 'Orphaned' => 'Wees',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Pakbon',
+ 'Packing List Date missing!' => 'Pakbon datum ontbreekt!',
+ 'Packing List Number missing!' => 'Pakbon nummer ontbreekt!',
+ 'Part' => 'Artikel',
+ 'Parts' => 'Artikelen',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Uitzoeklijst',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Prijs',
+ 'Pricegroup' => 'Prijsgroep',
+ 'Printed' => 'Afgedrukt',
+ 'Project' => 'Project',
+ 'Purchase Order' => 'Inkooporder',
+ 'Purchase Orders' => 'Inkooporders',
+ 'Qty' => 'Aantal',
+ 'Quantity exceeds available units to stock!' => 'Aantal is hoger dan de aanwezige voorraad!',
+ 'Quotation' => 'Offerte',
+ 'Quotation Date missing!' => 'Offertedatum ontbreekt!',
+ 'Quotation Number missing!' => 'Offertenummer ontbreekt!',
+ 'Quotations' => 'Offertes',
+ 'RFQ' => 'Offerteaanvraag',
+ 'ROP' => 'Minimum voorraad',
+ 'Recd' => 'Ontvangen',
+ 'Required by' => 'Nodig voor',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Verkoopfactuur',
+ 'Sales Invoices' => 'Verkoopfacturen',
+ 'Sales Order' => 'Verkooporder',
+ 'Sales Orders' => 'Verkooporders',
+ 'Save' => 'Opslaan',
+ 'Save as new' => 'Opslaan als nieuw',
+ 'Screen' => 'Scherm',
+ 'Select from one of the names below' => 'Kies een van de onderstaande namen',
+ 'Sell Price' => 'Verkoopprijs',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Serial No.' => 'Serienr',
+ 'Serial Number' => 'Serienummer',
+ 'Service' => 'Dienst',
+ 'Services' => 'Diensten',
+ 'Ship' => 'Verzenden',
+ 'Ship to' => 'Verzenden aan',
+ 'Shipping Address' => 'Verzendadres',
+ 'Short' => 'Kort',
+ 'State/Province' => 'Staat/Provincie',
+ 'Stock' => 'Voorraad',
+ 'Stock Assembly' => 'Assemblage voorraad',
+ 'Subject' => 'Onderwerp',
+ 'Subtotal' => 'Subtotaal',
+ 'Summary' => 'Overzicht',
+ 'Tax' => 'Belasting',
+ 'To' => 'Tot',
+ 'Top Level' => 'Top Niveau',
+ 'Unit' => 'Eenheid',
+ 'Update' => 'Bijwerken',
+ 'Updated' => 'Bijgewerkt',
+ 'Vendor' => 'Leverancier',
+ 'Vendor Invoice' => 'Inkoopfaktuur',
+ 'Vendor Invoices' => 'Leverancier inkoopfacturen',
+ 'Vendor Number' => 'Leveranciernummer',
+ 'Vendor not on file!' => 'Leverancier bestaat niet!',
+ 'Warehouse' => 'Magazijn',
+ 'Weight' => 'Gewicht',
+ 'What type of item is this?' => 'Wat voor soort artikel is dit?',
+ 'Work Order' => 'Bedrijfs order',
+ 'days' => 'dagen',
+ 'sent' => 'verzonden',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'assemblage_toevoegen' => 'add_assembly',
+ 'arbeid_overheadskosten_toevoegen' => 'add_labor_overhead',
+ 'artikel_toevoegen' => 'add_part',
+ 'dienst_toevoegen' => 'add_service',
+ 'verder' => 'continue',
+ 'verwijder' => 'delete',
+ 'assemblage_wijzigen' => 'edit_assembly',
+ 'artikel_wijzigen' => 'edit_part',
+ 'dienst_wijzigen' => 'edit_service',
+ 'opslaan' => 'save',
+ 'opslaan_als_nieuw' => 'save_as_new',
+ 'bijwerken' => 'update',
+};
+
+1;
+
diff --git a/locale/be_nl/io b/locale/be_nl/io
new file mode 100755
index 00000000..9268d90c
--- /dev/null
+++ b/locale/be_nl/io
@@ -0,0 +1,127 @@
+$self{texts} = {
+ 'Add Purchase Order' => 'Inkooporder toevoegen',
+ 'Add Quotation' => 'Offerte toevoegen',
+ 'Add Request for Quotation' => 'Offerteaanvraag toevoegen',
+ 'Add Sales Order' => 'Verkooporder toevoegen',
+ 'Address' => 'Adres',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Attachment' => 'Bijlage',
+ 'Aug' => 'Aug',
+ 'August' => 'Augustus',
+ 'Bcc' => 'Onzichtbare kopie aan',
+ 'Billing Address' => 'Facturatieadres',
+ 'Bin' => 'Locatie',
+ 'Bin List' => 'Locatielijst',
+ 'Cc' => 'Kopie aan',
+ 'City' => 'Stad',
+ 'Company Name' => 'Bedrijfsnaam',
+ 'Contact' => 'Contact',
+ 'Continue' => 'Verder',
+ 'Copies' => 'Kopieën',
+ 'Country' => 'Land',
+ 'Customer Number' => 'Klantnummer',
+ 'Date' => 'Datum',
+ 'Dec' => 'Dec',
+ 'December' => 'December',
+ 'Delivery Date' => 'Leverdatum',
+ 'Description' => 'Omschrijving',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'E-mailadres ontbreekt!',
+ 'E-mailed' => 'Gemaild',
+ 'Extended' => 'Uitgebreid',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Februari',
+ 'Group' => 'Groep',
+ 'In-line' => 'In Lijn',
+ 'Invoice' => 'Factuur',
+ 'Invoice Date missing!' => 'Factuurdatum ontbreekt!',
+ 'Invoice Number missing!' => 'Factuurnummer ontbreekt!',
+ 'Item not on file!' => 'Dit onderdeel is niet in de database gevonden!',
+ 'Jan' => 'Jan',
+ 'January' => 'Januari',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Mar' => 'Mrt',
+ 'March' => 'Maart',
+ 'May' => 'Mei',
+ 'May ' => 'Mei',
+ 'Message' => 'Boodschap',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Nummer',
+ 'Number missing in Row' => 'Getal ontbreekt in Regel',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Order Date missing!' => 'Geen order datum aanwezig',
+ 'Order Number missing!' => 'Geen ordernummer aanwezig',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Pakbon',
+ 'Packing List Date missing!' => 'Pakbon datum ontbreekt!',
+ 'Packing List Number missing!' => 'Pakbon nummer ontbreekt!',
+ 'Part' => 'Artikel',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Uitzoeklijst',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Prijs',
+ 'Printed' => 'Afgedrukt',
+ 'Project' => 'Project',
+ 'Purchase Order' => 'Inkooporder',
+ 'Qty' => 'Aantal',
+ 'Quotation' => 'Offerte',
+ 'Quotation Date missing!' => 'Offertedatum ontbreekt!',
+ 'Quotation Number missing!' => 'Offertenummer ontbreekt!',
+ 'Recd' => 'Ontvangen',
+ 'Required by' => 'Nodig voor',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Verkooporder',
+ 'Screen' => 'Scherm',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Serial No.' => 'Serienr',
+ 'Service' => 'Dienst',
+ 'Ship' => 'Verzenden',
+ 'Ship to' => 'Verzenden aan',
+ 'Shipping Address' => 'Verzendadres',
+ 'State/Province' => 'Staat/Provincie',
+ 'Subject' => 'Onderwerp',
+ 'Subtotal' => 'Subtotaal',
+ 'To' => 'Tot',
+ 'Unit' => 'Eenheid',
+ 'Vendor Number' => 'Leveranciernummer',
+ 'What type of item is this?' => 'Wat voor soort artikel is dit?',
+ 'Work Order' => 'Bedrijfs order',
+ 'sent' => 'verzonden',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'verder' => 'continue',
+};
+
+1;
+
diff --git a/locale/be_nl/ir b/locale/be_nl/ir
new file mode 100755
index 00000000..c1c2a0aa
--- /dev/null
+++ b/locale/be_nl/ir
@@ -0,0 +1,221 @@
+$self{texts} = {
+ 'Account' => 'Rekening',
+ 'Accounting Menu' => 'Boekhoudmenu',
+ 'Add Purchase Order' => 'Inkooporder toevoegen',
+ 'Add Quotation' => 'Offerte toevoegen',
+ 'Add Request for Quotation' => 'Offerteaanvraag toevoegen',
+ 'Add Sales Order' => 'Verkooporder toevoegen',
+ 'Add Vendor Invoice' => 'Inkoop factuur toevoegen',
+ 'Address' => 'Adres',
+ 'Amount' => 'Bedrag',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Invoice Number' => 'Weet u zeker dat u dit factuurnummer wilt verwijderen?',
+ 'Attachment' => 'Bijlage',
+ 'Aug' => 'Aug',
+ 'August' => 'Augustus',
+ 'Bcc' => 'Onzichtbare kopie aan',
+ 'Billing Address' => 'Facturatieadres',
+ 'Bin' => 'Locatie',
+ 'Bin List' => 'Locatielijst',
+ 'Cannot delete invoice!' => 'Kan factuur niet verwijderen!',
+ 'Cannot post invoice for a closed period!' => 'Kan geen factuur boeken in afgesloten periode!',
+ 'Cannot post invoice!' => 'Kan factuur niet boeken!',
+ 'Cannot post payment for a closed period!' => 'Kan geen betaling boeken voor afgesloten periode!',
+ 'Cc' => 'Kopie aan',
+ 'City' => 'Stad',
+ 'Company Name' => 'Bedrijfsnaam',
+ 'Confirm!' => 'Bevestig!',
+ 'Contact' => 'Contact',
+ 'Continue' => 'Verder',
+ 'Copies' => 'Kopieën',
+ 'Country' => 'Land',
+ 'Credit Limit' => 'Kredietlimiet',
+ 'Currency' => 'Valuta',
+ 'Customer Number' => 'Klantnummer',
+ 'Customer not on file!' => 'Klant bestaat niet!',
+ 'Date' => 'Datum',
+ 'Dec' => 'Dec',
+ 'December' => 'December',
+ 'Delete' => 'Verwijder',
+ 'Delivery Date' => 'Leverdatum',
+ 'Department' => 'Afdeling',
+ 'Description' => 'Omschrijving',
+ 'Due Date' => 'Vervaldatum',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'E-mailadres ontbreekt!',
+ 'E-mailed' => 'Gemaild',
+ 'Edit Vendor Invoice' => 'Inkoop factuur wijzigen',
+ 'Exch' => 'Wisselkoers',
+ 'Exchange Rate' => 'Wisselkoers',
+ 'Exchange rate for payment missing!' => 'Wisselkoers voor Betaling ontbreekt!',
+ 'Exchange rate missing!' => 'Wisselkoers ontbreekt!',
+ 'Extended' => 'Uitgebreid',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Februari',
+ 'Group' => 'Groep',
+ 'In-line' => 'In Lijn',
+ 'Internal Notes' => 'Interne notities',
+ 'Invoice' => 'Factuur',
+ 'Invoice Date' => 'Factuurdatum',
+ 'Invoice Date missing!' => 'Factuurdatum ontbreekt!',
+ 'Invoice Number' => 'Factuurnummer',
+ 'Invoice Number missing!' => 'Factuurnummer ontbreekt!',
+ 'Invoice deleted!' => 'Factuur verwijderd!',
+ 'Item not on file!' => 'Dit onderdeel is niet in de database gevonden!',
+ 'Jan' => 'Jan',
+ 'January' => 'Januari',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Language' => 'Taal',
+ 'Mar' => 'Mrt',
+ 'March' => 'Maart',
+ 'May' => 'Mei',
+ 'May ' => 'Mei',
+ 'Memo' => 'Memo',
+ 'Message' => 'Boodschap',
+ 'Notes' => 'Opmerkingen',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Nummer',
+ 'Number missing in Row' => 'Getal ontbreekt in Regel',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Order Date missing!' => 'Geen order datum aanwezig',
+ 'Order Number' => 'Referentie',
+ 'Order Number missing!' => 'Geen ordernummer aanwezig',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Pakbon',
+ 'Packing List Date missing!' => 'Pakbon datum ontbreekt!',
+ 'Packing List Number missing!' => 'Pakbon nummer ontbreekt!',
+ 'Part' => 'Artikel',
+ 'Payment date missing!' => 'Geen betalingsdatum aanwezig!',
+ 'Payments' => 'Betalingen',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Uitzoeklijst',
+ 'Post' => 'Boek',
+ 'Post as new' => 'Boek als nieuw',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Prijs',
+ 'Print' => 'Afdrukken',
+ 'Printed' => 'Afgedrukt',
+ 'Project' => 'Project',
+ 'Project not on file!' => 'Onbekend project!',
+ 'Purchase Order' => 'Inkooporder',
+ 'Qty' => 'Aantal',
+ 'Quotation' => 'Offerte',
+ 'Quotation Date missing!' => 'Offertedatum ontbreekt!',
+ 'Quotation Number missing!' => 'Offertenummer ontbreekt!',
+ 'Recd' => 'Ontvangen',
+ 'Record in' => 'Boeken op',
+ 'Reference' => 'Referentie',
+ 'Remaining' => 'Resterend',
+ 'Required by' => 'Nodig voor',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Verkooporder',
+ 'Screen' => 'Scherm',
+ 'Select from one of the names below' => 'Kies een van de onderstaande namen',
+ 'Select from one of the projects below' => 'Kies een van de onderstaande projecten',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Serial No.' => 'Serienr',
+ 'Service' => 'Dienst',
+ 'Ship' => 'Verzenden',
+ 'Ship to' => 'Verzenden aan',
+ 'Shipping Address' => 'Verzendadres',
+ 'Source' => 'Herkomst',
+ 'Startdate' => 'Begindatum',
+ 'State/Province' => 'Staat/Provincie',
+ 'Subject' => 'Onderwerp',
+ 'Subtotal' => 'Subtotaal',
+ 'Tax Included' => 'Inclusief Belasting',
+ 'To' => 'Tot',
+ 'Total' => 'Totaal',
+ 'Unit' => 'Eenheid',
+ 'Update' => 'Bijwerken',
+ 'Vendor' => 'Leverancier',
+ 'Vendor Number' => 'Leveranciernummer',
+ 'Vendor missing!' => 'Leverancier ontbreekt!',
+ 'Vendor not on file!' => 'Leverancier bestaat niet!',
+ 'Warning!' => 'Waarschuwing!',
+ 'What type of item is this?' => 'Wat voor soort artikel is dit?',
+ 'Work Order' => 'Bedrijfs order',
+ 'Yes' => 'Ja',
+ 'ea' => 'voor',
+ 'posted!' => 'opgeslagen!',
+ 'sent' => 'verzonden',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'verder' => 'continue',
+ 'verwijder' => 'delete',
+ 'boek' => 'post',
+ 'boek_als_nieuw' => 'post_as_new',
+ 'inkooporder' => 'purchase_order',
+ 'bijwerken' => 'update',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/be_nl/is b/locale/be_nl/is
new file mode 100755
index 00000000..103ccdc1
--- /dev/null
+++ b/locale/be_nl/is
@@ -0,0 +1,230 @@
+$self{texts} = {
+ 'Account' => 'Rekening',
+ 'Accounting Menu' => 'Boekhoudmenu',
+ 'Add Purchase Order' => 'Inkooporder toevoegen',
+ 'Add Quotation' => 'Offerte toevoegen',
+ 'Add Request for Quotation' => 'Offerteaanvraag toevoegen',
+ 'Add Sales Invoice' => 'Verkoopfactuur toevoegen',
+ 'Add Sales Order' => 'Verkooporder toevoegen',
+ 'Address' => 'Adres',
+ 'Amount' => 'Bedrag',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Invoice Number' => 'Weet u zeker dat u dit factuurnummer wilt verwijderen?',
+ 'Attachment' => 'Bijlage',
+ 'Aug' => 'Aug',
+ 'August' => 'Augustus',
+ 'Bcc' => 'Onzichtbare kopie aan',
+ 'Billing Address' => 'Facturatieadres',
+ 'Bin' => 'Locatie',
+ 'Bin List' => 'Locatielijst',
+ 'Business' => 'Zaaktype',
+ 'Cannot delete invoice!' => 'Kan factuur niet verwijderen!',
+ 'Cannot post invoice for a closed period!' => 'Kan geen factuur boeken in afgesloten periode!',
+ 'Cannot post invoice!' => 'Kan factuur niet boeken!',
+ 'Cannot post payment for a closed period!' => 'Kan geen betaling boeken voor afgesloten periode!',
+ 'Cc' => 'Kopie aan',
+ 'City' => 'Stad',
+ 'Company Name' => 'Bedrijfsnaam',
+ 'Confirm!' => 'Bevestig!',
+ 'Contact' => 'Contact',
+ 'Continue' => 'Verder',
+ 'Copies' => 'Kopieën',
+ 'Country' => 'Land',
+ 'Credit Limit' => 'Kredietlimiet',
+ 'Currency' => 'Valuta',
+ 'Customer' => 'Klant',
+ 'Customer Number' => 'Klantnummer',
+ 'Customer missing!' => 'Klant ontbreekt!',
+ 'Customer not on file!' => 'Klant bestaat niet!',
+ 'Date' => 'Datum',
+ 'Dec' => 'Dec',
+ 'December' => 'December',
+ 'Delete' => 'Verwijder',
+ 'Delivery Date' => 'Leverdatum',
+ 'Department' => 'Afdeling',
+ 'Description' => 'Omschrijving',
+ 'Due Date' => 'Vervaldatum',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'E-mailadres ontbreekt!',
+ 'E-mailed' => 'Gemaild',
+ 'Edit Sales Invoice' => 'Verkoopfactuur wijzigen',
+ 'Exch' => 'Wisselkoers',
+ 'Exchange Rate' => 'Wisselkoers',
+ 'Exchange rate for payment missing!' => 'Wisselkoers voor Betaling ontbreekt!',
+ 'Exchange rate missing!' => 'Wisselkoers ontbreekt!',
+ 'Extended' => 'Uitgebreid',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Februari',
+ 'Group' => 'Groep',
+ 'In-line' => 'In Lijn',
+ 'Internal Notes' => 'Interne notities',
+ 'Invoice' => 'Factuur',
+ 'Invoice Date' => 'Factuurdatum',
+ 'Invoice Date missing!' => 'Factuurdatum ontbreekt!',
+ 'Invoice Number' => 'Factuurnummer',
+ 'Invoice Number missing!' => 'Factuurnummer ontbreekt!',
+ 'Invoice deleted!' => 'Factuur verwijderd!',
+ 'Item not on file!' => 'Dit onderdeel is niet in de database gevonden!',
+ 'Jan' => 'Jan',
+ 'January' => 'Januari',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Mar' => 'Mrt',
+ 'March' => 'Maart',
+ 'May' => 'Mei',
+ 'May ' => 'Mei',
+ 'Memo' => 'Memo',
+ 'Message' => 'Boodschap',
+ 'Notes' => 'Opmerkingen',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Nummer',
+ 'Number missing in Row' => 'Getal ontbreekt in Regel',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Order Date missing!' => 'Geen order datum aanwezig',
+ 'Order Number' => 'Referentie',
+ 'Order Number missing!' => 'Geen ordernummer aanwezig',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Pakbon',
+ 'Packing List Date missing!' => 'Pakbon datum ontbreekt!',
+ 'Packing List Number missing!' => 'Pakbon nummer ontbreekt!',
+ 'Part' => 'Artikel',
+ 'Payment date missing!' => 'Geen betalingsdatum aanwezig!',
+ 'Payments' => 'Betalingen',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Uitzoeklijst',
+ 'Post' => 'Boek',
+ 'Post as new' => 'Boek als nieuw',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Prijs',
+ 'Print' => 'Afdrukken',
+ 'Printed' => 'Afgedrukt',
+ 'Project' => 'Project',
+ 'Project not on file!' => 'Onbekend project!',
+ 'Purchase Order' => 'Inkooporder',
+ 'Qty' => 'Aantal',
+ 'Quotation' => 'Offerte',
+ 'Quotation Date missing!' => 'Offertedatum ontbreekt!',
+ 'Quotation Number missing!' => 'Offertenummer ontbreekt!',
+ 'Recd' => 'Ontvangen',
+ 'Record in' => 'Boeken op',
+ 'Reference' => 'Referentie',
+ 'Remaining' => 'Resterend',
+ 'Required by' => 'Nodig voor',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Verkooporder',
+ 'Salesperson' => 'Verkoper',
+ 'Screen' => 'Scherm',
+ 'Select from one of the names below' => 'Kies een van de onderstaande namen',
+ 'Select from one of the projects below' => 'Kies een van de onderstaande projecten',
+ 'Select postscript or PDF!' => 'Kies postscript of PDF',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Serial No.' => 'Serienr',
+ 'Service' => 'Dienst',
+ 'Ship' => 'Verzenden',
+ 'Ship to' => 'Verzenden aan',
+ 'Ship via' => 'Verzenden via',
+ 'Shipping Address' => 'Verzendadres',
+ 'Shipping Point' => 'Verzendpunt',
+ 'Source' => 'Herkomst',
+ 'Startdate' => 'Begindatum',
+ 'State/Province' => 'Staat/Provincie',
+ 'Subject' => 'Onderwerp',
+ 'Subtotal' => 'Subtotaal',
+ 'Tax Included' => 'Inclusief Belasting',
+ 'To' => 'Tot',
+ 'Total' => 'Totaal',
+ 'Trade Discount' => 'Handelskorting',
+ 'Unit' => 'Eenheid',
+ 'Update' => 'Bijwerken',
+ 'Vendor Number' => 'Leveranciernummer',
+ 'Vendor not on file!' => 'Leverancier bestaat niet!',
+ 'Warning!' => 'Waarschuwing!',
+ 'What type of item is this?' => 'Wat voor soort artikel is dit?',
+ 'Work Order' => 'Bedrijfs order',
+ 'Yes' => 'Ja',
+ 'ea' => 'voor',
+ 'posted!' => 'opgeslagen!',
+ 'sent' => 'verzonden',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'verder' => 'continue',
+ 'verwijder' => 'delete',
+ 'e_mail' => 'e_mail',
+ 'boek' => 'post',
+ 'boek_als_nieuw' => 'post_as_new',
+ 'afdrukken' => 'print',
+ 'verkooporder' => 'sales_order',
+ 'verzenden_aan' => 'ship_to',
+ 'bijwerken' => 'update',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/be_nl/jc b/locale/be_nl/jc
new file mode 100755
index 00000000..edb0fae7
--- /dev/null
+++ b/locale/be_nl/jc
@@ -0,0 +1,86 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Boekhoudmenu',
+ 'Amount' => 'Bedrag',
+ 'Closed' => 'Afgesloten',
+ 'Confirm!' => 'Bevestig!',
+ 'Continue' => 'Verder',
+ 'Cost' => 'Kost',
+ 'Current' => 'Huidig',
+ 'Date' => 'Datum',
+ 'Date missing!' => 'Datum ontbreekt!',
+ 'Delete' => 'Verwijder',
+ 'Description' => 'Omschrijving',
+ 'Employee' => 'Werknemer',
+ 'From' => 'Van',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Toevoegen aan Uitvoer',
+ 'Notes' => 'Opmerkingen',
+ 'Open' => 'Open',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Afdrukken',
+ 'Printed' => 'Afgedrukt',
+ 'Project Number' => 'Projectnummer',
+ 'Project Number missing!' => 'Projectnummer ontbreekt!',
+ 'Qty' => 'Aantal',
+ 'Save' => 'Opslaan',
+ 'Save as new' => 'Opslaan als nieuw',
+ 'Screen' => 'Scherm',
+ 'Select postscript or PDF!' => 'Kies postscript of PDF',
+ 'Startdate' => 'Begindatum',
+ 'Subtotal' => 'Subtotaal',
+ 'To' => 'Tot',
+ 'Total' => 'Totaal',
+ 'Update' => 'Bijwerken',
+ 'Warning!' => 'Waarschuwing!',
+ 'Yes' => 'Ja',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'verder' => 'continue',
+ 'verwijder' => 'delete',
+ 'afdrukken' => 'print',
+ 'opslaan' => 'save',
+ 'opslaan_als_nieuw' => 'save_as_new',
+ 'bijwerken' => 'update',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/be_nl/locales.pl b/locale/be_nl/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/be_nl/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/be_nl/login b/locale/be_nl/login
new file mode 100755
index 00000000..a27cd976
--- /dev/null
+++ b/locale/be_nl/login
@@ -0,0 +1,24 @@
+$self{texts} = {
+ 'Company' => 'Bedrijf',
+ 'Continue' => 'Verder',
+ 'Dataset is newer than version!' => 'Dataset is nieuwer dan de versie!',
+ 'Incorrect Dataset version!' => 'Ongeldige versie Dataset!!',
+ 'Login' => 'Login',
+ 'Name' => 'Naam',
+ 'Password' => 'Wachtwoord',
+ 'Upgrading to Version' => 'Opwaarderen naar Versie',
+ 'Version' => 'Versie',
+ 'You did not enter a name!' => 'U heeft geen naam gegeven!',
+ 'done' => 'gebeurd',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ 'login' => 'login',
+};
+
+1;
+
diff --git a/locale/be_nl/menu b/locale/be_nl/menu
new file mode 100755
index 00000000..1e6b3718
--- /dev/null
+++ b/locale/be_nl/menu
@@ -0,0 +1,134 @@
+$self{texts} = {
+ 'AP' => 'Crediteuren',
+ 'AP Aging' => 'Crediteuren Ouderdomsoverzicht',
+ 'AP Transaction' => 'Crediteurenboeking',
+ 'AR' => 'Debiteuren',
+ 'AR Aging' => 'Debiteuren Ouderdomsoverzicht',
+ 'AR Transaction' => 'Debiteurenboeking',
+ 'Accounting Menu' => 'Boekhoudmenu',
+ 'Add Account' => 'Rekening toevoegen',
+ 'Add Assembly' => 'Assemblage toevoegen',
+ 'Add Business' => 'Zaaktype toevoegen',
+ 'Add Customer' => 'Klant toevoegen',
+ 'Add Department' => 'Afdeling toevoegen',
+ 'Add Employee' => 'Werknemer toevoegen',
+ 'Add GIFI' => 'Toevoegen GIFI',
+ 'Add Group' => 'Groep toevoegen',
+ 'Add Labor/Overhead' => 'Arbeid/Overheadskosten toevoegen',
+ 'Add Language' => 'Taal toevoegen',
+ 'Add Part' => 'Artikel toevoegen',
+ 'Add Pricegroup' => 'Prijsgroep toevoegen',
+ 'Add Project' => 'Project toevoegen',
+ 'Add SIC' => 'SIC toevoegen',
+ 'Add Service' => 'Dienst toevoegen',
+ 'Add Transaction' => 'Boeking toevoegen',
+ 'Add Vendor' => 'Leverancier toevoegen',
+ 'Add Warehouse' => 'Magazijn toevoegen',
+ 'All Items' => 'Alle onderdelen',
+ 'Assemblies' => 'Assemblages',
+ 'Audit Control' => 'Accountants Controle',
+ 'Backup' => 'Backup',
+ 'Balance Sheet' => 'Balans',
+ 'Bin List' => 'Locatielijst',
+ 'Bin Lists' => 'Verzamel lijsten',
+ 'Cash' => 'Kas (contant)',
+ 'Chart of Accounts' => 'Rekeningstelsel',
+ 'Check' => 'Cheque',
+ 'Components' => 'Componenten',
+ 'Customers' => 'Klanten',
+ 'Defaults' => 'Standaard',
+ 'Departments' => 'Afdelingen',
+ 'Description' => 'Omschrijving',
+ 'Employees' => 'Werknemers',
+ 'General Ledger' => 'Grootboek',
+ 'Goods & Services' => 'Goederen & Diensten',
+ 'Groups' => 'Groepen',
+ 'HR' => 'Personeel',
+ 'HTML Templates' => 'HTML Sjablonen',
+ 'History' => 'Geschiedenis',
+ 'Income Statement' => 'Inkomstenoverzicht',
+ 'Invoice' => 'Factuur',
+ 'LaTeX Templates' => 'Latex Sjablonen',
+ 'Labor/Overhead' => 'Arbeid/Overheadskosten',
+ 'Language' => 'Taal',
+ 'List Accounts' => 'Rekeningen weergeven',
+ 'List Businesses' => 'Zaaktypes weergeven',
+ 'List Departments' => 'Afdelingen weergeven',
+ 'List GIFI' => 'GIFI weergeven',
+ 'List Languages' => 'Talen weergeven',
+ 'List Projects' => 'Projecten weergeven',
+ 'List SIC' => 'SIC weergeven',
+ 'List Warehouses' => 'Magazijnen weergeven',
+ 'Logout' => 'Logout',
+ 'Non-taxable' => 'Onbelast',
+ 'Open' => 'Open',
+ 'Order Entry' => 'Order invoer',
+ 'Outstanding' => 'Openstaand',
+ 'POS' => 'Verkooppunt',
+ 'POS Invoice' => 'Verkooppunt Rekening',
+ 'Packing List' => 'Pakbon',
+ 'Packing Lists' => 'Pakbonnen',
+ 'Parts' => 'Artikelen',
+ 'Payment' => 'Betaling',
+ 'Payments' => 'Betalingen',
+ 'Pick List' => 'Uitzoeklijst',
+ 'Pick Lists' => 'Pick lijsten',
+ 'Preferences' => 'Instellingen',
+ 'Pricegroups' => 'Prijsgroepen',
+ 'Print' => 'Afdrukken',
+ 'Projects' => 'Projecten',
+ 'Purchase Order' => 'Inkooporder',
+ 'Purchase Orders' => 'Inkooporders',
+ 'Quotation' => 'Offerte',
+ 'Quotations' => 'Offertes',
+ 'RFQ' => 'Offerteaanvraag',
+ 'RFQs' => 'Offerteaanvragen',
+ 'Receipt' => 'Ontvangstbewijs',
+ 'Receipts' => 'Ontvangstbewijzen',
+ 'Receive' => 'Inkomende zending',
+ 'Reconciliation' => 'Boekingen Verwerken',
+ 'Reports' => 'Rapporten',
+ 'SIC' => 'SIC',
+ 'Sale' => 'Verkoopfactuur',
+ 'Sales Invoice' => 'Verkoopfactuur',
+ 'Sales Invoices' => 'Verkoopfacturen',
+ 'Sales Order' => 'Verkooporder',
+ 'Sales Orders' => 'Verkooporders',
+ 'Save to File' => 'Opslaan als bestand',
+ 'Search' => 'Zoek',
+ 'Send by E-Mail' => 'Verzenden per E-mail',
+ 'Services' => 'Diensten',
+ 'Ship' => 'Verzenden',
+ 'Shipping' => 'Zendingen',
+ 'Statement' => 'Overzicht',
+ 'Stock Assembly' => 'Assemblage voorraad',
+ 'Stylesheet' => 'Stylesheet',
+ 'System' => 'Systeem',
+ 'Tax collected' => 'Belasting verschuldigd',
+ 'Tax paid' => 'Belasting Betaald',
+ 'Text Templates' => 'Tekst templates',
+ 'Transactions' => 'Boekingen',
+ 'Transfer' => 'Overboeking',
+ 'Transfer Inventory' => 'Inventaris overboeken',
+ 'Translations' => 'Vertalingen',
+ 'Trial Balance' => 'Proefbalans',
+ 'Type of Business' => 'Zaaktype',
+ 'Vendor Invoice' => 'Inkoopfaktuur',
+ 'Vendors' => 'Leveranciers',
+ 'Version' => 'Versie',
+ 'Warehouses' => 'Magazijnen',
+ 'Work Order' => 'Bedrijfs order',
+ 'Work Orders' => 'Werk orders',
+ 'Yearend' => 'Jaareinde',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/be_nl/oe b/locale/be_nl/oe
new file mode 100755
index 00000000..b1b889d4
--- /dev/null
+++ b/locale/be_nl/oe
@@ -0,0 +1,308 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Boekhoudmenu',
+ 'Add Exchange Rate' => 'Wisselkoers toevoegen',
+ 'Add Purchase Order' => 'Inkooporder toevoegen',
+ 'Add Quotation' => 'Offerte toevoegen',
+ 'Add Request for Quotation' => 'Offerteaanvraag toevoegen',
+ 'Add Sales Invoice' => 'Verkoopfactuur toevoegen',
+ 'Add Sales Order' => 'Verkooporder toevoegen',
+ 'Add Vendor Invoice' => 'Inkoop factuur toevoegen',
+ 'Address' => 'Adres',
+ 'Amount' => 'Bedrag',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Order Number' => 'Weet u zeker dat u dit ordernummer wilt verwijderen?',
+ 'Are you sure you want to delete Quotation Number' => 'Weet u zeker dat u dit offertenummer wilt verwijderen?',
+ 'Attachment' => 'Bijlage',
+ 'Aug' => 'Aug',
+ 'August' => 'Augustus',
+ 'Bcc' => 'Onzichtbare kopie aan',
+ 'Billing Address' => 'Facturatieadres',
+ 'Bin' => 'Locatie',
+ 'Bin List' => 'Locatielijst',
+ 'Business' => 'Zaaktype',
+ 'C' => 'C',
+ 'Cannot delete order!' => 'Kan order niet verwijderen!',
+ 'Cannot delete quotation!' => 'Kan offerte niet verwijderen!',
+ 'Cannot save order!' => 'Kan order niet opslaan!',
+ 'Cannot save quotation!' => 'Kan offerte niet opslaan!',
+ 'Cc' => 'Kopie aan',
+ 'City' => 'Stad',
+ 'Closed' => 'Afgesloten',
+ 'Company Name' => 'Bedrijfsnaam',
+ 'Confirm!' => 'Bevestig!',
+ 'Contact' => 'Contact',
+ 'Continue' => 'Verder',
+ 'Copies' => 'Kopieën',
+ 'Cost' => 'Kost',
+ 'Could not save!' => 'Kon niet opslaan!',
+ 'Could not transfer Inventory!' => 'Kon geen inventaris overboeken!',
+ 'Country' => 'Land',
+ 'Credit Limit' => 'Kredietlimiet',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valuta',
+ 'Current' => 'Huidig',
+ 'Customer' => 'Klant',
+ 'Customer Number' => 'Klantnummer',
+ 'Customer missing!' => 'Klant ontbreekt!',
+ 'Customer not on file!' => 'Klant bestaat niet!',
+ 'Date' => 'Datum',
+ 'Date Received' => 'Ontvangstdatum',
+ 'Date received missing!' => 'Ontvangstdatum ontbreekt!',
+ 'Dec' => 'Dec',
+ 'December' => 'December',
+ 'Delete' => 'Verwijder',
+ 'Delivery Date' => 'Leverdatum',
+ 'Department' => 'Afdeling',
+ 'Description' => 'Omschrijving',
+ 'Done' => 'Klaar',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'E-mailadres ontbreekt!',
+ 'E-mailed' => 'Gemaild',
+ 'Edit Purchase Order' => 'Inkooporder wijzigen',
+ 'Edit Quotation' => 'Offerte wijzigen',
+ 'Edit Request for Quotation' => 'Offerteaanvraag wijzigen',
+ 'Edit Sales Order' => 'Verkoop order wijzigen',
+ 'Employee' => 'Werknemer',
+ 'Exchange Rate' => 'Wisselkoers',
+ 'Exchange rate missing!' => 'Wisselkoers ontbreekt!',
+ 'Extended' => 'Uitgebreid',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Februari',
+ 'From' => 'Van',
+ 'Group' => 'Groep',
+ 'ID' => 'ID',
+ 'In-line' => 'In Lijn',
+ 'Include in Report' => 'Toevoegen aan Uitvoer',
+ 'Internal Notes' => 'Interne notities',
+ 'Inventory saved!' => 'Voorraad opgeslagen',
+ 'Inventory transferred!' => 'Voorraad overgeheveld',
+ 'Invoice' => 'Factuur',
+ 'Invoice Date missing!' => 'Factuurdatum ontbreekt!',
+ 'Invoice Number missing!' => 'Factuurnummer ontbreekt!',
+ 'Item not on file!' => 'Dit onderdeel is niet in de database gevonden!',
+ 'Jan' => 'Jan',
+ 'January' => 'Januari',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Manager' => 'Manager',
+ 'Mar' => 'Mrt',
+ 'March' => 'Maart',
+ 'May' => 'Mei',
+ 'May ' => 'Mei',
+ 'Message' => 'Boodschap',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Opmerkingen',
+ 'Nothing entered!' => 'Niets ingevuld!',
+ 'Nothing selected!' => 'Niets geselecteerd!',
+ 'Nothing to transfer!' => 'Niets over te boeken!',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Nummer',
+ 'Number missing in Row' => 'Getal ontbreekt in Regel',
+ 'O' => 'O',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Open' => 'Open',
+ 'Order' => 'Bestelling',
+ 'Order Date' => 'Orderdatum',
+ 'Order Date missing!' => 'Geen order datum aanwezig',
+ 'Order Number' => 'Referentie',
+ 'Order Number missing!' => 'Geen ordernummer aanwezig',
+ 'Order deleted!' => 'Order verwijderd!',
+ 'Order saved!' => 'Order opgeslagen!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Pakbon',
+ 'Packing List Date missing!' => 'Pakbon datum ontbreekt!',
+ 'Packing List Number missing!' => 'Pakbon nummer ontbreekt!',
+ 'Part' => 'Artikel',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Uitzoeklijst',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Prijs',
+ 'Print' => 'Afdrukken',
+ 'Printed' => 'Afgedrukt',
+ 'Project' => 'Project',
+ 'Project not on file!' => 'Onbekend project!',
+ 'Purchase Order' => 'Inkooporder',
+ 'Purchase Orders' => 'Inkooporders',
+ 'Qty' => 'Aantal',
+ 'Quotation' => 'Offerte',
+ 'Quotation Date' => 'Offertedatum',
+ 'Quotation Date missing!' => 'Offertedatum ontbreekt!',
+ 'Quotation Number' => 'Offertenummer',
+ 'Quotation Number missing!' => 'Offertenummer ontbreekt!',
+ 'Quotation deleted!' => 'Offerte verwijderd!',
+ 'Quotations' => 'Offertes',
+ 'RFQ' => 'Offerteaanvraag',
+ 'RFQ Number' => 'Offerteaanvraagnummer',
+ 'Recd' => 'Ontvangen',
+ 'Receive Merchandise' => 'Goederen Ontvangen',
+ 'Reference' => 'Referentie',
+ 'Remaining' => 'Resterend',
+ 'Request for Quotation' => 'Offerteaanvraag',
+ 'Request for Quotations' => 'Offerteaanvragen',
+ 'Required by' => 'Nodig voor',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Verkoopfactuur',
+ 'Sales Order' => 'Verkooporder',
+ 'Sales Orders' => 'Verkooporders',
+ 'Salesperson' => 'Verkoper',
+ 'Save' => 'Opslaan',
+ 'Save as new' => 'Opslaan als nieuw',
+ 'Screen' => 'Scherm',
+ 'Select from one of the names below' => 'Kies een van de onderstaande namen',
+ 'Select from one of the projects below' => 'Kies een van de onderstaande projecten',
+ 'Select postscript or PDF!' => 'Kies postscript of PDF',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Serial No.' => 'Serienr',
+ 'Service' => 'Dienst',
+ 'Ship' => 'Verzenden',
+ 'Ship Merchandise' => 'Goederen Verzenden',
+ 'Ship to' => 'Verzenden aan',
+ 'Ship via' => 'Verzenden via',
+ 'Shipping Address' => 'Verzendadres',
+ 'Shipping Date' => 'Verzenddatum',
+ 'Shipping Date missing!' => 'Verzenddatum ontbreekt!',
+ 'Shipping Point' => 'Verzendpunt',
+ 'Startdate' => 'Begindatum',
+ 'State/Province' => 'Staat/Provincie',
+ 'Subject' => 'Onderwerp',
+ 'Subtotal' => 'Subtotaal',
+ 'Tax' => 'Belasting',
+ 'Tax Included' => 'Inclusief Belasting',
+ 'Terms' => 'Termijn',
+ 'To' => 'Tot',
+ 'Total' => 'Totaal',
+ 'Trade Discount' => 'Handelskorting',
+ 'Transfer' => 'Overboeking',
+ 'Transfer Inventory' => 'Inventaris overboeken',
+ 'Transfer to' => 'Overboeken naar',
+ 'Unit' => 'Eenheid',
+ 'Update' => 'Bijwerken',
+ 'Valid until' => 'Geldig tot',
+ 'Vendor' => 'Leverancier',
+ 'Vendor Invoice' => 'Inkoopfaktuur',
+ 'Vendor Number' => 'Leveranciernummer',
+ 'Vendor missing!' => 'Leverancier ontbreekt!',
+ 'Vendor not on file!' => 'Leverancier bestaat niet!',
+ 'Warehouse' => 'Magazijn',
+ 'Warning!' => 'Waarschuwing!',
+ 'What type of item is this?' => 'Wat voor soort artikel is dit?',
+ 'Work Order' => 'Bedrijfs order',
+ 'Yes' => 'Ja',
+ 'days' => 'dagen',
+ 'ea' => 'voor',
+ 'sent' => 'verzonden',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'verder' => 'continue',
+ 'verwijder' => 'delete',
+ 'klaar' => 'done',
+ 'e_mail' => 'e_mail',
+ 'afdrukken' => 'print',
+ 'inkooporder' => 'purchase_order',
+ 'offerte' => 'quotation',
+ 'offerteaanvraag' => 'rfq',
+ 'verkoopfactuur' => 'sales_invoice',
+ 'verkooporder' => 'sales_order',
+ 'opslaan' => 'save',
+ 'opslaan_als_nieuw' => 'save_as_new',
+ 'verzenden_aan' => 'ship_to',
+ 'overboeking' => 'transfer',
+ 'bijwerken' => 'update',
+ 'inkoopfaktuur' => 'vendor_invoice',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/be_nl/pe b/locale/be_nl/pe
new file mode 100755
index 00000000..e92e0e40
--- /dev/null
+++ b/locale/be_nl/pe
@@ -0,0 +1,137 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Boekhoudmenu',
+ 'Active' => 'Actief',
+ 'Add' => 'Toevoegen',
+ 'Add Group' => 'Groep toevoegen',
+ 'Add Pricegroup' => 'Prijsgroep toevoegen',
+ 'Add Project' => 'Project toevoegen',
+ 'Address' => 'Adres',
+ 'All' => 'Allemaal',
+ 'Amount' => 'Bedrag',
+ 'Assembly' => 'Assemblage',
+ 'Bin' => 'Locatie',
+ 'Continue' => 'Verder',
+ 'Current' => 'Huidig',
+ 'Customer' => 'Klant',
+ 'Customer missing!' => 'Klant ontbreekt!',
+ 'Customer not on file!' => 'Klant bestaat niet!',
+ 'Date' => 'Datum',
+ 'Delete' => 'Verwijder',
+ 'Description' => 'Omschrijving',
+ 'Description Translations' => 'Omschrijving Vertaling',
+ 'Detail' => 'Detail',
+ 'Edit Description Translations' => 'Wijzig Omschrijving Vertaling',
+ 'Edit Group' => 'Groep wijzigen',
+ 'Edit Pricegroup' => 'Prijsgroep wijzigen ',
+ 'Edit Project' => 'Project wijzigen',
+ 'Employee' => 'Werknemer',
+ 'Enddate' => 'Einddatum',
+ 'From' => 'Van',
+ 'Group' => 'Groep',
+ 'Group Translations' => 'Groep vertaling',
+ 'Group deleted!' => 'Groep verwijderd!',
+ 'Group missing!' => 'Groep ontbreekt!',
+ 'Group saved!' => 'Groep opgeslagen!',
+ 'Groups' => 'Groepen',
+ 'Income' => 'Inkomsten',
+ 'Language' => 'Taal',
+ 'Languages not defined!' => 'Taal niet gedefinieerd!',
+ 'Link Accounts' => 'Rekeningen verbinden',
+ 'List Price' => 'Catalogusprijs',
+ 'Notes' => 'Opmerkingen',
+ 'Nothing selected!' => 'Niets geselecteerd!',
+ 'Number' => 'Nummer',
+ 'Orphaned' => 'Wees',
+ 'Pricegroup' => 'Prijsgroep',
+ 'Pricegroup deleted!' => 'Prijsgroep verwijderd!',
+ 'Pricegroup missing!' => 'Prijsgroep mist!',
+ 'Pricegroup saved!' => 'Prijsgroep opgeslagen!',
+ 'Pricegroups' => 'Prijsgroepen',
+ 'Project' => 'Project',
+ 'Project Description Translations' => 'Project Omschrijving Vertaling',
+ 'Project Number' => 'Projectnummer',
+ 'Project deleted!' => 'Project verwijderd!',
+ 'Project saved!' => 'Project opgeslagen!',
+ 'Projects' => 'Projecten',
+ 'Qty' => 'Aantal',
+ 'Save' => 'Opslaan',
+ 'Select from one of the names below' => 'Kies een van de onderstaande namen',
+ 'Sell Price' => 'Verkoopprijs',
+ 'Startdate' => 'Begindatum',
+ 'Summary' => 'Overzicht',
+ 'Tax' => 'Belasting',
+ 'To' => 'Tot',
+ 'Translation' => 'Vertaling',
+ 'Translation deleted!' => 'Vertaling verwijderd!',
+ 'Translations saved!' => 'Vertalingen opgeslagen!',
+ 'Unit' => 'Eenheid',
+ 'Update' => 'Bijwerken',
+ 'Updated' => 'Bijgewerkt',
+ 'Vendor' => 'Leverancier',
+ 'Vendor not on file!' => 'Leverancier bestaat niet!',
+ 'Weight' => 'Gewicht',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'groep_toevoegen' => 'add_group',
+ 'prijsgroep_toevoegen' => 'add_pricegroup',
+ 'project_toevoegen' => 'add_project',
+ 'verder' => 'continue',
+ 'verwijder' => 'delete',
+ 'opslaan' => 'save',
+ 'bijwerken' => 'update',
+};
+
+1;
+
diff --git a/locale/be_nl/pos b/locale/be_nl/pos
new file mode 100755
index 00000000..3196cceb
--- /dev/null
+++ b/locale/be_nl/pos
@@ -0,0 +1,74 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Boekhoudmenu',
+ 'Add POS Invoice' => 'Directe verkooporder toevoegen',
+ 'Amount' => 'Bedrag',
+ 'Business' => 'Zaaktype',
+ 'Cannot post transaction!' => 'Kan transactie niet boeken!',
+ 'Change' => 'Wijzig',
+ 'Continue' => 'Verder',
+ 'Credit Limit' => 'Kredietlimiet',
+ 'Currency' => 'Valuta',
+ 'Current' => 'Huidig',
+ 'Customer' => 'Klant',
+ 'Customer missing!' => 'Klant ontbreekt!',
+ 'Delete' => 'Verwijder',
+ 'Department' => 'Afdeling',
+ 'Description' => 'Omschrijving',
+ 'Edit POS Invoice' => 'Directe verkooporder wijzigen',
+ 'Exchange Rate' => 'Wisselkoers',
+ 'Exchange rate missing!' => 'Wisselkoers ontbreekt!',
+ 'Extended' => 'Uitgebreid',
+ 'From' => 'Van',
+ 'Language' => 'Taal',
+ 'Memo' => 'Memo',
+ 'Number' => 'Nummer',
+ 'Open' => 'Open',
+ 'Post' => 'Boek',
+ 'Posted!' => 'Geboekt!',
+ 'Price' => 'Prijs',
+ 'Print' => 'Afdrukken',
+ 'Printed' => 'Afgedrukt',
+ 'Qty' => 'Aantal',
+ 'Receipts' => 'Ontvangstbewijzen',
+ 'Record in' => 'Boeken op',
+ 'Remaining' => 'Resterend',
+ 'Salesperson' => 'Verkoper',
+ 'Screen' => 'Scherm',
+ 'Source' => 'Herkomst',
+ 'Subtotal' => 'Subtotaal',
+ 'Tax Included' => 'Inclusief Belasting',
+ 'To' => 'Tot',
+ 'Total' => 'Totaal',
+ 'Trade Discount' => 'Handelskorting',
+ 'Unit' => 'Eenheid',
+ 'Update' => 'Bijwerken',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'verder' => 'continue',
+ 'verwijder' => 'delete',
+ 'boek' => 'post',
+ 'afdrukken' => 'print',
+ 'bijwerken' => 'update',
+};
+
+1;
+
diff --git a/locale/be_nl/ps b/locale/be_nl/ps
new file mode 100755
index 00000000..a235207a
--- /dev/null
+++ b/locale/be_nl/ps
@@ -0,0 +1,338 @@
+$self{texts} = {
+ 'AP Aging' => 'Crediteuren Ouderdomsoverzicht',
+ 'AP Outstanding' => 'Openstaande Crediteuren',
+ 'AP Transaction' => 'Crediteurenboeking',
+ 'AP Transactions' => 'Crediteurenboekingen',
+ 'AR Aging' => 'Debiteuren Ouderdomsoverzicht',
+ 'AR Outstanding' => 'Openstaande Debiteuren',
+ 'AR Transaction' => 'Debiteurenboeking',
+ 'AR Transactions' => 'Debiteurenboekingen',
+ 'Account' => 'Rekening',
+ 'Account Number' => 'Rekeningnummer',
+ 'Accounting Menu' => 'Boekhoudmenu',
+ 'Accounts' => 'Rekeningen',
+ 'Accrual' => 'Opeengestapeld',
+ 'Add POS Invoice' => 'Directe verkooporder toevoegen',
+ 'Add Purchase Order' => 'Inkooporder toevoegen',
+ 'Add Quotation' => 'Offerte toevoegen',
+ 'Add Request for Quotation' => 'Offerteaanvraag toevoegen',
+ 'Add Sales Invoice' => 'Verkoopfactuur toevoegen',
+ 'Add Sales Order' => 'Verkooporder toevoegen',
+ 'Address' => 'Adres',
+ 'All Accounts' => 'Alle Rekeningen',
+ 'Amount' => 'Bedrag',
+ 'Amount Due' => 'Verschuldigd bedrag',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Invoice Number' => 'Weet u zeker dat u dit factuurnummer wilt verwijderen?',
+ 'Are you sure you want to delete Transaction' => 'Weet u zeker dat u deze boeking wilt verwijderen?',
+ 'Attachment' => 'Bijlage',
+ 'Aug' => 'Aug',
+ 'August' => 'Augustus',
+ 'Balance' => 'Saldo',
+ 'Balance Sheet' => 'Balans',
+ 'Bcc' => 'Onzichtbare kopie aan',
+ 'Billing Address' => 'Facturatieadres',
+ 'Bin' => 'Locatie',
+ 'Bin List' => 'Locatielijst',
+ 'Business' => 'Zaaktype',
+ 'Cannot delete invoice!' => 'Kan factuur niet verwijderen!',
+ 'Cannot delete transaction!' => 'Kan boeking niet verwijderen!',
+ 'Cannot post invoice for a closed period!' => 'Kan geen factuur boeken in afgesloten periode!',
+ 'Cannot post invoice!' => 'Kan factuur niet boeken!',
+ 'Cannot post payment for a closed period!' => 'Kan geen betaling boeken voor afgesloten periode!',
+ 'Cannot post transaction for a closed period!' => 'Kan geen boeking maken in afgesloten periode',
+ 'Cannot post transaction!' => 'Kan transactie niet boeken!',
+ 'Cash' => 'Kas (contant)',
+ 'Cc' => 'Kopie aan',
+ 'Change' => 'Wijzig',
+ 'Check' => 'Cheque',
+ 'City' => 'Stad',
+ 'Closed' => 'Afgesloten',
+ 'Company Name' => 'Bedrijfsnaam',
+ 'Compare to' => 'Vergelijk met',
+ 'Confirm!' => 'Bevestig!',
+ 'Contact' => 'Contact',
+ 'Continue' => 'Verder',
+ 'Copies' => 'Kopieën',
+ 'Country' => 'Land',
+ 'Credit' => 'Credit',
+ 'Credit Limit' => 'Kredietlimiet',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valuta',
+ 'Current' => 'Huidig',
+ 'Current Earnings' => 'Huidige winst',
+ 'Customer' => 'Klant',
+ 'Customer Number' => 'Klantnummer',
+ 'Customer missing!' => 'Klant ontbreekt!',
+ 'Customer not on file!' => 'Klant bestaat niet!',
+ 'Date' => 'Datum',
+ 'Date Paid' => 'Betaaldatum',
+ 'Debit' => 'Debet',
+ 'Dec' => 'Dec',
+ 'December' => 'December',
+ 'Decimalplaces' => 'Aantal Decimalen',
+ 'Delete' => 'Verwijder',
+ 'Delivery Date' => 'Leverdatum',
+ 'Department' => 'Afdeling',
+ 'Description' => 'Omschrijving',
+ 'Detail' => 'Detail',
+ 'Due Date' => 'Vervaldatum',
+ 'Due Date missing!' => 'Vervaldatum ontbreekt!',
+ 'E-mail' => 'E-mail',
+ 'E-mail Statement to' => 'E-mail Overzicht aan',
+ 'E-mail address missing!' => 'E-mailadres ontbreekt!',
+ 'E-mailed' => 'Gemaild',
+ 'Edit POS Invoice' => 'Directe verkooporder wijzigen',
+ 'Edit Sales Invoice' => 'Verkoopfactuur wijzigen',
+ 'Employee' => 'Werknemer',
+ 'Exch' => 'Wisselkoers',
+ 'Exchange Rate' => 'Wisselkoers',
+ 'Exchange rate for payment missing!' => 'Wisselkoers voor Betaling ontbreekt!',
+ 'Exchange rate missing!' => 'Wisselkoers ontbreekt!',
+ 'Extended' => 'Uitgebreid',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Februari',
+ 'From' => 'Van',
+ 'GIFI' => 'GIFI',
+ 'Group' => 'Groep',
+ 'Heading' => 'Kopregel',
+ 'ID' => 'ID',
+ 'In-line' => 'In Lijn',
+ 'Include Exchange Rate Difference' => 'Inclusief wisselkoersverschil',
+ 'Include in Report' => 'Toevoegen aan Uitvoer',
+ 'Income Statement' => 'Inkomstenoverzicht',
+ 'Internal Notes' => 'Interne notities',
+ 'Invoice' => 'Factuur',
+ 'Invoice Date' => 'Factuurdatum',
+ 'Invoice Date missing!' => 'Factuurdatum ontbreekt!',
+ 'Invoice Number' => 'Factuurnummer',
+ 'Invoice Number missing!' => 'Factuurnummer ontbreekt!',
+ 'Invoice deleted!' => 'Factuur verwijderd!',
+ 'Item not on file!' => 'Dit onderdeel is niet in de database gevonden!',
+ 'Jan' => 'Jan',
+ 'January' => 'Januari',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Language' => 'Taal',
+ 'Manager' => 'Manager',
+ 'Mar' => 'Mrt',
+ 'March' => 'Maart',
+ 'May' => 'Mei',
+ 'May ' => 'Mei',
+ 'Memo' => 'Memo',
+ 'Message' => 'Boodschap',
+ 'Method' => 'Methode',
+ 'N/A' => 'N/A',
+ 'No.' => 'Nr.',
+ 'Non-taxable Purchases' => 'Onbelaste aankopen',
+ 'Non-taxable Sales' => 'Onbelaste verkopen',
+ 'Notes' => 'Opmerkingen',
+ 'Nothing selected!' => 'Niets geselecteerd!',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Nummer',
+ 'Number missing in Row' => 'Getal ontbreekt in Regel',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Open' => 'Open',
+ 'Order' => 'Bestelling',
+ 'Order Date missing!' => 'Geen order datum aanwezig',
+ 'Order Number' => 'Referentie',
+ 'Order Number missing!' => 'Geen ordernummer aanwezig',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Pakbon',
+ 'Packing List Date missing!' => 'Pakbon datum ontbreekt!',
+ 'Packing List Number missing!' => 'Pakbon nummer ontbreekt!',
+ 'Paid' => 'Betaald',
+ 'Part' => 'Artikel',
+ 'Payment date missing!' => 'Geen betalingsdatum aanwezig!',
+ 'Payments' => 'Betalingen',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Uitzoeklijst',
+ 'Post' => 'Boek',
+ 'Post as new' => 'Boek als nieuw',
+ 'Posted!' => 'Geboekt!',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Prijs',
+ 'Print' => 'Afdrukken',
+ 'Printed' => 'Afgedrukt',
+ 'Project' => 'Project',
+ 'Project Number' => 'Projectnummer',
+ 'Project Transactions' => 'Projectboekingen',
+ 'Project not on file!' => 'Onbekend project!',
+ 'Purchase Order' => 'Inkooporder',
+ 'Qty' => 'Aantal',
+ 'Quotation' => 'Offerte',
+ 'Quotation Date missing!' => 'Offertedatum ontbreekt!',
+ 'Quotation Number missing!' => 'Offertenummer ontbreekt!',
+ 'Recd' => 'Ontvangen',
+ 'Receipt' => 'Ontvangstbewijs',
+ 'Receipts' => 'Ontvangstbewijzen',
+ 'Record in' => 'Boeken op',
+ 'Reference' => 'Referentie',
+ 'Remaining' => 'Resterend',
+ 'Report for' => 'Rapport voor',
+ 'Required by' => 'Nodig voor',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Verkooporder',
+ 'Salesperson' => 'Verkoper',
+ 'Screen' => 'Scherm',
+ 'Select all' => 'Selecteer alles',
+ 'Select from one of the names below' => 'Kies een van de onderstaande namen',
+ 'Select from one of the projects below' => 'Kies een van de onderstaande projecten',
+ 'Select postscript or PDF!' => 'Kies postscript of PDF',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Serial No.' => 'Serienr',
+ 'Service' => 'Dienst',
+ 'Ship' => 'Verzenden',
+ 'Ship to' => 'Verzenden aan',
+ 'Ship via' => 'Verzenden via',
+ 'Shipping Address' => 'Verzendadres',
+ 'Shipping Point' => 'Verzendpunt',
+ 'Source' => 'Herkomst',
+ 'Standard' => 'Standaard',
+ 'Startdate' => 'Begindatum',
+ 'State/Province' => 'Staat/Provincie',
+ 'Statement' => 'Overzicht',
+ 'Statement sent to' => 'Overzicht verzonden aan',
+ 'Statements sent to printer!' => 'Overzichten afgedrukt',
+ 'Subject' => 'Onderwerp',
+ 'Subtotal' => 'Subtotaal',
+ 'Summary' => 'Overzicht',
+ 'Tax' => 'Belasting',
+ 'Tax Included' => 'Inclusief Belasting',
+ 'Tax collected' => 'Belasting verschuldigd',
+ 'Tax paid' => 'Belasting Betaald',
+ 'Till' => 'Kassa',
+ 'To' => 'Tot',
+ 'Total' => 'Totaal',
+ 'Trade Discount' => 'Handelskorting',
+ 'Transaction deleted!' => 'Boeking verwijderd!',
+ 'Transaction posted!' => 'Boeking opgeslagen!',
+ 'Trial Balance' => 'Proefbalans',
+ 'Unit' => 'Eenheid',
+ 'Update' => 'Bijwerken',
+ 'Vendor' => 'Leverancier',
+ 'Vendor Number' => 'Leveranciernummer',
+ 'Vendor missing!' => 'Leverancier ontbreekt!',
+ 'Vendor not on file!' => 'Leverancier bestaat niet!',
+ 'Warning!' => 'Waarschuwing!',
+ 'What type of item is this?' => 'Wat voor soort artikel is dit?',
+ 'Work Order' => 'Bedrijfs order',
+ 'Yes' => 'Ja',
+ 'as at' => 'per',
+ 'ea' => 'voor',
+ 'for Period' => 'voor periode',
+ 'posted!' => 'opgeslagen!',
+ 'sent' => 'verzonden',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'crediteurenboeking' => 'ap_transaction',
+ 'debiteurenboeking' => 'ar_transaction',
+ 'verder' => 'continue',
+ 'verwijder' => 'delete',
+ 'e_mail' => 'e_mail',
+ 'boek' => 'post',
+ 'boek_als_nieuw' => 'post_as_new',
+ 'afdrukken' => 'print',
+ 'verkooporder' => 'sales_order',
+ 'selecteer_alles' => 'select_all',
+ 'verzenden_aan' => 'ship_to',
+ 'bijwerken' => 'update',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/be_nl/pw b/locale/be_nl/pw
new file mode 100755
index 00000000..9a8ea00d
--- /dev/null
+++ b/locale/be_nl/pw
@@ -0,0 +1,12 @@
+$self{texts} = {
+ 'Continue' => 'Verder',
+ 'Password' => 'Wachtwoord',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'verder' => 'continue',
+};
+
+1;
+
diff --git a/locale/be_nl/rc b/locale/be_nl/rc
new file mode 100755
index 00000000..94ebfcfd
--- /dev/null
+++ b/locale/be_nl/rc
@@ -0,0 +1,75 @@
+$self{texts} = {
+ 'Account' => 'Rekening',
+ 'Accounting Menu' => 'Boekhoudmenu',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Aug' => 'Aug',
+ 'August' => 'Augustus',
+ 'Balance' => 'Saldo',
+ 'Beginning Balance' => 'Begin Balans',
+ 'Cleared' => 'Opgeschoond',
+ 'Continue' => 'Verder',
+ 'Credit' => 'Credit',
+ 'Current' => 'Huidig',
+ 'Date' => 'Datum',
+ 'Debit' => 'Debet',
+ 'Dec' => 'Dec',
+ 'December' => 'December',
+ 'Description' => 'Omschrijving',
+ 'Detail' => 'Detail',
+ 'Difference' => 'Verschil',
+ 'Done' => 'Klaar',
+ 'Feb' => 'Feb',
+ 'February' => 'Februari',
+ 'From' => 'Van',
+ 'Include Exchange Rate Difference' => 'Inclusief wisselkoersverschil',
+ 'Jan' => 'Jan',
+ 'January' => 'Januari',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Mar' => 'Mrt',
+ 'March' => 'Maart',
+ 'May' => 'Mei',
+ 'May ' => 'Mei',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Out of balance!' => 'Niet in evenwicht!',
+ 'Outstanding' => 'Openstaand',
+ 'R' => 'R',
+ 'Reconciliation' => 'Boekingen Verwerken',
+ 'Reconciliation Report' => 'Reconcilidatie rapport',
+ 'Select all' => 'Selecteer alles',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Source' => 'Herkomst',
+ 'Statement Balance' => 'Saldo Overzicht',
+ 'Summary' => 'Overzicht',
+ 'To' => 'Tot',
+ 'Update' => 'Bijwerken',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'verder' => 'continue',
+ 'klaar' => 'done',
+ 'selecteer_alles' => 'select_all',
+ 'bijwerken' => 'update',
+};
+
+1;
+
diff --git a/locale/be_nl/rp b/locale/be_nl/rp
new file mode 100755
index 00000000..4fd83b8d
--- /dev/null
+++ b/locale/be_nl/rp
@@ -0,0 +1,175 @@
+$self{texts} = {
+ 'AP Aging' => 'Crediteuren Ouderdomsoverzicht',
+ 'AR Aging' => 'Debiteuren Ouderdomsoverzicht',
+ 'Account' => 'Rekening',
+ 'Account Number' => 'Rekeningnummer',
+ 'Accounting Menu' => 'Boekhoudmenu',
+ 'Accounts' => 'Rekeningen',
+ 'Accrual' => 'Opeengestapeld',
+ 'Address' => 'Adres',
+ 'All Accounts' => 'Alle Rekeningen',
+ 'Amount' => 'Bedrag',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Attachment' => 'Bijlage',
+ 'Aug' => 'Aug',
+ 'August' => 'Augustus',
+ 'Balance' => 'Saldo',
+ 'Balance Sheet' => 'Balans',
+ 'Bcc' => 'Onzichtbare kopie aan',
+ 'Cash' => 'Kas (contant)',
+ 'Cc' => 'Kopie aan',
+ 'Compare to' => 'Vergelijk met',
+ 'Continue' => 'Verder',
+ 'Copies' => 'Kopieën',
+ 'Credit' => 'Credit',
+ 'Curr' => 'Val.',
+ 'Current' => 'Huidig',
+ 'Current Earnings' => 'Huidige winst',
+ 'Customer' => 'Klant',
+ 'Customer not on file!' => 'Klant bestaat niet!',
+ 'Date' => 'Datum',
+ 'Debit' => 'Debet',
+ 'Dec' => 'Dec',
+ 'December' => 'December',
+ 'Decimalplaces' => 'Aantal Decimalen',
+ 'Department' => 'Afdeling',
+ 'Description' => 'Omschrijving',
+ 'Detail' => 'Detail',
+ 'Due Date' => 'Vervaldatum',
+ 'E-mail' => 'E-mail',
+ 'E-mail Statement to' => 'E-mail Overzicht aan',
+ 'E-mail address missing!' => 'E-mailadres ontbreekt!',
+ 'Feb' => 'Feb',
+ 'February' => 'Februari',
+ 'From' => 'Van',
+ 'GIFI' => 'GIFI',
+ 'Heading' => 'Kopregel',
+ 'ID' => 'ID',
+ 'In-line' => 'In Lijn',
+ 'Include Exchange Rate Difference' => 'Inclusief wisselkoersverschil',
+ 'Include in Report' => 'Toevoegen aan Uitvoer',
+ 'Income Statement' => 'Inkomstenoverzicht',
+ 'Invoice' => 'Factuur',
+ 'Jan' => 'Jan',
+ 'January' => 'Januari',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Language' => 'Taal',
+ 'Mar' => 'Mrt',
+ 'March' => 'Maart',
+ 'May' => 'Mei',
+ 'May ' => 'Mei',
+ 'Memo' => 'Memo',
+ 'Message' => 'Boodschap',
+ 'Method' => 'Methode',
+ 'N/A' => 'N/A',
+ 'Non-taxable Purchases' => 'Onbelaste aankopen',
+ 'Non-taxable Sales' => 'Onbelaste verkopen',
+ 'Nothing selected!' => 'Niets geselecteerd!',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Nummer',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Order' => 'Bestelling',
+ 'PDF' => 'PDF',
+ 'Payments' => 'Betalingen',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Afdrukken',
+ 'Project' => 'Project',
+ 'Project Number' => 'Projectnummer',
+ 'Project Transactions' => 'Projectboekingen',
+ 'Project not on file!' => 'Onbekend project!',
+ 'Receipts' => 'Ontvangstbewijzen',
+ 'Reference' => 'Referentie',
+ 'Report for' => 'Rapport voor',
+ 'Salesperson' => 'Verkoper',
+ 'Screen' => 'Scherm',
+ 'Select all' => 'Selecteer alles',
+ 'Select from one of the names below' => 'Kies een van de onderstaande namen',
+ 'Select from one of the projects below' => 'Kies een van de onderstaande projecten',
+ 'Select postscript or PDF!' => 'Kies postscript of PDF',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Source' => 'Herkomst',
+ 'Standard' => 'Standaard',
+ 'Startdate' => 'Begindatum',
+ 'Statement' => 'Overzicht',
+ 'Statement sent to' => 'Overzicht verzonden aan',
+ 'Statements sent to printer!' => 'Overzichten afgedrukt',
+ 'Subject' => 'Onderwerp',
+ 'Subtotal' => 'Subtotaal',
+ 'Summary' => 'Overzicht',
+ 'Tax' => 'Belasting',
+ 'Tax collected' => 'Belasting verschuldigd',
+ 'Tax paid' => 'Belasting Betaald',
+ 'Till' => 'Kassa',
+ 'To' => 'Tot',
+ 'Total' => 'Totaal',
+ 'Trial Balance' => 'Proefbalans',
+ 'Vendor' => 'Leverancier',
+ 'Vendor not on file!' => 'Leverancier bestaat niet!',
+ 'Warning!' => 'Waarschuwing!',
+ 'as at' => 'per',
+ 'for Period' => 'voor periode',
+ 'sent' => 'verzonden',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'verder' => 'continue',
+ 'e_mail' => 'e_mail',
+ 'afdrukken' => 'print',
+ 'selecteer_alles' => 'select_all',
+};
+
+1;
+
diff --git a/locale/bg_utf/COPYING b/locale/bg_utf/COPYING
new file mode 100755
index 00000000..0b526083
--- /dev/null
+++ b/locale/bg_utf/COPYING
@@ -0,0 +1,25 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2006
+#
+# Bulgarian texts:
+#
+# Author: Rosen Vladimirov
+# E-mail: kondor_ltd@dir.bg
+# This localisation based on Rosen Vladimirov's UTF-8 localisation.
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/bg_utf/LANGUAGE b/locale/bg_utf/LANGUAGE
new file mode 100755
index 00000000..e34e1452
--- /dev/null
+++ b/locale/bg_utf/LANGUAGE
@@ -0,0 +1 @@
+Bulgarian (UTF-8)
diff --git a/locale/bg_utf/aa b/locale/bg_utf/aa
new file mode 100755
index 00000000..2e9615f1
--- /dev/null
+++ b/locale/bg_utf/aa
@@ -0,0 +1,163 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Outstanding' => 'Ð’Ð·ÐµÐ¼Ð°Ð½Ð¸Ñ Ð¾Ñ‚ клиенти',
+ 'AP Transaction' => 'Превод продажба',
+ 'AP Transactions' => 'Преводи продажби',
+ 'AR Outstanding' => 'Ð—Ð°Ð´ÑŠÐ»Ð¶ÐµÐ½Ð¸Ñ ÐºÑŠÐ¼ доÑтавчици',
+ 'AR Transaction' => 'Превод покупка',
+ 'AR Transactions' => 'Преводи покупки',
+ 'Account' => 'Сметка',
+ 'Accounting Menu' => 'Меню Сметкоплан',
+ 'Add AP Transaction' => 'ДобавÑне превод към клиенти',
+ 'Add AR Transaction' => 'ДобавÑне превод към доÑтавчици',
+ 'Amount' => 'Сума',
+ 'Amount Due' => 'Сума за получаване',
+ 'Apr' => 'Ðпр',
+ 'April' => 'Ðприл',
+ 'Are you sure you want to delete Transaction' => 'Сигурни ли Ñте, че ще изÑтриете превода?',
+ 'Aug' => 'Ðвг',
+ 'August' => 'ÐвгуÑÑ‚',
+ 'Cannot delete transaction!' => 'Ðе мога да изÑÑ‚Ñ€Ð¸Ñ Ð¿Ñ€ÐµÐ²Ð¾Ð´Ð°!',
+ 'Cannot post payment for a closed period!' => 'Ðе мога да извърша плащане за закрит период!',
+ 'Cannot post transaction for a closed period!' => 'Ðе мога да извърша превод за закрит период!',
+ 'Cannot post transaction!' => 'Ðе мога да извърша плащане!',
+ 'Check' => 'В брой',
+ 'Closed' => 'Затворено',
+ 'Confirm!' => 'СъглаÑие!',
+ 'Continue' => 'Продължение',
+ 'Credit' => 'Кредит',
+ 'Credit Limit' => 'Кредитен лимит',
+ 'Curr' => 'Валута',
+ 'Currency' => 'Валута',
+ 'Current' => 'Текущ',
+ 'Customer' => 'Клиент',
+ 'Customer missing!' => 'ПропуÑнат клиент!',
+ 'Date' => 'Дата',
+ 'Date Paid' => 'Падеж',
+ 'Debit' => 'Дебит',
+ 'Dec' => 'Дек',
+ 'December' => 'Декември',
+ 'Delete' => 'ИзÑтрии',
+ 'Department' => 'Отдел',
+ 'Description' => 'ОбÑÑнение',
+ 'Detail' => 'Детаилен',
+ 'Due Date' => 'Платете до',
+ 'Due Date missing!' => 'ПропуÑната дата за плащане',
+ 'Edit AP Transaction' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° превод към доÑтавчик',
+ 'Edit AR Transaction' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° превод към клиент',
+ 'Employee' => 'Сътрудник',
+ 'Exch' => 'КурÑ',
+ 'Exchange Rate' => 'Валутен курÑ',
+ 'Exchange rate for payment missing!' => 'Валутен ÐºÑƒÑ€Ñ Ð·Ð° пропуÑнато плащане',
+ 'Exchange rate missing!' => 'ПропуÑнат валутен курÑ',
+ 'Feb' => 'Фев',
+ 'February' => 'Февруари',
+ 'From' => 'От',
+ 'ID' => 'Код',
+ 'Include in Report' => 'Включен в Ñправката',
+ 'Invoice' => 'Фактура',
+ 'Invoice Date' => 'Фактура дата',
+ 'Invoice Date missing!' => 'ПопуÑната дата на фактурата',
+ 'Invoice Number' => 'Фактура номер',
+ 'Jan' => 'Яну',
+ 'January' => 'Януари',
+ 'Jul' => 'Юли',
+ 'July' => 'Юли',
+ 'Jun' => 'Юни',
+ 'June' => 'Юни',
+ 'Manager' => 'Ръководител',
+ 'Mar' => 'Мар',
+ 'March' => 'Март',
+ 'May' => 'Май',
+ 'May ' => 'Май',
+ 'Memo' => 'Бележка',
+ 'Month' => 'МеÑец',
+ 'No.' => 'Ðо.',
+ 'Notes' => 'Забележка',
+ 'Nov' => 'Ðое',
+ 'November' => 'Ðоември',
+ 'Oct' => 'Окт',
+ 'October' => 'Октомври',
+ 'Open' => 'Отворен',
+ 'Order' => 'Поръчка',
+ 'Order Number' => 'Поръчка номер',
+ 'PO Number' => 'Поръчка номер за покупка',
+ 'Paid' => 'Платено',
+ 'Payment date missing!' => 'ПропуÑната дата на плащане!',
+ 'Payments' => 'Плащане',
+ 'Period' => 'Период',
+ 'Post' => 'Запази',
+ 'Post as new' => 'Запази като нов',
+ 'Print' => 'Печат',
+ 'Print and Post' => 'Разпечатай и запази',
+ 'Print and Post as new' => 'Разпечатай и запази като нов',
+ 'Project' => 'Проект',
+ 'Quarter' => 'ЧетиримеÑечие',
+ 'Receipt' => 'Получаване',
+ 'Remaining' => 'ÐапомнÑне',
+ 'Sales Invoice.' => 'Фактура продажби',
+ 'Salesperson' => 'Продавач',
+ 'Schedule' => 'РазпиÑание',
+ 'Sep' => 'Сеп',
+ 'September' => 'Септември',
+ 'Ship to' => 'ДоÑтавка до',
+ 'Ship via' => 'ДоÑтавка ÑÑŠÑ',
+ 'Shipping Point' => 'МеÑтоназначение',
+ 'Source' => 'Първообраз',
+ 'Subtotal' => 'Междинен Ñбор',
+ 'Summary' => 'Сумарно',
+ 'Tax' => 'Данък',
+ 'Tax Included' => 'Включен данък',
+ 'Till' => 'до',
+ 'To' => 'за',
+ 'Total' => 'Ð’Ñичко',
+ 'Transaction' => 'Превод',
+ 'Transaction deleted!' => 'Превода е изтрит!',
+ 'Transaction posted!' => 'Превода е запазен!',
+ 'Update' => 'Обнови',
+ 'Vendor' => 'ДоÑтавчик',
+ 'Vendor Invoice.' => 'Фактура на доÑтавчик',
+ 'Vendor missing!' => 'ЛипÑва доÑтавчик',
+ 'Year' => 'Година',
+ 'Yes' => 'Да',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'Превод_продажба' => 'ap_transaction',
+ 'Превод_покупка' => 'ar_transaction',
+ 'Продължение' => 'continue',
+ 'ИзÑтрии' => 'delete',
+ 'Запази' => 'post',
+ 'Запази_като_нов' => 'post_as_new',
+ 'Печат' => 'print',
+ 'Разпечатай_и_запази' => 'print_and_post',
+ 'Разпечатай_и_запази_като_нов' => 'print_and_post_as_new',
+ 'Фактура_продажби' => 'sales_invoice_',
+ 'РазпиÑание' => 'schedule',
+ 'ДоÑтавка_до' => 'ship_to',
+ 'Обнови' => 'update',
+ 'Фактура_на_доÑтавчик' => 'vendor_invoice_',
+ 'Да' => 'yes',
+};
+
+1;
+
diff --git a/locale/bg_utf/admin b/locale/bg_utf/admin
new file mode 100755
index 00000000..5799f6d8
--- /dev/null
+++ b/locale/bg_utf/admin
@@ -0,0 +1,146 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Access Control' => 'Контрол на доÑтъпа',
+ 'Accounting' => 'Сметкоплан',
+ 'Add User' => 'Добави потребител',
+ 'Address' => 'ÐдреÑ',
+ 'Administration' => 'ÐдминиÑтриране',
+ 'Administrator' => 'ÐдминиÑтратор',
+ 'All Datasets up to date!' => 'Ð’Ñички бази Ñа обновени!',
+ 'Cannot create Lock!' => 'Ðе мога да заключа запиÑа',
+ 'Change Admin Password' => 'Промени ÐдминиÑтраторÑката парола',
+ 'Change Password' => 'Промени парола',
+ 'Click on login name to edit!' => 'Потвърди за Ñ€ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° потребителÑко име!',
+ 'Company' => 'Фирма',
+ 'Confirm' => 'СъглаÑие',
+ 'Connect to' => 'СвържиÑе ÑÑŠÑ',
+ 'Continue' => 'Продължение',
+ 'Create Chart of Accounts' => 'Създай Ñметкоплана',
+ 'Create Dataset' => 'Създай базата-данни',
+ 'DBA' => 'DBA',
+ 'DBI not installed!' => 'DBI не е инÑталиран',
+ 'Database' => 'Бази-данни',
+ 'Database Administration' => 'ÐдминиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð½Ð° бази-данни',
+ 'Database Driver not checked!' => 'Драйвер за връзка Ñ Ð±Ð°Ð·Ð¸-данни липÑва!',
+ 'Database User missing!' => 'Потребител за управление на бази-данни липÑва!',
+ 'Dataset' => 'Бази-данни',
+ 'Dataset missing!' => 'ЛипÑват бази-данни!',
+ 'Dataset updated!' => 'Базите-данни Ñа актуализирани!',
+ 'Date Format' => 'Фармат за дата',
+ 'Delete' => 'ИзÑтрии',
+ 'Delete Dataset' => 'Изтрии база-данни',
+ 'Directory' => 'ДиректориÑ',
+ 'Driver' => 'Драйвер',
+ 'Dropdown Limit' => 'МакÑимална дължина на падащи менюта',
+ 'E-mail' => 'Ел.адреÑ',
+ 'Edit User' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° потребител',
+ 'Existing Datasets' => 'СъщеÑтвува базата-данни',
+ 'Fax' => 'ФакÑ',
+ 'Host' => 'Сървър',
+ 'Hostname missing!' => 'ЛипÑва име на Ñървър',
+ 'Language' => 'Език',
+ 'Lock System' => 'Заключена е ÑиÑтемата',
+ 'Lockfile created!' => 'Ð‘Ð»Ð¾ÐºÐ¸Ñ€Ð°Ñ‰Ð¸Ñ Ñ„Ð°Ð¹Ð» е Ñъздаден!',
+ 'Lockfile removed!' => 'Ð‘Ð»Ð¾ÐºÐ¸Ñ€Ð°Ñ‰Ð¸Ñ Ñ„Ð°Ð¹Ð» е премахнат!',
+ 'Login' => 'Влизане',
+ 'Login name missing!' => 'Името на Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»Ñ Ð»Ð¸Ð¿Ñва!',
+ 'Logout' => 'Излизане',
+ 'Manager' => 'Ръководител',
+ 'Menu Width' => 'Ширина на менюто',
+ 'Multibyte Encoding' => 'Multibyte Encoding',
+ 'Name' => 'Име',
+ 'New Templates' => 'Ðов проформа',
+ 'No Database Drivers available!' => 'ЛипÑва драйвер за базите-данни!',
+ 'No Dataset selected!' => 'Ðе Ñте избрали база-данни!',
+ 'Nothing to delete!' => 'ÐÑма нищо за изÑтриване',
+ 'Number Format' => 'Формат-чиÑло',
+ 'Oracle Database Administration' => 'ÐдмиÑтриране на бази-данни Oracle',
+ 'Password' => 'Парола',
+ 'Password changed!' => 'Паролата е променена!',
+ 'Passwords do not match!' => 'Паролата не ÑъотведÑтва!',
+ 'Pg Database Administration' => 'ÐдмиÑтриране на бази-данни Postgres',
+ 'PgPP Database Administration' => 'ÐдмиÑтриране на бази-данни PgPP',
+ 'Phone' => 'Телефон',
+ 'Port' => 'Порт',
+ 'Port missing!' => 'ЛипÑва порт!',
+ 'Printer' => 'Принтер',
+ 'Save' => 'Запази',
+ 'Session Timeout' => 'Изтече времето на ÑеÑиÑта',
+ 'Session expired!' => 'Ðевалидна ÑеÑиÑта!',
+ 'Setup Templates' => 'ÐаÑтройка шаблони',
+ 'Signature' => 'ПодпиÑ',
+ 'Stylesheet' => 'Таблица ÑÑŠÑ Ñтилове',
+ 'Supervisor' => 'Главен админиÑтратор',
+ 'Templates' => 'Шаблони',
+ 'The following Datasets are not in use and can be deleted' => 'ÐаÑтоÑщата база-данни не ÑъщеÑтвува и не може да Ñе изÑтрие',
+ 'The following Datasets need to be updated' => 'ÐаÑтоÑщата база-данни има нужда от обновÑване',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Ще Ð½Ð°Ð¿Ñ€Ð°Ð²Ñ Ñамо проверка на текущите иÑпочници. Ðищо нÑма да Ñе Ñъздава или изтрива от тази Ñтраница!',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.',
+ 'Unlock System' => 'Отключи ÑиÑтемата',
+ 'Update Dataset' => 'Обнови база-данни',
+ 'Use Templates' => 'Лични шаблони',
+ 'User' => 'потребител',
+ 'User deleted!' => 'ÐŸÐ¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»Ñ Ðµ изÑтрит!',
+ 'User saved!' => 'ÐŸÐ¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»Ñ Ðµ запазен!',
+ 'Version' => 'ВерÑиÑ',
+ 'You are logged out' => 'Вие напуÑнахте',
+ 'does not exist' => 'не ÑъщеÑтвува',
+ 'is already a member!' => 'Вече Ñте потребител!',
+ 'localhost' => 'този компютър',
+ 'locked!' => 'заключих!',
+ 'successfully created!' => 'Ñъздаването приключи уÑпешно!',
+ 'successfully deleted!' => 'изÑтриването приключи уÑпешно!',
+ 'website' => 'Ñтраница',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'Добави_потребител' => 'add_user',
+ 'Промени_ÐдминиÑтраторÑката_парола' => 'change_admin_password',
+ 'Промени_парола' => 'change_password',
+ 'Продължение' => 'continue',
+ 'Създай_базата_данни' => 'create_dataset',
+ 'ИзÑтрии' => 'delete',
+ 'Изтрии_база_данни' => 'delete_dataset',
+ 'Заключена_е_ÑиÑтемата' => 'lock_system',
+ 'Влизане' => 'login',
+ 'Излизане' => 'logout',
+ 'ÐдмиÑтриране_на_бази_данни_oracle' => 'oracle_database_administration',
+ 'ÐдмиÑтриране_на_бази_данни_postgres' => 'pg_database_administration',
+ 'ÐдмиÑтриране_на_бази_данни_pgpp' => 'pgpp_database_administration',
+ 'Запази' => 'save',
+ 'Отключи_ÑиÑтемата' => 'unlock_system',
+ 'Обнови_база_данни' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/bg_utf/all b/locale/bg_utf/all
new file mode 100755
index 00000000..f9071c99
--- /dev/null
+++ b/locale/bg_utf/all
@@ -0,0 +1,868 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+$self{charset} = 'UTF-8';
+
+
+$self{texts} = {
+ 'A' => 'Ð',
+ 'AP' => 'Покупки',
+ 'AP Aging' => 'Разчети Ñ Ð´Ð¾Ñтавчици',
+ 'AP Outstanding' => 'Ð—Ð°Ð´ÑŠÐ»Ð¶ÐµÐ½Ð¸Ñ ÐºÑŠÐ¼ доÑтавчици',
+ 'AP Transaction' => 'Превод покупка',
+ 'AP Transactions' => 'Преводи покупки',
+ 'AR' => 'Продажби',
+ 'AR Aging' => 'Разчети Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ð¸',
+ 'AR Outstanding' => 'Ð’Ð·ÐµÐ¼Ð°Ð½Ð¸Ñ Ð¾Ñ‚ клиенти',
+ 'AR Transaction' => 'Превод продажба',
+ 'AR Transactions' => 'Преводи продажби',
+ 'AR/AP' => 'Продажби/Покупки',
+ 'About' => 'ИнформациÑ',
+ 'Above' => 'По-горе',
+ 'Access Control' => 'Контрол на доÑтъпа',
+ 'Access Denied!' => 'Отказан доÑтъп!',
+ 'Account' => 'Сметка',
+ 'Account Number' => 'Ðомер на Ñметка',
+ 'Account Number missing!' => 'ЛипÑва номер на Ñметка!',
+ 'Account Type' => 'Тип на Ñметката',
+ 'Account Type missing!' => 'ЛипÑва тип на Ñметката!',
+ 'Account deleted!' => 'Сметката е изтрита!',
+ 'Account does not exist!' => 'Сметката не ÑъщеÑтвува!',
+ 'Account saved!' => 'Сметката е запазена!',
+ 'Accounting' => 'Сметкоплан',
+ 'Accounting Menu' => 'Меню Сметкоплан',
+ 'Accounts' => 'Сметки',
+ 'Accrual' => 'Ðатрупване',
+ 'Activate Audit trail' => 'Ðктивиране на пробен баланÑ!',
+ 'Active' => 'Ðктив',
+ 'Add' => 'Добави',
+ 'Add AP Transaction' => 'ДобавÑне превод към доÑтавчици',
+ 'Add AR Transaction' => 'ДобавÑне превод към клиенти',
+ 'Add Account' => 'Добави Сметка',
+ 'Add Assembly' => 'Добави комплект',
+ 'Add Business' => 'Добави направление',
+ 'Add Cash Transfer Transaction' => 'Добави плащане в брой',
+ 'Add Customer' => 'Добави клиент',
+ 'Add Deduction' => 'Добави удръжка',
+ 'Add Department' => 'Добави отдел',
+ 'Add Employee' => 'Добави Ñътрудник',
+ 'Add Exchange Rate' => 'Добави валутен курÑ',
+ 'Add GIFI' => 'Добави GIFI',
+ 'Add General Ledger Transaction' => 'Добави в главната книга превод',
+ 'Add Group' => 'Добави група',
+ 'Add Job' => 'Добави задача',
+ 'Add Labor/Overhead' => 'Добави Разработка/Текущи разходи',
+ 'Add Language' => 'Добави език',
+ 'Add POS Invoice' => 'Добави POS фактура',
+ 'Add Part' => 'Добави позициÑ',
+ 'Add Pricegroup' => 'Добави ценова група',
+ 'Add Project' => 'Добави проект',
+ 'Add Purchase Order' => 'Добави платежно нареждане',
+ 'Add Quotation' => 'Добави заÑвка',
+ 'Add Request for Quotation' => 'Добави запитване за заÑвка',
+ 'Add SIC' => 'Добави SIC',
+ 'Add Sales Invoice' => 'Добави фактура продажби',
+ 'Add Sales Order' => 'Добави поръчка продажби',
+ 'Add Service' => 'Добави уÑлуга',
+ 'Add Time Card' => 'Добави работна карта',
+ 'Add Transaction' => 'Добави превод',
+ 'Add User' => 'Добави потребител',
+ 'Add Vendor' => 'Добави доÑтавчик',
+ 'Add Vendor Invoice' => 'Добави фактура за доÑтавка',
+ 'Add Warehouse' => 'Добави Ñклад',
+ 'Address' => 'ÐдреÑ',
+ 'Administration' => 'ÐдминиÑтриране',
+ 'Administrator' => 'ÐдминиÑтратор',
+ 'After Deduction' => 'След приÑпадане',
+ 'Aged' => 'ОÑтарÑл',
+ 'Aged Overdue' => 'Преминала годноÑÑ‚',
+ 'All' => 'Ð’Ñичко',
+ 'All Accounts' => 'Ð’Ñички Ñметки',
+ 'All Datasets up to date!' => 'Ð’Ñички бази Ñа обновени!',
+ 'All Items' => 'Ð’Ñички позиции',
+ 'Allowances' => 'Разрешителни',
+ 'Amount' => 'Сума',
+ 'Amount Due' => 'Сума за получаване',
+ 'Amount missing!' => 'ЛипÑва Ñума!',
+ 'Apr' => 'Ðпр',
+ 'April' => 'Ðприл',
+ 'Are you sure you want to delete Invoice Number' => 'Сигурен ли Ñте, че изтриете този момер фактура?',
+ 'Are you sure you want to delete Order Number' => 'Сигурен ли Ñте, че ще изтриете номера на поръчката',
+ 'Are you sure you want to delete Quotation Number' => 'Сигурен ли Ñте, че ще изтриете номера на заданието',
+ 'Are you sure you want to delete Transaction' => 'Сигурни ли Ñте, че ще изÑтриете превода?',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Сигурен ли Ñте, че иÑкате да премахнете маркираните заданиÑ?',
+ 'As of' => 'Като този',
+ 'Assemblies' => 'Комплекти',
+ 'Assemblies restocked!' => 'Завършен комплект!',
+ 'Assembly' => 'Комплект',
+ 'Assembly stocked!' => 'Комплекта е Ñкладиран!',
+ 'Asset' => 'Ðктив',
+ 'Attachment' => 'Прикрепен',
+ 'Audit Control' => 'Контрол',
+ 'Audit trail disabled' => 'Ðе е възможен пробен баланÑ!',
+ 'Audit trail enabled' => 'Възможен е пробен баланÑ!',
+ 'Audit trail removed up to' => 'Премахване на възможноÑÑ‚ за пробен Ð±Ð°Ð»Ð°Ð½Ñ Ð´Ð¾ÐºÐ°Ñ‚Ð¾',
+ 'Aug' => 'Ðвг',
+ 'August' => 'ÐвгуÑÑ‚',
+ 'Average Cost' => 'Средно-претеглена цена',
+ 'Avg Cost' => 'Ср. цена',
+ 'BIC' => 'BIC',
+ 'BOM' => 'ВедомоÑÑ‚ материали',
+ 'Backup' => 'Ðрхив',
+ 'Backup sent to' => 'Ðрхива го запази в/у',
+ 'Balance' => 'БаланÑ',
+ 'Balance Sheet' => 'БаланÑ',
+ 'Based on' => 'ОÑноващо Ñе на',
+ 'Batch Printing' => 'Отпечантване на запазени форми',
+ 'Bcc' => 'БÑÑ',
+ 'Before Deduction' => 'Преди приÑпадане',
+ 'Beginning Balance' => 'Ðачално Ñалдо',
+ 'Below' => 'По-долу',
+ 'Billing Address' => 'ÐÐ´Ñ€ÐµÑ Ð·Ð° получаване на Ñметката',
+ 'Bin' => 'Пакет',
+ 'Bin List' => 'СпиÑък на пакет',
+ 'Bin Lists' => 'СпиÑъци на пакети',
+ 'Books are open' => 'Книгата е вече отворена',
+ 'Break' => 'ПрекъÑване',
+ 'Business' => 'ÐаправлениÑ',
+ 'Business Number' => 'Ðомер на направление',
+ 'Business deleted!' => 'Ðаправлението е изтрито!',
+ 'Business saved!' => 'Ðаправлението е запазено!',
+ 'C' => 'C',
+ 'COGS' => 'COGS',
+ 'COGS account does not exist!' => 'ЛипÑва Ñметка за реализирана Ñтока!',
+ 'Cannot create Assembly' => 'Ðе е възможно Ñъздаване на окомлектовка',
+ 'Cannot create Labor' => 'Ðе е възможно Ñъздаване на работа',
+ 'Cannot create Lock!' => 'Ðе мога да заключа запиÑа',
+ 'Cannot create Part' => 'Ðе е възможно Ñъздаване на позициÑ',
+ 'Cannot create Service' => 'Ðе е възможно Ñъздаване на уÑлуга',
+ 'Cannot delete account!' => 'Ðе е възможно изтриването на Ñметката!',
+ 'Cannot delete customer!' => 'Ðе е възможно изтриване на клиент!',
+ 'Cannot delete default account!' => 'Ðе е възможно да Ñе изтрие Ñметка, коÑто е шаблон!',
+ 'Cannot delete invoice!' => 'Ðе възможно иÑтриване на фактура!',
+ 'Cannot delete item!' => 'Ðе е възможно изтриване на Ñтоката!',
+ 'Cannot delete order!' => 'Ðе е възможно изтриване на поръчка!',
+ 'Cannot delete quotation!' => 'Ðе е възможно изтриване на задание!',
+ 'Cannot delete transaction!' => 'Ðе мога да изÑÑ‚Ñ€Ð¸Ñ Ð¿Ñ€ÐµÐ²Ð¾Ð´Ð°!',
+ 'Cannot delete vendor!' => 'Ðе е възможно изтриване на доÑтавчик',
+ 'Cannot post Payment!' => 'Ðе е възможно запазването на плащането!',
+ 'Cannot post Receipt!' => 'Ðе е възможно запазването на поÑтъплението!',
+ 'Cannot post invoice for a closed period!' => 'Ðе е възможно запазване на фактура в приключен период!',
+ 'Cannot post invoice!' => 'Ðе е възможно запазване на фактурата!',
+ 'Cannot post payment for a closed period!' => 'Ðе мога да извърша плащане за закрит период!',
+ 'Cannot post transaction for a closed period!' => 'Ðе мога да извърша превод за закрит период!',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => 'Ðе е възможно запазването на превода едновременно в дебита и кредита на Ñметката!',
+ 'Cannot post transaction!' => 'Ðе мога да извърша плащане!',
+ 'Cannot remove files!' => 'Ðе е възможно премахване на файлове!',
+ 'Cannot save account!' => 'Ðе е възможно да Ñе запази Ñметката!',
+ 'Cannot save defaults!' => 'Ðе е възможно да запази шаблона!',
+ 'Cannot save order!' => 'Ðе е възможно запазване на поръчката!',
+ 'Cannot save preferences!' => 'Ðе е възможно да Ñе запази ÑвойÑтво!',
+ 'Cannot save quotation!' => 'Ðе в възможно запазване на заданието!',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Ðе задавай на Ñметка повече от едно значение (покупка, продажба или инвентар)!',
+ 'Cannot set multiple options for' => 'Ðе задавай повече от едно значение за',
+ 'Cannot stock Assembly!' => 'Ðе е възможно Ñъздаване на окомлектовка!',
+ 'Cannot stock assemblies!' => 'Ðе е възможно да Ñе окомлектова!',
+ 'Cash' => 'КаÑа',
+ 'Cc' => 'СÑ',
+ 'Change' => 'Промени',
+ 'Change Admin Password' => 'Промени ÐдминиÑтраторÑката парола',
+ 'Change Password' => 'Промени парола',
+ 'Chart of Accounts' => 'Сметкоплан',
+ 'Check' => 'В брой',
+ 'Check Inventory' => 'Провери инвентара',
+ 'City' => 'Град',
+ 'Cleared' => 'ИзчиÑтено',
+ 'Click on login name to edit!' => 'Потвърди за Ñ€ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° потребителÑко име!',
+ 'Close Books up to' => 'Книгата е затворена докато',
+ 'Closed' => 'Затворено',
+ 'Code' => 'Код',
+ 'Code missing!' => 'ЛипÑва код!',
+ 'Company' => 'Фирма',
+ 'Company Name' => 'Име на фирма',
+ 'Compare to' => 'Сравни ÑÑŠÑ',
+ 'Completed' => 'Завършен',
+ 'Components' => 'Елементи',
+ 'Confirm' => 'СъглаÑие',
+ 'Confirm!' => 'СъглаÑие!',
+ 'Connect to' => 'СвържиÑе ÑÑŠÑ',
+ 'Consolidate' => 'Обобщаване',
+ 'Consolidate Orders' => 'Обобщени поръчки',
+ 'Consolidate Purchase Orders' => 'Обобщени платежни нарежданиÑ',
+ 'Consolidate Sales Orders' => 'Обобщени поръчки на продажби',
+ 'Contact' => 'Лице за контакт',
+ 'Continue' => 'Продължение',
+ 'Contra' => 'Коректив',
+ 'Copies' => 'Копие',
+ 'Copy to COA' => 'Запази в COA',
+ 'Cost' => 'Цена',
+ 'Cost Center' => 'Звено платец',
+ 'Could not save pricelist!' => 'Ðе е възможно запазването на ценоразпиÑа!',
+ 'Could not save!' => 'Ðевъзможно е да Ñе запази!',
+ 'Could not transfer Inventory!' => 'Ðевъзможно е да Ñе премеÑти инвентара!',
+ 'Country' => 'Държава',
+ 'Create Chart of Accounts' => 'Създай Ñметкоплана',
+ 'Create Dataset' => 'Създай базата-данни',
+ 'Credit' => 'Кредит',
+ 'Credit Invoice' => 'Кредитно извеÑтие към фактура',
+ 'Credit Limit' => 'Кредитен лимит',
+ 'Curr' => 'Валута',
+ 'Currency' => 'Валута',
+ 'Current' => 'Текущ',
+ 'Current Earnings' => 'Текуща печалба',
+ 'Customer' => 'Клиент',
+ 'Customer History' => 'ИÑÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° клиента',
+ 'Customer Number' => 'Клиент номер',
+ 'Customer deleted!' => 'Клиента е изтрит!',
+ 'Customer missing!' => 'ПропуÑнат клиент!',
+ 'Customer not on file!' => 'ЛипÑва клиента в базите!',
+ 'Customer saved!' => 'Клиента е запазен!',
+ 'Customers' => 'Клиенти',
+ 'DBA' => 'DBA',
+ 'DBI not installed!' => 'DBI не е инÑталиран',
+ 'DOB' => 'Дата на раждане',
+ 'Database' => 'Бази-данни',
+ 'Database Administration' => 'ÐдминиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð½Ð° бази-данни',
+ 'Database Driver not checked!' => 'Драйвер за връзка Ñ Ð±Ð°Ð·Ð¸-данни липÑва!',
+ 'Database Host' => 'Сървър за база-данни',
+ 'Database User missing!' => 'Потребител за управление на бази-данни липÑва!',
+ 'Dataset' => 'Бази-данни',
+ 'Dataset is newer than version!' => 'Базата-данни е нова верÑиÑ!',
+ 'Dataset missing!' => 'ЛипÑват бази-данни!',
+ 'Dataset updated!' => 'Базите-данни Ñа актуализирани!',
+ 'Date' => 'Дата',
+ 'Date Format' => 'Фармат за дата',
+ 'Date Paid' => 'Падеж',
+ 'Date Received' => 'Дата за получаване',
+ 'Date missing!' => 'ЛипÑва дата!',
+ 'Date received missing!' => 'ЛипÑва дата на получаване!',
+ 'Day' => 'Ден',
+ 'Day(s)' => 'Ден(дни)',
+ 'Days' => 'Дни',
+ 'Debit' => 'Дебит',
+ 'Debit Invoice' => 'Дебитно извеÑтие към фактура',
+ 'Dec' => 'Дек',
+ 'December' => 'Декември',
+ 'Decimalplaces' => 'ДеÑетична запетаÑ',
+ 'Deduct after' => 'След приÑпадане',
+ 'Deduction deleted!' => 'Удръжката е изтрита!',
+ 'Deduction saved!' => 'Удръжката е запазена!',
+ 'Deductions' => 'Удръжки',
+ 'Default Template' => 'Подразбиращ Ñе шаблон',
+ 'Defaults' => 'По подразбиране',
+ 'Defaults saved!' => 'ПодразбиращиÑÑ‚ Ñе е запазен!',
+ 'Delete' => 'Изтрии',
+ 'Delete Account' => 'Изтрии Ñметка!',
+ 'Delete Dataset' => 'Изтрии база-данни',
+ 'Delete Schedule' => 'Изтрии задачата',
+ 'Deleting a language will also delete the templates for the language' => 'Изтриването на език ще доведе до премахването на шаблоните му!',
+ 'Delivery Date' => 'Дата на доÑтавка',
+ 'Department' => 'Отдел',
+ 'Department deleted!' => 'Отдела е изтрит!',
+ 'Department saved!' => 'Отделът е запазен!',
+ 'Departments' => 'Отдели',
+ 'Deposit' => 'Депозит',
+ 'Description' => 'ОбÑÑнение',
+ 'Description Translations' => 'ОпиÑание на преводите',
+ 'Description missing!' => 'ЛипÑва подпиÑ!',
+ 'Detail' => 'Детаилен',
+ 'Difference' => 'РазличиÑ',
+ 'Directory' => 'ДиректориÑ',
+ 'Discount' => 'ОтÑтъпка',
+ 'Done' => 'Готов',
+ 'Drawing' => 'ИзриÑуване',
+ 'Driver' => 'Драйвер',
+ 'Dropdown Limit' => 'МакÑимална дължина на падащи менюта',
+ 'Due Date' => 'Платете до',
+ 'Due Date missing!' => 'ПропуÑната дата за плащане',
+ 'E-mail' => 'Ел.адреÑ',
+ 'E-mail Statement to' => 'Ел.Ð°Ð´Ñ€ÐµÑ Ð·Ð° потвърждениÑ',
+ 'E-mail address missing!' => 'ЛипÑва Ел.адреÑ!',
+ 'E-mail message' => 'Ел.Ñъобщение',
+ 'E-mailed' => 'Изпратено ел.Ñъобщение',
+ 'Edit' => 'РедакциÑ',
+ 'Edit AP Transaction' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° превод към доÑтавчик',
+ 'Edit AR Transaction' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° превод към клиент',
+ 'Edit Account' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° Ñметка',
+ 'Edit Assembly' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° окомплектовка',
+ 'Edit Business' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° направление',
+ 'Edit Cash Transfer Transaction' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° плащаниÑта в брой',
+ 'Edit Customer' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° клиент',
+ 'Edit Deduction' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° удръжки',
+ 'Edit Department' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° отдел',
+ 'Edit Description Translations' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° опиÑаниÑта на преводите',
+ 'Edit Employee' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° Ñътрудник',
+ 'Edit GIFI' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° GIFI',
+ 'Edit General Ledger Transaction' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° преводи в главната книга',
+ 'Edit Group' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° група',
+ 'Edit Job' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° задача',
+ 'Edit Labor/Overhead' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° работа/натрупани разходи',
+ 'Edit Language' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° език',
+ 'Edit POS Invoice' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° POS фактура',
+ 'Edit Part' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° позициÑ',
+ 'Edit Preferences for' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° ÑвойÑтва за',
+ 'Edit Pricegroup' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° ценова група',
+ 'Edit Project' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° проект',
+ 'Edit Purchase Order' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° платежно нареждане',
+ 'Edit Quotation' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° задание',
+ 'Edit Request for Quotation' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° заÑвка за задание',
+ 'Edit SIC' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ñ SIC',
+ 'Edit Sales Invoice' => 'Редактирай фактура за продажба',
+ 'Edit Sales Order' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° поръчка продажби',
+ 'Edit Service' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° уÑлуга',
+ 'Edit Template' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° шаблон',
+ 'Edit User' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° потребител',
+ 'Edit Vendor' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° доÑтавчик',
+ 'Edit Vendor Invoice' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° фактура доÑтавки',
+ 'Edit Warehouse' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° Ñклад',
+ 'Employee' => 'Сътрудник',
+ 'Employee Name' => 'Име на Ñътрудник',
+ 'Employee Number' => 'Сътрудник номер',
+ 'Employee deleted!' => 'Сътрудника е изтрит!',
+ 'Employee pays' => 'Възнаграждение на Ñътрудник',
+ 'Employee saved!' => 'Сътрудника е запазен!',
+ 'Employees' => 'Сътрудници',
+ 'Employer' => 'Ръботодател',
+ 'Employer pays' => 'ВедомоÑти ÑÑŠÑ Ð·Ð°Ð¿Ð»Ð°Ñ‚Ð¸ на работодателÑ',
+ 'Enddate' => 'Крайна дата',
+ 'Ends' => 'Приключване',
+ 'Enforce transaction reversal for all dates' => 'Принудително преизчиÑлÑване на преводи за вÑички дати',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Въведи до 3 букви разделени Ñ Ð´Ð²ÑƒÐµÑ‚Ð¾Ñ‡Ð¸Ðµ (пример BGL:USD:EUR)',
+ 'Equity' => 'Капитал',
+ 'Every' => 'Винаги',
+ 'Exch' => 'КурÑ',
+ 'Exchange Rate' => 'Валутен курÑ',
+ 'Exchange rate for payment missing!' => 'Валутен ÐºÑƒÑ€Ñ Ð·Ð° пропуÑнато плащане',
+ 'Exchange rate missing!' => 'ПропуÑнат валутен курÑ',
+ 'Exempt age <' => 'ВъзраÑÑ‚ <',
+ 'Existing Datasets' => 'СъщеÑтвува базата-данни',
+ 'Expense' => 'Разход',
+ 'Expense account does not exist!' => 'ЛипÑва разходна Ñметка!',
+ 'Expense/Asset' => 'Разход/активи',
+ 'Extended' => 'Обобщен',
+ 'FX' => 'FX',
+ 'Failed to save order!' => 'Грешка при запазване на поръчка!',
+ 'Fax' => 'ФакÑ',
+ 'Feb' => 'Фев',
+ 'February' => 'Февруари',
+ 'For' => 'За',
+ 'Foreign Exchange Gain' => 'Печалба от курÑови разлики',
+ 'Foreign Exchange Loss' => 'Загуба от курÑови разлики',
+ 'From' => 'От',
+ 'From Warehouse' => 'От Ñклад',
+ 'GIFI' => 'GIFI',
+ 'GIFI deleted!' => 'GIFI е изтрит!',
+ 'GIFI missing!' => 'ЛипÑва GIFI!',
+ 'GIFI saved!' => 'GIFI е запазен!',
+ 'GL' => 'Главна книга',
+ 'GL Reference Number' => 'Ðомер на главната книга',
+ 'GL Transaction' => 'Главна книга на преводи',
+ 'General Ledger' => 'Главна книга',
+ 'Generate' => 'Създай',
+ 'Generate Orders' => 'Създай поръчка',
+ 'Generate Purchase Orders' => 'Създай поръчка за доÑтавка',
+ 'Generate Purchase Orders from Sales Order' => 'Създай поръчка за доÑтавка на база поръчка продажби',
+ 'Generate Sales Order' => 'Създай поръчка продажби',
+ 'Generate Sales Order from Purchase Orders' => 'Създай поръчка продажби на база поръчка за доÑтавка',
+ 'Generate Sales Orders' => 'Създай поръчките за продажбите',
+ 'Goods & Services' => 'Стоки и уÑлуги',
+ 'Group' => 'Група',
+ 'Group Items' => 'Група Ñтоки',
+ 'Group Translations' => 'Група преводи',
+ 'Group deleted!' => 'Групата е изтрита!',
+ 'Group missing!' => 'ЛипÑва група!',
+ 'Group saved!' => 'Групата е запазена!',
+ 'Groups' => 'Групи',
+ 'HR' => 'Сътрудници',
+ 'HTML Templates' => 'HTML Шаблони',
+ 'Heading' => 'Заглавие',
+ 'History' => 'ИÑториÑ',
+ 'Home Phone' => 'Домашен телефон',
+ 'Host' => 'Сървър',
+ 'Hostname missing!' => 'ЛипÑва име на Ñървър',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'Код',
+ 'Image' => 'Изображение',
+ 'In-line' => 'Включен',
+ 'Inactive' => 'Ðеизползваем',
+ 'Include Exchange Rate Difference' => 'Включи курÑовата разлика',
+ 'Include Payment' => 'Включено плащане',
+ 'Include in Report' => 'Включен в Ñправката',
+ 'Include in drop-down menus' => 'Включи в падащо меню',
+ 'Income' => 'Приходи',
+ 'Income Statement' => 'Отчет за Приходи и Разходи',
+ 'Income account does not exist!' => 'ЛипÑва приходна Ñметка!',
+ 'Incorrect Dataset version!' => 'Коригирай верÑиÑта на базата-данни!',
+ 'Individual Items' => 'СамоÑтоÑтелена Ñтока',
+ 'Internal Notes' => 'Вътрешни бележки',
+ 'Inventory' => 'Инвентар',
+ 'Inventory account does not exist!' => 'ЛипÑва инвентарна Ñметка!',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Преди бракуване на окомплектовка е необходимо количеÑтвото му да е нула!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Преди бракуване на Ð¿Ð¾Ð·Ð¸Ñ†Ð¸Ñ Ðµ необходимо количеÑтвото и да е нула!',
+ 'Inventory saved!' => 'Ивентара е запазен!',
+ 'Inventory transferred!' => 'Инвентара е премеÑтен!',
+ 'Invoice' => 'Фактура',
+ 'Invoice Date' => 'Фактура дата',
+ 'Invoice Date missing!' => 'ПопуÑната дата на фактурата',
+ 'Invoice Number' => 'Фактура номер',
+ 'Invoice Number missing!' => 'ЛипÑва номер на фактура!',
+ 'Invoice deleted!' => 'Фактурата е изтрита!',
+ 'Invoices' => 'Фактура',
+ 'Is this a summary account to record' => 'Това е Ñумарна Ñметка за запиÑ!',
+ 'Item' => 'Стока',
+ 'Item already on pricelist!' => 'Стоката е наличена в ценоразпиÑа!',
+ 'Item deleted!' => 'Стоката е изтрита!',
+ 'Item not on file!' => 'Стоката липÑва в базата!',
+ 'Items' => 'Стоки',
+ 'Jan' => 'Яну',
+ 'January' => 'Януари',
+ 'Job' => 'Задача',
+ 'Job Number' => 'Ðомер на задача',
+ 'Job deleted!' => 'Задачата е изтрита!',
+ 'Job saved!' => 'Задачата е запазена!',
+ 'Job/Project Number' => 'Работа/Проект номер',
+ 'Jobs' => 'Задачи',
+ 'Jul' => 'Юли',
+ 'July' => 'Юли',
+ 'Jun' => 'Юни',
+ 'June' => 'Юни',
+ 'LaTeX Templates' => 'LaTeX Шаблони',
+ 'Labor/Overhead' => 'Текущи разходи',
+ 'Language' => 'Език',
+ 'Language deleted!' => 'Езика е изтрит!',
+ 'Language saved!' => 'Езика е запазен!',
+ 'Languages' => 'Езици',
+ 'Languages not defined!' => 'Езикът не е определен!',
+ 'Last Cost' => 'ПоÑледна цена',
+ 'Last Numbers & Default Accounts' => 'ПоÑледен номер и Сметка по подразбиране',
+ 'Lead' => 'ТежеÑÑ‚',
+ 'Leadtime' => 'ОÑновно време',
+ 'Liability' => 'ПаÑив',
+ 'Licensed to' => 'Лицензирана за',
+ 'Line Total' => 'Сборна линиÑ',
+ 'Link' => 'Връзка',
+ 'Link Accounts' => 'Връзка ÑÑŠÑ Ñметки',
+ 'List' => 'СпиÑък',
+ 'List Accounts' => 'СпиÑък-Ñметки',
+ 'List Businesses' => 'СпиÑък-направлениÑ',
+ 'List Departments' => 'СпиÑък-отдели',
+ 'List GIFI' => 'СпиÑък-GIFI',
+ 'List Languages' => 'СпиÑък-езици',
+ 'List Price' => 'ЦеноразпиÑ',
+ 'List Projects' => 'СпиÑък-проекти',
+ 'List SIC' => 'СпиÑък-SIC',
+ 'List Transactions' => 'СпиÑък Ñ Ð¿Ñ€ÐµÐ²Ð¾Ð´Ð¸',
+ 'List Warehouses' => 'СпиÑък-Ñкладове',
+ 'Lock System' => 'Заключена е ÑиÑтемата',
+ 'Lockfile created!' => 'Ð‘Ð»Ð¾ÐºÐ¸Ñ€Ð°Ñ‰Ð¸Ñ Ñ„Ð°Ð¹Ð» е Ñъздаден!',
+ 'Lockfile removed!' => 'Ð‘Ð»Ð¾ÐºÐ¸Ñ€Ð°Ñ‰Ð¸Ñ Ñ„Ð°Ð¹Ð» е премахнат!',
+ 'Login' => 'Влизане',
+ 'Login name missing!' => 'Името на Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»Ñ Ð»Ð¸Ð¿Ñва!',
+ 'Logout' => 'Излизане',
+ 'Make' => 'Изработи',
+ 'Manager' => 'Ръководител',
+ 'Mar' => 'Мар',
+ 'March' => 'Март',
+ 'Marked entries printed!' => 'Маркираните редове Ñа разпечатани!',
+ 'Markup' => 'Ðадценка',
+ 'Maximum' => 'МакÑимален',
+ 'May' => 'Май',
+ 'May ' => 'Май',
+ 'Memo' => 'Бележка',
+ 'Menu Width' => 'Ширина на менюто',
+ 'Message' => 'Съобщение',
+ 'Method' => 'Метод',
+ 'Microfiche' => 'Микрофиш',
+ 'Model' => 'Модел',
+ 'Month' => 'МеÑец',
+ 'Month(s)' => 'МеÑеци',
+ 'Months' => 'МеÑеци',
+ 'Multibyte Encoding' => 'Multibyte Encoding',
+ 'N/A' => 'N/A',
+ 'Name' => 'Име',
+ 'Name missing!' => 'ЛипÑва име!',
+ 'New Templates' => 'Ðов проформа',
+ 'New Window' => 'Ðов прозорец',
+ 'Next' => 'Следващ',
+ 'Next Date' => 'Следваща дата',
+ 'Next Number' => 'Следващ номер',
+ 'No' => 'Ðо.',
+ 'No Database Drivers available!' => 'ЛипÑва драйвер за базите-данни!',
+ 'No Dataset selected!' => 'Ðе Ñте избрали база-данни!',
+ 'No History!' => 'Без иÑториÑ!',
+ 'No email address for' => 'ЛипÑва ел.Ð°Ð´Ñ€ÐµÑ Ð·Ð°',
+ 'No open Projects!' => 'ÐÑма отворен проект!',
+ 'No.' => 'Ðо.',
+ 'Non-taxable' => 'ОÑвободени Ñделки',
+ 'Non-taxable Purchases' => 'ОÑвободен от плащане',
+ 'Non-taxable Sales' => 'ОÑвободена продажба',
+ 'Non-tracking Items' => 'Стоки без проÑледÑване',
+ 'Notes' => 'Забележка',
+ 'Nothing entered!' => 'Ðищо не е въведено!',
+ 'Nothing open!' => 'Ðищо не отворено!',
+ 'Nothing selected!' => 'Ðе Ñте избрали нищо!',
+ 'Nothing to delete!' => 'ÐÑма нищо за изÑтриване',
+ 'Nothing to print!' => 'ÐÑма за печатане!',
+ 'Nothing to transfer!' => 'Ðищо не е преведено!',
+ 'Nov' => 'Ðое',
+ 'November' => 'Ðоември',
+ 'Number' => 'Ðомер',
+ 'Number Format' => 'Формат-чиÑло',
+ 'Number missing in Row' => 'липÑва номер на ред!',
+ 'O' => 'O',
+ 'OH' => 'OH',
+ 'Obsolete' => 'ОÑтарÑл',
+ 'Oct' => 'Окт',
+ 'October' => 'Октомври',
+ 'On Hand' => 'Ðа ръка',
+ 'Onhand' => 'Ðа ръка',
+ 'Open' => 'Отворен',
+ 'Oracle Database Administration' => 'ÐдмиÑтриране на бази-данни Oracle',
+ 'Order' => 'Поръчка',
+ 'Order Date' => 'Дата на поръчка',
+ 'Order Date missing!' => 'ЛипÑва дата на поръчката!',
+ 'Order Entry' => 'Поръчки',
+ 'Order Number' => 'Поръчка номер',
+ 'Order Number missing!' => 'ЛипÑва номер на поръчката!',
+ 'Order deleted!' => 'Поръчката е изтрита!',
+ 'Order generation failed!' => 'Създаването на поръчка е провалено!',
+ 'Order saved!' => 'Поръчката е запазена!',
+ 'Orders generated!' => 'Поръчките Ñа Ñъздадени!',
+ 'Orphaned' => 'Без движение',
+ 'Out of balance transaction!' => 'Ивън баланÑови преводи',
+ 'Out of balance!' => 'Извън баланÑови!',
+ 'Outstanding' => 'ЗадължениÑ',
+ 'Overdue' => 'ПроÑрочен',
+ 'PDF' => 'PDF',
+ 'PO' => 'PO',
+ 'PO Number' => 'Поръчка номер за покупка',
+ 'POS' => 'Кредино извеÑтие',
+ 'POS Invoice' => 'Кредитно извеÑтие към фактура',
+ 'Packing List' => 'Опъковачен лиÑÑ‚',
+ 'Packing List Date missing!' => 'ЛипÑва дата на Ð¾Ð¿Ð°ÐºÐ¾Ð²ÑŠÑ‡Ð½Ð¸Ñ Ð»Ð¸ÑÑ‚!',
+ 'Packing List Number missing!' => 'ЛипÑва номер на Ð¾Ð¿Ð°ÐºÐ¾Ð²ÑŠÑ‡Ð½Ð¸Ñ Ð»Ð¸ÑÑ‚!',
+ 'Packing Lists' => 'Опъковъчни лиÑти',
+ 'Paid' => 'Платено',
+ 'Part' => 'ПозициÑ',
+ 'Part Number' => 'Сериен номер',
+ 'Parts' => 'Детайли',
+ 'Parts Requirements' => 'ЛипÑващи позиции',
+ 'Password' => 'Парола',
+ 'Password changed!' => 'Паролата е променена!',
+ 'Password does not match!' => 'Въведената парола не Ñъвпада!',
+ 'Passwords do not match!' => 'Паролата не ÑъотведÑтва!',
+ 'Payables' => 'Подлежащи на плащане',
+ 'Payment' => 'Разходен ордер',
+ 'Payment date missing!' => 'ПропуÑната дата на плащане!',
+ 'Payment posted!' => 'Плащането е запазено!',
+ 'Payments' => 'ПлащаниÑ',
+ 'Payments posted!' => 'ПлащаниÑта Ñа запазени!',
+ 'Payroll Deduction' => 'Удръжки по ведомоÑÑ‚',
+ 'Period' => 'Период',
+ 'Pg Database Administration' => 'ÐдмиÑтриране на бази-данни Postgres',
+ 'PgPP Database Administration' => 'ÐдмиÑтриране на бази-данни PgPP',
+ 'Phone' => 'Телефон',
+ 'Pick List' => 'Товарителница',
+ 'Pick Lists' => 'Товарителници',
+ 'Port' => 'Порт',
+ 'Port missing!' => 'ЛипÑва порт!',
+ 'Pos' => 'POS',
+ 'Post' => 'Запази',
+ 'Post as new' => 'Запази като нов',
+ 'Posted!' => 'Запазено!',
+ 'Posting' => 'Запазих',
+ 'Posting failed!' => 'Грешка при запазване!',
+ 'Postscript' => 'Postscript',
+ 'Preferences' => 'СвойÑтва',
+ 'Preferences saved!' => 'СвойÑтвата за запазени!',
+ 'Prepayment' => 'ÐванÑово плащане',
+ 'Price' => 'Цена',
+ 'Pricegroup' => 'Ценова група',
+ 'Pricegroup deleted!' => 'Ценовата група е изтрита!',
+ 'Pricegroup missing!' => 'ЛипÑва ценова група!',
+ 'Pricegroup saved!' => 'Ценовата група е изтрита!',
+ 'Pricegroups' => 'Ценова група',
+ 'Pricelist' => 'ЦеноразпиÑ',
+ 'Print' => 'Печат',
+ 'Print and Post' => 'Разпечатай и запази',
+ 'Print and Post as new' => 'Разпечатай и запази като нов',
+ 'Print and Save' => 'Разпечатай и запази',
+ 'Print and Save as new' => 'Разпечатай и запази като нов',
+ 'Printed' => 'Разпечатано',
+ 'Printer' => 'Принтер',
+ 'Printing' => 'Разпечатано',
+ 'Process Transactions' => 'Изпълнение на преводи',
+ 'Production' => 'ПродукциÑ',
+ 'Profit Center' => 'ИзÑточник печалба',
+ 'Project' => 'Проект',
+ 'Project Description Translations' => 'ОпиÑание на преводите към проекта',
+ 'Project Number' => 'Ðомер на проекта',
+ 'Project Transactions' => 'Превод за проект',
+ 'Project deleted!' => 'Проекта е изтрит!',
+ 'Project not on file!' => 'Проекта липÑва в базите!',
+ 'Project saved!' => 'Проекта е запазен!',
+ 'Projects' => 'Проекти',
+ 'Purchase Order' => 'Поръчка за доÑтавка',
+ 'Purchase Order Number' => 'Ðомер на Поръчка за доÑтавка',
+ 'Purchase Orders' => 'Поръчки за доÑтавки',
+ 'Qty' => 'К-во',
+ 'Quantity exceeds available units to stock!' => 'Превишено е количеÑтвото в пакет!',
+ 'Quarter' => 'ЧетиримеÑечие',
+ 'Queue' => 'Задание',
+ 'Queued' => 'Изпълнено заданието',
+ 'Quotation' => 'Запазена форма',
+ 'Quotation ' => 'Задание',
+ 'Quotation Date' => 'Дата на заданието',
+ 'Quotation Date missing!' => 'ЛипÑва дата на заданието!',
+ 'Quotation Number' => 'Ðомер на задание',
+ 'Quotation Number missing!' => 'ЛипÑва номер на заданието!',
+ 'Quotation deleted!' => 'Заданието е изтрито!',
+ 'Quotations' => 'Запазени форми',
+ 'R' => 'R',
+ 'RFQ' => 'РезервациÑ',
+ 'RFQ ' => 'ЗаÑвление за заÑвка',
+ 'RFQ Number' => 'Ðомер на иÑкане за заÑвка',
+ 'RFQs' => 'Резервации',
+ 'ROP' => 'ROP',
+ 'Rate' => 'КурÑ',
+ 'Rate missing!' => 'ЛипÑва курÑ!',
+ 'Recd' => 'ЗапиÑ',
+ 'Receipt' => 'Приходен ордер',
+ 'Receipt posted!' => 'ПриходениÑÑ‚ ордер е запазено!',
+ 'Receipts' => 'ПоÑтъплениÑ',
+ 'Receivables' => 'Подлежащи на получване',
+ 'Receive' => 'Получи',
+ 'Receive Merchandise' => 'Получаване на Ñтока',
+ 'Reconciliation' => 'СъглаÑуване',
+ 'Reconciliation Report' => 'Отчет за ÑъглаÑуване',
+ 'Record in' => 'Запази в',
+ 'Recurring Transaction' => 'ПовтарÑщ Ñе превод',
+ 'Recurring Transactions' => 'ПовтарÑщи Ñе преводи',
+ 'Reference' => 'РеференциÑ',
+ 'Remaining' => 'ÐапомнÑне',
+ 'Remove' => 'Премахни',
+ 'Remove Audit trail up to' => 'Премахни Ð²Ñ€ÐµÐ¼ÐµÐ½Ð½Ð¸Ñ Ð±Ð°Ð»Ð°Ð½Ñ Ð´Ð¾ÐºÐ°Ñ‚Ð¾',
+ 'Removed spoolfiles!' => 'Премахнати Ñа предназначените за печат опашки!',
+ 'Removing marked entries from queue ...' => 'Прехнати Ñа маркраните редове ÑÑŠÑ Ð·Ð°Ð´Ð°Ð½Ð¸Ñ ...',
+ 'Repeat' => 'Повторение',
+ 'Report for' => 'Справка за',
+ 'Reports' => 'Справки',
+ 'Req' => 'Req',
+ 'Request for Quotation' => 'ÐеобходимоÑÑ‚ от задание',
+ 'Request for Quotations' => 'ÐеобходимоÑÑ‚ от заÑвки',
+ 'Required by' => 'Ðеобходим е за',
+ 'Requirements' => 'СъглаÑиÑ',
+ 'Retained Earnings' => 'Ðеразпределена печалба',
+ 'Role' => 'РолÑ',
+ 'S' => 'S',
+ 'SIC' => 'SIC',
+ 'SIC deleted!' => 'SIC е изтрит',
+ 'SIC saved!' => 'SIC е запазен',
+ 'SKU' => 'SKU',
+ 'SO' => 'SO',
+ 'SSN' => 'SSN',
+ 'Sale' => 'Продажби',
+ 'Sales' => 'Продажби',
+ 'Sales Invoice' => 'Фактура продажба',
+ 'Sales Invoice ' => 'Фактура продажби ',
+ 'Sales Invoice.' => 'Фактура продажби',
+ 'Sales Invoice/AR Transaction Number' => 'Фактура продажби/Ðомер на превод от клиент',
+ 'Sales Invoices' => 'Фактури прдажби',
+ 'Sales Order' => 'Поръчка продажба',
+ 'Sales Order Number' => 'Ðомер на поръчка продажба',
+ 'Sales Orders' => 'Поръчки продажби',
+ 'Sales Quotation Number' => 'Ðомер на поръчка продажба ÑÑŠÑ Ð·Ð°Ð¿Ð°Ð·Ð²Ð°Ð½Ðµ',
+ 'Salesperson' => 'Продавач',
+ 'Save' => 'Запази',
+ 'Save Pricelist' => 'Запази ценоразпиÑа',
+ 'Save Schedule' => 'Запази разпиÑание',
+ 'Save as new' => 'Запази като нов',
+ 'Save to File' => 'Запази във файл',
+ 'Saving' => 'Запазено',
+ 'Schedule' => 'РазпиÑание',
+ 'Scheduled' => 'Зададено разпиÑание',
+ 'Screen' => 'Екран',
+ 'Search' => 'ТърÑи',
+ 'Select' => 'Избери',
+ 'Select Customer' => 'Избери клиент',
+ 'Select Vendor' => 'Избери доÑтавчик',
+ 'Select a Printer!' => 'Избери принтер!',
+ 'Select all' => 'Избери вÑичко',
+ 'Select from one of the names below' => 'Избери едно от имената поÑочени по-долу',
+ 'Select from one of the projects below' => 'Избери един от проектите поÑочени по-долу',
+ 'Select items' => 'Избери Ñтока',
+ 'Select payment' => 'Избери плащане',
+ 'Select postscript or PDF!' => 'Избери postscript или PDF!',
+ 'Select txt, postscript or PDF!' => 'Избери txt, postscrip или PDF!',
+ 'Sell' => 'Продажба',
+ 'Sell Price' => 'Продажна цена',
+ 'Send by E-Mail' => 'Изпрати на ел.адреÑ',
+ 'Sending' => 'Изпратено',
+ 'Sep' => 'Сеп',
+ 'September' => 'Септември',
+ 'Serial No.' => 'Сериен номер',
+ 'Serial Number' => 'Сериен номер',
+ 'Service' => 'УÑлуга',
+ 'Service Code' => 'Код на уÑлуга',
+ 'Services' => 'УÑлуги',
+ 'Session Timeout' => 'Изтече времето на ÑеÑиÑта',
+ 'Session expired!' => 'Ðевалидна ÑеÑиÑта!',
+ 'Setup Templates' => 'ÐаÑтройка шаблони',
+ 'Ship' => 'ДоÑтавка',
+ 'Ship Merchandise' => 'ДоÑтавка на Ñтока',
+ 'Ship to' => 'ДоÑтавка до',
+ 'Ship via' => 'ДоÑтавка ÑÑŠÑ',
+ 'Shipping' => 'ДоÑтавки',
+ 'Shipping Address' => 'ÐÐ´Ñ€ÐµÑ Ð½Ð° доÑтавка',
+ 'Shipping Date' => 'Дата на доÑтавка',
+ 'Shipping Date missing!' => 'ЛипÑва дата на доÑтавка!',
+ 'Shipping Point' => 'МеÑтоназначение',
+ 'Short' => 'КъÑ',
+ 'Signature' => 'ПодпиÑ',
+ 'Source' => 'Оригинал',
+ 'Spoolfile' => 'Опашка за печат',
+ 'Standard' => 'Стандарт',
+ 'Standard Industrial Codes' => 'БДС',
+ 'Startdate' => 'Ðачална дата',
+ 'State' => 'Окръг',
+ 'State/Province' => 'Окръг/ОблаÑÑ‚',
+ 'Statement' => 'ВедомоÑÑ‚',
+ 'Statement Balance' => 'Ð‘Ð°Ð»Ð°Ð½Ñ Ð·Ð° потвърждение',
+ 'Statement sent to' => 'Потвърждението изпрати на',
+ 'Statements sent to printer!' => 'Разпечатай потвърждението!',
+ 'Stock' => 'Стока',
+ 'Stock Assembly' => 'Изграждане на комплект',
+ 'Stock Finished Goods' => 'Приключи незавърцено пройзводÑтво',
+ 'Stylesheet' => 'Таблица ÑÑŠÑ Ñтилове',
+ 'Sub-contract GIFI' => 'Подчинен на GIFI',
+ 'Subject' => 'Тема',
+ 'Subtotal' => 'Междинен Ñбор',
+ 'Summary' => 'Сумарно',
+ 'Supervisor' => 'Главен админиÑтратор',
+ 'System' => 'СиÑтема',
+ 'System Defaults' => 'СиÑтема по подразбиране',
+ 'Tax' => 'Данък',
+ 'Tax Account' => 'Сметка за данъци',
+ 'Tax Accounts' => 'Сметка за данъци',
+ 'Tax Included' => 'Включен данък',
+ 'Tax Number' => 'Данък номер',
+ 'Tax Number / SSN' => 'Данък номер / SSN',
+ 'Tax collected' => 'Събрани данъци',
+ 'Tax paid' => 'Платени данъци',
+ 'Taxable' => 'Облагаема Ñделка',
+ 'Template saved!' => 'Шаблона е запазен!',
+ 'Templates' => 'Шаблони',
+ 'Terms' => 'Падеж',
+ 'Text' => 'ТекÑÑ‚',
+ 'Text Templates' => 'ТекÑтови шаблони',
+ 'The following Datasets are not in use and can be deleted' => 'ÐаÑтоÑщата база-данни не ÑъщеÑтвува и не може да Ñе изÑтрие',
+ 'The following Datasets need to be updated' => 'ÐаÑтоÑщата база-данни има нужда от обновÑване',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Ще Ð½Ð°Ð¿Ñ€Ð°Ð²Ñ Ñамо проверка на текущите иÑпочници. Ðищо нÑма да Ñе Ñъздава или изтрива от тази Ñтраница!',
+ 'Till' => 'до',
+ 'Time Card' => 'Работна карта',
+ 'Time Cards' => 'Работни карти',
+ 'Times' => 'Пъти',
+ 'To' => 'за',
+ 'To Warehouse' => 'За Ñклад',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.',
+ 'Top Level' => 'Вишше ниво',
+ 'Total' => 'Ð’Ñичко',
+ 'Tracking Items' => 'Стока Ñ Ð¿Ñ€Ð¾ÑледÑване',
+ 'Trade Discount' => 'ТърговÑка оÑтъпка',
+ 'Transaction' => 'Превод',
+ 'Transaction Date missing!' => 'ЛипÑва дата на превода',
+ 'Transaction Dates' => 'Дата на превод',
+ 'Transaction deleted!' => 'Превода е изтрит!',
+ 'Transaction posted!' => 'Превода е запазен!',
+ 'Transaction reversal enforced for all dates' => 'Преводите за преизчиÑлени за вÑички дати',
+ 'Transaction reversal enforced up to' => 'Преводите за преизчиÑлени до',
+ 'Transactions' => 'Преводи',
+ 'Transfer' => 'ПрехвърлÑне',
+ 'Transfer Inventory' => 'ПрехвърлÑне на инвентар',
+ 'Transfer from' => 'ПремеÑтване от',
+ 'Transfer to' => 'ПремеÑтване в',
+ 'Translation' => 'Превод',
+ 'Translation deleted!' => 'Превода е изтрит!',
+ 'Translation not on file!' => 'Превода не е в базата!',
+ 'Translations' => 'Преводи',
+ 'Translations saved!' => 'Превода е запазен!',
+ 'Trial Balance' => 'Временен баланÑ',
+ 'Type of Business' => 'ÐаправлениÑ',
+ 'Unit' => 'Единица',
+ 'Unlock System' => 'Отключи ÑиÑтемата',
+ 'Update' => 'Обнови',
+ 'Update Dataset' => 'Обнови база-данни',
+ 'Updated' => 'Обновен',
+ 'Upgrading to Version' => 'Обнови верÑиÑта',
+ 'Use Templates' => 'Лични шаблони',
+ 'User' => 'потребител',
+ 'User deleted!' => 'ÐŸÐ¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»Ñ Ðµ изÑтрит!',
+ 'User saved!' => 'ÐŸÐ¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»Ñ Ðµ запазен!',
+ 'Valid until' => 'Валидно до',
+ 'Vendor' => 'ДоÑтавчик',
+ 'Vendor History' => 'ИÑÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° доÑтавчика',
+ 'Vendor Invoice' => 'Фактура за доÑтавка',
+ 'Vendor Invoice ' => 'Фактура на доÑтавчик ',
+ 'Vendor Invoice.' => 'Фактура на доÑтавчик',
+ 'Vendor Invoice/AP Transaction Number' => 'Фактура за доÑтавка/номер на превода от доÑтавчик',
+ 'Vendor Invoices' => 'Фактури за доÑтавки',
+ 'Vendor Number' => 'ДоÑтавчик номер',
+ 'Vendor deleted!' => 'ДоÑтавчика е изтрит!',
+ 'Vendor missing!' => 'ЛипÑва доÑтавчик',
+ 'Vendor not on file!' => 'ЛипÑва доÑтвчика в базата',
+ 'Vendor saved!' => 'ДоÑтавчика е запазен!',
+ 'Vendors' => 'ДоÑтавчици',
+ 'Version' => 'ВерÑиÑ',
+ 'Warehouse' => 'Склад',
+ 'Warehouse deleted!' => 'Склада е изтрит!',
+ 'Warehouse saved!' => 'Склада е запазен!',
+ 'Warehouses' => 'Складове',
+ 'Warning!' => 'Внимание!',
+ 'Week' => 'Седмица',
+ 'Week(s)' => 'Седмица(и)',
+ 'Weeks' => 'Седмици',
+ 'Weight' => 'Тегло',
+ 'Weight Unit' => 'Мерна еденица за тежеÑÑ‚',
+ 'What type of item is this?' => 'Какъв тип е тази номенклатура на Ñтоките?',
+ 'Work Order' => 'Работна поръчка',
+ 'Work Orders' => 'Работни поръчки',
+ 'Work Phone' => 'Служебен телефон',
+ 'Year' => 'Година',
+ 'Year(s)' => 'Година(и)',
+ 'Yearend' => 'Приключване на година',
+ 'Yearend date missing!' => 'Ðе е приключена годината!',
+ 'Yearend posted!' => 'Приключената година е запазена!',
+ 'Yearend posting failed!' => 'Ðе уÑÐ¿Ñ Ð´Ð° Ñе запази приключената година!',
+ 'Years' => 'Години',
+ 'Yes' => 'Да',
+ 'You are logged out' => 'Вие напуÑнахте',
+ 'You are posting an existing transaction!' => 'Сигурен ли Ñте, че ще запазите този превод!',
+ 'You are printing and posting an existing transaction!' => 'Сигурен ли Ñте, че ще разпечатате и запазите този превод!',
+ 'You are printing and saving an existing order' => 'Сигурен ли Ñте, че ще разпечатате и запазите този превод!',
+ 'You are printing and saving an existing quotation' => 'Сигурен ли Ñте, че ще разпечатате и запазите тази резервациÑ!',
+ 'You are saving an existing order' => 'Сигурен ли Ñте, че ще запазите тази поръчка!',
+ 'You are saving an existing quotation' => 'Сигурен ли Ñте, че ще запазите тази резервациÑ',
+ 'You did not enter a name!' => 'Ðе Ñте въвели име!',
+ 'Zip/Postal Code' => 'ПК',
+ 'account cannot be set to any other type of account' => 'не е възможно да Ñе зададе друг тип на тази Ñметка',
+ 'as at' => 'както',
+ 'days' => 'дни',
+ 'does not exist' => 'не ÑъщеÑтвува',
+ 'done' => 'Готов',
+ 'ea' => 'бр.',
+ 'failed' => 'грешка',
+ 'for' => 'за',
+ 'for Period' => 'за период',
+ 'is already a member!' => 'Вече Ñте потребител!',
+ 'localhost' => 'този компютър',
+ 'locked!' => 'заключих!',
+ 'posted!' => 'запазен!',
+ 'sent' => 'изпрати',
+ 'successfully created!' => 'Ñъздаването приключи уÑпешно!',
+ 'successfully deleted!' => 'изÑтриването приключи уÑпешно!',
+ 'time(s)' => 'път(и)',
+ 'unexpected error!' => 'ÐеобÑÑнима грешка!',
+ 'website' => 'Ñтраница',
+};
+
+1;
diff --git a/locale/bg_utf/am b/locale/bg_utf/am
new file mode 100755
index 00000000..42f9ac20
--- /dev/null
+++ b/locale/bg_utf/am
@@ -0,0 +1,317 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP' => 'Продажби',
+ 'AR' => 'Покупки',
+ 'About' => 'ИнформациÑ',
+ 'Account' => 'Сметка',
+ 'Account Number' => 'Ðомер на Ñметка',
+ 'Account Number missing!' => 'ЛипÑва номер на Ñметка!',
+ 'Account Type' => 'Тип на Ñметката',
+ 'Account Type missing!' => 'ЛипÑва тип на Ñметката!',
+ 'Account deleted!' => 'Сметката е изтрита!',
+ 'Account does not exist!' => 'Сметката не ÑъщеÑтвува!',
+ 'Account saved!' => 'Сметката е запазена!',
+ 'Accounting Menu' => 'Меню Сметкоплан',
+ 'Accrual' => 'Ðатрупване',
+ 'Activate Audit trail' => 'Ðктивиране на пробен баланÑ!',
+ 'Add Account' => 'Добави Сметка',
+ 'Add Business' => 'Добави направление',
+ 'Add Department' => 'Добави отдел',
+ 'Add GIFI' => 'Добави GIFI',
+ 'Add Language' => 'Добави език',
+ 'Add SIC' => 'Добави SIC',
+ 'Add Warehouse' => 'Добави Ñклад',
+ 'Address' => 'ÐдреÑ',
+ 'Amount' => 'Сума',
+ 'Asset' => 'Ðктив',
+ 'Audit Control' => 'Контрол',
+ 'Audit trail disabled' => 'Ðе е възможен пробен баланÑ!',
+ 'Audit trail enabled' => 'Възможен е пробен баланÑ!',
+ 'Audit trail removed up to' => 'Премахване на възможноÑÑ‚ за пробен Ð±Ð°Ð»Ð°Ð½Ñ Ð´Ð¾ÐºÐ°Ñ‚Ð¾',
+ 'Backup sent to' => 'Ðрхива го запази в/у',
+ 'Bin List' => 'СпиÑък на пакет',
+ 'Books are open' => 'Книгата е вече отворена',
+ 'Business Number' => 'Ðомер на направление',
+ 'Business deleted!' => 'Ðаправлението е изтрито!',
+ 'Business saved!' => 'Ðаправлението е запазено!',
+ 'COGS' => 'COGS',
+ 'Cannot delete account!' => 'Ðе е възможно изтриването на Ñметката!',
+ 'Cannot delete default account!' => 'Ðе е възможно да Ñе изтрие Ñметка, коÑто е шаблон!',
+ 'Cannot save account!' => 'Ðе е възможно да Ñе запази Ñметката!',
+ 'Cannot save defaults!' => 'Ðе е възможно да запази шаблона!',
+ 'Cannot save preferences!' => 'Ðе е възможно да Ñе запази ÑвойÑтво!',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Ðе задавай на Ñметка повече от едно значение (покупка, продажба или инвентар)!',
+ 'Cannot set multiple options for' => 'Ðе задавай повече от едно значение за',
+ 'Cash' => 'В брой',
+ 'Chart of Accounts' => 'Сметкоплан',
+ 'Close Books up to' => 'Книгата е затворена докато',
+ 'Code' => 'Код',
+ 'Code missing!' => 'ЛипÑва код!',
+ 'Company' => 'Фирма',
+ 'Confirm' => 'СъглаÑие',
+ 'Confirm!' => 'СъглаÑие!',
+ 'Continue' => 'Продължение',
+ 'Contra' => 'Коректив',
+ 'Copy to COA' => 'Запази в COA',
+ 'Cost Center' => 'Звено платец',
+ 'Credit' => 'Кредит',
+ 'Credit Invoice' => 'Кредитно извеÑтие към фактура',
+ 'Customer Number' => 'Клиент номер',
+ 'Database Host' => 'Сървър за база-данни',
+ 'Dataset' => 'Бази-данни',
+ 'Date Format' => 'Фармат за дата',
+ 'Day' => 'Ден',
+ 'Days' => 'Дни',
+ 'Debit' => 'Дебит',
+ 'Debit Invoice' => 'Дебитно извеÑтие към фактура',
+ 'Default Template' => 'Подразбиращ Ñе шаблон',
+ 'Defaults saved!' => 'ПодразбиращиÑÑ‚ Ñе е запазен!',
+ 'Delete' => 'ИзÑтрии',
+ 'Delete Account' => 'Изтрии Ñметка!',
+ 'Deleting a language will also delete the templates for the language' => 'Изтриването на език ще доведе до премахването на шаблоните му!',
+ 'Department deleted!' => 'Отдела е изтрит!',
+ 'Department saved!' => 'Отделът е запазен!',
+ 'Departments' => 'Отдели',
+ 'Description' => 'ОбÑÑнение',
+ 'Description missing!' => 'ЛипÑва подпиÑ!',
+ 'Discount' => 'ОтÑтъпка',
+ 'Dropdown Limit' => 'МакÑимална дължина на падащи менюта',
+ 'E-mail' => 'Ел.адреÑ',
+ 'E-mail address missing!' => 'ЛипÑва Ел.адреÑ!',
+ 'Edit' => 'РедакциÑ',
+ 'Edit Account' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° Ñметка',
+ 'Edit Business' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° направление',
+ 'Edit Department' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° отдел',
+ 'Edit GIFI' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° GIFI',
+ 'Edit Language' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° език',
+ 'Edit Preferences for' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° ÑвойÑтва за',
+ 'Edit SIC' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ñ SIC',
+ 'Edit Template' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° шаблон',
+ 'Edit Warehouse' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° Ñклад',
+ 'Employee Number' => 'Сътрудник номер',
+ 'Ends' => 'Приключване',
+ 'Enforce transaction reversal for all dates' => 'Принудително преизчиÑлÑване на преводи за вÑички дати',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Въведи до 3 букви разделени Ñ Ð´Ð²ÑƒÐµÑ‚Ð¾Ñ‡Ð¸Ðµ (пример BGL:USD:EUR)',
+ 'Equity' => 'Капитал',
+ 'Every' => 'Винаги',
+ 'Expense' => 'Разход',
+ 'Expense/Asset' => 'Разход/активи',
+ 'Fax' => 'ФакÑ',
+ 'Foreign Exchange Gain' => 'Печалба от курÑови разлики',
+ 'Foreign Exchange Loss' => 'Загуба от курÑови разлики',
+ 'GIFI' => 'GIFI',
+ 'GIFI deleted!' => 'GIFI е изтрит!',
+ 'GIFI missing!' => 'ЛипÑва GIFI!',
+ 'GIFI saved!' => 'GIFI е запазен!',
+ 'GL' => 'Главна книга',
+ 'GL Reference Number' => 'Ðомер на главната книга',
+ 'GL Transaction' => 'Главна книга на преводи',
+ 'Heading' => 'Заглавие',
+ 'ID' => 'Код',
+ 'Include in drop-down menus' => 'Включи в падащо меню',
+ 'Income' => 'Приходи',
+ 'Inventory' => 'Инвентар',
+ 'Invoice' => 'Фактура',
+ 'Is this a summary account to record' => 'Това е Ñумарна Ñметка за запиÑ!',
+ 'Job/Project Number' => 'Работа/Проект номер',
+ 'Language' => 'Език',
+ 'Language deleted!' => 'Езика е изтрит!',
+ 'Language saved!' => 'Езика е запазен!',
+ 'Languages' => 'Езици',
+ 'Last Numbers & Default Accounts' => 'ПоÑледен номер и Сметка по подразбиране',
+ 'Liability' => 'ПаÑив',
+ 'Licensed to' => 'Лицензирана за',
+ 'Link' => 'Връзка',
+ 'Menu Width' => 'Ширина на менюто',
+ 'Method' => 'Метод',
+ 'Month' => 'МеÑец',
+ 'Months' => 'МеÑеци',
+ 'Name' => 'Име',
+ 'Next' => 'Следващ',
+ 'Next Number' => 'Следващ номер',
+ 'No' => 'Ðо.',
+ 'No email address for' => 'ЛипÑва ел.Ð°Ð´Ñ€ÐµÑ Ð·Ð°',
+ 'Non-tracking Items' => 'Елемент без проÑледÑване',
+ 'Number' => 'Ðомер',
+ 'Number Format' => 'Формат-чиÑло',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Опъковачен лиÑÑ‚',
+ 'Part Number' => 'Сериен номер',
+ 'Password' => 'Парола',
+ 'Password does not match!' => 'Въведената парола не Ñъвпада!',
+ 'Payables' => 'Подлежащи на плащане',
+ 'Payment' => 'Плащане',
+ 'Phone' => 'Телефон',
+ 'Pick List' => 'Товарителница',
+ 'Posting' => 'Запазих',
+ 'Postscript' => 'Postscript',
+ 'Preferences saved!' => 'СвойÑтвата за запазени!',
+ 'Print' => 'Печат',
+ 'Printer' => 'Принтер',
+ 'Printing' => 'Разпечатано',
+ 'Process Transactions' => 'Изпълнение на преводи',
+ 'Profit Center' => 'ИзÑточник печалба',
+ 'Purchase Order' => 'Платежно нареждане',
+ 'Purchase Order Number' => 'Ðомер на платежно нареждане',
+ 'Purchase Orders' => 'Платежни нарежданиÑ',
+ 'RFQ Number' => 'Ðомер на иÑкане за заÑвка',
+ 'Rate' => 'КурÑ',
+ 'Receivables' => 'Подлежащи за получване',
+ 'Recurring Transactions' => 'ПовтарÑщи Ñе преводи',
+ 'Reference' => 'РеференциÑ',
+ 'Remove Audit trail up to' => 'Премахни Ð²Ñ€ÐµÐ¼ÐµÐ½Ð½Ð¸Ñ Ð±Ð°Ð»Ð°Ð½Ñ Ð´Ð¾ÐºÐ°Ñ‚Ð¾',
+ 'Retained Earnings' => 'Ðеразпределена печалба',
+ 'SIC deleted!' => 'SIC е изтрит',
+ 'SIC saved!' => 'SIC е запазен',
+ 'Sales Invoice' => 'Фактура продажба',
+ 'Sales Invoice/AR Transaction Number' => 'Фактура продажби/Ðомер на превод от клиент',
+ 'Sales Order' => 'Поръчка продажба',
+ 'Sales Order Number' => 'Ðомер на поръчка продажба',
+ 'Sales Orders' => 'Поръчки продажби',
+ 'Sales Quotation Number' => 'Ðомер на поръчка продажба ÑÑŠÑ Ð·Ð°Ð¿Ð°Ð·Ð²Ð°Ð½Ðµ',
+ 'Save' => 'Запази',
+ 'Save as new' => 'Запази като нов',
+ 'Saving' => 'Запазено',
+ 'Sending' => 'Изпратено',
+ 'Session Timeout' => 'Изтече времето на ÑеÑиÑта',
+ 'Signature' => 'ПодпиÑ',
+ 'Standard Industrial Codes' => 'БДС',
+ 'Stylesheet' => 'Таблица ÑÑŠÑ Ñтилове',
+ 'System Defaults' => 'СиÑтема по подразбиране',
+ 'Tax' => 'Данък',
+ 'Template saved!' => 'Шаблона е запазен!',
+ 'Times' => 'Пъти',
+ 'Tracking Items' => 'Елемент ÑÑŠÑ Ð¿Ñ€Ð¾ÑледÑване',
+ 'Transaction' => 'Превод',
+ 'Transaction reversal enforced for all dates' => 'Преводите за преизчиÑлени за вÑички дати',
+ 'Transaction reversal enforced up to' => 'Преводите за преизчиÑлени до',
+ 'Type of Business' => 'Тип на направление',
+ 'Update' => 'Обнови',
+ 'User' => 'потребител',
+ 'Vendor Invoice' => 'Фактура за доÑтавка',
+ 'Vendor Invoice/AP Transaction Number' => 'Фактура за доÑтавка/номер на превода от доÑтавчик',
+ 'Vendor Number' => 'ДоÑтавчик номер',
+ 'Version' => 'ВерÑиÑ',
+ 'Warehouse deleted!' => 'Склада е изтрит!',
+ 'Warehouse saved!' => 'Склада е запазен!',
+ 'Warehouses' => 'Складове',
+ 'Week' => 'Седмица',
+ 'Weeks' => 'Седмици',
+ 'Weight Unit' => 'Мерна еденица за тежеÑÑ‚',
+ 'Work Order' => 'Работна поръчка',
+ 'Year' => 'Година',
+ 'Yearend' => 'Приключване на година',
+ 'Yearend date missing!' => 'Ðе е приключена годината!',
+ 'Yearend posted!' => 'Приключената година е запазена!',
+ 'Yearend posting failed!' => 'Ðе уÑÐ¿Ñ Ð´Ð° Ñе запази приключената година!',
+ 'Years' => 'Години',
+ 'Yes' => 'Да',
+ 'account cannot be set to any other type of account' => 'не е възможно да Ñе зададе друг тип на тази Ñметка',
+ 'done' => 'Готов',
+ 'failed' => 'грешка',
+ 'localhost' => 'този компютър',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'Добави_Сметка' => 'add_account',
+ 'Добави_направление' => 'add_business',
+ 'Добави_отдел' => 'add_department',
+ 'Добави_език' => 'add_language',
+ 'Добави_sic' => 'add_sic',
+ 'Добави_Ñклад' => 'add_warehouse',
+ 'Продължение' => 'continue',
+ 'Запази_в_coa' => 'copy_to_coa',
+ 'ИзÑтрии' => 'delete',
+ 'РедакциÑ' => 'edit',
+ 'РедакциÑ_на_Ñметка' => 'edit_account',
+ 'Изпълнение_на_преводи' => 'process_transactions',
+ 'Запази' => 'save',
+ 'Запази_като_нов' => 'save_as_new',
+ 'Обнови' => 'update',
+};
+
+1;
+
diff --git a/locale/bg_utf/ap b/locale/bg_utf/ap
new file mode 100755
index 00000000..6a7c1f68
--- /dev/null
+++ b/locale/bg_utf/ap
@@ -0,0 +1,242 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Outstanding' => 'Ð’Ð·ÐµÐ¼Ð°Ð½Ð¸Ñ Ð¾Ñ‚ клиенти',
+ 'AP Transaction' => 'Превод продажба',
+ 'AP Transactions' => 'Преводи продажби',
+ 'AR Outstanding' => 'Ð—Ð°Ð´ÑŠÐ»Ð¶ÐµÐ½Ð¸Ñ ÐºÑŠÐ¼ доÑтавчици',
+ 'AR Transaction' => 'Превод покупка',
+ 'AR Transactions' => 'Преводи покупки',
+ 'Account' => 'Сметка',
+ 'Accounting Menu' => 'Меню Сметкоплан',
+ 'Add AP Transaction' => 'ДобавÑне превод към клиенти',
+ 'Add AR Transaction' => 'ДобавÑне превод към доÑтавчици',
+ 'Address' => 'ÐдреÑ',
+ 'Amount' => 'Сума',
+ 'Amount Due' => 'Сума за получаване',
+ 'Apr' => 'Ðпр',
+ 'April' => 'Ðприл',
+ 'Are you sure you want to delete Transaction' => 'Сигурни ли Ñте, че ще изÑтриете превода?',
+ 'Aug' => 'Ðвг',
+ 'August' => 'ÐвгуÑÑ‚',
+ 'Bcc' => 'БÑÑ',
+ 'Cannot delete transaction!' => 'Ðе мога да изÑÑ‚Ñ€Ð¸Ñ Ð¿Ñ€ÐµÐ²Ð¾Ð´Ð°!',
+ 'Cannot post payment for a closed period!' => 'Ðе мога да извърша плащане за закрит период!',
+ 'Cannot post transaction for a closed period!' => 'Ðе мога да извърша превод за закрит период!',
+ 'Cannot post transaction!' => 'Ðе мога да извърша плащане!',
+ 'Cc' => 'СÑ',
+ 'Check' => 'В брой',
+ 'Closed' => 'Затворено',
+ 'Confirm!' => 'СъглаÑие!',
+ 'Continue' => 'Продължение',
+ 'Credit' => 'Кредит',
+ 'Credit Limit' => 'Кредитен лимит',
+ 'Curr' => 'Валута',
+ 'Currency' => 'Валута',
+ 'Current' => 'Текущ',
+ 'Customer' => 'Клиент',
+ 'Customer missing!' => 'ПропуÑнат клиент!',
+ 'Customer not on file!' => 'ЛипÑва клиента в базите!',
+ 'Date' => 'Дата',
+ 'Date Paid' => 'Падеж',
+ 'Day(s)' => 'Ден(дни)',
+ 'Debit' => 'Дебит',
+ 'Dec' => 'Дек',
+ 'December' => 'Декември',
+ 'Delete' => 'ИзÑтрии',
+ 'Delete Schedule' => 'Изтрии задачата',
+ 'Department' => 'Отдел',
+ 'Description' => 'ОбÑÑнение',
+ 'Detail' => 'Детаилен',
+ 'Due Date' => 'Платете до',
+ 'Due Date missing!' => 'ПропуÑната дата за плащане',
+ 'E-mail' => 'Ел.адреÑ',
+ 'E-mail message' => 'Ел.Ñъобщение',
+ 'Edit AP Transaction' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° превод към доÑтавчик',
+ 'Edit AR Transaction' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° превод към клиент',
+ 'Employee' => 'Сътрудник',
+ 'Every' => 'Винаги',
+ 'Exch' => 'КурÑ',
+ 'Exchange Rate' => 'Валутен курÑ',
+ 'Exchange rate for payment missing!' => 'Валутен ÐºÑƒÑ€Ñ Ð·Ð° пропуÑнато плащане',
+ 'Exchange rate missing!' => 'ПропуÑнат валутен курÑ',
+ 'Feb' => 'Фев',
+ 'February' => 'Февруари',
+ 'For' => 'За',
+ 'From' => 'От',
+ 'ID' => 'Код',
+ 'Include Payment' => 'Включено плащане',
+ 'Include in Report' => 'Включен в Ñправката',
+ 'Invoice' => 'Фактура',
+ 'Invoice Date' => 'Фактура дата',
+ 'Invoice Date missing!' => 'ПопуÑната дата на фактурата',
+ 'Invoice Number' => 'Фактура номер',
+ 'Jan' => 'Яну',
+ 'January' => 'Януари',
+ 'Jul' => 'Юли',
+ 'July' => 'Юли',
+ 'Jun' => 'Юни',
+ 'June' => 'Юни',
+ 'Manager' => 'Ръководител',
+ 'Mar' => 'Мар',
+ 'March' => 'Март',
+ 'May' => 'Май',
+ 'May ' => 'Май',
+ 'Memo' => 'Бележка',
+ 'Message' => 'Съобщение',
+ 'Month' => 'МеÑец',
+ 'Month(s)' => 'МеÑеци',
+ 'Next Date' => 'Следваща дата',
+ 'No.' => 'Ðо.',
+ 'Notes' => 'Забележка',
+ 'Nothing to print!' => 'ÐÑма за печатане!',
+ 'Nov' => 'Ðое',
+ 'November' => 'Ðоември',
+ 'Number' => 'Ðомер',
+ 'Oct' => 'Окт',
+ 'October' => 'Октомври',
+ 'Open' => 'Отворен',
+ 'Order' => 'Поръчка',
+ 'Order Number' => 'Поръчка номер',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Поръчка номер за покупка',
+ 'Paid' => 'Платено',
+ 'Payment date missing!' => 'ПропуÑната дата на плащане!',
+ 'Payments' => 'Плащане',
+ 'Period' => 'Период',
+ 'Post' => 'Запази',
+ 'Post as new' => 'Запази като нов',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Печат',
+ 'Print and Post' => 'Разпечатай и запази',
+ 'Print and Post as new' => 'Разпечатай и запази като нов',
+ 'Printed' => 'Разпечатано',
+ 'Project' => 'Проект',
+ 'Project not on file!' => 'Проекта липÑва в базите!',
+ 'Quarter' => 'ЧетиримеÑечие',
+ 'Receipt' => 'Получаване',
+ 'Recurring Transaction' => 'ПовтарÑщи Ñе преводи',
+ 'Reference' => 'РеференциÑ',
+ 'Remaining' => 'ÐапомнÑне',
+ 'Repeat' => 'Повторение',
+ 'Sales Invoice.' => 'Фактура продажби',
+ 'Salesperson' => 'Продавач',
+ 'Save Schedule' => 'Запази разпиÑание',
+ 'Schedule' => 'РазпиÑание',
+ 'Scheduled' => 'Зададено разпиÑание',
+ 'Screen' => 'Екран',
+ 'Select a Printer!' => 'Избери принтер!',
+ 'Select from one of the names below' => 'Избери едно от имената поÑочени по-долу',
+ 'Select from one of the projects below' => 'Избери един от проектите поÑочени по-долу',
+ 'Select payment' => 'Избери плащане',
+ 'Select postscript or PDF!' => 'Избери postscript или PDF!',
+ 'Sep' => 'Сеп',
+ 'September' => 'Септември',
+ 'Ship to' => 'ДоÑтавка до',
+ 'Ship via' => 'ДоÑтавка ÑÑŠÑ',
+ 'Shipping Point' => 'МеÑтоназначение',
+ 'Source' => 'Първообраз',
+ 'Startdate' => 'Ðачална дата',
+ 'Subject' => 'Тема',
+ 'Subtotal' => 'Междинен Ñбор',
+ 'Summary' => 'Сумарно',
+ 'Tax' => 'Данък',
+ 'Tax Included' => 'Включен данък',
+ 'Till' => 'до',
+ 'To' => 'за',
+ 'Total' => 'Ð’Ñичко',
+ 'Transaction' => 'Превод',
+ 'Transaction deleted!' => 'Превода е изтрит!',
+ 'Transaction posted!' => 'Превода е запазен!',
+ 'Update' => 'Обнови',
+ 'Vendor' => 'ДоÑтавчик',
+ 'Vendor Invoice.' => 'Фактура на доÑтавчик',
+ 'Vendor missing!' => 'ЛипÑва доÑтавчик',
+ 'Vendor not on file!' => 'ЛипÑва доÑтвчика в базата',
+ 'Warning!' => 'Внимание!',
+ 'Week(s)' => 'Седмица(и)',
+ 'Year' => 'Година',
+ 'Year(s)' => 'Година(и)',
+ 'Yes' => 'Да',
+ 'You are posting an existing transaction!' => 'Сигурен ли Ñте, че ще запазите този превод!',
+ 'You are printing and posting an existing transaction!' => 'Сигурен ли Ñте, че ще разпечатате и запазите този превод!',
+ 'You are printing and saving an existing order' => 'Сигурен ли Ñте, че ще разпечатате и запазите този превод!',
+ 'You are printing and saving an existing quotation' => 'Сигурен ли Ñте, че ще разпечатате и запазите тази резервациÑ!',
+ 'You are saving an existing order' => 'Сигурен ли Ñте, че ще запазите тази поръчка!',
+ 'You are saving an existing quotation' => 'Сигурен ли Ñте, че ще запазите тази резервациÑ',
+ 'for' => 'за',
+ 'sent' => 'изпрати',
+ 'time(s)' => 'път(и)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'Превод_продажба' => 'ap_transaction',
+ 'Превод_покупка' => 'ar_transaction',
+ 'Продължение' => 'continue',
+ 'ИзÑтрии' => 'delete',
+ 'Изтрии_задачата' => 'delete_schedule',
+ 'Запази' => 'post',
+ 'Запази_като_нов' => 'post_as_new',
+ 'Печат' => 'print',
+ 'Разпечатай_и_запази' => 'print_and_post',
+ 'Разпечатай_и_запази_като_нов' => 'print_and_post_as_new',
+ 'Фактура_продажби' => 'sales_invoice_',
+ 'Запази_разпиÑание' => 'save_schedule',
+ 'РазпиÑание' => 'schedule',
+ 'ДоÑтавка_до' => 'ship_to',
+ 'Обнови' => 'update',
+ 'Фактура_на_доÑтавчик' => 'vendor_invoice_',
+ 'Да' => 'yes',
+};
+
+1;
+
diff --git a/locale/bg_utf/ar b/locale/bg_utf/ar
new file mode 100755
index 00000000..6a7c1f68
--- /dev/null
+++ b/locale/bg_utf/ar
@@ -0,0 +1,242 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Outstanding' => 'Ð’Ð·ÐµÐ¼Ð°Ð½Ð¸Ñ Ð¾Ñ‚ клиенти',
+ 'AP Transaction' => 'Превод продажба',
+ 'AP Transactions' => 'Преводи продажби',
+ 'AR Outstanding' => 'Ð—Ð°Ð´ÑŠÐ»Ð¶ÐµÐ½Ð¸Ñ ÐºÑŠÐ¼ доÑтавчици',
+ 'AR Transaction' => 'Превод покупка',
+ 'AR Transactions' => 'Преводи покупки',
+ 'Account' => 'Сметка',
+ 'Accounting Menu' => 'Меню Сметкоплан',
+ 'Add AP Transaction' => 'ДобавÑне превод към клиенти',
+ 'Add AR Transaction' => 'ДобавÑне превод към доÑтавчици',
+ 'Address' => 'ÐдреÑ',
+ 'Amount' => 'Сума',
+ 'Amount Due' => 'Сума за получаване',
+ 'Apr' => 'Ðпр',
+ 'April' => 'Ðприл',
+ 'Are you sure you want to delete Transaction' => 'Сигурни ли Ñте, че ще изÑтриете превода?',
+ 'Aug' => 'Ðвг',
+ 'August' => 'ÐвгуÑÑ‚',
+ 'Bcc' => 'БÑÑ',
+ 'Cannot delete transaction!' => 'Ðе мога да изÑÑ‚Ñ€Ð¸Ñ Ð¿Ñ€ÐµÐ²Ð¾Ð´Ð°!',
+ 'Cannot post payment for a closed period!' => 'Ðе мога да извърша плащане за закрит период!',
+ 'Cannot post transaction for a closed period!' => 'Ðе мога да извърша превод за закрит период!',
+ 'Cannot post transaction!' => 'Ðе мога да извърша плащане!',
+ 'Cc' => 'СÑ',
+ 'Check' => 'В брой',
+ 'Closed' => 'Затворено',
+ 'Confirm!' => 'СъглаÑие!',
+ 'Continue' => 'Продължение',
+ 'Credit' => 'Кредит',
+ 'Credit Limit' => 'Кредитен лимит',
+ 'Curr' => 'Валута',
+ 'Currency' => 'Валута',
+ 'Current' => 'Текущ',
+ 'Customer' => 'Клиент',
+ 'Customer missing!' => 'ПропуÑнат клиент!',
+ 'Customer not on file!' => 'ЛипÑва клиента в базите!',
+ 'Date' => 'Дата',
+ 'Date Paid' => 'Падеж',
+ 'Day(s)' => 'Ден(дни)',
+ 'Debit' => 'Дебит',
+ 'Dec' => 'Дек',
+ 'December' => 'Декември',
+ 'Delete' => 'ИзÑтрии',
+ 'Delete Schedule' => 'Изтрии задачата',
+ 'Department' => 'Отдел',
+ 'Description' => 'ОбÑÑнение',
+ 'Detail' => 'Детаилен',
+ 'Due Date' => 'Платете до',
+ 'Due Date missing!' => 'ПропуÑната дата за плащане',
+ 'E-mail' => 'Ел.адреÑ',
+ 'E-mail message' => 'Ел.Ñъобщение',
+ 'Edit AP Transaction' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° превод към доÑтавчик',
+ 'Edit AR Transaction' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° превод към клиент',
+ 'Employee' => 'Сътрудник',
+ 'Every' => 'Винаги',
+ 'Exch' => 'КурÑ',
+ 'Exchange Rate' => 'Валутен курÑ',
+ 'Exchange rate for payment missing!' => 'Валутен ÐºÑƒÑ€Ñ Ð·Ð° пропуÑнато плащане',
+ 'Exchange rate missing!' => 'ПропуÑнат валутен курÑ',
+ 'Feb' => 'Фев',
+ 'February' => 'Февруари',
+ 'For' => 'За',
+ 'From' => 'От',
+ 'ID' => 'Код',
+ 'Include Payment' => 'Включено плащане',
+ 'Include in Report' => 'Включен в Ñправката',
+ 'Invoice' => 'Фактура',
+ 'Invoice Date' => 'Фактура дата',
+ 'Invoice Date missing!' => 'ПопуÑната дата на фактурата',
+ 'Invoice Number' => 'Фактура номер',
+ 'Jan' => 'Яну',
+ 'January' => 'Януари',
+ 'Jul' => 'Юли',
+ 'July' => 'Юли',
+ 'Jun' => 'Юни',
+ 'June' => 'Юни',
+ 'Manager' => 'Ръководител',
+ 'Mar' => 'Мар',
+ 'March' => 'Март',
+ 'May' => 'Май',
+ 'May ' => 'Май',
+ 'Memo' => 'Бележка',
+ 'Message' => 'Съобщение',
+ 'Month' => 'МеÑец',
+ 'Month(s)' => 'МеÑеци',
+ 'Next Date' => 'Следваща дата',
+ 'No.' => 'Ðо.',
+ 'Notes' => 'Забележка',
+ 'Nothing to print!' => 'ÐÑма за печатане!',
+ 'Nov' => 'Ðое',
+ 'November' => 'Ðоември',
+ 'Number' => 'Ðомер',
+ 'Oct' => 'Окт',
+ 'October' => 'Октомври',
+ 'Open' => 'Отворен',
+ 'Order' => 'Поръчка',
+ 'Order Number' => 'Поръчка номер',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Поръчка номер за покупка',
+ 'Paid' => 'Платено',
+ 'Payment date missing!' => 'ПропуÑната дата на плащане!',
+ 'Payments' => 'Плащане',
+ 'Period' => 'Период',
+ 'Post' => 'Запази',
+ 'Post as new' => 'Запази като нов',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Печат',
+ 'Print and Post' => 'Разпечатай и запази',
+ 'Print and Post as new' => 'Разпечатай и запази като нов',
+ 'Printed' => 'Разпечатано',
+ 'Project' => 'Проект',
+ 'Project not on file!' => 'Проекта липÑва в базите!',
+ 'Quarter' => 'ЧетиримеÑечие',
+ 'Receipt' => 'Получаване',
+ 'Recurring Transaction' => 'ПовтарÑщи Ñе преводи',
+ 'Reference' => 'РеференциÑ',
+ 'Remaining' => 'ÐапомнÑне',
+ 'Repeat' => 'Повторение',
+ 'Sales Invoice.' => 'Фактура продажби',
+ 'Salesperson' => 'Продавач',
+ 'Save Schedule' => 'Запази разпиÑание',
+ 'Schedule' => 'РазпиÑание',
+ 'Scheduled' => 'Зададено разпиÑание',
+ 'Screen' => 'Екран',
+ 'Select a Printer!' => 'Избери принтер!',
+ 'Select from one of the names below' => 'Избери едно от имената поÑочени по-долу',
+ 'Select from one of the projects below' => 'Избери един от проектите поÑочени по-долу',
+ 'Select payment' => 'Избери плащане',
+ 'Select postscript or PDF!' => 'Избери postscript или PDF!',
+ 'Sep' => 'Сеп',
+ 'September' => 'Септември',
+ 'Ship to' => 'ДоÑтавка до',
+ 'Ship via' => 'ДоÑтавка ÑÑŠÑ',
+ 'Shipping Point' => 'МеÑтоназначение',
+ 'Source' => 'Първообраз',
+ 'Startdate' => 'Ðачална дата',
+ 'Subject' => 'Тема',
+ 'Subtotal' => 'Междинен Ñбор',
+ 'Summary' => 'Сумарно',
+ 'Tax' => 'Данък',
+ 'Tax Included' => 'Включен данък',
+ 'Till' => 'до',
+ 'To' => 'за',
+ 'Total' => 'Ð’Ñичко',
+ 'Transaction' => 'Превод',
+ 'Transaction deleted!' => 'Превода е изтрит!',
+ 'Transaction posted!' => 'Превода е запазен!',
+ 'Update' => 'Обнови',
+ 'Vendor' => 'ДоÑтавчик',
+ 'Vendor Invoice.' => 'Фактура на доÑтавчик',
+ 'Vendor missing!' => 'ЛипÑва доÑтавчик',
+ 'Vendor not on file!' => 'ЛипÑва доÑтвчика в базата',
+ 'Warning!' => 'Внимание!',
+ 'Week(s)' => 'Седмица(и)',
+ 'Year' => 'Година',
+ 'Year(s)' => 'Година(и)',
+ 'Yes' => 'Да',
+ 'You are posting an existing transaction!' => 'Сигурен ли Ñте, че ще запазите този превод!',
+ 'You are printing and posting an existing transaction!' => 'Сигурен ли Ñте, че ще разпечатате и запазите този превод!',
+ 'You are printing and saving an existing order' => 'Сигурен ли Ñте, че ще разпечатате и запазите този превод!',
+ 'You are printing and saving an existing quotation' => 'Сигурен ли Ñте, че ще разпечатате и запазите тази резервациÑ!',
+ 'You are saving an existing order' => 'Сигурен ли Ñте, че ще запазите тази поръчка!',
+ 'You are saving an existing quotation' => 'Сигурен ли Ñте, че ще запазите тази резервациÑ',
+ 'for' => 'за',
+ 'sent' => 'изпрати',
+ 'time(s)' => 'път(и)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'Превод_продажба' => 'ap_transaction',
+ 'Превод_покупка' => 'ar_transaction',
+ 'Продължение' => 'continue',
+ 'ИзÑтрии' => 'delete',
+ 'Изтрии_задачата' => 'delete_schedule',
+ 'Запази' => 'post',
+ 'Запази_като_нов' => 'post_as_new',
+ 'Печат' => 'print',
+ 'Разпечатай_и_запази' => 'print_and_post',
+ 'Разпечатай_и_запази_като_нов' => 'print_and_post_as_new',
+ 'Фактура_продажби' => 'sales_invoice_',
+ 'Запази_разпиÑание' => 'save_schedule',
+ 'РазпиÑание' => 'schedule',
+ 'ДоÑтавка_до' => 'ship_to',
+ 'Обнови' => 'update',
+ 'Фактура_на_доÑтавчик' => 'vendor_invoice_',
+ 'Да' => 'yes',
+};
+
+1;
+
diff --git a/locale/bg_utf/arap b/locale/bg_utf/arap
new file mode 100755
index 00000000..d0bb698b
--- /dev/null
+++ b/locale/bg_utf/arap
@@ -0,0 +1,76 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Address' => 'ÐдреÑ',
+ 'Bcc' => 'БÑÑ',
+ 'Cc' => 'СÑ',
+ 'Continue' => 'Продължение',
+ 'Customer not on file!' => 'ЛипÑва клиента в базите!',
+ 'Date' => 'Дата',
+ 'Day(s)' => 'Ден(дни)',
+ 'Delete Schedule' => 'Изтрии задачата',
+ 'Description' => 'ОбÑÑнение',
+ 'E-mail' => 'Ел.адреÑ',
+ 'E-mail message' => 'Ел.Ñъобщение',
+ 'Every' => 'Винаги',
+ 'For' => 'За',
+ 'Include Payment' => 'Включено плащане',
+ 'Message' => 'Съобщение',
+ 'Month(s)' => 'МеÑеци',
+ 'Next Date' => 'Следваща дата',
+ 'Number' => 'Ðомер',
+ 'Print' => 'Печат',
+ 'Project not on file!' => 'Проекта липÑва в базите!',
+ 'Recurring Transaction' => 'ПовтарÑщи Ñе преводи',
+ 'Reference' => 'РеференциÑ',
+ 'Repeat' => 'Повторение',
+ 'Save Schedule' => 'Запази разпиÑание',
+ 'Select from one of the names below' => 'Избери едно от имената поÑочени по-долу',
+ 'Select from one of the projects below' => 'Избери един от проектите поÑочени по-долу',
+ 'Startdate' => 'Ðачална дата',
+ 'Subject' => 'Тема',
+ 'To' => 'за',
+ 'Vendor not on file!' => 'ЛипÑва доÑтвчика в базата',
+ 'Warning!' => 'Внимание!',
+ 'Week(s)' => 'Седмица(и)',
+ 'Year(s)' => 'Година(и)',
+ 'You are posting an existing transaction!' => 'Сигурен ли Ñте, че ще запазите този превод!',
+ 'You are printing and posting an existing transaction!' => 'Сигурен ли Ñте, че ще разпечатате и запазите този превод!',
+ 'You are printing and saving an existing order' => 'Сигурен ли Ñте, че ще разпечатате и запазите този превод!',
+ 'You are printing and saving an existing quotation' => 'Сигурен ли Ñте, че ще разпечатате и запазите тази резервациÑ!',
+ 'You are saving an existing order' => 'Сигурен ли Ñте, че ще запазите тази поръчка!',
+ 'You are saving an existing quotation' => 'Сигурен ли Ñте, че ще запазите тази резервациÑ',
+ 'for' => 'за',
+ 'sent' => 'изпрати',
+ 'time(s)' => 'път(и)',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'Продължение' => 'continue',
+ 'Изтрии_задачата' => 'delete_schedule',
+ 'Запази_разпиÑание' => 'save_schedule',
+};
+
+1;
+
diff --git a/locale/bg_utf/arapprn b/locale/bg_utf/arapprn
new file mode 100755
index 00000000..826e6cc3
--- /dev/null
+++ b/locale/bg_utf/arapprn
@@ -0,0 +1,36 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'Сметка',
+ 'Amount' => 'Сума',
+ 'Continue' => 'Продължение',
+ 'Date' => 'Дата',
+ 'Memo' => 'Бележка',
+ 'Nothing to print!' => 'ÐÑма за печатане!',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'Postscript',
+ 'Printed' => 'Разпечатано',
+ 'Scheduled' => 'Зададено разпиÑание',
+ 'Screen' => 'Екран',
+ 'Select a Printer!' => 'Избери принтер!',
+ 'Select payment' => 'Избери плащане',
+ 'Select postscript or PDF!' => 'Избери postscript или PDF!',
+ 'Source' => 'Първообраз',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'Продължение' => 'continue',
+};
+
+1;
+
diff --git a/locale/bg_utf/bp b/locale/bg_utf/bp
new file mode 100755
index 00000000..0acc8c5e
--- /dev/null
+++ b/locale/bg_utf/bp
@@ -0,0 +1,71 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'Сметка',
+ 'Accounting Menu' => 'Меню Сметкоплан',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Сигурен ли Ñте, че иÑкате да премахнете маркираните заданиÑ?',
+ 'Bin Lists' => 'СпиÑъци на пакети',
+ 'Cannot remove files!' => 'Ðе е възможно премахване на файлове!',
+ 'Confirm!' => 'СъглаÑие!',
+ 'Continue' => 'Продължение',
+ 'Current' => 'Текущ',
+ 'Customer' => 'Клиент',
+ 'Date' => 'Дата',
+ 'Employee' => 'Сътрудник',
+ 'From' => 'От',
+ 'ID' => 'Код',
+ 'Invoice' => 'Фактура',
+ 'Invoice Number' => 'Фактура номер',
+ 'Marked entries printed!' => 'Маркираните редове Ñа разпечатани!',
+ 'Month' => 'МеÑец',
+ 'Order' => 'Поръчка',
+ 'Order Number' => 'Поръчка номер',
+ 'Packing Lists' => 'Опъковъчни лиÑти',
+ 'Period' => 'Период',
+ 'Pick Lists' => 'Товарителници',
+ 'Print' => 'Печат',
+ 'Printing' => 'Разпечатано',
+ 'Purchase Orders' => 'Платежни нарежданиÑ',
+ 'Quarter' => 'ЧетиримеÑечие',
+ 'Quotation' => 'Запазена форма',
+ 'Quotation Number' => 'Ðомер на задание',
+ 'Quotations' => 'Запазени форми',
+ 'RFQs' => 'Резервации',
+ 'Remove' => 'Премахни',
+ 'Removed spoolfiles!' => 'Премахнати Ñа предназначените за печат опашки!',
+ 'Removing marked entries from queue ...' => 'Прехнати Ñа маркраните редове ÑÑŠÑ Ð·Ð°Ð´Ð°Ð½Ð¸Ñ ...',
+ 'Sales Invoices' => 'Фактури прдажби',
+ 'Sales Orders' => 'Поръчки продажби',
+ 'Select all' => 'Избери вÑичко',
+ 'Spoolfile' => 'Опашка за печат',
+ 'Time Cards' => 'Работни карти',
+ 'To' => 'за',
+ 'Vendor' => 'ДоÑтавчик',
+ 'Work Orders' => 'Работни поръчки',
+ 'Year' => 'Година',
+ 'Yes' => 'Да',
+ 'done' => 'Готов',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'Продължение' => 'continue',
+ 'Печат' => 'print',
+ 'Премахни' => 'remove',
+ 'Избери_вÑичко' => 'select_all',
+ 'Да' => 'yes',
+};
+
+1;
+
diff --git a/locale/bg_utf/ca b/locale/bg_utf/ca
new file mode 100755
index 00000000..b41430fd
--- /dev/null
+++ b/locale/bg_utf/ca
@@ -0,0 +1,62 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AR/AP' => 'Продажби/Покупки',
+ 'Account' => 'Сметка',
+ 'Apr' => 'Ðпр',
+ 'April' => 'Ðприл',
+ 'Aug' => 'Ðвг',
+ 'August' => 'ÐвгуÑÑ‚',
+ 'Balance' => 'БаланÑ',
+ 'Chart of Accounts' => 'Сметкоплан',
+ 'Credit' => 'Кредит',
+ 'Current' => 'Текущ',
+ 'Date' => 'Дата',
+ 'Debit' => 'Дебит',
+ 'Dec' => 'Дек',
+ 'December' => 'Декември',
+ 'Department' => 'Отдел',
+ 'Description' => 'ОбÑÑнение',
+ 'Feb' => 'Фев',
+ 'February' => 'Февруари',
+ 'From' => 'От',
+ 'GIFI' => 'GIFI',
+ 'Include in Report' => 'Включен в Ñправката',
+ 'Jan' => 'Яну',
+ 'January' => 'Януари',
+ 'Jul' => 'Юли',
+ 'July' => 'Юли',
+ 'Jun' => 'Юни',
+ 'June' => 'Юни',
+ 'List Transactions' => 'СпиÑък Ñ Ð¿Ñ€ÐµÐ²Ð¾Ð´Ð¸',
+ 'Mar' => 'Мар',
+ 'March' => 'Март',
+ 'May' => 'Май',
+ 'May ' => 'Май',
+ 'Month' => 'МеÑец',
+ 'Nov' => 'Ðое',
+ 'November' => 'Ðоември',
+ 'Oct' => 'Окт',
+ 'October' => 'Октомври',
+ 'Period' => 'Период',
+ 'Project Number' => 'Ðомер на проекта',
+ 'Quarter' => 'ЧетиримеÑечие',
+ 'R' => 'R',
+ 'Reference' => 'РеференциÑ',
+ 'Sep' => 'Сеп',
+ 'September' => 'Септември',
+ 'Subtotal' => 'Междинен Ñбор',
+ 'To' => 'за',
+ 'Year' => 'Година',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'СпиÑък_Ñ_преводи' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/bg_utf/cp b/locale/bg_utf/cp
new file mode 100755
index 00000000..2ad55bef
--- /dev/null
+++ b/locale/bg_utf/cp
@@ -0,0 +1,151 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP' => 'Продажби',
+ 'AR' => 'Покупки',
+ 'Account' => 'Сметка',
+ 'Accounting Menu' => 'Меню Сметкоплан',
+ 'Address' => 'ÐдреÑ',
+ 'All' => 'Ð’Ñичко',
+ 'Amount' => 'Сума',
+ 'Amount Due' => 'Сума за получаване',
+ 'Bcc' => 'БÑÑ',
+ 'Cannot post Payment!' => 'Ðе е възможно запазването на плащането!',
+ 'Cannot post Receipt!' => 'Ðе е възможно запазването на поÑтъплението!',
+ 'Cannot post payment for a closed period!' => 'Ðе мога да извърша плащане за закрит период!',
+ 'Cc' => 'СÑ',
+ 'Continue' => 'Продължение',
+ 'Currency' => 'Валута',
+ 'Customer' => 'Клиент',
+ 'Customer not on file!' => 'ЛипÑва клиента в базите!',
+ 'Date' => 'Дата',
+ 'Date missing!' => 'ЛипÑва дата!',
+ 'Day(s)' => 'Ден(дни)',
+ 'Delete Schedule' => 'Изтрии задачата',
+ 'Department' => 'Отдел',
+ 'Deposit' => 'Депозит',
+ 'Description' => 'ОбÑÑнение',
+ 'Due Date' => 'Платете до',
+ 'E-mail' => 'Ел.адреÑ',
+ 'E-mail message' => 'Ел.Ñъобщение',
+ 'Every' => 'Винаги',
+ 'Exchange Rate' => 'Валутен курÑ',
+ 'Exchange rate missing!' => 'ПропуÑнат валутен курÑ',
+ 'For' => 'За',
+ 'From' => 'От',
+ 'Include Payment' => 'Включено плащане',
+ 'Invoice' => 'Фактура',
+ 'Invoices' => 'Фактура',
+ 'Language' => 'Език',
+ 'Memo' => 'Бележка',
+ 'Message' => 'Съобщение',
+ 'Month(s)' => 'МеÑеци',
+ 'Next Date' => 'Следваща дата',
+ 'Nothing open!' => 'Ðищо не отворено!',
+ 'Number' => 'Ðомер',
+ 'PDF' => 'PDF',
+ 'Payment' => 'Плащане',
+ 'Payment posted!' => 'Плащането е запазено!',
+ 'Payments' => 'Плащане',
+ 'Payments posted!' => 'ПлащаниÑта Ñа запазени!',
+ 'Post' => 'Запази',
+ 'Posting failed!' => 'Грешка при запазване!',
+ 'Postscript' => 'Postscript',
+ 'Prepayment' => 'ÐванÑово плащане',
+ 'Print' => 'Печат',
+ 'Project not on file!' => 'Проекта липÑва в базите!',
+ 'Receipt' => 'Получаване',
+ 'Receipt posted!' => 'поÑтъплението е запазено!',
+ 'Receipts' => 'ПолучаваниÑ',
+ 'Recurring Transaction' => 'ПовтарÑщи Ñе преводи',
+ 'Reference' => 'РеференциÑ',
+ 'Repeat' => 'Повторение',
+ 'Save Schedule' => 'Запази разпиÑание',
+ 'Screen' => 'Екран',
+ 'Select' => 'Избери',
+ 'Select all' => 'Избери вÑичко',
+ 'Select from one of the names below' => 'Избери едно от имената поÑочени по-долу',
+ 'Select from one of the projects below' => 'Избери един от проектите поÑочени по-долу',
+ 'Select postscript or PDF!' => 'Избери postscript или PDF!',
+ 'Source' => 'Първообраз',
+ 'Startdate' => 'Ðачална дата',
+ 'Subject' => 'Тема',
+ 'To' => 'за',
+ 'Update' => 'Обнови',
+ 'Vendor' => 'ДоÑтавчик',
+ 'Vendor not on file!' => 'ЛипÑва доÑтвчика в базата',
+ 'Warning!' => 'Внимание!',
+ 'Week(s)' => 'Седмица(и)',
+ 'Year(s)' => 'Година(и)',
+ 'You are posting an existing transaction!' => 'Сигурен ли Ñте, че ще запазите този превод!',
+ 'You are printing and posting an existing transaction!' => 'Сигурен ли Ñте, че ще разпечатате и запазите този превод!',
+ 'You are printing and saving an existing order' => 'Сигурен ли Ñте, че ще разпечатате и запазите този превод!',
+ 'You are printing and saving an existing quotation' => 'Сигурен ли Ñте, че ще разпечатате и запазите тази резервациÑ!',
+ 'You are saving an existing order' => 'Сигурен ли Ñте, че ще запазите тази поръчка!',
+ 'You are saving an existing quotation' => 'Сигурен ли Ñте, че ще запазите тази резервациÑ',
+ 'for' => 'за',
+ 'sent' => 'изпрати',
+ 'time(s)' => 'път(и)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'Продължение' => 'continue',
+ 'Изтрии_задачата' => 'delete_schedule',
+ 'Запази' => 'post',
+ 'Печат' => 'print',
+ 'Запази_разпиÑание' => 'save_schedule',
+ 'Избери_вÑичко' => 'select_all',
+ 'Обнови' => 'update',
+};
+
+1;
+
diff --git a/locale/bg_utf/ct b/locale/bg_utf/ct
new file mode 100755
index 00000000..3dcb7ffe
--- /dev/null
+++ b/locale/bg_utf/ct
@@ -0,0 +1,192 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Transaction' => 'Превод продажба',
+ 'AP Transactions' => 'Преводи продажби',
+ 'AR Transaction' => 'Превод покупка',
+ 'AR Transactions' => 'Преводи покупки',
+ 'Accounting Menu' => 'Меню Сметкоплан',
+ 'Active' => 'Ðктив',
+ 'Add Customer' => 'Добави клиент',
+ 'Add Vendor' => 'Добави доÑтавчик',
+ 'Address' => 'ÐдреÑ',
+ 'All' => 'Ð’Ñичко',
+ 'Amount' => 'Сума',
+ 'BIC' => 'BIC',
+ 'Bcc' => 'БÑÑ',
+ 'Billing Address' => 'ÐÐ´Ñ€ÐµÑ Ð·Ð° получаване на Ñметката',
+ 'Break' => 'ПрекъÑване',
+ 'Cannot delete customer!' => 'Ðе е възможно изтриване на клиент!',
+ 'Cannot delete vendor!' => 'Ðе е възможно изтриване на доÑтавчик',
+ 'Cc' => 'СÑ',
+ 'City' => 'Град',
+ 'Closed' => 'Затворено',
+ 'Company Name' => 'Име на фирма',
+ 'Contact' => 'Лице за контакт',
+ 'Continue' => 'Продължение',
+ 'Cost' => 'Цена',
+ 'Could not save pricelist!' => 'Ðе е възможно запазването на ценоразпиÑа!',
+ 'Country' => 'Държава',
+ 'Credit Limit' => 'Кредитен лимит',
+ 'Curr' => 'Валута',
+ 'Currency' => 'Валута',
+ 'Customer History' => 'ИÑÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° клиента',
+ 'Customer Number' => 'Клиент номер',
+ 'Customer deleted!' => 'Клиента е изтрит!',
+ 'Customer saved!' => 'Клиента е запазен!',
+ 'Customers' => 'Клиенти',
+ 'Delete' => 'ИзÑтрии',
+ 'Delivery Date' => 'Дата на доÑтавка',
+ 'Description' => 'ОбÑÑнение',
+ 'Detail' => 'Детаилен',
+ 'Discount' => 'ОтÑтъпка',
+ 'E-mail' => 'Ел.адреÑ',
+ 'Edit Customer' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° клиент',
+ 'Edit Vendor' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° доÑтавчик',
+ 'Employee' => 'Сътрудник',
+ 'Enddate' => 'Крайна дата',
+ 'Fax' => 'ФакÑ',
+ 'From' => 'От',
+ 'GIFI' => 'GIFI',
+ 'Group' => 'Група',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'Код',
+ 'Inactive' => 'Ðеизползваем',
+ 'Include in Report' => 'Включен в Ñправката',
+ 'Invoice' => 'Фактура',
+ 'Item already on pricelist!' => 'Елемента е наличен в ценоразпиÑа!',
+ 'Item not on file!' => 'Елемента липÑва в базата!',
+ 'Language' => 'Език',
+ 'Leadtime' => 'ОÑновно време',
+ 'Manager' => 'Ръководител',
+ 'Name' => 'Име',
+ 'Name missing!' => 'ЛипÑва име!',
+ 'No.' => 'Ðо.',
+ 'Notes' => 'Забележка',
+ 'Number' => 'Ðомер',
+ 'Open' => 'Отворен',
+ 'Order' => 'Поръчка',
+ 'Orphaned' => 'Без движение',
+ 'POS' => 'Кредино извеÑтие',
+ 'Part Number' => 'Сериен номер',
+ 'Phone' => 'Телефон',
+ 'Pricegroup' => 'Ценова група',
+ 'Pricelist' => 'ЦеноразпиÑ',
+ 'Project Number' => 'Ðомер на проекта',
+ 'Purchase Order' => 'Платежно нареждане',
+ 'Purchase Orders' => 'Платежни нарежданиÑ',
+ 'Qty' => 'К-во',
+ 'Quotation' => 'Запазена форма',
+ 'Quotations' => 'Запазени форми',
+ 'RFQ' => 'РезервациÑ',
+ 'Request for Quotations' => 'ÐеобходимоÑÑ‚ от заÑвки',
+ 'SIC' => 'SIC',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Фактура продажба',
+ 'Sales Invoices' => 'Фактури прдажби',
+ 'Sales Order' => 'Поръчка продажба',
+ 'Sales Orders' => 'Поръчки продажби',
+ 'Salesperson' => 'Продавач',
+ 'Save' => 'Запази',
+ 'Save Pricelist' => 'Запази зеноразпиÑа',
+ 'Save as new' => 'Запази като нов',
+ 'Search' => 'ТърÑи',
+ 'Select items' => 'Избери елемент',
+ 'Sell Price' => 'Продажна цена',
+ 'Serial Number' => 'Сериен номер',
+ 'Shipping Address' => 'ÐÐ´Ñ€ÐµÑ Ð½Ð° доÑтавка',
+ 'Startdate' => 'Ðачална дата',
+ 'State' => 'Окръг',
+ 'State/Province' => 'Окръг/ОблаÑÑ‚',
+ 'Sub-contract GIFI' => 'Подчинен на GIFI',
+ 'Subtotal' => 'Междинен Ñбор',
+ 'Summary' => 'Сумарно',
+ 'Tax' => 'Данък',
+ 'Tax Account' => 'Сметка за данъци',
+ 'Tax Included' => 'Включен данък',
+ 'Tax Number' => 'Данък номер',
+ 'Tax Number / SSN' => 'Данък номер / SSN',
+ 'Taxable' => 'Облагаема Ñделка',
+ 'Terms' => 'Падеж',
+ 'To' => 'за',
+ 'Total' => 'Ð’Ñичко',
+ 'Type of Business' => 'Тип на направление',
+ 'Unit' => 'Единица',
+ 'Update' => 'Обнови',
+ 'Vendor History' => 'ИÑÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° доÑтавчика',
+ 'Vendor Invoice' => 'Фактура за доÑтавка',
+ 'Vendor Invoices' => 'Фактури за доÑтавки',
+ 'Vendor Number' => 'ДоÑтавчик номер',
+ 'Vendor deleted!' => 'ДоÑтавчика е изтрит!',
+ 'Vendor saved!' => 'ДоÑтавчика е запазен!',
+ 'Vendors' => 'ДоÑтавчици',
+ 'Zip/Postal Code' => 'ПК',
+ 'days' => 'дни',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'Превод_продажба' => 'ap_transaction',
+ 'Превод_покупка' => 'ar_transaction',
+ 'Добави_клиент' => 'add_customer',
+ 'Добави_доÑтавчик' => 'add_vendor',
+ 'Продължение' => 'continue',
+ 'ИзÑтрии' => 'delete',
+ 'Кредино_извеÑтие' => 'pos',
+ 'ЦеноразпиÑ' => 'pricelist',
+ 'Платежно_нареждане' => 'purchase_order',
+ 'Запазена_форма' => 'quotation',
+ 'РезервациÑ' => 'rfq',
+ 'Фактура_продажба' => 'sales_invoice',
+ 'Поръчка_продажба' => 'sales_order',
+ 'Запази' => 'save',
+ 'Запази_зеноразпиÑа' => 'save_pricelist',
+ 'Запази_като_нов' => 'save_as_new',
+ 'Обнови' => 'update',
+ 'Фактура_за_доÑтавка' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/bg_utf/gl b/locale/bg_utf/gl
new file mode 100755
index 00000000..21736a07
--- /dev/null
+++ b/locale/bg_utf/gl
@@ -0,0 +1,187 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Transaction' => 'Превод продажба',
+ 'AR Transaction' => 'Превод покупка',
+ 'Account' => 'Сметка',
+ 'Accounting Menu' => 'Меню Сметкоплан',
+ 'Add Cash Transfer Transaction' => 'Добави плащане в брой',
+ 'Add General Ledger Transaction' => 'Добави в главната книга превод',
+ 'Address' => 'ÐдреÑ',
+ 'All' => 'Ð’Ñичко',
+ 'Amount' => 'Сума',
+ 'Apr' => 'Ðпр',
+ 'April' => 'Ðприл',
+ 'Are you sure you want to delete Transaction' => 'Сигурни ли Ñте, че ще изÑтриете превода?',
+ 'Asset' => 'Ðктив',
+ 'Aug' => 'Ðвг',
+ 'August' => 'ÐвгуÑÑ‚',
+ 'Balance' => 'БаланÑ',
+ 'Bcc' => 'БÑÑ',
+ 'Cannot delete transaction!' => 'Ðе мога да изÑÑ‚Ñ€Ð¸Ñ Ð¿Ñ€ÐµÐ²Ð¾Ð´Ð°!',
+ 'Cannot post transaction for a closed period!' => 'Ðе мога да извърша превод за закрит период!',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => 'Ðе е възможно запазването на превода едновременно в дебита и кредита на Ñметката!',
+ 'Cannot post transaction!' => 'Ðе мога да извърша плащане!',
+ 'Cc' => 'СÑ',
+ 'Confirm!' => 'СъглаÑие!',
+ 'Continue' => 'Продължение',
+ 'Credit' => 'Кредит',
+ 'Current' => 'Текущ',
+ 'Customer not on file!' => 'ЛипÑва клиента в базите!',
+ 'Date' => 'Дата',
+ 'Day(s)' => 'Ден(дни)',
+ 'Debit' => 'Дебит',
+ 'Dec' => 'Дек',
+ 'December' => 'Декември',
+ 'Delete' => 'ИзÑтрии',
+ 'Delete Schedule' => 'Изтрии задачата',
+ 'Department' => 'Отдел',
+ 'Description' => 'ОбÑÑнение',
+ 'E-mail' => 'Ел.адреÑ',
+ 'E-mail message' => 'Ел.Ñъобщение',
+ 'Edit Cash Transfer Transaction' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° плащаниÑта в брой',
+ 'Edit General Ledger Transaction' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° преводи в главната книга',
+ 'Equity' => 'Капитал',
+ 'Every' => 'Винаги',
+ 'Expense' => 'Разход',
+ 'FX' => 'FX',
+ 'Feb' => 'Фев',
+ 'February' => 'Февруари',
+ 'For' => 'За',
+ 'From' => 'От',
+ 'GIFI' => 'GIFI',
+ 'GL Transaction' => 'Главна книга на преводи',
+ 'General Ledger' => 'Главна книга',
+ 'ID' => 'Код',
+ 'Include Payment' => 'Включено плащане',
+ 'Include in Report' => 'Включен в Ñправката',
+ 'Income' => 'Приходи',
+ 'Jan' => 'Яну',
+ 'January' => 'Януари',
+ 'Jul' => 'Юли',
+ 'July' => 'Юли',
+ 'Jun' => 'Юни',
+ 'June' => 'Юни',
+ 'Liability' => 'ПаÑив',
+ 'Mar' => 'Мар',
+ 'March' => 'Март',
+ 'May' => 'Май',
+ 'May ' => 'Май',
+ 'Memo' => 'Бележка',
+ 'Message' => 'Съобщение',
+ 'Month' => 'МеÑец',
+ 'Month(s)' => 'МеÑеци',
+ 'Next Date' => 'Следваща дата',
+ 'Notes' => 'Забележка',
+ 'Nov' => 'Ðое',
+ 'November' => 'Ðоември',
+ 'Number' => 'Ðомер',
+ 'Oct' => 'Окт',
+ 'October' => 'Октомври',
+ 'Out of balance transaction!' => 'Ивън баланÑови преводи',
+ 'Period' => 'Период',
+ 'Post' => 'Запази',
+ 'Post as new' => 'Запази като нов',
+ 'Print' => 'Печат',
+ 'Project' => 'Проект',
+ 'Project not on file!' => 'Проекта липÑва в базите!',
+ 'Quarter' => 'ЧетиримеÑечие',
+ 'R' => 'R',
+ 'Recurring Transaction' => 'ПовтарÑщи Ñе преводи',
+ 'Reference' => 'РеференциÑ',
+ 'Repeat' => 'Повторение',
+ 'Reports' => 'Справки',
+ 'Sales Invoice ' => 'Фактура продажби ',
+ 'Save Schedule' => 'Запази разпиÑание',
+ 'Schedule' => 'РазпиÑание',
+ 'Scheduled' => 'Зададено разпиÑание',
+ 'Select from one of the names below' => 'Избери едно от имената поÑочени по-долу',
+ 'Select from one of the projects below' => 'Избери един от проектите поÑочени по-долу',
+ 'Sep' => 'Сеп',
+ 'September' => 'Септември',
+ 'Source' => 'Първообраз',
+ 'Startdate' => 'Ðачална дата',
+ 'Subject' => 'Тема',
+ 'Subtotal' => 'Междинен Ñбор',
+ 'To' => 'за',
+ 'Transaction Date missing!' => 'ЛипÑва дата на превода',
+ 'Transaction deleted!' => 'Превода е изтрит!',
+ 'Transaction posted!' => 'Превода е запазен!',
+ 'Update' => 'Обнови',
+ 'Vendor Invoice ' => 'Фактура на доÑтавчик ',
+ 'Vendor not on file!' => 'ЛипÑва доÑтвчика в базата',
+ 'Warning!' => 'Внимание!',
+ 'Week(s)' => 'Седмица(и)',
+ 'Year' => 'Година',
+ 'Year(s)' => 'Година(и)',
+ 'Yes' => 'Да',
+ 'You are posting an existing transaction!' => 'Сигурен ли Ñте, че ще запазите този превод!',
+ 'You are printing and posting an existing transaction!' => 'Сигурен ли Ñте, че ще разпечатате и запазите този превод!',
+ 'You are printing and saving an existing order' => 'Сигурен ли Ñте, че ще разпечатате и запазите този превод!',
+ 'You are printing and saving an existing quotation' => 'Сигурен ли Ñте, че ще разпечатате и запазите тази резервациÑ!',
+ 'You are saving an existing order' => 'Сигурен ли Ñте, че ще запазите тази поръчка!',
+ 'You are saving an existing quotation' => 'Сигурен ли Ñте, че ще запазите тази резервациÑ',
+ 'for' => 'за',
+ 'sent' => 'изпрати',
+ 'time(s)' => 'път(и)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'Превод_продажба' => 'ap_transaction',
+ 'Превод_покупка' => 'ar_transaction',
+ 'Продължение' => 'continue',
+ 'ИзÑтрии' => 'delete',
+ 'Изтрии_задачата' => 'delete_schedule',
+ 'Главна_книга_на_преводи' => 'gl_transaction',
+ 'Запази' => 'post',
+ 'Запази_като_нов' => 'post_as_new',
+ 'Фактура_продажби_' => 'sales_invoice_',
+ 'Запази_разпиÑание' => 'save_schedule',
+ 'РазпиÑание' => 'schedule',
+ 'Обнови' => 'update',
+ 'Фактура_на_доÑтавчик_' => 'vendor_invoice_',
+ 'Да' => 'yes',
+};
+
+1;
+
diff --git a/locale/bg_utf/hr b/locale/bg_utf/hr
new file mode 100755
index 00000000..9c25ddc9
--- /dev/null
+++ b/locale/bg_utf/hr
@@ -0,0 +1,122 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP' => 'Продажби',
+ 'Above' => 'По-горе',
+ 'Accounting Menu' => 'Меню Сметкоплан',
+ 'Active' => 'Ðктив',
+ 'Add Deduction' => 'Добави удръжка',
+ 'Add Employee' => 'Добави Ñътрудник',
+ 'Address' => 'ÐдреÑ',
+ 'Administrator' => 'ÐдминиÑтратор',
+ 'After Deduction' => 'След приÑпадане',
+ 'All' => 'Ð’Ñичко',
+ 'Allowances' => 'Разрешителни',
+ 'Amount' => 'Сума',
+ 'Amount missing!' => 'ЛипÑва Ñума!',
+ 'BIC' => 'BIC',
+ 'Based on' => 'ОÑноващо Ñе на',
+ 'Before Deduction' => 'Преди приÑпадане',
+ 'Below' => 'По-долу',
+ 'City' => 'Град',
+ 'Continue' => 'Продължение',
+ 'Country' => 'Държава',
+ 'DOB' => 'Дата на раждане',
+ 'Deduct after' => 'След приÑпадане',
+ 'Deduction deleted!' => 'Удръжката е изтрита!',
+ 'Deduction saved!' => 'Удръжката е запазена!',
+ 'Deductions' => 'Удръжки',
+ 'Delete' => 'ИзÑтрии',
+ 'Description' => 'ОбÑÑнение',
+ 'Description missing!' => 'ЛипÑва подпиÑ!',
+ 'E-mail' => 'Ел.адреÑ',
+ 'Edit Deduction' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° удръжки',
+ 'Edit Employee' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° Ñътрудник',
+ 'Employee' => 'Сътрудник',
+ 'Employee Name' => 'Име на Ñътрудник',
+ 'Employee Number' => 'Сътрудник номер',
+ 'Employee deleted!' => 'Сътрудника е изтрит!',
+ 'Employee pays' => 'Възнаграждение на Ñътрудник',
+ 'Employee saved!' => 'Сътрудника е запазен!',
+ 'Employees' => 'Сътрудници',
+ 'Employer' => 'Ръботодател',
+ 'Employer pays' => 'ВедомоÑти ÑÑŠÑ Ð·Ð°Ð¿Ð»Ð°Ñ‚Ð¸ на работодателÑ',
+ 'Enddate' => 'Крайна дата',
+ 'Exempt age <' => 'ВъзраÑÑ‚ <',
+ 'Expense' => 'Разход',
+ 'From' => 'От',
+ 'Home Phone' => 'Домашен телефон',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'Код',
+ 'Inactive' => 'Ðеизползваем',
+ 'Include in Report' => 'Включен в Ñправката',
+ 'Login' => 'Влизане',
+ 'Manager' => 'Ръководител',
+ 'Maximum' => 'МакÑимален',
+ 'Name' => 'Име',
+ 'Name missing!' => 'ЛипÑва име!',
+ 'Notes' => 'Забележка',
+ 'Number' => 'Ðомер',
+ 'Orphaned' => 'Без движение',
+ 'Payroll Deduction' => 'Удръжки по ведомоÑÑ‚',
+ 'Pos' => 'POS',
+ 'Rate' => 'КурÑ',
+ 'Rate missing!' => 'ЛипÑва курÑ!',
+ 'Role' => 'РолÑ',
+ 'S' => 'S',
+ 'SSN' => 'SSN',
+ 'Sales' => 'Продажби',
+ 'Save' => 'Запази',
+ 'Save as new' => 'Запази като нов',
+ 'Startdate' => 'Ðачална дата',
+ 'State/Province' => 'Окръг/ОблаÑÑ‚',
+ 'Supervisor' => 'Главен админиÑтратор',
+ 'To' => 'за',
+ 'Update' => 'Обнови',
+ 'User' => 'потребител',
+ 'Work Phone' => 'Служебен телефон',
+ 'Zip/Postal Code' => 'ПК',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'Добави_удръжка' => 'add_deduction',
+ 'Добави_Ñътрудник' => 'add_employee',
+ 'Продължение' => 'continue',
+ 'ИзÑтрии' => 'delete',
+ 'Запази' => 'save',
+ 'Запази_като_нов' => 'save_as_new',
+ 'Обнови' => 'update',
+};
+
+1;
+
diff --git a/locale/bg_utf/ic b/locale/bg_utf/ic
new file mode 100755
index 00000000..c0b91fb2
--- /dev/null
+++ b/locale/bg_utf/ic
@@ -0,0 +1,303 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'A' => 'Ð',
+ 'Accounting Menu' => 'Меню Сметкоплан',
+ 'Accounts' => 'Сметки',
+ 'Accrual' => 'Ðатрупване',
+ 'Active' => 'Ðктив',
+ 'Add' => 'Добави',
+ 'Add Assembly' => 'Добави комплект',
+ 'Add Labor/Overhead' => 'Добави Разработка/Текущи разходи',
+ 'Add Part' => 'Добави позициÑ',
+ 'Add Purchase Order' => 'Добави платежно нареждане',
+ 'Add Quotation' => 'Добави заÑвка',
+ 'Add Request for Quotation' => 'Добави запитване за заÑвка',
+ 'Add Sales Order' => 'Добави поръчка продажби',
+ 'Add Service' => 'Добави уÑлуга',
+ 'Address' => 'ÐдреÑ',
+ 'Apr' => 'Ðпр',
+ 'April' => 'Ðприл',
+ 'Assemblies' => 'Комплекти',
+ 'Assemblies restocked!' => 'Завършен комплект!',
+ 'Assembly' => 'Комплект',
+ 'Attachment' => 'Прикрепен',
+ 'Aug' => 'Ðвг',
+ 'August' => 'ÐвгуÑÑ‚',
+ 'Average Cost' => 'Средно-претеглена цена',
+ 'Avg Cost' => 'Ср. цена',
+ 'BOM' => 'ВедомоÑÑ‚ материали',
+ 'Bcc' => 'БÑÑ',
+ 'Billing Address' => 'ÐÐ´Ñ€ÐµÑ Ð·Ð° получаване на Ñметката',
+ 'Bin' => 'Пакет',
+ 'Bin List' => 'СпиÑък на пакет',
+ 'Break' => 'ПрекъÑване',
+ 'COGS' => 'COGS',
+ 'COGS account does not exist!' => 'ЛипÑва Ñметка за реализирана Ñтока!',
+ 'Cannot create Assembly' => 'Ðе е възможно Ñъздаване на окомлектовка',
+ 'Cannot create Labor' => 'Ðе е възможно Ñъздаване на работа',
+ 'Cannot create Part' => 'Ðе е възможно Ñъздаване на позициÑ',
+ 'Cannot create Service' => 'Ðе е възможно Ñъздаване на уÑлуга',
+ 'Cannot delete item!' => 'Ðе е възможно изтриване на елемент!',
+ 'Cannot stock assemblies!' => 'Ðе е възможно да Ñе окомлектова!',
+ 'Cash' => 'В брой',
+ 'Cc' => 'СÑ',
+ 'Check Inventory' => 'Провери инвентара',
+ 'City' => 'Град',
+ 'Closed' => 'Затворено',
+ 'Company Name' => 'Име на фирма',
+ 'Components' => 'Елементи',
+ 'Contact' => 'Лице за контакт',
+ 'Continue' => 'Продължение',
+ 'Copies' => 'Копие',
+ 'Cost' => 'Цена',
+ 'Country' => 'Държава',
+ 'Curr' => 'Валута',
+ 'Currency' => 'Валута',
+ 'Customer' => 'Клиент',
+ 'Customer Number' => 'Клиент номер',
+ 'Customer not on file!' => 'ЛипÑва клиента в базите!',
+ 'Date' => 'Дата',
+ 'Dec' => 'Дек',
+ 'December' => 'Декември',
+ 'Delete' => 'ИзÑтрии',
+ 'Delivery Date' => 'Дата на доÑтавка',
+ 'Description' => 'ОбÑÑнение',
+ 'Detail' => 'Детаилен',
+ 'Drawing' => 'ИзриÑуване',
+ 'E-mail' => 'Ел.адреÑ',
+ 'E-mail address missing!' => 'ЛипÑва Ел.адреÑ!',
+ 'E-mailed' => 'Изпратено ел.Ñъобщение',
+ 'Edit Assembly' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° окомплектовка',
+ 'Edit Labor/Overhead' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° работа/натрупани разходи',
+ 'Edit Part' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° позициÑ',
+ 'Edit Service' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° уÑлуга',
+ 'Employee' => 'Сътрудник',
+ 'Expense' => 'Разход',
+ 'Expense account does not exist!' => 'ЛипÑва разходна Ñметка!',
+ 'Extended' => 'Обобщен',
+ 'Fax' => 'ФакÑ',
+ 'Feb' => 'Фев',
+ 'February' => 'Февруари',
+ 'From' => 'От',
+ 'Group' => 'Група',
+ 'Image' => 'Изображение',
+ 'In-line' => 'Включен',
+ 'Include in Report' => 'Включен в Ñправката',
+ 'Income' => 'Приходи',
+ 'Income account does not exist!' => 'ЛипÑва приходна Ñметка!',
+ 'Individual Items' => 'Еденичен елемент',
+ 'Inventory' => 'Инвентар',
+ 'Inventory account does not exist!' => 'ЛипÑва инвентарна Ñметка!',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Преди бракуване на окомплектовка е необходимо количеÑтвото му да е нула!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Преди бракуване на Ð¿Ð¾Ð·Ð¸Ñ†Ð¸Ñ Ðµ необходимо количеÑтвото и да е нула!',
+ 'Invoice' => 'Фактура',
+ 'Invoice Date missing!' => 'ПопуÑната дата на фактурата',
+ 'Invoice Number' => 'Фактура номер',
+ 'Invoice Number missing!' => 'ЛипÑва номер на фактура!',
+ 'Item' => 'Елемент',
+ 'Item deleted!' => 'Елемента е изтрит!',
+ 'Item not on file!' => 'Елемента липÑва в базата!',
+ 'Items' => 'Елементи',
+ 'Jan' => 'Яну',
+ 'January' => 'Януари',
+ 'Jul' => 'Юли',
+ 'July' => 'Юли',
+ 'Jun' => 'Юни',
+ 'June' => 'Юни',
+ 'Labor/Overhead' => 'Текущи разходи',
+ 'Last Cost' => 'ПоÑледна цена',
+ 'Leadtime' => 'ОÑновно време',
+ 'Line Total' => 'Сборна линиÑ',
+ 'Link Accounts' => 'Връзка ÑÑŠÑ Ñметки',
+ 'List' => 'СпиÑък',
+ 'List Price' => 'ЦеноразпиÑ',
+ 'Make' => 'Изработи',
+ 'Mar' => 'Мар',
+ 'March' => 'Март',
+ 'Markup' => 'Ðадценка',
+ 'May' => 'Май',
+ 'May ' => 'Май',
+ 'Message' => 'Съобщение',
+ 'Microfiche' => 'Микрофиш',
+ 'Model' => 'Модел',
+ 'Name' => 'Име',
+ 'No History!' => 'Без иÑториÑ!',
+ 'No.' => 'Ðо.',
+ 'Notes' => 'Забележка',
+ 'Nov' => 'Ðое',
+ 'November' => 'Ðоември',
+ 'Number' => 'Ðомер',
+ 'Number missing in Row' => 'липÑва номер на ред!',
+ 'OH' => 'OH',
+ 'Obsolete' => 'ОÑтарÑл',
+ 'Oct' => 'Окт',
+ 'October' => 'Октомври',
+ 'On Hand' => 'Ðа ръка',
+ 'Onhand' => 'Ðа ръка',
+ 'Open' => 'Отворен',
+ 'Order' => 'Поръчка',
+ 'Order Date missing!' => 'ЛипÑва дата на поръчката!',
+ 'Order Number' => 'Поръчка номер',
+ 'Order Number missing!' => 'ЛипÑва номер на поръчката!',
+ 'Orphaned' => 'Без движение',
+ 'PDF' => 'PDF',
+ 'PO' => 'PO',
+ 'Packing List' => 'Опъковачен лиÑÑ‚',
+ 'Packing List Date missing!' => 'ЛипÑва дата на Ð¾Ð¿Ð°ÐºÐ¾Ð²ÑŠÑ‡Ð½Ð¸Ñ Ð»Ð¸ÑÑ‚!',
+ 'Packing List Number missing!' => 'ЛипÑва номер на Ð¾Ð¿Ð°ÐºÐ¾Ð²ÑŠÑ‡Ð½Ð¸Ñ Ð»Ð¸ÑÑ‚!',
+ 'Part' => 'ПозициÑ',
+ 'Parts' => 'Детайли',
+ 'Parts Requirements' => 'ЛипÑващи позиции',
+ 'Period' => 'Период',
+ 'Phone' => 'Телефон',
+ 'Pick List' => 'Товарителница',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Цена',
+ 'Pricegroup' => 'Ценова група',
+ 'Printed' => 'Разпечатано',
+ 'Project' => 'Проект',
+ 'Purchase Order' => 'Платежно нареждане',
+ 'Purchase Orders' => 'Платежни нарежданиÑ',
+ 'Qty' => 'К-во',
+ 'Quantity exceeds available units to stock!' => 'Превишено е количеÑтвото в пакет!',
+ 'Queue' => 'Задание',
+ 'Queued' => 'Изпълнено заданието',
+ 'Quotation' => 'Запазена форма',
+ 'Quotation Date missing!' => 'ЛипÑва дата на заданието!',
+ 'Quotation Number missing!' => 'ЛипÑва номер на заданието!',
+ 'Quotations' => 'Запазени форми',
+ 'RFQ' => 'РезервациÑ',
+ 'ROP' => 'ROP',
+ 'Recd' => 'ЗапиÑ',
+ 'Required by' => 'Ðеобходим е за',
+ 'SKU' => 'SKU',
+ 'SO' => 'SO',
+ 'Sales Invoice' => 'Фактура продажба',
+ 'Sales Invoices' => 'Фактури прдажби',
+ 'Sales Order' => 'Поръчка продажба',
+ 'Sales Orders' => 'Поръчки продажби',
+ 'Save' => 'Запази',
+ 'Save as new' => 'Запази като нов',
+ 'Scheduled' => 'Зададено разпиÑание',
+ 'Screen' => 'Екран',
+ 'Select from one of the names below' => 'Избери едно от имената поÑочени по-долу',
+ 'Select items' => 'Избери елемент',
+ 'Select txt, postscript or PDF!' => 'Избери txt, postscrip или PDF!',
+ 'Sell' => 'Продажба',
+ 'Sell Price' => 'Продажна цена',
+ 'Sep' => 'Сеп',
+ 'September' => 'Септември',
+ 'Serial No.' => 'Сериен номер',
+ 'Serial Number' => 'Сериен номер',
+ 'Service' => 'УÑлуга',
+ 'Services' => 'УÑлуги',
+ 'Ship' => 'ДоÑтавка',
+ 'Ship to' => 'ДоÑтавка до',
+ 'Shipping Address' => 'ÐÐ´Ñ€ÐµÑ Ð½Ð° доÑтавка',
+ 'Short' => 'КъÑ',
+ 'State/Province' => 'Окръг/ОблаÑÑ‚',
+ 'Stock' => 'Стока',
+ 'Stock Assembly' => 'Изграждане на окомплектовка',
+ 'Subject' => 'Тема',
+ 'Subtotal' => 'Междинен Ñбор',
+ 'Summary' => 'Сумарно',
+ 'Tax' => 'Данък',
+ 'Text' => 'ТекÑÑ‚',
+ 'To' => 'за',
+ 'Top Level' => 'Вишше ниво',
+ 'Translation not on file!' => 'Превода не е в базата!',
+ 'Unit' => 'Единица',
+ 'Update' => 'Обнови',
+ 'Updated' => 'Обновен',
+ 'Vendor' => 'ДоÑтавчик',
+ 'Vendor Invoice' => 'Фактура за доÑтавка',
+ 'Vendor Invoices' => 'Фактури за доÑтавки',
+ 'Vendor Number' => 'ДоÑтавчик номер',
+ 'Vendor not on file!' => 'ЛипÑва доÑтвчика в базата',
+ 'Warehouse' => 'Склад',
+ 'Weight' => 'Тегло',
+ 'What type of item is this?' => 'Какъв тип е тази номенклатура?',
+ 'Work Order' => 'Работна поръчка',
+ 'Year' => 'Година',
+ 'Zip/Postal Code' => 'ПК',
+ 'days' => 'дни',
+ 'sent' => 'изпрати',
+ 'unexpected error!' => 'ÐеобÑÑнима грешка!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'Добави_комплект' => 'add_assembly',
+ 'Добави_Разработка_Текущи_разходи' => 'add_labor_overhead',
+ 'Добави_позициÑ' => 'add_part',
+ 'Добави_уÑлуга' => 'add_service',
+ 'Продължение' => 'continue',
+ 'ИзÑтрии' => 'delete',
+ 'РедакциÑ_на_окомплектовка' => 'edit_assembly',
+ 'РедакциÑ_на_позициÑ' => 'edit_part',
+ 'РедакциÑ_на_уÑлуга' => 'edit_service',
+ 'Запази' => 'save',
+ 'Запази_като_нов' => 'save_as_new',
+ 'Обнови' => 'update',
+};
+
+1;
+
diff --git a/locale/bg_utf/io b/locale/bg_utf/io
new file mode 100755
index 00000000..1a60b42a
--- /dev/null
+++ b/locale/bg_utf/io
@@ -0,0 +1,139 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Add Purchase Order' => 'Добави платежно нареждане',
+ 'Add Quotation' => 'Добави заÑвка',
+ 'Add Request for Quotation' => 'Добави запитване за заÑвка',
+ 'Add Sales Order' => 'Добави поръчка продажби',
+ 'Address' => 'ÐдреÑ',
+ 'Apr' => 'Ðпр',
+ 'April' => 'Ðприл',
+ 'Attachment' => 'Прикрепен',
+ 'Aug' => 'Ðвг',
+ 'August' => 'ÐвгуÑÑ‚',
+ 'Bcc' => 'БÑÑ',
+ 'Billing Address' => 'ÐÐ´Ñ€ÐµÑ Ð·Ð° получаване на Ñметката',
+ 'Bin' => 'Пакет',
+ 'Bin List' => 'СпиÑък на пакет',
+ 'Cc' => 'СÑ',
+ 'City' => 'Град',
+ 'Company Name' => 'Име на фирма',
+ 'Contact' => 'Лице за контакт',
+ 'Continue' => 'Продължение',
+ 'Copies' => 'Копие',
+ 'Country' => 'Държава',
+ 'Customer Number' => 'Клиент номер',
+ 'Date' => 'Дата',
+ 'Dec' => 'Дек',
+ 'December' => 'Декември',
+ 'Delivery Date' => 'Дата на доÑтавка',
+ 'Description' => 'ОбÑÑнение',
+ 'E-mail' => 'Ел.адреÑ',
+ 'E-mail address missing!' => 'ЛипÑва Ел.адреÑ!',
+ 'E-mailed' => 'Изпратено ел.Ñъобщение',
+ 'Extended' => 'Обобщен',
+ 'Fax' => 'ФакÑ',
+ 'Feb' => 'Фев',
+ 'February' => 'Февруари',
+ 'Group' => 'Група',
+ 'In-line' => 'Включен',
+ 'Invoice' => 'Фактура',
+ 'Invoice Date missing!' => 'ПопуÑната дата на фактурата',
+ 'Invoice Number missing!' => 'ЛипÑва номер на фактура!',
+ 'Item' => 'Елемент',
+ 'Item not on file!' => 'Елемента липÑва в базата!',
+ 'Jan' => 'Яну',
+ 'January' => 'Януари',
+ 'Jul' => 'Юли',
+ 'July' => 'Юли',
+ 'Jun' => 'Юни',
+ 'June' => 'Юни',
+ 'Mar' => 'Мар',
+ 'March' => 'Март',
+ 'May' => 'Май',
+ 'May ' => 'Май',
+ 'Message' => 'Съобщение',
+ 'Nov' => 'Ðое',
+ 'November' => 'Ðоември',
+ 'Number' => 'Ðомер',
+ 'Number missing in Row' => 'липÑва номер на ред!',
+ 'OH' => 'OH',
+ 'Oct' => 'Окт',
+ 'October' => 'Октомври',
+ 'Order Date missing!' => 'ЛипÑва дата на поръчката!',
+ 'Order Number missing!' => 'ЛипÑва номер на поръчката!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Опъковачен лиÑÑ‚',
+ 'Packing List Date missing!' => 'ЛипÑва дата на Ð¾Ð¿Ð°ÐºÐ¾Ð²ÑŠÑ‡Ð½Ð¸Ñ Ð»Ð¸ÑÑ‚!',
+ 'Packing List Number missing!' => 'ЛипÑва номер на Ð¾Ð¿Ð°ÐºÐ¾Ð²ÑŠÑ‡Ð½Ð¸Ñ Ð»Ð¸ÑÑ‚!',
+ 'Part' => 'ПозициÑ',
+ 'Phone' => 'Телефон',
+ 'Pick List' => 'Товарителница',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Цена',
+ 'Printed' => 'Разпечатано',
+ 'Project' => 'Проект',
+ 'Purchase Order' => 'Платежно нареждане',
+ 'Qty' => 'К-во',
+ 'Queue' => 'Задание',
+ 'Queued' => 'Изпълнено заданието',
+ 'Quotation' => 'Запазена форма',
+ 'Quotation Date missing!' => 'ЛипÑва дата на заданието!',
+ 'Quotation Number missing!' => 'ЛипÑва номер на заданието!',
+ 'Recd' => 'ЗапиÑ',
+ 'Required by' => 'Ðеобходим е за',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Поръчка продажба',
+ 'Scheduled' => 'Зададено разпиÑание',
+ 'Screen' => 'Екран',
+ 'Select items' => 'Избери елемент',
+ 'Select txt, postscript or PDF!' => 'Избери txt, postscrip или PDF!',
+ 'Sep' => 'Сеп',
+ 'September' => 'Септември',
+ 'Serial No.' => 'Сериен номер',
+ 'Service' => 'УÑлуга',
+ 'Ship' => 'ДоÑтавка',
+ 'Ship to' => 'ДоÑтавка до',
+ 'Shipping Address' => 'ÐÐ´Ñ€ÐµÑ Ð½Ð° доÑтавка',
+ 'State/Province' => 'Окръг/ОблаÑÑ‚',
+ 'Subject' => 'Тема',
+ 'Subtotal' => 'Междинен Ñбор',
+ 'Text' => 'ТекÑÑ‚',
+ 'To' => 'за',
+ 'Translation not on file!' => 'Превода не е в базата!',
+ 'Unit' => 'Единица',
+ 'Vendor Number' => 'ДоÑтавчик номер',
+ 'What type of item is this?' => 'Какъв тип е тази номенклатура?',
+ 'Work Order' => 'Работна поръчка',
+ 'Zip/Postal Code' => 'ПК',
+ 'sent' => 'изпрати',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'Продължение' => 'continue',
+};
+
+1;
+
diff --git a/locale/bg_utf/ir b/locale/bg_utf/ir
new file mode 100755
index 00000000..0764b287
--- /dev/null
+++ b/locale/bg_utf/ir
@@ -0,0 +1,259 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'Сметка',
+ 'Accounting Menu' => 'Меню Сметкоплан',
+ 'Add Purchase Order' => 'Добави платежно нареждане',
+ 'Add Quotation' => 'Добави заÑвка',
+ 'Add Request for Quotation' => 'Добави запитване за заÑвка',
+ 'Add Sales Order' => 'Добави поръчка продажби',
+ 'Add Vendor Invoice' => 'Добави фактура за доÑтавка',
+ 'Address' => 'ÐдреÑ',
+ 'Amount' => 'Сума',
+ 'Apr' => 'Ðпр',
+ 'April' => 'Ðприл',
+ 'Are you sure you want to delete Invoice Number' => 'Сигурен ли Ñте, че изтриете този момер фактура?',
+ 'Attachment' => 'Прикрепен',
+ 'Aug' => 'Ðвг',
+ 'August' => 'ÐвгуÑÑ‚',
+ 'Bcc' => 'БÑÑ',
+ 'Billing Address' => 'ÐÐ´Ñ€ÐµÑ Ð·Ð° получаване на Ñметката',
+ 'Bin' => 'Пакет',
+ 'Bin List' => 'СпиÑък на пакет',
+ 'Cannot delete invoice!' => 'Ðе възможно иÑтриване на фактура!',
+ 'Cannot post invoice for a closed period!' => 'Ðе е възможно запазване на фактура в приключен период!',
+ 'Cannot post invoice!' => 'Ðе е възможно запазване на фактурата!',
+ 'Cannot post payment for a closed period!' => 'Ðе мога да извърша плащане за закрит период!',
+ 'Cc' => 'СÑ',
+ 'City' => 'Град',
+ 'Company Name' => 'Име на фирма',
+ 'Confirm!' => 'СъглаÑие!',
+ 'Contact' => 'Лице за контакт',
+ 'Continue' => 'Продължение',
+ 'Copies' => 'Копие',
+ 'Country' => 'Държава',
+ 'Credit Limit' => 'Кредитен лимит',
+ 'Currency' => 'Валута',
+ 'Customer Number' => 'Клиент номер',
+ 'Customer not on file!' => 'ЛипÑва клиента в базите!',
+ 'Date' => 'Дата',
+ 'Day(s)' => 'Ден(дни)',
+ 'Dec' => 'Дек',
+ 'December' => 'Декември',
+ 'Delete' => 'ИзÑтрии',
+ 'Delete Schedule' => 'Изтрии задачата',
+ 'Delivery Date' => 'Дата на доÑтавка',
+ 'Department' => 'Отдел',
+ 'Description' => 'ОбÑÑнение',
+ 'Due Date' => 'Платете до',
+ 'E-mail' => 'Ел.адреÑ',
+ 'E-mail address missing!' => 'ЛипÑва Ел.адреÑ!',
+ 'E-mail message' => 'Ел.Ñъобщение',
+ 'E-mailed' => 'Изпратено ел.Ñъобщение',
+ 'Edit Vendor Invoice' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° фактура доÑтавки',
+ 'Every' => 'Винаги',
+ 'Exch' => 'КурÑ',
+ 'Exchange Rate' => 'Валутен курÑ',
+ 'Exchange rate for payment missing!' => 'Валутен ÐºÑƒÑ€Ñ Ð·Ð° пропуÑнато плащане',
+ 'Exchange rate missing!' => 'ПропуÑнат валутен курÑ',
+ 'Extended' => 'Обобщен',
+ 'Fax' => 'ФакÑ',
+ 'Feb' => 'Фев',
+ 'February' => 'Февруари',
+ 'For' => 'За',
+ 'Group' => 'Група',
+ 'In-line' => 'Включен',
+ 'Include Payment' => 'Включено плащане',
+ 'Internal Notes' => 'Вътрешни бележки',
+ 'Invoice' => 'Фактура',
+ 'Invoice Date' => 'Фактура дата',
+ 'Invoice Date missing!' => 'ПопуÑната дата на фактурата',
+ 'Invoice Number' => 'Фактура номер',
+ 'Invoice Number missing!' => 'ЛипÑва номер на фактура!',
+ 'Invoice deleted!' => 'Фактурата е изтрита!',
+ 'Item' => 'Елемент',
+ 'Item not on file!' => 'Елемента липÑва в базата!',
+ 'Jan' => 'Яну',
+ 'January' => 'Януари',
+ 'Jul' => 'Юли',
+ 'July' => 'Юли',
+ 'Jun' => 'Юни',
+ 'June' => 'Юни',
+ 'Language' => 'Език',
+ 'Mar' => 'Мар',
+ 'March' => 'Март',
+ 'May' => 'Май',
+ 'May ' => 'Май',
+ 'Memo' => 'Бележка',
+ 'Message' => 'Съобщение',
+ 'Month(s)' => 'МеÑеци',
+ 'Next Date' => 'Следваща дата',
+ 'Notes' => 'Забележка',
+ 'Nov' => 'Ðое',
+ 'November' => 'Ðоември',
+ 'Number' => 'Ðомер',
+ 'Number missing in Row' => 'липÑва номер на ред!',
+ 'OH' => 'OH',
+ 'Oct' => 'Окт',
+ 'October' => 'Октомври',
+ 'Order Date missing!' => 'ЛипÑва дата на поръчката!',
+ 'Order Number' => 'Поръчка номер',
+ 'Order Number missing!' => 'ЛипÑва номер на поръчката!',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Поръчка номер за покупка',
+ 'Packing List' => 'Опъковачен лиÑÑ‚',
+ 'Packing List Date missing!' => 'ЛипÑва дата на Ð¾Ð¿Ð°ÐºÐ¾Ð²ÑŠÑ‡Ð½Ð¸Ñ Ð»Ð¸ÑÑ‚!',
+ 'Packing List Number missing!' => 'ЛипÑва номер на Ð¾Ð¿Ð°ÐºÐ¾Ð²ÑŠÑ‡Ð½Ð¸Ñ Ð»Ð¸ÑÑ‚!',
+ 'Part' => 'ПозициÑ',
+ 'Payment date missing!' => 'ПропуÑната дата на плащане!',
+ 'Payments' => 'Плащане',
+ 'Phone' => 'Телефон',
+ 'Pick List' => 'Товарителница',
+ 'Post' => 'Запази',
+ 'Post as new' => 'Запази като нов',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Цена',
+ 'Print' => 'Печат',
+ 'Printed' => 'Разпечатано',
+ 'Project' => 'Проект',
+ 'Project not on file!' => 'Проекта липÑва в базите!',
+ 'Purchase Order' => 'Платежно нареждане',
+ 'Qty' => 'К-во',
+ 'Queue' => 'Задание',
+ 'Queued' => 'Изпълнено заданието',
+ 'Quotation' => 'Запазена форма',
+ 'Quotation Date missing!' => 'ЛипÑва дата на заданието!',
+ 'Quotation Number missing!' => 'ЛипÑва номер на заданието!',
+ 'Recd' => 'ЗапиÑ',
+ 'Record in' => 'Запази в',
+ 'Recurring Transaction' => 'ПовтарÑщи Ñе преводи',
+ 'Reference' => 'РеференциÑ',
+ 'Remaining' => 'ÐапомнÑне',
+ 'Repeat' => 'Повторение',
+ 'Required by' => 'Ðеобходим е за',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Поръчка продажба',
+ 'Save Schedule' => 'Запази разпиÑание',
+ 'Schedule' => 'РазпиÑание',
+ 'Scheduled' => 'Зададено разпиÑание',
+ 'Screen' => 'Екран',
+ 'Select from one of the names below' => 'Избери едно от имената поÑочени по-долу',
+ 'Select from one of the projects below' => 'Избери един от проектите поÑочени по-долу',
+ 'Select items' => 'Избери елемент',
+ 'Select txt, postscript or PDF!' => 'Избери txt, postscrip или PDF!',
+ 'Sep' => 'Сеп',
+ 'September' => 'Септември',
+ 'Serial No.' => 'Сериен номер',
+ 'Service' => 'УÑлуга',
+ 'Ship' => 'ДоÑтавка',
+ 'Ship to' => 'ДоÑтавка до',
+ 'Shipping Address' => 'ÐÐ´Ñ€ÐµÑ Ð½Ð° доÑтавка',
+ 'Source' => 'Първообраз',
+ 'Startdate' => 'Ðачална дата',
+ 'State/Province' => 'Окръг/ОблаÑÑ‚',
+ 'Subject' => 'Тема',
+ 'Subtotal' => 'Междинен Ñбор',
+ 'Tax Included' => 'Включен данък',
+ 'Text' => 'ТекÑÑ‚',
+ 'To' => 'за',
+ 'Total' => 'Ð’Ñичко',
+ 'Translation not on file!' => 'Превода не е в базата!',
+ 'Unit' => 'Единица',
+ 'Update' => 'Обнови',
+ 'Vendor' => 'ДоÑтавчик',
+ 'Vendor Number' => 'ДоÑтавчик номер',
+ 'Vendor missing!' => 'ЛипÑва доÑтавчик',
+ 'Vendor not on file!' => 'ЛипÑва доÑтвчика в базата',
+ 'Warning!' => 'Внимание!',
+ 'Week(s)' => 'Седмица(и)',
+ 'What type of item is this?' => 'Какъв тип е тази номенклатура?',
+ 'Work Order' => 'Работна поръчка',
+ 'Year(s)' => 'Година(и)',
+ 'Yes' => 'Да',
+ 'You are posting an existing transaction!' => 'Сигурен ли Ñте, че ще запазите този превод!',
+ 'You are printing and posting an existing transaction!' => 'Сигурен ли Ñте, че ще разпечатате и запазите този превод!',
+ 'You are printing and saving an existing order' => 'Сигурен ли Ñте, че ще разпечатате и запазите този превод!',
+ 'You are printing and saving an existing quotation' => 'Сигурен ли Ñте, че ще разпечатате и запазите тази резервациÑ!',
+ 'You are saving an existing order' => 'Сигурен ли Ñте, че ще запазите тази поръчка!',
+ 'You are saving an existing quotation' => 'Сигурен ли Ñте, че ще запазите тази резервациÑ',
+ 'Zip/Postal Code' => 'ПК',
+ 'ea' => 'бр.',
+ 'for' => 'за',
+ 'posted!' => 'запазен!',
+ 'sent' => 'изпрати',
+ 'time(s)' => 'път(и)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'Продължение' => 'continue',
+ 'ИзÑтрии' => 'delete',
+ 'Изтрии_задачата' => 'delete_schedule',
+ 'Запази' => 'post',
+ 'Запази_като_нов' => 'post_as_new',
+ 'Платежно_нареждане' => 'purchase_order',
+ 'Запази_разпиÑание' => 'save_schedule',
+ 'РазпиÑание' => 'schedule',
+ 'Обнови' => 'update',
+ 'Да' => 'yes',
+};
+
+1;
+
diff --git a/locale/bg_utf/is b/locale/bg_utf/is
new file mode 100755
index 00000000..496deebf
--- /dev/null
+++ b/locale/bg_utf/is
@@ -0,0 +1,273 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'Сметка',
+ 'Accounting Menu' => 'Меню Сметкоплан',
+ 'Add Purchase Order' => 'Добави платежно нареждане',
+ 'Add Quotation' => 'Добави заÑвка',
+ 'Add Request for Quotation' => 'Добави запитване за заÑвка',
+ 'Add Sales Invoice' => 'Добави фактура продажби',
+ 'Add Sales Order' => 'Добави поръчка продажби',
+ 'Address' => 'ÐдреÑ',
+ 'Amount' => 'Сума',
+ 'Apr' => 'Ðпр',
+ 'April' => 'Ðприл',
+ 'Are you sure you want to delete Invoice Number' => 'Сигурен ли Ñте, че изтриете този момер фактура?',
+ 'Attachment' => 'Прикрепен',
+ 'Aug' => 'Ðвг',
+ 'August' => 'ÐвгуÑÑ‚',
+ 'Bcc' => 'БÑÑ',
+ 'Billing Address' => 'ÐÐ´Ñ€ÐµÑ Ð·Ð° получаване на Ñметката',
+ 'Bin' => 'Пакет',
+ 'Bin List' => 'СпиÑък на пакет',
+ 'Business' => 'Ðаправление',
+ 'Cannot delete invoice!' => 'Ðе възможно иÑтриване на фактура!',
+ 'Cannot post invoice for a closed period!' => 'Ðе е възможно запазване на фактура в приключен период!',
+ 'Cannot post invoice!' => 'Ðе е възможно запазване на фактурата!',
+ 'Cannot post payment for a closed period!' => 'Ðе мога да извърша плащане за закрит период!',
+ 'Cc' => 'СÑ',
+ 'City' => 'Град',
+ 'Company Name' => 'Име на фирма',
+ 'Confirm!' => 'СъглаÑие!',
+ 'Contact' => 'Лице за контакт',
+ 'Continue' => 'Продължение',
+ 'Copies' => 'Копие',
+ 'Country' => 'Държава',
+ 'Credit Limit' => 'Кредитен лимит',
+ 'Currency' => 'Валута',
+ 'Customer' => 'Клиент',
+ 'Customer Number' => 'Клиент номер',
+ 'Customer missing!' => 'ПропуÑнат клиент!',
+ 'Customer not on file!' => 'ЛипÑва клиента в базите!',
+ 'Date' => 'Дата',
+ 'Day(s)' => 'Ден(дни)',
+ 'Dec' => 'Дек',
+ 'December' => 'Декември',
+ 'Delete' => 'ИзÑтрии',
+ 'Delete Schedule' => 'Изтрии задачата',
+ 'Delivery Date' => 'Дата на доÑтавка',
+ 'Department' => 'Отдел',
+ 'Description' => 'ОбÑÑнение',
+ 'Due Date' => 'Платете до',
+ 'E-mail' => 'Ел.адреÑ',
+ 'E-mail address missing!' => 'ЛипÑва Ел.адреÑ!',
+ 'E-mail message' => 'Ел.Ñъобщение',
+ 'E-mailed' => 'Изпратено ел.Ñъобщение',
+ 'Edit Sales Invoice' => 'Редактирай фактура за продажба',
+ 'Every' => 'Винаги',
+ 'Exch' => 'КурÑ',
+ 'Exchange Rate' => 'Валутен курÑ',
+ 'Exchange rate for payment missing!' => 'Валутен ÐºÑƒÑ€Ñ Ð·Ð° пропуÑнато плащане',
+ 'Exchange rate missing!' => 'ПропуÑнат валутен курÑ',
+ 'Extended' => 'Обобщен',
+ 'Fax' => 'ФакÑ',
+ 'Feb' => 'Фев',
+ 'February' => 'Февруари',
+ 'For' => 'За',
+ 'Group' => 'Група',
+ 'In-line' => 'Включен',
+ 'Include Payment' => 'Включено плащане',
+ 'Internal Notes' => 'Вътрешни бележки',
+ 'Invoice' => 'Фактура',
+ 'Invoice Date' => 'Фактура дата',
+ 'Invoice Date missing!' => 'ПопуÑната дата на фактурата',
+ 'Invoice Number' => 'Фактура номер',
+ 'Invoice Number missing!' => 'ЛипÑва номер на фактура!',
+ 'Invoice deleted!' => 'Фактурата е изтрита!',
+ 'Item' => 'Елемент',
+ 'Item not on file!' => 'Елемента липÑва в базата!',
+ 'Jan' => 'Яну',
+ 'January' => 'Януари',
+ 'Jul' => 'Юли',
+ 'July' => 'Юли',
+ 'Jun' => 'Юни',
+ 'June' => 'Юни',
+ 'Mar' => 'Мар',
+ 'March' => 'Март',
+ 'May' => 'Май',
+ 'May ' => 'Май',
+ 'Memo' => 'Бележка',
+ 'Message' => 'Съобщение',
+ 'Month(s)' => 'МеÑеци',
+ 'Next Date' => 'Следваща дата',
+ 'Notes' => 'Забележка',
+ 'Nov' => 'Ðое',
+ 'November' => 'Ðоември',
+ 'Number' => 'Ðомер',
+ 'Number missing in Row' => 'липÑва номер на ред!',
+ 'OH' => 'OH',
+ 'Oct' => 'Окт',
+ 'October' => 'Октомври',
+ 'Order Date missing!' => 'ЛипÑва дата на поръчката!',
+ 'Order Number' => 'Поръчка номер',
+ 'Order Number missing!' => 'ЛипÑва номер на поръчката!',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Поръчка номер за покупка',
+ 'Packing List' => 'Опъковачен лиÑÑ‚',
+ 'Packing List Date missing!' => 'ЛипÑва дата на Ð¾Ð¿Ð°ÐºÐ¾Ð²ÑŠÑ‡Ð½Ð¸Ñ Ð»Ð¸ÑÑ‚!',
+ 'Packing List Number missing!' => 'ЛипÑва номер на Ð¾Ð¿Ð°ÐºÐ¾Ð²ÑŠÑ‡Ð½Ð¸Ñ Ð»Ð¸ÑÑ‚!',
+ 'Part' => 'ПозициÑ',
+ 'Payment date missing!' => 'ПропуÑната дата на плащане!',
+ 'Payments' => 'Плащане',
+ 'Phone' => 'Телефон',
+ 'Pick List' => 'Товарителница',
+ 'Post' => 'Запази',
+ 'Post as new' => 'Запази като нов',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Цена',
+ 'Print' => 'Печат',
+ 'Print and Post' => 'Разпечатай и запази',
+ 'Print and Post as new' => 'Разпечатай и запази като нов',
+ 'Printed' => 'Разпечатано',
+ 'Project' => 'Проект',
+ 'Project not on file!' => 'Проекта липÑва в базите!',
+ 'Purchase Order' => 'Платежно нареждане',
+ 'Qty' => 'К-во',
+ 'Queue' => 'Задание',
+ 'Queued' => 'Изпълнено заданието',
+ 'Quotation' => 'Запазена форма',
+ 'Quotation Date missing!' => 'ЛипÑва дата на заданието!',
+ 'Quotation Number missing!' => 'ЛипÑва номер на заданието!',
+ 'Recd' => 'ЗапиÑ',
+ 'Record in' => 'Запази в',
+ 'Recurring Transaction' => 'ПовтарÑщи Ñе преводи',
+ 'Reference' => 'РеференциÑ',
+ 'Remaining' => 'ÐапомнÑне',
+ 'Repeat' => 'Повторение',
+ 'Required by' => 'Ðеобходим е за',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Поръчка продажба',
+ 'Salesperson' => 'Продавач',
+ 'Save Schedule' => 'Запази разпиÑание',
+ 'Schedule' => 'РазпиÑание',
+ 'Scheduled' => 'Зададено разпиÑание',
+ 'Screen' => 'Екран',
+ 'Select a Printer!' => 'Избери принтер!',
+ 'Select from one of the names below' => 'Избери едно от имената поÑочени по-долу',
+ 'Select from one of the projects below' => 'Избери един от проектите поÑочени по-долу',
+ 'Select items' => 'Избери елемент',
+ 'Select postscript or PDF!' => 'Избери postscript или PDF!',
+ 'Select txt, postscript or PDF!' => 'Избери txt, postscrip или PDF!',
+ 'Sep' => 'Сеп',
+ 'September' => 'Септември',
+ 'Serial No.' => 'Сериен номер',
+ 'Service' => 'УÑлуга',
+ 'Ship' => 'ДоÑтавка',
+ 'Ship to' => 'ДоÑтавка до',
+ 'Ship via' => 'ДоÑтавка ÑÑŠÑ',
+ 'Shipping Address' => 'ÐÐ´Ñ€ÐµÑ Ð½Ð° доÑтавка',
+ 'Shipping Point' => 'МеÑтоназначение',
+ 'Source' => 'Първообраз',
+ 'Startdate' => 'Ðачална дата',
+ 'State/Province' => 'Окръг/ОблаÑÑ‚',
+ 'Subject' => 'Тема',
+ 'Subtotal' => 'Междинен Ñбор',
+ 'Tax Included' => 'Включен данък',
+ 'Text' => 'ТекÑÑ‚',
+ 'To' => 'за',
+ 'Total' => 'Ð’Ñичко',
+ 'Trade Discount' => 'ТърговÑка оÑтъпка',
+ 'Translation not on file!' => 'Превода не е в базата!',
+ 'Unit' => 'Единица',
+ 'Update' => 'Обнови',
+ 'Vendor Number' => 'ДоÑтавчик номер',
+ 'Vendor not on file!' => 'ЛипÑва доÑтвчика в базата',
+ 'Warning!' => 'Внимание!',
+ 'Week(s)' => 'Седмица(и)',
+ 'What type of item is this?' => 'Какъв тип е тази номенклатура?',
+ 'Work Order' => 'Работна поръчка',
+ 'Year(s)' => 'Година(и)',
+ 'Yes' => 'Да',
+ 'You are posting an existing transaction!' => 'Сигурен ли Ñте, че ще запазите този превод!',
+ 'You are printing and posting an existing transaction!' => 'Сигурен ли Ñте, че ще разпечатате и запазите този превод!',
+ 'You are printing and saving an existing order' => 'Сигурен ли Ñте, че ще разпечатате и запазите този превод!',
+ 'You are printing and saving an existing quotation' => 'Сигурен ли Ñте, че ще разпечатате и запазите тази резервациÑ!',
+ 'You are saving an existing order' => 'Сигурен ли Ñте, че ще запазите тази поръчка!',
+ 'You are saving an existing quotation' => 'Сигурен ли Ñте, че ще запазите тази резервациÑ',
+ 'Zip/Postal Code' => 'ПК',
+ 'ea' => 'бр.',
+ 'for' => 'за',
+ 'posted!' => 'запазен!',
+ 'sent' => 'изпрати',
+ 'time(s)' => 'път(и)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'Продължение' => 'continue',
+ 'ИзÑтрии' => 'delete',
+ 'Изтрии_задачата' => 'delete_schedule',
+ 'Ел.адреÑ' => 'e_mail',
+ 'Запази' => 'post',
+ 'Запази_като_нов' => 'post_as_new',
+ 'Печат' => 'print',
+ 'Разпечатай_и_запази' => 'print_and_post',
+ 'Разпечатай_и_запази_като_нов' => 'print_and_post_as_new',
+ 'Поръчка_продажба' => 'sales_order',
+ 'Запази_разпиÑание' => 'save_schedule',
+ 'РазпиÑание' => 'schedule',
+ 'ДоÑтавка_до' => 'ship_to',
+ 'Обнови' => 'update',
+ 'Да' => 'yes',
+};
+
+1;
+
diff --git a/locale/bg_utf/jc b/locale/bg_utf/jc
new file mode 100755
index 00000000..64491dca
--- /dev/null
+++ b/locale/bg_utf/jc
@@ -0,0 +1,106 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Меню Сметкоплан',
+ 'Add Time Card' => 'Добави работна карта',
+ 'Amount' => 'Сума',
+ 'Closed' => 'Затворено',
+ 'Confirm!' => 'СъглаÑие!',
+ 'Continue' => 'Продължение',
+ 'Cost' => 'Цена',
+ 'Current' => 'Текущ',
+ 'Date' => 'Дата',
+ 'Date missing!' => 'ЛипÑва дата!',
+ 'Delete' => 'ИзÑтрии',
+ 'Description' => 'ОбÑÑнение',
+ 'Employee' => 'Сътрудник',
+ 'From' => 'От',
+ 'ID' => 'Код',
+ 'Include in Report' => 'Включен в Ñправката',
+ 'Job Number' => 'Ðомер на задача',
+ 'Month' => 'МеÑец',
+ 'No open Projects!' => 'ÐÑма отворен проект!',
+ 'Notes' => 'Забележка',
+ 'Open' => 'Отворен',
+ 'PDF' => 'PDF',
+ 'Part Number' => 'Сериен номер',
+ 'Period' => 'Период',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Печат',
+ 'Print and Save' => 'Разпечатай и запази',
+ 'Print and Save as new' => 'Разпечатай и запази като нов',
+ 'Printed' => 'Разпечатано',
+ 'Project Number' => 'Ðомер на проекта',
+ 'Qty' => 'К-во',
+ 'Quarter' => 'ЧетиримеÑечие',
+ 'Queue' => 'Задание',
+ 'Queued' => 'Изпълнено заданието',
+ 'Save' => 'Запази',
+ 'Save as new' => 'Запази като нов',
+ 'Screen' => 'Екран',
+ 'Select a Printer!' => 'Избери принтер!',
+ 'Select postscript or PDF!' => 'Избери postscript или PDF!',
+ 'Service Code' => 'Код на уÑлуга',
+ 'Startdate' => 'Ðачална дата',
+ 'Subtotal' => 'Междинен Ñбор',
+ 'Time Card' => 'Работна карта',
+ 'Time Cards' => 'Работни карти',
+ 'To' => 'за',
+ 'Total' => 'Ð’Ñичко',
+ 'Update' => 'Обнови',
+ 'Warning!' => 'Внимание!',
+ 'Year' => 'Година',
+ 'Yes' => 'Да',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'Добави_работна_карта' => 'add_time_card',
+ 'Продължение' => 'continue',
+ 'ИзÑтрии' => 'delete',
+ 'Печат' => 'print',
+ 'Разпечатай_и_запази' => 'print_and_save',
+ 'Разпечатай_и_запази_като_нов' => 'print_and_save_as_new',
+ 'Запази' => 'save',
+ 'Запази_като_нов' => 'save_as_new',
+ 'Обнови' => 'update',
+ 'Да' => 'yes',
+};
+
+1;
+
diff --git a/locale/bg_utf/locales.pl b/locale/bg_utf/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/bg_utf/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/bg_utf/login b/locale/bg_utf/login
new file mode 100755
index 00000000..faa2b840
--- /dev/null
+++ b/locale/bg_utf/login
@@ -0,0 +1,27 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Access Denied!' => 'Отказан доÑтъп!',
+ 'Company' => 'Фирма',
+ 'Continue' => 'Продължение',
+ 'Dataset is newer than version!' => 'Базата-данни е нова верÑиÑ!',
+ 'Incorrect Dataset version!' => 'Коригирай верÑиÑта на базата-данни!',
+ 'Login' => 'Влизане',
+ 'Name' => 'Име',
+ 'Password' => 'Парола',
+ 'Upgrading to Version' => 'Обнови верÑиÑта',
+ 'Version' => 'ВерÑиÑ',
+ 'You did not enter a name!' => 'Ðе Ñте въвели име!',
+ 'done' => 'Готов',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ 'Влизане' => 'login',
+};
+
+1;
+
diff --git a/locale/bg_utf/menu b/locale/bg_utf/menu
new file mode 100755
index 00000000..2fe70d2a
--- /dev/null
+++ b/locale/bg_utf/menu
@@ -0,0 +1,145 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP' => 'Продажби',
+ 'AP Aging' => 'Ð’Ð·Ð°Ð¸Ð¼Ð¾Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ñ Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ð¸',
+ 'AP Transaction' => 'Превод продажба',
+ 'AR' => 'Покупки',
+ 'AR Aging' => 'Ð’Ð·Ð°Ð¸Ð¼Ð¾Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ñ Ñ Ð´Ð¾Ñтавчици',
+ 'AR Transaction' => 'Превод покупка',
+ 'Accounting Menu' => 'Меню Сметкоплан',
+ 'Add Account' => 'Добави Сметка',
+ 'Add Assembly' => 'Добави комплект',
+ 'Add Business' => 'Добави направление',
+ 'Add Customer' => 'Добави клиент',
+ 'Add Department' => 'Добави отдел',
+ 'Add Employee' => 'Добави Ñътрудник',
+ 'Add GIFI' => 'Добави GIFI',
+ 'Add Group' => 'Добави група',
+ 'Add Labor/Overhead' => 'Добави Разработка/Текущи разходи',
+ 'Add Language' => 'Добави език',
+ 'Add Part' => 'Добави позициÑ',
+ 'Add Pricegroup' => 'Добави ценова група',
+ 'Add Project' => 'Добави проект',
+ 'Add SIC' => 'Добави SIC',
+ 'Add Service' => 'Добави уÑлуга',
+ 'Add Time Card' => 'Добави работна карта',
+ 'Add Transaction' => 'Добави превод',
+ 'Add Vendor' => 'Добави доÑтавчик',
+ 'Add Warehouse' => 'Добави Ñклад',
+ 'All Items' => 'Ð’Ñички елементи',
+ 'Assemblies' => 'Комплекти',
+ 'Audit Control' => 'Контрол',
+ 'Backup' => 'Ðрхив',
+ 'Balance Sheet' => 'БаланÑ',
+ 'Batch Printing' => 'Отпечантване на запазени форми',
+ 'Bin List' => 'СпиÑък на пакет',
+ 'Bin Lists' => 'СпиÑъци на пакети',
+ 'Cash' => 'В брой',
+ 'Chart of Accounts' => 'Сметкоплан',
+ 'Check' => 'В брой',
+ 'Components' => 'Елементи',
+ 'Consolidate' => 'Обобщаване',
+ 'Customers' => 'Клиенти',
+ 'Defaults' => 'По подразбиране',
+ 'Departments' => 'Отдели',
+ 'Description' => 'ОбÑÑнение',
+ 'Employees' => 'Сътрудници',
+ 'General Ledger' => 'Главна книга',
+ 'Generate' => 'Създай',
+ 'Goods & Services' => 'Стоки и уÑлуги',
+ 'Groups' => 'Групи',
+ 'HR' => 'Сътрудници',
+ 'HTML Templates' => 'HTML Шаблони',
+ 'History' => 'ИÑториÑ',
+ 'Income Statement' => 'Отчет за Приходи и Разходи',
+ 'Invoice' => 'Фактура',
+ 'LaTeX Templates' => 'LaTeX Шаблони',
+ 'Labor/Overhead' => 'Текущи разходи',
+ 'Language' => 'Език',
+ 'List Accounts' => 'СпиÑък-Ñметки',
+ 'List Businesses' => 'СпиÑък-направлениÑ',
+ 'List Departments' => 'СпиÑък-отдели',
+ 'List GIFI' => 'СпиÑък-GIFI',
+ 'List Languages' => 'СпиÑък-езици',
+ 'List Projects' => 'СпиÑък-проекти',
+ 'List SIC' => 'СпиÑък-SIC',
+ 'List Warehouses' => 'СпиÑък-Ñкладове',
+ 'Logout' => 'Излизане',
+ 'New Window' => 'Ðов прозорец',
+ 'Non-taxable' => 'ОÑвободени Ñделки',
+ 'Open' => 'Отворен',
+ 'Order Entry' => 'Поръчки',
+ 'Outstanding' => 'ЗадължениÑ',
+ 'POS' => 'Кредино извеÑтие',
+ 'POS Invoice' => 'Кредитно извеÑтие към фактура',
+ 'Packing List' => 'Опъковачен лиÑÑ‚',
+ 'Packing Lists' => 'Опъковъчни лиÑти',
+ 'Parts' => 'Детайли',
+ 'Payment' => 'Плащане',
+ 'Payments' => 'Плащане',
+ 'Pick List' => 'Товарителница',
+ 'Pick Lists' => 'Товарителници',
+ 'Preferences' => 'СвойÑтва',
+ 'Pricegroups' => 'Ценова група',
+ 'Print' => 'Печат',
+ 'Projects' => 'Проекти',
+ 'Purchase Order' => 'Платежно нареждане',
+ 'Purchase Orders' => 'Платежни нарежданиÑ',
+ 'Quotation' => 'Запазена форма',
+ 'Quotations' => 'Запазени форми',
+ 'RFQ' => 'РезервациÑ',
+ 'RFQs' => 'Резервации',
+ 'Receipt' => 'Получаване',
+ 'Receipts' => 'ПолучаваниÑ',
+ 'Receive' => 'Получи',
+ 'Reconciliation' => 'СъглаÑуване',
+ 'Recurring Transactions' => 'ПовтарÑщи Ñе преводи',
+ 'Reports' => 'Справки',
+ 'Requirements' => 'СъглаÑиÑ',
+ 'SIC' => 'SIC',
+ 'Sale' => 'Продажби',
+ 'Sales Invoice' => 'Фактура продажба',
+ 'Sales Invoices' => 'Фактури прдажби',
+ 'Sales Order' => 'Поръчка продажба',
+ 'Sales Orders' => 'Поръчки продажби',
+ 'Save to File' => 'Запази във файл',
+ 'Search' => 'ТърÑи',
+ 'Send by E-Mail' => 'Изпрати на ел.адреÑ',
+ 'Services' => 'УÑлуги',
+ 'Ship' => 'ДоÑтавка',
+ 'Shipping' => 'ДоÑтавки',
+ 'Statement' => 'ВедомоÑÑ‚',
+ 'Stock Assembly' => 'Изграждане на окомплектовка',
+ 'Stylesheet' => 'Таблица ÑÑŠÑ Ñтилове',
+ 'System' => 'СиÑтема',
+ 'Tax collected' => 'Събрани данъци',
+ 'Tax paid' => 'Платени данъци',
+ 'Text Templates' => 'ТекÑтови шаблони',
+ 'Time Card' => 'Работна карта',
+ 'Time Cards' => 'Работни карти',
+ 'Transactions' => 'Преводи',
+ 'Transfer' => 'ПрехвърлÑне',
+ 'Transfer Inventory' => 'ПрехвърлÑне на инвентар',
+ 'Translations' => 'Преводи',
+ 'Trial Balance' => 'Временен баланÑ',
+ 'Type of Business' => 'Тип на направление',
+ 'Vendor Invoice' => 'Фактура за доÑтавка',
+ 'Vendors' => 'ДоÑтавчици',
+ 'Version' => 'ВерÑиÑ',
+ 'Warehouses' => 'Складове',
+ 'Work Order' => 'Работна поръчка',
+ 'Work Orders' => 'Работни поръчки',
+ 'Yearend' => 'Приключване на година',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/bg_utf/oe b/locale/bg_utf/oe
new file mode 100755
index 00000000..bf60d7f3
--- /dev/null
+++ b/locale/bg_utf/oe
@@ -0,0 +1,380 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Меню Сметкоплан',
+ 'Add Exchange Rate' => 'Добави валутен курÑ',
+ 'Add Purchase Order' => 'Добави платежно нареждане',
+ 'Add Quotation' => 'Добави заÑвка',
+ 'Add Request for Quotation' => 'Добави запитване за заÑвка',
+ 'Add Sales Invoice' => 'Добави фактура продажби',
+ 'Add Sales Order' => 'Добави поръчка продажби',
+ 'Add Vendor Invoice' => 'Добави фактура за доÑтавка',
+ 'Address' => 'ÐдреÑ',
+ 'Amount' => 'Сума',
+ 'Apr' => 'Ðпр',
+ 'April' => 'Ðприл',
+ 'Are you sure you want to delete Order Number' => 'Сигурен ли Ñте, че ще изтриете номера на поръчката',
+ 'Are you sure you want to delete Quotation Number' => 'Сигурен ли Ñте, че ще изтриете номера на заданието',
+ 'Attachment' => 'Прикрепен',
+ 'Aug' => 'Ðвг',
+ 'August' => 'ÐвгуÑÑ‚',
+ 'Bcc' => 'БÑÑ',
+ 'Billing Address' => 'ÐÐ´Ñ€ÐµÑ Ð·Ð° получаване на Ñметката',
+ 'Bin' => 'Пакет',
+ 'Bin List' => 'СпиÑък на пакет',
+ 'Business' => 'Ðаправление',
+ 'C' => 'C',
+ 'Cannot delete order!' => 'Ðе е възможно изтриване на поръчка!',
+ 'Cannot delete quotation!' => 'Ðе е възможно изтриване на задание!',
+ 'Cannot save order!' => 'Ðе е възможно запазване на поръчката!',
+ 'Cannot save quotation!' => 'Ðе в възможно запазване на заданието!',
+ 'Cc' => 'СÑ',
+ 'City' => 'Град',
+ 'Closed' => 'Затворено',
+ 'Company Name' => 'Име на фирма',
+ 'Confirm!' => 'СъглаÑие!',
+ 'Consolidate Orders' => 'Обобщени поръчки',
+ 'Consolidate Purchase Orders' => 'Обобщени платежни нарежданиÑ',
+ 'Consolidate Sales Orders' => 'Обобщени поръчки на продажби',
+ 'Contact' => 'Лице за контакт',
+ 'Continue' => 'Продължение',
+ 'Copies' => 'Копие',
+ 'Cost' => 'Цена',
+ 'Could not save!' => 'Ðевъзможно е да Ñе запази!',
+ 'Could not transfer Inventory!' => 'Ðевъзможно е да Ñе премеÑти инвентара!',
+ 'Country' => 'Държава',
+ 'Credit Limit' => 'Кредитен лимит',
+ 'Curr' => 'Валута',
+ 'Currency' => 'Валута',
+ 'Current' => 'Текущ',
+ 'Customer' => 'Клиент',
+ 'Customer Number' => 'Клиент номер',
+ 'Customer missing!' => 'ПропуÑнат клиент!',
+ 'Customer not on file!' => 'ЛипÑва клиента в базите!',
+ 'Date' => 'Дата',
+ 'Date Received' => 'Дата за получаване',
+ 'Date received missing!' => 'ЛипÑва дата на получаване!',
+ 'Day(s)' => 'Ден(дни)',
+ 'Dec' => 'Дек',
+ 'December' => 'Декември',
+ 'Delete' => 'ИзÑтрии',
+ 'Delete Schedule' => 'Изтрии задачата',
+ 'Delivery Date' => 'Дата на доÑтавка',
+ 'Department' => 'Отдел',
+ 'Description' => 'ОбÑÑнение',
+ 'Done' => 'Готов',
+ 'E-mail' => 'Ел.адреÑ',
+ 'E-mail address missing!' => 'ЛипÑва Ел.адреÑ!',
+ 'E-mail message' => 'Ел.Ñъобщение',
+ 'E-mailed' => 'Изпратено ел.Ñъобщение',
+ 'Edit Purchase Order' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° платежно нареждане',
+ 'Edit Quotation' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° задание',
+ 'Edit Request for Quotation' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° заÑвка за задание',
+ 'Edit Sales Order' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° поръчка продажби',
+ 'Employee' => 'Сътрудник',
+ 'Every' => 'Винаги',
+ 'Exchange Rate' => 'Валутен курÑ',
+ 'Exchange rate missing!' => 'ПропуÑнат валутен курÑ',
+ 'Extended' => 'Обобщен',
+ 'Fax' => 'ФакÑ',
+ 'Feb' => 'Фев',
+ 'February' => 'Февруари',
+ 'For' => 'За',
+ 'From' => 'От',
+ 'From Warehouse' => 'От Ñклад',
+ 'Generate Orders' => 'Създай поръчка',
+ 'Generate Purchase Orders' => 'Създай платежно нареждане',
+ 'Generate Purchase Orders from Sales Order' => 'Създай платежно нареждане на база поръчка продажби',
+ 'Generate Sales Order' => 'Създай поръчка продажби',
+ 'Generate Sales Order from Purchase Orders' => 'Създай поръка продажби на база платежно нареждане',
+ 'Group' => 'Група',
+ 'ID' => 'Код',
+ 'In-line' => 'Включен',
+ 'Include Payment' => 'Включено плащане',
+ 'Include in Report' => 'Включен в Ñправката',
+ 'Internal Notes' => 'Вътрешни бележки',
+ 'Inventory saved!' => 'Ивентара е запазен!',
+ 'Inventory transferred!' => 'Инвентара е премеÑтен!',
+ 'Invoice' => 'Фактура',
+ 'Invoice Date missing!' => 'ПопуÑната дата на фактурата',
+ 'Invoice Number missing!' => 'ЛипÑва номер на фактура!',
+ 'Item' => 'Елемент',
+ 'Item not on file!' => 'Елемента липÑва в базата!',
+ 'Jan' => 'Яну',
+ 'January' => 'Януари',
+ 'Jul' => 'Юли',
+ 'July' => 'Юли',
+ 'Jun' => 'Юни',
+ 'June' => 'Юни',
+ 'Lead' => 'ТежеÑÑ‚',
+ 'Manager' => 'Ръководител',
+ 'Mar' => 'Мар',
+ 'March' => 'Март',
+ 'May' => 'Май',
+ 'May ' => 'Май',
+ 'Message' => 'Съобщение',
+ 'Month' => 'МеÑец',
+ 'Month(s)' => 'МеÑеци',
+ 'Next Date' => 'Следваща дата',
+ 'No.' => 'Ðо.',
+ 'Notes' => 'Забележка',
+ 'Nothing entered!' => 'Ðищо не е въведено!',
+ 'Nothing selected!' => 'Ðе Ñте избрали нищо!',
+ 'Nothing to transfer!' => 'Ðищо не е преведено!',
+ 'Nov' => 'Ðое',
+ 'November' => 'Ðоември',
+ 'Number' => 'Ðомер',
+ 'Number missing in Row' => 'липÑва номер на ред!',
+ 'O' => 'O',
+ 'OH' => 'OH',
+ 'Oct' => 'Окт',
+ 'October' => 'Октомври',
+ 'Open' => 'Отворен',
+ 'Order' => 'Поръчка',
+ 'Order Date' => 'Дата на поръчка',
+ 'Order Date missing!' => 'ЛипÑва дата на поръчката!',
+ 'Order Number' => 'Поръчка номер',
+ 'Order Number missing!' => 'ЛипÑва номер на поръчката!',
+ 'Order deleted!' => 'Поръчката е изтрита!',
+ 'Order generation failed!' => 'Създаването на поръчка е провалено!',
+ 'Order saved!' => 'Поръчката е запазена!',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Поръчка номер за покупка',
+ 'Packing List' => 'Опъковачен лиÑÑ‚',
+ 'Packing List Date missing!' => 'ЛипÑва дата на Ð¾Ð¿Ð°ÐºÐ¾Ð²ÑŠÑ‡Ð½Ð¸Ñ Ð»Ð¸ÑÑ‚!',
+ 'Packing List Number missing!' => 'ЛипÑва номер на Ð¾Ð¿Ð°ÐºÐ¾Ð²ÑŠÑ‡Ð½Ð¸Ñ Ð»Ð¸ÑÑ‚!',
+ 'Part' => 'ПозициÑ',
+ 'Part Number' => 'Сериен номер',
+ 'Period' => 'Период',
+ 'Phone' => 'Телефон',
+ 'Pick List' => 'Товарителница',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Цена',
+ 'Print' => 'Печат',
+ 'Print and Save' => 'Разпечатай и запази',
+ 'Print and Save as new' => 'Разпечатай и запази като нов',
+ 'Printed' => 'Разпечатано',
+ 'Project' => 'Проект',
+ 'Project not on file!' => 'Проекта липÑва в базите!',
+ 'Purchase Order' => 'Платежно нареждане',
+ 'Purchase Orders' => 'Платежни нарежданиÑ',
+ 'Qty' => 'К-во',
+ 'Quarter' => 'ЧетиримеÑечие',
+ 'Queue' => 'Задание',
+ 'Queued' => 'Изпълнено заданието',
+ 'Quotation' => 'Запазена форма',
+ 'Quotation ' => 'Задание',
+ 'Quotation Date' => 'Дата на заданието',
+ 'Quotation Date missing!' => 'ЛипÑва дата на заданието!',
+ 'Quotation Number' => 'Ðомер на задание',
+ 'Quotation Number missing!' => 'ЛипÑва номер на заданието!',
+ 'Quotation deleted!' => 'Заданието е изтрито!',
+ 'Quotations' => 'Запазени форми',
+ 'RFQ' => 'РезервациÑ',
+ 'RFQ ' => 'ЗаÑвление за заÑвка',
+ 'RFQ Number' => 'Ðомер на иÑкане за заÑвка',
+ 'Recd' => 'ЗапиÑ',
+ 'Receive Merchandise' => 'Получаване на Ñтока',
+ 'Recurring Transaction' => 'ПовтарÑщи Ñе преводи',
+ 'Reference' => 'РеференциÑ',
+ 'Remaining' => 'ÐапомнÑне',
+ 'Repeat' => 'Повторение',
+ 'Req' => 'Req',
+ 'Request for Quotation' => 'ÐеобходимоÑÑ‚ от задание',
+ 'Request for Quotations' => 'ÐеобходимоÑÑ‚ от заÑвки',
+ 'Required by' => 'Ðеобходим е за',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Фактура продажба',
+ 'Sales Order' => 'Поръчка продажба',
+ 'Sales Orders' => 'Поръчки продажби',
+ 'Salesperson' => 'Продавач',
+ 'Save' => 'Запази',
+ 'Save Schedule' => 'Запази разпиÑание',
+ 'Save as new' => 'Запази като нов',
+ 'Schedule' => 'РазпиÑание',
+ 'Scheduled' => 'Зададено разпиÑание',
+ 'Screen' => 'Екран',
+ 'Select Vendor' => 'Избери доÑтавчик',
+ 'Select a Printer!' => 'Избери принтер!',
+ 'Select from one of the names below' => 'Избери едно от имената поÑочени по-долу',
+ 'Select from one of the projects below' => 'Избери един от проектите поÑочени по-долу',
+ 'Select items' => 'Избери елемент',
+ 'Select postscript or PDF!' => 'Избери postscript или PDF!',
+ 'Select txt, postscript or PDF!' => 'Избери txt, postscrip или PDF!',
+ 'Sep' => 'Сеп',
+ 'September' => 'Септември',
+ 'Serial No.' => 'Сериен номер',
+ 'Service' => 'УÑлуга',
+ 'Ship' => 'ДоÑтавка',
+ 'Ship Merchandise' => 'ДоÑтавка на Ñтока',
+ 'Ship to' => 'ДоÑтавка до',
+ 'Ship via' => 'ДоÑтавка ÑÑŠÑ',
+ 'Shipping Address' => 'ÐÐ´Ñ€ÐµÑ Ð½Ð° доÑтавка',
+ 'Shipping Date' => 'Дата на доÑтавка',
+ 'Shipping Date missing!' => 'ЛипÑва дата на доÑтавка!',
+ 'Shipping Point' => 'МеÑтоназначение',
+ 'Startdate' => 'Ðачална дата',
+ 'State/Province' => 'Окръг/ОблаÑÑ‚',
+ 'Subject' => 'Тема',
+ 'Subtotal' => 'Междинен Ñбор',
+ 'Tax' => 'Данък',
+ 'Tax Included' => 'Включен данък',
+ 'Terms' => 'Падеж',
+ 'Text' => 'ТекÑÑ‚',
+ 'To' => 'за',
+ 'To Warehouse' => 'За Ñклад',
+ 'Total' => 'Ð’Ñичко',
+ 'Trade Discount' => 'ТърговÑка оÑтъпка',
+ 'Transfer' => 'ПрехвърлÑне',
+ 'Transfer Inventory' => 'ПрехвърлÑне на инвентар',
+ 'Transfer from' => 'ПремеÑтване от',
+ 'Transfer to' => 'ПремеÑтване в',
+ 'Translation not on file!' => 'Превода не е в базата!',
+ 'Unit' => 'Единица',
+ 'Update' => 'Обнови',
+ 'Valid until' => 'Валидно до',
+ 'Vendor' => 'ДоÑтавчик',
+ 'Vendor Invoice' => 'Фактура за доÑтавка',
+ 'Vendor Number' => 'ДоÑтавчик номер',
+ 'Vendor missing!' => 'ЛипÑва доÑтавчик',
+ 'Vendor not on file!' => 'ЛипÑва доÑтвчика в базата',
+ 'Warehouse' => 'Склад',
+ 'Warning!' => 'Внимание!',
+ 'Week(s)' => 'Седмица(и)',
+ 'What type of item is this?' => 'Какъв тип е тази номенклатура?',
+ 'Work Order' => 'Работна поръчка',
+ 'Year' => 'Година',
+ 'Year(s)' => 'Година(и)',
+ 'Yes' => 'Да',
+ 'You are posting an existing transaction!' => 'Сигурен ли Ñте, че ще запазите този превод!',
+ 'You are printing and posting an existing transaction!' => 'Сигурен ли Ñте, че ще разпечатате и запазите този превод!',
+ 'You are printing and saving an existing order' => 'Сигурен ли Ñте, че ще разпечатате и запазите този превод!',
+ 'You are printing and saving an existing quotation' => 'Сигурен ли Ñте, че ще разпечатате и запазите тази резервациÑ!',
+ 'You are saving an existing order' => 'Сигурен ли Ñте, че ще запазите тази поръчка!',
+ 'You are saving an existing quotation' => 'Сигурен ли Ñте, че ще запазите тази резервациÑ',
+ 'Zip/Postal Code' => 'ПК',
+ 'days' => 'дни',
+ 'ea' => 'бр.',
+ 'for' => 'за',
+ 'sent' => 'изпрати',
+ 'time(s)' => 'път(и)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'Обобщени_поръчки' => 'consolidate_orders',
+ 'Продължение' => 'continue',
+ 'ИзÑтрии' => 'delete',
+ 'Изтрии_задачата' => 'delete_schedule',
+ 'Готов' => 'done',
+ 'Ел.адреÑ' => 'e_mail',
+ 'Създай_поръчка' => 'generate_orders',
+ 'Създай_платежно_нареждане' => 'generate_purchase_orders',
+ 'Създай_поръчка_продажби' => 'generate_sales_order',
+ 'Печат' => 'print',
+ 'Разпечатай_и_запази' => 'print_and_save',
+ 'Разпечатай_и_запази_като_нов' => 'print_and_save_as_new',
+ 'Платежно_нареждане' => 'purchase_order',
+ 'Запазена_форма' => 'quotation',
+ 'Задание' => 'quotation_',
+ 'РезервациÑ' => 'rfq',
+ 'ЗаÑвление_за_заÑвка' => 'rfq_',
+ 'Фактура_продажба' => 'sales_invoice',
+ 'Поръчка_продажба' => 'sales_order',
+ 'Запази' => 'save',
+ 'Запази_разпиÑание' => 'save_schedule',
+ 'Запази_като_нов' => 'save_as_new',
+ 'РазпиÑание' => 'schedule',
+ 'Избери_доÑтавчик' => 'select_vendor',
+ 'ДоÑтавка_до' => 'ship_to',
+ 'ПрехвърлÑне' => 'transfer',
+ 'Обнови' => 'update',
+ 'Фактура_за_доÑтавка' => 'vendor_invoice',
+ 'Да' => 'yes',
+};
+
+1;
+
diff --git a/locale/bg_utf/pe b/locale/bg_utf/pe
new file mode 100755
index 00000000..c6cb5b1e
--- /dev/null
+++ b/locale/bg_utf/pe
@@ -0,0 +1,168 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Меню Сметкоплан',
+ 'Active' => 'Ðктив',
+ 'Add' => 'Добави',
+ 'Add Group' => 'Добави група',
+ 'Add Job' => 'Добави задача',
+ 'Add Pricegroup' => 'Добави ценова група',
+ 'Add Project' => 'Добави проект',
+ 'Address' => 'ÐдреÑ',
+ 'All' => 'Ð’Ñичко',
+ 'Amount' => 'Сума',
+ 'As of' => 'Като този',
+ 'Assembly' => 'Комплект',
+ 'Assembly stocked!' => 'Комплекта е Ñкладиран!',
+ 'Bin' => 'Пакет',
+ 'Cannot stock Assembly!' => 'Ðе е възможно Ñъздаване на окомлектовка!',
+ 'Completed' => 'Завършен',
+ 'Continue' => 'Продължение',
+ 'Current' => 'Текущ',
+ 'Customer' => 'Клиент',
+ 'Customer missing!' => 'ПропуÑнат клиент!',
+ 'Customer not on file!' => 'ЛипÑва клиента в базите!',
+ 'Date' => 'Дата',
+ 'Delete' => 'ИзÑтрии',
+ 'Description' => 'ОбÑÑнение',
+ 'Description Translations' => 'ОпиÑание на преводите',
+ 'Detail' => 'Детаилен',
+ 'Edit Description Translations' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° опиÑаниÑта на преводите',
+ 'Edit Group' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° група',
+ 'Edit Job' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° задача',
+ 'Edit Pricegroup' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° ценова група',
+ 'Edit Project' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° проект',
+ 'Employee' => 'Сътрудник',
+ 'Enddate' => 'Крайна дата',
+ 'Failed to save order!' => 'Грешка при запазване на поръчка!',
+ 'From' => 'От',
+ 'Generate Sales Orders' => 'Създай поръчките за продажбите',
+ 'Group' => 'Група',
+ 'Group Translations' => 'Група преводи',
+ 'Group deleted!' => 'Групата е изтрита!',
+ 'Group missing!' => 'ЛипÑва група!',
+ 'Group saved!' => 'Групата е запазена!',
+ 'Groups' => 'Групи',
+ 'Inactive' => 'Ðеизползваем',
+ 'Income' => 'Приходи',
+ 'Job' => 'Задача',
+ 'Job Number' => 'Ðомер на задача',
+ 'Job deleted!' => 'Задачата е изтрита!',
+ 'Job saved!' => 'Задачата е запазена!',
+ 'Jobs' => 'Задачи',
+ 'Language' => 'Език',
+ 'Languages not defined!' => 'Езикът не е определен!',
+ 'Link Accounts' => 'Връзка ÑÑŠÑ Ñметки',
+ 'List Price' => 'ЦеноразпиÑ',
+ 'Month' => 'МеÑец',
+ 'No open Projects!' => 'ÐÑма отворен проект!',
+ 'Notes' => 'Забележка',
+ 'Nothing selected!' => 'Ðе Ñте избрали нищо!',
+ 'Number' => 'Ðомер',
+ 'Orders generated!' => 'Поръчките Ñа Ñъздадени!',
+ 'Orphaned' => 'Без движение',
+ 'Part Number' => 'Сериен номер',
+ 'Period' => 'Период',
+ 'Pricegroup' => 'Ценова група',
+ 'Pricegroup deleted!' => 'Ценовата група е изтрита!',
+ 'Pricegroup missing!' => 'ЛипÑва ценова група!',
+ 'Pricegroup saved!' => 'Ценовата група е изтрита!',
+ 'Pricegroups' => 'Ценова група',
+ 'Production' => 'ПродукциÑ',
+ 'Project' => 'Проект',
+ 'Project Description Translations' => 'ОпиÑание на преводите към проекта',
+ 'Project Number' => 'Ðомер на проекта',
+ 'Project deleted!' => 'Проекта е изтрит!',
+ 'Project saved!' => 'Проекта е запазен!',
+ 'Projects' => 'Проекти',
+ 'Qty' => 'К-во',
+ 'Quarter' => 'ЧетиримеÑечие',
+ 'Save' => 'Запази',
+ 'Select Customer' => 'Избери клиент',
+ 'Select from one of the names below' => 'Избери едно от имената поÑочени по-долу',
+ 'Sell Price' => 'Продажна цена',
+ 'Service Code' => 'Код на уÑлуга',
+ 'Startdate' => 'Ðачална дата',
+ 'Stock Finished Goods' => 'Приключи незавърцено пройзводÑтво',
+ 'Summary' => 'Сумарно',
+ 'Tax' => 'Данък',
+ 'To' => 'за',
+ 'Transaction Dates' => 'Дата на превод',
+ 'Translation' => 'Превод',
+ 'Translation deleted!' => 'Превода е изтрит!',
+ 'Translations saved!' => 'Превода е запазен!',
+ 'Unit' => 'Единица',
+ 'Update' => 'Обнови',
+ 'Updated' => 'Обновен',
+ 'Vendor' => 'ДоÑтавчик',
+ 'Vendor not on file!' => 'ЛипÑва доÑтвчика в базата',
+ 'Weight' => 'Тегло',
+ 'Year' => 'Година',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'Добави_група' => 'add_group',
+ 'Добави_задача' => 'add_job',
+ 'Добави_ценова_група' => 'add_pricegroup',
+ 'Добави_проект' => 'add_project',
+ 'Продължение' => 'continue',
+ 'ИзÑтрии' => 'delete',
+ 'Създай_поръчките_за_продажбите' => 'generate_sales_orders',
+ 'Запази' => 'save',
+ 'Избери_клиент' => 'select_customer',
+ 'Обнови' => 'update',
+};
+
+1;
+
diff --git a/locale/bg_utf/pos b/locale/bg_utf/pos
new file mode 100755
index 00000000..eb564290
--- /dev/null
+++ b/locale/bg_utf/pos
@@ -0,0 +1,83 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Меню Сметкоплан',
+ 'Add POS Invoice' => 'Добави POS фактура',
+ 'Amount' => 'Сума',
+ 'Business' => 'Ðаправление',
+ 'Cannot post transaction!' => 'Ðе мога да извърша плащане!',
+ 'Change' => 'Смени',
+ 'Continue' => 'Продължение',
+ 'Credit Limit' => 'Кредитен лимит',
+ 'Currency' => 'Валута',
+ 'Current' => 'Текущ',
+ 'Customer' => 'Клиент',
+ 'Customer missing!' => 'ПропуÑнат клиент!',
+ 'Delete' => 'ИзÑтрии',
+ 'Department' => 'Отдел',
+ 'Description' => 'ОбÑÑнение',
+ 'Edit POS Invoice' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° POS фактура',
+ 'Exchange Rate' => 'Валутен курÑ',
+ 'Exchange rate missing!' => 'ПропуÑнат валутен курÑ',
+ 'Extended' => 'Обобщен',
+ 'From' => 'От',
+ 'Language' => 'Език',
+ 'Memo' => 'Бележка',
+ 'Month' => 'МеÑец',
+ 'Number' => 'Ðомер',
+ 'Open' => 'Отворен',
+ 'Period' => 'Период',
+ 'Post' => 'Запази',
+ 'Posted!' => 'Запазено!',
+ 'Price' => 'Цена',
+ 'Print' => 'Печат',
+ 'Print and Post' => 'Разпечатай и запази',
+ 'Printed' => 'Разпечатано',
+ 'Qty' => 'К-во',
+ 'Quarter' => 'ЧетиримеÑечие',
+ 'Receipts' => 'ПолучаваниÑ',
+ 'Record in' => 'Запази в',
+ 'Remaining' => 'ÐапомнÑне',
+ 'Salesperson' => 'Продавач',
+ 'Screen' => 'Екран',
+ 'Select a Printer!' => 'Избери принтер!',
+ 'Source' => 'Първообраз',
+ 'Subtotal' => 'Междинен Ñбор',
+ 'Tax Included' => 'Включен данък',
+ 'To' => 'за',
+ 'Total' => 'Ð’Ñичко',
+ 'Trade Discount' => 'ТърговÑка оÑтъпка',
+ 'Unit' => 'Единица',
+ 'Update' => 'Обнови',
+ 'Year' => 'Година',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'Продължение' => 'continue',
+ 'ИзÑтрии' => 'delete',
+ 'Запази' => 'post',
+ 'Печат' => 'print',
+ 'Разпечатай_и_запази' => 'print_and_post',
+ 'Обнови' => 'update',
+};
+
+1;
+
diff --git a/locale/bg_utf/ps b/locale/bg_utf/ps
new file mode 100755
index 00000000..b64c4989
--- /dev/null
+++ b/locale/bg_utf/ps
@@ -0,0 +1,399 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Aging' => 'Ð’Ð·Ð°Ð¸Ð¼Ð¾Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ñ Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ð¸',
+ 'AP Outstanding' => 'Ð’Ð·ÐµÐ¼Ð°Ð½Ð¸Ñ Ð¾Ñ‚ клиенти',
+ 'AP Transaction' => 'Превод продажба',
+ 'AP Transactions' => 'Преводи продажби',
+ 'AR Aging' => 'Ð’Ð·Ð°Ð¸Ð¼Ð¾Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ñ Ñ Ð´Ð¾Ñтавчици',
+ 'AR Outstanding' => 'Ð—Ð°Ð´ÑŠÐ»Ð¶ÐµÐ½Ð¸Ñ ÐºÑŠÐ¼ доÑтавчици',
+ 'AR Transaction' => 'Превод покупка',
+ 'AR Transactions' => 'Преводи покупки',
+ 'Account' => 'Сметка',
+ 'Account Number' => 'Ðомер на Ñметка',
+ 'Accounting Menu' => 'Меню Сметкоплан',
+ 'Accounts' => 'Сметки',
+ 'Accrual' => 'Ðатрупване',
+ 'Add AP Transaction' => 'ДобавÑне превод към клиенти',
+ 'Add AR Transaction' => 'ДобавÑне превод към доÑтавчици',
+ 'Add POS Invoice' => 'Добави POS фактура',
+ 'Add Purchase Order' => 'Добави платежно нареждане',
+ 'Add Quotation' => 'Добави заÑвка',
+ 'Add Request for Quotation' => 'Добави запитване за заÑвка',
+ 'Add Sales Invoice' => 'Добави фактура продажби',
+ 'Add Sales Order' => 'Добави поръчка продажби',
+ 'Address' => 'ÐдреÑ',
+ 'Aged' => 'ОÑтарÑл',
+ 'Aged Overdue' => 'Преминала годноÑÑ‚',
+ 'All Accounts' => 'Ð’Ñички Ñметки',
+ 'Amount' => 'Сума',
+ 'Amount Due' => 'Сума за получаване',
+ 'Apr' => 'Ðпр',
+ 'April' => 'Ðприл',
+ 'Are you sure you want to delete Invoice Number' => 'Сигурен ли Ñте, че изтриете този момер фактура?',
+ 'Are you sure you want to delete Transaction' => 'Сигурни ли Ñте, че ще изÑтриете превода?',
+ 'Attachment' => 'Прикрепен',
+ 'Aug' => 'Ðвг',
+ 'August' => 'ÐвгуÑÑ‚',
+ 'Balance' => 'БаланÑ',
+ 'Balance Sheet' => 'БаланÑ',
+ 'Bcc' => 'БÑÑ',
+ 'Billing Address' => 'ÐÐ´Ñ€ÐµÑ Ð·Ð° получаване на Ñметката',
+ 'Bin' => 'Пакет',
+ 'Bin List' => 'СпиÑък на пакет',
+ 'Business' => 'Ðаправление',
+ 'Cannot delete invoice!' => 'Ðе възможно иÑтриване на фактура!',
+ 'Cannot delete transaction!' => 'Ðе мога да изÑÑ‚Ñ€Ð¸Ñ Ð¿Ñ€ÐµÐ²Ð¾Ð´Ð°!',
+ 'Cannot post invoice for a closed period!' => 'Ðе е възможно запазване на фактура в приключен период!',
+ 'Cannot post invoice!' => 'Ðе е възможно запазване на фактурата!',
+ 'Cannot post payment for a closed period!' => 'Ðе мога да извърша плащане за закрит период!',
+ 'Cannot post transaction for a closed period!' => 'Ðе мога да извърша превод за закрит период!',
+ 'Cannot post transaction!' => 'Ðе мога да извърша плащане!',
+ 'Cash' => 'В брой',
+ 'Cc' => 'СÑ',
+ 'Change' => 'Смени',
+ 'Check' => 'В брой',
+ 'City' => 'Град',
+ 'Closed' => 'Затворено',
+ 'Company Name' => 'Име на фирма',
+ 'Compare to' => 'Сравни ÑÑŠÑ',
+ 'Confirm!' => 'СъглаÑие!',
+ 'Contact' => 'Лице за контакт',
+ 'Continue' => 'Продължение',
+ 'Copies' => 'Копие',
+ 'Country' => 'Държава',
+ 'Credit' => 'Кредит',
+ 'Credit Limit' => 'Кредитен лимит',
+ 'Curr' => 'Валута',
+ 'Currency' => 'Валута',
+ 'Current' => 'Текущ',
+ 'Current Earnings' => 'Текуща печалба',
+ 'Customer' => 'Клиент',
+ 'Customer Number' => 'Клиент номер',
+ 'Customer missing!' => 'ПропуÑнат клиент!',
+ 'Customer not on file!' => 'ЛипÑва клиента в базите!',
+ 'Date' => 'Дата',
+ 'Date Paid' => 'Падеж',
+ 'Day(s)' => 'Ден(дни)',
+ 'Debit' => 'Дебит',
+ 'Dec' => 'Дек',
+ 'December' => 'Декември',
+ 'Decimalplaces' => 'ДеÑетична запетаÑ',
+ 'Delete' => 'ИзÑтрии',
+ 'Delete Schedule' => 'Изтрии задачата',
+ 'Delivery Date' => 'Дата на доÑтавка',
+ 'Department' => 'Отдел',
+ 'Description' => 'ОбÑÑнение',
+ 'Detail' => 'Детаилен',
+ 'Due Date' => 'Платете до',
+ 'Due Date missing!' => 'ПропуÑната дата за плащане',
+ 'E-mail' => 'Ел.адреÑ',
+ 'E-mail Statement to' => 'Ел.Ð°Ð´Ñ€ÐµÑ Ð·Ð° потвърждениÑ',
+ 'E-mail address missing!' => 'ЛипÑва Ел.адреÑ!',
+ 'E-mail message' => 'Ел.Ñъобщение',
+ 'E-mailed' => 'Изпратено ел.Ñъобщение',
+ 'Edit AP Transaction' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° превод към доÑтавчик',
+ 'Edit AR Transaction' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° превод към клиент',
+ 'Edit POS Invoice' => 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° POS фактура',
+ 'Edit Sales Invoice' => 'Редактирай фактура за продажба',
+ 'Employee' => 'Сътрудник',
+ 'Every' => 'Винаги',
+ 'Exch' => 'КурÑ',
+ 'Exchange Rate' => 'Валутен курÑ',
+ 'Exchange rate for payment missing!' => 'Валутен ÐºÑƒÑ€Ñ Ð·Ð° пропуÑнато плащане',
+ 'Exchange rate missing!' => 'ПропуÑнат валутен курÑ',
+ 'Extended' => 'Обобщен',
+ 'Fax' => 'ФакÑ',
+ 'Feb' => 'Фев',
+ 'February' => 'Февруари',
+ 'For' => 'За',
+ 'From' => 'От',
+ 'GIFI' => 'GIFI',
+ 'Group' => 'Група',
+ 'Heading' => 'Заглавие',
+ 'ID' => 'Код',
+ 'In-line' => 'Включен',
+ 'Include Exchange Rate Difference' => 'Включи курÑовата разлика',
+ 'Include Payment' => 'Включено плащане',
+ 'Include in Report' => 'Включен в Ñправката',
+ 'Income Statement' => 'Отчет за Приходи и Разходи',
+ 'Internal Notes' => 'Вътрешни бележки',
+ 'Invoice' => 'Фактура',
+ 'Invoice Date' => 'Фактура дата',
+ 'Invoice Date missing!' => 'ПопуÑната дата на фактурата',
+ 'Invoice Number' => 'Фактура номер',
+ 'Invoice Number missing!' => 'ЛипÑва номер на фактура!',
+ 'Invoice deleted!' => 'Фактурата е изтрита!',
+ 'Item' => 'Елемент',
+ 'Item not on file!' => 'Елемента липÑва в базата!',
+ 'Jan' => 'Яну',
+ 'January' => 'Януари',
+ 'Jul' => 'Юли',
+ 'July' => 'Юли',
+ 'Jun' => 'Юни',
+ 'June' => 'Юни',
+ 'Language' => 'Език',
+ 'Manager' => 'Ръководител',
+ 'Mar' => 'Мар',
+ 'March' => 'Март',
+ 'May' => 'Май',
+ 'May ' => 'Май',
+ 'Memo' => 'Бележка',
+ 'Message' => 'Съобщение',
+ 'Method' => 'Метод',
+ 'Month' => 'МеÑец',
+ 'Month(s)' => 'МеÑеци',
+ 'N/A' => 'N/A',
+ 'Next Date' => 'Следваща дата',
+ 'No.' => 'Ðо.',
+ 'Non-taxable Purchases' => 'ОÑвободен от плащане',
+ 'Non-taxable Sales' => 'ОÑвободена продажба',
+ 'Notes' => 'Забележка',
+ 'Nothing selected!' => 'Ðе Ñте избрали нищо!',
+ 'Nothing to print!' => 'ÐÑма за печатане!',
+ 'Nov' => 'Ðое',
+ 'November' => 'Ðоември',
+ 'Number' => 'Ðомер',
+ 'Number missing in Row' => 'липÑва номер на ред!',
+ 'OH' => 'OH',
+ 'Oct' => 'Окт',
+ 'October' => 'Октомври',
+ 'Open' => 'Отворен',
+ 'Order' => 'Поръчка',
+ 'Order Date missing!' => 'ЛипÑва дата на поръчката!',
+ 'Order Number' => 'Поръчка номер',
+ 'Order Number missing!' => 'ЛипÑва номер на поръчката!',
+ 'Overdue' => 'ПроÑрочен',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Поръчка номер за покупка',
+ 'Packing List' => 'Опъковачен лиÑÑ‚',
+ 'Packing List Date missing!' => 'ЛипÑва дата на Ð¾Ð¿Ð°ÐºÐ¾Ð²ÑŠÑ‡Ð½Ð¸Ñ Ð»Ð¸ÑÑ‚!',
+ 'Packing List Number missing!' => 'ЛипÑва номер на Ð¾Ð¿Ð°ÐºÐ¾Ð²ÑŠÑ‡Ð½Ð¸Ñ Ð»Ð¸ÑÑ‚!',
+ 'Paid' => 'Платено',
+ 'Part' => 'ПозициÑ',
+ 'Payment date missing!' => 'ПропуÑната дата на плащане!',
+ 'Payments' => 'Плащане',
+ 'Period' => 'Период',
+ 'Phone' => 'Телефон',
+ 'Pick List' => 'Товарителница',
+ 'Post' => 'Запази',
+ 'Post as new' => 'Запази като нов',
+ 'Posted!' => 'Запазено!',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Цена',
+ 'Print' => 'Печат',
+ 'Print and Post' => 'Разпечатай и запази',
+ 'Print and Post as new' => 'Разпечатай и запази като нов',
+ 'Printed' => 'Разпечатано',
+ 'Project' => 'Проект',
+ 'Project Number' => 'Ðомер на проекта',
+ 'Project Transactions' => 'Превод за проект',
+ 'Project not on file!' => 'Проекта липÑва в базите!',
+ 'Purchase Order' => 'Платежно нареждане',
+ 'Qty' => 'К-во',
+ 'Quarter' => 'ЧетиримеÑечие',
+ 'Queue' => 'Задание',
+ 'Queued' => 'Изпълнено заданието',
+ 'Quotation' => 'Запазена форма',
+ 'Quotation Date missing!' => 'ЛипÑва дата на заданието!',
+ 'Quotation Number missing!' => 'ЛипÑва номер на заданието!',
+ 'Recd' => 'ЗапиÑ',
+ 'Receipt' => 'Получаване',
+ 'Receipts' => 'ПолучаваниÑ',
+ 'Record in' => 'Запази в',
+ 'Recurring Transaction' => 'ПовтарÑщи Ñе преводи',
+ 'Reference' => 'РеференциÑ',
+ 'Remaining' => 'ÐапомнÑне',
+ 'Repeat' => 'Повторение',
+ 'Report for' => 'Справка за',
+ 'Required by' => 'Ðеобходим е за',
+ 'SKU' => 'SKU',
+ 'Sales Invoice.' => 'Фактура продажби',
+ 'Sales Order' => 'Поръчка продажба',
+ 'Salesperson' => 'Продавач',
+ 'Save Schedule' => 'Запази разпиÑание',
+ 'Schedule' => 'РазпиÑание',
+ 'Scheduled' => 'Зададено разпиÑание',
+ 'Screen' => 'Екран',
+ 'Select a Printer!' => 'Избери принтер!',
+ 'Select all' => 'Избери вÑичко',
+ 'Select from one of the names below' => 'Избери едно от имената поÑочени по-долу',
+ 'Select from one of the projects below' => 'Избери един от проектите поÑочени по-долу',
+ 'Select items' => 'Избери елемент',
+ 'Select payment' => 'Избери плащане',
+ 'Select postscript or PDF!' => 'Избери postscript или PDF!',
+ 'Select txt, postscript or PDF!' => 'Избери txt, postscrip или PDF!',
+ 'Sep' => 'Сеп',
+ 'September' => 'Септември',
+ 'Serial No.' => 'Сериен номер',
+ 'Service' => 'УÑлуга',
+ 'Ship' => 'ДоÑтавка',
+ 'Ship to' => 'ДоÑтавка до',
+ 'Ship via' => 'ДоÑтавка ÑÑŠÑ',
+ 'Shipping Address' => 'ÐÐ´Ñ€ÐµÑ Ð½Ð° доÑтавка',
+ 'Shipping Point' => 'МеÑтоназначение',
+ 'Source' => 'Първообраз',
+ 'Standard' => 'Стандарт',
+ 'Startdate' => 'Ðачална дата',
+ 'State/Province' => 'Окръг/ОблаÑÑ‚',
+ 'Statement' => 'ВедомоÑÑ‚',
+ 'Statement sent to' => 'Потвърждението изпрати на',
+ 'Statements sent to printer!' => 'Разпечатай потвърждението!',
+ 'Subject' => 'Тема',
+ 'Subtotal' => 'Междинен Ñбор',
+ 'Summary' => 'Сумарно',
+ 'Tax' => 'Данък',
+ 'Tax Included' => 'Включен данък',
+ 'Tax collected' => 'Събрани данъци',
+ 'Tax paid' => 'Платени данъци',
+ 'Text' => 'ТекÑÑ‚',
+ 'Till' => 'до',
+ 'To' => 'за',
+ 'Total' => 'Ð’Ñичко',
+ 'Trade Discount' => 'ТърговÑка оÑтъпка',
+ 'Transaction' => 'Превод',
+ 'Transaction deleted!' => 'Превода е изтрит!',
+ 'Transaction posted!' => 'Превода е запазен!',
+ 'Translation not on file!' => 'Превода не е в базата!',
+ 'Trial Balance' => 'Временен баланÑ',
+ 'Unit' => 'Единица',
+ 'Update' => 'Обнови',
+ 'Vendor' => 'ДоÑтавчик',
+ 'Vendor Invoice.' => 'Фактура на доÑтавчик',
+ 'Vendor Number' => 'ДоÑтавчик номер',
+ 'Vendor missing!' => 'ЛипÑва доÑтавчик',
+ 'Vendor not on file!' => 'ЛипÑва доÑтвчика в базата',
+ 'Warning!' => 'Внимание!',
+ 'Week(s)' => 'Седмица(и)',
+ 'What type of item is this?' => 'Какъв тип е тази номенклатура?',
+ 'Work Order' => 'Работна поръчка',
+ 'Year' => 'Година',
+ 'Year(s)' => 'Година(и)',
+ 'Yes' => 'Да',
+ 'You are posting an existing transaction!' => 'Сигурен ли Ñте, че ще запазите този превод!',
+ 'You are printing and posting an existing transaction!' => 'Сигурен ли Ñте, че ще разпечатате и запазите този превод!',
+ 'You are printing and saving an existing order' => 'Сигурен ли Ñте, че ще разпечатате и запазите този превод!',
+ 'You are printing and saving an existing quotation' => 'Сигурен ли Ñте, че ще разпечатате и запазите тази резервациÑ!',
+ 'You are saving an existing order' => 'Сигурен ли Ñте, че ще запазите тази поръчка!',
+ 'You are saving an existing quotation' => 'Сигурен ли Ñте, че ще запазите тази резервациÑ',
+ 'Zip/Postal Code' => 'ПК',
+ 'as at' => 'както',
+ 'ea' => 'бр.',
+ 'for' => 'за',
+ 'for Period' => 'за период',
+ 'posted!' => 'запазен!',
+ 'sent' => 'изпрати',
+ 'time(s)' => 'път(и)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'Превод_продажба' => 'ap_transaction',
+ 'Превод_покупка' => 'ar_transaction',
+ 'Продължение' => 'continue',
+ 'ИзÑтрии' => 'delete',
+ 'Изтрии_задачата' => 'delete_schedule',
+ 'Ел.адреÑ' => 'e_mail',
+ 'Запази' => 'post',
+ 'Запази_като_нов' => 'post_as_new',
+ 'Печат' => 'print',
+ 'Разпечатай_и_запази' => 'print_and_post',
+ 'Разпечатай_и_запази_като_нов' => 'print_and_post_as_new',
+ 'Фактура_продажби' => 'sales_invoice_',
+ 'Поръчка_продажба' => 'sales_order',
+ 'Запази_разпиÑание' => 'save_schedule',
+ 'РазпиÑание' => 'schedule',
+ 'Избери_вÑичко' => 'select_all',
+ 'ДоÑтавка_до' => 'ship_to',
+ 'Обнови' => 'update',
+ 'Фактура_на_доÑтавчик' => 'vendor_invoice_',
+ 'Да' => 'yes',
+};
+
+1;
+
diff --git a/locale/bg_utf/pw b/locale/bg_utf/pw
new file mode 100755
index 00000000..7c4afe44
--- /dev/null
+++ b/locale/bg_utf/pw
@@ -0,0 +1,15 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Continue' => 'Продължение',
+ 'Password' => 'Парола',
+ 'Session expired!' => 'Ðевалидна ÑеÑиÑта!',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'Продължение' => 'continue',
+};
+
+1;
+
diff --git a/locale/bg_utf/rc b/locale/bg_utf/rc
new file mode 100755
index 00000000..8fec76a7
--- /dev/null
+++ b/locale/bg_utf/rc
@@ -0,0 +1,81 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'Сметка',
+ 'Accounting Menu' => 'Меню Сметкоплан',
+ 'Apr' => 'Ðпр',
+ 'April' => 'Ðприл',
+ 'Aug' => 'Ðвг',
+ 'August' => 'ÐвгуÑÑ‚',
+ 'Balance' => 'БаланÑ',
+ 'Beginning Balance' => 'Ðачално Ñалдо',
+ 'Cleared' => 'ИзчиÑтено',
+ 'Continue' => 'Продължение',
+ 'Credit' => 'Кредит',
+ 'Current' => 'Текущ',
+ 'Date' => 'Дата',
+ 'Debit' => 'Дебит',
+ 'Dec' => 'Дек',
+ 'December' => 'Декември',
+ 'Description' => 'ОбÑÑнение',
+ 'Detail' => 'Детаилен',
+ 'Difference' => 'РазличиÑ',
+ 'Done' => 'Готов',
+ 'Feb' => 'Фев',
+ 'February' => 'Февруари',
+ 'From' => 'От',
+ 'Include Exchange Rate Difference' => 'Включи курÑовата разлика',
+ 'Jan' => 'Яну',
+ 'January' => 'Януари',
+ 'Jul' => 'Юли',
+ 'July' => 'Юли',
+ 'Jun' => 'Юни',
+ 'June' => 'Юни',
+ 'Mar' => 'Мар',
+ 'March' => 'Март',
+ 'May' => 'Май',
+ 'May ' => 'Май',
+ 'Month' => 'МеÑец',
+ 'Nov' => 'Ðое',
+ 'November' => 'Ðоември',
+ 'Oct' => 'Окт',
+ 'October' => 'Октомври',
+ 'Out of balance!' => 'Извън баланÑови!',
+ 'Outstanding' => 'ЗадължениÑ',
+ 'Period' => 'Период',
+ 'Quarter' => 'ЧетиримеÑечие',
+ 'R' => 'R',
+ 'Reconciliation' => 'СъглаÑуване',
+ 'Reconciliation Report' => 'Отчет за ÑъглаÑуване',
+ 'Select all' => 'Избери вÑичко',
+ 'Sep' => 'Сеп',
+ 'September' => 'Септември',
+ 'Source' => 'Първообраз',
+ 'Statement Balance' => 'Ð‘Ð°Ð»Ð°Ð½Ñ Ð·Ð° потвърждение',
+ 'Summary' => 'Сумарно',
+ 'To' => 'за',
+ 'Update' => 'Обнови',
+ 'Year' => 'Година',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'Продължение' => 'continue',
+ 'Готов' => 'done',
+ 'Избери_вÑичко' => 'select_all',
+ 'Обнови' => 'update',
+};
+
+1;
+
diff --git a/locale/bg_utf/rp b/locale/bg_utf/rp
new file mode 100755
index 00000000..3431c00a
--- /dev/null
+++ b/locale/bg_utf/rp
@@ -0,0 +1,207 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Aging' => 'Ð’Ð·Ð°Ð¸Ð¼Ð¾Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ñ Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ð¸',
+ 'AR Aging' => 'Ð’Ð·Ð°Ð¸Ð¼Ð¾Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ñ Ñ Ð´Ð¾Ñтавчици',
+ 'Account' => 'Сметка',
+ 'Account Number' => 'Ðомер на Ñметка',
+ 'Accounting Menu' => 'Меню Сметкоплан',
+ 'Accounts' => 'Сметки',
+ 'Accrual' => 'Ðатрупване',
+ 'Address' => 'ÐдреÑ',
+ 'Aged' => 'ОÑтарÑл',
+ 'Aged Overdue' => 'Преминала годноÑÑ‚',
+ 'All Accounts' => 'Ð’Ñички Ñметки',
+ 'Amount' => 'Сума',
+ 'Apr' => 'Ðпр',
+ 'April' => 'Ðприл',
+ 'Attachment' => 'Прикрепен',
+ 'Aug' => 'Ðвг',
+ 'August' => 'ÐвгуÑÑ‚',
+ 'Balance' => 'БаланÑ',
+ 'Balance Sheet' => 'БаланÑ',
+ 'Bcc' => 'БÑÑ',
+ 'Cash' => 'В брой',
+ 'Cc' => 'СÑ',
+ 'Compare to' => 'Сравни ÑÑŠÑ',
+ 'Continue' => 'Продължение',
+ 'Copies' => 'Копие',
+ 'Credit' => 'Кредит',
+ 'Curr' => 'Валута',
+ 'Current' => 'Текущ',
+ 'Current Earnings' => 'Текуща печалба',
+ 'Customer' => 'Клиент',
+ 'Customer not on file!' => 'ЛипÑва клиента в базите!',
+ 'Date' => 'Дата',
+ 'Day(s)' => 'Ден(дни)',
+ 'Debit' => 'Дебит',
+ 'Dec' => 'Дек',
+ 'December' => 'Декември',
+ 'Decimalplaces' => 'ДеÑетична запетаÑ',
+ 'Delete Schedule' => 'Изтрии задачата',
+ 'Department' => 'Отдел',
+ 'Description' => 'ОбÑÑнение',
+ 'Detail' => 'Детаилен',
+ 'Due Date' => 'Платете до',
+ 'E-mail' => 'Ел.адреÑ',
+ 'E-mail Statement to' => 'Ел.Ð°Ð´Ñ€ÐµÑ Ð·Ð° потвърждениÑ',
+ 'E-mail address missing!' => 'ЛипÑва Ел.адреÑ!',
+ 'E-mail message' => 'Ел.Ñъобщение',
+ 'Every' => 'Винаги',
+ 'Feb' => 'Фев',
+ 'February' => 'Февруари',
+ 'For' => 'За',
+ 'From' => 'От',
+ 'GIFI' => 'GIFI',
+ 'Heading' => 'Заглавие',
+ 'ID' => 'Код',
+ 'In-line' => 'Включен',
+ 'Include Exchange Rate Difference' => 'Включи курÑовата разлика',
+ 'Include Payment' => 'Включено плащане',
+ 'Include in Report' => 'Включен в Ñправката',
+ 'Income Statement' => 'Отчет за Приходи и Разходи',
+ 'Invoice' => 'Фактура',
+ 'Jan' => 'Яну',
+ 'January' => 'Януари',
+ 'Jul' => 'Юли',
+ 'July' => 'Юли',
+ 'Jun' => 'Юни',
+ 'June' => 'Юни',
+ 'Language' => 'Език',
+ 'Mar' => 'Мар',
+ 'March' => 'Март',
+ 'May' => 'Май',
+ 'May ' => 'Май',
+ 'Memo' => 'Бележка',
+ 'Message' => 'Съобщение',
+ 'Method' => 'Метод',
+ 'Month' => 'МеÑец',
+ 'Month(s)' => 'МеÑеци',
+ 'N/A' => 'N/A',
+ 'Next Date' => 'Следваща дата',
+ 'Non-taxable Purchases' => 'ОÑвободен от плащане',
+ 'Non-taxable Sales' => 'ОÑвободена продажба',
+ 'Nothing selected!' => 'Ðе Ñте избрали нищо!',
+ 'Nov' => 'Ðое',
+ 'November' => 'Ðоември',
+ 'Number' => 'Ðомер',
+ 'Oct' => 'Окт',
+ 'October' => 'Октомври',
+ 'Order' => 'Поръчка',
+ 'Overdue' => 'ПроÑрочен',
+ 'PDF' => 'PDF',
+ 'Payments' => 'Плащане',
+ 'Period' => 'Период',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Печат',
+ 'Project' => 'Проект',
+ 'Project Number' => 'Ðомер на проекта',
+ 'Project Transactions' => 'Превод за проект',
+ 'Project not on file!' => 'Проекта липÑва в базите!',
+ 'Quarter' => 'ЧетиримеÑечие',
+ 'Receipts' => 'ПолучаваниÑ',
+ 'Recurring Transaction' => 'ПовтарÑщи Ñе преводи',
+ 'Reference' => 'РеференциÑ',
+ 'Repeat' => 'Повторение',
+ 'Report for' => 'Справка за',
+ 'Salesperson' => 'Продавач',
+ 'Save Schedule' => 'Запази разпиÑание',
+ 'Screen' => 'Екран',
+ 'Select all' => 'Избери вÑичко',
+ 'Select from one of the names below' => 'Избери едно от имената поÑочени по-долу',
+ 'Select from one of the projects below' => 'Избери един от проектите поÑочени по-долу',
+ 'Select postscript or PDF!' => 'Избери postscript или PDF!',
+ 'Sep' => 'Сеп',
+ 'September' => 'Септември',
+ 'Source' => 'Първообраз',
+ 'Standard' => 'Стандарт',
+ 'Startdate' => 'Ðачална дата',
+ 'Statement' => 'ВедомоÑÑ‚',
+ 'Statement sent to' => 'Потвърждението изпрати на',
+ 'Statements sent to printer!' => 'Разпечатай потвърждението!',
+ 'Subject' => 'Тема',
+ 'Subtotal' => 'Междинен Ñбор',
+ 'Summary' => 'Сумарно',
+ 'Tax' => 'Данък',
+ 'Tax collected' => 'Събрани данъци',
+ 'Tax paid' => 'Платени данъци',
+ 'Till' => 'до',
+ 'To' => 'за',
+ 'Total' => 'Ð’Ñичко',
+ 'Trial Balance' => 'Временен баланÑ',
+ 'Vendor' => 'ДоÑтавчик',
+ 'Vendor not on file!' => 'ЛипÑва доÑтвчика в базата',
+ 'Warning!' => 'Внимание!',
+ 'Week(s)' => 'Седмица(и)',
+ 'Year' => 'Година',
+ 'Year(s)' => 'Година(и)',
+ 'You are posting an existing transaction!' => 'Сигурен ли Ñте, че ще запазите този превод!',
+ 'You are printing and posting an existing transaction!' => 'Сигурен ли Ñте, че ще разпечатате и запазите този превод!',
+ 'You are printing and saving an existing order' => 'Сигурен ли Ñте, че ще разпечатате и запазите този превод!',
+ 'You are printing and saving an existing quotation' => 'Сигурен ли Ñте, че ще разпечатате и запазите тази резервациÑ!',
+ 'You are saving an existing order' => 'Сигурен ли Ñте, че ще запазите тази поръчка!',
+ 'You are saving an existing quotation' => 'Сигурен ли Ñте, че ще запазите тази резервациÑ',
+ 'as at' => 'както',
+ 'for' => 'за',
+ 'for Period' => 'за период',
+ 'sent' => 'изпрати',
+ 'time(s)' => 'път(и)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'Продължение' => 'continue',
+ 'Изтрии_задачата' => 'delete_schedule',
+ 'Ел.адреÑ' => 'e_mail',
+ 'Печат' => 'print',
+ 'Запази_разпиÑание' => 'save_schedule',
+ 'Избери_вÑичко' => 'select_all',
+};
+
+1;
+
diff --git a/locale/br/COPYING b/locale/br/COPYING
new file mode 100755
index 00000000..e921ba7d
--- /dev/null
+++ b/locale/br/COPYING
@@ -0,0 +1,25 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2002
+#
+# Brazilian texts:
+#
+# Author: Andre Felipe Machado <andremachado@techforce.com.br>
+# Miguel Koren O'Brien de Lacy <miguelk@konsultex.com.br>
+# Marco A B Souza <marcoabs@msn.com>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/br/LANGUAGE b/locale/br/LANGUAGE
new file mode 100755
index 00000000..d45d52d8
--- /dev/null
+++ b/locale/br/LANGUAGE
@@ -0,0 +1 @@
+Brazilian Portuguese
diff --git a/locale/br/aa b/locale/br/aa
new file mode 100755
index 00000000..42c400bd
--- /dev/null
+++ b/locale/br/aa
@@ -0,0 +1,161 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Contas a Pagar Pendentes',
+ 'AP Transaction' => 'Transação - Contas a Pagar',
+ 'AP Transactions' => 'Transações - Contas a Pagar',
+ 'AR Outstanding' => 'Contas a Receber Pendentes',
+ 'AR Transaction' => 'Transação - Contas a Receber',
+ 'AR Transactions' => 'Transações - Contas a Receber',
+ 'Account' => 'Conta',
+ 'Accounting Menu' => 'Menu de Contabilidade',
+ 'Add AP Transaction' => 'Adicionar Transação de CP',
+ 'Add AR Transaction' => 'Adicionar Transação de CR',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Total Devido',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => 'Tem certeza que quer APAGAR a Transação',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Cannot delete transaction!' => 'Não pode apagar transação!',
+ 'Cannot post payment for a closed period!' => 'Não pode lançar pagamento em período fechado!',
+ 'Cannot post transaction for a closed period!' => 'Não pode lançar transação para um período já encerrado!',
+ 'Cannot post transaction!' => 'Não pode lançar transação!',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Fechado',
+ 'Confirm!' => 'Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Limite de Crédito',
+ 'Curr' => 'Moeda',
+ 'Currency' => 'Moeda',
+ 'Current' => 'Corrente',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => 'Cliente faltando!',
+ 'Date' => 'Data',
+ 'Date Paid' => 'Data de pagamento',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezembro',
+ 'Delete' => 'Apagar',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descrição',
+ 'Detail' => 'Detalhe',
+ 'Due Date' => 'Data de Vencimento',
+ 'Due Date missing!' => 'Data de Vencimento faltando!',
+ 'Edit AP Transaction' => 'Editar Transação de CP',
+ 'Edit AR Transaction' => 'Editar Transação de CR',
+ 'Employee' => 'Empregado',
+ 'Exch' => 'Câmbio',
+ 'Exchange Rate' => 'Taxa de câmbio',
+ 'Exchange rate for payment missing!' => 'Falta a taxa de câmbio para o pagamento!',
+ 'Exchange rate missing!' => 'Falta a taxa de câmbio!',
+ 'Feb' => 'Fev',
+ 'February' => 'Fevereiro',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir no Relatório',
+ 'Invoice' => 'Fatura',
+ 'Invoice Date' => 'Data da Fatura',
+ 'Invoice Date missing!' => 'Data da Fatura não encontrada!',
+ 'Invoice Number' => 'Número da Fatura',
+ 'Jan' => 'Jan',
+ 'January' => 'Janeiro',
+ 'Jul' => 'Jul',
+ 'July' => 'Julho',
+ 'Jun' => 'Jun',
+ 'June' => 'Junho',
+ 'Manager' => 'Gerente',
+ 'Mar' => 'Mar',
+ 'March' => 'Março',
+ 'May' => 'Mai',
+ 'May ' => 'Maio',
+ 'Memo' => 'Memorando',
+ 'Month' => 'Mês',
+ 'No.' => 'Nº',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembro',
+ 'Oct' => 'Out',
+ 'October' => 'Outubro',
+ 'Open' => 'Em Aberto',
+ 'Order' => 'Pedido',
+ 'Order Number' => 'Número do Pedido',
+ 'PO Number' => 'Número da OC',
+ 'Paid' => 'Total Efetuado',
+ 'Payment date missing!' => 'Data de pagamento faltando!',
+ 'Payments' => 'Pagamentos',
+ 'Period' => 'Período',
+ 'Post' => 'Lançar',
+ 'Post as new' => 'Lançar como novo',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir e Lançar',
+ 'Print and Post as new' => 'Imprimir e Lançar como Novo',
+ 'Project' => 'Projeto',
+ 'Quarter' => 'Trimestre',
+ 'Receipt' => 'Recibo',
+ 'Remaining' => 'Restante',
+ 'Sales Invoice.' => 'Fatura de Venda.',
+ 'Salesperson' => 'Vendedor',
+ 'Schedule' => 'Programação',
+ 'Sep' => 'Set',
+ 'September' => 'Setembro',
+ 'Ship to' => 'Enviar para',
+ 'Ship via' => 'Enivar por',
+ 'Shipping Point' => 'Local do despacho',
+ 'Source' => 'Fonte',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Sumário',
+ 'Tax' => 'Imposto',
+ 'Tax Included' => 'Impostos incluídos',
+ 'Till' => 'Até',
+ 'To' => 'Até',
+ 'Total' => 'Total',
+ 'Transaction' => 'Transação',
+ 'Transaction deleted!' => 'Transação apagada!',
+ 'Transaction posted!' => 'Transação lançada',
+ 'Update' => 'Atualizar',
+ 'Vendor' => 'Fornecedor',
+ 'Vendor Invoice.' => 'Fatura de Compra.',
+ 'Vendor missing!' => 'Fornecedor faltando!',
+ 'Year' => 'Ano',
+ 'Yes' => 'Sim',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'transação___contas_a_pagar' => 'ap_transaction',
+ 'transação___contas_a_receber' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'apagar' => 'delete',
+ 'lançar' => 'post',
+ 'lançar_como_novo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'imprimir_e_lançar' => 'print_and_post',
+ 'imprimir_e_lançar_como_novo' => 'print_and_post_as_new',
+ 'fatura_de_venda_' => 'sales_invoice_',
+ 'programação' => 'schedule',
+ 'enviar_para' => 'ship_to',
+ 'atualizar' => 'update',
+ 'fatura_de_compra_' => 'vendor_invoice_',
+ 'sim' => 'yes',
+};
+
+1;
+
diff --git a/locale/br/admin b/locale/br/admin
new file mode 100755
index 00000000..3f66bf85
--- /dev/null
+++ b/locale/br/admin
@@ -0,0 +1,144 @@
+$self{texts} = {
+ 'Access Control' => 'Controle de Acesso',
+ 'Accounting' => 'Contabilidade',
+ 'Add User' => 'Adicionar Usuário',
+ 'Address' => 'Endereço',
+ 'Administration' => 'Administração',
+ 'Administrator' => 'Administrador',
+ 'All Datasets up to date!' => 'Todos grupos de dados atualizados!',
+ 'Cannot create Lock!' => 'Não pode criar uma trava!',
+ 'Change Admin Password' => 'Trocar senha de administração',
+ 'Change Password' => 'Trocar senha',
+ 'Click on login name to edit!' => 'Clique no nome de acesso para editar',
+ 'Company' => 'Empresa',
+ 'Confirm' => 'Confirmar',
+ 'Connect to' => 'Conectar a',
+ 'Continue' => 'Continuar',
+ 'Create Chart of Accounts' => 'Criar Plano de Contas',
+ 'Create Dataset' => 'Criar conjunto de dados',
+ 'DBA' => 'DBA',
+ 'DBI not installed!' => 'Driver de Interface de Banco de dados NÃO INSTALADO!',
+ 'Database' => 'Banco de Dados',
+ 'Database Administration' => 'Administração da Base de Dados',
+ 'Database Driver not checked!' => 'Driver do banco de dados não selecionado!',
+ 'Database User missing!' => 'Usuário da base de dados faltando!',
+ 'Dataset' => 'Conjunto de dados',
+ 'Dataset missing!' => 'Conjunto de dados faltando!',
+ 'Dataset updated!' => 'Conjunto de dados atualizado',
+ 'Date Format' => 'Formato de Data',
+ 'Delete' => 'Apagar',
+ 'Delete Dataset' => 'Apagar conjunto de dados',
+ 'Directory' => 'Diretório',
+ 'Driver' => 'Driver',
+ 'Dropdown Limit' => 'Limite de dropdown',
+ 'E-mail' => 'E-Mail',
+ 'Edit User' => 'Editar Usuário',
+ 'Existing Datasets' => 'Conjunto de dados existentes',
+ 'Fax' => 'Fax',
+ 'Host' => 'Servidor',
+ 'Hostname missing!' => 'Nome do servidor faltando!',
+ 'Language' => 'Idioma',
+ 'Lock System' => 'Travar o systema',
+ 'Lockfile created!' => 'Arquivo de trava criado!',
+ 'Lockfile removed!' => 'Arquivo de trava removido!',
+ 'Login' => 'Entrar',
+ 'Login name missing!' => 'Faltando o nome de acesso!',
+ 'Logout' => 'Sair',
+ 'Manager' => 'Gerente',
+ 'Menu Width' => 'Largura do Menu',
+ 'Multibyte Encoding' => 'Multibyte Encoding',
+ 'Name' => 'Nome',
+ 'New Templates' => 'Novos Modelos',
+ 'No Database Drivers available!' => 'Nenhum driver de banco de dados disponível!',
+ 'No Dataset selected!' => 'Nenhum conjunto de dados selecionado!',
+ 'Nothing to delete!' => 'Nada para apagar!',
+ 'Number Format' => 'Formato de números',
+ 'Oracle Database Administration' => 'Administração da Base de Dados Oracle',
+ 'Password' => 'Senha',
+ 'Password changed!' => 'Senha trocada!',
+ 'Passwords do not match!' => 'As senhas não conferem!',
+ 'Pg Database Administration' => 'Administração do banco de dados PostgreSQL',
+ 'PgPP Database Administration' => 'Administração do banco de dados PgPP',
+ 'Phone' => 'Fone',
+ 'Port' => 'Porta',
+ 'Port missing!' => 'Porta faltando!',
+ 'Printer' => 'Impressora',
+ 'Save' => 'Salvar',
+ 'Session Timeout' => 'Tempo Esgotado',
+ 'Session expired!' => 'Sessão expirada',
+ 'Setup Templates' => 'Modelos de Configuração',
+ 'Signature' => 'Assinatura',
+ 'Stylesheet' => 'Folha de estilos',
+ 'Supervisor' => 'Supervisor',
+ 'Templates' => 'Modelos',
+ 'The following Datasets are not in use and can be deleted' => 'Os seguintes conjuntos de dados NÃO estão em uso e PODEM ser apagados',
+ 'The following Datasets need to be updated' => 'Os seguintes grupos de dados precisam ser atualizados',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Esta é uma verificação preliminar por fontes existentes. Nada será criado ou apagado neste estágio!',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Para adicionar um usuário a um grupo edite um nome, troque o nome de acesso/login e salve. Um novo usuário com as mesmas variáveis será então salvo sob o novo nome de acesso/login.',
+ 'Unlock System' => 'Unlock System',
+ 'Update Dataset' => 'Atualizar grupo de dados',
+ 'Use Templates' => 'Use Modelos',
+ 'User' => 'Usuário',
+ 'User deleted!' => 'Usuário apagado!',
+ 'User saved!' => 'Usuário salvo',
+ 'Version' => 'Versão',
+ 'You are logged out' => 'Você saiu do sistema',
+ 'does not exist' => 'Não existe',
+ 'is already a member!' => 'já é um membro!',
+ 'localhost' => 'servidor local',
+ 'locked!' => 'travado!',
+ 'successfully created!' => 'Criado com sucesso!',
+ 'successfully deleted!' => 'Apagado com sucesso!',
+ 'website' => 'website',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'adicionar_usuário' => 'add_user',
+ 'trocar_senha_de_administração' => 'change_admin_password',
+ 'trocar_senha' => 'change_password',
+ 'continuar' => 'continue',
+ 'criar_conjunto_de_dados' => 'create_dataset',
+ 'apagar' => 'delete',
+ 'apagar_conjunto_de_dados' => 'delete_dataset',
+ 'travar_o_systema' => 'lock_system',
+ 'entrar' => 'login',
+ 'sair' => 'logout',
+ 'administração_da_base_de_dados_oracle' => 'oracle_database_administration',
+ 'administração_do_banco_de_dados_postgresql' => 'pg_database_administration',
+ 'administração_do_banco_de_dados_pgpp' => 'pgpp_database_administration',
+ 'salvar' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'atualizar_grupo_de_dados' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/br/all b/locale/br/all
new file mode 100755
index 00000000..7f35c8bf
--- /dev/null
+++ b/locale/br/all
@@ -0,0 +1,934 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+
+$self{texts} = {
+ 'A' => 'A',
+ 'AP' => 'Contas a Pagar',
+ 'AP Aging' => 'Contas a Pagar Vencidas',
+ 'AP Outstanding' => 'Contas a Pagar Pendentes',
+ 'AP Transaction' => 'Transação - Contas a Pagar',
+ 'AP Transactions' => 'Transações - Contas a Pagar',
+ 'AR' => 'Contas a Receber',
+ 'AR Aging' => 'Contas a Receber Vencidas',
+ 'AR Outstanding' => 'Contas a Receber Pendentes',
+ 'AR Transaction' => 'Transação - Contas a Receber',
+ 'AR Transactions' => 'Transações - Contas a Receber',
+ 'AR/AP' => 'CR/CP',
+ 'About' => 'Sobre',
+ 'Above' => 'Acima',
+ 'Access Control' => 'Controle de Acesso',
+ 'Access Denied!' => 'Acesso Negado',
+ 'Account' => 'Conta',
+ 'Account Number' => 'Número da Conta',
+ 'Account Number missing!' => 'Número da Conta não encontrado!',
+ 'Account Type' => 'Tipo de Conta',
+ 'Account Type missing!' => 'Tipo de Conta não encontrado!',
+ 'Account deleted!' => 'Conta apagada!',
+ 'Account does not exist!' => 'Conta inexistente!',
+ 'Account saved!' => 'Conta salva!',
+ 'Accounting' => 'Contabilidade',
+ 'Accounting Menu' => 'Menu de Contabilidade',
+ 'Accounts' => 'Contas',
+ 'Accrual' => 'Resultado final',
+ 'Activate Audit trail' => 'Ativar registros de Auditoria',
+ 'Activate Audit trails' => 'Ativar registros de Auditoria',
+ 'Active' => 'Ativa',
+ 'Add' => 'Adicionar',
+ 'Add AP Transaction' => 'Adicionar Transação de CP',
+ 'Add AR Transaction' => 'Adicionar Transação de CR',
+ 'Add Account' => 'Adicionar Conta',
+ 'Add Assembly' => 'Adicionar Conjunto',
+ 'Add Business' => 'Adicionar Atividade Comercial',
+ 'Add Cash Transfer Transaction' => 'Adicionar Transação de Transferência de Fundos',
+ 'Add Customer' => 'Adicionar Cliente',
+ 'Add Deduction' => 'Adicionar Dedução',
+ 'Add Department' => 'Adicionar Departamento',
+ 'Add Employee' => 'Adicionar Empregado',
+ 'Add Exchange Rate' => 'Adicionar Taxa de Câmbio',
+ 'Add GIFI' => 'Adicionar CFOP',
+ 'Add General Ledger Transaction' => 'Adicionar Transação Livro Razão',
+ 'Add Group' => 'Adicionar Grupo',
+ 'Add Job' => 'Adicionar Serviço',
+ 'Add Labor/Overhead' => 'Adicionar Mão-de-Obra/Sobretaxa',
+ 'Add Language' => 'Adicionar Idioma',
+ 'Add POS Invoice' => 'Adicionar Fatura de PDV',
+ 'Add Part' => 'Adicionar Item',
+ 'Add Pricegroup' => 'Adicionar Grupo de Preços',
+ 'Add Project' => 'Adicionar Projeto',
+ 'Add Purchase Order' => 'Adicionar Ordem de Compra',
+ 'Add Quotation' => 'Adicionar Cotação',
+ 'Add Request for Quotation' => 'Adicionar Requisição de Cotação',
+ 'Add SIC' => 'Adicionar SIC',
+ 'Add Sales Invoice' => 'Adicionar Fatura de Venda',
+ 'Add Sales Order' => 'Adicionar Pedido de Venda',
+ 'Add Service' => 'Adicionar Serviço',
+ 'Add Stores Card' => 'Adicionar Cartão de Loja',
+ 'Add Time Card' => 'Adicionar Apontamento',
+ 'Add Transaction' => 'Adicionar Transação',
+ 'Add User' => 'Adicionar Usuário',
+ 'Add Vendor' => 'Adicionar Fornecedor',
+ 'Add Vendor Invoice' => 'Adicionar Fatura de Compra',
+ 'Add Warehouse' => 'Adicionar Almoxarifado',
+ 'Address' => 'Endereço',
+ 'Administration' => 'Administração',
+ 'Administrator' => 'Administrador',
+ 'After Deduction' => 'Após Dedução',
+ 'Aged' => 'Velho',
+ 'Aged Overdue' => 'Velho e vencido',
+ 'All' => 'Todas',
+ 'All Accounts' => 'Todas Contas',
+ 'All Datasets up to date!' => 'Todos grupos de dados atualizados!',
+ 'All Items' => 'Todos Ítens',
+ 'Allocated' => 'Alocado',
+ 'Allowances' => 'Permissões',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Total Devido',
+ 'Amount missing!' => 'Total faltando!',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => 'Tem certeza que quer APAGAR a Fatura Número',
+ 'Are you sure you want to delete Order Number' => 'Tem certeza que quer APAGAR tal número de Pedido?',
+ 'Are you sure you want to delete Quotation Number' => 'Tem certeza que quer APAGAR tal número de Cotação?',
+ 'Are you sure you want to delete Transaction' => 'Tem certeza que quer APAGAR a Transação',
+ 'Are you sure you want to delete time card for' => 'Tem certeza que quer APAGAR o Apontamento de',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Tem certeza que quer REMOVER da fila as entradas marcadas?',
+ 'As of' => 'Como de',
+ 'Assemblies' => 'Conjuntos',
+ 'Assemblies restocked!' => 'Conjuntos re estocados',
+ 'Assembly' => 'Conjunto',
+ 'Assembly stocked!' => 'Conjunto estocado',
+ 'Asset' => 'Ativo',
+ 'Attachment' => 'Anexo',
+ 'Audit Control' => 'Controle de Auditoria',
+ 'Audit trail disabled' => 'Registro de Auditoria desabilitado',
+ 'Audit trail enabled' => 'Registro de Auditoria habilitado',
+ 'Audit trail removed up to' => 'Registro de Auditoria removido até',
+ 'Audit trails disabled' => 'Registro de Auditoria desabilitado',
+ 'Audit trails enabled' => 'Registro de Auditoria habilitado',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Average Cost' => 'Custo Médio',
+ 'Avg Cost' => 'Cust Méd',
+ 'BIC' => 'BIC',
+ 'BOM' => 'Lista de Material',
+ 'Backup' => 'Cópia de reserva',
+ 'Backup sent to' => 'Cópia reserva enviada para',
+ 'Balance' => 'Balanço',
+ 'Balance Sheet' => 'Folha de Balanço',
+ 'Based on' => 'Baseado em',
+ 'Batch Printing' => 'Impressão em lote',
+ 'Bcc' => 'Bcc',
+ 'Before Deduction' => 'Antes da Dedução',
+ 'Beginning Balance' => 'Balanço Inicial',
+ 'Below' => 'Abaixo',
+ 'Billing Address' => 'Endereço de Cobrança',
+ 'Bin' => 'Preteleira',
+ 'Bin List' => 'Lista de preteleiras',
+ 'Bin Lists' => 'Listas de preteleiras',
+ 'Books are open' => 'Livros estão abertos',
+ 'Break' => 'Quebra',
+ 'Business' => 'Negócio',
+ 'Business Number' => 'Número de negócio',
+ 'Business deleted!' => 'Negócio apagado',
+ 'Business saved!' => 'Negócio salvo',
+ 'C' => 'F',
+ 'COGS' => 'CMV',
+ 'COGS account does not exist!' => 'A conta de CMV não existe',
+ 'Cannot add stores card for a completed job!' => 'Não é possível adicionar um cartão de loja em um serviço concluído!',
+ 'Cannot add time card for a completed job!' => 'Não é possível adicionar um apontamento em um serviço concluído!',
+ 'Cannot change stores card for a completed job!' => 'Não é possível alterar um cartão de loja em um serviço concluído!',
+ 'Cannot change time card for a completed job!' => 'Não é possível alterar um apontamento em um serviço concluído!',
+ 'Cannot create Assembly' => 'Não é possível criar um conjunto',
+ 'Cannot create Labor' => 'Não é possível uma mão-de-obra',
+ 'Cannot create Lock!' => 'Não é possível criar uma trava!',
+ 'Cannot create Part' => 'Não é possível o item',
+ 'Cannot create Service' => 'Não é possível o Serviço',
+ 'Cannot delete account!' => 'Não é possível apagar conta!',
+ 'Cannot delete customer!' => 'Não é possível apagar cliente!',
+ 'Cannot delete default account!' => 'Não é possível apagar a conta padrão!',
+ 'Cannot delete invoice!' => 'Não é possível apagar a fatura!',
+ 'Cannot delete item!' => 'Não é possível apagar o item!',
+ 'Cannot delete order!' => 'Não é possível apagar o pedido!',
+ 'Cannot delete quotation!' => 'Não é possível apagar a cotação',
+ 'Cannot delete time card!' => 'Não é possível apagar o apontamento',
+ 'Cannot delete transaction!' => 'Não é possível apagar a transação!',
+ 'Cannot delete vendor!' => 'Não é possível apagar o fornecedor!',
+ 'Cannot post Payment!' => 'Não é possível lançar o pagamento!',
+ 'Cannot post Receipt!' => 'Não é possível lançar o recebimento!',
+ 'Cannot post invoice for a closed period!' => 'Não é possível lançar a fatura em período fechado!',
+ 'Cannot post invoice!' => 'Não é possível lançar a fatura!',
+ 'Cannot post payment for a closed period!' => 'Não é possível lançar o pagamento em período fechado!',
+ 'Cannot post transaction for a closed period!' => 'Não é possível lançar a transação para um período já encerrado!',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => 'Não é possível lançar a transação com o mesmo valor para a conta de débito e de crédito',
+ 'Cannot post transaction!' => 'Não é possível lançar a transação!',
+ 'Cannot remove files!' => 'Não é possível remover os arquivos!',
+ 'Cannot save account!' => 'Não é possível salvar a conta!',
+ 'Cannot save defaults!' => 'Não é possível salvar as configurações padrão!',
+ 'Cannot save order!' => 'Não é possível salvar o pedido!',
+ 'Cannot save preferences!' => 'Não é possível salvar as preferências!',
+ 'Cannot save quotation!' => 'Não é possível salvar a cotação!',
+ 'Cannot save stores card for a closed period!' => 'Não é possível salvar o cartão de loja para um período fechado!',
+ 'Cannot save stores card!' => 'Não é possível salvar o cartão de loja!',
+ 'Cannot save time card for a closed period!' => 'Não é possível salvar o apontamento para um período fechado!',
+ 'Cannot save time card!' => 'Não é possível salvar o apontamento!',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Não é possível haver conta para mais de um dos CR, CP ou IC',
+ 'Cannot set multiple options for' => 'Não é possível haver múltipla escolha para',
+ 'Cannot set multiple options for Item' => 'Não é possível haver múltipla escolha para o item',
+ 'Cannot stock Assembly!' => 'Não é possível estocar o Conjunto',
+ 'Cannot stock assemblies!' => 'Não é possível estocar conjuntos!',
+ 'Cash' => 'Caixa',
+ 'Cc' => 'Cc',
+ 'Change' => 'Troco',
+ 'Change Admin Password' => 'Trocar senha de administração',
+ 'Change Password' => 'Trocar senha',
+ 'Charge' => 'Faturar',
+ 'Chargeable' => 'Faturáveis',
+ 'Chart of Accounts' => 'Plano de Contas',
+ 'Check' => 'Cheque',
+ 'Check Inventory' => 'Inventário de cheques',
+ 'Checks' => 'Cheques',
+ 'City' => 'Cidade',
+ 'Cleared' => 'Limpo',
+ 'Click on login name to edit!' => 'Clique no nome de acesso para editar',
+ 'Clocked' => 'Cronometrado',
+ 'Close Books up to' => 'Encerrar livros até',
+ 'Closed' => 'Fechado',
+ 'Code' => 'Código',
+ 'Code missing!' => 'Código faltando!',
+ 'Company' => 'Empresa',
+ 'Company Name' => 'Nome da Empresa',
+ 'Compare to' => 'Comparar a',
+ 'Completed' => 'Concluído',
+ 'Components' => 'Componentes',
+ 'Confirm' => 'Confirmar',
+ 'Confirm!' => 'Confirmar!',
+ 'Connect to' => 'Conectar a',
+ 'Consolidate Orders' => 'Consolidar pedidos',
+ 'Consolidate Purchase Orders' => 'Consolidar ordens de compra',
+ 'Consolidate Sales Orders' => 'Consolidar pedidos de venda',
+ 'Contact' => 'Contato',
+ 'Continue' => 'Continuar',
+ 'Contra' => 'Contra',
+ 'Copies' => 'Cópias',
+ 'Copy to COA' => 'Copiar para Plano de Contas',
+ 'Cost' => 'Custo',
+ 'Cost Center' => 'Centro de Custos',
+ 'Could not save pricelist!' => 'Não é possível salvar lista de preços',
+ 'Could not save!' => 'Não é possível salvar!',
+ 'Could not transfer Inventory!' => 'Não é possível transferir inventário!',
+ 'Country' => 'País',
+ 'Create Chart of Accounts' => 'Criar Plano de Contas',
+ 'Create Dataset' => 'Criar conjunto de dados',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Limite de Crédito',
+ 'Curr' => 'Moeda',
+ 'Currency' => 'Moeda',
+ 'Current' => 'Corrente',
+ 'Current Earnings' => 'Ganhos Atuais',
+ 'Customer' => 'Cliente',
+ 'Customer History' => 'Histórico do Cliente',
+ 'Customer Number' => 'Número do Cliente',
+ 'Customer deleted!' => 'Cliente apagado!',
+ 'Customer missing!' => 'Cliente faltando!',
+ 'Customer not on file!' => 'Cliente não está no arquivo!',
+ 'Customer saved!' => 'Cliente salvo',
+ 'Customers' => 'Clientes',
+ 'DBA' => 'DBA',
+ 'DBI not installed!' => 'Driver de Interface de Banco de dados NÃO INSTALADO!',
+ 'DOB' => 'Aniversário',
+ 'Database' => 'Banco de Dados',
+ 'Database Administration' => 'Administração da Base de Dados',
+ 'Database Driver not checked!' => 'Driver do banco de dados não selecionado!',
+ 'Database Host' => 'Servidor de Banco de Dados',
+ 'Database User missing!' => 'Usuário da base de dados faltando!',
+ 'Dataset' => 'Conjunto de dados',
+ 'Dataset is newer than version!' => 'Conjunto de dados é mais novo que a versão!',
+ 'Dataset missing!' => 'Conjunto de dados faltando!',
+ 'Dataset updated!' => 'Conjunto de dados atualizado',
+ 'Date' => 'Data',
+ 'Date Format' => 'Formato de Data',
+ 'Date Paid' => 'Data de pagamento',
+ 'Date Received' => 'Data de recebimento',
+ 'Date missing!' => 'Data faltando!',
+ 'Date received missing!' => 'Data de recebimento faltando!',
+ 'Date worked' => 'Data Trabalhada',
+ 'Day' => 'Dia',
+ 'Day(s)' => 'Dia(s)',
+ 'Days' => 'Dias',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezembro',
+ 'Decimalplaces' => 'Casas decimais',
+ 'Decrease' => 'Decrementar',
+ 'Deduct after' => 'Deduzir após',
+ 'Deduction deleted!' => 'Dedução apagada!',
+ 'Deduction saved!' => 'Dedução salva!',
+ 'Deductions' => 'Deduções',
+ 'Default Template' => 'Modelo Padrão',
+ 'Defaults' => 'Configurações padrão',
+ 'Defaults saved!' => 'Configurações padrão salvas!',
+ 'Delete' => 'Apagar',
+ 'Delete Account' => 'Apagar Conta',
+ 'Delete Dataset' => 'Apagar o conjunto de dados',
+ 'Delete Schedule' => 'Apagar a Programação',
+ 'Deleting a language will also delete the templates for the language' => 'Apagar o idioma também apagará os modelos do idioma',
+ 'Delivery Date' => 'Data de entrega',
+ 'Department' => 'Departamento',
+ 'Department deleted!' => 'Departamento apagado!',
+ 'Department saved!' => 'Departamento salvo!',
+ 'Departments' => 'Departamentos',
+ 'Deposit' => 'Depósito',
+ 'Description' => 'Descrição',
+ 'Description Translations' => 'Descrições Traduzidas',
+ 'Description missing!' => 'Descrição faltando!',
+ 'Detail' => 'Detalhe',
+ 'Difference' => 'Diferença',
+ 'Directory' => 'Diretório',
+ 'Discount' => 'Desconto',
+ 'Done' => 'Feito',
+ 'Drawing' => 'Desenho',
+ 'Driver' => 'Driver',
+ 'Dropdown Limit' => 'Limite de dropdown',
+ 'Due Date' => 'Data de Vencimento',
+ 'Due Date missing!' => 'Data de Vencimento faltando!',
+ 'E-mail' => 'E-mail',
+ 'E-mail Statement to' => 'Declaração enviada por e-mail para',
+ 'E-mail address missing!' => 'Endereço de e-mail faltando!',
+ 'E-mail message' => 'Mensagem do e-mail',
+ 'E-mailed' => 'Enviado por e-mail',
+ 'Edit' => 'Editar',
+ 'Edit AP Transaction' => 'Editar a Transação de CP',
+ 'Edit AR Transaction' => 'Editar a Transação de CR',
+ 'Edit Account' => 'Editar a Conta',
+ 'Edit Assembly' => 'Editar o Conjunto',
+ 'Edit Business' => 'Editar o Negócio',
+ 'Edit Cash Transfer Transaction' => 'Editar a transação de transferência de fundos',
+ 'Edit Customer' => 'Editar o Cliente',
+ 'Edit Deduction' => 'Editar a Dedução',
+ 'Edit Department' => 'Editar o Departamento',
+ 'Edit Description Translations' => 'Editar o Traduções de Descrições',
+ 'Edit Employee' => 'Editar o Empregado',
+ 'Edit GIFI' => 'Editar o CFOP',
+ 'Edit General Ledger Transaction' => 'Editar o Transação Livro Razão',
+ 'Edit Group' => 'Editar o Grupo',
+ 'Edit Job' => 'Editar o Serviço',
+ 'Edit Labor/Overhead' => 'Editar o Trabalho/sobretaxa',
+ 'Edit Language' => 'Editar o Idioma',
+ 'Edit POS Invoice' => 'Editar o Fatura de PDV',
+ 'Edit Part' => 'Editar o Item',
+ 'Edit Preferences for' => 'Editar as Preferências para',
+ 'Edit Pricegroup' => 'Editar o Grupo de Preços',
+ 'Edit Project' => 'Editar o Projeto',
+ 'Edit Purchase Order' => 'Editar a Ordem de Compra',
+ 'Edit Quotation' => 'Editar a Cotação',
+ 'Edit Request for Quotation' => 'Editar a Requisição de Cotação',
+ 'Edit SIC' => 'Editar o SIC',
+ 'Edit Sales Invoice' => 'Editar a Fatura de Venda',
+ 'Edit Sales Order' => 'Editar o Pedido de Venda',
+ 'Edit Service' => 'Editar o Serviço',
+ 'Edit Template' => 'Editar o Modelo',
+ 'Edit Time Card' => 'Editar o Apontamento',
+ 'Edit User' => 'Editar o Usuário',
+ 'Edit Vendor' => 'Editar o Fornecedor',
+ 'Edit Vendor Invoice' => 'Editar o Fatura de Compra',
+ 'Edit Warehouse' => 'Editar o Almoxarifado',
+ 'Employee' => 'Empregado',
+ 'Employee Name' => 'Nome do Empregado',
+ 'Employee Number' => 'Número do Empregado',
+ 'Employee deleted!' => 'Empregado apagado!',
+ 'Employee pays' => 'Pagamentos do Empregado',
+ 'Employee saved!' => 'Empregado salvo!',
+ 'Employees' => 'Empregados',
+ 'Employer' => 'Empregador',
+ 'Employer pays' => 'Pagamentos do Empregador',
+ 'Enddate' => 'Data Final',
+ 'Ends' => 'Términos',
+ 'Enforce transaction reversal for all dates' => 'Forçar execução de reversão de transação para todas as datas',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Entre com até 3 letras separadas por dois pontos (i.e CAD:USD:EUR) para sua moeda local e estrangeira',
+ 'Equity' => 'Capital',
+ 'Every' => 'Cada',
+ 'Excempt age <' => 'Prazo de isenção <',
+ 'Exch' => 'Câmbio',
+ 'Exchange Rate' => 'Taxa de câmbio',
+ 'Exchange rate for payment missing!' => 'Falta a taxa de câmbio para o pagamento!',
+ 'Exchange rate missing!' => 'Falta a taxa de câmbio!',
+ 'Exempt age <' => 'Tempo de Isenção <',
+ 'Existing Datasets' => 'Conjunto de dados existentes',
+ 'Expense' => 'Despesa',
+ 'Expense account does not exist!' => 'Não existe conta de despesa',
+ 'Expense/Asset' => 'Despesa/Ativo',
+ 'Extended' => 'Extendida',
+ 'FX' => 'FX',
+ 'Failed to save order!' => 'Falha ao salvar o pedido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Fev',
+ 'February' => 'Fevereiro',
+ 'For' => 'Para',
+ 'Foreign Exchange Gain' => 'Ganho com câmbio estrangeiro',
+ 'Foreign Exchange Loss' => 'Perda com câmbio estrangeiro',
+ 'Friday' => 'Sexta-feira',
+ 'From' => 'De',
+ 'From Warehouse' => 'Do Almoxarifado',
+ 'GIFI' => 'CFOP - Código Fiscal da Operação',
+ 'GIFI deleted!' => 'CFOP apagado!',
+ 'GIFI missing!' => 'CFOP faltando!',
+ 'GIFI saved!' => 'CFOP salvo!',
+ 'GL' => 'Conta',
+ 'GL Reference Number' => 'Número de Referência da Conta',
+ 'GL Transaction' => 'Transação do Livro Razão',
+ 'General Ledger' => 'Livro Razão',
+ 'Generate' => 'Gerar',
+ 'Generate Orders' => 'Gerar Pedidos',
+ 'Generate Purchase Orders' => 'Gerar Ordens de Compra',
+ 'Generate Purchase Orders from Sales Order' => 'Gerar Ordens de Compra a partir dos Pedidos de Venda',
+ 'Generate Sales Order' => 'Gerar Pedidos de Venda',
+ 'Generate Sales Order from Purchase Orders' => 'Gerar Pedidos de Venda a partir das Ordens de Compra',
+ 'Generate Sales Orders' => 'Pedidos de Venda',
+ 'Goods & Services' => 'Produtos e Serviços',
+ 'Group' => 'Grupo',
+ 'Group Items' => 'Ítens do Grupo',
+ 'Group Translations' => 'Grupo de Traduções',
+ 'Group deleted!' => 'Grupo apagado!',
+ 'Group missing!' => 'Grupo faltando!',
+ 'Group saved!' => 'Grupo salvo!',
+ 'Groups' => 'Grupos',
+ 'HR' => 'Recursos Humanos',
+ 'HTML Templates' => 'Modelos HTML',
+ 'Heading' => 'Cabeçalho',
+ 'History' => 'Histórico',
+ 'Home Phone' => 'Fone residencial',
+ 'Host' => 'Servidor',
+ 'Hostname missing!' => 'Nome do servidor faltando!',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Image' => 'Imagem',
+ 'In-line' => 'em linha',
+ 'Inactive' => 'Inativo',
+ 'Include Exchange Rate Difference' => 'Incluir diferença de taxa de câmbio',
+ 'Include Payment' => 'Incluir Pagamento',
+ 'Include in Report' => 'Incluir no Relatório',
+ 'Include in drop-down menus' => 'Incluir nos menus drop-down (tipo cortina)',
+ 'Income' => 'Receita',
+ 'Income Statement' => 'Apuração de L&P',
+ 'Income account does not exist!' => 'Não existe conta de resultados',
+ 'Incorrect Dataset version!' => 'Versão incorreta de grupos de dados!',
+ 'Increase' => 'Incrementar',
+ 'Individual Items' => 'Ítens individuais',
+ 'Internal Notes' => 'Notas internas',
+ 'Inventory' => 'Inventário',
+ 'Inventory account does not exist!' => 'Não existe conta de inventário',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Quantidade em estoque TEM de ser zero ANTES que você possa tornar este conjunto obsoleto!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Quantidade em estoque TEM de ser zero ANTES que você possa tornar este item obsoleto!',
+ 'Inventory saved!' => 'Inventário salvo!',
+ 'Inventory transferred!' => 'Inventário transferido!',
+ 'Invoice' => 'Fatura',
+ 'Invoice Date' => 'Data da Fatura',
+ 'Invoice Date missing!' => 'Data da Fatura não encontrada!',
+ 'Invoice Number' => 'Número da Fatura',
+ 'Invoice Number missing!' => 'Número da Fatura não encontrado!',
+ 'Invoice deleted!' => 'Fatura apagada!',
+ 'Invoices' => 'Faturas',
+ 'Is this a summary account to record' => 'Esta é uma conta consolidada a registrar?',
+ 'Item' => 'Item',
+ 'Item already on pricelist!' => 'O item já está na lista de preços',
+ 'Item deleted!' => 'Item apagado!',
+ 'Item not on file!' => 'Item não está no arquivo!',
+ 'Items' => 'Ítens',
+ 'Jan' => 'Jan',
+ 'January' => 'Janeiro',
+ 'Job' => 'Serviço',
+ 'Job Description' => 'Descrição do serviço',
+ 'Job Name' => 'Nome do serviço',
+ 'Job Number' => 'Número do serviço',
+ 'Job Number missing!' => 'Faltando o número do serviço',
+ 'Job deleted!' => 'Serviço apagado',
+ 'Job saved!' => 'Serviço salvo',
+ 'Jobs' => 'Serviços',
+ 'Jul' => 'Jul',
+ 'July' => 'Julho',
+ 'Jun' => 'Jun',
+ 'June' => 'Junho',
+ 'LaTeX Templates' => 'Modelos LaTeX',
+ 'Labor Code' => 'Código da Mão-de-Obra',
+ 'Labor Code missing!' => 'Faltando o Código da Mão-de-Obra',
+ 'Labor/Overhead' => 'Mão-de-Obra/Sobretaxa',
+ 'Language' => 'Idioma',
+ 'Language deleted!' => 'Idioma apagado!',
+ 'Language saved!' => 'Idioma salvo!',
+ 'Languages' => 'Idiomas',
+ 'Languages not defined!' => 'Idiomas não definidos!',
+ 'Last Cost' => 'Último Custo',
+ 'Last Numbers & Default Accounts' => 'Últimos números e Contas Padrão',
+ 'Lead' => 'Lead',
+ 'Leadtime' => 'Prazo Entrega',
+ 'Leave host and port field empty unless you want to make a remote connection.' => 'Deixe os campos de servidor e porta vazios a menos que você queira fazer uma conexão remota',
+ 'Liability' => 'Passivo',
+ 'Licensed to' => 'Licenciado a',
+ 'Line Total' => 'Total da linha',
+ 'Link' => 'Ligar',
+ 'Link Accounts' => 'Associar Contas',
+ 'List' => 'Lista',
+ 'List Accounts' => 'Listar Contas',
+ 'List Businesses' => 'Listar Negócios',
+ 'List Departments' => 'Listar Departamentos',
+ 'List GIFI' => 'Listar CFOP',
+ 'List Languages' => 'Listar Idiomas',
+ 'List Price' => 'Preço de lista',
+ 'List Projects' => 'Listar Projetos',
+ 'List SIC' => 'Listar SIC',
+ 'List Transactions' => 'Listar Transações',
+ 'List Warehouses' => 'Listar Almoxarifados',
+ 'Lock System' => 'Travar o sistema',
+ 'Lockfile created!' => 'Arquivo de trava criado!',
+ 'Lockfile removed!' => 'Arquivo de trava removido!',
+ 'Login' => 'Entrar',
+ 'Login name missing!' => 'Faltando o nome de acesso!',
+ 'Logout' => 'Sair',
+ 'Make' => 'Marca',
+ 'Manager' => 'Gerente',
+ 'Mar' => 'Mar',
+ 'March' => 'Março',
+ 'Marked entries printed!' => 'Entradas marcadas impressas!',
+ 'Markup' => 'Margem',
+ 'Maximum' => 'Máximo',
+ 'May' => 'Mai',
+ 'May ' => 'Maio',
+ 'Memo' => 'Memorando',
+ 'Menu Width' => 'Largura do Menu',
+ 'Message' => 'Mensagem',
+ 'Method' => 'Método',
+ 'Microfiche' => 'Microficha',
+ 'Model' => 'Modelo',
+ 'Monday' => 'Segunda-feira',
+ 'Month' => 'Mês',
+ 'Month(s)' => 'Mês(es)',
+ 'Months' => 'Mêses',
+ 'Multibyte Encoding' => 'Multibyte Encoding',
+ 'N/A' => 'N/D',
+ 'Name' => 'Nome',
+ 'Name missing!' => 'Nome faltando!',
+ 'New Templates' => 'Novos Modelos',
+ 'New Window' => 'Nova Janela',
+ 'Next' => 'Próximo',
+ 'Next Date' => 'Próxima Data',
+ 'Next Number' => 'Próximo Número',
+ 'No' => 'Não',
+ 'No Database Drivers available!' => 'Nenhum driver de banco de dados disponível!',
+ 'No Dataset selected!' => 'Nenhum conjunto de dados selecionado!',
+ 'No Employees on file!' => 'Nenhum empregado no arquivo',
+ 'No History!' => 'Nenhum histórico!',
+ 'No Labor codes on file!' => 'Nenhum código de mão-de-obra no arquivo',
+ 'No Parts on file!' => 'Nenhum item no arquivo',
+ 'No Services on file!' => 'Nenhum serviço na fila!',
+ 'No email address for' => 'Nenhum endereço de e-mail para',
+ 'No open Jobs!' => 'Nenhum serviço aberto',
+ 'No open Projects!' => 'Nenhum projeto aberto',
+ 'No.' => 'Nº',
+ 'Non-chargeable' => 'Não-Faturáveis',
+ 'Non-taxable' => 'Não Tributadas',
+ 'Non-taxable Purchases' => 'Compras Isentas',
+ 'Non-taxable Sales' => 'Vendas Isentas',
+ 'Non-tracking Items' => 'Itens não-rastreáveis',
+ 'Notes' => 'Notas',
+ 'Nothing entered!' => 'Nada entrou!',
+ 'Nothing open!' => 'Nenhuma aberta!',
+ 'Nothing selected!' => 'Nada foi selecionado!',
+ 'Nothing to delete!' => 'Nada para apagar!',
+ 'Nothing to print!' => 'Nada para imprimir',
+ 'Nothing to transfer!' => 'Nada a transferir!',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembro',
+ 'Number' => 'Número',
+ 'Number Format' => 'Formato de números',
+ 'Number missing in Row' => 'Número faltando na linha',
+ 'O' => 'A',
+ 'OH' => 'HE',
+ 'Obsolete' => 'Obsoleto',
+ 'Oct' => 'Out',
+ 'October' => 'Outubro',
+ 'On Hand' => 'Em Estoque',
+ 'Onhand' => 'Em mãos',
+ 'Open' => 'Em Aberto',
+ 'Oracle Database Administration' => 'Administração da Base de Dados Oracle',
+ 'Order' => 'Pedido',
+ 'Order Date' => 'Data do Pedido',
+ 'Order Date missing!' => 'Data do Pedido Faltando',
+ 'Order Entry' => 'Entrada de Pedido',
+ 'Order Number' => 'Número do Pedido',
+ 'Order Number missing!' => 'Número do pedido faltando!',
+ 'Order deleted!' => 'Pedido apagado!',
+ 'Order generation failed!' => 'A geração de pedidos falhou!',
+ 'Order saved!' => 'Pedido salvo!',
+ 'Orders generated!' => 'Pedidos gerados!',
+ 'Orphaned' => 'Órfãs',
+ 'Out of balance transaction!' => 'Transação fora de balanço!',
+ 'Out of balance!' => 'Fora de balanço!',
+ 'Outstanding' => 'Pendente',
+ 'Overdue' => 'Vencido',
+ 'PDF' => 'PDF',
+ 'PO' => 'OC',
+ 'PO Number' => 'Número da OC',
+ 'POS' => 'PDV',
+ 'POS Invoice' => 'Fatura de PDV',
+ 'Packing List' => 'Lista de Conteúdo',
+ 'Packing List Date missing!' => 'Data da lista de conteúdo faltando!',
+ 'Packing List Number missing!' => 'Número da lista de conteúdo faltando!',
+ 'Packing Lists' => 'Listas de Conteúdo',
+ 'Paid' => 'Total Efetuado',
+ 'Part' => 'Item',
+ 'Part Number' => 'Número do Item',
+ 'Partnumber' => 'NúmerodoItem',
+ 'Parts' => 'Itens',
+ 'Parts Requirements' => 'Itens requeridos',
+ 'Password' => 'Senha',
+ 'Password changed!' => 'Senha trocada!',
+ 'Password does not match!' => 'A senha não confere!',
+ 'Passwords do not match!' => 'As senhas não conferem!',
+ 'Payables' => 'A Pagar',
+ 'Payment' => 'Pagamento',
+ 'Payment date missing!' => 'Data de pagamento faltando!',
+ 'Payment posted!' => 'Pagamento Lançado',
+ 'Payments' => 'Pagamentos',
+ 'Payments posted!' => 'Pagamentos lançados',
+ 'Payroll Deduction' => 'Dedução da Folha de Pagamento',
+ 'Period' => 'Período',
+ 'Pg Database Administration' => 'Administração do banco de dados PostgreSQL',
+ 'PgPP Database Administration' => 'Administração do banco de dados PgPP',
+ 'Phone' => 'Fone',
+ 'Pick List' => 'Lista de Seleção',
+ 'Pick Lists' => 'Listas de Seleção',
+ 'Port' => 'Porta',
+ 'Port missing!' => 'Porta faltando!',
+ 'Pos' => 'Pos',
+ 'Post' => 'Lançar',
+ 'Post as new' => 'Lançar como novo',
+ 'Posted!' => 'Lançado!',
+ 'Posting' => 'Lançando',
+ 'Posting failed!' => 'O lançamento falhou!',
+ 'Postscript' => 'Postscript',
+ 'Preferences' => 'Preferências',
+ 'Preferences saved!' => 'Preferências Salvas!',
+ 'Prepayment' => 'Pré-pagamento',
+ 'Price' => 'Preço',
+ 'Pricegroup' => 'Grupo de Preço',
+ 'Pricegroup deleted!' => 'Grupo de Preço apagado!',
+ 'Pricegroup missing!' => 'Grupo de Preço faltando!',
+ 'Pricegroup saved!' => 'Grupo de Preço salvo!',
+ 'Pricegroups' => 'Grupos de Preços',
+ 'Pricelist' => 'Lista de Preços',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir e Lançar',
+ 'Print and Post as new' => 'Imprimir e Lançar como Novo',
+ 'Print and Save' => 'Imprimir e Salvar',
+ 'Print and Save as new' => 'Imprimir e Salvar como Novo',
+ 'Print and post as new' => 'Imprimir e Lançar como Novo',
+ 'Print and save as new' => 'Imprimir e Salvar como Novo',
+ 'Printed' => 'Impresso',
+ 'Printer' => 'Impressora',
+ 'Printing' => 'Imprimindo',
+ 'Printing ... ' => 'Imprimindo...',
+ 'Process Transactions' => 'Processando Transações',
+ 'Production' => 'Produção',
+ 'Profit Center' => 'Centro de lucros',
+ 'Project' => 'Projeto',
+ 'Project Description Translations' => 'Traduções de Descrição de Projeto',
+ 'Project Name' => 'Nome do Projeto',
+ 'Project Number' => 'Número do Projeto',
+ 'Project Number missing!' => 'Número do Projeto faltando!',
+ 'Project Transactions' => 'Transações do Projeto',
+ 'Project deleted!' => 'Projeto apagado!',
+ 'Project not on file!' => 'Projeto não está no arquivo!',
+ 'Project saved!' => 'Projeto salvo!',
+ 'Project/Job Name' => 'Projeto/Nome do Seriço',
+ 'Project/Job Number' => 'Projeto/Número do Seriço',
+ 'Projects' => 'Projetos',
+ 'Purchase Order' => 'Ordem de Compra',
+ 'Purchase Order Number' => 'Número da Ordem de Compra',
+ 'Purchase Orders' => 'Ordens de Compra',
+ 'Qty' => 'Qtd',
+ 'Quantity exceeds available units to stock!' => 'Quantidade excede unidades disponíveis para estocar!',
+ 'Quarter' => 'Trimestre',
+ 'Queue' => 'Fila',
+ 'Queued' => 'Enfileirado',
+ 'Quotation' => 'Cotação',
+ 'Quotation ' => 'Cotação ',
+ 'Quotation Date' => 'Data da Cotação',
+ 'Quotation Date missing!' => 'Data da Cotação faltando!',
+ 'Quotation Number' => 'Número da Cotação',
+ 'Quotation Number missing!' => 'Número da Cotação faltando!',
+ 'Quotation deleted!' => 'Cotação apagada!',
+ 'Quotations' => 'Cotações',
+ 'R' => 'R',
+ 'RFQ' => 'RDC',
+ 'RFQ ' => 'RDC ',
+ 'RFQ Number' => 'Número da RDC',
+ 'RFQs' => 'RDCs',
+ 'ROP' => 'PDR',
+ 'Rate' => 'Taxa',
+ 'Rate missing!' => 'Taxa faltando!',
+ 'Recd' => 'Recebidos',
+ 'Receipt' => 'Recibimento',
+ 'Receipt posted!' => 'Recibimento lançado!',
+ 'Receipts' => 'Recibimentos',
+ 'Receivables' => 'A Receber',
+ 'Receive' => 'Receber',
+ 'Receive Merchandise' => 'Receber Mercadoria',
+ 'Reconciliation' => 'Reconciliação',
+ 'Reconciliation Report' => 'Relatório de Reconciliação',
+ 'Record in' => 'Registrar em',
+ 'Recurring Transaction' => 'Transação Recorrente',
+ 'Recurring Transactions' => 'Transações Recorrentes',
+ 'Reference' => 'Referência',
+ 'Remaining' => 'Restante',
+ 'Remove' => 'Remover',
+ 'Remove Audit trail up to' => 'Remover registros de auditoria até ',
+ 'Remove Audit trails up to' => 'Remover registros de auditoria até ',
+ 'Removed spoolfiles!' => 'Remover arquivos temporários',
+ 'Removing marked entries from queue ...' => 'Removendo entradas marcadas da fila ...',
+ 'Repeat' => 'Repetir',
+ 'Report for' => 'Relatório para',
+ 'Reports' => 'Relatórios',
+ 'Req' => 'Req',
+ 'Request for Quotation' => 'Requisição de Cotação',
+ 'Request for Quotations' => 'Requisição de Cotações',
+ 'Required by' => 'Requerido por',
+ 'Requirements' => 'Requerimentos',
+ 'Retained Earnings' => 'Lucros Retidos',
+ 'Role' => 'Papel / Perfil',
+ 'S' => 'S',
+ 'SIC' => 'SIC',
+ 'SIC deleted!' => 'SIC apagado',
+ 'SIC saved!' => 'SIC salvo',
+ 'SKU' => 'SKU',
+ 'SO' => 'OS',
+ 'SSN' => 'SSN',
+ 'Sale' => 'Venda',
+ 'Sales' => 'Vendas',
+ 'Sales Invoice' => 'Fatura de Venda',
+ 'Sales Invoice ' => 'Fatura de Venda ',
+ 'Sales Invoice.' => 'Fatura de Venda.',
+ 'Sales Invoice/AR Transaction Number' => 'Fatura de Venda/Númenro da Transação de CR',
+ 'Sales Invoices' => 'Faturas de Venda',
+ 'Sales Order' => 'Pedido de Venda',
+ 'Sales Order Number' => 'Número do Pedido de Venda',
+ 'Sales Orders' => 'Pedidos de Venda',
+ 'Sales Quotation Number' => 'Númenro da Cotação de Vendas',
+ 'Salesperson' => 'Vendedor',
+ 'Saturday' => 'Sábado',
+ 'Save' => 'Salvar',
+ 'Save Pricelist' => 'Salvar Lista de Preços',
+ 'Save Schedule' => 'Salvar a Programação',
+ 'Save as new' => 'Salvar como novo',
+ 'Save to File' => 'Salvar para Arquivo',
+ 'Saving' => 'Salvando',
+ 'Schedule' => 'Programação',
+ 'Scheduled' => 'Programado',
+ 'Screen' => 'Tela',
+ 'Search' => 'Buscar',
+ 'Select' => 'Selecionar',
+ 'Select Customer' => 'Selecionar Cliente',
+ 'Select Vendor' => 'Selecionar Fornecedor',
+ 'Select a Printer!' => 'Selecione uma Impressora!',
+ 'Select a printer!' => 'Selecione uma Impressora',
+ 'Select all' => 'Selecionar todos',
+ 'Select from one of the items below' => 'Selecione um dos ítens abaixo',
+ 'Select from one of the names below' => 'Selecione um dos nomes abaixo',
+ 'Select from one of the projects below' => 'Selecione um dos projetos abaixo',
+ 'Select items' => 'Selecionar itens',
+ 'Select payment' => 'Selecionar o Pagamento',
+ 'Select postscript or PDF!' => 'Selecionar Postscript ou PDF',
+ 'Select txt, postscript or PDF!' => 'Selecionar txt, Postscript ou PDF!',
+ 'Sell' => 'Vender',
+ 'Sell Price' => 'Preço de Venda',
+ 'Send by E-Mail' => 'Enviar por E-mail',
+ 'Sending' => 'Enviando',
+ 'Sep' => 'Set',
+ 'September' => 'Setembro',
+ 'Serial No.' => 'Nº Série',
+ 'Serial Number' => 'Número de Série',
+ 'Service' => 'Serviço',
+ 'Service Code' => 'Código do Serviço',
+ 'Service Code missing!' => 'Faltando o código do serviço',
+ 'Service/Labor Code' => 'Serviço/Código da Mão-de-obra',
+ 'Services' => 'Serviços',
+ 'Session Timeout' => 'Tempo Esgotado',
+ 'Session expired!' => 'Sessão expirada',
+ 'Setup Templates' => 'Modelos de Configuração',
+ 'Ship' => 'Despachar',
+ 'Ship Merchandise' => 'Despachar mercadoria',
+ 'Ship to' => 'Enviar para',
+ 'Ship via' => 'Enivar por',
+ 'Shipping' => 'Despacho de Mercadorias',
+ 'Shipping Address' => 'Endereço para entrega',
+ 'Shipping Date' => 'Data do Despacho',
+ 'Shipping Date missing!' => 'Data do Despacho faltando!',
+ 'Shipping Point' => 'Local do despacho',
+ 'Short' => 'Em falta',
+ 'Signature' => 'Assinatura',
+ 'Source' => 'Fonte',
+ 'Spoolfile' => 'Arquivo temporário',
+ 'Standard' => 'Padrão',
+ 'Standard Industrial Codes' => 'Códigos Industriais Padrão',
+ 'Startdate' => 'Data Inicial',
+ 'State' => 'Estado',
+ 'State/Province' => 'Estado / Província',
+ 'Statement' => 'Declaração',
+ 'Statement Balance' => 'Declaração de Balanço',
+ 'Statement sent to' => 'Declaração enviada para',
+ 'Statements sent to printer!' => 'Declaração enviada para impressora!',
+ 'Stock' => 'Estoque',
+ 'Stock Assembly' => 'Estoque de Conjuntos',
+ 'Stock Finished Goods' => 'Estoque de Produtos Acabados',
+ 'Stocking Date' => 'Data da Estocagem',
+ 'Stores Card' => 'Cartão de Loja',
+ 'Stores Card saved!' => 'Cartão de Loja salvo',
+ 'Stores Cards' => 'Cartões de Loja',
+ 'Stylesheet' => 'Folha de estilos',
+ 'Sub-contract GIFI' => 'CFOP do sub contrato',
+ 'Subject' => 'Assunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Sumário',
+ 'Sunday' => 'Domingo',
+ 'Supervisor' => 'Supervisor',
+ 'System' => 'Sistema',
+ 'System Defaults' => 'Configurações Padrão do Sistema',
+ 'Tax' => 'Imposto',
+ 'Tax Account' => 'Conts de Imposto',
+ 'Tax Accounts' => 'Contas de Impostos',
+ 'Tax Included' => 'Impostos incluídos',
+ 'Tax Number' => 'Número do Imposto',
+ 'Tax Number / SSN' => 'Número do Imposto / SSN',
+ 'Tax collected' => 'Imposto recolhido',
+ 'Tax paid' => 'Imposto pago',
+ 'Taxable' => 'Sujeito a impostos',
+ 'Template saved!' => 'Modelo salvo!',
+ 'Templates' => 'Modelos',
+ 'Terms' => 'Crédito Líquido',
+ 'Text' => 'Texto',
+ 'Text Templates' => 'Modelos de texto',
+ 'The following Datasets are not in use and can be deleted' => 'Os seguintes conjuntos de dados NÃO estão em uso e PODEM ser apagados',
+ 'The following Datasets need to be updated' => 'Os seguintes grupos de dados precisam ser atualizados',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Esta é uma verificação preliminar por fontes existentes. Nada será criado ou apagado neste estágio!',
+ 'Thursday' => 'Quinta-feira',
+ 'Till' => 'Até',
+ 'Time' => 'Hora',
+ 'Time Card' => 'Apontamento',
+ 'Time Card deleted!' => 'Apontamento apagado',
+ 'Time Card saved!' => 'Apontamento salvo',
+ 'Time Cards' => 'Apontamentos',
+ 'Time In' => 'Hora de Entrada',
+ 'Time Out' => 'Hora de Saída',
+ 'Times' => 'Vêzes',
+ 'To' => 'Até',
+ 'To Warehouse' => 'Para o Almoxarifado',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Para adicionar um usuário a um grupo edite um nome, troque o nome de acesso/login e salve. Um novo usuário com as mesmas variáveis será então salvo sob o novo nome de acesso/login.',
+ 'Top Level' => 'Nível superior',
+ 'Total' => 'Total',
+ 'Tracking Items' => 'Itens Rastreáveis',
+ 'Trade Discount' => 'Desconto de comércio',
+ 'Transaction' => 'Transação',
+ 'Transaction Date missing!' => 'Data de transação faltando!',
+ 'Transaction Dates' => 'Datas das Transações',
+ 'Transaction deleted!' => 'Transação apagada!',
+ 'Transaction posted!' => 'Transação lançada',
+ 'Transaction reversal enforced for all dates' => 'Reversão de transação forçada para todas as datas.',
+ 'Transaction reversal enforced up to' => 'Reversão de transação forçada até ',
+ 'Transactions' => 'Tansações',
+ 'Transfer' => 'Transferir',
+ 'Transfer Inventory' => 'Transferência de Inventário',
+ 'Transfer from' => 'Trasnferir de',
+ 'Transfer to' => 'Transferir para',
+ 'Translation' => 'Tradução',
+ 'Translation deleted!' => 'Tradução apagada!',
+ 'Translation not on file!' => 'Tradução inexistente',
+ 'Translations' => 'Traduções',
+ 'Translations saved!' => 'Traduções salvas!',
+ 'Trial Balance' => 'Balanço de Verificação',
+ 'Tuesday' => 'Terça-feira',
+ 'Type of Business' => 'Tipo de Negócio',
+ 'Unit' => 'Unidade',
+ 'Unit Rate' => 'Taxa Unitária',
+ 'Unit of measure' => 'Unidade de medida',
+ 'Unlock System' => 'Destravar o sistema',
+ 'Update' => 'Atualizar',
+ 'Update Dataset' => 'Atualizar grupo de dados',
+ 'Updated' => 'Atualizado',
+ 'Upgrading to Version' => 'Atualizado para versão',
+ 'Use Templates' => 'Use Modelos',
+ 'User' => 'Usuário',
+ 'User deleted!' => 'Usuário apagado!',
+ 'User saved!' => 'Usuário salvo',
+ 'Valid until' => 'Válido até',
+ 'Vendor' => 'Fornecedor',
+ 'Vendor History' => 'Histórico do Fornecedor',
+ 'Vendor Invoice' => 'Fatura de Compra',
+ 'Vendor Invoice ' => 'Fatura de Compra ',
+ 'Vendor Invoice.' => 'Fatura de Compra.',
+ 'Vendor Invoice/AP Transaction Number' => 'Fatura do Fornecedor/Número da Transação de CP',
+ 'Vendor Invoices' => 'Faturas de Compra',
+ 'Vendor Number' => 'ID do Fornecedor',
+ 'Vendor deleted!' => 'Fornecedor apagado!',
+ 'Vendor missing!' => 'Fornecedor faltando!',
+ 'Vendor not on file!' => 'Fornecedor não está no arquivo!',
+ 'Vendor saved!' => 'Fornecedor salvo!',
+ 'Vendors' => 'Fornecedores',
+ 'Version' => 'Versão',
+ 'Warehouse' => 'Almoxarifado',
+ 'Warehouse deleted!' => 'Almoxarifado apagado!',
+ 'Warehouse saved!' => 'Almoxarifado salvo!',
+ 'Warehouses' => 'Almoxarifados',
+ 'Warning!' => 'Cuidado!',
+ 'Wednesday' => 'Quarta-feira',
+ 'Week' => 'Semana',
+ 'Week(s)' => 'Semana(s)',
+ 'Weeks' => 'Semanas',
+ 'Weight' => 'Peso',
+ 'Weight Unit' => 'Unidade de Peso',
+ 'What type of item is this?' => 'Que tipo de Item é este?',
+ 'Work Order' => 'Ordem de Serviço',
+ 'Work Orders' => 'Ordens de Serviço',
+ 'Work Phone' => 'Fone comercial',
+ 'Year' => 'Ano',
+ 'Year(s)' => 'Ano(s)',
+ 'Yearend' => 'Fim do ano',
+ 'Yearend date missing!' => 'Data do fim do ano faltando!',
+ 'Yearend posted!' => 'Fim do ano lançado!',
+ 'Yearend posting failed!' => 'Lançamento do fim do ano falhou!',
+ 'Years' => 'Anos',
+ 'Yes' => 'Sim',
+ 'You are logged out' => 'Você saiu do sistema',
+ 'You are posting an existing transaction!' => 'Você está lançando uma transação existente!',
+ 'You are printing and posting an existing transaction!' => 'Você está imprimindo lançando uma transação existente!',
+ 'You are printing and saving an existing order' => 'Você está imprimindo e salvando um pedido existente!',
+ 'You are printing and saving an existing quotation' => 'Você está imprimindo e salvando uma cotação existente!',
+ 'You are printing and saving an existing transaction!' => 'Você está imprimindo e salvando uma transação existente!',
+ 'You are saving an existing order' => 'Você está salvando um pedido existente!',
+ 'You are saving an existing quotation' => 'Você está salvando uma cotação existente!',
+ 'You are saving an existing transaction!' => 'Você está salvando uma transação existente!',
+ 'You did not enter a name!' => 'Você não entrou com um nome',
+ 'You must enter a host and port for local and remote connections!' => 'Você precisa entrar um servidor e uma porta para conexões locais e remotas!',
+ 'Zip/Postal Code' => 'CEP',
+ 'account cannot be set to any other type of account' => 'conta não pode ser configurada para qualquer outro tipo de conta',
+ 'as at' => 'como em',
+ 'days' => 'dias',
+ 'does not exist' => 'Não existe',
+ 'done' => 'feito',
+ 'ea' => 'cada',
+ 'failed' => 'falhou',
+ 'for' => 'para',
+ 'for Period' => 'pelo período',
+ 'is already a member!' => 'já é um membro!',
+ 'localhost' => 'servidor local',
+ 'locked!' => 'travado!',
+ 'partsgroup' => 'grupodeitens',
+ 'posted!' => 'lançado!',
+ 'sent' => 'enviado',
+ 'successfully created!' => 'Criado com sucesso!',
+ 'successfully deleted!' => 'Apagado com sucesso!',
+ 'time(s)' => 'vêz(es)',
+ 'unexpected error!' => 'erro não esperado',
+ 'website' => 'website',
+};
+
+1;
diff --git a/locale/br/am b/locale/br/am
new file mode 100755
index 00000000..ffd71112
--- /dev/null
+++ b/locale/br/am
@@ -0,0 +1,312 @@
+$self{texts} = {
+ 'AP' => 'Contas a Pagar',
+ 'AR' => 'Contas a Receber',
+ 'About' => 'Sobre',
+ 'Account' => 'Conta',
+ 'Account Number' => 'Número da Conta',
+ 'Account Number missing!' => 'Número da Conta não encontrado!',
+ 'Account Type' => 'Tipo de Conta',
+ 'Account Type missing!' => 'Tipo de Conta não encontrado!',
+ 'Account deleted!' => 'Conta apagada!',
+ 'Account does not exist!' => 'Conta inexistente!',
+ 'Account saved!' => 'Conta salva!',
+ 'Accounting Menu' => 'Menu de Contabilidade',
+ 'Accrual' => 'Resultado final',
+ 'Activate Audit trail' => 'Ativar registros de Auditoria',
+ 'Add Account' => 'Adicionar Conta',
+ 'Add Business' => 'Adicionar Atividade Comercial',
+ 'Add Department' => 'Adicionar Departamento',
+ 'Add GIFI' => 'Adicionar CFOP',
+ 'Add Language' => 'Adicionar Idioma',
+ 'Add SIC' => 'Adicionar SIC',
+ 'Add Warehouse' => 'Adicionar Almoxarifado',
+ 'Address' => 'Endereço',
+ 'Amount' => 'Total',
+ 'Asset' => 'Ativo',
+ 'Audit Control' => 'Controle de Auditoria',
+ 'Audit trail disabled' => 'Registro de Auditoria desabilitado',
+ 'Audit trail enabled' => 'Registro de Auditoria habilitado',
+ 'Audit trail removed up to' => 'Registro de Auditoria memovido até',
+ 'Backup sent to' => 'Cópia reserva enviada para',
+ 'Bin List' => 'Lista de preteleiras',
+ 'Books are open' => 'Livros estão abertos',
+ 'Business Number' => 'Número de negócio',
+ 'Business deleted!' => 'Negócio apagado',
+ 'Business saved!' => 'Negócio salvo',
+ 'COGS' => 'CMV',
+ 'Cannot delete account!' => 'Não pode apagar conta!',
+ 'Cannot delete default account!' => 'Não pode apagar conta padrão!',
+ 'Cannot save account!' => 'Não pode salvar conta!',
+ 'Cannot save defaults!' => 'Não pode salvar configurações padrão!',
+ 'Cannot save preferences!' => 'Não pode salvar preferências!',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Não pode haver conta para mais de um dos CR, CP ou IC',
+ 'Cannot set multiple options for' => 'Não pode haver múltipla escolha para',
+ 'Cash' => 'Caixa',
+ 'Chart of Accounts' => 'Plano de Contas',
+ 'Close Books up to' => 'Encerrar livros até',
+ 'Code' => 'Código',
+ 'Code missing!' => 'Código faltando!',
+ 'Company' => 'Empresa',
+ 'Confirm' => 'Confirmar',
+ 'Confirm!' => 'Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Contra' => 'Contra',
+ 'Copy to COA' => 'Copiar para Plano de Contas',
+ 'Cost Center' => 'Centro de Custos',
+ 'Credit' => 'Crédito',
+ 'Customer Number' => 'Número do Cliente',
+ 'Database Host' => 'Servidor de Banco de Dados',
+ 'Dataset' => 'Conjunto de dados',
+ 'Date Format' => 'Formato de Data',
+ 'Day' => 'Dia',
+ 'Days' => 'Dias',
+ 'Debit' => 'Débito',
+ 'Default Template' => 'Modelo Padrão',
+ 'Defaults saved!' => 'Configurações padrão salvas!',
+ 'Delete' => 'Apagar',
+ 'Delete Account' => 'Apagar Conta',
+ 'Deleting a language will also delete the templates for the language' => 'Apagar o idioma também apagará os modelos do idioma',
+ 'Department deleted!' => 'Departamento apagado!',
+ 'Department saved!' => 'Departamento salvo!',
+ 'Departments' => 'Departamentos',
+ 'Description' => 'Descrição',
+ 'Description missing!' => 'Descrição faltando!',
+ 'Discount' => 'Desconto',
+ 'Dropdown Limit' => 'Limite de dropdown',
+ 'E-mail' => 'E-Mail',
+ 'E-mail address missing!' => 'Endereço de E-mail faltando!',
+ 'Edit' => 'Editar',
+ 'Edit Account' => 'Editar Conta',
+ 'Edit Business' => 'Editar Negócio',
+ 'Edit Department' => 'Editar Departamento',
+ 'Edit GIFI' => 'Editar CFOP',
+ 'Edit Language' => 'Editar Idioma',
+ 'Edit Preferences for' => 'Editar Preferências para',
+ 'Edit SIC' => 'Editar SIC',
+ 'Edit Template' => 'Editar Modelo',
+ 'Edit Warehouse' => 'Editar Almoxarifado',
+ 'Employee Number' => 'Número do Empregado',
+ 'Ends' => 'Términos',
+ 'Enforce transaction reversal for all dates' => 'Forçar execução de reversão de transação para todas as datas',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Entre com até 3 letras separadas por dois pontos (i.e CAD:USD:EUR) para sua moeda local e estrangeira',
+ 'Equity' => 'Capital',
+ 'Every' => 'Cada',
+ 'Expense' => 'Despesa',
+ 'Expense/Asset' => 'Despesa/Ativo',
+ 'Fax' => 'Fax',
+ 'Foreign Exchange Gain' => 'Ganho com câmbio estrangeiro',
+ 'Foreign Exchange Loss' => 'Perda com câmbio estrangeiro',
+ 'GIFI' => 'CFOP - Código Fiscal da Operação',
+ 'GIFI deleted!' => 'CFOP apagado!',
+ 'GIFI missing!' => 'CFOP faltando!',
+ 'GIFI saved!' => 'CFOP salvo!',
+ 'GL' => 'Conta',
+ 'GL Reference Number' => 'Número de Referência da Conta',
+ 'GL Transaction' => 'Transação do Livro Razão',
+ 'Heading' => 'Cabeçalho',
+ 'ID' => 'ID',
+ 'Include in drop-down menus' => 'Incluir nos menus drop-down (tipo cortina)',
+ 'Income' => 'Receita',
+ 'Inventory' => 'Inventário',
+ 'Invoice' => 'Fatura',
+ 'Is this a summary account to record' => 'Esta é uma conta consolidada a registrar?',
+ 'Language' => 'Idioma',
+ 'Language deleted!' => 'Idioma apagado!',
+ 'Language saved!' => 'Idioma salvo!',
+ 'Languages' => 'Idiomas',
+ 'Last Numbers & Default Accounts' => 'Últimos números e Contas Padrão',
+ 'Liability' => 'Passivo',
+ 'Licensed to' => 'Licenciado a',
+ 'Link' => 'Ligar',
+ 'Menu Width' => 'Largura do Menu',
+ 'Method' => 'Método',
+ 'Month' => 'Mês',
+ 'Months' => 'Mêses',
+ 'Name' => 'Nome',
+ 'Next' => 'Próximo',
+ 'Next Number' => 'Próximo Número',
+ 'No' => 'Não',
+ 'No email address for' => 'Sem endereço de email para',
+ 'Non-tracking Items' => 'Itens não-rastreáveis',
+ 'Number' => 'Número',
+ 'Number Format' => 'Formato de números',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de Conteúdo',
+ 'Part Number' => 'Número do Item',
+ 'Password' => 'Senha',
+ 'Password does not match!' => 'A senha não confere!',
+ 'Payables' => 'A Pagar',
+ 'Payment' => 'Pagamento',
+ 'Phone' => 'Fone',
+ 'Pick List' => 'Lista de Seleção',
+ 'Posting' => 'Lançando',
+ 'Postscript' => 'Postscript',
+ 'Preferences saved!' => 'Preferências Salvas!',
+ 'Print' => 'Imprimir',
+ 'Printer' => 'Impressora',
+ 'Printing' => 'Imprimindo',
+ 'Process Transactions' => 'Processando Transações',
+ 'Profit Center' => 'Centro de lucros',
+ 'Purchase Order' => 'Ordem de Compra',
+ 'Purchase Order Number' => 'Número da Ordem de Compra',
+ 'Purchase Orders' => 'Ordens de Compra',
+ 'RFQ Number' => 'Número da RDC',
+ 'Rate' => 'Taxa',
+ 'Receivables' => 'A Receber',
+ 'Recurring Transactions' => 'Transações Recorrentes',
+ 'Reference' => 'Referência',
+ 'Remove Audit trail up to' => 'Remover registros de auditoria até ',
+ 'Retained Earnings' => 'Lucros Retidos',
+ 'SIC deleted!' => 'SIC apagado',
+ 'SIC saved!' => 'SIC salvo',
+ 'Sales Invoice' => 'Fatura de Venda',
+ 'Sales Invoice/AR Transaction Number' => 'Fatura de Venda/Númenro da Transação de CR',
+ 'Sales Order' => 'Pedido de Venda',
+ 'Sales Order Number' => 'Número do Pedido de Venda',
+ 'Sales Orders' => 'Pedidos de Venda',
+ 'Sales Quotation Number' => 'Númenro da Cotação de Vendas',
+ 'Save' => 'Salvar',
+ 'Save as new' => 'Salvar como novo',
+ 'Saving' => 'Salvando',
+ 'Sending' => 'Enviando',
+ 'Session Timeout' => 'Tempo Esgotado',
+ 'Signature' => 'Assinatura',
+ 'Standard Industrial Codes' => 'Códigos Industriais Padrão',
+ 'Stylesheet' => 'Folha de estilos',
+ 'System Defaults' => 'Configurações Padrão do Sistema',
+ 'Tax' => 'Imposto',
+ 'Template saved!' => 'Modelo salvo!',
+ 'Times' => 'Vêzes',
+ 'Tracking Items' => 'Itens Rastreáveis',
+ 'Transaction' => 'Transação',
+ 'Transaction reversal enforced for all dates' => 'Reversão de transação forçada para todas as datas.',
+ 'Transaction reversal enforced up to' => 'Reversão de transação forçada até ',
+ 'Type of Business' => 'Tipo de Negócio',
+ 'Update' => 'Atualizar',
+ 'User' => 'Usuário',
+ 'Vendor Invoice' => 'Fatura de Compra',
+ 'Vendor Invoice/AP Transaction Number' => 'Fatura do Fornecedor/Número da Transação de CP',
+ 'Vendor Number' => 'ID do Fornecedor',
+ 'Version' => 'Versão',
+ 'Warehouse deleted!' => 'Almoxarifado apagado!',
+ 'Warehouse saved!' => 'Almoxarifado salvo!',
+ 'Warehouses' => 'Almoxarifados',
+ 'Week' => 'Semana',
+ 'Weeks' => 'Semanas',
+ 'Weight Unit' => 'Unidade de Peso',
+ 'Work Order' => 'Ordem de Serviço',
+ 'Year' => 'Ano',
+ 'Yearend' => 'Fim do ano',
+ 'Yearend date missing!' => 'Data do fim do ano faltando!',
+ 'Yearend posted!' => 'Fim do ano lançado!',
+ 'Yearend posting failed!' => 'Lançamento do fim do ano falhou!',
+ 'Years' => 'Anos',
+ 'Yes' => 'Sim',
+ 'account cannot be set to any other type of account' => 'conta não pode ser configurada para qualquer outro tipo de conta',
+ 'done' => 'feito',
+ 'failed' => 'falhou',
+ 'localhost' => 'servidor local',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'adicionar_conta' => 'add_account',
+ 'adicionar_atividade_comercial' => 'add_business',
+ 'adicionar_departamento' => 'add_department',
+ 'adicionar_idioma' => 'add_language',
+ 'adicionar_sic' => 'add_sic',
+ 'adicionar_almoxarifado' => 'add_warehouse',
+ 'continuar' => 'continue',
+ 'copiar_para_plano_de_contas' => 'copy_to_coa',
+ 'apagar' => 'delete',
+ 'editar' => 'edit',
+ 'editar_conta' => 'edit_account',
+ 'processando_transações' => 'process_transactions',
+ 'salvar' => 'save',
+ 'salvar_como_novo' => 'save_as_new',
+ 'atualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/br/ap b/locale/br/ap
new file mode 100755
index 00000000..1961ea0d
--- /dev/null
+++ b/locale/br/ap
@@ -0,0 +1,240 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Contas a Pagar Pendentes',
+ 'AP Transaction' => 'Transação - Contas a Pagar',
+ 'AP Transactions' => 'Transações - Contas a Pagar',
+ 'AR Outstanding' => 'Contas a Receber Pendentes',
+ 'AR Transaction' => 'Transação - Contas a Receber',
+ 'AR Transactions' => 'Transações - Contas a Receber',
+ 'Account' => 'Conta',
+ 'Accounting Menu' => 'Menu de Contabilidade',
+ 'Add AP Transaction' => 'Adicionar Transação de CP',
+ 'Add AR Transaction' => 'Adicionar Transação de CR',
+ 'Address' => 'Endereço',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Total Devido',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => 'Tem certeza que quer APAGAR a Transação',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'Não pode apagar transação!',
+ 'Cannot post payment for a closed period!' => 'Não pode lançar pagamento em período fechado!',
+ 'Cannot post transaction for a closed period!' => 'Não pode lançar transação para um período já encerrado!',
+ 'Cannot post transaction!' => 'Não pode lançar transação!',
+ 'Cc' => 'Cc',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Fechado',
+ 'Confirm!' => 'Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Limite de Crédito',
+ 'Curr' => 'Moeda',
+ 'Currency' => 'Moeda',
+ 'Current' => 'Corrente',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => 'Cliente faltando!',
+ 'Customer not on file!' => 'Cliente não está no arquivo!',
+ 'Date' => 'Data',
+ 'Date Paid' => 'Data de pagamento',
+ 'Day(s)' => 'Dia(s)',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezembro',
+ 'Delete' => 'Apagar',
+ 'Delete Schedule' => 'Apagar a Programação',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descrição',
+ 'Detail' => 'Detalhe',
+ 'Due Date' => 'Data de Vencimento',
+ 'Due Date missing!' => 'Data de Vencimento faltando!',
+ 'E-mail' => 'E-Mail',
+ 'E-mail message' => 'Mensagem do e-mail',
+ 'Edit AP Transaction' => 'Editar Transação de CP',
+ 'Edit AR Transaction' => 'Editar Transação de CR',
+ 'Employee' => 'Empregado',
+ 'Every' => 'Cada',
+ 'Exch' => 'Câmbio',
+ 'Exchange Rate' => 'Taxa de câmbio',
+ 'Exchange rate for payment missing!' => 'Falta a taxa de câmbio para o pagamento!',
+ 'Exchange rate missing!' => 'Falta a taxa de câmbio!',
+ 'Feb' => 'Fev',
+ 'February' => 'Fevereiro',
+ 'For' => 'Para',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'Include Payment' => 'Incluir Pagamento',
+ 'Include in Report' => 'Incluir no Relatório',
+ 'Invoice' => 'Fatura',
+ 'Invoice Date' => 'Data da Fatura',
+ 'Invoice Date missing!' => 'Data da Fatura não encontrada!',
+ 'Invoice Number' => 'Número da Fatura',
+ 'Jan' => 'Jan',
+ 'January' => 'Janeiro',
+ 'Jul' => 'Jul',
+ 'July' => 'Julho',
+ 'Jun' => 'Jun',
+ 'June' => 'Junho',
+ 'Manager' => 'Gerente',
+ 'Mar' => 'Mar',
+ 'March' => 'Março',
+ 'May' => 'Mai',
+ 'May ' => 'Maio',
+ 'Memo' => 'Memorando',
+ 'Message' => 'Mensagem',
+ 'Month' => 'Mês',
+ 'Month(s)' => 'Mês(es)',
+ 'Next Date' => 'Próxima Data',
+ 'No.' => 'Nº',
+ 'Notes' => 'Notas',
+ 'Nothing to print!' => 'Nada para imprimir',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembro',
+ 'Number' => 'Número',
+ 'Oct' => 'Out',
+ 'October' => 'Outubro',
+ 'Open' => 'Em Aberto',
+ 'Order' => 'Pedido',
+ 'Order Number' => 'Número do Pedido',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Número da OC',
+ 'Paid' => 'Total Efetuado',
+ 'Payment date missing!' => 'Data de pagamento faltando!',
+ 'Payments' => 'Pagamentos',
+ 'Period' => 'Período',
+ 'Post' => 'Lançar',
+ 'Post as new' => 'Lançar como novo',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir e Lançar',
+ 'Print and Post as new' => 'Imprimir e Lançar como Novo',
+ 'Printed' => 'Impresso',
+ 'Project' => 'Projeto',
+ 'Project not on file!' => 'Projeto não está no arquivo!',
+ 'Quarter' => 'Trimestre',
+ 'Receipt' => 'Recibo',
+ 'Recurring Transaction' => 'Transação Recorrente',
+ 'Reference' => 'Referência',
+ 'Remaining' => 'Restante',
+ 'Repeat' => 'Repetir',
+ 'Sales Invoice.' => 'Fatura de Venda.',
+ 'Salesperson' => 'Vendedor',
+ 'Save Schedule' => 'Salvar a Programação',
+ 'Schedule' => 'Programação',
+ 'Scheduled' => 'Programado',
+ 'Screen' => 'Tela',
+ 'Select a Printer!' => 'Selecione uma Impressora!',
+ 'Select from one of the names below' => 'Selecione um dos nomes abaixo',
+ 'Select from one of the projects below' => 'Selecione um dos projetos abaixo',
+ 'Select payment' => 'Selecionar Pagamento',
+ 'Select postscript or PDF!' => 'Selecionar Postscript ou PDF',
+ 'Sep' => 'Set',
+ 'September' => 'Setembro',
+ 'Ship to' => 'Enviar para',
+ 'Ship via' => 'Enivar por',
+ 'Shipping Point' => 'Local do despacho',
+ 'Source' => 'Fonte',
+ 'Startdate' => 'Data inicial',
+ 'Subject' => 'Assunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Sumário',
+ 'Tax' => 'Imposto',
+ 'Tax Included' => 'Impostos incluídos',
+ 'Till' => 'Até',
+ 'To' => 'Até',
+ 'Total' => 'Total',
+ 'Transaction' => 'Transação',
+ 'Transaction deleted!' => 'Transação apagada!',
+ 'Transaction posted!' => 'Transação lançada',
+ 'Update' => 'Atualizar',
+ 'Vendor' => 'Fornecedor',
+ 'Vendor Invoice.' => 'Fatura de Compra.',
+ 'Vendor missing!' => 'Fornecedor faltando!',
+ 'Vendor not on file!' => 'Fornecedor não está no arquivo!',
+ 'Warning!' => 'Cuidado!',
+ 'Week(s)' => 'Semana(s)',
+ 'Year' => 'Ano',
+ 'Year(s)' => 'Ano(s)',
+ 'Yes' => 'Sim',
+ 'You are posting an existing transaction!' => 'Você está lançando uma transação existente!',
+ 'You are printing and posting an existing transaction!' => 'Você está imprimindo lançando uma transação existente!',
+ 'You are printing and saving an existing order' => 'Você está imprimindo e salvando um pedido existente!',
+ 'You are printing and saving an existing quotation' => 'Você está imprimindo e salvando uma cotação existente!',
+ 'You are saving an existing order' => 'Você está salvando um pedido existente!',
+ 'You are saving an existing quotation' => 'Você está salvando uma cotação existente!',
+ 'for' => 'para',
+ 'sent' => 'enviado',
+ 'time(s)' => 'vêz(es)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'transação___contas_a_pagar' => 'ap_transaction',
+ 'transação___contas_a_receber' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'apagar' => 'delete',
+ 'apagar_a_programação' => 'delete_schedule',
+ 'lançar' => 'post',
+ 'lançar_como_novo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'imprimir_e_lançar' => 'print_and_post',
+ 'imprimir_e_lançar_como_novo' => 'print_and_post_as_new',
+ 'fatura_de_venda_' => 'sales_invoice_',
+ 'salvar_a_programação' => 'save_schedule',
+ 'programação' => 'schedule',
+ 'enviar_para' => 'ship_to',
+ 'atualizar' => 'update',
+ 'fatura_de_compra_' => 'vendor_invoice_',
+ 'sim' => 'yes',
+};
+
+1;
+
diff --git a/locale/br/ar b/locale/br/ar
new file mode 100755
index 00000000..1961ea0d
--- /dev/null
+++ b/locale/br/ar
@@ -0,0 +1,240 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Contas a Pagar Pendentes',
+ 'AP Transaction' => 'Transação - Contas a Pagar',
+ 'AP Transactions' => 'Transações - Contas a Pagar',
+ 'AR Outstanding' => 'Contas a Receber Pendentes',
+ 'AR Transaction' => 'Transação - Contas a Receber',
+ 'AR Transactions' => 'Transações - Contas a Receber',
+ 'Account' => 'Conta',
+ 'Accounting Menu' => 'Menu de Contabilidade',
+ 'Add AP Transaction' => 'Adicionar Transação de CP',
+ 'Add AR Transaction' => 'Adicionar Transação de CR',
+ 'Address' => 'Endereço',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Total Devido',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => 'Tem certeza que quer APAGAR a Transação',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'Não pode apagar transação!',
+ 'Cannot post payment for a closed period!' => 'Não pode lançar pagamento em período fechado!',
+ 'Cannot post transaction for a closed period!' => 'Não pode lançar transação para um período já encerrado!',
+ 'Cannot post transaction!' => 'Não pode lançar transação!',
+ 'Cc' => 'Cc',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Fechado',
+ 'Confirm!' => 'Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Limite de Crédito',
+ 'Curr' => 'Moeda',
+ 'Currency' => 'Moeda',
+ 'Current' => 'Corrente',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => 'Cliente faltando!',
+ 'Customer not on file!' => 'Cliente não está no arquivo!',
+ 'Date' => 'Data',
+ 'Date Paid' => 'Data de pagamento',
+ 'Day(s)' => 'Dia(s)',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezembro',
+ 'Delete' => 'Apagar',
+ 'Delete Schedule' => 'Apagar a Programação',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descrição',
+ 'Detail' => 'Detalhe',
+ 'Due Date' => 'Data de Vencimento',
+ 'Due Date missing!' => 'Data de Vencimento faltando!',
+ 'E-mail' => 'E-Mail',
+ 'E-mail message' => 'Mensagem do e-mail',
+ 'Edit AP Transaction' => 'Editar Transação de CP',
+ 'Edit AR Transaction' => 'Editar Transação de CR',
+ 'Employee' => 'Empregado',
+ 'Every' => 'Cada',
+ 'Exch' => 'Câmbio',
+ 'Exchange Rate' => 'Taxa de câmbio',
+ 'Exchange rate for payment missing!' => 'Falta a taxa de câmbio para o pagamento!',
+ 'Exchange rate missing!' => 'Falta a taxa de câmbio!',
+ 'Feb' => 'Fev',
+ 'February' => 'Fevereiro',
+ 'For' => 'Para',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'Include Payment' => 'Incluir Pagamento',
+ 'Include in Report' => 'Incluir no Relatório',
+ 'Invoice' => 'Fatura',
+ 'Invoice Date' => 'Data da Fatura',
+ 'Invoice Date missing!' => 'Data da Fatura não encontrada!',
+ 'Invoice Number' => 'Número da Fatura',
+ 'Jan' => 'Jan',
+ 'January' => 'Janeiro',
+ 'Jul' => 'Jul',
+ 'July' => 'Julho',
+ 'Jun' => 'Jun',
+ 'June' => 'Junho',
+ 'Manager' => 'Gerente',
+ 'Mar' => 'Mar',
+ 'March' => 'Março',
+ 'May' => 'Mai',
+ 'May ' => 'Maio',
+ 'Memo' => 'Memorando',
+ 'Message' => 'Mensagem',
+ 'Month' => 'Mês',
+ 'Month(s)' => 'Mês(es)',
+ 'Next Date' => 'Próxima Data',
+ 'No.' => 'Nº',
+ 'Notes' => 'Notas',
+ 'Nothing to print!' => 'Nada para imprimir',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembro',
+ 'Number' => 'Número',
+ 'Oct' => 'Out',
+ 'October' => 'Outubro',
+ 'Open' => 'Em Aberto',
+ 'Order' => 'Pedido',
+ 'Order Number' => 'Número do Pedido',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Número da OC',
+ 'Paid' => 'Total Efetuado',
+ 'Payment date missing!' => 'Data de pagamento faltando!',
+ 'Payments' => 'Pagamentos',
+ 'Period' => 'Período',
+ 'Post' => 'Lançar',
+ 'Post as new' => 'Lançar como novo',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir e Lançar',
+ 'Print and Post as new' => 'Imprimir e Lançar como Novo',
+ 'Printed' => 'Impresso',
+ 'Project' => 'Projeto',
+ 'Project not on file!' => 'Projeto não está no arquivo!',
+ 'Quarter' => 'Trimestre',
+ 'Receipt' => 'Recibo',
+ 'Recurring Transaction' => 'Transação Recorrente',
+ 'Reference' => 'Referência',
+ 'Remaining' => 'Restante',
+ 'Repeat' => 'Repetir',
+ 'Sales Invoice.' => 'Fatura de Venda.',
+ 'Salesperson' => 'Vendedor',
+ 'Save Schedule' => 'Salvar a Programação',
+ 'Schedule' => 'Programação',
+ 'Scheduled' => 'Programado',
+ 'Screen' => 'Tela',
+ 'Select a Printer!' => 'Selecione uma Impressora!',
+ 'Select from one of the names below' => 'Selecione um dos nomes abaixo',
+ 'Select from one of the projects below' => 'Selecione um dos projetos abaixo',
+ 'Select payment' => 'Selecionar Pagamento',
+ 'Select postscript or PDF!' => 'Selecionar Postscript ou PDF',
+ 'Sep' => 'Set',
+ 'September' => 'Setembro',
+ 'Ship to' => 'Enviar para',
+ 'Ship via' => 'Enivar por',
+ 'Shipping Point' => 'Local do despacho',
+ 'Source' => 'Fonte',
+ 'Startdate' => 'Data inicial',
+ 'Subject' => 'Assunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Sumário',
+ 'Tax' => 'Imposto',
+ 'Tax Included' => 'Impostos incluídos',
+ 'Till' => 'Até',
+ 'To' => 'Até',
+ 'Total' => 'Total',
+ 'Transaction' => 'Transação',
+ 'Transaction deleted!' => 'Transação apagada!',
+ 'Transaction posted!' => 'Transação lançada',
+ 'Update' => 'Atualizar',
+ 'Vendor' => 'Fornecedor',
+ 'Vendor Invoice.' => 'Fatura de Compra.',
+ 'Vendor missing!' => 'Fornecedor faltando!',
+ 'Vendor not on file!' => 'Fornecedor não está no arquivo!',
+ 'Warning!' => 'Cuidado!',
+ 'Week(s)' => 'Semana(s)',
+ 'Year' => 'Ano',
+ 'Year(s)' => 'Ano(s)',
+ 'Yes' => 'Sim',
+ 'You are posting an existing transaction!' => 'Você está lançando uma transação existente!',
+ 'You are printing and posting an existing transaction!' => 'Você está imprimindo lançando uma transação existente!',
+ 'You are printing and saving an existing order' => 'Você está imprimindo e salvando um pedido existente!',
+ 'You are printing and saving an existing quotation' => 'Você está imprimindo e salvando uma cotação existente!',
+ 'You are saving an existing order' => 'Você está salvando um pedido existente!',
+ 'You are saving an existing quotation' => 'Você está salvando uma cotação existente!',
+ 'for' => 'para',
+ 'sent' => 'enviado',
+ 'time(s)' => 'vêz(es)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'transação___contas_a_pagar' => 'ap_transaction',
+ 'transação___contas_a_receber' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'apagar' => 'delete',
+ 'apagar_a_programação' => 'delete_schedule',
+ 'lançar' => 'post',
+ 'lançar_como_novo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'imprimir_e_lançar' => 'print_and_post',
+ 'imprimir_e_lançar_como_novo' => 'print_and_post_as_new',
+ 'fatura_de_venda_' => 'sales_invoice_',
+ 'salvar_a_programação' => 'save_schedule',
+ 'programação' => 'schedule',
+ 'enviar_para' => 'ship_to',
+ 'atualizar' => 'update',
+ 'fatura_de_compra_' => 'vendor_invoice_',
+ 'sim' => 'yes',
+};
+
+1;
+
diff --git a/locale/br/arap b/locale/br/arap
new file mode 100755
index 00000000..7f306670
--- /dev/null
+++ b/locale/br/arap
@@ -0,0 +1,74 @@
+$self{texts} = {
+ 'Address' => 'Endereço',
+ 'Bcc' => 'Bcc',
+ 'Cc' => 'Cc',
+ 'Continue' => 'Continuar',
+ 'Customer not on file!' => 'Cliente não está no arquivo!',
+ 'Date' => 'Data',
+ 'Day(s)' => 'Dia(s)',
+ 'Delete Schedule' => 'Apagar a Programação',
+ 'Description' => 'Descrição',
+ 'E-mail' => 'E-Mail',
+ 'E-mail message' => 'Mensagem do e-mail',
+ 'Every' => 'Cada',
+ 'For' => 'Para',
+ 'Include Payment' => 'Incluir Pagamento',
+ 'Message' => 'Mensagem',
+ 'Month(s)' => 'Mês(es)',
+ 'Next Date' => 'Próxima Data',
+ 'Number' => 'Número',
+ 'Print' => 'Imprimir',
+ 'Project not on file!' => 'Projeto não está no arquivo!',
+ 'Recurring Transaction' => 'Transação Recorrente',
+ 'Reference' => 'Referência',
+ 'Repeat' => 'Repetir',
+ 'Save Schedule' => 'Salvar a Programação',
+ 'Select from one of the names below' => 'Selecione um dos nomes abaixo',
+ 'Select from one of the projects below' => 'Selecione um dos projetos abaixo',
+ 'Startdate' => 'Data inicial',
+ 'Subject' => 'Assunto',
+ 'To' => 'Até',
+ 'Vendor not on file!' => 'Fornecedor não está no arquivo!',
+ 'Warning!' => 'Cuidado!',
+ 'Week(s)' => 'Semana(s)',
+ 'Year(s)' => 'Ano(s)',
+ 'You are posting an existing transaction!' => 'Você está lançando uma transação existente!',
+ 'You are printing and posting an existing transaction!' => 'Você está imprimindo lançando uma transação existente!',
+ 'You are printing and saving an existing order' => 'Você está imprimindo e salvando um pedido existente!',
+ 'You are printing and saving an existing quotation' => 'Você está imprimindo e salvando uma cotação existente!',
+ 'You are saving an existing order' => 'Você está salvando um pedido existente!',
+ 'You are saving an existing quotation' => 'Você está salvando uma cotação existente!',
+ 'for' => 'para',
+ 'sent' => 'enviado',
+ 'time(s)' => 'vêz(es)',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuar' => 'continue',
+ 'apagar_a_programação' => 'delete_schedule',
+ 'salvar_a_programação' => 'save_schedule',
+};
+
+1;
+
diff --git a/locale/br/arapprn b/locale/br/arapprn
new file mode 100755
index 00000000..2876ecb9
--- /dev/null
+++ b/locale/br/arapprn
@@ -0,0 +1,34 @@
+$self{texts} = {
+ 'Account' => 'Conta',
+ 'Amount' => 'Total',
+ 'Continue' => 'Continuar',
+ 'Date' => 'Data',
+ 'Memo' => 'Memorando',
+ 'Nothing to print!' => 'Nada para imprimir',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'Postscript',
+ 'Printed' => 'Impresso',
+ 'Scheduled' => 'Programado',
+ 'Screen' => 'Tela',
+ 'Select a Printer!' => 'Selecione uma Impressora!',
+ 'Select payment' => 'Selecionar Pagamento',
+ 'Select postscript or PDF!' => 'Selecionar Postscript ou PDF',
+ 'Source' => 'Fonte',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/br/bp b/locale/br/bp
new file mode 100755
index 00000000..5b0e08bb
--- /dev/null
+++ b/locale/br/bp
@@ -0,0 +1,69 @@
+$self{texts} = {
+ 'Account' => 'Conta',
+ 'Accounting Menu' => 'Menu de Contabilidade',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Tem certeza que quer REMOVER da fila as entradas marcadas?',
+ 'Bin Lists' => 'Listas de preteleiras',
+ 'Cannot remove files!' => 'Não pode remover arquivos!',
+ 'Confirm!' => 'Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Current' => 'Corrente',
+ 'Customer' => 'Cliente',
+ 'Date' => 'Data',
+ 'Employee' => 'Empregado',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'Invoice' => 'Fatura',
+ 'Invoice Number' => 'Número da Fatura',
+ 'Marked entries printed!' => 'Entradas marcadas impressas!',
+ 'Month' => 'Mês',
+ 'Order' => 'Pedido',
+ 'Order Number' => 'Número do Pedido',
+ 'Packing Lists' => 'Listas de Conteúdo',
+ 'Period' => 'Período',
+ 'Pick Lists' => 'Listas de Seleção',
+ 'Print' => 'Imprimir',
+ 'Printing' => 'Imprimindo',
+ 'Purchase Orders' => 'Ordens de Compra',
+ 'Quarter' => 'Trimestre',
+ 'Quotation' => 'Cotação',
+ 'Quotation Number' => 'Número da Cotação',
+ 'Quotations' => 'Cotações',
+ 'RFQs' => 'RDCs',
+ 'Remove' => 'Remover',
+ 'Removed spoolfiles!' => 'Remover arquivos temporários',
+ 'Removing marked entries from queue ...' => 'Removendo entradas marcadas da fila ...',
+ 'Sales Invoices' => 'Faturas de Venda',
+ 'Sales Orders' => 'Pedidos de Venda',
+ 'Select all' => 'Selecionar todos',
+ 'Spoolfile' => 'Arquivo temporário',
+ 'Time Cards' => 'Apontamentos',
+ 'To' => 'Até',
+ 'Vendor' => 'Fornecedor',
+ 'Work Orders' => 'Ordens de Serviço',
+ 'Year' => 'Ano',
+ 'Yes' => 'Sim',
+ 'done' => 'feito',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'imprimir' => 'print',
+ 'remover' => 'remove',
+ 'selecionar_todos' => 'select_all',
+ 'sim' => 'yes',
+};
+
+1;
+
diff --git a/locale/br/ca b/locale/br/ca
new file mode 100755
index 00000000..a9a4f902
--- /dev/null
+++ b/locale/br/ca
@@ -0,0 +1,60 @@
+$self{texts} = {
+ 'AR/AP' => 'CR/CP',
+ 'Account' => 'Conta',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Balanço',
+ 'Chart of Accounts' => 'Plano de Contas',
+ 'Credit' => 'Crédito',
+ 'Current' => 'Corrente',
+ 'Date' => 'Data',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezembro',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descrição',
+ 'Feb' => 'Fev',
+ 'February' => 'Fevereiro',
+ 'From' => 'De',
+ 'GIFI' => 'CFOP - Código Fiscal da Operação',
+ 'Include in Report' => 'Incluir no Relatório',
+ 'Jan' => 'Jan',
+ 'January' => 'Janeiro',
+ 'Jul' => 'Jul',
+ 'July' => 'Julho',
+ 'Jun' => 'Jun',
+ 'June' => 'Junho',
+ 'List Transactions' => 'Listar Transações',
+ 'Mar' => 'Mar',
+ 'March' => 'Março',
+ 'May' => 'Mai',
+ 'May ' => 'Maio',
+ 'Month' => 'Mês',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembro',
+ 'Oct' => 'Out',
+ 'October' => 'Outubro',
+ 'Period' => 'Período',
+ 'Project Number' => 'Número de Projeto',
+ 'Quarter' => 'Trimestre',
+ 'R' => 'R',
+ 'Reference' => 'Referência',
+ 'Sep' => 'Set',
+ 'September' => 'Setembro',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'Até',
+ 'Year' => 'Ano',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'listar_transações' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/br/cp b/locale/br/cp
new file mode 100755
index 00000000..6eabc04a
--- /dev/null
+++ b/locale/br/cp
@@ -0,0 +1,149 @@
+$self{texts} = {
+ 'AP' => 'Contas a Pagar',
+ 'AR' => 'Contas a Receber',
+ 'Account' => 'Conta',
+ 'Accounting Menu' => 'Menu de Contabilidade',
+ 'Address' => 'Endereço',
+ 'All' => 'Todas',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Total Devido',
+ 'Bcc' => 'Bcc',
+ 'Cannot post Payment!' => 'Não pode lançar pagamento!',
+ 'Cannot post Receipt!' => 'Não pode lançar recebimento!',
+ 'Cannot post payment for a closed period!' => 'Não pode lançar pagamento em período fechado!',
+ 'Cc' => 'Cc',
+ 'Continue' => 'Continuar',
+ 'Currency' => 'Moeda',
+ 'Customer' => 'Cliente',
+ 'Customer not on file!' => 'Cliente não está no arquivo!',
+ 'Date' => 'Data',
+ 'Date missing!' => 'Data faltando!',
+ 'Day(s)' => 'Dia(s)',
+ 'Delete Schedule' => 'Apagar a Programação',
+ 'Department' => 'Departamento',
+ 'Deposit' => 'Depósito',
+ 'Description' => 'Descrição',
+ 'Due Date' => 'Data de Vencimento',
+ 'E-mail' => 'E-Mail',
+ 'E-mail message' => 'Mensagem do e-mail',
+ 'Every' => 'Cada',
+ 'Exchange Rate' => 'Taxa de câmbio',
+ 'Exchange rate missing!' => 'Falta a taxa de câmbio!',
+ 'For' => 'Para',
+ 'From' => 'De',
+ 'Include Payment' => 'Incluir Pagamento',
+ 'Invoice' => 'Fatura',
+ 'Invoices' => 'Faturas',
+ 'Language' => 'Idioma',
+ 'Memo' => 'Memorando',
+ 'Message' => 'Mensagem',
+ 'Month(s)' => 'Mês(es)',
+ 'Next Date' => 'Próxima Data',
+ 'Nothing open!' => 'Nenhuma aberta!',
+ 'Number' => 'Número',
+ 'PDF' => 'PDF',
+ 'Payment' => 'Pagamento',
+ 'Payment posted!' => 'Pagamento Lançado',
+ 'Payments' => 'Pagamentos',
+ 'Payments posted!' => 'Pagamentos lançados',
+ 'Post' => 'Lançar',
+ 'Posting failed!' => 'O lançamento falhou!',
+ 'Postscript' => 'Postscript',
+ 'Prepayment' => 'Pré-pagamento',
+ 'Print' => 'Imprimir',
+ 'Project not on file!' => 'Projeto não está no arquivo!',
+ 'Receipt' => 'Recibo',
+ 'Receipt posted!' => 'Recibo lançado!',
+ 'Receipts' => 'Recibos',
+ 'Recurring Transaction' => 'Transação Recorrente',
+ 'Reference' => 'Referência',
+ 'Repeat' => 'Repetir',
+ 'Save Schedule' => 'Salvar a Programação',
+ 'Screen' => 'Tela',
+ 'Select' => 'Selecionar',
+ 'Select all' => 'Selecionar todos',
+ 'Select from one of the names below' => 'Selecione um dos nomes abaixo',
+ 'Select from one of the projects below' => 'Selecione um dos projetos abaixo',
+ 'Select postscript or PDF!' => 'Selecionar Postscript ou PDF',
+ 'Source' => 'Fonte',
+ 'Startdate' => 'Data inicial',
+ 'Subject' => 'Assunto',
+ 'To' => 'Até',
+ 'Update' => 'Atualizar',
+ 'Vendor' => 'Fornecedor',
+ 'Vendor not on file!' => 'Fornecedor não está no arquivo!',
+ 'Warning!' => 'Cuidado!',
+ 'Week(s)' => 'Semana(s)',
+ 'Year(s)' => 'Ano(s)',
+ 'You are posting an existing transaction!' => 'Você está lançando uma transação existente!',
+ 'You are printing and posting an existing transaction!' => 'Você está imprimindo lançando uma transação existente!',
+ 'You are printing and saving an existing order' => 'Você está imprimindo e salvando um pedido existente!',
+ 'You are printing and saving an existing quotation' => 'Você está imprimindo e salvando uma cotação existente!',
+ 'You are saving an existing order' => 'Você está salvando um pedido existente!',
+ 'You are saving an existing quotation' => 'Você está salvando uma cotação existente!',
+ 'for' => 'para',
+ 'sent' => 'enviado',
+ 'time(s)' => 'vêz(es)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuar' => 'continue',
+ 'apagar_a_programação' => 'delete_schedule',
+ 'lançar' => 'post',
+ 'imprimir' => 'print',
+ 'salvar_a_programação' => 'save_schedule',
+ 'selecionar_todos' => 'select_all',
+ 'atualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/br/ct b/locale/br/ct
new file mode 100755
index 00000000..1d80bcf8
--- /dev/null
+++ b/locale/br/ct
@@ -0,0 +1,190 @@
+$self{texts} = {
+ 'AP Transaction' => 'Transação - Contas a Pagar',
+ 'AP Transactions' => 'Transações - Contas a Pagar',
+ 'AR Transaction' => 'Transação - Contas a Receber',
+ 'AR Transactions' => 'Transações - Contas a Receber',
+ 'Accounting Menu' => 'Menu de Contabilidade',
+ 'Active' => 'Ativa',
+ 'Add Customer' => 'Adicionar Cliente',
+ 'Add Vendor' => 'Adicionar Fornecedor',
+ 'Address' => 'Endereço',
+ 'All' => 'Todas',
+ 'Amount' => 'Total',
+ 'BIC' => 'BIC',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Endereço de Cobrança',
+ 'Break' => 'Quebra',
+ 'Cannot delete customer!' => 'Não pode apagar cliente!',
+ 'Cannot delete vendor!' => 'Não pode apagar fornecedor!',
+ 'Cc' => 'Cc',
+ 'City' => 'Cidade',
+ 'Closed' => 'Fechado',
+ 'Company Name' => 'Nome da Empresa',
+ 'Contact' => 'Contato',
+ 'Continue' => 'Continuar',
+ 'Cost' => 'Custo',
+ 'Could not save pricelist!' => 'Não pode salvar lista de preços',
+ 'Country' => 'País',
+ 'Credit Limit' => 'Limite de Crédito',
+ 'Curr' => 'Moeda',
+ 'Currency' => 'Moeda',
+ 'Customer History' => 'Histórico do Cliente',
+ 'Customer Number' => 'Número do Cliente',
+ 'Customer deleted!' => 'Cliente apagado!',
+ 'Customer saved!' => 'Cliente salvo',
+ 'Customers' => 'Clientes',
+ 'Delete' => 'Apagar',
+ 'Delivery Date' => 'Data de entrega',
+ 'Description' => 'Descrição',
+ 'Detail' => 'Detalhe',
+ 'Discount' => 'Desconto',
+ 'E-mail' => 'E-Mail',
+ 'Edit Customer' => 'Editar Cliente',
+ 'Edit Vendor' => 'Editar Fornecedor',
+ 'Employee' => 'Empregado',
+ 'Enddate' => 'Data Final',
+ 'Fax' => 'Fax',
+ 'From' => 'De',
+ 'GIFI' => 'CFOP - Código Fiscal da Operação',
+ 'Group' => 'Grupo',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Inactive' => 'Inativo',
+ 'Include in Report' => 'Incluir no Relatório',
+ 'Invoice' => 'Fatura',
+ 'Item already on pricelist!' => 'O item já está na lista de preços',
+ 'Item not on file!' => 'Item não está no arquivo!',
+ 'Language' => 'Idioma',
+ 'Leadtime' => 'Prazo Entrega',
+ 'Manager' => 'Gerente',
+ 'Name' => 'Nome',
+ 'Name missing!' => 'Nome faltando!',
+ 'No.' => 'Nº',
+ 'Notes' => 'Notas',
+ 'Number' => 'Número',
+ 'Open' => 'Em Aberto',
+ 'Order' => 'Pedido',
+ 'Orphaned' => 'Órfãs',
+ 'POS' => 'PDV',
+ 'Part Number' => 'Número do Item',
+ 'Phone' => 'Fone',
+ 'Pricegroup' => 'Grupo de Preço',
+ 'Pricelist' => 'Lista de Preços',
+ 'Project Number' => 'Número de Projeto',
+ 'Purchase Order' => 'Ordem de Compra',
+ 'Purchase Orders' => 'Ordens de Compra',
+ 'Qty' => 'Qtd',
+ 'Quotation' => 'Cotação',
+ 'Quotations' => 'Cotações',
+ 'RFQ' => 'RDC',
+ 'Request for Quotations' => 'Requisição de Cotações',
+ 'SIC' => 'SIC',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Fatura de Venda',
+ 'Sales Invoices' => 'Faturas de Venda',
+ 'Sales Order' => 'Pedido de Venda',
+ 'Sales Orders' => 'Pedidos de Venda',
+ 'Salesperson' => 'Vendedor',
+ 'Save' => 'Salvar',
+ 'Save Pricelist' => 'Salvar Lista de Preços',
+ 'Save as new' => 'Salvar como novo',
+ 'Search' => 'Buscar',
+ 'Select items' => 'Selecionar itens',
+ 'Sell Price' => 'Preço de Venda',
+ 'Serial Number' => 'Número de Série',
+ 'Shipping Address' => 'Endereço para entrega',
+ 'Startdate' => 'Data inicial',
+ 'State' => 'Estado',
+ 'State/Province' => 'Estado / Província',
+ 'Sub-contract GIFI' => 'CFOP do sub contrato',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Sumário',
+ 'Tax' => 'Imposto',
+ 'Tax Account' => 'Conts de Imposto',
+ 'Tax Included' => 'Impostos incluídos',
+ 'Tax Number' => 'Número do Imposto',
+ 'Tax Number / SSN' => 'Número do Imposto / SSN',
+ 'Taxable' => 'Sujeito a impostos',
+ 'Terms' => 'Crédito Líquido',
+ 'To' => 'Até',
+ 'Total' => 'Total',
+ 'Type of Business' => 'Tipo de Negócio',
+ 'Unit' => 'Unidade',
+ 'Update' => 'Atualizar',
+ 'Vendor History' => 'Histórico do Fornecedor',
+ 'Vendor Invoice' => 'Fatura de Compra',
+ 'Vendor Invoices' => 'Faturas de Compra',
+ 'Vendor Number' => 'ID do Fornecedor',
+ 'Vendor deleted!' => 'Fornecedor apagado!',
+ 'Vendor saved!' => 'Fornecedor salvo!',
+ 'Vendors' => 'Fornecedores',
+ 'Zip/Postal Code' => 'CEP',
+ 'days' => 'dias',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'transação___contas_a_pagar' => 'ap_transaction',
+ 'transação___contas_a_receber' => 'ar_transaction',
+ 'adicionar_cliente' => 'add_customer',
+ 'adicionar_fornecedor' => 'add_vendor',
+ 'continuar' => 'continue',
+ 'apagar' => 'delete',
+ 'pdv' => 'pos',
+ 'lista_de_preços' => 'pricelist',
+ 'ordem_de_compra' => 'purchase_order',
+ 'cotação' => 'quotation',
+ 'rdc' => 'rfq',
+ 'fatura_de_venda' => 'sales_invoice',
+ 'pedido_de_venda' => 'sales_order',
+ 'salvar' => 'save',
+ 'salvar_lista_de_preços' => 'save_pricelist',
+ 'salvar_como_novo' => 'save_as_new',
+ 'atualizar' => 'update',
+ 'fatura_de_compra' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/br/gl b/locale/br/gl
new file mode 100755
index 00000000..db6e3ced
--- /dev/null
+++ b/locale/br/gl
@@ -0,0 +1,185 @@
+$self{texts} = {
+ 'AP Transaction' => 'Transação - Contas a Pagar',
+ 'AR Transaction' => 'Transação - Contas a Receber',
+ 'Account' => 'Conta',
+ 'Accounting Menu' => 'Menu de Contabilidade',
+ 'Add Cash Transfer Transaction' => 'Adicionar Transação de Transferência de Fundos',
+ 'Add General Ledger Transaction' => 'Adicionar Transação Livro Razão',
+ 'Address' => 'Endereço',
+ 'All' => 'Todas',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => 'Tem certeza que quer APAGAR a Transação',
+ 'Asset' => 'Ativo',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Balanço',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'Não pode apagar transação!',
+ 'Cannot post transaction for a closed period!' => 'Não pode lançar transação para um período já encerrado!',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => 'Não é possível lançar a transação com o mesmo valor para a conta de débito e de crédito',
+ 'Cannot post transaction!' => 'Não pode lançar transação!',
+ 'Cc' => 'Cc',
+ 'Confirm!' => 'Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Current' => 'Corrente',
+ 'Customer not on file!' => 'Cliente não está no arquivo!',
+ 'Date' => 'Data',
+ 'Day(s)' => 'Dia(s)',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezembro',
+ 'Delete' => 'Apagar',
+ 'Delete Schedule' => 'Apagar a Programação',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descrição',
+ 'E-mail' => 'E-Mail',
+ 'E-mail message' => 'Mensagem do e-mail',
+ 'Edit Cash Transfer Transaction' => 'Editar transação de transferência de fundos',
+ 'Edit General Ledger Transaction' => 'Editar Transação Livro Razão',
+ 'Equity' => 'Capital',
+ 'Every' => 'Cada',
+ 'Expense' => 'Despesa',
+ 'FX' => 'FX',
+ 'Feb' => 'Fev',
+ 'February' => 'Fevereiro',
+ 'For' => 'Para',
+ 'From' => 'De',
+ 'GIFI' => 'CFOP - Código Fiscal da Operação',
+ 'GL Transaction' => 'Transação do Livro Razão',
+ 'General Ledger' => 'Livro Razão',
+ 'ID' => 'ID',
+ 'Include Payment' => 'Incluir Pagamento',
+ 'Include in Report' => 'Incluir no Relatório',
+ 'Income' => 'Receita',
+ 'Jan' => 'Jan',
+ 'January' => 'Janeiro',
+ 'Jul' => 'Jul',
+ 'July' => 'Julho',
+ 'Jun' => 'Jun',
+ 'June' => 'Junho',
+ 'Liability' => 'Passivo',
+ 'Mar' => 'Mar',
+ 'March' => 'Março',
+ 'May' => 'Mai',
+ 'May ' => 'Maio',
+ 'Memo' => 'Memorando',
+ 'Message' => 'Mensagem',
+ 'Month' => 'Mês',
+ 'Month(s)' => 'Mês(es)',
+ 'Next Date' => 'Próxima Data',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembro',
+ 'Number' => 'Número',
+ 'Oct' => 'Out',
+ 'October' => 'Outubro',
+ 'Out of balance transaction!' => 'Transação fora de balanço!',
+ 'Period' => 'Período',
+ 'Post' => 'Lançar',
+ 'Post as new' => 'Lançar como novo',
+ 'Print' => 'Imprimir',
+ 'Project' => 'Projeto',
+ 'Project not on file!' => 'Projeto não está no arquivo!',
+ 'Quarter' => 'Trimestre',
+ 'R' => 'R',
+ 'Recurring Transaction' => 'Transação Recorrente',
+ 'Reference' => 'Referência',
+ 'Repeat' => 'Repetir',
+ 'Reports' => 'Relatórios',
+ 'Sales Invoice ' => 'Fatura de Venda ',
+ 'Save Schedule' => 'Salvar a Programação',
+ 'Schedule' => 'Programação',
+ 'Scheduled' => 'Programado',
+ 'Select from one of the names below' => 'Selecione um dos nomes abaixo',
+ 'Select from one of the projects below' => 'Selecione um dos projetos abaixo',
+ 'Sep' => 'Set',
+ 'September' => 'Setembro',
+ 'Source' => 'Fonte',
+ 'Startdate' => 'Data inicial',
+ 'Subject' => 'Assunto',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'Até',
+ 'Transaction Date missing!' => 'Data de transação faltando!',
+ 'Transaction deleted!' => 'Transação apagada!',
+ 'Transaction posted!' => 'Transação lançada',
+ 'Update' => 'Atualizar',
+ 'Vendor Invoice ' => 'Fatura de Compra ',
+ 'Vendor not on file!' => 'Fornecedor não está no arquivo!',
+ 'Warning!' => 'Cuidado!',
+ 'Week(s)' => 'Semana(s)',
+ 'Year' => 'Ano',
+ 'Year(s)' => 'Ano(s)',
+ 'Yes' => 'Sim',
+ 'You are posting an existing transaction!' => 'Você está lançando uma transação existente!',
+ 'You are printing and posting an existing transaction!' => 'Você está imprimindo lançando uma transação existente!',
+ 'You are printing and saving an existing order' => 'Você está imprimindo e salvando um pedido existente!',
+ 'You are printing and saving an existing quotation' => 'Você está imprimindo e salvando uma cotação existente!',
+ 'You are saving an existing order' => 'Você está salvando um pedido existente!',
+ 'You are saving an existing quotation' => 'Você está salvando uma cotação existente!',
+ 'for' => 'para',
+ 'sent' => 'enviado',
+ 'time(s)' => 'vêz(es)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'transação___contas_a_pagar' => 'ap_transaction',
+ 'transação___contas_a_receber' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'apagar' => 'delete',
+ 'apagar_a_programação' => 'delete_schedule',
+ 'transação_do_livro_razão' => 'gl_transaction',
+ 'lançar' => 'post',
+ 'lançar_como_novo' => 'post_as_new',
+ 'fatura_de_venda_' => 'sales_invoice_',
+ 'salvar_a_programação' => 'save_schedule',
+ 'programação' => 'schedule',
+ 'atualizar' => 'update',
+ 'fatura_de_compra_' => 'vendor_invoice_',
+ 'sim' => 'yes',
+};
+
+1;
+
diff --git a/locale/br/hr b/locale/br/hr
new file mode 100755
index 00000000..f864f779
--- /dev/null
+++ b/locale/br/hr
@@ -0,0 +1,120 @@
+$self{texts} = {
+ 'AP' => 'Contas a Pagar',
+ 'Above' => 'Acima',
+ 'Accounting Menu' => 'Menu de Contabilidade',
+ 'Active' => 'Ativa',
+ 'Add Deduction' => 'Adicionar Dedução',
+ 'Add Employee' => 'Adicionar Empregado',
+ 'Address' => 'Endereço',
+ 'Administrator' => 'Administrador',
+ 'After Deduction' => 'Após Dedução',
+ 'All' => 'Todas',
+ 'Allowances' => 'Permissões',
+ 'Amount' => 'Total',
+ 'Amount missing!' => 'Total faltando!',
+ 'BIC' => 'BIC',
+ 'Based on' => 'Baseado em',
+ 'Before Deduction' => 'Antes da Dedução',
+ 'Below' => 'Abaixo',
+ 'City' => 'Cidade',
+ 'Continue' => 'Continuar',
+ 'Country' => 'País',
+ 'DOB' => 'Aniversário',
+ 'Deduct after' => 'Deduzir após',
+ 'Deduction deleted!' => 'Dedução apagada!',
+ 'Deduction saved!' => 'Dedução salva!',
+ 'Deductions' => 'Deduções',
+ 'Delete' => 'Apagar',
+ 'Description' => 'Descrição',
+ 'Description missing!' => 'Descrição faltando!',
+ 'E-mail' => 'E-Mail',
+ 'Edit Deduction' => 'Editar Dedução',
+ 'Edit Employee' => 'Editar Empregado',
+ 'Employee' => 'Empregado',
+ 'Employee Name' => 'Nome do Empregado',
+ 'Employee Number' => 'Número do Empregado',
+ 'Employee deleted!' => 'Empregado apagado!',
+ 'Employee pays' => 'Pagamentos do Empregado',
+ 'Employee saved!' => 'Empregado salvo!',
+ 'Employees' => 'Empregados',
+ 'Employer' => 'Empregador',
+ 'Employer pays' => 'Pagamentos do Empregador',
+ 'Enddate' => 'Data Final',
+ 'Exempt age <' => 'Tempo de Isenção <',
+ 'Expense' => 'Despesa',
+ 'From' => 'De',
+ 'Home Phone' => 'Fone residencial',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Inactive' => 'Inativo',
+ 'Include in Report' => 'Incluir no Relatório',
+ 'Login' => 'Entrar',
+ 'Manager' => 'Gerente',
+ 'Maximum' => 'Máximo',
+ 'Name' => 'Nome',
+ 'Name missing!' => 'Nome faltando!',
+ 'Notes' => 'Notas',
+ 'Number' => 'Número',
+ 'Orphaned' => 'Órfãs',
+ 'Payroll Deduction' => 'Dedução da Folha de Pagamento',
+ 'Pos' => 'Pos',
+ 'Rate' => 'Taxa',
+ 'Rate missing!' => 'Taxa faltando!',
+ 'Role' => 'Papel / Perfil',
+ 'S' => 'S',
+ 'SSN' => 'SSN',
+ 'Sales' => 'Vendas',
+ 'Save' => 'Salvar',
+ 'Save as new' => 'Salvar como novo',
+ 'Startdate' => 'Data inicial',
+ 'State/Province' => 'Estado / Província',
+ 'Supervisor' => 'Supervisor',
+ 'To' => 'Até',
+ 'Update' => 'Atualizar',
+ 'User' => 'Usuário',
+ 'Work Phone' => 'Fone comercial',
+ 'Zip/Postal Code' => 'CEP',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'adicionar_dedução' => 'add_deduction',
+ 'adicionar_empregado' => 'add_employee',
+ 'continuar' => 'continue',
+ 'apagar' => 'delete',
+ 'salvar' => 'save',
+ 'salvar_como_novo' => 'save_as_new',
+ 'atualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/br/ic b/locale/br/ic
new file mode 100755
index 00000000..56aa3c19
--- /dev/null
+++ b/locale/br/ic
@@ -0,0 +1,301 @@
+$self{texts} = {
+ 'A' => 'A',
+ 'Accounting Menu' => 'Menu de Contabilidade',
+ 'Accounts' => 'Contas',
+ 'Accrual' => 'Resultado final',
+ 'Active' => 'Ativa',
+ 'Add' => 'Adicionar',
+ 'Add Assembly' => 'Adicionar Conjunto',
+ 'Add Labor/Overhead' => 'Adicionar Trabalho/Sobretaxa',
+ 'Add Part' => 'Adicionar Item',
+ 'Add Purchase Order' => 'Adicionar Ordem de Compra',
+ 'Add Quotation' => 'Adicionar Cotação',
+ 'Add Request for Quotation' => 'Adicionar Requisição de Cotação',
+ 'Add Sales Order' => 'Adicionar Pedido de Venda',
+ 'Add Service' => 'Adicionar Serviço',
+ 'Address' => 'Endereço',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Assemblies' => 'Conjuntos',
+ 'Assemblies restocked!' => 'Conjuntos re estocados',
+ 'Assembly' => 'Conjunto',
+ 'Attachment' => 'Anexo',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Average Cost' => 'Custo Médio',
+ 'Avg Cost' => 'Cust Méd',
+ 'BOM' => 'Lista de Material',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Endereço de Cobrança',
+ 'Bin' => 'Preteleira',
+ 'Bin List' => 'Lista de preteleiras',
+ 'Break' => 'Quebra',
+ 'COGS' => 'CMV',
+ 'COGS account does not exist!' => 'A conta de CMV não existe',
+ 'Cannot create Assembly' => 'Não é possível criar um conjunto',
+ 'Cannot create Labor' => 'Não é possível uma mão-de-obra',
+ 'Cannot create Part' => 'Não é possível o item',
+ 'Cannot create Service' => 'Não é possível o Serviço',
+ 'Cannot delete item!' => 'Não pode apagar item!',
+ 'Cannot stock assemblies!' => 'Não pode estocar conjuntos!',
+ 'Cash' => 'Caixa',
+ 'Cc' => 'Cc',
+ 'Check Inventory' => 'Inventário de cheques',
+ 'City' => 'Cidade',
+ 'Closed' => 'Fechado',
+ 'Company Name' => 'Nome da Empresa',
+ 'Components' => 'Componentes',
+ 'Contact' => 'Contato',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Cópias',
+ 'Cost' => 'Custo',
+ 'Country' => 'País',
+ 'Curr' => 'Moeda',
+ 'Currency' => 'Moeda',
+ 'Customer' => 'Cliente',
+ 'Customer Number' => 'Número do Cliente',
+ 'Customer not on file!' => 'Cliente não está no arquivo!',
+ 'Date' => 'Data',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezembro',
+ 'Delete' => 'Apagar',
+ 'Delivery Date' => 'Data de entrega',
+ 'Description' => 'Descrição',
+ 'Detail' => 'Detalhe',
+ 'Drawing' => 'Desenho',
+ 'E-mail' => 'E-Mail',
+ 'E-mail address missing!' => 'Endereço de E-mail faltando!',
+ 'E-mailed' => 'Enviado por e-mail',
+ 'Edit Assembly' => 'Editar Conjunto',
+ 'Edit Labor/Overhead' => 'Editar Trabalho/sobretaxa',
+ 'Edit Part' => 'Editar Item',
+ 'Edit Service' => 'Editar Serviço',
+ 'Employee' => 'Empregado',
+ 'Expense' => 'Despesa',
+ 'Expense account does not exist!' => 'Não existe conta de despesa',
+ 'Extended' => 'Extendida',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Fev',
+ 'February' => 'Fevereiro',
+ 'From' => 'De',
+ 'Group' => 'Grupo',
+ 'Image' => 'Imagem',
+ 'In-line' => 'em linha',
+ 'Include in Report' => 'Incluir no Relatório',
+ 'Income' => 'Receita',
+ 'Income account does not exist!' => 'Não existe conta de resultados',
+ 'Individual Items' => 'Ítens individuais',
+ 'Inventory' => 'Inventário',
+ 'Inventory account does not exist!' => 'Não existe conta de inventário',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Quantidade em estoque TEM de ser zero ANTES que você possa tornar este conjunto obsoleto!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Quantidade em estoque TEM de ser zero ANTES que você possa tornar este item obsoleto!',
+ 'Invoice' => 'Fatura',
+ 'Invoice Date missing!' => 'Data da Fatura não encontrada!',
+ 'Invoice Number' => 'Número da Fatura',
+ 'Invoice Number missing!' => 'Número da Fatura não encontrado!',
+ 'Item' => 'Item',
+ 'Item deleted!' => 'Item apagado!',
+ 'Item not on file!' => 'Item não está no arquivo!',
+ 'Items' => 'Ítens',
+ 'Jan' => 'Jan',
+ 'January' => 'Janeiro',
+ 'Jul' => 'Jul',
+ 'July' => 'Julho',
+ 'Jun' => 'Jun',
+ 'June' => 'Junho',
+ 'Labor/Overhead' => 'Tabalho/Sobretaxa',
+ 'Last Cost' => 'Último Custo',
+ 'Leadtime' => 'Prazo Entrega',
+ 'Line Total' => 'Total da linha',
+ 'Link Accounts' => 'Associar Contas',
+ 'List' => 'Listar',
+ 'List Price' => 'Preço de lista',
+ 'Make' => 'Marca',
+ 'Mar' => 'Mar',
+ 'March' => 'Março',
+ 'Markup' => 'Margem',
+ 'May' => 'Mai',
+ 'May ' => 'Maio',
+ 'Message' => 'Mensagem',
+ 'Microfiche' => 'Microficha',
+ 'Model' => 'Modelo',
+ 'Name' => 'Nome',
+ 'No History!' => 'Nenhum histórico!',
+ 'No.' => 'Nº',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembro',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'Número faltando na linha',
+ 'OH' => 'HE',
+ 'Obsolete' => 'Obsoleto',
+ 'Oct' => 'Out',
+ 'October' => 'Outubro',
+ 'On Hand' => 'Em Estoque',
+ 'Onhand' => 'Em mãos',
+ 'Open' => 'Em Aberto',
+ 'Order' => 'Pedido',
+ 'Order Date missing!' => 'Data do Pedido Faltando',
+ 'Order Number' => 'Número do Pedido',
+ 'Order Number missing!' => 'Número do pedido faltando!',
+ 'Orphaned' => 'Órfãs',
+ 'PDF' => 'PDF',
+ 'PO' => 'OC',
+ 'Packing List' => 'Lista de Conteúdo',
+ 'Packing List Date missing!' => 'Data da lista de conteúdo faltando!',
+ 'Packing List Number missing!' => 'Número da lista de conteúdo faltando!',
+ 'Part' => 'Item',
+ 'Parts' => 'Itens',
+ 'Parts Requirements' => 'Itens requeridos',
+ 'Period' => 'Período',
+ 'Phone' => 'Fone',
+ 'Pick List' => 'Lista de Seleção',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Preço',
+ 'Pricegroup' => 'Grupo de Preço',
+ 'Printed' => 'Impresso',
+ 'Project' => 'Projeto',
+ 'Purchase Order' => 'Ordem de Compra',
+ 'Purchase Orders' => 'Ordens de Compra',
+ 'Qty' => 'Qtd',
+ 'Quantity exceeds available units to stock!' => 'Quantidade excede unidades disponíveis para estocar!',
+ 'Queue' => 'Fila',
+ 'Queued' => 'Enfileirado',
+ 'Quotation' => 'Cotação',
+ 'Quotation Date missing!' => 'Data da Cotação faltando!',
+ 'Quotation Number missing!' => 'Número da Cotação faltando!',
+ 'Quotations' => 'Cotações',
+ 'RFQ' => 'RDC',
+ 'ROP' => 'Pto Ressupr.',
+ 'Recd' => 'Recebidos',
+ 'Required by' => 'Requerido por',
+ 'SKU' => 'SKU',
+ 'SO' => 'OS',
+ 'Sales Invoice' => 'Fatura de Venda',
+ 'Sales Invoices' => 'Faturas de Venda',
+ 'Sales Order' => 'Pedido de Venda',
+ 'Sales Orders' => 'Pedidos de Venda',
+ 'Save' => 'Salvar',
+ 'Save as new' => 'Salvar como novo',
+ 'Scheduled' => 'Programado',
+ 'Screen' => 'Tela',
+ 'Select from one of the names below' => 'Selecione um dos nomes abaixo',
+ 'Select items' => 'Selecionar itens',
+ 'Select txt, postscript or PDF!' => 'Selecionar txt, Postscript ou PDF!',
+ 'Sell' => 'Vender',
+ 'Sell Price' => 'Preço de Venda',
+ 'Sep' => 'Set',
+ 'September' => 'Setembro',
+ 'Serial No.' => 'Nº Série',
+ 'Serial Number' => 'Número de Série',
+ 'Service' => 'Serviço',
+ 'Services' => 'Serviços',
+ 'Ship' => 'Despachar',
+ 'Ship to' => 'Enviar para',
+ 'Shipping Address' => 'Endereço para entrega',
+ 'Short' => 'Em falta',
+ 'State/Province' => 'Estado / Província',
+ 'Stock' => 'Estoque',
+ 'Stock Assembly' => 'Estoque de Conjuntos',
+ 'Subject' => 'Assunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Sumário',
+ 'Tax' => 'Imposto',
+ 'Text' => 'Texto',
+ 'To' => 'Até',
+ 'Top Level' => 'Nível superior',
+ 'Translation not on file!' => 'Tradução inexistente',
+ 'Unit' => 'Unidade',
+ 'Update' => 'Atualizar',
+ 'Updated' => 'Atualizado',
+ 'Vendor' => 'Fornecedor',
+ 'Vendor Invoice' => 'Fatura de Compra',
+ 'Vendor Invoices' => 'Faturas de Compra',
+ 'Vendor Number' => 'ID do Fornecedor',
+ 'Vendor not on file!' => 'Fornecedor não está no arquivo!',
+ 'Warehouse' => 'Almoxarifado',
+ 'Weight' => 'Peso',
+ 'What type of item is this?' => 'Que tipo de Item é este?',
+ 'Work Order' => 'Ordem de Serviço',
+ 'Year' => 'Ano',
+ 'Zip/Postal Code' => 'CEP',
+ 'days' => 'dias',
+ 'sent' => 'enviado',
+ 'unexpected error!' => 'erro não esperado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'adicionar_conjunto' => 'add_assembly',
+ 'adicionar_trabalho_sobretaxa' => 'add_labor_overhead',
+ 'adicionar_item' => 'add_part',
+ 'adicionar_serviço' => 'add_service',
+ 'continuar' => 'continue',
+ 'apagar' => 'delete',
+ 'editar_conjunto' => 'edit_assembly',
+ 'editar_item' => 'edit_part',
+ 'editar_serviço' => 'edit_service',
+ 'salvar' => 'save',
+ 'salvar_como_novo' => 'save_as_new',
+ 'atualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/br/io b/locale/br/io
new file mode 100755
index 00000000..6a2a7209
--- /dev/null
+++ b/locale/br/io
@@ -0,0 +1,137 @@
+$self{texts} = {
+ 'Add Purchase Order' => 'Adicionar Ordem de Compra',
+ 'Add Quotation' => 'Adicionar Cotação',
+ 'Add Request for Quotation' => 'Adicionar Requisição de Cotação',
+ 'Add Sales Order' => 'Adicionar Pedido de Venda',
+ 'Address' => 'Endereço',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Attachment' => 'Anexo',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Endereço de Cobrança',
+ 'Bin' => 'Preteleira',
+ 'Bin List' => 'Lista de preteleiras',
+ 'Cc' => 'Cc',
+ 'City' => 'Cidade',
+ 'Company Name' => 'Nome da Empresa',
+ 'Contact' => 'Contato',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Cópias',
+ 'Country' => 'País',
+ 'Customer Number' => 'Número do Cliente',
+ 'Date' => 'Data',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezembro',
+ 'Delivery Date' => 'Data de entrega',
+ 'Description' => 'Descrição',
+ 'E-mail' => 'E-Mail',
+ 'E-mail address missing!' => 'Endereço de E-mail faltando!',
+ 'E-mailed' => 'Enviado por e-mail',
+ 'Extended' => 'Extendida',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Fev',
+ 'February' => 'Fevereiro',
+ 'Group' => 'Grupo',
+ 'In-line' => 'em linha',
+ 'Invoice' => 'Fatura',
+ 'Invoice Date missing!' => 'Data da Fatura não encontrada!',
+ 'Invoice Number missing!' => 'Número da Fatura não encontrado!',
+ 'Item' => 'Item',
+ 'Item not on file!' => 'Item não está no arquivo!',
+ 'Jan' => 'Jan',
+ 'January' => 'Janeiro',
+ 'Jul' => 'Jul',
+ 'July' => 'Julho',
+ 'Jun' => 'Jun',
+ 'June' => 'Junho',
+ 'Mar' => 'Mar',
+ 'March' => 'Março',
+ 'May' => 'Mai',
+ 'May ' => 'Maio',
+ 'Message' => 'Mensagem',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembro',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'Número faltando na linha',
+ 'OH' => 'HE',
+ 'Oct' => 'Out',
+ 'October' => 'Outubro',
+ 'Order Date missing!' => 'Data do Pedido Faltando',
+ 'Order Number missing!' => 'Número do pedido faltando!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de Conteúdo',
+ 'Packing List Date missing!' => 'Data da lista de conteúdo faltando!',
+ 'Packing List Number missing!' => 'Número da lista de conteúdo faltando!',
+ 'Part' => 'Item',
+ 'Phone' => 'Fone',
+ 'Pick List' => 'Lista de Seleção',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Preço',
+ 'Printed' => 'Impresso',
+ 'Project' => 'Projeto',
+ 'Purchase Order' => 'Ordem de Compra',
+ 'Qty' => 'Qtd',
+ 'Queue' => 'Fila',
+ 'Queued' => 'Enfileirado',
+ 'Quotation' => 'Cotação',
+ 'Quotation Date missing!' => 'Data da Cotação faltando!',
+ 'Quotation Number missing!' => 'Número da Cotação faltando!',
+ 'Recd' => 'Recebidos',
+ 'Required by' => 'Requerido por',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Pedido de Venda',
+ 'Scheduled' => 'Programado',
+ 'Screen' => 'Tela',
+ 'Select items' => 'Selecionar itens',
+ 'Select txt, postscript or PDF!' => 'Selecionar txt, Postscript ou PDF!',
+ 'Sep' => 'Set',
+ 'September' => 'Setembro',
+ 'Serial No.' => 'Nº Série',
+ 'Service' => 'Serviço',
+ 'Ship' => 'Despachar',
+ 'Ship to' => 'Enviar para',
+ 'Shipping Address' => 'Endereço para entrega',
+ 'State/Province' => 'Estado / Província',
+ 'Subject' => 'Assunto',
+ 'Subtotal' => 'Subtotal',
+ 'Text' => 'Texto',
+ 'To' => 'Até',
+ 'Translation not on file!' => 'Tradução inexistente',
+ 'Unit' => 'Unidade',
+ 'Vendor Number' => 'ID do Fornecedor',
+ 'What type of item is this?' => 'Que tipo de Item é este?',
+ 'Work Order' => 'Ordem de Serviço',
+ 'Zip/Postal Code' => 'CEP',
+ 'sent' => 'enviado',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/br/ir b/locale/br/ir
new file mode 100755
index 00000000..9fb9f306
--- /dev/null
+++ b/locale/br/ir
@@ -0,0 +1,257 @@
+$self{texts} = {
+ 'Account' => 'Conta',
+ 'Accounting Menu' => 'Menu de Contabilidade',
+ 'Add Purchase Order' => 'Adicionar Ordem de Compra',
+ 'Add Quotation' => 'Adicionar Cotação',
+ 'Add Request for Quotation' => 'Adicionar Requisição de Cotação',
+ 'Add Sales Order' => 'Adicionar Pedido de Venda',
+ 'Add Vendor Invoice' => 'Adicionar Fatura de Compra',
+ 'Address' => 'Endereço',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => 'Tem certeza que quer APAGAR a Fatura Número',
+ 'Attachment' => 'Anexo',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Endereço de Cobrança',
+ 'Bin' => 'Preteleira',
+ 'Bin List' => 'Lista de preteleiras',
+ 'Cannot delete invoice!' => 'Não pode apagar fatura!',
+ 'Cannot post invoice for a closed period!' => 'Não pode lançar fatura em período fechado!',
+ 'Cannot post invoice!' => 'Não pode lançar fatura!',
+ 'Cannot post payment for a closed period!' => 'Não pode lançar pagamento em período fechado!',
+ 'Cc' => 'Cc',
+ 'City' => 'Cidade',
+ 'Company Name' => 'Nome da Empresa',
+ 'Confirm!' => 'Confirmar!',
+ 'Contact' => 'Contato',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Cópias',
+ 'Country' => 'País',
+ 'Credit Limit' => 'Limite de Crédito',
+ 'Currency' => 'Moeda',
+ 'Customer Number' => 'Número do Cliente',
+ 'Customer not on file!' => 'Cliente não está no arquivo!',
+ 'Date' => 'Data',
+ 'Day(s)' => 'Dia(s)',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezembro',
+ 'Delete' => 'Apagar',
+ 'Delete Schedule' => 'Apagar a Programação',
+ 'Delivery Date' => 'Data de entrega',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descrição',
+ 'Due Date' => 'Data de Vencimento',
+ 'E-mail' => 'E-Mail',
+ 'E-mail address missing!' => 'Endereço de E-mail faltando!',
+ 'E-mail message' => 'Mensagem do e-mail',
+ 'E-mailed' => 'Enviado por e-mail',
+ 'Edit Vendor Invoice' => 'Editar Fatura de Compra',
+ 'Every' => 'Cada',
+ 'Exch' => 'Câmbio',
+ 'Exchange Rate' => 'Taxa de câmbio',
+ 'Exchange rate for payment missing!' => 'Falta a taxa de câmbio para o pagamento!',
+ 'Exchange rate missing!' => 'Falta a taxa de câmbio!',
+ 'Extended' => 'Extendida',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Fev',
+ 'February' => 'Fevereiro',
+ 'For' => 'Para',
+ 'Group' => 'Grupo',
+ 'In-line' => 'em linha',
+ 'Include Payment' => 'Incluir Pagamento',
+ 'Internal Notes' => 'Notas internas',
+ 'Invoice' => 'Fatura',
+ 'Invoice Date' => 'Data da Fatura',
+ 'Invoice Date missing!' => 'Data da Fatura não encontrada!',
+ 'Invoice Number' => 'Número da Fatura',
+ 'Invoice Number missing!' => 'Número da Fatura não encontrado!',
+ 'Invoice deleted!' => 'Fatura apagada!',
+ 'Item' => 'Item',
+ 'Item not on file!' => 'Item não está no arquivo!',
+ 'Jan' => 'Jan',
+ 'January' => 'Janeiro',
+ 'Jul' => 'Jul',
+ 'July' => 'Julho',
+ 'Jun' => 'Jun',
+ 'June' => 'Junho',
+ 'Language' => 'Idioma',
+ 'Mar' => 'Mar',
+ 'March' => 'Março',
+ 'May' => 'Mai',
+ 'May ' => 'Maio',
+ 'Memo' => 'Memorando',
+ 'Message' => 'Mensagem',
+ 'Month(s)' => 'Mês(es)',
+ 'Next Date' => 'Próxima Data',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembro',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'Número faltando na linha',
+ 'OH' => 'HE',
+ 'Oct' => 'Out',
+ 'October' => 'Outubro',
+ 'Order Date missing!' => 'Data do Pedido Faltando',
+ 'Order Number' => 'Número do Pedido',
+ 'Order Number missing!' => 'Número do pedido faltando!',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Número da OC',
+ 'Packing List' => 'Lista de Conteúdo',
+ 'Packing List Date missing!' => 'Data da lista de conteúdo faltando!',
+ 'Packing List Number missing!' => 'Número da lista de conteúdo faltando!',
+ 'Part' => 'Item',
+ 'Payment date missing!' => 'Data de pagamento faltando!',
+ 'Payments' => 'Pagamentos',
+ 'Phone' => 'Fone',
+ 'Pick List' => 'Lista de Seleção',
+ 'Post' => 'Lançar',
+ 'Post as new' => 'Lançar como novo',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Preço',
+ 'Print' => 'Imprimir',
+ 'Printed' => 'Impresso',
+ 'Project' => 'Projeto',
+ 'Project not on file!' => 'Projeto não está no arquivo!',
+ 'Purchase Order' => 'Ordem de Compra',
+ 'Qty' => 'Qtd',
+ 'Queue' => 'Fila',
+ 'Queued' => 'Enfileirado',
+ 'Quotation' => 'Cotação',
+ 'Quotation Date missing!' => 'Data da Cotação faltando!',
+ 'Quotation Number missing!' => 'Número da Cotação faltando!',
+ 'Recd' => 'Recebidos',
+ 'Record in' => 'Registrar em',
+ 'Recurring Transaction' => 'Transação Recorrente',
+ 'Reference' => 'Referência',
+ 'Remaining' => 'Restante',
+ 'Repeat' => 'Repetir',
+ 'Required by' => 'Requerido por',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Pedido de Venda',
+ 'Save Schedule' => 'Salvar a Programação',
+ 'Schedule' => 'Programação',
+ 'Scheduled' => 'Programado',
+ 'Screen' => 'Tela',
+ 'Select from one of the names below' => 'Selecione um dos nomes abaixo',
+ 'Select from one of the projects below' => 'Selecione um dos projetos abaixo',
+ 'Select items' => 'Selecionar itens',
+ 'Select txt, postscript or PDF!' => 'Selecionar txt, Postscript ou PDF!',
+ 'Sep' => 'Set',
+ 'September' => 'Setembro',
+ 'Serial No.' => 'Nº Série',
+ 'Service' => 'Serviço',
+ 'Ship' => 'Despachar',
+ 'Ship to' => 'Enviar para',
+ 'Shipping Address' => 'Endereço para entrega',
+ 'Source' => 'Fonte',
+ 'Startdate' => 'Data inicial',
+ 'State/Province' => 'Estado / Província',
+ 'Subject' => 'Assunto',
+ 'Subtotal' => 'Subtotal',
+ 'Tax Included' => 'Impostos incluídos',
+ 'Text' => 'Texto',
+ 'To' => 'Até',
+ 'Total' => 'Total',
+ 'Translation not on file!' => 'Tradução inexistente',
+ 'Unit' => 'Unidade',
+ 'Update' => 'Atualizar',
+ 'Vendor' => 'Fornecedor',
+ 'Vendor Number' => 'ID do Fornecedor',
+ 'Vendor missing!' => 'Fornecedor faltando!',
+ 'Vendor not on file!' => 'Fornecedor não está no arquivo!',
+ 'Warning!' => 'Cuidado!',
+ 'Week(s)' => 'Semana(s)',
+ 'What type of item is this?' => 'Que tipo de Item é este?',
+ 'Work Order' => 'Ordem de Serviço',
+ 'Year(s)' => 'Ano(s)',
+ 'Yes' => 'Sim',
+ 'You are posting an existing transaction!' => 'Você está lançando uma transação existente!',
+ 'You are printing and posting an existing transaction!' => 'Você está imprimindo lançando uma transação existente!',
+ 'You are printing and saving an existing order' => 'Você está imprimindo e salvando um pedido existente!',
+ 'You are printing and saving an existing quotation' => 'Você está imprimindo e salvando uma cotação existente!',
+ 'You are saving an existing order' => 'Você está salvando um pedido existente!',
+ 'You are saving an existing quotation' => 'Você está salvando uma cotação existente!',
+ 'Zip/Postal Code' => 'CEP',
+ 'ea' => 'cada',
+ 'for' => 'para',
+ 'posted!' => 'lançado!',
+ 'sent' => 'enviado',
+ 'time(s)' => 'vêz(es)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'apagar' => 'delete',
+ 'apagar_a_programação' => 'delete_schedule',
+ 'lançar' => 'post',
+ 'lançar_como_novo' => 'post_as_new',
+ 'ordem_de_compra' => 'purchase_order',
+ 'salvar_a_programação' => 'save_schedule',
+ 'programação' => 'schedule',
+ 'atualizar' => 'update',
+ 'sim' => 'yes',
+};
+
+1;
+
diff --git a/locale/br/is b/locale/br/is
new file mode 100755
index 00000000..82ec22e4
--- /dev/null
+++ b/locale/br/is
@@ -0,0 +1,271 @@
+$self{texts} = {
+ 'Account' => 'Conta',
+ 'Accounting Menu' => 'Menu de Contabilidade',
+ 'Add Purchase Order' => 'Adicionar Ordem de Compra',
+ 'Add Quotation' => 'Adicionar Cotação',
+ 'Add Request for Quotation' => 'Adicionar Requisição de Cotação',
+ 'Add Sales Invoice' => 'Adicionar Fatura de Venda',
+ 'Add Sales Order' => 'Adicionar Pedido de Venda',
+ 'Address' => 'Endereço',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => 'Tem certeza que quer APAGAR a Fatura Número',
+ 'Attachment' => 'Anexo',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Endereço de Cobrança',
+ 'Bin' => 'Preteleira',
+ 'Bin List' => 'Lista de preteleiras',
+ 'Business' => 'Negócio',
+ 'Cannot delete invoice!' => 'Não pode apagar fatura!',
+ 'Cannot post invoice for a closed period!' => 'Não pode lançar fatura em período fechado!',
+ 'Cannot post invoice!' => 'Não pode lançar fatura!',
+ 'Cannot post payment for a closed period!' => 'Não pode lançar pagamento em período fechado!',
+ 'Cc' => 'Cc',
+ 'City' => 'Cidade',
+ 'Company Name' => 'Nome da Empresa',
+ 'Confirm!' => 'Confirmar!',
+ 'Contact' => 'Contato',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Cópias',
+ 'Country' => 'País',
+ 'Credit Limit' => 'Limite de Crédito',
+ 'Currency' => 'Moeda',
+ 'Customer' => 'Cliente',
+ 'Customer Number' => 'Número do Cliente',
+ 'Customer missing!' => 'Cliente faltando!',
+ 'Customer not on file!' => 'Cliente não está no arquivo!',
+ 'Date' => 'Data',
+ 'Day(s)' => 'Dia(s)',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezembro',
+ 'Delete' => 'Apagar',
+ 'Delete Schedule' => 'Apagar a Programação',
+ 'Delivery Date' => 'Data de entrega',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descrição',
+ 'Due Date' => 'Data de Vencimento',
+ 'E-mail' => 'E-Mail',
+ 'E-mail address missing!' => 'Endereço de E-mail faltando!',
+ 'E-mail message' => 'Mensagem do e-mail',
+ 'E-mailed' => 'Enviado por e-mail',
+ 'Edit Sales Invoice' => 'Editar Fatura de Venda',
+ 'Every' => 'Cada',
+ 'Exch' => 'Câmbio',
+ 'Exchange Rate' => 'Taxa de câmbio',
+ 'Exchange rate for payment missing!' => 'Falta a taxa de câmbio para o pagamento!',
+ 'Exchange rate missing!' => 'Falta a taxa de câmbio!',
+ 'Extended' => 'Extendida',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Fev',
+ 'February' => 'Fevereiro',
+ 'For' => 'Para',
+ 'Group' => 'Grupo',
+ 'In-line' => 'em linha',
+ 'Include Payment' => 'Incluir Pagamento',
+ 'Internal Notes' => 'Notas internas',
+ 'Invoice' => 'Fatura',
+ 'Invoice Date' => 'Data da Fatura',
+ 'Invoice Date missing!' => 'Data da Fatura não encontrada!',
+ 'Invoice Number' => 'Número da Fatura',
+ 'Invoice Number missing!' => 'Número da Fatura não encontrado!',
+ 'Invoice deleted!' => 'Fatura apagada!',
+ 'Item' => 'Item',
+ 'Item not on file!' => 'Item não está no arquivo!',
+ 'Jan' => 'Jan',
+ 'January' => 'Janeiro',
+ 'Jul' => 'Jul',
+ 'July' => 'Julho',
+ 'Jun' => 'Jun',
+ 'June' => 'Junho',
+ 'Mar' => 'Mar',
+ 'March' => 'Março',
+ 'May' => 'Mai',
+ 'May ' => 'Maio',
+ 'Memo' => 'Memorando',
+ 'Message' => 'Mensagem',
+ 'Month(s)' => 'Mês(es)',
+ 'Next Date' => 'Próxima Data',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembro',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'Número faltando na linha',
+ 'OH' => 'HE',
+ 'Oct' => 'Out',
+ 'October' => 'Outubro',
+ 'Order Date missing!' => 'Data do Pedido Faltando',
+ 'Order Number' => 'Número do Pedido',
+ 'Order Number missing!' => 'Número do pedido faltando!',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Número da OC',
+ 'Packing List' => 'Lista de Conteúdo',
+ 'Packing List Date missing!' => 'Data da lista de conteúdo faltando!',
+ 'Packing List Number missing!' => 'Número da lista de conteúdo faltando!',
+ 'Part' => 'Item',
+ 'Payment date missing!' => 'Data de pagamento faltando!',
+ 'Payments' => 'Pagamentos',
+ 'Phone' => 'Fone',
+ 'Pick List' => 'Lista de Seleção',
+ 'Post' => 'Lançar',
+ 'Post as new' => 'Lançar como novo',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Preço',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir e Lançar',
+ 'Print and Post as new' => 'Imprimir e Lançar como Novo',
+ 'Printed' => 'Impresso',
+ 'Project' => 'Projeto',
+ 'Project not on file!' => 'Projeto não está no arquivo!',
+ 'Purchase Order' => 'Ordem de Compra',
+ 'Qty' => 'Qtd',
+ 'Queue' => 'Fila',
+ 'Queued' => 'Enfileirado',
+ 'Quotation' => 'Cotação',
+ 'Quotation Date missing!' => 'Data da Cotação faltando!',
+ 'Quotation Number missing!' => 'Número da Cotação faltando!',
+ 'Recd' => 'Recebidos',
+ 'Record in' => 'Registrar em',
+ 'Recurring Transaction' => 'Transação Recorrente',
+ 'Reference' => 'Referência',
+ 'Remaining' => 'Restante',
+ 'Repeat' => 'Repetir',
+ 'Required by' => 'Requerido por',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Pedido de Venda',
+ 'Salesperson' => 'Vendedor',
+ 'Save Schedule' => 'Salvar a Programação',
+ 'Schedule' => 'Programação',
+ 'Scheduled' => 'Programado',
+ 'Screen' => 'Tela',
+ 'Select a Printer!' => 'Selecione uma Impressora!',
+ 'Select from one of the names below' => 'Selecione um dos nomes abaixo',
+ 'Select from one of the projects below' => 'Selecione um dos projetos abaixo',
+ 'Select items' => 'Selecionar itens',
+ 'Select postscript or PDF!' => 'Selecionar Postscript ou PDF',
+ 'Select txt, postscript or PDF!' => 'Selecionar txt, Postscript ou PDF!',
+ 'Sep' => 'Set',
+ 'September' => 'Setembro',
+ 'Serial No.' => 'Nº Série',
+ 'Service' => 'Serviço',
+ 'Ship' => 'Despachar',
+ 'Ship to' => 'Enviar para',
+ 'Ship via' => 'Enivar por',
+ 'Shipping Address' => 'Endereço para entrega',
+ 'Shipping Point' => 'Local do despacho',
+ 'Source' => 'Fonte',
+ 'Startdate' => 'Data inicial',
+ 'State/Province' => 'Estado / Província',
+ 'Subject' => 'Assunto',
+ 'Subtotal' => 'Subtotal',
+ 'Tax Included' => 'Impostos incluídos',
+ 'Text' => 'Texto',
+ 'To' => 'Até',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Desconto de comércio',
+ 'Translation not on file!' => 'Tradução inexistente',
+ 'Unit' => 'Unidade',
+ 'Update' => 'Atualizar',
+ 'Vendor Number' => 'ID do Fornecedor',
+ 'Vendor not on file!' => 'Fornecedor não está no arquivo!',
+ 'Warning!' => 'Cuidado!',
+ 'Week(s)' => 'Semana(s)',
+ 'What type of item is this?' => 'Que tipo de Item é este?',
+ 'Work Order' => 'Ordem de Serviço',
+ 'Year(s)' => 'Ano(s)',
+ 'Yes' => 'Sim',
+ 'You are posting an existing transaction!' => 'Você está lançando uma transação existente!',
+ 'You are printing and posting an existing transaction!' => 'Você está imprimindo lançando uma transação existente!',
+ 'You are printing and saving an existing order' => 'Você está imprimindo e salvando um pedido existente!',
+ 'You are printing and saving an existing quotation' => 'Você está imprimindo e salvando uma cotação existente!',
+ 'You are saving an existing order' => 'Você está salvando um pedido existente!',
+ 'You are saving an existing quotation' => 'Você está salvando uma cotação existente!',
+ 'Zip/Postal Code' => 'CEP',
+ 'ea' => 'cada',
+ 'for' => 'para',
+ 'posted!' => 'lançado!',
+ 'sent' => 'enviado',
+ 'time(s)' => 'vêz(es)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'apagar' => 'delete',
+ 'apagar_a_programação' => 'delete_schedule',
+ 'e_mail' => 'e_mail',
+ 'lançar' => 'post',
+ 'lançar_como_novo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'imprimir_e_lançar' => 'print_and_post',
+ 'imprimir_e_lançar_como_novo' => 'print_and_post_as_new',
+ 'pedido_de_venda' => 'sales_order',
+ 'salvar_a_programação' => 'save_schedule',
+ 'programação' => 'schedule',
+ 'enviar_para' => 'ship_to',
+ 'atualizar' => 'update',
+ 'sim' => 'yes',
+};
+
+1;
+
diff --git a/locale/br/jc b/locale/br/jc
new file mode 100755
index 00000000..011087e8
--- /dev/null
+++ b/locale/br/jc
@@ -0,0 +1,155 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menu de Contabilidade',
+ 'Add Stores Card' => 'Adicionar Cartão de Loja',
+ 'Add Time Card' => 'Adicionar Apontamento',
+ 'Allocated' => 'Alocado',
+ 'Amount' => 'Total',
+ 'Are you sure you want to delete time card for' => 'Tem certeza que quer APAGAR o Apontamento de',
+ 'Cannot add stores card for a completed job!' => 'Não é possível adicionar um cartão de loja em um serviço concluído!',
+ 'Cannot add time card for a completed job!' => 'Não é possível adicionar um apontamento em um serviço concluído!',
+ 'Cannot change stores card for a completed job!' => 'Não é possível alterar um cartão de loja em um serviço concluído!',
+ 'Cannot change time card for a completed job!' => 'Não é possível alterar um apontamento em um serviço concluído!',
+ 'Cannot delete time card!' => 'Não é possível apagar o apontamento',
+ 'Cannot save stores card for a closed period!' => 'Não é possível salvar o cartão de loja para um período fechado!',
+ 'Cannot save stores card!' => 'Não é possível salvar o cartão de loja!',
+ 'Cannot save time card for a closed period!' => 'Não é possível salvar o apontamento para um período fechado!',
+ 'Cannot save time card!' => 'Não é possível salvar o apontamento!',
+ 'Chargeable' => 'Faturáveis',
+ 'Clocked' => 'Cronometrado',
+ 'Closed' => 'Fechado',
+ 'Confirm!' => 'Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Cost' => 'Custo',
+ 'Current' => 'Corrente',
+ 'Date' => 'Data',
+ 'Date missing!' => 'Data faltando!',
+ 'Date worked' => 'Data Trabalhada',
+ 'Delete' => 'Apagar',
+ 'Description' => 'Descrição',
+ 'Edit Time Card' => 'Editar o Apontamento',
+ 'Employee' => 'Empregado',
+ 'Friday' => 'Sexta-feira',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir no Relatório',
+ 'Job Description' => 'Descrição do serviço',
+ 'Job Name' => 'Nome do serviço',
+ 'Job Number' => 'Número do serviço',
+ 'Job Number missing!' => 'Faltando o número do serviço',
+ 'Labor Code' => 'Código da Mão-de-Obra',
+ 'Labor Code missing!' => 'Faltando o Código da Mão-de-Obra',
+ 'Monday' => 'Segunda-feira',
+ 'Month' => 'Mês',
+ 'No Employees on file!' => 'Nenhum empregado no arquivo',
+ 'No Labor codes on file!' => 'Nenhum código de mão-de-obra no arquivo',
+ 'No Parts on file!' => 'Nenhum item no arquivo',
+ 'No Services on file!' => 'Nenhum serviço na fila!',
+ 'No open Jobs!' => 'Nenhum serviço aberto',
+ 'No open Projects!' => 'Nenhum projeto aberto',
+ 'Non-chargeable' => 'Não-Faturáveis',
+ 'Notes' => 'Notas',
+ 'Open' => 'Em Aberto',
+ 'PDF' => 'PDF',
+ 'Part Number' => 'Número do Item',
+ 'Period' => 'Período',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Imprimir',
+ 'Print and Save' => 'Imprimir e Salvar',
+ 'Print and Save as new' => 'Imprimir e Salvar como Novo',
+ 'Printed' => 'Impresso',
+ 'Project Name' => 'Nome do Projeto',
+ 'Project Number' => 'Número de Projeto',
+ 'Project Number missing!' => 'Número do Projeto faltando!',
+ 'Project/Job Name' => 'Projeto/Nome do Seriço',
+ 'Project/Job Number' => 'Projeto/Número do Seriço',
+ 'Qty' => 'Qtd',
+ 'Quarter' => 'Trimestre',
+ 'Queue' => 'Fila',
+ 'Queued' => 'Enfileirado',
+ 'Saturday' => 'Sábado',
+ 'Save' => 'Salvar',
+ 'Save as new' => 'Salvar como novo',
+ 'Screen' => 'Tela',
+ 'Select a Printer!' => 'Selecione uma Impressora!',
+ 'Select postscript or PDF!' => 'Selecionar Postscript ou PDF',
+ 'Service Code' => 'Código do Serviço',
+ 'Service Code missing!' => 'Faltando o código do serviço',
+ 'Service/Labor Code' => 'Serviço/Código da Mão-de-obra',
+ 'Startdate' => 'Data inicial',
+ 'Stores Card' => 'Cartão de Loja',
+ 'Stores Card saved!' => 'Cartão de Loja salvo',
+ 'Stores Cards' => 'Cartões de Loja',
+ 'Subtotal' => 'Subtotal',
+ 'Sunday' => 'Domingo',
+ 'Thursday' => 'Quinta-feira',
+ 'Time' => 'Hora',
+ 'Time Card' => 'Apontamento',
+ 'Time Card deleted!' => 'Apontamento apagado',
+ 'Time Card saved!' => 'Apontamento salvo',
+ 'Time Cards' => 'Apontamentos',
+ 'Time In' => 'Hora de Entrada',
+ 'Time Out' => 'Hora de Saída',
+ 'To' => 'Até',
+ 'Total' => 'Total',
+ 'Tuesday' => 'Terça-feira',
+ 'Update' => 'Atualizar',
+ 'Warning!' => 'Cuidado!',
+ 'Wednesday' => 'Quarta-feira',
+ 'Year' => 'Ano',
+ 'Yes' => 'Sim',
+ 'You are printing and saving an existing transaction!' => 'Você está imprimindo e salvando uma transação existente!',
+ 'You are saving an existing transaction!' => 'Você está salvando uma transação existente!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'adicionar_cartão_de_loja' => 'add_stores_card',
+ 'adicionar_apontamento' => 'add_time_card',
+ 'continuar' => 'continue',
+ 'apagar' => 'delete',
+ 'imprimir' => 'print',
+ 'imprimir_e_salvar' => 'print_and_save',
+ 'imprimir_e_salvar_como_novo' => 'print_and_save_as_new',
+ 'salvar' => 'save',
+ 'salvar_como_novo' => 'save_as_new',
+ 'atualizar' => 'update',
+ 'sim' => 'yes',
+};
+
+1;
+
diff --git a/locale/br/locales.pl b/locale/br/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/br/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/br/login b/locale/br/login
new file mode 100755
index 00000000..d1e4ee6e
--- /dev/null
+++ b/locale/br/login
@@ -0,0 +1,25 @@
+$self{texts} = {
+ 'Access Denied!' => 'Acesso Negado',
+ 'Company' => 'Empresa',
+ 'Continue' => 'Continuar',
+ 'Dataset is newer than version!' => 'Conjunto de dados é mais novo que a versão!',
+ 'Incorrect Dataset version!' => 'Versão incorreta de grupos de dados!',
+ 'Login' => 'Entrar',
+ 'Name' => 'Nome',
+ 'Password' => 'Senha',
+ 'Upgrading to Version' => 'Atualizado para versão',
+ 'Version' => 'Versão',
+ 'You did not enter a name!' => 'Você não entrou com um nome',
+ 'done' => 'feito',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ 'entrar' => 'login',
+};
+
+1;
+
diff --git a/locale/br/menu b/locale/br/menu
new file mode 100755
index 00000000..40dc054d
--- /dev/null
+++ b/locale/br/menu
@@ -0,0 +1,142 @@
+$self{texts} = {
+ 'AP' => 'Contas a Pagar',
+ 'AP Aging' => 'Contas a Pagar Vencidas',
+ 'AP Transaction' => 'Transação - Contas a Pagar',
+ 'AR' => 'Contas a Receber',
+ 'AR Aging' => 'Contas a Receber Vencidas',
+ 'AR Transaction' => 'Transação - Contas a Receber',
+ 'Accounting Menu' => 'Menu de Contabilidade',
+ 'Add Account' => 'Adicionar Conta',
+ 'Add Assembly' => 'Adicionar Conjunto',
+ 'Add Business' => 'Adicionar Atividade Comercial',
+ 'Add Customer' => 'Adicionar Cliente',
+ 'Add Department' => 'Adicionar Departamento',
+ 'Add Employee' => 'Adicionar Empregado',
+ 'Add GIFI' => 'Adicionar CFOP',
+ 'Add Group' => 'Adicionar Grupo',
+ 'Add Labor/Overhead' => 'Adicionar Trabalho/Sobretaxa',
+ 'Add Language' => 'Adicionar Idioma',
+ 'Add Part' => 'Adicionar Item',
+ 'Add Pricegroup' => 'Adicionar Grupo de Preços',
+ 'Add Project' => 'Adicionar projeto',
+ 'Add SIC' => 'Adicionar SIC',
+ 'Add Service' => 'Adicionar Serviço',
+ 'Add Time Card' => 'Adicionar Apontamento',
+ 'Add Transaction' => 'Adicionar Transação',
+ 'Add Vendor' => 'Adicionar Fornecedor',
+ 'Add Warehouse' => 'Adicionar Almoxarifado',
+ 'All Items' => 'Todos Ítens',
+ 'Assemblies' => 'Conjuntos',
+ 'Audit Control' => 'Controle de Auditoria',
+ 'Backup' => 'Cópia de reserva',
+ 'Balance Sheet' => 'Folha de Balanço',
+ 'Batch Printing' => 'Impressão em lote',
+ 'Bin List' => 'Lista de preteleiras',
+ 'Bin Lists' => 'Listas de preteleiras',
+ 'Cash' => 'Caixa',
+ 'Chart of Accounts' => 'Plano de Contas',
+ 'Check' => 'Cheque',
+ 'Components' => 'Componentes',
+ 'Customers' => 'Clientes',
+ 'Defaults' => 'Configurações padrão',
+ 'Departments' => 'Departamentos',
+ 'Description' => 'Descrição',
+ 'Employees' => 'Empregados',
+ 'General Ledger' => 'Livro Razão',
+ 'Generate' => 'Gerar',
+ 'Goods & Services' => 'Produtos e Serviços',
+ 'Groups' => 'Grupos',
+ 'HR' => 'Recursos Humanos',
+ 'HTML Templates' => 'Modelos HTML',
+ 'History' => 'Histórico',
+ 'Income Statement' => 'Apuração de L&P',
+ 'Invoice' => 'Fatura',
+ 'LaTeX Templates' => 'Modelos LaTeX',
+ 'Labor/Overhead' => 'Tabalho/Sobretaxa',
+ 'Language' => 'Idioma',
+ 'List Accounts' => 'Listar Contas',
+ 'List Businesses' => 'Listar Negócios',
+ 'List Departments' => 'Listar Departamentos',
+ 'List GIFI' => 'Listar CFOP',
+ 'List Languages' => 'Listar Idiomas',
+ 'List Projects' => 'Listar Projetos',
+ 'List SIC' => 'Listar SIC',
+ 'List Warehouses' => 'Listar Almoxarifados',
+ 'Logout' => 'Sair',
+ 'New Window' => 'Nova Janela',
+ 'Non-taxable' => 'Não Tributadas',
+ 'Open' => 'Em Aberto',
+ 'Order Entry' => 'Entrada de Pedido',
+ 'Outstanding' => 'Pendente',
+ 'POS' => 'PDV',
+ 'POS Invoice' => 'Fatura de PDV',
+ 'Packing List' => 'Lista de Conteúdo',
+ 'Packing Lists' => 'Listas de Conteúdo',
+ 'Parts' => 'Itens',
+ 'Payment' => 'Pagamento',
+ 'Payments' => 'Pagamentos',
+ 'Pick List' => 'Lista de Seleção',
+ 'Pick Lists' => 'Listas de Seleção',
+ 'Preferences' => 'Preferências',
+ 'Pricegroups' => 'Grupos de Preços',
+ 'Print' => 'Imprimir',
+ 'Projects' => 'Projetos',
+ 'Purchase Order' => 'Ordem de Compra',
+ 'Purchase Orders' => 'Ordens de Compra',
+ 'Quotation' => 'Cotação',
+ 'Quotations' => 'Cotações',
+ 'RFQ' => 'RDC',
+ 'RFQs' => 'RDCs',
+ 'Receipt' => 'Recibo',
+ 'Receipts' => 'Recibos',
+ 'Receive' => 'Receber',
+ 'Reconciliation' => 'Reconciliação',
+ 'Recurring Transactions' => 'Transações Recorrentes',
+ 'Reports' => 'Relatórios',
+ 'Requirements' => 'Requerimentos',
+ 'SIC' => 'SIC',
+ 'Sale' => 'Venda',
+ 'Sales Invoice' => 'Fatura de Venda',
+ 'Sales Invoices' => 'Faturas de Venda',
+ 'Sales Order' => 'Pedido de Venda',
+ 'Sales Orders' => 'Pedidos de Venda',
+ 'Save to File' => 'Salvar para Arquivo',
+ 'Search' => 'Buscar',
+ 'Send by E-Mail' => 'Enviar por E-mail',
+ 'Services' => 'Serviços',
+ 'Ship' => 'Despachar',
+ 'Shipping' => 'Despacho de Mercadorias',
+ 'Statement' => 'Declaração',
+ 'Stock Assembly' => 'Estoque de Conjuntos',
+ 'Stylesheet' => 'Folha de estilos',
+ 'System' => 'Sistema',
+ 'Tax collected' => 'Imposto recolhido',
+ 'Tax paid' => 'Imposto pago',
+ 'Text Templates' => 'Modelos de texto',
+ 'Time Card' => 'Apontamento',
+ 'Time Cards' => 'Apontamentos',
+ 'Transactions' => 'Tansações',
+ 'Transfer' => 'Transferir',
+ 'Transfer Inventory' => 'Transferência de Inventário',
+ 'Translations' => 'Traduções',
+ 'Trial Balance' => 'Balanço de Verificação',
+ 'Type of Business' => 'Tipo de Negócio',
+ 'Vendor Invoice' => 'Fatura de Compra',
+ 'Vendors' => 'Fornecedores',
+ 'Version' => 'Versão',
+ 'Warehouses' => 'Almoxarifados',
+ 'Work Order' => 'Ordem de Serviço',
+ 'Work Orders' => 'Ordens de Serviço',
+ 'Yearend' => 'Fim do ano',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/br/oe b/locale/br/oe
new file mode 100755
index 00000000..f82b14b6
--- /dev/null
+++ b/locale/br/oe
@@ -0,0 +1,378 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menu de Contabilidade',
+ 'Add Exchange Rate' => 'Adicionar Taxa de Câmbio',
+ 'Add Purchase Order' => 'Adicionar Ordem de Compra',
+ 'Add Quotation' => 'Adicionar Cotação',
+ 'Add Request for Quotation' => 'Adicionar Requisição de Cotação',
+ 'Add Sales Invoice' => 'Adicionar Fatura de Venda',
+ 'Add Sales Order' => 'Adicionar Pedido de Venda',
+ 'Add Vendor Invoice' => 'Adicionar Fatura de Compra',
+ 'Address' => 'Endereço',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Order Number' => 'Tem certeza que quer APAGAR tal número de Pedido?',
+ 'Are you sure you want to delete Quotation Number' => 'Tem certeza que quer APAGAR tal número de Cotação?',
+ 'Attachment' => 'Anexo',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Endereço de Cobrança',
+ 'Bin' => 'Preteleira',
+ 'Bin List' => 'Lista de preteleiras',
+ 'Business' => 'Negócio',
+ 'C' => 'F',
+ 'Cannot delete order!' => 'Não pode apagar pedido!',
+ 'Cannot delete quotation!' => 'Não pode apagar cotação',
+ 'Cannot save order!' => 'Não pode salvar pedido!',
+ 'Cannot save quotation!' => 'Não pode salvar cotação!',
+ 'Cc' => 'Cc',
+ 'City' => 'Cidade',
+ 'Closed' => 'Fechado',
+ 'Company Name' => 'Nome da Empresa',
+ 'Confirm!' => 'Confirmar!',
+ 'Consolidate Orders' => 'Consolidar pedidos',
+ 'Consolidate Purchase Orders' => 'Consolidar ordens de compra',
+ 'Consolidate Sales Orders' => 'Consolidar pedidos de venda',
+ 'Contact' => 'Contato',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Cópias',
+ 'Cost' => 'Custo',
+ 'Could not save!' => 'Não pode salvar!',
+ 'Could not transfer Inventory!' => 'Não pode transferir inventário!',
+ 'Country' => 'País',
+ 'Credit Limit' => 'Limite de Crédito',
+ 'Curr' => 'Moeda',
+ 'Currency' => 'Moeda',
+ 'Current' => 'Corrente',
+ 'Customer' => 'Cliente',
+ 'Customer Number' => 'Número do Cliente',
+ 'Customer missing!' => 'Cliente faltando!',
+ 'Customer not on file!' => 'Cliente não está no arquivo!',
+ 'Date' => 'Data',
+ 'Date Received' => 'Data de recebimento',
+ 'Date received missing!' => 'Data de recebimento faltando!',
+ 'Day(s)' => 'Dia(s)',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezembro',
+ 'Delete' => 'Apagar',
+ 'Delete Schedule' => 'Apagar a Programação',
+ 'Delivery Date' => 'Data de entrega',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descrição',
+ 'Done' => 'Feito',
+ 'E-mail' => 'E-Mail',
+ 'E-mail address missing!' => 'Endereço de E-mail faltando!',
+ 'E-mail message' => 'Mensagem do e-mail',
+ 'E-mailed' => 'Enviado por e-mail',
+ 'Edit Purchase Order' => 'Editar Ordem de Compra',
+ 'Edit Quotation' => 'Editar Cotação',
+ 'Edit Request for Quotation' => 'Editar Requisição de Cotação',
+ 'Edit Sales Order' => 'Editar Pedido de Venda',
+ 'Employee' => 'Empregado',
+ 'Every' => 'Cada',
+ 'Exchange Rate' => 'Taxa de câmbio',
+ 'Exchange rate missing!' => 'Falta a taxa de câmbio!',
+ 'Extended' => 'Extendida',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Fev',
+ 'February' => 'Fevereiro',
+ 'For' => 'Para',
+ 'From' => 'De',
+ 'From Warehouse' => 'Do Almoxarifado',
+ 'Generate Orders' => 'Gerar Pedidos',
+ 'Generate Purchase Orders' => 'Gerar Ordens de Compra',
+ 'Generate Purchase Orders from Sales Order' => 'Gerar Ordens de Compra a partir dos Pedidos de Venda',
+ 'Generate Sales Order' => 'Gerar Pedidos de Venda',
+ 'Generate Sales Order from Purchase Orders' => 'Gerar Pedidos de Venda a partir das Ordens de Compra',
+ 'Group' => 'Grupo',
+ 'ID' => 'ID',
+ 'In-line' => 'em linha',
+ 'Include Payment' => 'Incluir Pagamento',
+ 'Include in Report' => 'Incluir no Relatório',
+ 'Internal Notes' => 'Notas internas',
+ 'Inventory saved!' => 'Inventário salvo!',
+ 'Inventory transferred!' => 'Inventário transferido!',
+ 'Invoice' => 'Fatura',
+ 'Invoice Date missing!' => 'Data da Fatura não encontrada!',
+ 'Invoice Number missing!' => 'Número da Fatura não encontrado!',
+ 'Item' => 'Item',
+ 'Item not on file!' => 'Item não está no arquivo!',
+ 'Jan' => 'Jan',
+ 'January' => 'Janeiro',
+ 'Jul' => 'Jul',
+ 'July' => 'Julho',
+ 'Jun' => 'Jun',
+ 'June' => 'Junho',
+ 'Lead' => 'Lead',
+ 'Manager' => 'Gerente',
+ 'Mar' => 'Mar',
+ 'March' => 'Março',
+ 'May' => 'Mai',
+ 'May ' => 'Maio',
+ 'Message' => 'Mensagem',
+ 'Month' => 'Mês',
+ 'Month(s)' => 'Mês(es)',
+ 'Next Date' => 'Próxima Data',
+ 'No.' => 'Nº',
+ 'Notes' => 'Notas',
+ 'Nothing entered!' => 'Nada entrou!',
+ 'Nothing selected!' => 'Nada foi selecionado!',
+ 'Nothing to transfer!' => 'Nada a transferir!',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembro',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'Número faltando na linha',
+ 'O' => 'A',
+ 'OH' => 'HE',
+ 'Oct' => 'Out',
+ 'October' => 'Outubro',
+ 'Open' => 'Em Aberto',
+ 'Order' => 'Pedido',
+ 'Order Date' => 'Data do Pedido',
+ 'Order Date missing!' => 'Data do Pedido Faltando',
+ 'Order Number' => 'Número do Pedido',
+ 'Order Number missing!' => 'Número do pedido faltando!',
+ 'Order deleted!' => 'Pedido apagado!',
+ 'Order generation failed!' => 'A geração de pedidos falhou!',
+ 'Order saved!' => 'Pedido salvo!',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Número da OC',
+ 'Packing List' => 'Lista de Conteúdo',
+ 'Packing List Date missing!' => 'Data da lista de conteúdo faltando!',
+ 'Packing List Number missing!' => 'Número da lista de conteúdo faltando!',
+ 'Part' => 'Item',
+ 'Part Number' => 'Número do Item',
+ 'Period' => 'Período',
+ 'Phone' => 'Fone',
+ 'Pick List' => 'Lista de Seleção',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Preço',
+ 'Print' => 'Imprimir',
+ 'Print and Save' => 'Imprimir e Salvar',
+ 'Print and Save as new' => 'Imprimir e Salvar como Novo',
+ 'Printed' => 'Impresso',
+ 'Project' => 'Projeto',
+ 'Project not on file!' => 'Projeto não está no arquivo!',
+ 'Purchase Order' => 'Ordem de Compra',
+ 'Purchase Orders' => 'Ordens de Compra',
+ 'Qty' => 'Qtd',
+ 'Quarter' => 'Trimestre',
+ 'Queue' => 'Fila',
+ 'Queued' => 'Enfileirado',
+ 'Quotation' => 'Cotação',
+ 'Quotation ' => 'Cotação ',
+ 'Quotation Date' => 'Data da Cotação',
+ 'Quotation Date missing!' => 'Data da Cotação faltando!',
+ 'Quotation Number' => 'Número da Cotação',
+ 'Quotation Number missing!' => 'Número da Cotação faltando!',
+ 'Quotation deleted!' => 'Cotação apagada!',
+ 'Quotations' => 'Cotações',
+ 'RFQ' => 'RDC',
+ 'RFQ ' => 'RDC ',
+ 'RFQ Number' => 'Número da RDC',
+ 'Recd' => 'Recebidos',
+ 'Receive Merchandise' => 'Receber mercadoria',
+ 'Recurring Transaction' => 'Transação Recorrente',
+ 'Reference' => 'Referência',
+ 'Remaining' => 'Restante',
+ 'Repeat' => 'Repetir',
+ 'Req' => 'Req',
+ 'Request for Quotation' => 'Requisição de Cotação',
+ 'Request for Quotations' => 'Requisição de Cotações',
+ 'Required by' => 'Requerido por',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Fatura de Venda',
+ 'Sales Order' => 'Pedido de Venda',
+ 'Sales Orders' => 'Pedidos de Venda',
+ 'Salesperson' => 'Vendedor',
+ 'Save' => 'Salvar',
+ 'Save Schedule' => 'Salvar a Programação',
+ 'Save as new' => 'Salvar como novo',
+ 'Schedule' => 'Programação',
+ 'Scheduled' => 'Programado',
+ 'Screen' => 'Tela',
+ 'Select Vendor' => 'Selecionar Fornecedor',
+ 'Select a Printer!' => 'Selecione uma Impressora!',
+ 'Select from one of the names below' => 'Selecione um dos nomes abaixo',
+ 'Select from one of the projects below' => 'Selecione um dos projetos abaixo',
+ 'Select items' => 'Selecionar itens',
+ 'Select postscript or PDF!' => 'Selecionar Postscript ou PDF',
+ 'Select txt, postscript or PDF!' => 'Selecionar txt, Postscript ou PDF!',
+ 'Sep' => 'Set',
+ 'September' => 'Setembro',
+ 'Serial No.' => 'Nº Série',
+ 'Service' => 'Serviço',
+ 'Ship' => 'Despachar',
+ 'Ship Merchandise' => 'Despachar mercadoria',
+ 'Ship to' => 'Enviar para',
+ 'Ship via' => 'Enivar por',
+ 'Shipping Address' => 'Endereço para entrega',
+ 'Shipping Date' => 'Data do Despacho',
+ 'Shipping Date missing!' => 'Data do Despacho faltando!',
+ 'Shipping Point' => 'Local do despacho',
+ 'Startdate' => 'Data inicial',
+ 'State/Province' => 'Estado / Província',
+ 'Subject' => 'Assunto',
+ 'Subtotal' => 'Subtotal',
+ 'Tax' => 'Imposto',
+ 'Tax Included' => 'Impostos incluídos',
+ 'Terms' => 'Crédito Líquido',
+ 'Text' => 'Texto',
+ 'To' => 'Até',
+ 'To Warehouse' => 'Para o Almoxarifado',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Desconto de comércio',
+ 'Transfer' => 'Transferir',
+ 'Transfer Inventory' => 'Transferência de Inventário',
+ 'Transfer from' => 'Trasnferir de',
+ 'Transfer to' => 'Transferir para',
+ 'Translation not on file!' => 'Tradução inexistente',
+ 'Unit' => 'Unidade',
+ 'Update' => 'Atualizar',
+ 'Valid until' => 'Válido até',
+ 'Vendor' => 'Fornecedor',
+ 'Vendor Invoice' => 'Fatura de Compra',
+ 'Vendor Number' => 'ID do Fornecedor',
+ 'Vendor missing!' => 'Fornecedor faltando!',
+ 'Vendor not on file!' => 'Fornecedor não está no arquivo!',
+ 'Warehouse' => 'Almoxarifado',
+ 'Warning!' => 'Cuidado!',
+ 'Week(s)' => 'Semana(s)',
+ 'What type of item is this?' => 'Que tipo de Item é este?',
+ 'Work Order' => 'Ordem de Serviço',
+ 'Year' => 'Ano',
+ 'Year(s)' => 'Ano(s)',
+ 'Yes' => 'Sim',
+ 'You are posting an existing transaction!' => 'Você está lançando uma transação existente!',
+ 'You are printing and posting an existing transaction!' => 'Você está imprimindo lançando uma transação existente!',
+ 'You are printing and saving an existing order' => 'Você está imprimindo e salvando um pedido existente!',
+ 'You are printing and saving an existing quotation' => 'Você está imprimindo e salvando uma cotação existente!',
+ 'You are saving an existing order' => 'Você está salvando um pedido existente!',
+ 'You are saving an existing quotation' => 'Você está salvando uma cotação existente!',
+ 'Zip/Postal Code' => 'CEP',
+ 'days' => 'dias',
+ 'ea' => 'cada',
+ 'for' => 'para',
+ 'sent' => 'enviado',
+ 'time(s)' => 'vêz(es)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'consolidar_pedidos' => 'consolidate_orders',
+ 'continuar' => 'continue',
+ 'apagar' => 'delete',
+ 'apagar_a_programação' => 'delete_schedule',
+ 'feito' => 'done',
+ 'e_mail' => 'e_mail',
+ 'gerar_pedidos' => 'generate_orders',
+ 'gerar_ordens_de_compra' => 'generate_purchase_orders',
+ 'gerar_pedidos_de_venda' => 'generate_sales_order',
+ 'imprimir' => 'print',
+ 'imprimir_e_salvar' => 'print_and_save',
+ 'imprimir_e_salvar_como_novo' => 'print_and_save_as_new',
+ 'ordem_de_compra' => 'purchase_order',
+ 'cotação' => 'quotation',
+ 'cotação_' => 'quotation_',
+ 'rdc' => 'rfq',
+ 'rdc_' => 'rfq_',
+ 'fatura_de_venda' => 'sales_invoice',
+ 'pedido_de_venda' => 'sales_order',
+ 'salvar' => 'save',
+ 'salvar_a_programação' => 'save_schedule',
+ 'salvar_como_novo' => 'save_as_new',
+ 'programação' => 'schedule',
+ 'selecionar_fornecedor' => 'select_vendor',
+ 'enviar_para' => 'ship_to',
+ 'transferir' => 'transfer',
+ 'atualizar' => 'update',
+ 'fatura_de_compra' => 'vendor_invoice',
+ 'sim' => 'yes',
+};
+
+1;
+
diff --git a/locale/br/pe b/locale/br/pe
new file mode 100755
index 00000000..4137eed4
--- /dev/null
+++ b/locale/br/pe
@@ -0,0 +1,166 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menu de Contabilidade',
+ 'Active' => 'Ativa',
+ 'Add' => 'Adicionar',
+ 'Add Group' => 'Adicionar Grupo',
+ 'Add Job' => 'Adicionar Serviço',
+ 'Add Pricegroup' => 'Adicionar Grupo de Preços',
+ 'Add Project' => 'Adicionar projeto',
+ 'Address' => 'Endereço',
+ 'All' => 'Todas',
+ 'Amount' => 'Total',
+ 'As of' => 'Como de',
+ 'Assembly' => 'Conjunto',
+ 'Assembly stocked!' => 'Conjunto estocado',
+ 'Bin' => 'Preteleira',
+ 'Cannot stock Assembly!' => 'Não é possível estocar o Conjunto',
+ 'Completed' => 'Concluído',
+ 'Continue' => 'Continuar',
+ 'Current' => 'Corrente',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => 'Cliente faltando!',
+ 'Customer not on file!' => 'Cliente não está no arquivo!',
+ 'Date' => 'Data',
+ 'Delete' => 'Apagar',
+ 'Description' => 'Descrição',
+ 'Description Translations' => 'Descrições Traduzidas',
+ 'Detail' => 'Detalhe',
+ 'Edit Description Translations' => 'Editar Traduções de Descrições',
+ 'Edit Group' => 'Editar Grupo',
+ 'Edit Job' => 'Editar o Serviço',
+ 'Edit Pricegroup' => 'Editar Grupo de Preços',
+ 'Edit Project' => 'Editar Projeto',
+ 'Employee' => 'Empregado',
+ 'Enddate' => 'Data Final',
+ 'Failed to save order!' => 'Falha ao salvar o pedido',
+ 'From' => 'De',
+ 'Generate Sales Orders' => 'Pedidos de Venda',
+ 'Group' => 'Grupo',
+ 'Group Translations' => 'Grupo de Traduções',
+ 'Group deleted!' => 'Grupo apagado!',
+ 'Group missing!' => 'Grupo faltando!',
+ 'Group saved!' => 'Grupo salvo!',
+ 'Groups' => 'Grupos',
+ 'Inactive' => 'Inativo',
+ 'Income' => 'Receita',
+ 'Job' => 'Serviço',
+ 'Job Number' => 'Número do serviço',
+ 'Job deleted!' => 'Serviço apagado',
+ 'Job saved!' => 'Serviço salvo',
+ 'Jobs' => 'Serviços',
+ 'Language' => 'Idioma',
+ 'Languages not defined!' => 'Idiomas não definidos!',
+ 'Link Accounts' => 'Associar Contas',
+ 'List Price' => 'Preço de lista',
+ 'Month' => 'Mês',
+ 'No open Projects!' => 'Nenhum projeto aberto',
+ 'Notes' => 'Notas',
+ 'Nothing selected!' => 'Nada foi selecionado!',
+ 'Number' => 'Número',
+ 'Orders generated!' => 'Pedidos gerados!',
+ 'Orphaned' => 'Órfãs',
+ 'Part Number' => 'Número do Item',
+ 'Period' => 'Período',
+ 'Pricegroup' => 'Grupo de Preço',
+ 'Pricegroup deleted!' => 'Grupo de Preço apagado!',
+ 'Pricegroup missing!' => 'Grupo de Preço faltando!',
+ 'Pricegroup saved!' => 'Grupo de Preço salvo!',
+ 'Pricegroups' => 'Grupos de Preços',
+ 'Production' => 'Produção',
+ 'Project' => 'Projeto',
+ 'Project Description Translations' => 'Traduções de Descrição de Projeto',
+ 'Project Number' => 'Número de Projeto',
+ 'Project deleted!' => 'Projeto apagado!',
+ 'Project saved!' => 'Projeto salvo!',
+ 'Projects' => 'Projetos',
+ 'Qty' => 'Qtd',
+ 'Quarter' => 'Trimestre',
+ 'Save' => 'Salvar',
+ 'Select Customer' => 'Selecionar Cliente',
+ 'Select from one of the names below' => 'Selecione um dos nomes abaixo',
+ 'Sell Price' => 'Preço de Venda',
+ 'Service Code' => 'Código do Serviço',
+ 'Startdate' => 'Data inicial',
+ 'Stock Finished Goods' => 'Estoque de Produtos Acabados',
+ 'Summary' => 'Sumário',
+ 'Tax' => 'Imposto',
+ 'To' => 'Até',
+ 'Transaction Dates' => 'Datas das Transações',
+ 'Translation' => 'Tradução',
+ 'Translation deleted!' => 'Tradução apagada!',
+ 'Translations saved!' => 'Traduções salvas!',
+ 'Unit' => 'Unidade',
+ 'Update' => 'Atualizar',
+ 'Updated' => 'Atualizado',
+ 'Vendor' => 'Fornecedor',
+ 'Vendor not on file!' => 'Fornecedor não está no arquivo!',
+ 'Weight' => 'Peso',
+ 'Year' => 'Ano',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'adicionar_grupo' => 'add_group',
+ 'adicionar_serviço' => 'add_job',
+ 'adicionar_grupo_de_preços' => 'add_pricegroup',
+ 'adicionar_projeto' => 'add_project',
+ 'continuar' => 'continue',
+ 'apagar' => 'delete',
+ 'pedidos_de_venda' => 'generate_sales_orders',
+ 'salvar' => 'save',
+ 'selecionar_cliente' => 'select_customer',
+ 'atualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/br/pos b/locale/br/pos
new file mode 100755
index 00000000..bad9c8d5
--- /dev/null
+++ b/locale/br/pos
@@ -0,0 +1,81 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menu de Contabilidade',
+ 'Add POS Invoice' => 'Adicionar Fatura de PDV',
+ 'Amount' => 'Total',
+ 'Business' => 'Negócio',
+ 'Cannot post transaction!' => 'Não pode lançar transação!',
+ 'Change' => 'Troco',
+ 'Continue' => 'Continuar',
+ 'Credit Limit' => 'Limite de Crédito',
+ 'Currency' => 'Moeda',
+ 'Current' => 'Corrente',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => 'Cliente faltando!',
+ 'Delete' => 'Apagar',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descrição',
+ 'Edit POS Invoice' => 'Editar Fatura de PDV',
+ 'Exchange Rate' => 'Taxa de câmbio',
+ 'Exchange rate missing!' => 'Falta a taxa de câmbio!',
+ 'Extended' => 'Extendida',
+ 'From' => 'De',
+ 'Language' => 'Idioma',
+ 'Memo' => 'Memorando',
+ 'Month' => 'Mês',
+ 'Number' => 'Número',
+ 'Open' => 'Em Aberto',
+ 'Period' => 'Período',
+ 'Post' => 'Lançar',
+ 'Posted!' => 'Lançado!',
+ 'Price' => 'Preço',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir e Lançar',
+ 'Printed' => 'Impresso',
+ 'Qty' => 'Qtd',
+ 'Quarter' => 'Trimestre',
+ 'Receipts' => 'Recibos',
+ 'Record in' => 'Registrar em',
+ 'Remaining' => 'Restante',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Tela',
+ 'Select a Printer!' => 'Selecione uma Impressora!',
+ 'Source' => 'Fonte',
+ 'Subtotal' => 'Subtotal',
+ 'Tax Included' => 'Impostos incluídos',
+ 'To' => 'Até',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Desconto de comércio',
+ 'Unit' => 'Unidade',
+ 'Update' => 'Atualizar',
+ 'Year' => 'Ano',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'continuar' => 'continue',
+ 'apagar' => 'delete',
+ 'lançar' => 'post',
+ 'imprimir' => 'print',
+ 'imprimir_e_lançar' => 'print_and_post',
+ 'atualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/br/ps b/locale/br/ps
new file mode 100755
index 00000000..96862ad9
--- /dev/null
+++ b/locale/br/ps
@@ -0,0 +1,397 @@
+$self{texts} = {
+ 'AP Aging' => 'Contas a Pagar Vencidas',
+ 'AP Outstanding' => 'Contas a Pagar Pendentes',
+ 'AP Transaction' => 'Transação - Contas a Pagar',
+ 'AP Transactions' => 'Transações - Contas a Pagar',
+ 'AR Aging' => 'Contas a Receber Vencidas',
+ 'AR Outstanding' => 'Contas a Receber Pendentes',
+ 'AR Transaction' => 'Transação - Contas a Receber',
+ 'AR Transactions' => 'Transações - Contas a Receber',
+ 'Account' => 'Conta',
+ 'Account Number' => 'Número da Conta',
+ 'Accounting Menu' => 'Menu de Contabilidade',
+ 'Accounts' => 'Contas',
+ 'Accrual' => 'Resultado final',
+ 'Add AP Transaction' => 'Adicionar Transação de CP',
+ 'Add AR Transaction' => 'Adicionar Transação de CR',
+ 'Add POS Invoice' => 'Adicionar Fatura de PDV',
+ 'Add Purchase Order' => 'Adicionar Ordem de Compra',
+ 'Add Quotation' => 'Adicionar Cotação',
+ 'Add Request for Quotation' => 'Adicionar Requisição de Cotação',
+ 'Add Sales Invoice' => 'Adicionar Fatura de Venda',
+ 'Add Sales Order' => 'Adicionar Pedido de Venda',
+ 'Address' => 'Endereço',
+ 'Aged' => 'Velho',
+ 'Aged Overdue' => 'Velho e vencido',
+ 'All Accounts' => 'Todas Contas',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Total Devido',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => 'Tem certeza que quer APAGAR a Fatura Número',
+ 'Are you sure you want to delete Transaction' => 'Tem certeza que quer APAGAR a Transação',
+ 'Attachment' => 'Anexo',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Balanço',
+ 'Balance Sheet' => 'Folha de Balanço',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Endereço de Cobrança',
+ 'Bin' => 'Preteleira',
+ 'Bin List' => 'Lista de preteleiras',
+ 'Business' => 'Negócio',
+ 'Cannot delete invoice!' => 'Não pode apagar fatura!',
+ 'Cannot delete transaction!' => 'Não pode apagar transação!',
+ 'Cannot post invoice for a closed period!' => 'Não pode lançar fatura em período fechado!',
+ 'Cannot post invoice!' => 'Não pode lançar fatura!',
+ 'Cannot post payment for a closed period!' => 'Não pode lançar pagamento em período fechado!',
+ 'Cannot post transaction for a closed period!' => 'Não pode lançar transação para um período já encerrado!',
+ 'Cannot post transaction!' => 'Não pode lançar transação!',
+ 'Cash' => 'Caixa',
+ 'Cc' => 'Cc',
+ 'Change' => 'Troco',
+ 'Check' => 'Cheque',
+ 'City' => 'Cidade',
+ 'Closed' => 'Fechado',
+ 'Company Name' => 'Nome da Empresa',
+ 'Compare to' => 'Comparar a',
+ 'Confirm!' => 'Confirmar!',
+ 'Contact' => 'Contato',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Cópias',
+ 'Country' => 'País',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Limite de Crédito',
+ 'Curr' => 'Moeda',
+ 'Currency' => 'Moeda',
+ 'Current' => 'Corrente',
+ 'Current Earnings' => 'Ganhos Atuais',
+ 'Customer' => 'Cliente',
+ 'Customer Number' => 'Número do Cliente',
+ 'Customer missing!' => 'Cliente faltando!',
+ 'Customer not on file!' => 'Cliente não está no arquivo!',
+ 'Date' => 'Data',
+ 'Date Paid' => 'Data de pagamento',
+ 'Day(s)' => 'Dia(s)',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezembro',
+ 'Decimalplaces' => 'Casas decimais',
+ 'Delete' => 'Apagar',
+ 'Delete Schedule' => 'Apagar a Programação',
+ 'Delivery Date' => 'Data de entrega',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descrição',
+ 'Detail' => 'Detalhe',
+ 'Due Date' => 'Data de Vencimento',
+ 'Due Date missing!' => 'Data de Vencimento faltando!',
+ 'E-mail' => 'E-Mail',
+ 'E-mail Statement to' => 'Declaração enviada por email para',
+ 'E-mail address missing!' => 'Endereço de E-mail faltando!',
+ 'E-mail message' => 'Mensagem do e-mail',
+ 'E-mailed' => 'Enviado por e-mail',
+ 'Edit AP Transaction' => 'Editar Transação de CP',
+ 'Edit AR Transaction' => 'Editar Transação de CR',
+ 'Edit POS Invoice' => 'Editar Fatura de PDV',
+ 'Edit Sales Invoice' => 'Editar Fatura de Venda',
+ 'Employee' => 'Empregado',
+ 'Every' => 'Cada',
+ 'Exch' => 'Câmbio',
+ 'Exchange Rate' => 'Taxa de câmbio',
+ 'Exchange rate for payment missing!' => 'Falta a taxa de câmbio para o pagamento!',
+ 'Exchange rate missing!' => 'Falta a taxa de câmbio!',
+ 'Extended' => 'Extendida',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Fev',
+ 'February' => 'Fevereiro',
+ 'For' => 'Para',
+ 'From' => 'De',
+ 'GIFI' => 'CFOP - Código Fiscal da Operação',
+ 'Group' => 'Grupo',
+ 'Heading' => 'Cabeçalho',
+ 'ID' => 'ID',
+ 'In-line' => 'em linha',
+ 'Include Exchange Rate Difference' => 'Incluir diferença de taxa de câmbio',
+ 'Include Payment' => 'Incluir Pagamento',
+ 'Include in Report' => 'Incluir no Relatório',
+ 'Income Statement' => 'Apuração de L&P',
+ 'Internal Notes' => 'Notas internas',
+ 'Invoice' => 'Fatura',
+ 'Invoice Date' => 'Data da Fatura',
+ 'Invoice Date missing!' => 'Data da Fatura não encontrada!',
+ 'Invoice Number' => 'Número da Fatura',
+ 'Invoice Number missing!' => 'Número da Fatura não encontrado!',
+ 'Invoice deleted!' => 'Fatura apagada!',
+ 'Item' => 'Item',
+ 'Item not on file!' => 'Item não está no arquivo!',
+ 'Jan' => 'Jan',
+ 'January' => 'Janeiro',
+ 'Jul' => 'Jul',
+ 'July' => 'Julho',
+ 'Jun' => 'Jun',
+ 'June' => 'Junho',
+ 'Language' => 'Idioma',
+ 'Manager' => 'Gerente',
+ 'Mar' => 'Mar',
+ 'March' => 'Março',
+ 'May' => 'Mai',
+ 'May ' => 'Maio',
+ 'Memo' => 'Memorando',
+ 'Message' => 'Mensagem',
+ 'Method' => 'Método',
+ 'Month' => 'Mês',
+ 'Month(s)' => 'Mês(es)',
+ 'N/A' => 'N/D',
+ 'Next Date' => 'Próxima Data',
+ 'No.' => 'Nº',
+ 'Non-taxable Purchases' => 'Compras Isentas',
+ 'Non-taxable Sales' => 'Vendas Isentas',
+ 'Notes' => 'Notas',
+ 'Nothing selected!' => 'Nada foi selecionado!',
+ 'Nothing to print!' => 'Nada para imprimir',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembro',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'Número faltando na linha',
+ 'OH' => 'HE',
+ 'Oct' => 'Out',
+ 'October' => 'Outubro',
+ 'Open' => 'Em Aberto',
+ 'Order' => 'Pedido',
+ 'Order Date missing!' => 'Data do Pedido Faltando',
+ 'Order Number' => 'Número do Pedido',
+ 'Order Number missing!' => 'Número do pedido faltando!',
+ 'Overdue' => 'Vencido',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Número da OC',
+ 'Packing List' => 'Lista de Conteúdo',
+ 'Packing List Date missing!' => 'Data da lista de conteúdo faltando!',
+ 'Packing List Number missing!' => 'Número da lista de conteúdo faltando!',
+ 'Paid' => 'Total Efetuado',
+ 'Part' => 'Item',
+ 'Payment date missing!' => 'Data de pagamento faltando!',
+ 'Payments' => 'Pagamentos',
+ 'Period' => 'Período',
+ 'Phone' => 'Fone',
+ 'Pick List' => 'Lista de Seleção',
+ 'Post' => 'Lançar',
+ 'Post as new' => 'Lançar como novo',
+ 'Posted!' => 'Lançado!',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Preço',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir e Lançar',
+ 'Print and Post as new' => 'Imprimir e Lançar como Novo',
+ 'Printed' => 'Impresso',
+ 'Project' => 'Projeto',
+ 'Project Number' => 'Número de Projeto',
+ 'Project Transactions' => 'Transações de Projeto',
+ 'Project not on file!' => 'Projeto não está no arquivo!',
+ 'Purchase Order' => 'Ordem de Compra',
+ 'Qty' => 'Qtd',
+ 'Quarter' => 'Trimestre',
+ 'Queue' => 'Fila',
+ 'Queued' => 'Enfileirado',
+ 'Quotation' => 'Cotação',
+ 'Quotation Date missing!' => 'Data da Cotação faltando!',
+ 'Quotation Number missing!' => 'Número da Cotação faltando!',
+ 'Recd' => 'Recebidos',
+ 'Receipt' => 'Recibo',
+ 'Receipts' => 'Recibos',
+ 'Record in' => 'Registrar em',
+ 'Recurring Transaction' => 'Transação Recorrente',
+ 'Reference' => 'Referência',
+ 'Remaining' => 'Restante',
+ 'Repeat' => 'Repetir',
+ 'Report for' => 'Relatório para',
+ 'Required by' => 'Requerido por',
+ 'SKU' => 'SKU',
+ 'Sales Invoice.' => 'Fatura de Venda.',
+ 'Sales Order' => 'Pedido de Venda',
+ 'Salesperson' => 'Vendedor',
+ 'Save Schedule' => 'Salvar a Programação',
+ 'Schedule' => 'Programação',
+ 'Scheduled' => 'Programado',
+ 'Screen' => 'Tela',
+ 'Select a Printer!' => 'Selecione uma Impressora!',
+ 'Select all' => 'Selecionar todos',
+ 'Select from one of the names below' => 'Selecione um dos nomes abaixo',
+ 'Select from one of the projects below' => 'Selecione um dos projetos abaixo',
+ 'Select items' => 'Selecionar itens',
+ 'Select payment' => 'Selecionar Pagamento',
+ 'Select postscript or PDF!' => 'Selecionar Postscript ou PDF',
+ 'Select txt, postscript or PDF!' => 'Selecionar txt, Postscript ou PDF!',
+ 'Sep' => 'Set',
+ 'September' => 'Setembro',
+ 'Serial No.' => 'Nº Série',
+ 'Service' => 'Serviço',
+ 'Ship' => 'Despachar',
+ 'Ship to' => 'Enviar para',
+ 'Ship via' => 'Enivar por',
+ 'Shipping Address' => 'Endereço para entrega',
+ 'Shipping Point' => 'Local do despacho',
+ 'Source' => 'Fonte',
+ 'Standard' => 'Padrão',
+ 'Startdate' => 'Data inicial',
+ 'State/Province' => 'Estado / Província',
+ 'Statement' => 'Declaração',
+ 'Statement sent to' => 'Declaração enviada para',
+ 'Statements sent to printer!' => 'Declaração enviada para impressora!',
+ 'Subject' => 'Assunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Sumário',
+ 'Tax' => 'Imposto',
+ 'Tax Included' => 'Impostos incluídos',
+ 'Tax collected' => 'Imposto recolhido',
+ 'Tax paid' => 'Imposto pago',
+ 'Text' => 'Texto',
+ 'Till' => 'Até',
+ 'To' => 'Até',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Desconto de comércio',
+ 'Transaction' => 'Transação',
+ 'Transaction deleted!' => 'Transação apagada!',
+ 'Transaction posted!' => 'Transação lançada',
+ 'Translation not on file!' => 'Tradução inexistente',
+ 'Trial Balance' => 'Balanço de Verificação',
+ 'Unit' => 'Unidade',
+ 'Update' => 'Atualizar',
+ 'Vendor' => 'Fornecedor',
+ 'Vendor Invoice.' => 'Fatura de Compra.',
+ 'Vendor Number' => 'ID do Fornecedor',
+ 'Vendor missing!' => 'Fornecedor faltando!',
+ 'Vendor not on file!' => 'Fornecedor não está no arquivo!',
+ 'Warning!' => 'Cuidado!',
+ 'Week(s)' => 'Semana(s)',
+ 'What type of item is this?' => 'Que tipo de Item é este?',
+ 'Work Order' => 'Ordem de Serviço',
+ 'Year' => 'Ano',
+ 'Year(s)' => 'Ano(s)',
+ 'Yes' => 'Sim',
+ 'You are posting an existing transaction!' => 'Você está lançando uma transação existente!',
+ 'You are printing and posting an existing transaction!' => 'Você está imprimindo lançando uma transação existente!',
+ 'You are printing and saving an existing order' => 'Você está imprimindo e salvando um pedido existente!',
+ 'You are printing and saving an existing quotation' => 'Você está imprimindo e salvando uma cotação existente!',
+ 'You are saving an existing order' => 'Você está salvando um pedido existente!',
+ 'You are saving an existing quotation' => 'Você está salvando uma cotação existente!',
+ 'Zip/Postal Code' => 'CEP',
+ 'as at' => 'como em',
+ 'ea' => 'cada',
+ 'for' => 'para',
+ 'for Period' => 'pelo período',
+ 'posted!' => 'lançado!',
+ 'sent' => 'enviado',
+ 'time(s)' => 'vêz(es)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'transação___contas_a_pagar' => 'ap_transaction',
+ 'transação___contas_a_receber' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'apagar' => 'delete',
+ 'apagar_a_programação' => 'delete_schedule',
+ 'e_mail' => 'e_mail',
+ 'lançar' => 'post',
+ 'lançar_como_novo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'imprimir_e_lançar' => 'print_and_post',
+ 'imprimir_e_lançar_como_novo' => 'print_and_post_as_new',
+ 'fatura_de_venda_' => 'sales_invoice_',
+ 'pedido_de_venda' => 'sales_order',
+ 'salvar_a_programação' => 'save_schedule',
+ 'programação' => 'schedule',
+ 'selecionar_todos' => 'select_all',
+ 'enviar_para' => 'ship_to',
+ 'atualizar' => 'update',
+ 'fatura_de_compra_' => 'vendor_invoice_',
+ 'sim' => 'yes',
+};
+
+1;
+
diff --git a/locale/br/pw b/locale/br/pw
new file mode 100755
index 00000000..15761934
--- /dev/null
+++ b/locale/br/pw
@@ -0,0 +1,13 @@
+$self{texts} = {
+ 'Continue' => 'Continuar',
+ 'Password' => 'Senha',
+ 'Session expired!' => 'Sessão expirada',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/br/rc b/locale/br/rc
new file mode 100755
index 00000000..a268263f
--- /dev/null
+++ b/locale/br/rc
@@ -0,0 +1,79 @@
+$self{texts} = {
+ 'Account' => 'Conta',
+ 'Accounting Menu' => 'Menu de Contabilidade',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Balanço',
+ 'Beginning Balance' => 'Balanço Inicial',
+ 'Cleared' => 'Limpo',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Current' => 'Corrente',
+ 'Date' => 'Data',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezembro',
+ 'Description' => 'Descrição',
+ 'Detail' => 'Detalhe',
+ 'Difference' => 'Diferença',
+ 'Done' => 'Feito',
+ 'Feb' => 'Fev',
+ 'February' => 'Fevereiro',
+ 'From' => 'De',
+ 'Include Exchange Rate Difference' => 'Incluir diferença de taxa de câmbio',
+ 'Jan' => 'Jan',
+ 'January' => 'Janeiro',
+ 'Jul' => 'Jul',
+ 'July' => 'Julho',
+ 'Jun' => 'Jun',
+ 'June' => 'Junho',
+ 'Mar' => 'Mar',
+ 'March' => 'Março',
+ 'May' => 'Mai',
+ 'May ' => 'Maio',
+ 'Month' => 'Mês',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembro',
+ 'Oct' => 'Out',
+ 'October' => 'Outubro',
+ 'Out of balance!' => 'Fora de balanço!',
+ 'Outstanding' => 'Pendente',
+ 'Period' => 'Período',
+ 'Quarter' => 'Trimestre',
+ 'R' => 'R',
+ 'Reconciliation' => 'Reconciliação',
+ 'Reconciliation Report' => 'Relatório de Reconciliação',
+ 'Select all' => 'Selecionar todos',
+ 'Sep' => 'Set',
+ 'September' => 'Setembro',
+ 'Source' => 'Fonte',
+ 'Statement Balance' => 'Declaração de Balanço',
+ 'Summary' => 'Sumário',
+ 'To' => 'Até',
+ 'Update' => 'Atualizar',
+ 'Year' => 'Ano',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'continuar' => 'continue',
+ 'feito' => 'done',
+ 'selecionar_todos' => 'select_all',
+ 'atualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/br/rp b/locale/br/rp
new file mode 100755
index 00000000..28a0a4d1
--- /dev/null
+++ b/locale/br/rp
@@ -0,0 +1,205 @@
+$self{texts} = {
+ 'AP Aging' => 'Contas a Pagar Vencidas',
+ 'AR Aging' => 'Contas a Receber Vencidas',
+ 'Account' => 'Conta',
+ 'Account Number' => 'Número da Conta',
+ 'Accounting Menu' => 'Menu de Contabilidade',
+ 'Accounts' => 'Contas',
+ 'Accrual' => 'Resultado final',
+ 'Address' => 'Endereço',
+ 'Aged' => 'Velho',
+ 'Aged Overdue' => 'Velho e vencido',
+ 'All Accounts' => 'Todas Contas',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Attachment' => 'Anexo',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Balanço',
+ 'Balance Sheet' => 'Folha de Balanço',
+ 'Bcc' => 'Bcc',
+ 'Cash' => 'Caixa',
+ 'Cc' => 'Cc',
+ 'Compare to' => 'Comparar a',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Cópias',
+ 'Credit' => 'Crédito',
+ 'Curr' => 'Moeda',
+ 'Current' => 'Corrente',
+ 'Current Earnings' => 'Ganhos Atuais',
+ 'Customer' => 'Cliente',
+ 'Customer not on file!' => 'Cliente não está no arquivo!',
+ 'Date' => 'Data',
+ 'Day(s)' => 'Dia(s)',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezembro',
+ 'Decimalplaces' => 'Casas decimais',
+ 'Delete Schedule' => 'Apagar a Programação',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descrição',
+ 'Detail' => 'Detalhe',
+ 'Due Date' => 'Data de Vencimento',
+ 'E-mail' => 'E-Mail',
+ 'E-mail Statement to' => 'Declaração enviada por email para',
+ 'E-mail address missing!' => 'Endereço de E-mail faltando!',
+ 'E-mail message' => 'Mensagem do e-mail',
+ 'Every' => 'Cada',
+ 'Feb' => 'Fev',
+ 'February' => 'Fevereiro',
+ 'For' => 'Para',
+ 'From' => 'De',
+ 'GIFI' => 'CFOP - Código Fiscal da Operação',
+ 'Heading' => 'Cabeçalho',
+ 'ID' => 'ID',
+ 'In-line' => 'em linha',
+ 'Include Exchange Rate Difference' => 'Incluir diferença de taxa de câmbio',
+ 'Include Payment' => 'Incluir Pagamento',
+ 'Include in Report' => 'Incluir no Relatório',
+ 'Income Statement' => 'Apuração de L&P',
+ 'Invoice' => 'Fatura',
+ 'Jan' => 'Jan',
+ 'January' => 'Janeiro',
+ 'Jul' => 'Jul',
+ 'July' => 'Julho',
+ 'Jun' => 'Jun',
+ 'June' => 'Junho',
+ 'Language' => 'Idioma',
+ 'Mar' => 'Mar',
+ 'March' => 'Março',
+ 'May' => 'Mai',
+ 'May ' => 'Maio',
+ 'Memo' => 'Memorando',
+ 'Message' => 'Mensagem',
+ 'Method' => 'Método',
+ 'Month' => 'Mês',
+ 'Month(s)' => 'Mês(es)',
+ 'N/A' => 'N/D',
+ 'Next Date' => 'Próxima Data',
+ 'Non-taxable Purchases' => 'Compras Isentas',
+ 'Non-taxable Sales' => 'Vendas Isentas',
+ 'Nothing selected!' => 'Nada foi selecionado!',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembro',
+ 'Number' => 'Número',
+ 'Oct' => 'Out',
+ 'October' => 'Outubro',
+ 'Order' => 'Pedido',
+ 'Overdue' => 'Vencido',
+ 'PDF' => 'PDF',
+ 'Payments' => 'Pagamentos',
+ 'Period' => 'Período',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Imprimir',
+ 'Project' => 'Projeto',
+ 'Project Number' => 'Número de Projeto',
+ 'Project Transactions' => 'Transações de Projeto',
+ 'Project not on file!' => 'Projeto não está no arquivo!',
+ 'Quarter' => 'Trimestre',
+ 'Receipts' => 'Recibos',
+ 'Recurring Transaction' => 'Transação Recorrente',
+ 'Reference' => 'Referência',
+ 'Repeat' => 'Repetir',
+ 'Report for' => 'Relatório para',
+ 'Salesperson' => 'Vendedor',
+ 'Save Schedule' => 'Salvar a Programação',
+ 'Screen' => 'Tela',
+ 'Select all' => 'Selecionar todos',
+ 'Select from one of the names below' => 'Selecione um dos nomes abaixo',
+ 'Select from one of the projects below' => 'Selecione um dos projetos abaixo',
+ 'Select postscript or PDF!' => 'Selecionar Postscript ou PDF',
+ 'Sep' => 'Set',
+ 'September' => 'Setembro',
+ 'Source' => 'Fonte',
+ 'Standard' => 'Padrão',
+ 'Startdate' => 'Data inicial',
+ 'Statement' => 'Declaração',
+ 'Statement sent to' => 'Declaração enviada para',
+ 'Statements sent to printer!' => 'Declaração enviada para impressora!',
+ 'Subject' => 'Assunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Sumário',
+ 'Tax' => 'Imposto',
+ 'Tax collected' => 'Imposto recolhido',
+ 'Tax paid' => 'Imposto pago',
+ 'Till' => 'Até',
+ 'To' => 'Até',
+ 'Total' => 'Total',
+ 'Trial Balance' => 'Balanço de Verificação',
+ 'Vendor' => 'Fornecedor',
+ 'Vendor not on file!' => 'Fornecedor não está no arquivo!',
+ 'Warning!' => 'Cuidado!',
+ 'Week(s)' => 'Semana(s)',
+ 'Year' => 'Ano',
+ 'Year(s)' => 'Ano(s)',
+ 'You are posting an existing transaction!' => 'Você está lançando uma transação existente!',
+ 'You are printing and posting an existing transaction!' => 'Você está imprimindo lançando uma transação existente!',
+ 'You are printing and saving an existing order' => 'Você está imprimindo e salvando um pedido existente!',
+ 'You are printing and saving an existing quotation' => 'Você está imprimindo e salvando uma cotação existente!',
+ 'You are saving an existing order' => 'Você está salvando um pedido existente!',
+ 'You are saving an existing quotation' => 'Você está salvando uma cotação existente!',
+ 'as at' => 'como em',
+ 'for' => 'para',
+ 'for Period' => 'pelo período',
+ 'sent' => 'enviado',
+ 'time(s)' => 'vêz(es)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuar' => 'continue',
+ 'apagar_a_programação' => 'delete_schedule',
+ 'e_mail' => 'e_mail',
+ 'imprimir' => 'print',
+ 'salvar_a_programação' => 'save_schedule',
+ 'selecionar_todos' => 'select_all',
+};
+
+1;
+
diff --git a/locale/ca_en/COPYING b/locale/ca_en/COPYING
new file mode 100755
index 00000000..aefd9af8
--- /dev/null
+++ b/locale/ca_en/COPYING
@@ -0,0 +1,23 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2005
+#
+# British English texts:
+#
+# Author:
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/ca_en/LANGUAGE b/locale/ca_en/LANGUAGE
new file mode 100755
index 00000000..f9c465e5
--- /dev/null
+++ b/locale/ca_en/LANGUAGE
@@ -0,0 +1 @@
+English/Canada
diff --git a/locale/ca_en/aa b/locale/ca_en/aa
new file mode 100755
index 00000000..5347421a
--- /dev/null
+++ b/locale/ca_en/aa
@@ -0,0 +1,27 @@
+$self{texts} = {
+ 'Check' => 'Cheque',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+};
+
+1;
+
diff --git a/locale/ca_en/admin b/locale/ca_en/admin
new file mode 100755
index 00000000..54fc5353
--- /dev/null
+++ b/locale/ca_en/admin
@@ -0,0 +1,37 @@
+$self{texts} = {
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/ca_en/all b/locale/ca_en/all
new file mode 100755
index 00000000..0fa0723d
--- /dev/null
+++ b/locale/ca_en/all
@@ -0,0 +1,890 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+
+$self{texts} = {
+ 'A' => '',
+ 'AP' => '',
+ 'AP Aging' => '',
+ 'AP Outstanding' => '',
+ 'AP Transaction' => '',
+ 'AP Transactions' => '',
+ 'AR' => '',
+ 'AR Aging' => '',
+ 'AR Outstanding' => '',
+ 'AR Transaction' => '',
+ 'AR Transactions' => '',
+ 'AR/AP' => '',
+ 'About' => '',
+ 'Above' => '',
+ 'Access Control' => '',
+ 'Access Denied!' => '',
+ 'Account' => '',
+ 'Account Number' => '',
+ 'Account Number missing!' => '',
+ 'Account Type' => '',
+ 'Account Type missing!' => '',
+ 'Account deleted!' => '',
+ 'Account does not exist!' => '',
+ 'Account saved!' => '',
+ 'Accounting' => '',
+ 'Accounting Menu' => '',
+ 'Accounts' => '',
+ 'Accrual' => '',
+ 'Activate Audit trail' => '',
+ 'Active' => '',
+ 'Add' => '',
+ 'Add AP Transaction' => '',
+ 'Add AR Transaction' => '',
+ 'Add Account' => '',
+ 'Add Assembly' => '',
+ 'Add Business' => '',
+ 'Add Cash Transfer Transaction' => '',
+ 'Add Customer' => '',
+ 'Add Deduction' => '',
+ 'Add Department' => '',
+ 'Add Employee' => '',
+ 'Add Exchange Rate' => '',
+ 'Add GIFI' => '',
+ 'Add General Ledger Transaction' => '',
+ 'Add Group' => '',
+ 'Add Job' => '',
+ 'Add Labor/Overhead' => '',
+ 'Add Language' => '',
+ 'Add POS Invoice' => '',
+ 'Add Part' => '',
+ 'Add Pricegroup' => '',
+ 'Add Project' => '',
+ 'Add Purchase Order' => '',
+ 'Add Quotation' => '',
+ 'Add Request for Quotation' => '',
+ 'Add SIC' => '',
+ 'Add Sales Invoice' => '',
+ 'Add Sales Order' => '',
+ 'Add Service' => '',
+ 'Add Timecard' => '',
+ 'Add Transaction' => '',
+ 'Add User' => '',
+ 'Add Vendor' => '',
+ 'Add Vendor Invoice' => '',
+ 'Add Warehouse' => '',
+ 'Address' => '',
+ 'Administration' => '',
+ 'Administrator' => '',
+ 'After Deduction' => '',
+ 'All' => '',
+ 'All Accounts' => '',
+ 'All Datasets up to date!' => '',
+ 'All Items' => '',
+ 'Allowances' => '',
+ 'Amount' => '',
+ 'Amount Due' => '',
+ 'Amount missing!' => '',
+ 'Apr' => '',
+ 'April' => '',
+ 'Are you sure you want to delete Invoice Number' => '',
+ 'Are you sure you want to delete Order Number' => '',
+ 'Are you sure you want to delete Quotation Number' => '',
+ 'Are you sure you want to delete Timecard for' => '',
+ 'Are you sure you want to delete Transaction' => '',
+ 'Are you sure you want to remove the marked entries from the queue?' => '',
+ 'Assemblies' => '',
+ 'Assemblies restocked!' => '',
+ 'Assembly' => '',
+ 'Assembly stocked!' => '',
+ 'Asset' => '',
+ 'Attachment' => '',
+ 'Audit Control' => '',
+ 'Audit trail disabled' => '',
+ 'Audit trail enabled' => '',
+ 'Audit trail removed up to' => '',
+ 'Aug' => '',
+ 'August' => '',
+ 'Average Cost' => '',
+ 'Avg Cost' => '',
+ 'BIC' => '',
+ 'BOM' => '',
+ 'Backup' => '',
+ 'Backup sent to' => '',
+ 'Balance' => '',
+ 'Balance Sheet' => '',
+ 'Based on' => '',
+ 'Bcc' => '',
+ 'Before Deduction' => '',
+ 'Beginning Balance' => '',
+ 'Below' => '',
+ 'Billing Address' => '',
+ 'Bin' => '',
+ 'Bin List' => '',
+ 'Bin Lists' => '',
+ 'Books are open' => '',
+ 'Break' => '',
+ 'Business' => '',
+ 'Business Number' => '',
+ 'Business deleted!' => '',
+ 'Business saved!' => '',
+ 'C' => '',
+ 'COGS' => '',
+ 'COGS account does not exist!' => '',
+ 'Cannot add timecard for a completed job!' => '',
+ 'Cannot change timecard for a completed job!' => '',
+ 'Cannot create Assembly' => '',
+ 'Cannot create Labor' => '',
+ 'Cannot create Lock!' => '',
+ 'Cannot create Part' => '',
+ 'Cannot create Service' => '',
+ 'Cannot delete Timecard!' => '',
+ 'Cannot delete account!' => '',
+ 'Cannot delete customer!' => '',
+ 'Cannot delete default account!' => '',
+ 'Cannot delete invoice!' => '',
+ 'Cannot delete item!' => '',
+ 'Cannot delete order!' => '',
+ 'Cannot delete quotation!' => '',
+ 'Cannot delete transaction!' => '',
+ 'Cannot delete vendor!' => '',
+ 'Cannot post Payment!' => '',
+ 'Cannot post Receipt!' => '',
+ 'Cannot post invoice for a closed period!' => '',
+ 'Cannot post invoice!' => '',
+ 'Cannot post payment for a closed period!' => '',
+ 'Cannot post transaction for a closed period!' => '',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => '',
+ 'Cannot post transaction!' => '',
+ 'Cannot remove files!' => '',
+ 'Cannot save account!' => '',
+ 'Cannot save defaults!' => '',
+ 'Cannot save order!' => '',
+ 'Cannot save preferences!' => '',
+ 'Cannot save quotation!' => '',
+ 'Cannot save timecard for a closed period!' => '',
+ 'Cannot save timecard!' => '',
+ 'Cannot set account for more than one of AR, AP or IC' => '',
+ 'Cannot set multiple options for' => '',
+ 'Cannot set multiple options for Item' => '',
+ 'Cannot stock Assembly!' => '',
+ 'Cannot stock assemblies!' => '',
+ 'Cash' => '',
+ 'Cc' => '',
+ 'Change' => '',
+ 'Change Admin Password' => '',
+ 'Change Password' => '',
+ 'Charge' => '',
+ 'Chart of Accounts' => '',
+ 'Check' => 'Cheque',
+ 'Check Inventory' => '',
+ 'Checks' => 'Cheques',
+ 'City' => '',
+ 'Cleared' => '',
+ 'Click on login name to edit!' => '',
+ 'Clocked' => '',
+ 'Close Books up to' => '',
+ 'Closed' => '',
+ 'Code' => '',
+ 'Code missing!' => '',
+ 'Company' => '',
+ 'Company Name' => '',
+ 'Compare to' => '',
+ 'Completed' => '',
+ 'Components' => '',
+ 'Confirm' => '',
+ 'Confirm!' => '',
+ 'Connect to' => '',
+ 'Contact' => '',
+ 'Continue' => '',
+ 'Contra' => '',
+ 'Copies' => '',
+ 'Copy to COA' => '',
+ 'Cost' => '',
+ 'Cost Center' => '',
+ 'Could not save pricelist!' => '',
+ 'Could not save!' => '',
+ 'Could not transfer Inventory!' => '',
+ 'Country' => '',
+ 'Create Chart of Accounts' => '',
+ 'Create Dataset' => '',
+ 'Credit' => '',
+ 'Credit Limit' => '',
+ 'Curr' => '',
+ 'Currency' => '',
+ 'Current' => '',
+ 'Current Earnings' => '',
+ 'Customer' => '',
+ 'Customer History' => '',
+ 'Customer Number' => '',
+ 'Customer deleted!' => '',
+ 'Customer missing!' => '',
+ 'Customer not on file!' => '',
+ 'Customer saved!' => '',
+ 'Customers' => '',
+ 'DBI not installed!' => '',
+ 'DOB' => '',
+ 'Database' => '',
+ 'Database Administration' => '',
+ 'Database Driver not checked!' => '',
+ 'Database Host' => '',
+ 'Database User missing!' => '',
+ 'Dataset' => '',
+ 'Dataset is newer than version!' => '',
+ 'Dataset missing!' => '',
+ 'Dataset updated!' => '',
+ 'Date' => '',
+ 'Date Format' => '',
+ 'Date Paid' => '',
+ 'Date Received' => '',
+ 'Date missing!' => '',
+ 'Date received missing!' => '',
+ 'Date worked' => '',
+ 'Day' => '',
+ 'Day(s)' => '',
+ 'Days' => '',
+ 'Debit' => '',
+ 'Dec' => '',
+ 'December' => '',
+ 'Decimalplaces' => '',
+ 'Decrease' => '',
+ 'Deduct after' => '',
+ 'Deduction deleted!' => '',
+ 'Deduction saved!' => '',
+ 'Deductions' => '',
+ 'Default Template' => '',
+ 'Defaults' => '',
+ 'Defaults saved!' => '',
+ 'Delete' => '',
+ 'Delete Account' => '',
+ 'Delete Dataset' => '',
+ 'Delete Schedule' => '',
+ 'Deleting a language will also delete the templates for the language' => '',
+ 'Delivery Date' => '',
+ 'Department' => '',
+ 'Department deleted!' => '',
+ 'Department saved!' => '',
+ 'Departments' => '',
+ 'Deposit' => '',
+ 'Description' => '',
+ 'Description Translations' => '',
+ 'Description missing!' => '',
+ 'Detail' => '',
+ 'Difference' => '',
+ 'Directory' => '',
+ 'Discount' => '',
+ 'Done' => '',
+ 'Drawing' => '',
+ 'Driver' => '',
+ 'Dropdown Limit' => '',
+ 'Due Date' => '',
+ 'Due Date missing!' => '',
+ 'E-mail' => '',
+ 'E-mail Statement to' => '',
+ 'E-mail address missing!' => '',
+ 'E-mail message' => '',
+ 'E-mailed' => '',
+ 'Edit' => '',
+ 'Edit AP Transaction' => '',
+ 'Edit AR Transaction' => '',
+ 'Edit Account' => '',
+ 'Edit Assembly' => '',
+ 'Edit Business' => '',
+ 'Edit Cash Transfer Transaction' => '',
+ 'Edit Customer' => '',
+ 'Edit Deduction' => '',
+ 'Edit Department' => '',
+ 'Edit Description Translations' => '',
+ 'Edit Employee' => '',
+ 'Edit GIFI' => '',
+ 'Edit General Ledger Transaction' => '',
+ 'Edit Group' => '',
+ 'Edit Job' => '',
+ 'Edit Labor/Overhead' => '',
+ 'Edit Language' => '',
+ 'Edit POS Invoice' => '',
+ 'Edit Part' => '',
+ 'Edit Preferences for' => '',
+ 'Edit Pricegroup' => '',
+ 'Edit Project' => '',
+ 'Edit Purchase Order' => '',
+ 'Edit Quotation' => '',
+ 'Edit Request for Quotation' => '',
+ 'Edit SIC' => '',
+ 'Edit Sales Invoice' => '',
+ 'Edit Sales Order' => '',
+ 'Edit Service' => '',
+ 'Edit Template' => '',
+ 'Edit Timecard' => '',
+ 'Edit User' => '',
+ 'Edit Vendor' => '',
+ 'Edit Vendor Invoice' => '',
+ 'Edit Warehouse' => '',
+ 'Employee' => '',
+ 'Employee Name' => '',
+ 'Employee Number' => '',
+ 'Employee deleted!' => '',
+ 'Employee pays' => '',
+ 'Employee saved!' => '',
+ 'Employees' => '',
+ 'Employer' => '',
+ 'Employer pays' => '',
+ 'Enddate' => '',
+ 'Ends' => '',
+ 'Enforce transaction reversal for all dates' => '',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => '',
+ 'Equity' => '',
+ 'Every' => '',
+ 'Excempt age <' => '',
+ 'Exch' => '',
+ 'Exchange Rate' => '',
+ 'Exchange rate for payment missing!' => '',
+ 'Exchange rate missing!' => '',
+ 'Existing Datasets' => '',
+ 'Expense' => '',
+ 'Expense account does not exist!' => '',
+ 'Expense/Asset' => '',
+ 'Extended' => '',
+ 'FX' => '',
+ 'Failed to save order!' => '',
+ 'Fax' => '',
+ 'Feb' => '',
+ 'February' => '',
+ 'For' => '',
+ 'Foreign Exchange Gain' => '',
+ 'Foreign Exchange Loss' => '',
+ 'Friday' => '',
+ 'From' => '',
+ 'From Warehouse' => '',
+ 'GIFI' => '',
+ 'GIFI deleted!' => '',
+ 'GIFI missing!' => '',
+ 'GIFI saved!' => '',
+ 'GL' => '',
+ 'GL Reference Number' => '',
+ 'GL Transaction' => '',
+ 'General Ledger' => '',
+ 'Generate' => '',
+ 'Generate Orders' => '',
+ 'Generate Purchase Orders' => '',
+ 'Generate Purchase Orders from Sales Order' => '',
+ 'Generate Sales Order' => '',
+ 'Generate Sales Order from Purchase Orders' => '',
+ 'Generate Sales Orders' => '',
+ 'Goods & Services' => '',
+ 'Group' => '',
+ 'Group Items' => '',
+ 'Group Translations' => '',
+ 'Group deleted!' => '',
+ 'Group missing!' => '',
+ 'Group saved!' => '',
+ 'Groups' => '',
+ 'HR' => '',
+ 'HTML Templates' => '',
+ 'Heading' => '',
+ 'History' => '',
+ 'Home Phone' => '',
+ 'Host' => '',
+ 'Hostname missing!' => '',
+ 'IBAN' => '',
+ 'ID' => '',
+ 'Image' => '',
+ 'In-line' => '',
+ 'Inactive' => '',
+ 'Include Exchange Rate Difference' => '',
+ 'Include Payment' => '',
+ 'Include in Report' => '',
+ 'Include in drop-down menus' => '',
+ 'Income' => '',
+ 'Income Statement' => '',
+ 'Income account does not exist!' => '',
+ 'Incorrect Dataset version!' => '',
+ 'Increase' => '',
+ 'Individual Items' => '',
+ 'Internal Notes' => '',
+ 'Inventory' => '',
+ 'Inventory account does not exist!' => '',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => '',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => '',
+ 'Inventory saved!' => '',
+ 'Inventory transferred!' => '',
+ 'Invoice' => '',
+ 'Invoice Date' => '',
+ 'Invoice Date missing!' => '',
+ 'Invoice Number' => '',
+ 'Invoice Number missing!' => '',
+ 'Invoice deleted!' => '',
+ 'Invoices' => '',
+ 'Is this a summary account to record' => '',
+ 'Item already on pricelist!' => '',
+ 'Item deleted!' => '',
+ 'Item not on file!' => '',
+ 'Items' => '',
+ 'Jan' => '',
+ 'January' => '',
+ 'Job' => '',
+ 'Job Name' => '',
+ 'Job Number' => '',
+ 'Job Number missing!' => '',
+ 'Job deleted!' => '',
+ 'Job saved!' => '',
+ 'Jobs' => '',
+ 'Jul' => '',
+ 'July' => '',
+ 'Jun' => '',
+ 'June' => '',
+ 'LaTeX Templates' => '',
+ 'Labor Code' => '',
+ 'Labor/Overhead' => '',
+ 'Language' => '',
+ 'Language deleted!' => '',
+ 'Language saved!' => '',
+ 'Languages' => '',
+ 'Languages not defined!' => '',
+ 'Last Cost' => '',
+ 'Last Numbers & Default Accounts' => '',
+ 'Lead' => '',
+ 'Leadtime' => '',
+ 'Leave host and port field empty unless you want to make a remote connection.' => '',
+ 'Liability' => '',
+ 'Licensed to' => '',
+ 'Line Total' => '',
+ 'Link' => '',
+ 'Link Accounts' => '',
+ 'List' => '',
+ 'List Accounts' => '',
+ 'List Businesses' => '',
+ 'List Departments' => '',
+ 'List GIFI' => '',
+ 'List Languages' => '',
+ 'List Price' => '',
+ 'List Projects' => '',
+ 'List SIC' => '',
+ 'List Transactions' => '',
+ 'List Warehouses' => '',
+ 'Lock System' => '',
+ 'Lockfile created!' => '',
+ 'Lockfile removed!' => '',
+ 'Login' => '',
+ 'Login name missing!' => '',
+ 'Logout' => '',
+ 'Make' => '',
+ 'Manager' => '',
+ 'Mar' => '',
+ 'March' => '',
+ 'Marked entries printed!' => '',
+ 'Markup' => '',
+ 'Maximum' => '',
+ 'May' => '',
+ 'May ' => '',
+ 'Memo' => '',
+ 'Menu Width' => '',
+ 'Message' => '',
+ 'Method' => '',
+ 'Microfiche' => '',
+ 'Model' => '',
+ 'Monday' => '',
+ 'Month' => '',
+ 'Month(s)' => '',
+ 'Months' => '',
+ 'Multibyte Encoding' => '',
+ 'N/A' => '',
+ 'Name' => '',
+ 'Name missing!' => '',
+ 'New Templates' => '',
+ 'New Window' => '',
+ 'Next' => '',
+ 'Next Date' => '',
+ 'Next Number' => '',
+ 'No' => '',
+ 'No Database Drivers available!' => '',
+ 'No Dataset selected!' => '',
+ 'No Employees on file!' => '',
+ 'No Labor codes on file!' => '',
+ 'No email address for' => '',
+ 'No open Jobs!' => '',
+ 'No open Projects!' => '',
+ 'No.' => '',
+ 'Non-taxable' => '',
+ 'Non-taxable Purchases' => '',
+ 'Non-taxable Sales' => '',
+ 'Non-tracking Items' => '',
+ 'Notes' => '',
+ 'Nothing entered!' => '',
+ 'Nothing selected!' => '',
+ 'Nothing to delete!' => '',
+ 'Nothing to print!' => '',
+ 'Nothing to transfer!' => '',
+ 'Nov' => '',
+ 'November' => '',
+ 'Number' => '',
+ 'Number Format' => '',
+ 'Number missing in Row' => '',
+ 'O' => '',
+ 'OH' => '',
+ 'Obsolete' => '',
+ 'Oct' => '',
+ 'October' => '',
+ 'On Hand' => '',
+ 'Open' => '',
+ 'Oracle Database Administration' => '',
+ 'Order' => '',
+ 'Order Date' => '',
+ 'Order Date missing!' => '',
+ 'Order Entry' => '',
+ 'Order Number' => '',
+ 'Order Number missing!' => '',
+ 'Order deleted!' => '',
+ 'Order generation failed!' => '',
+ 'Order saved!' => '',
+ 'Orders generated!' => '',
+ 'Orphaned' => '',
+ 'Out of balance transaction!' => '',
+ 'Out of balance!' => '',
+ 'Outstanding' => '',
+ 'PDF' => '',
+ 'PO Number' => '',
+ 'POS' => '',
+ 'POS Invoice' => '',
+ 'Packing List' => '',
+ 'Packing List Date missing!' => '',
+ 'Packing List Number missing!' => '',
+ 'Packing Lists' => '',
+ 'Paid' => '',
+ 'Part' => '',
+ 'Part Number' => '',
+ 'Partnumber' => '',
+ 'Parts' => '',
+ 'Password' => '',
+ 'Password changed!' => '',
+ 'Password does not match!' => '',
+ 'Passwords do not match!' => '',
+ 'Payables' => '',
+ 'Payment' => '',
+ 'Payment date missing!' => '',
+ 'Payment posted!' => '',
+ 'Payments' => '',
+ 'Payments posted!' => '',
+ 'Payroll Deduction' => '',
+ 'Period' => '',
+ 'Pg Database Administration' => '',
+ 'PgPP Database Administration' => '',
+ 'Phone' => '',
+ 'Pick List' => '',
+ 'Pick Lists' => '',
+ 'Port' => '',
+ 'Port missing!' => '',
+ 'Pos' => '',
+ 'Post' => '',
+ 'Post as new' => '',
+ 'Posted!' => '',
+ 'Posting' => '',
+ 'Posting failed!' => '',
+ 'Postscript' => '',
+ 'Preferences' => '',
+ 'Preferences saved!' => '',
+ 'Prepayment' => '',
+ 'Price' => '',
+ 'Pricegroup' => '',
+ 'Pricegroup deleted!' => '',
+ 'Pricegroup missing!' => '',
+ 'Pricegroup saved!' => '',
+ 'Pricegroups' => '',
+ 'Pricelist' => '',
+ 'Print' => '',
+ 'Print and Post' => '',
+ 'Print and Post as new' => '',
+ 'Print and Save' => '',
+ 'Print and Save as new' => '',
+ 'Print and post as new' => '',
+ 'Print and save as new' => '',
+ 'Printed' => '',
+ 'Printer' => '',
+ 'Printing' => '',
+ 'Printing ... ' => '',
+ 'Process Transactions' => '',
+ 'Production' => '',
+ 'Profit Center' => '',
+ 'Project' => '',
+ 'Project Description Translations' => '',
+ 'Project Name' => '',
+ 'Project Number' => '',
+ 'Project Number missing!' => '',
+ 'Project Transactions' => '',
+ 'Project deleted!' => '',
+ 'Project not on file!' => '',
+ 'Project saved!' => '',
+ 'Project/Job Name' => '',
+ 'Project/Job Number' => '',
+ 'Projects' => '',
+ 'Purchase Order' => '',
+ 'Purchase Order Number' => '',
+ 'Purchase Orders' => '',
+ 'Qty' => '',
+ 'Quantity exceeds available units to stock!' => '',
+ 'Quarter' => '',
+ 'Quotation' => '',
+ 'Quotation ' => '',
+ 'Quotation Date' => '',
+ 'Quotation Date missing!' => '',
+ 'Quotation Number' => '',
+ 'Quotation Number missing!' => '',
+ 'Quotation deleted!' => '',
+ 'Quotations' => '',
+ 'R' => '',
+ 'RFQ' => '',
+ 'RFQ ' => '',
+ 'RFQ Number' => '',
+ 'RFQs' => '',
+ 'ROP' => '',
+ 'Rate' => '',
+ 'Rate missing!' => '',
+ 'Recd' => '',
+ 'Receipt' => '',
+ 'Receipt posted!' => '',
+ 'Receipts' => '',
+ 'Receivables' => '',
+ 'Receive' => '',
+ 'Receive Merchandise' => '',
+ 'Reconciliation' => '',
+ 'Reconciliation Report' => '',
+ 'Record in' => '',
+ 'Recurring Transaction' => '',
+ 'Recurring Transactions' => '',
+ 'Reference' => '',
+ 'Remaining' => '',
+ 'Remove' => '',
+ 'Remove Audit trail up to' => '',
+ 'Removed spoolfiles!' => '',
+ 'Removing marked entries from queue ...' => '',
+ 'Repeat' => '',
+ 'Report for' => '',
+ 'Reports' => '',
+ 'Req' => '',
+ 'Request for Quotation' => '',
+ 'Request for Quotations' => '',
+ 'Required by' => '',
+ 'Retained Earnings' => '',
+ 'Role' => '',
+ 'S' => '',
+ 'SIC' => '',
+ 'SIC deleted!' => '',
+ 'SIC saved!' => '',
+ 'SKU' => '',
+ 'SSN' => '',
+ 'Sale' => '',
+ 'Sales' => '',
+ 'Sales Invoice' => '',
+ 'Sales Invoice ' => '',
+ 'Sales Invoice.' => '',
+ 'Sales Invoice/AR Transaction Number' => '',
+ 'Sales Invoices' => '',
+ 'Sales Order' => '',
+ 'Sales Order Number' => '',
+ 'Sales Orders' => '',
+ 'Sales Quotation Number' => '',
+ 'Salesperson' => '',
+ 'Saturday' => '',
+ 'Save' => '',
+ 'Save Pricelist' => '',
+ 'Save Schedule' => '',
+ 'Save as new' => '',
+ 'Save to File' => '',
+ 'Saving' => '',
+ 'Schedule' => '',
+ 'Scheduled' => '',
+ 'Screen' => '',
+ 'Search' => '',
+ 'Select' => '',
+ 'Select Customer' => '',
+ 'Select Vendor' => '',
+ 'Select a Printer!' => '',
+ 'Select a printer!' => '',
+ 'Select all' => '',
+ 'Select from one of the items below' => '',
+ 'Select from one of the names below' => '',
+ 'Select from one of the projects below' => '',
+ 'Select items' => '',
+ 'Select payment' => '',
+ 'Select postscript or PDF!' => '',
+ 'Select txt, postscript or PDF!' => '',
+ 'Sell' => '',
+ 'Sell Price' => '',
+ 'Send by E-Mail' => '',
+ 'Sending' => '',
+ 'Sep' => '',
+ 'September' => '',
+ 'Serial No.' => '',
+ 'Serial Number' => '',
+ 'Service' => '',
+ 'Service Code' => '',
+ 'Service/Labor Code' => '',
+ 'Services' => '',
+ 'Session Timeout' => '',
+ 'Session expired!' => '',
+ 'Setup Templates' => '',
+ 'Ship' => '',
+ 'Ship Merchandise' => '',
+ 'Ship to' => '',
+ 'Ship via' => '',
+ 'Shipping' => '',
+ 'Shipping Address' => '',
+ 'Shipping Date' => '',
+ 'Shipping Date missing!' => '',
+ 'Shipping Point' => '',
+ 'Short' => '',
+ 'Signature' => '',
+ 'Source' => '',
+ 'Spoolfile' => '',
+ 'Standard' => '',
+ 'Standard Industrial Codes' => '',
+ 'Startdate' => '',
+ 'State' => '',
+ 'State/Province' => '',
+ 'Statement' => '',
+ 'Statement Balance' => '',
+ 'Statement sent to' => '',
+ 'Statements sent to printer!' => '',
+ 'Stock' => '',
+ 'Stock Assembly' => '',
+ 'Stocking Date' => '',
+ 'Stylesheet' => '',
+ 'Sub-contract GIFI' => '',
+ 'Subject' => '',
+ 'Subtotal' => '',
+ 'Summary' => '',
+ 'Sunday' => '',
+ 'Supervisor' => '',
+ 'System' => '',
+ 'System Defaults' => '',
+ 'Tax' => '',
+ 'Tax Accounts' => '',
+ 'Tax Included' => '',
+ 'Tax Number' => '',
+ 'Tax Number / SSN' => '',
+ 'Tax collected' => '',
+ 'Tax paid' => '',
+ 'Taxable' => '',
+ 'Template saved!' => '',
+ 'Templates' => '',
+ 'Terms' => '',
+ 'Text' => '',
+ 'Text Templates' => '',
+ 'The following Datasets are not in use and can be deleted' => '',
+ 'The following Datasets need to be updated' => '',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => '',
+ 'Thursday' => '',
+ 'Till' => '',
+ 'Time In' => '',
+ 'Time Out' => '',
+ 'Timecard' => '',
+ 'Timecard deleted!' => '',
+ 'Timecard saved!' => '',
+ 'Timecards' => '',
+ 'Times' => '',
+ 'To' => '',
+ 'To Warehouse' => '',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => '',
+ 'Top Level' => '',
+ 'Total' => '',
+ 'Tracking Items' => '',
+ 'Trade Discount' => '',
+ 'Transaction' => '',
+ 'Transaction Date missing!' => '',
+ 'Transaction Dates' => '',
+ 'Transaction deleted!' => '',
+ 'Transaction posted!' => '',
+ 'Transaction reversal enforced for all dates' => '',
+ 'Transaction reversal enforced up to' => '',
+ 'Transactions' => '',
+ 'Transfer' => '',
+ 'Transfer Inventory' => '',
+ 'Transfer from' => '',
+ 'Transfer to' => '',
+ 'Translation' => '',
+ 'Translation deleted!' => '',
+ 'Translation not on file!' => '',
+ 'Translations' => '',
+ 'Translations saved!' => '',
+ 'Trial Balance' => '',
+ 'Tuesday' => '',
+ 'Type of Business' => '',
+ 'Unit' => '',
+ 'Unit of measure' => '',
+ 'Unlock System' => '',
+ 'Update' => '',
+ 'Update Dataset' => '',
+ 'Updated' => '',
+ 'Upgrading to Version' => '',
+ 'Use Templates' => '',
+ 'User' => '',
+ 'User deleted!' => '',
+ 'User saved!' => '',
+ 'Valid until' => '',
+ 'Vendor' => '',
+ 'Vendor History' => '',
+ 'Vendor Invoice' => '',
+ 'Vendor Invoice ' => '',
+ 'Vendor Invoice.' => '',
+ 'Vendor Invoice/AP Transaction Number' => '',
+ 'Vendor Invoices' => '',
+ 'Vendor Number' => '',
+ 'Vendor deleted!' => '',
+ 'Vendor missing!' => '',
+ 'Vendor not on file!' => '',
+ 'Vendor saved!' => '',
+ 'Vendors' => '',
+ 'Version' => '',
+ 'Warehouse' => '',
+ 'Warehouse deleted!' => '',
+ 'Warehouse saved!' => '',
+ 'Warehouses' => '',
+ 'Warning!' => '',
+ 'Wednesday' => '',
+ 'Week' => '',
+ 'Week(s)' => '',
+ 'Weeks' => '',
+ 'Weight' => '',
+ 'Weight Unit' => '',
+ 'What type of item is this?' => '',
+ 'Work Order' => '',
+ 'Work Orders' => '',
+ 'Work Phone' => '',
+ 'Year' => '',
+ 'Year(s)' => '',
+ 'Yearend' => '',
+ 'Yearend date missing!' => '',
+ 'Yearend posted!' => '',
+ 'Yearend posting failed!' => '',
+ 'Years' => '',
+ 'Yes' => '',
+ 'You are logged out' => '',
+ 'You are posting an existing transaction!' => '',
+ 'You are printing and posting an existing transaction!' => '',
+ 'You are printing and saving an existing order' => '',
+ 'You are printing and saving an existing quotation' => '',
+ 'You are printing and saving an existing transaction!' => '',
+ 'You are saving an existing order' => '',
+ 'You are saving an existing quotation' => '',
+ 'You are saving an existing transaction!' => '',
+ 'You did not enter a name!' => '',
+ 'You must enter a host and port for local and remote connections!' => '',
+ 'Zip/Postal Code' => '',
+ 'account cannot be set to any other type of account' => '',
+ 'as at' => '',
+ 'days' => '',
+ 'does not exist' => '',
+ 'done' => '',
+ 'ea' => '',
+ 'failed' => '',
+ 'for' => '',
+ 'for Period' => '',
+ 'is already a member!' => '',
+ 'localhost' => '',
+ 'locked!' => '',
+ 'partsgroup' => '',
+ 'posted!' => '',
+ 'sent' => '',
+ 'successfully created!' => '',
+ 'successfully deleted!' => '',
+ 'time(s)' => '',
+ 'unexpected error!' => '',
+ 'website' => '',
+};
+
+1;
diff --git a/locale/ca_en/am b/locale/ca_en/am
new file mode 100755
index 00000000..c213e407
--- /dev/null
+++ b/locale/ca_en/am
@@ -0,0 +1,90 @@
+$self{texts} = {
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+};
+
+1;
+
diff --git a/locale/ca_en/ap b/locale/ca_en/ap
new file mode 100755
index 00000000..b3b6c719
--- /dev/null
+++ b/locale/ca_en/ap
@@ -0,0 +1,58 @@
+$self{texts} = {
+ 'Check' => 'Cheque',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+};
+
+1;
+
diff --git a/locale/ca_en/ar b/locale/ca_en/ar
new file mode 100755
index 00000000..b3b6c719
--- /dev/null
+++ b/locale/ca_en/ar
@@ -0,0 +1,58 @@
+$self{texts} = {
+ 'Check' => 'Cheque',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+};
+
+1;
+
diff --git a/locale/ca_en/arap b/locale/ca_en/arap
new file mode 100755
index 00000000..d25b4bbe
--- /dev/null
+++ b/locale/ca_en/arap
@@ -0,0 +1,29 @@
+$self{texts} = {
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+};
+
+1;
+
diff --git a/locale/ca_en/arapprn b/locale/ca_en/arapprn
new file mode 100755
index 00000000..a2d2335a
--- /dev/null
+++ b/locale/ca_en/arapprn
@@ -0,0 +1,18 @@
+$self{texts} = {
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+};
+
+1;
+
diff --git a/locale/ca_en/bp b/locale/ca_en/bp
new file mode 100755
index 00000000..a680e621
--- /dev/null
+++ b/locale/ca_en/bp
@@ -0,0 +1,20 @@
+$self{texts} = {
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+};
+
+1;
+
diff --git a/locale/ca_en/ca b/locale/ca_en/ca
new file mode 100755
index 00000000..f7985928
--- /dev/null
+++ b/locale/ca_en/ca
@@ -0,0 +1,12 @@
+$self{texts} = {
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/ca_en/cp b/locale/ca_en/cp
new file mode 100755
index 00000000..b086a0fd
--- /dev/null
+++ b/locale/ca_en/cp
@@ -0,0 +1,57 @@
+$self{texts} = {
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+};
+
+1;
+
diff --git a/locale/ca_en/ct b/locale/ca_en/ct
new file mode 100755
index 00000000..2a51b541
--- /dev/null
+++ b/locale/ca_en/ct
@@ -0,0 +1,51 @@
+$self{texts} = {
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+};
+
+1;
+
diff --git a/locale/ca_en/gl b/locale/ca_en/gl
new file mode 100755
index 00000000..596273d2
--- /dev/null
+++ b/locale/ca_en/gl
@@ -0,0 +1,48 @@
+$self{texts} = {
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+};
+
+1;
+
diff --git a/locale/ca_en/hr b/locale/ca_en/hr
new file mode 100755
index 00000000..b94418ee
--- /dev/null
+++ b/locale/ca_en/hr
@@ -0,0 +1,38 @@
+$self{texts} = {
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+};
+
+1;
+
diff --git a/locale/ca_en/ic b/locale/ca_en/ic
new file mode 100755
index 00000000..b917546f
--- /dev/null
+++ b/locale/ca_en/ic
@@ -0,0 +1,66 @@
+$self{texts} = {
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+};
+
+1;
+
diff --git a/locale/ca_en/io b/locale/ca_en/io
new file mode 100755
index 00000000..d86e9fae
--- /dev/null
+++ b/locale/ca_en/io
@@ -0,0 +1,30 @@
+$self{texts} = {
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+};
+
+1;
+
diff --git a/locale/ca_en/ir b/locale/ca_en/ir
new file mode 100755
index 00000000..b642c588
--- /dev/null
+++ b/locale/ca_en/ir
@@ -0,0 +1,66 @@
+$self{texts} = {
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+};
+
+1;
+
diff --git a/locale/ca_en/is b/locale/ca_en/is
new file mode 100755
index 00000000..73f6fdba
--- /dev/null
+++ b/locale/ca_en/is
@@ -0,0 +1,67 @@
+$self{texts} = {
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+};
+
+1;
+
diff --git a/locale/ca_en/jc b/locale/ca_en/jc
new file mode 100755
index 00000000..31503ed9
--- /dev/null
+++ b/locale/ca_en/jc
@@ -0,0 +1,44 @@
+$self{texts} = {
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+};
+
+1;
+
diff --git a/locale/ca_en/locales.pl b/locale/ca_en/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/ca_en/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/ca_en/login b/locale/ca_en/login
new file mode 100755
index 00000000..e3112e15
--- /dev/null
+++ b/locale/ca_en/login
@@ -0,0 +1,12 @@
+$self{texts} = {
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+};
+
+1;
+
diff --git a/locale/ca_en/menu b/locale/ca_en/menu
new file mode 100755
index 00000000..ea7cb026
--- /dev/null
+++ b/locale/ca_en/menu
@@ -0,0 +1,14 @@
+$self{texts} = {
+ 'Check' => 'Cheque',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/ca_en/oe b/locale/ca_en/oe
new file mode 100755
index 00000000..70cb00ff
--- /dev/null
+++ b/locale/ca_en/oe
@@ -0,0 +1,92 @@
+$self{texts} = {
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+};
+
+1;
+
diff --git a/locale/ca_en/pe b/locale/ca_en/pe
new file mode 100755
index 00000000..d27990b4
--- /dev/null
+++ b/locale/ca_en/pe
@@ -0,0 +1,59 @@
+$self{texts} = {
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+};
+
+1;
+
diff --git a/locale/ca_en/pos b/locale/ca_en/pos
new file mode 100755
index 00000000..e2b1ca16
--- /dev/null
+++ b/locale/ca_en/pos
@@ -0,0 +1,26 @@
+$self{texts} = {
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/ca_en/ps b/locale/ca_en/ps
new file mode 100755
index 00000000..524b9504
--- /dev/null
+++ b/locale/ca_en/ps
@@ -0,0 +1,95 @@
+$self{texts} = {
+ 'Check' => 'Cheque',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+};
+
+1;
+
diff --git a/locale/ca_en/pw b/locale/ca_en/pw
new file mode 100755
index 00000000..b18ff8cf
--- /dev/null
+++ b/locale/ca_en/pw
@@ -0,0 +1,9 @@
+$self{texts} = {
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+};
+
+1;
+
diff --git a/locale/ca_en/rc b/locale/ca_en/rc
new file mode 100755
index 00000000..9163d154
--- /dev/null
+++ b/locale/ca_en/rc
@@ -0,0 +1,20 @@
+$self{texts} = {
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+};
+
+1;
+
diff --git a/locale/ca_en/rp b/locale/ca_en/rp
new file mode 100755
index 00000000..61081ea0
--- /dev/null
+++ b/locale/ca_en/rp
@@ -0,0 +1,54 @@
+$self{texts} = {
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+};
+
+1;
+
diff --git a/locale/ca_fr/COPYING b/locale/ca_fr/COPYING
new file mode 100755
index 00000000..343e059f
--- /dev/null
+++ b/locale/ca_fr/COPYING
@@ -0,0 +1,24 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2005
+#
+# French texts:
+#
+# Author: Mathieu Chappuis <mathieu.chappuis@nchp.net>
+# Olivier Cornet <ocornet@biz.tiscali.be>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/ca_fr/LANGUAGE b/locale/ca_fr/LANGUAGE
new file mode 100755
index 00000000..4f7eec89
--- /dev/null
+++ b/locale/ca_fr/LANGUAGE
@@ -0,0 +1 @@
+French/Canada
diff --git a/locale/ca_fr/Num2text b/locale/ca_fr/Num2text
new file mode 100755
index 00000000..90295031
--- /dev/null
+++ b/locale/ca_fr/Num2text
@@ -0,0 +1,202 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (C) 2002
+#
+# Author: Dieter Simader
+# Email: dsimader@sql-ledger.org
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+# Contributors: Bruno Leveque <bruno.leveque@net6d.com>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=====================================================================
+#
+# this is the french code for printing numbers in text
+#
+#=====================================================================
+
+
+sub init {
+ my $self = shift;
+
+ %{ $self->{numbername} } =
+ (0 => 'Zéro',
+ 1 => 'Un',
+ 2 => 'Deux',
+ 3 => 'Trois',
+ 4 => 'Quatre',
+ 5 => 'Cinq',
+ 6 => 'Six',
+ 7 => 'Sept',
+ 8 => 'Huit',
+ 9 => 'Neuf',
+ 10 => 'Dix',
+ 11 => 'Onze',
+ 12 => 'Douze',
+ 13 => 'Treize',
+ 14 => 'Quatorze',
+ 15 => 'Quinze',
+ 16 => 'Seize',
+ 17 => 'Dix-sept',
+ 18 => 'Dix-huit',
+ 19 => 'Dix-neuf',
+ 20 => 'Vingt',
+ 30 => 'Trente',
+ 40 => 'Quarante',
+ 50 => 'Cinquante',
+ 60 => 'Soixante',
+ 70 => 'Septante',
+ 80 => 'Quatre-vingt',
+ 90 => 'Nonante',
+ 10**2 => 'Cent',
+ 10**3 => 'Mille',
+ 10**6 => 'Million',
+ 10**9 => 'Milliard',
+ 10**12 => 'Billion',
+ );
+
+}
+
+
+sub num2text {
+ my ($self, $amount) = @_;
+
+ return $self->{numbername}{0} unless $amount;
+
+ my @textnumber = ();
+
+ # split amount into chunks of 3
+ my @num = reverse split //, abs($amount);
+ my @numblock = ();
+ my @a;
+ my $i;
+
+ while (@num) {
+ @a = ();
+ for (1 .. 3) {
+ push @a, shift @num;
+ }
+ push @numblock, join / /, reverse @a;
+ }
+
+ my $cent=0;
+
+ while (@numblock) {
+
+ $i = $#numblock;
+ @num = split //, $numblock[$i];
+
+ if ($numblock[$i] == 0) {
+ pop @numblock;
+ next;
+ }
+
+ if ($numblock[$i] > 99) {
+ $cent=1;
+
+ # the one from hundreds
+
+ if ($num[0] > 1) {
+ push @textnumber, $self->{numbername}{$num[0]};
+ }
+
+ # reduce numblock
+ $numblock[$i] -= $num[0] * 100;
+
+ # add hundred designation
+ if ($num[0] > 1) {
+ if($numblock[$i] > 0) {
+ push @textnumber, $self->{numbername}{10**2};
+ } else {
+ push @textnumber, "$self->{numbername}{10**2}s";
+ }
+ } else {
+ push @textnumber, $self->{numbername}{10**2};
+ }
+
+ }
+
+ $numblock[$i] *= 1;
+
+ if ($numblock[$i] > 9) {
+ # tens
+ push @textnumber, $self->format_ten($numblock[$i]);
+ } elsif ($numblock[$i] > 0) {
+ # ones
+ if ($i == 1) {
+ if ($cent == 1) {
+ push @textnumber, $self->{numbername}{$numblock[$i]};
+ }
+ $cent = 0;
+ } else {
+ push @textnumber, $self->{numbername}{$numblock[$i]};
+ }
+ }
+
+ # add thousand, million
+ if ($i) {
+ $num = 10**($i * 3);
+ if ($i == 1) {
+ push @textnumber, $self->{numbername}{$num};
+ } elsif ($numblock[$i] > 1) {
+ push @textnumber, "$self->{numbername}{$num}s";
+ } else {
+ push @textnumber, "$self->{numbername}{$num}";
+ }
+ }
+
+ pop @numblock;
+
+ }
+
+ join ' ', @textnumber;
+
+}
+
+
+sub format_ten {
+ my ($self, $amount) = @_;
+
+ my $textnumber = "";
+ my @num = split //, $amount;
+
+ if ($amount > 20) {
+ if ($num[0] == 8) {
+ if ($num[1] > 0) {
+ $textnumber = $self->{numbername}{$num[0]*10};
+ } else {
+ $textnumber = "$self->{numbername}{$num[0]*10}s";
+ }
+ } else {
+ $textnumber = $self->{numbername}{$num[0]*10};
+
+ $textnumber .= " et" if ($num[1] == 1);
+
+
+ }
+ $amount = $num[1];
+ } else {
+ $textnumber = "$self->{numbername}{$amount}";
+ $amount = 0;
+ }
+
+ $textnumber .= " ".$self->{numbername}{$amount} if $amount;
+
+ $textnumber;
+
+}
+
+
+1;
+
diff --git a/locale/ca_fr/aa b/locale/ca_fr/aa
new file mode 100755
index 00000000..3a132c26
--- /dev/null
+++ b/locale/ca_fr/aa
@@ -0,0 +1,156 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Dépenses en retard',
+ 'AP Transaction' => 'Écriture dépenses',
+ 'AP Transactions' => 'Mouvements - Dépenses',
+ 'AR Outstanding' => 'Recettes en retard',
+ 'AR Transaction' => 'Écriture recettes',
+ 'AR Transactions' => 'Mouvements - Recettes',
+ 'Account' => 'Compte',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Add AP Transaction' => 'Ajouter une dépense',
+ 'Add AR Transaction' => 'Ajouter une recette',
+ 'Amount' => 'Montant',
+ 'Amount Due' => 'Montant dû',
+ 'Apr' => 'Avril',
+ 'April' => 'Avril',
+ 'Are you sure you want to delete Transaction' => 'Êtes vous sûr de vouloir effacer la saisie?',
+ 'Aug' => 'Août',
+ 'August' => 'Août',
+ 'Cannot delete transaction!' => 'Impossible de supprimer l\'écriture!',
+ 'Cannot post payment for a closed period!' => 'Impossible d\'enregistrer le paiement sur un exercice clos!',
+ 'Cannot post transaction for a closed period!' => 'Impossible d\'enregistrer l\'écriture sur un exercice clos!',
+ 'Cannot post transaction!' => 'Impossible d\'enregistrer l\'écriture!',
+ 'Check' => 'Chèque',
+ 'Closed' => 'Clôturé',
+ 'Confirm!' => 'Confirmer!',
+ 'Continue' => 'Continuer',
+ 'Credit' => 'Crédit',
+ 'Credit Limit' => 'Encours autorisé',
+ 'Curr' => 'Dev.',
+ 'Currency' => 'Devise',
+ 'Current' => 'En cours',
+ 'Customer' => 'Client',
+ 'Customer missing!' => 'Client manquant!',
+ 'Date' => 'Date',
+ 'Date Paid' => 'Date de paiement',
+ 'Debit' => 'Débit',
+ 'Dec' => 'Déc.',
+ 'December' => 'Décembre',
+ 'Delete' => 'Supprimer',
+ 'Department' => 'Service',
+ 'Description' => 'Description',
+ 'Detail' => 'Détail',
+ 'Due Date' => 'Échéance',
+ 'Due Date missing!' => 'Date d\'échéance manquante!',
+ 'Edit AP Transaction' => 'Modifier une dépense',
+ 'Edit AR Transaction' => 'Modifier une recette',
+ 'Employee' => 'Employé',
+ 'Exch' => 'Change',
+ 'Exchange Rate' => 'Taux de change',
+ 'Exchange rate for payment missing!' => 'Taux de change manquant pour le paiement!',
+ 'Exchange rate missing!' => 'Taux de change manquant!',
+ 'Feb' => 'Fév.',
+ 'February' => 'Février',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Inclure dans l\'état',
+ 'Invoice' => 'Facture',
+ 'Invoice Date' => 'Date de facturation',
+ 'Invoice Date missing!' => 'Date de facture manquante!',
+ 'Invoice Number' => 'Numéro de facture',
+ 'Jan' => 'Jan.',
+ 'January' => 'Janvier',
+ 'Jul' => 'Juill.',
+ 'July' => 'Juillet',
+ 'Jun' => 'Juin',
+ 'June' => 'Juin',
+ 'Manager' => 'Gestionnaire',
+ 'Mar' => 'Mars',
+ 'March' => 'Mars',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Mémo',
+ 'Month' => 'Mois',
+ 'No.' => 'N°',
+ 'Notes' => 'Notes',
+ 'Nov' => 'Nov.',
+ 'November' => 'Novembre',
+ 'Oct' => 'Oct.',
+ 'October' => 'Octobre',
+ 'Open' => 'Ouvert',
+ 'Order' => 'Commande',
+ 'Order Number' => 'Numéro de commande',
+ 'Paid' => 'Total payé',
+ 'Payment date missing!' => 'Date de paiement manquante!',
+ 'Payments' => 'Paiements',
+ 'Period' => 'Période',
+ 'Post' => 'Enregistrer',
+ 'Post as new' => 'Enregistrer comme nouveau',
+ 'Print' => 'Imprimer',
+ 'Print and Post' => 'Imprimer et imputer',
+ 'Project' => 'Projet',
+ 'Quarter' => 'Trimestre',
+ 'Receipt' => 'Reçu',
+ 'Remaining' => 'Restant',
+ 'Sales Invoice.' => 'Facture de vente.',
+ 'Salesperson' => 'Vendeur',
+ 'Sep' => 'Sept.',
+ 'September' => 'Septembre',
+ 'Ship to' => 'Expédier à',
+ 'Ship via' => 'Expédier via',
+ 'Shipping Point' => 'Expéditeur',
+ 'Source' => 'Source',
+ 'Subtotal' => 'Sous total',
+ 'Summary' => 'Résumé',
+ 'Tax' => 'Taxe',
+ 'Tax Included' => 'Taxe incluse',
+ 'Till' => 'Caisse',
+ 'To' => 'À',
+ 'Total' => 'Total',
+ 'Transaction' => 'Écriture',
+ 'Transaction deleted!' => 'Écriture supprimée!',
+ 'Transaction posted!' => 'Écriture enregistrée!',
+ 'Update' => 'Mettre à jour',
+ 'Vendor' => 'Fournisseur',
+ 'Vendor Invoice.' => 'Facture d\'achat.',
+ 'Vendor missing!' => 'Fournisseur manquant!',
+ 'Year' => 'Année',
+ 'Yes' => 'Oui',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'Écriture_dépenses' => 'ap_transaction',
+ 'Écriture_recettes' => 'ar_transaction',
+ 'continuer' => 'continue',
+ 'supprimer' => 'delete',
+ 'enregistrer' => 'post',
+ 'enregistrer_comme_nouveau' => 'post_as_new',
+ 'imprimer' => 'print',
+ 'imprimer_et_imputer' => 'print_and_post',
+ 'facture_de_vente_' => 'sales_invoice_',
+ 'expédier_à' => 'ship_to',
+ 'mettre_à_jour' => 'update',
+ 'facture_d\'achat_' => 'vendor_invoice_',
+ 'oui' => 'yes',
+};
+
+1;
+
diff --git a/locale/ca_fr/admin b/locale/ca_fr/admin
new file mode 100755
index 00000000..ba84c069
--- /dev/null
+++ b/locale/ca_fr/admin
@@ -0,0 +1,143 @@
+$self{texts} = {
+ 'Access Control' => 'Contrôle d\'accès',
+ 'Accounting' => 'Comptabilité',
+ 'Add User' => 'Ajouter utilisateur',
+ 'Address' => 'Adresse',
+ 'Administration' => 'Administration',
+ 'Administrator' => 'Administrateur',
+ 'All Datasets up to date!' => 'Tous les fichiers de données sont à jour!',
+ 'Cannot create Lock!' => 'Impossible de verrouiller le fichier!',
+ 'Change Admin Password' => 'Modifier mot de passe administrateur',
+ 'Change Password' => 'Modifier mot de passe',
+ 'Click on login name to edit!' => 'Cliquer sur votre identifiant pour editer!',
+ 'Company' => 'Société',
+ 'Confirm' => 'Confirmer',
+ 'Connect to' => 'Connecter à',
+ 'Continue' => 'Continuer',
+ 'Create Chart of Accounts' => 'Créer le plan comptable',
+ 'Create Dataset' => 'Créer fichier de données',
+ 'DBI not installed!' => 'DBI non installée!',
+ 'Database' => 'Base de données',
+ 'Database Administration' => 'Gérer base de données',
+ 'Database Driver not checked!' => 'Pilotes de base de données non verifiés!',
+ 'Database User missing!' => 'Utilisateur base de données manquant!',
+ 'Dataset' => 'Fichier de données',
+ 'Dataset missing!' => 'Fichier de données manquant!',
+ 'Dataset updated!' => 'Base de données mise à jour!',
+ 'Date Format' => 'Format de date',
+ 'Delete' => 'Supprimer',
+ 'Delete Dataset' => 'Supprimer fichier de données',
+ 'Directory' => 'Répertoire',
+ 'Driver' => 'Pilote',
+ 'Dropdown Limit' => 'Limite de déroulement',
+ 'E-mail' => 'E-mail',
+ 'Edit User' => 'Modifier utilisateur',
+ 'Existing Datasets' => 'Fichiers de données existants',
+ 'Fax' => 'Fax',
+ 'Host' => 'Hôte',
+ 'Hostname missing!' => 'Nom de l\'hôte manquant',
+ 'Language' => 'Langue',
+ 'Lock System' => 'Verrouiller le système',
+ 'Lockfile created!' => 'Verrouillage en place!',
+ 'Lockfile removed!' => 'Verrouillage enlevé!',
+ 'Login' => 'Login',
+ 'Login name missing!' => 'Nom d\'utilisateur manquant!',
+ 'Logout' => 'Déconnexion',
+ 'Manager' => 'Gestionnaire',
+ 'Menu Width' => 'Largeur menu',
+ 'Multibyte Encoding' => 'Encodage multibyte',
+ 'Name' => 'Nom',
+ 'New Templates' => 'Nouveaux squelettes',
+ 'No Database Drivers available!' => 'Pas de pilote de base de données disponible!',
+ 'No Dataset selected!' => 'Pas de fichier de données sélectionné!',
+ 'Nothing to delete!' => 'Rien à supprimer',
+ 'Number Format' => 'Format des numéros',
+ 'Oracle Database Administration' => 'Administration de base de données Oracle',
+ 'Password' => 'Mot de passe',
+ 'Password changed!' => 'Mot de passe modifié!',
+ 'Passwords do not match!' => 'Mots de passes non-identiques',
+ 'Pg Database Administration' => 'Administration base de données PostgreSQL',
+ 'PgPP Database Administration' => 'Administration base de données PgPP',
+ 'Phone' => 'Tél.',
+ 'Port' => 'Port',
+ 'Port missing!' => 'Port manquant!',
+ 'Printer' => 'Imprimante',
+ 'Save' => 'Enregistrer',
+ 'Session Timeout' => 'Fin de session',
+ 'Session expired!' => 'Session terminée!',
+ 'Setup Templates' => 'Configuration des squelettes',
+ 'Signature' => 'Signature',
+ 'Stylesheet' => 'Feuille de style',
+ 'Supervisor' => 'Chef de service',
+ 'Templates' => 'Squelettes',
+ 'The following Datasets are not in use and can be deleted' => 'Les fichiers de données suivants ne sont pas utilisés et peuvent être supprimés.',
+ 'The following Datasets need to be updated' => 'Les fichiers de données suivants doivent être mis à jour',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Ceci est un test préliminaire des sources existantes. Aucune modification à ce stade!',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Pour ajouter un utilisateur à un groupe, editer un "nom", changer le "login" et enregistrer. Un nouvel utilisateur avec les mêmes données sera enregistré avec le nouveau "login".',
+ 'Unlock System' => 'Déverrouiller le système',
+ 'Update Dataset' => 'Mise à jour de la base de données',
+ 'Use Templates' => 'Utiliser les squelettes',
+ 'User' => 'Utilisateur',
+ 'User deleted!' => 'Utilisateur supprimé!',
+ 'User saved!' => 'Utilisateur enregistré!',
+ 'Version' => 'Version',
+ 'You are logged out' => 'Vous êtes déconnecté!',
+ 'does not exist' => 'n\'existe pas!',
+ 'is already a member!' => 'est déjà un membre!',
+ 'localhost' => 'hôte local',
+ 'locked!' => 'verrouillé!',
+ 'successfully created!' => 'créé avec succès',
+ 'successfully deleted!' => 'supprimé avec succès',
+ 'website' => 'site web',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'ajouter_utilisateur' => 'add_user',
+ 'modifier_mot_de_passe_administrateur' => 'change_admin_password',
+ 'modifier_mot_de_passe' => 'change_password',
+ 'continuer' => 'continue',
+ 'créer_fichier_de_données' => 'create_dataset',
+ 'supprimer' => 'delete',
+ 'supprimer_fichier_de_données' => 'delete_dataset',
+ 'verrouiller_le_système' => 'lock_system',
+ 'login' => 'login',
+ 'déconnexion' => 'logout',
+ 'administration_de_base_de_données_oracle' => 'oracle_database_administration',
+ 'administration_base_de_données_postgresql' => 'pg_database_administration',
+ 'administration_base_de_données_pgpp' => 'pgpp_database_administration',
+ 'enregistrer' => 'save',
+ 'déverrouiller_le_système' => 'unlock_system',
+ 'mise_à_jour_de_la_base_de_données' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/ca_fr/all b/locale/ca_fr/all
new file mode 100755
index 00000000..923ebe27
--- /dev/null
+++ b/locale/ca_fr/all
@@ -0,0 +1,756 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+
+$self{texts} = {
+ 'A' => 'A',
+ 'AP' => 'Dépenses',
+ 'AP Aging' => 'Dépenses exigibles',
+ 'AP Outstanding' => 'Dépenses en retard',
+ 'AP Transaction' => 'Écriture dépenses',
+ 'AP Transactions' => 'Mouvements - Dépenses',
+ 'AR' => 'Recettes',
+ 'AR Aging' => 'Recettes exigibles',
+ 'AR Outstanding' => 'Recettes en retard',
+ 'AR Transaction' => 'Écriture recettes',
+ 'AR Transactions' => 'Mouvements - Recettes',
+ 'AR/AP' => 'Recettes/Dépenses',
+ 'About' => 'À propos',
+ 'Above' => 'En dessus',
+ 'Access Control' => 'Contrôle d\'accès',
+ 'Account' => 'Compte',
+ 'Account Number' => 'Numéro de compte',
+ 'Account Number missing!' => 'Numéro de compte manquant!',
+ 'Account Type' => 'Type de compte',
+ 'Account Type missing!' => 'Type de compte manquant!',
+ 'Account deleted!' => 'Compte supprimé',
+ 'Account does not exist!' => 'Compte non existant!',
+ 'Account saved!' => 'Compte enregistré',
+ 'Accounting' => 'Comptabilité',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Accounts' => 'Comptes',
+ 'Accrual' => 'Accumulation',
+ 'Activate Audit trail' => 'Activer la journalisation des accès aux écritures clôturées',
+ 'Activate Audit trails' => 'Activer la journalisation des accès aux écritures clôturées',
+ 'Active' => 'Actif',
+ 'Add' => 'Ajouter',
+ 'Add AP Transaction' => 'Ajouter une dépense',
+ 'Add AR Transaction' => 'Ajouter une recette',
+ 'Add Account' => 'Ajouter compte',
+ 'Add Assembly' => 'Ajouter produit',
+ 'Add Business' => 'Ajouter type d\'affaire',
+ 'Add Cash Transfer Transaction' => 'Saisie d\'écriture - Virements internes',
+ 'Add Customer' => 'Ajouter client',
+ 'Add Deduction' => 'Ajouter prélèvement',
+ 'Add Department' => 'Ajouter service',
+ 'Add Employee' => 'Ajouter employé',
+ 'Add Exchange Rate' => 'Ajouter taux de change',
+ 'Add GIFI' => 'Ajouter code d\'identification comptable ou fiscale',
+ 'Add General Ledger Transaction' => 'Ajouter une écriture au grand-livre',
+ 'Add Group' => 'Ajouter groupe',
+ 'Add Labor/Overhead' => 'Ajouter coût de production',
+ 'Add Language' => 'Ajouter langue',
+ 'Add POS Invoice' => 'Saisie ticket de caisse',
+ 'Add Part' => 'Ajouter marchandise',
+ 'Add Pricegroup' => 'Ajouter groupe de prix',
+ 'Add Project' => 'Ajouter projet',
+ 'Add Purchase Order' => 'Établir commande d\'achat',
+ 'Add Quotation' => 'Établir devis',
+ 'Add Request for Quotation' => 'Établir demande de devis',
+ 'Add SIC' => 'Ajouter code secteur économique',
+ 'Add Sales Invoice' => 'Établir facture de vente',
+ 'Add Sales Order' => 'Établir commande de vente',
+ 'Add Service' => 'Ajouter prestation',
+ 'Add Transaction' => 'Saisie d\'écriture',
+ 'Add User' => 'Ajouter utilisateur',
+ 'Add Vendor' => 'Ajouter fournisseur',
+ 'Add Vendor Invoice' => 'Établir facture d\'achat',
+ 'Add Warehouse' => 'Ajouter entrepôt',
+ 'Address' => 'Adresse',
+ 'Administration' => 'Administration',
+ 'Administrator' => 'Administrateur',
+ 'After Deduction' => 'Après prélèvement',
+ 'All' => 'Tous',
+ 'All Accounts' => 'Afficher tous les comptes',
+ 'All Datasets up to date!' => 'Tous les fichiers de données sont à jour!',
+ 'All Items' => 'Tout objet',
+ 'Allowances' => 'Indemnités',
+ 'Amount' => 'Montant',
+ 'Amount Due' => 'Montant dû',
+ 'Amount missing!' => 'Montant manquant!',
+ 'Apr' => 'Avril',
+ 'April' => 'Avril',
+ 'Are you sure you want to delete Invoice Number' => 'Êtes-vous sûr de vouloir supprimer la facture n°',
+ 'Are you sure you want to delete Order Number' => 'Êtes vous sûr de vouloir supprimer la commande n°',
+ 'Are you sure you want to delete Quotation Number' => 'Êtes vous sûr de vouloir supprimer le devis n°',
+ 'Are you sure you want to delete Transaction' => 'Êtes vous sûr de vouloir effacer la saisie?',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Êtes vous sûr de vouloir enlever les objets sélectionnés de la queue?',
+ 'Assemblies' => 'Produits finis',
+ 'Assemblies restocked!' => 'Renvoyer produits vers stock!',
+ 'Assembly' => 'Produit fini',
+ 'Asset' => 'Actif',
+ 'Attachment' => 'Pièce jointe',
+ 'Audit Control' => 'Clôture périodique',
+ 'Audit trail disabled' => 'Journalisation clôture desactivée',
+ 'Audit trail enabled' => 'Journalisation clôture activée',
+ 'Audit trail removed up to' => 'Annulation de la journalisation des accès aux écritures clôturées jusqu\'au',
+ 'Audit trails disabled' => 'Journalisation clôture desactivée',
+ 'Audit trails enabled' => 'Journalisation clôture activée',
+ 'Aug' => 'Août',
+ 'August' => 'Août',
+ 'BIC' => 'BIC',
+ 'BOM' => 'Nomenclature composantes',
+ 'Backup' => 'Sauvegarder',
+ 'Backup sent to' => 'Sauvegarde envoyée à',
+ 'Balance' => 'Solde',
+ 'Balance Sheet' => 'Bilan',
+ 'Based on' => 'Basé sur',
+ 'Bcc' => 'Copie cachée',
+ 'Before Deduction' => 'Avant prélèvement',
+ 'Beginning Balance' => 'Solde du départ',
+ 'Below' => 'En dessous',
+ 'Billing Address' => 'Adresse de facturation',
+ 'Bin' => 'Lieu stockage',
+ 'Bin List' => 'Liste des emplacements',
+ 'Bin Lists' => 'Liste des emplacements',
+ 'Books are open' => 'Début exercice',
+ 'Break' => 'Rupture',
+ 'Business' => 'Type d\'affaire',
+ 'Business Number' => 'Numéro d\'enregistrement société',
+ 'Business deleted!' => 'Type d\'affaire effacé!',
+ 'Business saved!' => 'Type d\'affaire enregistré!',
+ 'C' => 'C',
+ 'COGS' => 'Coût des produits vendus',
+ 'COGS account does not exist!' => 'Compte des produits vendus inexistant!',
+ 'Cannot create Assembly' => 'Impossible de créer le produit fini',
+ 'Cannot create Labor' => 'Impossible de créer le coût de production',
+ 'Cannot create Lock!' => 'Impossible de verrouiller le fichier!',
+ 'Cannot create Part' => 'Impossible de créer la marchandise',
+ 'Cannot create Service' => 'Impossible de créer le service',
+ 'Cannot delete account!' => 'Impossible de supprimer le compte!',
+ 'Cannot delete customer!' => 'Impossible de supprimer le client!',
+ 'Cannot delete default account!' => 'Impossible de supprimer le compte par défaut!',
+ 'Cannot delete invoice!' => 'Impossible de supprimer la facture!',
+ 'Cannot delete item!' => 'Impossible de supprimer l\'objet!',
+ 'Cannot delete order!' => 'Impossible de supprimer la commande!',
+ 'Cannot delete quotation!' => 'Impossible de supprimer le devis!',
+ 'Cannot delete transaction!' => 'Impossible de supprimer l\'écriture!',
+ 'Cannot delete vendor!' => 'Impossible de supprimer le fournisseur!',
+ 'Cannot post Payment!' => 'Impossible d\'enregistrer le paiement!',
+ 'Cannot post Receipt!' => 'Impossible d\'enregistrer le reçu!',
+ 'Cannot post invoice for a closed period!' => 'Impossible d\'enregistrer la facture sur un exercice clos!',
+ 'Cannot post invoice!' => 'Impossible d\'enregistrer la facture!',
+ 'Cannot post payment for a closed period!' => 'Impossible d\'enregistrer le paiement sur un exercice clos!',
+ 'Cannot post transaction for a closed period!' => 'Impossible d\'enregistrer l\'écriture sur un exercice clos!',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => 'Impossible d\'enregistrer l\'écriture avec un débit et un crédit sur le même compte!',
+ 'Cannot post transaction!' => 'Impossible d\'enregistrer l\'écriture!',
+ 'Cannot remove files!' => 'Impossible d\'effacer les fichiers!',
+ 'Cannot save account!' => 'Impossible d\'enregistrer le compte!',
+ 'Cannot save defaults!' => 'Impossible d\'enregistrer les valeurs par défaut!',
+ 'Cannot save order!' => 'Impossible d\'enregistrer la commande!',
+ 'Cannot save preferences!' => 'Impossible d\'enregistrer les préférences',
+ 'Cannot save quotation!' => 'Impossible d\'enregistrer le devis!',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Impossible d\'enregistrer le compte simultanément en tant que compte de recettes, dépenses ou service',
+ 'Cannot set multiple options for' => 'Impossible de choisir plusieurs options pour',
+ 'Cannot stock assemblies!' => 'Impossible de stocker l\'assemblage!',
+ 'Cash' => 'Financier',
+ 'Cc' => 'Copie',
+ 'Change' => 'Retour monnaie',
+ 'Change Admin Password' => 'Modifier mot de passe administrateur',
+ 'Change Password' => 'Modifier mot de passe',
+ 'Chart of Accounts' => 'Plan Comptable',
+ 'Check' => 'Chèque',
+ 'Check Inventory' => 'Listing chèques',
+ 'Checks' => 'Chèques',
+ 'City' => 'Ville',
+ 'Cleared' => 'Lettré',
+ 'Click on login name to edit!' => 'Cliquer sur votre identifiant pour editer!',
+ 'Close Books up to' => 'Clôturer l\'exercice jusqu\'au',
+ 'Closed' => 'Clôturé',
+ 'Code' => 'Code',
+ 'Code missing!' => 'Code manquant!',
+ 'Company' => 'Société',
+ 'Company Name' => 'Nom de société',
+ 'Compare to' => 'Comparer à',
+ 'Components' => 'Composants',
+ 'Confirm' => 'Confirmer',
+ 'Confirm!' => 'Confirmer!',
+ 'Connect to' => 'Connecter à',
+ 'Contact' => 'Contact',
+ 'Continue' => 'Continuer',
+ 'Contra' => 'Contrepartie',
+ 'Copies' => 'Copies',
+ 'Copy to COA' => 'Copier dans le plan comptable',
+ 'Cost' => 'Coût',
+ 'Cost Center' => 'Axé coûts',
+ 'Could not save pricelist!' => 'Enregistrement de la liste de prix impossible!',
+ 'Could not save!' => 'Enregistrement impossible!',
+ 'Could not transfer Inventory!' => 'Impossible de transférer l\'inventaire!',
+ 'Country' => 'Pays',
+ 'Create Chart of Accounts' => 'Créer le plan comptable',
+ 'Create Dataset' => 'Créer fichier de données',
+ 'Credit' => 'Crédit',
+ 'Credit Limit' => 'Encours autorisé',
+ 'Curr' => 'Dev.',
+ 'Currency' => 'Devise',
+ 'Current' => 'En cours',
+ 'Current Earnings' => 'Bénéfice de l\'exercice',
+ 'Customer' => 'Client',
+ 'Customer History' => 'Historique client',
+ 'Customer Number' => 'Numéro de client',
+ 'Customer deleted!' => 'Client supprimé!',
+ 'Customer missing!' => 'Client manquant!',
+ 'Customer not on file!' => 'Client absent du fichier!',
+ 'Customer saved!' => 'Client enregistré!',
+ 'Customers' => 'Clients',
+ 'DBI not installed!' => 'DBI non installée!',
+ 'DOB' => 'Date de naissance',
+ 'Database' => 'Base de données',
+ 'Database Administration' => 'Gérer base de données',
+ 'Database Driver not checked!' => 'Pilotes de base de données non verifiés!',
+ 'Database Host' => 'Hôte de base de données',
+ 'Database User missing!' => 'Utilisateur base de données manquant!',
+ 'Dataset' => 'Fichier de données',
+ 'Dataset is newer than version!' => 'Fichier de données plus récent que le logiciel!',
+ 'Dataset missing!' => 'Fichier de données manquant!',
+ 'Dataset updated!' => 'Base de données mise à jour!',
+ 'Date' => 'Date',
+ 'Date Format' => 'Format de date',
+ 'Date Paid' => 'Date de paiement',
+ 'Date Received' => 'Date de réception',
+ 'Date missing!' => 'Date manquante!',
+ 'Date received missing!' => 'Date de réception manquante!',
+ 'Debit' => 'Débit',
+ 'Dec' => 'Déc.',
+ 'December' => 'Décembre',
+ 'Decimalplaces' => 'Décimales',
+ 'Decrease' => 'Diminution',
+ 'Deduct after' => 'Prélèver après',
+ 'Deduction deleted!' => 'Prélèvement supprimé!',
+ 'Deduction saved!' => 'Prélèvement enrégistré!',
+ 'Deductions' => 'Prélèvements',
+ 'Defaults' => 'Valeurs par défaut',
+ 'Defaults saved!' => 'Valeurs par défaut enrégistrées!',
+ 'Delete' => 'Supprimer',
+ 'Delete Account' => 'Supprimer compte',
+ 'Delete Dataset' => 'Supprimer fichier de données',
+ 'Delivery Date' => 'Date de livraison',
+ 'Department' => 'Service',
+ 'Department deleted!' => 'Service effacé!',
+ 'Department saved!' => 'Service enregistré!',
+ 'Departments' => 'Services',
+ 'Deposit' => 'Dépôt',
+ 'Description' => 'Description',
+ 'Description Translations' => 'Description traductions',
+ 'Description missing!' => 'Description manquante!',
+ 'Detail' => 'Détail',
+ 'Difference' => 'Différence',
+ 'Directory' => 'Répertoire',
+ 'Discount' => 'Remise',
+ 'Done' => 'Fait!',
+ 'Drawing' => 'Dessin',
+ 'Driver' => 'Pilote',
+ 'Dropdown Limit' => 'Limite de déroulement',
+ 'Due Date' => 'Échéance',
+ 'Due Date missing!' => 'Date d\'échéance manquante!',
+ 'E-mail' => 'E-mail',
+ 'E-mail Statement to' => 'Message éléctronique à',
+ 'E-mail address missing!' => 'Adresse e-mail manquante!',
+ 'E-mailed' => 'E-mail envoyé',
+ 'Edit' => 'Modifier',
+ 'Edit AP Transaction' => 'Modifier une dépense',
+ 'Edit AR Transaction' => 'Modifier une recette',
+ 'Edit Account' => 'Modifier le compte',
+ 'Edit Assembly' => 'Modifier produit fini / transformé',
+ 'Edit Business' => 'Modifier type d\'affaire',
+ 'Edit Cash Transfer Transaction' => 'Modifier virements internes',
+ 'Edit Customer' => 'Modifier client',
+ 'Edit Deduction' => 'Modifier prélèvement',
+ 'Edit Department' => 'Modifier service de l\'entreprise',
+ 'Edit Description Translations' => 'Modifier traductions description',
+ 'Edit Employee' => 'Modifier employé',
+ 'Edit GIFI' => 'Modifier code d\'identification comptable ou fiscale',
+ 'Edit General Ledger Transaction' => 'Modifier écriture grand-livre',
+ 'Edit Group' => 'Modifier groupe',
+ 'Edit Labor/Overhead' => 'Modifier coût de production',
+ 'Edit Language' => 'Modifier langue',
+ 'Edit POS Invoice' => 'Modifier ticket de caisse',
+ 'Edit Part' => 'Modifier marchandise',
+ 'Edit Preferences for' => 'Modifier les préférences pour',
+ 'Edit Pricegroup' => 'Modifier groupe de prix',
+ 'Edit Project' => 'Modifier projet',
+ 'Edit Purchase Order' => 'Modifier commande d\'achat',
+ 'Edit Quotation' => 'Modifier devis',
+ 'Edit Request for Quotation' => 'Modifier demande de devis',
+ 'Edit SIC' => 'Modifier code de secteur économique',
+ 'Edit Sales Invoice' => 'Modifier facture de vente',
+ 'Edit Sales Order' => 'Modifier commande de vente',
+ 'Edit Service' => 'Modifier service',
+ 'Edit Template' => 'Modifier squelette',
+ 'Edit User' => 'Modifier utilisateur',
+ 'Edit Vendor' => 'Modifier fournisseur',
+ 'Edit Vendor Invoice' => 'Modifier facture de fournisseur',
+ 'Edit Warehouse' => 'Modifier entrepôt',
+ 'Employee' => 'Employé',
+ 'Employee Name' => 'Nom employé',
+ 'Employee Number' => 'Numéro d\'employé',
+ 'Employee deleted!' => 'Employé effacé!',
+ 'Employee pays' => 'Employé pays',
+ 'Employee saved!' => 'Employé enregistré',
+ 'Employees' => 'Employés',
+ 'Employer' => 'Employeur',
+ 'Employer pays' => 'Employeur pays',
+ 'Enddate' => 'Date de fin',
+ 'Enforce transaction reversal for all dates' => 'Activer la clôture des écritures pour toutes les dates',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Entrer le nom de la monnaie nationale et des monnaies étrangères en 3 lettres séparées par (:) (Ex: EUR:USD:CAD)',
+ 'Equity' => 'Capital',
+ 'Exch' => 'Change',
+ 'Exchange Rate' => 'Taux de change',
+ 'Exchange rate for payment missing!' => 'Taux de change manquant pour le paiement!',
+ 'Exchange rate missing!' => 'Taux de change manquant!',
+ 'Existing Datasets' => 'Fichiers de données existants',
+ 'Expense' => 'Dépenses',
+ 'Expense account does not exist!' => 'Compte de dépenses inexistant',
+ 'Expense/Asset' => 'Dépenses/actif',
+ 'Extended' => 'Prix total',
+ 'FX' => 'Devises',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Fév.',
+ 'February' => 'Février',
+ 'Foreign Exchange Gain' => 'Produit conversion devises',
+ 'Foreign Exchange Loss' => 'Perte conversion devises',
+ 'From' => 'De',
+ 'GIFI' => 'Code d\'identification comptable ou fiscale',
+ 'GIFI deleted!' => 'Code d\'identification comptable ou fiscale supprimé!',
+ 'GIFI missing!' => 'Code d\'identification comptable ou fiscale manquant!',
+ 'GIFI saved!' => 'Code d\'identification comptable ou fiscale enregistré!',
+ 'GL Transaction' => 'Transaction grand-livre',
+ 'General Ledger' => 'Grand-livre',
+ 'Goods & Services' => 'Articles & Prestations',
+ 'Group' => 'Groupe',
+ 'Group Items' => 'Grouper objets',
+ 'Group Translations' => 'Grouper traductions',
+ 'Group deleted!' => 'Groupe effacé!',
+ 'Group missing!' => 'Groupe absent!',
+ 'Group saved!' => 'Groupe enregistré!',
+ 'Groups' => 'Groupes',
+ 'HR' => 'Ressources humaines',
+ 'HTML Templates' => 'Squelettes HTML',
+ 'Heading' => 'En-tête',
+ 'History' => 'Historique',
+ 'Home Phone' => 'Téléphone privé',
+ 'Host' => 'Hôte',
+ 'Hostname missing!' => 'Nom de l\'hôte manquant',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Image' => 'Image',
+ 'In-line' => 'En ligne',
+ 'Include Exchange Rate Difference' => 'Inclure différence conversion devises',
+ 'Include in Report' => 'Inclure dans l\'état',
+ 'Include in drop-down menus' => 'Inclure dans les menus déroulants',
+ 'Income' => 'Recettes',
+ 'Income Statement' => 'Compte de résultat',
+ 'Income account does not exist!' => 'Compte de recettes inexistant',
+ 'Incorrect Dataset version!' => 'Fichier de données incorrect!',
+ 'Increase' => 'Augmentation',
+ 'Individual Items' => 'Composition en marchandises individuelles',
+ 'Internal Notes' => 'Notes internes',
+ 'Inventory' => 'Inventaire',
+ 'Inventory account does not exist!' => 'Compte de stock inexistant',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'La quantité en stock doit être zéro avant de pouvoir annuler cet assemblage!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'La quantité en stock doit être zero avant de pouvoir annuler cette pièce!',
+ 'Inventory saved!' => 'Inventaire enregistré!',
+ 'Inventory transferred!' => 'Inventaire transféré!',
+ 'Invoice' => 'Facture',
+ 'Invoice Date' => 'Date de facturation',
+ 'Invoice Date missing!' => 'Date de facture manquante!',
+ 'Invoice Number' => 'Numéro de facture',
+ 'Invoice Number missing!' => 'Numéro de facture manquant!',
+ 'Invoice deleted!' => 'Facture supprimée!',
+ 'Invoices' => 'Factures',
+ 'Is this a summary account to record' => 'Est-ce que c\'est un compte sommaire à enregistrer?',
+ 'Item already on pricelist!' => 'Objet déjà présent dans la liste des prix',
+ 'Item deleted!' => 'Objet supprimé!',
+ 'Item not on file!' => 'Objet non-listé!',
+ 'Items' => 'Objets',
+ 'Jan' => 'Jan.',
+ 'January' => 'Janvier',
+ 'Jul' => 'Juill.',
+ 'July' => 'Juillet',
+ 'Jun' => 'Juin',
+ 'June' => 'Juin',
+ 'LaTeX Templates' => 'Squelettes LaTeX',
+ 'Labor/Overhead' => 'Coût de production',
+ 'Language' => 'Langue',
+ 'Language deleted!' => 'Langue effacée!',
+ 'Language saved!' => 'Langue enregistrée!',
+ 'Languages' => 'Langues',
+ 'Languages not defined!' => 'Langues non définis!',
+ 'Last Numbers & Default Accounts' => 'Derniers numéros et comptes par défauts',
+ 'Leadtime' => 'Délai',
+ 'Leave host and port field empty unless you want to make a remote connection.' => 'Laisser "port" et "hôte" vide, sauf si vous voulez vous connecter à distance (par réseau)',
+ 'Liability' => 'Passif',
+ 'Licensed to' => 'Licence à',
+ 'Line Total' => 'Total ligne',
+ 'Link' => 'Liens',
+ 'Link Accounts' => 'Lier comptes',
+ 'List' => 'Liste',
+ 'List Accounts' => 'Liste des comptes',
+ 'List Businesses' => 'Liste types d\'affaire',
+ 'List Departments' => 'Liste des services',
+ 'List GIFI' => 'Afficher la liste des codes d\'identification comptable ou fiscale',
+ 'List Languages' => 'Liste des langues',
+ 'List Price' => 'Prix de revient',
+ 'List Projects' => 'Liste des projets',
+ 'List SIC' => 'Liste des codes secteur économique',
+ 'List Transactions' => 'Afficher écritures',
+ 'List Warehouses' => 'Liste des entrepôts',
+ 'Lock System' => 'Verrouiller le système',
+ 'Lockfile created!' => 'Verrouillage en place!',
+ 'Lockfile removed!' => 'Verrouillage enlevé!',
+ 'Login' => 'Login',
+ 'Login name missing!' => 'Nom d\'utilisateur manquant!',
+ 'Logout' => 'Déconnexion',
+ 'Make' => 'Marque',
+ 'Manager' => 'Gestionnaire',
+ 'Mar' => 'Mars',
+ 'March' => 'Mars',
+ 'Marked entries printed!' => 'Éléments marqués imprimés!',
+ 'Markup' => 'Majoration',
+ 'Maximum' => 'Maximum',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Mémo',
+ 'Menu Width' => 'Largeur menu',
+ 'Message' => 'Message',
+ 'Method' => 'Méthode',
+ 'Microfiche' => 'Microfiche',
+ 'Model' => 'Modèle',
+ 'Month' => 'Mois',
+ 'Multibyte Encoding' => 'Encodage multibyte',
+ 'N/A' => 'Non applicable',
+ 'Name' => 'Nom',
+ 'Name missing!' => 'Nom manquant!',
+ 'New Templates' => 'Nouveaux squelettes',
+ 'New Window' => 'Nouvelle fenêtre',
+ 'No' => 'Non',
+ 'No Database Drivers available!' => 'Pas de pilote de base de données disponible!',
+ 'No Dataset selected!' => 'Pas de fichier de données sélectionné!',
+ 'No email address for' => 'Pas d\'adresse email pour',
+ 'No.' => 'N°',
+ 'Non-taxable' => 'Non imposable',
+ 'Non-taxable Purchases' => 'Achats hors taxe',
+ 'Non-taxable Sales' => 'Ventes hors taxe',
+ 'Notes' => 'Notes',
+ 'Nothing entered!' => 'Rien n\'a été saisi!',
+ 'Nothing selected!' => 'Pas de sélection!',
+ 'Nothing to delete!' => 'Rien à supprimer',
+ 'Nothing to print!' => 'Rien à imprimer',
+ 'Nothing to transfer!' => 'Rien à transférer!',
+ 'Nov' => 'Nov.',
+ 'November' => 'Novembre',
+ 'Number' => 'Numéro',
+ 'Number Format' => 'Format des numéros',
+ 'Number missing in Row' => 'Numéro manquant dans ligne',
+ 'O' => 'O',
+ 'Obsolete' => 'Obsolète',
+ 'Oct' => 'Oct.',
+ 'October' => 'Octobre',
+ 'On Hand' => 'En Stock / disponible',
+ 'Open' => 'Ouvert',
+ 'Oracle Database Administration' => 'Administration de base de données Oracle',
+ 'Order' => 'Commande',
+ 'Order Date' => 'Date de commande',
+ 'Order Date missing!' => 'Date de commande manquante!',
+ 'Order Entry' => 'Commandes',
+ 'Order Number' => 'Numéro de commande',
+ 'Order Number missing!' => 'Numéro de commande manquant!',
+ 'Order deleted!' => 'Commande supprimée!',
+ 'Order saved!' => 'Commande enregistrée!',
+ 'Orphaned' => 'Orphelin',
+ 'Out of balance transaction!' => 'Écriture non-soldée!',
+ 'Out of balance!' => 'Non-soldée!',
+ 'Outstanding' => 'En retard',
+ 'PDF' => 'PDF',
+ 'POS' => 'Point de vente',
+ 'POS Invoice' => 'Ticket de caisse',
+ 'Packing List' => 'Liste d\'envoi',
+ 'Packing List Date missing!' => 'La liste d\'envoi n\'a pas de date!',
+ 'Packing List Number missing!' => 'Le numéro de la liste d\'envoi est manquant!',
+ 'Packing Lists' => 'Listes d\'envoi',
+ 'Paid' => 'Total payé',
+ 'Part' => 'Marchandise',
+ 'Partnumber' => 'Numéro de marchandise',
+ 'Parts' => 'Marchandises',
+ 'Password' => 'Mot de passe',
+ 'Password changed!' => 'Mot de passe modifié!',
+ 'Password does not match!' => 'Mot de passe incorrect!',
+ 'Passwords do not match!' => 'Mots de passes non-identiques',
+ 'Payables' => 'À payer',
+ 'Payment' => 'Paiement',
+ 'Payment date missing!' => 'Date de paiement manquante!',
+ 'Payment posted!' => 'Paiement enregistré!',
+ 'Payments' => 'Paiements',
+ 'Payroll Deduction' => 'Prélèvement salaire',
+ 'Period' => 'Période',
+ 'Pg Database Administration' => 'Administration base de données PostgreSQL',
+ 'PgPP Database Administration' => 'Administration base de données PgPP',
+ 'Phone' => 'Tél.',
+ 'Pick List' => 'Liste de sélection',
+ 'Pick Lists' => 'Liste de sélection',
+ 'Port' => 'Port',
+ 'Port missing!' => 'Port manquant!',
+ 'Post' => 'Enregistrer',
+ 'Post as new' => 'Enregistrer comme nouveau',
+ 'Posted!' => 'Enregistré!',
+ 'Postscript' => 'Postcript',
+ 'Preferences' => 'Préférences',
+ 'Preferences saved!' => 'Préférences enregistrées!',
+ 'Prepayment' => 'Paiement à l\'avance',
+ 'Price' => 'Prix',
+ 'Pricegroup' => 'Groupe de prix',
+ 'Pricegroup deleted!' => 'Groupe de prix supprimé!',
+ 'Pricegroup missing!' => 'Groupe de prix manquant!',
+ 'Pricegroup saved!' => 'Groupe de prix enregistré!',
+ 'Pricegroups' => 'Groupes de prix',
+ 'Pricelist' => 'Liste de prix',
+ 'Print' => 'Imprimer',
+ 'Print and Post' => 'Imprimer et imputer',
+ 'Print and Save' => 'Imprimer et sauver',
+ 'Printed' => 'Imprimé',
+ 'Printer' => 'Imprimante',
+ 'Printing ... ' => 'Impression en cours ... ',
+ 'Profit Center' => 'Axé profit',
+ 'Project' => 'Projet',
+ 'Project Description Translations' => 'Traductions description de projet',
+ 'Project Number' => 'Numéro de projet',
+ 'Project Number missing!' => 'Numéro du projet manquant!',
+ 'Project Transactions' => 'Mouvements - Projet',
+ 'Project deleted!' => 'Projet supprimé!',
+ 'Project not on file!' => 'Projet absent du fichier!',
+ 'Project saved!' => 'Projet enregistré!',
+ 'Projects' => 'Projets',
+ 'Purchase Order' => 'Commande d\'achat',
+ 'Purchase Order Number' => 'Numéro de commande',
+ 'Purchase Orders' => 'Commandes d\'achat',
+ 'Qty' => 'Qté',
+ 'Quantity exceeds available units to stock!' => 'La quantité dépasse le nombre d\'unités en stock',
+ 'Quarter' => 'Trimestre',
+ 'Quotation' => 'Devis',
+ 'Quotation ' => 'Devis ',
+ 'Quotation Date' => 'Date de devis',
+ 'Quotation Date missing!' => 'Date de devis manqante!',
+ 'Quotation Number' => 'Numéro de devis',
+ 'Quotation Number missing!' => 'Numéro de devis manquant!',
+ 'Quotation deleted!' => 'Devis effacé!',
+ 'Quotations' => 'Devis',
+ 'R' => 'R',
+ 'RFQ' => 'Demande de devis',
+ 'RFQ ' => 'Demande de devis ',
+ 'RFQ Number' => 'Numéro de demande de devis',
+ 'RFQs' => 'Demandes de devis',
+ 'ROP' => 'Seuil réapprovisionnement',
+ 'Rate' => 'Taux',
+ 'Rate missing!' => 'Taux manquant!',
+ 'Recd' => 'Reçu',
+ 'Receipt' => 'Reçu',
+ 'Receipt posted!' => 'Reçu enregistré!',
+ 'Receipts' => 'Reçus',
+ 'Receivables' => 'À recevoir',
+ 'Receive' => 'Réception',
+ 'Receive Merchandise' => 'Réception marchandise',
+ 'Reconciliation' => 'Rapprochement',
+ 'Reconciliation Report' => 'Rapport de rapprochement',
+ 'Record in' => 'Enregistrer dans',
+ 'Reference' => 'Référence',
+ 'Remaining' => 'Restant',
+ 'Remove' => 'Effacer',
+ 'Remove Audit trail up to' => 'Annuler la journalisation des accès aux écritures clôturées jusqu\'au',
+ 'Remove Audit trails up to' => 'Annuler la journalisation des accès aux écritures clôturées jusqu\'au',
+ 'Removed spoolfiles!' => 'File d\'attente impression effacée!',
+ 'Removing marked entries from queue ...' => 'Suppression des éléments sélectionnés de la file d\'attente ...',
+ 'Report for' => 'Rapport de',
+ 'Reports' => 'Rapports',
+ 'Request for Quotation' => 'Demande de devis',
+ 'Request for Quotations' => 'Demandes de devis',
+ 'Required by' => 'Requis pour',
+ 'Retained Earnings' => 'Éxcédents non distribués',
+ 'Role' => 'Rôle',
+ 'S' => 'S',
+ 'SIC' => 'Code secteur économique',
+ 'SIC deleted!' => 'Code secteur économique effacé!',
+ 'SIC saved!' => 'Code secteur économique enregistré!',
+ 'SKU' => 'SKU',
+ 'SSN' => 'Numéro sécurité sociale',
+ 'Sale' => 'Vente',
+ 'Sales' => 'Ventes',
+ 'Sales Invoice' => 'Facture de vente',
+ 'Sales Invoice ' => 'Facture de vente ',
+ 'Sales Invoice.' => 'Facture de vente.',
+ 'Sales Invoices' => 'Factures de vente',
+ 'Sales Order' => 'Commande de vente',
+ 'Sales Order Number' => 'Numéro de commande de vente',
+ 'Sales Orders' => 'Commandes de vente',
+ 'Sales Quotation Number' => 'Numéro de devis de vente',
+ 'Salesperson' => 'Vendeur',
+ 'Save' => 'Enregistrer',
+ 'Save Pricelist' => 'Enregistrer la liste de prix',
+ 'Save as new' => 'Enregistrer comme nouveau',
+ 'Save to File' => 'Enregistrer dans un fichier',
+ 'Screen' => 'Écran',
+ 'Search' => 'Recherche',
+ 'Select' => 'Sélectionner',
+ 'Select a printer!' => 'Sélectionner une imprimante',
+ 'Select all' => 'Tout sélectionner',
+ 'Select from one of the items below' => 'Sélectionner un des objets ci-dessous',
+ 'Select from one of the names below' => 'Sélectionner un des noms ci-dessous',
+ 'Select from one of the projects below' => 'Sélectionner un des projets ci-dessous',
+ 'Select payment' => 'Sélectionner le payement',
+ 'Select postscript or PDF!' => 'Sélectionner Postscript ou PDF!',
+ 'Select txt, postscript or PDF!' => 'Sélectionner Txt, Postscript ou PDF!',
+ 'Sell' => 'Vente',
+ 'Sell Price' => 'Prix de vente',
+ 'Send by E-Mail' => 'Envoyer par e-mail',
+ 'Sep' => 'Sept.',
+ 'September' => 'Septembre',
+ 'Serial No.' => 'N° série',
+ 'Serial Number' => 'Numéro de série',
+ 'Service' => 'Prestation de service',
+ 'Services' => 'Prestations de services',
+ 'Session Timeout' => 'Fin de session',
+ 'Session expired!' => 'Session terminée!',
+ 'Setup Templates' => 'Configuration des squelettes',
+ 'Ship' => 'Expédier',
+ 'Ship Merchandise' => 'Expédier marchandise',
+ 'Ship to' => 'Expédier à',
+ 'Ship via' => 'Expédier via',
+ 'Shipping' => 'Expédition',
+ 'Shipping Address' => 'Adresse d\'envoi',
+ 'Shipping Date' => 'Date d\'expédition',
+ 'Shipping Date missing!' => 'Date d\'expédition manquante!',
+ 'Shipping Point' => 'Expéditeur',
+ 'Short' => 'Court',
+ 'Signature' => 'Signature',
+ 'Source' => 'Source',
+ 'Spoolfile' => 'Fichier file d\'attente impression',
+ 'Standard' => 'Standard',
+ 'Standard Industrial Codes' => 'Code secteur économique',
+ 'Startdate' => 'Date de début',
+ 'State' => 'Etat',
+ 'State/Province' => 'Région/État',
+ 'Statement' => 'Relevé',
+ 'Statement Balance' => 'Solde relevé de compte',
+ 'Statement sent to' => 'Relevé envoyé à',
+ 'Statements sent to printer!' => 'Relevés envoyés à l\'imprimante!',
+ 'Stock' => 'Stock',
+ 'Stock Assembly' => 'Stock de produits',
+ 'Stylesheet' => 'Feuille de style',
+ 'Sub-contract GIFI' => 'Code d\'identification comptable ou fiscale - Sous-traitance',
+ 'Subject' => 'Objet',
+ 'Subtotal' => 'Sous total',
+ 'Summary' => 'Résumé',
+ 'Supervisor' => 'Chef de service',
+ 'System' => 'Système',
+ 'System Defaults' => 'Préférences système',
+ 'Tax' => 'Taxe',
+ 'Tax Accounts' => 'Comptes de taxe',
+ 'Tax Included' => 'Taxe incluse',
+ 'Tax Number' => 'Numéro de TVA',
+ 'Tax Number / SSN' => 'Numéro de TVA / Sécurité Sociale',
+ 'Tax collected' => 'Taxe collectée',
+ 'Tax paid' => 'Taxe payée',
+ 'Taxable' => 'Imposable',
+ 'Template saved!' => 'Squelette enregistré!',
+ 'Templates' => 'Squelettes',
+ 'Terms' => 'Crédit limité à',
+ 'Text Templates' => 'Squelettes texte',
+ 'The following Datasets are not in use and can be deleted' => 'Les fichiers de données suivants ne sont pas utilisés et peuvent être supprimés.',
+ 'The following Datasets need to be updated' => 'Les fichiers de données suivants doivent être mis à jour',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Ceci est un test préliminaire des sources existantes. Aucune modification à ce stade!',
+ 'Till' => 'Caisse',
+ 'To' => 'À',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Pour ajouter un utilisateur à un groupe, editer un "nom", changer le "login" et enregistrer. Un nouvel utilisateur avec les mêmes données sera enregistré avec le nouveau "login".',
+ 'Top Level' => 'Description principale',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Escompte commercial',
+ 'Transaction' => 'Écriture',
+ 'Transaction Date missing!' => 'Date d\'écriture manquante!',
+ 'Transaction deleted!' => 'Écriture supprimée!',
+ 'Transaction posted!' => 'Écriture enregistrée!',
+ 'Transaction reversal enforced for all dates' => 'Inversion des écritures exécutée pour toutes les dates',
+ 'Transaction reversal enforced up to' => 'Inversion des écritures exécutée jusqu\'au',
+ 'Transactions' => 'Mouvements',
+ 'Transfer' => 'Transfert',
+ 'Transfer Inventory' => 'Transfert inventaire',
+ 'Transfer to' => 'Transférer vers',
+ 'Translation' => 'Traduction',
+ 'Translation deleted!' => 'Traduction supprimée!',
+ 'Translation not on file!' => 'Pas de traduction dans le fichier',
+ 'Translations' => 'Traductions',
+ 'Translations saved!' => 'Traductions enregistrées',
+ 'Trial Balance' => 'Balance Globale',
+ 'Type of Business' => 'Type d\'affaire',
+ 'Unit' => 'Unité',
+ 'Unit of measure' => 'Unité de mesure',
+ 'Unlock System' => 'Déverrouiller le système',
+ 'Update' => 'Mettre à jour',
+ 'Update Dataset' => 'Mise à jour de la base de données',
+ 'Updated' => 'Mis à jour',
+ 'Upgrading to Version' => 'Mise à jour à la version',
+ 'Use Templates' => 'Utiliser les squelettes',
+ 'User' => 'Utilisateur',
+ 'User deleted!' => 'Utilisateur supprimé!',
+ 'User saved!' => 'Utilisateur enregistré!',
+ 'Valid until' => 'Valable jusqu\'au',
+ 'Vendor' => 'Fournisseur',
+ 'Vendor History' => 'Historique fournisseurs',
+ 'Vendor Invoice' => 'Facture d\'achat',
+ 'Vendor Invoice ' => 'Facture d\'achat ',
+ 'Vendor Invoice.' => 'Facture d\'achat.',
+ 'Vendor Invoices' => 'Factures d\'achat',
+ 'Vendor Number' => 'Numéro de fournisseur',
+ 'Vendor deleted!' => 'Fournisseur supprimé!',
+ 'Vendor missing!' => 'Fournisseur manquant!',
+ 'Vendor not on file!' => 'Fournisseur absent du fichier!',
+ 'Vendor saved!' => 'Fournisseur enregistré!',
+ 'Vendors' => 'Fournisseurs',
+ 'Version' => 'Version',
+ 'Warehouse' => 'Entrepôt',
+ 'Warehouse deleted!' => 'Entrepôt supprimé',
+ 'Warehouse saved!' => 'Entrepôt enregistré',
+ 'Warehouses' => 'Entrepôts',
+ 'Warning!' => 'Attention!',
+ 'Weight' => 'Poids',
+ 'Weight Unit' => 'Unité de poids',
+ 'What type of item is this?' => 'De quel type est cet objet?',
+ 'Work Order' => 'Fiche de traitement',
+ 'Work Orders' => 'Fiche de traitement',
+ 'Work Phone' => 'Téléphone travail',
+ 'Year' => 'Année',
+ 'Yearend' => 'Écriture de fin d\'exercice',
+ 'Yearend date missing!' => 'Écriture de fin d\'exercice - date manquante',
+ 'Yearend posted!' => 'Écriture de fin d\'exercice enregistrée',
+ 'Yearend posting failed!' => 'Échec enregistrement écriture fin d\'exercice!',
+ 'Yes' => 'Oui',
+ 'You are logged out' => 'Vous êtes déconnecté!',
+ 'You did not enter a name!' => 'Vous n\'avez pas saisi de nom!',
+ 'You must enter a host and port for local and remote connections!' => 'Vous devez saisir un "hôte" et un "port" pour les connexions distantes!',
+ 'Zip/Postal Code' => 'Code postal',
+ 'account cannot be set to any other type of account' => 'compte ne peut pas être changé vers un autre type de compte',
+ 'as at' => 'au',
+ 'days' => 'jours',
+ 'does not exist' => 'n\'existe pas!',
+ 'done' => 'fait',
+ 'ea' => 'pièce(s)',
+ 'for Period' => 'pour la période',
+ 'is already a member!' => 'est déjà un membre!',
+ 'localhost' => 'hôte local',
+ 'locked!' => 'verrouillé!',
+ 'posted!' => 'enregistré!',
+ 'sent' => 'envoyé',
+ 'successfully created!' => 'créé avec succès',
+ 'successfully deleted!' => 'supprimé avec succès',
+ 'website' => 'site web',
+};
+
+1;
diff --git a/locale/ca_fr/am b/locale/ca_fr/am
new file mode 100755
index 00000000..a98d8a8e
--- /dev/null
+++ b/locale/ca_fr/am
@@ -0,0 +1,284 @@
+$self{texts} = {
+ 'AP' => 'Dépenses',
+ 'AR' => 'Recettes',
+ 'About' => 'À propos',
+ 'Account' => 'Compte',
+ 'Account Number' => 'Numéro de compte',
+ 'Account Number missing!' => 'Numéro de compte manquant!',
+ 'Account Type' => 'Type de compte',
+ 'Account Type missing!' => 'Type de compte manquant!',
+ 'Account deleted!' => 'Compte supprimé',
+ 'Account does not exist!' => 'Compte non existant!',
+ 'Account saved!' => 'Compte enregistré',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Accrual' => 'Accumulation',
+ 'Activate Audit trail' => 'Activer la journalisation des accès aux écritures clôturées',
+ 'Add Account' => 'Ajouter compte',
+ 'Add Business' => 'Ajouter type d\'affaire',
+ 'Add Department' => 'Ajouter service',
+ 'Add GIFI' => 'Ajouter code d\'identification comptable ou fiscale',
+ 'Add Language' => 'Ajouter langue',
+ 'Add SIC' => 'Ajouter code secteur économique',
+ 'Add Warehouse' => 'Ajouter entrepôt',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Montant',
+ 'Asset' => 'Actif',
+ 'Audit Control' => 'Clôture périodique',
+ 'Audit trail disabled' => 'Journalisation clôture desactivée',
+ 'Audit trail enabled' => 'Journalisation clôture activée',
+ 'Audit trail removed up to' => 'Annulation de la journalisation des accès aux écritures clôturées jusqu\'au',
+ 'Backup sent to' => 'Sauvegarde envoyée à',
+ 'Bin List' => 'Liste des emplacements',
+ 'Books are open' => 'Début exercice',
+ 'Business Number' => 'Numéro d\'enregistrement société',
+ 'Business deleted!' => 'Type d\'affaire effacé!',
+ 'Business saved!' => 'Type d\'affaire enregistré!',
+ 'COGS' => 'Coût des produits vendus',
+ 'Cannot delete account!' => 'Impossible de supprimer le compte!',
+ 'Cannot delete default account!' => 'Impossible de supprimer le compte par défaut!',
+ 'Cannot save account!' => 'Impossible d\'enregistrer le compte!',
+ 'Cannot save defaults!' => 'Impossible d\'enregistrer les valeurs par défaut!',
+ 'Cannot save preferences!' => 'Impossible d\'enregistrer les préférences',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Impossible d\'enregistrer le compte simultanément en tant que compte de recettes, dépenses ou service',
+ 'Cannot set multiple options for' => 'Impossible de choisir plusieurs options pour',
+ 'Cash' => 'Financier',
+ 'Chart of Accounts' => 'Plan Comptable',
+ 'Close Books up to' => 'Clôturer l\'exercice jusqu\'au',
+ 'Code' => 'Code',
+ 'Code missing!' => 'Code manquant!',
+ 'Company' => 'Société',
+ 'Confirm' => 'Confirmer',
+ 'Confirm!' => 'Confirmer!',
+ 'Continue' => 'Continuer',
+ 'Contra' => 'Contrepartie',
+ 'Copy to COA' => 'Copier dans le plan comptable',
+ 'Cost Center' => 'Axé coûts',
+ 'Credit' => 'Crédit',
+ 'Customer Number' => 'Numéro de client',
+ 'Database Host' => 'Hôte de base de données',
+ 'Dataset' => 'Fichier de données',
+ 'Date Format' => 'Format de date',
+ 'Debit' => 'Débit',
+ 'Defaults saved!' => 'Valeurs par défaut enrégistrées!',
+ 'Delete' => 'Supprimer',
+ 'Delete Account' => 'Supprimer compte',
+ 'Department deleted!' => 'Service effacé!',
+ 'Department saved!' => 'Service enregistré!',
+ 'Departments' => 'Services',
+ 'Description' => 'Description',
+ 'Description missing!' => 'Description manquante!',
+ 'Discount' => 'Remise',
+ 'Dropdown Limit' => 'Limite de déroulement',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Adresse e-mail manquante!',
+ 'Edit' => 'Modifier',
+ 'Edit Account' => 'Modifier le compte',
+ 'Edit Business' => 'Modifier type d\'affaire',
+ 'Edit Department' => 'Modifier service de l\'entreprise',
+ 'Edit GIFI' => 'Modifier code d\'identification comptable ou fiscale',
+ 'Edit Language' => 'Modifier langue',
+ 'Edit Preferences for' => 'Modifier les préférences pour',
+ 'Edit SIC' => 'Modifier code de secteur économique',
+ 'Edit Template' => 'Modifier squelette',
+ 'Edit Warehouse' => 'Modifier entrepôt',
+ 'Employee Number' => 'Numéro d\'employé',
+ 'Enforce transaction reversal for all dates' => 'Activer la clôture des écritures pour toutes les dates',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Entrer le nom de la monnaie nationale et des monnaies étrangères en 3 lettres séparées par (:) (Ex: EUR:USD:CAD)',
+ 'Equity' => 'Capital',
+ 'Expense' => 'Dépenses',
+ 'Expense/Asset' => 'Dépenses/actif',
+ 'Fax' => 'Fax',
+ 'Foreign Exchange Gain' => 'Produit conversion devises',
+ 'Foreign Exchange Loss' => 'Perte conversion devises',
+ 'GIFI' => 'Code d\'identification comptable ou fiscale',
+ 'GIFI deleted!' => 'Code d\'identification comptable ou fiscale supprimé!',
+ 'GIFI missing!' => 'Code d\'identification comptable ou fiscale manquant!',
+ 'GIFI saved!' => 'Code d\'identification comptable ou fiscale enregistré!',
+ 'GL Transaction' => 'Transaction grand-livre',
+ 'Heading' => 'En-tête',
+ 'ID' => 'ID',
+ 'Include in drop-down menus' => 'Inclure dans les menus déroulants',
+ 'Income' => 'Recettes',
+ 'Inventory' => 'Inventaire',
+ 'Invoice' => 'Facture',
+ 'Is this a summary account to record' => 'Est-ce que c\'est un compte sommaire à enregistrer?',
+ 'Language' => 'Langue',
+ 'Language deleted!' => 'Langue effacée!',
+ 'Language saved!' => 'Langue enregistrée!',
+ 'Languages' => 'Langues',
+ 'Last Numbers & Default Accounts' => 'Derniers numéros et comptes par défauts',
+ 'Liability' => 'Passif',
+ 'Licensed to' => 'Licence à',
+ 'Link' => 'Liens',
+ 'Menu Width' => 'Largeur menu',
+ 'Method' => 'Méthode',
+ 'Month' => 'Mois',
+ 'Name' => 'Nom',
+ 'No' => 'Non',
+ 'No email address for' => 'Pas d\'adresse email pour',
+ 'Number' => 'Numéro',
+ 'Number Format' => 'Format des numéros',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Liste d\'envoi',
+ 'Password' => 'Mot de passe',
+ 'Password does not match!' => 'Mot de passe incorrect!',
+ 'Payables' => 'À payer',
+ 'Payment' => 'Paiement',
+ 'Phone' => 'Tél.',
+ 'Pick List' => 'Liste de sélection',
+ 'Postscript' => 'Postcript',
+ 'Preferences saved!' => 'Préférences enregistrées!',
+ 'Print' => 'Imprimer',
+ 'Printer' => 'Imprimante',
+ 'Profit Center' => 'Axé profit',
+ 'Purchase Order' => 'Commande d\'achat',
+ 'Purchase Order Number' => 'Numéro de commande',
+ 'Purchase Orders' => 'Commandes d\'achat',
+ 'RFQ Number' => 'Numéro de demande de devis',
+ 'Rate' => 'Taux',
+ 'Receivables' => 'À recevoir',
+ 'Reference' => 'Référence',
+ 'Remove Audit trail up to' => 'Annuler la journalisation des accès aux écritures clôturées jusqu\'au',
+ 'Retained Earnings' => 'Éxcédents non distribués',
+ 'SIC deleted!' => 'Code secteur économique effacé!',
+ 'SIC saved!' => 'Code secteur économique enregistré!',
+ 'Sales Invoice' => 'Facture de vente',
+ 'Sales Order' => 'Commande de vente',
+ 'Sales Order Number' => 'Numéro de commande de vente',
+ 'Sales Orders' => 'Commandes de vente',
+ 'Sales Quotation Number' => 'Numéro de devis de vente',
+ 'Save' => 'Enregistrer',
+ 'Save as new' => 'Enregistrer comme nouveau',
+ 'Session Timeout' => 'Fin de session',
+ 'Signature' => 'Signature',
+ 'Standard Industrial Codes' => 'Code secteur économique',
+ 'Stylesheet' => 'Feuille de style',
+ 'System Defaults' => 'Préférences système',
+ 'Tax' => 'Taxe',
+ 'Template saved!' => 'Squelette enregistré!',
+ 'Transaction' => 'Écriture',
+ 'Transaction reversal enforced for all dates' => 'Inversion des écritures exécutée pour toutes les dates',
+ 'Transaction reversal enforced up to' => 'Inversion des écritures exécutée jusqu\'au',
+ 'Type of Business' => 'Type d\'affaire',
+ 'Update' => 'Mettre à jour',
+ 'User' => 'Utilisateur',
+ 'Vendor Invoice' => 'Facture d\'achat',
+ 'Vendor Number' => 'Numéro de fournisseur',
+ 'Version' => 'Version',
+ 'Warehouse deleted!' => 'Entrepôt supprimé',
+ 'Warehouse saved!' => 'Entrepôt enregistré',
+ 'Warehouses' => 'Entrepôts',
+ 'Weight Unit' => 'Unité de poids',
+ 'Work Order' => 'Fiche de traitement',
+ 'Year' => 'Année',
+ 'Yearend' => 'Écriture de fin d\'exercice',
+ 'Yearend date missing!' => 'Écriture de fin d\'exercice - date manquante',
+ 'Yearend posted!' => 'Écriture de fin d\'exercice enregistrée',
+ 'Yearend posting failed!' => 'Échec enregistrement écriture fin d\'exercice!',
+ 'Yes' => 'Oui',
+ 'account cannot be set to any other type of account' => 'compte ne peut pas être changé vers un autre type de compte',
+ 'done' => 'fait',
+ 'localhost' => 'hôte local',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'ajouter_compte' => 'add_account',
+ 'ajouter_type_d\'affaire' => 'add_business',
+ 'ajouter_service' => 'add_department',
+ 'ajouter_langue' => 'add_language',
+ 'ajouter_code_secteur_économique' => 'add_sic',
+ 'ajouter_entrepôt' => 'add_warehouse',
+ 'continuer' => 'continue',
+ 'copier_dans_le_plan_comptable' => 'copy_to_coa',
+ 'supprimer' => 'delete',
+ 'modifier' => 'edit',
+ 'modifier_le_compte' => 'edit_account',
+ 'enregistrer' => 'save',
+ 'enregistrer_comme_nouveau' => 'save_as_new',
+ 'mettre_à_jour' => 'update',
+};
+
+1;
+
diff --git a/locale/ca_fr/ap b/locale/ca_fr/ap
new file mode 100755
index 00000000..0698578b
--- /dev/null
+++ b/locale/ca_fr/ap
@@ -0,0 +1,210 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Dépenses en retard',
+ 'AP Transaction' => 'Écriture dépenses',
+ 'AP Transactions' => 'Mouvements - Dépenses',
+ 'AR Outstanding' => 'Recettes en retard',
+ 'AR Transaction' => 'Écriture recettes',
+ 'AR Transactions' => 'Mouvements - Recettes',
+ 'Account' => 'Compte',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Add AP Transaction' => 'Ajouter une dépense',
+ 'Add AR Transaction' => 'Ajouter une recette',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Montant',
+ 'Amount Due' => 'Montant dû',
+ 'Apr' => 'Avril',
+ 'April' => 'Avril',
+ 'Are you sure you want to delete Transaction' => 'Êtes vous sûr de vouloir effacer la saisie?',
+ 'Aug' => 'Août',
+ 'August' => 'Août',
+ 'Bcc' => 'Copie cachée',
+ 'Cannot delete transaction!' => 'Impossible de supprimer l\'écriture!',
+ 'Cannot post payment for a closed period!' => 'Impossible d\'enregistrer le paiement sur un exercice clos!',
+ 'Cannot post transaction for a closed period!' => 'Impossible d\'enregistrer l\'écriture sur un exercice clos!',
+ 'Cannot post transaction!' => 'Impossible d\'enregistrer l\'écriture!',
+ 'Cc' => 'Copie',
+ 'Check' => 'Chèque',
+ 'Closed' => 'Clôturé',
+ 'Confirm!' => 'Confirmer!',
+ 'Continue' => 'Continuer',
+ 'Credit' => 'Crédit',
+ 'Credit Limit' => 'Encours autorisé',
+ 'Curr' => 'Dev.',
+ 'Currency' => 'Devise',
+ 'Current' => 'En cours',
+ 'Customer' => 'Client',
+ 'Customer missing!' => 'Client manquant!',
+ 'Customer not on file!' => 'Client absent du fichier!',
+ 'Date' => 'Date',
+ 'Date Paid' => 'Date de paiement',
+ 'Debit' => 'Débit',
+ 'Dec' => 'Déc.',
+ 'December' => 'Décembre',
+ 'Delete' => 'Supprimer',
+ 'Department' => 'Service',
+ 'Description' => 'Description',
+ 'Detail' => 'Détail',
+ 'Due Date' => 'Échéance',
+ 'Due Date missing!' => 'Date d\'échéance manquante!',
+ 'E-mail' => 'E-mail',
+ 'Edit AP Transaction' => 'Modifier une dépense',
+ 'Edit AR Transaction' => 'Modifier une recette',
+ 'Employee' => 'Employé',
+ 'Exch' => 'Change',
+ 'Exchange Rate' => 'Taux de change',
+ 'Exchange rate for payment missing!' => 'Taux de change manquant pour le paiement!',
+ 'Exchange rate missing!' => 'Taux de change manquant!',
+ 'Feb' => 'Fév.',
+ 'February' => 'Février',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Inclure dans l\'état',
+ 'Invoice' => 'Facture',
+ 'Invoice Date' => 'Date de facturation',
+ 'Invoice Date missing!' => 'Date de facture manquante!',
+ 'Invoice Number' => 'Numéro de facture',
+ 'Jan' => 'Jan.',
+ 'January' => 'Janvier',
+ 'Jul' => 'Juill.',
+ 'July' => 'Juillet',
+ 'Jun' => 'Juin',
+ 'June' => 'Juin',
+ 'Manager' => 'Gestionnaire',
+ 'Mar' => 'Mars',
+ 'March' => 'Mars',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Mémo',
+ 'Message' => 'Message',
+ 'Month' => 'Mois',
+ 'No.' => 'N°',
+ 'Notes' => 'Notes',
+ 'Nothing to print!' => 'Rien à imprimer',
+ 'Nov' => 'Nov.',
+ 'November' => 'Novembre',
+ 'Number' => 'Numéro',
+ 'Oct' => 'Oct.',
+ 'October' => 'Octobre',
+ 'Open' => 'Ouvert',
+ 'Order' => 'Commande',
+ 'Order Number' => 'Numéro de commande',
+ 'PDF' => 'PDF',
+ 'Paid' => 'Total payé',
+ 'Payment date missing!' => 'Date de paiement manquante!',
+ 'Payments' => 'Paiements',
+ 'Period' => 'Période',
+ 'Post' => 'Enregistrer',
+ 'Post as new' => 'Enregistrer comme nouveau',
+ 'Postscript' => 'Postcript',
+ 'Print' => 'Imprimer',
+ 'Print and Post' => 'Imprimer et imputer',
+ 'Printed' => 'Imprimé',
+ 'Project' => 'Projet',
+ 'Project not on file!' => 'Projet absent du fichier!',
+ 'Quarter' => 'Trimestre',
+ 'Receipt' => 'Reçu',
+ 'Reference' => 'Référence',
+ 'Remaining' => 'Restant',
+ 'Sales Invoice.' => 'Facture de vente.',
+ 'Salesperson' => 'Vendeur',
+ 'Screen' => 'Écran',
+ 'Select from one of the names below' => 'Sélectionner un des noms ci-dessous',
+ 'Select from one of the projects below' => 'Sélectionner un des projets ci-dessous',
+ 'Select payment' => 'Sélectionner le payement',
+ 'Select postscript or PDF!' => 'Sélectionner Postscript ou PDF!',
+ 'Sep' => 'Sept.',
+ 'September' => 'Septembre',
+ 'Ship to' => 'Expédier à',
+ 'Ship via' => 'Expédier via',
+ 'Shipping Point' => 'Expéditeur',
+ 'Source' => 'Source',
+ 'Startdate' => 'Date de début',
+ 'Subject' => 'Objet',
+ 'Subtotal' => 'Sous total',
+ 'Summary' => 'Résumé',
+ 'Tax' => 'Taxe',
+ 'Tax Included' => 'Taxe incluse',
+ 'Till' => 'Caisse',
+ 'To' => 'À',
+ 'Total' => 'Total',
+ 'Transaction' => 'Écriture',
+ 'Transaction deleted!' => 'Écriture supprimée!',
+ 'Transaction posted!' => 'Écriture enregistrée!',
+ 'Update' => 'Mettre à jour',
+ 'Vendor' => 'Fournisseur',
+ 'Vendor Invoice.' => 'Facture d\'achat.',
+ 'Vendor missing!' => 'Fournisseur manquant!',
+ 'Vendor not on file!' => 'Fournisseur absent du fichier!',
+ 'Warning!' => 'Attention!',
+ 'Year' => 'Année',
+ 'Yes' => 'Oui',
+ 'sent' => 'envoyé',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'Écriture_dépenses' => 'ap_transaction',
+ 'Écriture_recettes' => 'ar_transaction',
+ 'continuer' => 'continue',
+ 'supprimer' => 'delete',
+ 'enregistrer' => 'post',
+ 'enregistrer_comme_nouveau' => 'post_as_new',
+ 'imprimer' => 'print',
+ 'imprimer_et_imputer' => 'print_and_post',
+ 'facture_de_vente_' => 'sales_invoice_',
+ 'expédier_à' => 'ship_to',
+ 'mettre_à_jour' => 'update',
+ 'facture_d\'achat_' => 'vendor_invoice_',
+ 'oui' => 'yes',
+};
+
+1;
+
diff --git a/locale/ca_fr/ar b/locale/ca_fr/ar
new file mode 100755
index 00000000..0698578b
--- /dev/null
+++ b/locale/ca_fr/ar
@@ -0,0 +1,210 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Dépenses en retard',
+ 'AP Transaction' => 'Écriture dépenses',
+ 'AP Transactions' => 'Mouvements - Dépenses',
+ 'AR Outstanding' => 'Recettes en retard',
+ 'AR Transaction' => 'Écriture recettes',
+ 'AR Transactions' => 'Mouvements - Recettes',
+ 'Account' => 'Compte',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Add AP Transaction' => 'Ajouter une dépense',
+ 'Add AR Transaction' => 'Ajouter une recette',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Montant',
+ 'Amount Due' => 'Montant dû',
+ 'Apr' => 'Avril',
+ 'April' => 'Avril',
+ 'Are you sure you want to delete Transaction' => 'Êtes vous sûr de vouloir effacer la saisie?',
+ 'Aug' => 'Août',
+ 'August' => 'Août',
+ 'Bcc' => 'Copie cachée',
+ 'Cannot delete transaction!' => 'Impossible de supprimer l\'écriture!',
+ 'Cannot post payment for a closed period!' => 'Impossible d\'enregistrer le paiement sur un exercice clos!',
+ 'Cannot post transaction for a closed period!' => 'Impossible d\'enregistrer l\'écriture sur un exercice clos!',
+ 'Cannot post transaction!' => 'Impossible d\'enregistrer l\'écriture!',
+ 'Cc' => 'Copie',
+ 'Check' => 'Chèque',
+ 'Closed' => 'Clôturé',
+ 'Confirm!' => 'Confirmer!',
+ 'Continue' => 'Continuer',
+ 'Credit' => 'Crédit',
+ 'Credit Limit' => 'Encours autorisé',
+ 'Curr' => 'Dev.',
+ 'Currency' => 'Devise',
+ 'Current' => 'En cours',
+ 'Customer' => 'Client',
+ 'Customer missing!' => 'Client manquant!',
+ 'Customer not on file!' => 'Client absent du fichier!',
+ 'Date' => 'Date',
+ 'Date Paid' => 'Date de paiement',
+ 'Debit' => 'Débit',
+ 'Dec' => 'Déc.',
+ 'December' => 'Décembre',
+ 'Delete' => 'Supprimer',
+ 'Department' => 'Service',
+ 'Description' => 'Description',
+ 'Detail' => 'Détail',
+ 'Due Date' => 'Échéance',
+ 'Due Date missing!' => 'Date d\'échéance manquante!',
+ 'E-mail' => 'E-mail',
+ 'Edit AP Transaction' => 'Modifier une dépense',
+ 'Edit AR Transaction' => 'Modifier une recette',
+ 'Employee' => 'Employé',
+ 'Exch' => 'Change',
+ 'Exchange Rate' => 'Taux de change',
+ 'Exchange rate for payment missing!' => 'Taux de change manquant pour le paiement!',
+ 'Exchange rate missing!' => 'Taux de change manquant!',
+ 'Feb' => 'Fév.',
+ 'February' => 'Février',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Inclure dans l\'état',
+ 'Invoice' => 'Facture',
+ 'Invoice Date' => 'Date de facturation',
+ 'Invoice Date missing!' => 'Date de facture manquante!',
+ 'Invoice Number' => 'Numéro de facture',
+ 'Jan' => 'Jan.',
+ 'January' => 'Janvier',
+ 'Jul' => 'Juill.',
+ 'July' => 'Juillet',
+ 'Jun' => 'Juin',
+ 'June' => 'Juin',
+ 'Manager' => 'Gestionnaire',
+ 'Mar' => 'Mars',
+ 'March' => 'Mars',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Mémo',
+ 'Message' => 'Message',
+ 'Month' => 'Mois',
+ 'No.' => 'N°',
+ 'Notes' => 'Notes',
+ 'Nothing to print!' => 'Rien à imprimer',
+ 'Nov' => 'Nov.',
+ 'November' => 'Novembre',
+ 'Number' => 'Numéro',
+ 'Oct' => 'Oct.',
+ 'October' => 'Octobre',
+ 'Open' => 'Ouvert',
+ 'Order' => 'Commande',
+ 'Order Number' => 'Numéro de commande',
+ 'PDF' => 'PDF',
+ 'Paid' => 'Total payé',
+ 'Payment date missing!' => 'Date de paiement manquante!',
+ 'Payments' => 'Paiements',
+ 'Period' => 'Période',
+ 'Post' => 'Enregistrer',
+ 'Post as new' => 'Enregistrer comme nouveau',
+ 'Postscript' => 'Postcript',
+ 'Print' => 'Imprimer',
+ 'Print and Post' => 'Imprimer et imputer',
+ 'Printed' => 'Imprimé',
+ 'Project' => 'Projet',
+ 'Project not on file!' => 'Projet absent du fichier!',
+ 'Quarter' => 'Trimestre',
+ 'Receipt' => 'Reçu',
+ 'Reference' => 'Référence',
+ 'Remaining' => 'Restant',
+ 'Sales Invoice.' => 'Facture de vente.',
+ 'Salesperson' => 'Vendeur',
+ 'Screen' => 'Écran',
+ 'Select from one of the names below' => 'Sélectionner un des noms ci-dessous',
+ 'Select from one of the projects below' => 'Sélectionner un des projets ci-dessous',
+ 'Select payment' => 'Sélectionner le payement',
+ 'Select postscript or PDF!' => 'Sélectionner Postscript ou PDF!',
+ 'Sep' => 'Sept.',
+ 'September' => 'Septembre',
+ 'Ship to' => 'Expédier à',
+ 'Ship via' => 'Expédier via',
+ 'Shipping Point' => 'Expéditeur',
+ 'Source' => 'Source',
+ 'Startdate' => 'Date de début',
+ 'Subject' => 'Objet',
+ 'Subtotal' => 'Sous total',
+ 'Summary' => 'Résumé',
+ 'Tax' => 'Taxe',
+ 'Tax Included' => 'Taxe incluse',
+ 'Till' => 'Caisse',
+ 'To' => 'À',
+ 'Total' => 'Total',
+ 'Transaction' => 'Écriture',
+ 'Transaction deleted!' => 'Écriture supprimée!',
+ 'Transaction posted!' => 'Écriture enregistrée!',
+ 'Update' => 'Mettre à jour',
+ 'Vendor' => 'Fournisseur',
+ 'Vendor Invoice.' => 'Facture d\'achat.',
+ 'Vendor missing!' => 'Fournisseur manquant!',
+ 'Vendor not on file!' => 'Fournisseur absent du fichier!',
+ 'Warning!' => 'Attention!',
+ 'Year' => 'Année',
+ 'Yes' => 'Oui',
+ 'sent' => 'envoyé',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'Écriture_dépenses' => 'ap_transaction',
+ 'Écriture_recettes' => 'ar_transaction',
+ 'continuer' => 'continue',
+ 'supprimer' => 'delete',
+ 'enregistrer' => 'post',
+ 'enregistrer_comme_nouveau' => 'post_as_new',
+ 'imprimer' => 'print',
+ 'imprimer_et_imputer' => 'print_and_post',
+ 'facture_de_vente_' => 'sales_invoice_',
+ 'expédier_à' => 'ship_to',
+ 'mettre_à_jour' => 'update',
+ 'facture_d\'achat_' => 'vendor_invoice_',
+ 'oui' => 'yes',
+};
+
+1;
+
diff --git a/locale/ca_fr/arap b/locale/ca_fr/arap
new file mode 100755
index 00000000..c12854e6
--- /dev/null
+++ b/locale/ca_fr/arap
@@ -0,0 +1,51 @@
+$self{texts} = {
+ 'Address' => 'Adresse',
+ 'Bcc' => 'Copie cachée',
+ 'Cc' => 'Copie',
+ 'Continue' => 'Continuer',
+ 'Customer not on file!' => 'Client absent du fichier!',
+ 'Date' => 'Date',
+ 'Description' => 'Description',
+ 'E-mail' => 'E-mail',
+ 'Message' => 'Message',
+ 'Number' => 'Numéro',
+ 'Print' => 'Imprimer',
+ 'Project not on file!' => 'Projet absent du fichier!',
+ 'Reference' => 'Référence',
+ 'Select from one of the names below' => 'Sélectionner un des noms ci-dessous',
+ 'Select from one of the projects below' => 'Sélectionner un des projets ci-dessous',
+ 'Startdate' => 'Date de début',
+ 'Subject' => 'Objet',
+ 'To' => 'À',
+ 'Vendor not on file!' => 'Fournisseur absent du fichier!',
+ 'Warning!' => 'Attention!',
+ 'sent' => 'envoyé',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuer' => 'continue',
+};
+
+1;
+
diff --git a/locale/ca_fr/arapprn b/locale/ca_fr/arapprn
new file mode 100755
index 00000000..391fa285
--- /dev/null
+++ b/locale/ca_fr/arapprn
@@ -0,0 +1,32 @@
+$self{texts} = {
+ 'Account' => 'Compte',
+ 'Amount' => 'Montant',
+ 'Continue' => 'Continuer',
+ 'Date' => 'Date',
+ 'Memo' => 'Mémo',
+ 'Nothing to print!' => 'Rien à imprimer',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'Postcript',
+ 'Printed' => 'Imprimé',
+ 'Screen' => 'Écran',
+ 'Select payment' => 'Sélectionner le payement',
+ 'Select postscript or PDF!' => 'Sélectionner Postscript ou PDF!',
+ 'Source' => 'Source',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'continuer' => 'continue',
+};
+
+1;
+
diff --git a/locale/ca_fr/bp b/locale/ca_fr/bp
new file mode 100755
index 00000000..4ec0a97c
--- /dev/null
+++ b/locale/ca_fr/bp
@@ -0,0 +1,67 @@
+$self{texts} = {
+ 'Account' => 'Compte',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Êtes vous sûr de vouloir enlever les objets sélectionnés de la queue?',
+ 'Bin Lists' => 'Liste des emplacements',
+ 'Cannot remove files!' => 'Impossible d\'effacer les fichiers!',
+ 'Confirm!' => 'Confirmer!',
+ 'Continue' => 'Continuer',
+ 'Current' => 'En cours',
+ 'Customer' => 'Client',
+ 'Date' => 'Date',
+ 'Employee' => 'Employé',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'Invoice' => 'Facture',
+ 'Invoice Number' => 'Numéro de facture',
+ 'Marked entries printed!' => 'Éléments marqués imprimés!',
+ 'Month' => 'Mois',
+ 'Order' => 'Commande',
+ 'Order Number' => 'Numéro de commande',
+ 'Packing Lists' => 'Listes d\'envoi',
+ 'Period' => 'Période',
+ 'Pick Lists' => 'Liste de sélection',
+ 'Print' => 'Imprimer',
+ 'Purchase Orders' => 'Commandes d\'achat',
+ 'Quarter' => 'Trimestre',
+ 'Quotation' => 'Devis',
+ 'Quotation Number' => 'Numéro de devis',
+ 'Quotations' => 'Devis',
+ 'RFQs' => 'Demandes de devis',
+ 'Remove' => 'Effacer',
+ 'Removed spoolfiles!' => 'File d\'attente impression effacée!',
+ 'Removing marked entries from queue ...' => 'Suppression des éléments sélectionnés de la file d\'attente ...',
+ 'Sales Invoices' => 'Factures de vente',
+ 'Sales Orders' => 'Commandes de vente',
+ 'Select all' => 'Tout sélectionner',
+ 'Spoolfile' => 'Fichier file d\'attente impression',
+ 'To' => 'À',
+ 'Vendor' => 'Fournisseur',
+ 'Work Orders' => 'Fiche de traitement',
+ 'Year' => 'Année',
+ 'Yes' => 'Oui',
+ 'done' => 'fait',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'continuer' => 'continue',
+ 'imprimer' => 'print',
+ 'effacer' => 'remove',
+ 'tout_sélectionner' => 'select_all',
+ 'oui' => 'yes',
+};
+
+1;
+
diff --git a/locale/ca_fr/ca b/locale/ca_fr/ca
new file mode 100755
index 00000000..623cbd74
--- /dev/null
+++ b/locale/ca_fr/ca
@@ -0,0 +1,60 @@
+$self{texts} = {
+ 'AR/AP' => 'Recettes/Dépenses',
+ 'Account' => 'Compte',
+ 'Apr' => 'Avril',
+ 'April' => 'Avril',
+ 'Aug' => 'Août',
+ 'August' => 'Août',
+ 'Balance' => 'Solde',
+ 'Chart of Accounts' => 'Plan Comptable',
+ 'Credit' => 'Crédit',
+ 'Current' => 'En cours',
+ 'Date' => 'Date',
+ 'Debit' => 'Débit',
+ 'Dec' => 'Déc.',
+ 'December' => 'Décembre',
+ 'Department' => 'Service',
+ 'Description' => 'Description',
+ 'Feb' => 'Fév.',
+ 'February' => 'Février',
+ 'From' => 'De',
+ 'GIFI' => 'Code d\'identification comptable ou fiscale',
+ 'Include in Report' => 'Inclure dans l\'état',
+ 'Jan' => 'Jan.',
+ 'January' => 'Janvier',
+ 'Jul' => 'Juill.',
+ 'July' => 'Juillet',
+ 'Jun' => 'Juin',
+ 'June' => 'Juin',
+ 'List Transactions' => 'Afficher écritures',
+ 'Mar' => 'Mars',
+ 'March' => 'Mars',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Month' => 'Mois',
+ 'Nov' => 'Nov.',
+ 'November' => 'Novembre',
+ 'Oct' => 'Oct.',
+ 'October' => 'Octobre',
+ 'Period' => 'Période',
+ 'Project Number' => 'Numéro de projet',
+ 'Quarter' => 'Trimestre',
+ 'R' => 'R',
+ 'Reference' => 'Référence',
+ 'Sep' => 'Sept.',
+ 'September' => 'Septembre',
+ 'Subtotal' => 'Sous total',
+ 'To' => 'À',
+ 'Year' => 'Année',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'afficher_écritures' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/ca_fr/cp b/locale/ca_fr/cp
new file mode 100755
index 00000000..528f3258
--- /dev/null
+++ b/locale/ca_fr/cp
@@ -0,0 +1,123 @@
+$self{texts} = {
+ 'AP' => 'Dépenses',
+ 'AR' => 'Recettes',
+ 'Account' => 'Compte',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Address' => 'Adresse',
+ 'All' => 'Tous',
+ 'Amount' => 'Montant',
+ 'Amount Due' => 'Montant dû',
+ 'Bcc' => 'Copie cachée',
+ 'Cannot post Payment!' => 'Impossible d\'enregistrer le paiement!',
+ 'Cannot post Receipt!' => 'Impossible d\'enregistrer le reçu!',
+ 'Cannot post payment for a closed period!' => 'Impossible d\'enregistrer le paiement sur un exercice clos!',
+ 'Cc' => 'Copie',
+ 'Continue' => 'Continuer',
+ 'Currency' => 'Devise',
+ 'Customer' => 'Client',
+ 'Customer not on file!' => 'Client absent du fichier!',
+ 'Date' => 'Date',
+ 'Date missing!' => 'Date manquante!',
+ 'Department' => 'Service',
+ 'Deposit' => 'Dépôt',
+ 'Description' => 'Description',
+ 'Due Date' => 'Échéance',
+ 'E-mail' => 'E-mail',
+ 'Exchange Rate' => 'Taux de change',
+ 'Exchange rate missing!' => 'Taux de change manquant!',
+ 'From' => 'De',
+ 'Invoice' => 'Facture',
+ 'Invoices' => 'Factures',
+ 'Language' => 'Langue',
+ 'Memo' => 'Mémo',
+ 'Message' => 'Message',
+ 'Number' => 'Numéro',
+ 'PDF' => 'PDF',
+ 'Payment' => 'Paiement',
+ 'Payment posted!' => 'Paiement enregistré!',
+ 'Payments' => 'Paiements',
+ 'Post' => 'Enregistrer',
+ 'Postscript' => 'Postcript',
+ 'Prepayment' => 'Paiement à l\'avance',
+ 'Print' => 'Imprimer',
+ 'Project not on file!' => 'Projet absent du fichier!',
+ 'Receipt' => 'Reçu',
+ 'Receipt posted!' => 'Reçu enregistré!',
+ 'Receipts' => 'Reçus',
+ 'Reference' => 'Référence',
+ 'Screen' => 'Écran',
+ 'Select' => 'Sélectionner',
+ 'Select all' => 'Tout sélectionner',
+ 'Select from one of the names below' => 'Sélectionner un des noms ci-dessous',
+ 'Select from one of the projects below' => 'Sélectionner un des projets ci-dessous',
+ 'Select postscript or PDF!' => 'Sélectionner Postscript ou PDF!',
+ 'Source' => 'Source',
+ 'Startdate' => 'Date de début',
+ 'Subject' => 'Objet',
+ 'To' => 'À',
+ 'Update' => 'Mettre à jour',
+ 'Vendor' => 'Fournisseur',
+ 'Vendor not on file!' => 'Fournisseur absent du fichier!',
+ 'Warning!' => 'Attention!',
+ 'sent' => 'envoyé',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuer' => 'continue',
+ 'enregistrer' => 'post',
+ 'imprimer' => 'print',
+ 'tout_sélectionner' => 'select_all',
+ 'mettre_à_jour' => 'update',
+};
+
+1;
+
diff --git a/locale/ca_fr/ct b/locale/ca_fr/ct
new file mode 100755
index 00000000..01d9c217
--- /dev/null
+++ b/locale/ca_fr/ct
@@ -0,0 +1,186 @@
+$self{texts} = {
+ 'AP Transaction' => 'Écriture dépenses',
+ 'AP Transactions' => 'Mouvements - Dépenses',
+ 'AR Transaction' => 'Écriture recettes',
+ 'AR Transactions' => 'Mouvements - Recettes',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Active' => 'Actif',
+ 'Add Customer' => 'Ajouter client',
+ 'Add Vendor' => 'Ajouter fournisseur',
+ 'Address' => 'Adresse',
+ 'All' => 'Tous',
+ 'Amount' => 'Montant',
+ 'BIC' => 'BIC',
+ 'Bcc' => 'Copie cachée',
+ 'Billing Address' => 'Adresse de facturation',
+ 'Break' => 'Rupture',
+ 'Cannot delete customer!' => 'Impossible de supprimer le client!',
+ 'Cannot delete vendor!' => 'Impossible de supprimer le fournisseur!',
+ 'Cc' => 'Copie',
+ 'City' => 'Ville',
+ 'Closed' => 'Clôturé',
+ 'Company Name' => 'Nom de société',
+ 'Contact' => 'Contact',
+ 'Continue' => 'Continuer',
+ 'Cost' => 'Coût',
+ 'Could not save pricelist!' => 'Enregistrement de la liste de prix impossible!',
+ 'Country' => 'Pays',
+ 'Credit Limit' => 'Encours autorisé',
+ 'Curr' => 'Dev.',
+ 'Currency' => 'Devise',
+ 'Customer History' => 'Historique client',
+ 'Customer Number' => 'Numéro de client',
+ 'Customer deleted!' => 'Client supprimé!',
+ 'Customer saved!' => 'Client enregistré!',
+ 'Customers' => 'Clients',
+ 'Delete' => 'Supprimer',
+ 'Delivery Date' => 'Date de livraison',
+ 'Description' => 'Description',
+ 'Detail' => 'Détail',
+ 'Discount' => 'Remise',
+ 'E-mail' => 'E-mail',
+ 'Edit Customer' => 'Modifier client',
+ 'Edit Vendor' => 'Modifier fournisseur',
+ 'Employee' => 'Employé',
+ 'Enddate' => 'Date de fin',
+ 'Fax' => 'Fax',
+ 'From' => 'De',
+ 'GIFI' => 'Code d\'identification comptable ou fiscale',
+ 'Group' => 'Groupe',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Inclure dans l\'état',
+ 'Invoice' => 'Facture',
+ 'Item already on pricelist!' => 'Objet déjà présent dans la liste des prix',
+ 'Item not on file!' => 'Objet non-listé!',
+ 'Language' => 'Langue',
+ 'Leadtime' => 'Délai',
+ 'Manager' => 'Gestionnaire',
+ 'Name' => 'Nom',
+ 'Name missing!' => 'Nom manquant!',
+ 'No.' => 'N°',
+ 'Notes' => 'Notes',
+ 'Number' => 'Numéro',
+ 'Open' => 'Ouvert',
+ 'Order' => 'Commande',
+ 'Orphaned' => 'Orphelin',
+ 'POS' => 'Point de vente',
+ 'Phone' => 'Tél.',
+ 'Pricegroup' => 'Groupe de prix',
+ 'Pricelist' => 'Liste de prix',
+ 'Project Number' => 'Numéro de projet',
+ 'Purchase Order' => 'Commande d\'achat',
+ 'Purchase Orders' => 'Commandes d\'achat',
+ 'Qty' => 'Qté',
+ 'Quotation' => 'Devis',
+ 'Quotations' => 'Devis',
+ 'RFQ' => 'Demande de devis',
+ 'Request for Quotations' => 'Demandes de devis',
+ 'SIC' => 'Code secteur économique',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Facture de vente',
+ 'Sales Invoices' => 'Factures de vente',
+ 'Sales Order' => 'Commande de vente',
+ 'Sales Orders' => 'Commandes de vente',
+ 'Salesperson' => 'Vendeur',
+ 'Save' => 'Enregistrer',
+ 'Save Pricelist' => 'Enregistrer la liste de prix',
+ 'Save as new' => 'Enregistrer comme nouveau',
+ 'Search' => 'Recherche',
+ 'Sell Price' => 'Prix de vente',
+ 'Serial Number' => 'Numéro de série',
+ 'Shipping Address' => 'Adresse d\'envoi',
+ 'Startdate' => 'Date de début',
+ 'State' => 'Etat',
+ 'State/Province' => 'Région/État',
+ 'Sub-contract GIFI' => 'Code d\'identification comptable ou fiscale - Sous-traitance',
+ 'Subtotal' => 'Sous total',
+ 'Summary' => 'Résumé',
+ 'Tax' => 'Taxe',
+ 'Tax Included' => 'Taxe incluse',
+ 'Tax Number' => 'Numéro de TVA',
+ 'Tax Number / SSN' => 'Numéro de TVA / Sécurité Sociale',
+ 'Taxable' => 'Imposable',
+ 'Terms' => 'Crédit limité à',
+ 'To' => 'À',
+ 'Total' => 'Total',
+ 'Type of Business' => 'Type d\'affaire',
+ 'Unit' => 'Unité',
+ 'Update' => 'Mettre à jour',
+ 'Vendor History' => 'Historique fournisseurs',
+ 'Vendor Invoice' => 'Facture d\'achat',
+ 'Vendor Invoices' => 'Factures d\'achat',
+ 'Vendor Number' => 'Numéro de fournisseur',
+ 'Vendor deleted!' => 'Fournisseur supprimé!',
+ 'Vendor saved!' => 'Fournisseur enregistré!',
+ 'Vendors' => 'Fournisseurs',
+ 'Zip/Postal Code' => 'Code postal',
+ 'days' => 'jours',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'Écriture_dépenses' => 'ap_transaction',
+ 'Écriture_recettes' => 'ar_transaction',
+ 'ajouter_client' => 'add_customer',
+ 'ajouter_fournisseur' => 'add_vendor',
+ 'continuer' => 'continue',
+ 'supprimer' => 'delete',
+ 'point_de_vente' => 'pos',
+ 'liste_de_prix' => 'pricelist',
+ 'commande_d\'achat' => 'purchase_order',
+ 'devis' => 'quotation',
+ 'demande_de_devis' => 'rfq',
+ 'facture_de_vente' => 'sales_invoice',
+ 'commande_de_vente' => 'sales_order',
+ 'enregistrer' => 'save',
+ 'enregistrer_la_liste_de_prix' => 'save_pricelist',
+ 'enregistrer_comme_nouveau' => 'save_as_new',
+ 'mettre_à_jour' => 'update',
+ 'facture_d\'achat' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/ca_fr/gl b/locale/ca_fr/gl
new file mode 100755
index 00000000..8c14d415
--- /dev/null
+++ b/locale/ca_fr/gl
@@ -0,0 +1,159 @@
+$self{texts} = {
+ 'AP Transaction' => 'Écriture dépenses',
+ 'AR Transaction' => 'Écriture recettes',
+ 'Account' => 'Compte',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Add Cash Transfer Transaction' => 'Saisie d\'écriture - Virements internes',
+ 'Add General Ledger Transaction' => 'Ajouter une écriture au grand-livre',
+ 'Address' => 'Adresse',
+ 'All' => 'Tous',
+ 'Amount' => 'Montant',
+ 'Apr' => 'Avril',
+ 'April' => 'Avril',
+ 'Are you sure you want to delete Transaction' => 'Êtes vous sûr de vouloir effacer la saisie?',
+ 'Asset' => 'Actif',
+ 'Aug' => 'Août',
+ 'August' => 'Août',
+ 'Balance' => 'Solde',
+ 'Bcc' => 'Copie cachée',
+ 'Cannot delete transaction!' => 'Impossible de supprimer l\'écriture!',
+ 'Cannot post transaction for a closed period!' => 'Impossible d\'enregistrer l\'écriture sur un exercice clos!',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => 'Impossible d\'enregistrer l\'écriture avec un débit et un crédit sur le même compte!',
+ 'Cannot post transaction!' => 'Impossible d\'enregistrer l\'écriture!',
+ 'Cc' => 'Copie',
+ 'Confirm!' => 'Confirmer!',
+ 'Continue' => 'Continuer',
+ 'Credit' => 'Crédit',
+ 'Current' => 'En cours',
+ 'Customer not on file!' => 'Client absent du fichier!',
+ 'Date' => 'Date',
+ 'Debit' => 'Débit',
+ 'Dec' => 'Déc.',
+ 'December' => 'Décembre',
+ 'Delete' => 'Supprimer',
+ 'Department' => 'Service',
+ 'Description' => 'Description',
+ 'E-mail' => 'E-mail',
+ 'Edit Cash Transfer Transaction' => 'Modifier virements internes',
+ 'Edit General Ledger Transaction' => 'Modifier écriture grand-livre',
+ 'Equity' => 'Capital',
+ 'Expense' => 'Dépenses',
+ 'FX' => 'Devises',
+ 'Feb' => 'Fév.',
+ 'February' => 'Février',
+ 'From' => 'De',
+ 'GIFI' => 'Code d\'identification comptable ou fiscale',
+ 'GL Transaction' => 'Transaction grand-livre',
+ 'General Ledger' => 'Grand-livre',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Inclure dans l\'état',
+ 'Income' => 'Recettes',
+ 'Jan' => 'Jan.',
+ 'January' => 'Janvier',
+ 'Jul' => 'Juill.',
+ 'July' => 'Juillet',
+ 'Jun' => 'Juin',
+ 'June' => 'Juin',
+ 'Liability' => 'Passif',
+ 'Mar' => 'Mars',
+ 'March' => 'Mars',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Mémo',
+ 'Message' => 'Message',
+ 'Month' => 'Mois',
+ 'Notes' => 'Notes',
+ 'Nov' => 'Nov.',
+ 'November' => 'Novembre',
+ 'Number' => 'Numéro',
+ 'Oct' => 'Oct.',
+ 'October' => 'Octobre',
+ 'Out of balance transaction!' => 'Écriture non-soldée!',
+ 'Period' => 'Période',
+ 'Post' => 'Enregistrer',
+ 'Post as new' => 'Enregistrer comme nouveau',
+ 'Print' => 'Imprimer',
+ 'Project' => 'Projet',
+ 'Project not on file!' => 'Projet absent du fichier!',
+ 'Quarter' => 'Trimestre',
+ 'R' => 'R',
+ 'Reference' => 'Référence',
+ 'Reports' => 'Rapports',
+ 'Sales Invoice ' => 'Facture de vente ',
+ 'Select from one of the names below' => 'Sélectionner un des noms ci-dessous',
+ 'Select from one of the projects below' => 'Sélectionner un des projets ci-dessous',
+ 'Sep' => 'Sept.',
+ 'September' => 'Septembre',
+ 'Source' => 'Source',
+ 'Startdate' => 'Date de début',
+ 'Subject' => 'Objet',
+ 'Subtotal' => 'Sous total',
+ 'To' => 'À',
+ 'Transaction Date missing!' => 'Date d\'écriture manquante!',
+ 'Transaction deleted!' => 'Écriture supprimée!',
+ 'Transaction posted!' => 'Écriture enregistrée!',
+ 'Update' => 'Mettre à jour',
+ 'Vendor Invoice ' => 'Facture d\'achat ',
+ 'Vendor not on file!' => 'Fournisseur absent du fichier!',
+ 'Warning!' => 'Attention!',
+ 'Year' => 'Année',
+ 'Yes' => 'Oui',
+ 'sent' => 'envoyé',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'Écriture_dépenses' => 'ap_transaction',
+ 'Écriture_recettes' => 'ar_transaction',
+ 'continuer' => 'continue',
+ 'supprimer' => 'delete',
+ 'transaction_grand_livre' => 'gl_transaction',
+ 'enregistrer' => 'post',
+ 'enregistrer_comme_nouveau' => 'post_as_new',
+ 'facture_de_vente_' => 'sales_invoice_',
+ 'mettre_à_jour' => 'update',
+ 'facture_d\'achat_' => 'vendor_invoice_',
+ 'oui' => 'yes',
+};
+
+1;
+
diff --git a/locale/ca_fr/hr b/locale/ca_fr/hr
new file mode 100755
index 00000000..0d47870c
--- /dev/null
+++ b/locale/ca_fr/hr
@@ -0,0 +1,117 @@
+$self{texts} = {
+ 'AP' => 'Dépenses',
+ 'Above' => 'En dessus',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Active' => 'Actif',
+ 'Add Deduction' => 'Ajouter prélèvement',
+ 'Add Employee' => 'Ajouter employé',
+ 'Address' => 'Adresse',
+ 'Administrator' => 'Administrateur',
+ 'After Deduction' => 'Après prélèvement',
+ 'All' => 'Tous',
+ 'Allowances' => 'Indemnités',
+ 'Amount' => 'Montant',
+ 'Amount missing!' => 'Montant manquant!',
+ 'BIC' => 'BIC',
+ 'Based on' => 'Basé sur',
+ 'Before Deduction' => 'Avant prélèvement',
+ 'Below' => 'En dessous',
+ 'City' => 'Ville',
+ 'Continue' => 'Continuer',
+ 'Country' => 'Pays',
+ 'DOB' => 'Date de naissance',
+ 'Deduct after' => 'Prélèver après',
+ 'Deduction deleted!' => 'Prélèvement supprimé!',
+ 'Deduction saved!' => 'Prélèvement enrégistré!',
+ 'Deductions' => 'Prélèvements',
+ 'Delete' => 'Supprimer',
+ 'Description' => 'Description',
+ 'Description missing!' => 'Description manquante!',
+ 'E-mail' => 'E-mail',
+ 'Edit Deduction' => 'Modifier prélèvement',
+ 'Edit Employee' => 'Modifier employé',
+ 'Employee' => 'Employé',
+ 'Employee Name' => 'Nom employé',
+ 'Employee Number' => 'Numéro d\'employé',
+ 'Employee deleted!' => 'Employé effacé!',
+ 'Employee pays' => 'Employé pays',
+ 'Employee saved!' => 'Employé enregistré',
+ 'Employees' => 'Employés',
+ 'Employer' => 'Employeur',
+ 'Employer pays' => 'Employeur pays',
+ 'Enddate' => 'Date de fin',
+ 'Expense' => 'Dépenses',
+ 'From' => 'De',
+ 'Home Phone' => 'Téléphone privé',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Inclure dans l\'état',
+ 'Login' => 'Login',
+ 'Manager' => 'Gestionnaire',
+ 'Maximum' => 'Maximum',
+ 'Name' => 'Nom',
+ 'Name missing!' => 'Nom manquant!',
+ 'Notes' => 'Notes',
+ 'Number' => 'Numéro',
+ 'Orphaned' => 'Orphelin',
+ 'Payroll Deduction' => 'Prélèvement salaire',
+ 'Rate' => 'Taux',
+ 'Rate missing!' => 'Taux manquant!',
+ 'Role' => 'Rôle',
+ 'S' => 'S',
+ 'SSN' => 'Numéro sécurité sociale',
+ 'Sales' => 'Ventes',
+ 'Save' => 'Enregistrer',
+ 'Save as new' => 'Enregistrer comme nouveau',
+ 'Startdate' => 'Date de début',
+ 'State/Province' => 'Région/État',
+ 'Supervisor' => 'Chef de service',
+ 'To' => 'À',
+ 'Update' => 'Mettre à jour',
+ 'User' => 'Utilisateur',
+ 'Work Phone' => 'Téléphone travail',
+ 'Zip/Postal Code' => 'Code postal',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'ajouter_prélèvement' => 'add_deduction',
+ 'ajouter_employé' => 'add_employee',
+ 'continuer' => 'continue',
+ 'supprimer' => 'delete',
+ 'enregistrer' => 'save',
+ 'enregistrer_comme_nouveau' => 'save_as_new',
+ 'mettre_à_jour' => 'update',
+};
+
+1;
+
diff --git a/locale/ca_fr/ic b/locale/ca_fr/ic
new file mode 100755
index 00000000..b8873f81
--- /dev/null
+++ b/locale/ca_fr/ic
@@ -0,0 +1,285 @@
+$self{texts} = {
+ 'A' => 'A',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Accounts' => 'Comptes',
+ 'Accrual' => 'Accumulation',
+ 'Active' => 'Actif',
+ 'Add' => 'Ajouter',
+ 'Add Assembly' => 'Ajouter produit',
+ 'Add Labor/Overhead' => 'Ajouter coût de production',
+ 'Add Part' => 'Ajouter marchandise',
+ 'Add Purchase Order' => 'Établir commande d\'achat',
+ 'Add Quotation' => 'Établir devis',
+ 'Add Request for Quotation' => 'Établir demande de devis',
+ 'Add Sales Order' => 'Établir commande de vente',
+ 'Add Service' => 'Ajouter prestation',
+ 'Address' => 'Adresse',
+ 'Apr' => 'Avril',
+ 'April' => 'Avril',
+ 'Assemblies' => 'Produits finis',
+ 'Assemblies restocked!' => 'Renvoyer produits vers stock!',
+ 'Assembly' => 'Produit fini',
+ 'Attachment' => 'Pièce jointe',
+ 'Aug' => 'Août',
+ 'August' => 'Août',
+ 'BOM' => 'Nomenclature composantes',
+ 'Bcc' => 'Copie cachée',
+ 'Billing Address' => 'Adresse de facturation',
+ 'Bin' => 'Lieu stockage',
+ 'Bin List' => 'Liste des emplacements',
+ 'Break' => 'Rupture',
+ 'COGS' => 'Coût des produits vendus',
+ 'COGS account does not exist!' => 'Compte des produits vendus inexistant!',
+ 'Cannot create Assembly' => 'Impossible de créer le produit fini',
+ 'Cannot create Labor' => 'Impossible de créer le coût de production',
+ 'Cannot create Part' => 'Impossible de créer la marchandise',
+ 'Cannot create Service' => 'Impossible de créer le service',
+ 'Cannot delete item!' => 'Impossible de supprimer l\'objet!',
+ 'Cannot stock assemblies!' => 'Impossible de stocker l\'assemblage!',
+ 'Cash' => 'Financier',
+ 'Cc' => 'Copie',
+ 'Check Inventory' => 'Listing chèques',
+ 'City' => 'Ville',
+ 'Closed' => 'Clôturé',
+ 'Company Name' => 'Nom de société',
+ 'Components' => 'Composants',
+ 'Contact' => 'Contact',
+ 'Continue' => 'Continuer',
+ 'Copies' => 'Copies',
+ 'Cost' => 'Coût',
+ 'Country' => 'Pays',
+ 'Curr' => 'Dev.',
+ 'Currency' => 'Devise',
+ 'Customer' => 'Client',
+ 'Customer Number' => 'Numéro de client',
+ 'Customer not on file!' => 'Client absent du fichier!',
+ 'Date' => 'Date',
+ 'Dec' => 'Déc.',
+ 'December' => 'Décembre',
+ 'Delete' => 'Supprimer',
+ 'Delivery Date' => 'Date de livraison',
+ 'Description' => 'Description',
+ 'Detail' => 'Détail',
+ 'Drawing' => 'Dessin',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Adresse e-mail manquante!',
+ 'E-mailed' => 'E-mail envoyé',
+ 'Edit Assembly' => 'Modifier produit fini / transformé',
+ 'Edit Labor/Overhead' => 'Modifier coût de production',
+ 'Edit Part' => 'Modifier marchandise',
+ 'Edit Service' => 'Modifier service',
+ 'Employee' => 'Employé',
+ 'Expense' => 'Dépenses',
+ 'Expense account does not exist!' => 'Compte de dépenses inexistant',
+ 'Extended' => 'Prix total',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Fév.',
+ 'February' => 'Février',
+ 'From' => 'De',
+ 'Group' => 'Groupe',
+ 'Image' => 'Image',
+ 'In-line' => 'En ligne',
+ 'Include in Report' => 'Inclure dans l\'état',
+ 'Income' => 'Recettes',
+ 'Income account does not exist!' => 'Compte de recettes inexistant',
+ 'Individual Items' => 'Composition en marchandises individuelles',
+ 'Inventory' => 'Inventaire',
+ 'Inventory account does not exist!' => 'Compte de stock inexistant',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'La quantité en stock doit être zéro avant de pouvoir annuler cet assemblage!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'La quantité en stock doit être zero avant de pouvoir annuler cette pièce!',
+ 'Invoice' => 'Facture',
+ 'Invoice Date missing!' => 'Date de facture manquante!',
+ 'Invoice Number' => 'Numéro de facture',
+ 'Invoice Number missing!' => 'Numéro de facture manquant!',
+ 'Item deleted!' => 'Objet supprimé!',
+ 'Item not on file!' => 'Objet non-listé!',
+ 'Items' => 'Objets',
+ 'Jan' => 'Jan.',
+ 'January' => 'Janvier',
+ 'Jul' => 'Juill.',
+ 'July' => 'Juillet',
+ 'Jun' => 'Juin',
+ 'June' => 'Juin',
+ 'Labor/Overhead' => 'Coût de production',
+ 'Leadtime' => 'Délai',
+ 'Line Total' => 'Total ligne',
+ 'Link Accounts' => 'Lier comptes',
+ 'List' => 'Liste',
+ 'List Price' => 'Prix de revient',
+ 'Make' => 'Marque',
+ 'Mar' => 'Mars',
+ 'March' => 'Mars',
+ 'Markup' => 'Majoration',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Message' => 'Message',
+ 'Microfiche' => 'Microfiche',
+ 'Model' => 'Modèle',
+ 'Name' => 'Nom',
+ 'No.' => 'N°',
+ 'Notes' => 'Notes',
+ 'Nov' => 'Nov.',
+ 'November' => 'Novembre',
+ 'Number' => 'Numéro',
+ 'Number missing in Row' => 'Numéro manquant dans ligne',
+ 'Obsolete' => 'Obsolète',
+ 'Oct' => 'Oct.',
+ 'October' => 'Octobre',
+ 'On Hand' => 'En Stock / disponible',
+ 'Open' => 'Ouvert',
+ 'Order' => 'Commande',
+ 'Order Date missing!' => 'Date de commande manquante!',
+ 'Order Number' => 'Numéro de commande',
+ 'Order Number missing!' => 'Numéro de commande manquant!',
+ 'Orphaned' => 'Orphelin',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Liste d\'envoi',
+ 'Packing List Date missing!' => 'La liste d\'envoi n\'a pas de date!',
+ 'Packing List Number missing!' => 'Le numéro de la liste d\'envoi est manquant!',
+ 'Part' => 'Marchandise',
+ 'Parts' => 'Marchandises',
+ 'Period' => 'Période',
+ 'Phone' => 'Tél.',
+ 'Pick List' => 'Liste de sélection',
+ 'Postscript' => 'Postcript',
+ 'Price' => 'Prix',
+ 'Pricegroup' => 'Groupe de prix',
+ 'Printed' => 'Imprimé',
+ 'Project' => 'Projet',
+ 'Purchase Order' => 'Commande d\'achat',
+ 'Purchase Orders' => 'Commandes d\'achat',
+ 'Qty' => 'Qté',
+ 'Quantity exceeds available units to stock!' => 'La quantité dépasse le nombre d\'unités en stock',
+ 'Quotation' => 'Devis',
+ 'Quotation Date missing!' => 'Date de devis manqante!',
+ 'Quotation Number missing!' => 'Numéro de devis manquant!',
+ 'Quotations' => 'Devis',
+ 'RFQ' => 'Demande de devis',
+ 'ROP' => 'Seuil réapprovisionnement',
+ 'Recd' => 'Reçu',
+ 'Required by' => 'Requis pour',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Facture de vente',
+ 'Sales Invoices' => 'Factures de vente',
+ 'Sales Order' => 'Commande de vente',
+ 'Sales Orders' => 'Commandes de vente',
+ 'Save' => 'Enregistrer',
+ 'Save as new' => 'Enregistrer comme nouveau',
+ 'Screen' => 'Écran',
+ 'Select from one of the names below' => 'Sélectionner un des noms ci-dessous',
+ 'Select txt, postscript or PDF!' => 'Sélectionner Txt, Postscript ou PDF!',
+ 'Sell' => 'Vente',
+ 'Sell Price' => 'Prix de vente',
+ 'Sep' => 'Sept.',
+ 'September' => 'Septembre',
+ 'Serial No.' => 'N° série',
+ 'Serial Number' => 'Numéro de série',
+ 'Service' => 'Prestation de service',
+ 'Services' => 'Prestations de services',
+ 'Ship' => 'Expédier',
+ 'Ship to' => 'Expédier à',
+ 'Shipping Address' => 'Adresse d\'envoi',
+ 'Short' => 'Court',
+ 'State/Province' => 'Région/État',
+ 'Stock' => 'Stock',
+ 'Stock Assembly' => 'Stock de produits',
+ 'Subject' => 'Objet',
+ 'Subtotal' => 'Sous total',
+ 'Summary' => 'Résumé',
+ 'Tax' => 'Taxe',
+ 'To' => 'À',
+ 'Top Level' => 'Description principale',
+ 'Translation not on file!' => 'Pas de traduction dans le fichier',
+ 'Unit' => 'Unité',
+ 'Update' => 'Mettre à jour',
+ 'Updated' => 'Mis à jour',
+ 'Vendor' => 'Fournisseur',
+ 'Vendor Invoice' => 'Facture d\'achat',
+ 'Vendor Invoices' => 'Factures d\'achat',
+ 'Vendor Number' => 'Numéro de fournisseur',
+ 'Vendor not on file!' => 'Fournisseur absent du fichier!',
+ 'Warehouse' => 'Entrepôt',
+ 'Weight' => 'Poids',
+ 'What type of item is this?' => 'De quel type est cet objet?',
+ 'Work Order' => 'Fiche de traitement',
+ 'Year' => 'Année',
+ 'Zip/Postal Code' => 'Code postal',
+ 'days' => 'jours',
+ 'sent' => 'envoyé',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'ajouter_produit' => 'add_assembly',
+ 'ajouter_coût_de_production' => 'add_labor_overhead',
+ 'ajouter_marchandise' => 'add_part',
+ 'ajouter_prestation' => 'add_service',
+ 'continuer' => 'continue',
+ 'supprimer' => 'delete',
+ 'modifier_produit_fini___transformé' => 'edit_assembly',
+ 'modifier_marchandise' => 'edit_part',
+ 'modifier_service' => 'edit_service',
+ 'enregistrer' => 'save',
+ 'enregistrer_comme_nouveau' => 'save_as_new',
+ 'mettre_à_jour' => 'update',
+};
+
+1;
+
diff --git a/locale/ca_fr/io b/locale/ca_fr/io
new file mode 100755
index 00000000..f2b61338
--- /dev/null
+++ b/locale/ca_fr/io
@@ -0,0 +1,130 @@
+$self{texts} = {
+ 'Add Purchase Order' => 'Établir commande d\'achat',
+ 'Add Quotation' => 'Établir devis',
+ 'Add Request for Quotation' => 'Établir demande de devis',
+ 'Add Sales Order' => 'Établir commande de vente',
+ 'Address' => 'Adresse',
+ 'Apr' => 'Avril',
+ 'April' => 'Avril',
+ 'Attachment' => 'Pièce jointe',
+ 'Aug' => 'Août',
+ 'August' => 'Août',
+ 'Bcc' => 'Copie cachée',
+ 'Billing Address' => 'Adresse de facturation',
+ 'Bin' => 'Lieu stockage',
+ 'Bin List' => 'Liste des emplacements',
+ 'Cc' => 'Copie',
+ 'City' => 'Ville',
+ 'Company Name' => 'Nom de société',
+ 'Contact' => 'Contact',
+ 'Continue' => 'Continuer',
+ 'Copies' => 'Copies',
+ 'Country' => 'Pays',
+ 'Customer Number' => 'Numéro de client',
+ 'Date' => 'Date',
+ 'Dec' => 'Déc.',
+ 'December' => 'Décembre',
+ 'Delivery Date' => 'Date de livraison',
+ 'Description' => 'Description',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Adresse e-mail manquante!',
+ 'E-mailed' => 'E-mail envoyé',
+ 'Extended' => 'Prix total',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Fév.',
+ 'February' => 'Février',
+ 'Group' => 'Groupe',
+ 'In-line' => 'En ligne',
+ 'Invoice' => 'Facture',
+ 'Invoice Date missing!' => 'Date de facture manquante!',
+ 'Invoice Number missing!' => 'Numéro de facture manquant!',
+ 'Item not on file!' => 'Objet non-listé!',
+ 'Jan' => 'Jan.',
+ 'January' => 'Janvier',
+ 'Jul' => 'Juill.',
+ 'July' => 'Juillet',
+ 'Jun' => 'Juin',
+ 'June' => 'Juin',
+ 'Mar' => 'Mars',
+ 'March' => 'Mars',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Message' => 'Message',
+ 'Nov' => 'Nov.',
+ 'November' => 'Novembre',
+ 'Number' => 'Numéro',
+ 'Number missing in Row' => 'Numéro manquant dans ligne',
+ 'Oct' => 'Oct.',
+ 'October' => 'Octobre',
+ 'Order Date missing!' => 'Date de commande manquante!',
+ 'Order Number missing!' => 'Numéro de commande manquant!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Liste d\'envoi',
+ 'Packing List Date missing!' => 'La liste d\'envoi n\'a pas de date!',
+ 'Packing List Number missing!' => 'Le numéro de la liste d\'envoi est manquant!',
+ 'Part' => 'Marchandise',
+ 'Phone' => 'Tél.',
+ 'Pick List' => 'Liste de sélection',
+ 'Postscript' => 'Postcript',
+ 'Price' => 'Prix',
+ 'Printed' => 'Imprimé',
+ 'Project' => 'Projet',
+ 'Purchase Order' => 'Commande d\'achat',
+ 'Qty' => 'Qté',
+ 'Quotation' => 'Devis',
+ 'Quotation Date missing!' => 'Date de devis manqante!',
+ 'Quotation Number missing!' => 'Numéro de devis manquant!',
+ 'Recd' => 'Reçu',
+ 'Required by' => 'Requis pour',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Commande de vente',
+ 'Screen' => 'Écran',
+ 'Select txt, postscript or PDF!' => 'Sélectionner Txt, Postscript ou PDF!',
+ 'Sep' => 'Sept.',
+ 'September' => 'Septembre',
+ 'Serial No.' => 'N° série',
+ 'Service' => 'Prestation de service',
+ 'Ship' => 'Expédier',
+ 'Ship to' => 'Expédier à',
+ 'Shipping Address' => 'Adresse d\'envoi',
+ 'State/Province' => 'Région/État',
+ 'Subject' => 'Objet',
+ 'Subtotal' => 'Sous total',
+ 'To' => 'À',
+ 'Translation not on file!' => 'Pas de traduction dans le fichier',
+ 'Unit' => 'Unité',
+ 'Vendor Number' => 'Numéro de fournisseur',
+ 'What type of item is this?' => 'De quel type est cet objet?',
+ 'Work Order' => 'Fiche de traitement',
+ 'Zip/Postal Code' => 'Code postal',
+ 'sent' => 'envoyé',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'continuer' => 'continue',
+};
+
+1;
+
diff --git a/locale/ca_fr/ir b/locale/ca_fr/ir
new file mode 100755
index 00000000..c887cf1b
--- /dev/null
+++ b/locale/ca_fr/ir
@@ -0,0 +1,224 @@
+$self{texts} = {
+ 'Account' => 'Compte',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Add Purchase Order' => 'Établir commande d\'achat',
+ 'Add Quotation' => 'Établir devis',
+ 'Add Request for Quotation' => 'Établir demande de devis',
+ 'Add Sales Order' => 'Établir commande de vente',
+ 'Add Vendor Invoice' => 'Établir facture d\'achat',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Montant',
+ 'Apr' => 'Avril',
+ 'April' => 'Avril',
+ 'Are you sure you want to delete Invoice Number' => 'Êtes-vous sûr de vouloir supprimer la facture n°',
+ 'Attachment' => 'Pièce jointe',
+ 'Aug' => 'Août',
+ 'August' => 'Août',
+ 'Bcc' => 'Copie cachée',
+ 'Billing Address' => 'Adresse de facturation',
+ 'Bin' => 'Lieu stockage',
+ 'Bin List' => 'Liste des emplacements',
+ 'Cannot delete invoice!' => 'Impossible de supprimer la facture!',
+ 'Cannot post invoice for a closed period!' => 'Impossible d\'enregistrer la facture sur un exercice clos!',
+ 'Cannot post invoice!' => 'Impossible d\'enregistrer la facture!',
+ 'Cannot post payment for a closed period!' => 'Impossible d\'enregistrer le paiement sur un exercice clos!',
+ 'Cc' => 'Copie',
+ 'City' => 'Ville',
+ 'Company Name' => 'Nom de société',
+ 'Confirm!' => 'Confirmer!',
+ 'Contact' => 'Contact',
+ 'Continue' => 'Continuer',
+ 'Copies' => 'Copies',
+ 'Country' => 'Pays',
+ 'Credit Limit' => 'Encours autorisé',
+ 'Currency' => 'Devise',
+ 'Customer Number' => 'Numéro de client',
+ 'Customer not on file!' => 'Client absent du fichier!',
+ 'Date' => 'Date',
+ 'Dec' => 'Déc.',
+ 'December' => 'Décembre',
+ 'Delete' => 'Supprimer',
+ 'Delivery Date' => 'Date de livraison',
+ 'Department' => 'Service',
+ 'Description' => 'Description',
+ 'Due Date' => 'Échéance',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Adresse e-mail manquante!',
+ 'E-mailed' => 'E-mail envoyé',
+ 'Edit Vendor Invoice' => 'Modifier facture de fournisseur',
+ 'Exch' => 'Change',
+ 'Exchange Rate' => 'Taux de change',
+ 'Exchange rate for payment missing!' => 'Taux de change manquant pour le paiement!',
+ 'Exchange rate missing!' => 'Taux de change manquant!',
+ 'Extended' => 'Prix total',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Fév.',
+ 'February' => 'Février',
+ 'Group' => 'Groupe',
+ 'In-line' => 'En ligne',
+ 'Internal Notes' => 'Notes internes',
+ 'Invoice' => 'Facture',
+ 'Invoice Date' => 'Date de facturation',
+ 'Invoice Date missing!' => 'Date de facture manquante!',
+ 'Invoice Number' => 'Numéro de facture',
+ 'Invoice Number missing!' => 'Numéro de facture manquant!',
+ 'Invoice deleted!' => 'Facture supprimée!',
+ 'Item not on file!' => 'Objet non-listé!',
+ 'Jan' => 'Jan.',
+ 'January' => 'Janvier',
+ 'Jul' => 'Juill.',
+ 'July' => 'Juillet',
+ 'Jun' => 'Juin',
+ 'June' => 'Juin',
+ 'Language' => 'Langue',
+ 'Mar' => 'Mars',
+ 'March' => 'Mars',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Mémo',
+ 'Message' => 'Message',
+ 'Notes' => 'Notes',
+ 'Nov' => 'Nov.',
+ 'November' => 'Novembre',
+ 'Number' => 'Numéro',
+ 'Number missing in Row' => 'Numéro manquant dans ligne',
+ 'Oct' => 'Oct.',
+ 'October' => 'Octobre',
+ 'Order Date missing!' => 'Date de commande manquante!',
+ 'Order Number' => 'Numéro de commande',
+ 'Order Number missing!' => 'Numéro de commande manquant!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Liste d\'envoi',
+ 'Packing List Date missing!' => 'La liste d\'envoi n\'a pas de date!',
+ 'Packing List Number missing!' => 'Le numéro de la liste d\'envoi est manquant!',
+ 'Part' => 'Marchandise',
+ 'Payment date missing!' => 'Date de paiement manquante!',
+ 'Payments' => 'Paiements',
+ 'Phone' => 'Tél.',
+ 'Pick List' => 'Liste de sélection',
+ 'Post' => 'Enregistrer',
+ 'Post as new' => 'Enregistrer comme nouveau',
+ 'Postscript' => 'Postcript',
+ 'Price' => 'Prix',
+ 'Print' => 'Imprimer',
+ 'Printed' => 'Imprimé',
+ 'Project' => 'Projet',
+ 'Project not on file!' => 'Projet absent du fichier!',
+ 'Purchase Order' => 'Commande d\'achat',
+ 'Qty' => 'Qté',
+ 'Quotation' => 'Devis',
+ 'Quotation Date missing!' => 'Date de devis manqante!',
+ 'Quotation Number missing!' => 'Numéro de devis manquant!',
+ 'Recd' => 'Reçu',
+ 'Record in' => 'Enregistrer dans',
+ 'Reference' => 'Référence',
+ 'Remaining' => 'Restant',
+ 'Required by' => 'Requis pour',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Commande de vente',
+ 'Screen' => 'Écran',
+ 'Select from one of the names below' => 'Sélectionner un des noms ci-dessous',
+ 'Select from one of the projects below' => 'Sélectionner un des projets ci-dessous',
+ 'Select txt, postscript or PDF!' => 'Sélectionner Txt, Postscript ou PDF!',
+ 'Sep' => 'Sept.',
+ 'September' => 'Septembre',
+ 'Serial No.' => 'N° série',
+ 'Service' => 'Prestation de service',
+ 'Ship' => 'Expédier',
+ 'Ship to' => 'Expédier à',
+ 'Shipping Address' => 'Adresse d\'envoi',
+ 'Source' => 'Source',
+ 'Startdate' => 'Date de début',
+ 'State/Province' => 'Région/État',
+ 'Subject' => 'Objet',
+ 'Subtotal' => 'Sous total',
+ 'Tax Included' => 'Taxe incluse',
+ 'To' => 'À',
+ 'Total' => 'Total',
+ 'Translation not on file!' => 'Pas de traduction dans le fichier',
+ 'Unit' => 'Unité',
+ 'Update' => 'Mettre à jour',
+ 'Vendor' => 'Fournisseur',
+ 'Vendor Number' => 'Numéro de fournisseur',
+ 'Vendor missing!' => 'Fournisseur manquant!',
+ 'Vendor not on file!' => 'Fournisseur absent du fichier!',
+ 'Warning!' => 'Attention!',
+ 'What type of item is this?' => 'De quel type est cet objet?',
+ 'Work Order' => 'Fiche de traitement',
+ 'Yes' => 'Oui',
+ 'Zip/Postal Code' => 'Code postal',
+ 'ea' => 'pièce(s)',
+ 'posted!' => 'enregistré!',
+ 'sent' => 'envoyé',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'continuer' => 'continue',
+ 'supprimer' => 'delete',
+ 'enregistrer' => 'post',
+ 'enregistrer_comme_nouveau' => 'post_as_new',
+ 'commande_d\'achat' => 'purchase_order',
+ 'mettre_à_jour' => 'update',
+ 'oui' => 'yes',
+};
+
+1;
+
diff --git a/locale/ca_fr/is b/locale/ca_fr/is
new file mode 100755
index 00000000..0acfaf07
--- /dev/null
+++ b/locale/ca_fr/is
@@ -0,0 +1,235 @@
+$self{texts} = {
+ 'Account' => 'Compte',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Add Purchase Order' => 'Établir commande d\'achat',
+ 'Add Quotation' => 'Établir devis',
+ 'Add Request for Quotation' => 'Établir demande de devis',
+ 'Add Sales Invoice' => 'Établir facture de vente',
+ 'Add Sales Order' => 'Établir commande de vente',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Montant',
+ 'Apr' => 'Avril',
+ 'April' => 'Avril',
+ 'Are you sure you want to delete Invoice Number' => 'Êtes-vous sûr de vouloir supprimer la facture n°',
+ 'Attachment' => 'Pièce jointe',
+ 'Aug' => 'Août',
+ 'August' => 'Août',
+ 'Bcc' => 'Copie cachée',
+ 'Billing Address' => 'Adresse de facturation',
+ 'Bin' => 'Lieu stockage',
+ 'Bin List' => 'Liste des emplacements',
+ 'Business' => 'Type d\'affaire',
+ 'Cannot delete invoice!' => 'Impossible de supprimer la facture!',
+ 'Cannot post invoice for a closed period!' => 'Impossible d\'enregistrer la facture sur un exercice clos!',
+ 'Cannot post invoice!' => 'Impossible d\'enregistrer la facture!',
+ 'Cannot post payment for a closed period!' => 'Impossible d\'enregistrer le paiement sur un exercice clos!',
+ 'Cc' => 'Copie',
+ 'City' => 'Ville',
+ 'Company Name' => 'Nom de société',
+ 'Confirm!' => 'Confirmer!',
+ 'Contact' => 'Contact',
+ 'Continue' => 'Continuer',
+ 'Copies' => 'Copies',
+ 'Country' => 'Pays',
+ 'Credit Limit' => 'Encours autorisé',
+ 'Currency' => 'Devise',
+ 'Customer' => 'Client',
+ 'Customer Number' => 'Numéro de client',
+ 'Customer missing!' => 'Client manquant!',
+ 'Customer not on file!' => 'Client absent du fichier!',
+ 'Date' => 'Date',
+ 'Dec' => 'Déc.',
+ 'December' => 'Décembre',
+ 'Delete' => 'Supprimer',
+ 'Delivery Date' => 'Date de livraison',
+ 'Department' => 'Service',
+ 'Description' => 'Description',
+ 'Due Date' => 'Échéance',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Adresse e-mail manquante!',
+ 'E-mailed' => 'E-mail envoyé',
+ 'Edit Sales Invoice' => 'Modifier facture de vente',
+ 'Exch' => 'Change',
+ 'Exchange Rate' => 'Taux de change',
+ 'Exchange rate for payment missing!' => 'Taux de change manquant pour le paiement!',
+ 'Exchange rate missing!' => 'Taux de change manquant!',
+ 'Extended' => 'Prix total',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Fév.',
+ 'February' => 'Février',
+ 'Group' => 'Groupe',
+ 'In-line' => 'En ligne',
+ 'Internal Notes' => 'Notes internes',
+ 'Invoice' => 'Facture',
+ 'Invoice Date' => 'Date de facturation',
+ 'Invoice Date missing!' => 'Date de facture manquante!',
+ 'Invoice Number' => 'Numéro de facture',
+ 'Invoice Number missing!' => 'Numéro de facture manquant!',
+ 'Invoice deleted!' => 'Facture supprimée!',
+ 'Item not on file!' => 'Objet non-listé!',
+ 'Jan' => 'Jan.',
+ 'January' => 'Janvier',
+ 'Jul' => 'Juill.',
+ 'July' => 'Juillet',
+ 'Jun' => 'Juin',
+ 'June' => 'Juin',
+ 'Mar' => 'Mars',
+ 'March' => 'Mars',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Mémo',
+ 'Message' => 'Message',
+ 'Notes' => 'Notes',
+ 'Nov' => 'Nov.',
+ 'November' => 'Novembre',
+ 'Number' => 'Numéro',
+ 'Number missing in Row' => 'Numéro manquant dans ligne',
+ 'Oct' => 'Oct.',
+ 'October' => 'Octobre',
+ 'Order Date missing!' => 'Date de commande manquante!',
+ 'Order Number' => 'Numéro de commande',
+ 'Order Number missing!' => 'Numéro de commande manquant!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Liste d\'envoi',
+ 'Packing List Date missing!' => 'La liste d\'envoi n\'a pas de date!',
+ 'Packing List Number missing!' => 'Le numéro de la liste d\'envoi est manquant!',
+ 'Part' => 'Marchandise',
+ 'Payment date missing!' => 'Date de paiement manquante!',
+ 'Payments' => 'Paiements',
+ 'Phone' => 'Tél.',
+ 'Pick List' => 'Liste de sélection',
+ 'Post' => 'Enregistrer',
+ 'Post as new' => 'Enregistrer comme nouveau',
+ 'Postscript' => 'Postcript',
+ 'Price' => 'Prix',
+ 'Print' => 'Imprimer',
+ 'Print and Post' => 'Imprimer et imputer',
+ 'Printed' => 'Imprimé',
+ 'Project' => 'Projet',
+ 'Project not on file!' => 'Projet absent du fichier!',
+ 'Purchase Order' => 'Commande d\'achat',
+ 'Qty' => 'Qté',
+ 'Quotation' => 'Devis',
+ 'Quotation Date missing!' => 'Date de devis manqante!',
+ 'Quotation Number missing!' => 'Numéro de devis manquant!',
+ 'Recd' => 'Reçu',
+ 'Record in' => 'Enregistrer dans',
+ 'Reference' => 'Référence',
+ 'Remaining' => 'Restant',
+ 'Required by' => 'Requis pour',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Commande de vente',
+ 'Salesperson' => 'Vendeur',
+ 'Screen' => 'Écran',
+ 'Select from one of the names below' => 'Sélectionner un des noms ci-dessous',
+ 'Select from one of the projects below' => 'Sélectionner un des projets ci-dessous',
+ 'Select postscript or PDF!' => 'Sélectionner Postscript ou PDF!',
+ 'Select txt, postscript or PDF!' => 'Sélectionner Txt, Postscript ou PDF!',
+ 'Sep' => 'Sept.',
+ 'September' => 'Septembre',
+ 'Serial No.' => 'N° série',
+ 'Service' => 'Prestation de service',
+ 'Ship' => 'Expédier',
+ 'Ship to' => 'Expédier à',
+ 'Ship via' => 'Expédier via',
+ 'Shipping Address' => 'Adresse d\'envoi',
+ 'Shipping Point' => 'Expéditeur',
+ 'Source' => 'Source',
+ 'Startdate' => 'Date de début',
+ 'State/Province' => 'Région/État',
+ 'Subject' => 'Objet',
+ 'Subtotal' => 'Sous total',
+ 'Tax Included' => 'Taxe incluse',
+ 'To' => 'À',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Escompte commercial',
+ 'Translation not on file!' => 'Pas de traduction dans le fichier',
+ 'Unit' => 'Unité',
+ 'Update' => 'Mettre à jour',
+ 'Vendor Number' => 'Numéro de fournisseur',
+ 'Vendor not on file!' => 'Fournisseur absent du fichier!',
+ 'Warning!' => 'Attention!',
+ 'What type of item is this?' => 'De quel type est cet objet?',
+ 'Work Order' => 'Fiche de traitement',
+ 'Yes' => 'Oui',
+ 'Zip/Postal Code' => 'Code postal',
+ 'ea' => 'pièce(s)',
+ 'posted!' => 'enregistré!',
+ 'sent' => 'envoyé',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'continuer' => 'continue',
+ 'supprimer' => 'delete',
+ 'e_mail' => 'e_mail',
+ 'enregistrer' => 'post',
+ 'enregistrer_comme_nouveau' => 'post_as_new',
+ 'imprimer' => 'print',
+ 'imprimer_et_imputer' => 'print_and_post',
+ 'commande_de_vente' => 'sales_order',
+ 'expédier_à' => 'ship_to',
+ 'mettre_à_jour' => 'update',
+ 'oui' => 'yes',
+};
+
+1;
+
diff --git a/locale/ca_fr/jc b/locale/ca_fr/jc
new file mode 100755
index 00000000..64c073a3
--- /dev/null
+++ b/locale/ca_fr/jc
@@ -0,0 +1,92 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Amount' => 'Montant',
+ 'Closed' => 'Clôturé',
+ 'Confirm!' => 'Confirmer!',
+ 'Continue' => 'Continuer',
+ 'Cost' => 'Coût',
+ 'Current' => 'En cours',
+ 'Date' => 'Date',
+ 'Date missing!' => 'Date manquante!',
+ 'Delete' => 'Supprimer',
+ 'Description' => 'Description',
+ 'Employee' => 'Employé',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Inclure dans l\'état',
+ 'Month' => 'Mois',
+ 'Notes' => 'Notes',
+ 'Open' => 'Ouvert',
+ 'PDF' => 'PDF',
+ 'Period' => 'Période',
+ 'Postscript' => 'Postcript',
+ 'Print' => 'Imprimer',
+ 'Print and Save' => 'Imprimer et sauver',
+ 'Printed' => 'Imprimé',
+ 'Project Number' => 'Numéro de projet',
+ 'Project Number missing!' => 'Numéro du projet manquant!',
+ 'Qty' => 'Qté',
+ 'Quarter' => 'Trimestre',
+ 'Save' => 'Enregistrer',
+ 'Save as new' => 'Enregistrer comme nouveau',
+ 'Screen' => 'Écran',
+ 'Select postscript or PDF!' => 'Sélectionner Postscript ou PDF!',
+ 'Startdate' => 'Date de début',
+ 'Subtotal' => 'Sous total',
+ 'To' => 'À',
+ 'Total' => 'Total',
+ 'Update' => 'Mettre à jour',
+ 'Warning!' => 'Attention!',
+ 'Year' => 'Année',
+ 'Yes' => 'Oui',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'continuer' => 'continue',
+ 'supprimer' => 'delete',
+ 'imprimer' => 'print',
+ 'imprimer_et_sauver' => 'print_and_save',
+ 'enregistrer' => 'save',
+ 'enregistrer_comme_nouveau' => 'save_as_new',
+ 'mettre_à_jour' => 'update',
+ 'oui' => 'yes',
+};
+
+1;
+
diff --git a/locale/ca_fr/locales.pl b/locale/ca_fr/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/ca_fr/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/ca_fr/login b/locale/ca_fr/login
new file mode 100755
index 00000000..7c47c681
--- /dev/null
+++ b/locale/ca_fr/login
@@ -0,0 +1,24 @@
+$self{texts} = {
+ 'Company' => 'Société',
+ 'Continue' => 'Continuer',
+ 'Dataset is newer than version!' => 'Fichier de données plus récent que le logiciel!',
+ 'Incorrect Dataset version!' => 'Fichier de données incorrect!',
+ 'Login' => 'Login',
+ 'Name' => 'Nom',
+ 'Password' => 'Mot de passe',
+ 'Upgrading to Version' => 'Mise à jour à la version',
+ 'Version' => 'Version',
+ 'You did not enter a name!' => 'Vous n\'avez pas saisi de nom!',
+ 'done' => 'fait',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ 'login' => 'login',
+};
+
+1;
+
diff --git a/locale/ca_fr/menu b/locale/ca_fr/menu
new file mode 100755
index 00000000..8265bf2b
--- /dev/null
+++ b/locale/ca_fr/menu
@@ -0,0 +1,135 @@
+$self{texts} = {
+ 'AP' => 'Dépenses',
+ 'AP Aging' => 'Dépenses exigibles',
+ 'AP Transaction' => 'Écriture dépenses',
+ 'AR' => 'Recettes',
+ 'AR Aging' => 'Recettes exigibles',
+ 'AR Transaction' => 'Écriture recettes',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Add Account' => 'Ajouter compte',
+ 'Add Assembly' => 'Ajouter produit',
+ 'Add Business' => 'Ajouter type d\'affaire',
+ 'Add Customer' => 'Ajouter client',
+ 'Add Department' => 'Ajouter service',
+ 'Add Employee' => 'Ajouter employé',
+ 'Add GIFI' => 'Ajouter code d\'identification comptable ou fiscale',
+ 'Add Group' => 'Ajouter groupe',
+ 'Add Labor/Overhead' => 'Ajouter coût de production',
+ 'Add Language' => 'Ajouter langue',
+ 'Add Part' => 'Ajouter marchandise',
+ 'Add Pricegroup' => 'Ajouter groupe de prix',
+ 'Add Project' => 'Ajouter projet',
+ 'Add SIC' => 'Ajouter code secteur économique',
+ 'Add Service' => 'Ajouter prestation',
+ 'Add Transaction' => 'Saisie d\'écriture',
+ 'Add Vendor' => 'Ajouter fournisseur',
+ 'Add Warehouse' => 'Ajouter entrepôt',
+ 'All Items' => 'Tout objet',
+ 'Assemblies' => 'Produits finis',
+ 'Audit Control' => 'Clôture périodique',
+ 'Backup' => 'Sauvegarder',
+ 'Balance Sheet' => 'Bilan',
+ 'Bin List' => 'Liste des emplacements',
+ 'Bin Lists' => 'Liste des emplacements',
+ 'Cash' => 'Financier',
+ 'Chart of Accounts' => 'Plan Comptable',
+ 'Check' => 'Chèque',
+ 'Components' => 'Composants',
+ 'Customers' => 'Clients',
+ 'Defaults' => 'Valeurs par défaut',
+ 'Departments' => 'Services',
+ 'Description' => 'Description',
+ 'Employees' => 'Employés',
+ 'General Ledger' => 'Grand-livre',
+ 'Goods & Services' => 'Articles & Prestations',
+ 'Groups' => 'Groupes',
+ 'HR' => 'Ressources humaines',
+ 'HTML Templates' => 'Squelettes HTML',
+ 'History' => 'Historique',
+ 'Income Statement' => 'Compte de résultat',
+ 'Invoice' => 'Facture',
+ 'LaTeX Templates' => 'Squelettes LaTeX',
+ 'Labor/Overhead' => 'Coût de production',
+ 'Language' => 'Langue',
+ 'List Accounts' => 'Liste des comptes',
+ 'List Businesses' => 'Liste types d\'affaire',
+ 'List Departments' => 'Liste des services',
+ 'List GIFI' => 'Afficher la liste des codes d\'identification comptable ou fiscale',
+ 'List Languages' => 'Liste des langues',
+ 'List Projects' => 'Liste des projets',
+ 'List SIC' => 'Liste des codes secteur économique',
+ 'List Warehouses' => 'Liste des entrepôts',
+ 'Logout' => 'Déconnexion',
+ 'New Window' => 'Nouvelle fenêtre',
+ 'Non-taxable' => 'Non imposable',
+ 'Open' => 'Ouvert',
+ 'Order Entry' => 'Commandes',
+ 'Outstanding' => 'En retard',
+ 'POS' => 'Point de vente',
+ 'POS Invoice' => 'Ticket de caisse',
+ 'Packing List' => 'Liste d\'envoi',
+ 'Packing Lists' => 'Listes d\'envoi',
+ 'Parts' => 'Marchandises',
+ 'Payment' => 'Paiement',
+ 'Payments' => 'Paiements',
+ 'Pick List' => 'Liste de sélection',
+ 'Pick Lists' => 'Liste de sélection',
+ 'Preferences' => 'Préférences',
+ 'Pricegroups' => 'Groupes de prix',
+ 'Print' => 'Imprimer',
+ 'Projects' => 'Projets',
+ 'Purchase Order' => 'Commande d\'achat',
+ 'Purchase Orders' => 'Commandes d\'achat',
+ 'Quotation' => 'Devis',
+ 'Quotations' => 'Devis',
+ 'RFQ' => 'Demande de devis',
+ 'RFQs' => 'Demandes de devis',
+ 'Receipt' => 'Reçu',
+ 'Receipts' => 'Reçus',
+ 'Receive' => 'Réception',
+ 'Reconciliation' => 'Rapprochement',
+ 'Reports' => 'Rapports',
+ 'SIC' => 'Code secteur économique',
+ 'Sale' => 'Vente',
+ 'Sales Invoice' => 'Facture de vente',
+ 'Sales Invoices' => 'Factures de vente',
+ 'Sales Order' => 'Commande de vente',
+ 'Sales Orders' => 'Commandes de vente',
+ 'Save to File' => 'Enregistrer dans un fichier',
+ 'Search' => 'Recherche',
+ 'Send by E-Mail' => 'Envoyer par e-mail',
+ 'Services' => 'Prestations de services',
+ 'Ship' => 'Expédier',
+ 'Shipping' => 'Expédition',
+ 'Statement' => 'Relevé',
+ 'Stock Assembly' => 'Stock de produits',
+ 'Stylesheet' => 'Feuille de style',
+ 'System' => 'Système',
+ 'Tax collected' => 'Taxe collectée',
+ 'Tax paid' => 'Taxe payée',
+ 'Text Templates' => 'Squelettes texte',
+ 'Transactions' => 'Mouvements',
+ 'Transfer' => 'Transfert',
+ 'Transfer Inventory' => 'Transfert inventaire',
+ 'Translations' => 'Traductions',
+ 'Trial Balance' => 'Balance Globale',
+ 'Type of Business' => 'Type d\'affaire',
+ 'Vendor Invoice' => 'Facture d\'achat',
+ 'Vendors' => 'Fournisseurs',
+ 'Version' => 'Version',
+ 'Warehouses' => 'Entrepôts',
+ 'Work Order' => 'Fiche de traitement',
+ 'Work Orders' => 'Fiche de traitement',
+ 'Yearend' => 'Écriture de fin d\'exercice',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/ca_fr/oe b/locale/ca_fr/oe
new file mode 100755
index 00000000..d86aa9fc
--- /dev/null
+++ b/locale/ca_fr/oe
@@ -0,0 +1,321 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Add Exchange Rate' => 'Ajouter taux de change',
+ 'Add Purchase Order' => 'Établir commande d\'achat',
+ 'Add Quotation' => 'Établir devis',
+ 'Add Request for Quotation' => 'Établir demande de devis',
+ 'Add Sales Invoice' => 'Établir facture de vente',
+ 'Add Sales Order' => 'Établir commande de vente',
+ 'Add Vendor Invoice' => 'Établir facture d\'achat',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Montant',
+ 'Apr' => 'Avril',
+ 'April' => 'Avril',
+ 'Are you sure you want to delete Order Number' => 'Êtes vous sûr de vouloir supprimer la commande n°',
+ 'Are you sure you want to delete Quotation Number' => 'Êtes vous sûr de vouloir supprimer le devis n°',
+ 'Attachment' => 'Pièce jointe',
+ 'Aug' => 'Août',
+ 'August' => 'Août',
+ 'Bcc' => 'Copie cachée',
+ 'Billing Address' => 'Adresse de facturation',
+ 'Bin' => 'Lieu stockage',
+ 'Bin List' => 'Liste des emplacements',
+ 'Business' => 'Type d\'affaire',
+ 'C' => 'C',
+ 'Cannot delete order!' => 'Impossible de supprimer la commande!',
+ 'Cannot delete quotation!' => 'Impossible de supprimer le devis!',
+ 'Cannot save order!' => 'Impossible d\'enregistrer la commande!',
+ 'Cannot save quotation!' => 'Impossible d\'enregistrer le devis!',
+ 'Cc' => 'Copie',
+ 'City' => 'Ville',
+ 'Closed' => 'Clôturé',
+ 'Company Name' => 'Nom de société',
+ 'Confirm!' => 'Confirmer!',
+ 'Contact' => 'Contact',
+ 'Continue' => 'Continuer',
+ 'Copies' => 'Copies',
+ 'Cost' => 'Coût',
+ 'Could not save!' => 'Enregistrement impossible!',
+ 'Could not transfer Inventory!' => 'Impossible de transférer l\'inventaire!',
+ 'Country' => 'Pays',
+ 'Credit Limit' => 'Encours autorisé',
+ 'Curr' => 'Dev.',
+ 'Currency' => 'Devise',
+ 'Current' => 'En cours',
+ 'Customer' => 'Client',
+ 'Customer Number' => 'Numéro de client',
+ 'Customer missing!' => 'Client manquant!',
+ 'Customer not on file!' => 'Client absent du fichier!',
+ 'Date' => 'Date',
+ 'Date Received' => 'Date de réception',
+ 'Date received missing!' => 'Date de réception manquante!',
+ 'Dec' => 'Déc.',
+ 'December' => 'Décembre',
+ 'Delete' => 'Supprimer',
+ 'Delivery Date' => 'Date de livraison',
+ 'Department' => 'Service',
+ 'Description' => 'Description',
+ 'Done' => 'Fait!',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Adresse e-mail manquante!',
+ 'E-mailed' => 'E-mail envoyé',
+ 'Edit Purchase Order' => 'Modifier commande d\'achat',
+ 'Edit Quotation' => 'Modifier devis',
+ 'Edit Request for Quotation' => 'Modifier demande de devis',
+ 'Edit Sales Order' => 'Modifier commande de vente',
+ 'Employee' => 'Employé',
+ 'Exchange Rate' => 'Taux de change',
+ 'Exchange rate missing!' => 'Taux de change manquant!',
+ 'Extended' => 'Prix total',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Fév.',
+ 'February' => 'Février',
+ 'From' => 'De',
+ 'Group' => 'Groupe',
+ 'ID' => 'ID',
+ 'In-line' => 'En ligne',
+ 'Include in Report' => 'Inclure dans l\'état',
+ 'Internal Notes' => 'Notes internes',
+ 'Inventory saved!' => 'Inventaire enregistré!',
+ 'Inventory transferred!' => 'Inventaire transféré!',
+ 'Invoice' => 'Facture',
+ 'Invoice Date missing!' => 'Date de facture manquante!',
+ 'Invoice Number missing!' => 'Numéro de facture manquant!',
+ 'Item not on file!' => 'Objet non-listé!',
+ 'Jan' => 'Jan.',
+ 'January' => 'Janvier',
+ 'Jul' => 'Juill.',
+ 'July' => 'Juillet',
+ 'Jun' => 'Juin',
+ 'June' => 'Juin',
+ 'Manager' => 'Gestionnaire',
+ 'Mar' => 'Mars',
+ 'March' => 'Mars',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Message' => 'Message',
+ 'Month' => 'Mois',
+ 'No.' => 'N°',
+ 'Notes' => 'Notes',
+ 'Nothing entered!' => 'Rien n\'a été saisi!',
+ 'Nothing selected!' => 'Pas de sélection!',
+ 'Nothing to transfer!' => 'Rien à transférer!',
+ 'Nov' => 'Nov.',
+ 'November' => 'Novembre',
+ 'Number' => 'Numéro',
+ 'Number missing in Row' => 'Numéro manquant dans ligne',
+ 'O' => 'O',
+ 'Oct' => 'Oct.',
+ 'October' => 'Octobre',
+ 'Open' => 'Ouvert',
+ 'Order' => 'Commande',
+ 'Order Date' => 'Date de commande',
+ 'Order Date missing!' => 'Date de commande manquante!',
+ 'Order Number' => 'Numéro de commande',
+ 'Order Number missing!' => 'Numéro de commande manquant!',
+ 'Order deleted!' => 'Commande supprimée!',
+ 'Order saved!' => 'Commande enregistrée!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Liste d\'envoi',
+ 'Packing List Date missing!' => 'La liste d\'envoi n\'a pas de date!',
+ 'Packing List Number missing!' => 'Le numéro de la liste d\'envoi est manquant!',
+ 'Part' => 'Marchandise',
+ 'Period' => 'Période',
+ 'Phone' => 'Tél.',
+ 'Pick List' => 'Liste de sélection',
+ 'Postscript' => 'Postcript',
+ 'Price' => 'Prix',
+ 'Print' => 'Imprimer',
+ 'Print and Save' => 'Imprimer et sauver',
+ 'Printed' => 'Imprimé',
+ 'Project' => 'Projet',
+ 'Project not on file!' => 'Projet absent du fichier!',
+ 'Purchase Order' => 'Commande d\'achat',
+ 'Purchase Orders' => 'Commandes d\'achat',
+ 'Qty' => 'Qté',
+ 'Quarter' => 'Trimestre',
+ 'Quotation' => 'Devis',
+ 'Quotation ' => 'Devis ',
+ 'Quotation Date' => 'Date de devis',
+ 'Quotation Date missing!' => 'Date de devis manqante!',
+ 'Quotation Number' => 'Numéro de devis',
+ 'Quotation Number missing!' => 'Numéro de devis manquant!',
+ 'Quotation deleted!' => 'Devis effacé!',
+ 'Quotations' => 'Devis',
+ 'RFQ' => 'Demande de devis',
+ 'RFQ ' => 'Demande de devis ',
+ 'RFQ Number' => 'Numéro de demande de devis',
+ 'Recd' => 'Reçu',
+ 'Receive Merchandise' => 'Réception marchandise',
+ 'Reference' => 'Référence',
+ 'Remaining' => 'Restant',
+ 'Request for Quotation' => 'Demande de devis',
+ 'Request for Quotations' => 'Demandes de devis',
+ 'Required by' => 'Requis pour',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Facture de vente',
+ 'Sales Order' => 'Commande de vente',
+ 'Sales Orders' => 'Commandes de vente',
+ 'Salesperson' => 'Vendeur',
+ 'Save' => 'Enregistrer',
+ 'Save as new' => 'Enregistrer comme nouveau',
+ 'Screen' => 'Écran',
+ 'Select from one of the names below' => 'Sélectionner un des noms ci-dessous',
+ 'Select from one of the projects below' => 'Sélectionner un des projets ci-dessous',
+ 'Select postscript or PDF!' => 'Sélectionner Postscript ou PDF!',
+ 'Select txt, postscript or PDF!' => 'Sélectionner Txt, Postscript ou PDF!',
+ 'Sep' => 'Sept.',
+ 'September' => 'Septembre',
+ 'Serial No.' => 'N° série',
+ 'Service' => 'Prestation de service',
+ 'Ship' => 'Expédier',
+ 'Ship Merchandise' => 'Expédier marchandise',
+ 'Ship to' => 'Expédier à',
+ 'Ship via' => 'Expédier via',
+ 'Shipping Address' => 'Adresse d\'envoi',
+ 'Shipping Date' => 'Date d\'expédition',
+ 'Shipping Date missing!' => 'Date d\'expédition manquante!',
+ 'Shipping Point' => 'Expéditeur',
+ 'Startdate' => 'Date de début',
+ 'State/Province' => 'Région/État',
+ 'Subject' => 'Objet',
+ 'Subtotal' => 'Sous total',
+ 'Tax' => 'Taxe',
+ 'Tax Included' => 'Taxe incluse',
+ 'Terms' => 'Crédit limité à',
+ 'To' => 'À',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Escompte commercial',
+ 'Transfer' => 'Transfert',
+ 'Transfer Inventory' => 'Transfert inventaire',
+ 'Transfer to' => 'Transférer vers',
+ 'Translation not on file!' => 'Pas de traduction dans le fichier',
+ 'Unit' => 'Unité',
+ 'Update' => 'Mettre à jour',
+ 'Valid until' => 'Valable jusqu\'au',
+ 'Vendor' => 'Fournisseur',
+ 'Vendor Invoice' => 'Facture d\'achat',
+ 'Vendor Number' => 'Numéro de fournisseur',
+ 'Vendor missing!' => 'Fournisseur manquant!',
+ 'Vendor not on file!' => 'Fournisseur absent du fichier!',
+ 'Warehouse' => 'Entrepôt',
+ 'Warning!' => 'Attention!',
+ 'What type of item is this?' => 'De quel type est cet objet?',
+ 'Work Order' => 'Fiche de traitement',
+ 'Year' => 'Année',
+ 'Yes' => 'Oui',
+ 'Zip/Postal Code' => 'Code postal',
+ 'days' => 'jours',
+ 'ea' => 'pièce(s)',
+ 'sent' => 'envoyé',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'continuer' => 'continue',
+ 'supprimer' => 'delete',
+ 'fait!' => 'done',
+ 'e_mail' => 'e_mail',
+ 'imprimer' => 'print',
+ 'imprimer_et_sauver' => 'print_and_save',
+ 'commande_d\'achat' => 'purchase_order',
+ 'devis' => 'quotation',
+ 'devis_' => 'quotation_',
+ 'demande_de_devis' => 'rfq',
+ 'demande_de_devis_' => 'rfq_',
+ 'facture_de_vente' => 'sales_invoice',
+ 'commande_de_vente' => 'sales_order',
+ 'enregistrer' => 'save',
+ 'enregistrer_comme_nouveau' => 'save_as_new',
+ 'expédier_à' => 'ship_to',
+ 'transfert' => 'transfer',
+ 'mettre_à_jour' => 'update',
+ 'facture_d\'achat' => 'vendor_invoice',
+ 'oui' => 'yes',
+};
+
+1;
+
diff --git a/locale/ca_fr/pe b/locale/ca_fr/pe
new file mode 100755
index 00000000..c7b3ff07
--- /dev/null
+++ b/locale/ca_fr/pe
@@ -0,0 +1,141 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Active' => 'Actif',
+ 'Add' => 'Ajouter',
+ 'Add Group' => 'Ajouter groupe',
+ 'Add Pricegroup' => 'Ajouter groupe de prix',
+ 'Add Project' => 'Ajouter projet',
+ 'Address' => 'Adresse',
+ 'All' => 'Tous',
+ 'Amount' => 'Montant',
+ 'Assembly' => 'Produit fini',
+ 'Bin' => 'Lieu stockage',
+ 'Continue' => 'Continuer',
+ 'Current' => 'En cours',
+ 'Customer' => 'Client',
+ 'Customer missing!' => 'Client manquant!',
+ 'Customer not on file!' => 'Client absent du fichier!',
+ 'Date' => 'Date',
+ 'Delete' => 'Supprimer',
+ 'Description' => 'Description',
+ 'Description Translations' => 'Description traductions',
+ 'Detail' => 'Détail',
+ 'Edit Description Translations' => 'Modifier traductions description',
+ 'Edit Group' => 'Modifier groupe',
+ 'Edit Pricegroup' => 'Modifier groupe de prix',
+ 'Edit Project' => 'Modifier projet',
+ 'Employee' => 'Employé',
+ 'Enddate' => 'Date de fin',
+ 'From' => 'De',
+ 'Group' => 'Groupe',
+ 'Group Translations' => 'Grouper traductions',
+ 'Group deleted!' => 'Groupe effacé!',
+ 'Group missing!' => 'Groupe absent!',
+ 'Group saved!' => 'Groupe enregistré!',
+ 'Groups' => 'Groupes',
+ 'Income' => 'Recettes',
+ 'Language' => 'Langue',
+ 'Languages not defined!' => 'Langues non définis!',
+ 'Link Accounts' => 'Lier comptes',
+ 'List Price' => 'Prix de revient',
+ 'Month' => 'Mois',
+ 'Notes' => 'Notes',
+ 'Nothing selected!' => 'Pas de sélection!',
+ 'Number' => 'Numéro',
+ 'Orphaned' => 'Orphelin',
+ 'Period' => 'Période',
+ 'Pricegroup' => 'Groupe de prix',
+ 'Pricegroup deleted!' => 'Groupe de prix supprimé!',
+ 'Pricegroup missing!' => 'Groupe de prix manquant!',
+ 'Pricegroup saved!' => 'Groupe de prix enregistré!',
+ 'Pricegroups' => 'Groupes de prix',
+ 'Project' => 'Projet',
+ 'Project Description Translations' => 'Traductions description de projet',
+ 'Project Number' => 'Numéro de projet',
+ 'Project deleted!' => 'Projet supprimé!',
+ 'Project saved!' => 'Projet enregistré!',
+ 'Projects' => 'Projets',
+ 'Qty' => 'Qté',
+ 'Quarter' => 'Trimestre',
+ 'Save' => 'Enregistrer',
+ 'Select from one of the names below' => 'Sélectionner un des noms ci-dessous',
+ 'Sell Price' => 'Prix de vente',
+ 'Startdate' => 'Date de début',
+ 'Summary' => 'Résumé',
+ 'Tax' => 'Taxe',
+ 'To' => 'À',
+ 'Translation' => 'Traduction',
+ 'Translation deleted!' => 'Traduction supprimée!',
+ 'Translations saved!' => 'Traductions enregistrées',
+ 'Unit' => 'Unité',
+ 'Update' => 'Mettre à jour',
+ 'Updated' => 'Mis à jour',
+ 'Vendor' => 'Fournisseur',
+ 'Vendor not on file!' => 'Fournisseur absent du fichier!',
+ 'Weight' => 'Poids',
+ 'Year' => 'Année',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'ajouter_groupe' => 'add_group',
+ 'ajouter_groupe_de_prix' => 'add_pricegroup',
+ 'ajouter_projet' => 'add_project',
+ 'continuer' => 'continue',
+ 'supprimer' => 'delete',
+ 'enregistrer' => 'save',
+ 'mettre_à_jour' => 'update',
+};
+
+1;
+
diff --git a/locale/ca_fr/pos b/locale/ca_fr/pos
new file mode 100755
index 00000000..69db8091
--- /dev/null
+++ b/locale/ca_fr/pos
@@ -0,0 +1,80 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Add POS Invoice' => 'Saisie ticket de caisse',
+ 'Amount' => 'Montant',
+ 'Business' => 'Type d\'affaire',
+ 'Cannot post transaction!' => 'Impossible d\'enregistrer l\'écriture!',
+ 'Change' => 'Retour monnaie',
+ 'Continue' => 'Continuer',
+ 'Credit Limit' => 'Encours autorisé',
+ 'Currency' => 'Devise',
+ 'Current' => 'En cours',
+ 'Customer' => 'Client',
+ 'Customer missing!' => 'Client manquant!',
+ 'Delete' => 'Supprimer',
+ 'Department' => 'Service',
+ 'Description' => 'Description',
+ 'Edit POS Invoice' => 'Modifier ticket de caisse',
+ 'Exchange Rate' => 'Taux de change',
+ 'Exchange rate missing!' => 'Taux de change manquant!',
+ 'Extended' => 'Prix total',
+ 'From' => 'De',
+ 'Language' => 'Langue',
+ 'Memo' => 'Mémo',
+ 'Month' => 'Mois',
+ 'Number' => 'Numéro',
+ 'Open' => 'Ouvert',
+ 'Period' => 'Période',
+ 'Post' => 'Enregistrer',
+ 'Posted!' => 'Enregistré!',
+ 'Price' => 'Prix',
+ 'Print' => 'Imprimer',
+ 'Print and Post' => 'Imprimer et imputer',
+ 'Printed' => 'Imprimé',
+ 'Qty' => 'Qté',
+ 'Quarter' => 'Trimestre',
+ 'Receipts' => 'Reçus',
+ 'Record in' => 'Enregistrer dans',
+ 'Remaining' => 'Restant',
+ 'Salesperson' => 'Vendeur',
+ 'Screen' => 'Écran',
+ 'Source' => 'Source',
+ 'Subtotal' => 'Sous total',
+ 'Tax Included' => 'Taxe incluse',
+ 'To' => 'À',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Escompte commercial',
+ 'Unit' => 'Unité',
+ 'Update' => 'Mettre à jour',
+ 'Year' => 'Année',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'continuer' => 'continue',
+ 'supprimer' => 'delete',
+ 'enregistrer' => 'post',
+ 'imprimer' => 'print',
+ 'imprimer_et_imputer' => 'print_and_post',
+ 'mettre_à_jour' => 'update',
+};
+
+1;
+
diff --git a/locale/ca_fr/ps b/locale/ca_fr/ps
new file mode 100755
index 00000000..ca3d3eba
--- /dev/null
+++ b/locale/ca_fr/ps
@@ -0,0 +1,358 @@
+$self{texts} = {
+ 'AP Aging' => 'Dépenses exigibles',
+ 'AP Outstanding' => 'Dépenses en retard',
+ 'AP Transaction' => 'Écriture dépenses',
+ 'AP Transactions' => 'Mouvements - Dépenses',
+ 'AR Aging' => 'Recettes exigibles',
+ 'AR Outstanding' => 'Recettes en retard',
+ 'AR Transaction' => 'Écriture recettes',
+ 'AR Transactions' => 'Mouvements - Recettes',
+ 'Account' => 'Compte',
+ 'Account Number' => 'Numéro de compte',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Accounts' => 'Comptes',
+ 'Accrual' => 'Accumulation',
+ 'Add AP Transaction' => 'Ajouter une dépense',
+ 'Add AR Transaction' => 'Ajouter une recette',
+ 'Add POS Invoice' => 'Saisie ticket de caisse',
+ 'Add Purchase Order' => 'Établir commande d\'achat',
+ 'Add Quotation' => 'Établir devis',
+ 'Add Request for Quotation' => 'Établir demande de devis',
+ 'Add Sales Invoice' => 'Établir facture de vente',
+ 'Add Sales Order' => 'Établir commande de vente',
+ 'Address' => 'Adresse',
+ 'All Accounts' => 'Afficher tous les comptes',
+ 'Amount' => 'Montant',
+ 'Amount Due' => 'Montant dû',
+ 'Apr' => 'Avril',
+ 'April' => 'Avril',
+ 'Are you sure you want to delete Invoice Number' => 'Êtes-vous sûr de vouloir supprimer la facture n°',
+ 'Are you sure you want to delete Transaction' => 'Êtes vous sûr de vouloir effacer la saisie?',
+ 'Attachment' => 'Pièce jointe',
+ 'Aug' => 'Août',
+ 'August' => 'Août',
+ 'Balance' => 'Solde',
+ 'Balance Sheet' => 'Bilan',
+ 'Bcc' => 'Copie cachée',
+ 'Billing Address' => 'Adresse de facturation',
+ 'Bin' => 'Lieu stockage',
+ 'Bin List' => 'Liste des emplacements',
+ 'Business' => 'Type d\'affaire',
+ 'Cannot delete invoice!' => 'Impossible de supprimer la facture!',
+ 'Cannot delete transaction!' => 'Impossible de supprimer l\'écriture!',
+ 'Cannot post invoice for a closed period!' => 'Impossible d\'enregistrer la facture sur un exercice clos!',
+ 'Cannot post invoice!' => 'Impossible d\'enregistrer la facture!',
+ 'Cannot post payment for a closed period!' => 'Impossible d\'enregistrer le paiement sur un exercice clos!',
+ 'Cannot post transaction for a closed period!' => 'Impossible d\'enregistrer l\'écriture sur un exercice clos!',
+ 'Cannot post transaction!' => 'Impossible d\'enregistrer l\'écriture!',
+ 'Cash' => 'Financier',
+ 'Cc' => 'Copie',
+ 'Change' => 'Retour monnaie',
+ 'Check' => 'Chèque',
+ 'City' => 'Ville',
+ 'Closed' => 'Clôturé',
+ 'Company Name' => 'Nom de société',
+ 'Compare to' => 'Comparer à',
+ 'Confirm!' => 'Confirmer!',
+ 'Contact' => 'Contact',
+ 'Continue' => 'Continuer',
+ 'Copies' => 'Copies',
+ 'Country' => 'Pays',
+ 'Credit' => 'Crédit',
+ 'Credit Limit' => 'Encours autorisé',
+ 'Curr' => 'Dev.',
+ 'Currency' => 'Devise',
+ 'Current' => 'En cours',
+ 'Current Earnings' => 'Bénéfice de l\'exercice',
+ 'Customer' => 'Client',
+ 'Customer Number' => 'Numéro de client',
+ 'Customer missing!' => 'Client manquant!',
+ 'Customer not on file!' => 'Client absent du fichier!',
+ 'Date' => 'Date',
+ 'Date Paid' => 'Date de paiement',
+ 'Debit' => 'Débit',
+ 'Dec' => 'Déc.',
+ 'December' => 'Décembre',
+ 'Decimalplaces' => 'Décimales',
+ 'Delete' => 'Supprimer',
+ 'Delivery Date' => 'Date de livraison',
+ 'Department' => 'Service',
+ 'Description' => 'Description',
+ 'Detail' => 'Détail',
+ 'Due Date' => 'Échéance',
+ 'Due Date missing!' => 'Date d\'échéance manquante!',
+ 'E-mail' => 'E-mail',
+ 'E-mail Statement to' => 'Message éléctronique à',
+ 'E-mail address missing!' => 'Adresse e-mail manquante!',
+ 'E-mailed' => 'E-mail envoyé',
+ 'Edit AP Transaction' => 'Modifier une dépense',
+ 'Edit AR Transaction' => 'Modifier une recette',
+ 'Edit POS Invoice' => 'Modifier ticket de caisse',
+ 'Edit Sales Invoice' => 'Modifier facture de vente',
+ 'Employee' => 'Employé',
+ 'Exch' => 'Change',
+ 'Exchange Rate' => 'Taux de change',
+ 'Exchange rate for payment missing!' => 'Taux de change manquant pour le paiement!',
+ 'Exchange rate missing!' => 'Taux de change manquant!',
+ 'Extended' => 'Prix total',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Fév.',
+ 'February' => 'Février',
+ 'From' => 'De',
+ 'GIFI' => 'Code d\'identification comptable ou fiscale',
+ 'Group' => 'Groupe',
+ 'Heading' => 'En-tête',
+ 'ID' => 'ID',
+ 'In-line' => 'En ligne',
+ 'Include Exchange Rate Difference' => 'Inclure différence conversion devises',
+ 'Include in Report' => 'Inclure dans l\'état',
+ 'Income Statement' => 'Compte de résultat',
+ 'Internal Notes' => 'Notes internes',
+ 'Invoice' => 'Facture',
+ 'Invoice Date' => 'Date de facturation',
+ 'Invoice Date missing!' => 'Date de facture manquante!',
+ 'Invoice Number' => 'Numéro de facture',
+ 'Invoice Number missing!' => 'Numéro de facture manquant!',
+ 'Invoice deleted!' => 'Facture supprimée!',
+ 'Item not on file!' => 'Objet non-listé!',
+ 'Jan' => 'Jan.',
+ 'January' => 'Janvier',
+ 'Jul' => 'Juill.',
+ 'July' => 'Juillet',
+ 'Jun' => 'Juin',
+ 'June' => 'Juin',
+ 'Language' => 'Langue',
+ 'Manager' => 'Gestionnaire',
+ 'Mar' => 'Mars',
+ 'March' => 'Mars',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Mémo',
+ 'Message' => 'Message',
+ 'Method' => 'Méthode',
+ 'Month' => 'Mois',
+ 'N/A' => 'Non applicable',
+ 'No.' => 'N°',
+ 'Non-taxable Purchases' => 'Achats hors taxe',
+ 'Non-taxable Sales' => 'Ventes hors taxe',
+ 'Notes' => 'Notes',
+ 'Nothing selected!' => 'Pas de sélection!',
+ 'Nothing to print!' => 'Rien à imprimer',
+ 'Nov' => 'Nov.',
+ 'November' => 'Novembre',
+ 'Number' => 'Numéro',
+ 'Number missing in Row' => 'Numéro manquant dans ligne',
+ 'Oct' => 'Oct.',
+ 'October' => 'Octobre',
+ 'Open' => 'Ouvert',
+ 'Order' => 'Commande',
+ 'Order Date missing!' => 'Date de commande manquante!',
+ 'Order Number' => 'Numéro de commande',
+ 'Order Number missing!' => 'Numéro de commande manquant!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Liste d\'envoi',
+ 'Packing List Date missing!' => 'La liste d\'envoi n\'a pas de date!',
+ 'Packing List Number missing!' => 'Le numéro de la liste d\'envoi est manquant!',
+ 'Paid' => 'Total payé',
+ 'Part' => 'Marchandise',
+ 'Payment date missing!' => 'Date de paiement manquante!',
+ 'Payments' => 'Paiements',
+ 'Period' => 'Période',
+ 'Phone' => 'Tél.',
+ 'Pick List' => 'Liste de sélection',
+ 'Post' => 'Enregistrer',
+ 'Post as new' => 'Enregistrer comme nouveau',
+ 'Posted!' => 'Enregistré!',
+ 'Postscript' => 'Postcript',
+ 'Price' => 'Prix',
+ 'Print' => 'Imprimer',
+ 'Print and Post' => 'Imprimer et imputer',
+ 'Printed' => 'Imprimé',
+ 'Project' => 'Projet',
+ 'Project Number' => 'Numéro de projet',
+ 'Project Transactions' => 'Mouvements - Projet',
+ 'Project not on file!' => 'Projet absent du fichier!',
+ 'Purchase Order' => 'Commande d\'achat',
+ 'Qty' => 'Qté',
+ 'Quarter' => 'Trimestre',
+ 'Quotation' => 'Devis',
+ 'Quotation Date missing!' => 'Date de devis manqante!',
+ 'Quotation Number missing!' => 'Numéro de devis manquant!',
+ 'Recd' => 'Reçu',
+ 'Receipt' => 'Reçu',
+ 'Receipts' => 'Reçus',
+ 'Record in' => 'Enregistrer dans',
+ 'Reference' => 'Référence',
+ 'Remaining' => 'Restant',
+ 'Report for' => 'Rapport de',
+ 'Required by' => 'Requis pour',
+ 'SKU' => 'SKU',
+ 'Sales Invoice.' => 'Facture de vente.',
+ 'Sales Order' => 'Commande de vente',
+ 'Salesperson' => 'Vendeur',
+ 'Screen' => 'Écran',
+ 'Select all' => 'Tout sélectionner',
+ 'Select from one of the names below' => 'Sélectionner un des noms ci-dessous',
+ 'Select from one of the projects below' => 'Sélectionner un des projets ci-dessous',
+ 'Select payment' => 'Sélectionner le payement',
+ 'Select postscript or PDF!' => 'Sélectionner Postscript ou PDF!',
+ 'Select txt, postscript or PDF!' => 'Sélectionner Txt, Postscript ou PDF!',
+ 'Sep' => 'Sept.',
+ 'September' => 'Septembre',
+ 'Serial No.' => 'N° série',
+ 'Service' => 'Prestation de service',
+ 'Ship' => 'Expédier',
+ 'Ship to' => 'Expédier à',
+ 'Ship via' => 'Expédier via',
+ 'Shipping Address' => 'Adresse d\'envoi',
+ 'Shipping Point' => 'Expéditeur',
+ 'Source' => 'Source',
+ 'Standard' => 'Standard',
+ 'Startdate' => 'Date de début',
+ 'State/Province' => 'Région/État',
+ 'Statement' => 'Relevé',
+ 'Statement sent to' => 'Relevé envoyé à',
+ 'Statements sent to printer!' => 'Relevés envoyés à l\'imprimante!',
+ 'Subject' => 'Objet',
+ 'Subtotal' => 'Sous total',
+ 'Summary' => 'Résumé',
+ 'Tax' => 'Taxe',
+ 'Tax Included' => 'Taxe incluse',
+ 'Tax collected' => 'Taxe collectée',
+ 'Tax paid' => 'Taxe payée',
+ 'Till' => 'Caisse',
+ 'To' => 'À',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Escompte commercial',
+ 'Transaction' => 'Écriture',
+ 'Transaction deleted!' => 'Écriture supprimée!',
+ 'Transaction posted!' => 'Écriture enregistrée!',
+ 'Translation not on file!' => 'Pas de traduction dans le fichier',
+ 'Trial Balance' => 'Balance Globale',
+ 'Unit' => 'Unité',
+ 'Update' => 'Mettre à jour',
+ 'Vendor' => 'Fournisseur',
+ 'Vendor Invoice.' => 'Facture d\'achat.',
+ 'Vendor Number' => 'Numéro de fournisseur',
+ 'Vendor missing!' => 'Fournisseur manquant!',
+ 'Vendor not on file!' => 'Fournisseur absent du fichier!',
+ 'Warning!' => 'Attention!',
+ 'What type of item is this?' => 'De quel type est cet objet?',
+ 'Work Order' => 'Fiche de traitement',
+ 'Year' => 'Année',
+ 'Yes' => 'Oui',
+ 'Zip/Postal Code' => 'Code postal',
+ 'as at' => 'au',
+ 'ea' => 'pièce(s)',
+ 'for Period' => 'pour la période',
+ 'posted!' => 'enregistré!',
+ 'sent' => 'envoyé',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'Écriture_dépenses' => 'ap_transaction',
+ 'Écriture_recettes' => 'ar_transaction',
+ 'continuer' => 'continue',
+ 'supprimer' => 'delete',
+ 'e_mail' => 'e_mail',
+ 'enregistrer' => 'post',
+ 'enregistrer_comme_nouveau' => 'post_as_new',
+ 'imprimer' => 'print',
+ 'imprimer_et_imputer' => 'print_and_post',
+ 'facture_de_vente_' => 'sales_invoice_',
+ 'commande_de_vente' => 'sales_order',
+ 'tout_sélectionner' => 'select_all',
+ 'expédier_à' => 'ship_to',
+ 'mettre_à_jour' => 'update',
+ 'facture_d\'achat_' => 'vendor_invoice_',
+ 'oui' => 'yes',
+};
+
+1;
+
diff --git a/locale/ca_fr/pw b/locale/ca_fr/pw
new file mode 100755
index 00000000..fde00cae
--- /dev/null
+++ b/locale/ca_fr/pw
@@ -0,0 +1,13 @@
+$self{texts} = {
+ 'Continue' => 'Continuer',
+ 'Password' => 'Mot de passe',
+ 'Session expired!' => 'Session terminée!',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'continuer' => 'continue',
+};
+
+1;
+
diff --git a/locale/ca_fr/rc b/locale/ca_fr/rc
new file mode 100755
index 00000000..3e6dc439
--- /dev/null
+++ b/locale/ca_fr/rc
@@ -0,0 +1,79 @@
+$self{texts} = {
+ 'Account' => 'Compte',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Apr' => 'Avril',
+ 'April' => 'Avril',
+ 'Aug' => 'Août',
+ 'August' => 'Août',
+ 'Balance' => 'Solde',
+ 'Beginning Balance' => 'Solde du départ',
+ 'Cleared' => 'Lettré',
+ 'Continue' => 'Continuer',
+ 'Credit' => 'Crédit',
+ 'Current' => 'En cours',
+ 'Date' => 'Date',
+ 'Debit' => 'Débit',
+ 'Dec' => 'Déc.',
+ 'December' => 'Décembre',
+ 'Description' => 'Description',
+ 'Detail' => 'Détail',
+ 'Difference' => 'Différence',
+ 'Done' => 'Fait!',
+ 'Feb' => 'Fév.',
+ 'February' => 'Février',
+ 'From' => 'De',
+ 'Include Exchange Rate Difference' => 'Inclure différence conversion devises',
+ 'Jan' => 'Jan.',
+ 'January' => 'Janvier',
+ 'Jul' => 'Juill.',
+ 'July' => 'Juillet',
+ 'Jun' => 'Juin',
+ 'June' => 'Juin',
+ 'Mar' => 'Mars',
+ 'March' => 'Mars',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Month' => 'Mois',
+ 'Nov' => 'Nov.',
+ 'November' => 'Novembre',
+ 'Oct' => 'Oct.',
+ 'October' => 'Octobre',
+ 'Out of balance!' => 'Non-soldée!',
+ 'Outstanding' => 'En retard',
+ 'Period' => 'Période',
+ 'Quarter' => 'Trimestre',
+ 'R' => 'R',
+ 'Reconciliation' => 'Rapprochement',
+ 'Reconciliation Report' => 'Rapport de rapprochement',
+ 'Select all' => 'Tout sélectionner',
+ 'Sep' => 'Sept.',
+ 'September' => 'Septembre',
+ 'Source' => 'Source',
+ 'Statement Balance' => 'Solde relevé de compte',
+ 'Summary' => 'Résumé',
+ 'To' => 'À',
+ 'Update' => 'Mettre à jour',
+ 'Year' => 'Année',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'continuer' => 'continue',
+ 'fait!' => 'done',
+ 'tout_sélectionner' => 'select_all',
+ 'mettre_à_jour' => 'update',
+};
+
+1;
+
diff --git a/locale/ca_fr/rp b/locale/ca_fr/rp
new file mode 100755
index 00000000..2476d9ab
--- /dev/null
+++ b/locale/ca_fr/rp
@@ -0,0 +1,179 @@
+$self{texts} = {
+ 'AP Aging' => 'Dépenses exigibles',
+ 'AR Aging' => 'Recettes exigibles',
+ 'Account' => 'Compte',
+ 'Account Number' => 'Numéro de compte',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Accounts' => 'Comptes',
+ 'Accrual' => 'Accumulation',
+ 'Address' => 'Adresse',
+ 'All Accounts' => 'Afficher tous les comptes',
+ 'Amount' => 'Montant',
+ 'Apr' => 'Avril',
+ 'April' => 'Avril',
+ 'Attachment' => 'Pièce jointe',
+ 'Aug' => 'Août',
+ 'August' => 'Août',
+ 'Balance' => 'Solde',
+ 'Balance Sheet' => 'Bilan',
+ 'Bcc' => 'Copie cachée',
+ 'Cash' => 'Financier',
+ 'Cc' => 'Copie',
+ 'Compare to' => 'Comparer à',
+ 'Continue' => 'Continuer',
+ 'Copies' => 'Copies',
+ 'Credit' => 'Crédit',
+ 'Curr' => 'Dev.',
+ 'Current' => 'En cours',
+ 'Current Earnings' => 'Bénéfice de l\'exercice',
+ 'Customer' => 'Client',
+ 'Customer not on file!' => 'Client absent du fichier!',
+ 'Date' => 'Date',
+ 'Debit' => 'Débit',
+ 'Dec' => 'Déc.',
+ 'December' => 'Décembre',
+ 'Decimalplaces' => 'Décimales',
+ 'Department' => 'Service',
+ 'Description' => 'Description',
+ 'Detail' => 'Détail',
+ 'Due Date' => 'Échéance',
+ 'E-mail' => 'E-mail',
+ 'E-mail Statement to' => 'Message éléctronique à',
+ 'E-mail address missing!' => 'Adresse e-mail manquante!',
+ 'Feb' => 'Fév.',
+ 'February' => 'Février',
+ 'From' => 'De',
+ 'GIFI' => 'Code d\'identification comptable ou fiscale',
+ 'Heading' => 'En-tête',
+ 'ID' => 'ID',
+ 'In-line' => 'En ligne',
+ 'Include Exchange Rate Difference' => 'Inclure différence conversion devises',
+ 'Include in Report' => 'Inclure dans l\'état',
+ 'Income Statement' => 'Compte de résultat',
+ 'Invoice' => 'Facture',
+ 'Jan' => 'Jan.',
+ 'January' => 'Janvier',
+ 'Jul' => 'Juill.',
+ 'July' => 'Juillet',
+ 'Jun' => 'Juin',
+ 'June' => 'Juin',
+ 'Language' => 'Langue',
+ 'Mar' => 'Mars',
+ 'March' => 'Mars',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Mémo',
+ 'Message' => 'Message',
+ 'Method' => 'Méthode',
+ 'Month' => 'Mois',
+ 'N/A' => 'Non applicable',
+ 'Non-taxable Purchases' => 'Achats hors taxe',
+ 'Non-taxable Sales' => 'Ventes hors taxe',
+ 'Nothing selected!' => 'Pas de sélection!',
+ 'Nov' => 'Nov.',
+ 'November' => 'Novembre',
+ 'Number' => 'Numéro',
+ 'Oct' => 'Oct.',
+ 'October' => 'Octobre',
+ 'Order' => 'Commande',
+ 'PDF' => 'PDF',
+ 'Payments' => 'Paiements',
+ 'Period' => 'Période',
+ 'Postscript' => 'Postcript',
+ 'Print' => 'Imprimer',
+ 'Project' => 'Projet',
+ 'Project Number' => 'Numéro de projet',
+ 'Project Transactions' => 'Mouvements - Projet',
+ 'Project not on file!' => 'Projet absent du fichier!',
+ 'Quarter' => 'Trimestre',
+ 'Receipts' => 'Reçus',
+ 'Reference' => 'Référence',
+ 'Report for' => 'Rapport de',
+ 'Salesperson' => 'Vendeur',
+ 'Screen' => 'Écran',
+ 'Select all' => 'Tout sélectionner',
+ 'Select from one of the names below' => 'Sélectionner un des noms ci-dessous',
+ 'Select from one of the projects below' => 'Sélectionner un des projets ci-dessous',
+ 'Select postscript or PDF!' => 'Sélectionner Postscript ou PDF!',
+ 'Sep' => 'Sept.',
+ 'September' => 'Septembre',
+ 'Source' => 'Source',
+ 'Standard' => 'Standard',
+ 'Startdate' => 'Date de début',
+ 'Statement' => 'Relevé',
+ 'Statement sent to' => 'Relevé envoyé à',
+ 'Statements sent to printer!' => 'Relevés envoyés à l\'imprimante!',
+ 'Subject' => 'Objet',
+ 'Subtotal' => 'Sous total',
+ 'Summary' => 'Résumé',
+ 'Tax' => 'Taxe',
+ 'Tax collected' => 'Taxe collectée',
+ 'Tax paid' => 'Taxe payée',
+ 'Till' => 'Caisse',
+ 'To' => 'À',
+ 'Total' => 'Total',
+ 'Trial Balance' => 'Balance Globale',
+ 'Vendor' => 'Fournisseur',
+ 'Vendor not on file!' => 'Fournisseur absent du fichier!',
+ 'Warning!' => 'Attention!',
+ 'Year' => 'Année',
+ 'as at' => 'au',
+ 'for Period' => 'pour la période',
+ 'sent' => 'envoyé',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuer' => 'continue',
+ 'e_mail' => 'e_mail',
+ 'imprimer' => 'print',
+ 'tout_sélectionner' => 'select_all',
+};
+
+1;
+
diff --git a/locale/ch/COPYING b/locale/ch/COPYING
new file mode 100755
index 00000000..77cd1f8e
--- /dev/null
+++ b/locale/ch/COPYING
@@ -0,0 +1,34 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (C) 2006
+#
+#
+# Swiss-German texts:
+#
+# The Swiss-German translation is based on the german texts.
+#
+# Author: Alain Haymoz <alain.haymoz@leanux.ch>
+# Fabian Schiltknecht <fabian.schiltknecht@leanux.ch>
+# Martin Elmer <martin.elmer@leanux.ch>
+#
+# German texts:
+#
+# Author: Thomas Bayen <tbayen@bayen.de>
+# Gunter Ohrner <G.Ohrner@post.rwth-aachen.de>
+# Jens Koerner <jens@kleinflintbek.net>
+# Doris Messmer <dolores@tschueckengueruep.de>
+# Wolfgang Foerster <wf@inventronik.de>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+######################################################################
diff --git a/locale/ch/LANGUAGE b/locale/ch/LANGUAGE
new file mode 100755
index 00000000..013db311
--- /dev/null
+++ b/locale/ch/LANGUAGE
@@ -0,0 +1 @@
+German/Switzerland
diff --git a/locale/ch/Num2text b/locale/ch/Num2text
new file mode 100755
index 00000000..899570ec
--- /dev/null
+++ b/locale/ch/Num2text
@@ -0,0 +1,185 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (C) 2002
+#
+# Author: Dieter Simader
+# Email: dsimader@sql-ledger.org
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+# Contributors:
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#======================================================================
+#
+# this is a variation of the Lingua package
+# written for check and receipt printing
+# it returns a properly formatted text string
+# for a number up to 10**12
+
+sub init {
+ my $self = shift;
+
+ %{ $self->{numbername} } =
+ (0 => 'Null',
+ 1 => 'ein',
+ 2 => 'zwei',
+ 3 => 'drei',
+ 4 => 'vier',
+ 5 => 'fünf',
+ 6 => 'sechs',
+ 7 => 'sieben',
+ 8 => 'acht',
+ 9 => 'neun',
+ 10 => 'zehn',
+ 11 => 'elf',
+ 12 => 'zwölf',
+ 13 => 'dreizehn',
+ 14 => 'vierzehn',
+ 15 => 'fünfzehn',
+ 16 => 'sechzehn',
+ 17 => 'siebzehn',
+ 18 => 'achtzehn',
+ 19 => 'neunzehn',
+ 20 => 'zwanzig',
+ 30 => 'dreissig',
+ 40 => 'vierzig',
+ 50 => 'fünfzig',
+ 60 => 'sechzig',
+ 70 => 'siebzig',
+ 80 => 'achtzig',
+ 90 => 'neunzig',
+ 10**2 => 'hundert',
+ 10**3 => 'tausend',
+ 10**6 => 'million',
+ 10**9 => 'milliarde',
+ 10**12 => 'billion'
+ );
+
+}
+
+
+sub num2text {
+ my ($self, $amount) = @_;
+
+ return $self->{numbername}{0} unless $amount;
+
+ my @textnumber = ();
+
+ # split amount into chunks of 3
+ my @num = reverse split //, abs($amount);
+ my @numblock = ();
+ my ($i, $appendn);
+ my @a = ();
+
+ while (@num) {
+ @a = ();
+ for (1 .. 3) {
+ push @a, shift @num;
+ }
+ push @numblock, join / /, reverse @a;
+ }
+
+ my $belowhundred = !$#numblock;
+
+ while (@numblock) {
+
+ $i = $#numblock;
+ @num = split //, $numblock[$i];
+ $appendn = "";
+
+ $numblock[$i] *= 1;
+
+ if ($numblock[$i] == 0) {
+ pop @numblock;
+ next;
+ }
+
+ if ($numblock[$i] > 99) {
+ # the one from hundreds
+ push @textnumber, $self->{numbername}{$num[0]};
+
+ # add hundred designation
+ push @textnumber, $self->{numbername}{10**2};
+
+ # reduce numblock
+ $numblock[$i] -= $num[0] * 100;
+ }
+
+ $appendn = 'en' if ($i == 2);
+ $appendn = 'n' if ($i > 2);
+
+ if ($numblock[$i] > 9) {
+ # tens
+ push @textnumber, $self->format_ten($numblock[$i], $belowhundred);
+ } elsif ($numblock[$i] > 1) {
+ # ones
+ push @textnumber, $self->{numbername}{$numblock[$i]};
+ } elsif ($numblock[$i] == 1) {
+ if ($i == 0) {
+ push @textnumber, $self->{numbername}{$numblock[$i]}.'s';
+ } else {
+ if ($i >= 2) {
+ push @textnumber, $self->{numbername}{$numblock[$i]}.'e';
+ } else {
+ push @textnumber, $self->{numbername}{$numblock[$i]};
+ }
+ }
+ $appendn = "";
+ }
+
+ # add thousand, million
+ if ($i) {
+ $amount = 10**($i * 3);
+ push @textnumber, $self->{numbername}{$amount}.$appendn;
+ }
+
+ pop @numblock;
+
+ }
+
+ join '', @textnumber;
+
+}
+
+
+sub format_ten {
+ my ($self, $amount, $belowhundred) = @_;
+
+ my $textnumber = "";
+ my @num = split //, $amount;
+
+ if ($amount > 20) {
+ if ($num[1] == 0) {
+ $textnumber = $self->{numbername}{$amount};
+ } else {
+ if ($belowhundred) {
+ $amount = $num[0] * 10;
+ $textnumber = $self->{numbername}{$num[1]}.'und'.$self->{numbername}{$amount};
+ } else {
+ $amount = $num[0] * 10;
+ $textnumber = $self->{numbername}{$amount}.$self->{numbername}{$num[1]};
+ $textnumber .= 's' if ($num[1] == 1);
+ }
+ }
+ } else {
+ $textnumber = $self->{numbername}{$amount};
+ }
+
+ $textnumber;
+
+}
+
+
+1;
+
diff --git a/locale/ch/aa b/locale/ch/aa
new file mode 100755
index 00000000..30fdb405
--- /dev/null
+++ b/locale/ch/aa
@@ -0,0 +1,161 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Offene Verbindlichkeiten',
+ 'AP Transaction' => 'Eingangsbuchung',
+ 'AP Transactions' => 'Eingangsbuchungen',
+ 'AR Outstanding' => 'Offene Forderungen',
+ 'AR Transaction' => 'Ausgangsbuchung',
+ 'AR Transactions' => 'Ausgangsbuchungen',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Add AP Transaction' => 'Eingangsbuchung erfassen',
+ 'Add AR Transaction' => 'Ausgangsbuchung erfassen',
+ 'Amount' => 'Betrag',
+ 'Amount Due' => 'Betrag fällig',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Transaction' => 'Soll die Buchung wirklich gelöscht werden',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Cannot delete transaction!' => 'Buchung kann nicht gelöscht werden!',
+ 'Cannot post payment for a closed period!' => 'Zahlung kann nicht gebucht werden, weil die Periode bereits abgeschlossen ist!',
+ 'Cannot post transaction for a closed period!' => 'Buchung kann nicht erfasst werden, weil die Periode bereits abgeschlossen ist!',
+ 'Cannot post transaction!' => 'Rechnung kann nicht gebucht werden!',
+ 'Check' => 'Scheck',
+ 'Closed' => 'Geschlossen',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Continue' => 'Weiter',
+ 'Credit' => 'Haben',
+ 'Credit Limit' => 'Kreditlimite',
+ 'Curr' => 'Währung',
+ 'Currency' => 'Währung',
+ 'Current' => 'Aktuell',
+ 'Customer' => 'Kunde',
+ 'Customer missing!' => 'Kundenname fehlt!',
+ 'Date' => 'Datum',
+ 'Date Paid' => 'Zahlungsdatum',
+ 'Debit' => 'Soll',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Delete' => 'Löschen',
+ 'Department' => 'Abteilung',
+ 'Description' => 'Beschreibung',
+ 'Detail' => 'Einzelheiten',
+ 'Due Date' => 'Fälligkeitsdatum',
+ 'Due Date missing!' => 'Fälligkeitsdatum fehlt!',
+ 'Edit AP Transaction' => 'Eingangsbuchung bearbeiten',
+ 'Edit AR Transaction' => 'Ausgangsbuchung bearbeiten',
+ 'Employee' => 'Verkäufer',
+ 'Exch' => 'Wkurs.',
+ 'Exchange Rate' => 'Wechselkurs',
+ 'Exchange rate for payment missing!' => 'Wechselkurs für Bezahlung fehlt!',
+ 'Exchange rate missing!' => 'Wechselkurs fehlt!',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'From' => 'Von',
+ 'ID' => 'ID',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Invoice' => 'Rechnung',
+ 'Invoice Date' => 'Rechnungsdatum',
+ 'Invoice Date missing!' => 'Rechnungsdatum fehlt!',
+ 'Invoice Number' => 'Rechnungsnummer',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Manager' => 'Geschäftsführer',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Memo' => 'Notiz',
+ 'Month' => 'Monat',
+ 'No.' => 'Pos.',
+ 'Notes' => 'Bemerkungen',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Open' => 'Offen',
+ 'Order' => 'Bestellung',
+ 'Order Number' => 'Bestellnummer',
+ 'PO Number' => 'Ihre Bestellnummer',
+ 'Paid' => 'Bezahlt',
+ 'Payment date missing!' => 'Zahlungsdatum fehlt!',
+ 'Payments' => 'Zahlungen',
+ 'Period' => 'Zeitraum',
+ 'Post' => 'Buchen',
+ 'Post as new' => 'Als neu buchen',
+ 'Print' => 'Drucken',
+ 'Print and Post' => 'Drucken und Buchen',
+ 'Print and Post as new' => 'Drucken und als neu buchen',
+ 'Project' => 'Projekt',
+ 'Quarter' => 'Quartal',
+ 'Receipt' => 'Quittung',
+ 'Remaining' => 'Rest',
+ 'Sales Invoice.' => 'Ausgangsrechnung.',
+ 'Salesperson' => 'Verkäufer',
+ 'Schedule' => 'Buchungstermine',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Ship to' => 'Lieferung an',
+ 'Ship via' => 'Versandart',
+ 'Shipping Point' => 'Lieferort',
+ 'Source' => 'Beleg',
+ 'Subtotal' => 'Zwischensumme',
+ 'Summary' => 'Zusammenfassung',
+ 'Tax' => 'MWST',
+ 'Tax Included' => 'MWST im Preis enthalten',
+ 'Till' => 'Kasse',
+ 'To' => 'Bis',
+ 'Total' => 'Total',
+ 'Transaction' => 'Buchung',
+ 'Transaction deleted!' => 'Buchung gelöscht!',
+ 'Transaction posted!' => 'Buchung getätigt!',
+ 'Update' => 'Erneuern',
+ 'Vendor' => 'Lieferant',
+ 'Vendor Invoice.' => 'Einkaufsrechnung.',
+ 'Vendor missing!' => 'Lieferant fehlt!',
+ 'Year' => 'Jahr',
+ 'Yes' => 'Ja',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'eingangsbuchung' => 'ap_transaction',
+ 'ausgangsbuchung' => 'ar_transaction',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'buchen' => 'post',
+ 'als_neu_buchen' => 'post_as_new',
+ 'drucken' => 'print',
+ 'drucken_und_buchen' => 'print_and_post',
+ 'drucken_und_als_neu_buchen' => 'print_and_post_as_new',
+ 'ausgangsrechnung_' => 'sales_invoice_',
+ 'buchungstermine' => 'schedule',
+ 'lieferung_an' => 'ship_to',
+ 'erneuern' => 'update',
+ 'einkaufsrechnung_' => 'vendor_invoice_',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/ch/admin b/locale/ch/admin
new file mode 100755
index 00000000..596f2106
--- /dev/null
+++ b/locale/ch/admin
@@ -0,0 +1,144 @@
+$self{texts} = {
+ 'Access Control' => 'Zugriffskontrolle',
+ 'Accounting' => 'Buchhaltung',
+ 'Add User' => 'Benutzer erfassen',
+ 'Address' => 'Adresse',
+ 'Administration' => 'Administration',
+ 'Administrator' => 'Administrator',
+ 'All Datasets up to date!' => 'Alle Datensets sind auf dem aktuellsten Stand',
+ 'Cannot create Lock!' => 'System kann nicht gesperrt werden!',
+ 'Change Admin Password' => 'Administratorenpasswort ändern',
+ 'Change Password' => 'Passwort ändern',
+ 'Click on login name to edit!' => 'Zum Bearbeiten den Benutzernamen anklicken!',
+ 'Company' => 'Firmenname',
+ 'Confirm' => 'Bestätigung',
+ 'Connect to' => 'Als Vorlage verwenden',
+ 'Continue' => 'Weiter',
+ 'Create Chart of Accounts' => 'Kontenplan auswählen',
+ 'Create Dataset' => 'Datenset erstellen',
+ 'DBA' => 'Datenbankadministrator',
+ 'DBI not installed!' => 'DBI ist nicht installiert!',
+ 'Database' => 'Datenbank',
+ 'Database Administration' => 'Datenbankverwaltung',
+ 'Database Driver not checked!' => 'Kein Datenbanktreiber ausgewählt!',
+ 'Database User missing!' => 'Datenbankbenutzer fehlt!',
+ 'Dataset' => 'Datenset',
+ 'Dataset missing!' => 'Datenset fehlt!',
+ 'Dataset updated!' => 'Datenset aktualisiert!',
+ 'Date Format' => 'Datumsformat',
+ 'Delete' => 'Löschen',
+ 'Delete Dataset' => 'Datenset löschen',
+ 'Directory' => 'Verzeichnis',
+ 'Driver' => 'Treiber',
+ 'Dropdown Limit' => 'Auswahllistengrenze',
+ 'E-mail' => 'E-Mail',
+ 'Edit User' => 'Benutzerdaten bearbeiten',
+ 'Existing Datasets' => 'Existierende Datensets',
+ 'Fax' => 'Fax',
+ 'Host' => 'Rechner',
+ 'Hostname missing!' => 'Rechnername fehlt!',
+ 'Language' => 'Sprache',
+ 'Lock System' => 'System sperren',
+ 'Lockfile created!' => 'gesichert!',
+ 'Lockfile removed!' => 'entsichert!',
+ 'Login' => 'Benutzername',
+ 'Login name missing!' => 'Loginname fehlt!',
+ 'Logout' => 'Abmelden',
+ 'Manager' => 'Geschäftsführer',
+ 'Menu Width' => 'Menübreite',
+ 'Multibyte Encoding' => 'Zeichensatz',
+ 'Name' => 'Name',
+ 'New Templates' => 'Neue Vorlage',
+ 'No Database Drivers available!' => 'Kein Datenbanktreiber verfügbar!',
+ 'No Dataset selected!' => 'Keine Datenset ausgewählt!',
+ 'Nothing to delete!' => 'Es wurde nichts gelöscht werden!',
+ 'Number Format' => 'Zahlenformat',
+ 'Oracle Database Administration' => 'Oracle Datenbankverwaltung',
+ 'Password' => 'Passwort',
+ 'Password changed!' => 'Passwort geändert!',
+ 'Passwords do not match!' => 'Passwörter sind nicht gleich!',
+ 'Pg Database Administration' => 'Datenbankverwaltung',
+ 'PgPP Database Administration' => 'PgPP Datenbankverwaltung',
+ 'Phone' => 'Tel.',
+ 'Port' => 'TCP-Port-Nr.',
+ 'Port missing!' => 'Port fehlt!',
+ 'Printer' => 'Standardrucker',
+ 'Save' => 'Speichern',
+ 'Session Timeout' => 'Maximale Sitzungsdauer',
+ 'Session expired!' => 'Sitzungsdauer abgelaufen!',
+ 'Setup Templates' => 'Vorlage auswählen',
+ 'Signature' => 'Signatur',
+ 'Stylesheet' => 'Stilvorlage',
+ 'Supervisor' => 'Vorarbeiter',
+ 'Templates' => 'Druckvorlagen',
+ 'The following Datasets are not in use and can be deleted' => 'Die folgenden Datensets werden nicht verwendet und können gelöscht werden',
+ 'The following Datasets need to be updated' => 'Folgende Datensets müssen aktualisiert werden',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'In diesem Schritt werden bestehende Datensets gesucht. Es werden noch keine Änderungen vorgenommen!',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Um einen neuen Benutzer hinzuzufügen, ändern und speichern Sie am einfachsten einen bestehenden Benutzer. Unter dem neuen Benutzernamen wird dann ein Benutzer mit denselben Einstellungen angelegt.',
+ 'Unlock System' => 'System entsperren',
+ 'Update Dataset' => 'Datenset aktualisieren',
+ 'Use Templates' => 'Benutze Vorlagen',
+ 'User' => 'Datenbankbenutzer',
+ 'User deleted!' => 'Benutzer gelöscht!',
+ 'User saved!' => 'Benutzer gespeichert!',
+ 'Version' => 'Version',
+ 'You are logged out' => 'Sie sind abgemeldet',
+ 'does not exist' => 'existiert nicht',
+ 'is already a member!' => 'ist bereits ein Mitglied!',
+ 'localhost' => 'localhost',
+ 'locked!' => 'gesperrt!',
+ 'successfully created!' => 'wurde erfolgreich erstellt',
+ 'successfully deleted!' => 'wurde erfolgreich gelöscht',
+ 'website' => 'Webseite',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'benutzer_erfassen' => 'add_user',
+ 'administratorenpasswort_ändern' => 'change_admin_password',
+ 'passwort_ändern' => 'change_password',
+ 'weiter' => 'continue',
+ 'datenset_erstellen' => 'create_dataset',
+ 'löschen' => 'delete',
+ 'datenset_löschen' => 'delete_dataset',
+ 'system_sperren' => 'lock_system',
+ 'benutzername' => 'login',
+ 'abmelden' => 'logout',
+ 'oracle_datenbankverwaltung' => 'oracle_database_administration',
+ 'datenbankverwaltung' => 'pg_database_administration',
+ 'pgpp_datenbankverwaltung' => 'pgpp_database_administration',
+ 'speichern' => 'save',
+ 'system_entsperren' => 'unlock_system',
+ 'datenset_aktualisieren' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/ch/all b/locale/ch/all
new file mode 100755
index 00000000..78a71bf9
--- /dev/null
+++ b/locale/ch/all
@@ -0,0 +1,954 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+
+$self{texts} = {
+ 'A' => 'A',
+ 'AP' => 'Verbindlichkeiten',
+ 'AP Aging' => 'Offene Verbindl.',
+ 'AP Outstanding' => 'Offene Verbindlichkeiten',
+ 'AP Transaction' => 'Eingangsbuchung',
+ 'AP Transactions' => 'Eingangsbuchungen',
+ 'AR' => 'Forderungen',
+ 'AR Aging' => 'Forderungenspiegel',
+ 'AR Outstanding' => 'Offene Forderungen',
+ 'AR Transaction' => 'Ausgangsbuchung',
+ 'AR Transactions' => 'Ausgangsbuchungen',
+ 'AR/AP' => 'OF/OV',
+ 'About' => 'Über',
+ 'Above' => 'Über',
+ 'Access Control' => 'Zugriffskontrolle',
+ 'Access Denied!' => 'Zugriff fehlgeschlagen!',
+ 'Account' => 'Konto',
+ 'Account Number' => 'Kontonummer',
+ 'Account Number missing!' => 'Kontonummer fehlt!',
+ 'Account Type' => 'Kontoart',
+ 'Account Type missing!' => 'Kontoart fehlt!',
+ 'Account deleted!' => 'Konto gelöscht!',
+ 'Account does not exist!' => 'Konto existiert nicht!',
+ 'Account saved!' => 'Konto gespeichert!',
+ 'Accounting' => 'Buchhaltung',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Accounts' => 'Konten',
+ 'Accrual' => 'vereinbart',
+ 'Activate Audit trail' => 'Revisionsnachfolge aktivieren',
+ 'Activate Audit trails' => 'Revisionsnachfolgen aktivieren',
+ 'Active' => 'Aktiv',
+ 'Add' => 'Hinzufügen',
+ 'Add AP Transaction' => 'Eingangsbuchung erfassen',
+ 'Add AR Transaction' => 'Ausgangsbuchung erfassen',
+ 'Add Account' => 'Konto anlegen',
+ 'Add Assembly' => 'Erzeugnis erfassen',
+ 'Add Business' => 'Branche erfassen',
+ 'Add Cash Transfer Transaction' => 'Zahlungseingang buchen',
+ 'Add Customer' => 'Kunde erfassen',
+ 'Add Deduction' => 'Abzug erfassen',
+ 'Add Department' => 'Abteilung erfassen',
+ 'Add Employee' => 'Arbeitnehmer erfassen',
+ 'Add Exchange Rate' => 'Wechselkurs erfassen',
+ 'Add GIFI' => 'GIFI anlegen',
+ 'Add General Ledger Transaction' => 'Buchung im Hauptbuch erfassen',
+ 'Add Group' => 'Gruppe erfassen',
+ 'Add Item' => 'Artikel erfassen',
+ 'Add Job' => 'Fertigung anlegen',
+ 'Add Labor/Overhead' => 'Gestehungskosten',
+ 'Add Language' => 'Sprache erfassen',
+ 'Add Order' => 'Bestellung erfassen',
+ 'Add POS Invoice' => 'Kassenbon erfassen',
+ 'Add Part' => 'Ware erfassen',
+ 'Add Pricegroup' => 'Preisgruppe erfassen',
+ 'Add Project' => 'Projekt erfassen',
+ 'Add Purchase Order' => 'Einkaufsbeleg erfassen',
+ 'Add Quotation' => 'Offerte erstellen',
+ 'Add Request for Quotation' => 'Offertanfrage',
+ 'Add SIC' => 'Euro-SIC erfassen',
+ 'Add Sales Invoice' => 'Ausgangsrechnung erfassen',
+ 'Add Sales Order' => 'Auftragsbestätigung',
+ 'Add Service' => 'Dienstleistung erfassen',
+ 'Add Stores Card' => 'Artikelkarte',
+ 'Add Time Card' => 'Stempelkarte erfassen',
+ 'Add Transaction' => 'Buchung erfassen',
+ 'Add User' => 'Benutzer erfassen',
+ 'Add Vendor' => 'Lieferant erfassen',
+ 'Add Vendor Invoice' => 'Einkaufsrechnung erfassen',
+ 'Add Warehouse' => 'Warenlager erfassen',
+ 'Address' => 'Adresse',
+ 'Administration' => 'Administration',
+ 'Administrator' => 'Administrator',
+ 'After Deduction' => 'Nach Abzug',
+ 'Aged' => 'Veraltet',
+ 'Aged Overdue' => 'Alter überfällig',
+ 'All' => 'Alle',
+ 'All Accounts' => 'Alle Konten',
+ 'All Datasets up to date!' => 'Alle Datensets sind auf dem aktuellsten Stand',
+ 'All Items' => 'Alle Artikel',
+ 'Allocated' => 'Zugeteilt',
+ 'Allowances' => 'Freibeträge',
+ 'Amount' => 'Betrag',
+ 'Amount Due' => 'Betrag fällig',
+ 'Amount missing!' => 'Betrag fehlt!',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Invoice Number' => 'Soll die Rechnung mit folgender Nummer wirklich gelöscht werden:',
+ 'Are you sure you want to delete Order Number' => 'Soll die Bestellung mit folgender Nummer wirklich gelöscht werden:',
+ 'Are you sure you want to delete Quotation Number' => 'Soll die Offerte mit folgender Nummer wirklich gelöscht werden:',
+ 'Are you sure you want to delete Transaction' => 'Soll die Buchung wirklich gelöscht werden',
+ 'Are you sure you want to delete time card for' => 'Soll die Stempelkarte folgender Person gelöscht werden',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Sollen die markierten Eintragungen gelöscht werden?',
+ 'As of' => 'As of',
+ 'Assemblies' => 'Erzeugnisse',
+ 'Assemblies restocked!' => 'Erzeugnisse wieder eingelagert!',
+ 'Assembly' => 'Erzeugnis',
+ 'Assembly stocked!' => 'Erzeugnis eingelagert!',
+ 'Asset' => 'Aktiva/Mittelverwendung',
+ 'Attachment' => 'als Anhang',
+ 'Audit Control' => 'Bücherkontrolle',
+ 'Audit trail disabled' => 'Revisionsnachfolge deaktiviert',
+ 'Audit trail enabled' => 'Revisionsnachfolge aktiviert',
+ 'Audit trail removed up to' => 'Revisionsnachfolge gelöscht bis zu',
+ 'Audit trails disabled' => 'Revisionsnachfolgen deaktiviert',
+ 'Audit trails enabled' => 'Revisionsnachfolgen aktiviert',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Authentication failed, access denied!' => 'Authentifizierung schlug fehl, Zugriff verweigert!',
+ 'Average Cost' => 'Durchschnittskosten',
+ 'Avg Cost' => 'Ø-Kosten',
+ 'BIC' => 'BIC',
+ 'BOM' => 'Stückliste',
+ 'Backup' => 'Datensicherung',
+ 'Backup sent to' => 'Eine Sicherungskopie wurde gesandt an',
+ 'Balance' => 'Bilanz',
+ 'Balance Sheet' => 'Bilanz',
+ 'Based on' => 'Basierend auf',
+ 'Batch Printing' => 'Massendruck',
+ 'Bcc' => 'Bcc',
+ 'Before Deduction' => 'Vor Abzug',
+ 'Beginning Balance' => 'Anfangsbilanz',
+ 'Below' => 'Unter',
+ 'Billing Address' => 'Rechnungsadresse',
+ 'Bin' => 'Lagerort',
+ 'Bin List' => 'Lagerliste',
+ 'Bin Lists' => 'Lagerlisten',
+ 'Books are open' => 'Die Bücher sind geöffnet',
+ 'Break' => 'Umbruch',
+ 'Business' => 'Branche',
+ 'Business Number' => 'Firmennummer',
+ 'Business deleted!' => 'Branche gelöscht!',
+ 'Business saved!' => 'Branche gespeichert!',
+ 'C' => 'G',
+ 'CC Number' => 'CC-Nummer',
+ 'COGS' => 'Aufwand',
+ 'COGS account does not exist!' => 'Konto für Kosten besteht nicht!',
+ 'Calendar' => 'Kalender',
+ 'Cannot add stores card for a completed job!' => 'Cannot add stores card for a completed job!',
+ 'Cannot add time card for a completed job!' => 'Stempelkarte kann für eine abgeschlossene Arbeit nicht erfasst werden!',
+ 'Cannot change stores card for a completed job!' => 'Cannot change stores card for a completed job!',
+ 'Cannot change time card for a completed job!' => 'Stempelkarte für eine abgeschlossene Arbeit kann nicht geändert werden!',
+ 'Cannot create Assembly' => 'Erzeugniss kann nicht angelegt werden',
+ 'Cannot create Labor' => 'Fliessbandarbeitszeit kann nicht angelegt werden',
+ 'Cannot create Lock!' => 'System kann nicht gesperrt werden!',
+ 'Cannot create Part' => 'Ware kann nicht erstellt werden',
+ 'Cannot create Service' => 'Dienstleistung kann nicht erstellt werden',
+ 'Cannot delete account!' => 'Konto kann nicht gelöscht werden!',
+ 'Cannot delete customer!' => 'Kunde kann nicht gelöscht werden!',
+ 'Cannot delete default account!' => 'Das Standard-Konto kann nicht gelöscht werden!',
+ 'Cannot delete invoice!' => 'Rechnung kann nicht gelöscht werden!',
+ 'Cannot delete item!' => 'Artikel kann nicht gelöscht werden!',
+ 'Cannot delete order!' => 'Bestellung kann nicht gelöscht werden!',
+ 'Cannot delete quotation!' => 'Offerte kann nicht gelöscht werden!',
+ 'Cannot delete time card!' => 'Stempelkarte kann nicht gelöscht werden!',
+ 'Cannot delete transaction!' => 'Buchung kann nicht gelöscht werden!',
+ 'Cannot delete vendor!' => 'Lieferant kann nicht gelöscht werden!',
+ 'Cannot post Payment!' => 'Zahlungseingang kann nicht gebucht werden!',
+ 'Cannot post Receipt!' => 'Quittung kann nicht gebucht werden!',
+ 'Cannot post invoice for a closed period!' => 'Rechnung kann nicht gebucht werden, weil die Periode bereits abgeschlossen inst!',
+ 'Cannot post invoice!' => 'Rechnung kann nicht gebucht werden!',
+ 'Cannot post payment for a closed period!' => 'Zahlung kann nicht gebucht werden, weil die Periode bereits abgeschlossen ist!',
+ 'Cannot post transaction for a closed period!' => 'Buchung kann nicht erfasst werden, weil die Periode bereits abgeschlossen ist!',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => 'Sie können eine Buchung mit Aktiva und Passiva nicht auf das selbe Konto buchen!',
+ 'Cannot post transaction!' => 'Rechnung kann nicht gebucht werden!',
+ 'Cannot remove files!' => 'Dateien können nicht gelöscht werden!',
+ 'Cannot save account!' => 'Konto kann nicht gespeichert werden!',
+ 'Cannot save defaults!' => 'Standardeinstellungen können nicht gespeichert werden!',
+ 'Cannot save order!' => 'Bestellung kann nicht gespeichert werden!',
+ 'Cannot save preferences!' => 'Benutzereinstellungen können nicht gespeichert werden!',
+ 'Cannot save quotation!' => 'Offerte kann nicht gespeichert werden!',
+ 'Cannot save stores card for a closed period!' => 'Cannot save stores card for a closed period!',
+ 'Cannot save stores card!' => 'Cannot save stores card!',
+ 'Cannot save time card for a closed period!' => 'Stempelkarte für eine geschlossene Periode kann nicht gespeichert werden!',
+ 'Cannot save time card!' => 'Stempelkarte kann nicht gespeichert werden!',
+ 'Cannot set account for more than one of AR, AP or IC' => 'AR, AP und IC Konten können nicht auf andere Konten gleichzeitig eingestellt werden',
+ 'Cannot set multiple options for' => 'Mehr als eine Optionen nicht erlaubt für : ',
+ 'Cannot set multiple options for Item' => 'Mehr als eine Auswahl ist nicht erlaubt',
+ 'Cannot stock Assembly!' => 'Erzeugnis kann nicht eingelagert werden!',
+ 'Cannot stock assemblies!' => 'Erzeugnisse können nicht eingelagert werden!',
+ 'Cash' => 'vereinnahmt',
+ 'Cc' => 'E-Mailkopie',
+ 'Change' => 'Retourgeld',
+ 'Change Admin Password' => 'Administratorenpasswort ändern',
+ 'Change Password' => 'Passwort ändern',
+ 'Chargeable' => 'Verrechenbar',
+ 'Chart of Accounts' => 'Kontenübersicht',
+ 'Check' => 'Scheck',
+ 'Check Inventory' => 'Inventar prüfen',
+ 'Checks' => 'Schecks',
+ 'City' => 'Ort',
+ 'Cleared' => 'Entlastet',
+ 'Click on login name to edit!' => 'Zum Bearbeiten den Benutzernamen anklicken!',
+ 'Clocked' => 'Ausgerechnet',
+ 'Close Books up to' => 'Die Bücher abschliessen bis zum',
+ 'Closed' => 'Geschlossen',
+ 'Code' => 'Sprachcode',
+ 'Code missing!' => 'Sprachcode fehlt!',
+ 'Company' => 'Firmenname',
+ 'Company Name' => 'Firmenname',
+ 'Compare to' => 'Vergleichen mit',
+ 'Completed' => 'Fertig',
+ 'Components' => 'Einzelteile',
+ 'Confirm' => 'Bestätigung',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Connect to' => 'Als Vorlage verwenden',
+ 'Consolidate' => 'Konsolidieren',
+ 'Consolidate Orders' => 'Bestellungen konsolidieren',
+ 'Consolidate Purchase Orders' => 'Einkaufsbestellungen konsolidieren',
+ 'Consolidate Sales Orders' => 'Verkaufsbestellungen konsolidieren',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Weiter',
+ 'Contra' => 'Gegenkonto',
+ 'Copies' => 'Kopien',
+ 'Copy to COA' => 'In Kontenplan kopieren',
+ 'Cost' => 'Kosten',
+ 'Cost Center' => 'Kostenstelle',
+ 'Could not save pricelist!' => 'Preisliste konnte nicht gespeichert werden!',
+ 'Could not save!' => 'Konnte nicht gespeichert werden!',
+ 'Could not transfer Inventory!' => 'Inventar wurde nicht übertragen!',
+ 'Country' => 'Land',
+ 'Create Chart of Accounts' => 'Kontenplan auswählen',
+ 'Create Dataset' => 'Datenset erstellen',
+ 'Credit' => 'Haben',
+ 'Credit Invoice' => 'Credit Invoice',
+ 'Credit Limit' => 'Kreditlimite',
+ 'Curr' => 'Währung',
+ 'Currency' => 'Währung',
+ 'Current' => 'Aktuell',
+ 'Current Earnings' => 'Aktuelles Einkommen',
+ 'Customer' => 'Kunde',
+ 'Customer History' => 'Alle Belege für Kunde',
+ 'Customer Number' => 'Kundennummer',
+ 'Customer deleted!' => 'Kunde gelöscht!',
+ 'Customer missing!' => 'Kundenname fehlt!',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Customer saved!' => 'Kunde gespeichert!',
+ 'Customers' => 'Kunden',
+ 'DBA' => 'Datenbankadministrator',
+ 'DBI not installed!' => 'DBI ist nicht installiert!',
+ 'DOB' => 'Geburtsdatum',
+ 'Database' => 'Datenbank',
+ 'Database Administration' => 'Datenbankverwaltung',
+ 'Database Driver not checked!' => 'Kein Datenbanktreiber ausgewählt!',
+ 'Database Host' => 'Datenbank-Rechner',
+ 'Database User missing!' => 'Datenbankbenutzer fehlt!',
+ 'Dataset' => 'Datenset',
+ 'Dataset is newer than version!' => 'Datenset ist neuer als installierte Version',
+ 'Dataset missing!' => 'Datenset fehlt!',
+ 'Dataset updated!' => 'Datenset aktualisiert!',
+ 'Date' => 'Datum',
+ 'Date Format' => 'Datumsformat',
+ 'Date Paid' => 'Zahlungsdatum',
+ 'Date Received' => 'Eingangsdatum',
+ 'Date missing!' => 'Datum fehlt!',
+ 'Date received missing!' => 'Eingangsdatum fehlt!',
+ 'Date worked' => 'Datum',
+ 'Day' => 'Tag',
+ 'Day(s)' => 'Tage',
+ 'Days' => 'Tage',
+ 'Debit' => 'Soll',
+ 'Debit Invoice' => 'Debit Invoice',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Decimalplaces' => 'Dezimalstellen',
+ 'Decrease' => 'Verminderung',
+ 'Deduct after' => 'Abzug nach',
+ 'Deduction deleted!' => 'Abzug gelöscht!',
+ 'Deduction saved!' => 'Abzug gespeichert!',
+ 'Deductions' => 'Abzüge',
+ 'Default Template' => 'Standardvorlage',
+ 'Defaults' => 'Einstellungen',
+ 'Defaults saved!' => 'Einstellungen gespeichert!',
+ 'Delete' => 'Löschen',
+ 'Delete Account' => 'Konto löschen',
+ 'Delete Dataset' => 'Datenset löschen',
+ 'Delete Schedule' => 'Zeitplan löschen',
+ 'Deleting a language will also delete the templates for the language' => 'Wenn die Sprache gelöscht wird werden auch die dazugehörigen Vorlagen gelöscht',
+ 'Delivery Date' => 'Lieferdatum',
+ 'Department' => 'Abteilung',
+ 'Department deleted!' => 'Abteilung gelöscht!',
+ 'Department saved!' => 'Abteilung gespeichert!',
+ 'Departments' => 'Abteilungen',
+ 'Deposit' => 'Gutschrift',
+ 'Description' => 'Beschreibung',
+ 'Description Translations' => 'Übersetzte Beschreibungen',
+ 'Description missing!' => 'Beschreibung fehlt!',
+ 'Detail' => 'Einzelheiten',
+ 'Difference' => 'Differenz',
+ 'Directory' => 'Verzeichnis',
+ 'Discount' => 'Rabatt',
+ 'Done' => 'Fertig',
+ 'Drawing' => 'Zeichnung',
+ 'Driver' => 'Treiber',
+ 'Dropdown Limit' => 'Auswahllistengrenze',
+ 'Due Date' => 'Fälligkeitsdatum',
+ 'Due Date missing!' => 'Fälligkeitsdatum fehlt!',
+ 'E-mail' => 'E-Mail',
+ 'E-mail ' => 'E-Mail ',
+ 'E-mail Statement to' => 'Mahnung per E-Mail an',
+ 'E-mail address missing!' => 'E-Mail-Adresse fehlt!',
+ 'E-mail message' => 'E-Mail-Nachricht ',
+ 'E-mail missing!' => 'E-Mail fehlt!',
+ 'E-mailed' => 'E-Mail gesendet',
+ 'Edit' => 'Bearbeiten',
+ 'Edit AP Transaction' => 'Eingangsbuchung bearbeiten',
+ 'Edit AR Transaction' => 'Ausgangsbuchung bearbeiten',
+ 'Edit Account' => 'Kontodaten bearbeiten',
+ 'Edit Assembly' => 'Erzeugnis bearbeiten',
+ 'Edit Business' => 'Branche bearbeiten',
+ 'Edit Cash Transfer Transaction' => 'Überweisung bearbeiten',
+ 'Edit Customer' => 'Kundendaten bearbeiten',
+ 'Edit Deduction' => 'Abzug bearbeiten',
+ 'Edit Department' => 'Abteilung bearbeiten',
+ 'Edit Description Translations' => 'Übersetzte Beschreibungen bearbeiten',
+ 'Edit Employee' => 'Arbeitnehmer bearbeiten',
+ 'Edit GIFI' => 'GIFI bearbeiten',
+ 'Edit General Ledger Transaction' => 'Buchung im Hauptbuch bearbeiten',
+ 'Edit Group' => 'Gruppe bearbeiten',
+ 'Edit Job' => 'Auftrag bearbeiten',
+ 'Edit Labor/Overhead' => 'Gestehungskostenkosten bearbeiten',
+ 'Edit Language' => 'Sprache bearbeiten',
+ 'Edit Order' => 'Bestellung bearbeiten',
+ 'Edit POS Invoice' => 'Kassenbon bearbeiten',
+ 'Edit Part' => 'Ware bearbeiten',
+ 'Edit Preferences for' => 'Benutzereinstellungen bearbeiten für',
+ 'Edit Pricegroup' => 'Preisgruppe bearbeiten',
+ 'Edit Project' => 'Projekt bearbeiten',
+ 'Edit Purchase Order' => 'Einkaufsbestellung bearbeiten',
+ 'Edit Quotation' => 'Offerte bearbeiten',
+ 'Edit Request for Quotation' => 'Offerte bearbeiten',
+ 'Edit SIC' => 'Euro-SIC bearbeiten',
+ 'Edit Sales Invoice' => 'Ausgangsrechnung bearbeiten',
+ 'Edit Sales Order' => 'Verkaufsbeleg bearbeiten',
+ 'Edit Service' => 'Dienstleistung bearbeiten',
+ 'Edit Template' => 'Vorlage bearbeiten',
+ 'Edit Time Card' => 'Stempelkarte bearbeiten',
+ 'Edit User' => 'Benutzerdaten bearbeiten',
+ 'Edit Vendor' => 'Lieferantendaten bearbeiten',
+ 'Edit Vendor Invoice' => 'Einkaufsrechnung bearbeiten',
+ 'Edit Warehouse' => 'Warenlager bearbeiten',
+ 'Email' => 'E-Mail',
+ 'Employee' => 'Verkäufer',
+ 'Employee Name' => 'Mitarbeitername',
+ 'Employee Number' => 'Mitarbeiternummer',
+ 'Employee deleted!' => 'Mitarbeiter gelöscht!',
+ 'Employee pays' => 'Mitarbeiter bezahlt',
+ 'Employee saved!' => 'Mitarbeiter gespeichert!',
+ 'Employees' => 'Mitarbeiter',
+ 'Employer' => 'Arbeitgeber',
+ 'Employer pays' => 'Arbeitgeber bezahlt',
+ 'Enddate' => 'Austrittsdatum',
+ 'Ends' => 'Abschluss',
+ 'Enforce transaction reversal for all dates' => 'Kontraeintragungen für jeden Zeitraum aktualisieren',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Durch Doppelpunkte getrennte Währungskürzel mit maximal 3 Buchstaben aufführen; die eigene Landeswährung zuerst (z.B. CHF:EUR:USD)',
+ 'Equity' => 'Passiva/Eigenkapital',
+ 'Every' => 'Jeden',
+ 'Excempt age <' => 'Befreiungsalter <',
+ 'Exch' => 'Wkurs.',
+ 'Exchange Rate' => 'Wechselkurs',
+ 'Exchange rate for payment missing!' => 'Wechselkurs für Bezahlung fehlt!',
+ 'Exchange rate missing!' => 'Wechselkurs fehlt!',
+ 'Exempt age <' => 'Befreiheitsalter <',
+ 'Existing Datasets' => 'Existierende Datensets',
+ 'Expense' => 'Aufwand',
+ 'Expense account does not exist!' => 'Es existiert kein Konto für Unkosten!',
+ 'Expense/Asset' => 'Aufwand/Anlagen',
+ 'Expiry Date' => 'Verfallsdatum',
+ 'Extended' => 'Summe',
+ 'FX' => 'FX',
+ 'Failed to save order!' => 'Speichern der Bestellung schlug fehl!',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'For' => 'für',
+ 'Foreign Exchange Gain' => 'Wechselkurserträge',
+ 'Foreign Exchange Loss' => 'Wechselkursverluste',
+ 'Forgot Password' => 'Passwort vergessen',
+ 'Friday' => 'Freitag',
+ 'From' => 'Von',
+ 'From Warehouse' => 'Vom Lagerhaus',
+ 'GIFI' => 'GIFI',
+ 'GIFI deleted!' => 'GIFI gelöscht!',
+ 'GIFI missing!' => 'GIFI fehlt!',
+ 'GIFI saved!' => 'GIFI gespeichert!',
+ 'GL' => 'Hauptbuch',
+ 'GL Reference Number' => 'Hauptbuchreferenz',
+ 'GL Transaction' => 'Hauptbuchbuchung',
+ 'General Ledger' => 'Hauptbuch',
+ 'Generate' => 'Erzeugen',
+ 'Generate Orders' => 'Aufträge erstellen',
+ 'Generate Purchase Orders' => 'Bestellungen erstellen',
+ 'Generate Purchase Orders from Sales Order' => 'Bestellungen von Aufträgen erstellen',
+ 'Generate Sales Order' => 'Einkaufsbestellung erstellen',
+ 'Generate Sales Order from Purchase Orders' => 'Auftrag anhand von Bestellungen erstellen',
+ 'Generate Sales Orders' => 'Einkaufsbestellungen erstellen',
+ 'Goods & Services' => 'Waren & Dienstleistungen',
+ 'Group' => 'Warengruppe',
+ 'Group Items' => 'Artikel sortieren',
+ 'Group Translations' => 'Gruppenübersetzung',
+ 'Group deleted!' => 'Gruppe gelöscht!',
+ 'Group missing!' => 'Gruppe fehlt!',
+ 'Group saved!' => 'Gruppe gespeichert!',
+ 'Groups' => 'Gruppen',
+ 'HR' => 'Personal',
+ 'HTML Templates' => 'HTML Vorlagen',
+ 'Heading' => 'Überschrift',
+ 'History' => 'Statistik',
+ 'Home Phone' => 'Tel Privat',
+ 'Host' => 'Rechner',
+ 'Hostname missing!' => 'Rechnername fehlt!',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Image' => 'Bild',
+ 'In-line' => 'im Textkörper (Inline)',
+ 'Inactive' => 'Inaktiv',
+ 'Include Exchange Rate Difference' => 'Wechselkursunterschied aufnehmen',
+ 'Include Payment' => 'Bezahlung reinnehmen',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Include in drop-down menus' => 'In Aufklapp-Menü aufnehmen',
+ 'Income' => 'Ertrag',
+ 'Income Statement' => 'Gewinn- und Verlustrechnung',
+ 'Income account does not exist!' => 'Es existiert kein Konto für Einnahmen!',
+ 'Incorrect Dataset version!' => 'Ungültigige Datenset-Version',
+ 'Increase' => 'Erhöhen',
+ 'Individual Items' => 'Einzelteile',
+ 'Internal Notes' => 'Interne Notizen',
+ 'Inventory' => 'Inventar',
+ 'Inventory account does not exist!' => 'Es existiert kein Konto für Inventar!',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Bevor dieses Erzeugnis als ungültig markiert werden kann muss das Inventar auf Null sein!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Bevor diese Ware als ungültig markiert werden kann muss das Inventar Null sein!',
+ 'Inventory saved!' => 'Inventar gespeichert!',
+ 'Inventory transferred!' => 'Inventar übertragen',
+ 'Invoice' => 'Rechnung',
+ 'Invoice Date' => 'Rechnungsdatum',
+ 'Invoice Date missing!' => 'Rechnungsdatum fehlt!',
+ 'Invoice Number' => 'Rechnungsnummer',
+ 'Invoice Number missing!' => 'Rechnungsnummer fehlt!',
+ 'Invoice deleted!' => 'Rechung gelöscht!',
+ 'Invoices' => 'Rechnungen',
+ 'Is this a summary account to record' => 'Summenkonto für',
+ 'Item' => 'Pos',
+ 'Item already on pricelist!' => 'Artikel ist bereits in der Preisliste!',
+ 'Item deleted!' => 'Artikel gelöscht!',
+ 'Item not on file!' => 'Dieser Artikel ist nicht in der Datenbank!',
+ 'Items' => 'Artikel',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Job' => 'Auftrag',
+ 'Job Description' => 'Auftragsbeschreibung',
+ 'Job Name' => 'Auftragsname',
+ 'Job Number' => 'Auftragsnummer',
+ 'Job Number missing!' => 'Auftragsnummer fehlt!',
+ 'Job deleted!' => 'Auftrag gelöscht!',
+ 'Job saved!' => 'Auftrag gespeichert!',
+ 'Job/Project Number' => 'Autrags-/Projektnummer',
+ 'Jobs' => 'Aufträge',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'LaTeX Templates' => 'LaTeX Vorlagen',
+ 'Labor Code' => 'Arbeitscode',
+ 'Labor Code missing!' => 'Arbeitscode fehlt!',
+ 'Labor/Overhead' => 'Gestehungskosten',
+ 'Language' => 'Sprache',
+ 'Language deleted!' => 'Sprache gelöscht!',
+ 'Language saved!' => 'Sprache gespeichert!',
+ 'Languages' => 'Sprachen',
+ 'Languages not defined!' => 'Sprachen nicht definiert!',
+ 'Last Cost' => 'Letzte Kosten',
+ 'Last Numbers & Default Accounts' => 'Laufende Zähler und Standardkonten',
+ 'Lead' => 'Anlaufzeit',
+ 'Leadtime' => 'Vorlaufzeit',
+ 'Leave host and port field empty unless you want to make a remote connection.' => 'Für lokale Verbindungen "Rechner" und "Port" freilassen.',
+ 'Liability' => 'Passiva/Mittelherkunft',
+ 'Licensed to' => 'Lizensiert für',
+ 'Line Total' => 'Zeilensumme',
+ 'Link' => 'Verknüpfungen',
+ 'Link Accounts' => 'Konten verknüpfen',
+ 'List' => 'Auflisten',
+ 'List Accounts' => 'Kontenliste',
+ 'List Businesses' => 'Branche aufzeigen',
+ 'List Departments' => 'Abteilungen aufzeigen',
+ 'List GIFI' => 'GIFI aufzeigen',
+ 'List Languages' => 'Sprachen aufzeigen',
+ 'List Price' => 'Listenpreis',
+ 'List Projects' => 'Projekte aufzeigen',
+ 'List SIC' => 'Euro-SIC aufzeigen',
+ 'List Transactions' => 'Buchungsliste',
+ 'List Warehouses' => 'Warenlager aufzeigen',
+ 'Lock System' => 'System sperren',
+ 'Lockfile created!' => 'gesichert!',
+ 'Lockfile removed!' => 'entsichert!',
+ 'Login' => 'Benutzername',
+ 'Login name missing!' => 'Loginname fehlt!',
+ 'Logout' => 'Abmelden',
+ 'Make' => 'Hersteller',
+ 'Manager' => 'Geschäftsführer',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'Marked entries printed!' => 'Markierte Einträge gedruckt!',
+ 'Markup' => 'Marge',
+ 'Maximum' => 'Höchstens',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Memo' => 'Notiz',
+ 'Menu Width' => 'Menübreite',
+ 'Message' => 'Nachricht',
+ 'Method' => 'Abrechnungsmethode',
+ 'Microfiche' => 'Mikrofilm',
+ 'Model' => 'Modell',
+ 'Monday' => 'Montag',
+ 'Month' => 'Monat',
+ 'Month(s)' => 'Monat(e)',
+ 'Months' => 'Monate',
+ 'Multibyte Encoding' => 'Zeichensatz',
+ 'N/A' => 'N.Z.',
+ 'Name' => 'Name',
+ 'Name missing!' => 'Name fehlt!',
+ 'Name on Card' => 'Name auf Karte',
+ 'Net Amount' => 'Nettobetrag',
+ 'New Templates' => 'Neue Vorlage',
+ 'New Window' => 'Neues Fenster',
+ 'Next' => 'Nächste',
+ 'Next Date' => 'Nächstes Datum',
+ 'Next Number' => 'Nächste Nummer',
+ 'No' => 'Nein',
+ 'No Database Drivers available!' => 'Kein Datenbanktreiber verfügbar!',
+ 'No Dataset selected!' => 'Keine Datenset ausgewählt!',
+ 'No Employees on file!' => 'Kein Mitarbeiter in Datenbank!',
+ 'No History!' => 'Kein Verlauf!',
+ 'No Labor codes on file!' => 'Kein Arbeitscode auf Datenbank!',
+ 'No Parts on file!' => 'Keine Artikel auf Datenbank!',
+ 'No Services on file!' => 'Keine Dienstleistungen auf Datenbank!',
+ 'No email address for' => 'Keine E-Mailadresse für',
+ 'No open Jobs!' => 'Keine offene Aufträge!',
+ 'No open Projects!' => 'Keine offene Projekte!',
+ 'No.' => 'Pos.',
+ 'Non-chargeable' => 'Nicht verrechenbar',
+ 'Non-taxable' => 'MWST-frei',
+ 'Non-taxable Purchases' => 'MSTF-freie Einkäufe',
+ 'Non-taxable Sales' => 'MSTF-freie Verkäufe',
+ 'Non-tracking Items' => 'Nicht lagernde Artikel',
+ 'Notes' => 'Bemerkungen',
+ 'Nothing entered!' => 'Es wurde nichts eingegeben!',
+ 'Nothing open!' => 'Nichts geöffnet!',
+ 'Nothing selected!' => 'Es wurde nichts ausgewählt!',
+ 'Nothing to delete!' => 'Es wurde nichts gelöscht werden!',
+ 'Nothing to print!' => 'Es wurde nichts gedruckt!',
+ 'Nothing to transfer!' => 'Es gibt nichts zu übertragen!',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Artikelnummer',
+ 'Number Format' => 'Zahlenformat',
+ 'Number missing in Row' => 'Nummer fehlt in Zeile',
+ 'O' => 'O',
+ 'OH' => 'LU',
+ 'Obsolete' => 'Ungültig',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'On Hand' => 'am Lager',
+ 'Onhand' => 'am Lager',
+ 'Open' => 'Offen',
+ 'Oracle Database Administration' => 'Oracle Datenbankverwaltung',
+ 'Order' => 'Bestellung',
+ 'Order Date' => 'Bestelldatum',
+ 'Order Date missing!' => 'Bestelldatum fehlt!',
+ 'Order Entry' => 'Bestellungen',
+ 'Order Number' => 'Bestellnummer',
+ 'Order Number missing!' => 'Bestellnummer fehlt!',
+ 'Order deleted!' => 'Bestellung gelöscht!',
+ 'Order generation failed!' => 'Auftragserstellung fehlgeschlagen!',
+ 'Order saved!' => 'Bestellung gespeichert!',
+ 'Orders' => 'Bestellungen',
+ 'Orders generated!' => 'Bestellungen erstellt!',
+ 'Orphaned' => 'nie benutzt',
+ 'Out of balance transaction!' => 'Soll und Haben sind nicht gleich!',
+ 'Out of balance!' => 'Summen stimmen nicht überein!',
+ 'Outstanding' => 'Offen',
+ 'Overdue' => 'Überfällig',
+ 'PDF' => 'PDF',
+ 'PO' => 'Einkaufsbestellung',
+ 'PO Number' => 'Ihre Bestellnummer',
+ 'POS' => 'Kasse',
+ 'POS Invoice' => 'Kassenabrechnung',
+ 'Packing List' => 'Packliste',
+ 'Packing List Date missing!' => 'Verpackungslisten-Datum fehlt!',
+ 'Packing List Number missing!' => 'Verpackungslistennummer fehlt!',
+ 'Packing Lists' => 'Packlisten',
+ 'Paid' => 'Bezahlt',
+ 'Part' => 'Artikel',
+ 'Part Number' => 'Artikelnummer',
+ 'Partnumber' => 'Materialnummer',
+ 'Parts' => 'Waren',
+ 'Parts Requirements' => 'benötigte Artikel',
+ 'Password' => 'Passwort',
+ 'Password changed!' => 'Passwort geändert!',
+ 'Password does not match!' => 'Passworteingabe nicht gleich!',
+ 'Password saved!' => 'Passwort gespeichert!',
+ 'Passwords do not match!' => 'Passwörter sind nicht gleich!',
+ 'Payables' => 'Verbindlichkeiten',
+ 'Payment' => 'Belastung',
+ 'Payment date missing!' => 'Zahlungsdatum fehlt!',
+ 'Payment posted!' => 'Zahlung gebucht!',
+ 'Payments' => 'Zahlungen',
+ 'Payments posted!' => 'Bezahlungen gebucht!',
+ 'Payroll Deduction' => 'Lohnabzug',
+ 'Period' => 'Zeitraum',
+ 'Pg Database Administration' => 'Datenbankverwaltung',
+ 'PgPP Database Administration' => 'PgPP Datenbankverwaltung',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Lagerliste',
+ 'Pick Lists' => 'Lagerlisten',
+ 'Port' => 'TCP-Port-Nr.',
+ 'Port missing!' => 'Port fehlt!',
+ 'Pos' => 'Pos',
+ 'Post' => 'Buchen',
+ 'Post as new' => 'Als neu buchen',
+ 'Posted!' => 'Verbucht!',
+ 'Posting' => 'Buchung',
+ 'Posting failed!' => 'Buchen fehlgeschlagen!',
+ 'Postscript' => 'Postscript',
+ 'Preferences' => 'Benutzereinstellungen',
+ 'Preferences saved!' => 'Benutzereinstellungen gespeichert!',
+ 'Prepayment' => 'Anzahlung',
+ 'Price' => 'Preis',
+ 'Pricegroup' => 'Preisgruppe',
+ 'Pricegroup deleted!' => 'Preisgruppe gelöscht!',
+ 'Pricegroup missing!' => 'Preisgruppe fehlt!',
+ 'Pricegroup saved!' => 'Preisgruppe gespeichert!',
+ 'Pricegroups' => 'Preisgruppen',
+ 'Pricelist' => 'Preisliste',
+ 'Print' => 'Drucken',
+ 'Print and Post' => 'Drucken und Buchen',
+ 'Print and Post as new' => 'Drucken und als neu buchen',
+ 'Print and Save' => 'Drucken und speichern',
+ 'Print and Save as new' => 'Drucken und als neu speichern',
+ 'Printed' => 'Gedruckt',
+ 'Printer' => 'Standardrucker',
+ 'Printing' => 'Druckt',
+ 'Printing ... ' => 'Druckt ... ',
+ 'Process Transactions' => 'Buchungen erstellen',
+ 'Production' => 'Produktion',
+ 'Profit Center' => 'Profit-Center',
+ 'Project' => 'Projekt',
+ 'Project Description Translations' => 'Übersetzung für Projektbeschreibungen',
+ 'Project Name' => 'Projektname',
+ 'Project Number' => 'Projektnummer',
+ 'Project Number missing!' => 'Projektnummer fehlt!',
+ 'Project Transactions' => 'Projektbuchungen',
+ 'Project deleted!' => 'Projekt gelöscht!',
+ 'Project not on file!' => 'Dieses Projekt ist nicht in der Datenbank!',
+ 'Project saved!' => 'Projekt gespeichert!',
+ 'Project/Job Name' => 'Projekt-/Auftragsname',
+ 'Project/Job Number' => 'Projekt-/Aufgragsnummer',
+ 'Projects' => 'Projekte',
+ 'Purchase Order' => 'Einkaufsbestellung',
+ 'Purchase Order Number' => 'Einkaufsbestellnummer',
+ 'Purchase Orders' => 'Einkaufsbestellungen',
+ 'Qty' => 'Menge',
+ 'Quantity exceeds available units to stock!' => 'Anzahl ist grösser als der Lagerbestand!',
+ 'Quarter' => 'Quartal',
+ 'Queue' => 'Warteschlange',
+ 'Queued' => 'In Warteschlange',
+ 'Quotation' => 'Offerte',
+ 'Quotation ' => 'Verkaufsofferte',
+ 'Quotation Date' => 'Offertendatum',
+ 'Quotation Date missing!' => 'Offertendatum fehlt!',
+ 'Quotation Number' => 'Offertenummer',
+ 'Quotation Number missing!' => 'Offertenummer fehlt!',
+ 'Quotation deleted!' => 'Offerte gelöscht!',
+ 'Quotations' => 'Offerten',
+ 'R' => 'R',
+ 'RFQ' => 'Offertanfrage',
+ 'RFQ ' => 'Einkaufsofferte ',
+ 'RFQ Number' => 'Einkaufsoffertennummer',
+ 'RFQs' => 'Offerteanfragen',
+ 'ROP' => 'Lagerbestand Untergrenze',
+ 'Rate' => '%',
+ 'Rate missing!' => 'Prozentsatz fehlt!',
+ 'Recd' => 'Erh',
+ 'Receipt' => 'Quittung',
+ 'Receipt posted!' => 'Einnahme gebucht!',
+ 'Receipts' => 'Quittungen',
+ 'Receivables' => 'Forderungen',
+ 'Receive' => 'Einlagern',
+ 'Receive Merchandise' => 'Artikeln einlagern',
+ 'Reconciliation' => 'Kontenabgleich',
+ 'Reconciliation Report' => 'Kontenabgleichungsreport',
+ 'Record in' => 'Buchen auf',
+ 'Recurring Transaction' => 'Wiederkehrende Buchung',
+ 'Recurring Transactions' => 'Wiederkehrende Buchungen',
+ 'Reference' => 'Referenz',
+ 'Remaining' => 'Rest',
+ 'Remove' => 'Entfernen',
+ 'Remove Audit trail up to' => 'Revisionsnachfolge löschen bis zu',
+ 'Remove Audit trails up to' => 'Revisionsnachfolge löschen bis zu',
+ 'Removed spoolfiles!' => 'Spoolfiles gelöscht!',
+ 'Removing marked entries from queue ...' => 'Markierte Einträge gelöscht ...',
+ 'Repeat' => 'Wiederholen',
+ 'Report for' => 'Bericht für',
+ 'Reports' => 'Berichte',
+ 'Req' => 'Ben.',
+ 'Request for Quotation' => 'Offerteanfrage',
+ 'Request for Quotations' => 'Offertenanfragen',
+ 'Request transmitted!' => 'Anfrage übermittelt!',
+ 'Required by' => 'Erforderlich bis am',
+ 'Requirements' => 'Benötigte Teile',
+ 'Retained Earnings' => 'Verbliebenes Einkommen',
+ 'Role' => 'Stellung',
+ 'S' => 'A',
+ 'SIC' => 'Euro-SIC',
+ 'SIC deleted!' => 'Euro-SIC gelöscht!',
+ 'SIC saved!' => 'Euro-SIC gespeichert!',
+ 'SKU' => 'Lagerhaltungseinheit',
+ 'SO' => 'SO',
+ 'SSN' => 'MWST-Nummer',
+ 'Sale' => 'Verkauf',
+ 'Sales' => 'Warenverkauf',
+ 'Sales Invoice' => 'Ausgangsrechnung',
+ 'Sales Invoice ' => 'Ausgangsrechnung ',
+ 'Sales Invoice.' => 'Ausgangsrechnung.',
+ 'Sales Invoice/AR Transaction Number' => 'Verkaufsrechnung-/Buchungsnummer',
+ 'Sales Invoices' => 'Ausgangsrechnungen',
+ 'Sales Order' => 'Auftragsbestätigung',
+ 'Sales Order Number' => 'Auftragsbestätigungsnummer',
+ 'Sales Orders' => 'Auftragsbestätigungen',
+ 'Sales Quotation Number' => 'Offertennummer',
+ 'Salesperson' => 'Verkäufer',
+ 'Saturday' => 'Samstag',
+ 'Save' => 'Speichern',
+ 'Save ' => 'Speichern ',
+ 'Save Pricelist' => 'Preisliste speichern',
+ 'Save Schedule' => 'Zeitplan speichern',
+ 'Save as new' => 'als neu speichern',
+ 'Save to File' => 'Auf Festplatte speichern',
+ 'Saving' => 'Speichert',
+ 'Schedule' => 'Buchungstermine',
+ 'Scheduled' => 'geplant',
+ 'Screen' => 'Bildschirm',
+ 'Search' => 'Suchen',
+ 'Select' => 'Auswählen',
+ 'Select Customer' => 'Kunde auswählen',
+ 'Select Vendor' => 'Lieferant auswählen',
+ 'Select a Printer!' => 'Drucker auswählen!',
+ 'Select a printer!' => 'Drucker auswählen',
+ 'Select all' => 'Alle auswählen',
+ 'Select from one of the items below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
+ 'Select items' => 'Bitte wählen Sie aus',
+ 'Select payment' => 'Zahlung auswählen',
+ 'Select postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Select txt, postscript or PDF!' => 'Text, Postscript oder PDF auswählen!',
+ 'Sell' => 'Verkaufspreis',
+ 'Sell Price' => 'Verkaufspreis',
+ 'Send by E-Mail' => 'Per E-Mail senden',
+ 'Sending' => 'Senden',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Serial No.' => 'Seriennummer',
+ 'Serial Number' => 'Seriennummer',
+ 'Service' => 'Dienstleistung',
+ 'Service Code' => 'Dienstleistungscode',
+ 'Service Code missing!' => 'Dienstleistungscode fehlt!',
+ 'Service/Labor Code' => 'Dienstleistungs-/Arbeitscode fehlt!',
+ 'Services' => 'Leistungen',
+ 'Session Timeout' => 'Maximale Sitzungsdauer',
+ 'Session expired!' => 'Sitzungsdauer abgelaufen!',
+ 'Setup Templates' => 'Vorlage auswählen',
+ 'Ship' => 'Versenden',
+ 'Ship Merchandise' => 'Waren versenden',
+ 'Ship to' => 'Lieferung an',
+ 'Ship via' => 'Versandart',
+ 'Shipping' => 'Versand',
+ 'Shipping Address' => 'Lieferanschrift',
+ 'Shipping Date' => 'Versanddatum',
+ 'Shipping Date missing!' => 'Versanddatum fehlt!',
+ 'Shipping Point' => 'Lieferort',
+ 'Short' => 'Kurz',
+ 'Signature' => 'Signatur',
+ 'Source' => 'Beleg',
+ 'Spoolfile' => 'Spoolfile',
+ 'Standard' => 'Standard',
+ 'Standard Industrial Codes' => 'Standard Industrie Norm',
+ 'Startdate' => 'Eintrittsdatum',
+ 'State' => 'Zustand',
+ 'State/Province' => 'Kanton',
+ 'Statement' => 'Zahlungserinnerung',
+ 'Statement Balance' => 'Auszugsbilanz',
+ 'Statement sent to' => 'Zahlungserinnerung verschickt an',
+ 'Statements sent to printer!' => 'Zahlungserinnerungen gedruckt!',
+ 'Stock' => 'Einlagern',
+ 'Stock Assembly' => 'Erzeugnis einlagern',
+ 'Stock Finished Goods' => 'Lager fertiggestellte Güter',
+ 'Stores Card' => 'Stores Card',
+ 'Stores Card saved!' => 'Stores Card saved!',
+ 'Stores Cards' => 'Stores Cards',
+ 'Stylesheet' => 'Stilvorlage',
+ 'Sub-contract GIFI' => 'Unterlieferant GIFI',
+ 'Subject' => 'Betreff',
+ 'Subtotal' => 'Zwischensumme',
+ 'Summary' => 'Zusammenfassung',
+ 'Sunday' => 'Sonntag',
+ 'Supervisor' => 'Vorarbeiter',
+ 'System' => 'System',
+ 'System Defaults' => 'System-Standard-Einstellungen',
+ 'Tax' => 'MWST',
+ 'Tax Account' => 'MWST-Konto',
+ 'Tax Accounts' => 'MWST-Konten',
+ 'Tax Included' => 'MWST im Preis enthalten',
+ 'Tax Number' => 'MWST-Nummer',
+ 'Tax Number / SSN' => 'MWST-Nummer',
+ 'Tax collected' => 'vereinnahmte MWST',
+ 'Tax paid' => 'Vorsteuer',
+ 'Taxable' => 'MWST-pflichtig',
+ 'Template saved!' => 'Druckvorlage gespeichert!',
+ 'Templates' => 'Druckvorlagen',
+ 'Terms' => 'Zahlungsbedingungen',
+ 'Text' => 'Text',
+ 'Text Templates' => 'Text Vorlagen',
+ 'The following Datasets are not in use and can be deleted' => 'Die folgenden Datensets werden nicht verwendet und können gelöscht werden',
+ 'The following Datasets need to be updated' => 'Folgende Datensets müssen aktualisiert werden',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'In diesem Schritt werden bestehende Datensets gesucht. Es werden noch keine Änderungen vorgenommen!',
+ 'Thursday' => 'Donnerstag',
+ 'Till' => 'Kasse',
+ 'Time' => 'Zeit',
+ 'Time Card' => 'Stempelkarte',
+ 'Time Card deleted!' => 'Stempelkarte gelöscht!',
+ 'Time Card saved!' => 'Stempelkarte gespeichert!',
+ 'Time Cards' => 'Stempelkarten',
+ 'Time In' => 'Eingestempelt',
+ 'Time Out' => 'Ausgestempelt',
+ 'Times' => 'mal',
+ 'To' => 'Bis',
+ 'To Warehouse' => 'Zum Lager',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Um einen neuen Benutzer hinzuzufügen, ändern und speichern Sie am einfachsten einen bestehenden Benutzer. Unter dem neuen Benutzernamen wird dann ein Benutzer mit denselben Einstellungen angelegt.',
+ 'Top Level' => 'Hauptbeschreibung',
+ 'Total' => 'Total',
+ 'Tracking Items' => 'Lagernde Artikel',
+ 'Trade Discount' => 'Handelsrabatt',
+ 'Transaction' => 'Buchung',
+ 'Transaction Date missing!' => 'Buchungsdatum fehlt!',
+ 'Transaction Dates' => 'Buchungsdaten',
+ 'Transaction deleted!' => 'Buchung gelöscht!',
+ 'Transaction posted!' => 'Buchung getätigt!',
+ 'Transaction reversal enforced for all dates' => 'Fehleintragungen müssen für jeden Zeitraum mit einer Kontraeintragung ausgebessert werden',
+ 'Transaction reversal enforced up to' => 'Fehleintragungen können bis zu dem angenebenen Zeitraum nur mit einer Kontraeintragung ausgebessert werden',
+ 'Transactions' => 'Buchungen',
+ 'Transactions exist, cannot delete customer!' => 'Buchung existiert bereits, Kunde kann nicht gelöscht werden!',
+ 'Transfer' => 'Übertrag',
+ 'Transfer Inventory' => 'Inventarübertrag',
+ 'Transfer from' => 'umlagern von',
+ 'Transfer to' => 'Übergabe an',
+ 'Translation' => 'Übersetzung',
+ 'Translation deleted!' => 'Übersetzung gelöscht!',
+ 'Translation not on file!' => 'Übersetzung nicht in der Datenbank',
+ 'Translations' => 'Übersetzungen',
+ 'Translations saved!' => 'Übersetzung gespeichert!',
+ 'Trial Balance' => 'Saldenbilanz',
+ 'Tuesday' => 'Dienstag',
+ 'Type' => 'Typ',
+ 'Type of Business' => 'Rabattgruppe',
+ 'Unit' => 'Einheit',
+ 'Unit Price' => 'Preis pro Einheit',
+ 'Unit Rate' => 'Unit Rate',
+ 'Unit of measure' => 'Masseinheit',
+ 'Unlock System' => 'System entsperren',
+ 'Update' => 'Erneuern',
+ 'Update Dataset' => 'Datenset aktualisieren',
+ 'Updated' => 'Erneuert am',
+ 'Upgrading to Version' => 'Datenset wird erneuert auf Version',
+ 'Use Templates' => 'Benutze Vorlagen',
+ 'User' => 'Datenbankbenutzer',
+ 'User deleted!' => 'Benutzer gelöscht!',
+ 'User saved!' => 'Benutzer gespeichert!',
+ 'Valid until' => 'Gültig bis',
+ 'Vendor' => 'Lieferant',
+ 'Vendor History' => 'Alle Belege für Lieferant',
+ 'Vendor Invoice' => 'Einkaufsrechnung',
+ 'Vendor Invoice ' => 'Einkaufsrechnung ',
+ 'Vendor Invoice.' => 'Einkaufsrechnung.',
+ 'Vendor Invoice/AP Transaction Number' => 'Einkaufsrechnungs-/Buchungsnummer',
+ 'Vendor Invoices' => 'Einkaufsrechnungen',
+ 'Vendor Number' => 'Lieferantennummer',
+ 'Vendor deleted!' => 'Lieferant gelöscht!',
+ 'Vendor missing!' => 'Lieferant fehlt!',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Vendor saved!' => 'Lieferant gespeichert!',
+ 'Vendors' => 'Lieferanten',
+ 'Version' => 'Version',
+ 'Warehouse' => 'Warenlager',
+ 'Warehouse deleted!' => 'Warenlager gelöscht!',
+ 'Warehouse saved!' => 'Warenlager gespeichert!',
+ 'Warehouses' => 'Warenlager',
+ 'Warning!' => 'Warnung!',
+ 'Wednesday' => 'Mittwoch',
+ 'Week' => 'Woche',
+ 'Week(s)' => 'Woche(n)',
+ 'Weeks' => 'Wochen',
+ 'Weight' => 'Gewicht',
+ 'Weight Unit' => 'Gewichtseinheit',
+ 'What type of item is this?' => 'Welche Artikelart ist das?',
+ 'Work Order' => 'Arbeitsblatt',
+ 'Work Orders' => 'Arbeitsblätter',
+ 'Work Phone' => 'Tel Arbeit',
+ 'Year' => 'Jahr',
+ 'Year(s)' => 'Jahr(e)',
+ 'Yearend' => 'Jahresabschluss',
+ 'Yearend date missing!' => 'Datum für Jahresabschluss fehlt!',
+ 'Yearend posted!' => 'Jahresabschluss gespeichert!',
+ 'Yearend posting failed!' => 'Jahresabschluss nicht gebucht!',
+ 'Years' => 'Jahre',
+ 'Yes' => 'Ja',
+ 'You are logged out' => 'Sie sind abgemeldet',
+ 'You are logged out!' => 'Sie sind abgemeldet!',
+ 'You are posting an existing transaction!' => 'Sie buchen eine existierende Buchung',
+ 'You are printing and posting an existing transaction!' => 'Sie drucken und buchen eine bereits bestehende Buchung',
+ 'You are printing and saving an existing order' => 'Sie drucken und speichern einen existierenden Auftrag',
+ 'You are printing and saving an existing quotation' => 'Sie drucken und speichern eine bereits bestehende Offerte',
+ 'You are printing and saving an existing transaction!' => 'Sie drucken und speichern eine bereits existierende Buchung!',
+ 'You are saving an existing order' => 'Sie speichern einen bereits bestehenden Auftrag',
+ 'You are saving an existing quotation' => 'Sie speichern eine vorhandene Offerte',
+ 'You are saving an existing transaction!' => 'Sie speichern eine vorhande Buchung!',
+ 'You did not enter a name!' => 'Sie haben keinen Namen eingegeben!',
+ 'You must enter a host and port for local and remote connections!' => '"Rechner" und "Port" müssen für lokale und externe Verbindungen eingetragen werden!',
+ 'Zip/Postal Code' => 'PLZ',
+ 'account cannot be set to any other type of account' => 'Dieses Konto kann nicht auf andere Typen eingestellt werden',
+ 'as at' => 'zum Stand',
+ 'days' => 'Tage',
+ 'does not exist' => 'existiert nicht',
+ 'done' => 'fertig',
+ 'ea' => 'pro',
+ 'failed' => 'fehlgeschlagen',
+ 'for' => 'für',
+ 'for Period' => 'für den Zeitraum',
+ 'is already a member!' => 'ist bereits ein Mitglied!',
+ 'localhost' => 'localhost',
+ 'locked!' => 'gesperrt!',
+ 'posted!' => 'gebucht!',
+ 'sent' => 'verschickt',
+ 'successfully created!' => 'wurde erfolgreich erstellt',
+ 'successfully deleted!' => 'wurde erfolgreich gelöscht',
+ 'time(s)' => 'mal',
+ 'unexpected error!' => 'unerwarteter Fehler!',
+ 'website' => 'Webseite',
+};
+
+1;
diff --git a/locale/ch/am b/locale/ch/am
new file mode 100755
index 00000000..17fc82d0
--- /dev/null
+++ b/locale/ch/am
@@ -0,0 +1,315 @@
+$self{texts} = {
+ 'AP' => 'Verbindlichkeiten',
+ 'AR' => 'Forderungen',
+ 'About' => 'Über',
+ 'Account' => 'Konto',
+ 'Account Number' => 'Kontonummer',
+ 'Account Number missing!' => 'Kontonummer fehlt!',
+ 'Account Type' => 'Kontoart',
+ 'Account Type missing!' => 'Kontoart fehlt!',
+ 'Account deleted!' => 'Konto gelöscht!',
+ 'Account does not exist!' => 'Konto existiert nicht!',
+ 'Account saved!' => 'Konto gespeichert!',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Accrual' => 'vereinbart',
+ 'Activate Audit trail' => 'Revisionsnachfolge aktivieren',
+ 'Add Account' => 'Konto anlegen',
+ 'Add Business' => 'Branche erfassen',
+ 'Add Department' => 'Abteilung erfassen',
+ 'Add GIFI' => 'GIFI anlegen',
+ 'Add Language' => 'Sprache erfassen',
+ 'Add SIC' => 'Euro-SIC erfassen',
+ 'Add Warehouse' => 'Warenlager erfassen',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Betrag',
+ 'Asset' => 'Aktiva/Mittelverwendung',
+ 'Audit Control' => 'Bücherkontrolle',
+ 'Audit trail disabled' => 'Revisionsnachfolge deaktiviert',
+ 'Audit trail enabled' => 'Revisionsnachfolge aktiviert',
+ 'Audit trail removed up to' => 'Revisionsnachfolge gelöscht bis zu',
+ 'Backup sent to' => 'Eine Sicherungskopie wurde gesandt an',
+ 'Bin List' => 'Lagerliste',
+ 'Books are open' => 'Die Bücher sind geöffnet',
+ 'Business Number' => 'Firmennummer',
+ 'Business deleted!' => 'Branche gelöscht!',
+ 'Business saved!' => 'Branche gespeichert!',
+ 'COGS' => 'Aufwand',
+ 'Cannot delete account!' => 'Konto kann nicht gelöscht werden!',
+ 'Cannot delete default account!' => 'Das Standard-Konto kann nicht gelöscht werden!',
+ 'Cannot save account!' => 'Konto kann nicht gespeichert werden!',
+ 'Cannot save defaults!' => 'Standardeinstellungen können nicht gespeichert werden!',
+ 'Cannot save preferences!' => 'Benutzereinstellungen können nicht gespeichert werden!',
+ 'Cannot set account for more than one of AR, AP or IC' => 'AR, AP und IC Konten können nicht auf andere Konten gleichzeitig eingestellt werden',
+ 'Cannot set multiple options for' => 'Mehr als eine Optionen nicht erlaubt für : ',
+ 'Cash' => 'vereinnahmt',
+ 'Chart of Accounts' => 'Kontenübersicht',
+ 'Close Books up to' => 'Die Bücher abschliessen bis zum',
+ 'Code' => 'Sprachcode',
+ 'Code missing!' => 'Sprachcode fehlt!',
+ 'Company' => 'Firmenname',
+ 'Confirm' => 'Bestätigung',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Continue' => 'Weiter',
+ 'Contra' => 'Gegenkonto',
+ 'Copy to COA' => 'In Kontenplan kopieren',
+ 'Cost Center' => 'Kostenstelle',
+ 'Credit' => 'Haben',
+ 'Credit Invoice' => 'Credit Invoice',
+ 'Customer Number' => 'Kundennummer',
+ 'Database Host' => 'Datenbank-Rechner',
+ 'Dataset' => 'Datenset',
+ 'Date Format' => 'Datumsformat',
+ 'Day' => 'Tag',
+ 'Days' => 'Tage',
+ 'Debit' => 'Soll',
+ 'Debit Invoice' => 'Debit Invoice',
+ 'Default Template' => 'Standardvorlage',
+ 'Defaults saved!' => 'Einstellungen gespeichert!',
+ 'Delete' => 'Löschen',
+ 'Delete Account' => 'Konto löschen',
+ 'Deleting a language will also delete the templates for the language' => 'Wenn die Sprache gelöscht wird werden auch die dazugehörigen Vorlagen gelöscht',
+ 'Department deleted!' => 'Abteilung gelöscht!',
+ 'Department saved!' => 'Abteilung gespeichert!',
+ 'Departments' => 'Abteilungen',
+ 'Description' => 'Beschreibung',
+ 'Description missing!' => 'Beschreibung fehlt!',
+ 'Discount' => 'Rabatt',
+ 'Dropdown Limit' => 'Auswahllistengrenze',
+ 'E-mail' => 'E-Mail',
+ 'E-mail address missing!' => 'E-Mail-Adresse fehlt!',
+ 'Edit' => 'Bearbeiten',
+ 'Edit Account' => 'Kontodaten bearbeiten',
+ 'Edit Business' => 'Branche bearbeiten',
+ 'Edit Department' => 'Abteilung bearbeiten',
+ 'Edit GIFI' => 'GIFI bearbeiten',
+ 'Edit Language' => 'Sprache bearbeiten',
+ 'Edit Preferences for' => 'Benutzereinstellungen bearbeiten für',
+ 'Edit SIC' => 'Euro-SIC bearbeiten',
+ 'Edit Template' => 'Vorlage bearbeiten',
+ 'Edit Warehouse' => 'Warenlager bearbeiten',
+ 'Employee Number' => 'Mitarbeiternummer',
+ 'Ends' => 'Abschluss',
+ 'Enforce transaction reversal for all dates' => 'Kontraeintragungen für jeden Zeitraum aktualisieren',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Durch Doppelpunkte getrennte Währungskürzel mit maximal 3 Buchstaben aufführen; die eigene Landeswährung zuerst (z.B. CHF:EUR:USD)',
+ 'Equity' => 'Passiva/Eigenkapital',
+ 'Every' => 'Jeden',
+ 'Expense' => 'Aufwand',
+ 'Expense/Asset' => 'Aufwand/Anlagen',
+ 'Fax' => 'Fax',
+ 'Foreign Exchange Gain' => 'Wechselkurserträge',
+ 'Foreign Exchange Loss' => 'Wechselkursverluste',
+ 'GIFI' => 'GIFI',
+ 'GIFI deleted!' => 'GIFI gelöscht!',
+ 'GIFI missing!' => 'GIFI fehlt!',
+ 'GIFI saved!' => 'GIFI gespeichert!',
+ 'GL' => 'Hauptbuch',
+ 'GL Reference Number' => 'Hauptbuchreferenz',
+ 'GL Transaction' => 'Hauptbuchbuchung',
+ 'Heading' => 'Überschrift',
+ 'ID' => 'ID',
+ 'Include in drop-down menus' => 'In Aufklapp-Menü aufnehmen',
+ 'Income' => 'Ertrag',
+ 'Inventory' => 'Inventar',
+ 'Invoice' => 'Rechnung',
+ 'Is this a summary account to record' => 'Summenkonto für',
+ 'Job/Project Number' => 'Autrags-/Projektnummer',
+ 'Language' => 'Sprache',
+ 'Language deleted!' => 'Sprache gelöscht!',
+ 'Language saved!' => 'Sprache gespeichert!',
+ 'Languages' => 'Sprachen',
+ 'Last Numbers & Default Accounts' => 'Laufende Zähler und Standardkonten',
+ 'Liability' => 'Passiva/Mittelherkunft',
+ 'Licensed to' => 'Lizensiert für',
+ 'Link' => 'Verknüpfungen',
+ 'Menu Width' => 'Menübreite',
+ 'Method' => 'Abrechnungsmethode',
+ 'Month' => 'Monat',
+ 'Months' => 'Monate',
+ 'Name' => 'Name',
+ 'Next' => 'Nächste',
+ 'Next Number' => 'Nächste Nummer',
+ 'No' => 'Nein',
+ 'No email address for' => 'Keine E-Mailadresse für',
+ 'Non-tracking Items' => 'Nicht lagernde Artikel',
+ 'Number' => 'MWST-Nummer',
+ 'Number Format' => 'Zahlenformat',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Packliste',
+ 'Part Number' => 'Artikelnummer',
+ 'Password' => 'Passwort',
+ 'Password does not match!' => 'Passworteingabe nicht gleich!',
+ 'Payables' => 'Verbindlichkeiten',
+ 'Payment' => 'Belastung',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Lagerliste',
+ 'Posting' => 'Buchung',
+ 'Postscript' => 'Postscript',
+ 'Preferences saved!' => 'Benutzereinstellungen gespeichert!',
+ 'Print' => 'Drucken',
+ 'Printer' => 'Standardrucker',
+ 'Printing' => 'Druckt',
+ 'Process Transactions' => 'Buchungen erstellen',
+ 'Profit Center' => 'Profit-Center',
+ 'Purchase Order' => 'Einkaufsbestellung',
+ 'Purchase Order Number' => 'Einkaufsbestellnummer',
+ 'Purchase Orders' => 'Einkaufsbestellungen',
+ 'RFQ Number' => 'Einkaufsoffertennummer',
+ 'Rate' => '%',
+ 'Receivables' => 'Forderungen',
+ 'Recurring Transactions' => 'Wiederkehrende Buchungen',
+ 'Reference' => 'Referenz',
+ 'Remove Audit trail up to' => 'Revisionsnachfolge löschen bis zu',
+ 'Retained Earnings' => 'Verbliebenes Einkommen',
+ 'SIC deleted!' => 'Euro-SIC gelöscht!',
+ 'SIC saved!' => 'Euro-SIC gespeichert!',
+ 'Sales Invoice' => 'Ausgangsrechnung',
+ 'Sales Invoice/AR Transaction Number' => 'Verkaufsrechnung-/Buchungsnummer',
+ 'Sales Order' => 'Auftragsbestätigung',
+ 'Sales Order Number' => 'Auftragsbestätigungsnummer',
+ 'Sales Orders' => 'Auftragsbestätigungen',
+ 'Sales Quotation Number' => 'Offertennummer',
+ 'Save' => 'Speichern',
+ 'Save as new' => 'als neu speichern',
+ 'Saving' => 'Speichert',
+ 'Sending' => 'Senden',
+ 'Session Timeout' => 'Maximale Sitzungsdauer',
+ 'Signature' => 'Signatur',
+ 'Standard Industrial Codes' => 'Standard Industrie Norm',
+ 'Stylesheet' => 'Stilvorlage',
+ 'System Defaults' => 'System-Standard-Einstellungen',
+ 'Tax' => 'MWST',
+ 'Template saved!' => 'Druckvorlage gespeichert!',
+ 'Times' => 'mal',
+ 'Tracking Items' => 'Lagernde Artikel',
+ 'Transaction' => 'Buchung',
+ 'Transaction reversal enforced for all dates' => 'Fehleintragungen müssen für jeden Zeitraum mit einer Kontraeintragung ausgebessert werden',
+ 'Transaction reversal enforced up to' => 'Fehleintragungen können bis zu dem angenebenen Zeitraum nur mit einer Kontraeintragung ausgebessert werden',
+ 'Type of Business' => 'Rabattgruppe',
+ 'Update' => 'Erneuern',
+ 'User' => 'Datenbankbenutzer',
+ 'Vendor Invoice' => 'Einkaufsrechnung',
+ 'Vendor Invoice/AP Transaction Number' => 'Einkaufsrechnungs-/Buchungsnummer',
+ 'Vendor Number' => 'Lieferantennummer',
+ 'Version' => 'Version',
+ 'Warehouse deleted!' => 'Warenlager gelöscht!',
+ 'Warehouse saved!' => 'Warenlager gespeichert!',
+ 'Warehouses' => 'Warenlager',
+ 'Week' => 'Woche',
+ 'Weeks' => 'Wochen',
+ 'Weight Unit' => 'Gewichtseinheit',
+ 'Work Order' => 'Arbeitsblatt',
+ 'Year' => 'Jahr',
+ 'Yearend' => 'Jahresabschluss',
+ 'Yearend date missing!' => 'Datum für Jahresabschluss fehlt!',
+ 'Yearend posted!' => 'Jahresabschluss gespeichert!',
+ 'Yearend posting failed!' => 'Jahresabschluss nicht gebucht!',
+ 'Years' => 'Jahre',
+ 'Yes' => 'Ja',
+ 'account cannot be set to any other type of account' => 'Dieses Konto kann nicht auf andere Typen eingestellt werden',
+ 'done' => 'fertig',
+ 'failed' => 'fehlgeschlagen',
+ 'localhost' => 'localhost',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'konto_anlegen' => 'add_account',
+ 'branche_erfassen' => 'add_business',
+ 'abteilung_erfassen' => 'add_department',
+ 'sprache_erfassen' => 'add_language',
+ 'euro_sic_erfassen' => 'add_sic',
+ 'warenlager_erfassen' => 'add_warehouse',
+ 'weiter' => 'continue',
+ 'in_kontenplan_kopieren' => 'copy_to_coa',
+ 'löschen' => 'delete',
+ 'bearbeiten' => 'edit',
+ 'kontodaten_bearbeiten' => 'edit_account',
+ 'buchungen_erstellen' => 'process_transactions',
+ 'speichern' => 'save',
+ 'als_neu_speichern' => 'save_as_new',
+ 'erneuern' => 'update',
+};
+
+1;
+
diff --git a/locale/ch/ap b/locale/ch/ap
new file mode 100755
index 00000000..b8f8fba0
--- /dev/null
+++ b/locale/ch/ap
@@ -0,0 +1,240 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Offene Verbindlichkeiten',
+ 'AP Transaction' => 'Eingangsbuchung',
+ 'AP Transactions' => 'Eingangsbuchungen',
+ 'AR Outstanding' => 'Offene Forderungen',
+ 'AR Transaction' => 'Ausgangsbuchung',
+ 'AR Transactions' => 'Ausgangsbuchungen',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Add AP Transaction' => 'Eingangsbuchung erfassen',
+ 'Add AR Transaction' => 'Ausgangsbuchung erfassen',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Betrag',
+ 'Amount Due' => 'Betrag fällig',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Transaction' => 'Soll die Buchung wirklich gelöscht werden',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'Buchung kann nicht gelöscht werden!',
+ 'Cannot post payment for a closed period!' => 'Zahlung kann nicht gebucht werden, weil die Periode bereits abgeschlossen ist!',
+ 'Cannot post transaction for a closed period!' => 'Buchung kann nicht erfasst werden, weil die Periode bereits abgeschlossen ist!',
+ 'Cannot post transaction!' => 'Rechnung kann nicht gebucht werden!',
+ 'Cc' => 'E-Mailkopie',
+ 'Check' => 'Scheck',
+ 'Closed' => 'Geschlossen',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Continue' => 'Weiter',
+ 'Credit' => 'Haben',
+ 'Credit Limit' => 'Kreditlimite',
+ 'Curr' => 'Währung',
+ 'Currency' => 'Währung',
+ 'Current' => 'Aktuell',
+ 'Customer' => 'Kunde',
+ 'Customer missing!' => 'Kundenname fehlt!',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Date Paid' => 'Zahlungsdatum',
+ 'Day(s)' => 'Tage',
+ 'Debit' => 'Soll',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Delete' => 'Löschen',
+ 'Delete Schedule' => 'Zeitplan löschen',
+ 'Department' => 'Abteilung',
+ 'Description' => 'Beschreibung',
+ 'Detail' => 'Einzelheiten',
+ 'Due Date' => 'Fälligkeitsdatum',
+ 'Due Date missing!' => 'Fälligkeitsdatum fehlt!',
+ 'E-mail' => 'E-Mail',
+ 'E-mail message' => 'E-Mail-Nachricht ',
+ 'Edit AP Transaction' => 'Eingangsbuchung bearbeiten',
+ 'Edit AR Transaction' => 'Ausgangsbuchung bearbeiten',
+ 'Employee' => 'Verkäufer',
+ 'Every' => 'Jeden',
+ 'Exch' => 'Wkurs.',
+ 'Exchange Rate' => 'Wechselkurs',
+ 'Exchange rate for payment missing!' => 'Wechselkurs für Bezahlung fehlt!',
+ 'Exchange rate missing!' => 'Wechselkurs fehlt!',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'For' => 'für',
+ 'From' => 'Von',
+ 'ID' => 'ID',
+ 'Include Payment' => 'Bezahlung reinnehmen',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Invoice' => 'Rechnung',
+ 'Invoice Date' => 'Rechnungsdatum',
+ 'Invoice Date missing!' => 'Rechnungsdatum fehlt!',
+ 'Invoice Number' => 'Rechnungsnummer',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Manager' => 'Geschäftsführer',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Memo' => 'Notiz',
+ 'Message' => 'Nachricht',
+ 'Month' => 'Monat',
+ 'Month(s)' => 'Monat(e)',
+ 'Next Date' => 'Nächstes Datum',
+ 'No.' => 'Pos.',
+ 'Notes' => 'Bemerkungen',
+ 'Nothing to print!' => 'Es wurde nichts gedruckt!',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Artikelnummer',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Open' => 'Offen',
+ 'Order' => 'Bestellung',
+ 'Order Number' => 'Bestellnummer',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ihre Bestellnummer',
+ 'Paid' => 'Bezahlt',
+ 'Payment date missing!' => 'Zahlungsdatum fehlt!',
+ 'Payments' => 'Zahlungen',
+ 'Period' => 'Zeitraum',
+ 'Post' => 'Buchen',
+ 'Post as new' => 'Als neu buchen',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Drucken',
+ 'Print and Post' => 'Drucken und Buchen',
+ 'Print and Post as new' => 'Drucken und als neu buchen',
+ 'Printed' => 'Gedruckt',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Dieses Projekt ist nicht in der Datenbank!',
+ 'Quarter' => 'Quartal',
+ 'Receipt' => 'Quittung',
+ 'Recurring Transaction' => 'Wiederkehrende Buchung',
+ 'Reference' => 'Referenz',
+ 'Remaining' => 'Rest',
+ 'Repeat' => 'Wiederholen',
+ 'Sales Invoice.' => 'Ausgangsrechnung.',
+ 'Salesperson' => 'Verkäufer',
+ 'Save Schedule' => 'Zeitplan speichern',
+ 'Schedule' => 'Buchungstermine',
+ 'Scheduled' => 'geplant',
+ 'Screen' => 'Bildschirm',
+ 'Select a Printer!' => 'Drucker auswählen!',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
+ 'Select payment' => 'Zahlung auswählen',
+ 'Select postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Ship to' => 'Lieferung an',
+ 'Ship via' => 'Versandart',
+ 'Shipping Point' => 'Lieferort',
+ 'Source' => 'Beleg',
+ 'Startdate' => 'Eintrittsdatum',
+ 'Subject' => 'Betreff',
+ 'Subtotal' => 'Zwischensumme',
+ 'Summary' => 'Zusammenfassung',
+ 'Tax' => 'MWST',
+ 'Tax Included' => 'MWST im Preis enthalten',
+ 'Till' => 'Kasse',
+ 'To' => 'Bis',
+ 'Total' => 'Total',
+ 'Transaction' => 'Buchung',
+ 'Transaction deleted!' => 'Buchung gelöscht!',
+ 'Transaction posted!' => 'Buchung getätigt!',
+ 'Update' => 'Erneuern',
+ 'Vendor' => 'Lieferant',
+ 'Vendor Invoice.' => 'Einkaufsrechnung.',
+ 'Vendor missing!' => 'Lieferant fehlt!',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Warning!' => 'Warnung!',
+ 'Week(s)' => 'Woche(n)',
+ 'Year' => 'Jahr',
+ 'Year(s)' => 'Jahr(e)',
+ 'Yes' => 'Ja',
+ 'You are posting an existing transaction!' => 'Sie buchen eine existierende Buchung',
+ 'You are printing and posting an existing transaction!' => 'Sie drucken und buchen eine bereits bestehende Buchung',
+ 'You are printing and saving an existing order' => 'Sie drucken und speichern einen existierenden Auftrag',
+ 'You are printing and saving an existing quotation' => 'Sie drucken und speichern eine bereits bestehende Offerte',
+ 'You are saving an existing order' => 'Sie speichern einen bereits bestehenden Auftrag',
+ 'You are saving an existing quotation' => 'Sie speichern eine vorhandene Offerte',
+ 'for' => 'für',
+ 'sent' => 'verschickt',
+ 'time(s)' => 'mal',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'eingangsbuchung' => 'ap_transaction',
+ 'ausgangsbuchung' => 'ar_transaction',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'zeitplan_löschen' => 'delete_schedule',
+ 'buchen' => 'post',
+ 'als_neu_buchen' => 'post_as_new',
+ 'drucken' => 'print',
+ 'drucken_und_buchen' => 'print_and_post',
+ 'drucken_und_als_neu_buchen' => 'print_and_post_as_new',
+ 'ausgangsrechnung_' => 'sales_invoice_',
+ 'zeitplan_speichern' => 'save_schedule',
+ 'buchungstermine' => 'schedule',
+ 'lieferung_an' => 'ship_to',
+ 'erneuern' => 'update',
+ 'einkaufsrechnung_' => 'vendor_invoice_',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/ch/ar b/locale/ch/ar
new file mode 100755
index 00000000..b8f8fba0
--- /dev/null
+++ b/locale/ch/ar
@@ -0,0 +1,240 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Offene Verbindlichkeiten',
+ 'AP Transaction' => 'Eingangsbuchung',
+ 'AP Transactions' => 'Eingangsbuchungen',
+ 'AR Outstanding' => 'Offene Forderungen',
+ 'AR Transaction' => 'Ausgangsbuchung',
+ 'AR Transactions' => 'Ausgangsbuchungen',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Add AP Transaction' => 'Eingangsbuchung erfassen',
+ 'Add AR Transaction' => 'Ausgangsbuchung erfassen',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Betrag',
+ 'Amount Due' => 'Betrag fällig',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Transaction' => 'Soll die Buchung wirklich gelöscht werden',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'Buchung kann nicht gelöscht werden!',
+ 'Cannot post payment for a closed period!' => 'Zahlung kann nicht gebucht werden, weil die Periode bereits abgeschlossen ist!',
+ 'Cannot post transaction for a closed period!' => 'Buchung kann nicht erfasst werden, weil die Periode bereits abgeschlossen ist!',
+ 'Cannot post transaction!' => 'Rechnung kann nicht gebucht werden!',
+ 'Cc' => 'E-Mailkopie',
+ 'Check' => 'Scheck',
+ 'Closed' => 'Geschlossen',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Continue' => 'Weiter',
+ 'Credit' => 'Haben',
+ 'Credit Limit' => 'Kreditlimite',
+ 'Curr' => 'Währung',
+ 'Currency' => 'Währung',
+ 'Current' => 'Aktuell',
+ 'Customer' => 'Kunde',
+ 'Customer missing!' => 'Kundenname fehlt!',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Date Paid' => 'Zahlungsdatum',
+ 'Day(s)' => 'Tage',
+ 'Debit' => 'Soll',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Delete' => 'Löschen',
+ 'Delete Schedule' => 'Zeitplan löschen',
+ 'Department' => 'Abteilung',
+ 'Description' => 'Beschreibung',
+ 'Detail' => 'Einzelheiten',
+ 'Due Date' => 'Fälligkeitsdatum',
+ 'Due Date missing!' => 'Fälligkeitsdatum fehlt!',
+ 'E-mail' => 'E-Mail',
+ 'E-mail message' => 'E-Mail-Nachricht ',
+ 'Edit AP Transaction' => 'Eingangsbuchung bearbeiten',
+ 'Edit AR Transaction' => 'Ausgangsbuchung bearbeiten',
+ 'Employee' => 'Verkäufer',
+ 'Every' => 'Jeden',
+ 'Exch' => 'Wkurs.',
+ 'Exchange Rate' => 'Wechselkurs',
+ 'Exchange rate for payment missing!' => 'Wechselkurs für Bezahlung fehlt!',
+ 'Exchange rate missing!' => 'Wechselkurs fehlt!',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'For' => 'für',
+ 'From' => 'Von',
+ 'ID' => 'ID',
+ 'Include Payment' => 'Bezahlung reinnehmen',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Invoice' => 'Rechnung',
+ 'Invoice Date' => 'Rechnungsdatum',
+ 'Invoice Date missing!' => 'Rechnungsdatum fehlt!',
+ 'Invoice Number' => 'Rechnungsnummer',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Manager' => 'Geschäftsführer',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Memo' => 'Notiz',
+ 'Message' => 'Nachricht',
+ 'Month' => 'Monat',
+ 'Month(s)' => 'Monat(e)',
+ 'Next Date' => 'Nächstes Datum',
+ 'No.' => 'Pos.',
+ 'Notes' => 'Bemerkungen',
+ 'Nothing to print!' => 'Es wurde nichts gedruckt!',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Artikelnummer',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Open' => 'Offen',
+ 'Order' => 'Bestellung',
+ 'Order Number' => 'Bestellnummer',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ihre Bestellnummer',
+ 'Paid' => 'Bezahlt',
+ 'Payment date missing!' => 'Zahlungsdatum fehlt!',
+ 'Payments' => 'Zahlungen',
+ 'Period' => 'Zeitraum',
+ 'Post' => 'Buchen',
+ 'Post as new' => 'Als neu buchen',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Drucken',
+ 'Print and Post' => 'Drucken und Buchen',
+ 'Print and Post as new' => 'Drucken und als neu buchen',
+ 'Printed' => 'Gedruckt',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Dieses Projekt ist nicht in der Datenbank!',
+ 'Quarter' => 'Quartal',
+ 'Receipt' => 'Quittung',
+ 'Recurring Transaction' => 'Wiederkehrende Buchung',
+ 'Reference' => 'Referenz',
+ 'Remaining' => 'Rest',
+ 'Repeat' => 'Wiederholen',
+ 'Sales Invoice.' => 'Ausgangsrechnung.',
+ 'Salesperson' => 'Verkäufer',
+ 'Save Schedule' => 'Zeitplan speichern',
+ 'Schedule' => 'Buchungstermine',
+ 'Scheduled' => 'geplant',
+ 'Screen' => 'Bildschirm',
+ 'Select a Printer!' => 'Drucker auswählen!',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
+ 'Select payment' => 'Zahlung auswählen',
+ 'Select postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Ship to' => 'Lieferung an',
+ 'Ship via' => 'Versandart',
+ 'Shipping Point' => 'Lieferort',
+ 'Source' => 'Beleg',
+ 'Startdate' => 'Eintrittsdatum',
+ 'Subject' => 'Betreff',
+ 'Subtotal' => 'Zwischensumme',
+ 'Summary' => 'Zusammenfassung',
+ 'Tax' => 'MWST',
+ 'Tax Included' => 'MWST im Preis enthalten',
+ 'Till' => 'Kasse',
+ 'To' => 'Bis',
+ 'Total' => 'Total',
+ 'Transaction' => 'Buchung',
+ 'Transaction deleted!' => 'Buchung gelöscht!',
+ 'Transaction posted!' => 'Buchung getätigt!',
+ 'Update' => 'Erneuern',
+ 'Vendor' => 'Lieferant',
+ 'Vendor Invoice.' => 'Einkaufsrechnung.',
+ 'Vendor missing!' => 'Lieferant fehlt!',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Warning!' => 'Warnung!',
+ 'Week(s)' => 'Woche(n)',
+ 'Year' => 'Jahr',
+ 'Year(s)' => 'Jahr(e)',
+ 'Yes' => 'Ja',
+ 'You are posting an existing transaction!' => 'Sie buchen eine existierende Buchung',
+ 'You are printing and posting an existing transaction!' => 'Sie drucken und buchen eine bereits bestehende Buchung',
+ 'You are printing and saving an existing order' => 'Sie drucken und speichern einen existierenden Auftrag',
+ 'You are printing and saving an existing quotation' => 'Sie drucken und speichern eine bereits bestehende Offerte',
+ 'You are saving an existing order' => 'Sie speichern einen bereits bestehenden Auftrag',
+ 'You are saving an existing quotation' => 'Sie speichern eine vorhandene Offerte',
+ 'for' => 'für',
+ 'sent' => 'verschickt',
+ 'time(s)' => 'mal',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'eingangsbuchung' => 'ap_transaction',
+ 'ausgangsbuchung' => 'ar_transaction',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'zeitplan_löschen' => 'delete_schedule',
+ 'buchen' => 'post',
+ 'als_neu_buchen' => 'post_as_new',
+ 'drucken' => 'print',
+ 'drucken_und_buchen' => 'print_and_post',
+ 'drucken_und_als_neu_buchen' => 'print_and_post_as_new',
+ 'ausgangsrechnung_' => 'sales_invoice_',
+ 'zeitplan_speichern' => 'save_schedule',
+ 'buchungstermine' => 'schedule',
+ 'lieferung_an' => 'ship_to',
+ 'erneuern' => 'update',
+ 'einkaufsrechnung_' => 'vendor_invoice_',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/ch/arap b/locale/ch/arap
new file mode 100755
index 00000000..c5deb732
--- /dev/null
+++ b/locale/ch/arap
@@ -0,0 +1,74 @@
+$self{texts} = {
+ 'Address' => 'Adresse',
+ 'Bcc' => 'Bcc',
+ 'Cc' => 'E-Mailkopie',
+ 'Continue' => 'Weiter',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Day(s)' => 'Tage',
+ 'Delete Schedule' => 'Zeitplan löschen',
+ 'Description' => 'Beschreibung',
+ 'E-mail' => 'E-Mail',
+ 'E-mail message' => 'E-Mail-Nachricht ',
+ 'Every' => 'Jeden',
+ 'For' => 'für',
+ 'Include Payment' => 'Bezahlung reinnehmen',
+ 'Message' => 'Nachricht',
+ 'Month(s)' => 'Monat(e)',
+ 'Next Date' => 'Nächstes Datum',
+ 'Number' => 'Artikelnummer',
+ 'Print' => 'Drucken',
+ 'Project not on file!' => 'Dieses Projekt ist nicht in der Datenbank!',
+ 'Recurring Transaction' => 'Wiederkehrende Buchung',
+ 'Reference' => 'Referenz',
+ 'Repeat' => 'Wiederholen',
+ 'Save Schedule' => 'Zeitplan speichern',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
+ 'Startdate' => 'Eintrittsdatum',
+ 'Subject' => 'Betreff',
+ 'To' => 'Bis',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Warning!' => 'Warnung!',
+ 'Week(s)' => 'Woche(n)',
+ 'Year(s)' => 'Jahr(e)',
+ 'You are posting an existing transaction!' => 'Sie buchen eine existierende Buchung',
+ 'You are printing and posting an existing transaction!' => 'Sie drucken und buchen eine bereits bestehende Buchung',
+ 'You are printing and saving an existing order' => 'Sie drucken und speichern einen existierenden Auftrag',
+ 'You are printing and saving an existing quotation' => 'Sie drucken und speichern eine bereits bestehende Offerte',
+ 'You are saving an existing order' => 'Sie speichern einen bereits bestehenden Auftrag',
+ 'You are saving an existing quotation' => 'Sie speichern eine vorhandene Offerte',
+ 'for' => 'für',
+ 'sent' => 'verschickt',
+ 'time(s)' => 'mal',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'weiter' => 'continue',
+ 'zeitplan_löschen' => 'delete_schedule',
+ 'zeitplan_speichern' => 'save_schedule',
+};
+
+1;
+
diff --git a/locale/ch/arapprn b/locale/ch/arapprn
new file mode 100755
index 00000000..72077c4c
--- /dev/null
+++ b/locale/ch/arapprn
@@ -0,0 +1,34 @@
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Amount' => 'Betrag',
+ 'Continue' => 'Weiter',
+ 'Date' => 'Datum',
+ 'Memo' => 'Notiz',
+ 'Nothing to print!' => 'Es wurde nichts gedruckt!',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'Postscript',
+ 'Printed' => 'Gedruckt',
+ 'Scheduled' => 'geplant',
+ 'Screen' => 'Bildschirm',
+ 'Select a Printer!' => 'Drucker auswählen!',
+ 'Select payment' => 'Zahlung auswählen',
+ 'Select postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Source' => 'Beleg',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'weiter' => 'continue',
+};
+
+1;
+
diff --git a/locale/ch/bp b/locale/ch/bp
new file mode 100755
index 00000000..cc6cc2ce
--- /dev/null
+++ b/locale/ch/bp
@@ -0,0 +1,69 @@
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Sollen die markierten Eintragungen gelöscht werden?',
+ 'Bin Lists' => 'Lagerlisten',
+ 'Cannot remove files!' => 'Dateien können nicht gelöscht werden!',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Continue' => 'Weiter',
+ 'Current' => 'Aktuell',
+ 'Customer' => 'Kunde',
+ 'Date' => 'Datum',
+ 'Employee' => 'Verkäufer',
+ 'From' => 'Von',
+ 'ID' => 'ID',
+ 'Invoice' => 'Rechnung',
+ 'Invoice Number' => 'Rechnungsnummer',
+ 'Marked entries printed!' => 'Markierte Einträge gedruckt!',
+ 'Month' => 'Monat',
+ 'Order' => 'Bestellung',
+ 'Order Number' => 'Bestellnummer',
+ 'Packing Lists' => 'Packlisten',
+ 'Period' => 'Zeitraum',
+ 'Pick Lists' => 'Lagerlisten',
+ 'Print' => 'Drucken',
+ 'Printing' => 'Druckt',
+ 'Purchase Orders' => 'Einkaufsbestellungen',
+ 'Quarter' => 'Quartal',
+ 'Quotation' => 'Offerte',
+ 'Quotation Number' => 'Offertenummer',
+ 'Quotations' => 'Offerten',
+ 'RFQs' => 'Offerte-Anfragen',
+ 'Remove' => 'Entfernen',
+ 'Removed spoolfiles!' => 'Spoolfiles gelöscht!',
+ 'Removing marked entries from queue ...' => 'Markierte Einträge gelöscht ...',
+ 'Sales Invoices' => 'Ausgangsrechnungen',
+ 'Sales Orders' => 'Auftragsbestätigungen',
+ 'Select all' => 'Alle auswählen',
+ 'Spoolfile' => 'Spoolfile',
+ 'Time Cards' => 'Stempelkarten',
+ 'To' => 'Bis',
+ 'Vendor' => 'Lieferant',
+ 'Work Orders' => 'Arbeitsblätter',
+ 'Year' => 'Jahr',
+ 'Yes' => 'Ja',
+ 'done' => 'fertig',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'weiter' => 'continue',
+ 'drucken' => 'print',
+ 'entfernen' => 'remove',
+ 'alle_auswählen' => 'select_all',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/ch/ca b/locale/ch/ca
new file mode 100755
index 00000000..3d5ea9c3
--- /dev/null
+++ b/locale/ch/ca
@@ -0,0 +1,60 @@
+$self{texts} = {
+ 'AR/AP' => 'OF/OV',
+ 'Account' => 'Konto',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Balance' => 'Bilanz',
+ 'Chart of Accounts' => 'Kontenübersicht',
+ 'Credit' => 'Haben',
+ 'Current' => 'Aktuell',
+ 'Date' => 'Datum',
+ 'Debit' => 'Soll',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Department' => 'Abteilung',
+ 'Description' => 'Beschreibung',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'From' => 'Von',
+ 'GIFI' => 'GIFI',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'List Transactions' => 'Buchungsliste',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Month' => 'Monat',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Period' => 'Zeitraum',
+ 'Project Number' => 'Projektnummer',
+ 'Quarter' => 'Quartal',
+ 'R' => 'R',
+ 'Reference' => 'Referenz',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Subtotal' => 'Zwischensumme',
+ 'To' => 'Bis',
+ 'Year' => 'Jahr',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'buchungsliste' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/ch/cp b/locale/ch/cp
new file mode 100755
index 00000000..3fab027c
--- /dev/null
+++ b/locale/ch/cp
@@ -0,0 +1,149 @@
+$self{texts} = {
+ 'AP' => 'Verbindlichkeiten',
+ 'AR' => 'Forderungen',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Address' => 'Adresse',
+ 'All' => 'Alle',
+ 'Amount' => 'Betrag',
+ 'Amount Due' => 'Betrag fällig',
+ 'Bcc' => 'Bcc',
+ 'Cannot post Payment!' => 'Zahlungseingang kann nicht gebucht werden!',
+ 'Cannot post Receipt!' => 'Quittung kann nicht gebucht werden!',
+ 'Cannot post payment for a closed period!' => 'Zahlung kann nicht gebucht werden, weil die Periode bereits abgeschlossen ist!',
+ 'Cc' => 'E-Mailkopie',
+ 'Continue' => 'Weiter',
+ 'Currency' => 'Währung',
+ 'Customer' => 'Kunde',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Date missing!' => 'Datum fehlt!',
+ 'Day(s)' => 'Tage',
+ 'Delete Schedule' => 'Zeitplan löschen',
+ 'Department' => 'Abteilung',
+ 'Deposit' => 'Gutschrift',
+ 'Description' => 'Beschreibung',
+ 'Due Date' => 'Fälligkeitsdatum',
+ 'E-mail' => 'E-Mail',
+ 'E-mail message' => 'E-Mail-Nachricht ',
+ 'Every' => 'Jeden',
+ 'Exchange Rate' => 'Wechselkurs',
+ 'Exchange rate missing!' => 'Wechselkurs fehlt!',
+ 'For' => 'für',
+ 'From' => 'Von',
+ 'Include Payment' => 'Bezahlung reinnehmen',
+ 'Invoice' => 'Rechnung',
+ 'Invoices' => 'Rechnungen',
+ 'Language' => 'Sprache',
+ 'Memo' => 'Notiz',
+ 'Message' => 'Nachricht',
+ 'Month(s)' => 'Monat(e)',
+ 'Next Date' => 'Nächstes Datum',
+ 'Nothing open!' => 'Nichts geöffnet!',
+ 'Number' => 'Artikelnummer',
+ 'PDF' => 'PDF',
+ 'Payment' => 'Belastung',
+ 'Payment posted!' => 'Zahlung gebucht!',
+ 'Payments' => 'Zahlungen',
+ 'Payments posted!' => 'Bezahlungen gebucht!',
+ 'Post' => 'Buchen',
+ 'Posting failed!' => 'Buchen fehlgeschlagen!',
+ 'Postscript' => 'Postscript',
+ 'Prepayment' => 'Anzahlung',
+ 'Print' => 'Drucken',
+ 'Project not on file!' => 'Dieses Projekt ist nicht in der Datenbank!',
+ 'Receipt' => 'Quittung',
+ 'Receipt posted!' => 'Einnahme gebucht!',
+ 'Receipts' => 'Quittungen',
+ 'Recurring Transaction' => 'Wiederkehrende Buchung',
+ 'Reference' => 'Referenz',
+ 'Repeat' => 'Wiederholen',
+ 'Save Schedule' => 'Zeitplan speichern',
+ 'Screen' => 'Bildschirm',
+ 'Select' => 'Auswählen',
+ 'Select all' => 'Alle auswählen',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
+ 'Select postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Source' => 'Beleg',
+ 'Startdate' => 'Eintrittsdatum',
+ 'Subject' => 'Betreff',
+ 'To' => 'Bis',
+ 'Update' => 'Erneuern',
+ 'Vendor' => 'Lieferant',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Warning!' => 'Warnung!',
+ 'Week(s)' => 'Woche(n)',
+ 'Year(s)' => 'Jahr(e)',
+ 'You are posting an existing transaction!' => 'Sie buchen eine existierende Buchung',
+ 'You are printing and posting an existing transaction!' => 'Sie drucken und buchen eine bereits bestehende Buchung',
+ 'You are printing and saving an existing order' => 'Sie drucken und speichern einen existierenden Auftrag',
+ 'You are printing and saving an existing quotation' => 'Sie drucken und speichern eine bereits bestehende Offerte',
+ 'You are saving an existing order' => 'Sie speichern einen bereits bestehenden Auftrag',
+ 'You are saving an existing quotation' => 'Sie speichern eine vorhandene Offerte',
+ 'for' => 'für',
+ 'sent' => 'verschickt',
+ 'time(s)' => 'mal',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'weiter' => 'continue',
+ 'zeitplan_löschen' => 'delete_schedule',
+ 'buchen' => 'post',
+ 'drucken' => 'print',
+ 'zeitplan_speichern' => 'save_schedule',
+ 'alle_auswählen' => 'select_all',
+ 'erneuern' => 'update',
+};
+
+1;
+
diff --git a/locale/ch/ct b/locale/ch/ct
new file mode 100755
index 00000000..d14b896f
--- /dev/null
+++ b/locale/ch/ct
@@ -0,0 +1,190 @@
+$self{texts} = {
+ 'AP Transaction' => 'Eingangsbuchung',
+ 'AP Transactions' => 'Eingangsbuchungen',
+ 'AR Transaction' => 'Ausgangsbuchung',
+ 'AR Transactions' => 'Ausgangsbuchungen',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Active' => 'Aktiv',
+ 'Add Customer' => 'Kunde erfassen',
+ 'Add Vendor' => 'Lieferant erfassen',
+ 'Address' => 'Adresse',
+ 'All' => 'Alle',
+ 'Amount' => 'Betrag',
+ 'BIC' => 'BIC',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Rechnungsadresse',
+ 'Break' => 'Umbruch',
+ 'Cannot delete customer!' => 'Kunde kann nicht gelöscht werden!',
+ 'Cannot delete vendor!' => 'Lieferant kann nicht gelöscht werden!',
+ 'Cc' => 'E-Mailkopie',
+ 'City' => 'Ort',
+ 'Closed' => 'Geschlossen',
+ 'Company Name' => 'Firmenname',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Weiter',
+ 'Cost' => 'Kosten',
+ 'Could not save pricelist!' => 'Preisliste konnte nicht gespeichert werden!',
+ 'Country' => 'Land',
+ 'Credit Limit' => 'Kreditlimite',
+ 'Curr' => 'Währung',
+ 'Currency' => 'Währung',
+ 'Customer History' => 'Alle Belege für Kunde',
+ 'Customer Number' => 'Kundennummer',
+ 'Customer deleted!' => 'Kunde gelöscht!',
+ 'Customer saved!' => 'Kunde gespeichert!',
+ 'Customers' => 'Kunden',
+ 'Delete' => 'Löschen',
+ 'Delivery Date' => 'Lieferdatum',
+ 'Description' => 'Beschreibung',
+ 'Detail' => 'Einzelheiten',
+ 'Discount' => 'Rabatt',
+ 'E-mail' => 'E-Mail',
+ 'Edit Customer' => 'Kundendaten bearbeiten',
+ 'Edit Vendor' => 'Lieferantendaten bearbeiten',
+ 'Employee' => 'Verkäufer',
+ 'Enddate' => 'Austrittsdatum',
+ 'Fax' => 'Fax',
+ 'From' => 'Von',
+ 'GIFI' => 'GIFI',
+ 'Group' => 'Warengruppe',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Inactive' => 'Inaktiv',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Invoice' => 'Rechnung',
+ 'Item already on pricelist!' => 'Artikel ist bereits in der Preisliste!',
+ 'Item not on file!' => 'Dieser Artikel ist nicht in der Datenbank!',
+ 'Language' => 'Sprache',
+ 'Leadtime' => 'Vorlaufzeit',
+ 'Manager' => 'Geschäftsführer',
+ 'Name' => 'Name',
+ 'Name missing!' => 'Name fehlt!',
+ 'No.' => 'Pos.',
+ 'Notes' => 'Bemerkungen',
+ 'Number' => 'Artikelnummer',
+ 'Open' => 'Offen',
+ 'Order' => 'Bestellung',
+ 'Orphaned' => 'nie benutzt',
+ 'POS' => 'Kasse',
+ 'Part Number' => 'Artikelnummer',
+ 'Phone' => 'Tel.',
+ 'Pricegroup' => 'Preisgruppe',
+ 'Pricelist' => 'Preisliste',
+ 'Project Number' => 'Projektnummer',
+ 'Purchase Order' => 'Einkaufsbestellung',
+ 'Purchase Orders' => 'Einkaufsbestellungen',
+ 'Qty' => 'Menge',
+ 'Quotation' => 'Offerte',
+ 'Quotations' => 'Offerten',
+ 'RFQ' => 'Offertanfrage',
+ 'Request for Quotations' => 'Offertenanfragen',
+ 'SIC' => 'Euro-SIC',
+ 'SKU' => 'Lagerhaltungseinheit',
+ 'Sales Invoice' => 'Ausgangsrechnung',
+ 'Sales Invoices' => 'Ausgangsrechnungen',
+ 'Sales Order' => 'Auftragsbestätigung',
+ 'Sales Orders' => 'Auftragsbestätigungen',
+ 'Salesperson' => 'Verkäufer',
+ 'Save' => 'Speichern',
+ 'Save Pricelist' => 'Preisliste speichern',
+ 'Save as new' => 'als neu speichern',
+ 'Search' => 'Suchen',
+ 'Select items' => 'Bitte wählen Sie aus',
+ 'Sell Price' => 'Verkaufspreis',
+ 'Serial Number' => 'Seriennummer',
+ 'Shipping Address' => 'Lieferanschrift',
+ 'Startdate' => 'Eintrittsdatum',
+ 'State' => 'Zustand',
+ 'State/Province' => 'Kanton',
+ 'Sub-contract GIFI' => 'Unterlieferant GIFI',
+ 'Subtotal' => 'Zwischensumme',
+ 'Summary' => 'Zusammenfassung',
+ 'Tax' => 'MWST',
+ 'Tax Account' => 'MWST-Konto',
+ 'Tax Included' => 'MWST im Preis enthalten',
+ 'Tax Number' => 'MWST-Nummer',
+ 'Tax Number / SSN' => 'MWST-Nummer',
+ 'Taxable' => 'MWST-pflichtig',
+ 'Terms' => 'Zahlungsbedingungen',
+ 'To' => 'Bis',
+ 'Total' => 'Total',
+ 'Type of Business' => 'Rabattgruppe',
+ 'Unit' => 'Einheit',
+ 'Update' => 'Erneuern',
+ 'Vendor History' => 'Alle Belege für Lieferant',
+ 'Vendor Invoice' => 'Einkaufsrechnung',
+ 'Vendor Invoices' => 'Einkaufsrechnungen',
+ 'Vendor Number' => 'Lieferantennummer',
+ 'Vendor deleted!' => 'Lieferant gelöscht!',
+ 'Vendor saved!' => 'Lieferant gespeichert!',
+ 'Vendors' => 'Lieferanten',
+ 'Zip/Postal Code' => 'PLZ',
+ 'days' => 'Tage',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'eingangsbuchung' => 'ap_transaction',
+ 'ausgangsbuchung' => 'ar_transaction',
+ 'kunde_erfassen' => 'add_customer',
+ 'lieferant_erfassen' => 'add_vendor',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'kasse' => 'pos',
+ 'preisliste' => 'pricelist',
+ 'einkaufsbestellung' => 'purchase_order',
+ 'offerte' => 'quotation',
+ 'offertanfrage' => 'rfq',
+ 'ausgangsrechnung' => 'sales_invoice',
+ 'auftragsbestätigung' => 'sales_order',
+ 'speichern' => 'save',
+ 'preisliste_speichern' => 'save_pricelist',
+ 'als_neu_speichern' => 'save_as_new',
+ 'erneuern' => 'update',
+ 'einkaufsrechnung' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/ch/gl b/locale/ch/gl
new file mode 100755
index 00000000..f003bbba
--- /dev/null
+++ b/locale/ch/gl
@@ -0,0 +1,185 @@
+$self{texts} = {
+ 'AP Transaction' => 'Eingangsbuchung',
+ 'AR Transaction' => 'Ausgangsbuchung',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Add Cash Transfer Transaction' => 'Zahlungseingang buchen',
+ 'Add General Ledger Transaction' => 'Buchung im Hauptbuch erfassen',
+ 'Address' => 'Adresse',
+ 'All' => 'Alle',
+ 'Amount' => 'Betrag',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Transaction' => 'Soll die Buchung wirklich gelöscht werden',
+ 'Asset' => 'Aktiva/Mittelverwendung',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Balance' => 'Bilanz',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'Buchung kann nicht gelöscht werden!',
+ 'Cannot post transaction for a closed period!' => 'Buchung kann nicht erfasst werden, weil die Periode bereits abgeschlossen ist!',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => 'Sie können eine Buchung mit Aktiva und Passiva nicht auf das selbe Konto buchen!',
+ 'Cannot post transaction!' => 'Rechnung kann nicht gebucht werden!',
+ 'Cc' => 'E-Mailkopie',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Continue' => 'Weiter',
+ 'Credit' => 'Haben',
+ 'Current' => 'Aktuell',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Day(s)' => 'Tage',
+ 'Debit' => 'Soll',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Delete' => 'Löschen',
+ 'Delete Schedule' => 'Zeitplan löschen',
+ 'Department' => 'Abteilung',
+ 'Description' => 'Beschreibung',
+ 'E-mail' => 'E-Mail',
+ 'E-mail message' => 'E-Mail-Nachricht ',
+ 'Edit Cash Transfer Transaction' => 'Überweisung bearbeiten',
+ 'Edit General Ledger Transaction' => 'Buchung im Hauptbuch bearbeiten',
+ 'Equity' => 'Passiva/Eigenkapital',
+ 'Every' => 'Jeden',
+ 'Expense' => 'Aufwand',
+ 'FX' => 'FX',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'For' => 'für',
+ 'From' => 'Von',
+ 'GIFI' => 'GIFI',
+ 'GL Transaction' => 'Hauptbuchbuchung',
+ 'General Ledger' => 'Hauptbuch',
+ 'ID' => 'ID',
+ 'Include Payment' => 'Bezahlung reinnehmen',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Income' => 'Ertrag',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Liability' => 'Passiva/Mittelherkunft',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Memo' => 'Notiz',
+ 'Message' => 'Nachricht',
+ 'Month' => 'Monat',
+ 'Month(s)' => 'Monat(e)',
+ 'Next Date' => 'Nächstes Datum',
+ 'Notes' => 'Bemerkungen',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Artikelnummer',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Out of balance transaction!' => 'Soll und Haben sind nicht gleich!',
+ 'Period' => 'Zeitraum',
+ 'Post' => 'Buchen',
+ 'Post as new' => 'Als neu buchen',
+ 'Print' => 'Drucken',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Dieses Projekt ist nicht in der Datenbank!',
+ 'Quarter' => 'Quartal',
+ 'R' => 'R',
+ 'Recurring Transaction' => 'Wiederkehrende Buchung',
+ 'Reference' => 'Referenz',
+ 'Repeat' => 'Wiederholen',
+ 'Reports' => 'Berichte',
+ 'Sales Invoice ' => 'Ausgangsrechnung ',
+ 'Save Schedule' => 'Zeitplan speichern',
+ 'Schedule' => 'Buchungstermine',
+ 'Scheduled' => 'geplant',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Source' => 'Beleg',
+ 'Startdate' => 'Eintrittsdatum',
+ 'Subject' => 'Betreff',
+ 'Subtotal' => 'Zwischensumme',
+ 'To' => 'Bis',
+ 'Transaction Date missing!' => 'Buchungsdatum fehlt!',
+ 'Transaction deleted!' => 'Buchung gelöscht!',
+ 'Transaction posted!' => 'Buchung getätigt!',
+ 'Update' => 'Erneuern',
+ 'Vendor Invoice ' => 'Einkaufsrechnung ',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Warning!' => 'Warnung!',
+ 'Week(s)' => 'Woche(n)',
+ 'Year' => 'Jahr',
+ 'Year(s)' => 'Jahr(e)',
+ 'Yes' => 'Ja',
+ 'You are posting an existing transaction!' => 'Sie buchen eine existierende Buchung',
+ 'You are printing and posting an existing transaction!' => 'Sie drucken und buchen eine bereits bestehende Buchung',
+ 'You are printing and saving an existing order' => 'Sie drucken und speichern einen existierenden Auftrag',
+ 'You are printing and saving an existing quotation' => 'Sie drucken und speichern eine bereits bestehende Offerte',
+ 'You are saving an existing order' => 'Sie speichern einen bereits bestehenden Auftrag',
+ 'You are saving an existing quotation' => 'Sie speichern eine vorhandene Offerte',
+ 'for' => 'für',
+ 'sent' => 'verschickt',
+ 'time(s)' => 'mal',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'eingangsbuchung' => 'ap_transaction',
+ 'ausgangsbuchung' => 'ar_transaction',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'zeitplan_löschen' => 'delete_schedule',
+ 'hauptbuchbuchung' => 'gl_transaction',
+ 'buchen' => 'post',
+ 'als_neu_buchen' => 'post_as_new',
+ 'ausgangsrechnung_' => 'sales_invoice_',
+ 'zeitplan_speichern' => 'save_schedule',
+ 'buchungstermine' => 'schedule',
+ 'erneuern' => 'update',
+ 'einkaufsrechnung_' => 'vendor_invoice_',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/ch/hr b/locale/ch/hr
new file mode 100755
index 00000000..5c4c259b
--- /dev/null
+++ b/locale/ch/hr
@@ -0,0 +1,120 @@
+$self{texts} = {
+ 'AP' => 'Verbindlichkeiten',
+ 'Above' => 'Über',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Active' => 'Aktiv',
+ 'Add Deduction' => 'Abzug erfassen',
+ 'Add Employee' => 'Arbeitnehmer erfassen',
+ 'Address' => 'Adresse',
+ 'Administrator' => 'Administrator',
+ 'After Deduction' => 'Nach Abzug',
+ 'All' => 'Alle',
+ 'Allowances' => 'Freibeträge',
+ 'Amount' => 'Betrag',
+ 'Amount missing!' => 'Betrag fehlt!',
+ 'BIC' => 'BIC',
+ 'Based on' => 'Basierend auf',
+ 'Before Deduction' => 'Vor Abzug',
+ 'Below' => 'Unter',
+ 'City' => 'Ort',
+ 'Continue' => 'Weiter',
+ 'Country' => 'Land',
+ 'DOB' => 'Geburtsdatum',
+ 'Deduct after' => 'Abzug nach',
+ 'Deduction deleted!' => 'Abzug gelöscht!',
+ 'Deduction saved!' => 'Abzug gespeichert!',
+ 'Deductions' => 'Abzüge',
+ 'Delete' => 'Löschen',
+ 'Description' => 'Beschreibung',
+ 'Description missing!' => 'Beschreibung fehlt!',
+ 'E-mail' => 'E-Mail',
+ 'Edit Deduction' => 'Abzug bearbeiten',
+ 'Edit Employee' => 'Arbeitnehmer bearbeiten',
+ 'Employee' => 'Mitarbeiter',
+ 'Employee Name' => 'Mitarbeitername',
+ 'Employee Number' => 'Mitarbeiternummer',
+ 'Employee deleted!' => 'Mitarbeiter gelöscht!',
+ 'Employee pays' => 'Mitarbeiter bezahlt',
+ 'Employee saved!' => 'Mitarbeiter gespeichert!',
+ 'Employees' => 'Mitarbeiter',
+ 'Employer' => 'Arbeitgeber',
+ 'Employer pays' => 'Arbeitgeber bezahlt',
+ 'Enddate' => 'Austrittsdatum',
+ 'Exempt age <' => 'Befreiheitsalter <',
+ 'Expense' => 'Aufwand',
+ 'From' => 'Von',
+ 'Home Phone' => 'Tel Privat',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Inactive' => 'Inaktiv',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Login' => 'Benutzername',
+ 'Manager' => 'Geschäftsführer',
+ 'Maximum' => 'Höchstens',
+ 'Name' => 'Name',
+ 'Name missing!' => 'Name fehlt!',
+ 'Notes' => 'Bemerkungen',
+ 'Number' => 'Mitarbeiternummer',
+ 'Orphaned' => 'nie benutzt',
+ 'Payroll Deduction' => 'Lohnabzug',
+ 'Pos' => 'Pos',
+ 'Rate' => '%',
+ 'Rate missing!' => 'Prozentsatz fehlt!',
+ 'Role' => 'Stellung',
+ 'S' => 'A',
+ 'SSN' => 'AHV-Nummer',
+ 'Sales' => 'Warenverkauf',
+ 'Save' => 'Speichern',
+ 'Save as new' => 'als neu speichern',
+ 'Startdate' => 'Eintrittsdatum',
+ 'State/Province' => 'Kanton',
+ 'Supervisor' => 'Vorarbeiter',
+ 'To' => 'Bis',
+ 'Update' => 'Erneuern',
+ 'User' => 'Datenbankbenutzer',
+ 'Work Phone' => 'Tel Arbeit',
+ 'Zip/Postal Code' => 'PLZ',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'abzug_erfassen' => 'add_deduction',
+ 'arbeitnehmer_erfassen' => 'add_employee',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'speichern' => 'save',
+ 'als_neu_speichern' => 'save_as_new',
+ 'erneuern' => 'update',
+};
+
+1;
+
diff --git a/locale/ch/ic b/locale/ch/ic
new file mode 100755
index 00000000..d96fe3fd
--- /dev/null
+++ b/locale/ch/ic
@@ -0,0 +1,301 @@
+$self{texts} = {
+ 'A' => 'A',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Accounts' => 'Konten',
+ 'Accrual' => 'vereinbart',
+ 'Active' => 'Aktiv',
+ 'Add' => 'Hinzufügen',
+ 'Add Assembly' => 'Erzeugnis erfassen',
+ 'Add Labor/Overhead' => 'Gestehungskosten',
+ 'Add Part' => 'Ware erfassen',
+ 'Add Purchase Order' => 'Einkaufsbeleg erfassen',
+ 'Add Quotation' => 'Offerte erstellen',
+ 'Add Request for Quotation' => 'Offertanfrage',
+ 'Add Sales Order' => 'Auftragsbestätigung',
+ 'Add Service' => 'Dienstleistung erfassen',
+ 'Address' => 'Adresse',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Assemblies' => 'Erzeugnisse',
+ 'Assemblies restocked!' => 'Erzeugnisse wieder eingelagert!',
+ 'Assembly' => 'Erzeugnis',
+ 'Attachment' => 'als Anhang',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Average Cost' => 'Durchschnittskosten',
+ 'Avg Cost' => 'Ø-Kosten',
+ 'BOM' => 'Stückliste',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Rechnungsadresse',
+ 'Bin' => 'Lagerort',
+ 'Bin List' => 'Lagerliste',
+ 'Break' => 'Umbruch',
+ 'COGS' => 'Aufwand',
+ 'COGS account does not exist!' => 'Konto für Kosten besteht nicht!',
+ 'Cannot create Assembly' => 'Erzeugniss kann nicht angelegt werden',
+ 'Cannot create Labor' => 'Fliessbandarbeitszeit kann nicht angelegt werden',
+ 'Cannot create Part' => 'Ware kann nicht erstellt werden',
+ 'Cannot create Service' => 'Dienstleistung kann nicht erstellt werden',
+ 'Cannot delete item!' => 'Artikel kann nicht gelöscht werden!',
+ 'Cannot stock assemblies!' => 'Erzeugnisse können nicht eingelagert werden!',
+ 'Cash' => 'vereinnahmt',
+ 'Cc' => 'E-Mailkopie',
+ 'Check Inventory' => 'Inventar prüfen',
+ 'City' => 'Ort',
+ 'Closed' => 'Geschlossen',
+ 'Company Name' => 'Firmenname',
+ 'Components' => 'Einzelteile',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Weiter',
+ 'Copies' => 'Kopien',
+ 'Cost' => 'Kosten',
+ 'Country' => 'Land',
+ 'Curr' => 'Währung',
+ 'Currency' => 'Währung',
+ 'Customer' => 'Kunde',
+ 'Customer Number' => 'Kundennummer',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Delete' => 'Löschen',
+ 'Delivery Date' => 'Lieferdatum',
+ 'Description' => 'Beschreibung',
+ 'Detail' => 'Einzelheiten',
+ 'Drawing' => 'Zeichnung',
+ 'E-mail' => 'E-Mail',
+ 'E-mail address missing!' => 'E-Mail-Adresse fehlt!',
+ 'E-mailed' => 'E-Mail gesendet',
+ 'Edit Assembly' => 'Erzeugnis bearbeiten',
+ 'Edit Labor/Overhead' => 'Gestehungskostenkosten bearbeiten',
+ 'Edit Part' => 'Ware bearbeiten',
+ 'Edit Service' => 'Dienstleistung bearbeiten',
+ 'Employee' => 'Verkäufer',
+ 'Expense' => 'Aufwand',
+ 'Expense account does not exist!' => 'Es existiert kein Konto für Unkosten!',
+ 'Extended' => 'Summe',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'From' => 'Von',
+ 'Group' => 'Warengruppe',
+ 'Image' => 'Bild',
+ 'In-line' => 'im Textkörper (Inline)',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Income' => 'Ertrag',
+ 'Income account does not exist!' => 'Es existiert kein Konto für Einnahmen!',
+ 'Individual Items' => 'Einzelteile',
+ 'Inventory' => 'Inventar',
+ 'Inventory account does not exist!' => 'Es existiert kein Konto für Inventar!',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Bevor dieses Erzeugnis als ungültig markiert werden kann muss das Inventar auf Null sein!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Bevor diese Ware als ungültig markiert werden kann muss das Inventar Null sein!',
+ 'Invoice' => 'Rechnung',
+ 'Invoice Date missing!' => 'Rechnungsdatum fehlt!',
+ 'Invoice Number' => 'Rechnungsnummer',
+ 'Invoice Number missing!' => 'Rechnungsnummer fehlt!',
+ 'Item' => 'Pos',
+ 'Item deleted!' => 'Artikel gelöscht!',
+ 'Item not on file!' => 'Dieser Artikel ist nicht in der Datenbank!',
+ 'Items' => 'Artikel',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Labor/Overhead' => 'Gestehungskosten',
+ 'Last Cost' => 'Letzte Kosten',
+ 'Leadtime' => 'Vorlaufzeit',
+ 'Line Total' => 'Zeilensumme',
+ 'Link Accounts' => 'Konten verknüpfen',
+ 'List' => 'Auflisten',
+ 'List Price' => 'Listenpreis',
+ 'Make' => 'Hersteller',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'Markup' => 'Marge',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Message' => 'Nachricht',
+ 'Microfiche' => 'Mikrofilm',
+ 'Model' => 'Modell',
+ 'Name' => 'Name',
+ 'No History!' => 'Kein Verlauf!',
+ 'No.' => 'Pos.',
+ 'Notes' => 'Bemerkungen',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Artikelnummer',
+ 'Number missing in Row' => 'Nummer fehlt in Zeile',
+ 'OH' => 'LU',
+ 'Obsolete' => 'Ungültig',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'On Hand' => 'am Lager',
+ 'Onhand' => 'am Lager',
+ 'Open' => 'Offen',
+ 'Order' => 'Bestellung',
+ 'Order Date missing!' => 'Bestelldatum fehlt!',
+ 'Order Number' => 'Bestellnummer',
+ 'Order Number missing!' => 'Bestellnummer fehlt!',
+ 'Orphaned' => 'nie benutzt',
+ 'PDF' => 'PDF',
+ 'PO' => 'Einkaufsbestellung',
+ 'Packing List' => 'Packliste',
+ 'Packing List Date missing!' => 'Verpackungslisten-Datum fehlt!',
+ 'Packing List Number missing!' => 'Verpackungslistennummer fehlt!',
+ 'Part' => 'Artikel',
+ 'Parts' => 'Waren',
+ 'Parts Requirements' => 'benötigte Artikel',
+ 'Period' => 'Zeitraum',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Lagerliste',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Preis',
+ 'Pricegroup' => 'Preisgruppe',
+ 'Printed' => 'Gedruckt',
+ 'Project' => 'Projekt',
+ 'Purchase Order' => 'Einkaufsbestellung',
+ 'Purchase Orders' => 'Einkaufsbestellungen',
+ 'Qty' => 'Menge',
+ 'Quantity exceeds available units to stock!' => 'Anzahl ist grösser als der Lagerbestand!',
+ 'Queue' => 'Warteschlange',
+ 'Queued' => 'In Warteschlange',
+ 'Quotation' => 'Offerte',
+ 'Quotation Date missing!' => 'Offertendatum fehlt!',
+ 'Quotation Number missing!' => 'Offertenummer fehlt!',
+ 'Quotations' => 'Offerten',
+ 'RFQ' => 'Offertanfrage',
+ 'ROP' => 'Lagerbestand Untergrenze',
+ 'Recd' => 'Erh',
+ 'Required by' => 'Erforderlich bis am',
+ 'SKU' => 'Lagerhaltungseinheit',
+ 'SO' => 'SO',
+ 'Sales Invoice' => 'Ausgangsrechnung',
+ 'Sales Invoices' => 'Ausgangsrechnungen',
+ 'Sales Order' => 'Auftragsbestätigung',
+ 'Sales Orders' => 'Auftragsbestätigungen',
+ 'Save' => 'Speichern',
+ 'Save as new' => 'als neu speichern',
+ 'Scheduled' => 'geplant',
+ 'Screen' => 'Bildschirm',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select items' => 'Bitte wählen Sie aus',
+ 'Select txt, postscript or PDF!' => 'Text, Postscript oder PDF auswählen!',
+ 'Sell' => 'Verkaufspreis',
+ 'Sell Price' => 'Verkaufspreis',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Serial No.' => 'Seriennummer',
+ 'Serial Number' => 'Seriennummer',
+ 'Service' => 'Dienstleistung',
+ 'Services' => 'Leistungen',
+ 'Ship' => 'Versenden',
+ 'Ship to' => 'Lieferung an',
+ 'Shipping Address' => 'Lieferanschrift',
+ 'Short' => 'Kurz',
+ 'State/Province' => 'Kanton',
+ 'Stock' => 'Einlagern',
+ 'Stock Assembly' => 'Erzeugnis einlagern',
+ 'Subject' => 'Betreff',
+ 'Subtotal' => 'Zwischensumme',
+ 'Summary' => 'Zusammenfassung',
+ 'Tax' => 'MWST',
+ 'Text' => 'Text',
+ 'To' => 'Bis',
+ 'Top Level' => 'Hauptbeschreibung',
+ 'Translation not on file!' => 'Übersetzung nicht in der Datenbank',
+ 'Unit' => 'Einheit',
+ 'Update' => 'Erneuern',
+ 'Updated' => 'Erneuert am',
+ 'Vendor' => 'Lieferant',
+ 'Vendor Invoice' => 'Einkaufsrechnung',
+ 'Vendor Invoices' => 'Einkaufsrechnungen',
+ 'Vendor Number' => 'Lieferantennummer',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Warehouse' => 'Warenlager',
+ 'Weight' => 'Gewicht',
+ 'What type of item is this?' => 'Welche Artikelart ist das?',
+ 'Work Order' => 'Arbeitsblatt',
+ 'Year' => 'Jahr',
+ 'Zip/Postal Code' => 'PLZ',
+ 'days' => 'Tage',
+ 'sent' => 'verschickt',
+ 'unexpected error!' => 'unerwarteter Fehler!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'erzeugnis_erfassen' => 'add_assembly',
+ 'gestehungskosten' => 'add_labor_overhead',
+ 'ware_erfassen' => 'add_part',
+ 'dienstleistung_erfassen' => 'add_service',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'erzeugnis_bearbeiten' => 'edit_assembly',
+ 'ware_bearbeiten' => 'edit_part',
+ 'dienstleistung_bearbeiten' => 'edit_service',
+ 'speichern' => 'save',
+ 'als_neu_speichern' => 'save_as_new',
+ 'erneuern' => 'update',
+};
+
+1;
+
diff --git a/locale/ch/io b/locale/ch/io
new file mode 100755
index 00000000..649ce0e9
--- /dev/null
+++ b/locale/ch/io
@@ -0,0 +1,137 @@
+$self{texts} = {
+ 'Add Purchase Order' => 'Einkaufsbeleg erfassen',
+ 'Add Quotation' => 'Offerte erstellen',
+ 'Add Request for Quotation' => 'Offertanfrage',
+ 'Add Sales Order' => 'Auftragsbestätigung',
+ 'Address' => 'Adresse',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Attachment' => 'als Anhang',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Rechnungsadresse',
+ 'Bin' => 'Lagerort',
+ 'Bin List' => 'Lagerliste',
+ 'Cc' => 'E-Mailkopie',
+ 'City' => 'Ort',
+ 'Company Name' => 'Firmenname',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Weiter',
+ 'Copies' => 'Kopien',
+ 'Country' => 'Land',
+ 'Customer Number' => 'Kundennummer',
+ 'Date' => 'Datum',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Delivery Date' => 'Lieferdatum',
+ 'Description' => 'Beschreibung',
+ 'E-mail' => 'E-Mail',
+ 'E-mail address missing!' => 'E-Mail-Adresse fehlt!',
+ 'E-mailed' => 'E-Mail gesendet',
+ 'Extended' => 'Summe',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'Group' => 'Warengruppe',
+ 'In-line' => 'im Textkörper (Inline)',
+ 'Invoice' => 'Rechnung',
+ 'Invoice Date missing!' => 'Rechnungsdatum fehlt!',
+ 'Invoice Number missing!' => 'Rechnungsnummer fehlt!',
+ 'Item' => 'Pos',
+ 'Item not on file!' => 'Dieser Artikel ist nicht in der Datenbank!',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Message' => 'Nachricht',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Artikelnummer',
+ 'Number missing in Row' => 'Nummer fehlt in Zeile',
+ 'OH' => 'LU',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Order Date missing!' => 'Bestelldatum fehlt!',
+ 'Order Number missing!' => 'Bestellnummer fehlt!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Packliste',
+ 'Packing List Date missing!' => 'Verpackungslisten-Datum fehlt!',
+ 'Packing List Number missing!' => 'Verpackungslistennummer fehlt!',
+ 'Part' => 'Artikel',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Lagerliste',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Preis',
+ 'Printed' => 'Gedruckt',
+ 'Project' => 'Projekt',
+ 'Purchase Order' => 'Einkaufsbestellung',
+ 'Qty' => 'Menge',
+ 'Queue' => 'Warteschlange',
+ 'Queued' => 'In Warteschlange',
+ 'Quotation' => 'Offerte',
+ 'Quotation Date missing!' => 'Offertendatum fehlt!',
+ 'Quotation Number missing!' => 'Offertenummer fehlt!',
+ 'Recd' => 'Erh',
+ 'Required by' => 'Erforderlich bis am',
+ 'SKU' => 'Lagerhaltungseinheit',
+ 'Sales Order' => 'Auftragsbestätigung',
+ 'Scheduled' => 'geplant',
+ 'Screen' => 'Bildschirm',
+ 'Select items' => 'Bitte wählen Sie aus',
+ 'Select txt, postscript or PDF!' => 'Text, Postscript oder PDF auswählen!',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Serial No.' => 'Seriennummer',
+ 'Service' => 'Dienstleistung',
+ 'Ship' => 'Versenden',
+ 'Ship to' => 'Lieferung an',
+ 'Shipping Address' => 'Lieferanschrift',
+ 'State/Province' => 'Kanton',
+ 'Subject' => 'Betreff',
+ 'Subtotal' => 'Zwischensumme',
+ 'Text' => 'Text',
+ 'To' => 'Bis',
+ 'Translation not on file!' => 'Übersetzung nicht in der Datenbank',
+ 'Unit' => 'Einheit',
+ 'Vendor Number' => 'Lieferantennummer',
+ 'What type of item is this?' => 'Welche Artikelart ist das?',
+ 'Work Order' => 'Arbeitsblatt',
+ 'Zip/Postal Code' => 'PLZ',
+ 'sent' => 'verschickt',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'weiter' => 'continue',
+};
+
+1;
+
diff --git a/locale/ch/ir b/locale/ch/ir
new file mode 100755
index 00000000..174f9333
--- /dev/null
+++ b/locale/ch/ir
@@ -0,0 +1,257 @@
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Add Purchase Order' => 'Einkaufsbeleg erfassen',
+ 'Add Quotation' => 'Offerte erstellen',
+ 'Add Request for Quotation' => 'Offertanfrage',
+ 'Add Sales Order' => 'Auftragsbestätigung',
+ 'Add Vendor Invoice' => 'Einkaufsrechnung erfassen',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Betrag',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Invoice Number' => 'Soll die Rechnung mit folgender Nummer wirklich gelöscht werden:',
+ 'Attachment' => 'als Anhang',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Rechnungsadresse',
+ 'Bin' => 'Lagerort',
+ 'Bin List' => 'Lagerliste',
+ 'Cannot delete invoice!' => 'Rechnung kann nicht gelöscht werden!',
+ 'Cannot post invoice for a closed period!' => 'Rechnung kann nicht gebucht werden, weil die Periode bereits abgeschlossen inst!',
+ 'Cannot post invoice!' => 'Rechnung kann nicht gebucht werden!',
+ 'Cannot post payment for a closed period!' => 'Zahlung kann nicht gebucht werden, weil die Periode bereits abgeschlossen ist!',
+ 'Cc' => 'E-Mailkopie',
+ 'City' => 'Ort',
+ 'Company Name' => 'Firmenname',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Weiter',
+ 'Copies' => 'Kopien',
+ 'Country' => 'Land',
+ 'Credit Limit' => 'Kreditlimite',
+ 'Currency' => 'Währung',
+ 'Customer Number' => 'Kundennummer',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Day(s)' => 'Tage',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Delete' => 'Löschen',
+ 'Delete Schedule' => 'Zeitplan löschen',
+ 'Delivery Date' => 'Lieferdatum',
+ 'Department' => 'Abteilung',
+ 'Description' => 'Beschreibung',
+ 'Due Date' => 'Fälligkeitsdatum',
+ 'E-mail' => 'E-Mail',
+ 'E-mail address missing!' => 'E-Mail-Adresse fehlt!',
+ 'E-mail message' => 'E-Mail-Nachricht ',
+ 'E-mailed' => 'E-Mail gesendet',
+ 'Edit Vendor Invoice' => 'Einkaufsrechnung bearbeiten',
+ 'Every' => 'Jeden',
+ 'Exch' => 'Wkurs.',
+ 'Exchange Rate' => 'Wechselkurs',
+ 'Exchange rate for payment missing!' => 'Wechselkurs für Bezahlung fehlt!',
+ 'Exchange rate missing!' => 'Wechselkurs fehlt!',
+ 'Extended' => 'Summe',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'For' => 'für',
+ 'Group' => 'Warengruppe',
+ 'In-line' => 'im Textkörper (Inline)',
+ 'Include Payment' => 'Bezahlung reinnehmen',
+ 'Internal Notes' => 'Interne Notizen',
+ 'Invoice' => 'Rechnung',
+ 'Invoice Date' => 'Rechnungsdatum',
+ 'Invoice Date missing!' => 'Rechnungsdatum fehlt!',
+ 'Invoice Number' => 'Rechnungsnummer',
+ 'Invoice Number missing!' => 'Rechnungsnummer fehlt!',
+ 'Invoice deleted!' => 'Rechung gelöscht!',
+ 'Item' => 'Pos',
+ 'Item not on file!' => 'Dieser Artikel ist nicht in der Datenbank!',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Language' => 'Sprache',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Memo' => 'Notiz',
+ 'Message' => 'Nachricht',
+ 'Month(s)' => 'Monat(e)',
+ 'Next Date' => 'Nächstes Datum',
+ 'Notes' => 'Bemerkungen',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Artikelnummer',
+ 'Number missing in Row' => 'Nummer fehlt in Zeile',
+ 'OH' => 'LU',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Order Date missing!' => 'Bestelldatum fehlt!',
+ 'Order Number' => 'Bestellnummer',
+ 'Order Number missing!' => 'Bestellnummer fehlt!',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ihre Bestellnummer',
+ 'Packing List' => 'Packliste',
+ 'Packing List Date missing!' => 'Verpackungslisten-Datum fehlt!',
+ 'Packing List Number missing!' => 'Verpackungslistennummer fehlt!',
+ 'Part' => 'Artikel',
+ 'Payment date missing!' => 'Zahlungsdatum fehlt!',
+ 'Payments' => 'Zahlungen',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Lagerliste',
+ 'Post' => 'Buchen',
+ 'Post as new' => 'Als neu buchen',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Preis',
+ 'Print' => 'Drucken',
+ 'Printed' => 'Gedruckt',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Dieses Projekt ist nicht in der Datenbank!',
+ 'Purchase Order' => 'Einkaufsbestellung',
+ 'Qty' => 'Menge',
+ 'Queue' => 'Warteschlange',
+ 'Queued' => 'In Warteschlange',
+ 'Quotation' => 'Offerte',
+ 'Quotation Date missing!' => 'Offertendatum fehlt!',
+ 'Quotation Number missing!' => 'Offertenummer fehlt!',
+ 'Recd' => 'Erh',
+ 'Record in' => 'Buchen auf',
+ 'Recurring Transaction' => 'Wiederkehrende Buchung',
+ 'Reference' => 'Referenz',
+ 'Remaining' => 'Rest',
+ 'Repeat' => 'Wiederholen',
+ 'Required by' => 'Erforderlich bis am',
+ 'SKU' => 'Lagerhaltungseinheit',
+ 'Sales Order' => 'Auftragsbestätigung',
+ 'Save Schedule' => 'Zeitplan speichern',
+ 'Schedule' => 'Buchungstermine',
+ 'Scheduled' => 'geplant',
+ 'Screen' => 'Bildschirm',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
+ 'Select items' => 'Bitte wählen Sie aus',
+ 'Select txt, postscript or PDF!' => 'Text, Postscript oder PDF auswählen!',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Serial No.' => 'Seriennummer',
+ 'Service' => 'Dienstleistung',
+ 'Ship' => 'Versenden',
+ 'Ship to' => 'Lieferung an',
+ 'Shipping Address' => 'Lieferanschrift',
+ 'Source' => 'Beleg',
+ 'Startdate' => 'Eintrittsdatum',
+ 'State/Province' => 'Kanton',
+ 'Subject' => 'Betreff',
+ 'Subtotal' => 'Zwischensumme',
+ 'Tax Included' => 'MWST im Preis enthalten',
+ 'Text' => 'Text',
+ 'To' => 'Bis',
+ 'Total' => 'Total',
+ 'Translation not on file!' => 'Übersetzung nicht in der Datenbank',
+ 'Unit' => 'Einheit',
+ 'Update' => 'Erneuern',
+ 'Vendor' => 'Lieferant',
+ 'Vendor Number' => 'Lieferantennummer',
+ 'Vendor missing!' => 'Lieferant fehlt!',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Warning!' => 'Warnung!',
+ 'Week(s)' => 'Woche(n)',
+ 'What type of item is this?' => 'Welche Artikelart ist das?',
+ 'Work Order' => 'Arbeitsblatt',
+ 'Year(s)' => 'Jahr(e)',
+ 'Yes' => 'Ja',
+ 'You are posting an existing transaction!' => 'Sie buchen eine existierende Buchung',
+ 'You are printing and posting an existing transaction!' => 'Sie drucken und buchen eine bereits bestehende Buchung',
+ 'You are printing and saving an existing order' => 'Sie drucken und speichern einen existierenden Auftrag',
+ 'You are printing and saving an existing quotation' => 'Sie drucken und speichern eine bereits bestehende Offerte',
+ 'You are saving an existing order' => 'Sie speichern einen bereits bestehenden Auftrag',
+ 'You are saving an existing quotation' => 'Sie speichern eine vorhandene Offerte',
+ 'Zip/Postal Code' => 'PLZ',
+ 'ea' => 'pro',
+ 'for' => 'für',
+ 'posted!' => 'gebucht!',
+ 'sent' => 'verschickt',
+ 'time(s)' => 'mal',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'zeitplan_löschen' => 'delete_schedule',
+ 'buchen' => 'post',
+ 'als_neu_buchen' => 'post_as_new',
+ 'einkaufsbestellung' => 'purchase_order',
+ 'zeitplan_speichern' => 'save_schedule',
+ 'buchungstermine' => 'schedule',
+ 'erneuern' => 'update',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/ch/is b/locale/ch/is
new file mode 100755
index 00000000..6382c869
--- /dev/null
+++ b/locale/ch/is
@@ -0,0 +1,271 @@
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Add Purchase Order' => 'Einkaufsbeleg erfassen',
+ 'Add Quotation' => 'Offerte erstellen',
+ 'Add Request for Quotation' => 'Offertanfrage',
+ 'Add Sales Invoice' => 'Ausgangsrechnung erfassen',
+ 'Add Sales Order' => 'Auftragsbestätigung',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Betrag',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Invoice Number' => 'Soll die Rechnung mit folgender Nummer wirklich gelöscht werden:',
+ 'Attachment' => 'als Anhang',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Rechnungsadresse',
+ 'Bin' => 'Lagerort',
+ 'Bin List' => 'Lagerliste',
+ 'Business' => 'Branche',
+ 'Cannot delete invoice!' => 'Rechnung kann nicht gelöscht werden!',
+ 'Cannot post invoice for a closed period!' => 'Rechnung kann nicht gebucht werden, weil die Periode bereits abgeschlossen inst!',
+ 'Cannot post invoice!' => 'Rechnung kann nicht gebucht werden!',
+ 'Cannot post payment for a closed period!' => 'Zahlung kann nicht gebucht werden, weil die Periode bereits abgeschlossen ist!',
+ 'Cc' => 'E-Mailkopie',
+ 'City' => 'Ort',
+ 'Company Name' => 'Firmenname',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Weiter',
+ 'Copies' => 'Kopien',
+ 'Country' => 'Land',
+ 'Credit Limit' => 'Kreditlimite',
+ 'Currency' => 'Währung',
+ 'Customer' => 'Kunde',
+ 'Customer Number' => 'Kundennummer',
+ 'Customer missing!' => 'Kundenname fehlt!',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Day(s)' => 'Tage',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Delete' => 'Löschen',
+ 'Delete Schedule' => 'Zeitplan löschen',
+ 'Delivery Date' => 'Lieferdatum',
+ 'Department' => 'Abteilung',
+ 'Description' => 'Beschreibung',
+ 'Due Date' => 'Fälligkeitsdatum',
+ 'E-mail' => 'E-Mail',
+ 'E-mail address missing!' => 'E-Mail-Adresse fehlt!',
+ 'E-mail message' => 'E-Mail-Nachricht ',
+ 'E-mailed' => 'E-Mail gesendet',
+ 'Edit Sales Invoice' => 'Ausgangsrechnung bearbeiten',
+ 'Every' => 'Jeden',
+ 'Exch' => 'Wkurs.',
+ 'Exchange Rate' => 'Wechselkurs',
+ 'Exchange rate for payment missing!' => 'Wechselkurs für Bezahlung fehlt!',
+ 'Exchange rate missing!' => 'Wechselkurs fehlt!',
+ 'Extended' => 'Summe',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'For' => 'für',
+ 'Group' => 'Warengruppe',
+ 'In-line' => 'im Textkörper (Inline)',
+ 'Include Payment' => 'Bezahlung reinnehmen',
+ 'Internal Notes' => 'Interne Notizen',
+ 'Invoice' => 'Rechnung',
+ 'Invoice Date' => 'Rechnungsdatum',
+ 'Invoice Date missing!' => 'Rechnungsdatum fehlt!',
+ 'Invoice Number' => 'Rechnungsnummer',
+ 'Invoice Number missing!' => 'Rechnungsnummer fehlt!',
+ 'Invoice deleted!' => 'Rechung gelöscht!',
+ 'Item' => 'Pos',
+ 'Item not on file!' => 'Dieser Artikel ist nicht in der Datenbank!',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Memo' => 'Notiz',
+ 'Message' => 'Nachricht',
+ 'Month(s)' => 'Monat(e)',
+ 'Next Date' => 'Nächstes Datum',
+ 'Notes' => 'Bemerkungen',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Artikelnummer',
+ 'Number missing in Row' => 'Nummer fehlt in Zeile',
+ 'OH' => 'LU',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Order Date missing!' => 'Bestelldatum fehlt!',
+ 'Order Number' => 'Bestellnummer',
+ 'Order Number missing!' => 'Bestellnummer fehlt!',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ihre Bestellnummer',
+ 'Packing List' => 'Packliste',
+ 'Packing List Date missing!' => 'Verpackungslisten-Datum fehlt!',
+ 'Packing List Number missing!' => 'Verpackungslistennummer fehlt!',
+ 'Part' => 'Artikel',
+ 'Payment date missing!' => 'Zahlungsdatum fehlt!',
+ 'Payments' => 'Zahlungen',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Lagerliste',
+ 'Post' => 'Buchen',
+ 'Post as new' => 'Als neu buchen',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Preis',
+ 'Print' => 'Drucken',
+ 'Print and Post' => 'Drucken und Buchen',
+ 'Print and Post as new' => 'Drucken und als neu buchen',
+ 'Printed' => 'Gedruckt',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Dieses Projekt ist nicht in der Datenbank!',
+ 'Purchase Order' => 'Einkaufsbestellung',
+ 'Qty' => 'Menge',
+ 'Queue' => 'Warteschlange',
+ 'Queued' => 'In Warteschlange',
+ 'Quotation' => 'Offerte',
+ 'Quotation Date missing!' => 'Offertendatum fehlt!',
+ 'Quotation Number missing!' => 'Offertenummer fehlt!',
+ 'Recd' => 'Erh',
+ 'Record in' => 'Buchen auf',
+ 'Recurring Transaction' => 'Wiederkehrende Buchung',
+ 'Reference' => 'Referenz',
+ 'Remaining' => 'Rest',
+ 'Repeat' => 'Wiederholen',
+ 'Required by' => 'Erforderlich bis am',
+ 'SKU' => 'Lagerhaltungseinheit',
+ 'Sales Order' => 'Auftragsbestätigung',
+ 'Salesperson' => 'Verkäufer',
+ 'Save Schedule' => 'Zeitplan speichern',
+ 'Schedule' => 'Buchungstermine',
+ 'Scheduled' => 'geplant',
+ 'Screen' => 'Bildschirm',
+ 'Select a Printer!' => 'Drucker auswählen!',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
+ 'Select items' => 'Bitte wählen Sie aus',
+ 'Select postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Select txt, postscript or PDF!' => 'Text, Postscript oder PDF auswählen!',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Serial No.' => 'Seriennummer',
+ 'Service' => 'Dienstleistung',
+ 'Ship' => 'Versenden',
+ 'Ship to' => 'Lieferung an',
+ 'Ship via' => 'Versandart',
+ 'Shipping Address' => 'Lieferanschrift',
+ 'Shipping Point' => 'Lieferort',
+ 'Source' => 'Beleg',
+ 'Startdate' => 'Eintrittsdatum',
+ 'State/Province' => 'Kanton',
+ 'Subject' => 'Betreff',
+ 'Subtotal' => 'Zwischensumme',
+ 'Tax Included' => 'MWST im Preis enthalten',
+ 'Text' => 'Text',
+ 'To' => 'Bis',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Handelsrabatt',
+ 'Translation not on file!' => 'Übersetzung nicht in der Datenbank',
+ 'Unit' => 'Einheit',
+ 'Update' => 'Erneuern',
+ 'Vendor Number' => 'Lieferantennummer',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Warning!' => 'Warnung!',
+ 'Week(s)' => 'Woche(n)',
+ 'What type of item is this?' => 'Welche Artikelart ist das?',
+ 'Work Order' => 'Arbeitsblatt',
+ 'Year(s)' => 'Jahr(e)',
+ 'Yes' => 'Ja',
+ 'You are posting an existing transaction!' => 'Sie buchen eine existierende Buchung',
+ 'You are printing and posting an existing transaction!' => 'Sie drucken und buchen eine bereits bestehende Buchung',
+ 'You are printing and saving an existing order' => 'Sie drucken und speichern einen existierenden Auftrag',
+ 'You are printing and saving an existing quotation' => 'Sie drucken und speichern eine bereits bestehende Offerte',
+ 'You are saving an existing order' => 'Sie speichern einen bereits bestehenden Auftrag',
+ 'You are saving an existing quotation' => 'Sie speichern eine vorhandene Offerte',
+ 'Zip/Postal Code' => 'PLZ',
+ 'ea' => 'pro',
+ 'for' => 'für',
+ 'posted!' => 'gebucht!',
+ 'sent' => 'verschickt',
+ 'time(s)' => 'mal',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'zeitplan_löschen' => 'delete_schedule',
+ 'e_mail' => 'e_mail',
+ 'buchen' => 'post',
+ 'als_neu_buchen' => 'post_as_new',
+ 'drucken' => 'print',
+ 'drucken_und_buchen' => 'print_and_post',
+ 'drucken_und_als_neu_buchen' => 'print_and_post_as_new',
+ 'auftragsbestätigung' => 'sales_order',
+ 'zeitplan_speichern' => 'save_schedule',
+ 'buchungstermine' => 'schedule',
+ 'lieferung_an' => 'ship_to',
+ 'erneuern' => 'update',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/ch/jc b/locale/ch/jc
new file mode 100755
index 00000000..1c32821e
--- /dev/null
+++ b/locale/ch/jc
@@ -0,0 +1,155 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Add Stores Card' => 'Artikelkarte',
+ 'Add Time Card' => 'Stempelkarte erfassen',
+ 'Allocated' => 'Zugeteilt',
+ 'Amount' => 'Betrag',
+ 'Are you sure you want to delete time card for' => 'Soll die Stempelkarte folgender Person gelöscht werden',
+ 'Cannot add stores card for a completed job!' => 'Cannot add stores card for a completed job!',
+ 'Cannot add time card for a completed job!' => 'Stempelkarte kann für eine abgeschlossene Arbeit nicht erfasst werden!',
+ 'Cannot change stores card for a completed job!' => 'Cannot change stores card for a completed job!',
+ 'Cannot change time card for a completed job!' => 'Stempelkarte für eine abgeschlossene Arbeit kann nicht geändert werden!',
+ 'Cannot delete time card!' => 'Stempelkarte kann nicht gelöscht werden!',
+ 'Cannot save stores card for a closed period!' => 'Cannot save stores card for a closed period!',
+ 'Cannot save stores card!' => 'Cannot save stores card!',
+ 'Cannot save time card for a closed period!' => 'Stempelkarte für eine geschlossene Periode kann nicht gespeichert werden!',
+ 'Cannot save time card!' => 'Stempelkarte kann nicht gespeichert werden!',
+ 'Chargeable' => 'Verrechenbar',
+ 'Clocked' => 'Ausgerechnet',
+ 'Closed' => 'Geschlossen',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Continue' => 'Weiter',
+ 'Cost' => 'Kosten',
+ 'Current' => 'Aktuell',
+ 'Date' => 'Datum',
+ 'Date missing!' => 'Datum fehlt!',
+ 'Date worked' => 'Datum',
+ 'Delete' => 'Löschen',
+ 'Description' => 'Beschreibung',
+ 'Edit Time Card' => 'Stempelkarte bearbeiten',
+ 'Employee' => 'Verkäufer',
+ 'Friday' => 'Freitag',
+ 'From' => 'Von',
+ 'ID' => 'ID',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Job Description' => 'Auftragsbeschreibung',
+ 'Job Name' => 'Auftragsname',
+ 'Job Number' => 'Auftragsnummer',
+ 'Job Number missing!' => 'Auftragsnummer fehlt!',
+ 'Labor Code' => 'Arbeitscode',
+ 'Labor Code missing!' => 'Arbeitscode fehlt!',
+ 'Monday' => 'Montag',
+ 'Month' => 'Monat',
+ 'No Employees on file!' => 'Kein Mitarbeiter in Datenbank!',
+ 'No Labor codes on file!' => 'Kein Arbeitscode auf Datenbank!',
+ 'No Parts on file!' => 'Keine Artikel auf Datenbank!',
+ 'No Services on file!' => 'Keine Dienstleistungen auf Datenbank!',
+ 'No open Jobs!' => 'Keine offene Aufträge!',
+ 'No open Projects!' => 'Keine offene Projekte!',
+ 'Non-chargeable' => 'Nicht verrechenbar',
+ 'Notes' => 'Bemerkungen',
+ 'Open' => 'Offen',
+ 'PDF' => 'PDF',
+ 'Part Number' => 'Artikelnummer',
+ 'Period' => 'Zeitraum',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Drucken',
+ 'Print and Save' => 'Drucken und speichern',
+ 'Print and Save as new' => 'Drucken und als neu speichern',
+ 'Printed' => 'Gedruckt',
+ 'Project Name' => 'Projektname',
+ 'Project Number' => 'Projektnummer',
+ 'Project Number missing!' => 'Projektnummer fehlt!',
+ 'Project/Job Name' => 'Projekt-/Auftragsname',
+ 'Project/Job Number' => 'Projekt-/Aufgragsnummer',
+ 'Qty' => 'Menge',
+ 'Quarter' => 'Quartal',
+ 'Queue' => 'Warteschlange',
+ 'Queued' => 'In Warteschlange',
+ 'Saturday' => 'Samstag',
+ 'Save' => 'Speichern',
+ 'Save as new' => 'als neu speichern',
+ 'Screen' => 'Bildschirm',
+ 'Select a Printer!' => 'Drucker auswählen!',
+ 'Select postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Service Code' => 'Dienstleistungscode',
+ 'Service Code missing!' => 'Dienstleistungscode fehlt!',
+ 'Service/Labor Code' => 'Dienstleistungs-/Arbeitscode fehlt!',
+ 'Startdate' => 'Eintrittsdatum',
+ 'Stores Card' => 'Stores Card',
+ 'Stores Card saved!' => 'Stores Card saved!',
+ 'Stores Cards' => 'Stores Cards',
+ 'Subtotal' => 'Zwischensumme',
+ 'Sunday' => 'Sonntag',
+ 'Thursday' => 'Donnerstag',
+ 'Time' => 'Zeit',
+ 'Time Card' => 'Stempelkarte',
+ 'Time Card deleted!' => 'Stempelkarte gelöscht!',
+ 'Time Card saved!' => 'Stempelkarte gespeichert!',
+ 'Time Cards' => 'Stempelkarten',
+ 'Time In' => 'Eingestempelt',
+ 'Time Out' => 'Ausgestempelt',
+ 'To' => 'Bis',
+ 'Total' => 'Total',
+ 'Tuesday' => 'Dienstag',
+ 'Update' => 'Erneuern',
+ 'Warning!' => 'Warnung!',
+ 'Wednesday' => 'Mittwoch',
+ 'Year' => 'Jahr',
+ 'Yes' => 'Ja',
+ 'You are printing and saving an existing transaction!' => 'Sie drucken und speichern eine bereits existierende Buchung!',
+ 'You are saving an existing transaction!' => 'Sie speichern eine vorhande Buchung!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'artikelkarte' => 'add_stores_card',
+ 'stempelkarte_erfassen' => 'add_time_card',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'drucken' => 'print',
+ 'drucken_und_speichern' => 'print_and_save',
+ 'drucken_und_als_neu_speichern' => 'print_and_save_as_new',
+ 'speichern' => 'save',
+ 'als_neu_speichern' => 'save_as_new',
+ 'erneuern' => 'update',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/ch/locales.pl b/locale/ch/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/ch/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/ch/login b/locale/ch/login
new file mode 100755
index 00000000..db6686df
--- /dev/null
+++ b/locale/ch/login
@@ -0,0 +1,25 @@
+$self{texts} = {
+ 'Access Denied!' => 'Zugriff fehlgeschlagen!',
+ 'Company' => 'Firmenname',
+ 'Continue' => 'Weiter',
+ 'Dataset is newer than version!' => 'Datenset ist neuer als installierte Version',
+ 'Incorrect Dataset version!' => 'Ungültigige Datenset-Version',
+ 'Login' => 'Benutzername',
+ 'Name' => 'Benutzername',
+ 'Password' => 'Passwort',
+ 'Upgrading to Version' => 'Datenset wird erneuert auf Version',
+ 'Version' => 'Version',
+ 'You did not enter a name!' => 'Sie haben keinen Namen eingegeben!',
+ 'done' => 'fertig',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ 'benutzername' => 'login',
+};
+
+1;
+
diff --git a/locale/ch/menu b/locale/ch/menu
new file mode 100755
index 00000000..ef533afa
--- /dev/null
+++ b/locale/ch/menu
@@ -0,0 +1,143 @@
+$self{texts} = {
+ 'AP' => 'Verbindlichkeiten',
+ 'AP Aging' => 'Offene Verbindl.',
+ 'AP Transaction' => 'Eingangsbuchung',
+ 'AR' => 'Forderungen',
+ 'AR Aging' => 'Forderungenspiegel',
+ 'AR Transaction' => 'Ausgangsbuchung',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Add Account' => 'Konto anlegen',
+ 'Add Assembly' => 'Erzeugnis erfassen',
+ 'Add Business' => 'Branche erfassen',
+ 'Add Customer' => 'Kunde erfassen',
+ 'Add Department' => 'Abteilung erfassen',
+ 'Add Employee' => 'Arbeitnehmer erfassen',
+ 'Add GIFI' => 'GIFI anlegen',
+ 'Add Group' => 'Gruppe erfassen',
+ 'Add Labor/Overhead' => 'Gestehungskosten',
+ 'Add Language' => 'Sprache erfassen',
+ 'Add Part' => 'Ware erfassen',
+ 'Add Pricegroup' => 'Preisgruppe erfassen',
+ 'Add Project' => 'Projekt erfassen',
+ 'Add SIC' => 'Euro-SIC erfassen',
+ 'Add Service' => 'Dienstleistung erfassen',
+ 'Add Time Card' => 'Stempelkarte erfassen',
+ 'Add Transaction' => 'Buchung erfassen',
+ 'Add Vendor' => 'Lieferant erfassen',
+ 'Add Warehouse' => 'Warenlager erfassen',
+ 'All Items' => 'Alle Artikel',
+ 'Assemblies' => 'Erzeugnisse',
+ 'Audit Control' => 'Bücherkontrolle',
+ 'Backup' => 'Datensicherung',
+ 'Balance Sheet' => 'Bilanz',
+ 'Batch Printing' => 'Massendruck',
+ 'Bin List' => 'Lagerliste',
+ 'Bin Lists' => 'Lagerlisten',
+ 'Cash' => 'vereinnahmt',
+ 'Chart of Accounts' => 'Kontenübersicht',
+ 'Check' => 'Scheck',
+ 'Components' => 'Einzelteile',
+ 'Consolidate' => 'Konsolidieren',
+ 'Customers' => 'Kunden',
+ 'Defaults' => 'Einstellungen',
+ 'Departments' => 'Abteilungen',
+ 'Description' => 'Beschreibung',
+ 'Employees' => 'Mitarbeiter',
+ 'General Ledger' => 'Hauptbuch',
+ 'Generate' => 'Erzeugen',
+ 'Goods & Services' => 'Waren & Dienstleistungen',
+ 'Groups' => 'Gruppen',
+ 'HR' => 'Personal',
+ 'HTML Templates' => 'HTML Vorlagen',
+ 'History' => 'Statistik',
+ 'Income Statement' => 'Gewinn- und Verlustrechnung',
+ 'Invoice' => 'Rechnung',
+ 'LaTeX Templates' => 'LaTeX Vorlagen',
+ 'Labor/Overhead' => 'Gestehungskosten',
+ 'Language' => 'Sprache',
+ 'List Accounts' => 'Kontenliste',
+ 'List Businesses' => 'Branche aufzeigen',
+ 'List Departments' => 'Abteilungen aufzeigen',
+ 'List GIFI' => 'GIFI aufzeigen',
+ 'List Languages' => 'Sprachen aufzeigen',
+ 'List Projects' => 'Projekte aufzeigen',
+ 'List SIC' => 'Euro-SIC aufzeigen',
+ 'List Warehouses' => 'Warenlager aufzeigen',
+ 'Logout' => 'Abmelden',
+ 'New Window' => 'Neues Fenster',
+ 'Non-taxable' => 'MWST-frei',
+ 'Open' => 'Offen',
+ 'Order Entry' => 'Bestellungen',
+ 'Outstanding' => 'Offen',
+ 'POS' => 'Kasse',
+ 'POS Invoice' => 'Kassenabrechnung',
+ 'Packing List' => 'Packliste',
+ 'Packing Lists' => 'Packlisten',
+ 'Parts' => 'Waren',
+ 'Payment' => 'Belastung',
+ 'Payments' => 'Zahlungen',
+ 'Pick List' => 'Lagerliste',
+ 'Pick Lists' => 'Lagerlisten',
+ 'Preferences' => 'Benutzereinstellungen',
+ 'Pricegroups' => 'Preisgruppen',
+ 'Print' => 'Drucken',
+ 'Projects' => 'Projekte',
+ 'Purchase Order' => 'Einkaufsbestellung',
+ 'Purchase Orders' => 'Einkaufsbestellungen',
+ 'Quotation' => 'Offerte',
+ 'Quotations' => 'Offerten',
+ 'RFQ' => 'Offertanfrage',
+ 'RFQs' => 'Offerte-Anfragen',
+ 'Receipt' => 'Quittung',
+ 'Receipts' => 'Quittungen',
+ 'Receive' => 'Einlagern',
+ 'Reconciliation' => 'Kontenabgleich',
+ 'Recurring Transactions' => 'Wiederkehrende Buchungen',
+ 'Reports' => 'Berichte',
+ 'Requirements' => 'Benötigte Teile',
+ 'SIC' => 'Euro-SIC',
+ 'Sale' => 'Verkauf',
+ 'Sales Invoice' => 'Ausgangsrechnung',
+ 'Sales Invoices' => 'Ausgangsrechnungen',
+ 'Sales Order' => 'Auftragsbestätigung',
+ 'Sales Orders' => 'Auftragsbestätigungen',
+ 'Save to File' => 'Auf Festplatte speichern',
+ 'Search' => 'Suchen',
+ 'Send by E-Mail' => 'Per E-Mail senden',
+ 'Services' => 'Leistungen',
+ 'Ship' => 'Versenden',
+ 'Shipping' => 'Versand',
+ 'Statement' => 'Zahlungserinnerung',
+ 'Stock Assembly' => 'Erzeugnis einlagern',
+ 'Stylesheet' => 'Stilvorlage',
+ 'System' => 'System',
+ 'Tax collected' => 'vereinnahmte MWST',
+ 'Tax paid' => 'Vorsteuer',
+ 'Text Templates' => 'Text Vorlagen',
+ 'Time Card' => 'Stempelkarte',
+ 'Time Cards' => 'Stempelkarten',
+ 'Transactions' => 'Buchungen',
+ 'Transfer' => 'Übertrag',
+ 'Transfer Inventory' => 'Inventarübertrag',
+ 'Translations' => 'Übersetzungen',
+ 'Trial Balance' => 'Saldenbilanz',
+ 'Type of Business' => 'Rabattgruppe',
+ 'Vendor Invoice' => 'Einkaufsrechnung',
+ 'Vendors' => 'Lieferanten',
+ 'Version' => 'Version',
+ 'Warehouses' => 'Warenlager',
+ 'Work Order' => 'Arbeitsblatt',
+ 'Work Orders' => 'Arbeitsblätter',
+ 'Yearend' => 'Jahresabschluss',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/ch/oe b/locale/ch/oe
new file mode 100755
index 00000000..148ab49f
--- /dev/null
+++ b/locale/ch/oe
@@ -0,0 +1,378 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Add Exchange Rate' => 'Wechselkurs erfassen',
+ 'Add Purchase Order' => 'Einkaufsbeleg erfassen',
+ 'Add Quotation' => 'Offerte erstellen',
+ 'Add Request for Quotation' => 'Offertanfrage',
+ 'Add Sales Invoice' => 'Ausgangsrechnung erfassen',
+ 'Add Sales Order' => 'Auftragsbestätigung',
+ 'Add Vendor Invoice' => 'Einkaufsrechnung erfassen',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Betrag',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Order Number' => 'Soll die Bestellung mit folgender Nummer wirklich gelöscht werden:',
+ 'Are you sure you want to delete Quotation Number' => 'Soll die Offerte mit folgender Nummer wirklich gelöscht werden:',
+ 'Attachment' => 'als Anhang',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Rechnungsadresse',
+ 'Bin' => 'Lagerort',
+ 'Bin List' => 'Lagerliste',
+ 'Business' => 'Branche',
+ 'C' => 'G',
+ 'Cannot delete order!' => 'Bestellung kann nicht gelöscht werden!',
+ 'Cannot delete quotation!' => 'Offerte kann nicht gelöscht werden!',
+ 'Cannot save order!' => 'Bestellung kann nicht gespeichert werden!',
+ 'Cannot save quotation!' => 'Offerte kann nicht gespeichert werden!',
+ 'Cc' => 'E-Mailkopie',
+ 'City' => 'Ort',
+ 'Closed' => 'Geschlossen',
+ 'Company Name' => 'Firmenname',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Consolidate Orders' => 'Bestellungen konsolidieren',
+ 'Consolidate Purchase Orders' => 'Einkaufsbestellungen konsolidieren',
+ 'Consolidate Sales Orders' => 'Verkaufsbestellungen konsolidieren',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Weiter',
+ 'Copies' => 'Kopien',
+ 'Cost' => 'Kosten',
+ 'Could not save!' => 'Konnte nicht gespeichert werden!',
+ 'Could not transfer Inventory!' => 'Inventar wurde nicht übertragen!',
+ 'Country' => 'Land',
+ 'Credit Limit' => 'Kreditlimite',
+ 'Curr' => 'Währung',
+ 'Currency' => 'Währung',
+ 'Current' => 'Aktuell',
+ 'Customer' => 'Kunde',
+ 'Customer Number' => 'Kundennummer',
+ 'Customer missing!' => 'Kundenname fehlt!',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Date Received' => 'Eingangsdatum',
+ 'Date received missing!' => 'Eingangsdatum fehlt!',
+ 'Day(s)' => 'Tage',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Delete' => 'Löschen',
+ 'Delete Schedule' => 'Zeitplan löschen',
+ 'Delivery Date' => 'Lieferdatum',
+ 'Department' => 'Abteilung',
+ 'Description' => 'Beschreibung',
+ 'Done' => 'Fertig',
+ 'E-mail' => 'E-Mail',
+ 'E-mail address missing!' => 'E-Mail-Adresse fehlt!',
+ 'E-mail message' => 'E-Mail-Nachricht ',
+ 'E-mailed' => 'E-Mail gesendet',
+ 'Edit Purchase Order' => 'Einkaufsbestellung bearbeiten',
+ 'Edit Quotation' => 'Offerte bearbeiten',
+ 'Edit Request for Quotation' => 'Offerte bearbeiten',
+ 'Edit Sales Order' => 'Verkaufsbeleg bearbeiten',
+ 'Employee' => 'Verkäufer',
+ 'Every' => 'Jeden',
+ 'Exchange Rate' => 'Wechselkurs',
+ 'Exchange rate missing!' => 'Wechselkurs fehlt!',
+ 'Extended' => 'Summe',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'For' => 'für',
+ 'From' => 'Von',
+ 'From Warehouse' => 'Vom Lagerhaus',
+ 'Generate Orders' => 'Aufträge erstellen',
+ 'Generate Purchase Orders' => 'Bestellungen erstellen',
+ 'Generate Purchase Orders from Sales Order' => 'Bestellungen von Aufträgen erstellen',
+ 'Generate Sales Order' => 'Einkaufsbestellung erstellen',
+ 'Generate Sales Order from Purchase Orders' => 'Auftrag anhand von Bestellungen erstellen',
+ 'Group' => 'Warengruppe',
+ 'ID' => 'ID',
+ 'In-line' => 'im Textkörper (Inline)',
+ 'Include Payment' => 'Bezahlung reinnehmen',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Internal Notes' => 'Interne Notizen',
+ 'Inventory saved!' => 'Inventar gespeichert!',
+ 'Inventory transferred!' => 'Inventar übertragen',
+ 'Invoice' => 'Rechnung',
+ 'Invoice Date missing!' => 'Rechnungsdatum fehlt!',
+ 'Invoice Number missing!' => 'Rechnungsnummer fehlt!',
+ 'Item' => 'Pos',
+ 'Item not on file!' => 'Dieser Artikel ist nicht in der Datenbank!',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Lead' => 'Anlaufzeit',
+ 'Manager' => 'Geschäftsführer',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Message' => 'Nachricht',
+ 'Month' => 'Monat',
+ 'Month(s)' => 'Monat(e)',
+ 'Next Date' => 'Nächstes Datum',
+ 'No.' => 'Pos.',
+ 'Notes' => 'Bemerkungen',
+ 'Nothing entered!' => 'Es wurde nichts eingegeben!',
+ 'Nothing selected!' => 'Es wurde nichts ausgewählt!',
+ 'Nothing to transfer!' => 'Es gibt nichts zu übertragen!',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Artikelnummer',
+ 'Number missing in Row' => 'Nummer fehlt in Zeile',
+ 'O' => 'O',
+ 'OH' => 'LU',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Open' => 'Offen',
+ 'Order' => 'Bestellung',
+ 'Order Date' => 'Bestelldatum',
+ 'Order Date missing!' => 'Bestelldatum fehlt!',
+ 'Order Number' => 'Bestellnummer',
+ 'Order Number missing!' => 'Bestellnummer fehlt!',
+ 'Order deleted!' => 'Bestellung gelöscht!',
+ 'Order generation failed!' => 'Auftragserstellung fehlgeschlagen!',
+ 'Order saved!' => 'Bestellung gespeichert!',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ihre Bestellnummer',
+ 'Packing List' => 'Packliste',
+ 'Packing List Date missing!' => 'Verpackungslisten-Datum fehlt!',
+ 'Packing List Number missing!' => 'Verpackungslistennummer fehlt!',
+ 'Part' => 'Artikel',
+ 'Part Number' => 'Artikelnummer',
+ 'Period' => 'Zeitraum',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Lagerliste',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Preis',
+ 'Print' => 'Drucken',
+ 'Print and Save' => 'Drucken und speichern',
+ 'Print and Save as new' => 'Drucken und als neu speichern',
+ 'Printed' => 'Gedruckt',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Dieses Projekt ist nicht in der Datenbank!',
+ 'Purchase Order' => 'Einkaufsbestellung',
+ 'Purchase Orders' => 'Einkaufsbestellungen',
+ 'Qty' => 'Menge',
+ 'Quarter' => 'Quartal',
+ 'Queue' => 'Warteschlange',
+ 'Queued' => 'In Warteschlange',
+ 'Quotation' => 'Offerte',
+ 'Quotation ' => 'Verkaufsofferte',
+ 'Quotation Date' => 'Offertendatum',
+ 'Quotation Date missing!' => 'Offertendatum fehlt!',
+ 'Quotation Number' => 'Offertenummer',
+ 'Quotation Number missing!' => 'Offertenummer fehlt!',
+ 'Quotation deleted!' => 'Offerte gelöscht!',
+ 'Quotations' => 'Offerten',
+ 'RFQ' => 'Offertanfrage',
+ 'RFQ ' => 'Einkaufsofferte ',
+ 'RFQ Number' => 'Einkaufsoffertennummer',
+ 'Recd' => 'Erh',
+ 'Receive Merchandise' => 'Artikeln einlagern',
+ 'Recurring Transaction' => 'Wiederkehrende Buchung',
+ 'Reference' => 'Referenz',
+ 'Remaining' => 'Rest',
+ 'Repeat' => 'Wiederholen',
+ 'Req' => 'Ben.',
+ 'Request for Quotation' => 'Offerteanfrage',
+ 'Request for Quotations' => 'Offertenanfragen',
+ 'Required by' => 'Erforderlich bis am',
+ 'SKU' => 'Lagerhaltungseinheit',
+ 'Sales Invoice' => 'Ausgangsrechnung',
+ 'Sales Order' => 'Auftragsbestätigung',
+ 'Sales Orders' => 'Auftragsbestätigungen',
+ 'Salesperson' => 'Verkäufer',
+ 'Save' => 'Speichern',
+ 'Save Schedule' => 'Zeitplan speichern',
+ 'Save as new' => 'als neu speichern',
+ 'Schedule' => 'Buchungstermine',
+ 'Scheduled' => 'geplant',
+ 'Screen' => 'Bildschirm',
+ 'Select Vendor' => 'Lieferant auswählen',
+ 'Select a Printer!' => 'Drucker auswählen!',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
+ 'Select items' => 'Bitte wählen Sie aus',
+ 'Select postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Select txt, postscript or PDF!' => 'Text, Postscript oder PDF auswählen!',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Serial No.' => 'Seriennummer',
+ 'Service' => 'Dienstleistung',
+ 'Ship' => 'Versenden',
+ 'Ship Merchandise' => 'Waren versenden',
+ 'Ship to' => 'Lieferung an',
+ 'Ship via' => 'Versandart',
+ 'Shipping Address' => 'Lieferanschrift',
+ 'Shipping Date' => 'Versanddatum',
+ 'Shipping Date missing!' => 'Versanddatum fehlt!',
+ 'Shipping Point' => 'Lieferort',
+ 'Startdate' => 'Eintrittsdatum',
+ 'State/Province' => 'Kanton',
+ 'Subject' => 'Betreff',
+ 'Subtotal' => 'Zwischensumme',
+ 'Tax' => 'MWST',
+ 'Tax Included' => 'MWST im Preis enthalten',
+ 'Terms' => 'Zahlungsbedingungen',
+ 'Text' => 'Text',
+ 'To' => 'Bis',
+ 'To Warehouse' => 'Zum Lager',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Handelsrabatt',
+ 'Transfer' => 'Übertrag',
+ 'Transfer Inventory' => 'Inventarübertrag',
+ 'Transfer from' => 'umlagern von',
+ 'Transfer to' => 'Übergabe an',
+ 'Translation not on file!' => 'Übersetzung nicht in der Datenbank',
+ 'Unit' => 'Einheit',
+ 'Update' => 'Erneuern',
+ 'Valid until' => 'Gültig bis',
+ 'Vendor' => 'Lieferant',
+ 'Vendor Invoice' => 'Einkaufsrechnung',
+ 'Vendor Number' => 'Lieferantennummer',
+ 'Vendor missing!' => 'Lieferant fehlt!',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Warehouse' => 'Warenlager',
+ 'Warning!' => 'Warnung!',
+ 'Week(s)' => 'Woche(n)',
+ 'What type of item is this?' => 'Welche Artikelart ist das?',
+ 'Work Order' => 'Arbeitsblatt',
+ 'Year' => 'Jahr',
+ 'Year(s)' => 'Jahr(e)',
+ 'Yes' => 'Ja',
+ 'You are posting an existing transaction!' => 'Sie buchen eine existierende Buchung',
+ 'You are printing and posting an existing transaction!' => 'Sie drucken und buchen eine bereits bestehende Buchung',
+ 'You are printing and saving an existing order' => 'Sie drucken und speichern einen existierenden Auftrag',
+ 'You are printing and saving an existing quotation' => 'Sie drucken und speichern eine bereits bestehende Offerte',
+ 'You are saving an existing order' => 'Sie speichern einen bereits bestehenden Auftrag',
+ 'You are saving an existing quotation' => 'Sie speichern eine vorhandene Offerte',
+ 'Zip/Postal Code' => 'PLZ',
+ 'days' => 'Tage',
+ 'ea' => 'pro',
+ 'for' => 'für',
+ 'sent' => 'verschickt',
+ 'time(s)' => 'mal',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'bestellungen_konsolidieren' => 'consolidate_orders',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'zeitplan_löschen' => 'delete_schedule',
+ 'fertig' => 'done',
+ 'e_mail' => 'e_mail',
+ 'aufträge_erstellen' => 'generate_orders',
+ 'bestellungen_erstellen' => 'generate_purchase_orders',
+ 'einkaufsbestellung_erstellen' => 'generate_sales_order',
+ 'drucken' => 'print',
+ 'drucken_und_speichern' => 'print_and_save',
+ 'drucken_und_als_neu_speichern' => 'print_and_save_as_new',
+ 'einkaufsbestellung' => 'purchase_order',
+ 'offerte' => 'quotation',
+ 'verkaufsofferte' => 'quotation_',
+ 'offertanfrage' => 'rfq',
+ 'einkaufsofferte_' => 'rfq_',
+ 'ausgangsrechnung' => 'sales_invoice',
+ 'auftragsbestätigung' => 'sales_order',
+ 'speichern' => 'save',
+ 'zeitplan_speichern' => 'save_schedule',
+ 'als_neu_speichern' => 'save_as_new',
+ 'buchungstermine' => 'schedule',
+ 'lieferant_auswählen' => 'select_vendor',
+ 'lieferung_an' => 'ship_to',
+ 'Übertrag' => 'transfer',
+ 'erneuern' => 'update',
+ 'einkaufsrechnung' => 'vendor_invoice',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/ch/pe b/locale/ch/pe
new file mode 100755
index 00000000..ed061ccf
--- /dev/null
+++ b/locale/ch/pe
@@ -0,0 +1,166 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Active' => 'Aktiv',
+ 'Add' => 'Hinzufügen',
+ 'Add Group' => 'Gruppe erfassen',
+ 'Add Job' => 'Fertigung anlegen',
+ 'Add Pricegroup' => 'Preisgruppe erfassen',
+ 'Add Project' => 'Projekt erfassen',
+ 'Address' => 'Adresse',
+ 'All' => 'Alle',
+ 'Amount' => 'Betrag',
+ 'As of' => 'As of',
+ 'Assembly' => 'Erzeugnis',
+ 'Assembly stocked!' => 'Erzeugnis eingelagert!',
+ 'Bin' => 'Lagerort',
+ 'Cannot stock Assembly!' => 'Erzeugnis kann nicht eingelagert werden!',
+ 'Completed' => 'Fertig',
+ 'Continue' => 'Weiter',
+ 'Current' => 'Aktuell',
+ 'Customer' => 'Kunde',
+ 'Customer missing!' => 'Kundenname fehlt!',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Delete' => 'Löschen',
+ 'Description' => 'Beschreibung',
+ 'Description Translations' => 'Übersetzte Beschreibungen',
+ 'Detail' => 'Einzelheiten',
+ 'Edit Description Translations' => 'Übersetzte Beschreibungen bearbeiten',
+ 'Edit Group' => 'Gruppe bearbeiten',
+ 'Edit Job' => 'Auftrag bearbeiten',
+ 'Edit Pricegroup' => 'Preisgruppe bearbeiten',
+ 'Edit Project' => 'Projekt bearbeiten',
+ 'Employee' => 'Verkäufer',
+ 'Enddate' => 'Enddatum',
+ 'Failed to save order!' => 'Speichern der Bestellung schlug fehl!',
+ 'From' => 'Von',
+ 'Generate Sales Orders' => 'Einkaufsbestellungen erstellen',
+ 'Group' => 'Warengruppe',
+ 'Group Translations' => 'Gruppenübersetzung',
+ 'Group deleted!' => 'Gruppe gelöscht!',
+ 'Group missing!' => 'Gruppe fehlt!',
+ 'Group saved!' => 'Gruppe gespeichert!',
+ 'Groups' => 'Gruppen',
+ 'Inactive' => 'Inaktiv',
+ 'Income' => 'Ertrag',
+ 'Job' => 'Auftrag',
+ 'Job Number' => 'Auftragsnummer',
+ 'Job deleted!' => 'Auftrag gelöscht!',
+ 'Job saved!' => 'Auftrag gespeichert!',
+ 'Jobs' => 'Aufträge',
+ 'Language' => 'Sprache',
+ 'Languages not defined!' => 'Sprachen nicht definiert!',
+ 'Link Accounts' => 'Konten verknüpfen',
+ 'List Price' => 'Listenpreis',
+ 'Month' => 'Monat',
+ 'No open Projects!' => 'Keine offene Projekte!',
+ 'Notes' => 'Bemerkungen',
+ 'Nothing selected!' => 'Es wurde nichts ausgewählt!',
+ 'Number' => 'Projektnummer',
+ 'Orders generated!' => 'Bestellungen erstellt!',
+ 'Orphaned' => 'nie benutzt',
+ 'Part Number' => 'Artikelnummer',
+ 'Period' => 'Zeitraum',
+ 'Pricegroup' => 'Preisgruppe',
+ 'Pricegroup deleted!' => 'Preisgruppe gelöscht!',
+ 'Pricegroup missing!' => 'Preisgruppe fehlt!',
+ 'Pricegroup saved!' => 'Preisgruppe gespeichert!',
+ 'Pricegroups' => 'Preisgruppen',
+ 'Production' => 'Produktion',
+ 'Project' => 'Projekt',
+ 'Project Description Translations' => 'Übersetzung für Projektbeschreibungen',
+ 'Project Number' => 'Projektnummer',
+ 'Project deleted!' => 'Projekt gelöscht!',
+ 'Project saved!' => 'Projekt gespeichert!',
+ 'Projects' => 'Projekte',
+ 'Qty' => 'Menge',
+ 'Quarter' => 'Quartal',
+ 'Save' => 'Speichern',
+ 'Select Customer' => 'Kunde auswählen',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Sell Price' => 'Verkaufspreis',
+ 'Service Code' => 'Dienstleistungscode',
+ 'Startdate' => 'Startdatum',
+ 'Stock Finished Goods' => 'Lager fertiggestellte Güter',
+ 'Summary' => 'Zusammenfassung',
+ 'Tax' => 'MWST',
+ 'To' => 'Bis',
+ 'Transaction Dates' => 'Buchungsdaten',
+ 'Translation' => 'Übersetzung',
+ 'Translation deleted!' => 'Übersetzung gelöscht!',
+ 'Translations saved!' => 'Übersetzung gespeichert!',
+ 'Unit' => 'Einheit',
+ 'Update' => 'Erneuern',
+ 'Updated' => 'Erneuert am',
+ 'Vendor' => 'Lieferant',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Weight' => 'Gewicht',
+ 'Year' => 'Jahr',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'gruppe_erfassen' => 'add_group',
+ 'fertigung_anlegen' => 'add_job',
+ 'preisgruppe_erfassen' => 'add_pricegroup',
+ 'projekt_erfassen' => 'add_project',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'einkaufsbestellungen_erstellen' => 'generate_sales_orders',
+ 'speichern' => 'save',
+ 'kunde_auswählen' => 'select_customer',
+ 'erneuern' => 'update',
+};
+
+1;
+
diff --git a/locale/ch/pos b/locale/ch/pos
new file mode 100755
index 00000000..f6af54bf
--- /dev/null
+++ b/locale/ch/pos
@@ -0,0 +1,81 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Add POS Invoice' => 'Kassenbon erfassen',
+ 'Amount' => 'Betrag',
+ 'Business' => 'Branche',
+ 'Cannot post transaction!' => 'Rechnung kann nicht gebucht werden!',
+ 'Change' => 'Retourgeld',
+ 'Continue' => 'Weiter',
+ 'Credit Limit' => 'Kreditlimite',
+ 'Currency' => 'Währung',
+ 'Current' => 'Aktuell',
+ 'Customer' => 'Kunde',
+ 'Customer missing!' => 'Kundenname fehlt!',
+ 'Delete' => 'Löschen',
+ 'Department' => 'Abteilung',
+ 'Description' => 'Beschreibung',
+ 'Edit POS Invoice' => 'Kassenbon bearbeiten',
+ 'Exchange Rate' => 'Wechselkurs',
+ 'Exchange rate missing!' => 'Wechselkurs fehlt!',
+ 'Extended' => 'Summe',
+ 'From' => 'Von',
+ 'Language' => 'Sprache',
+ 'Memo' => 'Notiz',
+ 'Month' => 'Monat',
+ 'Number' => 'Artikelnummer',
+ 'Open' => 'Offen',
+ 'Period' => 'Zeitraum',
+ 'Post' => 'Buchen',
+ 'Posted!' => 'Verbucht!',
+ 'Price' => 'Preis',
+ 'Print' => 'Drucken',
+ 'Print and Post' => 'Drucken und Buchen',
+ 'Printed' => 'Gedruckt',
+ 'Qty' => 'Menge',
+ 'Quarter' => 'Quartal',
+ 'Receipts' => 'Quittungen',
+ 'Record in' => 'Buchen auf',
+ 'Remaining' => 'Rest',
+ 'Salesperson' => 'Verkäufer',
+ 'Screen' => 'Bildschirm',
+ 'Select a Printer!' => 'Drucker auswählen!',
+ 'Source' => 'Beleg',
+ 'Subtotal' => 'Zwischensumme',
+ 'Tax Included' => 'MWST im Preis enthalten',
+ 'To' => 'Bis',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Handelsrabatt',
+ 'Unit' => 'Einheit',
+ 'Update' => 'Erneuern',
+ 'Year' => 'Jahr',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'buchen' => 'post',
+ 'drucken' => 'print',
+ 'drucken_und_buchen' => 'print_and_post',
+ 'erneuern' => 'update',
+};
+
+1;
+
diff --git a/locale/ch/ps b/locale/ch/ps
new file mode 100755
index 00000000..5a56cd53
--- /dev/null
+++ b/locale/ch/ps
@@ -0,0 +1,397 @@
+$self{texts} = {
+ 'AP Aging' => 'Offene Verbindl.',
+ 'AP Outstanding' => 'Offene Verbindlichkeiten',
+ 'AP Transaction' => 'Eingangsbuchung',
+ 'AP Transactions' => 'Eingangsbuchungen',
+ 'AR Aging' => 'Forderungenspiegel',
+ 'AR Outstanding' => 'Offene Forderungen',
+ 'AR Transaction' => 'Ausgangsbuchung',
+ 'AR Transactions' => 'Ausgangsbuchungen',
+ 'Account' => 'Konto',
+ 'Account Number' => 'Kontonummer',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Accounts' => 'Konten',
+ 'Accrual' => 'vereinbart',
+ 'Add AP Transaction' => 'Eingangsbuchung erfassen',
+ 'Add AR Transaction' => 'Ausgangsbuchung erfassen',
+ 'Add POS Invoice' => 'Kassenbon erfassen',
+ 'Add Purchase Order' => 'Einkaufsbeleg erfassen',
+ 'Add Quotation' => 'Offerte erstellen',
+ 'Add Request for Quotation' => 'Offertanfrage',
+ 'Add Sales Invoice' => 'Ausgangsrechnung erfassen',
+ 'Add Sales Order' => 'Auftragsbestätigung',
+ 'Address' => 'Adresse',
+ 'Aged' => 'Veraltet',
+ 'Aged Overdue' => 'Alter überfällig',
+ 'All Accounts' => 'Alle Konten',
+ 'Amount' => 'Betrag',
+ 'Amount Due' => 'Betrag fällig',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Invoice Number' => 'Soll die Rechnung mit folgender Nummer wirklich gelöscht werden:',
+ 'Are you sure you want to delete Transaction' => 'Soll die Buchung wirklich gelöscht werden',
+ 'Attachment' => 'als Anhang',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Balance' => 'Bilanz',
+ 'Balance Sheet' => 'Bilanz',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Rechnungsadresse',
+ 'Bin' => 'Lagerort',
+ 'Bin List' => 'Lagerliste',
+ 'Business' => 'Branche',
+ 'Cannot delete invoice!' => 'Rechnung kann nicht gelöscht werden!',
+ 'Cannot delete transaction!' => 'Buchung kann nicht gelöscht werden!',
+ 'Cannot post invoice for a closed period!' => 'Rechnung kann nicht gebucht werden, weil die Periode bereits abgeschlossen inst!',
+ 'Cannot post invoice!' => 'Rechnung kann nicht gebucht werden!',
+ 'Cannot post payment for a closed period!' => 'Zahlung kann nicht gebucht werden, weil die Periode bereits abgeschlossen ist!',
+ 'Cannot post transaction for a closed period!' => 'Buchung kann nicht erfasst werden, weil die Periode bereits abgeschlossen ist!',
+ 'Cannot post transaction!' => 'Rechnung kann nicht gebucht werden!',
+ 'Cash' => 'vereinnahmt',
+ 'Cc' => 'E-Mailkopie',
+ 'Change' => 'Retourgeld',
+ 'Check' => 'Scheck',
+ 'City' => 'Ort',
+ 'Closed' => 'Geschlossen',
+ 'Company Name' => 'Firmenname',
+ 'Compare to' => 'Vergleichen mit',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Weiter',
+ 'Copies' => 'Kopien',
+ 'Country' => 'Land',
+ 'Credit' => 'Haben',
+ 'Credit Limit' => 'Kreditlimite',
+ 'Curr' => 'Währung',
+ 'Currency' => 'Währung',
+ 'Current' => 'Aktuell',
+ 'Current Earnings' => 'Aktuelles Einkommen',
+ 'Customer' => 'Kunde',
+ 'Customer Number' => 'Kundennummer',
+ 'Customer missing!' => 'Kundenname fehlt!',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Date Paid' => 'Zahlungsdatum',
+ 'Day(s)' => 'Tage',
+ 'Debit' => 'Soll',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Decimalplaces' => 'Dezimalstellen',
+ 'Delete' => 'Löschen',
+ 'Delete Schedule' => 'Zeitplan löschen',
+ 'Delivery Date' => 'Lieferdatum',
+ 'Department' => 'Abteilung',
+ 'Description' => 'Beschreibung',
+ 'Detail' => 'Einzelheiten',
+ 'Due Date' => 'Fälligkeitsdatum',
+ 'Due Date missing!' => 'Fälligkeitsdatum fehlt!',
+ 'E-mail' => 'E-Mail',
+ 'E-mail Statement to' => 'Mahnung per E-Mail an',
+ 'E-mail address missing!' => 'E-Mail-Adresse fehlt!',
+ 'E-mail message' => 'E-Mail-Nachricht ',
+ 'E-mailed' => 'E-Mail gesendet',
+ 'Edit AP Transaction' => 'Eingangsbuchung bearbeiten',
+ 'Edit AR Transaction' => 'Ausgangsbuchung bearbeiten',
+ 'Edit POS Invoice' => 'Kassenbon bearbeiten',
+ 'Edit Sales Invoice' => 'Ausgangsrechnung bearbeiten',
+ 'Employee' => 'Verkäufer',
+ 'Every' => 'Jeden',
+ 'Exch' => 'Wkurs.',
+ 'Exchange Rate' => 'Wechselkurs',
+ 'Exchange rate for payment missing!' => 'Wechselkurs für Bezahlung fehlt!',
+ 'Exchange rate missing!' => 'Wechselkurs fehlt!',
+ 'Extended' => 'Summe',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'For' => 'für',
+ 'From' => 'Von',
+ 'GIFI' => 'GIFI',
+ 'Group' => 'Warengruppe',
+ 'Heading' => 'Überschrift',
+ 'ID' => 'ID',
+ 'In-line' => 'im Textkörper (Inline)',
+ 'Include Exchange Rate Difference' => 'Wechselkursunterschied aufnehmen',
+ 'Include Payment' => 'Bezahlung reinnehmen',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Income Statement' => 'Gewinn- und Verlustrechnung',
+ 'Internal Notes' => 'Interne Notizen',
+ 'Invoice' => 'Rechnung',
+ 'Invoice Date' => 'Rechnungsdatum',
+ 'Invoice Date missing!' => 'Rechnungsdatum fehlt!',
+ 'Invoice Number' => 'Rechnungsnummer',
+ 'Invoice Number missing!' => 'Rechnungsnummer fehlt!',
+ 'Invoice deleted!' => 'Rechung gelöscht!',
+ 'Item' => 'Pos',
+ 'Item not on file!' => 'Dieser Artikel ist nicht in der Datenbank!',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Language' => 'Sprache',
+ 'Manager' => 'Geschäftsführer',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Memo' => 'Notiz',
+ 'Message' => 'Nachricht',
+ 'Method' => 'Abrechnungsmethode',
+ 'Month' => 'Monat',
+ 'Month(s)' => 'Monat(e)',
+ 'N/A' => 'N.Z.',
+ 'Next Date' => 'Nächstes Datum',
+ 'No.' => 'Pos.',
+ 'Non-taxable Purchases' => 'MSTF-freie Einkäufe',
+ 'Non-taxable Sales' => 'MSTF-freie Verkäufe',
+ 'Notes' => 'Bemerkungen',
+ 'Nothing selected!' => 'Es wurde nichts ausgewählt!',
+ 'Nothing to print!' => 'Es wurde nichts gedruckt!',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Artikelnummer',
+ 'Number missing in Row' => 'Nummer fehlt in Zeile',
+ 'OH' => 'LU',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Open' => 'Offen',
+ 'Order' => 'Bestellung',
+ 'Order Date missing!' => 'Bestelldatum fehlt!',
+ 'Order Number' => 'Bestellnummer',
+ 'Order Number missing!' => 'Bestellnummer fehlt!',
+ 'Overdue' => 'Überfällig',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ihre Bestellnummer',
+ 'Packing List' => 'Packliste',
+ 'Packing List Date missing!' => 'Verpackungslisten-Datum fehlt!',
+ 'Packing List Number missing!' => 'Verpackungslistennummer fehlt!',
+ 'Paid' => 'Bezahlt',
+ 'Part' => 'Artikel',
+ 'Payment date missing!' => 'Zahlungsdatum fehlt!',
+ 'Payments' => 'Zahlungen',
+ 'Period' => 'Zeitraum',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Lagerliste',
+ 'Post' => 'Buchen',
+ 'Post as new' => 'Als neu buchen',
+ 'Posted!' => 'Verbucht!',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Preis',
+ 'Print' => 'Drucken',
+ 'Print and Post' => 'Drucken und Buchen',
+ 'Print and Post as new' => 'Drucken und als neu buchen',
+ 'Printed' => 'Gedruckt',
+ 'Project' => 'Projekt',
+ 'Project Number' => 'Projektnummer',
+ 'Project Transactions' => 'Projektbuchungen',
+ 'Project not on file!' => 'Dieses Projekt ist nicht in der Datenbank!',
+ 'Purchase Order' => 'Einkaufsbestellung',
+ 'Qty' => 'Menge',
+ 'Quarter' => 'Quartal',
+ 'Queue' => 'Warteschlange',
+ 'Queued' => 'In Warteschlange',
+ 'Quotation' => 'Offerte',
+ 'Quotation Date missing!' => 'Offertendatum fehlt!',
+ 'Quotation Number missing!' => 'Offertenummer fehlt!',
+ 'Recd' => 'Erh',
+ 'Receipt' => 'Quittung',
+ 'Receipts' => 'Quittungen',
+ 'Record in' => 'Buchen auf',
+ 'Recurring Transaction' => 'Wiederkehrende Buchung',
+ 'Reference' => 'Referenz',
+ 'Remaining' => 'Rest',
+ 'Repeat' => 'Wiederholen',
+ 'Report for' => 'Bericht für',
+ 'Required by' => 'Erforderlich bis am',
+ 'SKU' => 'Lagerhaltungseinheit',
+ 'Sales Invoice.' => 'Ausgangsrechnung.',
+ 'Sales Order' => 'Auftragsbestätigung',
+ 'Salesperson' => 'Verkäufer',
+ 'Save Schedule' => 'Zeitplan speichern',
+ 'Schedule' => 'Buchungstermine',
+ 'Scheduled' => 'geplant',
+ 'Screen' => 'Bildschirm',
+ 'Select a Printer!' => 'Drucker auswählen!',
+ 'Select all' => 'Alle auswählen',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
+ 'Select items' => 'Bitte wählen Sie aus',
+ 'Select payment' => 'Zahlung auswählen',
+ 'Select postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Select txt, postscript or PDF!' => 'Text, Postscript oder PDF auswählen!',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Serial No.' => 'Seriennummer',
+ 'Service' => 'Dienstleistung',
+ 'Ship' => 'Versenden',
+ 'Ship to' => 'Lieferung an',
+ 'Ship via' => 'Versandart',
+ 'Shipping Address' => 'Lieferanschrift',
+ 'Shipping Point' => 'Lieferort',
+ 'Source' => 'Beleg',
+ 'Standard' => 'Standard',
+ 'Startdate' => 'Eintrittsdatum',
+ 'State/Province' => 'Kanton',
+ 'Statement' => 'Zahlungserinnerung',
+ 'Statement sent to' => 'Zahlungserinnerung verschickt an',
+ 'Statements sent to printer!' => 'Zahlungserinnerungen gedruckt!',
+ 'Subject' => 'Betreff',
+ 'Subtotal' => 'Zwischensumme',
+ 'Summary' => 'Zusammenfassung',
+ 'Tax' => 'MWST',
+ 'Tax Included' => 'MWST im Preis enthalten',
+ 'Tax collected' => 'vereinnahmte MWST',
+ 'Tax paid' => 'Vorsteuer',
+ 'Text' => 'Text',
+ 'Till' => 'Kasse',
+ 'To' => 'Bis',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Handelsrabatt',
+ 'Transaction' => 'Buchung',
+ 'Transaction deleted!' => 'Buchung gelöscht!',
+ 'Transaction posted!' => 'Buchung getätigt!',
+ 'Translation not on file!' => 'Übersetzung nicht in der Datenbank',
+ 'Trial Balance' => 'Saldenbilanz',
+ 'Unit' => 'Einheit',
+ 'Update' => 'Erneuern',
+ 'Vendor' => 'Lieferant',
+ 'Vendor Invoice.' => 'Einkaufsrechnung.',
+ 'Vendor Number' => 'Lieferantennummer',
+ 'Vendor missing!' => 'Lieferant fehlt!',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Warning!' => 'Warnung!',
+ 'Week(s)' => 'Woche(n)',
+ 'What type of item is this?' => 'Welche Artikelart ist das?',
+ 'Work Order' => 'Arbeitsblatt',
+ 'Year' => 'Jahr',
+ 'Year(s)' => 'Jahr(e)',
+ 'Yes' => 'Ja',
+ 'You are posting an existing transaction!' => 'Sie buchen eine existierende Buchung',
+ 'You are printing and posting an existing transaction!' => 'Sie drucken und buchen eine bereits bestehende Buchung',
+ 'You are printing and saving an existing order' => 'Sie drucken und speichern einen existierenden Auftrag',
+ 'You are printing and saving an existing quotation' => 'Sie drucken und speichern eine bereits bestehende Offerte',
+ 'You are saving an existing order' => 'Sie speichern einen bereits bestehenden Auftrag',
+ 'You are saving an existing quotation' => 'Sie speichern eine vorhandene Offerte',
+ 'Zip/Postal Code' => 'PLZ',
+ 'as at' => 'zum Stand',
+ 'ea' => 'pro',
+ 'for' => 'für',
+ 'for Period' => 'für den Zeitraum',
+ 'posted!' => 'gebucht!',
+ 'sent' => 'verschickt',
+ 'time(s)' => 'mal',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'eingangsbuchung' => 'ap_transaction',
+ 'ausgangsbuchung' => 'ar_transaction',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'zeitplan_löschen' => 'delete_schedule',
+ 'e_mail' => 'e_mail',
+ 'buchen' => 'post',
+ 'als_neu_buchen' => 'post_as_new',
+ 'drucken' => 'print',
+ 'drucken_und_buchen' => 'print_and_post',
+ 'drucken_und_als_neu_buchen' => 'print_and_post_as_new',
+ 'ausgangsrechnung_' => 'sales_invoice_',
+ 'auftragsbestätigung' => 'sales_order',
+ 'zeitplan_speichern' => 'save_schedule',
+ 'buchungstermine' => 'schedule',
+ 'alle_auswählen' => 'select_all',
+ 'lieferung_an' => 'ship_to',
+ 'erneuern' => 'update',
+ 'einkaufsrechnung_' => 'vendor_invoice_',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/ch/pw b/locale/ch/pw
new file mode 100755
index 00000000..550c3d75
--- /dev/null
+++ b/locale/ch/pw
@@ -0,0 +1,13 @@
+$self{texts} = {
+ 'Continue' => 'Weiter',
+ 'Password' => 'Passwort',
+ 'Session expired!' => 'Sitzungsdauer abgelaufen!',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'weiter' => 'continue',
+};
+
+1;
+
diff --git a/locale/ch/rc b/locale/ch/rc
new file mode 100755
index 00000000..8bd784d1
--- /dev/null
+++ b/locale/ch/rc
@@ -0,0 +1,79 @@
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Balance' => 'Bilanz',
+ 'Beginning Balance' => 'Anfangsbilanz',
+ 'Cleared' => 'Entlastet',
+ 'Continue' => 'Weiter',
+ 'Credit' => 'Haben',
+ 'Current' => 'Aktuell',
+ 'Date' => 'Datum',
+ 'Debit' => 'Soll',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Description' => 'Beschreibung',
+ 'Detail' => 'Einzelheiten',
+ 'Difference' => 'Differenz',
+ 'Done' => 'Fertig',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'From' => 'Von',
+ 'Include Exchange Rate Difference' => 'Wechselkursunterschied aufnehmen',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Month' => 'Monat',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Out of balance!' => 'Summen stimmen nicht überein!',
+ 'Outstanding' => 'Offen',
+ 'Period' => 'Zeitraum',
+ 'Quarter' => 'Quartal',
+ 'R' => 'R',
+ 'Reconciliation' => 'Kontenabgleich',
+ 'Reconciliation Report' => 'Kontenabgleichungsreport',
+ 'Select all' => 'Alle auswählen',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Source' => 'Beleg',
+ 'Statement Balance' => 'Auszugsbilanz',
+ 'Summary' => 'Zusammenfassung',
+ 'To' => 'Bis',
+ 'Update' => 'Erneuern',
+ 'Year' => 'Jahr',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'weiter' => 'continue',
+ 'fertig' => 'done',
+ 'alle_auswählen' => 'select_all',
+ 'erneuern' => 'update',
+};
+
+1;
+
diff --git a/locale/ch/rp b/locale/ch/rp
new file mode 100755
index 00000000..021aee9f
--- /dev/null
+++ b/locale/ch/rp
@@ -0,0 +1,205 @@
+$self{texts} = {
+ 'AP Aging' => 'Offene Verbindl.',
+ 'AR Aging' => 'Forderungenspiegel',
+ 'Account' => 'Konto',
+ 'Account Number' => 'Kontonummer',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Accounts' => 'Konten',
+ 'Accrual' => 'vereinbart',
+ 'Address' => 'Adresse',
+ 'Aged' => 'Veraltet',
+ 'Aged Overdue' => 'Alter überfällig',
+ 'All Accounts' => 'Alle Konten',
+ 'Amount' => 'Betrag',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Attachment' => 'als Anhang',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Balance' => 'Bilanz',
+ 'Balance Sheet' => 'Bilanz',
+ 'Bcc' => 'Bcc',
+ 'Cash' => 'vereinnahmt',
+ 'Cc' => 'E-Mailkopie',
+ 'Compare to' => 'Vergleichen mit',
+ 'Continue' => 'Weiter',
+ 'Copies' => 'Kopien',
+ 'Credit' => 'Haben',
+ 'Curr' => 'Währung',
+ 'Current' => 'Aktuell',
+ 'Current Earnings' => 'Aktuelles Einkommen',
+ 'Customer' => 'Kunde',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Day(s)' => 'Tage',
+ 'Debit' => 'Soll',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Decimalplaces' => 'Dezimalstellen',
+ 'Delete Schedule' => 'Zeitplan löschen',
+ 'Department' => 'Abteilung',
+ 'Description' => 'Beschreibung',
+ 'Detail' => 'Einzelheiten',
+ 'Due Date' => 'Fälligkeitsdatum',
+ 'E-mail' => 'E-Mail',
+ 'E-mail Statement to' => 'Mahnung per E-Mail an',
+ 'E-mail address missing!' => 'E-Mail-Adresse fehlt!',
+ 'E-mail message' => 'E-Mail-Nachricht ',
+ 'Every' => 'Jeden',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'For' => 'für',
+ 'From' => 'Von',
+ 'GIFI' => 'GIFI',
+ 'Heading' => 'Überschrift',
+ 'ID' => 'ID',
+ 'In-line' => 'im Textkörper (Inline)',
+ 'Include Exchange Rate Difference' => 'Wechselkursunterschied aufnehmen',
+ 'Include Payment' => 'Bezahlung reinnehmen',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Income Statement' => 'Gewinn- und Verlustrechnung',
+ 'Invoice' => 'Rechnung',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Language' => 'Sprache',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Memo' => 'Notiz',
+ 'Message' => 'Nachricht',
+ 'Method' => 'Abrechnungsmethode',
+ 'Month' => 'Monat',
+ 'Month(s)' => 'Monat(e)',
+ 'N/A' => 'N.Z.',
+ 'Next Date' => 'Nächstes Datum',
+ 'Non-taxable Purchases' => 'MSTF-freie Einkäufe',
+ 'Non-taxable Sales' => 'MSTF-freie Verkäufe',
+ 'Nothing selected!' => 'Es wurde nichts ausgewählt!',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Artikelnummer',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Order' => 'Bestellung',
+ 'Overdue' => 'Überfällig',
+ 'PDF' => 'PDF',
+ 'Payments' => 'Zahlungen',
+ 'Period' => 'Zeitraum',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Drucken',
+ 'Project' => 'Projekt',
+ 'Project Number' => 'Projektnummer',
+ 'Project Transactions' => 'Projektbuchungen',
+ 'Project not on file!' => 'Dieses Projekt ist nicht in der Datenbank!',
+ 'Quarter' => 'Quartal',
+ 'Receipts' => 'Quittungen',
+ 'Recurring Transaction' => 'Wiederkehrende Buchung',
+ 'Reference' => 'Referenz',
+ 'Repeat' => 'Wiederholen',
+ 'Report for' => 'Bericht für',
+ 'Salesperson' => 'Verkäufer',
+ 'Save Schedule' => 'Zeitplan speichern',
+ 'Screen' => 'Bildschirm',
+ 'Select all' => 'Alle auswählen',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
+ 'Select postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Source' => 'Beleg',
+ 'Standard' => 'Standard',
+ 'Startdate' => 'Eintrittsdatum',
+ 'Statement' => 'Zahlungserinnerung',
+ 'Statement sent to' => 'Zahlungserinnerung verschickt an',
+ 'Statements sent to printer!' => 'Zahlungserinnerungen gedruckt!',
+ 'Subject' => 'Betreff',
+ 'Subtotal' => 'Zwischensumme',
+ 'Summary' => 'Zusammenfassung',
+ 'Tax' => 'MWST',
+ 'Tax collected' => 'vereinnahmte MWST',
+ 'Tax paid' => 'Vorsteuer',
+ 'Till' => 'Kasse',
+ 'To' => 'Bis',
+ 'Total' => 'Total',
+ 'Trial Balance' => 'Saldenbilanz',
+ 'Vendor' => 'Lieferant',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Warning!' => 'Warnung!',
+ 'Week(s)' => 'Woche(n)',
+ 'Year' => 'Jahr',
+ 'Year(s)' => 'Jahr(e)',
+ 'You are posting an existing transaction!' => 'Sie buchen eine existierende Buchung',
+ 'You are printing and posting an existing transaction!' => 'Sie drucken und buchen eine bereits bestehende Buchung',
+ 'You are printing and saving an existing order' => 'Sie drucken und speichern einen existierenden Auftrag',
+ 'You are printing and saving an existing quotation' => 'Sie drucken und speichern eine bereits bestehende Offerte',
+ 'You are saving an existing order' => 'Sie speichern einen bereits bestehenden Auftrag',
+ 'You are saving an existing quotation' => 'Sie speichern eine vorhandene Offerte',
+ 'as at' => 'zum Stand',
+ 'for' => 'für',
+ 'for Period' => 'für den Zeitraum',
+ 'sent' => 'verschickt',
+ 'time(s)' => 'mal',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'weiter' => 'continue',
+ 'zeitplan_löschen' => 'delete_schedule',
+ 'e_mail' => 'e_mail',
+ 'drucken' => 'print',
+ 'zeitplan_speichern' => 'save_schedule',
+ 'alle_auswählen' => 'select_all',
+};
+
+1;
+
diff --git a/locale/ch_utf/COPYING b/locale/ch_utf/COPYING
new file mode 100755
index 00000000..77cd1f8e
--- /dev/null
+++ b/locale/ch_utf/COPYING
@@ -0,0 +1,34 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (C) 2006
+#
+#
+# Swiss-German texts:
+#
+# The Swiss-German translation is based on the german texts.
+#
+# Author: Alain Haymoz <alain.haymoz@leanux.ch>
+# Fabian Schiltknecht <fabian.schiltknecht@leanux.ch>
+# Martin Elmer <martin.elmer@leanux.ch>
+#
+# German texts:
+#
+# Author: Thomas Bayen <tbayen@bayen.de>
+# Gunter Ohrner <G.Ohrner@post.rwth-aachen.de>
+# Jens Koerner <jens@kleinflintbek.net>
+# Doris Messmer <dolores@tschueckengueruep.de>
+# Wolfgang Foerster <wf@inventronik.de>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+######################################################################
diff --git a/locale/ch_utf/LANGUAGE b/locale/ch_utf/LANGUAGE
new file mode 100755
index 00000000..f4f7f2b3
--- /dev/null
+++ b/locale/ch_utf/LANGUAGE
@@ -0,0 +1 @@
+German/Switzerland (UTF-8)
diff --git a/locale/ch_utf/Num2text b/locale/ch_utf/Num2text
new file mode 100755
index 00000000..a87c4eba
--- /dev/null
+++ b/locale/ch_utf/Num2text
@@ -0,0 +1,185 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (C) 2002
+#
+# Author: Dieter Simader
+# Email: dsimader@sql-ledger.org
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+# Contributors:
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#======================================================================
+#
+# this is a variation of the Lingua package
+# written for check and receipt printing
+# it returns a properly formatted text string
+# for a number up to 10**12
+
+sub init {
+ my $self = shift;
+
+ %{ $self->{numbername} } =
+ (0 => 'Null',
+ 1 => 'ein',
+ 2 => 'zwei',
+ 3 => 'drei',
+ 4 => 'vier',
+ 5 => 'fünf',
+ 6 => 'sechs',
+ 7 => 'sieben',
+ 8 => 'acht',
+ 9 => 'neun',
+ 10 => 'zehn',
+ 11 => 'elf',
+ 12 => 'zwölf',
+ 13 => 'dreizehn',
+ 14 => 'vierzehn',
+ 15 => 'fünfzehn',
+ 16 => 'sechzehn',
+ 17 => 'siebzehn',
+ 18 => 'achtzehn',
+ 19 => 'neunzehn',
+ 20 => 'zwanzig',
+ 30 => 'dreissig',
+ 40 => 'vierzig',
+ 50 => 'fünfzig',
+ 60 => 'sechzig',
+ 70 => 'siebzig',
+ 80 => 'achtzig',
+ 90 => 'neunzig',
+ 10**2 => 'hundert',
+ 10**3 => 'tausend',
+ 10**6 => 'million',
+ 10**9 => 'milliarde',
+ 10**12 => 'billion'
+ );
+
+}
+
+
+sub num2text {
+ my ($self, $amount) = @_;
+
+ return $self->{numbername}{0} unless $amount;
+
+ my @textnumber = ();
+
+ # split amount into chunks of 3
+ my @num = reverse split //, abs($amount);
+ my @numblock = ();
+ my ($i, $appendn);
+ my @a = ();
+
+ while (@num) {
+ @a = ();
+ for (1 .. 3) {
+ push @a, shift @num;
+ }
+ push @numblock, join / /, reverse @a;
+ }
+
+ my $belowhundred = !$#numblock;
+
+ while (@numblock) {
+
+ $i = $#numblock;
+ @num = split //, $numblock[$i];
+ $appendn = "";
+
+ $numblock[$i] *= 1;
+
+ if ($numblock[$i] == 0) {
+ pop @numblock;
+ next;
+ }
+
+ if ($numblock[$i] > 99) {
+ # the one from hundreds
+ push @textnumber, $self->{numbername}{$num[0]};
+
+ # add hundred designation
+ push @textnumber, $self->{numbername}{10**2};
+
+ # reduce numblock
+ $numblock[$i] -= $num[0] * 100;
+ }
+
+ $appendn = 'en' if ($i == 2);
+ $appendn = 'n' if ($i > 2);
+
+ if ($numblock[$i] > 9) {
+ # tens
+ push @textnumber, $self->format_ten($numblock[$i], $belowhundred);
+ } elsif ($numblock[$i] > 1) {
+ # ones
+ push @textnumber, $self->{numbername}{$numblock[$i]};
+ } elsif ($numblock[$i] == 1) {
+ if ($i == 0) {
+ push @textnumber, $self->{numbername}{$numblock[$i]}.'s';
+ } else {
+ if ($i >= 2) {
+ push @textnumber, $self->{numbername}{$numblock[$i]}.'e';
+ } else {
+ push @textnumber, $self->{numbername}{$numblock[$i]};
+ }
+ }
+ $appendn = "";
+ }
+
+ # add thousand, million
+ if ($i) {
+ $amount = 10**($i * 3);
+ push @textnumber, $self->{numbername}{$amount}.$appendn;
+ }
+
+ pop @numblock;
+
+ }
+
+ join '', @textnumber;
+
+}
+
+
+sub format_ten {
+ my ($self, $amount, $belowhundred) = @_;
+
+ my $textnumber = "";
+ my @num = split //, $amount;
+
+ if ($amount > 20) {
+ if ($num[1] == 0) {
+ $textnumber = $self->{numbername}{$amount};
+ } else {
+ if ($belowhundred) {
+ $amount = $num[0] * 10;
+ $textnumber = $self->{numbername}{$num[1]}.'und'.$self->{numbername}{$amount};
+ } else {
+ $amount = $num[0] * 10;
+ $textnumber = $self->{numbername}{$amount}.$self->{numbername}{$num[1]};
+ $textnumber .= 's' if ($num[1] == 1);
+ }
+ }
+ } else {
+ $textnumber = $self->{numbername}{$amount};
+ }
+
+ $textnumber;
+
+}
+
+
+1;
+
diff --git a/locale/ch_utf/aa b/locale/ch_utf/aa
new file mode 100755
index 00000000..ed778c18
--- /dev/null
+++ b/locale/ch_utf/aa
@@ -0,0 +1,163 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Outstanding' => 'Offene Verbindlichkeiten',
+ 'AP Transaction' => 'Eingangsbuchung',
+ 'AP Transactions' => 'Eingangsbuchungen',
+ 'AR Outstanding' => 'Offene Forderungen',
+ 'AR Transaction' => 'Ausgangsbuchung',
+ 'AR Transactions' => 'Ausgangsbuchungen',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Add AP Transaction' => 'Eingangsbuchung erfassen',
+ 'Add AR Transaction' => 'Ausgangsbuchung erfassen',
+ 'Amount' => 'Betrag',
+ 'Amount Due' => 'Betrag fällig',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Transaction' => 'Soll die Buchung wirklich gelöscht werden',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Cannot delete transaction!' => 'Buchung kann nicht gelöscht werden!',
+ 'Cannot post payment for a closed period!' => 'Zahlung kann nicht gebucht werden, weil die Periode bereits abgeschlossen ist!',
+ 'Cannot post transaction for a closed period!' => 'Buchung kann nicht erfasst werden, weil die Periode bereits abgeschlossen ist!',
+ 'Cannot post transaction!' => 'Rechnung kann nicht gebucht werden!',
+ 'Check' => 'Scheck',
+ 'Closed' => 'Geschlossen',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Continue' => 'Weiter',
+ 'Credit' => 'Haben',
+ 'Credit Limit' => 'Kreditlimite',
+ 'Curr' => 'Währung',
+ 'Currency' => 'Währung',
+ 'Current' => 'Aktuell',
+ 'Customer' => 'Kunde',
+ 'Customer missing!' => 'Kundenname fehlt!',
+ 'Date' => 'Datum',
+ 'Date Paid' => 'Zahlungsdatum',
+ 'Debit' => 'Soll',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Delete' => 'Löschen',
+ 'Department' => 'Abteilung',
+ 'Description' => 'Beschreibung',
+ 'Detail' => 'Einzelheiten',
+ 'Due Date' => 'Fälligkeitsdatum',
+ 'Due Date missing!' => 'Fälligkeitsdatum fehlt!',
+ 'Edit AP Transaction' => 'Eingangsbuchung bearbeiten',
+ 'Edit AR Transaction' => 'Ausgangsbuchung bearbeiten',
+ 'Employee' => 'Verkäufer',
+ 'Exch' => 'Wkurs.',
+ 'Exchange Rate' => 'Wechselkurs',
+ 'Exchange rate for payment missing!' => 'Wechselkurs für Bezahlung fehlt!',
+ 'Exchange rate missing!' => 'Wechselkurs fehlt!',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'From' => 'Von',
+ 'ID' => 'ID',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Invoice' => 'Rechnung',
+ 'Invoice Date' => 'Rechnungsdatum',
+ 'Invoice Date missing!' => 'Rechnungsdatum fehlt!',
+ 'Invoice Number' => 'Rechnungsnummer',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Manager' => 'Geschäftsführer',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Memo' => 'Notiz',
+ 'Month' => 'Monat',
+ 'No.' => 'Pos.',
+ 'Notes' => 'Bemerkungen',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Open' => 'Offen',
+ 'Order' => 'Bestellung',
+ 'Order Number' => 'Bestellnummer',
+ 'PO Number' => 'Ihre Bestellnummer',
+ 'Paid' => 'Bezahlt',
+ 'Payment date missing!' => 'Zahlungsdatum fehlt!',
+ 'Payments' => 'Zahlungen',
+ 'Period' => 'Zeitraum',
+ 'Post' => 'Buchen',
+ 'Post as new' => 'Als neu buchen',
+ 'Print' => 'Drucken',
+ 'Print and Post' => 'Drucken und Buchen',
+ 'Print and Post as new' => 'Drucken und als neu buchen',
+ 'Project' => 'Projekt',
+ 'Quarter' => 'Quartal',
+ 'Receipt' => 'Quittung',
+ 'Remaining' => 'Rest',
+ 'Sales Invoice.' => 'Ausgangsrechnung.',
+ 'Salesperson' => 'Verkäufer',
+ 'Schedule' => 'Buchungstermine',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Ship to' => 'Lieferung an',
+ 'Ship via' => 'Versandart',
+ 'Shipping Point' => 'Lieferort',
+ 'Source' => 'Beleg',
+ 'Subtotal' => 'Zwischensumme',
+ 'Summary' => 'Zusammenfassung',
+ 'Tax' => 'MWST',
+ 'Tax Included' => 'MWST im Preis enthalten',
+ 'Till' => 'Kasse',
+ 'To' => 'Bis',
+ 'Total' => 'Total',
+ 'Transaction' => 'Buchung',
+ 'Transaction deleted!' => 'Buchung gelöscht!',
+ 'Transaction posted!' => 'Buchung getätigt!',
+ 'Update' => 'Erneuern',
+ 'Vendor' => 'Lieferant',
+ 'Vendor Invoice.' => 'Einkaufsrechnung.',
+ 'Vendor missing!' => 'Lieferant fehlt!',
+ 'Year' => 'Jahr',
+ 'Yes' => 'Ja',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'eingangsbuchung' => 'ap_transaction',
+ 'ausgangsbuchung' => 'ar_transaction',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'buchen' => 'post',
+ 'als_neu_buchen' => 'post_as_new',
+ 'drucken' => 'print',
+ 'drucken_und_buchen' => 'print_and_post',
+ 'drucken_und_als_neu_buchen' => 'print_and_post_as_new',
+ 'ausgangsrechnung_' => 'sales_invoice_',
+ 'buchungstermine' => 'schedule',
+ 'lieferung_an' => 'ship_to',
+ 'erneuern' => 'update',
+ 'einkaufsrechnung_' => 'vendor_invoice_',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/ch_utf/admin b/locale/ch_utf/admin
new file mode 100755
index 00000000..b329b8a9
--- /dev/null
+++ b/locale/ch_utf/admin
@@ -0,0 +1,146 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Access Control' => 'Zugriffskontrolle',
+ 'Accounting' => 'Buchhaltung',
+ 'Add User' => 'Benutzer erfassen',
+ 'Address' => 'Adresse',
+ 'Administration' => 'Administration',
+ 'Administrator' => 'Administrator',
+ 'All Datasets up to date!' => 'Alle Datensets sind auf dem aktuellsten Stand',
+ 'Cannot create Lock!' => 'System kann nicht gesperrt werden!',
+ 'Change Admin Password' => 'Administratorenpasswort ändern',
+ 'Change Password' => 'Passwort ändern',
+ 'Click on login name to edit!' => 'Zum Bearbeiten den Benutzernamen anklicken!',
+ 'Company' => 'Firmenname',
+ 'Confirm' => 'Bestätigung',
+ 'Connect to' => 'Als Vorlage verwenden',
+ 'Continue' => 'Weiter',
+ 'Create Chart of Accounts' => 'Kontenplan auswählen',
+ 'Create Dataset' => 'Datenset erstellen',
+ 'DBA' => 'Datenbankadministrator',
+ 'DBI not installed!' => 'DBI ist nicht installiert!',
+ 'Database' => 'Datenbank',
+ 'Database Administration' => 'Datenbankverwaltung',
+ 'Database Driver not checked!' => 'Kein Datenbanktreiber ausgewählt!',
+ 'Database User missing!' => 'Datenbankbenutzer fehlt!',
+ 'Dataset' => 'Datenset',
+ 'Dataset missing!' => 'Datenset fehlt!',
+ 'Dataset updated!' => 'Datenset aktualisiert!',
+ 'Date Format' => 'Datumsformat',
+ 'Delete' => 'Löschen',
+ 'Delete Dataset' => 'Datenset löschen',
+ 'Directory' => 'Verzeichnis',
+ 'Driver' => 'Treiber',
+ 'Dropdown Limit' => 'Auswahllistengrenze',
+ 'E-mail' => 'E-Mail',
+ 'Edit User' => 'Benutzerdaten bearbeiten',
+ 'Existing Datasets' => 'Existierende Datensets',
+ 'Fax' => 'Fax',
+ 'Host' => 'Rechner',
+ 'Hostname missing!' => 'Rechnername fehlt!',
+ 'Language' => 'Sprache',
+ 'Lock System' => 'System sperren',
+ 'Lockfile created!' => 'gesichert!',
+ 'Lockfile removed!' => 'entsichert!',
+ 'Login' => 'Benutzername',
+ 'Login name missing!' => 'Loginname fehlt!',
+ 'Logout' => 'Abmelden',
+ 'Manager' => 'Geschäftsführer',
+ 'Menu Width' => 'Menübreite',
+ 'Multibyte Encoding' => 'Zeichensatz',
+ 'Name' => 'Name',
+ 'New Templates' => 'Neue Vorlage',
+ 'No Database Drivers available!' => 'Kein Datenbanktreiber verfügbar!',
+ 'No Dataset selected!' => 'Keine Datenset ausgewählt!',
+ 'Nothing to delete!' => 'Es wurde nichts gelöscht werden!',
+ 'Number Format' => 'Zahlenformat',
+ 'Oracle Database Administration' => 'Oracle Datenbankverwaltung',
+ 'Password' => 'Passwort',
+ 'Password changed!' => 'Passwort geändert!',
+ 'Passwords do not match!' => 'Passwörter sind nicht gleich!',
+ 'Pg Database Administration' => 'Datenbankverwaltung',
+ 'PgPP Database Administration' => 'PgPP Datenbankverwaltung',
+ 'Phone' => 'Tel.',
+ 'Port' => 'TCP-Port-Nr.',
+ 'Port missing!' => 'Port fehlt!',
+ 'Printer' => 'Standardrucker',
+ 'Save' => 'Speichern',
+ 'Session Timeout' => 'Maximale Sitzungsdauer',
+ 'Session expired!' => 'Sitzungsdauer abgelaufen!',
+ 'Setup Templates' => 'Vorlage auswählen',
+ 'Signature' => 'Signatur',
+ 'Stylesheet' => 'Stilvorlage',
+ 'Supervisor' => 'Vorarbeiter',
+ 'Templates' => 'Druckvorlagen',
+ 'The following Datasets are not in use and can be deleted' => 'Die folgenden Datensets werden nicht verwendet und können gelöscht werden',
+ 'The following Datasets need to be updated' => 'Folgende Datensets müssen aktualisiert werden',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'In diesem Schritt werden bestehende Datensets gesucht. Es werden noch keine Änderungen vorgenommen!',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Um einen neuen Benutzer hinzuzufügen, ändern und speichern Sie am einfachsten einen bestehenden Benutzer. Unter dem neuen Benutzernamen wird dann ein Benutzer mit denselben Einstellungen angelegt.',
+ 'Unlock System' => 'System entsperren',
+ 'Update Dataset' => 'Datenset aktualisieren',
+ 'Use Templates' => 'Benutze Vorlagen',
+ 'User' => 'Datenbankbenutzer',
+ 'User deleted!' => 'Benutzer gelöscht!',
+ 'User saved!' => 'Benutzer gespeichert!',
+ 'Version' => 'Version',
+ 'You are logged out' => 'Sie sind abgemeldet',
+ 'does not exist' => 'existiert nicht',
+ 'is already a member!' => 'ist bereits ein Mitglied!',
+ 'localhost' => 'localhost',
+ 'locked!' => 'gesperrt!',
+ 'successfully created!' => 'wurde erfolgreich erstellt',
+ 'successfully deleted!' => 'wurde erfolgreich gelöscht',
+ 'website' => 'Webseite',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'benutzer_erfassen' => 'add_user',
+ 'administratorenpasswort_ändern' => 'change_admin_password',
+ 'passwort_ändern' => 'change_password',
+ 'weiter' => 'continue',
+ 'datenset_erstellen' => 'create_dataset',
+ 'löschen' => 'delete',
+ 'datenset_löschen' => 'delete_dataset',
+ 'system_sperren' => 'lock_system',
+ 'benutzername' => 'login',
+ 'abmelden' => 'logout',
+ 'oracle_datenbankverwaltung' => 'oracle_database_administration',
+ 'datenbankverwaltung' => 'pg_database_administration',
+ 'pgpp_datenbankverwaltung' => 'pgpp_database_administration',
+ 'speichern' => 'save',
+ 'system_entsperren' => 'unlock_system',
+ 'datenset_aktualisieren' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/ch_utf/all b/locale/ch_utf/all
new file mode 100755
index 00000000..602c9336
--- /dev/null
+++ b/locale/ch_utf/all
@@ -0,0 +1,956 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+$self{charset} = 'UTF-8';
+
+
+$self{texts} = {
+ 'A' => 'A',
+ 'AP' => 'Verbindlichkeiten',
+ 'AP Aging' => 'Offene Verbindl.',
+ 'AP Outstanding' => 'Offene Verbindlichkeiten',
+ 'AP Transaction' => 'Eingangsbuchung',
+ 'AP Transactions' => 'Eingangsbuchungen',
+ 'AR' => 'Forderungen',
+ 'AR Aging' => 'Forderungenspiegel',
+ 'AR Outstanding' => 'Offene Forderungen',
+ 'AR Transaction' => 'Ausgangsbuchung',
+ 'AR Transactions' => 'Ausgangsbuchungen',
+ 'AR/AP' => 'OF/OV',
+ 'About' => 'Ãœber',
+ 'Above' => 'Ãœber',
+ 'Access Control' => 'Zugriffskontrolle',
+ 'Access Denied!' => 'Zugriff fehlgeschlagen!',
+ 'Account' => 'Konto',
+ 'Account Number' => 'Kontonummer',
+ 'Account Number missing!' => 'Kontonummer fehlt!',
+ 'Account Type' => 'Kontoart',
+ 'Account Type missing!' => 'Kontoart fehlt!',
+ 'Account deleted!' => 'Konto gelöscht!',
+ 'Account does not exist!' => 'Konto existiert nicht!',
+ 'Account saved!' => 'Konto gespeichert!',
+ 'Accounting' => 'Buchhaltung',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Accounts' => 'Konten',
+ 'Accrual' => 'vereinbart',
+ 'Activate Audit trail' => 'Revisionsnachfolge aktivieren',
+ 'Activate Audit trails' => 'Revisionsnachfolgen aktivieren',
+ 'Active' => 'Aktiv',
+ 'Add' => 'Hinzufügen',
+ 'Add AP Transaction' => 'Eingangsbuchung erfassen',
+ 'Add AR Transaction' => 'Ausgangsbuchung erfassen',
+ 'Add Account' => 'Konto anlegen',
+ 'Add Assembly' => 'Erzeugnis erfassen',
+ 'Add Business' => 'Branche erfassen',
+ 'Add Cash Transfer Transaction' => 'Zahlungseingang buchen',
+ 'Add Customer' => 'Kunde erfassen',
+ 'Add Deduction' => 'Abzug erfassen',
+ 'Add Department' => 'Abteilung erfassen',
+ 'Add Employee' => 'Arbeitnehmer erfassen',
+ 'Add Exchange Rate' => 'Wechselkurs erfassen',
+ 'Add GIFI' => 'GIFI anlegen',
+ 'Add General Ledger Transaction' => 'Buchung im Hauptbuch erfassen',
+ 'Add Group' => 'Gruppe erfassen',
+ 'Add Item' => 'Artikel erfassen',
+ 'Add Job' => 'Fertigung anlegen',
+ 'Add Labor/Overhead' => 'Gestehungskosten',
+ 'Add Language' => 'Sprache erfassen',
+ 'Add Order' => 'Bestellung erfassen',
+ 'Add POS Invoice' => 'Kassenbon erfassen',
+ 'Add Part' => 'Ware erfassen',
+ 'Add Pricegroup' => 'Preisgruppe erfassen',
+ 'Add Project' => 'Projekt erfassen',
+ 'Add Purchase Order' => 'Einkaufsbeleg erfassen',
+ 'Add Quotation' => 'Offerte erstellen',
+ 'Add Request for Quotation' => 'Offertanfrage',
+ 'Add SIC' => 'Euro-SIC erfassen',
+ 'Add Sales Invoice' => 'Ausgangsrechnung erfassen',
+ 'Add Sales Order' => 'Auftragsbestätigung',
+ 'Add Service' => 'Dienstleistung erfassen',
+ 'Add Stores Card' => 'Artikelkarte',
+ 'Add Time Card' => 'Stempelkarte erfassen',
+ 'Add Transaction' => 'Buchung erfassen',
+ 'Add User' => 'Benutzer erfassen',
+ 'Add Vendor' => 'Lieferant erfassen',
+ 'Add Vendor Invoice' => 'Einkaufsrechnung erfassen',
+ 'Add Warehouse' => 'Warenlager erfassen',
+ 'Address' => 'Adresse',
+ 'Administration' => 'Administration',
+ 'Administrator' => 'Administrator',
+ 'After Deduction' => 'Nach Abzug',
+ 'Aged' => 'Veraltet',
+ 'Aged Overdue' => 'Alter überfällig',
+ 'All' => 'Alle',
+ 'All Accounts' => 'Alle Konten',
+ 'All Datasets up to date!' => 'Alle Datensets sind auf dem aktuellsten Stand',
+ 'All Items' => 'Alle Artikel',
+ 'Allocated' => 'Zugeteilt',
+ 'Allowances' => 'Freibeträge',
+ 'Amount' => 'Betrag',
+ 'Amount Due' => 'Betrag fällig',
+ 'Amount missing!' => 'Betrag fehlt!',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Invoice Number' => 'Soll die Rechnung mit folgender Nummer wirklich gelöscht werden:',
+ 'Are you sure you want to delete Order Number' => 'Soll die Bestellung mit folgender Nummer wirklich gelöscht werden:',
+ 'Are you sure you want to delete Quotation Number' => 'Soll die Offerte mit folgender Nummer wirklich gelöscht werden:',
+ 'Are you sure you want to delete Transaction' => 'Soll die Buchung wirklich gelöscht werden',
+ 'Are you sure you want to delete time card for' => 'Soll die Stempelkarte folgender Person gelöscht werden',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Sollen die markierten Eintragungen gelöscht werden?',
+ 'As of' => 'As of',
+ 'Assemblies' => 'Erzeugnisse',
+ 'Assemblies restocked!' => 'Erzeugnisse wieder eingelagert!',
+ 'Assembly' => 'Erzeugnis',
+ 'Assembly stocked!' => 'Erzeugnis eingelagert!',
+ 'Asset' => 'Aktiva/Mittelverwendung',
+ 'Attachment' => 'als Anhang',
+ 'Audit Control' => 'Bücherkontrolle',
+ 'Audit trail disabled' => 'Revisionsnachfolge deaktiviert',
+ 'Audit trail enabled' => 'Revisionsnachfolge aktiviert',
+ 'Audit trail removed up to' => 'Revisionsnachfolge gelöscht bis zu',
+ 'Audit trails disabled' => 'Revisionsnachfolgen deaktiviert',
+ 'Audit trails enabled' => 'Revisionsnachfolgen aktiviert',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Authentication failed, access denied!' => 'Authentifizierung schlug fehl, Zugriff verweigert!',
+ 'Average Cost' => 'Durchschnittskosten',
+ 'Avg Cost' => 'Ø-Kosten',
+ 'BIC' => 'BIC',
+ 'BOM' => 'Stückliste',
+ 'Backup' => 'Datensicherung',
+ 'Backup sent to' => 'Eine Sicherungskopie wurde gesandt an',
+ 'Balance' => 'Bilanz',
+ 'Balance Sheet' => 'Bilanz',
+ 'Based on' => 'Basierend auf',
+ 'Batch Printing' => 'Massendruck',
+ 'Bcc' => 'Bcc',
+ 'Before Deduction' => 'Vor Abzug',
+ 'Beginning Balance' => 'Anfangsbilanz',
+ 'Below' => 'Unter',
+ 'Billing Address' => 'Rechnungsadresse',
+ 'Bin' => 'Lagerort',
+ 'Bin List' => 'Lagerliste',
+ 'Bin Lists' => 'Lagerlisten',
+ 'Books are open' => 'Die Bücher sind geöffnet',
+ 'Break' => 'Umbruch',
+ 'Business' => 'Branche',
+ 'Business Number' => 'Firmennummer',
+ 'Business deleted!' => 'Branche gelöscht!',
+ 'Business saved!' => 'Branche gespeichert!',
+ 'C' => 'G',
+ 'CC Number' => 'CC-Nummer',
+ 'COGS' => 'Aufwand',
+ 'COGS account does not exist!' => 'Konto für Kosten besteht nicht!',
+ 'Calendar' => 'Kalender',
+ 'Cannot add stores card for a completed job!' => 'Cannot add stores card for a completed job!',
+ 'Cannot add time card for a completed job!' => 'Stempelkarte kann für eine abgeschlossene Arbeit nicht erfasst werden!',
+ 'Cannot change stores card for a completed job!' => 'Cannot change stores card for a completed job!',
+ 'Cannot change time card for a completed job!' => 'Stempelkarte für eine abgeschlossene Arbeit kann nicht geändert werden!',
+ 'Cannot create Assembly' => 'Erzeugniss kann nicht angelegt werden',
+ 'Cannot create Labor' => 'Fliessbandarbeitszeit kann nicht angelegt werden',
+ 'Cannot create Lock!' => 'System kann nicht gesperrt werden!',
+ 'Cannot create Part' => 'Ware kann nicht erstellt werden',
+ 'Cannot create Service' => 'Dienstleistung kann nicht erstellt werden',
+ 'Cannot delete account!' => 'Konto kann nicht gelöscht werden!',
+ 'Cannot delete customer!' => 'Kunde kann nicht gelöscht werden!',
+ 'Cannot delete default account!' => 'Das Standard-Konto kann nicht gelöscht werden!',
+ 'Cannot delete invoice!' => 'Rechnung kann nicht gelöscht werden!',
+ 'Cannot delete item!' => 'Artikel kann nicht gelöscht werden!',
+ 'Cannot delete order!' => 'Bestellung kann nicht gelöscht werden!',
+ 'Cannot delete quotation!' => 'Offerte kann nicht gelöscht werden!',
+ 'Cannot delete time card!' => 'Stempelkarte kann nicht gelöscht werden!',
+ 'Cannot delete transaction!' => 'Buchung kann nicht gelöscht werden!',
+ 'Cannot delete vendor!' => 'Lieferant kann nicht gelöscht werden!',
+ 'Cannot post Payment!' => 'Zahlungseingang kann nicht gebucht werden!',
+ 'Cannot post Receipt!' => 'Quittung kann nicht gebucht werden!',
+ 'Cannot post invoice for a closed period!' => 'Rechnung kann nicht gebucht werden, weil die Periode bereits abgeschlossen inst!',
+ 'Cannot post invoice!' => 'Rechnung kann nicht gebucht werden!',
+ 'Cannot post payment for a closed period!' => 'Zahlung kann nicht gebucht werden, weil die Periode bereits abgeschlossen ist!',
+ 'Cannot post transaction for a closed period!' => 'Buchung kann nicht erfasst werden, weil die Periode bereits abgeschlossen ist!',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => 'Sie können eine Buchung mit Aktiva und Passiva nicht auf das selbe Konto buchen!',
+ 'Cannot post transaction!' => 'Rechnung kann nicht gebucht werden!',
+ 'Cannot remove files!' => 'Dateien können nicht gelöscht werden!',
+ 'Cannot save account!' => 'Konto kann nicht gespeichert werden!',
+ 'Cannot save defaults!' => 'Standardeinstellungen können nicht gespeichert werden!',
+ 'Cannot save order!' => 'Bestellung kann nicht gespeichert werden!',
+ 'Cannot save preferences!' => 'Benutzereinstellungen können nicht gespeichert werden!',
+ 'Cannot save quotation!' => 'Offerte kann nicht gespeichert werden!',
+ 'Cannot save stores card for a closed period!' => 'Cannot save stores card for a closed period!',
+ 'Cannot save stores card!' => 'Cannot save stores card!',
+ 'Cannot save time card for a closed period!' => 'Stempelkarte für eine geschlossene Periode kann nicht gespeichert werden!',
+ 'Cannot save time card!' => 'Stempelkarte kann nicht gespeichert werden!',
+ 'Cannot set account for more than one of AR, AP or IC' => 'AR, AP und IC Konten können nicht auf andere Konten gleichzeitig eingestellt werden',
+ 'Cannot set multiple options for' => 'Mehr als eine Optionen nicht erlaubt für : ',
+ 'Cannot set multiple options for Item' => 'Mehr als eine Auswahl ist nicht erlaubt',
+ 'Cannot stock Assembly!' => 'Erzeugnis kann nicht eingelagert werden!',
+ 'Cannot stock assemblies!' => 'Erzeugnisse können nicht eingelagert werden!',
+ 'Cash' => 'vereinnahmt',
+ 'Cc' => 'E-Mailkopie',
+ 'Change' => 'Retourgeld',
+ 'Change Admin Password' => 'Administratorenpasswort ändern',
+ 'Change Password' => 'Passwort ändern',
+ 'Chargeable' => 'Verrechenbar',
+ 'Chart of Accounts' => 'Kontenübersicht',
+ 'Check' => 'Scheck',
+ 'Check Inventory' => 'Inventar prüfen',
+ 'Checks' => 'Schecks',
+ 'City' => 'Ort',
+ 'Cleared' => 'Entlastet',
+ 'Click on login name to edit!' => 'Zum Bearbeiten den Benutzernamen anklicken!',
+ 'Clocked' => 'Ausgerechnet',
+ 'Close Books up to' => 'Die Bücher abschliessen bis zum',
+ 'Closed' => 'Geschlossen',
+ 'Code' => 'Sprachcode',
+ 'Code missing!' => 'Sprachcode fehlt!',
+ 'Company' => 'Firmenname',
+ 'Company Name' => 'Firmenname',
+ 'Compare to' => 'Vergleichen mit',
+ 'Completed' => 'Fertig',
+ 'Components' => 'Einzelteile',
+ 'Confirm' => 'Bestätigung',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Connect to' => 'Als Vorlage verwenden',
+ 'Consolidate' => 'Konsolidieren',
+ 'Consolidate Orders' => 'Bestellungen konsolidieren',
+ 'Consolidate Purchase Orders' => 'Einkaufsbestellungen konsolidieren',
+ 'Consolidate Sales Orders' => 'Verkaufsbestellungen konsolidieren',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Weiter',
+ 'Contra' => 'Gegenkonto',
+ 'Copies' => 'Kopien',
+ 'Copy to COA' => 'In Kontenplan kopieren',
+ 'Cost' => 'Kosten',
+ 'Cost Center' => 'Kostenstelle',
+ 'Could not save pricelist!' => 'Preisliste konnte nicht gespeichert werden!',
+ 'Could not save!' => 'Konnte nicht gespeichert werden!',
+ 'Could not transfer Inventory!' => 'Inventar wurde nicht übertragen!',
+ 'Country' => 'Land',
+ 'Create Chart of Accounts' => 'Kontenplan auswählen',
+ 'Create Dataset' => 'Datenset erstellen',
+ 'Credit' => 'Haben',
+ 'Credit Invoice' => 'Credit Invoice',
+ 'Credit Limit' => 'Kreditlimite',
+ 'Curr' => 'Währung',
+ 'Currency' => 'Währung',
+ 'Current' => 'Aktuell',
+ 'Current Earnings' => 'Aktuelles Einkommen',
+ 'Customer' => 'Kunde',
+ 'Customer History' => 'Alle Belege für Kunde',
+ 'Customer Number' => 'Kundennummer',
+ 'Customer deleted!' => 'Kunde gelöscht!',
+ 'Customer missing!' => 'Kundenname fehlt!',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Customer saved!' => 'Kunde gespeichert!',
+ 'Customers' => 'Kunden',
+ 'DBA' => 'Datenbankadministrator',
+ 'DBI not installed!' => 'DBI ist nicht installiert!',
+ 'DOB' => 'Geburtsdatum',
+ 'Database' => 'Datenbank',
+ 'Database Administration' => 'Datenbankverwaltung',
+ 'Database Driver not checked!' => 'Kein Datenbanktreiber ausgewählt!',
+ 'Database Host' => 'Datenbank-Rechner',
+ 'Database User missing!' => 'Datenbankbenutzer fehlt!',
+ 'Dataset' => 'Datenset',
+ 'Dataset is newer than version!' => 'Datenset ist neuer als installierte Version',
+ 'Dataset missing!' => 'Datenset fehlt!',
+ 'Dataset updated!' => 'Datenset aktualisiert!',
+ 'Date' => 'Datum',
+ 'Date Format' => 'Datumsformat',
+ 'Date Paid' => 'Zahlungsdatum',
+ 'Date Received' => 'Eingangsdatum',
+ 'Date missing!' => 'Datum fehlt!',
+ 'Date received missing!' => 'Eingangsdatum fehlt!',
+ 'Date worked' => 'Datum',
+ 'Day' => 'Tag',
+ 'Day(s)' => 'Tage',
+ 'Days' => 'Tage',
+ 'Debit' => 'Soll',
+ 'Debit Invoice' => 'Debit Invoice',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Decimalplaces' => 'Dezimalstellen',
+ 'Decrease' => 'Verminderung',
+ 'Deduct after' => 'Abzug nach',
+ 'Deduction deleted!' => 'Abzug gelöscht!',
+ 'Deduction saved!' => 'Abzug gespeichert!',
+ 'Deductions' => 'Abzüge',
+ 'Default Template' => 'Standardvorlage',
+ 'Defaults' => 'Einstellungen',
+ 'Defaults saved!' => 'Einstellungen gespeichert!',
+ 'Delete' => 'Löschen',
+ 'Delete Account' => 'Konto löschen',
+ 'Delete Dataset' => 'Datenset löschen',
+ 'Delete Schedule' => 'Zeitplan löschen',
+ 'Deleting a language will also delete the templates for the language' => 'Wenn die Sprache gelöscht wird werden auch die dazugehörigen Vorlagen gelöscht',
+ 'Delivery Date' => 'Lieferdatum',
+ 'Department' => 'Abteilung',
+ 'Department deleted!' => 'Abteilung gelöscht!',
+ 'Department saved!' => 'Abteilung gespeichert!',
+ 'Departments' => 'Abteilungen',
+ 'Deposit' => 'Gutschrift',
+ 'Description' => 'Beschreibung',
+ 'Description Translations' => 'Ãœbersetzte Beschreibungen',
+ 'Description missing!' => 'Beschreibung fehlt!',
+ 'Detail' => 'Einzelheiten',
+ 'Difference' => 'Differenz',
+ 'Directory' => 'Verzeichnis',
+ 'Discount' => 'Rabatt',
+ 'Done' => 'Fertig',
+ 'Drawing' => 'Zeichnung',
+ 'Driver' => 'Treiber',
+ 'Dropdown Limit' => 'Auswahllistengrenze',
+ 'Due Date' => 'Fälligkeitsdatum',
+ 'Due Date missing!' => 'Fälligkeitsdatum fehlt!',
+ 'E-mail' => 'E-Mail',
+ 'E-mail ' => 'E-Mail ',
+ 'E-mail Statement to' => 'Mahnung per E-Mail an',
+ 'E-mail address missing!' => 'E-Mail-Adresse fehlt!',
+ 'E-mail message' => 'E-Mail-Nachricht ',
+ 'E-mail missing!' => 'E-Mail fehlt!',
+ 'E-mailed' => 'E-Mail gesendet',
+ 'Edit' => 'Bearbeiten',
+ 'Edit AP Transaction' => 'Eingangsbuchung bearbeiten',
+ 'Edit AR Transaction' => 'Ausgangsbuchung bearbeiten',
+ 'Edit Account' => 'Kontodaten bearbeiten',
+ 'Edit Assembly' => 'Erzeugnis bearbeiten',
+ 'Edit Business' => 'Branche bearbeiten',
+ 'Edit Cash Transfer Transaction' => 'Ãœberweisung bearbeiten',
+ 'Edit Customer' => 'Kundendaten bearbeiten',
+ 'Edit Deduction' => 'Abzug bearbeiten',
+ 'Edit Department' => 'Abteilung bearbeiten',
+ 'Edit Description Translations' => 'Ãœbersetzte Beschreibungen bearbeiten',
+ 'Edit Employee' => 'Arbeitnehmer bearbeiten',
+ 'Edit GIFI' => 'GIFI bearbeiten',
+ 'Edit General Ledger Transaction' => 'Buchung im Hauptbuch bearbeiten',
+ 'Edit Group' => 'Gruppe bearbeiten',
+ 'Edit Job' => 'Auftrag bearbeiten',
+ 'Edit Labor/Overhead' => 'Gestehungskostenkosten bearbeiten',
+ 'Edit Language' => 'Sprache bearbeiten',
+ 'Edit Order' => 'Bestellung bearbeiten',
+ 'Edit POS Invoice' => 'Kassenbon bearbeiten',
+ 'Edit Part' => 'Ware bearbeiten',
+ 'Edit Preferences for' => 'Benutzereinstellungen bearbeiten für',
+ 'Edit Pricegroup' => 'Preisgruppe bearbeiten',
+ 'Edit Project' => 'Projekt bearbeiten',
+ 'Edit Purchase Order' => 'Einkaufsbestellung bearbeiten',
+ 'Edit Quotation' => 'Offerte bearbeiten',
+ 'Edit Request for Quotation' => 'Offerte bearbeiten',
+ 'Edit SIC' => 'Euro-SIC bearbeiten',
+ 'Edit Sales Invoice' => 'Ausgangsrechnung bearbeiten',
+ 'Edit Sales Order' => 'Verkaufsbeleg bearbeiten',
+ 'Edit Service' => 'Dienstleistung bearbeiten',
+ 'Edit Template' => 'Vorlage bearbeiten',
+ 'Edit Time Card' => 'Stempelkarte bearbeiten',
+ 'Edit User' => 'Benutzerdaten bearbeiten',
+ 'Edit Vendor' => 'Lieferantendaten bearbeiten',
+ 'Edit Vendor Invoice' => 'Einkaufsrechnung bearbeiten',
+ 'Edit Warehouse' => 'Warenlager bearbeiten',
+ 'Email' => 'E-Mail',
+ 'Employee' => 'Verkäufer',
+ 'Employee Name' => 'Mitarbeitername',
+ 'Employee Number' => 'Mitarbeiternummer',
+ 'Employee deleted!' => 'Mitarbeiter gelöscht!',
+ 'Employee pays' => 'Mitarbeiter bezahlt',
+ 'Employee saved!' => 'Mitarbeiter gespeichert!',
+ 'Employees' => 'Mitarbeiter',
+ 'Employer' => 'Arbeitgeber',
+ 'Employer pays' => 'Arbeitgeber bezahlt',
+ 'Enddate' => 'Austrittsdatum',
+ 'Ends' => 'Abschluss',
+ 'Enforce transaction reversal for all dates' => 'Kontraeintragungen für jeden Zeitraum aktualisieren',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Durch Doppelpunkte getrennte Währungskürzel mit maximal 3 Buchstaben aufführen; die eigene Landeswährung zuerst (z.B. CHF:EUR:USD)',
+ 'Equity' => 'Passiva/Eigenkapital',
+ 'Every' => 'Jeden',
+ 'Excempt age <' => 'Befreiungsalter <',
+ 'Exch' => 'Wkurs.',
+ 'Exchange Rate' => 'Wechselkurs',
+ 'Exchange rate for payment missing!' => 'Wechselkurs für Bezahlung fehlt!',
+ 'Exchange rate missing!' => 'Wechselkurs fehlt!',
+ 'Exempt age <' => 'Befreiheitsalter <',
+ 'Existing Datasets' => 'Existierende Datensets',
+ 'Expense' => 'Aufwand',
+ 'Expense account does not exist!' => 'Es existiert kein Konto für Unkosten!',
+ 'Expense/Asset' => 'Aufwand/Anlagen',
+ 'Expiry Date' => 'Verfallsdatum',
+ 'Extended' => 'Summe',
+ 'FX' => 'FX',
+ 'Failed to save order!' => 'Speichern der Bestellung schlug fehl!',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'For' => 'für',
+ 'Foreign Exchange Gain' => 'Wechselkurserträge',
+ 'Foreign Exchange Loss' => 'Wechselkursverluste',
+ 'Forgot Password' => 'Passwort vergessen',
+ 'Friday' => 'Freitag',
+ 'From' => 'Von',
+ 'From Warehouse' => 'Vom Lagerhaus',
+ 'GIFI' => 'GIFI',
+ 'GIFI deleted!' => 'GIFI gelöscht!',
+ 'GIFI missing!' => 'GIFI fehlt!',
+ 'GIFI saved!' => 'GIFI gespeichert!',
+ 'GL' => 'Hauptbuch',
+ 'GL Reference Number' => 'Hauptbuchreferenz',
+ 'GL Transaction' => 'Hauptbuchbuchung',
+ 'General Ledger' => 'Hauptbuch',
+ 'Generate' => 'Erzeugen',
+ 'Generate Orders' => 'Aufträge erstellen',
+ 'Generate Purchase Orders' => 'Bestellungen erstellen',
+ 'Generate Purchase Orders from Sales Order' => 'Bestellungen von Aufträgen erstellen',
+ 'Generate Sales Order' => 'Einkaufsbestellung erstellen',
+ 'Generate Sales Order from Purchase Orders' => 'Auftrag anhand von Bestellungen erstellen',
+ 'Generate Sales Orders' => 'Einkaufsbestellungen erstellen',
+ 'Goods & Services' => 'Waren & Dienstleistungen',
+ 'Group' => 'Warengruppe',
+ 'Group Items' => 'Artikel sortieren',
+ 'Group Translations' => 'Gruppenübersetzung',
+ 'Group deleted!' => 'Gruppe gelöscht!',
+ 'Group missing!' => 'Gruppe fehlt!',
+ 'Group saved!' => 'Gruppe gespeichert!',
+ 'Groups' => 'Gruppen',
+ 'HR' => 'Personal',
+ 'HTML Templates' => 'HTML Vorlagen',
+ 'Heading' => 'Ãœberschrift',
+ 'History' => 'Statistik',
+ 'Home Phone' => 'Tel Privat',
+ 'Host' => 'Rechner',
+ 'Hostname missing!' => 'Rechnername fehlt!',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Image' => 'Bild',
+ 'In-line' => 'im Textkörper (Inline)',
+ 'Inactive' => 'Inaktiv',
+ 'Include Exchange Rate Difference' => 'Wechselkursunterschied aufnehmen',
+ 'Include Payment' => 'Bezahlung reinnehmen',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Include in drop-down menus' => 'In Aufklapp-Menü aufnehmen',
+ 'Income' => 'Ertrag',
+ 'Income Statement' => 'Gewinn- und Verlustrechnung',
+ 'Income account does not exist!' => 'Es existiert kein Konto für Einnahmen!',
+ 'Incorrect Dataset version!' => 'Ungültigige Datenset-Version',
+ 'Increase' => 'Erhöhen',
+ 'Individual Items' => 'Einzelteile',
+ 'Internal Notes' => 'Interne Notizen',
+ 'Inventory' => 'Inventar',
+ 'Inventory account does not exist!' => 'Es existiert kein Konto für Inventar!',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Bevor dieses Erzeugnis als ungültig markiert werden kann muss das Inventar auf Null sein!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Bevor diese Ware als ungültig markiert werden kann muss das Inventar Null sein!',
+ 'Inventory saved!' => 'Inventar gespeichert!',
+ 'Inventory transferred!' => 'Inventar übertragen',
+ 'Invoice' => 'Rechnung',
+ 'Invoice Date' => 'Rechnungsdatum',
+ 'Invoice Date missing!' => 'Rechnungsdatum fehlt!',
+ 'Invoice Number' => 'Rechnungsnummer',
+ 'Invoice Number missing!' => 'Rechnungsnummer fehlt!',
+ 'Invoice deleted!' => 'Rechung gelöscht!',
+ 'Invoices' => 'Rechnungen',
+ 'Is this a summary account to record' => 'Summenkonto für',
+ 'Item' => 'Pos',
+ 'Item already on pricelist!' => 'Artikel ist bereits in der Preisliste!',
+ 'Item deleted!' => 'Artikel gelöscht!',
+ 'Item not on file!' => 'Dieser Artikel ist nicht in der Datenbank!',
+ 'Items' => 'Artikel',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Job' => 'Auftrag',
+ 'Job Description' => 'Auftragsbeschreibung',
+ 'Job Name' => 'Auftragsname',
+ 'Job Number' => 'Auftragsnummer',
+ 'Job Number missing!' => 'Auftragsnummer fehlt!',
+ 'Job deleted!' => 'Auftrag gelöscht!',
+ 'Job saved!' => 'Auftrag gespeichert!',
+ 'Job/Project Number' => 'Autrags-/Projektnummer',
+ 'Jobs' => 'Aufträge',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'LaTeX Templates' => 'LaTeX Vorlagen',
+ 'Labor Code' => 'Arbeitscode',
+ 'Labor Code missing!' => 'Arbeitscode fehlt!',
+ 'Labor/Overhead' => 'Gestehungskosten',
+ 'Language' => 'Sprache',
+ 'Language deleted!' => 'Sprache gelöscht!',
+ 'Language saved!' => 'Sprache gespeichert!',
+ 'Languages' => 'Sprachen',
+ 'Languages not defined!' => 'Sprachen nicht definiert!',
+ 'Last Cost' => 'Letzte Kosten',
+ 'Last Numbers & Default Accounts' => 'Laufende Zähler und Standardkonten',
+ 'Lead' => 'Anlaufzeit',
+ 'Leadtime' => 'Vorlaufzeit',
+ 'Leave host and port field empty unless you want to make a remote connection.' => 'Für lokale Verbindungen "Rechner" und "Port" freilassen.',
+ 'Liability' => 'Passiva/Mittelherkunft',
+ 'Licensed to' => 'Lizensiert für',
+ 'Line Total' => 'Zeilensumme',
+ 'Link' => 'Verknüpfungen',
+ 'Link Accounts' => 'Konten verknüpfen',
+ 'List' => 'Auflisten',
+ 'List Accounts' => 'Kontenliste',
+ 'List Businesses' => 'Branche aufzeigen',
+ 'List Departments' => 'Abteilungen aufzeigen',
+ 'List GIFI' => 'GIFI aufzeigen',
+ 'List Languages' => 'Sprachen aufzeigen',
+ 'List Price' => 'Listenpreis',
+ 'List Projects' => 'Projekte aufzeigen',
+ 'List SIC' => 'Euro-SIC aufzeigen',
+ 'List Transactions' => 'Buchungsliste',
+ 'List Warehouses' => 'Warenlager aufzeigen',
+ 'Lock System' => 'System sperren',
+ 'Lockfile created!' => 'gesichert!',
+ 'Lockfile removed!' => 'entsichert!',
+ 'Login' => 'Benutzername',
+ 'Login name missing!' => 'Loginname fehlt!',
+ 'Logout' => 'Abmelden',
+ 'Make' => 'Hersteller',
+ 'Manager' => 'Geschäftsführer',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'Marked entries printed!' => 'Markierte Einträge gedruckt!',
+ 'Markup' => 'Marge',
+ 'Maximum' => 'Höchstens',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Memo' => 'Notiz',
+ 'Menu Width' => 'Menübreite',
+ 'Message' => 'Nachricht',
+ 'Method' => 'Abrechnungsmethode',
+ 'Microfiche' => 'Mikrofilm',
+ 'Model' => 'Modell',
+ 'Monday' => 'Montag',
+ 'Month' => 'Monat',
+ 'Month(s)' => 'Monat(e)',
+ 'Months' => 'Monate',
+ 'Multibyte Encoding' => 'Zeichensatz',
+ 'N/A' => 'N.Z.',
+ 'Name' => 'Name',
+ 'Name missing!' => 'Name fehlt!',
+ 'Name on Card' => 'Name auf Karte',
+ 'Net Amount' => 'Nettobetrag',
+ 'New Templates' => 'Neue Vorlage',
+ 'New Window' => 'Neues Fenster',
+ 'Next' => 'Nächste',
+ 'Next Date' => 'Nächstes Datum',
+ 'Next Number' => 'Nächste Nummer',
+ 'No' => 'Nein',
+ 'No Database Drivers available!' => 'Kein Datenbanktreiber verfügbar!',
+ 'No Dataset selected!' => 'Keine Datenset ausgewählt!',
+ 'No Employees on file!' => 'Kein Mitarbeiter in Datenbank!',
+ 'No History!' => 'Kein Verlauf!',
+ 'No Labor codes on file!' => 'Kein Arbeitscode auf Datenbank!',
+ 'No Parts on file!' => 'Keine Artikel auf Datenbank!',
+ 'No Services on file!' => 'Keine Dienstleistungen auf Datenbank!',
+ 'No email address for' => 'Keine E-Mailadresse für',
+ 'No open Jobs!' => 'Keine offene Aufträge!',
+ 'No open Projects!' => 'Keine offene Projekte!',
+ 'No.' => 'Pos.',
+ 'Non-chargeable' => 'Nicht verrechenbar',
+ 'Non-taxable' => 'MWST-frei',
+ 'Non-taxable Purchases' => 'MSTF-freie Einkäufe',
+ 'Non-taxable Sales' => 'MSTF-freie Verkäufe',
+ 'Non-tracking Items' => 'Nicht lagernde Artikel',
+ 'Notes' => 'Bemerkungen',
+ 'Nothing entered!' => 'Es wurde nichts eingegeben!',
+ 'Nothing open!' => 'Nichts geöffnet!',
+ 'Nothing selected!' => 'Es wurde nichts ausgewählt!',
+ 'Nothing to delete!' => 'Es wurde nichts gelöscht werden!',
+ 'Nothing to print!' => 'Es wurde nichts gedruckt!',
+ 'Nothing to transfer!' => 'Es gibt nichts zu übertragen!',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Artikelnummer',
+ 'Number Format' => 'Zahlenformat',
+ 'Number missing in Row' => 'Nummer fehlt in Zeile',
+ 'O' => 'O',
+ 'OH' => 'LU',
+ 'Obsolete' => 'Ungültig',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'On Hand' => 'am Lager',
+ 'Onhand' => 'am Lager',
+ 'Open' => 'Offen',
+ 'Oracle Database Administration' => 'Oracle Datenbankverwaltung',
+ 'Order' => 'Bestellung',
+ 'Order Date' => 'Bestelldatum',
+ 'Order Date missing!' => 'Bestelldatum fehlt!',
+ 'Order Entry' => 'Bestellungen',
+ 'Order Number' => 'Bestellnummer',
+ 'Order Number missing!' => 'Bestellnummer fehlt!',
+ 'Order deleted!' => 'Bestellung gelöscht!',
+ 'Order generation failed!' => 'Auftragserstellung fehlgeschlagen!',
+ 'Order saved!' => 'Bestellung gespeichert!',
+ 'Orders' => 'Bestellungen',
+ 'Orders generated!' => 'Bestellungen erstellt!',
+ 'Orphaned' => 'nie benutzt',
+ 'Out of balance transaction!' => 'Soll und Haben sind nicht gleich!',
+ 'Out of balance!' => 'Summen stimmen nicht überein!',
+ 'Outstanding' => 'Offen',
+ 'Overdue' => 'Überfällig',
+ 'PDF' => 'PDF',
+ 'PO' => 'Einkaufsbestellung',
+ 'PO Number' => 'Ihre Bestellnummer',
+ 'POS' => 'Kasse',
+ 'POS Invoice' => 'Kassenabrechnung',
+ 'Packing List' => 'Packliste',
+ 'Packing List Date missing!' => 'Verpackungslisten-Datum fehlt!',
+ 'Packing List Number missing!' => 'Verpackungslistennummer fehlt!',
+ 'Packing Lists' => 'Packlisten',
+ 'Paid' => 'Bezahlt',
+ 'Part' => 'Artikel',
+ 'Part Number' => 'Artikelnummer',
+ 'Partnumber' => 'Materialnummer',
+ 'Parts' => 'Waren',
+ 'Parts Requirements' => 'benötigte Artikel',
+ 'Password' => 'Passwort',
+ 'Password changed!' => 'Passwort geändert!',
+ 'Password does not match!' => 'Passworteingabe nicht gleich!',
+ 'Password saved!' => 'Passwort gespeichert!',
+ 'Passwords do not match!' => 'Passwörter sind nicht gleich!',
+ 'Payables' => 'Verbindlichkeiten',
+ 'Payment' => 'Belastung',
+ 'Payment date missing!' => 'Zahlungsdatum fehlt!',
+ 'Payment posted!' => 'Zahlung gebucht!',
+ 'Payments' => 'Zahlungen',
+ 'Payments posted!' => 'Bezahlungen gebucht!',
+ 'Payroll Deduction' => 'Lohnabzug',
+ 'Period' => 'Zeitraum',
+ 'Pg Database Administration' => 'Datenbankverwaltung',
+ 'PgPP Database Administration' => 'PgPP Datenbankverwaltung',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Lagerliste',
+ 'Pick Lists' => 'Lagerlisten',
+ 'Port' => 'TCP-Port-Nr.',
+ 'Port missing!' => 'Port fehlt!',
+ 'Pos' => 'Pos',
+ 'Post' => 'Buchen',
+ 'Post as new' => 'Als neu buchen',
+ 'Posted!' => 'Verbucht!',
+ 'Posting' => 'Buchung',
+ 'Posting failed!' => 'Buchen fehlgeschlagen!',
+ 'Postscript' => 'Postscript',
+ 'Preferences' => 'Benutzereinstellungen',
+ 'Preferences saved!' => 'Benutzereinstellungen gespeichert!',
+ 'Prepayment' => 'Anzahlung',
+ 'Price' => 'Preis',
+ 'Pricegroup' => 'Preisgruppe',
+ 'Pricegroup deleted!' => 'Preisgruppe gelöscht!',
+ 'Pricegroup missing!' => 'Preisgruppe fehlt!',
+ 'Pricegroup saved!' => 'Preisgruppe gespeichert!',
+ 'Pricegroups' => 'Preisgruppen',
+ 'Pricelist' => 'Preisliste',
+ 'Print' => 'Drucken',
+ 'Print and Post' => 'Drucken und Buchen',
+ 'Print and Post as new' => 'Drucken und als neu buchen',
+ 'Print and Save' => 'Drucken und speichern',
+ 'Print and Save as new' => 'Drucken und als neu speichern',
+ 'Printed' => 'Gedruckt',
+ 'Printer' => 'Standardrucker',
+ 'Printing' => 'Druckt',
+ 'Printing ... ' => 'Druckt ... ',
+ 'Process Transactions' => 'Buchungen erstellen',
+ 'Production' => 'Produktion',
+ 'Profit Center' => 'Profit-Center',
+ 'Project' => 'Projekt',
+ 'Project Description Translations' => 'Übersetzung für Projektbeschreibungen',
+ 'Project Name' => 'Projektname',
+ 'Project Number' => 'Projektnummer',
+ 'Project Number missing!' => 'Projektnummer fehlt!',
+ 'Project Transactions' => 'Projektbuchungen',
+ 'Project deleted!' => 'Projekt gelöscht!',
+ 'Project not on file!' => 'Dieses Projekt ist nicht in der Datenbank!',
+ 'Project saved!' => 'Projekt gespeichert!',
+ 'Project/Job Name' => 'Projekt-/Auftragsname',
+ 'Project/Job Number' => 'Projekt-/Aufgragsnummer',
+ 'Projects' => 'Projekte',
+ 'Purchase Order' => 'Einkaufsbestellung',
+ 'Purchase Order Number' => 'Einkaufsbestellnummer',
+ 'Purchase Orders' => 'Einkaufsbestellungen',
+ 'Qty' => 'Menge',
+ 'Quantity exceeds available units to stock!' => 'Anzahl ist grösser als der Lagerbestand!',
+ 'Quarter' => 'Quartal',
+ 'Queue' => 'Warteschlange',
+ 'Queued' => 'In Warteschlange',
+ 'Quotation' => 'Offerte',
+ 'Quotation ' => 'Verkaufsofferte',
+ 'Quotation Date' => 'Offertendatum',
+ 'Quotation Date missing!' => 'Offertendatum fehlt!',
+ 'Quotation Number' => 'Offertenummer',
+ 'Quotation Number missing!' => 'Offertenummer fehlt!',
+ 'Quotation deleted!' => 'Offerte gelöscht!',
+ 'Quotations' => 'Offerten',
+ 'R' => 'R',
+ 'RFQ' => 'Offertanfrage',
+ 'RFQ ' => 'Einkaufsofferte ',
+ 'RFQ Number' => 'Einkaufsoffertennummer',
+ 'RFQs' => 'Offerteanfragen',
+ 'ROP' => 'Lagerbestand Untergrenze',
+ 'Rate' => '%',
+ 'Rate missing!' => 'Prozentsatz fehlt!',
+ 'Recd' => 'Erh',
+ 'Receipt' => 'Quittung',
+ 'Receipt posted!' => 'Einnahme gebucht!',
+ 'Receipts' => 'Quittungen',
+ 'Receivables' => 'Forderungen',
+ 'Receive' => 'Einlagern',
+ 'Receive Merchandise' => 'Artikeln einlagern',
+ 'Reconciliation' => 'Kontenabgleich',
+ 'Reconciliation Report' => 'Kontenabgleichungsreport',
+ 'Record in' => 'Buchen auf',
+ 'Recurring Transaction' => 'Wiederkehrende Buchung',
+ 'Recurring Transactions' => 'Wiederkehrende Buchungen',
+ 'Reference' => 'Referenz',
+ 'Remaining' => 'Rest',
+ 'Remove' => 'Entfernen',
+ 'Remove Audit trail up to' => 'Revisionsnachfolge löschen bis zu',
+ 'Remove Audit trails up to' => 'Revisionsnachfolge löschen bis zu',
+ 'Removed spoolfiles!' => 'Spoolfiles gelöscht!',
+ 'Removing marked entries from queue ...' => 'Markierte Einträge gelöscht ...',
+ 'Repeat' => 'Wiederholen',
+ 'Report for' => 'Bericht für',
+ 'Reports' => 'Berichte',
+ 'Req' => 'Ben.',
+ 'Request for Quotation' => 'Offerteanfrage',
+ 'Request for Quotations' => 'Offertenanfragen',
+ 'Request transmitted!' => 'Anfrage übermittelt!',
+ 'Required by' => 'Erforderlich bis am',
+ 'Requirements' => 'Benötigte Teile',
+ 'Retained Earnings' => 'Verbliebenes Einkommen',
+ 'Role' => 'Stellung',
+ 'S' => 'A',
+ 'SIC' => 'Euro-SIC',
+ 'SIC deleted!' => 'Euro-SIC gelöscht!',
+ 'SIC saved!' => 'Euro-SIC gespeichert!',
+ 'SKU' => 'Lagerhaltungseinheit',
+ 'SO' => 'SO',
+ 'SSN' => 'MWST-Nummer',
+ 'Sale' => 'Verkauf',
+ 'Sales' => 'Warenverkauf',
+ 'Sales Invoice' => 'Ausgangsrechnung',
+ 'Sales Invoice ' => 'Ausgangsrechnung ',
+ 'Sales Invoice.' => 'Ausgangsrechnung.',
+ 'Sales Invoice/AR Transaction Number' => 'Verkaufsrechnung-/Buchungsnummer',
+ 'Sales Invoices' => 'Ausgangsrechnungen',
+ 'Sales Order' => 'Auftragsbestätigung',
+ 'Sales Order Number' => 'Auftragsbestätigungsnummer',
+ 'Sales Orders' => 'Auftragsbestätigungen',
+ 'Sales Quotation Number' => 'Offertennummer',
+ 'Salesperson' => 'Verkäufer',
+ 'Saturday' => 'Samstag',
+ 'Save' => 'Speichern',
+ 'Save ' => 'Speichern ',
+ 'Save Pricelist' => 'Preisliste speichern',
+ 'Save Schedule' => 'Zeitplan speichern',
+ 'Save as new' => 'als neu speichern',
+ 'Save to File' => 'Auf Festplatte speichern',
+ 'Saving' => 'Speichert',
+ 'Schedule' => 'Buchungstermine',
+ 'Scheduled' => 'geplant',
+ 'Screen' => 'Bildschirm',
+ 'Search' => 'Suchen',
+ 'Select' => 'Auswählen',
+ 'Select Customer' => 'Kunde auswählen',
+ 'Select Vendor' => 'Lieferant auswählen',
+ 'Select a Printer!' => 'Drucker auswählen!',
+ 'Select a printer!' => 'Drucker auswählen',
+ 'Select all' => 'Alle auswählen',
+ 'Select from one of the items below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
+ 'Select items' => 'Bitte wählen Sie aus',
+ 'Select payment' => 'Zahlung auswählen',
+ 'Select postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Select txt, postscript or PDF!' => 'Text, Postscript oder PDF auswählen!',
+ 'Sell' => 'Verkaufspreis',
+ 'Sell Price' => 'Verkaufspreis',
+ 'Send by E-Mail' => 'Per E-Mail senden',
+ 'Sending' => 'Senden',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Serial No.' => 'Seriennummer',
+ 'Serial Number' => 'Seriennummer',
+ 'Service' => 'Dienstleistung',
+ 'Service Code' => 'Dienstleistungscode',
+ 'Service Code missing!' => 'Dienstleistungscode fehlt!',
+ 'Service/Labor Code' => 'Dienstleistungs-/Arbeitscode fehlt!',
+ 'Services' => 'Leistungen',
+ 'Session Timeout' => 'Maximale Sitzungsdauer',
+ 'Session expired!' => 'Sitzungsdauer abgelaufen!',
+ 'Setup Templates' => 'Vorlage auswählen',
+ 'Ship' => 'Versenden',
+ 'Ship Merchandise' => 'Waren versenden',
+ 'Ship to' => 'Lieferung an',
+ 'Ship via' => 'Versandart',
+ 'Shipping' => 'Versand',
+ 'Shipping Address' => 'Lieferanschrift',
+ 'Shipping Date' => 'Versanddatum',
+ 'Shipping Date missing!' => 'Versanddatum fehlt!',
+ 'Shipping Point' => 'Lieferort',
+ 'Short' => 'Kurz',
+ 'Signature' => 'Signatur',
+ 'Source' => 'Beleg',
+ 'Spoolfile' => 'Spoolfile',
+ 'Standard' => 'Standard',
+ 'Standard Industrial Codes' => 'Standard Industrie Norm',
+ 'Startdate' => 'Eintrittsdatum',
+ 'State' => 'Zustand',
+ 'State/Province' => 'Kanton',
+ 'Statement' => 'Zahlungserinnerung',
+ 'Statement Balance' => 'Auszugsbilanz',
+ 'Statement sent to' => 'Zahlungserinnerung verschickt an',
+ 'Statements sent to printer!' => 'Zahlungserinnerungen gedruckt!',
+ 'Stock' => 'Einlagern',
+ 'Stock Assembly' => 'Erzeugnis einlagern',
+ 'Stock Finished Goods' => 'Lager fertiggestellte Güter',
+ 'Stores Card' => 'Stores Card',
+ 'Stores Card saved!' => 'Stores Card saved!',
+ 'Stores Cards' => 'Stores Cards',
+ 'Stylesheet' => 'Stilvorlage',
+ 'Sub-contract GIFI' => 'Unterlieferant GIFI',
+ 'Subject' => 'Betreff',
+ 'Subtotal' => 'Zwischensumme',
+ 'Summary' => 'Zusammenfassung',
+ 'Sunday' => 'Sonntag',
+ 'Supervisor' => 'Vorarbeiter',
+ 'System' => 'System',
+ 'System Defaults' => 'System-Standard-Einstellungen',
+ 'Tax' => 'MWST',
+ 'Tax Account' => 'MWST-Konto',
+ 'Tax Accounts' => 'MWST-Konten',
+ 'Tax Included' => 'MWST im Preis enthalten',
+ 'Tax Number' => 'MWST-Nummer',
+ 'Tax Number / SSN' => 'MWST-Nummer',
+ 'Tax collected' => 'vereinnahmte MWST',
+ 'Tax paid' => 'Vorsteuer',
+ 'Taxable' => 'MWST-pflichtig',
+ 'Template saved!' => 'Druckvorlage gespeichert!',
+ 'Templates' => 'Druckvorlagen',
+ 'Terms' => 'Zahlungsbedingungen',
+ 'Text' => 'Text',
+ 'Text Templates' => 'Text Vorlagen',
+ 'The following Datasets are not in use and can be deleted' => 'Die folgenden Datensets werden nicht verwendet und können gelöscht werden',
+ 'The following Datasets need to be updated' => 'Folgende Datensets müssen aktualisiert werden',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'In diesem Schritt werden bestehende Datensets gesucht. Es werden noch keine Änderungen vorgenommen!',
+ 'Thursday' => 'Donnerstag',
+ 'Till' => 'Kasse',
+ 'Time' => 'Zeit',
+ 'Time Card' => 'Stempelkarte',
+ 'Time Card deleted!' => 'Stempelkarte gelöscht!',
+ 'Time Card saved!' => 'Stempelkarte gespeichert!',
+ 'Time Cards' => 'Stempelkarten',
+ 'Time In' => 'Eingestempelt',
+ 'Time Out' => 'Ausgestempelt',
+ 'Times' => 'mal',
+ 'To' => 'Bis',
+ 'To Warehouse' => 'Zum Lager',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Um einen neuen Benutzer hinzuzufügen, ändern und speichern Sie am einfachsten einen bestehenden Benutzer. Unter dem neuen Benutzernamen wird dann ein Benutzer mit denselben Einstellungen angelegt.',
+ 'Top Level' => 'Hauptbeschreibung',
+ 'Total' => 'Total',
+ 'Tracking Items' => 'Lagernde Artikel',
+ 'Trade Discount' => 'Handelsrabatt',
+ 'Transaction' => 'Buchung',
+ 'Transaction Date missing!' => 'Buchungsdatum fehlt!',
+ 'Transaction Dates' => 'Buchungsdaten',
+ 'Transaction deleted!' => 'Buchung gelöscht!',
+ 'Transaction posted!' => 'Buchung getätigt!',
+ 'Transaction reversal enforced for all dates' => 'Fehleintragungen müssen für jeden Zeitraum mit einer Kontraeintragung ausgebessert werden',
+ 'Transaction reversal enforced up to' => 'Fehleintragungen können bis zu dem angenebenen Zeitraum nur mit einer Kontraeintragung ausgebessert werden',
+ 'Transactions' => 'Buchungen',
+ 'Transactions exist, cannot delete customer!' => 'Buchung existiert bereits, Kunde kann nicht gelöscht werden!',
+ 'Transfer' => 'Ãœbertrag',
+ 'Transfer Inventory' => 'Inventarübertrag',
+ 'Transfer from' => 'umlagern von',
+ 'Transfer to' => 'Ãœbergabe an',
+ 'Translation' => 'Ãœbersetzung',
+ 'Translation deleted!' => 'Übersetzung gelöscht!',
+ 'Translation not on file!' => 'Ãœbersetzung nicht in der Datenbank',
+ 'Translations' => 'Ãœbersetzungen',
+ 'Translations saved!' => 'Ãœbersetzung gespeichert!',
+ 'Trial Balance' => 'Saldenbilanz',
+ 'Tuesday' => 'Dienstag',
+ 'Type' => 'Typ',
+ 'Type of Business' => 'Rabattgruppe',
+ 'Unit' => 'Einheit',
+ 'Unit Price' => 'Preis pro Einheit',
+ 'Unit Rate' => 'Unit Rate',
+ 'Unit of measure' => 'Masseinheit',
+ 'Unlock System' => 'System entsperren',
+ 'Update' => 'Erneuern',
+ 'Update Dataset' => 'Datenset aktualisieren',
+ 'Updated' => 'Erneuert am',
+ 'Upgrading to Version' => 'Datenset wird erneuert auf Version',
+ 'Use Templates' => 'Benutze Vorlagen',
+ 'User' => 'Datenbankbenutzer',
+ 'User deleted!' => 'Benutzer gelöscht!',
+ 'User saved!' => 'Benutzer gespeichert!',
+ 'Valid until' => 'Gültig bis',
+ 'Vendor' => 'Lieferant',
+ 'Vendor History' => 'Alle Belege für Lieferant',
+ 'Vendor Invoice' => 'Einkaufsrechnung',
+ 'Vendor Invoice ' => 'Einkaufsrechnung ',
+ 'Vendor Invoice.' => 'Einkaufsrechnung.',
+ 'Vendor Invoice/AP Transaction Number' => 'Einkaufsrechnungs-/Buchungsnummer',
+ 'Vendor Invoices' => 'Einkaufsrechnungen',
+ 'Vendor Number' => 'Lieferantennummer',
+ 'Vendor deleted!' => 'Lieferant gelöscht!',
+ 'Vendor missing!' => 'Lieferant fehlt!',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Vendor saved!' => 'Lieferant gespeichert!',
+ 'Vendors' => 'Lieferanten',
+ 'Version' => 'Version',
+ 'Warehouse' => 'Warenlager',
+ 'Warehouse deleted!' => 'Warenlager gelöscht!',
+ 'Warehouse saved!' => 'Warenlager gespeichert!',
+ 'Warehouses' => 'Warenlager',
+ 'Warning!' => 'Warnung!',
+ 'Wednesday' => 'Mittwoch',
+ 'Week' => 'Woche',
+ 'Week(s)' => 'Woche(n)',
+ 'Weeks' => 'Wochen',
+ 'Weight' => 'Gewicht',
+ 'Weight Unit' => 'Gewichtseinheit',
+ 'What type of item is this?' => 'Welche Artikelart ist das?',
+ 'Work Order' => 'Arbeitsblatt',
+ 'Work Orders' => 'Arbeitsblätter',
+ 'Work Phone' => 'Tel Arbeit',
+ 'Year' => 'Jahr',
+ 'Year(s)' => 'Jahr(e)',
+ 'Yearend' => 'Jahresabschluss',
+ 'Yearend date missing!' => 'Datum für Jahresabschluss fehlt!',
+ 'Yearend posted!' => 'Jahresabschluss gespeichert!',
+ 'Yearend posting failed!' => 'Jahresabschluss nicht gebucht!',
+ 'Years' => 'Jahre',
+ 'Yes' => 'Ja',
+ 'You are logged out' => 'Sie sind abgemeldet',
+ 'You are logged out!' => 'Sie sind abgemeldet!',
+ 'You are posting an existing transaction!' => 'Sie buchen eine existierende Buchung',
+ 'You are printing and posting an existing transaction!' => 'Sie drucken und buchen eine bereits bestehende Buchung',
+ 'You are printing and saving an existing order' => 'Sie drucken und speichern einen existierenden Auftrag',
+ 'You are printing and saving an existing quotation' => 'Sie drucken und speichern eine bereits bestehende Offerte',
+ 'You are printing and saving an existing transaction!' => 'Sie drucken und speichern eine bereits existierende Buchung!',
+ 'You are saving an existing order' => 'Sie speichern einen bereits bestehenden Auftrag',
+ 'You are saving an existing quotation' => 'Sie speichern eine vorhandene Offerte',
+ 'You are saving an existing transaction!' => 'Sie speichern eine vorhande Buchung!',
+ 'You did not enter a name!' => 'Sie haben keinen Namen eingegeben!',
+ 'You must enter a host and port for local and remote connections!' => '"Rechner" und "Port" müssen für lokale und externe Verbindungen eingetragen werden!',
+ 'Zip/Postal Code' => 'PLZ',
+ 'account cannot be set to any other type of account' => 'Dieses Konto kann nicht auf andere Typen eingestellt werden',
+ 'as at' => 'zum Stand',
+ 'days' => 'Tage',
+ 'does not exist' => 'existiert nicht',
+ 'done' => 'fertig',
+ 'ea' => 'pro',
+ 'failed' => 'fehlgeschlagen',
+ 'for' => 'für',
+ 'for Period' => 'für den Zeitraum',
+ 'is already a member!' => 'ist bereits ein Mitglied!',
+ 'localhost' => 'localhost',
+ 'locked!' => 'gesperrt!',
+ 'posted!' => 'gebucht!',
+ 'sent' => 'verschickt',
+ 'successfully created!' => 'wurde erfolgreich erstellt',
+ 'successfully deleted!' => 'wurde erfolgreich gelöscht',
+ 'time(s)' => 'mal',
+ 'unexpected error!' => 'unerwarteter Fehler!',
+ 'website' => 'Webseite',
+};
+
+1;
diff --git a/locale/ch_utf/am b/locale/ch_utf/am
new file mode 100755
index 00000000..a35722d5
--- /dev/null
+++ b/locale/ch_utf/am
@@ -0,0 +1,317 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP' => 'Verbindlichkeiten',
+ 'AR' => 'Forderungen',
+ 'About' => 'Ãœber',
+ 'Account' => 'Konto',
+ 'Account Number' => 'Kontonummer',
+ 'Account Number missing!' => 'Kontonummer fehlt!',
+ 'Account Type' => 'Kontoart',
+ 'Account Type missing!' => 'Kontoart fehlt!',
+ 'Account deleted!' => 'Konto gelöscht!',
+ 'Account does not exist!' => 'Konto existiert nicht!',
+ 'Account saved!' => 'Konto gespeichert!',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Accrual' => 'vereinbart',
+ 'Activate Audit trail' => 'Revisionsnachfolge aktivieren',
+ 'Add Account' => 'Konto anlegen',
+ 'Add Business' => 'Branche erfassen',
+ 'Add Department' => 'Abteilung erfassen',
+ 'Add GIFI' => 'GIFI anlegen',
+ 'Add Language' => 'Sprache erfassen',
+ 'Add SIC' => 'Euro-SIC erfassen',
+ 'Add Warehouse' => 'Warenlager erfassen',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Betrag',
+ 'Asset' => 'Aktiva/Mittelverwendung',
+ 'Audit Control' => 'Bücherkontrolle',
+ 'Audit trail disabled' => 'Revisionsnachfolge deaktiviert',
+ 'Audit trail enabled' => 'Revisionsnachfolge aktiviert',
+ 'Audit trail removed up to' => 'Revisionsnachfolge gelöscht bis zu',
+ 'Backup sent to' => 'Eine Sicherungskopie wurde gesandt an',
+ 'Bin List' => 'Lagerliste',
+ 'Books are open' => 'Die Bücher sind geöffnet',
+ 'Business Number' => 'Firmennummer',
+ 'Business deleted!' => 'Branche gelöscht!',
+ 'Business saved!' => 'Branche gespeichert!',
+ 'COGS' => 'Aufwand',
+ 'Cannot delete account!' => 'Konto kann nicht gelöscht werden!',
+ 'Cannot delete default account!' => 'Das Standard-Konto kann nicht gelöscht werden!',
+ 'Cannot save account!' => 'Konto kann nicht gespeichert werden!',
+ 'Cannot save defaults!' => 'Standardeinstellungen können nicht gespeichert werden!',
+ 'Cannot save preferences!' => 'Benutzereinstellungen können nicht gespeichert werden!',
+ 'Cannot set account for more than one of AR, AP or IC' => 'AR, AP und IC Konten können nicht auf andere Konten gleichzeitig eingestellt werden',
+ 'Cannot set multiple options for' => 'Mehr als eine Optionen nicht erlaubt für : ',
+ 'Cash' => 'vereinnahmt',
+ 'Chart of Accounts' => 'Kontenübersicht',
+ 'Close Books up to' => 'Die Bücher abschliessen bis zum',
+ 'Code' => 'Sprachcode',
+ 'Code missing!' => 'Sprachcode fehlt!',
+ 'Company' => 'Firmenname',
+ 'Confirm' => 'Bestätigung',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Continue' => 'Weiter',
+ 'Contra' => 'Gegenkonto',
+ 'Copy to COA' => 'In Kontenplan kopieren',
+ 'Cost Center' => 'Kostenstelle',
+ 'Credit' => 'Haben',
+ 'Credit Invoice' => 'Credit Invoice',
+ 'Customer Number' => 'Kundennummer',
+ 'Database Host' => 'Datenbank-Rechner',
+ 'Dataset' => 'Datenset',
+ 'Date Format' => 'Datumsformat',
+ 'Day' => 'Tag',
+ 'Days' => 'Tage',
+ 'Debit' => 'Soll',
+ 'Debit Invoice' => 'Debit Invoice',
+ 'Default Template' => 'Standardvorlage',
+ 'Defaults saved!' => 'Einstellungen gespeichert!',
+ 'Delete' => 'Löschen',
+ 'Delete Account' => 'Konto löschen',
+ 'Deleting a language will also delete the templates for the language' => 'Wenn die Sprache gelöscht wird werden auch die dazugehörigen Vorlagen gelöscht',
+ 'Department deleted!' => 'Abteilung gelöscht!',
+ 'Department saved!' => 'Abteilung gespeichert!',
+ 'Departments' => 'Abteilungen',
+ 'Description' => 'Beschreibung',
+ 'Description missing!' => 'Beschreibung fehlt!',
+ 'Discount' => 'Rabatt',
+ 'Dropdown Limit' => 'Auswahllistengrenze',
+ 'E-mail' => 'E-Mail',
+ 'E-mail address missing!' => 'E-Mail-Adresse fehlt!',
+ 'Edit' => 'Bearbeiten',
+ 'Edit Account' => 'Kontodaten bearbeiten',
+ 'Edit Business' => 'Branche bearbeiten',
+ 'Edit Department' => 'Abteilung bearbeiten',
+ 'Edit GIFI' => 'GIFI bearbeiten',
+ 'Edit Language' => 'Sprache bearbeiten',
+ 'Edit Preferences for' => 'Benutzereinstellungen bearbeiten für',
+ 'Edit SIC' => 'Euro-SIC bearbeiten',
+ 'Edit Template' => 'Vorlage bearbeiten',
+ 'Edit Warehouse' => 'Warenlager bearbeiten',
+ 'Employee Number' => 'Mitarbeiternummer',
+ 'Ends' => 'Abschluss',
+ 'Enforce transaction reversal for all dates' => 'Kontraeintragungen für jeden Zeitraum aktualisieren',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Durch Doppelpunkte getrennte Währungskürzel mit maximal 3 Buchstaben aufführen; die eigene Landeswährung zuerst (z.B. CHF:EUR:USD)',
+ 'Equity' => 'Passiva/Eigenkapital',
+ 'Every' => 'Jeden',
+ 'Expense' => 'Aufwand',
+ 'Expense/Asset' => 'Aufwand/Anlagen',
+ 'Fax' => 'Fax',
+ 'Foreign Exchange Gain' => 'Wechselkurserträge',
+ 'Foreign Exchange Loss' => 'Wechselkursverluste',
+ 'GIFI' => 'GIFI',
+ 'GIFI deleted!' => 'GIFI gelöscht!',
+ 'GIFI missing!' => 'GIFI fehlt!',
+ 'GIFI saved!' => 'GIFI gespeichert!',
+ 'GL' => 'Hauptbuch',
+ 'GL Reference Number' => 'Hauptbuchreferenz',
+ 'GL Transaction' => 'Hauptbuchbuchung',
+ 'Heading' => 'Ãœberschrift',
+ 'ID' => 'ID',
+ 'Include in drop-down menus' => 'In Aufklapp-Menü aufnehmen',
+ 'Income' => 'Ertrag',
+ 'Inventory' => 'Inventar',
+ 'Invoice' => 'Rechnung',
+ 'Is this a summary account to record' => 'Summenkonto für',
+ 'Job/Project Number' => 'Autrags-/Projektnummer',
+ 'Language' => 'Sprache',
+ 'Language deleted!' => 'Sprache gelöscht!',
+ 'Language saved!' => 'Sprache gespeichert!',
+ 'Languages' => 'Sprachen',
+ 'Last Numbers & Default Accounts' => 'Laufende Zähler und Standardkonten',
+ 'Liability' => 'Passiva/Mittelherkunft',
+ 'Licensed to' => 'Lizensiert für',
+ 'Link' => 'Verknüpfungen',
+ 'Menu Width' => 'Menübreite',
+ 'Method' => 'Abrechnungsmethode',
+ 'Month' => 'Monat',
+ 'Months' => 'Monate',
+ 'Name' => 'Name',
+ 'Next' => 'Nächste',
+ 'Next Number' => 'Nächste Nummer',
+ 'No' => 'Nein',
+ 'No email address for' => 'Keine E-Mailadresse für',
+ 'Non-tracking Items' => 'Nicht lagernde Artikel',
+ 'Number' => 'MWST-Nummer',
+ 'Number Format' => 'Zahlenformat',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Packliste',
+ 'Part Number' => 'Artikelnummer',
+ 'Password' => 'Passwort',
+ 'Password does not match!' => 'Passworteingabe nicht gleich!',
+ 'Payables' => 'Verbindlichkeiten',
+ 'Payment' => 'Belastung',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Lagerliste',
+ 'Posting' => 'Buchung',
+ 'Postscript' => 'Postscript',
+ 'Preferences saved!' => 'Benutzereinstellungen gespeichert!',
+ 'Print' => 'Drucken',
+ 'Printer' => 'Standardrucker',
+ 'Printing' => 'Druckt',
+ 'Process Transactions' => 'Buchungen erstellen',
+ 'Profit Center' => 'Profit-Center',
+ 'Purchase Order' => 'Einkaufsbestellung',
+ 'Purchase Order Number' => 'Einkaufsbestellnummer',
+ 'Purchase Orders' => 'Einkaufsbestellungen',
+ 'RFQ Number' => 'Einkaufsoffertennummer',
+ 'Rate' => '%',
+ 'Receivables' => 'Forderungen',
+ 'Recurring Transactions' => 'Wiederkehrende Buchungen',
+ 'Reference' => 'Referenz',
+ 'Remove Audit trail up to' => 'Revisionsnachfolge löschen bis zu',
+ 'Retained Earnings' => 'Verbliebenes Einkommen',
+ 'SIC deleted!' => 'Euro-SIC gelöscht!',
+ 'SIC saved!' => 'Euro-SIC gespeichert!',
+ 'Sales Invoice' => 'Ausgangsrechnung',
+ 'Sales Invoice/AR Transaction Number' => 'Verkaufsrechnung-/Buchungsnummer',
+ 'Sales Order' => 'Auftragsbestätigung',
+ 'Sales Order Number' => 'Auftragsbestätigungsnummer',
+ 'Sales Orders' => 'Auftragsbestätigungen',
+ 'Sales Quotation Number' => 'Offertennummer',
+ 'Save' => 'Speichern',
+ 'Save as new' => 'als neu speichern',
+ 'Saving' => 'Speichert',
+ 'Sending' => 'Senden',
+ 'Session Timeout' => 'Maximale Sitzungsdauer',
+ 'Signature' => 'Signatur',
+ 'Standard Industrial Codes' => 'Standard Industrie Norm',
+ 'Stylesheet' => 'Stilvorlage',
+ 'System Defaults' => 'System-Standard-Einstellungen',
+ 'Tax' => 'MWST',
+ 'Template saved!' => 'Druckvorlage gespeichert!',
+ 'Times' => 'mal',
+ 'Tracking Items' => 'Lagernde Artikel',
+ 'Transaction' => 'Buchung',
+ 'Transaction reversal enforced for all dates' => 'Fehleintragungen müssen für jeden Zeitraum mit einer Kontraeintragung ausgebessert werden',
+ 'Transaction reversal enforced up to' => 'Fehleintragungen können bis zu dem angenebenen Zeitraum nur mit einer Kontraeintragung ausgebessert werden',
+ 'Type of Business' => 'Rabattgruppe',
+ 'Update' => 'Erneuern',
+ 'User' => 'Datenbankbenutzer',
+ 'Vendor Invoice' => 'Einkaufsrechnung',
+ 'Vendor Invoice/AP Transaction Number' => 'Einkaufsrechnungs-/Buchungsnummer',
+ 'Vendor Number' => 'Lieferantennummer',
+ 'Version' => 'Version',
+ 'Warehouse deleted!' => 'Warenlager gelöscht!',
+ 'Warehouse saved!' => 'Warenlager gespeichert!',
+ 'Warehouses' => 'Warenlager',
+ 'Week' => 'Woche',
+ 'Weeks' => 'Wochen',
+ 'Weight Unit' => 'Gewichtseinheit',
+ 'Work Order' => 'Arbeitsblatt',
+ 'Year' => 'Jahr',
+ 'Yearend' => 'Jahresabschluss',
+ 'Yearend date missing!' => 'Datum für Jahresabschluss fehlt!',
+ 'Yearend posted!' => 'Jahresabschluss gespeichert!',
+ 'Yearend posting failed!' => 'Jahresabschluss nicht gebucht!',
+ 'Years' => 'Jahre',
+ 'Yes' => 'Ja',
+ 'account cannot be set to any other type of account' => 'Dieses Konto kann nicht auf andere Typen eingestellt werden',
+ 'done' => 'fertig',
+ 'failed' => 'fehlgeschlagen',
+ 'localhost' => 'localhost',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'konto_anlegen' => 'add_account',
+ 'branche_erfassen' => 'add_business',
+ 'abteilung_erfassen' => 'add_department',
+ 'sprache_erfassen' => 'add_language',
+ 'euro_sic_erfassen' => 'add_sic',
+ 'warenlager_erfassen' => 'add_warehouse',
+ 'weiter' => 'continue',
+ 'in_kontenplan_kopieren' => 'copy_to_coa',
+ 'löschen' => 'delete',
+ 'bearbeiten' => 'edit',
+ 'kontodaten_bearbeiten' => 'edit_account',
+ 'buchungen_erstellen' => 'process_transactions',
+ 'speichern' => 'save',
+ 'als_neu_speichern' => 'save_as_new',
+ 'erneuern' => 'update',
+};
+
+1;
+
diff --git a/locale/ch_utf/ap b/locale/ch_utf/ap
new file mode 100755
index 00000000..64195d6c
--- /dev/null
+++ b/locale/ch_utf/ap
@@ -0,0 +1,242 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Outstanding' => 'Offene Verbindlichkeiten',
+ 'AP Transaction' => 'Eingangsbuchung',
+ 'AP Transactions' => 'Eingangsbuchungen',
+ 'AR Outstanding' => 'Offene Forderungen',
+ 'AR Transaction' => 'Ausgangsbuchung',
+ 'AR Transactions' => 'Ausgangsbuchungen',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Add AP Transaction' => 'Eingangsbuchung erfassen',
+ 'Add AR Transaction' => 'Ausgangsbuchung erfassen',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Betrag',
+ 'Amount Due' => 'Betrag fällig',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Transaction' => 'Soll die Buchung wirklich gelöscht werden',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'Buchung kann nicht gelöscht werden!',
+ 'Cannot post payment for a closed period!' => 'Zahlung kann nicht gebucht werden, weil die Periode bereits abgeschlossen ist!',
+ 'Cannot post transaction for a closed period!' => 'Buchung kann nicht erfasst werden, weil die Periode bereits abgeschlossen ist!',
+ 'Cannot post transaction!' => 'Rechnung kann nicht gebucht werden!',
+ 'Cc' => 'E-Mailkopie',
+ 'Check' => 'Scheck',
+ 'Closed' => 'Geschlossen',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Continue' => 'Weiter',
+ 'Credit' => 'Haben',
+ 'Credit Limit' => 'Kreditlimite',
+ 'Curr' => 'Währung',
+ 'Currency' => 'Währung',
+ 'Current' => 'Aktuell',
+ 'Customer' => 'Kunde',
+ 'Customer missing!' => 'Kundenname fehlt!',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Date Paid' => 'Zahlungsdatum',
+ 'Day(s)' => 'Tage',
+ 'Debit' => 'Soll',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Delete' => 'Löschen',
+ 'Delete Schedule' => 'Zeitplan löschen',
+ 'Department' => 'Abteilung',
+ 'Description' => 'Beschreibung',
+ 'Detail' => 'Einzelheiten',
+ 'Due Date' => 'Fälligkeitsdatum',
+ 'Due Date missing!' => 'Fälligkeitsdatum fehlt!',
+ 'E-mail' => 'E-Mail',
+ 'E-mail message' => 'E-Mail-Nachricht ',
+ 'Edit AP Transaction' => 'Eingangsbuchung bearbeiten',
+ 'Edit AR Transaction' => 'Ausgangsbuchung bearbeiten',
+ 'Employee' => 'Verkäufer',
+ 'Every' => 'Jeden',
+ 'Exch' => 'Wkurs.',
+ 'Exchange Rate' => 'Wechselkurs',
+ 'Exchange rate for payment missing!' => 'Wechselkurs für Bezahlung fehlt!',
+ 'Exchange rate missing!' => 'Wechselkurs fehlt!',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'For' => 'für',
+ 'From' => 'Von',
+ 'ID' => 'ID',
+ 'Include Payment' => 'Bezahlung reinnehmen',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Invoice' => 'Rechnung',
+ 'Invoice Date' => 'Rechnungsdatum',
+ 'Invoice Date missing!' => 'Rechnungsdatum fehlt!',
+ 'Invoice Number' => 'Rechnungsnummer',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Manager' => 'Geschäftsführer',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Memo' => 'Notiz',
+ 'Message' => 'Nachricht',
+ 'Month' => 'Monat',
+ 'Month(s)' => 'Monat(e)',
+ 'Next Date' => 'Nächstes Datum',
+ 'No.' => 'Pos.',
+ 'Notes' => 'Bemerkungen',
+ 'Nothing to print!' => 'Es wurde nichts gedruckt!',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Artikelnummer',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Open' => 'Offen',
+ 'Order' => 'Bestellung',
+ 'Order Number' => 'Bestellnummer',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ihre Bestellnummer',
+ 'Paid' => 'Bezahlt',
+ 'Payment date missing!' => 'Zahlungsdatum fehlt!',
+ 'Payments' => 'Zahlungen',
+ 'Period' => 'Zeitraum',
+ 'Post' => 'Buchen',
+ 'Post as new' => 'Als neu buchen',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Drucken',
+ 'Print and Post' => 'Drucken und Buchen',
+ 'Print and Post as new' => 'Drucken und als neu buchen',
+ 'Printed' => 'Gedruckt',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Dieses Projekt ist nicht in der Datenbank!',
+ 'Quarter' => 'Quartal',
+ 'Receipt' => 'Quittung',
+ 'Recurring Transaction' => 'Wiederkehrende Buchung',
+ 'Reference' => 'Referenz',
+ 'Remaining' => 'Rest',
+ 'Repeat' => 'Wiederholen',
+ 'Sales Invoice.' => 'Ausgangsrechnung.',
+ 'Salesperson' => 'Verkäufer',
+ 'Save Schedule' => 'Zeitplan speichern',
+ 'Schedule' => 'Buchungstermine',
+ 'Scheduled' => 'geplant',
+ 'Screen' => 'Bildschirm',
+ 'Select a Printer!' => 'Drucker auswählen!',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
+ 'Select payment' => 'Zahlung auswählen',
+ 'Select postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Ship to' => 'Lieferung an',
+ 'Ship via' => 'Versandart',
+ 'Shipping Point' => 'Lieferort',
+ 'Source' => 'Beleg',
+ 'Startdate' => 'Eintrittsdatum',
+ 'Subject' => 'Betreff',
+ 'Subtotal' => 'Zwischensumme',
+ 'Summary' => 'Zusammenfassung',
+ 'Tax' => 'MWST',
+ 'Tax Included' => 'MWST im Preis enthalten',
+ 'Till' => 'Kasse',
+ 'To' => 'Bis',
+ 'Total' => 'Total',
+ 'Transaction' => 'Buchung',
+ 'Transaction deleted!' => 'Buchung gelöscht!',
+ 'Transaction posted!' => 'Buchung getätigt!',
+ 'Update' => 'Erneuern',
+ 'Vendor' => 'Lieferant',
+ 'Vendor Invoice.' => 'Einkaufsrechnung.',
+ 'Vendor missing!' => 'Lieferant fehlt!',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Warning!' => 'Warnung!',
+ 'Week(s)' => 'Woche(n)',
+ 'Year' => 'Jahr',
+ 'Year(s)' => 'Jahr(e)',
+ 'Yes' => 'Ja',
+ 'You are posting an existing transaction!' => 'Sie buchen eine existierende Buchung',
+ 'You are printing and posting an existing transaction!' => 'Sie drucken und buchen eine bereits bestehende Buchung',
+ 'You are printing and saving an existing order' => 'Sie drucken und speichern einen existierenden Auftrag',
+ 'You are printing and saving an existing quotation' => 'Sie drucken und speichern eine bereits bestehende Offerte',
+ 'You are saving an existing order' => 'Sie speichern einen bereits bestehenden Auftrag',
+ 'You are saving an existing quotation' => 'Sie speichern eine vorhandene Offerte',
+ 'for' => 'für',
+ 'sent' => 'verschickt',
+ 'time(s)' => 'mal',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'eingangsbuchung' => 'ap_transaction',
+ 'ausgangsbuchung' => 'ar_transaction',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'zeitplan_löschen' => 'delete_schedule',
+ 'buchen' => 'post',
+ 'als_neu_buchen' => 'post_as_new',
+ 'drucken' => 'print',
+ 'drucken_und_buchen' => 'print_and_post',
+ 'drucken_und_als_neu_buchen' => 'print_and_post_as_new',
+ 'ausgangsrechnung_' => 'sales_invoice_',
+ 'zeitplan_speichern' => 'save_schedule',
+ 'buchungstermine' => 'schedule',
+ 'lieferung_an' => 'ship_to',
+ 'erneuern' => 'update',
+ 'einkaufsrechnung_' => 'vendor_invoice_',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/ch_utf/ar b/locale/ch_utf/ar
new file mode 100755
index 00000000..64195d6c
--- /dev/null
+++ b/locale/ch_utf/ar
@@ -0,0 +1,242 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Outstanding' => 'Offene Verbindlichkeiten',
+ 'AP Transaction' => 'Eingangsbuchung',
+ 'AP Transactions' => 'Eingangsbuchungen',
+ 'AR Outstanding' => 'Offene Forderungen',
+ 'AR Transaction' => 'Ausgangsbuchung',
+ 'AR Transactions' => 'Ausgangsbuchungen',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Add AP Transaction' => 'Eingangsbuchung erfassen',
+ 'Add AR Transaction' => 'Ausgangsbuchung erfassen',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Betrag',
+ 'Amount Due' => 'Betrag fällig',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Transaction' => 'Soll die Buchung wirklich gelöscht werden',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'Buchung kann nicht gelöscht werden!',
+ 'Cannot post payment for a closed period!' => 'Zahlung kann nicht gebucht werden, weil die Periode bereits abgeschlossen ist!',
+ 'Cannot post transaction for a closed period!' => 'Buchung kann nicht erfasst werden, weil die Periode bereits abgeschlossen ist!',
+ 'Cannot post transaction!' => 'Rechnung kann nicht gebucht werden!',
+ 'Cc' => 'E-Mailkopie',
+ 'Check' => 'Scheck',
+ 'Closed' => 'Geschlossen',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Continue' => 'Weiter',
+ 'Credit' => 'Haben',
+ 'Credit Limit' => 'Kreditlimite',
+ 'Curr' => 'Währung',
+ 'Currency' => 'Währung',
+ 'Current' => 'Aktuell',
+ 'Customer' => 'Kunde',
+ 'Customer missing!' => 'Kundenname fehlt!',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Date Paid' => 'Zahlungsdatum',
+ 'Day(s)' => 'Tage',
+ 'Debit' => 'Soll',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Delete' => 'Löschen',
+ 'Delete Schedule' => 'Zeitplan löschen',
+ 'Department' => 'Abteilung',
+ 'Description' => 'Beschreibung',
+ 'Detail' => 'Einzelheiten',
+ 'Due Date' => 'Fälligkeitsdatum',
+ 'Due Date missing!' => 'Fälligkeitsdatum fehlt!',
+ 'E-mail' => 'E-Mail',
+ 'E-mail message' => 'E-Mail-Nachricht ',
+ 'Edit AP Transaction' => 'Eingangsbuchung bearbeiten',
+ 'Edit AR Transaction' => 'Ausgangsbuchung bearbeiten',
+ 'Employee' => 'Verkäufer',
+ 'Every' => 'Jeden',
+ 'Exch' => 'Wkurs.',
+ 'Exchange Rate' => 'Wechselkurs',
+ 'Exchange rate for payment missing!' => 'Wechselkurs für Bezahlung fehlt!',
+ 'Exchange rate missing!' => 'Wechselkurs fehlt!',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'For' => 'für',
+ 'From' => 'Von',
+ 'ID' => 'ID',
+ 'Include Payment' => 'Bezahlung reinnehmen',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Invoice' => 'Rechnung',
+ 'Invoice Date' => 'Rechnungsdatum',
+ 'Invoice Date missing!' => 'Rechnungsdatum fehlt!',
+ 'Invoice Number' => 'Rechnungsnummer',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Manager' => 'Geschäftsführer',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Memo' => 'Notiz',
+ 'Message' => 'Nachricht',
+ 'Month' => 'Monat',
+ 'Month(s)' => 'Monat(e)',
+ 'Next Date' => 'Nächstes Datum',
+ 'No.' => 'Pos.',
+ 'Notes' => 'Bemerkungen',
+ 'Nothing to print!' => 'Es wurde nichts gedruckt!',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Artikelnummer',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Open' => 'Offen',
+ 'Order' => 'Bestellung',
+ 'Order Number' => 'Bestellnummer',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ihre Bestellnummer',
+ 'Paid' => 'Bezahlt',
+ 'Payment date missing!' => 'Zahlungsdatum fehlt!',
+ 'Payments' => 'Zahlungen',
+ 'Period' => 'Zeitraum',
+ 'Post' => 'Buchen',
+ 'Post as new' => 'Als neu buchen',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Drucken',
+ 'Print and Post' => 'Drucken und Buchen',
+ 'Print and Post as new' => 'Drucken und als neu buchen',
+ 'Printed' => 'Gedruckt',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Dieses Projekt ist nicht in der Datenbank!',
+ 'Quarter' => 'Quartal',
+ 'Receipt' => 'Quittung',
+ 'Recurring Transaction' => 'Wiederkehrende Buchung',
+ 'Reference' => 'Referenz',
+ 'Remaining' => 'Rest',
+ 'Repeat' => 'Wiederholen',
+ 'Sales Invoice.' => 'Ausgangsrechnung.',
+ 'Salesperson' => 'Verkäufer',
+ 'Save Schedule' => 'Zeitplan speichern',
+ 'Schedule' => 'Buchungstermine',
+ 'Scheduled' => 'geplant',
+ 'Screen' => 'Bildschirm',
+ 'Select a Printer!' => 'Drucker auswählen!',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
+ 'Select payment' => 'Zahlung auswählen',
+ 'Select postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Ship to' => 'Lieferung an',
+ 'Ship via' => 'Versandart',
+ 'Shipping Point' => 'Lieferort',
+ 'Source' => 'Beleg',
+ 'Startdate' => 'Eintrittsdatum',
+ 'Subject' => 'Betreff',
+ 'Subtotal' => 'Zwischensumme',
+ 'Summary' => 'Zusammenfassung',
+ 'Tax' => 'MWST',
+ 'Tax Included' => 'MWST im Preis enthalten',
+ 'Till' => 'Kasse',
+ 'To' => 'Bis',
+ 'Total' => 'Total',
+ 'Transaction' => 'Buchung',
+ 'Transaction deleted!' => 'Buchung gelöscht!',
+ 'Transaction posted!' => 'Buchung getätigt!',
+ 'Update' => 'Erneuern',
+ 'Vendor' => 'Lieferant',
+ 'Vendor Invoice.' => 'Einkaufsrechnung.',
+ 'Vendor missing!' => 'Lieferant fehlt!',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Warning!' => 'Warnung!',
+ 'Week(s)' => 'Woche(n)',
+ 'Year' => 'Jahr',
+ 'Year(s)' => 'Jahr(e)',
+ 'Yes' => 'Ja',
+ 'You are posting an existing transaction!' => 'Sie buchen eine existierende Buchung',
+ 'You are printing and posting an existing transaction!' => 'Sie drucken und buchen eine bereits bestehende Buchung',
+ 'You are printing and saving an existing order' => 'Sie drucken und speichern einen existierenden Auftrag',
+ 'You are printing and saving an existing quotation' => 'Sie drucken und speichern eine bereits bestehende Offerte',
+ 'You are saving an existing order' => 'Sie speichern einen bereits bestehenden Auftrag',
+ 'You are saving an existing quotation' => 'Sie speichern eine vorhandene Offerte',
+ 'for' => 'für',
+ 'sent' => 'verschickt',
+ 'time(s)' => 'mal',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'eingangsbuchung' => 'ap_transaction',
+ 'ausgangsbuchung' => 'ar_transaction',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'zeitplan_löschen' => 'delete_schedule',
+ 'buchen' => 'post',
+ 'als_neu_buchen' => 'post_as_new',
+ 'drucken' => 'print',
+ 'drucken_und_buchen' => 'print_and_post',
+ 'drucken_und_als_neu_buchen' => 'print_and_post_as_new',
+ 'ausgangsrechnung_' => 'sales_invoice_',
+ 'zeitplan_speichern' => 'save_schedule',
+ 'buchungstermine' => 'schedule',
+ 'lieferung_an' => 'ship_to',
+ 'erneuern' => 'update',
+ 'einkaufsrechnung_' => 'vendor_invoice_',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/ch_utf/arap b/locale/ch_utf/arap
new file mode 100755
index 00000000..86337ac9
--- /dev/null
+++ b/locale/ch_utf/arap
@@ -0,0 +1,76 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Address' => 'Adresse',
+ 'Bcc' => 'Bcc',
+ 'Cc' => 'E-Mailkopie',
+ 'Continue' => 'Weiter',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Day(s)' => 'Tage',
+ 'Delete Schedule' => 'Zeitplan löschen',
+ 'Description' => 'Beschreibung',
+ 'E-mail' => 'E-Mail',
+ 'E-mail message' => 'E-Mail-Nachricht ',
+ 'Every' => 'Jeden',
+ 'For' => 'für',
+ 'Include Payment' => 'Bezahlung reinnehmen',
+ 'Message' => 'Nachricht',
+ 'Month(s)' => 'Monat(e)',
+ 'Next Date' => 'Nächstes Datum',
+ 'Number' => 'Artikelnummer',
+ 'Print' => 'Drucken',
+ 'Project not on file!' => 'Dieses Projekt ist nicht in der Datenbank!',
+ 'Recurring Transaction' => 'Wiederkehrende Buchung',
+ 'Reference' => 'Referenz',
+ 'Repeat' => 'Wiederholen',
+ 'Save Schedule' => 'Zeitplan speichern',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
+ 'Startdate' => 'Eintrittsdatum',
+ 'Subject' => 'Betreff',
+ 'To' => 'Bis',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Warning!' => 'Warnung!',
+ 'Week(s)' => 'Woche(n)',
+ 'Year(s)' => 'Jahr(e)',
+ 'You are posting an existing transaction!' => 'Sie buchen eine existierende Buchung',
+ 'You are printing and posting an existing transaction!' => 'Sie drucken und buchen eine bereits bestehende Buchung',
+ 'You are printing and saving an existing order' => 'Sie drucken und speichern einen existierenden Auftrag',
+ 'You are printing and saving an existing quotation' => 'Sie drucken und speichern eine bereits bestehende Offerte',
+ 'You are saving an existing order' => 'Sie speichern einen bereits bestehenden Auftrag',
+ 'You are saving an existing quotation' => 'Sie speichern eine vorhandene Offerte',
+ 'for' => 'für',
+ 'sent' => 'verschickt',
+ 'time(s)' => 'mal',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'weiter' => 'continue',
+ 'zeitplan_löschen' => 'delete_schedule',
+ 'zeitplan_speichern' => 'save_schedule',
+};
+
+1;
+
diff --git a/locale/ch_utf/arapprn b/locale/ch_utf/arapprn
new file mode 100755
index 00000000..084c8242
--- /dev/null
+++ b/locale/ch_utf/arapprn
@@ -0,0 +1,36 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Amount' => 'Betrag',
+ 'Continue' => 'Weiter',
+ 'Date' => 'Datum',
+ 'Memo' => 'Notiz',
+ 'Nothing to print!' => 'Es wurde nichts gedruckt!',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'Postscript',
+ 'Printed' => 'Gedruckt',
+ 'Scheduled' => 'geplant',
+ 'Screen' => 'Bildschirm',
+ 'Select a Printer!' => 'Drucker auswählen!',
+ 'Select payment' => 'Zahlung auswählen',
+ 'Select postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Source' => 'Beleg',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'weiter' => 'continue',
+};
+
+1;
+
diff --git a/locale/ch_utf/bp b/locale/ch_utf/bp
new file mode 100755
index 00000000..26e9316d
--- /dev/null
+++ b/locale/ch_utf/bp
@@ -0,0 +1,71 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Sollen die markierten Eintragungen gelöscht werden?',
+ 'Bin Lists' => 'Lagerlisten',
+ 'Cannot remove files!' => 'Dateien können nicht gelöscht werden!',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Continue' => 'Weiter',
+ 'Current' => 'Aktuell',
+ 'Customer' => 'Kunde',
+ 'Date' => 'Datum',
+ 'Employee' => 'Verkäufer',
+ 'From' => 'Von',
+ 'ID' => 'ID',
+ 'Invoice' => 'Rechnung',
+ 'Invoice Number' => 'Rechnungsnummer',
+ 'Marked entries printed!' => 'Markierte Einträge gedruckt!',
+ 'Month' => 'Monat',
+ 'Order' => 'Bestellung',
+ 'Order Number' => 'Bestellnummer',
+ 'Packing Lists' => 'Packlisten',
+ 'Period' => 'Zeitraum',
+ 'Pick Lists' => 'Lagerlisten',
+ 'Print' => 'Drucken',
+ 'Printing' => 'Druckt',
+ 'Purchase Orders' => 'Einkaufsbestellungen',
+ 'Quarter' => 'Quartal',
+ 'Quotation' => 'Offerte',
+ 'Quotation Number' => 'Offertenummer',
+ 'Quotations' => 'Offerten',
+ 'RFQs' => 'Offerte-Anfragen',
+ 'Remove' => 'Entfernen',
+ 'Removed spoolfiles!' => 'Spoolfiles gelöscht!',
+ 'Removing marked entries from queue ...' => 'Markierte Einträge gelöscht ...',
+ 'Sales Invoices' => 'Ausgangsrechnungen',
+ 'Sales Orders' => 'Auftragsbestätigungen',
+ 'Select all' => 'Alle auswählen',
+ 'Spoolfile' => 'Spoolfile',
+ 'Time Cards' => 'Stempelkarten',
+ 'To' => 'Bis',
+ 'Vendor' => 'Lieferant',
+ 'Work Orders' => 'Arbeitsblätter',
+ 'Year' => 'Jahr',
+ 'Yes' => 'Ja',
+ 'done' => 'fertig',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'weiter' => 'continue',
+ 'drucken' => 'print',
+ 'entfernen' => 'remove',
+ 'alle_auswählen' => 'select_all',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/ch_utf/ca b/locale/ch_utf/ca
new file mode 100755
index 00000000..70b784fe
--- /dev/null
+++ b/locale/ch_utf/ca
@@ -0,0 +1,62 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AR/AP' => 'OF/OV',
+ 'Account' => 'Konto',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Balance' => 'Bilanz',
+ 'Chart of Accounts' => 'Kontenübersicht',
+ 'Credit' => 'Haben',
+ 'Current' => 'Aktuell',
+ 'Date' => 'Datum',
+ 'Debit' => 'Soll',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Department' => 'Abteilung',
+ 'Description' => 'Beschreibung',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'From' => 'Von',
+ 'GIFI' => 'GIFI',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'List Transactions' => 'Buchungsliste',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Month' => 'Monat',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Period' => 'Zeitraum',
+ 'Project Number' => 'Projektnummer',
+ 'Quarter' => 'Quartal',
+ 'R' => 'R',
+ 'Reference' => 'Referenz',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Subtotal' => 'Zwischensumme',
+ 'To' => 'Bis',
+ 'Year' => 'Jahr',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'buchungsliste' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/ch_utf/cp b/locale/ch_utf/cp
new file mode 100755
index 00000000..5c750f7d
--- /dev/null
+++ b/locale/ch_utf/cp
@@ -0,0 +1,151 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP' => 'Verbindlichkeiten',
+ 'AR' => 'Forderungen',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Address' => 'Adresse',
+ 'All' => 'Alle',
+ 'Amount' => 'Betrag',
+ 'Amount Due' => 'Betrag fällig',
+ 'Bcc' => 'Bcc',
+ 'Cannot post Payment!' => 'Zahlungseingang kann nicht gebucht werden!',
+ 'Cannot post Receipt!' => 'Quittung kann nicht gebucht werden!',
+ 'Cannot post payment for a closed period!' => 'Zahlung kann nicht gebucht werden, weil die Periode bereits abgeschlossen ist!',
+ 'Cc' => 'E-Mailkopie',
+ 'Continue' => 'Weiter',
+ 'Currency' => 'Währung',
+ 'Customer' => 'Kunde',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Date missing!' => 'Datum fehlt!',
+ 'Day(s)' => 'Tage',
+ 'Delete Schedule' => 'Zeitplan löschen',
+ 'Department' => 'Abteilung',
+ 'Deposit' => 'Gutschrift',
+ 'Description' => 'Beschreibung',
+ 'Due Date' => 'Fälligkeitsdatum',
+ 'E-mail' => 'E-Mail',
+ 'E-mail message' => 'E-Mail-Nachricht ',
+ 'Every' => 'Jeden',
+ 'Exchange Rate' => 'Wechselkurs',
+ 'Exchange rate missing!' => 'Wechselkurs fehlt!',
+ 'For' => 'für',
+ 'From' => 'Von',
+ 'Include Payment' => 'Bezahlung reinnehmen',
+ 'Invoice' => 'Rechnung',
+ 'Invoices' => 'Rechnungen',
+ 'Language' => 'Sprache',
+ 'Memo' => 'Notiz',
+ 'Message' => 'Nachricht',
+ 'Month(s)' => 'Monat(e)',
+ 'Next Date' => 'Nächstes Datum',
+ 'Nothing open!' => 'Nichts geöffnet!',
+ 'Number' => 'Artikelnummer',
+ 'PDF' => 'PDF',
+ 'Payment' => 'Belastung',
+ 'Payment posted!' => 'Zahlung gebucht!',
+ 'Payments' => 'Zahlungen',
+ 'Payments posted!' => 'Bezahlungen gebucht!',
+ 'Post' => 'Buchen',
+ 'Posting failed!' => 'Buchen fehlgeschlagen!',
+ 'Postscript' => 'Postscript',
+ 'Prepayment' => 'Anzahlung',
+ 'Print' => 'Drucken',
+ 'Project not on file!' => 'Dieses Projekt ist nicht in der Datenbank!',
+ 'Receipt' => 'Quittung',
+ 'Receipt posted!' => 'Einnahme gebucht!',
+ 'Receipts' => 'Quittungen',
+ 'Recurring Transaction' => 'Wiederkehrende Buchung',
+ 'Reference' => 'Referenz',
+ 'Repeat' => 'Wiederholen',
+ 'Save Schedule' => 'Zeitplan speichern',
+ 'Screen' => 'Bildschirm',
+ 'Select' => 'Auswählen',
+ 'Select all' => 'Alle auswählen',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
+ 'Select postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Source' => 'Beleg',
+ 'Startdate' => 'Eintrittsdatum',
+ 'Subject' => 'Betreff',
+ 'To' => 'Bis',
+ 'Update' => 'Erneuern',
+ 'Vendor' => 'Lieferant',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Warning!' => 'Warnung!',
+ 'Week(s)' => 'Woche(n)',
+ 'Year(s)' => 'Jahr(e)',
+ 'You are posting an existing transaction!' => 'Sie buchen eine existierende Buchung',
+ 'You are printing and posting an existing transaction!' => 'Sie drucken und buchen eine bereits bestehende Buchung',
+ 'You are printing and saving an existing order' => 'Sie drucken und speichern einen existierenden Auftrag',
+ 'You are printing and saving an existing quotation' => 'Sie drucken und speichern eine bereits bestehende Offerte',
+ 'You are saving an existing order' => 'Sie speichern einen bereits bestehenden Auftrag',
+ 'You are saving an existing quotation' => 'Sie speichern eine vorhandene Offerte',
+ 'for' => 'für',
+ 'sent' => 'verschickt',
+ 'time(s)' => 'mal',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'weiter' => 'continue',
+ 'zeitplan_löschen' => 'delete_schedule',
+ 'buchen' => 'post',
+ 'drucken' => 'print',
+ 'zeitplan_speichern' => 'save_schedule',
+ 'alle_auswählen' => 'select_all',
+ 'erneuern' => 'update',
+};
+
+1;
+
diff --git a/locale/ch_utf/ct b/locale/ch_utf/ct
new file mode 100755
index 00000000..7a1ab563
--- /dev/null
+++ b/locale/ch_utf/ct
@@ -0,0 +1,192 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Transaction' => 'Eingangsbuchung',
+ 'AP Transactions' => 'Eingangsbuchungen',
+ 'AR Transaction' => 'Ausgangsbuchung',
+ 'AR Transactions' => 'Ausgangsbuchungen',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Active' => 'Aktiv',
+ 'Add Customer' => 'Kunde erfassen',
+ 'Add Vendor' => 'Lieferant erfassen',
+ 'Address' => 'Adresse',
+ 'All' => 'Alle',
+ 'Amount' => 'Betrag',
+ 'BIC' => 'BIC',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Rechnungsadresse',
+ 'Break' => 'Umbruch',
+ 'Cannot delete customer!' => 'Kunde kann nicht gelöscht werden!',
+ 'Cannot delete vendor!' => 'Lieferant kann nicht gelöscht werden!',
+ 'Cc' => 'E-Mailkopie',
+ 'City' => 'Ort',
+ 'Closed' => 'Geschlossen',
+ 'Company Name' => 'Firmenname',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Weiter',
+ 'Cost' => 'Kosten',
+ 'Could not save pricelist!' => 'Preisliste konnte nicht gespeichert werden!',
+ 'Country' => 'Land',
+ 'Credit Limit' => 'Kreditlimite',
+ 'Curr' => 'Währung',
+ 'Currency' => 'Währung',
+ 'Customer History' => 'Alle Belege für Kunde',
+ 'Customer Number' => 'Kundennummer',
+ 'Customer deleted!' => 'Kunde gelöscht!',
+ 'Customer saved!' => 'Kunde gespeichert!',
+ 'Customers' => 'Kunden',
+ 'Delete' => 'Löschen',
+ 'Delivery Date' => 'Lieferdatum',
+ 'Description' => 'Beschreibung',
+ 'Detail' => 'Einzelheiten',
+ 'Discount' => 'Rabatt',
+ 'E-mail' => 'E-Mail',
+ 'Edit Customer' => 'Kundendaten bearbeiten',
+ 'Edit Vendor' => 'Lieferantendaten bearbeiten',
+ 'Employee' => 'Verkäufer',
+ 'Enddate' => 'Austrittsdatum',
+ 'Fax' => 'Fax',
+ 'From' => 'Von',
+ 'GIFI' => 'GIFI',
+ 'Group' => 'Warengruppe',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Inactive' => 'Inaktiv',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Invoice' => 'Rechnung',
+ 'Item already on pricelist!' => 'Artikel ist bereits in der Preisliste!',
+ 'Item not on file!' => 'Dieser Artikel ist nicht in der Datenbank!',
+ 'Language' => 'Sprache',
+ 'Leadtime' => 'Vorlaufzeit',
+ 'Manager' => 'Geschäftsführer',
+ 'Name' => 'Name',
+ 'Name missing!' => 'Name fehlt!',
+ 'No.' => 'Pos.',
+ 'Notes' => 'Bemerkungen',
+ 'Number' => 'Artikelnummer',
+ 'Open' => 'Offen',
+ 'Order' => 'Bestellung',
+ 'Orphaned' => 'nie benutzt',
+ 'POS' => 'Kasse',
+ 'Part Number' => 'Artikelnummer',
+ 'Phone' => 'Tel.',
+ 'Pricegroup' => 'Preisgruppe',
+ 'Pricelist' => 'Preisliste',
+ 'Project Number' => 'Projektnummer',
+ 'Purchase Order' => 'Einkaufsbestellung',
+ 'Purchase Orders' => 'Einkaufsbestellungen',
+ 'Qty' => 'Menge',
+ 'Quotation' => 'Offerte',
+ 'Quotations' => 'Offerten',
+ 'RFQ' => 'Offertanfrage',
+ 'Request for Quotations' => 'Offertenanfragen',
+ 'SIC' => 'Euro-SIC',
+ 'SKU' => 'Lagerhaltungseinheit',
+ 'Sales Invoice' => 'Ausgangsrechnung',
+ 'Sales Invoices' => 'Ausgangsrechnungen',
+ 'Sales Order' => 'Auftragsbestätigung',
+ 'Sales Orders' => 'Auftragsbestätigungen',
+ 'Salesperson' => 'Verkäufer',
+ 'Save' => 'Speichern',
+ 'Save Pricelist' => 'Preisliste speichern',
+ 'Save as new' => 'als neu speichern',
+ 'Search' => 'Suchen',
+ 'Select items' => 'Bitte wählen Sie aus',
+ 'Sell Price' => 'Verkaufspreis',
+ 'Serial Number' => 'Seriennummer',
+ 'Shipping Address' => 'Lieferanschrift',
+ 'Startdate' => 'Eintrittsdatum',
+ 'State' => 'Zustand',
+ 'State/Province' => 'Kanton',
+ 'Sub-contract GIFI' => 'Unterlieferant GIFI',
+ 'Subtotal' => 'Zwischensumme',
+ 'Summary' => 'Zusammenfassung',
+ 'Tax' => 'MWST',
+ 'Tax Account' => 'MWST-Konto',
+ 'Tax Included' => 'MWST im Preis enthalten',
+ 'Tax Number' => 'MWST-Nummer',
+ 'Tax Number / SSN' => 'MWST-Nummer',
+ 'Taxable' => 'MWST-pflichtig',
+ 'Terms' => 'Zahlungsbedingungen',
+ 'To' => 'Bis',
+ 'Total' => 'Total',
+ 'Type of Business' => 'Rabattgruppe',
+ 'Unit' => 'Einheit',
+ 'Update' => 'Erneuern',
+ 'Vendor History' => 'Alle Belege für Lieferant',
+ 'Vendor Invoice' => 'Einkaufsrechnung',
+ 'Vendor Invoices' => 'Einkaufsrechnungen',
+ 'Vendor Number' => 'Lieferantennummer',
+ 'Vendor deleted!' => 'Lieferant gelöscht!',
+ 'Vendor saved!' => 'Lieferant gespeichert!',
+ 'Vendors' => 'Lieferanten',
+ 'Zip/Postal Code' => 'PLZ',
+ 'days' => 'Tage',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'eingangsbuchung' => 'ap_transaction',
+ 'ausgangsbuchung' => 'ar_transaction',
+ 'kunde_erfassen' => 'add_customer',
+ 'lieferant_erfassen' => 'add_vendor',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'kasse' => 'pos',
+ 'preisliste' => 'pricelist',
+ 'einkaufsbestellung' => 'purchase_order',
+ 'offerte' => 'quotation',
+ 'offertanfrage' => 'rfq',
+ 'ausgangsrechnung' => 'sales_invoice',
+ 'auftragsbestätigung' => 'sales_order',
+ 'speichern' => 'save',
+ 'preisliste_speichern' => 'save_pricelist',
+ 'als_neu_speichern' => 'save_as_new',
+ 'erneuern' => 'update',
+ 'einkaufsrechnung' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/ch_utf/gl b/locale/ch_utf/gl
new file mode 100755
index 00000000..bdd61a30
--- /dev/null
+++ b/locale/ch_utf/gl
@@ -0,0 +1,187 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Transaction' => 'Eingangsbuchung',
+ 'AR Transaction' => 'Ausgangsbuchung',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Add Cash Transfer Transaction' => 'Zahlungseingang buchen',
+ 'Add General Ledger Transaction' => 'Buchung im Hauptbuch erfassen',
+ 'Address' => 'Adresse',
+ 'All' => 'Alle',
+ 'Amount' => 'Betrag',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Transaction' => 'Soll die Buchung wirklich gelöscht werden',
+ 'Asset' => 'Aktiva/Mittelverwendung',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Balance' => 'Bilanz',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'Buchung kann nicht gelöscht werden!',
+ 'Cannot post transaction for a closed period!' => 'Buchung kann nicht erfasst werden, weil die Periode bereits abgeschlossen ist!',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => 'Sie können eine Buchung mit Aktiva und Passiva nicht auf das selbe Konto buchen!',
+ 'Cannot post transaction!' => 'Rechnung kann nicht gebucht werden!',
+ 'Cc' => 'E-Mailkopie',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Continue' => 'Weiter',
+ 'Credit' => 'Haben',
+ 'Current' => 'Aktuell',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Day(s)' => 'Tage',
+ 'Debit' => 'Soll',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Delete' => 'Löschen',
+ 'Delete Schedule' => 'Zeitplan löschen',
+ 'Department' => 'Abteilung',
+ 'Description' => 'Beschreibung',
+ 'E-mail' => 'E-Mail',
+ 'E-mail message' => 'E-Mail-Nachricht ',
+ 'Edit Cash Transfer Transaction' => 'Ãœberweisung bearbeiten',
+ 'Edit General Ledger Transaction' => 'Buchung im Hauptbuch bearbeiten',
+ 'Equity' => 'Passiva/Eigenkapital',
+ 'Every' => 'Jeden',
+ 'Expense' => 'Aufwand',
+ 'FX' => 'FX',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'For' => 'für',
+ 'From' => 'Von',
+ 'GIFI' => 'GIFI',
+ 'GL Transaction' => 'Hauptbuchbuchung',
+ 'General Ledger' => 'Hauptbuch',
+ 'ID' => 'ID',
+ 'Include Payment' => 'Bezahlung reinnehmen',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Income' => 'Ertrag',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Liability' => 'Passiva/Mittelherkunft',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Memo' => 'Notiz',
+ 'Message' => 'Nachricht',
+ 'Month' => 'Monat',
+ 'Month(s)' => 'Monat(e)',
+ 'Next Date' => 'Nächstes Datum',
+ 'Notes' => 'Bemerkungen',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Artikelnummer',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Out of balance transaction!' => 'Soll und Haben sind nicht gleich!',
+ 'Period' => 'Zeitraum',
+ 'Post' => 'Buchen',
+ 'Post as new' => 'Als neu buchen',
+ 'Print' => 'Drucken',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Dieses Projekt ist nicht in der Datenbank!',
+ 'Quarter' => 'Quartal',
+ 'R' => 'R',
+ 'Recurring Transaction' => 'Wiederkehrende Buchung',
+ 'Reference' => 'Referenz',
+ 'Repeat' => 'Wiederholen',
+ 'Reports' => 'Berichte',
+ 'Sales Invoice ' => 'Ausgangsrechnung ',
+ 'Save Schedule' => 'Zeitplan speichern',
+ 'Schedule' => 'Buchungstermine',
+ 'Scheduled' => 'geplant',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Source' => 'Beleg',
+ 'Startdate' => 'Eintrittsdatum',
+ 'Subject' => 'Betreff',
+ 'Subtotal' => 'Zwischensumme',
+ 'To' => 'Bis',
+ 'Transaction Date missing!' => 'Buchungsdatum fehlt!',
+ 'Transaction deleted!' => 'Buchung gelöscht!',
+ 'Transaction posted!' => 'Buchung getätigt!',
+ 'Update' => 'Erneuern',
+ 'Vendor Invoice ' => 'Einkaufsrechnung ',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Warning!' => 'Warnung!',
+ 'Week(s)' => 'Woche(n)',
+ 'Year' => 'Jahr',
+ 'Year(s)' => 'Jahr(e)',
+ 'Yes' => 'Ja',
+ 'You are posting an existing transaction!' => 'Sie buchen eine existierende Buchung',
+ 'You are printing and posting an existing transaction!' => 'Sie drucken und buchen eine bereits bestehende Buchung',
+ 'You are printing and saving an existing order' => 'Sie drucken und speichern einen existierenden Auftrag',
+ 'You are printing and saving an existing quotation' => 'Sie drucken und speichern eine bereits bestehende Offerte',
+ 'You are saving an existing order' => 'Sie speichern einen bereits bestehenden Auftrag',
+ 'You are saving an existing quotation' => 'Sie speichern eine vorhandene Offerte',
+ 'for' => 'für',
+ 'sent' => 'verschickt',
+ 'time(s)' => 'mal',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'eingangsbuchung' => 'ap_transaction',
+ 'ausgangsbuchung' => 'ar_transaction',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'zeitplan_löschen' => 'delete_schedule',
+ 'hauptbuchbuchung' => 'gl_transaction',
+ 'buchen' => 'post',
+ 'als_neu_buchen' => 'post_as_new',
+ 'ausgangsrechnung_' => 'sales_invoice_',
+ 'zeitplan_speichern' => 'save_schedule',
+ 'buchungstermine' => 'schedule',
+ 'erneuern' => 'update',
+ 'einkaufsrechnung_' => 'vendor_invoice_',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/ch_utf/hr b/locale/ch_utf/hr
new file mode 100755
index 00000000..f03e9dec
--- /dev/null
+++ b/locale/ch_utf/hr
@@ -0,0 +1,122 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP' => 'Verbindlichkeiten',
+ 'Above' => 'Ãœber',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Active' => 'Aktiv',
+ 'Add Deduction' => 'Abzug erfassen',
+ 'Add Employee' => 'Arbeitnehmer erfassen',
+ 'Address' => 'Adresse',
+ 'Administrator' => 'Administrator',
+ 'After Deduction' => 'Nach Abzug',
+ 'All' => 'Alle',
+ 'Allowances' => 'Freibeträge',
+ 'Amount' => 'Betrag',
+ 'Amount missing!' => 'Betrag fehlt!',
+ 'BIC' => 'BIC',
+ 'Based on' => 'Basierend auf',
+ 'Before Deduction' => 'Vor Abzug',
+ 'Below' => 'Unter',
+ 'City' => 'Ort',
+ 'Continue' => 'Weiter',
+ 'Country' => 'Land',
+ 'DOB' => 'Geburtsdatum',
+ 'Deduct after' => 'Abzug nach',
+ 'Deduction deleted!' => 'Abzug gelöscht!',
+ 'Deduction saved!' => 'Abzug gespeichert!',
+ 'Deductions' => 'Abzüge',
+ 'Delete' => 'Löschen',
+ 'Description' => 'Beschreibung',
+ 'Description missing!' => 'Beschreibung fehlt!',
+ 'E-mail' => 'E-Mail',
+ 'Edit Deduction' => 'Abzug bearbeiten',
+ 'Edit Employee' => 'Arbeitnehmer bearbeiten',
+ 'Employee' => 'Mitarbeiter',
+ 'Employee Name' => 'Mitarbeitername',
+ 'Employee Number' => 'Mitarbeiternummer',
+ 'Employee deleted!' => 'Mitarbeiter gelöscht!',
+ 'Employee pays' => 'Mitarbeiter bezahlt',
+ 'Employee saved!' => 'Mitarbeiter gespeichert!',
+ 'Employees' => 'Mitarbeiter',
+ 'Employer' => 'Arbeitgeber',
+ 'Employer pays' => 'Arbeitgeber bezahlt',
+ 'Enddate' => 'Austrittsdatum',
+ 'Exempt age <' => 'Befreiheitsalter <',
+ 'Expense' => 'Aufwand',
+ 'From' => 'Von',
+ 'Home Phone' => 'Tel Privat',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Inactive' => 'Inaktiv',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Login' => 'Benutzername',
+ 'Manager' => 'Geschäftsführer',
+ 'Maximum' => 'Höchstens',
+ 'Name' => 'Name',
+ 'Name missing!' => 'Name fehlt!',
+ 'Notes' => 'Bemerkungen',
+ 'Number' => 'Mitarbeiternummer',
+ 'Orphaned' => 'nie benutzt',
+ 'Payroll Deduction' => 'Lohnabzug',
+ 'Pos' => 'Pos',
+ 'Rate' => '%',
+ 'Rate missing!' => 'Prozentsatz fehlt!',
+ 'Role' => 'Stellung',
+ 'S' => 'A',
+ 'SSN' => 'AHV-Nummer',
+ 'Sales' => 'Warenverkauf',
+ 'Save' => 'Speichern',
+ 'Save as new' => 'als neu speichern',
+ 'Startdate' => 'Eintrittsdatum',
+ 'State/Province' => 'Kanton',
+ 'Supervisor' => 'Vorarbeiter',
+ 'To' => 'Bis',
+ 'Update' => 'Erneuern',
+ 'User' => 'Datenbankbenutzer',
+ 'Work Phone' => 'Tel Arbeit',
+ 'Zip/Postal Code' => 'PLZ',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'abzug_erfassen' => 'add_deduction',
+ 'arbeitnehmer_erfassen' => 'add_employee',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'speichern' => 'save',
+ 'als_neu_speichern' => 'save_as_new',
+ 'erneuern' => 'update',
+};
+
+1;
+
diff --git a/locale/ch_utf/ic b/locale/ch_utf/ic
new file mode 100755
index 00000000..d20600c7
--- /dev/null
+++ b/locale/ch_utf/ic
@@ -0,0 +1,303 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'A' => 'A',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Accounts' => 'Konten',
+ 'Accrual' => 'vereinbart',
+ 'Active' => 'Aktiv',
+ 'Add' => 'Hinzufügen',
+ 'Add Assembly' => 'Erzeugnis erfassen',
+ 'Add Labor/Overhead' => 'Gestehungskosten',
+ 'Add Part' => 'Ware erfassen',
+ 'Add Purchase Order' => 'Einkaufsbeleg erfassen',
+ 'Add Quotation' => 'Offerte erstellen',
+ 'Add Request for Quotation' => 'Offertanfrage',
+ 'Add Sales Order' => 'Auftragsbestätigung',
+ 'Add Service' => 'Dienstleistung erfassen',
+ 'Address' => 'Adresse',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Assemblies' => 'Erzeugnisse',
+ 'Assemblies restocked!' => 'Erzeugnisse wieder eingelagert!',
+ 'Assembly' => 'Erzeugnis',
+ 'Attachment' => 'als Anhang',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Average Cost' => 'Durchschnittskosten',
+ 'Avg Cost' => 'Ø-Kosten',
+ 'BOM' => 'Stückliste',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Rechnungsadresse',
+ 'Bin' => 'Lagerort',
+ 'Bin List' => 'Lagerliste',
+ 'Break' => 'Umbruch',
+ 'COGS' => 'Aufwand',
+ 'COGS account does not exist!' => 'Konto für Kosten besteht nicht!',
+ 'Cannot create Assembly' => 'Erzeugniss kann nicht angelegt werden',
+ 'Cannot create Labor' => 'Fliessbandarbeitszeit kann nicht angelegt werden',
+ 'Cannot create Part' => 'Ware kann nicht erstellt werden',
+ 'Cannot create Service' => 'Dienstleistung kann nicht erstellt werden',
+ 'Cannot delete item!' => 'Artikel kann nicht gelöscht werden!',
+ 'Cannot stock assemblies!' => 'Erzeugnisse können nicht eingelagert werden!',
+ 'Cash' => 'vereinnahmt',
+ 'Cc' => 'E-Mailkopie',
+ 'Check Inventory' => 'Inventar prüfen',
+ 'City' => 'Ort',
+ 'Closed' => 'Geschlossen',
+ 'Company Name' => 'Firmenname',
+ 'Components' => 'Einzelteile',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Weiter',
+ 'Copies' => 'Kopien',
+ 'Cost' => 'Kosten',
+ 'Country' => 'Land',
+ 'Curr' => 'Währung',
+ 'Currency' => 'Währung',
+ 'Customer' => 'Kunde',
+ 'Customer Number' => 'Kundennummer',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Delete' => 'Löschen',
+ 'Delivery Date' => 'Lieferdatum',
+ 'Description' => 'Beschreibung',
+ 'Detail' => 'Einzelheiten',
+ 'Drawing' => 'Zeichnung',
+ 'E-mail' => 'E-Mail',
+ 'E-mail address missing!' => 'E-Mail-Adresse fehlt!',
+ 'E-mailed' => 'E-Mail gesendet',
+ 'Edit Assembly' => 'Erzeugnis bearbeiten',
+ 'Edit Labor/Overhead' => 'Gestehungskostenkosten bearbeiten',
+ 'Edit Part' => 'Ware bearbeiten',
+ 'Edit Service' => 'Dienstleistung bearbeiten',
+ 'Employee' => 'Verkäufer',
+ 'Expense' => 'Aufwand',
+ 'Expense account does not exist!' => 'Es existiert kein Konto für Unkosten!',
+ 'Extended' => 'Summe',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'From' => 'Von',
+ 'Group' => 'Warengruppe',
+ 'Image' => 'Bild',
+ 'In-line' => 'im Textkörper (Inline)',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Income' => 'Ertrag',
+ 'Income account does not exist!' => 'Es existiert kein Konto für Einnahmen!',
+ 'Individual Items' => 'Einzelteile',
+ 'Inventory' => 'Inventar',
+ 'Inventory account does not exist!' => 'Es existiert kein Konto für Inventar!',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Bevor dieses Erzeugnis als ungültig markiert werden kann muss das Inventar auf Null sein!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Bevor diese Ware als ungültig markiert werden kann muss das Inventar Null sein!',
+ 'Invoice' => 'Rechnung',
+ 'Invoice Date missing!' => 'Rechnungsdatum fehlt!',
+ 'Invoice Number' => 'Rechnungsnummer',
+ 'Invoice Number missing!' => 'Rechnungsnummer fehlt!',
+ 'Item' => 'Pos',
+ 'Item deleted!' => 'Artikel gelöscht!',
+ 'Item not on file!' => 'Dieser Artikel ist nicht in der Datenbank!',
+ 'Items' => 'Artikel',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Labor/Overhead' => 'Gestehungskosten',
+ 'Last Cost' => 'Letzte Kosten',
+ 'Leadtime' => 'Vorlaufzeit',
+ 'Line Total' => 'Zeilensumme',
+ 'Link Accounts' => 'Konten verknüpfen',
+ 'List' => 'Auflisten',
+ 'List Price' => 'Listenpreis',
+ 'Make' => 'Hersteller',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'Markup' => 'Marge',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Message' => 'Nachricht',
+ 'Microfiche' => 'Mikrofilm',
+ 'Model' => 'Modell',
+ 'Name' => 'Name',
+ 'No History!' => 'Kein Verlauf!',
+ 'No.' => 'Pos.',
+ 'Notes' => 'Bemerkungen',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Artikelnummer',
+ 'Number missing in Row' => 'Nummer fehlt in Zeile',
+ 'OH' => 'LU',
+ 'Obsolete' => 'Ungültig',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'On Hand' => 'am Lager',
+ 'Onhand' => 'am Lager',
+ 'Open' => 'Offen',
+ 'Order' => 'Bestellung',
+ 'Order Date missing!' => 'Bestelldatum fehlt!',
+ 'Order Number' => 'Bestellnummer',
+ 'Order Number missing!' => 'Bestellnummer fehlt!',
+ 'Orphaned' => 'nie benutzt',
+ 'PDF' => 'PDF',
+ 'PO' => 'Einkaufsbestellung',
+ 'Packing List' => 'Packliste',
+ 'Packing List Date missing!' => 'Verpackungslisten-Datum fehlt!',
+ 'Packing List Number missing!' => 'Verpackungslistennummer fehlt!',
+ 'Part' => 'Artikel',
+ 'Parts' => 'Waren',
+ 'Parts Requirements' => 'benötigte Artikel',
+ 'Period' => 'Zeitraum',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Lagerliste',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Preis',
+ 'Pricegroup' => 'Preisgruppe',
+ 'Printed' => 'Gedruckt',
+ 'Project' => 'Projekt',
+ 'Purchase Order' => 'Einkaufsbestellung',
+ 'Purchase Orders' => 'Einkaufsbestellungen',
+ 'Qty' => 'Menge',
+ 'Quantity exceeds available units to stock!' => 'Anzahl ist grösser als der Lagerbestand!',
+ 'Queue' => 'Warteschlange',
+ 'Queued' => 'In Warteschlange',
+ 'Quotation' => 'Offerte',
+ 'Quotation Date missing!' => 'Offertendatum fehlt!',
+ 'Quotation Number missing!' => 'Offertenummer fehlt!',
+ 'Quotations' => 'Offerten',
+ 'RFQ' => 'Offertanfrage',
+ 'ROP' => 'Lagerbestand Untergrenze',
+ 'Recd' => 'Erh',
+ 'Required by' => 'Erforderlich bis am',
+ 'SKU' => 'Lagerhaltungseinheit',
+ 'SO' => 'SO',
+ 'Sales Invoice' => 'Ausgangsrechnung',
+ 'Sales Invoices' => 'Ausgangsrechnungen',
+ 'Sales Order' => 'Auftragsbestätigung',
+ 'Sales Orders' => 'Auftragsbestätigungen',
+ 'Save' => 'Speichern',
+ 'Save as new' => 'als neu speichern',
+ 'Scheduled' => 'geplant',
+ 'Screen' => 'Bildschirm',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select items' => 'Bitte wählen Sie aus',
+ 'Select txt, postscript or PDF!' => 'Text, Postscript oder PDF auswählen!',
+ 'Sell' => 'Verkaufspreis',
+ 'Sell Price' => 'Verkaufspreis',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Serial No.' => 'Seriennummer',
+ 'Serial Number' => 'Seriennummer',
+ 'Service' => 'Dienstleistung',
+ 'Services' => 'Leistungen',
+ 'Ship' => 'Versenden',
+ 'Ship to' => 'Lieferung an',
+ 'Shipping Address' => 'Lieferanschrift',
+ 'Short' => 'Kurz',
+ 'State/Province' => 'Kanton',
+ 'Stock' => 'Einlagern',
+ 'Stock Assembly' => 'Erzeugnis einlagern',
+ 'Subject' => 'Betreff',
+ 'Subtotal' => 'Zwischensumme',
+ 'Summary' => 'Zusammenfassung',
+ 'Tax' => 'MWST',
+ 'Text' => 'Text',
+ 'To' => 'Bis',
+ 'Top Level' => 'Hauptbeschreibung',
+ 'Translation not on file!' => 'Ãœbersetzung nicht in der Datenbank',
+ 'Unit' => 'Einheit',
+ 'Update' => 'Erneuern',
+ 'Updated' => 'Erneuert am',
+ 'Vendor' => 'Lieferant',
+ 'Vendor Invoice' => 'Einkaufsrechnung',
+ 'Vendor Invoices' => 'Einkaufsrechnungen',
+ 'Vendor Number' => 'Lieferantennummer',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Warehouse' => 'Warenlager',
+ 'Weight' => 'Gewicht',
+ 'What type of item is this?' => 'Welche Artikelart ist das?',
+ 'Work Order' => 'Arbeitsblatt',
+ 'Year' => 'Jahr',
+ 'Zip/Postal Code' => 'PLZ',
+ 'days' => 'Tage',
+ 'sent' => 'verschickt',
+ 'unexpected error!' => 'unerwarteter Fehler!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'erzeugnis_erfassen' => 'add_assembly',
+ 'gestehungskosten' => 'add_labor_overhead',
+ 'ware_erfassen' => 'add_part',
+ 'dienstleistung_erfassen' => 'add_service',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'erzeugnis_bearbeiten' => 'edit_assembly',
+ 'ware_bearbeiten' => 'edit_part',
+ 'dienstleistung_bearbeiten' => 'edit_service',
+ 'speichern' => 'save',
+ 'als_neu_speichern' => 'save_as_new',
+ 'erneuern' => 'update',
+};
+
+1;
+
diff --git a/locale/ch_utf/io b/locale/ch_utf/io
new file mode 100755
index 00000000..a9b934dd
--- /dev/null
+++ b/locale/ch_utf/io
@@ -0,0 +1,139 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Add Purchase Order' => 'Einkaufsbeleg erfassen',
+ 'Add Quotation' => 'Offerte erstellen',
+ 'Add Request for Quotation' => 'Offertanfrage',
+ 'Add Sales Order' => 'Auftragsbestätigung',
+ 'Address' => 'Adresse',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Attachment' => 'als Anhang',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Rechnungsadresse',
+ 'Bin' => 'Lagerort',
+ 'Bin List' => 'Lagerliste',
+ 'Cc' => 'E-Mailkopie',
+ 'City' => 'Ort',
+ 'Company Name' => 'Firmenname',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Weiter',
+ 'Copies' => 'Kopien',
+ 'Country' => 'Land',
+ 'Customer Number' => 'Kundennummer',
+ 'Date' => 'Datum',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Delivery Date' => 'Lieferdatum',
+ 'Description' => 'Beschreibung',
+ 'E-mail' => 'E-Mail',
+ 'E-mail address missing!' => 'E-Mail-Adresse fehlt!',
+ 'E-mailed' => 'E-Mail gesendet',
+ 'Extended' => 'Summe',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'Group' => 'Warengruppe',
+ 'In-line' => 'im Textkörper (Inline)',
+ 'Invoice' => 'Rechnung',
+ 'Invoice Date missing!' => 'Rechnungsdatum fehlt!',
+ 'Invoice Number missing!' => 'Rechnungsnummer fehlt!',
+ 'Item' => 'Pos',
+ 'Item not on file!' => 'Dieser Artikel ist nicht in der Datenbank!',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Message' => 'Nachricht',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Artikelnummer',
+ 'Number missing in Row' => 'Nummer fehlt in Zeile',
+ 'OH' => 'LU',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Order Date missing!' => 'Bestelldatum fehlt!',
+ 'Order Number missing!' => 'Bestellnummer fehlt!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Packliste',
+ 'Packing List Date missing!' => 'Verpackungslisten-Datum fehlt!',
+ 'Packing List Number missing!' => 'Verpackungslistennummer fehlt!',
+ 'Part' => 'Artikel',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Lagerliste',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Preis',
+ 'Printed' => 'Gedruckt',
+ 'Project' => 'Projekt',
+ 'Purchase Order' => 'Einkaufsbestellung',
+ 'Qty' => 'Menge',
+ 'Queue' => 'Warteschlange',
+ 'Queued' => 'In Warteschlange',
+ 'Quotation' => 'Offerte',
+ 'Quotation Date missing!' => 'Offertendatum fehlt!',
+ 'Quotation Number missing!' => 'Offertenummer fehlt!',
+ 'Recd' => 'Erh',
+ 'Required by' => 'Erforderlich bis am',
+ 'SKU' => 'Lagerhaltungseinheit',
+ 'Sales Order' => 'Auftragsbestätigung',
+ 'Scheduled' => 'geplant',
+ 'Screen' => 'Bildschirm',
+ 'Select items' => 'Bitte wählen Sie aus',
+ 'Select txt, postscript or PDF!' => 'Text, Postscript oder PDF auswählen!',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Serial No.' => 'Seriennummer',
+ 'Service' => 'Dienstleistung',
+ 'Ship' => 'Versenden',
+ 'Ship to' => 'Lieferung an',
+ 'Shipping Address' => 'Lieferanschrift',
+ 'State/Province' => 'Kanton',
+ 'Subject' => 'Betreff',
+ 'Subtotal' => 'Zwischensumme',
+ 'Text' => 'Text',
+ 'To' => 'Bis',
+ 'Translation not on file!' => 'Ãœbersetzung nicht in der Datenbank',
+ 'Unit' => 'Einheit',
+ 'Vendor Number' => 'Lieferantennummer',
+ 'What type of item is this?' => 'Welche Artikelart ist das?',
+ 'Work Order' => 'Arbeitsblatt',
+ 'Zip/Postal Code' => 'PLZ',
+ 'sent' => 'verschickt',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'weiter' => 'continue',
+};
+
+1;
+
diff --git a/locale/ch_utf/ir b/locale/ch_utf/ir
new file mode 100755
index 00000000..3a15a40a
--- /dev/null
+++ b/locale/ch_utf/ir
@@ -0,0 +1,259 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Add Purchase Order' => 'Einkaufsbeleg erfassen',
+ 'Add Quotation' => 'Offerte erstellen',
+ 'Add Request for Quotation' => 'Offertanfrage',
+ 'Add Sales Order' => 'Auftragsbestätigung',
+ 'Add Vendor Invoice' => 'Einkaufsrechnung erfassen',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Betrag',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Invoice Number' => 'Soll die Rechnung mit folgender Nummer wirklich gelöscht werden:',
+ 'Attachment' => 'als Anhang',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Rechnungsadresse',
+ 'Bin' => 'Lagerort',
+ 'Bin List' => 'Lagerliste',
+ 'Cannot delete invoice!' => 'Rechnung kann nicht gelöscht werden!',
+ 'Cannot post invoice for a closed period!' => 'Rechnung kann nicht gebucht werden, weil die Periode bereits abgeschlossen inst!',
+ 'Cannot post invoice!' => 'Rechnung kann nicht gebucht werden!',
+ 'Cannot post payment for a closed period!' => 'Zahlung kann nicht gebucht werden, weil die Periode bereits abgeschlossen ist!',
+ 'Cc' => 'E-Mailkopie',
+ 'City' => 'Ort',
+ 'Company Name' => 'Firmenname',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Weiter',
+ 'Copies' => 'Kopien',
+ 'Country' => 'Land',
+ 'Credit Limit' => 'Kreditlimite',
+ 'Currency' => 'Währung',
+ 'Customer Number' => 'Kundennummer',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Day(s)' => 'Tage',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Delete' => 'Löschen',
+ 'Delete Schedule' => 'Zeitplan löschen',
+ 'Delivery Date' => 'Lieferdatum',
+ 'Department' => 'Abteilung',
+ 'Description' => 'Beschreibung',
+ 'Due Date' => 'Fälligkeitsdatum',
+ 'E-mail' => 'E-Mail',
+ 'E-mail address missing!' => 'E-Mail-Adresse fehlt!',
+ 'E-mail message' => 'E-Mail-Nachricht ',
+ 'E-mailed' => 'E-Mail gesendet',
+ 'Edit Vendor Invoice' => 'Einkaufsrechnung bearbeiten',
+ 'Every' => 'Jeden',
+ 'Exch' => 'Wkurs.',
+ 'Exchange Rate' => 'Wechselkurs',
+ 'Exchange rate for payment missing!' => 'Wechselkurs für Bezahlung fehlt!',
+ 'Exchange rate missing!' => 'Wechselkurs fehlt!',
+ 'Extended' => 'Summe',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'For' => 'für',
+ 'Group' => 'Warengruppe',
+ 'In-line' => 'im Textkörper (Inline)',
+ 'Include Payment' => 'Bezahlung reinnehmen',
+ 'Internal Notes' => 'Interne Notizen',
+ 'Invoice' => 'Rechnung',
+ 'Invoice Date' => 'Rechnungsdatum',
+ 'Invoice Date missing!' => 'Rechnungsdatum fehlt!',
+ 'Invoice Number' => 'Rechnungsnummer',
+ 'Invoice Number missing!' => 'Rechnungsnummer fehlt!',
+ 'Invoice deleted!' => 'Rechung gelöscht!',
+ 'Item' => 'Pos',
+ 'Item not on file!' => 'Dieser Artikel ist nicht in der Datenbank!',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Language' => 'Sprache',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Memo' => 'Notiz',
+ 'Message' => 'Nachricht',
+ 'Month(s)' => 'Monat(e)',
+ 'Next Date' => 'Nächstes Datum',
+ 'Notes' => 'Bemerkungen',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Artikelnummer',
+ 'Number missing in Row' => 'Nummer fehlt in Zeile',
+ 'OH' => 'LU',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Order Date missing!' => 'Bestelldatum fehlt!',
+ 'Order Number' => 'Bestellnummer',
+ 'Order Number missing!' => 'Bestellnummer fehlt!',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ihre Bestellnummer',
+ 'Packing List' => 'Packliste',
+ 'Packing List Date missing!' => 'Verpackungslisten-Datum fehlt!',
+ 'Packing List Number missing!' => 'Verpackungslistennummer fehlt!',
+ 'Part' => 'Artikel',
+ 'Payment date missing!' => 'Zahlungsdatum fehlt!',
+ 'Payments' => 'Zahlungen',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Lagerliste',
+ 'Post' => 'Buchen',
+ 'Post as new' => 'Als neu buchen',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Preis',
+ 'Print' => 'Drucken',
+ 'Printed' => 'Gedruckt',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Dieses Projekt ist nicht in der Datenbank!',
+ 'Purchase Order' => 'Einkaufsbestellung',
+ 'Qty' => 'Menge',
+ 'Queue' => 'Warteschlange',
+ 'Queued' => 'In Warteschlange',
+ 'Quotation' => 'Offerte',
+ 'Quotation Date missing!' => 'Offertendatum fehlt!',
+ 'Quotation Number missing!' => 'Offertenummer fehlt!',
+ 'Recd' => 'Erh',
+ 'Record in' => 'Buchen auf',
+ 'Recurring Transaction' => 'Wiederkehrende Buchung',
+ 'Reference' => 'Referenz',
+ 'Remaining' => 'Rest',
+ 'Repeat' => 'Wiederholen',
+ 'Required by' => 'Erforderlich bis am',
+ 'SKU' => 'Lagerhaltungseinheit',
+ 'Sales Order' => 'Auftragsbestätigung',
+ 'Save Schedule' => 'Zeitplan speichern',
+ 'Schedule' => 'Buchungstermine',
+ 'Scheduled' => 'geplant',
+ 'Screen' => 'Bildschirm',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
+ 'Select items' => 'Bitte wählen Sie aus',
+ 'Select txt, postscript or PDF!' => 'Text, Postscript oder PDF auswählen!',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Serial No.' => 'Seriennummer',
+ 'Service' => 'Dienstleistung',
+ 'Ship' => 'Versenden',
+ 'Ship to' => 'Lieferung an',
+ 'Shipping Address' => 'Lieferanschrift',
+ 'Source' => 'Beleg',
+ 'Startdate' => 'Eintrittsdatum',
+ 'State/Province' => 'Kanton',
+ 'Subject' => 'Betreff',
+ 'Subtotal' => 'Zwischensumme',
+ 'Tax Included' => 'MWST im Preis enthalten',
+ 'Text' => 'Text',
+ 'To' => 'Bis',
+ 'Total' => 'Total',
+ 'Translation not on file!' => 'Ãœbersetzung nicht in der Datenbank',
+ 'Unit' => 'Einheit',
+ 'Update' => 'Erneuern',
+ 'Vendor' => 'Lieferant',
+ 'Vendor Number' => 'Lieferantennummer',
+ 'Vendor missing!' => 'Lieferant fehlt!',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Warning!' => 'Warnung!',
+ 'Week(s)' => 'Woche(n)',
+ 'What type of item is this?' => 'Welche Artikelart ist das?',
+ 'Work Order' => 'Arbeitsblatt',
+ 'Year(s)' => 'Jahr(e)',
+ 'Yes' => 'Ja',
+ 'You are posting an existing transaction!' => 'Sie buchen eine existierende Buchung',
+ 'You are printing and posting an existing transaction!' => 'Sie drucken und buchen eine bereits bestehende Buchung',
+ 'You are printing and saving an existing order' => 'Sie drucken und speichern einen existierenden Auftrag',
+ 'You are printing and saving an existing quotation' => 'Sie drucken und speichern eine bereits bestehende Offerte',
+ 'You are saving an existing order' => 'Sie speichern einen bereits bestehenden Auftrag',
+ 'You are saving an existing quotation' => 'Sie speichern eine vorhandene Offerte',
+ 'Zip/Postal Code' => 'PLZ',
+ 'ea' => 'pro',
+ 'for' => 'für',
+ 'posted!' => 'gebucht!',
+ 'sent' => 'verschickt',
+ 'time(s)' => 'mal',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'zeitplan_löschen' => 'delete_schedule',
+ 'buchen' => 'post',
+ 'als_neu_buchen' => 'post_as_new',
+ 'einkaufsbestellung' => 'purchase_order',
+ 'zeitplan_speichern' => 'save_schedule',
+ 'buchungstermine' => 'schedule',
+ 'erneuern' => 'update',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/ch_utf/is b/locale/ch_utf/is
new file mode 100755
index 00000000..b9b0b5cf
--- /dev/null
+++ b/locale/ch_utf/is
@@ -0,0 +1,273 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Add Purchase Order' => 'Einkaufsbeleg erfassen',
+ 'Add Quotation' => 'Offerte erstellen',
+ 'Add Request for Quotation' => 'Offertanfrage',
+ 'Add Sales Invoice' => 'Ausgangsrechnung erfassen',
+ 'Add Sales Order' => 'Auftragsbestätigung',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Betrag',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Invoice Number' => 'Soll die Rechnung mit folgender Nummer wirklich gelöscht werden:',
+ 'Attachment' => 'als Anhang',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Rechnungsadresse',
+ 'Bin' => 'Lagerort',
+ 'Bin List' => 'Lagerliste',
+ 'Business' => 'Branche',
+ 'Cannot delete invoice!' => 'Rechnung kann nicht gelöscht werden!',
+ 'Cannot post invoice for a closed period!' => 'Rechnung kann nicht gebucht werden, weil die Periode bereits abgeschlossen inst!',
+ 'Cannot post invoice!' => 'Rechnung kann nicht gebucht werden!',
+ 'Cannot post payment for a closed period!' => 'Zahlung kann nicht gebucht werden, weil die Periode bereits abgeschlossen ist!',
+ 'Cc' => 'E-Mailkopie',
+ 'City' => 'Ort',
+ 'Company Name' => 'Firmenname',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Weiter',
+ 'Copies' => 'Kopien',
+ 'Country' => 'Land',
+ 'Credit Limit' => 'Kreditlimite',
+ 'Currency' => 'Währung',
+ 'Customer' => 'Kunde',
+ 'Customer Number' => 'Kundennummer',
+ 'Customer missing!' => 'Kundenname fehlt!',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Day(s)' => 'Tage',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Delete' => 'Löschen',
+ 'Delete Schedule' => 'Zeitplan löschen',
+ 'Delivery Date' => 'Lieferdatum',
+ 'Department' => 'Abteilung',
+ 'Description' => 'Beschreibung',
+ 'Due Date' => 'Fälligkeitsdatum',
+ 'E-mail' => 'E-Mail',
+ 'E-mail address missing!' => 'E-Mail-Adresse fehlt!',
+ 'E-mail message' => 'E-Mail-Nachricht ',
+ 'E-mailed' => 'E-Mail gesendet',
+ 'Edit Sales Invoice' => 'Ausgangsrechnung bearbeiten',
+ 'Every' => 'Jeden',
+ 'Exch' => 'Wkurs.',
+ 'Exchange Rate' => 'Wechselkurs',
+ 'Exchange rate for payment missing!' => 'Wechselkurs für Bezahlung fehlt!',
+ 'Exchange rate missing!' => 'Wechselkurs fehlt!',
+ 'Extended' => 'Summe',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'For' => 'für',
+ 'Group' => 'Warengruppe',
+ 'In-line' => 'im Textkörper (Inline)',
+ 'Include Payment' => 'Bezahlung reinnehmen',
+ 'Internal Notes' => 'Interne Notizen',
+ 'Invoice' => 'Rechnung',
+ 'Invoice Date' => 'Rechnungsdatum',
+ 'Invoice Date missing!' => 'Rechnungsdatum fehlt!',
+ 'Invoice Number' => 'Rechnungsnummer',
+ 'Invoice Number missing!' => 'Rechnungsnummer fehlt!',
+ 'Invoice deleted!' => 'Rechung gelöscht!',
+ 'Item' => 'Pos',
+ 'Item not on file!' => 'Dieser Artikel ist nicht in der Datenbank!',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Memo' => 'Notiz',
+ 'Message' => 'Nachricht',
+ 'Month(s)' => 'Monat(e)',
+ 'Next Date' => 'Nächstes Datum',
+ 'Notes' => 'Bemerkungen',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Artikelnummer',
+ 'Number missing in Row' => 'Nummer fehlt in Zeile',
+ 'OH' => 'LU',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Order Date missing!' => 'Bestelldatum fehlt!',
+ 'Order Number' => 'Bestellnummer',
+ 'Order Number missing!' => 'Bestellnummer fehlt!',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ihre Bestellnummer',
+ 'Packing List' => 'Packliste',
+ 'Packing List Date missing!' => 'Verpackungslisten-Datum fehlt!',
+ 'Packing List Number missing!' => 'Verpackungslistennummer fehlt!',
+ 'Part' => 'Artikel',
+ 'Payment date missing!' => 'Zahlungsdatum fehlt!',
+ 'Payments' => 'Zahlungen',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Lagerliste',
+ 'Post' => 'Buchen',
+ 'Post as new' => 'Als neu buchen',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Preis',
+ 'Print' => 'Drucken',
+ 'Print and Post' => 'Drucken und Buchen',
+ 'Print and Post as new' => 'Drucken und als neu buchen',
+ 'Printed' => 'Gedruckt',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Dieses Projekt ist nicht in der Datenbank!',
+ 'Purchase Order' => 'Einkaufsbestellung',
+ 'Qty' => 'Menge',
+ 'Queue' => 'Warteschlange',
+ 'Queued' => 'In Warteschlange',
+ 'Quotation' => 'Offerte',
+ 'Quotation Date missing!' => 'Offertendatum fehlt!',
+ 'Quotation Number missing!' => 'Offertenummer fehlt!',
+ 'Recd' => 'Erh',
+ 'Record in' => 'Buchen auf',
+ 'Recurring Transaction' => 'Wiederkehrende Buchung',
+ 'Reference' => 'Referenz',
+ 'Remaining' => 'Rest',
+ 'Repeat' => 'Wiederholen',
+ 'Required by' => 'Erforderlich bis am',
+ 'SKU' => 'Lagerhaltungseinheit',
+ 'Sales Order' => 'Auftragsbestätigung',
+ 'Salesperson' => 'Verkäufer',
+ 'Save Schedule' => 'Zeitplan speichern',
+ 'Schedule' => 'Buchungstermine',
+ 'Scheduled' => 'geplant',
+ 'Screen' => 'Bildschirm',
+ 'Select a Printer!' => 'Drucker auswählen!',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
+ 'Select items' => 'Bitte wählen Sie aus',
+ 'Select postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Select txt, postscript or PDF!' => 'Text, Postscript oder PDF auswählen!',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Serial No.' => 'Seriennummer',
+ 'Service' => 'Dienstleistung',
+ 'Ship' => 'Versenden',
+ 'Ship to' => 'Lieferung an',
+ 'Ship via' => 'Versandart',
+ 'Shipping Address' => 'Lieferanschrift',
+ 'Shipping Point' => 'Lieferort',
+ 'Source' => 'Beleg',
+ 'Startdate' => 'Eintrittsdatum',
+ 'State/Province' => 'Kanton',
+ 'Subject' => 'Betreff',
+ 'Subtotal' => 'Zwischensumme',
+ 'Tax Included' => 'MWST im Preis enthalten',
+ 'Text' => 'Text',
+ 'To' => 'Bis',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Handelsrabatt',
+ 'Translation not on file!' => 'Ãœbersetzung nicht in der Datenbank',
+ 'Unit' => 'Einheit',
+ 'Update' => 'Erneuern',
+ 'Vendor Number' => 'Lieferantennummer',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Warning!' => 'Warnung!',
+ 'Week(s)' => 'Woche(n)',
+ 'What type of item is this?' => 'Welche Artikelart ist das?',
+ 'Work Order' => 'Arbeitsblatt',
+ 'Year(s)' => 'Jahr(e)',
+ 'Yes' => 'Ja',
+ 'You are posting an existing transaction!' => 'Sie buchen eine existierende Buchung',
+ 'You are printing and posting an existing transaction!' => 'Sie drucken und buchen eine bereits bestehende Buchung',
+ 'You are printing and saving an existing order' => 'Sie drucken und speichern einen existierenden Auftrag',
+ 'You are printing and saving an existing quotation' => 'Sie drucken und speichern eine bereits bestehende Offerte',
+ 'You are saving an existing order' => 'Sie speichern einen bereits bestehenden Auftrag',
+ 'You are saving an existing quotation' => 'Sie speichern eine vorhandene Offerte',
+ 'Zip/Postal Code' => 'PLZ',
+ 'ea' => 'pro',
+ 'for' => 'für',
+ 'posted!' => 'gebucht!',
+ 'sent' => 'verschickt',
+ 'time(s)' => 'mal',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'zeitplan_löschen' => 'delete_schedule',
+ 'e_mail' => 'e_mail',
+ 'buchen' => 'post',
+ 'als_neu_buchen' => 'post_as_new',
+ 'drucken' => 'print',
+ 'drucken_und_buchen' => 'print_and_post',
+ 'drucken_und_als_neu_buchen' => 'print_and_post_as_new',
+ 'auftragsbestätigung' => 'sales_order',
+ 'zeitplan_speichern' => 'save_schedule',
+ 'buchungstermine' => 'schedule',
+ 'lieferung_an' => 'ship_to',
+ 'erneuern' => 'update',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/ch_utf/jc b/locale/ch_utf/jc
new file mode 100755
index 00000000..afdc93e5
--- /dev/null
+++ b/locale/ch_utf/jc
@@ -0,0 +1,157 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Add Stores Card' => 'Artikelkarte',
+ 'Add Time Card' => 'Stempelkarte erfassen',
+ 'Allocated' => 'Zugeteilt',
+ 'Amount' => 'Betrag',
+ 'Are you sure you want to delete time card for' => 'Soll die Stempelkarte folgender Person gelöscht werden',
+ 'Cannot add stores card for a completed job!' => 'Cannot add stores card for a completed job!',
+ 'Cannot add time card for a completed job!' => 'Stempelkarte kann für eine abgeschlossene Arbeit nicht erfasst werden!',
+ 'Cannot change stores card for a completed job!' => 'Cannot change stores card for a completed job!',
+ 'Cannot change time card for a completed job!' => 'Stempelkarte für eine abgeschlossene Arbeit kann nicht geändert werden!',
+ 'Cannot delete time card!' => 'Stempelkarte kann nicht gelöscht werden!',
+ 'Cannot save stores card for a closed period!' => 'Cannot save stores card for a closed period!',
+ 'Cannot save stores card!' => 'Cannot save stores card!',
+ 'Cannot save time card for a closed period!' => 'Stempelkarte für eine geschlossene Periode kann nicht gespeichert werden!',
+ 'Cannot save time card!' => 'Stempelkarte kann nicht gespeichert werden!',
+ 'Chargeable' => 'Verrechenbar',
+ 'Clocked' => 'Ausgerechnet',
+ 'Closed' => 'Geschlossen',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Continue' => 'Weiter',
+ 'Cost' => 'Kosten',
+ 'Current' => 'Aktuell',
+ 'Date' => 'Datum',
+ 'Date missing!' => 'Datum fehlt!',
+ 'Date worked' => 'Datum',
+ 'Delete' => 'Löschen',
+ 'Description' => 'Beschreibung',
+ 'Edit Time Card' => 'Stempelkarte bearbeiten',
+ 'Employee' => 'Verkäufer',
+ 'Friday' => 'Freitag',
+ 'From' => 'Von',
+ 'ID' => 'ID',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Job Description' => 'Auftragsbeschreibung',
+ 'Job Name' => 'Auftragsname',
+ 'Job Number' => 'Auftragsnummer',
+ 'Job Number missing!' => 'Auftragsnummer fehlt!',
+ 'Labor Code' => 'Arbeitscode',
+ 'Labor Code missing!' => 'Arbeitscode fehlt!',
+ 'Monday' => 'Montag',
+ 'Month' => 'Monat',
+ 'No Employees on file!' => 'Kein Mitarbeiter in Datenbank!',
+ 'No Labor codes on file!' => 'Kein Arbeitscode auf Datenbank!',
+ 'No Parts on file!' => 'Keine Artikel auf Datenbank!',
+ 'No Services on file!' => 'Keine Dienstleistungen auf Datenbank!',
+ 'No open Jobs!' => 'Keine offene Aufträge!',
+ 'No open Projects!' => 'Keine offene Projekte!',
+ 'Non-chargeable' => 'Nicht verrechenbar',
+ 'Notes' => 'Bemerkungen',
+ 'Open' => 'Offen',
+ 'PDF' => 'PDF',
+ 'Part Number' => 'Artikelnummer',
+ 'Period' => 'Zeitraum',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Drucken',
+ 'Print and Save' => 'Drucken und speichern',
+ 'Print and Save as new' => 'Drucken und als neu speichern',
+ 'Printed' => 'Gedruckt',
+ 'Project Name' => 'Projektname',
+ 'Project Number' => 'Projektnummer',
+ 'Project Number missing!' => 'Projektnummer fehlt!',
+ 'Project/Job Name' => 'Projekt-/Auftragsname',
+ 'Project/Job Number' => 'Projekt-/Aufgragsnummer',
+ 'Qty' => 'Menge',
+ 'Quarter' => 'Quartal',
+ 'Queue' => 'Warteschlange',
+ 'Queued' => 'In Warteschlange',
+ 'Saturday' => 'Samstag',
+ 'Save' => 'Speichern',
+ 'Save as new' => 'als neu speichern',
+ 'Screen' => 'Bildschirm',
+ 'Select a Printer!' => 'Drucker auswählen!',
+ 'Select postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Service Code' => 'Dienstleistungscode',
+ 'Service Code missing!' => 'Dienstleistungscode fehlt!',
+ 'Service/Labor Code' => 'Dienstleistungs-/Arbeitscode fehlt!',
+ 'Startdate' => 'Eintrittsdatum',
+ 'Stores Card' => 'Stores Card',
+ 'Stores Card saved!' => 'Stores Card saved!',
+ 'Stores Cards' => 'Stores Cards',
+ 'Subtotal' => 'Zwischensumme',
+ 'Sunday' => 'Sonntag',
+ 'Thursday' => 'Donnerstag',
+ 'Time' => 'Zeit',
+ 'Time Card' => 'Stempelkarte',
+ 'Time Card deleted!' => 'Stempelkarte gelöscht!',
+ 'Time Card saved!' => 'Stempelkarte gespeichert!',
+ 'Time Cards' => 'Stempelkarten',
+ 'Time In' => 'Eingestempelt',
+ 'Time Out' => 'Ausgestempelt',
+ 'To' => 'Bis',
+ 'Total' => 'Total',
+ 'Tuesday' => 'Dienstag',
+ 'Update' => 'Erneuern',
+ 'Warning!' => 'Warnung!',
+ 'Wednesday' => 'Mittwoch',
+ 'Year' => 'Jahr',
+ 'Yes' => 'Ja',
+ 'You are printing and saving an existing transaction!' => 'Sie drucken und speichern eine bereits existierende Buchung!',
+ 'You are saving an existing transaction!' => 'Sie speichern eine vorhande Buchung!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'artikelkarte' => 'add_stores_card',
+ 'stempelkarte_erfassen' => 'add_time_card',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'drucken' => 'print',
+ 'drucken_und_speichern' => 'print_and_save',
+ 'drucken_und_als_neu_speichern' => 'print_and_save_as_new',
+ 'speichern' => 'save',
+ 'als_neu_speichern' => 'save_as_new',
+ 'erneuern' => 'update',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/ch_utf/locales.pl b/locale/ch_utf/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/ch_utf/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/ch_utf/login b/locale/ch_utf/login
new file mode 100755
index 00000000..1bccb56e
--- /dev/null
+++ b/locale/ch_utf/login
@@ -0,0 +1,27 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Access Denied!' => 'Zugriff fehlgeschlagen!',
+ 'Company' => 'Firmenname',
+ 'Continue' => 'Weiter',
+ 'Dataset is newer than version!' => 'Datenset ist neuer als installierte Version',
+ 'Incorrect Dataset version!' => 'Ungültigige Datenset-Version',
+ 'Login' => 'Benutzername',
+ 'Name' => 'Benutzername',
+ 'Password' => 'Passwort',
+ 'Upgrading to Version' => 'Datenset wird erneuert auf Version',
+ 'Version' => 'Version',
+ 'You did not enter a name!' => 'Sie haben keinen Namen eingegeben!',
+ 'done' => 'fertig',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ 'benutzername' => 'login',
+};
+
+1;
+
diff --git a/locale/ch_utf/menu b/locale/ch_utf/menu
new file mode 100755
index 00000000..32a0287c
--- /dev/null
+++ b/locale/ch_utf/menu
@@ -0,0 +1,145 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP' => 'Verbindlichkeiten',
+ 'AP Aging' => 'Offene Verbindl.',
+ 'AP Transaction' => 'Eingangsbuchung',
+ 'AR' => 'Forderungen',
+ 'AR Aging' => 'Forderungenspiegel',
+ 'AR Transaction' => 'Ausgangsbuchung',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Add Account' => 'Konto anlegen',
+ 'Add Assembly' => 'Erzeugnis erfassen',
+ 'Add Business' => 'Branche erfassen',
+ 'Add Customer' => 'Kunde erfassen',
+ 'Add Department' => 'Abteilung erfassen',
+ 'Add Employee' => 'Arbeitnehmer erfassen',
+ 'Add GIFI' => 'GIFI anlegen',
+ 'Add Group' => 'Gruppe erfassen',
+ 'Add Labor/Overhead' => 'Gestehungskosten',
+ 'Add Language' => 'Sprache erfassen',
+ 'Add Part' => 'Ware erfassen',
+ 'Add Pricegroup' => 'Preisgruppe erfassen',
+ 'Add Project' => 'Projekt erfassen',
+ 'Add SIC' => 'Euro-SIC erfassen',
+ 'Add Service' => 'Dienstleistung erfassen',
+ 'Add Time Card' => 'Stempelkarte erfassen',
+ 'Add Transaction' => 'Buchung erfassen',
+ 'Add Vendor' => 'Lieferant erfassen',
+ 'Add Warehouse' => 'Warenlager erfassen',
+ 'All Items' => 'Alle Artikel',
+ 'Assemblies' => 'Erzeugnisse',
+ 'Audit Control' => 'Bücherkontrolle',
+ 'Backup' => 'Datensicherung',
+ 'Balance Sheet' => 'Bilanz',
+ 'Batch Printing' => 'Massendruck',
+ 'Bin List' => 'Lagerliste',
+ 'Bin Lists' => 'Lagerlisten',
+ 'Cash' => 'vereinnahmt',
+ 'Chart of Accounts' => 'Kontenübersicht',
+ 'Check' => 'Scheck',
+ 'Components' => 'Einzelteile',
+ 'Consolidate' => 'Konsolidieren',
+ 'Customers' => 'Kunden',
+ 'Defaults' => 'Einstellungen',
+ 'Departments' => 'Abteilungen',
+ 'Description' => 'Beschreibung',
+ 'Employees' => 'Mitarbeiter',
+ 'General Ledger' => 'Hauptbuch',
+ 'Generate' => 'Erzeugen',
+ 'Goods & Services' => 'Waren & Dienstleistungen',
+ 'Groups' => 'Gruppen',
+ 'HR' => 'Personal',
+ 'HTML Templates' => 'HTML Vorlagen',
+ 'History' => 'Statistik',
+ 'Income Statement' => 'Gewinn- und Verlustrechnung',
+ 'Invoice' => 'Rechnung',
+ 'LaTeX Templates' => 'LaTeX Vorlagen',
+ 'Labor/Overhead' => 'Gestehungskosten',
+ 'Language' => 'Sprache',
+ 'List Accounts' => 'Kontenliste',
+ 'List Businesses' => 'Branche aufzeigen',
+ 'List Departments' => 'Abteilungen aufzeigen',
+ 'List GIFI' => 'GIFI aufzeigen',
+ 'List Languages' => 'Sprachen aufzeigen',
+ 'List Projects' => 'Projekte aufzeigen',
+ 'List SIC' => 'Euro-SIC aufzeigen',
+ 'List Warehouses' => 'Warenlager aufzeigen',
+ 'Logout' => 'Abmelden',
+ 'New Window' => 'Neues Fenster',
+ 'Non-taxable' => 'MWST-frei',
+ 'Open' => 'Offen',
+ 'Order Entry' => 'Bestellungen',
+ 'Outstanding' => 'Offen',
+ 'POS' => 'Kasse',
+ 'POS Invoice' => 'Kassenabrechnung',
+ 'Packing List' => 'Packliste',
+ 'Packing Lists' => 'Packlisten',
+ 'Parts' => 'Waren',
+ 'Payment' => 'Belastung',
+ 'Payments' => 'Zahlungen',
+ 'Pick List' => 'Lagerliste',
+ 'Pick Lists' => 'Lagerlisten',
+ 'Preferences' => 'Benutzereinstellungen',
+ 'Pricegroups' => 'Preisgruppen',
+ 'Print' => 'Drucken',
+ 'Projects' => 'Projekte',
+ 'Purchase Order' => 'Einkaufsbestellung',
+ 'Purchase Orders' => 'Einkaufsbestellungen',
+ 'Quotation' => 'Offerte',
+ 'Quotations' => 'Offerten',
+ 'RFQ' => 'Offertanfrage',
+ 'RFQs' => 'Offerte-Anfragen',
+ 'Receipt' => 'Quittung',
+ 'Receipts' => 'Quittungen',
+ 'Receive' => 'Einlagern',
+ 'Reconciliation' => 'Kontenabgleich',
+ 'Recurring Transactions' => 'Wiederkehrende Buchungen',
+ 'Reports' => 'Berichte',
+ 'Requirements' => 'Benötigte Teile',
+ 'SIC' => 'Euro-SIC',
+ 'Sale' => 'Verkauf',
+ 'Sales Invoice' => 'Ausgangsrechnung',
+ 'Sales Invoices' => 'Ausgangsrechnungen',
+ 'Sales Order' => 'Auftragsbestätigung',
+ 'Sales Orders' => 'Auftragsbestätigungen',
+ 'Save to File' => 'Auf Festplatte speichern',
+ 'Search' => 'Suchen',
+ 'Send by E-Mail' => 'Per E-Mail senden',
+ 'Services' => 'Leistungen',
+ 'Ship' => 'Versenden',
+ 'Shipping' => 'Versand',
+ 'Statement' => 'Zahlungserinnerung',
+ 'Stock Assembly' => 'Erzeugnis einlagern',
+ 'Stylesheet' => 'Stilvorlage',
+ 'System' => 'System',
+ 'Tax collected' => 'vereinnahmte MWST',
+ 'Tax paid' => 'Vorsteuer',
+ 'Text Templates' => 'Text Vorlagen',
+ 'Time Card' => 'Stempelkarte',
+ 'Time Cards' => 'Stempelkarten',
+ 'Transactions' => 'Buchungen',
+ 'Transfer' => 'Ãœbertrag',
+ 'Transfer Inventory' => 'Inventarübertrag',
+ 'Translations' => 'Ãœbersetzungen',
+ 'Trial Balance' => 'Saldenbilanz',
+ 'Type of Business' => 'Rabattgruppe',
+ 'Vendor Invoice' => 'Einkaufsrechnung',
+ 'Vendors' => 'Lieferanten',
+ 'Version' => 'Version',
+ 'Warehouses' => 'Warenlager',
+ 'Work Order' => 'Arbeitsblatt',
+ 'Work Orders' => 'Arbeitsblätter',
+ 'Yearend' => 'Jahresabschluss',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/ch_utf/oe b/locale/ch_utf/oe
new file mode 100755
index 00000000..613fe793
--- /dev/null
+++ b/locale/ch_utf/oe
@@ -0,0 +1,380 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Add Exchange Rate' => 'Wechselkurs erfassen',
+ 'Add Purchase Order' => 'Einkaufsbeleg erfassen',
+ 'Add Quotation' => 'Offerte erstellen',
+ 'Add Request for Quotation' => 'Offertanfrage',
+ 'Add Sales Invoice' => 'Ausgangsrechnung erfassen',
+ 'Add Sales Order' => 'Auftragsbestätigung',
+ 'Add Vendor Invoice' => 'Einkaufsrechnung erfassen',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Betrag',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Order Number' => 'Soll die Bestellung mit folgender Nummer wirklich gelöscht werden:',
+ 'Are you sure you want to delete Quotation Number' => 'Soll die Offerte mit folgender Nummer wirklich gelöscht werden:',
+ 'Attachment' => 'als Anhang',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Rechnungsadresse',
+ 'Bin' => 'Lagerort',
+ 'Bin List' => 'Lagerliste',
+ 'Business' => 'Branche',
+ 'C' => 'G',
+ 'Cannot delete order!' => 'Bestellung kann nicht gelöscht werden!',
+ 'Cannot delete quotation!' => 'Offerte kann nicht gelöscht werden!',
+ 'Cannot save order!' => 'Bestellung kann nicht gespeichert werden!',
+ 'Cannot save quotation!' => 'Offerte kann nicht gespeichert werden!',
+ 'Cc' => 'E-Mailkopie',
+ 'City' => 'Ort',
+ 'Closed' => 'Geschlossen',
+ 'Company Name' => 'Firmenname',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Consolidate Orders' => 'Bestellungen konsolidieren',
+ 'Consolidate Purchase Orders' => 'Einkaufsbestellungen konsolidieren',
+ 'Consolidate Sales Orders' => 'Verkaufsbestellungen konsolidieren',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Weiter',
+ 'Copies' => 'Kopien',
+ 'Cost' => 'Kosten',
+ 'Could not save!' => 'Konnte nicht gespeichert werden!',
+ 'Could not transfer Inventory!' => 'Inventar wurde nicht übertragen!',
+ 'Country' => 'Land',
+ 'Credit Limit' => 'Kreditlimite',
+ 'Curr' => 'Währung',
+ 'Currency' => 'Währung',
+ 'Current' => 'Aktuell',
+ 'Customer' => 'Kunde',
+ 'Customer Number' => 'Kundennummer',
+ 'Customer missing!' => 'Kundenname fehlt!',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Date Received' => 'Eingangsdatum',
+ 'Date received missing!' => 'Eingangsdatum fehlt!',
+ 'Day(s)' => 'Tage',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Delete' => 'Löschen',
+ 'Delete Schedule' => 'Zeitplan löschen',
+ 'Delivery Date' => 'Lieferdatum',
+ 'Department' => 'Abteilung',
+ 'Description' => 'Beschreibung',
+ 'Done' => 'Fertig',
+ 'E-mail' => 'E-Mail',
+ 'E-mail address missing!' => 'E-Mail-Adresse fehlt!',
+ 'E-mail message' => 'E-Mail-Nachricht ',
+ 'E-mailed' => 'E-Mail gesendet',
+ 'Edit Purchase Order' => 'Einkaufsbestellung bearbeiten',
+ 'Edit Quotation' => 'Offerte bearbeiten',
+ 'Edit Request for Quotation' => 'Offerte bearbeiten',
+ 'Edit Sales Order' => 'Verkaufsbeleg bearbeiten',
+ 'Employee' => 'Verkäufer',
+ 'Every' => 'Jeden',
+ 'Exchange Rate' => 'Wechselkurs',
+ 'Exchange rate missing!' => 'Wechselkurs fehlt!',
+ 'Extended' => 'Summe',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'For' => 'für',
+ 'From' => 'Von',
+ 'From Warehouse' => 'Vom Lagerhaus',
+ 'Generate Orders' => 'Aufträge erstellen',
+ 'Generate Purchase Orders' => 'Bestellungen erstellen',
+ 'Generate Purchase Orders from Sales Order' => 'Bestellungen von Aufträgen erstellen',
+ 'Generate Sales Order' => 'Einkaufsbestellung erstellen',
+ 'Generate Sales Order from Purchase Orders' => 'Auftrag anhand von Bestellungen erstellen',
+ 'Group' => 'Warengruppe',
+ 'ID' => 'ID',
+ 'In-line' => 'im Textkörper (Inline)',
+ 'Include Payment' => 'Bezahlung reinnehmen',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Internal Notes' => 'Interne Notizen',
+ 'Inventory saved!' => 'Inventar gespeichert!',
+ 'Inventory transferred!' => 'Inventar übertragen',
+ 'Invoice' => 'Rechnung',
+ 'Invoice Date missing!' => 'Rechnungsdatum fehlt!',
+ 'Invoice Number missing!' => 'Rechnungsnummer fehlt!',
+ 'Item' => 'Pos',
+ 'Item not on file!' => 'Dieser Artikel ist nicht in der Datenbank!',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Lead' => 'Anlaufzeit',
+ 'Manager' => 'Geschäftsführer',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Message' => 'Nachricht',
+ 'Month' => 'Monat',
+ 'Month(s)' => 'Monat(e)',
+ 'Next Date' => 'Nächstes Datum',
+ 'No.' => 'Pos.',
+ 'Notes' => 'Bemerkungen',
+ 'Nothing entered!' => 'Es wurde nichts eingegeben!',
+ 'Nothing selected!' => 'Es wurde nichts ausgewählt!',
+ 'Nothing to transfer!' => 'Es gibt nichts zu übertragen!',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Artikelnummer',
+ 'Number missing in Row' => 'Nummer fehlt in Zeile',
+ 'O' => 'O',
+ 'OH' => 'LU',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Open' => 'Offen',
+ 'Order' => 'Bestellung',
+ 'Order Date' => 'Bestelldatum',
+ 'Order Date missing!' => 'Bestelldatum fehlt!',
+ 'Order Number' => 'Bestellnummer',
+ 'Order Number missing!' => 'Bestellnummer fehlt!',
+ 'Order deleted!' => 'Bestellung gelöscht!',
+ 'Order generation failed!' => 'Auftragserstellung fehlgeschlagen!',
+ 'Order saved!' => 'Bestellung gespeichert!',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ihre Bestellnummer',
+ 'Packing List' => 'Packliste',
+ 'Packing List Date missing!' => 'Verpackungslisten-Datum fehlt!',
+ 'Packing List Number missing!' => 'Verpackungslistennummer fehlt!',
+ 'Part' => 'Artikel',
+ 'Part Number' => 'Artikelnummer',
+ 'Period' => 'Zeitraum',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Lagerliste',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Preis',
+ 'Print' => 'Drucken',
+ 'Print and Save' => 'Drucken und speichern',
+ 'Print and Save as new' => 'Drucken und als neu speichern',
+ 'Printed' => 'Gedruckt',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Dieses Projekt ist nicht in der Datenbank!',
+ 'Purchase Order' => 'Einkaufsbestellung',
+ 'Purchase Orders' => 'Einkaufsbestellungen',
+ 'Qty' => 'Menge',
+ 'Quarter' => 'Quartal',
+ 'Queue' => 'Warteschlange',
+ 'Queued' => 'In Warteschlange',
+ 'Quotation' => 'Offerte',
+ 'Quotation ' => 'Verkaufsofferte',
+ 'Quotation Date' => 'Offertendatum',
+ 'Quotation Date missing!' => 'Offertendatum fehlt!',
+ 'Quotation Number' => 'Offertenummer',
+ 'Quotation Number missing!' => 'Offertenummer fehlt!',
+ 'Quotation deleted!' => 'Offerte gelöscht!',
+ 'Quotations' => 'Offerten',
+ 'RFQ' => 'Offertanfrage',
+ 'RFQ ' => 'Einkaufsofferte ',
+ 'RFQ Number' => 'Einkaufsoffertennummer',
+ 'Recd' => 'Erh',
+ 'Receive Merchandise' => 'Artikeln einlagern',
+ 'Recurring Transaction' => 'Wiederkehrende Buchung',
+ 'Reference' => 'Referenz',
+ 'Remaining' => 'Rest',
+ 'Repeat' => 'Wiederholen',
+ 'Req' => 'Ben.',
+ 'Request for Quotation' => 'Offerteanfrage',
+ 'Request for Quotations' => 'Offertenanfragen',
+ 'Required by' => 'Erforderlich bis am',
+ 'SKU' => 'Lagerhaltungseinheit',
+ 'Sales Invoice' => 'Ausgangsrechnung',
+ 'Sales Order' => 'Auftragsbestätigung',
+ 'Sales Orders' => 'Auftragsbestätigungen',
+ 'Salesperson' => 'Verkäufer',
+ 'Save' => 'Speichern',
+ 'Save Schedule' => 'Zeitplan speichern',
+ 'Save as new' => 'als neu speichern',
+ 'Schedule' => 'Buchungstermine',
+ 'Scheduled' => 'geplant',
+ 'Screen' => 'Bildschirm',
+ 'Select Vendor' => 'Lieferant auswählen',
+ 'Select a Printer!' => 'Drucker auswählen!',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
+ 'Select items' => 'Bitte wählen Sie aus',
+ 'Select postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Select txt, postscript or PDF!' => 'Text, Postscript oder PDF auswählen!',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Serial No.' => 'Seriennummer',
+ 'Service' => 'Dienstleistung',
+ 'Ship' => 'Versenden',
+ 'Ship Merchandise' => 'Waren versenden',
+ 'Ship to' => 'Lieferung an',
+ 'Ship via' => 'Versandart',
+ 'Shipping Address' => 'Lieferanschrift',
+ 'Shipping Date' => 'Versanddatum',
+ 'Shipping Date missing!' => 'Versanddatum fehlt!',
+ 'Shipping Point' => 'Lieferort',
+ 'Startdate' => 'Eintrittsdatum',
+ 'State/Province' => 'Kanton',
+ 'Subject' => 'Betreff',
+ 'Subtotal' => 'Zwischensumme',
+ 'Tax' => 'MWST',
+ 'Tax Included' => 'MWST im Preis enthalten',
+ 'Terms' => 'Zahlungsbedingungen',
+ 'Text' => 'Text',
+ 'To' => 'Bis',
+ 'To Warehouse' => 'Zum Lager',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Handelsrabatt',
+ 'Transfer' => 'Ãœbertrag',
+ 'Transfer Inventory' => 'Inventarübertrag',
+ 'Transfer from' => 'umlagern von',
+ 'Transfer to' => 'Ãœbergabe an',
+ 'Translation not on file!' => 'Ãœbersetzung nicht in der Datenbank',
+ 'Unit' => 'Einheit',
+ 'Update' => 'Erneuern',
+ 'Valid until' => 'Gültig bis',
+ 'Vendor' => 'Lieferant',
+ 'Vendor Invoice' => 'Einkaufsrechnung',
+ 'Vendor Number' => 'Lieferantennummer',
+ 'Vendor missing!' => 'Lieferant fehlt!',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Warehouse' => 'Warenlager',
+ 'Warning!' => 'Warnung!',
+ 'Week(s)' => 'Woche(n)',
+ 'What type of item is this?' => 'Welche Artikelart ist das?',
+ 'Work Order' => 'Arbeitsblatt',
+ 'Year' => 'Jahr',
+ 'Year(s)' => 'Jahr(e)',
+ 'Yes' => 'Ja',
+ 'You are posting an existing transaction!' => 'Sie buchen eine existierende Buchung',
+ 'You are printing and posting an existing transaction!' => 'Sie drucken und buchen eine bereits bestehende Buchung',
+ 'You are printing and saving an existing order' => 'Sie drucken und speichern einen existierenden Auftrag',
+ 'You are printing and saving an existing quotation' => 'Sie drucken und speichern eine bereits bestehende Offerte',
+ 'You are saving an existing order' => 'Sie speichern einen bereits bestehenden Auftrag',
+ 'You are saving an existing quotation' => 'Sie speichern eine vorhandene Offerte',
+ 'Zip/Postal Code' => 'PLZ',
+ 'days' => 'Tage',
+ 'ea' => 'pro',
+ 'for' => 'für',
+ 'sent' => 'verschickt',
+ 'time(s)' => 'mal',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'bestellungen_konsolidieren' => 'consolidate_orders',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'zeitplan_löschen' => 'delete_schedule',
+ 'fertig' => 'done',
+ 'e_mail' => 'e_mail',
+ 'aufträge_erstellen' => 'generate_orders',
+ 'bestellungen_erstellen' => 'generate_purchase_orders',
+ 'einkaufsbestellung_erstellen' => 'generate_sales_order',
+ 'drucken' => 'print',
+ 'drucken_und_speichern' => 'print_and_save',
+ 'drucken_und_als_neu_speichern' => 'print_and_save_as_new',
+ 'einkaufsbestellung' => 'purchase_order',
+ 'offerte' => 'quotation',
+ 'verkaufsofferte' => 'quotation_',
+ 'offertanfrage' => 'rfq',
+ 'einkaufsofferte_' => 'rfq_',
+ 'ausgangsrechnung' => 'sales_invoice',
+ 'auftragsbestätigung' => 'sales_order',
+ 'speichern' => 'save',
+ 'zeitplan_speichern' => 'save_schedule',
+ 'als_neu_speichern' => 'save_as_new',
+ 'buchungstermine' => 'schedule',
+ 'lieferant_auswählen' => 'select_vendor',
+ 'lieferung_an' => 'ship_to',
+ 'Ãœbertrag' => 'transfer',
+ 'erneuern' => 'update',
+ 'einkaufsrechnung' => 'vendor_invoice',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/ch_utf/pe b/locale/ch_utf/pe
new file mode 100755
index 00000000..1fc431cb
--- /dev/null
+++ b/locale/ch_utf/pe
@@ -0,0 +1,168 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Active' => 'Aktiv',
+ 'Add' => 'Hinzufügen',
+ 'Add Group' => 'Gruppe erfassen',
+ 'Add Job' => 'Fertigung anlegen',
+ 'Add Pricegroup' => 'Preisgruppe erfassen',
+ 'Add Project' => 'Projekt erfassen',
+ 'Address' => 'Adresse',
+ 'All' => 'Alle',
+ 'Amount' => 'Betrag',
+ 'As of' => 'As of',
+ 'Assembly' => 'Erzeugnis',
+ 'Assembly stocked!' => 'Erzeugnis eingelagert!',
+ 'Bin' => 'Lagerort',
+ 'Cannot stock Assembly!' => 'Erzeugnis kann nicht eingelagert werden!',
+ 'Completed' => 'Fertig',
+ 'Continue' => 'Weiter',
+ 'Current' => 'Aktuell',
+ 'Customer' => 'Kunde',
+ 'Customer missing!' => 'Kundenname fehlt!',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Delete' => 'Löschen',
+ 'Description' => 'Beschreibung',
+ 'Description Translations' => 'Ãœbersetzte Beschreibungen',
+ 'Detail' => 'Einzelheiten',
+ 'Edit Description Translations' => 'Ãœbersetzte Beschreibungen bearbeiten',
+ 'Edit Group' => 'Gruppe bearbeiten',
+ 'Edit Job' => 'Auftrag bearbeiten',
+ 'Edit Pricegroup' => 'Preisgruppe bearbeiten',
+ 'Edit Project' => 'Projekt bearbeiten',
+ 'Employee' => 'Verkäufer',
+ 'Enddate' => 'Enddatum',
+ 'Failed to save order!' => 'Speichern der Bestellung schlug fehl!',
+ 'From' => 'Von',
+ 'Generate Sales Orders' => 'Einkaufsbestellungen erstellen',
+ 'Group' => 'Warengruppe',
+ 'Group Translations' => 'Gruppenübersetzung',
+ 'Group deleted!' => 'Gruppe gelöscht!',
+ 'Group missing!' => 'Gruppe fehlt!',
+ 'Group saved!' => 'Gruppe gespeichert!',
+ 'Groups' => 'Gruppen',
+ 'Inactive' => 'Inaktiv',
+ 'Income' => 'Ertrag',
+ 'Job' => 'Auftrag',
+ 'Job Number' => 'Auftragsnummer',
+ 'Job deleted!' => 'Auftrag gelöscht!',
+ 'Job saved!' => 'Auftrag gespeichert!',
+ 'Jobs' => 'Aufträge',
+ 'Language' => 'Sprache',
+ 'Languages not defined!' => 'Sprachen nicht definiert!',
+ 'Link Accounts' => 'Konten verknüpfen',
+ 'List Price' => 'Listenpreis',
+ 'Month' => 'Monat',
+ 'No open Projects!' => 'Keine offene Projekte!',
+ 'Notes' => 'Bemerkungen',
+ 'Nothing selected!' => 'Es wurde nichts ausgewählt!',
+ 'Number' => 'Projektnummer',
+ 'Orders generated!' => 'Bestellungen erstellt!',
+ 'Orphaned' => 'nie benutzt',
+ 'Part Number' => 'Artikelnummer',
+ 'Period' => 'Zeitraum',
+ 'Pricegroup' => 'Preisgruppe',
+ 'Pricegroup deleted!' => 'Preisgruppe gelöscht!',
+ 'Pricegroup missing!' => 'Preisgruppe fehlt!',
+ 'Pricegroup saved!' => 'Preisgruppe gespeichert!',
+ 'Pricegroups' => 'Preisgruppen',
+ 'Production' => 'Produktion',
+ 'Project' => 'Projekt',
+ 'Project Description Translations' => 'Übersetzung für Projektbeschreibungen',
+ 'Project Number' => 'Projektnummer',
+ 'Project deleted!' => 'Projekt gelöscht!',
+ 'Project saved!' => 'Projekt gespeichert!',
+ 'Projects' => 'Projekte',
+ 'Qty' => 'Menge',
+ 'Quarter' => 'Quartal',
+ 'Save' => 'Speichern',
+ 'Select Customer' => 'Kunde auswählen',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Sell Price' => 'Verkaufspreis',
+ 'Service Code' => 'Dienstleistungscode',
+ 'Startdate' => 'Startdatum',
+ 'Stock Finished Goods' => 'Lager fertiggestellte Güter',
+ 'Summary' => 'Zusammenfassung',
+ 'Tax' => 'MWST',
+ 'To' => 'Bis',
+ 'Transaction Dates' => 'Buchungsdaten',
+ 'Translation' => 'Ãœbersetzung',
+ 'Translation deleted!' => 'Übersetzung gelöscht!',
+ 'Translations saved!' => 'Ãœbersetzung gespeichert!',
+ 'Unit' => 'Einheit',
+ 'Update' => 'Erneuern',
+ 'Updated' => 'Erneuert am',
+ 'Vendor' => 'Lieferant',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Weight' => 'Gewicht',
+ 'Year' => 'Jahr',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'gruppe_erfassen' => 'add_group',
+ 'fertigung_anlegen' => 'add_job',
+ 'preisgruppe_erfassen' => 'add_pricegroup',
+ 'projekt_erfassen' => 'add_project',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'einkaufsbestellungen_erstellen' => 'generate_sales_orders',
+ 'speichern' => 'save',
+ 'kunde_auswählen' => 'select_customer',
+ 'erneuern' => 'update',
+};
+
+1;
+
diff --git a/locale/ch_utf/pos b/locale/ch_utf/pos
new file mode 100755
index 00000000..242a19eb
--- /dev/null
+++ b/locale/ch_utf/pos
@@ -0,0 +1,83 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Add POS Invoice' => 'Kassenbon erfassen',
+ 'Amount' => 'Betrag',
+ 'Business' => 'Branche',
+ 'Cannot post transaction!' => 'Rechnung kann nicht gebucht werden!',
+ 'Change' => 'Retourgeld',
+ 'Continue' => 'Weiter',
+ 'Credit Limit' => 'Kreditlimite',
+ 'Currency' => 'Währung',
+ 'Current' => 'Aktuell',
+ 'Customer' => 'Kunde',
+ 'Customer missing!' => 'Kundenname fehlt!',
+ 'Delete' => 'Löschen',
+ 'Department' => 'Abteilung',
+ 'Description' => 'Beschreibung',
+ 'Edit POS Invoice' => 'Kassenbon bearbeiten',
+ 'Exchange Rate' => 'Wechselkurs',
+ 'Exchange rate missing!' => 'Wechselkurs fehlt!',
+ 'Extended' => 'Summe',
+ 'From' => 'Von',
+ 'Language' => 'Sprache',
+ 'Memo' => 'Notiz',
+ 'Month' => 'Monat',
+ 'Number' => 'Artikelnummer',
+ 'Open' => 'Offen',
+ 'Period' => 'Zeitraum',
+ 'Post' => 'Buchen',
+ 'Posted!' => 'Verbucht!',
+ 'Price' => 'Preis',
+ 'Print' => 'Drucken',
+ 'Print and Post' => 'Drucken und Buchen',
+ 'Printed' => 'Gedruckt',
+ 'Qty' => 'Menge',
+ 'Quarter' => 'Quartal',
+ 'Receipts' => 'Quittungen',
+ 'Record in' => 'Buchen auf',
+ 'Remaining' => 'Rest',
+ 'Salesperson' => 'Verkäufer',
+ 'Screen' => 'Bildschirm',
+ 'Select a Printer!' => 'Drucker auswählen!',
+ 'Source' => 'Beleg',
+ 'Subtotal' => 'Zwischensumme',
+ 'Tax Included' => 'MWST im Preis enthalten',
+ 'To' => 'Bis',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Handelsrabatt',
+ 'Unit' => 'Einheit',
+ 'Update' => 'Erneuern',
+ 'Year' => 'Jahr',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'buchen' => 'post',
+ 'drucken' => 'print',
+ 'drucken_und_buchen' => 'print_and_post',
+ 'erneuern' => 'update',
+};
+
+1;
+
diff --git a/locale/ch_utf/ps b/locale/ch_utf/ps
new file mode 100755
index 00000000..4ad5cc52
--- /dev/null
+++ b/locale/ch_utf/ps
@@ -0,0 +1,399 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Aging' => 'Offene Verbindl.',
+ 'AP Outstanding' => 'Offene Verbindlichkeiten',
+ 'AP Transaction' => 'Eingangsbuchung',
+ 'AP Transactions' => 'Eingangsbuchungen',
+ 'AR Aging' => 'Forderungenspiegel',
+ 'AR Outstanding' => 'Offene Forderungen',
+ 'AR Transaction' => 'Ausgangsbuchung',
+ 'AR Transactions' => 'Ausgangsbuchungen',
+ 'Account' => 'Konto',
+ 'Account Number' => 'Kontonummer',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Accounts' => 'Konten',
+ 'Accrual' => 'vereinbart',
+ 'Add AP Transaction' => 'Eingangsbuchung erfassen',
+ 'Add AR Transaction' => 'Ausgangsbuchung erfassen',
+ 'Add POS Invoice' => 'Kassenbon erfassen',
+ 'Add Purchase Order' => 'Einkaufsbeleg erfassen',
+ 'Add Quotation' => 'Offerte erstellen',
+ 'Add Request for Quotation' => 'Offertanfrage',
+ 'Add Sales Invoice' => 'Ausgangsrechnung erfassen',
+ 'Add Sales Order' => 'Auftragsbestätigung',
+ 'Address' => 'Adresse',
+ 'Aged' => 'Veraltet',
+ 'Aged Overdue' => 'Alter überfällig',
+ 'All Accounts' => 'Alle Konten',
+ 'Amount' => 'Betrag',
+ 'Amount Due' => 'Betrag fällig',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Invoice Number' => 'Soll die Rechnung mit folgender Nummer wirklich gelöscht werden:',
+ 'Are you sure you want to delete Transaction' => 'Soll die Buchung wirklich gelöscht werden',
+ 'Attachment' => 'als Anhang',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Balance' => 'Bilanz',
+ 'Balance Sheet' => 'Bilanz',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Rechnungsadresse',
+ 'Bin' => 'Lagerort',
+ 'Bin List' => 'Lagerliste',
+ 'Business' => 'Branche',
+ 'Cannot delete invoice!' => 'Rechnung kann nicht gelöscht werden!',
+ 'Cannot delete transaction!' => 'Buchung kann nicht gelöscht werden!',
+ 'Cannot post invoice for a closed period!' => 'Rechnung kann nicht gebucht werden, weil die Periode bereits abgeschlossen inst!',
+ 'Cannot post invoice!' => 'Rechnung kann nicht gebucht werden!',
+ 'Cannot post payment for a closed period!' => 'Zahlung kann nicht gebucht werden, weil die Periode bereits abgeschlossen ist!',
+ 'Cannot post transaction for a closed period!' => 'Buchung kann nicht erfasst werden, weil die Periode bereits abgeschlossen ist!',
+ 'Cannot post transaction!' => 'Rechnung kann nicht gebucht werden!',
+ 'Cash' => 'vereinnahmt',
+ 'Cc' => 'E-Mailkopie',
+ 'Change' => 'Retourgeld',
+ 'Check' => 'Scheck',
+ 'City' => 'Ort',
+ 'Closed' => 'Geschlossen',
+ 'Company Name' => 'Firmenname',
+ 'Compare to' => 'Vergleichen mit',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Weiter',
+ 'Copies' => 'Kopien',
+ 'Country' => 'Land',
+ 'Credit' => 'Haben',
+ 'Credit Limit' => 'Kreditlimite',
+ 'Curr' => 'Währung',
+ 'Currency' => 'Währung',
+ 'Current' => 'Aktuell',
+ 'Current Earnings' => 'Aktuelles Einkommen',
+ 'Customer' => 'Kunde',
+ 'Customer Number' => 'Kundennummer',
+ 'Customer missing!' => 'Kundenname fehlt!',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Date Paid' => 'Zahlungsdatum',
+ 'Day(s)' => 'Tage',
+ 'Debit' => 'Soll',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Decimalplaces' => 'Dezimalstellen',
+ 'Delete' => 'Löschen',
+ 'Delete Schedule' => 'Zeitplan löschen',
+ 'Delivery Date' => 'Lieferdatum',
+ 'Department' => 'Abteilung',
+ 'Description' => 'Beschreibung',
+ 'Detail' => 'Einzelheiten',
+ 'Due Date' => 'Fälligkeitsdatum',
+ 'Due Date missing!' => 'Fälligkeitsdatum fehlt!',
+ 'E-mail' => 'E-Mail',
+ 'E-mail Statement to' => 'Mahnung per E-Mail an',
+ 'E-mail address missing!' => 'E-Mail-Adresse fehlt!',
+ 'E-mail message' => 'E-Mail-Nachricht ',
+ 'E-mailed' => 'E-Mail gesendet',
+ 'Edit AP Transaction' => 'Eingangsbuchung bearbeiten',
+ 'Edit AR Transaction' => 'Ausgangsbuchung bearbeiten',
+ 'Edit POS Invoice' => 'Kassenbon bearbeiten',
+ 'Edit Sales Invoice' => 'Ausgangsrechnung bearbeiten',
+ 'Employee' => 'Verkäufer',
+ 'Every' => 'Jeden',
+ 'Exch' => 'Wkurs.',
+ 'Exchange Rate' => 'Wechselkurs',
+ 'Exchange rate for payment missing!' => 'Wechselkurs für Bezahlung fehlt!',
+ 'Exchange rate missing!' => 'Wechselkurs fehlt!',
+ 'Extended' => 'Summe',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'For' => 'für',
+ 'From' => 'Von',
+ 'GIFI' => 'GIFI',
+ 'Group' => 'Warengruppe',
+ 'Heading' => 'Ãœberschrift',
+ 'ID' => 'ID',
+ 'In-line' => 'im Textkörper (Inline)',
+ 'Include Exchange Rate Difference' => 'Wechselkursunterschied aufnehmen',
+ 'Include Payment' => 'Bezahlung reinnehmen',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Income Statement' => 'Gewinn- und Verlustrechnung',
+ 'Internal Notes' => 'Interne Notizen',
+ 'Invoice' => 'Rechnung',
+ 'Invoice Date' => 'Rechnungsdatum',
+ 'Invoice Date missing!' => 'Rechnungsdatum fehlt!',
+ 'Invoice Number' => 'Rechnungsnummer',
+ 'Invoice Number missing!' => 'Rechnungsnummer fehlt!',
+ 'Invoice deleted!' => 'Rechung gelöscht!',
+ 'Item' => 'Pos',
+ 'Item not on file!' => 'Dieser Artikel ist nicht in der Datenbank!',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Language' => 'Sprache',
+ 'Manager' => 'Geschäftsführer',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Memo' => 'Notiz',
+ 'Message' => 'Nachricht',
+ 'Method' => 'Abrechnungsmethode',
+ 'Month' => 'Monat',
+ 'Month(s)' => 'Monat(e)',
+ 'N/A' => 'N.Z.',
+ 'Next Date' => 'Nächstes Datum',
+ 'No.' => 'Pos.',
+ 'Non-taxable Purchases' => 'MSTF-freie Einkäufe',
+ 'Non-taxable Sales' => 'MSTF-freie Verkäufe',
+ 'Notes' => 'Bemerkungen',
+ 'Nothing selected!' => 'Es wurde nichts ausgewählt!',
+ 'Nothing to print!' => 'Es wurde nichts gedruckt!',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Artikelnummer',
+ 'Number missing in Row' => 'Nummer fehlt in Zeile',
+ 'OH' => 'LU',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Open' => 'Offen',
+ 'Order' => 'Bestellung',
+ 'Order Date missing!' => 'Bestelldatum fehlt!',
+ 'Order Number' => 'Bestellnummer',
+ 'Order Number missing!' => 'Bestellnummer fehlt!',
+ 'Overdue' => 'Überfällig',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ihre Bestellnummer',
+ 'Packing List' => 'Packliste',
+ 'Packing List Date missing!' => 'Verpackungslisten-Datum fehlt!',
+ 'Packing List Number missing!' => 'Verpackungslistennummer fehlt!',
+ 'Paid' => 'Bezahlt',
+ 'Part' => 'Artikel',
+ 'Payment date missing!' => 'Zahlungsdatum fehlt!',
+ 'Payments' => 'Zahlungen',
+ 'Period' => 'Zeitraum',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Lagerliste',
+ 'Post' => 'Buchen',
+ 'Post as new' => 'Als neu buchen',
+ 'Posted!' => 'Verbucht!',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Preis',
+ 'Print' => 'Drucken',
+ 'Print and Post' => 'Drucken und Buchen',
+ 'Print and Post as new' => 'Drucken und als neu buchen',
+ 'Printed' => 'Gedruckt',
+ 'Project' => 'Projekt',
+ 'Project Number' => 'Projektnummer',
+ 'Project Transactions' => 'Projektbuchungen',
+ 'Project not on file!' => 'Dieses Projekt ist nicht in der Datenbank!',
+ 'Purchase Order' => 'Einkaufsbestellung',
+ 'Qty' => 'Menge',
+ 'Quarter' => 'Quartal',
+ 'Queue' => 'Warteschlange',
+ 'Queued' => 'In Warteschlange',
+ 'Quotation' => 'Offerte',
+ 'Quotation Date missing!' => 'Offertendatum fehlt!',
+ 'Quotation Number missing!' => 'Offertenummer fehlt!',
+ 'Recd' => 'Erh',
+ 'Receipt' => 'Quittung',
+ 'Receipts' => 'Quittungen',
+ 'Record in' => 'Buchen auf',
+ 'Recurring Transaction' => 'Wiederkehrende Buchung',
+ 'Reference' => 'Referenz',
+ 'Remaining' => 'Rest',
+ 'Repeat' => 'Wiederholen',
+ 'Report for' => 'Bericht für',
+ 'Required by' => 'Erforderlich bis am',
+ 'SKU' => 'Lagerhaltungseinheit',
+ 'Sales Invoice.' => 'Ausgangsrechnung.',
+ 'Sales Order' => 'Auftragsbestätigung',
+ 'Salesperson' => 'Verkäufer',
+ 'Save Schedule' => 'Zeitplan speichern',
+ 'Schedule' => 'Buchungstermine',
+ 'Scheduled' => 'geplant',
+ 'Screen' => 'Bildschirm',
+ 'Select a Printer!' => 'Drucker auswählen!',
+ 'Select all' => 'Alle auswählen',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
+ 'Select items' => 'Bitte wählen Sie aus',
+ 'Select payment' => 'Zahlung auswählen',
+ 'Select postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Select txt, postscript or PDF!' => 'Text, Postscript oder PDF auswählen!',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Serial No.' => 'Seriennummer',
+ 'Service' => 'Dienstleistung',
+ 'Ship' => 'Versenden',
+ 'Ship to' => 'Lieferung an',
+ 'Ship via' => 'Versandart',
+ 'Shipping Address' => 'Lieferanschrift',
+ 'Shipping Point' => 'Lieferort',
+ 'Source' => 'Beleg',
+ 'Standard' => 'Standard',
+ 'Startdate' => 'Eintrittsdatum',
+ 'State/Province' => 'Kanton',
+ 'Statement' => 'Zahlungserinnerung',
+ 'Statement sent to' => 'Zahlungserinnerung verschickt an',
+ 'Statements sent to printer!' => 'Zahlungserinnerungen gedruckt!',
+ 'Subject' => 'Betreff',
+ 'Subtotal' => 'Zwischensumme',
+ 'Summary' => 'Zusammenfassung',
+ 'Tax' => 'MWST',
+ 'Tax Included' => 'MWST im Preis enthalten',
+ 'Tax collected' => 'vereinnahmte MWST',
+ 'Tax paid' => 'Vorsteuer',
+ 'Text' => 'Text',
+ 'Till' => 'Kasse',
+ 'To' => 'Bis',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Handelsrabatt',
+ 'Transaction' => 'Buchung',
+ 'Transaction deleted!' => 'Buchung gelöscht!',
+ 'Transaction posted!' => 'Buchung getätigt!',
+ 'Translation not on file!' => 'Ãœbersetzung nicht in der Datenbank',
+ 'Trial Balance' => 'Saldenbilanz',
+ 'Unit' => 'Einheit',
+ 'Update' => 'Erneuern',
+ 'Vendor' => 'Lieferant',
+ 'Vendor Invoice.' => 'Einkaufsrechnung.',
+ 'Vendor Number' => 'Lieferantennummer',
+ 'Vendor missing!' => 'Lieferant fehlt!',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Warning!' => 'Warnung!',
+ 'Week(s)' => 'Woche(n)',
+ 'What type of item is this?' => 'Welche Artikelart ist das?',
+ 'Work Order' => 'Arbeitsblatt',
+ 'Year' => 'Jahr',
+ 'Year(s)' => 'Jahr(e)',
+ 'Yes' => 'Ja',
+ 'You are posting an existing transaction!' => 'Sie buchen eine existierende Buchung',
+ 'You are printing and posting an existing transaction!' => 'Sie drucken und buchen eine bereits bestehende Buchung',
+ 'You are printing and saving an existing order' => 'Sie drucken und speichern einen existierenden Auftrag',
+ 'You are printing and saving an existing quotation' => 'Sie drucken und speichern eine bereits bestehende Offerte',
+ 'You are saving an existing order' => 'Sie speichern einen bereits bestehenden Auftrag',
+ 'You are saving an existing quotation' => 'Sie speichern eine vorhandene Offerte',
+ 'Zip/Postal Code' => 'PLZ',
+ 'as at' => 'zum Stand',
+ 'ea' => 'pro',
+ 'for' => 'für',
+ 'for Period' => 'für den Zeitraum',
+ 'posted!' => 'gebucht!',
+ 'sent' => 'verschickt',
+ 'time(s)' => 'mal',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'eingangsbuchung' => 'ap_transaction',
+ 'ausgangsbuchung' => 'ar_transaction',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'zeitplan_löschen' => 'delete_schedule',
+ 'e_mail' => 'e_mail',
+ 'buchen' => 'post',
+ 'als_neu_buchen' => 'post_as_new',
+ 'drucken' => 'print',
+ 'drucken_und_buchen' => 'print_and_post',
+ 'drucken_und_als_neu_buchen' => 'print_and_post_as_new',
+ 'ausgangsrechnung_' => 'sales_invoice_',
+ 'auftragsbestätigung' => 'sales_order',
+ 'zeitplan_speichern' => 'save_schedule',
+ 'buchungstermine' => 'schedule',
+ 'alle_auswählen' => 'select_all',
+ 'lieferung_an' => 'ship_to',
+ 'erneuern' => 'update',
+ 'einkaufsrechnung_' => 'vendor_invoice_',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/ch_utf/pw b/locale/ch_utf/pw
new file mode 100755
index 00000000..a0ee73f6
--- /dev/null
+++ b/locale/ch_utf/pw
@@ -0,0 +1,15 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Continue' => 'Weiter',
+ 'Password' => 'Passwort',
+ 'Session expired!' => 'Sitzungsdauer abgelaufen!',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'weiter' => 'continue',
+};
+
+1;
+
diff --git a/locale/ch_utf/rc b/locale/ch_utf/rc
new file mode 100755
index 00000000..1a7f62d4
--- /dev/null
+++ b/locale/ch_utf/rc
@@ -0,0 +1,81 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Balance' => 'Bilanz',
+ 'Beginning Balance' => 'Anfangsbilanz',
+ 'Cleared' => 'Entlastet',
+ 'Continue' => 'Weiter',
+ 'Credit' => 'Haben',
+ 'Current' => 'Aktuell',
+ 'Date' => 'Datum',
+ 'Debit' => 'Soll',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Description' => 'Beschreibung',
+ 'Detail' => 'Einzelheiten',
+ 'Difference' => 'Differenz',
+ 'Done' => 'Fertig',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'From' => 'Von',
+ 'Include Exchange Rate Difference' => 'Wechselkursunterschied aufnehmen',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Month' => 'Monat',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Out of balance!' => 'Summen stimmen nicht überein!',
+ 'Outstanding' => 'Offen',
+ 'Period' => 'Zeitraum',
+ 'Quarter' => 'Quartal',
+ 'R' => 'R',
+ 'Reconciliation' => 'Kontenabgleich',
+ 'Reconciliation Report' => 'Kontenabgleichungsreport',
+ 'Select all' => 'Alle auswählen',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Source' => 'Beleg',
+ 'Statement Balance' => 'Auszugsbilanz',
+ 'Summary' => 'Zusammenfassung',
+ 'To' => 'Bis',
+ 'Update' => 'Erneuern',
+ 'Year' => 'Jahr',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'weiter' => 'continue',
+ 'fertig' => 'done',
+ 'alle_auswählen' => 'select_all',
+ 'erneuern' => 'update',
+};
+
+1;
+
diff --git a/locale/ch_utf/rp b/locale/ch_utf/rp
new file mode 100755
index 00000000..940e10be
--- /dev/null
+++ b/locale/ch_utf/rp
@@ -0,0 +1,207 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Aging' => 'Offene Verbindl.',
+ 'AR Aging' => 'Forderungenspiegel',
+ 'Account' => 'Konto',
+ 'Account Number' => 'Kontonummer',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Accounts' => 'Konten',
+ 'Accrual' => 'vereinbart',
+ 'Address' => 'Adresse',
+ 'Aged' => 'Veraltet',
+ 'Aged Overdue' => 'Alter überfällig',
+ 'All Accounts' => 'Alle Konten',
+ 'Amount' => 'Betrag',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Attachment' => 'als Anhang',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Balance' => 'Bilanz',
+ 'Balance Sheet' => 'Bilanz',
+ 'Bcc' => 'Bcc',
+ 'Cash' => 'vereinnahmt',
+ 'Cc' => 'E-Mailkopie',
+ 'Compare to' => 'Vergleichen mit',
+ 'Continue' => 'Weiter',
+ 'Copies' => 'Kopien',
+ 'Credit' => 'Haben',
+ 'Curr' => 'Währung',
+ 'Current' => 'Aktuell',
+ 'Current Earnings' => 'Aktuelles Einkommen',
+ 'Customer' => 'Kunde',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Day(s)' => 'Tage',
+ 'Debit' => 'Soll',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Decimalplaces' => 'Dezimalstellen',
+ 'Delete Schedule' => 'Zeitplan löschen',
+ 'Department' => 'Abteilung',
+ 'Description' => 'Beschreibung',
+ 'Detail' => 'Einzelheiten',
+ 'Due Date' => 'Fälligkeitsdatum',
+ 'E-mail' => 'E-Mail',
+ 'E-mail Statement to' => 'Mahnung per E-Mail an',
+ 'E-mail address missing!' => 'E-Mail-Adresse fehlt!',
+ 'E-mail message' => 'E-Mail-Nachricht ',
+ 'Every' => 'Jeden',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'For' => 'für',
+ 'From' => 'Von',
+ 'GIFI' => 'GIFI',
+ 'Heading' => 'Ãœberschrift',
+ 'ID' => 'ID',
+ 'In-line' => 'im Textkörper (Inline)',
+ 'Include Exchange Rate Difference' => 'Wechselkursunterschied aufnehmen',
+ 'Include Payment' => 'Bezahlung reinnehmen',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Income Statement' => 'Gewinn- und Verlustrechnung',
+ 'Invoice' => 'Rechnung',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Language' => 'Sprache',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Memo' => 'Notiz',
+ 'Message' => 'Nachricht',
+ 'Method' => 'Abrechnungsmethode',
+ 'Month' => 'Monat',
+ 'Month(s)' => 'Monat(e)',
+ 'N/A' => 'N.Z.',
+ 'Next Date' => 'Nächstes Datum',
+ 'Non-taxable Purchases' => 'MSTF-freie Einkäufe',
+ 'Non-taxable Sales' => 'MSTF-freie Verkäufe',
+ 'Nothing selected!' => 'Es wurde nichts ausgewählt!',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Artikelnummer',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Order' => 'Bestellung',
+ 'Overdue' => 'Überfällig',
+ 'PDF' => 'PDF',
+ 'Payments' => 'Zahlungen',
+ 'Period' => 'Zeitraum',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Drucken',
+ 'Project' => 'Projekt',
+ 'Project Number' => 'Projektnummer',
+ 'Project Transactions' => 'Projektbuchungen',
+ 'Project not on file!' => 'Dieses Projekt ist nicht in der Datenbank!',
+ 'Quarter' => 'Quartal',
+ 'Receipts' => 'Quittungen',
+ 'Recurring Transaction' => 'Wiederkehrende Buchung',
+ 'Reference' => 'Referenz',
+ 'Repeat' => 'Wiederholen',
+ 'Report for' => 'Bericht für',
+ 'Salesperson' => 'Verkäufer',
+ 'Save Schedule' => 'Zeitplan speichern',
+ 'Screen' => 'Bildschirm',
+ 'Select all' => 'Alle auswählen',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
+ 'Select postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Source' => 'Beleg',
+ 'Standard' => 'Standard',
+ 'Startdate' => 'Eintrittsdatum',
+ 'Statement' => 'Zahlungserinnerung',
+ 'Statement sent to' => 'Zahlungserinnerung verschickt an',
+ 'Statements sent to printer!' => 'Zahlungserinnerungen gedruckt!',
+ 'Subject' => 'Betreff',
+ 'Subtotal' => 'Zwischensumme',
+ 'Summary' => 'Zusammenfassung',
+ 'Tax' => 'MWST',
+ 'Tax collected' => 'vereinnahmte MWST',
+ 'Tax paid' => 'Vorsteuer',
+ 'Till' => 'Kasse',
+ 'To' => 'Bis',
+ 'Total' => 'Total',
+ 'Trial Balance' => 'Saldenbilanz',
+ 'Vendor' => 'Lieferant',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Warning!' => 'Warnung!',
+ 'Week(s)' => 'Woche(n)',
+ 'Year' => 'Jahr',
+ 'Year(s)' => 'Jahr(e)',
+ 'You are posting an existing transaction!' => 'Sie buchen eine existierende Buchung',
+ 'You are printing and posting an existing transaction!' => 'Sie drucken und buchen eine bereits bestehende Buchung',
+ 'You are printing and saving an existing order' => 'Sie drucken und speichern einen existierenden Auftrag',
+ 'You are printing and saving an existing quotation' => 'Sie drucken und speichern eine bereits bestehende Offerte',
+ 'You are saving an existing order' => 'Sie speichern einen bereits bestehenden Auftrag',
+ 'You are saving an existing quotation' => 'Sie speichern eine vorhandene Offerte',
+ 'as at' => 'zum Stand',
+ 'for' => 'für',
+ 'for Period' => 'für den Zeitraum',
+ 'sent' => 'verschickt',
+ 'time(s)' => 'mal',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'weiter' => 'continue',
+ 'zeitplan_löschen' => 'delete_schedule',
+ 'e_mail' => 'e_mail',
+ 'drucken' => 'print',
+ 'zeitplan_speichern' => 'save_schedule',
+ 'alle_auswählen' => 'select_all',
+};
+
+1;
+
diff --git a/locale/cn_utf/COPYING b/locale/cn_utf/COPYING
new file mode 100755
index 00000000..5f2f7bec
--- /dev/null
+++ b/locale/cn_utf/COPYING
@@ -0,0 +1,24 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2004
+#
+# Simplified Chinese (UTF-8) texts:
+#
+# BIG5 translation by: Carfield Yim <carfield@carfield.com.hk>
+# Converted to GB and then UTF-8 by: Edmund Lian <elian@inbrief.net>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/cn_utf/LANGUAGE b/locale/cn_utf/LANGUAGE
new file mode 100755
index 00000000..5353106f
--- /dev/null
+++ b/locale/cn_utf/LANGUAGE
@@ -0,0 +1 @@
+Chinese Simplified (UTF-8)
diff --git a/locale/cn_utf/aa b/locale/cn_utf/aa
new file mode 100755
index 00000000..17ef7586
--- /dev/null
+++ b/locale/cn_utf/aa
@@ -0,0 +1,163 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Outstanding' => '应付未付',
+ 'AP Transaction' => '应付记录',
+ 'AP Transactions' => '应付记录',
+ 'AR Outstanding' => '应收未收',
+ 'AR Transaction' => '应收记录',
+ 'AR Transactions' => '应收记录',
+ 'Account' => 'å¸æˆ·',
+ 'Accounting Menu' => '会计选å•',
+ 'Add AP Transaction' => '新增应付记录',
+ 'Add AR Transaction' => '新增应收记录',
+ 'Amount' => '总计',
+ 'Amount Due' => '应收å°è®¡',
+ 'Apr' => '四月',
+ 'April' => '四月',
+ 'Are you sure you want to delete Transaction' => '您是å¦ç¡®å®šè¦åˆ é™¤è®°å½•',
+ 'Aug' => '八月',
+ 'August' => '八月',
+ 'Cannot delete transaction!' => 'ä¸èƒ½åˆ é™¤è®°å½•',
+ 'Cannot post payment for a closed period!' => 'ä¸èƒ½åœ¨å·²å…³é—­çš„时段内过å¸æ¬¾é¡¹',
+ 'Cannot post transaction for a closed period!' => 'ä¸èƒ½åœ¨å·²å…³é—­çš„时段内过å¸è®°å½•!',
+ 'Cannot post transaction!' => 'ä¸èƒ½è¿‡å¸è®°å½•',
+ 'Check' => '检查',
+ 'Closed' => '已关闭',
+ 'Confirm!' => 'å…¥å¸æˆåŠŸ!',
+ 'Continue' => '继续',
+ 'Credit' => 'è´·æ–¹',
+ 'Credit Limit' => '信用é¢åº¦',
+ 'Curr' => 'å¸åˆ«',
+ 'Currency' => 'å¸åˆ«',
+ 'Current' => '现有',
+ 'Customer' => '客户',
+ 'Customer missing!' => '未指明客户',
+ 'Date' => '日期',
+ 'Date Paid' => '付款日期',
+ 'Debit' => '借方',
+ 'Dec' => 'å二月',
+ 'December' => 'å二月',
+ 'Delete' => '删除',
+ 'Department' => '部门',
+ 'Description' => '说明',
+ 'Detail' => '详情',
+ 'Due Date' => '到期日',
+ 'Due Date missing!' => '未指明到期日!',
+ 'Edit AP Transaction' => '编辑应付记录',
+ 'Edit AR Transaction' => '编辑应收记录',
+ 'Employee' => 'èŒå‘˜',
+ 'Exch' => '汇率',
+ 'Exchange Rate' => '汇率',
+ 'Exchange rate for payment missing!' => '未指明付款的汇率',
+ 'Exchange rate missing!' => '未指明汇率',
+ 'Feb' => '二月',
+ 'February' => '二月',
+ 'From' => '从',
+ 'ID' => 'ç¼–å·',
+ 'Include in Report' => '一并显示',
+ 'Invoice' => 'å‘票',
+ 'Invoice Date' => 'å‘票日期',
+ 'Invoice Date missing!' => '未指明å‘票日期!',
+ 'Invoice Number' => 'å‘票编å·',
+ 'Jan' => '一月',
+ 'January' => '一月',
+ 'Jul' => '七月',
+ 'July' => '七月',
+ 'Jun' => '六月',
+ 'June' => '六月',
+ 'Manager' => 'ç»ç†',
+ 'Mar' => '三月',
+ 'March' => '三月',
+ 'May' => '五月',
+ 'May ' => '五月',
+ 'Memo' => '备忘录',
+ 'Month' => '月份',
+ 'No.' => 'åºå·',
+ 'Notes' => '备注',
+ 'Nov' => 'å一月',
+ 'November' => 'å一月',
+ 'Oct' => 'å月',
+ 'October' => 'å月',
+ 'Open' => 'å¼€å¯',
+ 'Order' => '订å•',
+ 'Order Number' => '订å•ç¼–å·',
+ 'PO Number' => '采购å•ç¼–å·',
+ 'Paid' => '已付',
+ 'Payment date missing!' => '未指明付款日期!',
+ 'Payments' => '许多付款',
+ 'Period' => '时期',
+ 'Post' => '过å¸',
+ 'Post as new' => '当新的过å¸',
+ 'Print' => '列å°',
+ 'Print and Post' => '列å°åŠè¿‡å¸',
+ 'Print and Post as new' => '列å°åŠå½“新的过å¸',
+ 'Project' => '方案',
+ 'Quarter' => '季度',
+ 'Receipt' => '收款',
+ 'Remaining' => 'å°šä½™',
+ 'Sales Invoice.' => '销货å‘票',
+ 'Salesperson' => '销售人员',
+ 'Schedule' => '预定',
+ 'Sep' => 'ä¹æœˆ',
+ 'September' => 'ä¹æœˆ',
+ 'Ship to' => 'æµ·è¿è‡³',
+ 'Ship via' => '由海è¿',
+ 'Shipping Point' => 'æµ·è¿åœ°ç‚¹',
+ 'Source' => 'æ¥æº',
+ 'Subtotal' => 'å°è®¡',
+ 'Summary' => '摘è¦',
+ 'Tax' => '税金',
+ 'Tax Included' => 'å·³å«ç¨Žé‡‘',
+ 'Till' => '直到',
+ 'To' => '至',
+ 'Total' => '总计',
+ 'Transaction' => '记录',
+ 'Transaction deleted!' => '巳删除记录',
+ 'Transaction posted!' => '巳过å¸è®°å½•',
+ 'Update' => 'æ›´æ–°',
+ 'Vendor' => '供应商',
+ 'Vendor Invoice.' => '供应商å‘票',
+ 'Vendor missing!' => '未指明供应商',
+ 'Year' => '年份',
+ 'Yes' => '是',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ '应付记录' => 'ap_transaction',
+ '应收记录' => 'ar_transaction',
+ '继续' => 'continue',
+ '删除' => 'delete',
+ '过å¸' => 'post',
+ '当新的过å¸' => 'post_as_new',
+ '列å°' => 'print',
+ '列å°åŠè¿‡å¸' => 'print_and_post',
+ '列å°åŠå½“新的过å¸' => 'print_and_post_as_new',
+ '销货å‘票' => 'sales_invoice_',
+ '预定' => 'schedule',
+ 'æµ·è¿è‡³' => 'ship_to',
+ 'æ›´æ–°' => 'update',
+ '供应商å‘票' => 'vendor_invoice_',
+ '是' => 'yes',
+};
+
+1;
+
diff --git a/locale/cn_utf/admin b/locale/cn_utf/admin
new file mode 100755
index 00000000..eb477168
--- /dev/null
+++ b/locale/cn_utf/admin
@@ -0,0 +1,145 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Access Control' => 'æƒé™æŽ§åˆ¶',
+ 'Accounting' => '会计',
+ 'Add User' => '新增使用者',
+ 'Address' => '地å€',
+ 'Administration' => '系统管ç†',
+ 'Administrator' => '管ç†äºº',
+ 'All Datasets up to date!' => '所有资料皆已更新!',
+ 'Cannot create Lock!' => 'ä¸èƒ½å»ºç«‹é”',
+ 'Change Admin Password' => '更改管ç†å‘˜å¯†ç ',
+ 'Change Password' => '更改密ç ',
+ 'Click on login name to edit!' => '请按登入å称以进行修改!',
+ 'Company' => 'å…¬å¸',
+ 'Confirm' => '确认密ç ',
+ 'Connect to' => '连结到',
+ 'Continue' => '继续',
+ 'Create Chart of Accounts' => '建立å¸æˆ·å›¾è¡¨',
+ 'Create Dataset' => '建立资料集',
+ 'DBI not installed!' => '未安装 DBI 模组!',
+ 'Database' => '资料库',
+ 'Database Administration' => '资料库管ç†',
+ 'Database Driver not checked!' => '未选定资料库驱动程å¼!',
+ 'Database User missing!' => '未指明资料库使用者!',
+ 'Dataset' => '资料集',
+ 'Dataset missing!' => '未指明资料集!',
+ 'Dataset updated!' => '巳更新资料集',
+ 'Date Format' => '日期格å¼',
+ 'Delete' => '删除',
+ 'Delete Dataset' => '删除资料集',
+ 'Directory' => '目录',
+ 'Driver' => '驱动程å¼',
+ 'Dropdown Limit' => 'é™åˆ¶',
+ 'E-mail' => '电å­é‚®ä»¶',
+ 'Edit User' => '编辑使用者',
+ 'Existing Datasets' => '既有的资料集',
+ 'Fax' => '传真',
+ 'Host' => '主机',
+ 'Hostname missing!' => '未指明主机å称!',
+ 'Language' => '语言',
+ 'Lock System' => '系统é”上',
+ 'Lockfile created!' => '巳建立上é”档案!',
+ 'Lockfile removed!' => '巳移除上é”档案!',
+ 'Login' => '登入',
+ 'Login name missing!' => '未指明登入åå­—',
+ 'Logout' => '登出',
+ 'Manager' => 'ç»ç†',
+ 'Menu Width' => '选择å•å®½åº¦',
+ 'Multibyte Encoding' => 'Multibyte Encoding',
+ 'Name' => 'å称',
+ 'New Templates' => '新增模版',
+ 'No Database Drivers available!' => '没有å¯ç”¨çš„驱动程å¼!',
+ 'No Dataset selected!' => '未选定资料集!',
+ 'Nothing to delete!' => '没有å¯åˆ é™¤çš„项目',
+ 'Number Format' => 'æ•°å­—æ ¼å¼',
+ 'Oracle Database Administration' => 'Oracle 资料库管ç†',
+ 'Password' => '密ç ',
+ 'Password changed!' => '密ç å·³æ”¹',
+ 'Passwords do not match!' => '密ç å‹¿æ¯”é…!',
+ 'Pg Database Administration' => 'Pg 资料库管ç†',
+ 'PgPP Database Administration' => 'PgPP资料库管ç†',
+ 'Phone' => '电è¯å·ç ',
+ 'Port' => '埠å·',
+ 'Port missing!' => '未指明埠å·!',
+ 'Printer' => 'å°è¡¨æœº',
+ 'Save' => '储存',
+ 'Session Timeout' => '会è¯è¶…æ—¶',
+ 'Session expired!' => '会è¯è¿‡æœŸ',
+ 'Setup Templates' => '设定模版',
+ 'Signature' => 'ç­¾å',
+ 'Stylesheet' => 'æ ·å¼è¡¨',
+ 'Supervisor' => '管ç†äºº',
+ 'Templates' => '模版',
+ 'The following Datasets are not in use and can be deleted' => '下列资料集并未使用, å¯ä»¥åˆ é™¤',
+ 'The following Datasets need to be updated' => '下列资料集需è¦æ›´æ–°',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => '这是对既存资料æ¥æºçš„åˆæ­¥æ£€æŸ¥. 在此阶段, ä¸ä¼šåˆ é™¤æˆ–新增任何资料!',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'è‹¥è¦æ–°å¢žç¾¤ç»„内的使用者, 请编辑å称, 更改登入å, 然åŽå‚¨å­˜. 这样一æ¥, 新使用者会ä¿ç•™ç›¸åŒçš„å˜æ•°, 并以新的登入å存入.',
+ 'Unlock System' => 'å¼€å¯ç³»ç»Ÿ',
+ 'Update Dataset' => '更新资料集',
+ 'Use Templates' => '使用模版',
+ 'User' => '使用者',
+ 'User deleted!' => '巳删除使用者',
+ 'User saved!' => '巳储存使用者',
+ 'Version' => '版本',
+ 'You are logged out' => 'ä½ å·²ç»æ³¨é”€',
+ 'does not exist' => 'ä¸å­˜åœ¨',
+ 'is already a member!' => 'å·²ç»æ˜¯æˆå‘˜äº†!',
+ 'localhost' => '本地寄主',
+ 'locked!' => 'å·³é”上',
+ 'successfully created!' => 'æˆåŠŸå»ºç«‹!',
+ 'successfully deleted!' => 'æˆåŠŸåˆ é™¤!',
+ 'website' => '网站',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ '新增使用者' => 'add_user',
+ '更改管ç†å‘˜å¯†ç ' => 'change_admin_password',
+ '更改密ç ' => 'change_password',
+ '继续' => 'continue',
+ '建立资料集' => 'create_dataset',
+ '删除' => 'delete',
+ '删除资料集' => 'delete_dataset',
+ '系统é”上' => 'lock_system',
+ '登入' => 'login',
+ '登出' => 'logout',
+ 'oracle_资料库管ç†' => 'oracle_database_administration',
+ 'pg_资料库管ç†' => 'pg_database_administration',
+ 'pgpp资料库管ç†' => 'pgpp_database_administration',
+ '储存' => 'save',
+ 'å¼€å¯ç³»ç»Ÿ' => 'unlock_system',
+ '更新资料集' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/cn_utf/all b/locale/cn_utf/all
new file mode 100755
index 00000000..6043a5e3
--- /dev/null
+++ b/locale/cn_utf/all
@@ -0,0 +1,896 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+$self{charset} = 'UTF-8';
+
+
+$self{texts} = {
+ 'A' => '',
+ 'AP' => '应付å¸æ¬¾',
+ 'AP Aging' => '应付å¸é¾„分æž',
+ 'AP Outstanding' => '应付未付',
+ 'AP Transaction' => '应付交易',
+ 'AP Transactions' => '应付交易',
+ 'AR' => '应收å¸æ¬¾',
+ 'AR Aging' => '应收å¸é¾„分æž',
+ 'AR Outstanding' => '应收未收',
+ 'AR Transaction' => '应收交易',
+ 'AR Transactions' => '应收交易',
+ 'AR/AP' => '',
+ 'About' => '关于',
+ 'Above' => '上文',
+ 'Access Control' => 'æƒé™æŽ§åˆ¶',
+ 'Access Denied!' => 'éžå­˜å–!',
+ 'Account' => 'å¸æˆ·',
+ 'Account Number' => 'å¸æˆ·ç¼–å·',
+ 'Account Number missing!' => '未指明å¸æˆ·ç¼–å·!',
+ 'Account Type' => 'å¸æˆ·ç±»åˆ«',
+ 'Account Type missing!' => '未指明å¸æˆ·ç±»åˆ«!',
+ 'Account deleted!' => '巳删除å¸æˆ·',
+ 'Account does not exist!' => 'ä¸å­˜åœ¨å¸æˆ·',
+ 'Account saved!' => '巳储存å¸æˆ·',
+ 'Accounting' => '会计',
+ 'Accounting Menu' => '会计选å•',
+ 'Accounts' => 'å¸æˆ·',
+ 'Accrual' => '累积',
+ 'Activate Audit trail' => '活跃的审计线索',
+ 'Activate Audit trails' => '活跃的审计线索',
+ 'Active' => '活跃',
+ 'Add' => '新增',
+ 'Add AP Transaction' => '新增应付记录',
+ 'Add AR Transaction' => '新增应收记录',
+ 'Add Account' => '新增å¸æˆ·',
+ 'Add Assembly' => '新增商å“',
+ 'Add Business' => '新增业务',
+ 'Add Cash Transfer Transaction' => '新增现金转移å¸ç›®',
+ 'Add Customer' => '新增客户',
+ 'Add Deduction' => '新增扣除',
+ 'Add Department' => '新增部门',
+ 'Add Employee' => '新增èŒå‘˜',
+ 'Add Exchange Rate' => '新增外汇率',
+ 'Add GIFI' => '新增 GIFI',
+ 'Add General Ledger Transaction' => '新增总å¸',
+ 'Add Group' => '新增组',
+ 'Add Job' => '',
+ 'Add Labor/Overhead' => '新增劳工/ç»å¸¸è´¹ç”¨',
+ 'Add Language' => '新增语言',
+ 'Add POS Invoice' => '新增POSå‘票',
+ 'Add Part' => '新增原料',
+ 'Add Pricegroup' => '新增价格组',
+ 'Add Project' => '新增方案',
+ 'Add Purchase Order' => '新增采购å•',
+ 'Add Quotation' => '新增报价å•',
+ 'Add Request for Quotation' => '新增报价å•è¦æ±‚',
+ 'Add SIC' => '新增原文',
+ 'Add Sales Invoice' => '新增销售å‘票',
+ 'Add Sales Order' => '新增销货å•',
+ 'Add Service' => '新增æœåŠ¡',
+ 'Add Timecard' => '',
+ 'Add Transaction' => '新增交易',
+ 'Add User' => '新增使用者',
+ 'Add Vendor' => '新增供应商',
+ 'Add Vendor Invoice' => '新增供应商å‘票',
+ 'Add Warehouse' => '新增仓库',
+ 'Address' => '地å€',
+ 'Administration' => '系统管ç†',
+ 'Administrator' => '管ç†äºº',
+ 'After Deduction' => '扣除以åŽ',
+ 'All' => '全部',
+ 'All Accounts' => '全部å¸æˆ·',
+ 'All Datasets up to date!' => '所有资料皆已更新!',
+ 'All Items' => '全部项目',
+ 'Allowances' => '津贴',
+ 'Amount' => '总计',
+ 'Amount Due' => '应得的总计',
+ 'Amount missing!' => 'æ¼å¡«çš„总计',
+ 'Apr' => '四月',
+ 'April' => '四月',
+ 'Are you sure you want to delete Invoice Number' => '您确定è¦åˆ é™¤å‘票编å·',
+ 'Are you sure you want to delete Order Number' => '您是å¦ç¡®å®šè¦åˆ é™¤è®¢å•ç¼–å·',
+ 'Are you sure you want to delete Quotation Number' => '您是å¦ç¡®å®šè¦åˆ é™¤æŠ¥ä»·å•ç¼–å·',
+ 'Are you sure you want to delete Timecard for' => '',
+ 'Are you sure you want to delete Transaction' => '您是å¦ç¡®å®šè¦åˆ é™¤äº¤æ˜“',
+ 'Are you sure you want to remove the marked entries from the queue?' => '您是å¦ç¡®å®šè¦æ¶ˆé™¤æœ‰è®°å·çš„æ¡ç›®',
+ 'Assemblies' => '商å“',
+ 'Assemblies restocked!' => 'å·³é‡æ–°è¿›è´§çš„商å“',
+ 'Assembly' => '商å“',
+ 'Assembly stocked!' => '',
+ 'Asset' => '资产',
+ 'Attachment' => '附档',
+ 'Audit Control' => '稽核控制',
+ 'Audit trail disabled' => '有效的审计线索',
+ 'Audit trail enabled' => '无效的审计线索',
+ 'Audit trail removed up to' => '移除到此为止的审计线索',
+ 'Audit trails disabled' => '有效的审计线索',
+ 'Audit trails enabled' => '无效的审计线索',
+ 'Aug' => '八月',
+ 'August' => '八月',
+ 'Average Cost' => 'å¹³å‡æˆæœ¬',
+ 'Avg Cost' => 'å¹³å‡æˆæœ¬',
+ 'BIC' => '',
+ 'BOM' => 'æ料清å•',
+ 'Backup' => '备份',
+ 'Backup sent to' => '备份寄é€åˆ°',
+ 'Balance' => 'ä½™é¢',
+ 'Balance Sheet' => '资产负债表',
+ 'Based on' => '基于',
+ 'Bcc' => 'ä¸æ˜¾ç¤ºæŠ„é€',
+ 'Before Deduction' => '扣除之å‰',
+ 'Beginning Balance' => '起始余é¢',
+ 'Below' => '以下',
+ 'Billing Address' => 'å¸å•åœ°å€',
+ 'Bin' => 'ç®±',
+ 'Bin List' => '箱的明细表',
+ 'Bin Lists' => '箱清å•',
+ 'Books are open' => 'å¸ç°¿å·²å¼€å¯',
+ 'Break' => '休æ¯',
+ 'Business' => '业务',
+ 'Business Number' => '业务编å·',
+ 'Business deleted!' => '巳删除业务',
+ 'Business saved!' => '巳储存业务',
+ 'C' => '',
+ 'COGS' => '货销æˆæœ¬',
+ 'COGS account does not exist!' => '',
+ 'Cannot add timecard for a completed job!' => '',
+ 'Cannot change timecard for a completed job!' => '',
+ 'Cannot create Assembly' => '无法造æˆç»„件',
+ 'Cannot create Labor' => '无法造æˆåŠ³å·¥',
+ 'Cannot create Lock!' => 'ä¸èƒ½å»ºç«‹é”',
+ 'Cannot create Part' => '无法造æˆé›¶ä»¶',
+ 'Cannot create Service' => '无法造æˆæœåŠ¡',
+ 'Cannot delete Timecard!' => '',
+ 'Cannot delete account!' => 'ä¸èƒ½åˆ é™¤å¸æˆ·',
+ 'Cannot delete customer!' => 'ä¸èƒ½åˆ é™¤å®¢æˆ·',
+ 'Cannot delete default account!' => 'ä¸èƒ½åˆ é™¤é¢„设å¸æˆ·',
+ 'Cannot delete invoice!' => 'ä¸èƒ½åˆ é™¤å‘票',
+ 'Cannot delete item!' => 'ä¸èƒ½åˆ é™¤é¡¹ç›®',
+ 'Cannot delete order!' => 'ä¸èƒ½åˆ é™¤å®šå•',
+ 'Cannot delete quotation!' => 'ä¸èƒ½åˆ é™¤æŠ¥ä»·å•',
+ 'Cannot delete transaction!' => 'ä¸èƒ½åˆ é™¤äº¤æ˜“',
+ 'Cannot delete vendor!' => 'ä¸èƒ½åˆ é™¤ä¾›åº”商',
+ 'Cannot post Payment!' => 'ä¸èƒ½åŠ å…¥æ¬¾é¡¹',
+ 'Cannot post Receipt!' => 'ä¸èƒ½åŠ å…¥æ”¶æ®',
+ 'Cannot post invoice for a closed period!' => 'ä¸èƒ½åœ¨å·²å…³é—­çš„时段内加入å‘票',
+ 'Cannot post invoice!' => 'ä¸èƒ½åŠ å…¥å‘票',
+ 'Cannot post payment for a closed period!' => 'ä¸èƒ½åœ¨å·²å…³é—­çš„时段内加入款项',
+ 'Cannot post transaction for a closed period!' => 'ä¸èƒ½åœ¨å·²å…³é—­çš„时段内加入交易!',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => '',
+ 'Cannot post transaction!' => 'ä¸èƒ½åŠ å…¥äº¤æ˜“',
+ 'Cannot remove files!' => 'ä¸èƒ½ç§»é™¤æ¡£æ¡ˆ',
+ 'Cannot save account!' => 'ä¸èƒ½å‚¨å­˜å¸æˆ·',
+ 'Cannot save defaults!' => 'ä¸èƒ½å‚¨å­˜é¢„设',
+ 'Cannot save order!' => 'ä¸èƒ½å‚¨å­˜å®šå•',
+ 'Cannot save preferences!' => 'ä¸èƒ½å‚¨å­˜ä¼˜å…ˆé€‰æ‹© ',
+ 'Cannot save quotation!' => 'ä¸èƒ½å‚¨å­˜æŠ¥ä»·å•',
+ 'Cannot save timecard for a closed period!' => '',
+ 'Cannot save timecard!' => '',
+ 'Cannot set account for more than one of AR, AP or IC' => 'ä¸èƒ½è®¾ç½®å¤šäºŽä¸€ä¸ªåº”收å¸æ¬¾, 应付å¸æ¬¾æˆ–IC',
+ 'Cannot set multiple options for' => '',
+ 'Cannot set multiple options for Item' => '',
+ 'Cannot stock Assembly!' => '',
+ 'Cannot stock assemblies!' => 'ä¸èƒ½å¸¸å¤‡çš„商å“',
+ 'Cash' => '现金',
+ 'Cc' => '抄é€',
+ 'Change' => '更改',
+ 'Change Admin Password' => '更改管ç†å‘˜å¯†ç ',
+ 'Change Password' => '更改密ç ',
+ 'Charge' => '',
+ 'Chart of Accounts' => '会计科目表',
+ 'Check' => '检查',
+ 'Check Inventory' => '检查存货清å•',
+ 'Checks' => '检查',
+ 'City' => '城市',
+ 'Cleared' => '已清除',
+ 'Click on login name to edit!' => '请按登入å称以进行修改!',
+ 'Clocked' => '',
+ 'Close Books up to' => '关闭到此为止的å¸ç°¿',
+ 'Closed' => '已关闭',
+ 'Code' => 'ç¼–ç ',
+ 'Code missing!' => '未指明编ç ',
+ 'Company' => 'å…¬å¸',
+ 'Company Name' => 'å…¬å¸å称',
+ 'Compare to' => '对照',
+ 'Completed' => '',
+ 'Components' => '零件',
+ 'Confirm' => '确认密ç ',
+ 'Confirm!' => 'å…¥å¸æˆåŠŸ!',
+ 'Connect to' => '连结到',
+ 'Contact' => '连络人',
+ 'Continue' => '继续',
+ 'Contra' => '相å',
+ 'Copies' => '副本',
+ 'Copy to COA' => 'å¤åˆ¶åˆ° COA',
+ 'Cost' => 'æˆæœ¬',
+ 'Cost Center' => 'æˆæœ¬ä¸­å¿ƒ',
+ 'Could not save pricelist!' => '',
+ 'Could not save!' => 'ä¸èƒ½å‚¨å­˜',
+ 'Could not transfer Inventory!' => '存货清å•ä¸èƒ½è½¬ç§»',
+ 'Country' => '国家',
+ 'Create Chart of Accounts' => '建立å¸æˆ·å›¾è¡¨',
+ 'Create Dataset' => '建立资料集',
+ 'Credit' => 'è´·æ–¹',
+ 'Credit Limit' => '信用é¢åº¦',
+ 'Curr' => 'ç›®å‰',
+ 'Currency' => 'å¸åˆ«',
+ 'Current' => '现有',
+ 'Current Earnings' => '现有收益',
+ 'Customer' => '客户',
+ 'Customer History' => '客户历å²',
+ 'Customer Number' => '客户编å·',
+ 'Customer deleted!' => '巳删除客户',
+ 'Customer missing!' => '未指明客户',
+ 'Customer not on file!' => '客户未存档',
+ 'Customer saved!' => '巳储存客户',
+ 'Customers' => '客户',
+ 'DBI not installed!' => '未安装 DBI 模组!',
+ 'DOB' => '生日',
+ 'Database' => '资料库',
+ 'Database Administration' => '资料库管ç†',
+ 'Database Driver not checked!' => '未选定资料库驱动程å¼!',
+ 'Database Host' => '资料库主机',
+ 'Database User missing!' => '未指明资料库使用者!',
+ 'Dataset' => '资料集',
+ 'Dataset is newer than version!' => '较新资料集',
+ 'Dataset missing!' => '未指明资料集!',
+ 'Dataset updated!' => '巳更新资料集',
+ 'Date' => '日期',
+ 'Date Format' => '日期格å¼',
+ 'Date Paid' => '付款日期',
+ 'Date Received' => '收款日期',
+ 'Date missing!' => '未指明日期',
+ 'Date received missing!' => '未指明收款日期',
+ 'Date worked' => '',
+ 'Day' => 'æ—¥',
+ 'Day(s)' => 'æ—¥',
+ 'Days' => 'æ—¥',
+ 'Debit' => '借方',
+ 'Dec' => 'å二月',
+ 'December' => 'å二月',
+ 'Decimalplaces' => 'å°æ•°çš„ä½ç½®',
+ 'Decrease' => 'å‡å°‘',
+ 'Deduct after' => 'å‡å°‘以åŽ',
+ 'Deduction deleted!' => '巳删除å‡å°‘',
+ 'Deduction saved!' => '巳储存å‡å°‘',
+ 'Deductions' => 'å‡é™¤é¢',
+ 'Default Template' => '',
+ 'Defaults' => '预设',
+ 'Defaults saved!' => '巳储存预设',
+ 'Delete' => '删除',
+ 'Delete Account' => '删除å¸æˆ·',
+ 'Delete Dataset' => '删除资料集',
+ 'Delete Schedule' => '删除预定',
+ 'Deleting a language will also delete the templates for the language' => '',
+ 'Delivery Date' => '到期日',
+ 'Department' => '部门',
+ 'Department deleted!' => '巳删除部门',
+ 'Department saved!' => '巳储存部门',
+ 'Departments' => '部门',
+ 'Deposit' => '存款',
+ 'Description' => '说明',
+ 'Description Translations' => '翻译æè¿°',
+ 'Description missing!' => '未指明æè¿°',
+ 'Detail' => '详情',
+ 'Difference' => '差异',
+ 'Directory' => '目录',
+ 'Discount' => '折扣',
+ 'Done' => '巳完æˆ',
+ 'Drawing' => '图画',
+ 'Driver' => '驱动程å¼',
+ 'Dropdown Limit' => 'é™åˆ¶',
+ 'Due Date' => '到期日',
+ 'Due Date missing!' => '未指明到期日!',
+ 'E-mail' => '电å­é‚®ä»¶',
+ 'E-mail Statement to' => '电邮会计账到',
+ 'E-mail address missing!' => '未指明电å­é‚®ä»¶ä½å€!',
+ 'E-mail message' => 'å‘é€ç”µé‚®',
+ 'E-mailed' => '巳电邮',
+ 'Edit' => '编辑',
+ 'Edit AP Transaction' => '编辑应付记录',
+ 'Edit AR Transaction' => '编辑应收记录',
+ 'Edit Account' => '编辑å¸æˆ·',
+ 'Edit Assembly' => '编辑商å“',
+ 'Edit Business' => '编辑业务',
+ 'Edit Cash Transfer Transaction' => '编辑现金转移',
+ 'Edit Customer' => '编辑客户',
+ 'Edit Deduction' => '编辑å‡é™¤é¢',
+ 'Edit Department' => '编辑部门',
+ 'Edit Description Translations' => '编辑翻译æè¿°',
+ 'Edit Employee' => '编辑èŒå‘˜',
+ 'Edit GIFI' => '编辑 GIFI',
+ 'Edit General Ledger Transaction' => '编辑总å¸',
+ 'Edit Group' => '编辑组',
+ 'Edit Job' => '',
+ 'Edit Labor/Overhead' => '编辑劳工/ç»å¸¸è´¹ç”¨',
+ 'Edit Language' => '编辑语言',
+ 'Edit POS Invoice' => '编辑POS',
+ 'Edit Part' => '编辑原料',
+ 'Edit Preferences for' => '设定使用者',
+ 'Edit Pricegroup' => '编辑价格组',
+ 'Edit Project' => '编辑方案',
+ 'Edit Purchase Order' => '编辑采购å•',
+ 'Edit Quotation' => '编辑报价å•',
+ 'Edit Request for Quotation' => '编辑报价å•è¦æ±‚',
+ 'Edit SIC' => '编辑原文',
+ 'Edit Sales Invoice' => '编辑销售å‘票',
+ 'Edit Sales Order' => '编辑销货å•',
+ 'Edit Service' => '编辑æœåŠ¡',
+ 'Edit Template' => '编辑模版',
+ 'Edit Timecard' => '',
+ 'Edit User' => '编辑使用者',
+ 'Edit Vendor' => '编辑供应商',
+ 'Edit Vendor Invoice' => '编辑供应商å‘票',
+ 'Edit Warehouse' => '编辑仓库',
+ 'Employee' => 'èŒå‘˜',
+ 'Employee Name' => 'èŒå‘˜å§“å',
+ 'Employee Number' => 'å·¥å·',
+ 'Employee deleted!' => '巳删除èŒå‘˜',
+ 'Employee pays' => '付款给èŒå‘˜',
+ 'Employee saved!' => '巳储存èŒå‘˜',
+ 'Employees' => 'èŒå‘˜',
+ 'Employer' => '雇主',
+ 'Employer pays' => '付款给雇主',
+ 'Enddate' => '结æŸæ—¥',
+ 'Ends' => '',
+ 'Enforce transaction reversal for all dates' => '强制所有日期的交易回å¤',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => '请键入以冒å·åˆ†éš”的英文字æ¯, æ¯é¡¹ä¸è¶…过三个字 (如 CAD:USD:EUR), 作为您的本国åŠå¤–国货å¸',
+ 'Equity' => 'è‚¡æƒ',
+ 'Every' => '',
+ 'Excempt age <' => '',
+ 'Exch' => '汇率',
+ 'Exchange Rate' => '汇率',
+ 'Exchange rate for payment missing!' => '未指明付款的汇率',
+ 'Exchange rate missing!' => '未指明汇率',
+ 'Existing Datasets' => '既有的资料集',
+ 'Expense' => '费用',
+ 'Expense account does not exist!' => '费用科目勿存在',
+ 'Expense/Asset' => '费用/资产',
+ 'Extended' => '巳扩大',
+ 'FX' => '',
+ 'Failed to save order!' => '',
+ 'Fax' => '传真',
+ 'Feb' => '二月',
+ 'February' => '二月',
+ 'For' => '',
+ 'Foreign Exchange Gain' => '外汇收益',
+ 'Foreign Exchange Loss' => '外汇æŸå¤±',
+ 'Friday' => '',
+ 'From' => '从',
+ 'From Warehouse' => '从仓库',
+ 'GIFI' => '',
+ 'GIFI deleted!' => '巳删除',
+ 'GIFI missing!' => '未指明 GIFI!',
+ 'GIFI saved!' => '巳储存',
+ 'GL' => '',
+ 'GL Reference Number' => '',
+ 'GL Transaction' => 'GL交易',
+ 'General Ledger' => '总å¸',
+ 'Generate' => '产生',
+ 'Generate Orders' => '产生订å•',
+ 'Generate Purchase Orders' => '产生采购å•',
+ 'Generate Purchase Orders from Sales Order' => '用销货å•äº§ç”Ÿé‡‡è´­å•',
+ 'Generate Sales Order' => '产生销货å•',
+ 'Generate Sales Order from Purchase Orders' => '用销货å•äº§ç”Ÿé‡‡è´­å•',
+ 'Generate Sales Orders' => '',
+ 'Goods & Services' => '货物åŠæœåŠ¡',
+ 'Group' => '组',
+ 'Group Items' => '组的项目',
+ 'Group Translations' => '组的翻译',
+ 'Group deleted!' => '巳删除的组',
+ 'Group missing!' => '未指明的组',
+ 'Group saved!' => '巳储存的组',
+ 'Groups' => '组',
+ 'HR' => '人事管ç†',
+ 'HTML Templates' => 'HTML 表å•',
+ 'Heading' => '标题, ',
+ 'History' => '历å²',
+ 'Home Phone' => 'ä½å®…电è¯',
+ 'Host' => '主机',
+ 'Hostname missing!' => '未指明主机å称!',
+ 'IBAN' => '',
+ 'ID' => 'ç¼–å·',
+ 'Image' => 'å½¢åƒ',
+ 'In-line' => '行内',
+ 'Inactive' => '消æž',
+ 'Include Exchange Rate Difference' => '包å«å¤–汇差è·',
+ 'Include Payment' => '',
+ 'Include in Report' => '一并显示',
+ 'Include in drop-down menus' => '包å«åœ¨ä¸‹æ‹‰å¼é€‰å•ä¸­',
+ 'Income' => '收入',
+ 'Income Statement' => 'æŸç›Šè¡¨',
+ 'Income account does not exist!' => '收入科目勿存在',
+ 'Incorrect Dataset version!' => '资料集版本错误!',
+ 'Increase' => '增加',
+ 'Individual Items' => '个别的项目',
+ 'Internal Notes' => '内部备忘录',
+ 'Inventory' => '库存',
+ 'Inventory account does not exist!' => '存货科目勿存在',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => '在åœç”¨æ­¤é¡¹ç»„åˆå“之å‰, 存货数é‡å¿…需为零!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'åœç”¨æ­¤é¡¹é›¶ä»¶ä¹‹å‰, 存货数é‡å¿…需为零!',
+ 'Inventory saved!' => '巳储存存货',
+ 'Inventory transferred!' => '转移的存货',
+ 'Invoice' => 'å‘票',
+ 'Invoice Date' => 'å‘票日期',
+ 'Invoice Date missing!' => '未指明å‘票日期!',
+ 'Invoice Number' => 'å‘票编å·',
+ 'Invoice Number missing!' => '未指明å‘票编å·!',
+ 'Invoice deleted!' => '巳删除å‘票',
+ 'Invoices' => 'å‘票',
+ 'Is this a summary account to record' => '此为总结科目�',
+ 'Item already on pricelist!' => '',
+ 'Item deleted!' => '巳删除项目',
+ 'Item not on file!' => '查无此项目',
+ 'Items' => '项目',
+ 'Jan' => '一月',
+ 'January' => '一月',
+ 'Job' => '',
+ 'Job Name' => '',
+ 'Job Number' => '',
+ 'Job Number missing!' => '',
+ 'Job deleted!' => '',
+ 'Job saved!' => '',
+ 'Jobs' => '',
+ 'Jul' => '七月',
+ 'July' => '七月',
+ 'Jun' => '六月',
+ 'June' => '六月',
+ 'LaTeX Templates' => 'LaTex 模版',
+ 'Labor Code' => '',
+ 'Labor/Overhead' => '劳工/ç»å¸¸è´¹ç”¨',
+ 'Language' => '语言',
+ 'Language deleted!' => '巳删除语言',
+ 'Language saved!' => '巳储存语言',
+ 'Languages' => '语言',
+ 'Languages not defined!' => 'ä¸èƒ½è¾¨è®¤è¯­è¨€',
+ 'Last Cost' => '最åŽæˆæœ¬',
+ 'Last Numbers & Default Accounts' => '上一笔编å·åŠé¢„设å¸æˆ·',
+ 'Lead' => '交货期',
+ 'Leadtime' => '总需时',
+ 'Leave host and port field empty unless you want to make a remote connection.' => '除éžæ‚¨æƒ³è¦è¿›è¡Œè¿œç«¯è¿žçº¿, å¦åˆ™è¯·å°†ä¸»æœºåŠåŸ å·ç•™ç™½.',
+ 'Liability' => '负债',
+ 'Licensed to' => '授æƒäºˆ',
+ 'Line Total' => '总列数',
+ 'Link' => '连结',
+ 'Link Accounts' => '连结å¸æˆ·',
+ 'List' => '牌价',
+ 'List Accounts' => '列出å¸å·',
+ 'List Businesses' => '列出业务',
+ 'List Departments' => '列出部门',
+ 'List GIFI' => '列出 GIFI',
+ 'List Languages' => '列出语言',
+ 'List Price' => '列出价',
+ 'List Projects' => '列出方案',
+ 'List SIC' => '列出SIC',
+ 'List Transactions' => '列出交易',
+ 'List Warehouses' => '列出仓库',
+ 'Lock System' => '系统é”上',
+ 'Lockfile created!' => '巳建立上é”档案!',
+ 'Lockfile removed!' => '巳移除上é”档案!',
+ 'Login' => '登入',
+ 'Login name missing!' => '未指明登入åå­—',
+ 'Logout' => '登出',
+ 'Make' => '制造',
+ 'Manager' => 'ç»ç†',
+ 'Mar' => '三月',
+ 'March' => '三月',
+ 'Marked entries printed!' => '巳列å°æœ‰è®°å·çš„会计项目',
+ 'Markup' => '涨价',
+ 'Maximum' => '最大',
+ 'May' => '五月',
+ 'May ' => '五月',
+ 'Memo' => '备忘录',
+ 'Menu Width' => '选择å•å®½åº¦',
+ 'Message' => '讯æ¯',
+ 'Method' => '方法',
+ 'Microfiche' => 'å•ç‰‡ç¼©å½±èƒ¶ç‰‡',
+ 'Model' => 'åž‹å·',
+ 'Monday' => '',
+ 'Month' => '月份',
+ 'Month(s)' => '月',
+ 'Months' => '月',
+ 'Multibyte Encoding' => 'Multibyte Encoding',
+ 'N/A' => 'ä¸é€‚用',
+ 'Name' => 'å称',
+ 'Name missing!' => '未指明åå­—',
+ 'New Templates' => '新增模版',
+ 'New Window' => '新视窗',
+ 'Next' => '',
+ 'Next Date' => '',
+ 'Next Number' => '',
+ 'No' => 'å¦',
+ 'No Database Drivers available!' => '没有å¯ç”¨çš„驱动程å¼!',
+ 'No Dataset selected!' => '未选定资料集!',
+ 'No Employees on file!' => '',
+ 'No Labor codes on file!' => '',
+ 'No email address for' => '未指明电å­é‚®ä»¶ä½ç½®',
+ 'No open Jobs!' => '',
+ 'No open Projects!' => '',
+ 'No.' => 'å¦',
+ 'Non-taxable' => 'ä¸åº”课税',
+ 'Non-taxable Purchases' => 'ä¸åº”课税的采购',
+ 'Non-taxable Sales' => 'ä¸åº”课税的销售',
+ 'Non-tracking Items' => '',
+ 'Notes' => '备注',
+ 'Nothing entered!' => '没有巳输入',
+ 'Nothing selected!' => '没有巳选择',
+ 'Nothing to delete!' => '没有å¯åˆ é™¤çš„项目',
+ 'Nothing to print!' => '',
+ 'Nothing to transfer!' => '没有å¯è½¬ç§»çš„项目',
+ 'Nov' => 'å一月',
+ 'November' => 'å一月',
+ 'Number' => 'ç¼–å·',
+ 'Number Format' => 'æ•°å­—æ ¼å¼',
+ 'Number missing in Row' => '此列中缺少数值',
+ 'O' => '',
+ 'OH' => '',
+ 'Obsolete' => 'åœç”¨',
+ 'Oct' => 'å月',
+ 'October' => 'å月',
+ 'On Hand' => '巳有存é‡',
+ 'Open' => 'å¼€å¯',
+ 'Oracle Database Administration' => 'Oracle 资料库管ç†',
+ 'Order' => '订å•',
+ 'Order Date' => '下å•æ—¥æœŸ',
+ 'Order Date missing!' => '未指明下å•æ—¥æœŸ!',
+ 'Order Entry' => '下å•é¡¹ç›®',
+ 'Order Number' => '订å•ç¼–å·',
+ 'Order Number missing!' => '未指明订å•ç¼–å·!',
+ 'Order deleted!' => '巳删除订å•',
+ 'Order generation failed!' => '订å•äº§ç”Ÿå¤±è´¥!',
+ 'Order saved!' => '巳储存订å•',
+ 'Orders generated!' => '',
+ 'Orphaned' => '无主',
+ 'Out of balance transaction!' => 'ä¸å调交易',
+ 'Out of balance!' => 'ä¸åè°ƒ',
+ 'Outstanding' => '未付',
+ 'PDF' => 'PDF',
+ 'PO Number' => '采购å•ç¼–å·',
+ 'POS' => '收款å°',
+ 'POS Invoice' => 'POSå‘票',
+ 'Packing List' => '出货å•',
+ 'Packing List Date missing!' => '未指明包装清å•æ—¥æœŸ!',
+ 'Packing List Number missing!' => '未指明包装清å•ç¼–å·!',
+ 'Packing Lists' => '出货å•',
+ 'Paid' => '已付',
+ 'Part' => '原料',
+ 'Part Number' => '',
+ 'Partnumber' => 'æ–™å·',
+ 'Parts' => '原料',
+ 'Password' => '密ç ',
+ 'Password changed!' => '密ç å·³æ”¹',
+ 'Password does not match!' => '密ç å‹¿æ¯”é…',
+ 'Passwords do not match!' => '密ç å‹¿æ¯”é…!',
+ 'Payables' => '应付科目',
+ 'Payment' => '付款',
+ 'Payment date missing!' => '未指明付款日期!',
+ 'Payment posted!' => '巳加入付款',
+ 'Payments' => '付款',
+ 'Payments posted!' => '',
+ 'Payroll Deduction' => '薪金å‡é™¤é¢',
+ 'Period' => '时期',
+ 'Pg Database Administration' => 'Pg 资料库管ç†',
+ 'PgPP Database Administration' => 'PgPP资料库管ç†',
+ 'Phone' => '电è¯å·ç ',
+ 'Pick List' => '选择å•',
+ 'Pick Lists' => '拣货清å•',
+ 'Port' => '埠å·',
+ 'Port missing!' => '未指明埠å·!',
+ 'Pos' => '',
+ 'Post' => '加入',
+ 'Post as new' => '当新的加入',
+ 'Posted!' => '巳加入',
+ 'Posting' => '在过å¸',
+ 'Posting failed!' => '',
+ 'Postscript' => '附言',
+ 'Preferences' => '个人设定',
+ 'Preferences saved!' => '个人设定已储存!',
+ 'Prepayment' => '预缴',
+ 'Price' => 'ä»·æ ¼',
+ 'Pricegroup' => '价格组',
+ 'Pricegroup deleted!' => '巳删除价格组',
+ 'Pricegroup missing!' => '未指明价格组',
+ 'Pricegroup saved!' => '巳储存价格组',
+ 'Pricegroups' => '价格组',
+ 'Pricelist' => '',
+ 'Print' => '列å°',
+ 'Print and Post' => '列å°åŠè¿‡å¸',
+ 'Print and Post as new' => '列å°åŠå½“新的过å¸',
+ 'Print and Save' => '打å°åŠå‚¨å­˜',
+ 'Print and Save as new' => '列å°åŠå¦å­˜æ–°æ¡£',
+ 'Print and post as new' => '',
+ 'Print and save as new' => '',
+ 'Printed' => '巳列å°',
+ 'Printer' => 'å°è¡¨æœº',
+ 'Printing' => '在列å°',
+ 'Printing ... ' => '正列å°',
+ 'Process Transactions' => '',
+ 'Production' => '',
+ 'Profit Center' => '利润中心',
+ 'Project' => '方案',
+ 'Project Description Translations' => '方案æ述的翻译',
+ 'Project Name' => '',
+ 'Project Number' => '方案å·ç ',
+ 'Project Number missing!' => '未指明方案å·ç ',
+ 'Project Transactions' => '方案交易',
+ 'Project deleted!' => '巳删除方案',
+ 'Project not on file!' => '方案内无此档案',
+ 'Project saved!' => '巳储存方案',
+ 'Project/Job Name' => '',
+ 'Project/Job Number' => '',
+ 'Projects' => '方案',
+ 'Purchase Order' => '采购å•',
+ 'Purchase Order Number' => '采购å•ç¼–å·',
+ 'Purchase Orders' => '采购å•',
+ 'Qty' => 'æ•°é‡',
+ 'Quantity exceeds available units to stock!' => '超过å¯åº“存的数é‡',
+ 'Quarter' => '季度',
+ 'Quotation' => '报价å•',
+ 'Quotation ' => '报价å•',
+ 'Quotation Date' => '报价å•æ—¥æœŸ',
+ 'Quotation Date missing!' => '未指明报价å•æ—¥æœŸ',
+ 'Quotation Number' => '报价å•å·ç ',
+ 'Quotation Number missing!' => '未指明报价å•å·ç ',
+ 'Quotation deleted!' => '巳删除报价å•',
+ 'Quotations' => '报价å•',
+ 'R' => '对',
+ 'RFQ' => '报价请求(RFQ) ',
+ 'RFQ ' => '供应商询价å•',
+ 'RFQ Number' => 'RFDå·ç ',
+ 'RFQs' => '报价请求',
+ 'ROP' => 'å†è®¢ç‚¹',
+ 'Rate' => '税率',
+ 'Rate missing!' => '未指明税率',
+ 'Recd' => '巳收到',
+ 'Receipt' => '收æ®',
+ 'Receipt posted!' => '巳加入收æ®',
+ 'Receipts' => '收æ®',
+ 'Receivables' => '应收å¸æˆ·',
+ 'Receive' => '收到',
+ 'Receive Merchandise' => '收到货物',
+ 'Reconciliation' => '调和',
+ 'Reconciliation Report' => '调和报告',
+ 'Record in' => '记录ã€â—ŽFix:◎于;◎於】',
+ 'Recurring Transaction' => '多次记录',
+ 'Recurring Transactions' => '多次记录',
+ 'Reference' => 'å‚考资料',
+ 'Remaining' => 'å°šã€â—ŽFix:â—Žä½™;◎馀】',
+ 'Remove' => '移除',
+ 'Remove Audit trail up to' => '移除审核线索直至',
+ 'Remove Audit trails up to' => '移除审核线索直至',
+ 'Removed spoolfiles!' => '移除线轴档案',
+ 'Removing marked entries from queue ...' => '正从长队中移除有记å·çš„会计项目',
+ 'Repeat' => '',
+ 'Report for' => '报表æ¥æº',
+ 'Reports' => '报表',
+ 'Req' => '',
+ 'Request for Quotation' => 'è¦æ±‚报价å•',
+ 'Request for Quotations' => 'è¦æ±‚报价å•',
+ 'Required by' => '需è¦è€…',
+ 'Retained Earnings' => 'ä¿ç•™ç›ˆä½™',
+ 'Role' => '任务',
+ 'S' => '',
+ 'SIC' => '原文',
+ 'SIC deleted!' => '巳删除原文',
+ 'SIC saved!' => '巳储存原文',
+ 'SKU' => '被指定的数é‡',
+ 'SSN' => '身分è¯ç¼–å·',
+ 'Sale' => '销售',
+ 'Sales' => '销售',
+ 'Sales Invoice' => '销售å‘票',
+ 'Sales Invoice ' => '销货å‘票',
+ 'Sales Invoice.' => '销货å‘票',
+ 'Sales Invoice/AR Transaction Number' => '',
+ 'Sales Invoices' => '销售å‘票',
+ 'Sales Order' => '销货å•',
+ 'Sales Order Number' => '销货å•ç¼–å·',
+ 'Sales Orders' => '销货å•',
+ 'Sales Quotation Number' => '报价å•ç¼–å·',
+ 'Salesperson' => '销售人员',
+ 'Saturday' => '',
+ 'Save' => '储存',
+ 'Save Pricelist' => '',
+ 'Save Schedule' => '储存预定',
+ 'Save as new' => '当新的储存',
+ 'Save to File' => '储存至档案',
+ 'Saving' => '',
+ 'Schedule' => '预定',
+ 'Scheduled' => '',
+ 'Screen' => 'è¤å¹•',
+ 'Search' => 'æœå¯»',
+ 'Select' => '选择',
+ 'Select Customer' => '',
+ 'Select Vendor' => '选厂商',
+ 'Select a Printer!' => '',
+ 'Select a printer!' => '',
+ 'Select all' => '全选',
+ 'Select from one of the items below' => '于下列项目中选择一项',
+ 'Select from one of the names below' => '于下列姓å中选择一个',
+ 'Select from one of the projects below' => '于下列方案中选择一个',
+ 'Select items' => '',
+ 'Select payment' => '',
+ 'Select postscript or PDF!' => 'ã€â—ŽFix:◎于;◎於】附言或PDF中选一',
+ 'Select txt, postscript or PDF!' => '',
+ 'Sell' => 'å–ä»·',
+ 'Sell Price' => '售价',
+ 'Send by E-Mail' => '以电å­é‚®ä»¶å¯„é€',
+ 'Sending' => '',
+ 'Sep' => 'ä¹æœˆ',
+ 'September' => 'ä¹æœˆ',
+ 'Serial No.' => 'åºå·',
+ 'Serial Number' => 'åºå·',
+ 'Service' => 'æœåŠ¡',
+ 'Service Code' => '',
+ 'Service/Labor Code' => '',
+ 'Services' => 'æœåŠ¡',
+ 'Session Timeout' => '会è¯è¶…æ—¶',
+ 'Session expired!' => '会è¯è¿‡æœŸ',
+ 'Setup Templates' => '设定模版',
+ 'Ship' => '船',
+ 'Ship Merchandise' => 'æµ·è¿è´§ç‰©',
+ 'Ship to' => 'æµ·è¿è‡³',
+ 'Ship via' => '由海è¿',
+ 'Shipping' => 'æµ·è¿',
+ 'Shipping Address' => 'æµ·è¿åœ°å€',
+ 'Shipping Date' => 'æµ·è¿æ—¥æœŸ',
+ 'Shipping Date missing!' => '未指明海è¿æ—¥æœŸ',
+ 'Shipping Point' => 'æµ·è¿åœ°ç‚¹',
+ 'Short' => '短',
+ 'Signature' => 'ç­¾å',
+ 'Source' => 'æ¥æº',
+ 'Spoolfile' => '线轴档案',
+ 'Standard' => '标准',
+ 'Standard Industrial Codes' => '标准工业编ç ',
+ 'Startdate' => '开始日期',
+ 'State' => '',
+ 'State/Province' => 'çœ',
+ 'Statement' => '会计å¸',
+ 'Statement Balance' => '会计å¸ä½™é¢',
+ 'Statement sent to' => 'é€ä¼šè®¡å¸è‡³',
+ 'Statements sent to printer!' => 'é€ä¼šè®¡å¸è‡³åˆ—å°æœº',
+ 'Stock' => '库存',
+ 'Stock Assembly' => '盘点',
+ 'Stocking Date' => '',
+ 'Stylesheet' => 'æ ·å¼è¡¨',
+ 'Sub-contract GIFI' => '细åˆçº¦GIFI',
+ 'Subject' => '标题',
+ 'Subtotal' => 'å°è®¡',
+ 'Summary' => '摘è¦',
+ 'Sunday' => '',
+ 'Supervisor' => '管ç†äºº',
+ 'System' => '系统',
+ 'System Defaults' => '预设系统',
+ 'Tax' => '税金',
+ 'Tax Accounts' => '税金科目',
+ 'Tax Included' => 'å·³å«ç¨Žé‡‘',
+ 'Tax Number' => '税å·',
+ 'Tax Number / SSN' => '税å·',
+ 'Tax collected' => '巳收税金',
+ 'Tax paid' => '巳付税金',
+ 'Taxable' => '应税',
+ 'Template saved!' => '巳储存模版',
+ 'Templates' => '模版',
+ 'Terms' => '票期淨计',
+ 'Text' => '',
+ 'Text Templates' => '文字模版',
+ 'The following Datasets are not in use and can be deleted' => '下列资料集并未使用, å¯ä»¥åˆ é™¤',
+ 'The following Datasets need to be updated' => '下列资料集需è¦æ›´æ–°',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => '这是对既存资料æ¥æºçš„åˆæ­¥æ£€æŸ¥. 在此阶段, ä¸ä¼šåˆ é™¤æˆ–新增任何资料!',
+ 'Thursday' => '',
+ 'Till' => '直到',
+ 'Time In' => '',
+ 'Time Out' => '',
+ 'Timecard' => '',
+ 'Timecard deleted!' => '',
+ 'Timecard saved!' => '',
+ 'Timecards' => '',
+ 'Times' => '',
+ 'To' => '至',
+ 'To Warehouse' => '到仓库',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'è‹¥è¦æ–°å¢žç¾¤ç»„内的使用者, 请编辑å称, 更改登入å, 然åŽå‚¨å­˜. 这样一æ¥, 新使用者会ä¿ç•™ç›¸åŒçš„å˜æ•°, 并以新的登入å存入.',
+ 'Top Level' => '高水准',
+ 'Total' => '总计',
+ 'Tracking Items' => '',
+ 'Trade Discount' => '贸易折扣',
+ 'Transaction' => '记录',
+ 'Transaction Date missing!' => '未指明交易日期!',
+ 'Transaction Dates' => '',
+ 'Transaction deleted!' => '巳删除交易',
+ 'Transaction posted!' => '巳加入交易',
+ 'Transaction reversal enforced for all dates' => '强制回å¤æ‰€æœ‰æ—¥æœŸçš„交易',
+ 'Transaction reversal enforced up to' => '强制回å¤äº¤æ˜“直到',
+ 'Transactions' => '交易',
+ 'Transfer' => '转移',
+ 'Transfer Inventory' => '转移存货',
+ 'Transfer from' => '调动从',
+ 'Transfer to' => '存货至',
+ 'Translation' => '翻译',
+ 'Translation deleted!' => '巳删除翻译',
+ 'Translation not on file!' => '',
+ 'Translations' => '翻译',
+ 'Translations saved!' => '巳储存翻译',
+ 'Trial Balance' => '试算表',
+ 'Tuesday' => '',
+ 'Type of Business' => '业务ç§ç±»',
+ 'Unit' => 'å•ä½',
+ 'Unit of measure' => '度é‡å•ä½',
+ 'Unlock System' => 'å¼€å¯ç³»ç»Ÿ',
+ 'Update' => 'æ›´æ–°',
+ 'Update Dataset' => '更新资料集',
+ 'Updated' => '巳更新',
+ 'Upgrading to Version' => 'æ­£å‡çº§è‡³æ–°ç‰ˆ',
+ 'Use Templates' => '使用模版',
+ 'User' => '使用者',
+ 'User deleted!' => '巳删除使用者',
+ 'User saved!' => '巳储存使用者',
+ 'Valid until' => '有效至',
+ 'Vendor' => '供应商',
+ 'Vendor History' => '供应商历å²',
+ 'Vendor Invoice' => '供应商å‘票',
+ 'Vendor Invoice ' => '供应商å‘票',
+ 'Vendor Invoice.' => '供应商å‘票',
+ 'Vendor Invoice/AP Transaction Number' => '',
+ 'Vendor Invoices' => '供应商å‘票',
+ 'Vendor Number' => '供应商å·ç ',
+ 'Vendor deleted!' => '巳删除供应商',
+ 'Vendor missing!' => '未指明供应商',
+ 'Vendor not on file!' => '档案没有此供应商',
+ 'Vendor saved!' => '巳储存供应商',
+ 'Vendors' => '供应商',
+ 'Version' => '版本',
+ 'Warehouse' => '仓库',
+ 'Warehouse deleted!' => '巳删除仓库',
+ 'Warehouse saved!' => '巳储存仓库',
+ 'Warehouses' => '仓库',
+ 'Warning!' => '警告',
+ 'Wednesday' => '',
+ 'Week' => '周',
+ 'Week(s)' => '周',
+ 'Weeks' => '周',
+ 'Weight' => 'é‡é‡',
+ 'Weight Unit' => 'é‡é‡å•ä½',
+ 'What type of item is this?' => '此项目的型�',
+ 'Work Order' => '工作å•',
+ 'Work Orders' => '工作å•',
+ 'Work Phone' => '工作电è¯',
+ 'Year' => '年份',
+ 'Year(s)' => 'å¹´',
+ 'Yearend' => '年结',
+ 'Yearend date missing!' => '未指明年结日期',
+ 'Yearend posted!' => '巳加入年结',
+ 'Yearend posting failed!' => '年结加入失败',
+ 'Years' => 'å¹´',
+ 'Yes' => '是',
+ 'You are logged out' => 'ä½ å·²ç»æ³¨é”€',
+ 'You are posting an existing transaction!' => '',
+ 'You are printing and posting an existing transaction!' => '',
+ 'You are printing and saving an existing order' => '',
+ 'You are printing and saving an existing quotation' => '',
+ 'You are printing and saving an existing transaction!' => '',
+ 'You are saving an existing order' => '',
+ 'You are saving an existing quotation' => '',
+ 'You are saving an existing transaction!' => '',
+ 'You did not enter a name!' => '你并未键入å称!',
+ 'You must enter a host and port for local and remote connections!' => '您必需键入主机åŠåŸ å·, 以进行本机或远端连线!',
+ 'Zip/Postal Code' => '邮编',
+ 'account cannot be set to any other type of account' => 'å¸æˆ·ä¸èƒ½é€åŽ»å…¶ä»–类型å¸æˆ·',
+ 'as at' => '截至',
+ 'days' => 'æ—¥',
+ 'does not exist' => 'ä¸å­˜åœ¨',
+ 'done' => '完æˆ',
+ 'ea' => '个',
+ 'failed' => '失败',
+ 'for' => '',
+ 'for Period' => '期间',
+ 'is already a member!' => 'å·²ç»æ˜¯æˆå‘˜äº†!',
+ 'localhost' => '本地寄主',
+ 'locked!' => 'å·³é”上',
+ 'partsgroup' => '',
+ 'posted!' => '巳加入',
+ 'sent' => 'å·³é€å‡º',
+ 'successfully created!' => 'æˆåŠŸå»ºç«‹!',
+ 'successfully deleted!' => 'æˆåŠŸåˆ é™¤!',
+ 'time(s)' => '次',
+ 'unexpected error!' => 'æ„外错误!',
+ 'website' => '网站',
+};
+
+1;
diff --git a/locale/cn_utf/am b/locale/cn_utf/am
new file mode 100755
index 00000000..a9416e50
--- /dev/null
+++ b/locale/cn_utf/am
@@ -0,0 +1,294 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP' => '应付å¸æ¬¾',
+ 'AR' => '应收å¸æ¬¾',
+ 'About' => '关于',
+ 'Account' => 'å¸æˆ·',
+ 'Account Number' => 'å¸æˆ·ç¼–å·',
+ 'Account Number missing!' => '未指明å¸æˆ·ç¼–å·!',
+ 'Account Type' => 'å¸æˆ·ç±»åˆ«',
+ 'Account Type missing!' => '未指明å¸æˆ·ç±»åˆ«!',
+ 'Account deleted!' => '巳删除å¸æˆ·',
+ 'Account does not exist!' => 'ä¸å­˜åœ¨å¸æˆ·',
+ 'Account saved!' => '巳储存å¸æˆ·',
+ 'Accounting Menu' => '会计选å•',
+ 'Accrual' => '累积',
+ 'Activate Audit trail' => '活跃的审计线索',
+ 'Add Account' => '新增å¸æˆ·',
+ 'Add Business' => '新增业务',
+ 'Add Department' => '新增部门',
+ 'Add GIFI' => '新增 GIFI',
+ 'Add Language' => '新增语言',
+ 'Add SIC' => '新增标准工业分类代ç ',
+ 'Add Warehouse' => '新增仓库',
+ 'Address' => '地å€',
+ 'Amount' => '总计',
+ 'Asset' => '资产',
+ 'Audit Control' => '审核控制',
+ 'Audit trail disabled' => '有效的审计线索',
+ 'Audit trail enabled' => '无效的审计线索',
+ 'Audit trail removed up to' => '移除到此为止的审计线索',
+ 'Backup sent to' => '备份寄é€åˆ°',
+ 'Bin List' => '箱的明细表',
+ 'Books are open' => 'å¸ç°¿å·²å¼€å¯',
+ 'Business Number' => '业务编å·',
+ 'Business deleted!' => '巳删除业务',
+ 'Business saved!' => '巳储存业务',
+ 'COGS' => '货销æˆæœ¬',
+ 'Cannot delete account!' => 'ä¸èƒ½åˆ é™¤å¸æˆ·',
+ 'Cannot delete default account!' => 'ä¸èƒ½åˆ é™¤é¢„设å¸æˆ·',
+ 'Cannot save account!' => 'ä¸èƒ½å‚¨å­˜å¸æˆ·',
+ 'Cannot save defaults!' => 'ä¸èƒ½å‚¨å­˜é¢„设',
+ 'Cannot save preferences!' => 'ä¸èƒ½å‚¨å­˜ä¼˜å…ˆé€‰æ‹© ',
+ 'Cannot set account for more than one of AR, AP or IC' => 'ä¸èƒ½è®¾ç½®å¤šäºŽä¸€ä¸ªåº”收å¸æ¬¾, 应付å¸æ¬¾æˆ–IC',
+ 'Cash' => '现金',
+ 'Chart of Accounts' => '会计科目表',
+ 'Close Books up to' => '关闭到此为止的å¸ç°¿',
+ 'Code' => 'ç¼–ç ',
+ 'Code missing!' => '未指明编ç ',
+ 'Company' => 'å…¬å¸',
+ 'Confirm' => '确认密ç ',
+ 'Confirm!' => 'å…¥å¸æˆåŠŸ!',
+ 'Continue' => '继续',
+ 'Contra' => '抵消',
+ 'Copy to COA' => 'å¤åˆ¶åˆ° COA',
+ 'Cost Center' => 'æˆæœ¬ä¸­å¿ƒ',
+ 'Credit' => 'è´·æ–¹',
+ 'Customer Number' => '客户编å·',
+ 'Database Host' => '资料库主机',
+ 'Dataset' => '资料集',
+ 'Date Format' => '日期格å¼',
+ 'Day' => 'æ—¥',
+ 'Days' => 'æ—¥',
+ 'Debit' => '借方',
+ 'Defaults saved!' => '巳储存预设',
+ 'Delete' => '删除',
+ 'Delete Account' => '删除å¸æˆ·',
+ 'Department deleted!' => '巳删除部门',
+ 'Department saved!' => '巳储存部门',
+ 'Departments' => '部门',
+ 'Description' => '说明',
+ 'Description missing!' => '短少说明',
+ 'Discount' => '折扣',
+ 'Dropdown Limit' => 'é™åˆ¶',
+ 'E-mail' => '电å­é‚®ä»¶',
+ 'E-mail address missing!' => '未指明电å­é‚®ä»¶ä½å€!',
+ 'Edit' => '编辑',
+ 'Edit Account' => '编辑å¸æˆ·',
+ 'Edit Business' => '编辑业务',
+ 'Edit Department' => '编辑部门',
+ 'Edit GIFI' => '编辑 GIFI',
+ 'Edit Language' => '编辑语言',
+ 'Edit Preferences for' => '编辑设定对于',
+ 'Edit SIC' => '编辑原文',
+ 'Edit Template' => '编辑模版',
+ 'Edit Warehouse' => '编辑仓库',
+ 'Employee Number' => 'å·¥å·',
+ 'Enforce transaction reversal for all dates' => '强制所有日期的记录回å¤',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => '请键入以冒å·åˆ†éš”的英文字æ¯, æ¯é¡¹ä¸è¶…过三个字 (如 CAD:USD:EUR), 作为您的本国åŠå¤–国货å¸',
+ 'Equity' => 'è‚¡æƒ',
+ 'Expense' => '费用',
+ 'Expense/Asset' => '费用/资产',
+ 'Fax' => '传真',
+ 'Foreign Exchange Gain' => '外汇收益',
+ 'Foreign Exchange Loss' => '外汇æŸå¤±',
+ 'GIFI deleted!' => '巳删除',
+ 'GIFI missing!' => '未指明 GIFI!',
+ 'GIFI saved!' => '巳储存',
+ 'GL Transaction' => 'GL记录',
+ 'Heading' => '标题',
+ 'ID' => 'ç¼–å·',
+ 'Include in drop-down menus' => '包å«åœ¨ä¸‹æ‹‰å¼é€‰å•ä¸­',
+ 'Income' => '收入',
+ 'Inventory' => '库存',
+ 'Invoice' => 'å‘票',
+ 'Is this a summary account to record' => '此为总结科目�',
+ 'Language' => '语言',
+ 'Language deleted!' => '巳删除语言',
+ 'Language saved!' => '巳储存语言',
+ 'Languages' => '语言',
+ 'Last Numbers & Default Accounts' => '上一笔编å·åŠé¢„设å¸æˆ·',
+ 'Liability' => '负债',
+ 'Licensed to' => '授æƒäºˆ',
+ 'Link' => '连结',
+ 'Menu Width' => '选择å•å®½åº¦',
+ 'Method' => '方法',
+ 'Month' => '月份',
+ 'Months' => '月',
+ 'Name' => 'å称',
+ 'No' => 'å¦',
+ 'No email address for' => '未指明电å­é‚®ä»¶ä½ç½®',
+ 'Number' => 'ç¼–å·',
+ 'Number Format' => 'æ•°å­—æ ¼å¼',
+ 'PDF' => 'PDF',
+ 'Packing List' => '出货å•',
+ 'Password' => '密ç ',
+ 'Password does not match!' => '密ç å‹¿æ¯”é…',
+ 'Payables' => '应付科目',
+ 'Payment' => '付款',
+ 'Phone' => '电è¯å·ç ',
+ 'Pick List' => '拣货清å•',
+ 'Posting' => '在过å¸',
+ 'Postscript' => 'PostScript',
+ 'Preferences saved!' => '个人设定已储存!',
+ 'Print' => '列å°',
+ 'Printer' => 'å°è¡¨æœº',
+ 'Printing' => '在列å°',
+ 'Profit Center' => '利润中心',
+ 'Purchase Order' => '采购å•',
+ 'Purchase Order Number' => '采购å•ç¼–å·',
+ 'Purchase Orders' => '采购å•',
+ 'RFQ Number' => 'RFQç¼–å·',
+ 'Rate' => '税率',
+ 'Receivables' => '应收å¸æˆ·',
+ 'Recurring Transactions' => '多次记录',
+ 'Reference' => 'å‚ç…§',
+ 'Remove Audit trail up to' => '移除审核线索直至',
+ 'Retained Earnings' => 'ä¿ç•™ç›ˆä½™',
+ 'SIC deleted!' => '巳删除原文',
+ 'SIC saved!' => '巳储存原文',
+ 'Sales Invoice' => '销售å‘票',
+ 'Sales Order' => '销货å•',
+ 'Sales Order Number' => '销货å•ç¼–å·',
+ 'Sales Orders' => '销货å•',
+ 'Sales Quotation Number' => '报价å•ç¼–å·',
+ 'Save' => '储存',
+ 'Save as new' => 'å¦å­˜æ–°æ¡£',
+ 'Session Timeout' => '会è¯è¶…æ—¶',
+ 'Signature' => 'ç­¾å',
+ 'Standard Industrial Codes' => '标准工业编ç ',
+ 'Stylesheet' => 'æ ·å¼è¡¨',
+ 'System Defaults' => '预设系统',
+ 'Tax' => '税金',
+ 'Template saved!' => '巳储存模版',
+ 'Transaction' => '记录',
+ 'Transaction reversal enforced for all dates' => '强制回å¤æ‰€æœ‰æ—¥æœŸçš„记录',
+ 'Transaction reversal enforced up to' => '强制回å¤è®°å½•ç›´åˆ°',
+ 'Type of Business' => '业务ç§ç±»',
+ 'Update' => 'æ›´æ–°',
+ 'User' => '使用者',
+ 'Vendor Invoice' => '供应商å‘票',
+ 'Vendor Number' => '供应商å·ç ',
+ 'Version' => '版本',
+ 'Warehouse deleted!' => '巳删除仓库',
+ 'Warehouse saved!' => '巳储存仓库',
+ 'Warehouses' => '仓库',
+ 'Week' => '周',
+ 'Weeks' => '周',
+ 'Weight Unit' => 'é‡é‡å•ä½',
+ 'Work Order' => '工作å•',
+ 'Year' => '年份',
+ 'Yearend' => '年结',
+ 'Yearend date missing!' => '未指明年结日期',
+ 'Yearend posted!' => '巳过å¸å¹´ç»“',
+ 'Yearend posting failed!' => '年结过å¸å¤±è´¥',
+ 'Years' => 'å¹´',
+ 'Yes' => '是',
+ 'account cannot be set to any other type of account' => 'å¸æˆ·ä¸èƒ½é€åŽ»å…¶ä»–类型å¸æˆ·',
+ 'done' => '完æˆ',
+ 'failed' => '失败',
+ 'localhost' => '本地寄主',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ '新增å¸æˆ·' => 'add_account',
+ '新增业务' => 'add_business',
+ '新增部门' => 'add_department',
+ '新增语言' => 'add_language',
+ '新增标准工业分类代ç ' => 'add_sic',
+ '新增仓库' => 'add_warehouse',
+ '继续' => 'continue',
+ 'å¤åˆ¶åˆ°_coa' => 'copy_to_coa',
+ '删除' => 'delete',
+ '编辑' => 'edit',
+ '编辑å¸æˆ·' => 'edit_account',
+ '储存' => 'save',
+ 'å¦å­˜æ–°æ¡£' => 'save_as_new',
+ 'æ›´æ–°' => 'update',
+};
+
+1;
+
diff --git a/locale/cn_utf/ap b/locale/cn_utf/ap
new file mode 100755
index 00000000..70f1a89b
--- /dev/null
+++ b/locale/cn_utf/ap
@@ -0,0 +1,226 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Outstanding' => '应付未付',
+ 'AP Transaction' => '应付记录',
+ 'AP Transactions' => '应付记录',
+ 'AR Outstanding' => '应收未收',
+ 'AR Transaction' => '应收记录',
+ 'AR Transactions' => '应收记录',
+ 'Account' => 'å¸æˆ·',
+ 'Accounting Menu' => '会计选å•',
+ 'Add AP Transaction' => '新增应付记录',
+ 'Add AR Transaction' => '新增应收记录',
+ 'Address' => '地å€',
+ 'Amount' => '总计',
+ 'Amount Due' => '应收å°è®¡',
+ 'Apr' => '四月',
+ 'April' => '四月',
+ 'Are you sure you want to delete Transaction' => '您是å¦ç¡®å®šè¦åˆ é™¤è®°å½•',
+ 'Aug' => '八月',
+ 'August' => '八月',
+ 'Bcc' => 'ä¸æ˜¾ç¤ºæŠ„é€',
+ 'Cannot delete transaction!' => 'ä¸èƒ½åˆ é™¤è®°å½•',
+ 'Cannot post payment for a closed period!' => 'ä¸èƒ½åœ¨å·²å…³é—­çš„时段内过å¸æ¬¾é¡¹',
+ 'Cannot post transaction for a closed period!' => 'ä¸èƒ½åœ¨å·²å…³é—­çš„时段内过å¸è®°å½•!',
+ 'Cannot post transaction!' => 'ä¸èƒ½è¿‡å¸è®°å½•',
+ 'Cc' => '抄é€',
+ 'Check' => '检查',
+ 'Closed' => '已关闭',
+ 'Confirm!' => 'å…¥å¸æˆåŠŸ!',
+ 'Continue' => '继续',
+ 'Credit' => 'è´·æ–¹',
+ 'Credit Limit' => '信用é¢åº¦',
+ 'Curr' => 'å¸åˆ«',
+ 'Currency' => 'å¸åˆ«',
+ 'Current' => '现有',
+ 'Customer' => '客户',
+ 'Customer missing!' => '未指明客户',
+ 'Customer not on file!' => '客户未存档',
+ 'Date' => '日期',
+ 'Date Paid' => '付款日期',
+ 'Day(s)' => 'æ—¥',
+ 'Debit' => '借方',
+ 'Dec' => 'å二月',
+ 'December' => 'å二月',
+ 'Delete' => '删除',
+ 'Delete Schedule' => '删除预定',
+ 'Department' => '部门',
+ 'Description' => '说明',
+ 'Detail' => '详情',
+ 'Due Date' => '到期日',
+ 'Due Date missing!' => '未指明到期日!',
+ 'E-mail' => '电å­é‚®ä»¶',
+ 'E-mail message' => 'å‘é€ç”µé‚®',
+ 'Edit AP Transaction' => '编辑应付记录',
+ 'Edit AR Transaction' => '编辑应收记录',
+ 'Employee' => 'èŒå‘˜',
+ 'Exch' => '汇率',
+ 'Exchange Rate' => '汇率',
+ 'Exchange rate for payment missing!' => '未指明付款的汇率',
+ 'Exchange rate missing!' => '未指明汇率',
+ 'Feb' => '二月',
+ 'February' => '二月',
+ 'From' => '从',
+ 'ID' => 'ç¼–å·',
+ 'Include in Report' => '一并显示',
+ 'Invoice' => 'å‘票',
+ 'Invoice Date' => 'å‘票日期',
+ 'Invoice Date missing!' => '未指明å‘票日期!',
+ 'Invoice Number' => 'å‘票编å·',
+ 'Jan' => '一月',
+ 'January' => '一月',
+ 'Jul' => '七月',
+ 'July' => '七月',
+ 'Jun' => '六月',
+ 'June' => '六月',
+ 'Manager' => 'ç»ç†',
+ 'Mar' => '三月',
+ 'March' => '三月',
+ 'May' => '五月',
+ 'May ' => '五月',
+ 'Memo' => '备忘录',
+ 'Message' => '讯æ¯',
+ 'Month' => '月份',
+ 'Month(s)' => '月',
+ 'No.' => 'åºå·',
+ 'Notes' => '备注',
+ 'Nov' => 'å一月',
+ 'November' => 'å一月',
+ 'Number' => 'ç¼–å·',
+ 'Oct' => 'å月',
+ 'October' => 'å月',
+ 'Open' => 'å¼€å¯',
+ 'Order' => '订å•',
+ 'Order Number' => '订å•ç¼–å·',
+ 'PDF' => 'PDF',
+ 'PO Number' => '采购å•ç¼–å·',
+ 'Paid' => '已付',
+ 'Payment date missing!' => '未指明付款日期!',
+ 'Payments' => '付款',
+ 'Period' => '时期',
+ 'Post' => '过å¸',
+ 'Post as new' => '当新的过å¸',
+ 'Postscript' => 'PostScript',
+ 'Print' => '列å°',
+ 'Print and Post' => '列å°åŠè¿‡å¸',
+ 'Print and Post as new' => '列å°åŠå½“新的过å¸',
+ 'Printed' => '巳列å°',
+ 'Project' => '方案',
+ 'Project not on file!' => '方案内无此档案',
+ 'Quarter' => '季度',
+ 'Receipt' => '收款',
+ 'Recurring Transaction' => '多次记录',
+ 'Reference' => 'å‚ç…§',
+ 'Remaining' => 'å°šä½™',
+ 'Sales Invoice.' => '销货å‘票',
+ 'Salesperson' => '销售人员',
+ 'Save Schedule' => '储存预定',
+ 'Schedule' => '预定',
+ 'Screen' => '显示器',
+ 'Select from one of the names below' => '于下列姓å中选择一个',
+ 'Select from one of the projects below' => '于下列方案中选择一个',
+ 'Select postscript or PDF!' => '于PostScript或PDF中选一',
+ 'Sep' => 'ä¹æœˆ',
+ 'September' => 'ä¹æœˆ',
+ 'Ship to' => 'æµ·è¿è‡³',
+ 'Ship via' => '由海è¿',
+ 'Shipping Point' => 'æµ·è¿åœ°ç‚¹',
+ 'Source' => 'æ¥æº',
+ 'Startdate' => '开始日期',
+ 'Subject' => '标题',
+ 'Subtotal' => 'å°è®¡',
+ 'Summary' => '摘è¦',
+ 'Tax' => '税金',
+ 'Tax Included' => 'å·³å«ç¨Žé‡‘',
+ 'Till' => '直到',
+ 'To' => '至',
+ 'Total' => '总计',
+ 'Transaction' => '记录',
+ 'Transaction deleted!' => '巳删除记录',
+ 'Transaction posted!' => '巳过å¸è®°å½•',
+ 'Update' => 'æ›´æ–°',
+ 'Vendor' => '供应商',
+ 'Vendor Invoice.' => '供应商å‘票',
+ 'Vendor missing!' => '未指明供应商',
+ 'Vendor not on file!' => '档案没有此供应商',
+ 'Warning!' => '警告',
+ 'Week(s)' => '周',
+ 'Year' => '年份',
+ 'Year(s)' => 'å¹´',
+ 'Yes' => '是',
+ 'sent' => 'å·³é€å‡º',
+ 'time(s)' => '次',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ '应付记录' => 'ap_transaction',
+ '应收记录' => 'ar_transaction',
+ '继续' => 'continue',
+ '删除' => 'delete',
+ '删除预定' => 'delete_schedule',
+ '过å¸' => 'post',
+ '当新的过å¸' => 'post_as_new',
+ '列å°' => 'print',
+ '列å°åŠè¿‡å¸' => 'print_and_post',
+ '列å°åŠå½“新的过å¸' => 'print_and_post_as_new',
+ '销货å‘票' => 'sales_invoice_',
+ '储存预定' => 'save_schedule',
+ '预定' => 'schedule',
+ 'æµ·è¿è‡³' => 'ship_to',
+ 'æ›´æ–°' => 'update',
+ '供应商å‘票' => 'vendor_invoice_',
+ '是' => 'yes',
+};
+
+1;
+
diff --git a/locale/cn_utf/ar b/locale/cn_utf/ar
new file mode 100755
index 00000000..70f1a89b
--- /dev/null
+++ b/locale/cn_utf/ar
@@ -0,0 +1,226 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Outstanding' => '应付未付',
+ 'AP Transaction' => '应付记录',
+ 'AP Transactions' => '应付记录',
+ 'AR Outstanding' => '应收未收',
+ 'AR Transaction' => '应收记录',
+ 'AR Transactions' => '应收记录',
+ 'Account' => 'å¸æˆ·',
+ 'Accounting Menu' => '会计选å•',
+ 'Add AP Transaction' => '新增应付记录',
+ 'Add AR Transaction' => '新增应收记录',
+ 'Address' => '地å€',
+ 'Amount' => '总计',
+ 'Amount Due' => '应收å°è®¡',
+ 'Apr' => '四月',
+ 'April' => '四月',
+ 'Are you sure you want to delete Transaction' => '您是å¦ç¡®å®šè¦åˆ é™¤è®°å½•',
+ 'Aug' => '八月',
+ 'August' => '八月',
+ 'Bcc' => 'ä¸æ˜¾ç¤ºæŠ„é€',
+ 'Cannot delete transaction!' => 'ä¸èƒ½åˆ é™¤è®°å½•',
+ 'Cannot post payment for a closed period!' => 'ä¸èƒ½åœ¨å·²å…³é—­çš„时段内过å¸æ¬¾é¡¹',
+ 'Cannot post transaction for a closed period!' => 'ä¸èƒ½åœ¨å·²å…³é—­çš„时段内过å¸è®°å½•!',
+ 'Cannot post transaction!' => 'ä¸èƒ½è¿‡å¸è®°å½•',
+ 'Cc' => '抄é€',
+ 'Check' => '检查',
+ 'Closed' => '已关闭',
+ 'Confirm!' => 'å…¥å¸æˆåŠŸ!',
+ 'Continue' => '继续',
+ 'Credit' => 'è´·æ–¹',
+ 'Credit Limit' => '信用é¢åº¦',
+ 'Curr' => 'å¸åˆ«',
+ 'Currency' => 'å¸åˆ«',
+ 'Current' => '现有',
+ 'Customer' => '客户',
+ 'Customer missing!' => '未指明客户',
+ 'Customer not on file!' => '客户未存档',
+ 'Date' => '日期',
+ 'Date Paid' => '付款日期',
+ 'Day(s)' => 'æ—¥',
+ 'Debit' => '借方',
+ 'Dec' => 'å二月',
+ 'December' => 'å二月',
+ 'Delete' => '删除',
+ 'Delete Schedule' => '删除预定',
+ 'Department' => '部门',
+ 'Description' => '说明',
+ 'Detail' => '详情',
+ 'Due Date' => '到期日',
+ 'Due Date missing!' => '未指明到期日!',
+ 'E-mail' => '电å­é‚®ä»¶',
+ 'E-mail message' => 'å‘é€ç”µé‚®',
+ 'Edit AP Transaction' => '编辑应付记录',
+ 'Edit AR Transaction' => '编辑应收记录',
+ 'Employee' => 'èŒå‘˜',
+ 'Exch' => '汇率',
+ 'Exchange Rate' => '汇率',
+ 'Exchange rate for payment missing!' => '未指明付款的汇率',
+ 'Exchange rate missing!' => '未指明汇率',
+ 'Feb' => '二月',
+ 'February' => '二月',
+ 'From' => '从',
+ 'ID' => 'ç¼–å·',
+ 'Include in Report' => '一并显示',
+ 'Invoice' => 'å‘票',
+ 'Invoice Date' => 'å‘票日期',
+ 'Invoice Date missing!' => '未指明å‘票日期!',
+ 'Invoice Number' => 'å‘票编å·',
+ 'Jan' => '一月',
+ 'January' => '一月',
+ 'Jul' => '七月',
+ 'July' => '七月',
+ 'Jun' => '六月',
+ 'June' => '六月',
+ 'Manager' => 'ç»ç†',
+ 'Mar' => '三月',
+ 'March' => '三月',
+ 'May' => '五月',
+ 'May ' => '五月',
+ 'Memo' => '备忘录',
+ 'Message' => '讯æ¯',
+ 'Month' => '月份',
+ 'Month(s)' => '月',
+ 'No.' => 'åºå·',
+ 'Notes' => '备注',
+ 'Nov' => 'å一月',
+ 'November' => 'å一月',
+ 'Number' => 'ç¼–å·',
+ 'Oct' => 'å月',
+ 'October' => 'å月',
+ 'Open' => 'å¼€å¯',
+ 'Order' => '订å•',
+ 'Order Number' => '订å•ç¼–å·',
+ 'PDF' => 'PDF',
+ 'PO Number' => '采购å•ç¼–å·',
+ 'Paid' => '已付',
+ 'Payment date missing!' => '未指明付款日期!',
+ 'Payments' => '付款',
+ 'Period' => '时期',
+ 'Post' => '过å¸',
+ 'Post as new' => '当新的过å¸',
+ 'Postscript' => 'PostScript',
+ 'Print' => '列å°',
+ 'Print and Post' => '列å°åŠè¿‡å¸',
+ 'Print and Post as new' => '列å°åŠå½“新的过å¸',
+ 'Printed' => '巳列å°',
+ 'Project' => '方案',
+ 'Project not on file!' => '方案内无此档案',
+ 'Quarter' => '季度',
+ 'Receipt' => '收款',
+ 'Recurring Transaction' => '多次记录',
+ 'Reference' => 'å‚ç…§',
+ 'Remaining' => 'å°šä½™',
+ 'Sales Invoice.' => '销货å‘票',
+ 'Salesperson' => '销售人员',
+ 'Save Schedule' => '储存预定',
+ 'Schedule' => '预定',
+ 'Screen' => '显示器',
+ 'Select from one of the names below' => '于下列姓å中选择一个',
+ 'Select from one of the projects below' => '于下列方案中选择一个',
+ 'Select postscript or PDF!' => '于PostScript或PDF中选一',
+ 'Sep' => 'ä¹æœˆ',
+ 'September' => 'ä¹æœˆ',
+ 'Ship to' => 'æµ·è¿è‡³',
+ 'Ship via' => '由海è¿',
+ 'Shipping Point' => 'æµ·è¿åœ°ç‚¹',
+ 'Source' => 'æ¥æº',
+ 'Startdate' => '开始日期',
+ 'Subject' => '标题',
+ 'Subtotal' => 'å°è®¡',
+ 'Summary' => '摘è¦',
+ 'Tax' => '税金',
+ 'Tax Included' => 'å·³å«ç¨Žé‡‘',
+ 'Till' => '直到',
+ 'To' => '至',
+ 'Total' => '总计',
+ 'Transaction' => '记录',
+ 'Transaction deleted!' => '巳删除记录',
+ 'Transaction posted!' => '巳过å¸è®°å½•',
+ 'Update' => 'æ›´æ–°',
+ 'Vendor' => '供应商',
+ 'Vendor Invoice.' => '供应商å‘票',
+ 'Vendor missing!' => '未指明供应商',
+ 'Vendor not on file!' => '档案没有此供应商',
+ 'Warning!' => '警告',
+ 'Week(s)' => '周',
+ 'Year' => '年份',
+ 'Year(s)' => 'å¹´',
+ 'Yes' => '是',
+ 'sent' => 'å·³é€å‡º',
+ 'time(s)' => '次',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ '应付记录' => 'ap_transaction',
+ '应收记录' => 'ar_transaction',
+ '继续' => 'continue',
+ '删除' => 'delete',
+ '删除预定' => 'delete_schedule',
+ '过å¸' => 'post',
+ '当新的过å¸' => 'post_as_new',
+ '列å°' => 'print',
+ '列å°åŠè¿‡å¸' => 'print_and_post',
+ '列å°åŠå½“新的过å¸' => 'print_and_post_as_new',
+ '销货å‘票' => 'sales_invoice_',
+ '储存预定' => 'save_schedule',
+ '预定' => 'schedule',
+ 'æµ·è¿è‡³' => 'ship_to',
+ 'æ›´æ–°' => 'update',
+ '供应商å‘票' => 'vendor_invoice_',
+ '是' => 'yes',
+};
+
+1;
+
diff --git a/locale/cn_utf/arap b/locale/cn_utf/arap
new file mode 100755
index 00000000..f0c6bfe8
--- /dev/null
+++ b/locale/cn_utf/arap
@@ -0,0 +1,64 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Address' => '地å€',
+ 'Bcc' => 'ä¸æ˜¾ç¤ºæŠ„é€',
+ 'Cc' => '抄é€',
+ 'Continue' => '继续',
+ 'Customer not on file!' => '客户未存档',
+ 'Date' => '日期',
+ 'Day(s)' => 'æ—¥',
+ 'Delete Schedule' => '删除预定',
+ 'Description' => '说明',
+ 'E-mail' => '电å­é‚®ä»¶',
+ 'E-mail message' => 'å‘é€ç”µé‚®',
+ 'Message' => '讯æ¯',
+ 'Month(s)' => '月',
+ 'Number' => 'ç¼–å·',
+ 'Print' => '列å°',
+ 'Project not on file!' => '方案内无此档案',
+ 'Recurring Transaction' => '多次记录',
+ 'Reference' => 'å‚ç…§',
+ 'Save Schedule' => '储存预定',
+ 'Select from one of the names below' => '于下列姓å中选择一个',
+ 'Select from one of the projects below' => '于下列方案中选择一个',
+ 'Startdate' => '开始日期',
+ 'Subject' => '标题',
+ 'To' => '至',
+ 'Vendor not on file!' => '档案没有此供应商',
+ 'Warning!' => '警告',
+ 'Week(s)' => '周',
+ 'Year(s)' => 'å¹´',
+ 'sent' => 'å·³é€å‡º',
+ 'time(s)' => '次',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ '继续' => 'continue',
+ '删除预定' => 'delete_schedule',
+ '储存预定' => 'save_schedule',
+};
+
+1;
+
diff --git a/locale/cn_utf/arapprn b/locale/cn_utf/arapprn
new file mode 100755
index 00000000..49460642
--- /dev/null
+++ b/locale/cn_utf/arapprn
@@ -0,0 +1,32 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'å¸æˆ·',
+ 'Amount' => '总计',
+ 'Continue' => '继续',
+ 'Date' => '日期',
+ 'Memo' => '备忘录',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'PostScript',
+ 'Printed' => '巳列å°',
+ 'Screen' => '显示器',
+ 'Select postscript or PDF!' => '于PostScript或PDF中选一',
+ 'Source' => 'æ¥æº',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ '继续' => 'continue',
+};
+
+1;
+
diff --git a/locale/cn_utf/bp b/locale/cn_utf/bp
new file mode 100755
index 00000000..293be2ba
--- /dev/null
+++ b/locale/cn_utf/bp
@@ -0,0 +1,70 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'å¸æˆ·',
+ 'Accounting Menu' => '会计选å•',
+ 'Are you sure you want to remove the marked entries from the queue?' => '您是å¦ç¡®å®šè¦æ¶ˆé™¤æœ‰è®°å·çš„æ¡ç›®',
+ 'Bin Lists' => '箱清å•',
+ 'Cannot remove files!' => 'ä¸èƒ½ç§»é™¤æ¡£æ¡ˆ',
+ 'Confirm!' => 'å…¥å¸æˆåŠŸ!',
+ 'Continue' => '继续',
+ 'Current' => '现有',
+ 'Customer' => '客户',
+ 'Date' => '日期',
+ 'Employee' => 'èŒå‘˜',
+ 'From' => '从',
+ 'ID' => 'ç¼–å·',
+ 'Invoice' => 'å‘票',
+ 'Invoice Number' => 'å‘票编å·',
+ 'Marked entries printed!' => '巳列å°æœ‰è®°å·çš„会计项目',
+ 'Month' => '月份',
+ 'Order' => '订å•',
+ 'Order Number' => '订å•ç¼–å·',
+ 'Packing Lists' => '出货å•',
+ 'Period' => '时期',
+ 'Pick Lists' => '拣货清å•',
+ 'Print' => '列å°',
+ 'Printing' => '在列å°',
+ 'Purchase Orders' => '采购å•',
+ 'Quarter' => '季度',
+ 'Quotation' => '报价å•',
+ 'Quotation Number' => '报价å•å·ç ',
+ 'Quotations' => '报价å•',
+ 'RFQs' => '报价请求',
+ 'Remove' => '移除',
+ 'Removed spoolfiles!' => '移除线轴档案',
+ 'Removing marked entries from queue ...' => '正从长队中移除有记å·çš„会计项目',
+ 'Sales Invoices' => '许多销售å‘票',
+ 'Sales Orders' => '销货å•',
+ 'Select all' => '全选',
+ 'Spoolfile' => '线轴档案',
+ 'To' => '至',
+ 'Vendor' => '供应商',
+ 'Work Orders' => '工作å•',
+ 'Year' => '年份',
+ 'Yes' => '是',
+ 'done' => '完æˆ',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ '继续' => 'continue',
+ '列å°' => 'print',
+ '移除' => 'remove',
+ '全选' => 'select_all',
+ '是' => 'yes',
+};
+
+1;
+
diff --git a/locale/cn_utf/ca b/locale/cn_utf/ca
new file mode 100755
index 00000000..4d73af13
--- /dev/null
+++ b/locale/cn_utf/ca
@@ -0,0 +1,60 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'å¸æˆ·',
+ 'Apr' => '四月',
+ 'April' => '四月',
+ 'Aug' => '八月',
+ 'August' => '八月',
+ 'Balance' => 'ä½™é¢',
+ 'Chart of Accounts' => '会计科目表',
+ 'Credit' => 'è´·æ–¹',
+ 'Current' => '现有',
+ 'Date' => '日期',
+ 'Debit' => '借方',
+ 'Dec' => 'å二月',
+ 'December' => 'å二月',
+ 'Department' => '部门',
+ 'Description' => '说明',
+ 'Feb' => '二月',
+ 'February' => '二月',
+ 'From' => '从',
+ 'Include in Report' => '一并显示',
+ 'Jan' => '一月',
+ 'January' => '一月',
+ 'Jul' => '七月',
+ 'July' => '七月',
+ 'Jun' => '六月',
+ 'June' => '六月',
+ 'List Transactions' => '列出记录',
+ 'Mar' => '三月',
+ 'March' => '三月',
+ 'May' => '五月',
+ 'May ' => '五月',
+ 'Month' => '月份',
+ 'Nov' => 'å一月',
+ 'November' => 'å一月',
+ 'Oct' => 'å月',
+ 'October' => 'å月',
+ 'Period' => '时期',
+ 'Project Number' => '方案å·ç ',
+ 'Quarter' => '季度',
+ 'R' => '对',
+ 'Reference' => 'å‚ç…§',
+ 'Sep' => 'ä¹æœˆ',
+ 'September' => 'ä¹æœˆ',
+ 'Subtotal' => 'å°è®¡',
+ 'To' => '至',
+ 'Year' => '年份',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ '列出记录' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/cn_utf/cp b/locale/cn_utf/cp
new file mode 100755
index 00000000..fc57e4c4
--- /dev/null
+++ b/locale/cn_utf/cp
@@ -0,0 +1,136 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP' => '应付å¸æ¬¾',
+ 'AR' => '应收å¸æ¬¾',
+ 'Account' => 'å¸æˆ·',
+ 'Accounting Menu' => '会计选å•',
+ 'Address' => '地å€',
+ 'All' => '全部',
+ 'Amount' => '总计',
+ 'Amount Due' => 'ä½™é¢',
+ 'Bcc' => 'ä¸æ˜¾ç¤ºæŠ„é€',
+ 'Cannot post Payment!' => 'ä¸èƒ½è¿‡å¸æ¬¾é¡¹',
+ 'Cannot post Receipt!' => 'ä¸èƒ½è¿‡å¸æ”¶æ®',
+ 'Cannot post payment for a closed period!' => 'ä¸èƒ½åœ¨å·²å…³é—­çš„时段内过å¸æ¬¾é¡¹',
+ 'Cc' => '抄é€',
+ 'Continue' => '继续',
+ 'Currency' => 'å¸åˆ«',
+ 'Customer' => '客户',
+ 'Customer not on file!' => '客户未存档',
+ 'Date' => '日期',
+ 'Date missing!' => '未指明日期',
+ 'Day(s)' => 'æ—¥',
+ 'Delete Schedule' => '删除预定',
+ 'Department' => '部门',
+ 'Deposit' => '存款',
+ 'Description' => '说明',
+ 'Due Date' => '到期日',
+ 'E-mail' => '电å­é‚®ä»¶',
+ 'E-mail message' => 'å‘é€ç”µé‚®',
+ 'Exchange Rate' => '汇率',
+ 'Exchange rate missing!' => '未指明汇率',
+ 'From' => '从',
+ 'Invoice' => 'å‘票',
+ 'Invoices' => 'å‘票',
+ 'Language' => '语言',
+ 'Memo' => '备忘录',
+ 'Message' => '讯æ¯',
+ 'Month(s)' => '月',
+ 'Number' => 'ç¼–å·',
+ 'PDF' => 'PDF',
+ 'Payment' => '付款',
+ 'Payment posted!' => '巳过å¸ä»˜æ¬¾',
+ 'Payments' => '许多付款',
+ 'Post' => '过å¸',
+ 'Postscript' => 'PostScript',
+ 'Prepayment' => '预缴',
+ 'Print' => '列å°',
+ 'Project not on file!' => '方案内无此档案',
+ 'Receipt' => '收款',
+ 'Receipt posted!' => '巳过å¸æ”¶æ®',
+ 'Receipts' => '许多收款',
+ 'Recurring Transaction' => '多次记录',
+ 'Reference' => 'å‚ç…§',
+ 'Save Schedule' => '储存预定',
+ 'Screen' => '显示器',
+ 'Select' => '选择',
+ 'Select all' => '全选',
+ 'Select from one of the names below' => '于下列姓å中选择一个',
+ 'Select from one of the projects below' => '于下列方案中选择一个',
+ 'Select postscript or PDF!' => '于PostScript或PDF中选一',
+ 'Source' => 'æ¥æº',
+ 'Startdate' => '开始日期',
+ 'Subject' => '标题',
+ 'To' => '至',
+ 'Update' => 'æ›´æ–°',
+ 'Vendor' => '供应商',
+ 'Vendor not on file!' => '档案没有此供应商',
+ 'Warning!' => '警告',
+ 'Week(s)' => '周',
+ 'Year(s)' => 'å¹´',
+ 'sent' => 'å·³é€å‡º',
+ 'time(s)' => '次',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ '继续' => 'continue',
+ '删除预定' => 'delete_schedule',
+ '过å¸' => 'post',
+ '列å°' => 'print',
+ '储存预定' => 'save_schedule',
+ '全选' => 'select_all',
+ 'æ›´æ–°' => 'update',
+};
+
+1;
+
diff --git a/locale/cn_utf/ct b/locale/cn_utf/ct
new file mode 100755
index 00000000..659cf964
--- /dev/null
+++ b/locale/cn_utf/ct
@@ -0,0 +1,179 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Transaction' => '应付记录',
+ 'AP Transactions' => '应付记录',
+ 'AR Transaction' => '应收记录',
+ 'AR Transactions' => '应收记录',
+ 'Accounting Menu' => '会计选å•',
+ 'Active' => '活跃',
+ 'Add Customer' => '新增客户',
+ 'Add Vendor' => '新增供应商',
+ 'Address' => '地å€',
+ 'All' => '全部',
+ 'Amount' => '总计',
+ 'Bcc' => 'ä¸æ˜¾ç¤ºæŠ„é€',
+ 'Billing Address' => 'å¸å•åœ°å€',
+ 'Break' => '折扣数é‡',
+ 'Cannot delete customer!' => 'ä¸èƒ½åˆ é™¤å®¢æˆ·',
+ 'Cannot delete vendor!' => 'ä¸èƒ½åˆ é™¤ä¾›åº”商',
+ 'Cc' => '抄é€',
+ 'City' => '城市',
+ 'Closed' => '已关闭',
+ 'Company Name' => 'å…¬å¸å称',
+ 'Contact' => '连络人',
+ 'Continue' => '继续',
+ 'Cost' => 'æˆæœ¬',
+ 'Country' => '国家',
+ 'Credit Limit' => '信用é¢åº¦',
+ 'Curr' => 'å¸åˆ«',
+ 'Currency' => 'å¸åˆ«',
+ 'Customer History' => '客户历å²',
+ 'Customer Number' => '客户编å·',
+ 'Customer deleted!' => '巳删除客户',
+ 'Customer saved!' => '巳储存客户',
+ 'Customers' => '客户',
+ 'Delete' => '删除',
+ 'Delivery Date' => '到期日',
+ 'Description' => '说明',
+ 'Detail' => '详情',
+ 'Discount' => '折扣',
+ 'E-mail' => '电å­é‚®ä»¶',
+ 'Edit Customer' => '编辑客户',
+ 'Edit Vendor' => '编辑供应商',
+ 'Employee' => 'èŒå‘˜',
+ 'Enddate' => '结æŸæ—¥',
+ 'Fax' => '传真',
+ 'From' => '从',
+ 'Group' => '组',
+ 'ID' => 'ç¼–å·',
+ 'Inactive' => '消æž',
+ 'Include in Report' => '一并显示',
+ 'Invoice' => 'å‘票',
+ 'Item not on file!' => '查无此项目',
+ 'Language' => '语言',
+ 'Leadtime' => '总需时',
+ 'Manager' => 'ç»ç†',
+ 'Name' => 'å称',
+ 'Name missing!' => '未指明åå­—',
+ 'No.' => 'åºå·',
+ 'Notes' => '备注',
+ 'Number' => 'ç¼–å·',
+ 'Open' => 'å¼€å¯',
+ 'Order' => '订å•',
+ 'Orphaned' => '无主',
+ 'POS' => '收款å°',
+ 'Phone' => '电è¯å·ç ',
+ 'Pricegroup' => '价格组',
+ 'Project Number' => '方案å·ç ',
+ 'Purchase Order' => '采购å•',
+ 'Purchase Orders' => '采购å•',
+ 'Qty' => 'æ•°é‡',
+ 'Quotation' => '报价å•',
+ 'Quotations' => '报价å•',
+ 'RFQ' => '报价请求(RFQ) ',
+ 'Request for Quotations' => 'è¦æ±‚报价å•',
+ 'SIC' => '标准工业分类代ç ',
+ 'SKU' => '供应商料å·',
+ 'Sales Invoice' => '销售å‘票',
+ 'Sales Invoices' => '许多销售å‘票',
+ 'Sales Order' => '销货å•',
+ 'Sales Orders' => '销货å•',
+ 'Salesperson' => '销售人员',
+ 'Save' => '储存',
+ 'Save as new' => 'å¦å­˜æ–°æ¡£',
+ 'Search' => 'æœå¯»',
+ 'Sell Price' => '售价',
+ 'Serial Number' => 'åºå·',
+ 'Shipping Address' => 'æµ·è¿åœ°å€',
+ 'Startdate' => '开始日期',
+ 'State/Province' => 'çœ',
+ 'Sub-contract GIFI' => '细åˆçº¦GIFI',
+ 'Subtotal' => 'å°è®¡',
+ 'Summary' => '摘è¦',
+ 'Tax' => '税金',
+ 'Tax Included' => 'å·³å«ç¨Žé‡‘',
+ 'Tax Number' => '税å·',
+ 'Tax Number / SSN' => '税å·',
+ 'Taxable' => '应税',
+ 'Terms' => '付款方å¼',
+ 'To' => '至',
+ 'Total' => '总计',
+ 'Type of Business' => '业务ç§ç±»',
+ 'Unit' => 'å•ä½',
+ 'Update' => 'æ›´æ–°',
+ 'Vendor History' => '供应商历å²',
+ 'Vendor Invoice' => '供应商å‘票',
+ 'Vendor Invoices' => '供应商å‘票',
+ 'Vendor Number' => '供应商å·ç ',
+ 'Vendor deleted!' => '巳删除供应商',
+ 'Vendor saved!' => '巳储存供应商',
+ 'Vendors' => '供应商',
+ 'Zip/Postal Code' => '邮编',
+ 'days' => 'æ—¥',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ '应付记录' => 'ap_transaction',
+ '应收记录' => 'ar_transaction',
+ '新增客户' => 'add_customer',
+ '新增供应商' => 'add_vendor',
+ '继续' => 'continue',
+ '删除' => 'delete',
+ '收款å°' => 'pos',
+ '采购å•' => 'purchase_order',
+ '报价å•' => 'quotation',
+ '报价请求(rfq)_' => 'rfq',
+ '销售å‘票' => 'sales_invoice',
+ '销货å•' => 'sales_order',
+ '储存' => 'save',
+ 'å¦å­˜æ–°æ¡£' => 'save_as_new',
+ 'æ›´æ–°' => 'update',
+ '供应商å‘票' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/cn_utf/gl b/locale/cn_utf/gl
new file mode 100755
index 00000000..4eea08f0
--- /dev/null
+++ b/locale/cn_utf/gl
@@ -0,0 +1,171 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Transaction' => '应付记录',
+ 'AR Transaction' => '应收记录',
+ 'Account' => 'å¸æˆ·',
+ 'Accounting Menu' => '会计选å•',
+ 'Add Cash Transfer Transaction' => '新增现金转移å¸ç›®',
+ 'Add General Ledger Transaction' => '新增总å¸',
+ 'Address' => '地å€',
+ 'All' => '全部',
+ 'Amount' => '总计',
+ 'Apr' => '四月',
+ 'April' => '四月',
+ 'Are you sure you want to delete Transaction' => '您是å¦ç¡®å®šè¦åˆ é™¤è®°å½•',
+ 'Asset' => '资产',
+ 'Aug' => '八月',
+ 'August' => '八月',
+ 'Balance' => 'ä½™é¢',
+ 'Bcc' => 'ä¸æ˜¾ç¤ºæŠ„é€',
+ 'Cannot delete transaction!' => 'ä¸èƒ½åˆ é™¤è®°å½•',
+ 'Cannot post transaction for a closed period!' => 'ä¸èƒ½åœ¨å·²å…³é—­çš„时段内过å¸è®°å½•!',
+ 'Cannot post transaction!' => 'ä¸èƒ½è¿‡å¸è®°å½•',
+ 'Cc' => '抄é€',
+ 'Confirm!' => 'å…¥å¸æˆåŠŸ!',
+ 'Continue' => '继续',
+ 'Credit' => 'è´·æ–¹',
+ 'Current' => '现有',
+ 'Customer not on file!' => '客户未存档',
+ 'Date' => '日期',
+ 'Day(s)' => 'æ—¥',
+ 'Debit' => '借方',
+ 'Dec' => 'å二月',
+ 'December' => 'å二月',
+ 'Delete' => '删除',
+ 'Delete Schedule' => '删除预定',
+ 'Department' => '部门',
+ 'Description' => '说明',
+ 'E-mail' => '电å­é‚®ä»¶',
+ 'E-mail message' => 'å‘é€ç”µé‚®',
+ 'Edit Cash Transfer Transaction' => '编辑现金转移',
+ 'Edit General Ledger Transaction' => '编辑总å¸',
+ 'Equity' => 'è‚¡æƒ',
+ 'Expense' => '费用',
+ 'Feb' => '二月',
+ 'February' => '二月',
+ 'From' => '从',
+ 'GL Transaction' => 'GL记录',
+ 'General Ledger' => '总å¸',
+ 'ID' => 'ç¼–å·',
+ 'Include in Report' => '一并显示',
+ 'Income' => '收入',
+ 'Jan' => '一月',
+ 'January' => '一月',
+ 'Jul' => '七月',
+ 'July' => '七月',
+ 'Jun' => '六月',
+ 'June' => '六月',
+ 'Liability' => '负债',
+ 'Mar' => '三月',
+ 'March' => '三月',
+ 'May' => '五月',
+ 'May ' => '五月',
+ 'Memo' => '备忘录',
+ 'Message' => '讯æ¯',
+ 'Month' => '月份',
+ 'Month(s)' => '月',
+ 'Notes' => '备注',
+ 'Nov' => 'å一月',
+ 'November' => 'å一月',
+ 'Number' => 'ç¼–å·',
+ 'Oct' => 'å月',
+ 'October' => 'å月',
+ 'Out of balance transaction!' => 'ä¸å调记录',
+ 'Period' => '时期',
+ 'Post' => '过å¸',
+ 'Post as new' => '当新的过å¸',
+ 'Print' => '列å°',
+ 'Project' => '方案',
+ 'Project not on file!' => '方案内无此档案',
+ 'Quarter' => '季度',
+ 'R' => '对',
+ 'Recurring Transaction' => '多次记录',
+ 'Reference' => 'å‚ç…§',
+ 'Reports' => '报表',
+ 'Sales Invoice ' => '销货å‘票',
+ 'Save Schedule' => '储存预定',
+ 'Schedule' => '预定',
+ 'Select from one of the names below' => '于下列姓å中选择一个',
+ 'Select from one of the projects below' => '于下列方案中选择一个',
+ 'Sep' => 'ä¹æœˆ',
+ 'September' => 'ä¹æœˆ',
+ 'Source' => 'æ¥æº',
+ 'Startdate' => '开始日期',
+ 'Subject' => '标题',
+ 'Subtotal' => 'å°è®¡',
+ 'To' => '至',
+ 'Transaction Date missing!' => '未指明记录日期!',
+ 'Transaction deleted!' => '巳删除记录',
+ 'Transaction posted!' => '巳过å¸è®°å½•',
+ 'Update' => 'æ›´æ–°',
+ 'Vendor Invoice ' => '供应商å‘票',
+ 'Vendor not on file!' => '档案没有此供应商',
+ 'Warning!' => '警告',
+ 'Week(s)' => '周',
+ 'Year' => '年份',
+ 'Year(s)' => 'å¹´',
+ 'Yes' => '是',
+ 'sent' => 'å·³é€å‡º',
+ 'time(s)' => '次',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ '应付记录' => 'ap_transaction',
+ '应收记录' => 'ar_transaction',
+ '继续' => 'continue',
+ '删除' => 'delete',
+ '删除预定' => 'delete_schedule',
+ 'gl记录' => 'gl_transaction',
+ '过å¸' => 'post',
+ '当新的过å¸' => 'post_as_new',
+ '销货å‘票' => 'sales_invoice_',
+ '储存预定' => 'save_schedule',
+ '预定' => 'schedule',
+ 'æ›´æ–°' => 'update',
+ '供应商å‘票' => 'vendor_invoice_',
+ '是' => 'yes',
+};
+
+1;
+
diff --git a/locale/cn_utf/hr b/locale/cn_utf/hr
new file mode 100755
index 00000000..441e5c09
--- /dev/null
+++ b/locale/cn_utf/hr
@@ -0,0 +1,117 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP' => '应付å¸æ¬¾',
+ 'Above' => '上文',
+ 'Accounting Menu' => '会计选å•',
+ 'Active' => '活跃',
+ 'Add Deduction' => '新增扣除',
+ 'Add Employee' => '新增èŒå‘˜',
+ 'Address' => '地å€',
+ 'Administrator' => '管ç†äºº',
+ 'After Deduction' => '扣除以åŽ',
+ 'All' => '全部',
+ 'Allowances' => '津贴',
+ 'Amount' => '总计',
+ 'Amount missing!' => 'æ¼å¡«çš„总计',
+ 'Based on' => '基于',
+ 'Before Deduction' => '扣除之å‰',
+ 'Below' => '以下',
+ 'City' => '城市',
+ 'Continue' => '继续',
+ 'Country' => '国家',
+ 'DOB' => '生日',
+ 'Deduct after' => 'å‡å°‘以åŽ',
+ 'Deduction deleted!' => '巳删除å‡å°‘',
+ 'Deduction saved!' => '巳储存å‡å°‘',
+ 'Deductions' => 'å‡é™¤é¢',
+ 'Delete' => '删除',
+ 'Description' => '说明',
+ 'Description missing!' => '短少说明',
+ 'E-mail' => '电å­é‚®ä»¶',
+ 'Edit Deduction' => '编辑å‡é™¤é¢',
+ 'Edit Employee' => '编辑èŒå‘˜',
+ 'Employee' => 'èŒå‘˜',
+ 'Employee Name' => 'èŒå‘˜å§“å',
+ 'Employee Number' => 'å·¥å·',
+ 'Employee deleted!' => '巳删除èŒå‘˜',
+ 'Employee pays' => '付款给èŒå‘˜',
+ 'Employee saved!' => '巳储存èŒå‘˜',
+ 'Employees' => 'èŒå‘˜',
+ 'Employer' => '雇主',
+ 'Employer pays' => '付款给雇主',
+ 'Enddate' => '结æŸæ—¥',
+ 'Expense' => '费用',
+ 'From' => '从',
+ 'Home Phone' => 'ä½å®…电è¯',
+ 'ID' => 'ç¼–å·',
+ 'Inactive' => '消æž',
+ 'Include in Report' => '一并显示',
+ 'Login' => '登入',
+ 'Manager' => 'ç»ç†',
+ 'Maximum' => '最大',
+ 'Name' => 'å称',
+ 'Name missing!' => '未指明åå­—',
+ 'Notes' => '备注',
+ 'Number' => 'ç¼–å·',
+ 'Orphaned' => '无主',
+ 'Payroll Deduction' => '薪金å‡é™¤é¢',
+ 'Rate' => '税率',
+ 'Rate missing!' => '未指明税率',
+ 'Role' => '任务',
+ 'SSN' => '身分è¯ç¼–å·',
+ 'Sales' => '销售',
+ 'Save' => '储存',
+ 'Save as new' => 'å¦å­˜æ–°æ¡£',
+ 'Startdate' => '开始日期',
+ 'State/Province' => 'çœ',
+ 'Supervisor' => '管ç†äºº',
+ 'To' => '至',
+ 'Update' => 'æ›´æ–°',
+ 'User' => '使用者',
+ 'Work Phone' => '工作电è¯',
+ 'Zip/Postal Code' => '邮编',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ '新增扣除' => 'add_deduction',
+ '新增èŒå‘˜' => 'add_employee',
+ '继续' => 'continue',
+ '删除' => 'delete',
+ '储存' => 'save',
+ 'å¦å­˜æ–°æ¡£' => 'save_as_new',
+ 'æ›´æ–°' => 'update',
+};
+
+1;
+
diff --git a/locale/cn_utf/ic b/locale/cn_utf/ic
new file mode 100755
index 00000000..0706648b
--- /dev/null
+++ b/locale/cn_utf/ic
@@ -0,0 +1,287 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => '会计选å•',
+ 'Accounts' => 'å¸æˆ·',
+ 'Accrual' => '累积',
+ 'Active' => '活跃',
+ 'Add' => '新增',
+ 'Add Assembly' => '新增组件',
+ 'Add Labor/Overhead' => '新增劳工/ç»å¸¸è´¹ç”¨',
+ 'Add Part' => '新增零件',
+ 'Add Purchase Order' => '新增采购å•',
+ 'Add Quotation' => '新增报价å•',
+ 'Add Request for Quotation' => '新增报价å•è¦æ±‚',
+ 'Add Sales Order' => '新增销货å•',
+ 'Add Service' => '新增æœåŠ¡',
+ 'Address' => '地å€',
+ 'Apr' => '四月',
+ 'April' => '四月',
+ 'Assemblies' => '产å“',
+ 'Assemblies restocked!' => 'å·³é‡æ–°è¿›è´§çš„产å“',
+ 'Assembly' => '组件',
+ 'Attachment' => '附档',
+ 'Aug' => '八月',
+ 'August' => '八月',
+ 'Average Cost' => 'å¹³å‡æˆæœ¬',
+ 'Avg Cost' => 'å¹³å‡æˆæœ¬',
+ 'BOM' => 'æ料清å•',
+ 'Bcc' => 'ä¸æ˜¾ç¤ºæŠ„é€',
+ 'Billing Address' => 'å¸å•åœ°å€',
+ 'Bin' => 'ç®±',
+ 'Bin List' => '箱的明细表',
+ 'Break' => '折扣数é‡',
+ 'COGS' => '货销æˆæœ¬',
+ 'Cannot create Assembly' => '无法造æˆç»„件',
+ 'Cannot create Labor' => '无法造æˆåŠ³å·¥',
+ 'Cannot create Part' => '无法造æˆé›¶ä»¶',
+ 'Cannot create Service' => '无法造æˆæœåŠ¡',
+ 'Cannot delete item!' => 'ä¸èƒ½åˆ é™¤é¡¹ç›®',
+ 'Cannot stock assemblies!' => 'ä¸èƒ½å¸¸å¤‡çš„组件',
+ 'Cash' => '现金',
+ 'Cc' => '抄é€',
+ 'Check Inventory' => '检查存货清å•',
+ 'City' => '城市',
+ 'Closed' => '已关闭',
+ 'Company Name' => 'å…¬å¸å称',
+ 'Components' => '零件',
+ 'Contact' => '连络人',
+ 'Continue' => '继续',
+ 'Copies' => '副本',
+ 'Cost' => 'æˆæœ¬',
+ 'Country' => '国家',
+ 'Curr' => 'å¸åˆ«',
+ 'Currency' => 'å¸åˆ«',
+ 'Customer' => '客户',
+ 'Customer Number' => '客户编å·',
+ 'Customer not on file!' => '客户未存档',
+ 'Date' => '日期',
+ 'Dec' => 'å二月',
+ 'December' => 'å二月',
+ 'Delete' => '删除',
+ 'Delivery Date' => '到期日',
+ 'Description' => '说明',
+ 'Detail' => '详情',
+ 'Drawing' => '图画',
+ 'E-mail' => '电å­é‚®ä»¶',
+ 'E-mail address missing!' => '未指明电å­é‚®ä»¶ä½å€!',
+ 'E-mailed' => '巳电邮',
+ 'Edit Assembly' => '编辑组件',
+ 'Edit Labor/Overhead' => '编辑劳工/ç»å¸¸è´¹ç”¨',
+ 'Edit Part' => '编辑零件',
+ 'Edit Service' => '编辑æœåŠ¡',
+ 'Employee' => 'èŒå‘˜',
+ 'Expense' => '费用',
+ 'Expense account does not exist!' => '费用科目勿存在',
+ 'Extended' => 'å°è®¡',
+ 'Fax' => '传真',
+ 'Feb' => '二月',
+ 'February' => '二月',
+ 'From' => '从',
+ 'Group' => '组',
+ 'Image' => 'å½¢åƒ',
+ 'In-line' => '行内',
+ 'Include in Report' => '一并显示',
+ 'Income' => '收入',
+ 'Income account does not exist!' => '收入科目勿存在',
+ 'Individual Items' => '个别的项目',
+ 'Inventory' => '库存',
+ 'Inventory account does not exist!' => '存货科目勿存在',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => '在将此项组件设定为过时之å‰, 必需先将存货数é‡å½’零!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => '在将此项零件设定为过时之å‰, 必需先将存货数é‡å½’零!',
+ 'Invoice' => 'å‘票',
+ 'Invoice Date missing!' => '未指明å‘票日期!',
+ 'Invoice Number' => 'å‘票编å·',
+ 'Invoice Number missing!' => '未指明å‘票编å·!',
+ 'Item deleted!' => '巳删除项目',
+ 'Item not on file!' => '查无此项目',
+ 'Items' => '项目',
+ 'Jan' => '一月',
+ 'January' => '一月',
+ 'Jul' => '七月',
+ 'July' => '七月',
+ 'Jun' => '六月',
+ 'June' => '六月',
+ 'Labor/Overhead' => '劳工/ç»å¸¸è´¹ç”¨',
+ 'Last Cost' => '最åŽæˆæœ¬',
+ 'Leadtime' => '总需时',
+ 'Line Total' => '总列数',
+ 'Link Accounts' => '连结å¸æˆ·',
+ 'List' => '牌价',
+ 'List Price' => '牌价',
+ 'Make' => '制造',
+ 'Mar' => '三月',
+ 'March' => '三月',
+ 'Markup' => '涨价',
+ 'May' => '五月',
+ 'May ' => '五月',
+ 'Message' => '讯æ¯',
+ 'Microfiche' => 'å•ç‰‡ç¼©å½±èƒ¶ç‰‡',
+ 'Model' => 'åž‹å·',
+ 'Name' => 'å称',
+ 'No.' => 'åºå·',
+ 'Notes' => '备注',
+ 'Nov' => 'å一月',
+ 'November' => 'å一月',
+ 'Number' => 'æ–™å·',
+ 'Number missing in Row' => '此列中缺少数值',
+ 'Obsolete' => '过时',
+ 'Oct' => 'å月',
+ 'October' => 'å月',
+ 'On Hand' => '巳有存é‡',
+ 'Open' => 'å¼€å¯',
+ 'Order' => '订å•',
+ 'Order Date missing!' => '未指明下å•æ—¥æœŸ!',
+ 'Order Number' => '订å•ç¼–å·',
+ 'Order Number missing!' => '未指明订å•ç¼–å·!',
+ 'Orphaned' => '无主',
+ 'PDF' => 'PDF',
+ 'Packing List' => '出货å•',
+ 'Packing List Date missing!' => '未指明包装清å•æ—¥æœŸ!',
+ 'Packing List Number missing!' => '未指明包装清å•ç¼–å·!',
+ 'Part' => '零件',
+ 'Parts' => '零件',
+ 'Period' => '时期',
+ 'Phone' => '电è¯å·ç ',
+ 'Pick List' => '拣货清å•',
+ 'Postscript' => 'PostScript',
+ 'Price' => 'å•ä»·',
+ 'Pricegroup' => '价格组',
+ 'Printed' => '巳列å°',
+ 'Project' => '方案',
+ 'Purchase Order' => '采购å•',
+ 'Purchase Orders' => '采购å•',
+ 'Qty' => 'æ•°é‡',
+ 'Quantity exceeds available units to stock!' => '超过å¯åº“存的数é‡',
+ 'Quotation' => '报价å•',
+ 'Quotation Date missing!' => '未指明报价å•æ—¥æœŸ',
+ 'Quotation Number missing!' => '未指明报价å•å·ç ',
+ 'Quotations' => '报价å•',
+ 'RFQ' => '报价请求(RFQ) ',
+ 'ROP' => 'å†è®¢ç‚¹',
+ 'Recd' => '巳收到',
+ 'Required by' => '需è¦æ—¥',
+ 'SKU' => '供应商料å·',
+ 'Sales Invoice' => '销售å‘票',
+ 'Sales Invoices' => '许多销售å‘票',
+ 'Sales Order' => '销货å•',
+ 'Sales Orders' => '销货å•',
+ 'Save' => '储存',
+ 'Save as new' => 'å¦å­˜æ–°æ¡£',
+ 'Screen' => '显示器',
+ 'Select from one of the names below' => '于下列姓å中选择一个',
+ 'Sell' => 'å–ä»·',
+ 'Sell Price' => '售价',
+ 'Sep' => 'ä¹æœˆ',
+ 'September' => 'ä¹æœˆ',
+ 'Serial No.' => 'ç¼–å·',
+ 'Serial Number' => 'åºå·',
+ 'Service' => 'æœåŠ¡',
+ 'Services' => 'æœåŠ¡',
+ 'Ship' => '出货',
+ 'Ship to' => 'æµ·è¿è‡³',
+ 'Shipping Address' => 'æµ·è¿åœ°å€',
+ 'Short' => '短',
+ 'State/Province' => 'çœ',
+ 'Stock' => '库存',
+ 'Stock Assembly' => '装é…组件',
+ 'Subject' => '标题',
+ 'Subtotal' => '共计',
+ 'Summary' => '摘è¦',
+ 'Tax' => '税金',
+ 'To' => '至',
+ 'Top Level' => '高水准',
+ 'Unit' => 'å•ä½',
+ 'Update' => 'æ›´æ–°',
+ 'Updated' => '巳更新',
+ 'Vendor' => '供应商',
+ 'Vendor Invoice' => '供应商å‘票',
+ 'Vendor Invoices' => '供应商å‘票',
+ 'Vendor Number' => '供应商å·ç ',
+ 'Vendor not on file!' => '档案没有此供应商',
+ 'Warehouse' => '仓库',
+ 'Weight' => 'é‡é‡',
+ 'What type of item is this?' => '此项目的型�',
+ 'Work Order' => '工作å•',
+ 'Year' => '年份',
+ 'Zip/Postal Code' => '邮编',
+ 'days' => 'æ—¥',
+ 'sent' => 'å·³é€å‡º',
+ 'unexpected error!' => 'æ„外错误!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ '新增组件' => 'add_assembly',
+ '新增劳工_ç»å¸¸è´¹ç”¨' => 'add_labor_overhead',
+ '新增零件' => 'add_part',
+ '新增æœåŠ¡' => 'add_service',
+ '继续' => 'continue',
+ '删除' => 'delete',
+ '编辑组件' => 'edit_assembly',
+ '编辑零件' => 'edit_part',
+ '编辑æœåŠ¡' => 'edit_service',
+ '储存' => 'save',
+ 'å¦å­˜æ–°æ¡£' => 'save_as_new',
+ 'æ›´æ–°' => 'update',
+};
+
+1;
+
diff --git a/locale/cn_utf/io b/locale/cn_utf/io
new file mode 100755
index 00000000..2c5f5672
--- /dev/null
+++ b/locale/cn_utf/io
@@ -0,0 +1,130 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Add Purchase Order' => '新增采购å•',
+ 'Add Quotation' => '新增报价å•',
+ 'Add Request for Quotation' => '新增报价å•è¦æ±‚',
+ 'Add Sales Order' => '新增销货å•',
+ 'Address' => '地å€',
+ 'Apr' => '四月',
+ 'April' => '四月',
+ 'Attachment' => '附档',
+ 'Aug' => '八月',
+ 'August' => '八月',
+ 'Bcc' => 'ä¸æ˜¾ç¤ºæŠ„é€',
+ 'Billing Address' => 'å¸å•åœ°å€',
+ 'Bin' => 'ç®±',
+ 'Bin List' => '箱的明细表',
+ 'Cc' => '抄é€',
+ 'City' => '城市',
+ 'Company Name' => 'å…¬å¸å称',
+ 'Contact' => '连络人',
+ 'Continue' => '继续',
+ 'Copies' => '副本',
+ 'Country' => '国家',
+ 'Customer Number' => '客户编å·',
+ 'Date' => '日期',
+ 'Dec' => 'å二月',
+ 'December' => 'å二月',
+ 'Delivery Date' => '到期日',
+ 'Description' => '说明',
+ 'E-mail' => '电å­é‚®ä»¶',
+ 'E-mail address missing!' => '未指明电å­é‚®ä»¶ä½å€!',
+ 'E-mailed' => '巳电邮',
+ 'Extended' => 'å°è®¡',
+ 'Fax' => '传真',
+ 'Feb' => '二月',
+ 'February' => '二月',
+ 'Group' => '组',
+ 'In-line' => '行内',
+ 'Invoice' => 'å‘票',
+ 'Invoice Date missing!' => '未指明å‘票日期!',
+ 'Invoice Number missing!' => '未指明å‘票编å·!',
+ 'Item not on file!' => '查无此项目',
+ 'Jan' => '一月',
+ 'January' => '一月',
+ 'Jul' => '七月',
+ 'July' => '七月',
+ 'Jun' => '六月',
+ 'June' => '六月',
+ 'Mar' => '三月',
+ 'March' => '三月',
+ 'May' => '五月',
+ 'May ' => '五月',
+ 'Message' => '讯æ¯',
+ 'Nov' => 'å一月',
+ 'November' => 'å一月',
+ 'Number' => 'æ–™å·',
+ 'Number missing in Row' => '此列中缺少数值',
+ 'Oct' => 'å月',
+ 'October' => 'å月',
+ 'Order Date missing!' => '未指明下å•æ—¥æœŸ!',
+ 'Order Number missing!' => '未指明订å•ç¼–å·!',
+ 'PDF' => 'PDF',
+ 'Packing List' => '出货å•',
+ 'Packing List Date missing!' => '未指明包装清å•æ—¥æœŸ!',
+ 'Packing List Number missing!' => '未指明包装清å•ç¼–å·!',
+ 'Part' => '零件',
+ 'Phone' => '电è¯å·ç ',
+ 'Pick List' => '拣货清å•',
+ 'Postscript' => 'PostScript',
+ 'Price' => 'å•ä»·',
+ 'Printed' => '巳列å°',
+ 'Project' => '方案',
+ 'Purchase Order' => '采购å•',
+ 'Qty' => 'æ•°é‡',
+ 'Quotation' => '报价å•',
+ 'Quotation Date missing!' => '未指明报价å•æ—¥æœŸ',
+ 'Quotation Number missing!' => '未指明报价å•å·ç ',
+ 'Recd' => '巳收到',
+ 'Required by' => '需è¦æ—¥',
+ 'SKU' => '供应商料å·',
+ 'Sales Order' => '销货å•',
+ 'Screen' => '显示器',
+ 'Sep' => 'ä¹æœˆ',
+ 'September' => 'ä¹æœˆ',
+ 'Serial No.' => 'ç¼–å·',
+ 'Service' => 'æœåŠ¡',
+ 'Ship' => '出货数é‡',
+ 'Ship to' => 'æµ·è¿è‡³',
+ 'Shipping Address' => 'æµ·è¿åœ°å€',
+ 'State/Province' => 'çœ',
+ 'Subject' => '标题',
+ 'Subtotal' => '共计',
+ 'To' => '至',
+ 'Unit' => 'å•ä½',
+ 'Vendor Number' => '供应商å·ç ',
+ 'What type of item is this?' => '此项目的型�',
+ 'Work Order' => '工作å•',
+ 'Zip/Postal Code' => '邮编',
+ 'sent' => 'å·³é€å‡º',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ '继续' => 'continue',
+};
+
+1;
+
diff --git a/locale/cn_utf/ir b/locale/cn_utf/ir
new file mode 100755
index 00000000..28a06fcb
--- /dev/null
+++ b/locale/cn_utf/ir
@@ -0,0 +1,238 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'å¸æˆ·',
+ 'Accounting Menu' => '会计选å•',
+ 'Add Purchase Order' => '新增采购å•',
+ 'Add Quotation' => '新增报价å•',
+ 'Add Request for Quotation' => '新增报价å•è¦æ±‚',
+ 'Add Sales Order' => '新增销货å•',
+ 'Add Vendor Invoice' => '新增供应商å‘票',
+ 'Address' => '地å€',
+ 'Amount' => '总计',
+ 'Apr' => '四月',
+ 'April' => '四月',
+ 'Are you sure you want to delete Invoice Number' => '您确定è¦åˆ é™¤å‘票编å·',
+ 'Attachment' => '附档',
+ 'Aug' => '八月',
+ 'August' => '八月',
+ 'Bcc' => 'ä¸æ˜¾ç¤ºæŠ„é€',
+ 'Billing Address' => 'å¸å•åœ°å€',
+ 'Bin' => 'ç®±',
+ 'Bin List' => '箱的明细表',
+ 'Cannot delete invoice!' => 'ä¸èƒ½åˆ é™¤å‘票',
+ 'Cannot post invoice for a closed period!' => 'ä¸èƒ½åœ¨å·²å…³é—­çš„时段内过å¸å‘票',
+ 'Cannot post invoice!' => 'ä¸èƒ½è¿‡å¸å‘票',
+ 'Cannot post payment for a closed period!' => 'ä¸èƒ½åœ¨å·²å…³é—­çš„时段内过å¸æ¬¾é¡¹',
+ 'Cc' => '抄é€',
+ 'City' => '城市',
+ 'Company Name' => 'å…¬å¸å称',
+ 'Confirm!' => 'å…¥å¸æˆåŠŸ!',
+ 'Contact' => '连络人',
+ 'Continue' => '继续',
+ 'Copies' => '副本',
+ 'Country' => '国家',
+ 'Credit Limit' => '信用é¢åº¦',
+ 'Currency' => 'å¸åˆ«',
+ 'Customer Number' => '客户编å·',
+ 'Customer not on file!' => '客户未存档',
+ 'Date' => '日期',
+ 'Day(s)' => 'æ—¥',
+ 'Dec' => 'å二月',
+ 'December' => 'å二月',
+ 'Delete' => '删除',
+ 'Delete Schedule' => '删除预定',
+ 'Delivery Date' => '到期日',
+ 'Department' => '部门',
+ 'Description' => '说明',
+ 'Due Date' => '到期日',
+ 'E-mail' => '电å­é‚®ä»¶',
+ 'E-mail address missing!' => '未指明电å­é‚®ä»¶ä½å€!',
+ 'E-mail message' => 'å‘é€ç”µé‚®',
+ 'E-mailed' => '巳电邮',
+ 'Edit Vendor Invoice' => '编辑供应商å‘票',
+ 'Exch' => '汇率',
+ 'Exchange Rate' => '汇率',
+ 'Exchange rate for payment missing!' => '未指明付款的汇率',
+ 'Exchange rate missing!' => '未指明汇率',
+ 'Extended' => 'å°è®¡',
+ 'Fax' => '传真',
+ 'Feb' => '二月',
+ 'February' => '二月',
+ 'Group' => '组',
+ 'In-line' => '行内',
+ 'Internal Notes' => '内部备忘录',
+ 'Invoice' => 'å‘票',
+ 'Invoice Date' => 'å‘票日期',
+ 'Invoice Date missing!' => '未指明å‘票日期!',
+ 'Invoice Number' => 'å‘票编å·',
+ 'Invoice Number missing!' => '未指明å‘票编å·!',
+ 'Invoice deleted!' => '巳删除å‘票',
+ 'Item not on file!' => '查无此项目',
+ 'Jan' => '一月',
+ 'January' => '一月',
+ 'Jul' => '七月',
+ 'July' => '七月',
+ 'Jun' => '六月',
+ 'June' => '六月',
+ 'Language' => '语言',
+ 'Mar' => '三月',
+ 'March' => '三月',
+ 'May' => '五月',
+ 'May ' => '五月',
+ 'Memo' => '备忘录',
+ 'Message' => '讯æ¯',
+ 'Month(s)' => '月',
+ 'Notes' => '备注',
+ 'Nov' => 'å一月',
+ 'November' => 'å一月',
+ 'Number' => 'ç¼–å·',
+ 'Number missing in Row' => '此列中缺少数值',
+ 'Oct' => 'å月',
+ 'October' => 'å月',
+ 'Order Date missing!' => '未指明下å•æ—¥æœŸ!',
+ 'Order Number' => '订å•ç¼–å·',
+ 'Order Number missing!' => '未指明订å•ç¼–å·!',
+ 'PDF' => 'PDF',
+ 'PO Number' => '采购å•ç¼–å·',
+ 'Packing List' => '出货å•',
+ 'Packing List Date missing!' => '未指明包装清å•æ—¥æœŸ!',
+ 'Packing List Number missing!' => '未指明包装清å•ç¼–å·!',
+ 'Part' => '零件',
+ 'Payment date missing!' => '未指明付款日期!',
+ 'Payments' => '许多付款',
+ 'Phone' => '电è¯å·ç ',
+ 'Pick List' => '拣货清å•',
+ 'Post' => '过å¸',
+ 'Post as new' => '当新的过å¸',
+ 'Postscript' => 'PostScript',
+ 'Price' => 'å•ä»·',
+ 'Print' => '列å°',
+ 'Printed' => '巳列å°',
+ 'Project' => '方案',
+ 'Project not on file!' => '方案内无此档案',
+ 'Purchase Order' => '采购å•',
+ 'Qty' => 'æ•°é‡',
+ 'Quotation' => '报价å•',
+ 'Quotation Date missing!' => '未指明报价å•æ—¥æœŸ',
+ 'Quotation Number missing!' => '未指明报价å•å·ç ',
+ 'Recd' => '巳收到',
+ 'Record in' => '记录于',
+ 'Recurring Transaction' => '多次记录',
+ 'Reference' => 'å‚ç…§',
+ 'Remaining' => 'å°šä½™',
+ 'Required by' => '需è¦æ—¥',
+ 'SKU' => '供应商料å·',
+ 'Sales Order' => '销货å•',
+ 'Save Schedule' => '储存预定',
+ 'Schedule' => '预定',
+ 'Screen' => '显示器',
+ 'Select from one of the names below' => '于下列姓å中选择一个',
+ 'Select from one of the projects below' => '于下列方案中选择一个',
+ 'Sep' => 'ä¹æœˆ',
+ 'September' => 'ä¹æœˆ',
+ 'Serial No.' => 'ç¼–å·',
+ 'Service' => 'æœåŠ¡',
+ 'Ship' => '出货',
+ 'Ship to' => 'æµ·è¿è‡³',
+ 'Shipping Address' => 'æµ·è¿åœ°å€',
+ 'Source' => 'æ¥æº',
+ 'Startdate' => '开始日期',
+ 'State/Province' => 'çœ',
+ 'Subject' => '标题',
+ 'Subtotal' => '共计',
+ 'Tax Included' => 'å·³å«ç¨Žé‡‘',
+ 'To' => '至',
+ 'Total' => '总计',
+ 'Unit' => 'å•ä½',
+ 'Update' => 'æ›´æ–°',
+ 'Vendor' => '供应商',
+ 'Vendor Number' => '供应商å·ç ',
+ 'Vendor missing!' => '未指明供应商',
+ 'Vendor not on file!' => '档案没有此供应商',
+ 'Warning!' => '警告',
+ 'Week(s)' => '周',
+ 'What type of item is this?' => '此项目的型�',
+ 'Work Order' => '工作å•',
+ 'Year(s)' => 'å¹´',
+ 'Yes' => '是',
+ 'Zip/Postal Code' => '邮编',
+ 'ea' => '个',
+ 'posted!' => '巳过å¸',
+ 'sent' => 'å·³é€å‡º',
+ 'time(s)' => '次',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ '继续' => 'continue',
+ '删除' => 'delete',
+ '删除预定' => 'delete_schedule',
+ '过å¸' => 'post',
+ '当新的过å¸' => 'post_as_new',
+ '采购å•' => 'purchase_order',
+ '储存预定' => 'save_schedule',
+ '预定' => 'schedule',
+ 'æ›´æ–°' => 'update',
+ '是' => 'yes',
+};
+
+1;
+
diff --git a/locale/cn_utf/is b/locale/cn_utf/is
new file mode 100755
index 00000000..b3d8b6bf
--- /dev/null
+++ b/locale/cn_utf/is
@@ -0,0 +1,251 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'å¸æˆ·',
+ 'Accounting Menu' => '会计选å•',
+ 'Add Purchase Order' => '新增采购å•',
+ 'Add Quotation' => '新增报价å•',
+ 'Add Request for Quotation' => '新增报价å•è¦æ±‚',
+ 'Add Sales Invoice' => '新增销售å‘票',
+ 'Add Sales Order' => '新增销货å•',
+ 'Address' => '地å€',
+ 'Amount' => '总计',
+ 'Apr' => '四月',
+ 'April' => '四月',
+ 'Are you sure you want to delete Invoice Number' => '您确定è¦åˆ é™¤å‘票编å·',
+ 'Attachment' => '附档',
+ 'Aug' => '八月',
+ 'August' => '八月',
+ 'Bcc' => 'ä¸æ˜¾ç¤ºæŠ„é€',
+ 'Billing Address' => 'å¸å•åœ°å€',
+ 'Bin' => 'ç®±',
+ 'Bin List' => '箱的明细表',
+ 'Business' => '业务',
+ 'Cannot delete invoice!' => 'ä¸èƒ½åˆ é™¤å‘票',
+ 'Cannot post invoice for a closed period!' => 'ä¸èƒ½åœ¨å·²å…³é—­çš„时段内过å¸å‘票',
+ 'Cannot post invoice!' => 'ä¸èƒ½è¿‡å¸å‘票',
+ 'Cannot post payment for a closed period!' => 'ä¸èƒ½åœ¨å·²å…³é—­çš„时段内过å¸æ¬¾é¡¹',
+ 'Cc' => '抄é€',
+ 'City' => '城市',
+ 'Company Name' => 'å…¬å¸å称',
+ 'Confirm!' => 'å…¥å¸æˆåŠŸ!',
+ 'Contact' => '连络人',
+ 'Continue' => '继续',
+ 'Copies' => '副本',
+ 'Country' => '国家',
+ 'Credit Limit' => '信用é¢åº¦',
+ 'Currency' => 'å¸åˆ«',
+ 'Customer' => '客户',
+ 'Customer Number' => '客户编å·',
+ 'Customer missing!' => '未指明客户',
+ 'Customer not on file!' => '客户未存档',
+ 'Date' => '日期',
+ 'Day(s)' => 'æ—¥',
+ 'Dec' => 'å二月',
+ 'December' => 'å二月',
+ 'Delete' => '删除',
+ 'Delete Schedule' => '删除预定',
+ 'Delivery Date' => '到期日',
+ 'Department' => '部门',
+ 'Description' => '说明',
+ 'Due Date' => '到期日',
+ 'E-mail' => '电å­é‚®ä»¶',
+ 'E-mail address missing!' => '未指明电å­é‚®ä»¶ä½å€!',
+ 'E-mail message' => 'å‘é€ç”µé‚®',
+ 'E-mailed' => '巳电邮',
+ 'Edit Sales Invoice' => '编辑销售å‘票',
+ 'Exch' => '汇率',
+ 'Exchange Rate' => '汇率',
+ 'Exchange rate for payment missing!' => '未指明付款的汇率',
+ 'Exchange rate missing!' => '未指明汇率',
+ 'Extended' => 'å°è®¡',
+ 'Fax' => '传真',
+ 'Feb' => '二月',
+ 'February' => '二月',
+ 'Group' => '组',
+ 'In-line' => '行内',
+ 'Internal Notes' => '内部备忘录',
+ 'Invoice' => 'å‘票',
+ 'Invoice Date' => 'å‘票日期',
+ 'Invoice Date missing!' => '未指明å‘票日期!',
+ 'Invoice Number' => 'å‘票编å·',
+ 'Invoice Number missing!' => '未指明å‘票编å·!',
+ 'Invoice deleted!' => '巳删除å‘票',
+ 'Item not on file!' => '查无此项目',
+ 'Jan' => '一月',
+ 'January' => '一月',
+ 'Jul' => '七月',
+ 'July' => '七月',
+ 'Jun' => '六月',
+ 'June' => '六月',
+ 'Mar' => '三月',
+ 'March' => '三月',
+ 'May' => '五月',
+ 'May ' => '五月',
+ 'Memo' => '备忘录',
+ 'Message' => '讯æ¯',
+ 'Month(s)' => '月',
+ 'Notes' => '备注',
+ 'Nov' => 'å一月',
+ 'November' => 'å一月',
+ 'Number' => 'ç¼–å·',
+ 'Number missing in Row' => '此列中缺少数值',
+ 'Oct' => 'å月',
+ 'October' => 'å月',
+ 'Order Date missing!' => '未指明下å•æ—¥æœŸ!',
+ 'Order Number' => '订å•ç¼–å·',
+ 'Order Number missing!' => '未指明订å•ç¼–å·!',
+ 'PDF' => 'PDF',
+ 'PO Number' => '采购å•ç¼–å·',
+ 'Packing List' => '出货å•',
+ 'Packing List Date missing!' => '未指明包装清å•æ—¥æœŸ!',
+ 'Packing List Number missing!' => '未指明包装清å•ç¼–å·!',
+ 'Part' => '零件',
+ 'Payment date missing!' => '未指明付款日期!',
+ 'Payments' => '许多付款',
+ 'Phone' => '电è¯å·ç ',
+ 'Pick List' => '拣货清å•',
+ 'Post' => '过å¸',
+ 'Post as new' => '当新的过å¸',
+ 'Postscript' => 'PostScript',
+ 'Price' => 'å•ä»·',
+ 'Print' => '列å°',
+ 'Print and Post' => '列å°åŠè¿‡å¸',
+ 'Print and Post as new' => '列å°åŠå½“新的过å¸',
+ 'Printed' => '巳列å°',
+ 'Project' => '方案',
+ 'Project not on file!' => '方案内无此档案',
+ 'Purchase Order' => '采购å•',
+ 'Qty' => 'æ•°é‡',
+ 'Quotation' => '报价å•',
+ 'Quotation Date missing!' => '未指明报价å•æ—¥æœŸ',
+ 'Quotation Number missing!' => '未指明报价å•å·ç ',
+ 'Recd' => '巳收到',
+ 'Record in' => '记录于',
+ 'Recurring Transaction' => '多次记录',
+ 'Reference' => 'å‚ç…§',
+ 'Remaining' => 'å°šä½™',
+ 'Required by' => '需è¦æ—¥',
+ 'SKU' => '供应商料å·',
+ 'Sales Order' => '销货å•',
+ 'Salesperson' => '销售人员',
+ 'Save Schedule' => '储存预定',
+ 'Schedule' => '预定',
+ 'Screen' => '显示器',
+ 'Select from one of the names below' => '于下列姓å中选择一个',
+ 'Select from one of the projects below' => '于下列方案中选择一个',
+ 'Select postscript or PDF!' => '于PostScript或PDF中选一',
+ 'Sep' => 'ä¹æœˆ',
+ 'September' => 'ä¹æœˆ',
+ 'Serial No.' => 'ç¼–å·',
+ 'Service' => 'æœåŠ¡',
+ 'Ship' => '出货',
+ 'Ship to' => 'æµ·è¿è‡³',
+ 'Ship via' => '由海è¿',
+ 'Shipping Address' => 'æµ·è¿åœ°å€',
+ 'Shipping Point' => 'æµ·è¿åœ°ç‚¹',
+ 'Source' => 'æ¥æº',
+ 'Startdate' => '开始日期',
+ 'State/Province' => 'çœ',
+ 'Subject' => '标题',
+ 'Subtotal' => '共计',
+ 'Tax Included' => 'å·³å«ç¨Žé‡‘',
+ 'To' => '至',
+ 'Total' => '总计',
+ 'Trade Discount' => '贸易折扣',
+ 'Unit' => 'å•ä½',
+ 'Update' => 'æ›´æ–°',
+ 'Vendor Number' => '供应商å·ç ',
+ 'Vendor not on file!' => '档案没有此供应商',
+ 'Warning!' => '警告',
+ 'Week(s)' => '周',
+ 'What type of item is this?' => '此项目的型�',
+ 'Work Order' => '工作å•',
+ 'Year(s)' => 'å¹´',
+ 'Yes' => '是',
+ 'Zip/Postal Code' => '邮编',
+ 'ea' => '个',
+ 'posted!' => '巳过å¸',
+ 'sent' => 'å·³é€å‡º',
+ 'time(s)' => '次',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ '继续' => 'continue',
+ '删除' => 'delete',
+ '删除预定' => 'delete_schedule',
+ '电å­é‚®ä»¶' => 'e_mail',
+ '过å¸' => 'post',
+ '当新的过å¸' => 'post_as_new',
+ '列å°' => 'print',
+ '列å°åŠè¿‡å¸' => 'print_and_post',
+ '列å°åŠå½“新的过å¸' => 'print_and_post_as_new',
+ '销货å•' => 'sales_order',
+ '储存预定' => 'save_schedule',
+ '预定' => 'schedule',
+ 'æµ·è¿è‡³' => 'ship_to',
+ 'æ›´æ–°' => 'update',
+ '是' => 'yes',
+};
+
+1;
+
diff --git a/locale/cn_utf/jc b/locale/cn_utf/jc
new file mode 100755
index 00000000..2c4d7353
--- /dev/null
+++ b/locale/cn_utf/jc
@@ -0,0 +1,96 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => '会计选å•',
+ 'Amount' => '总计',
+ 'Closed' => '已关闭',
+ 'Confirm!' => 'å…¥å¸æˆåŠŸ!',
+ 'Continue' => '继续',
+ 'Cost' => 'æˆæœ¬',
+ 'Current' => '现有',
+ 'Date' => '日期',
+ 'Date missing!' => '未指明日期',
+ 'Delete' => '删除',
+ 'Description' => '说明',
+ 'Employee' => 'èŒå‘˜',
+ 'From' => '从',
+ 'ID' => 'ç¼–å·',
+ 'Include in Report' => '一并显示',
+ 'Month' => '月份',
+ 'Notes' => '备注',
+ 'Open' => 'å¼€å¯',
+ 'PDF' => 'PDF',
+ 'Period' => '时期',
+ 'Postscript' => 'PostScript',
+ 'Print' => '列å°',
+ 'Print and Save' => '打å°åŠå‚¨å­˜',
+ 'Print and Save as new' => '列å°åŠå¦å­˜æ–°æ¡£',
+ 'Printed' => '巳列å°',
+ 'Project Number' => '方案å·ç ',
+ 'Project Number missing!' => '未指明方案å·ç ',
+ 'Qty' => 'æ•°é‡',
+ 'Quarter' => '季度',
+ 'Save' => '储存',
+ 'Save as new' => 'å¦å­˜æ–°æ¡£',
+ 'Screen' => '显示器',
+ 'Select postscript or PDF!' => '于PostScript或PDF中选一',
+ 'Startdate' => '开始日期',
+ 'Subtotal' => 'å°è®¡',
+ 'To' => '至',
+ 'Total' => '总计',
+ 'Update' => 'æ›´æ–°',
+ 'Warning!' => '警告',
+ 'Year' => '年份',
+ 'Yes' => '是',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ '继续' => 'continue',
+ '删除' => 'delete',
+ '列å°' => 'print',
+ '打å°åŠå‚¨å­˜' => 'print_and_save',
+ '列å°åŠå¦å­˜æ–°æ¡£' => 'print_and_save_as_new',
+ '储存' => 'save',
+ 'å¦å­˜æ–°æ¡£' => 'save_as_new',
+ 'æ›´æ–°' => 'update',
+ '是' => 'yes',
+};
+
+1;
+
diff --git a/locale/cn_utf/locales.pl b/locale/cn_utf/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/cn_utf/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/cn_utf/login b/locale/cn_utf/login
new file mode 100755
index 00000000..be9e785d
--- /dev/null
+++ b/locale/cn_utf/login
@@ -0,0 +1,27 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Access Denied!' => 'éžå­˜å–!',
+ 'Company' => 'å…¬å¸',
+ 'Continue' => '继续',
+ 'Dataset is newer than version!' => '较新资料集',
+ 'Incorrect Dataset version!' => '资料集版本错误!',
+ 'Login' => '登入',
+ 'Name' => 'å称',
+ 'Password' => '密ç ',
+ 'Upgrading to Version' => 'æ­£å‡çº§è‡³æ–°ç‰ˆ',
+ 'Version' => '版本',
+ 'You did not enter a name!' => '你并未键入å称!',
+ 'done' => '完æˆ',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ '登入' => 'login',
+};
+
+1;
+
diff --git a/locale/cn_utf/menu b/locale/cn_utf/menu
new file mode 100755
index 00000000..934faa67
--- /dev/null
+++ b/locale/cn_utf/menu
@@ -0,0 +1,139 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP' => '应付å¸æ¬¾',
+ 'AP Aging' => '应付å¸é¾„分æž',
+ 'AP Transaction' => '应付记录',
+ 'AR' => '应收å¸æ¬¾',
+ 'AR Aging' => '应收å¸é¾„分æž',
+ 'AR Transaction' => '应收记录',
+ 'Accounting Menu' => '会计选å•',
+ 'Add Account' => '新增å¸æˆ·',
+ 'Add Assembly' => '新增组件',
+ 'Add Business' => '新增业务',
+ 'Add Customer' => '新增客户',
+ 'Add Department' => '新增部门',
+ 'Add Employee' => '新增èŒå‘˜',
+ 'Add GIFI' => '新增 GIFI',
+ 'Add Group' => '新增组',
+ 'Add Labor/Overhead' => '新增劳工/ç»å¸¸è´¹ç”¨',
+ 'Add Language' => '新增语言',
+ 'Add Part' => '新增零件',
+ 'Add Pricegroup' => '新增价格组',
+ 'Add Project' => '新增方案',
+ 'Add SIC' => '新增标准工业分类代ç ',
+ 'Add Service' => '新增æœåŠ¡',
+ 'Add Transaction' => '新增记录',
+ 'Add Vendor' => '新增供应商',
+ 'Add Warehouse' => '新增仓库',
+ 'All Items' => '全部项目',
+ 'Assemblies' => '组件',
+ 'Audit Control' => '审核控制',
+ 'Backup' => '备份',
+ 'Balance Sheet' => '资产负债表',
+ 'Bin List' => '箱的明细表',
+ 'Bin Lists' => '箱清å•',
+ 'Cash' => '现金',
+ 'Chart of Accounts' => '会计科目表',
+ 'Check' => '检查',
+ 'Components' => '组件的零件',
+ 'Customers' => '客户',
+ 'Defaults' => '预设',
+ 'Departments' => '部门',
+ 'Description' => '说明',
+ 'Employees' => 'èŒå‘˜',
+ 'General Ledger' => '总å¸',
+ 'Generate' => '产生',
+ 'Goods & Services' => '货物åŠæœåŠ¡',
+ 'Groups' => '组',
+ 'HR' => '人事管ç†',
+ 'HTML Templates' => 'HTML 模版',
+ 'History' => '历å²',
+ 'Income Statement' => 'æŸç›Šè¡¨',
+ 'Invoice' => 'å‘票',
+ 'LaTeX Templates' => 'LaTeX 模版',
+ 'Labor/Overhead' => '劳工/ç»å¸¸è´¹ç”¨',
+ 'Language' => '语言',
+ 'List Accounts' => '列出å¸å·',
+ 'List Businesses' => '列出业务',
+ 'List Departments' => '列出部门',
+ 'List GIFI' => '列出 GIFI',
+ 'List Languages' => '列出语言',
+ 'List Projects' => '列出方案',
+ 'List SIC' => '列出标准工业分类代ç ',
+ 'List Warehouses' => '列出仓库',
+ 'Logout' => '登出',
+ 'New Window' => '新视窗',
+ 'Non-taxable' => 'ä¸åº”课税',
+ 'Open' => 'å¼€å¯',
+ 'Order Entry' => '下å•é¡¹ç›®',
+ 'Outstanding' => '未付',
+ 'POS' => '收款å°',
+ 'POS Invoice' => '收款å°å‘票',
+ 'Packing List' => '出货å•',
+ 'Packing Lists' => '出货å•',
+ 'Parts' => '零件',
+ 'Payment' => '付款',
+ 'Payments' => '许多付款',
+ 'Pick List' => '拣货清å•',
+ 'Pick Lists' => '拣货清å•',
+ 'Preferences' => '个人设定',
+ 'Pricegroups' => '价格组',
+ 'Print' => '列å°',
+ 'Projects' => '方案',
+ 'Purchase Order' => '采购å•',
+ 'Purchase Orders' => '采购å•',
+ 'Quotation' => '报价å•',
+ 'Quotations' => '报价å•',
+ 'RFQ' => '报价请求(RFQ) ',
+ 'RFQs' => '报价请求',
+ 'Receipt' => '收款',
+ 'Receipts' => '许多收款',
+ 'Receive' => '收货',
+ 'Reconciliation' => '对账',
+ 'Recurring Transactions' => '多次记录',
+ 'Reports' => '报表',
+ 'SIC' => '标准工业分类代ç ',
+ 'Sale' => '销售',
+ 'Sales Invoice' => '销售å‘票',
+ 'Sales Invoices' => '许多销售å‘票',
+ 'Sales Order' => '销货å•',
+ 'Sales Orders' => '销货å•',
+ 'Save to File' => '储存至档案',
+ 'Search' => 'æœå¯»',
+ 'Send by E-Mail' => '以电å­é‚®ä»¶å¯„é€',
+ 'Services' => 'æœåŠ¡',
+ 'Ship' => '出货',
+ 'Shipping' => '航è¿',
+ 'Statement' => '会计å¸',
+ 'Stock Assembly' => '装é…组件',
+ 'Stylesheet' => 'æ ·å¼è¡¨',
+ 'System' => '系统',
+ 'Tax collected' => '已收税金',
+ 'Tax paid' => '已付税金',
+ 'Text Templates' => '文字模版',
+ 'Transactions' => '记录',
+ 'Transfer' => '转å¸',
+ 'Transfer Inventory' => '调动货',
+ 'Translations' => '翻译',
+ 'Trial Balance' => '试算表',
+ 'Type of Business' => '业务ç§ç±»',
+ 'Vendor Invoice' => '供应商å‘票',
+ 'Vendors' => '供应商',
+ 'Version' => '版本',
+ 'Warehouses' => '仓库',
+ 'Work Order' => '工作å•',
+ 'Work Orders' => '工作å•',
+ 'Yearend' => '年结',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/cn_utf/oe b/locale/cn_utf/oe
new file mode 100755
index 00000000..bd59473e
--- /dev/null
+++ b/locale/cn_utf/oe
@@ -0,0 +1,350 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => '会计选å•',
+ 'Add Exchange Rate' => '新增外汇率',
+ 'Add Purchase Order' => '新增采购å•',
+ 'Add Quotation' => '新增报价å•',
+ 'Add Request for Quotation' => '新增报价å•è¦æ±‚',
+ 'Add Sales Invoice' => '新增销售å‘票',
+ 'Add Sales Order' => '新增销货å•',
+ 'Add Vendor Invoice' => '新增供应商å‘票',
+ 'Address' => '地å€',
+ 'Amount' => '总计',
+ 'Apr' => '四月',
+ 'April' => '四月',
+ 'Are you sure you want to delete Order Number' => '您是å¦ç¡®å®šè¦åˆ é™¤è®¢å•ç¼–å·',
+ 'Are you sure you want to delete Quotation Number' => '您是å¦ç¡®å®šè¦åˆ é™¤æŠ¥ä»·å•ç¼–å·',
+ 'Attachment' => '附档',
+ 'Aug' => '八月',
+ 'August' => '八月',
+ 'Bcc' => 'ä¸æ˜¾ç¤ºæŠ„é€',
+ 'Billing Address' => 'å¸å•åœ°å€',
+ 'Bin' => 'ç®±',
+ 'Bin List' => '箱的明细表',
+ 'Business' => '业务',
+ 'Cannot delete order!' => 'ä¸èƒ½åˆ é™¤å®šå•',
+ 'Cannot delete quotation!' => 'ä¸èƒ½åˆ é™¤æŠ¥ä»·å•',
+ 'Cannot save order!' => 'ä¸èƒ½å‚¨å­˜å®šå•',
+ 'Cannot save quotation!' => 'ä¸èƒ½å‚¨å­˜æŠ¥ä»·å•',
+ 'Cc' => '抄é€',
+ 'City' => '城市',
+ 'Closed' => '已关闭',
+ 'Company Name' => 'å…¬å¸å称',
+ 'Confirm!' => 'å…¥å¸æˆåŠŸ!',
+ 'Contact' => '连络人',
+ 'Continue' => '继续',
+ 'Copies' => '副本',
+ 'Cost' => 'æˆæœ¬',
+ 'Could not save!' => 'ä¸èƒ½å‚¨å­˜',
+ 'Could not transfer Inventory!' => '存货清å•ä¸èƒ½è½¬ç§»',
+ 'Country' => '国家',
+ 'Credit Limit' => '信用é¢åº¦',
+ 'Curr' => 'å¸åˆ«',
+ 'Currency' => 'å¸åˆ«',
+ 'Current' => '现有',
+ 'Customer' => '客户',
+ 'Customer Number' => '客户编å·',
+ 'Customer missing!' => '未指明客户',
+ 'Customer not on file!' => '客户未存档',
+ 'Date' => '日期',
+ 'Date Received' => '收款日期',
+ 'Date received missing!' => '未指明收款日期',
+ 'Day(s)' => 'æ—¥',
+ 'Dec' => 'å二月',
+ 'December' => 'å二月',
+ 'Delete' => '删除',
+ 'Delete Schedule' => '删除预定',
+ 'Delivery Date' => '到期日',
+ 'Department' => '部门',
+ 'Description' => '说明',
+ 'Done' => '巳完æˆ',
+ 'E-mail' => '电å­é‚®ä»¶',
+ 'E-mail address missing!' => '未指明电å­é‚®ä»¶ä½å€!',
+ 'E-mail message' => 'å‘é€ç”µé‚®',
+ 'E-mailed' => '巳电邮',
+ 'Edit Purchase Order' => '编辑采购å•',
+ 'Edit Quotation' => '编辑报价å•',
+ 'Edit Request for Quotation' => '编辑报价å•è¦æ±‚',
+ 'Edit Sales Order' => '编辑销货å•',
+ 'Employee' => 'èŒå‘˜',
+ 'Exchange Rate' => '汇率',
+ 'Exchange rate missing!' => '未指明汇率',
+ 'Extended' => 'å°è®¡',
+ 'Fax' => '传真',
+ 'Feb' => '二月',
+ 'February' => '二月',
+ 'From' => '从',
+ 'From Warehouse' => '从仓库',
+ 'Generate Orders' => '产生订å•',
+ 'Generate Purchase Orders' => '产生采购å•',
+ 'Generate Purchase Orders from Sales Order' => '用销货å•äº§ç”Ÿé‡‡è´­å•',
+ 'Generate Sales Order' => '产生销货å•',
+ 'Generate Sales Order from Purchase Orders' => '用销货å•äº§ç”Ÿé‡‡è´­å•',
+ 'Group' => '组',
+ 'ID' => 'ç¼–å·',
+ 'In-line' => '行内',
+ 'Include in Report' => '一并显示',
+ 'Internal Notes' => '内部备忘录',
+ 'Inventory saved!' => '巳储存存货',
+ 'Inventory transferred!' => '转移的存货',
+ 'Invoice' => 'å‘票',
+ 'Invoice Date missing!' => '未指明å‘票日期!',
+ 'Invoice Number missing!' => '未指明å‘票编å·!',
+ 'Item not on file!' => '查无此项目',
+ 'Jan' => '一月',
+ 'January' => '一月',
+ 'Jul' => '七月',
+ 'July' => '七月',
+ 'Jun' => '六月',
+ 'June' => '六月',
+ 'Lead' => '交货期',
+ 'Manager' => 'ç»ç†',
+ 'Mar' => '三月',
+ 'March' => '三月',
+ 'May' => '五月',
+ 'May ' => '五月',
+ 'Message' => '讯æ¯',
+ 'Month' => '月份',
+ 'Month(s)' => '月',
+ 'No.' => 'åºå·',
+ 'Notes' => '备注',
+ 'Nothing entered!' => '没有巳输入',
+ 'Nothing selected!' => '没有巳选择',
+ 'Nothing to transfer!' => '没有å¯è½¬ç§»çš„项目',
+ 'Nov' => 'å一月',
+ 'November' => 'å一月',
+ 'Number' => 'ç¼–å·',
+ 'Number missing in Row' => '此列中缺少数值',
+ 'Oct' => 'å月',
+ 'October' => 'å月',
+ 'Open' => 'å¼€å¯',
+ 'Order' => '订å•',
+ 'Order Date' => '下å•æ—¥æœŸ',
+ 'Order Date missing!' => '未指明下å•æ—¥æœŸ!',
+ 'Order Number' => '订å•ç¼–å·',
+ 'Order Number missing!' => '未指明订å•ç¼–å·!',
+ 'Order deleted!' => '巳删除订å•',
+ 'Order generation failed!' => '订å•äº§ç”Ÿå¤±è´¥!',
+ 'Order saved!' => '巳储存订å•',
+ 'PDF' => 'PDF',
+ 'PO Number' => '采购å•ç¼–å·',
+ 'Packing List' => '出货å•',
+ 'Packing List Date missing!' => '未指明包装清å•æ—¥æœŸ!',
+ 'Packing List Number missing!' => '未指明包装清å•ç¼–å·!',
+ 'Part' => '零件',
+ 'Period' => '时期',
+ 'Phone' => '电è¯å·ç ',
+ 'Pick List' => '拣货清å•',
+ 'Postscript' => 'PostScript',
+ 'Price' => 'å•ä»·',
+ 'Print' => '列å°',
+ 'Print and Save' => '打å°åŠå‚¨å­˜',
+ 'Print and Save as new' => '列å°åŠå¦å­˜æ–°æ¡£',
+ 'Printed' => '巳列å°',
+ 'Project' => '方案',
+ 'Project not on file!' => '方案内无此档案',
+ 'Purchase Order' => '采购å•',
+ 'Purchase Orders' => '采购å•',
+ 'Qty' => 'æ•°é‡',
+ 'Quarter' => '季度',
+ 'Quotation' => '报价å•',
+ 'Quotation ' => '报价å•',
+ 'Quotation Date' => '报价å•æ—¥æœŸ',
+ 'Quotation Date missing!' => '未指明报价å•æ—¥æœŸ',
+ 'Quotation Number' => '报价å•å·ç ',
+ 'Quotation Number missing!' => '未指明报价å•å·ç ',
+ 'Quotation deleted!' => '巳删除报价å•',
+ 'Quotations' => '报价å•',
+ 'RFQ' => '报价请求(RFQ) ',
+ 'RFQ ' => '供应商询价å•',
+ 'RFQ Number' => 'RFQç¼–å·',
+ 'Recd' => '巳收到',
+ 'Receive Merchandise' => '收到货物',
+ 'Recurring Transaction' => '多次记录',
+ 'Reference' => 'å‚ç…§',
+ 'Remaining' => 'å°šä½™',
+ 'Request for Quotation' => '供应商询价å•',
+ 'Request for Quotations' => 'è¦æ±‚报价å•',
+ 'Required by' => '需è¦æ—¥',
+ 'SKU' => '供应商料å·',
+ 'Sales Invoice' => '销售å‘票',
+ 'Sales Order' => '销货å•',
+ 'Sales Orders' => '销货å•',
+ 'Salesperson' => '销售人员',
+ 'Save' => '储存',
+ 'Save Schedule' => '储存预定',
+ 'Save as new' => 'å¦å­˜æ–°æ¡£',
+ 'Schedule' => '预定',
+ 'Screen' => '显示器',
+ 'Select Vendor' => '选厂商',
+ 'Select from one of the names below' => '于下列姓å中选择一个',
+ 'Select from one of the projects below' => '于下列方案中选择一个',
+ 'Select postscript or PDF!' => '于PostScript或PDF中选一',
+ 'Sep' => 'ä¹æœˆ',
+ 'September' => 'ä¹æœˆ',
+ 'Serial No.' => 'ç¼–å·',
+ 'Service' => 'æœåŠ¡',
+ 'Ship' => '出货',
+ 'Ship Merchandise' => 'æµ·è¿è´§ç‰©',
+ 'Ship to' => 'æµ·è¿è‡³',
+ 'Ship via' => '由海è¿',
+ 'Shipping Address' => 'æµ·è¿åœ°å€',
+ 'Shipping Date' => 'æµ·è¿æ—¥æœŸ',
+ 'Shipping Date missing!' => '未指明海è¿æ—¥æœŸ',
+ 'Shipping Point' => 'æµ·è¿åœ°ç‚¹',
+ 'Startdate' => '开始日期',
+ 'State/Province' => 'çœ',
+ 'Subject' => '标题',
+ 'Subtotal' => '共计',
+ 'Tax' => '税金',
+ 'Tax Included' => 'å·³å«ç¨Žé‡‘',
+ 'Terms' => '付款方å¼',
+ 'To' => '至',
+ 'To Warehouse' => '到仓库',
+ 'Total' => '总计',
+ 'Trade Discount' => '贸易折扣',
+ 'Transfer' => '转å¸',
+ 'Transfer Inventory' => '调动货',
+ 'Transfer from' => '调动从',
+ 'Transfer to' => '调动至',
+ 'Unit' => 'å•ä½',
+ 'Update' => 'æ›´æ–°',
+ 'Valid until' => '有效至',
+ 'Vendor' => '供应商',
+ 'Vendor Invoice' => '供应商å‘票',
+ 'Vendor Number' => '供应商å·ç ',
+ 'Vendor missing!' => '未指明供应商',
+ 'Vendor not on file!' => '档案没有此供应商',
+ 'Warehouse' => '仓库',
+ 'Warning!' => '警告',
+ 'Week(s)' => '周',
+ 'What type of item is this?' => '此项目的型�',
+ 'Work Order' => '工作å•',
+ 'Year' => '年份',
+ 'Year(s)' => 'å¹´',
+ 'Yes' => '是',
+ 'Zip/Postal Code' => '邮编',
+ 'days' => 'æ—¥',
+ 'ea' => '个',
+ 'sent' => 'å·³é€å‡º',
+ 'time(s)' => '次',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ '继续' => 'continue',
+ '删除' => 'delete',
+ '删除预定' => 'delete_schedule',
+ '巳完æˆ' => 'done',
+ '电å­é‚®ä»¶' => 'e_mail',
+ '产生订å•' => 'generate_orders',
+ '产生采购å•' => 'generate_purchase_orders',
+ '产生销货å•' => 'generate_sales_order',
+ '列å°' => 'print',
+ '打å°åŠå‚¨å­˜' => 'print_and_save',
+ '列å°åŠå¦å­˜æ–°æ¡£' => 'print_and_save_as_new',
+ '采购å•' => 'purchase_order',
+ '报价å•' => 'quotation',
+ '报价å•' => 'quotation_',
+ '报价请求(rfq)_' => 'rfq',
+ '供应商询价å•' => 'rfq_',
+ '销售å‘票' => 'sales_invoice',
+ '销货å•' => 'sales_order',
+ '储存' => 'save',
+ '储存预定' => 'save_schedule',
+ 'å¦å­˜æ–°æ¡£' => 'save_as_new',
+ '预定' => 'schedule',
+ '选厂商' => 'select_vendor',
+ 'æµ·è¿è‡³' => 'ship_to',
+ '转å¸' => 'transfer',
+ 'æ›´æ–°' => 'update',
+ '供应商å‘票' => 'vendor_invoice',
+ '是' => 'yes',
+};
+
+1;
+
diff --git a/locale/cn_utf/op b/locale/cn_utf/op
new file mode 100755
index 00000000..f37ff86f
--- /dev/null
+++ b/locale/cn_utf/op
@@ -0,0 +1,147 @@
+$self{texts} = {
+ 'Accounting Menu' => '会计选å•',
+ 'Add Exchange Rate' => '新增外汇率',
+ 'Add Sales Invoice' => '新增销售å‘票',
+ 'Add Vendor Invoice' => '新增供应商å‘票',
+ 'Amount' => '总计',
+ 'Are you sure you want to delete Order Number' => '您是å¦ç¡®å®šè¦åˆ é™¤è®¢å•ç¼–å·',
+ 'Are you sure you want to delete Quotation Number' => '您是å¦ç¡®å®šè¦åˆ é™¤æŠ¥ä»·å•ç¼–å·',
+ 'Bin' => 'BIN',
+ 'C' => 'C',
+ 'Cannot delete order!' => 'ä¸èƒ½åˆ é™¤å®šå•',
+ 'Cannot delete quotation!' => 'ä¸èƒ½åˆ é™¤æŠ¥ä»·å•',
+ 'Cannot save order!' => 'ä¸èƒ½å‚¨å­˜å®šå•',
+ 'Cannot save quotation!' => 'ä¸èƒ½å‚¨å­˜æŠ¥ä»·å•',
+ 'Closed' => '已关闭',
+ 'Confirm!' => 'å…¥å¸æˆåŠŸ!',
+ 'Contact' => '连络人',
+ 'Continue' => '继续',
+ 'Could not save!' => '无法储存!',
+ 'Could not transfer Inventory!' => '存货无法转移!',
+ 'Curr' => 'å¸åˆ«',
+ 'Currency' => 'å¸åˆ«',
+ 'Current' => 'ç›®å‰',
+ 'Customer' => '客户',
+ 'Customer missing!' => '未指明客户',
+ 'Date' => '日期',
+ 'Date Received' => '收讫日期',
+ 'Date received missing!' => '未指明收讫日期',
+ 'Department' => '部门',
+ 'Description' => '说明',
+ 'Done' => '巳完æˆ',
+ 'E-mail' => '电å­é‚®ä»¶',
+ 'Employee' => 'èŒå‘˜',
+ 'Exchange Rate' => '汇率',
+ 'Exchange rate missing!' => '未指明汇率',
+ 'From' => '从',
+ 'Group' => '组',
+ 'ID' => '身分编å·',
+ 'Include in Report' => '一并显示',
+ 'Inventory saved!' => '存货巳储存',
+ 'Inventory transferred!' => '存货已转移',
+ 'Manager' => 'ç»ç†',
+ 'Month' => '月',
+ 'Nothing entered!' => '无资料输入',
+ 'Nothing to transfer!' => '无项目å¯è½¬ç§»',
+ 'Number' => 'æ–™å·',
+ 'O' => 'O',
+ 'Open' => 'å¼€å¯',
+ 'Order' => '订å•',
+ 'Order Date' => '下å•æ—¥æœŸ',
+ 'Order Date missing!' => '未指明下å•æ—¥æœŸ!',
+ 'Order Number' => '订å•ç¼–å·',
+ 'Order Number missing!' => '未指明订å•ç¼–å·!',
+ 'Order deleted!' => '巳删除订å•',
+ 'Order saved!' => '巳储存订å•',
+ 'Partnumber' => 'æ–™å·',
+ 'Period' => '期间',
+ 'Print' => '列å°',
+ 'Purchase Order' => '采购å•',
+ 'Purchase Orders' => '许多采购å•',
+ 'Qty' => 'æ•°é‡',
+ 'Quarter' => 'å­£',
+ 'Quotation' => '报价å•',
+ 'Quotation ' => '许多报价å•',
+ 'Quotation Date missing!' => '未指明报价å•æ—¥æœŸ',
+ 'Quotation Number missing!' => '未指明报价å•å·ç ',
+ 'Quotation deleted!' => '巳删除报价å•',
+ 'Quotations' => '报价å•',
+ 'RFQ ' => '报价è¦æ±‚',
+ 'Recd' => '收讫',
+ 'Receive Merchandise' => '收到货物',
+ 'Request for Quotation' => 'è¦æ±‚报价å•',
+ 'Request for Quotations' => 'è¦æ±‚许多报价å•',
+ 'Required by' => '需è¦æ—¥',
+ 'SKU' => '供应商料å·',
+ 'Sales Order' => '销货å•',
+ 'Sales Orders' => '许多销货å•',
+ 'Salesperson' => '业务员',
+ 'Select Printer or Queue!' => '选择列表机或等待',
+ 'Select postscript or PDF!' => '于PostScript或PDF中选一',
+ 'Serial No.' => 'ç¼–å·',
+ 'Ship' => '出货数é‡',
+ 'Ship Merchandise' => 'è¿é€è´§ç‰©',
+ 'Ship to' => 'è¿é€è‡³',
+ 'Ship via' => 'è¿é€æ–¹å¼',
+ 'Shipping Date' => 'è¿é€æ—¥æœŸ',
+ 'Shipping Date missing!' => '未指明è¿é€æ—¥æœŸ',
+ 'Shipping Point' => 'è¿é€èµ·ç‚¹',
+ 'Subtotal' => 'å°è®¡',
+ 'Tax' => '税金',
+ 'To' => '至',
+ 'Total' => '总计',
+ 'Transfer' => '转移',
+ 'Transfer Inventory' => '转移存货',
+ 'Transfer to' => '转移至',
+ 'Unit' => 'å•ä½',
+ 'Update' => 'æ›´æ–°',
+ 'Vendor' => '供应商',
+ 'Vendor missing!' => '未指明供应商',
+ 'Warehouse' => '仓库',
+ 'Year' => 'å¹´',
+ 'Yes' => '是',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'create_backorder' => 'create_backorder',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'invoice' => 'invoice',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'quotation_' => 'quotation_',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'ship_receive' => 'ship_receive',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'yes' => 'yes',
+ '继续' => 'continue',
+ '巳完æˆ' => 'done',
+ '电å­é‚®ä»¶' => 'e_mail',
+ '列å°' => 'print',
+ '采购å•' => 'purchase_order',
+ '报价å•' => 'quotation_',
+ '报价è¦æ±‚' => 'rfq_',
+ '销货å•' => 'sales_order',
+ 'è¿é€è‡³' => 'ship_to',
+ '转移' => 'transfer',
+ 'æ›´æ–°' => 'update',
+ '是' => 'yes',
+};
+
+1;
diff --git a/locale/cn_utf/pe b/locale/cn_utf/pe
new file mode 100755
index 00000000..1fb46cfd
--- /dev/null
+++ b/locale/cn_utf/pe
@@ -0,0 +1,144 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => '会计选å•',
+ 'Active' => '活跃',
+ 'Add' => '新增',
+ 'Add Group' => '新增组',
+ 'Add Pricegroup' => '新增价格组',
+ 'Add Project' => '新增方案',
+ 'Address' => '地å€',
+ 'All' => '全部',
+ 'Amount' => '总计',
+ 'Assembly' => '组件',
+ 'Bin' => 'ç®±',
+ 'Continue' => '继续',
+ 'Current' => '现有',
+ 'Customer' => '客户',
+ 'Customer missing!' => '未指明客户',
+ 'Customer not on file!' => '客户未存档',
+ 'Date' => '日期',
+ 'Delete' => '删除',
+ 'Description' => '说明',
+ 'Description Translations' => '说明翻译',
+ 'Detail' => '详情',
+ 'Edit Description Translations' => '编辑说明翻译',
+ 'Edit Group' => '编辑组',
+ 'Edit Pricegroup' => '编辑价格组',
+ 'Edit Project' => '编辑方案',
+ 'Employee' => 'èŒå‘˜',
+ 'Enddate' => '结æŸæ—¥',
+ 'From' => '从',
+ 'Group' => '组',
+ 'Group Translations' => '组的翻译',
+ 'Group deleted!' => '巳删除的组',
+ 'Group missing!' => '未指明的组',
+ 'Group saved!' => '巳储存的组',
+ 'Groups' => '组',
+ 'Inactive' => '消æž',
+ 'Income' => '收入',
+ 'Language' => '语言',
+ 'Languages not defined!' => 'ä¸èƒ½è¾¨è®¤è¯­è¨€',
+ 'Link Accounts' => '连结å¸æˆ·',
+ 'List Price' => '牌价',
+ 'Month' => '月份',
+ 'Notes' => '备注',
+ 'Nothing selected!' => '没有巳选择',
+ 'Number' => 'ç¼–å·',
+ 'Orphaned' => '无主',
+ 'Period' => '时期',
+ 'Pricegroup' => '价格组',
+ 'Pricegroup deleted!' => '巳删除价格组',
+ 'Pricegroup missing!' => '未指明价格组',
+ 'Pricegroup saved!' => '巳储存价格组',
+ 'Pricegroups' => '价格组',
+ 'Project' => '方案',
+ 'Project Description Translations' => '方案说明翻译',
+ 'Project Number' => '方案å·ç ',
+ 'Project deleted!' => '巳删除方案',
+ 'Project saved!' => '巳储存方案',
+ 'Projects' => '方案',
+ 'Qty' => 'æ•°é‡',
+ 'Quarter' => '季度',
+ 'Save' => '储存',
+ 'Select from one of the names below' => '于下列姓å中选择一个',
+ 'Sell Price' => '售价',
+ 'Startdate' => '开始日期',
+ 'Summary' => '摘è¦',
+ 'Tax' => '税金',
+ 'To' => '至',
+ 'Translation' => '翻译',
+ 'Translation deleted!' => '巳删除翻译',
+ 'Translations saved!' => '巳储存翻译',
+ 'Unit' => 'å•ä½',
+ 'Update' => 'æ›´æ–°',
+ 'Updated' => '巳更新',
+ 'Vendor' => '供应商',
+ 'Vendor not on file!' => '档案没有此供应商',
+ 'Weight' => 'é‡é‡',
+ 'Year' => '年份',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ '新增组' => 'add_group',
+ '新增价格组' => 'add_pricegroup',
+ '新增方案' => 'add_project',
+ '继续' => 'continue',
+ '删除' => 'delete',
+ '储存' => 'save',
+ 'æ›´æ–°' => 'update',
+};
+
+1;
+
diff --git a/locale/cn_utf/pos b/locale/cn_utf/pos
new file mode 100755
index 00000000..e2e53ac2
--- /dev/null
+++ b/locale/cn_utf/pos
@@ -0,0 +1,82 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => '会计选å•',
+ 'Add POS Invoice' => '新增收款å°å‘票',
+ 'Amount' => '总计',
+ 'Business' => '业务',
+ 'Cannot post transaction!' => 'ä¸èƒ½è¿‡å¸è®°å½•',
+ 'Change' => '更改',
+ 'Continue' => '继续',
+ 'Credit Limit' => '信用é¢åº¦',
+ 'Currency' => 'å¸åˆ«',
+ 'Current' => '现有',
+ 'Customer' => '客户',
+ 'Customer missing!' => '未指明客户',
+ 'Delete' => '删除',
+ 'Department' => '部门',
+ 'Description' => '说明',
+ 'Edit POS Invoice' => '编辑收款å°å‘票',
+ 'Exchange Rate' => '汇率',
+ 'Exchange rate missing!' => '未指明汇率',
+ 'Extended' => 'å°è®¡',
+ 'From' => '从',
+ 'Language' => '语言',
+ 'Memo' => '备忘录',
+ 'Month' => '月份',
+ 'Number' => 'ç¼–å·',
+ 'Open' => 'å¼€å¯',
+ 'Period' => '时期',
+ 'Post' => '过å¸',
+ 'Posted!' => '巳过å¸',
+ 'Price' => 'å•ä»·',
+ 'Print' => '列å°',
+ 'Print and Post' => '列å°åŠè¿‡å¸',
+ 'Printed' => '巳列å°',
+ 'Qty' => 'æ•°é‡',
+ 'Quarter' => '季度',
+ 'Receipts' => '许多收款',
+ 'Record in' => '记录于',
+ 'Remaining' => 'å°šä½™',
+ 'Salesperson' => '销售人员',
+ 'Screen' => '显示器',
+ 'Source' => 'æ¥æº',
+ 'Subtotal' => '共计',
+ 'Tax Included' => 'å·³å«ç¨Žé‡‘',
+ 'To' => '至',
+ 'Total' => '总计',
+ 'Trade Discount' => '贸易折扣',
+ 'Unit' => 'å•ä½',
+ 'Update' => 'æ›´æ–°',
+ 'Year' => '年份',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ '继续' => 'continue',
+ '删除' => 'delete',
+ '过å¸' => 'post',
+ '列å°' => 'print',
+ '列å°åŠè¿‡å¸' => 'print_and_post',
+ 'æ›´æ–°' => 'update',
+};
+
+1;
+
diff --git a/locale/cn_utf/ps b/locale/cn_utf/ps
new file mode 100755
index 00000000..742daca9
--- /dev/null
+++ b/locale/cn_utf/ps
@@ -0,0 +1,371 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Aging' => '应付å¸é¾„分æž',
+ 'AP Outstanding' => '应付未付',
+ 'AP Transaction' => '应付记录',
+ 'AP Transactions' => '应付记录',
+ 'AR Aging' => '应收å¸é¾„分æž',
+ 'AR Outstanding' => '应收未收',
+ 'AR Transaction' => '应收记录',
+ 'AR Transactions' => '应收记录',
+ 'Account' => 'å¸æˆ·',
+ 'Account Number' => 'å¸æˆ·ç¼–å·',
+ 'Accounting Menu' => '会计选å•',
+ 'Accounts' => 'å¸æˆ·',
+ 'Accrual' => '累积',
+ 'Add AP Transaction' => '新增应付记录',
+ 'Add AR Transaction' => '新增应收记录',
+ 'Add POS Invoice' => '新增收款å°å‘票',
+ 'Add Purchase Order' => '新增采购å•',
+ 'Add Quotation' => '新增报价å•',
+ 'Add Request for Quotation' => '新增报价å•è¦æ±‚',
+ 'Add Sales Invoice' => '新增销售å‘票',
+ 'Add Sales Order' => '新增销货å•',
+ 'Address' => '地å€',
+ 'All Accounts' => '全部å¸æˆ·',
+ 'Amount' => '总计',
+ 'Amount Due' => '应收å°è®¡',
+ 'Apr' => '四月',
+ 'April' => '四月',
+ 'Are you sure you want to delete Invoice Number' => '您确定è¦åˆ é™¤å‘票编å·',
+ 'Are you sure you want to delete Transaction' => '您是å¦ç¡®å®šè¦åˆ é™¤è®°å½•',
+ 'Attachment' => '附档',
+ 'Aug' => '八月',
+ 'August' => '八月',
+ 'Balance' => 'ä½™é¢',
+ 'Balance Sheet' => '资产负债表',
+ 'Bcc' => 'ä¸æ˜¾ç¤ºæŠ„é€',
+ 'Billing Address' => 'å¸å•åœ°å€',
+ 'Bin' => 'ç®±',
+ 'Bin List' => '箱的明细表',
+ 'Business' => '业务',
+ 'Cannot delete invoice!' => 'ä¸èƒ½åˆ é™¤å‘票',
+ 'Cannot delete transaction!' => 'ä¸èƒ½åˆ é™¤è®°å½•',
+ 'Cannot post invoice for a closed period!' => 'ä¸èƒ½åœ¨å·²å…³é—­çš„时段内过å¸å‘票',
+ 'Cannot post invoice!' => 'ä¸èƒ½è¿‡å¸å‘票',
+ 'Cannot post payment for a closed period!' => 'ä¸èƒ½åœ¨å·²å…³é—­çš„时段内过å¸æ¬¾é¡¹',
+ 'Cannot post transaction for a closed period!' => 'ä¸èƒ½åœ¨å·²å…³é—­çš„时段内过å¸è®°å½•!',
+ 'Cannot post transaction!' => 'ä¸èƒ½è¿‡å¸è®°å½•',
+ 'Cash' => '现金',
+ 'Cc' => '抄é€',
+ 'Change' => '更改',
+ 'Check' => '检查',
+ 'City' => '城市',
+ 'Closed' => '已关闭',
+ 'Company Name' => 'å…¬å¸å称',
+ 'Compare to' => '对照',
+ 'Confirm!' => 'å…¥å¸æˆåŠŸ!',
+ 'Contact' => '连络人',
+ 'Continue' => '继续',
+ 'Copies' => '副本',
+ 'Country' => '国家',
+ 'Credit' => 'è´·æ–¹',
+ 'Credit Limit' => '信用é¢åº¦',
+ 'Curr' => 'å¸åˆ«',
+ 'Currency' => 'å¸åˆ«',
+ 'Current' => '现有',
+ 'Current Earnings' => '现有收益',
+ 'Customer' => '客户',
+ 'Customer Number' => '客户编å·',
+ 'Customer missing!' => '未指明客户',
+ 'Customer not on file!' => '客户未存档',
+ 'Date' => '日期',
+ 'Date Paid' => '付款日期',
+ 'Day(s)' => 'æ—¥',
+ 'Debit' => '借方',
+ 'Dec' => 'å二月',
+ 'December' => 'å二月',
+ 'Decimalplaces' => 'å°æ•°çš„ä½ç½®',
+ 'Delete' => '删除',
+ 'Delete Schedule' => '删除预定',
+ 'Delivery Date' => '到期日',
+ 'Department' => '部门',
+ 'Description' => '说明',
+ 'Detail' => '详情',
+ 'Due Date' => '到期日',
+ 'Due Date missing!' => '未指明到期日!',
+ 'E-mail' => '电å­é‚®ä»¶',
+ 'E-mail Statement to' => '电邮会计账到',
+ 'E-mail address missing!' => '未指明电å­é‚®ä»¶ä½å€!',
+ 'E-mail message' => 'å‘é€ç”µé‚®',
+ 'E-mailed' => '巳电邮',
+ 'Edit AP Transaction' => '编辑应付记录',
+ 'Edit AR Transaction' => '编辑应收记录',
+ 'Edit POS Invoice' => '编辑收款å°å‘票',
+ 'Edit Sales Invoice' => '编辑销售å‘票',
+ 'Employee' => 'èŒå‘˜',
+ 'Exch' => '汇率',
+ 'Exchange Rate' => '汇率',
+ 'Exchange rate for payment missing!' => '未指明付款的汇率',
+ 'Exchange rate missing!' => '未指明汇率',
+ 'Extended' => 'å°è®¡',
+ 'Fax' => '传真',
+ 'Feb' => '二月',
+ 'February' => '二月',
+ 'From' => '从',
+ 'Group' => '组',
+ 'Heading' => '标题',
+ 'ID' => 'ç¼–å·',
+ 'In-line' => '行内',
+ 'Include Exchange Rate Difference' => '包å«å¤–汇差è·',
+ 'Include in Report' => '一并显示',
+ 'Income Statement' => 'æŸç›Šè¡¨',
+ 'Internal Notes' => '内部备忘录',
+ 'Invoice' => 'å‘票',
+ 'Invoice Date' => 'å‘票日期',
+ 'Invoice Date missing!' => '未指明å‘票日期!',
+ 'Invoice Number' => 'å‘票编å·',
+ 'Invoice Number missing!' => '未指明å‘票编å·!',
+ 'Invoice deleted!' => '巳删除å‘票',
+ 'Item not on file!' => '查无此项目',
+ 'Jan' => '一月',
+ 'January' => '一月',
+ 'Jul' => '七月',
+ 'July' => '七月',
+ 'Jun' => '六月',
+ 'June' => '六月',
+ 'Language' => '语言',
+ 'Manager' => 'ç»ç†',
+ 'Mar' => '三月',
+ 'March' => '三月',
+ 'May' => '五月',
+ 'May ' => '五月',
+ 'Memo' => '备忘录',
+ 'Message' => '讯æ¯',
+ 'Method' => '方法',
+ 'Month' => '月份',
+ 'Month(s)' => '月',
+ 'N/A' => 'ä¸é€‚用',
+ 'No.' => 'åºå·',
+ 'Non-taxable Purchases' => 'ä¸åº”课税的采购',
+ 'Non-taxable Sales' => 'ä¸åº”课税的销售',
+ 'Notes' => '备注',
+ 'Nothing selected!' => '没有巳选择',
+ 'Nov' => 'å一月',
+ 'November' => 'å一月',
+ 'Number' => 'ç¼–å·',
+ 'Number missing in Row' => '此列中缺少数值',
+ 'Oct' => 'å月',
+ 'October' => 'å月',
+ 'Open' => 'å¼€å¯',
+ 'Order' => '订å•',
+ 'Order Date missing!' => '未指明下å•æ—¥æœŸ!',
+ 'Order Number' => '订å•ç¼–å·',
+ 'Order Number missing!' => '未指明订å•ç¼–å·!',
+ 'PDF' => 'PDF',
+ 'PO Number' => '采购å•ç¼–å·',
+ 'Packing List' => '出货å•',
+ 'Packing List Date missing!' => '未指明包装清å•æ—¥æœŸ!',
+ 'Packing List Number missing!' => '未指明包装清å•ç¼–å·!',
+ 'Paid' => '已付',
+ 'Part' => '零件',
+ 'Payment date missing!' => '未指明付款日期!',
+ 'Payments' => '许多付款',
+ 'Period' => '时期',
+ 'Phone' => '电è¯å·ç ',
+ 'Pick List' => '拣货清å•',
+ 'Post' => '过å¸',
+ 'Post as new' => '当新的过å¸',
+ 'Posted!' => '巳过å¸',
+ 'Postscript' => 'PostScript',
+ 'Price' => 'å•ä»·',
+ 'Print' => '列å°',
+ 'Print and Post' => '列å°åŠè¿‡å¸',
+ 'Print and Post as new' => '列å°åŠå½“新的过å¸',
+ 'Printed' => '巳列å°',
+ 'Project' => '方案',
+ 'Project Number' => '方案å·ç ',
+ 'Project Transactions' => '方案记录',
+ 'Project not on file!' => '方案内无此档案',
+ 'Purchase Order' => '采购å•',
+ 'Qty' => 'æ•°é‡',
+ 'Quarter' => '季度',
+ 'Quotation' => '报价å•',
+ 'Quotation Date missing!' => '未指明报价å•æ—¥æœŸ',
+ 'Quotation Number missing!' => '未指明报价å•å·ç ',
+ 'Recd' => '巳收到',
+ 'Receipt' => '收款',
+ 'Receipts' => '许多收款',
+ 'Record in' => '记录于',
+ 'Recurring Transaction' => '多次记录',
+ 'Reference' => 'å‚ç…§',
+ 'Remaining' => 'å°šä½™',
+ 'Report for' => '报表æ¥æº',
+ 'Required by' => '需è¦æ—¥',
+ 'SKU' => '供应商料å·',
+ 'Sales Invoice.' => '销货å‘票',
+ 'Sales Order' => '销货å•',
+ 'Salesperson' => '销售人员',
+ 'Save Schedule' => '储存预定',
+ 'Schedule' => '预定',
+ 'Screen' => '显示器',
+ 'Select all' => '全选',
+ 'Select from one of the names below' => '于下列姓å中选择一个',
+ 'Select from one of the projects below' => '于下列方案中选择一个',
+ 'Select postscript or PDF!' => '于PostScript或PDF中选一',
+ 'Sep' => 'ä¹æœˆ',
+ 'September' => 'ä¹æœˆ',
+ 'Serial No.' => 'ç¼–å·',
+ 'Service' => 'æœåŠ¡',
+ 'Ship' => '出货',
+ 'Ship to' => 'æµ·è¿è‡³',
+ 'Ship via' => '由海è¿',
+ 'Shipping Address' => 'æµ·è¿åœ°å€',
+ 'Shipping Point' => 'æµ·è¿åœ°ç‚¹',
+ 'Source' => 'æ¥æº',
+ 'Standard' => '标准',
+ 'Startdate' => '开始日期',
+ 'State/Province' => 'çœ',
+ 'Statement' => '会计å¸',
+ 'Statement sent to' => 'é€ä¼šè®¡å¸è‡³',
+ 'Statements sent to printer!' => 'é€ä¼šè®¡å¸è‡³åˆ—å°æœº',
+ 'Subject' => '标题',
+ 'Subtotal' => '共计',
+ 'Summary' => '摘è¦',
+ 'Tax' => '税金',
+ 'Tax Included' => 'å·³å«ç¨Žé‡‘',
+ 'Tax collected' => '已收税金',
+ 'Tax paid' => '已付税金',
+ 'Till' => '直到',
+ 'To' => '至',
+ 'Total' => '总计',
+ 'Trade Discount' => '贸易折扣',
+ 'Transaction' => '记录',
+ 'Transaction deleted!' => '巳删除记录',
+ 'Transaction posted!' => '巳过å¸è®°å½•',
+ 'Trial Balance' => '试算表',
+ 'Unit' => 'å•ä½',
+ 'Update' => 'æ›´æ–°',
+ 'Vendor' => '供应商',
+ 'Vendor Invoice.' => '供应商å‘票',
+ 'Vendor Number' => '供应商å·ç ',
+ 'Vendor missing!' => '未指明供应商',
+ 'Vendor not on file!' => '档案没有此供应商',
+ 'Warning!' => '警告',
+ 'Week(s)' => '周',
+ 'What type of item is this?' => '此项目的型�',
+ 'Work Order' => '工作å•',
+ 'Year' => '年份',
+ 'Year(s)' => 'å¹´',
+ 'Yes' => '是',
+ 'Zip/Postal Code' => '邮编',
+ 'as at' => '截至',
+ 'ea' => '个',
+ 'for Period' => '期间',
+ 'posted!' => '巳过å¸',
+ 'sent' => 'å·³é€å‡º',
+ 'time(s)' => '次',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ '应付记录' => 'ap_transaction',
+ '应收记录' => 'ar_transaction',
+ '继续' => 'continue',
+ '删除' => 'delete',
+ '删除预定' => 'delete_schedule',
+ '电å­é‚®ä»¶' => 'e_mail',
+ '过å¸' => 'post',
+ '当新的过å¸' => 'post_as_new',
+ '列å°' => 'print',
+ '列å°åŠè¿‡å¸' => 'print_and_post',
+ '列å°åŠå½“新的过å¸' => 'print_and_post_as_new',
+ '销货å‘票' => 'sales_invoice_',
+ '销货å•' => 'sales_order',
+ '储存预定' => 'save_schedule',
+ '预定' => 'schedule',
+ '全选' => 'select_all',
+ 'æµ·è¿è‡³' => 'ship_to',
+ 'æ›´æ–°' => 'update',
+ '供应商å‘票' => 'vendor_invoice_',
+ '是' => 'yes',
+};
+
+1;
+
diff --git a/locale/cn_utf/pw b/locale/cn_utf/pw
new file mode 100755
index 00000000..256580d6
--- /dev/null
+++ b/locale/cn_utf/pw
@@ -0,0 +1,15 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Continue' => '继续',
+ 'Password' => '密ç ',
+ 'Session expired!' => '会è¯è¿‡æœŸ',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ '继续' => 'continue',
+};
+
+1;
+
diff --git a/locale/cn_utf/rc b/locale/cn_utf/rc
new file mode 100755
index 00000000..d1cbdc85
--- /dev/null
+++ b/locale/cn_utf/rc
@@ -0,0 +1,81 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'å¸æˆ·',
+ 'Accounting Menu' => '会计选å•',
+ 'Apr' => '四月',
+ 'April' => '四月',
+ 'Aug' => '八月',
+ 'August' => '八月',
+ 'Balance' => 'ä½™é¢',
+ 'Beginning Balance' => '起始余é¢',
+ 'Cleared' => '已清除',
+ 'Continue' => '继续',
+ 'Credit' => 'è´·æ–¹',
+ 'Current' => '现有',
+ 'Date' => '日期',
+ 'Debit' => '借方',
+ 'Dec' => 'å二月',
+ 'December' => 'å二月',
+ 'Description' => '说明',
+ 'Detail' => '详情',
+ 'Difference' => '差异',
+ 'Done' => '巳完æˆ',
+ 'Feb' => '二月',
+ 'February' => '二月',
+ 'From' => '从',
+ 'Include Exchange Rate Difference' => '包å«å¤–汇差è·',
+ 'Jan' => '一月',
+ 'January' => '一月',
+ 'Jul' => '七月',
+ 'July' => '七月',
+ 'Jun' => '六月',
+ 'June' => '六月',
+ 'Mar' => '三月',
+ 'March' => '三月',
+ 'May' => '五月',
+ 'May ' => '五月',
+ 'Month' => '月份',
+ 'Nov' => 'å一月',
+ 'November' => 'å一月',
+ 'Oct' => 'å月',
+ 'October' => 'å月',
+ 'Out of balance!' => 'ä¸åè°ƒ',
+ 'Outstanding' => '未付',
+ 'Period' => '时期',
+ 'Quarter' => '季度',
+ 'R' => '对',
+ 'Reconciliation' => '对账',
+ 'Reconciliation Report' => '调和报告',
+ 'Select all' => '全选',
+ 'Sep' => 'ä¹æœˆ',
+ 'September' => 'ä¹æœˆ',
+ 'Source' => 'æ¥æº',
+ 'Statement Balance' => '会计å¸ä½™é¢',
+ 'Summary' => '摘è¦',
+ 'To' => '至',
+ 'Update' => 'æ›´æ–°',
+ 'Year' => '年份',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ '继续' => 'continue',
+ '巳完æˆ' => 'done',
+ '全选' => 'select_all',
+ 'æ›´æ–°' => 'update',
+};
+
+1;
+
diff --git a/locale/cn_utf/rp b/locale/cn_utf/rp
new file mode 100755
index 00000000..3331a284
--- /dev/null
+++ b/locale/cn_utf/rp
@@ -0,0 +1,191 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Aging' => '应付å¸é¾„分æž',
+ 'AR Aging' => '应收å¸é¾„分æž',
+ 'Account' => 'å¸æˆ·',
+ 'Account Number' => 'å¸æˆ·ç¼–å·',
+ 'Accounting Menu' => '会计选å•',
+ 'Accounts' => 'å¸æˆ·',
+ 'Accrual' => '累积',
+ 'Address' => '地å€',
+ 'All Accounts' => '全部å¸æˆ·',
+ 'Amount' => '总计',
+ 'Apr' => '四月',
+ 'April' => '四月',
+ 'Attachment' => '附档',
+ 'Aug' => '八月',
+ 'August' => '八月',
+ 'Balance' => 'ä½™é¢',
+ 'Balance Sheet' => '资产负债表',
+ 'Bcc' => 'ä¸æ˜¾ç¤ºæŠ„é€',
+ 'Cash' => '现金',
+ 'Cc' => '抄é€',
+ 'Compare to' => '对照',
+ 'Continue' => '继续',
+ 'Copies' => '副本',
+ 'Credit' => 'è´·æ–¹',
+ 'Curr' => 'å¸åˆ«',
+ 'Current' => '现有',
+ 'Current Earnings' => '现有收益',
+ 'Customer' => '客户',
+ 'Customer not on file!' => '客户未存档',
+ 'Date' => '日期',
+ 'Day(s)' => 'æ—¥',
+ 'Debit' => '借方',
+ 'Dec' => 'å二月',
+ 'December' => 'å二月',
+ 'Decimalplaces' => 'å°æ•°çš„ä½ç½®',
+ 'Delete Schedule' => '删除预定',
+ 'Department' => '部门',
+ 'Description' => '说明',
+ 'Detail' => '详情',
+ 'Due Date' => '到期日',
+ 'E-mail' => '电å­é‚®ä»¶',
+ 'E-mail Statement to' => '电邮会计账到',
+ 'E-mail address missing!' => '未指明电å­é‚®ä»¶ä½å€!',
+ 'E-mail message' => 'å‘é€ç”µé‚®',
+ 'Feb' => '二月',
+ 'February' => '二月',
+ 'From' => '从',
+ 'Heading' => '标题',
+ 'ID' => 'ç¼–å·',
+ 'In-line' => '行内',
+ 'Include Exchange Rate Difference' => '包å«å¤–汇差è·',
+ 'Include in Report' => '一并显示',
+ 'Income Statement' => 'æŸç›Šè¡¨',
+ 'Invoice' => 'å‘票',
+ 'Jan' => '一月',
+ 'January' => '一月',
+ 'Jul' => '七月',
+ 'July' => '七月',
+ 'Jun' => '六月',
+ 'June' => '六月',
+ 'Language' => '语言',
+ 'Mar' => '三月',
+ 'March' => '三月',
+ 'May' => '五月',
+ 'May ' => '五月',
+ 'Memo' => '备忘录',
+ 'Message' => '讯æ¯',
+ 'Method' => '方法',
+ 'Month' => '月份',
+ 'Month(s)' => '月',
+ 'N/A' => 'ä¸é€‚用',
+ 'Non-taxable Purchases' => 'ä¸åº”课税的采购',
+ 'Non-taxable Sales' => 'ä¸åº”课税的销售',
+ 'Nothing selected!' => '没有巳选择',
+ 'Nov' => 'å一月',
+ 'November' => 'å一月',
+ 'Number' => 'ç¼–å·',
+ 'Oct' => 'å月',
+ 'October' => 'å月',
+ 'Order' => '订å•',
+ 'PDF' => 'PDF',
+ 'Payments' => '许多付款',
+ 'Period' => '时期',
+ 'Postscript' => 'PostScript',
+ 'Print' => '列å°',
+ 'Project' => '方案',
+ 'Project Number' => '方案å·ç ',
+ 'Project Transactions' => '方案记录',
+ 'Project not on file!' => '方案内无此档案',
+ 'Quarter' => '季度',
+ 'Receipts' => '许多收款',
+ 'Recurring Transaction' => '多次记录',
+ 'Reference' => 'å‚ç…§',
+ 'Report for' => '报表æ¥æº',
+ 'Salesperson' => '销售人员',
+ 'Save Schedule' => '储存预定',
+ 'Screen' => '显示器',
+ 'Select all' => '全选',
+ 'Select from one of the names below' => '于下列姓å中选择一个',
+ 'Select from one of the projects below' => '于下列方案中选择一个',
+ 'Select postscript or PDF!' => '于PostScript或PDF中选一',
+ 'Sep' => 'ä¹æœˆ',
+ 'September' => 'ä¹æœˆ',
+ 'Source' => 'æ¥æº',
+ 'Standard' => '标准',
+ 'Startdate' => '开始日期',
+ 'Statement' => '会计å¸',
+ 'Statement sent to' => 'é€ä¼šè®¡å¸è‡³',
+ 'Statements sent to printer!' => 'é€ä¼šè®¡å¸è‡³åˆ—å°æœº',
+ 'Subject' => '标题',
+ 'Subtotal' => 'å°è®¡',
+ 'Summary' => '摘è¦',
+ 'Tax' => '税金',
+ 'Tax collected' => '已收税金',
+ 'Tax paid' => '已付税金',
+ 'Till' => '直到',
+ 'To' => '至',
+ 'Total' => '总计',
+ 'Trial Balance' => '试算表',
+ 'Vendor' => '供应商',
+ 'Vendor not on file!' => '档案没有此供应商',
+ 'Warning!' => '警告',
+ 'Week(s)' => '周',
+ 'Year' => '年份',
+ 'Year(s)' => 'å¹´',
+ 'as at' => '截至',
+ 'for Period' => '期间',
+ 'sent' => 'å·³é€å‡º',
+ 'time(s)' => '次',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ '继续' => 'continue',
+ '删除预定' => 'delete_schedule',
+ '电å­é‚®ä»¶' => 'e_mail',
+ '列å°' => 'print',
+ '储存预定' => 'save_schedule',
+ '全选' => 'select_all',
+};
+
+1;
+
diff --git a/locale/co/COPYING b/locale/co/COPYING
new file mode 100755
index 00000000..7f920eb2
--- /dev/null
+++ b/locale/co/COPYING
@@ -0,0 +1,27 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2005
+#
+# Spanish texts:
+#
+# Adoption to Colombian Accounting Terms:
+#
+# Authors: Dirk Enrique Seiffert <info@caribenet.com>
+# Lourdes Mejía Martinez <lourdes@caribenet.com>
+# Silfredo Godoy Chavez <silfredo@caribenet.com>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/co/LANGUAGE b/locale/co/LANGUAGE
new file mode 100755
index 00000000..3276df51
--- /dev/null
+++ b/locale/co/LANGUAGE
@@ -0,0 +1 @@
+Spanish/Colombia
diff --git a/locale/co/Num2text b/locale/co/Num2text
new file mode 100755
index 00000000..88ffe737
--- /dev/null
+++ b/locale/co/Num2text
@@ -0,0 +1,212 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (C) 2002
+#
+# Author: Dieter Simader
+# Email: dsimader@sql-ledger.org
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+# Language: Spanish
+# Contributors: John Christian Stoddart
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#======================================================================
+
+
+sub init {
+ my $self = shift;
+
+ %{ $self->{numbername} } =
+ (0 => 'cero',
+ 1 => 'un',
+ '1o' => 'uno',
+ 2 => 'dos',
+ 3 => 'tres',
+ 4 => 'cuatro',
+ 5 => 'cinco',
+ 6 => 'seis',
+ 7 => 'siete',
+ 8 => 'ocho',
+ 9 => 'nueve',
+ 10 => 'diez',
+ 11 => 'once',
+ '11o' => 'once',
+ 12 => 'doce',
+ 13 => 'trece',
+ 14 => 'catorce',
+ 15 => 'quince',
+ 16 => 'dieciséis',
+ 17 => 'diecisiete',
+ 18 => 'dieciocho',
+ 19 => 'diecinueve',
+ 20 => 'veinte',
+ 21 => 'veintiún',
+ '21o' => 'veintiuno',
+ 22 => 'veintidós',
+ 23 => 'veintitrés',
+ 24 => 'veinticuatro',
+ 25 => 'veinticinco',
+ 26 => 'veintiséis',
+ 27 => 'veintisiete',
+ 28 => 'veintiocho',
+ 29 => 'veintinueve',
+ 30 => 'treinta',
+ 40 => 'cuarenta',
+ 50 => 'cincuenta',
+ 60 => 'sesenta',
+ 70 => 'setenta',
+ 80 => 'ochenta',
+ 90 => 'noventa',
+ 500 => 'quinientos',
+ 700 => 'setecientos',
+ 900 => 'novecientos',
+ 10**2 => 'ciento',
+ 10**3 => 'mil',
+ 10**6 => 'millón',
+ 10**12 => 'billón',
+ );
+
+}
+
+
+sub num2text {
+ my ($self, $amount) = @_;
+
+ return $self->{numbername}{0} unless $amount;
+
+ my @textnumber = ();
+
+ # split amount into chunks of 3
+ my @num = reverse split //, abs($amount);
+ my @numblock = ();
+ my $stripun = 0;
+ my @a = ();
+ my $i;
+
+ while (@num) {
+ @a = ();
+ for (1 .. 3) {
+ push @a, shift @num;
+ }
+ push @numblock, join / /, reverse @a;
+ }
+
+ # special case for 1000
+ if ($numblock[1] eq '1' && $numblock[0] gt '000') {
+ # remove first array element from textnumber
+ $stripun = 1;
+ }
+
+ while (@numblock) {
+
+ $i = $#numblock;
+ @num = split //, $numblock[$i];
+
+ $numblock[$i] *= 1;
+
+ if ($numblock[$i] == 0) {
+ pop @numblock;
+ next;
+ }
+
+ if ($numblock[$i] > 99) {
+ if ($num[0] == 1) {
+ push @textnumber, $self->{numbername}{10**2};
+ } else {
+ # special case for 500, 700, 900
+ if (grep /$num[0]/, (5,7,9)) {
+ push @textnumber, $self->{numbername}{"${num[0]}00"};
+
+ } else {
+
+ # the one from hundreds, append cientos
+ push @textnumber, $self->{numbername}{$num[0]}.$self->{numbername}{10**2}.'s';
+
+ }
+ }
+
+ # reduce numblock
+ $numblock[$i] -= $num[0] * 100;
+ }
+
+ if ($numblock[$i] > 9) {
+ # tens
+ push @textnumber, $self->format_ten($numblock[$i], $i);
+ } elsif ($numblock[$i] > 0) {
+ # ones
+ $num = $numblock[$i];
+ $num .= 'o' if ($num == 1 && $i == 0);
+ push @textnumber, $self->{numbername}{$num};
+ }
+
+ # add thousand, million
+ if ($i) {
+ $num = 10**($i * 3);
+ if ($numblock[$i] > 1) {
+ if ($i == 2 || $i == 4) {
+ $a = $self->{numbername}{$num}."es";
+ $a =~ s/ó/o/;
+ push @textnumber, $a;
+ } elsif ($i == 3) {
+ $num = 10**($i * 2);
+ $a = "$self->{10**3} $self->{numbername}{$num}"."es";
+ $a =~ s/ó/o/;
+ push @textnumber, $a;
+ } else {
+ if ($i == 1) {
+ push @textnumber, $self->{numbername}{$num};
+ } else {
+ push @textnumber, $self->{numbername}{$num}.'s';
+ }
+ }
+ } else {
+ push @textnumber, $self->{numbername}{$num};
+ }
+ }
+
+ pop @numblock;
+
+ }
+
+ shift @textnumber if $stripun;
+
+ join ' ', @textnumber;
+
+}
+
+
+sub format_ten {
+ my ($self, $amount, $i) = @_;
+
+ my $textnumber = "";
+ my @num = split //, $amount;
+
+ if ($amount > 30) {
+ $textnumber = $self->{numbername}{$num[0]*10};
+ $amount = $num[1];
+ } else {
+ $amount .= 'o' if ($num[1] == 1 && $i == 0);
+ $textnumber = $self->{numbername}{$amount};
+ $amount = 0;
+ }
+
+ $textnumber .= " y ".$self->{numbername}{$amount} if $amount;
+
+ $textnumber;
+
+}
+
+
+1;
+
diff --git a/locale/co/aa b/locale/co/aa
new file mode 100755
index 00000000..fb49d456
--- /dev/null
+++ b/locale/co/aa
@@ -0,0 +1,156 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Impagados Proveedores',
+ 'AP Transaction' => 'Transaccion Proveedor',
+ 'AP Transactions' => 'Gestiones de pagos',
+ 'AR Outstanding' => 'Impagados Cartera',
+ 'AR Transaction' => 'Gestión de cobro',
+ 'AR Transactions' => 'Gestiones de cobros',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Add AP Transaction' => 'Añadir Asiento de CxP',
+ 'Add AR Transaction' => 'Añadir Asiento de CxC',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Cantidad adeudada',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => '¿Está seguro de que desea borrar la transacción?',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Cannot delete transaction!' => '¡No se puede borrar la transacción!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo ya cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar una transacción para un periodo cerrado',
+ 'Cannot post transaction!' => '¡No se puede registrar la transacción',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Cerrado',
+ 'Confirm!' => 'Confirmar',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Limite de credito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Date' => 'Fecha',
+ 'Date Paid' => 'Fecha de pago',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Department' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'Due Date missing!' => 'Falta la fecha de vencimiento',
+ 'Edit AP Transaction' => 'Editar Asiento de CxP',
+ 'Edit AR Transaction' => 'Editar Asiento de CxC',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate for payment missing!' => 'Falta Tasa de Cambio',
+ 'Exchange rate missing!' => 'Falta Tasa de Cambio',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Invoice' => 'Factura de Venta',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Manager' => 'Administrador',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Month' => 'Mes',
+ 'No.' => 'No.',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Number' => 'Número de orden',
+ 'Paid' => 'Pagado',
+ 'Payment date missing!' => 'No se encuentra la fecha de pago',
+ 'Payments' => 'Pagos',
+ 'Period' => 'Periodo',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como Nuevo',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Project' => 'Proyecto',
+ 'Quarter' => 'Trimestre',
+ 'Receipt' => 'Recibo',
+ 'Remaining' => 'Resto',
+ 'Sales Invoice.' => 'Factura de Ventas.',
+ 'Salesperson' => 'Vendedor',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Ship to' => 'Destino',
+ 'Ship via' => 'Envio por',
+ 'Shipping Point' => 'Destino',
+ 'Source' => 'Fuente',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Résumen',
+ 'Tax' => 'Impuestos',
+ 'Tax Included' => 'Impuestos incluidos en el precio',
+ 'Till' => 'Caja',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Transaction' => 'Asiento',
+ 'Transaction deleted!' => '¡Transacción borrada!',
+ 'Transaction posted!' => '¡Transacción registrada!',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice.' => 'Factura de Proveedor.',
+ 'Vendor missing!' => '¡Falta el proveedor!',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'transaccion_proveedor' => 'ap_transaction',
+ 'gestión_de_cobro' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'imprimir_y_registrar' => 'print_and_post',
+ 'factura_de_ventas_' => 'sales_invoice_',
+ 'destino' => 'ship_to',
+ 'actualizar' => 'update',
+ 'factura_de_proveedor_' => 'vendor_invoice_',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/co/admin b/locale/co/admin
new file mode 100755
index 00000000..30d5f986
--- /dev/null
+++ b/locale/co/admin
@@ -0,0 +1,143 @@
+$self{texts} = {
+ 'Access Control' => 'Control de Acceso',
+ 'Accounting' => 'Contabilidad',
+ 'Add User' => 'Añadir usuario',
+ 'Address' => 'Dirección',
+ 'Administration' => 'Administración',
+ 'Administrator' => 'Administrador',
+ 'All Datasets up to date!' => 'Todas las Bases de Datos están actualizadas',
+ 'Cannot create Lock!' => 'No puedo crear lock-file',
+ 'Change Admin Password' => 'Cambiar la contraseña del administrador',
+ 'Change Password' => 'Cambiar contraseña',
+ 'Click on login name to edit!' => 'Haga clic en el nombre de usuario por editar',
+ 'Company' => 'Empresa',
+ 'Confirm' => 'Confirmar',
+ 'Connect to' => 'Conectar a',
+ 'Continue' => 'Continuar',
+ 'Create Chart of Accounts' => 'Crear plan de cuentas',
+ 'Create Dataset' => 'Crear base de datos',
+ 'DBI not installed!' => 'No se ha instalado DBI',
+ 'Database' => 'Base de datos',
+ 'Database Administration' => 'Administración de las bases de datos',
+ 'Database Driver not checked!' => 'No se ha podido verificar el gestor de la base de datos',
+ 'Database User missing!' => 'No se ha definido el usuario de la base de datos',
+ 'Dataset' => 'Base de datos',
+ 'Dataset missing!' => 'No se ha definido la base de datos',
+ 'Dataset updated!' => 'Base de datos actualizada',
+ 'Date Format' => 'Formato de fecha',
+ 'Delete' => 'Borrar',
+ 'Delete Dataset' => 'Borrar base de datos',
+ 'Directory' => 'Directorio',
+ 'Driver' => 'Gestor',
+ 'Dropdown Limit' => 'Límite de efectivo',
+ 'E-mail' => 'Correo electrónico',
+ 'Edit User' => 'Editar Usuario',
+ 'Existing Datasets' => 'Bases de datos existentes',
+ 'Fax' => 'Fax',
+ 'Host' => 'Máquina servidor de base de datos',
+ 'Hostname missing!' => 'No se ha definido la máquina servidor de base de datos',
+ 'Language' => 'Idioma',
+ 'Lock System' => 'Bloquear sistema',
+ 'Lockfile created!' => 'Sistema bloqueado',
+ 'Lockfile removed!' => 'Desbloqueado!',
+ 'Login' => 'Entrar',
+ 'Login name missing!' => 'Falta Nombre del Usuario',
+ 'Logout' => 'Salir',
+ 'Manager' => 'Administrador',
+ 'Menu Width' => 'Ancho del Menu',
+ 'Multibyte Encoding' => 'Codificación Multibyte',
+ 'Name' => 'Nombre',
+ 'New Templates' => 'Nuevas plantillas',
+ 'No Database Drivers available!' => 'No hay ningún gestor de base de datos disponible',
+ 'No Dataset selected!' => 'No se ha seleccionado ninguna base de datos',
+ 'Nothing to delete!' => '¡No hay nada para borrar!',
+ 'Number Format' => 'Formato de número',
+ 'Oracle Database Administration' => 'Administración de la base de datos Oracle',
+ 'Password' => 'Contraseña',
+ 'Password changed!' => '¡Contraseña cambiada!',
+ 'Passwords do not match!' => '¡Contraseñas son incorrectas!',
+ 'Pg Database Administration' => 'Administración de la base de datos PostgreSQL',
+ 'PgPP Database Administration' => 'PostGres Admin',
+ 'Phone' => 'Teléfono',
+ 'Port' => 'Puerto',
+ 'Port missing!' => 'No se ha definido el Puerto',
+ 'Printer' => 'Impresora',
+ 'Save' => 'Guardar',
+ 'Session Timeout' => '¡Sesión Caducó!',
+ 'Session expired!' => '¡Sesión Expiró!',
+ 'Setup Templates' => 'Configurar plantillas',
+ 'Signature' => 'Firma',
+ 'Stylesheet' => 'Hoja de estilo',
+ 'Supervisor' => 'Supervisor',
+ 'Templates' => 'Plantillas',
+ 'The following Datasets are not in use and can be deleted' => 'Las siguientes bases de datos no están en uso y se pueden borrar',
+ 'The following Datasets need to be updated' => 'Es necesario actualizar las siguientes bases de datos',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Esta es una verificacion preliminar de fuentes existentes. No se creará ni borrará nada durante esta etapa',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Para añadir un usuario a un grupo, edite un nombre, cambie el nombre de usuario (login) y guarde los cambios. Un nuevo usuario, con las mismas propiedades se guardará bajo el nuevo nombre de usuario (login).',
+ 'Unlock System' => 'Unlock sistema',
+ 'Update Dataset' => 'Actualizar base de datos',
+ 'Use Templates' => 'Plantillas de usuarios',
+ 'User' => 'Usuario',
+ 'User deleted!' => '¡Usuario borrado!',
+ 'User saved!' => '¡Usuario guardado!',
+ 'Version' => 'Versión',
+ 'You are logged out' => '¡Ud. está desconectado del sistema!',
+ 'does not exist' => 'no existe',
+ 'is already a member!' => 'ya es actualmente un miembro',
+ 'localhost' => 'máquina local',
+ 'locked!' => 'Bloqueado!',
+ 'successfully created!' => 'creado satisfactoriamente',
+ 'successfully deleted!' => 'borrado satisfactoriamente',
+ 'website' => 'sitio web',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'añadir_usuario' => 'add_user',
+ 'cambiar_la_contraseña_del_administrador' => 'change_admin_password',
+ 'cambiar_contraseña' => 'change_password',
+ 'continuar' => 'continue',
+ 'crear_base_de_datos' => 'create_dataset',
+ 'borrar' => 'delete',
+ 'borrar_base_de_datos' => 'delete_dataset',
+ 'bloquear_sistema' => 'lock_system',
+ 'entrar' => 'login',
+ 'salir' => 'logout',
+ 'administración_de_la_base_de_datos_oracle' => 'oracle_database_administration',
+ 'administración_de_la_base_de_datos_postgresql' => 'pg_database_administration',
+ 'postgres_admin' => 'pgpp_database_administration',
+ 'guardar' => 'save',
+ 'unlock_sistema' => 'unlock_system',
+ 'actualizar_base_de_datos' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/co/all b/locale/co/all
new file mode 100755
index 00000000..bac7b9b5
--- /dev/null
+++ b/locale/co/all
@@ -0,0 +1,894 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+
+$self{texts} = {
+ 'A' => 'A',
+ 'AP' => 'Facturas de Proveedores',
+ 'AP Aging' => 'Cartera',
+ 'AP Outstanding' => 'Impagados Proveedores',
+ 'AP Transaction' => 'Transaccion Proveedor',
+ 'AP Transactions' => 'Gestiones de pagos',
+ 'AR' => 'Factura de Ventas',
+ 'AR Aging' => 'Cartera ',
+ 'AR Outstanding' => 'Impagados Cartera',
+ 'AR Transaction' => 'Gestión de cobro',
+ 'AR Transactions' => 'Gestiones de cobros',
+ 'AR/AP' => '',
+ 'About' => 'Acerca de',
+ 'Above' => 'Encima de',
+ 'Access Control' => 'Control de Acceso',
+ 'Access Denied!' => '',
+ 'Account' => 'Cuenta',
+ 'Account Number' => 'Número de cuenta',
+ 'Account Number missing!' => 'No se ha definido el número de la cuenta',
+ 'Account Type' => 'Categoría de cuenta',
+ 'Account Type missing!' => 'No se ha definido el tipo de la cuenta',
+ 'Account deleted!' => '¡Cuenta borraba!',
+ 'Account does not exist!' => 'Cuenta no existe!',
+ 'Account saved!' => '¡Cuenta guardada!',
+ 'Accounting' => 'Contabilidad',
+ 'Accounting Menu' => 'Menú general',
+ 'Accounts' => 'Cuentas',
+ 'Accrual' => 'Acumulado',
+ 'Activate Audit trail' => 'Activar Rastro Auditoría',
+ 'Activate Audit trails' => 'Activar Rastro Auditoría',
+ 'Active' => 'Activo',
+ 'Add' => 'Añadir',
+ 'Add AP Transaction' => 'Añadir Asiento de CxP',
+ 'Add AR Transaction' => 'Añadir Asiento de CxC',
+ 'Add Account' => 'Añadir cuenta',
+ 'Add Assembly' => 'Añadir compuesto',
+ 'Add Business' => 'Agregar Empresa',
+ 'Add Cash Transfer Transaction' => 'Agregar transacción',
+ 'Add Customer' => 'Añadir cliente',
+ 'Add Deduction' => 'Agregar Deducción',
+ 'Add Department' => 'Agregar Centro de Costos',
+ 'Add Employee' => 'Agregar Empleado',
+ 'Add Exchange Rate' => 'Agregar Tasa de Cambio',
+ 'Add GIFI' => 'Añadir cuenta PUC',
+ 'Add General Ledger Transaction' => 'Añadir Nota de Contabilidad',
+ 'Add Group' => 'Agregar Grupo',
+ 'Add Job' => '',
+ 'Add Labor/Overhead' => 'Agregar Honorarios',
+ 'Add Language' => 'Agregar Idioma',
+ 'Add POS Invoice' => 'Agregar Factura POS',
+ 'Add Part' => 'Añadir artículo',
+ 'Add Pricegroup' => 'Añadir Grupo de Precios',
+ 'Add Project' => 'Añadir proyecto',
+ 'Add Purchase Order' => 'Añadir pedido',
+ 'Add Quotation' => 'Agregar Cotización',
+ 'Add Request for Quotation' => 'Pedir Cotización',
+ 'Add SIC' => 'Agregar SIC',
+ 'Add Sales Invoice' => 'Añadir factura',
+ 'Add Sales Order' => 'Añadir cotización',
+ 'Add Service' => 'Añadir servicio',
+ 'Add Timecard' => '',
+ 'Add Transaction' => 'Añadir Transacción',
+ 'Add User' => 'Añadir usuario',
+ 'Add Vendor' => 'Añadir proveedor',
+ 'Add Vendor Invoice' => 'Agregar Factura de Proveedor',
+ 'Add Warehouse' => 'Agregar Bodega',
+ 'Address' => 'Dirección',
+ 'Administration' => 'Administración',
+ 'Administrator' => 'Administrador',
+ 'After Deduction' => 'Despues Deducción',
+ 'All' => 'Todos',
+ 'All Accounts' => 'Todas las Cuentas',
+ 'All Datasets up to date!' => 'Todas las Bases de Datos están actualizadas',
+ 'All Items' => 'Todo',
+ 'Allowances' => 'Permisos',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Cantidad adeudada',
+ 'Amount missing!' => 'Falta suma',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => '¿Esta seguro de que desea borrar la factura número',
+ 'Are you sure you want to delete Order Number' => '¿Esta seguro de que desea borrar la orden número?',
+ 'Are you sure you want to delete Quotation Number' => 'Seguro que quiere borrar la cotización número',
+ 'Are you sure you want to delete Timecard for' => '',
+ 'Are you sure you want to delete Transaction' => '¿Está seguro de que desea borrar la transacción?',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Seguro que quieres remover las entradas seleccionadas de la cola?',
+ 'Assemblies' => 'Compuestos',
+ 'Assemblies restocked!' => '¡Compuestos actualizados en almacen!',
+ 'Assembly' => 'Compuesto',
+ 'Assembly stocked!' => '',
+ 'Asset' => 'Activo',
+ 'Attachment' => 'Adjunto',
+ 'Audit Control' => 'Control de auditoría',
+ 'Audit trail disabled' => 'Rastro de Auditoría desactivado',
+ 'Audit trail enabled' => 'Rastro de Auditoría activado',
+ 'Audit trail removed up to' => 'Rastro de Auditoría removido hasta',
+ 'Audit trails disabled' => 'Rastro de Auditoría desactivado',
+ 'Audit trails enabled' => 'Rastro de Auditoría activado',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Average Cost' => '',
+ 'Avg Cost' => '',
+ 'BIC' => 'BIC',
+ 'BOM' => 'Listado de piezas',
+ 'Backup' => 'Copia de seguridad de los datos',
+ 'Backup sent to' => 'Copia de seguridad enviada a',
+ 'Balance' => 'Balance',
+ 'Balance Sheet' => 'Hoja de balance',
+ 'Based on' => 'Basado en',
+ 'Bcc' => 'Bcc',
+ 'Before Deduction' => 'Antes de la Deducción',
+ 'Beginning Balance' => 'Balance Inicial',
+ 'Below' => 'Debajo',
+ 'Billing Address' => 'Dirección Factura',
+ 'Bin' => 'Empaque',
+ 'Bin List' => 'Lista Empaque',
+ 'Bin Lists' => 'Listas Empaque',
+ 'Books are open' => 'Los libros están abiertos',
+ 'Break' => 'Pausa',
+ 'Business' => 'Empresa',
+ 'Business Number' => 'Numero de negocio',
+ 'Business deleted!' => 'Empresa eliminada!',
+ 'Business saved!' => 'Empresa guardada!',
+ 'C' => 'C',
+ 'COGS' => 'Costo de los artículos',
+ 'COGS account does not exist!' => '',
+ 'Cannot add timecard for a completed job!' => '',
+ 'Cannot change timecard for a completed job!' => '',
+ 'Cannot create Assembly' => '',
+ 'Cannot create Labor' => '',
+ 'Cannot create Lock!' => 'No puedo crear lock-file',
+ 'Cannot create Part' => '',
+ 'Cannot create Service' => '',
+ 'Cannot delete Timecard!' => '',
+ 'Cannot delete account!' => '¡No se puede borrar la cuenta!',
+ 'Cannot delete customer!' => '¡No se puede borrar el cliente!',
+ 'Cannot delete default account!' => 'No se puede borrar la cuenta por omisión',
+ 'Cannot delete invoice!' => '¡No se puede borrar la factura!',
+ 'Cannot delete item!' => '¡No se puede borrar el artículo!',
+ 'Cannot delete order!' => '¡No se puede borrar el pedido!',
+ 'Cannot delete quotation!' => 'No puedo borrar cotización!',
+ 'Cannot delete transaction!' => '¡No se puede borrar la transacción!',
+ 'Cannot delete vendor!' => '¡No se puede borrar el vendedor!',
+ 'Cannot post Payment!' => 'No puedo guardar pago',
+ 'Cannot post Receipt!' => 'No puedo guardar recibo',
+ 'Cannot post invoice for a closed period!' => '¡No se puede registrar una factura en un periodo ya cerrado!',
+ 'Cannot post invoice!' => '¡No se puede registrar la factura!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo ya cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar una transacción para un periodo cerrado',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => '',
+ 'Cannot post transaction!' => '¡No se puede registrar la transacción',
+ 'Cannot remove files!' => 'No puedo borrar archivos!',
+ 'Cannot save account!' => '¡No se puede guardar la cuenta!',
+ 'Cannot save defaults!' => 'No puedo guardar preferencias!',
+ 'Cannot save order!' => '¡No se puede guardar el pedido!',
+ 'Cannot save preferences!' => '¡No se puede guardar las preferencias!',
+ 'Cannot save quotation!' => 'No puedo guardar cotización!',
+ 'Cannot save timecard for a closed period!' => '',
+ 'Cannot save timecard!' => '',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Tiene que seleccionar cuenta!',
+ 'Cannot set multiple options for' => 'No puedo crear multiples opciones para',
+ 'Cannot set multiple options for Item' => '',
+ 'Cannot stock Assembly!' => '',
+ 'Cannot stock assemblies!' => '¡No se pueden almacenar los compuestos!',
+ 'Cash' => 'Efectivo',
+ 'Cc' => 'Cc',
+ 'Change' => 'Cambiar',
+ 'Change Admin Password' => 'Cambiar la contraseña del administrador',
+ 'Change Password' => 'Cambiar contraseña',
+ 'Charge' => '',
+ 'Chart of Accounts' => 'Plan de cuentas',
+ 'Check' => 'Cheque',
+ 'Check Inventory' => 'Revisar Inventario',
+ 'Checks' => 'Cheques',
+ 'City' => 'Ciudad',
+ 'Cleared' => 'Borrado',
+ 'Click on login name to edit!' => 'Haga clic en el nombre de usuario por editar',
+ 'Clocked' => '',
+ 'Close Books up to' => 'Cerrar los libros hasta',
+ 'Closed' => 'Cerrado',
+ 'Code' => 'Código',
+ 'Code missing!' => 'Falta código',
+ 'Company' => 'Empresa',
+ 'Company Name' => 'Nombre de la empresa',
+ 'Compare to' => 'Comparar con',
+ 'Completed' => '',
+ 'Components' => 'Componentes',
+ 'Confirm' => 'Confirmar',
+ 'Confirm!' => 'Confirmar',
+ 'Connect to' => 'Conectar a',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Contra' => 'Cuentas del Orden',
+ 'Copies' => 'Copias',
+ 'Copy to COA' => 'Copiar al plan de cuentas',
+ 'Cost' => 'Costo',
+ 'Cost Center' => 'Centro de Costos (Gastos)',
+ 'Could not save pricelist!' => '¡No se pudo guradar lista de precios!',
+ 'Could not save!' => 'No pude guardar',
+ 'Could not transfer Inventory!' => 'No puedo transferir inventario!',
+ 'Country' => 'País',
+ 'Create Chart of Accounts' => 'Crear plan de cuentas',
+ 'Create Dataset' => 'Crear base de datos',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Limite de credito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Current Earnings' => 'Resultado del periodo',
+ 'Customer' => 'Cliente',
+ 'Customer History' => 'Historial del Cliente',
+ 'Customer Number' => 'Número del cliente',
+ 'Customer deleted!' => '¡Cliente borrado!',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Customer saved!' => '¡Cliente guardado!',
+ 'Customers' => 'Clientes',
+ 'DBI not installed!' => 'No se ha instalado DBI',
+ 'DOB' => 'Fecha de Nacimiento',
+ 'Database' => 'Base de datos',
+ 'Database Administration' => 'Administración de las bases de datos',
+ 'Database Driver not checked!' => 'No se ha podido verificar el gestor de la base de datos',
+ 'Database Host' => 'Máquina servidor de base de datos',
+ 'Database User missing!' => 'No se ha definido el usuario de la base de datos',
+ 'Dataset' => 'Base de datos',
+ 'Dataset is newer than version!' => 'La base de datos está más actual que la versión del programa',
+ 'Dataset missing!' => 'No se ha definido la base de datos',
+ 'Dataset updated!' => 'Base de datos actualizada',
+ 'Date' => 'Fecha',
+ 'Date Format' => 'Formato de fecha',
+ 'Date Paid' => 'Fecha de pago',
+ 'Date Received' => 'Fecha recibido',
+ 'Date missing!' => '¡Falta la fecha!',
+ 'Date received missing!' => 'Faltas datos',
+ 'Date worked' => '',
+ 'Day' => '',
+ 'Day(s)' => '',
+ 'Days' => '',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Decimalplaces' => 'Lugar de los decimales',
+ 'Decrease' => 'Reducir',
+ 'Deduct after' => 'Deducir despues de',
+ 'Deduction deleted!' => 'Deducción borrado!',
+ 'Deduction saved!' => 'Deducción guardado',
+ 'Deductions' => 'Deducciones',
+ 'Default Template' => '',
+ 'Defaults' => 'Preferencias',
+ 'Defaults saved!' => 'Guardado!',
+ 'Delete' => 'Borrar',
+ 'Delete Account' => 'Borrar cuenta',
+ 'Delete Dataset' => 'Borrar base de datos',
+ 'Delete Schedule' => '',
+ 'Deleting a language will also delete the templates for the language' => '',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Department' => 'Centro de Costos',
+ 'Department deleted!' => 'Centro de Costos borrado!',
+ 'Department saved!' => 'Centro de Costos guardado!',
+ 'Departments' => 'Centro de Costos',
+ 'Deposit' => 'Depósito',
+ 'Description' => 'Descripción',
+ 'Description Translations' => 'Descripción Traducción',
+ 'Description missing!' => 'Falta Descripción',
+ 'Detail' => 'Detalle',
+ 'Difference' => 'Diferencia',
+ 'Directory' => 'Directorio',
+ 'Discount' => 'Descuento',
+ 'Done' => 'Hecho',
+ 'Drawing' => 'Reintegro',
+ 'Driver' => 'Gestor',
+ 'Dropdown Limit' => 'Límite de efectivo',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'Due Date missing!' => 'Falta la fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail Statement to' => 'Enviar comprobante por correo electrónico a',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'E-mail message' => '',
+ 'E-mailed' => 'Enviado por mail',
+ 'Edit' => 'Editar',
+ 'Edit AP Transaction' => 'Editar Asiento de CxP',
+ 'Edit AR Transaction' => 'Editar Asiento de CxC',
+ 'Edit Account' => 'Editar cuenta',
+ 'Edit Assembly' => 'Editar compuesto',
+ 'Edit Business' => 'Editar empresa',
+ 'Edit Cash Transfer Transaction' => 'Editar Transacción en Effectivo',
+ 'Edit Customer' => 'Editar Cliente',
+ 'Edit Deduction' => 'Editar Deducción',
+ 'Edit Department' => 'Editar Centro de Costos',
+ 'Edit Description Translations' => 'Editar Descripción Traducción',
+ 'Edit Employee' => 'Editar Empleado',
+ 'Edit GIFI' => 'Editar PUC',
+ 'Edit General Ledger Transaction' => 'Editar Notas Contables',
+ 'Edit Group' => 'Editar Grupo',
+ 'Edit Job' => '',
+ 'Edit Labor/Overhead' => 'Editar Honorario',
+ 'Edit Language' => 'Editar Idioma',
+ 'Edit POS Invoice' => 'Editar Factura Punto de Venta',
+ 'Edit Part' => 'Editar compuesto',
+ 'Edit Preferences for' => 'Editar preferencias de',
+ 'Edit Pricegroup' => 'Editar Grupo de Precios',
+ 'Edit Project' => 'Editar Proyecto',
+ 'Edit Purchase Order' => 'Editar Pedido',
+ 'Edit Quotation' => 'Editar Cotización',
+ 'Edit Request for Quotation' => 'Editar Solicitud de Cotización',
+ 'Edit SIC' => 'Editar SIC',
+ 'Edit Sales Invoice' => 'Editar Factura de Venta',
+ 'Edit Sales Order' => 'Editar Cotización',
+ 'Edit Service' => 'Editar Servicio',
+ 'Edit Template' => 'Editar Plantilla',
+ 'Edit Timecard' => '',
+ 'Edit User' => 'Editar Usuario',
+ 'Edit Vendor' => 'Editar Proveedor',
+ 'Edit Vendor Invoice' => 'Editar Factura de Proveedor',
+ 'Edit Warehouse' => 'Editar Bodega',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Employee Name' => 'Nombre del Empleado',
+ 'Employee Number' => 'Número de Empleado',
+ 'Employee deleted!' => 'Empleado borrado!',
+ 'Employee pays' => 'Empleado cancela',
+ 'Employee saved!' => 'Empleado guardado!',
+ 'Employees' => 'Empleados',
+ 'Employer' => 'Empleador',
+ 'Employer pays' => 'Empleador cancela',
+ 'Enddate' => 'Fecha final',
+ 'Ends' => '',
+ 'Enforce transaction reversal for all dates' => 'Forzar la anulación de las transacciones para todas las fechas',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Introduzca hasta 3 letras separadas por dos puntos (p.e. CAD:USD:EUR) para las monedas locales y las extranjeras',
+ 'Equity' => 'Balance',
+ 'Every' => '',
+ 'Excempt age <' => 'Edad de Excención <',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate for payment missing!' => 'Falta Tasa de Cambio',
+ 'Exchange rate missing!' => 'Falta Tasa de Cambio',
+ 'Existing Datasets' => 'Bases de datos existentes',
+ 'Expense' => 'Gastos',
+ 'Expense account does not exist!' => '',
+ 'Expense/Asset' => 'Gastos/Activo',
+ 'Extended' => 'Extendido',
+ 'FX' => 'Tasa de Cambio',
+ 'Failed to save order!' => '',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'For' => '',
+ 'Foreign Exchange Gain' => 'Ganancia en moneda extranjera',
+ 'Foreign Exchange Loss' => 'Pérdida en moneda extranjera',
+ 'Friday' => '',
+ 'From' => 'De',
+ 'From Warehouse' => '',
+ 'GIFI' => 'Plan Único de Cuentas (PUC)',
+ 'GIFI deleted!' => '¡Borrado el código PUC!',
+ 'GIFI missing!' => 'No se ha definido el código PUC',
+ 'GIFI saved!' => '¡Guardado el código PUC!',
+ 'GL' => '',
+ 'GL Reference Number' => '',
+ 'GL Transaction' => 'Nota de Contabilidad',
+ 'General Ledger' => 'Notas de Contabilidad',
+ 'Generate' => '',
+ 'Generate Orders' => '',
+ 'Generate Purchase Orders' => '',
+ 'Generate Purchase Orders from Sales Order' => '',
+ 'Generate Sales Order' => '',
+ 'Generate Sales Order from Purchase Orders' => '',
+ 'Generate Sales Orders' => '',
+ 'Goods & Services' => 'Bienes y servicios',
+ 'Group' => 'Grupo',
+ 'Group Items' => 'Agrupar itemes',
+ 'Group Translations' => 'Traducción Grupos',
+ 'Group deleted!' => 'Grupo eleminado!',
+ 'Group missing!' => 'Falta el grupo',
+ 'Group saved!' => 'Grupo guardado!',
+ 'Groups' => 'Grupos',
+ 'HR' => 'Recursos Humanos',
+ 'HTML Templates' => 'Plantillas HTML',
+ 'Heading' => 'Encabezado',
+ 'History' => 'Historial',
+ 'Home Phone' => 'Teléfono residencia',
+ 'Host' => 'Máquina servidor de base de datos',
+ 'Hostname missing!' => 'No se ha definido la máquina servidor de base de datos',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Image' => 'Imagen',
+ 'In-line' => 'Incrustado',
+ 'Inactive' => '',
+ 'Include Exchange Rate Difference' => 'Incluir Diferencia por Tasa de Cambio',
+ 'Include Payment' => '',
+ 'Include in Report' => 'Incluir en informe',
+ 'Include in drop-down menus' => 'Incluir en menúes desplegables:',
+ 'Income' => 'Ingreso',
+ 'Income Statement' => 'Estado de Resultados',
+ 'Income account does not exist!' => '',
+ 'Incorrect Dataset version!' => 'Versión de base de datos incorrecta',
+ 'Increase' => 'Aumentar',
+ 'Individual Items' => 'Artículos individuales',
+ 'Internal Notes' => 'Notas internas',
+ 'Inventory' => 'Inventario',
+ 'Inventory account does not exist!' => '',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'La cantidad en inventario debe ser cero antes de cambiar este compuesto a obsoleto',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'La cantidad en inventario debe ser cero antes de cambiar este artículo a obsoleto',
+ 'Inventory saved!' => 'Inventario guardado!',
+ 'Inventory transferred!' => 'Inventario transferido!',
+ 'Invoice' => 'Factura de Venta',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Invoice Number missing!' => 'No se ha definido el número de la factura',
+ 'Invoice deleted!' => '¡Factura borrada!',
+ 'Invoices' => 'Facturas',
+ 'Is this a summary account to record' => '¿Es esta una cuenta de Cartera por Cobrar/Pagar?',
+ 'Item already on pricelist!' => '¡Artículo está incluido en la lista de precios!',
+ 'Item deleted!' => '¡Concepto borrado!',
+ 'Item not on file!' => 'El concepto no se encuentra en ningún archivo',
+ 'Items' => 'Productos/Servicios',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Job' => '',
+ 'Job Name' => '',
+ 'Job Number' => '',
+ 'Job Number missing!' => '',
+ 'Job deleted!' => '',
+ 'Job saved!' => '',
+ 'Jobs' => '',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'LaTeX Templates' => 'Plantillas LaTeX',
+ 'Labor Code' => '',
+ 'Labor/Overhead' => 'Honorarios',
+ 'Language' => 'Idioma',
+ 'Language deleted!' => 'Idioma Borrada!',
+ 'Language saved!' => 'Idioma Guardada!',
+ 'Languages' => 'Idiomas',
+ 'Languages not defined!' => 'Idiomas no configuradas!',
+ 'Last Cost' => '',
+ 'Last Numbers & Default Accounts' => 'Últimos números y cuentas por omisión',
+ 'Lead' => '',
+ 'Leadtime' => 'Tiempo de Entrega',
+ 'Leave host and port field empty unless you want to make a remote connection.' => 'Deje los campos de máquina servidor de base de datos y puerto vacíos al menos que quiera hacer una conexión remota',
+ 'Liability' => 'Pasivo',
+ 'Licensed to' => 'Adaptado para',
+ 'Line Total' => 'Total de la línea',
+ 'Link' => 'Enlaces',
+ 'Link Accounts' => 'Enlazar cuentas',
+ 'List' => 'Lista',
+ 'List Accounts' => 'Mostrar Plan Único de Cuentas',
+ 'List Businesses' => 'Mostrar empresas',
+ 'List Departments' => 'Mostrar Centro de Costos',
+ 'List GIFI' => 'Mostrar PUC',
+ 'List Languages' => 'Mostrar Idiomas',
+ 'List Price' => 'Precio de Lista',
+ 'List Projects' => 'Mostrar Projectos',
+ 'List SIC' => 'Mostrar SIC',
+ 'List Transactions' => 'Mostrar Transacciones',
+ 'List Warehouses' => 'Mostar bodegas',
+ 'Lock System' => 'Bloquear sistema',
+ 'Lockfile created!' => 'Sistema bloqueado',
+ 'Lockfile removed!' => 'Desbloqueado!',
+ 'Login' => 'Entrar',
+ 'Login name missing!' => 'Falta Nombre del Usuario',
+ 'Logout' => 'Salir',
+ 'Make' => 'Marca',
+ 'Manager' => 'Administrador',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'Marked entries printed!' => 'Selección impresa',
+ 'Markup' => 'Margen',
+ 'Maximum' => 'Maximo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Menu Width' => 'Ancho del Menu',
+ 'Message' => 'Mensaje',
+ 'Method' => 'Metódo',
+ 'Microfiche' => 'Microficha',
+ 'Model' => 'Modelo',
+ 'Monday' => '',
+ 'Month' => 'Mes',
+ 'Month(s)' => '',
+ 'Months' => '',
+ 'Multibyte Encoding' => 'Codificación Multibyte',
+ 'N/A' => 'Sin respuesta',
+ 'Name' => 'Nombre',
+ 'Name missing!' => '¡Falta el nombre!',
+ 'New Templates' => 'Nuevas plantillas',
+ 'New Window' => 'Nueva Ventana',
+ 'Next' => '',
+ 'Next Date' => '',
+ 'Next Number' => '',
+ 'No' => 'No',
+ 'No Database Drivers available!' => 'No hay ningún gestor de base de datos disponible',
+ 'No Dataset selected!' => 'No se ha seleccionado ninguna base de datos',
+ 'No Employees on file!' => '',
+ 'No Labor codes on file!' => '',
+ 'No email address for' => 'Falta la dirección de correo electrónico de',
+ 'No open Jobs!' => '',
+ 'No open Projects!' => '',
+ 'No.' => 'No.',
+ 'Non-taxable' => 'Sin Impuestos',
+ 'Non-taxable Purchases' => 'Compras sin Impuestos',
+ 'Non-taxable Sales' => 'Ventas sin Impuestos',
+ 'Non-tracking Items' => '',
+ 'Notes' => 'Notas',
+ 'Nothing entered!' => 'Información Incompleta',
+ 'Nothing selected!' => '¡No es seleccionado nada!',
+ 'Nothing to delete!' => '¡No hay nada para borrar!',
+ 'Nothing to print!' => '¡No hay nada que imprimir!',
+ 'Nothing to transfer!' => 'Nada para transferir',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number Format' => 'Formato de número',
+ 'Number missing in Row' => 'No se ha definido el número en la fila',
+ 'O' => 'O',
+ 'OH' => '',
+ 'Obsolete' => 'Obsoleto',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'On Hand' => 'Disponible',
+ 'Open' => 'Abierto',
+ 'Oracle Database Administration' => 'Administración de la base de datos Oracle',
+ 'Order' => 'Orden',
+ 'Order Date' => 'Fecha de elaboración',
+ 'Order Date missing!' => 'No se ha definido la fecha de la elaboración',
+ 'Order Entry' => 'Cotizaciones y pedidos',
+ 'Order Number' => 'Número de orden',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'Order deleted!' => '¡Orden borrada!',
+ 'Order generation failed!' => '',
+ 'Order saved!' => 'Pedido guardado',
+ 'Orders generated!' => '',
+ 'Orphaned' => 'Huérfano',
+ 'Out of balance transaction!' => 'Transacción fuera de Balance!',
+ 'Out of balance!' => '¡Fuera de balance!',
+ 'Outstanding' => 'Impagados',
+ 'PDF' => 'PDF',
+ 'PO Number' => '',
+ 'POS' => 'Punto de Venta',
+ 'POS Invoice' => 'Factura Punto de Venta',
+ 'Packing List' => 'Albarán',
+ 'Packing List Date missing!' => 'No se ha definido la fecha del albarán',
+ 'Packing List Number missing!' => 'No se ha definido el número del albarán',
+ 'Packing Lists' => 'Lista de empaque',
+ 'Paid' => 'Pagado',
+ 'Part' => 'Artículo',
+ 'Part Number' => '',
+ 'Partnumber' => 'Número parte',
+ 'Parts' => 'Artículos',
+ 'Password' => 'Contraseña',
+ 'Password changed!' => '¡Contraseña cambiada!',
+ 'Password does not match!' => '¡Contraseña incorrecta!',
+ 'Passwords do not match!' => '¡Contraseñas son incorrectas!',
+ 'Payables' => 'Por Pagar',
+ 'Payment' => 'Comprobante de Egreso',
+ 'Payment date missing!' => 'No se encuentra la fecha de pago',
+ 'Payment posted!' => '¡Pago registrado!',
+ 'Payments' => 'Pagos',
+ 'Payments posted!' => '',
+ 'Payroll Deduction' => 'Deducciones Nómina',
+ 'Period' => 'Periodo',
+ 'Pg Database Administration' => 'Administración de la base de datos PostgreSQL',
+ 'PgPP Database Administration' => 'PostGres Admin',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Empaque',
+ 'Pick Lists' => 'Listas de Empaque',
+ 'Port' => 'Puerto',
+ 'Port missing!' => 'No se ha definido el Puerto',
+ 'Pos' => '',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como Nuevo',
+ 'Posted!' => 'Agregado!',
+ 'Posting' => '',
+ 'Posting failed!' => '',
+ 'Postscript' => 'Postscript',
+ 'Preferences' => 'Preferencias',
+ 'Preferences saved!' => 'Preferencias guardadas',
+ 'Prepayment' => 'Anticipio',
+ 'Price' => 'Precio',
+ 'Pricegroup' => 'Grupo de Precios',
+ 'Pricegroup deleted!' => 'Grupo Borrado!',
+ 'Pricegroup missing!' => 'Falta Grupo!',
+ 'Pricegroup saved!' => 'Guardado!',
+ 'Pricegroups' => 'Grupos de Precios',
+ 'Pricelist' => 'Lista de Precios',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Print and Post as new' => '',
+ 'Print and Save' => 'Imprimir y Registrar',
+ 'Print and Save as new' => '',
+ 'Print and post as new' => '',
+ 'Print and save as new' => '',
+ 'Printed' => 'Impreso',
+ 'Printer' => 'Impresora',
+ 'Printing' => '',
+ 'Printing ... ' => 'Imprimiendo...',
+ 'Process Transactions' => '',
+ 'Production' => '',
+ 'Profit Center' => 'Centro de Costo (Ingresos)',
+ 'Project' => 'Proyecto',
+ 'Project Description Translations' => 'Descripción Traducción del Proyecto',
+ 'Project Name' => '',
+ 'Project Number' => 'Número del Proyecto',
+ 'Project Number missing!' => '¡Falta el Número de Proyecto!',
+ 'Project Transactions' => 'Transacciones del Projecto',
+ 'Project deleted!' => '¡Proyecto borrado!',
+ 'Project not on file!' => 'Proyecto no existe!',
+ 'Project saved!' => '¡Proyecto guardado ',
+ 'Project/Job Name' => '',
+ 'Project/Job Number' => '',
+ 'Projects' => 'Proyectos',
+ 'Purchase Order' => 'Pedido',
+ 'Purchase Order Number' => 'Número de Orden de Compra',
+ 'Purchase Orders' => 'Pedidos',
+ 'Qty' => 'Cantidad',
+ 'Quantity exceeds available units to stock!' => 'No hay esta cantidad disponible en el Inventario!',
+ 'Quarter' => 'Trimestre',
+ 'Quotation' => 'Cotización',
+ 'Quotation ' => 'Cotización ',
+ 'Quotation Date' => 'Fecha de cotización',
+ 'Quotation Date missing!' => 'Falta fecha de cotización',
+ 'Quotation Number' => 'Número cotización',
+ 'Quotation Number missing!' => 'Falta número de cotización',
+ 'Quotation deleted!' => 'Cotización borrado',
+ 'Quotations' => 'Cotizaciones',
+ 'R' => 'R',
+ 'RFQ' => 'Solicitar Cotización',
+ 'RFQ ' => 'Solicitud de Cotización ',
+ 'RFQ Number' => 'Número de Cotización',
+ 'RFQs' => 'Cotizaciones solicitados',
+ 'ROP' => 'Tope de envio',
+ 'Rate' => 'Tarifa',
+ 'Rate missing!' => 'Falta Tarifa!',
+ 'Recd' => 'Cobrado',
+ 'Receipt' => 'Recibo',
+ 'Receipt posted!' => 'Recibo agregado',
+ 'Receipts' => 'Recibos',
+ 'Receivables' => 'Cobros',
+ 'Receive' => 'Recibir',
+ 'Receive Merchandise' => 'Recibir mercancia',
+ 'Reconciliation' => 'Reconciliación',
+ 'Reconciliation Report' => 'Reporte de Reconciliación',
+ 'Record in' => 'Registrar en',
+ 'Recurring Transaction' => '',
+ 'Recurring Transactions' => '',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Resto',
+ 'Remove' => 'Eliminar',
+ 'Remove Audit trail up to' => 'Remover Rastro de Auditoría hasta',
+ 'Remove Audit trails up to' => 'Remover Rastro de Auditoría hasta',
+ 'Removed spoolfiles!' => 'Archivos eliminados de la cola',
+ 'Removing marked entries from queue ...' => 'Removiendo entradas sellecionads de la cola...',
+ 'Repeat' => '',
+ 'Report for' => 'Informe para',
+ 'Reports' => 'Informes',
+ 'Req' => '',
+ 'Request for Quotation' => 'Solicitar Cotización',
+ 'Request for Quotations' => 'Solicitar Cotizaciones',
+ 'Required by' => 'Aceptado el',
+ 'Retained Earnings' => 'Resultado del Ejercicio',
+ 'Role' => 'Función',
+ 'S' => 'S',
+ 'SIC' => 'SIC',
+ 'SIC deleted!' => 'SIC borrado!',
+ 'SIC saved!' => 'SIC guardado!',
+ 'SKU' => 'SKU',
+ 'SSN' => 'RIF',
+ 'Sale' => 'Venta',
+ 'Sales' => 'Ventas',
+ 'Sales Invoice' => 'Facturas de Ventas',
+ 'Sales Invoice ' => 'Facturas de Ventas ',
+ 'Sales Invoice.' => 'Factura de Ventas.',
+ 'Sales Invoice/AR Transaction Number' => '',
+ 'Sales Invoices' => 'Factura de Venta',
+ 'Sales Order' => 'Orden de Venta',
+ 'Sales Order Number' => 'N°de Pedido',
+ 'Sales Orders' => 'Ordenes de Venta',
+ 'Sales Quotation Number' => 'N°de Cotización de Venta',
+ 'Salesperson' => 'Vendedor',
+ 'Saturday' => '',
+ 'Save' => 'Guardar',
+ 'Save Pricelist' => 'Guardar Lista de Precios',
+ 'Save Schedule' => '',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Save to File' => 'Guardar en un archivo',
+ 'Saving' => '',
+ 'Schedule' => '',
+ 'Scheduled' => '',
+ 'Screen' => 'Pantalla',
+ 'Search' => 'Búsqueda',
+ 'Select' => 'Seleccionar',
+ 'Select Customer' => '',
+ 'Select Vendor' => '',
+ 'Select a Printer!' => '',
+ 'Select a printer!' => '',
+ 'Select all' => 'Guardar todo',
+ 'Select from one of the items below' => 'Seleccione uno de los artículos siguientes',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Selecciona uno de los proyectos abajo',
+ 'Select items' => '',
+ 'Select payment' => '¡Seleccione Pago!',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Select txt, postscript or PDF!' => '¡Seleccione txt, postscript o PDF!',
+ 'Sell' => 'Vender',
+ 'Sell Price' => 'Precio de venta',
+ 'Send by E-Mail' => 'Enviar por correo electrónico',
+ 'Sending' => '',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'No de Serial',
+ 'Serial Number' => 'Número del Serial',
+ 'Service' => 'Servicio',
+ 'Service Code' => '',
+ 'Service/Labor Code' => '',
+ 'Services' => 'Servicios',
+ 'Session Timeout' => '¡Sesión Caducó!',
+ 'Session expired!' => '¡Sesión Expiró!',
+ 'Setup Templates' => 'Configurar plantillas',
+ 'Ship' => 'Envio',
+ 'Ship Merchandise' => 'Enviar Mercancía',
+ 'Ship to' => 'Destino',
+ 'Ship via' => 'Envio por',
+ 'Shipping' => 'Envio',
+ 'Shipping Address' => 'Dirección del envio',
+ 'Shipping Date' => 'Fecha del Envio',
+ 'Shipping Date missing!' => 'Falta Fecha del Envio',
+ 'Shipping Point' => 'Destino',
+ 'Short' => 'Corto',
+ 'Signature' => 'Firma',
+ 'Source' => 'Fuente',
+ 'Spoolfile' => 'Cola de Impresión',
+ 'Standard' => 'Estándard',
+ 'Standard Industrial Codes' => 'Standard Industrial Codes (Código estandardizado)',
+ 'Startdate' => 'Fecha inicial',
+ 'State' => 'Estado',
+ 'State/Province' => 'Departamento',
+ 'Statement' => 'Estado de cuenta',
+ 'Statement Balance' => 'Balance de cuenta',
+ 'Statement sent to' => 'Estado de cuenta enviado a',
+ 'Statements sent to printer!' => '¡Estado de cuenta enviado a la impresora!',
+ 'Stock' => 'Inventario',
+ 'Stock Assembly' => 'Inventariar compuesto',
+ 'Stocking Date' => '',
+ 'Stylesheet' => 'Hoja de estilo',
+ 'Sub-contract GIFI' => 'Sub-Contrato PUC',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Résumen',
+ 'Sunday' => '',
+ 'Supervisor' => 'Supervisor',
+ 'System' => 'Sistema',
+ 'System Defaults' => 'Predeterminados del Sistema',
+ 'Tax' => 'Impuestos',
+ 'Tax Accounts' => 'Cuentas de impuestos',
+ 'Tax Included' => 'Impuestos incluidos en el precio',
+ 'Tax Number' => 'NIT/CC',
+ 'Tax Number / SSN' => 'NIT./CC./CE.',
+ 'Tax collected' => 'Impuestos cobrados Clientes',
+ 'Tax paid' => 'Impuestos pagados',
+ 'Taxable' => 'Impuestos gravables',
+ 'Template saved!' => '¡Plantilla guardada!',
+ 'Templates' => 'Plantillas',
+ 'Terms' => 'Condiciones',
+ 'Text' => '',
+ 'Text Templates' => 'Plantillas de Texto',
+ 'The following Datasets are not in use and can be deleted' => 'Las siguientes bases de datos no están en uso y se pueden borrar',
+ 'The following Datasets need to be updated' => 'Es necesario actualizar las siguientes bases de datos',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Esta es una verificacion preliminar de fuentes existentes. No se creará ni borrará nada durante esta etapa',
+ 'Thursday' => '',
+ 'Till' => 'Caja',
+ 'Time In' => '',
+ 'Time Out' => '',
+ 'Timecard' => '',
+ 'Timecard deleted!' => '',
+ 'Timecard saved!' => '',
+ 'Timecards' => '',
+ 'Times' => '',
+ 'To' => 'Hasta ',
+ 'To Warehouse' => '',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Para añadir un usuario a un grupo, edite un nombre, cambie el nombre de usuario (login) y guarde los cambios. Un nuevo usuario, con las mismas propiedades se guardará bajo el nuevo nombre de usuario (login).',
+ 'Top Level' => 'Nivel superior',
+ 'Total' => 'Total',
+ 'Tracking Items' => '',
+ 'Trade Discount' => 'Descuento',
+ 'Transaction' => 'Asiento',
+ 'Transaction Date missing!' => 'No se ha definido la fecha de la transacción',
+ 'Transaction Dates' => '',
+ 'Transaction deleted!' => '¡Transacción borrada!',
+ 'Transaction posted!' => '¡Transacción registrada!',
+ 'Transaction reversal enforced for all dates' => 'Se ha forzado la anulación de las transacciones para todas las fechas',
+ 'Transaction reversal enforced up to' => 'Se ha forzado la anulación de las transacciones hasta',
+ 'Transactions' => 'Transacciones',
+ 'Transfer' => 'Transferencia',
+ 'Transfer Inventory' => 'Transferir Inventario',
+ 'Transfer from' => '',
+ 'Transfer to' => 'Transferir a',
+ 'Translation' => 'Traducción',
+ 'Translation deleted!' => 'Traducción Borrada!',
+ 'Translation not on file!' => 'No hay traducción',
+ 'Translations' => 'Traducciones',
+ 'Translations saved!' => 'Guardado',
+ 'Trial Balance' => 'Balance de Comprobación',
+ 'Tuesday' => '',
+ 'Type of Business' => 'Clase de Negocio',
+ 'Unit' => 'Unidad',
+ 'Unit of measure' => 'Unidad de medida',
+ 'Unlock System' => 'Unlock sistema',
+ 'Update' => 'Actualizar',
+ 'Update Dataset' => 'Actualizar base de datos',
+ 'Updated' => '¡Actualizado!',
+ 'Upgrading to Version' => 'Actulaizando a versión',
+ 'Use Templates' => 'Plantillas de usuarios',
+ 'User' => 'Usuario',
+ 'User deleted!' => '¡Usuario borrado!',
+ 'User saved!' => '¡Usuario guardado!',
+ 'Valid until' => 'Válido hasta',
+ 'Vendor' => 'Proveedor',
+ 'Vendor History' => 'Historial Proveedor',
+ 'Vendor Invoice' => 'Factura de Proveedor',
+ 'Vendor Invoice ' => 'Factura de Proveedor ',
+ 'Vendor Invoice.' => 'Factura de Proveedor.',
+ 'Vendor Invoice/AP Transaction Number' => '',
+ 'Vendor Invoices' => 'Facturas de Proveedor',
+ 'Vendor Number' => 'Código Vendedor',
+ 'Vendor deleted!' => '¡Proveedor borrado!',
+ 'Vendor missing!' => '¡Falta el proveedor!',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Vendor saved!' => '¡Proveedor guardado!',
+ 'Vendors' => 'Proveedores',
+ 'Version' => 'Versión',
+ 'Warehouse' => 'Bodega',
+ 'Warehouse deleted!' => 'Bodega borrado',
+ 'Warehouse saved!' => 'Bodegas guardado',
+ 'Warehouses' => 'Bodegas',
+ 'Warning!' => 'Alerta!',
+ 'Wednesday' => '',
+ 'Week' => '',
+ 'Week(s)' => '',
+ 'Weeks' => '',
+ 'Weight' => 'Peso',
+ 'Weight Unit' => 'Unidad de peso',
+ 'What type of item is this?' => '¿De qué tipo es este concepto?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Work Orders' => 'Ordenes de Trabajo',
+ 'Work Phone' => 'Teléfono (Oficina)',
+ 'Year' => 'Año',
+ 'Year(s)' => '',
+ 'Yearend' => 'Fin del Año',
+ 'Yearend date missing!' => 'Falta fecha del Fin del Año',
+ 'Yearend posted!' => 'Fin del Año guardado!',
+ 'Yearend posting failed!' => 'No se puede guardar Fin del Año',
+ 'Years' => '',
+ 'Yes' => 'Si',
+ 'You are logged out' => '¡Ud. está desconectado del sistema!',
+ 'You are posting an existing transaction!' => '',
+ 'You are printing and posting an existing transaction!' => '',
+ 'You are printing and saving an existing order' => '',
+ 'You are printing and saving an existing quotation' => '',
+ 'You are printing and saving an existing transaction!' => '',
+ 'You are saving an existing order' => '',
+ 'You are saving an existing quotation' => '',
+ 'You are saving an existing transaction!' => '',
+ 'You did not enter a name!' => 'No ha introducido el nombre',
+ 'You must enter a host and port for local and remote connections!' => 'Debe introducir una máquina servidor de bases de datos y un puerto para conexiones locales y remotas',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'account cannot be set to any other type of account' => 'No se puede cambiar a otro tipo de cuenta',
+ 'as at' => 'al',
+ 'days' => 'días',
+ 'does not exist' => 'no existe',
+ 'done' => 'hecho',
+ 'ea' => 'unid.',
+ 'failed' => '',
+ 'for' => '',
+ 'for Period' => 'para el periodo',
+ 'is already a member!' => 'ya es actualmente un miembro',
+ 'localhost' => 'máquina local',
+ 'locked!' => 'Bloqueado!',
+ 'partsgroup' => '',
+ 'posted!' => 'Guardado',
+ 'sent' => 'Enviado',
+ 'successfully created!' => 'creado satisfactoriamente',
+ 'successfully deleted!' => 'borrado satisfactoriamente',
+ 'time(s)' => '',
+ 'unexpected error!' => '',
+ 'website' => 'sitio web',
+};
+
+1;
diff --git a/locale/co/am b/locale/co/am
new file mode 100755
index 00000000..daf8fb0d
--- /dev/null
+++ b/locale/co/am
@@ -0,0 +1,284 @@
+$self{texts} = {
+ 'AP' => 'Facturas de Proveedores',
+ 'AR' => 'Factura de Ventas',
+ 'About' => 'Acerca de',
+ 'Account' => 'Cuenta',
+ 'Account Number' => 'Número de cuenta',
+ 'Account Number missing!' => 'No se ha definido el número de la cuenta',
+ 'Account Type' => 'Categoría de cuenta',
+ 'Account Type missing!' => 'No se ha definido el tipo de la cuenta',
+ 'Account deleted!' => '¡Cuenta borraba!',
+ 'Account does not exist!' => 'Cuenta no existe!',
+ 'Account saved!' => '¡Cuenta guardada!',
+ 'Accounting Menu' => 'Menú general',
+ 'Accrual' => 'Acumulado',
+ 'Activate Audit trail' => 'Activar Rastro Auditoría',
+ 'Add Account' => 'Añadir cuenta',
+ 'Add Business' => 'Agregar Empresa',
+ 'Add Department' => 'Agregar Centro de Costos',
+ 'Add GIFI' => 'Añadir cuenta PUC',
+ 'Add Language' => 'Agregar Idioma',
+ 'Add SIC' => 'Agregar SIC',
+ 'Add Warehouse' => 'Agregar Bodega',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Total',
+ 'Asset' => 'Activo',
+ 'Audit Control' => 'Control de auditoría',
+ 'Audit trail disabled' => 'Rastro de Auditoría desactivado',
+ 'Audit trail enabled' => 'Rastro de Auditoría activado',
+ 'Audit trail removed up to' => 'Rastro de Auditoría removido hasta',
+ 'Backup sent to' => 'Copia de seguridad enviada a',
+ 'Bin List' => 'Lista Empaque',
+ 'Books are open' => 'Los libros están abiertos',
+ 'Business Number' => 'Numero de negocio',
+ 'Business deleted!' => 'Empresa eliminada!',
+ 'Business saved!' => 'Empresa guardada!',
+ 'COGS' => 'Costo de los artículos',
+ 'Cannot delete account!' => '¡No se puede borrar la cuenta!',
+ 'Cannot delete default account!' => 'No se puede borrar la cuenta por omisión',
+ 'Cannot save account!' => '¡No se puede guardar la cuenta!',
+ 'Cannot save defaults!' => 'No puedo guardar preferencias!',
+ 'Cannot save preferences!' => '¡No se puede guardar las preferencias!',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Tiene que seleccionar cuenta!',
+ 'Cannot set multiple options for' => 'No puedo crear multiples opciones para',
+ 'Cash' => 'Efectivo',
+ 'Chart of Accounts' => 'Plan de cuentas',
+ 'Close Books up to' => 'Cerrar los libros hasta',
+ 'Code' => 'Código',
+ 'Code missing!' => 'Falta código',
+ 'Company' => 'Empresa',
+ 'Confirm' => 'Confirmar',
+ 'Confirm!' => 'Confirmar',
+ 'Continue' => 'Continuar',
+ 'Contra' => 'Cuentas del Orden',
+ 'Copy to COA' => 'Copiar al plan de cuentas',
+ 'Cost Center' => 'Centro de Costos (Gastos)',
+ 'Credit' => 'Crédito',
+ 'Customer Number' => 'Número del cliente',
+ 'Database Host' => 'Máquina servidor de base de datos',
+ 'Dataset' => 'Base de datos',
+ 'Date Format' => 'Formato de fecha',
+ 'Debit' => 'Débito',
+ 'Defaults saved!' => 'Guardado!',
+ 'Delete' => 'Borrar',
+ 'Delete Account' => 'Borrar cuenta',
+ 'Department deleted!' => 'Centro de Costos borrado!',
+ 'Department saved!' => 'Centro de Costos guardado!',
+ 'Departments' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Description missing!' => 'Falta Descripción',
+ 'Discount' => 'Descuento',
+ 'Dropdown Limit' => 'Límite de efectivo',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'Edit' => 'Editar',
+ 'Edit Account' => 'Editar cuenta',
+ 'Edit Business' => 'Editar empresa',
+ 'Edit Department' => 'Editar Centro de Costos',
+ 'Edit GIFI' => 'Editar PUC',
+ 'Edit Language' => 'Editar Idioma',
+ 'Edit Preferences for' => 'Editar preferencias de',
+ 'Edit SIC' => 'Editar SIC',
+ 'Edit Template' => 'Editar Plantilla',
+ 'Edit Warehouse' => 'Editar Bodega',
+ 'Employee Number' => 'Número de Empleado',
+ 'Enforce transaction reversal for all dates' => 'Forzar la anulación de las transacciones para todas las fechas',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Introduzca hasta 3 letras separadas por dos puntos (p.e. CAD:USD:EUR) para las monedas locales y las extranjeras',
+ 'Equity' => 'Balance',
+ 'Expense' => 'Gastos',
+ 'Expense/Asset' => 'Gastos/Activo',
+ 'Fax' => 'Fax',
+ 'Foreign Exchange Gain' => 'Ganancia en moneda extranjera',
+ 'Foreign Exchange Loss' => 'Pérdida en moneda extranjera',
+ 'GIFI' => 'Plan Único de Cuentas (PUC)',
+ 'GIFI deleted!' => '¡Borrado el código PUC!',
+ 'GIFI missing!' => 'No se ha definido el código PUC',
+ 'GIFI saved!' => '¡Guardado el código PUC!',
+ 'GL Transaction' => 'Nota de Contabilidad',
+ 'Heading' => 'Encabezado',
+ 'ID' => 'ID',
+ 'Include in drop-down menus' => 'Incluir en menúes desplegables:',
+ 'Income' => 'Ingreso',
+ 'Inventory' => 'Inventario',
+ 'Invoice' => 'Factura de Venta',
+ 'Is this a summary account to record' => '¿Es esta una cuenta de Cartera por Cobrar/Pagar?',
+ 'Language' => 'Idioma',
+ 'Language deleted!' => 'Idioma Borrada!',
+ 'Language saved!' => 'Idioma Guardada!',
+ 'Languages' => 'Idiomas',
+ 'Last Numbers & Default Accounts' => 'Últimos números y cuentas por omisión',
+ 'Liability' => 'Pasivo',
+ 'Licensed to' => 'Adaptado para',
+ 'Link' => 'Enlaces',
+ 'Menu Width' => 'Ancho del Menu',
+ 'Method' => 'Metódo',
+ 'Month' => 'Mes',
+ 'Name' => 'Nombre',
+ 'No' => 'No',
+ 'No email address for' => 'Falta la dirección de correo electrónico de',
+ 'Number' => 'Número',
+ 'Number Format' => 'Formato de número',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Albarán',
+ 'Password' => 'Contraseña',
+ 'Password does not match!' => '¡Contraseña incorrecta!',
+ 'Payables' => 'Por Pagar',
+ 'Payment' => 'Comprobante de Egreso',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Empaque',
+ 'Postscript' => 'Postscript',
+ 'Preferences saved!' => 'Preferencias guardadas',
+ 'Print' => 'Imprimir',
+ 'Printer' => 'Impresora',
+ 'Profit Center' => 'Centro de Costo (Ingresos)',
+ 'Purchase Order' => 'Pedido',
+ 'Purchase Order Number' => 'Número de Orden de Compra',
+ 'Purchase Orders' => 'Pedidos',
+ 'RFQ Number' => 'Número de Cotización',
+ 'Rate' => 'Tarifa',
+ 'Receivables' => 'Cobros',
+ 'Reference' => 'Referencia',
+ 'Remove Audit trail up to' => 'Remover Rastro de Auditoría hasta',
+ 'Retained Earnings' => 'Resultado del Ejercicio',
+ 'SIC deleted!' => 'SIC borrado!',
+ 'SIC saved!' => 'SIC guardado!',
+ 'Sales Invoice' => 'Facturas de Ventas',
+ 'Sales Order' => 'Orden de Venta',
+ 'Sales Order Number' => 'N°de Pedido',
+ 'Sales Orders' => 'Ordenes de Venta',
+ 'Sales Quotation Number' => 'N°de Cotización de Venta',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Session Timeout' => '¡Sesión Caducó!',
+ 'Signature' => 'Firma',
+ 'Standard Industrial Codes' => 'Standard Industrial Codes (Código estandardizado)',
+ 'Stylesheet' => 'Hoja de estilo',
+ 'System Defaults' => 'Predeterminados del Sistema',
+ 'Tax' => 'Impuestos',
+ 'Template saved!' => '¡Plantilla guardada!',
+ 'Transaction' => 'Asiento',
+ 'Transaction reversal enforced for all dates' => 'Se ha forzado la anulación de las transacciones para todas las fechas',
+ 'Transaction reversal enforced up to' => 'Se ha forzado la anulación de las transacciones hasta',
+ 'Type of Business' => 'Clase de Negocio',
+ 'Update' => 'Actualizar',
+ 'User' => 'Usuario',
+ 'Vendor Invoice' => 'Factura de Proveedor',
+ 'Vendor Number' => 'Código Vendedor',
+ 'Version' => 'Versión',
+ 'Warehouse deleted!' => 'Bodega borrado',
+ 'Warehouse saved!' => 'Bodegas guardado',
+ 'Warehouses' => 'Bodegas',
+ 'Weight Unit' => 'Unidad de peso',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Year' => 'Año',
+ 'Yearend' => 'Fin del Año',
+ 'Yearend date missing!' => 'Falta fecha del Fin del Año',
+ 'Yearend posted!' => 'Fin del Año guardado!',
+ 'Yearend posting failed!' => 'No se puede guardar Fin del Año',
+ 'Yes' => 'Si',
+ 'account cannot be set to any other type of account' => 'No se puede cambiar a otro tipo de cuenta',
+ 'done' => 'hecho',
+ 'localhost' => 'máquina local',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'añadir_cuenta' => 'add_account',
+ 'agregar_empresa' => 'add_business',
+ 'agregar_centro_de_costos' => 'add_department',
+ 'agregar_idioma' => 'add_language',
+ 'agregar_sic' => 'add_sic',
+ 'agregar_bodega' => 'add_warehouse',
+ 'continuar' => 'continue',
+ 'copiar_al_plan_de_cuentas' => 'copy_to_coa',
+ 'borrar' => 'delete',
+ 'editar' => 'edit',
+ 'editar_cuenta' => 'edit_account',
+ 'guardar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/co/ap b/locale/co/ap
new file mode 100755
index 00000000..00ff2d9d
--- /dev/null
+++ b/locale/co/ap
@@ -0,0 +1,210 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Impagados Proveedores',
+ 'AP Transaction' => 'Transaccion Proveedor',
+ 'AP Transactions' => 'Gestiones de pagos',
+ 'AR Outstanding' => 'Impagados Cartera',
+ 'AR Transaction' => 'Gestión de cobro',
+ 'AR Transactions' => 'Gestiones de cobros',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Add AP Transaction' => 'Añadir Asiento de CxP',
+ 'Add AR Transaction' => 'Añadir Asiento de CxC',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Cantidad adeudada',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => '¿Está seguro de que desea borrar la transacción?',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => '¡No se puede borrar la transacción!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo ya cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar una transacción para un periodo cerrado',
+ 'Cannot post transaction!' => '¡No se puede registrar la transacción',
+ 'Cc' => 'Cc',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Cerrado',
+ 'Confirm!' => 'Confirmar',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Limite de credito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Date Paid' => 'Fecha de pago',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Department' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'Due Date missing!' => 'Falta la fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'Edit AP Transaction' => 'Editar Asiento de CxP',
+ 'Edit AR Transaction' => 'Editar Asiento de CxC',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate for payment missing!' => 'Falta Tasa de Cambio',
+ 'Exchange rate missing!' => 'Falta Tasa de Cambio',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Invoice' => 'Factura de Venta',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Manager' => 'Administrador',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Message' => 'Mensaje',
+ 'Month' => 'Mes',
+ 'No.' => 'No.',
+ 'Notes' => 'Notas',
+ 'Nothing to print!' => '¡No hay nada que imprimir!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Number' => 'Número de orden',
+ 'PDF' => 'PDF',
+ 'Paid' => 'Pagado',
+ 'Payment date missing!' => 'No se encuentra la fecha de pago',
+ 'Payments' => 'Pagos',
+ 'Period' => 'Periodo',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como Nuevo',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => 'Proyecto no existe!',
+ 'Quarter' => 'Trimestre',
+ 'Receipt' => 'Recibo',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Resto',
+ 'Sales Invoice.' => 'Factura de Ventas.',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Selecciona uno de los proyectos abajo',
+ 'Select payment' => '¡Seleccione Pago!',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Ship to' => 'Destino',
+ 'Ship via' => 'Envio por',
+ 'Shipping Point' => 'Destino',
+ 'Source' => 'Fuente',
+ 'Startdate' => 'Fecha inicial',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Résumen',
+ 'Tax' => 'Impuestos',
+ 'Tax Included' => 'Impuestos incluidos en el precio',
+ 'Till' => 'Caja',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Transaction' => 'Asiento',
+ 'Transaction deleted!' => '¡Transacción borrada!',
+ 'Transaction posted!' => '¡Transacción registrada!',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice.' => 'Factura de Proveedor.',
+ 'Vendor missing!' => '¡Falta el proveedor!',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Warning!' => 'Alerta!',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'transaccion_proveedor' => 'ap_transaction',
+ 'gestión_de_cobro' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'imprimir_y_registrar' => 'print_and_post',
+ 'factura_de_ventas_' => 'sales_invoice_',
+ 'destino' => 'ship_to',
+ 'actualizar' => 'update',
+ 'factura_de_proveedor_' => 'vendor_invoice_',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/co/ar b/locale/co/ar
new file mode 100755
index 00000000..00ff2d9d
--- /dev/null
+++ b/locale/co/ar
@@ -0,0 +1,210 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Impagados Proveedores',
+ 'AP Transaction' => 'Transaccion Proveedor',
+ 'AP Transactions' => 'Gestiones de pagos',
+ 'AR Outstanding' => 'Impagados Cartera',
+ 'AR Transaction' => 'Gestión de cobro',
+ 'AR Transactions' => 'Gestiones de cobros',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Add AP Transaction' => 'Añadir Asiento de CxP',
+ 'Add AR Transaction' => 'Añadir Asiento de CxC',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Cantidad adeudada',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => '¿Está seguro de que desea borrar la transacción?',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => '¡No se puede borrar la transacción!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo ya cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar una transacción para un periodo cerrado',
+ 'Cannot post transaction!' => '¡No se puede registrar la transacción',
+ 'Cc' => 'Cc',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Cerrado',
+ 'Confirm!' => 'Confirmar',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Limite de credito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Date Paid' => 'Fecha de pago',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Department' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'Due Date missing!' => 'Falta la fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'Edit AP Transaction' => 'Editar Asiento de CxP',
+ 'Edit AR Transaction' => 'Editar Asiento de CxC',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate for payment missing!' => 'Falta Tasa de Cambio',
+ 'Exchange rate missing!' => 'Falta Tasa de Cambio',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Invoice' => 'Factura de Venta',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Manager' => 'Administrador',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Message' => 'Mensaje',
+ 'Month' => 'Mes',
+ 'No.' => 'No.',
+ 'Notes' => 'Notas',
+ 'Nothing to print!' => '¡No hay nada que imprimir!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Number' => 'Número de orden',
+ 'PDF' => 'PDF',
+ 'Paid' => 'Pagado',
+ 'Payment date missing!' => 'No se encuentra la fecha de pago',
+ 'Payments' => 'Pagos',
+ 'Period' => 'Periodo',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como Nuevo',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => 'Proyecto no existe!',
+ 'Quarter' => 'Trimestre',
+ 'Receipt' => 'Recibo',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Resto',
+ 'Sales Invoice.' => 'Factura de Ventas.',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Selecciona uno de los proyectos abajo',
+ 'Select payment' => '¡Seleccione Pago!',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Ship to' => 'Destino',
+ 'Ship via' => 'Envio por',
+ 'Shipping Point' => 'Destino',
+ 'Source' => 'Fuente',
+ 'Startdate' => 'Fecha inicial',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Résumen',
+ 'Tax' => 'Impuestos',
+ 'Tax Included' => 'Impuestos incluidos en el precio',
+ 'Till' => 'Caja',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Transaction' => 'Asiento',
+ 'Transaction deleted!' => '¡Transacción borrada!',
+ 'Transaction posted!' => '¡Transacción registrada!',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice.' => 'Factura de Proveedor.',
+ 'Vendor missing!' => '¡Falta el proveedor!',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Warning!' => 'Alerta!',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'transaccion_proveedor' => 'ap_transaction',
+ 'gestión_de_cobro' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'imprimir_y_registrar' => 'print_and_post',
+ 'factura_de_ventas_' => 'sales_invoice_',
+ 'destino' => 'ship_to',
+ 'actualizar' => 'update',
+ 'factura_de_proveedor_' => 'vendor_invoice_',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/co/arap b/locale/co/arap
new file mode 100755
index 00000000..4761c6d1
--- /dev/null
+++ b/locale/co/arap
@@ -0,0 +1,51 @@
+$self{texts} = {
+ 'Address' => 'Dirección',
+ 'Bcc' => 'Bcc',
+ 'Cc' => 'Cc',
+ 'Continue' => 'Continuar',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Description' => 'Descripción',
+ 'E-mail' => 'Correo electrónico',
+ 'Message' => 'Mensaje',
+ 'Number' => 'Número',
+ 'Print' => 'Imprimir',
+ 'Project not on file!' => 'Proyecto no existe!',
+ 'Reference' => 'Referencia',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Selecciona uno de los proyectos abajo',
+ 'Startdate' => 'Fecha inicial',
+ 'Subject' => 'Asunto',
+ 'To' => 'Hasta ',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Warning!' => 'Alerta!',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/co/arapprn b/locale/co/arapprn
new file mode 100755
index 00000000..54ffd18e
--- /dev/null
+++ b/locale/co/arapprn
@@ -0,0 +1,32 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Amount' => 'Total',
+ 'Continue' => 'Continuar',
+ 'Date' => 'Fecha',
+ 'Memo' => 'Memo',
+ 'Nothing to print!' => '¡No hay nada que imprimir!',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'Postscript',
+ 'Printed' => 'Impreso',
+ 'Screen' => 'Pantalla',
+ 'Select payment' => '¡Seleccione Pago!',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Source' => 'Fuente',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/co/bp b/locale/co/bp
new file mode 100755
index 00000000..6a77dfdc
--- /dev/null
+++ b/locale/co/bp
@@ -0,0 +1,67 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Seguro que quieres remover las entradas seleccionadas de la cola?',
+ 'Bin Lists' => 'Listas Empaque',
+ 'Cannot remove files!' => 'No puedo borrar archivos!',
+ 'Confirm!' => 'Confirmar',
+ 'Continue' => 'Continuar',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Date' => 'Fecha',
+ 'Employee' => 'Colaborador/Empleado',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'Invoice' => 'Factura de Venta',
+ 'Invoice Number' => 'Número de factura',
+ 'Marked entries printed!' => 'Selección impresa',
+ 'Month' => 'Mes',
+ 'Order' => 'Orden',
+ 'Order Number' => 'Número de orden',
+ 'Packing Lists' => 'Lista de empaque',
+ 'Period' => 'Periodo',
+ 'Pick Lists' => 'Listas de Empaque',
+ 'Print' => 'Imprimir',
+ 'Purchase Orders' => 'Pedidos',
+ 'Quarter' => 'Trimestre',
+ 'Quotation' => 'Cotización',
+ 'Quotation Number' => 'Número cotización',
+ 'Quotations' => 'Cotizaciones',
+ 'RFQs' => 'Cotizaciones solicitados',
+ 'Remove' => 'Eliminar',
+ 'Removed spoolfiles!' => 'Archivos eliminados de la cola',
+ 'Removing marked entries from queue ...' => 'Removiendo entradas sellecionads de la cola...',
+ 'Sales Invoices' => 'Factura de Venta',
+ 'Sales Orders' => 'Ordenes de Venta',
+ 'Select all' => 'Guardar todo',
+ 'Spoolfile' => 'Cola de Impresión',
+ 'To' => 'Hasta ',
+ 'Vendor' => 'Proveedor',
+ 'Work Orders' => 'Ordenes de Trabajo',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+ 'done' => 'hecho',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'imprimir' => 'print',
+ 'eliminar' => 'remove',
+ 'guardar_todo' => 'select_all',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/co/ca b/locale/co/ca
new file mode 100755
index 00000000..97d35dd5
--- /dev/null
+++ b/locale/co/ca
@@ -0,0 +1,59 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Balance',
+ 'Chart of Accounts' => 'Plan de cuentas',
+ 'Credit' => 'Crédito',
+ 'Current' => 'Actual',
+ 'Date' => 'Fecha',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Department' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'De',
+ 'GIFI' => 'Plan Único de Cuentas (PUC)',
+ 'Include in Report' => 'Incluir en informe',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'List Transactions' => 'Mostrar Transacciones',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Month' => 'Mes',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Period' => 'Periodo',
+ 'Project Number' => 'Número del Proyecto',
+ 'Quarter' => 'Trimestre',
+ 'R' => 'R',
+ 'Reference' => 'Referencia',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'Hasta ',
+ 'Year' => 'Año',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'mostrar_transacciones' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/co/cp b/locale/co/cp
new file mode 100755
index 00000000..0769bfef
--- /dev/null
+++ b/locale/co/cp
@@ -0,0 +1,123 @@
+$self{texts} = {
+ 'AP' => 'Facturas de Proveedores',
+ 'AR' => 'Factura de Ventas',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Address' => 'Dirección',
+ 'All' => 'Todos',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Cantidad adeudada',
+ 'Bcc' => 'Bcc',
+ 'Cannot post Payment!' => 'No puedo guardar pago',
+ 'Cannot post Receipt!' => 'No puedo guardar recibo',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo ya cerrado!',
+ 'Cc' => 'Cc',
+ 'Continue' => 'Continuar',
+ 'Currency' => 'Moneda',
+ 'Customer' => 'Cliente',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Date missing!' => '¡Falta la fecha!',
+ 'Department' => 'Centro de Costos',
+ 'Deposit' => 'Depósito',
+ 'Description' => 'Descripción',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate missing!' => 'Falta Tasa de Cambio',
+ 'From' => 'De',
+ 'Invoice' => 'Factura de Venta',
+ 'Invoices' => 'Facturas',
+ 'Language' => 'Idioma',
+ 'Memo' => 'Memo',
+ 'Message' => 'Mensaje',
+ 'Number' => 'Número',
+ 'PDF' => 'PDF',
+ 'Payment' => 'Comprobante de Egreso',
+ 'Payment posted!' => '¡Pago registrado!',
+ 'Payments' => 'Pagos',
+ 'Post' => 'Registrar',
+ 'Postscript' => 'Postscript',
+ 'Prepayment' => 'Anticipio',
+ 'Print' => 'Imprimir',
+ 'Project not on file!' => 'Proyecto no existe!',
+ 'Receipt' => 'Recibo',
+ 'Receipt posted!' => 'Recibo agregado',
+ 'Receipts' => 'Recibos',
+ 'Reference' => 'Referencia',
+ 'Screen' => 'Pantalla',
+ 'Select' => 'Seleccionar',
+ 'Select all' => 'Guardar todo',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Selecciona uno de los proyectos abajo',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Source' => 'Fuente',
+ 'Startdate' => 'Fecha inicial',
+ 'Subject' => 'Asunto',
+ 'To' => 'Hasta ',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Warning!' => 'Alerta!',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuar' => 'continue',
+ 'registrar' => 'post',
+ 'imprimir' => 'print',
+ 'guardar_todo' => 'select_all',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/co/ct b/locale/co/ct
new file mode 100755
index 00000000..68db9094
--- /dev/null
+++ b/locale/co/ct
@@ -0,0 +1,186 @@
+$self{texts} = {
+ 'AP Transaction' => 'Transaccion Proveedor',
+ 'AP Transactions' => 'Gestiones de pagos',
+ 'AR Transaction' => 'Gestión de cobro',
+ 'AR Transactions' => 'Gestiones de cobros',
+ 'Accounting Menu' => 'Menú general',
+ 'Active' => 'Activo',
+ 'Add Customer' => 'Añadir cliente',
+ 'Add Vendor' => 'Añadir proveedor',
+ 'Address' => 'Dirección',
+ 'All' => 'Todos',
+ 'Amount' => 'Total',
+ 'BIC' => 'BIC',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Dirección Factura',
+ 'Break' => 'Pausa',
+ 'Cannot delete customer!' => '¡No se puede borrar el cliente!',
+ 'Cannot delete vendor!' => '¡No se puede borrar el vendedor!',
+ 'Cc' => 'Cc',
+ 'City' => 'Ciudad',
+ 'Closed' => 'Cerrado',
+ 'Company Name' => 'Nombre de la empresa',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Cost' => 'Costo',
+ 'Could not save pricelist!' => '¡No se pudo guradar lista de precios!',
+ 'Country' => 'País',
+ 'Credit Limit' => 'Limite de credito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Customer History' => 'Historial del Cliente',
+ 'Customer Number' => 'Número del cliente',
+ 'Customer deleted!' => '¡Cliente borrado!',
+ 'Customer saved!' => '¡Cliente guardado!',
+ 'Customers' => 'Clientes',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Discount' => 'Descuento',
+ 'E-mail' => 'Correo electrónico',
+ 'Edit Customer' => 'Editar Cliente',
+ 'Edit Vendor' => 'Editar Proveedor',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Enddate' => 'Fecha final',
+ 'Fax' => 'Fax',
+ 'From' => 'De',
+ 'GIFI' => 'Plan Único de Cuentas (PUC)',
+ 'Group' => 'Grupo',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Invoice' => 'Factura de Venta',
+ 'Item already on pricelist!' => '¡Artículo está incluido en la lista de precios!',
+ 'Item not on file!' => 'El concepto no se encuentra en ningún archivo',
+ 'Language' => 'Idioma',
+ 'Leadtime' => 'Tiempo de Entrega',
+ 'Manager' => 'Administrador',
+ 'Name' => 'Nombre',
+ 'Name missing!' => '¡Falta el nombre!',
+ 'No.' => 'No.',
+ 'Notes' => 'Notas',
+ 'Number' => 'Número',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Orphaned' => 'Huérfano',
+ 'POS' => 'Punto de Venta',
+ 'Phone' => 'Teléfono',
+ 'Pricegroup' => 'Grupo de Precios',
+ 'Pricelist' => 'Lista de Precios',
+ 'Project Number' => 'Número del Proyecto',
+ 'Purchase Order' => 'Pedido',
+ 'Purchase Orders' => 'Pedidos',
+ 'Qty' => 'Cantidad',
+ 'Quotation' => 'Cotización',
+ 'Quotations' => 'Cotizaciones',
+ 'RFQ' => 'Solicitar Cotización',
+ 'Request for Quotations' => 'Solicitar Cotizaciones',
+ 'SIC' => 'SIC',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Facturas de Ventas',
+ 'Sales Invoices' => 'Factura de Venta',
+ 'Sales Order' => 'Orden de Venta',
+ 'Sales Orders' => 'Ordenes de Venta',
+ 'Salesperson' => 'Vendedor',
+ 'Save' => 'Guardar',
+ 'Save Pricelist' => 'Guardar Lista de Precios',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Search' => 'Búsqueda',
+ 'Sell Price' => 'Precio de venta',
+ 'Serial Number' => 'Número del Serial',
+ 'Shipping Address' => 'Dirección del envio',
+ 'Startdate' => 'Fecha inicial',
+ 'State' => 'Estado',
+ 'State/Province' => 'Departamento',
+ 'Sub-contract GIFI' => 'Sub-Contrato PUC',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Résumen',
+ 'Tax' => 'Impuestos',
+ 'Tax Included' => 'Impuestos incluidos en el precio',
+ 'Tax Number' => 'NIT/CC',
+ 'Tax Number / SSN' => 'NIT./CC./CE.',
+ 'Taxable' => 'Impuestos gravables',
+ 'Terms' => 'Condiciones',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Type of Business' => 'Clase de Negocio',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Vendor History' => 'Historial Proveedor',
+ 'Vendor Invoice' => 'Factura de Proveedor',
+ 'Vendor Invoices' => 'Facturas de Proveedor',
+ 'Vendor Number' => 'Código Vendedor',
+ 'Vendor deleted!' => '¡Proveedor borrado!',
+ 'Vendor saved!' => '¡Proveedor guardado!',
+ 'Vendors' => 'Proveedores',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'days' => 'días',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'transaccion_proveedor' => 'ap_transaction',
+ 'gestión_de_cobro' => 'ar_transaction',
+ 'añadir_cliente' => 'add_customer',
+ 'añadir_proveedor' => 'add_vendor',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'punto_de_venta' => 'pos',
+ 'lista_de_precios' => 'pricelist',
+ 'pedido' => 'purchase_order',
+ 'cotización' => 'quotation',
+ 'solicitar_cotización' => 'rfq',
+ 'facturas_de_ventas' => 'sales_invoice',
+ 'orden_de_venta' => 'sales_order',
+ 'guardar' => 'save',
+ 'guardar_lista_de_precios' => 'save_pricelist',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+ 'factura_de_proveedor' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/co/gl b/locale/co/gl
new file mode 100755
index 00000000..6ff4c05d
--- /dev/null
+++ b/locale/co/gl
@@ -0,0 +1,158 @@
+$self{texts} = {
+ 'AP Transaction' => 'Transaccion Proveedor',
+ 'AR Transaction' => 'Gestión de cobro',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Add Cash Transfer Transaction' => 'Agregar transacción',
+ 'Add General Ledger Transaction' => 'Añadir Nota de Contabilidad',
+ 'Address' => 'Dirección',
+ 'All' => 'Todos',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => '¿Está seguro de que desea borrar la transacción?',
+ 'Asset' => 'Activo',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Balance',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => '¡No se puede borrar la transacción!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar una transacción para un periodo cerrado',
+ 'Cannot post transaction!' => '¡No se puede registrar la transacción',
+ 'Cc' => 'Cc',
+ 'Confirm!' => 'Confirmar',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Current' => 'Actual',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Department' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'E-mail' => 'Correo electrónico',
+ 'Edit Cash Transfer Transaction' => 'Editar Transacción en Effectivo',
+ 'Edit General Ledger Transaction' => 'Editar Notas Contables',
+ 'Equity' => 'Balance',
+ 'Expense' => 'Gastos',
+ 'FX' => 'Tasa de Cambio',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'De',
+ 'GIFI' => 'Plan Único de Cuentas (PUC)',
+ 'GL Transaction' => 'Nota de Contabilidad',
+ 'General Ledger' => 'Notas de Contabilidad',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Income' => 'Ingreso',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Liability' => 'Pasivo',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Message' => 'Mensaje',
+ 'Month' => 'Mes',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Out of balance transaction!' => 'Transacción fuera de Balance!',
+ 'Period' => 'Periodo',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como Nuevo',
+ 'Print' => 'Imprimir',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => 'Proyecto no existe!',
+ 'Quarter' => 'Trimestre',
+ 'R' => 'R',
+ 'Reference' => 'Referencia',
+ 'Reports' => 'Informes',
+ 'Sales Invoice ' => 'Facturas de Ventas ',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Selecciona uno de los proyectos abajo',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Source' => 'Fuente',
+ 'Startdate' => 'Fecha inicial',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'Hasta ',
+ 'Transaction Date missing!' => 'No se ha definido la fecha de la transacción',
+ 'Transaction deleted!' => '¡Transacción borrada!',
+ 'Transaction posted!' => '¡Transacción registrada!',
+ 'Update' => 'Actualizar',
+ 'Vendor Invoice ' => 'Factura de Proveedor ',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Warning!' => 'Alerta!',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'transaccion_proveedor' => 'ap_transaction',
+ 'gestión_de_cobro' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'nota_de_contabilidad' => 'gl_transaction',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'facturas_de_ventas_' => 'sales_invoice_',
+ 'actualizar' => 'update',
+ 'factura_de_proveedor_' => 'vendor_invoice_',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/co/hr b/locale/co/hr
new file mode 100755
index 00000000..7efccf0b
--- /dev/null
+++ b/locale/co/hr
@@ -0,0 +1,117 @@
+$self{texts} = {
+ 'AP' => 'Facturas de Proveedores',
+ 'Above' => 'Encima de',
+ 'Accounting Menu' => 'Menú general',
+ 'Active' => 'Activo',
+ 'Add Deduction' => 'Agregar Deducción',
+ 'Add Employee' => 'Agregar Empleado',
+ 'Address' => 'Dirección',
+ 'Administrator' => 'Administrador',
+ 'After Deduction' => 'Despues Deducción',
+ 'All' => 'Todos',
+ 'Allowances' => 'Permisos',
+ 'Amount' => 'Total',
+ 'Amount missing!' => 'Falta suma',
+ 'BIC' => 'BIC',
+ 'Based on' => 'Basado en',
+ 'Before Deduction' => 'Antes de la Deducción',
+ 'Below' => 'Debajo',
+ 'City' => 'Ciudad',
+ 'Continue' => 'Continuar',
+ 'Country' => 'País',
+ 'DOB' => 'Fecha de Nacimiento',
+ 'Deduct after' => 'Deducir despues de',
+ 'Deduction deleted!' => 'Deducción borrado!',
+ 'Deduction saved!' => 'Deducción guardado',
+ 'Deductions' => 'Deducciones',
+ 'Delete' => 'Borrar',
+ 'Description' => 'Descripción',
+ 'Description missing!' => 'Falta Descripción',
+ 'E-mail' => 'Correo electrónico',
+ 'Edit Deduction' => 'Editar Deducción',
+ 'Edit Employee' => 'Editar Empleado',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Employee Name' => 'Nombre del Empleado',
+ 'Employee Number' => 'Número de Empleado',
+ 'Employee deleted!' => 'Empleado borrado!',
+ 'Employee pays' => 'Empleado cancela',
+ 'Employee saved!' => 'Empleado guardado!',
+ 'Employees' => 'Empleados',
+ 'Employer' => 'Empleador',
+ 'Employer pays' => 'Empleador cancela',
+ 'Enddate' => 'Fecha final',
+ 'Expense' => 'Gastos',
+ 'From' => 'De',
+ 'Home Phone' => 'Teléfono residencia',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Login' => 'Entrar',
+ 'Manager' => 'Administrador',
+ 'Maximum' => 'Maximo',
+ 'Name' => 'Nombre',
+ 'Name missing!' => '¡Falta el nombre!',
+ 'Notes' => 'Notas',
+ 'Number' => 'Número',
+ 'Orphaned' => 'Huérfano',
+ 'Payroll Deduction' => 'Deducciones Nómina',
+ 'Rate' => 'Tarifa',
+ 'Rate missing!' => 'Falta Tarifa!',
+ 'Role' => 'Función',
+ 'S' => 'S',
+ 'SSN' => 'RIF',
+ 'Sales' => 'Ventas',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Startdate' => 'Fecha inicial',
+ 'State/Province' => 'Departamento',
+ 'Supervisor' => 'Supervisor',
+ 'To' => 'Hasta ',
+ 'Update' => 'Actualizar',
+ 'User' => 'Usuario',
+ 'Work Phone' => 'Teléfono (Oficina)',
+ 'Zip/Postal Code' => 'Código Postal',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'agregar_deducción' => 'add_deduction',
+ 'agregar_empleado' => 'add_employee',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'guardar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/co/ic b/locale/co/ic
new file mode 100755
index 00000000..d7ec411d
--- /dev/null
+++ b/locale/co/ic
@@ -0,0 +1,277 @@
+$self{texts} = {
+ 'A' => 'A',
+ 'Accounting Menu' => 'Menú general',
+ 'Accounts' => 'Cuentas',
+ 'Accrual' => 'Acumulado',
+ 'Active' => 'Activo',
+ 'Add' => 'Añadir',
+ 'Add Assembly' => 'Añadir compuesto',
+ 'Add Labor/Overhead' => 'Agregar Honorarios',
+ 'Add Part' => 'Añadir artículo',
+ 'Add Purchase Order' => 'Añadir pedido',
+ 'Add Quotation' => 'Agregar Cotización',
+ 'Add Request for Quotation' => 'Pedir Cotización',
+ 'Add Sales Order' => 'Añadir cotización',
+ 'Add Service' => 'Añadir servicio',
+ 'Address' => 'Dirección',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Assemblies' => 'Compuestos',
+ 'Assemblies restocked!' => '¡Compuestos actualizados en almacen!',
+ 'Assembly' => 'Compuesto',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'BOM' => 'Listado de piezas',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Dirección Factura',
+ 'Bin' => 'Empaque',
+ 'Bin List' => 'Lista Empaque',
+ 'Break' => 'Pausa',
+ 'COGS' => 'Costo de los artículos',
+ 'Cannot delete item!' => '¡No se puede borrar el artículo!',
+ 'Cannot stock assemblies!' => '¡No se pueden almacenar los compuestos!',
+ 'Cash' => 'Efectivo',
+ 'Cc' => 'Cc',
+ 'Check Inventory' => 'Revisar Inventario',
+ 'City' => 'Ciudad',
+ 'Closed' => 'Cerrado',
+ 'Company Name' => 'Nombre de la empresa',
+ 'Components' => 'Componentes',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Cost' => 'Costo',
+ 'Country' => 'País',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Customer' => 'Cliente',
+ 'Customer Number' => 'Número del cliente',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Drawing' => 'Reintegro',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'E-mailed' => 'Enviado por mail',
+ 'Edit Assembly' => 'Editar compuesto',
+ 'Edit Labor/Overhead' => 'Editar Honorario',
+ 'Edit Part' => 'Editar compuesto',
+ 'Edit Service' => 'Editar Servicio',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Expense' => 'Gastos',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'De',
+ 'Group' => 'Grupo',
+ 'Image' => 'Imagen',
+ 'In-line' => 'Incrustado',
+ 'Include in Report' => 'Incluir en informe',
+ 'Income' => 'Ingreso',
+ 'Individual Items' => 'Artículos individuales',
+ 'Inventory' => 'Inventario',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'La cantidad en inventario debe ser cero antes de cambiar este compuesto a obsoleto',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'La cantidad en inventario debe ser cero antes de cambiar este artículo a obsoleto',
+ 'Invoice' => 'Factura de Venta',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Invoice Number missing!' => 'No se ha definido el número de la factura',
+ 'Item deleted!' => '¡Concepto borrado!',
+ 'Item not on file!' => 'El concepto no se encuentra en ningún archivo',
+ 'Items' => 'Productos/Servicios',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Labor/Overhead' => 'Honorarios',
+ 'Leadtime' => 'Tiempo de Entrega',
+ 'Line Total' => 'Total de la línea',
+ 'Link Accounts' => 'Enlazar cuentas',
+ 'List' => 'Lista',
+ 'List Price' => 'Precio de Lista',
+ 'Make' => 'Marca',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'Markup' => 'Margen',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Message' => 'Mensaje',
+ 'Microfiche' => 'Microficha',
+ 'Model' => 'Modelo',
+ 'Name' => 'Nombre',
+ 'No.' => 'No.',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se ha definido el número en la fila',
+ 'Obsolete' => 'Obsoleto',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'On Hand' => 'Disponible',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Date missing!' => 'No se ha definido la fecha de la elaboración',
+ 'Order Number' => 'Número de orden',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'Orphaned' => 'Huérfano',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Albarán',
+ 'Packing List Date missing!' => 'No se ha definido la fecha del albarán',
+ 'Packing List Number missing!' => 'No se ha definido el número del albarán',
+ 'Part' => 'Artículo',
+ 'Parts' => 'Artículos',
+ 'Period' => 'Periodo',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Empaque',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Pricegroup' => 'Grupo de Precios',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Purchase Order' => 'Pedido',
+ 'Purchase Orders' => 'Pedidos',
+ 'Qty' => 'Cantidad',
+ 'Quantity exceeds available units to stock!' => 'No hay esta cantidad disponible en el Inventario!',
+ 'Quotation' => 'Cotización',
+ 'Quotation Date missing!' => 'Falta fecha de cotización',
+ 'Quotation Number missing!' => 'Falta número de cotización',
+ 'Quotations' => 'Cotizaciones',
+ 'RFQ' => 'Solicitar Cotización',
+ 'ROP' => 'Tope de envio',
+ 'Recd' => 'Cobrado',
+ 'Required by' => 'Aceptado el',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Facturas de Ventas',
+ 'Sales Invoices' => 'Factura de Venta',
+ 'Sales Order' => 'Orden de Venta',
+ 'Sales Orders' => 'Ordenes de Venta',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select txt, postscript or PDF!' => '¡Seleccione txt, postscript o PDF!',
+ 'Sell' => 'Vender',
+ 'Sell Price' => 'Precio de venta',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'No de Serial',
+ 'Serial Number' => 'Número del Serial',
+ 'Service' => 'Servicio',
+ 'Services' => 'Servicios',
+ 'Ship' => 'Envio',
+ 'Ship to' => 'Destino',
+ 'Shipping Address' => 'Dirección del envio',
+ 'Short' => 'Corto',
+ 'State/Province' => 'Departamento',
+ 'Stock' => 'Inventario',
+ 'Stock Assembly' => 'Inventariar compuesto',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Résumen',
+ 'Tax' => 'Impuestos',
+ 'To' => 'Hasta ',
+ 'Top Level' => 'Nivel superior',
+ 'Translation not on file!' => 'No hay traducción',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Updated' => '¡Actualizado!',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice' => 'Factura de Proveedor',
+ 'Vendor Invoices' => 'Facturas de Proveedor',
+ 'Vendor Number' => 'Código Vendedor',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Warehouse' => 'Bodega',
+ 'Weight' => 'Peso',
+ 'What type of item is this?' => '¿De qué tipo es este concepto?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Year' => 'Año',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'days' => 'días',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'añadir_compuesto' => 'add_assembly',
+ 'agregar_honorarios' => 'add_labor_overhead',
+ 'añadir_artículo' => 'add_part',
+ 'añadir_servicio' => 'add_service',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'editar_compuesto' => 'edit_assembly',
+ 'editar_compuesto' => 'edit_part',
+ 'editar_servicio' => 'edit_service',
+ 'guardar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/co/io b/locale/co/io
new file mode 100755
index 00000000..e39b14fc
--- /dev/null
+++ b/locale/co/io
@@ -0,0 +1,130 @@
+$self{texts} = {
+ 'Add Purchase Order' => 'Añadir pedido',
+ 'Add Quotation' => 'Agregar Cotización',
+ 'Add Request for Quotation' => 'Pedir Cotización',
+ 'Add Sales Order' => 'Añadir cotización',
+ 'Address' => 'Dirección',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Dirección Factura',
+ 'Bin' => 'Empaque',
+ 'Bin List' => 'Lista Empaque',
+ 'Cc' => 'Cc',
+ 'City' => 'Ciudad',
+ 'Company Name' => 'Nombre de la empresa',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Country' => 'País',
+ 'Customer Number' => 'Número del cliente',
+ 'Date' => 'Fecha',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Description' => 'Descripción',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'E-mailed' => 'Enviado por mail',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'Group' => 'Grupo',
+ 'In-line' => 'Incrustado',
+ 'Invoice' => 'Factura de Venta',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number missing!' => 'No se ha definido el número de la factura',
+ 'Item not on file!' => 'El concepto no se encuentra en ningún archivo',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Message' => 'Mensaje',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se ha definido el número en la fila',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Order Date missing!' => 'No se ha definido la fecha de la elaboración',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Albarán',
+ 'Packing List Date missing!' => 'No se ha definido la fecha del albarán',
+ 'Packing List Number missing!' => 'No se ha definido el número del albarán',
+ 'Part' => 'Artículo',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Empaque',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Purchase Order' => 'Pedido',
+ 'Qty' => 'Cantidad',
+ 'Quotation' => 'Cotización',
+ 'Quotation Date missing!' => 'Falta fecha de cotización',
+ 'Quotation Number missing!' => 'Falta número de cotización',
+ 'Recd' => 'Cobrado',
+ 'Required by' => 'Aceptado el',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Orden de Venta',
+ 'Screen' => 'Pantalla',
+ 'Select txt, postscript or PDF!' => '¡Seleccione txt, postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'No de Serial',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Envio',
+ 'Ship to' => 'Destino',
+ 'Shipping Address' => 'Dirección del envio',
+ 'State/Province' => 'Departamento',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'Hasta ',
+ 'Translation not on file!' => 'No hay traducción',
+ 'Unit' => 'Unidad',
+ 'Vendor Number' => 'Código Vendedor',
+ 'What type of item is this?' => '¿De qué tipo es este concepto?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/co/ir b/locale/co/ir
new file mode 100755
index 00000000..d09049a7
--- /dev/null
+++ b/locale/co/ir
@@ -0,0 +1,224 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Add Purchase Order' => 'Añadir pedido',
+ 'Add Quotation' => 'Agregar Cotización',
+ 'Add Request for Quotation' => 'Pedir Cotización',
+ 'Add Sales Order' => 'Añadir cotización',
+ 'Add Vendor Invoice' => 'Agregar Factura de Proveedor',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => '¿Esta seguro de que desea borrar la factura número',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Dirección Factura',
+ 'Bin' => 'Empaque',
+ 'Bin List' => 'Lista Empaque',
+ 'Cannot delete invoice!' => '¡No se puede borrar la factura!',
+ 'Cannot post invoice for a closed period!' => '¡No se puede registrar una factura en un periodo ya cerrado!',
+ 'Cannot post invoice!' => '¡No se puede registrar la factura!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo ya cerrado!',
+ 'Cc' => 'Cc',
+ 'City' => 'Ciudad',
+ 'Company Name' => 'Nombre de la empresa',
+ 'Confirm!' => 'Confirmar',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Country' => 'País',
+ 'Credit Limit' => 'Limite de credito',
+ 'Currency' => 'Moneda',
+ 'Customer Number' => 'Número del cliente',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Department' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'E-mailed' => 'Enviado por mail',
+ 'Edit Vendor Invoice' => 'Editar Factura de Proveedor',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate for payment missing!' => 'Falta Tasa de Cambio',
+ 'Exchange rate missing!' => 'Falta Tasa de Cambio',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'Group' => 'Grupo',
+ 'In-line' => 'Incrustado',
+ 'Internal Notes' => 'Notas internas',
+ 'Invoice' => 'Factura de Venta',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Invoice Number missing!' => 'No se ha definido el número de la factura',
+ 'Invoice deleted!' => '¡Factura borrada!',
+ 'Item not on file!' => 'El concepto no se encuentra en ningún archivo',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Language' => 'Idioma',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Message' => 'Mensaje',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se ha definido el número en la fila',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Order Date missing!' => 'No se ha definido la fecha de la elaboración',
+ 'Order Number' => 'Número de orden',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Albarán',
+ 'Packing List Date missing!' => 'No se ha definido la fecha del albarán',
+ 'Packing List Number missing!' => 'No se ha definido el número del albarán',
+ 'Part' => 'Artículo',
+ 'Payment date missing!' => 'No se encuentra la fecha de pago',
+ 'Payments' => 'Pagos',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Empaque',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como Nuevo',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => 'Proyecto no existe!',
+ 'Purchase Order' => 'Pedido',
+ 'Qty' => 'Cantidad',
+ 'Quotation' => 'Cotización',
+ 'Quotation Date missing!' => 'Falta fecha de cotización',
+ 'Quotation Number missing!' => 'Falta número de cotización',
+ 'Recd' => 'Cobrado',
+ 'Record in' => 'Registrar en',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Resto',
+ 'Required by' => 'Aceptado el',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Orden de Venta',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Selecciona uno de los proyectos abajo',
+ 'Select txt, postscript or PDF!' => '¡Seleccione txt, postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'No de Serial',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Envio',
+ 'Ship to' => 'Destino',
+ 'Shipping Address' => 'Dirección del envio',
+ 'Source' => 'Fuente',
+ 'Startdate' => 'Fecha inicial',
+ 'State/Province' => 'Departamento',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Tax Included' => 'Impuestos incluidos en el precio',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Translation not on file!' => 'No hay traducción',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Number' => 'Código Vendedor',
+ 'Vendor missing!' => '¡Falta el proveedor!',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Warning!' => 'Alerta!',
+ 'What type of item is this?' => '¿De qué tipo es este concepto?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Yes' => 'Si',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'ea' => 'unid.',
+ 'posted!' => 'Guardado',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'pedido' => 'purchase_order',
+ 'actualizar' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/co/is b/locale/co/is
new file mode 100755
index 00000000..cf4ca11f
--- /dev/null
+++ b/locale/co/is
@@ -0,0 +1,235 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Add Purchase Order' => 'Añadir pedido',
+ 'Add Quotation' => 'Agregar Cotización',
+ 'Add Request for Quotation' => 'Pedir Cotización',
+ 'Add Sales Invoice' => 'Añadir factura',
+ 'Add Sales Order' => 'Añadir cotización',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => '¿Esta seguro de que desea borrar la factura número',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Dirección Factura',
+ 'Bin' => 'Empaque',
+ 'Bin List' => 'Lista Empaque',
+ 'Business' => 'Empresa',
+ 'Cannot delete invoice!' => '¡No se puede borrar la factura!',
+ 'Cannot post invoice for a closed period!' => '¡No se puede registrar una factura en un periodo ya cerrado!',
+ 'Cannot post invoice!' => '¡No se puede registrar la factura!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo ya cerrado!',
+ 'Cc' => 'Cc',
+ 'City' => 'Ciudad',
+ 'Company Name' => 'Nombre de la empresa',
+ 'Confirm!' => 'Confirmar',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Country' => 'País',
+ 'Credit Limit' => 'Limite de credito',
+ 'Currency' => 'Moneda',
+ 'Customer' => 'Cliente',
+ 'Customer Number' => 'Número del cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Department' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'E-mailed' => 'Enviado por mail',
+ 'Edit Sales Invoice' => 'Editar Factura de Venta',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate for payment missing!' => 'Falta Tasa de Cambio',
+ 'Exchange rate missing!' => 'Falta Tasa de Cambio',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'Group' => 'Grupo',
+ 'In-line' => 'Incrustado',
+ 'Internal Notes' => 'Notas internas',
+ 'Invoice' => 'Factura de Venta',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Invoice Number missing!' => 'No se ha definido el número de la factura',
+ 'Invoice deleted!' => '¡Factura borrada!',
+ 'Item not on file!' => 'El concepto no se encuentra en ningún archivo',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Message' => 'Mensaje',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se ha definido el número en la fila',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Order Date missing!' => 'No se ha definido la fecha de la elaboración',
+ 'Order Number' => 'Número de orden',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Albarán',
+ 'Packing List Date missing!' => 'No se ha definido la fecha del albarán',
+ 'Packing List Number missing!' => 'No se ha definido el número del albarán',
+ 'Part' => 'Artículo',
+ 'Payment date missing!' => 'No se encuentra la fecha de pago',
+ 'Payments' => 'Pagos',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Empaque',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como Nuevo',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => 'Proyecto no existe!',
+ 'Purchase Order' => 'Pedido',
+ 'Qty' => 'Cantidad',
+ 'Quotation' => 'Cotización',
+ 'Quotation Date missing!' => 'Falta fecha de cotización',
+ 'Quotation Number missing!' => 'Falta número de cotización',
+ 'Recd' => 'Cobrado',
+ 'Record in' => 'Registrar en',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Resto',
+ 'Required by' => 'Aceptado el',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Orden de Venta',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Selecciona uno de los proyectos abajo',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Select txt, postscript or PDF!' => '¡Seleccione txt, postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'No de Serial',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Envio',
+ 'Ship to' => 'Destino',
+ 'Ship via' => 'Envio por',
+ 'Shipping Address' => 'Dirección del envio',
+ 'Shipping Point' => 'Destino',
+ 'Source' => 'Fuente',
+ 'Startdate' => 'Fecha inicial',
+ 'State/Province' => 'Departamento',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Tax Included' => 'Impuestos incluidos en el precio',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Descuento',
+ 'Translation not on file!' => 'No hay traducción',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Vendor Number' => 'Código Vendedor',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Warning!' => 'Alerta!',
+ 'What type of item is this?' => '¿De qué tipo es este concepto?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Yes' => 'Si',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'ea' => 'unid.',
+ 'posted!' => 'Guardado',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'correo_electrónico' => 'e_mail',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'imprimir_y_registrar' => 'print_and_post',
+ 'orden_de_venta' => 'sales_order',
+ 'destino' => 'ship_to',
+ 'actualizar' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/co/jc b/locale/co/jc
new file mode 100755
index 00000000..a1f2de58
--- /dev/null
+++ b/locale/co/jc
@@ -0,0 +1,92 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menú general',
+ 'Amount' => 'Total',
+ 'Closed' => 'Cerrado',
+ 'Confirm!' => 'Confirmar',
+ 'Continue' => 'Continuar',
+ 'Cost' => 'Costo',
+ 'Current' => 'Actual',
+ 'Date' => 'Fecha',
+ 'Date missing!' => '¡Falta la fecha!',
+ 'Delete' => 'Borrar',
+ 'Description' => 'Descripción',
+ 'Employee' => 'Colaborador/Empleado',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Month' => 'Mes',
+ 'Notes' => 'Notas',
+ 'Open' => 'Abierto',
+ 'PDF' => 'PDF',
+ 'Period' => 'Periodo',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Imprimir',
+ 'Print and Save' => 'Imprimir y Registrar',
+ 'Printed' => 'Impreso',
+ 'Project Number' => 'Número del Proyecto',
+ 'Project Number missing!' => '¡Falta el Número de Proyecto!',
+ 'Qty' => 'Cantidad',
+ 'Quarter' => 'Trimestre',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Screen' => 'Pantalla',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Startdate' => 'Fecha inicial',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Update' => 'Actualizar',
+ 'Warning!' => 'Alerta!',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'imprimir' => 'print',
+ 'imprimir_y_registrar' => 'print_and_save',
+ 'guardar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/co/locales.pl b/locale/co/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/co/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/co/login b/locale/co/login
new file mode 100755
index 00000000..c3d1eb8b
--- /dev/null
+++ b/locale/co/login
@@ -0,0 +1,24 @@
+$self{texts} = {
+ 'Company' => 'Empresa',
+ 'Continue' => 'Continuar',
+ 'Dataset is newer than version!' => 'La base de datos está más actual que la versión del programa',
+ 'Incorrect Dataset version!' => 'Versión de base de datos incorrecta',
+ 'Login' => 'Entrar',
+ 'Name' => 'Nombre',
+ 'Password' => 'Contraseña',
+ 'Upgrading to Version' => 'Actulaizando a versión',
+ 'Version' => 'Versión',
+ 'You did not enter a name!' => 'No ha introducido el nombre',
+ 'done' => 'hecho',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ 'entrar' => 'login',
+};
+
+1;
+
diff --git a/locale/co/menu b/locale/co/menu
new file mode 100755
index 00000000..00611439
--- /dev/null
+++ b/locale/co/menu
@@ -0,0 +1,135 @@
+$self{texts} = {
+ 'AP' => 'Facturas de Proveedores',
+ 'AP Aging' => 'Cartera',
+ 'AP Transaction' => 'Transaccion Proveedor',
+ 'AR' => 'Factura de Ventas',
+ 'AR Aging' => 'Cartera ',
+ 'AR Transaction' => 'Gestión de cobro',
+ 'Accounting Menu' => 'Menú general',
+ 'Add Account' => 'Añadir cuenta',
+ 'Add Assembly' => 'Añadir compuesto',
+ 'Add Business' => 'Agregar Empresa',
+ 'Add Customer' => 'Añadir cliente',
+ 'Add Department' => 'Agregar Centro de Costos',
+ 'Add Employee' => 'Agregar Empleado',
+ 'Add GIFI' => 'Añadir cuenta PUC',
+ 'Add Group' => 'Agregar Grupo',
+ 'Add Labor/Overhead' => 'Agregar Honorarios',
+ 'Add Language' => 'Agregar Idioma',
+ 'Add Part' => 'Añadir artículo',
+ 'Add Pricegroup' => 'Añadir Grupo de Precios',
+ 'Add Project' => 'Añadir proyecto',
+ 'Add SIC' => 'Agregar SIC',
+ 'Add Service' => 'Añadir servicio',
+ 'Add Transaction' => 'Añadir Transacción',
+ 'Add Vendor' => 'Añadir proveedor',
+ 'Add Warehouse' => 'Agregar Bodega',
+ 'All Items' => 'Todo',
+ 'Assemblies' => 'Compuestos',
+ 'Audit Control' => 'Control de auditoría',
+ 'Backup' => 'Copia de seguridad de los datos',
+ 'Balance Sheet' => 'Hoja de balance',
+ 'Bin List' => 'Lista Empaque',
+ 'Bin Lists' => 'Listas Empaque',
+ 'Cash' => 'Efectivo',
+ 'Chart of Accounts' => 'Plan de cuentas',
+ 'Check' => 'Cheque',
+ 'Components' => 'Componentes',
+ 'Customers' => 'Clientes',
+ 'Defaults' => 'Preferencias',
+ 'Departments' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Employees' => 'Empleados',
+ 'General Ledger' => 'Notas de Contabilidad',
+ 'Goods & Services' => 'Bienes y servicios',
+ 'Groups' => 'Grupos',
+ 'HR' => 'Recursos Humanos',
+ 'HTML Templates' => 'Plantillas HTML',
+ 'History' => 'Historial',
+ 'Income Statement' => 'Estado de Resultados',
+ 'Invoice' => 'Factura de Venta',
+ 'LaTeX Templates' => 'Plantillas LaTeX',
+ 'Labor/Overhead' => 'Honorarios',
+ 'Language' => 'Idioma',
+ 'List Accounts' => 'Mostrar Plan Único de Cuentas',
+ 'List Businesses' => 'Mostrar empresas',
+ 'List Departments' => 'Mostrar Centro de Costos',
+ 'List GIFI' => 'Mostrar PUC',
+ 'List Languages' => 'Mostrar Idiomas',
+ 'List Projects' => 'Mostrar Projectos',
+ 'List SIC' => 'Mostrar SIC',
+ 'List Warehouses' => 'Mostar bodegas',
+ 'Logout' => 'Salir',
+ 'New Window' => 'Nueva Ventana',
+ 'Non-taxable' => 'Sin Impuestos',
+ 'Open' => 'Abierto',
+ 'Order Entry' => 'Cotizaciones y pedidos',
+ 'Outstanding' => 'Impagados',
+ 'POS' => 'Punto de Venta',
+ 'POS Invoice' => 'Factura Punto de Venta',
+ 'Packing List' => 'Albarán',
+ 'Packing Lists' => 'Lista de empaque',
+ 'Parts' => 'Artículos',
+ 'Payment' => 'Comprobante de Egreso',
+ 'Payments' => 'Pagos',
+ 'Pick List' => 'Lista de Empaque',
+ 'Pick Lists' => 'Listas de Empaque',
+ 'Preferences' => 'Preferencias',
+ 'Pricegroups' => 'Grupos de Precios',
+ 'Print' => 'Imprimir',
+ 'Projects' => 'Proyectos',
+ 'Purchase Order' => 'Pedido',
+ 'Purchase Orders' => 'Pedidos',
+ 'Quotation' => 'Cotización',
+ 'Quotations' => 'Cotizaciones',
+ 'RFQ' => 'Solicitar Cotización',
+ 'RFQs' => 'Cotizaciones solicitados',
+ 'Receipt' => 'Recibo',
+ 'Receipts' => 'Recibos',
+ 'Receive' => 'Recibir',
+ 'Reconciliation' => 'Reconciliación',
+ 'Reports' => 'Informes',
+ 'SIC' => 'SIC',
+ 'Sale' => 'Venta',
+ 'Sales Invoice' => 'Facturas de Ventas',
+ 'Sales Invoices' => 'Factura de Venta',
+ 'Sales Order' => 'Orden de Venta',
+ 'Sales Orders' => 'Ordenes de Venta',
+ 'Save to File' => 'Guardar en un archivo',
+ 'Search' => 'Búsqueda',
+ 'Send by E-Mail' => 'Enviar por correo electrónico',
+ 'Services' => 'Servicios',
+ 'Ship' => 'Envio',
+ 'Shipping' => 'Envio',
+ 'Statement' => 'Estado de cuenta',
+ 'Stock Assembly' => 'Inventariar compuesto',
+ 'Stylesheet' => 'Hoja de estilo',
+ 'System' => 'Sistema',
+ 'Tax collected' => 'Impuestos cobrados Clientes',
+ 'Tax paid' => 'Impuestos pagados',
+ 'Text Templates' => 'Plantillas de Texto',
+ 'Transactions' => 'Transacciones',
+ 'Transfer' => 'Transferencia',
+ 'Transfer Inventory' => 'Transferir Inventario',
+ 'Translations' => 'Traducciones',
+ 'Trial Balance' => 'Balance de Comprobación',
+ 'Type of Business' => 'Clase de Negocio',
+ 'Vendor Invoice' => 'Factura de Proveedor',
+ 'Vendors' => 'Proveedores',
+ 'Version' => 'Versión',
+ 'Warehouses' => 'Bodegas',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Work Orders' => 'Ordenes de Trabajo',
+ 'Yearend' => 'Fin del Año',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/co/oe b/locale/co/oe
new file mode 100755
index 00000000..54cfa783
--- /dev/null
+++ b/locale/co/oe
@@ -0,0 +1,321 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menú general',
+ 'Add Exchange Rate' => 'Agregar Tasa de Cambio',
+ 'Add Purchase Order' => 'Añadir pedido',
+ 'Add Quotation' => 'Agregar Cotización',
+ 'Add Request for Quotation' => 'Pedir Cotización',
+ 'Add Sales Invoice' => 'Añadir factura',
+ 'Add Sales Order' => 'Añadir cotización',
+ 'Add Vendor Invoice' => 'Agregar Factura de Proveedor',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Order Number' => '¿Esta seguro de que desea borrar la orden número?',
+ 'Are you sure you want to delete Quotation Number' => 'Seguro que quiere borrar la cotización número',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Dirección Factura',
+ 'Bin' => 'Empaque',
+ 'Bin List' => 'Lista Empaque',
+ 'Business' => 'Empresa',
+ 'C' => 'C',
+ 'Cannot delete order!' => '¡No se puede borrar el pedido!',
+ 'Cannot delete quotation!' => 'No puedo borrar cotización!',
+ 'Cannot save order!' => '¡No se puede guardar el pedido!',
+ 'Cannot save quotation!' => 'No puedo guardar cotización!',
+ 'Cc' => 'Cc',
+ 'City' => 'Ciudad',
+ 'Closed' => 'Cerrado',
+ 'Company Name' => 'Nombre de la empresa',
+ 'Confirm!' => 'Confirmar',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Cost' => 'Costo',
+ 'Could not save!' => 'No pude guardar',
+ 'Could not transfer Inventory!' => 'No puedo transferir inventario!',
+ 'Country' => 'País',
+ 'Credit Limit' => 'Limite de credito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer Number' => 'Número del cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Date Received' => 'Fecha recibido',
+ 'Date received missing!' => 'Faltas datos',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Department' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Done' => 'Hecho',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'E-mailed' => 'Enviado por mail',
+ 'Edit Purchase Order' => 'Editar Pedido',
+ 'Edit Quotation' => 'Editar Cotización',
+ 'Edit Request for Quotation' => 'Editar Solicitud de Cotización',
+ 'Edit Sales Order' => 'Editar Cotización',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate missing!' => 'Falta Tasa de Cambio',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'De',
+ 'Group' => 'Grupo',
+ 'ID' => 'ID',
+ 'In-line' => 'Incrustado',
+ 'Include in Report' => 'Incluir en informe',
+ 'Internal Notes' => 'Notas internas',
+ 'Inventory saved!' => 'Inventario guardado!',
+ 'Inventory transferred!' => 'Inventario transferido!',
+ 'Invoice' => 'Factura de Venta',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number missing!' => 'No se ha definido el número de la factura',
+ 'Item not on file!' => 'El concepto no se encuentra en ningún archivo',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Manager' => 'Administrador',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Message' => 'Mensaje',
+ 'Month' => 'Mes',
+ 'No.' => 'No.',
+ 'Notes' => 'Notas',
+ 'Nothing entered!' => 'Información Incompleta',
+ 'Nothing selected!' => '¡No es seleccionado nada!',
+ 'Nothing to transfer!' => 'Nada para transferir',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se ha definido el número en la fila',
+ 'O' => 'O',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Date' => 'Fecha de elaboración',
+ 'Order Date missing!' => 'No se ha definido la fecha de la elaboración',
+ 'Order Number' => 'Número de orden',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'Order deleted!' => '¡Orden borrada!',
+ 'Order saved!' => 'Pedido guardado',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Albarán',
+ 'Packing List Date missing!' => 'No se ha definido la fecha del albarán',
+ 'Packing List Number missing!' => 'No se ha definido el número del albarán',
+ 'Part' => 'Artículo',
+ 'Period' => 'Periodo',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Empaque',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Print and Save' => 'Imprimir y Registrar',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => 'Proyecto no existe!',
+ 'Purchase Order' => 'Pedido',
+ 'Purchase Orders' => 'Pedidos',
+ 'Qty' => 'Cantidad',
+ 'Quarter' => 'Trimestre',
+ 'Quotation' => 'Cotización',
+ 'Quotation ' => 'Cotización ',
+ 'Quotation Date' => 'Fecha de cotización',
+ 'Quotation Date missing!' => 'Falta fecha de cotización',
+ 'Quotation Number' => 'Número cotización',
+ 'Quotation Number missing!' => 'Falta número de cotización',
+ 'Quotation deleted!' => 'Cotización borrado',
+ 'Quotations' => 'Cotizaciones',
+ 'RFQ' => 'Solicitar Cotización',
+ 'RFQ ' => 'Solicitud de Cotización ',
+ 'RFQ Number' => 'Número de Cotización',
+ 'Recd' => 'Cobrado',
+ 'Receive Merchandise' => 'Recibir mercancia',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Resto',
+ 'Request for Quotation' => 'Solicitar Cotización',
+ 'Request for Quotations' => 'Solicitar Cotizaciones',
+ 'Required by' => 'Aceptado el',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Facturas de Ventas',
+ 'Sales Order' => 'Orden de Venta',
+ 'Sales Orders' => 'Ordenes de Venta',
+ 'Salesperson' => 'Vendedor',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Selecciona uno de los proyectos abajo',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Select txt, postscript or PDF!' => '¡Seleccione txt, postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'No de Serial',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Envio',
+ 'Ship Merchandise' => 'Enviar Mercancía',
+ 'Ship to' => 'Destino',
+ 'Ship via' => 'Envio por',
+ 'Shipping Address' => 'Dirección del envio',
+ 'Shipping Date' => 'Fecha del Envio',
+ 'Shipping Date missing!' => 'Falta Fecha del Envio',
+ 'Shipping Point' => 'Destino',
+ 'Startdate' => 'Fecha inicial',
+ 'State/Province' => 'Departamento',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Tax' => 'Impuestos',
+ 'Tax Included' => 'Impuestos incluidos en el precio',
+ 'Terms' => 'Condiciones',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Descuento',
+ 'Transfer' => 'Transferencia',
+ 'Transfer Inventory' => 'Transferir Inventario',
+ 'Transfer to' => 'Transferir a',
+ 'Translation not on file!' => 'No hay traducción',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Valid until' => 'Válido hasta',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice' => 'Factura de Proveedor',
+ 'Vendor Number' => 'Código Vendedor',
+ 'Vendor missing!' => '¡Falta el proveedor!',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Warehouse' => 'Bodega',
+ 'Warning!' => 'Alerta!',
+ 'What type of item is this?' => '¿De qué tipo es este concepto?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'days' => 'días',
+ 'ea' => 'unid.',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'hecho' => 'done',
+ 'correo_electrónico' => 'e_mail',
+ 'imprimir' => 'print',
+ 'imprimir_y_registrar' => 'print_and_save',
+ 'pedido' => 'purchase_order',
+ 'cotización' => 'quotation',
+ 'cotización_' => 'quotation_',
+ 'solicitar_cotización' => 'rfq',
+ 'solicitud_de_cotización_' => 'rfq_',
+ 'facturas_de_ventas' => 'sales_invoice',
+ 'orden_de_venta' => 'sales_order',
+ 'guardar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'destino' => 'ship_to',
+ 'transferencia' => 'transfer',
+ 'actualizar' => 'update',
+ 'factura_de_proveedor' => 'vendor_invoice',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/co/pe b/locale/co/pe
new file mode 100755
index 00000000..e8720c60
--- /dev/null
+++ b/locale/co/pe
@@ -0,0 +1,141 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menú general',
+ 'Active' => 'Activo',
+ 'Add' => 'Añadir',
+ 'Add Group' => 'Agregar Grupo',
+ 'Add Pricegroup' => 'Añadir Grupo de Precios',
+ 'Add Project' => 'Añadir proyecto',
+ 'Address' => 'Dirección',
+ 'All' => 'Todos',
+ 'Amount' => 'Total',
+ 'Assembly' => 'Compuesto',
+ 'Bin' => 'Empaque',
+ 'Continue' => 'Continuar',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Delete' => 'Borrar',
+ 'Description' => 'Descripción',
+ 'Description Translations' => 'Descripción Traducción',
+ 'Detail' => 'Detalle',
+ 'Edit Description Translations' => 'Editar Descripción Traducción',
+ 'Edit Group' => 'Editar Grupo',
+ 'Edit Pricegroup' => 'Editar Grupo de Precios',
+ 'Edit Project' => 'Editar Proyecto',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Enddate' => 'Fecha final',
+ 'From' => 'De',
+ 'Group' => 'Grupo',
+ 'Group Translations' => 'Traducción Grupos',
+ 'Group deleted!' => 'Grupo eleminado!',
+ 'Group missing!' => 'Falta el grupo',
+ 'Group saved!' => 'Grupo guardado!',
+ 'Groups' => 'Grupos',
+ 'Income' => 'Ingreso',
+ 'Language' => 'Idioma',
+ 'Languages not defined!' => 'Idiomas no configuradas!',
+ 'Link Accounts' => 'Enlazar cuentas',
+ 'List Price' => 'Precio de Lista',
+ 'Month' => 'Mes',
+ 'Notes' => 'Notas',
+ 'Nothing selected!' => '¡No es seleccionado nada!',
+ 'Number' => 'Número',
+ 'Orphaned' => 'Huérfano',
+ 'Period' => 'Periodo',
+ 'Pricegroup' => 'Grupo de Precios',
+ 'Pricegroup deleted!' => 'Grupo Borrado!',
+ 'Pricegroup missing!' => 'Falta Grupo!',
+ 'Pricegroup saved!' => 'Guardado!',
+ 'Pricegroups' => 'Grupos de Precios',
+ 'Project' => 'Proyecto',
+ 'Project Description Translations' => 'Descripción Traducción del Proyecto',
+ 'Project Number' => 'Número del Proyecto',
+ 'Project deleted!' => '¡Proyecto borrado!',
+ 'Project saved!' => '¡Proyecto guardado ',
+ 'Projects' => 'Proyectos',
+ 'Qty' => 'Cantidad',
+ 'Quarter' => 'Trimestre',
+ 'Save' => 'Guardar',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Sell Price' => 'Precio de venta',
+ 'Startdate' => 'Fecha inicial',
+ 'Summary' => 'Résumen',
+ 'Tax' => 'Impuestos',
+ 'To' => 'Hasta ',
+ 'Translation' => 'Traducción',
+ 'Translation deleted!' => 'Traducción Borrada!',
+ 'Translations saved!' => 'Guardado',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Updated' => '¡Actualizado!',
+ 'Vendor' => 'Proveedor',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Weight' => 'Peso',
+ 'Year' => 'Año',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'agregar_grupo' => 'add_group',
+ 'añadir_grupo_de_precios' => 'add_pricegroup',
+ 'añadir_proyecto' => 'add_project',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'guardar' => 'save',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/co/pos b/locale/co/pos
new file mode 100755
index 00000000..51506574
--- /dev/null
+++ b/locale/co/pos
@@ -0,0 +1,80 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menú general',
+ 'Add POS Invoice' => 'Agregar Factura POS',
+ 'Amount' => 'Total',
+ 'Business' => 'Empresa',
+ 'Cannot post transaction!' => '¡No se puede registrar la transacción',
+ 'Change' => 'Cambiar',
+ 'Continue' => 'Continuar',
+ 'Credit Limit' => 'Limite de credito',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Delete' => 'Borrar',
+ 'Department' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Edit POS Invoice' => 'Editar Factura Punto de Venta',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate missing!' => 'Falta Tasa de Cambio',
+ 'Extended' => 'Extendido',
+ 'From' => 'De',
+ 'Language' => 'Idioma',
+ 'Memo' => 'Memo',
+ 'Month' => 'Mes',
+ 'Number' => 'Número',
+ 'Open' => 'Abierto',
+ 'Period' => 'Periodo',
+ 'Post' => 'Registrar',
+ 'Posted!' => 'Agregado!',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Printed' => 'Impreso',
+ 'Qty' => 'Cantidad',
+ 'Quarter' => 'Trimestre',
+ 'Receipts' => 'Recibos',
+ 'Record in' => 'Registrar en',
+ 'Remaining' => 'Resto',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Pantalla',
+ 'Source' => 'Fuente',
+ 'Subtotal' => 'Subtotal',
+ 'Tax Included' => 'Impuestos incluidos en el precio',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Descuento',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Year' => 'Año',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'registrar' => 'post',
+ 'imprimir' => 'print',
+ 'imprimir_y_registrar' => 'print_and_post',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/co/ps b/locale/co/ps
new file mode 100755
index 00000000..68af829c
--- /dev/null
+++ b/locale/co/ps
@@ -0,0 +1,358 @@
+$self{texts} = {
+ 'AP Aging' => 'Cartera',
+ 'AP Outstanding' => 'Impagados Proveedores',
+ 'AP Transaction' => 'Transaccion Proveedor',
+ 'AP Transactions' => 'Gestiones de pagos',
+ 'AR Aging' => 'Cartera ',
+ 'AR Outstanding' => 'Impagados Cartera',
+ 'AR Transaction' => 'Gestión de cobro',
+ 'AR Transactions' => 'Gestiones de cobros',
+ 'Account' => 'Cuenta',
+ 'Account Number' => 'Número de cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Accounts' => 'Cuentas',
+ 'Accrual' => 'Acumulado',
+ 'Add AP Transaction' => 'Añadir Asiento de CxP',
+ 'Add AR Transaction' => 'Añadir Asiento de CxC',
+ 'Add POS Invoice' => 'Agregar Factura POS',
+ 'Add Purchase Order' => 'Añadir pedido',
+ 'Add Quotation' => 'Agregar Cotización',
+ 'Add Request for Quotation' => 'Pedir Cotización',
+ 'Add Sales Invoice' => 'Añadir factura',
+ 'Add Sales Order' => 'Añadir cotización',
+ 'Address' => 'Dirección',
+ 'All Accounts' => 'Todas las Cuentas',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Cantidad adeudada',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => '¿Esta seguro de que desea borrar la factura número',
+ 'Are you sure you want to delete Transaction' => '¿Está seguro de que desea borrar la transacción?',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Balance',
+ 'Balance Sheet' => 'Hoja de balance',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Dirección Factura',
+ 'Bin' => 'Empaque',
+ 'Bin List' => 'Lista Empaque',
+ 'Business' => 'Empresa',
+ 'Cannot delete invoice!' => '¡No se puede borrar la factura!',
+ 'Cannot delete transaction!' => '¡No se puede borrar la transacción!',
+ 'Cannot post invoice for a closed period!' => '¡No se puede registrar una factura en un periodo ya cerrado!',
+ 'Cannot post invoice!' => '¡No se puede registrar la factura!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo ya cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar una transacción para un periodo cerrado',
+ 'Cannot post transaction!' => '¡No se puede registrar la transacción',
+ 'Cash' => 'Efectivo',
+ 'Cc' => 'Cc',
+ 'Change' => 'Cambiar',
+ 'Check' => 'Cheque',
+ 'City' => 'Ciudad',
+ 'Closed' => 'Cerrado',
+ 'Company Name' => 'Nombre de la empresa',
+ 'Compare to' => 'Comparar con',
+ 'Confirm!' => 'Confirmar',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Country' => 'País',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Limite de credito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Current Earnings' => 'Resultado del periodo',
+ 'Customer' => 'Cliente',
+ 'Customer Number' => 'Número del cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Date Paid' => 'Fecha de pago',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Decimalplaces' => 'Lugar de los decimales',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Department' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'Due Date missing!' => 'Falta la fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail Statement to' => 'Enviar comprobante por correo electrónico a',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'E-mailed' => 'Enviado por mail',
+ 'Edit AP Transaction' => 'Editar Asiento de CxP',
+ 'Edit AR Transaction' => 'Editar Asiento de CxC',
+ 'Edit POS Invoice' => 'Editar Factura Punto de Venta',
+ 'Edit Sales Invoice' => 'Editar Factura de Venta',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate for payment missing!' => 'Falta Tasa de Cambio',
+ 'Exchange rate missing!' => 'Falta Tasa de Cambio',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'De',
+ 'GIFI' => 'Plan Único de Cuentas (PUC)',
+ 'Group' => 'Grupo',
+ 'Heading' => 'Encabezado',
+ 'ID' => 'ID',
+ 'In-line' => 'Incrustado',
+ 'Include Exchange Rate Difference' => 'Incluir Diferencia por Tasa de Cambio',
+ 'Include in Report' => 'Incluir en informe',
+ 'Income Statement' => 'Estado de Resultados',
+ 'Internal Notes' => 'Notas internas',
+ 'Invoice' => 'Factura de Venta',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Invoice Number missing!' => 'No se ha definido el número de la factura',
+ 'Invoice deleted!' => '¡Factura borrada!',
+ 'Item not on file!' => 'El concepto no se encuentra en ningún archivo',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Language' => 'Idioma',
+ 'Manager' => 'Administrador',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Message' => 'Mensaje',
+ 'Method' => 'Metódo',
+ 'Month' => 'Mes',
+ 'N/A' => 'Sin respuesta',
+ 'No.' => 'No.',
+ 'Non-taxable Purchases' => 'Compras sin Impuestos',
+ 'Non-taxable Sales' => 'Ventas sin Impuestos',
+ 'Notes' => 'Notas',
+ 'Nothing selected!' => '¡No es seleccionado nada!',
+ 'Nothing to print!' => '¡No hay nada que imprimir!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se ha definido el número en la fila',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Date missing!' => 'No se ha definido la fecha de la elaboración',
+ 'Order Number' => 'Número de orden',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Albarán',
+ 'Packing List Date missing!' => 'No se ha definido la fecha del albarán',
+ 'Packing List Number missing!' => 'No se ha definido el número del albarán',
+ 'Paid' => 'Pagado',
+ 'Part' => 'Artículo',
+ 'Payment date missing!' => 'No se encuentra la fecha de pago',
+ 'Payments' => 'Pagos',
+ 'Period' => 'Periodo',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Empaque',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como Nuevo',
+ 'Posted!' => 'Agregado!',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project Number' => 'Número del Proyecto',
+ 'Project Transactions' => 'Transacciones del Projecto',
+ 'Project not on file!' => 'Proyecto no existe!',
+ 'Purchase Order' => 'Pedido',
+ 'Qty' => 'Cantidad',
+ 'Quarter' => 'Trimestre',
+ 'Quotation' => 'Cotización',
+ 'Quotation Date missing!' => 'Falta fecha de cotización',
+ 'Quotation Number missing!' => 'Falta número de cotización',
+ 'Recd' => 'Cobrado',
+ 'Receipt' => 'Recibo',
+ 'Receipts' => 'Recibos',
+ 'Record in' => 'Registrar en',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Resto',
+ 'Report for' => 'Informe para',
+ 'Required by' => 'Aceptado el',
+ 'SKU' => 'SKU',
+ 'Sales Invoice.' => 'Factura de Ventas.',
+ 'Sales Order' => 'Orden de Venta',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Pantalla',
+ 'Select all' => 'Guardar todo',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Selecciona uno de los proyectos abajo',
+ 'Select payment' => '¡Seleccione Pago!',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Select txt, postscript or PDF!' => '¡Seleccione txt, postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'No de Serial',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Envio',
+ 'Ship to' => 'Destino',
+ 'Ship via' => 'Envio por',
+ 'Shipping Address' => 'Dirección del envio',
+ 'Shipping Point' => 'Destino',
+ 'Source' => 'Fuente',
+ 'Standard' => 'Estándard',
+ 'Startdate' => 'Fecha inicial',
+ 'State/Province' => 'Departamento',
+ 'Statement' => 'Estado de cuenta',
+ 'Statement sent to' => 'Estado de cuenta enviado a',
+ 'Statements sent to printer!' => '¡Estado de cuenta enviado a la impresora!',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Résumen',
+ 'Tax' => 'Impuestos',
+ 'Tax Included' => 'Impuestos incluidos en el precio',
+ 'Tax collected' => 'Impuestos cobrados Clientes',
+ 'Tax paid' => 'Impuestos pagados',
+ 'Till' => 'Caja',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Descuento',
+ 'Transaction' => 'Asiento',
+ 'Transaction deleted!' => '¡Transacción borrada!',
+ 'Transaction posted!' => '¡Transacción registrada!',
+ 'Translation not on file!' => 'No hay traducción',
+ 'Trial Balance' => 'Balance de Comprobación',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice.' => 'Factura de Proveedor.',
+ 'Vendor Number' => 'Código Vendedor',
+ 'Vendor missing!' => '¡Falta el proveedor!',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Warning!' => 'Alerta!',
+ 'What type of item is this?' => '¿De qué tipo es este concepto?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'as at' => 'al',
+ 'ea' => 'unid.',
+ 'for Period' => 'para el periodo',
+ 'posted!' => 'Guardado',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'transaccion_proveedor' => 'ap_transaction',
+ 'gestión_de_cobro' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'correo_electrónico' => 'e_mail',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'imprimir_y_registrar' => 'print_and_post',
+ 'factura_de_ventas_' => 'sales_invoice_',
+ 'orden_de_venta' => 'sales_order',
+ 'guardar_todo' => 'select_all',
+ 'destino' => 'ship_to',
+ 'actualizar' => 'update',
+ 'factura_de_proveedor_' => 'vendor_invoice_',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/co/pw b/locale/co/pw
new file mode 100755
index 00000000..d5ed0e14
--- /dev/null
+++ b/locale/co/pw
@@ -0,0 +1,13 @@
+$self{texts} = {
+ 'Continue' => 'Continuar',
+ 'Password' => 'Contraseña',
+ 'Session expired!' => '¡Sesión Expiró!',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/co/rc b/locale/co/rc
new file mode 100755
index 00000000..892d5708
--- /dev/null
+++ b/locale/co/rc
@@ -0,0 +1,79 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Balance',
+ 'Beginning Balance' => 'Balance Inicial',
+ 'Cleared' => 'Borrado',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Current' => 'Actual',
+ 'Date' => 'Fecha',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Difference' => 'Diferencia',
+ 'Done' => 'Hecho',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'De',
+ 'Include Exchange Rate Difference' => 'Incluir Diferencia por Tasa de Cambio',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Month' => 'Mes',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Out of balance!' => '¡Fuera de balance!',
+ 'Outstanding' => 'Impagados',
+ 'Period' => 'Periodo',
+ 'Quarter' => 'Trimestre',
+ 'R' => 'R',
+ 'Reconciliation' => 'Reconciliación',
+ 'Reconciliation Report' => 'Reporte de Reconciliación',
+ 'Select all' => 'Guardar todo',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Source' => 'Fuente',
+ 'Statement Balance' => 'Balance de cuenta',
+ 'Summary' => 'Résumen',
+ 'To' => 'Hasta ',
+ 'Update' => 'Actualizar',
+ 'Year' => 'Año',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'continuar' => 'continue',
+ 'hecho' => 'done',
+ 'guardar_todo' => 'select_all',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/co/rp b/locale/co/rp
new file mode 100755
index 00000000..6da1f831
--- /dev/null
+++ b/locale/co/rp
@@ -0,0 +1,179 @@
+$self{texts} = {
+ 'AP Aging' => 'Cartera',
+ 'AR Aging' => 'Cartera ',
+ 'Account' => 'Cuenta',
+ 'Account Number' => 'Número de cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Accounts' => 'Cuentas',
+ 'Accrual' => 'Acumulado',
+ 'Address' => 'Dirección',
+ 'All Accounts' => 'Todas las Cuentas',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Balance',
+ 'Balance Sheet' => 'Hoja de balance',
+ 'Bcc' => 'Bcc',
+ 'Cash' => 'Efectivo',
+ 'Cc' => 'Cc',
+ 'Compare to' => 'Comparar con',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Credit' => 'Crédito',
+ 'Curr' => 'Mon.',
+ 'Current' => 'Actual',
+ 'Current Earnings' => 'Resultado del periodo',
+ 'Customer' => 'Cliente',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Decimalplaces' => 'Lugar de los decimales',
+ 'Department' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail Statement to' => 'Enviar comprobante por correo electrónico a',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'De',
+ 'GIFI' => 'Plan Único de Cuentas (PUC)',
+ 'Heading' => 'Encabezado',
+ 'ID' => 'ID',
+ 'In-line' => 'Incrustado',
+ 'Include Exchange Rate Difference' => 'Incluir Diferencia por Tasa de Cambio',
+ 'Include in Report' => 'Incluir en informe',
+ 'Income Statement' => 'Estado de Resultados',
+ 'Invoice' => 'Factura de Venta',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Language' => 'Idioma',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Message' => 'Mensaje',
+ 'Method' => 'Metódo',
+ 'Month' => 'Mes',
+ 'N/A' => 'Sin respuesta',
+ 'Non-taxable Purchases' => 'Compras sin Impuestos',
+ 'Non-taxable Sales' => 'Ventas sin Impuestos',
+ 'Nothing selected!' => '¡No es seleccionado nada!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Order' => 'Orden',
+ 'PDF' => 'PDF',
+ 'Payments' => 'Pagos',
+ 'Period' => 'Periodo',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Imprimir',
+ 'Project' => 'Proyecto',
+ 'Project Number' => 'Número del Proyecto',
+ 'Project Transactions' => 'Transacciones del Projecto',
+ 'Project not on file!' => 'Proyecto no existe!',
+ 'Quarter' => 'Trimestre',
+ 'Receipts' => 'Recibos',
+ 'Reference' => 'Referencia',
+ 'Report for' => 'Informe para',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Pantalla',
+ 'Select all' => 'Guardar todo',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Selecciona uno de los proyectos abajo',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Source' => 'Fuente',
+ 'Standard' => 'Estándard',
+ 'Startdate' => 'Fecha inicial',
+ 'Statement' => 'Estado de cuenta',
+ 'Statement sent to' => 'Estado de cuenta enviado a',
+ 'Statements sent to printer!' => '¡Estado de cuenta enviado a la impresora!',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Résumen',
+ 'Tax' => 'Impuestos',
+ 'Tax collected' => 'Impuestos cobrados Clientes',
+ 'Tax paid' => 'Impuestos pagados',
+ 'Till' => 'Caja',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Trial Balance' => 'Balance de Comprobación',
+ 'Vendor' => 'Proveedor',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Warning!' => 'Alerta!',
+ 'Year' => 'Año',
+ 'as at' => 'al',
+ 'for Period' => 'para el periodo',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuar' => 'continue',
+ 'correo_electrónico' => 'e_mail',
+ 'imprimir' => 'print',
+ 'guardar_todo' => 'select_all',
+};
+
+1;
+
diff --git a/locale/co_utf/COPYING b/locale/co_utf/COPYING
new file mode 100755
index 00000000..7f920eb2
--- /dev/null
+++ b/locale/co_utf/COPYING
@@ -0,0 +1,27 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2005
+#
+# Spanish texts:
+#
+# Adoption to Colombian Accounting Terms:
+#
+# Authors: Dirk Enrique Seiffert <info@caribenet.com>
+# Lourdes Mejía Martinez <lourdes@caribenet.com>
+# Silfredo Godoy Chavez <silfredo@caribenet.com>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/co_utf/LANGUAGE b/locale/co_utf/LANGUAGE
new file mode 100755
index 00000000..9a13146b
--- /dev/null
+++ b/locale/co_utf/LANGUAGE
@@ -0,0 +1 @@
+Spanish/Colombia (UTF-8)
diff --git a/locale/co_utf/Num2text b/locale/co_utf/Num2text
new file mode 100755
index 00000000..03fe16d0
--- /dev/null
+++ b/locale/co_utf/Num2text
@@ -0,0 +1,211 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (C) 2002
+#
+# Author: Dieter Simader
+# Email: dsimader@sql-ledger.org
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+# Language: Spanish UTF-8
+# Contributors:
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#======================================================================
+
+
+sub init {
+ my $self = shift;
+
+ %{ $self->{numbername} } =
+ (0 => 'cero',
+ 1 => 'un',
+ '1o' => 'uno',
+ 2 => 'dos',
+ 3 => 'tres',
+ 4 => 'cuatro',
+ 5 => 'cinco',
+ 6 => 'seis',
+ 7 => 'siete',
+ 8 => 'ocho',
+ 9 => 'nueve',
+ 10 => 'diez',
+ 11 => 'once',
+ 12 => 'doce',
+ 13 => 'trece',
+ 14 => 'catorce',
+ 15 => 'quince',
+ 16 => 'dieciséis',
+ 17 => 'diecisiete',
+ 18 => 'dieciocho',
+ 19 => 'diecinueve',
+ 20 => 'veinte',
+ 21 => 'veintiún',
+ '21o' => 'veintiuno',
+ 22 => 'veintidós',
+ 23 => 'veintitrés',
+ 24 => 'veinticuatro',
+ 25 => 'veinticinco',
+ 26 => 'veintiséis',
+ 27 => 'veintisiete',
+ 28 => 'veintiocho',
+ 29 => 'veintinueve',
+ 30 => 'treinta',
+ 40 => 'cuarenta',
+ 50 => 'cincuenta',
+ 60 => 'sesenta',
+ 70 => 'setenta',
+ 80 => 'ochenta',
+ 90 => 'noventa',
+ 500 => 'quinientos',
+ 700 => 'setecientos',
+ 900 => 'novecientos',
+ 10**2 => 'ciento',
+ 10**3 => 'mil',
+ 10**6 => 'millón',
+ 10**12 => 'billón',
+ );
+
+}
+
+
+sub num2text {
+ my ($self, $amount) = @_;
+
+ return $self->{numbername}{0} unless $amount;
+
+ my @textnumber = ();
+
+ # split amount into chunks of 3
+ my @num = reverse split //, abs($amount);
+ my @numblock = ();
+ my $stripun = 0;
+ my @a = ();
+ my $i;
+
+ while (@num) {
+ @a = ();
+ for (1 .. 3) {
+ push @a, shift @num;
+ }
+ push @numblock, join / /, reverse @a;
+ }
+
+ # special case for 1000
+ if ($numblock[1] eq '1' && $numblock[0] gt '000') {
+ # remove first array element from textnumber
+ $stripun = 1;
+ }
+
+ while (@numblock) {
+
+ $i = $#numblock;
+ @num = split //, $numblock[$i];
+
+ $numblock[$i] *= 1;
+
+ if ($numblock[$i] == 0) {
+ pop @numblock;
+ next;
+ }
+
+ if ($numblock[$i] > 99) {
+ if ($num[0] == 1) {
+ push @textnumber, $self->{numbername}{10**2};
+ } else {
+ # special case for 500, 700, 900
+ if (grep /$num[0]/, (5,7,9)) {
+ push @textnumber, $self->{numbername}{"${num[0]}00"};
+
+ } else {
+
+ # the one from hundreds, append cientos
+ push @textnumber, $self->{numbername}{$num[0]}.$self->{numbername}{10**2}.'s';
+
+ }
+ }
+
+ # reduce numblock
+ $numblock[$i] -= $num[0] * 100;
+ }
+
+ if ($numblock[$i] > 9) {
+ # tens
+ push @textnumber, $self->format_ten($numblock[$i], $i);
+ } elsif ($numblock[$i] > 0) {
+ # ones
+ $num = $numblock[$i];
+ $num .= 'o' if ($num == 1 && $i == 0);
+ push @textnumber, $self->{numbername}{$num};
+ }
+
+ # add thousand, million
+ if ($i) {
+ $num = 10**($i * 3);
+ if ($numblock[$i] > 1) {
+ if ($i == 2 || $i == 4) {
+ $a = $self->{numbername}{$num}."es";
+ $a =~ s/ó/o/;
+ push @textnumber, $a;
+ } elsif ($i == 3) {
+ $num = 10**($i * 2);
+ $a = "$self->{10**3} $self->{numbername}{$num}"."es";
+ $a =~ s/ó/o/;
+ push @textnumber, $a;
+ } else {
+ if ($i == 1) {
+ push @textnumber, $self->{numbername}{$num};
+ } else {
+ push @textnumber, $self->{numbername}{$num}.'s';
+ }
+ }
+ } else {
+ push @textnumber, $self->{numbername}{$num};
+ }
+ }
+
+ pop @numblock;
+
+ }
+
+ shift @textnumber if $stripun;
+
+ join ' ', @textnumber;
+
+}
+
+
+sub format_ten {
+ my ($self, $amount, $i) = @_;
+
+ my $textnumber = "";
+ my @num = split //, $amount;
+
+ if ($amount > 30) {
+ $textnumber = $self->{numbername}{$num[0]*10};
+ $amount = $num[1];
+ } else {
+ $amount .= 'o' if ($num[1] == 1 && $i == 0);
+ $textnumber = $self->{numbername}{$amount};
+ $amount = 0;
+ }
+
+ $textnumber .= " y ".$self->{numbername}{$amount} if $amount;
+
+ $textnumber;
+
+}
+
+
+1;
+
diff --git a/locale/co_utf/aa b/locale/co_utf/aa
new file mode 100755
index 00000000..525f2efa
--- /dev/null
+++ b/locale/co_utf/aa
@@ -0,0 +1,161 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Outstanding' => 'Impagados Proveedores',
+ 'AP Transaction' => 'Transaccion Proveedor',
+ 'AP Transactions' => 'Gestiones de pagos',
+ 'AR Outstanding' => 'Impagados Cartera',
+ 'AR Transaction' => 'Cuentas por Cobrar',
+ 'AR Transactions' => 'Cuentas por Cobrar',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Add AP Transaction' => 'Añadir Transacción por Pagar',
+ 'Add AR Transaction' => 'Añadir Transacción por Cobrar',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Por Pagar',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => '¿Está seguro de que desea borrar la transacción?',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Cannot delete transaction!' => '¡No se puede borrar la transacción!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo ya cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar una transacción para un periodo cerrado',
+ 'Cannot post transaction!' => '¡No se puede registrar la transacción',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Cerrado',
+ 'Confirm!' => 'Confirmar',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Limite de credito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Date' => 'Fecha',
+ 'Date Paid' => 'Fecha de pago',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Department' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'Due Date missing!' => 'Falta la fecha de vencimiento',
+ 'Edit AP Transaction' => 'Editar Asiento de CxP',
+ 'Edit AR Transaction' => 'Editar Asiento de CxC',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate for payment missing!' => 'Falta Tasa de Cambio',
+ 'Exchange rate missing!' => 'Falta Tasa de Cambio',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Invoice' => 'Factura de Venta',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Manager' => 'Administrador',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Month' => 'Mes',
+ 'No.' => 'No.',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Number' => 'Número de orden',
+ 'PO Number' => 'Número pedido',
+ 'Paid' => 'Pagado',
+ 'Payment date missing!' => 'No se encuentra la fecha de pago',
+ 'Payments' => 'Pagos',
+ 'Period' => 'Periodo',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como Nuevo',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Project' => 'Proyecto',
+ 'Quarter' => 'Trimestre',
+ 'Receipt' => 'Recibo',
+ 'Remaining' => 'Resto',
+ 'Sales Invoice.' => 'Factura de Ventas.',
+ 'Salesperson' => 'Vendedor',
+ 'Schedule' => 'Programar Recurrencia',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Ship to' => 'Destino',
+ 'Ship via' => 'Envio por',
+ 'Shipping Point' => 'Destino',
+ 'Source' => 'Fuente',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Résumen',
+ 'Tax' => 'Impuestos',
+ 'Tax Included' => 'Impuestos Incluidos',
+ 'Till' => 'Caja',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Transaction' => 'Asiento',
+ 'Transaction deleted!' => '¡Transacción borrada!',
+ 'Transaction posted!' => '¡Transacción registrada!',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice.' => 'Factura de Proveedor.',
+ 'Vendor missing!' => '¡Falta el proveedor!',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'transaccion_proveedor' => 'ap_transaction',
+ 'cuentas_por_cobrar' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'imprimir_y_registrar' => 'print_and_post',
+ 'factura_de_ventas_' => 'sales_invoice_',
+ 'programar_recurrencia' => 'schedule',
+ 'destino' => 'ship_to',
+ 'actualizar' => 'update',
+ 'factura_de_proveedor_' => 'vendor_invoice_',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/co_utf/admin b/locale/co_utf/admin
new file mode 100755
index 00000000..37b69728
--- /dev/null
+++ b/locale/co_utf/admin
@@ -0,0 +1,145 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Access Control' => 'Control de Acceso',
+ 'Accounting' => 'Contabilidad',
+ 'Add User' => 'Añadir Usuario',
+ 'Address' => 'Dirección',
+ 'Administration' => 'Administración',
+ 'Administrator' => 'Administrador',
+ 'All Datasets up to date!' => 'Todas las Bases de Datos están actualizadas',
+ 'Cannot create Lock!' => 'No puedo crear lock-file',
+ 'Change Admin Password' => 'Cambiar la contraseña del administrador',
+ 'Change Password' => 'Cambiar contraseña',
+ 'Click on login name to edit!' => 'Haga clic en el nombre de usuario por editar',
+ 'Company' => 'Empresa',
+ 'Confirm' => 'Confirmar',
+ 'Connect to' => 'Conectar a',
+ 'Continue' => 'Continuar',
+ 'Create Chart of Accounts' => 'Crear plan de cuentas',
+ 'Create Dataset' => 'Crear base de datos',
+ 'DBI not installed!' => 'No se ha instalado DBI',
+ 'Database' => 'Base de datos',
+ 'Database Administration' => 'Administración de las bases de datos',
+ 'Database Driver not checked!' => 'No se ha podido verificar el gestor de la base de datos',
+ 'Database User missing!' => 'No se ha definido el usuario de la base de datos',
+ 'Dataset' => 'Base de datos',
+ 'Dataset missing!' => 'No se ha definido la base de datos',
+ 'Dataset updated!' => 'Base de datos actualizada',
+ 'Date Format' => 'Formato de fecha',
+ 'Delete' => 'Borrar',
+ 'Delete Dataset' => 'Borrar base de datos',
+ 'Directory' => 'Directorio',
+ 'Driver' => 'Gestor',
+ 'Dropdown Limit' => 'Límite de efectivo',
+ 'E-mail' => 'Correo electrónico',
+ 'Edit User' => 'Editar Usuario',
+ 'Existing Datasets' => 'Bases de datos existentes',
+ 'Fax' => 'Fax',
+ 'Host' => 'Máquina servidor de base de datos',
+ 'Hostname missing!' => 'No se ha definido la máquina servidor de base de datos',
+ 'Language' => 'Idioma',
+ 'Lock System' => 'Bloquear sistema',
+ 'Lockfile created!' => 'Sistema bloqueado',
+ 'Lockfile removed!' => 'Desbloqueado!',
+ 'Login' => 'Entrar',
+ 'Login name missing!' => 'Falta Nombre del Usuario',
+ 'Logout' => 'Salir',
+ 'Manager' => 'Administrador',
+ 'Menu Width' => 'Ancho del Menu',
+ 'Multibyte Encoding' => 'Codificación Multibyte',
+ 'Name' => 'Nombre',
+ 'New Templates' => 'Nuevas plantillas',
+ 'No Database Drivers available!' => 'No hay ningún gestor de base de datos disponible',
+ 'No Dataset selected!' => 'No se ha seleccionado ninguna base de datos',
+ 'Nothing to delete!' => '¡No hay nada para borrar!',
+ 'Number Format' => 'Formato de número',
+ 'Oracle Database Administration' => 'Administración de la base de datos Oracle',
+ 'Password' => 'Contraseña',
+ 'Password changed!' => '¡Contraseña cambiada!',
+ 'Passwords do not match!' => '¡Contraseñas son incorrectas!',
+ 'Pg Database Administration' => 'Administración de la base de datos PostgreSQL',
+ 'PgPP Database Administration' => 'PostGres Admin',
+ 'Phone' => 'Teléfono',
+ 'Port' => 'Puerto',
+ 'Port missing!' => 'No se ha definido el Puerto',
+ 'Printer' => 'Impresora',
+ 'Save' => 'Guardar',
+ 'Session Timeout' => '¡Sesión Caducó!',
+ 'Session expired!' => '¡Sesión Expiró!',
+ 'Setup Templates' => 'Configurar plantillas',
+ 'Signature' => 'Firma',
+ 'Stylesheet' => 'Hoja de Estilo',
+ 'Supervisor' => 'Supervisor',
+ 'Templates' => 'Plantillas',
+ 'The following Datasets are not in use and can be deleted' => 'Las siguientes bases de datos no están en uso y se pueden borrar',
+ 'The following Datasets need to be updated' => 'Es necesario actualizar las siguientes bases de datos',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Esta es una verificacion preliminar de fuentes existentes. No se creará ni borrará nada durante esta etapa',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Para añadir un usuario a un grupo, edite un nombre, cambie el nombre de usuario (login) y guarde los cambios. Un nuevo usuario, con las mismas propiedades se guardará bajo el nuevo nombre de usuario (login).',
+ 'Unlock System' => 'Unlock sistema',
+ 'Update Dataset' => 'Actualizar base de datos',
+ 'Use Templates' => 'Plantillas de usuarios',
+ 'User' => 'Usuario',
+ 'User deleted!' => '¡Usuario borrado!',
+ 'User saved!' => '¡Usuario guardado!',
+ 'Version' => 'Versión',
+ 'You are logged out' => '¡Ud. está desconectado del sistema!',
+ 'does not exist' => 'no existe',
+ 'is already a member!' => 'ya es actualmente un miembro',
+ 'localhost' => 'máquina local',
+ 'locked!' => 'Bloqueado!',
+ 'successfully created!' => 'creado satisfactoriamente',
+ 'successfully deleted!' => 'borrado satisfactoriamente',
+ 'website' => 'sitio web',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'añadir_usuario' => 'add_user',
+ 'cambiar_la_contraseña_del_administrador' => 'change_admin_password',
+ 'cambiar_contraseña' => 'change_password',
+ 'continuar' => 'continue',
+ 'crear_base_de_datos' => 'create_dataset',
+ 'borrar' => 'delete',
+ 'borrar_base_de_datos' => 'delete_dataset',
+ 'bloquear_sistema' => 'lock_system',
+ 'entrar' => 'login',
+ 'salir' => 'logout',
+ 'administración_de_la_base_de_datos_oracle' => 'oracle_database_administration',
+ 'administración_de_la_base_de_datos_postgresql' => 'pg_database_administration',
+ 'postgres_admin' => 'pgpp_database_administration',
+ 'guardar' => 'save',
+ 'unlock_sistema' => 'unlock_system',
+ 'actualizar_base_de_datos' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/co_utf/all b/locale/co_utf/all
new file mode 100755
index 00000000..0b2b1455
--- /dev/null
+++ b/locale/co_utf/all
@@ -0,0 +1,896 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+$self{charset} = 'UTF-8';
+
+
+$self{texts} = {
+ 'A' => 'A',
+ 'AP' => 'Facturas de Proveedores',
+ 'AP Aging' => 'Cartera',
+ 'AP Outstanding' => 'Impagados Proveedores',
+ 'AP Transaction' => 'Transaccion Proveedor',
+ 'AP Transactions' => 'Gestiones de pagos',
+ 'AR' => 'Factura de Ventas',
+ 'AR Aging' => 'Cartera ',
+ 'AR Outstanding' => 'Impagados Cartera',
+ 'AR Transaction' => 'Cuentas por Cobrar',
+ 'AR Transactions' => 'Cuentas por Cobrar',
+ 'AR/AP' => '',
+ 'About' => 'Acerca de',
+ 'Above' => 'Encima de',
+ 'Access Control' => 'Control de Acceso',
+ 'Access Denied!' => '',
+ 'Account' => 'Cuenta',
+ 'Account Number' => 'Número de cuenta',
+ 'Account Number missing!' => 'No se ha definido el número de la cuenta',
+ 'Account Type' => 'Categoría de cuenta',
+ 'Account Type missing!' => 'No se ha definido el tipo de la cuenta',
+ 'Account deleted!' => '¡Cuenta borrada!',
+ 'Account does not exist!' => 'Cuenta no existe!',
+ 'Account saved!' => '¡Cuenta guardada!',
+ 'Accounting' => 'Contabilidad',
+ 'Accounting Menu' => 'Menú general',
+ 'Accounts' => 'Cuentas',
+ 'Accrual' => 'Acumulado',
+ 'Activate Audit trail' => 'Activar Rastro Auditoría',
+ 'Activate Audit trails' => 'Activar Rastro Auditoría',
+ 'Active' => 'Activo',
+ 'Add' => 'Añadir',
+ 'Add AP Transaction' => 'Añadir Transacción por Pagar',
+ 'Add AR Transaction' => 'Añadir Transacción por Cobrar',
+ 'Add Account' => 'Añadir Cuenta',
+ 'Add Assembly' => 'Añadir Compuesto',
+ 'Add Business' => 'Agregar Empresa',
+ 'Add Cash Transfer Transaction' => 'Agregar Transacción Efectivo',
+ 'Add Customer' => 'Añadir Cliente',
+ 'Add Deduction' => 'Agregar Deducción',
+ 'Add Department' => 'Agregar Centro de Costos',
+ 'Add Employee' => 'Agregar Empleado',
+ 'Add Exchange Rate' => 'Agregar Tasa de Cambio',
+ 'Add GIFI' => 'Añadir cuenta PUC',
+ 'Add General Ledger Transaction' => 'Añadir Nota de Contabilidad',
+ 'Add Group' => 'Agregar Grupo',
+ 'Add Job' => '',
+ 'Add Labor/Overhead' => 'Agregar Honorarios',
+ 'Add Language' => 'Agregar Idioma',
+ 'Add POS Invoice' => 'Agregar Factura PdV',
+ 'Add Part' => 'Añadir Artículo',
+ 'Add Pricegroup' => 'Añadir Grupo de Precios',
+ 'Add Project' => 'Añadir Proyecto',
+ 'Add Purchase Order' => 'Añadir Pedido',
+ 'Add Quotation' => 'Agregar Cotización',
+ 'Add Request for Quotation' => 'Pedir Cotización',
+ 'Add SIC' => 'Agregar SIC',
+ 'Add Sales Invoice' => 'Añadir Factura de Venta',
+ 'Add Sales Order' => 'Añadir Cotización',
+ 'Add Service' => 'Añadir Servicio',
+ 'Add Timecard' => '',
+ 'Add Transaction' => 'Añadir Transacción',
+ 'Add User' => 'Añadir Usuario',
+ 'Add Vendor' => 'Añadir Proveedor',
+ 'Add Vendor Invoice' => 'Agregar Factura de Proveedor',
+ 'Add Warehouse' => 'Agregar Bodega',
+ 'Address' => 'Dirección',
+ 'Administration' => 'Administración',
+ 'Administrator' => 'Administrador',
+ 'After Deduction' => 'Despues Deducción',
+ 'All' => 'Todos',
+ 'All Accounts' => 'Todas las Cuentas',
+ 'All Datasets up to date!' => 'Todas las Bases de Datos están actualizadas',
+ 'All Items' => 'Todo',
+ 'Allowances' => 'Permisos',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Por Pagar',
+ 'Amount missing!' => 'Falta suma',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => '¿Esta seguro de que desea borrar la factura número',
+ 'Are you sure you want to delete Order Number' => '¿Esta seguro de que desea borrar la orden número?',
+ 'Are you sure you want to delete Quotation Number' => 'Seguro que quiere borrar la cotización número',
+ 'Are you sure you want to delete Timecard for' => '',
+ 'Are you sure you want to delete Transaction' => '¿Está seguro de que desea borrar la transacción?',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Seguro que quieres remover las entradas seleccionadas de la cola?',
+ 'Assemblies' => 'Compuestos',
+ 'Assemblies restocked!' => '¡Compuestos actualizados en almacen!',
+ 'Assembly' => 'Compuesto',
+ 'Assembly stocked!' => '',
+ 'Asset' => 'Activo',
+ 'Attachment' => 'Adjunto',
+ 'Audit Control' => 'Control de Auditoría',
+ 'Audit trail disabled' => 'Rastro de Auditoría desactivado',
+ 'Audit trail enabled' => 'Rastro de Auditoría activado',
+ 'Audit trail removed up to' => 'Rastro de Auditoría removido hasta',
+ 'Audit trails disabled' => 'Rastro de Auditoría desactivado',
+ 'Audit trails enabled' => 'Rastro de Auditoría activado',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Average Cost' => '',
+ 'Avg Cost' => '',
+ 'BIC' => 'BIC',
+ 'BOM' => 'Listado de piezas',
+ 'Backup' => 'Copia de seguridad de los datos',
+ 'Backup sent to' => 'Copia de seguridad enviada a',
+ 'Balance' => 'Balance',
+ 'Balance Sheet' => 'Hoja de balance',
+ 'Based on' => 'Basado en',
+ 'Bcc' => 'Bcc',
+ 'Before Deduction' => 'Antes de la Deducción',
+ 'Beginning Balance' => 'Balance Inicial',
+ 'Below' => 'Debajo',
+ 'Billing Address' => 'Dirección Factura',
+ 'Bin' => 'Empaque',
+ 'Bin List' => 'Lista Empaque',
+ 'Bin Lists' => 'Listas Empaque',
+ 'Books are open' => 'Los libros están abiertos',
+ 'Break' => 'Pausa',
+ 'Business' => 'Empresa',
+ 'Business Number' => 'Numero de negocio',
+ 'Business deleted!' => 'Empresa eliminada!',
+ 'Business saved!' => 'Empresa guardada!',
+ 'C' => 'C',
+ 'COGS' => 'Costo de los artículos',
+ 'COGS account does not exist!' => '',
+ 'Cannot add timecard for a completed job!' => '',
+ 'Cannot change timecard for a completed job!' => '',
+ 'Cannot create Assembly' => '',
+ 'Cannot create Labor' => '',
+ 'Cannot create Lock!' => 'No puedo crear lock-file',
+ 'Cannot create Part' => '',
+ 'Cannot create Service' => '',
+ 'Cannot delete Timecard!' => '',
+ 'Cannot delete account!' => '¡No se puede borrar la cuenta!',
+ 'Cannot delete customer!' => '¡No se puede borrar el cliente!',
+ 'Cannot delete default account!' => 'No se puede borrar la cuenta por omisión',
+ 'Cannot delete invoice!' => '¡No se puede borrar la factura!',
+ 'Cannot delete item!' => '¡No se puede borrar el artículo!',
+ 'Cannot delete order!' => '¡No se puede borrar el pedido!',
+ 'Cannot delete quotation!' => 'No puedo borrar cotización!',
+ 'Cannot delete transaction!' => '¡No se puede borrar la transacción!',
+ 'Cannot delete vendor!' => '¡No se puede borrar el vendedor!',
+ 'Cannot post Payment!' => 'No puedo guardar pago',
+ 'Cannot post Receipt!' => 'No puedo guardar recibo',
+ 'Cannot post invoice for a closed period!' => '¡No se puede registrar una factura en un periodo ya cerrado!',
+ 'Cannot post invoice!' => '¡No se puede registrar la factura!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo ya cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar una transacción para un periodo cerrado',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => '',
+ 'Cannot post transaction!' => '¡No se puede registrar la transacción',
+ 'Cannot remove files!' => 'No puedo borrar archivos!',
+ 'Cannot save account!' => '¡No se puede guardar la cuenta!',
+ 'Cannot save defaults!' => 'No puedo guardar preferencias!',
+ 'Cannot save order!' => '¡No se puede guardar el pedido!',
+ 'Cannot save preferences!' => '¡No se puede guardar las preferencias!',
+ 'Cannot save quotation!' => 'No puedo guardar cotización!',
+ 'Cannot save timecard for a closed period!' => '',
+ 'Cannot save timecard!' => '',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Tiene que seleccionar cuenta!',
+ 'Cannot set multiple options for' => 'No puedo crear multiples opciones para',
+ 'Cannot set multiple options for Item' => '',
+ 'Cannot stock Assembly!' => '',
+ 'Cannot stock assemblies!' => '¡No se pueden almacenar los compuestos!',
+ 'Cash' => 'Efectivo',
+ 'Cc' => 'Cc',
+ 'Change' => 'Cambiar',
+ 'Change Admin Password' => 'Cambiar la contraseña del administrador',
+ 'Change Password' => 'Cambiar contraseña',
+ 'Charge' => '',
+ 'Chart of Accounts' => 'Plan de cuentas',
+ 'Check' => 'Cheque',
+ 'Check Inventory' => 'Revisar Inventario',
+ 'Checks' => 'Cheques',
+ 'City' => 'Ciudad',
+ 'Cleared' => 'Borrado',
+ 'Click on login name to edit!' => 'Haga clic en el nombre de usuario por editar',
+ 'Clocked' => '',
+ 'Close Books up to' => 'Cerrar los libros hasta',
+ 'Closed' => 'Cerrado',
+ 'Code' => 'Código',
+ 'Code missing!' => 'Falta código',
+ 'Company' => 'Empresa',
+ 'Company Name' => 'Nombre de la empresa',
+ 'Compare to' => 'Comparar con',
+ 'Completed' => '',
+ 'Components' => 'Componentes',
+ 'Confirm' => 'Confirmar',
+ 'Confirm!' => 'Confirmar',
+ 'Connect to' => 'Conectar a',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Contra' => 'Cuentas del Orden',
+ 'Copies' => 'Copias',
+ 'Copy to COA' => 'Copiar al plan de cuentas',
+ 'Cost' => 'Costo',
+ 'Cost Center' => 'Centro de Costos (Gastos)',
+ 'Could not save pricelist!' => '¡No se pudo guradar lista de precios!',
+ 'Could not save!' => 'No pude guardar',
+ 'Could not transfer Inventory!' => 'No puedo transferir inventario!',
+ 'Country' => 'País',
+ 'Create Chart of Accounts' => 'Crear plan de cuentas',
+ 'Create Dataset' => 'Crear base de datos',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Limite de credito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Current Earnings' => 'Resultado del periodo',
+ 'Customer' => 'Cliente',
+ 'Customer History' => 'Historial del Cliente',
+ 'Customer Number' => 'Número del cliente',
+ 'Customer deleted!' => '¡Cliente borrado!',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Customer saved!' => '¡Cliente guardado!',
+ 'Customers' => 'Clientes',
+ 'DBI not installed!' => 'No se ha instalado DBI',
+ 'DOB' => 'Fecha de Nacimiento',
+ 'Database' => 'Base de datos',
+ 'Database Administration' => 'Administración de las bases de datos',
+ 'Database Driver not checked!' => 'No se ha podido verificar el gestor de la base de datos',
+ 'Database Host' => 'Máquina servidor de base de datos',
+ 'Database User missing!' => 'No se ha definido el usuario de la base de datos',
+ 'Dataset' => 'Base de datos',
+ 'Dataset is newer than version!' => 'La base de datos está más actual que la versión del programa',
+ 'Dataset missing!' => 'No se ha definido la base de datos',
+ 'Dataset updated!' => 'Base de datos actualizada',
+ 'Date' => 'Fecha',
+ 'Date Format' => 'Formato de fecha',
+ 'Date Paid' => 'Fecha de pago',
+ 'Date Received' => 'Fecha recibido',
+ 'Date missing!' => '¡Falta la fecha!',
+ 'Date received missing!' => 'Faltas datos',
+ 'Date worked' => '',
+ 'Day' => 'Día',
+ 'Day(s)' => '',
+ 'Days' => 'Dias',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Decimalplaces' => 'Lugar de los decimales',
+ 'Decrease' => 'Reducir',
+ 'Deduct after' => 'Deducir despues de',
+ 'Deduction deleted!' => 'Deducción borrado!',
+ 'Deduction saved!' => 'Deducción guardado',
+ 'Deductions' => 'Deducciones',
+ 'Default Template' => 'Plantilla Predeterminada',
+ 'Defaults' => 'Preferencias',
+ 'Defaults saved!' => 'Guardado!',
+ 'Delete' => 'Borrar',
+ 'Delete Account' => 'Borrar cuenta',
+ 'Delete Dataset' => 'Borrar base de datos',
+ 'Delete Schedule' => 'Borrar Programación',
+ 'Deleting a language will also delete the templates for the language' => 'Borrar la idioma tambien borra las plantillas de la idoma',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Department' => 'Centro de Costos',
+ 'Department deleted!' => 'Centro de Costos borrado!',
+ 'Department saved!' => 'Centro de Costos guardado!',
+ 'Departments' => 'Centro de Costos',
+ 'Deposit' => 'Depósito',
+ 'Description' => 'Descripción',
+ 'Description Translations' => 'Descripción Traducción',
+ 'Description missing!' => 'Falta Descripción',
+ 'Detail' => 'Detalle',
+ 'Difference' => 'Diferencia',
+ 'Directory' => 'Directorio',
+ 'Discount' => 'Descuento',
+ 'Done' => 'Hecho',
+ 'Drawing' => 'Reintegro',
+ 'Driver' => 'Gestor',
+ 'Dropdown Limit' => 'Límite de efectivo',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'Due Date missing!' => 'Falta la fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail Statement to' => 'Enviar comprobante por correo electrónico a',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'E-mail message' => 'Mensaje Email',
+ 'E-mailed' => 'Enviado por mail',
+ 'Edit' => 'Editar',
+ 'Edit AP Transaction' => 'Editar Asiento de CxP',
+ 'Edit AR Transaction' => 'Editar Asiento de CxC',
+ 'Edit Account' => 'Editar cuenta',
+ 'Edit Assembly' => 'Editar compuesto',
+ 'Edit Business' => 'Editar empresa',
+ 'Edit Cash Transfer Transaction' => 'Editar Transacción en Effectivo',
+ 'Edit Customer' => 'Editar Cliente',
+ 'Edit Deduction' => 'Editar Deducción',
+ 'Edit Department' => 'Editar Centro de Costos',
+ 'Edit Description Translations' => 'Editar Descripción Traducción',
+ 'Edit Employee' => 'Editar Empleado',
+ 'Edit GIFI' => 'Editar PUC',
+ 'Edit General Ledger Transaction' => 'Editar Notas Contables',
+ 'Edit Group' => 'Editar Grupo',
+ 'Edit Job' => '',
+ 'Edit Labor/Overhead' => 'Editar Honorario',
+ 'Edit Language' => 'Editar Idioma',
+ 'Edit POS Invoice' => 'Editar Factura Punto de Venta',
+ 'Edit Part' => 'Editar compuesto',
+ 'Edit Preferences for' => 'Editar preferencias de',
+ 'Edit Pricegroup' => 'Editar Grupo de Precios',
+ 'Edit Project' => 'Editar Proyecto',
+ 'Edit Purchase Order' => 'Editar Pedido',
+ 'Edit Quotation' => 'Editar Cotización',
+ 'Edit Request for Quotation' => 'Editar Solicitud de Cotización',
+ 'Edit SIC' => 'Editar SIC',
+ 'Edit Sales Invoice' => 'Editar Factura de Venta',
+ 'Edit Sales Order' => 'Editar Cotización',
+ 'Edit Service' => 'Editar Servicio',
+ 'Edit Template' => 'Editar Plantilla',
+ 'Edit Timecard' => '',
+ 'Edit User' => 'Editar Usuario',
+ 'Edit Vendor' => 'Editar Proveedor',
+ 'Edit Vendor Invoice' => 'Editar Factura de Proveedor',
+ 'Edit Warehouse' => 'Editar Bodega',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Employee Name' => 'Nombre del Empleado',
+ 'Employee Number' => 'Número de Empleado',
+ 'Employee deleted!' => 'Empleado borrado!',
+ 'Employee pays' => 'Empleado cancela',
+ 'Employee saved!' => 'Empleado guardado!',
+ 'Employees' => 'Empleados',
+ 'Employer' => 'Empleador',
+ 'Employer pays' => 'Empleador cancela',
+ 'Enddate' => 'Fecha final',
+ 'Ends' => 'Finaliza',
+ 'Enforce transaction reversal for all dates' => 'Forzar la anulación de las transacciones para todas las fechas',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Introduzca hasta 3 letras separadas por dos puntos (p.e. CAD:USD:EUR) para las monedas locales y las extranjeras',
+ 'Equity' => 'Balance',
+ 'Every' => 'Cada',
+ 'Excempt age <' => 'Edad de Excención <',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate for payment missing!' => 'Falta Tasa de Cambio',
+ 'Exchange rate missing!' => 'Falta Tasa de Cambio',
+ 'Existing Datasets' => 'Bases de datos existentes',
+ 'Expense' => 'Gastos',
+ 'Expense account does not exist!' => '',
+ 'Expense/Asset' => 'Gastos/Activo',
+ 'Extended' => 'Extendido',
+ 'FX' => 'Tasa de Cambio',
+ 'Failed to save order!' => '',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'For' => 'Para',
+ 'Foreign Exchange Gain' => 'Ganancia en moneda extranjera',
+ 'Foreign Exchange Loss' => 'Pérdida en moneda extranjera',
+ 'Friday' => '',
+ 'From' => 'De',
+ 'From Warehouse' => '',
+ 'GIFI' => 'Plan Único de Cuentas (PUC)',
+ 'GIFI deleted!' => '¡Borrado el código PUC!',
+ 'GIFI missing!' => 'No se ha definido el código PUC',
+ 'GIFI saved!' => '¡Guardado el código PUC!',
+ 'GL' => 'Nota Contable',
+ 'GL Reference Number' => '',
+ 'GL Transaction' => 'Nota de Contabilidad',
+ 'General Ledger' => 'Notas de Contabilidad',
+ 'Generate' => 'Elaborar',
+ 'Generate Orders' => 'Elaborar Pedidos',
+ 'Generate Purchase Orders' => 'Elaborar Orden de Venta',
+ 'Generate Purchase Orders from Sales Order' => 'Elaborar Orden de Compra de Orden de Venta',
+ 'Generate Sales Order' => 'Elaborar Orden de Venta',
+ 'Generate Sales Order from Purchase Orders' => 'Elaborar Orden de Venta de Orden de Compra',
+ 'Generate Sales Orders' => '',
+ 'Goods & Services' => 'Bienes y servicios',
+ 'Group' => 'Grupo',
+ 'Group Items' => 'Agrupar itemes',
+ 'Group Translations' => 'Traducción Grupos',
+ 'Group deleted!' => 'Grupo eleminado!',
+ 'Group missing!' => 'Falta el grupo',
+ 'Group saved!' => 'Grupo guardado!',
+ 'Groups' => 'Grupos',
+ 'HR' => 'Recursos Humanos',
+ 'HTML Templates' => 'Plantillas HTML',
+ 'Heading' => 'Encabezado',
+ 'History' => 'Historial',
+ 'Home Phone' => 'Teléfono residencia',
+ 'Host' => 'Máquina servidor de base de datos',
+ 'Hostname missing!' => 'No se ha definido la máquina servidor de base de datos',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Image' => 'Imagen',
+ 'In-line' => 'Incrustado',
+ 'Inactive' => '',
+ 'Include Exchange Rate Difference' => 'Incluir Diferencia por Tasa de Cambio',
+ 'Include Payment' => 'Incluir Pago',
+ 'Include in Report' => 'Incluir en informe',
+ 'Include in drop-down menus' => 'Incluir en menúes desplegables:',
+ 'Income' => 'Ingreso',
+ 'Income Statement' => 'Estado de Resultados',
+ 'Income account does not exist!' => '',
+ 'Incorrect Dataset version!' => 'Versión de base de datos incorrecta',
+ 'Increase' => 'Aumentar',
+ 'Individual Items' => 'Artículos individuales',
+ 'Internal Notes' => 'Notas internas',
+ 'Inventory' => 'Inventario',
+ 'Inventory account does not exist!' => '',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'La cantidad en inventario debe ser cero antes de cambiar este compuesto a obsoleto',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'La cantidad en inventario debe ser cero antes de cambiar este artículo a obsoleto',
+ 'Inventory saved!' => 'Inventario guardado!',
+ 'Inventory transferred!' => 'Inventario transferido!',
+ 'Invoice' => 'Factura de Venta',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Invoice Number missing!' => 'No se ha definido el número de la factura',
+ 'Invoice deleted!' => '¡Factura borrada!',
+ 'Invoices' => 'Facturas',
+ 'Is this a summary account to record' => '¿Es esta una cuenta de Cartera por Cobrar/Pagar?',
+ 'Item already on pricelist!' => '¡Artículo está incluido en la lista de precios!',
+ 'Item deleted!' => '¡Concepto borrado!',
+ 'Item not on file!' => 'El concepto no se encuentra en ningún archivo',
+ 'Items' => 'Productos/Servicios',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Job' => '',
+ 'Job Name' => '',
+ 'Job Number' => '',
+ 'Job Number missing!' => '',
+ 'Job deleted!' => '',
+ 'Job saved!' => '',
+ 'Jobs' => '',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'LaTeX Templates' => 'Plantillas LaTeX',
+ 'Labor Code' => '',
+ 'Labor/Overhead' => 'Honorarios',
+ 'Language' => 'Idioma',
+ 'Language deleted!' => 'Idioma Borrada!',
+ 'Language saved!' => 'Idioma Guardada!',
+ 'Languages' => 'Idiomas',
+ 'Languages not defined!' => 'Idiomas no configuradas!',
+ 'Last Cost' => '',
+ 'Last Numbers & Default Accounts' => 'Últimos números y cuentas por omisión',
+ 'Lead' => 'Entrega',
+ 'Leadtime' => 'Plazo',
+ 'Leave host and port field empty unless you want to make a remote connection.' => 'Deje los campos de máquina servidor de base de datos y puerto vacíos al menos que quiera hacer una conexión remota',
+ 'Liability' => 'Pasivo',
+ 'Licensed to' => 'Adaptado para',
+ 'Line Total' => 'Total de la línea',
+ 'Link' => 'Enlaces',
+ 'Link Accounts' => 'Enlazar cuentas',
+ 'List' => 'Lista',
+ 'List Accounts' => 'Mostrar Plan Único de Cuentas',
+ 'List Businesses' => 'Mostrar empresas',
+ 'List Departments' => 'Mostrar Centro de Costos',
+ 'List GIFI' => 'Mostrar PUC',
+ 'List Languages' => 'Mostrar Idiomas',
+ 'List Price' => 'Precio de Lista',
+ 'List Projects' => 'Mostrar Projectos',
+ 'List SIC' => 'Mostrar SIC',
+ 'List Transactions' => 'Mostrar Transacciones',
+ 'List Warehouses' => 'Mostar bodegas',
+ 'Lock System' => 'Bloquear sistema',
+ 'Lockfile created!' => 'Sistema bloqueado',
+ 'Lockfile removed!' => 'Desbloqueado!',
+ 'Login' => 'Entrar',
+ 'Login name missing!' => 'Falta Nombre del Usuario',
+ 'Logout' => 'Salir',
+ 'Make' => 'Marca',
+ 'Manager' => 'Administrador',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'Marked entries printed!' => 'Selección impresa',
+ 'Markup' => 'Margen',
+ 'Maximum' => 'Maximo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Menu Width' => 'Ancho del Menu',
+ 'Message' => 'Mensaje',
+ 'Method' => 'Metódo',
+ 'Microfiche' => 'Microficha',
+ 'Model' => 'Modelo',
+ 'Monday' => '',
+ 'Month' => 'Mes',
+ 'Month(s)' => '',
+ 'Months' => 'Meses',
+ 'Multibyte Encoding' => 'Codificación Multibyte',
+ 'N/A' => 'Sin respuesta',
+ 'Name' => 'Nombre',
+ 'Name missing!' => '¡Falta el nombre!',
+ 'New Templates' => 'Nuevas plantillas',
+ 'New Window' => 'Nueva Ventana',
+ 'Next' => 'Proximo',
+ 'Next Date' => 'Proxima Fecha',
+ 'Next Number' => '',
+ 'No' => 'No',
+ 'No Database Drivers available!' => 'No hay ningún gestor de base de datos disponible',
+ 'No Dataset selected!' => 'No se ha seleccionado ninguna base de datos',
+ 'No Employees on file!' => '',
+ 'No Labor codes on file!' => '',
+ 'No email address for' => 'Falta la dirección de correo electrónico de',
+ 'No open Jobs!' => '',
+ 'No open Projects!' => '',
+ 'No.' => 'No.',
+ 'Non-taxable' => 'Sin Impuestos',
+ 'Non-taxable Purchases' => 'Compras sin Impuestos',
+ 'Non-taxable Sales' => 'Ventas sin Impuestos',
+ 'Non-tracking Items' => '',
+ 'Notes' => 'Notas',
+ 'Nothing entered!' => 'Información Incompleta',
+ 'Nothing selected!' => '¡No es seleccionado nada!',
+ 'Nothing to delete!' => '¡No hay nada para borrar!',
+ 'Nothing to print!' => '¡No hay nada que imprimir!',
+ 'Nothing to transfer!' => 'Nada para transferir',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number Format' => 'Formato de número',
+ 'Number missing in Row' => 'No se ha definido el número en la fila',
+ 'O' => 'O',
+ 'OH' => '',
+ 'Obsolete' => 'Obsoleto',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'On Hand' => 'Disponible',
+ 'Open' => 'Abierto',
+ 'Oracle Database Administration' => 'Administración de la base de datos Oracle',
+ 'Order' => 'Orden',
+ 'Order Date' => 'Fecha de elaboración',
+ 'Order Date missing!' => 'No se ha definido la fecha de la elaboración',
+ 'Order Entry' => 'Cotizaciones y pedidos',
+ 'Order Number' => 'Número de orden',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'Order deleted!' => '¡Orden borrada!',
+ 'Order generation failed!' => 'Fallo Elaboración Pedido',
+ 'Order saved!' => 'Pedido guardado',
+ 'Orders generated!' => '',
+ 'Orphaned' => 'Huérfano',
+ 'Out of balance transaction!' => 'Transacción fuera de Balance!',
+ 'Out of balance!' => '¡Fuera de balance!',
+ 'Outstanding' => 'Impagados',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Número pedido',
+ 'POS' => 'Punto de Venta',
+ 'POS Invoice' => 'Factura Punto de Venta',
+ 'Packing List' => 'Albarán',
+ 'Packing List Date missing!' => 'No se ha definido la fecha del albarán',
+ 'Packing List Number missing!' => 'No se ha definido el número del albarán',
+ 'Packing Lists' => 'Lista de empaque',
+ 'Paid' => 'Pagado',
+ 'Part' => 'Artículo',
+ 'Part Number' => '',
+ 'Partnumber' => 'Número parte',
+ 'Parts' => 'Artículos',
+ 'Password' => 'Contraseña',
+ 'Password changed!' => '¡Contraseña cambiada!',
+ 'Password does not match!' => '¡Contraseña incorrecta!',
+ 'Passwords do not match!' => '¡Contraseñas son incorrectas!',
+ 'Payables' => 'Por Pagar',
+ 'Payment' => 'Comprobante de Egreso',
+ 'Payment date missing!' => 'No se encuentra la fecha de pago',
+ 'Payment posted!' => '¡Pago registrado!',
+ 'Payments' => 'Pagos',
+ 'Payments posted!' => '',
+ 'Payroll Deduction' => 'Deducciones Nómina',
+ 'Period' => 'Periodo',
+ 'Pg Database Administration' => 'Administración de la base de datos PostgreSQL',
+ 'PgPP Database Administration' => 'PostGres Admin',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Empaque',
+ 'Pick Lists' => 'Listas de Empaque',
+ 'Port' => 'Puerto',
+ 'Port missing!' => 'No se ha definido el Puerto',
+ 'Pos' => 'PdV',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como Nuevo',
+ 'Posted!' => 'Agregado!',
+ 'Posting' => 'Registro',
+ 'Posting failed!' => '',
+ 'Postscript' => 'Postscript',
+ 'Preferences' => 'Preferencias',
+ 'Preferences saved!' => 'Preferencias guardadas',
+ 'Prepayment' => 'Anticipio',
+ 'Price' => 'Precio',
+ 'Pricegroup' => 'Grupo de Precios',
+ 'Pricegroup deleted!' => 'Grupo Borrado!',
+ 'Pricegroup missing!' => 'Falta Grupo!',
+ 'Pricegroup saved!' => 'Guardado!',
+ 'Pricegroups' => 'Grupos de Precios',
+ 'Pricelist' => 'Lista de Precios',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Print and Post as new' => '',
+ 'Print and Save' => 'Imprimir y Registrar',
+ 'Print and Save as new' => '',
+ 'Print and post as new' => '',
+ 'Print and save as new' => '',
+ 'Printed' => 'Impreso',
+ 'Printer' => 'Impresora',
+ 'Printing' => 'Imprimiendo',
+ 'Printing ... ' => 'Imprimiendo...',
+ 'Process Transactions' => 'Procesar Transacción',
+ 'Production' => '',
+ 'Profit Center' => 'Centro de Costo (Ingresos)',
+ 'Project' => 'Proyecto',
+ 'Project Description Translations' => 'Descripción Traducción del Proyecto',
+ 'Project Name' => '',
+ 'Project Number' => 'Número del Proyecto',
+ 'Project Number missing!' => '¡Falta el Número de Proyecto!',
+ 'Project Transactions' => 'Transacciones del Projecto',
+ 'Project deleted!' => '¡Proyecto borrado!',
+ 'Project not on file!' => 'Proyecto no existe!',
+ 'Project saved!' => '¡Proyecto guardado ',
+ 'Project/Job Name' => '',
+ 'Project/Job Number' => '',
+ 'Projects' => 'Proyectos',
+ 'Purchase Order' => 'Pedido',
+ 'Purchase Order Number' => 'Número de Orden de Compra',
+ 'Purchase Orders' => 'Pedidos',
+ 'Qty' => 'Cantidad',
+ 'Quantity exceeds available units to stock!' => 'No hay esta cantidad disponible en el Inventario!',
+ 'Quarter' => 'Trimestre',
+ 'Quotation' => 'Cotización',
+ 'Quotation ' => 'Cotización ',
+ 'Quotation Date' => 'Fecha de cotización',
+ 'Quotation Date missing!' => 'Falta fecha de cotización',
+ 'Quotation Number' => 'Número cotización',
+ 'Quotation Number missing!' => 'Falta número de cotización',
+ 'Quotation deleted!' => 'Cotización borrado',
+ 'Quotations' => 'Cotizaciones',
+ 'R' => 'R',
+ 'RFQ' => 'Solicitar Cotización',
+ 'RFQ ' => 'Solicitud de Cotización ',
+ 'RFQ Number' => 'Número de Cotización',
+ 'RFQs' => 'Cotizaciones solicitados',
+ 'ROP' => 'Tope de envio',
+ 'Rate' => 'Tarifa',
+ 'Rate missing!' => 'Falta Tarifa!',
+ 'Recd' => 'Cobrado',
+ 'Receipt' => 'Recibo',
+ 'Receipt posted!' => 'Recibo agregado',
+ 'Receipts' => 'Recibos',
+ 'Receivables' => 'Cobros',
+ 'Receive' => 'Recibir',
+ 'Receive Merchandise' => 'Recibir mercancia',
+ 'Reconciliation' => 'Reconciliación',
+ 'Reconciliation Report' => 'Reporte de Reconciliación',
+ 'Record in' => 'Registrar en',
+ 'Recurring Transaction' => 'Transacción Recurrente',
+ 'Recurring Transactions' => 'Transacciones Recurrentes',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Resto',
+ 'Remove' => 'Eliminar',
+ 'Remove Audit trail up to' => 'Remover Rastro de Auditoría hasta',
+ 'Remove Audit trails up to' => 'Remover Rastro de Auditoría hasta',
+ 'Removed spoolfiles!' => 'Archivos eliminados de la cola',
+ 'Removing marked entries from queue ...' => 'Removiendo entradas sellecionads de la cola...',
+ 'Repeat' => 'Repetir',
+ 'Report for' => 'Informe para',
+ 'Reports' => 'Informes',
+ 'Req' => 'Pedido',
+ 'Request for Quotation' => 'Solicitar Cotización',
+ 'Request for Quotations' => 'Solicitar Cotizaciones',
+ 'Required by' => 'Aceptado el',
+ 'Retained Earnings' => 'Resultado del Ejercicio',
+ 'Role' => 'Función',
+ 'S' => 'S',
+ 'SIC' => 'SIC',
+ 'SIC deleted!' => 'SIC borrado!',
+ 'SIC saved!' => 'SIC guardado!',
+ 'SKU' => 'SKU',
+ 'SSN' => 'RIF',
+ 'Sale' => 'Venta',
+ 'Sales' => 'Ventas',
+ 'Sales Invoice' => 'Facturas de Ventas',
+ 'Sales Invoice ' => 'Facturas de Ventas ',
+ 'Sales Invoice.' => 'Factura de Ventas.',
+ 'Sales Invoice/AR Transaction Number' => '',
+ 'Sales Invoices' => 'Factura de Venta',
+ 'Sales Order' => 'Orden de Venta',
+ 'Sales Order Number' => 'N°de Pedido',
+ 'Sales Orders' => 'Ordenes de Venta',
+ 'Sales Quotation Number' => 'N°de Cotización de Venta',
+ 'Salesperson' => 'Vendedor',
+ 'Saturday' => '',
+ 'Save' => 'Guardar',
+ 'Save Pricelist' => 'Guardar Lista de Precios',
+ 'Save Schedule' => 'Guardar Programación',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Save to File' => 'Guardar en un archivo',
+ 'Saving' => 'Guardando',
+ 'Schedule' => 'Programar Recurrencia',
+ 'Scheduled' => 'Programado',
+ 'Screen' => 'Pantalla',
+ 'Search' => 'Búsqueda',
+ 'Select' => 'Seleccionar',
+ 'Select Customer' => '',
+ 'Select Vendor' => 'Seleccionar Proveedor',
+ 'Select a Printer!' => '',
+ 'Select a printer!' => '',
+ 'Select all' => 'Guardar todo',
+ 'Select from one of the items below' => 'Seleccione uno de los artículos siguientes',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Selecciona uno de los proyectos abajo',
+ 'Select items' => 'Seleccionar Itemes',
+ 'Select payment' => '¡Seleccione Pago!',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Select txt, postscript or PDF!' => '¡Seleccione txt, postscript o PDF!',
+ 'Sell' => 'Vender',
+ 'Sell Price' => 'Precio de venta',
+ 'Send by E-Mail' => 'Enviar por correo electrónico',
+ 'Sending' => 'Enviando',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'No de Serial',
+ 'Serial Number' => 'Número del Serial',
+ 'Service' => 'Servicio',
+ 'Service Code' => '',
+ 'Service/Labor Code' => '',
+ 'Services' => 'Servicios',
+ 'Session Timeout' => '¡Sesión Caducó!',
+ 'Session expired!' => '¡Sesión Expiró!',
+ 'Setup Templates' => 'Configurar plantillas',
+ 'Ship' => 'Envio',
+ 'Ship Merchandise' => 'Enviar Mercancía',
+ 'Ship to' => 'Destino',
+ 'Ship via' => 'Envio por',
+ 'Shipping' => 'Envio',
+ 'Shipping Address' => 'Dirección del envio',
+ 'Shipping Date' => 'Fecha del Envio',
+ 'Shipping Date missing!' => 'Falta Fecha del Envio',
+ 'Shipping Point' => 'Destino',
+ 'Short' => 'Corto',
+ 'Signature' => 'Firma',
+ 'Source' => 'Fuente',
+ 'Spoolfile' => 'Cola de Impresión',
+ 'Standard' => 'Estándard',
+ 'Standard Industrial Codes' => 'Standard Industrial Codes (Código Industrial)',
+ 'Startdate' => 'Fecha inicial',
+ 'State' => 'Departamento',
+ 'State/Province' => 'Departamento',
+ 'Statement' => 'Estado de Cuenta',
+ 'Statement Balance' => 'Balance de Cuenta',
+ 'Statement sent to' => 'Estado de Cuenta enviado a',
+ 'Statements sent to printer!' => '¡Estado de Cuenta enviado a la impresora!',
+ 'Stock' => 'Inventario',
+ 'Stock Assembly' => 'Inventariar Compuesto',
+ 'Stocking Date' => '',
+ 'Stylesheet' => 'Hoja de Estilo',
+ 'Sub-contract GIFI' => 'Sub-Contrato PUC',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Résumen',
+ 'Sunday' => '',
+ 'Supervisor' => 'Supervisor',
+ 'System' => 'Sistema',
+ 'System Defaults' => 'Predeterminados del Sistema',
+ 'Tax' => 'Impuestos',
+ 'Tax Accounts' => 'Cuentas de Impuestos',
+ 'Tax Included' => 'Impuestos Incluidos',
+ 'Tax Number' => 'NIT/CC',
+ 'Tax Number / SSN' => 'NIT./CC./CE.',
+ 'Tax collected' => 'Impuestos Cobrados Clientes',
+ 'Tax paid' => 'Impuestos Pagados',
+ 'Taxable' => 'Impuestos Gravables',
+ 'Template saved!' => '¡Plantilla guardada!',
+ 'Templates' => 'Plantillas',
+ 'Terms' => 'Condiciones',
+ 'Text' => 'Texto',
+ 'Text Templates' => 'Plantillas de Texto',
+ 'The following Datasets are not in use and can be deleted' => 'Las siguientes bases de datos no están en uso y se pueden borrar',
+ 'The following Datasets need to be updated' => 'Es necesario actualizar las siguientes bases de datos',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Esta es una verificacion preliminar de fuentes existentes. No se creará ni borrará nada durante esta etapa',
+ 'Thursday' => '',
+ 'Till' => 'Caja',
+ 'Time In' => '',
+ 'Time Out' => '',
+ 'Timecard' => '',
+ 'Timecard deleted!' => '',
+ 'Timecard saved!' => '',
+ 'Timecards' => '',
+ 'Times' => 'Veces',
+ 'To' => 'Hasta ',
+ 'To Warehouse' => '',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Para añadir un usuario a un grupo, edite un nombre, cambie el nombre de usuario (login) y guarde los cambios. Un nuevo usuario, con las mismas propiedades se guardará bajo el nuevo nombre de usuario (login).',
+ 'Top Level' => 'Nivel superior',
+ 'Total' => 'Total',
+ 'Tracking Items' => '',
+ 'Trade Discount' => 'Descuento',
+ 'Transaction' => 'Asiento',
+ 'Transaction Date missing!' => 'No se ha definido la fecha de la transacción',
+ 'Transaction Dates' => '',
+ 'Transaction deleted!' => '¡Transacción borrada!',
+ 'Transaction posted!' => '¡Transacción registrada!',
+ 'Transaction reversal enforced for all dates' => 'Se ha forzado la anulación de las transacciones para todas las fechas',
+ 'Transaction reversal enforced up to' => 'Se ha forzado la anulación de las transacciones hasta',
+ 'Transactions' => 'Transacciones',
+ 'Transfer' => 'Transferencia',
+ 'Transfer Inventory' => 'Transferir Inventario',
+ 'Transfer from' => '',
+ 'Transfer to' => 'Transferir a',
+ 'Translation' => 'Traducción',
+ 'Translation deleted!' => 'Traducción Borrada!',
+ 'Translation not on file!' => 'No hay traducción',
+ 'Translations' => 'Traducciones',
+ 'Translations saved!' => 'Guardado',
+ 'Trial Balance' => 'Balance de Comprobación',
+ 'Tuesday' => '',
+ 'Type of Business' => 'Clase de Negocio',
+ 'Unit' => 'Unidad',
+ 'Unit of measure' => 'Unidad de medida',
+ 'Unlock System' => 'Unlock sistema',
+ 'Update' => 'Actualizar',
+ 'Update Dataset' => 'Actualizar base de datos',
+ 'Updated' => '¡Actualizado!',
+ 'Upgrading to Version' => 'Actulaizando a versión',
+ 'Use Templates' => 'Plantillas de usuarios',
+ 'User' => 'Usuario',
+ 'User deleted!' => '¡Usuario borrado!',
+ 'User saved!' => '¡Usuario guardado!',
+ 'Valid until' => 'Válido hasta',
+ 'Vendor' => 'Proveedor',
+ 'Vendor History' => 'Historial Proveedor',
+ 'Vendor Invoice' => 'Factura de Proveedor',
+ 'Vendor Invoice ' => 'Factura de Proveedor ',
+ 'Vendor Invoice.' => 'Factura de Proveedor.',
+ 'Vendor Invoice/AP Transaction Number' => '',
+ 'Vendor Invoices' => 'Facturas de Proveedor',
+ 'Vendor Number' => 'Código Vendedor',
+ 'Vendor deleted!' => '¡Proveedor borrado!',
+ 'Vendor missing!' => '¡Falta el proveedor!',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Vendor saved!' => '¡Proveedor guardado!',
+ 'Vendors' => 'Proveedores',
+ 'Version' => 'Versión',
+ 'Warehouse' => 'Bodega',
+ 'Warehouse deleted!' => 'Bodega borrado',
+ 'Warehouse saved!' => 'Bodegas guardado',
+ 'Warehouses' => 'Bodegas',
+ 'Warning!' => 'Alerta!',
+ 'Wednesday' => '',
+ 'Week' => 'Semana',
+ 'Week(s)' => '',
+ 'Weeks' => 'Semanas',
+ 'Weight' => 'Peso',
+ 'Weight Unit' => 'Unidad de peso',
+ 'What type of item is this?' => '¿De qué tipo es este concepto?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Work Orders' => 'Ordenes de Trabajo',
+ 'Work Phone' => 'Teléfono (Oficina)',
+ 'Year' => 'Año',
+ 'Year(s)' => '',
+ 'Yearend' => 'Fin del Año',
+ 'Yearend date missing!' => 'Falta fecha del Fin del Año',
+ 'Yearend posted!' => 'Fin del Año guardado!',
+ 'Yearend posting failed!' => 'No se puede guardar Fin del Año',
+ 'Years' => 'Años',
+ 'Yes' => 'Si',
+ 'You are logged out' => '¡Ud. está desconectado del sistema!',
+ 'You are posting an existing transaction!' => 'Está registrando una transacción existente!',
+ 'You are printing and posting an existing transaction!' => 'Está imprimiendo registrando una transacción existente!',
+ 'You are printing and saving an existing order' => 'Está imprimiendo y registrando un pedido existente',
+ 'You are printing and saving an existing quotation' => 'Está imprimiendo y registrando una cotización existente',
+ 'You are printing and saving an existing transaction!' => '',
+ 'You are saving an existing order' => 'Está registrando un pedido existente',
+ 'You are saving an existing quotation' => 'Está registrando una cotización existente',
+ 'You are saving an existing transaction!' => '',
+ 'You did not enter a name!' => 'No ha introducido el nombre',
+ 'You must enter a host and port for local and remote connections!' => 'Debe introducir una máquina servidor de bases de datos y un puerto para conexiones locales y remotas',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'account cannot be set to any other type of account' => 'No se puede cambiar a otro tipo de cuenta',
+ 'as at' => 'al',
+ 'days' => 'días',
+ 'does not exist' => 'no existe',
+ 'done' => 'hecho',
+ 'ea' => 'unid.',
+ 'failed' => 'falló',
+ 'for' => 'para',
+ 'for Period' => 'para el periodo',
+ 'is already a member!' => 'ya es actualmente un miembro',
+ 'localhost' => 'máquina local',
+ 'locked!' => 'Bloqueado!',
+ 'partsgroup' => '',
+ 'posted!' => 'Guardado',
+ 'sent' => 'Enviado',
+ 'successfully created!' => 'creado satisfactoriamente',
+ 'successfully deleted!' => 'borrado satisfactoriamente',
+ 'time(s)' => 'vez/veces',
+ 'unexpected error!' => '',
+ 'website' => 'sitio web',
+};
+
+1;
diff --git a/locale/co_utf/am b/locale/co_utf/am
new file mode 100755
index 00000000..b027f048
--- /dev/null
+++ b/locale/co_utf/am
@@ -0,0 +1,307 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP' => 'Facturas de Proveedores',
+ 'AR' => 'Factura de Ventas',
+ 'About' => 'Acerca de',
+ 'Account' => 'Cuenta',
+ 'Account Number' => 'Número de cuenta',
+ 'Account Number missing!' => 'No se ha definido el número de la cuenta',
+ 'Account Type' => 'Categoría de cuenta',
+ 'Account Type missing!' => 'No se ha definido el tipo de la cuenta',
+ 'Account deleted!' => '¡Cuenta borrada!',
+ 'Account does not exist!' => 'Cuenta no existe!',
+ 'Account saved!' => '¡Cuenta guardada!',
+ 'Accounting Menu' => 'Menú general',
+ 'Accrual' => 'Acumulado',
+ 'Activate Audit trail' => 'Activar Rastro Auditoría',
+ 'Add Account' => 'Añadir Cuenta',
+ 'Add Business' => 'Agregar Empresa',
+ 'Add Department' => 'Agregar Centro de Costos',
+ 'Add GIFI' => 'Añadir cuenta PUC',
+ 'Add Language' => 'Agregar Idioma',
+ 'Add SIC' => 'Agregar SIC',
+ 'Add Warehouse' => 'Agregar Bodega',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Total',
+ 'Asset' => 'Activo',
+ 'Audit Control' => 'Control de Auditoría',
+ 'Audit trail disabled' => 'Rastro de Auditoría desactivado',
+ 'Audit trail enabled' => 'Rastro de Auditoría activado',
+ 'Audit trail removed up to' => 'Rastro de Auditoría removido hasta',
+ 'Backup sent to' => 'Copia de seguridad enviada a',
+ 'Bin List' => 'Lista Empaque',
+ 'Books are open' => 'Los libros están abiertos',
+ 'Business Number' => 'Numero de negocio',
+ 'Business deleted!' => 'Empresa eliminada!',
+ 'Business saved!' => 'Empresa guardada!',
+ 'COGS' => 'Costo de los artículos',
+ 'Cannot delete account!' => '¡No se puede borrar la cuenta!',
+ 'Cannot delete default account!' => 'No se puede borrar la cuenta por omisión',
+ 'Cannot save account!' => '¡No se puede guardar la cuenta!',
+ 'Cannot save defaults!' => 'No puedo guardar preferencias!',
+ 'Cannot save preferences!' => '¡No se puede guardar las preferencias!',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Tiene que seleccionar cuenta!',
+ 'Cannot set multiple options for' => 'No puedo crear multiples opciones para',
+ 'Cash' => 'Efectivo',
+ 'Chart of Accounts' => 'Plan de cuentas',
+ 'Close Books up to' => 'Cerrar los libros hasta',
+ 'Code' => 'Código',
+ 'Code missing!' => 'Falta código',
+ 'Company' => 'Empresa',
+ 'Confirm' => 'Confirmar',
+ 'Confirm!' => 'Confirmar',
+ 'Continue' => 'Continuar',
+ 'Contra' => 'Cuentas del Orden',
+ 'Copy to COA' => 'Copiar al plan de cuentas',
+ 'Cost Center' => 'Centro de Costos (Gastos)',
+ 'Credit' => 'Crédito',
+ 'Customer Number' => 'Número del cliente',
+ 'Database Host' => 'Máquina servidor de base de datos',
+ 'Dataset' => 'Base de datos',
+ 'Date Format' => 'Formato de fecha',
+ 'Day' => 'Día',
+ 'Days' => 'Dias',
+ 'Debit' => 'Débito',
+ 'Default Template' => 'Plantilla Predeterminada',
+ 'Defaults saved!' => 'Guardado!',
+ 'Delete' => 'Borrar',
+ 'Delete Account' => 'Borrar cuenta',
+ 'Deleting a language will also delete the templates for the language' => 'Borrar la idioma tambien borra las plantillas de la idoma',
+ 'Department deleted!' => 'Centro de Costos borrado!',
+ 'Department saved!' => 'Centro de Costos guardado!',
+ 'Departments' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Description missing!' => 'Falta Descripción',
+ 'Discount' => 'Descuento',
+ 'Dropdown Limit' => 'Límite de efectivo',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'Edit' => 'Editar',
+ 'Edit Account' => 'Editar cuenta',
+ 'Edit Business' => 'Editar empresa',
+ 'Edit Department' => 'Editar Centro de Costos',
+ 'Edit GIFI' => 'Editar PUC',
+ 'Edit Language' => 'Editar Idioma',
+ 'Edit Preferences for' => 'Editar preferencias de',
+ 'Edit SIC' => 'Editar SIC',
+ 'Edit Template' => 'Editar Plantilla',
+ 'Edit Warehouse' => 'Editar Bodega',
+ 'Employee Number' => 'Número de Empleado',
+ 'Ends' => 'Finaliza',
+ 'Enforce transaction reversal for all dates' => 'Forzar la anulación de las transacciones para todas las fechas',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Introduzca hasta 3 letras separadas por dos puntos (p.e. CAD:USD:EUR) para las monedas locales y las extranjeras',
+ 'Equity' => 'Balance',
+ 'Every' => 'Cada',
+ 'Expense' => 'Gastos',
+ 'Expense/Asset' => 'Gastos/Activo',
+ 'Fax' => 'Fax',
+ 'Foreign Exchange Gain' => 'Ganancia en moneda extranjera',
+ 'Foreign Exchange Loss' => 'Pérdida en moneda extranjera',
+ 'GIFI' => 'Plan Único de Cuentas (PUC)',
+ 'GIFI deleted!' => '¡Borrado el código PUC!',
+ 'GIFI missing!' => 'No se ha definido el código PUC',
+ 'GIFI saved!' => '¡Guardado el código PUC!',
+ 'GL' => 'Nota Contable',
+ 'GL Transaction' => 'Nota de Contabilidad',
+ 'Heading' => 'Encabezado',
+ 'ID' => 'ID',
+ 'Include in drop-down menus' => 'Incluir en menúes desplegables:',
+ 'Income' => 'Ingreso',
+ 'Inventory' => 'Inventario',
+ 'Invoice' => 'Factura de Venta',
+ 'Is this a summary account to record' => '¿Es esta una cuenta de Cartera por Cobrar/Pagar?',
+ 'Language' => 'Idioma',
+ 'Language deleted!' => 'Idioma Borrada!',
+ 'Language saved!' => 'Idioma Guardada!',
+ 'Languages' => 'Idiomas',
+ 'Last Numbers & Default Accounts' => 'Últimos números y cuentas por omisión',
+ 'Liability' => 'Pasivo',
+ 'Licensed to' => 'Adaptado para',
+ 'Link' => 'Enlaces',
+ 'Menu Width' => 'Ancho del Menu',
+ 'Method' => 'Metódo',
+ 'Month' => 'Mes',
+ 'Months' => 'Meses',
+ 'Name' => 'Nombre',
+ 'Next' => 'Proximo',
+ 'No' => 'No',
+ 'No email address for' => 'Falta la dirección de correo electrónico de',
+ 'Number' => 'Número',
+ 'Number Format' => 'Formato de número',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Albarán',
+ 'Password' => 'Contraseña',
+ 'Password does not match!' => '¡Contraseña incorrecta!',
+ 'Payables' => 'Por Pagar',
+ 'Payment' => 'Comprobante de Egreso',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Empaque',
+ 'Posting' => 'Registro',
+ 'Postscript' => 'Postscript',
+ 'Preferences saved!' => 'Preferencias guardadas',
+ 'Print' => 'Imprimir',
+ 'Printer' => 'Impresora',
+ 'Printing' => 'Imprimiendo',
+ 'Process Transactions' => 'Procesar Transacción',
+ 'Profit Center' => 'Centro de Costo (Ingresos)',
+ 'Purchase Order' => 'Pedido',
+ 'Purchase Order Number' => 'Número de Orden de Compra',
+ 'Purchase Orders' => 'Pedidos',
+ 'RFQ Number' => 'Número de Cotización',
+ 'Rate' => 'Tarifa',
+ 'Receivables' => 'Cobros',
+ 'Recurring Transactions' => 'Transacciones Recurrentes',
+ 'Reference' => 'Referencia',
+ 'Remove Audit trail up to' => 'Remover Rastro de Auditoría hasta',
+ 'Retained Earnings' => 'Resultado del Ejercicio',
+ 'SIC deleted!' => 'SIC borrado!',
+ 'SIC saved!' => 'SIC guardado!',
+ 'Sales Invoice' => 'Facturas de Ventas',
+ 'Sales Order' => 'Orden de Venta',
+ 'Sales Order Number' => 'N°de Pedido',
+ 'Sales Orders' => 'Ordenes de Venta',
+ 'Sales Quotation Number' => 'N°de Cotización de Venta',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Saving' => 'Guardando',
+ 'Sending' => 'Enviando',
+ 'Session Timeout' => '¡Sesión Caducó!',
+ 'Signature' => 'Firma',
+ 'Standard Industrial Codes' => 'Standard Industrial Codes (Código Industrial)',
+ 'Stylesheet' => 'Hoja de Estilo',
+ 'System Defaults' => 'Predeterminados del Sistema',
+ 'Tax' => 'Impuestos',
+ 'Template saved!' => '¡Plantilla guardada!',
+ 'Times' => 'Veces',
+ 'Transaction' => 'Asiento',
+ 'Transaction reversal enforced for all dates' => 'Se ha forzado la anulación de las transacciones para todas las fechas',
+ 'Transaction reversal enforced up to' => 'Se ha forzado la anulación de las transacciones hasta',
+ 'Type of Business' => 'Clase de Negocio',
+ 'Update' => 'Actualizar',
+ 'User' => 'Usuario',
+ 'Vendor Invoice' => 'Factura de Proveedor',
+ 'Vendor Number' => 'Código Vendedor',
+ 'Version' => 'Versión',
+ 'Warehouse deleted!' => 'Bodega borrado',
+ 'Warehouse saved!' => 'Bodegas guardado',
+ 'Warehouses' => 'Bodegas',
+ 'Week' => 'Semana',
+ 'Weeks' => 'Semanas',
+ 'Weight Unit' => 'Unidad de peso',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Year' => 'Año',
+ 'Yearend' => 'Fin del Año',
+ 'Yearend date missing!' => 'Falta fecha del Fin del Año',
+ 'Yearend posted!' => 'Fin del Año guardado!',
+ 'Yearend posting failed!' => 'No se puede guardar Fin del Año',
+ 'Years' => 'Años',
+ 'Yes' => 'Si',
+ 'account cannot be set to any other type of account' => 'No se puede cambiar a otro tipo de cuenta',
+ 'done' => 'hecho',
+ 'failed' => 'falló',
+ 'localhost' => 'máquina local',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'añadir_cuenta' => 'add_account',
+ 'agregar_empresa' => 'add_business',
+ 'agregar_centro_de_costos' => 'add_department',
+ 'agregar_idioma' => 'add_language',
+ 'agregar_sic' => 'add_sic',
+ 'agregar_bodega' => 'add_warehouse',
+ 'continuar' => 'continue',
+ 'copiar_al_plan_de_cuentas' => 'copy_to_coa',
+ 'borrar' => 'delete',
+ 'editar' => 'edit',
+ 'editar_cuenta' => 'edit_account',
+ 'procesar_transacción' => 'process_transactions',
+ 'guardar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/co_utf/ap b/locale/co_utf/ap
new file mode 100755
index 00000000..39a2fe69
--- /dev/null
+++ b/locale/co_utf/ap
@@ -0,0 +1,235 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Outstanding' => 'Impagados Proveedores',
+ 'AP Transaction' => 'Transaccion Proveedor',
+ 'AP Transactions' => 'Gestiones de pagos',
+ 'AR Outstanding' => 'Impagados Cartera',
+ 'AR Transaction' => 'Cuentas por Cobrar',
+ 'AR Transactions' => 'Cuentas por Cobrar',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Add AP Transaction' => 'Añadir Transacción por Pagar',
+ 'Add AR Transaction' => 'Añadir Transacción por Cobrar',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Por Pagar',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => '¿Está seguro de que desea borrar la transacción?',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => '¡No se puede borrar la transacción!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo ya cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar una transacción para un periodo cerrado',
+ 'Cannot post transaction!' => '¡No se puede registrar la transacción',
+ 'Cc' => 'Cc',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Cerrado',
+ 'Confirm!' => 'Confirmar',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Limite de credito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Date Paid' => 'Fecha de pago',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delete Schedule' => 'Borrar Programación',
+ 'Department' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'Due Date missing!' => 'Falta la fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail message' => 'Mensaje Email',
+ 'Edit AP Transaction' => 'Editar Asiento de CxP',
+ 'Edit AR Transaction' => 'Editar Asiento de CxC',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Every' => 'Cada',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate for payment missing!' => 'Falta Tasa de Cambio',
+ 'Exchange rate missing!' => 'Falta Tasa de Cambio',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'For' => 'Para',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'Include Payment' => 'Incluir Pago',
+ 'Include in Report' => 'Incluir en informe',
+ 'Invoice' => 'Factura de Venta',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Manager' => 'Administrador',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Message' => 'Mensaje',
+ 'Month' => 'Mes',
+ 'Next Date' => 'Proxima Fecha',
+ 'No.' => 'No.',
+ 'Notes' => 'Notas',
+ 'Nothing to print!' => '¡No hay nada que imprimir!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Number' => 'Número de orden',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Número pedido',
+ 'Paid' => 'Pagado',
+ 'Payment date missing!' => 'No se encuentra la fecha de pago',
+ 'Payments' => 'Pagos',
+ 'Period' => 'Periodo',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como Nuevo',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => 'Proyecto no existe!',
+ 'Quarter' => 'Trimestre',
+ 'Receipt' => 'Recibo',
+ 'Recurring Transaction' => 'Transacción Recurrente',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Resto',
+ 'Repeat' => 'Repetir',
+ 'Sales Invoice.' => 'Factura de Ventas.',
+ 'Salesperson' => 'Vendedor',
+ 'Save Schedule' => 'Guardar Programación',
+ 'Schedule' => 'Programar Recurrencia',
+ 'Scheduled' => 'Programado',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Selecciona uno de los proyectos abajo',
+ 'Select payment' => '¡Seleccione Pago!',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Ship to' => 'Destino',
+ 'Ship via' => 'Envio por',
+ 'Shipping Point' => 'Destino',
+ 'Source' => 'Fuente',
+ 'Startdate' => 'Fecha inicial',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Résumen',
+ 'Tax' => 'Impuestos',
+ 'Tax Included' => 'Impuestos Incluidos',
+ 'Till' => 'Caja',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Transaction' => 'Asiento',
+ 'Transaction deleted!' => '¡Transacción borrada!',
+ 'Transaction posted!' => '¡Transacción registrada!',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice.' => 'Factura de Proveedor.',
+ 'Vendor missing!' => '¡Falta el proveedor!',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Warning!' => 'Alerta!',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+ 'You are posting an existing transaction!' => 'Está registrando una transacción existente!',
+ 'You are printing and posting an existing transaction!' => 'Está imprimiendo registrando una transacción existente!',
+ 'You are printing and saving an existing order' => 'Está imprimiendo y registrando un pedido existente',
+ 'You are printing and saving an existing quotation' => 'Está imprimiendo y registrando una cotización existente',
+ 'You are saving an existing order' => 'Está registrando un pedido existente',
+ 'You are saving an existing quotation' => 'Está registrando una cotización existente',
+ 'for' => 'para',
+ 'sent' => 'Enviado',
+ 'time(s)' => 'vez/veces',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'transaccion_proveedor' => 'ap_transaction',
+ 'cuentas_por_cobrar' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'borrar_programación' => 'delete_schedule',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'imprimir_y_registrar' => 'print_and_post',
+ 'factura_de_ventas_' => 'sales_invoice_',
+ 'guardar_programación' => 'save_schedule',
+ 'programar_recurrencia' => 'schedule',
+ 'destino' => 'ship_to',
+ 'actualizar' => 'update',
+ 'factura_de_proveedor_' => 'vendor_invoice_',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/co_utf/ar b/locale/co_utf/ar
new file mode 100755
index 00000000..39a2fe69
--- /dev/null
+++ b/locale/co_utf/ar
@@ -0,0 +1,235 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Outstanding' => 'Impagados Proveedores',
+ 'AP Transaction' => 'Transaccion Proveedor',
+ 'AP Transactions' => 'Gestiones de pagos',
+ 'AR Outstanding' => 'Impagados Cartera',
+ 'AR Transaction' => 'Cuentas por Cobrar',
+ 'AR Transactions' => 'Cuentas por Cobrar',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Add AP Transaction' => 'Añadir Transacción por Pagar',
+ 'Add AR Transaction' => 'Añadir Transacción por Cobrar',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Por Pagar',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => '¿Está seguro de que desea borrar la transacción?',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => '¡No se puede borrar la transacción!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo ya cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar una transacción para un periodo cerrado',
+ 'Cannot post transaction!' => '¡No se puede registrar la transacción',
+ 'Cc' => 'Cc',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Cerrado',
+ 'Confirm!' => 'Confirmar',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Limite de credito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Date Paid' => 'Fecha de pago',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delete Schedule' => 'Borrar Programación',
+ 'Department' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'Due Date missing!' => 'Falta la fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail message' => 'Mensaje Email',
+ 'Edit AP Transaction' => 'Editar Asiento de CxP',
+ 'Edit AR Transaction' => 'Editar Asiento de CxC',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Every' => 'Cada',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate for payment missing!' => 'Falta Tasa de Cambio',
+ 'Exchange rate missing!' => 'Falta Tasa de Cambio',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'For' => 'Para',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'Include Payment' => 'Incluir Pago',
+ 'Include in Report' => 'Incluir en informe',
+ 'Invoice' => 'Factura de Venta',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Manager' => 'Administrador',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Message' => 'Mensaje',
+ 'Month' => 'Mes',
+ 'Next Date' => 'Proxima Fecha',
+ 'No.' => 'No.',
+ 'Notes' => 'Notas',
+ 'Nothing to print!' => '¡No hay nada que imprimir!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Number' => 'Número de orden',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Número pedido',
+ 'Paid' => 'Pagado',
+ 'Payment date missing!' => 'No se encuentra la fecha de pago',
+ 'Payments' => 'Pagos',
+ 'Period' => 'Periodo',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como Nuevo',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => 'Proyecto no existe!',
+ 'Quarter' => 'Trimestre',
+ 'Receipt' => 'Recibo',
+ 'Recurring Transaction' => 'Transacción Recurrente',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Resto',
+ 'Repeat' => 'Repetir',
+ 'Sales Invoice.' => 'Factura de Ventas.',
+ 'Salesperson' => 'Vendedor',
+ 'Save Schedule' => 'Guardar Programación',
+ 'Schedule' => 'Programar Recurrencia',
+ 'Scheduled' => 'Programado',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Selecciona uno de los proyectos abajo',
+ 'Select payment' => '¡Seleccione Pago!',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Ship to' => 'Destino',
+ 'Ship via' => 'Envio por',
+ 'Shipping Point' => 'Destino',
+ 'Source' => 'Fuente',
+ 'Startdate' => 'Fecha inicial',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Résumen',
+ 'Tax' => 'Impuestos',
+ 'Tax Included' => 'Impuestos Incluidos',
+ 'Till' => 'Caja',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Transaction' => 'Asiento',
+ 'Transaction deleted!' => '¡Transacción borrada!',
+ 'Transaction posted!' => '¡Transacción registrada!',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice.' => 'Factura de Proveedor.',
+ 'Vendor missing!' => '¡Falta el proveedor!',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Warning!' => 'Alerta!',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+ 'You are posting an existing transaction!' => 'Está registrando una transacción existente!',
+ 'You are printing and posting an existing transaction!' => 'Está imprimiendo registrando una transacción existente!',
+ 'You are printing and saving an existing order' => 'Está imprimiendo y registrando un pedido existente',
+ 'You are printing and saving an existing quotation' => 'Está imprimiendo y registrando una cotización existente',
+ 'You are saving an existing order' => 'Está registrando un pedido existente',
+ 'You are saving an existing quotation' => 'Está registrando una cotización existente',
+ 'for' => 'para',
+ 'sent' => 'Enviado',
+ 'time(s)' => 'vez/veces',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'transaccion_proveedor' => 'ap_transaction',
+ 'cuentas_por_cobrar' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'borrar_programación' => 'delete_schedule',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'imprimir_y_registrar' => 'print_and_post',
+ 'factura_de_ventas_' => 'sales_invoice_',
+ 'guardar_programación' => 'save_schedule',
+ 'programar_recurrencia' => 'schedule',
+ 'destino' => 'ship_to',
+ 'actualizar' => 'update',
+ 'factura_de_proveedor_' => 'vendor_invoice_',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/co_utf/arap b/locale/co_utf/arap
new file mode 100755
index 00000000..2d9ee106
--- /dev/null
+++ b/locale/co_utf/arap
@@ -0,0 +1,72 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Address' => 'Dirección',
+ 'Bcc' => 'Bcc',
+ 'Cc' => 'Cc',
+ 'Continue' => 'Continuar',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Delete Schedule' => 'Borrar Programación',
+ 'Description' => 'Descripción',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail message' => 'Mensaje Email',
+ 'Every' => 'Cada',
+ 'For' => 'Para',
+ 'Include Payment' => 'Incluir Pago',
+ 'Message' => 'Mensaje',
+ 'Next Date' => 'Proxima Fecha',
+ 'Number' => 'Número',
+ 'Print' => 'Imprimir',
+ 'Project not on file!' => 'Proyecto no existe!',
+ 'Recurring Transaction' => 'Transacción Recurrente',
+ 'Reference' => 'Referencia',
+ 'Repeat' => 'Repetir',
+ 'Save Schedule' => 'Guardar Programación',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Selecciona uno de los proyectos abajo',
+ 'Startdate' => 'Fecha inicial',
+ 'Subject' => 'Asunto',
+ 'To' => 'Hasta ',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Warning!' => 'Alerta!',
+ 'You are posting an existing transaction!' => 'Está registrando una transacción existente!',
+ 'You are printing and posting an existing transaction!' => 'Está imprimiendo registrando una transacción existente!',
+ 'You are printing and saving an existing order' => 'Está imprimiendo y registrando un pedido existente',
+ 'You are printing and saving an existing quotation' => 'Está imprimiendo y registrando una cotización existente',
+ 'You are saving an existing order' => 'Está registrando un pedido existente',
+ 'You are saving an existing quotation' => 'Está registrando una cotización existente',
+ 'for' => 'para',
+ 'sent' => 'Enviado',
+ 'time(s)' => 'vez/veces',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuar' => 'continue',
+ 'borrar_programación' => 'delete_schedule',
+ 'guardar_programación' => 'save_schedule',
+};
+
+1;
+
diff --git a/locale/co_utf/arapprn b/locale/co_utf/arapprn
new file mode 100755
index 00000000..f69ceb75
--- /dev/null
+++ b/locale/co_utf/arapprn
@@ -0,0 +1,35 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Amount' => 'Total',
+ 'Continue' => 'Continuar',
+ 'Date' => 'Fecha',
+ 'Memo' => 'Memo',
+ 'Nothing to print!' => '¡No hay nada que imprimir!',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'Postscript',
+ 'Printed' => 'Impreso',
+ 'Scheduled' => 'Programado',
+ 'Screen' => 'Pantalla',
+ 'Select payment' => '¡Seleccione Pago!',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Source' => 'Fuente',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/co_utf/bp b/locale/co_utf/bp
new file mode 100755
index 00000000..1c871f8e
--- /dev/null
+++ b/locale/co_utf/bp
@@ -0,0 +1,70 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Seguro que quieres remover las entradas seleccionadas de la cola?',
+ 'Bin Lists' => 'Listas Empaque',
+ 'Cannot remove files!' => 'No puedo borrar archivos!',
+ 'Confirm!' => 'Confirmar',
+ 'Continue' => 'Continuar',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Date' => 'Fecha',
+ 'Employee' => 'Colaborador/Empleado',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'Invoice' => 'Factura de Venta',
+ 'Invoice Number' => 'Número de factura',
+ 'Marked entries printed!' => 'Selección impresa',
+ 'Month' => 'Mes',
+ 'Order' => 'Orden',
+ 'Order Number' => 'Número de orden',
+ 'Packing Lists' => 'Lista de empaque',
+ 'Period' => 'Periodo',
+ 'Pick Lists' => 'Listas de Empaque',
+ 'Print' => 'Imprimir',
+ 'Printing' => 'Imprimiendo',
+ 'Purchase Orders' => 'Pedidos',
+ 'Quarter' => 'Trimestre',
+ 'Quotation' => 'Cotización',
+ 'Quotation Number' => 'Número cotización',
+ 'Quotations' => 'Cotizaciones',
+ 'RFQs' => 'Cotizaciones solicitados',
+ 'Remove' => 'Eliminar',
+ 'Removed spoolfiles!' => 'Archivos eliminados de la cola',
+ 'Removing marked entries from queue ...' => 'Removiendo entradas sellecionads de la cola...',
+ 'Sales Invoices' => 'Factura de Venta',
+ 'Sales Orders' => 'Ordenes de Venta',
+ 'Select all' => 'Guardar todo',
+ 'Spoolfile' => 'Cola de Impresión',
+ 'To' => 'Hasta ',
+ 'Vendor' => 'Proveedor',
+ 'Work Orders' => 'Ordenes de Trabajo',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+ 'done' => 'hecho',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'imprimir' => 'print',
+ 'eliminar' => 'remove',
+ 'guardar_todo' => 'select_all',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/co_utf/ca b/locale/co_utf/ca
new file mode 100755
index 00000000..b6372d30
--- /dev/null
+++ b/locale/co_utf/ca
@@ -0,0 +1,61 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Balance',
+ 'Chart of Accounts' => 'Plan de cuentas',
+ 'Credit' => 'Crédito',
+ 'Current' => 'Actual',
+ 'Date' => 'Fecha',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Department' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'De',
+ 'GIFI' => 'Plan Único de Cuentas (PUC)',
+ 'Include in Report' => 'Incluir en informe',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'List Transactions' => 'Mostrar Transacciones',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Month' => 'Mes',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Period' => 'Periodo',
+ 'Project Number' => 'Número del Proyecto',
+ 'Quarter' => 'Trimestre',
+ 'R' => 'R',
+ 'Reference' => 'Referencia',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'Hasta ',
+ 'Year' => 'Año',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'mostrar_transacciones' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/co_utf/cp b/locale/co_utf/cp
new file mode 100755
index 00000000..f6f728d0
--- /dev/null
+++ b/locale/co_utf/cp
@@ -0,0 +1,144 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP' => 'Facturas de Proveedores',
+ 'AR' => 'Factura de Ventas',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Address' => 'Dirección',
+ 'All' => 'Todos',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Por Pagar',
+ 'Bcc' => 'Bcc',
+ 'Cannot post Payment!' => 'No puedo guardar pago',
+ 'Cannot post Receipt!' => 'No puedo guardar recibo',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo ya cerrado!',
+ 'Cc' => 'Cc',
+ 'Continue' => 'Continuar',
+ 'Currency' => 'Moneda',
+ 'Customer' => 'Cliente',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Date missing!' => '¡Falta la fecha!',
+ 'Delete Schedule' => 'Borrar Programación',
+ 'Department' => 'Centro de Costos',
+ 'Deposit' => 'Depósito',
+ 'Description' => 'Descripción',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail message' => 'Mensaje Email',
+ 'Every' => 'Cada',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate missing!' => 'Falta Tasa de Cambio',
+ 'For' => 'Para',
+ 'From' => 'De',
+ 'Include Payment' => 'Incluir Pago',
+ 'Invoice' => 'Factura de Venta',
+ 'Invoices' => 'Facturas',
+ 'Language' => 'Idioma',
+ 'Memo' => 'Memo',
+ 'Message' => 'Mensaje',
+ 'Next Date' => 'Proxima Fecha',
+ 'Number' => 'Número',
+ 'PDF' => 'PDF',
+ 'Payment' => 'Comprobante de Egreso',
+ 'Payment posted!' => '¡Pago registrado!',
+ 'Payments' => 'Pagos',
+ 'Post' => 'Registrar',
+ 'Postscript' => 'Postscript',
+ 'Prepayment' => 'Anticipio',
+ 'Print' => 'Imprimir',
+ 'Project not on file!' => 'Proyecto no existe!',
+ 'Receipt' => 'Recibo',
+ 'Receipt posted!' => 'Recibo agregado',
+ 'Receipts' => 'Recibos',
+ 'Recurring Transaction' => 'Transacción Recurrente',
+ 'Reference' => 'Referencia',
+ 'Repeat' => 'Repetir',
+ 'Save Schedule' => 'Guardar Programación',
+ 'Screen' => 'Pantalla',
+ 'Select' => 'Seleccionar',
+ 'Select all' => 'Guardar todo',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Selecciona uno de los proyectos abajo',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Source' => 'Fuente',
+ 'Startdate' => 'Fecha inicial',
+ 'Subject' => 'Asunto',
+ 'To' => 'Hasta ',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Warning!' => 'Alerta!',
+ 'You are posting an existing transaction!' => 'Está registrando una transacción existente!',
+ 'You are printing and posting an existing transaction!' => 'Está imprimiendo registrando una transacción existente!',
+ 'You are printing and saving an existing order' => 'Está imprimiendo y registrando un pedido existente',
+ 'You are printing and saving an existing quotation' => 'Está imprimiendo y registrando una cotización existente',
+ 'You are saving an existing order' => 'Está registrando un pedido existente',
+ 'You are saving an existing quotation' => 'Está registrando una cotización existente',
+ 'for' => 'para',
+ 'sent' => 'Enviado',
+ 'time(s)' => 'vez/veces',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuar' => 'continue',
+ 'borrar_programación' => 'delete_schedule',
+ 'registrar' => 'post',
+ 'imprimir' => 'print',
+ 'guardar_programación' => 'save_schedule',
+ 'guardar_todo' => 'select_all',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/co_utf/ct b/locale/co_utf/ct
new file mode 100755
index 00000000..ba61541c
--- /dev/null
+++ b/locale/co_utf/ct
@@ -0,0 +1,189 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Transaction' => 'Transaccion Proveedor',
+ 'AP Transactions' => 'Gestiones de pagos',
+ 'AR Transaction' => 'Cuentas por Cobrar',
+ 'AR Transactions' => 'Cuentas por Cobrar',
+ 'Accounting Menu' => 'Menú general',
+ 'Active' => 'Activo',
+ 'Add Customer' => 'Añadir Cliente',
+ 'Add Vendor' => 'Añadir Proveedor',
+ 'Address' => 'Dirección',
+ 'All' => 'Todos',
+ 'Amount' => 'Total',
+ 'BIC' => 'BIC',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Dirección Factura',
+ 'Break' => 'Pausa',
+ 'Cannot delete customer!' => '¡No se puede borrar el cliente!',
+ 'Cannot delete vendor!' => '¡No se puede borrar el vendedor!',
+ 'Cc' => 'Cc',
+ 'City' => 'Ciudad',
+ 'Closed' => 'Cerrado',
+ 'Company Name' => 'Nombre de la empresa',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Cost' => 'Costo',
+ 'Could not save pricelist!' => '¡No se pudo guradar lista de precios!',
+ 'Country' => 'País',
+ 'Credit Limit' => 'Limite de credito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Customer History' => 'Historial del Cliente',
+ 'Customer Number' => 'Número del cliente',
+ 'Customer deleted!' => '¡Cliente borrado!',
+ 'Customer saved!' => '¡Cliente guardado!',
+ 'Customers' => 'Clientes',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Discount' => 'Descuento',
+ 'E-mail' => 'Correo electrónico',
+ 'Edit Customer' => 'Editar Cliente',
+ 'Edit Vendor' => 'Editar Proveedor',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Enddate' => 'Fecha final',
+ 'Fax' => 'Fax',
+ 'From' => 'De',
+ 'GIFI' => 'Plan Único de Cuentas (PUC)',
+ 'Group' => 'Grupo',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Invoice' => 'Factura de Venta',
+ 'Item already on pricelist!' => '¡Artículo está incluido en la lista de precios!',
+ 'Item not on file!' => 'El concepto no se encuentra en ningún archivo',
+ 'Language' => 'Idioma',
+ 'Leadtime' => 'Plazo',
+ 'Manager' => 'Administrador',
+ 'Name' => 'Nombre',
+ 'Name missing!' => '¡Falta el nombre!',
+ 'No.' => 'No.',
+ 'Notes' => 'Notas',
+ 'Number' => 'Número',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Orphaned' => 'Huérfano',
+ 'POS' => 'Punto de Venta',
+ 'Phone' => 'Teléfono',
+ 'Pricegroup' => 'Grupo de Precios',
+ 'Pricelist' => 'Lista de Precios',
+ 'Project Number' => 'Número del Proyecto',
+ 'Purchase Order' => 'Pedido',
+ 'Purchase Orders' => 'Pedidos',
+ 'Qty' => 'Cantidad',
+ 'Quotation' => 'Cotización',
+ 'Quotations' => 'Cotizaciones',
+ 'RFQ' => 'Solicitar Cotización',
+ 'Request for Quotations' => 'Solicitar Cotizaciones',
+ 'SIC' => 'SIC',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Facturas de Ventas',
+ 'Sales Invoices' => 'Factura de Venta',
+ 'Sales Order' => 'Orden de Venta',
+ 'Sales Orders' => 'Ordenes de Venta',
+ 'Salesperson' => 'Vendedor',
+ 'Save' => 'Guardar',
+ 'Save Pricelist' => 'Guardar Lista de Precios',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Search' => 'Búsqueda',
+ 'Select items' => 'Seleccionar Itemes',
+ 'Sell Price' => 'Precio de venta',
+ 'Serial Number' => 'Número del Serial',
+ 'Shipping Address' => 'Dirección del envio',
+ 'Startdate' => 'Fecha inicial',
+ 'State' => 'Departamento',
+ 'State/Province' => 'Departamento',
+ 'Sub-contract GIFI' => 'Sub-Contrato PUC',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Résumen',
+ 'Tax' => 'Impuestos',
+ 'Tax Included' => 'Impuestos Incluidos',
+ 'Tax Number' => 'NIT/CC',
+ 'Tax Number / SSN' => 'NIT./CC./CE.',
+ 'Taxable' => 'Impuestos Gravables',
+ 'Terms' => 'Condiciones',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Type of Business' => 'Clase de Negocio',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Vendor History' => 'Historial Proveedor',
+ 'Vendor Invoice' => 'Factura de Proveedor',
+ 'Vendor Invoices' => 'Facturas de Proveedor',
+ 'Vendor Number' => 'Código Vendedor',
+ 'Vendor deleted!' => '¡Proveedor borrado!',
+ 'Vendor saved!' => '¡Proveedor guardado!',
+ 'Vendors' => 'Proveedores',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'days' => 'días',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'transaccion_proveedor' => 'ap_transaction',
+ 'cuentas_por_cobrar' => 'ar_transaction',
+ 'añadir_cliente' => 'add_customer',
+ 'añadir_proveedor' => 'add_vendor',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'punto_de_venta' => 'pos',
+ 'lista_de_precios' => 'pricelist',
+ 'pedido' => 'purchase_order',
+ 'cotización' => 'quotation',
+ 'solicitar_cotización' => 'rfq',
+ 'facturas_de_ventas' => 'sales_invoice',
+ 'orden_de_venta' => 'sales_order',
+ 'guardar' => 'save',
+ 'guardar_lista_de_precios' => 'save_pricelist',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+ 'factura_de_proveedor' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/co_utf/gl b/locale/co_utf/gl
new file mode 100755
index 00000000..7cf9f41a
--- /dev/null
+++ b/locale/co_utf/gl
@@ -0,0 +1,182 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Transaction' => 'Transaccion Proveedor',
+ 'AR Transaction' => 'Cuentas por Cobrar',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Add Cash Transfer Transaction' => 'Agregar Transacción Efectivo',
+ 'Add General Ledger Transaction' => 'Añadir Nota de Contabilidad',
+ 'Address' => 'Dirección',
+ 'All' => 'Todos',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => '¿Está seguro de que desea borrar la transacción?',
+ 'Asset' => 'Activo',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Balance',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => '¡No se puede borrar la transacción!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar una transacción para un periodo cerrado',
+ 'Cannot post transaction!' => '¡No se puede registrar la transacción',
+ 'Cc' => 'Cc',
+ 'Confirm!' => 'Confirmar',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Current' => 'Actual',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delete Schedule' => 'Borrar Programación',
+ 'Department' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail message' => 'Mensaje Email',
+ 'Edit Cash Transfer Transaction' => 'Editar Transacción en Effectivo',
+ 'Edit General Ledger Transaction' => 'Editar Notas Contables',
+ 'Equity' => 'Balance',
+ 'Every' => 'Cada',
+ 'Expense' => 'Gastos',
+ 'FX' => 'Tasa de Cambio',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'For' => 'Para',
+ 'From' => 'De',
+ 'GIFI' => 'Plan Único de Cuentas (PUC)',
+ 'GL Transaction' => 'Nota de Contabilidad',
+ 'General Ledger' => 'Notas de Contabilidad',
+ 'ID' => 'ID',
+ 'Include Payment' => 'Incluir Pago',
+ 'Include in Report' => 'Incluir en informe',
+ 'Income' => 'Ingreso',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Liability' => 'Pasivo',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Message' => 'Mensaje',
+ 'Month' => 'Mes',
+ 'Next Date' => 'Proxima Fecha',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Out of balance transaction!' => 'Transacción fuera de Balance!',
+ 'Period' => 'Periodo',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como Nuevo',
+ 'Print' => 'Imprimir',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => 'Proyecto no existe!',
+ 'Quarter' => 'Trimestre',
+ 'R' => 'R',
+ 'Recurring Transaction' => 'Transacción Recurrente',
+ 'Reference' => 'Referencia',
+ 'Repeat' => 'Repetir',
+ 'Reports' => 'Informes',
+ 'Sales Invoice ' => 'Facturas de Ventas ',
+ 'Save Schedule' => 'Guardar Programación',
+ 'Schedule' => 'Programar Recurrencia',
+ 'Scheduled' => 'Programado',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Selecciona uno de los proyectos abajo',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Source' => 'Fuente',
+ 'Startdate' => 'Fecha inicial',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'Hasta ',
+ 'Transaction Date missing!' => 'No se ha definido la fecha de la transacción',
+ 'Transaction deleted!' => '¡Transacción borrada!',
+ 'Transaction posted!' => '¡Transacción registrada!',
+ 'Update' => 'Actualizar',
+ 'Vendor Invoice ' => 'Factura de Proveedor ',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Warning!' => 'Alerta!',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+ 'You are posting an existing transaction!' => 'Está registrando una transacción existente!',
+ 'You are printing and posting an existing transaction!' => 'Está imprimiendo registrando una transacción existente!',
+ 'You are printing and saving an existing order' => 'Está imprimiendo y registrando un pedido existente',
+ 'You are printing and saving an existing quotation' => 'Está imprimiendo y registrando una cotización existente',
+ 'You are saving an existing order' => 'Está registrando un pedido existente',
+ 'You are saving an existing quotation' => 'Está registrando una cotización existente',
+ 'for' => 'para',
+ 'sent' => 'Enviado',
+ 'time(s)' => 'vez/veces',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'transaccion_proveedor' => 'ap_transaction',
+ 'cuentas_por_cobrar' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'borrar_programación' => 'delete_schedule',
+ 'nota_de_contabilidad' => 'gl_transaction',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'facturas_de_ventas_' => 'sales_invoice_',
+ 'guardar_programación' => 'save_schedule',
+ 'programar_recurrencia' => 'schedule',
+ 'actualizar' => 'update',
+ 'factura_de_proveedor_' => 'vendor_invoice_',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/co_utf/hr b/locale/co_utf/hr
new file mode 100755
index 00000000..2bdb8652
--- /dev/null
+++ b/locale/co_utf/hr
@@ -0,0 +1,120 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP' => 'Facturas de Proveedores',
+ 'Above' => 'Encima de',
+ 'Accounting Menu' => 'Menú general',
+ 'Active' => 'Activo',
+ 'Add Deduction' => 'Agregar Deducción',
+ 'Add Employee' => 'Agregar Empleado',
+ 'Address' => 'Dirección',
+ 'Administrator' => 'Administrador',
+ 'After Deduction' => 'Despues Deducción',
+ 'All' => 'Todos',
+ 'Allowances' => 'Permisos',
+ 'Amount' => 'Total',
+ 'Amount missing!' => 'Falta suma',
+ 'BIC' => 'BIC',
+ 'Based on' => 'Basado en',
+ 'Before Deduction' => 'Antes de la Deducción',
+ 'Below' => 'Debajo',
+ 'City' => 'Ciudad',
+ 'Continue' => 'Continuar',
+ 'Country' => 'País',
+ 'DOB' => 'Fecha de Nacimiento',
+ 'Deduct after' => 'Deducir despues de',
+ 'Deduction deleted!' => 'Deducción borrado!',
+ 'Deduction saved!' => 'Deducción guardado',
+ 'Deductions' => 'Deducciones',
+ 'Delete' => 'Borrar',
+ 'Description' => 'Descripción',
+ 'Description missing!' => 'Falta Descripción',
+ 'E-mail' => 'Correo electrónico',
+ 'Edit Deduction' => 'Editar Deducción',
+ 'Edit Employee' => 'Editar Empleado',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Employee Name' => 'Nombre del Empleado',
+ 'Employee Number' => 'Número de Empleado',
+ 'Employee deleted!' => 'Empleado borrado!',
+ 'Employee pays' => 'Empleado cancela',
+ 'Employee saved!' => 'Empleado guardado!',
+ 'Employees' => 'Empleados',
+ 'Employer' => 'Empleador',
+ 'Employer pays' => 'Empleador cancela',
+ 'Enddate' => 'Fecha final',
+ 'Expense' => 'Gastos',
+ 'From' => 'De',
+ 'Home Phone' => 'Teléfono residencia',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Login' => 'Entrar',
+ 'Manager' => 'Administrador',
+ 'Maximum' => 'Maximo',
+ 'Name' => 'Nombre',
+ 'Name missing!' => '¡Falta el nombre!',
+ 'Notes' => 'Notas',
+ 'Number' => 'Número',
+ 'Orphaned' => 'Huérfano',
+ 'Payroll Deduction' => 'Deducciones Nómina',
+ 'Pos' => 'PdV',
+ 'Rate' => 'Tarifa',
+ 'Rate missing!' => 'Falta Tarifa!',
+ 'Role' => 'Función',
+ 'S' => 'S',
+ 'SSN' => 'RIF',
+ 'Sales' => 'Ventas',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Startdate' => 'Fecha inicial',
+ 'State/Province' => 'Departamento',
+ 'Supervisor' => 'Supervisor',
+ 'To' => 'Hasta ',
+ 'Update' => 'Actualizar',
+ 'User' => 'Usuario',
+ 'Work Phone' => 'Teléfono (Oficina)',
+ 'Zip/Postal Code' => 'Código Postal',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'agregar_deducción' => 'add_deduction',
+ 'agregar_empleado' => 'add_employee',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'guardar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/co_utf/ic b/locale/co_utf/ic
new file mode 100755
index 00000000..b2104960
--- /dev/null
+++ b/locale/co_utf/ic
@@ -0,0 +1,282 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'A' => 'A',
+ 'Accounting Menu' => 'Menú general',
+ 'Accounts' => 'Cuentas',
+ 'Accrual' => 'Acumulado',
+ 'Active' => 'Activo',
+ 'Add' => 'Añadir',
+ 'Add Assembly' => 'Añadir Compuesto',
+ 'Add Labor/Overhead' => 'Agregar Honorarios',
+ 'Add Part' => 'Añadir Artículo',
+ 'Add Purchase Order' => 'Añadir Pedido',
+ 'Add Quotation' => 'Agregar Cotización',
+ 'Add Request for Quotation' => 'Pedir Cotización',
+ 'Add Sales Order' => 'Añadir Cotización',
+ 'Add Service' => 'Añadir Servicio',
+ 'Address' => 'Dirección',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Assemblies' => 'Compuestos',
+ 'Assemblies restocked!' => '¡Compuestos actualizados en almacen!',
+ 'Assembly' => 'Compuesto',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'BOM' => 'Listado de piezas',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Dirección Factura',
+ 'Bin' => 'Empaque',
+ 'Bin List' => 'Lista Empaque',
+ 'Break' => 'Pausa',
+ 'COGS' => 'Costo de los artículos',
+ 'Cannot delete item!' => '¡No se puede borrar el artículo!',
+ 'Cannot stock assemblies!' => '¡No se pueden almacenar los compuestos!',
+ 'Cash' => 'Efectivo',
+ 'Cc' => 'Cc',
+ 'Check Inventory' => 'Revisar Inventario',
+ 'City' => 'Ciudad',
+ 'Closed' => 'Cerrado',
+ 'Company Name' => 'Nombre de la empresa',
+ 'Components' => 'Componentes',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Cost' => 'Costo',
+ 'Country' => 'País',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Customer' => 'Cliente',
+ 'Customer Number' => 'Número del cliente',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Drawing' => 'Reintegro',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'E-mailed' => 'Enviado por mail',
+ 'Edit Assembly' => 'Editar compuesto',
+ 'Edit Labor/Overhead' => 'Editar Honorario',
+ 'Edit Part' => 'Editar compuesto',
+ 'Edit Service' => 'Editar Servicio',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Expense' => 'Gastos',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'De',
+ 'Group' => 'Grupo',
+ 'Image' => 'Imagen',
+ 'In-line' => 'Incrustado',
+ 'Include in Report' => 'Incluir en informe',
+ 'Income' => 'Ingreso',
+ 'Individual Items' => 'Artículos individuales',
+ 'Inventory' => 'Inventario',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'La cantidad en inventario debe ser cero antes de cambiar este compuesto a obsoleto',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'La cantidad en inventario debe ser cero antes de cambiar este artículo a obsoleto',
+ 'Invoice' => 'Factura de Venta',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Invoice Number missing!' => 'No se ha definido el número de la factura',
+ 'Item deleted!' => '¡Concepto borrado!',
+ 'Item not on file!' => 'El concepto no se encuentra en ningún archivo',
+ 'Items' => 'Productos/Servicios',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Labor/Overhead' => 'Honorarios',
+ 'Leadtime' => 'Plazo',
+ 'Line Total' => 'Total de la línea',
+ 'Link Accounts' => 'Enlazar cuentas',
+ 'List' => 'Lista',
+ 'List Price' => 'Precio de Lista',
+ 'Make' => 'Marca',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'Markup' => 'Margen',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Message' => 'Mensaje',
+ 'Microfiche' => 'Microficha',
+ 'Model' => 'Modelo',
+ 'Name' => 'Nombre',
+ 'No.' => 'No.',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se ha definido el número en la fila',
+ 'Obsolete' => 'Obsoleto',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'On Hand' => 'Disponible',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Date missing!' => 'No se ha definido la fecha de la elaboración',
+ 'Order Number' => 'Número de orden',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'Orphaned' => 'Huérfano',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Albarán',
+ 'Packing List Date missing!' => 'No se ha definido la fecha del albarán',
+ 'Packing List Number missing!' => 'No se ha definido el número del albarán',
+ 'Part' => 'Artículo',
+ 'Parts' => 'Artículos',
+ 'Period' => 'Periodo',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Empaque',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Pricegroup' => 'Grupo de Precios',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Purchase Order' => 'Pedido',
+ 'Purchase Orders' => 'Pedidos',
+ 'Qty' => 'Cantidad',
+ 'Quantity exceeds available units to stock!' => 'No hay esta cantidad disponible en el Inventario!',
+ 'Quotation' => 'Cotización',
+ 'Quotation Date missing!' => 'Falta fecha de cotización',
+ 'Quotation Number missing!' => 'Falta número de cotización',
+ 'Quotations' => 'Cotizaciones',
+ 'RFQ' => 'Solicitar Cotización',
+ 'ROP' => 'Tope de envio',
+ 'Recd' => 'Cobrado',
+ 'Required by' => 'Aceptado el',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Facturas de Ventas',
+ 'Sales Invoices' => 'Factura de Venta',
+ 'Sales Order' => 'Orden de Venta',
+ 'Sales Orders' => 'Ordenes de Venta',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Scheduled' => 'Programado',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select items' => 'Seleccionar Itemes',
+ 'Select txt, postscript or PDF!' => '¡Seleccione txt, postscript o PDF!',
+ 'Sell' => 'Vender',
+ 'Sell Price' => 'Precio de venta',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'No de Serial',
+ 'Serial Number' => 'Número del Serial',
+ 'Service' => 'Servicio',
+ 'Services' => 'Servicios',
+ 'Ship' => 'Envio',
+ 'Ship to' => 'Destino',
+ 'Shipping Address' => 'Dirección del envio',
+ 'Short' => 'Corto',
+ 'State/Province' => 'Departamento',
+ 'Stock' => 'Inventario',
+ 'Stock Assembly' => 'Inventariar Compuesto',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Résumen',
+ 'Tax' => 'Impuestos',
+ 'Text' => 'Texto',
+ 'To' => 'Hasta ',
+ 'Top Level' => 'Nivel superior',
+ 'Translation not on file!' => 'No hay traducción',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Updated' => '¡Actualizado!',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice' => 'Factura de Proveedor',
+ 'Vendor Invoices' => 'Facturas de Proveedor',
+ 'Vendor Number' => 'Código Vendedor',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Warehouse' => 'Bodega',
+ 'Weight' => 'Peso',
+ 'What type of item is this?' => '¿De qué tipo es este concepto?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Year' => 'Año',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'days' => 'días',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'añadir_compuesto' => 'add_assembly',
+ 'agregar_honorarios' => 'add_labor_overhead',
+ 'añadir_artículo' => 'add_part',
+ 'añadir_servicio' => 'add_service',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'editar_compuesto' => 'edit_assembly',
+ 'editar_compuesto' => 'edit_part',
+ 'editar_servicio' => 'edit_service',
+ 'guardar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/co_utf/io b/locale/co_utf/io
new file mode 100755
index 00000000..8d2b5421
--- /dev/null
+++ b/locale/co_utf/io
@@ -0,0 +1,135 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Add Purchase Order' => 'Añadir Pedido',
+ 'Add Quotation' => 'Agregar Cotización',
+ 'Add Request for Quotation' => 'Pedir Cotización',
+ 'Add Sales Order' => 'Añadir Cotización',
+ 'Address' => 'Dirección',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Dirección Factura',
+ 'Bin' => 'Empaque',
+ 'Bin List' => 'Lista Empaque',
+ 'Cc' => 'Cc',
+ 'City' => 'Ciudad',
+ 'Company Name' => 'Nombre de la empresa',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Country' => 'País',
+ 'Customer Number' => 'Número del cliente',
+ 'Date' => 'Fecha',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Description' => 'Descripción',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'E-mailed' => 'Enviado por mail',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'Group' => 'Grupo',
+ 'In-line' => 'Incrustado',
+ 'Invoice' => 'Factura de Venta',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number missing!' => 'No se ha definido el número de la factura',
+ 'Item not on file!' => 'El concepto no se encuentra en ningún archivo',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Message' => 'Mensaje',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se ha definido el número en la fila',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Order Date missing!' => 'No se ha definido la fecha de la elaboración',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Albarán',
+ 'Packing List Date missing!' => 'No se ha definido la fecha del albarán',
+ 'Packing List Number missing!' => 'No se ha definido el número del albarán',
+ 'Part' => 'Artículo',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Empaque',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Purchase Order' => 'Pedido',
+ 'Qty' => 'Cantidad',
+ 'Quotation' => 'Cotización',
+ 'Quotation Date missing!' => 'Falta fecha de cotización',
+ 'Quotation Number missing!' => 'Falta número de cotización',
+ 'Recd' => 'Cobrado',
+ 'Required by' => 'Aceptado el',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Orden de Venta',
+ 'Scheduled' => 'Programado',
+ 'Screen' => 'Pantalla',
+ 'Select items' => 'Seleccionar Itemes',
+ 'Select txt, postscript or PDF!' => '¡Seleccione txt, postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'No de Serial',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Envio',
+ 'Ship to' => 'Destino',
+ 'Shipping Address' => 'Dirección del envio',
+ 'State/Province' => 'Departamento',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Text' => 'Texto',
+ 'To' => 'Hasta ',
+ 'Translation not on file!' => 'No hay traducción',
+ 'Unit' => 'Unidad',
+ 'Vendor Number' => 'Código Vendedor',
+ 'What type of item is this?' => '¿De qué tipo es este concepto?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/co_utf/ir b/locale/co_utf/ir
new file mode 100755
index 00000000..fb4bd97b
--- /dev/null
+++ b/locale/co_utf/ir
@@ -0,0 +1,251 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Add Purchase Order' => 'Añadir Pedido',
+ 'Add Quotation' => 'Agregar Cotización',
+ 'Add Request for Quotation' => 'Pedir Cotización',
+ 'Add Sales Order' => 'Añadir Cotización',
+ 'Add Vendor Invoice' => 'Agregar Factura de Proveedor',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => '¿Esta seguro de que desea borrar la factura número',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Dirección Factura',
+ 'Bin' => 'Empaque',
+ 'Bin List' => 'Lista Empaque',
+ 'Cannot delete invoice!' => '¡No se puede borrar la factura!',
+ 'Cannot post invoice for a closed period!' => '¡No se puede registrar una factura en un periodo ya cerrado!',
+ 'Cannot post invoice!' => '¡No se puede registrar la factura!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo ya cerrado!',
+ 'Cc' => 'Cc',
+ 'City' => 'Ciudad',
+ 'Company Name' => 'Nombre de la empresa',
+ 'Confirm!' => 'Confirmar',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Country' => 'País',
+ 'Credit Limit' => 'Limite de credito',
+ 'Currency' => 'Moneda',
+ 'Customer Number' => 'Número del cliente',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delete Schedule' => 'Borrar Programación',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Department' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'E-mail message' => 'Mensaje Email',
+ 'E-mailed' => 'Enviado por mail',
+ 'Edit Vendor Invoice' => 'Editar Factura de Proveedor',
+ 'Every' => 'Cada',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate for payment missing!' => 'Falta Tasa de Cambio',
+ 'Exchange rate missing!' => 'Falta Tasa de Cambio',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'For' => 'Para',
+ 'Group' => 'Grupo',
+ 'In-line' => 'Incrustado',
+ 'Include Payment' => 'Incluir Pago',
+ 'Internal Notes' => 'Notas internas',
+ 'Invoice' => 'Factura de Venta',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Invoice Number missing!' => 'No se ha definido el número de la factura',
+ 'Invoice deleted!' => '¡Factura borrada!',
+ 'Item not on file!' => 'El concepto no se encuentra en ningún archivo',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Language' => 'Idioma',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Message' => 'Mensaje',
+ 'Next Date' => 'Proxima Fecha',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se ha definido el número en la fila',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Order Date missing!' => 'No se ha definido la fecha de la elaboración',
+ 'Order Number' => 'Número de orden',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Número pedido',
+ 'Packing List' => 'Albarán',
+ 'Packing List Date missing!' => 'No se ha definido la fecha del albarán',
+ 'Packing List Number missing!' => 'No se ha definido el número del albarán',
+ 'Part' => 'Artículo',
+ 'Payment date missing!' => 'No se encuentra la fecha de pago',
+ 'Payments' => 'Pagos',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Empaque',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como Nuevo',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => 'Proyecto no existe!',
+ 'Purchase Order' => 'Pedido',
+ 'Qty' => 'Cantidad',
+ 'Quotation' => 'Cotización',
+ 'Quotation Date missing!' => 'Falta fecha de cotización',
+ 'Quotation Number missing!' => 'Falta número de cotización',
+ 'Recd' => 'Cobrado',
+ 'Record in' => 'Registrar en',
+ 'Recurring Transaction' => 'Transacción Recurrente',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Resto',
+ 'Repeat' => 'Repetir',
+ 'Required by' => 'Aceptado el',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Orden de Venta',
+ 'Save Schedule' => 'Guardar Programación',
+ 'Schedule' => 'Programar Recurrencia',
+ 'Scheduled' => 'Programado',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Selecciona uno de los proyectos abajo',
+ 'Select items' => 'Seleccionar Itemes',
+ 'Select txt, postscript or PDF!' => '¡Seleccione txt, postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'No de Serial',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Envio',
+ 'Ship to' => 'Destino',
+ 'Shipping Address' => 'Dirección del envio',
+ 'Source' => 'Fuente',
+ 'Startdate' => 'Fecha inicial',
+ 'State/Province' => 'Departamento',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Tax Included' => 'Impuestos Incluidos',
+ 'Text' => 'Texto',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Translation not on file!' => 'No hay traducción',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Number' => 'Código Vendedor',
+ 'Vendor missing!' => '¡Falta el proveedor!',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Warning!' => 'Alerta!',
+ 'What type of item is this?' => '¿De qué tipo es este concepto?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Yes' => 'Si',
+ 'You are posting an existing transaction!' => 'Está registrando una transacción existente!',
+ 'You are printing and posting an existing transaction!' => 'Está imprimiendo registrando una transacción existente!',
+ 'You are printing and saving an existing order' => 'Está imprimiendo y registrando un pedido existente',
+ 'You are printing and saving an existing quotation' => 'Está imprimiendo y registrando una cotización existente',
+ 'You are saving an existing order' => 'Está registrando un pedido existente',
+ 'You are saving an existing quotation' => 'Está registrando una cotización existente',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'ea' => 'unid.',
+ 'for' => 'para',
+ 'posted!' => 'Guardado',
+ 'sent' => 'Enviado',
+ 'time(s)' => 'vez/veces',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'borrar_programación' => 'delete_schedule',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'pedido' => 'purchase_order',
+ 'guardar_programación' => 'save_schedule',
+ 'programar_recurrencia' => 'schedule',
+ 'actualizar' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/co_utf/is b/locale/co_utf/is
new file mode 100755
index 00000000..1779afca
--- /dev/null
+++ b/locale/co_utf/is
@@ -0,0 +1,262 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Add Purchase Order' => 'Añadir Pedido',
+ 'Add Quotation' => 'Agregar Cotización',
+ 'Add Request for Quotation' => 'Pedir Cotización',
+ 'Add Sales Invoice' => 'Añadir Factura de Venta',
+ 'Add Sales Order' => 'Añadir Cotización',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => '¿Esta seguro de que desea borrar la factura número',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Dirección Factura',
+ 'Bin' => 'Empaque',
+ 'Bin List' => 'Lista Empaque',
+ 'Business' => 'Empresa',
+ 'Cannot delete invoice!' => '¡No se puede borrar la factura!',
+ 'Cannot post invoice for a closed period!' => '¡No se puede registrar una factura en un periodo ya cerrado!',
+ 'Cannot post invoice!' => '¡No se puede registrar la factura!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo ya cerrado!',
+ 'Cc' => 'Cc',
+ 'City' => 'Ciudad',
+ 'Company Name' => 'Nombre de la empresa',
+ 'Confirm!' => 'Confirmar',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Country' => 'País',
+ 'Credit Limit' => 'Limite de credito',
+ 'Currency' => 'Moneda',
+ 'Customer' => 'Cliente',
+ 'Customer Number' => 'Número del cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delete Schedule' => 'Borrar Programación',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Department' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'E-mail message' => 'Mensaje Email',
+ 'E-mailed' => 'Enviado por mail',
+ 'Edit Sales Invoice' => 'Editar Factura de Venta',
+ 'Every' => 'Cada',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate for payment missing!' => 'Falta Tasa de Cambio',
+ 'Exchange rate missing!' => 'Falta Tasa de Cambio',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'For' => 'Para',
+ 'Group' => 'Grupo',
+ 'In-line' => 'Incrustado',
+ 'Include Payment' => 'Incluir Pago',
+ 'Internal Notes' => 'Notas internas',
+ 'Invoice' => 'Factura de Venta',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Invoice Number missing!' => 'No se ha definido el número de la factura',
+ 'Invoice deleted!' => '¡Factura borrada!',
+ 'Item not on file!' => 'El concepto no se encuentra en ningún archivo',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Message' => 'Mensaje',
+ 'Next Date' => 'Proxima Fecha',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se ha definido el número en la fila',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Order Date missing!' => 'No se ha definido la fecha de la elaboración',
+ 'Order Number' => 'Número de orden',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Número pedido',
+ 'Packing List' => 'Albarán',
+ 'Packing List Date missing!' => 'No se ha definido la fecha del albarán',
+ 'Packing List Number missing!' => 'No se ha definido el número del albarán',
+ 'Part' => 'Artículo',
+ 'Payment date missing!' => 'No se encuentra la fecha de pago',
+ 'Payments' => 'Pagos',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Empaque',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como Nuevo',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => 'Proyecto no existe!',
+ 'Purchase Order' => 'Pedido',
+ 'Qty' => 'Cantidad',
+ 'Quotation' => 'Cotización',
+ 'Quotation Date missing!' => 'Falta fecha de cotización',
+ 'Quotation Number missing!' => 'Falta número de cotización',
+ 'Recd' => 'Cobrado',
+ 'Record in' => 'Registrar en',
+ 'Recurring Transaction' => 'Transacción Recurrente',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Resto',
+ 'Repeat' => 'Repetir',
+ 'Required by' => 'Aceptado el',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Orden de Venta',
+ 'Salesperson' => 'Vendedor',
+ 'Save Schedule' => 'Guardar Programación',
+ 'Schedule' => 'Programar Recurrencia',
+ 'Scheduled' => 'Programado',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Selecciona uno de los proyectos abajo',
+ 'Select items' => 'Seleccionar Itemes',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Select txt, postscript or PDF!' => '¡Seleccione txt, postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'No de Serial',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Envio',
+ 'Ship to' => 'Destino',
+ 'Ship via' => 'Envio por',
+ 'Shipping Address' => 'Dirección del envio',
+ 'Shipping Point' => 'Destino',
+ 'Source' => 'Fuente',
+ 'Startdate' => 'Fecha inicial',
+ 'State/Province' => 'Departamento',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Tax Included' => 'Impuestos Incluidos',
+ 'Text' => 'Texto',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Descuento',
+ 'Translation not on file!' => 'No hay traducción',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Vendor Number' => 'Código Vendedor',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Warning!' => 'Alerta!',
+ 'What type of item is this?' => '¿De qué tipo es este concepto?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Yes' => 'Si',
+ 'You are posting an existing transaction!' => 'Está registrando una transacción existente!',
+ 'You are printing and posting an existing transaction!' => 'Está imprimiendo registrando una transacción existente!',
+ 'You are printing and saving an existing order' => 'Está imprimiendo y registrando un pedido existente',
+ 'You are printing and saving an existing quotation' => 'Está imprimiendo y registrando una cotización existente',
+ 'You are saving an existing order' => 'Está registrando un pedido existente',
+ 'You are saving an existing quotation' => 'Está registrando una cotización existente',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'ea' => 'unid.',
+ 'for' => 'para',
+ 'posted!' => 'Guardado',
+ 'sent' => 'Enviado',
+ 'time(s)' => 'vez/veces',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'borrar_programación' => 'delete_schedule',
+ 'correo_electrónico' => 'e_mail',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'imprimir_y_registrar' => 'print_and_post',
+ 'orden_de_venta' => 'sales_order',
+ 'guardar_programación' => 'save_schedule',
+ 'programar_recurrencia' => 'schedule',
+ 'destino' => 'ship_to',
+ 'actualizar' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/co_utf/jc b/locale/co_utf/jc
new file mode 100755
index 00000000..781b4835
--- /dev/null
+++ b/locale/co_utf/jc
@@ -0,0 +1,94 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Menú general',
+ 'Amount' => 'Total',
+ 'Closed' => 'Cerrado',
+ 'Confirm!' => 'Confirmar',
+ 'Continue' => 'Continuar',
+ 'Cost' => 'Costo',
+ 'Current' => 'Actual',
+ 'Date' => 'Fecha',
+ 'Date missing!' => '¡Falta la fecha!',
+ 'Delete' => 'Borrar',
+ 'Description' => 'Descripción',
+ 'Employee' => 'Colaborador/Empleado',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Month' => 'Mes',
+ 'Notes' => 'Notas',
+ 'Open' => 'Abierto',
+ 'PDF' => 'PDF',
+ 'Period' => 'Periodo',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Imprimir',
+ 'Print and Save' => 'Imprimir y Registrar',
+ 'Printed' => 'Impreso',
+ 'Project Number' => 'Número del Proyecto',
+ 'Project Number missing!' => '¡Falta el Número de Proyecto!',
+ 'Qty' => 'Cantidad',
+ 'Quarter' => 'Trimestre',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Screen' => 'Pantalla',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Startdate' => 'Fecha inicial',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Update' => 'Actualizar',
+ 'Warning!' => 'Alerta!',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'imprimir' => 'print',
+ 'imprimir_y_registrar' => 'print_and_save',
+ 'guardar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/co_utf/locales.pl b/locale/co_utf/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/co_utf/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/co_utf/login b/locale/co_utf/login
new file mode 100755
index 00000000..a5f42688
--- /dev/null
+++ b/locale/co_utf/login
@@ -0,0 +1,26 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Company' => 'Empresa',
+ 'Continue' => 'Continuar',
+ 'Dataset is newer than version!' => 'La base de datos está más actual que la versión del programa',
+ 'Incorrect Dataset version!' => 'Versión de base de datos incorrecta',
+ 'Login' => 'Entrar',
+ 'Name' => 'Nombre',
+ 'Password' => 'Contraseña',
+ 'Upgrading to Version' => 'Actulaizando a versión',
+ 'Version' => 'Versión',
+ 'You did not enter a name!' => 'No ha introducido el nombre',
+ 'done' => 'hecho',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ 'entrar' => 'login',
+};
+
+1;
+
diff --git a/locale/co_utf/menu b/locale/co_utf/menu
new file mode 100755
index 00000000..a54ca911
--- /dev/null
+++ b/locale/co_utf/menu
@@ -0,0 +1,139 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP' => 'Facturas de Proveedores',
+ 'AP Aging' => 'Cartera',
+ 'AP Transaction' => 'Transaccion Proveedor',
+ 'AR' => 'Factura de Ventas',
+ 'AR Aging' => 'Cartera ',
+ 'AR Transaction' => 'Cuentas por Cobrar',
+ 'Accounting Menu' => 'Menú general',
+ 'Add Account' => 'Añadir Cuenta',
+ 'Add Assembly' => 'Añadir Compuesto',
+ 'Add Business' => 'Agregar Empresa',
+ 'Add Customer' => 'Añadir Cliente',
+ 'Add Department' => 'Agregar Centro de Costos',
+ 'Add Employee' => 'Agregar Empleado',
+ 'Add GIFI' => 'Añadir cuenta PUC',
+ 'Add Group' => 'Agregar Grupo',
+ 'Add Labor/Overhead' => 'Agregar Honorarios',
+ 'Add Language' => 'Agregar Idioma',
+ 'Add Part' => 'Añadir Artículo',
+ 'Add Pricegroup' => 'Añadir Grupo de Precios',
+ 'Add Project' => 'Añadir Proyecto',
+ 'Add SIC' => 'Agregar SIC',
+ 'Add Service' => 'Añadir Servicio',
+ 'Add Transaction' => 'Añadir Transacción',
+ 'Add Vendor' => 'Añadir Proveedor',
+ 'Add Warehouse' => 'Agregar Bodega',
+ 'All Items' => 'Todo',
+ 'Assemblies' => 'Compuestos',
+ 'Audit Control' => 'Control de Auditoría',
+ 'Backup' => 'Copia de seguridad de los datos',
+ 'Balance Sheet' => 'Hoja de balance',
+ 'Bin List' => 'Lista Empaque',
+ 'Bin Lists' => 'Listas Empaque',
+ 'Cash' => 'Efectivo',
+ 'Chart of Accounts' => 'Plan de cuentas',
+ 'Check' => 'Cheque',
+ 'Components' => 'Componentes',
+ 'Customers' => 'Clientes',
+ 'Defaults' => 'Preferencias',
+ 'Departments' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Employees' => 'Empleados',
+ 'General Ledger' => 'Notas de Contabilidad',
+ 'Generate' => 'Elaborar',
+ 'Goods & Services' => 'Bienes y servicios',
+ 'Groups' => 'Grupos',
+ 'HR' => 'Recursos Humanos',
+ 'HTML Templates' => 'Plantillas HTML',
+ 'History' => 'Historial',
+ 'Income Statement' => 'Estado de Resultados',
+ 'Invoice' => 'Factura de Venta',
+ 'LaTeX Templates' => 'Plantillas LaTeX',
+ 'Labor/Overhead' => 'Honorarios',
+ 'Language' => 'Idioma',
+ 'List Accounts' => 'Mostrar Plan Único de Cuentas',
+ 'List Businesses' => 'Mostrar empresas',
+ 'List Departments' => 'Mostrar Centro de Costos',
+ 'List GIFI' => 'Mostrar PUC',
+ 'List Languages' => 'Mostrar Idiomas',
+ 'List Projects' => 'Mostrar Projectos',
+ 'List SIC' => 'Mostrar SIC',
+ 'List Warehouses' => 'Mostar bodegas',
+ 'Logout' => 'Salir',
+ 'New Window' => 'Nueva Ventana',
+ 'Non-taxable' => 'Sin Impuestos',
+ 'Open' => 'Abierto',
+ 'Order Entry' => 'Cotizaciones y pedidos',
+ 'Outstanding' => 'Impagados',
+ 'POS' => 'Punto de Venta',
+ 'POS Invoice' => 'Factura Punto de Venta',
+ 'Packing List' => 'Albarán',
+ 'Packing Lists' => 'Lista de empaque',
+ 'Parts' => 'Artículos',
+ 'Payment' => 'Comprobante de Egreso',
+ 'Payments' => 'Pagos',
+ 'Pick List' => 'Lista de Empaque',
+ 'Pick Lists' => 'Listas de Empaque',
+ 'Preferences' => 'Preferencias',
+ 'Pricegroups' => 'Grupos de Precios',
+ 'Print' => 'Imprimir',
+ 'Projects' => 'Proyectos',
+ 'Purchase Order' => 'Pedido',
+ 'Purchase Orders' => 'Pedidos',
+ 'Quotation' => 'Cotización',
+ 'Quotations' => 'Cotizaciones',
+ 'RFQ' => 'Solicitar Cotización',
+ 'RFQs' => 'Cotizaciones solicitados',
+ 'Receipt' => 'Recibo',
+ 'Receipts' => 'Recibos',
+ 'Receive' => 'Recibir',
+ 'Reconciliation' => 'Reconciliación',
+ 'Recurring Transactions' => 'Transacciones Recurrentes',
+ 'Reports' => 'Informes',
+ 'SIC' => 'SIC',
+ 'Sale' => 'Venta',
+ 'Sales Invoice' => 'Facturas de Ventas',
+ 'Sales Invoices' => 'Factura de Venta',
+ 'Sales Order' => 'Orden de Venta',
+ 'Sales Orders' => 'Ordenes de Venta',
+ 'Save to File' => 'Guardar en un archivo',
+ 'Search' => 'Búsqueda',
+ 'Send by E-Mail' => 'Enviar por correo electrónico',
+ 'Services' => 'Servicios',
+ 'Ship' => 'Envio',
+ 'Shipping' => 'Envio',
+ 'Statement' => 'Estado de Cuenta',
+ 'Stock Assembly' => 'Inventariar Compuesto',
+ 'Stylesheet' => 'Hoja de Estilo',
+ 'System' => 'Sistema',
+ 'Tax collected' => 'Impuestos Cobrados Clientes',
+ 'Tax paid' => 'Impuestos Pagados',
+ 'Text Templates' => 'Plantillas de Texto',
+ 'Transactions' => 'Transacciones',
+ 'Transfer' => 'Transferencia',
+ 'Transfer Inventory' => 'Transferir Inventario',
+ 'Translations' => 'Traducciones',
+ 'Trial Balance' => 'Balance de Comprobación',
+ 'Type of Business' => 'Clase de Negocio',
+ 'Vendor Invoice' => 'Factura de Proveedor',
+ 'Vendors' => 'Proveedores',
+ 'Version' => 'Versión',
+ 'Warehouses' => 'Bodegas',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Work Orders' => 'Ordenes de Trabajo',
+ 'Yearend' => 'Fin del Año',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/co_utf/oe b/locale/co_utf/oe
new file mode 100755
index 00000000..37bc19cc
--- /dev/null
+++ b/locale/co_utf/oe
@@ -0,0 +1,361 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Menú general',
+ 'Add Exchange Rate' => 'Agregar Tasa de Cambio',
+ 'Add Purchase Order' => 'Añadir Pedido',
+ 'Add Quotation' => 'Agregar Cotización',
+ 'Add Request for Quotation' => 'Pedir Cotización',
+ 'Add Sales Invoice' => 'Añadir Factura de Venta',
+ 'Add Sales Order' => 'Añadir Cotización',
+ 'Add Vendor Invoice' => 'Agregar Factura de Proveedor',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Order Number' => '¿Esta seguro de que desea borrar la orden número?',
+ 'Are you sure you want to delete Quotation Number' => 'Seguro que quiere borrar la cotización número',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Dirección Factura',
+ 'Bin' => 'Empaque',
+ 'Bin List' => 'Lista Empaque',
+ 'Business' => 'Empresa',
+ 'C' => 'C',
+ 'Cannot delete order!' => '¡No se puede borrar el pedido!',
+ 'Cannot delete quotation!' => 'No puedo borrar cotización!',
+ 'Cannot save order!' => '¡No se puede guardar el pedido!',
+ 'Cannot save quotation!' => 'No puedo guardar cotización!',
+ 'Cc' => 'Cc',
+ 'City' => 'Ciudad',
+ 'Closed' => 'Cerrado',
+ 'Company Name' => 'Nombre de la empresa',
+ 'Confirm!' => 'Confirmar',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Cost' => 'Costo',
+ 'Could not save!' => 'No pude guardar',
+ 'Could not transfer Inventory!' => 'No puedo transferir inventario!',
+ 'Country' => 'País',
+ 'Credit Limit' => 'Limite de credito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer Number' => 'Número del cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Date Received' => 'Fecha recibido',
+ 'Date received missing!' => 'Faltas datos',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delete Schedule' => 'Borrar Programación',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Department' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Done' => 'Hecho',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'E-mail message' => 'Mensaje Email',
+ 'E-mailed' => 'Enviado por mail',
+ 'Edit Purchase Order' => 'Editar Pedido',
+ 'Edit Quotation' => 'Editar Cotización',
+ 'Edit Request for Quotation' => 'Editar Solicitud de Cotización',
+ 'Edit Sales Order' => 'Editar Cotización',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Every' => 'Cada',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate missing!' => 'Falta Tasa de Cambio',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'For' => 'Para',
+ 'From' => 'De',
+ 'Generate Orders' => 'Elaborar Pedidos',
+ 'Generate Purchase Orders' => 'Elaborar Orden de Venta',
+ 'Generate Purchase Orders from Sales Order' => 'Elaborar Orden de Compra de Orden de Venta',
+ 'Generate Sales Order' => 'Elaborar Orden de Venta',
+ 'Generate Sales Order from Purchase Orders' => 'Elaborar Orden de Venta de Orden de Compra',
+ 'Group' => 'Grupo',
+ 'ID' => 'ID',
+ 'In-line' => 'Incrustado',
+ 'Include Payment' => 'Incluir Pago',
+ 'Include in Report' => 'Incluir en informe',
+ 'Internal Notes' => 'Notas internas',
+ 'Inventory saved!' => 'Inventario guardado!',
+ 'Inventory transferred!' => 'Inventario transferido!',
+ 'Invoice' => 'Factura de Venta',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number missing!' => 'No se ha definido el número de la factura',
+ 'Item not on file!' => 'El concepto no se encuentra en ningún archivo',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Lead' => 'Entrega',
+ 'Manager' => 'Administrador',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Message' => 'Mensaje',
+ 'Month' => 'Mes',
+ 'Next Date' => 'Proxima Fecha',
+ 'No.' => 'No.',
+ 'Notes' => 'Notas',
+ 'Nothing entered!' => 'Información Incompleta',
+ 'Nothing selected!' => '¡No es seleccionado nada!',
+ 'Nothing to transfer!' => 'Nada para transferir',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se ha definido el número en la fila',
+ 'O' => 'O',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Date' => 'Fecha de elaboración',
+ 'Order Date missing!' => 'No se ha definido la fecha de la elaboración',
+ 'Order Number' => 'Número de orden',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'Order deleted!' => '¡Orden borrada!',
+ 'Order generation failed!' => 'Fallo Elaboración Pedido',
+ 'Order saved!' => 'Pedido guardado',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Número pedido',
+ 'Packing List' => 'Albarán',
+ 'Packing List Date missing!' => 'No se ha definido la fecha del albarán',
+ 'Packing List Number missing!' => 'No se ha definido el número del albarán',
+ 'Part' => 'Artículo',
+ 'Period' => 'Periodo',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Empaque',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Print and Save' => 'Imprimir y Registrar',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => 'Proyecto no existe!',
+ 'Purchase Order' => 'Pedido',
+ 'Purchase Orders' => 'Pedidos',
+ 'Qty' => 'Cantidad',
+ 'Quarter' => 'Trimestre',
+ 'Quotation' => 'Cotización',
+ 'Quotation ' => 'Cotización ',
+ 'Quotation Date' => 'Fecha de cotización',
+ 'Quotation Date missing!' => 'Falta fecha de cotización',
+ 'Quotation Number' => 'Número cotización',
+ 'Quotation Number missing!' => 'Falta número de cotización',
+ 'Quotation deleted!' => 'Cotización borrado',
+ 'Quotations' => 'Cotizaciones',
+ 'RFQ' => 'Solicitar Cotización',
+ 'RFQ ' => 'Solicitud de Cotización ',
+ 'RFQ Number' => 'Número de Cotización',
+ 'Recd' => 'Cobrado',
+ 'Receive Merchandise' => 'Recibir mercancia',
+ 'Recurring Transaction' => 'Transacción Recurrente',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Resto',
+ 'Repeat' => 'Repetir',
+ 'Req' => 'Pedido',
+ 'Request for Quotation' => 'Solicitar Cotización',
+ 'Request for Quotations' => 'Solicitar Cotizaciones',
+ 'Required by' => 'Aceptado el',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Facturas de Ventas',
+ 'Sales Order' => 'Orden de Venta',
+ 'Sales Orders' => 'Ordenes de Venta',
+ 'Salesperson' => 'Vendedor',
+ 'Save' => 'Guardar',
+ 'Save Schedule' => 'Guardar Programación',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Schedule' => 'Programar Recurrencia',
+ 'Scheduled' => 'Programado',
+ 'Screen' => 'Pantalla',
+ 'Select Vendor' => 'Seleccionar Proveedor',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Selecciona uno de los proyectos abajo',
+ 'Select items' => 'Seleccionar Itemes',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Select txt, postscript or PDF!' => '¡Seleccione txt, postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'No de Serial',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Envio',
+ 'Ship Merchandise' => 'Enviar Mercancía',
+ 'Ship to' => 'Destino',
+ 'Ship via' => 'Envio por',
+ 'Shipping Address' => 'Dirección del envio',
+ 'Shipping Date' => 'Fecha del Envio',
+ 'Shipping Date missing!' => 'Falta Fecha del Envio',
+ 'Shipping Point' => 'Destino',
+ 'Startdate' => 'Fecha inicial',
+ 'State/Province' => 'Departamento',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Tax' => 'Impuestos',
+ 'Tax Included' => 'Impuestos Incluidos',
+ 'Terms' => 'Condiciones',
+ 'Text' => 'Texto',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Descuento',
+ 'Transfer' => 'Transferencia',
+ 'Transfer Inventory' => 'Transferir Inventario',
+ 'Transfer to' => 'Transferir a',
+ 'Translation not on file!' => 'No hay traducción',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Valid until' => 'Válido hasta',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice' => 'Factura de Proveedor',
+ 'Vendor Number' => 'Código Vendedor',
+ 'Vendor missing!' => '¡Falta el proveedor!',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Warehouse' => 'Bodega',
+ 'Warning!' => 'Alerta!',
+ 'What type of item is this?' => '¿De qué tipo es este concepto?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+ 'You are posting an existing transaction!' => 'Está registrando una transacción existente!',
+ 'You are printing and posting an existing transaction!' => 'Está imprimiendo registrando una transacción existente!',
+ 'You are printing and saving an existing order' => 'Está imprimiendo y registrando un pedido existente',
+ 'You are printing and saving an existing quotation' => 'Está imprimiendo y registrando una cotización existente',
+ 'You are saving an existing order' => 'Está registrando un pedido existente',
+ 'You are saving an existing quotation' => 'Está registrando una cotización existente',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'days' => 'días',
+ 'ea' => 'unid.',
+ 'for' => 'para',
+ 'sent' => 'Enviado',
+ 'time(s)' => 'vez/veces',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'borrar_programación' => 'delete_schedule',
+ 'hecho' => 'done',
+ 'correo_electrónico' => 'e_mail',
+ 'elaborar_pedidos' => 'generate_orders',
+ 'elaborar_orden_de_venta' => 'generate_purchase_orders',
+ 'elaborar_orden_de_venta' => 'generate_sales_order',
+ 'imprimir' => 'print',
+ 'imprimir_y_registrar' => 'print_and_save',
+ 'pedido' => 'purchase_order',
+ 'cotización' => 'quotation',
+ 'cotización_' => 'quotation_',
+ 'solicitar_cotización' => 'rfq',
+ 'solicitud_de_cotización_' => 'rfq_',
+ 'facturas_de_ventas' => 'sales_invoice',
+ 'orden_de_venta' => 'sales_order',
+ 'guardar' => 'save',
+ 'guardar_programación' => 'save_schedule',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'programar_recurrencia' => 'schedule',
+ 'seleccionar_proveedor' => 'select_vendor',
+ 'destino' => 'ship_to',
+ 'transferencia' => 'transfer',
+ 'actualizar' => 'update',
+ 'factura_de_proveedor' => 'vendor_invoice',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/co_utf/pe b/locale/co_utf/pe
new file mode 100755
index 00000000..da2c8b86
--- /dev/null
+++ b/locale/co_utf/pe
@@ -0,0 +1,143 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Menú general',
+ 'Active' => 'Activo',
+ 'Add' => 'Añadir',
+ 'Add Group' => 'Agregar Grupo',
+ 'Add Pricegroup' => 'Añadir Grupo de Precios',
+ 'Add Project' => 'Añadir Proyecto',
+ 'Address' => 'Dirección',
+ 'All' => 'Todos',
+ 'Amount' => 'Total',
+ 'Assembly' => 'Compuesto',
+ 'Bin' => 'Empaque',
+ 'Continue' => 'Continuar',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Delete' => 'Borrar',
+ 'Description' => 'Descripción',
+ 'Description Translations' => 'Descripción Traducción',
+ 'Detail' => 'Detalle',
+ 'Edit Description Translations' => 'Editar Descripción Traducción',
+ 'Edit Group' => 'Editar Grupo',
+ 'Edit Pricegroup' => 'Editar Grupo de Precios',
+ 'Edit Project' => 'Editar Proyecto',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Enddate' => 'Fecha final',
+ 'From' => 'De',
+ 'Group' => 'Grupo',
+ 'Group Translations' => 'Traducción Grupos',
+ 'Group deleted!' => 'Grupo eleminado!',
+ 'Group missing!' => 'Falta el grupo',
+ 'Group saved!' => 'Grupo guardado!',
+ 'Groups' => 'Grupos',
+ 'Income' => 'Ingreso',
+ 'Language' => 'Idioma',
+ 'Languages not defined!' => 'Idiomas no configuradas!',
+ 'Link Accounts' => 'Enlazar cuentas',
+ 'List Price' => 'Precio de Lista',
+ 'Month' => 'Mes',
+ 'Notes' => 'Notas',
+ 'Nothing selected!' => '¡No es seleccionado nada!',
+ 'Number' => 'Número',
+ 'Orphaned' => 'Huérfano',
+ 'Period' => 'Periodo',
+ 'Pricegroup' => 'Grupo de Precios',
+ 'Pricegroup deleted!' => 'Grupo Borrado!',
+ 'Pricegroup missing!' => 'Falta Grupo!',
+ 'Pricegroup saved!' => 'Guardado!',
+ 'Pricegroups' => 'Grupos de Precios',
+ 'Project' => 'Proyecto',
+ 'Project Description Translations' => 'Descripción Traducción del Proyecto',
+ 'Project Number' => 'Número del Proyecto',
+ 'Project deleted!' => '¡Proyecto borrado!',
+ 'Project saved!' => '¡Proyecto guardado ',
+ 'Projects' => 'Proyectos',
+ 'Qty' => 'Cantidad',
+ 'Quarter' => 'Trimestre',
+ 'Save' => 'Guardar',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Sell Price' => 'Precio de venta',
+ 'Startdate' => 'Fecha inicial',
+ 'Summary' => 'Résumen',
+ 'Tax' => 'Impuestos',
+ 'To' => 'Hasta ',
+ 'Translation' => 'Traducción',
+ 'Translation deleted!' => 'Traducción Borrada!',
+ 'Translations saved!' => 'Guardado',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Updated' => '¡Actualizado!',
+ 'Vendor' => 'Proveedor',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Weight' => 'Peso',
+ 'Year' => 'Año',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'agregar_grupo' => 'add_group',
+ 'añadir_grupo_de_precios' => 'add_pricegroup',
+ 'añadir_proyecto' => 'add_project',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'guardar' => 'save',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/co_utf/pos b/locale/co_utf/pos
new file mode 100755
index 00000000..2701bf1d
--- /dev/null
+++ b/locale/co_utf/pos
@@ -0,0 +1,82 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Menú general',
+ 'Add POS Invoice' => 'Agregar Factura PdV',
+ 'Amount' => 'Total',
+ 'Business' => 'Empresa',
+ 'Cannot post transaction!' => '¡No se puede registrar la transacción',
+ 'Change' => 'Cambiar',
+ 'Continue' => 'Continuar',
+ 'Credit Limit' => 'Limite de credito',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Delete' => 'Borrar',
+ 'Department' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Edit POS Invoice' => 'Editar Factura Punto de Venta',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate missing!' => 'Falta Tasa de Cambio',
+ 'Extended' => 'Extendido',
+ 'From' => 'De',
+ 'Language' => 'Idioma',
+ 'Memo' => 'Memo',
+ 'Month' => 'Mes',
+ 'Number' => 'Número',
+ 'Open' => 'Abierto',
+ 'Period' => 'Periodo',
+ 'Post' => 'Registrar',
+ 'Posted!' => 'Agregado!',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Printed' => 'Impreso',
+ 'Qty' => 'Cantidad',
+ 'Quarter' => 'Trimestre',
+ 'Receipts' => 'Recibos',
+ 'Record in' => 'Registrar en',
+ 'Remaining' => 'Resto',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Pantalla',
+ 'Source' => 'Fuente',
+ 'Subtotal' => 'Subtotal',
+ 'Tax Included' => 'Impuestos Incluidos',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Descuento',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Year' => 'Año',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'registrar' => 'post',
+ 'imprimir' => 'print',
+ 'imprimir_y_registrar' => 'print_and_post',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/co_utf/ps b/locale/co_utf/ps
new file mode 100755
index 00000000..cec8f5e1
--- /dev/null
+++ b/locale/co_utf/ps
@@ -0,0 +1,385 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Aging' => 'Cartera',
+ 'AP Outstanding' => 'Impagados Proveedores',
+ 'AP Transaction' => 'Transaccion Proveedor',
+ 'AP Transactions' => 'Gestiones de pagos',
+ 'AR Aging' => 'Cartera ',
+ 'AR Outstanding' => 'Impagados Cartera',
+ 'AR Transaction' => 'Cuentas por Cobrar',
+ 'AR Transactions' => 'Cuentas por Cobrar',
+ 'Account' => 'Cuenta',
+ 'Account Number' => 'Número de cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Accounts' => 'Cuentas',
+ 'Accrual' => 'Acumulado',
+ 'Add AP Transaction' => 'Añadir Transacción por Pagar',
+ 'Add AR Transaction' => 'Añadir Transacción por Cobrar',
+ 'Add POS Invoice' => 'Agregar Factura PdV',
+ 'Add Purchase Order' => 'Añadir Pedido',
+ 'Add Quotation' => 'Agregar Cotización',
+ 'Add Request for Quotation' => 'Pedir Cotización',
+ 'Add Sales Invoice' => 'Añadir Factura de Venta',
+ 'Add Sales Order' => 'Añadir Cotización',
+ 'Address' => 'Dirección',
+ 'All Accounts' => 'Todas las Cuentas',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Por Pagar',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => '¿Esta seguro de que desea borrar la factura número',
+ 'Are you sure you want to delete Transaction' => '¿Está seguro de que desea borrar la transacción?',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Balance',
+ 'Balance Sheet' => 'Hoja de balance',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Dirección Factura',
+ 'Bin' => 'Empaque',
+ 'Bin List' => 'Lista Empaque',
+ 'Business' => 'Empresa',
+ 'Cannot delete invoice!' => '¡No se puede borrar la factura!',
+ 'Cannot delete transaction!' => '¡No se puede borrar la transacción!',
+ 'Cannot post invoice for a closed period!' => '¡No se puede registrar una factura en un periodo ya cerrado!',
+ 'Cannot post invoice!' => '¡No se puede registrar la factura!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo ya cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar una transacción para un periodo cerrado',
+ 'Cannot post transaction!' => '¡No se puede registrar la transacción',
+ 'Cash' => 'Efectivo',
+ 'Cc' => 'Cc',
+ 'Change' => 'Cambiar',
+ 'Check' => 'Cheque',
+ 'City' => 'Ciudad',
+ 'Closed' => 'Cerrado',
+ 'Company Name' => 'Nombre de la empresa',
+ 'Compare to' => 'Comparar con',
+ 'Confirm!' => 'Confirmar',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Country' => 'País',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Limite de credito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Current Earnings' => 'Resultado del periodo',
+ 'Customer' => 'Cliente',
+ 'Customer Number' => 'Número del cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Date Paid' => 'Fecha de pago',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Decimalplaces' => 'Lugar de los decimales',
+ 'Delete' => 'Borrar',
+ 'Delete Schedule' => 'Borrar Programación',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Department' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'Due Date missing!' => 'Falta la fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail Statement to' => 'Enviar comprobante por correo electrónico a',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'E-mail message' => 'Mensaje Email',
+ 'E-mailed' => 'Enviado por mail',
+ 'Edit AP Transaction' => 'Editar Asiento de CxP',
+ 'Edit AR Transaction' => 'Editar Asiento de CxC',
+ 'Edit POS Invoice' => 'Editar Factura Punto de Venta',
+ 'Edit Sales Invoice' => 'Editar Factura de Venta',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Every' => 'Cada',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate for payment missing!' => 'Falta Tasa de Cambio',
+ 'Exchange rate missing!' => 'Falta Tasa de Cambio',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'For' => 'Para',
+ 'From' => 'De',
+ 'GIFI' => 'Plan Único de Cuentas (PUC)',
+ 'Group' => 'Grupo',
+ 'Heading' => 'Encabezado',
+ 'ID' => 'ID',
+ 'In-line' => 'Incrustado',
+ 'Include Exchange Rate Difference' => 'Incluir Diferencia por Tasa de Cambio',
+ 'Include Payment' => 'Incluir Pago',
+ 'Include in Report' => 'Incluir en informe',
+ 'Income Statement' => 'Estado de Resultados',
+ 'Internal Notes' => 'Notas internas',
+ 'Invoice' => 'Factura de Venta',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Invoice Number missing!' => 'No se ha definido el número de la factura',
+ 'Invoice deleted!' => '¡Factura borrada!',
+ 'Item not on file!' => 'El concepto no se encuentra en ningún archivo',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Language' => 'Idioma',
+ 'Manager' => 'Administrador',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Message' => 'Mensaje',
+ 'Method' => 'Metódo',
+ 'Month' => 'Mes',
+ 'N/A' => 'Sin respuesta',
+ 'Next Date' => 'Proxima Fecha',
+ 'No.' => 'No.',
+ 'Non-taxable Purchases' => 'Compras sin Impuestos',
+ 'Non-taxable Sales' => 'Ventas sin Impuestos',
+ 'Notes' => 'Notas',
+ 'Nothing selected!' => '¡No es seleccionado nada!',
+ 'Nothing to print!' => '¡No hay nada que imprimir!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se ha definido el número en la fila',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Date missing!' => 'No se ha definido la fecha de la elaboración',
+ 'Order Number' => 'Número de orden',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Número pedido',
+ 'Packing List' => 'Albarán',
+ 'Packing List Date missing!' => 'No se ha definido la fecha del albarán',
+ 'Packing List Number missing!' => 'No se ha definido el número del albarán',
+ 'Paid' => 'Pagado',
+ 'Part' => 'Artículo',
+ 'Payment date missing!' => 'No se encuentra la fecha de pago',
+ 'Payments' => 'Pagos',
+ 'Period' => 'Periodo',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Empaque',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como Nuevo',
+ 'Posted!' => 'Agregado!',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project Number' => 'Número del Proyecto',
+ 'Project Transactions' => 'Transacciones del Projecto',
+ 'Project not on file!' => 'Proyecto no existe!',
+ 'Purchase Order' => 'Pedido',
+ 'Qty' => 'Cantidad',
+ 'Quarter' => 'Trimestre',
+ 'Quotation' => 'Cotización',
+ 'Quotation Date missing!' => 'Falta fecha de cotización',
+ 'Quotation Number missing!' => 'Falta número de cotización',
+ 'Recd' => 'Cobrado',
+ 'Receipt' => 'Recibo',
+ 'Receipts' => 'Recibos',
+ 'Record in' => 'Registrar en',
+ 'Recurring Transaction' => 'Transacción Recurrente',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Resto',
+ 'Repeat' => 'Repetir',
+ 'Report for' => 'Informe para',
+ 'Required by' => 'Aceptado el',
+ 'SKU' => 'SKU',
+ 'Sales Invoice.' => 'Factura de Ventas.',
+ 'Sales Order' => 'Orden de Venta',
+ 'Salesperson' => 'Vendedor',
+ 'Save Schedule' => 'Guardar Programación',
+ 'Schedule' => 'Programar Recurrencia',
+ 'Scheduled' => 'Programado',
+ 'Screen' => 'Pantalla',
+ 'Select all' => 'Guardar todo',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Selecciona uno de los proyectos abajo',
+ 'Select items' => 'Seleccionar Itemes',
+ 'Select payment' => '¡Seleccione Pago!',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Select txt, postscript or PDF!' => '¡Seleccione txt, postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'No de Serial',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Envio',
+ 'Ship to' => 'Destino',
+ 'Ship via' => 'Envio por',
+ 'Shipping Address' => 'Dirección del envio',
+ 'Shipping Point' => 'Destino',
+ 'Source' => 'Fuente',
+ 'Standard' => 'Estándard',
+ 'Startdate' => 'Fecha inicial',
+ 'State/Province' => 'Departamento',
+ 'Statement' => 'Estado de Cuenta',
+ 'Statement sent to' => 'Estado de Cuenta enviado a',
+ 'Statements sent to printer!' => '¡Estado de Cuenta enviado a la impresora!',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Résumen',
+ 'Tax' => 'Impuestos',
+ 'Tax Included' => 'Impuestos Incluidos',
+ 'Tax collected' => 'Impuestos Cobrados Clientes',
+ 'Tax paid' => 'Impuestos Pagados',
+ 'Text' => 'Texto',
+ 'Till' => 'Caja',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Descuento',
+ 'Transaction' => 'Asiento',
+ 'Transaction deleted!' => '¡Transacción borrada!',
+ 'Transaction posted!' => '¡Transacción registrada!',
+ 'Translation not on file!' => 'No hay traducción',
+ 'Trial Balance' => 'Balance de Comprobación',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice.' => 'Factura de Proveedor.',
+ 'Vendor Number' => 'Código Vendedor',
+ 'Vendor missing!' => '¡Falta el proveedor!',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Warning!' => 'Alerta!',
+ 'What type of item is this?' => '¿De qué tipo es este concepto?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+ 'You are posting an existing transaction!' => 'Está registrando una transacción existente!',
+ 'You are printing and posting an existing transaction!' => 'Está imprimiendo registrando una transacción existente!',
+ 'You are printing and saving an existing order' => 'Está imprimiendo y registrando un pedido existente',
+ 'You are printing and saving an existing quotation' => 'Está imprimiendo y registrando una cotización existente',
+ 'You are saving an existing order' => 'Está registrando un pedido existente',
+ 'You are saving an existing quotation' => 'Está registrando una cotización existente',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'as at' => 'al',
+ 'ea' => 'unid.',
+ 'for' => 'para',
+ 'for Period' => 'para el periodo',
+ 'posted!' => 'Guardado',
+ 'sent' => 'Enviado',
+ 'time(s)' => 'vez/veces',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'transaccion_proveedor' => 'ap_transaction',
+ 'cuentas_por_cobrar' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'borrar_programación' => 'delete_schedule',
+ 'correo_electrónico' => 'e_mail',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'imprimir_y_registrar' => 'print_and_post',
+ 'factura_de_ventas_' => 'sales_invoice_',
+ 'orden_de_venta' => 'sales_order',
+ 'guardar_programación' => 'save_schedule',
+ 'programar_recurrencia' => 'schedule',
+ 'guardar_todo' => 'select_all',
+ 'destino' => 'ship_to',
+ 'actualizar' => 'update',
+ 'factura_de_proveedor_' => 'vendor_invoice_',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/co_utf/pw b/locale/co_utf/pw
new file mode 100755
index 00000000..b7af4f87
--- /dev/null
+++ b/locale/co_utf/pw
@@ -0,0 +1,15 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Continue' => 'Continuar',
+ 'Password' => 'Contraseña',
+ 'Session expired!' => '¡Sesión Expiró!',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/co_utf/rc b/locale/co_utf/rc
new file mode 100755
index 00000000..aa127fc0
--- /dev/null
+++ b/locale/co_utf/rc
@@ -0,0 +1,81 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Balance',
+ 'Beginning Balance' => 'Balance Inicial',
+ 'Cleared' => 'Borrado',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Current' => 'Actual',
+ 'Date' => 'Fecha',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Difference' => 'Diferencia',
+ 'Done' => 'Hecho',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'De',
+ 'Include Exchange Rate Difference' => 'Incluir Diferencia por Tasa de Cambio',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Month' => 'Mes',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Out of balance!' => '¡Fuera de balance!',
+ 'Outstanding' => 'Impagados',
+ 'Period' => 'Periodo',
+ 'Quarter' => 'Trimestre',
+ 'R' => 'R',
+ 'Reconciliation' => 'Reconciliación',
+ 'Reconciliation Report' => 'Reporte de Reconciliación',
+ 'Select all' => 'Guardar todo',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Source' => 'Fuente',
+ 'Statement Balance' => 'Balance de Cuenta',
+ 'Summary' => 'Résumen',
+ 'To' => 'Hasta ',
+ 'Update' => 'Actualizar',
+ 'Year' => 'Año',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'continuar' => 'continue',
+ 'hecho' => 'done',
+ 'guardar_todo' => 'select_all',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/co_utf/rp b/locale/co_utf/rp
new file mode 100755
index 00000000..e4bde14a
--- /dev/null
+++ b/locale/co_utf/rp
@@ -0,0 +1,200 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Aging' => 'Cartera',
+ 'AR Aging' => 'Cartera ',
+ 'Account' => 'Cuenta',
+ 'Account Number' => 'Número de cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Accounts' => 'Cuentas',
+ 'Accrual' => 'Acumulado',
+ 'Address' => 'Dirección',
+ 'All Accounts' => 'Todas las Cuentas',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Balance',
+ 'Balance Sheet' => 'Hoja de balance',
+ 'Bcc' => 'Bcc',
+ 'Cash' => 'Efectivo',
+ 'Cc' => 'Cc',
+ 'Compare to' => 'Comparar con',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Credit' => 'Crédito',
+ 'Curr' => 'Mon.',
+ 'Current' => 'Actual',
+ 'Current Earnings' => 'Resultado del periodo',
+ 'Customer' => 'Cliente',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Decimalplaces' => 'Lugar de los decimales',
+ 'Delete Schedule' => 'Borrar Programación',
+ 'Department' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail Statement to' => 'Enviar comprobante por correo electrónico a',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'E-mail message' => 'Mensaje Email',
+ 'Every' => 'Cada',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'For' => 'Para',
+ 'From' => 'De',
+ 'GIFI' => 'Plan Único de Cuentas (PUC)',
+ 'Heading' => 'Encabezado',
+ 'ID' => 'ID',
+ 'In-line' => 'Incrustado',
+ 'Include Exchange Rate Difference' => 'Incluir Diferencia por Tasa de Cambio',
+ 'Include Payment' => 'Incluir Pago',
+ 'Include in Report' => 'Incluir en informe',
+ 'Income Statement' => 'Estado de Resultados',
+ 'Invoice' => 'Factura de Venta',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Language' => 'Idioma',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Message' => 'Mensaje',
+ 'Method' => 'Metódo',
+ 'Month' => 'Mes',
+ 'N/A' => 'Sin respuesta',
+ 'Next Date' => 'Proxima Fecha',
+ 'Non-taxable Purchases' => 'Compras sin Impuestos',
+ 'Non-taxable Sales' => 'Ventas sin Impuestos',
+ 'Nothing selected!' => '¡No es seleccionado nada!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Order' => 'Orden',
+ 'PDF' => 'PDF',
+ 'Payments' => 'Pagos',
+ 'Period' => 'Periodo',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Imprimir',
+ 'Project' => 'Proyecto',
+ 'Project Number' => 'Número del Proyecto',
+ 'Project Transactions' => 'Transacciones del Projecto',
+ 'Project not on file!' => 'Proyecto no existe!',
+ 'Quarter' => 'Trimestre',
+ 'Receipts' => 'Recibos',
+ 'Recurring Transaction' => 'Transacción Recurrente',
+ 'Reference' => 'Referencia',
+ 'Repeat' => 'Repetir',
+ 'Report for' => 'Informe para',
+ 'Salesperson' => 'Vendedor',
+ 'Save Schedule' => 'Guardar Programación',
+ 'Screen' => 'Pantalla',
+ 'Select all' => 'Guardar todo',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Selecciona uno de los proyectos abajo',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Source' => 'Fuente',
+ 'Standard' => 'Estándard',
+ 'Startdate' => 'Fecha inicial',
+ 'Statement' => 'Estado de Cuenta',
+ 'Statement sent to' => 'Estado de Cuenta enviado a',
+ 'Statements sent to printer!' => '¡Estado de Cuenta enviado a la impresora!',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Résumen',
+ 'Tax' => 'Impuestos',
+ 'Tax collected' => 'Impuestos Cobrados Clientes',
+ 'Tax paid' => 'Impuestos Pagados',
+ 'Till' => 'Caja',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Trial Balance' => 'Balance de Comprobación',
+ 'Vendor' => 'Proveedor',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Warning!' => 'Alerta!',
+ 'Year' => 'Año',
+ 'You are posting an existing transaction!' => 'Está registrando una transacción existente!',
+ 'You are printing and posting an existing transaction!' => 'Está imprimiendo registrando una transacción existente!',
+ 'You are printing and saving an existing order' => 'Está imprimiendo y registrando un pedido existente',
+ 'You are printing and saving an existing quotation' => 'Está imprimiendo y registrando una cotización existente',
+ 'You are saving an existing order' => 'Está registrando un pedido existente',
+ 'You are saving an existing quotation' => 'Está registrando una cotización existente',
+ 'as at' => 'al',
+ 'for' => 'para',
+ 'for Period' => 'para el periodo',
+ 'sent' => 'Enviado',
+ 'time(s)' => 'vez/veces',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuar' => 'continue',
+ 'borrar_programación' => 'delete_schedule',
+ 'correo_electrónico' => 'e_mail',
+ 'imprimir' => 'print',
+ 'guardar_programación' => 'save_schedule',
+ 'guardar_todo' => 'select_all',
+};
+
+1;
+
diff --git a/locale/ct/COPYING b/locale/ct/COPYING
new file mode 100755
index 00000000..da7771c0
--- /dev/null
+++ b/locale/ct/COPYING
@@ -0,0 +1,21 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (C) 2002
+#
+# Catalan Translation:
+#
+# Author: Jaume Teixi <teixi@rocacorbit.com>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+######################################################################
diff --git a/locale/ct/LANGUAGE b/locale/ct/LANGUAGE
new file mode 100755
index 00000000..f37af43f
--- /dev/null
+++ b/locale/ct/LANGUAGE
@@ -0,0 +1 @@
+Catalan
diff --git a/locale/ct/Num2text b/locale/ct/Num2text
new file mode 100755
index 00000000..88ffe737
--- /dev/null
+++ b/locale/ct/Num2text
@@ -0,0 +1,212 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (C) 2002
+#
+# Author: Dieter Simader
+# Email: dsimader@sql-ledger.org
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+# Language: Spanish
+# Contributors: John Christian Stoddart
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#======================================================================
+
+
+sub init {
+ my $self = shift;
+
+ %{ $self->{numbername} } =
+ (0 => 'cero',
+ 1 => 'un',
+ '1o' => 'uno',
+ 2 => 'dos',
+ 3 => 'tres',
+ 4 => 'cuatro',
+ 5 => 'cinco',
+ 6 => 'seis',
+ 7 => 'siete',
+ 8 => 'ocho',
+ 9 => 'nueve',
+ 10 => 'diez',
+ 11 => 'once',
+ '11o' => 'once',
+ 12 => 'doce',
+ 13 => 'trece',
+ 14 => 'catorce',
+ 15 => 'quince',
+ 16 => 'dieciséis',
+ 17 => 'diecisiete',
+ 18 => 'dieciocho',
+ 19 => 'diecinueve',
+ 20 => 'veinte',
+ 21 => 'veintiún',
+ '21o' => 'veintiuno',
+ 22 => 'veintidós',
+ 23 => 'veintitrés',
+ 24 => 'veinticuatro',
+ 25 => 'veinticinco',
+ 26 => 'veintiséis',
+ 27 => 'veintisiete',
+ 28 => 'veintiocho',
+ 29 => 'veintinueve',
+ 30 => 'treinta',
+ 40 => 'cuarenta',
+ 50 => 'cincuenta',
+ 60 => 'sesenta',
+ 70 => 'setenta',
+ 80 => 'ochenta',
+ 90 => 'noventa',
+ 500 => 'quinientos',
+ 700 => 'setecientos',
+ 900 => 'novecientos',
+ 10**2 => 'ciento',
+ 10**3 => 'mil',
+ 10**6 => 'millón',
+ 10**12 => 'billón',
+ );
+
+}
+
+
+sub num2text {
+ my ($self, $amount) = @_;
+
+ return $self->{numbername}{0} unless $amount;
+
+ my @textnumber = ();
+
+ # split amount into chunks of 3
+ my @num = reverse split //, abs($amount);
+ my @numblock = ();
+ my $stripun = 0;
+ my @a = ();
+ my $i;
+
+ while (@num) {
+ @a = ();
+ for (1 .. 3) {
+ push @a, shift @num;
+ }
+ push @numblock, join / /, reverse @a;
+ }
+
+ # special case for 1000
+ if ($numblock[1] eq '1' && $numblock[0] gt '000') {
+ # remove first array element from textnumber
+ $stripun = 1;
+ }
+
+ while (@numblock) {
+
+ $i = $#numblock;
+ @num = split //, $numblock[$i];
+
+ $numblock[$i] *= 1;
+
+ if ($numblock[$i] == 0) {
+ pop @numblock;
+ next;
+ }
+
+ if ($numblock[$i] > 99) {
+ if ($num[0] == 1) {
+ push @textnumber, $self->{numbername}{10**2};
+ } else {
+ # special case for 500, 700, 900
+ if (grep /$num[0]/, (5,7,9)) {
+ push @textnumber, $self->{numbername}{"${num[0]}00"};
+
+ } else {
+
+ # the one from hundreds, append cientos
+ push @textnumber, $self->{numbername}{$num[0]}.$self->{numbername}{10**2}.'s';
+
+ }
+ }
+
+ # reduce numblock
+ $numblock[$i] -= $num[0] * 100;
+ }
+
+ if ($numblock[$i] > 9) {
+ # tens
+ push @textnumber, $self->format_ten($numblock[$i], $i);
+ } elsif ($numblock[$i] > 0) {
+ # ones
+ $num = $numblock[$i];
+ $num .= 'o' if ($num == 1 && $i == 0);
+ push @textnumber, $self->{numbername}{$num};
+ }
+
+ # add thousand, million
+ if ($i) {
+ $num = 10**($i * 3);
+ if ($numblock[$i] > 1) {
+ if ($i == 2 || $i == 4) {
+ $a = $self->{numbername}{$num}."es";
+ $a =~ s/ó/o/;
+ push @textnumber, $a;
+ } elsif ($i == 3) {
+ $num = 10**($i * 2);
+ $a = "$self->{10**3} $self->{numbername}{$num}"."es";
+ $a =~ s/ó/o/;
+ push @textnumber, $a;
+ } else {
+ if ($i == 1) {
+ push @textnumber, $self->{numbername}{$num};
+ } else {
+ push @textnumber, $self->{numbername}{$num}.'s';
+ }
+ }
+ } else {
+ push @textnumber, $self->{numbername}{$num};
+ }
+ }
+
+ pop @numblock;
+
+ }
+
+ shift @textnumber if $stripun;
+
+ join ' ', @textnumber;
+
+}
+
+
+sub format_ten {
+ my ($self, $amount, $i) = @_;
+
+ my $textnumber = "";
+ my @num = split //, $amount;
+
+ if ($amount > 30) {
+ $textnumber = $self->{numbername}{$num[0]*10};
+ $amount = $num[1];
+ } else {
+ $amount .= 'o' if ($num[1] == 1 && $i == 0);
+ $textnumber = $self->{numbername}{$amount};
+ $amount = 0;
+ }
+
+ $textnumber .= " y ".$self->{numbername}{$amount} if $amount;
+
+ $textnumber;
+
+}
+
+
+1;
+
diff --git a/locale/ct/aa b/locale/ct/aa
new file mode 100755
index 00000000..5309eea3
--- /dev/null
+++ b/locale/ct/aa
@@ -0,0 +1,99 @@
+$self{texts} = {
+ 'AP Transactions' => 'Transaccions de Despeses',
+ 'AR Transactions' => 'Transaccions d\'Ingressos',
+ 'Account' => 'Compta',
+ 'Accounting Menu' => 'Menú Comptable',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => 'Segur que voleu esborrar la Transacció',
+ 'Aug' => 'Ago',
+ 'August' => 'Agost',
+ 'Cannot post transaction for a closed period!' => 'No es pot registrar una transacció per un període tancat',
+ 'Closed' => 'Tancat',
+ 'Confirm!' => 'Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crèdit',
+ 'Credit Limit' => 'Límit de Crèdit',
+ 'Currency' => 'Moneda',
+ 'Customer' => 'Client',
+ 'Date' => 'Data',
+ 'Date Paid' => 'Data Pagament',
+ 'Debit' => 'Dèbit',
+ 'Dec' => 'Des',
+ 'December' => 'Desembre',
+ 'Delete' => 'Esborrar',
+ 'Description' => 'Descripció',
+ 'Due Date' => 'Data Venciment',
+ 'Due Date missing!' => 'Falta la Data Venciment!',
+ 'Exch' => 'Canvi',
+ 'Exchange Rate' => 'Taxa de Canvi',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrer',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incloure en l\'Informe',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Data Fra.',
+ 'Invoice Date missing!' => 'Falta Data Fra.!',
+ 'Invoice Number' => 'Núm Fra.',
+ 'Jan' => 'Gen',
+ 'January' => 'Gener',
+ 'Jul' => 'Jul',
+ 'July' => 'Juliol',
+ 'Jun' => 'Jun',
+ 'June' => 'Juny',
+ 'Mar' => 'Mar',
+ 'March' => 'Març',
+ 'May' => 'Mai',
+ 'May ' => 'Maig',
+ 'Notes' => 'Notes',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembre',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Obert',
+ 'Order' => 'Ordre',
+ 'Order Number' => 'Número Ordre',
+ 'Paid' => 'Pagat',
+ 'Payment date missing!' => 'Falta Data Pagament!',
+ 'Payments' => 'Pagaments',
+ 'Remaining' => 'Remanent',
+ 'Sep' => 'Set',
+ 'September' => 'Setembre',
+ 'Source' => 'Font',
+ 'Subtotal' => 'Subtotal',
+ 'Tax' => 'Impost',
+ 'Tax Included' => 'Impostos Inclosos',
+ 'To' => 'Fins',
+ 'Total' => 'Total',
+ 'Vendor' => 'Proveïdor',
+ 'Yes' => 'Sí',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'esborrar' => 'delete',
+ 'sí' => 'yes',
+};
+
+1;
+
diff --git a/locale/ct/admin b/locale/ct/admin
new file mode 100755
index 00000000..b9cccfe4
--- /dev/null
+++ b/locale/ct/admin
@@ -0,0 +1,133 @@
+$self{texts} = {
+ 'Access Control' => 'Control d\'Accés',
+ 'Accounting' => 'Comptabilitat',
+ 'Add User' => 'Afegir Usuari',
+ 'Address' => 'Adreça',
+ 'Administration' => 'Administració',
+ 'Administrator' => 'Administrator',
+ 'All Datasets up to date!' => 'Totes les Base de Dades Actualitzades!',
+ 'Cannot create Lock!' => 'Cannot create Lock!',
+ 'Change Admin Password' => 'Canviar la contrasenya de l\'administrador',
+ 'Change Password' => 'Canviar contrasenya',
+ 'Click on login name to edit!' => 'Clicar en el nom d\'accés per editar',
+ 'Company' => 'Empresa',
+ 'Connect to' => 'Connectar a',
+ 'Continue' => 'Continuar',
+ 'Create Chart of Accounts' => 'Crear la Taula de Comptes',
+ 'Create Dataset' => 'Crear el Conjunt de Dades',
+ 'DBI not installed!' => 'DBI no instal.lat',
+ 'Database' => 'Base de Dades',
+ 'Database Administration' => 'Administrar Base de Dades',
+ 'Database Driver not checked!' => 'Mòdul de la Base de Dades no comprovat!',
+ 'Database User missing!' => 'Falta el usuari de la Base de Dades!',
+ 'Dataset' => 'Conjunt de Dades',
+ 'Dataset missing!' => 'Falta el Conjunt de Dades',
+ 'Dataset updated!' => 'Dataset updated!',
+ 'Date Format' => 'Format Data',
+ 'Delete' => 'Esborrar',
+ 'Delete Dataset' => 'Esborrar Conjunt de Dades',
+ 'Directory' => 'Directori',
+ 'Driver' => 'Mòdul',
+ 'E-mail' => 'Email',
+ 'Edit User' => 'Editar Usuari',
+ 'Existing Datasets' => 'Conjunt de Dades Existents',
+ 'Fax' => 'Fax',
+ 'Host' => 'Servidor',
+ 'Hostname missing!' => 'Falta el Nom del Servidor!',
+ 'Language' => 'Idioma',
+ 'Lock System' => 'Lock System',
+ 'Lockfile created!' => 'Lockfile created!',
+ 'Lockfile removed!' => 'Lockfile removed!',
+ 'Login' => 'Entrar',
+ 'Login name missing!' => 'Login name missing!',
+ 'Logout' => 'Desconnectar',
+ 'Multibyte Encoding' => 'Multibyte Encoding',
+ 'Name' => 'Nom',
+ 'New Templates' => 'Noves Plantilles',
+ 'No Database Drivers available!' => 'Cap Mòdul de Base de Dades disponible!',
+ 'No Dataset selected!' => 'No hi ha cap Conjunt de Dades seleccionat!',
+ 'Nothing to delete!' => 'No hi ha res per esborrar!',
+ 'Number Format' => 'Format Número',
+ 'Oracle Database Administration' => 'Administració Base de Dades Oracle',
+ 'Password' => 'Contrasenya',
+ 'Password changed!' => 'Password changed!',
+ 'Pg Database Administration' => 'Administració Base de Dades PostgreSQL',
+ 'PgPP Database Administration' => 'PgPP Database Administration',
+ 'Phone' => 'Tel',
+ 'Port' => 'Port',
+ 'Port missing!' => 'Falta Port!',
+ 'Printer' => 'Impressora',
+ 'Save' => 'Guardar',
+ 'Setup Templates' => 'Configurar Plantilles',
+ 'Signature' => 'Signatura',
+ 'Stylesheet' => 'Fulla Estils',
+ 'Templates' => 'Plantilles',
+ 'The following Datasets are not in use and can be deleted' => 'Els següents conjunt de dades no s\'usen i poden esborrar-se',
+ 'The following Datasets need to be updated' => 'Cal actualitzar els següents conjunt de dades',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Comprovació preliminar de les fonts existents. No es crearà ni s\'esborrra res en aquest punt!',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Per afegir un usuari a un grup, editar el nom, canviar el nom d\'accés i guardar. Un nou usuari amb les mateixes variables es guardarà amb el nou nom d\«accés',
+ 'Unlock System' => 'Unlock System',
+ 'Update Dataset' => 'Actualitzar Conjut de Dades',
+ 'Use Templates' => 'Emprar Plantilles',
+ 'User' => 'Usuari',
+ 'User deleted!' => 'User deleted!',
+ 'User saved!' => 'User saved!',
+ 'Version' => 'Versió',
+ 'does not exist' => 'no existeix',
+ 'is already a member!' => 'ja és membre!',
+ 'localhost' => 'màquina local',
+ 'successfully created!' => 'creat correctament!',
+ 'successfully deleted!' => 'esborrat correctament!',
+ 'website' => 'web',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'afegir_usuari' => 'add_user',
+ 'canviar_la_contrasenya_de_l\'administrador' => 'change_admin_password',
+ 'canviar_contrasenya' => 'change_password',
+ 'continuar' => 'continue',
+ 'crear_el_conjunt_de_dades' => 'create_dataset',
+ 'esborrar' => 'delete',
+ 'esborrar_conjunt_de_dades' => 'delete_dataset',
+ 'lock_system' => 'lock_system',
+ 'entrar' => 'login',
+ 'desconnectar' => 'logout',
+ 'administració_base_de_dades_oracle' => 'oracle_database_administration',
+ 'administració_base_de_dades_postgresql' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'guardar' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'actualitzar_conjut_de_dades' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/ct/all b/locale/ct/all
new file mode 100755
index 00000000..06094e5b
--- /dev/null
+++ b/locale/ct/all
@@ -0,0 +1,307 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+
+$self{texts} = {
+ 'AP' => 'Despeses',
+ 'AP Aging' => 'Diari de Despeses',
+ 'AP Transactions' => 'Transaccions de Despeses',
+ 'AR' => 'Ingressos',
+ 'AR Aging' => 'Diari d\'Ingressos',
+ 'AR Transactions' => 'Transaccions d\'Ingressos',
+ 'About' => 'Referent',
+ 'Access Control' => 'Control d\'Accés',
+ 'Account' => 'Compta',
+ 'Account Number' => 'Num. Compta',
+ 'Account Number missing!' => 'Falta el Num. Compta!',
+ 'Account Type' => 'Tipus de Compta',
+ 'Account Type missing!' => 'Falta el Tipus de Compta!',
+ 'Accounting' => 'Comptabilitat',
+ 'Accounting Menu' => 'Menú Comptable',
+ 'Add' => 'Afegir',
+ 'Add Account' => 'Afegir Compta',
+ 'Add Assembly' => 'Afegir Compost',
+ 'Add Customer' => 'Afegir Client',
+ 'Add General Ledger Transaction' => 'Afegir Transacció Llibre Major',
+ 'Add Part' => 'Afegir Article',
+ 'Add Purchase Order' => 'Afegir Ordre Compra',
+ 'Add Sales Order' => 'Afegir Pressupost',
+ 'Add Service' => 'Afegir Servei',
+ 'Add Transaction' => 'Afegir Transacció',
+ 'Add User' => 'Afegir Usuari',
+ 'Add Vendor' => 'Afegir Proveïdor',
+ 'Address' => 'Adreça',
+ 'Administration' => 'Administració',
+ 'Administrator' => 'Administrator',
+ 'All' => 'Tots',
+ 'All Datasets up to date!' => 'Totes les Base de Dades Actualitzades!',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => 'Segur que voleu esborrar la Fra. Num.',
+ 'Are you sure you want to delete Order Number' => 'Segur que voleu esborrar l\'Ordre',
+ 'Are you sure you want to delete Transaction' => 'Segur que voleu esborrar la Transacció',
+ 'Assemblies' => 'Compostos',
+ 'Asset' => 'Activat',
+ 'Attachment' => 'Adjunt',
+ 'Audit Control' => 'Control Auditoria',
+ 'Aug' => 'Ago',
+ 'August' => 'Agost',
+ 'Backup' => 'Còpia de Seguretat',
+ 'Backup sent to' => 'Còpia de Seguretat enviada a',
+ 'Balance Sheet' => 'Fulla de Balanç',
+ 'Bin' => 'Bin',
+ 'Books are open' => 'Els Llibres estan Oberts',
+ 'Business Number' => 'Núm. Negoci',
+ 'COGS' => 'Cost de Preu',
+ 'Cannot create Lock!' => 'Cannot create Lock!',
+ 'Cannot delete default account!' => 'No es pot esborrar la compta per defecte!',
+ 'Cannot post transaction for a closed period!' => 'No es pot registrar una transacció per un període tancat',
+ 'Change Admin Password' => 'Canviar la contrasenya de l\'administrador',
+ 'Change Password' => 'Canviar contrasenya',
+ 'Chart of Accounts' => 'Taula de Comptes',
+ 'Click on login name to edit!' => 'Clicar en el nom d\'accés per editar',
+ 'Close Books up to' => 'Tancar els llibres fins',
+ 'Closed' => 'Tancat',
+ 'Company' => 'Empresa',
+ 'Compare to' => 'Comparar amb',
+ 'Confirm!' => 'Confirmar!',
+ 'Connect to' => 'Connectar a',
+ 'Contact' => 'Contacte',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Còpies',
+ 'Create Chart of Accounts' => 'Crear la Taula de Comptes',
+ 'Create Dataset' => 'Crear el Conjunt de Dades',
+ 'Credit' => 'Crèdit',
+ 'Credit Limit' => 'Límit de Crèdit',
+ 'Currency' => 'Moneda',
+ 'Customer' => 'Client',
+ 'DBI not installed!' => 'DBI no instal.lat',
+ 'Database' => 'Base de Dades',
+ 'Database Administration' => 'Administrar Base de Dades',
+ 'Database Driver not checked!' => 'Mòdul de la Base de Dades no comprovat!',
+ 'Database Host' => 'Servidor Base de Dades',
+ 'Database User missing!' => 'Falta el usuari de la Base de Dades!',
+ 'Dataset' => 'Conjunt de Dades',
+ 'Dataset missing!' => 'Falta el Conjunt de Dades',
+ 'Dataset updated!' => 'Dataset updated!',
+ 'Date' => 'Data',
+ 'Date Format' => 'Format Data',
+ 'Date Paid' => 'Data Pagament',
+ 'Debit' => 'Dèbit',
+ 'Dec' => 'Des',
+ 'December' => 'Desembre',
+ 'Delete' => 'Esborrar',
+ 'Delete Account' => 'Esborrar Compta',
+ 'Delete Dataset' => 'Esborrar Conjunt de Dades',
+ 'Description' => 'Descripció',
+ 'Directory' => 'Directori',
+ 'Discount' => 'Descompte',
+ 'Driver' => 'Mòdul',
+ 'Due Date' => 'Data Venciment',
+ 'Due Date missing!' => 'Falta la Data Venciment!',
+ 'E-mail' => 'Email',
+ 'E-mail address missing!' => 'Falta Email!',
+ 'Edit Account' => 'Editar Compta',
+ 'Edit Assembly' => 'Editar Compost',
+ 'Edit General Ledger Transaction' => 'Editar Transacció del LLibre Major',
+ 'Edit Part' => 'Editar Article',
+ 'Edit Preferences for' => 'Editar Preferències per',
+ 'Edit Purchase Order' => 'Editar Ordre Compra',
+ 'Edit Sales Order' => 'Editar Pressupost',
+ 'Edit Service' => 'Editar Servei',
+ 'Edit Template' => 'Editar Plantilla',
+ 'Edit User' => 'Editar Usuari',
+ 'Enforce transaction reversal for all dates' => 'Forçar l\'anul.lació de transaccions per totes les dates',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Entrar fins a 3 caràcters separats per dos punts (p.e. EUR:USD:CAD) per les monedes nacionals i estrangeres',
+ 'Equity' => 'Balanç',
+ 'Exch' => 'Canvi',
+ 'Exchange Rate' => 'Taxa de Canvi',
+ 'Existing Datasets' => 'Conjunt de Dades Existents',
+ 'Expense' => 'Despeses',
+ 'Expense/Asset' => 'Despesa/Activa',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrer',
+ 'Foreign Exchange Gain' => 'Guany en Bescanvi Moneda',
+ 'Foreign Exchange Loss' => 'Pèrdua en Bescanvi Moneda',
+ 'From' => 'De',
+ 'General Ledger' => 'Llibre Major',
+ 'Goods & Services' => 'Bèns i Serveis',
+ 'HTML Templates' => 'Plantilles HTML',
+ 'Heading' => 'Capçalera',
+ 'Host' => 'Servidor',
+ 'Hostname missing!' => 'Falta el Nom del Servidor!',
+ 'ID' => 'ID',
+ 'In-line' => 'Afegit',
+ 'Include in Report' => 'Incloure en l\'Informe',
+ 'Include in drop-down menus' => 'Incloure en Menús Desplegables',
+ 'Income Statement' => 'Balanç Situació',
+ 'Incorrect Dataset version!' => 'Versió Incorrecta del Conjunt de Dades!',
+ 'Individual Items' => 'Elements Individuals',
+ 'Inventory' => 'Inventari',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'La quantitat en l\'inventari ha de ser zero abans de marcar-lo com obsolet',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'La quantitat en l\'inventari ha de ser zero abans de marcar-lo com obsolet',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Data Fra.',
+ 'Invoice Date missing!' => 'Falta Data Fra.!',
+ 'Invoice Number' => 'Núm Fra.',
+ 'Invoice Number missing!' => 'Falta Núm Fra.!',
+ 'Is this a summary account to record' => 'És una compta resum a registrar?',
+ 'Item not on file!' => 'No es troba cap arxiu amb aquest element!',
+ 'Jan' => 'Gen',
+ 'January' => 'Gener',
+ 'Jul' => 'Jul',
+ 'July' => 'Juliol',
+ 'Jun' => 'Jun',
+ 'June' => 'Juny',
+ 'LaTeX Templates' => 'Plantilles LaTeX',
+ 'Language' => 'Idioma',
+ 'Last Numbers & Default Accounts' => 'Darrers Núms & Comptes per Defecte',
+ 'Leave host and port field empty unless you want to make a remote connection.' => 'Deixar en blanc el servidor i el port excepte per fer una connexió remota',
+ 'Liability' => 'Passiu',
+ 'Licensed to' => 'Adaptat per',
+ 'Line Total' => 'Total Línia',
+ 'Link' => 'Enllaç',
+ 'Link Accounts' => 'Enllaçar Comptes',
+ 'List Accounts' => 'Llistar Comptes',
+ 'List Price' => 'Llistar Preu',
+ 'List Transactions' => 'Llistar Transaccions',
+ 'Lock System' => 'Lock System',
+ 'Lockfile created!' => 'Lockfile created!',
+ 'Lockfile removed!' => 'Lockfile removed!',
+ 'Login' => 'Entrar',
+ 'Login name missing!' => 'Login name missing!',
+ 'Logout' => 'Desconnectar',
+ 'Make' => 'Fer',
+ 'Mar' => 'Mar',
+ 'March' => 'Març',
+ 'May' => 'Mai',
+ 'May ' => 'Maig',
+ 'Model' => 'Model',
+ 'Multibyte Encoding' => 'Multibyte Encoding',
+ 'Name' => 'Nom',
+ 'New Templates' => 'Noves Plantilles',
+ 'No' => 'No',
+ 'No Database Drivers available!' => 'Cap Mòdul de Base de Dades disponible!',
+ 'No Dataset selected!' => 'No hi ha cap Conjunt de Dades seleccionat!',
+ 'No email address for' => 'Falta adreça email de',
+ 'Notes' => 'Notes',
+ 'Nothing to delete!' => 'No hi ha res per esborrar!',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembre',
+ 'Number' => 'Número',
+ 'Number Format' => 'Format Número',
+ 'Number missing in Row' => 'Falta en número en la fila',
+ 'Obsolete' => 'Obsolet',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'On Hand' => 'Disponible',
+ 'Open' => 'Obert',
+ 'Oracle Database Administration' => 'Administració Base de Dades Oracle',
+ 'Order' => 'Ordre',
+ 'Order Date' => 'Data Ordre',
+ 'Order Date missing!' => 'Falta Data Ordre!',
+ 'Order Entry' => 'Pressupostos i Comandes',
+ 'Order Number' => 'Número Ordre',
+ 'Order Number missing!' => 'Falta Número Ordre!',
+ 'Orphaned' => 'Orfe',
+ 'Packing List' => 'Albarà',
+ 'Packing List Date missing!' => 'Falta Data Albarà!',
+ 'Packing List Number missing!' => 'Falta Número Albarà!',
+ 'Paid' => 'Pagat',
+ 'Part' => 'Article',
+ 'Parts' => 'Articles',
+ 'Password' => 'Contrasenya',
+ 'Password changed!' => 'Password changed!',
+ 'Payables' => 'Pagables',
+ 'Payment' => 'Pagament',
+ 'Payment date missing!' => 'Falta Data Pagament!',
+ 'Payments' => 'Pagaments',
+ 'Pg Database Administration' => 'Administració Base de Dades PostgreSQL',
+ 'PgPP Database Administration' => 'PgPP Database Administration',
+ 'Phone' => 'Tel',
+ 'Port' => 'Port',
+ 'Port missing!' => 'Falta Port!',
+ 'Preferences' => 'Preferències',
+ 'Preferences saved!' => 'Preferències Guardades!',
+ 'Price' => 'Preu',
+ 'Printer' => 'Impressora',
+ 'Purchase Order' => 'Ordre de Compra',
+ 'Purchase Orders' => 'Ordres de Compra',
+ 'Qty' => 'Quantitat',
+ 'ROP' => 'ROP',
+ 'Rate' => 'Tarifa',
+ 'Receivables' => 'Cobraments',
+ 'Record in' => 'Registar en',
+ 'Remaining' => 'Remanent',
+ 'Report for' => 'Registrar per',
+ 'Reports' => 'Informes',
+ 'Required by' => 'Soliciat per',
+ 'Retained Earnings' => 'Guanys Retinguts',
+ 'Sales' => 'Vendes',
+ 'Sales Order' => 'Pressupost',
+ 'Sales Orders' => 'Pressupostos',
+ 'Save' => 'Guardar',
+ 'Save to File' => 'Guardar a Fitxer',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the items below' => 'Seleccionar d\'un dels elements de sota',
+ 'Sell Price' => 'Preu Venta',
+ 'Send by E-Mail' => 'Enviar per Email',
+ 'Sep' => 'Set',
+ 'September' => 'Setembre',
+ 'Service' => 'Servei',
+ 'Services' => 'Serveis',
+ 'Setup Templates' => 'Configurar Plantilles',
+ 'Short' => 'Curt',
+ 'Signature' => 'Signatura',
+ 'Source' => 'Font',
+ 'Stock Assembly' => 'Inventari Compost',
+ 'Stylesheet' => 'Fulla Estils',
+ 'Subtotal' => 'Subtotal',
+ 'System' => 'Sistema',
+ 'Tax' => 'Impost',
+ 'Tax Accounts' => 'Comptes Impostos',
+ 'Tax Included' => 'Impostos Inclosos',
+ 'Taxable' => 'Imponible',
+ 'Templates' => 'Plantilles',
+ 'Terms' => 'Terms:Net',
+ 'The following Datasets are not in use and can be deleted' => 'Els següents conjunt de dades no s\'usen i poden esborrar-se',
+ 'The following Datasets need to be updated' => 'Cal actualitzar els següents conjunt de dades',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Comprovació preliminar de les fonts existents. No es crearà ni s\'esborrra res en aquest punt!',
+ 'To' => 'Fins',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Per afegir un usuari a un grup, editar el nom, canviar el nom d\'accés i guardar. Un nou usuari amb les mateixes variables es guardarà amb el nou nom d\«accés',
+ 'Total' => 'Total',
+ 'Transaction Date missing!' => 'Falta Data Transacció!',
+ 'Transaction reversal enforced for all dates' => 'Anul.lació transaccions forçada per totes les dates',
+ 'Transaction reversal enforced up to' => 'Anul.lació transaccions forçada a',
+ 'Transactions' => 'Transaccions',
+ 'Trial Balance' => 'Balanç de Comprovació',
+ 'Unit' => 'Unitat',
+ 'Unit of measure' => 'Unitat de Mesura',
+ 'Unlock System' => 'Unlock System',
+ 'Update Dataset' => 'Actualitzar Conjut de Dades',
+ 'Use Templates' => 'Emprar Plantilles',
+ 'User' => 'Usuari',
+ 'User deleted!' => 'User deleted!',
+ 'User saved!' => 'User saved!',
+ 'Vendor' => 'Proveïdor',
+ 'Version' => 'Versió',
+ 'Weight' => 'Pes',
+ 'Weight Unit' => 'Unitat Pes',
+ 'What type of item is this?' => 'Quin tipus d\'element és?',
+ 'Yes' => 'Sí',
+ 'You did not enter a name!' => 'No heu entrat cap nom!',
+ 'You must enter a host and port for local and remote connections!' => 'Heu d\'entrar el servidor i el port per les connexions locals i remotes!',
+ 'days' => 'dies',
+ 'does not exist' => 'no existeix',
+ 'ea' => 'unit.',
+ 'for Period' => 'pel període',
+ 'is already a member!' => 'ja és membre!',
+ 'localhost' => 'màquina local',
+ 'successfully created!' => 'creat correctament!',
+ 'successfully deleted!' => 'esborrat correctament!',
+ 'website' => 'web',
+};
+
+1;
diff --git a/locale/ct/am b/locale/ct/am
new file mode 100755
index 00000000..59916049
--- /dev/null
+++ b/locale/ct/am
@@ -0,0 +1,182 @@
+$self{texts} = {
+ 'AP' => 'Despeses',
+ 'AR' => 'Ingressos',
+ 'About' => 'Referent',
+ 'Account' => 'Compta',
+ 'Account Number' => 'Num. Compta',
+ 'Account Number missing!' => 'Falta el Num. Compta!',
+ 'Account Type' => 'Tipus de Compta',
+ 'Account Type missing!' => 'Falta el Tipus de Compta!',
+ 'Accounting Menu' => 'Menú Comptable',
+ 'Add Account' => 'Afegir Compta',
+ 'Address' => 'Adreça',
+ 'Amount' => 'Total',
+ 'Asset' => 'Activat',
+ 'Audit Control' => 'Control Auditoria',
+ 'Backup sent to' => 'Còpia de Seguretat enviada a',
+ 'Books are open' => 'Els Llibres estan Oberts',
+ 'Business Number' => 'Núm. Negoci',
+ 'COGS' => 'Cost de Preu',
+ 'Cannot delete default account!' => 'No es pot esborrar la compta per defecte!',
+ 'Chart of Accounts' => 'Taula de Comptes',
+ 'Close Books up to' => 'Tancar els llibres fins',
+ 'Company' => 'Empresa',
+ 'Confirm!' => 'Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crèdit',
+ 'Database Host' => 'Servidor Base de Dades',
+ 'Dataset' => 'Conjunt de Dades',
+ 'Date Format' => 'Format Data',
+ 'Debit' => 'Dèbit',
+ 'Delete' => 'Esborrar',
+ 'Delete Account' => 'Esborrar Compta',
+ 'Description' => 'Descripció',
+ 'Discount' => 'Descompte',
+ 'E-mail' => 'Email',
+ 'E-mail address missing!' => 'Falta Email!',
+ 'Edit Account' => 'Editar Compta',
+ 'Edit Preferences for' => 'Editar Preferències per',
+ 'Edit Template' => 'Editar Plantilla',
+ 'Enforce transaction reversal for all dates' => 'Forçar l\'anul.lació de transaccions per totes les dates',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Entrar fins a 3 caràcters separats per dos punts (p.e. EUR:USD:CAD) per les monedes nacionals i estrangeres',
+ 'Equity' => 'Balanç',
+ 'Expense' => 'Despeses',
+ 'Expense/Asset' => 'Despesa/Activa',
+ 'Fax' => 'Fax',
+ 'Foreign Exchange Gain' => 'Guany en Bescanvi Moneda',
+ 'Foreign Exchange Loss' => 'Pèrdua en Bescanvi Moneda',
+ 'Heading' => 'Capçalera',
+ 'ID' => 'ID',
+ 'Include in drop-down menus' => 'Incloure en Menús Desplegables',
+ 'Inventory' => 'Inventari',
+ 'Invoice' => 'Factura',
+ 'Is this a summary account to record' => 'És una compta resum a registrar?',
+ 'Language' => 'Idioma',
+ 'Last Numbers & Default Accounts' => 'Darrers Núms & Comptes per Defecte',
+ 'Liability' => 'Passiu',
+ 'Licensed to' => 'Adaptat per',
+ 'Link' => 'Enllaç',
+ 'Name' => 'Nom',
+ 'No' => 'No',
+ 'No email address for' => 'Falta adreça email de',
+ 'Number' => 'Número',
+ 'Number Format' => 'Format Número',
+ 'Packing List' => 'Albarà',
+ 'Password' => 'Contrasenya',
+ 'Payables' => 'Pagables',
+ 'Payment' => 'Pagament',
+ 'Phone' => 'Tel',
+ 'Preferences saved!' => 'Preferències Guardades!',
+ 'Printer' => 'Impressora',
+ 'Purchase Order' => 'Ordre de Compra',
+ 'Purchase Orders' => 'Ordres de Compra',
+ 'Rate' => 'Tarifa',
+ 'Receivables' => 'Cobraments',
+ 'Retained Earnings' => 'Guanys Retinguts',
+ 'Sales Order' => 'Pressupost',
+ 'Sales Orders' => 'Pressupostos',
+ 'Save' => 'Guardar',
+ 'Signature' => 'Signatura',
+ 'Stylesheet' => 'Fulla Estils',
+ 'Tax' => 'Impost',
+ 'Transaction reversal enforced for all dates' => 'Anul.lació transaccions forçada per totes les dates',
+ 'Transaction reversal enforced up to' => 'Anul.lació transaccions forçada a',
+ 'User' => 'Usuari',
+ 'Version' => 'Versió',
+ 'Weight Unit' => 'Unitat Pes',
+ 'Yes' => 'Sí',
+ 'localhost' => 'màquina local',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'afegir_compta' => 'add_account',
+ 'continuar' => 'continue',
+ 'esborrar' => 'delete',
+ 'editar_compta' => 'edit_account',
+ 'guardar' => 'save',
+};
+
+1;
+
diff --git a/locale/ct/ap b/locale/ct/ap
new file mode 100755
index 00000000..c8f14b6e
--- /dev/null
+++ b/locale/ct/ap
@@ -0,0 +1,134 @@
+$self{texts} = {
+ 'AP Transactions' => 'Transaccions de Despeses',
+ 'AR Transactions' => 'Transaccions d\'Ingressos',
+ 'Account' => 'Compta',
+ 'Accounting Menu' => 'Menú Comptable',
+ 'Address' => 'Adreça',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => 'Segur que voleu esborrar la Transacció',
+ 'Aug' => 'Ago',
+ 'August' => 'Agost',
+ 'Cannot post transaction for a closed period!' => 'No es pot registrar una transacció per un període tancat',
+ 'Closed' => 'Tancat',
+ 'Confirm!' => 'Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crèdit',
+ 'Credit Limit' => 'Límit de Crèdit',
+ 'Currency' => 'Moneda',
+ 'Customer' => 'Client',
+ 'Date' => 'Data',
+ 'Date Paid' => 'Data Pagament',
+ 'Debit' => 'Dèbit',
+ 'Dec' => 'Des',
+ 'December' => 'Desembre',
+ 'Delete' => 'Esborrar',
+ 'Description' => 'Descripció',
+ 'Due Date' => 'Data Venciment',
+ 'Due Date missing!' => 'Falta la Data Venciment!',
+ 'E-mail' => 'Email',
+ 'Exch' => 'Canvi',
+ 'Exchange Rate' => 'Taxa de Canvi',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrer',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incloure en l\'Informe',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Data Fra.',
+ 'Invoice Date missing!' => 'Falta Data Fra.!',
+ 'Invoice Number' => 'Núm Fra.',
+ 'Jan' => 'Gen',
+ 'January' => 'Gener',
+ 'Jul' => 'Jul',
+ 'July' => 'Juliol',
+ 'Jun' => 'Jun',
+ 'June' => 'Juny',
+ 'Mar' => 'Mar',
+ 'March' => 'Març',
+ 'May' => 'Mai',
+ 'May ' => 'Maig',
+ 'Notes' => 'Notes',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembre',
+ 'Number' => 'Número',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Obert',
+ 'Order' => 'Ordre',
+ 'Order Number' => 'Número Ordre',
+ 'Paid' => 'Pagat',
+ 'Payment date missing!' => 'Falta Data Pagament!',
+ 'Payments' => 'Pagaments',
+ 'Remaining' => 'Remanent',
+ 'Screen' => 'Pantalla',
+ 'Sep' => 'Set',
+ 'September' => 'Setembre',
+ 'Source' => 'Font',
+ 'Subtotal' => 'Subtotal',
+ 'Tax' => 'Impost',
+ 'Tax Included' => 'Impostos Inclosos',
+ 'To' => 'Fins',
+ 'Total' => 'Total',
+ 'Vendor' => 'Proveïdor',
+ 'Yes' => 'Sí',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'esborrar' => 'delete',
+ 'sí' => 'yes',
+};
+
+1;
+
diff --git a/locale/ct/ar b/locale/ct/ar
new file mode 100755
index 00000000..c8f14b6e
--- /dev/null
+++ b/locale/ct/ar
@@ -0,0 +1,134 @@
+$self{texts} = {
+ 'AP Transactions' => 'Transaccions de Despeses',
+ 'AR Transactions' => 'Transaccions d\'Ingressos',
+ 'Account' => 'Compta',
+ 'Accounting Menu' => 'Menú Comptable',
+ 'Address' => 'Adreça',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => 'Segur que voleu esborrar la Transacció',
+ 'Aug' => 'Ago',
+ 'August' => 'Agost',
+ 'Cannot post transaction for a closed period!' => 'No es pot registrar una transacció per un període tancat',
+ 'Closed' => 'Tancat',
+ 'Confirm!' => 'Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crèdit',
+ 'Credit Limit' => 'Límit de Crèdit',
+ 'Currency' => 'Moneda',
+ 'Customer' => 'Client',
+ 'Date' => 'Data',
+ 'Date Paid' => 'Data Pagament',
+ 'Debit' => 'Dèbit',
+ 'Dec' => 'Des',
+ 'December' => 'Desembre',
+ 'Delete' => 'Esborrar',
+ 'Description' => 'Descripció',
+ 'Due Date' => 'Data Venciment',
+ 'Due Date missing!' => 'Falta la Data Venciment!',
+ 'E-mail' => 'Email',
+ 'Exch' => 'Canvi',
+ 'Exchange Rate' => 'Taxa de Canvi',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrer',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incloure en l\'Informe',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Data Fra.',
+ 'Invoice Date missing!' => 'Falta Data Fra.!',
+ 'Invoice Number' => 'Núm Fra.',
+ 'Jan' => 'Gen',
+ 'January' => 'Gener',
+ 'Jul' => 'Jul',
+ 'July' => 'Juliol',
+ 'Jun' => 'Jun',
+ 'June' => 'Juny',
+ 'Mar' => 'Mar',
+ 'March' => 'Març',
+ 'May' => 'Mai',
+ 'May ' => 'Maig',
+ 'Notes' => 'Notes',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembre',
+ 'Number' => 'Número',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Obert',
+ 'Order' => 'Ordre',
+ 'Order Number' => 'Número Ordre',
+ 'Paid' => 'Pagat',
+ 'Payment date missing!' => 'Falta Data Pagament!',
+ 'Payments' => 'Pagaments',
+ 'Remaining' => 'Remanent',
+ 'Screen' => 'Pantalla',
+ 'Sep' => 'Set',
+ 'September' => 'Setembre',
+ 'Source' => 'Font',
+ 'Subtotal' => 'Subtotal',
+ 'Tax' => 'Impost',
+ 'Tax Included' => 'Impostos Inclosos',
+ 'To' => 'Fins',
+ 'Total' => 'Total',
+ 'Vendor' => 'Proveïdor',
+ 'Yes' => 'Sí',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'esborrar' => 'delete',
+ 'sí' => 'yes',
+};
+
+1;
+
diff --git a/locale/ct/arap b/locale/ct/arap
new file mode 100755
index 00000000..b1914b47
--- /dev/null
+++ b/locale/ct/arap
@@ -0,0 +1,37 @@
+$self{texts} = {
+ 'Address' => 'Adreça',
+ 'Continue' => 'Continuar',
+ 'Date' => 'Data',
+ 'Description' => 'Descripció',
+ 'E-mail' => 'Email',
+ 'Number' => 'Número',
+ 'To' => 'Fins',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/ct/arapprn b/locale/ct/arapprn
new file mode 100755
index 00000000..25c1c693
--- /dev/null
+++ b/locale/ct/arapprn
@@ -0,0 +1,25 @@
+$self{texts} = {
+ 'Account' => 'Compta',
+ 'Amount' => 'Total',
+ 'Continue' => 'Continuar',
+ 'Date' => 'Data',
+ 'Screen' => 'Pantalla',
+ 'Source' => 'Font',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/ct/bp b/locale/ct/bp
new file mode 100755
index 00000000..29d412cc
--- /dev/null
+++ b/locale/ct/bp
@@ -0,0 +1,39 @@
+$self{texts} = {
+ 'Account' => 'Compta',
+ 'Accounting Menu' => 'Menú Comptable',
+ 'Confirm!' => 'Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Customer' => 'Client',
+ 'Date' => 'Data',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'Invoice' => 'Factura',
+ 'Invoice Number' => 'Núm Fra.',
+ 'Order' => 'Ordre',
+ 'Order Number' => 'Número Ordre',
+ 'Purchase Orders' => 'Ordres de Compra',
+ 'Sales Orders' => 'Pressupostos',
+ 'To' => 'Fins',
+ 'Vendor' => 'Proveïdor',
+ 'Yes' => 'Sí',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'sí' => 'yes',
+};
+
+1;
+
diff --git a/locale/ct/ca b/locale/ct/ca
new file mode 100755
index 00000000..05df386e
--- /dev/null
+++ b/locale/ct/ca
@@ -0,0 +1,48 @@
+$self{texts} = {
+ 'Account' => 'Compta',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Aug' => 'Ago',
+ 'August' => 'Agost',
+ 'Chart of Accounts' => 'Taula de Comptes',
+ 'Credit' => 'Crèdit',
+ 'Date' => 'Data',
+ 'Debit' => 'Dèbit',
+ 'Dec' => 'Des',
+ 'December' => 'Desembre',
+ 'Description' => 'Descripció',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrer',
+ 'From' => 'De',
+ 'Include in Report' => 'Incloure en l\'Informe',
+ 'Jan' => 'Gen',
+ 'January' => 'Gener',
+ 'Jul' => 'Jul',
+ 'July' => 'Juliol',
+ 'Jun' => 'Jun',
+ 'June' => 'Juny',
+ 'List Transactions' => 'Llistar Transaccions',
+ 'Mar' => 'Mar',
+ 'March' => 'Març',
+ 'May' => 'Mai',
+ 'May ' => 'Maig',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembre',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Sep' => 'Set',
+ 'September' => 'Setembre',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'Fins',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'llistar_transaccions' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/ct/cp b/locale/ct/cp
new file mode 100755
index 00000000..14c1f52f
--- /dev/null
+++ b/locale/ct/cp
@@ -0,0 +1,83 @@
+$self{texts} = {
+ 'AP' => 'Despeses',
+ 'AR' => 'Ingressos',
+ 'Account' => 'Compta',
+ 'Accounting Menu' => 'Menú Comptable',
+ 'Address' => 'Adreça',
+ 'All' => 'Tots',
+ 'Amount' => 'Total',
+ 'Continue' => 'Continuar',
+ 'Currency' => 'Moneda',
+ 'Customer' => 'Client',
+ 'Date' => 'Data',
+ 'Description' => 'Descripció',
+ 'Due Date' => 'Data Venciment',
+ 'E-mail' => 'Email',
+ 'Exchange Rate' => 'Taxa de Canvi',
+ 'From' => 'De',
+ 'Invoice' => 'Factura',
+ 'Language' => 'Idioma',
+ 'Number' => 'Número',
+ 'Payment' => 'Pagament',
+ 'Payments' => 'Pagaments',
+ 'Screen' => 'Pantalla',
+ 'Source' => 'Font',
+ 'To' => 'Fins',
+ 'Vendor' => 'Proveïdor',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/ct/ct b/locale/ct/ct
new file mode 100755
index 00000000..c67fb3c7
--- /dev/null
+++ b/locale/ct/ct
@@ -0,0 +1,105 @@
+$self{texts} = {
+ 'AP Transactions' => 'Transaccions de Despeses',
+ 'AR Transactions' => 'Transaccions d\'Ingressos',
+ 'Accounting Menu' => 'Menú Comptable',
+ 'Add Customer' => 'Afegir Client',
+ 'Add Vendor' => 'Afegir Proveïdor',
+ 'Address' => 'Adreça',
+ 'All' => 'Tots',
+ 'Amount' => 'Total',
+ 'Closed' => 'Tancat',
+ 'Contact' => 'Contacte',
+ 'Continue' => 'Continuar',
+ 'Credit Limit' => 'Límit de Crèdit',
+ 'Currency' => 'Moneda',
+ 'Delete' => 'Esborrar',
+ 'Description' => 'Descripció',
+ 'Discount' => 'Descompte',
+ 'E-mail' => 'Email',
+ 'Fax' => 'Fax',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incloure en l\'Informe',
+ 'Invoice' => 'Factura',
+ 'Item not on file!' => 'No es troba cap arxiu amb aquest element!',
+ 'Language' => 'Idioma',
+ 'Name' => 'Nom',
+ 'Notes' => 'Notes',
+ 'Number' => 'Número',
+ 'Open' => 'Obert',
+ 'Order' => 'Ordre',
+ 'Orphaned' => 'Orfe',
+ 'Phone' => 'Tel',
+ 'Purchase Order' => 'Ordre de Compra',
+ 'Purchase Orders' => 'Ordres de Compra',
+ 'Qty' => 'Quantitat',
+ 'Sales Order' => 'Pressupost',
+ 'Sales Orders' => 'Pressupostos',
+ 'Save' => 'Guardar',
+ 'Sell Price' => 'Preu Venta',
+ 'Subtotal' => 'Subtotal',
+ 'Tax' => 'Impost',
+ 'Tax Included' => 'Impostos Inclosos',
+ 'Taxable' => 'Imponible',
+ 'Terms' => 'Terms:Net',
+ 'To' => 'Fins',
+ 'Total' => 'Total',
+ 'Unit' => 'Unitat',
+ 'days' => 'dies',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'afegir_client' => 'add_customer',
+ 'afegir_proveïdor' => 'add_vendor',
+ 'continuar' => 'continue',
+ 'esborrar' => 'delete',
+ 'ordre_de_compra' => 'purchase_order',
+ 'pressupost' => 'sales_order',
+ 'guardar' => 'save',
+};
+
+1;
+
diff --git a/locale/ct/gl b/locale/ct/gl
new file mode 100755
index 00000000..4bace249
--- /dev/null
+++ b/locale/ct/gl
@@ -0,0 +1,108 @@
+$self{texts} = {
+ 'Account' => 'Compta',
+ 'Accounting Menu' => 'Menú Comptable',
+ 'Add General Ledger Transaction' => 'Afegir Transacció Llibre Major',
+ 'Address' => 'Adreça',
+ 'All' => 'Tots',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => 'Segur que voleu esborrar la Transacció',
+ 'Asset' => 'Activat',
+ 'Aug' => 'Ago',
+ 'August' => 'Agost',
+ 'Cannot post transaction for a closed period!' => 'No es pot registrar una transacció per un període tancat',
+ 'Confirm!' => 'Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crèdit',
+ 'Date' => 'Data',
+ 'Debit' => 'Dèbit',
+ 'Dec' => 'Des',
+ 'December' => 'Desembre',
+ 'Delete' => 'Esborrar',
+ 'Description' => 'Descripció',
+ 'E-mail' => 'Email',
+ 'Edit General Ledger Transaction' => 'Editar Transacció del LLibre Major',
+ 'Equity' => 'Balanç',
+ 'Expense' => 'Despeses',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrer',
+ 'From' => 'De',
+ 'General Ledger' => 'Llibre Major',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incloure en l\'Informe',
+ 'Jan' => 'Gen',
+ 'January' => 'Gener',
+ 'Jul' => 'Jul',
+ 'July' => 'Juliol',
+ 'Jun' => 'Jun',
+ 'June' => 'Juny',
+ 'Liability' => 'Passiu',
+ 'Mar' => 'Mar',
+ 'March' => 'Març',
+ 'May' => 'Mai',
+ 'May ' => 'Maig',
+ 'Notes' => 'Notes',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembre',
+ 'Number' => 'Número',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Reports' => 'Informes',
+ 'Sep' => 'Set',
+ 'September' => 'Setembre',
+ 'Source' => 'Font',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'Fins',
+ 'Transaction Date missing!' => 'Falta Data Transacció!',
+ 'Yes' => 'Sí',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'esborrar' => 'delete',
+ 'sí' => 'yes',
+};
+
+1;
+
diff --git a/locale/ct/hr b/locale/ct/hr
new file mode 100755
index 00000000..bfeaee16
--- /dev/null
+++ b/locale/ct/hr
@@ -0,0 +1,65 @@
+$self{texts} = {
+ 'AP' => 'Despeses',
+ 'Accounting Menu' => 'Menú Comptable',
+ 'Address' => 'Adreça',
+ 'Administrator' => 'Administrator',
+ 'All' => 'Tots',
+ 'Amount' => 'Total',
+ 'Continue' => 'Continuar',
+ 'Delete' => 'Esborrar',
+ 'Description' => 'Descripció',
+ 'E-mail' => 'Email',
+ 'Expense' => 'Despeses',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incloure en l\'Informe',
+ 'Login' => 'Entrar',
+ 'Name' => 'Nom',
+ 'Notes' => 'Notes',
+ 'Number' => 'Número',
+ 'Orphaned' => 'Orfe',
+ 'Rate' => 'Tarifa',
+ 'Sales' => 'Vendes',
+ 'Save' => 'Guardar',
+ 'To' => 'Fins',
+ 'User' => 'Usuari',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'continuar' => 'continue',
+ 'esborrar' => 'delete',
+ 'guardar' => 'save',
+};
+
+1;
+
diff --git a/locale/ct/ic b/locale/ct/ic
new file mode 100755
index 00000000..cb1690cf
--- /dev/null
+++ b/locale/ct/ic
@@ -0,0 +1,185 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menú Comptable',
+ 'Add' => 'Afegir',
+ 'Add Assembly' => 'Afegir Compost',
+ 'Add Part' => 'Afegir Article',
+ 'Add Purchase Order' => 'Afegir Ordre Compra',
+ 'Add Sales Order' => 'Afegir Pressupost',
+ 'Add Service' => 'Afegir Servei',
+ 'Address' => 'Adreça',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Assemblies' => 'Compostos',
+ 'Attachment' => 'Adjunt',
+ 'Aug' => 'Ago',
+ 'August' => 'Agost',
+ 'Bin' => 'Bin',
+ 'COGS' => 'Cost de Preu',
+ 'Closed' => 'Tancat',
+ 'Contact' => 'Contacte',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Còpies',
+ 'Currency' => 'Moneda',
+ 'Customer' => 'Client',
+ 'Date' => 'Data',
+ 'Dec' => 'Des',
+ 'December' => 'Desembre',
+ 'Delete' => 'Esborrar',
+ 'Description' => 'Descripció',
+ 'E-mail' => 'Email',
+ 'E-mail address missing!' => 'Falta Email!',
+ 'Edit Assembly' => 'Editar Compost',
+ 'Edit Part' => 'Editar Article',
+ 'Edit Service' => 'Editar Servei',
+ 'Expense' => 'Despeses',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrer',
+ 'From' => 'De',
+ 'In-line' => 'Afegit',
+ 'Include in Report' => 'Incloure en l\'Informe',
+ 'Individual Items' => 'Elements Individuals',
+ 'Inventory' => 'Inventari',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'La quantitat en l\'inventari ha de ser zero abans de marcar-lo com obsolet',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'La quantitat en l\'inventari ha de ser zero abans de marcar-lo com obsolet',
+ 'Invoice' => 'Factura',
+ 'Invoice Date missing!' => 'Falta Data Fra.!',
+ 'Invoice Number' => 'Núm Fra.',
+ 'Invoice Number missing!' => 'Falta Núm Fra.!',
+ 'Item not on file!' => 'No es troba cap arxiu amb aquest element!',
+ 'Jan' => 'Gen',
+ 'January' => 'Gener',
+ 'Jul' => 'Jul',
+ 'July' => 'Juliol',
+ 'Jun' => 'Jun',
+ 'June' => 'Juny',
+ 'Line Total' => 'Total Línia',
+ 'Link Accounts' => 'Enllaçar Comptes',
+ 'List Price' => 'Llistar Preu',
+ 'Make' => 'Fer',
+ 'Mar' => 'Mar',
+ 'March' => 'Març',
+ 'May' => 'Mai',
+ 'May ' => 'Maig',
+ 'Model' => 'Model',
+ 'Name' => 'Nom',
+ 'Notes' => 'Notes',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'Falta en número en la fila',
+ 'Obsolete' => 'Obsolet',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'On Hand' => 'Disponible',
+ 'Open' => 'Obert',
+ 'Order' => 'Ordre',
+ 'Order Date missing!' => 'Falta Data Ordre!',
+ 'Order Number' => 'Número Ordre',
+ 'Order Number missing!' => 'Falta Número Ordre!',
+ 'Orphaned' => 'Orfe',
+ 'Packing List' => 'Albarà',
+ 'Packing List Date missing!' => 'Falta Data Albarà!',
+ 'Packing List Number missing!' => 'Falta Número Albarà!',
+ 'Part' => 'Article',
+ 'Parts' => 'Articles',
+ 'Phone' => 'Tel',
+ 'Price' => 'Preu',
+ 'Purchase Order' => 'Ordre de Compra',
+ 'Purchase Orders' => 'Ordres de Compra',
+ 'Qty' => 'Quantitat',
+ 'ROP' => 'ROP',
+ 'Required by' => 'Soliciat per',
+ 'Sales Order' => 'Pressupost',
+ 'Sales Orders' => 'Pressupostos',
+ 'Save' => 'Guardar',
+ 'Screen' => 'Pantalla',
+ 'Sell Price' => 'Preu Venta',
+ 'Sep' => 'Set',
+ 'September' => 'Setembre',
+ 'Service' => 'Servei',
+ 'Services' => 'Serveis',
+ 'Short' => 'Curt',
+ 'Stock Assembly' => 'Inventari Compost',
+ 'Subtotal' => 'Subtotal',
+ 'Tax' => 'Impost',
+ 'To' => 'Fins',
+ 'Unit' => 'Unitat',
+ 'Vendor' => 'Proveïdor',
+ 'Weight' => 'Pes',
+ 'What type of item is this?' => 'Quin tipus d\'element és?',
+ 'days' => 'dies',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'afegir_compost' => 'add_assembly',
+ 'afegir_article' => 'add_part',
+ 'afegir_servei' => 'add_service',
+ 'continuar' => 'continue',
+ 'esborrar' => 'delete',
+ 'editar_compost' => 'edit_assembly',
+ 'editar_article' => 'edit_part',
+ 'editar_servei' => 'edit_service',
+ 'guardar' => 'save',
+};
+
+1;
+
diff --git a/locale/ct/io b/locale/ct/io
new file mode 100755
index 00000000..b350dd00
--- /dev/null
+++ b/locale/ct/io
@@ -0,0 +1,93 @@
+$self{texts} = {
+ 'Add Purchase Order' => 'Afegir Ordre Compra',
+ 'Add Sales Order' => 'Afegir Pressupost',
+ 'Address' => 'Adreça',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Attachment' => 'Adjunt',
+ 'Aug' => 'Ago',
+ 'August' => 'Agost',
+ 'Bin' => 'Bin',
+ 'Contact' => 'Contacte',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Còpies',
+ 'Date' => 'Data',
+ 'Dec' => 'Des',
+ 'December' => 'Desembre',
+ 'Description' => 'Descripció',
+ 'E-mail' => 'Email',
+ 'E-mail address missing!' => 'Falta Email!',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrer',
+ 'In-line' => 'Afegit',
+ 'Invoice' => 'Factura',
+ 'Invoice Date missing!' => 'Falta Data Fra.!',
+ 'Invoice Number missing!' => 'Falta Núm Fra.!',
+ 'Item not on file!' => 'No es troba cap arxiu amb aquest element!',
+ 'Jan' => 'Gen',
+ 'January' => 'Gener',
+ 'Jul' => 'Jul',
+ 'July' => 'Juliol',
+ 'Jun' => 'Jun',
+ 'June' => 'Juny',
+ 'Mar' => 'Mar',
+ 'March' => 'Març',
+ 'May' => 'Mai',
+ 'May ' => 'Maig',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'Falta en número en la fila',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Order Date missing!' => 'Falta Data Ordre!',
+ 'Order Number missing!' => 'Falta Número Ordre!',
+ 'Packing List' => 'Albarà',
+ 'Packing List Date missing!' => 'Falta Data Albarà!',
+ 'Packing List Number missing!' => 'Falta Número Albarà!',
+ 'Part' => 'Article',
+ 'Phone' => 'Tel',
+ 'Price' => 'Preu',
+ 'Purchase Order' => 'Ordre de Compra',
+ 'Qty' => 'Quantitat',
+ 'Required by' => 'Soliciat per',
+ 'Sales Order' => 'Pressupost',
+ 'Screen' => 'Pantalla',
+ 'Sep' => 'Set',
+ 'September' => 'Setembre',
+ 'Service' => 'Servei',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'Fins',
+ 'Unit' => 'Unitat',
+ 'What type of item is this?' => 'Quin tipus d\'element és?',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/ct/ir b/locale/ct/ir
new file mode 100755
index 00000000..8c919ffd
--- /dev/null
+++ b/locale/ct/ir
@@ -0,0 +1,158 @@
+$self{texts} = {
+ 'Account' => 'Compta',
+ 'Accounting Menu' => 'Menú Comptable',
+ 'Add Purchase Order' => 'Afegir Ordre Compra',
+ 'Add Sales Order' => 'Afegir Pressupost',
+ 'Address' => 'Adreça',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => 'Segur que voleu esborrar la Fra. Num.',
+ 'Attachment' => 'Adjunt',
+ 'Aug' => 'Ago',
+ 'August' => 'Agost',
+ 'Bin' => 'Bin',
+ 'Confirm!' => 'Confirmar!',
+ 'Contact' => 'Contacte',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Còpies',
+ 'Credit Limit' => 'Límit de Crèdit',
+ 'Currency' => 'Moneda',
+ 'Date' => 'Data',
+ 'Dec' => 'Des',
+ 'December' => 'Desembre',
+ 'Delete' => 'Esborrar',
+ 'Description' => 'Descripció',
+ 'Due Date' => 'Data Venciment',
+ 'E-mail' => 'Email',
+ 'E-mail address missing!' => 'Falta Email!',
+ 'Exch' => 'Canvi',
+ 'Exchange Rate' => 'Taxa de Canvi',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrer',
+ 'In-line' => 'Afegit',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Data Fra.',
+ 'Invoice Date missing!' => 'Falta Data Fra.!',
+ 'Invoice Number' => 'Núm Fra.',
+ 'Invoice Number missing!' => 'Falta Núm Fra.!',
+ 'Item not on file!' => 'No es troba cap arxiu amb aquest element!',
+ 'Jan' => 'Gen',
+ 'January' => 'Gener',
+ 'Jul' => 'Jul',
+ 'July' => 'Juliol',
+ 'Jun' => 'Jun',
+ 'June' => 'Juny',
+ 'Language' => 'Idioma',
+ 'Mar' => 'Mar',
+ 'March' => 'Març',
+ 'May' => 'Mai',
+ 'May ' => 'Maig',
+ 'Notes' => 'Notes',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'Falta en número en la fila',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Order Date missing!' => 'Falta Data Ordre!',
+ 'Order Number' => 'Número Ordre',
+ 'Order Number missing!' => 'Falta Número Ordre!',
+ 'Packing List' => 'Albarà',
+ 'Packing List Date missing!' => 'Falta Data Albarà!',
+ 'Packing List Number missing!' => 'Falta Número Albarà!',
+ 'Part' => 'Article',
+ 'Payment date missing!' => 'Falta Data Pagament!',
+ 'Payments' => 'Pagaments',
+ 'Phone' => 'Tel',
+ 'Price' => 'Preu',
+ 'Purchase Order' => 'Ordre de Compra',
+ 'Qty' => 'Quantitat',
+ 'Record in' => 'Registar en',
+ 'Remaining' => 'Remanent',
+ 'Required by' => 'Soliciat per',
+ 'Sales Order' => 'Pressupost',
+ 'Screen' => 'Pantalla',
+ 'Sep' => 'Set',
+ 'September' => 'Setembre',
+ 'Service' => 'Servei',
+ 'Source' => 'Font',
+ 'Subtotal' => 'Subtotal',
+ 'Tax Included' => 'Impostos Inclosos',
+ 'To' => 'Fins',
+ 'Total' => 'Total',
+ 'Unit' => 'Unitat',
+ 'Vendor' => 'Proveïdor',
+ 'What type of item is this?' => 'Quin tipus d\'element és?',
+ 'Yes' => 'Sí',
+ 'ea' => 'unit.',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'esborrar' => 'delete',
+ 'ordre_de_compra' => 'purchase_order',
+ 'sí' => 'yes',
+};
+
+1;
+
diff --git a/locale/ct/is b/locale/ct/is
new file mode 100755
index 00000000..c8f2a9e7
--- /dev/null
+++ b/locale/ct/is
@@ -0,0 +1,159 @@
+$self{texts} = {
+ 'Account' => 'Compta',
+ 'Accounting Menu' => 'Menú Comptable',
+ 'Add Purchase Order' => 'Afegir Ordre Compra',
+ 'Add Sales Order' => 'Afegir Pressupost',
+ 'Address' => 'Adreça',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => 'Segur que voleu esborrar la Fra. Num.',
+ 'Attachment' => 'Adjunt',
+ 'Aug' => 'Ago',
+ 'August' => 'Agost',
+ 'Bin' => 'Bin',
+ 'Confirm!' => 'Confirmar!',
+ 'Contact' => 'Contacte',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Còpies',
+ 'Credit Limit' => 'Límit de Crèdit',
+ 'Currency' => 'Moneda',
+ 'Customer' => 'Client',
+ 'Date' => 'Data',
+ 'Dec' => 'Des',
+ 'December' => 'Desembre',
+ 'Delete' => 'Esborrar',
+ 'Description' => 'Descripció',
+ 'Due Date' => 'Data Venciment',
+ 'E-mail' => 'Email',
+ 'E-mail address missing!' => 'Falta Email!',
+ 'Exch' => 'Canvi',
+ 'Exchange Rate' => 'Taxa de Canvi',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrer',
+ 'In-line' => 'Afegit',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Data Fra.',
+ 'Invoice Date missing!' => 'Falta Data Fra.!',
+ 'Invoice Number' => 'Núm Fra.',
+ 'Invoice Number missing!' => 'Falta Núm Fra.!',
+ 'Item not on file!' => 'No es troba cap arxiu amb aquest element!',
+ 'Jan' => 'Gen',
+ 'January' => 'Gener',
+ 'Jul' => 'Jul',
+ 'July' => 'Juliol',
+ 'Jun' => 'Jun',
+ 'June' => 'Juny',
+ 'Mar' => 'Mar',
+ 'March' => 'Març',
+ 'May' => 'Mai',
+ 'May ' => 'Maig',
+ 'Notes' => 'Notes',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'Falta en número en la fila',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Order Date missing!' => 'Falta Data Ordre!',
+ 'Order Number' => 'Número Ordre',
+ 'Order Number missing!' => 'Falta Número Ordre!',
+ 'Packing List' => 'Albarà',
+ 'Packing List Date missing!' => 'Falta Data Albarà!',
+ 'Packing List Number missing!' => 'Falta Número Albarà!',
+ 'Part' => 'Article',
+ 'Payment date missing!' => 'Falta Data Pagament!',
+ 'Payments' => 'Pagaments',
+ 'Phone' => 'Tel',
+ 'Price' => 'Preu',
+ 'Purchase Order' => 'Ordre de Compra',
+ 'Qty' => 'Quantitat',
+ 'Record in' => 'Registar en',
+ 'Remaining' => 'Remanent',
+ 'Required by' => 'Soliciat per',
+ 'Sales Order' => 'Pressupost',
+ 'Screen' => 'Pantalla',
+ 'Sep' => 'Set',
+ 'September' => 'Setembre',
+ 'Service' => 'Servei',
+ 'Source' => 'Font',
+ 'Subtotal' => 'Subtotal',
+ 'Tax Included' => 'Impostos Inclosos',
+ 'To' => 'Fins',
+ 'Total' => 'Total',
+ 'Unit' => 'Unitat',
+ 'What type of item is this?' => 'Quin tipus d\'element és?',
+ 'Yes' => 'Sí',
+ 'ea' => 'unit.',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'esborrar' => 'delete',
+ 'email' => 'e_mail',
+ 'pressupost' => 'sales_order',
+ 'sí' => 'yes',
+};
+
+1;
+
diff --git a/locale/ct/jc b/locale/ct/jc
new file mode 100755
index 00000000..b9a37c43
--- /dev/null
+++ b/locale/ct/jc
@@ -0,0 +1,68 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menú Comptable',
+ 'Amount' => 'Total',
+ 'Closed' => 'Tancat',
+ 'Confirm!' => 'Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Date' => 'Data',
+ 'Delete' => 'Esborrar',
+ 'Description' => 'Descripció',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incloure en l\'Informe',
+ 'Notes' => 'Notes',
+ 'Open' => 'Obert',
+ 'Qty' => 'Quantitat',
+ 'Save' => 'Guardar',
+ 'Screen' => 'Pantalla',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'Fins',
+ 'Total' => 'Total',
+ 'Yes' => 'Sí',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'continuar' => 'continue',
+ 'esborrar' => 'delete',
+ 'guardar' => 'save',
+ 'sí' => 'yes',
+};
+
+1;
+
diff --git a/locale/ct/locales.pl b/locale/ct/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/ct/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/ct/login b/locale/ct/login
new file mode 100755
index 00000000..f5927b9c
--- /dev/null
+++ b/locale/ct/login
@@ -0,0 +1,21 @@
+$self{texts} = {
+ 'Company' => 'Empresa',
+ 'Continue' => 'Continuar',
+ 'Incorrect Dataset version!' => 'Versió Incorrecta del Conjunt de Dades!',
+ 'Login' => 'Entrar',
+ 'Name' => 'Nom',
+ 'Password' => 'Contrasenya',
+ 'Version' => 'Versió',
+ 'You did not enter a name!' => 'No heu entrat cap nom!',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ 'entrar' => 'login',
+};
+
+1;
+
diff --git a/locale/ct/menu b/locale/ct/menu
new file mode 100755
index 00000000..c12db5b9
--- /dev/null
+++ b/locale/ct/menu
@@ -0,0 +1,61 @@
+$self{texts} = {
+ 'AP' => 'Despeses',
+ 'AP Aging' => 'Diari de Despeses',
+ 'AR' => 'Ingressos',
+ 'AR Aging' => 'Diari d\'Ingressos',
+ 'Accounting Menu' => 'Menú Comptable',
+ 'Add Account' => 'Afegir Compta',
+ 'Add Assembly' => 'Afegir Compost',
+ 'Add Customer' => 'Afegir Client',
+ 'Add Part' => 'Afegir Article',
+ 'Add Service' => 'Afegir Servei',
+ 'Add Transaction' => 'Afegir Transacció',
+ 'Add Vendor' => 'Afegir Proveïdor',
+ 'Assemblies' => 'Compostos',
+ 'Audit Control' => 'Control Auditoria',
+ 'Backup' => 'Còpia de Seguretat',
+ 'Balance Sheet' => 'Fulla de Balanç',
+ 'Chart of Accounts' => 'Taula de Comptes',
+ 'Description' => 'Descripció',
+ 'General Ledger' => 'Llibre Major',
+ 'Goods & Services' => 'Bèns i Serveis',
+ 'HTML Templates' => 'Plantilles HTML',
+ 'Income Statement' => 'Balanç Situació',
+ 'Invoice' => 'Factura',
+ 'LaTeX Templates' => 'Plantilles LaTeX',
+ 'Language' => 'Idioma',
+ 'List Accounts' => 'Llistar Comptes',
+ 'Logout' => 'Desconnectar',
+ 'Open' => 'Obert',
+ 'Order Entry' => 'Pressupostos i Comandes',
+ 'Packing List' => 'Albarà',
+ 'Parts' => 'Articles',
+ 'Payment' => 'Pagament',
+ 'Payments' => 'Pagaments',
+ 'Preferences' => 'Preferències',
+ 'Purchase Order' => 'Ordre de Compra',
+ 'Purchase Orders' => 'Ordres de Compra',
+ 'Reports' => 'Informes',
+ 'Sales Order' => 'Pressupost',
+ 'Sales Orders' => 'Pressupostos',
+ 'Save to File' => 'Guardar a Fitxer',
+ 'Send by E-Mail' => 'Enviar per Email',
+ 'Services' => 'Serveis',
+ 'Stock Assembly' => 'Inventari Compost',
+ 'Stylesheet' => 'Fulla Estils',
+ 'System' => 'Sistema',
+ 'Transactions' => 'Transaccions',
+ 'Trial Balance' => 'Balanç de Comprovació',
+ 'Version' => 'Versió',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/ct/oe b/locale/ct/oe
new file mode 100755
index 00000000..72120951
--- /dev/null
+++ b/locale/ct/oe
@@ -0,0 +1,193 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menú Comptable',
+ 'Add Purchase Order' => 'Afegir Ordre Compra',
+ 'Add Sales Order' => 'Afegir Pressupost',
+ 'Address' => 'Adreça',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Order Number' => 'Segur que voleu esborrar l\'Ordre',
+ 'Attachment' => 'Adjunt',
+ 'Aug' => 'Ago',
+ 'August' => 'Agost',
+ 'Bin' => 'Bin',
+ 'Closed' => 'Tancat',
+ 'Confirm!' => 'Confirmar!',
+ 'Contact' => 'Contacte',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Còpies',
+ 'Credit Limit' => 'Límit de Crèdit',
+ 'Currency' => 'Moneda',
+ 'Customer' => 'Client',
+ 'Date' => 'Data',
+ 'Dec' => 'Des',
+ 'December' => 'Desembre',
+ 'Delete' => 'Esborrar',
+ 'Description' => 'Descripció',
+ 'E-mail' => 'Email',
+ 'E-mail address missing!' => 'Falta Email!',
+ 'Edit Purchase Order' => 'Editar Ordre Compra',
+ 'Edit Sales Order' => 'Editar Pressupost',
+ 'Exchange Rate' => 'Taxa de Canvi',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrer',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'In-line' => 'Afegit',
+ 'Include in Report' => 'Incloure en l\'Informe',
+ 'Invoice' => 'Factura',
+ 'Invoice Date missing!' => 'Falta Data Fra.!',
+ 'Invoice Number missing!' => 'Falta Núm Fra.!',
+ 'Item not on file!' => 'No es troba cap arxiu amb aquest element!',
+ 'Jan' => 'Gen',
+ 'January' => 'Gener',
+ 'Jul' => 'Jul',
+ 'July' => 'Juliol',
+ 'Jun' => 'Jun',
+ 'June' => 'Juny',
+ 'Mar' => 'Mar',
+ 'March' => 'Març',
+ 'May' => 'Mai',
+ 'May ' => 'Maig',
+ 'Notes' => 'Notes',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'Falta en número en la fila',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Obert',
+ 'Order' => 'Ordre',
+ 'Order Date' => 'Data Ordre',
+ 'Order Date missing!' => 'Falta Data Ordre!',
+ 'Order Number' => 'Número Ordre',
+ 'Order Number missing!' => 'Falta Número Ordre!',
+ 'Packing List' => 'Albarà',
+ 'Packing List Date missing!' => 'Falta Data Albarà!',
+ 'Packing List Number missing!' => 'Falta Número Albarà!',
+ 'Part' => 'Article',
+ 'Phone' => 'Tel',
+ 'Price' => 'Preu',
+ 'Purchase Order' => 'Ordre de Compra',
+ 'Purchase Orders' => 'Ordres de Compra',
+ 'Qty' => 'Quantitat',
+ 'Remaining' => 'Remanent',
+ 'Required by' => 'Soliciat per',
+ 'Sales Order' => 'Pressupost',
+ 'Sales Orders' => 'Pressupostos',
+ 'Save' => 'Guardar',
+ 'Screen' => 'Pantalla',
+ 'Sep' => 'Set',
+ 'September' => 'Setembre',
+ 'Service' => 'Servei',
+ 'Subtotal' => 'Subtotal',
+ 'Tax' => 'Impost',
+ 'Tax Included' => 'Impostos Inclosos',
+ 'Terms' => 'Terms:Net',
+ 'To' => 'Fins',
+ 'Total' => 'Total',
+ 'Unit' => 'Unitat',
+ 'Vendor' => 'Proveïdor',
+ 'What type of item is this?' => 'Quin tipus d\'element és?',
+ 'Yes' => 'Sí',
+ 'days' => 'dies',
+ 'ea' => 'unit.',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'esborrar' => 'delete',
+ 'email' => 'e_mail',
+ 'ordre_de_compra' => 'purchase_order',
+ 'pressupost' => 'sales_order',
+ 'guardar' => 'save',
+ 'sí' => 'yes',
+};
+
+1;
+
diff --git a/locale/ct/pe b/locale/ct/pe
new file mode 100755
index 00000000..d174d946
--- /dev/null
+++ b/locale/ct/pe
@@ -0,0 +1,88 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menú Comptable',
+ 'Add' => 'Afegir',
+ 'Address' => 'Adreça',
+ 'All' => 'Tots',
+ 'Amount' => 'Total',
+ 'Bin' => 'Bin',
+ 'Continue' => 'Continuar',
+ 'Customer' => 'Client',
+ 'Date' => 'Data',
+ 'Delete' => 'Esborrar',
+ 'Description' => 'Descripció',
+ 'From' => 'De',
+ 'Language' => 'Idioma',
+ 'Link Accounts' => 'Enllaçar Comptes',
+ 'List Price' => 'Llistar Preu',
+ 'Notes' => 'Notes',
+ 'Number' => 'Número',
+ 'Orphaned' => 'Orfe',
+ 'Qty' => 'Quantitat',
+ 'Save' => 'Guardar',
+ 'Sell Price' => 'Preu Venta',
+ 'Tax' => 'Impost',
+ 'To' => 'Fins',
+ 'Unit' => 'Unitat',
+ 'Vendor' => 'Proveïdor',
+ 'Weight' => 'Pes',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'continuar' => 'continue',
+ 'esborrar' => 'delete',
+ 'guardar' => 'save',
+};
+
+1;
+
diff --git a/locale/ct/pos b/locale/ct/pos
new file mode 100755
index 00000000..e387e90e
--- /dev/null
+++ b/locale/ct/pos
@@ -0,0 +1,52 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menú Comptable',
+ 'Amount' => 'Total',
+ 'Continue' => 'Continuar',
+ 'Credit Limit' => 'Límit de Crèdit',
+ 'Currency' => 'Moneda',
+ 'Customer' => 'Client',
+ 'Delete' => 'Esborrar',
+ 'Description' => 'Descripció',
+ 'Exchange Rate' => 'Taxa de Canvi',
+ 'From' => 'De',
+ 'Language' => 'Idioma',
+ 'Number' => 'Número',
+ 'Open' => 'Obert',
+ 'Price' => 'Preu',
+ 'Qty' => 'Quantitat',
+ 'Record in' => 'Registar en',
+ 'Remaining' => 'Remanent',
+ 'Screen' => 'Pantalla',
+ 'Source' => 'Font',
+ 'Subtotal' => 'Subtotal',
+ 'Tax Included' => 'Impostos Inclosos',
+ 'To' => 'Fins',
+ 'Total' => 'Total',
+ 'Unit' => 'Unitat',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'continuar' => 'continue',
+ 'esborrar' => 'delete',
+};
+
+1;
+
diff --git a/locale/ct/ps b/locale/ct/ps
new file mode 100755
index 00000000..cc42701e
--- /dev/null
+++ b/locale/ct/ps
@@ -0,0 +1,214 @@
+$self{texts} = {
+ 'AP Aging' => 'Diari de Despeses',
+ 'AP Transactions' => 'Transaccions de Despeses',
+ 'AR Aging' => 'Diari d\'Ingressos',
+ 'AR Transactions' => 'Transaccions d\'Ingressos',
+ 'Account' => 'Compta',
+ 'Account Number' => 'Num. Compta',
+ 'Accounting Menu' => 'Menú Comptable',
+ 'Add Purchase Order' => 'Afegir Ordre Compra',
+ 'Add Sales Order' => 'Afegir Pressupost',
+ 'Address' => 'Adreça',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => 'Segur que voleu esborrar la Fra. Num.',
+ 'Are you sure you want to delete Transaction' => 'Segur que voleu esborrar la Transacció',
+ 'Attachment' => 'Adjunt',
+ 'Aug' => 'Ago',
+ 'August' => 'Agost',
+ 'Balance Sheet' => 'Fulla de Balanç',
+ 'Bin' => 'Bin',
+ 'Cannot post transaction for a closed period!' => 'No es pot registrar una transacció per un període tancat',
+ 'Closed' => 'Tancat',
+ 'Compare to' => 'Comparar amb',
+ 'Confirm!' => 'Confirmar!',
+ 'Contact' => 'Contacte',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Còpies',
+ 'Credit' => 'Crèdit',
+ 'Credit Limit' => 'Límit de Crèdit',
+ 'Currency' => 'Moneda',
+ 'Customer' => 'Client',
+ 'Date' => 'Data',
+ 'Date Paid' => 'Data Pagament',
+ 'Debit' => 'Dèbit',
+ 'Dec' => 'Des',
+ 'December' => 'Desembre',
+ 'Delete' => 'Esborrar',
+ 'Description' => 'Descripció',
+ 'Due Date' => 'Data Venciment',
+ 'Due Date missing!' => 'Falta la Data Venciment!',
+ 'E-mail' => 'Email',
+ 'E-mail address missing!' => 'Falta Email!',
+ 'Exch' => 'Canvi',
+ 'Exchange Rate' => 'Taxa de Canvi',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrer',
+ 'From' => 'De',
+ 'Heading' => 'Capçalera',
+ 'ID' => 'ID',
+ 'In-line' => 'Afegit',
+ 'Include in Report' => 'Incloure en l\'Informe',
+ 'Income Statement' => 'Balanç Situació',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Data Fra.',
+ 'Invoice Date missing!' => 'Falta Data Fra.!',
+ 'Invoice Number' => 'Núm Fra.',
+ 'Invoice Number missing!' => 'Falta Núm Fra.!',
+ 'Item not on file!' => 'No es troba cap arxiu amb aquest element!',
+ 'Jan' => 'Gen',
+ 'January' => 'Gener',
+ 'Jul' => 'Jul',
+ 'July' => 'Juliol',
+ 'Jun' => 'Jun',
+ 'June' => 'Juny',
+ 'Language' => 'Idioma',
+ 'Mar' => 'Mar',
+ 'March' => 'Març',
+ 'May' => 'Mai',
+ 'May ' => 'Maig',
+ 'Notes' => 'Notes',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'Falta en número en la fila',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Obert',
+ 'Order' => 'Ordre',
+ 'Order Date missing!' => 'Falta Data Ordre!',
+ 'Order Number' => 'Número Ordre',
+ 'Order Number missing!' => 'Falta Número Ordre!',
+ 'Packing List' => 'Albarà',
+ 'Packing List Date missing!' => 'Falta Data Albarà!',
+ 'Packing List Number missing!' => 'Falta Número Albarà!',
+ 'Paid' => 'Pagat',
+ 'Part' => 'Article',
+ 'Payment date missing!' => 'Falta Data Pagament!',
+ 'Payments' => 'Pagaments',
+ 'Phone' => 'Tel',
+ 'Price' => 'Preu',
+ 'Purchase Order' => 'Ordre de Compra',
+ 'Qty' => 'Quantitat',
+ 'Record in' => 'Registar en',
+ 'Remaining' => 'Remanent',
+ 'Report for' => 'Registrar per',
+ 'Required by' => 'Soliciat per',
+ 'Sales Order' => 'Pressupost',
+ 'Screen' => 'Pantalla',
+ 'Sep' => 'Set',
+ 'September' => 'Setembre',
+ 'Service' => 'Servei',
+ 'Source' => 'Font',
+ 'Subtotal' => 'Subtotal',
+ 'Tax' => 'Impost',
+ 'Tax Included' => 'Impostos Inclosos',
+ 'To' => 'Fins',
+ 'Total' => 'Total',
+ 'Trial Balance' => 'Balanç de Comprovació',
+ 'Unit' => 'Unitat',
+ 'Vendor' => 'Proveïdor',
+ 'What type of item is this?' => 'Quin tipus d\'element és?',
+ 'Yes' => 'Sí',
+ 'ea' => 'unit.',
+ 'for Period' => 'pel període',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'esborrar' => 'delete',
+ 'email' => 'e_mail',
+ 'pressupost' => 'sales_order',
+ 'sí' => 'yes',
+};
+
+1;
+
diff --git a/locale/ct/pw b/locale/ct/pw
new file mode 100755
index 00000000..53cb9140
--- /dev/null
+++ b/locale/ct/pw
@@ -0,0 +1,12 @@
+$self{texts} = {
+ 'Continue' => 'Continuar',
+ 'Password' => 'Contrasenya',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/ct/rc b/locale/ct/rc
new file mode 100755
index 00000000..c37514d0
--- /dev/null
+++ b/locale/ct/rc
@@ -0,0 +1,55 @@
+$self{texts} = {
+ 'Account' => 'Compta',
+ 'Accounting Menu' => 'Menú Comptable',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Aug' => 'Ago',
+ 'August' => 'Agost',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crèdit',
+ 'Date' => 'Data',
+ 'Debit' => 'Dèbit',
+ 'Dec' => 'Des',
+ 'December' => 'Desembre',
+ 'Description' => 'Descripció',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrer',
+ 'From' => 'De',
+ 'Jan' => 'Gen',
+ 'January' => 'Gener',
+ 'Jul' => 'Jul',
+ 'July' => 'Juliol',
+ 'Jun' => 'Jun',
+ 'June' => 'Juny',
+ 'Mar' => 'Mar',
+ 'March' => 'Març',
+ 'May' => 'Mai',
+ 'May ' => 'Maig',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembre',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Sep' => 'Set',
+ 'September' => 'Setembre',
+ 'Source' => 'Font',
+ 'To' => 'Fins',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/ct/rp b/locale/ct/rp
new file mode 100755
index 00000000..c96537db
--- /dev/null
+++ b/locale/ct/rp
@@ -0,0 +1,121 @@
+$self{texts} = {
+ 'AP Aging' => 'Diari de Despeses',
+ 'AR Aging' => 'Diari d\'Ingressos',
+ 'Account' => 'Compta',
+ 'Account Number' => 'Num. Compta',
+ 'Accounting Menu' => 'Menú Comptable',
+ 'Address' => 'Adreça',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Attachment' => 'Adjunt',
+ 'Aug' => 'Ago',
+ 'August' => 'Agost',
+ 'Balance Sheet' => 'Fulla de Balanç',
+ 'Compare to' => 'Comparar amb',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Còpies',
+ 'Credit' => 'Crèdit',
+ 'Customer' => 'Client',
+ 'Date' => 'Data',
+ 'Debit' => 'Dèbit',
+ 'Dec' => 'Des',
+ 'December' => 'Desembre',
+ 'Description' => 'Descripció',
+ 'Due Date' => 'Data Venciment',
+ 'E-mail' => 'Email',
+ 'E-mail address missing!' => 'Falta Email!',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrer',
+ 'From' => 'De',
+ 'Heading' => 'Capçalera',
+ 'ID' => 'ID',
+ 'In-line' => 'Afegit',
+ 'Include in Report' => 'Incloure en l\'Informe',
+ 'Income Statement' => 'Balanç Situació',
+ 'Invoice' => 'Factura',
+ 'Jan' => 'Gen',
+ 'January' => 'Gener',
+ 'Jul' => 'Jul',
+ 'July' => 'Juliol',
+ 'Jun' => 'Jun',
+ 'June' => 'Juny',
+ 'Language' => 'Idioma',
+ 'Mar' => 'Mar',
+ 'March' => 'Març',
+ 'May' => 'Mai',
+ 'May ' => 'Maig',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembre',
+ 'Number' => 'Número',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Order' => 'Ordre',
+ 'Payments' => 'Pagaments',
+ 'Report for' => 'Registrar per',
+ 'Screen' => 'Pantalla',
+ 'Sep' => 'Set',
+ 'September' => 'Setembre',
+ 'Source' => 'Font',
+ 'Subtotal' => 'Subtotal',
+ 'Tax' => 'Impost',
+ 'To' => 'Fins',
+ 'Total' => 'Total',
+ 'Trial Balance' => 'Balanç de Comprovació',
+ 'Vendor' => 'Proveïdor',
+ 'for Period' => 'pel període',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuar' => 'continue',
+ 'email' => 'e_mail',
+};
+
+1;
+
diff --git a/locale/cz/COPYING b/locale/cz/COPYING
new file mode 100755
index 00000000..c3e8beca
--- /dev/null
+++ b/locale/cz/COPYING
@@ -0,0 +1,23 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2001
+#
+# Czech texts:
+#
+# Author: Tomas Fencl <tomas.fencl@centrum.cz>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/cz/LANGUAGE b/locale/cz/LANGUAGE
new file mode 100755
index 00000000..c66b3ed1
--- /dev/null
+++ b/locale/cz/LANGUAGE
@@ -0,0 +1 @@
+Czech (ISO-8859-2)
diff --git a/locale/cz/aa b/locale/cz/aa
new file mode 100755
index 00000000..27ed484e
--- /dev/null
+++ b/locale/cz/aa
@@ -0,0 +1,102 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'AP Transactions' => 'Faktury pøijaté',
+ 'AR Transactions' => 'Faktury vydané',
+ 'Account' => 'Úèet',
+ 'Accounting Menu' => 'Menu úèetnictví',
+ 'Amount' => 'Èástka',
+ 'Apr' => 'Dub',
+ 'April' => 'Duben',
+ 'Are you sure you want to delete Transaction' => 'Opravdu chcete vymazat transakci?',
+ 'Aug' => 'Srp',
+ 'August' => 'Srpen',
+ 'Cannot post transaction for a closed period!' => 'Do uzavøeného období nelze úètovat!',
+ 'Closed' => 'Zaplaceno',
+ 'Confirm!' => 'Podtvrïte!',
+ 'Continue' => 'Pokraèování',
+ 'Credit' => 'Dal',
+ 'Credit Limit' => 'Úvìrový limit',
+ 'Curr' => 'Mìna',
+ 'Currency' => 'Mìna',
+ 'Customer' => 'Odbìratel',
+ 'Date' => 'Datum',
+ 'Date Paid' => 'Zaplaceno',
+ 'Debit' => 'Má dáti',
+ 'Dec' => 'Pro',
+ 'December' => 'Prosinec',
+ 'Delete' => 'Vymazat',
+ 'Description' => 'Popis',
+ 'Due Date' => 'Datum splatnosti',
+ 'Due Date missing!' => 'Chybí datum splatnosti!',
+ 'Exch' => 'Kurz',
+ 'Exchange Rate' => 'Mìnový kurz',
+ 'Feb' => 'Úno',
+ 'February' => 'Únor',
+ 'From' => 'z',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Zahrnovat v sestavì',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date' => 'Datum vystavení',
+ 'Invoice Date missing!' => 'Chybí datum vystavení!',
+ 'Invoice Number' => 'Èíslo faktury',
+ 'Jan' => 'Led',
+ 'January' => 'Leden',
+ 'Jul' => 'Èec',
+ 'July' => 'Èervenec',
+ 'Jun' => 'Èer',
+ 'June' => 'Èerven',
+ 'Mar' => 'Bøe',
+ 'March' => 'Bøezen',
+ 'May' => 'Kvìten',
+ 'May ' => 'Kvì',
+ 'Notes' => 'Poznámky',
+ 'Nov' => 'Lis',
+ 'November' => 'Listopad',
+ 'Oct' => 'Øíj',
+ 'October' => 'Øíjen',
+ 'Open' => 'Otevøené',
+ 'Order' => 'Objednávka',
+ 'Order Number' => 'Objednávka èíslo',
+ 'Paid' => 'Zaplaceno',
+ 'Payment date missing!' => 'Chybí datum platby!',
+ 'Payments' => 'Platby',
+ 'Remaining' => 'Zbývá',
+ 'Sep' => 'Záø',
+ 'September' => 'Záøí',
+ 'Source' => 'Zdroj',
+ 'Subtotal' => 'Mezisouèet',
+ 'Tax' => 'Daò',
+ 'Tax Included' => 'Cena vèetnì danì',
+ 'To' => 'do',
+ 'Total' => 'Celkem',
+ 'Vendor' => 'Dodavatel',
+ 'Yes' => 'Ano',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'pokraèování' => 'continue',
+ 'vymazat' => 'delete',
+ 'ano' => 'yes',
+};
+
+1;
+
diff --git a/locale/cz/admin b/locale/cz/admin
new file mode 100755
index 00000000..b4dc74dc
--- /dev/null
+++ b/locale/cz/admin
@@ -0,0 +1,135 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Access Control' => 'Pøístupová práva',
+ 'Accounting' => 'Úèetnictví',
+ 'Add User' => 'Nový u¾ivatel',
+ 'Address' => 'Adresa',
+ 'Administration' => 'Administrace',
+ 'Administrator' => 'Administrator',
+ 'All Datasets up to date!' => 'V¹echna data jsou aktualizována',
+ 'Cannot create Lock!' => 'Cannot create Lock!',
+ 'Change Admin Password' => 'Zmìnit heslo administrátora',
+ 'Change Password' => 'Zmìnit heslo',
+ 'Click on login name to edit!' => 'Pro úpravy kliknìte na jméno u¾ivatele',
+ 'Company' => 'Firma',
+ 'Connect to' => 'Pøipojit k serveru',
+ 'Continue' => 'Pokraèování',
+ 'Create Chart of Accounts' => 'Vytvoøit úètový rozvrh',
+ 'Create Dataset' => 'Vytvoøit dataset',
+ 'DBI not installed!' => 'DBI není nainstalováno',
+ 'Database' => 'Databáze',
+ 'Database Administration' => 'Správa databáze',
+ 'Database Driver not checked!' => 'Nepodaøilo se zkontrolovat ovladaè databáze',
+ 'Database User missing!' => 'Chybí jméno pro pøihlá¹ení k databázi!',
+ 'Dataset' => 'Dataset',
+ 'Dataset missing!' => 'Není zadán dataset',
+ 'Dataset updated!' => 'Dataset updated!',
+ 'Date Format' => 'Formát data',
+ 'Delete' => 'Vymazat',
+ 'Delete Dataset' => 'Zru¹it dataset',
+ 'Directory' => 'Adresáø',
+ 'Driver' => 'Øidiè',
+ 'E-mail' => 'E-mail',
+ 'Edit User' => 'Upravit u¾ivatele',
+ 'Existing Datasets' => 'Datasety',
+ 'Fax' => 'Fax',
+ 'Host' => 'Server',
+ 'Hostname missing!' => 'Chybí jméno serveru!',
+ 'Language' => 'Jazyk',
+ 'Lock System' => 'Lock System',
+ 'Lockfile created!' => 'Lockfile created!',
+ 'Lockfile removed!' => 'Lockfile removed!',
+ 'Login' => 'U¾ivatelské jméno',
+ 'Login name missing!' => 'Login name missing!',
+ 'Logout' => 'Odhlásit',
+ 'Multibyte Encoding' => 'Multibyte Encoding',
+ 'Name' => 'Jméno',
+ 'New Templates' => 'Nové ¹ablony',
+ 'No Database Drivers available!' => 'Není instalován ¾ádný ovladaè databáze!',
+ 'No Dataset selected!' => 'Není zvolen ¾ádný dataset!',
+ 'Nothing to delete!' => 'Nejsou polo¾ky k vymazání!',
+ 'Number Format' => 'Èíselný formát',
+ 'Oracle Database Administration' => 'Oracle Správa databáze',
+ 'Password' => 'Heslo',
+ 'Password changed!' => 'Password changed!',
+ 'Pg Database Administration' => 'Pg Správa databáze',
+ 'PgPP Database Administration' => 'PgPP Database Administration',
+ 'Phone' => 'Telefon',
+ 'Port' => 'Port',
+ 'Port missing!' => 'Chybí èíslo portu!',
+ 'Printer' => 'Tiskárna',
+ 'Save' => 'Ulo¾it',
+ 'Setup Templates' => 'Nastavení ¹ablon',
+ 'Signature' => 'Podpis',
+ 'Stylesheet' => 'Stylesheet',
+ 'Templates' => '©ablony',
+ 'The following Datasets are not in use and can be deleted' => 'Uvedené datasety nejsou vyu¾ívány a mohou být vymazány',
+ 'The following Datasets need to be updated' => 'Následující data musí být aktualizována',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Toto je pøedbì¾ná kontrola existence zdrojových dokumentù. V této fázi nebude databáze aktualizována.',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Pro pøidání u¾ivatele do skupiny otevøete existujícího u¾ivatele a ulo¾te jej s jiným u¾ivatelským jménem. Nový u¾ivatel bude vytvoøen s toto¾ným nastavením v¹ech promìnných.',
+ 'Unlock System' => 'Unlock System',
+ 'Update Dataset' => 'Aktualizovat data',
+ 'Use Templates' => 'Vyu¾ít ¹ablony',
+ 'User' => 'U¾ivatel',
+ 'User deleted!' => 'User deleted!',
+ 'User saved!' => 'User saved!',
+ 'Version' => 'Verze',
+ 'does not exist' => 'neexistuje',
+ 'is already a member!' => 'ji¾ existuje!',
+ 'localhost' => 'lokální server',
+ 'successfully created!' => 'úspì¹nì vytvoøen!',
+ 'successfully deleted!' => 'úspì¹nì smazán!',
+ 'website' => 'www adresa',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'nový_u¾ivatel' => 'add_user',
+ 'zmìnit_heslo_administrátora' => 'change_admin_password',
+ 'zmìnit_heslo' => 'change_password',
+ 'pokraèování' => 'continue',
+ 'vytvoøit_dataset' => 'create_dataset',
+ 'vymazat' => 'delete',
+ 'zru¹it_dataset' => 'delete_dataset',
+ 'lock_system' => 'lock_system',
+ 'u¾ivatelské_jméno' => 'login',
+ 'odhlásit' => 'logout',
+ 'oracle_správa_databáze' => 'oracle_database_administration',
+ 'pg_správa_databáze' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'ulo¾it' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'aktualizovat_data' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/cz/all b/locale/cz/all
new file mode 100755
index 00000000..9d5b795c
--- /dev/null
+++ b/locale/cz/all
@@ -0,0 +1,892 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+$self{charset} = 'ISO-8859-2';
+
+
+$self{texts} = {
+ 'A' => '',
+ 'AP' => 'Závazky',
+ 'AP Aging' => 'Analýza splatnosti',
+ 'AP Outstanding' => '',
+ 'AP Transaction' => '',
+ 'AP Transactions' => 'Faktury pøijaté',
+ 'AR' => 'Pohledávky',
+ 'AR Aging' => 'Analýza splatnosti',
+ 'AR Outstanding' => '',
+ 'AR Transaction' => '',
+ 'AR Transactions' => 'Faktury vydané',
+ 'AR/AP' => '',
+ 'About' => 'O programu',
+ 'Above' => '',
+ 'Access Control' => 'Pøístupová práva',
+ 'Access Denied!' => '',
+ 'Account' => 'Úèet',
+ 'Account Number' => 'Èíslo úètu',
+ 'Account Number missing!' => 'Chybí èíslo úètu!',
+ 'Account Type' => 'Typ úètu',
+ 'Account Type missing!' => 'Chybí typ úètu!',
+ 'Account deleted!' => '',
+ 'Account does not exist!' => '',
+ 'Account saved!' => '',
+ 'Accounting' => 'Úèetnictví',
+ 'Accounting Menu' => 'Menu úèetnictví',
+ 'Accounts' => 'Úèty',
+ 'Accrual' => '',
+ 'Activate Audit trail' => '',
+ 'Active' => '',
+ 'Add' => 'Pøidat',
+ 'Add AP Transaction' => '',
+ 'Add AR Transaction' => '',
+ 'Add Account' => 'Zalo¾it úèet',
+ 'Add Assembly' => 'Nový výrobek',
+ 'Add Business' => '',
+ 'Add Cash Transfer Transaction' => '',
+ 'Add Customer' => 'Nový zákazník',
+ 'Add Deduction' => '',
+ 'Add Department' => '',
+ 'Add Employee' => '',
+ 'Add Exchange Rate' => '',
+ 'Add GIFI' => 'Doplnit úètovací øetìzec',
+ 'Add General Ledger Transaction' => 'Nový zápis do hlavní knihy',
+ 'Add Group' => '',
+ 'Add Job' => '',
+ 'Add Labor/Overhead' => '',
+ 'Add Language' => '',
+ 'Add POS Invoice' => '',
+ 'Add Part' => 'Pøíjem zbo¾í',
+ 'Add Pricegroup' => '',
+ 'Add Project' => '',
+ 'Add Purchase Order' => 'Nová objednávka (nákup)',
+ 'Add Quotation' => '',
+ 'Add Request for Quotation' => '',
+ 'Add SIC' => '',
+ 'Add Sales Invoice' => '',
+ 'Add Sales Order' => 'Nová objednávka (pøíjem)',
+ 'Add Service' => 'Nový druh slu¾by',
+ 'Add Timecard' => '',
+ 'Add Transaction' => 'Nová transakce',
+ 'Add User' => 'Nový u¾ivatel',
+ 'Add Vendor' => 'Nový dodavatel',
+ 'Add Vendor Invoice' => '',
+ 'Add Warehouse' => '',
+ 'Address' => 'Adresa',
+ 'Administration' => 'Administrace',
+ 'Administrator' => 'Administrator',
+ 'After Deduction' => '',
+ 'All' => 'V¹e',
+ 'All Accounts' => '',
+ 'All Datasets up to date!' => 'V¹echna data jsou aktualizována',
+ 'All Items' => '',
+ 'Allowances' => '',
+ 'Amount' => 'Èástka',
+ 'Amount Due' => '',
+ 'Amount missing!' => '',
+ 'Apr' => 'Dub',
+ 'April' => 'Duben',
+ 'Are you sure you want to delete Invoice Number' => 'Opravdu chcete vymazat fakturu èíslo',
+ 'Are you sure you want to delete Order Number' => 'Opravdu chcete vymazat objednávku èíslo',
+ 'Are you sure you want to delete Quotation Number' => '',
+ 'Are you sure you want to delete Timecard for' => '',
+ 'Are you sure you want to delete Transaction' => 'Opravdu chcete vymazat transakci?',
+ 'Are you sure you want to remove the marked entries from the queue?' => '',
+ 'Assemblies' => 'Výrobky',
+ 'Assemblies restocked!' => '',
+ 'Assembly' => '',
+ 'Assembly stocked!' => '',
+ 'Asset' => 'Aktiva',
+ 'Attachment' => 'Pøílohy',
+ 'Audit Control' => 'Kontrola pøístupù',
+ 'Audit trail disabled' => '',
+ 'Audit trail enabled' => '',
+ 'Audit trail removed up to' => '',
+ 'Aug' => 'Srp',
+ 'August' => 'Srpen',
+ 'Average Cost' => '',
+ 'Avg Cost' => '',
+ 'BIC' => '',
+ 'BOM' => '',
+ 'Backup' => 'Záloha',
+ 'Backup sent to' => 'Záloha odeslána na adresu',
+ 'Balance' => '',
+ 'Balance Sheet' => 'Rozvaha',
+ 'Based on' => '',
+ 'Bcc' => '',
+ 'Before Deduction' => '',
+ 'Beginning Balance' => '',
+ 'Below' => '',
+ 'Billing Address' => '',
+ 'Bin' => 'Paleta',
+ 'Bin List' => '',
+ 'Bin Lists' => '',
+ 'Books are open' => '¡Uèetní knihy jsou otevøeny',
+ 'Break' => '',
+ 'Business' => '',
+ 'Business Number' => 'IÈO',
+ 'Business deleted!' => '',
+ 'Business saved!' => '',
+ 'C' => '',
+ 'COGS' => 'Náklady na prodané zbo¾í',
+ 'COGS account does not exist!' => '',
+ 'Cannot add timecard for a completed job!' => '',
+ 'Cannot change timecard for a completed job!' => '',
+ 'Cannot create Assembly' => '',
+ 'Cannot create Labor' => '',
+ 'Cannot create Lock!' => 'Cannot create Lock!',
+ 'Cannot create Part' => '',
+ 'Cannot create Service' => '',
+ 'Cannot delete Timecard!' => '',
+ 'Cannot delete account!' => '',
+ 'Cannot delete customer!' => '',
+ 'Cannot delete default account!' => 'Úèet je nastaven jako defaultní, nelze jej proto vymamazat!',
+ 'Cannot delete invoice!' => '',
+ 'Cannot delete item!' => '',
+ 'Cannot delete order!' => '',
+ 'Cannot delete quotation!' => '',
+ 'Cannot delete transaction!' => '',
+ 'Cannot delete vendor!' => '',
+ 'Cannot post Payment!' => '',
+ 'Cannot post Receipt!' => '',
+ 'Cannot post invoice for a closed period!' => '',
+ 'Cannot post invoice!' => '',
+ 'Cannot post payment for a closed period!' => '',
+ 'Cannot post transaction for a closed period!' => 'Do uzavøeného období nelze úètovat!',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => '',
+ 'Cannot post transaction!' => '',
+ 'Cannot remove files!' => '',
+ 'Cannot save account!' => '',
+ 'Cannot save defaults!' => '',
+ 'Cannot save order!' => '',
+ 'Cannot save preferences!' => '',
+ 'Cannot save quotation!' => '',
+ 'Cannot save timecard for a closed period!' => '',
+ 'Cannot save timecard!' => '',
+ 'Cannot set account for more than one of AR, AP or IC' => '',
+ 'Cannot set multiple options for' => '',
+ 'Cannot set multiple options for Item' => '',
+ 'Cannot stock Assembly!' => '',
+ 'Cannot stock assemblies!' => '',
+ 'Cash' => '',
+ 'Cc' => '',
+ 'Change' => '',
+ 'Change Admin Password' => 'Zmìnit heslo administrátora',
+ 'Change Password' => 'Zmìnit heslo',
+ 'Charge' => '',
+ 'Chart of Accounts' => 'Úètový rozvrh',
+ 'Check' => '',
+ 'Check Inventory' => '',
+ 'Checks' => '',
+ 'City' => '',
+ 'Cleared' => '',
+ 'Click on login name to edit!' => 'Pro úpravy kliknìte na jméno u¾ivatele',
+ 'Clocked' => '',
+ 'Close Books up to' => 'Uzavøít úèetní knihy do',
+ 'Closed' => 'Zaplaceno',
+ 'Code' => '',
+ 'Code missing!' => '',
+ 'Company' => 'Firma',
+ 'Company Name' => '',
+ 'Compare to' => 'Porovnáno k',
+ 'Completed' => '',
+ 'Components' => '',
+ 'Confirm' => '',
+ 'Confirm!' => 'Podtvrïte!',
+ 'Connect to' => 'Pøipojit k serveru',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Pokraèování',
+ 'Contra' => '',
+ 'Copies' => 'Kopie',
+ 'Copy to COA' => 'Zkopírovat do úètového rozvrhu',
+ 'Cost' => '',
+ 'Cost Center' => '',
+ 'Could not save pricelist!' => '',
+ 'Could not save!' => '',
+ 'Could not transfer Inventory!' => '',
+ 'Country' => '',
+ 'Create Chart of Accounts' => 'Vytvoøit úètový rozvrh',
+ 'Create Dataset' => 'Vytvoøit dataset',
+ 'Credit' => 'Dal',
+ 'Credit Limit' => 'Úvìrový limit',
+ 'Curr' => 'Mìna',
+ 'Currency' => 'Mìna',
+ 'Current' => '',
+ 'Current Earnings' => '',
+ 'Customer' => 'Odbìratel',
+ 'Customer History' => '',
+ 'Customer Number' => '',
+ 'Customer deleted!' => '',
+ 'Customer missing!' => '',
+ 'Customer not on file!' => '',
+ 'Customer saved!' => '',
+ 'Customers' => '',
+ 'DBI not installed!' => 'DBI není nainstalováno',
+ 'DOB' => '',
+ 'Database' => 'Databáze',
+ 'Database Administration' => 'Správa databáze',
+ 'Database Driver not checked!' => 'Nepodaøilo se zkontrolovat ovladaè databáze',
+ 'Database Host' => 'Databázový server',
+ 'Database User missing!' => 'Chybí jméno pro pøihlá¹ení k databázi!',
+ 'Dataset' => 'Dataset',
+ 'Dataset is newer than version!' => '',
+ 'Dataset missing!' => 'Není zadán dataset',
+ 'Dataset updated!' => 'Dataset updated!',
+ 'Date' => 'Datum',
+ 'Date Format' => 'Formát data',
+ 'Date Paid' => 'Zaplaceno',
+ 'Date Received' => '',
+ 'Date missing!' => '',
+ 'Date received missing!' => '',
+ 'Date worked' => '',
+ 'Day' => '',
+ 'Day(s)' => '',
+ 'Days' => '',
+ 'Debit' => 'Má dáti',
+ 'Dec' => 'Pro',
+ 'December' => 'Prosinec',
+ 'Decimalplaces' => '',
+ 'Decrease' => '',
+ 'Deduct after' => '',
+ 'Deduction deleted!' => '',
+ 'Deduction saved!' => '',
+ 'Deductions' => '',
+ 'Default Template' => '',
+ 'Defaults' => '',
+ 'Defaults saved!' => '',
+ 'Delete' => 'Vymazat',
+ 'Delete Account' => 'Vymazat úèet',
+ 'Delete Dataset' => 'Zru¹it dataset',
+ 'Delete Schedule' => '',
+ 'Deleting a language will also delete the templates for the language' => '',
+ 'Delivery Date' => '',
+ 'Department' => '',
+ 'Department deleted!' => '',
+ 'Department saved!' => '',
+ 'Departments' => '',
+ 'Deposit' => '',
+ 'Description' => 'Popis',
+ 'Description Translations' => '',
+ 'Description missing!' => '',
+ 'Detail' => '',
+ 'Difference' => '',
+ 'Directory' => 'Adresáø',
+ 'Discount' => 'Sleva',
+ 'Done' => '',
+ 'Drawing' => '',
+ 'Driver' => 'Øidiè',
+ 'Dropdown Limit' => '',
+ 'Due Date' => 'Datum splatnosti',
+ 'Due Date missing!' => 'Chybí datum splatnosti!',
+ 'E-mail' => 'E-mail',
+ 'E-mail Statement to' => '',
+ 'E-mail address missing!' => 'Chybí E-mailová adresa!',
+ 'E-mail message' => '',
+ 'E-mailed' => '',
+ 'Edit' => '',
+ 'Edit AP Transaction' => '',
+ 'Edit AR Transaction' => '',
+ 'Edit Account' => 'Upravit úèet',
+ 'Edit Assembly' => 'Upravit výrobek',
+ 'Edit Business' => '',
+ 'Edit Cash Transfer Transaction' => '',
+ 'Edit Customer' => '',
+ 'Edit Deduction' => '',
+ 'Edit Department' => '',
+ 'Edit Description Translations' => '',
+ 'Edit Employee' => '',
+ 'Edit GIFI' => 'Upravit úètovací øetìzec',
+ 'Edit General Ledger Transaction' => 'Opravit záznam v hlavní knize',
+ 'Edit Group' => '',
+ 'Edit Job' => '',
+ 'Edit Labor/Overhead' => '',
+ 'Edit Language' => '',
+ 'Edit POS Invoice' => '',
+ 'Edit Part' => 'Upravit zbo¾í',
+ 'Edit Preferences for' => 'Nastavení pro',
+ 'Edit Pricegroup' => '',
+ 'Edit Project' => '',
+ 'Edit Purchase Order' => 'Upravit vystavenou objednávku',
+ 'Edit Quotation' => '',
+ 'Edit Request for Quotation' => '',
+ 'Edit SIC' => '',
+ 'Edit Sales Invoice' => '',
+ 'Edit Sales Order' => 'Upravit pøijatou objednávku',
+ 'Edit Service' => 'Upravit slu¾bu',
+ 'Edit Template' => 'Upravit ¹ablonu',
+ 'Edit Timecard' => '',
+ 'Edit User' => 'Upravit u¾ivatele',
+ 'Edit Vendor' => '',
+ 'Edit Vendor Invoice' => '',
+ 'Edit Warehouse' => '',
+ 'Employee' => '',
+ 'Employee Name' => '',
+ 'Employee Number' => '',
+ 'Employee deleted!' => '',
+ 'Employee pays' => '',
+ 'Employee saved!' => '',
+ 'Employees' => '',
+ 'Employer' => '',
+ 'Employer pays' => '',
+ 'Enddate' => '',
+ 'Ends' => '',
+ 'Enforce transaction reversal for all dates' => 'Zakázat editaci v¹ech úèetních polo¾ek',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Vlo¾te zkratky mìn (max. 3 znaky) oddìlené dvojteèkou pro domácí i cizí mìny (napø. CZK:USD:EUR)',
+ 'Equity' => 'Vlastní jmìní',
+ 'Every' => '',
+ 'Excempt age <' => '',
+ 'Exch' => 'Kurz',
+ 'Exchange Rate' => 'Mìnový kurz',
+ 'Exchange rate for payment missing!' => '',
+ 'Exchange rate missing!' => '',
+ 'Existing Datasets' => 'Datasety',
+ 'Expense' => 'Náklady',
+ 'Expense account does not exist!' => '',
+ 'Expense/Asset' => 'Náklad',
+ 'Extended' => '',
+ 'FX' => '',
+ 'Failed to save order!' => '',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Úno',
+ 'February' => 'Únor',
+ 'For' => '',
+ 'Foreign Exchange Gain' => 'Kurzový zisk',
+ 'Foreign Exchange Loss' => 'Kurzová ztráta',
+ 'Friday' => '',
+ 'From' => 'z',
+ 'From Warehouse' => '',
+ 'GIFI' => 'Úètovací øetìzec',
+ 'GIFI deleted!' => '',
+ 'GIFI missing!' => 'Chybí úètovací øetìzec!',
+ 'GIFI saved!' => '',
+ 'GL' => '',
+ 'GL Reference Number' => '',
+ 'GL Transaction' => '',
+ 'General Ledger' => 'Hlavní kniha',
+ 'Generate' => '',
+ 'Generate Orders' => '',
+ 'Generate Purchase Orders' => '',
+ 'Generate Purchase Orders from Sales Order' => '',
+ 'Generate Sales Order' => '',
+ 'Generate Sales Order from Purchase Orders' => '',
+ 'Generate Sales Orders' => '',
+ 'Goods & Services' => 'Zbo¾í a slu¾by',
+ 'Group' => '',
+ 'Group Items' => '',
+ 'Group Translations' => '',
+ 'Group deleted!' => '',
+ 'Group missing!' => '',
+ 'Group saved!' => '',
+ 'Groups' => '',
+ 'HR' => '',
+ 'HTML Templates' => 'HTML ¹ablony',
+ 'Heading' => 'Nadpis',
+ 'History' => '',
+ 'Home Phone' => '',
+ 'Host' => 'Server',
+ 'Hostname missing!' => 'Chybí jméno serveru!',
+ 'IBAN' => '',
+ 'ID' => 'ID',
+ 'Image' => '',
+ 'In-line' => 'Vlo¾ené',
+ 'Inactive' => '',
+ 'Include Exchange Rate Difference' => '',
+ 'Include Payment' => '',
+ 'Include in Report' => 'Zahrnovat v sestavì',
+ 'Include in drop-down menus' => 'Ukazovat v drop-down menu',
+ 'Income' => '',
+ 'Income Statement' => 'Výsledovka',
+ 'Income account does not exist!' => '',
+ 'Incorrect Dataset version!' => '©patná verze dat!',
+ 'Increase' => '',
+ 'Individual Items' => 'Komponenty výrobku',
+ 'Internal Notes' => '',
+ 'Inventory' => 'Zásoby',
+ 'Inventory account does not exist!' => '',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Pøed vyøazením výrobu, musí být stav na skladì nulový!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Pøed vyøazením zbo¾í musí být mno¾ství na skladì nulové',
+ 'Inventory saved!' => '',
+ 'Inventory transferred!' => '',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date' => 'Datum vystavení',
+ 'Invoice Date missing!' => 'Chybí datum vystavení!',
+ 'Invoice Number' => 'Èíslo faktury',
+ 'Invoice Number missing!' => 'Chybí èíslo faktury!',
+ 'Invoice deleted!' => '',
+ 'Invoices' => '',
+ 'Is this a summary account to record' => 'Øídící úèet pro',
+ 'Item already on pricelist!' => '',
+ 'Item deleted!' => '',
+ 'Item not on file!' => 'Tato polo¾ka není v databázi!',
+ 'Items' => '',
+ 'Jan' => 'Led',
+ 'January' => 'Leden',
+ 'Job' => '',
+ 'Job Name' => '',
+ 'Job Number' => '',
+ 'Job Number missing!' => '',
+ 'Job deleted!' => '',
+ 'Job saved!' => '',
+ 'Jobs' => '',
+ 'Jul' => 'Èec',
+ 'July' => 'Èervenec',
+ 'Jun' => 'Èer',
+ 'June' => 'Èerven',
+ 'LaTeX Templates' => 'LaTeX ¹ablony',
+ 'Labor Code' => '',
+ 'Labor/Overhead' => '',
+ 'Language' => 'Jazyk',
+ 'Language deleted!' => '',
+ 'Language saved!' => '',
+ 'Languages' => '',
+ 'Languages not defined!' => '',
+ 'Last Cost' => '',
+ 'Last Numbers & Default Accounts' => 'Poslední èísla a standardní èísla úètù',
+ 'Lead' => '',
+ 'Leadtime' => '',
+ 'Leave host and port field empty unless you want to make a remote connection.' => 'Pro lokální databázi, nezadávejte adresu serveru a port.',
+ 'Liability' => 'Závazek',
+ 'Licensed to' => 'Licencováno pro',
+ 'Line Total' => 'Øádek celkem',
+ 'Link' => 'Vazby',
+ 'Link Accounts' => 'Vazby mezi úèty',
+ 'List' => '',
+ 'List Accounts' => 'Seznam úètù',
+ 'List Businesses' => '',
+ 'List Departments' => '',
+ 'List GIFI' => 'Vypsat úètovací øetìzce',
+ 'List Languages' => '',
+ 'List Price' => 'Výrobní cena',
+ 'List Projects' => '',
+ 'List SIC' => '',
+ 'List Transactions' => 'Vypsat transakce',
+ 'List Warehouses' => '',
+ 'Lock System' => 'Lock System',
+ 'Lockfile created!' => 'Lockfile created!',
+ 'Lockfile removed!' => 'Lockfile removed!',
+ 'Login' => 'U¾ivatelské jméno',
+ 'Login name missing!' => 'Login name missing!',
+ 'Logout' => 'Odhlásit',
+ 'Make' => 'Výrobce',
+ 'Manager' => '',
+ 'Mar' => 'Bøe',
+ 'March' => 'Bøezen',
+ 'Marked entries printed!' => '',
+ 'Markup' => '',
+ 'Maximum' => '',
+ 'May' => 'Kvìten',
+ 'May ' => 'Kvì',
+ 'Memo' => '',
+ 'Menu Width' => '',
+ 'Message' => 'Zpráva',
+ 'Method' => '',
+ 'Microfiche' => '',
+ 'Model' => 'Model',
+ 'Monday' => '',
+ 'Month' => '',
+ 'Month(s)' => '',
+ 'Months' => '',
+ 'Multibyte Encoding' => 'Multibyte Encoding',
+ 'N/A' => '---',
+ 'Name' => 'Jméno',
+ 'Name missing!' => '',
+ 'New Templates' => 'Nové ¹ablony',
+ 'New Window' => '',
+ 'Next' => '',
+ 'Next Date' => '',
+ 'Next Number' => '',
+ 'No' => 'Ne',
+ 'No Database Drivers available!' => 'Není instalován ¾ádný ovladaè databáze!',
+ 'No Dataset selected!' => 'Není zvolen ¾ádný dataset!',
+ 'No Employees on file!' => '',
+ 'No Labor codes on file!' => '',
+ 'No email address for' => 'Chybí emailová adresy pro',
+ 'No open Jobs!' => '',
+ 'No open Projects!' => '',
+ 'No.' => '',
+ 'Non-taxable' => '',
+ 'Non-taxable Purchases' => '',
+ 'Non-taxable Sales' => '',
+ 'Non-tracking Items' => '',
+ 'Notes' => 'Poznámky',
+ 'Nothing entered!' => '',
+ 'Nothing selected!' => '',
+ 'Nothing to delete!' => 'Nejsou polo¾ky k vymazání!',
+ 'Nothing to print!' => '',
+ 'Nothing to transfer!' => '',
+ 'Nov' => 'Lis',
+ 'November' => 'Listopad',
+ 'Number' => 'Èíslo',
+ 'Number Format' => 'Èíselný formát',
+ 'Number missing in Row' => 'Chybìjící èíslo na øádku',
+ 'O' => '',
+ 'OH' => '',
+ 'Obsolete' => 'Vyøazené',
+ 'Oct' => 'Øíj',
+ 'October' => 'Øíjen',
+ 'On Hand' => 'K dispozici',
+ 'Open' => 'Otevøené',
+ 'Oracle Database Administration' => 'Oracle Správa databáze',
+ 'Order' => 'Objednávka',
+ 'Order Date' => 'Datum objednávky',
+ 'Order Date missing!' => 'Chybí datum objednávky!',
+ 'Order Entry' => 'Zadání objednávky',
+ 'Order Number' => 'Objednávka èíslo',
+ 'Order Number missing!' => 'Chybí èíslo objednávky!',
+ 'Order deleted!' => '',
+ 'Order generation failed!' => '',
+ 'Order saved!' => '',
+ 'Orders generated!' => '',
+ 'Orphaned' => 'Neprodejné',
+ 'Out of balance transaction!' => '',
+ 'Out of balance!' => '',
+ 'Outstanding' => '',
+ 'PDF' => '',
+ 'PO Number' => '',
+ 'POS' => '',
+ 'POS Invoice' => '',
+ 'Packing List' => 'Dodací list',
+ 'Packing List Date missing!' => 'Chybí datum dodacího listu',
+ 'Packing List Number missing!' => 'Chybí èíslo dodacího listu',
+ 'Packing Lists' => '',
+ 'Paid' => 'Zaplaceno',
+ 'Part' => 'Zbo¾í',
+ 'Part Number' => '',
+ 'Partnumber' => '',
+ 'Parts' => 'Díly',
+ 'Password' => 'Heslo',
+ 'Password changed!' => 'Password changed!',
+ 'Password does not match!' => '',
+ 'Passwords do not match!' => '',
+ 'Payables' => 'Závazky',
+ 'Payment' => 'Platba',
+ 'Payment date missing!' => 'Chybí datum platby!',
+ 'Payment posted!' => '',
+ 'Payments' => 'Platby',
+ 'Payments posted!' => '',
+ 'Payroll Deduction' => '',
+ 'Period' => '',
+ 'Pg Database Administration' => 'Pg Správa databáze',
+ 'PgPP Database Administration' => 'PgPP Database Administration',
+ 'Phone' => 'Telefon',
+ 'Pick List' => '',
+ 'Pick Lists' => '',
+ 'Port' => 'Port',
+ 'Port missing!' => 'Chybí èíslo portu!',
+ 'Pos' => '',
+ 'Post' => '',
+ 'Post as new' => '',
+ 'Posted!' => '',
+ 'Posting' => '',
+ 'Posting failed!' => '',
+ 'Postscript' => '',
+ 'Preferences' => 'Nastavení',
+ 'Preferences saved!' => 'Nastavení bylo ulo¾eno!',
+ 'Prepayment' => '',
+ 'Price' => 'Cena',
+ 'Pricegroup' => '',
+ 'Pricegroup deleted!' => '',
+ 'Pricegroup missing!' => '',
+ 'Pricegroup saved!' => '',
+ 'Pricegroups' => '',
+ 'Pricelist' => '',
+ 'Print' => '',
+ 'Print and Post' => '',
+ 'Print and Post as new' => '',
+ 'Print and Save' => '',
+ 'Print and Save as new' => '',
+ 'Print and post as new' => '',
+ 'Print and save as new' => '',
+ 'Printed' => '',
+ 'Printer' => 'Tiskárna',
+ 'Printing' => '',
+ 'Printing ... ' => '',
+ 'Process Transactions' => '',
+ 'Production' => '',
+ 'Profit Center' => '',
+ 'Project' => '',
+ 'Project Description Translations' => '',
+ 'Project Name' => '',
+ 'Project Number' => '',
+ 'Project Number missing!' => '',
+ 'Project Transactions' => '',
+ 'Project deleted!' => '',
+ 'Project not on file!' => '',
+ 'Project saved!' => '',
+ 'Project/Job Name' => '',
+ 'Project/Job Number' => '',
+ 'Projects' => '',
+ 'Purchase Order' => 'Vystavená objednávka',
+ 'Purchase Order Number' => '',
+ 'Purchase Orders' => 'Vystavené objednávky',
+ 'Qty' => 'Mno¾ství',
+ 'Quantity exceeds available units to stock!' => '',
+ 'Quarter' => '',
+ 'Quotation' => '',
+ 'Quotation ' => '',
+ 'Quotation Date' => '',
+ 'Quotation Date missing!' => '',
+ 'Quotation Number' => '',
+ 'Quotation Number missing!' => '',
+ 'Quotation deleted!' => '',
+ 'Quotations' => '',
+ 'R' => '',
+ 'RFQ' => '',
+ 'RFQ ' => '',
+ 'RFQ Number' => '',
+ 'RFQs' => '',
+ 'ROP' => 'ROP',
+ 'Rate' => 'Sazba',
+ 'Rate missing!' => '',
+ 'Recd' => '',
+ 'Receipt' => '',
+ 'Receipt posted!' => '',
+ 'Receipts' => '',
+ 'Receivables' => 'Pohledávky',
+ 'Receive' => '',
+ 'Receive Merchandise' => '',
+ 'Reconciliation' => '',
+ 'Reconciliation Report' => '',
+ 'Record in' => 'Zaúètovat do',
+ 'Recurring Transaction' => '',
+ 'Recurring Transactions' => '',
+ 'Reference' => '',
+ 'Remaining' => 'Zbývá',
+ 'Remove' => '',
+ 'Remove Audit trail up to' => '',
+ 'Removed spoolfiles!' => '',
+ 'Removing marked entries from queue ...' => '',
+ 'Repeat' => '',
+ 'Report for' => 'Výkaz za',
+ 'Reports' => 'Sestavy',
+ 'Req' => '',
+ 'Request for Quotation' => '',
+ 'Request for Quotations' => '',
+ 'Required by' => 'Po¾adováno do',
+ 'Retained Earnings' => 'Nerozdìlený zisk',
+ 'Role' => '',
+ 'S' => '',
+ 'SIC' => '',
+ 'SIC deleted!' => '',
+ 'SIC saved!' => '',
+ 'SKU' => '',
+ 'SSN' => '',
+ 'Sale' => '',
+ 'Sales' => 'Pøíjmy z prodeje',
+ 'Sales Invoice' => '',
+ 'Sales Invoice ' => '',
+ 'Sales Invoice.' => '',
+ 'Sales Invoice/AR Transaction Number' => '',
+ 'Sales Invoices' => '',
+ 'Sales Order' => 'Pøijatá objednávka',
+ 'Sales Order Number' => '',
+ 'Sales Orders' => 'Pøijaté objednávky',
+ 'Sales Quotation Number' => '',
+ 'Salesperson' => '',
+ 'Saturday' => '',
+ 'Save' => 'Ulo¾it',
+ 'Save Pricelist' => '',
+ 'Save Schedule' => '',
+ 'Save as new' => '',
+ 'Save to File' => 'Ulo¾it do souboru',
+ 'Saving' => '',
+ 'Schedule' => '',
+ 'Scheduled' => '',
+ 'Screen' => 'Na obrazovku',
+ 'Search' => '',
+ 'Select' => '',
+ 'Select Customer' => '',
+ 'Select Vendor' => '',
+ 'Select a Printer!' => '',
+ 'Select a printer!' => '',
+ 'Select all' => '',
+ 'Select from one of the items below' => 'Zvolte z ní¾e uvedených polo¾ek',
+ 'Select from one of the names below' => '',
+ 'Select from one of the projects below' => '',
+ 'Select items' => '',
+ 'Select payment' => '',
+ 'Select postscript or PDF!' => '',
+ 'Select txt, postscript or PDF!' => '',
+ 'Sell' => '',
+ 'Sell Price' => 'Prodejní cena',
+ 'Send by E-Mail' => 'Poslat e-mailem',
+ 'Sending' => '',
+ 'Sep' => 'Záø',
+ 'September' => 'Záøí',
+ 'Serial No.' => '',
+ 'Serial Number' => '',
+ 'Service' => 'Slu¾ba',
+ 'Service Code' => '',
+ 'Service/Labor Code' => '',
+ 'Services' => 'Slu¾by',
+ 'Session Timeout' => '',
+ 'Session expired!' => '',
+ 'Setup Templates' => 'Nastavení ¹ablon',
+ 'Ship' => '',
+ 'Ship Merchandise' => '',
+ 'Ship to' => '',
+ 'Ship via' => '',
+ 'Shipping' => '',
+ 'Shipping Address' => '',
+ 'Shipping Date' => '',
+ 'Shipping Date missing!' => '',
+ 'Shipping Point' => '',
+ 'Short' => 'Krátký výpis',
+ 'Signature' => 'Podpis',
+ 'Source' => 'Zdroj',
+ 'Spoolfile' => '',
+ 'Standard' => 'Standardní',
+ 'Standard Industrial Codes' => '',
+ 'Startdate' => '',
+ 'State' => '',
+ 'State/Province' => '',
+ 'Statement' => '',
+ 'Statement Balance' => '',
+ 'Statement sent to' => '',
+ 'Statements sent to printer!' => '',
+ 'Stock' => '',
+ 'Stock Assembly' => 'Výrobky',
+ 'Stocking Date' => '',
+ 'Stylesheet' => 'Stylesheet',
+ 'Sub-contract GIFI' => '',
+ 'Subject' => 'Pøedmìt',
+ 'Subtotal' => 'Mezisouèet',
+ 'Summary' => '',
+ 'Sunday' => '',
+ 'Supervisor' => '',
+ 'System' => 'Systém',
+ 'System Defaults' => '',
+ 'Tax' => 'Daò',
+ 'Tax Accounts' => 'Daòové úèty',
+ 'Tax Included' => 'Cena vèetnì danì',
+ 'Tax Number' => '',
+ 'Tax Number / SSN' => '',
+ 'Tax collected' => '',
+ 'Tax paid' => '',
+ 'Taxable' => 'Zdanitelné',
+ 'Template saved!' => '',
+ 'Templates' => '©ablony',
+ 'Terms' => 'Netto',
+ 'Text' => '',
+ 'Text Templates' => '',
+ 'The following Datasets are not in use and can be deleted' => 'Uvedené datasety nejsou vyu¾ívány a mohou být vymazány',
+ 'The following Datasets need to be updated' => 'Následující data musí být aktualizována',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Toto je pøedbì¾ná kontrola existence zdrojových dokumentù. V této fázi nebude databáze aktualizována.',
+ 'Thursday' => '',
+ 'Till' => '',
+ 'Time In' => '',
+ 'Time Out' => '',
+ 'Timecard' => '',
+ 'Timecard deleted!' => '',
+ 'Timecard saved!' => '',
+ 'Timecards' => '',
+ 'Times' => '',
+ 'To' => 'do',
+ 'To Warehouse' => '',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Pro pøidání u¾ivatele do skupiny otevøete existujícího u¾ivatele a ulo¾te jej s jiným u¾ivatelským jménem. Nový u¾ivatel bude vytvoøen s toto¾ným nastavením v¹ech promìnných.',
+ 'Top Level' => '',
+ 'Total' => 'Celkem',
+ 'Tracking Items' => '',
+ 'Trade Discount' => '',
+ 'Transaction' => '',
+ 'Transaction Date missing!' => 'Chybí datum!',
+ 'Transaction Dates' => '',
+ 'Transaction deleted!' => '',
+ 'Transaction posted!' => '',
+ 'Transaction reversal enforced for all dates' => 'Editace v¹ech polo¾ek zakázána (je nutné provést storno a nové zadání)',
+ 'Transaction reversal enforced up to' => 'Editace polo¾ek zakázána do',
+ 'Transactions' => 'Polo¾ky',
+ 'Transfer' => '',
+ 'Transfer Inventory' => '',
+ 'Transfer from' => '',
+ 'Transfer to' => '',
+ 'Translation' => '',
+ 'Translation deleted!' => '',
+ 'Translation not on file!' => '',
+ 'Translations' => '',
+ 'Translations saved!' => '',
+ 'Trial Balance' => 'Obratová pøedvaha',
+ 'Tuesday' => '',
+ 'Type of Business' => '',
+ 'Unit' => 'Jednotka',
+ 'Unit of measure' => 'Mìrná jednotka',
+ 'Unlock System' => 'Unlock System',
+ 'Update' => '',
+ 'Update Dataset' => 'Aktualizovat data',
+ 'Updated' => '',
+ 'Upgrading to Version' => '',
+ 'Use Templates' => 'Vyu¾ít ¹ablony',
+ 'User' => 'U¾ivatel',
+ 'User deleted!' => 'User deleted!',
+ 'User saved!' => 'User saved!',
+ 'Valid until' => '',
+ 'Vendor' => 'Dodavatel',
+ 'Vendor History' => '',
+ 'Vendor Invoice' => '',
+ 'Vendor Invoice ' => '',
+ 'Vendor Invoice.' => '',
+ 'Vendor Invoice/AP Transaction Number' => '',
+ 'Vendor Invoices' => '',
+ 'Vendor Number' => '',
+ 'Vendor deleted!' => '',
+ 'Vendor missing!' => '',
+ 'Vendor not on file!' => '',
+ 'Vendor saved!' => '',
+ 'Vendors' => '',
+ 'Version' => 'Verze',
+ 'Warehouse' => '',
+ 'Warehouse deleted!' => '',
+ 'Warehouse saved!' => '',
+ 'Warehouses' => '',
+ 'Warning!' => '',
+ 'Wednesday' => '',
+ 'Week' => '',
+ 'Week(s)' => '',
+ 'Weeks' => '',
+ 'Weight' => 'Váha',
+ 'Weight Unit' => 'Jednotka váhy',
+ 'What type of item is this?' => 'O jaký typ polo¾ky se jedná?',
+ 'Work Order' => '',
+ 'Work Orders' => '',
+ 'Work Phone' => '',
+ 'Year' => '',
+ 'Year(s)' => '',
+ 'Yearend' => '',
+ 'Yearend date missing!' => '',
+ 'Yearend posted!' => '',
+ 'Yearend posting failed!' => '',
+ 'Years' => '',
+ 'Yes' => 'Ano',
+ 'You are logged out' => '',
+ 'You are posting an existing transaction!' => '',
+ 'You are printing and posting an existing transaction!' => '',
+ 'You are printing and saving an existing order' => '',
+ 'You are printing and saving an existing quotation' => '',
+ 'You are printing and saving an existing transaction!' => '',
+ 'You are saving an existing order' => '',
+ 'You are saving an existing quotation' => '',
+ 'You are saving an existing transaction!' => '',
+ 'You did not enter a name!' => 'Nezadal jste jméno!',
+ 'You must enter a host and port for local and remote connections!' => 'Pro lokální i vzdálené pøipojení je nutné zadat adresu serveru a port!',
+ 'Zip/Postal Code' => '',
+ 'account cannot be set to any other type of account' => '',
+ 'as at' => '',
+ 'days' => 'dní',
+ 'does not exist' => 'neexistuje',
+ 'done' => '',
+ 'ea' => 'm.j.',
+ 'failed' => '',
+ 'for' => '',
+ 'for Period' => 'za období',
+ 'is already a member!' => 'ji¾ existuje!',
+ 'localhost' => 'lokální server',
+ 'locked!' => '',
+ 'partsgroup' => '',
+ 'posted!' => '',
+ 'sent' => '',
+ 'successfully created!' => 'úspì¹nì vytvoøen!',
+ 'successfully deleted!' => 'úspì¹nì smazán!',
+ 'time(s)' => '',
+ 'unexpected error!' => '',
+ 'website' => 'www adresa',
+};
+
+1;
diff --git a/locale/cz/am b/locale/cz/am
new file mode 100755
index 00000000..8322ae76
--- /dev/null
+++ b/locale/cz/am
@@ -0,0 +1,190 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'AP' => 'Závazky',
+ 'AR' => 'Pohledávky',
+ 'About' => 'O programu',
+ 'Account' => 'Úèet',
+ 'Account Number' => 'Èíslo úètu',
+ 'Account Number missing!' => 'Chybí èíslo úètu!',
+ 'Account Type' => 'Typ úètu',
+ 'Account Type missing!' => 'Chybí typ úètu!',
+ 'Accounting Menu' => 'Menu úèetnictví',
+ 'Add Account' => 'Zalo¾it úèet',
+ 'Add GIFI' => 'Doplnit úètovací øetìzec',
+ 'Address' => 'Adresa',
+ 'Amount' => 'Èástka',
+ 'Asset' => 'Aktiva',
+ 'Audit Control' => 'Kontrola pøístupù',
+ 'Backup sent to' => 'Záloha odeslána na adresu',
+ 'Books are open' => '¡Uèetní knihy jsou otevøeny',
+ 'Business Number' => 'IÈO',
+ 'COGS' => 'Náklady na prodané zbo¾í',
+ 'Cannot delete default account!' => 'Úèet je nastaven jako defaultní, nelze jej proto vymamazat!',
+ 'Chart of Accounts' => 'Úètový rozvrh',
+ 'Close Books up to' => 'Uzavøít úèetní knihy do',
+ 'Company' => 'Firma',
+ 'Confirm!' => 'Podtvrïte!',
+ 'Continue' => 'Pokraèování',
+ 'Copy to COA' => 'Zkopírovat do úètového rozvrhu',
+ 'Credit' => 'Dal',
+ 'Database Host' => 'Databázový server',
+ 'Dataset' => 'Dataset',
+ 'Date Format' => 'Formát data',
+ 'Debit' => 'Má dáti',
+ 'Delete' => 'Vymazat',
+ 'Delete Account' => 'Vymazat úèet',
+ 'Description' => 'Popis',
+ 'Discount' => 'Sleva',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Chybí E-mailová adresa!',
+ 'Edit Account' => 'Upravit úèet',
+ 'Edit GIFI' => 'Upravit úètovací øetìzec',
+ 'Edit Preferences for' => 'Nastavení pro',
+ 'Edit Template' => 'Upravit ¹ablonu',
+ 'Enforce transaction reversal for all dates' => 'Zakázat editaci v¹ech úèetních polo¾ek',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Vlo¾te zkratky mìn (max. 3 znaky) oddìlené dvojteèkou pro domácí i cizí mìny (napø. CZK:USD:EUR)',
+ 'Equity' => 'Vlastní jmìní',
+ 'Expense' => 'Náklady',
+ 'Expense/Asset' => 'Náklad',
+ 'Fax' => 'Fax',
+ 'Foreign Exchange Gain' => 'Kurzový zisk',
+ 'Foreign Exchange Loss' => 'Kurzová ztráta',
+ 'GIFI' => 'Úètovací øetìzec',
+ 'GIFI missing!' => 'Chybí úètovací øetìzec!',
+ 'Heading' => 'Nadpis',
+ 'ID' => 'ID',
+ 'Include in drop-down menus' => 'Ukazovat v drop-down menu',
+ 'Inventory' => 'Zásoby',
+ 'Invoice' => 'Faktura',
+ 'Is this a summary account to record' => 'Øídící úèet pro',
+ 'Language' => 'Jazyk',
+ 'Last Numbers & Default Accounts' => 'Poslední èísla a standardní èísla úètù',
+ 'Liability' => 'Závazek',
+ 'Licensed to' => 'Licencováno pro',
+ 'Link' => 'Vazby',
+ 'Name' => 'Jméno',
+ 'No' => 'Ne',
+ 'No email address for' => 'Chybí emailová adresy pro',
+ 'Number' => 'Èíslo',
+ 'Number Format' => 'Èíselný formát',
+ 'Packing List' => 'Dodací list',
+ 'Password' => 'Heslo',
+ 'Payables' => 'Závazky',
+ 'Payment' => 'Platba',
+ 'Phone' => 'Telefon',
+ 'Preferences saved!' => 'Nastavení bylo ulo¾eno!',
+ 'Printer' => 'Tiskárna',
+ 'Purchase Order' => 'Vystavená objednávka',
+ 'Purchase Orders' => 'Vystavené objednávky',
+ 'Rate' => 'Sazba',
+ 'Receivables' => 'Pohledávky',
+ 'Retained Earnings' => 'Nerozdìlený zisk',
+ 'Sales Order' => 'Pøijatá objednávka',
+ 'Sales Orders' => 'Pøijaté objednávky',
+ 'Save' => 'Ulo¾it',
+ 'Signature' => 'Podpis',
+ 'Stylesheet' => 'Stylesheet',
+ 'Tax' => 'Daò',
+ 'Transaction reversal enforced for all dates' => 'Editace v¹ech polo¾ek zakázána (je nutné provést storno a nové zadání)',
+ 'Transaction reversal enforced up to' => 'Editace polo¾ek zakázána do',
+ 'User' => 'U¾ivatel',
+ 'Version' => 'Verze',
+ 'Weight Unit' => 'Jednotka váhy',
+ 'Yes' => 'Ano',
+ 'localhost' => 'lokální server',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'zalo¾it_úèet' => 'add_account',
+ 'pokraèování' => 'continue',
+ 'zkopírovat_do_úètového_rozvrhu' => 'copy_to_coa',
+ 'vymazat' => 'delete',
+ 'upravit_úèet' => 'edit_account',
+ 'ulo¾it' => 'save',
+};
+
+1;
+
diff --git a/locale/cz/ap b/locale/cz/ap
new file mode 100755
index 00000000..0afa4468
--- /dev/null
+++ b/locale/cz/ap
@@ -0,0 +1,139 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'AP Transactions' => 'Faktury pøijaté',
+ 'AR Transactions' => 'Faktury vydané',
+ 'Account' => 'Úèet',
+ 'Accounting Menu' => 'Menu úèetnictví',
+ 'Address' => 'Adresa',
+ 'Amount' => 'Èástka',
+ 'Apr' => 'Dub',
+ 'April' => 'Duben',
+ 'Are you sure you want to delete Transaction' => 'Opravdu chcete vymazat transakci?',
+ 'Aug' => 'Srp',
+ 'August' => 'Srpen',
+ 'Cannot post transaction for a closed period!' => 'Do uzavøeného období nelze úètovat!',
+ 'Closed' => 'Zaplaceno',
+ 'Confirm!' => 'Podtvrïte!',
+ 'Continue' => 'Pokraèování',
+ 'Credit' => 'Dal',
+ 'Credit Limit' => 'Úvìrový limit',
+ 'Curr' => 'Mìna',
+ 'Currency' => 'Mìna',
+ 'Customer' => 'Odbìratel',
+ 'Date' => 'Datum',
+ 'Date Paid' => 'Zaplaceno',
+ 'Debit' => 'Má dáti',
+ 'Dec' => 'Pro',
+ 'December' => 'Prosinec',
+ 'Delete' => 'Vymazat',
+ 'Description' => 'Popis',
+ 'Due Date' => 'Datum splatnosti',
+ 'Due Date missing!' => 'Chybí datum splatnosti!',
+ 'E-mail' => 'E-mail',
+ 'Exch' => 'Kurz',
+ 'Exchange Rate' => 'Mìnový kurz',
+ 'Feb' => 'Úno',
+ 'February' => 'Únor',
+ 'From' => 'z',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Zahrnovat v sestavì',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date' => 'Datum vystavení',
+ 'Invoice Date missing!' => 'Chybí datum vystavení!',
+ 'Invoice Number' => 'Èíslo faktury',
+ 'Jan' => 'Led',
+ 'January' => 'Leden',
+ 'Jul' => 'Èec',
+ 'July' => 'Èervenec',
+ 'Jun' => 'Èer',
+ 'June' => 'Èerven',
+ 'Mar' => 'Bøe',
+ 'March' => 'Bøezen',
+ 'May' => 'Kvìten',
+ 'May ' => 'Kvì',
+ 'Message' => 'Zpráva',
+ 'Notes' => 'Poznámky',
+ 'Nov' => 'Lis',
+ 'November' => 'Listopad',
+ 'Number' => 'Èíslo',
+ 'Oct' => 'Øíj',
+ 'October' => 'Øíjen',
+ 'Open' => 'Otevøené',
+ 'Order' => 'Objednávka',
+ 'Order Number' => 'Objednávka èíslo',
+ 'Paid' => 'Zaplaceno',
+ 'Payment date missing!' => 'Chybí datum platby!',
+ 'Payments' => 'Platby',
+ 'Remaining' => 'Zbývá',
+ 'Screen' => 'Na obrazovku',
+ 'Sep' => 'Záø',
+ 'September' => 'Záøí',
+ 'Source' => 'Zdroj',
+ 'Subject' => 'Pøedmìt',
+ 'Subtotal' => 'Mezisouèet',
+ 'Tax' => 'Daò',
+ 'Tax Included' => 'Cena vèetnì danì',
+ 'To' => 'do',
+ 'Total' => 'Celkem',
+ 'Vendor' => 'Dodavatel',
+ 'Yes' => 'Ano',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'pokraèování' => 'continue',
+ 'vymazat' => 'delete',
+ 'ano' => 'yes',
+};
+
+1;
+
diff --git a/locale/cz/ar b/locale/cz/ar
new file mode 100755
index 00000000..0afa4468
--- /dev/null
+++ b/locale/cz/ar
@@ -0,0 +1,139 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'AP Transactions' => 'Faktury pøijaté',
+ 'AR Transactions' => 'Faktury vydané',
+ 'Account' => 'Úèet',
+ 'Accounting Menu' => 'Menu úèetnictví',
+ 'Address' => 'Adresa',
+ 'Amount' => 'Èástka',
+ 'Apr' => 'Dub',
+ 'April' => 'Duben',
+ 'Are you sure you want to delete Transaction' => 'Opravdu chcete vymazat transakci?',
+ 'Aug' => 'Srp',
+ 'August' => 'Srpen',
+ 'Cannot post transaction for a closed period!' => 'Do uzavøeného období nelze úètovat!',
+ 'Closed' => 'Zaplaceno',
+ 'Confirm!' => 'Podtvrïte!',
+ 'Continue' => 'Pokraèování',
+ 'Credit' => 'Dal',
+ 'Credit Limit' => 'Úvìrový limit',
+ 'Curr' => 'Mìna',
+ 'Currency' => 'Mìna',
+ 'Customer' => 'Odbìratel',
+ 'Date' => 'Datum',
+ 'Date Paid' => 'Zaplaceno',
+ 'Debit' => 'Má dáti',
+ 'Dec' => 'Pro',
+ 'December' => 'Prosinec',
+ 'Delete' => 'Vymazat',
+ 'Description' => 'Popis',
+ 'Due Date' => 'Datum splatnosti',
+ 'Due Date missing!' => 'Chybí datum splatnosti!',
+ 'E-mail' => 'E-mail',
+ 'Exch' => 'Kurz',
+ 'Exchange Rate' => 'Mìnový kurz',
+ 'Feb' => 'Úno',
+ 'February' => 'Únor',
+ 'From' => 'z',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Zahrnovat v sestavì',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date' => 'Datum vystavení',
+ 'Invoice Date missing!' => 'Chybí datum vystavení!',
+ 'Invoice Number' => 'Èíslo faktury',
+ 'Jan' => 'Led',
+ 'January' => 'Leden',
+ 'Jul' => 'Èec',
+ 'July' => 'Èervenec',
+ 'Jun' => 'Èer',
+ 'June' => 'Èerven',
+ 'Mar' => 'Bøe',
+ 'March' => 'Bøezen',
+ 'May' => 'Kvìten',
+ 'May ' => 'Kvì',
+ 'Message' => 'Zpráva',
+ 'Notes' => 'Poznámky',
+ 'Nov' => 'Lis',
+ 'November' => 'Listopad',
+ 'Number' => 'Èíslo',
+ 'Oct' => 'Øíj',
+ 'October' => 'Øíjen',
+ 'Open' => 'Otevøené',
+ 'Order' => 'Objednávka',
+ 'Order Number' => 'Objednávka èíslo',
+ 'Paid' => 'Zaplaceno',
+ 'Payment date missing!' => 'Chybí datum platby!',
+ 'Payments' => 'Platby',
+ 'Remaining' => 'Zbývá',
+ 'Screen' => 'Na obrazovku',
+ 'Sep' => 'Záø',
+ 'September' => 'Záøí',
+ 'Source' => 'Zdroj',
+ 'Subject' => 'Pøedmìt',
+ 'Subtotal' => 'Mezisouèet',
+ 'Tax' => 'Daò',
+ 'Tax Included' => 'Cena vèetnì danì',
+ 'To' => 'do',
+ 'Total' => 'Celkem',
+ 'Vendor' => 'Dodavatel',
+ 'Yes' => 'Ano',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'pokraèování' => 'continue',
+ 'vymazat' => 'delete',
+ 'ano' => 'yes',
+};
+
+1;
+
diff --git a/locale/cz/arap b/locale/cz/arap
new file mode 100755
index 00000000..63a37451
--- /dev/null
+++ b/locale/cz/arap
@@ -0,0 +1,41 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Address' => 'Adresa',
+ 'Continue' => 'Pokraèování',
+ 'Date' => 'Datum',
+ 'Description' => 'Popis',
+ 'E-mail' => 'E-mail',
+ 'Message' => 'Zpráva',
+ 'Number' => 'Èíslo',
+ 'Subject' => 'Pøedmìt',
+ 'To' => 'do',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'pokraèování' => 'continue',
+};
+
+1;
+
diff --git a/locale/cz/arapprn b/locale/cz/arapprn
new file mode 100755
index 00000000..225a2694
--- /dev/null
+++ b/locale/cz/arapprn
@@ -0,0 +1,27 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Account' => 'Úèet',
+ 'Amount' => 'Èástka',
+ 'Continue' => 'Pokraèování',
+ 'Date' => 'Datum',
+ 'Screen' => 'Na obrazovku',
+ 'Source' => 'Zdroj',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'pokraèování' => 'continue',
+};
+
+1;
+
diff --git a/locale/cz/bp b/locale/cz/bp
new file mode 100755
index 00000000..8dea7e43
--- /dev/null
+++ b/locale/cz/bp
@@ -0,0 +1,41 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Account' => 'Úèet',
+ 'Accounting Menu' => 'Menu úèetnictví',
+ 'Confirm!' => 'Podtvrïte!',
+ 'Continue' => 'Pokraèování',
+ 'Customer' => 'Odbìratel',
+ 'Date' => 'Datum',
+ 'From' => 'z',
+ 'ID' => 'ID',
+ 'Invoice' => 'Faktura',
+ 'Invoice Number' => 'Èíslo faktury',
+ 'Order' => 'Objednávka',
+ 'Order Number' => 'Objednávka èíslo',
+ 'Purchase Orders' => 'Vystavené objednávky',
+ 'Sales Orders' => 'Pøijaté objednávky',
+ 'To' => 'do',
+ 'Vendor' => 'Dodavatel',
+ 'Yes' => 'Ano',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'pokraèování' => 'continue',
+ 'ano' => 'yes',
+};
+
+1;
+
diff --git a/locale/cz/ca b/locale/cz/ca
new file mode 100755
index 00000000..97fdcf1d
--- /dev/null
+++ b/locale/cz/ca
@@ -0,0 +1,51 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Account' => 'Úèet',
+ 'Apr' => 'Dub',
+ 'April' => 'Duben',
+ 'Aug' => 'Srp',
+ 'August' => 'Srpen',
+ 'Chart of Accounts' => 'Úètový rozvrh',
+ 'Credit' => 'Dal',
+ 'Date' => 'Datum',
+ 'Debit' => 'Má dáti',
+ 'Dec' => 'Pro',
+ 'December' => 'Prosinec',
+ 'Description' => 'Popis',
+ 'Feb' => 'Úno',
+ 'February' => 'Únor',
+ 'From' => 'z',
+ 'GIFI' => 'Úètovací øetìzec',
+ 'Include in Report' => 'Zahrnovat v sestavì',
+ 'Jan' => 'Led',
+ 'January' => 'Leden',
+ 'Jul' => 'Èec',
+ 'July' => 'Èervenec',
+ 'Jun' => 'Èer',
+ 'June' => 'Èerven',
+ 'List Transactions' => 'Vypsat transakce',
+ 'Mar' => 'Bøe',
+ 'March' => 'Bøezen',
+ 'May' => 'Kvìten',
+ 'May ' => 'Kvì',
+ 'Nov' => 'Lis',
+ 'November' => 'Listopad',
+ 'Oct' => 'Øíj',
+ 'October' => 'Øíjen',
+ 'Sep' => 'Záø',
+ 'September' => 'Záøí',
+ 'Subtotal' => 'Mezisouèet',
+ 'To' => 'do',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'vypsat_transakce' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/cz/cp b/locale/cz/cp
new file mode 100755
index 00000000..7db6a593
--- /dev/null
+++ b/locale/cz/cp
@@ -0,0 +1,87 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'AP' => 'Závazky',
+ 'AR' => 'Pohledávky',
+ 'Account' => 'Úèet',
+ 'Accounting Menu' => 'Menu úèetnictví',
+ 'Address' => 'Adresa',
+ 'All' => 'V¹e',
+ 'Amount' => 'Èástka',
+ 'Continue' => 'Pokraèování',
+ 'Currency' => 'Mìna',
+ 'Customer' => 'Odbìratel',
+ 'Date' => 'Datum',
+ 'Description' => 'Popis',
+ 'Due Date' => 'Datum splatnosti',
+ 'E-mail' => 'E-mail',
+ 'Exchange Rate' => 'Mìnový kurz',
+ 'From' => 'z',
+ 'Invoice' => 'Faktura',
+ 'Language' => 'Jazyk',
+ 'Message' => 'Zpráva',
+ 'Number' => 'Èíslo',
+ 'Payment' => 'Platba',
+ 'Payments' => 'Platby',
+ 'Screen' => 'Na obrazovku',
+ 'Source' => 'Zdroj',
+ 'Subject' => 'Pøedmìt',
+ 'To' => 'do',
+ 'Vendor' => 'Dodavatel',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'pokraèování' => 'continue',
+};
+
+1;
+
diff --git a/locale/cz/ct b/locale/cz/ct
new file mode 100755
index 00000000..da3ecba5
--- /dev/null
+++ b/locale/cz/ct
@@ -0,0 +1,109 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'AP Transactions' => 'Faktury pøijaté',
+ 'AR Transactions' => 'Faktury vydané',
+ 'Accounting Menu' => 'Menu úèetnictví',
+ 'Add Customer' => 'Nový zákazník',
+ 'Add Vendor' => 'Nový dodavatel',
+ 'Address' => 'Adresa',
+ 'All' => 'V¹e',
+ 'Amount' => 'Èástka',
+ 'Closed' => 'Zaplaceno',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Pokraèování',
+ 'Credit Limit' => 'Úvìrový limit',
+ 'Curr' => 'Mìna',
+ 'Currency' => 'Mìna',
+ 'Delete' => 'Vymazat',
+ 'Description' => 'Popis',
+ 'Discount' => 'Sleva',
+ 'E-mail' => 'E-mail',
+ 'Fax' => 'Fax',
+ 'From' => 'z',
+ 'GIFI' => 'Úètovací øetìzec',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Zahrnovat v sestavì',
+ 'Invoice' => 'Faktura',
+ 'Item not on file!' => 'Tato polo¾ka není v databázi!',
+ 'Language' => 'Jazyk',
+ 'Name' => 'Jméno',
+ 'Notes' => 'Poznámky',
+ 'Number' => 'Èíslo',
+ 'Open' => 'Otevøené',
+ 'Order' => 'Objednávka',
+ 'Orphaned' => 'Neprodejné',
+ 'Phone' => 'Telefon',
+ 'Purchase Order' => 'Vystavená objednávka',
+ 'Purchase Orders' => 'Vystavené objednávky',
+ 'Qty' => 'Mno¾ství',
+ 'Sales Order' => 'Pøijatá objednávka',
+ 'Sales Orders' => 'Pøijaté objednávky',
+ 'Save' => 'Ulo¾it',
+ 'Sell Price' => 'Prodejní cena',
+ 'Subtotal' => 'Mezisouèet',
+ 'Tax' => 'Daò',
+ 'Tax Included' => 'Cena vèetnì danì',
+ 'Taxable' => 'Zdanitelné',
+ 'Terms' => 'Netto',
+ 'To' => 'do',
+ 'Total' => 'Celkem',
+ 'Unit' => 'Jednotka',
+ 'days' => 'dní',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'nový_zákazník' => 'add_customer',
+ 'nový_dodavatel' => 'add_vendor',
+ 'pokraèování' => 'continue',
+ 'vymazat' => 'delete',
+ 'vystavená_objednávka' => 'purchase_order',
+ 'pøijatá_objednávka' => 'sales_order',
+ 'ulo¾it' => 'save',
+};
+
+1;
+
diff --git a/locale/cz/gl b/locale/cz/gl
new file mode 100755
index 00000000..404b5568
--- /dev/null
+++ b/locale/cz/gl
@@ -0,0 +1,113 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Account' => 'Úèet',
+ 'Accounting Menu' => 'Menu úèetnictví',
+ 'Add General Ledger Transaction' => 'Nový zápis do hlavní knihy',
+ 'Address' => 'Adresa',
+ 'All' => 'V¹e',
+ 'Amount' => 'Èástka',
+ 'Apr' => 'Dub',
+ 'April' => 'Duben',
+ 'Are you sure you want to delete Transaction' => 'Opravdu chcete vymazat transakci?',
+ 'Asset' => 'Aktiva',
+ 'Aug' => 'Srp',
+ 'August' => 'Srpen',
+ 'Cannot post transaction for a closed period!' => 'Do uzavøeného období nelze úètovat!',
+ 'Confirm!' => 'Podtvrïte!',
+ 'Continue' => 'Pokraèování',
+ 'Credit' => 'Dal',
+ 'Date' => 'Datum',
+ 'Debit' => 'Má dáti',
+ 'Dec' => 'Pro',
+ 'December' => 'Prosinec',
+ 'Delete' => 'Vymazat',
+ 'Description' => 'Popis',
+ 'E-mail' => 'E-mail',
+ 'Edit General Ledger Transaction' => 'Opravit záznam v hlavní knize',
+ 'Equity' => 'Vlastní jmìní',
+ 'Expense' => 'Náklady',
+ 'Feb' => 'Úno',
+ 'February' => 'Únor',
+ 'From' => 'z',
+ 'GIFI' => 'Úètovací øetìzec',
+ 'General Ledger' => 'Hlavní kniha',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Zahrnovat v sestavì',
+ 'Jan' => 'Led',
+ 'January' => 'Leden',
+ 'Jul' => 'Èec',
+ 'July' => 'Èervenec',
+ 'Jun' => 'Èer',
+ 'June' => 'Èerven',
+ 'Liability' => 'Závazek',
+ 'Mar' => 'Bøe',
+ 'March' => 'Bøezen',
+ 'May' => 'Kvìten',
+ 'May ' => 'Kvì',
+ 'Message' => 'Zpráva',
+ 'Notes' => 'Poznámky',
+ 'Nov' => 'Lis',
+ 'November' => 'Listopad',
+ 'Number' => 'Èíslo',
+ 'Oct' => 'Øíj',
+ 'October' => 'Øíjen',
+ 'Reports' => 'Sestavy',
+ 'Sep' => 'Záø',
+ 'September' => 'Záøí',
+ 'Source' => 'Zdroj',
+ 'Subject' => 'Pøedmìt',
+ 'Subtotal' => 'Mezisouèet',
+ 'To' => 'do',
+ 'Transaction Date missing!' => 'Chybí datum!',
+ 'Yes' => 'Ano',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'pokraèování' => 'continue',
+ 'vymazat' => 'delete',
+ 'ano' => 'yes',
+};
+
+1;
+
diff --git a/locale/cz/hr b/locale/cz/hr
new file mode 100755
index 00000000..4f1dd6cb
--- /dev/null
+++ b/locale/cz/hr
@@ -0,0 +1,67 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'AP' => 'Závazky',
+ 'Accounting Menu' => 'Menu úèetnictví',
+ 'Address' => 'Adresa',
+ 'Administrator' => 'Administrator',
+ 'All' => 'V¹e',
+ 'Amount' => 'Èástka',
+ 'Continue' => 'Pokraèování',
+ 'Delete' => 'Vymazat',
+ 'Description' => 'Popis',
+ 'E-mail' => 'E-mail',
+ 'Expense' => 'Náklady',
+ 'From' => 'z',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Zahrnovat v sestavì',
+ 'Login' => 'U¾ivatelské jméno',
+ 'Name' => 'Jméno',
+ 'Notes' => 'Poznámky',
+ 'Number' => 'Èíslo',
+ 'Orphaned' => 'Neprodejné',
+ 'Rate' => 'Sazba',
+ 'Sales' => 'Pøíjmy z prodeje',
+ 'Save' => 'Ulo¾it',
+ 'To' => 'do',
+ 'User' => 'U¾ivatel',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'pokraèování' => 'continue',
+ 'vymazat' => 'delete',
+ 'ulo¾it' => 'save',
+};
+
+1;
+
diff --git a/locale/cz/ic b/locale/cz/ic
new file mode 100755
index 00000000..82fe18d9
--- /dev/null
+++ b/locale/cz/ic
@@ -0,0 +1,191 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Menu úèetnictví',
+ 'Accounts' => 'Úèty',
+ 'Add' => 'Pøidat',
+ 'Add Assembly' => 'Nový výrobek',
+ 'Add Part' => 'Pøíjem zbo¾í',
+ 'Add Purchase Order' => 'Nová objednávka (nákup)',
+ 'Add Sales Order' => 'Nová objednávka (pøíjem)',
+ 'Add Service' => 'Nový druh slu¾by',
+ 'Address' => 'Adresa',
+ 'Apr' => 'Dub',
+ 'April' => 'Duben',
+ 'Assemblies' => 'Výrobky',
+ 'Attachment' => 'Pøílohy',
+ 'Aug' => 'Srp',
+ 'August' => 'Srpen',
+ 'Bin' => 'Paleta',
+ 'COGS' => 'Náklady na prodané zbo¾í',
+ 'Closed' => 'Zaplaceno',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Pokraèování',
+ 'Copies' => 'Kopie',
+ 'Curr' => 'Mìna',
+ 'Currency' => 'Mìna',
+ 'Customer' => 'Odbìratel',
+ 'Date' => 'Datum',
+ 'Dec' => 'Pro',
+ 'December' => 'Prosinec',
+ 'Delete' => 'Vymazat',
+ 'Description' => 'Popis',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Chybí E-mailová adresa!',
+ 'Edit Assembly' => 'Upravit výrobek',
+ 'Edit Part' => 'Upravit zbo¾í',
+ 'Edit Service' => 'Upravit slu¾bu',
+ 'Expense' => 'Náklady',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Úno',
+ 'February' => 'Únor',
+ 'From' => 'z',
+ 'In-line' => 'Vlo¾ené',
+ 'Include in Report' => 'Zahrnovat v sestavì',
+ 'Individual Items' => 'Komponenty výrobku',
+ 'Inventory' => 'Zásoby',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Pøed vyøazením výrobu, musí být stav na skladì nulový!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Pøed vyøazením zbo¾í musí být mno¾ství na skladì nulové',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date missing!' => 'Chybí datum vystavení!',
+ 'Invoice Number' => 'Èíslo faktury',
+ 'Invoice Number missing!' => 'Chybí èíslo faktury!',
+ 'Item not on file!' => 'Tato polo¾ka není v databázi!',
+ 'Jan' => 'Led',
+ 'January' => 'Leden',
+ 'Jul' => 'Èec',
+ 'July' => 'Èervenec',
+ 'Jun' => 'Èer',
+ 'June' => 'Èerven',
+ 'Line Total' => 'Øádek celkem',
+ 'Link Accounts' => 'Vazby mezi úèty',
+ 'List Price' => 'Výrobní cena',
+ 'Make' => 'Výrobce',
+ 'Mar' => 'Bøe',
+ 'March' => 'Bøezen',
+ 'May' => 'Kvìten',
+ 'May ' => 'Kvì',
+ 'Message' => 'Zpráva',
+ 'Model' => 'Model',
+ 'Name' => 'Jméno',
+ 'Notes' => 'Poznámky',
+ 'Nov' => 'Lis',
+ 'November' => 'Listopad',
+ 'Number' => 'Èíslo',
+ 'Number missing in Row' => 'Chybìjící èíslo na øádku',
+ 'Obsolete' => 'Vyøazené',
+ 'Oct' => 'Øíj',
+ 'October' => 'Øíjen',
+ 'On Hand' => 'K dispozici',
+ 'Open' => 'Otevøené',
+ 'Order' => 'Objednávka',
+ 'Order Date missing!' => 'Chybí datum objednávky!',
+ 'Order Number' => 'Objednávka èíslo',
+ 'Order Number missing!' => 'Chybí èíslo objednávky!',
+ 'Orphaned' => 'Neprodejné',
+ 'Packing List' => 'Dodací list',
+ 'Packing List Date missing!' => 'Chybí datum dodacího listu',
+ 'Packing List Number missing!' => 'Chybí èíslo dodacího listu',
+ 'Part' => 'Zbo¾í',
+ 'Parts' => 'Díly',
+ 'Phone' => 'Telefon',
+ 'Price' => 'Cena',
+ 'Purchase Order' => 'Vystavená objednávka',
+ 'Purchase Orders' => 'Vystavené objednávky',
+ 'Qty' => 'Mno¾ství',
+ 'ROP' => 'ROP',
+ 'Required by' => 'Po¾adováno do',
+ 'Sales Order' => 'Pøijatá objednávka',
+ 'Sales Orders' => 'Pøijaté objednávky',
+ 'Save' => 'Ulo¾it',
+ 'Screen' => 'Na obrazovku',
+ 'Sell Price' => 'Prodejní cena',
+ 'Sep' => 'Záø',
+ 'September' => 'Záøí',
+ 'Service' => 'Slu¾ba',
+ 'Services' => 'Slu¾by',
+ 'Short' => 'Krátký výpis',
+ 'Stock Assembly' => 'Výrobky',
+ 'Subject' => 'Pøedmìt',
+ 'Subtotal' => 'Mezisouèet',
+ 'Tax' => 'Daò',
+ 'To' => 'do',
+ 'Unit' => 'Jednotka',
+ 'Vendor' => 'Dodavatel',
+ 'Weight' => 'Váha',
+ 'What type of item is this?' => 'O jaký typ polo¾ky se jedná?',
+ 'days' => 'dní',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'nový_výrobek' => 'add_assembly',
+ 'pøíjem_zbo¾í' => 'add_part',
+ 'nový_druh_slu¾by' => 'add_service',
+ 'pokraèování' => 'continue',
+ 'vymazat' => 'delete',
+ 'upravit_výrobek' => 'edit_assembly',
+ 'upravit_zbo¾í' => 'edit_part',
+ 'upravit_slu¾bu' => 'edit_service',
+ 'ulo¾it' => 'save',
+};
+
+1;
+
diff --git a/locale/cz/io b/locale/cz/io
new file mode 100755
index 00000000..3833c1cf
--- /dev/null
+++ b/locale/cz/io
@@ -0,0 +1,97 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Add Purchase Order' => 'Nová objednávka (nákup)',
+ 'Add Sales Order' => 'Nová objednávka (pøíjem)',
+ 'Address' => 'Adresa',
+ 'Apr' => 'Dub',
+ 'April' => 'Duben',
+ 'Attachment' => 'Pøílohy',
+ 'Aug' => 'Srp',
+ 'August' => 'Srpen',
+ 'Bin' => 'Paleta',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Pokraèování',
+ 'Copies' => 'Kopie',
+ 'Date' => 'Datum',
+ 'Dec' => 'Pro',
+ 'December' => 'Prosinec',
+ 'Description' => 'Popis',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Chybí E-mailová adresa!',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Úno',
+ 'February' => 'Únor',
+ 'In-line' => 'Vlo¾ené',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date missing!' => 'Chybí datum vystavení!',
+ 'Invoice Number missing!' => 'Chybí èíslo faktury!',
+ 'Item not on file!' => 'Tato polo¾ka není v databázi!',
+ 'Jan' => 'Led',
+ 'January' => 'Leden',
+ 'Jul' => 'Èec',
+ 'July' => 'Èervenec',
+ 'Jun' => 'Èer',
+ 'June' => 'Èerven',
+ 'Mar' => 'Bøe',
+ 'March' => 'Bøezen',
+ 'May' => 'Kvìten',
+ 'May ' => 'Kvì',
+ 'Message' => 'Zpráva',
+ 'Nov' => 'Lis',
+ 'November' => 'Listopad',
+ 'Number' => 'Èíslo',
+ 'Number missing in Row' => 'Chybìjící èíslo na øádku',
+ 'Oct' => 'Øíj',
+ 'October' => 'Øíjen',
+ 'Order Date missing!' => 'Chybí datum objednávky!',
+ 'Order Number missing!' => 'Chybí èíslo objednávky!',
+ 'Packing List' => 'Dodací list',
+ 'Packing List Date missing!' => 'Chybí datum dodacího listu',
+ 'Packing List Number missing!' => 'Chybí èíslo dodacího listu',
+ 'Part' => 'Zbo¾í',
+ 'Phone' => 'Telefon',
+ 'Price' => 'Cena',
+ 'Purchase Order' => 'Vystavená objednávka',
+ 'Qty' => 'Mno¾ství',
+ 'Required by' => 'Po¾adováno do',
+ 'Sales Order' => 'Pøijatá objednávka',
+ 'Screen' => 'Na obrazovku',
+ 'Sep' => 'Záø',
+ 'September' => 'Záøí',
+ 'Service' => 'Slu¾ba',
+ 'Subject' => 'Pøedmìt',
+ 'Subtotal' => 'Mezisouèet',
+ 'To' => 'do',
+ 'Unit' => 'Jednotka',
+ 'What type of item is this?' => 'O jaký typ polo¾ky se jedná?',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'pokraèování' => 'continue',
+};
+
+1;
+
diff --git a/locale/cz/ir b/locale/cz/ir
new file mode 100755
index 00000000..c592afc9
--- /dev/null
+++ b/locale/cz/ir
@@ -0,0 +1,162 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Account' => 'Úèet',
+ 'Accounting Menu' => 'Menu úèetnictví',
+ 'Add Purchase Order' => 'Nová objednávka (nákup)',
+ 'Add Sales Order' => 'Nová objednávka (pøíjem)',
+ 'Address' => 'Adresa',
+ 'Amount' => 'Èástka',
+ 'Apr' => 'Dub',
+ 'April' => 'Duben',
+ 'Are you sure you want to delete Invoice Number' => 'Opravdu chcete vymazat fakturu èíslo',
+ 'Attachment' => 'Pøílohy',
+ 'Aug' => 'Srp',
+ 'August' => 'Srpen',
+ 'Bin' => 'Paleta',
+ 'Confirm!' => 'Podtvrïte!',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Pokraèování',
+ 'Copies' => 'Kopie',
+ 'Credit Limit' => 'Úvìrový limit',
+ 'Currency' => 'Mìna',
+ 'Date' => 'Datum',
+ 'Dec' => 'Pro',
+ 'December' => 'Prosinec',
+ 'Delete' => 'Vymazat',
+ 'Description' => 'Popis',
+ 'Due Date' => 'Datum splatnosti',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Chybí E-mailová adresa!',
+ 'Exch' => 'Kurz',
+ 'Exchange Rate' => 'Mìnový kurz',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Úno',
+ 'February' => 'Únor',
+ 'In-line' => 'Vlo¾ené',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date' => 'Datum vystavení',
+ 'Invoice Date missing!' => 'Chybí datum vystavení!',
+ 'Invoice Number' => 'Èíslo faktury',
+ 'Invoice Number missing!' => 'Chybí èíslo faktury!',
+ 'Item not on file!' => 'Tato polo¾ka není v databázi!',
+ 'Jan' => 'Led',
+ 'January' => 'Leden',
+ 'Jul' => 'Èec',
+ 'July' => 'Èervenec',
+ 'Jun' => 'Èer',
+ 'June' => 'Èerven',
+ 'Language' => 'Jazyk',
+ 'Mar' => 'Bøe',
+ 'March' => 'Bøezen',
+ 'May' => 'Kvìten',
+ 'May ' => 'Kvì',
+ 'Message' => 'Zpráva',
+ 'Notes' => 'Poznámky',
+ 'Nov' => 'Lis',
+ 'November' => 'Listopad',
+ 'Number' => 'Èíslo',
+ 'Number missing in Row' => 'Chybìjící èíslo na øádku',
+ 'Oct' => 'Øíj',
+ 'October' => 'Øíjen',
+ 'Order Date missing!' => 'Chybí datum objednávky!',
+ 'Order Number' => 'Objednávka èíslo',
+ 'Order Number missing!' => 'Chybí èíslo objednávky!',
+ 'Packing List' => 'Dodací list',
+ 'Packing List Date missing!' => 'Chybí datum dodacího listu',
+ 'Packing List Number missing!' => 'Chybí èíslo dodacího listu',
+ 'Part' => 'Zbo¾í',
+ 'Payment date missing!' => 'Chybí datum platby!',
+ 'Payments' => 'Platby',
+ 'Phone' => 'Telefon',
+ 'Price' => 'Cena',
+ 'Purchase Order' => 'Vystavená objednávka',
+ 'Qty' => 'Mno¾ství',
+ 'Record in' => 'Zaúètovat do',
+ 'Remaining' => 'Zbývá',
+ 'Required by' => 'Po¾adováno do',
+ 'Sales Order' => 'Pøijatá objednávka',
+ 'Screen' => 'Na obrazovku',
+ 'Sep' => 'Záø',
+ 'September' => 'Záøí',
+ 'Service' => 'Slu¾ba',
+ 'Source' => 'Zdroj',
+ 'Subject' => 'Pøedmìt',
+ 'Subtotal' => 'Mezisouèet',
+ 'Tax Included' => 'Cena vèetnì danì',
+ 'To' => 'do',
+ 'Total' => 'Celkem',
+ 'Unit' => 'Jednotka',
+ 'Vendor' => 'Dodavatel',
+ 'What type of item is this?' => 'O jaký typ polo¾ky se jedná?',
+ 'Yes' => 'Ano',
+ 'ea' => 'm.j.',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'pokraèování' => 'continue',
+ 'vymazat' => 'delete',
+ 'vystavená_objednávka' => 'purchase_order',
+ 'ano' => 'yes',
+};
+
+1;
+
diff --git a/locale/cz/is b/locale/cz/is
new file mode 100755
index 00000000..d8dee08f
--- /dev/null
+++ b/locale/cz/is
@@ -0,0 +1,163 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Account' => 'Úèet',
+ 'Accounting Menu' => 'Menu úèetnictví',
+ 'Add Purchase Order' => 'Nová objednávka (nákup)',
+ 'Add Sales Order' => 'Nová objednávka (pøíjem)',
+ 'Address' => 'Adresa',
+ 'Amount' => 'Èástka',
+ 'Apr' => 'Dub',
+ 'April' => 'Duben',
+ 'Are you sure you want to delete Invoice Number' => 'Opravdu chcete vymazat fakturu èíslo',
+ 'Attachment' => 'Pøílohy',
+ 'Aug' => 'Srp',
+ 'August' => 'Srpen',
+ 'Bin' => 'Paleta',
+ 'Confirm!' => 'Podtvrïte!',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Pokraèování',
+ 'Copies' => 'Kopie',
+ 'Credit Limit' => 'Úvìrový limit',
+ 'Currency' => 'Mìna',
+ 'Customer' => 'Odbìratel',
+ 'Date' => 'Datum',
+ 'Dec' => 'Pro',
+ 'December' => 'Prosinec',
+ 'Delete' => 'Vymazat',
+ 'Description' => 'Popis',
+ 'Due Date' => 'Datum splatnosti',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Chybí E-mailová adresa!',
+ 'Exch' => 'Kurz',
+ 'Exchange Rate' => 'Mìnový kurz',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Úno',
+ 'February' => 'Únor',
+ 'In-line' => 'Vlo¾ené',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date' => 'Datum vystavení',
+ 'Invoice Date missing!' => 'Chybí datum vystavení!',
+ 'Invoice Number' => 'Èíslo faktury',
+ 'Invoice Number missing!' => 'Chybí èíslo faktury!',
+ 'Item not on file!' => 'Tato polo¾ka není v databázi!',
+ 'Jan' => 'Led',
+ 'January' => 'Leden',
+ 'Jul' => 'Èec',
+ 'July' => 'Èervenec',
+ 'Jun' => 'Èer',
+ 'June' => 'Èerven',
+ 'Mar' => 'Bøe',
+ 'March' => 'Bøezen',
+ 'May' => 'Kvìten',
+ 'May ' => 'Kvì',
+ 'Message' => 'Zpráva',
+ 'Notes' => 'Poznámky',
+ 'Nov' => 'Lis',
+ 'November' => 'Listopad',
+ 'Number' => 'Èíslo',
+ 'Number missing in Row' => 'Chybìjící èíslo na øádku',
+ 'Oct' => 'Øíj',
+ 'October' => 'Øíjen',
+ 'Order Date missing!' => 'Chybí datum objednávky!',
+ 'Order Number' => 'Objednávka èíslo',
+ 'Order Number missing!' => 'Chybí èíslo objednávky!',
+ 'Packing List' => 'Dodací list',
+ 'Packing List Date missing!' => 'Chybí datum dodacího listu',
+ 'Packing List Number missing!' => 'Chybí èíslo dodacího listu',
+ 'Part' => 'Zbo¾í',
+ 'Payment date missing!' => 'Chybí datum platby!',
+ 'Payments' => 'Platby',
+ 'Phone' => 'Telefon',
+ 'Price' => 'Cena',
+ 'Purchase Order' => 'Vystavená objednávka',
+ 'Qty' => 'Mno¾ství',
+ 'Record in' => 'Zaúètovat do',
+ 'Remaining' => 'Zbývá',
+ 'Required by' => 'Po¾adováno do',
+ 'Sales Order' => 'Pøijatá objednávka',
+ 'Screen' => 'Na obrazovku',
+ 'Sep' => 'Záø',
+ 'September' => 'Záøí',
+ 'Service' => 'Slu¾ba',
+ 'Source' => 'Zdroj',
+ 'Subject' => 'Pøedmìt',
+ 'Subtotal' => 'Mezisouèet',
+ 'Tax Included' => 'Cena vèetnì danì',
+ 'To' => 'do',
+ 'Total' => 'Celkem',
+ 'Unit' => 'Jednotka',
+ 'What type of item is this?' => 'O jaký typ polo¾ky se jedná?',
+ 'Yes' => 'Ano',
+ 'ea' => 'm.j.',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'pokraèování' => 'continue',
+ 'vymazat' => 'delete',
+ 'e_mail' => 'e_mail',
+ 'pøijatá_objednávka' => 'sales_order',
+ 'ano' => 'yes',
+};
+
+1;
+
diff --git a/locale/cz/jc b/locale/cz/jc
new file mode 100755
index 00000000..21faaba7
--- /dev/null
+++ b/locale/cz/jc
@@ -0,0 +1,70 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Menu úèetnictví',
+ 'Amount' => 'Èástka',
+ 'Closed' => 'Zaplaceno',
+ 'Confirm!' => 'Podtvrïte!',
+ 'Continue' => 'Pokraèování',
+ 'Date' => 'Datum',
+ 'Delete' => 'Vymazat',
+ 'Description' => 'Popis',
+ 'From' => 'z',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Zahrnovat v sestavì',
+ 'Notes' => 'Poznámky',
+ 'Open' => 'Otevøené',
+ 'Qty' => 'Mno¾ství',
+ 'Save' => 'Ulo¾it',
+ 'Screen' => 'Na obrazovku',
+ 'Subtotal' => 'Mezisouèet',
+ 'To' => 'do',
+ 'Total' => 'Celkem',
+ 'Yes' => 'Ano',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'pokraèování' => 'continue',
+ 'vymazat' => 'delete',
+ 'ulo¾it' => 'save',
+ 'ano' => 'yes',
+};
+
+1;
+
diff --git a/locale/cz/locales.pl b/locale/cz/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/cz/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/cz/login b/locale/cz/login
new file mode 100755
index 00000000..c867b4e9
--- /dev/null
+++ b/locale/cz/login
@@ -0,0 +1,23 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Company' => 'Firma',
+ 'Continue' => 'Pokraèování',
+ 'Incorrect Dataset version!' => '©patná verze dat!',
+ 'Login' => 'U¾ivatelské jméno',
+ 'Name' => 'Jméno',
+ 'Password' => 'Heslo',
+ 'Version' => 'Verze',
+ 'You did not enter a name!' => 'Nezadal jste jméno!',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ 'u¾ivatelské_jméno' => 'login',
+};
+
+1;
+
diff --git a/locale/cz/menu b/locale/cz/menu
new file mode 100755
index 00000000..6aaa6e36
--- /dev/null
+++ b/locale/cz/menu
@@ -0,0 +1,65 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'AP' => 'Závazky',
+ 'AP Aging' => 'Analýza splatnosti',
+ 'AR' => 'Pohledávky',
+ 'AR Aging' => 'Analýza splatnosti',
+ 'Accounting Menu' => 'Menu úèetnictví',
+ 'Add Account' => 'Zalo¾it úèet',
+ 'Add Assembly' => 'Nový výrobek',
+ 'Add Customer' => 'Nový zákazník',
+ 'Add GIFI' => 'Doplnit úètovací øetìzec',
+ 'Add Part' => 'Pøíjem zbo¾í',
+ 'Add Service' => 'Nový druh slu¾by',
+ 'Add Transaction' => 'Nová transakce',
+ 'Add Vendor' => 'Nový dodavatel',
+ 'Assemblies' => 'Výrobky',
+ 'Audit Control' => 'Kontrola pøístupù',
+ 'Backup' => 'Záloha',
+ 'Balance Sheet' => 'Rozvaha',
+ 'Chart of Accounts' => 'Úètový rozvrh',
+ 'Description' => 'Popis',
+ 'General Ledger' => 'Hlavní kniha',
+ 'Goods & Services' => 'Zbo¾í a slu¾by',
+ 'HTML Templates' => 'HTML ¹ablony',
+ 'Income Statement' => 'Výsledovka',
+ 'Invoice' => 'Faktura',
+ 'LaTeX Templates' => 'LaTeX ¹ablony',
+ 'Language' => 'Jazyk',
+ 'List Accounts' => 'Seznam úètù',
+ 'List GIFI' => 'Vypsat úètovací øetìzce',
+ 'Logout' => 'Odhlásit',
+ 'Open' => 'Otevøené',
+ 'Order Entry' => 'Zadání objednávky',
+ 'Packing List' => 'Dodací list',
+ 'Parts' => 'Díly',
+ 'Payment' => 'Platba',
+ 'Payments' => 'Platby',
+ 'Preferences' => 'Nastavení',
+ 'Purchase Order' => 'Vystavená objednávka',
+ 'Purchase Orders' => 'Vystavené objednávky',
+ 'Reports' => 'Sestavy',
+ 'Sales Order' => 'Pøijatá objednávka',
+ 'Sales Orders' => 'Pøijaté objednávky',
+ 'Save to File' => 'Ulo¾it do souboru',
+ 'Send by E-Mail' => 'Poslat e-mailem',
+ 'Services' => 'Slu¾by',
+ 'Stock Assembly' => 'Výrobky',
+ 'Stylesheet' => 'Stylesheet',
+ 'System' => 'Systém',
+ 'Transactions' => 'Polo¾ky',
+ 'Trial Balance' => 'Obratová pøedvaha',
+ 'Version' => 'Verze',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/cz/oe b/locale/cz/oe
new file mode 100755
index 00000000..580e5d26
--- /dev/null
+++ b/locale/cz/oe
@@ -0,0 +1,198 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Menu úèetnictví',
+ 'Add Purchase Order' => 'Nová objednávka (nákup)',
+ 'Add Sales Order' => 'Nová objednávka (pøíjem)',
+ 'Address' => 'Adresa',
+ 'Amount' => 'Èástka',
+ 'Apr' => 'Dub',
+ 'April' => 'Duben',
+ 'Are you sure you want to delete Order Number' => 'Opravdu chcete vymazat objednávku èíslo',
+ 'Attachment' => 'Pøílohy',
+ 'Aug' => 'Srp',
+ 'August' => 'Srpen',
+ 'Bin' => 'Paleta',
+ 'Closed' => 'Zaplaceno',
+ 'Confirm!' => 'Podtvrïte!',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Pokraèování',
+ 'Copies' => 'Kopie',
+ 'Credit Limit' => 'Úvìrový limit',
+ 'Curr' => 'Mìna',
+ 'Currency' => 'Mìna',
+ 'Customer' => 'Odbìratel',
+ 'Date' => 'Datum',
+ 'Dec' => 'Pro',
+ 'December' => 'Prosinec',
+ 'Delete' => 'Vymazat',
+ 'Description' => 'Popis',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Chybí E-mailová adresa!',
+ 'Edit Purchase Order' => 'Upravit vystavenou objednávku',
+ 'Edit Sales Order' => 'Upravit pøijatou objednávku',
+ 'Exchange Rate' => 'Mìnový kurz',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Úno',
+ 'February' => 'Únor',
+ 'From' => 'z',
+ 'ID' => 'ID',
+ 'In-line' => 'Vlo¾ené',
+ 'Include in Report' => 'Zahrnovat v sestavì',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date missing!' => 'Chybí datum vystavení!',
+ 'Invoice Number missing!' => 'Chybí èíslo faktury!',
+ 'Item not on file!' => 'Tato polo¾ka není v databázi!',
+ 'Jan' => 'Led',
+ 'January' => 'Leden',
+ 'Jul' => 'Èec',
+ 'July' => 'Èervenec',
+ 'Jun' => 'Èer',
+ 'June' => 'Èerven',
+ 'Mar' => 'Bøe',
+ 'March' => 'Bøezen',
+ 'May' => 'Kvìten',
+ 'May ' => 'Kvì',
+ 'Message' => 'Zpráva',
+ 'Notes' => 'Poznámky',
+ 'Nov' => 'Lis',
+ 'November' => 'Listopad',
+ 'Number' => 'Èíslo',
+ 'Number missing in Row' => 'Chybìjící èíslo na øádku',
+ 'Oct' => 'Øíj',
+ 'October' => 'Øíjen',
+ 'Open' => 'Otevøené',
+ 'Order' => 'Objednávka',
+ 'Order Date' => 'Datum objednávky',
+ 'Order Date missing!' => 'Chybí datum objednávky!',
+ 'Order Number' => 'Objednávka èíslo',
+ 'Order Number missing!' => 'Chybí èíslo objednávky!',
+ 'Packing List' => 'Dodací list',
+ 'Packing List Date missing!' => 'Chybí datum dodacího listu',
+ 'Packing List Number missing!' => 'Chybí èíslo dodacího listu',
+ 'Part' => 'Zbo¾í',
+ 'Phone' => 'Telefon',
+ 'Price' => 'Cena',
+ 'Purchase Order' => 'Vystavená objednávka',
+ 'Purchase Orders' => 'Vystavené objednávky',
+ 'Qty' => 'Mno¾ství',
+ 'Remaining' => 'Zbývá',
+ 'Required by' => 'Po¾adováno do',
+ 'Sales Order' => 'Pøijatá objednávka',
+ 'Sales Orders' => 'Pøijaté objednávky',
+ 'Save' => 'Ulo¾it',
+ 'Screen' => 'Na obrazovku',
+ 'Sep' => 'Záø',
+ 'September' => 'Záøí',
+ 'Service' => 'Slu¾ba',
+ 'Subject' => 'Pøedmìt',
+ 'Subtotal' => 'Mezisouèet',
+ 'Tax' => 'Daò',
+ 'Tax Included' => 'Cena vèetnì danì',
+ 'Terms' => 'Netto',
+ 'To' => 'do',
+ 'Total' => 'Celkem',
+ 'Unit' => 'Jednotka',
+ 'Vendor' => 'Dodavatel',
+ 'What type of item is this?' => 'O jaký typ polo¾ky se jedná?',
+ 'Yes' => 'Ano',
+ 'days' => 'dní',
+ 'ea' => 'm.j.',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'pokraèování' => 'continue',
+ 'vymazat' => 'delete',
+ 'e_mail' => 'e_mail',
+ 'vystavená_objednávka' => 'purchase_order',
+ 'pøijatá_objednávka' => 'sales_order',
+ 'ulo¾it' => 'save',
+ 'ano' => 'yes',
+};
+
+1;
+
diff --git a/locale/cz/pe b/locale/cz/pe
new file mode 100755
index 00000000..696596fc
--- /dev/null
+++ b/locale/cz/pe
@@ -0,0 +1,90 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Menu úèetnictví',
+ 'Add' => 'Pøidat',
+ 'Address' => 'Adresa',
+ 'All' => 'V¹e',
+ 'Amount' => 'Èástka',
+ 'Bin' => 'Paleta',
+ 'Continue' => 'Pokraèování',
+ 'Customer' => 'Odbìratel',
+ 'Date' => 'Datum',
+ 'Delete' => 'Vymazat',
+ 'Description' => 'Popis',
+ 'From' => 'z',
+ 'Language' => 'Jazyk',
+ 'Link Accounts' => 'Vazby mezi úèty',
+ 'List Price' => 'Výrobní cena',
+ 'Notes' => 'Poznámky',
+ 'Number' => 'Èíslo',
+ 'Orphaned' => 'Neprodejné',
+ 'Qty' => 'Mno¾ství',
+ 'Save' => 'Ulo¾it',
+ 'Sell Price' => 'Prodejní cena',
+ 'Tax' => 'Daò',
+ 'To' => 'do',
+ 'Unit' => 'Jednotka',
+ 'Vendor' => 'Dodavatel',
+ 'Weight' => 'Váha',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'pokraèování' => 'continue',
+ 'vymazat' => 'delete',
+ 'ulo¾it' => 'save',
+};
+
+1;
+
diff --git a/locale/cz/pos b/locale/cz/pos
new file mode 100755
index 00000000..7bd8265e
--- /dev/null
+++ b/locale/cz/pos
@@ -0,0 +1,54 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Menu úèetnictví',
+ 'Amount' => 'Èástka',
+ 'Continue' => 'Pokraèování',
+ 'Credit Limit' => 'Úvìrový limit',
+ 'Currency' => 'Mìna',
+ 'Customer' => 'Odbìratel',
+ 'Delete' => 'Vymazat',
+ 'Description' => 'Popis',
+ 'Exchange Rate' => 'Mìnový kurz',
+ 'From' => 'z',
+ 'Language' => 'Jazyk',
+ 'Number' => 'Èíslo',
+ 'Open' => 'Otevøené',
+ 'Price' => 'Cena',
+ 'Qty' => 'Mno¾ství',
+ 'Record in' => 'Zaúètovat do',
+ 'Remaining' => 'Zbývá',
+ 'Screen' => 'Na obrazovku',
+ 'Source' => 'Zdroj',
+ 'Subtotal' => 'Mezisouèet',
+ 'Tax Included' => 'Cena vèetnì danì',
+ 'To' => 'do',
+ 'Total' => 'Celkem',
+ 'Unit' => 'Jednotka',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'pokraèování' => 'continue',
+ 'vymazat' => 'delete',
+};
+
+1;
+
diff --git a/locale/cz/ps b/locale/cz/ps
new file mode 100755
index 00000000..9b4c2156
--- /dev/null
+++ b/locale/cz/ps
@@ -0,0 +1,223 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'AP Aging' => 'Analýza splatnosti',
+ 'AP Transactions' => 'Faktury pøijaté',
+ 'AR Aging' => 'Analýza splatnosti',
+ 'AR Transactions' => 'Faktury vydané',
+ 'Account' => 'Úèet',
+ 'Account Number' => 'Èíslo úètu',
+ 'Accounting Menu' => 'Menu úèetnictví',
+ 'Accounts' => 'Úèty',
+ 'Add Purchase Order' => 'Nová objednávka (nákup)',
+ 'Add Sales Order' => 'Nová objednávka (pøíjem)',
+ 'Address' => 'Adresa',
+ 'Amount' => 'Èástka',
+ 'Apr' => 'Dub',
+ 'April' => 'Duben',
+ 'Are you sure you want to delete Invoice Number' => 'Opravdu chcete vymazat fakturu èíslo',
+ 'Are you sure you want to delete Transaction' => 'Opravdu chcete vymazat transakci?',
+ 'Attachment' => 'Pøílohy',
+ 'Aug' => 'Srp',
+ 'August' => 'Srpen',
+ 'Balance Sheet' => 'Rozvaha',
+ 'Bin' => 'Paleta',
+ 'Cannot post transaction for a closed period!' => 'Do uzavøeného období nelze úètovat!',
+ 'Closed' => 'Zaplaceno',
+ 'Compare to' => 'Porovnáno k',
+ 'Confirm!' => 'Podtvrïte!',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Pokraèování',
+ 'Copies' => 'Kopie',
+ 'Credit' => 'Dal',
+ 'Credit Limit' => 'Úvìrový limit',
+ 'Curr' => 'Mìna',
+ 'Currency' => 'Mìna',
+ 'Customer' => 'Odbìratel',
+ 'Date' => 'Datum',
+ 'Date Paid' => 'Zaplaceno',
+ 'Debit' => 'Má dáti',
+ 'Dec' => 'Pro',
+ 'December' => 'Prosinec',
+ 'Delete' => 'Vymazat',
+ 'Description' => 'Popis',
+ 'Due Date' => 'Datum splatnosti',
+ 'Due Date missing!' => 'Chybí datum splatnosti!',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Chybí E-mailová adresa!',
+ 'Exch' => 'Kurz',
+ 'Exchange Rate' => 'Mìnový kurz',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Úno',
+ 'February' => 'Únor',
+ 'From' => 'z',
+ 'GIFI' => 'Úètovací øetìzec',
+ 'Heading' => 'Nadpis',
+ 'ID' => 'ID',
+ 'In-line' => 'Vlo¾ené',
+ 'Include in Report' => 'Zahrnovat v sestavì',
+ 'Income Statement' => 'Výsledovka',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date' => 'Datum vystavení',
+ 'Invoice Date missing!' => 'Chybí datum vystavení!',
+ 'Invoice Number' => 'Èíslo faktury',
+ 'Invoice Number missing!' => 'Chybí èíslo faktury!',
+ 'Item not on file!' => 'Tato polo¾ka není v databázi!',
+ 'Jan' => 'Led',
+ 'January' => 'Leden',
+ 'Jul' => 'Èec',
+ 'July' => 'Èervenec',
+ 'Jun' => 'Èer',
+ 'June' => 'Èerven',
+ 'Language' => 'Jazyk',
+ 'Mar' => 'Bøe',
+ 'March' => 'Bøezen',
+ 'May' => 'Kvìten',
+ 'May ' => 'Kvì',
+ 'Message' => 'Zpráva',
+ 'N/A' => '---',
+ 'Notes' => 'Poznámky',
+ 'Nov' => 'Lis',
+ 'November' => 'Listopad',
+ 'Number' => 'Èíslo',
+ 'Number missing in Row' => 'Chybìjící èíslo na øádku',
+ 'Oct' => 'Øíj',
+ 'October' => 'Øíjen',
+ 'Open' => 'Otevøené',
+ 'Order' => 'Objednávka',
+ 'Order Date missing!' => 'Chybí datum objednávky!',
+ 'Order Number' => 'Objednávka èíslo',
+ 'Order Number missing!' => 'Chybí èíslo objednávky!',
+ 'Packing List' => 'Dodací list',
+ 'Packing List Date missing!' => 'Chybí datum dodacího listu',
+ 'Packing List Number missing!' => 'Chybí èíslo dodacího listu',
+ 'Paid' => 'Zaplaceno',
+ 'Part' => 'Zbo¾í',
+ 'Payment date missing!' => 'Chybí datum platby!',
+ 'Payments' => 'Platby',
+ 'Phone' => 'Telefon',
+ 'Price' => 'Cena',
+ 'Purchase Order' => 'Vystavená objednávka',
+ 'Qty' => 'Mno¾ství',
+ 'Record in' => 'Zaúètovat do',
+ 'Remaining' => 'Zbývá',
+ 'Report for' => 'Výkaz za',
+ 'Required by' => 'Po¾adováno do',
+ 'Sales Order' => 'Pøijatá objednávka',
+ 'Screen' => 'Na obrazovku',
+ 'Sep' => 'Záø',
+ 'September' => 'Záøí',
+ 'Service' => 'Slu¾ba',
+ 'Source' => 'Zdroj',
+ 'Standard' => 'Standardní',
+ 'Subject' => 'Pøedmìt',
+ 'Subtotal' => 'Mezisouèet',
+ 'Tax' => 'Daò',
+ 'Tax Included' => 'Cena vèetnì danì',
+ 'To' => 'do',
+ 'Total' => 'Celkem',
+ 'Trial Balance' => 'Obratová pøedvaha',
+ 'Unit' => 'Jednotka',
+ 'Vendor' => 'Dodavatel',
+ 'What type of item is this?' => 'O jaký typ polo¾ky se jedná?',
+ 'Yes' => 'Ano',
+ 'ea' => 'm.j.',
+ 'for Period' => 'za období',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'pokraèování' => 'continue',
+ 'vymazat' => 'delete',
+ 'e_mail' => 'e_mail',
+ 'pøijatá_objednávka' => 'sales_order',
+ 'ano' => 'yes',
+};
+
+1;
+
diff --git a/locale/cz/pw b/locale/cz/pw
new file mode 100755
index 00000000..680ba7b5
--- /dev/null
+++ b/locale/cz/pw
@@ -0,0 +1,14 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Continue' => 'Pokraèování',
+ 'Password' => 'Heslo',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'pokraèování' => 'continue',
+};
+
+1;
+
diff --git a/locale/cz/rc b/locale/cz/rc
new file mode 100755
index 00000000..413d5bcf
--- /dev/null
+++ b/locale/cz/rc
@@ -0,0 +1,57 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Account' => 'Úèet',
+ 'Accounting Menu' => 'Menu úèetnictví',
+ 'Apr' => 'Dub',
+ 'April' => 'Duben',
+ 'Aug' => 'Srp',
+ 'August' => 'Srpen',
+ 'Continue' => 'Pokraèování',
+ 'Credit' => 'Dal',
+ 'Date' => 'Datum',
+ 'Debit' => 'Má dáti',
+ 'Dec' => 'Pro',
+ 'December' => 'Prosinec',
+ 'Description' => 'Popis',
+ 'Feb' => 'Úno',
+ 'February' => 'Únor',
+ 'From' => 'z',
+ 'Jan' => 'Led',
+ 'January' => 'Leden',
+ 'Jul' => 'Èec',
+ 'July' => 'Èervenec',
+ 'Jun' => 'Èer',
+ 'June' => 'Èerven',
+ 'Mar' => 'Bøe',
+ 'March' => 'Bøezen',
+ 'May' => 'Kvìten',
+ 'May ' => 'Kvì',
+ 'Nov' => 'Lis',
+ 'November' => 'Listopad',
+ 'Oct' => 'Øíj',
+ 'October' => 'Øíjen',
+ 'Sep' => 'Záø',
+ 'September' => 'Záøí',
+ 'Source' => 'Zdroj',
+ 'To' => 'do',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'pokraèování' => 'continue',
+};
+
+1;
+
diff --git a/locale/cz/rp b/locale/cz/rp
new file mode 100755
index 00000000..28d85c4a
--- /dev/null
+++ b/locale/cz/rp
@@ -0,0 +1,130 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'AP Aging' => 'Analýza splatnosti',
+ 'AR Aging' => 'Analýza splatnosti',
+ 'Account' => 'Úèet',
+ 'Account Number' => 'Èíslo úètu',
+ 'Accounting Menu' => 'Menu úèetnictví',
+ 'Accounts' => 'Úèty',
+ 'Address' => 'Adresa',
+ 'Amount' => 'Èástka',
+ 'Apr' => 'Dub',
+ 'April' => 'Duben',
+ 'Attachment' => 'Pøílohy',
+ 'Aug' => 'Srp',
+ 'August' => 'Srpen',
+ 'Balance Sheet' => 'Rozvaha',
+ 'Compare to' => 'Porovnáno k',
+ 'Continue' => 'Pokraèování',
+ 'Copies' => 'Kopie',
+ 'Credit' => 'Dal',
+ 'Curr' => 'Mìna',
+ 'Customer' => 'Odbìratel',
+ 'Date' => 'Datum',
+ 'Debit' => 'Má dáti',
+ 'Dec' => 'Pro',
+ 'December' => 'Prosinec',
+ 'Description' => 'Popis',
+ 'Due Date' => 'Datum splatnosti',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Chybí E-mailová adresa!',
+ 'Feb' => 'Úno',
+ 'February' => 'Únor',
+ 'From' => 'z',
+ 'GIFI' => 'Úètovací øetìzec',
+ 'Heading' => 'Nadpis',
+ 'ID' => 'ID',
+ 'In-line' => 'Vlo¾ené',
+ 'Include in Report' => 'Zahrnovat v sestavì',
+ 'Income Statement' => 'Výsledovka',
+ 'Invoice' => 'Faktura',
+ 'Jan' => 'Led',
+ 'January' => 'Leden',
+ 'Jul' => 'Èec',
+ 'July' => 'Èervenec',
+ 'Jun' => 'Èer',
+ 'June' => 'Èerven',
+ 'Language' => 'Jazyk',
+ 'Mar' => 'Bøe',
+ 'March' => 'Bøezen',
+ 'May' => 'Kvìten',
+ 'May ' => 'Kvì',
+ 'Message' => 'Zpráva',
+ 'N/A' => '---',
+ 'Nov' => 'Lis',
+ 'November' => 'Listopad',
+ 'Number' => 'Èíslo',
+ 'Oct' => 'Øíj',
+ 'October' => 'Øíjen',
+ 'Order' => 'Objednávka',
+ 'Payments' => 'Platby',
+ 'Report for' => 'Výkaz za',
+ 'Screen' => 'Na obrazovku',
+ 'Sep' => 'Záø',
+ 'September' => 'Záøí',
+ 'Source' => 'Zdroj',
+ 'Standard' => 'Standardní',
+ 'Subject' => 'Pøedmìt',
+ 'Subtotal' => 'Mezisouèet',
+ 'Tax' => 'Daò',
+ 'To' => 'do',
+ 'Total' => 'Celkem',
+ 'Trial Balance' => 'Obratová pøedvaha',
+ 'Vendor' => 'Dodavatel',
+ 'for Period' => 'za období',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'pokraèování' => 'continue',
+ 'e_mail' => 'e_mail',
+};
+
+1;
+
diff --git a/locale/de/COPYING b/locale/de/COPYING
new file mode 100755
index 00000000..baf6033c
--- /dev/null
+++ b/locale/de/COPYING
@@ -0,0 +1,26 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (C) 2002
+#
+# German texts:
+#
+# Author: Thomas Bayen <tbayen@bayen.de>
+# Gunter Ohrner <G.Ohrner@post.rwth-aachen.de>
+# Jens Koerner <jens@kleinflintbek.net>
+# Doris Messmer <dolores@tschueckengueruep.de>
+# Wolfgang Foerster <wf@inventronik.de>
+# Michael Strecker <ms@microcom.eu>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+######################################################################
diff --git a/locale/de/LANGUAGE b/locale/de/LANGUAGE
new file mode 100755
index 00000000..fc0b9779
--- /dev/null
+++ b/locale/de/LANGUAGE
@@ -0,0 +1 @@
+German
diff --git a/locale/de/Num2text b/locale/de/Num2text
new file mode 100755
index 00000000..899570ec
--- /dev/null
+++ b/locale/de/Num2text
@@ -0,0 +1,185 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (C) 2002
+#
+# Author: Dieter Simader
+# Email: dsimader@sql-ledger.org
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+# Contributors:
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#======================================================================
+#
+# this is a variation of the Lingua package
+# written for check and receipt printing
+# it returns a properly formatted text string
+# for a number up to 10**12
+
+sub init {
+ my $self = shift;
+
+ %{ $self->{numbername} } =
+ (0 => 'Null',
+ 1 => 'ein',
+ 2 => 'zwei',
+ 3 => 'drei',
+ 4 => 'vier',
+ 5 => 'fünf',
+ 6 => 'sechs',
+ 7 => 'sieben',
+ 8 => 'acht',
+ 9 => 'neun',
+ 10 => 'zehn',
+ 11 => 'elf',
+ 12 => 'zwölf',
+ 13 => 'dreizehn',
+ 14 => 'vierzehn',
+ 15 => 'fünfzehn',
+ 16 => 'sechzehn',
+ 17 => 'siebzehn',
+ 18 => 'achtzehn',
+ 19 => 'neunzehn',
+ 20 => 'zwanzig',
+ 30 => 'dreissig',
+ 40 => 'vierzig',
+ 50 => 'fünfzig',
+ 60 => 'sechzig',
+ 70 => 'siebzig',
+ 80 => 'achtzig',
+ 90 => 'neunzig',
+ 10**2 => 'hundert',
+ 10**3 => 'tausend',
+ 10**6 => 'million',
+ 10**9 => 'milliarde',
+ 10**12 => 'billion'
+ );
+
+}
+
+
+sub num2text {
+ my ($self, $amount) = @_;
+
+ return $self->{numbername}{0} unless $amount;
+
+ my @textnumber = ();
+
+ # split amount into chunks of 3
+ my @num = reverse split //, abs($amount);
+ my @numblock = ();
+ my ($i, $appendn);
+ my @a = ();
+
+ while (@num) {
+ @a = ();
+ for (1 .. 3) {
+ push @a, shift @num;
+ }
+ push @numblock, join / /, reverse @a;
+ }
+
+ my $belowhundred = !$#numblock;
+
+ while (@numblock) {
+
+ $i = $#numblock;
+ @num = split //, $numblock[$i];
+ $appendn = "";
+
+ $numblock[$i] *= 1;
+
+ if ($numblock[$i] == 0) {
+ pop @numblock;
+ next;
+ }
+
+ if ($numblock[$i] > 99) {
+ # the one from hundreds
+ push @textnumber, $self->{numbername}{$num[0]};
+
+ # add hundred designation
+ push @textnumber, $self->{numbername}{10**2};
+
+ # reduce numblock
+ $numblock[$i] -= $num[0] * 100;
+ }
+
+ $appendn = 'en' if ($i == 2);
+ $appendn = 'n' if ($i > 2);
+
+ if ($numblock[$i] > 9) {
+ # tens
+ push @textnumber, $self->format_ten($numblock[$i], $belowhundred);
+ } elsif ($numblock[$i] > 1) {
+ # ones
+ push @textnumber, $self->{numbername}{$numblock[$i]};
+ } elsif ($numblock[$i] == 1) {
+ if ($i == 0) {
+ push @textnumber, $self->{numbername}{$numblock[$i]}.'s';
+ } else {
+ if ($i >= 2) {
+ push @textnumber, $self->{numbername}{$numblock[$i]}.'e';
+ } else {
+ push @textnumber, $self->{numbername}{$numblock[$i]};
+ }
+ }
+ $appendn = "";
+ }
+
+ # add thousand, million
+ if ($i) {
+ $amount = 10**($i * 3);
+ push @textnumber, $self->{numbername}{$amount}.$appendn;
+ }
+
+ pop @numblock;
+
+ }
+
+ join '', @textnumber;
+
+}
+
+
+sub format_ten {
+ my ($self, $amount, $belowhundred) = @_;
+
+ my $textnumber = "";
+ my @num = split //, $amount;
+
+ if ($amount > 20) {
+ if ($num[1] == 0) {
+ $textnumber = $self->{numbername}{$amount};
+ } else {
+ if ($belowhundred) {
+ $amount = $num[0] * 10;
+ $textnumber = $self->{numbername}{$num[1]}.'und'.$self->{numbername}{$amount};
+ } else {
+ $amount = $num[0] * 10;
+ $textnumber = $self->{numbername}{$amount}.$self->{numbername}{$num[1]};
+ $textnumber .= 's' if ($num[1] == 1);
+ }
+ }
+ } else {
+ $textnumber = $self->{numbername}{$amount};
+ }
+
+ $textnumber;
+
+}
+
+
+1;
+
diff --git a/locale/de/aa b/locale/de/aa
new file mode 100755
index 00000000..d1b8e6d4
--- /dev/null
+++ b/locale/de/aa
@@ -0,0 +1,161 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Offene Verbindlichkeiten',
+ 'AP Transaction' => 'Eingangsbuchung',
+ 'AP Transactions' => 'Eingangsbuchungen',
+ 'AR Outstanding' => 'Offene Forderungen.',
+ 'AR Transaction' => 'Ausgangsbuchung',
+ 'AR Transactions' => 'Ausgangsbuchungen',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Add AP Transaction' => 'Eingangsbuchung anlegen',
+ 'Add AR Transaction' => 'Ausgangsbuchung anlegen',
+ 'Amount' => 'Betrag',
+ 'Amount Due' => 'fälliger Betrag',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Transaction' => 'Buchung wirklich löschen?',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Cannot delete transaction!' => 'Buchung kann nicht gelöscht werden!',
+ 'Cannot post payment for a closed period!' => 'Es können keine Eingangsbelege für abgeschlossene Bücher gebucht werden!',
+ 'Cannot post transaction for a closed period!' => 'Für einen bereits abgeschlossenen Zeitraum kann keine Buchung angelegt werden!',
+ 'Cannot post transaction!' => 'Rechnung kann nicht gebucht werden!',
+ 'Check' => 'Scheck',
+ 'Closed' => 'Geschlossen',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Continue' => 'Weiter',
+ 'Credit' => 'Haben',
+ 'Credit Limit' => 'Kreditlimit',
+ 'Curr' => 'Währung',
+ 'Currency' => 'Währung',
+ 'Current' => 'Aktuell',
+ 'Customer' => 'Kunde',
+ 'Customer missing!' => 'Kundenname fehlt!',
+ 'Date' => 'Datum',
+ 'Date Paid' => 'Zahlungsdatum',
+ 'Debit' => 'Soll',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Delete' => 'Löschen',
+ 'Department' => 'Abteilung',
+ 'Description' => 'Beschreibung',
+ 'Detail' => 'Einzelheiten',
+ 'Due Date' => 'Fälligkeitsdatum',
+ 'Due Date missing!' => 'Fälligkeitsdatum fehlt!',
+ 'Edit AP Transaction' => 'Eingangsbuchung bearbeiten',
+ 'Edit AR Transaction' => 'Ausgangsbuchung bearbeiten',
+ 'Employee' => 'Arbeitnehmer',
+ 'Exch' => 'Wkurs.',
+ 'Exchange Rate' => 'Wechselkurs',
+ 'Exchange rate for payment missing!' => 'Wechselkurs für Bezahlung fehlt!',
+ 'Exchange rate missing!' => 'Wechselkurs fehlt!',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'From' => 'Von',
+ 'ID' => 'Nr.',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Invoice' => 'Rechnung',
+ 'Invoice Date' => 'Rechnungsdatum',
+ 'Invoice Date missing!' => 'Rechnungsdatum fehlt!',
+ 'Invoice Number' => 'Rechnungsnummer',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Manager' => 'Geschäftsführer',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Memo' => 'Vermerk',
+ 'Month' => 'Monat',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Bemerkungen',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Open' => 'Offen',
+ 'Order' => 'Bestellung',
+ 'Order Number' => 'Bestellnummer',
+ 'PO Number' => 'Unsere Reference',
+ 'Paid' => 'Bezahlt',
+ 'Payment date missing!' => 'Tag der Zahlung fehlt!',
+ 'Payments' => 'Eingangsbelege',
+ 'Period' => 'Zeitraum',
+ 'Post' => 'Buchen',
+ 'Post as new' => 'Neu buchen',
+ 'Print' => 'Drucken',
+ 'Print and Post' => 'Drucken und buchen',
+ 'Print and Post as new' => 'Drucken und als neu buchen',
+ 'Project' => 'Projekt',
+ 'Quarter' => 'Quartal',
+ 'Receipt' => 'Ausgangsbeleg',
+ 'Remaining' => 'Rest',
+ 'Sales Invoice.' => 'Ausgangsrechnung.',
+ 'Salesperson' => 'Verkäufer',
+ 'Schedule' => 'Buchungstermine',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Ship to' => 'Lieferung an',
+ 'Ship via' => 'Versandweg',
+ 'Shipping Point' => 'Zielort',
+ 'Source' => 'Beleg',
+ 'Subtotal' => 'Zwischensumme',
+ 'Summary' => 'Zusammenfassung',
+ 'Tax' => 'Steuer',
+ 'Tax Included' => 'Steuer im Preis enthalten',
+ 'Till' => 'Kasse',
+ 'To' => 'Bis',
+ 'Total' => 'Betrag',
+ 'Transaction' => 'Buchung',
+ 'Transaction deleted!' => 'Buchung gelöscht!',
+ 'Transaction posted!' => 'Buchung getätigt!',
+ 'Update' => 'Übernehmen',
+ 'Vendor' => 'Lieferant',
+ 'Vendor Invoice.' => 'Eingangsrechnung.',
+ 'Vendor missing!' => 'Lieferant fehlt!',
+ 'Year' => 'Jahr',
+ 'Yes' => 'Ja',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'eingangsbuchung' => 'ap_transaction',
+ 'ausgangsbuchung' => 'ar_transaction',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'buchen' => 'post',
+ 'neu_buchen' => 'post_as_new',
+ 'drucken' => 'print',
+ 'drucken_und_buchen' => 'print_and_post',
+ 'drucken_und_als_neu_buchen' => 'print_and_post_as_new',
+ 'ausgangsrechnung_' => 'sales_invoice_',
+ 'buchungstermine' => 'schedule',
+ 'lieferung_an' => 'ship_to',
+ 'Übernehmen' => 'update',
+ 'eingangsrechnung_' => 'vendor_invoice_',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/de/admin b/locale/de/admin
new file mode 100755
index 00000000..78fdb86c
--- /dev/null
+++ b/locale/de/admin
@@ -0,0 +1,144 @@
+$self{texts} = {
+ 'Access Control' => 'Zugriffkontrolle',
+ 'Accounting' => 'Buchhaltung',
+ 'Add User' => 'Benutzer anlegen',
+ 'Address' => 'Adresse',
+ 'Administration' => 'Verwaltung',
+ 'Administrator' => 'Verwalter',
+ 'All Datasets up to date!' => 'Alle Datenbanken sind auf aktuellem Stand.',
+ 'Cannot create Lock!' => 'System kann nicht gesperrt werden!',
+ 'Change Admin Password' => 'Adminpasswort ändern',
+ 'Change Password' => 'Passwort ändern',
+ 'Click on login name to edit!' => 'Zum Bearbeiten den Benutzernamen anklicken!',
+ 'Company' => 'Firma',
+ 'Confirm' => 'Bestätigen',
+ 'Connect to' => 'Als Vorlage verwenden',
+ 'Continue' => 'Weiter',
+ 'Create Chart of Accounts' => 'Kontenplan anlegen',
+ 'Create Dataset' => 'Datenbank anlegen',
+ 'DBA' => 'Datenbankadministrator',
+ 'DBI not installed!' => 'DBI ist nicht installiert!',
+ 'Database' => 'Datenbank',
+ 'Database Administration' => 'Datenbankverwaltung',
+ 'Database Driver not checked!' => 'Kein Datenbanktreiber ausgewählt!',
+ 'Database User missing!' => 'Datenbankbenutzer fehlt!',
+ 'Dataset' => 'Datenbank',
+ 'Dataset missing!' => 'Datenbank fehlt!',
+ 'Dataset updated!' => 'Datenbank aktualisiert!',
+ 'Date Format' => 'Datumsformat',
+ 'Delete' => 'Löschen',
+ 'Delete Dataset' => 'Datenbank löschen',
+ 'Directory' => 'Verzeichnis',
+ 'Driver' => 'Treiber',
+ 'Dropdown Limit' => 'Auswahllistenlimit',
+ 'E-mail' => 'eMail',
+ 'Edit User' => 'Benutzerdaten bearbeiten',
+ 'Existing Datasets' => 'Existierende Datenbanken',
+ 'Fax' => 'Fax',
+ 'Host' => 'Datenbank-Rechner',
+ 'Hostname missing!' => 'Rechnername fehlt!',
+ 'Language' => 'Sprache',
+ 'Lock System' => 'System sperren',
+ 'Lockfile created!' => 'gesichert!',
+ 'Lockfile removed!' => 'entsichert!',
+ 'Login' => 'Anmelden',
+ 'Login name missing!' => 'Benutzername fehlt!',
+ 'Logout' => 'Abmelden',
+ 'Manager' => 'Geschäftsführer',
+ 'Menu Width' => 'Menübreite',
+ 'Multibyte Encoding' => 'Multibyte Encoding',
+ 'Name' => 'Name',
+ 'New Templates' => 'Neue Vorlagen',
+ 'No Database Drivers available!' => 'Kein Datenbanktreiber verfügbar!',
+ 'No Dataset selected!' => 'Keine Datenbank ausgewählt!',
+ 'Nothing to delete!' => 'Es gibt nichts zu löschen!',
+ 'Number Format' => 'Zahlenformat',
+ 'Oracle Database Administration' => 'Oracle Datenbankverwaltung',
+ 'Password' => 'Passwort',
+ 'Password changed!' => 'Passwort geändert!',
+ 'Passwords do not match!' => 'Passwörter sind nicht gleich!',
+ 'Pg Database Administration' => 'Pg Datenbankverwaltung',
+ 'PgPP Database Administration' => 'PgPP Datenbankverwaltung',
+ 'Phone' => 'Tel.',
+ 'Port' => 'Port',
+ 'Port missing!' => 'Portangabe fehlt!',
+ 'Printer' => 'Drucker',
+ 'Save' => 'Speichern',
+ 'Session Timeout' => 'Maximale Sitzungsdauer',
+ 'Session expired!' => 'Sitzung abgelaufen!',
+ 'Setup Templates' => 'Vorlagen auswählen',
+ 'Signature' => 'Unterschrift',
+ 'Stylesheet' => 'Stilvorlage',
+ 'Supervisor' => 'Vorarbeiter',
+ 'Templates' => 'Vorlagen',
+ 'The following Datasets are not in use and can be deleted' => 'Die folgenden Datenbanken sind nicht in Verwendung und können gelöscht werden',
+ 'The following Datasets need to be updated' => 'Folgende Datenbanken müssen aktualisiert werden',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'In diesem Schritt werden bestehende Datenbanken gesucht. Es werden noch keine Änderungen vorgenommen!',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Um einer Gruppe einen neuen Benutzer hinzuzufügen, ändern und speichern Sie am einfachsten einen bestehenden Benutzernamen. Unter dem neuen Namen wird dann ein Benutzer mit denselben Einstellungen angelegt.',
+ 'Unlock System' => 'System entsperren',
+ 'Update Dataset' => 'Datenbank aktualisieren',
+ 'Use Templates' => 'Benutze Vorlagen',
+ 'User' => 'Benutzer',
+ 'User deleted!' => 'Benutzer gelöscht!',
+ 'User saved!' => 'Benutzer gespeichert!',
+ 'Version' => 'Version',
+ 'You are logged out' => 'Sie sind abgemeldet',
+ 'does not exist' => 'existiert nicht',
+ 'is already a member!' => 'ist bereits ein Mitglied!',
+ 'localhost' => 'lokaler Rechner',
+ 'locked!' => 'gesperrt!',
+ 'successfully created!' => 'wurde erfolgreich erstellt',
+ 'successfully deleted!' => 'wurde erfolgreich gelöscht',
+ 'website' => 'Webseite',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'benutzer_anlegen' => 'add_user',
+ 'adminpasswort_ändern' => 'change_admin_password',
+ 'passwort_ändern' => 'change_password',
+ 'weiter' => 'continue',
+ 'datenbank_anlegen' => 'create_dataset',
+ 'löschen' => 'delete',
+ 'datenbank_löschen' => 'delete_dataset',
+ 'system_sperren' => 'lock_system',
+ 'anmelden' => 'login',
+ 'abmelden' => 'logout',
+ 'oracle_datenbankverwaltung' => 'oracle_database_administration',
+ 'pg_datenbankverwaltung' => 'pg_database_administration',
+ 'pgpp_datenbankverwaltung' => 'pgpp_database_administration',
+ 'speichern' => 'save',
+ 'system_entsperren' => 'unlock_system',
+ 'datenbank_aktualisieren' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/de/all b/locale/de/all
new file mode 100755
index 00000000..53116729
--- /dev/null
+++ b/locale/de/all
@@ -0,0 +1,873 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+
+$self{texts} = {
+ 'A' => 'A',
+ 'AP' => 'Kreditoren',
+ 'AP Aging' => 'Offene Verbindl.',
+ 'AP Outstanding' => 'Offene Verbindlichkeiten',
+ 'AP Transaction' => 'Eingangsbuchung',
+ 'AP Transactions' => 'Eingangsbuchungen',
+ 'AR' => 'Debitoren',
+ 'AR Aging' => 'Forderungenspiegel',
+ 'AR Outstanding' => 'Offene Forderungen.',
+ 'AR Transaction' => 'Ausgangsbuchung',
+ 'AR Transactions' => 'Ausgangsbuchungen',
+ 'AR/AP' => 'OF/OV',
+ 'About' => 'Über',
+ 'Above' => 'Über',
+ 'Access Control' => 'Zugriffkontrolle',
+ 'Access Denied!' => 'Zugriff verweigert!',
+ 'Account' => 'Konto',
+ 'Account Number' => 'Kontonummer',
+ 'Account Number missing!' => 'Kontonummer fehlt!',
+ 'Account Type' => 'Kontoart',
+ 'Account Type missing!' => 'Kontoart fehlt!',
+ 'Account deleted!' => 'Konto gelöscht!',
+ 'Account does not exist!' => 'Konto existiert nicht!',
+ 'Account saved!' => 'Konto gespeichert!',
+ 'Accounting' => 'Buchhaltung',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Accounts' => 'Konten',
+ 'Accrual' => 'Laufend',
+ 'Activate Audit trail' => 'Revisionsnachfolge aktivieren',
+ 'Activate Audit trails' => 'Revisionsnachfolge aktivieren',
+ 'Active' => 'Aktiv',
+ 'Add' => 'Hinzufügen',
+ 'Add AP Transaction' => 'Eingangsbuchung anlegen',
+ 'Add AR Transaction' => 'Ausgangsbuchung anlegen',
+ 'Add Account' => 'Konto anlegen',
+ 'Add Assembly' => 'Erzeugnis anlegen',
+ 'Add Business' => 'Gewerbe anlegen',
+ 'Add Cash Transfer Transaction' => 'Zahlungseingang vermerken',
+ 'Add Customer' => 'Kunde anlegen',
+ 'Add Deduction' => 'Abzug festlegen',
+ 'Add Department' => 'Abteilung anlegen',
+ 'Add Employee' => 'Arbeitnehmer anlegen',
+ 'Add Exchange Rate' => 'Wechselkurs anlegen',
+ 'Add GIFI' => 'GIFI anlegen',
+ 'Add General Ledger Transaction' => 'Hinzufügen einer Buchung zum Hauptbuch',
+ 'Add Group' => 'Gruppe anlegen',
+ 'Add Job' => 'Fertigung anlegen',
+ 'Add Labor/Overhead' => 'Gestehungskosten',
+ 'Add Language' => 'Sprache anlegen',
+ 'Add POS Invoice' => 'Barverkaufsrechnung anlegen',
+ 'Add Part' => 'Ware anlegen',
+ 'Add Pricegroup' => 'Preisgruppe anlegen',
+ 'Add Project' => 'Projekt anlegen',
+ 'Add Purchase Order' => 'Einkaufsbeleg anlegen',
+ 'Add Quotation' => 'Angebot erstellen',
+ 'Add Request for Quotation' => 'Anfrage erstellen',
+ 'Add SIC' => 'SIC anlegen',
+ 'Add Sales Invoice' => 'Ausgangsrechnung anlegen',
+ 'Add Sales Order' => 'Verkaufsbeleg anlegen',
+ 'Add Service' => 'Dienstleistung anlegen',
+ 'Add Stores Card' => 'Lagerkarte anlegen',
+ 'Add Time Card' => 'Zeitkarte anlegen',
+ 'Add Transaction' => 'Buchung anlegen',
+ 'Add User' => 'Benutzer anlegen',
+ 'Add Vendor' => 'Lieferant anlegen',
+ 'Add Vendor Invoice' => 'Eingangsrechnung anlegen',
+ 'Add Warehouse' => 'Warenlager anlegen',
+ 'Address' => 'Adresse',
+ 'Administration' => 'Verwaltung',
+ 'Administrator' => 'Administrator',
+ 'After Deduction' => 'Nach Abzug',
+ 'All' => 'Alle',
+ 'All Accounts' => 'Alle Konten',
+ 'All Datasets up to date!' => 'Alle Datenbanken sind auf aktuellem Stand.',
+ 'All Items' => 'Alle Artikel',
+ 'Allowances' => 'Freibeträge',
+ 'Amount' => 'Betrag',
+ 'Amount Due' => 'Betrag fällig',
+ 'Amount missing!' => 'Betrag fehlt!',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Invoice Number' => 'Soll die Rechnung mit folgender Nummer wirklich gelöscht werden:',
+ 'Are you sure you want to delete Order Number' => 'Soll die Bestellung mit folgender Nummer wirklich gelöscht werden:',
+ 'Are you sure you want to delete Quotation Number' => 'Soll das Angebot mit folgender Nummer wirklich gelöscht werden:',
+ 'Are you sure you want to delete Transaction' => 'Buchung wirklich löschen?',
+ 'Are you sure you want to delete time card for' => 'Sind Sie sicher daß Sie diese Zeitkarte löschen wollen:',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Bitte bestätigen Sie, daß Sie die markierten Eintragungen löschen wollen',
+ 'Assemblies' => 'Erzeugnisse',
+ 'Assemblies restocked!' => 'Erzeugnisse eingelagert!',
+ 'Assembly' => 'Erzeugnis',
+ 'Assembly stocked!' => 'Erzeugnis eingelagert!',
+ 'Asset' => 'Aktiva/Mittelverwendung',
+ 'Attachment' => 'als Anhang',
+ 'Audit Control' => 'Bücherkontrolle',
+ 'Audit trail disabled' => 'Revisionsnachfolge deaktiviert',
+ 'Audit trail enabled' => 'Revisionsnachfolge aktiviert',
+ 'Audit trail removed up to' => 'Revisionsnachfolge gelöscht bis zu',
+ 'Audit trails disabled' => 'Revisionsnachfolgen deaktiviert',
+ 'Audit trails enabled' => 'Revisionsnachfolgen aktiviert',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Average Cost' => 'Durchschnittskosten',
+ 'Avg Cost' => 'Durchschn.',
+ 'BIC' => 'BIC',
+ 'BOM' => 'Stückliste',
+ 'Backup' => 'Datensicherung',
+ 'Backup sent to' => 'Eine Sicherungskopie wurde gesandt an',
+ 'Balance' => 'Bilanz',
+ 'Balance Sheet' => 'Bilanz',
+ 'Based on' => 'Begründung',
+ 'Bcc' => 'Bcc',
+ 'Before Deduction' => 'Vor Abzug',
+ 'Beginning Balance' => 'Anfangsbilanz',
+ 'Below' => 'Unter',
+ 'Billing Address' => 'Rechnungsanschrift',
+ 'Bin' => 'Stellage',
+ 'Bin List' => 'Lagerliste',
+ 'Bin Lists' => 'Lagerlisten',
+ 'Books are open' => 'Die Bücher sind geöffnet.',
+ 'Break' => 'Umbruch',
+ 'Business' => 'Gewerbe',
+ 'Business Number' => 'Firmennummer',
+ 'Business deleted!' => 'Gewerbe gelöscht!',
+ 'Business saved!' => 'Gewerbe gespeichert!',
+ 'C' => 'G',
+ 'COGS' => 'Umsatzkosten',
+ 'COGS account does not exist!' => 'Konto für Kosten besteht nicht!',
+ 'Cannot add time card for a completed job!' => 'Zeitkarte kann für eine fertige Fließbandarbeit nicht angelegt werden!',
+ 'Cannot change time card for a completed job!' => 'Zeitkarte kann für eine fertige Fließbandarbeit nicht geändert werden!',
+ 'Cannot create Assembly' => 'Erzeugniss kann nicht angelegt werden',
+ 'Cannot create Labor' => 'Fließbandarbeitszeit kann nicht angelegt werden',
+ 'Cannot create Lock!' => 'System kann nicht gesperrt werden!',
+ 'Cannot create Part' => 'Ware kann nicht angelegt werden',
+ 'Cannot create Service' => 'Dienstleistung kann nicht angelegt werden',
+ 'Cannot delete account!' => 'Konto kann nicht gelöscht werden!',
+ 'Cannot delete customer!' => 'Kunde kann nicht gelöscht werden!',
+ 'Cannot delete default account!' => 'Das Standard-Konto kann nicht gelöscht werden!',
+ 'Cannot delete invoice!' => 'Rechnung kann nicht gelöscht werden!',
+ 'Cannot delete item!' => 'Artikel kann nicht gelöscht werden!',
+ 'Cannot delete order!' => 'Bestellung kann nicht gelöscht werden!',
+ 'Cannot delete quotation!' => 'Angebot kann nicht gelöscht werden!',
+ 'Cannot delete time card!' => 'Zeitkarte kann nicht gelöscht werden!',
+ 'Cannot delete transaction!' => 'Buchung kann nicht gelöscht werden!',
+ 'Cannot delete vendor!' => 'Lieferant kann nicht gelöscht werden!',
+ 'Cannot post Payment!' => 'Bezahlung kann nicht verbucht werden!',
+ 'Cannot post Receipt!' => 'Einnahme kann nicht verbucht werden!',
+ 'Cannot post invoice for a closed period!' => 'Das Rechnungsdatum fällt in einen abgeschlossen Zeitraum!',
+ 'Cannot post invoice!' => 'Rechnung kann nicht gebucht werden!',
+ 'Cannot post payment for a closed period!' => 'Es können keine Zahlungen für abgeschlossene Bücher gebucht werden!',
+ 'Cannot post transaction for a closed period!' => 'Für einen bereits abgeschlossenen Zeitraum kann keine Buchung angelegt werden!',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => 'Sie können eine Buchung mit Aktiva und Passive nicht auf das selbe Konto buchen!',
+ 'Cannot post transaction!' => 'Rechnung kann nicht gebucht werden!',
+ 'Cannot remove files!' => 'Dateien können nicht gelöscht werden!',
+ 'Cannot save account!' => 'Konto kann nicht gespeichert werden!',
+ 'Cannot save defaults!' => 'Einstellungen konnten nicht gespeichert werden!',
+ 'Cannot save order!' => 'Bestellung kann nicht gespeichert werden!',
+ 'Cannot save preferences!' => 'Benutzereinstellungen können nicht gespeichert werden!',
+ 'Cannot save quotation!' => 'Angebot kann nicht gespeichert werden!',
+ 'Cannot save time card for a closed period!' => 'Zeitkarte kann für eine geschlossene Periode nicht gespeichert werden!',
+ 'Cannot set account for more than one of AR, AP or IC' => 'AR, AP und IC Konten können nicht auf andere Konten gleichzeitig eingestellt werden',
+ 'Cannot set multiple options for' => 'Mehr als eine Optionen nicht erlaubt für',
+ 'Cannot set multiple options for Item' => 'Mehr als eine Auswahl ist nicht erlaubt für Artikel',
+ 'Cannot stock Assembly!' => 'Erzeugnis kann nicht eingelagert werden!',
+ 'Cannot stock assemblies!' => 'Erzeugnisse können nicht eingelagert werden!',
+ 'Cash' => 'Bar',
+ 'Cc' => 'Cc',
+ 'Change' => 'Wechselgeld',
+ 'Change Admin Password' => 'Administratorpasswort ändern',
+ 'Change Password' => 'Passwort ändern',
+ 'Chargeable' => 'Anrechenbar',
+ 'Chart of Accounts' => 'Kontenübersicht',
+ 'Check' => 'Scheck',
+ 'Check Inventory' => 'Inventar prüfen',
+ 'Checks' => 'Schecks',
+ 'City' => 'Stadt',
+ 'Cleared' => 'Entlastet',
+ 'Click on login name to edit!' => 'Zum Bearbeiten den Benutzernamen anklicken!',
+ 'Clocked' => 'Ausgerechnet',
+ 'Close Books up to' => 'Die Bücher abschließen bis zum',
+ 'Closed' => 'Geschlossen',
+ 'Code' => 'Kodex',
+ 'Code missing!' => 'Kodex fehlt!',
+ 'Company' => 'Firma',
+ 'Company Name' => 'Firmenname',
+ 'Compare to' => 'Vergleichen mit',
+ 'Completed' => 'Fertig',
+ 'Components' => 'Einzelteile',
+ 'Confirm' => 'Bestätigen',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Connect to' => 'Als Vorlage verwenden',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Weiter',
+ 'Contra' => 'Gegenkonto',
+ 'Copies' => 'Kopien',
+ 'Copy to COA' => 'Auf COA kopieren',
+ 'Cost' => 'Kosten',
+ 'Cost Center' => 'Kostenverwaltung',
+ 'Could not save pricelist!' => 'Preisliste konnte nicht gespeichert werden!',
+ 'Could not save!' => 'Kann nicht gespeichert werden!',
+ 'Could not transfer Inventory!' => 'Inventar wurde nicht übertragen!',
+ 'Country' => 'Land',
+ 'Create Chart of Accounts' => 'Kontenplan anlegen',
+ 'Create Dataset' => 'Datenbank anlegen',
+ 'Credit' => 'Haben',
+ 'Credit Limit' => 'Kreditlimit',
+ 'Curr' => 'Währung',
+ 'Currency' => 'Währung',
+ 'Current' => 'Aktuell',
+ 'Current Earnings' => 'Aktuelles Einkommen',
+ 'Customer' => 'Kunde',
+ 'Customer History' => 'Alle Belege für Kunde',
+ 'Customer Number' => 'Kundennummer',
+ 'Customer deleted!' => 'Kunde gelöscht!',
+ 'Customer missing!' => 'Kundenname fehlt!',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Customer saved!' => 'Kunde gespeichert!',
+ 'Customers' => 'Kunden',
+ 'DBA' => 'Datenbankadministrator',
+ 'DBI not installed!' => 'DBI ist nicht installiert!',
+ 'DOB' => 'Geburtsdatum',
+ 'Database' => 'Datenbank',
+ 'Database Administration' => 'Datenbankverwaltung',
+ 'Database Driver not checked!' => 'Kein Datenbanktreiber ausgewählt!',
+ 'Database Host' => 'Datenbank-Rechner',
+ 'Database User missing!' => 'Datenbankbenutzer fehlt!',
+ 'Dataset' => 'Datenbank',
+ 'Dataset is newer than version!' => 'Datensatz ist jünger als installierte Version',
+ 'Dataset missing!' => 'Datenbank fehlt!',
+ 'Dataset updated!' => 'Datenbank erneuert!',
+ 'Date' => 'Datum',
+ 'Date Format' => 'Datumsformat',
+ 'Date Paid' => 'Zahlungsdatum',
+ 'Date Received' => 'Erhalten',
+ 'Date missing!' => 'Datum fehlt!',
+ 'Date received missing!' => 'Eingangsdatum fehlt!',
+ 'Date worked' => 'Tag gearbeitet',
+ 'Day' => 'Tag',
+ 'Day(s)' => 'Tag(e)',
+ 'Days' => 'Tage',
+ 'Debit' => 'Soll',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Decimalplaces' => 'Dezimalstellen',
+ 'Decrease' => 'Verminderung',
+ 'Deduct after' => 'Abzug nach',
+ 'Deduction deleted!' => 'Abzug gelöscht!',
+ 'Deduction saved!' => 'Abzug gespeichert!',
+ 'Deductions' => 'Abzüge',
+ 'Default Template' => 'Standardvorlage',
+ 'Defaults' => 'Einstellungen',
+ 'Defaults saved!' => 'Einstellungen gespeichert!',
+ 'Delete' => 'Löschen',
+ 'Delete Account' => 'Konto löschen',
+ 'Delete Dataset' => 'Datenbank löschen',
+ 'Delete Schedule' => 'Zeitplan löschen',
+ 'Deleting a language will also delete the templates for the language' => 'Wenn die Sprache gelöscht wird, werden auch die dazugehörigen Vorlagen gelöscht',
+ 'Delivery Date' => 'Lieferdatum',
+ 'Department' => 'Abteilung',
+ 'Department deleted!' => 'Abteilung gelöscht!',
+ 'Department saved!' => 'Abteilung gespeichert!',
+ 'Departments' => 'Abteilungen',
+ 'Deposit' => 'Gutschrift',
+ 'Description' => 'Beschreibung',
+ 'Description Translations' => 'Bescreibungsübersetzungen',
+ 'Description missing!' => 'Beschreibung fehlt!',
+ 'Detail' => 'Einzelheiten',
+ 'Difference' => 'Differenz',
+ 'Directory' => 'Verzeichnis',
+ 'Discount' => 'Rabatt',
+ 'Done' => 'Fertig',
+ 'Drawing' => 'Zeichnung',
+ 'Driver' => 'Treiber',
+ 'Dropdown Limit' => 'Auswahllistenlimit',
+ 'Due Date' => 'Fälligkeitsdatum',
+ 'Due Date missing!' => 'Fälligkeitsdatum fehlt!',
+ 'E-mail' => 'eMail',
+ 'E-mail Statement to' => 'Zahlungserinnerung per eMail an',
+ 'E-mail address missing!' => 'eMailadresse fehlt!',
+ 'E-mail message' => 'eMail ',
+ 'E-mailed' => 'eMail gesendet',
+ 'Edit' => 'Bearbeiten',
+ 'Edit AP Transaction' => 'Eingangsbuchung bearbeiten',
+ 'Edit AR Transaction' => 'Ausgangsbuchung bearbeiten',
+ 'Edit Account' => 'Kontodaten bearbeiten',
+ 'Edit Assembly' => 'Erzeugnis bearbeiten',
+ 'Edit Business' => 'Gewerbe bearbeiten',
+ 'Edit Cash Transfer Transaction' => 'Überweisung bearbeiten',
+ 'Edit Customer' => 'Kundendaten bearbeiten',
+ 'Edit Deduction' => 'Abzug bearbeiten',
+ 'Edit Department' => 'Abteilung bearbeiten',
+ 'Edit Description Translations' => 'Beschreibungsübersetzungen bearbeiten',
+ 'Edit Employee' => 'Arbeitnehmer bearbeiten',
+ 'Edit GIFI' => 'GIFI editieren',
+ 'Edit General Ledger Transaction' => 'Buchung im Hauptbuch bearbeiten',
+ 'Edit Group' => 'Gruppe bearbeiten',
+ 'Edit Labor/Overhead' => 'Gestehungskostenkosten bearbeiten',
+ 'Edit Language' => 'Sprache bearbeiten',
+ 'Edit POS Invoice' => 'Barverkaufsrechnung bearbeiten',
+ 'Edit Part' => 'Ware bearbeiten',
+ 'Edit Preferences for' => 'Benutzereinstellungen bearbeiten für',
+ 'Edit Pricegroup' => 'Preisgruppe bearbeiten',
+ 'Edit Project' => 'Projekt bearbeiten',
+ 'Edit Purchase Order' => 'Einkaufsbeleg bearbeiten',
+ 'Edit Quotation' => 'Angebot bearbeiten',
+ 'Edit Request for Quotation' => 'Anfrage bearbeiten',
+ 'Edit SIC' => 'SIC editieren',
+ 'Edit Sales Invoice' => 'Ausgangsrechnung bearbeiten',
+ 'Edit Sales Order' => 'Verkaufsbeleg bearbeiten',
+ 'Edit Service' => 'Dienstleistung bearbeiten',
+ 'Edit Template' => 'Vorlage bearbeiten',
+ 'Edit User' => 'Benutzerdaten bearbeiten',
+ 'Edit Vendor' => 'Lieferantendaten bearbeiten',
+ 'Edit Vendor Invoice' => 'Eingangsrechnung bearbeiten',
+ 'Edit Warehouse' => 'Warenlager bearbeiten',
+ 'Employee' => 'Arbeitnehmer',
+ 'Employee Name' => 'Name',
+ 'Employee Number' => 'Mitarbeiternummer',
+ 'Employee deleted!' => 'Arbeitnehmer gelöscht!',
+ 'Employee pays' => 'Arbeitnehmer bezahlt',
+ 'Employee saved!' => 'Arbeitnehmer gespeichert!',
+ 'Employees' => 'Arbeitnehmer',
+ 'Employer' => 'Arbeitgeber',
+ 'Employer pays' => 'Arbeitgeber bezahlt',
+ 'Enddate' => 'Enddatum',
+ 'Ends' => 'Endet am',
+ 'Enforce transaction reversal for all dates' => 'Kontraeintragungen für jeden Zeitraum aktualisieren',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Durch Doppelpunkte getrennte Währungskürzel mit maximal 3 Buchstaben aufführen; Ihre eigene Landeswährung zuerst (z.B. EUR:USD:CAD)',
+ 'Equity' => 'Passiva/Eigenkapital',
+ 'Every' => 'Jeden',
+ 'Excempt age <' => 'Befreiungsalter <',
+ 'Exch' => 'Wkurs.',
+ 'Exchange Rate' => 'Wechselkurs',
+ 'Exchange rate for payment missing!' => 'Wechselkurs für Bezahlung fehlt!',
+ 'Exchange rate missing!' => 'Wechselkurs fehlt!',
+ 'Exempt age <' => 'Befreiungsalter <',
+ 'Existing Datasets' => 'Existierende Datenbanken',
+ 'Expense' => 'Aufwand',
+ 'Expense account does not exist!' => 'Es existiert kein Konto für Ausgaben!',
+ 'Expense/Asset' => 'Aufwand/Anlagen',
+ 'Extended' => 'Summe',
+ 'FX' => 'FX',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'For' => 'für',
+ 'Foreign Exchange Gain' => 'Wechselkurserträge',
+ 'Foreign Exchange Loss' => 'Wechselkursaufwendungen',
+ 'Friday' => 'Freitag',
+ 'From' => 'Von',
+ 'From Warehouse' => 'Vom Lagerhaus',
+ 'GIFI' => 'GIFI',
+ 'GIFI deleted!' => 'GIFI gelöscht!',
+ 'GIFI missing!' => 'GIFI fehlt!',
+ 'GIFI saved!' => 'GIFI gespeichert!',
+ 'GL' => 'Hauptbuch',
+ 'GL Reference Number' => 'Hauptbuchreferenz',
+ 'GL Transaction' => 'Hauptbucheintragung',
+ 'General Ledger' => 'Hauptbuch',
+ 'Generate' => 'Erzeugen',
+ 'Generate Orders' => 'Aufträge erstellen',
+ 'Generate Purchase Orders' => 'Bestellungen erstellern',
+ 'Generate Purchase Orders from Sales Order' => 'Bestellungen von Auftragsbestätigungen erstellen',
+ 'Generate Sales Order' => 'Auftragsbestätigung erstellen',
+ 'Generate Sales Order from Purchase Orders' => 'Auftragsbestätigung von Bestellungen erstellen',
+ 'Goods & Services' => 'Waren & Dienstleistungen',
+ 'Group' => 'Warengruppe',
+ 'Group Items' => 'Artikel sortieren',
+ 'Group Translations' => 'Gruppenübersetzung',
+ 'Group by' => 'Gruppieren nach',
+ 'Group deleted!' => 'Gruppe gelöscht!',
+ 'Group missing!' => 'Gruppe fehlt!',
+ 'Group saved!' => 'Gruppe gespeichert!',
+ 'Groups' => 'Gruppen',
+ 'HR' => 'Personal',
+ 'HTML Templates' => 'HTML Vorlagen',
+ 'Heading' => 'Überschrift',
+ 'History' => 'Statistik',
+ 'Home Phone' => 'Tel. privat',
+ 'Host' => 'Datenbank-Rechner',
+ 'Hostname missing!' => 'Rechnername fehlt!',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'Nr.',
+ 'Image' => 'Bild',
+ 'In-line' => 'im Textkörper (Inline)',
+ 'Inactive' => 'Passiv',
+ 'Include Exchange Rate Difference' => 'Wechselkursunterschied aufnehmen',
+ 'Include Payment' => 'Bezahlung aufnehmen',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Include in drop-down menus' => 'In Aufklapp-Menü aufnehmen',
+ 'Income' => 'Einnahmen',
+ 'Income Statement' => 'G & V',
+ 'Income account does not exist!' => 'Es existiert kein Konto für Einnahmen!',
+ 'Incorrect Dataset version!' => 'Ungültigige Datensatzversion',
+ 'Increase' => 'Erhöhen',
+ 'Individual Items' => 'Einzelteile',
+ 'Internal Notes' => 'Interne Notizen',
+ 'Inventory' => 'Inventar',
+ 'Inventory account does not exist!' => 'Es existiert kein Konto für Inventar!',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Bevor dieses Erzeugnis als ungültig markiert werden kann, muß der Bestand Null sein!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Bevor diese Ware als ungültig markiert werden kann, muß der Bestand Null sein!',
+ 'Inventory saved!' => 'Inventar gespeichert!',
+ 'Inventory transferred!' => 'Inventar übertragen',
+ 'Invoice' => 'Rechnung',
+ 'Invoice Date' => 'Rechnungsdatum',
+ 'Invoice Date missing!' => 'Rechnungsdatum fehlt!',
+ 'Invoice Number' => 'Rechnungsnummer',
+ 'Invoice Number missing!' => 'Rechnungsnummer fehlt!',
+ 'Invoice deleted!' => 'Rechung gelöscht!',
+ 'Invoices' => 'Rechnungen',
+ 'Is this a summary account to record' => 'Summenkonto für',
+ 'Item' => 'Artikel',
+ 'Item already on pricelist!' => 'Artikel ist bereits in der Preisliste!',
+ 'Item deleted!' => 'Artikel gelöscht!',
+ 'Item not on file!' => 'Dieser Artikel ist nicht in der Datenbank!',
+ 'Items' => 'Artikel',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'LaTeX Templates' => 'LaTeX Vorlagen',
+ 'Labor/Overhead' => 'Gestehungskosten',
+ 'Language' => 'Sprache',
+ 'Language deleted!' => 'Sprache gelöscht!',
+ 'Language saved!' => 'Sprache gespeichert!',
+ 'Languages' => 'Sprachen',
+ 'Languages not defined!' => 'Keine Sprachen definiert!',
+ 'Last Cost' => 'Letzte Kosten',
+ 'Last Numbers & Default Accounts' => 'Laufende Zähler und Standardkonten',
+ 'Lead' => 'Anlaufzeit',
+ 'Leadtime' => 'Vorlaufzeit',
+ 'Leave host and port field empty unless you want to make a remote connection.' => 'Für lokale Verbindungen "Rechner" und "Port" freilassen.',
+ 'Liability' => 'Passiva/Mittelherkunft',
+ 'Licensed to' => 'Lizensiert für',
+ 'Line Total' => 'Zeilensumme',
+ 'Link' => 'Verknüpfungen',
+ 'Link Accounts' => 'Konten verknüpfen',
+ 'List' => 'Listenpreis',
+ 'List Accounts' => 'Kontenliste',
+ 'List Businesses' => 'Gewerbe aufzeigen',
+ 'List Departments' => 'Abteilungen aufzeigen',
+ 'List GIFI' => 'GIFI aufzeigen',
+ 'List Languages' => 'Sprachen aufzeigen',
+ 'List Price' => 'Preise aufzeigen',
+ 'List Projects' => 'Projekte aufzeigen',
+ 'List SIC' => 'SIC aufzeigen',
+ 'List Transactions' => 'Buchungsliste',
+ 'List Warehouses' => 'Warenlager aufzeigen',
+ 'Lock System' => 'System sperren',
+ 'Lockfile created!' => 'gesichert!',
+ 'Lockfile removed!' => 'entsichert!',
+ 'Login' => 'Anmelden',
+ 'Login name missing!' => 'Benutzername fehlt!',
+ 'Logout' => 'Abmelden',
+ 'Make' => 'Hersteller',
+ 'Manager' => 'Geschäftsführer',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'Marked entries printed!' => 'Markierte Einträge gedruckt! ',
+ 'Markup' => 'Aufschlag',
+ 'Maximum' => 'Höchstens',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Memo' => 'Vermerk',
+ 'Menu Width' => 'Menübreite',
+ 'Message' => 'Nachricht',
+ 'Method' => 'Methode',
+ 'Microfiche' => 'Mikrofilm',
+ 'Model' => 'Modell',
+ 'Monday' => 'Montag',
+ 'Month' => 'Monat',
+ 'Month(s)' => 'Monat(e)',
+ 'Months' => 'Monate',
+ 'Multibyte Encoding' => 'Multibyte Encoding',
+ 'N/A' => 'N.Z.',
+ 'Name' => 'Name',
+ 'Name missing!' => 'Name fehlt!',
+ 'New Templates' => 'Neue Vorlagen',
+ 'New Window' => 'Neues Fenster',
+ 'Next' => 'Nächste',
+ 'Next Date' => 'Nächstes Datum',
+ 'Next Number' => 'Nächste Nummer',
+ 'No' => 'Nein',
+ 'No Database Drivers available!' => 'Kein Datenbanktreiber verfügbar!',
+ 'No Dataset selected!' => 'Keine Datenbank ausgewählt!',
+ 'No History!' => 'Es sind keine älteren Eintragungen vorhanden!',
+ 'No email address for' => 'Keine eMailadresse für',
+ 'No.' => 'Nr.',
+ 'Non-taxable' => 'Steuerfrei',
+ 'Non-taxable Purchases' => 'Steuerfreie Einkäufe',
+ 'Non-taxable Sales' => 'Steuerfreie Verkäufe',
+ 'Non-tracking Items' => 'Nicht-lagernde Artikel',
+ 'Notes' => 'Bemerkungen',
+ 'Nothing entered!' => 'Es wurde nichts eingetragen!',
+ 'Nothing open!' => 'Nichts offen!',
+ 'Nothing selected!' => 'Es wurde nichts ausgewählt!',
+ 'Nothing to delete!' => 'Es konnte nichts gelöscht werden!',
+ 'Nothing to print!' => 'Es konnte nichts gedruckt werden!',
+ 'Nothing to transfer!' => 'Es gibt nichts zu übergeben!',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Nummer',
+ 'Number Format' => 'Zahlenformat',
+ 'Number missing in Row' => 'Nummer fehlt in Zeile',
+ 'O' => 'O',
+ 'OH' => 'LU',
+ 'Obsolete' => 'Ungültig',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'On Hand' => 'am Lager',
+ 'Onhand' => 'Auf Lager',
+ 'Open' => 'Offen',
+ 'Oracle Database Administration' => 'Oracle Datenbankverwaltung',
+ 'Order' => 'Bestellung',
+ 'Order Date' => 'Bestelldatum',
+ 'Order Date missing!' => 'Bestelldatum fehlt!',
+ 'Order Entry' => 'Bestellungen',
+ 'Order Number' => 'Bestellnummer',
+ 'Order Number missing!' => 'Bestellnummer fehlt!',
+ 'Order deleted!' => 'Bestellung gelöscht!',
+ 'Order generation failed!' => 'Auftragserstellung fehlgeschlagen!',
+ 'Order saved!' => 'Bestellung gespeichert!',
+ 'Orphaned' => 'nie benutzt',
+ 'Out of balance transaction!' => 'Soll und Haben sind nicht gleich!',
+ 'Out of balance!' => 'Summen stimmen nicht überein!',
+ 'Outstanding' => 'Offen',
+ 'PDF' => 'PDF',
+ 'PO' => 'EB',
+ 'PO Number' => 'Unsere Reference',
+ 'POS' => 'Barverkauf',
+ 'POS Invoice' => 'Barverkaufsrechnung',
+ 'Packing List' => 'Lieferschein',
+ 'Packing List Date missing!' => 'Datum für Lieferschein fehlt!',
+ 'Packing List Number missing!' => 'Lieferscheinnummer fehlt!',
+ 'Packing Lists' => 'Lieferscheine',
+ 'Paid' => 'Bezahlt',
+ 'Part' => 'Ware',
+ 'Partnumber' => 'Warennummer',
+ 'Parts' => 'Waren',
+ 'Parts Requirements' => 'Artikelanforderungen',
+ 'Password' => 'Passwort',
+ 'Password changed!' => 'Passwort geändert!',
+ 'Password does not match!' => 'Passworteingabe nicht gleich!',
+ 'Passwords do not match!' => 'Passwörter sind nicht gleich!',
+ 'Payables' => 'Verbindlichkeiten',
+ 'Payment' => 'Belastung',
+ 'Payment date missing!' => 'Tag der Zahlung fehlt!',
+ 'Payment posted!' => 'Zahlung gebucht!',
+ 'Payments' => 'Zahlungen',
+ 'Payments posted!' => 'Bezahlungen verbucht!',
+ 'Payroll Deduction' => 'Lohnabzug',
+ 'Period' => 'Zeitraum',
+ 'Pg Database Administration' => 'Pg Datenbankverwaltung',
+ 'PgPP Database Administration' => 'PgPP Datenbankverwaltung',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Lagerliste',
+ 'Pick Lists' => 'Lagerlisten',
+ 'Port' => 'Port',
+ 'Port missing!' => 'Portangabe fehlt!',
+ 'Pos' => 'No.',
+ 'Post' => 'Buchen',
+ 'Post as new' => 'Neu buchen',
+ 'Posted!' => 'Verbucht!',
+ 'Posting' => 'Bucht',
+ 'Posting failed!' => 'Buchung fehlgeschlagen!',
+ 'Postscript' => 'Postscript',
+ 'Preferences' => 'Benutzereinstellungen',
+ 'Preferences saved!' => 'Einstellungen gespeichert!',
+ 'Prepayment' => 'Anzahlung',
+ 'Price' => 'Preis',
+ 'Pricegroup' => 'Preisgruppe',
+ 'Pricegroup deleted!' => 'Preisgruppe gelöscht!',
+ 'Pricegroup missing!' => 'Preisgruppe fehlt!',
+ 'Pricegroup saved!' => 'Preisgruppe gespeichert!',
+ 'Pricegroups' => 'Preisgruppen',
+ 'Pricelist' => 'Preisliste',
+ 'Print' => 'Drucken',
+ 'Print and Post' => 'Drucken und buchen',
+ 'Print and Post as new' => 'Drucken und als neu buchen',
+ 'Print and Save' => 'Drucken und speichern',
+ 'Print and Save as new' => 'Drucken und neu speichern',
+ 'Printed' => 'Gedruckt',
+ 'Printer' => 'Drucker',
+ 'Printing' => 'Druckt',
+ 'Printing ... ' => 'Druckt ... ',
+ 'Process Transactions' => 'Buchungen erstellen',
+ 'Profit Center' => 'Gewinnverwaltung',
+ 'Project' => 'Projekt',
+ 'Project Description Translations' => 'Übersetzung für Projektbeschreibungen',
+ 'Project Number' => 'Projektnummer',
+ 'Project Number missing!' => 'Projektnummer fehlt!',
+ 'Project Transactions' => 'Projektbuchungen',
+ 'Project deleted!' => 'Projekt gelöscht!',
+ 'Project not on file!' => 'Dieses Projekt ist nicht in der Datenbank!',
+ 'Project saved!' => 'Projekt gespeichert!',
+ 'Projects' => 'Projekte',
+ 'Purchase Order' => 'Einkaufsbestellung',
+ 'Purchase Order Number' => 'Einkaufsbelegnummer',
+ 'Purchase Orders' => 'Einkaufsbestellungen',
+ 'Qty' => 'Menge',
+ 'Quantity exceeds available units to stock!' => 'Anzahl übersteigt vorhandene Menge!',
+ 'Quarter' => 'Quartal',
+ 'Queue' => 'Warteschlange',
+ 'Queued' => 'gespeichert',
+ 'Quotation' => 'Angebot',
+ 'Quotation ' => 'Verkaufsangebot',
+ 'Quotation Date' => 'Angebotsdatum',
+ 'Quotation Date missing!' => 'Angebotsdatum fehlt!',
+ 'Quotation Number' => 'Angebotsnummer',
+ 'Quotation Number missing!' => 'Angebotsnummer fehlt!',
+ 'Quotation deleted!' => 'Angebot gelöscht!',
+ 'Quotations' => 'Angebote',
+ 'R' => 'R',
+ 'RFQ' => 'Anfrage',
+ 'RFQ ' => 'Einkaufsanfrage ',
+ 'RFQ Number' => 'Einkaufsanfragenummer',
+ 'RFQs' => 'Anfragen',
+ 'ROP' => 'UAB',
+ 'Rate' => 'Prozentsatz',
+ 'Rate missing!' => 'Prozentsatz fehlt!',
+ 'Recd' => 'Erh.',
+ 'Receipt' => 'Ausgangsbeleg',
+ 'Receipt posted!' => 'Einnahme verbucht!',
+ 'Receipts' => 'Ausgangsbelege',
+ 'Receivables' => 'Forderungen',
+ 'Receive' => 'Einlagern',
+ 'Receive Merchandise' => 'Artikeln einlagern',
+ 'Reconciliation' => 'Kontenabgleich',
+ 'Reconciliation Report' => 'Kontenabgleichungsbericht',
+ 'Record in' => 'Buchen auf',
+ 'Recurring Transaction' => 'Wiederkehrende Buchung',
+ 'Recurring Transactions' => 'Wiederkehrende Buchungen',
+ 'Reference' => 'Referenz',
+ 'Remaining' => 'Rest',
+ 'Remove' => 'Entfernen',
+ 'Remove Audit trail up to' => 'Revisionsnachfolge löschen bis zu',
+ 'Remove Audit trails up to' => 'Revisionsnachfolge löschen bis zu',
+ 'Removed spoolfiles!' => 'Spoolfiles gelöscht!',
+ 'Removing marked entries from queue ...' => 'Entferne markierte Einträge ...',
+ 'Repeat' => 'Wiederholen',
+ 'Report for' => 'Bericht für',
+ 'Reports' => 'Berichte',
+ 'Req' => 'Ben.',
+ 'Request for Quotation' => 'Anfrage',
+ 'Request for Quotations' => 'Anfragen',
+ 'Required by' => 'Erforderlich am',
+ 'Retained Earnings' => 'Verbliebenes Einkommen',
+ 'Role' => 'Stellung',
+ 'S' => 'A',
+ 'SIC' => 'SIC',
+ 'SIC deleted!' => 'SIC gelöscht!',
+ 'SIC saved!' => 'SIC gespeichert!',
+ 'SKU' => 'Lagerhaltungseinheit',
+ 'SO' => 'VB',
+ 'SSN' => 'Sozialversicherungsnummer',
+ 'Sale' => 'Verkauf',
+ 'Sales' => 'Warenverkauf',
+ 'Sales Invoice' => 'Ausgangsrechnung',
+ 'Sales Invoice ' => 'Ausgangsrechnung ',
+ 'Sales Invoice.' => 'Ausgangsrechnung.',
+ 'Sales Invoice/AR Transaction Number' => 'Verkaufsrechnung/Buchungsnummer',
+ 'Sales Invoices' => 'Ausgangsrechnungen',
+ 'Sales Order' => 'Verkaufsbeleg',
+ 'Sales Order Number' => 'Verkaufsbelegnummer',
+ 'Sales Orders' => 'Verkaufsbelege',
+ 'Sales Quotation Number' => 'Verkaufsangebotnummer',
+ 'Salesperson' => 'Verkäufer',
+ 'Save' => 'Speichern',
+ 'Save Pricelist' => 'Preisliste speichern',
+ 'Save Schedule' => 'Zeitplan speichern',
+ 'Save as new' => 'als neu speichern',
+ 'Save to File' => 'Auf Festplatte speichern',
+ 'Saving' => 'Speichert',
+ 'Schedule' => 'Buchungstermine',
+ 'Scheduled' => 'geplant',
+ 'Screen' => 'Bildschirm',
+ 'Search' => 'Suchen',
+ 'Select' => 'Auswählen',
+ 'Select Vendor' => 'Lieferant auswählen',
+ 'Select a Printer!' => 'Drucker auswählen!',
+ 'Select a printer!' => 'Bitte wählen Sie einen Drucker',
+ 'Select all' => 'Alle auswählen',
+ 'Select from one of the items below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
+ 'Select items' => 'Bitte wählen Sie aus',
+ 'Select payment' => 'Zahlung auswählen',
+ 'Select postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Select txt, postscript or PDF!' => 'Txt, Postscript oder PDF auswählen!',
+ 'Sell' => 'Verkaufspreis',
+ 'Sell Price' => 'Verkaufspreis',
+ 'Send by E-Mail' => 'Per eMail schicken',
+ 'Sending' => 'Schickt',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Serial No.' => 'Seriennr.',
+ 'Serial Number' => 'Seriennummer',
+ 'Service' => 'Dienstleistung',
+ 'Services' => 'Leistungen',
+ 'Session Timeout' => 'Maximale Sitzungsdauer',
+ 'Session expired!' => 'Sitzung abgelaufen!',
+ 'Setup Templates' => 'Vorlagen auswählen',
+ 'Ship' => 'Versenden',
+ 'Ship Merchandise' => 'Waren verschicken',
+ 'Ship to' => 'Lieferung an',
+ 'Ship via' => 'Versandweg',
+ 'Shipping' => 'Versand',
+ 'Shipping Address' => 'Lieferanschrift',
+ 'Shipping Date' => 'Versandsdatum',
+ 'Shipping Date missing!' => 'Versandsdatum fehlt!',
+ 'Shipping Point' => 'Zielort',
+ 'Short' => 'Kurz',
+ 'Signature' => 'Unterschrift',
+ 'Sort by' => 'Sortieren nach',
+ 'Source' => 'Beleg',
+ 'Spoolfile' => 'Spoolfile',
+ 'Standard' => 'Standard',
+ 'Standard Industrial Codes' => 'Standard Industrie Norm',
+ 'Startdate' => 'Startdatum',
+ 'State' => 'Zustand',
+ 'State/Province' => 'Bundesland',
+ 'Statement' => 'Zahlungserinnerung',
+ 'Statement Balance' => 'Auszugsbilanz',
+ 'Statement sent to' => 'Zahlungserinnerung verschickt an',
+ 'Statements sent to printer!' => 'Zahlungserinnerungen gedruckt!',
+ 'Stock' => 'Einlagern',
+ 'Stock Assembly' => 'Erzeugnis einlagern',
+ 'Stylesheet' => 'Stilvorlage',
+ 'Sub-contract GIFI' => 'Unterlieferant GIFI',
+ 'Subject' => 'Betreff',
+ 'Subtotal' => 'Zwischensumme',
+ 'Summary' => 'Zusammenfassung',
+ 'Sunday' => 'Sonntag',
+ 'Supervisor' => 'Vorarbeiter',
+ 'System' => 'System',
+ 'System Defaults' => 'Systemeinstellungen',
+ 'Tax' => 'Steuer',
+ 'Tax Account' => 'Steuerkonto',
+ 'Tax Accounts' => 'Steuerkonten',
+ 'Tax Included' => 'Steuer im Preis enthalten',
+ 'Tax Number' => 'Steuernummer',
+ 'Tax Number / SSN' => 'Steuernummer / SSN',
+ 'Tax collected' => 'Umsatzsteuer',
+ 'Tax paid' => 'Vorsteuer',
+ 'Taxable' => 'Steuerpflichtig',
+ 'Taxes' => 'Steuern',
+ 'Template saved!' => 'Vorlage gespeichert!',
+ 'Templates' => 'Vorlagen',
+ 'Terms' => 'Zahlungsbedingungen',
+ 'Text' => 'Text',
+ 'Text Templates' => 'Textvorlagen',
+ 'The following Datasets are not in use and can be deleted' => 'Die folgenden Datenbanken sind nicht in Verwendung und können gelöscht werden',
+ 'The following Datasets need to be updated' => 'Folgende Datenbanken müssen aktualisiert werden',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'In diesem Schritt werden bestehende Datenbanken gesucht. Es werden noch keine Änderungen vorgenommen!',
+ 'Thursday' => 'Donnerstag',
+ 'Till' => 'Kasse',
+ 'Time Cards' => 'Zeitkarten',
+ 'Time In' => 'Eingestempelt',
+ 'Time Out' => 'Ausgestempelt',
+ 'Times' => 'mal',
+ 'To' => 'Bis',
+ 'To Warehouse' => 'Ins Warenlager',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Um einer Gruppe einen neuen Benutzer hinzuzufügen, ändern und speichern Sie am einfachsten einen bestehenden Benutzernamen. Unter dem neuen Namen wird dann ein Benutzer mit denselben Einstellungen angelegt.',
+ 'Top Level' => 'Hauptbeschreibung',
+ 'Total' => 'Betrag',
+ 'Tracking Items' => 'Lagernde Artikel',
+ 'Trade Discount' => 'Handelsrabatt',
+ 'Transaction' => 'Buchung',
+ 'Transaction Date missing!' => 'Buchungsdatum fehlt!',
+ 'Transaction deleted!' => 'Buchung gelöscht!',
+ 'Transaction posted!' => 'Buchung getätigt!',
+ 'Transaction reversal enforced for all dates' => 'Fehleintragungen müssen für jeden Zeitraum mit einer Kontraeintragung ausgebessert werden',
+ 'Transaction reversal enforced up to' => 'Fehleintragungen können bis zu dem angenebenen Zeitraum nur mit einer Kontraeintragung ausgebessert werden',
+ 'Transactions' => 'Buchungen',
+ 'Transfer' => 'Einlage',
+ 'Transfer Inventory' => 'Inventarübertrag',
+ 'Transfer from' => 'umlagern von',
+ 'Transfer to' => 'Übergabe an',
+ 'Translation' => 'Übersetzung',
+ 'Translation deleted!' => 'Übersetzung gelöscht!',
+ 'Translation not on file!' => 'Übersetzung nicht verfügbar',
+ 'Translations' => 'Übersetzungen',
+ 'Translations saved!' => 'Übersetzung gespeichert!',
+ 'Trial Balance' => 'Saldenbilanz',
+ 'Tuesday' => 'Dienstag',
+ 'Type of Business' => 'Art des Gewerbes',
+ 'Unit' => 'Einh.',
+ 'Unit of measure' => 'Maßinheit',
+ 'Unlock System' => 'System entsperren',
+ 'Update' => 'Erneuern',
+ 'Update Dataset' => 'Datenbank aktualisieren',
+ 'Updated' => 'Erneuert am',
+ 'Upgrading to Version' => 'Datensatz wird erneuert auf Version',
+ 'Use Templates' => 'Benutze Vorlagen',
+ 'User' => 'Benutzer',
+ 'User deleted!' => 'Benutzer gelöscht!',
+ 'User saved!' => 'Benutzer gespeichert!',
+ 'Valid until' => 'Gültig bis',
+ 'Vendor' => 'Lieferant',
+ 'Vendor History' => 'Alle Belege für Lieferant',
+ 'Vendor Invoice' => 'Eingangsrechnung',
+ 'Vendor Invoice ' => 'Eingangsrechnung ',
+ 'Vendor Invoice.' => 'Eingangsrechnung.',
+ 'Vendor Invoice/AP Transaction Number' => 'Eingangsrechnung/Buchungsnummer',
+ 'Vendor Invoices' => 'Eingangsrechnungen',
+ 'Vendor Number' => 'Lieferantennummer',
+ 'Vendor deleted!' => 'Lieferant gelöscht!',
+ 'Vendor missing!' => 'Lieferant fehlt!',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Vendor saved!' => 'Lieferant gespeichert!',
+ 'Vendors' => 'Lieferanten',
+ 'Version' => 'Version',
+ 'Warehouse' => 'Warenlager',
+ 'Warehouse deleted!' => 'Warenlager gelöscht!',
+ 'Warehouse saved!' => 'Warenlager gespeichert!',
+ 'Warehouses' => 'Warenlager',
+ 'Warning!' => 'Warnung!',
+ 'Wednesday' => 'Mittwoch',
+ 'Week' => 'Woche',
+ 'Week(s)' => 'Woche(n)',
+ 'Weeks' => 'Wochen',
+ 'Weight' => 'Gewicht',
+ 'Weight Unit' => 'Gewichtseinh.',
+ 'What type of item is this?' => 'Welche Artikelart ist das?',
+ 'Work Order' => 'Arbeitsblatt',
+ 'Work Orders' => 'Arbeitsblätter',
+ 'Work Phone' => 'Tel. Arbeit',
+ 'Year' => 'Jahr',
+ 'Year(s)' => 'Jahr(e)',
+ 'Yearend' => 'Jahresabschluss',
+ 'Yearend date missing!' => 'Datum für Jahresabschluss fehlt!',
+ 'Yearend posted!' => 'Jahresabschluss gespeichert!',
+ 'Yearend posting failed!' => 'Buchung Jahresabschluss missglückt!',
+ 'Years' => 'Jahre',
+ 'Yes' => 'Ja',
+ 'You are logged out' => 'Sie sind abgemeldet',
+ 'You are posting an existing transaction!' => 'Sie buchen eine existierende Buchung',
+ 'You are printing and posting an existing transaction!' => 'Sie drucken und buchen eine existierende Buchung',
+ 'You are printing and saving an existing order' => 'Sie drucken und speichern einen existierenden Auftrag',
+ 'You are printing and saving an existing quotation' => 'Sie drucken und speichern ein existierendes Angebot',
+ 'You are saving an existing order' => 'Sie speichern einen existierenden Auftrag',
+ 'You are saving an existing quotation' => 'Sie speichern eine vorhandenes Angebot',
+ 'You did not enter a name!' => 'Sie haben keinen Namen eingegeben!',
+ 'You must enter a host and port for local and remote connections!' => '"Rechner" und "Port" müssen für lokale und externe Verbindungen eingetragen werden!',
+ 'Zip/Postal Code' => 'Postleitzahl',
+ 'account cannot be set to any other type of account' => 'Dieses Konto kann nicht auf andere Typen eingestellt werden',
+ 'as at' => 'zum Stand',
+ 'days' => 'Tage',
+ 'does not exist' => 'existiert nicht',
+ 'done' => 'fertig',
+ 'ea' => 'pro',
+ 'failed' => 'fehlgeschlagen',
+ 'for' => 'für',
+ 'for Period' => 'für den Zeitraum',
+ 'is already a member!' => 'ist bereits ein Mitglied!',
+ 'localhost' => 'lokaler Rechner',
+ 'locked!' => 'gesperrt!',
+ 'posted!' => 'gebucht!',
+ 'sent' => 'verschickt',
+ 'successfully created!' => 'wurde erfolgreich erstellt',
+ 'successfully deleted!' => 'wurde erfolgreich gelöscht',
+ 'time(s)' => 'mal',
+ 'unexpected error!' => 'unbekannter Fehler!',
+ 'website' => 'Website',
+};
+
+1;
diff --git a/locale/de/am b/locale/de/am
new file mode 100755
index 00000000..d2605f96
--- /dev/null
+++ b/locale/de/am
@@ -0,0 +1,319 @@
+$self{texts} = {
+ 'AP' => 'Kreditoren',
+ 'AR' => 'Debitoren',
+ 'About' => 'Über',
+ 'Account' => 'Konto',
+ 'Account Number' => 'Kontonummer',
+ 'Account Number missing!' => 'Kontonummer fehlt!',
+ 'Account Type' => 'Kontoart',
+ 'Account Type missing!' => 'Kontoart fehlt!',
+ 'Account deleted!' => 'Konto gelöscht!',
+ 'Account does not exist!' => 'Konto existiert nicht!',
+ 'Account saved!' => 'Konto gespeichert!',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Accrual' => 'Laufend',
+ 'Activate Audit trail' => 'Revisionsnachfolge aktivieren',
+ 'Add Account' => 'Konto anlegen',
+ 'Add Business' => 'Gewerbe anlegen',
+ 'Add Department' => 'Abteilung anlegen',
+ 'Add GIFI' => 'GIFI anlegen',
+ 'Add Language' => 'Sprache anlegen',
+ 'Add SIC' => 'SIC anlegen',
+ 'Add Warehouse' => 'Warenlager anlegen',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Betrag',
+ 'Asset' => 'Aktiva/Mittelverwendung',
+ 'Audit Control' => 'Bücherkontrolle',
+ 'Audit trail disabled' => 'Revisionsnachfolge nicht aktiviert',
+ 'Audit trail enabled' => 'Revisionsnachfolge aktiviert',
+ 'Audit trail removed up to' => 'Revisionsnachfolge gelöscht bis zu',
+ 'Backup sent to' => 'Eine Sicherungskopie wurde gesandt an',
+ 'Bin List' => 'Lagerliste',
+ 'Books are open' => 'Die Bücher sind geöffnet.',
+ 'Business Number' => 'Firmennummer',
+ 'Business deleted!' => 'Gewerbe gelöscht!',
+ 'Business saved!' => 'Gewerbe gespeichert!',
+ 'COGS' => 'Umsatzkosten',
+ 'Cannot delete account!' => 'Konto kann nicht gelöscht werden!',
+ 'Cannot delete default account!' => 'Das Standard-Konto kann nicht gelöscht werden!',
+ 'Cannot save account!' => 'Konto kann nicht gespeichert werden!',
+ 'Cannot save defaults!' => 'Einstellungen konnten nicht gespeichert werden!',
+ 'Cannot save preferences!' => 'Benutzereinstellungen können nicht gespeichert werden!',
+ 'Cannot save taxes!' => 'Konnte Steuersatz nicht speichern!',
+ 'Cannot set account for more than one of AR, AP or IC' => 'AR, AP und IC Konten können nicht auf andere Konten gleichzeitig eingestellt werden',
+ 'Cannot set multiple options for' => 'Mehr als eine Optionen nicht erlaubt für : ',
+ 'Cash' => 'Bar',
+ 'Chart of Accounts' => 'Kontenübersicht',
+ 'Close Books up to' => 'Die Bücher abschließn bis zum',
+ 'Code' => 'Kodex',
+ 'Code missing!' => 'Kodex fehlt!',
+ 'Company' => 'Firma',
+ 'Confirm' => 'Wiederholung',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Continue' => 'Weiter',
+ 'Contra' => 'Gegenkonto',
+ 'Copy to COA' => 'Auf COA kopieren',
+ 'Cost Center' => 'Kostenverwaltung',
+ 'Credit' => 'Haben',
+ 'Credit Invoice' => 'Kreditorenrechnung',
+ 'Customer Number' => 'Kundennummer',
+ 'Database Host' => 'Datenbank-Rechner',
+ 'Dataset' => 'Datenbank',
+ 'Date Format' => 'Datumsformat',
+ 'Day' => 'Tag',
+ 'Days' => 'Tage',
+ 'Debit' => 'Soll',
+ 'Debit Invoice' => 'Debitorenrechnung',
+ 'Default Template' => 'Standardvorlage',
+ 'Defaults saved!' => 'Einstellungen gespeichert!',
+ 'Delete' => 'Löschen',
+ 'Delete Account' => 'Konto löschen',
+ 'Deleting a language will also delete the templates for the language' => 'Wenn die Sprache gelöscht wird, werden auch die dazugehörigen Vorlagen gelöscht',
+ 'Department deleted!' => 'Abteilung gelöscht!',
+ 'Department saved!' => 'Abteilung gespeichert!',
+ 'Departments' => 'Abteilungen',
+ 'Description' => 'Beschreibung',
+ 'Description missing!' => 'Beschreibung fehlt!',
+ 'Discount' => 'Rabatt',
+ 'Dropdown Limit' => 'Auswahllistenlimit',
+ 'E-mail' => 'eMail',
+ 'E-mail address missing!' => 'eMailadresse fehlt!',
+ 'Edit' => 'Bearbeiten',
+ 'Edit Account' => 'Kontodaten bearbeiten',
+ 'Edit Business' => 'Gewerbe bearbeiten',
+ 'Edit Department' => 'Abteilung bearbeiten',
+ 'Edit GIFI' => 'GIFI editieren',
+ 'Edit Language' => 'Sprache bearbeiten',
+ 'Edit Preferences for' => 'Benutzereinstellungen für',
+ 'Edit SIC' => 'SIC editieren',
+ 'Edit Template' => 'Vorlage bearbeiten',
+ 'Edit Warehouse' => 'Warenlager bearbeiten',
+ 'Employee Number' => 'Mitarbeiternummer',
+ 'Ends' => 'Abschluss',
+ 'Enforce transaction reversal for all dates' => 'Kontraeintragungen für jeden Zeitraum aktualisieren',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Durch Doppelpunkte getrennte Währungskürzel mit maximal 3 Buchstaben aufführen; Ihre eigene Landeswährung zuerst (z.B. EUR:USD:CAD)',
+ 'Equity' => 'Passiva/Eigenkapital',
+ 'Every' => 'Jeden',
+ 'Expense' => 'Aufwand',
+ 'Expense/Asset' => 'Aufwand/Anlagen',
+ 'Fax' => 'Fax',
+ 'Foreign Exchange Gain' => 'Wechselkurserträge',
+ 'Foreign Exchange Loss' => 'Wechselkursaufwendungen',
+ 'GIFI' => 'GIFI',
+ 'GIFI deleted!' => 'GIFI gelöscht!',
+ 'GIFI missing!' => 'GIFI fehlt!',
+ 'GIFI saved!' => 'GIFI gespeichert!',
+ 'GL' => 'Hauptbuch',
+ 'GL Reference Number' => 'Hauptbuchreferenz',
+ 'GL Transaction' => 'Hauptbucheintragung',
+ 'Heading' => 'Überschrift',
+ 'ID' => 'Nr.',
+ 'Include in drop-down menus' => 'In Aufklapp-Menü aufnehmen',
+ 'Income' => 'Einnahmen',
+ 'Inventory' => 'Inventar',
+ 'Invoice' => 'Rechnung',
+ 'Is this a summary account to record' => 'Summenkonto für',
+ 'Job/Project Number' => 'Job bzw. Projektnummer',
+ 'Language' => 'Sprache',
+ 'Language deleted!' => 'Sprache gelöscht!',
+ 'Language saved!' => 'Sprache gespeichert!',
+ 'Languages' => 'Sprachen',
+ 'Last Numbers & Default Accounts' => 'Laufende Zähler und Standardkonten',
+ 'Liability' => 'Passiva/Mittelherkunft',
+ 'Licensed to' => 'Lizensiert für',
+ 'Link' => 'Verknüpfungen',
+ 'Menu Width' => 'Menübreite',
+ 'Method' => 'Methode',
+ 'Month' => 'Monat',
+ 'Months' => 'Monate',
+ 'Name' => 'Name',
+ 'Next' => 'Nächste',
+ 'Next Number' => 'Nächste Nummer',
+ 'No' => 'Nein',
+ 'No email address for' => 'Keine eMailadresse für',
+ 'Non-tracking Items' => 'Nicht-lagernde Artikel',
+ 'Number' => 'Nummer',
+ 'Number Format' => 'Zahlenformat',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Packliste',
+ 'Part Number' => 'Artikelnummer',
+ 'Password' => 'Passwort',
+ 'Password does not match!' => 'Passworteingabe nicht gleich!',
+ 'Payables' => 'Verbindlichkeiten',
+ 'Payment' => 'Belastung',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Lagerliste',
+ 'Posting' => 'Bucht',
+ 'Postscript' => 'Postscript',
+ 'Preferences saved!' => 'Einstellungen gespeichert!',
+ 'Print' => 'Drucken',
+ 'Printer' => 'Drucker',
+ 'Printing' => 'Druckt',
+ 'Process Transactions' => 'Buchungen erstellen',
+ 'Profit Center' => 'Gewinnverwaltung',
+ 'Purchase Order' => 'Einkaufsbestellung',
+ 'Purchase Order Number' => 'Einkaufsbestellnummer',
+ 'Purchase Orders' => 'Einkaufsbestellungen',
+ 'RFQ Number' => 'Einkaufsanfragenummer',
+ 'Rate' => 'Prozentsatz',
+ 'Receivables' => 'Forderungen',
+ 'Recurring Transactions' => 'Wiederholende Buchungen',
+ 'Reference' => 'Referenz',
+ 'Remove Audit trail up to' => 'Revisionsnachfolge löschen bis zu',
+ 'Retained Earnings' => 'Verbliebenes Einkommen',
+ 'SIC deleted!' => 'SIC gelöscht!',
+ 'SIC saved!' => 'SIC gespeichert!',
+ 'Sales Invoice' => 'Ausgangsrechnung',
+ 'Sales Invoice/AR Transaction Number' => 'Ausgangsrechnungsnummer/Buchungsnummer',
+ 'Sales Order' => 'Auftragsbetätigung',
+ 'Sales Order Number' => 'Auftragsbestätigungsnummer',
+ 'Sales Orders' => 'Auftragsbestätigungen',
+ 'Sales Quotation Number' => 'Angebotsnummer',
+ 'Save' => 'Speichern',
+ 'Save as new' => 'als neu speichern',
+ 'Saving' => 'Speichert',
+ 'Sending' => 'Schickt',
+ 'Session Timeout' => 'Maximale Sitzungsdauer',
+ 'Signature' => 'Unterschrift',
+ 'Standard Industrial Codes' => 'Standard Industrie Norm',
+ 'Stylesheet' => 'Stilvorlage',
+ 'System Defaults' => 'Systemeinstellungen',
+ 'Tax' => 'Steuer',
+ 'Taxes' => 'Steuern',
+ 'Taxes saved!' => 'Steuern gespeichert!',
+ 'Template saved!' => 'Vorlage gespeichert!',
+ 'Times' => 'mal',
+ 'Tracking Items' => 'Lagernde Artikel',
+ 'Transaction' => 'Buchung',
+ 'Transaction reversal enforced for all dates' => 'Fehleintragungen müssen für jeden Zeitraum mit einer Kontraeintragung ausgebessert werden',
+ 'Transaction reversal enforced up to' => 'Fehleintragungen können bis zu dem angenebenen Zeitraum nur mit einer Kontraeintragung ausgebessert werden',
+ 'Type of Business' => 'Gewerbe',
+ 'Update' => 'Übernehmen',
+ 'User' => 'Benutzer',
+ 'Valid To' => 'Gültig bis',
+ 'Vendor Invoice' => 'Eingangsrechnung',
+ 'Vendor Invoice/AP Transaction Number' => 'Eingangsrechnung/Buchungsnummer',
+ 'Vendor Number' => 'Lieferantennummer',
+ 'Version' => 'Version',
+ 'Warehouse deleted!' => 'Warenlager gelöscht!',
+ 'Warehouse saved!' => 'Warenlager gespeichert!',
+ 'Warehouses' => 'Warenlager',
+ 'Week' => 'Woche',
+ 'Weeks' => 'Wochen',
+ 'Weight Unit' => 'Gewichtseinh.',
+ 'Work Order' => 'Arbeitsblatt',
+ 'Year' => 'Jahr',
+ 'Yearend' => 'Jahresabschluss',
+ 'Yearend date missing!' => 'Datum für Jahresabschluss fehlt!',
+ 'Yearend posted!' => 'Jahresabschluss gespeichert!',
+ 'Yearend posting failed!' => 'Buchung Jahresabschluss missglückt!',
+ 'Years' => 'Jahre',
+ 'Yes' => 'Ja',
+ 'account cannot be set to any other type of account' => 'Dieses Konto kann nicht auf andere Typen eingestellt werden',
+ 'done' => 'fertig',
+ 'failed' => 'fehlgeschlagen',
+ 'localhost' => 'lokaler Rechner',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'konto_anlegen' => 'add_account',
+ 'gewerbe_anlegen' => 'add_business',
+ 'abteilung_anlegen' => 'add_department',
+ 'sprache_anlegen' => 'add_language',
+ 'sic_anlegen' => 'add_sic',
+ 'warenlager_anlegen' => 'add_warehouse',
+ 'weiter' => 'continue',
+ 'auf_coa_kopieren' => 'copy_to_coa',
+ 'löschen' => 'delete',
+ 'bearbeiten' => 'edit',
+ 'kontodaten_bearbeiten' => 'edit_account',
+ 'buchungen_erstellen' => 'process_transactions',
+ 'speichern' => 'save',
+ 'als_neu_speichern' => 'save_as_new',
+ 'Übernehmen' => 'update',
+};
+
+1;
+
diff --git a/locale/de/ap b/locale/de/ap
new file mode 100755
index 00000000..e82e8c41
--- /dev/null
+++ b/locale/de/ap
@@ -0,0 +1,240 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Offene Verbindlichkeiten',
+ 'AP Transaction' => 'Eingangsbuchung',
+ 'AP Transactions' => 'Eingangsbuchungen',
+ 'AR Outstanding' => 'Offene Forderungen.',
+ 'AR Transaction' => 'Ausgangsbuchung',
+ 'AR Transactions' => 'Ausgangsbuchungen',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Add AP Transaction' => 'Eingangsbuchung anlegen',
+ 'Add AR Transaction' => 'Ausgangsbuchung anlegen',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Betrag',
+ 'Amount Due' => 'Betrag fällig',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Transaction' => 'Buchung wirklich löschen?',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'Buchung kann nicht gelöscht werden!',
+ 'Cannot post payment for a closed period!' => 'Es können keine Zahlungen für abgeschlossene Bücher gebucht werden!',
+ 'Cannot post transaction for a closed period!' => 'Für einen bereits abgeschlossenen Zeitraum kann keine Buchung angelegt werden!',
+ 'Cannot post transaction!' => 'Rechnung kann nicht gebucht werden!',
+ 'Cc' => 'Cc',
+ 'Check' => 'Scheck',
+ 'Closed' => 'Geschlossen',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Continue' => 'Weiter',
+ 'Credit' => 'Haben',
+ 'Credit Limit' => 'Kreditlimit',
+ 'Curr' => 'Währung',
+ 'Currency' => 'Währung',
+ 'Current' => 'Aktuell',
+ 'Customer' => 'Kunde',
+ 'Customer missing!' => 'Kundenname fehlt!',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Date Paid' => 'Zahlungsdatum',
+ 'Day(s)' => 'Tage',
+ 'Debit' => 'Soll',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Delete' => 'Löschen',
+ 'Delete Schedule' => 'Zeitplan löschen',
+ 'Department' => 'Abteilung',
+ 'Description' => 'Beschreibung',
+ 'Detail' => 'Einzelheiten',
+ 'Due Date' => 'Fälligkeitsdatum',
+ 'Due Date missing!' => 'Fälligkeitsdatum fehlt!',
+ 'E-mail' => 'eMail',
+ 'E-mail message' => 'E-mail ',
+ 'Edit AP Transaction' => 'Eingangsbuchung bearbeiten',
+ 'Edit AR Transaction' => 'Ausgangsbuchung bearbeiten',
+ 'Employee' => 'Arbeitnehmer',
+ 'Every' => 'Jeden',
+ 'Exch' => 'Wkurs.',
+ 'Exchange Rate' => 'Wechselkurs',
+ 'Exchange rate for payment missing!' => 'Wechselkurs für Bezahlung fehlt!',
+ 'Exchange rate missing!' => 'Wechselkurs fehlt!',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'For' => 'für',
+ 'From' => 'Von',
+ 'ID' => 'Nr.',
+ 'Include Payment' => 'Bezahlung reinnehme',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Invoice' => 'Rechnung',
+ 'Invoice Date' => 'Rechnungsdatum',
+ 'Invoice Date missing!' => 'Rechnungsdatum fehlt!',
+ 'Invoice Number' => 'Rechnungsnummer',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Manager' => 'Geschäftsführer',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Memo' => 'Vermerk',
+ 'Message' => 'Nachricht',
+ 'Month' => 'Monat',
+ 'Month(s)' => 'Monat(e)',
+ 'Next Date' => 'Nächstes Datum',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Bemerkungen',
+ 'Nothing to print!' => 'Es konnte nichts gedruckt werden!',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Nummer',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Open' => 'Offen',
+ 'Order' => 'Bestellung',
+ 'Order Number' => 'Bestellnummer',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Unsere Reference',
+ 'Paid' => 'Bezahlt',
+ 'Payment date missing!' => 'Tag der Zahlung fehlt!',
+ 'Payments' => 'Zahlungen',
+ 'Period' => 'Zeitraum',
+ 'Post' => 'Buchen',
+ 'Post as new' => 'Neu buchen',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Drucken',
+ 'Print and Post' => 'Drucken und Buchen',
+ 'Print and Post as new' => 'Drucken und als neu buchen',
+ 'Printed' => 'Gedruckt',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Dieses Projekt ist nicht in der Datenbank!',
+ 'Quarter' => 'Quartal',
+ 'Receipt' => 'Ausgangsbeleg',
+ 'Recurring Transaction' => 'Wiederholende Buchung',
+ 'Reference' => 'Referenz',
+ 'Remaining' => 'Rest',
+ 'Repeat' => 'Wiederholen',
+ 'Sales Invoice.' => 'Ausgangsrechnung.',
+ 'Salesperson' => 'Verkäufer',
+ 'Save Schedule' => 'Zeitplan speichern',
+ 'Schedule' => 'Buchungstermine',
+ 'Scheduled' => 'geplant',
+ 'Screen' => 'Bildschirm',
+ 'Select a Printer!' => 'Drucker auswählen!',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
+ 'Select payment' => 'Zahlung auswählen',
+ 'Select postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Ship to' => 'Lieferung an',
+ 'Ship via' => 'Versandweg',
+ 'Shipping Point' => 'Zielort',
+ 'Source' => 'Beleg',
+ 'Startdate' => 'Startdatum',
+ 'Subject' => 'Betreff',
+ 'Subtotal' => 'Zwischensumme',
+ 'Summary' => 'Zusammenfassung',
+ 'Tax' => 'Steuer',
+ 'Tax Included' => 'Steuer im Preis enthalten',
+ 'Till' => 'Kasse',
+ 'To' => 'Bis',
+ 'Total' => 'Betrag',
+ 'Transaction' => 'Buchung',
+ 'Transaction deleted!' => 'Buchung gelöscht!',
+ 'Transaction posted!' => 'Buchung getätigt!',
+ 'Update' => 'Übernehmen',
+ 'Vendor' => 'Lieferant',
+ 'Vendor Invoice.' => 'Eingangsrechnung.',
+ 'Vendor missing!' => 'Lieferant fehlt!',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Warning!' => 'Warnung!',
+ 'Week(s)' => 'Woche(n)',
+ 'Year' => 'Jahr',
+ 'Year(s)' => 'Jahr(e)',
+ 'Yes' => 'Ja',
+ 'You are posting an existing transaction!' => 'Sie buchen eine existierende Buchung',
+ 'You are printing and posting an existing transaction!' => 'Sie drucken und buchen eine existierende Buchung',
+ 'You are printing and saving an existing order' => 'Sie drucken und speichern einen existierenden Auftrag',
+ 'You are printing and saving an existing quotation' => 'Sie drucken und speichern ein existierendes Angebot',
+ 'You are saving an existing order' => 'Sie speichern einen existierenden Auftrag',
+ 'You are saving an existing quotation' => 'Sie speichern eine vorhandenes Angebot',
+ 'for' => 'für',
+ 'sent' => 'verschickt',
+ 'time(s)' => 'mal',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'eingangsbuchung' => 'ap_transaction',
+ 'ausgangsbuchung' => 'ar_transaction',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'zeitplan_löschen' => 'delete_schedule',
+ 'buchen' => 'post',
+ 'neu_buchen' => 'post_as_new',
+ 'drucken' => 'print',
+ 'drucken_und_buchen' => 'print_and_post',
+ 'drucken_und_als_neu_buchen' => 'print_and_post_as_new',
+ 'ausgangsrechnung_' => 'sales_invoice_',
+ 'zeitplan_speichern' => 'save_schedule',
+ 'buchungstermine' => 'schedule',
+ 'lieferung_an' => 'ship_to',
+ 'Übernehmen' => 'update',
+ 'eingangsrechnung_' => 'vendor_invoice_',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/de/ar b/locale/de/ar
new file mode 100755
index 00000000..f7cb3633
--- /dev/null
+++ b/locale/de/ar
@@ -0,0 +1,240 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Offene Verbindlichkeiten',
+ 'AP Transaction' => 'Eingangsbuchung',
+ 'AP Transactions' => 'Eingangsbuchungen',
+ 'AR Outstanding' => 'Offene Forderungen.',
+ 'AR Transaction' => 'Ausgangsbuchung',
+ 'AR Transactions' => 'Ausgangsbuchungen',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Add AP Transaction' => 'Eingangsbuchung anlegen',
+ 'Add AR Transaction' => 'Ausgangsbuchung anlegen',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Betrag',
+ 'Amount Due' => 'Betrag fällig',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Transaction' => 'Buchung wirklich löschen?',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'Buchung kann nicht gelöscht werden!',
+ 'Cannot post payment for a closed period!' => 'Es können keine Zahlungen für abgeschlossene Bücher gebucht werden!',
+ 'Cannot post transaction for a closed period!' => 'Für einen bereits abgeschlossenen Zeitraum kann keine Buchung angelegt werden!',
+ 'Cannot post transaction!' => 'Rechnung kann nicht gebucht werden!',
+ 'Cc' => 'Cc',
+ 'Check' => 'Scheck',
+ 'Closed' => 'Geschlossen',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Continue' => 'Weiter',
+ 'Credit' => 'Haben',
+ 'Credit Limit' => 'Kreditlimit',
+ 'Curr' => 'Währung',
+ 'Currency' => 'Währung',
+ 'Current' => 'Aktuell',
+ 'Customer' => 'Kunde',
+ 'Customer missing!' => 'Kundenname fehlt!',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Date Paid' => 'Zahlungsdatum',
+ 'Day(s)' => 'Tage',
+ 'Debit' => 'Soll',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Delete' => 'Löschen',
+ 'Delete Schedule' => 'Zeitplan löschen',
+ 'Department' => 'Abteilung',
+ 'Description' => 'Beschreibung',
+ 'Detail' => 'Einzelheiten',
+ 'Due Date' => 'Zahlungsziel',
+ 'Due Date missing!' => 'Zahlungsziel fehlt!',
+ 'E-mail' => 'eMail',
+ 'E-mail message' => 'E-mail ',
+ 'Edit AP Transaction' => 'Eingangsbuchung bearbeiten',
+ 'Edit AR Transaction' => 'Ausgangsbuchung bearbeiten',
+ 'Employee' => 'Arbeitnehmer',
+ 'Every' => 'Jeden',
+ 'Exch' => 'Wkurs.',
+ 'Exchange Rate' => 'Wechselkurs',
+ 'Exchange rate for payment missing!' => 'Wechselkurs für Bezahlung fehlt!',
+ 'Exchange rate missing!' => 'Wechselkurs fehlt!',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'For' => 'für',
+ 'From' => 'Von',
+ 'ID' => 'Nr.',
+ 'Include Payment' => 'Bezahlung reinnehme',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Invoice' => 'Rechnung',
+ 'Invoice Date' => 'Rechnungsdatum',
+ 'Invoice Date missing!' => 'Rechnungsdatum fehlt!',
+ 'Invoice Number' => 'Rechnungsnummer',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Manager' => 'Geschäftsführer',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Memo' => 'Vermerk',
+ 'Message' => 'Nachricht',
+ 'Month' => 'Monat',
+ 'Month(s)' => 'Monat(e)',
+ 'Next Date' => 'Nächstes Datum',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Bemerkungen',
+ 'Nothing to print!' => 'Es konnte nichts gedruckt werden!',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Nummer',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Open' => 'Offen',
+ 'Order' => 'Bestellung',
+ 'Order Number' => 'Bestellnummer',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Unsere Reference',
+ 'Paid' => 'Bezahlt',
+ 'Payment date missing!' => 'Tag der Zahlung fehlt!',
+ 'Payments' => 'Zahlungen',
+ 'Period' => 'Zeitraum',
+ 'Post' => 'Buchen',
+ 'Post as new' => 'Neu buchen',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Drucken',
+ 'Print and Post' => 'Drucken und Buchen',
+ 'Print and Post as new' => 'Drucken und als neu buchen',
+ 'Printed' => 'Gedruckt',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Dieses Projekt ist nicht in der Datenbank!',
+ 'Quarter' => 'Quartal',
+ 'Receipt' => 'Ausgangsbeleg',
+ 'Recurring Transaction' => 'Wiederholende Buchung',
+ 'Reference' => 'Referenz',
+ 'Remaining' => 'Rest',
+ 'Repeat' => 'Wiederholen',
+ 'Sales Invoice.' => 'Ausgangsrechnung.',
+ 'Salesperson' => 'Verkäufer',
+ 'Save Schedule' => 'Zeitplan speichern',
+ 'Schedule' => 'Buchungstermine',
+ 'Scheduled' => 'geplant',
+ 'Screen' => 'Bildschirm',
+ 'Select a Printer!' => 'Drucker auswählen!',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
+ 'Select payment' => 'Zahlung auswählen',
+ 'Select postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Ship to' => 'Lieferung an',
+ 'Ship via' => 'Versandweg',
+ 'Shipping Point' => 'Zielort',
+ 'Source' => 'Beleg',
+ 'Startdate' => 'Startdatum',
+ 'Subject' => 'Betreff',
+ 'Subtotal' => 'Zwischensumme',
+ 'Summary' => 'Zusammenfassung',
+ 'Tax' => 'Steuer',
+ 'Tax Included' => 'Steuer im Preis enthalten',
+ 'Till' => 'Kasse',
+ 'To' => 'Bis',
+ 'Total' => 'Betrag',
+ 'Transaction' => 'Buchung',
+ 'Transaction deleted!' => 'Buchung gelöscht!',
+ 'Transaction posted!' => 'Buchung getätigt!',
+ 'Update' => 'Übernehmen',
+ 'Vendor' => 'Lieferant',
+ 'Vendor Invoice.' => 'Eingangsrechnung.',
+ 'Vendor missing!' => 'Lieferant fehlt!',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Warning!' => 'Warnung!',
+ 'Week(s)' => 'Woche(n)',
+ 'Year' => 'Jahr',
+ 'Year(s)' => 'Jahr(e)',
+ 'Yes' => 'Ja',
+ 'You are posting an existing transaction!' => 'Sie buchen eine existierende Buchung',
+ 'You are printing and posting an existing transaction!' => 'Sie drucken und buchen eine existierende Buchung',
+ 'You are printing and saving an existing order' => 'Sie drucken und speichern einen existierenden Auftrag',
+ 'You are printing and saving an existing quotation' => 'Sie drucken und speichern ein existierendes Angebot',
+ 'You are saving an existing order' => 'Sie speichern einen existierenden Auftrag',
+ 'You are saving an existing quotation' => 'Sie speichern eine vorhandenes Angebot',
+ 'for' => 'für',
+ 'sent' => 'verschickt',
+ 'time(s)' => 'mal',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'eingangsbuchung' => 'ap_transaction',
+ 'ausgangsbuchung' => 'ar_transaction',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'zeitplan_löschen' => 'delete_schedule',
+ 'buchen' => 'post',
+ 'neu_buchen' => 'post_as_new',
+ 'drucken' => 'print',
+ 'drucken_und_buchen' => 'print_and_post',
+ 'drucken_und_als_neu_buchen' => 'print_and_post_as_new',
+ 'ausgangsrechnung_' => 'sales_invoice_',
+ 'zeitplan_speichern' => 'save_schedule',
+ 'buchungstermine' => 'schedule',
+ 'lieferung_an' => 'ship_to',
+ 'Übernehmen' => 'update',
+ 'eingangsrechnung_' => 'vendor_invoice_',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/de/arap b/locale/de/arap
new file mode 100755
index 00000000..a1fcc272
--- /dev/null
+++ b/locale/de/arap
@@ -0,0 +1,74 @@
+$self{texts} = {
+ 'Address' => 'Adresse',
+ 'Bcc' => 'Bcc',
+ 'Cc' => 'Cc',
+ 'Continue' => 'Weiter',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Day(s)' => 'Tage',
+ 'Delete Schedule' => 'Zeitplan löschen',
+ 'Description' => 'Beschreibung',
+ 'E-mail' => 'eMail',
+ 'E-mail message' => 'eMail ',
+ 'Every' => 'Jeden',
+ 'For' => 'für',
+ 'Include Payment' => 'Bezahlung aufnehmen',
+ 'Message' => 'Nachricht',
+ 'Month(s)' => 'Monat(e)',
+ 'Next Date' => 'Nächstes Datum',
+ 'Number' => 'Nummer',
+ 'Print' => 'Drucken',
+ 'Project not on file!' => 'Dieses Projekt ist nicht in der Datenbank!',
+ 'Recurring Transaction' => 'Wiederholende Buchung',
+ 'Reference' => 'Referenz',
+ 'Repeat' => 'Wiederholen',
+ 'Save Schedule' => 'Zeitplan speichern',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
+ 'Startdate' => 'Startdatum',
+ 'Subject' => 'Betreff',
+ 'To' => 'Bis',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Warning!' => 'Warnung!',
+ 'Week(s)' => 'Woche(n)',
+ 'Year(s)' => 'Jahr(e)',
+ 'You are posting an existing transaction!' => 'Sie buchen eine existierende Buchung',
+ 'You are printing and posting an existing transaction!' => 'Sie drucken und buchen eine existierende Buchung',
+ 'You are printing and saving an existing order' => 'Sie drucken und speichern einen existierenden Auftrag',
+ 'You are printing and saving an existing quotation' => 'Sie drucken und speichern ein existierendes Angebot',
+ 'You are saving an existing order' => 'Sie speichern einen existierenden Auftrag',
+ 'You are saving an existing quotation' => 'Sie speichern eine vorhandenes Angebot',
+ 'for' => 'für',
+ 'sent' => 'verschickt',
+ 'time(s)' => 'mal',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'weiter' => 'continue',
+ 'zeitplan_löschen' => 'delete_schedule',
+ 'zeitplan_speichern' => 'save_schedule',
+};
+
+1;
+
diff --git a/locale/de/arapprn b/locale/de/arapprn
new file mode 100755
index 00000000..7005ab12
--- /dev/null
+++ b/locale/de/arapprn
@@ -0,0 +1,34 @@
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Amount' => 'Betrag',
+ 'Continue' => 'Weiter',
+ 'Date' => 'Datum',
+ 'Memo' => 'Vermerk',
+ 'Nothing to print!' => 'Es konnte nichts gedruckt werden!',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'Postscript',
+ 'Printed' => 'Gedruckt',
+ 'Scheduled' => 'geplant',
+ 'Screen' => 'Bildschirm',
+ 'Select a Printer!' => 'Drucker auswählen!',
+ 'Select payment' => 'Zahlung auswählen',
+ 'Select postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Source' => 'Beleg',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'weiter' => 'continue',
+};
+
+1;
+
diff --git a/locale/de/bp b/locale/de/bp
new file mode 100755
index 00000000..9e033628
--- /dev/null
+++ b/locale/de/bp
@@ -0,0 +1,69 @@
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Bitte bestätigen Sie ob Sie die markierten Eintragungen löschen wollen',
+ 'Bin Lists' => 'Lagerlisten',
+ 'Cannot remove files!' => 'Löschen der Dateien hat fehlgeschlagen!',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Continue' => 'Weiter',
+ 'Current' => 'Aktuell',
+ 'Customer' => 'Kunde',
+ 'Date' => 'Datum',
+ 'Employee' => 'Arbeitnehmer',
+ 'From' => 'Von',
+ 'ID' => 'Nr.',
+ 'Invoice' => 'Rechnung',
+ 'Invoice Number' => 'Rechnungsnummer',
+ 'Marked entries printed!' => 'Markierte Einträge gedruckt! ',
+ 'Month' => 'Monat',
+ 'Order' => 'Bestellung',
+ 'Order Number' => 'Bestellnummer',
+ 'Packing Lists' => 'Lieferscheine',
+ 'Period' => 'Zeitraum',
+ 'Pick Lists' => 'Lagerlisten',
+ 'Print' => 'Drucken',
+ 'Printing' => 'Drucken',
+ 'Purchase Orders' => 'Einkaufsbestellungen',
+ 'Quarter' => 'Quartal',
+ 'Quotation' => 'Angebot',
+ 'Quotation Number' => 'Angebotsnummer',
+ 'Quotations' => 'Angebote',
+ 'RFQs' => 'Anfragen',
+ 'Remove' => 'Entfernen',
+ 'Removed spoolfiles!' => 'Spoolfiles gelöscht!',
+ 'Removing marked entries from queue ...' => 'Markierte Einträge entfernt ...',
+ 'Sales Invoices' => 'Ausgangsrechnungen',
+ 'Sales Orders' => 'Auftragsbestätigungen',
+ 'Select all' => 'Alle auswählen',
+ 'Spoolfile' => 'Spoolfile',
+ 'Time Cards' => 'Zeitkarten',
+ 'To' => 'Bis',
+ 'Vendor' => 'Lieferant',
+ 'Work Orders' => 'Arbeitsblätter',
+ 'Year' => 'Jahr',
+ 'Yes' => 'Ja',
+ 'done' => 'fertig',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'weiter' => 'continue',
+ 'drucken' => 'print',
+ 'entfernen' => 'remove',
+ 'alle_auswählen' => 'select_all',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/de/ca b/locale/de/ca
new file mode 100755
index 00000000..3d5ea9c3
--- /dev/null
+++ b/locale/de/ca
@@ -0,0 +1,60 @@
+$self{texts} = {
+ 'AR/AP' => 'OF/OV',
+ 'Account' => 'Konto',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Balance' => 'Bilanz',
+ 'Chart of Accounts' => 'Kontenübersicht',
+ 'Credit' => 'Haben',
+ 'Current' => 'Aktuell',
+ 'Date' => 'Datum',
+ 'Debit' => 'Soll',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Department' => 'Abteilung',
+ 'Description' => 'Beschreibung',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'From' => 'Von',
+ 'GIFI' => 'GIFI',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'List Transactions' => 'Buchungsliste',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Month' => 'Monat',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Period' => 'Zeitraum',
+ 'Project Number' => 'Projektnummer',
+ 'Quarter' => 'Quartal',
+ 'R' => 'R',
+ 'Reference' => 'Referenz',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Subtotal' => 'Zwischensumme',
+ 'To' => 'Bis',
+ 'Year' => 'Jahr',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'buchungsliste' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/de/cp b/locale/de/cp
new file mode 100755
index 00000000..d2d44ad8
--- /dev/null
+++ b/locale/de/cp
@@ -0,0 +1,149 @@
+$self{texts} = {
+ 'AP' => 'Kreditoren',
+ 'AR' => 'Debitoren',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Address' => 'Adresse',
+ 'All' => 'Alle',
+ 'Amount' => 'Betrag',
+ 'Amount Due' => 'fälliger Betrag',
+ 'Bcc' => 'Bcc',
+ 'Cannot post Payment!' => 'Bezahlung kann nicht verbucht werden!',
+ 'Cannot post Receipt!' => 'Einnahme kann nicht verbucht werden!',
+ 'Cannot post payment for a closed period!' => 'Es können keine Zahlungen für abgeschlossene Bücher gebucht werden!',
+ 'Cc' => 'Cc',
+ 'Continue' => 'Weiter',
+ 'Currency' => 'Währung',
+ 'Customer' => 'Kunde',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Date missing!' => 'Datum fehlt!',
+ 'Day(s)' => 'Tage',
+ 'Delete Schedule' => 'Zeitplan löschen',
+ 'Department' => 'Abteilung',
+ 'Deposit' => 'Gutschrift',
+ 'Description' => 'Beschreibung',
+ 'Due Date' => 'Fälligkeitsdatum',
+ 'E-mail' => 'eMail',
+ 'E-mail message' => 'E-mail ',
+ 'Every' => 'Jeden',
+ 'Exchange Rate' => 'Wechselkurs',
+ 'Exchange rate missing!' => 'Wechselkurs fehlt!',
+ 'For' => 'für',
+ 'From' => 'Von',
+ 'Include Payment' => 'Bezahlung reinnehme',
+ 'Invoice' => 'Rechnung',
+ 'Invoices' => 'Rechnungen',
+ 'Language' => 'Sprache',
+ 'Memo' => 'Vermerk',
+ 'Message' => 'Nachricht',
+ 'Month(s)' => 'Monat(e)',
+ 'Next Date' => 'Nächstes Datum',
+ 'Nothing open!' => 'Nichts offen!',
+ 'Number' => 'Nummer',
+ 'PDF' => 'PDF',
+ 'Payment' => 'Belastung',
+ 'Payment posted!' => 'Zahlung gebucht!',
+ 'Payments' => 'Zahlungen',
+ 'Payments posted!' => 'Bezahlungen verbucht!',
+ 'Post' => 'Buchen',
+ 'Posting failed!' => 'Eintragung fehlgeschlagen!',
+ 'Postscript' => 'Postscript',
+ 'Prepayment' => 'Anzahlung',
+ 'Print' => 'Drucken',
+ 'Project not on file!' => 'Dieses Projekt ist nicht in der Datenbank!',
+ 'Receipt' => 'Ausgangsbeleg',
+ 'Receipt posted!' => 'Einnahme verbucht!',
+ 'Receipts' => 'Ausgangsbelege',
+ 'Recurring Transaction' => 'Wiederholende Buchung',
+ 'Reference' => 'Referenz',
+ 'Repeat' => 'Wiederholen',
+ 'Save Schedule' => 'Zeitplan speichern',
+ 'Screen' => 'Bildschirm',
+ 'Select' => 'Auswählen',
+ 'Select all' => 'Alle auswählen',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
+ 'Select postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Source' => 'Beleg',
+ 'Startdate' => 'Startdatum',
+ 'Subject' => 'Betreff',
+ 'To' => 'Bis',
+ 'Update' => 'Übernehmen',
+ 'Vendor' => 'Lieferant',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Warning!' => 'Warnung!',
+ 'Week(s)' => 'Woche(n)',
+ 'Year(s)' => 'Jahr(e)',
+ 'You are posting an existing transaction!' => 'Sie buchen eine existierende Buchung',
+ 'You are printing and posting an existing transaction!' => 'Sie drucken und buchen eine existierende Buchung',
+ 'You are printing and saving an existing order' => 'Sie drucken und speichern einen existierenden Auftrag',
+ 'You are printing and saving an existing quotation' => 'Sie drucken und speichern ein existierendes Angebot',
+ 'You are saving an existing order' => 'Sie speichern einen existierenden Auftrag',
+ 'You are saving an existing quotation' => 'Sie speichern eine vorhandenes Angebot',
+ 'for' => 'für',
+ 'sent' => 'verschickt',
+ 'time(s)' => 'mal',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'weiter' => 'continue',
+ 'zeitplan_löschen' => 'delete_schedule',
+ 'buchen' => 'post',
+ 'drucken' => 'print',
+ 'zeitplan_speichern' => 'save_schedule',
+ 'alle_auswählen' => 'select_all',
+ 'Übernehmen' => 'update',
+};
+
+1;
+
diff --git a/locale/de/ct b/locale/de/ct
new file mode 100755
index 00000000..052dc553
--- /dev/null
+++ b/locale/de/ct
@@ -0,0 +1,190 @@
+$self{texts} = {
+ 'AP Transaction' => 'Eingangsbuchung',
+ 'AP Transactions' => 'Eingangsbuchungen',
+ 'AR Transaction' => 'Ausgangsbuchung',
+ 'AR Transactions' => 'Ausgangsbuchungen',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Active' => 'Aktiv',
+ 'Add Customer' => 'Kunde anlegen',
+ 'Add Vendor' => 'Lieferant anlegen',
+ 'Address' => 'Adresse',
+ 'All' => 'Alle',
+ 'Amount' => 'Betrag',
+ 'BIC' => 'BIC',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Rechnungsanschrift',
+ 'Break' => 'Umbruch',
+ 'Cannot delete customer!' => 'Kunde kann nicht gelöscht werden!',
+ 'Cannot delete vendor!' => 'Lieferant kann nicht gelöscht werden!',
+ 'Cc' => 'Cc',
+ 'City' => 'Stadt',
+ 'Closed' => 'Geschlossen',
+ 'Company Name' => 'Firmenname',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Weiter',
+ 'Cost' => 'Kosten',
+ 'Could not save pricelist!' => 'Preisliste konnte nicht gespeichert werden!',
+ 'Country' => 'Land',
+ 'Credit Limit' => 'Kreditlimit',
+ 'Curr' => 'Währung',
+ 'Currency' => 'Währung',
+ 'Customer History' => 'Alle Belege für Kunde',
+ 'Customer Number' => 'Kundennummer',
+ 'Customer deleted!' => 'Kunde gelöscht!',
+ 'Customer saved!' => 'Kunde gespeichert!',
+ 'Customers' => 'Kunden',
+ 'Delete' => 'Löschen',
+ 'Delivery Date' => 'Lieferung',
+ 'Description' => 'Beschreibung',
+ 'Detail' => 'Einzelheiten',
+ 'Discount' => 'Rabatt',
+ 'E-mail' => 'eMail',
+ 'Edit Customer' => 'Kundendaten bearbeiten',
+ 'Edit Vendor' => 'Lieferantendaten bearbeiten',
+ 'Employee' => 'Arbeitnehmer',
+ 'Enddate' => 'Endedatum',
+ 'Fax' => 'Fax',
+ 'From' => 'Von',
+ 'GIFI' => 'GIFI',
+ 'Group' => 'Warengruppe',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'Nr.',
+ 'Inactive' => 'Passiv',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Invoice' => 'Rechnung',
+ 'Item already on pricelist!' => 'Artikel ist bereits in der Preisliste!',
+ 'Item not on file!' => 'Dieser Artikel ist nicht in der Datenbank!',
+ 'Language' => 'Sprache',
+ 'Leadtime' => 'Vorlaufzeit',
+ 'Manager' => 'Geschäftsführer',
+ 'Name' => 'Name',
+ 'Name missing!' => 'Name fehlt!',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Bemerkungen',
+ 'Number' => 'Nummer',
+ 'Open' => 'Offen',
+ 'Order' => 'Bestellung',
+ 'Orphaned' => 'nie benutzt',
+ 'POS' => 'Barverkauf',
+ 'Part Number' => 'Artikelnummer',
+ 'Phone' => 'Tel.',
+ 'Pricegroup' => 'Preisgruppe',
+ 'Pricelist' => 'Preisliste',
+ 'Project Number' => 'Projektnummer',
+ 'Purchase Order' => 'Einkaufsbestellung',
+ 'Purchase Orders' => 'Einkaufsbestellungen',
+ 'Qty' => 'Menge',
+ 'Quotation' => 'Angebot',
+ 'Quotations' => 'Angebote',
+ 'RFQ' => 'Anfrage',
+ 'Request for Quotations' => 'Anfragen',
+ 'SIC' => 'SIC',
+ 'SKU' => 'Lagerhaltungseinheit',
+ 'Sales Invoice' => 'Ausgangsrechnung',
+ 'Sales Invoices' => 'Ausgangsrechnungen',
+ 'Sales Order' => 'Auftragsbestätigung',
+ 'Sales Orders' => 'Auftragsbestätigungen',
+ 'Salesperson' => 'Verkäufer',
+ 'Save' => 'Speichern',
+ 'Save Pricelist' => 'Preisliste speichern',
+ 'Save as new' => 'als neu speichern',
+ 'Search' => 'Suchen',
+ 'Select items' => 'Bitte wählen Sie aus',
+ 'Sell Price' => 'Verkaufspreis',
+ 'Serial Number' => 'Seriennummer',
+ 'Shipping Address' => 'Lieferanschrift',
+ 'Startdate' => 'Startdatum',
+ 'State' => 'Zustand',
+ 'State/Province' => 'Bundesland',
+ 'Sub-contract GIFI' => 'Unterlieferant GIFI',
+ 'Subtotal' => 'Zwischensumme',
+ 'Summary' => 'Zusammenfassung',
+ 'Tax' => 'Steuer',
+ 'Tax Account' => 'Steuerkonto',
+ 'Tax Included' => 'Steuer im Preis enthalten',
+ 'Tax Number' => 'Steuernummer',
+ 'Tax Number / SSN' => 'Steuernummer / SSN',
+ 'Taxable' => 'Steuerpflichtig',
+ 'Terms' => 'Zahlungsbedingungen',
+ 'To' => 'Bis',
+ 'Total' => 'Betrag',
+ 'Type of Business' => 'Gewerbe',
+ 'Unit' => 'Einh.',
+ 'Update' => 'Übernehmen',
+ 'Vendor History' => 'Alle Belege für Lieferant',
+ 'Vendor Invoice' => 'Eingangsrechnung',
+ 'Vendor Invoices' => 'Eingangsrechnungen',
+ 'Vendor Number' => 'Lieferantennummer',
+ 'Vendor deleted!' => 'Lieferant gelöscht!',
+ 'Vendor saved!' => 'Lieferant gespeichert!',
+ 'Vendors' => 'Lieferanten',
+ 'Zip/Postal Code' => 'Postleitzahl',
+ 'days' => 'Tage',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'eingangsbuchung' => 'ap_transaction',
+ 'ausgangsbuchung' => 'ar_transaction',
+ 'kunde_anlegen' => 'add_customer',
+ 'lieferant_anlegen' => 'add_vendor',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'barverkauf' => 'pos',
+ 'preisliste' => 'pricelist',
+ 'einkaufsbestellung' => 'purchase_order',
+ 'angebot' => 'quotation',
+ 'anfrage' => 'rfq',
+ 'ausgangsrechnung' => 'sales_invoice',
+ 'auftragsbestätigung' => 'sales_order',
+ 'speichern' => 'save',
+ 'preisliste_speichern' => 'save_pricelist',
+ 'als_neu_speichern' => 'save_as_new',
+ 'Übernehmen' => 'update',
+ 'eingangsrechnung' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/de/gl b/locale/de/gl
new file mode 100755
index 00000000..8e614180
--- /dev/null
+++ b/locale/de/gl
@@ -0,0 +1,185 @@
+$self{texts} = {
+ 'AP Transaction' => 'Eingangsbuchung',
+ 'AR Transaction' => 'Ausgangsbuchung',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Add Cash Transfer Transaction' => 'Zahlungseingang vermerken',
+ 'Add General Ledger Transaction' => 'Hinzufügen einer Buchung zum Hauptbuch',
+ 'Address' => 'Adresse',
+ 'All' => 'Alle',
+ 'Amount' => 'Betrag',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Transaction' => 'Buchung wirklich löschen?',
+ 'Asset' => 'Aktiva/Mittelverwendung',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Balance' => 'Bilanz',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'Buchung kann nicht gelöscht werden!',
+ 'Cannot post transaction for a closed period!' => 'Für einen bereits abgeschlossenen Zeitraum kann keine Buchung angelegt werden!',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => 'Sie können eine Buchung mit Aktiva und Passive nicht auf das selbe Konto buchen!',
+ 'Cannot post transaction!' => 'Rechnung kann nicht gebucht werden!',
+ 'Cc' => 'Cc',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Continue' => 'Weiter',
+ 'Credit' => 'Haben',
+ 'Current' => 'Aktuell',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Day(s)' => 'Tage',
+ 'Debit' => 'Soll',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Delete' => 'Löschen',
+ 'Delete Schedule' => 'Zeitplan löschen',
+ 'Department' => 'Abteilung',
+ 'Description' => 'Beschreibung',
+ 'E-mail' => 'eMail',
+ 'E-mail message' => 'eMail ',
+ 'Edit Cash Transfer Transaction' => 'Überweisung bearbeiten',
+ 'Edit General Ledger Transaction' => 'Buchung im Hauptbuch bearbeiten',
+ 'Equity' => 'Passiva/Eigenkapital',
+ 'Every' => 'Jeden',
+ 'Expense' => 'Aufwand',
+ 'FX' => 'FX',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'For' => 'für',
+ 'From' => 'Von',
+ 'GIFI' => 'GIFI',
+ 'GL Transaction' => 'Hauptbucheintragung',
+ 'General Ledger' => 'Hauptbuch',
+ 'ID' => 'Nr.',
+ 'Include Payment' => 'Bezahlung aufnehmen',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Income' => 'Einnahmen',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Liability' => 'Passiva/Mittelherkunft',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Memo' => 'Vermerk',
+ 'Message' => 'Nachricht',
+ 'Month' => 'Monat',
+ 'Month(s)' => 'Monat(e)',
+ 'Next Date' => 'Nächstes Datum',
+ 'Notes' => 'Bemerkungen',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Nummer',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Out of balance transaction!' => 'Soll und Haben sind nicht gleich!',
+ 'Period' => 'Zeitraum',
+ 'Post' => 'Buchen',
+ 'Post as new' => 'Neu buchen',
+ 'Print' => 'Drucken',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Dieses Projekt ist nicht in der Datenbank!',
+ 'Quarter' => 'Quartal',
+ 'R' => 'R',
+ 'Recurring Transaction' => 'Wiederholende Buchung',
+ 'Reference' => 'Referenz',
+ 'Repeat' => 'Wiederholen',
+ 'Reports' => 'Berichte',
+ 'Sales Invoice ' => 'Ausgangsrechnung ',
+ 'Save Schedule' => 'Zeitplan speichern',
+ 'Schedule' => 'Buchungstermine',
+ 'Scheduled' => 'geplant',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Source' => 'Beleg',
+ 'Startdate' => 'Startdatum',
+ 'Subject' => 'Betreff',
+ 'Subtotal' => 'Zwischensumme',
+ 'To' => 'Bis',
+ 'Transaction Date missing!' => 'Buchungsdatum fehlt!',
+ 'Transaction deleted!' => 'Buchung gelöscht!',
+ 'Transaction posted!' => 'Buchung getätigt!',
+ 'Update' => 'Übernehmen',
+ 'Vendor Invoice ' => 'Eingangsrechnung ',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Warning!' => 'Warnung!',
+ 'Week(s)' => 'Woche(n)',
+ 'Year' => 'Jahr',
+ 'Year(s)' => 'Jahr(e)',
+ 'Yes' => 'Ja',
+ 'You are posting an existing transaction!' => 'Sie buchen eine existierende Buchung',
+ 'You are printing and posting an existing transaction!' => 'Sie drucken und buchen eine existierende Buchung',
+ 'You are printing and saving an existing order' => 'Sie drucken und speichern einen existierenden Auftrag',
+ 'You are printing and saving an existing quotation' => 'Sie drucken und speichern ein existierendes Angebot',
+ 'You are saving an existing order' => 'Sie speichern einen existierenden Auftrag',
+ 'You are saving an existing quotation' => 'Sie speichern eine vorhandenes Angebot',
+ 'for' => 'für',
+ 'sent' => 'verschickt',
+ 'time(s)' => 'mal',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'eingangsbuchung' => 'ap_transaction',
+ 'ausgangsbuchung' => 'ar_transaction',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'zeitplan_löschen' => 'delete_schedule',
+ 'hauptbucheintragung' => 'gl_transaction',
+ 'buchen' => 'post',
+ 'neu_buchen' => 'post_as_new',
+ 'ausgangsrechnung_' => 'sales_invoice_',
+ 'zeitplan_speichern' => 'save_schedule',
+ 'buchungstermine' => 'schedule',
+ 'Übernehmen' => 'update',
+ 'eingangsrechnung_' => 'vendor_invoice_',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/de/hr b/locale/de/hr
new file mode 100755
index 00000000..ee73862d
--- /dev/null
+++ b/locale/de/hr
@@ -0,0 +1,120 @@
+$self{texts} = {
+ 'AP' => 'Kreditoren',
+ 'Above' => 'Über',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Active' => 'Aktiv',
+ 'Add Deduction' => 'Abzug festlegen',
+ 'Add Employee' => 'Arbeitnehmer anlegen',
+ 'Address' => 'Adresse',
+ 'Administrator' => 'Verwalter',
+ 'After Deduction' => 'Nach Abzug',
+ 'All' => 'Alle',
+ 'Allowances' => 'Freibeträge',
+ 'Amount' => 'Betrag',
+ 'Amount missing!' => 'Betrag fehlt!',
+ 'BIC' => 'BIC',
+ 'Based on' => 'Begründung',
+ 'Before Deduction' => 'Vor Abzug',
+ 'Below' => 'Unter',
+ 'City' => 'Stadt',
+ 'Continue' => 'Weiter',
+ 'Country' => 'Land',
+ 'DOB' => 'Geburtsdatum',
+ 'Deduct after' => 'Abzug nach',
+ 'Deduction deleted!' => 'Abzug gelöscht!',
+ 'Deduction saved!' => 'Abzug gespeichert!',
+ 'Deductions' => 'Abzüge',
+ 'Delete' => 'Löschen',
+ 'Description' => 'Beschreibung',
+ 'Description missing!' => 'Beschreibung fehlt!',
+ 'E-mail' => 'eMail',
+ 'Edit Deduction' => 'Abzug bearbeiten',
+ 'Edit Employee' => 'Arbeitnehmer bearbeiten',
+ 'Employee' => 'Arbeitnehmer',
+ 'Employee Name' => 'Name',
+ 'Employee Number' => 'Mitarbeiternummer',
+ 'Employee deleted!' => 'Arbeitnehmer gelöscht!',
+ 'Employee pays' => 'Arbeitnehmer bezahlt',
+ 'Employee saved!' => 'Arbeitnehmer gespeichert!',
+ 'Employees' => 'Arbeitnehmer',
+ 'Employer' => 'Arbeitgeber',
+ 'Employer pays' => 'Arbeitgeber bezahlt',
+ 'Enddate' => 'Ausgeschieden am',
+ 'Exempt age <' => 'Befreiungsalter <',
+ 'Expense' => 'Aufwand',
+ 'From' => 'Von',
+ 'Home Phone' => 'Tel. privat',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'Nr.',
+ 'Inactive' => 'Passiv',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Login' => 'Anmelden',
+ 'Manager' => 'Geschäftsführer',
+ 'Maximum' => 'Höchstens',
+ 'Name' => 'Name',
+ 'Name missing!' => 'Name fehlt!',
+ 'Notes' => 'Bemerkungen',
+ 'Number' => 'Nummer',
+ 'Orphaned' => 'nie benutzt',
+ 'Payroll Deduction' => 'Lohnabzug',
+ 'Pos' => 'No.',
+ 'Rate' => 'Prozentsatz',
+ 'Rate missing!' => 'Prozentsatz fehlt!',
+ 'Role' => 'Stellung',
+ 'S' => 'A',
+ 'SSN' => 'Steuernummer',
+ 'Sales' => 'Warenverkauf',
+ 'Save' => 'Speichern',
+ 'Save as new' => 'als neu speichern',
+ 'Startdate' => 'Beschäftigt seit',
+ 'State/Province' => 'Bundesland',
+ 'Supervisor' => 'Vorarbeiter',
+ 'To' => 'Bis',
+ 'Update' => 'Übernehmen',
+ 'User' => 'Benutzer',
+ 'Work Phone' => 'Tel. Arbeit',
+ 'Zip/Postal Code' => 'Postleitzahl',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'abzug_festlegen' => 'add_deduction',
+ 'arbeitnehmer_anlegen' => 'add_employee',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'speichern' => 'save',
+ 'als_neu_speichern' => 'save_as_new',
+ 'Übernehmen' => 'update',
+};
+
+1;
+
diff --git a/locale/de/ic b/locale/de/ic
new file mode 100755
index 00000000..fba4963a
--- /dev/null
+++ b/locale/de/ic
@@ -0,0 +1,303 @@
+$self{texts} = {
+ 'A' => 'A',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Accounts' => 'Konten',
+ 'Accrual' => 'Laufend',
+ 'Active' => 'Aktiv',
+ 'Add' => 'Hinzufügen',
+ 'Add Assembly' => 'Erzeugnis anlegen',
+ 'Add Labor/Overhead' => 'Gestehungskosten',
+ 'Add Part' => 'Ware anlegen',
+ 'Add Purchase Order' => 'Bestellung anlegen',
+ 'Add Quotation' => 'Angebot erstellen',
+ 'Add Request for Quotation' => 'Anfrage erstellen',
+ 'Add Sales Order' => 'Auftragsbestätigung anlegen',
+ 'Add Service' => 'Dienstleistung anlegen',
+ 'Address' => 'Adresse',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Assemblies' => 'Erzeugnisse',
+ 'Assemblies restocked!' => 'Erzeugnisse eingelagert!',
+ 'Assembly' => 'Erzeugnis',
+ 'Attachment' => 'als Anhang',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Average Cost' => 'Durchschnittskosten',
+ 'Avg Cost' => 'Durch.',
+ 'BOM' => 'Stückliste',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Rechnungsanschrift',
+ 'Bin' => 'Stellage',
+ 'Bin List' => 'Lagerliste',
+ 'Break' => 'Umbruch',
+ 'COGS' => 'Umsatzkosten',
+ 'COGS account does not exist!' => 'Konto für Kosten besteht nicht!',
+ 'Cannot create Assembly' => 'Erzeugniss kann nicht angelegt werden',
+ 'Cannot create Labor' => 'Fließbandarbeitszeit kann nicht angelegt werden',
+ 'Cannot create Part' => 'Ware kann nicht angelegt werden',
+ 'Cannot create Service' => 'Dienstleistung kann nicht angelegt werden',
+ 'Cannot delete item!' => 'Artikel kann nicht gelöscht werden!',
+ 'Cannot stock assemblies!' => 'Erzeugnisse können nicht ins Lager!',
+ 'Cash' => 'Bar',
+ 'Cc' => 'Cc',
+ 'Check Inventory' => 'Inventar prüfen',
+ 'City' => 'Stadt',
+ 'Closed' => 'Geschlossen',
+ 'Company Name' => 'Firmenname',
+ 'Components' => 'Einzelteile',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Weiter',
+ 'Copies' => 'Kopien',
+ 'Cost' => 'Kosten',
+ 'Country' => 'Land',
+ 'Curr' => 'Währung',
+ 'Currency' => 'Währung',
+ 'Customer' => 'Kunde',
+ 'Customer Number' => 'Kundennummer',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Delete' => 'Löschen',
+ 'Delivery Date' => 'Lieferung',
+ 'Description' => 'Beschreibung',
+ 'Detail' => 'Einzelheiten',
+ 'Drawing' => 'Zeichnung',
+ 'E-mail' => 'eMail',
+ 'E-mail address missing!' => 'eMailadresse fehlt!',
+ 'E-mailed' => 'eMail gesendet',
+ 'Edit Assembly' => 'Erzeugnis bearbeiten',
+ 'Edit Labor/Overhead' => 'Gestehungskostenkosten bearbeiten',
+ 'Edit Part' => 'Ware bearbeiten',
+ 'Edit Service' => 'Dienstleistung bearbeiten',
+ 'Employee' => 'Arbeitnehmer',
+ 'Expense' => 'Aufwand',
+ 'Expense account does not exist!' => 'Es existiert kein Konto für Aufwand!',
+ 'Extended' => 'Summe',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'From' => 'Von',
+ 'Group' => 'Warengruppe',
+ 'Group by' => 'Gruppieren nach',
+ 'Image' => 'Bild',
+ 'In-line' => 'im Textkörper (Inline)',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Income' => 'Einnahmen',
+ 'Income account does not exist!' => 'Es existiert kein Konto für Einnahmen!',
+ 'Individual Items' => 'Einzelteile',
+ 'Inventory' => 'Inventar',
+ 'Inventory account does not exist!' => 'Es existiert kein Konto für Inventar!',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Bevor dieses Erzeugnis als ungültig markiert werden kann, muß der Bestand Null sein!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Bevor diese Ware als ungültig markiert werden kann, muß der Bestand Null sein!',
+ 'Invoice' => 'Rechnung',
+ 'Invoice Date missing!' => 'Rechnungsdatum fehlt!',
+ 'Invoice Number' => 'Rechnungsnummer',
+ 'Invoice Number missing!' => 'Rechnungsnummer fehlt!',
+ 'Item' => 'Artikel',
+ 'Item deleted!' => 'Artikel gelöscht!',
+ 'Item not on file!' => 'Dieser Artikel ist nicht in der Datenbank!',
+ 'Items' => 'Artikel',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Labor/Overhead' => 'Gestehungskosten',
+ 'Last Cost' => 'Letzte Kosten',
+ 'Leadtime' => 'Vorlaufzeit',
+ 'Line Total' => 'Zeilensumme',
+ 'Link Accounts' => 'Konten verknüpfen',
+ 'List' => 'Listenpreis',
+ 'List Price' => 'Listenpreis',
+ 'Make' => 'Hersteller',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'Markup' => 'Aufschlag',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Message' => 'Nachricht',
+ 'Microfiche' => 'Mikrofilm',
+ 'Model' => 'Modell',
+ 'Name' => 'Name',
+ 'No History!' => 'Es sind keine älteren Eintragungen vorhanden!',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Bemerkungen',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Nummer',
+ 'Number missing in Row' => 'Nummer fehlt in Zeile',
+ 'OH' => 'LU',
+ 'Obsolete' => 'Ungültig',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'On Hand' => 'am Lager',
+ 'Onhand' => 'Auf Lager',
+ 'Open' => 'Offen',
+ 'Order' => 'Bestellung',
+ 'Order Date missing!' => 'Bestelldatum fehlt!',
+ 'Order Number' => 'Bestellnummer',
+ 'Order Number missing!' => 'Bestellnummer fehlt!',
+ 'Orphaned' => 'nie benutzt',
+ 'PDF' => 'PDF',
+ 'PO' => 'EB',
+ 'Packing List' => 'Lieferschein',
+ 'Packing List Date missing!' => 'Datum für Lieferschein fehlt!',
+ 'Packing List Number missing!' => 'Lieferscheinnnummer fehlt!',
+ 'Part' => 'Ware',
+ 'Parts' => 'Waren',
+ 'Parts Requirements' => 'Artikelanforderungen',
+ 'Period' => 'Zeitraum',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Lagerliste',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Preis',
+ 'Pricegroup' => 'Preisgruppe',
+ 'Printed' => 'Gedruckt',
+ 'Project' => 'Projekt',
+ 'Purchase Order' => 'Einkaufsbestellung',
+ 'Purchase Orders' => 'Einkaufsbestellungen',
+ 'Qty' => 'Menge',
+ 'Quantity exceeds available units to stock!' => 'Anzahl ist mehr als vorhanden!',
+ 'Queue' => 'Warteschlange',
+ 'Queued' => 'gespeichert',
+ 'Quotation' => 'Angebot',
+ 'Quotation Date missing!' => 'Angebotsdatum fehlt!',
+ 'Quotation Number missing!' => 'Angebotsnummer fehlt!',
+ 'Quotations' => 'Angebote',
+ 'RFQ' => 'Anfrage',
+ 'ROP' => 'UAB',
+ 'Recd' => 'Erh',
+ 'Required by' => 'Erforderlich am',
+ 'SKU' => 'Lagerhaltungseinheit',
+ 'SO' => 'VB',
+ 'Sales Invoice' => 'Ausgangsrechnung',
+ 'Sales Invoices' => 'Ausgangsrechnungen',
+ 'Sales Order' => 'Auftragsbestätigung',
+ 'Sales Orders' => 'Auftragsbestätigungen',
+ 'Save' => 'Speichern',
+ 'Save as new' => 'als neu speichern',
+ 'Scheduled' => 'geplant',
+ 'Screen' => 'Bildschirm',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select items' => 'Bitte wählen Sie aus',
+ 'Select txt, postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Sell' => 'Verkaufspreis',
+ 'Sell Price' => 'Verkaufspreis',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Serial No.' => 'Seriennummer',
+ 'Serial Number' => 'Seriennummer',
+ 'Service' => 'Dienstleistung',
+ 'Services' => 'Leistungen',
+ 'Ship' => 'Versenden',
+ 'Ship to' => 'Lieferung an',
+ 'Shipping Address' => 'Lieferanschrift',
+ 'Short' => 'Kurz',
+ 'Sort by' => 'Sortieren nach',
+ 'State/Province' => 'Bundesland',
+ 'Stock' => 'Einlagern',
+ 'Stock Assembly' => 'Erzeugnis einlagern',
+ 'Subject' => 'Betreff',
+ 'Subtotal' => 'Zwischensumme',
+ 'Summary' => 'Zusammenfassung',
+ 'Tax' => 'Steuer',
+ 'Text' => 'Text',
+ 'To' => 'Bis',
+ 'Top Level' => 'Hauptbeschreibung',
+ 'Translation not on file!' => 'Übersetzung nicht verfügbar',
+ 'Unit' => 'Einh.',
+ 'Update' => 'Übernehmen',
+ 'Updated' => 'Erneuert am',
+ 'Vendor' => 'Lieferant',
+ 'Vendor Invoice' => 'Eingangsrechnung',
+ 'Vendor Invoices' => 'Eingangsrechnungen',
+ 'Vendor Number' => 'Lieferantennummer',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Warehouse' => 'Warenlager',
+ 'Weight' => 'Gewicht',
+ 'What type of item is this?' => 'Welche Artikelart ist das?',
+ 'Work Order' => 'Arbeitsblatt',
+ 'Year' => 'Jahr',
+ 'Zip/Postal Code' => 'Postleitzahl',
+ 'days' => 'Tage',
+ 'sent' => 'verschickt',
+ 'unexpected error!' => 'unbekannter Fehler!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'erzeugnis_anlegen' => 'add_assembly',
+ 'gestehungskosten' => 'add_labor_overhead',
+ 'ware_anlegen' => 'add_part',
+ 'dienstleistung_anlegen' => 'add_service',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'erzeugnis_bearbeiten' => 'edit_assembly',
+ 'ware_bearbeiten' => 'edit_part',
+ 'dienstleistung_bearbeiten' => 'edit_service',
+ 'speichern' => 'save',
+ 'als_neu_speichern' => 'save_as_new',
+ 'Übernehmen' => 'update',
+};
+
+1;
+
diff --git a/locale/de/io b/locale/de/io
new file mode 100755
index 00000000..6c71a1ae
--- /dev/null
+++ b/locale/de/io
@@ -0,0 +1,139 @@
+$self{texts} = {
+ 'Add Purchase Order' => 'Bestellung anlegen',
+ 'Add Quotation' => 'Angebot erstellen',
+ 'Add Request for Quotation' => 'Anfrage erstellen',
+ 'Add Sales Order' => 'Auftragsbestätigung anlegen',
+ 'Address' => 'Adresse',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Attachment' => 'als Anhang',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Rechnungsanschrift',
+ 'Bin' => 'Stellage',
+ 'Bin List' => 'Lagerliste',
+ 'Cc' => 'Cc',
+ 'City' => 'Stadt',
+ 'Company Name' => 'Firmenname',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Weiter',
+ 'Copies' => 'Kopien',
+ 'Country' => 'Land',
+ 'Customer Number' => 'Kundennummer',
+ 'Date' => 'Datum',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Delivery Date' => 'Lieferung',
+ 'Description' => 'Beschreibung',
+ 'E-mail' => 'eMail',
+ 'E-mail address missing!' => 'eMailadresse fehlt!',
+ 'E-mailed' => 'eMail gesendet',
+ 'Extended' => 'Summe',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'Group' => 'Warengruppe',
+ 'Group by' => 'Gruppieren nach',
+ 'In-line' => 'im Textkörper (Inline)',
+ 'Invoice' => 'Rechnung',
+ 'Invoice Date missing!' => 'Rechnungsdatum fehlt!',
+ 'Invoice Number missing!' => 'Rechnungsnummer fehlt!',
+ 'Item' => 'Artikel',
+ 'Item not on file!' => 'Dieser Artikel ist nicht in der Datenbank!',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Message' => 'Nachricht',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Nummer',
+ 'Number missing in Row' => 'Nummer fehlt in Zeile',
+ 'OH' => 'LU',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Order Date missing!' => 'Bestelldatum fehlt!',
+ 'Order Number missing!' => 'Bestellnummer fehlt!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lieferschein',
+ 'Packing List Date missing!' => 'Datum für Lieferschein fehlt!',
+ 'Packing List Number missing!' => 'Lieferscheinnnummer fehlt!',
+ 'Part' => 'Ware',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Lagerliste',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Preis',
+ 'Printed' => 'Gedruckt',
+ 'Project' => 'Projekt',
+ 'Purchase Order' => 'Einkaufsbestellung',
+ 'Qty' => 'Menge',
+ 'Queue' => 'Warteschlange',
+ 'Queued' => 'gespeichert',
+ 'Quotation' => 'Angebot',
+ 'Quotation Date missing!' => 'Angebotsdatum fehlt!',
+ 'Quotation Number missing!' => 'Angebotsnummer fehlt!',
+ 'Recd' => 'Erh',
+ 'Required by' => 'Erforderlich am',
+ 'SKU' => 'Lagerhaltungseinheit',
+ 'Sales Order' => 'Auftragsbestätigung',
+ 'Scheduled' => 'geplant',
+ 'Screen' => 'Bildschirm',
+ 'Select items' => 'Bitte wählen Sie aus',
+ 'Select txt, postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Serial No.' => 'Seriennummer',
+ 'Service' => 'Dienstleistung',
+ 'Ship' => 'Versenden',
+ 'Ship to' => 'Lieferung an',
+ 'Shipping Address' => 'Lieferanschrift',
+ 'Sort by' => 'Sortieren nach',
+ 'State/Province' => 'Bundesland',
+ 'Subject' => 'Betreff',
+ 'Subtotal' => 'Zwischensumme',
+ 'Text' => 'Text',
+ 'To' => 'Bis',
+ 'Translation not on file!' => 'Übersetzung nicht verfügbar',
+ 'Unit' => 'Einh.',
+ 'Vendor Number' => 'Lieferantennummer',
+ 'What type of item is this?' => 'Welche Artikelart ist das?',
+ 'Work Order' => 'Arbeitsblatt',
+ 'Zip/Postal Code' => 'Postleitzahl',
+ 'sent' => 'verschickt',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'weiter' => 'continue',
+};
+
+1;
+
diff --git a/locale/de/ir b/locale/de/ir
new file mode 100755
index 00000000..b2d9a848
--- /dev/null
+++ b/locale/de/ir
@@ -0,0 +1,259 @@
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Add Purchase Order' => 'Bestellung anlegen',
+ 'Add Quotation' => 'Angebot erstellen',
+ 'Add Request for Quotation' => 'Anfrage erstellen',
+ 'Add Sales Order' => 'Auftragsbestätigung anlegen',
+ 'Add Vendor Invoice' => 'Eingangsrechnung anlegen',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Betrag',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Invoice Number' => 'Soll die Rechnung mit folgender Nummer wirklich gelöscht werden:',
+ 'Attachment' => 'als Anhang',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Rechnungsanschrift',
+ 'Bin' => 'Stellage',
+ 'Bin List' => 'Lagerliste',
+ 'Cannot delete invoice!' => 'Rechnung kann nicht gelöscht werden!',
+ 'Cannot post invoice for a closed period!' => 'Das Rechnungsdatum fällt in einen abgeschlossen Zeitraum!',
+ 'Cannot post invoice!' => 'Rechnung kann nicht gebucht werden!',
+ 'Cannot post payment for a closed period!' => 'Es können keine Zahlungen für abgeschlossene Bücher gebucht werden!',
+ 'Cc' => 'Cc',
+ 'City' => 'Stadt',
+ 'Company Name' => 'Firmenname',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Weiter',
+ 'Copies' => 'Kopien',
+ 'Country' => 'Land',
+ 'Credit Limit' => 'Kreditlimit',
+ 'Currency' => 'Währung',
+ 'Customer Number' => 'Kundennummer',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Day(s)' => 'Tage',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Delete' => 'Löschen',
+ 'Delete Schedule' => 'Zeitplan löschen',
+ 'Delivery Date' => 'Lieferung',
+ 'Department' => 'Abteilung',
+ 'Description' => 'Beschreibung',
+ 'Due Date' => 'Fälligkeitsdatum',
+ 'E-mail' => 'eMail',
+ 'E-mail address missing!' => 'eMailadresse fehlt!',
+ 'E-mail message' => 'eMail ',
+ 'E-mailed' => 'eMail gesendet',
+ 'Edit Vendor Invoice' => 'Eingangsrechnung bearbeiten',
+ 'Every' => 'Jeden',
+ 'Exch' => 'Wkurs.',
+ 'Exchange Rate' => 'Wechselkurs',
+ 'Exchange rate for payment missing!' => 'Wechselkurs für Bezahlung fehlt!',
+ 'Exchange rate missing!' => 'Wechselkurs fehlt!',
+ 'Extended' => 'Summe',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'For' => 'für',
+ 'Group' => 'Warengruppe',
+ 'Group by' => 'Gruppieren nach',
+ 'In-line' => 'im Textkörper (Inline)',
+ 'Include Payment' => 'Bezahlung aufnehmen',
+ 'Internal Notes' => 'Interne Notizen',
+ 'Invoice' => 'Rechnung',
+ 'Invoice Date' => 'Rechnungsdatum',
+ 'Invoice Date missing!' => 'Rechnungsdatum fehlt!',
+ 'Invoice Number' => 'Rechnungsnummer',
+ 'Invoice Number missing!' => 'Rechnungsnummer fehlt!',
+ 'Invoice deleted!' => 'Rechung gelöscht!',
+ 'Item' => 'Artikel',
+ 'Item not on file!' => 'Dieser Artikel ist nicht in der Datenbank!',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Language' => 'Sprache',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Memo' => 'Vermerk',
+ 'Message' => 'Nachricht',
+ 'Month(s)' => 'Monat(e)',
+ 'Next Date' => 'Nächstes Datum',
+ 'Notes' => 'Bemerkungen',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Nummer',
+ 'Number missing in Row' => 'Nummer fehlt in Zeile',
+ 'OH' => 'LU',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Order Date missing!' => 'Bestelldatum fehlt!',
+ 'Order Number' => 'Bestellnummer',
+ 'Order Number missing!' => 'Bestellnummer fehlt!',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Unsere Reference',
+ 'Packing List' => 'Lieferschein',
+ 'Packing List Date missing!' => 'Datum für Lieferschein fehlt!',
+ 'Packing List Number missing!' => 'Lieferscheinnummer fehlt!',
+ 'Part' => 'Ware',
+ 'Payment date missing!' => 'Tag der Zahlung fehlt!',
+ 'Payments' => 'Zahlungen',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Lagerliste',
+ 'Post' => 'Buchen',
+ 'Post as new' => 'Neu buchen',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Preis',
+ 'Print' => 'Drucken',
+ 'Printed' => 'Gedruckt',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Dieses Projekt ist nicht in der Datenbank!',
+ 'Purchase Order' => 'Einkaufsbestellung',
+ 'Qty' => 'Menge',
+ 'Queue' => 'Warteschlange',
+ 'Queued' => 'gespeichert',
+ 'Quotation' => 'Angebot',
+ 'Quotation Date missing!' => 'Angebotsdatum fehlt!',
+ 'Quotation Number missing!' => 'Angebotsnummer fehlt!',
+ 'Recd' => 'Erh',
+ 'Record in' => 'Buchen auf',
+ 'Recurring Transaction' => 'Wiederholende Buchung',
+ 'Reference' => 'Referenz',
+ 'Remaining' => 'Rest',
+ 'Repeat' => 'Wiederholen',
+ 'Required by' => 'Erforderlich am',
+ 'SKU' => 'Lagerhaltungseinheit',
+ 'Sales Order' => 'Auftragsbestätigung',
+ 'Save Schedule' => 'Zeitplan speichern',
+ 'Schedule' => 'Buchungstermine',
+ 'Scheduled' => 'geplant',
+ 'Screen' => 'Bildschirm',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
+ 'Select items' => 'Bitte wählen Sie aus',
+ 'Select txt, postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Serial No.' => 'Seriennummer',
+ 'Service' => 'Dienstleistung',
+ 'Ship' => 'Versenden',
+ 'Ship to' => 'Lieferung an',
+ 'Shipping Address' => 'Lieferanschrift',
+ 'Sort by' => 'Sortieren nach',
+ 'Source' => 'Beleg',
+ 'Startdate' => 'Startdatum',
+ 'State/Province' => 'Bundesland',
+ 'Subject' => 'Betreff',
+ 'Subtotal' => 'Zwischensumme',
+ 'Tax Included' => 'Steuer im Preis enthalten',
+ 'Text' => 'Text',
+ 'To' => 'Bis',
+ 'Total' => 'Betrag',
+ 'Translation not on file!' => 'Übersetzung nicht verfügbar',
+ 'Unit' => 'Einh.',
+ 'Update' => 'Übernehmen',
+ 'Vendor' => 'Lieferant',
+ 'Vendor Number' => 'Lieferantennummer',
+ 'Vendor missing!' => 'Lieferant fehlt!',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Warning!' => 'Warnung!',
+ 'Week(s)' => 'Woche(n)',
+ 'What type of item is this?' => 'Welche Artikelart ist das?',
+ 'Work Order' => 'Arbeitsblatt',
+ 'Year(s)' => 'Jahr(e)',
+ 'Yes' => 'Ja',
+ 'You are posting an existing transaction!' => 'Sie buchen eine existierende Buchung',
+ 'You are printing and posting an existing transaction!' => 'Sie drucken und buchen eine existierende Buchung',
+ 'You are printing and saving an existing order' => 'Sie drucken und speichern einen existierenden Auftrag',
+ 'You are printing and saving an existing quotation' => 'Sie drucken und speichern ein existierendes Angebot',
+ 'You are saving an existing order' => 'Sie speichern einen existierenden Auftrag',
+ 'You are saving an existing quotation' => 'Sie speichern eine vorhandenes Angebot',
+ 'Zip/Postal Code' => 'Postleitzahl',
+ 'ea' => 'pro',
+ 'for' => 'für',
+ 'posted!' => 'gebucht!',
+ 'sent' => 'verschickt',
+ 'time(s)' => 'mal',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'zeitplan_löschen' => 'delete_schedule',
+ 'buchen' => 'post',
+ 'neu_buchen' => 'post_as_new',
+ 'einkaufsbestellung' => 'purchase_order',
+ 'zeitplan_speichern' => 'save_schedule',
+ 'buchungstermine' => 'schedule',
+ 'Übernehmen' => 'update',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/de/is b/locale/de/is
new file mode 100755
index 00000000..af3bd9e6
--- /dev/null
+++ b/locale/de/is
@@ -0,0 +1,273 @@
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Add Purchase Order' => 'Bestellung anlegen',
+ 'Add Quotation' => 'Angebot erstellen',
+ 'Add Request for Quotation' => 'Anfrage erstellen',
+ 'Add Sales Invoice' => 'Ausgangsrechnung anlegen',
+ 'Add Sales Order' => 'Auftragsbestätigung anlegen',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Betrag',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Invoice Number' => 'Soll die Rechnung mit folgender Nummer wirklich gel?cht werden:',
+ 'Attachment' => 'als Anhang',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Rechnungsanschrift',
+ 'Bin' => 'Stellage',
+ 'Bin List' => 'Lagerliste',
+ 'Business' => 'Gewerbe',
+ 'Cannot delete invoice!' => 'Rechnung kann nicht gelöscht werden!',
+ 'Cannot post invoice for a closed period!' => 'Das Rechnungsdatum fällt in einen abgeschlossen Zeitraum!',
+ 'Cannot post invoice!' => 'Rechnung kann nicht gebucht werden!',
+ 'Cannot post payment for a closed period!' => 'Es können keine Zahlungen für abgeschlossene Bücher gebucht werden!',
+ 'Cc' => 'Cc',
+ 'City' => 'Stadt',
+ 'Company Name' => 'Firmenname',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Weiter',
+ 'Copies' => 'Kopien',
+ 'Country' => 'Land',
+ 'Credit Limit' => 'Kreditlimit',
+ 'Currency' => 'Währung',
+ 'Customer' => 'Kunde',
+ 'Customer Number' => 'Kundennummer',
+ 'Customer missing!' => 'Kundenname fehlt!',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Day(s)' => 'Tage',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Delete' => 'Löschen',
+ 'Delete Schedule' => 'Zeitplan löschen',
+ 'Delivery Date' => 'Lieferung',
+ 'Department' => 'Abteilung',
+ 'Description' => 'Beschreibung',
+ 'Due Date' => 'Zahlungsziel',
+ 'E-mail' => 'eMail',
+ 'E-mail address missing!' => 'eMailadresse fehlt!',
+ 'E-mail message' => 'eMail ',
+ 'E-mailed' => 'eMail gesendet',
+ 'Edit Sales Invoice' => 'Ausgangsrechnung bearbeiten',
+ 'Every' => 'Jeden',
+ 'Exch' => 'Wkurs.',
+ 'Exchange Rate' => 'Wechselkurs',
+ 'Exchange rate for payment missing!' => 'Wechselkurs für Bezahlung fehlt!',
+ 'Exchange rate missing!' => 'Wechselkurs fehlt!',
+ 'Extended' => 'Summe',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'For' => 'für',
+ 'Group' => 'Warengruppe',
+ 'Group by' => 'Gruppieren nach',
+ 'In-line' => 'im Textkörper (Inline)',
+ 'Include Payment' => 'Bezahlung reinnehme',
+ 'Internal Notes' => 'Interne Notizen',
+ 'Invoice' => 'Rechnung',
+ 'Invoice Date' => 'Rechnungsdatum',
+ 'Invoice Date missing!' => 'Rechnungsdatum fehlt!',
+ 'Invoice Number' => 'Rechnungsnummer',
+ 'Invoice Number missing!' => 'Rechnungsnummer fehlt!',
+ 'Invoice deleted!' => 'Rechung gelöscht!',
+ 'Item' => 'Artikel',
+ 'Item not on file!' => 'Dieser Artikel ist nicht in der Datenbank!',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Memo' => 'Vermerk',
+ 'Message' => 'Nachricht',
+ 'Month(s)' => 'Monat(e)',
+ 'Next Date' => 'Nächstes Datum',
+ 'Notes' => 'Bemerkungen',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Nummer',
+ 'Number missing in Row' => 'Nummer fehlt in Zeile',
+ 'OH' => 'LU',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Order Date missing!' => 'Bestelldatum fehlt!',
+ 'Order Number' => 'Bestellnummer',
+ 'Order Number missing!' => 'Bestellnummer fehlt!',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Unsere Reference',
+ 'Packing List' => 'Lieferschein',
+ 'Packing List Date missing!' => 'Datum für Lieferschein fehlt!',
+ 'Packing List Number missing!' => 'Lieferscheinnummer fehlt!',
+ 'Part' => 'Ware',
+ 'Payment date missing!' => 'Tag der Zahlung fehlt!',
+ 'Payments' => 'Zahlungen',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Lagerliste',
+ 'Post' => 'Buchen',
+ 'Post as new' => 'Neu buchen',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Preis',
+ 'Print' => 'Drucken',
+ 'Print and Post' => 'Drucken und buchen',
+ 'Print and Post as new' => 'Drucken und als neu buchen',
+ 'Printed' => 'Gedruckt',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Dieses Projekt ist nicht in der Datenbank!',
+ 'Purchase Order' => 'Einkaufsbestellung',
+ 'Qty' => 'Menge',
+ 'Queue' => 'Warteschlange',
+ 'Queued' => 'gespeichert',
+ 'Quotation' => 'Angebot',
+ 'Quotation Date missing!' => 'Angebotsdatum fehlt!',
+ 'Quotation Number missing!' => 'Angebotsnummer fehlt!',
+ 'Recd' => 'Erh',
+ 'Record in' => 'Buchen auf',
+ 'Recurring Transaction' => 'Wiederkehrende Buchung',
+ 'Reference' => 'Referenz',
+ 'Remaining' => 'Rest',
+ 'Repeat' => 'Wiederholen',
+ 'Required by' => 'Erforderlich am',
+ 'SKU' => 'Lagerhaltungseinheit',
+ 'Sales Order' => 'Auftragsbestätigung',
+ 'Salesperson' => 'Verkäufer',
+ 'Save Schedule' => 'Zeitplan speichern',
+ 'Schedule' => 'Buchungstermine',
+ 'Scheduled' => 'geplant',
+ 'Screen' => 'Bildschirm',
+ 'Select a Printer!' => 'Drucker auswählen!',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
+ 'Select items' => 'Bitte wählen Sie aus',
+ 'Select postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Select txt, postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Serial No.' => 'Seriennummer',
+ 'Service' => 'Dienstleistung',
+ 'Ship' => 'Versenden',
+ 'Ship to' => 'Lieferung an',
+ 'Ship via' => 'Versandweg',
+ 'Shipping Address' => 'Lieferanschrift',
+ 'Shipping Point' => 'Versandort',
+ 'Sort by' => 'Sortieren nach',
+ 'Source' => 'Beleg',
+ 'Startdate' => 'Startdatum',
+ 'State/Province' => 'Bundesland',
+ 'Subject' => 'Betreff',
+ 'Subtotal' => 'Zwischensumme',
+ 'Tax Included' => 'Steuer im Preis enthalten',
+ 'Text' => 'Text',
+ 'To' => 'Bis',
+ 'Total' => 'Betrag',
+ 'Trade Discount' => 'Handelsrabatt',
+ 'Translation not on file!' => 'Übersetzung nicht verfügbar',
+ 'Unit' => 'Einh.',
+ 'Update' => 'Übernehmen',
+ 'Vendor Number' => 'Lieferantennummer',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Warning!' => 'Warnung!',
+ 'Week(s)' => 'Woche(n)',
+ 'What type of item is this?' => 'Welche Artikelart ist das?',
+ 'Work Order' => 'Arbeitsblatt',
+ 'Year(s)' => 'Jahr(e)',
+ 'Yes' => 'Ja',
+ 'You are posting an existing transaction!' => 'Sie buchen eine existierende Buchung',
+ 'You are printing and posting an existing transaction!' => 'Sie drucken und buchen eine existierende Buchung',
+ 'You are printing and saving an existing order' => 'Sie drucken und speichern einen existierenden Auftrag',
+ 'You are printing and saving an existing quotation' => 'Sie drucken und speichern ein existierendes Angebot',
+ 'You are saving an existing order' => 'Sie speichern einen existierenden Auftrag',
+ 'You are saving an existing quotation' => 'Sie speichern eine vorhandenes Angebot',
+ 'Zip/Postal Code' => 'Postleitzahl',
+ 'ea' => 'pro',
+ 'for' => 'für',
+ 'posted!' => 'gebucht!',
+ 'sent' => 'verschickt',
+ 'time(s)' => 'mal',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'zeitplan_löschen' => 'delete_schedule',
+ 'email' => 'e_mail',
+ 'buchen' => 'post',
+ 'neu_buchen' => 'post_as_new',
+ 'drucken' => 'print',
+ 'drucken_und_buchen' => 'print_and_post',
+ 'drucken_und_als_neu_buchen' => 'print_and_post_as_new',
+ 'auftragsbestätigung' => 'sales_order',
+ 'zeitplan_speichern' => 'save_schedule',
+ 'buchungstermine' => 'schedule',
+ 'lieferung_an' => 'ship_to',
+ 'Übernehmen' => 'update',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/de/jc b/locale/de/jc
new file mode 100755
index 00000000..8d61425a
--- /dev/null
+++ b/locale/de/jc
@@ -0,0 +1,156 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Add Stores Card' => 'Artikelkarte anlegen',
+ 'Add Time Card' => 'Zeitkarte anlegen',
+ 'Allocated' => 'Zugewiesen',
+ 'Amount' => 'Betrag',
+ 'Are you sure you want to delete time card for' => 'Sind Sie sicher daß Sie die Zeitkarte löschen wollen',
+ 'Cannot add stores card for a completed job!' => 'Kann Lagerkarte nicht für eine fertige Fließbandarbeit anlegen!',
+ 'Cannot add time card for a completed job!' => 'Zeitkarte kann für eine fertige Fließbandarbeit nicht angelegt werden!',
+ 'Cannot change stores card for a completed job!' => 'Kann Lagerkarte für eine fertige Fließbandarbeit nicht ändern!',
+ 'Cannot change time card for a completed job!' => 'Zeitkarte kann für eine fertige Fließbandarbeit nicht geändert werden!',
+ 'Cannot delete time card!' => 'Zeitkarte kann nicht gelöscht werden!',
+ 'Cannot save stores card for a closed period!' => 'Kann Lagerkarte für einen geschlossenen Zeitraum nicht speichern',
+ 'Cannot save stores card!' => 'Kann Lagerkarte nicht speichern!',
+ 'Cannot save time card for a closed period!' => 'Zeitkarte kann für eine geschlossene Periode nicht gespeichert werden!',
+ 'Cannot save time card!' => 'Kann Zeitkarte nicht speichern!',
+ 'Chargeable' => 'Anrechenbar',
+ 'Chargeout Rate' => 'Kundenpreis',
+ 'Clocked' => 'Ausgerechnet',
+ 'Closed' => 'Geschlossen',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Continue' => 'Weiter',
+ 'Cost' => 'Kosten',
+ 'Current' => 'Aktuell',
+ 'Date' => 'Datum',
+ 'Date missing!' => 'Datum fehlt!',
+ 'Date worked' => 'Tag gearbeitet',
+ 'Delete' => 'Löschen',
+ 'Description' => 'Beschreibung',
+ 'Edit Time Card' => 'Zeitkarte bearbeiten',
+ 'Employee' => 'Arbeitnehmer',
+ 'Friday' => 'Freitag',
+ 'From' => 'Von',
+ 'ID' => 'Nr.',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Job Description' => 'Aufgabenbeschreibung',
+ 'Job Name' => 'Aufgabenname',
+ 'Job Number' => 'Aufgabennummer',
+ 'Job Number missing!' => 'Aufgabennummer fehlt!',
+ 'Labor Code' => 'Personalcode',
+ 'Labor Code missing!' => 'Personalcode fehlt!',
+ 'Monday' => 'Montag',
+ 'Month' => 'Monat',
+ 'No Employees on file!' => 'Keine Angestellten in der Datenbank!',
+ 'No Labor codes on file!' => 'Keine Personalcodes in der Datenbank!',
+ 'No Parts on file!' => 'Keine Teile in der Datenbank!',
+ 'No Services on file!' => 'Keine Dienstleistungen in der Datenbank!',
+ 'No open Jobs!' => 'Keine offenen Aufgaben!',
+ 'No open Projects!' => 'Keine offenen Projekte!',
+ 'Non-chargeable' => 'nicht anrechenbar',
+ 'Notes' => 'Bemerkungen',
+ 'Open' => 'Offen',
+ 'PDF' => 'PDF',
+ 'Part Number' => 'Artikelnummer',
+ 'Period' => 'Zeitraum',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Drucken',
+ 'Print and Save' => 'Drucken und speichern',
+ 'Print and Save as new' => 'Drucken und neu speichern',
+ 'Printed' => 'Gedruckt',
+ 'Project Name' => 'Projektbezeichnung',
+ 'Project Number' => 'Projektnummer',
+ 'Project Number missing!' => 'Projektnummer fehlt!',
+ 'Project/Job Name' => 'Projekt/Aufgabenbezeichnung',
+ 'Project/Job Number' => 'Projekt/Aufgabennummer',
+ 'Qty' => 'Menge',
+ 'Quarter' => 'Quartal',
+ 'Queue' => 'Warteschlange',
+ 'Queued' => 'gespeichert',
+ 'Saturday' => 'Samstag',
+ 'Save' => 'Speichern',
+ 'Save as new' => 'als neu speichern',
+ 'Screen' => 'Bildschirm',
+ 'Select a Printer!' => 'Drucker auswählen!',
+ 'Select postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Service Code' => 'Service Code',
+ 'Service Code missing!' => 'Service Code fehlt!',
+ 'Service/Labor Code' => 'Service/Personalcode',
+ 'Startdate' => 'Startdatum',
+ 'Stores Card' => 'Lagerkarte',
+ 'Stores Card saved!' => 'Lagerkarte gespeichert!',
+ 'Stores Cards' => 'Lagerkarten',
+ 'Subtotal' => 'Zwischensumme',
+ 'Sunday' => 'Sonntag',
+ 'Thursday' => 'Donnerstag',
+ 'Time' => 'Zeit',
+ 'Time Card' => 'Zeitkarte',
+ 'Time Card deleted!' => 'Zeitkarte gelöscht!',
+ 'Time Card saved!' => 'Zeitkarte gespeichert!',
+ 'Time Cards' => 'Zeitkarte',
+ 'Time In' => 'Eingestempelt',
+ 'Time Out' => 'Ausgestempelt',
+ 'To' => 'Bis',
+ 'Total' => 'Betrag',
+ 'Tuesday' => 'Dienstag',
+ 'Update' => 'Erneuern',
+ 'Warning!' => 'Warnung!',
+ 'Wednesday' => 'Mittwoch',
+ 'Year' => 'Jahr',
+ 'Yes' => 'Ja',
+ 'You are printing and saving an existing transaction!' => 'Sie drucken und speichern eine bestehende Buchung!',
+ 'You are saving an existing transaction!' => 'Sie speichern eine bestehende Buchung!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'artikelkarte_anlegen' => 'add_stores_card',
+ 'zeitkarte_anlegen' => 'add_time_card',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'drucken' => 'print',
+ 'drucken_und_speichern' => 'print_and_save',
+ 'drucken_und_neu_speichern' => 'print_and_save_as_new',
+ 'speichern' => 'save',
+ 'als_neu_speichern' => 'save_as_new',
+ 'erneuern' => 'update',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/de/locales.pl b/locale/de/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/de/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/de/login b/locale/de/login
new file mode 100755
index 00000000..9b628329
--- /dev/null
+++ b/locale/de/login
@@ -0,0 +1,25 @@
+$self{texts} = {
+ 'Access Denied!' => 'Zugriff fehlgeschlagen!',
+ 'Company' => 'Firma',
+ 'Continue' => 'Weiter',
+ 'Dataset is newer than version!' => 'Datensatz ist jünger als installierte Version',
+ 'Incorrect Dataset version!' => 'Ungültigige Datensatzversion',
+ 'Login' => 'Anmelden',
+ 'Name' => 'Name',
+ 'Password' => 'Passwort',
+ 'Upgrading to Version' => 'Datensatz wird erneuert auf Version',
+ 'Version' => 'Version',
+ 'You did not enter a name!' => 'Sie haben keinen Namen eingegeben!',
+ 'done' => 'fertig',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ 'anmelden' => 'login',
+};
+
+1;
+
diff --git a/locale/de/menu b/locale/de/menu
new file mode 100755
index 00000000..cf37f106
--- /dev/null
+++ b/locale/de/menu
@@ -0,0 +1,144 @@
+$self{texts} = {
+ 'AP' => 'Kreditoren',
+ 'AP Aging' => 'Offene Verbindl.',
+ 'AP Transaction' => 'Eingangsbuchung',
+ 'AR' => 'Debitoren',
+ 'AR Aging' => 'Forderungsspiegel',
+ 'AR Transaction' => 'Ausgangsbuchung',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Add Account' => 'Konto anlegen',
+ 'Add Assembly' => 'Erzeugnis anlegen',
+ 'Add Business' => 'Gewerbe anlegen',
+ 'Add Customer' => 'Kunde anlegen',
+ 'Add Department' => 'Abteilung anlegen',
+ 'Add Employee' => 'Arbeitnehmer anlegen',
+ 'Add GIFI' => 'GIFI anlegen',
+ 'Add Group' => 'Gruppe anlegen',
+ 'Add Labor/Overhead' => 'Gestehungskosten',
+ 'Add Language' => 'Sprache anlegen',
+ 'Add Part' => 'Ware anlegen',
+ 'Add Pricegroup' => 'Preisgruppe anlegen',
+ 'Add Project' => 'Projekt anlegen',
+ 'Add SIC' => 'SIC anlegen',
+ 'Add Service' => 'Dienstleistung anlegen',
+ 'Add Time Card' => 'Zeitkarte anlegen',
+ 'Add Transaction' => 'Buchung anlegen',
+ 'Add Vendor' => 'Lieferant anlegen',
+ 'Add Warehouse' => 'Warenlager anlegen',
+ 'All Items' => 'Alle Artikel',
+ 'Assemblies' => 'Erzeugnisse',
+ 'Audit Control' => 'Bücherkontrolle',
+ 'Backup' => 'Datensicherung',
+ 'Balance Sheet' => 'Bilanz',
+ 'Batch Printing' => 'Seriendruck',
+ 'Bin List' => 'Lagerliste',
+ 'Bin Lists' => 'Lagerlisten',
+ 'Cash' => 'Bezahlung',
+ 'Chart of Accounts' => 'Kontenübersicht',
+ 'Check' => 'Scheck',
+ 'Components' => 'Einzelteile',
+ 'Consolidate' => 'konsolidieren',
+ 'Customers' => 'Kunden',
+ 'Defaults' => 'Einstellungen',
+ 'Departments' => 'Abteilungen',
+ 'Description' => 'Beschreibung',
+ 'Employees' => 'Arbeitnehmer',
+ 'General Ledger' => 'FiBu',
+ 'Generate' => 'erzeugen',
+ 'Goods & Services' => 'Waren & Dienstleistungen',
+ 'Groups' => 'Gruppen',
+ 'HR' => 'Personal',
+ 'HTML Templates' => 'HTML Vorlagen',
+ 'History' => 'Statistik',
+ 'Income Statement' => 'G & V',
+ 'Invoice' => 'Rechnung',
+ 'LaTeX Templates' => 'LaTeX Vorlagen',
+ 'Labor/Overhead' => 'Gestehungskosten',
+ 'Language' => 'Sprache',
+ 'List Accounts' => 'Kontenliste',
+ 'List Businesses' => 'Gewerbe anzeigen',
+ 'List Departments' => 'Abteilungen anzeigen',
+ 'List GIFI' => 'GIFI anzeigen',
+ 'List Languages' => 'Sprachen anzeigen',
+ 'List Projects' => 'Projekte anzeigen',
+ 'List SIC' => 'SIC anzeigen',
+ 'List Warehouses' => 'Warenlager anzeigen',
+ 'Logout' => 'Abmelden',
+ 'New Window' => 'Neues Fenster',
+ 'Non-taxable' => 'Steuerfrei',
+ 'Open' => 'Offen',
+ 'Order Entry' => 'Bestellungen',
+ 'Outstanding' => 'Offene Rechnungen',
+ 'POS' => 'Barverkauf',
+ 'POS Invoice' => 'Barverkaufsrechnung',
+ 'Packing List' => 'Lieferschein',
+ 'Packing Lists' => 'Lieferscheine',
+ 'Parts' => 'Waren',
+ 'Payment' => 'Belastung',
+ 'Payments' => 'Zahlungen',
+ 'Pick List' => 'Lagerliste',
+ 'Pick Lists' => 'Lagerlisten',
+ 'Preferences' => 'Benutzereinstellungen',
+ 'Pricegroups' => 'Preisgruppen',
+ 'Print' => 'Drucken',
+ 'Projects' => 'Projekte',
+ 'Purchase Order' => 'Einkaufsbestellung',
+ 'Purchase Orders' => 'Einkaufsbestellungen',
+ 'Quotation' => 'Angebot',
+ 'Quotations' => 'Angebote',
+ 'RFQ' => 'Anfrage',
+ 'RFQs' => 'Anfragen',
+ 'Receipt' => 'Ausgangsbeleg',
+ 'Receipts' => 'Ausgangsbelege',
+ 'Receive' => 'Einlagern',
+ 'Reconciliation' => 'Kontenabgleich',
+ 'Recurring Transactions' => 'Wiederholende Buchungen',
+ 'Reports' => 'Berichte',
+ 'Requirements' => 'Anforderungen',
+ 'SIC' => 'SIC',
+ 'Sale' => 'Verkauf',
+ 'Sales Invoice' => 'Ausgangsrechnung',
+ 'Sales Invoices' => 'Ausgangsrechnungen',
+ 'Sales Order' => 'Auftragsbestätigung',
+ 'Sales Orders' => 'Auftragsbestätigungen',
+ 'Save to File' => 'Auf Festplatte speichern',
+ 'Search' => 'Suchen',
+ 'Send by E-Mail' => 'Per eMail schicken',
+ 'Services' => 'Leistungen',
+ 'Ship' => 'Versenden',
+ 'Shipping' => 'Versand',
+ 'Statement' => 'Zahlungserinnerung',
+ 'Stock Assembly' => 'Erzeugnis einlagern',
+ 'Stylesheet' => 'Stilvorlage',
+ 'System' => 'System',
+ 'Tax collected' => 'Umsatzsteuer',
+ 'Tax paid' => 'Vorsteuer',
+ 'Taxes' => 'Steuern',
+ 'Text Templates' => 'Textvorlagen',
+ 'Time Card' => 'Zeitkarte',
+ 'Time Cards' => 'Zeitkarten',
+ 'Transactions' => 'Buchungen',
+ 'Transfer' => 'Einlage',
+ 'Transfer Inventory' => 'Inventarübertrag',
+ 'Translations' => 'Übersetzungen',
+ 'Trial Balance' => 'Saldenbilanz',
+ 'Type of Business' => 'Gewerbe',
+ 'Vendor Invoice' => 'Eingangsrechnung',
+ 'Vendors' => 'Lieferanten',
+ 'Version' => 'Version',
+ 'Warehouses' => 'Warenlager',
+ 'Work Order' => 'Arbeitsblatt',
+ 'Work Orders' => 'Arbeitsblätter',
+ 'Yearend' => 'Jahresabschluss',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/de/oe b/locale/de/oe
new file mode 100755
index 00000000..e3e280fe
--- /dev/null
+++ b/locale/de/oe
@@ -0,0 +1,380 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Add Exchange Rate' => 'Wechselkurs anlegen',
+ 'Add Purchase Order' => 'Bestellung anlegen',
+ 'Add Quotation' => 'Angebot erstellen',
+ 'Add Request for Quotation' => 'Anfrage erstellen',
+ 'Add Sales Invoice' => 'Ausgangsrechnung anlegen',
+ 'Add Sales Order' => 'Auftragsbestätigung anlegen',
+ 'Add Vendor Invoice' => 'Eingangsrechnung anlegen',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Betrag',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Order Number' => 'Soll die Bestellung mit folgender Nummer wirklich gelöscht werden:',
+ 'Are you sure you want to delete Quotation Number' => 'Soll das Angebot mit folgender Nummer wirklich gelöscht werden:',
+ 'Attachment' => 'als Anhang',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Rechnungsanschrift',
+ 'Bin' => 'Stellage',
+ 'Bin List' => 'Lagerliste',
+ 'Business' => 'Gewerbe',
+ 'C' => 'G',
+ 'Cannot delete order!' => 'Bestellung kann nicht gelöscht werden!',
+ 'Cannot delete quotation!' => 'Anfrage kann nicht gelöscht werden!',
+ 'Cannot save order!' => 'Bestellung kann nicht gespeichert werden!',
+ 'Cannot save quotation!' => 'Angebot kann nicht gespeichert werden!',
+ 'Cc' => 'Cc',
+ 'City' => 'Stadt',
+ 'Closed' => 'Geschlossen',
+ 'Company Name' => 'Firmenname',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Consolidate Orders' => 'Bestellungen zusammenführen',
+ 'Consolidate Purchase Orders' => 'Einkaufsbestellungen zusammenführen',
+ 'Consolidate Sales Orders' => 'Aufträge zusammenführen',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Weiter',
+ 'Copies' => 'Kopien',
+ 'Cost' => 'Kosten',
+ 'Could not save!' => 'Kann nicht gespeichert werden!',
+ 'Could not transfer Inventory!' => 'Inventar wurde nicht übertragen!',
+ 'Country' => 'Land',
+ 'Credit Limit' => 'Kreditlimit',
+ 'Curr' => 'Währung',
+ 'Currency' => 'Währung',
+ 'Current' => 'Aktuell',
+ 'Customer' => 'Kunde',
+ 'Customer Number' => 'Kundennummer',
+ 'Customer missing!' => 'Kundenname fehlt!',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Date Received' => 'Erhalten',
+ 'Date received missing!' => 'Datum wenn erhalten fehlt!',
+ 'Day(s)' => 'Tage',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Delete' => 'Löschen',
+ 'Delete Schedule' => 'Zeitplan löschen',
+ 'Delivery Date' => 'Lieferung',
+ 'Department' => 'Abteilung',
+ 'Description' => 'Beschreibung',
+ 'Done' => 'Fertig',
+ 'E-mail' => 'eMail',
+ 'E-mail address missing!' => 'eMailadresse fehlt!',
+ 'E-mail message' => 'eMail ',
+ 'E-mailed' => 'eMail gesendet',
+ 'Edit Purchase Order' => 'Bestellung bearbeiten',
+ 'Edit Quotation' => 'Angebot bearbeiten',
+ 'Edit Request for Quotation' => 'Anfrage bearbeiten',
+ 'Edit Sales Order' => 'Auftragsbestätigung bearbeiten',
+ 'Employee' => 'Arbeitnehmer',
+ 'Every' => 'Jeden',
+ 'Exchange Rate' => 'Wechselkurs',
+ 'Exchange rate missing!' => 'Wechselkurs fehlt!',
+ 'Extended' => 'Summe',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'For' => 'für',
+ 'From' => 'Von',
+ 'From Warehouse' => 'Vom Lagerhaus',
+ 'Generate Orders' => 'Aufträge erstellen',
+ 'Generate Purchase Orders' => 'Bestellungen erstellern',
+ 'Generate Purchase Orders from Sales Order' => 'Bestellungen aus Aufträgen erstellen',
+ 'Generate Sales Order' => 'Auftrag erstellen',
+ 'Generate Sales Order from Purchase Orders' => 'Auftrag von Bestellungen erstellen',
+ 'Group' => 'Warengruppe',
+ 'Group by' => 'Gruppieren nach',
+ 'ID' => 'Nr.',
+ 'In-line' => 'im Textkörper (Inline)',
+ 'Include Payment' => 'Bezahlung reinnehme',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Internal Notes' => 'Interne Notizen',
+ 'Inventory saved!' => 'Inventar gespeichert!',
+ 'Inventory transferred!' => 'Inventar übertragen',
+ 'Invoice' => 'Rechnung',
+ 'Invoice Date missing!' => 'Rechnungsdatum fehlt!',
+ 'Invoice Number missing!' => 'Rechnungsnummer fehlt!',
+ 'Item' => 'Artikel',
+ 'Item not on file!' => 'Dieser Artikel ist nicht in der Datenbank!',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Lead' => 'Anlaufzeit',
+ 'Manager' => 'Geschäftsführer',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Message' => 'Nachricht',
+ 'Month' => 'Monat',
+ 'Month(s)' => 'Monat(e)',
+ 'Next Date' => 'Nächstes Datum',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Bemerkungen',
+ 'Nothing entered!' => 'Es wurde nichts eingetragen!',
+ 'Nothing selected!' => 'Es wurde nichts ausgewählt!',
+ 'Nothing to transfer!' => 'Es gibt nichts zu übergeben!',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Nummer',
+ 'Number missing in Row' => 'Nummer fehlt in Zeile',
+ 'O' => 'O',
+ 'OH' => 'LU',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Open' => 'Offen',
+ 'Order' => 'Bestellung',
+ 'Order Date' => 'Bestelldatum',
+ 'Order Date missing!' => 'Bestelldatum fehlt!',
+ 'Order Number' => 'Bestellnummer',
+ 'Order Number missing!' => 'Bestellnummer fehlt!',
+ 'Order deleted!' => 'Bestellung gelöscht!',
+ 'Order generation failed!' => 'Auftragserstellung fehlgeschlagen!',
+ 'Order saved!' => 'Bestellung gespeichert!',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Unsere Reference',
+ 'Packing List' => 'Lieferschein',
+ 'Packing List Date missing!' => 'Datum für Lieferschein fehlt!',
+ 'Packing List Number missing!' => 'Lieferscheinnnummer fehlt!',
+ 'Part' => 'Ware',
+ 'Part Number' => 'Artikelnummer',
+ 'Period' => 'Zeitraum',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Lagerliste',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Preis',
+ 'Print' => 'Drucken',
+ 'Print and Save' => 'Drucken und speichern',
+ 'Print and Save as new' => 'Drucken und neu speichern',
+ 'Printed' => 'Gedruckt',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Dieses Projekt ist nicht in der Datenbank!',
+ 'Purchase Order' => 'Einkaufsbestellung',
+ 'Purchase Orders' => 'Einkaufsbestellungen',
+ 'Qty' => 'Menge',
+ 'Quarter' => 'Quartal',
+ 'Queue' => 'Warteschlange',
+ 'Queued' => 'gespeichert',
+ 'Quotation' => 'Angebot',
+ 'Quotation ' => 'Verkaufsangebot',
+ 'Quotation Date' => 'Angebotsdatum',
+ 'Quotation Date missing!' => 'Angebotsdatum fehlt!',
+ 'Quotation Number' => 'Angebotsnummer',
+ 'Quotation Number missing!' => 'Angebotsnummer fehlt!',
+ 'Quotation deleted!' => 'Angebot gelöscht!',
+ 'Quotations' => 'Angebote',
+ 'RFQ' => 'Anfrage',
+ 'RFQ ' => 'Anfrage ',
+ 'RFQ Number' => 'Anfragenummer',
+ 'Recd' => 'Erh',
+ 'Receive Merchandise' => 'Artikeln einlagern',
+ 'Recurring Transaction' => 'Wiederholende Buchung',
+ 'Reference' => 'Referenz',
+ 'Remaining' => 'Rest',
+ 'Repeat' => 'Wiederholen',
+ 'Req' => 'Ben.',
+ 'Request for Quotation' => 'Anfrage',
+ 'Request for Quotations' => 'Anfragen',
+ 'Required by' => 'Erforderlich am',
+ 'SKU' => 'Lagerhaltungseinheit',
+ 'Sales Invoice' => 'Ausgangsrechnung',
+ 'Sales Order' => 'Auftragsbestätigung',
+ 'Sales Orders' => 'Auftragsbestätigungen',
+ 'Salesperson' => 'Verkäufer',
+ 'Save' => 'Speichern',
+ 'Save Schedule' => 'Zeitplan speichern',
+ 'Save as new' => 'als neu speichern',
+ 'Schedule' => 'Buchungstermine',
+ 'Scheduled' => 'geplant',
+ 'Screen' => 'Bildschirm',
+ 'Select Vendor' => 'Leiferant auswählen',
+ 'Select a Printer!' => 'Drucker auswählen!',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
+ 'Select items' => 'Bitte wählen Sie aus',
+ 'Select postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Select txt, postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Serial No.' => 'Seriennummer',
+ 'Service' => 'Dienstleistung',
+ 'Ship' => 'Versenden',
+ 'Ship Merchandise' => 'Waren verschicken',
+ 'Ship to' => 'Lieferung an',
+ 'Ship via' => 'Versandweg',
+ 'Shipping Address' => 'Lieferanschrift',
+ 'Shipping Date' => 'Versandsdatum',
+ 'Shipping Date missing!' => 'Versandsdatum fehlt!',
+ 'Shipping Point' => 'Versandort',
+ 'Sort by' => 'Sortieren nach',
+ 'Startdate' => 'Startdatum',
+ 'State/Province' => 'Bundesland',
+ 'Subject' => 'Betreff',
+ 'Subtotal' => 'Zwischensumme',
+ 'Tax' => 'Steuer',
+ 'Tax Included' => 'Steuer im Preis enthalten',
+ 'Terms' => 'Zahlungsbedingungen',
+ 'Text' => 'Text',
+ 'To' => 'Bis',
+ 'To Warehouse' => 'Zum Lagerhaus',
+ 'Total' => 'Betrag',
+ 'Trade Discount' => 'Handelsrabatt',
+ 'Transfer' => 'Einlage',
+ 'Transfer Inventory' => 'Inventarübertrag',
+ 'Transfer from' => 'umlagern von',
+ 'Transfer to' => 'Übergabe an',
+ 'Translation not on file!' => 'Übersetzung nicht verfügbar',
+ 'Unit' => 'Einh.',
+ 'Update' => 'Übernehmen',
+ 'Valid until' => 'Gültig bis',
+ 'Vendor' => 'Lieferant',
+ 'Vendor Invoice' => 'Eingangsrechnung',
+ 'Vendor Number' => 'Lieferantennummer',
+ 'Vendor missing!' => 'Lieferant fehlt!',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Warehouse' => 'Warenlager',
+ 'Warning!' => 'Warnung!',
+ 'Week(s)' => 'Woche(n)',
+ 'What type of item is this?' => 'Welche Artikelart ist das?',
+ 'Work Order' => 'Arbeitsblatt',
+ 'Year' => 'Jahr',
+ 'Year(s)' => 'Jahr(e)',
+ 'Yes' => 'Ja',
+ 'You are posting an existing transaction!' => 'Sie buchen eine existierende Buchung',
+ 'You are printing and posting an existing transaction!' => 'Sie drucken und buchen eine existierende Buchung',
+ 'You are printing and saving an existing order' => 'Sie drucken und speichern einen existierenden Auftrag',
+ 'You are printing and saving an existing quotation' => 'Sie drucken und speichern ein existierendes Angebot',
+ 'You are saving an existing order' => 'Sie speichern einen existierenden Auftrag',
+ 'You are saving an existing quotation' => 'Sie speichern eine vorhandenes Angebot',
+ 'Zip/Postal Code' => 'Postleitzahl',
+ 'days' => 'Tage',
+ 'ea' => 'pro',
+ 'for' => 'für',
+ 'sent' => 'verschickt',
+ 'time(s)' => 'mal',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'bestellungen_zusammenführen' => 'consolidate_orders',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'zeitplan_löschen' => 'delete_schedule',
+ 'fertig' => 'done',
+ 'email' => 'e_mail',
+ 'aufträge_erstellen' => 'generate_orders',
+ 'bestellungen_erstellern' => 'generate_purchase_orders',
+ 'auftrag_erstellen' => 'generate_sales_order',
+ 'drucken' => 'print',
+ 'drucken_und_speichern' => 'print_and_save',
+ 'drucken_und_neu_speichern' => 'print_and_save_as_new',
+ 'einkaufsbestellung' => 'purchase_order',
+ 'angebot' => 'quotation',
+ 'verkaufsangebot' => 'quotation_',
+ 'anfrage' => 'rfq',
+ 'anfrage_' => 'rfq_',
+ 'ausgangsrechnung' => 'sales_invoice',
+ 'auftragsbestätigung' => 'sales_order',
+ 'speichern' => 'save',
+ 'zeitplan_speichern' => 'save_schedule',
+ 'als_neu_speichern' => 'save_as_new',
+ 'buchungstermine' => 'schedule',
+ 'leiferant_auswählen' => 'select_vendor',
+ 'lieferung_an' => 'ship_to',
+ 'einlage' => 'transfer',
+ 'Übernehmen' => 'update',
+ 'eingangsrechnung' => 'vendor_invoice',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/de/pe b/locale/de/pe
new file mode 100755
index 00000000..2bfadd1c
--- /dev/null
+++ b/locale/de/pe
@@ -0,0 +1,166 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Active' => 'Aktiv',
+ 'Add' => 'Hinzufügen',
+ 'Add Group' => 'Gruppe anlegen',
+ 'Add Job' => 'Fertigung anlegen',
+ 'Add Pricegroup' => 'Preisgruppe anlegen',
+ 'Add Project' => 'Projekt anlegen',
+ 'Address' => 'Adresse',
+ 'All' => 'Alle',
+ 'Amount' => 'Betrag',
+ 'As of' => 'ab dem',
+ 'Assembly' => 'Erzeugnis',
+ 'Assembly stocked!' => 'Erzeugnis eingelagert!',
+ 'Bin' => 'Stellage',
+ 'Cannot stock Assembly!' => 'Erzeugnis kann nicht eingelagert werden!',
+ 'Completed' => 'Fertig',
+ 'Continue' => 'Weiter',
+ 'Current' => 'Aktuell',
+ 'Customer' => 'Kunde',
+ 'Customer missing!' => 'Kundenname fehlt!',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Delete' => 'Löschen',
+ 'Description' => 'Beschreibung',
+ 'Description Translations' => 'Bescreibungsübersetzungen',
+ 'Detail' => 'Einzelheiten',
+ 'Edit Description Translations' => 'Beschreibungsübersetzungen bearbeiten',
+ 'Edit Group' => 'Gruppe bearbeiten',
+ 'Edit Job' => 'Aufgabe bearbeiten',
+ 'Edit Pricegroup' => 'Preisgruppe bearbeiten',
+ 'Edit Project' => 'Projekt bearbeiten',
+ 'Employee' => 'Arbeitnehmer',
+ 'Enddate' => 'Ausgeschieden am',
+ 'Failed to save order!' => 'Speichern des Auftrags fehlgeschlagen!',
+ 'From' => 'Von',
+ 'Generate Sales Orders' => 'Aufträge generieren',
+ 'Group' => 'Warengruppe',
+ 'Group Translations' => 'Gruppenübersetzung',
+ 'Group deleted!' => 'Gruppe gelöscht!',
+ 'Group missing!' => 'Gruppe fehlt!',
+ 'Group saved!' => 'Gruppe gespeichert!',
+ 'Groups' => 'Gruppen',
+ 'Inactive' => 'Passiv',
+ 'Income' => 'Einnahmen',
+ 'Job' => 'Aufgabe',
+ 'Job Number' => 'Aufgabennummer',
+ 'Job deleted!' => 'Aufgabe gelöscht!',
+ 'Job saved!' => 'Aufgabe gespeichert!',
+ 'Jobs' => 'Aufgaben',
+ 'Language' => 'Sprache',
+ 'Languages not defined!' => 'Keine Sprachen definiert!',
+ 'Link Accounts' => 'Konten verknüpfen',
+ 'List Price' => 'Listenpreis',
+ 'Month' => 'Monat',
+ 'No open Projects!' => 'Es gibt keine offenen Projekte!',
+ 'Notes' => 'Bemerkungen',
+ 'Nothing selected!' => 'Es wurde nichts ausgewählt!',
+ 'Number' => 'Nummer',
+ 'Orders generated!' => 'Aufträge wurden generiert!',
+ 'Orphaned' => 'nie benutzt',
+ 'Part Number' => 'Artikelnummer',
+ 'Period' => 'Zeitraum',
+ 'Pricegroup' => 'Preisgruppe',
+ 'Pricegroup deleted!' => 'Preisgruppe gelöscht!',
+ 'Pricegroup missing!' => 'Preisgruppe fehlt!',
+ 'Pricegroup saved!' => 'Preisgruppe gespeichert!',
+ 'Pricegroups' => 'Preisgruppen',
+ 'Production' => 'Produktion',
+ 'Project' => 'Projekt',
+ 'Project Description Translations' => 'Übersetzung für Projektbeschreibungen',
+ 'Project Number' => 'Projektnummer',
+ 'Project deleted!' => 'Projekt gelöscht!',
+ 'Project saved!' => 'Projekt gespeichert!',
+ 'Projects' => 'Projekte',
+ 'Qty' => 'Menge',
+ 'Quarter' => 'Quartal',
+ 'Save' => 'Speichern',
+ 'Select Customer' => 'Bitte Kunden auswählen',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Sell Price' => 'Verkaufspreis',
+ 'Service Code' => 'Service Code',
+ 'Startdate' => 'Startdatum',
+ 'Stock Finished Goods' => 'Fertige Güter einlagern',
+ 'Summary' => 'Zusammenfassung',
+ 'Tax' => 'Steuer',
+ 'To' => 'Bis',
+ 'Transaction Dates' => 'Überweisungsdaten',
+ 'Translation' => 'Übersetzung',
+ 'Translation deleted!' => 'Übersetzung gelöscht!',
+ 'Translations saved!' => 'Übersetzung gespeichert!',
+ 'Unit' => 'Einh.',
+ 'Update' => 'Übernehmen',
+ 'Updated' => 'Geändert am',
+ 'Vendor' => 'Lieferant',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Weight' => 'Gewicht',
+ 'Year' => 'Jahr',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'gruppe_anlegen' => 'add_group',
+ 'fertigung_anlegen' => 'add_job',
+ 'preisgruppe_anlegen' => 'add_pricegroup',
+ 'projekt_anlegen' => 'add_project',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'aufträge_generieren' => 'generate_sales_orders',
+ 'speichern' => 'save',
+ 'bitte_kunden_auswählen' => 'select_customer',
+ 'Übernehmen' => 'update',
+};
+
+1;
+
diff --git a/locale/de/pos b/locale/de/pos
new file mode 100755
index 00000000..dfb82bc8
--- /dev/null
+++ b/locale/de/pos
@@ -0,0 +1,81 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Add POS Invoice' => 'Barverkaufsrechnung anlegen',
+ 'Amount' => 'Betrag',
+ 'Business' => 'Gewerbe',
+ 'Cannot post transaction!' => 'Rechnung kann nicht gebucht werden!',
+ 'Change' => 'Wechselgeld',
+ 'Continue' => 'Weiter',
+ 'Credit Limit' => 'Kreditlimit',
+ 'Currency' => 'Währung',
+ 'Current' => 'Aktuell',
+ 'Customer' => 'Kunde',
+ 'Customer missing!' => 'Kundenname fehlt!',
+ 'Delete' => 'Löschen',
+ 'Department' => 'Abteilung',
+ 'Description' => 'Beschreibung',
+ 'Edit POS Invoice' => 'Barverkaufsrechnung bearbeiten',
+ 'Exchange Rate' => 'Wechselkurs',
+ 'Exchange rate missing!' => 'Wechselkurs fehlt!',
+ 'Extended' => 'Summe',
+ 'From' => 'Von',
+ 'Language' => 'Sprache',
+ 'Memo' => 'Vermerk',
+ 'Month' => 'Monat',
+ 'Number' => 'Nummer',
+ 'Open' => 'Offen',
+ 'Period' => 'Zeitraum',
+ 'Post' => 'Buchen',
+ 'Posted!' => 'Verbucht!',
+ 'Price' => 'Preis',
+ 'Print' => 'Drucken',
+ 'Print and Post' => 'Drucken und Buchen',
+ 'Printed' => 'Gedruckt',
+ 'Qty' => 'Menge',
+ 'Quarter' => 'Quartal',
+ 'Receipts' => 'Ausgangsbelege',
+ 'Record in' => 'Buchen auf',
+ 'Remaining' => 'Rest',
+ 'Salesperson' => 'Verkäufer',
+ 'Screen' => 'Bildschirm',
+ 'Select a Printer!' => 'Bitte wählen Sie einen Drucker',
+ 'Source' => 'Beleg',
+ 'Subtotal' => 'Zwischensumme',
+ 'Tax Included' => 'Steuer im Preis enthalten',
+ 'To' => 'Bis',
+ 'Total' => 'Betrag',
+ 'Trade Discount' => 'Handelsrabatt',
+ 'Unit' => 'Einh.',
+ 'Update' => 'Übernehmen',
+ 'Year' => 'Jahr',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'buchen' => 'post',
+ 'drucken' => 'print',
+ 'drucken_und_buchen' => 'print_and_post',
+ 'Übernehmen' => 'update',
+};
+
+1;
+
diff --git a/locale/de/ps b/locale/de/ps
new file mode 100755
index 00000000..bbf934b2
--- /dev/null
+++ b/locale/de/ps
@@ -0,0 +1,399 @@
+$self{texts} = {
+ 'AP Aging' => 'Offene Verbindl.',
+ 'AP Outstanding' => 'Offene Verbindlichkeiten',
+ 'AP Transaction' => 'Eingangsbuchung',
+ 'AP Transactions' => 'Eingangsbuchungen',
+ 'AR Aging' => 'Forderungsspiegel',
+ 'AR Outstanding' => 'Offene Forderungen.',
+ 'AR Transaction' => 'Ausgangsbuchung',
+ 'AR Transactions' => 'Ausgangsbuchungen',
+ 'Account' => 'Konto',
+ 'Account Number' => 'Kontonummer',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Accounts' => 'Konten',
+ 'Accrual' => 'Laufend',
+ 'Add AP Transaction' => 'Eingangsbuchung anlegen',
+ 'Add AR Transaction' => 'Ausgangsbuchung anlegen',
+ 'Add POS Invoice' => 'Barverkaufsrechnung anlegen',
+ 'Add Purchase Order' => 'Bestellung anlegen',
+ 'Add Quotation' => 'Angebot erstellen',
+ 'Add Request for Quotation' => 'Anfrage erstellen',
+ 'Add Sales Invoice' => 'Ausgangsrechnung anlegen',
+ 'Add Sales Order' => 'Auftragsbestätigung anlegen',
+ 'Address' => 'Adresse',
+ 'Aged' => 'veraltet',
+ 'Aged Overdue' => 'veraltet und überfällig',
+ 'All Accounts' => 'Alle Konten',
+ 'Amount' => 'Betrag',
+ 'Amount Due' => 'fälliger Betrag',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Invoice Number' => 'Soll die Rechnung mit folgender Nummer wirklich gelöscht werden:',
+ 'Are you sure you want to delete Transaction' => 'Buchung wirklich löschen?',
+ 'Attachment' => 'als Anhang',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Balance' => 'Bilanz',
+ 'Balance Sheet' => 'Bilanz',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Rechnungsanschrift',
+ 'Bin' => 'Stellage',
+ 'Bin List' => 'Lagerliste',
+ 'Business' => 'Gewerbe',
+ 'Cannot delete invoice!' => 'Rechnung kann nicht gelöscht werden!',
+ 'Cannot delete transaction!' => 'Buchung kann nicht gelöscht werden!',
+ 'Cannot post invoice for a closed period!' => 'Das Rechnungsdatum fällt in einen abgeschlossen Zeitraum!',
+ 'Cannot post invoice!' => 'Rechnung kann nicht gebucht werden!',
+ 'Cannot post payment for a closed period!' => 'Es können keine Zahlungen für abgeschlossene Bücher gebucht werden!',
+ 'Cannot post transaction for a closed period!' => 'Für einen bereits abgeschlossenen Zeitraum kann keine Buchung angelegt werden!',
+ 'Cannot post transaction!' => 'Rechnung kann nicht gebucht werden!',
+ 'Cash' => 'Bar',
+ 'Cc' => 'Cc',
+ 'Change' => 'Wechselgeld',
+ 'Check' => 'Scheck',
+ 'City' => 'Stadt',
+ 'Closed' => 'Geschlossen',
+ 'Company Name' => 'Firmenname',
+ 'Compare to' => 'Gegenüberstellen zu',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Weiter',
+ 'Copies' => 'Kopien',
+ 'Country' => 'Land',
+ 'Credit' => 'Haben',
+ 'Credit Limit' => 'Kreditlimit',
+ 'Curr' => 'Währung',
+ 'Currency' => 'Währung',
+ 'Current' => 'Aktuell',
+ 'Current Earnings' => 'Aktuelles Einkommen',
+ 'Customer' => 'Kunde',
+ 'Customer Number' => 'Kundennummer',
+ 'Customer missing!' => 'Kundenname fehlt!',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Date Paid' => 'Zahlungsdatum',
+ 'Day(s)' => 'Tage',
+ 'Debit' => 'Soll',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Decimalplaces' => 'Dezimalstellen',
+ 'Delete' => 'Löschen',
+ 'Delete Schedule' => 'Zeitplan löschen',
+ 'Delivery Date' => 'Lieferung',
+ 'Department' => 'Abteilung',
+ 'Description' => 'Beschreibung',
+ 'Detail' => 'Einzelheiten',
+ 'Due Date' => 'Fälligkeitsdatum',
+ 'Due Date missing!' => 'Fälligkeitsdatum fehlt!',
+ 'E-mail' => 'eMail',
+ 'E-mail Statement to' => 'Zahlungserinnerung per eMail an',
+ 'E-mail address missing!' => 'eMailadresse fehlt!',
+ 'E-mail message' => 'eMail ',
+ 'E-mailed' => 'eMail gesendet',
+ 'Edit AP Transaction' => 'Eingangsbuchung bearbeiten',
+ 'Edit AR Transaction' => 'Ausgangsbuchung bearbeiten',
+ 'Edit POS Invoice' => 'Barverkaufsrechnung bearbeiten',
+ 'Edit Sales Invoice' => 'Ausgangsrechnung bearbeiten',
+ 'Employee' => 'Arbeitnehmer',
+ 'Every' => 'Jeden',
+ 'Exch' => 'Wkurs.',
+ 'Exchange Rate' => 'Wechselkurs',
+ 'Exchange rate for payment missing!' => 'Wechselkurs für Bezahlung fehlt!',
+ 'Exchange rate missing!' => 'Wechselkurs fehlt!',
+ 'Extended' => 'Summe',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'For' => 'für',
+ 'From' => 'Von',
+ 'GIFI' => 'GIFI',
+ 'Group' => 'Warengruppe',
+ 'Group by' => 'Gruppieren nach',
+ 'Heading' => 'Überschrift',
+ 'ID' => 'Nr.',
+ 'In-line' => 'im Textkörper (Inline)',
+ 'Include Exchange Rate Difference' => 'Wechselkursunterschied aufnehmen',
+ 'Include Payment' => 'Bezahlung aufnehmen',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Income Statement' => 'G & V',
+ 'Internal Notes' => 'Interne Notizen',
+ 'Invoice' => 'Rechnung',
+ 'Invoice Date' => 'Rechnungsdatum',
+ 'Invoice Date missing!' => 'Rechnungsdatum fehlt!',
+ 'Invoice Number' => 'Rechnungsnummer',
+ 'Invoice Number missing!' => 'Rechnungsnummer fehlt!',
+ 'Invoice deleted!' => 'Rechung gelöscht!',
+ 'Item' => 'Artikel',
+ 'Item not on file!' => 'Dieser Artikel ist nicht in der Datenbank!',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Language' => 'Sprache',
+ 'Manager' => 'Geschäftsführer',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Memo' => 'Vermerk',
+ 'Message' => 'Nachricht',
+ 'Method' => 'Methode',
+ 'Month' => 'Monat',
+ 'Month(s)' => 'Monat(e)',
+ 'N/A' => 'N.Z.',
+ 'Next Date' => 'Nächstes Datum',
+ 'No.' => 'Nr.',
+ 'Non-taxable Purchases' => 'Steuerfreie Einkäufe',
+ 'Non-taxable Sales' => 'Steuerfreie Verkäufe',
+ 'Notes' => 'Bemerkungen',
+ 'Nothing selected!' => 'Es wurde nichts ausgewählt!',
+ 'Nothing to print!' => 'Es konnte nichts gedruckt werden!',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Nummer',
+ 'Number missing in Row' => 'Nummer fehlt in Zeile',
+ 'OH' => 'LU',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Open' => 'Offen',
+ 'Order' => 'Bestellung',
+ 'Order Date missing!' => 'Bestelldatum fehlt!',
+ 'Order Number' => 'Bestellnummer',
+ 'Order Number missing!' => 'Bestellnummer fehlt!',
+ 'Overdue' => 'überfällig',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Unsere Reference',
+ 'Packing List' => 'Lieferschein',
+ 'Packing List Date missing!' => 'Datum für Lieferschein fehlt!',
+ 'Packing List Number missing!' => 'Lieferscheinnummer fehlt!',
+ 'Paid' => 'Bezahlt',
+ 'Part' => 'Ware',
+ 'Payment date missing!' => 'Tag der Zahlung fehlt!',
+ 'Payments' => 'Zahlungen',
+ 'Period' => 'Zeitraum',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Lagerliste',
+ 'Post' => 'Buchen',
+ 'Post as new' => 'Neu buchen',
+ 'Posted!' => 'Verbucht!',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Preis',
+ 'Print' => 'Drucken',
+ 'Print and Post' => 'Drucken und Buchen',
+ 'Print and Post as new' => 'Drucken und als neu buchen',
+ 'Printed' => 'Gedruckt',
+ 'Project' => 'Projekt',
+ 'Project Number' => 'Projektnummer',
+ 'Project Transactions' => 'Projektbuchungen',
+ 'Project not on file!' => 'Dieses Projekt ist nicht in der Datenbank!',
+ 'Purchase Order' => 'Einkaufsbestellung',
+ 'Qty' => 'Menge',
+ 'Quarter' => 'Quartal',
+ 'Queue' => 'Warteschlange',
+ 'Queued' => 'gespeichert',
+ 'Quotation' => 'Angebot',
+ 'Quotation Date missing!' => 'Angebotsdatum fehlt!',
+ 'Quotation Number missing!' => 'Angebotsnummer fehlt!',
+ 'Recd' => 'Erh.',
+ 'Receipt' => 'Ausgangsbeleg',
+ 'Receipts' => 'Ausgangsbelege',
+ 'Record in' => 'Buchen auf',
+ 'Recurring Transaction' => 'Wiederholende Buchung',
+ 'Reference' => 'Referenz',
+ 'Remaining' => 'Rest',
+ 'Repeat' => 'Wiederholen',
+ 'Report for' => 'Bericht für',
+ 'Required by' => 'Erforderlich am',
+ 'SKU' => 'Lagerhaltungseinheit',
+ 'Sales Invoice.' => 'Ausgangsrechnung.',
+ 'Sales Order' => 'Auftragsbestätigung',
+ 'Salesperson' => 'Verkäufer',
+ 'Save Schedule' => 'Zeitplan speichern',
+ 'Schedule' => 'Buchungstermine',
+ 'Scheduled' => 'geplant',
+ 'Screen' => 'Bildschirm',
+ 'Select a Printer!' => 'Bitte wählen Sie einen Drucker!',
+ 'Select all' => 'Alle auswählen',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
+ 'Select items' => 'Bitte wählen Sie aus',
+ 'Select payment' => 'Zahlung auswählen',
+ 'Select postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Select txt, postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Serial No.' => 'Seriennummer',
+ 'Service' => 'Dienstleistung',
+ 'Ship' => 'Versenden',
+ 'Ship to' => 'Lieferung an',
+ 'Ship via' => 'Versandweg',
+ 'Shipping Address' => 'Lieferanschrift',
+ 'Shipping Point' => 'Versandort',
+ 'Sort by' => 'Sortieren nach',
+ 'Source' => 'Beleg',
+ 'Standard' => 'Standard',
+ 'Startdate' => 'Startdatum',
+ 'State/Province' => 'Bundesland',
+ 'Statement' => 'Zahlungserinnerung',
+ 'Statement sent to' => 'Zahlungserinnerung verschickt an',
+ 'Statements sent to printer!' => 'Zahlungserinnerungen gedruckt!',
+ 'Subject' => 'Betreff',
+ 'Subtotal' => 'Zwischensumme',
+ 'Summary' => 'Zusammenfassung',
+ 'Tax' => 'Steuer',
+ 'Tax Included' => 'Steuer im Preis enthalten',
+ 'Tax collected' => 'Umsatzsteuer',
+ 'Tax paid' => 'Vorsteuer',
+ 'Text' => 'Text',
+ 'Till' => 'Kasse',
+ 'To' => 'Bis',
+ 'Total' => 'Betrag',
+ 'Trade Discount' => 'Handelsrabatt',
+ 'Transaction' => 'Buchung',
+ 'Transaction deleted!' => 'Buchung gelöscht!',
+ 'Transaction posted!' => 'Buchung getätigt!',
+ 'Translation not on file!' => 'Übersetzung nicht verfügbar',
+ 'Trial Balance' => 'Saldenbilanz',
+ 'Unit' => 'Einh.',
+ 'Update' => 'Übernehmen',
+ 'Vendor' => 'Lieferant',
+ 'Vendor Invoice.' => 'Eingangsrechnung.',
+ 'Vendor Number' => 'Lieferantennummer',
+ 'Vendor missing!' => 'Lieferant fehlt!',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Warning!' => 'Warnung!',
+ 'Week(s)' => 'Woche(n)',
+ 'What type of item is this?' => 'Welche Artikelart ist das?',
+ 'Work Order' => 'Arbeitsblatt',
+ 'Year' => 'Jahr',
+ 'Year(s)' => 'Jahr(e)',
+ 'Yes' => 'Ja',
+ 'You are posting an existing transaction!' => 'Sie buchen eine existierende Buchung',
+ 'You are printing and posting an existing transaction!' => 'Sie drucken und buchen eine existierende Buchung',
+ 'You are printing and saving an existing order' => 'Sie drucken und speichern einen existierenden Auftrag',
+ 'You are printing and saving an existing quotation' => 'Sie drucken und speichern ein existierendes Angebot',
+ 'You are saving an existing order' => 'Sie speichern einen existierenden Auftrag',
+ 'You are saving an existing quotation' => 'Sie speichern eine vorhandenes Angebot',
+ 'Zip/Postal Code' => 'Postleitzahl',
+ 'as at' => 'zum Stand',
+ 'ea' => 'pro',
+ 'for' => 'für',
+ 'for Period' => 'für den Zeitraum',
+ 'posted!' => 'gebucht!',
+ 'sent' => 'verschickt',
+ 'time(s)' => 'mal',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'eingangsbuchung' => 'ap_transaction',
+ 'ausgangsbuchung' => 'ar_transaction',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'zeitplan_löschen' => 'delete_schedule',
+ 'email' => 'e_mail',
+ 'buchen' => 'post',
+ 'neu_buchen' => 'post_as_new',
+ 'drucken' => 'print',
+ 'drucken_und_buchen' => 'print_and_post',
+ 'drucken_und_als_neu_buchen' => 'print_and_post_as_new',
+ 'ausgangsrechnung_' => 'sales_invoice_',
+ 'auftragsbestätigung' => 'sales_order',
+ 'zeitplan_speichern' => 'save_schedule',
+ 'buchungstermine' => 'schedule',
+ 'alle_auswählen' => 'select_all',
+ 'lieferung_an' => 'ship_to',
+ 'Übernehmen' => 'update',
+ 'eingangsrechnung_' => 'vendor_invoice_',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/de/pw b/locale/de/pw
new file mode 100755
index 00000000..54beb05b
--- /dev/null
+++ b/locale/de/pw
@@ -0,0 +1,13 @@
+$self{texts} = {
+ 'Continue' => 'Weiter',
+ 'Password' => 'Passwort',
+ 'Session expired!' => 'Sitzung abgelaufen!',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'weiter' => 'continue',
+};
+
+1;
+
diff --git a/locale/de/rc b/locale/de/rc
new file mode 100755
index 00000000..b4fb8cb8
--- /dev/null
+++ b/locale/de/rc
@@ -0,0 +1,79 @@
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Balance' => 'Bilanz',
+ 'Beginning Balance' => 'Anfangsbilanz',
+ 'Cleared' => 'Entlastet',
+ 'Continue' => 'Weiter',
+ 'Credit' => 'Haben',
+ 'Current' => 'Aktuell',
+ 'Date' => 'Datum',
+ 'Debit' => 'Soll',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Description' => 'Beschreibung',
+ 'Detail' => 'Einzelheiten',
+ 'Difference' => 'Differenz',
+ 'Done' => 'Fertig',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'From' => 'Von',
+ 'Include Exchange Rate Difference' => 'Wechselkursunterschied aufnehmen',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Month' => 'Monat',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Out of balance!' => 'Summen stimmen nicht berein!',
+ 'Outstanding' => 'Offen',
+ 'Period' => 'Zeitraum',
+ 'Quarter' => 'Quartal',
+ 'R' => 'R',
+ 'Reconciliation' => 'Kontenabgleich',
+ 'Reconciliation Report' => 'Kontenabgleichsbericht',
+ 'Select all' => 'Alle auswählen',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Source' => 'Beleg',
+ 'Statement Balance' => 'Auszugsbilanz',
+ 'Summary' => 'Zusammenfassung',
+ 'To' => 'Bis',
+ 'Update' => 'Übernehmen',
+ 'Year' => 'Jahr',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'weiter' => 'continue',
+ 'fertig' => 'done',
+ 'alle_auswählen' => 'select_all',
+ 'Übernehmen' => 'update',
+};
+
+1;
+
diff --git a/locale/de/rp b/locale/de/rp
new file mode 100755
index 00000000..1ff91c26
--- /dev/null
+++ b/locale/de/rp
@@ -0,0 +1,205 @@
+$self{texts} = {
+ 'AP Aging' => 'Offene Verbindl.',
+ 'AR Aging' => 'Forderungsspiegel',
+ 'Account' => 'Konto',
+ 'Account Number' => 'Kontonummer',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Accounts' => 'Konten',
+ 'Accrual' => 'Laufend',
+ 'Address' => 'Adresse',
+ 'Aged' => 'veraltet',
+ 'Aged Overdue' => 'veraltet und überfällig',
+ 'All Accounts' => 'Alle Konten',
+ 'Amount' => 'Netto',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Attachment' => 'als Anhang',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Balance' => 'Bilanz',
+ 'Balance Sheet' => 'Bilanz',
+ 'Bcc' => 'Bcc',
+ 'Cash' => 'Bar',
+ 'Cc' => 'Cc',
+ 'Compare to' => 'Gegenüberstellen zu',
+ 'Continue' => 'Weiter',
+ 'Copies' => 'Kopien',
+ 'Credit' => 'Haben',
+ 'Curr' => 'Währung',
+ 'Current' => 'Aktuell',
+ 'Current Earnings' => 'Aktuelles Einkommen',
+ 'Customer' => 'Kunde',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Day(s)' => 'Tage',
+ 'Debit' => 'Soll',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Decimalplaces' => 'Dezimalstellen',
+ 'Delete Schedule' => 'Zeitplan löschen',
+ 'Department' => 'Abteilung',
+ 'Description' => 'Beschreibung',
+ 'Detail' => 'Einzelheiten',
+ 'Due Date' => 'Zahlungsziel',
+ 'E-mail' => 'eMail',
+ 'E-mail Statement to' => 'Zahlungserinnerung per eMail an',
+ 'E-mail address missing!' => 'eMailadresse fehlt!',
+ 'E-mail message' => 'eMail ',
+ 'Every' => 'Jeden',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'For' => 'für',
+ 'From' => 'Von',
+ 'GIFI' => 'GIFI',
+ 'Heading' => 'Überschrift',
+ 'ID' => 'Nr.',
+ 'In-line' => 'im Textkörper (Inline)',
+ 'Include Exchange Rate Difference' => 'Wechselkursunterschied aufnehmen',
+ 'Include Payment' => 'Bezahlung aufnehmen',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Income Statement' => 'G & V',
+ 'Invoice' => 'Rechnung',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Language' => 'Sprache',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Memo' => 'Vermerk',
+ 'Message' => 'Nachricht',
+ 'Method' => 'Methode',
+ 'Month' => 'Monat',
+ 'Month(s)' => 'Monat(e)',
+ 'N/A' => 'N.Z.',
+ 'Next Date' => 'Nächstes Datum',
+ 'Non-taxable Purchases' => 'Steuerfreie Einkäufe',
+ 'Non-taxable Sales' => 'Steuerfreie Verkäufe',
+ 'Nothing selected!' => 'Es wurde nichts ausgewählt!',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Nummer',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Order' => 'Auftrag',
+ 'Overdue' => 'überfällig',
+ 'PDF' => 'PDF',
+ 'Payments' => 'Zahlungen',
+ 'Period' => 'Zeitraum',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Drucken',
+ 'Project' => 'Projekt',
+ 'Project Number' => 'Projektnummer',
+ 'Project Transactions' => 'Projektbuchungen',
+ 'Project not on file!' => 'Dieses Projekt ist nicht in der Datenbank!',
+ 'Quarter' => 'Quartal',
+ 'Receipts' => 'Ausgangsbelege',
+ 'Recurring Transaction' => 'Wiederkehrende Buchung',
+ 'Reference' => 'Referenz',
+ 'Repeat' => 'Wiederholen',
+ 'Report for' => 'Bericht für',
+ 'Salesperson' => 'Verkäufer',
+ 'Save Schedule' => 'Zeitplan speichern',
+ 'Screen' => 'Bildschirm',
+ 'Select all' => 'Alle auswählen',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
+ 'Select postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Source' => 'Beleg',
+ 'Standard' => 'Standard',
+ 'Startdate' => 'Startdatum',
+ 'Statement' => 'Zahlungserinnerung',
+ 'Statement sent to' => 'Zahlungserinnerung verschickt an',
+ 'Statements sent to printer!' => 'Zahlungserinnerungen gedruckt!',
+ 'Subject' => 'Betreff',
+ 'Subtotal' => 'Zwischensumme',
+ 'Summary' => 'Zusammenfassung',
+ 'Tax' => 'Steuer',
+ 'Tax collected' => 'Umsatzsteuer',
+ 'Tax paid' => 'Vorsteuer',
+ 'Till' => 'Kasse',
+ 'To' => 'Bis',
+ 'Total' => 'Brutto',
+ 'Trial Balance' => 'Saldenbilanz',
+ 'Vendor' => 'Lieferant',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Warning!' => 'Warnung!',
+ 'Week(s)' => 'Woche(n)',
+ 'Year' => 'Jahr',
+ 'Year(s)' => 'Jahr(e)',
+ 'You are posting an existing transaction!' => 'Sie buchen eine existierende Buchung',
+ 'You are printing and posting an existing transaction!' => 'Sie drucken und buchen eine existierende Buchung',
+ 'You are printing and saving an existing order' => 'Sie drucken und speichern einen existierenden Auftrag',
+ 'You are printing and saving an existing quotation' => 'Sie drucken und speichern ein existierendes Angebot',
+ 'You are saving an existing order' => 'Sie speichern einen existierenden Auftrag',
+ 'You are saving an existing quotation' => 'Sie speichern eine vorhandenes Angebot',
+ 'as at' => 'zum Stand',
+ 'for' => 'für',
+ 'for Period' => 'für den Zeitraum',
+ 'sent' => 'verschickt',
+ 'time(s)' => 'mal',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'weiter' => 'continue',
+ 'zeitplan_löschen' => 'delete_schedule',
+ 'email' => 'e_mail',
+ 'drucken' => 'print',
+ 'zeitplan_speichern' => 'save_schedule',
+ 'alle_auswählen' => 'select_all',
+};
+
+1;
+
diff --git a/locale/de_utf/COPYING b/locale/de_utf/COPYING
new file mode 100755
index 00000000..c031e3a5
--- /dev/null
+++ b/locale/de_utf/COPYING
@@ -0,0 +1,24 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (C) 2002
+#
+# German texts:
+#
+# Author: Thomas Bayen <tbayen@bayen.de>
+# Gunter Ohrner <G.Ohrner@post.rwth-aachen.de>
+# Jens Koerner <jens@kleinflintbek.net>
+# Wolfgang Foerster <wf@inventronik.de>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+######################################################################
diff --git a/locale/de_utf/LANGUAGE b/locale/de_utf/LANGUAGE
new file mode 100755
index 00000000..5a99acf8
--- /dev/null
+++ b/locale/de_utf/LANGUAGE
@@ -0,0 +1 @@
+German (UTF-8)
diff --git a/locale/de_utf/Num2text b/locale/de_utf/Num2text
new file mode 100755
index 00000000..a87c4eba
--- /dev/null
+++ b/locale/de_utf/Num2text
@@ -0,0 +1,185 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (C) 2002
+#
+# Author: Dieter Simader
+# Email: dsimader@sql-ledger.org
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+# Contributors:
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#======================================================================
+#
+# this is a variation of the Lingua package
+# written for check and receipt printing
+# it returns a properly formatted text string
+# for a number up to 10**12
+
+sub init {
+ my $self = shift;
+
+ %{ $self->{numbername} } =
+ (0 => 'Null',
+ 1 => 'ein',
+ 2 => 'zwei',
+ 3 => 'drei',
+ 4 => 'vier',
+ 5 => 'fünf',
+ 6 => 'sechs',
+ 7 => 'sieben',
+ 8 => 'acht',
+ 9 => 'neun',
+ 10 => 'zehn',
+ 11 => 'elf',
+ 12 => 'zwölf',
+ 13 => 'dreizehn',
+ 14 => 'vierzehn',
+ 15 => 'fünfzehn',
+ 16 => 'sechzehn',
+ 17 => 'siebzehn',
+ 18 => 'achtzehn',
+ 19 => 'neunzehn',
+ 20 => 'zwanzig',
+ 30 => 'dreissig',
+ 40 => 'vierzig',
+ 50 => 'fünfzig',
+ 60 => 'sechzig',
+ 70 => 'siebzig',
+ 80 => 'achtzig',
+ 90 => 'neunzig',
+ 10**2 => 'hundert',
+ 10**3 => 'tausend',
+ 10**6 => 'million',
+ 10**9 => 'milliarde',
+ 10**12 => 'billion'
+ );
+
+}
+
+
+sub num2text {
+ my ($self, $amount) = @_;
+
+ return $self->{numbername}{0} unless $amount;
+
+ my @textnumber = ();
+
+ # split amount into chunks of 3
+ my @num = reverse split //, abs($amount);
+ my @numblock = ();
+ my ($i, $appendn);
+ my @a = ();
+
+ while (@num) {
+ @a = ();
+ for (1 .. 3) {
+ push @a, shift @num;
+ }
+ push @numblock, join / /, reverse @a;
+ }
+
+ my $belowhundred = !$#numblock;
+
+ while (@numblock) {
+
+ $i = $#numblock;
+ @num = split //, $numblock[$i];
+ $appendn = "";
+
+ $numblock[$i] *= 1;
+
+ if ($numblock[$i] == 0) {
+ pop @numblock;
+ next;
+ }
+
+ if ($numblock[$i] > 99) {
+ # the one from hundreds
+ push @textnumber, $self->{numbername}{$num[0]};
+
+ # add hundred designation
+ push @textnumber, $self->{numbername}{10**2};
+
+ # reduce numblock
+ $numblock[$i] -= $num[0] * 100;
+ }
+
+ $appendn = 'en' if ($i == 2);
+ $appendn = 'n' if ($i > 2);
+
+ if ($numblock[$i] > 9) {
+ # tens
+ push @textnumber, $self->format_ten($numblock[$i], $belowhundred);
+ } elsif ($numblock[$i] > 1) {
+ # ones
+ push @textnumber, $self->{numbername}{$numblock[$i]};
+ } elsif ($numblock[$i] == 1) {
+ if ($i == 0) {
+ push @textnumber, $self->{numbername}{$numblock[$i]}.'s';
+ } else {
+ if ($i >= 2) {
+ push @textnumber, $self->{numbername}{$numblock[$i]}.'e';
+ } else {
+ push @textnumber, $self->{numbername}{$numblock[$i]};
+ }
+ }
+ $appendn = "";
+ }
+
+ # add thousand, million
+ if ($i) {
+ $amount = 10**($i * 3);
+ push @textnumber, $self->{numbername}{$amount}.$appendn;
+ }
+
+ pop @numblock;
+
+ }
+
+ join '', @textnumber;
+
+}
+
+
+sub format_ten {
+ my ($self, $amount, $belowhundred) = @_;
+
+ my $textnumber = "";
+ my @num = split //, $amount;
+
+ if ($amount > 20) {
+ if ($num[1] == 0) {
+ $textnumber = $self->{numbername}{$amount};
+ } else {
+ if ($belowhundred) {
+ $amount = $num[0] * 10;
+ $textnumber = $self->{numbername}{$num[1]}.'und'.$self->{numbername}{$amount};
+ } else {
+ $amount = $num[0] * 10;
+ $textnumber = $self->{numbername}{$amount}.$self->{numbername}{$num[1]};
+ $textnumber .= 's' if ($num[1] == 1);
+ }
+ }
+ } else {
+ $textnumber = $self->{numbername}{$amount};
+ }
+
+ $textnumber;
+
+}
+
+
+1;
+
diff --git a/locale/de_utf/aa b/locale/de_utf/aa
new file mode 100755
index 00000000..57620eb0
--- /dev/null
+++ b/locale/de_utf/aa
@@ -0,0 +1,149 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Outstanding' => 'Offene Verbindlichkeiten',
+ 'AP Transaction' => 'Eingangsbuchung',
+ 'AP Transactions' => 'Eingangsbuchungen',
+ 'AR Outstanding' => 'Offene Forderungen.',
+ 'AR Transaction' => 'Ausgangsbuchung',
+ 'AR Transactions' => 'Ausgangsbuchungen',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Amount' => 'Betrag',
+ 'Amount Due' => 'Betrag fällig',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Transaction' => 'Buchung wirklich löschen?',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Cannot delete transaction!' => 'Buchung kann nicht gelöscht werden!',
+ 'Cannot post payment for a closed period!' => 'Es können keine Zahlungen für abgeschlossene Bücher gebucht werden!',
+ 'Cannot post transaction for a closed period!' => 'Für einen bereits abgeschlossenen Zeitraum kann keine Buchung angelegt werden!',
+ 'Cannot post transaction!' => 'Rechnung kann nicht gebucht werden!',
+ 'Check' => 'Scheck',
+ 'Closed' => 'Geschlossen',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Continue' => 'Weiter',
+ 'Credit' => 'Haben',
+ 'Credit Limit' => 'Kreditlimit',
+ 'Curr' => 'Währung',
+ 'Currency' => 'Währung',
+ 'Current' => 'Aktuell',
+ 'Customer' => 'Kunde',
+ 'Customer missing!' => 'Kundenname fehlt!',
+ 'Date' => 'Datum',
+ 'Date Paid' => 'Zahlungsdatum',
+ 'Debit' => 'Soll',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Delete' => 'Löschen',
+ 'Department' => 'Abteilung',
+ 'Description' => 'Beschreibung',
+ 'Detail' => 'Einzelheiten',
+ 'Due Date' => 'Fälligkeitsdatum',
+ 'Due Date missing!' => 'Fälligkeitsdatum fehlt!',
+ 'Employee' => 'Arbeitnehmer',
+ 'Exch' => 'Wkurs.',
+ 'Exchange Rate' => 'Wechselkurs',
+ 'Exchange rate for payment missing!' => 'Wechselkurs für Bezahlung fehlt!',
+ 'Exchange rate missing!' => 'Wechselkurs fehlt!',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'From' => 'Von',
+ 'ID' => 'Nr.',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Invoice' => 'Rechnung',
+ 'Invoice Date' => 'Rechnungsdatum',
+ 'Invoice Date missing!' => 'Rechnungsdatum fehlt!',
+ 'Invoice Number' => 'Rechnungsnummer',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Manager' => 'Geschäftsführer',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Memo' => 'Vermerk',
+ 'Month' => 'Monat',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Bemerkungen',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Open' => 'Offen',
+ 'Order' => 'Bestellung',
+ 'Order Number' => 'Bestellnummer',
+ 'Paid' => 'Bezahlt',
+ 'Payment date missing!' => 'Tag der Zahlung fehlt!',
+ 'Payments' => 'Zahlungen',
+ 'Period' => 'Zeitraum',
+ 'Post' => 'Buchen',
+ 'Post as new' => 'Neu buchen',
+ 'Print' => 'Drucken',
+ 'Print and Post' => 'Drucken und buchen',
+ 'Project' => 'Projekt',
+ 'Quarter' => 'Quartal',
+ 'Receipt' => 'Quittung',
+ 'Remaining' => 'Rest',
+ 'Salesperson' => 'Verkäufer',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Ship to' => 'Lieferung an',
+ 'Ship via' => 'Versandweg',
+ 'Shipping Point' => 'Zielort',
+ 'Source' => 'Beleg',
+ 'Subtotal' => 'Zwischensumme',
+ 'Summary' => 'Zusammenfassung',
+ 'Tax' => 'Steuer',
+ 'Tax Included' => 'Steuer im Preis enthalten',
+ 'Till' => 'Kassa',
+ 'To' => 'Bis',
+ 'Total' => 'Betrag',
+ 'Transaction deleted!' => 'Buchung gelöscht!',
+ 'Transaction posted!' => 'Buchung getätigt!',
+ 'Update' => 'Erneuern',
+ 'Vendor' => 'Lieferant',
+ 'Vendor missing!' => 'Lieferant fehlt!',
+ 'Year' => 'Jahr',
+ 'Yes' => 'Ja',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'eingangsbuchung' => 'ap_transaction',
+ 'ausgangsbuchung' => 'ar_transaction',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'buchen' => 'post',
+ 'neu_buchen' => 'post_as_new',
+ 'drucken' => 'print',
+ 'drucken_und_buchen' => 'print_and_post',
+ 'lieferung_an' => 'ship_to',
+ 'erneuern' => 'update',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/de_utf/admin b/locale/de_utf/admin
new file mode 100755
index 00000000..3b150793
--- /dev/null
+++ b/locale/de_utf/admin
@@ -0,0 +1,139 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Access Control' => 'Zugriffkontrolle',
+ 'Accounting' => 'Buchhaltung',
+ 'Add User' => 'Benutzer anlegen',
+ 'Address' => 'Adresse',
+ 'Administration' => 'Verwaltung',
+ 'Administrator' => 'Verwalter',
+ 'All Datasets up to date!' => 'Alle Datenbanken sind auf aktuellem Stand.',
+ 'Cannot create Lock!' => 'Cannot create Lock!',
+ 'Change Admin Password' => 'Verwalterpasswort �ändern',
+ 'Change Password' => 'Passwort ändern',
+ 'Click on login name to edit!' => 'Zum Bearbeiten den Benutzernamen anklicken!',
+ 'Company' => 'Firma',
+ 'Connect to' => 'Als Vorlage verwenden',
+ 'Continue' => 'Weiter',
+ 'Create Chart of Accounts' => 'Kontenplan anlegen',
+ 'Create Dataset' => 'Datenbank anlegen',
+ 'DBI not installed!' => 'DBI ist nicht installiert!',
+ 'Database' => 'Datenbank',
+ 'Database Administration' => 'Datenbankverwaltung',
+ 'Database Driver not checked!' => 'Kein Datenbanktreiber ausgewählt!',
+ 'Database User missing!' => 'Datenbankbenutzer fehlt!',
+ 'Dataset' => 'Datenbank',
+ 'Dataset missing!' => 'Datenbank fehlt!',
+ 'Dataset updated!' => 'Datenbank erneuert!',
+ 'Date Format' => 'Datumsformat',
+ 'Delete' => 'Löschen',
+ 'Delete Dataset' => 'Datenbank löschen',
+ 'Directory' => 'Verzeichnis',
+ 'Driver' => 'Treiber',
+ 'Dropdown Limit' => 'Auswahllistenlimit',
+ 'E-mail' => 'eMail',
+ 'Edit User' => 'Benutzerdaten bearbeiten',
+ 'Existing Datasets' => 'Existierende Datenbanken',
+ 'Fax' => 'Fax',
+ 'Host' => 'Datenbank-Rechner',
+ 'Hostname missing!' => 'Rechnername fehlt!',
+ 'Language' => 'Sprache',
+ 'Lock System' => 'System sperren',
+ 'Lockfile created!' => 'gesichert!',
+ 'Lockfile removed!' => 'entsichert!',
+ 'Login' => 'Anmelden',
+ 'Login name missing!' => 'Benutzername fehlt!',
+ 'Logout' => 'Abmelden',
+ 'Manager' => 'Geschäftsführer',
+ 'Menu Width' => 'Menübreite',
+ 'Multibyte Encoding' => 'Multibyte Encoding',
+ 'Name' => 'Name',
+ 'New Templates' => 'Neue Vorlagen',
+ 'No Database Drivers available!' => 'Kein Datenbanktreiber verfügbar!',
+ 'No Dataset selected!' => 'Keine Datenbank ausgewählt!',
+ 'Nothing to delete!' => 'Es konnte nichts gelöscht werden!',
+ 'Number Format' => 'Zahlenformat',
+ 'Oracle Database Administration' => 'Oracle Datenbankverwaltung',
+ 'Password' => 'Passwort',
+ 'Password changed!' => 'Passwort geändert!',
+ 'Pg Database Administration' => 'Pg Datenbankverwaltung',
+ 'PgPP Database Administration' => 'PgPP Datenbankverwaltung',
+ 'Phone' => 'Tel.',
+ 'Port' => 'Port',
+ 'Port missing!' => 'Portangabe fehlt!',
+ 'Printer' => 'Drucker',
+ 'Save' => 'Speichern',
+ 'Setup Templates' => 'Vorlagen auswählen',
+ 'Signature' => 'Unterschrift',
+ 'Stylesheet' => 'Stilvorlage',
+ 'Templates' => 'Vorlagen',
+ 'The following Datasets are not in use and can be deleted' => 'Die folgenden Datenbanken sind nicht in Verwendung und können gelöscht werden',
+ 'The following Datasets need to be updated' => 'Folgende Datenbanken müssen aktualisiert werden',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'In diesem Schritt werden bestehende Datenbanken gesucht. Es werden noch keine Änderungen vorgenommen!',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Um einer Gruppe einen neuen Benutzer hinzuzufügen, ändern und speichern Sie am einfachsten einen bestehenden Zugriffsnamen. Unter dem neuen Namen wird dann ein Benutzer mit denselben Einstellungen angelegt.',
+ 'Unlock System' => 'System entsperren',
+ 'Update Dataset' => 'Datenbank aktualisieren',
+ 'Use Templates' => 'Benutze Vorlagen',
+ 'User' => 'Benutzer',
+ 'User deleted!' => 'Benutzer gelöscht!',
+ 'User saved!' => 'Benutzer gespeichert!',
+ 'Version' => 'Version',
+ 'does not exist' => 'existiert nicht',
+ 'is already a member!' => 'ist bereits ein Mitglied!',
+ 'localhost' => 'lokaler Rechner',
+ 'locked!' => 'gesperrt!',
+ 'successfully created!' => 'wurde erfolgreich erstellt',
+ 'successfully deleted!' => 'wurde erfolgreich gelöscht',
+ 'website' => 'Webseite',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'benutzer_anlegen' => 'add_user',
+ 'verwalterpasswort_�ändern' => 'change_admin_password',
+ 'passwort_ändern' => 'change_password',
+ 'weiter' => 'continue',
+ 'datenbank_anlegen' => 'create_dataset',
+ 'löschen' => 'delete',
+ 'datenbank_löschen' => 'delete_dataset',
+ 'system_sperren' => 'lock_system',
+ 'anmelden' => 'login',
+ 'abmelden' => 'logout',
+ 'oracle_datenbankverwaltung' => 'oracle_database_administration',
+ 'pg_datenbankverwaltung' => 'pg_database_administration',
+ 'pgpp_datenbankverwaltung' => 'pgpp_database_administration',
+ 'speichern' => 'save',
+ 'system_entsperren' => 'unlock_system',
+ 'datenbank_aktualisieren' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/de_utf/am b/locale/de_utf/am
new file mode 100755
index 00000000..426424af
--- /dev/null
+++ b/locale/de_utf/am
@@ -0,0 +1,271 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP' => 'Verbindlichkeiten',
+ 'AR' => 'Forderungen',
+ 'Account' => 'Konto',
+ 'Account Number' => 'Kontonummer',
+ 'Account Number missing!' => 'Kontonummer fehlt!',
+ 'Account Type' => 'Kontoart',
+ 'Account Type missing!' => 'Kontoart fehlt!',
+ 'Account deleted!' => 'Konto gelöscht!',
+ 'Account does not exist!' => 'Konto existiert nicht!',
+ 'Account saved!' => 'Konto gespeichert!',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Accrual' => 'Laufend',
+ 'Add Account' => 'Konto anlegen',
+ 'Add Business' => 'Gewerbe anlegen',
+ 'Add Department' => 'Abteilung anlegen',
+ 'Add GIFI' => 'GIFI anlegen',
+ 'Add Language' => 'Sprache anlegen',
+ 'Add SIC' => 'SIC anlegen',
+ 'Add Warehouse' => 'Warenlager anlegen',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Betrag',
+ 'Asset' => 'Aktiva/Mittelverwendung',
+ 'Audit Control' => 'Bücherkontrolle',
+ 'Audit trail removed up to' => 'Revisionsnachfolge gelöscht bis zu',
+ 'Backup sent to' => 'Eine Sicherungskopie wurde gesandt an',
+ 'Bin List' => 'Lagerliste',
+ 'Books are open' => 'Die Bücher sind geöffnet.',
+ 'Business Number' => 'Firmennummer',
+ 'Business deleted!' => 'Gewerbe gelöscht!',
+ 'Business saved!' => 'Gewerbe gespeichert!',
+ 'COGS' => 'Umsatzkosten',
+ 'Cannot delete account!' => 'Konto kann nicht gelöscht werden!',
+ 'Cannot delete default account!' => 'Das Standard-Konto kann nicht gelöscht werden!',
+ 'Cannot save account!' => 'Konto kann nicht gespeichert werden!',
+ 'Cannot save defaults!' => 'Einstellungen konnten nicht gespeichert werden!',
+ 'Cannot save preferences!' => 'Benutzereinstellungen können nicht gespeichert werden!',
+ 'Cannot set account for more than one of AR, AP or IC' => 'AR, AP und IC Konten können nicht auf andere Konten gleichzeitig eingestellt werden',
+ 'Cannot set multiple options for' => 'Mehr als eine Optionen nicht erlaubt für : ',
+ 'Cash' => 'Kasse',
+ 'Chart of Accounts' => 'Kontenübersicht',
+ 'Close Books up to' => 'Die Bücher abschließn bis zum',
+ 'Code' => 'Kodex',
+ 'Code missing!' => 'Kodex fehlt!',
+ 'Company' => 'Firma',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Continue' => 'Weiter',
+ 'Contra' => 'Gegenkonto',
+ 'Copy to COA' => 'Auf COA kopieren',
+ 'Cost Center' => 'Kostenverwaltung',
+ 'Credit' => 'Haben',
+ 'Customer Number' => 'Kundennummer',
+ 'Dataset' => 'Datenbank',
+ 'Date Format' => 'Datumsformat',
+ 'Debit' => 'Soll',
+ 'Defaults saved!' => 'Einstellungen gespeichert!',
+ 'Delete' => 'Löschen',
+ 'Delete Account' => 'Konto löschen',
+ 'Department deleted!' => 'Abteilung gelöscht!',
+ 'Department saved!' => 'Abteilung gespeichert!',
+ 'Departments' => 'Abteilungen',
+ 'Description' => 'Beschreibung',
+ 'Description missing!' => 'Beschreibung fehlt!',
+ 'Discount' => 'Rabatt',
+ 'Dropdown Limit' => 'Auswahllistenlimit',
+ 'E-mail' => 'eMail',
+ 'E-mail address missing!' => 'eMailadresse fehlt!',
+ 'Edit' => 'Bearbeiten',
+ 'Edit Account' => 'Kontodaten bearbeiten',
+ 'Edit Business' => 'Gewerbe bearbeiten',
+ 'Edit Department' => 'Abteilung bearbeiten',
+ 'Edit GIFI' => 'GIFI editieren',
+ 'Edit Language' => 'Sprache bearbeiten',
+ 'Edit Preferences for' => 'Benutzereinstellungen für',
+ 'Edit SIC' => 'SIC editieren',
+ 'Edit Template' => 'Vorlage bearbeiten',
+ 'Edit Warehouse' => 'Warenlager bearbeiten',
+ 'Enforce transaction reversal for all dates' => 'Kontraeintragungen für jeden Zeitraum aktualisieren',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Durch Doppelpunkte getrennte Währungskürzel mit maximal 3 Buchstaben aufführen; Ihre eigene Landeswährung zuerst (z.B. EUR:USD:CAD)',
+ 'Equity' => 'Passiva/Eigenkapital',
+ 'Expense' => 'Aufwand',
+ 'Expense/Asset' => 'Aufwand/Anlagen',
+ 'Fax' => 'Fax',
+ 'Foreign Exchange Gain' => 'Wechselkurserträge',
+ 'Foreign Exchange Loss' => 'Wechselkursaufwendungen',
+ 'GIFI' => 'GIFI',
+ 'GIFI deleted!' => 'GIFI gelöscht!',
+ 'GIFI missing!' => 'GIFI fehlt!',
+ 'GIFI saved!' => 'GIFI gespeichert!',
+ 'GL Transaction' => 'Hauptbucheintragung',
+ 'Heading' => 'Ãœberschrift',
+ 'ID' => 'Nr.',
+ 'Include in drop-down menus' => 'In Aufklapp-Menü aufnehmen',
+ 'Income' => 'Einnahmen',
+ 'Inventory' => 'Inventar',
+ 'Invoice' => 'Rechnung',
+ 'Is this a summary account to record' => 'Summenkonto für',
+ 'Language' => 'Sprache',
+ 'Language deleted!' => 'Sprache gelöscht!',
+ 'Language saved!' => 'Sprache gespeichert!',
+ 'Languages' => 'Sprachen',
+ 'Last Numbers & Default Accounts' => 'Laufende Zähler und Standardkonten',
+ 'Liability' => 'Passiva/Mittelherkunft',
+ 'Link' => 'Verknüpfungen',
+ 'Menu Width' => 'Menübreite',
+ 'Method' => 'Methode',
+ 'Month' => 'Monat',
+ 'Name' => 'Name',
+ 'No' => 'Nein',
+ 'No email address for' => 'Keine eMailadresse für',
+ 'Number' => 'Nummer',
+ 'Number Format' => 'Zahlenformat',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Packliste',
+ 'Password' => 'Passwort',
+ 'Payables' => 'Verbindlichkeiten',
+ 'Payment' => 'Belastung',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Lagerliste',
+ 'Postscript' => 'Postscript',
+ 'Preferences saved!' => 'Einstellungen gespeichert!',
+ 'Print' => 'Drucken',
+ 'Printer' => 'Drucker',
+ 'Profit Center' => 'Gewinnverwaltung',
+ 'Purchase Order' => 'Einkaufsbestellung',
+ 'Purchase Orders' => 'Einkaufsbestellungen',
+ 'RFQ Number' => 'Anfragenummer',
+ 'Rate' => 'Prozentsatz',
+ 'Receivables' => 'Forderungen',
+ 'Reference' => 'Referenz',
+ 'Retained Earnings' => 'Verbliebenes Einkommen',
+ 'SIC deleted!' => 'SIC gelöscht!',
+ 'SIC saved!' => 'SIC gespeichert!',
+ 'Sales Invoice' => 'Ausgangsrechnung',
+ 'Sales Order' => 'Verkaufsbeleg',
+ 'Sales Orders' => 'Verkaufsbelege',
+ 'Save' => 'Speichern',
+ 'Save as new' => 'als neu speichern',
+ 'Signature' => 'Unterschrift',
+ 'Standard Industrial Codes' => 'Standard Industrie Norm',
+ 'Stylesheet' => 'Stilvorlage',
+ 'System Defaults' => 'Systemeinstellungen',
+ 'Tax' => 'Steuer',
+ 'Template saved!' => 'Schablone gespeichert!',
+ 'Transaction reversal enforced for all dates' => 'Fehleintragungen müssen für jeden Zeitraum mit einer Kontraeintragung ausgebessert werden',
+ 'Transaction reversal enforced up to' => 'Fehleintragungen können bis zu dem angenebenen Zeitraum nur mit einer Kontraeintragung ausgebessert werden',
+ 'Type of Business' => 'Gewerbe',
+ 'Update' => 'Erneuern',
+ 'User' => 'Benutzer',
+ 'Vendor Invoice' => 'Einkaufsrechnung',
+ 'Vendor Number' => 'Lieferantennummer',
+ 'Version' => 'Version',
+ 'Warehouse deleted!' => 'Warenlager gelöscht!',
+ 'Warehouse saved!' => 'Warenlager gespeichert!',
+ 'Warehouses' => 'Warenlager',
+ 'Weight Unit' => 'Gewichtseinh.',
+ 'Work Order' => 'Arbeitsblatt',
+ 'Year' => 'Jahr',
+ 'Yearend' => 'Jahresabschluss',
+ 'Yearend date missing!' => 'Datum für Jahresabschluss fehlt!',
+ 'Yearend posted!' => 'Jahresabschluss gespeichert!',
+ 'Yearend posting failed!' => 'Buchung Jahresabschluss missglückt!',
+ 'Yes' => 'Ja',
+ 'account cannot be set to any other type of account' => 'Dieses Konto kann nicht auf andere Typen eingestellt werden',
+ 'done' => 'fertig',
+ 'localhost' => 'lokaler Rechner',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'konto_anlegen' => 'add_account',
+ 'gewerbe_anlegen' => 'add_business',
+ 'abteilung_anlegen' => 'add_department',
+ 'sprache_anlegen' => 'add_language',
+ 'sic_anlegen' => 'add_sic',
+ 'warenlager_anlegen' => 'add_warehouse',
+ 'weiter' => 'continue',
+ 'auf_coa_kopieren' => 'copy_to_coa',
+ 'löschen' => 'delete',
+ 'bearbeiten' => 'edit',
+ 'kontodaten_bearbeiten' => 'edit_account',
+ 'speichern' => 'save',
+ 'als_neu_speichern' => 'save_as_new',
+ 'erneuern' => 'update',
+};
+
+1;
+
diff --git a/locale/de_utf/ap b/locale/de_utf/ap
new file mode 100755
index 00000000..212656f7
--- /dev/null
+++ b/locale/de_utf/ap
@@ -0,0 +1,201 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Outstanding' => 'Offene Verbindlichkeiten',
+ 'AP Transaction' => 'Eingangsbuchung',
+ 'AP Transactions' => 'Eingangsbuchungen',
+ 'AR Outstanding' => 'Offene Forderungen.',
+ 'AR Transaction' => 'Ausgangsbuchung',
+ 'AR Transactions' => 'Ausgangsbuchungen',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Betrag',
+ 'Amount Due' => 'Betrag fällig',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Transaction' => 'Buchung wirklich löschen?',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'Buchung kann nicht gelöscht werden!',
+ 'Cannot post payment for a closed period!' => 'Es können keine Zahlungen für abgeschlossene Bücher gebucht werden!',
+ 'Cannot post transaction for a closed period!' => 'Für einen bereits abgeschlossenen Zeitraum kann keine Buchung angelegt werden!',
+ 'Cannot post transaction!' => 'Rechnung kann nicht gebucht werden!',
+ 'Cc' => 'Cc',
+ 'Check' => 'Scheck',
+ 'Closed' => 'Geschlossen',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Continue' => 'Weiter',
+ 'Credit' => 'Haben',
+ 'Credit Limit' => 'Kreditlimit',
+ 'Curr' => 'Währung',
+ 'Currency' => 'Währung',
+ 'Current' => 'Aktuell',
+ 'Customer' => 'Kunde',
+ 'Customer missing!' => 'Kundenname fehlt!',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Date Paid' => 'Zahlungsdatum',
+ 'Debit' => 'Soll',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Delete' => 'Löschen',
+ 'Department' => 'Abteilung',
+ 'Description' => 'Beschreibung',
+ 'Detail' => 'Einzelheiten',
+ 'Due Date' => 'Fälligkeitsdatum',
+ 'Due Date missing!' => 'Fälligkeitsdatum fehlt!',
+ 'E-mail' => 'eMail',
+ 'Employee' => 'Arbeitnehmer',
+ 'Exch' => 'Wkurs.',
+ 'Exchange Rate' => 'Wechselkurs',
+ 'Exchange rate for payment missing!' => 'Wechselkurs für Bezahlung fehlt!',
+ 'Exchange rate missing!' => 'Wechselkurs fehlt!',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'From' => 'Von',
+ 'ID' => 'Nr.',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Invoice' => 'Rechnung',
+ 'Invoice Date' => 'Rechnungsdatum',
+ 'Invoice Date missing!' => 'Rechnungsdatum fehlt!',
+ 'Invoice Number' => 'Rechnungsnummer',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Manager' => 'Geschäftsführer',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Memo' => 'Vermerk',
+ 'Message' => 'Nachricht',
+ 'Month' => 'Monat',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Bemerkungen',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Nummer',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Open' => 'Offen',
+ 'Order' => 'Bestellung',
+ 'Order Number' => 'Bestellnummer',
+ 'PDF' => 'PDF',
+ 'Paid' => 'Bezahlt',
+ 'Payment date missing!' => 'Tag der Zahlung fehlt!',
+ 'Payments' => 'Zahlungen',
+ 'Period' => 'Zeitraum',
+ 'Post' => 'Buchen',
+ 'Post as new' => 'Neu buchen',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Drucken',
+ 'Print and Post' => 'Drucken und buchen',
+ 'Printed' => 'Gedruckt',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Dieses Projekt ist nicht in der Datenbank!',
+ 'Quarter' => 'Quartal',
+ 'Receipt' => 'Quittung',
+ 'Reference' => 'Referenz',
+ 'Remaining' => 'Rest',
+ 'Salesperson' => 'Verkäufer',
+ 'Screen' => 'Bildschirm',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
+ 'Select postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Ship to' => 'Lieferung an',
+ 'Ship via' => 'Versandweg',
+ 'Shipping Point' => 'Zielort',
+ 'Source' => 'Beleg',
+ 'Startdate' => 'Beschäftigt seit',
+ 'Subject' => 'Betreff',
+ 'Subtotal' => 'Zwischensumme',
+ 'Summary' => 'Zusammenfassung',
+ 'Tax' => 'Steuer',
+ 'Tax Included' => 'Steuer im Preis enthalten',
+ 'Till' => 'Kassa',
+ 'To' => 'Bis',
+ 'Total' => 'Betrag',
+ 'Transaction deleted!' => 'Buchung gelöscht!',
+ 'Transaction posted!' => 'Buchung getätigt!',
+ 'Update' => 'Erneuern',
+ 'Vendor' => 'Lieferant',
+ 'Vendor missing!' => 'Lieferant fehlt!',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Warning!' => 'Warnung!',
+ 'Year' => 'Jahr',
+ 'Yes' => 'Ja',
+ 'sent' => 'verschickt',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'eingangsbuchung' => 'ap_transaction',
+ 'ausgangsbuchung' => 'ar_transaction',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'buchen' => 'post',
+ 'neu_buchen' => 'post_as_new',
+ 'drucken' => 'print',
+ 'drucken_und_buchen' => 'print_and_post',
+ 'lieferung_an' => 'ship_to',
+ 'erneuern' => 'update',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/de_utf/ar b/locale/de_utf/ar
new file mode 100755
index 00000000..212656f7
--- /dev/null
+++ b/locale/de_utf/ar
@@ -0,0 +1,201 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Outstanding' => 'Offene Verbindlichkeiten',
+ 'AP Transaction' => 'Eingangsbuchung',
+ 'AP Transactions' => 'Eingangsbuchungen',
+ 'AR Outstanding' => 'Offene Forderungen.',
+ 'AR Transaction' => 'Ausgangsbuchung',
+ 'AR Transactions' => 'Ausgangsbuchungen',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Betrag',
+ 'Amount Due' => 'Betrag fällig',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Transaction' => 'Buchung wirklich löschen?',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'Buchung kann nicht gelöscht werden!',
+ 'Cannot post payment for a closed period!' => 'Es können keine Zahlungen für abgeschlossene Bücher gebucht werden!',
+ 'Cannot post transaction for a closed period!' => 'Für einen bereits abgeschlossenen Zeitraum kann keine Buchung angelegt werden!',
+ 'Cannot post transaction!' => 'Rechnung kann nicht gebucht werden!',
+ 'Cc' => 'Cc',
+ 'Check' => 'Scheck',
+ 'Closed' => 'Geschlossen',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Continue' => 'Weiter',
+ 'Credit' => 'Haben',
+ 'Credit Limit' => 'Kreditlimit',
+ 'Curr' => 'Währung',
+ 'Currency' => 'Währung',
+ 'Current' => 'Aktuell',
+ 'Customer' => 'Kunde',
+ 'Customer missing!' => 'Kundenname fehlt!',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Date Paid' => 'Zahlungsdatum',
+ 'Debit' => 'Soll',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Delete' => 'Löschen',
+ 'Department' => 'Abteilung',
+ 'Description' => 'Beschreibung',
+ 'Detail' => 'Einzelheiten',
+ 'Due Date' => 'Fälligkeitsdatum',
+ 'Due Date missing!' => 'Fälligkeitsdatum fehlt!',
+ 'E-mail' => 'eMail',
+ 'Employee' => 'Arbeitnehmer',
+ 'Exch' => 'Wkurs.',
+ 'Exchange Rate' => 'Wechselkurs',
+ 'Exchange rate for payment missing!' => 'Wechselkurs für Bezahlung fehlt!',
+ 'Exchange rate missing!' => 'Wechselkurs fehlt!',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'From' => 'Von',
+ 'ID' => 'Nr.',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Invoice' => 'Rechnung',
+ 'Invoice Date' => 'Rechnungsdatum',
+ 'Invoice Date missing!' => 'Rechnungsdatum fehlt!',
+ 'Invoice Number' => 'Rechnungsnummer',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Manager' => 'Geschäftsführer',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Memo' => 'Vermerk',
+ 'Message' => 'Nachricht',
+ 'Month' => 'Monat',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Bemerkungen',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Nummer',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Open' => 'Offen',
+ 'Order' => 'Bestellung',
+ 'Order Number' => 'Bestellnummer',
+ 'PDF' => 'PDF',
+ 'Paid' => 'Bezahlt',
+ 'Payment date missing!' => 'Tag der Zahlung fehlt!',
+ 'Payments' => 'Zahlungen',
+ 'Period' => 'Zeitraum',
+ 'Post' => 'Buchen',
+ 'Post as new' => 'Neu buchen',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Drucken',
+ 'Print and Post' => 'Drucken und buchen',
+ 'Printed' => 'Gedruckt',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Dieses Projekt ist nicht in der Datenbank!',
+ 'Quarter' => 'Quartal',
+ 'Receipt' => 'Quittung',
+ 'Reference' => 'Referenz',
+ 'Remaining' => 'Rest',
+ 'Salesperson' => 'Verkäufer',
+ 'Screen' => 'Bildschirm',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
+ 'Select postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Ship to' => 'Lieferung an',
+ 'Ship via' => 'Versandweg',
+ 'Shipping Point' => 'Zielort',
+ 'Source' => 'Beleg',
+ 'Startdate' => 'Beschäftigt seit',
+ 'Subject' => 'Betreff',
+ 'Subtotal' => 'Zwischensumme',
+ 'Summary' => 'Zusammenfassung',
+ 'Tax' => 'Steuer',
+ 'Tax Included' => 'Steuer im Preis enthalten',
+ 'Till' => 'Kassa',
+ 'To' => 'Bis',
+ 'Total' => 'Betrag',
+ 'Transaction deleted!' => 'Buchung gelöscht!',
+ 'Transaction posted!' => 'Buchung getätigt!',
+ 'Update' => 'Erneuern',
+ 'Vendor' => 'Lieferant',
+ 'Vendor missing!' => 'Lieferant fehlt!',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Warning!' => 'Warnung!',
+ 'Year' => 'Jahr',
+ 'Yes' => 'Ja',
+ 'sent' => 'verschickt',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'eingangsbuchung' => 'ap_transaction',
+ 'ausgangsbuchung' => 'ar_transaction',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'buchen' => 'post',
+ 'neu_buchen' => 'post_as_new',
+ 'drucken' => 'print',
+ 'drucken_und_buchen' => 'print_and_post',
+ 'lieferung_an' => 'ship_to',
+ 'erneuern' => 'update',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/de_utf/arap b/locale/de_utf/arap
new file mode 100755
index 00000000..c9598e55
--- /dev/null
+++ b/locale/de_utf/arap
@@ -0,0 +1,53 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Address' => 'Adresse',
+ 'Bcc' => 'Bcc',
+ 'Cc' => 'Cc',
+ 'Continue' => 'Weiter',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Description' => 'Beschreibung',
+ 'E-mail' => 'eMail',
+ 'Message' => 'Nachricht',
+ 'Number' => 'Nummer',
+ 'Print' => 'Drucken',
+ 'Project not on file!' => 'Dieses Projekt ist nicht in der Datenbank!',
+ 'Reference' => 'Referenz',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
+ 'Startdate' => 'Beschäftigt seit',
+ 'Subject' => 'Betreff',
+ 'To' => 'Bis',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Warning!' => 'Warnung!',
+ 'sent' => 'verschickt',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'weiter' => 'continue',
+};
+
+1;
+
diff --git a/locale/de_utf/arapprn b/locale/de_utf/arapprn
new file mode 100755
index 00000000..b7cde3d4
--- /dev/null
+++ b/locale/de_utf/arapprn
@@ -0,0 +1,32 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Amount' => 'Betrag',
+ 'Continue' => 'Weiter',
+ 'Date' => 'Datum',
+ 'Memo' => 'Vermerk',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'Postscript',
+ 'Printed' => 'Gedruckt',
+ 'Screen' => 'Bildschirm',
+ 'Select postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Source' => 'Beleg',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'weiter' => 'continue',
+};
+
+1;
+
diff --git a/locale/de_utf/bp b/locale/de_utf/bp
new file mode 100755
index 00000000..3a59a684
--- /dev/null
+++ b/locale/de_utf/bp
@@ -0,0 +1,69 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Bitte bestätigen Sie ob Sie die markierten Eintragungen löschen wollen',
+ 'Bin Lists' => 'Lagerlisten',
+ 'Cannot remove files!' => 'Löschen der Dateien hat fehlgeschlagen!',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Continue' => 'Weiter',
+ 'Current' => 'Aktuell',
+ 'Customer' => 'Kunde',
+ 'Date' => 'Datum',
+ 'Employee' => 'Arbeitnehmer',
+ 'From' => 'Von',
+ 'ID' => 'Nr.',
+ 'Invoice' => 'Rechnung',
+ 'Invoice Number' => 'Rechnungsnummer',
+ 'Marked entries printed!' => 'Markierte Einträge gedruckt! ',
+ 'Month' => 'Monat',
+ 'Order' => 'Bestellung',
+ 'Order Number' => 'Bestellnummer',
+ 'Packing Lists' => 'Verpackungslisten',
+ 'Period' => 'Zeitraum',
+ 'Pick Lists' => 'Lagerlisten',
+ 'Print' => 'Drucken',
+ 'Purchase Orders' => 'Einkaufsbestellungen',
+ 'Quarter' => 'Quartal',
+ 'Quotation' => 'Angebot',
+ 'Quotation Number' => 'Angebotsnummer',
+ 'Quotations' => 'Angebote',
+ 'RFQs' => 'Anfragen',
+ 'Remove' => 'Entfernen',
+ 'Removed spoolfiles!' => 'Spoolfiles gelöscht!',
+ 'Removing marked entries from queue ...' => 'Markierte Einträge entfernt ...',
+ 'Sales Invoices' => 'Ausgangsrechnungen',
+ 'Sales Orders' => 'Verkaufsbelege',
+ 'Select all' => 'Alle auswählen',
+ 'Spoolfile' => 'Spoolfile',
+ 'To' => 'Bis',
+ 'Vendor' => 'Lieferant',
+ 'Work Orders' => 'Arbeitsblätter',
+ 'Year' => 'Jahr',
+ 'Yes' => 'Ja',
+ 'done' => 'fertig',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'weiter' => 'continue',
+ 'drucken' => 'print',
+ 'entfernen' => 'remove',
+ 'alle_auswählen' => 'select_all',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/de_utf/ca b/locale/de_utf/ca
new file mode 100755
index 00000000..a43c41c3
--- /dev/null
+++ b/locale/de_utf/ca
@@ -0,0 +1,61 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Balance' => 'Bilanz',
+ 'Chart of Accounts' => 'Kontenübersicht',
+ 'Credit' => 'Haben',
+ 'Current' => 'Aktuell',
+ 'Date' => 'Datum',
+ 'Debit' => 'Soll',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Department' => 'Abteilung',
+ 'Description' => 'Beschreibung',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'From' => 'Von',
+ 'GIFI' => 'GIFI',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'List Transactions' => 'Buchungsliste',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Month' => 'Monat',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Period' => 'Zeitraum',
+ 'Project Number' => 'Projektnummer',
+ 'Quarter' => 'Quartal',
+ 'R' => 'R',
+ 'Reference' => 'Referenz',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Subtotal' => 'Zwischensumme',
+ 'To' => 'An',
+ 'Year' => 'Jahr',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'buchungsliste' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/de_utf/cp b/locale/de_utf/cp
new file mode 100755
index 00000000..ede291c9
--- /dev/null
+++ b/locale/de_utf/cp
@@ -0,0 +1,125 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP' => 'Verbindlichkeiten',
+ 'AR' => 'Forderungen',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Address' => 'Adresse',
+ 'All' => 'Alle',
+ 'Amount' => 'Betrag',
+ 'Amount Due' => 'Betrag fällig',
+ 'Bcc' => 'Bcc',
+ 'Cannot post Payment!' => 'Bezahlung kann nicht verbucht werden!',
+ 'Cannot post Receipt!' => 'Einnahme kann nicht verbucht werden!',
+ 'Cannot post payment for a closed period!' => 'Es können keine Zahlungen für abgeschlossene Bücher gebucht werden!',
+ 'Cc' => 'Cc',
+ 'Continue' => 'Weiter',
+ 'Currency' => 'Währung',
+ 'Customer' => 'Kunde',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Date missing!' => 'Datum fehlt!',
+ 'Department' => 'Abteilung',
+ 'Deposit' => 'Gutschrift',
+ 'Description' => 'Beschreibung',
+ 'Due Date' => 'Fälligkeitsdatum',
+ 'E-mail' => 'eMail',
+ 'Exchange Rate' => 'Wechselkurs',
+ 'Exchange rate missing!' => 'Wechselkurs fehlt!',
+ 'From' => 'Von',
+ 'Invoice' => 'Rechnung',
+ 'Invoices' => 'Rechnungen',
+ 'Language' => 'Sprache',
+ 'Memo' => 'Vermerk',
+ 'Message' => 'Nachricht',
+ 'Number' => 'Nummer',
+ 'PDF' => 'PDF',
+ 'Payment' => 'Belastung',
+ 'Payment posted!' => 'Zahlung gebucht!',
+ 'Payments' => 'Zahlungen',
+ 'Post' => 'Buchen',
+ 'Postscript' => 'Postscript',
+ 'Prepayment' => 'Anzahlung',
+ 'Print' => 'Drucken',
+ 'Project not on file!' => 'Dieses Projekt ist nicht in der Datenbank!',
+ 'Receipt' => 'Quittung',
+ 'Receipt posted!' => 'Einnahme verbucht!',
+ 'Receipts' => 'Quittungen',
+ 'Reference' => 'Referenz',
+ 'Screen' => 'Bildschirm',
+ 'Select' => 'Auswählen',
+ 'Select all' => 'Alle auswählen',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
+ 'Select postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Source' => 'Beleg',
+ 'Startdate' => 'Beschäftigt seit',
+ 'Subject' => 'Betreff',
+ 'To' => 'Bis',
+ 'Update' => 'Erneuern',
+ 'Vendor' => 'Lieferant',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Warning!' => 'Warnung!',
+ 'sent' => 'verschickt',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'weiter' => 'continue',
+ 'buchen' => 'post',
+ 'drucken' => 'print',
+ 'alle_auswählen' => 'select_all',
+ 'erneuern' => 'update',
+};
+
+1;
+
diff --git a/locale/de_utf/ct b/locale/de_utf/ct
new file mode 100755
index 00000000..beafd6c8
--- /dev/null
+++ b/locale/de_utf/ct
@@ -0,0 +1,180 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Transaction' => 'Eingangsbuchung',
+ 'AP Transactions' => 'Eingangsbuchungen',
+ 'AR Transaction' => 'Ausgangsbuchung',
+ 'AR Transactions' => 'Ausgangsbuchungen',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Active' => 'Aktiv',
+ 'Add Customer' => 'Kunde anlegen',
+ 'Add Vendor' => 'Lieferant anlegen',
+ 'Address' => 'Adresse',
+ 'All' => 'Alle',
+ 'Amount' => 'Betrag',
+ 'BIC' => 'BIC',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Rechnungsanschrift',
+ 'Break' => 'Ãœbergang',
+ 'Cannot delete customer!' => 'Kunde kann nicht gelöscht werden!',
+ 'Cannot delete vendor!' => 'Lieferant kann nicht gelöscht werden!',
+ 'Cc' => 'Cc',
+ 'City' => 'Stadt',
+ 'Closed' => 'Geschlossen',
+ 'Company Name' => 'Firmenname',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Weiter',
+ 'Cost' => 'Kosten',
+ 'Country' => 'Land',
+ 'Credit Limit' => 'Kreditlimit',
+ 'Curr' => 'Währung',
+ 'Currency' => 'Währung',
+ 'Customer History' => 'Alle Belege für Kunde',
+ 'Customer Number' => 'Kundennummer',
+ 'Customer deleted!' => 'Kunde gelöscht!',
+ 'Customer saved!' => 'Kunde gespeichert!',
+ 'Customers' => 'Kunden',
+ 'Delete' => 'Löschen',
+ 'Delivery Date' => 'Lieferung',
+ 'Description' => 'Beschreibung',
+ 'Detail' => 'Einzelheiten',
+ 'Discount' => 'Rabatt',
+ 'E-mail' => 'eMail',
+ 'Edit Customer' => 'Kundendaten bearbeiten',
+ 'Edit Vendor' => 'Lieferantendaten bearbeiten',
+ 'Employee' => 'Arbeitnehmer',
+ 'Enddate' => 'Ausgeschieden am',
+ 'Fax' => 'Fax',
+ 'From' => 'Von',
+ 'GIFI' => 'GIFI',
+ 'Group' => 'Gruppe',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'Nr.',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Invoice' => 'Rechnung',
+ 'Item not on file!' => 'Dieser Artikel ist nicht in der Datenbank!',
+ 'Language' => 'Sprache',
+ 'Leadtime' => 'Anlaufzeit',
+ 'Manager' => 'Geschäftsführer',
+ 'Name' => 'Name',
+ 'Name missing!' => 'Name fehlt!',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Bemerkungen',
+ 'Number' => 'Nummer',
+ 'Open' => 'Offen',
+ 'Order' => 'Bestellung',
+ 'Orphaned' => 'nie benutzt',
+ 'POS' => 'Kassa',
+ 'Phone' => 'Tel.',
+ 'Pricegroup' => 'Preisgruppe',
+ 'Project Number' => 'Projektnummer',
+ 'Purchase Order' => 'Einkaufsbestellung',
+ 'Purchase Orders' => 'Einkaufsbestellungen',
+ 'Qty' => 'Menge',
+ 'Quotation' => 'Angebot',
+ 'Quotations' => 'Angebote',
+ 'RFQ' => 'Anfrage',
+ 'Request for Quotations' => 'Anfragen',
+ 'SIC' => 'SIC',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Ausgangsrechnung',
+ 'Sales Invoices' => 'Ausgangsrechnungen',
+ 'Sales Order' => 'Verkaufsbeleg',
+ 'Sales Orders' => 'Verkaufsbelege',
+ 'Salesperson' => 'Verkäufer',
+ 'Save' => 'Speichern',
+ 'Save as new' => 'als neu speichern',
+ 'Search' => 'Suchen',
+ 'Sell Price' => 'Verkaufspreis',
+ 'Serial Number' => 'Seriennummer',
+ 'Shipping Address' => 'Lieferanschrift',
+ 'Startdate' => 'Beschäftigt seit',
+ 'State/Province' => 'Bundesland',
+ 'Sub-contract GIFI' => 'Unterlieferant GIFI',
+ 'Subtotal' => 'Zwischensumme',
+ 'Summary' => 'Zusammenfassung',
+ 'Tax' => 'Steuer',
+ 'Tax Included' => 'Steuer im Preis enthalten',
+ 'Tax Number' => 'Steuernummer',
+ 'Tax Number / SSN' => 'Steuernummer / SSN',
+ 'Taxable' => 'Steuerpflichtig',
+ 'Terms' => 'Zahlungsbedingungen',
+ 'To' => 'Bis',
+ 'Total' => 'Betrag',
+ 'Type of Business' => 'Gewerbe',
+ 'Unit' => 'Einh.',
+ 'Update' => 'Erneuern',
+ 'Vendor History' => 'Alle Belege für Lieferant',
+ 'Vendor Invoice' => 'Einkaufsrechnung',
+ 'Vendor Invoices' => 'Einkaufsrechnungen',
+ 'Vendor Number' => 'Lieferantennummer',
+ 'Vendor deleted!' => 'Lieferant gelöscht!',
+ 'Vendor saved!' => 'Lieferant gespeichert!',
+ 'Vendors' => 'Lieferanten',
+ 'days' => 'Tage',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'eingangsbuchung' => 'ap_transaction',
+ 'ausgangsbuchung' => 'ar_transaction',
+ 'kunde_anlegen' => 'add_customer',
+ 'lieferant_anlegen' => 'add_vendor',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'kassa' => 'pos',
+ 'einkaufsbestellung' => 'purchase_order',
+ 'angebot' => 'quotation',
+ 'anfrage' => 'rfq',
+ 'ausgangsrechnung' => 'sales_invoice',
+ 'verkaufsbeleg' => 'sales_order',
+ 'speichern' => 'save',
+ 'als_neu_speichern' => 'save_as_new',
+ 'erneuern' => 'update',
+ 'einkaufsrechnung' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/de_utf/gl b/locale/de_utf/gl
new file mode 100755
index 00000000..625951c4
--- /dev/null
+++ b/locale/de_utf/gl
@@ -0,0 +1,156 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Transaction' => 'Eingangsbuchung',
+ 'AR Transaction' => 'Ausgangsbuchung',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Add Cash Transfer Transaction' => 'Zahlungseingang vermerken',
+ 'Add General Ledger Transaction' => 'Hinzufügen einer Buchung zum Hauptbuch',
+ 'Address' => 'Adresse',
+ 'All' => 'Alle',
+ 'Amount' => 'Betrag',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Transaction' => 'Buchung wirklich löschen?',
+ 'Asset' => 'Aktiva/Mittelverwendung',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Balance' => 'Bilanz',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'Buchung kann nicht gelöscht werden!',
+ 'Cannot post transaction for a closed period!' => 'Für einen bereits abgeschlossenen Zeitraum kann keine Buchung angelegt werden!',
+ 'Cannot post transaction!' => 'Rechnung kann nicht gebucht werden!',
+ 'Cc' => 'Cc',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Continue' => 'Weiter',
+ 'Credit' => 'Haben',
+ 'Current' => 'Aktuell',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Debit' => 'Soll',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Delete' => 'Löschen',
+ 'Department' => 'Abteilung',
+ 'Description' => 'Beschreibung',
+ 'E-mail' => 'eMail',
+ 'Edit Cash Transfer Transaction' => 'Ãœberweisung bearbeiten',
+ 'Edit General Ledger Transaction' => 'Buchung im Hauptbuch bearbeiten',
+ 'Equity' => 'Passiva/Eigenkapital',
+ 'Expense' => 'Aufwand',
+ 'FX' => 'FX',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'From' => 'Von',
+ 'GIFI' => 'GIFI',
+ 'GL Transaction' => 'Hauptbucheintragung',
+ 'General Ledger' => 'Hauptbuch',
+ 'ID' => 'Nr.',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Income' => 'Einnahmen',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Liability' => 'Passiva/Mittelherkunft',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Memo' => 'Vermerk',
+ 'Message' => 'Nachricht',
+ 'Month' => 'Monat',
+ 'Notes' => 'Bemerkungen',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Nummer',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Out of balance transaction!' => 'Soll und Haben sind nicht gleich!',
+ 'Period' => 'Zeitraum',
+ 'Post' => 'Buchen',
+ 'Post as new' => 'Neu buchen',
+ 'Print' => 'Drucken',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Dieses Projekt ist nicht in der Datenbank!',
+ 'Quarter' => 'Quartal',
+ 'R' => 'R',
+ 'Reference' => 'Referenz',
+ 'Reports' => 'Berichte',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Source' => 'Beleg',
+ 'Startdate' => 'Beschäftigt seit',
+ 'Subject' => 'Betreff',
+ 'Subtotal' => 'Zwischensumme',
+ 'To' => 'Bis',
+ 'Transaction Date missing!' => 'Buchungsdatum fehlt!',
+ 'Transaction deleted!' => 'Buchung gelöscht!',
+ 'Transaction posted!' => 'Buchung getätigt!',
+ 'Update' => 'Erneuern',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Warning!' => 'Warnung!',
+ 'Year' => 'Jahr',
+ 'Yes' => 'Ja',
+ 'sent' => 'verschickt',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'eingangsbuchung' => 'ap_transaction',
+ 'ausgangsbuchung' => 'ar_transaction',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'hauptbucheintragung' => 'gl_transaction',
+ 'buchen' => 'post',
+ 'neu_buchen' => 'post_as_new',
+ 'erneuern' => 'update',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/de_utf/hr b/locale/de_utf/hr
new file mode 100755
index 00000000..15680146
--- /dev/null
+++ b/locale/de_utf/hr
@@ -0,0 +1,115 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP' => 'Verbindlichkeiten',
+ 'Above' => 'Ãœber',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Active' => 'Aktiv',
+ 'Add Deduction' => 'Abzug festlegen',
+ 'Add Employee' => 'Arbeitnehmer anlegen',
+ 'Address' => 'Adresse',
+ 'Administrator' => 'Verwalter',
+ 'After Deduction' => 'Nach Abzug',
+ 'All' => 'Alle',
+ 'Allowances' => 'Freibeträge',
+ 'Amount' => 'Betrag',
+ 'Amount missing!' => 'Betrag fehlt!',
+ 'BIC' => 'BIC',
+ 'Based on' => 'Begründung',
+ 'Before Deduction' => 'Vor Abzug',
+ 'Below' => 'Unter',
+ 'City' => 'Stadt',
+ 'Continue' => 'Weiter',
+ 'Country' => 'Land',
+ 'Deduct after' => 'Abzug nach',
+ 'Deduction deleted!' => 'Abzug gelöscht!',
+ 'Deduction saved!' => 'Abzug gespeichert!',
+ 'Deductions' => 'Abzüge',
+ 'Delete' => 'Löschen',
+ 'Description' => 'Beschreibung',
+ 'Description missing!' => 'Beschreibung fehlt!',
+ 'E-mail' => 'eMail',
+ 'Edit Deduction' => 'Abzug bearbeiten',
+ 'Edit Employee' => 'Arbeitnehmer bearbeiten',
+ 'Employee' => 'Arbeitnehmer',
+ 'Employee Name' => 'Name',
+ 'Employee deleted!' => 'Arbeitnehmer gelöscht!',
+ 'Employee pays' => 'Arbeitnehmer bezahlt',
+ 'Employee saved!' => 'Arbeitnehmer gespeichert!',
+ 'Employees' => 'Arbeitnehmer',
+ 'Employer' => 'Arbeitgeber',
+ 'Employer pays' => 'Arbeitgeber bezahlt',
+ 'Enddate' => 'Ausgeschieden am',
+ 'Expense' => 'Aufwand',
+ 'From' => 'Von',
+ 'Home Phone' => 'Tel. privat',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'Nr.',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Login' => 'Anmelden',
+ 'Manager' => 'Geschäftsführer',
+ 'Maximum' => 'Höshstens',
+ 'Name' => 'Name',
+ 'Name missing!' => 'Name fehlt!',
+ 'Notes' => 'Bemerkungen',
+ 'Number' => 'Nummer',
+ 'Orphaned' => 'nie benutzt',
+ 'Payroll Deduction' => 'Lohnabzug',
+ 'Rate' => 'Prozentsatz',
+ 'Rate missing!' => 'Prozentsatz fehlt!',
+ 'Role' => 'Stellung',
+ 'S' => 'A',
+ 'SSN' => 'Steuernummer',
+ 'Sales' => 'Warenverkauf',
+ 'Save' => 'Speichern',
+ 'Save as new' => 'als neu speichern',
+ 'Startdate' => 'Beschäftigt seit',
+ 'State/Province' => 'Bundesland',
+ 'To' => 'Bis',
+ 'Update' => 'Erneuern',
+ 'User' => 'Benutzer',
+ 'Work Phone' => 'Tel. Arbeit',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'abzug_festlegen' => 'add_deduction',
+ 'arbeitnehmer_anlegen' => 'add_employee',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'speichern' => 'save',
+ 'als_neu_speichern' => 'save_as_new',
+ 'erneuern' => 'update',
+};
+
+1;
+
diff --git a/locale/de_utf/ic b/locale/de_utf/ic
new file mode 100755
index 00000000..875c9f76
--- /dev/null
+++ b/locale/de_utf/ic
@@ -0,0 +1,275 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'A' => 'A',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Accounts' => 'Konten',
+ 'Accrual' => 'Laufend',
+ 'Active' => 'Aktiv',
+ 'Add' => 'Hinzufügen',
+ 'Add Assembly' => 'Erzeugnis anlegen',
+ 'Add Labor/Overhead' => 'Gestehungskosten',
+ 'Add Part' => 'Ware anlegen',
+ 'Add Purchase Order' => 'Einkaufsbeleg anlegen',
+ 'Add Quotation' => 'Angebot erstellen',
+ 'Add Request for Quotation' => 'Anfrage erstellen',
+ 'Add Sales Order' => 'Verkaufsbeleg anlegen',
+ 'Add Service' => 'Dienstleistung anlegen',
+ 'Address' => 'Adresse',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Assemblies' => 'Erzeugnisse',
+ 'Assemblies restocked!' => 'Erzeugnisse eingelagert!',
+ 'Assembly' => 'Erzeugnis',
+ 'Attachment' => 'als Anhang',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'BOM' => 'Stückliste',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Rechnungsanschrift',
+ 'Bin' => 'Stellage',
+ 'Bin List' => 'Lagerliste',
+ 'Break' => 'Ãœbergang',
+ 'COGS' => 'Umsatzkosten',
+ 'Cannot delete item!' => 'Artikel kann nicht gelöscht werden!',
+ 'Cannot stock assemblies!' => 'Erzeugnisse können nicht ins Lager!',
+ 'Cash' => 'Kasse',
+ 'Cc' => 'Cc',
+ 'Check Inventory' => 'Inventar prüfen',
+ 'City' => 'Stadt',
+ 'Closed' => 'Geschlossen',
+ 'Company Name' => 'Firmenname',
+ 'Components' => 'Einzelteile',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Weiter',
+ 'Copies' => 'Kopien',
+ 'Cost' => 'Kosten',
+ 'Country' => 'Land',
+ 'Curr' => 'Währung',
+ 'Currency' => 'Währung',
+ 'Customer' => 'Kunde',
+ 'Customer Number' => 'Kundennummer',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Delete' => 'Löschen',
+ 'Delivery Date' => 'Lieferung',
+ 'Description' => 'Beschreibung',
+ 'Detail' => 'Einzelheiten',
+ 'Drawing' => 'Zeichnung',
+ 'E-mail' => 'eMail',
+ 'E-mail address missing!' => 'eMailadresse fehlt!',
+ 'E-mailed' => 'eMail gesendet',
+ 'Edit Assembly' => 'Erzeugnis bearbeiten',
+ 'Edit Labor/Overhead' => 'Gestehungskostenkosten bearbeiten',
+ 'Edit Part' => 'Ware bearbeiten',
+ 'Edit Service' => 'Dienstleistung bearbeiten',
+ 'Employee' => 'Arbeitnehmer',
+ 'Expense' => 'Aufwand',
+ 'Extended' => 'Summe',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'From' => 'Von',
+ 'Group' => 'Gruppe',
+ 'Image' => 'Bild',
+ 'In-line' => 'im Textkörper (Inline)',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Income' => 'Einnahmen',
+ 'Individual Items' => 'Einzelteile',
+ 'Inventory' => 'Inventar',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Bevor dieses Erzeugnis als ungültig markiert werden kann muß�das Inventar auf Null sein!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Bevor diese Ware als ungültig markiert werden kann muß�das Inventar Null sein!',
+ 'Invoice' => 'Rechnung',
+ 'Invoice Date missing!' => 'Rechnungsdatum fehlt!',
+ 'Invoice Number' => 'Rechnungsnummer',
+ 'Invoice Number missing!' => 'Rechnungsnummer fehlt!',
+ 'Item deleted!' => 'Artikel gelöscht!',
+ 'Item not on file!' => 'Dieser Artikel ist nicht in der Datenbank!',
+ 'Items' => 'Artikel',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Labor/Overhead' => 'Gestehungskosten',
+ 'Leadtime' => 'Anlaufzeit',
+ 'Line Total' => 'Zeilensumme',
+ 'Link Accounts' => 'Konten verknüpfen',
+ 'List Price' => 'Listenpreis',
+ 'Make' => 'Hersteller',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'Markup' => 'Aufschlag',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Message' => 'Nachricht',
+ 'Microfiche' => 'Mikrofilm',
+ 'Model' => 'Modell',
+ 'Name' => 'Name',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Bemerkungen',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Nummer',
+ 'Number missing in Row' => 'Nummer fehlt in Zeile',
+ 'Obsolete' => 'Ungültig',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'On Hand' => 'am Lager',
+ 'Open' => 'Offen',
+ 'Order' => 'Bestellung',
+ 'Order Date missing!' => 'Bestelldatum fehlt!',
+ 'Order Number' => 'Bestellnummer',
+ 'Order Number missing!' => 'Bestellnummer fehlt!',
+ 'Orphaned' => 'nie benutzt',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Packliste',
+ 'Packing List Date missing!' => 'Datum für Verpackungsliste fehlt!',
+ 'Packing List Number missing!' => 'Verpackungslistennummer fehlt!',
+ 'Part' => 'Ware',
+ 'Parts' => 'Waren',
+ 'Period' => 'Zeitraum',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Lagerliste',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Preis',
+ 'Pricegroup' => 'Preisgruppe',
+ 'Printed' => 'Gedruckt',
+ 'Project' => 'Projekt',
+ 'Purchase Order' => 'Einkaufsbestellung',
+ 'Purchase Orders' => 'Einkaufsbestellungen',
+ 'Qty' => 'Menge',
+ 'Quantity exceeds available units to stock!' => 'Anzahl ist mehr als vorhanden!',
+ 'Quotation' => 'Angebot',
+ 'Quotation Date missing!' => 'Angebotsdatum fehlt!',
+ 'Quotation Number missing!' => 'Angebotsnummer fehlt!',
+ 'Quotations' => 'Angebote',
+ 'RFQ' => 'Anfrage',
+ 'ROP' => 'UAB',
+ 'Recd' => 'Erh',
+ 'Required by' => 'Erforderlich am',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Ausgangsrechnung',
+ 'Sales Invoices' => 'Ausgangsrechnungen',
+ 'Sales Order' => 'Verkaufsbeleg',
+ 'Sales Orders' => 'Verkaufsbelege',
+ 'Save' => 'Speichern',
+ 'Save as new' => 'als neu speichern',
+ 'Screen' => 'Bildschirm',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Sell Price' => 'Verkaufspreis',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Serial No.' => 'Seriennummer',
+ 'Serial Number' => 'Seriennummer',
+ 'Service' => 'Dienstleistung',
+ 'Services' => 'Leistungen',
+ 'Ship' => 'Versenden',
+ 'Ship to' => 'Lieferung an',
+ 'Shipping Address' => 'Lieferanschrift',
+ 'Short' => 'Kurz',
+ 'State/Province' => 'Bundesland',
+ 'Stock' => 'Einlagern',
+ 'Stock Assembly' => 'Erzeugnis einlagern',
+ 'Subject' => 'Betreff',
+ 'Subtotal' => 'Zwischensumme',
+ 'Summary' => 'Zusammenfassung',
+ 'Tax' => 'Steuer',
+ 'To' => 'Bis',
+ 'Top Level' => 'Hauptbeschreibung',
+ 'Translation not on file!' => 'Ãœbersetzung nicht verfgbar',
+ 'Unit' => 'Einh.',
+ 'Update' => 'Erneuern',
+ 'Updated' => 'Erneuert am',
+ 'Vendor' => 'Lieferant',
+ 'Vendor Invoice' => 'Einkaufsrechnung',
+ 'Vendor Invoices' => 'Einkaufsrechnungen',
+ 'Vendor Number' => 'Lieferantennummer',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Warehouse' => 'Warenlager',
+ 'Weight' => 'Gewicht',
+ 'What type of item is this?' => 'Welche Artikelart ist das?',
+ 'Work Order' => 'Arbeitsblatt',
+ 'Year' => 'Jahr',
+ 'days' => 'Tage',
+ 'sent' => 'verschickt',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'erzeugnis_anlegen' => 'add_assembly',
+ 'gestehungskosten' => 'add_labor_overhead',
+ 'ware_anlegen' => 'add_part',
+ 'dienstleistung_anlegen' => 'add_service',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'erzeugnis_bearbeiten' => 'edit_assembly',
+ 'ware_bearbeiten' => 'edit_part',
+ 'dienstleistung_bearbeiten' => 'edit_service',
+ 'speichern' => 'save',
+ 'als_neu_speichern' => 'save_as_new',
+ 'erneuern' => 'update',
+};
+
+1;
+
diff --git a/locale/de_utf/io b/locale/de_utf/io
new file mode 100755
index 00000000..8eb7f4c5
--- /dev/null
+++ b/locale/de_utf/io
@@ -0,0 +1,130 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Add Purchase Order' => 'Einkaufsbeleg anlegen',
+ 'Add Quotation' => 'Angebot erstellen',
+ 'Add Request for Quotation' => 'Anfrage erstellen',
+ 'Add Sales Order' => 'Verkaufsbeleg anlegen',
+ 'Address' => 'Adresse',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Attachment' => 'als Anhang',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Rechnungsanschrift',
+ 'Bin' => 'Stellage',
+ 'Bin List' => 'Lagerliste',
+ 'Cc' => 'Cc',
+ 'City' => 'Stadt',
+ 'Company Name' => 'Firmenname',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Weiter',
+ 'Copies' => 'Kopien',
+ 'Country' => 'Land',
+ 'Customer Number' => 'Kundennummer',
+ 'Date' => 'Datum',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Delivery Date' => 'Lieferung',
+ 'Description' => 'Beschreibung',
+ 'E-mail' => 'eMail',
+ 'E-mail address missing!' => 'eMailadresse fehlt!',
+ 'E-mailed' => 'eMail gesendet',
+ 'Extended' => 'Summe',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'Group' => 'Gruppe',
+ 'In-line' => 'im Textkörper (Inline)',
+ 'Invoice' => 'Rechnung',
+ 'Invoice Date missing!' => 'Rechnungsdatum fehlt!',
+ 'Invoice Number missing!' => 'Rechnungsnummer fehlt!',
+ 'Item not on file!' => 'Dieser Artikel ist nicht in der Datenbank!',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Message' => 'Nachricht',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Nummer',
+ 'Number missing in Row' => 'Nummer fehlt in Zeile',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Order Date missing!' => 'Bestelldatum fehlt!',
+ 'Order Number missing!' => 'Bestellnummer fehlt!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lieferschein',
+ 'Packing List Date missing!' => 'Datum für Verpackungsliste fehlt!',
+ 'Packing List Number missing!' => 'Verpackungslistennummer fehlt!',
+ 'Part' => 'Ware',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Lagerliste',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Preis',
+ 'Printed' => 'Gedruckt',
+ 'Project' => 'Projekt',
+ 'Purchase Order' => 'Einkaufsbestellung',
+ 'Qty' => 'Anz',
+ 'Quotation' => 'Angebot',
+ 'Quotation Date missing!' => 'Angebotsdatum fehlt!',
+ 'Quotation Number missing!' => 'Angebotsnummer fehlt!',
+ 'Recd' => 'Erh',
+ 'Required by' => 'Erforderlich am',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Verkaufsbeleg',
+ 'Screen' => 'Bildschirm',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Serial No.' => 'Seriennummer',
+ 'Service' => 'Dienstleistung',
+ 'Ship' => 'Versenden',
+ 'Ship to' => 'Lieferung an',
+ 'Shipping Address' => 'Lieferanschrift',
+ 'State/Province' => 'Bundesland',
+ 'Subject' => 'Betreff',
+ 'Subtotal' => 'Zwischensumme',
+ 'To' => 'Bis',
+ 'Translation not on file!' => 'Ãœbersetzung nicht verfgbar',
+ 'Unit' => 'Einh',
+ 'Vendor Number' => 'Lieferantennummer',
+ 'What type of item is this?' => 'Welche Artikelart ist das?',
+ 'Work Order' => 'Arbeitsblatt',
+ 'sent' => 'verschickt',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'weiter' => 'continue',
+};
+
+1;
+
diff --git a/locale/de_utf/ir b/locale/de_utf/ir
new file mode 100755
index 00000000..8c3f90d5
--- /dev/null
+++ b/locale/de_utf/ir
@@ -0,0 +1,224 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Add Purchase Order' => 'Einkaufsbeleg anlegen',
+ 'Add Quotation' => 'Angebot erstellen',
+ 'Add Request for Quotation' => 'Anfrage erstellen',
+ 'Add Sales Order' => 'Verkaufsbeleg anlegen',
+ 'Add Vendor Invoice' => 'Eingangsrechnung anlegen',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Betrag',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Invoice Number' => 'Soll die Rechnung mit folgender Nummer wirklich gel�cht werden:',
+ 'Attachment' => 'als Anhang',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Rechnungsanschrift',
+ 'Bin' => 'Stellage',
+ 'Bin List' => 'Lagerliste',
+ 'Cannot delete invoice!' => 'Rechnung kann nicht gelöscht werden!',
+ 'Cannot post invoice for a closed period!' => 'Das Rechnungsdatum fällt in einen abgeschlossen Zeitraum!',
+ 'Cannot post invoice!' => 'Rechnung kann nicht gebucht werden!',
+ 'Cannot post payment for a closed period!' => 'Es können keine Zahlungen für abgeschlossene Bücher gebucht werden!',
+ 'Cc' => 'Cc',
+ 'City' => 'Stadt',
+ 'Company Name' => 'Firmenname',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Weiter',
+ 'Copies' => 'Kopien',
+ 'Country' => 'Land',
+ 'Credit Limit' => 'Kreditlimit',
+ 'Currency' => 'Währung',
+ 'Customer Number' => 'Kundennummer',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Delete' => 'Löschen',
+ 'Delivery Date' => 'Lieferung',
+ 'Department' => 'Abteilung',
+ 'Description' => 'Beschreibung',
+ 'Due Date' => 'Fälligkeitsdatum',
+ 'E-mail' => 'eMail',
+ 'E-mail address missing!' => 'eMailadresse fehlt!',
+ 'E-mailed' => 'eMail gesendet',
+ 'Edit Vendor Invoice' => 'Einkaufsrechnung bearbeiten',
+ 'Exch' => 'Wkurs.',
+ 'Exchange Rate' => 'Wechselkurs',
+ 'Exchange rate for payment missing!' => 'Wechselkurs für Bezahlung fehlt!',
+ 'Exchange rate missing!' => 'Wechselkurs fehlt!',
+ 'Extended' => 'Summe',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'Group' => 'Gruppe',
+ 'In-line' => 'im Textkörper (Inline)',
+ 'Internal Notes' => 'Interne Notizen',
+ 'Invoice' => 'Rechnung',
+ 'Invoice Date' => 'Rechnungsdatum',
+ 'Invoice Date missing!' => 'Rechnungsdatum fehlt!',
+ 'Invoice Number' => 'Rechnungsnummer',
+ 'Invoice Number missing!' => 'Rechnungsnummer fehlt!',
+ 'Invoice deleted!' => 'Rechung gelöscht!',
+ 'Item not on file!' => 'Dieser Artikel ist nicht in der Datenbank!',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Language' => 'Sprache',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Memo' => 'Vermerk',
+ 'Message' => 'Nachricht',
+ 'Notes' => 'Bemerkungen',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Nummer',
+ 'Number missing in Row' => 'Nummer fehlt in Zeile',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Order Date missing!' => 'Bestelldatum fehlt!',
+ 'Order Number' => 'Bestellnummer',
+ 'Order Number missing!' => 'Bestellnummer fehlt!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Packliste',
+ 'Packing List Date missing!' => 'Datum für Verpackungsliste fehlt!',
+ 'Packing List Number missing!' => 'Verpackungslistennummer fehlt!',
+ 'Part' => 'Ware',
+ 'Payment date missing!' => 'Tag der Zahlung fehlt!',
+ 'Payments' => 'Zahlungen',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Lagerliste',
+ 'Post' => 'Buchen',
+ 'Post as new' => 'Neu buchen',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Preis',
+ 'Print' => 'Drucken',
+ 'Printed' => 'Gedruckt',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Dieses Projekt ist nicht in der Datenbank!',
+ 'Purchase Order' => 'Einkaufsbestellung',
+ 'Qty' => 'Menge',
+ 'Quotation' => 'Angebot',
+ 'Quotation Date missing!' => 'Angebotsdatum fehlt!',
+ 'Quotation Number missing!' => 'Angebotsnummer fehlt!',
+ 'Recd' => 'Erh',
+ 'Record in' => 'Buchen auf',
+ 'Reference' => 'Referenz',
+ 'Remaining' => 'Rest',
+ 'Required by' => 'Erforderlich am',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Verkaufsbeleg',
+ 'Screen' => 'Bildschirm',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Serial No.' => 'Seriennummer',
+ 'Service' => 'Dienstleistung',
+ 'Ship' => 'Versenden',
+ 'Ship to' => 'Lieferung an',
+ 'Shipping Address' => 'Lieferanschrift',
+ 'Source' => 'Beleg',
+ 'Startdate' => 'Beschäftigt seit',
+ 'State/Province' => 'Bundesland',
+ 'Subject' => 'Betreff',
+ 'Subtotal' => 'Zwischensumme',
+ 'Tax Included' => 'Steuer im Preis enthalten',
+ 'To' => 'Bis',
+ 'Total' => 'Betrag',
+ 'Translation not on file!' => 'Ãœbersetzung nicht verfgbar',
+ 'Unit' => 'Einh.',
+ 'Update' => 'Erneuern',
+ 'Vendor' => 'Lieferant',
+ 'Vendor Number' => 'Lieferantennummer',
+ 'Vendor missing!' => 'Lieferant fehlt!',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Warning!' => 'Warnung!',
+ 'What type of item is this?' => 'Welche Artikelart ist das?',
+ 'Work Order' => 'Arbeitsblatt',
+ 'Yes' => 'Ja',
+ 'ea' => 'pro',
+ 'posted!' => 'gebucht!',
+ 'sent' => 'verschickt',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'buchen' => 'post',
+ 'neu_buchen' => 'post_as_new',
+ 'einkaufsbestellung' => 'purchase_order',
+ 'erneuern' => 'update',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/de_utf/is b/locale/de_utf/is
new file mode 100755
index 00000000..024f6ff2
--- /dev/null
+++ b/locale/de_utf/is
@@ -0,0 +1,235 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Add Purchase Order' => 'Einkaufsbeleg anlegen',
+ 'Add Quotation' => 'Angebot erstellen',
+ 'Add Request for Quotation' => 'Anfrage erstellen',
+ 'Add Sales Invoice' => 'Ausgangsrechnung anlegen',
+ 'Add Sales Order' => 'Verkaufsbeleg anlegen',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Betrag',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Invoice Number' => 'Soll die Rechnung mit folgender Nummer wirklich gel�cht werden:',
+ 'Attachment' => 'als Anhang',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Rechnungsanschrift',
+ 'Bin' => 'Stellage',
+ 'Bin List' => 'Lagerliste',
+ 'Business' => 'Gewerbe',
+ 'Cannot delete invoice!' => 'Rechnung kann nicht gelöscht werden!',
+ 'Cannot post invoice for a closed period!' => 'Das Rechnungsdatum fällt in einen abgeschlossen Zeitraum!',
+ 'Cannot post invoice!' => 'Rechnung kann nicht gebucht werden!',
+ 'Cannot post payment for a closed period!' => 'Es können keine Zahlungen für abgeschlossene Bücher gebucht werden!',
+ 'Cc' => 'Cc',
+ 'City' => 'Stadt',
+ 'Company Name' => 'Firmenname',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Weiter',
+ 'Copies' => 'Kopien',
+ 'Country' => 'Land',
+ 'Credit Limit' => 'Kreditlimit',
+ 'Currency' => 'Währung',
+ 'Customer' => 'Kunde',
+ 'Customer Number' => 'Kundennummer',
+ 'Customer missing!' => 'Kundenname fehlt!',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Delete' => 'Löschen',
+ 'Delivery Date' => 'Lieferung',
+ 'Department' => 'Abteilung',
+ 'Description' => 'Beschreibung',
+ 'Due Date' => 'Fälligkeitsdatum',
+ 'E-mail' => 'eMail',
+ 'E-mail address missing!' => 'eMailadresse fehlt!',
+ 'E-mailed' => 'eMail gesendet',
+ 'Edit Sales Invoice' => 'Ausgangsrechnung bearbeiten',
+ 'Exch' => 'Wkurs.',
+ 'Exchange Rate' => 'Wechselkurs',
+ 'Exchange rate for payment missing!' => 'Wechselkurs für Bezahlung fehlt!',
+ 'Exchange rate missing!' => 'Wechselkurs fehlt!',
+ 'Extended' => 'Summe',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'Group' => 'Gruppe',
+ 'In-line' => 'im Textkörper (Inline)',
+ 'Internal Notes' => 'Interne Notizen',
+ 'Invoice' => 'Rechnung',
+ 'Invoice Date' => 'Rechnungsdatum',
+ 'Invoice Date missing!' => 'Rechnungsdatum fehlt!',
+ 'Invoice Number' => 'Rechnungsnummer',
+ 'Invoice Number missing!' => 'Rechnungsnummer fehlt!',
+ 'Invoice deleted!' => 'Rechung gelöscht!',
+ 'Item not on file!' => 'Dieser Artikel ist nicht in der Datenbank!',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Memo' => 'Vermerk',
+ 'Message' => 'Nachricht',
+ 'Notes' => 'Bemerkungen',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Nummer',
+ 'Number missing in Row' => 'Nummer fehlt in Zeile',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Order Date missing!' => 'Bestelldatum fehlt!',
+ 'Order Number' => 'Bestellnummer',
+ 'Order Number missing!' => 'Bestellnummer fehlt!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Packliste',
+ 'Packing List Date missing!' => 'Datum für Verpackungsliste fehlt!',
+ 'Packing List Number missing!' => 'Verpackungslistennummer fehlt!',
+ 'Part' => 'Ware',
+ 'Payment date missing!' => 'Tag der Zahlung fehlt!',
+ 'Payments' => 'Zahlungen',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Lagerliste',
+ 'Post' => 'Buchen',
+ 'Post as new' => 'Neu buchen',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Preis',
+ 'Print' => 'Drucken',
+ 'Print and Post' => 'Drucken und buchen',
+ 'Printed' => 'Gedruckt',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Dieses Projekt ist nicht in der Datenbank!',
+ 'Purchase Order' => 'Einkaufsbestellung',
+ 'Qty' => 'Menge',
+ 'Quotation' => 'Angebot',
+ 'Quotation Date missing!' => 'Angebotsdatum fehlt!',
+ 'Quotation Number missing!' => 'Angebotsnummer fehlt!',
+ 'Recd' => 'Erh',
+ 'Record in' => 'Buchen auf',
+ 'Reference' => 'Referenz',
+ 'Remaining' => 'Rest',
+ 'Required by' => 'Erforderlich am',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Verkaufsbeleg',
+ 'Salesperson' => 'Verkäufer',
+ 'Screen' => 'Bildschirm',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
+ 'Select postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Serial No.' => 'Seriennummer',
+ 'Service' => 'Dienstleistung',
+ 'Ship' => 'Versenden',
+ 'Ship to' => 'Lieferung an',
+ 'Ship via' => 'Versandweg',
+ 'Shipping Address' => 'Lieferanschrift',
+ 'Shipping Point' => 'Zielort',
+ 'Source' => 'Beleg',
+ 'Startdate' => 'Beschäftigt seit',
+ 'State/Province' => 'Bundesland',
+ 'Subject' => 'Betreff',
+ 'Subtotal' => 'Zwischensumme',
+ 'Tax Included' => 'Steuer im Preis enthalten',
+ 'To' => 'Bis',
+ 'Total' => 'Betrag',
+ 'Trade Discount' => 'Handelsrabatt',
+ 'Translation not on file!' => 'Ãœbersetzung nicht verfgbar',
+ 'Unit' => 'Einh.',
+ 'Update' => 'Erneuern',
+ 'Vendor Number' => 'Lieferantennummer',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Warning!' => 'Warnung!',
+ 'What type of item is this?' => 'Welche Artikelart ist das?',
+ 'Work Order' => 'Arbeitsblatt',
+ 'Yes' => 'Ja',
+ 'ea' => 'pro',
+ 'posted!' => 'gebucht!',
+ 'sent' => 'verschickt',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'email' => 'e_mail',
+ 'buchen' => 'post',
+ 'neu_buchen' => 'post_as_new',
+ 'drucken' => 'print',
+ 'drucken_und_buchen' => 'print_and_post',
+ 'verkaufsbeleg' => 'sales_order',
+ 'lieferung_an' => 'ship_to',
+ 'erneuern' => 'update',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/de_utf/jc b/locale/de_utf/jc
new file mode 100755
index 00000000..29bd972d
--- /dev/null
+++ b/locale/de_utf/jc
@@ -0,0 +1,94 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Amount' => 'Betrag',
+ 'Closed' => 'Geschlossen',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Continue' => 'Weiter',
+ 'Cost' => 'Kosten',
+ 'Current' => 'Aktuell',
+ 'Date' => 'Datum',
+ 'Date missing!' => 'Datum fehlt!',
+ 'Delete' => 'Löschen',
+ 'Description' => 'Beschreibung',
+ 'Employee' => 'Arbeitnehmer',
+ 'From' => 'Von',
+ 'ID' => 'Nr.',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Month' => 'Monat',
+ 'Notes' => 'Bemerkungen',
+ 'Open' => 'Offen',
+ 'PDF' => 'PDF',
+ 'Period' => 'Zeitraum',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Drucken',
+ 'Print and Save' => 'Drucken und speichern',
+ 'Printed' => 'Gedruckt',
+ 'Project Number' => 'Projektnummer',
+ 'Project Number missing!' => 'Projektnummer fehlt!',
+ 'Qty' => 'Menge',
+ 'Quarter' => 'Quartal',
+ 'Save' => 'Speichern',
+ 'Save as new' => 'als neu speichern',
+ 'Screen' => 'Bildschirm',
+ 'Select postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Startdate' => 'Beschäftigt seit',
+ 'Subtotal' => 'Zwischensumme',
+ 'To' => 'Bis',
+ 'Total' => 'Betrag',
+ 'Update' => 'Erneuern',
+ 'Warning!' => 'Warnung!',
+ 'Year' => 'Jahr',
+ 'Yes' => 'Ja',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'drucken' => 'print',
+ 'drucken_und_speichern' => 'print_and_save',
+ 'speichern' => 'save',
+ 'als_neu_speichern' => 'save_as_new',
+ 'erneuern' => 'update',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/de_utf/locales.pl b/locale/de_utf/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/de_utf/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/de_utf/login b/locale/de_utf/login
new file mode 100755
index 00000000..3129e08d
--- /dev/null
+++ b/locale/de_utf/login
@@ -0,0 +1,26 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Company' => 'Firma',
+ 'Continue' => 'Weiter',
+ 'Dataset is newer than version!' => 'Datensatz ist jünger als installierte Version',
+ 'Incorrect Dataset version!' => 'Ungültigige Datensatzversion',
+ 'Login' => 'Anmelden',
+ 'Name' => 'Name',
+ 'Password' => 'Passwort',
+ 'Upgrading to Version' => 'Datensatz wird erneuert auf Version',
+ 'Version' => 'Version',
+ 'You did not enter a name!' => 'Sie haben keinen Namen eingegeben!',
+ 'done' => 'fertig',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ 'anmelden' => 'login',
+};
+
+1;
+
diff --git a/locale/de_utf/menu b/locale/de_utf/menu
new file mode 100755
index 00000000..0e562ec5
--- /dev/null
+++ b/locale/de_utf/menu
@@ -0,0 +1,136 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP' => 'Verbindlichkeiten',
+ 'AP Aging' => 'Offene Verbindl.',
+ 'AP Transaction' => 'Eingangsbuchung',
+ 'AR' => 'Forderungen',
+ 'AR Aging' => 'Offene Forderungen',
+ 'AR Transaction' => 'Ausgangsbuchung',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Add Account' => 'Konto anlegen',
+ 'Add Assembly' => 'Erzeugnis anlegen',
+ 'Add Business' => 'Gewerbe anlegen',
+ 'Add Customer' => 'Kunde anlegen',
+ 'Add Department' => 'Abteilung anlegen',
+ 'Add Employee' => 'Arbeitnehmer anlegen',
+ 'Add GIFI' => 'GIFI anlegen',
+ 'Add Group' => 'Gruppe anlegen',
+ 'Add Labor/Overhead' => 'Gestehungskosten',
+ 'Add Language' => 'Sprache anlegen',
+ 'Add Part' => 'Ware anlegen',
+ 'Add Pricegroup' => 'Preisgruppe anlegen',
+ 'Add Project' => 'Projekt anlegen',
+ 'Add SIC' => 'SIC anlegen',
+ 'Add Service' => 'Dienstleistung anlegen',
+ 'Add Transaction' => 'Buchung anlegen',
+ 'Add Vendor' => 'Lieferant anlegen',
+ 'Add Warehouse' => 'Warenlager anlegen',
+ 'All Items' => 'Alle Artikeln',
+ 'Assemblies' => 'Erzeugnisse',
+ 'Audit Control' => 'Bücherkontrolle',
+ 'Backup' => 'Datensicherung',
+ 'Balance Sheet' => 'Bilanz',
+ 'Bin List' => 'Lagerliste',
+ 'Bin Lists' => 'Lagerlisten',
+ 'Cash' => 'Kasse',
+ 'Chart of Accounts' => 'Kontenübersicht',
+ 'Check' => 'Scheck',
+ 'Components' => 'Einzelteile',
+ 'Customers' => 'Kunden',
+ 'Defaults' => 'Einstellungen',
+ 'Departments' => 'Abteilungen',
+ 'Description' => 'Beschreibung',
+ 'Employees' => 'Arbeitnehmer',
+ 'General Ledger' => 'Hauptbuch',
+ 'Goods & Services' => 'Waren & Dienstleistungen',
+ 'Groups' => 'Gruppen',
+ 'HR' => 'Personal',
+ 'HTML Templates' => 'HTML Vorlagen',
+ 'History' => 'Statistik',
+ 'Income Statement' => 'G & V',
+ 'Invoice' => 'Rechnung',
+ 'LaTeX Templates' => 'LaTeX Vorlagen',
+ 'Labor/Overhead' => 'Gestehungskosten',
+ 'Language' => 'Sprache',
+ 'List Accounts' => 'Kontenliste',
+ 'List Businesses' => 'Gewerbe aufzeigen',
+ 'List Departments' => 'Abteilungen aufzeigen',
+ 'List GIFI' => 'GIFI aufzeigen',
+ 'List Languages' => 'Sprachen aufzeigen',
+ 'List Projects' => 'Projekte aufzeigen',
+ 'List SIC' => 'SIC aufzeigen',
+ 'List Warehouses' => 'Lagerorte aufzeigen',
+ 'Logout' => 'Abmelden',
+ 'Non-taxable' => 'Steuerfrei',
+ 'Open' => 'Offen',
+ 'Order Entry' => 'Bestellungen',
+ 'Outstanding' => 'Offen',
+ 'POS' => 'Kassa',
+ 'POS Invoice' => 'Kassarechnung',
+ 'Packing List' => 'Packliste',
+ 'Packing Lists' => 'Verpackungslisten',
+ 'Parts' => 'Waren',
+ 'Payment' => 'Belastung',
+ 'Payments' => 'Zahlungen',
+ 'Pick List' => 'Lagerliste',
+ 'Pick Lists' => 'Lagerlisten',
+ 'Preferences' => 'Benutzereinstellungen',
+ 'Pricegroups' => 'Preisgruppen',
+ 'Print' => 'Drucken',
+ 'Projects' => 'Projekte',
+ 'Purchase Order' => 'Einkaufsbestellung',
+ 'Purchase Orders' => 'Einkaufsbestellungen',
+ 'Quotation' => 'Angebot',
+ 'Quotations' => 'Angebote',
+ 'RFQ' => 'Anfrage',
+ 'RFQs' => 'Anfragen',
+ 'Receipt' => 'Quittung',
+ 'Receipts' => 'Quittungen',
+ 'Receive' => 'Einlagern',
+ 'Reconciliation' => 'Kontenabgleich',
+ 'Reports' => 'Berichte',
+ 'SIC' => 'SIC',
+ 'Sale' => 'Verkauf',
+ 'Sales Invoice' => 'Ausgangsrechnung',
+ 'Sales Invoices' => 'Ausgangsrechnungen',
+ 'Sales Order' => 'Verkaufsbeleg',
+ 'Sales Orders' => 'Verkaufsbelege',
+ 'Save to File' => 'Auf Festplatte speichern',
+ 'Search' => 'Suchen',
+ 'Send by E-Mail' => 'Per eMail schicken',
+ 'Services' => 'Leistungen',
+ 'Ship' => 'Versenden',
+ 'Shipping' => 'Versand',
+ 'Statement' => 'Zahlungserinnerung',
+ 'Stock Assembly' => 'Erzeugnis einlagern',
+ 'Stylesheet' => 'Stilvorlage',
+ 'System' => 'System',
+ 'Tax collected' => 'vereinnahmte Steuer',
+ 'Tax paid' => 'Vorsteuer',
+ 'Text Templates' => 'Text Schablonen',
+ 'Transactions' => 'Buchungen',
+ 'Transfer' => 'Ãœbertrag',
+ 'Transfer Inventory' => 'Inventarübertrag',
+ 'Translations' => 'Ãœbersetzungen',
+ 'Trial Balance' => 'Saldenbilanz',
+ 'Type of Business' => 'Gewerbe',
+ 'Vendor Invoice' => 'Einkaufsrechnung',
+ 'Vendors' => 'Lieferanten',
+ 'Version' => 'Version',
+ 'Warehouses' => 'Warenlager',
+ 'Work Order' => 'Arbeitsblatt',
+ 'Work Orders' => 'Arbeitsblätter',
+ 'Yearend' => 'Jahresabschluss',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/de_utf/oe b/locale/de_utf/oe
new file mode 100755
index 00000000..b410c5e3
--- /dev/null
+++ b/locale/de_utf/oe
@@ -0,0 +1,317 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Add Exchange Rate' => 'Wechselkurs anlegen',
+ 'Add Purchase Order' => 'Einkaufsbeleg anlegen',
+ 'Add Quotation' => 'Angebot erstellen',
+ 'Add Request for Quotation' => 'Anfrage erstellen',
+ 'Add Sales Invoice' => 'Ausgangsrechnung anlegen',
+ 'Add Sales Order' => 'Verkaufsbeleg anlegen',
+ 'Add Vendor Invoice' => 'Eingangsrechnung anlegen',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Betrag',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Order Number' => 'Soll die Bestellung mit folgender Nummer wirklich gelöscht werden:',
+ 'Are you sure you want to delete Quotation Number' => 'Soll das Angebot mit folgender Nummer wirklich gelöscht werden:',
+ 'Attachment' => 'als Anhang',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Rechnungsanschrift',
+ 'Bin' => 'Stellage',
+ 'Bin List' => 'Lagerliste',
+ 'Business' => 'Gewerbe',
+ 'C' => 'G',
+ 'Cannot delete order!' => 'Bestellung kann nicht gelöscht werden!',
+ 'Cannot delete quotation!' => 'Anfrage kann nicht gelöscht werden!',
+ 'Cannot save order!' => 'Bestellung kann nicht gespeichert werden!',
+ 'Cannot save quotation!' => 'Angebot kann nicht gespeichert werden!',
+ 'Cc' => 'Cc',
+ 'City' => 'Stadt',
+ 'Closed' => 'Geschlossen',
+ 'Company Name' => 'Firmenname',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Weiter',
+ 'Copies' => 'Kopien',
+ 'Cost' => 'Kosten',
+ 'Could not save!' => 'Kann nicht gespeichert werden!',
+ 'Could not transfer Inventory!' => 'Inventar wurde nicht übertragen!',
+ 'Country' => 'Land',
+ 'Credit Limit' => 'Kreditlimit',
+ 'Curr' => 'Währung',
+ 'Currency' => 'Währung',
+ 'Current' => 'Aktuell',
+ 'Customer' => 'Kunde',
+ 'Customer Number' => 'Kundennummer',
+ 'Customer missing!' => 'Kundenname fehlt!',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Date Received' => 'Erhalten',
+ 'Date received missing!' => 'Datum wenn erhalten fehlt!',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Delete' => 'Löschen',
+ 'Delivery Date' => 'Lieferung',
+ 'Department' => 'Abteilung',
+ 'Description' => 'Beschreibung',
+ 'Done' => 'Fertig',
+ 'E-mail' => 'eMail',
+ 'E-mail address missing!' => 'eMailadresse fehlt!',
+ 'E-mailed' => 'eMail gesendet',
+ 'Edit Purchase Order' => 'Einkaufsbeleg bearbeiten',
+ 'Edit Quotation' => 'Angebot bearbeiten',
+ 'Edit Request for Quotation' => 'Anfrage bearbeiten',
+ 'Edit Sales Order' => 'Verkaufsbeleg bearbeiten',
+ 'Employee' => 'Arbeitnehmer',
+ 'Exchange Rate' => 'Wechselkurs',
+ 'Exchange rate missing!' => 'Wechselkurs fehlt!',
+ 'Extended' => 'Summe',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'From' => 'Von',
+ 'Group' => 'Gruppe',
+ 'ID' => 'Nr.',
+ 'In-line' => 'im Textkörper (Inline)',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Internal Notes' => 'Interne Notizen',
+ 'Inventory saved!' => 'Inventar gespeichert!',
+ 'Inventory transferred!' => 'Inventar übertragen',
+ 'Invoice' => 'Rechnung',
+ 'Invoice Date missing!' => 'Rechnungsdatum fehlt!',
+ 'Invoice Number missing!' => 'Rechnungsnummer fehlt!',
+ 'Item not on file!' => 'Dieser Artikel ist nicht in der Datenbank!',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Manager' => 'Geschäftsführer',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Message' => 'Nachricht',
+ 'Month' => 'Monat',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Bemerkungen',
+ 'Nothing entered!' => 'Es wurde nichts eingetragen!',
+ 'Nothing selected!' => 'Es wurde nichts ausgewählt!',
+ 'Nothing to transfer!' => 'Es gibt nichts zum �ergeben!',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Nummer',
+ 'Number missing in Row' => 'Nummer fehlt in Zeile',
+ 'O' => 'O',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Open' => 'Offen',
+ 'Order' => 'Bestellung',
+ 'Order Date' => 'Bestelldatum',
+ 'Order Date missing!' => 'Bestelldatum fehlt!',
+ 'Order Number' => 'Bestellnummer',
+ 'Order Number missing!' => 'Bestellnummer fehlt!',
+ 'Order deleted!' => 'Bestellung gelöscht!',
+ 'Order saved!' => 'Bestellung gespeichert!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Packliste',
+ 'Packing List Date missing!' => 'Datum für Verpackungsliste fehlt!',
+ 'Packing List Number missing!' => 'Verpackungslistennummer fehlt!',
+ 'Part' => 'Ware',
+ 'Period' => 'Zeitraum',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Lagerliste',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Preis',
+ 'Print' => 'Drucken',
+ 'Print and Save' => 'Drucken und speichern',
+ 'Printed' => 'Gedruckt',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Dieses Projekt ist nicht in der Datenbank!',
+ 'Purchase Order' => 'Einkaufsbestellung',
+ 'Purchase Orders' => 'Einkaufsbestellungen',
+ 'Qty' => 'Menge',
+ 'Quarter' => 'Quartal',
+ 'Quotation' => 'Angebot',
+ 'Quotation Date' => 'Angebotsdatum',
+ 'Quotation Date missing!' => 'Angebotsdatum fehlt!',
+ 'Quotation Number' => 'Angebotsnummer',
+ 'Quotation Number missing!' => 'Angebotsnummer fehlt!',
+ 'Quotation deleted!' => 'Angebot gelöscht!',
+ 'Quotations' => 'Angebote',
+ 'RFQ' => 'Anfrage',
+ 'RFQ Number' => 'Anfragenummer',
+ 'Recd' => 'Erh',
+ 'Receive Merchandise' => 'Artikeln einlagern',
+ 'Reference' => 'Referenz',
+ 'Remaining' => 'Rest',
+ 'Request for Quotation' => 'Anfrage',
+ 'Request for Quotations' => 'Anfragen',
+ 'Required by' => 'Erforderlich am',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Ausgangsrechnung',
+ 'Sales Order' => 'Verkaufsbeleg',
+ 'Sales Orders' => 'Verkaufsbelege',
+ 'Salesperson' => 'Verkäufer',
+ 'Save' => 'Speichern',
+ 'Save as new' => 'als neu speichern',
+ 'Screen' => 'Bildschirm',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
+ 'Select postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Serial No.' => 'Seriennummer',
+ 'Service' => 'Dienstleistung',
+ 'Ship' => 'Versenden',
+ 'Ship Merchandise' => 'Waren verschicken',
+ 'Ship to' => 'Lieferung an',
+ 'Ship via' => 'Versandweg',
+ 'Shipping Address' => 'Lieferanschrift',
+ 'Shipping Date' => 'Versandsdatum',
+ 'Shipping Date missing!' => 'Versandsdatum fehlt!',
+ 'Shipping Point' => 'Zielort',
+ 'Startdate' => 'Beschäftigt seit',
+ 'State/Province' => 'Bundesland',
+ 'Subject' => 'Betreff',
+ 'Subtotal' => 'Zwischensumme',
+ 'Tax' => 'Steuer',
+ 'Tax Included' => 'Steuer im Preis enthalten',
+ 'Terms' => 'Zahlungsbedingungen',
+ 'To' => 'Bis',
+ 'Total' => 'Betrag',
+ 'Trade Discount' => 'Handelsrabatt',
+ 'Transfer' => 'Ãœbertrag',
+ 'Transfer Inventory' => 'Inventarübertrag',
+ 'Transfer to' => 'Ãœbergabe an',
+ 'Translation not on file!' => 'Ãœbersetzung nicht verfgbar',
+ 'Unit' => 'Einh.',
+ 'Update' => 'Erneuern',
+ 'Valid until' => 'Gültig bis',
+ 'Vendor' => 'Lieferant',
+ 'Vendor Invoice' => 'Einkaufsrechnung',
+ 'Vendor Number' => 'Lieferantennummer',
+ 'Vendor missing!' => 'Lieferant fehlt!',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Warehouse' => 'Warenlager',
+ 'Warning!' => 'Warnung!',
+ 'What type of item is this?' => 'Welche Artikelart ist das?',
+ 'Work Order' => 'Arbeitsblatt',
+ 'Year' => 'Jahr',
+ 'Yes' => 'Ja',
+ 'days' => 'Tage',
+ 'ea' => 'pro',
+ 'sent' => 'verschickt',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'fertig' => 'done',
+ 'email' => 'e_mail',
+ 'drucken' => 'print',
+ 'drucken_und_speichern' => 'print_and_save',
+ 'einkaufsbestellung' => 'purchase_order',
+ 'angebot' => 'quotation',
+ 'anfrage' => 'rfq',
+ 'ausgangsrechnung' => 'sales_invoice',
+ 'verkaufsbeleg' => 'sales_order',
+ 'speichern' => 'save',
+ 'als_neu_speichern' => 'save_as_new',
+ 'lieferung_an' => 'ship_to',
+ 'Ãœbertrag' => 'transfer',
+ 'erneuern' => 'update',
+ 'einkaufsrechnung' => 'vendor_invoice',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/de_utf/op b/locale/de_utf/op
new file mode 100755
index 00000000..17dedd18
--- /dev/null
+++ b/locale/de_utf/op
@@ -0,0 +1,47 @@
+$self{texts} = {
+ 'Continue' => 'Weiter',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'create_backorder' => 'create_backorder',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'invoice' => 'invoice',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'quotation_' => 'quotation_',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'ship_receive' => 'ship_receive',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'yes' => 'yes',
+ 'weiter' => 'continue',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'print' => 'print',
+ 'purchase_order' => 'purchase_order',
+ 'quotation_' => 'quotation_',
+ 'rfq_' => 'rfq_',
+ 'sales_order' => 'sales_order',
+ 'ship_to' => 'ship_to',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'yes' => 'yes',
+};
+
+1;
diff --git a/locale/de_utf/pe b/locale/de_utf/pe
new file mode 100755
index 00000000..f89d5ffa
--- /dev/null
+++ b/locale/de_utf/pe
@@ -0,0 +1,143 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Active' => 'Aktiv',
+ 'Add' => 'Hinzufügen',
+ 'Add Group' => 'Gruppe anlegen',
+ 'Add Pricegroup' => 'Preisgruppe anlegen',
+ 'Add Project' => 'Projekt anlegen',
+ 'Address' => 'Adresse',
+ 'All' => 'Alle',
+ 'Amount' => 'Betrag',
+ 'Assembly' => 'Erzeugnis',
+ 'Bin' => 'Stellage',
+ 'Continue' => 'Weiter',
+ 'Current' => 'Aktuell',
+ 'Customer' => 'Kunde',
+ 'Customer missing!' => 'Kundenname fehlt!',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Delete' => 'Löschen',
+ 'Description' => 'Beschreibung',
+ 'Description Translations' => 'Bescreibungsübersetzungen',
+ 'Detail' => 'Einzelheiten',
+ 'Edit Description Translations' => 'Beschreibungsübersetzungen bearbeiten',
+ 'Edit Group' => 'Gruppe bearbeiten',
+ 'Edit Pricegroup' => 'Preisgruppe bearbeiten',
+ 'Edit Project' => 'Projekt bearbeiten',
+ 'Employee' => 'Arbeitnehmer',
+ 'Enddate' => 'Ausgeschieden am',
+ 'From' => 'Von',
+ 'Group' => 'Gruppe',
+ 'Group Translations' => 'Gruppenübersetzung',
+ 'Group deleted!' => 'Gruppe gelöscht!',
+ 'Group missing!' => 'Gruppe fehlt!',
+ 'Group saved!' => 'Gruppe gespeichert!',
+ 'Groups' => 'Gruppen',
+ 'Income' => 'Einnahmen',
+ 'Language' => 'Sprache',
+ 'Languages not defined!' => 'Keine Sprachen definiert!',
+ 'Link Accounts' => 'Konten verknüpfen',
+ 'List Price' => 'Listenpreis',
+ 'Month' => 'Monat',
+ 'Notes' => 'Bemerkungen',
+ 'Nothing selected!' => 'Es wurde nichts ausgewählt!',
+ 'Number' => 'Nummer',
+ 'Orphaned' => 'nie benutzt',
+ 'Period' => 'Zeitraum',
+ 'Pricegroup' => 'Preisgruppe',
+ 'Pricegroup deleted!' => 'Preisgruppe gelöscht!',
+ 'Pricegroup missing!' => 'Preisgruppe fehlt!',
+ 'Pricegroup saved!' => 'Preisgruppe gespeichert!',
+ 'Pricegroups' => 'Preisgruppen',
+ 'Project' => 'Projekt',
+ 'Project Description Translations' => 'Übersetzung für Projektbeschreibungen',
+ 'Project Number' => 'Projektnummer',
+ 'Project deleted!' => 'Projekt gelöscht!',
+ 'Project saved!' => 'Projekt gespeichert!',
+ 'Projects' => 'Projekte',
+ 'Qty' => 'Menge',
+ 'Quarter' => 'Quartal',
+ 'Save' => 'Speichern',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Sell Price' => 'Verkaufspreis',
+ 'Startdate' => 'Beschäftigt seit',
+ 'Summary' => 'Zusammenfassung',
+ 'Tax' => 'Steuer',
+ 'To' => 'Bis',
+ 'Translation' => 'Ãœbersetzung',
+ 'Translation deleted!' => 'Übersetzung gelöscht!',
+ 'Translations saved!' => 'Ãœbersetzung gespeichert!',
+ 'Unit' => 'Einh.',
+ 'Update' => 'Erneuern',
+ 'Updated' => 'Erneuert am',
+ 'Vendor' => 'Lieferant',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Weight' => 'Gewicht',
+ 'Year' => 'Jahr',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'gruppe_anlegen' => 'add_group',
+ 'preisgruppe_anlegen' => 'add_pricegroup',
+ 'projekt_anlegen' => 'add_project',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'speichern' => 'save',
+ 'erneuern' => 'update',
+};
+
+1;
+
diff --git a/locale/de_utf/pos b/locale/de_utf/pos
new file mode 100755
index 00000000..e0a89a79
--- /dev/null
+++ b/locale/de_utf/pos
@@ -0,0 +1,82 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Add POS Invoice' => 'Kassarechnung anlegen',
+ 'Amount' => 'Betrag',
+ 'Business' => 'Gewerbe',
+ 'Cannot post transaction!' => 'Rechnung kann nicht gebucht werden!',
+ 'Change' => 'Wechselgeld',
+ 'Continue' => 'Weiter',
+ 'Credit Limit' => 'Kreditlimit',
+ 'Currency' => 'Währung',
+ 'Current' => 'Aktuell',
+ 'Customer' => 'Kunde',
+ 'Customer missing!' => 'Kundenname fehlt!',
+ 'Delete' => 'Löschen',
+ 'Department' => 'Abteilung',
+ 'Description' => 'Beschreibung',
+ 'Edit POS Invoice' => 'Kassarechnung bearbeiten',
+ 'Exchange Rate' => 'Wechselkurs',
+ 'Exchange rate missing!' => 'Wechselkurs fehlt!',
+ 'Extended' => 'Summe',
+ 'From' => 'Von',
+ 'Language' => 'Sprache',
+ 'Memo' => 'Vermerk',
+ 'Month' => 'Monat',
+ 'Number' => 'Nummer',
+ 'Open' => 'Offen',
+ 'Period' => 'Zeitraum',
+ 'Post' => 'Buchen',
+ 'Posted!' => 'Verbucht!',
+ 'Price' => 'Preis',
+ 'Print' => 'Drucken',
+ 'Print and Post' => 'Drucken und buchen',
+ 'Printed' => 'Gedruckt',
+ 'Qty' => 'Menge',
+ 'Quarter' => 'Quartal',
+ 'Receipts' => 'Quittungen',
+ 'Record in' => 'Buchen auf',
+ 'Remaining' => 'Rest',
+ 'Salesperson' => 'Verkäufer',
+ 'Screen' => 'Bildschirm',
+ 'Source' => 'Beleg',
+ 'Subtotal' => 'Zwischensumme',
+ 'Tax Included' => 'Steuer im Preis enthalten',
+ 'To' => 'Bis',
+ 'Total' => 'Betrag',
+ 'Trade Discount' => 'Handelsrabatt',
+ 'Unit' => 'Einh.',
+ 'Update' => 'Erneuern',
+ 'Year' => 'Jahr',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'buchen' => 'post',
+ 'drucken' => 'print',
+ 'drucken_und_buchen' => 'print_and_post',
+ 'erneuern' => 'update',
+};
+
+1;
+
diff --git a/locale/de_utf/ps b/locale/de_utf/ps
new file mode 100755
index 00000000..edd9e075
--- /dev/null
+++ b/locale/de_utf/ps
@@ -0,0 +1,347 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Aging' => 'Offene Verbindl.',
+ 'AP Outstanding' => 'Offene Verbindlichkeiten',
+ 'AP Transaction' => 'Eingangsbuchung',
+ 'AP Transactions' => 'Eingangsbuchungen',
+ 'AR Aging' => 'Offene Forderungen',
+ 'AR Outstanding' => 'Offene Forderungen.',
+ 'AR Transaction' => 'Ausgangsbuchung',
+ 'AR Transactions' => 'Ausgangsbuchungen',
+ 'Account' => 'Konto',
+ 'Account Number' => 'Kontonummer',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Accounts' => 'Konten',
+ 'Accrual' => 'Laufend',
+ 'Add POS Invoice' => 'Kassarechnung anlegen',
+ 'Add Purchase Order' => 'Einkaufsbeleg anlegen',
+ 'Add Quotation' => 'Angebot erstellen',
+ 'Add Request for Quotation' => 'Anfrage erstellen',
+ 'Add Sales Invoice' => 'Ausgangsrechnung anlegen',
+ 'Add Sales Order' => 'Verkaufsbeleg anlegen',
+ 'Address' => 'Adresse',
+ 'All Accounts' => 'Alle Konten',
+ 'Amount' => 'Betrag',
+ 'Amount Due' => 'Betrag fällig',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Invoice Number' => 'Soll die Rechnung mit folgender Nummer wirklich gel�cht werden:',
+ 'Are you sure you want to delete Transaction' => 'Buchung wirklich löschen?',
+ 'Attachment' => 'als Anhang',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Balance' => 'Bilanz',
+ 'Balance Sheet' => 'Bilanz',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Rechnungsanschrift',
+ 'Bin' => 'Stellage',
+ 'Bin List' => 'Lagerliste',
+ 'Business' => 'Gewerbe',
+ 'Cannot delete invoice!' => 'Rechnung kann nicht gelöscht werden!',
+ 'Cannot delete transaction!' => 'Buchung kann nicht gelöscht werden!',
+ 'Cannot post invoice for a closed period!' => 'Das Rechnungsdatum fällt in einen abgeschlossen Zeitraum!',
+ 'Cannot post invoice!' => 'Rechnung kann nicht gebucht werden!',
+ 'Cannot post payment for a closed period!' => 'Es können keine Zahlungen für abgeschlossene Bücher gebucht werden!',
+ 'Cannot post transaction for a closed period!' => 'Für einen bereits abgeschlossenen Zeitraum kann keine Buchung angelegt werden!',
+ 'Cannot post transaction!' => 'Rechnung kann nicht gebucht werden!',
+ 'Cash' => 'Kasse',
+ 'Cc' => 'Cc',
+ 'Change' => 'Wechselgeld',
+ 'Check' => 'Scheck',
+ 'City' => 'Stadt',
+ 'Closed' => 'Geschlossen',
+ 'Company Name' => 'Firmenname',
+ 'Compare to' => 'Gegenüberstellen zu',
+ 'Confirm!' => 'Bestätigen Sie!',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Weiter',
+ 'Copies' => 'Kopien',
+ 'Country' => 'Land',
+ 'Credit' => 'Haben',
+ 'Credit Limit' => 'Kreditlimit',
+ 'Curr' => 'Währung',
+ 'Currency' => 'Währung',
+ 'Current' => 'Aktuell',
+ 'Current Earnings' => 'Aktuelles Einkommen',
+ 'Customer' => 'Kunde',
+ 'Customer Number' => 'Kundennummer',
+ 'Customer missing!' => 'Kundenname fehlt!',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Date Paid' => 'Zahlungsdatum',
+ 'Debit' => 'Soll',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Decimalplaces' => 'Dezimalstellen',
+ 'Delete' => 'Löschen',
+ 'Delivery Date' => 'Lieferung',
+ 'Department' => 'Abteilung',
+ 'Description' => 'Beschreibung',
+ 'Detail' => 'Einzelheiten',
+ 'Due Date' => 'Fälligkeitsdatum',
+ 'Due Date missing!' => 'Fälligkeitsdatum fehlt!',
+ 'E-mail' => 'eMail',
+ 'E-mail Statement to' => 'Zahlungserinnerung per eMail an',
+ 'E-mail address missing!' => 'eMailadresse fehlt!',
+ 'E-mailed' => 'eMail gesendet',
+ 'Edit POS Invoice' => 'Kassarechnung bearbeiten',
+ 'Edit Sales Invoice' => 'Ausgangsrechnung bearbeiten',
+ 'Employee' => 'Arbeitnehmer',
+ 'Exch' => 'Wkurs.',
+ 'Exchange Rate' => 'Wechselkurs',
+ 'Exchange rate for payment missing!' => 'Wechselkurs für Bezahlung fehlt!',
+ 'Exchange rate missing!' => 'Wechselkurs fehlt!',
+ 'Extended' => 'Summe',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'From' => 'Von',
+ 'GIFI' => 'GIFI',
+ 'Group' => 'Gruppe',
+ 'Heading' => 'Ãœberschrift',
+ 'ID' => 'Nr.',
+ 'In-line' => 'im Textkörper (Inline)',
+ 'Include Exchange Rate Difference' => 'Wechselkursunterschied aufnehmen',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Income Statement' => 'G & V',
+ 'Internal Notes' => 'Interne Notizen',
+ 'Invoice' => 'Rechnung',
+ 'Invoice Date' => 'Rechnungsdatum',
+ 'Invoice Date missing!' => 'Rechnungsdatum fehlt!',
+ 'Invoice Number' => 'Rechnungsnummer',
+ 'Invoice Number missing!' => 'Rechnungsnummer fehlt!',
+ 'Invoice deleted!' => 'Rechung gelöscht!',
+ 'Item not on file!' => 'Dieser Artikel ist nicht in der Datenbank!',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Language' => 'Sprache',
+ 'Manager' => 'Geschäftsführer',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Memo' => 'Vermerk',
+ 'Message' => 'Nachricht',
+ 'Method' => 'Methode',
+ 'Month' => 'Monat',
+ 'N/A' => 'N.Z.',
+ 'No.' => 'Nr.',
+ 'Non-taxable Purchases' => 'Steuerfreie Einkäufe',
+ 'Non-taxable Sales' => 'Steuerfreie Verkäufe',
+ 'Notes' => 'Bemerkungen',
+ 'Nothing selected!' => 'Es wurde nichts ausgewählt!',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Nummer',
+ 'Number missing in Row' => 'Nummer fehlt in Zeile',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Open' => 'Offen',
+ 'Order' => 'Bestellung',
+ 'Order Date missing!' => 'Bestelldatum fehlt!',
+ 'Order Number' => 'Bestellnummer',
+ 'Order Number missing!' => 'Bestellnummer fehlt!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Packliste',
+ 'Packing List Date missing!' => 'Datum für Verpackungsliste fehlt!',
+ 'Packing List Number missing!' => 'Verpackungslistennummer fehlt!',
+ 'Paid' => 'Bezahlt',
+ 'Part' => 'Ware',
+ 'Payment date missing!' => 'Tag der Zahlung fehlt!',
+ 'Payments' => 'Zahlungen',
+ 'Period' => 'Zeitraum',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Lagerliste',
+ 'Post' => 'Buchen',
+ 'Post as new' => 'Neu buchen',
+ 'Posted!' => 'Verbucht!',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Preis',
+ 'Print' => 'Drucken',
+ 'Print and Post' => 'Drucken und buchen',
+ 'Printed' => 'Gedruckt',
+ 'Project' => 'Projekt',
+ 'Project Number' => 'Projektnummer',
+ 'Project Transactions' => 'Projektbuchungen',
+ 'Project not on file!' => 'Dieses Projekt ist nicht in der Datenbank!',
+ 'Purchase Order' => 'Einkaufsbestellung',
+ 'Qty' => 'Menge',
+ 'Quarter' => 'Quartal',
+ 'Quotation' => 'Angebot',
+ 'Quotation Date missing!' => 'Angebotsdatum fehlt!',
+ 'Quotation Number missing!' => 'Angebotsnummer fehlt!',
+ 'Recd' => 'Erh',
+ 'Receipt' => 'Quittung',
+ 'Receipts' => 'Quittungen',
+ 'Record in' => 'Buchen auf',
+ 'Reference' => 'Referenz',
+ 'Remaining' => 'Rest',
+ 'Report for' => 'Bericht für',
+ 'Required by' => 'Erforderlich am',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Verkaufsbeleg',
+ 'Salesperson' => 'Verkäufer',
+ 'Screen' => 'Bildschirm',
+ 'Select all' => 'Alle auswählen',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
+ 'Select postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Serial No.' => 'Seriennummer',
+ 'Service' => 'Dienstleistung',
+ 'Ship' => 'Versenden',
+ 'Ship to' => 'Lieferung an',
+ 'Ship via' => 'Versandweg',
+ 'Shipping Address' => 'Lieferanschrift',
+ 'Shipping Point' => 'Zielort',
+ 'Source' => 'Beleg',
+ 'Standard' => 'Standard',
+ 'Startdate' => 'Beschäftigt seit',
+ 'State/Province' => 'Bundesland',
+ 'Statement' => 'Zahlungserinnerung',
+ 'Statement sent to' => 'Zahlungserinnerung verschickt an',
+ 'Statements sent to printer!' => 'Zahlungserinnerungen gedruckt!',
+ 'Subject' => 'Betreff',
+ 'Subtotal' => 'Zwischensumme',
+ 'Summary' => 'Zusammenfassung',
+ 'Tax' => 'Steuer',
+ 'Tax Included' => 'Steuer im Preis enthalten',
+ 'Tax collected' => 'vereinnahmte Steuer',
+ 'Tax paid' => 'Vorsteuer',
+ 'Till' => 'Kassa',
+ 'To' => 'Bis',
+ 'Total' => 'Betrag',
+ 'Trade Discount' => 'Handelsrabatt',
+ 'Transaction deleted!' => 'Buchung gelöscht!',
+ 'Transaction posted!' => 'Buchung getätigt!',
+ 'Translation not on file!' => 'Ãœbersetzung nicht verfgbar',
+ 'Trial Balance' => 'Saldenbilanz',
+ 'Unit' => 'Einh.',
+ 'Update' => 'Erneuern',
+ 'Vendor' => 'Lieferant',
+ 'Vendor Number' => 'Lieferantennummer',
+ 'Vendor missing!' => 'Lieferant fehlt!',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Warning!' => 'Warnung!',
+ 'What type of item is this?' => 'Welche Artikelart ist das?',
+ 'Work Order' => 'Arbeitsblatt',
+ 'Year' => 'Jahr',
+ 'Yes' => 'Ja',
+ 'as at' => 'zum Stand',
+ 'ea' => 'pro',
+ 'for Period' => 'für den Zeitraum',
+ 'posted!' => 'gebucht!',
+ 'sent' => 'verschickt',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'eingangsbuchung' => 'ap_transaction',
+ 'ausgangsbuchung' => 'ar_transaction',
+ 'weiter' => 'continue',
+ 'löschen' => 'delete',
+ 'email' => 'e_mail',
+ 'buchen' => 'post',
+ 'neu_buchen' => 'post_as_new',
+ 'drucken' => 'print',
+ 'drucken_und_buchen' => 'print_and_post',
+ 'verkaufsbeleg' => 'sales_order',
+ 'alle_auswählen' => 'select_all',
+ 'lieferung_an' => 'ship_to',
+ 'erneuern' => 'update',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/de_utf/pw b/locale/de_utf/pw
new file mode 100755
index 00000000..70e3afa4
--- /dev/null
+++ b/locale/de_utf/pw
@@ -0,0 +1,14 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Continue' => 'Weiter',
+ 'Password' => 'Passwort',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'weiter' => 'continue',
+};
+
+1;
+
diff --git a/locale/de_utf/rc b/locale/de_utf/rc
new file mode 100755
index 00000000..15e56d31
--- /dev/null
+++ b/locale/de_utf/rc
@@ -0,0 +1,81 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Balance' => 'Bilanz',
+ 'Beginning Balance' => 'Anfangsbilanz',
+ 'Cleared' => 'Entlastet',
+ 'Continue' => 'Weiter',
+ 'Credit' => 'Haben',
+ 'Current' => 'Aktuell',
+ 'Date' => 'Datum',
+ 'Debit' => 'Soll',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Description' => 'Beschreibung',
+ 'Detail' => 'Einzelheiten',
+ 'Difference' => 'Differenz',
+ 'Done' => 'Fertig',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'From' => 'Von',
+ 'Include Exchange Rate Difference' => 'Wechselkursunterschied aufnehmen',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Month' => 'Monat',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Out of balance!' => 'Summen stimmen nicht berein!',
+ 'Outstanding' => 'Offen',
+ 'Period' => 'Zeitraum',
+ 'Quarter' => 'Quartal',
+ 'R' => 'R',
+ 'Reconciliation' => 'Kontenabgleich',
+ 'Reconciliation Report' => 'Kontenabgleichungsreport',
+ 'Select all' => 'Alle auswählen',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Source' => 'Beleg',
+ 'Statement Balance' => 'Auszugsbilanz',
+ 'Summary' => 'Zusammenfassung',
+ 'To' => 'Bis',
+ 'Update' => 'Erneuern',
+ 'Year' => 'Jahr',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'weiter' => 'continue',
+ 'fertig' => 'done',
+ 'alle_auswählen' => 'select_all',
+ 'erneuern' => 'update',
+};
+
+1;
+
diff --git a/locale/de_utf/rp b/locale/de_utf/rp
new file mode 100755
index 00000000..5d6823e6
--- /dev/null
+++ b/locale/de_utf/rp
@@ -0,0 +1,181 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Aging' => 'Offene Verbindl.',
+ 'AR Aging' => 'Offene Forderungen',
+ 'Account' => 'Konto',
+ 'Account Number' => 'Kontonummer',
+ 'Accounting Menu' => 'Kontoverwaltung',
+ 'Accounts' => 'Konten',
+ 'Accrual' => 'Laufend',
+ 'Address' => 'Adresse',
+ 'All Accounts' => 'Alle Konten',
+ 'Amount' => 'Betrag',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Attachment' => 'als Anhang',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Balance' => 'Bilanz',
+ 'Balance Sheet' => 'Bilanz',
+ 'Bcc' => 'Bcc',
+ 'Cash' => 'Kasse',
+ 'Cc' => 'Cc',
+ 'Compare to' => 'Gegenüberstellen zu',
+ 'Continue' => 'Weiter',
+ 'Copies' => 'Kopien',
+ 'Credit' => 'Haben',
+ 'Curr' => 'Währung',
+ 'Current' => 'Aktuell',
+ 'Current Earnings' => 'Aktuelles Einkommen',
+ 'Customer' => 'Kunde',
+ 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
+ 'Date' => 'Datum',
+ 'Debit' => 'Soll',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezember',
+ 'Decimalplaces' => 'Dezimalstellen',
+ 'Department' => 'Abteilung',
+ 'Description' => 'Beschreibung',
+ 'Detail' => 'Einzelheiten',
+ 'Due Date' => 'Fälligkeitsdatum',
+ 'E-mail' => 'eMail',
+ 'E-mail Statement to' => 'Zahlungserinnerung per eMail an',
+ 'E-mail address missing!' => 'eMailadresse fehlt!',
+ 'Feb' => 'Feb',
+ 'February' => 'Februar',
+ 'From' => 'Von',
+ 'GIFI' => 'GIFI',
+ 'Heading' => 'Ãœberschrift',
+ 'ID' => 'Nr.',
+ 'In-line' => 'im Textkörper (Inline)',
+ 'Include Exchange Rate Difference' => 'Wechselkursunterschied aufnehmen',
+ 'Include in Report' => 'In Bericht aufnehmen',
+ 'Income Statement' => 'G & V',
+ 'Invoice' => 'Rechnung',
+ 'Jan' => 'Jan',
+ 'January' => 'Januar',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Language' => 'Sprache',
+ 'Mar' => 'Mär',
+ 'March' => 'März',
+ 'May' => 'Mai',
+ 'May ' => 'Mai',
+ 'Memo' => 'Vermerk',
+ 'Message' => 'Nachricht',
+ 'Method' => 'Methode',
+ 'Month' => 'Monat',
+ 'N/A' => 'N.Z.',
+ 'Non-taxable Purchases' => 'Steuerfreie Einkäufe',
+ 'Non-taxable Sales' => 'Steuerfreie Verkäufe',
+ 'Nothing selected!' => 'Es wurde nichts ausgewählt!',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Nummer',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Order' => 'Bestellung',
+ 'PDF' => 'PDF',
+ 'Payments' => 'Zahlungen',
+ 'Period' => 'Zeitraum',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Drucken',
+ 'Project' => 'Projekt',
+ 'Project Number' => 'Projektnummer',
+ 'Project Transactions' => 'Projektbuchungen',
+ 'Project not on file!' => 'Dieses Projekt ist nicht in der Datenbank!',
+ 'Quarter' => 'Quartal',
+ 'Receipts' => 'Quittungen',
+ 'Reference' => 'Referenz',
+ 'Report for' => 'Bericht für',
+ 'Salesperson' => 'Verkäufer',
+ 'Screen' => 'Bildschirm',
+ 'Select all' => 'Alle auswählen',
+ 'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
+ 'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
+ 'Select postscript or PDF!' => 'Postscript oder PDF auswählen!',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Source' => 'Beleg',
+ 'Standard' => 'Standard',
+ 'Startdate' => 'Beschäftigt seit',
+ 'Statement' => 'Zahlungserinnerung',
+ 'Statement sent to' => 'Zahlungserinnerung verschickt an',
+ 'Statements sent to printer!' => 'Zahlungserinnerungen gedruckt!',
+ 'Subject' => 'Betreff',
+ 'Subtotal' => 'Zwischensumme',
+ 'Summary' => 'Zusammenfassung',
+ 'Tax' => 'Steuer',
+ 'Tax collected' => 'vereinnahmte Steuer',
+ 'Tax paid' => 'Vorsteuer',
+ 'Till' => 'Kassa',
+ 'To' => 'Bis',
+ 'Total' => 'Betrag',
+ 'Trial Balance' => 'Saldenbilanz',
+ 'Vendor' => 'Lieferant',
+ 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
+ 'Warning!' => 'Warnung!',
+ 'Year' => 'Jahr',
+ 'as at' => 'zum Stand',
+ 'for Period' => 'für den Zeitraum',
+ 'sent' => 'verschickt',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'weiter' => 'continue',
+ 'email' => 'e_mail',
+ 'drucken' => 'print',
+ 'alle_auswählen' => 'select_all',
+};
+
+1;
+
diff --git a/locale/dk/COPYING b/locale/dk/COPYING
new file mode 100755
index 00000000..bed854c2
--- /dev/null
+++ b/locale/dk/COPYING
@@ -0,0 +1,24 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2001
+#
+# Danish texts:
+#
+# Author: Keld Jørn Simonsen <keld@dkuug.dk>
+# Jonas Smedegaard <jonas@jones.dk>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/dk/LANGUAGE b/locale/dk/LANGUAGE
new file mode 100755
index 00000000..bd082a26
--- /dev/null
+++ b/locale/dk/LANGUAGE
@@ -0,0 +1 @@
+Danish
diff --git a/locale/dk/aa b/locale/dk/aa
new file mode 100755
index 00000000..48fe46f1
--- /dev/null
+++ b/locale/dk/aa
@@ -0,0 +1,156 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Udestående kreditorer',
+ 'AP Transaction' => 'Leverandørfaktura',
+ 'AP Transactions' => 'Leverandørfakturaer',
+ 'AR Outstanding' => 'Udestående debitorer',
+ 'AR Transaction' => 'Debitorpostering',
+ 'AR Transactions' => 'Debitorposteringer',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Konto-menu',
+ 'Add AP Transaction' => 'Ny kreditorpostering',
+ 'Add AR Transaction' => 'Ny debitorpostering',
+ 'Amount' => 'Beløb',
+ 'Amount Due' => 'Forfaldent',
+ 'Apr' => 'apr',
+ 'April' => 'april',
+ 'Are you sure you want to delete Transaction' => 'Er du sikker på du vil fjerne postering',
+ 'Aug' => 'aug',
+ 'August' => 'august',
+ 'Cannot delete transaction!' => 'Kan ikke slette postering!',
+ 'Cannot post payment for a closed period!' => 'Kan ikke bogføre betaling for en afsluttet periode',
+ 'Cannot post transaction for a closed period!' => 'Kan ikke bogføre postering for en afsluttet periode!',
+ 'Cannot post transaction!' => 'Kan ikke bogføre postering!',
+ 'Check' => 'Check',
+ 'Closed' => 'Afsluttet',
+ 'Confirm!' => 'Bekræft!',
+ 'Continue' => 'Fortsæt',
+ 'Credit' => 'Kredit',
+ 'Credit Limit' => 'Kreditgrænse',
+ 'Curr' => 'Val',
+ 'Currency' => 'Valuta',
+ 'Current' => 'Aktuel',
+ 'Customer' => 'Kunde',
+ 'Customer missing!' => 'Kunde mangler!',
+ 'Date' => 'Dato',
+ 'Date Paid' => 'Betalingsdato',
+ 'Debit' => 'Debet',
+ 'Dec' => 'dec',
+ 'December' => 'december',
+ 'Delete' => 'Fjern',
+ 'Department' => 'Afdeling',
+ 'Description' => 'Beskrivelse',
+ 'Detail' => 'Detalje',
+ 'Due Date' => 'Forfaldsdato',
+ 'Due Date missing!' => 'Forfaldsdato mangler!',
+ 'Edit AP Transaction' => 'Redigér kreditorpostering',
+ 'Edit AR Transaction' => 'Redigér debitorpostering',
+ 'Employee' => 'Medarbejder',
+ 'Exch' => 'Vxl',
+ 'Exchange Rate' => 'Vekselkurs',
+ 'Exchange rate for payment missing!' => 'Valutakurs for betaling mangler!',
+ 'Exchange rate missing!' => 'Vekselkurs mangler!',
+ 'Feb' => 'feb',
+ 'February' => 'februar',
+ 'From' => 'Fra',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Inkludér i rapport',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date' => 'Fakturadato',
+ 'Invoice Date missing!' => 'Fakturadato mangler!',
+ 'Invoice Number' => 'Fakturanummer',
+ 'Jan' => 'jan',
+ 'January' => 'januar',
+ 'Jul' => 'jul',
+ 'July' => 'juli',
+ 'Jun' => 'jun',
+ 'June' => 'juni',
+ 'Manager' => 'Leder',
+ 'Mar' => 'mar',
+ 'March' => 'marts',
+ 'May' => 'maj',
+ 'May ' => 'maj ',
+ 'Memo' => 'Note',
+ 'Month' => 'Måned',
+ 'No.' => 'Nummer',
+ 'Notes' => 'Bemærkninger',
+ 'Nov' => 'nov',
+ 'November' => 'november',
+ 'Oct' => 'okt',
+ 'October' => 'oktober',
+ 'Open' => 'Åbn',
+ 'Order' => 'Ordre',
+ 'Order Number' => 'Ordrenummer',
+ 'Paid' => 'Betalt',
+ 'Payment date missing!' => 'Betalingsdato mangler!',
+ 'Payments' => 'Betalinger',
+ 'Period' => 'Periode',
+ 'Post' => 'Bogfør',
+ 'Post as new' => 'Bogfør som ny',
+ 'Print' => 'Udskriv',
+ 'Print and Post' => 'Udskriv og send',
+ 'Project' => 'Projekt',
+ 'Quarter' => 'Kvartal',
+ 'Receipt' => 'Kvittering',
+ 'Remaining' => 'Resterer',
+ 'Sales Invoice.' => 'Salgsfaktura.',
+ 'Salesperson' => 'Sælger',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Ship to' => 'Send til',
+ 'Ship via' => 'Send via',
+ 'Shipping Point' => 'Afsendelsessted',
+ 'Source' => 'Bilag',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Oversigt',
+ 'Tax' => 'Afgift/Moms',
+ 'Tax Included' => 'Inkl. afgifter og moms',
+ 'Till' => 'Indtil',
+ 'To' => 'til',
+ 'Total' => 'I alt',
+ 'Transaction' => 'Postering',
+ 'Transaction deleted!' => 'Postering slettet!',
+ 'Transaction posted!' => 'Postering bogført!',
+ 'Update' => 'Opdatér',
+ 'Vendor' => 'Leverandør',
+ 'Vendor Invoice.' => 'Indkøbsfaktura.',
+ 'Vendor missing!' => 'Leverandør mangler!',
+ 'Year' => 'År',
+ 'Yes' => 'Ja',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'leverandørfaktura' => 'ap_transaction',
+ 'debitorpostering' => 'ar_transaction',
+ 'fortsæt' => 'continue',
+ 'fjern' => 'delete',
+ 'bogfør' => 'post',
+ 'bogfør_som_ny' => 'post_as_new',
+ 'udskriv' => 'print',
+ 'udskriv_og_send' => 'print_and_post',
+ 'salgsfaktura_' => 'sales_invoice_',
+ 'send_til' => 'ship_to',
+ 'opdatér' => 'update',
+ 'indkøbsfaktura_' => 'vendor_invoice_',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/dk/admin b/locale/dk/admin
new file mode 100755
index 00000000..d75fac0a
--- /dev/null
+++ b/locale/dk/admin
@@ -0,0 +1,137 @@
+$self{texts} = {
+ 'Access Control' => 'Adgangskontrol',
+ 'Accounting' => 'Bogføring',
+ 'Add User' => 'Ny bruger',
+ 'Address' => 'Adresse',
+ 'Administration' => 'Administration',
+ 'Administrator' => 'Administrator',
+ 'All Datasets up to date!' => 'Alle datasæt opdaterede',
+ 'Cannot create Lock!' => 'Cannot create Lock!',
+ 'Change Admin Password' => 'Ændr adgangskode for administrator',
+ 'Change Password' => 'Ændr adgangskode',
+ 'Click on login name to edit!' => 'Klik på brugernavn for at redigere',
+ 'Company' => 'Firma',
+ 'Connect to' => 'Forbind til',
+ 'Continue' => 'Fortsæt',
+ 'Create Chart of Accounts' => 'Opret kontoplan',
+ 'Create Dataset' => 'Opret datasæt',
+ 'DBI not installed!' => 'DBI ikke installeret',
+ 'Database' => 'Database',
+ 'Database Administration' => 'Administration af database',
+ 'Database Driver not checked!' => 'Databasedriver ikke kontrolleret',
+ 'Database User missing!' => 'Bruger af database mangler!',
+ 'Dataset' => 'Datasæt',
+ 'Dataset missing!' => 'Datasæt mangler!',
+ 'Dataset updated!' => 'Datasæt opdateret!',
+ 'Date Format' => 'Datoformat',
+ 'Delete' => 'Fjern',
+ 'Delete Dataset' => 'Fjern datasæt',
+ 'Directory' => 'Katalog',
+ 'Driver' => 'Driver',
+ 'Dropdown Limit' => 'Grænse for nedtræk',
+ 'E-mail' => 'E-post',
+ 'Edit User' => 'Redigér bruger',
+ 'Existing Datasets' => 'Eksisterende datasæt',
+ 'Fax' => 'Fax',
+ 'Host' => 'Vært',
+ 'Hostname missing!' => 'Værtsnavn mangler',
+ 'Language' => 'Sprog',
+ 'Lock System' => 'Lås system',
+ 'Lockfile created!' => 'Lockfile created!',
+ 'Lockfile removed!' => 'Lockfile removed!',
+ 'Login' => 'Log på',
+ 'Login name missing!' => 'Login name missing!',
+ 'Logout' => 'Log af',
+ 'Manager' => 'Leder',
+ 'Menu Width' => 'Menubredde',
+ 'Multibyte Encoding' => 'Multibyte Encoding',
+ 'Name' => 'Navn',
+ 'New Templates' => 'Nye skabeloner',
+ 'No Database Drivers available!' => 'Ingen databasedrivere tilgængelige',
+ 'No Dataset selected!' => 'Intet datasæt valgt',
+ 'Nothing to delete!' => 'Intet at slette!',
+ 'Number Format' => 'Numerisk format',
+ 'Oracle Database Administration' => 'Oracle Administration af database',
+ 'Password' => 'Adgangskode',
+ 'Password changed!' => 'Adgangskode ændret',
+ 'Pg Database Administration' => 'Pg Administration af database',
+ 'PgPP Database Administration' => 'PgPP Database Administration',
+ 'Phone' => 'Tel.',
+ 'Port' => 'Port',
+ 'Port missing!' => 'Port mangler',
+ 'Printer' => 'Printer',
+ 'Save' => 'Gem',
+ 'Setup Templates' => 'Skabeloner for opsætning',
+ 'Signature' => 'Underskrift',
+ 'Stylesheet' => 'Stilark',
+ 'Templates' => 'Skabeloner',
+ 'The following Datasets are not in use and can be deleted' => 'De følgende datasæt er ikke i brug og kan slettes',
+ 'The following Datasets need to be updated' => 'De følgende datasæt skal opdateres',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Dette er en indledende kontrol af eksisterende kilder. Ingenting vil blive oprettet eller slettet på dette trin',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Skift brugernavnet for en eksisterende bruger og gem for at tilføje en ny bruger til en gruppe. Den nye bruger vil så bive gemt med de samme indstillinger under det nye brugernavn.',
+ 'Unlock System' => 'Unlock System',
+ 'Update Dataset' => 'Opdatér datasæt',
+ 'Use Templates' => 'Brug skabeloner',
+ 'User' => 'Bruger',
+ 'User deleted!' => 'Bruger slettet!',
+ 'User saved!' => 'Bruger gemt!',
+ 'Version' => 'Version',
+ 'does not exist' => 'eksisterer ikke',
+ 'is already a member!' => 'er allerede et medlem',
+ 'localhost' => 'lokalt',
+ 'locked!' => 'låst',
+ 'successfully created!' => 'oprettet!',
+ 'successfully deleted!' => 'slettet!',
+ 'website' => 'på Internet',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'ny_bruger' => 'add_user',
+ 'Ændr_adgangskode_for_administrator' => 'change_admin_password',
+ 'Ændr_adgangskode' => 'change_password',
+ 'fortsæt' => 'continue',
+ 'opret_datasæt' => 'create_dataset',
+ 'fjern' => 'delete',
+ 'fjern_datasæt' => 'delete_dataset',
+ 'lås_system' => 'lock_system',
+ 'log_på' => 'login',
+ 'log_af' => 'logout',
+ 'oracle_administration_af_database' => 'oracle_database_administration',
+ 'pg_administration_af_database' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'gem' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'opdatér_datasæt' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/dk/all b/locale/dk/all
new file mode 100755
index 00000000..510ce007
--- /dev/null
+++ b/locale/dk/all
@@ -0,0 +1,894 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+
+$self{texts} = {
+ 'A' => 'A',
+ 'AP' => 'Kreditorer',
+ 'AP Aging' => 'Aldersfordeling',
+ 'AP Outstanding' => 'Udestående kreditorer',
+ 'AP Transaction' => 'Leverandørfaktura',
+ 'AP Transactions' => 'Leverandørfakturaer',
+ 'AR' => 'Debitorer',
+ 'AR Aging' => 'Aldersfordeling',
+ 'AR Outstanding' => 'Udestående debitorer',
+ 'AR Transaction' => 'Debitorpostering',
+ 'AR Transactions' => 'Debitorposteringer',
+ 'AR/AP' => '',
+ 'About' => 'Om',
+ 'Above' => 'Over',
+ 'Access Control' => 'Adgangskontrol',
+ 'Access Denied!' => '',
+ 'Account' => 'Konto',
+ 'Account Number' => 'Kontonummer',
+ 'Account Number missing!' => 'Kontonummer mangler!',
+ 'Account Type' => 'Kontotype',
+ 'Account Type missing!' => 'Kontotype mangler!',
+ 'Account deleted!' => 'Konto slettet!',
+ 'Account does not exist!' => 'Konto eksisterer ikke!',
+ 'Account saved!' => 'Konto gemt!',
+ 'Accounting' => 'Bogføring',
+ 'Accounting Menu' => 'Konto-menu',
+ 'Accounts' => 'Konti',
+ 'Accrual' => 'Påløbet',
+ 'Activate Audit trail' => 'Aktivér revisionssporing',
+ 'Activate Audit trails' => 'Aktivér revisionssporing',
+ 'Active' => 'Aktiv',
+ 'Add' => 'Tilføj',
+ 'Add AP Transaction' => 'Ny kreditorpostering',
+ 'Add AR Transaction' => 'Ny debitorpostering',
+ 'Add Account' => 'Ny konto',
+ 'Add Assembly' => 'Ny sammensætning',
+ 'Add Business' => 'Ny forretning',
+ 'Add Cash Transfer Transaction' => 'Ny kontantoverførsel',
+ 'Add Customer' => 'Ny kunde',
+ 'Add Deduction' => 'Nyt fradrag',
+ 'Add Department' => 'Ny afdeling',
+ 'Add Employee' => 'Ny medarbejder',
+ 'Add Exchange Rate' => 'Ny vekselkurs',
+ 'Add GIFI' => 'Ny GIFI',
+ 'Add General Ledger Transaction' => 'Ny postering i hovedbog',
+ 'Add Group' => 'Ny gruppe',
+ 'Add Job' => '',
+ 'Add Labor/Overhead' => 'Nyt arbejde/overhead',
+ 'Add Language' => 'Nyt sprog',
+ 'Add POS Invoice' => 'Ny POS faktura',
+ 'Add Part' => 'Ny vare',
+ 'Add Pricegroup' => 'Ny prisgruppe',
+ 'Add Project' => 'Nyt projekt',
+ 'Add Purchase Order' => 'Ny indkøbsordre',
+ 'Add Quotation' => 'Nyt tilbud',
+ 'Add Request for Quotation' => 'Nyt tilbudsønske',
+ 'Add SIC' => 'Ny SIC',
+ 'Add Sales Invoice' => 'Ny salgsfaktura',
+ 'Add Sales Order' => 'Ny salgsordre',
+ 'Add Service' => 'Ny tjeneste',
+ 'Add Timecard' => '',
+ 'Add Transaction' => 'Ny postering',
+ 'Add User' => 'Ny bruger',
+ 'Add Vendor' => 'Ny leverandør',
+ 'Add Vendor Invoice' => 'Ny indkøbsfaktura',
+ 'Add Warehouse' => 'Nyt varehus',
+ 'Address' => 'Adresse',
+ 'Administration' => 'Administration',
+ 'Administrator' => 'Administrator',
+ 'After Deduction' => 'Efter fradrag',
+ 'All' => 'Alt',
+ 'All Accounts' => 'Alle konti',
+ 'All Datasets up to date!' => 'Alle datasæt opdaterede',
+ 'All Items' => 'Alle dele',
+ 'Allowances' => 'Fradrag',
+ 'Amount' => 'Beløb',
+ 'Amount Due' => 'Forfaldent',
+ 'Amount missing!' => 'Beløb mangler!',
+ 'Apr' => 'apr',
+ 'April' => 'april',
+ 'Are you sure you want to delete Invoice Number' => 'Er du sikker på du vil fjerne fakturanummer',
+ 'Are you sure you want to delete Order Number' => 'Er du sikker på at du vil fjerne ordrenummer',
+ 'Are you sure you want to delete Quotation Number' => 'Er du sikker på at du vil slette tilbudsnummer',
+ 'Are you sure you want to delete Timecard for' => '',
+ 'Are you sure you want to delete Transaction' => 'Er du sikker på du vil fjerne postering',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Er du sikker på at du vil fjerne de markerede poster fra køen?',
+ 'Assemblies' => 'Sammensætninger',
+ 'Assemblies restocked!' => 'Sammensætninger genlagret',
+ 'Assembly' => 'Sammensætning',
+ 'Assembly stocked!' => '',
+ 'Asset' => 'Aktiv',
+ 'Attachment' => 'Bilag',
+ 'Audit Control' => 'Revisionskontrol',
+ 'Audit trail disabled' => 'Revisionssporing deaktiveret',
+ 'Audit trail enabled' => 'Revisionssporing aktiveret',
+ 'Audit trail removed up to' => 'Revisionssporing fjernet indtil',
+ 'Audit trails disabled' => 'Revisionssporing deaktiveret',
+ 'Audit trails enabled' => 'Revisionssporing aktiveret',
+ 'Aug' => 'aug',
+ 'August' => 'august',
+ 'Average Cost' => '',
+ 'Avg Cost' => '',
+ 'BIC' => 'BIC',
+ 'BOM' => 'BOM',
+ 'Backup' => 'Sikkerheskopi',
+ 'Backup sent to' => 'Sikkerhedskopier sendt til',
+ 'Balance' => 'Balance',
+ 'Balance Sheet' => 'Status',
+ 'Based on' => 'Baseret på',
+ 'Bcc' => 'Blind kopi',
+ 'Before Deduction' => 'Før fradrag',
+ 'Beginning Balance' => 'Åbningsbalance',
+ 'Below' => 'Under',
+ 'Billing Address' => 'Fakturaadresse',
+ 'Bin' => 'Varelager',
+ 'Bin List' => 'Sendings-list',
+ 'Bin Lists' => 'Sendings-lister',
+ 'Books are open' => 'Bogføringen er åben for rettelser',
+ 'Break' => 'Bryd',
+ 'Business' => 'Forretning',
+ 'Business Number' => 'CVR-nummer',
+ 'Business deleted!' => 'Forretning slettet',
+ 'Business saved!' => 'Forretning gemt',
+ 'C' => 'C',
+ 'COGS' => 'Indkøb',
+ 'COGS account does not exist!' => '',
+ 'Cannot add timecard for a completed job!' => '',
+ 'Cannot change timecard for a completed job!' => '',
+ 'Cannot create Assembly' => '',
+ 'Cannot create Labor' => '',
+ 'Cannot create Lock!' => 'Cannot create Lock!',
+ 'Cannot create Part' => '',
+ 'Cannot create Service' => '',
+ 'Cannot delete Timecard!' => '',
+ 'Cannot delete account!' => 'Kan ikke slette konto!',
+ 'Cannot delete customer!' => 'Kan ikke slette kunde!',
+ 'Cannot delete default account!' => 'Kan ikke slette standardkonto!',
+ 'Cannot delete invoice!' => 'Kan ikke slette faktura!',
+ 'Cannot delete item!' => 'Kan ikke slette enhed!',
+ 'Cannot delete order!' => 'Kan ikke slette ordre!',
+ 'Cannot delete quotation!' => 'Kan ikke slette tilbud',
+ 'Cannot delete transaction!' => 'Kan ikke slette postering!',
+ 'Cannot delete vendor!' => 'Kan ikke slette leverandør!',
+ 'Cannot post Payment!' => 'Kan ikke postere udbetaling',
+ 'Cannot post Receipt!' => 'kan ikke postere indbetaling',
+ 'Cannot post invoice for a closed period!' => 'Kan ikke bogføre faktura for en afsluttet periode!',
+ 'Cannot post invoice!' => 'Kan ikke bogføre faktura!',
+ 'Cannot post payment for a closed period!' => 'Kan ikke bogføre betaling for en afsluttet periode',
+ 'Cannot post transaction for a closed period!' => 'Kan ikke bogføre postering for en afsluttet periode!',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => '',
+ 'Cannot post transaction!' => 'Kan ikke bogføre postering!',
+ 'Cannot remove files!' => 'Kan ikke fjerne filer!',
+ 'Cannot save account!' => 'Kan ikke gemme konto!',
+ 'Cannot save defaults!' => 'Kan ikke gemme standardopsætning',
+ 'Cannot save order!' => 'Kan ikke gemme ordre!',
+ 'Cannot save preferences!' => 'Kan ikke gemme præferencer!',
+ 'Cannot save quotation!' => 'Kan ikke gemme tilbud',
+ 'Cannot save timecard for a closed period!' => '',
+ 'Cannot save timecard!' => '',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Kan ikke sætte konto for mere end én af AR, AP eller IC',
+ 'Cannot set multiple options for' => 'Kan ikke sætte flere muligheder for',
+ 'Cannot set multiple options for Item' => '',
+ 'Cannot stock Assembly!' => '',
+ 'Cannot stock assemblies!' => 'Kan ikke genbesætte sammensætninger',
+ 'Cash' => 'Kontanter',
+ 'Cc' => 'Kopi',
+ 'Change' => 'Ændr',
+ 'Change Admin Password' => 'Ændr adgangskode for administrator',
+ 'Change Password' => 'Ændr adgangskode',
+ 'Charge' => '',
+ 'Chart of Accounts' => 'Kontoplan',
+ 'Check' => 'Check',
+ 'Check Inventory' => 'Kontrollér lager',
+ 'Checks' => 'Kontroller',
+ 'City' => 'By',
+ 'Cleared' => 'Udlignet',
+ 'Click on login name to edit!' => 'Klik på brugernavn for at redigere',
+ 'Clocked' => '',
+ 'Close Books up to' => 'Afslut bogføring op til',
+ 'Closed' => 'Afsluttet',
+ 'Code' => 'Kode',
+ 'Code missing!' => 'Kode mangler!',
+ 'Company' => 'Firma',
+ 'Company Name' => 'Firmanavn',
+ 'Compare to' => 'Sammenlign med',
+ 'Completed' => '',
+ 'Components' => 'Komponenter',
+ 'Confirm' => '',
+ 'Confirm!' => 'Bekræft!',
+ 'Connect to' => 'Forbind til',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Fortsæt',
+ 'Contra' => 'Kontra',
+ 'Copies' => 'Kopier',
+ 'Copy to COA' => 'Kopiér til COA',
+ 'Cost' => 'Udgifter',
+ 'Cost Center' => 'Kostcenter',
+ 'Could not save pricelist!' => 'Kunne ikke gemme prisliste!',
+ 'Could not save!' => 'Kunne ikke gemme!',
+ 'Could not transfer Inventory!' => 'Kunne ikke overføre lager!',
+ 'Country' => 'Land',
+ 'Create Chart of Accounts' => 'Opret kontoplan',
+ 'Create Dataset' => 'Opret datasæt',
+ 'Credit' => 'Kredit',
+ 'Credit Limit' => 'Kreditgrænse',
+ 'Curr' => 'Val',
+ 'Currency' => 'Valuta',
+ 'Current' => 'Aktuel',
+ 'Current Earnings' => 'Aktuelle indtægter',
+ 'Customer' => 'Kunde',
+ 'Customer History' => 'Kundehistorik',
+ 'Customer Number' => 'Kundenummer',
+ 'Customer deleted!' => 'Kunde slettet!',
+ 'Customer missing!' => 'Kunde mangler!',
+ 'Customer not on file!' => 'Kunde ikke i databasen!',
+ 'Customer saved!' => 'Kunde gemt!',
+ 'Customers' => 'Kunder',
+ 'DBI not installed!' => 'DBI ikke installeret',
+ 'DOB' => '',
+ 'Database' => 'Database',
+ 'Database Administration' => 'Administration af database',
+ 'Database Driver not checked!' => 'Databasedriver ikke kontrolleret',
+ 'Database Host' => 'Database-vært',
+ 'Database User missing!' => 'Bruger af database mangler!',
+ 'Dataset' => 'Datasæt',
+ 'Dataset is newer than version!' => 'Datasæt er nyere end version!',
+ 'Dataset missing!' => 'Datasæt mangler!',
+ 'Dataset updated!' => 'Datasæt opdateret!',
+ 'Date' => 'Dato',
+ 'Date Format' => 'Datoformat',
+ 'Date Paid' => 'Betalingsdato',
+ 'Date Received' => 'Modtagelsesdato',
+ 'Date missing!' => 'Dato mangler!',
+ 'Date received missing!' => 'Modtagelsesdato mangler!',
+ 'Date worked' => '',
+ 'Day' => '',
+ 'Day(s)' => '',
+ 'Days' => '',
+ 'Debit' => 'Debet',
+ 'Dec' => 'dec',
+ 'December' => 'december',
+ 'Decimalplaces' => 'Decimalpladser',
+ 'Decrease' => 'Formindsk',
+ 'Deduct after' => 'Fratræk efter',
+ 'Deduction deleted!' => 'Fradrag slettet!',
+ 'Deduction saved!' => 'Fradrag gemt!',
+ 'Deductions' => 'Fradrag',
+ 'Default Template' => '',
+ 'Defaults' => 'Standardopsætning',
+ 'Defaults saved!' => 'Standardopsætning gemt!',
+ 'Delete' => 'Fjern',
+ 'Delete Account' => 'Fjern konto',
+ 'Delete Dataset' => 'Fjern datasæt',
+ 'Delete Schedule' => '',
+ 'Deleting a language will also delete the templates for the language' => '',
+ 'Delivery Date' => 'Leveringsdato',
+ 'Department' => 'Afdeling',
+ 'Department deleted!' => 'Afdeling slettet!',
+ 'Department saved!' => 'Afdeling gemt!',
+ 'Departments' => 'Afdelinger',
+ 'Deposit' => 'Depositum',
+ 'Description' => 'Beskrivelse',
+ 'Description Translations' => 'Oversættelser af beskrivelse',
+ 'Description missing!' => 'Beskrivelse mangler!',
+ 'Detail' => 'Detalje',
+ 'Difference' => 'Difference',
+ 'Directory' => 'Katalog',
+ 'Discount' => 'Rabat',
+ 'Done' => 'Færdig',
+ 'Drawing' => 'Træk',
+ 'Driver' => 'Driver',
+ 'Dropdown Limit' => 'Grænse for nedtræk',
+ 'Due Date' => 'Forfaldsdato',
+ 'Due Date missing!' => 'Forfaldsdato mangler!',
+ 'E-mail' => 'E-post',
+ 'E-mail Statement to' => 'Send opgørelse til',
+ 'E-mail address missing!' => 'E-post-adresse mangler!',
+ 'E-mail message' => '',
+ 'E-mailed' => 'Sendt per e-post',
+ 'Edit' => 'Redigér',
+ 'Edit AP Transaction' => 'Redigér kreditorpostering',
+ 'Edit AR Transaction' => 'Redigér debitorpostering',
+ 'Edit Account' => 'Redigér konto',
+ 'Edit Assembly' => 'Redigér sammensætning',
+ 'Edit Business' => 'Redigér forretning',
+ 'Edit Cash Transfer Transaction' => 'Redigér kontantoverførsel',
+ 'Edit Customer' => 'Redigér kunde',
+ 'Edit Deduction' => 'Redigér fradrag',
+ 'Edit Department' => 'Redigér afdeling',
+ 'Edit Description Translations' => 'Redigér oversættelser af beskrivelser',
+ 'Edit Employee' => 'Redigér medarbejder',
+ 'Edit GIFI' => 'Redigér GIFI',
+ 'Edit General Ledger Transaction' => 'Redigér en postering i hovedbog',
+ 'Edit Group' => 'Redigér gruppe',
+ 'Edit Job' => '',
+ 'Edit Labor/Overhead' => 'Redigér arbejde/overhead',
+ 'Edit Language' => 'Redigér sprog',
+ 'Edit POS Invoice' => 'Redigér POS faktura',
+ 'Edit Part' => 'Redigér vare',
+ 'Edit Preferences for' => 'Redigér opsætning for',
+ 'Edit Pricegroup' => 'Redigér prisgruppe',
+ 'Edit Project' => 'Redigér præferencer for',
+ 'Edit Purchase Order' => 'Redigér indkøbsordre',
+ 'Edit Quotation' => 'Redigér tilbud',
+ 'Edit Request for Quotation' => 'Redigér ønske om tilbud',
+ 'Edit SIC' => 'Redigér SIC',
+ 'Edit Sales Invoice' => 'Redigér salgsfaktura',
+ 'Edit Sales Order' => 'Redigér salgsordre',
+ 'Edit Service' => 'Redigér tjeneste',
+ 'Edit Template' => 'Redigér skabelon',
+ 'Edit Timecard' => '',
+ 'Edit User' => 'Redigér bruger',
+ 'Edit Vendor' => 'Redigér leverandør',
+ 'Edit Vendor Invoice' => 'Redigér projekt',
+ 'Edit Warehouse' => 'Redigér varehus',
+ 'Employee' => 'Medarbejder',
+ 'Employee Name' => 'Navn for medarbejder',
+ 'Employee Number' => 'Medarbejdernummer',
+ 'Employee deleted!' => 'Medarbejder slettet!',
+ 'Employee pays' => 'Medarbejder betaler',
+ 'Employee saved!' => 'Medarbejder gemt!',
+ 'Employees' => 'Medarbejdere',
+ 'Employer' => 'Arbejdsgiver',
+ 'Employer pays' => 'Arbejdsgiver betaler',
+ 'Enddate' => 'Slutdato',
+ 'Ends' => '',
+ 'Enforce transaction reversal for all dates' => 'Gennemtving explicitte rettelser af posteringer for alle datoer',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Angiv op til 3 bogstaver adskilt med kolon (fx DKK:EUR:USD) for dine indenlandske og udenlandske valutaer',
+ 'Equity' => 'Egenkapital',
+ 'Every' => '',
+ 'Excempt age <' => '',
+ 'Exch' => 'Vxl',
+ 'Exchange Rate' => 'Vekselkurs',
+ 'Exchange rate for payment missing!' => 'Valutakurs for betaling mangler!',
+ 'Exchange rate missing!' => 'Vekselkurs mangler!',
+ 'Existing Datasets' => 'Eksisterende datasæt',
+ 'Expense' => 'Udgift',
+ 'Expense account does not exist!' => '',
+ 'Expense/Asset' => 'Udgift/Aktiv',
+ 'Extended' => 'Udvidet',
+ 'FX' => 'FX',
+ 'Failed to save order!' => '',
+ 'Fax' => 'Fax',
+ 'Feb' => 'feb',
+ 'February' => 'februar',
+ 'For' => '',
+ 'Foreign Exchange Gain' => 'Gevinst på valutahandel',
+ 'Foreign Exchange Loss' => 'Tab på valutahandel',
+ 'Friday' => '',
+ 'From' => 'Fra',
+ 'From Warehouse' => '',
+ 'GIFI' => 'GIFI',
+ 'GIFI deleted!' => 'GIFI slettet!',
+ 'GIFI missing!' => 'GIFI mangler!',
+ 'GIFI saved!' => 'GIFI gemt!',
+ 'GL' => '',
+ 'GL Reference Number' => '',
+ 'GL Transaction' => 'Postering i hovedbog',
+ 'General Ledger' => 'Hovedbog',
+ 'Generate' => '',
+ 'Generate Orders' => '',
+ 'Generate Purchase Orders' => '',
+ 'Generate Purchase Orders from Sales Order' => '',
+ 'Generate Sales Order' => '',
+ 'Generate Sales Order from Purchase Orders' => '',
+ 'Generate Sales Orders' => '',
+ 'Goods & Services' => 'Varer og tjenester',
+ 'Group' => 'Gruppe',
+ 'Group Items' => 'Gruppedele',
+ 'Group Translations' => 'Gruppeoversættelser',
+ 'Group deleted!' => 'Gruppe slettet!',
+ 'Group missing!' => 'Gruppe mangler!',
+ 'Group saved!' => 'Gruppe gemt!',
+ 'Groups' => 'Grupper',
+ 'HR' => 'HR',
+ 'HTML Templates' => 'HTML-skabeloner',
+ 'Heading' => 'Overskrift',
+ 'History' => 'Historik',
+ 'Home Phone' => 'Telefon privat',
+ 'Host' => 'Vært',
+ 'Hostname missing!' => 'Værtsnavn mangler',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Image' => 'Billede',
+ 'In-line' => 'Indlejret',
+ 'Inactive' => '',
+ 'Include Exchange Rate Difference' => 'Inkludér difference i vekselkurs',
+ 'Include Payment' => '',
+ 'Include in Report' => 'Inkludér i rapport',
+ 'Include in drop-down menus' => 'Inkludér i rullegardin-menuer',
+ 'Income' => 'Indtægt',
+ 'Income Statement' => 'Driftsregnskab',
+ 'Income account does not exist!' => '',
+ 'Incorrect Dataset version!' => 'Forkert version af datasæt!',
+ 'Increase' => 'Forøg',
+ 'Individual Items' => 'Individuelle enheder',
+ 'Internal Notes' => 'Interne noter',
+ 'Inventory' => 'Artikler',
+ 'Inventory account does not exist!' => '',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Lagerbeholdning skal være nul for at du kan forælde denne sammensætning',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Lagerbeholdning skal være nul for at du kan forælde denne enhed',
+ 'Inventory saved!' => 'Lager gemt!',
+ 'Inventory transferred!' => 'Lager overført!',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date' => 'Fakturadato',
+ 'Invoice Date missing!' => 'Fakturadato mangler!',
+ 'Invoice Number' => 'Fakturanummer',
+ 'Invoice Number missing!' => 'Fakturanummer mangler!',
+ 'Invoice deleted!' => 'Faktura slettet!',
+ 'Invoices' => 'Fakturaer',
+ 'Is this a summary account to record' => 'Samlekonto for',
+ 'Item already on pricelist!' => 'Enkeltdel allerede på prisliste!',
+ 'Item deleted!' => 'Enkeltdel slettet!',
+ 'Item not on file!' => 'Enkeltdel er ikke i databasen!',
+ 'Items' => 'Enkeltdele',
+ 'Jan' => 'jan',
+ 'January' => 'januar',
+ 'Job' => '',
+ 'Job Name' => '',
+ 'Job Number' => '',
+ 'Job Number missing!' => '',
+ 'Job deleted!' => '',
+ 'Job saved!' => '',
+ 'Jobs' => '',
+ 'Jul' => 'jul',
+ 'July' => 'juli',
+ 'Jun' => 'jun',
+ 'June' => 'juni',
+ 'LaTeX Templates' => 'LaTeX-skabeloner',
+ 'Labor Code' => '',
+ 'Labor/Overhead' => 'Arbejde/overhead',
+ 'Language' => 'Sprog',
+ 'Language deleted!' => 'Sprog slettet!',
+ 'Language saved!' => 'Sprog gemt!',
+ 'Languages' => 'Sprog',
+ 'Languages not defined!' => 'Sprog ikke definerede!',
+ 'Last Cost' => '',
+ 'Last Numbers & Default Accounts' => 'Løbenumre og standardkonti',
+ 'Lead' => '',
+ 'Leadtime' => 'forsinkelsestid',
+ 'Leave host and port field empty unless you want to make a remote connection.' => 'Lad felterne "vært" og "port" være tomme medmindre du vil etablere en ekstern forbindelse.',
+ 'Liability' => 'Passiv',
+ 'Licensed to' => 'Udført for',
+ 'Line Total' => 'Antal linjer',
+ 'Link' => 'Referencer',
+ 'Link Accounts' => 'Forbind konti',
+ 'List' => 'Vís',
+ 'List Accounts' => 'Vís konti',
+ 'List Businesses' => 'Vís forretninger',
+ 'List Departments' => 'Vís afdelinger',
+ 'List GIFI' => 'Vís GIFI',
+ 'List Languages' => 'Vís sprog',
+ 'List Price' => 'Listepris',
+ 'List Projects' => 'Vís projekter',
+ 'List SIC' => 'Vís SIC',
+ 'List Transactions' => 'Vís bogføringer',
+ 'List Warehouses' => 'Vís varehuse',
+ 'Lock System' => 'Lås system',
+ 'Lockfile created!' => 'Lockfile created!',
+ 'Lockfile removed!' => 'Lockfile removed!',
+ 'Login' => 'Log på',
+ 'Login name missing!' => 'Login name missing!',
+ 'Logout' => 'Log af',
+ 'Make' => 'Fabrikat',
+ 'Manager' => 'Leder',
+ 'Mar' => 'mar',
+ 'March' => 'marts',
+ 'Marked entries printed!' => 'Markerede poster udskrevet!',
+ 'Markup' => 'Markup',
+ 'Maximum' => 'Maksimum',
+ 'May' => 'maj',
+ 'May ' => 'maj ',
+ 'Memo' => 'Note',
+ 'Menu Width' => 'Menubredde',
+ 'Message' => 'Besked',
+ 'Method' => 'Metode',
+ 'Microfiche' => 'Mikrofilm',
+ 'Model' => 'Model',
+ 'Monday' => '',
+ 'Month' => 'Måned',
+ 'Month(s)' => '',
+ 'Months' => '',
+ 'Multibyte Encoding' => 'Multibyte Encoding',
+ 'N/A' => 'I/T',
+ 'Name' => 'Navn',
+ 'Name missing!' => 'Navn mangler!',
+ 'New Templates' => 'Nye skabeloner',
+ 'New Window' => '',
+ 'Next' => '',
+ 'Next Date' => '',
+ 'Next Number' => '',
+ 'No' => 'Nej',
+ 'No Database Drivers available!' => 'Ingen databasedrivere tilgængelige',
+ 'No Dataset selected!' => 'Intet datasæt valgt',
+ 'No Employees on file!' => '',
+ 'No Labor codes on file!' => '',
+ 'No email address for' => 'Ingen epostadresse for',
+ 'No open Jobs!' => '',
+ 'No open Projects!' => '',
+ 'No.' => 'Nummer',
+ 'Non-taxable' => 'Ikke-beskattet',
+ 'Non-taxable Purchases' => 'Ikke-beskattede køb',
+ 'Non-taxable Sales' => 'Ikke-beskattede salg',
+ 'Non-tracking Items' => '',
+ 'Notes' => 'Bemærkninger',
+ 'Nothing entered!' => 'Ingenting indtastet!',
+ 'Nothing selected!' => 'Ingenting valgt!',
+ 'Nothing to delete!' => 'Intet at slette!',
+ 'Nothing to print!' => 'Ingenting at udskrive!',
+ 'Nothing to transfer!' => 'Intet at overføre!',
+ 'Nov' => 'nov',
+ 'November' => 'november',
+ 'Number' => 'Nummer',
+ 'Number Format' => 'Numerisk format',
+ 'Number missing in Row' => 'Tal mangler i række',
+ 'O' => 'O',
+ 'OH' => '',
+ 'Obsolete' => 'Forældet',
+ 'Oct' => 'okt',
+ 'October' => 'oktober',
+ 'On Hand' => 'På lager',
+ 'Open' => 'Åbn',
+ 'Oracle Database Administration' => 'Oracle Administration af database',
+ 'Order' => 'Ordre',
+ 'Order Date' => 'Ordredato',
+ 'Order Date missing!' => 'Ordredato mangler',
+ 'Order Entry' => 'Ordreindgang',
+ 'Order Number' => 'Ordrenummer',
+ 'Order Number missing!' => 'Ordrenummer mangler',
+ 'Order deleted!' => 'Ordre slettet',
+ 'Order generation failed!' => '',
+ 'Order saved!' => 'Ordre gemt',
+ 'Orders generated!' => '',
+ 'Orphaned' => 'Fritstående',
+ 'Out of balance transaction!' => 'Ubalanceret overførsel',
+ 'Out of balance!' => 'Ikke i balance!',
+ 'Outstanding' => 'Udestående',
+ 'PDF' => 'PDF',
+ 'PO Number' => '',
+ 'POS' => 'POS',
+ 'POS Invoice' => 'POS faktura',
+ 'Packing List' => 'Følgeseddel',
+ 'Packing List Date missing!' => 'Dato for pakkeliste mangler!',
+ 'Packing List Number missing!' => 'Nummer for pakkeliste mangler!',
+ 'Packing Lists' => 'Følgesedler',
+ 'Paid' => 'Betalt',
+ 'Part' => 'Vare',
+ 'Part Number' => '',
+ 'Partnumber' => 'Varenummer',
+ 'Parts' => 'Dele',
+ 'Password' => 'Adgangskode',
+ 'Password changed!' => 'Adgangskode ændret',
+ 'Password does not match!' => '',
+ 'Passwords do not match!' => '',
+ 'Payables' => 'Udeståender',
+ 'Payment' => 'Betaling',
+ 'Payment date missing!' => 'Betalingsdato mangler!',
+ 'Payment posted!' => 'Betaling bogført!',
+ 'Payments' => 'Betalinger',
+ 'Payments posted!' => '',
+ 'Payroll Deduction' => 'Fradrag i løn',
+ 'Period' => 'Periode',
+ 'Pg Database Administration' => 'Pg Administration af database',
+ 'PgPP Database Administration' => 'PgPP Database Administration',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Pakkeliste',
+ 'Pick Lists' => 'Pakkelister',
+ 'Port' => 'Port',
+ 'Port missing!' => 'Port mangler',
+ 'Pos' => '',
+ 'Post' => 'Bogfør',
+ 'Post as new' => 'Bogfør som ny',
+ 'Posted!' => 'Bogført!',
+ 'Posting' => '',
+ 'Posting failed!' => '',
+ 'Postscript' => 'Postscript',
+ 'Preferences' => 'Præferencer',
+ 'Preferences saved!' => 'Indstillinger gemt!',
+ 'Prepayment' => 'Forudbetaling',
+ 'Price' => 'Pris',
+ 'Pricegroup' => 'Prisgruppe',
+ 'Pricegroup deleted!' => 'Prisgruppe slettet!',
+ 'Pricegroup missing!' => 'Prisgruppe mangler!',
+ 'Pricegroup saved!' => 'Prisgruppe gemt!',
+ 'Pricegroups' => 'Prisgrupper',
+ 'Pricelist' => 'Prisliste',
+ 'Print' => 'Udskriv',
+ 'Print and Post' => 'Udskriv og send',
+ 'Print and Post as new' => '',
+ 'Print and Save' => 'Udskriv og gem',
+ 'Print and Save as new' => '',
+ 'Print and post as new' => '',
+ 'Print and save as new' => '',
+ 'Printed' => 'Udskrevet',
+ 'Printer' => 'Printer',
+ 'Printing' => '',
+ 'Printing ... ' => 'Udskriver ... ',
+ 'Process Transactions' => '',
+ 'Production' => '',
+ 'Profit Center' => 'Profitcenter',
+ 'Project' => 'Projekt',
+ 'Project Description Translations' => 'Oversættelser af projektbeskrivelse',
+ 'Project Name' => '',
+ 'Project Number' => 'Projektnummer',
+ 'Project Number missing!' => 'Projektnummer mangler!',
+ 'Project Transactions' => 'Projektposteringer',
+ 'Project deleted!' => 'Projekt slettet!',
+ 'Project not on file!' => 'Projekt ikke i databasen!',
+ 'Project saved!' => 'Projekt gemt!',
+ 'Project/Job Name' => '',
+ 'Project/Job Number' => '',
+ 'Projects' => 'Projekter',
+ 'Purchase Order' => 'Indkøbsordre',
+ 'Purchase Order Number' => 'Nummer på indkøbsordre',
+ 'Purchase Orders' => 'Indkøbsordrer',
+ 'Qty' => 'Mængde',
+ 'Quantity exceeds available units to stock!' => 'Mængde overstiger tilgægeligt antal på lager!',
+ 'Quarter' => 'Kvartal',
+ 'Quotation' => 'Tilbud',
+ 'Quotation ' => 'Tilbud ',
+ 'Quotation Date' => 'Tilbudsdato',
+ 'Quotation Date missing!' => 'Tilbudsdato mangler!',
+ 'Quotation Number' => 'Tilbudsnummer',
+ 'Quotation Number missing!' => 'Tilbudsnummer mangler!',
+ 'Quotation deleted!' => 'Tilbud slettet!',
+ 'Quotations' => 'Tilbud',
+ 'R' => 'R',
+ 'RFQ' => 'Tilbudsønske',
+ 'RFQ ' => 'Tilbudsønske ',
+ 'RFQ Number' => 'Nummer for tilbudsønske',
+ 'RFQs' => 'Tilbudsønsker',
+ 'ROP' => 'Genbestil ved',
+ 'Rate' => 'Sats',
+ 'Rate missing!' => 'Sats mangler!',
+ 'Recd' => 'Modtaget',
+ 'Receipt' => 'Kvittering',
+ 'Receipt posted!' => 'Modtagelse posteret',
+ 'Receipts' => 'Kvitteringer',
+ 'Receivables' => 'Indbetalinger',
+ 'Receive' => 'Modtagelse',
+ 'Receive Merchandise' => 'Modtagelse af varer',
+ 'Reconciliation' => 'Afstemning',
+ 'Reconciliation Report' => 'Afstemningsrapport',
+ 'Record in' => 'Bogfør på',
+ 'Recurring Transaction' => '',
+ 'Recurring Transactions' => '',
+ 'Reference' => 'Reference',
+ 'Remaining' => 'Resterer',
+ 'Remove' => 'Fjern',
+ 'Remove Audit trail up to' => 'Fjern revisionssporing indtil',
+ 'Remove Audit trails up to' => 'Fjern revisionssporing indtil',
+ 'Removed spoolfiles!' => 'Fjernede køfiler!',
+ 'Removing marked entries from queue ...' => 'Fjerner markerede poster fra kø ...',
+ 'Repeat' => '',
+ 'Report for' => 'Rapport for',
+ 'Reports' => 'Rapporter',
+ 'Req' => '',
+ 'Request for Quotation' => 'Ønske om tilbud',
+ 'Request for Quotations' => 'Ønske om tilbud',
+ 'Required by' => 'Bestilt af',
+ 'Retained Earnings' => 'Realiseret overskud',
+ 'Role' => 'Rolle',
+ 'S' => 'S',
+ 'SIC' => 'SIC',
+ 'SIC deleted!' => 'SIC slettet!',
+ 'SIC saved!' => 'SIC gemt!',
+ 'SKU' => 'SKU',
+ 'SSN' => 'CIR',
+ 'Sale' => 'Salg',
+ 'Sales' => 'Salg',
+ 'Sales Invoice' => 'Salgsfaktura',
+ 'Sales Invoice ' => 'Salgsfaktura ',
+ 'Sales Invoice.' => 'Salgsfaktura.',
+ 'Sales Invoice/AR Transaction Number' => '',
+ 'Sales Invoices' => 'Salgsfakturaer',
+ 'Sales Order' => 'Salgsordre',
+ 'Sales Order Number' => 'Salgsordrenummer',
+ 'Sales Orders' => 'Salgsordrer',
+ 'Sales Quotation Number' => 'Salgstilbudsnummer',
+ 'Salesperson' => 'Sælger',
+ 'Saturday' => '',
+ 'Save' => 'Gem',
+ 'Save Pricelist' => 'Gem prisliste',
+ 'Save Schedule' => '',
+ 'Save as new' => 'Gem som ny',
+ 'Save to File' => 'Gem i fil',
+ 'Saving' => '',
+ 'Schedule' => '',
+ 'Scheduled' => '',
+ 'Screen' => 'Skærm',
+ 'Search' => 'Søg',
+ 'Select' => 'Vælg',
+ 'Select Customer' => '',
+ 'Select Vendor' => '',
+ 'Select a Printer!' => '',
+ 'Select a printer!' => '',
+ 'Select all' => 'Vælg alt',
+ 'Select from one of the items below' => 'Vælg fra en af tingene nedenfor, og tryk "Fortsæt"',
+ 'Select from one of the names below' => 'Vælg en af navnene nedenfor',
+ 'Select from one of the projects below' => 'Vælg et af projekterne nedenfor',
+ 'Select items' => '',
+ 'Select payment' => 'Vælg betaling',
+ 'Select postscript or PDF!' => 'Vælg postscript eller PDF',
+ 'Select txt, postscript or PDF!' => '',
+ 'Sell' => 'Sælg',
+ 'Sell Price' => 'Salgspris',
+ 'Send by E-Mail' => 'Sendt med epost',
+ 'Sending' => '',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Serial No.' => 'Serienummer',
+ 'Serial Number' => 'Serienummer',
+ 'Service' => 'Tjeneste',
+ 'Service Code' => '',
+ 'Service/Labor Code' => '',
+ 'Services' => 'Tjenester',
+ 'Session Timeout' => '',
+ 'Session expired!' => '',
+ 'Setup Templates' => 'Skabeloner for opsætning',
+ 'Ship' => 'Afsend',
+ 'Ship Merchandise' => 'Afsend varer',
+ 'Ship to' => 'Send til',
+ 'Ship via' => 'Send via',
+ 'Shipping' => 'Afsendelse',
+ 'Shipping Address' => 'Afsendelsesadresse',
+ 'Shipping Date' => 'Afsendelsesdato',
+ 'Shipping Date missing!' => 'Afsendelsesdato mangler!',
+ 'Shipping Point' => 'Afsendelsessted',
+ 'Short' => 'Kort',
+ 'Signature' => 'Underskrift',
+ 'Source' => 'Bilag',
+ 'Spoolfile' => 'køfil',
+ 'Standard' => 'Standard',
+ 'Standard Industrial Codes' => 'Standard industrikoder (SIC)',
+ 'Startdate' => 'Startdato',
+ 'State' => 'Stat',
+ 'State/Province' => 'Stat/provins',
+ 'Statement' => 'Opgørelse',
+ 'Statement Balance' => 'Balanceopgørelse',
+ 'Statement sent to' => 'Opgørelse sendt til',
+ 'Statements sent to printer!' => 'Opgørelser sendt til printer',
+ 'Stock' => 'Lager',
+ 'Stock Assembly' => 'Lagr sammensætning',
+ 'Stocking Date' => '',
+ 'Stylesheet' => 'Stilark',
+ 'Sub-contract GIFI' => 'Kode for underleverandør',
+ 'Subject' => 'Emne',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Oversigt',
+ 'Sunday' => '',
+ 'Supervisor' => '',
+ 'System' => 'System',
+ 'System Defaults' => 'Standardopsætning for system',
+ 'Tax' => 'Afgift/Moms',
+ 'Tax Accounts' => 'Afgift/Momskonti',
+ 'Tax Included' => 'Inkl. afgifter og moms',
+ 'Tax Number' => 'Skattenummer',
+ 'Tax Number / SSN' => 'Skattenumme/CIR',
+ 'Tax collected' => 'Skat opkrævet',
+ 'Tax paid' => 'Skat betalt',
+ 'Taxable' => 'Afgifts/momspligtig',
+ 'Template saved!' => 'Skabelon gemt!',
+ 'Templates' => 'Skabeloner',
+ 'Terms' => 'Netto',
+ 'Text' => '',
+ 'Text Templates' => 'Skabeloner for tekst',
+ 'The following Datasets are not in use and can be deleted' => 'De følgende datasæt er ikke i brug og kan slettes',
+ 'The following Datasets need to be updated' => 'De følgende datasæt skal opdateres',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Dette er en indledende kontrol af eksisterende kilder. Ingenting vil blive oprettet eller slettet på dette trin',
+ 'Thursday' => '',
+ 'Till' => 'Indtil',
+ 'Time In' => '',
+ 'Time Out' => '',
+ 'Timecard' => '',
+ 'Timecard deleted!' => '',
+ 'Timecard saved!' => '',
+ 'Timecards' => '',
+ 'Times' => '',
+ 'To' => 'til',
+ 'To Warehouse' => '',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Skift brugernavnet for en eksisterende bruger og gem for at tilføje en ny bruger til en gruppe. Den nye bruger vil så bive gemt med de samme indstillinger under det nye brugernavn.',
+ 'Top Level' => 'Topniveau',
+ 'Total' => 'I alt',
+ 'Tracking Items' => '',
+ 'Trade Discount' => 'Handelsrabat',
+ 'Transaction' => 'Postering',
+ 'Transaction Date missing!' => 'Posteringsdato mangler!',
+ 'Transaction Dates' => '',
+ 'Transaction deleted!' => 'Postering slettet!',
+ 'Transaction posted!' => 'Postering bogført!',
+ 'Transaction reversal enforced for all dates' => 'Rettelser af posteringer skal altid bogføres explicit',
+ 'Transaction reversal enforced up to' => 'Rettelser af posteringer skal bogføres explicit indtil',
+ 'Transactions' => 'Posteringer',
+ 'Transfer' => 'Overførsel',
+ 'Transfer Inventory' => 'Oversigt over overførsler',
+ 'Transfer from' => '',
+ 'Transfer to' => 'Overfør til',
+ 'Translation' => 'Oversættelse',
+ 'Translation deleted!' => 'Oversættelser slettet!',
+ 'Translation not on file!' => 'Oversættelse ikke tilgængelig',
+ 'Translations' => 'Oversættelser',
+ 'Translations saved!' => 'Oversættelser gemt!',
+ 'Trial Balance' => 'Foreløbig status',
+ 'Tuesday' => '',
+ 'Type of Business' => 'Type forretning',
+ 'Unit' => 'Enhed',
+ 'Unit of measure' => 'Måleenhed',
+ 'Unlock System' => 'Unlock System',
+ 'Update' => 'Opdatér',
+ 'Update Dataset' => 'Opdatér datasæt',
+ 'Updated' => 'Opdateret',
+ 'Upgrading to Version' => 'Opgraderer til version',
+ 'Use Templates' => 'Brug skabeloner',
+ 'User' => 'Bruger',
+ 'User deleted!' => 'Bruger slettet!',
+ 'User saved!' => 'Bruger gemt!',
+ 'Valid until' => 'Gældende indtil',
+ 'Vendor' => 'Leverandør',
+ 'Vendor History' => 'Leverandørhistorik',
+ 'Vendor Invoice' => 'Indkøbsfaktura',
+ 'Vendor Invoice ' => 'Indkøbsfaktura ',
+ 'Vendor Invoice.' => 'Indkøbsfaktura.',
+ 'Vendor Invoice/AP Transaction Number' => '',
+ 'Vendor Invoices' => 'Leverandørfakturaer',
+ 'Vendor Number' => 'Leverandørnummer',
+ 'Vendor deleted!' => 'Leverandør slettet!',
+ 'Vendor missing!' => 'Leverandør mangler!',
+ 'Vendor not on file!' => 'Leverandør ikke i databasen!',
+ 'Vendor saved!' => 'Leverandør gemt!',
+ 'Vendors' => 'Leverandører',
+ 'Version' => 'Version',
+ 'Warehouse' => 'Varehus',
+ 'Warehouse deleted!' => 'Varehus slettet!',
+ 'Warehouse saved!' => 'Varehus gemt!',
+ 'Warehouses' => 'Varehuse',
+ 'Warning!' => 'Advarsel!',
+ 'Wednesday' => '',
+ 'Week' => '',
+ 'Week(s)' => '',
+ 'Weeks' => '',
+ 'Weight' => 'Vægt',
+ 'Weight Unit' => 'Vægtenhed',
+ 'What type of item is this?' => 'Hvilken type ting er dette?',
+ 'Work Order' => 'Arbejdsnummer',
+ 'Work Orders' => 'Arbejdsordrer',
+ 'Work Phone' => 'Telefon arbejde',
+ 'Year' => 'År',
+ 'Year(s)' => '',
+ 'Yearend' => 'Årsslutning',
+ 'Yearend date missing!' => 'Dato for årsslutning mangler!',
+ 'Yearend posted!' => 'Årsslutning posteret!',
+ 'Yearend posting failed!' => 'Postering af årsslutning mislykkedes!',
+ 'Years' => '',
+ 'Yes' => 'Ja',
+ 'You are logged out' => '',
+ 'You are posting an existing transaction!' => '',
+ 'You are printing and posting an existing transaction!' => '',
+ 'You are printing and saving an existing order' => '',
+ 'You are printing and saving an existing quotation' => '',
+ 'You are printing and saving an existing transaction!' => '',
+ 'You are saving an existing order' => '',
+ 'You are saving an existing quotation' => '',
+ 'You are saving an existing transaction!' => '',
+ 'You did not enter a name!' => 'Du angav ikke et navn',
+ 'You must enter a host and port for local and remote connections!' => 'Du skal angive en vært og en port for lokale og eksterne forbindelser!',
+ 'Zip/Postal Code' => '',
+ 'account cannot be set to any other type of account' => 'konto kan ikke sættes til nogen anden type konto',
+ 'as at' => 'som ved',
+ 'days' => 'dage',
+ 'does not exist' => 'eksisterer ikke',
+ 'done' => 'færdig',
+ 'ea' => 'stk',
+ 'failed' => '',
+ 'for' => '',
+ 'for Period' => 'for perioden',
+ 'is already a member!' => 'er allerede et medlem',
+ 'localhost' => 'lokalt',
+ 'locked!' => 'låst',
+ 'partsgroup' => '',
+ 'posted!' => 'bogført!',
+ 'sent' => 'sendt',
+ 'successfully created!' => 'oprettet!',
+ 'successfully deleted!' => 'slettet!',
+ 'time(s)' => '',
+ 'unexpected error!' => '',
+ 'website' => 'på Internet',
+};
+
+1;
diff --git a/locale/dk/am b/locale/dk/am
new file mode 100755
index 00000000..5f396299
--- /dev/null
+++ b/locale/dk/am
@@ -0,0 +1,281 @@
+$self{texts} = {
+ 'AP' => 'Kreditorer',
+ 'AR' => 'Debitorer',
+ 'About' => 'Om',
+ 'Account' => 'Konto',
+ 'Account Number' => 'Kontonummer',
+ 'Account Number missing!' => 'Kontonummer mangler!',
+ 'Account Type' => 'Kontotype',
+ 'Account Type missing!' => 'Kontotype mangler!',
+ 'Account deleted!' => 'Konto slettet!',
+ 'Account does not exist!' => 'Konto eksisterer ikke!',
+ 'Account saved!' => 'Konto gemt!',
+ 'Accounting Menu' => 'Konto-menu',
+ 'Accrual' => 'Påløbet',
+ 'Activate Audit trail' => 'Aktivér revisionssporing',
+ 'Add Account' => 'Ny konto',
+ 'Add Business' => 'Ny forretning',
+ 'Add Department' => 'Ny afdeling',
+ 'Add GIFI' => 'Ny GIFI',
+ 'Add Language' => 'Nyt sprog',
+ 'Add SIC' => 'Ny SIC',
+ 'Add Warehouse' => 'Nyt varehus',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Beløb',
+ 'Asset' => 'Aktiv',
+ 'Audit Control' => 'Revisionskontrol',
+ 'Audit trail disabled' => 'Revisionssporing deaktiveret',
+ 'Audit trail enabled' => 'Revisionssporing aktiveret',
+ 'Audit trail removed up to' => 'Revisionssporing fjernet indtil',
+ 'Backup sent to' => 'Sikkerhedskopier sendt til',
+ 'Bin List' => 'Sendings-list',
+ 'Books are open' => 'Bogføringen er åben for rettelser',
+ 'Business Number' => 'CVR-nummer',
+ 'Business deleted!' => 'Forretning slettet',
+ 'Business saved!' => 'Forretning gemt',
+ 'COGS' => 'Indkøb',
+ 'Cannot delete account!' => 'Kan ikke slette konto!',
+ 'Cannot delete default account!' => 'Kan ikke slette standardkonto!',
+ 'Cannot save account!' => 'Kan ikke gemme konto!',
+ 'Cannot save defaults!' => 'Kan ikke gemme standardopsætning',
+ 'Cannot save preferences!' => 'Kan ikke gemme præferencer!',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Kan ikke sætte konto for mere end én af AR, AP eller IC',
+ 'Cannot set multiple options for' => 'Kan ikke sætte flere muligheder for',
+ 'Cash' => 'Kontanter',
+ 'Chart of Accounts' => 'Kontoplan',
+ 'Close Books up to' => 'Afslut bogføring op til',
+ 'Code' => 'Kode',
+ 'Code missing!' => 'Kode mangler!',
+ 'Company' => 'Firma',
+ 'Confirm!' => 'Bekræft!',
+ 'Continue' => 'Fortsæt',
+ 'Contra' => 'Kontra',
+ 'Copy to COA' => 'Kopiér til COA',
+ 'Cost Center' => 'Kostcenter',
+ 'Credit' => 'Kredit',
+ 'Customer Number' => 'Kundenummer',
+ 'Database Host' => 'Database-vært',
+ 'Dataset' => 'Datasæt',
+ 'Date Format' => 'Datoformat',
+ 'Debit' => 'Debet',
+ 'Defaults saved!' => 'Standardopsætning gemt!',
+ 'Delete' => 'Fjern',
+ 'Delete Account' => 'Fjern konto',
+ 'Department deleted!' => 'Afdeling slettet!',
+ 'Department saved!' => 'Afdeling gemt!',
+ 'Departments' => 'Afdelinger',
+ 'Description' => 'Beskrivelse',
+ 'Description missing!' => 'Beskrivelse mangler!',
+ 'Discount' => 'Rabat',
+ 'Dropdown Limit' => 'Grænse for nedtræk',
+ 'E-mail' => 'E-post',
+ 'E-mail address missing!' => 'E-post-adresse mangler!',
+ 'Edit' => 'Redigér',
+ 'Edit Account' => 'Redigér konto',
+ 'Edit Business' => 'Redigér forretning',
+ 'Edit Department' => 'Redigér afdeling',
+ 'Edit GIFI' => 'Redigér GIFI',
+ 'Edit Language' => 'Redigér sprog',
+ 'Edit Preferences for' => 'Redigér opsætning for',
+ 'Edit SIC' => 'Redigér SIC',
+ 'Edit Template' => 'Redigér skabelon',
+ 'Edit Warehouse' => 'Redigér varehus',
+ 'Employee Number' => 'Medarbejdernummer',
+ 'Enforce transaction reversal for all dates' => 'Gennemtving explicitte rettelser af posteringer for alle datoer',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Angiv op til 3 bogstaver adskilt med kolon (fx DKK:EUR:USD) for dine indenlandske og udenlandske valutaer',
+ 'Equity' => 'Egenkapital',
+ 'Expense' => 'Udgift',
+ 'Expense/Asset' => 'Udgift/Aktiv',
+ 'Fax' => 'Fax',
+ 'Foreign Exchange Gain' => 'Gevinst på valutahandel',
+ 'Foreign Exchange Loss' => 'Tab på valutahandel',
+ 'GIFI' => 'GIFI',
+ 'GIFI deleted!' => 'GIFI slettet!',
+ 'GIFI missing!' => 'GIFI mangler!',
+ 'GIFI saved!' => 'GIFI gemt!',
+ 'GL Transaction' => 'Postering i hovedbog',
+ 'Heading' => 'Overskrift',
+ 'ID' => 'ID',
+ 'Include in drop-down menus' => 'Inkludér i rullegardin-menuer',
+ 'Income' => 'Indtægt',
+ 'Inventory' => 'Artikler',
+ 'Invoice' => 'Faktura',
+ 'Is this a summary account to record' => 'Samlekonto for',
+ 'Language' => 'Sprog',
+ 'Language deleted!' => 'Sprog slettet!',
+ 'Language saved!' => 'Sprog gemt!',
+ 'Languages' => 'Sprog',
+ 'Last Numbers & Default Accounts' => 'Løbenumre og standardkonti',
+ 'Liability' => 'Passiv',
+ 'Licensed to' => 'Udført for',
+ 'Link' => 'Referencer',
+ 'Menu Width' => 'Menubredde',
+ 'Method' => 'Metode',
+ 'Month' => 'Måned',
+ 'Name' => 'Navn',
+ 'No' => 'Nej',
+ 'No email address for' => 'Ingen epostadresse for',
+ 'Number' => 'Nummer',
+ 'Number Format' => 'Numerisk format',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Følgeseddel',
+ 'Password' => 'Adgangskode',
+ 'Payables' => 'Udeståender',
+ 'Payment' => 'Betaling',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Pakkeliste',
+ 'Postscript' => 'Postscript',
+ 'Preferences saved!' => 'Indstillinger gemt!',
+ 'Print' => 'Udskriv',
+ 'Printer' => 'Printer',
+ 'Profit Center' => 'Profitcenter',
+ 'Purchase Order' => 'Indkøbsordre',
+ 'Purchase Order Number' => 'Nummer på indkøbsordre',
+ 'Purchase Orders' => 'Indkøbsordrer',
+ 'RFQ Number' => 'Nummer for tilbudsønske',
+ 'Rate' => 'Sats',
+ 'Receivables' => 'Indbetalinger',
+ 'Reference' => 'Reference',
+ 'Remove Audit trail up to' => 'Fjern revisionssporing indtil',
+ 'Retained Earnings' => 'Realiseret overskud',
+ 'SIC deleted!' => 'SIC slettet!',
+ 'SIC saved!' => 'SIC gemt!',
+ 'Sales Invoice' => 'Salgsfaktura',
+ 'Sales Order' => 'Salgsordre',
+ 'Sales Order Number' => 'Salgsordrenummer',
+ 'Sales Orders' => 'Salgsordrer',
+ 'Sales Quotation Number' => 'Salgstilbudsnummer',
+ 'Save' => 'Gem',
+ 'Save as new' => 'Gem som ny',
+ 'Signature' => 'Underskrift',
+ 'Standard Industrial Codes' => 'Standard industrikoder (SIC)',
+ 'Stylesheet' => 'Stilark',
+ 'System Defaults' => 'Standardopsætning for system',
+ 'Tax' => 'Afgift/Moms',
+ 'Template saved!' => 'Skabelon gemt!',
+ 'Transaction' => 'Postering',
+ 'Transaction reversal enforced for all dates' => 'Rettelser af posteringer skal altid bogføres explicit',
+ 'Transaction reversal enforced up to' => 'Rettelser af posteringer skal bogføres explicit indtil',
+ 'Type of Business' => 'Type forretning',
+ 'Update' => 'Opdatér',
+ 'User' => 'Bruger',
+ 'Vendor Invoice' => 'Indkøbsfaktura',
+ 'Vendor Number' => 'Leverandørnummer',
+ 'Version' => 'Version',
+ 'Warehouse deleted!' => 'Varehus slettet!',
+ 'Warehouse saved!' => 'Varehus gemt!',
+ 'Warehouses' => 'Varehuse',
+ 'Weight Unit' => 'Vægtenhed',
+ 'Work Order' => 'Arbejdsnummer',
+ 'Year' => 'År',
+ 'Yearend' => 'Årsslutning',
+ 'Yearend date missing!' => 'Dato for årsslutning mangler!',
+ 'Yearend posted!' => 'Årsslutning posteret!',
+ 'Yearend posting failed!' => 'Postering af årsslutning mislykkedes!',
+ 'Yes' => 'Ja',
+ 'account cannot be set to any other type of account' => 'konto kan ikke sættes til nogen anden type konto',
+ 'done' => 'færdig',
+ 'localhost' => 'lokalt',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'ny_konto' => 'add_account',
+ 'ny_forretning' => 'add_business',
+ 'ny_afdeling' => 'add_department',
+ 'nyt_sprog' => 'add_language',
+ 'ny_sic' => 'add_sic',
+ 'nyt_varehus' => 'add_warehouse',
+ 'fortsæt' => 'continue',
+ 'kopiér_til_coa' => 'copy_to_coa',
+ 'fjern' => 'delete',
+ 'redigér' => 'edit',
+ 'redigér_konto' => 'edit_account',
+ 'gem' => 'save',
+ 'gem_som_ny' => 'save_as_new',
+ 'opdatér' => 'update',
+};
+
+1;
+
diff --git a/locale/dk/ap b/locale/dk/ap
new file mode 100755
index 00000000..44479388
--- /dev/null
+++ b/locale/dk/ap
@@ -0,0 +1,210 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Udestående kreditorer',
+ 'AP Transaction' => 'Leverandørfaktura',
+ 'AP Transactions' => 'Leverandørfakturaer',
+ 'AR Outstanding' => 'Udestående debitorer',
+ 'AR Transaction' => 'Debitorpostering',
+ 'AR Transactions' => 'Debitorposteringer',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Konto-menu',
+ 'Add AP Transaction' => 'Ny kreditorpostering',
+ 'Add AR Transaction' => 'Ny debitorpostering',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Beløb',
+ 'Amount Due' => 'Forfaldent',
+ 'Apr' => 'apr',
+ 'April' => 'april',
+ 'Are you sure you want to delete Transaction' => 'Er du sikker på du vil fjerne postering',
+ 'Aug' => 'aug',
+ 'August' => 'august',
+ 'Bcc' => 'Blind kopi',
+ 'Cannot delete transaction!' => 'Kan ikke slette postering!',
+ 'Cannot post payment for a closed period!' => 'Kan ikke bogføre betaling for en afsluttet periode',
+ 'Cannot post transaction for a closed period!' => 'Kan ikke bogføre postering for en afsluttet periode!',
+ 'Cannot post transaction!' => 'Kan ikke bogføre postering!',
+ 'Cc' => 'Kopi',
+ 'Check' => 'Check',
+ 'Closed' => 'Afsluttet',
+ 'Confirm!' => 'Bekræft!',
+ 'Continue' => 'Fortsæt',
+ 'Credit' => 'Kredit',
+ 'Credit Limit' => 'Kreditgrænse',
+ 'Curr' => 'Val',
+ 'Currency' => 'Valuta',
+ 'Current' => 'Aktuel',
+ 'Customer' => 'Kunde',
+ 'Customer missing!' => 'Kunde mangler!',
+ 'Customer not on file!' => 'Kunde ikke i databasen!',
+ 'Date' => 'Dato',
+ 'Date Paid' => 'Betalingsdato',
+ 'Debit' => 'Debet',
+ 'Dec' => 'dec',
+ 'December' => 'december',
+ 'Delete' => 'Fjern',
+ 'Department' => 'Afdeling',
+ 'Description' => 'Beskrivelse',
+ 'Detail' => 'Detalje',
+ 'Due Date' => 'Forfaldsdato',
+ 'Due Date missing!' => 'Forfaldsdato mangler!',
+ 'E-mail' => 'E-post',
+ 'Edit AP Transaction' => 'Redigér kreditorpostering',
+ 'Edit AR Transaction' => 'Redigér debitorpostering',
+ 'Employee' => 'Medarbejder',
+ 'Exch' => 'Vxl',
+ 'Exchange Rate' => 'Vekselkurs',
+ 'Exchange rate for payment missing!' => 'Valutakurs for betaling mangler!',
+ 'Exchange rate missing!' => 'Vekselkurs mangler!',
+ 'Feb' => 'feb',
+ 'February' => 'februar',
+ 'From' => 'Fra',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Inkludér i rapport',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date' => 'Fakturadato',
+ 'Invoice Date missing!' => 'Fakturadato mangler!',
+ 'Invoice Number' => 'Fakturanummer',
+ 'Jan' => 'jan',
+ 'January' => 'januar',
+ 'Jul' => 'jul',
+ 'July' => 'juli',
+ 'Jun' => 'jun',
+ 'June' => 'juni',
+ 'Manager' => 'Leder',
+ 'Mar' => 'mar',
+ 'March' => 'marts',
+ 'May' => 'maj',
+ 'May ' => 'maj ',
+ 'Memo' => 'Note',
+ 'Message' => 'Besked',
+ 'Month' => 'Måned',
+ 'No.' => 'Nummer',
+ 'Notes' => 'Bemærkninger',
+ 'Nothing to print!' => 'Ingenting at udskrive!',
+ 'Nov' => 'nov',
+ 'November' => 'november',
+ 'Number' => 'Nummer',
+ 'Oct' => 'okt',
+ 'October' => 'oktober',
+ 'Open' => 'Åbn',
+ 'Order' => 'Ordre',
+ 'Order Number' => 'Ordrenummer',
+ 'PDF' => 'PDF',
+ 'Paid' => 'Betalt',
+ 'Payment date missing!' => 'Betalingsdato mangler!',
+ 'Payments' => 'Betalinger',
+ 'Period' => 'Periode',
+ 'Post' => 'Bogfør',
+ 'Post as new' => 'Bogfør som ny',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Udskriv',
+ 'Print and Post' => 'Udskriv og send',
+ 'Printed' => 'Udskrevet',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Projekt ikke i databasen!',
+ 'Quarter' => 'Kvartal',
+ 'Receipt' => 'Kvittering',
+ 'Reference' => 'Reference',
+ 'Remaining' => 'Resterer',
+ 'Sales Invoice.' => 'Salgsfaktura.',
+ 'Salesperson' => 'Sælger',
+ 'Screen' => 'Skærm',
+ 'Select from one of the names below' => 'Vælg en af navnene nedenfor',
+ 'Select from one of the projects below' => 'Vælg et af projekterne nedenfor',
+ 'Select payment' => 'Vælg betaling',
+ 'Select postscript or PDF!' => 'Vælg postscript eller PDF',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Ship to' => 'Send til',
+ 'Ship via' => 'Send via',
+ 'Shipping Point' => 'Afsendelsessted',
+ 'Source' => 'Bilag',
+ 'Startdate' => 'Startdato',
+ 'Subject' => 'Emne',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Oversigt',
+ 'Tax' => 'Afgift/Moms',
+ 'Tax Included' => 'Inkl. afgifter og moms',
+ 'Till' => 'Indtil',
+ 'To' => 'til',
+ 'Total' => 'I alt',
+ 'Transaction' => 'Postering',
+ 'Transaction deleted!' => 'Postering slettet!',
+ 'Transaction posted!' => 'Postering bogført!',
+ 'Update' => 'Opdatér',
+ 'Vendor' => 'Leverandør',
+ 'Vendor Invoice.' => 'Indkøbsfaktura.',
+ 'Vendor missing!' => 'Leverandør mangler!',
+ 'Vendor not on file!' => 'Leverandør ikke i databasen!',
+ 'Warning!' => 'Advarsel!',
+ 'Year' => 'År',
+ 'Yes' => 'Ja',
+ 'sent' => 'sendt',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'leverandørfaktura' => 'ap_transaction',
+ 'debitorpostering' => 'ar_transaction',
+ 'fortsæt' => 'continue',
+ 'fjern' => 'delete',
+ 'bogfør' => 'post',
+ 'bogfør_som_ny' => 'post_as_new',
+ 'udskriv' => 'print',
+ 'udskriv_og_send' => 'print_and_post',
+ 'salgsfaktura_' => 'sales_invoice_',
+ 'send_til' => 'ship_to',
+ 'opdatér' => 'update',
+ 'indkøbsfaktura_' => 'vendor_invoice_',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/dk/ar b/locale/dk/ar
new file mode 100755
index 00000000..44479388
--- /dev/null
+++ b/locale/dk/ar
@@ -0,0 +1,210 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Udestående kreditorer',
+ 'AP Transaction' => 'Leverandørfaktura',
+ 'AP Transactions' => 'Leverandørfakturaer',
+ 'AR Outstanding' => 'Udestående debitorer',
+ 'AR Transaction' => 'Debitorpostering',
+ 'AR Transactions' => 'Debitorposteringer',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Konto-menu',
+ 'Add AP Transaction' => 'Ny kreditorpostering',
+ 'Add AR Transaction' => 'Ny debitorpostering',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Beløb',
+ 'Amount Due' => 'Forfaldent',
+ 'Apr' => 'apr',
+ 'April' => 'april',
+ 'Are you sure you want to delete Transaction' => 'Er du sikker på du vil fjerne postering',
+ 'Aug' => 'aug',
+ 'August' => 'august',
+ 'Bcc' => 'Blind kopi',
+ 'Cannot delete transaction!' => 'Kan ikke slette postering!',
+ 'Cannot post payment for a closed period!' => 'Kan ikke bogføre betaling for en afsluttet periode',
+ 'Cannot post transaction for a closed period!' => 'Kan ikke bogføre postering for en afsluttet periode!',
+ 'Cannot post transaction!' => 'Kan ikke bogføre postering!',
+ 'Cc' => 'Kopi',
+ 'Check' => 'Check',
+ 'Closed' => 'Afsluttet',
+ 'Confirm!' => 'Bekræft!',
+ 'Continue' => 'Fortsæt',
+ 'Credit' => 'Kredit',
+ 'Credit Limit' => 'Kreditgrænse',
+ 'Curr' => 'Val',
+ 'Currency' => 'Valuta',
+ 'Current' => 'Aktuel',
+ 'Customer' => 'Kunde',
+ 'Customer missing!' => 'Kunde mangler!',
+ 'Customer not on file!' => 'Kunde ikke i databasen!',
+ 'Date' => 'Dato',
+ 'Date Paid' => 'Betalingsdato',
+ 'Debit' => 'Debet',
+ 'Dec' => 'dec',
+ 'December' => 'december',
+ 'Delete' => 'Fjern',
+ 'Department' => 'Afdeling',
+ 'Description' => 'Beskrivelse',
+ 'Detail' => 'Detalje',
+ 'Due Date' => 'Forfaldsdato',
+ 'Due Date missing!' => 'Forfaldsdato mangler!',
+ 'E-mail' => 'E-post',
+ 'Edit AP Transaction' => 'Redigér kreditorpostering',
+ 'Edit AR Transaction' => 'Redigér debitorpostering',
+ 'Employee' => 'Medarbejder',
+ 'Exch' => 'Vxl',
+ 'Exchange Rate' => 'Vekselkurs',
+ 'Exchange rate for payment missing!' => 'Valutakurs for betaling mangler!',
+ 'Exchange rate missing!' => 'Vekselkurs mangler!',
+ 'Feb' => 'feb',
+ 'February' => 'februar',
+ 'From' => 'Fra',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Inkludér i rapport',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date' => 'Fakturadato',
+ 'Invoice Date missing!' => 'Fakturadato mangler!',
+ 'Invoice Number' => 'Fakturanummer',
+ 'Jan' => 'jan',
+ 'January' => 'januar',
+ 'Jul' => 'jul',
+ 'July' => 'juli',
+ 'Jun' => 'jun',
+ 'June' => 'juni',
+ 'Manager' => 'Leder',
+ 'Mar' => 'mar',
+ 'March' => 'marts',
+ 'May' => 'maj',
+ 'May ' => 'maj ',
+ 'Memo' => 'Note',
+ 'Message' => 'Besked',
+ 'Month' => 'Måned',
+ 'No.' => 'Nummer',
+ 'Notes' => 'Bemærkninger',
+ 'Nothing to print!' => 'Ingenting at udskrive!',
+ 'Nov' => 'nov',
+ 'November' => 'november',
+ 'Number' => 'Nummer',
+ 'Oct' => 'okt',
+ 'October' => 'oktober',
+ 'Open' => 'Åbn',
+ 'Order' => 'Ordre',
+ 'Order Number' => 'Ordrenummer',
+ 'PDF' => 'PDF',
+ 'Paid' => 'Betalt',
+ 'Payment date missing!' => 'Betalingsdato mangler!',
+ 'Payments' => 'Betalinger',
+ 'Period' => 'Periode',
+ 'Post' => 'Bogfør',
+ 'Post as new' => 'Bogfør som ny',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Udskriv',
+ 'Print and Post' => 'Udskriv og send',
+ 'Printed' => 'Udskrevet',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Projekt ikke i databasen!',
+ 'Quarter' => 'Kvartal',
+ 'Receipt' => 'Kvittering',
+ 'Reference' => 'Reference',
+ 'Remaining' => 'Resterer',
+ 'Sales Invoice.' => 'Salgsfaktura.',
+ 'Salesperson' => 'Sælger',
+ 'Screen' => 'Skærm',
+ 'Select from one of the names below' => 'Vælg en af navnene nedenfor',
+ 'Select from one of the projects below' => 'Vælg et af projekterne nedenfor',
+ 'Select payment' => 'Vælg betaling',
+ 'Select postscript or PDF!' => 'Vælg postscript eller PDF',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Ship to' => 'Send til',
+ 'Ship via' => 'Send via',
+ 'Shipping Point' => 'Afsendelsessted',
+ 'Source' => 'Bilag',
+ 'Startdate' => 'Startdato',
+ 'Subject' => 'Emne',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Oversigt',
+ 'Tax' => 'Afgift/Moms',
+ 'Tax Included' => 'Inkl. afgifter og moms',
+ 'Till' => 'Indtil',
+ 'To' => 'til',
+ 'Total' => 'I alt',
+ 'Transaction' => 'Postering',
+ 'Transaction deleted!' => 'Postering slettet!',
+ 'Transaction posted!' => 'Postering bogført!',
+ 'Update' => 'Opdatér',
+ 'Vendor' => 'Leverandør',
+ 'Vendor Invoice.' => 'Indkøbsfaktura.',
+ 'Vendor missing!' => 'Leverandør mangler!',
+ 'Vendor not on file!' => 'Leverandør ikke i databasen!',
+ 'Warning!' => 'Advarsel!',
+ 'Year' => 'År',
+ 'Yes' => 'Ja',
+ 'sent' => 'sendt',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'leverandørfaktura' => 'ap_transaction',
+ 'debitorpostering' => 'ar_transaction',
+ 'fortsæt' => 'continue',
+ 'fjern' => 'delete',
+ 'bogfør' => 'post',
+ 'bogfør_som_ny' => 'post_as_new',
+ 'udskriv' => 'print',
+ 'udskriv_og_send' => 'print_and_post',
+ 'salgsfaktura_' => 'sales_invoice_',
+ 'send_til' => 'ship_to',
+ 'opdatér' => 'update',
+ 'indkøbsfaktura_' => 'vendor_invoice_',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/dk/arap b/locale/dk/arap
new file mode 100755
index 00000000..5a20c38a
--- /dev/null
+++ b/locale/dk/arap
@@ -0,0 +1,51 @@
+$self{texts} = {
+ 'Address' => 'Adresse',
+ 'Bcc' => 'Blind kopi',
+ 'Cc' => 'Kopi',
+ 'Continue' => 'Fortsæt',
+ 'Customer not on file!' => 'Kunde ikke i databasen!',
+ 'Date' => 'Dato',
+ 'Description' => 'Beskrivelse',
+ 'E-mail' => 'E-post',
+ 'Message' => 'Besked',
+ 'Number' => 'Nummer',
+ 'Print' => 'Udskriv',
+ 'Project not on file!' => 'Projekt ikke i databasen!',
+ 'Reference' => 'Reference',
+ 'Select from one of the names below' => 'Vælg en af navnene nedenfor',
+ 'Select from one of the projects below' => 'Vælg et af projekterne nedenfor',
+ 'Startdate' => 'Startdato',
+ 'Subject' => 'Emne',
+ 'To' => 'til',
+ 'Vendor not on file!' => 'Leverandør ikke i databasen!',
+ 'Warning!' => 'Advarsel!',
+ 'sent' => 'sendt',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'fortsæt' => 'continue',
+};
+
+1;
+
diff --git a/locale/dk/arapprn b/locale/dk/arapprn
new file mode 100755
index 00000000..d20d4b79
--- /dev/null
+++ b/locale/dk/arapprn
@@ -0,0 +1,32 @@
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Amount' => 'Beløb',
+ 'Continue' => 'Fortsæt',
+ 'Date' => 'Dato',
+ 'Memo' => 'Note',
+ 'Nothing to print!' => 'Ingenting at udskrive!',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'Postscript',
+ 'Printed' => 'Udskrevet',
+ 'Screen' => 'Skærm',
+ 'Select payment' => 'Vælg betaling',
+ 'Select postscript or PDF!' => 'Vælg postscript eller PDF',
+ 'Source' => 'Bilag',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'fortsæt' => 'continue',
+};
+
+1;
+
diff --git a/locale/dk/bp b/locale/dk/bp
new file mode 100755
index 00000000..e1f3f9c7
--- /dev/null
+++ b/locale/dk/bp
@@ -0,0 +1,67 @@
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Konto-menu',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Er du sikker på at du vil fjerne de markerede poster fra køen?',
+ 'Bin Lists' => 'Sendings-lister',
+ 'Cannot remove files!' => 'Kan ikke fjerne filer!',
+ 'Confirm!' => 'Bekræft!',
+ 'Continue' => 'Fortsæt',
+ 'Current' => 'Aktuel',
+ 'Customer' => 'Kunde',
+ 'Date' => 'Dato',
+ 'Employee' => 'Medarbejder',
+ 'From' => 'Fra',
+ 'ID' => 'ID',
+ 'Invoice' => 'Faktura',
+ 'Invoice Number' => 'Fakturanummer',
+ 'Marked entries printed!' => 'Markerede poster udskrevet!',
+ 'Month' => 'Måned',
+ 'Order' => 'Ordre',
+ 'Order Number' => 'Ordrenummer',
+ 'Packing Lists' => 'Følgesedler',
+ 'Period' => 'Periode',
+ 'Pick Lists' => 'Pakkelister',
+ 'Print' => 'Udskriv',
+ 'Purchase Orders' => 'Indkøbsordrer',
+ 'Quarter' => 'Kvartal',
+ 'Quotation' => 'Tilbud',
+ 'Quotation Number' => 'Tilbudsnummer',
+ 'Quotations' => 'Tilbud',
+ 'RFQs' => 'Tilbudsønsker',
+ 'Remove' => 'Fjern',
+ 'Removed spoolfiles!' => 'Fjernede køfiler!',
+ 'Removing marked entries from queue ...' => 'Fjerner markerede poster fra kø ...',
+ 'Sales Invoices' => 'Salgsfakturaer',
+ 'Sales Orders' => 'Salgsordrer',
+ 'Select all' => 'Vælg alt',
+ 'Spoolfile' => 'køfil',
+ 'To' => 'til',
+ 'Vendor' => 'Leverandør',
+ 'Work Orders' => 'Arbejdsordrer',
+ 'Year' => 'År',
+ 'Yes' => 'Ja',
+ 'done' => 'færdig',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'fortsæt' => 'continue',
+ 'udskriv' => 'print',
+ 'fjern' => 'remove',
+ 'vælg_alt' => 'select_all',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/dk/ca b/locale/dk/ca
new file mode 100755
index 00000000..24e9d5d1
--- /dev/null
+++ b/locale/dk/ca
@@ -0,0 +1,59 @@
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Apr' => 'apr',
+ 'April' => 'april',
+ 'Aug' => 'aug',
+ 'August' => 'august',
+ 'Balance' => 'Balance',
+ 'Chart of Accounts' => 'Kontoplan',
+ 'Credit' => 'Kredit',
+ 'Current' => 'Aktuel',
+ 'Date' => 'Dato',
+ 'Debit' => 'Debet',
+ 'Dec' => 'dec',
+ 'December' => 'december',
+ 'Department' => 'Afdeling',
+ 'Description' => 'Beskrivelse',
+ 'Feb' => 'feb',
+ 'February' => 'februar',
+ 'From' => 'Fra',
+ 'GIFI' => 'GIFI',
+ 'Include in Report' => 'Inkludér i rapport',
+ 'Jan' => 'jan',
+ 'January' => 'januar',
+ 'Jul' => 'jul',
+ 'July' => 'juli',
+ 'Jun' => 'jun',
+ 'June' => 'juni',
+ 'List Transactions' => 'Vís bogføringer',
+ 'Mar' => 'mar',
+ 'March' => 'marts',
+ 'May' => 'maj',
+ 'May ' => 'maj ',
+ 'Month' => 'Måned',
+ 'Nov' => 'nov',
+ 'November' => 'november',
+ 'Oct' => 'okt',
+ 'October' => 'oktober',
+ 'Period' => 'Periode',
+ 'Project Number' => 'Projektnummer',
+ 'Quarter' => 'Kvartal',
+ 'R' => 'R',
+ 'Reference' => 'Reference',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'til',
+ 'Year' => 'År',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'vís_bogføringer' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/dk/cp b/locale/dk/cp
new file mode 100755
index 00000000..1d9941cf
--- /dev/null
+++ b/locale/dk/cp
@@ -0,0 +1,123 @@
+$self{texts} = {
+ 'AP' => 'Kreditorer',
+ 'AR' => 'Debitorer',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Konto-menu',
+ 'Address' => 'Adresse',
+ 'All' => 'Alt',
+ 'Amount' => 'Beløb',
+ 'Amount Due' => 'Forfaldent',
+ 'Bcc' => 'Blind kopi',
+ 'Cannot post Payment!' => 'Kan ikke postere udbetaling',
+ 'Cannot post Receipt!' => 'kan ikke postere indbetaling',
+ 'Cannot post payment for a closed period!' => 'Kan ikke bogføre betaling for en afsluttet periode',
+ 'Cc' => 'Kopi',
+ 'Continue' => 'Fortsæt',
+ 'Currency' => 'Valuta',
+ 'Customer' => 'Kunde',
+ 'Customer not on file!' => 'Kunde ikke i databasen!',
+ 'Date' => 'Dato',
+ 'Date missing!' => 'Dato mangler!',
+ 'Department' => 'Afdeling',
+ 'Deposit' => 'Depositum',
+ 'Description' => 'Beskrivelse',
+ 'Due Date' => 'Forfaldsdato',
+ 'E-mail' => 'E-post',
+ 'Exchange Rate' => 'Vekselkurs',
+ 'Exchange rate missing!' => 'Vekselkurs mangler!',
+ 'From' => 'Fra',
+ 'Invoice' => 'Faktura',
+ 'Invoices' => 'Fakturaer',
+ 'Language' => 'Sprog',
+ 'Memo' => 'Note',
+ 'Message' => 'Besked',
+ 'Number' => 'Nummer',
+ 'PDF' => 'PDF',
+ 'Payment' => 'Betaling',
+ 'Payment posted!' => 'Betaling bogført!',
+ 'Payments' => 'Betalinger',
+ 'Post' => 'Bogfør',
+ 'Postscript' => 'Postscript',
+ 'Prepayment' => 'Forudbetaling',
+ 'Print' => 'Udskriv',
+ 'Project not on file!' => 'Projekt ikke i databasen!',
+ 'Receipt' => 'Kvittering',
+ 'Receipt posted!' => 'Modtagelse posteret',
+ 'Receipts' => 'Kvitteringer',
+ 'Reference' => 'Reference',
+ 'Screen' => 'Skærm',
+ 'Select' => 'Vælg',
+ 'Select all' => 'Vælg alt',
+ 'Select from one of the names below' => 'Vælg en af navnene nedenfor',
+ 'Select from one of the projects below' => 'Vælg et af projekterne nedenfor',
+ 'Select postscript or PDF!' => 'Vælg postscript eller PDF',
+ 'Source' => 'Bilag',
+ 'Startdate' => 'Startdato',
+ 'Subject' => 'Emne',
+ 'To' => 'til',
+ 'Update' => 'Opdatér',
+ 'Vendor' => 'Leverandør',
+ 'Vendor not on file!' => 'Leverandør ikke i databasen!',
+ 'Warning!' => 'Advarsel!',
+ 'sent' => 'sendt',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'fortsæt' => 'continue',
+ 'bogfør' => 'post',
+ 'udskriv' => 'print',
+ 'vælg_alt' => 'select_all',
+ 'opdatér' => 'update',
+};
+
+1;
+
diff --git a/locale/dk/ct b/locale/dk/ct
new file mode 100755
index 00000000..30e9b219
--- /dev/null
+++ b/locale/dk/ct
@@ -0,0 +1,185 @@
+$self{texts} = {
+ 'AP Transaction' => 'Leverandørfaktura',
+ 'AP Transactions' => 'Leverandørfakturaer',
+ 'AR Transaction' => 'Debitorpostering',
+ 'AR Transactions' => 'Debitorposteringer',
+ 'Accounting Menu' => 'Konto-menu',
+ 'Active' => 'Aktiv',
+ 'Add Customer' => 'Ny kunde',
+ 'Add Vendor' => 'Ny leverandør',
+ 'Address' => 'Adresse',
+ 'All' => 'Alt',
+ 'Amount' => 'Beløb',
+ 'BIC' => 'BIC',
+ 'Bcc' => 'Blind kopi',
+ 'Billing Address' => 'Fakturaadresse',
+ 'Break' => 'Bryd',
+ 'Cannot delete customer!' => 'Kan ikke slette kunde!',
+ 'Cannot delete vendor!' => 'Kan ikke slette leverandør!',
+ 'Cc' => 'Kopi',
+ 'City' => 'By',
+ 'Closed' => 'Afsluttet',
+ 'Company Name' => 'Firmanavn',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Fortsæt',
+ 'Cost' => 'Udgifter',
+ 'Could not save pricelist!' => 'Kunne ikke gemme prisliste!',
+ 'Country' => 'Land',
+ 'Credit Limit' => 'Kreditgrænse',
+ 'Curr' => 'Val',
+ 'Currency' => 'Valuta',
+ 'Customer History' => 'Kundehistorik',
+ 'Customer Number' => 'Kundenummer',
+ 'Customer deleted!' => 'Kunde slettet!',
+ 'Customer saved!' => 'Kunde gemt!',
+ 'Customers' => 'Kunder',
+ 'Delete' => 'Fjern',
+ 'Delivery Date' => 'Leveringsdato',
+ 'Description' => 'Beskrivelse',
+ 'Detail' => 'Detalje',
+ 'Discount' => 'Rabat',
+ 'E-mail' => 'E-post',
+ 'Edit Customer' => 'Redigér kunde',
+ 'Edit Vendor' => 'Redigér leverandør',
+ 'Employee' => 'Medarbejder',
+ 'Enddate' => 'Slutdato',
+ 'Fax' => 'Fax',
+ 'From' => 'Fra',
+ 'GIFI' => 'GIFI',
+ 'Group' => 'Gruppe',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Inkludér i rapport',
+ 'Invoice' => 'Faktura',
+ 'Item already on pricelist!' => 'Enkeltdel allerede på prisliste!',
+ 'Item not on file!' => 'Enkeltdel er ikke i databasen!',
+ 'Language' => 'Sprog',
+ 'Leadtime' => 'forsinkelsestid',
+ 'Manager' => 'Leder',
+ 'Name' => 'Navn',
+ 'Name missing!' => 'Navn mangler!',
+ 'No.' => 'Nummer',
+ 'Notes' => 'Bemærkninger',
+ 'Number' => 'Nummer',
+ 'Open' => 'Åbn',
+ 'Order' => 'Ordre',
+ 'Orphaned' => 'Fritstående',
+ 'POS' => 'POS',
+ 'Phone' => 'Tel.',
+ 'Pricegroup' => 'Prisgruppe',
+ 'Pricelist' => 'Prisliste',
+ 'Project Number' => 'Projektnummer',
+ 'Purchase Order' => 'Indkøbsordre',
+ 'Purchase Orders' => 'Indkøbsordrer',
+ 'Qty' => 'Mængde',
+ 'Quotation' => 'Tilbud',
+ 'Quotations' => 'Tilbud',
+ 'RFQ' => 'Tilbudsønske',
+ 'Request for Quotations' => 'Ønske om tilbud',
+ 'SIC' => 'SIC',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Salgsfaktura',
+ 'Sales Invoices' => 'Salgsfakturaer',
+ 'Sales Order' => 'Salgsordre',
+ 'Sales Orders' => 'Salgsordrer',
+ 'Salesperson' => 'Sælger',
+ 'Save' => 'Gem',
+ 'Save Pricelist' => 'Gem prisliste',
+ 'Save as new' => 'Gem som ny',
+ 'Search' => 'Søg',
+ 'Sell Price' => 'Salgspris',
+ 'Serial Number' => 'Serienummer',
+ 'Shipping Address' => 'Afsendelsesadresse',
+ 'Startdate' => 'Startdato',
+ 'State' => 'Stat',
+ 'State/Province' => 'Stat/provins',
+ 'Sub-contract GIFI' => 'Kode for underleverandør',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Oversigt',
+ 'Tax' => 'Afgift/Moms',
+ 'Tax Included' => 'Inkl. afgifter og moms',
+ 'Tax Number' => 'Skattenummer',
+ 'Tax Number / SSN' => 'Skattenumme/CIR',
+ 'Taxable' => 'Afgifts/momspligtig',
+ 'Terms' => 'Netto',
+ 'To' => 'til',
+ 'Total' => 'I alt',
+ 'Type of Business' => 'Type forretning',
+ 'Unit' => 'Enhed',
+ 'Update' => 'Opdatér',
+ 'Vendor History' => 'Leverandørhistorik',
+ 'Vendor Invoice' => 'Indkøbsfaktura',
+ 'Vendor Invoices' => 'Leverandørfakturaer',
+ 'Vendor Number' => 'Leverandørnummer',
+ 'Vendor deleted!' => 'Leverandør slettet!',
+ 'Vendor saved!' => 'Leverandør gemt!',
+ 'Vendors' => 'Leverandører',
+ 'days' => 'dage',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'leverandørfaktura' => 'ap_transaction',
+ 'debitorpostering' => 'ar_transaction',
+ 'ny_kunde' => 'add_customer',
+ 'ny_leverandør' => 'add_vendor',
+ 'fortsæt' => 'continue',
+ 'fjern' => 'delete',
+ 'pos' => 'pos',
+ 'prisliste' => 'pricelist',
+ 'indkøbsordre' => 'purchase_order',
+ 'tilbud' => 'quotation',
+ 'tilbudsønske' => 'rfq',
+ 'salgsfaktura' => 'sales_invoice',
+ 'salgsordre' => 'sales_order',
+ 'gem' => 'save',
+ 'gem_prisliste' => 'save_pricelist',
+ 'gem_som_ny' => 'save_as_new',
+ 'opdatér' => 'update',
+ 'indkøbsfaktura' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/dk/gl b/locale/dk/gl
new file mode 100755
index 00000000..78a02107
--- /dev/null
+++ b/locale/dk/gl
@@ -0,0 +1,158 @@
+$self{texts} = {
+ 'AP Transaction' => 'Leverandørfaktura',
+ 'AR Transaction' => 'Debitorpostering',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Konto-menu',
+ 'Add Cash Transfer Transaction' => 'Ny kontantoverførsel',
+ 'Add General Ledger Transaction' => 'Ny postering i hovedbog',
+ 'Address' => 'Adresse',
+ 'All' => 'Alt',
+ 'Amount' => 'Beløb',
+ 'Apr' => 'apr',
+ 'April' => 'april',
+ 'Are you sure you want to delete Transaction' => 'Er du sikker på du vil fjerne postering',
+ 'Asset' => 'Aktiv',
+ 'Aug' => 'aug',
+ 'August' => 'august',
+ 'Balance' => 'Balance',
+ 'Bcc' => 'Blind kopi',
+ 'Cannot delete transaction!' => 'Kan ikke slette postering!',
+ 'Cannot post transaction for a closed period!' => 'Kan ikke bogføre postering for en afsluttet periode!',
+ 'Cannot post transaction!' => 'Kan ikke bogføre postering!',
+ 'Cc' => 'Kopi',
+ 'Confirm!' => 'Bekræft!',
+ 'Continue' => 'Fortsæt',
+ 'Credit' => 'Kredit',
+ 'Current' => 'Aktuel',
+ 'Customer not on file!' => 'Kunde ikke i databasen!',
+ 'Date' => 'Dato',
+ 'Debit' => 'Debet',
+ 'Dec' => 'dec',
+ 'December' => 'december',
+ 'Delete' => 'Fjern',
+ 'Department' => 'Afdeling',
+ 'Description' => 'Beskrivelse',
+ 'E-mail' => 'E-post',
+ 'Edit Cash Transfer Transaction' => 'Redigér kontantoverførsel',
+ 'Edit General Ledger Transaction' => 'Redigér en postering i hovedbog',
+ 'Equity' => 'Egenkapital',
+ 'Expense' => 'Udgift',
+ 'FX' => 'FX',
+ 'Feb' => 'feb',
+ 'February' => 'februar',
+ 'From' => 'Fra',
+ 'GIFI' => 'GIFI',
+ 'GL Transaction' => 'Postering i hovedbog',
+ 'General Ledger' => 'Hovedbog',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Inkludér i rapport',
+ 'Income' => 'Indtægt',
+ 'Jan' => 'jan',
+ 'January' => 'januar',
+ 'Jul' => 'jul',
+ 'July' => 'juli',
+ 'Jun' => 'jun',
+ 'June' => 'juni',
+ 'Liability' => 'Passiv',
+ 'Mar' => 'mar',
+ 'March' => 'marts',
+ 'May' => 'maj',
+ 'May ' => 'maj ',
+ 'Memo' => 'Note',
+ 'Message' => 'Besked',
+ 'Month' => 'Måned',
+ 'Notes' => 'Bemærkninger',
+ 'Nov' => 'nov',
+ 'November' => 'november',
+ 'Number' => 'Nummer',
+ 'Oct' => 'okt',
+ 'October' => 'oktober',
+ 'Out of balance transaction!' => 'Ubalanceret overførsel',
+ 'Period' => 'Periode',
+ 'Post' => 'Bogfør',
+ 'Post as new' => 'Bogfør som ny',
+ 'Print' => 'Udskriv',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Projekt ikke i databasen!',
+ 'Quarter' => 'Kvartal',
+ 'R' => 'R',
+ 'Reference' => 'Reference',
+ 'Reports' => 'Rapporter',
+ 'Sales Invoice ' => 'Salgsfaktura ',
+ 'Select from one of the names below' => 'Vælg en af navnene nedenfor',
+ 'Select from one of the projects below' => 'Vælg et af projekterne nedenfor',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Source' => 'Bilag',
+ 'Startdate' => 'Startdato',
+ 'Subject' => 'Emne',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'til',
+ 'Transaction Date missing!' => 'Posteringsdato mangler!',
+ 'Transaction deleted!' => 'Postering slettet!',
+ 'Transaction posted!' => 'Postering bogført!',
+ 'Update' => 'Opdatér',
+ 'Vendor Invoice ' => 'Indkøbsfaktura ',
+ 'Vendor not on file!' => 'Leverandør ikke i databasen!',
+ 'Warning!' => 'Advarsel!',
+ 'Year' => 'År',
+ 'Yes' => 'Ja',
+ 'sent' => 'sendt',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'leverandørfaktura' => 'ap_transaction',
+ 'debitorpostering' => 'ar_transaction',
+ 'fortsæt' => 'continue',
+ 'fjern' => 'delete',
+ 'postering_i_hovedbog' => 'gl_transaction',
+ 'bogfør' => 'post',
+ 'bogfør_som_ny' => 'post_as_new',
+ 'salgsfaktura_' => 'sales_invoice_',
+ 'opdatér' => 'update',
+ 'indkøbsfaktura_' => 'vendor_invoice_',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/dk/hr b/locale/dk/hr
new file mode 100755
index 00000000..21ab98d1
--- /dev/null
+++ b/locale/dk/hr
@@ -0,0 +1,114 @@
+$self{texts} = {
+ 'AP' => 'Kreditorer',
+ 'Above' => 'Over',
+ 'Accounting Menu' => 'Konto-menu',
+ 'Active' => 'Aktiv',
+ 'Add Deduction' => 'Nyt fradrag',
+ 'Add Employee' => 'Ny medarbejder',
+ 'Address' => 'Adresse',
+ 'Administrator' => 'Administrator',
+ 'After Deduction' => 'Efter fradrag',
+ 'All' => 'Alt',
+ 'Allowances' => 'Fradrag',
+ 'Amount' => 'Beløb',
+ 'Amount missing!' => 'Beløb mangler!',
+ 'BIC' => 'BIC',
+ 'Based on' => 'Baseret på',
+ 'Before Deduction' => 'Før fradrag',
+ 'Below' => 'Under',
+ 'City' => 'By',
+ 'Continue' => 'Fortsæt',
+ 'Country' => 'Land',
+ 'Deduct after' => 'Fratræk efter',
+ 'Deduction deleted!' => 'Fradrag slettet!',
+ 'Deduction saved!' => 'Fradrag gemt!',
+ 'Deductions' => 'Fradrag',
+ 'Delete' => 'Fjern',
+ 'Description' => 'Beskrivelse',
+ 'Description missing!' => 'Beskrivelse mangler!',
+ 'E-mail' => 'E-post',
+ 'Edit Deduction' => 'Redigér fradrag',
+ 'Edit Employee' => 'Redigér medarbejder',
+ 'Employee' => 'Medarbejder',
+ 'Employee Name' => 'Navn for medarbejder',
+ 'Employee Number' => 'Medarbejdernummer',
+ 'Employee deleted!' => 'Medarbejder slettet!',
+ 'Employee pays' => 'Medarbejder betaler',
+ 'Employee saved!' => 'Medarbejder gemt!',
+ 'Employees' => 'Medarbejdere',
+ 'Employer' => 'Arbejdsgiver',
+ 'Employer pays' => 'Arbejdsgiver betaler',
+ 'Enddate' => 'Slutdato',
+ 'Expense' => 'Udgift',
+ 'From' => 'Fra',
+ 'Home Phone' => 'Telefon privat',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Inkludér i rapport',
+ 'Login' => 'Log på',
+ 'Manager' => 'Leder',
+ 'Maximum' => 'Maksimum',
+ 'Name' => 'Navn',
+ 'Name missing!' => 'Navn mangler!',
+ 'Notes' => 'Bemærkninger',
+ 'Number' => 'Nummer',
+ 'Orphaned' => 'Fritstående',
+ 'Payroll Deduction' => 'Fradrag i løn',
+ 'Rate' => 'Sats',
+ 'Rate missing!' => 'Sats mangler!',
+ 'Role' => 'Rolle',
+ 'S' => 'S',
+ 'SSN' => 'CIR',
+ 'Sales' => 'Salg',
+ 'Save' => 'Gem',
+ 'Save as new' => 'Gem som ny',
+ 'Startdate' => 'Startdato',
+ 'State/Province' => 'Stat/provins',
+ 'To' => 'til',
+ 'Update' => 'Opdatér',
+ 'User' => 'Bruger',
+ 'Work Phone' => 'Telefon arbejde',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'nyt_fradrag' => 'add_deduction',
+ 'ny_medarbejder' => 'add_employee',
+ 'fortsæt' => 'continue',
+ 'fjern' => 'delete',
+ 'gem' => 'save',
+ 'gem_som_ny' => 'save_as_new',
+ 'opdatér' => 'update',
+};
+
+1;
+
diff --git a/locale/dk/ic b/locale/dk/ic
new file mode 100755
index 00000000..cb6496a4
--- /dev/null
+++ b/locale/dk/ic
@@ -0,0 +1,275 @@
+$self{texts} = {
+ 'A' => 'A',
+ 'Accounting Menu' => 'Konto-menu',
+ 'Accounts' => 'Konti',
+ 'Accrual' => 'Påløbet',
+ 'Active' => 'Aktiv',
+ 'Add' => 'Tilføj',
+ 'Add Assembly' => 'Ny sammensætning',
+ 'Add Labor/Overhead' => 'Nyt arbejde/overhead',
+ 'Add Part' => 'Ny vare',
+ 'Add Purchase Order' => 'Ny indkøbsordre',
+ 'Add Quotation' => 'Nyt tilbud',
+ 'Add Request for Quotation' => 'Nyt tilbudsønske',
+ 'Add Sales Order' => 'Ny salgsordre',
+ 'Add Service' => 'Ny tjeneste',
+ 'Address' => 'Adresse',
+ 'Apr' => 'apr',
+ 'April' => 'april',
+ 'Assemblies' => 'Sammensætninger',
+ 'Assemblies restocked!' => 'Sammensætninger genlagret',
+ 'Assembly' => 'Sammensætning',
+ 'Attachment' => 'Bilag',
+ 'Aug' => 'aug',
+ 'August' => 'august',
+ 'BOM' => 'BOM',
+ 'Bcc' => 'Blind kopi',
+ 'Billing Address' => 'Fakturaadresse',
+ 'Bin' => 'Varelager',
+ 'Bin List' => 'Sendings-list',
+ 'Break' => 'Bryd',
+ 'COGS' => 'Indkøb',
+ 'Cannot delete item!' => 'Kan ikke slette enhed!',
+ 'Cannot stock assemblies!' => 'Kan ikke genbesætte sammensætninger',
+ 'Cash' => 'Kontanter',
+ 'Cc' => 'Kopi',
+ 'Check Inventory' => 'Kontrollér lager',
+ 'City' => 'By',
+ 'Closed' => 'Afsluttet',
+ 'Company Name' => 'Firmanavn',
+ 'Components' => 'Komponenter',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Fortsæt',
+ 'Copies' => 'Kopier',
+ 'Cost' => 'Udgifter',
+ 'Country' => 'Land',
+ 'Curr' => 'Val',
+ 'Currency' => 'Valuta',
+ 'Customer' => 'Kunde',
+ 'Customer Number' => 'Kundenummer',
+ 'Customer not on file!' => 'Kunde ikke i databasen!',
+ 'Date' => 'Dato',
+ 'Dec' => 'dec',
+ 'December' => 'december',
+ 'Delete' => 'Fjern',
+ 'Delivery Date' => 'Leveringsdato',
+ 'Description' => 'Beskrivelse',
+ 'Detail' => 'Detalje',
+ 'Drawing' => 'Træk',
+ 'E-mail' => 'E-post',
+ 'E-mail address missing!' => 'E-post-adresse mangler!',
+ 'E-mailed' => 'Sendt per e-post',
+ 'Edit Assembly' => 'Redigér sammensætning',
+ 'Edit Labor/Overhead' => 'Redigér arbejde/overhead',
+ 'Edit Part' => 'Redigér vare',
+ 'Edit Service' => 'Redigér tjeneste',
+ 'Employee' => 'Medarbejder',
+ 'Expense' => 'Udgift',
+ 'Extended' => 'Udvidet',
+ 'Fax' => 'Fax',
+ 'Feb' => 'feb',
+ 'February' => 'februar',
+ 'From' => 'Fra',
+ 'Group' => 'Gruppe',
+ 'Image' => 'Billede',
+ 'In-line' => 'Indlejret',
+ 'Include in Report' => 'Inkludér i rapport',
+ 'Income' => 'Indtægt',
+ 'Individual Items' => 'Individuelle enheder',
+ 'Inventory' => 'Artikler',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Lagerbeholdning skal være nul for at du kan forælde denne sammensætning',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Lagerbeholdning skal være nul for at du kan forælde denne enhed',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date missing!' => 'Fakturadato mangler!',
+ 'Invoice Number' => 'Fakturanummer',
+ 'Invoice Number missing!' => 'Fakturanummer mangler!',
+ 'Item deleted!' => 'Enkeltdel slettet!',
+ 'Item not on file!' => 'Enkeltdel er ikke i databasen!',
+ 'Items' => 'Enkeltdele',
+ 'Jan' => 'jan',
+ 'January' => 'januar',
+ 'Jul' => 'jul',
+ 'July' => 'juli',
+ 'Jun' => 'jun',
+ 'June' => 'juni',
+ 'Labor/Overhead' => 'Arbejde/overhead',
+ 'Leadtime' => 'forsinkelsestid',
+ 'Line Total' => 'Antal linjer',
+ 'Link Accounts' => 'Forbind konti',
+ 'List' => 'Vís',
+ 'List Price' => 'Listepris',
+ 'Make' => 'Fabrikat',
+ 'Mar' => 'mar',
+ 'March' => 'marts',
+ 'Markup' => 'Markup',
+ 'May' => 'maj',
+ 'May ' => 'maj ',
+ 'Message' => 'Besked',
+ 'Microfiche' => 'Mikrofilm',
+ 'Model' => 'Model',
+ 'Name' => 'Navn',
+ 'No.' => 'Nummer',
+ 'Notes' => 'Bemærkninger',
+ 'Nov' => 'nov',
+ 'November' => 'november',
+ 'Number' => 'Nummer',
+ 'Number missing in Row' => 'Tal mangler i række',
+ 'Obsolete' => 'Forældet',
+ 'Oct' => 'okt',
+ 'October' => 'oktober',
+ 'On Hand' => 'På lager',
+ 'Open' => 'Åbn',
+ 'Order' => 'Ordre',
+ 'Order Date missing!' => 'Ordredato mangler',
+ 'Order Number' => 'Ordrenummer',
+ 'Order Number missing!' => 'Ordrenummer mangler',
+ 'Orphaned' => 'Fritstående',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Følgeseddel',
+ 'Packing List Date missing!' => 'Dato for pakkeliste mangler!',
+ 'Packing List Number missing!' => 'Nummer for pakkeliste mangler!',
+ 'Part' => 'Vare',
+ 'Parts' => 'Dele',
+ 'Period' => 'Periode',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Pakkeliste',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Pris',
+ 'Pricegroup' => 'Prisgruppe',
+ 'Printed' => 'Udskrevet',
+ 'Project' => 'Projekt',
+ 'Purchase Order' => 'Indkøbsordre',
+ 'Purchase Orders' => 'Indkøbsordrer',
+ 'Qty' => 'Mængde',
+ 'Quantity exceeds available units to stock!' => 'Mængde overstiger tilgægeligt antal på lager!',
+ 'Quotation' => 'Tilbud',
+ 'Quotation Date missing!' => 'Tilbudsdato mangler!',
+ 'Quotation Number missing!' => 'Tilbudsnummer mangler!',
+ 'Quotations' => 'Tilbud',
+ 'RFQ' => 'Tilbudsønske',
+ 'ROP' => 'Genbestil ved',
+ 'Recd' => 'Modtaget',
+ 'Required by' => 'Bestilt af',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Salgsfaktura',
+ 'Sales Invoices' => 'Salgsfakturaer',
+ 'Sales Order' => 'Salgsordre',
+ 'Sales Orders' => 'Salgsordrer',
+ 'Save' => 'Gem',
+ 'Save as new' => 'Gem som ny',
+ 'Screen' => 'Skærm',
+ 'Select from one of the names below' => 'Vælg en af navnene nedenfor',
+ 'Sell' => 'Sælg',
+ 'Sell Price' => 'Salgspris',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Serial No.' => 'Serienummer',
+ 'Serial Number' => 'Serienummer',
+ 'Service' => 'Tjeneste',
+ 'Services' => 'Tjenester',
+ 'Ship' => 'Afsend',
+ 'Ship to' => 'Send til',
+ 'Shipping Address' => 'Afsendelsesadresse',
+ 'Short' => 'Kort',
+ 'State/Province' => 'Stat/provins',
+ 'Stock' => 'Lager',
+ 'Stock Assembly' => 'Lagr sammensætning',
+ 'Subject' => 'Emne',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Oversigt',
+ 'Tax' => 'Afgift/Moms',
+ 'To' => 'til',
+ 'Top Level' => 'Topniveau',
+ 'Translation not on file!' => 'Oversættelse ikke tilgængelig',
+ 'Unit' => 'Enhed',
+ 'Update' => 'Opdatér',
+ 'Updated' => 'Opdateret',
+ 'Vendor' => 'Leverandør',
+ 'Vendor Invoice' => 'Indkøbsfaktura',
+ 'Vendor Invoices' => 'Leverandørfakturaer',
+ 'Vendor Number' => 'Leverandørnummer',
+ 'Vendor not on file!' => 'Leverandør ikke i databasen!',
+ 'Warehouse' => 'Varehus',
+ 'Weight' => 'Vægt',
+ 'What type of item is this?' => 'Hvilken type ting er dette?',
+ 'Work Order' => 'Arbejdsnummer',
+ 'Year' => 'År',
+ 'days' => 'dage',
+ 'sent' => 'sendt',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'ny_sammensætning' => 'add_assembly',
+ 'nyt_arbejde_overhead' => 'add_labor_overhead',
+ 'ny_vare' => 'add_part',
+ 'ny_tjeneste' => 'add_service',
+ 'fortsæt' => 'continue',
+ 'fjern' => 'delete',
+ 'redigér_sammensætning' => 'edit_assembly',
+ 'redigér_vare' => 'edit_part',
+ 'redigér_tjeneste' => 'edit_service',
+ 'gem' => 'save',
+ 'gem_som_ny' => 'save_as_new',
+ 'opdatér' => 'update',
+};
+
+1;
+
diff --git a/locale/dk/io b/locale/dk/io
new file mode 100755
index 00000000..ae3f4d22
--- /dev/null
+++ b/locale/dk/io
@@ -0,0 +1,128 @@
+$self{texts} = {
+ 'Add Purchase Order' => 'Ny indkøbsordre',
+ 'Add Quotation' => 'Nyt tilbud',
+ 'Add Request for Quotation' => 'Nyt tilbudsønske',
+ 'Add Sales Order' => 'Ny salgsordre',
+ 'Address' => 'Adresse',
+ 'Apr' => 'apr',
+ 'April' => 'april',
+ 'Attachment' => 'Bilag',
+ 'Aug' => 'aug',
+ 'August' => 'august',
+ 'Bcc' => 'Blind kopi',
+ 'Billing Address' => 'Fakturaadresse',
+ 'Bin' => 'Varelager',
+ 'Bin List' => 'Sendings-list',
+ 'Cc' => 'Kopi',
+ 'City' => 'By',
+ 'Company Name' => 'Firmanavn',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Fortsæt',
+ 'Copies' => 'Kopier',
+ 'Country' => 'Land',
+ 'Customer Number' => 'Kundenummer',
+ 'Date' => 'Dato',
+ 'Dec' => 'dec',
+ 'December' => 'december',
+ 'Delivery Date' => 'Leveringsdato',
+ 'Description' => 'Beskrivelse',
+ 'E-mail' => 'E-post',
+ 'E-mail address missing!' => 'E-post-adresse mangler!',
+ 'E-mailed' => 'Sendt per e-post',
+ 'Extended' => 'Udvidet',
+ 'Fax' => 'Fax',
+ 'Feb' => 'feb',
+ 'February' => 'februar',
+ 'Group' => 'Gruppe',
+ 'In-line' => 'Indlejret',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date missing!' => 'Fakturadato mangler!',
+ 'Invoice Number missing!' => 'Fakturanummer mangler!',
+ 'Item not on file!' => 'Enkeltdel er ikke i databasen!',
+ 'Jan' => 'jan',
+ 'January' => 'januar',
+ 'Jul' => 'jul',
+ 'July' => 'juli',
+ 'Jun' => 'jun',
+ 'June' => 'juni',
+ 'Mar' => 'mar',
+ 'March' => 'marts',
+ 'May' => 'maj',
+ 'May ' => 'maj ',
+ 'Message' => 'Besked',
+ 'Nov' => 'nov',
+ 'November' => 'november',
+ 'Number' => 'Nummer',
+ 'Number missing in Row' => 'Tal mangler i række',
+ 'Oct' => 'okt',
+ 'October' => 'oktober',
+ 'Order Date missing!' => 'Ordredato mangler',
+ 'Order Number missing!' => 'Ordrenummer mangler',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Følgeseddel',
+ 'Packing List Date missing!' => 'Dato for pakkeliste mangler!',
+ 'Packing List Number missing!' => 'Nummer for pakkeliste mangler!',
+ 'Part' => 'Vare',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Pakkeliste',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Pris',
+ 'Printed' => 'Udskrevet',
+ 'Project' => 'Projekt',
+ 'Purchase Order' => 'Indkøbsordre',
+ 'Qty' => 'Mængde',
+ 'Quotation' => 'Tilbud',
+ 'Quotation Date missing!' => 'Tilbudsdato mangler!',
+ 'Quotation Number missing!' => 'Tilbudsnummer mangler!',
+ 'Recd' => 'Modtaget',
+ 'Required by' => 'Bestilt af',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Salgsordre',
+ 'Screen' => 'Skærm',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Serial No.' => 'Serienummer',
+ 'Service' => 'Tjeneste',
+ 'Ship' => 'Afsend',
+ 'Ship to' => 'Send til',
+ 'Shipping Address' => 'Afsendelsesadresse',
+ 'State/Province' => 'Stat/provins',
+ 'Subject' => 'Emne',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'til',
+ 'Translation not on file!' => 'Oversættelse ikke tilgængelig',
+ 'Unit' => 'Enhed',
+ 'Vendor Number' => 'Leverandørnummer',
+ 'What type of item is this?' => 'Hvilken type ting er dette?',
+ 'Work Order' => 'Arbejdsnummer',
+ 'sent' => 'sendt',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'fortsæt' => 'continue',
+};
+
+1;
+
diff --git a/locale/dk/ir b/locale/dk/ir
new file mode 100755
index 00000000..266be528
--- /dev/null
+++ b/locale/dk/ir
@@ -0,0 +1,222 @@
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Konto-menu',
+ 'Add Purchase Order' => 'Ny indkøbsordre',
+ 'Add Quotation' => 'Nyt tilbud',
+ 'Add Request for Quotation' => 'Nyt tilbudsønske',
+ 'Add Sales Order' => 'Ny salgsordre',
+ 'Add Vendor Invoice' => 'Ny indkøbsfaktura',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Beløb',
+ 'Apr' => 'apr',
+ 'April' => 'april',
+ 'Are you sure you want to delete Invoice Number' => 'Er du sikker på du vil fjerne fakturanummer',
+ 'Attachment' => 'Bilag',
+ 'Aug' => 'aug',
+ 'August' => 'august',
+ 'Bcc' => 'Blind kopi',
+ 'Billing Address' => 'Fakturaadresse',
+ 'Bin' => 'Varelager',
+ 'Bin List' => 'Sendings-list',
+ 'Cannot delete invoice!' => 'Kan ikke slette faktura!',
+ 'Cannot post invoice for a closed period!' => 'Kan ikke bogføre faktura for en afsluttet periode!',
+ 'Cannot post invoice!' => 'Kan ikke bogføre faktura!',
+ 'Cannot post payment for a closed period!' => 'Kan ikke bogføre betaling for en afsluttet periode',
+ 'Cc' => 'Kopi',
+ 'City' => 'By',
+ 'Company Name' => 'Firmanavn',
+ 'Confirm!' => 'Bekræft!',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Fortsæt',
+ 'Copies' => 'Kopier',
+ 'Country' => 'Land',
+ 'Credit Limit' => 'Kreditgrænse',
+ 'Currency' => 'Valuta',
+ 'Customer Number' => 'Kundenummer',
+ 'Customer not on file!' => 'Kunde ikke i databasen!',
+ 'Date' => 'Dato',
+ 'Dec' => 'dec',
+ 'December' => 'december',
+ 'Delete' => 'Fjern',
+ 'Delivery Date' => 'Leveringsdato',
+ 'Department' => 'Afdeling',
+ 'Description' => 'Beskrivelse',
+ 'Due Date' => 'Forfaldsdato',
+ 'E-mail' => 'E-post',
+ 'E-mail address missing!' => 'E-post-adresse mangler!',
+ 'E-mailed' => 'Sendt per e-post',
+ 'Edit Vendor Invoice' => 'Redigér projekt',
+ 'Exch' => 'Vxl',
+ 'Exchange Rate' => 'Vekselkurs',
+ 'Exchange rate for payment missing!' => 'Valutakurs for betaling mangler!',
+ 'Exchange rate missing!' => 'Vekselkurs mangler!',
+ 'Extended' => 'Udvidet',
+ 'Fax' => 'Fax',
+ 'Feb' => 'feb',
+ 'February' => 'februar',
+ 'Group' => 'Gruppe',
+ 'In-line' => 'Indlejret',
+ 'Internal Notes' => 'Interne noter',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date' => 'Fakturadato',
+ 'Invoice Date missing!' => 'Fakturadato mangler!',
+ 'Invoice Number' => 'Fakturanummer',
+ 'Invoice Number missing!' => 'Fakturanummer mangler!',
+ 'Invoice deleted!' => 'Faktura slettet!',
+ 'Item not on file!' => 'Enkeltdel er ikke i databasen!',
+ 'Jan' => 'jan',
+ 'January' => 'januar',
+ 'Jul' => 'jul',
+ 'July' => 'juli',
+ 'Jun' => 'jun',
+ 'June' => 'juni',
+ 'Language' => 'Sprog',
+ 'Mar' => 'mar',
+ 'March' => 'marts',
+ 'May' => 'maj',
+ 'May ' => 'maj ',
+ 'Memo' => 'Note',
+ 'Message' => 'Besked',
+ 'Notes' => 'Bemærkninger',
+ 'Nov' => 'nov',
+ 'November' => 'november',
+ 'Number' => 'Nummer',
+ 'Number missing in Row' => 'Tal mangler i række',
+ 'Oct' => 'okt',
+ 'October' => 'oktober',
+ 'Order Date missing!' => 'Ordredato mangler',
+ 'Order Number' => 'Ordrenummer',
+ 'Order Number missing!' => 'Ordrenummer mangler',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Følgeseddel',
+ 'Packing List Date missing!' => 'Dato for pakkeliste mangler!',
+ 'Packing List Number missing!' => 'Nummer for pakkeliste mangler!',
+ 'Part' => 'Vare',
+ 'Payment date missing!' => 'Betalingsdato mangler!',
+ 'Payments' => 'Betalinger',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Pakkeliste',
+ 'Post' => 'Bogfør',
+ 'Post as new' => 'Bogfør som ny',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Pris',
+ 'Print' => 'Udskriv',
+ 'Printed' => 'Udskrevet',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Projekt ikke i databasen!',
+ 'Purchase Order' => 'Indkøbsordre',
+ 'Qty' => 'Mængde',
+ 'Quotation' => 'Tilbud',
+ 'Quotation Date missing!' => 'Tilbudsdato mangler!',
+ 'Quotation Number missing!' => 'Tilbudsnummer mangler!',
+ 'Recd' => 'Modtaget',
+ 'Record in' => 'Bogfør på',
+ 'Reference' => 'Reference',
+ 'Remaining' => 'Resterer',
+ 'Required by' => 'Bestilt af',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Salgsordre',
+ 'Screen' => 'Skærm',
+ 'Select from one of the names below' => 'Vælg en af navnene nedenfor',
+ 'Select from one of the projects below' => 'Vælg et af projekterne nedenfor',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Serial No.' => 'Serienummer',
+ 'Service' => 'Tjeneste',
+ 'Ship' => 'Afsend',
+ 'Ship to' => 'Send til',
+ 'Shipping Address' => 'Afsendelsesadresse',
+ 'Source' => 'Bilag',
+ 'Startdate' => 'Startdato',
+ 'State/Province' => 'Stat/provins',
+ 'Subject' => 'Emne',
+ 'Subtotal' => 'Subtotal',
+ 'Tax Included' => 'Inkl. afgifter og moms',
+ 'To' => 'til',
+ 'Total' => 'I alt',
+ 'Translation not on file!' => 'Oversættelse ikke tilgængelig',
+ 'Unit' => 'Enhed',
+ 'Update' => 'Opdatér',
+ 'Vendor' => 'Leverandør',
+ 'Vendor Number' => 'Leverandørnummer',
+ 'Vendor missing!' => 'Leverandør mangler!',
+ 'Vendor not on file!' => 'Leverandør ikke i databasen!',
+ 'Warning!' => 'Advarsel!',
+ 'What type of item is this?' => 'Hvilken type ting er dette?',
+ 'Work Order' => 'Arbejdsnummer',
+ 'Yes' => 'Ja',
+ 'ea' => 'stk',
+ 'posted!' => 'bogført!',
+ 'sent' => 'sendt',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'fortsæt' => 'continue',
+ 'fjern' => 'delete',
+ 'bogfør' => 'post',
+ 'bogfør_som_ny' => 'post_as_new',
+ 'indkøbsordre' => 'purchase_order',
+ 'opdatér' => 'update',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/dk/is b/locale/dk/is
new file mode 100755
index 00000000..80e5efb7
--- /dev/null
+++ b/locale/dk/is
@@ -0,0 +1,233 @@
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Konto-menu',
+ 'Add Purchase Order' => 'Ny indkøbsordre',
+ 'Add Quotation' => 'Nyt tilbud',
+ 'Add Request for Quotation' => 'Nyt tilbudsønske',
+ 'Add Sales Invoice' => 'Ny salgsfaktura',
+ 'Add Sales Order' => 'Ny salgsordre',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Beløb',
+ 'Apr' => 'apr',
+ 'April' => 'april',
+ 'Are you sure you want to delete Invoice Number' => 'Er du sikker på du vil fjerne fakturanummer',
+ 'Attachment' => 'Bilag',
+ 'Aug' => 'aug',
+ 'August' => 'august',
+ 'Bcc' => 'Blind kopi',
+ 'Billing Address' => 'Fakturaadresse',
+ 'Bin' => 'Varelager',
+ 'Bin List' => 'Sendings-list',
+ 'Business' => 'Forretning',
+ 'Cannot delete invoice!' => 'Kan ikke slette faktura!',
+ 'Cannot post invoice for a closed period!' => 'Kan ikke bogføre faktura for en afsluttet periode!',
+ 'Cannot post invoice!' => 'Kan ikke bogføre faktura!',
+ 'Cannot post payment for a closed period!' => 'Kan ikke bogføre betaling for en afsluttet periode',
+ 'Cc' => 'Kopi',
+ 'City' => 'By',
+ 'Company Name' => 'Firmanavn',
+ 'Confirm!' => 'Bekræft!',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Fortsæt',
+ 'Copies' => 'Kopier',
+ 'Country' => 'Land',
+ 'Credit Limit' => 'Kreditgrænse',
+ 'Currency' => 'Valuta',
+ 'Customer' => 'Kunde',
+ 'Customer Number' => 'Kundenummer',
+ 'Customer missing!' => 'Kunde mangler!',
+ 'Customer not on file!' => 'Kunde ikke i databasen!',
+ 'Date' => 'Dato',
+ 'Dec' => 'dec',
+ 'December' => 'december',
+ 'Delete' => 'Fjern',
+ 'Delivery Date' => 'Leveringsdato',
+ 'Department' => 'Afdeling',
+ 'Description' => 'Beskrivelse',
+ 'Due Date' => 'Forfaldsdato',
+ 'E-mail' => 'E-post',
+ 'E-mail address missing!' => 'E-post-adresse mangler!',
+ 'E-mailed' => 'Sendt per e-post',
+ 'Edit Sales Invoice' => 'Redigér salgsfaktura',
+ 'Exch' => 'Vxl',
+ 'Exchange Rate' => 'Vekselkurs',
+ 'Exchange rate for payment missing!' => 'Valutakurs for betaling mangler!',
+ 'Exchange rate missing!' => 'Vekselkurs mangler!',
+ 'Extended' => 'Udvidet',
+ 'Fax' => 'Fax',
+ 'Feb' => 'feb',
+ 'February' => 'februar',
+ 'Group' => 'Gruppe',
+ 'In-line' => 'Indlejret',
+ 'Internal Notes' => 'Interne noter',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date' => 'Fakturadato',
+ 'Invoice Date missing!' => 'Fakturadato mangler!',
+ 'Invoice Number' => 'Fakturanummer',
+ 'Invoice Number missing!' => 'Fakturanummer mangler!',
+ 'Invoice deleted!' => 'Faktura slettet!',
+ 'Item not on file!' => 'Enkeltdel er ikke i databasen!',
+ 'Jan' => 'jan',
+ 'January' => 'januar',
+ 'Jul' => 'jul',
+ 'July' => 'juli',
+ 'Jun' => 'jun',
+ 'June' => 'juni',
+ 'Mar' => 'mar',
+ 'March' => 'marts',
+ 'May' => 'maj',
+ 'May ' => 'maj ',
+ 'Memo' => 'Note',
+ 'Message' => 'Besked',
+ 'Notes' => 'Bemærkninger',
+ 'Nov' => 'nov',
+ 'November' => 'november',
+ 'Number' => 'Nummer',
+ 'Number missing in Row' => 'Tal mangler i række',
+ 'Oct' => 'okt',
+ 'October' => 'oktober',
+ 'Order Date missing!' => 'Ordredato mangler',
+ 'Order Number' => 'Ordrenummer',
+ 'Order Number missing!' => 'Ordrenummer mangler',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Følgeseddel',
+ 'Packing List Date missing!' => 'Dato for pakkeliste mangler!',
+ 'Packing List Number missing!' => 'Nummer for pakkeliste mangler!',
+ 'Part' => 'Vare',
+ 'Payment date missing!' => 'Betalingsdato mangler!',
+ 'Payments' => 'Betalinger',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Pakkeliste',
+ 'Post' => 'Bogfør',
+ 'Post as new' => 'Bogfør som ny',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Pris',
+ 'Print' => 'Udskriv',
+ 'Print and Post' => 'Udskriv og send',
+ 'Printed' => 'Udskrevet',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Projekt ikke i databasen!',
+ 'Purchase Order' => 'Indkøbsordre',
+ 'Qty' => 'Mængde',
+ 'Quotation' => 'Tilbud',
+ 'Quotation Date missing!' => 'Tilbudsdato mangler!',
+ 'Quotation Number missing!' => 'Tilbudsnummer mangler!',
+ 'Recd' => 'Modtaget',
+ 'Record in' => 'Bogfør på',
+ 'Reference' => 'Reference',
+ 'Remaining' => 'Resterer',
+ 'Required by' => 'Bestilt af',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Salgsordre',
+ 'Salesperson' => 'Sælger',
+ 'Screen' => 'Skærm',
+ 'Select from one of the names below' => 'Vælg en af navnene nedenfor',
+ 'Select from one of the projects below' => 'Vælg et af projekterne nedenfor',
+ 'Select postscript or PDF!' => 'Vælg postscript eller PDF',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Serial No.' => 'Serienummer',
+ 'Service' => 'Tjeneste',
+ 'Ship' => 'Afsend',
+ 'Ship to' => 'Send til',
+ 'Ship via' => 'Send via',
+ 'Shipping Address' => 'Afsendelsesadresse',
+ 'Shipping Point' => 'Afsendelsessted',
+ 'Source' => 'Bilag',
+ 'Startdate' => 'Startdato',
+ 'State/Province' => 'Stat/provins',
+ 'Subject' => 'Emne',
+ 'Subtotal' => 'Subtotal',
+ 'Tax Included' => 'Inkl. afgifter og moms',
+ 'To' => 'til',
+ 'Total' => 'I alt',
+ 'Trade Discount' => 'Handelsrabat',
+ 'Translation not on file!' => 'Oversættelse ikke tilgængelig',
+ 'Unit' => 'Enhed',
+ 'Update' => 'Opdatér',
+ 'Vendor Number' => 'Leverandørnummer',
+ 'Vendor not on file!' => 'Leverandør ikke i databasen!',
+ 'Warning!' => 'Advarsel!',
+ 'What type of item is this?' => 'Hvilken type ting er dette?',
+ 'Work Order' => 'Arbejdsnummer',
+ 'Yes' => 'Ja',
+ 'ea' => 'stk',
+ 'posted!' => 'bogført!',
+ 'sent' => 'sendt',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'fortsæt' => 'continue',
+ 'fjern' => 'delete',
+ 'e_post' => 'e_mail',
+ 'bogfør' => 'post',
+ 'bogfør_som_ny' => 'post_as_new',
+ 'udskriv' => 'print',
+ 'udskriv_og_send' => 'print_and_post',
+ 'salgsordre' => 'sales_order',
+ 'send_til' => 'ship_to',
+ 'opdatér' => 'update',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/dk/jc b/locale/dk/jc
new file mode 100755
index 00000000..cd35bfc3
--- /dev/null
+++ b/locale/dk/jc
@@ -0,0 +1,92 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Konto-menu',
+ 'Amount' => 'Beløb',
+ 'Closed' => 'Afsluttet',
+ 'Confirm!' => 'Bekræft!',
+ 'Continue' => 'Fortsæt',
+ 'Cost' => 'Udgifter',
+ 'Current' => 'Aktuel',
+ 'Date' => 'Dato',
+ 'Date missing!' => 'Dato mangler!',
+ 'Delete' => 'Fjern',
+ 'Description' => 'Beskrivelse',
+ 'Employee' => 'Medarbejder',
+ 'From' => 'Fra',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Inkludér i rapport',
+ 'Month' => 'Måned',
+ 'Notes' => 'Bemærkninger',
+ 'Open' => 'Åbn',
+ 'PDF' => 'PDF',
+ 'Period' => 'Periode',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Udskriv',
+ 'Print and Save' => 'Udskriv og gem',
+ 'Printed' => 'Udskrevet',
+ 'Project Number' => 'Projektnummer',
+ 'Project Number missing!' => 'Projektnummer mangler!',
+ 'Qty' => 'Mængde',
+ 'Quarter' => 'Kvartal',
+ 'Save' => 'Gem',
+ 'Save as new' => 'Gem som ny',
+ 'Screen' => 'Skærm',
+ 'Select postscript or PDF!' => 'Vælg postscript eller PDF',
+ 'Startdate' => 'Startdato',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'til',
+ 'Total' => 'I alt',
+ 'Update' => 'Opdatér',
+ 'Warning!' => 'Advarsel!',
+ 'Year' => 'År',
+ 'Yes' => 'Ja',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'fortsæt' => 'continue',
+ 'fjern' => 'delete',
+ 'udskriv' => 'print',
+ 'udskriv_og_gem' => 'print_and_save',
+ 'gem' => 'save',
+ 'gem_som_ny' => 'save_as_new',
+ 'opdatér' => 'update',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/dk/locales.pl b/locale/dk/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/dk/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/dk/login b/locale/dk/login
new file mode 100755
index 00000000..7799cbb8
--- /dev/null
+++ b/locale/dk/login
@@ -0,0 +1,24 @@
+$self{texts} = {
+ 'Company' => 'Firma',
+ 'Continue' => 'Fortsæt',
+ 'Dataset is newer than version!' => 'Datasæt er nyere end version!',
+ 'Incorrect Dataset version!' => 'Forkert version af datasæt!',
+ 'Login' => 'Log på',
+ 'Name' => 'Navn',
+ 'Password' => 'Adgangskode',
+ 'Upgrading to Version' => 'Opgraderer til version',
+ 'Version' => 'Version',
+ 'You did not enter a name!' => 'Du angav ikke et navn',
+ 'done' => 'færdig',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ 'log_på' => 'login',
+};
+
+1;
+
diff --git a/locale/dk/menu b/locale/dk/menu
new file mode 100755
index 00000000..792c71ef
--- /dev/null
+++ b/locale/dk/menu
@@ -0,0 +1,134 @@
+$self{texts} = {
+ 'AP' => 'Kreditorer',
+ 'AP Aging' => 'Aldersfordeling',
+ 'AP Transaction' => 'Leverandørfaktura',
+ 'AR' => 'Debitorer',
+ 'AR Aging' => 'Aldersfordeling',
+ 'AR Transaction' => 'Debitorpostering',
+ 'Accounting Menu' => 'Konto-menu',
+ 'Add Account' => 'Ny konto',
+ 'Add Assembly' => 'Ny sammensætning',
+ 'Add Business' => 'Ny forretning',
+ 'Add Customer' => 'Ny kunde',
+ 'Add Department' => 'Ny afdeling',
+ 'Add Employee' => 'Ny medarbejder',
+ 'Add GIFI' => 'Ny GIFI',
+ 'Add Group' => 'Ny gruppe',
+ 'Add Labor/Overhead' => 'Nyt arbejde/overhead',
+ 'Add Language' => 'Nyt sprog',
+ 'Add Part' => 'Ny vare',
+ 'Add Pricegroup' => 'Ny prisgruppe',
+ 'Add Project' => 'Nyt projekt',
+ 'Add SIC' => 'Ny SIC',
+ 'Add Service' => 'Ny tjeneste',
+ 'Add Transaction' => 'Ny postering',
+ 'Add Vendor' => 'Ny leverandør',
+ 'Add Warehouse' => 'Nyt varehus',
+ 'All Items' => 'Alle dele',
+ 'Assemblies' => 'Sammensætninger',
+ 'Audit Control' => 'Revisionskontrol',
+ 'Backup' => 'Sikkerheskopi',
+ 'Balance Sheet' => 'Status',
+ 'Bin List' => 'Sendings-list',
+ 'Bin Lists' => 'Sendings-lister',
+ 'Cash' => 'Kontanter',
+ 'Chart of Accounts' => 'Kontoplan',
+ 'Check' => 'Check',
+ 'Components' => 'Komponenter',
+ 'Customers' => 'Kunder',
+ 'Defaults' => 'Standardopsætning',
+ 'Departments' => 'Afdelinger',
+ 'Description' => 'Beskrivelse',
+ 'Employees' => 'Medarbejdere',
+ 'General Ledger' => 'Hovedbog',
+ 'Goods & Services' => 'Varer og tjenester',
+ 'Groups' => 'Grupper',
+ 'HR' => 'HR',
+ 'HTML Templates' => 'HTML-skabeloner',
+ 'History' => 'Historik',
+ 'Income Statement' => 'Driftsregnskab',
+ 'Invoice' => 'Faktura',
+ 'LaTeX Templates' => 'LaTeX-skabeloner',
+ 'Labor/Overhead' => 'Arbejde/overhead',
+ 'Language' => 'Sprog',
+ 'List Accounts' => 'Vís konti',
+ 'List Businesses' => 'Vís forretninger',
+ 'List Departments' => 'Vís afdelinger',
+ 'List GIFI' => 'Vís GIFI',
+ 'List Languages' => 'Vís sprog',
+ 'List Projects' => 'Vís projekter',
+ 'List SIC' => 'Vís SIC',
+ 'List Warehouses' => 'Vís varehuse',
+ 'Logout' => 'Log af',
+ 'Non-taxable' => 'Ikke-beskattet',
+ 'Open' => 'Åbn',
+ 'Order Entry' => 'Ordreindgang',
+ 'Outstanding' => 'Udestående',
+ 'POS' => 'POS',
+ 'POS Invoice' => 'POS faktura',
+ 'Packing List' => 'Følgeseddel',
+ 'Packing Lists' => 'Følgesedler',
+ 'Parts' => 'Dele',
+ 'Payment' => 'Betaling',
+ 'Payments' => 'Betalinger',
+ 'Pick List' => 'Pakkeliste',
+ 'Pick Lists' => 'Pakkelister',
+ 'Preferences' => 'Præferencer',
+ 'Pricegroups' => 'Prisgrupper',
+ 'Print' => 'Udskriv',
+ 'Projects' => 'Projekter',
+ 'Purchase Order' => 'Indkøbsordre',
+ 'Purchase Orders' => 'Indkøbsordrer',
+ 'Quotation' => 'Tilbud',
+ 'Quotations' => 'Tilbud',
+ 'RFQ' => 'Tilbudsønske',
+ 'RFQs' => 'Tilbudsønsker',
+ 'Receipt' => 'Kvittering',
+ 'Receipts' => 'Kvitteringer',
+ 'Receive' => 'Modtagelse',
+ 'Reconciliation' => 'Afstemning',
+ 'Reports' => 'Rapporter',
+ 'SIC' => 'SIC',
+ 'Sale' => 'Salg',
+ 'Sales Invoice' => 'Salgsfaktura',
+ 'Sales Invoices' => 'Salgsfakturaer',
+ 'Sales Order' => 'Salgsordre',
+ 'Sales Orders' => 'Salgsordrer',
+ 'Save to File' => 'Gem i fil',
+ 'Search' => 'Søg',
+ 'Send by E-Mail' => 'Sendt med epost',
+ 'Services' => 'Tjenester',
+ 'Ship' => 'Afsend',
+ 'Shipping' => 'Afsendelse',
+ 'Statement' => 'Opgørelse',
+ 'Stock Assembly' => 'Lagr sammensætning',
+ 'Stylesheet' => 'Stilark',
+ 'System' => 'System',
+ 'Tax collected' => 'Skat opkrævet',
+ 'Tax paid' => 'Skat betalt',
+ 'Text Templates' => 'Skabeloner for tekst',
+ 'Transactions' => 'Posteringer',
+ 'Transfer' => 'Overførsel',
+ 'Transfer Inventory' => 'Oversigt over overførsler',
+ 'Translations' => 'Oversættelser',
+ 'Trial Balance' => 'Foreløbig status',
+ 'Type of Business' => 'Type forretning',
+ 'Vendor Invoice' => 'Indkøbsfaktura',
+ 'Vendors' => 'Leverandører',
+ 'Version' => 'Version',
+ 'Warehouses' => 'Varehuse',
+ 'Work Order' => 'Arbejdsnummer',
+ 'Work Orders' => 'Arbejdsordrer',
+ 'Yearend' => 'Årsslutning',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/dk/oe b/locale/dk/oe
new file mode 100755
index 00000000..2bee7f41
--- /dev/null
+++ b/locale/dk/oe
@@ -0,0 +1,319 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Konto-menu',
+ 'Add Exchange Rate' => 'Ny vekselkurs',
+ 'Add Purchase Order' => 'Ny indkøbsordre',
+ 'Add Quotation' => 'Nyt tilbud',
+ 'Add Request for Quotation' => 'Nyt tilbudsønske',
+ 'Add Sales Invoice' => 'Ny salgsfaktura',
+ 'Add Sales Order' => 'Ny salgsordre',
+ 'Add Vendor Invoice' => 'Ny indkøbsfaktura',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Beløb',
+ 'Apr' => 'apr',
+ 'April' => 'april',
+ 'Are you sure you want to delete Order Number' => 'Er du sikker på at du vil fjerne ordrenummer',
+ 'Are you sure you want to delete Quotation Number' => 'Er du sikker på at du vil slette tilbudsnummer',
+ 'Attachment' => 'Bilag',
+ 'Aug' => 'aug',
+ 'August' => 'august',
+ 'Bcc' => 'Blind kopi',
+ 'Billing Address' => 'Fakturaadresse',
+ 'Bin' => 'Varelager',
+ 'Bin List' => 'Sendings-list',
+ 'Business' => 'Forretning',
+ 'C' => 'C',
+ 'Cannot delete order!' => 'Kan ikke slette ordre!',
+ 'Cannot delete quotation!' => 'Kan ikke slette tilbud',
+ 'Cannot save order!' => 'Kan ikke gemme ordre!',
+ 'Cannot save quotation!' => 'Kan ikke gemme tilbud',
+ 'Cc' => 'Kopi',
+ 'City' => 'By',
+ 'Closed' => 'Afsluttet',
+ 'Company Name' => 'Firmanavn',
+ 'Confirm!' => 'Bekræft!',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Fortsæt',
+ 'Copies' => 'Kopier',
+ 'Cost' => 'Udgifter',
+ 'Could not save!' => 'Kunne ikke gemme!',
+ 'Could not transfer Inventory!' => 'Kunne ikke overføre lager!',
+ 'Country' => 'Land',
+ 'Credit Limit' => 'Kreditgrænse',
+ 'Curr' => 'Val',
+ 'Currency' => 'Valuta',
+ 'Current' => 'Aktuel',
+ 'Customer' => 'Kunde',
+ 'Customer Number' => 'Kundenummer',
+ 'Customer missing!' => 'Kunde mangler!',
+ 'Customer not on file!' => 'Kunde ikke i databasen!',
+ 'Date' => 'Dato',
+ 'Date Received' => 'Modtagelsesdato',
+ 'Date received missing!' => 'Modtagelsesdato mangler!',
+ 'Dec' => 'dec',
+ 'December' => 'december',
+ 'Delete' => 'Fjern',
+ 'Delivery Date' => 'Leveringsdato',
+ 'Department' => 'Afdeling',
+ 'Description' => 'Beskrivelse',
+ 'Done' => 'Færdig',
+ 'E-mail' => 'E-post',
+ 'E-mail address missing!' => 'E-post-adresse mangler!',
+ 'E-mailed' => 'Sendt per e-post',
+ 'Edit Purchase Order' => 'Redigér indkøbsordre',
+ 'Edit Quotation' => 'Redigér tilbud',
+ 'Edit Request for Quotation' => 'Redigér ønske om tilbud',
+ 'Edit Sales Order' => 'Redigér salgsordre',
+ 'Employee' => 'Medarbejder',
+ 'Exchange Rate' => 'Vekselkurs',
+ 'Exchange rate missing!' => 'Vekselkurs mangler!',
+ 'Extended' => 'Udvidet',
+ 'Fax' => 'Fax',
+ 'Feb' => 'feb',
+ 'February' => 'februar',
+ 'From' => 'Fra',
+ 'Group' => 'Gruppe',
+ 'ID' => 'ID',
+ 'In-line' => 'Indlejret',
+ 'Include in Report' => 'Inkludér i rapport',
+ 'Internal Notes' => 'Interne noter',
+ 'Inventory saved!' => 'Lager gemt!',
+ 'Inventory transferred!' => 'Lager overført!',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date missing!' => 'Fakturadato mangler!',
+ 'Invoice Number missing!' => 'Fakturanummer mangler!',
+ 'Item not on file!' => 'Enkeltdel er ikke i databasen!',
+ 'Jan' => 'jan',
+ 'January' => 'januar',
+ 'Jul' => 'jul',
+ 'July' => 'juli',
+ 'Jun' => 'jun',
+ 'June' => 'juni',
+ 'Manager' => 'Leder',
+ 'Mar' => 'mar',
+ 'March' => 'marts',
+ 'May' => 'maj',
+ 'May ' => 'maj ',
+ 'Message' => 'Besked',
+ 'Month' => 'Måned',
+ 'No.' => 'Nummer',
+ 'Notes' => 'Bemærkninger',
+ 'Nothing entered!' => 'Ingenting indtastet!',
+ 'Nothing selected!' => 'Ingenting valgt!',
+ 'Nothing to transfer!' => 'Intet at overføre!',
+ 'Nov' => 'nov',
+ 'November' => 'november',
+ 'Number' => 'Nummer',
+ 'Number missing in Row' => 'Tal mangler i række',
+ 'O' => 'O',
+ 'Oct' => 'okt',
+ 'October' => 'oktober',
+ 'Open' => 'Åbn',
+ 'Order' => 'Ordre',
+ 'Order Date' => 'Ordredato',
+ 'Order Date missing!' => 'Ordredato mangler',
+ 'Order Number' => 'Ordrenummer',
+ 'Order Number missing!' => 'Ordrenummer mangler',
+ 'Order deleted!' => 'Ordre slettet',
+ 'Order saved!' => 'Ordre gemt',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Følgeseddel',
+ 'Packing List Date missing!' => 'Dato for pakkeliste mangler!',
+ 'Packing List Number missing!' => 'Nummer for pakkeliste mangler!',
+ 'Part' => 'Vare',
+ 'Period' => 'Periode',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Pakkeliste',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Pris',
+ 'Print' => 'Udskriv',
+ 'Print and Save' => 'Udskriv og gem',
+ 'Printed' => 'Udskrevet',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Projekt ikke i databasen!',
+ 'Purchase Order' => 'Indkøbsordre',
+ 'Purchase Orders' => 'Indkøbsordrer',
+ 'Qty' => 'Mængde',
+ 'Quarter' => 'Kvartal',
+ 'Quotation' => 'Tilbud',
+ 'Quotation ' => 'Tilbud ',
+ 'Quotation Date' => 'Tilbudsdato',
+ 'Quotation Date missing!' => 'Tilbudsdato mangler!',
+ 'Quotation Number' => 'Tilbudsnummer',
+ 'Quotation Number missing!' => 'Tilbudsnummer mangler!',
+ 'Quotation deleted!' => 'Tilbud slettet!',
+ 'Quotations' => 'Tilbud',
+ 'RFQ' => 'Tilbudsønske',
+ 'RFQ ' => 'Tilbudsønske ',
+ 'RFQ Number' => 'Nummer for tilbudsønske',
+ 'Recd' => 'Modtaget',
+ 'Receive Merchandise' => 'Modtagelse af varer',
+ 'Reference' => 'Reference',
+ 'Remaining' => 'Resterer',
+ 'Request for Quotation' => 'Ønske om tilbud',
+ 'Request for Quotations' => 'Ønske om tilbud',
+ 'Required by' => 'Bestilt af',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Salgsfaktura',
+ 'Sales Order' => 'Salgsordre',
+ 'Sales Orders' => 'Salgsordrer',
+ 'Salesperson' => 'Sælger',
+ 'Save' => 'Gem',
+ 'Save as new' => 'Gem som ny',
+ 'Screen' => 'Skærm',
+ 'Select from one of the names below' => 'Vælg en af navnene nedenfor',
+ 'Select from one of the projects below' => 'Vælg et af projekterne nedenfor',
+ 'Select postscript or PDF!' => 'Vælg postscript eller PDF',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Serial No.' => 'Serienummer',
+ 'Service' => 'Tjeneste',
+ 'Ship' => 'Afsend',
+ 'Ship Merchandise' => 'Afsend varer',
+ 'Ship to' => 'Send til',
+ 'Ship via' => 'Send via',
+ 'Shipping Address' => 'Afsendelsesadresse',
+ 'Shipping Date' => 'Afsendelsesdato',
+ 'Shipping Date missing!' => 'Afsendelsesdato mangler!',
+ 'Shipping Point' => 'Afsendelsessted',
+ 'Startdate' => 'Startdato',
+ 'State/Province' => 'Stat/provins',
+ 'Subject' => 'Emne',
+ 'Subtotal' => 'Subtotal',
+ 'Tax' => 'Afgift/Moms',
+ 'Tax Included' => 'Inkl. afgifter og moms',
+ 'Terms' => 'Netto',
+ 'To' => 'til',
+ 'Total' => 'I alt',
+ 'Trade Discount' => 'Handelsrabat',
+ 'Transfer' => 'Overførsel',
+ 'Transfer Inventory' => 'Oversigt over overførsler',
+ 'Transfer to' => 'Overfør til',
+ 'Translation not on file!' => 'Oversættelse ikke tilgængelig',
+ 'Unit' => 'Enhed',
+ 'Update' => 'Opdatér',
+ 'Valid until' => 'Gældende indtil',
+ 'Vendor' => 'Leverandør',
+ 'Vendor Invoice' => 'Indkøbsfaktura',
+ 'Vendor Number' => 'Leverandørnummer',
+ 'Vendor missing!' => 'Leverandør mangler!',
+ 'Vendor not on file!' => 'Leverandør ikke i databasen!',
+ 'Warehouse' => 'Varehus',
+ 'Warning!' => 'Advarsel!',
+ 'What type of item is this?' => 'Hvilken type ting er dette?',
+ 'Work Order' => 'Arbejdsnummer',
+ 'Year' => 'År',
+ 'Yes' => 'Ja',
+ 'days' => 'dage',
+ 'ea' => 'stk',
+ 'sent' => 'sendt',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'fortsæt' => 'continue',
+ 'fjern' => 'delete',
+ 'færdig' => 'done',
+ 'e_post' => 'e_mail',
+ 'udskriv' => 'print',
+ 'udskriv_og_gem' => 'print_and_save',
+ 'indkøbsordre' => 'purchase_order',
+ 'tilbud' => 'quotation',
+ 'tilbud_' => 'quotation_',
+ 'tilbudsønske' => 'rfq',
+ 'tilbudsønske_' => 'rfq_',
+ 'salgsfaktura' => 'sales_invoice',
+ 'salgsordre' => 'sales_order',
+ 'gem' => 'save',
+ 'gem_som_ny' => 'save_as_new',
+ 'send_til' => 'ship_to',
+ 'overførsel' => 'transfer',
+ 'opdatér' => 'update',
+ 'indkøbsfaktura' => 'vendor_invoice',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/dk/pe b/locale/dk/pe
new file mode 100755
index 00000000..4b1dc7ad
--- /dev/null
+++ b/locale/dk/pe
@@ -0,0 +1,141 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Konto-menu',
+ 'Active' => 'Aktiv',
+ 'Add' => 'Tilføj',
+ 'Add Group' => 'Ny gruppe',
+ 'Add Pricegroup' => 'Ny prisgruppe',
+ 'Add Project' => 'Nyt projekt',
+ 'Address' => 'Adresse',
+ 'All' => 'Alt',
+ 'Amount' => 'Beløb',
+ 'Assembly' => 'Sammensætning',
+ 'Bin' => 'Varelager',
+ 'Continue' => 'Fortsæt',
+ 'Current' => 'Aktuel',
+ 'Customer' => 'Kunde',
+ 'Customer missing!' => 'Kunde mangler!',
+ 'Customer not on file!' => 'Kunde ikke i databasen!',
+ 'Date' => 'Dato',
+ 'Delete' => 'Fjern',
+ 'Description' => 'Beskrivelse',
+ 'Description Translations' => 'Oversættelser af beskrivelse',
+ 'Detail' => 'Detalje',
+ 'Edit Description Translations' => 'Redigér oversættelser af beskrivelser',
+ 'Edit Group' => 'Redigér gruppe',
+ 'Edit Pricegroup' => 'Redigér prisgruppe',
+ 'Edit Project' => 'Redigér præferencer for',
+ 'Employee' => 'Medarbejder',
+ 'Enddate' => 'Slutdato',
+ 'From' => 'Fra',
+ 'Group' => 'Gruppe',
+ 'Group Translations' => 'Gruppeoversættelser',
+ 'Group deleted!' => 'Gruppe slettet!',
+ 'Group missing!' => 'Gruppe mangler!',
+ 'Group saved!' => 'Gruppe gemt!',
+ 'Groups' => 'Grupper',
+ 'Income' => 'Indtægt',
+ 'Language' => 'Sprog',
+ 'Languages not defined!' => 'Sprog ikke definerede!',
+ 'Link Accounts' => 'Forbind konti',
+ 'List Price' => 'Listepris',
+ 'Month' => 'Måned',
+ 'Notes' => 'Bemærkninger',
+ 'Nothing selected!' => 'Ingenting valgt!',
+ 'Number' => 'Nummer',
+ 'Orphaned' => 'Fritstående',
+ 'Period' => 'Periode',
+ 'Pricegroup' => 'Prisgruppe',
+ 'Pricegroup deleted!' => 'Prisgruppe slettet!',
+ 'Pricegroup missing!' => 'Prisgruppe mangler!',
+ 'Pricegroup saved!' => 'Prisgruppe gemt!',
+ 'Pricegroups' => 'Prisgrupper',
+ 'Project' => 'Projekt',
+ 'Project Description Translations' => 'Oversættelser af projektbeskrivelse',
+ 'Project Number' => 'Projektnummer',
+ 'Project deleted!' => 'Projekt slettet!',
+ 'Project saved!' => 'Projekt gemt!',
+ 'Projects' => 'Projekter',
+ 'Qty' => 'Mængde',
+ 'Quarter' => 'Kvartal',
+ 'Save' => 'Gem',
+ 'Select from one of the names below' => 'Vælg en af navnene nedenfor',
+ 'Sell Price' => 'Salgspris',
+ 'Startdate' => 'Startdato',
+ 'Summary' => 'Oversigt',
+ 'Tax' => 'Afgift/Moms',
+ 'To' => 'til',
+ 'Translation' => 'Oversættelse',
+ 'Translation deleted!' => 'Oversættelser slettet!',
+ 'Translations saved!' => 'Oversættelser gemt!',
+ 'Unit' => 'Enhed',
+ 'Update' => 'Opdatér',
+ 'Updated' => 'Opdateret',
+ 'Vendor' => 'Leverandør',
+ 'Vendor not on file!' => 'Leverandør ikke i databasen!',
+ 'Weight' => 'Vægt',
+ 'Year' => 'År',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'ny_gruppe' => 'add_group',
+ 'ny_prisgruppe' => 'add_pricegroup',
+ 'nyt_projekt' => 'add_project',
+ 'fortsæt' => 'continue',
+ 'fjern' => 'delete',
+ 'gem' => 'save',
+ 'opdatér' => 'update',
+};
+
+1;
+
diff --git a/locale/dk/pos b/locale/dk/pos
new file mode 100755
index 00000000..52ca4d0d
--- /dev/null
+++ b/locale/dk/pos
@@ -0,0 +1,80 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Konto-menu',
+ 'Add POS Invoice' => 'Ny POS faktura',
+ 'Amount' => 'Beløb',
+ 'Business' => 'Forretning',
+ 'Cannot post transaction!' => 'Kan ikke bogføre postering!',
+ 'Change' => 'Ændr',
+ 'Continue' => 'Fortsæt',
+ 'Credit Limit' => 'Kreditgrænse',
+ 'Currency' => 'Valuta',
+ 'Current' => 'Aktuel',
+ 'Customer' => 'Kunde',
+ 'Customer missing!' => 'Kunde mangler!',
+ 'Delete' => 'Fjern',
+ 'Department' => 'Afdeling',
+ 'Description' => 'Beskrivelse',
+ 'Edit POS Invoice' => 'Redigér POS faktura',
+ 'Exchange Rate' => 'Vekselkurs',
+ 'Exchange rate missing!' => 'Vekselkurs mangler!',
+ 'Extended' => 'Udvidet',
+ 'From' => 'Fra',
+ 'Language' => 'Sprog',
+ 'Memo' => 'Note',
+ 'Month' => 'Måned',
+ 'Number' => 'Nummer',
+ 'Open' => 'Åbn',
+ 'Period' => 'Periode',
+ 'Post' => 'Bogfør',
+ 'Posted!' => 'Bogført!',
+ 'Price' => 'Pris',
+ 'Print' => 'Udskriv',
+ 'Print and Post' => 'Udskriv og send',
+ 'Printed' => 'Udskrevet',
+ 'Qty' => 'Mængde',
+ 'Quarter' => 'Kvartal',
+ 'Receipts' => 'Kvitteringer',
+ 'Record in' => 'Bogfør på',
+ 'Remaining' => 'Resterer',
+ 'Salesperson' => 'Sælger',
+ 'Screen' => 'Skærm',
+ 'Source' => 'Bilag',
+ 'Subtotal' => 'Subtotal',
+ 'Tax Included' => 'Inkl. afgifter og moms',
+ 'To' => 'til',
+ 'Total' => 'I alt',
+ 'Trade Discount' => 'Handelsrabat',
+ 'Unit' => 'Enhed',
+ 'Update' => 'Opdatér',
+ 'Year' => 'År',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'fortsæt' => 'continue',
+ 'fjern' => 'delete',
+ 'bogfør' => 'post',
+ 'udskriv' => 'print',
+ 'udskriv_og_send' => 'print_and_post',
+ 'opdatér' => 'update',
+};
+
+1;
+
diff --git a/locale/dk/ps b/locale/dk/ps
new file mode 100755
index 00000000..4566df13
--- /dev/null
+++ b/locale/dk/ps
@@ -0,0 +1,356 @@
+$self{texts} = {
+ 'AP Aging' => 'Aldersfordeling',
+ 'AP Outstanding' => 'Udestående kreditorer',
+ 'AP Transaction' => 'Leverandørfaktura',
+ 'AP Transactions' => 'Leverandørfakturaer',
+ 'AR Aging' => 'Aldersfordeling',
+ 'AR Outstanding' => 'Udestående debitorer',
+ 'AR Transaction' => 'Debitorpostering',
+ 'AR Transactions' => 'Debitorposteringer',
+ 'Account' => 'Konto',
+ 'Account Number' => 'Kontonummer',
+ 'Accounting Menu' => 'Konto-menu',
+ 'Accounts' => 'Konti',
+ 'Accrual' => 'Påløbet',
+ 'Add AP Transaction' => 'Ny kreditorpostering',
+ 'Add AR Transaction' => 'Ny debitorpostering',
+ 'Add POS Invoice' => 'Ny POS faktura',
+ 'Add Purchase Order' => 'Ny indkøbsordre',
+ 'Add Quotation' => 'Nyt tilbud',
+ 'Add Request for Quotation' => 'Nyt tilbudsønske',
+ 'Add Sales Invoice' => 'Ny salgsfaktura',
+ 'Add Sales Order' => 'Ny salgsordre',
+ 'Address' => 'Adresse',
+ 'All Accounts' => 'Alle konti',
+ 'Amount' => 'Beløb',
+ 'Amount Due' => 'Forfaldent',
+ 'Apr' => 'apr',
+ 'April' => 'april',
+ 'Are you sure you want to delete Invoice Number' => 'Er du sikker på du vil fjerne fakturanummer',
+ 'Are you sure you want to delete Transaction' => 'Er du sikker på du vil fjerne postering',
+ 'Attachment' => 'Bilag',
+ 'Aug' => 'aug',
+ 'August' => 'august',
+ 'Balance' => 'Balance',
+ 'Balance Sheet' => 'Status',
+ 'Bcc' => 'Blind kopi',
+ 'Billing Address' => 'Fakturaadresse',
+ 'Bin' => 'Varelager',
+ 'Bin List' => 'Sendings-list',
+ 'Business' => 'Forretning',
+ 'Cannot delete invoice!' => 'Kan ikke slette faktura!',
+ 'Cannot delete transaction!' => 'Kan ikke slette postering!',
+ 'Cannot post invoice for a closed period!' => 'Kan ikke bogføre faktura for en afsluttet periode!',
+ 'Cannot post invoice!' => 'Kan ikke bogføre faktura!',
+ 'Cannot post payment for a closed period!' => 'Kan ikke bogføre betaling for en afsluttet periode',
+ 'Cannot post transaction for a closed period!' => 'Kan ikke bogføre postering for en afsluttet periode!',
+ 'Cannot post transaction!' => 'Kan ikke bogføre postering!',
+ 'Cash' => 'Kontanter',
+ 'Cc' => 'Kopi',
+ 'Change' => 'Ændr',
+ 'Check' => 'Check',
+ 'City' => 'By',
+ 'Closed' => 'Afsluttet',
+ 'Company Name' => 'Firmanavn',
+ 'Compare to' => 'Sammenlign med',
+ 'Confirm!' => 'Bekræft!',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Fortsæt',
+ 'Copies' => 'Kopier',
+ 'Country' => 'Land',
+ 'Credit' => 'Kredit',
+ 'Credit Limit' => 'Kreditgrænse',
+ 'Curr' => 'Val',
+ 'Currency' => 'Valuta',
+ 'Current' => 'Aktuel',
+ 'Current Earnings' => 'Aktuelle indtægter',
+ 'Customer' => 'Kunde',
+ 'Customer Number' => 'Kundenummer',
+ 'Customer missing!' => 'Kunde mangler!',
+ 'Customer not on file!' => 'Kunde ikke i databasen!',
+ 'Date' => 'Dato',
+ 'Date Paid' => 'Betalingsdato',
+ 'Debit' => 'Debet',
+ 'Dec' => 'dec',
+ 'December' => 'december',
+ 'Decimalplaces' => 'Decimalpladser',
+ 'Delete' => 'Fjern',
+ 'Delivery Date' => 'Leveringsdato',
+ 'Department' => 'Afdeling',
+ 'Description' => 'Beskrivelse',
+ 'Detail' => 'Detalje',
+ 'Due Date' => 'Forfaldsdato',
+ 'Due Date missing!' => 'Forfaldsdato mangler!',
+ 'E-mail' => 'E-post',
+ 'E-mail Statement to' => 'Send opgørelse til',
+ 'E-mail address missing!' => 'E-post-adresse mangler!',
+ 'E-mailed' => 'Sendt per e-post',
+ 'Edit AP Transaction' => 'Redigér kreditorpostering',
+ 'Edit AR Transaction' => 'Redigér debitorpostering',
+ 'Edit POS Invoice' => 'Redigér POS faktura',
+ 'Edit Sales Invoice' => 'Redigér salgsfaktura',
+ 'Employee' => 'Medarbejder',
+ 'Exch' => 'Vxl',
+ 'Exchange Rate' => 'Vekselkurs',
+ 'Exchange rate for payment missing!' => 'Valutakurs for betaling mangler!',
+ 'Exchange rate missing!' => 'Vekselkurs mangler!',
+ 'Extended' => 'Udvidet',
+ 'Fax' => 'Fax',
+ 'Feb' => 'feb',
+ 'February' => 'februar',
+ 'From' => 'Fra',
+ 'GIFI' => 'GIFI',
+ 'Group' => 'Gruppe',
+ 'Heading' => 'Overskrift',
+ 'ID' => 'ID',
+ 'In-line' => 'Indlejret',
+ 'Include Exchange Rate Difference' => 'Inkludér difference i vekselkurs',
+ 'Include in Report' => 'Inkludér i rapport',
+ 'Income Statement' => 'Driftsregnskab',
+ 'Internal Notes' => 'Interne noter',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date' => 'Fakturadato',
+ 'Invoice Date missing!' => 'Fakturadato mangler!',
+ 'Invoice Number' => 'Fakturanummer',
+ 'Invoice Number missing!' => 'Fakturanummer mangler!',
+ 'Invoice deleted!' => 'Faktura slettet!',
+ 'Item not on file!' => 'Enkeltdel er ikke i databasen!',
+ 'Jan' => 'jan',
+ 'January' => 'januar',
+ 'Jul' => 'jul',
+ 'July' => 'juli',
+ 'Jun' => 'jun',
+ 'June' => 'juni',
+ 'Language' => 'Sprog',
+ 'Manager' => 'Leder',
+ 'Mar' => 'mar',
+ 'March' => 'marts',
+ 'May' => 'maj',
+ 'May ' => 'maj ',
+ 'Memo' => 'Note',
+ 'Message' => 'Besked',
+ 'Method' => 'Metode',
+ 'Month' => 'Måned',
+ 'N/A' => 'I/T',
+ 'No.' => 'Nummer',
+ 'Non-taxable Purchases' => 'Ikke-beskattede køb',
+ 'Non-taxable Sales' => 'Ikke-beskattede salg',
+ 'Notes' => 'Bemærkninger',
+ 'Nothing selected!' => 'Ingenting valgt!',
+ 'Nothing to print!' => 'Ingenting at udskrive!',
+ 'Nov' => 'nov',
+ 'November' => 'november',
+ 'Number' => 'Nummer',
+ 'Number missing in Row' => 'Tal mangler i række',
+ 'Oct' => 'okt',
+ 'October' => 'oktober',
+ 'Open' => 'Åbn',
+ 'Order' => 'Ordre',
+ 'Order Date missing!' => 'Ordredato mangler',
+ 'Order Number' => 'Ordrenummer',
+ 'Order Number missing!' => 'Ordrenummer mangler',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Følgeseddel',
+ 'Packing List Date missing!' => 'Dato for pakkeliste mangler!',
+ 'Packing List Number missing!' => 'Nummer for pakkeliste mangler!',
+ 'Paid' => 'Betalt',
+ 'Part' => 'Vare',
+ 'Payment date missing!' => 'Betalingsdato mangler!',
+ 'Payments' => 'Betalinger',
+ 'Period' => 'Periode',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Pakkeliste',
+ 'Post' => 'Bogfør',
+ 'Post as new' => 'Bogfør som ny',
+ 'Posted!' => 'Bogført!',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Pris',
+ 'Print' => 'Udskriv',
+ 'Print and Post' => 'Udskriv og send',
+ 'Printed' => 'Udskrevet',
+ 'Project' => 'Projekt',
+ 'Project Number' => 'Projektnummer',
+ 'Project Transactions' => 'Projektposteringer',
+ 'Project not on file!' => 'Projekt ikke i databasen!',
+ 'Purchase Order' => 'Indkøbsordre',
+ 'Qty' => 'Mængde',
+ 'Quarter' => 'Kvartal',
+ 'Quotation' => 'Tilbud',
+ 'Quotation Date missing!' => 'Tilbudsdato mangler!',
+ 'Quotation Number missing!' => 'Tilbudsnummer mangler!',
+ 'Recd' => 'Modtaget',
+ 'Receipt' => 'Kvittering',
+ 'Receipts' => 'Kvitteringer',
+ 'Record in' => 'Bogfør på',
+ 'Reference' => 'Reference',
+ 'Remaining' => 'Resterer',
+ 'Report for' => 'Rapport for',
+ 'Required by' => 'Bestilt af',
+ 'SKU' => 'SKU',
+ 'Sales Invoice.' => 'Salgsfaktura.',
+ 'Sales Order' => 'Salgsordre',
+ 'Salesperson' => 'Sælger',
+ 'Screen' => 'Skærm',
+ 'Select all' => 'Vælg alt',
+ 'Select from one of the names below' => 'Vælg en af navnene nedenfor',
+ 'Select from one of the projects below' => 'Vælg et af projekterne nedenfor',
+ 'Select payment' => 'Vælg betaling',
+ 'Select postscript or PDF!' => 'Vælg postscript eller PDF',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Serial No.' => 'Serienummer',
+ 'Service' => 'Tjeneste',
+ 'Ship' => 'Afsend',
+ 'Ship to' => 'Send til',
+ 'Ship via' => 'Send via',
+ 'Shipping Address' => 'Afsendelsesadresse',
+ 'Shipping Point' => 'Afsendelsessted',
+ 'Source' => 'Bilag',
+ 'Standard' => 'Standard',
+ 'Startdate' => 'Startdato',
+ 'State/Province' => 'Stat/provins',
+ 'Statement' => 'Opgørelse',
+ 'Statement sent to' => 'Opgørelse sendt til',
+ 'Statements sent to printer!' => 'Opgørelser sendt til printer',
+ 'Subject' => 'Emne',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Oversigt',
+ 'Tax' => 'Afgift/Moms',
+ 'Tax Included' => 'Inkl. afgifter og moms',
+ 'Tax collected' => 'Skat opkrævet',
+ 'Tax paid' => 'Skat betalt',
+ 'Till' => 'Indtil',
+ 'To' => 'til',
+ 'Total' => 'I alt',
+ 'Trade Discount' => 'Handelsrabat',
+ 'Transaction' => 'Postering',
+ 'Transaction deleted!' => 'Postering slettet!',
+ 'Transaction posted!' => 'Postering bogført!',
+ 'Translation not on file!' => 'Oversættelse ikke tilgængelig',
+ 'Trial Balance' => 'Foreløbig status',
+ 'Unit' => 'Enhed',
+ 'Update' => 'Opdatér',
+ 'Vendor' => 'Leverandør',
+ 'Vendor Invoice.' => 'Indkøbsfaktura.',
+ 'Vendor Number' => 'Leverandørnummer',
+ 'Vendor missing!' => 'Leverandør mangler!',
+ 'Vendor not on file!' => 'Leverandør ikke i databasen!',
+ 'Warning!' => 'Advarsel!',
+ 'What type of item is this?' => 'Hvilken type ting er dette?',
+ 'Work Order' => 'Arbejdsnummer',
+ 'Year' => 'År',
+ 'Yes' => 'Ja',
+ 'as at' => 'som ved',
+ 'ea' => 'stk',
+ 'for Period' => 'for perioden',
+ 'posted!' => 'bogført!',
+ 'sent' => 'sendt',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'leverandørfaktura' => 'ap_transaction',
+ 'debitorpostering' => 'ar_transaction',
+ 'fortsæt' => 'continue',
+ 'fjern' => 'delete',
+ 'e_post' => 'e_mail',
+ 'bogfør' => 'post',
+ 'bogfør_som_ny' => 'post_as_new',
+ 'udskriv' => 'print',
+ 'udskriv_og_send' => 'print_and_post',
+ 'salgsfaktura_' => 'sales_invoice_',
+ 'salgsordre' => 'sales_order',
+ 'vælg_alt' => 'select_all',
+ 'send_til' => 'ship_to',
+ 'opdatér' => 'update',
+ 'indkøbsfaktura_' => 'vendor_invoice_',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/dk/pw b/locale/dk/pw
new file mode 100755
index 00000000..11cde3a9
--- /dev/null
+++ b/locale/dk/pw
@@ -0,0 +1,12 @@
+$self{texts} = {
+ 'Continue' => 'Fortsæt',
+ 'Password' => 'Adgangskode',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'fortsæt' => 'continue',
+};
+
+1;
+
diff --git a/locale/dk/rc b/locale/dk/rc
new file mode 100755
index 00000000..21beffe6
--- /dev/null
+++ b/locale/dk/rc
@@ -0,0 +1,79 @@
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Konto-menu',
+ 'Apr' => 'apr',
+ 'April' => 'april',
+ 'Aug' => 'aug',
+ 'August' => 'august',
+ 'Balance' => 'Balance',
+ 'Beginning Balance' => 'Åbningsbalance',
+ 'Cleared' => 'Udlignet',
+ 'Continue' => 'Fortsæt',
+ 'Credit' => 'Kredit',
+ 'Current' => 'Aktuel',
+ 'Date' => 'Dato',
+ 'Debit' => 'Debet',
+ 'Dec' => 'dec',
+ 'December' => 'december',
+ 'Description' => 'Beskrivelse',
+ 'Detail' => 'Detalje',
+ 'Difference' => 'Difference',
+ 'Done' => 'Færdig',
+ 'Feb' => 'feb',
+ 'February' => 'februar',
+ 'From' => 'Fra',
+ 'Include Exchange Rate Difference' => 'Inkludér difference i vekselkurs',
+ 'Jan' => 'jan',
+ 'January' => 'januar',
+ 'Jul' => 'jul',
+ 'July' => 'juli',
+ 'Jun' => 'jun',
+ 'June' => 'juni',
+ 'Mar' => 'mar',
+ 'March' => 'marts',
+ 'May' => 'maj',
+ 'May ' => 'maj ',
+ 'Month' => 'Måned',
+ 'Nov' => 'nov',
+ 'November' => 'november',
+ 'Oct' => 'okt',
+ 'October' => 'oktober',
+ 'Out of balance!' => 'Ikke i balance!',
+ 'Outstanding' => 'Udestående',
+ 'Period' => 'Periode',
+ 'Quarter' => 'Kvartal',
+ 'R' => 'R',
+ 'Reconciliation' => 'Afstemning',
+ 'Reconciliation Report' => 'Afstemningsrapport',
+ 'Select all' => 'Vælg alt',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Source' => 'Bilag',
+ 'Statement Balance' => 'Balanceopgørelse',
+ 'Summary' => 'Oversigt',
+ 'To' => 'til',
+ 'Update' => 'Opdatér',
+ 'Year' => 'År',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'fortsæt' => 'continue',
+ 'færdig' => 'done',
+ 'vælg_alt' => 'select_all',
+ 'opdatér' => 'update',
+};
+
+1;
+
diff --git a/locale/dk/rp b/locale/dk/rp
new file mode 100755
index 00000000..08dc5247
--- /dev/null
+++ b/locale/dk/rp
@@ -0,0 +1,179 @@
+$self{texts} = {
+ 'AP Aging' => 'Aldersfordeling',
+ 'AR Aging' => 'Aldersfordeling',
+ 'Account' => 'Konto',
+ 'Account Number' => 'Kontonummer',
+ 'Accounting Menu' => 'Konto-menu',
+ 'Accounts' => 'Konti',
+ 'Accrual' => 'Påløbet',
+ 'Address' => 'Adresse',
+ 'All Accounts' => 'Alle konti',
+ 'Amount' => 'Beløb',
+ 'Apr' => 'apr',
+ 'April' => 'april',
+ 'Attachment' => 'Bilag',
+ 'Aug' => 'aug',
+ 'August' => 'august',
+ 'Balance' => 'Balance',
+ 'Balance Sheet' => 'Status',
+ 'Bcc' => 'Blind kopi',
+ 'Cash' => 'Kontanter',
+ 'Cc' => 'Kopi',
+ 'Compare to' => 'Sammenlign med',
+ 'Continue' => 'Fortsæt',
+ 'Copies' => 'Kopier',
+ 'Credit' => 'Kredit',
+ 'Curr' => 'Val',
+ 'Current' => 'Aktuel',
+ 'Current Earnings' => 'Aktuelle indtægter',
+ 'Customer' => 'Kunde',
+ 'Customer not on file!' => 'Kunde ikke i databasen!',
+ 'Date' => 'Dato',
+ 'Debit' => 'Debet',
+ 'Dec' => 'dec',
+ 'December' => 'december',
+ 'Decimalplaces' => 'Decimalpladser',
+ 'Department' => 'Afdeling',
+ 'Description' => 'Beskrivelse',
+ 'Detail' => 'Detalje',
+ 'Due Date' => 'Forfaldsdato',
+ 'E-mail' => 'E-post',
+ 'E-mail Statement to' => 'Send opgørelse til',
+ 'E-mail address missing!' => 'E-post-adresse mangler!',
+ 'Feb' => 'feb',
+ 'February' => 'februar',
+ 'From' => 'Fra',
+ 'GIFI' => 'GIFI',
+ 'Heading' => 'Overskrift',
+ 'ID' => 'ID',
+ 'In-line' => 'Indlejret',
+ 'Include Exchange Rate Difference' => 'Inkludér difference i vekselkurs',
+ 'Include in Report' => 'Inkludér i rapport',
+ 'Income Statement' => 'Driftsregnskab',
+ 'Invoice' => 'Faktura',
+ 'Jan' => 'jan',
+ 'January' => 'januar',
+ 'Jul' => 'jul',
+ 'July' => 'juli',
+ 'Jun' => 'jun',
+ 'June' => 'juni',
+ 'Language' => 'Sprog',
+ 'Mar' => 'mar',
+ 'March' => 'marts',
+ 'May' => 'maj',
+ 'May ' => 'maj ',
+ 'Memo' => 'Note',
+ 'Message' => 'Besked',
+ 'Method' => 'Metode',
+ 'Month' => 'Måned',
+ 'N/A' => 'I/T',
+ 'Non-taxable Purchases' => 'Ikke-beskattede køb',
+ 'Non-taxable Sales' => 'Ikke-beskattede salg',
+ 'Nothing selected!' => 'Ingenting valgt!',
+ 'Nov' => 'nov',
+ 'November' => 'november',
+ 'Number' => 'Nummer',
+ 'Oct' => 'okt',
+ 'October' => 'oktober',
+ 'Order' => 'Ordre',
+ 'PDF' => 'PDF',
+ 'Payments' => 'Betalinger',
+ 'Period' => 'Periode',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Udskriv',
+ 'Project' => 'Projekt',
+ 'Project Number' => 'Projektnummer',
+ 'Project Transactions' => 'Projektposteringer',
+ 'Project not on file!' => 'Projekt ikke i databasen!',
+ 'Quarter' => 'Kvartal',
+ 'Receipts' => 'Kvitteringer',
+ 'Reference' => 'Reference',
+ 'Report for' => 'Rapport for',
+ 'Salesperson' => 'Sælger',
+ 'Screen' => 'Skærm',
+ 'Select all' => 'Vælg alt',
+ 'Select from one of the names below' => 'Vælg en af navnene nedenfor',
+ 'Select from one of the projects below' => 'Vælg et af projekterne nedenfor',
+ 'Select postscript or PDF!' => 'Vælg postscript eller PDF',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Source' => 'Bilag',
+ 'Standard' => 'Standard',
+ 'Startdate' => 'Startdato',
+ 'Statement' => 'Opgørelse',
+ 'Statement sent to' => 'Opgørelse sendt til',
+ 'Statements sent to printer!' => 'Opgørelser sendt til printer',
+ 'Subject' => 'Emne',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Oversigt',
+ 'Tax' => 'Afgift/Moms',
+ 'Tax collected' => 'Skat opkrævet',
+ 'Tax paid' => 'Skat betalt',
+ 'Till' => 'Indtil',
+ 'To' => 'til',
+ 'Total' => 'I alt',
+ 'Trial Balance' => 'Foreløbig status',
+ 'Vendor' => 'Leverandør',
+ 'Vendor not on file!' => 'Leverandør ikke i databasen!',
+ 'Warning!' => 'Advarsel!',
+ 'Year' => 'År',
+ 'as at' => 'som ved',
+ 'for Period' => 'for perioden',
+ 'sent' => 'sendt',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'fortsæt' => 'continue',
+ 'e_post' => 'e_mail',
+ 'udskriv' => 'print',
+ 'vælg_alt' => 'select_all',
+};
+
+1;
+
diff --git a/locale/ec/COPYING b/locale/ec/COPYING
new file mode 100755
index 00000000..406c3f93
--- /dev/null
+++ b/locale/ec/COPYING
@@ -0,0 +1,23 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2004
+#
+# Spanish (Ecuador) texts:
+#
+# Author: Technical <tech@mundomovil.us>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/ec/LANGUAGE b/locale/ec/LANGUAGE
new file mode 100755
index 00000000..0efeb654
--- /dev/null
+++ b/locale/ec/LANGUAGE
@@ -0,0 +1 @@
+Spanish/Ecuador
diff --git a/locale/ec/Num2text b/locale/ec/Num2text
new file mode 100755
index 00000000..88ffe737
--- /dev/null
+++ b/locale/ec/Num2text
@@ -0,0 +1,212 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (C) 2002
+#
+# Author: Dieter Simader
+# Email: dsimader@sql-ledger.org
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+# Language: Spanish
+# Contributors: John Christian Stoddart
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#======================================================================
+
+
+sub init {
+ my $self = shift;
+
+ %{ $self->{numbername} } =
+ (0 => 'cero',
+ 1 => 'un',
+ '1o' => 'uno',
+ 2 => 'dos',
+ 3 => 'tres',
+ 4 => 'cuatro',
+ 5 => 'cinco',
+ 6 => 'seis',
+ 7 => 'siete',
+ 8 => 'ocho',
+ 9 => 'nueve',
+ 10 => 'diez',
+ 11 => 'once',
+ '11o' => 'once',
+ 12 => 'doce',
+ 13 => 'trece',
+ 14 => 'catorce',
+ 15 => 'quince',
+ 16 => 'dieciséis',
+ 17 => 'diecisiete',
+ 18 => 'dieciocho',
+ 19 => 'diecinueve',
+ 20 => 'veinte',
+ 21 => 'veintiún',
+ '21o' => 'veintiuno',
+ 22 => 'veintidós',
+ 23 => 'veintitrés',
+ 24 => 'veinticuatro',
+ 25 => 'veinticinco',
+ 26 => 'veintiséis',
+ 27 => 'veintisiete',
+ 28 => 'veintiocho',
+ 29 => 'veintinueve',
+ 30 => 'treinta',
+ 40 => 'cuarenta',
+ 50 => 'cincuenta',
+ 60 => 'sesenta',
+ 70 => 'setenta',
+ 80 => 'ochenta',
+ 90 => 'noventa',
+ 500 => 'quinientos',
+ 700 => 'setecientos',
+ 900 => 'novecientos',
+ 10**2 => 'ciento',
+ 10**3 => 'mil',
+ 10**6 => 'millón',
+ 10**12 => 'billón',
+ );
+
+}
+
+
+sub num2text {
+ my ($self, $amount) = @_;
+
+ return $self->{numbername}{0} unless $amount;
+
+ my @textnumber = ();
+
+ # split amount into chunks of 3
+ my @num = reverse split //, abs($amount);
+ my @numblock = ();
+ my $stripun = 0;
+ my @a = ();
+ my $i;
+
+ while (@num) {
+ @a = ();
+ for (1 .. 3) {
+ push @a, shift @num;
+ }
+ push @numblock, join / /, reverse @a;
+ }
+
+ # special case for 1000
+ if ($numblock[1] eq '1' && $numblock[0] gt '000') {
+ # remove first array element from textnumber
+ $stripun = 1;
+ }
+
+ while (@numblock) {
+
+ $i = $#numblock;
+ @num = split //, $numblock[$i];
+
+ $numblock[$i] *= 1;
+
+ if ($numblock[$i] == 0) {
+ pop @numblock;
+ next;
+ }
+
+ if ($numblock[$i] > 99) {
+ if ($num[0] == 1) {
+ push @textnumber, $self->{numbername}{10**2};
+ } else {
+ # special case for 500, 700, 900
+ if (grep /$num[0]/, (5,7,9)) {
+ push @textnumber, $self->{numbername}{"${num[0]}00"};
+
+ } else {
+
+ # the one from hundreds, append cientos
+ push @textnumber, $self->{numbername}{$num[0]}.$self->{numbername}{10**2}.'s';
+
+ }
+ }
+
+ # reduce numblock
+ $numblock[$i] -= $num[0] * 100;
+ }
+
+ if ($numblock[$i] > 9) {
+ # tens
+ push @textnumber, $self->format_ten($numblock[$i], $i);
+ } elsif ($numblock[$i] > 0) {
+ # ones
+ $num = $numblock[$i];
+ $num .= 'o' if ($num == 1 && $i == 0);
+ push @textnumber, $self->{numbername}{$num};
+ }
+
+ # add thousand, million
+ if ($i) {
+ $num = 10**($i * 3);
+ if ($numblock[$i] > 1) {
+ if ($i == 2 || $i == 4) {
+ $a = $self->{numbername}{$num}."es";
+ $a =~ s/ó/o/;
+ push @textnumber, $a;
+ } elsif ($i == 3) {
+ $num = 10**($i * 2);
+ $a = "$self->{10**3} $self->{numbername}{$num}"."es";
+ $a =~ s/ó/o/;
+ push @textnumber, $a;
+ } else {
+ if ($i == 1) {
+ push @textnumber, $self->{numbername}{$num};
+ } else {
+ push @textnumber, $self->{numbername}{$num}.'s';
+ }
+ }
+ } else {
+ push @textnumber, $self->{numbername}{$num};
+ }
+ }
+
+ pop @numblock;
+
+ }
+
+ shift @textnumber if $stripun;
+
+ join ' ', @textnumber;
+
+}
+
+
+sub format_ten {
+ my ($self, $amount, $i) = @_;
+
+ my $textnumber = "";
+ my @num = split //, $amount;
+
+ if ($amount > 30) {
+ $textnumber = $self->{numbername}{$num[0]*10};
+ $amount = $num[1];
+ } else {
+ $amount .= 'o' if ($num[1] == 1 && $i == 0);
+ $textnumber = $self->{numbername}{$amount};
+ $amount = 0;
+ }
+
+ $textnumber .= " y ".$self->{numbername}{$amount} if $amount;
+
+ $textnumber;
+
+}
+
+
+1;
+
diff --git a/locale/ec/aa b/locale/ec/aa
new file mode 100755
index 00000000..93996296
--- /dev/null
+++ b/locale/ec/aa
@@ -0,0 +1,156 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Impagados Proveedores',
+ 'AP Transaction' => 'Transaccion Proveedor',
+ 'AP Transactions' => 'Gestiones de pagos',
+ 'AR Outstanding' => 'Impagados Cartera',
+ 'AR Transaction' => 'Gestión de cobro',
+ 'AR Transactions' => 'Gestiones de cobros',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Add AP Transaction' => 'Añadir Asiento de CxP',
+ 'Add AR Transaction' => 'Añadir Asiento de CxP',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Cantidad adeudada',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => '¿Está seguro de que desea borrar la transacción?',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Cannot delete transaction!' => '¡No se puede borrar la transacción!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo ya cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar una transacción para un periodo cerrado',
+ 'Cannot post transaction!' => '¡No se puede registrar la transacción',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Cerrado',
+ 'Confirm!' => 'Confirmar',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Limite de credito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Date' => 'Fecha',
+ 'Date Paid' => 'Fecha de pago',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'Due Date missing!' => 'Falta la fecha de vencimiento',
+ 'Edit AP Transaction' => 'Editar Asiento de CxP',
+ 'Edit AR Transaction' => 'Editar Asiento de CxC',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate for payment missing!' => '¡Falta tasa de Cambio para pago!',
+ 'Exchange rate missing!' => '¡Falta Tasa de Cambio!',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Invoice' => 'Factura de Venta',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Manager' => 'Gerente',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Month' => 'Mes',
+ 'No.' => 'No',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Number' => 'Número de orden',
+ 'Paid' => 'Pagado',
+ 'Payment date missing!' => 'No se encuentra la fecha de pago',
+ 'Payments' => 'Vencimientos impagados',
+ 'Period' => 'Período',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Muestre',
+ 'Project' => 'Proyecto',
+ 'Quarter' => 'Trimestre',
+ 'Receipt' => 'Recibo',
+ 'Remaining' => 'Resto',
+ 'Sales Invoice.' => 'Factura de venta.',
+ 'Salesperson' => 'Vendedor',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Ship to' => 'Destino',
+ 'Ship via' => 'Envio por',
+ 'Shipping Point' => 'Puerto de Embarque',
+ 'Source' => 'Fuente',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resúmen',
+ 'Tax' => 'Impuestos',
+ 'Tax Included' => 'Impuestos incluidos en el precio',
+ 'Till' => 'Caja',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Transaction' => 'Asiento',
+ 'Transaction deleted!' => '¡Transacción borrada!',
+ 'Transaction posted!' => '¡Transacción registrada!',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice.' => 'Factura de proveedor.',
+ 'Vendor missing!' => '¡Falta el proveedor!',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'transaccion_proveedor' => 'ap_transaction',
+ 'gestión_de_cobro' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'imprimir_y_muestre' => 'print_and_post',
+ 'factura_de_venta_' => 'sales_invoice_',
+ 'destino' => 'ship_to',
+ 'actualizar' => 'update',
+ 'factura_de_proveedor_' => 'vendor_invoice_',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/ec/admin b/locale/ec/admin
new file mode 100755
index 00000000..72927412
--- /dev/null
+++ b/locale/ec/admin
@@ -0,0 +1,143 @@
+$self{texts} = {
+ 'Access Control' => 'Control de Acceso',
+ 'Accounting' => 'Contabilidad',
+ 'Add User' => 'Añadir usuario',
+ 'Address' => 'Dirección',
+ 'Administration' => 'Administración',
+ 'Administrator' => 'Administrador',
+ 'All Datasets up to date!' => 'Todas las bases de datos están actualizadas',
+ 'Cannot create Lock!' => 'No se puede crear seguro',
+ 'Change Admin Password' => 'Cambiar la contraseña del administrador',
+ 'Change Password' => 'Cambiar contraseña',
+ 'Click on login name to edit!' => 'Haga clic en el nombre de usuario por editar',
+ 'Company' => 'Empresa',
+ 'Confirm' => 'Confirmar',
+ 'Connect to' => 'Conectar a',
+ 'Continue' => 'Continuar',
+ 'Create Chart of Accounts' => 'Crear plan de cuentas',
+ 'Create Dataset' => 'Crear base de datos',
+ 'DBI not installed!' => 'No se ha instalado DBI',
+ 'Database' => 'Base de datos',
+ 'Database Administration' => 'Administración de las bases de datos',
+ 'Database Driver not checked!' => 'No se ha podido verificar el gestor de la base de datos',
+ 'Database User missing!' => 'No se ha definido el usuario de la base de datos',
+ 'Dataset' => 'Base de datos',
+ 'Dataset missing!' => 'No se ha definido la base de datos',
+ 'Dataset updated!' => 'Base de datos actualizada',
+ 'Date Format' => 'Formato de fecha',
+ 'Delete' => 'Borrar',
+ 'Delete Dataset' => 'Borrar base de datos',
+ 'Directory' => 'Directorio',
+ 'Driver' => 'Gestor',
+ 'Dropdown Limit' => 'Límite de efectivo',
+ 'E-mail' => 'Correo electrónico',
+ 'Edit User' => 'Editar usuario',
+ 'Existing Datasets' => 'Bases de datos existentes',
+ 'Fax' => 'Fax',
+ 'Host' => 'Máquina servidor de base de datos',
+ 'Hostname missing!' => 'No se ha definido la máquina servidor de base de datos',
+ 'Language' => 'Lenguaje',
+ 'Lock System' => 'Bloquear sistema',
+ 'Lockfile created!' => 'Sistema bloqueado',
+ 'Lockfile removed!' => 'Lockfile removido',
+ 'Login' => 'Entrar',
+ 'Login name missing!' => 'Falta nombre del usuario',
+ 'Logout' => 'Salir',
+ 'Manager' => 'Gerente',
+ 'Menu Width' => 'Ancho de Menú',
+ 'Multibyte Encoding' => 'Codificación Multibyte',
+ 'Name' => 'Nombre',
+ 'New Templates' => 'Nuevas plantillas',
+ 'No Database Drivers available!' => 'No hay ningún gestor de base de datos disponible',
+ 'No Dataset selected!' => 'No se ha seleccionado ninguna base de datos',
+ 'Nothing to delete!' => '¡No hay nada para borrar!',
+ 'Number Format' => 'Formato de número',
+ 'Oracle Database Administration' => 'Administración de la base de datos Oracle',
+ 'Password' => 'Contraseña',
+ 'Password changed!' => '¡Contraseña cambiada!',
+ 'Passwords do not match!' => '¡Contraseñas son incorrectas!',
+ 'Pg Database Administration' => 'Administración de la base de datos PostgreSQL',
+ 'PgPP Database Administration' => 'PostGres Admin',
+ 'Phone' => 'Teléfono',
+ 'Port' => 'Puerto',
+ 'Port missing!' => 'No se ha definido el puerto',
+ 'Printer' => 'Impresora',
+ 'Save' => 'Guardar',
+ 'Session Timeout' => '¡Sesión Caducó!',
+ 'Session expired!' => '¡Sesión Expiró!',
+ 'Setup Templates' => 'Configurar plantillas',
+ 'Signature' => 'Firma',
+ 'Stylesheet' => 'Hoja de estilo',
+ 'Supervisor' => 'Supervisor',
+ 'Templates' => 'Plantillas',
+ 'The following Datasets are not in use and can be deleted' => 'Las siguientes bases de datos no están en uso y se pueden borrar',
+ 'The following Datasets need to be updated' => 'Es necesario actualizar las siguientes bases de datos',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Esta es una verificacion preliminar de fuentes existentes. No se creará ni borrará nada durante esta etapa',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Para añadir un usuario a un grupo, edite un nombre, cambie el nombre de usuario (login) y guarde los cambios. Un nuevo usuario, con las mismas propiedades se guardará bajo el nuevo nombre de usuario (login).',
+ 'Unlock System' => 'Unlock sistema',
+ 'Update Dataset' => 'Actualizar base de datos',
+ 'Use Templates' => 'Plantillas de usuarios',
+ 'User' => 'Usuario',
+ 'User deleted!' => '¡Usuario borrado!',
+ 'User saved!' => '¡Usuario guardado!',
+ 'Version' => 'Versión',
+ 'You are logged out' => '¡Ud. está desconectado del sistema!',
+ 'does not exist' => 'no existe',
+ 'is already a member!' => 'ya es actualmente un miembro',
+ 'localhost' => 'máquina local',
+ 'locked!' => '¡Asegurado!',
+ 'successfully created!' => 'creado satisfactoriamente',
+ 'successfully deleted!' => 'borrado satisfactoriamente',
+ 'website' => 'sitio web',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'añadir_usuario' => 'add_user',
+ 'cambiar_la_contraseña_del_administrador' => 'change_admin_password',
+ 'cambiar_contraseña' => 'change_password',
+ 'continuar' => 'continue',
+ 'crear_base_de_datos' => 'create_dataset',
+ 'borrar' => 'delete',
+ 'borrar_base_de_datos' => 'delete_dataset',
+ 'bloquear_sistema' => 'lock_system',
+ 'entrar' => 'login',
+ 'salir' => 'logout',
+ 'administración_de_la_base_de_datos_oracle' => 'oracle_database_administration',
+ 'administración_de_la_base_de_datos_postgresql' => 'pg_database_administration',
+ 'postgres_admin' => 'pgpp_database_administration',
+ 'guardar' => 'save',
+ 'unlock_sistema' => 'unlock_system',
+ 'actualizar_base_de_datos' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/ec/all b/locale/ec/all
new file mode 100755
index 00000000..9eb99d1e
--- /dev/null
+++ b/locale/ec/all
@@ -0,0 +1,894 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+
+$self{texts} = {
+ 'A' => 'A',
+ 'AP' => 'Facturas de Proveedores',
+ 'AP Aging' => 'Diario resumido de pagos',
+ 'AP Outstanding' => 'Impagados Proveedores',
+ 'AP Transaction' => 'Transaccion Proveedor',
+ 'AP Transactions' => 'Gestiones de pagos',
+ 'AR' => 'Facturas de Ventas',
+ 'AR Aging' => 'Diario resumido de cobros ',
+ 'AR Outstanding' => 'Impagados Cartera',
+ 'AR Transaction' => 'Gestión de cobro',
+ 'AR Transactions' => 'Gestiones de cobros',
+ 'AR/AP' => '',
+ 'About' => 'Acerca de',
+ 'Above' => 'Arriba',
+ 'Access Control' => 'Control de Acceso',
+ 'Access Denied!' => '',
+ 'Account' => 'Cuenta',
+ 'Account Number' => 'Número de cuenta',
+ 'Account Number missing!' => 'No se ha definido el número de la cuenta',
+ 'Account Type' => 'Categoría de cuenta',
+ 'Account Type missing!' => 'No se ha definido el tipo de la cuenta',
+ 'Account deleted!' => '¡Cuenta borraba!',
+ 'Account does not exist!' => '¡Cuenta inexistente!',
+ 'Account saved!' => '¡Cuenta guardada!',
+ 'Accounting' => 'Contabilidad',
+ 'Accounting Menu' => 'Menú general',
+ 'Accounts' => 'Cuentas',
+ 'Accrual' => 'Acumulado',
+ 'Activate Audit trail' => 'Activar rastros Auditables',
+ 'Activate Audit trails' => 'Activar rastros Auditables',
+ 'Active' => 'Activo',
+ 'Add' => 'Añadir',
+ 'Add AP Transaction' => 'Añadir Asiento de CxP',
+ 'Add AR Transaction' => 'Añadir Asiento de CxP',
+ 'Add Account' => 'Añadir cuenta',
+ 'Add Assembly' => 'Añadir compuesto',
+ 'Add Business' => 'Adicionar Negocio',
+ 'Add Cash Transfer Transaction' => 'Agregar transacción',
+ 'Add Customer' => 'Añadir cliente',
+ 'Add Deduction' => 'Añadir Deducción',
+ 'Add Department' => 'Adicionar Departamento',
+ 'Add Employee' => 'Añadir Empleado',
+ 'Add Exchange Rate' => 'Añadir Tasa de Cambio',
+ 'Add GIFI' => 'Añadir cuenta RUC',
+ 'Add General Ledger Transaction' => 'Añadir Nota de Contabilidad',
+ 'Add Group' => 'Agregar Grupo',
+ 'Add Job' => '',
+ 'Add Labor/Overhead' => 'Adicionar Mano de Obra',
+ 'Add Language' => 'Adicionar lenguage',
+ 'Add POS Invoice' => 'Agregar Factura POS',
+ 'Add Part' => 'Añadir artículo',
+ 'Add Pricegroup' => 'Añadir Preciogrupal',
+ 'Add Project' => 'Añadir proyecto',
+ 'Add Purchase Order' => 'Añadir pedido',
+ 'Add Quotation' => 'Añadir Cotización',
+ 'Add Request for Quotation' => 'Añadir Pedido de Cotización',
+ 'Add SIC' => 'Adicionar SIC',
+ 'Add Sales Invoice' => 'Añadir factura',
+ 'Add Sales Order' => 'Añadir cotización',
+ 'Add Service' => 'Añadir servicio',
+ 'Add Timecard' => '',
+ 'Add Transaction' => 'Añadir Transacción',
+ 'Add User' => 'Añadir usuario',
+ 'Add Vendor' => 'Añadir proveedor',
+ 'Add Vendor Invoice' => 'Agregar Factura de Proveedor',
+ 'Add Warehouse' => 'Adicionar Bodega',
+ 'Address' => 'Dirección',
+ 'Administration' => 'Administración',
+ 'Administrator' => 'Administrador',
+ 'After Deduction' => 'Después de Deducción',
+ 'All' => 'Todos',
+ 'All Accounts' => 'Todas las Cuentas',
+ 'All Datasets up to date!' => 'Todas las bases de datos están actualizadas',
+ 'All Items' => 'Todos los Artículos',
+ 'Allowances' => 'Permisos',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Cantidad adeudada',
+ 'Amount missing!' => 'Valor faltante',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => '¿Esta seguro de que desea borrar la factura número',
+ 'Are you sure you want to delete Order Number' => '¿Esta seguro de que desea borrar la orden número?',
+ 'Are you sure you want to delete Quotation Number' => '¿Está seguro que quiere borrar el número de la Cotización?',
+ 'Are you sure you want to delete Timecard for' => '',
+ 'Are you sure you want to delete Transaction' => '¿Está seguro de que desea borrar la transacción?',
+ 'Are you sure you want to remove the marked entries from the queue?' => '¿Está seguro de que quiere borrar las entradas señaladas de la cola?',
+ 'Assemblies' => 'Compuestos',
+ 'Assemblies restocked!' => '¡Compuestos actualizados en almacen!',
+ 'Assembly' => 'Ensamblaje',
+ 'Assembly stocked!' => '',
+ 'Asset' => 'Activo',
+ 'Attachment' => 'Adjunto',
+ 'Audit Control' => 'Control de auditoría',
+ 'Audit trail disabled' => 'Desabilitados rastros Audiotoriales',
+ 'Audit trail enabled' => '¡Iniciado rastros Auditoriales',
+ 'Audit trail removed up to' => 'Rastro Auditorial removido hasta',
+ 'Audit trails disabled' => 'Desabilitados rastros Audiotoriales',
+ 'Audit trails enabled' => '¡Iniciado rastros Auditoriales',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Average Cost' => '',
+ 'Avg Cost' => '',
+ 'BIC' => 'Swift',
+ 'BOM' => 'Listado de piezas',
+ 'Backup' => 'Copia de seguridad de los datos',
+ 'Backup sent to' => 'Copia de seguridad enviada a',
+ 'Balance' => 'Balance',
+ 'Balance Sheet' => 'Hoja de balance',
+ 'Based on' => 'Basado en',
+ 'Bcc' => 'Bcc',
+ 'Before Deduction' => 'Antes de la Deducción',
+ 'Beginning Balance' => 'Balance Inicial',
+ 'Below' => 'Abajo',
+ 'Billing Address' => 'Dirección de Cobro',
+ 'Bin' => 'Compatimiento',
+ 'Bin List' => 'Lista de Compatimiento',
+ 'Bin Lists' => 'Listas de Compatimiento',
+ 'Books are open' => 'Los libros están abiertos',
+ 'Break' => '¡Roto!',
+ 'Business' => 'Negocio',
+ 'Business Number' => 'Numero de negocio',
+ 'Business deleted!' => '¡Negocio borrado!',
+ 'Business saved!' => '¡Negocio guardado!',
+ 'C' => 'C',
+ 'COGS' => 'Costo de los artículos',
+ 'COGS account does not exist!' => '',
+ 'Cannot add timecard for a completed job!' => '',
+ 'Cannot change timecard for a completed job!' => '',
+ 'Cannot create Assembly' => '',
+ 'Cannot create Labor' => '',
+ 'Cannot create Lock!' => 'No se puede crear seguro',
+ 'Cannot create Part' => '',
+ 'Cannot create Service' => '',
+ 'Cannot delete Timecard!' => '',
+ 'Cannot delete account!' => '¡No se puede borrar la cuenta!',
+ 'Cannot delete customer!' => '¡No se puede borrar el cliente!',
+ 'Cannot delete default account!' => 'No se puede borrar la cuenta por omisión',
+ 'Cannot delete invoice!' => '¡No se puede borrar la factura!',
+ 'Cannot delete item!' => '¡No se puede borrar el artículo!',
+ 'Cannot delete order!' => '¡No se puede borrar el pedido!',
+ 'Cannot delete quotation!' => '¡No se puede borrar la cotización!',
+ 'Cannot delete transaction!' => '¡No se puede borrar la transacción!',
+ 'Cannot delete vendor!' => '¡No se puede borrar el vendedor!',
+ 'Cannot post Payment!' => 'No se puede desplegar Pago',
+ 'Cannot post Receipt!' => 'No se puede desplegar Recibo',
+ 'Cannot post invoice for a closed period!' => '¡No se puede registrar una factura en un periodo ya cerrado!',
+ 'Cannot post invoice!' => '¡No se puede registrar la factura!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo ya cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar una transacción para un periodo cerrado',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => '',
+ 'Cannot post transaction!' => '¡No se puede registrar la transacción',
+ 'Cannot remove files!' => '¡No se puede remover archivos!',
+ 'Cannot save account!' => '¡No se puede guardar la cuenta!',
+ 'Cannot save defaults!' => '¡No se puede grabar predeterminados!',
+ 'Cannot save order!' => '¡No se puede guardar el pedido!',
+ 'Cannot save preferences!' => '¡No se puede guardar las preferencias!',
+ 'Cannot save quotation!' => '¡No se puede guardar cotización!',
+ 'Cannot save timecard for a closed period!' => '',
+ 'Cannot save timecard!' => '',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Tiene que seleccionar cuenta!',
+ 'Cannot set multiple options for' => 'No se puede iniciar opciones multiples para',
+ 'Cannot set multiple options for Item' => '',
+ 'Cannot stock Assembly!' => '',
+ 'Cannot stock assemblies!' => '¡No se pueden almacenar los compuestos!',
+ 'Cash' => 'Efectivo',
+ 'Cc' => 'Cc',
+ 'Change' => 'Cambiar',
+ 'Change Admin Password' => 'Cambiar la contraseña del administrador',
+ 'Change Password' => 'Cambiar contraseña',
+ 'Charge' => '',
+ 'Chart of Accounts' => 'Plan de cuentas',
+ 'Check' => 'Cheque',
+ 'Check Inventory' => 'Revisar Inventario',
+ 'Checks' => 'Cheques',
+ 'City' => 'Ciudad',
+ 'Cleared' => '¡Limpiado!',
+ 'Click on login name to edit!' => 'Haga clic en el nombre de usuario por editar',
+ 'Clocked' => '',
+ 'Close Books up to' => 'Cerrar los libros hasta',
+ 'Closed' => 'Cerrado',
+ 'Code' => 'Código',
+ 'Code missing!' => '¡Falta Código!',
+ 'Company' => 'Empresa',
+ 'Company Name' => 'Nombre de Compañía',
+ 'Compare to' => 'Comparar con',
+ 'Completed' => '',
+ 'Components' => 'Componentes',
+ 'Confirm' => 'Confirmar',
+ 'Confirm!' => 'Confirmar',
+ 'Connect to' => 'Conectar a',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Contra' => 'Contra',
+ 'Copies' => 'Copias',
+ 'Copy to COA' => 'Copiar al plan de cuentas',
+ 'Cost' => 'Costo',
+ 'Cost Center' => 'Centro de Costos',
+ 'Could not save pricelist!' => '¡No se puede grabar lista de precios!',
+ 'Could not save!' => '¡No se puede grabar!',
+ 'Could not transfer Inventory!' => '¡No se puede transferir el Inventario!',
+ 'Country' => 'País',
+ 'Create Chart of Accounts' => 'Crear plan de cuentas',
+ 'Create Dataset' => 'Crear base de datos',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Limite de credito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Current Earnings' => 'Ganacias Actuales',
+ 'Customer' => 'Cliente',
+ 'Customer History' => 'Historial del Cliente',
+ 'Customer Number' => 'Número de Cliente',
+ 'Customer deleted!' => '¡Cliente borrado!',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Customer saved!' => '¡Cliente guardado!',
+ 'Customers' => 'Clientes',
+ 'DBI not installed!' => 'No se ha instalado DBI',
+ 'DOB' => 'Fecha de Nacimiento',
+ 'Database' => 'Base de datos',
+ 'Database Administration' => 'Administración de las bases de datos',
+ 'Database Driver not checked!' => 'No se ha podido verificar el gestor de la base de datos',
+ 'Database Host' => 'Máquina servidor de base de datos',
+ 'Database User missing!' => 'No se ha definido el usuario de la base de datos',
+ 'Dataset' => 'Base de datos',
+ 'Dataset is newer than version!' => 'La base de datos está más actual que la versión del programa',
+ 'Dataset missing!' => 'No se ha definido la base de datos',
+ 'Dataset updated!' => 'Base de datos actualizada',
+ 'Date' => 'Fecha',
+ 'Date Format' => 'Formato de fecha',
+ 'Date Paid' => 'Fecha de pago',
+ 'Date Received' => 'Fecha de Recepción',
+ 'Date missing!' => '¡Falta la fecha!',
+ 'Date received missing!' => '¡Falta Fecha de recepción!',
+ 'Date worked' => '',
+ 'Day' => '',
+ 'Day(s)' => '',
+ 'Days' => '',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Decimalplaces' => 'Lugar de los decimales',
+ 'Decrease' => 'Reducir',
+ 'Deduct after' => 'Deducir luego',
+ 'Deduction deleted!' => '¡Deducción borrada!',
+ 'Deduction saved!' => '¡Guardada Deducción!',
+ 'Deductions' => 'Deducciones',
+ 'Default Template' => '',
+ 'Defaults' => 'Pre-estableciodos',
+ 'Defaults saved!' => '¡Guardados Predeterminados!',
+ 'Delete' => 'Borrar',
+ 'Delete Account' => 'Borrar cuenta',
+ 'Delete Dataset' => 'Borrar base de datos',
+ 'Delete Schedule' => '',
+ 'Deleting a language will also delete the templates for the language' => '',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Department' => 'Departamento',
+ 'Department deleted!' => '¡Departamento borrado!',
+ 'Department saved!' => '¡Guardado Departamento!',
+ 'Departments' => 'Departamentos',
+ 'Deposit' => 'Depósito',
+ 'Description' => 'Descripción',
+ 'Description Translations' => 'Traducciónes de Descripción',
+ 'Description missing!' => '¡Falta descripción!',
+ 'Detail' => 'Detalle',
+ 'Difference' => 'Diferencia',
+ 'Directory' => 'Directorio',
+ 'Discount' => 'Descuento',
+ 'Done' => 'Hecho',
+ 'Drawing' => 'Reintegro',
+ 'Driver' => 'Gestor',
+ 'Dropdown Limit' => 'Límite de efectivo',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'Due Date missing!' => 'Falta la fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail Statement to' => 'Enviar comprobante por correo electrónico a',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'E-mail message' => '',
+ 'E-mailed' => '¡Enviado por Correo-e!',
+ 'Edit' => 'Editar',
+ 'Edit AP Transaction' => 'Editar Asiento de CxP',
+ 'Edit AR Transaction' => 'Editar Asiento de CxC',
+ 'Edit Account' => 'Editar cuenta',
+ 'Edit Assembly' => 'Editar compuesto',
+ 'Edit Business' => 'Editar Negocio',
+ 'Edit Cash Transfer Transaction' => 'Editar Transacción en Effectivo',
+ 'Edit Customer' => 'Editar Cliente',
+ 'Edit Deduction' => 'Editar Deducción',
+ 'Edit Department' => 'Editar Departamento',
+ 'Edit Description Translations' => 'Editar Descripciones de Traducciones',
+ 'Edit Employee' => 'Editar Empleado',
+ 'Edit GIFI' => 'Editar PUC',
+ 'Edit General Ledger Transaction' => 'Editar Notas Contables',
+ 'Edit Group' => 'Editar Grupo',
+ 'Edit Job' => '',
+ 'Edit Labor/Overhead' => 'Editar Mano de Obra',
+ 'Edit Language' => 'Editar Idioma',
+ 'Edit POS Invoice' => 'Editar Factura POS',
+ 'Edit Part' => 'Editar compuesto',
+ 'Edit Preferences for' => 'Editar preferencias de',
+ 'Edit Pricegroup' => 'Editar Precio de Grupo',
+ 'Edit Project' => 'Editar proyecto',
+ 'Edit Purchase Order' => 'Editar pedido',
+ 'Edit Quotation' => 'Editar Cotización',
+ 'Edit Request for Quotation' => 'Editar Petición de Cotizacion',
+ 'Edit SIC' => 'Edita CIS',
+ 'Edit Sales Invoice' => 'Edirar factura de venta',
+ 'Edit Sales Order' => 'Editar cotización',
+ 'Edit Service' => 'Editar servicio',
+ 'Edit Template' => 'Editar plantilla',
+ 'Edit Timecard' => '',
+ 'Edit User' => 'Editar usuario',
+ 'Edit Vendor' => 'Editar Proveedor',
+ 'Edit Vendor Invoice' => 'Editar factura de Proveedor',
+ 'Edit Warehouse' => 'Editar bodega',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Employee Name' => 'Empleado',
+ 'Employee Number' => 'Número de Empleado',
+ 'Employee deleted!' => '¡Empleado borrado!',
+ 'Employee pays' => 'Empleado paga',
+ 'Employee saved!' => '¡Empleado salvado!',
+ 'Employees' => 'Empleados',
+ 'Employer' => 'Empleador',
+ 'Employer pays' => 'Empleador paga',
+ 'Enddate' => 'Fecha Final',
+ 'Ends' => '',
+ 'Enforce transaction reversal for all dates' => 'Forzar la anulación de las transacciones para todas las fechas',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Introduzca hasta 3 letras separadas por dos puntos (p.e. CAD:USD:EUR) para las monedas locales y las extranjeras',
+ 'Equity' => 'Balance',
+ 'Every' => '',
+ 'Excempt age <' => 'Edad de Excención <',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate for payment missing!' => '¡Falta tasa de Cambio para pago!',
+ 'Exchange rate missing!' => '¡Falta Tasa de Cambio!',
+ 'Existing Datasets' => 'Bases de datos existentes',
+ 'Expense' => 'Gastos',
+ 'Expense account does not exist!' => '',
+ 'Expense/Asset' => 'Gastos/Activo',
+ 'Extended' => 'Extendido',
+ 'FX' => 'Tasa de Cambio',
+ 'Failed to save order!' => '',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'For' => '',
+ 'Foreign Exchange Gain' => 'Ganancia en moneda extranjera',
+ 'Foreign Exchange Loss' => 'Pérdida en moneda extranjera',
+ 'Friday' => '',
+ 'From' => 'Desde',
+ 'From Warehouse' => '',
+ 'GIFI' => 'Plan Único de Cuentas (PUC)',
+ 'GIFI deleted!' => '¡Borrado el código PUC!',
+ 'GIFI missing!' => 'No se ha definido el código PUC',
+ 'GIFI saved!' => '¡Guardado el código PUC!',
+ 'GL' => '',
+ 'GL Reference Number' => '',
+ 'GL Transaction' => 'Nota de Contabilidad',
+ 'General Ledger' => 'Notas de Contabilidad',
+ 'Generate' => '',
+ 'Generate Orders' => '',
+ 'Generate Purchase Orders' => '',
+ 'Generate Purchase Orders from Sales Order' => '',
+ 'Generate Sales Order' => '',
+ 'Generate Sales Order from Purchase Orders' => '',
+ 'Generate Sales Orders' => '',
+ 'Goods & Services' => 'Bienes y servicios',
+ 'Group' => 'Grupo',
+ 'Group Items' => 'Agrupar artículos',
+ 'Group Translations' => 'Traducciones de Grupo',
+ 'Group deleted!' => 'Grupo eleminado!',
+ 'Group missing!' => 'Falta el grupo',
+ 'Group saved!' => 'Grupo guardado!',
+ 'Groups' => 'Grupos',
+ 'HR' => 'Recursos Humanos',
+ 'HTML Templates' => 'Plantillas HTML',
+ 'Heading' => 'Encabezado',
+ 'History' => 'Historia',
+ 'Home Phone' => 'Teléfono del Hogar',
+ 'Host' => 'Máquina servidor de base de datos',
+ 'Hostname missing!' => 'No se ha definido la máquina servidor de base de datos',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Image' => 'Imagen',
+ 'In-line' => 'Incrustado',
+ 'Inactive' => '',
+ 'Include Exchange Rate Difference' => 'Incluir Diferencia de Tasa de Cambio',
+ 'Include Payment' => '',
+ 'Include in Report' => 'Incluir en informe',
+ 'Include in drop-down menus' => 'Incluir en menúes desplegables:',
+ 'Income' => 'Ingresos',
+ 'Income Statement' => 'Estado de Resultados',
+ 'Income account does not exist!' => '',
+ 'Incorrect Dataset version!' => 'Versión de base de datos incorrecta',
+ 'Increase' => 'Aumentar',
+ 'Individual Items' => 'Artículos individuales',
+ 'Internal Notes' => 'Notas Internas',
+ 'Inventory' => 'Inventario',
+ 'Inventory account does not exist!' => '',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'La cantidad en inventario debe ser cero antes de cambiar este compuesto a obsoleto',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'La cantidad en inventario debe ser cero antes de cambiar este artículo a obsoleto',
+ 'Inventory saved!' => '¡Inventario salvado!',
+ 'Inventory transferred!' => '¡Inventario transferido!',
+ 'Invoice' => 'Factura de Venta',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Invoice Number missing!' => 'No se ha definido el número de la factura',
+ 'Invoice deleted!' => '¡Factura borrada!',
+ 'Invoices' => 'Facturas',
+ 'Is this a summary account to record' => '¿Es esta una cuenta de resumen a registrar?',
+ 'Item already on pricelist!' => '¡Artículo existe en lista de precios!',
+ 'Item deleted!' => '¡Concepto borrado!',
+ 'Item not on file!' => 'El concepto no se encuentra en ningún archivo',
+ 'Items' => 'Artículos',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Job' => '',
+ 'Job Name' => '',
+ 'Job Number' => '',
+ 'Job Number missing!' => '',
+ 'Job deleted!' => '',
+ 'Job saved!' => '',
+ 'Jobs' => '',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'LaTeX Templates' => 'Plantillas LaTeX',
+ 'Labor Code' => '',
+ 'Labor/Overhead' => 'Mano de Obra',
+ 'Language' => 'Lenguaje',
+ 'Language deleted!' => '¡Idiocmas borrados!',
+ 'Language saved!' => '¡Idiomas grabados!',
+ 'Languages' => 'Idiomas',
+ 'Languages not defined!' => '¡Idiomas no definidos!',
+ 'Last Cost' => '',
+ 'Last Numbers & Default Accounts' => 'Últimos números y cuentas por omisión',
+ 'Lead' => '',
+ 'Leadtime' => 'Plazo',
+ 'Leave host and port field empty unless you want to make a remote connection.' => 'Deje los campos de máquina servidor de base de datos y puerto vacíos al menos que quiera hacer una conexión remota',
+ 'Liability' => 'Pasivo',
+ 'Licensed to' => 'Adaptado para',
+ 'Line Total' => 'Total de la línea',
+ 'Link' => 'Enlaces',
+ 'Link Accounts' => 'Enlazar cuentas',
+ 'List' => 'Lista',
+ 'List Accounts' => 'Listar Plan Único de Cuentas',
+ 'List Businesses' => 'Lista de Negocios',
+ 'List Departments' => 'Lista de Departamentos',
+ 'List GIFI' => 'Listar PUC',
+ 'List Languages' => 'Lista de Lenguages',
+ 'List Price' => 'Precio de lista',
+ 'List Projects' => 'Lista de Proyectos',
+ 'List SIC' => 'Lista SIC',
+ 'List Transactions' => 'Listar transacciones',
+ 'List Warehouses' => 'Lista de Bodegas',
+ 'Lock System' => 'Bloquear sistema',
+ 'Lockfile created!' => 'Sistema bloqueado',
+ 'Lockfile removed!' => 'Lockfile removido',
+ 'Login' => 'Entrar',
+ 'Login name missing!' => 'Falta nombre del usuario',
+ 'Logout' => 'Salir',
+ 'Make' => 'Marca',
+ 'Manager' => 'Gerente',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'Marked entries printed!' => '¡Impresas las entradas marcadas!',
+ 'Markup' => 'Margen de Beneficio',
+ 'Maximum' => 'Máximo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Menu Width' => 'Ancho de Menú',
+ 'Message' => 'Mensaje',
+ 'Method' => 'Método',
+ 'Microfiche' => 'Microficha',
+ 'Model' => 'Modelo',
+ 'Monday' => '',
+ 'Month' => 'Mes',
+ 'Month(s)' => '',
+ 'Months' => '',
+ 'Multibyte Encoding' => 'Codificación Multibyte',
+ 'N/A' => 'Sin respuesta',
+ 'Name' => 'Nombre',
+ 'Name missing!' => '¡Falta el nombre!',
+ 'New Templates' => 'Nuevas plantillas',
+ 'New Window' => '',
+ 'Next' => '',
+ 'Next Date' => '',
+ 'Next Number' => '',
+ 'No' => 'No',
+ 'No Database Drivers available!' => 'No hay ningún gestor de base de datos disponible',
+ 'No Dataset selected!' => 'No se ha seleccionado ninguna base de datos',
+ 'No Employees on file!' => '',
+ 'No Labor codes on file!' => '',
+ 'No email address for' => 'Falta la dirección de correo electrónico de',
+ 'No open Jobs!' => '',
+ 'No open Projects!' => '',
+ 'No.' => 'No',
+ 'Non-taxable' => 'No Grabable',
+ 'Non-taxable Purchases' => 'Compras excentas de Impuestos',
+ 'Non-taxable Sales' => 'Ventas excentas de Impuestos',
+ 'Non-tracking Items' => '',
+ 'Notes' => 'Notas',
+ 'Nothing entered!' => '¡Nada ingresado!',
+ 'Nothing selected!' => '¡No es seleccionado nada!',
+ 'Nothing to delete!' => '¡No hay nada para borrar!',
+ 'Nothing to print!' => '¡No hay nada que imprimir!',
+ 'Nothing to transfer!' => '¡Nada para Transferir!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number Format' => 'Formato de número',
+ 'Number missing in Row' => 'No se ha definido el número en la fila',
+ 'O' => 'O',
+ 'OH' => '',
+ 'Obsolete' => 'Obsoleto',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'On Hand' => 'Disponible',
+ 'Open' => 'Abierto',
+ 'Oracle Database Administration' => 'Administración de la base de datos Oracle',
+ 'Order' => 'Orden',
+ 'Order Date' => 'Fecha de elaboración',
+ 'Order Date missing!' => 'No se ha definido la fecha de la elaboración',
+ 'Order Entry' => 'Cotizaciones y pedidos',
+ 'Order Number' => 'Número de orden',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'Order deleted!' => '¡Orden borrada!',
+ 'Order generation failed!' => '',
+ 'Order saved!' => 'Pedido guardado',
+ 'Orders generated!' => '',
+ 'Orphaned' => 'Independiente',
+ 'Out of balance transaction!' => '¡Transacción Fuera de BAlance',
+ 'Out of balance!' => '¡Fuera de balance!',
+ 'Outstanding' => 'Impagados',
+ 'PDF' => 'PDF',
+ 'PO Number' => '',
+ 'POS' => 'PdV',
+ 'POS Invoice' => 'Factura PdV',
+ 'Packing List' => 'Lista de Empaque',
+ 'Packing List Date missing!' => 'No se ha definido la fecha del albarán',
+ 'Packing List Number missing!' => 'No se ha definido el número del albarán',
+ 'Packing Lists' => 'Lista de Empaque',
+ 'Paid' => 'Pagado',
+ 'Part' => 'Artículo',
+ 'Part Number' => '',
+ 'Partnumber' => 'Número de Parte',
+ 'Parts' => 'Artículos',
+ 'Password' => 'Contraseña',
+ 'Password changed!' => '¡Contraseña cambiada!',
+ 'Password does not match!' => '¡Contraseña incorrecta!',
+ 'Passwords do not match!' => '¡Contraseñas son incorrectas!',
+ 'Payables' => 'Pagos',
+ 'Payment' => 'Comprobante de Egreso',
+ 'Payment date missing!' => 'No se encuentra la fecha de pago',
+ 'Payment posted!' => '¡Pago registrado!',
+ 'Payments' => 'Vencimientos impagados',
+ 'Payments posted!' => '',
+ 'Payroll Deduction' => 'Descuento del Rol de Pagos',
+ 'Period' => 'Período',
+ 'Pg Database Administration' => 'Administración de la base de datos PostgreSQL',
+ 'PgPP Database Administration' => 'PostGres Admin',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Selección',
+ 'Pick Lists' => 'Listas de Selección',
+ 'Port' => 'Puerto',
+ 'Port missing!' => 'No se ha definido el puerto',
+ 'Pos' => '',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Posted!' => 'Agregado!',
+ 'Posting' => '',
+ 'Posting failed!' => '',
+ 'Postscript' => 'Postscript',
+ 'Preferences' => 'Preferencias',
+ 'Preferences saved!' => 'Preferencias guardadas',
+ 'Prepayment' => 'Prepago',
+ 'Price' => 'Precio',
+ 'Pricegroup' => 'Preciogrupo',
+ 'Pricegroup deleted!' => '¡Preciogrupo borrado!',
+ 'Pricegroup missing!' => '¡Preciogrupo desaparecido!',
+ 'Pricegroup saved!' => '¡Preciogrupo salvado',
+ 'Pricegroups' => 'Preciogrupos',
+ 'Pricelist' => 'Lista de Precios',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Muestre',
+ 'Print and Post as new' => '',
+ 'Print and Save' => 'Imprimir y Salve',
+ 'Print and Save as new' => '',
+ 'Print and post as new' => '',
+ 'Print and save as new' => '',
+ 'Printed' => 'Impreso',
+ 'Printer' => 'Impresora',
+ 'Printing' => '',
+ 'Printing ... ' => 'Imprimiendo...',
+ 'Process Transactions' => '',
+ 'Production' => '',
+ 'Profit Center' => 'Centro de Ganancias',
+ 'Project' => 'Proyecto',
+ 'Project Description Translations' => 'Traducciones de Descripción de Proyecto',
+ 'Project Name' => '',
+ 'Project Number' => 'número del projecto',
+ 'Project Number missing!' => '¡Falta el número de proyecto!',
+ 'Project Transactions' => 'Traducciones de Proyecto',
+ 'Project deleted!' => '¡Proyecto borrado!',
+ 'Project not on file!' => '¡Proyecto no en archivo!',
+ 'Project saved!' => '¡Proyecto guardado ',
+ 'Project/Job Name' => '',
+ 'Project/Job Number' => '',
+ 'Projects' => 'Proyectos',
+ 'Purchase Order' => 'Pedido',
+ 'Purchase Order Number' => 'Número de Orden de Compra',
+ 'Purchase Orders' => 'Pedidos',
+ 'Qty' => 'Cantidad',
+ 'Quantity exceeds available units to stock!' => '¡La cantidad exede la unidades disponibles en inventario!',
+ 'Quarter' => 'Trimestre',
+ 'Quotation' => 'Cotización',
+ 'Quotation ' => 'Cotización ',
+ 'Quotation Date' => 'Fecha de Cotización',
+ 'Quotation Date missing!' => 'Falta Fecha de Cotización',
+ 'Quotation Number' => 'Número de Cotización',
+ 'Quotation Number missing!' => 'Falta número de Cotización',
+ 'Quotation deleted!' => '¡Cotización borrada!',
+ 'Quotations' => 'Cotizaciones',
+ 'R' => 'Reconciliado',
+ 'RFQ' => 'Requerimiento de Cotización',
+ 'RFQ ' => 'Requerimiento de Cotización ',
+ 'RFQ Number' => 'Número de Requerimiento de Cotización',
+ 'RFQs' => 'Requerimiento de Cotizaciónes',
+ 'ROP' => 'Tope de envio',
+ 'Rate' => 'Tarifa',
+ 'Rate missing!' => 'Falta Tarifa',
+ 'Recd' => 'Cobrado',
+ 'Receipt' => 'Recibo',
+ 'Receipt posted!' => '¡Recibo desplegado!',
+ 'Receipts' => 'Recibos',
+ 'Receivables' => 'Cobros',
+ 'Receive' => 'Cobro',
+ 'Receive Merchandise' => 'Recepción de Mercadería',
+ 'Reconciliation' => 'Reconciliación',
+ 'Reconciliation Report' => 'Reporte de Reconciliación',
+ 'Record in' => 'Registrar en',
+ 'Recurring Transaction' => '',
+ 'Recurring Transactions' => '',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Resto',
+ 'Remove' => 'Remover',
+ 'Remove Audit trail up to' => 'Remover rastros de Audición hasta',
+ 'Remove Audit trails up to' => 'Remover rastros de Audición hasta',
+ 'Removed spoolfiles!' => 'Archivos de ',
+ 'Removing marked entries from queue ...' => 'Removiendo entradas marcadas de la cola...',
+ 'Repeat' => '',
+ 'Report for' => 'Informe para',
+ 'Reports' => 'Informes',
+ 'Req' => '',
+ 'Request for Quotation' => 'Pedido de Cotización',
+ 'Request for Quotations' => 'Pedido de Cotizaciónes',
+ 'Required by' => 'Solicitado por',
+ 'Retained Earnings' => 'Resultado del Ejercicio',
+ 'Role' => 'Rol',
+ 'S' => 'S',
+ 'SIC' => 'Código Industrial Estandard',
+ 'SIC deleted!' => '¡CIS borrado!',
+ 'SIC saved!' => '¡CIS grabado!',
+ 'SKU' => 'Unidad de Mantenimiento de Stock',
+ 'SSN' => 'Número de Seguro Social',
+ 'Sale' => 'Venta',
+ 'Sales' => 'Ventas',
+ 'Sales Invoice' => 'Factura de venta',
+ 'Sales Invoice ' => 'Factura de venta ',
+ 'Sales Invoice.' => 'Factura de venta.',
+ 'Sales Invoice/AR Transaction Number' => '',
+ 'Sales Invoices' => 'Facturas de Ventas',
+ 'Sales Order' => 'Orden de Venta',
+ 'Sales Order Number' => 'N°de Pedido',
+ 'Sales Orders' => 'Ordenes de Venta',
+ 'Sales Quotation Number' => 'N°de Cotización de Venta',
+ 'Salesperson' => 'Vendedor',
+ 'Saturday' => '',
+ 'Save' => 'Guardar',
+ 'Save Pricelist' => 'Lista de Precios Guardada',
+ 'Save Schedule' => '',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Save to File' => 'Guardar en un archivo',
+ 'Saving' => '',
+ 'Schedule' => '',
+ 'Scheduled' => '',
+ 'Screen' => 'Pantalla',
+ 'Search' => 'Buscar',
+ 'Select' => 'Seleccione',
+ 'Select Customer' => '',
+ 'Select Vendor' => '',
+ 'Select a Printer!' => '',
+ 'Select a printer!' => '',
+ 'Select all' => 'Seleccione todo',
+ 'Select from one of the items below' => 'Seleccione uno de los artículos siguientes',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione de uno de los proyectos siguientes',
+ 'Select items' => '',
+ 'Select payment' => '¡Seleccione Pago!',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Select txt, postscript or PDF!' => '¡Seleccione txt, postscript o PDF!',
+ 'Sell' => 'Venta',
+ 'Sell Price' => 'Precio de venta',
+ 'Send by E-Mail' => 'Enviar por correo electrónico',
+ 'Sending' => '',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'Nº de Serie',
+ 'Serial Number' => 'Número Serie',
+ 'Service' => 'Servicio',
+ 'Service Code' => '',
+ 'Service/Labor Code' => '',
+ 'Services' => 'Servicios',
+ 'Session Timeout' => '¡Sesión Caducó!',
+ 'Session expired!' => '¡Sesión Expiró!',
+ 'Setup Templates' => 'Configurar plantillas',
+ 'Ship' => 'Envio',
+ 'Ship Merchandise' => 'Envío de Mercadería',
+ 'Ship to' => 'Destino',
+ 'Ship via' => 'Envio por',
+ 'Shipping' => 'Despacho',
+ 'Shipping Address' => 'Dirección de Embarque',
+ 'Shipping Date' => 'Fecha de Embarque',
+ 'Shipping Date missing!' => '¡Falta Fecha de Embarque!',
+ 'Shipping Point' => 'Puerto de Embarque',
+ 'Short' => 'Corto',
+ 'Signature' => 'Firma',
+ 'Source' => 'Fuente',
+ 'Spoolfile' => 'Archivo de carrete',
+ 'Standard' => 'Estándard',
+ 'Standard Industrial Codes' => 'Códigos Standart Industriales',
+ 'Startdate' => 'FechaInicio',
+ 'State' => 'Estado',
+ 'State/Province' => 'Estado/Provincia',
+ 'Statement' => 'Estado de cuenta',
+ 'Statement Balance' => 'Balance de cuenta',
+ 'Statement sent to' => 'Estado de cuenta enviado a',
+ 'Statements sent to printer!' => '¡Estado de cuenta enviado a la impresora!',
+ 'Stock' => 'Inventario',
+ 'Stock Assembly' => 'Inventariar compuesto',
+ 'Stocking Date' => '',
+ 'Stylesheet' => 'Hoja de estilo',
+ 'Sub-contract GIFI' => 'RUC',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resúmen',
+ 'Sunday' => '',
+ 'Supervisor' => 'Supervisor',
+ 'System' => 'Sistema',
+ 'System Defaults' => 'Predeterminados del Sistema',
+ 'Tax' => 'Impuestos',
+ 'Tax Accounts' => 'Cuentas de impuestos',
+ 'Tax Included' => 'Impuestos incluidos en el precio',
+ 'Tax Number' => 'Número de Impuesto',
+ 'Tax Number / SSN' => 'Número de Impuesto / SSN',
+ 'Tax collected' => 'Impuestos cobrados Clientes',
+ 'Tax paid' => 'Impuestos pagados',
+ 'Taxable' => 'Impuestos gravables',
+ 'Template saved!' => '¡Plantilla guardada!',
+ 'Templates' => 'Plantillas',
+ 'Terms' => 'Términos',
+ 'Text' => '',
+ 'Text Templates' => 'Plantillas de Texto',
+ 'The following Datasets are not in use and can be deleted' => 'Las siguientes bases de datos no están en uso y se pueden borrar',
+ 'The following Datasets need to be updated' => 'Es necesario actualizar las siguientes bases de datos',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Esta es una verificacion preliminar de fuentes existentes. No se creará ni borrará nada durante esta etapa',
+ 'Thursday' => '',
+ 'Till' => 'Caja',
+ 'Time In' => '',
+ 'Time Out' => '',
+ 'Timecard' => '',
+ 'Timecard deleted!' => '',
+ 'Timecard saved!' => '',
+ 'Timecards' => '',
+ 'Times' => '',
+ 'To' => 'Hasta ',
+ 'To Warehouse' => '',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Para añadir un usuario a un grupo, edite un nombre, cambie el nombre de usuario (login) y guarde los cambios. Un nuevo usuario, con las mismas propiedades se guardará bajo el nuevo nombre de usuario (login).',
+ 'Top Level' => 'Nivel superior',
+ 'Total' => 'Total',
+ 'Tracking Items' => '',
+ 'Trade Discount' => 'Descuento por Intercambio',
+ 'Transaction' => 'Asiento',
+ 'Transaction Date missing!' => 'No se ha definido la fecha de la transacción',
+ 'Transaction Dates' => '',
+ 'Transaction deleted!' => '¡Transacción borrada!',
+ 'Transaction posted!' => '¡Transacción registrada!',
+ 'Transaction reversal enforced for all dates' => 'Se ha forzado la anulación de las transacciones para todas las fechas',
+ 'Transaction reversal enforced up to' => 'Se ha forzado la anulación de las transacciones hasta',
+ 'Transactions' => 'Transacciones',
+ 'Transfer' => 'Transferencia',
+ 'Transfer Inventory' => 'Transferir Inventario',
+ 'Transfer from' => '',
+ 'Transfer to' => 'Transferir a',
+ 'Translation' => 'Traducción',
+ 'Translation deleted!' => '¡Traducción borrada!',
+ 'Translation not on file!' => '¡Traducción no en archivo!',
+ 'Translations' => 'Traducciones',
+ 'Translations saved!' => 'Traducciones guardadas',
+ 'Trial Balance' => 'Balance de comprobación',
+ 'Tuesday' => '',
+ 'Type of Business' => 'Tipo de Negocio',
+ 'Unit' => 'Unidad',
+ 'Unit of measure' => 'Unidad de medida',
+ 'Unlock System' => 'Unlock sistema',
+ 'Update' => 'Actualizar',
+ 'Update Dataset' => 'Actualizar base de datos',
+ 'Updated' => '¡Actualizado!',
+ 'Upgrading to Version' => 'Actualizando a Versión',
+ 'Use Templates' => 'Plantillas de usuarios',
+ 'User' => 'Usuario',
+ 'User deleted!' => '¡Usuario borrado!',
+ 'User saved!' => '¡Usuario guardado!',
+ 'Valid until' => 'Válido hasta',
+ 'Vendor' => 'Proveedor',
+ 'Vendor History' => 'Historia de Proveedor',
+ 'Vendor Invoice' => 'Factura de proveedor',
+ 'Vendor Invoice ' => 'Factura de proveedor ',
+ 'Vendor Invoice.' => 'Factura de proveedor.',
+ 'Vendor Invoice/AP Transaction Number' => '',
+ 'Vendor Invoices' => 'Facturas de proveedor',
+ 'Vendor Number' => 'Número de Proveedor',
+ 'Vendor deleted!' => '¡Proveedor borrado!',
+ 'Vendor missing!' => '¡Falta el proveedor!',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Vendor saved!' => '¡Proveedor guardado!',
+ 'Vendors' => 'Proveedores',
+ 'Version' => 'Versión',
+ 'Warehouse' => 'Bodega',
+ 'Warehouse deleted!' => '¡Bodega borrada',
+ 'Warehouse saved!' => '¡Bodega grabada!',
+ 'Warehouses' => 'Bodegas',
+ 'Warning!' => '¡Precaución!',
+ 'Wednesday' => '',
+ 'Week' => '',
+ 'Week(s)' => '',
+ 'Weeks' => '',
+ 'Weight' => 'Peso',
+ 'Weight Unit' => 'Unidad de peso',
+ 'What type of item is this?' => '¿De qué tipo es este concepto?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Work Orders' => 'Ordenes de Trabajo',
+ 'Work Phone' => 'Teléfono del trabajo',
+ 'Year' => 'Año',
+ 'Year(s)' => '',
+ 'Yearend' => 'Fin de año',
+ 'Yearend date missing!' => '¡Falta Fecha de Fin de Año!',
+ 'Yearend posted!' => '¡Fin de Año fijado!',
+ 'Yearend posting failed!' => '¡Falló fijación de Fin de año',
+ 'Years' => '',
+ 'Yes' => 'Si',
+ 'You are logged out' => '¡Ud. está desconectado del sistema!',
+ 'You are posting an existing transaction!' => '',
+ 'You are printing and posting an existing transaction!' => '',
+ 'You are printing and saving an existing order' => '',
+ 'You are printing and saving an existing quotation' => '',
+ 'You are printing and saving an existing transaction!' => '',
+ 'You are saving an existing order' => '',
+ 'You are saving an existing quotation' => '',
+ 'You are saving an existing transaction!' => '',
+ 'You did not enter a name!' => 'No ha introducido un nombre',
+ 'You must enter a host and port for local and remote connections!' => 'Debe introducir una máquina servidor de bases de datos y un puerto para conexiones locales y remotas',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'account cannot be set to any other type of account' => 'No se puede cambiar a otro tipo de cuenta',
+ 'as at' => 'al',
+ 'days' => 'días',
+ 'does not exist' => 'no existe',
+ 'done' => 'hecho',
+ 'ea' => 'unid.',
+ 'failed' => '',
+ 'for' => '',
+ 'for Period' => 'para el periodo',
+ 'is already a member!' => 'ya es actualmente un miembro',
+ 'localhost' => 'máquina local',
+ 'locked!' => '¡Asegurado!',
+ 'partsgroup' => '',
+ 'posted!' => 'fijado',
+ 'sent' => 'enviado',
+ 'successfully created!' => 'creado satisfactoriamente',
+ 'successfully deleted!' => 'borrado satisfactoriamente',
+ 'time(s)' => '',
+ 'unexpected error!' => '',
+ 'website' => 'sitio web',
+};
+
+1;
diff --git a/locale/ec/am b/locale/ec/am
new file mode 100755
index 00000000..a863fb36
--- /dev/null
+++ b/locale/ec/am
@@ -0,0 +1,284 @@
+$self{texts} = {
+ 'AP' => 'Facturas de Proveedores',
+ 'AR' => 'Facturas de Ventas',
+ 'About' => 'Acerca de',
+ 'Account' => 'Cuenta',
+ 'Account Number' => 'Número de cuenta',
+ 'Account Number missing!' => 'No se ha definido el número de la cuenta',
+ 'Account Type' => 'Categoría de cuenta',
+ 'Account Type missing!' => 'No se ha definido el tipo de la cuenta',
+ 'Account deleted!' => '¡Cuenta borraba!',
+ 'Account does not exist!' => '¡Cuenta inexistente!',
+ 'Account saved!' => '¡Cuenta guardada!',
+ 'Accounting Menu' => 'Menú general',
+ 'Accrual' => 'Acumulado',
+ 'Activate Audit trail' => 'Activar rastros Auditables',
+ 'Add Account' => 'Añadir cuenta',
+ 'Add Business' => 'Adicionar Negocio',
+ 'Add Department' => 'Adicionar Departamento',
+ 'Add GIFI' => 'Añadir cuenta RUC',
+ 'Add Language' => 'Adicionar lenguage',
+ 'Add SIC' => 'Adicionar SIC',
+ 'Add Warehouse' => 'Adicionar Bodega',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Total',
+ 'Asset' => 'Activo',
+ 'Audit Control' => 'Control de auditoría',
+ 'Audit trail disabled' => 'Desabilitados rastros Audiotoriales',
+ 'Audit trail enabled' => '¡Iniciado rastros Auditoriales',
+ 'Audit trail removed up to' => 'Rastro Auditorial removido hasta',
+ 'Backup sent to' => 'Copia de seguridad enviada a',
+ 'Bin List' => 'Lista de Compatimiento',
+ 'Books are open' => 'Los libros están abiertos',
+ 'Business Number' => 'Numero de negocio',
+ 'Business deleted!' => '¡Negocio borrado!',
+ 'Business saved!' => '¡Negocio guardado!',
+ 'COGS' => 'Costo de los artículos',
+ 'Cannot delete account!' => '¡No se puede borrar la cuenta!',
+ 'Cannot delete default account!' => 'No se puede borrar la cuenta por omisión',
+ 'Cannot save account!' => '¡No se puede guardar la cuenta!',
+ 'Cannot save defaults!' => '¡No se puede grabar predeterminados!',
+ 'Cannot save preferences!' => '¡No se puede guardar las preferencias!',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Tiene que seleccionar cuenta!',
+ 'Cannot set multiple options for' => 'No se puede iniciar opciones multiples para',
+ 'Cash' => 'Efectivo',
+ 'Chart of Accounts' => 'Plan de cuentas',
+ 'Close Books up to' => 'Cerrar los libros hasta',
+ 'Code' => 'Código',
+ 'Code missing!' => '¡Falta Código!',
+ 'Company' => 'Empresa',
+ 'Confirm' => 'Confirmar',
+ 'Confirm!' => 'Confirmar',
+ 'Continue' => 'Continuar',
+ 'Contra' => 'Contra',
+ 'Copy to COA' => 'Copiar al plan de cuentas',
+ 'Cost Center' => 'Centro de Costos',
+ 'Credit' => 'Crédito',
+ 'Customer Number' => 'Número de Cliente',
+ 'Database Host' => 'Máquina servidor de base de datos',
+ 'Dataset' => 'Base de datos',
+ 'Date Format' => 'Formato de fecha',
+ 'Debit' => 'Débito',
+ 'Defaults saved!' => '¡Guardados Predeterminados!',
+ 'Delete' => 'Borrar',
+ 'Delete Account' => 'Borrar cuenta',
+ 'Department deleted!' => '¡Departamento borrado!',
+ 'Department saved!' => '¡Guardado Departamento!',
+ 'Departments' => 'Departamentos',
+ 'Description' => 'Descripción',
+ 'Description missing!' => '¡Falta descripción!',
+ 'Discount' => 'Descuento',
+ 'Dropdown Limit' => 'Límite de efectivo',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'Edit' => 'Editar',
+ 'Edit Account' => 'Editar cuenta',
+ 'Edit Business' => 'Editar Negocio',
+ 'Edit Department' => 'Editar Departamento',
+ 'Edit GIFI' => 'Editar PUC',
+ 'Edit Language' => 'Editar Idioma',
+ 'Edit Preferences for' => 'Editar preferencias de',
+ 'Edit SIC' => 'Edita CIS',
+ 'Edit Template' => 'Editar plantilla',
+ 'Edit Warehouse' => 'Editar bodega',
+ 'Employee Number' => 'Número de Empleado',
+ 'Enforce transaction reversal for all dates' => 'Forzar la anulación de las transacciones para todas las fechas',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Introduzca hasta 3 letras separadas por dos puntos (p.e. CAD:USD:EUR) para las monedas locales y las extranjeras',
+ 'Equity' => 'Balance',
+ 'Expense' => 'Gastos',
+ 'Expense/Asset' => 'Gastos/Activo',
+ 'Fax' => 'Fax',
+ 'Foreign Exchange Gain' => 'Ganancia en moneda extranjera',
+ 'Foreign Exchange Loss' => 'Pérdida en moneda extranjera',
+ 'GIFI' => 'Plan Único de Cuentas (PUC)',
+ 'GIFI deleted!' => '¡Borrado el código PUC!',
+ 'GIFI missing!' => 'No se ha definido el código PUC',
+ 'GIFI saved!' => '¡Guardado el código PUC!',
+ 'GL Transaction' => 'Nota de Contabilidad',
+ 'Heading' => 'Encabezado',
+ 'ID' => 'ID',
+ 'Include in drop-down menus' => 'Incluir en menúes desplegables:',
+ 'Income' => 'Ingresos',
+ 'Inventory' => 'Inventario',
+ 'Invoice' => 'Factura de Venta',
+ 'Is this a summary account to record' => '¿Es esta una cuenta de resumen a registrar?',
+ 'Language' => 'Lenguaje',
+ 'Language deleted!' => '¡Idiocmas borrados!',
+ 'Language saved!' => '¡Idiomas grabados!',
+ 'Languages' => 'Idiomas',
+ 'Last Numbers & Default Accounts' => 'Últimos números y cuentas por omisión',
+ 'Liability' => 'Pasivo',
+ 'Licensed to' => 'Adaptado para',
+ 'Link' => 'Enlaces',
+ 'Menu Width' => 'Ancho de Menú',
+ 'Method' => 'Método',
+ 'Month' => 'Mes',
+ 'Name' => 'Nombre',
+ 'No' => 'No',
+ 'No email address for' => 'Falta la dirección de correo electrónico de',
+ 'Number' => 'Número',
+ 'Number Format' => 'Formato de número',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de Empaque',
+ 'Password' => 'Contraseña',
+ 'Password does not match!' => '¡Contraseña incorrecta!',
+ 'Payables' => 'Pagos',
+ 'Payment' => 'Comprobante de Egreso',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Selección',
+ 'Postscript' => 'Postscript',
+ 'Preferences saved!' => 'Preferencias guardadas',
+ 'Print' => 'Imprimir',
+ 'Printer' => 'Impresora',
+ 'Profit Center' => 'Centro de Ganancias',
+ 'Purchase Order' => 'Pedido',
+ 'Purchase Order Number' => 'Número de Orden de Compra',
+ 'Purchase Orders' => 'Pedidos',
+ 'RFQ Number' => 'Número de Requerimiento de Cotización',
+ 'Rate' => 'Tarifa',
+ 'Receivables' => 'Cobros',
+ 'Reference' => 'Referencia',
+ 'Remove Audit trail up to' => 'Remover rastros de Audición hasta',
+ 'Retained Earnings' => 'Resultado del Ejercicio',
+ 'SIC deleted!' => '¡CIS borrado!',
+ 'SIC saved!' => '¡CIS grabado!',
+ 'Sales Invoice' => 'Factura de venta',
+ 'Sales Order' => 'Orden de Venta',
+ 'Sales Order Number' => 'N°de Pedido',
+ 'Sales Orders' => 'Ordenes de Venta',
+ 'Sales Quotation Number' => 'N°de Cotización de Venta',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Session Timeout' => '¡Sesión Caducó!',
+ 'Signature' => 'Firma',
+ 'Standard Industrial Codes' => 'Códigos Standart Industriales',
+ 'Stylesheet' => 'Hoja de estilo',
+ 'System Defaults' => 'Predeterminados del Sistema',
+ 'Tax' => 'Impuestos',
+ 'Template saved!' => '¡Plantilla guardada!',
+ 'Transaction' => 'Asiento',
+ 'Transaction reversal enforced for all dates' => 'Se ha forzado la anulación de las transacciones para todas las fechas',
+ 'Transaction reversal enforced up to' => 'Se ha forzado la anulación de las transacciones hasta',
+ 'Type of Business' => 'Tipo de Negocio',
+ 'Update' => 'Actualizar',
+ 'User' => 'Usuario',
+ 'Vendor Invoice' => 'Factura de proveedor',
+ 'Vendor Number' => 'Número de Proveedor',
+ 'Version' => 'Versión',
+ 'Warehouse deleted!' => '¡Bodega borrada',
+ 'Warehouse saved!' => '¡Bodega grabada!',
+ 'Warehouses' => 'Bodegas',
+ 'Weight Unit' => 'Unidad de peso',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Year' => 'Año',
+ 'Yearend' => 'Fin de año',
+ 'Yearend date missing!' => '¡Falta Fecha de Fin de Año!',
+ 'Yearend posted!' => '¡Fin de Año fijado!',
+ 'Yearend posting failed!' => '¡Falló fijación de Fin de año',
+ 'Yes' => 'Si',
+ 'account cannot be set to any other type of account' => 'No se puede cambiar a otro tipo de cuenta',
+ 'done' => 'hecho',
+ 'localhost' => 'máquina local',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'añadir_cuenta' => 'add_account',
+ 'adicionar_negocio' => 'add_business',
+ 'adicionar_departamento' => 'add_department',
+ 'adicionar_lenguage' => 'add_language',
+ 'adicionar_sic' => 'add_sic',
+ 'adicionar_bodega' => 'add_warehouse',
+ 'continuar' => 'continue',
+ 'copiar_al_plan_de_cuentas' => 'copy_to_coa',
+ 'borrar' => 'delete',
+ 'editar' => 'edit',
+ 'editar_cuenta' => 'edit_account',
+ 'guardar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/ec/ap b/locale/ec/ap
new file mode 100755
index 00000000..fd823022
--- /dev/null
+++ b/locale/ec/ap
@@ -0,0 +1,210 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Impagados Proveedores',
+ 'AP Transaction' => 'Transaccion Proveedor',
+ 'AP Transactions' => 'Gestiones de pagos',
+ 'AR Outstanding' => 'Impagados Cartera',
+ 'AR Transaction' => 'Gestión de cobro',
+ 'AR Transactions' => 'Gestiones de cobros',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Add AP Transaction' => 'Añadir Asiento de CxP',
+ 'Add AR Transaction' => 'Añadir Asiento de CxP',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Cantidad adeudada',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => '¿Está seguro de que desea borrar la transacción?',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => '¡No se puede borrar la transacción!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo ya cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar una transacción para un periodo cerrado',
+ 'Cannot post transaction!' => '¡No se puede registrar la transacción',
+ 'Cc' => 'Cc',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Cerrado',
+ 'Confirm!' => 'Confirmar',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Limite de credito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Date Paid' => 'Fecha de pago',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'Due Date missing!' => 'Falta la fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'Edit AP Transaction' => 'Editar Asiento de CxP',
+ 'Edit AR Transaction' => 'Editar Asiento de CxC',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate for payment missing!' => '¡Falta tasa de Cambio para pago!',
+ 'Exchange rate missing!' => '¡Falta Tasa de Cambio!',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Invoice' => 'Factura de Venta',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Manager' => 'Gerente',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Message' => 'Mensaje',
+ 'Month' => 'Mes',
+ 'No.' => 'No',
+ 'Notes' => 'Notas',
+ 'Nothing to print!' => '¡No hay nada que imprimir!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Number' => 'Número de orden',
+ 'PDF' => 'PDF',
+ 'Paid' => 'Pagado',
+ 'Payment date missing!' => 'No se encuentra la fecha de pago',
+ 'Payments' => 'Vencimientos impagados',
+ 'Period' => 'Período',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Muestre',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => '¡Proyecto no en archivo!',
+ 'Quarter' => 'Trimestre',
+ 'Receipt' => 'Recibo',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Resto',
+ 'Sales Invoice.' => 'Factura de venta.',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione de uno de los proyectos siguientes',
+ 'Select payment' => '¡Seleccione Pago!',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Ship to' => 'Destino',
+ 'Ship via' => 'Envio por',
+ 'Shipping Point' => 'Puerto de Embarque',
+ 'Source' => 'Fuente',
+ 'Startdate' => 'FechaInicio',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resúmen',
+ 'Tax' => 'Impuestos',
+ 'Tax Included' => 'Impuestos incluidos en el precio',
+ 'Till' => 'Caja',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Transaction' => 'Asiento',
+ 'Transaction deleted!' => '¡Transacción borrada!',
+ 'Transaction posted!' => '¡Transacción registrada!',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice.' => 'Factura de proveedor.',
+ 'Vendor missing!' => '¡Falta el proveedor!',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Warning!' => '¡Precaución!',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+ 'sent' => 'enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'transaccion_proveedor' => 'ap_transaction',
+ 'gestión_de_cobro' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'imprimir_y_muestre' => 'print_and_post',
+ 'factura_de_venta_' => 'sales_invoice_',
+ 'destino' => 'ship_to',
+ 'actualizar' => 'update',
+ 'factura_de_proveedor_' => 'vendor_invoice_',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/ec/ar b/locale/ec/ar
new file mode 100755
index 00000000..fd823022
--- /dev/null
+++ b/locale/ec/ar
@@ -0,0 +1,210 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Impagados Proveedores',
+ 'AP Transaction' => 'Transaccion Proveedor',
+ 'AP Transactions' => 'Gestiones de pagos',
+ 'AR Outstanding' => 'Impagados Cartera',
+ 'AR Transaction' => 'Gestión de cobro',
+ 'AR Transactions' => 'Gestiones de cobros',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Add AP Transaction' => 'Añadir Asiento de CxP',
+ 'Add AR Transaction' => 'Añadir Asiento de CxP',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Cantidad adeudada',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => '¿Está seguro de que desea borrar la transacción?',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => '¡No se puede borrar la transacción!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo ya cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar una transacción para un periodo cerrado',
+ 'Cannot post transaction!' => '¡No se puede registrar la transacción',
+ 'Cc' => 'Cc',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Cerrado',
+ 'Confirm!' => 'Confirmar',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Limite de credito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Date Paid' => 'Fecha de pago',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'Due Date missing!' => 'Falta la fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'Edit AP Transaction' => 'Editar Asiento de CxP',
+ 'Edit AR Transaction' => 'Editar Asiento de CxC',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate for payment missing!' => '¡Falta tasa de Cambio para pago!',
+ 'Exchange rate missing!' => '¡Falta Tasa de Cambio!',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Invoice' => 'Factura de Venta',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Manager' => 'Gerente',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Message' => 'Mensaje',
+ 'Month' => 'Mes',
+ 'No.' => 'No',
+ 'Notes' => 'Notas',
+ 'Nothing to print!' => '¡No hay nada que imprimir!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Number' => 'Número de orden',
+ 'PDF' => 'PDF',
+ 'Paid' => 'Pagado',
+ 'Payment date missing!' => 'No se encuentra la fecha de pago',
+ 'Payments' => 'Vencimientos impagados',
+ 'Period' => 'Período',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Muestre',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => '¡Proyecto no en archivo!',
+ 'Quarter' => 'Trimestre',
+ 'Receipt' => 'Recibo',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Resto',
+ 'Sales Invoice.' => 'Factura de venta.',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione de uno de los proyectos siguientes',
+ 'Select payment' => '¡Seleccione Pago!',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Ship to' => 'Destino',
+ 'Ship via' => 'Envio por',
+ 'Shipping Point' => 'Puerto de Embarque',
+ 'Source' => 'Fuente',
+ 'Startdate' => 'FechaInicio',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resúmen',
+ 'Tax' => 'Impuestos',
+ 'Tax Included' => 'Impuestos incluidos en el precio',
+ 'Till' => 'Caja',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Transaction' => 'Asiento',
+ 'Transaction deleted!' => '¡Transacción borrada!',
+ 'Transaction posted!' => '¡Transacción registrada!',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice.' => 'Factura de proveedor.',
+ 'Vendor missing!' => '¡Falta el proveedor!',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Warning!' => '¡Precaución!',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+ 'sent' => 'enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'transaccion_proveedor' => 'ap_transaction',
+ 'gestión_de_cobro' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'imprimir_y_muestre' => 'print_and_post',
+ 'factura_de_venta_' => 'sales_invoice_',
+ 'destino' => 'ship_to',
+ 'actualizar' => 'update',
+ 'factura_de_proveedor_' => 'vendor_invoice_',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/ec/arap b/locale/ec/arap
new file mode 100755
index 00000000..e968ab99
--- /dev/null
+++ b/locale/ec/arap
@@ -0,0 +1,51 @@
+$self{texts} = {
+ 'Address' => 'Dirección',
+ 'Bcc' => 'Bcc',
+ 'Cc' => 'Cc',
+ 'Continue' => 'Continuar',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Description' => 'Descripción',
+ 'E-mail' => 'Correo electrónico',
+ 'Message' => 'Mensaje',
+ 'Number' => 'Número',
+ 'Print' => 'Imprimir',
+ 'Project not on file!' => '¡Proyecto no en archivo!',
+ 'Reference' => 'Referencia',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione de uno de los proyectos siguientes',
+ 'Startdate' => 'FechaInicio',
+ 'Subject' => 'Asunto',
+ 'To' => 'Hasta ',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Warning!' => '¡Precaución!',
+ 'sent' => 'enviado',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/ec/arapprn b/locale/ec/arapprn
new file mode 100755
index 00000000..54ffd18e
--- /dev/null
+++ b/locale/ec/arapprn
@@ -0,0 +1,32 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Amount' => 'Total',
+ 'Continue' => 'Continuar',
+ 'Date' => 'Fecha',
+ 'Memo' => 'Memo',
+ 'Nothing to print!' => '¡No hay nada que imprimir!',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'Postscript',
+ 'Printed' => 'Impreso',
+ 'Screen' => 'Pantalla',
+ 'Select payment' => '¡Seleccione Pago!',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Source' => 'Fuente',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/ec/bp b/locale/ec/bp
new file mode 100755
index 00000000..a1ec4eb4
--- /dev/null
+++ b/locale/ec/bp
@@ -0,0 +1,67 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Are you sure you want to remove the marked entries from the queue?' => '¿Está seguro de que quiere borrar las entradas señaladas de la cola?',
+ 'Bin Lists' => 'Listas de Compatimiento',
+ 'Cannot remove files!' => '¡No se puede remover archivos!',
+ 'Confirm!' => 'Confirmar',
+ 'Continue' => 'Continuar',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Date' => 'Fecha',
+ 'Employee' => 'Colaborador/Empleado',
+ 'From' => 'Desde',
+ 'ID' => 'ID',
+ 'Invoice' => 'Factura de Venta',
+ 'Invoice Number' => 'Número de factura',
+ 'Marked entries printed!' => '¡Impresas las entradas marcadas!',
+ 'Month' => 'Mes',
+ 'Order' => 'Orden',
+ 'Order Number' => 'Número de orden',
+ 'Packing Lists' => 'Lista de Empaque',
+ 'Period' => 'Período',
+ 'Pick Lists' => 'Listas de Selección',
+ 'Print' => 'Imprimir',
+ 'Purchase Orders' => 'Pedidos',
+ 'Quarter' => 'Trimestre',
+ 'Quotation' => 'Cotización',
+ 'Quotation Number' => 'Número de Cotización',
+ 'Quotations' => 'Cotizaciones',
+ 'RFQs' => 'Requerimiento de Cotizaciónes',
+ 'Remove' => 'Remover',
+ 'Removed spoolfiles!' => 'Archivos de ',
+ 'Removing marked entries from queue ...' => 'Removiendo entradas marcadas de la cola...',
+ 'Sales Invoices' => 'Facturas de Ventas',
+ 'Sales Orders' => 'Ordenes de Venta',
+ 'Select all' => 'Seleccione todo',
+ 'Spoolfile' => 'Archivo de carrete',
+ 'To' => 'Hasta ',
+ 'Vendor' => 'Proveedor',
+ 'Work Orders' => 'Ordenes de Trabajo',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+ 'done' => 'hecho',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'imprimir' => 'print',
+ 'remover' => 'remove',
+ 'seleccione_todo' => 'select_all',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/ec/ca b/locale/ec/ca
new file mode 100755
index 00000000..26c25458
--- /dev/null
+++ b/locale/ec/ca
@@ -0,0 +1,59 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Balance',
+ 'Chart of Accounts' => 'Plan de cuentas',
+ 'Credit' => 'Crédito',
+ 'Current' => 'Actual',
+ 'Date' => 'Fecha',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descripción',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'GIFI' => 'Plan Único de Cuentas (PUC)',
+ 'Include in Report' => 'Incluir en informe',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'List Transactions' => 'Listar transacciones',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Month' => 'Mes',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Period' => 'Período',
+ 'Project Number' => 'número del projecto',
+ 'Quarter' => 'Trimestre',
+ 'R' => 'Reconciliado',
+ 'Reference' => 'Referencia',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'Hasta ',
+ 'Year' => 'Año',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'listar_transacciones' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/ec/cp b/locale/ec/cp
new file mode 100755
index 00000000..e2335eb0
--- /dev/null
+++ b/locale/ec/cp
@@ -0,0 +1,123 @@
+$self{texts} = {
+ 'AP' => 'Facturas de Proveedores',
+ 'AR' => 'Facturas de Ventas',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Address' => 'Dirección',
+ 'All' => 'Todos',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Cantidad adeudada',
+ 'Bcc' => 'Bcc',
+ 'Cannot post Payment!' => 'No se puede desplegar Pago',
+ 'Cannot post Receipt!' => 'No se puede desplegar Recibo',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo ya cerrado!',
+ 'Cc' => 'Cc',
+ 'Continue' => 'Continuar',
+ 'Currency' => 'Moneda',
+ 'Customer' => 'Cliente',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Date missing!' => '¡Falta la fecha!',
+ 'Department' => 'Departamento',
+ 'Deposit' => 'Depósito',
+ 'Description' => 'Descripción',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate missing!' => '¡Falta Tasa de Cambio!',
+ 'From' => 'Desde',
+ 'Invoice' => 'Factura de Venta',
+ 'Invoices' => 'Facturas',
+ 'Language' => 'Lenguaje',
+ 'Memo' => 'Memo',
+ 'Message' => 'Mensaje',
+ 'Number' => 'Número',
+ 'PDF' => 'PDF',
+ 'Payment' => 'Comprobante de Egreso',
+ 'Payment posted!' => '¡Pago registrado!',
+ 'Payments' => 'Vencimientos impagados',
+ 'Post' => 'Registrar',
+ 'Postscript' => 'Postscript',
+ 'Prepayment' => 'Prepago',
+ 'Print' => 'Imprimir',
+ 'Project not on file!' => '¡Proyecto no en archivo!',
+ 'Receipt' => 'Recibo',
+ 'Receipt posted!' => '¡Recibo desplegado!',
+ 'Receipts' => 'Recibos',
+ 'Reference' => 'Referencia',
+ 'Screen' => 'Pantalla',
+ 'Select' => 'Seleccione',
+ 'Select all' => 'Seleccione todo',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione de uno de los proyectos siguientes',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Source' => 'Fuente',
+ 'Startdate' => 'FechaInicio',
+ 'Subject' => 'Asunto',
+ 'To' => 'Hasta ',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Warning!' => '¡Precaución!',
+ 'sent' => 'enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuar' => 'continue',
+ 'registrar' => 'post',
+ 'imprimir' => 'print',
+ 'seleccione_todo' => 'select_all',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/ec/ct b/locale/ec/ct
new file mode 100755
index 00000000..078b6ccc
--- /dev/null
+++ b/locale/ec/ct
@@ -0,0 +1,186 @@
+$self{texts} = {
+ 'AP Transaction' => 'Transaccion Proveedor',
+ 'AP Transactions' => 'Gestiones de pagos',
+ 'AR Transaction' => 'Gestión de cobro',
+ 'AR Transactions' => 'Gestiones de cobros',
+ 'Accounting Menu' => 'Menú general',
+ 'Active' => 'Activo',
+ 'Add Customer' => 'Añadir cliente',
+ 'Add Vendor' => 'Añadir proveedor',
+ 'Address' => 'Dirección',
+ 'All' => 'Todos',
+ 'Amount' => 'Total',
+ 'BIC' => 'Swift',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Dirección de Cobro',
+ 'Break' => '¡Roto!',
+ 'Cannot delete customer!' => '¡No se puede borrar el cliente!',
+ 'Cannot delete vendor!' => '¡No se puede borrar el vendedor!',
+ 'Cc' => 'Cc',
+ 'City' => 'Ciudad',
+ 'Closed' => 'Cerrado',
+ 'Company Name' => 'Nombre de Compañía',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Cost' => 'Costo',
+ 'Could not save pricelist!' => '¡No se puede grabar lista de precios!',
+ 'Country' => 'País',
+ 'Credit Limit' => 'Limite de credito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Customer History' => 'Historial del Cliente',
+ 'Customer Number' => 'Número de Cliente',
+ 'Customer deleted!' => '¡Cliente borrado!',
+ 'Customer saved!' => '¡Cliente guardado!',
+ 'Customers' => 'Clientes',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Discount' => 'Descuento',
+ 'E-mail' => 'Correo electrónico',
+ 'Edit Customer' => 'Editar Cliente',
+ 'Edit Vendor' => 'Editar Proveedor',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Enddate' => 'Fecha Final',
+ 'Fax' => 'Fax',
+ 'From' => 'Desde',
+ 'GIFI' => 'Plan Único de Cuentas (PUC)',
+ 'Group' => 'Grupo',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Invoice' => 'Factura de Venta',
+ 'Item already on pricelist!' => '¡Artículo existe en lista de precios!',
+ 'Item not on file!' => 'El concepto no se encuentra en ningún archivo',
+ 'Language' => 'Lenguaje',
+ 'Leadtime' => 'Plazo',
+ 'Manager' => 'Gerente',
+ 'Name' => 'Nombre',
+ 'Name missing!' => '¡Falta el nombre!',
+ 'No.' => 'No',
+ 'Notes' => 'Notas',
+ 'Number' => 'Número',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Orphaned' => 'Independiente',
+ 'POS' => 'PdV',
+ 'Phone' => 'Teléfono',
+ 'Pricegroup' => 'Preciogrupo',
+ 'Pricelist' => 'Lista de Precios',
+ 'Project Number' => 'número del projecto',
+ 'Purchase Order' => 'Pedido',
+ 'Purchase Orders' => 'Pedidos',
+ 'Qty' => 'Cantidad',
+ 'Quotation' => 'Cotización',
+ 'Quotations' => 'Cotizaciones',
+ 'RFQ' => 'Requerimiento de Cotización',
+ 'Request for Quotations' => 'Pedido de Cotizaciónes',
+ 'SIC' => 'Código Industrial Estandard',
+ 'SKU' => 'Unidad de Mantenimiento de Stock',
+ 'Sales Invoice' => 'Factura de venta',
+ 'Sales Invoices' => 'Facturas de Ventas',
+ 'Sales Order' => 'Orden de Venta',
+ 'Sales Orders' => 'Ordenes de Venta',
+ 'Salesperson' => 'Vendedor',
+ 'Save' => 'Guardar',
+ 'Save Pricelist' => 'Lista de Precios Guardada',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Search' => 'Buscar',
+ 'Sell Price' => 'Precio de venta',
+ 'Serial Number' => 'Número Serie',
+ 'Shipping Address' => 'Dirección de Embarque',
+ 'Startdate' => 'FechaInicio',
+ 'State' => 'Estado',
+ 'State/Province' => 'Estado/Provincia',
+ 'Sub-contract GIFI' => 'RUC',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resúmen',
+ 'Tax' => 'Impuestos',
+ 'Tax Included' => 'Impuestos incluidos en el precio',
+ 'Tax Number' => 'Número de Impuesto',
+ 'Tax Number / SSN' => 'Número de Impuesto / SSN',
+ 'Taxable' => 'Impuestos gravables',
+ 'Terms' => 'Términos',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Type of Business' => 'Tipo de Negocio',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Vendor History' => 'Historia de Proveedor',
+ 'Vendor Invoice' => 'Factura de proveedor',
+ 'Vendor Invoices' => 'Facturas de proveedor',
+ 'Vendor Number' => 'Número de Proveedor',
+ 'Vendor deleted!' => '¡Proveedor borrado!',
+ 'Vendor saved!' => '¡Proveedor guardado!',
+ 'Vendors' => 'Proveedores',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'days' => 'días',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'transaccion_proveedor' => 'ap_transaction',
+ 'gestión_de_cobro' => 'ar_transaction',
+ 'añadir_cliente' => 'add_customer',
+ 'añadir_proveedor' => 'add_vendor',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'pdv' => 'pos',
+ 'lista_de_precios' => 'pricelist',
+ 'pedido' => 'purchase_order',
+ 'cotización' => 'quotation',
+ 'requerimiento_de_cotización' => 'rfq',
+ 'factura_de_venta' => 'sales_invoice',
+ 'orden_de_venta' => 'sales_order',
+ 'guardar' => 'save',
+ 'lista_de_precios_guardada' => 'save_pricelist',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+ 'factura_de_proveedor' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/ec/gl b/locale/ec/gl
new file mode 100755
index 00000000..f1a83bfe
--- /dev/null
+++ b/locale/ec/gl
@@ -0,0 +1,158 @@
+$self{texts} = {
+ 'AP Transaction' => 'Transaccion Proveedor',
+ 'AR Transaction' => 'Gestión de cobro',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Add Cash Transfer Transaction' => 'Agregar transacción',
+ 'Add General Ledger Transaction' => 'Añadir Nota de Contabilidad',
+ 'Address' => 'Dirección',
+ 'All' => 'Todos',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => '¿Está seguro de que desea borrar la transacción?',
+ 'Asset' => 'Activo',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Balance',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => '¡No se puede borrar la transacción!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar una transacción para un periodo cerrado',
+ 'Cannot post transaction!' => '¡No se puede registrar la transacción',
+ 'Cc' => 'Cc',
+ 'Confirm!' => 'Confirmar',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Current' => 'Actual',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descripción',
+ 'E-mail' => 'Correo electrónico',
+ 'Edit Cash Transfer Transaction' => 'Editar Transacción en Effectivo',
+ 'Edit General Ledger Transaction' => 'Editar Notas Contables',
+ 'Equity' => 'Balance',
+ 'Expense' => 'Gastos',
+ 'FX' => 'Tasa de Cambio',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'GIFI' => 'Plan Único de Cuentas (PUC)',
+ 'GL Transaction' => 'Nota de Contabilidad',
+ 'General Ledger' => 'Notas de Contabilidad',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Income' => 'Ingresos',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Liability' => 'Pasivo',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Message' => 'Mensaje',
+ 'Month' => 'Mes',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Out of balance transaction!' => '¡Transacción Fuera de BAlance',
+ 'Period' => 'Período',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Print' => 'Imprimir',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => '¡Proyecto no en archivo!',
+ 'Quarter' => 'Trimestre',
+ 'R' => 'Reconciliado',
+ 'Reference' => 'Referencia',
+ 'Reports' => 'Informes',
+ 'Sales Invoice ' => 'Factura de venta ',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione de uno de los proyectos siguientes',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Source' => 'Fuente',
+ 'Startdate' => 'FechaInicio',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'Hasta ',
+ 'Transaction Date missing!' => 'No se ha definido la fecha de la transacción',
+ 'Transaction deleted!' => '¡Transacción borrada!',
+ 'Transaction posted!' => '¡Transacción registrada!',
+ 'Update' => 'Actualizar',
+ 'Vendor Invoice ' => 'Factura de proveedor ',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Warning!' => '¡Precaución!',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+ 'sent' => 'enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'transaccion_proveedor' => 'ap_transaction',
+ 'gestión_de_cobro' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'nota_de_contabilidad' => 'gl_transaction',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'factura_de_venta_' => 'sales_invoice_',
+ 'actualizar' => 'update',
+ 'factura_de_proveedor_' => 'vendor_invoice_',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/ec/hr b/locale/ec/hr
new file mode 100755
index 00000000..de3eccec
--- /dev/null
+++ b/locale/ec/hr
@@ -0,0 +1,117 @@
+$self{texts} = {
+ 'AP' => 'Facturas de Proveedores',
+ 'Above' => 'Arriba',
+ 'Accounting Menu' => 'Menú general',
+ 'Active' => 'Activo',
+ 'Add Deduction' => 'Añadir Deducción',
+ 'Add Employee' => 'Añadir Empleado',
+ 'Address' => 'Dirección',
+ 'Administrator' => 'Administrador',
+ 'After Deduction' => 'Después de Deducción',
+ 'All' => 'Todos',
+ 'Allowances' => 'Permisos',
+ 'Amount' => 'Total',
+ 'Amount missing!' => 'Valor faltante',
+ 'BIC' => 'Swift',
+ 'Based on' => 'Basado en',
+ 'Before Deduction' => 'Antes de la Deducción',
+ 'Below' => 'Abajo',
+ 'City' => 'Ciudad',
+ 'Continue' => 'Continuar',
+ 'Country' => 'País',
+ 'DOB' => 'Fecha de Nacimiento',
+ 'Deduct after' => 'Deducir luego',
+ 'Deduction deleted!' => '¡Deducción borrada!',
+ 'Deduction saved!' => '¡Guardada Deducción!',
+ 'Deductions' => 'Deducciones',
+ 'Delete' => 'Borrar',
+ 'Description' => 'Descripción',
+ 'Description missing!' => '¡Falta descripción!',
+ 'E-mail' => 'Correo electrónico',
+ 'Edit Deduction' => 'Editar Deducción',
+ 'Edit Employee' => 'Editar Empleado',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Employee Name' => 'Empleado',
+ 'Employee Number' => 'Número de Empleado',
+ 'Employee deleted!' => '¡Empleado borrado!',
+ 'Employee pays' => 'Empleado paga',
+ 'Employee saved!' => '¡Empleado salvado!',
+ 'Employees' => 'Empleados',
+ 'Employer' => 'Empleador',
+ 'Employer pays' => 'Empleador paga',
+ 'Enddate' => 'Fecha Final',
+ 'Expense' => 'Gastos',
+ 'From' => 'Desde',
+ 'Home Phone' => 'Teléfono del Hogar',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Login' => 'Entrar',
+ 'Manager' => 'Gerente',
+ 'Maximum' => 'Máximo',
+ 'Name' => 'Nombre',
+ 'Name missing!' => '¡Falta el nombre!',
+ 'Notes' => 'Notas',
+ 'Number' => 'Número',
+ 'Orphaned' => 'Independiente',
+ 'Payroll Deduction' => 'Descuento del Rol de Pagos',
+ 'Rate' => 'Tarifa',
+ 'Rate missing!' => 'Falta Tarifa',
+ 'Role' => 'Rol',
+ 'S' => 'S',
+ 'SSN' => 'Número de Seguro Social',
+ 'Sales' => 'Ventas',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Startdate' => 'FechaInicio',
+ 'State/Province' => 'Estado/Provincia',
+ 'Supervisor' => 'Supervisor',
+ 'To' => 'Hasta ',
+ 'Update' => 'Actualizar',
+ 'User' => 'Usuario',
+ 'Work Phone' => 'Teléfono del trabajo',
+ 'Zip/Postal Code' => 'Código Postal',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'añadir_deducción' => 'add_deduction',
+ 'añadir_empleado' => 'add_employee',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'guardar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/ec/ic b/locale/ec/ic
new file mode 100755
index 00000000..7c6d5227
--- /dev/null
+++ b/locale/ec/ic
@@ -0,0 +1,277 @@
+$self{texts} = {
+ 'A' => 'A',
+ 'Accounting Menu' => 'Menú general',
+ 'Accounts' => 'Cuentas',
+ 'Accrual' => 'Acumulado',
+ 'Active' => 'Activo',
+ 'Add' => 'Añadir',
+ 'Add Assembly' => 'Añadir compuesto',
+ 'Add Labor/Overhead' => 'Adicionar Mano de Obra',
+ 'Add Part' => 'Añadir artículo',
+ 'Add Purchase Order' => 'Añadir pedido',
+ 'Add Quotation' => 'Añadir Cotización',
+ 'Add Request for Quotation' => 'Añadir Pedido de Cotización',
+ 'Add Sales Order' => 'Añadir cotización',
+ 'Add Service' => 'Añadir servicio',
+ 'Address' => 'Dirección',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Assemblies' => 'Compuestos',
+ 'Assemblies restocked!' => '¡Compuestos actualizados en almacen!',
+ 'Assembly' => 'Ensamblaje',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'BOM' => 'Listado de piezas',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Dirección de Cobro',
+ 'Bin' => 'Compatimiento',
+ 'Bin List' => 'Lista de Compatimiento',
+ 'Break' => '¡Roto!',
+ 'COGS' => 'Costo de los artículos',
+ 'Cannot delete item!' => '¡No se puede borrar el artículo!',
+ 'Cannot stock assemblies!' => '¡No se pueden almacenar los compuestos!',
+ 'Cash' => 'Efectivo',
+ 'Cc' => 'Cc',
+ 'Check Inventory' => 'Revisar Inventario',
+ 'City' => 'Ciudad',
+ 'Closed' => 'Cerrado',
+ 'Company Name' => 'Nombre de Compañía',
+ 'Components' => 'Componentes',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Cost' => 'Costo',
+ 'Country' => 'País',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Customer' => 'Cliente',
+ 'Customer Number' => 'Número de Cliente',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Drawing' => 'Reintegro',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'E-mailed' => '¡Enviado por Correo-e!',
+ 'Edit Assembly' => 'Editar compuesto',
+ 'Edit Labor/Overhead' => 'Editar Mano de Obra',
+ 'Edit Part' => 'Editar compuesto',
+ 'Edit Service' => 'Editar servicio',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Expense' => 'Gastos',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'Group' => 'Grupo',
+ 'Image' => 'Imagen',
+ 'In-line' => 'Incrustado',
+ 'Include in Report' => 'Incluir en informe',
+ 'Income' => 'Ingresos',
+ 'Individual Items' => 'Artículos individuales',
+ 'Inventory' => 'Inventario',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'La cantidad en inventario debe ser cero antes de cambiar este compuesto a obsoleto',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'La cantidad en inventario debe ser cero antes de cambiar este artículo a obsoleto',
+ 'Invoice' => 'Factura de Venta',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Invoice Number missing!' => 'No se ha definido el número de la factura',
+ 'Item deleted!' => '¡Concepto borrado!',
+ 'Item not on file!' => 'El concepto no se encuentra en ningún archivo',
+ 'Items' => 'Artículos',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Labor/Overhead' => 'Mano de Obra',
+ 'Leadtime' => 'Plazo',
+ 'Line Total' => 'Total de la línea',
+ 'Link Accounts' => 'Enlazar cuentas',
+ 'List' => 'Lista',
+ 'List Price' => 'Precio de lista',
+ 'Make' => 'Marca',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'Markup' => 'Margen de Beneficio',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Message' => 'Mensaje',
+ 'Microfiche' => 'Microficha',
+ 'Model' => 'Modelo',
+ 'Name' => 'Nombre',
+ 'No.' => 'No',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se ha definido el número en la fila',
+ 'Obsolete' => 'Obsoleto',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'On Hand' => 'Disponible',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Date missing!' => 'No se ha definido la fecha de la elaboración',
+ 'Order Number' => 'Número de orden',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'Orphaned' => 'Independiente',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de Empaque',
+ 'Packing List Date missing!' => 'No se ha definido la fecha del albarán',
+ 'Packing List Number missing!' => 'No se ha definido el número del albarán',
+ 'Part' => 'Artículo',
+ 'Parts' => 'Artículos',
+ 'Period' => 'Período',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Selección',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Pricegroup' => 'Preciogrupo',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Purchase Order' => 'Pedido',
+ 'Purchase Orders' => 'Pedidos',
+ 'Qty' => 'Cantidad',
+ 'Quantity exceeds available units to stock!' => '¡La cantidad exede la unidades disponibles en inventario!',
+ 'Quotation' => 'Cotización',
+ 'Quotation Date missing!' => 'Falta Fecha de Cotización',
+ 'Quotation Number missing!' => 'Falta número de Cotización',
+ 'Quotations' => 'Cotizaciones',
+ 'RFQ' => 'Requerimiento de Cotización',
+ 'ROP' => 'Tope de envio',
+ 'Recd' => 'Cobrado',
+ 'Required by' => 'Solicitado por',
+ 'SKU' => 'Unidad de Mantenimiento de Stock',
+ 'Sales Invoice' => 'Factura de venta',
+ 'Sales Invoices' => 'Facturas de Ventas',
+ 'Sales Order' => 'Orden de Venta',
+ 'Sales Orders' => 'Ordenes de Venta',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select txt, postscript or PDF!' => '¡Seleccione txt, postscript o PDF!',
+ 'Sell' => 'Venta',
+ 'Sell Price' => 'Precio de venta',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'Nº de Serie',
+ 'Serial Number' => 'Número Serie',
+ 'Service' => 'Servicio',
+ 'Services' => 'Servicios',
+ 'Ship' => 'Envio',
+ 'Ship to' => 'Destino',
+ 'Shipping Address' => 'Dirección de Embarque',
+ 'Short' => 'Corto',
+ 'State/Province' => 'Estado/Provincia',
+ 'Stock' => 'Inventario',
+ 'Stock Assembly' => 'Inventariar compuesto',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resúmen',
+ 'Tax' => 'Impuestos',
+ 'To' => 'Hasta ',
+ 'Top Level' => 'Nivel superior',
+ 'Translation not on file!' => '¡Traducción no en archivo!',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Updated' => '¡Actualizado!',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice' => 'Factura de proveedor',
+ 'Vendor Invoices' => 'Facturas de proveedor',
+ 'Vendor Number' => 'Número de Proveedor',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Warehouse' => 'Bodega',
+ 'Weight' => 'Peso',
+ 'What type of item is this?' => '¿De qué tipo es este concepto?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Year' => 'Año',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'days' => 'días',
+ 'sent' => 'enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'añadir_compuesto' => 'add_assembly',
+ 'adicionar_mano_de_obra' => 'add_labor_overhead',
+ 'añadir_artículo' => 'add_part',
+ 'añadir_servicio' => 'add_service',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'editar_compuesto' => 'edit_assembly',
+ 'editar_compuesto' => 'edit_part',
+ 'editar_servicio' => 'edit_service',
+ 'guardar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/ec/io b/locale/ec/io
new file mode 100755
index 00000000..64d81aec
--- /dev/null
+++ b/locale/ec/io
@@ -0,0 +1,130 @@
+$self{texts} = {
+ 'Add Purchase Order' => 'Añadir pedido',
+ 'Add Quotation' => 'Añadir Cotización',
+ 'Add Request for Quotation' => 'Añadir Pedido de Cotización',
+ 'Add Sales Order' => 'Añadir cotización',
+ 'Address' => 'Dirección',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Dirección de Cobro',
+ 'Bin' => 'Compatimiento',
+ 'Bin List' => 'Lista de Compatimiento',
+ 'Cc' => 'Cc',
+ 'City' => 'Ciudad',
+ 'Company Name' => 'Nombre de Compañía',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Country' => 'País',
+ 'Customer Number' => 'Número de Cliente',
+ 'Date' => 'Fecha',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Description' => 'Descripción',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'E-mailed' => '¡Enviado por Correo-e!',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'Group' => 'Grupo',
+ 'In-line' => 'Incrustado',
+ 'Invoice' => 'Factura de Venta',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number missing!' => 'No se ha definido el número de la factura',
+ 'Item not on file!' => 'El concepto no se encuentra en ningún archivo',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Message' => 'Mensaje',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se ha definido el número en la fila',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Order Date missing!' => 'No se ha definido la fecha de la elaboración',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de Empaque',
+ 'Packing List Date missing!' => 'No se ha definido la fecha del albarán',
+ 'Packing List Number missing!' => 'No se ha definido el número del albarán',
+ 'Part' => 'Artículo',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Selección',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Purchase Order' => 'Pedido',
+ 'Qty' => 'Cantidad',
+ 'Quotation' => 'Cotización',
+ 'Quotation Date missing!' => 'Falta Fecha de Cotización',
+ 'Quotation Number missing!' => 'Falta número de Cotización',
+ 'Recd' => 'Cobrado',
+ 'Required by' => 'Solicitado por',
+ 'SKU' => 'Unidad de Mantenimiento de Stock',
+ 'Sales Order' => 'Orden de Venta',
+ 'Screen' => 'Pantalla',
+ 'Select txt, postscript or PDF!' => '¡Seleccione txt, postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'Nº de Serie',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Envio',
+ 'Ship to' => 'Destino',
+ 'Shipping Address' => 'Dirección de Embarque',
+ 'State/Province' => 'Estado/Provincia',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'Hasta ',
+ 'Translation not on file!' => '¡Traducción no en archivo!',
+ 'Unit' => 'Unidad',
+ 'Vendor Number' => 'Número de Proveedor',
+ 'What type of item is this?' => '¿De qué tipo es este concepto?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'sent' => 'enviado',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/ec/ir b/locale/ec/ir
new file mode 100755
index 00000000..9286000b
--- /dev/null
+++ b/locale/ec/ir
@@ -0,0 +1,224 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Add Purchase Order' => 'Añadir pedido',
+ 'Add Quotation' => 'Añadir Cotización',
+ 'Add Request for Quotation' => 'Añadir Pedido de Cotización',
+ 'Add Sales Order' => 'Añadir cotización',
+ 'Add Vendor Invoice' => 'Agregar Factura de Proveedor',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => '¿Esta seguro de que desea borrar la factura número',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Dirección de Cobro',
+ 'Bin' => 'Compatimiento',
+ 'Bin List' => 'Lista de Compatimiento',
+ 'Cannot delete invoice!' => '¡No se puede borrar la factura!',
+ 'Cannot post invoice for a closed period!' => '¡No se puede registrar una factura en un periodo ya cerrado!',
+ 'Cannot post invoice!' => '¡No se puede registrar la factura!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo ya cerrado!',
+ 'Cc' => 'Cc',
+ 'City' => 'Ciudad',
+ 'Company Name' => 'Nombre de Compañía',
+ 'Confirm!' => 'Confirmar',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Country' => 'País',
+ 'Credit Limit' => 'Limite de credito',
+ 'Currency' => 'Moneda',
+ 'Customer Number' => 'Número de Cliente',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descripción',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'E-mailed' => '¡Enviado por Correo-e!',
+ 'Edit Vendor Invoice' => 'Editar factura de Proveedor',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate for payment missing!' => '¡Falta tasa de Cambio para pago!',
+ 'Exchange rate missing!' => '¡Falta Tasa de Cambio!',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'Group' => 'Grupo',
+ 'In-line' => 'Incrustado',
+ 'Internal Notes' => 'Notas Internas',
+ 'Invoice' => 'Factura de Venta',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Invoice Number missing!' => 'No se ha definido el número de la factura',
+ 'Invoice deleted!' => '¡Factura borrada!',
+ 'Item not on file!' => 'El concepto no se encuentra en ningún archivo',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Language' => 'Lenguaje',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Message' => 'Mensaje',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se ha definido el número en la fila',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Order Date missing!' => 'No se ha definido la fecha de la elaboración',
+ 'Order Number' => 'Número de orden',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de Empaque',
+ 'Packing List Date missing!' => 'No se ha definido la fecha del albarán',
+ 'Packing List Number missing!' => 'No se ha definido el número del albarán',
+ 'Part' => 'Artículo',
+ 'Payment date missing!' => 'No se encuentra la fecha de pago',
+ 'Payments' => 'Vencimientos impagados',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Selección',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => '¡Proyecto no en archivo!',
+ 'Purchase Order' => 'Pedido',
+ 'Qty' => 'Cantidad',
+ 'Quotation' => 'Cotización',
+ 'Quotation Date missing!' => 'Falta Fecha de Cotización',
+ 'Quotation Number missing!' => 'Falta número de Cotización',
+ 'Recd' => 'Cobrado',
+ 'Record in' => 'Registrar en',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Resto',
+ 'Required by' => 'Solicitado por',
+ 'SKU' => 'Unidad de Mantenimiento de Stock',
+ 'Sales Order' => 'Orden de Venta',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione de uno de los proyectos siguientes',
+ 'Select txt, postscript or PDF!' => '¡Seleccione txt, postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'Nº de Serie',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Envio',
+ 'Ship to' => 'Destino',
+ 'Shipping Address' => 'Dirección de Embarque',
+ 'Source' => 'Fuente',
+ 'Startdate' => 'FechaInicio',
+ 'State/Province' => 'Estado/Provincia',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Tax Included' => 'Impuestos incluidos en el precio',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Translation not on file!' => '¡Traducción no en archivo!',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Number' => 'Número de Proveedor',
+ 'Vendor missing!' => '¡Falta el proveedor!',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Warning!' => '¡Precaución!',
+ 'What type of item is this?' => '¿De qué tipo es este concepto?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Yes' => 'Si',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'ea' => 'unid.',
+ 'posted!' => 'fijado',
+ 'sent' => 'enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'pedido' => 'purchase_order',
+ 'actualizar' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/ec/is b/locale/ec/is
new file mode 100755
index 00000000..40b968e6
--- /dev/null
+++ b/locale/ec/is
@@ -0,0 +1,235 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Add Purchase Order' => 'Añadir pedido',
+ 'Add Quotation' => 'Añadir Cotización',
+ 'Add Request for Quotation' => 'Añadir Pedido de Cotización',
+ 'Add Sales Invoice' => 'Añadir factura',
+ 'Add Sales Order' => 'Añadir cotización',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => '¿Esta seguro de que desea borrar la factura número',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Dirección de Cobro',
+ 'Bin' => 'Compatimiento',
+ 'Bin List' => 'Lista de Compatimiento',
+ 'Business' => 'Negocio',
+ 'Cannot delete invoice!' => '¡No se puede borrar la factura!',
+ 'Cannot post invoice for a closed period!' => '¡No se puede registrar una factura en un periodo ya cerrado!',
+ 'Cannot post invoice!' => '¡No se puede registrar la factura!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo ya cerrado!',
+ 'Cc' => 'Cc',
+ 'City' => 'Ciudad',
+ 'Company Name' => 'Nombre de Compañía',
+ 'Confirm!' => 'Confirmar',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Country' => 'País',
+ 'Credit Limit' => 'Limite de credito',
+ 'Currency' => 'Moneda',
+ 'Customer' => 'Cliente',
+ 'Customer Number' => 'Número de Cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descripción',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'E-mailed' => '¡Enviado por Correo-e!',
+ 'Edit Sales Invoice' => 'Edirar factura de venta',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate for payment missing!' => '¡Falta tasa de Cambio para pago!',
+ 'Exchange rate missing!' => '¡Falta Tasa de Cambio!',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'Group' => 'Grupo',
+ 'In-line' => 'Incrustado',
+ 'Internal Notes' => 'Notas Internas',
+ 'Invoice' => 'Factura de Venta',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Invoice Number missing!' => 'No se ha definido el número de la factura',
+ 'Invoice deleted!' => '¡Factura borrada!',
+ 'Item not on file!' => 'El concepto no se encuentra en ningún archivo',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Message' => 'Mensaje',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se ha definido el número en la fila',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Order Date missing!' => 'No se ha definido la fecha de la elaboración',
+ 'Order Number' => 'Número de orden',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de Empaque',
+ 'Packing List Date missing!' => 'No se ha definido la fecha del albarán',
+ 'Packing List Number missing!' => 'No se ha definido el número del albarán',
+ 'Part' => 'Artículo',
+ 'Payment date missing!' => 'No se encuentra la fecha de pago',
+ 'Payments' => 'Vencimientos impagados',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Selección',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Muestre',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => '¡Proyecto no en archivo!',
+ 'Purchase Order' => 'Pedido',
+ 'Qty' => 'Cantidad',
+ 'Quotation' => 'Cotización',
+ 'Quotation Date missing!' => 'Falta Fecha de Cotización',
+ 'Quotation Number missing!' => 'Falta número de Cotización',
+ 'Recd' => 'Cobrado',
+ 'Record in' => 'Registrar en',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Resto',
+ 'Required by' => 'Solicitado por',
+ 'SKU' => 'Unidad de Mantenimiento de Stock',
+ 'Sales Order' => 'Orden de Venta',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione de uno de los proyectos siguientes',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Select txt, postscript or PDF!' => '¡Seleccione txt, postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'Nº de Serie',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Envio',
+ 'Ship to' => 'Destino',
+ 'Ship via' => 'Envio por',
+ 'Shipping Address' => 'Dirección de Embarque',
+ 'Shipping Point' => 'Puerto de Embarque',
+ 'Source' => 'Fuente',
+ 'Startdate' => 'FechaInicio',
+ 'State/Province' => 'Estado/Provincia',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Tax Included' => 'Impuestos incluidos en el precio',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Descuento por Intercambio',
+ 'Translation not on file!' => '¡Traducción no en archivo!',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Vendor Number' => 'Número de Proveedor',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Warning!' => '¡Precaución!',
+ 'What type of item is this?' => '¿De qué tipo es este concepto?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Yes' => 'Si',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'ea' => 'unid.',
+ 'posted!' => 'fijado',
+ 'sent' => 'enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'correo_electrónico' => 'e_mail',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'imprimir_y_muestre' => 'print_and_post',
+ 'orden_de_venta' => 'sales_order',
+ 'destino' => 'ship_to',
+ 'actualizar' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/ec/jc b/locale/ec/jc
new file mode 100755
index 00000000..6180a4e0
--- /dev/null
+++ b/locale/ec/jc
@@ -0,0 +1,92 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menú general',
+ 'Amount' => 'Total',
+ 'Closed' => 'Cerrado',
+ 'Confirm!' => 'Confirmar',
+ 'Continue' => 'Continuar',
+ 'Cost' => 'Costo',
+ 'Current' => 'Actual',
+ 'Date' => 'Fecha',
+ 'Date missing!' => '¡Falta la fecha!',
+ 'Delete' => 'Borrar',
+ 'Description' => 'Descripción',
+ 'Employee' => 'Colaborador/Empleado',
+ 'From' => 'Desde',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Month' => 'Mes',
+ 'Notes' => 'Notas',
+ 'Open' => 'Abierto',
+ 'PDF' => 'PDF',
+ 'Period' => 'Período',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Imprimir',
+ 'Print and Save' => 'Imprimir y Salve',
+ 'Printed' => 'Impreso',
+ 'Project Number' => 'número del projecto',
+ 'Project Number missing!' => '¡Falta el número de proyecto!',
+ 'Qty' => 'Cantidad',
+ 'Quarter' => 'Trimestre',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Screen' => 'Pantalla',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Startdate' => 'FechaInicio',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Update' => 'Actualizar',
+ 'Warning!' => '¡Precaución!',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'imprimir' => 'print',
+ 'imprimir_y_salve' => 'print_and_save',
+ 'guardar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/ec/locales.pl b/locale/ec/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/ec/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/ec/login b/locale/ec/login
new file mode 100755
index 00000000..1ffd6fad
--- /dev/null
+++ b/locale/ec/login
@@ -0,0 +1,24 @@
+$self{texts} = {
+ 'Company' => 'Empresa',
+ 'Continue' => 'Continuar',
+ 'Dataset is newer than version!' => 'La base de datos está más actual que la versión del programa',
+ 'Incorrect Dataset version!' => 'Versión de base de datos incorrecta',
+ 'Login' => 'Entrar',
+ 'Name' => 'Nombre',
+ 'Password' => 'Contraseña',
+ 'Upgrading to Version' => 'Actualizando a Versión',
+ 'Version' => 'Versión',
+ 'You did not enter a name!' => 'No ha introducido un nombre',
+ 'done' => 'hecho',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ 'entrar' => 'login',
+};
+
+1;
+
diff --git a/locale/ec/menu b/locale/ec/menu
new file mode 100755
index 00000000..9e08361d
--- /dev/null
+++ b/locale/ec/menu
@@ -0,0 +1,134 @@
+$self{texts} = {
+ 'AP' => 'Facturas de Proveedores',
+ 'AP Aging' => 'Diario resumido de pagos',
+ 'AP Transaction' => 'Transaccion Proveedor',
+ 'AR' => 'Facturas de Ventas',
+ 'AR Aging' => 'Diario resumido de cobros ',
+ 'AR Transaction' => 'Gestión de cobro',
+ 'Accounting Menu' => 'Menú general',
+ 'Add Account' => 'Añadir cuenta',
+ 'Add Assembly' => 'Añadir compuesto',
+ 'Add Business' => 'Adicionar Negocio',
+ 'Add Customer' => 'Añadir cliente',
+ 'Add Department' => 'Adicionar Departamento',
+ 'Add Employee' => 'Añadir Empleado',
+ 'Add GIFI' => 'Añadir cuenta RUC',
+ 'Add Group' => 'Agregar Grupo',
+ 'Add Labor/Overhead' => 'Adicionar Mano de Obra',
+ 'Add Language' => 'Adicionar lenguage',
+ 'Add Part' => 'Añadir artículo',
+ 'Add Pricegroup' => 'Añadir Preciogrupal',
+ 'Add Project' => 'Añadir proyecto',
+ 'Add SIC' => 'Adicionar SIC',
+ 'Add Service' => 'Añadir servicio',
+ 'Add Transaction' => 'Añadir Transacción',
+ 'Add Vendor' => 'Añadir proveedor',
+ 'Add Warehouse' => 'Adicionar Bodega',
+ 'All Items' => 'Todos los Artículos',
+ 'Assemblies' => 'Compuestos',
+ 'Audit Control' => 'Control de auditoría',
+ 'Backup' => 'Copia de seguridad de los datos',
+ 'Balance Sheet' => 'Hoja de balance',
+ 'Bin List' => 'Lista de Compatimiento',
+ 'Bin Lists' => 'Listas de Compatimiento',
+ 'Cash' => 'Efectivo',
+ 'Chart of Accounts' => 'Plan de cuentas',
+ 'Check' => 'Cheque',
+ 'Components' => 'Componentes',
+ 'Customers' => 'Clientes',
+ 'Defaults' => 'Pre-estableciodos',
+ 'Departments' => 'Departamentos',
+ 'Description' => 'Descripción',
+ 'Employees' => 'Empleados',
+ 'General Ledger' => 'Notas de Contabilidad',
+ 'Goods & Services' => 'Bienes y servicios',
+ 'Groups' => 'Grupos',
+ 'HR' => 'Recursos Humanos',
+ 'HTML Templates' => 'Plantillas HTML',
+ 'History' => 'Historia',
+ 'Income Statement' => 'Estado de Resultados',
+ 'Invoice' => 'Factura de Venta',
+ 'LaTeX Templates' => 'Plantillas LaTeX',
+ 'Labor/Overhead' => 'Mano de Obra',
+ 'Language' => 'Lenguaje',
+ 'List Accounts' => 'Listar Plan Único de Cuentas',
+ 'List Businesses' => 'Lista de Negocios',
+ 'List Departments' => 'Lista de Departamentos',
+ 'List GIFI' => 'Listar PUC',
+ 'List Languages' => 'Lista de Lenguages',
+ 'List Projects' => 'Lista de Proyectos',
+ 'List SIC' => 'Lista SIC',
+ 'List Warehouses' => 'Lista de Bodegas',
+ 'Logout' => 'Salir',
+ 'Non-taxable' => 'No Grabable',
+ 'Open' => 'Abierto',
+ 'Order Entry' => 'Cotizaciones y pedidos',
+ 'Outstanding' => 'Impagados',
+ 'POS' => 'PdV',
+ 'POS Invoice' => 'Factura PdV',
+ 'Packing List' => 'Lista de Empaque',
+ 'Packing Lists' => 'Lista de Empaque',
+ 'Parts' => 'Artículos',
+ 'Payment' => 'Comprobante de Egreso',
+ 'Payments' => 'Vencimientos impagados',
+ 'Pick List' => 'Lista de Selección',
+ 'Pick Lists' => 'Listas de Selección',
+ 'Preferences' => 'Preferencias',
+ 'Pricegroups' => 'Preciogrupos',
+ 'Print' => 'Imprimir',
+ 'Projects' => 'Proyectos',
+ 'Purchase Order' => 'Pedido',
+ 'Purchase Orders' => 'Pedidos',
+ 'Quotation' => 'Cotización',
+ 'Quotations' => 'Cotizaciones',
+ 'RFQ' => 'Requerimiento de Cotización',
+ 'RFQs' => 'Requerimiento de Cotizaciónes',
+ 'Receipt' => 'Recibo',
+ 'Receipts' => 'Recibos',
+ 'Receive' => 'Cobro',
+ 'Reconciliation' => 'Reconciliación',
+ 'Reports' => 'Informes',
+ 'SIC' => 'Código Industrial Estandard',
+ 'Sale' => 'Venta',
+ 'Sales Invoice' => 'Factura de venta',
+ 'Sales Invoices' => 'Facturas de Ventas',
+ 'Sales Order' => 'Orden de Venta',
+ 'Sales Orders' => 'Ordenes de Venta',
+ 'Save to File' => 'Guardar en un archivo',
+ 'Search' => 'Buscar',
+ 'Send by E-Mail' => 'Enviar por correo electrónico',
+ 'Services' => 'Servicios',
+ 'Ship' => 'Envio',
+ 'Shipping' => 'Despacho',
+ 'Statement' => 'Estado de cuenta',
+ 'Stock Assembly' => 'Inventariar compuesto',
+ 'Stylesheet' => 'Hoja de estilo',
+ 'System' => 'Sistema',
+ 'Tax collected' => 'Impuestos cobrados Clientes',
+ 'Tax paid' => 'Impuestos pagados',
+ 'Text Templates' => 'Plantillas de Texto',
+ 'Transactions' => 'Transacciones',
+ 'Transfer' => 'Transferencia',
+ 'Transfer Inventory' => 'Transferir Inventario',
+ 'Translations' => 'Traducciones',
+ 'Trial Balance' => 'Balance de comprobación',
+ 'Type of Business' => 'Tipo de Negocio',
+ 'Vendor Invoice' => 'Factura de proveedor',
+ 'Vendors' => 'Proveedores',
+ 'Version' => 'Versión',
+ 'Warehouses' => 'Bodegas',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Work Orders' => 'Ordenes de Trabajo',
+ 'Yearend' => 'Fin de año',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/ec/oe b/locale/ec/oe
new file mode 100755
index 00000000..807ecf7a
--- /dev/null
+++ b/locale/ec/oe
@@ -0,0 +1,321 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menú general',
+ 'Add Exchange Rate' => 'Añadir Tasa de Cambio',
+ 'Add Purchase Order' => 'Añadir pedido',
+ 'Add Quotation' => 'Añadir Cotización',
+ 'Add Request for Quotation' => 'Añadir Pedido de Cotización',
+ 'Add Sales Invoice' => 'Añadir factura',
+ 'Add Sales Order' => 'Añadir cotización',
+ 'Add Vendor Invoice' => 'Agregar Factura de Proveedor',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Order Number' => '¿Esta seguro de que desea borrar la orden número?',
+ 'Are you sure you want to delete Quotation Number' => '¿Está seguro que quiere borrar el número de la Cotización?',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Dirección de Cobro',
+ 'Bin' => 'Compatimiento',
+ 'Bin List' => 'Lista de Compatimiento',
+ 'Business' => 'Negocio',
+ 'C' => 'C',
+ 'Cannot delete order!' => '¡No se puede borrar el pedido!',
+ 'Cannot delete quotation!' => '¡No se puede borrar la cotización!',
+ 'Cannot save order!' => '¡No se puede guardar el pedido!',
+ 'Cannot save quotation!' => '¡No se puede guardar cotización!',
+ 'Cc' => 'Cc',
+ 'City' => 'Ciudad',
+ 'Closed' => 'Cerrado',
+ 'Company Name' => 'Nombre de Compañía',
+ 'Confirm!' => 'Confirmar',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Cost' => 'Costo',
+ 'Could not save!' => '¡No se puede grabar!',
+ 'Could not transfer Inventory!' => '¡No se puede transferir el Inventario!',
+ 'Country' => 'País',
+ 'Credit Limit' => 'Limite de credito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer Number' => 'Número de Cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Date Received' => 'Fecha de Recepción',
+ 'Date received missing!' => '¡Falta Fecha de recepción!',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descripción',
+ 'Done' => 'Hecho',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'E-mailed' => '¡Enviado por Correo-e!',
+ 'Edit Purchase Order' => 'Editar pedido',
+ 'Edit Quotation' => 'Editar Cotización',
+ 'Edit Request for Quotation' => 'Editar Petición de Cotizacion',
+ 'Edit Sales Order' => 'Editar cotización',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate missing!' => '¡Falta Tasa de Cambio!',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'Group' => 'Grupo',
+ 'ID' => 'ID',
+ 'In-line' => 'Incrustado',
+ 'Include in Report' => 'Incluir en informe',
+ 'Internal Notes' => 'Notas Internas',
+ 'Inventory saved!' => '¡Inventario salvado!',
+ 'Inventory transferred!' => '¡Inventario transferido!',
+ 'Invoice' => 'Factura de Venta',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number missing!' => 'No se ha definido el número de la factura',
+ 'Item not on file!' => 'El concepto no se encuentra en ningún archivo',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Manager' => 'Gerente',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Message' => 'Mensaje',
+ 'Month' => 'Mes',
+ 'No.' => 'No',
+ 'Notes' => 'Notas',
+ 'Nothing entered!' => '¡Nada ingresado!',
+ 'Nothing selected!' => '¡No es seleccionado nada!',
+ 'Nothing to transfer!' => '¡Nada para Transferir!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se ha definido el número en la fila',
+ 'O' => 'O',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Date' => 'Fecha de elaboración',
+ 'Order Date missing!' => 'No se ha definido la fecha de la elaboración',
+ 'Order Number' => 'Número de orden',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'Order deleted!' => '¡Orden borrada!',
+ 'Order saved!' => 'Pedido guardado',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de Empaque',
+ 'Packing List Date missing!' => 'No se ha definido la fecha del albarán',
+ 'Packing List Number missing!' => 'No se ha definido el número del albarán',
+ 'Part' => 'Artículo',
+ 'Period' => 'Período',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Selección',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Print and Save' => 'Imprimir y Salve',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => '¡Proyecto no en archivo!',
+ 'Purchase Order' => 'Pedido',
+ 'Purchase Orders' => 'Pedidos',
+ 'Qty' => 'Cantidad',
+ 'Quarter' => 'Trimestre',
+ 'Quotation' => 'Cotización',
+ 'Quotation ' => 'Cotización ',
+ 'Quotation Date' => 'Fecha de Cotización',
+ 'Quotation Date missing!' => 'Falta Fecha de Cotización',
+ 'Quotation Number' => 'Número de Cotización',
+ 'Quotation Number missing!' => 'Falta número de Cotización',
+ 'Quotation deleted!' => '¡Cotización borrada!',
+ 'Quotations' => 'Cotizaciones',
+ 'RFQ' => 'Requerimiento de Cotización',
+ 'RFQ ' => 'Requerimiento de Cotización ',
+ 'RFQ Number' => 'Número de Requerimiento de Cotización',
+ 'Recd' => 'Cobrado',
+ 'Receive Merchandise' => 'Recepción de Mercadería',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Resto',
+ 'Request for Quotation' => 'Pedido de Cotización',
+ 'Request for Quotations' => 'Pedido de Cotizaciónes',
+ 'Required by' => 'Solicitado por',
+ 'SKU' => 'Unidad de Mantenimiento de Stock',
+ 'Sales Invoice' => 'Factura de venta',
+ 'Sales Order' => 'Orden de Venta',
+ 'Sales Orders' => 'Ordenes de Venta',
+ 'Salesperson' => 'Vendedor',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione de uno de los proyectos siguientes',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Select txt, postscript or PDF!' => '¡Seleccione txt, postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'Nº de Serie',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Envio',
+ 'Ship Merchandise' => 'Envío de Mercadería',
+ 'Ship to' => 'Destino',
+ 'Ship via' => 'Envio por',
+ 'Shipping Address' => 'Dirección de Embarque',
+ 'Shipping Date' => 'Fecha de Embarque',
+ 'Shipping Date missing!' => '¡Falta Fecha de Embarque!',
+ 'Shipping Point' => 'Puerto de Embarque',
+ 'Startdate' => 'FechaInicio',
+ 'State/Province' => 'Estado/Provincia',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Tax' => 'Impuestos',
+ 'Tax Included' => 'Impuestos incluidos en el precio',
+ 'Terms' => 'Términos',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Descuento por Intercambio',
+ 'Transfer' => 'Transferencia',
+ 'Transfer Inventory' => 'Transferir Inventario',
+ 'Transfer to' => 'Transferir a',
+ 'Translation not on file!' => '¡Traducción no en archivo!',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Valid until' => 'Válido hasta',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice' => 'Factura de proveedor',
+ 'Vendor Number' => 'Número de Proveedor',
+ 'Vendor missing!' => '¡Falta el proveedor!',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Warehouse' => 'Bodega',
+ 'Warning!' => '¡Precaución!',
+ 'What type of item is this?' => '¿De qué tipo es este concepto?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'days' => 'días',
+ 'ea' => 'unid.',
+ 'sent' => 'enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'hecho' => 'done',
+ 'correo_electrónico' => 'e_mail',
+ 'imprimir' => 'print',
+ 'imprimir_y_salve' => 'print_and_save',
+ 'pedido' => 'purchase_order',
+ 'cotización' => 'quotation',
+ 'cotización_' => 'quotation_',
+ 'requerimiento_de_cotización' => 'rfq',
+ 'requerimiento_de_cotización_' => 'rfq_',
+ 'factura_de_venta' => 'sales_invoice',
+ 'orden_de_venta' => 'sales_order',
+ 'guardar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'destino' => 'ship_to',
+ 'transferencia' => 'transfer',
+ 'actualizar' => 'update',
+ 'factura_de_proveedor' => 'vendor_invoice',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/ec/pe b/locale/ec/pe
new file mode 100755
index 00000000..eabb77fe
--- /dev/null
+++ b/locale/ec/pe
@@ -0,0 +1,141 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menú general',
+ 'Active' => 'Activo',
+ 'Add' => 'Añadir',
+ 'Add Group' => 'Agregar Grupo',
+ 'Add Pricegroup' => 'Añadir Preciogrupal',
+ 'Add Project' => 'Añadir proyecto',
+ 'Address' => 'Dirección',
+ 'All' => 'Todos',
+ 'Amount' => 'Total',
+ 'Assembly' => 'Ensamblaje',
+ 'Bin' => 'Compatimiento',
+ 'Continue' => 'Continuar',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Delete' => 'Borrar',
+ 'Description' => 'Descripción',
+ 'Description Translations' => 'Traducciónes de Descripción',
+ 'Detail' => 'Detalle',
+ 'Edit Description Translations' => 'Editar Descripciones de Traducciones',
+ 'Edit Group' => 'Editar Grupo',
+ 'Edit Pricegroup' => 'Editar Precio de Grupo',
+ 'Edit Project' => 'Editar proyecto',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Enddate' => 'Fecha Final',
+ 'From' => 'Desde',
+ 'Group' => 'Grupo',
+ 'Group Translations' => 'Traducciones de Grupo',
+ 'Group deleted!' => 'Grupo eleminado!',
+ 'Group missing!' => 'Falta el grupo',
+ 'Group saved!' => 'Grupo guardado!',
+ 'Groups' => 'Grupos',
+ 'Income' => 'Ingresos',
+ 'Language' => 'Lenguaje',
+ 'Languages not defined!' => '¡Idiomas no definidos!',
+ 'Link Accounts' => 'Enlazar cuentas',
+ 'List Price' => 'Precio de lista',
+ 'Month' => 'Mes',
+ 'Notes' => 'Notas',
+ 'Nothing selected!' => '¡No es seleccionado nada!',
+ 'Number' => 'Número',
+ 'Orphaned' => 'Independiente',
+ 'Period' => 'Período',
+ 'Pricegroup' => 'Preciogrupo',
+ 'Pricegroup deleted!' => '¡Preciogrupo borrado!',
+ 'Pricegroup missing!' => '¡Preciogrupo desaparecido!',
+ 'Pricegroup saved!' => '¡Preciogrupo salvado',
+ 'Pricegroups' => 'Preciogrupos',
+ 'Project' => 'Proyecto',
+ 'Project Description Translations' => 'Traducciones de Descripción de Proyecto',
+ 'Project Number' => 'número del projecto',
+ 'Project deleted!' => '¡Proyecto borrado!',
+ 'Project saved!' => '¡Proyecto guardado ',
+ 'Projects' => 'Proyectos',
+ 'Qty' => 'Cantidad',
+ 'Quarter' => 'Trimestre',
+ 'Save' => 'Guardar',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Sell Price' => 'Precio de venta',
+ 'Startdate' => 'FechaInicio',
+ 'Summary' => 'Resúmen',
+ 'Tax' => 'Impuestos',
+ 'To' => 'Hasta ',
+ 'Translation' => 'Traducción',
+ 'Translation deleted!' => '¡Traducción borrada!',
+ 'Translations saved!' => 'Traducciones guardadas',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Updated' => '¡Actualizado!',
+ 'Vendor' => 'Proveedor',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Weight' => 'Peso',
+ 'Year' => 'Año',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'agregar_grupo' => 'add_group',
+ 'añadir_preciogrupal' => 'add_pricegroup',
+ 'añadir_proyecto' => 'add_project',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'guardar' => 'save',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/ec/pos b/locale/ec/pos
new file mode 100755
index 00000000..de42a00b
--- /dev/null
+++ b/locale/ec/pos
@@ -0,0 +1,80 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menú general',
+ 'Add POS Invoice' => 'Agregar Factura POS',
+ 'Amount' => 'Total',
+ 'Business' => 'Negocio',
+ 'Cannot post transaction!' => '¡No se puede registrar la transacción',
+ 'Change' => 'Cambiar',
+ 'Continue' => 'Continuar',
+ 'Credit Limit' => 'Limite de credito',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Delete' => 'Borrar',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descripción',
+ 'Edit POS Invoice' => 'Editar Factura POS',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate missing!' => '¡Falta Tasa de Cambio!',
+ 'Extended' => 'Extendido',
+ 'From' => 'Desde',
+ 'Language' => 'Lenguaje',
+ 'Memo' => 'Memo',
+ 'Month' => 'Mes',
+ 'Number' => 'Número',
+ 'Open' => 'Abierto',
+ 'Period' => 'Período',
+ 'Post' => 'Registrar',
+ 'Posted!' => 'Agregado!',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Muestre',
+ 'Printed' => 'Impreso',
+ 'Qty' => 'Cantidad',
+ 'Quarter' => 'Trimestre',
+ 'Receipts' => 'Recibos',
+ 'Record in' => 'Registrar en',
+ 'Remaining' => 'Resto',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Pantalla',
+ 'Source' => 'Fuente',
+ 'Subtotal' => 'Subtotal',
+ 'Tax Included' => 'Impuestos incluidos en el precio',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Descuento por Intercambio',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Year' => 'Año',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'registrar' => 'post',
+ 'imprimir' => 'print',
+ 'imprimir_y_muestre' => 'print_and_post',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/ec/ps b/locale/ec/ps
new file mode 100755
index 00000000..a937bcf4
--- /dev/null
+++ b/locale/ec/ps
@@ -0,0 +1,358 @@
+$self{texts} = {
+ 'AP Aging' => 'Diario resumido de pagos',
+ 'AP Outstanding' => 'Impagados Proveedores',
+ 'AP Transaction' => 'Transaccion Proveedor',
+ 'AP Transactions' => 'Gestiones de pagos',
+ 'AR Aging' => 'Diario resumido de cobros ',
+ 'AR Outstanding' => 'Impagados Cartera',
+ 'AR Transaction' => 'Gestión de cobro',
+ 'AR Transactions' => 'Gestiones de cobros',
+ 'Account' => 'Cuenta',
+ 'Account Number' => 'Número de cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Accounts' => 'Cuentas',
+ 'Accrual' => 'Acumulado',
+ 'Add AP Transaction' => 'Añadir Asiento de CxP',
+ 'Add AR Transaction' => 'Añadir Asiento de CxP',
+ 'Add POS Invoice' => 'Agregar Factura POS',
+ 'Add Purchase Order' => 'Añadir pedido',
+ 'Add Quotation' => 'Añadir Cotización',
+ 'Add Request for Quotation' => 'Añadir Pedido de Cotización',
+ 'Add Sales Invoice' => 'Añadir factura',
+ 'Add Sales Order' => 'Añadir cotización',
+ 'Address' => 'Dirección',
+ 'All Accounts' => 'Todas las Cuentas',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Cantidad adeudada',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => '¿Esta seguro de que desea borrar la factura número',
+ 'Are you sure you want to delete Transaction' => '¿Está seguro de que desea borrar la transacción?',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Balance',
+ 'Balance Sheet' => 'Hoja de balance',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Dirección de Cobro',
+ 'Bin' => 'Compatimiento',
+ 'Bin List' => 'Lista de Compatimiento',
+ 'Business' => 'Negocio',
+ 'Cannot delete invoice!' => '¡No se puede borrar la factura!',
+ 'Cannot delete transaction!' => '¡No se puede borrar la transacción!',
+ 'Cannot post invoice for a closed period!' => '¡No se puede registrar una factura en un periodo ya cerrado!',
+ 'Cannot post invoice!' => '¡No se puede registrar la factura!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo ya cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar una transacción para un periodo cerrado',
+ 'Cannot post transaction!' => '¡No se puede registrar la transacción',
+ 'Cash' => 'Efectivo',
+ 'Cc' => 'Cc',
+ 'Change' => 'Cambiar',
+ 'Check' => 'Cheque',
+ 'City' => 'Ciudad',
+ 'Closed' => 'Cerrado',
+ 'Company Name' => 'Nombre de Compañía',
+ 'Compare to' => 'Comparar con',
+ 'Confirm!' => 'Confirmar',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Country' => 'País',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Limite de credito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Current Earnings' => 'Ganacias Actuales',
+ 'Customer' => 'Cliente',
+ 'Customer Number' => 'Número de Cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Date Paid' => 'Fecha de pago',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Decimalplaces' => 'Lugar de los decimales',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'Due Date missing!' => 'Falta la fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail Statement to' => 'Enviar comprobante por correo electrónico a',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'E-mailed' => '¡Enviado por Correo-e!',
+ 'Edit AP Transaction' => 'Editar Asiento de CxP',
+ 'Edit AR Transaction' => 'Editar Asiento de CxC',
+ 'Edit POS Invoice' => 'Editar Factura POS',
+ 'Edit Sales Invoice' => 'Edirar factura de venta',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate for payment missing!' => '¡Falta tasa de Cambio para pago!',
+ 'Exchange rate missing!' => '¡Falta Tasa de Cambio!',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'GIFI' => 'Plan Único de Cuentas (PUC)',
+ 'Group' => 'Grupo',
+ 'Heading' => 'Encabezado',
+ 'ID' => 'ID',
+ 'In-line' => 'Incrustado',
+ 'Include Exchange Rate Difference' => 'Incluir Diferencia de Tasa de Cambio',
+ 'Include in Report' => 'Incluir en informe',
+ 'Income Statement' => 'Estado de Resultados',
+ 'Internal Notes' => 'Notas Internas',
+ 'Invoice' => 'Factura de Venta',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Invoice Number missing!' => 'No se ha definido el número de la factura',
+ 'Invoice deleted!' => '¡Factura borrada!',
+ 'Item not on file!' => 'El concepto no se encuentra en ningún archivo',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Language' => 'Lenguaje',
+ 'Manager' => 'Gerente',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Message' => 'Mensaje',
+ 'Method' => 'Método',
+ 'Month' => 'Mes',
+ 'N/A' => 'Sin respuesta',
+ 'No.' => 'No',
+ 'Non-taxable Purchases' => 'Compras excentas de Impuestos',
+ 'Non-taxable Sales' => 'Ventas excentas de Impuestos',
+ 'Notes' => 'Notas',
+ 'Nothing selected!' => '¡No es seleccionado nada!',
+ 'Nothing to print!' => '¡No hay nada que imprimir!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se ha definido el número en la fila',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Date missing!' => 'No se ha definido la fecha de la elaboración',
+ 'Order Number' => 'Número de orden',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de Empaque',
+ 'Packing List Date missing!' => 'No se ha definido la fecha del albarán',
+ 'Packing List Number missing!' => 'No se ha definido el número del albarán',
+ 'Paid' => 'Pagado',
+ 'Part' => 'Artículo',
+ 'Payment date missing!' => 'No se encuentra la fecha de pago',
+ 'Payments' => 'Vencimientos impagados',
+ 'Period' => 'Período',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Selección',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Posted!' => 'Agregado!',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Muestre',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project Number' => 'número del projecto',
+ 'Project Transactions' => 'Traducciones de Proyecto',
+ 'Project not on file!' => '¡Proyecto no en archivo!',
+ 'Purchase Order' => 'Pedido',
+ 'Qty' => 'Cantidad',
+ 'Quarter' => 'Trimestre',
+ 'Quotation' => 'Cotización',
+ 'Quotation Date missing!' => 'Falta Fecha de Cotización',
+ 'Quotation Number missing!' => 'Falta número de Cotización',
+ 'Recd' => 'Cobrado',
+ 'Receipt' => 'Recibo',
+ 'Receipts' => 'Recibos',
+ 'Record in' => 'Registrar en',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Resto',
+ 'Report for' => 'Informe para',
+ 'Required by' => 'Solicitado por',
+ 'SKU' => 'Unidad de Mantenimiento de Stock',
+ 'Sales Invoice.' => 'Factura de venta.',
+ 'Sales Order' => 'Orden de Venta',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Pantalla',
+ 'Select all' => 'Seleccione todo',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione de uno de los proyectos siguientes',
+ 'Select payment' => '¡Seleccione Pago!',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Select txt, postscript or PDF!' => '¡Seleccione txt, postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'Nº de Serie',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Envio',
+ 'Ship to' => 'Destino',
+ 'Ship via' => 'Envio por',
+ 'Shipping Address' => 'Dirección de Embarque',
+ 'Shipping Point' => 'Puerto de Embarque',
+ 'Source' => 'Fuente',
+ 'Standard' => 'Estándard',
+ 'Startdate' => 'FechaInicio',
+ 'State/Province' => 'Estado/Provincia',
+ 'Statement' => 'Estado de cuenta',
+ 'Statement sent to' => 'Estado de cuenta enviado a',
+ 'Statements sent to printer!' => '¡Estado de cuenta enviado a la impresora!',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resúmen',
+ 'Tax' => 'Impuestos',
+ 'Tax Included' => 'Impuestos incluidos en el precio',
+ 'Tax collected' => 'Impuestos cobrados Clientes',
+ 'Tax paid' => 'Impuestos pagados',
+ 'Till' => 'Caja',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Descuento por Intercambio',
+ 'Transaction' => 'Asiento',
+ 'Transaction deleted!' => '¡Transacción borrada!',
+ 'Transaction posted!' => '¡Transacción registrada!',
+ 'Translation not on file!' => '¡Traducción no en archivo!',
+ 'Trial Balance' => 'Balance de comprobación',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice.' => 'Factura de proveedor.',
+ 'Vendor Number' => 'Número de Proveedor',
+ 'Vendor missing!' => '¡Falta el proveedor!',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Warning!' => '¡Precaución!',
+ 'What type of item is this?' => '¿De qué tipo es este concepto?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'as at' => 'al',
+ 'ea' => 'unid.',
+ 'for Period' => 'para el periodo',
+ 'posted!' => 'fijado',
+ 'sent' => 'enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'transaccion_proveedor' => 'ap_transaction',
+ 'gestión_de_cobro' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'correo_electrónico' => 'e_mail',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'imprimir_y_muestre' => 'print_and_post',
+ 'factura_de_venta_' => 'sales_invoice_',
+ 'orden_de_venta' => 'sales_order',
+ 'seleccione_todo' => 'select_all',
+ 'destino' => 'ship_to',
+ 'actualizar' => 'update',
+ 'factura_de_proveedor_' => 'vendor_invoice_',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/ec/pw b/locale/ec/pw
new file mode 100755
index 00000000..d5ed0e14
--- /dev/null
+++ b/locale/ec/pw
@@ -0,0 +1,13 @@
+$self{texts} = {
+ 'Continue' => 'Continuar',
+ 'Password' => 'Contraseña',
+ 'Session expired!' => '¡Sesión Expiró!',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/ec/rc b/locale/ec/rc
new file mode 100755
index 00000000..43c668d1
--- /dev/null
+++ b/locale/ec/rc
@@ -0,0 +1,79 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Balance',
+ 'Beginning Balance' => 'Balance Inicial',
+ 'Cleared' => '¡Limpiado!',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Current' => 'Actual',
+ 'Date' => 'Fecha',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Difference' => 'Diferencia',
+ 'Done' => 'Hecho',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'Include Exchange Rate Difference' => 'Incluir Diferencia de Tasa de Cambio',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Month' => 'Mes',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Out of balance!' => '¡Fuera de balance!',
+ 'Outstanding' => 'Impagados',
+ 'Period' => 'Período',
+ 'Quarter' => 'Trimestre',
+ 'R' => 'Reconciliado',
+ 'Reconciliation' => 'Reconciliación',
+ 'Reconciliation Report' => 'Reporte de Reconciliación',
+ 'Select all' => 'Seleccione todo',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Source' => 'Fuente',
+ 'Statement Balance' => 'Balance de cuenta',
+ 'Summary' => 'Resúmen',
+ 'To' => 'Hasta ',
+ 'Update' => 'Actualizar',
+ 'Year' => 'Año',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'continuar' => 'continue',
+ 'hecho' => 'done',
+ 'seleccione_todo' => 'select_all',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/ec/rp b/locale/ec/rp
new file mode 100755
index 00000000..386f0e32
--- /dev/null
+++ b/locale/ec/rp
@@ -0,0 +1,179 @@
+$self{texts} = {
+ 'AP Aging' => 'Diario resumido de pagos',
+ 'AR Aging' => 'Diario resumido de cobros ',
+ 'Account' => 'Cuenta',
+ 'Account Number' => 'Número de cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Accounts' => 'Cuentas',
+ 'Accrual' => 'Acumulado',
+ 'Address' => 'Dirección',
+ 'All Accounts' => 'Todas las Cuentas',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Balance',
+ 'Balance Sheet' => 'Hoja de balance',
+ 'Bcc' => 'Bcc',
+ 'Cash' => 'Efectivo',
+ 'Cc' => 'Cc',
+ 'Compare to' => 'Comparar con',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Credit' => 'Crédito',
+ 'Curr' => 'Mon.',
+ 'Current' => 'Actual',
+ 'Current Earnings' => 'Ganacias Actuales',
+ 'Customer' => 'Cliente',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Decimalplaces' => 'Lugar de los decimales',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail Statement to' => 'Enviar comprobante por correo electrónico a',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'GIFI' => 'Plan Único de Cuentas (PUC)',
+ 'Heading' => 'Encabezado',
+ 'ID' => 'ID',
+ 'In-line' => 'Incrustado',
+ 'Include Exchange Rate Difference' => 'Incluir Diferencia de Tasa de Cambio',
+ 'Include in Report' => 'Incluir en informe',
+ 'Income Statement' => 'Estado de Resultados',
+ 'Invoice' => 'Factura de Venta',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Language' => 'Lenguaje',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Message' => 'Mensaje',
+ 'Method' => 'Método',
+ 'Month' => 'Mes',
+ 'N/A' => 'Sin respuesta',
+ 'Non-taxable Purchases' => 'Compras excentas de Impuestos',
+ 'Non-taxable Sales' => 'Ventas excentas de Impuestos',
+ 'Nothing selected!' => '¡No es seleccionado nada!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Order' => 'Orden',
+ 'PDF' => 'PDF',
+ 'Payments' => 'Vencimientos impagados',
+ 'Period' => 'Período',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Imprimir',
+ 'Project' => 'Proyecto',
+ 'Project Number' => 'número del projecto',
+ 'Project Transactions' => 'Traducciones de Proyecto',
+ 'Project not on file!' => '¡Proyecto no en archivo!',
+ 'Quarter' => 'Trimestre',
+ 'Receipts' => 'Recibos',
+ 'Reference' => 'Referencia',
+ 'Report for' => 'Informe para',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Pantalla',
+ 'Select all' => 'Seleccione todo',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione de uno de los proyectos siguientes',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Source' => 'Fuente',
+ 'Standard' => 'Estándard',
+ 'Startdate' => 'FechaInicio',
+ 'Statement' => 'Estado de cuenta',
+ 'Statement sent to' => 'Estado de cuenta enviado a',
+ 'Statements sent to printer!' => '¡Estado de cuenta enviado a la impresora!',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resúmen',
+ 'Tax' => 'Impuestos',
+ 'Tax collected' => 'Impuestos cobrados Clientes',
+ 'Tax paid' => 'Impuestos pagados',
+ 'Till' => 'Caja',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Trial Balance' => 'Balance de comprobación',
+ 'Vendor' => 'Proveedor',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Warning!' => '¡Precaución!',
+ 'Year' => 'Año',
+ 'as at' => 'al',
+ 'for Period' => 'para el periodo',
+ 'sent' => 'enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuar' => 'continue',
+ 'correo_electrónico' => 'e_mail',
+ 'imprimir' => 'print',
+ 'seleccione_todo' => 'select_all',
+};
+
+1;
+
diff --git a/locale/ee/COPYING b/locale/ee/COPYING
new file mode 100755
index 00000000..a9583bd1
--- /dev/null
+++ b/locale/ee/COPYING
@@ -0,0 +1,26 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2001-2005
+#
+# Estonian texts:
+#
+# Author: Martin Lillepuu <martin@lillepuu.com>
+# Lauri Jesmin <jesmin@ut.ee>
+# Tanel Kurvits <rauge@hot.ee>
+# Peeter Pärtel <peeter@sigma.ee>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/ee/LANGUAGE b/locale/ee/LANGUAGE
new file mode 100755
index 00000000..f06d5628
--- /dev/null
+++ b/locale/ee/LANGUAGE
@@ -0,0 +1 @@
+Estonian (ISO-8859-15)
diff --git a/locale/ee/Num2text b/locale/ee/Num2text
new file mode 100755
index 00000000..78bf1e94
--- /dev/null
+++ b/locale/ee/Num2text
@@ -0,0 +1,140 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (C) 2003
+#
+# Author: Dieter Simader
+# Email: dsimader@sql-ledger.org
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+# Contributors: Mario R. Pizzolanti <mario@zavood.ee>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#======================================================================
+#
+# written for check and receipt printing
+# it returns a properly formatted text string
+# for a number up to 10**9
+
+sub init {
+ my $self = shift;
+
+ %{ $self->{numbername} } =
+ (0 => 'null',
+ 1 => 'üks',
+ 2 => 'kaks',
+ 3 => 'kolm',
+ 4 => 'neli',
+ 5 => 'viis',
+ 6 => 'kuus',
+ 7 => 'seitse',
+ 8 => 'kaheksa',
+ 9 => 'üheksa',
+ 10 => 'kümme',
+ 10**2 => 'sada',
+ 10**3 => 'tuhat',
+ 10**6 => 'miljon',
+ 10**9 => 'miljard',
+ 10**12 => 'biljon'
+ );
+
+}
+
+
+sub num2text {
+ my ($self, $amount) = @_;
+
+ return $self->{numbername}{0} unless $amount;
+
+ my @textnumber = ();
+
+ # split amount into chunks of 3
+ my @num = reverse split //, abs($amount);
+ my @numblock = ();
+ my ($i, $appendit);
+ my @a = ();
+
+ while (@num) {
+ @a = ();
+ for (1 .. 3) {
+ push @a, shift @num;
+ }
+ push @numblock, join / /, reverse @a;
+ }
+
+ while (@numblock) {
+
+ $i = $#numblock;
+ $numblock[$i] *= 1;
+ @num = split //, $numblock[$i];
+
+ $appendit = "it";
+ $hundred = 0;
+
+ if ($numblock[$i] == 0) {
+ pop @numblock;
+ next;
+ }
+
+ if ($numblock[$i] > 99) {
+ # the one from hundreds
+ push @textnumber, "$self->{numbername}{$num[0]}$self->{numbername}{10**2}";
+ # reduce numblock
+ $numblock[$i] -= $num[0] * 100;
+ @num = split //, $numblock[$i];
+ $hundred = 1;
+ }
+
+ if ($numblock[$i] > 19) {
+ # 20 - 99
+ push @textnumber, "$self->{numbername}{$num[0]}kümmend";
+ @num = split //, $numblock[$i];
+ push @textnumber, $self->{numbername}{$num[1]} if $num[1] > 0;
+
+ } elsif ($numblock[$i] > 10) {
+ # 11 - 19
+ if ($hundred) {
+ @num = split //, $numblock[$i];
+ }
+ $num = $num[1];
+
+ push @textnumber, "$self->{numbername}{$num}teist";
+
+ } elsif ($numblock[$i] > 1) {
+ # ones
+ push @textnumber, $self->{numbername}{$numblock[$i]};
+
+ } elsif ($numblock[$i] == 1) {
+ push @textnumber, $self->{numbername}{$num[0]};
+ $appendit = "";
+
+ }
+
+ # add thousand, million
+ if ($i) {
+ $amount = 10**($i * 3);
+ $appendit = ($i == 1) ? "" : $appendit;
+ push @textnumber, "$self->{numbername}{$amount}$appendit";
+ }
+
+ pop @numblock;
+
+ }
+
+ join ' ', @textnumber;
+
+}
+
+
+1;
+
diff --git a/locale/ee/aa b/locale/ee/aa
new file mode 100755
index 00000000..5da06adb
--- /dev/null
+++ b/locale/ee/aa
@@ -0,0 +1,163 @@
+$self{charset} = 'ISO-8859-15';
+
+$self{texts} = {
+ 'AP Outstanding' => 'Tasumata kohustused',
+ 'AP Transaction' => 'Kohustuste kanne',
+ 'AP Transactions' => 'Kohustuste kanded',
+ 'AR Outstanding' => 'Tasumata nõued',
+ 'AR Transaction' => 'Nõuete kanne',
+ 'AR Transactions' => 'Nõuete kanded',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Raamatupidamise Menüü',
+ 'Add AP Transaction' => 'Lisa OR Tehing',
+ 'Add AR Transaction' => 'Lisa MR Tehing',
+ 'Amount' => 'Summa',
+ 'Amount Due' => 'Võlaosa',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprill',
+ 'Are you sure you want to delete Transaction' => 'Kas oled kindel, et soovid kustutada kande',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Cannot delete transaction!' => 'Kannet ei saa kustutada!',
+ 'Cannot post payment for a closed period!' => 'Makset ei saa salvestada suletud perioodile!',
+ 'Cannot post transaction for a closed period!' => 'Kannet ei saa salvestada suletud perioodile!',
+ 'Cannot post transaction!' => 'Kannet ei saa salvestada!',
+ 'Check' => 'Tshekk',
+ 'Closed' => 'Suletud',
+ 'Confirm!' => 'Kinnita!',
+ 'Continue' => 'Edasi',
+ 'Credit' => 'Kreedit',
+ 'Credit Limit' => 'Krediidilimiit',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valuuta',
+ 'Current' => 'Käesolev',
+ 'Customer' => 'Klient',
+ 'Customer missing!' => 'Klienti pole määratud!',
+ 'Date' => 'Kuupäev',
+ 'Date Paid' => 'Maksekuupäev',
+ 'Debit' => 'Deebet',
+ 'Dec' => 'Dets',
+ 'December' => 'Detsember',
+ 'Delete' => 'Kustuta',
+ 'Department' => 'Osakond',
+ 'Description' => 'Selgitus',
+ 'Detail' => 'Detail',
+ 'Due Date' => 'Maksetähtaeg',
+ 'Due Date missing!' => 'Maksetähtaeg puudub!',
+ 'Edit AP Transaction' => 'Muuda OR Tehing',
+ 'Edit AR Transaction' => 'Muuda MR Tehing',
+ 'Employee' => 'Töötaja',
+ 'Exch' => 'Kurss',
+ 'Exchange Rate' => 'Valuutakurss',
+ 'Exchange rate for payment missing!' => 'Maksel ei ole valuutakurssi!',
+ 'Exchange rate missing!' => 'Valuutakurssi ei ole',
+ 'Feb' => 'Veebr',
+ 'February' => 'Veebruar',
+ 'From' => 'Alates',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Kaasa aruandesse',
+ 'Invoice' => 'Arve',
+ 'Invoice Date' => 'Arve kuupäev',
+ 'Invoice Date missing!' => 'Arve kuupäev puudub!',
+ 'Invoice Number' => 'Arve number',
+ 'Jan' => 'Jaan',
+ 'January' => 'Jaanuar',
+ 'Jul' => 'Juul',
+ 'July' => 'Juuli',
+ 'Jun' => 'Juun',
+ 'June' => 'Juuni',
+ 'Manager' => 'Juhataja',
+ 'Mar' => 'Mär',
+ 'March' => 'Märts',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Memo',
+ 'Month' => 'Kuu',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Märkused',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktoober',
+ 'Open' => 'Avatud',
+ 'Order' => 'Tellimus',
+ 'Order Number' => 'Tellimuse number',
+ 'PO Number' => 'Ostutellimuse Number',
+ 'Paid' => 'Makstud',
+ 'Payment date missing!' => 'Maksekuupäev puudub!',
+ 'Payments' => 'Maksed',
+ 'Period' => 'Periood',
+ 'Post' => 'Salvesta',
+ 'Post as new' => 'Salvesta uuena',
+ 'Print' => 'Trüki',
+ 'Print and Post' => 'Trüki ja salvesta',
+ 'Print and Post as new' => 'Trüki ja Postita uuena',
+ 'Project' => 'Projekt',
+ 'Quarter' => 'Trimester',
+ 'Receipt' => 'Maksekviitung',
+ 'Remaining' => 'Kasutamata',
+ 'Sales Invoice.' => 'Müügiarve.',
+ 'Salesperson' => 'Müügiesindaja',
+ 'Schedule' => 'Ajakava',
+ 'Sep' => 'Sept',
+ 'September' => 'September',
+ 'Ship to' => 'Tarneaadress',
+ 'Ship via' => 'Tarneviis',
+ 'Shipping Point' => 'Saadetise Sihtpunkt',
+ 'Source' => 'Allikas',
+ 'Subtotal' => 'Vahesumma',
+ 'Summary' => 'Kokkuvõtte',
+ 'Tax' => 'Maks',
+ 'Tax Included' => 'Koos maksuga',
+ 'Till' => 'Müügipunkt',
+ 'To' => 'Kuni',
+ 'Total' => 'Kokku',
+ 'Transaction' => 'Tehing',
+ 'Transaction deleted!' => 'Kanne kustutatud!',
+ 'Transaction posted!' => 'Kanne saadetud!',
+ 'Update' => 'Uuendus',
+ 'Vendor' => 'Hankija',
+ 'Vendor Invoice.' => 'Tarnija Kaubaarve.',
+ 'Vendor missing!' => 'Hankija puudub!',
+ 'Year' => 'Aasta',
+ 'Yes' => 'Jah',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'kohustuste_kanne' => 'ap_transaction',
+ 'nõuete_kanne' => 'ar_transaction',
+ 'edasi' => 'continue',
+ 'kustuta' => 'delete',
+ 'salvesta' => 'post',
+ 'salvesta_uuena' => 'post_as_new',
+ 'trüki' => 'print',
+ 'trüki_ja_salvesta' => 'print_and_post',
+ 'trüki_ja_postita_uuena' => 'print_and_post_as_new',
+ 'müügiarve_' => 'sales_invoice_',
+ 'ajakava' => 'schedule',
+ 'tarneaadress' => 'ship_to',
+ 'uuendus' => 'update',
+ 'tarnija_kaubaarve_' => 'vendor_invoice_',
+ 'jah' => 'yes',
+};
+
+1;
+
diff --git a/locale/ee/admin b/locale/ee/admin
new file mode 100755
index 00000000..e2bece2d
--- /dev/null
+++ b/locale/ee/admin
@@ -0,0 +1,146 @@
+$self{charset} = 'ISO-8859-15';
+
+$self{texts} = {
+ 'Access Control' => 'Ligipääsukontroll',
+ 'Accounting' => 'Raamatupidamine',
+ 'Add User' => 'Lisa kasutaja',
+ 'Address' => 'Aadress',
+ 'Administration' => 'Administreerimine',
+ 'Administrator' => 'Administraator',
+ 'All Datasets up to date!' => 'Kõik andmebaasid on uuendatud',
+ 'Cannot create Lock!' => 'Cannot create Lock!',
+ 'Change Admin Password' => 'Muuda admini parool',
+ 'Change Password' => 'Muuda parool',
+ 'Click on login name to edit!' => 'Redigeerimiseks kliki kasutajanimel',
+ 'Company' => 'Ettevõte',
+ 'Confirm' => 'Kinnita',
+ 'Connect to' => 'Ühenda',
+ 'Continue' => 'Edasi',
+ 'Create Chart of Accounts' => 'Uus kontoplaan',
+ 'Create Dataset' => 'Uus andmebaas',
+ 'DBA' => 'DBA',
+ 'DBI not installed!' => 'DBI on installeerimata',
+ 'Database' => 'Andmebaas',
+ 'Database Administration' => 'Andmebaasi administreerimine',
+ 'Database Driver not checked!' => 'Andmebaasi draiver valimata!',
+ 'Database User missing!' => 'Andmebaasi kasutaja puudub!',
+ 'Dataset' => 'Andmekogu',
+ 'Dataset missing!' => 'Andmekogu puudub!',
+ 'Dataset updated!' => 'Andmekogu uuendatud!',
+ 'Date Format' => 'Kuupäeva formaat',
+ 'Delete' => 'Kustuta',
+ 'Delete Dataset' => 'Kustuta andmebaas',
+ 'Directory' => 'Kataloog',
+ 'Driver' => 'Draiver',
+ 'Dropdown Limit' => 'Hüppikmenüü Piirang',
+ 'E-mail' => 'E-mail',
+ 'Edit User' => 'Kasutajaandmete muutmine',
+ 'Existing Datasets' => 'Olemasolevad andmebaasid',
+ 'Fax' => 'Faks',
+ 'Host' => 'Server',
+ 'Hostname missing!' => 'Serveri nimi puudub!',
+ 'Language' => 'Keel',
+ 'Lock System' => 'Süstemi lukustamine',
+ 'Lockfile created!' => 'Lukustusfail loodud!',
+ 'Lockfile removed!' => 'Lukustusfail eemaldatud!',
+ 'Login' => 'Login',
+ 'Login name missing!' => 'Kasutajanimi puudub!',
+ 'Logout' => 'Logi välja',
+ 'Manager' => 'Juhataja',
+ 'Menu Width' => 'Menüü Laius',
+ 'Multibyte Encoding' => 'Multibyte Encoding',
+ 'Name' => 'Nimi',
+ 'New Templates' => 'Uued dokumendipõhjad',
+ 'No Database Drivers available!' => 'Ühtegi andmebaasidraiverit ei leitud!',
+ 'No Dataset selected!' => 'Andmekogu valimata!',
+ 'Nothing to delete!' => 'Midagi ei ole kustutada!',
+ 'Number Format' => 'Numbri formaat',
+ 'Oracle Database Administration' => 'Oracle Andmebaasi administreerimine',
+ 'Password' => 'Parool',
+ 'Password changed!' => 'Parool muudetud!',
+ 'Passwords do not match!' => 'Paroolid ei klapi!',
+ 'Pg Database Administration' => 'Pg Andmebaasi administreerimine',
+ 'PgPP Database Administration' => 'PgPP Database Administration',
+ 'Phone' => 'Telefon',
+ 'Port' => 'Port',
+ 'Port missing!' => 'Port puudub!',
+ 'Printer' => 'Printer',
+ 'Save' => 'Salvesta',
+ 'Session Timeout' => 'Sessiooni aegumine',
+ 'Session expired!' => 'Sessioon aegunud!',
+ 'Setup Templates' => 'Dokumendipõhjade seadistamine',
+ 'Signature' => 'Allkiri',
+ 'Stylesheet' => 'Laaditabel',
+ 'Supervisor' => 'Ülevaataja',
+ 'Templates' => 'Dokumendipõhjad',
+ 'The following Datasets are not in use and can be deleted' => 'Järgnevad andmebaasid ei ole kasutusel ning võib kustutada',
+ 'The following Datasets need to be updated' => 'Järgmised andmebaasid vajavad uuendamist',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Olemasolevate allikate eelkontroll. Praeguses staadiumis ei toimu andmete lisamist ega kustutamist.',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Kasutaja gruppi lisamiseks redigeeri nime, muuda kasutajanimi ja salvesta. Luuakse samade parameetritega uus kasutaja',
+ 'Unlock System' => 'Unlock System',
+ 'Update Dataset' => 'Uuenda andmebaas',
+ 'Use Templates' => 'Kasuta dokumendipõhjad',
+ 'User' => 'Kasutaja',
+ 'User deleted!' => 'Kasutaja kustutatud!',
+ 'User saved!' => 'Kasutaja salvestatud!',
+ 'Version' => 'Versioon',
+ 'You are logged out' => 'Oled välja logitud',
+ 'does not exist' => 'ei eksisteeri',
+ 'is already a member!' => 'on juba kasutaja!',
+ 'localhost' => 'localhost',
+ 'locked!' => 'lukustatud!',
+ 'successfully created!' => 'loodud!',
+ 'successfully deleted!' => 'kustutatud!',
+ 'website' => 'kodulehekülg',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'lisa_kasutaja' => 'add_user',
+ 'muuda_admini_parool' => 'change_admin_password',
+ 'muuda_parool' => 'change_password',
+ 'edasi' => 'continue',
+ 'uus_andmebaas' => 'create_dataset',
+ 'kustuta' => 'delete',
+ 'kustuta_andmebaas' => 'delete_dataset',
+ 'süstemi_lukustamine' => 'lock_system',
+ 'login' => 'login',
+ 'logi_välja' => 'logout',
+ 'oracle_andmebaasi_administreerimine' => 'oracle_database_administration',
+ 'pg_andmebaasi_administreerimine' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'salvesta' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'uuenda_andmebaas' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/ee/all b/locale/ee/all
new file mode 100755
index 00000000..d0b260b9
--- /dev/null
+++ b/locale/ee/all
@@ -0,0 +1,928 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+$self{charset} = 'ISO-8859-15';
+
+
+$self{texts} = {
+ 'A' => 'A',
+ 'AP' => 'OstuReskontro',
+ 'AP Aging' => 'OR Aegunud',
+ 'AP Outstanding' => 'OR Laekumata',
+ 'AP Transaction' => 'OR Tehing',
+ 'AP Transactions' => 'OR Tehingud',
+ 'AR' => 'MüügiReskontro',
+ 'AR Aging' => 'MR Aegunud',
+ 'AR Outstanding' => 'MR Laekumata',
+ 'AR Transaction' => 'MR Tehing',
+ 'AR Transactions' => 'MR Tehingud',
+ 'AR/AP' => 'MR/OR',
+ 'About' => 'Programmi Info',
+ 'Above' => 'Alla',
+ 'Access Control' => 'Ligipääsukontroll',
+ 'Access Denied!' => 'Ligipääs Keelatud!',
+ 'Account' => 'Konto',
+ 'Account Number' => 'Konto Number',
+ 'Account Number missing!' => 'Konto Number puudu',
+ 'Account Type' => 'Konto Tüüp',
+ 'Account Type missing!' => 'Konto Tüüp puudu!',
+ 'Account deleted!' => 'Konto on kustutatud!',
+ 'Account does not exist!' => 'Konto ei eksisteeri',
+ 'Account saved!' => 'Konto on salvestatud',
+ 'Accounting' => 'Raamatupidamisarvestus',
+ 'Accounting Menu' => 'Raamatupidamisarvestuse Menüü',
+ 'Accounts' => 'Kontod',
+ 'Accrual' => 'Kapitalisatsioon',
+ 'Activate Audit trail' => 'Aktiveeri Auditi jälgimine',
+ 'Activate Audit trails' => 'Aktiveeri Auditi jälgimine',
+ 'Active' => 'Aktiiv',
+ 'Add' => 'Lisa',
+ 'Add AP Transaction' => 'Lisa OR Tehing',
+ 'Add AR Transaction' => 'Lisa MR Tehing',
+ 'Add Account' => 'Lisa Konto',
+ 'Add Assembly' => 'Lisa Komplekt',
+ 'Add Business' => 'Lisa Ettevõte',
+ 'Add Cash Transfer Transaction' => 'Lisa Sularahamüügi Tehing',
+ 'Add Customer' => 'Lisa Klient',
+ 'Add Deduction' => 'Lisa Hinnaaland',
+ 'Add Department' => 'Lisa Osakond',
+ 'Add Employee' => 'Lisa Töötaja',
+ 'Add Exchange Rate' => 'Lisa Valuutakurss',
+ 'Add GIFI' => 'Lisa GIFI',
+ 'Add General Ledger Transaction' => 'Lisa Pearaamatu Tehing',
+ 'Add Group' => 'Lisa Grupp',
+ 'Add Job' => 'Lisa Ülesanne',
+ 'Add Labor/Overhead' => 'Lisa Tööjõud/Kulud',
+ 'Add Language' => 'Lisa Keel',
+ 'Add POS Invoice' => 'Lisa Müügipunkti Kaubaarve',
+ 'Add Part' => 'Lisa Detail',
+ 'Add Pricegroup' => 'Lisa Hinnagrupp',
+ 'Add Project' => 'Lisa Projekt',
+ 'Add Purchase Order' => 'Lisa Hanketellimus',
+ 'Add Quotation' => 'Lisa Koteering',
+ 'Add Request for Quotation' => 'Lisa Hinnapakkumuse Taotlus',
+ 'Add SIC' => 'Lisa Standardiseeritud Tööstuskood',
+ 'Add Sales Invoice' => 'Lisa Müügiarve',
+ 'Add Sales Order' => 'Lisa Müügitellimus',
+ 'Add Service' => 'Lisa Teenus',
+ 'Add Stores Card' => 'Lisa Tagavarade Kaart',
+ 'Add Time Card' => 'Lisa Ajakaart',
+ 'Add Transaction' => 'Lisa Kanne',
+ 'Add User' => 'Lisa Kasutaja',
+ 'Add Vendor' => 'Lisa Tarnija',
+ 'Add Vendor Invoice' => 'Lisa Ostuarve',
+ 'Add Warehouse' => 'Lisa Kaubaladu',
+ 'Address' => 'Aadress',
+ 'Administration' => 'Arvepidamine',
+ 'Administrator' => 'Arvepidaja',
+ 'After Deduction' => 'Pärast Mahaarvatist',
+ 'Aged' => 'Aegunud',
+ 'Aged Overdue' => 'Aegunud Võlgnevused',
+ 'All' => 'Kõik',
+ 'All Accounts' => 'Kõik Kontod',
+ 'All Datasets up to date!' => 'Kõik Andmehulgad on kaasaegsed!',
+ 'All Items' => 'Kõik Kaubaartiklid',
+ 'Allocated' => 'Reserveeritud',
+ 'Allowances' => 'Diskontod',
+ 'Amount' => 'Summa',
+ 'Amount Due' => 'Maksmisele kuuluv summa',
+ 'Amount missing!' => 'Summa puudub!',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprill',
+ 'Are you sure you want to delete Invoice Number' => 'Kas oled kindel, et soovid kustutada Kaubaarve Number',
+ 'Are you sure you want to delete Order Number' => 'Kas oled kindel, et soovid kustutada Tellimuse Number',
+ 'Are you sure you want to delete Quotation Number' => 'Kas oled kindel, et soovid Koteeringu Number',
+ 'Are you sure you want to delete Transaction' => 'Kas oled kindel, et soovid kustutada kande',
+ 'Are you sure you want to delete time card for' => 'Oled kindel, et soovid kustutada ajakardi',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Kas olete kindel, et soovite eemaldada märgitud väljad järjekorrast?',
+ 'As of' => 'nagu',
+ 'Assemblies' => 'Koosteosad',
+ 'Assemblies restocked!' => 'Koosteosade laovaru täiendatud!',
+ 'Assembly' => 'Komplekt',
+ 'Assembly stocked!' => 'Komplekt ladustatud',
+ 'Asset' => 'Vara',
+ 'Attachment' => 'Manus',
+ 'Audit Control' => 'Audiitorkontroll',
+ 'Audit trail disabled' => 'Auditi jälgimine välja lülitatud',
+ 'Audit trail enabled' => 'Auditi jälgimine sisse lülitatud',
+ 'Audit trail removed up to' => 'Auditi jäljed kustutatud kuni',
+ 'Audit trails disabled' => 'Auditi jälgimine välja lülitatud',
+ 'Audit trails enabled' => 'Auditi jälgimine sisse lülitatud',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Average Cost' => 'Keskmised Kulud',
+ 'Avg Cost' => 'Kesk. Kulud',
+ 'BIC' => 'BIC (S.W.I.F.T)',
+ 'BOM' => 'Materjaliarvestus',
+ 'Backup' => 'Varukoopia',
+ 'Backup sent to' => 'Varukoopia saadetud',
+ 'Balance' => 'Bilanss',
+ 'Balance Sheet' => 'Bilansiaruanne',
+ 'Based on' => 'Põhineb',
+ 'Batch Printing' => 'Mass. Väljatrükk',
+ 'Bcc' => 'Bcc',
+ 'Before Deduction' => 'Enne Hinnaalandust',
+ 'Beginning Balance' => 'Algsaldo',
+ 'Below' => 'All',
+ 'Billing Address' => 'Arve Esitamise Aadress',
+ 'Bin' => 'Pakendit',
+ 'Bin List' => 'Pakendi Saateleht',
+ 'Bin Lists' => 'Pakendi Saatelehed',
+ 'Books are open' => '´urnaalid on avatud',
+ 'Break' => 'Katkestus',
+ 'Business' => 'Ettevõte',
+ 'Business Number' => 'Ettevõtte Registrinumber',
+ 'Business deleted!' => 'Ettevõte kustutatud!',
+ 'Business saved!' => 'Ettevõte salvestatud',
+ 'C' => 'C',
+ 'COGS' => 'Müügikulud',
+ 'COGS account does not exist!' => 'Müügikulude kontot puudu!',
+ 'Cannot add stores card for a completed job!' => 'Ei saa lisada tagavarade kaarti juba lõpetatud tööülesandele!',
+ 'Cannot add time card for a completed job!' => 'Ei saa lisada ajakaarti juba lõpetatud tööülesandele!',
+ 'Cannot change stores card for a completed job!' => 'Ei saa muuta tagavarade kaarti juba lõpetatud tööülesandele!',
+ 'Cannot change time card for a completed job!' => 'Ei saa muuta ajakaarti juba lõpetatud tööülesandele!',
+ 'Cannot create Assembly' => 'Ei saa luua Komplekti',
+ 'Cannot create Labor' => 'Ei saa luua Tööjõudu',
+ 'Cannot create Lock!' => 'Ei saa Lukustada!',
+ 'Cannot create Part' => 'Ei saa luua Detaili',
+ 'Cannot create Service' => 'Ei saa luua Teenust',
+ 'Cannot delete account!' => 'Kontot ei saa kustutada!',
+ 'Cannot delete customer!' => 'Kienti ei saa kustutada!',
+ 'Cannot delete default account!' => 'Tähtaegunud võla kontot ei saa kustutada!',
+ 'Cannot delete invoice!' => 'Arvet ei saa kustutada',
+ 'Cannot delete item!' => 'Kaubaartiklit ei saa kustutada!',
+ 'Cannot delete order!' => 'Tellimust ei saa kustutada!',
+ 'Cannot delete quotation!' => 'Koteeringut ei saa kustutada!',
+ 'Cannot delete time card!' => 'Ei saa kustutada ajakaarti!',
+ 'Cannot delete transaction!' => 'Kannet ei saa kustutada!',
+ 'Cannot delete vendor!' => 'Tarnijat ei saa kustutada!',
+ 'Cannot post Payment!' => 'Makset ei saa salvestada!',
+ 'Cannot post Receipt!' => 'Sisetulekuarderit ei saa salvestada!',
+ 'Cannot post invoice for a closed period!' => 'Arvet ei saa salvestada suletud perioodile!',
+ 'Cannot post invoice!' => 'Arvet ei saa salvestada!',
+ 'Cannot post payment for a closed period!' => 'Makset ei saa salvestada suletud perioodile!',
+ 'Cannot post transaction for a closed period!' => 'Kannet ei saa salvestada suletud perioodile!',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => 'Ei saa postitada tehingut deebeti ja kreediti väljadega samal kontol!',
+ 'Cannot post transaction!' => 'Tehingut ei saa salvestada!',
+ 'Cannot remove files!' => 'Faile ei saa kustutada!',
+ 'Cannot save account!' => 'Kontot ei saa salvestada!',
+ 'Cannot save defaults!' => 'Ei saa salvestada tähtaegunud võlgu!',
+ 'Cannot save order!' => 'Tellimust ei saa salvestada!',
+ 'Cannot save preferences!' => 'Määranguid ei saa salvestada!',
+ 'Cannot save quotation!' => 'Koteeringut ei saa salvestada!',
+ 'Cannot save stores card for a closed period!' => 'Ei saa salvestada tagavarade kaarti juba suletud perioodil!',
+ 'Cannot save stores card!' => 'Ei saa salvestada tagavarade kaarti!',
+ 'Cannot save time card for a closed period!' => 'Ei saa salvestada ajakaarti juba suletud perioodil!',
+ 'Cannot save time card!' => 'Ajakaarti ei saa salvestada!',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Konto saab olla, kas Nõue, Kohustuse või Tulu/Kulu tüüpi',
+ 'Cannot set multiple options for' => 'Ei saa märgistada mitut valikut',
+ 'Cannot set multiple options for Item' => 'Ei saa märgistada mitut valikut Kaubaartiklile',
+ 'Cannot stock Assembly!' => 'Komplekti pole võimalik ladustada!',
+ 'Cannot stock assemblies!' => 'Ei saa ladustada koosteosi',
+ 'Cash' => 'Kassaseis',
+ 'Cc' => 'Cc',
+ 'Change' => 'Tagasi',
+ 'Change Admin Password' => 'Muuda Adminni Parool',
+ 'Change Password' => 'Muuda Parool',
+ 'Chargeable' => 'Maksustatav',
+ 'Chart of Accounts' => 'Kontoplaan',
+ 'Check' => 'Kontrolli',
+ 'Check Inventory' => 'Kontrolli Laoseisu',
+ 'City' => 'Linn',
+ 'Cleared' => 'Laekunud',
+ 'Click on login name to edit!' => 'Redigeerimiseks kliki kasutajanimel',
+ 'Clocked' => 'Kulunud aeg',
+ 'Close Books up to' => 'Sulge ´urnaalid kuni',
+ 'Closed' => 'Suletud',
+ 'Code' => 'Kood',
+ 'Code missing!' => 'Kood puudu!',
+ 'Company' => 'Firma',
+ 'Company Name' => 'Firma Nimi',
+ 'Compare to' => 'Võrdlus perioodiga',
+ 'Completed' => 'Lõpetatud',
+ 'Components' => 'Komponendid',
+ 'Confirm' => 'Kinnita',
+ 'Confirm!' => 'Kinnita!',
+ 'Connect to' => 'Ühenda',
+ 'Consolidate' => 'Koonda',
+ 'Consolidate Orders' => 'Tellimuste Koondamine',
+ 'Consolidate Purchase Orders' => 'Ostutellimuste Koondamine',
+ 'Consolidate Sales Orders' => 'Müügitellimuste Koondamine',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Jätka',
+ 'Contra' => 'Ammortisatsioon',
+ 'Copies' => 'Koopiat',
+ 'Copy to COA' => 'Kopeeri kontoplaani',
+ 'Cost' => 'Omahind',
+ 'Cost Center' => 'Kulukeskus',
+ 'Could not save pricelist!' => 'Hinnakirja salvestamine ebaõnnestus!',
+ 'Could not save!' => 'Ei saa salvestada!',
+ 'Could not transfer Inventory!' => 'Laoseisu ei saa ümber paigutada!',
+ 'Country' => 'Riik',
+ 'Create Chart of Accounts' => 'Uus kontoplaan',
+ 'Create Dataset' => 'Uus Andmekogu',
+ 'Credit' => 'Kreedit',
+ 'Credit Invoice' => 'Kreeditarve',
+ 'Credit Limit' => 'Krediidilimiit',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valuuta',
+ 'Current' => 'Jooksev',
+ 'Current Earnings' => 'Jooksev Kasum/Kahjum',
+ 'Customer' => 'Klient',
+ 'Customer History' => 'Kliendi Ajalugu',
+ 'Customer Number' => 'Kliendi Number',
+ 'Customer deleted!' => 'Klient on kustutatud!',
+ 'Customer missing!' => 'Klienti puudu!',
+ 'Customer not on file!' => 'Klient puudub failis!',
+ 'Customer saved!' => 'Klient salvestatud!',
+ 'Customers' => 'Kliendid',
+ 'DBA' => 'DBA',
+ 'DBI not installed!' => 'DBI on installeerimata',
+ 'DOB' => 'Sünniaeg',
+ 'Database' => 'Andmebaas',
+ 'Database Administration' => 'Andmebaasi administreerimine',
+ 'Database Driver not checked!' => 'Andmebaasi draiver valimata!',
+ 'Database Host' => 'Andmebaasiserver',
+ 'Database User missing!' => 'Andmebaasi kasutaja puudub!',
+ 'Dataset' => 'Andmekogu',
+ 'Dataset is newer than version!' => 'Andmekogu versioon, on uuem süsteemi omast!',
+ 'Dataset missing!' => 'Andmekogu puudub!',
+ 'Dataset updated!' => 'Andmekogu uuendatud!',
+ 'Date' => 'Kuupäev',
+ 'Date Format' => 'Kuupäeva Formaat',
+ 'Date Paid' => 'Maksekuupäev',
+ 'Date Received' => 'Kättesaamise kuupäev',
+ 'Date missing!' => 'Kuupäev puudub!',
+ 'Date received missing!' => 'Kattesaamise kuupäev puudub!',
+ 'Date worked' => 'Töötatud kuupäeval',
+ 'Day' => 'Päev',
+ 'Day(s)' => 'Päev(a)',
+ 'Days' => 'Päeva',
+ 'Debit' => 'Deebet',
+ 'Debit Invoice' => 'Deebitarve',
+ 'Dec' => 'Dets',
+ 'December' => 'Detsember',
+ 'Decimalplaces' => 'Komakohad',
+ 'Deduct after' => 'Hinnaaland pärast',
+ 'Deduction deleted!' => 'Hinnaaland kustutatud!',
+ 'Deduction saved!' => 'Hinnaaland salvestatud!',
+ 'Deductions' => 'Hinnaalandused',
+ 'Default Template' => 'Vaikimisi Dokumendipõhi',
+ 'Defaults' => 'Vaikeväärtused',
+ 'Defaults saved!' => 'Vaikeväärtused salvestatud!',
+ 'Delete' => 'Kustuta',
+ 'Delete Account' => 'Kustuta Lonto',
+ 'Delete Dataset' => 'Kustuta Andmekogu',
+ 'Delete Schedule' => 'Kustutata Ajakava',
+ 'Deleting a language will also delete the templates for the language' => 'Keele kustutamisele järgneb kõigi selle keele dokumendipõhjade kustutamine',
+ 'Delivery Date' => 'Tarnetähtaeg',
+ 'Department' => 'Osakond',
+ 'Department deleted!' => 'Osakond kustutatud!',
+ 'Department saved!' => 'Osakond salvestatud!',
+ 'Departments' => 'Osakonnad',
+ 'Deposit' => 'Deposiit',
+ 'Description' => 'Selgitus',
+ 'Description Translations' => 'Tõlgete Selgitus',
+ 'Description missing!' => 'Selgitus puudub!',
+ 'Detail' => 'Detail',
+ 'Difference' => 'Erinevus',
+ 'Directory' => 'Aadressiraamat',
+ 'Discount' => 'Diskonto',
+ 'Done' => 'Valmis',
+ 'Drawing' => 'Joonis',
+ 'Driver' => 'Ohjur',
+ 'Dropdown Limit' => 'Rippmenüü Piirang',
+ 'Due Date' => 'Maksetähtaeg',
+ 'Due Date missing!' => 'Maksetähtaeg puudub!',
+ 'E-mail' => 'E-post',
+ 'E-mail Statement to' => 'Saata E-postiga Kasumiaruanne aadressil',
+ 'E-mail address missing!' => 'E-posti aadress puudub',
+ 'E-mail message' => 'E-posti teade',
+ 'E-mailed' => 'E-postiga saadetud',
+ 'Edit' => 'Muudatused',
+ 'Edit AP Transaction' => 'Muuda OR Tehing',
+ 'Edit AR Transaction' => 'Muuda MR Tehing',
+ 'Edit Account' => 'Muuda Konto',
+ 'Edit Assembly' => 'Muuda Komplekti',
+ 'Edit Business' => 'Muuda Ettevõtte',
+ 'Edit Cash Transfer Transaction' => 'Muuda Raha Ülekande Tehing',
+ 'Edit Customer' => 'Muuda Klienti',
+ 'Edit Deduction' => 'Muuda Hinnaaland',
+ 'Edit Department' => 'Muuda Osakonna',
+ 'Edit Description Translations' => 'Muuda Tõlgete Selgitus',
+ 'Edit Employee' => 'Muuda Töötaja',
+ 'Edit GIFI' => 'Muuda GIFI',
+ 'Edit General Ledger Transaction' => 'Muuda Pearaamatu Tehing',
+ 'Edit Group' => 'Muuda Gruppi andmed',
+ 'Edit Job' => 'Redigeeri Tööülesanne',
+ 'Edit Labor/Overhead' => 'Muuda Tööjõukulu',
+ 'Edit Language' => 'Muuda Keel',
+ 'Edit POS Invoice' => 'Muuda Müügipunkti Müügiarve',
+ 'Edit Part' => 'Muuda Detail',
+ 'Edit Preferences for' => 'Muuda Määrangud: ',
+ 'Edit Pricegroup' => 'Muuda Hinnagrupp',
+ 'Edit Project' => 'Muuda Projekt',
+ 'Edit Purchase Order' => 'Muuda Ostutellimus',
+ 'Edit Quotation' => 'Muuda Koteering',
+ 'Edit Request for Quotation' => 'Muuda Koteeringu Taotlus',
+ 'Edit SIC' => 'Muuda SIC-Standardiseeritud Tööstuskood',
+ 'Edit Sales Invoice' => 'Muuda Müügiarve',
+ 'Edit Sales Order' => 'Muuda Müügitellimus',
+ 'Edit Service' => 'Muuda Teenus',
+ 'Edit Template' => 'Muuda Dokumendipõhi',
+ 'Edit Time Card' => 'Muuda Ajakaarti',
+ 'Edit User' => 'Muuda Kasutaja',
+ 'Edit Vendor' => 'Muuda Tarnija',
+ 'Edit Vendor Invoice' => 'Muuda Ostuarve',
+ 'Edit Warehouse' => 'Muuda Kaubaladu',
+ 'Employee' => 'Töötaja',
+ 'Employee Name' => 'Teenistuja Nimi',
+ 'Employee Number' => 'Teenistuja Number',
+ 'Employee deleted!' => 'Teenistuja kustutatud',
+ 'Employee pays' => 'Teenistuja töötasu',
+ 'Employee saved!' => 'Teenistuja salvestatud',
+ 'Employees' => 'Teenistujad',
+ 'Employer' => 'Tööandja',
+ 'Employer pays' => 'Tööandja töötasu',
+ 'Enddate' => 'Lõputähtaeg',
+ 'Ends' => 'Lõpeb',
+ 'Enforce transaction reversal for all dates' => 'Kohustuslik tehingute storneerimine kõikide kuupäevade ulatuses',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Sisesta kohalikud- ja välisvaluutad (kuni 3 tähemärki, koolonitega eraltatud, nt. CAD:USD:EUR)',
+ 'Equity' => 'Omandiõigus',
+ 'Every' => 'Iga',
+ 'Exch' => 'Kurss',
+ 'Exchange Rate' => 'Valuutakurss',
+ 'Exchange rate for payment missing!' => 'Maksel puudub valuutakurss!',
+ 'Exchange rate missing!' => 'Valuutakurss puudu!',
+ 'Exempt age <' => 'Vabastatud aeg <',
+ 'Existing Datasets' => 'Olemasolevad Andmekogud',
+ 'Expense' => 'Kulu',
+ 'Expense account does not exist!' => 'Kulude konto puudu!',
+ 'Expense/Asset' => 'Kulu/Vara',
+ 'Extended' => 'Summa',
+ 'FX' => 'Valuutavahetus',
+ 'Failed to save order!' => 'Viga tellimuse salvestamisel!',
+ 'Fax' => 'Faks',
+ 'Feb' => 'Veebr',
+ 'February' => 'Veebruar',
+ 'For' => 'Saata',
+ 'Foreign Exchange Gain' => 'Valuutavahetuse Kasum',
+ 'Foreign Exchange Loss' => 'Valuutavahetuse Kahjum',
+ 'Friday' => 'Reede',
+ 'From' => 'Alates',
+ 'From Warehouse' => 'Tuleb Kaubalaost',
+ 'GIFI' => 'GIFI',
+ 'GIFI deleted!' => 'GIFI kustutatud!',
+ 'GIFI missing!' => 'GIFI puudub!',
+ 'GIFI saved!' => 'GIFI salvestatud!',
+ 'GL' => 'Pearaamat',
+ 'GL Reference Number' => 'Pearaamatu Viitenumber',
+ 'GL Transaction' => 'Pearaamatu Kanne',
+ 'General Ledger' => 'Pearaamat',
+ 'Generate' => 'Genereeri',
+ 'Generate Orders' => 'Genereeri Tellimused',
+ 'Generate Purchase Orders' => 'Genereeri Ostutellimused',
+ 'Generate Purchase Orders from Sales Order' => 'Genereeri Ostutellimused Müügitellimustest',
+ 'Generate Sales Order' => 'Genereeri Müügitellimused',
+ 'Generate Sales Order from Purchase Orders' => 'Genereeri Müügitellimused Ostutellimustest',
+ 'Generate Sales Orders' => 'Genereeri Müügitellimused',
+ 'Goods & Services' => 'Tooted ja Teenused',
+ 'Group' => 'Grupeeri',
+ 'Group Items' => 'Grupeeri Kaubaartiklid',
+ 'Group Translations' => 'Grupeeri Tõlked',
+ 'Group deleted!' => 'Grupp kustutatud!',
+ 'Group missing!' => 'Grupp puudub!',
+ 'Group saved!' => 'Grupp salvestatud!',
+ 'Groups' => 'Grupid',
+ 'HR' => 'Personal',
+ 'HTML Templates' => 'HTML Dokumendipõhjad',
+ 'Heading' => 'Päis',
+ 'History' => 'Ajalugu',
+ 'Home Phone' => 'Kodune Telefon',
+ 'Host' => 'Server',
+ 'Hostname missing!' => 'Serveri nimi puudu!',
+ 'IBAN' => 'Pangaarve NR.',
+ 'ID' => 'ID',
+ 'Image' => 'Pilt',
+ 'In-line' => 'Dokumendisisene',
+ 'Inactive' => 'Vähenõutav',
+ 'Include Exchange Rate Difference' => 'Lisa Valuutavahetuskursside erinevus',
+ 'Include Payment' => 'Lisa Makse',
+ 'Include in Report' => 'Kaasa Aruandesse',
+ 'Include in drop-down menus' => 'Kaasa rippmenüüdesse',
+ 'Income' => 'Tulu',
+ 'Income Statement' => 'Kasumiaruanne',
+ 'Income account does not exist!' => 'Tulude konto puudu!',
+ 'Incorrect Dataset version!' => 'Vale Andmekogu versioon',
+ 'Individual Items' => 'Eraldiseisvad Kaubaartiklid',
+ 'Internal Notes' => 'Sisemärkused',
+ 'Inventory' => 'Laoseis',
+ 'Inventory account does not exist!' => 'Laoseisu konto puudu!',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Enne komplekti aegunuks märkimist peab laoseis null olema!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Enne toote aegunuks märkimist peab laoseis null olema!',
+ 'Inventory saved!' => 'Laoseis salvestatud!',
+ 'Inventory transferred!' => 'Laoseis üle kantud!',
+ 'Invoice' => 'Kaubaarve',
+ 'Invoice Date' => 'Kaubaarve Kuupäev',
+ 'Invoice Date missing!' => 'Kaubaarvel Kuupäev puudu!',
+ 'Invoice Number' => 'Kaubaarve Number',
+ 'Invoice Number missing!' => 'Kaubaarve Number puudu!',
+ 'Invoice deleted!' => 'Kaubaarve kustutatud!',
+ 'Invoices' => 'Kaubaarved',
+ 'Is this a summary account to record' => 'Kirje summaarne konto',
+ 'Item' => 'AR.',
+ 'Item already on pricelist!' => 'Kaubaartikkel on juba hinnakirjas!',
+ 'Item deleted!' => 'Kaubaartikkel kustutatud!',
+ 'Item not on file!' => 'Kaubaartikkel pole failis !',
+ 'Items' => 'Kaubaartiklid',
+ 'Jan' => 'Jaan',
+ 'January' => 'Jaanuar',
+ 'Job' => 'Tööülesanne',
+ 'Job Description' => 'Tööülesande Kirjeldus',
+ 'Job Name' => 'Tööülesande Nimetus',
+ 'Job Number' => 'Tööülesande Number',
+ 'Job Number missing!' => 'Tööülesande Number puudu!',
+ 'Job deleted!' => 'Tööülesanne kustutatud!',
+ 'Job saved!' => 'Tööülesanne salvestatud!',
+ 'Job/Project Number' => 'Töö/Projekti Number',
+ 'Jobs' => 'Tööülesanded',
+ 'Jul' => 'Juul',
+ 'July' => 'Juuli',
+ 'Jun' => 'Juun',
+ 'June' => 'Juuni',
+ 'LaTeX Templates' => 'LaTeX Dokumendipõhjad',
+ 'Labor Code' => 'Tööseadusandlus',
+ 'Labor Code missing!' => 'Tööseadusandluse Kood puudu!',
+ 'Labor/Overhead' => 'Tööjõud/Kulud',
+ 'Language' => 'Keel',
+ 'Language deleted!' => 'Keel kustutatud!',
+ 'Language saved!' => 'Keel salvestatud!',
+ 'Languages' => 'Keeled',
+ 'Languages not defined!' => 'Keeled pole defineeritud!',
+ 'Last Cost' => 'Viimane Maksumus',
+ 'Last Numbers & Default Accounts' => 'Viimased Numbrid ja Vaikimisi Kontod',
+ 'Lead' => 'Juhtimine',
+ 'Leadtime' => 'Tellimuse täitmisaeg',
+ 'Liability' => 'Võlg',
+ 'Licensed to' => 'Litsentsi omanik',
+ 'Line Total' => 'Rea Summa',
+ 'Link' => 'Seosed',
+ 'Link Accounts' => 'Seosta Kontod',
+ 'List' => 'Nimekiri',
+ 'List Accounts' => 'Kontode Nimekiri',
+ 'List Businesses' => 'Ettevõtete Nimekiri',
+ 'List Departments' => 'Osakondade Nimekiri',
+ 'List GIFI' => 'GIFI nimekiri',
+ 'List Languages' => 'Keelte Nimekiri',
+ 'List Price' => 'Hinnakirjahind',
+ 'List Projects' => 'Projektide Nimekiri',
+ 'List SIC' => 'SIC-Standardiseeritud Tööstuskoodide Nimekiri',
+ 'List Transactions' => 'Tehingute Nimekiri',
+ 'List Warehouses' => 'Kaubaladude Nimekiri',
+ 'Lock System' => 'Lukusta Süsteem',
+ 'Lockfile created!' => 'Lukustusfail loodud!',
+ 'Lockfile removed!' => 'Lukustusfail eemaldatud!',
+ 'Login' => 'Logi sisse',
+ 'Login name missing!' => 'Kasutajanimi puudu!',
+ 'Logout' => 'Logi välja',
+ 'Make' => 'Tootja',
+ 'Manager' => 'Juhataja',
+ 'Mar' => 'Mär',
+ 'March' => 'Märts',
+ 'Marked entries printed!' => 'Märgitud kanded välja trükitud!',
+ 'Markup' => 'Kate',
+ 'Maximum' => 'Maksimum',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Memo',
+ 'Menu Width' => 'Menüü Laius',
+ 'Message' => 'Sõnum',
+ 'Method' => 'Meetod',
+ 'Microfiche' => 'Mikrofi¨¨',
+ 'Model' => 'Mudel',
+ 'Monday' => 'Esmaspäev',
+ 'Month' => 'Kuu',
+ 'Month(s)' => 'Kuu(d)',
+ 'Months' => 'Kuud',
+ 'Multibyte Encoding' => 'Multibyte Encoding',
+ 'N/A' => 'Puudub',
+ 'Name' => 'Nimi',
+ 'Name missing!' => 'Nimi puudu!',
+ 'New Templates' => 'Uus Dokumendipõhi',
+ 'New Window' => 'Uus Aken',
+ 'Next' => 'Järgmine',
+ 'Next Date' => 'Järgmine Kuupäev',
+ 'Next Number' => 'Järgmine Number',
+ 'No' => 'Ei',
+ 'No Database Drivers available!' => 'Ühtegi Andmebaasiohjurit pole saadaval!',
+ 'No Dataset selected!' => 'Andmekogu valimata!',
+ 'No Employees on file!' => 'Failis puuduvad Töötajad',
+ 'No History!' => 'Ajalugu Puudub!',
+ 'No Labor codes on file!' => 'Failis puuduvad Tööseadusandluse koodid',
+ 'No Parts on file!' => 'Failis puuduvad Detailid',
+ 'No Services on file!' => 'Failis puuduvad Teenused',
+ 'No email address for' => 'E-posti aadress puudu',
+ 'No open Jobs!' => 'Puuduvad alustatud Tööülesanded',
+ 'No open Projects!' => 'Puuduvad avatud Projektid!',
+ 'No.' => 'Nr.',
+ 'Non-chargeable' => 'Maksuvaba',
+ 'Non-taxable' => 'Maksuvaba',
+ 'Non-taxable Purchases' => 'Maksuvaba Ostud',
+ 'Non-taxable Sales' => 'Maksuvaba Müük',
+ 'Non-tracking Items' => 'Mitte jälgitavad Kaubaartiklid',
+ 'Notes' => 'Märkused',
+ 'Nothing entered!' => 'Midagi pole sisestatud!',
+ 'Nothing open!' => 'Midagi ei avane!',
+ 'Nothing selected!' => 'Valik puudub!',
+ 'Nothing to delete!' => 'Midagi pole kustutada!',
+ 'Nothing to print!' => 'Pole midagi trükkida!',
+ 'Nothing to transfer!' => 'Pole midagi ümber paigutada!',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Number',
+ 'Number Format' => 'Numbri Formaat',
+ 'Number missing in Row' => 'Antud real puudub Number',
+ 'O' => 'Avatud',
+ 'OH' => 'Ülekulud',
+ 'Obsolete' => 'Aegunud',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktoober',
+ 'On Hand' => 'Saadaval',
+ 'Onhand' => 'Käepärast',
+ 'Open' => 'Avatud',
+ 'Oracle Database Administration' => 'Oracle Andmebaasi Administreerimine',
+ 'Order' => 'Tellimus',
+ 'Order Date' => 'Tellimuse Kuupäev',
+ 'Order Date missing!' => 'Tellimuse Kuupäev puudub!',
+ 'Order Entry' => 'Tellimuse Sisestus',
+ 'Order Number' => 'Tellimuse Number',
+ 'Order Number missing!' => 'Tellimuse Number puudub',
+ 'Order deleted!' => 'Tellimus kustutatud!',
+ 'Order generation failed!' => 'Arve genereerimine ebaõnnestus!',
+ 'Order saved!' => 'Tellimus salvestatud!',
+ 'Orders generated!' => 'Arved genereeritud',
+ 'Orphaned' => 'Seosteta',
+ 'Out of balance transaction!' => 'Bilansiväline tehing!',
+ 'Out of balance!' => 'Bilanss ei klapi!',
+ 'Outstanding' => 'Laekumata',
+ 'Overdue' => 'Tähtaegunud',
+ 'PDF' => 'PDF',
+ 'PO' => 'Hanketellimus',
+ 'PO Number' => 'Ostutellimuse Number',
+ 'POS' => 'MüügiPunkt',
+ 'POS Invoice' => 'MP Kaubaarve',
+ 'Packing List' => 'Saateleht',
+ 'Packing List Date missing!' => 'Saatelehe Kuupäev puudu!',
+ 'Packing List Number missing!' => 'Saateelehe Number puudu!',
+ 'Packing Lists' => 'Saatelehed',
+ 'Paid' => 'Makstud',
+ 'Part' => 'Detail',
+ 'Part Number' => 'Detaili Number',
+ 'Partnumber' => 'Detailinumber',
+ 'Parts' => 'Detailid',
+ 'Parts Requirements' => 'Detailide Vajadus',
+ 'Password' => 'Parool',
+ 'Password changed!' => 'Parool muudetud!',
+ 'Password does not match!' => 'Vale parool!',
+ 'Passwords do not match!' => 'Paroolid ei klapi!',
+ 'Payables' => 'Kreditoorne võlgnevus',
+ 'Payment' => 'Makse',
+ 'Payment date missing!' => 'Maksekuupäev puudu!',
+ 'Payment posted!' => 'Makse saadetud!',
+ 'Payments' => 'Maksed',
+ 'Payments posted!' => 'Maksed postitatud!',
+ 'Payroll Deduction' => 'Palga Mahaarvatis',
+ 'Period' => 'Periood',
+ 'Pg Database Administration' => 'Pg Andmebaasi Administreerimine',
+ 'PgPP Database Administration' => 'PgPP Database Administration',
+ 'Phone' => 'Telefon',
+ 'Pick List' => 'Veose Saateleht',
+ 'Pick Lists' => 'Veose Saatelehed',
+ 'Port' => 'Port',
+ 'Port missing!' => 'Port puudub!',
+ 'Pos' => 'NR.',
+ 'Post' => 'Postita',
+ 'Post as new' => 'Postita uuena',
+ 'Posted!' => 'Postitatud!',
+ 'Posting' => 'Postitamine',
+ 'Posting failed!' => 'Postitamine ebaõnnestus',
+ 'Postscript' => 'Postscript',
+ 'Preferences' => 'Eelistused',
+ 'Preferences saved!' => 'Eelistused salvestatud!',
+ 'Prepayment' => 'Ettemaksmine',
+ 'Price' => 'Hind',
+ 'Pricegroup' => 'Hinnagrupp',
+ 'Pricegroup deleted!' => 'Hinnagrupp kustutatud!',
+ 'Pricegroup missing!' => 'Hinnagrupp puudu!',
+ 'Pricegroup saved!' => 'Hinnagrup salvestatud!',
+ 'Pricegroups' => 'Hinnagrupid',
+ 'Pricelist' => 'Hinnakiri',
+ 'Print' => 'Trüki',
+ 'Print and Post' => 'Trüki ja Postita',
+ 'Print and Post as new' => 'Trüki ja Postita uuena',
+ 'Print and Save' => 'Trüki ja Salvesta',
+ 'Print and Save as new' => 'Trüki ja Salvesta uuena',
+ 'Printed' => 'Trükitud',
+ 'Printer' => 'Printer',
+ 'Printing' => 'Trükib',
+ 'Printing ... ' => 'Trükib ...',
+ 'Process Transactions' => 'Viia läbi Tehing',
+ 'Production' => 'Tootmine',
+ 'Profit Center' => 'Kasumikeskus',
+ 'Project' => 'Projekt',
+ 'Project Description Translations' => 'Projekti Kirjelduse Selgitus',
+ 'Project Name' => 'Projekti Nimi',
+ 'Project Number' => 'Projekti Number',
+ 'Project Number missing!' => 'Projekti Number puudu!',
+ 'Project Transactions' => 'Projekti Kanded',
+ 'Project deleted!' => 'Projekt kustutatud!',
+ 'Project not on file!' => 'Projekti pole failis!',
+ 'Project saved!' => 'Projekt salvestatud!',
+ 'Project/Job Name' => 'Projekti/Tööülesande Nimi',
+ 'Project/Job Number' => 'Projekti/Tööülesande Number',
+ 'Projects' => 'Projektid',
+ 'Purchase Order' => 'Hanketellimus',
+ 'Purchase Order Number' => 'Hanketellimuse Number',
+ 'Purchase Orders' => 'Hanketellimused',
+ 'Qty' => 'Kogus',
+ 'Quantity exceeds available units to stock!' => 'Kogus ületab laos olevad ühikud!',
+ 'Quarter' => 'Kvartal',
+ 'Queue' => 'Järjekord',
+ 'Queued' => 'Järjekorras',
+ 'Quotation' => 'Koteering',
+ 'Quotation ' => 'Koteering',
+ 'Quotation Date' => 'Koteeringu kuupäev',
+ 'Quotation Date missing!' => 'Koteeringu Kuupäev puudu!',
+ 'Quotation Number' => 'Koteeringu Number',
+ 'Quotation Number missing!' => 'Koteeringu Number puudub!',
+ 'Quotation deleted!' => 'Koteering kustutatud!',
+ 'Quotations' => 'Koteeringud',
+ 'R' => 'M',
+ 'RFQ' => 'Hinnapakkumuse Taotlus',
+ 'RFQ ' => 'Hinnapakkumuse Taotlus',
+ 'RFQ Number' => 'Hinnapakkumuse Taotluse NR.',
+ 'RFQs' => 'Hinnapakkumuse Taotlused',
+ 'ROP' => 'Pakendis tk.',
+ 'Rate' => 'Tariif',
+ 'Rate missing!' => 'Tariif puudu!',
+ 'Recd' => 'Kätte saadud',
+ 'Receipt' => 'Kviitung',
+ 'Receipt posted!' => 'Kviitung postitatud',
+ 'Receipts' => 'Laekumid',
+ 'Receivables' => 'Debitoorne võlgnevus',
+ 'Receive' => 'Vastuvõtt',
+ 'Receive Merchandise' => 'Kauba Vastuvõtt',
+ 'Reconciliation' => 'Kooskõlastamine',
+ 'Reconciliation Report' => 'Kooskõlastamise Raport',
+ 'Record in' => 'Sihtkonto',
+ 'Recurring Transaction' => 'Korduvad Tehingud',
+ 'Recurring Transactions' => 'Korduvad Tehingud',
+ 'Reference' => 'Teatis',
+ 'Remaining' => 'Jääk',
+ 'Remove' => 'Eemalda',
+ 'Remove Audit trail up to' => 'Eemaldada Auditi jäljed kuni',
+ 'Remove Audit trails up to' => 'Kustuta Auditi jäljed kuni',
+ 'Removed spoolfiles!' => 'Trükijärjekorra failid eemaldatud!',
+ 'Removing marked entries from queue ...' => 'Eemaldan märgitud kanded järjekorrast...',
+ 'Repeat' => 'Korrata',
+ 'Report for' => 'Aruanne',
+ 'Reports' => 'Aruanded',
+ 'Req' => 'Vajalik',
+ 'Request for Quotation' => 'Hinnapakkumuse Taotlus',
+ 'Request for Quotations' => 'Hinnapakkumuse Taotlused',
+ 'Required by' => 'Tarnetähtaeg',
+ 'Requirements' => 'Nõudmised',
+ 'Retained Earnings' => 'Jaotamata Kasum',
+ 'Role' => 'Roll',
+ 'S' => 'Laupäev/Pühapäev',
+ 'SIC' => 'Standardiseeritud Tööstuskood',
+ 'SIC deleted!' => 'Standardiseeritud Tööstuskood Kustutatud!',
+ 'SIC saved!' => 'Standardiseeritud Tööstuskood Salvestatud!',
+ 'SKU' => 'Asenduskaup',
+ 'SO' => 'Müügitellimus',
+ 'SSN' => 'Isikukood',
+ 'Sale' => 'Müük',
+ 'Sales' => 'Müük',
+ 'Sales Invoice' => 'Müügiarve',
+ 'Sales Invoice ' => 'Müügiarve',
+ 'Sales Invoice.' => 'Müügiarve.',
+ 'Sales Invoice/AR Transaction Number' => 'Müügiarve/MR Tehingu Number',
+ 'Sales Invoices' => 'Müügiarved',
+ 'Sales Order' => 'Müügitellimus',
+ 'Sales Order Number' => 'Müügiarve Number',
+ 'Sales Orders' => 'Müügitellimused',
+ 'Sales Quotation Number' => 'Müügipakkumuse Number',
+ 'Salesperson' => 'Müüja',
+ 'Saturday' => 'Laupäev',
+ 'Save' => 'Salvesta',
+ 'Save Pricelist' => 'Salvesta Hinnakiri',
+ 'Save Schedule' => 'Salvestada Ajakava',
+ 'Save as new' => 'Salvesta uuena',
+ 'Save to File' => 'Salvesta Faili',
+ 'Saving' => 'Salvestab',
+ 'Schedule' => 'Ajakava',
+ 'Scheduled' => 'Planeeritud',
+ 'Screen' => 'Ekraan',
+ 'Search' => 'Otsi',
+ 'Select' => 'Vali',
+ 'Select Customer' => 'Vali Klient',
+ 'Select Vendor' => 'Vali Tarnija',
+ 'Select a Printer!' => 'Vali Printer',
+ 'Select a printer!' => 'Vali printer!',
+ 'Select all' => 'Vali kõik',
+ 'Select from one of the names below' => 'Vali üks alltoodud nimedest',
+ 'Select from one of the projects below' => 'Vali üks alltoodud projektidest',
+ 'Select items' => 'Vali kaubaartikkel',
+ 'Select payment' => 'Vali makse',
+ 'Select postscript or PDF!' => 'Vali kas postscript või PDF',
+ 'Select txt, postscript or PDF!' => 'Valida .txt, postscript või PDF!',
+ 'Sell' => 'Müüma',
+ 'Sell Price' => 'Müügihind',
+ 'Send by E-Mail' => 'Saada E-postiga',
+ 'Sending' => 'Saadab',
+ 'Sep' => 'Sept',
+ 'September' => 'September',
+ 'Serial No.' => 'Seerianr.',
+ 'Serial Number' => 'Seerianumber',
+ 'Service' => 'Teenus',
+ 'Service Code' => 'Teenuse Kood',
+ 'Service Code missing!' => 'Teenuse Kood puudu!',
+ 'Service/Labor Code' => 'Teenuse/Töö Kood',
+ 'Services' => 'Teenused',
+ 'Session Timeout' => 'Sessiooni aegumine',
+ 'Session expired!' => 'Sessioon aegunud!',
+ 'Setup Templates' => 'Dokumendipõhjade seadistamine',
+ 'Ship' => 'Saatmine',
+ 'Ship Merchandise' => 'Kauba Saatmine',
+ 'Ship to' => 'Kaubasaaja',
+ 'Ship via' => 'Tarneviis',
+ 'Shipping' => 'Saadetised',
+ 'Shipping Address' => 'Tarneaadress',
+ 'Shipping Date' => 'Saatmise Kuupäev',
+ 'Shipping Date missing!' => 'Saatmise Kuupäev puudub',
+ 'Shipping Point' => 'Saadetise Sihtpunkt',
+ 'Short' => 'Puudu',
+ 'Signature' => 'Allkiri',
+ 'Source' => 'Allikas',
+ 'Spoolfile' => 'Trükijärjekorra fail',
+ 'Standard' => 'Standard',
+ 'Standard Industrial Codes' => 'Standardiseeritud Tööstuskood',
+ 'Startdate' => 'Alguskuupäev',
+ 'State' => 'Riik',
+ 'State/Province' => 'Riik/Maakond',
+ 'Statement' => 'Aruanne',
+ 'Statement Balance' => 'Bilansiaruanne',
+ 'Statement sent to' => 'Aruanne saadetud',
+ 'Statements sent to printer!' => 'Aruanded saadetud printerile',
+ 'Stock' => 'Kaubavaru',
+ 'Stock Assembly' => 'Komplekti Ladustamine',
+ 'Stock Finished Goods' => 'Ladusta Valmistoodang',
+ 'Stores Card' => 'Tagavarade Kaart',
+ 'Stores Card saved!' => 'Tagavarade Kaart salvestatud!',
+ 'Stores Cards' => 'Tagavarade Kaardid',
+ 'Stylesheet' => 'Laaditabel',
+ 'Sub-contract GIFI' => 'Allhanke GIFI',
+ 'Subject' => 'Pealkiri',
+ 'Subtotal' => 'Vahekokkuvõte',
+ 'Summary' => 'Kokkuvõte',
+ 'Sunday' => 'Pühapäev',
+ 'Supervisor' => 'Ülevaataja',
+ 'System' => 'Süsteem',
+ 'System Defaults' => 'Süsteemi Vaikeväärtused',
+ 'Tax' => 'Maks',
+ 'Tax Account' => 'Maksukonto',
+ 'Tax Accounts' => 'Maksukontod',
+ 'Tax Included' => 'Sisaldab Käibemaksu',
+ 'Tax Number' => 'Maks Nnumber ',
+ 'Tax Number / SSN' => 'Maksu Number / Isikukood',
+ 'Tax collected' => 'Kogutud maksud',
+ 'Tax paid' => 'Makstud maksud',
+ 'Taxable' => 'Maksustatav',
+ 'Template saved!' => 'Dokumendipõhjad salvestatud!',
+ 'Templates' => 'Dokumendipõhjad',
+ 'Terms' => 'Tingimused',
+ 'Text' => 'Tekst',
+ 'Text Templates' => 'Tekstipõhised Dokumendipõhjad',
+ 'The following Datasets are not in use and can be deleted' => 'Järgnevad andmebaasid ei ole kasutusel ning võib kustutada',
+ 'The following Datasets need to be updated' => 'Järgmised andmebaasid vajavad uuendamist',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Olemasolevate allikate eelkontroll. Praeguses staadiumis ei toimu andmete lisamist ega kustutamist.',
+ 'Thursday' => 'Neljapäev',
+ 'Till' => 'Rahalaegas',
+ 'Time' => 'Aeg',
+ 'Time Card' => 'Aja Kaart',
+ 'Time Card deleted!' => 'Ajakaart kustutatud!',
+ 'Time Card saved!' => 'Ajakaart salvestatud!',
+ 'Time Cards' => 'Aja Kaardid',
+ 'Time In' => 'Aeg sisse',
+ 'Time Out' => 'Aeg välja',
+ 'Times' => 'Korda',
+ 'To' => 'Kuni',
+ 'To Warehouse' => 'Kaubalattu',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Kasutaja gruppi lisamiseks redigeeri nime, muuda kasutajanimi ja salvesta. Luuakse samade parameetritega uus kasutaja',
+ 'Top Level' => 'Kõrgtase',
+ 'Total' => 'Kokku',
+ 'Tracking Items' => 'Jälgitavad Kaubaartikleid',
+ 'Trade Discount' => 'Kaubanduslik Mahahindlus',
+ 'Transaction' => 'Tehing',
+ 'Transaction Date missing!' => 'Tehingu Kuupäev puudu!',
+ 'Transaction Dates' => 'Tehingte Kuupäevad',
+ 'Transaction deleted!' => 'Tehing kustutatud!',
+ 'Transaction posted!' => 'Tehing saadetud!',
+ 'Transaction reversal enforced for all dates' => 'Tehingute storneerimine on kohustuslik kõikide kuupäevade ulatuses',
+ 'Transaction reversal enforced up to' => 'Tehingute storneerimine on kohustuslik kuni',
+ 'Transactions' => 'Tehingud',
+ 'Transfer' => 'Tsessioon',
+ 'Transfer Inventory' => 'Laoliikumine',
+ 'Transfer from' => 'Liikumine laost',
+ 'Transfer to' => 'Liikumine lattu',
+ 'Translation' => 'Tõlge',
+ 'Translation deleted!' => 'Tõlge kustutatud',
+ 'Translation not on file!' => 'Tõlget puudub failis!',
+ 'Translations' => 'Tõlked',
+ 'Translations saved!' => 'Tõlked salvestatud',
+ 'Trial Balance' => 'Proovibilanss',
+ 'Tuesday' => 'Teisipäev',
+ 'Type of Business' => 'Ettevõtte tüüp',
+ 'Unit' => 'Ühik',
+ 'Unit Rate' => 'Ühiku Tase',
+ 'Unit of measure' => 'Mõõtühik',
+ 'Unlock System' => 'Avada Süsteem',
+ 'Update' => 'Värskenda',
+ 'Update Dataset' => 'Värkenda Andmekogu',
+ 'Updated' => 'Värskendatud',
+ 'Upgrading to Version' => 'Täiustamine Versioonini',
+ 'Use Templates' => 'Kasuta Dokumendipõhju',
+ 'User' => 'Kasutaja',
+ 'User deleted!' => 'Kasutaja kustutatud!',
+ 'User saved!' => 'Kasutaja salvestatud!',
+ 'Valid until' => 'Kehtiv kuni',
+ 'Vendor' => 'Tarnija',
+ 'Vendor History' => 'Tarnija Ajalugu',
+ 'Vendor Invoice' => 'Tarnija Kaubaarve',
+ 'Vendor Invoice ' => 'Tarnija Kaubaarve ',
+ 'Vendor Invoice.' => 'Tarnija Kaubaarve.',
+ 'Vendor Invoice/AP Transaction Number' => 'Tarnija Kaubaarve/OR Number',
+ 'Vendor Invoices' => 'Tarnija Kaubaarved',
+ 'Vendor Number' => 'Tarnija Number',
+ 'Vendor deleted!' => 'Tarnija kustutatud!',
+ 'Vendor missing!' => 'Tarnija puudu!',
+ 'Vendor not on file!' => 'Tarnija pole failis!',
+ 'Vendor saved!' => 'Tarnija salvestatud!',
+ 'Vendors' => 'Tarnijad',
+ 'Version' => 'Versioon',
+ 'Warehouse' => 'Kaubaladu',
+ 'Warehouse deleted!' => 'Kaubaladu kustutatud!',
+ 'Warehouse saved!' => 'Kaubaladu salvestatud!',
+ 'Warehouses' => 'Kaubalaod',
+ 'Warning!' => 'Tähelepanu!',
+ 'Wednesday' => 'Kolmapäev',
+ 'Week' => 'Nädal',
+ 'Week(s)' => 'Nädal(at)',
+ 'Weeks' => 'Nädalat',
+ 'Weight' => 'Kaal',
+ 'Weight Unit' => 'Kaaluühik',
+ 'What type of item is this?' => 'Mis tüüpi kaubaartikliga on tegemist?',
+ 'Work Order' => 'Töökäsk',
+ 'Work Orders' => 'Töökäsud',
+ 'Work Phone' => 'Töötelefon',
+ 'Year' => 'Aasta',
+ 'Year(s)' => 'Aasta(t)',
+ 'Yearend' => 'Aastalõpp',
+ 'Yearend date missing!' => 'Aastalõpu kuupäev puudub!',
+ 'Yearend posted!' => 'Aastalõpp postitatud!',
+ 'Yearend posting failed!' => 'Aastalõpu postitus ebaõnnestus!',
+ 'Years' => 'Aastat',
+ 'Yes' => 'Jah',
+ 'You are logged out' => 'Oled välja logitud',
+ 'You are posting an existing transaction!' => 'Postitad juba olemasolevat tehingut',
+ 'You are printing and posting an existing transaction!' => 'Trükida ja postitad juba olemasolevat tehingut',
+ 'You are printing and saving an existing order' => 'Trükid ja salvestad juba olemasolevat tellimust',
+ 'You are printing and saving an existing quotation' => 'Trükid ja salvestad juba olemasolevat pakkumust',
+ 'You are printing and saving an existing transaction!' => 'Trükid ja salvestad juba olemasolevat tehingut!',
+ 'You are saving an existing order' => 'Salvestad juba olemasolevat tellimust',
+ 'You are saving an existing quotation' => 'Salvestad juba olemasolevat pakkumust',
+ 'You are saving an existing transaction!' => 'Salvestad juba olemasolevat tehingut"',
+ 'You did not enter a name!' => 'Jätsid nime sisestamata!',
+ 'Zip/Postal Code' => 'Postiindex',
+ 'account cannot be set to any other type of account' => 'konto tüüpi ei saa muuta teiseks kontotüübiks',
+ 'as at' => 'seisuga',
+ 'days' => 'päeva',
+ 'does not exist' => 'ei eksisteeri',
+ 'done' => 'tehtud',
+ 'ea' => 'tk',
+ 'failed' => 'nurjus',
+ 'for' => 'läheb',
+ 'for Period' => 'Periood',
+ 'is already a member!' => 'on juba kasutaja!',
+ 'localhost' => 'localhost',
+ 'locked!' => 'lukustatud!',
+ 'posted!' => 'salvestatud!',
+ 'sent' => 'saadetud',
+ 'successfully created!' => 'loodud!',
+ 'successfully deleted!' => 'kustutatud!',
+ 'time(s)' => 'Kord(a)',
+ 'unexpected error!' => 'ootamatu viga!',
+ 'website' => 'kodulehekülg',
+};
+
+1;
diff --git a/locale/ee/am b/locale/ee/am
new file mode 100755
index 00000000..8fc79c24
--- /dev/null
+++ b/locale/ee/am
@@ -0,0 +1,317 @@
+$self{charset} = 'ISO-8859-15';
+
+$self{texts} = {
+ 'AP' => 'Kohustused',
+ 'AR' => 'Nõuded',
+ 'About' => 'Programmi Info',
+ 'Account' => 'Konto',
+ 'Account Number' => 'Konto number',
+ 'Account Number missing!' => 'Konto number puudub',
+ 'Account Type' => 'Konto tüüp',
+ 'Account Type missing!' => 'Konto tüüp puudub!',
+ 'Account deleted!' => 'Konto on kustutatud!',
+ 'Account does not exist!' => 'Konto ei eksisteeri',
+ 'Account saved!' => 'Konto on salvestatud',
+ 'Accounting Menu' => 'Raamatupidamise Menüü',
+ 'Accrual' => 'Kapitalisatsioon',
+ 'Activate Audit trail' => 'Aktiveeri Auditi jälgimine',
+ 'Add Account' => 'Lisa konto',
+ 'Add Business' => 'Lisa Ettevõtte',
+ 'Add Department' => 'Lisa Osakond',
+ 'Add GIFI' => 'Lisa GIFI',
+ 'Add Language' => 'Lisa Keel',
+ 'Add SIC' => 'Lisa Standardiseeritud Tööstuskood',
+ 'Add Warehouse' => 'Lisa Ladu',
+ 'Address' => 'Aadress',
+ 'Amount' => 'Summa',
+ 'Asset' => 'Vara',
+ 'Audit Control' => 'Audit',
+ 'Audit trail disabled' => 'Auditi jälgimine välja lülitatud',
+ 'Audit trail enabled' => 'Auditi jälgimine sisse lülitatud',
+ 'Audit trail removed up to' => 'Auditi jäljed kustutatud kuni',
+ 'Backup sent to' => 'Varukoopia saadetakse',
+ 'Bin List' => 'Pakendi Saateleht',
+ 'Books are open' => 'Kanded on avatud',
+ 'Business Number' => 'Ettevõtte kood',
+ 'Business deleted!' => 'Ettevõtte kustutatud',
+ 'Business saved!' => 'Ettevõtte salvestatud',
+ 'COGS' => 'COGS',
+ 'Cannot delete account!' => 'Kontot ei saa kustutada!',
+ 'Cannot delete default account!' => 'Vaikimisi kontot ei saa kustutada!',
+ 'Cannot save account!' => 'Kontot ei saa salvestada!',
+ 'Cannot save defaults!' => 'Ei saa salvestada vaikimisi maarangud!',
+ 'Cannot save preferences!' => 'Maaranguid ei saa salvestada!',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Konto saab olla, kas Nõue, Kohustuse või Tulu/Kulu tüüpi',
+ 'Cannot set multiple options for' => 'Ei saa märgistada mitut valikut',
+ 'Cash' => 'Kassa',
+ 'Chart of Accounts' => 'Kontoplaan',
+ 'Close Books up to' => 'Sulge kanded kuni',
+ 'Code' => 'Kood',
+ 'Code missing!' => 'Kood pole leitav',
+ 'Company' => 'Ettevõte',
+ 'Confirm' => 'Kinnita',
+ 'Confirm!' => 'Kinnita!',
+ 'Continue' => 'Edasi',
+ 'Contra' => 'Ammortisatsioon',
+ 'Copy to COA' => 'Kopeeri kontoplaani',
+ 'Cost Center' => 'Kulukeskus',
+ 'Credit' => 'Kreedit',
+ 'Credit Invoice' => 'Kreeditarve',
+ 'Customer Number' => 'Kliendi number',
+ 'Database Host' => 'Andmebaasiserver',
+ 'Dataset' => 'Andmekogu',
+ 'Date Format' => 'Kuupäeva formaat',
+ 'Day' => 'Päev',
+ 'Days' => 'Päeva',
+ 'Debit' => 'Deebet',
+ 'Debit Invoice' => 'Deebitarve',
+ 'Default Template' => 'Vaikimisi Dokumendipõhi',
+ 'Defaults saved!' => 'Vaikimisi määrangud salvestatud',
+ 'Delete' => 'Kustuta',
+ 'Delete Account' => 'Kustuta konto',
+ 'Deleting a language will also delete the templates for the language' => 'Keele kustutamisele järgneb kõigi selle keele dokumendipõhjade kustutamine',
+ 'Department deleted!' => 'Osakond kustutatud!',
+ 'Department saved!' => 'Osakond salvestatud!',
+ 'Departments' => 'Osakonnad',
+ 'Description' => 'Selgitus',
+ 'Description missing!' => 'Selgitus puudub!',
+ 'Discount' => 'Allahindlus',
+ 'Dropdown Limit' => 'Hüppikmenüü Piirang',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'E-maili aadress puudub',
+ 'Edit' => 'Muudatused',
+ 'Edit Account' => 'Konto muudatused',
+ 'Edit Business' => 'Muuda Ettevõtte',
+ 'Edit Department' => 'Muuda osakonna andmed',
+ 'Edit GIFI' => 'Muuda GIFI',
+ 'Edit Language' => 'Muuda Keel',
+ 'Edit Preferences for' => 'Määrangute muutmine: ',
+ 'Edit SIC' => 'Muuda Standardiseeritud Tööstuskood',
+ 'Edit Template' => 'Dokumendipõhja muutmine',
+ 'Edit Warehouse' => 'Muuda Lao andmed',
+ 'Employee Number' => 'Teenistuja Number',
+ 'Ends' => 'Lõpeb',
+ 'Enforce transaction reversal for all dates' => 'Muuda kannete pööramine kõikide kuupäevade ulatuses kohustuslikuks',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Sisesta kohalikud- ja välisvaluutad (kuni 3 tähemärki, koolonitega eraltatud, nt. CAD:USD:EUR)',
+ 'Equity' => 'Omakapital',
+ 'Every' => 'Iga',
+ 'Expense' => 'Kulu',
+ 'Expense/Asset' => 'Kulu/Vara',
+ 'Fax' => 'Faks',
+ 'Foreign Exchange Gain' => 'Valuutakursside vahe kasum',
+ 'Foreign Exchange Loss' => 'Valuutakursside vahe kahjum',
+ 'GIFI' => 'GIFI',
+ 'GIFI deleted!' => 'GIFI kustutatud!',
+ 'GIFI missing!' => 'GIFI puudub!',
+ 'GIFI saved!' => 'GIFI salvestatud!',
+ 'GL' => 'Pearaamat',
+ 'GL Reference Number' => 'Pearaamatu Viitenumber',
+ 'GL Transaction' => 'Pearaamatu kanne',
+ 'Heading' => 'Päis',
+ 'ID' => 'ID',
+ 'Include in drop-down menus' => 'Kaasa valikmenüüdes',
+ 'Income' => 'Kasum',
+ 'Inventory' => 'Laoarvestus',
+ 'Invoice' => 'Arve',
+ 'Is this a summary account to record' => 'Kirje summaarne konto',
+ 'Job/Project Number' => 'Töö/Projekti Number',
+ 'Language' => 'Keel',
+ 'Language deleted!' => 'Keel kustutatud!',
+ 'Language saved!' => 'Keel salvestatud!',
+ 'Languages' => 'Keeled',
+ 'Last Numbers & Default Accounts' => 'Viimased numbrid ja vaikimisi kontod',
+ 'Liability' => 'Kohustus',
+ 'Licensed to' => 'Kasutaja andmed:',
+ 'Link' => 'Seosed',
+ 'Menu Width' => 'Menüü Laius',
+ 'Method' => 'Meetod',
+ 'Month' => 'Kuu',
+ 'Months' => 'Kuud',
+ 'Name' => 'Nimi',
+ 'Next' => 'Järgmine',
+ 'Next Number' => 'Järgmine Number',
+ 'No' => 'Ei',
+ 'No email address for' => 'E-maili aadress puudub',
+ 'Non-tracking Items' => 'Mitte jälgitavad Kaubaartiklid',
+ 'Number' => 'Kood',
+ 'Number Format' => 'Numbri formaat',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Saateleht',
+ 'Part Number' => 'Deaili Number',
+ 'Password' => 'Parool',
+ 'Password does not match!' => 'Vale parool!',
+ 'Payables' => 'Kohustused',
+ 'Payment' => 'Maksmine',
+ 'Phone' => 'Telefon',
+ 'Pick List' => 'Veose Saateleht',
+ 'Posting' => 'Postitamine',
+ 'Postscript' => 'Postscript',
+ 'Preferences saved!' => 'Määrangud salvestatud!',
+ 'Print' => 'Trüki',
+ 'Printer' => 'Printer',
+ 'Printing' => 'Trükib',
+ 'Process Transactions' => 'Viia läbi Tehing',
+ 'Profit Center' => 'Kasumikeskus',
+ 'Purchase Order' => 'Ostutellimus',
+ 'Purchase Order Number' => 'Hanketellimuse Number',
+ 'Purchase Orders' => 'Ostutellimused',
+ 'RFQ Number' => 'Hinnapakkumise Taotluse nr.',
+ 'Rate' => 'Määr',
+ 'Receivables' => 'Nõuded',
+ 'Recurring Transactions' => 'Korduvad Tehingud',
+ 'Reference' => 'Referenss',
+ 'Remove Audit trail up to' => 'Eemaldada Auditi jäljed kuni',
+ 'Retained Earnings' => 'Jaotamata kasum',
+ 'SIC deleted!' => 'Standardiseeritud Tööstuskood Kustutatud!',
+ 'SIC saved!' => 'Standardiseeritud Tööstuskood Salvestatud!',
+ 'Sales Invoice' => 'Müügiarve',
+ 'Sales Invoice/AR Transaction Number' => 'Müügiarve/MR Tehingu Number',
+ 'Sales Order' => 'Müügitellimus',
+ 'Sales Order Number' => 'Müügiarve Number',
+ 'Sales Orders' => 'Müügitellimused',
+ 'Sales Quotation Number' => 'Müügipakkumuse Number',
+ 'Save' => 'Salvesta',
+ 'Save as new' => 'Salvesta uuena',
+ 'Saving' => 'Salvestab',
+ 'Sending' => 'Saadab',
+ 'Session Timeout' => 'Sessiooni aegumine',
+ 'Signature' => 'Allkiri',
+ 'Standard Industrial Codes' => 'Standardiseeritud Tööstuskood',
+ 'Stylesheet' => 'Laaditabel',
+ 'System Defaults' => 'Süsteemi vaikimisi seadistused',
+ 'Tax' => 'Maks',
+ 'Template saved!' => 'Dokumendipõhjad salvestatud!',
+ 'Times' => 'Korda',
+ 'Tracking Items' => 'Jälgitavad Kaubaartikleid',
+ 'Transaction' => 'Tehing',
+ 'Transaction reversal enforced for all dates' => 'Kannete pööramine on kohustuslik kõikide kuupäevade ulatuses',
+ 'Transaction reversal enforced up to' => 'Kannete pööramine on kohustuslik kuni',
+ 'Type of Business' => 'Ettevõtte tüüp',
+ 'Update' => 'Värskenda',
+ 'User' => 'Kasutaja',
+ 'Vendor Invoice' => 'Ostuarve',
+ 'Vendor Invoice/AP Transaction Number' => 'Tarnija Kaubaarve/OR Number',
+ 'Vendor Number' => 'Hankija number',
+ 'Version' => 'Versioon',
+ 'Warehouse deleted!' => 'Ladu kustutatud!',
+ 'Warehouse saved!' => 'Ladu salvestatud!',
+ 'Warehouses' => 'Laod',
+ 'Week' => 'Nädal',
+ 'Weeks' => 'Nädalat',
+ 'Weight Unit' => 'Kaaluühik',
+ 'Work Order' => 'Töökäsk',
+ 'Year' => 'Aasta',
+ 'Yearend' => 'Kasumi eraldamine',
+ 'Yearend date missing!' => 'Kasumi eraldamise kuupäev puudub!',
+ 'Yearend posted!' => 'Kasumi eraldamine salvestatud!',
+ 'Yearend posting failed!' => 'Kasumi eraldamise teostamine ebaõnnestus',
+ 'Years' => 'Aastat',
+ 'Yes' => 'Jah',
+ 'account cannot be set to any other type of account' => 'konto tüüpi ei saa muuta',
+ 'done' => 'tehtud',
+ 'failed' => 'nurjus',
+ 'localhost' => 'localhost',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'lisa_konto' => 'add_account',
+ 'lisa_ettevõtte' => 'add_business',
+ 'lisa_osakond' => 'add_department',
+ 'lisa_keel' => 'add_language',
+ 'lisa_standardiseeritud_tööstuskood' => 'add_sic',
+ 'lisa_ladu' => 'add_warehouse',
+ 'edasi' => 'continue',
+ 'kopeeri_kontoplaani' => 'copy_to_coa',
+ 'kustuta' => 'delete',
+ 'muudatused' => 'edit',
+ 'konto_muudatused' => 'edit_account',
+ 'viia_läbi_tehing' => 'process_transactions',
+ 'salvesta' => 'save',
+ 'salvesta_uuena' => 'save_as_new',
+ 'värskenda' => 'update',
+};
+
+1;
+
diff --git a/locale/ee/ap b/locale/ee/ap
new file mode 100755
index 00000000..c5e0fc95
--- /dev/null
+++ b/locale/ee/ap
@@ -0,0 +1,242 @@
+$self{charset} = 'ISO-8859-15';
+
+$self{texts} = {
+ 'AP Outstanding' => 'Tasumata kohustused',
+ 'AP Transaction' => 'Kohustuste kanne',
+ 'AP Transactions' => 'Kohustuste kanded',
+ 'AR Outstanding' => 'Tasumata nõued',
+ 'AR Transaction' => 'Nõuete kanne',
+ 'AR Transactions' => 'Nõuete kanded',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Raamatupidamise Menüü',
+ 'Add AP Transaction' => 'Lisa OR Tehing',
+ 'Add AR Transaction' => 'Lisa MR Tehing',
+ 'Address' => 'Aadress',
+ 'Amount' => 'Summa',
+ 'Amount Due' => 'Võlaosa',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprill',
+ 'Are you sure you want to delete Transaction' => 'Kas oled kindel, et soovid kustutada kande',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'Kannet ei saa kustutada!',
+ 'Cannot post payment for a closed period!' => 'Makset ei saa salvestada suletud perioodile!',
+ 'Cannot post transaction for a closed period!' => 'Kannet ei saa salvestada suletud perioodile!',
+ 'Cannot post transaction!' => 'Kannet ei saa salvestada!',
+ 'Cc' => 'Cc',
+ 'Check' => 'Tshekk',
+ 'Closed' => 'Suletud',
+ 'Confirm!' => 'Kinnita!',
+ 'Continue' => 'Edasi',
+ 'Credit' => 'Kreedit',
+ 'Credit Limit' => 'Krediidilimiit',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valuuta',
+ 'Current' => 'Käesolev',
+ 'Customer' => 'Klient',
+ 'Customer missing!' => 'Klienti pole määratud!',
+ 'Customer not on file!' => 'Klienti pole failis!',
+ 'Date' => 'Kuupäev',
+ 'Date Paid' => 'Maksekuupäev',
+ 'Day(s)' => 'Päev(a)',
+ 'Debit' => 'Deebet',
+ 'Dec' => 'Dets',
+ 'December' => 'Detsember',
+ 'Delete' => 'Kustuta',
+ 'Delete Schedule' => 'Kustutata Ajakava',
+ 'Department' => 'Osakond',
+ 'Description' => 'Selgitus',
+ 'Detail' => 'Detail',
+ 'Due Date' => 'Maksetähtaeg',
+ 'Due Date missing!' => 'Maksetähtaeg puudub!',
+ 'E-mail' => 'E-mail',
+ 'E-mail message' => 'E-posti teade',
+ 'Edit AP Transaction' => 'Muuda OR Tehing',
+ 'Edit AR Transaction' => 'Muuda MR Tehing',
+ 'Employee' => 'Töötaja',
+ 'Every' => 'Iga',
+ 'Exch' => 'Kurss',
+ 'Exchange Rate' => 'Valuutakurss',
+ 'Exchange rate for payment missing!' => 'Maksel ei ole valuutakurssi!',
+ 'Exchange rate missing!' => 'Valuutakurssi ei ole',
+ 'Feb' => 'Veebr',
+ 'February' => 'Veebruar',
+ 'For' => 'Saata',
+ 'From' => 'Alates',
+ 'ID' => 'ID',
+ 'Include Payment' => 'Lisa Makse',
+ 'Include in Report' => 'Kaasa aruandesse',
+ 'Invoice' => 'Arve',
+ 'Invoice Date' => 'Arve kuupäev',
+ 'Invoice Date missing!' => 'Arve kuupäev puudub!',
+ 'Invoice Number' => 'Arve number',
+ 'Jan' => 'Jaan',
+ 'January' => 'Jaanuar',
+ 'Jul' => 'Juul',
+ 'July' => 'Juuli',
+ 'Jun' => 'Juun',
+ 'June' => 'Juuni',
+ 'Manager' => 'Juhataja',
+ 'Mar' => 'Mär',
+ 'March' => 'Märts',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Memo',
+ 'Message' => 'Teade',
+ 'Month' => 'Kuu',
+ 'Month(s)' => 'Kuu(d)',
+ 'Next Date' => 'Järgmine Kuupäev',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Märkused',
+ 'Nothing to print!' => 'Pole midagi trükkida!',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Kood',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktoober',
+ 'Open' => 'Avatud',
+ 'Order' => 'Tellimus',
+ 'Order Number' => 'Tellimuse number',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ostutellimuse Number',
+ 'Paid' => 'Makstud',
+ 'Payment date missing!' => 'Maksekuupäev puudub!',
+ 'Payments' => 'Maksed',
+ 'Period' => 'Periood',
+ 'Post' => 'Salvesta',
+ 'Post as new' => 'Salvesta uuena',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Trüki',
+ 'Print and Post' => 'Trüki ja salvesta',
+ 'Print and Post as new' => 'Trüki ja Postita uuena',
+ 'Printed' => 'Trükitud',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Projekti pole failis!',
+ 'Quarter' => 'Trimester',
+ 'Receipt' => 'Maksekviitung',
+ 'Recurring Transaction' => 'Korduvad Tehingud',
+ 'Reference' => 'Referenss',
+ 'Remaining' => 'Kasutamata',
+ 'Repeat' => 'Korrata',
+ 'Sales Invoice.' => 'Müügiarve.',
+ 'Salesperson' => 'Müügiesindaja',
+ 'Save Schedule' => 'Salvestada Ajakava',
+ 'Schedule' => 'Ajakava',
+ 'Scheduled' => 'Planeeritud',
+ 'Screen' => 'Ekraan',
+ 'Select a Printer!' => 'Vali Printer',
+ 'Select from one of the names below' => 'Vali üks alltoodud nimedest',
+ 'Select from one of the projects below' => 'Vali üks alltoodud projektidest',
+ 'Select payment' => 'Vali makse',
+ 'Select postscript or PDF!' => 'Vali kas postscript või PDF',
+ 'Sep' => 'Sept',
+ 'September' => 'September',
+ 'Ship to' => 'Tarneaadress',
+ 'Ship via' => 'Tarneviis',
+ 'Shipping Point' => 'Saadetise Sihtpunkt',
+ 'Source' => 'Allikas',
+ 'Startdate' => 'Algus Kuupäev',
+ 'Subject' => 'Pealkiri',
+ 'Subtotal' => 'Vahesumma',
+ 'Summary' => 'Kokkuvõtte',
+ 'Tax' => 'Maks',
+ 'Tax Included' => 'Koos maksuga',
+ 'Till' => 'Müügipunkt',
+ 'To' => 'Kuni',
+ 'Total' => 'Kokku',
+ 'Transaction' => 'Tehing',
+ 'Transaction deleted!' => 'Kanne kustutatud!',
+ 'Transaction posted!' => 'Kanne saadetud!',
+ 'Update' => 'Uuendus',
+ 'Vendor' => 'Hankija',
+ 'Vendor Invoice.' => 'Tarnija Kaubaarve.',
+ 'Vendor missing!' => 'Hankija puudub!',
+ 'Vendor not on file!' => 'Hankijat pole failis!',
+ 'Warning!' => 'Tähelepanu!',
+ 'Week(s)' => 'Nädal(at)',
+ 'Year' => 'Aasta',
+ 'Year(s)' => 'Aasta(t)',
+ 'Yes' => 'Jah',
+ 'You are posting an existing transaction!' => 'Postitad juba olemasolevat tehingut',
+ 'You are printing and posting an existing transaction!' => 'Trükida ja postitad juba olemasolevat tehingut',
+ 'You are printing and saving an existing order' => 'Trükid ja salvestad juba olemasolevat tellimust',
+ 'You are printing and saving an existing quotation' => 'Trükid ja salvestad juba olemasolevat pakkumust',
+ 'You are saving an existing order' => 'Salvestad juba olemasolevat tellimust',
+ 'You are saving an existing quotation' => 'Salvestad juba olemasolevat pakkumust',
+ 'for' => 'läheb',
+ 'sent' => 'saadetud',
+ 'time(s)' => 'Kord(a)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'kohustuste_kanne' => 'ap_transaction',
+ 'nõuete_kanne' => 'ar_transaction',
+ 'edasi' => 'continue',
+ 'kustuta' => 'delete',
+ 'kustutata_ajakava' => 'delete_schedule',
+ 'salvesta' => 'post',
+ 'salvesta_uuena' => 'post_as_new',
+ 'trüki' => 'print',
+ 'trüki_ja_salvesta' => 'print_and_post',
+ 'trüki_ja_postita_uuena' => 'print_and_post_as_new',
+ 'müügiarve_' => 'sales_invoice_',
+ 'salvestada_ajakava' => 'save_schedule',
+ 'ajakava' => 'schedule',
+ 'tarneaadress' => 'ship_to',
+ 'uuendus' => 'update',
+ 'tarnija_kaubaarve_' => 'vendor_invoice_',
+ 'jah' => 'yes',
+};
+
+1;
+
diff --git a/locale/ee/ar b/locale/ee/ar
new file mode 100755
index 00000000..c5e0fc95
--- /dev/null
+++ b/locale/ee/ar
@@ -0,0 +1,242 @@
+$self{charset} = 'ISO-8859-15';
+
+$self{texts} = {
+ 'AP Outstanding' => 'Tasumata kohustused',
+ 'AP Transaction' => 'Kohustuste kanne',
+ 'AP Transactions' => 'Kohustuste kanded',
+ 'AR Outstanding' => 'Tasumata nõued',
+ 'AR Transaction' => 'Nõuete kanne',
+ 'AR Transactions' => 'Nõuete kanded',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Raamatupidamise Menüü',
+ 'Add AP Transaction' => 'Lisa OR Tehing',
+ 'Add AR Transaction' => 'Lisa MR Tehing',
+ 'Address' => 'Aadress',
+ 'Amount' => 'Summa',
+ 'Amount Due' => 'Võlaosa',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprill',
+ 'Are you sure you want to delete Transaction' => 'Kas oled kindel, et soovid kustutada kande',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'Kannet ei saa kustutada!',
+ 'Cannot post payment for a closed period!' => 'Makset ei saa salvestada suletud perioodile!',
+ 'Cannot post transaction for a closed period!' => 'Kannet ei saa salvestada suletud perioodile!',
+ 'Cannot post transaction!' => 'Kannet ei saa salvestada!',
+ 'Cc' => 'Cc',
+ 'Check' => 'Tshekk',
+ 'Closed' => 'Suletud',
+ 'Confirm!' => 'Kinnita!',
+ 'Continue' => 'Edasi',
+ 'Credit' => 'Kreedit',
+ 'Credit Limit' => 'Krediidilimiit',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valuuta',
+ 'Current' => 'Käesolev',
+ 'Customer' => 'Klient',
+ 'Customer missing!' => 'Klienti pole määratud!',
+ 'Customer not on file!' => 'Klienti pole failis!',
+ 'Date' => 'Kuupäev',
+ 'Date Paid' => 'Maksekuupäev',
+ 'Day(s)' => 'Päev(a)',
+ 'Debit' => 'Deebet',
+ 'Dec' => 'Dets',
+ 'December' => 'Detsember',
+ 'Delete' => 'Kustuta',
+ 'Delete Schedule' => 'Kustutata Ajakava',
+ 'Department' => 'Osakond',
+ 'Description' => 'Selgitus',
+ 'Detail' => 'Detail',
+ 'Due Date' => 'Maksetähtaeg',
+ 'Due Date missing!' => 'Maksetähtaeg puudub!',
+ 'E-mail' => 'E-mail',
+ 'E-mail message' => 'E-posti teade',
+ 'Edit AP Transaction' => 'Muuda OR Tehing',
+ 'Edit AR Transaction' => 'Muuda MR Tehing',
+ 'Employee' => 'Töötaja',
+ 'Every' => 'Iga',
+ 'Exch' => 'Kurss',
+ 'Exchange Rate' => 'Valuutakurss',
+ 'Exchange rate for payment missing!' => 'Maksel ei ole valuutakurssi!',
+ 'Exchange rate missing!' => 'Valuutakurssi ei ole',
+ 'Feb' => 'Veebr',
+ 'February' => 'Veebruar',
+ 'For' => 'Saata',
+ 'From' => 'Alates',
+ 'ID' => 'ID',
+ 'Include Payment' => 'Lisa Makse',
+ 'Include in Report' => 'Kaasa aruandesse',
+ 'Invoice' => 'Arve',
+ 'Invoice Date' => 'Arve kuupäev',
+ 'Invoice Date missing!' => 'Arve kuupäev puudub!',
+ 'Invoice Number' => 'Arve number',
+ 'Jan' => 'Jaan',
+ 'January' => 'Jaanuar',
+ 'Jul' => 'Juul',
+ 'July' => 'Juuli',
+ 'Jun' => 'Juun',
+ 'June' => 'Juuni',
+ 'Manager' => 'Juhataja',
+ 'Mar' => 'Mär',
+ 'March' => 'Märts',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Memo',
+ 'Message' => 'Teade',
+ 'Month' => 'Kuu',
+ 'Month(s)' => 'Kuu(d)',
+ 'Next Date' => 'Järgmine Kuupäev',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Märkused',
+ 'Nothing to print!' => 'Pole midagi trükkida!',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Kood',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktoober',
+ 'Open' => 'Avatud',
+ 'Order' => 'Tellimus',
+ 'Order Number' => 'Tellimuse number',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ostutellimuse Number',
+ 'Paid' => 'Makstud',
+ 'Payment date missing!' => 'Maksekuupäev puudub!',
+ 'Payments' => 'Maksed',
+ 'Period' => 'Periood',
+ 'Post' => 'Salvesta',
+ 'Post as new' => 'Salvesta uuena',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Trüki',
+ 'Print and Post' => 'Trüki ja salvesta',
+ 'Print and Post as new' => 'Trüki ja Postita uuena',
+ 'Printed' => 'Trükitud',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Projekti pole failis!',
+ 'Quarter' => 'Trimester',
+ 'Receipt' => 'Maksekviitung',
+ 'Recurring Transaction' => 'Korduvad Tehingud',
+ 'Reference' => 'Referenss',
+ 'Remaining' => 'Kasutamata',
+ 'Repeat' => 'Korrata',
+ 'Sales Invoice.' => 'Müügiarve.',
+ 'Salesperson' => 'Müügiesindaja',
+ 'Save Schedule' => 'Salvestada Ajakava',
+ 'Schedule' => 'Ajakava',
+ 'Scheduled' => 'Planeeritud',
+ 'Screen' => 'Ekraan',
+ 'Select a Printer!' => 'Vali Printer',
+ 'Select from one of the names below' => 'Vali üks alltoodud nimedest',
+ 'Select from one of the projects below' => 'Vali üks alltoodud projektidest',
+ 'Select payment' => 'Vali makse',
+ 'Select postscript or PDF!' => 'Vali kas postscript või PDF',
+ 'Sep' => 'Sept',
+ 'September' => 'September',
+ 'Ship to' => 'Tarneaadress',
+ 'Ship via' => 'Tarneviis',
+ 'Shipping Point' => 'Saadetise Sihtpunkt',
+ 'Source' => 'Allikas',
+ 'Startdate' => 'Algus Kuupäev',
+ 'Subject' => 'Pealkiri',
+ 'Subtotal' => 'Vahesumma',
+ 'Summary' => 'Kokkuvõtte',
+ 'Tax' => 'Maks',
+ 'Tax Included' => 'Koos maksuga',
+ 'Till' => 'Müügipunkt',
+ 'To' => 'Kuni',
+ 'Total' => 'Kokku',
+ 'Transaction' => 'Tehing',
+ 'Transaction deleted!' => 'Kanne kustutatud!',
+ 'Transaction posted!' => 'Kanne saadetud!',
+ 'Update' => 'Uuendus',
+ 'Vendor' => 'Hankija',
+ 'Vendor Invoice.' => 'Tarnija Kaubaarve.',
+ 'Vendor missing!' => 'Hankija puudub!',
+ 'Vendor not on file!' => 'Hankijat pole failis!',
+ 'Warning!' => 'Tähelepanu!',
+ 'Week(s)' => 'Nädal(at)',
+ 'Year' => 'Aasta',
+ 'Year(s)' => 'Aasta(t)',
+ 'Yes' => 'Jah',
+ 'You are posting an existing transaction!' => 'Postitad juba olemasolevat tehingut',
+ 'You are printing and posting an existing transaction!' => 'Trükida ja postitad juba olemasolevat tehingut',
+ 'You are printing and saving an existing order' => 'Trükid ja salvestad juba olemasolevat tellimust',
+ 'You are printing and saving an existing quotation' => 'Trükid ja salvestad juba olemasolevat pakkumust',
+ 'You are saving an existing order' => 'Salvestad juba olemasolevat tellimust',
+ 'You are saving an existing quotation' => 'Salvestad juba olemasolevat pakkumust',
+ 'for' => 'läheb',
+ 'sent' => 'saadetud',
+ 'time(s)' => 'Kord(a)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'kohustuste_kanne' => 'ap_transaction',
+ 'nõuete_kanne' => 'ar_transaction',
+ 'edasi' => 'continue',
+ 'kustuta' => 'delete',
+ 'kustutata_ajakava' => 'delete_schedule',
+ 'salvesta' => 'post',
+ 'salvesta_uuena' => 'post_as_new',
+ 'trüki' => 'print',
+ 'trüki_ja_salvesta' => 'print_and_post',
+ 'trüki_ja_postita_uuena' => 'print_and_post_as_new',
+ 'müügiarve_' => 'sales_invoice_',
+ 'salvestada_ajakava' => 'save_schedule',
+ 'ajakava' => 'schedule',
+ 'tarneaadress' => 'ship_to',
+ 'uuendus' => 'update',
+ 'tarnija_kaubaarve_' => 'vendor_invoice_',
+ 'jah' => 'yes',
+};
+
+1;
+
diff --git a/locale/ee/arap b/locale/ee/arap
new file mode 100755
index 00000000..bbd6c319
--- /dev/null
+++ b/locale/ee/arap
@@ -0,0 +1,76 @@
+$self{charset} = 'ISO-8859-15';
+
+$self{texts} = {
+ 'Address' => 'Aadress',
+ 'Bcc' => 'Bcc',
+ 'Cc' => 'Cc',
+ 'Continue' => 'Edasi',
+ 'Customer not on file!' => 'Klienti pole failis!',
+ 'Date' => 'Kuupäev',
+ 'Day(s)' => 'Päev(a)',
+ 'Delete Schedule' => 'Kustutata Ajakava',
+ 'Description' => 'Selgitus',
+ 'E-mail' => 'E-mail',
+ 'E-mail message' => 'E-posti teade',
+ 'Every' => 'Iga',
+ 'For' => 'Saata',
+ 'Include Payment' => 'Lisa Makse',
+ 'Message' => 'Teade',
+ 'Month(s)' => 'Kuu(d)',
+ 'Next Date' => 'Järgmine Kuupäev',
+ 'Number' => 'Kood',
+ 'Print' => 'Trüki',
+ 'Project not on file!' => 'Projekti pole failis!',
+ 'Recurring Transaction' => 'Korduvad Tehingud',
+ 'Reference' => 'Referenss',
+ 'Repeat' => 'Korrata',
+ 'Save Schedule' => 'Salvestada Ajakava',
+ 'Select from one of the names below' => 'Vali üks alltoodud nimedest',
+ 'Select from one of the projects below' => 'Vali üks alltoodud projektidest',
+ 'Startdate' => 'Algus Kuupäev',
+ 'Subject' => 'Pealkiri',
+ 'To' => 'Kuni',
+ 'Vendor not on file!' => 'Hankijat pole failis!',
+ 'Warning!' => 'Tähelepanu!',
+ 'Week(s)' => 'Nädal(at)',
+ 'Year(s)' => 'Aasta(t)',
+ 'You are posting an existing transaction!' => 'Postitad juba olemasolevat tehingut',
+ 'You are printing and posting an existing transaction!' => 'Trükida ja postitad juba olemasolevat tehingut',
+ 'You are printing and saving an existing order' => 'Trükid ja salvestad juba olemasolevat tellimust',
+ 'You are printing and saving an existing quotation' => 'Trükid ja salvestad juba olemasolevat pakkumust',
+ 'You are saving an existing order' => 'Salvestad juba olemasolevat tellimust',
+ 'You are saving an existing quotation' => 'Salvestad juba olemasolevat pakkumust',
+ 'for' => 'läheb',
+ 'sent' => 'saadetud',
+ 'time(s)' => 'Kord(a)',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'edasi' => 'continue',
+ 'kustutata_ajakava' => 'delete_schedule',
+ 'salvestada_ajakava' => 'save_schedule',
+};
+
+1;
+
diff --git a/locale/ee/arapprn b/locale/ee/arapprn
new file mode 100755
index 00000000..80c614ac
--- /dev/null
+++ b/locale/ee/arapprn
@@ -0,0 +1,36 @@
+$self{charset} = 'ISO-8859-15';
+
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Amount' => 'Summa',
+ 'Continue' => 'Edasi',
+ 'Date' => 'Kuupäev',
+ 'Memo' => 'Memo',
+ 'Nothing to print!' => 'Pole midagi trükkida!',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'Postscript',
+ 'Printed' => 'Trükitud',
+ 'Scheduled' => 'Planeeritud',
+ 'Screen' => 'Ekraan',
+ 'Select a Printer!' => 'Vali Printer',
+ 'Select payment' => 'Vali makse',
+ 'Select postscript or PDF!' => 'Vali kas postscript või PDF',
+ 'Source' => 'Allikas',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'edasi' => 'continue',
+};
+
+1;
+
diff --git a/locale/ee/bp b/locale/ee/bp
new file mode 100755
index 00000000..eac19f58
--- /dev/null
+++ b/locale/ee/bp
@@ -0,0 +1,71 @@
+$self{charset} = 'ISO-8859-15';
+
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Raamatupidamise Menüü',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Kas olete kindel, et soovite eemaldada märgitud väljad järjekorrast?',
+ 'Bin Lists' => 'Pakendi Saatelehed',
+ 'Cannot remove files!' => 'Faili ei saa kustutada!',
+ 'Confirm!' => 'Kinnita!',
+ 'Continue' => 'Edasi',
+ 'Current' => 'Käesolev',
+ 'Customer' => 'Klient',
+ 'Date' => 'Kuupäev',
+ 'Employee' => 'Töötaja',
+ 'From' => 'Alates',
+ 'ID' => 'ID',
+ 'Invoice' => 'Arve',
+ 'Invoice Number' => 'Arve number',
+ 'Marked entries printed!' => 'Märgitud kanded väljatrükitud!',
+ 'Month' => 'Kuu',
+ 'Order' => 'Tellimus',
+ 'Order Number' => 'Tellimuse number',
+ 'Packing Lists' => 'Saatelehed',
+ 'Period' => 'Periood',
+ 'Pick Lists' => 'Veose Saatelehed',
+ 'Print' => 'Trüki',
+ 'Printing' => 'Trükib',
+ 'Purchase Orders' => 'Ostutellimused',
+ 'Quarter' => 'Trimester',
+ 'Quotation' => 'Hinnapakkumine',
+ 'Quotation Number' => 'Hinnapakkumise number',
+ 'Quotations' => 'Hinnapakkumised',
+ 'RFQs' => 'Hinnapakkumise Taotlused',
+ 'Remove' => 'Eemalda',
+ 'Removed spoolfiles!' => 'Trükijärjekorra failid eemaldatud!',
+ 'Removing marked entries from queue ...' => 'Eemaldan märgitud kanded trükijärjekorrast...',
+ 'Sales Invoices' => 'Müügiarved',
+ 'Sales Orders' => 'Müügitellimused',
+ 'Select all' => 'Vali kõik',
+ 'Spoolfile' => 'Trükijärjekorra fail',
+ 'Time Cards' => 'Aja Kaardid',
+ 'To' => 'Kuni',
+ 'Vendor' => 'Hankija',
+ 'Work Orders' => 'Töökäsud',
+ 'Year' => 'Aasta',
+ 'Yes' => 'Jah',
+ 'done' => 'tehtud',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'edasi' => 'continue',
+ 'trüki' => 'print',
+ 'eemalda' => 'remove',
+ 'vali_kõik' => 'select_all',
+ 'jah' => 'yes',
+};
+
+1;
+
diff --git a/locale/ee/ca b/locale/ee/ca
new file mode 100755
index 00000000..bb9f1065
--- /dev/null
+++ b/locale/ee/ca
@@ -0,0 +1,62 @@
+$self{charset} = 'ISO-8859-15';
+
+$self{texts} = {
+ 'AR/AP' => 'MR/OR',
+ 'Account' => 'Konto',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprill',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Balance' => 'Bilanss',
+ 'Chart of Accounts' => 'Kontoplaan',
+ 'Credit' => 'Kreedit',
+ 'Current' => 'Käesolev',
+ 'Date' => 'Kuupäev',
+ 'Debit' => 'Deebet',
+ 'Dec' => 'Dets',
+ 'December' => 'Detsember',
+ 'Department' => 'Osakond',
+ 'Description' => 'Selgitus',
+ 'Feb' => 'Veebr',
+ 'February' => 'Veebruar',
+ 'From' => 'Alates',
+ 'GIFI' => 'GIFI',
+ 'Include in Report' => 'Kaasa aruandesse',
+ 'Jan' => 'Jaan',
+ 'January' => 'Jaanuar',
+ 'Jul' => 'Juul',
+ 'July' => 'Juuli',
+ 'Jun' => 'Juun',
+ 'June' => 'Juuni',
+ 'List Transactions' => 'Kannete sirvimine',
+ 'Mar' => 'Mär',
+ 'March' => 'Märts',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Month' => 'Kuu',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktoober',
+ 'Period' => 'Periood',
+ 'Project Number' => 'Projekti number',
+ 'Quarter' => 'Trimester',
+ 'R' => 'M',
+ 'Reference' => 'Referenss',
+ 'Sep' => 'Sept',
+ 'September' => 'September',
+ 'Subtotal' => 'Vahesumma',
+ 'To' => 'Kuni',
+ 'Year' => 'Aasta',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'kannete_sirvimine' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/ee/cp b/locale/ee/cp
new file mode 100755
index 00000000..29567e82
--- /dev/null
+++ b/locale/ee/cp
@@ -0,0 +1,151 @@
+$self{charset} = 'ISO-8859-15';
+
+$self{texts} = {
+ 'AP' => 'Kohustused',
+ 'AR' => 'Nõuded',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Raamatupidamise Menüü',
+ 'Address' => 'Aadress',
+ 'All' => 'Kõik',
+ 'Amount' => 'Summa',
+ 'Amount Due' => 'Võlaosa',
+ 'Bcc' => 'Bcc',
+ 'Cannot post Payment!' => 'Makset ei saa salvestada!',
+ 'Cannot post Receipt!' => 'Sisetulekuarderit ei saa salvestada!',
+ 'Cannot post payment for a closed period!' => 'Makset ei saa salvestada suletud perioodile!',
+ 'Cc' => 'Cc',
+ 'Continue' => 'Edasi',
+ 'Currency' => 'Valuuta',
+ 'Customer' => 'Klient',
+ 'Customer not on file!' => 'Klienti pole failis!',
+ 'Date' => 'Kuupäev',
+ 'Date missing!' => 'Kuupäev puudub!',
+ 'Day(s)' => 'Päev(a)',
+ 'Delete Schedule' => 'Kustutata Ajakava',
+ 'Department' => 'Osakond',
+ 'Deposit' => 'Deposiit',
+ 'Description' => 'Selgitus',
+ 'Due Date' => 'Maksetähtaeg',
+ 'E-mail' => 'E-mail',
+ 'E-mail message' => 'E-posti teade',
+ 'Every' => 'Iga',
+ 'Exchange Rate' => 'Valuutakurss',
+ 'Exchange rate missing!' => 'Valuutakurssi ei ole',
+ 'For' => 'Saata',
+ 'From' => 'Alates',
+ 'Include Payment' => 'Lisa Makse',
+ 'Invoice' => 'Arve',
+ 'Invoices' => 'Arved',
+ 'Language' => 'Keel',
+ 'Memo' => 'Memo',
+ 'Message' => 'Teade',
+ 'Month(s)' => 'Kuu(d)',
+ 'Next Date' => 'Järgmine Kuupäev',
+ 'Nothing open!' => 'Midagi ei avane!',
+ 'Number' => 'Kood',
+ 'PDF' => 'PDF',
+ 'Payment' => 'Maksmine',
+ 'Payment posted!' => 'Makse saadetud!',
+ 'Payments' => 'Maksed',
+ 'Payments posted!' => 'Maksed postitatud!',
+ 'Post' => 'Salvesta',
+ 'Posting failed!' => 'Postitamine ebaõnnestus',
+ 'Postscript' => 'Postscript',
+ 'Prepayment' => 'Ettemaksud',
+ 'Print' => 'Trüki',
+ 'Project not on file!' => 'Projekti pole failis!',
+ 'Receipt' => 'Maksekviitung',
+ 'Receipt posted!' => 'Maksekviitung salvestatud',
+ 'Receipts' => 'Sissetulek',
+ 'Recurring Transaction' => 'Korduvad Tehingud',
+ 'Reference' => 'Referenss',
+ 'Repeat' => 'Korrata',
+ 'Save Schedule' => 'Salvestada Ajakava',
+ 'Screen' => 'Ekraan',
+ 'Select' => 'Vali',
+ 'Select all' => 'Vali kõik',
+ 'Select from one of the names below' => 'Vali üks alltoodud nimedest',
+ 'Select from one of the projects below' => 'Vali üks alltoodud projektidest',
+ 'Select postscript or PDF!' => 'Vali kas postscript või PDF',
+ 'Source' => 'Allikas',
+ 'Startdate' => 'Algus Kuupäev',
+ 'Subject' => 'Pealkiri',
+ 'To' => 'Kuni',
+ 'Update' => 'Uuendus',
+ 'Vendor' => 'Hankija',
+ 'Vendor not on file!' => 'Hankijat pole failis!',
+ 'Warning!' => 'Tähelepanu!',
+ 'Week(s)' => 'Nädal(at)',
+ 'Year(s)' => 'Aasta(t)',
+ 'You are posting an existing transaction!' => 'Postitad juba olemasolevat tehingut',
+ 'You are printing and posting an existing transaction!' => 'Trükida ja postitad juba olemasolevat tehingut',
+ 'You are printing and saving an existing order' => 'Trükid ja salvestad juba olemasolevat tellimust',
+ 'You are printing and saving an existing quotation' => 'Trükid ja salvestad juba olemasolevat pakkumust',
+ 'You are saving an existing order' => 'Salvestad juba olemasolevat tellimust',
+ 'You are saving an existing quotation' => 'Salvestad juba olemasolevat pakkumust',
+ 'for' => 'läheb',
+ 'sent' => 'saadetud',
+ 'time(s)' => 'Kord(a)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'edasi' => 'continue',
+ 'kustutata_ajakava' => 'delete_schedule',
+ 'salvesta' => 'post',
+ 'trüki' => 'print',
+ 'salvestada_ajakava' => 'save_schedule',
+ 'vali_kõik' => 'select_all',
+ 'uuendus' => 'update',
+};
+
+1;
+
diff --git a/locale/ee/ct b/locale/ee/ct
new file mode 100755
index 00000000..d21c6b21
--- /dev/null
+++ b/locale/ee/ct
@@ -0,0 +1,192 @@
+$self{charset} = 'ISO-8859-15';
+
+$self{texts} = {
+ 'AP Transaction' => 'Kohustuste kanne',
+ 'AP Transactions' => 'Kohustuste kanded',
+ 'AR Transaction' => 'Nõuete kanne',
+ 'AR Transactions' => 'Nõuete kanded',
+ 'Accounting Menu' => 'Raamatupidamise Menüü',
+ 'Active' => 'Aktiva',
+ 'Add Customer' => 'Lisa klient',
+ 'Add Vendor' => 'Lisa tarnija',
+ 'Address' => 'Aadress',
+ 'All' => 'Kõik',
+ 'Amount' => 'Summa',
+ 'BIC' => 'BIC (Rahvusvaheline pangakood - S.W.I.F.T)',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Arve aadress',
+ 'Break' => 'Katkestus',
+ 'Cannot delete customer!' => 'Kienti ei saa kustutada!',
+ 'Cannot delete vendor!' => 'Tarnijat ei saa kustutada!',
+ 'Cc' => 'Cc',
+ 'City' => 'Linn',
+ 'Closed' => 'Suletud',
+ 'Company Name' => 'Ettevõtte nimi',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Edasi',
+ 'Cost' => 'Kulu',
+ 'Could not save pricelist!' => 'Hinnakirja salvestamine ebaõnnestus!',
+ 'Country' => 'Riik',
+ 'Credit Limit' => 'Krediidilimiit',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valuuta',
+ 'Customer History' => 'Kliendi ajalugu',
+ 'Customer Number' => 'Kliendi number',
+ 'Customer deleted!' => 'Klient on kustutatud!',
+ 'Customer saved!' => 'Klient salvestatud!',
+ 'Customers' => 'Kliendid',
+ 'Delete' => 'Kustuta',
+ 'Delivery Date' => 'Kättetoimetamise kuupäev',
+ 'Description' => 'Selgitus',
+ 'Detail' => 'Detail',
+ 'Discount' => 'Allahindlus',
+ 'E-mail' => 'E-mail',
+ 'Edit Customer' => 'Muuda Kliendi Andmeid',
+ 'Edit Vendor' => 'Muuda Tarnija andmeid',
+ 'Employee' => 'Töötaja',
+ 'Enddate' => 'Lõppkuupäev',
+ 'Fax' => 'Faks',
+ 'From' => 'Alates',
+ 'GIFI' => 'GIFI',
+ 'Group' => 'Grupp',
+ 'IBAN' => 'IBAN - Rahvusvaheline Pangakonto Number',
+ 'ID' => 'ID',
+ 'Inactive' => 'Vähenõutav',
+ 'Include in Report' => 'Kaasa aruandesse',
+ 'Invoice' => 'Arve',
+ 'Item already on pricelist!' => 'Kaubaartikkel on juba hinnakirjas!',
+ 'Item not on file!' => 'Toode puudub andmebaasist!',
+ 'Language' => 'Keel',
+ 'Leadtime' => 'Tellimuse täitmisaeg',
+ 'Manager' => 'Juhataja',
+ 'Name' => 'Nimi',
+ 'Name missing!' => 'Nimi puudub!',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Märkused',
+ 'Number' => 'Kood',
+ 'Open' => 'Avatud',
+ 'Order' => 'Tellimus',
+ 'Orphaned' => 'Seosteta',
+ 'POS' => 'MüügiPunkt',
+ 'Part Number' => 'Deaili Number',
+ 'Phone' => 'Telefon',
+ 'Pricegroup' => 'Hinnagrupp',
+ 'Pricelist' => 'Hinnakiri',
+ 'Project Number' => 'Projekti number',
+ 'Purchase Order' => 'Ostutellimus',
+ 'Purchase Orders' => 'Ostutellimused',
+ 'Qty' => 'Kogus',
+ 'Quotation' => 'Hinnapakkumine',
+ 'Quotations' => 'Hinnapakkumised',
+ 'RFQ' => 'Hinnapakkumise Taotlus',
+ 'Request for Quotations' => 'Hinnapakkumise Taotlused',
+ 'SIC' => 'Standardiseeritud Tööstuskood',
+ 'SKU' => 'Asenduskaup',
+ 'Sales Invoice' => 'Müügiarve',
+ 'Sales Invoices' => 'Müügiarved',
+ 'Sales Order' => 'Müügitellimus',
+ 'Sales Orders' => 'Müügitellimused',
+ 'Salesperson' => 'Müügiesindaja',
+ 'Save' => 'Salvesta',
+ 'Save Pricelist' => 'Salvesta Hinnakiri',
+ 'Save as new' => 'Salvesta uuena',
+ 'Search' => 'Otsi',
+ 'Select items' => 'Vali kaubaartikkel',
+ 'Sell Price' => 'Müügihind',
+ 'Serial Number' => 'Seerianumber',
+ 'Shipping Address' => 'Tarneaadress',
+ 'Startdate' => 'Algus Kuupäev',
+ 'State' => 'Seisund',
+ 'State/Province' => 'Maakond',
+ 'Sub-contract GIFI' => 'Allhange GIFI',
+ 'Subtotal' => 'Vahesumma',
+ 'Summary' => 'Kokkuvõtte',
+ 'Tax' => 'Maks',
+ 'Tax Account' => 'Maksukonto',
+ 'Tax Included' => 'Koos maksuga',
+ 'Tax Number' => 'Registrinumber',
+ 'Tax Number / SSN' => 'Registrinumber / Isikukood',
+ 'Taxable' => 'Maksustatav',
+ 'Terms' => 'Maksetingimus',
+ 'To' => 'Kuni',
+ 'Total' => 'Kokku',
+ 'Type of Business' => 'Ettevõtte tüüp',
+ 'Unit' => 'Ühik',
+ 'Update' => 'Uuendus',
+ 'Vendor History' => 'Hankija ajalugu',
+ 'Vendor Invoice' => 'Ostuarve',
+ 'Vendor Invoices' => 'Ostuarved',
+ 'Vendor Number' => 'Hankija number',
+ 'Vendor deleted!' => 'Hankija kustutatud!',
+ 'Vendor saved!' => 'Hankija salvestatud!',
+ 'Vendors' => 'Hankijad',
+ 'Zip/Postal Code' => 'Postiindex',
+ 'days' => 'päeva',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'kohustuste_kanne' => 'ap_transaction',
+ 'nõuete_kanne' => 'ar_transaction',
+ 'lisa_klient' => 'add_customer',
+ 'lisa_tarnija' => 'add_vendor',
+ 'edasi' => 'continue',
+ 'kustuta' => 'delete',
+ 'müügipunkt' => 'pos',
+ 'hinnakiri' => 'pricelist',
+ 'ostutellimus' => 'purchase_order',
+ 'hinnapakkumine' => 'quotation',
+ 'hinnapakkumise_taotlus' => 'rfq',
+ 'müügiarve' => 'sales_invoice',
+ 'müügitellimus' => 'sales_order',
+ 'salvesta' => 'save',
+ 'salvesta_hinnakiri' => 'save_pricelist',
+ 'salvesta_uuena' => 'save_as_new',
+ 'uuendus' => 'update',
+ 'ostuarve' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/ee/gl b/locale/ee/gl
new file mode 100755
index 00000000..0c9c8974
--- /dev/null
+++ b/locale/ee/gl
@@ -0,0 +1,187 @@
+$self{charset} = 'ISO-8859-15';
+
+$self{texts} = {
+ 'AP Transaction' => 'Kohustuste kanne',
+ 'AR Transaction' => 'Nõuete kanne',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Raamatupidamise Menüü',
+ 'Add Cash Transfer Transaction' => 'Lisa sularaha ülekanne',
+ 'Add General Ledger Transaction' => 'Lisa pearaamatu kanne',
+ 'Address' => 'Aadress',
+ 'All' => 'Kõik',
+ 'Amount' => 'Summa',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprill',
+ 'Are you sure you want to delete Transaction' => 'Kas oled kindel, et soovid kustutada kande',
+ 'Asset' => 'Vara',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Balance' => 'Bilanss',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'Kannet ei saa kustutada!',
+ 'Cannot post transaction for a closed period!' => 'Kannet ei saa salvestada suletud perioodile!',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => 'Ei saa postitada tehingut deebeti ja kreediti väljadega samal kontol!',
+ 'Cannot post transaction!' => 'Kannet ei saa salvestada!',
+ 'Cc' => 'Cc',
+ 'Confirm!' => 'Kinnita!',
+ 'Continue' => 'Edasi',
+ 'Credit' => 'Kreedit',
+ 'Current' => 'Käesolev',
+ 'Customer not on file!' => 'Klienti pole failis!',
+ 'Date' => 'Kuupäev',
+ 'Day(s)' => 'Päev(a)',
+ 'Debit' => 'Deebet',
+ 'Dec' => 'Dets',
+ 'December' => 'Detsember',
+ 'Delete' => 'Kustuta',
+ 'Delete Schedule' => 'Kustutata Ajakava',
+ 'Department' => 'Osakond',
+ 'Description' => 'Selgitus',
+ 'E-mail' => 'E-mail',
+ 'E-mail message' => 'E-posti teade',
+ 'Edit Cash Transfer Transaction' => 'Muuda Raha Ülekande Tehing',
+ 'Edit General Ledger Transaction' => 'Muuda Pearaamatu kande',
+ 'Equity' => 'Omakapital',
+ 'Every' => 'Iga',
+ 'Expense' => 'Kulu',
+ 'FX' => 'Valuutavahetus',
+ 'Feb' => 'Veebr',
+ 'February' => 'Veebruar',
+ 'For' => 'Saata',
+ 'From' => 'Alates',
+ 'GIFI' => 'GIFI',
+ 'GL Transaction' => 'Pearaamatu kanne',
+ 'General Ledger' => 'Pearaamat',
+ 'ID' => 'ID',
+ 'Include Payment' => 'Lisa Makse',
+ 'Include in Report' => 'Kaasa aruandesse',
+ 'Income' => 'Kasum',
+ 'Jan' => 'Jaan',
+ 'January' => 'Jaanuar',
+ 'Jul' => 'Juul',
+ 'July' => 'Juuli',
+ 'Jun' => 'Juun',
+ 'June' => 'Juuni',
+ 'Liability' => 'Kohustus',
+ 'Mar' => 'Mär',
+ 'March' => 'Märts',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Memo',
+ 'Message' => 'Teade',
+ 'Month' => 'Kuu',
+ 'Month(s)' => 'Kuu(d)',
+ 'Next Date' => 'Järgmine Kuupäev',
+ 'Notes' => 'Märkused',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Kood',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktoober',
+ 'Out of balance transaction!' => 'Kanne ei ole balanseeritud!',
+ 'Period' => 'Periood',
+ 'Post' => 'Salvesta',
+ 'Post as new' => 'Salvesta uuena',
+ 'Print' => 'Trüki',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Projekti pole failis!',
+ 'Quarter' => 'Trimester',
+ 'R' => 'M',
+ 'Recurring Transaction' => 'Korduvad Tehingud',
+ 'Reference' => 'Referenss',
+ 'Repeat' => 'Korrata',
+ 'Reports' => 'Aruanded',
+ 'Sales Invoice ' => 'Müügiarve',
+ 'Save Schedule' => 'Salvestada Ajakava',
+ 'Schedule' => 'Ajakava',
+ 'Scheduled' => 'Planeeritud',
+ 'Select from one of the names below' => 'Vali üks alltoodud nimedest',
+ 'Select from one of the projects below' => 'Vali üks alltoodud projektidest',
+ 'Sep' => 'Sept',
+ 'September' => 'September',
+ 'Source' => 'Allikas',
+ 'Startdate' => 'Algus Kuupäev',
+ 'Subject' => 'Pealkiri',
+ 'Subtotal' => 'Vahesumma',
+ 'To' => 'Kuni',
+ 'Transaction Date missing!' => 'Kande kuupäev puudub!',
+ 'Transaction deleted!' => 'Kanne kustutatud!',
+ 'Transaction posted!' => 'Kanne saadetud!',
+ 'Update' => 'Uuendus',
+ 'Vendor Invoice ' => 'Tarnija Kaubaarve ',
+ 'Vendor not on file!' => 'Hankijat pole failis!',
+ 'Warning!' => 'Tähelepanu!',
+ 'Week(s)' => 'Nädal(at)',
+ 'Year' => 'Aasta',
+ 'Year(s)' => 'Aasta(t)',
+ 'Yes' => 'Jah',
+ 'You are posting an existing transaction!' => 'Postitad juba olemasolevat tehingut',
+ 'You are printing and posting an existing transaction!' => 'Trükida ja postitad juba olemasolevat tehingut',
+ 'You are printing and saving an existing order' => 'Trükid ja salvestad juba olemasolevat tellimust',
+ 'You are printing and saving an existing quotation' => 'Trükid ja salvestad juba olemasolevat pakkumust',
+ 'You are saving an existing order' => 'Salvestad juba olemasolevat tellimust',
+ 'You are saving an existing quotation' => 'Salvestad juba olemasolevat pakkumust',
+ 'for' => 'läheb',
+ 'sent' => 'saadetud',
+ 'time(s)' => 'Kord(a)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'kohustuste_kanne' => 'ap_transaction',
+ 'nõuete_kanne' => 'ar_transaction',
+ 'edasi' => 'continue',
+ 'kustuta' => 'delete',
+ 'kustutata_ajakava' => 'delete_schedule',
+ 'pearaamatu_kanne' => 'gl_transaction',
+ 'salvesta' => 'post',
+ 'salvesta_uuena' => 'post_as_new',
+ 'müügiarve' => 'sales_invoice_',
+ 'salvestada_ajakava' => 'save_schedule',
+ 'ajakava' => 'schedule',
+ 'uuendus' => 'update',
+ 'tarnija_kaubaarve_' => 'vendor_invoice_',
+ 'jah' => 'yes',
+};
+
+1;
+
diff --git a/locale/ee/hr b/locale/ee/hr
new file mode 100755
index 00000000..6bc43150
--- /dev/null
+++ b/locale/ee/hr
@@ -0,0 +1,122 @@
+$self{charset} = 'ISO-8859-15';
+
+$self{texts} = {
+ 'AP' => 'Kohustused',
+ 'Above' => 'Ülal',
+ 'Accounting Menu' => 'Raamatupidamise Menüü',
+ 'Active' => 'Aktiva',
+ 'Add Deduction' => 'Lisa mahaarvamine',
+ 'Add Employee' => 'Lisa töötaja',
+ 'Address' => 'Aadress',
+ 'Administrator' => 'Administraator',
+ 'After Deduction' => 'Peale mahaarvamist',
+ 'All' => 'Kõik',
+ 'Allowances' => 'Diskontod',
+ 'Amount' => 'Summa',
+ 'Amount missing!' => 'Summa puudub!',
+ 'BIC' => 'BIC (Rahvusvaheline pangakood - S.W.I.F.T)',
+ 'Based on' => 'Põhineb',
+ 'Before Deduction' => 'Enne mahaarvamisi',
+ 'Below' => 'All',
+ 'City' => 'Linn',
+ 'Continue' => 'Edasi',
+ 'Country' => 'Riik',
+ 'DOB' => 'Sünniaeg',
+ 'Deduct after' => 'Hinnaaland pärast',
+ 'Deduction deleted!' => 'Hinnaaland kustutatud!',
+ 'Deduction saved!' => 'Hinnaaland salvestatud!',
+ 'Deductions' => 'Hinnaalandused',
+ 'Delete' => 'Kustuta',
+ 'Description' => 'Selgitus',
+ 'Description missing!' => 'Selgitus puudub!',
+ 'E-mail' => 'E-mail',
+ 'Edit Deduction' => 'Muuda Mahaarvamine',
+ 'Edit Employee' => 'Muuda Töötaja andmed',
+ 'Employee' => 'Töötaja',
+ 'Employee Name' => 'Töötaja nimi',
+ 'Employee Number' => 'Teenistuja Number',
+ 'Employee deleted!' => 'Töötaja kustutatud',
+ 'Employee pays' => 'Töötaja tasub',
+ 'Employee saved!' => 'Töötaja salvestatud',
+ 'Employees' => 'Töötajad',
+ 'Employer' => 'Tööandja',
+ 'Employer pays' => 'Tööandja tasub',
+ 'Enddate' => 'Lõppkuupäev',
+ 'Exempt age <' => 'Vabastatud aeg <',
+ 'Expense' => 'Kulu',
+ 'From' => 'Alates',
+ 'Home Phone' => 'Kodune telefoninumber',
+ 'IBAN' => 'IBAN - Rahvusvaheline Pangakonto Number',
+ 'ID' => 'ID',
+ 'Inactive' => 'Vähenõutav',
+ 'Include in Report' => 'Kaasa aruandesse',
+ 'Login' => 'Login',
+ 'Manager' => 'Juhataja',
+ 'Maximum' => 'Maksimum',
+ 'Name' => 'Nimi',
+ 'Name missing!' => 'Nimi puudub!',
+ 'Notes' => 'Märkused',
+ 'Number' => 'Kood',
+ 'Orphaned' => 'Seosteta',
+ 'Payroll Deduction' => 'Palgamahaarvamine',
+ 'Pos' => 'NR.',
+ 'Rate' => 'Määr',
+ 'Rate missing!' => 'Määr puudub!',
+ 'Role' => 'Roll',
+ 'S' => 'Laupäev/Pühapäev',
+ 'SSN' => 'IK',
+ 'Sales' => 'Müük',
+ 'Save' => 'Salvesta',
+ 'Save as new' => 'Salvesta uuena',
+ 'Startdate' => 'Algus Kuupäev',
+ 'State/Province' => 'Maakond',
+ 'Supervisor' => 'Ülevaataja',
+ 'To' => 'Kuni',
+ 'Update' => 'Uuendus',
+ 'User' => 'Kasutaja',
+ 'Work Phone' => 'Töötelefon',
+ 'Zip/Postal Code' => 'Postiindex',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'lisa_mahaarvamine' => 'add_deduction',
+ 'lisa_töötaja' => 'add_employee',
+ 'edasi' => 'continue',
+ 'kustuta' => 'delete',
+ 'salvesta' => 'save',
+ 'salvesta_uuena' => 'save_as_new',
+ 'uuendus' => 'update',
+};
+
+1;
+
diff --git a/locale/ee/ic b/locale/ee/ic
new file mode 100755
index 00000000..1f15a479
--- /dev/null
+++ b/locale/ee/ic
@@ -0,0 +1,303 @@
+$self{charset} = 'ISO-8859-15';
+
+$self{texts} = {
+ 'A' => 'A',
+ 'Accounting Menu' => 'Raamatupidamise Menüü',
+ 'Accounts' => 'Kontod',
+ 'Accrual' => 'Kapitalisatsioon',
+ 'Active' => 'Aktiva',
+ 'Add' => 'Lisa',
+ 'Add Assembly' => 'Lisa komplekt',
+ 'Add Labor/Overhead' => 'Lisa Tööjõukulu',
+ 'Add Part' => 'Lisa Toote',
+ 'Add Purchase Order' => 'Lisa Ostutellimus',
+ 'Add Quotation' => 'Lisa Pakkumine',
+ 'Add Request for Quotation' => 'Lisa Hinnapakkumise taotlus',
+ 'Add Sales Order' => 'Lisa Müügitellimus',
+ 'Add Service' => 'Lisa teenus',
+ 'Address' => 'Aadress',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprill',
+ 'Assemblies' => 'Komplektid',
+ 'Assemblies restocked!' => 'Komplektid lattu tagastatud!',
+ 'Assembly' => 'Komplekt',
+ 'Attachment' => 'Kaasatud fail',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Average Cost' => 'Keskmised Kulud',
+ 'Avg Cost' => 'Kesk. Kulud',
+ 'BOM' => 'Materjaliarvestus',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Arve aadress',
+ 'Bin' => 'Kast',
+ 'Bin List' => 'Pakendi Saateleht',
+ 'Break' => 'Katkestus',
+ 'COGS' => 'COGS',
+ 'COGS account does not exist!' => 'Müügikulude kontot puudu!',
+ 'Cannot create Assembly' => 'Ei saa luua Komplekti',
+ 'Cannot create Labor' => 'Ei saa luua Tööjõudu',
+ 'Cannot create Part' => 'Ei saa luua Detaili',
+ 'Cannot create Service' => 'Ei saa luua Teenust',
+ 'Cannot delete item!' => 'Toodet ei saa kustutada!',
+ 'Cannot stock assemblies!' => 'Ei saa ladustada koosteosi',
+ 'Cash' => 'Kassa',
+ 'Cc' => 'Cc',
+ 'Check Inventory' => 'Kontrolli ladu',
+ 'City' => 'Linn',
+ 'Closed' => 'Suletud',
+ 'Company Name' => 'Ettevõtte nimi',
+ 'Components' => 'Komponendid',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Edasi',
+ 'Copies' => 'koopiat',
+ 'Cost' => 'Kulu',
+ 'Country' => 'Riik',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valuuta',
+ 'Customer' => 'Klient',
+ 'Customer Number' => 'Kliendi number',
+ 'Customer not on file!' => 'Klienti pole failis!',
+ 'Date' => 'Kuupäev',
+ 'Dec' => 'Dets',
+ 'December' => 'Detsember',
+ 'Delete' => 'Kustuta',
+ 'Delivery Date' => 'Kättetoimetamise kuupäev',
+ 'Description' => 'Selgitus',
+ 'Detail' => 'Detail',
+ 'Drawing' => 'Pildid',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'E-maili aadress puudub',
+ 'E-mailed' => 'E-mailiga saadetud',
+ 'Edit Assembly' => 'Muuda Komplekti',
+ 'Edit Labor/Overhead' => 'Muuda tööjõukulu',
+ 'Edit Part' => 'Muuda Toote',
+ 'Edit Service' => 'Teenuse muutmine',
+ 'Employee' => 'Töötaja',
+ 'Expense' => 'Kulu',
+ 'Expense account does not exist!' => 'Kulude konto puudu!',
+ 'Extended' => 'Summa',
+ 'Fax' => 'Faks',
+ 'Feb' => 'Veebr',
+ 'February' => 'Veebruar',
+ 'From' => 'Alates',
+ 'Group' => 'Grupp',
+ 'Image' => 'Pilt',
+ 'In-line' => 'Dokumendisisene',
+ 'Include in Report' => 'Kaasa aruandesse',
+ 'Income' => 'Kasum',
+ 'Income account does not exist!' => 'Tulude konto puudu!',
+ 'Individual Items' => 'Komponendid',
+ 'Inventory' => 'Laoarvestus',
+ 'Inventory account does not exist!' => 'Laoseisu konto puudu!',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Enne komplekti aegunuks märkimist peab laoseis null olema!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Enne toote aegunuks märkimist peab laoseis null olema!',
+ 'Invoice' => 'Arve',
+ 'Invoice Date missing!' => 'Arve kuupäev puudub!',
+ 'Invoice Number' => 'Arve number',
+ 'Invoice Number missing!' => 'Arve number puudub!',
+ 'Item' => 'AR.',
+ 'Item deleted!' => 'Toode kustutatud!',
+ 'Item not on file!' => 'Toode puudub andmebaasist!',
+ 'Items' => 'Tooted',
+ 'Jan' => 'Jaan',
+ 'January' => 'Jaanuar',
+ 'Jul' => 'Juul',
+ 'July' => 'Juuli',
+ 'Jun' => 'Juun',
+ 'June' => 'Juuni',
+ 'Labor/Overhead' => 'Tööjõukulu',
+ 'Last Cost' => 'Viimane Maksumus',
+ 'Leadtime' => 'Tellimuse täitmisaeg',
+ 'Line Total' => 'Rea summa',
+ 'Link Accounts' => 'Seosta kontod',
+ 'List' => 'Nimekiri',
+ 'List Price' => 'Hinnakirja hind',
+ 'Make' => 'Tootja',
+ 'Mar' => 'Mär',
+ 'March' => 'Märts',
+ 'Markup' => 'Kate',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Message' => 'Teade',
+ 'Microfiche' => 'Microkaart',
+ 'Model' => 'Mudel',
+ 'Name' => 'Nimi',
+ 'No History!' => 'Ajalugu Puudub!',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Märkused',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Kood',
+ 'Number missing in Row' => 'Antud real puudub kood',
+ 'OH' => 'Ülekulud',
+ 'Obsolete' => 'Aegunud',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktoober',
+ 'On Hand' => 'Laos',
+ 'Onhand' => 'Käepärast',
+ 'Open' => 'Avatud',
+ 'Order' => 'Tellimus',
+ 'Order Date missing!' => 'Tellimuse kuupäev puudub!',
+ 'Order Number' => 'Tellimuse number',
+ 'Order Number missing!' => 'Tellimuse number puudub',
+ 'Orphaned' => 'Seosteta',
+ 'PDF' => 'PDF',
+ 'PO' => 'Hanketellimus',
+ 'Packing List' => 'Saateleht',
+ 'Packing List Date missing!' => 'Saatelehe kuupäev puudub!',
+ 'Packing List Number missing!' => 'Saatelehe number puudub!',
+ 'Part' => 'Toode',
+ 'Parts' => 'Osad',
+ 'Parts Requirements' => 'Detailide Vajadus',
+ 'Period' => 'Periood',
+ 'Phone' => 'Telefon',
+ 'Pick List' => 'Veose Saateleht',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Hind',
+ 'Pricegroup' => 'Hinnagrupp',
+ 'Printed' => 'Trükitud',
+ 'Project' => 'Projekt',
+ 'Purchase Order' => 'Ostutellimus',
+ 'Purchase Orders' => 'Ostutellimused',
+ 'Qty' => 'Kogus',
+ 'Quantity exceeds available units to stock!' => 'Kogus on suurem, kui laos olev hulk!',
+ 'Queue' => 'Järjekord',
+ 'Queued' => 'Järjekorras',
+ 'Quotation' => 'Hinnapakkumine',
+ 'Quotation Date missing!' => 'Hinnapakkumise kuupäev puudub!',
+ 'Quotation Number missing!' => 'Hinnapakkumise number puudub!',
+ 'Quotations' => 'Hinnapakkumised',
+ 'RFQ' => 'Hinnapakkumise Taotlus',
+ 'ROP' => 'TM',
+ 'Recd' => 'Kattesaadud',
+ 'Required by' => 'Tarneaeg',
+ 'SKU' => 'Asenduskaup',
+ 'SO' => 'Müügitellimus',
+ 'Sales Invoice' => 'Müügiarve',
+ 'Sales Invoices' => 'Müügiarved',
+ 'Sales Order' => 'Müügitellimus',
+ 'Sales Orders' => 'Müügitellimused',
+ 'Save' => 'Salvesta',
+ 'Save as new' => 'Salvesta uuena',
+ 'Scheduled' => 'Planeeritud',
+ 'Screen' => 'Ekraan',
+ 'Select from one of the names below' => 'Vali üks alltoodud nimedest',
+ 'Select items' => 'Vali kaubaartikkel',
+ 'Select txt, postscript or PDF!' => 'Valida .txt, postscript või PDF!',
+ 'Sell' => 'Müüma',
+ 'Sell Price' => 'Müügihind',
+ 'Sep' => 'Sept',
+ 'September' => 'September',
+ 'Serial No.' => 'Seerianr.',
+ 'Serial Number' => 'Seerianumber',
+ 'Service' => 'Teenus',
+ 'Services' => 'Teenused',
+ 'Ship' => 'Tarnimine',
+ 'Ship to' => 'Tarneaadress',
+ 'Shipping Address' => 'Tarneaadress',
+ 'Short' => 'Lühike',
+ 'State/Province' => 'Maakond',
+ 'Stock' => 'Ladu',
+ 'Stock Assembly' => 'Komplekti lattu võtmine',
+ 'Subject' => 'Pealkiri',
+ 'Subtotal' => 'Vahesumma',
+ 'Summary' => 'Kokkuvõtte',
+ 'Tax' => 'Maks',
+ 'Text' => 'Tekst',
+ 'To' => 'Kuni',
+ 'Top Level' => 'Kõrgtase',
+ 'Translation not on file!' => 'Tõlget pole andmebaasis olemas',
+ 'Unit' => 'Ühik',
+ 'Update' => 'Uuendus',
+ 'Updated' => 'Uuendatud',
+ 'Vendor' => 'Hankija',
+ 'Vendor Invoice' => 'Ostuarve',
+ 'Vendor Invoices' => 'Ostuarved',
+ 'Vendor Number' => 'Hankija number',
+ 'Vendor not on file!' => 'Hankijat pole failis!',
+ 'Warehouse' => 'Ladu',
+ 'Weight' => 'Kaal',
+ 'What type of item is this?' => 'Mis tüüpi tootega on tegemist?',
+ 'Work Order' => 'Töökäsk',
+ 'Year' => 'Aasta',
+ 'Zip/Postal Code' => 'Postiindex',
+ 'days' => 'päeva',
+ 'sent' => 'saadetud',
+ 'unexpected error!' => 'ootamatu viga!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'lisa_komplekt' => 'add_assembly',
+ 'lisa_tööjõukulu' => 'add_labor_overhead',
+ 'lisa_toote' => 'add_part',
+ 'lisa_teenus' => 'add_service',
+ 'edasi' => 'continue',
+ 'kustuta' => 'delete',
+ 'muuda_komplekti' => 'edit_assembly',
+ 'muuda_toote' => 'edit_part',
+ 'teenuse_muutmine' => 'edit_service',
+ 'salvesta' => 'save',
+ 'salvesta_uuena' => 'save_as_new',
+ 'uuendus' => 'update',
+};
+
+1;
+
diff --git a/locale/ee/io b/locale/ee/io
new file mode 100755
index 00000000..d72fcde5
--- /dev/null
+++ b/locale/ee/io
@@ -0,0 +1,139 @@
+$self{charset} = 'ISO-8859-15';
+
+$self{texts} = {
+ 'Add Purchase Order' => 'Lisa Ostutellimus',
+ 'Add Quotation' => 'Lisa Pakkumine',
+ 'Add Request for Quotation' => 'Lisa Hinnapakkumise taotlus',
+ 'Add Sales Order' => 'Lisa Müügitellimus',
+ 'Address' => 'Aadress',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprill',
+ 'Attachment' => 'Kaasatud fail',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Arve aadress',
+ 'Bin' => 'Kast',
+ 'Bin List' => 'Pakendi Saateleht',
+ 'Cc' => 'Cc',
+ 'City' => 'Linn',
+ 'Company Name' => 'Ettevõtte nimi',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Edasi',
+ 'Copies' => 'koopiat',
+ 'Country' => 'Riik',
+ 'Customer Number' => 'Kliendi number',
+ 'Date' => 'Kuupäev',
+ 'Dec' => 'Dets',
+ 'December' => 'Detsember',
+ 'Delivery Date' => 'Kättetoimetamise kuupäev',
+ 'Description' => 'Selgitus',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'E-maili aadress puudub',
+ 'E-mailed' => 'E-mailiga saadetud',
+ 'Extended' => 'Summa',
+ 'Fax' => 'Faks',
+ 'Feb' => 'Veebr',
+ 'February' => 'Veebruar',
+ 'Group' => 'Grupp',
+ 'In-line' => 'Dokumendisisene',
+ 'Invoice' => 'Arve',
+ 'Invoice Date missing!' => 'Arve kuupäev puudub!',
+ 'Invoice Number missing!' => 'Arve number puudub!',
+ 'Item' => 'AR.',
+ 'Item not on file!' => 'Toode puudub andmebaasist!',
+ 'Jan' => 'Jaan',
+ 'January' => 'Jaanuar',
+ 'Jul' => 'Juul',
+ 'July' => 'Juuli',
+ 'Jun' => 'Juun',
+ 'June' => 'Juuni',
+ 'Mar' => 'Mär',
+ 'March' => 'Märts',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Message' => 'Teade',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Kood',
+ 'Number missing in Row' => 'Antud real puudub kood',
+ 'OH' => 'Ülekulud',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktoober',
+ 'Order Date missing!' => 'Tellimuse kuupäev puudub!',
+ 'Order Number missing!' => 'Tellimuse number puudub',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Saateleht',
+ 'Packing List Date missing!' => 'Saatelehe kuupäev puudub!',
+ 'Packing List Number missing!' => 'Saatelehe number puudub!',
+ 'Part' => 'Toode',
+ 'Phone' => 'Telefon',
+ 'Pick List' => 'Veose Saateleht',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Hind',
+ 'Printed' => 'Trükitud',
+ 'Project' => 'Projekt',
+ 'Purchase Order' => 'Ostutellimus',
+ 'Qty' => 'Kogus',
+ 'Queue' => 'Järjekord',
+ 'Queued' => 'Järjekorras',
+ 'Quotation' => 'Hinnapakkumine',
+ 'Quotation Date missing!' => 'Hinnapakkumise kuupäev puudub!',
+ 'Quotation Number missing!' => 'Hinnapakkumise number puudub!',
+ 'Recd' => 'Kattesaadud',
+ 'Required by' => 'Tarneaeg',
+ 'SKU' => 'Asenduskaup',
+ 'Sales Order' => 'Müügitellimus',
+ 'Scheduled' => 'Planeeritud',
+ 'Screen' => 'Ekraan',
+ 'Select items' => 'Vali kaubaartikkel',
+ 'Select txt, postscript or PDF!' => 'Valida .txt, postscript või PDF!',
+ 'Sep' => 'Sept',
+ 'September' => 'September',
+ 'Serial No.' => 'Seerianr.',
+ 'Service' => 'Teenus',
+ 'Ship' => 'Tarnimine',
+ 'Ship to' => 'Tarneaadress',
+ 'Shipping Address' => 'Tarneaadress',
+ 'State/Province' => 'Maakond',
+ 'Subject' => 'Pealkiri',
+ 'Subtotal' => 'Vahesumma',
+ 'Text' => 'Tekst',
+ 'To' => 'Kuni',
+ 'Translation not on file!' => 'Tõlget pole andmebaasis olemas',
+ 'Unit' => 'Ühik',
+ 'Vendor Number' => 'Hankija number',
+ 'What type of item is this?' => 'Mis tüüpi tootega on tegemist?',
+ 'Work Order' => 'Töökäsk',
+ 'Zip/Postal Code' => 'Postiindex',
+ 'sent' => 'saadetud',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'edasi' => 'continue',
+};
+
+1;
+
diff --git a/locale/ee/ir b/locale/ee/ir
new file mode 100755
index 00000000..838d436a
--- /dev/null
+++ b/locale/ee/ir
@@ -0,0 +1,259 @@
+$self{charset} = 'ISO-8859-15';
+
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Raamatupidamise Menüü',
+ 'Add Purchase Order' => 'Lisa Ostutellimus',
+ 'Add Quotation' => 'Lisa Pakkumine',
+ 'Add Request for Quotation' => 'Lisa Hinnapakkumise taotlus',
+ 'Add Sales Order' => 'Lisa Müügitellimus',
+ 'Add Vendor Invoice' => 'Lisa Ostuarve',
+ 'Address' => 'Aadress',
+ 'Amount' => 'Summa',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprill',
+ 'Are you sure you want to delete Invoice Number' => 'Kas oled kindel, et soovid kustutada arve',
+ 'Attachment' => 'Kaasatud fail',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Arve aadress',
+ 'Bin' => 'Kast',
+ 'Bin List' => 'Pakendi Saateleht',
+ 'Cannot delete invoice!' => 'Arvet ei saa kustutada',
+ 'Cannot post invoice for a closed period!' => 'Arvet ei saa salvestada suletud perioodile!',
+ 'Cannot post invoice!' => 'Arvet ei saa salvestada!',
+ 'Cannot post payment for a closed period!' => 'Makset ei saa salvestada suletud perioodile!',
+ 'Cc' => 'Cc',
+ 'City' => 'Linn',
+ 'Company Name' => 'Ettevõtte nimi',
+ 'Confirm!' => 'Kinnita!',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Edasi',
+ 'Copies' => 'koopiat',
+ 'Country' => 'Riik',
+ 'Credit Limit' => 'Krediidilimiit',
+ 'Currency' => 'Valuuta',
+ 'Customer Number' => 'Kliendi number',
+ 'Customer not on file!' => 'Klienti pole failis!',
+ 'Date' => 'Kuupäev',
+ 'Day(s)' => 'Päev(a)',
+ 'Dec' => 'Dets',
+ 'December' => 'Detsember',
+ 'Delete' => 'Kustuta',
+ 'Delete Schedule' => 'Kustutata Ajakava',
+ 'Delivery Date' => 'Kättetoimetamise kuupäev',
+ 'Department' => 'Osakond',
+ 'Description' => 'Selgitus',
+ 'Due Date' => 'Maksetähtaeg',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'E-maili aadress puudub',
+ 'E-mail message' => 'E-posti teade',
+ 'E-mailed' => 'E-mailiga saadetud',
+ 'Edit Vendor Invoice' => 'Ostuarve muutmine',
+ 'Every' => 'Iga',
+ 'Exch' => 'Kurss',
+ 'Exchange Rate' => 'Valuutakurss',
+ 'Exchange rate for payment missing!' => 'Maksel ei ole valuutakurssi!',
+ 'Exchange rate missing!' => 'Valuutakurssi ei ole',
+ 'Extended' => 'Summa',
+ 'Fax' => 'Faks',
+ 'Feb' => 'Veebr',
+ 'February' => 'Veebruar',
+ 'For' => 'Saata',
+ 'Group' => 'Grupp',
+ 'In-line' => 'Dokumendisisene',
+ 'Include Payment' => 'Lisa Makse',
+ 'Internal Notes' => 'Sisemärkused',
+ 'Invoice' => 'Arve',
+ 'Invoice Date' => 'Arve kuupäev',
+ 'Invoice Date missing!' => 'Arve kuupäev puudub!',
+ 'Invoice Number' => 'Arve number',
+ 'Invoice Number missing!' => 'Arve number puudub!',
+ 'Invoice deleted!' => 'Arve kustutatud!',
+ 'Item' => 'AR.',
+ 'Item not on file!' => 'Toode puudub andmebaasist!',
+ 'Jan' => 'Jaan',
+ 'January' => 'Jaanuar',
+ 'Jul' => 'Juul',
+ 'July' => 'Juuli',
+ 'Jun' => 'Juun',
+ 'June' => 'Juuni',
+ 'Language' => 'Keel',
+ 'Mar' => 'Mär',
+ 'March' => 'Märts',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Memo',
+ 'Message' => 'Teade',
+ 'Month(s)' => 'Kuu(d)',
+ 'Next Date' => 'Järgmine Kuupäev',
+ 'Notes' => 'Märkused',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Kood',
+ 'Number missing in Row' => 'Antud real puudub kood',
+ 'OH' => 'Ülekulud',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktoober',
+ 'Order Date missing!' => 'Tellimuse kuupäev puudub!',
+ 'Order Number' => 'Tellimuse number',
+ 'Order Number missing!' => 'Tellimuse number puudub',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ostutellimuse Number',
+ 'Packing List' => 'Saateleht',
+ 'Packing List Date missing!' => 'Saatelehe kuupäev puudub!',
+ 'Packing List Number missing!' => 'Saatelehe number puudub!',
+ 'Part' => 'Toode',
+ 'Payment date missing!' => 'Maksekuupäev puudub!',
+ 'Payments' => 'Maksed',
+ 'Phone' => 'Telefon',
+ 'Pick List' => 'Veose Saateleht',
+ 'Post' => 'Salvesta',
+ 'Post as new' => 'Salvesta uuena',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Hind',
+ 'Print' => 'Trüki',
+ 'Printed' => 'Trükitud',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Projekti pole failis!',
+ 'Purchase Order' => 'Ostutellimus',
+ 'Qty' => 'Kogus',
+ 'Queue' => 'Järjekord',
+ 'Queued' => 'Järjekorras',
+ 'Quotation' => 'Hinnapakkumine',
+ 'Quotation Date missing!' => 'Hinnapakkumise kuupäev puudub!',
+ 'Quotation Number missing!' => 'Hinnapakkumise number puudub!',
+ 'Recd' => 'Kattesaadud',
+ 'Record in' => 'Sihtkonto',
+ 'Recurring Transaction' => 'Korduvad Tehingud',
+ 'Reference' => 'Referenss',
+ 'Remaining' => 'Kasutamata',
+ 'Repeat' => 'Korrata',
+ 'Required by' => 'Tarneaeg',
+ 'SKU' => 'Asenduskaup',
+ 'Sales Order' => 'Müügitellimus',
+ 'Save Schedule' => 'Salvestada Ajakava',
+ 'Schedule' => 'Ajakava',
+ 'Scheduled' => 'Planeeritud',
+ 'Screen' => 'Ekraan',
+ 'Select from one of the names below' => 'Vali üks alltoodud nimedest',
+ 'Select from one of the projects below' => 'Vali üks alltoodud projektidest',
+ 'Select items' => 'Vali kaubaartikkel',
+ 'Select txt, postscript or PDF!' => 'Valida .txt, postscript või PDF!',
+ 'Sep' => 'Sept',
+ 'September' => 'September',
+ 'Serial No.' => 'Seerianr.',
+ 'Service' => 'Teenus',
+ 'Ship' => 'Tarnimine',
+ 'Ship to' => 'Tarneaadress',
+ 'Shipping Address' => 'Tarneaadress',
+ 'Source' => 'Allikas',
+ 'Startdate' => 'Algus Kuupäev',
+ 'State/Province' => 'Maakond',
+ 'Subject' => 'Pealkiri',
+ 'Subtotal' => 'Vahesumma',
+ 'Tax Included' => 'Koos maksuga',
+ 'Text' => 'Tekst',
+ 'To' => 'Kuni',
+ 'Total' => 'Kokku',
+ 'Translation not on file!' => 'Tõlget pole andmebaasis olemas',
+ 'Unit' => 'Ühik',
+ 'Update' => 'Uuendus',
+ 'Vendor' => 'Hankija',
+ 'Vendor Number' => 'Hankija number',
+ 'Vendor missing!' => 'Hankija puudub!',
+ 'Vendor not on file!' => 'Hankijat pole failis!',
+ 'Warning!' => 'Tähelepanu!',
+ 'Week(s)' => 'Nädal(at)',
+ 'What type of item is this?' => 'Mis tüüpi tootega on tegemist?',
+ 'Work Order' => 'Töökäsk',
+ 'Year(s)' => 'Aasta(t)',
+ 'Yes' => 'Jah',
+ 'You are posting an existing transaction!' => 'Postitad juba olemasolevat tehingut',
+ 'You are printing and posting an existing transaction!' => 'Trükida ja postitad juba olemasolevat tehingut',
+ 'You are printing and saving an existing order' => 'Trükid ja salvestad juba olemasolevat tellimust',
+ 'You are printing and saving an existing quotation' => 'Trükid ja salvestad juba olemasolevat pakkumust',
+ 'You are saving an existing order' => 'Salvestad juba olemasolevat tellimust',
+ 'You are saving an existing quotation' => 'Salvestad juba olemasolevat pakkumust',
+ 'Zip/Postal Code' => 'Postiindex',
+ 'ea' => 'tk',
+ 'for' => 'läheb',
+ 'posted!' => 'salvestatud!',
+ 'sent' => 'saadetud',
+ 'time(s)' => 'Kord(a)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'edasi' => 'continue',
+ 'kustuta' => 'delete',
+ 'kustutata_ajakava' => 'delete_schedule',
+ 'salvesta' => 'post',
+ 'salvesta_uuena' => 'post_as_new',
+ 'ostutellimus' => 'purchase_order',
+ 'salvestada_ajakava' => 'save_schedule',
+ 'ajakava' => 'schedule',
+ 'uuendus' => 'update',
+ 'jah' => 'yes',
+};
+
+1;
+
diff --git a/locale/ee/is b/locale/ee/is
new file mode 100755
index 00000000..eb6c9950
--- /dev/null
+++ b/locale/ee/is
@@ -0,0 +1,273 @@
+$self{charset} = 'ISO-8859-15';
+
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Raamatupidamise Menüü',
+ 'Add Purchase Order' => 'Lisa Ostutellimus',
+ 'Add Quotation' => 'Lisa Pakkumine',
+ 'Add Request for Quotation' => 'Lisa Hinnapakkumise taotlus',
+ 'Add Sales Invoice' => 'Lisa Müügiarve',
+ 'Add Sales Order' => 'Lisa Müügitellimus',
+ 'Address' => 'Aadress',
+ 'Amount' => 'Summa',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprill',
+ 'Are you sure you want to delete Invoice Number' => 'Kas oled kindel, et soovid kustutada arve',
+ 'Attachment' => 'Kaasatud fail',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Arve aadress',
+ 'Bin' => 'Kast',
+ 'Bin List' => 'Pakendi Saateleht',
+ 'Business' => 'Ettevõtte',
+ 'Cannot delete invoice!' => 'Arvet ei saa kustutada',
+ 'Cannot post invoice for a closed period!' => 'Arvet ei saa salvestada suletud perioodile!',
+ 'Cannot post invoice!' => 'Arvet ei saa salvestada!',
+ 'Cannot post payment for a closed period!' => 'Makset ei saa salvestada suletud perioodile!',
+ 'Cc' => 'Cc',
+ 'City' => 'Linn',
+ 'Company Name' => 'Ettevõtte nimi',
+ 'Confirm!' => 'Kinnita!',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Edasi',
+ 'Copies' => 'koopiat',
+ 'Country' => 'Riik',
+ 'Credit Limit' => 'Krediidilimiit',
+ 'Currency' => 'Valuuta',
+ 'Customer' => 'Klient',
+ 'Customer Number' => 'Kliendi number',
+ 'Customer missing!' => 'Klienti pole määratud!',
+ 'Customer not on file!' => 'Klienti pole failis!',
+ 'Date' => 'Kuupäev',
+ 'Day(s)' => 'Päev(a)',
+ 'Dec' => 'Dets',
+ 'December' => 'Detsember',
+ 'Delete' => 'Kustuta',
+ 'Delete Schedule' => 'Kustutata Ajakava',
+ 'Delivery Date' => 'Kättetoimetamise kuupäev',
+ 'Department' => 'Osakond',
+ 'Description' => 'Selgitus',
+ 'Due Date' => 'Maksetähtaeg',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'E-maili aadress puudub',
+ 'E-mail message' => 'E-posti teade',
+ 'E-mailed' => 'E-mailiga saadetud',
+ 'Edit Sales Invoice' => 'Müügiarve muutmine',
+ 'Every' => 'Iga',
+ 'Exch' => 'Kurss',
+ 'Exchange Rate' => 'Valuutakurss',
+ 'Exchange rate for payment missing!' => 'Maksel ei ole valuutakurssi!',
+ 'Exchange rate missing!' => 'Valuutakurssi ei ole',
+ 'Extended' => 'Summa',
+ 'Fax' => 'Faks',
+ 'Feb' => 'Veebr',
+ 'February' => 'Veebruar',
+ 'For' => 'Saata',
+ 'Group' => 'Grupp',
+ 'In-line' => 'Dokumendisisene',
+ 'Include Payment' => 'Lisa Makse',
+ 'Internal Notes' => 'Sisemärkused',
+ 'Invoice' => 'Arve',
+ 'Invoice Date' => 'Arve kuupäev',
+ 'Invoice Date missing!' => 'Arve kuupäev puudub!',
+ 'Invoice Number' => 'Arve number',
+ 'Invoice Number missing!' => 'Arve number puudub!',
+ 'Invoice deleted!' => 'Arve kustutatud!',
+ 'Item' => 'AR.',
+ 'Item not on file!' => 'Toode puudub andmebaasist!',
+ 'Jan' => 'Jaan',
+ 'January' => 'Jaanuar',
+ 'Jul' => 'Juul',
+ 'July' => 'Juuli',
+ 'Jun' => 'Juun',
+ 'June' => 'Juuni',
+ 'Mar' => 'Mär',
+ 'March' => 'Märts',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Memo',
+ 'Message' => 'Teade',
+ 'Month(s)' => 'Kuu(d)',
+ 'Next Date' => 'Järgmine Kuupäev',
+ 'Notes' => 'Märkused',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Kood',
+ 'Number missing in Row' => 'Antud real puudub kood',
+ 'OH' => 'Ülekulud',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktoober',
+ 'Order Date missing!' => 'Tellimuse kuupäev puudub!',
+ 'Order Number' => 'Tellimuse number',
+ 'Order Number missing!' => 'Tellimuse number puudub',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ostutellimuse Number',
+ 'Packing List' => 'Saateleht',
+ 'Packing List Date missing!' => 'Saatelehe kuupäev puudub!',
+ 'Packing List Number missing!' => 'Saatelehe number puudub!',
+ 'Part' => 'Toode',
+ 'Payment date missing!' => 'Maksekuupäev puudub!',
+ 'Payments' => 'Maksed',
+ 'Phone' => 'Telefon',
+ 'Pick List' => 'Veose Saateleht',
+ 'Post' => 'Salvesta',
+ 'Post as new' => 'Salvesta uuena',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Hind',
+ 'Print' => 'Trüki',
+ 'Print and Post' => 'Trüki ja salvesta',
+ 'Print and Post as new' => 'Trüki ja Postita uuena',
+ 'Printed' => 'Trükitud',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Projekti pole failis!',
+ 'Purchase Order' => 'Ostutellimus',
+ 'Qty' => 'Kogus',
+ 'Queue' => 'Järjekord',
+ 'Queued' => 'Järjekorras',
+ 'Quotation' => 'Hinnapakkumine',
+ 'Quotation Date missing!' => 'Hinnapakkumise kuupäev puudub!',
+ 'Quotation Number missing!' => 'Hinnapakkumise number puudub!',
+ 'Recd' => 'Kattesaadud',
+ 'Record in' => 'Sihtkonto',
+ 'Recurring Transaction' => 'Korduvad Tehingud',
+ 'Reference' => 'Referenss',
+ 'Remaining' => 'Kasutamata',
+ 'Repeat' => 'Korrata',
+ 'Required by' => 'Tarneaeg',
+ 'SKU' => 'Asenduskaup',
+ 'Sales Order' => 'Müügitellimus',
+ 'Salesperson' => 'Müügiesindaja',
+ 'Save Schedule' => 'Salvestada Ajakava',
+ 'Schedule' => 'Ajakava',
+ 'Scheduled' => 'Planeeritud',
+ 'Screen' => 'Ekraan',
+ 'Select a Printer!' => 'Vali Printer',
+ 'Select from one of the names below' => 'Vali üks alltoodud nimedest',
+ 'Select from one of the projects below' => 'Vali üks alltoodud projektidest',
+ 'Select items' => 'Vali kaubaartikkel',
+ 'Select postscript or PDF!' => 'Vali kas postscript või PDF',
+ 'Select txt, postscript or PDF!' => 'Valida .txt, postscript või PDF!',
+ 'Sep' => 'Sept',
+ 'September' => 'September',
+ 'Serial No.' => 'Seerianr.',
+ 'Service' => 'Teenus',
+ 'Ship' => 'Tarnimine',
+ 'Ship to' => 'Tarneaadress',
+ 'Ship via' => 'Tarneviis',
+ 'Shipping Address' => 'Tarneaadress',
+ 'Shipping Point' => 'Saadetise Sihtpunkt',
+ 'Source' => 'Allikas',
+ 'Startdate' => 'Algus Kuupäev',
+ 'State/Province' => 'Maakond',
+ 'Subject' => 'Pealkiri',
+ 'Subtotal' => 'Vahesumma',
+ 'Tax Included' => 'Koos maksuga',
+ 'Text' => 'Tekst',
+ 'To' => 'Kuni',
+ 'Total' => 'Kokku',
+ 'Trade Discount' => 'Kaubanduslik Mahahindlus',
+ 'Translation not on file!' => 'Tõlget pole andmebaasis olemas',
+ 'Unit' => 'Ühik',
+ 'Update' => 'Uuendus',
+ 'Vendor Number' => 'Hankija number',
+ 'Vendor not on file!' => 'Hankijat pole failis!',
+ 'Warning!' => 'Tähelepanu!',
+ 'Week(s)' => 'Nädal(at)',
+ 'What type of item is this?' => 'Mis tüüpi tootega on tegemist?',
+ 'Work Order' => 'Töökäsk',
+ 'Year(s)' => 'Aasta(t)',
+ 'Yes' => 'Jah',
+ 'You are posting an existing transaction!' => 'Postitad juba olemasolevat tehingut',
+ 'You are printing and posting an existing transaction!' => 'Trükida ja postitad juba olemasolevat tehingut',
+ 'You are printing and saving an existing order' => 'Trükid ja salvestad juba olemasolevat tellimust',
+ 'You are printing and saving an existing quotation' => 'Trükid ja salvestad juba olemasolevat pakkumust',
+ 'You are saving an existing order' => 'Salvestad juba olemasolevat tellimust',
+ 'You are saving an existing quotation' => 'Salvestad juba olemasolevat pakkumust',
+ 'Zip/Postal Code' => 'Postiindex',
+ 'ea' => 'tk',
+ 'for' => 'läheb',
+ 'posted!' => 'salvestatud!',
+ 'sent' => 'saadetud',
+ 'time(s)' => 'Kord(a)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'edasi' => 'continue',
+ 'kustuta' => 'delete',
+ 'kustutata_ajakava' => 'delete_schedule',
+ 'e_mail' => 'e_mail',
+ 'salvesta' => 'post',
+ 'salvesta_uuena' => 'post_as_new',
+ 'trüki' => 'print',
+ 'trüki_ja_salvesta' => 'print_and_post',
+ 'trüki_ja_postita_uuena' => 'print_and_post_as_new',
+ 'müügitellimus' => 'sales_order',
+ 'salvestada_ajakava' => 'save_schedule',
+ 'ajakava' => 'schedule',
+ 'tarneaadress' => 'ship_to',
+ 'uuendus' => 'update',
+ 'jah' => 'yes',
+};
+
+1;
+
diff --git a/locale/ee/jc b/locale/ee/jc
new file mode 100755
index 00000000..a1eb7b97
--- /dev/null
+++ b/locale/ee/jc
@@ -0,0 +1,157 @@
+$self{charset} = 'ISO-8859-15';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Raamatupidamise Menüü',
+ 'Add Stores Card' => 'Lisa Tagavarade Kaart',
+ 'Add Time Card' => 'Lisa Ajakaart',
+ 'Allocated' => 'Reserveeritud',
+ 'Amount' => 'Summa',
+ 'Are you sure you want to delete time card for' => 'Oled kindel, et soovid kustutada ajakardi',
+ 'Cannot add stores card for a completed job!' => 'Ei saa lisada tagavarade kaarti juba lõpetatud tööülesandele!',
+ 'Cannot add time card for a completed job!' => 'Ei saa lisada ajakaarti juba lõpetatud tööülesandele!',
+ 'Cannot change stores card for a completed job!' => 'Ei saa muuta tagavarade kaarti juba lõpetatud tööülesandele!',
+ 'Cannot change time card for a completed job!' => 'Ei saa muuta ajakaarti juba lõpetatud tööülesandele!',
+ 'Cannot delete time card!' => 'Ei saa kustutada ajakaarti!',
+ 'Cannot save stores card for a closed period!' => 'Ei saa salvestada tagavarade kaarti juba suletud perioodil!',
+ 'Cannot save stores card!' => 'Ei saa salvestada tagavarade kaarti!',
+ 'Cannot save time card for a closed period!' => 'Ei saa salvestada ajakaarti juba suletud perioodil!',
+ 'Cannot save time card!' => 'Ajakaarti ei saa salvestada!',
+ 'Chargeable' => 'Maksustatav',
+ 'Clocked' => 'Kulunud aeg',
+ 'Closed' => 'Suletud',
+ 'Confirm!' => 'Kinnita!',
+ 'Continue' => 'Edasi',
+ 'Cost' => 'Kulu',
+ 'Current' => 'Käesolev',
+ 'Date' => 'Kuupäev',
+ 'Date missing!' => 'Kuupäev puudub!',
+ 'Date worked' => 'Töötatud kuupäeval',
+ 'Delete' => 'Kustuta',
+ 'Description' => 'Selgitus',
+ 'Edit Time Card' => 'Muuda Ajakaarti',
+ 'Employee' => 'Töötaja',
+ 'Friday' => 'Reede',
+ 'From' => 'Alates',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Kaasa aruandesse',
+ 'Job Description' => 'Tööülesande Kirjeldus',
+ 'Job Name' => 'Tööülesande Nimetus',
+ 'Job Number' => 'Tööülesande Number',
+ 'Job Number missing!' => 'Tööülesande Number puudu!',
+ 'Labor Code' => 'Tööseadusandlus',
+ 'Labor Code missing!' => 'Tööseadusandluse Kood puudu!',
+ 'Monday' => 'Esmaspäev',
+ 'Month' => 'Kuu',
+ 'No Employees on file!' => 'Failis puuduvad Töötajad',
+ 'No Labor codes on file!' => 'Failis puuduvad Tööseadusandluse koodid',
+ 'No Parts on file!' => 'Failis puuduvad Detailid',
+ 'No Services on file!' => 'Failis puuduvad Teenused',
+ 'No open Jobs!' => 'Puuduvad alustatud Tööülesanded',
+ 'No open Projects!' => 'Puuduvad avatud Projektid!',
+ 'Non-chargeable' => 'Maksuvaba',
+ 'Notes' => 'Märkused',
+ 'Open' => 'Avatud',
+ 'PDF' => 'PDF',
+ 'Part Number' => 'Deaili Number',
+ 'Period' => 'Periood',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Trüki',
+ 'Print and Save' => 'Trüki ja salvesta',
+ 'Print and Save as new' => 'Trüki ja Salvesta uuena',
+ 'Printed' => 'Trükitud',
+ 'Project Name' => 'Projekti Nimi',
+ 'Project Number' => 'Projekti number',
+ 'Project Number missing!' => 'Projekti number puudub!',
+ 'Project/Job Name' => 'Projekti/Tööülesande Nimi',
+ 'Project/Job Number' => 'Projekti/Tööülesande Number',
+ 'Qty' => 'Kogus',
+ 'Quarter' => 'Trimester',
+ 'Queue' => 'Järjekord',
+ 'Queued' => 'Järjekorras',
+ 'Saturday' => 'Laupäev',
+ 'Save' => 'Salvesta',
+ 'Save as new' => 'Salvesta uuena',
+ 'Screen' => 'Ekraan',
+ 'Select a Printer!' => 'Vali Printer',
+ 'Select postscript or PDF!' => 'Vali kas postscript või PDF',
+ 'Service Code' => 'Teenuse Kood',
+ 'Service Code missing!' => 'Teenuse Kood puudu!',
+ 'Service/Labor Code' => 'Teenuse/Töö Kood',
+ 'Startdate' => 'Algus Kuupäev',
+ 'Stores Card' => 'Tagavarade Kaart',
+ 'Stores Card saved!' => 'Tagavarade Kaart salvestatud!',
+ 'Stores Cards' => 'Tagavarade Kaardid',
+ 'Subtotal' => 'Vahesumma',
+ 'Sunday' => 'Pühapäev',
+ 'Thursday' => 'Neljapäev',
+ 'Time' => 'Aeg',
+ 'Time Card' => 'Aja Kaart',
+ 'Time Card deleted!' => 'Ajakaart kustutatud!',
+ 'Time Card saved!' => 'Ajakaart salvestatud!',
+ 'Time Cards' => 'Aja Kaardid',
+ 'Time In' => 'Aeg sisse',
+ 'Time Out' => 'Aeg välja',
+ 'To' => 'Kuni',
+ 'Total' => 'Kokku',
+ 'Tuesday' => 'Teisipäev',
+ 'Update' => 'Uuendus',
+ 'Warning!' => 'Tähelepanu!',
+ 'Wednesday' => 'Kolmapäev',
+ 'Year' => 'Aasta',
+ 'Yes' => 'Jah',
+ 'You are printing and saving an existing transaction!' => 'Trükid ja salvestad juba olemasolevat tehingut!',
+ 'You are saving an existing transaction!' => 'Salvestad juba olemasolevat tehingut"',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'lisa_tagavarade_kaart' => 'add_stores_card',
+ 'lisa_ajakaart' => 'add_time_card',
+ 'edasi' => 'continue',
+ 'kustuta' => 'delete',
+ 'trüki' => 'print',
+ 'trüki_ja_salvesta' => 'print_and_save',
+ 'trüki_ja_salvesta_uuena' => 'print_and_save_as_new',
+ 'salvesta' => 'save',
+ 'salvesta_uuena' => 'save_as_new',
+ 'uuendus' => 'update',
+ 'jah' => 'yes',
+};
+
+1;
+
diff --git a/locale/ee/locales.pl b/locale/ee/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/ee/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/ee/login b/locale/ee/login
new file mode 100755
index 00000000..2203a5e7
--- /dev/null
+++ b/locale/ee/login
@@ -0,0 +1,27 @@
+$self{charset} = 'ISO-8859-15';
+
+$self{texts} = {
+ 'Access Denied!' => 'Ligipääs Keelatud!',
+ 'Company' => 'Ettevõte',
+ 'Continue' => 'Edasi',
+ 'Dataset is newer than version!' => 'Andmekogu versioon, on uuem süsteemi omast!',
+ 'Incorrect Dataset version!' => 'Vale andmebaasi versioon',
+ 'Login' => 'Login',
+ 'Name' => 'Nimi',
+ 'Password' => 'Parool',
+ 'Upgrading to Version' => 'Viin vastavusse Versiooniga',
+ 'Version' => 'Versioon',
+ 'You did not enter a name!' => 'Nimi sisestamata!',
+ 'done' => 'tehtud',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ 'login' => 'login',
+};
+
+1;
+
diff --git a/locale/ee/menu b/locale/ee/menu
new file mode 100755
index 00000000..94d4c319
--- /dev/null
+++ b/locale/ee/menu
@@ -0,0 +1,145 @@
+$self{charset} = 'ISO-8859-15';
+
+$self{texts} = {
+ 'AP' => 'Kohustused',
+ 'AP Aging' => 'Võlad',
+ 'AP Transaction' => 'Kohustuste kanne',
+ 'AR' => 'Nõuded',
+ 'AR Aging' => 'Võlglased',
+ 'AR Transaction' => 'Nõuete kanne',
+ 'Accounting Menu' => 'Raamatupidamise Menüü',
+ 'Add Account' => 'Lisa konto',
+ 'Add Assembly' => 'Lisa komplekt',
+ 'Add Business' => 'Lisa Ettevõtte',
+ 'Add Customer' => 'Lisa klient',
+ 'Add Department' => 'Lisa Osakond',
+ 'Add Employee' => 'Lisa töötaja',
+ 'Add GIFI' => 'Lisa GIFI',
+ 'Add Group' => 'Lisa Grupp',
+ 'Add Labor/Overhead' => 'Lisa Tööjõukulu',
+ 'Add Language' => 'Lisa Keel',
+ 'Add Part' => 'Lisa Toote',
+ 'Add Pricegroup' => 'Lisa Hinnagrupp',
+ 'Add Project' => 'Lisa Projekt',
+ 'Add SIC' => 'Lisa Standardiseeritud Tööstuskood',
+ 'Add Service' => 'Lisa teenus',
+ 'Add Time Card' => 'Lisa Ajakaart',
+ 'Add Transaction' => 'Lisa kanne',
+ 'Add Vendor' => 'Lisa tarnija',
+ 'Add Warehouse' => 'Lisa Ladu',
+ 'All Items' => 'Kõik Kaubaartiklid',
+ 'Assemblies' => 'Komplektid',
+ 'Audit Control' => 'Audit',
+ 'Backup' => 'Varukoopia',
+ 'Balance Sheet' => 'Bilansitabel',
+ 'Batch Printing' => 'Mass. Väljatrükk',
+ 'Bin List' => 'Pakendi Saateleht',
+ 'Bin Lists' => 'Pakendi Saatelehed',
+ 'Cash' => 'Kassa',
+ 'Chart of Accounts' => 'Kontoplaan',
+ 'Check' => 'Tshekk',
+ 'Components' => 'Komponendid',
+ 'Consolidate' => 'Koonda',
+ 'Customers' => 'Kliendid',
+ 'Defaults' => 'Vaikimisi määrangud',
+ 'Departments' => 'Osakonnad',
+ 'Description' => 'Selgitus',
+ 'Employees' => 'Töötajad',
+ 'General Ledger' => 'Pearaamat',
+ 'Generate' => 'Genereeri',
+ 'Goods & Services' => 'Tooted ja teenused',
+ 'Groups' => 'Grupid',
+ 'HR' => 'Personal',
+ 'HTML Templates' => 'HTML dokumendipõhjad',
+ 'History' => 'Ajalugu',
+ 'Income Statement' => 'Kasumiaruanne',
+ 'Invoice' => 'Arve',
+ 'LaTeX Templates' => 'LaTeX dokumendipõhjad',
+ 'Labor/Overhead' => 'Tööjõukulu',
+ 'Language' => 'Keel',
+ 'List Accounts' => 'Kontode nimekiri',
+ 'List Businesses' => 'Ettevõttede nimekiri',
+ 'List Departments' => 'Osakondade nimekiri',
+ 'List GIFI' => 'GIFI nimekiri',
+ 'List Languages' => 'Keelte nimekiri',
+ 'List Projects' => 'Projektide nimekiri',
+ 'List SIC' => 'Standardiseeritud Tööstuskoodide Nimekiri',
+ 'List Warehouses' => 'Ladude nimekiri',
+ 'Logout' => 'Logi välja',
+ 'New Window' => 'Uus Aken',
+ 'Non-taxable' => 'Maksuvaba',
+ 'Open' => 'Avatud',
+ 'Order Entry' => 'Tellimuse sisestamine',
+ 'Outstanding' => 'Tasumata nõued',
+ 'POS' => 'MüügiPunkt',
+ 'POS Invoice' => 'POS arve',
+ 'Packing List' => 'Saateleht',
+ 'Packing Lists' => 'Saatelehed',
+ 'Parts' => 'Osad',
+ 'Payment' => 'Maksmine',
+ 'Payments' => 'Maksed',
+ 'Pick List' => 'Veose Saateleht',
+ 'Pick Lists' => 'Veose Saatelehed',
+ 'Preferences' => 'Määrangud',
+ 'Pricegroups' => 'Hinnagrupid',
+ 'Print' => 'Trüki',
+ 'Projects' => 'Projektid',
+ 'Purchase Order' => 'Ostutellimus',
+ 'Purchase Orders' => 'Ostutellimused',
+ 'Quotation' => 'Hinnapakkumine',
+ 'Quotations' => 'Hinnapakkumised',
+ 'RFQ' => 'Hinnapakkumise Taotlus',
+ 'RFQs' => 'Hinnapakkumise Taotlused',
+ 'Receipt' => 'Maksekviitung',
+ 'Receipts' => 'Sissetulek',
+ 'Receive' => 'Võtta vastu',
+ 'Reconciliation' => 'Kooskõlastamine',
+ 'Recurring Transactions' => 'Korduvad Tehingud',
+ 'Reports' => 'Aruanded',
+ 'Requirements' => 'Nõudmised',
+ 'SIC' => 'Standardiseeritud Tööstuskood',
+ 'Sale' => 'Müük',
+ 'Sales Invoice' => 'Müügiarve',
+ 'Sales Invoices' => 'Müügiarved',
+ 'Sales Order' => 'Müügitellimus',
+ 'Sales Orders' => 'Müügitellimused',
+ 'Save to File' => 'Salvesta faili',
+ 'Search' => 'Otsi',
+ 'Send by E-Mail' => 'Saada e-postiga',
+ 'Services' => 'Teenused',
+ 'Ship' => 'Tarnimine',
+ 'Shipping' => 'Tarned',
+ 'Statement' => 'Aruanne',
+ 'Stock Assembly' => 'Komplekti lattu võtmine',
+ 'Stylesheet' => 'Laaditabel',
+ 'System' => 'Süsteem',
+ 'Tax collected' => 'Kogutud maksud',
+ 'Tax paid' => 'Makstud maksud',
+ 'Text Templates' => 'Tekstipõhised Dokumendipõhjad',
+ 'Time Card' => 'Aja Kaart',
+ 'Time Cards' => 'Aja Kaardid',
+ 'Transactions' => 'Kanded',
+ 'Transfer' => 'Tsessioon',
+ 'Transfer Inventory' => 'Vii laoartiklid teisse lattu',
+ 'Translations' => 'Tõlked',
+ 'Trial Balance' => 'Proovibilanss',
+ 'Type of Business' => 'Ettevõtte tüüp',
+ 'Vendor Invoice' => 'Ostuarve',
+ 'Vendors' => 'Hankijad',
+ 'Version' => 'Versioon',
+ 'Warehouses' => 'Laod',
+ 'Work Order' => 'Töökäsk',
+ 'Work Orders' => 'Töökäsud',
+ 'Yearend' => 'Kasumi eraldamine',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/ee/oe b/locale/ee/oe
new file mode 100755
index 00000000..975d361d
--- /dev/null
+++ b/locale/ee/oe
@@ -0,0 +1,380 @@
+$self{charset} = 'ISO-8859-15';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Raamatupidamise Menüü',
+ 'Add Exchange Rate' => 'Lisa vahetuskurss',
+ 'Add Purchase Order' => 'Lisa Ostutellimus',
+ 'Add Quotation' => 'Lisa Pakkumine',
+ 'Add Request for Quotation' => 'Lisa Hinnapakkumise taotlus',
+ 'Add Sales Invoice' => 'Lisa Müügiarve',
+ 'Add Sales Order' => 'Lisa Müügitellimus',
+ 'Add Vendor Invoice' => 'Lisa Ostuarve',
+ 'Address' => 'Aadress',
+ 'Amount' => 'Summa',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprill',
+ 'Are you sure you want to delete Order Number' => 'Kas oled kindel, et soovid kustutada tellimuse',
+ 'Are you sure you want to delete Quotation Number' => 'Kas oled kindel, et soovid kustutada pakkumise',
+ 'Attachment' => 'Kaasatud fail',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Arve aadress',
+ 'Bin' => 'Kast',
+ 'Bin List' => 'Pakendi Saateleht',
+ 'Business' => 'Ettevõtte',
+ 'C' => 'C',
+ 'Cannot delete order!' => 'Tellimust ei saa kustutada!',
+ 'Cannot delete quotation!' => 'Hinnapakkumist ei saa kustutada!',
+ 'Cannot save order!' => 'Arvet ei saa salvestada!',
+ 'Cannot save quotation!' => 'Hinnapakkumist ei saa salvestada!',
+ 'Cc' => 'Cc',
+ 'City' => 'Linn',
+ 'Closed' => 'Suletud',
+ 'Company Name' => 'Ettevõtte nimi',
+ 'Confirm!' => 'Kinnita!',
+ 'Consolidate Orders' => 'Tellimuste Koondamine',
+ 'Consolidate Purchase Orders' => 'Ostutellimuste Koondamine',
+ 'Consolidate Sales Orders' => 'Müügitellimuste Koondamine',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Edasi',
+ 'Copies' => 'koopiat',
+ 'Cost' => 'Kulu',
+ 'Could not save!' => 'Ei saa salvestada!',
+ 'Could not transfer Inventory!' => 'Laoartiklit ei saa üle viia!',
+ 'Country' => 'Riik',
+ 'Credit Limit' => 'Krediidilimiit',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valuuta',
+ 'Current' => 'Käesolev',
+ 'Customer' => 'Klient',
+ 'Customer Number' => 'Kliendi number',
+ 'Customer missing!' => 'Klienti pole määratud!',
+ 'Customer not on file!' => 'Klienti pole failis!',
+ 'Date' => 'Kuupäev',
+ 'Date Received' => 'Kättesaamise kuupäev',
+ 'Date received missing!' => 'Kattesaamise kuupäev puudub!',
+ 'Day(s)' => 'Päev(a)',
+ 'Dec' => 'Dets',
+ 'December' => 'Detsember',
+ 'Delete' => 'Kustuta',
+ 'Delete Schedule' => 'Kustutata Ajakava',
+ 'Delivery Date' => 'Kättetoimetamise kuupäev',
+ 'Department' => 'Osakond',
+ 'Description' => 'Selgitus',
+ 'Done' => 'Teostatud',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'E-maili aadress puudub',
+ 'E-mail message' => 'E-posti teade',
+ 'E-mailed' => 'E-mailiga saadetud',
+ 'Edit Purchase Order' => 'Muuda Ostutellimuse',
+ 'Edit Quotation' => 'Muuda Hinnapakkumise',
+ 'Edit Request for Quotation' => 'Muuda Hinnapakkumise Taotluse',
+ 'Edit Sales Order' => 'Müügitellimuse muutmine',
+ 'Employee' => 'Töötaja',
+ 'Every' => 'Iga',
+ 'Exchange Rate' => 'Valuutakurss',
+ 'Exchange rate missing!' => 'Valuutakurssi ei ole',
+ 'Extended' => 'Summa',
+ 'Fax' => 'Faks',
+ 'Feb' => 'Veebr',
+ 'February' => 'Veebruar',
+ 'For' => 'Saata',
+ 'From' => 'Alates',
+ 'From Warehouse' => 'Tuleb Kaubalaost',
+ 'Generate Orders' => 'Genereeri Tellimused',
+ 'Generate Purchase Orders' => 'Genereeri Ostutellimused',
+ 'Generate Purchase Orders from Sales Order' => 'Genereeri Ostutellimused Müügitellimustest',
+ 'Generate Sales Order' => 'Genereeri Müügitellimused',
+ 'Generate Sales Order from Purchase Orders' => 'Genereeri Müügitellimused Ostutellimustest',
+ 'Group' => 'Grupp',
+ 'ID' => 'ID',
+ 'In-line' => 'Dokumendisisene',
+ 'Include Payment' => 'Lisa Makse',
+ 'Include in Report' => 'Kaasa aruandesse',
+ 'Internal Notes' => 'Sisemärkused',
+ 'Inventory saved!' => 'Laoarvestus salvestatud!',
+ 'Inventory transferred!' => 'Laoartiklid yleviidud!',
+ 'Invoice' => 'Arve',
+ 'Invoice Date missing!' => 'Arve kuupäev puudub!',
+ 'Invoice Number missing!' => 'Arve number puudub!',
+ 'Item' => 'AR.',
+ 'Item not on file!' => 'Toode puudub andmebaasist!',
+ 'Jan' => 'Jaan',
+ 'January' => 'Jaanuar',
+ 'Jul' => 'Juul',
+ 'July' => 'Juuli',
+ 'Jun' => 'Juun',
+ 'June' => 'Juuni',
+ 'Lead' => 'Juhtimine',
+ 'Manager' => 'Juhataja',
+ 'Mar' => 'Mär',
+ 'March' => 'Märts',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Message' => 'Teade',
+ 'Month' => 'Kuu',
+ 'Month(s)' => 'Kuu(d)',
+ 'Next Date' => 'Järgmine Kuupäev',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Märkused',
+ 'Nothing entered!' => 'Midagi pole sisestatud!',
+ 'Nothing selected!' => 'Valik puudub!',
+ 'Nothing to transfer!' => 'Pole midagi ümber paigutada!',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Kood',
+ 'Number missing in Row' => 'Antud real puudub kood',
+ 'O' => 'Avatud',
+ 'OH' => 'Ülekulud',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktoober',
+ 'Open' => 'Avatud',
+ 'Order' => 'Tellimus',
+ 'Order Date' => 'Tellimuse kuupäev',
+ 'Order Date missing!' => 'Tellimuse kuupäev puudub!',
+ 'Order Number' => 'Tellimuse number',
+ 'Order Number missing!' => 'Tellimuse number puudub',
+ 'Order deleted!' => 'Tellimus kustutatud!',
+ 'Order generation failed!' => 'Arve genereerimine ebaõnnestus!',
+ 'Order saved!' => 'Tellimus salvestatud!',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ostutellimuse Number',
+ 'Packing List' => 'Saateleht',
+ 'Packing List Date missing!' => 'Saatelehe kuupäev puudub!',
+ 'Packing List Number missing!' => 'Saatelehe number puudub!',
+ 'Part' => 'Toode',
+ 'Part Number' => 'Deaili Number',
+ 'Period' => 'Periood',
+ 'Phone' => 'Telefon',
+ 'Pick List' => 'Veose Saateleht',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Hind',
+ 'Print' => 'Trüki',
+ 'Print and Save' => 'Trüki ja salvesta',
+ 'Print and Save as new' => 'Trüki ja Salvesta uuena',
+ 'Printed' => 'Trükitud',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Projekti pole failis!',
+ 'Purchase Order' => 'Ostutellimus',
+ 'Purchase Orders' => 'Ostutellimused',
+ 'Qty' => 'Kogus',
+ 'Quarter' => 'Trimester',
+ 'Queue' => 'Järjekord',
+ 'Queued' => 'Järjekorras',
+ 'Quotation' => 'Hinnapakkumine',
+ 'Quotation ' => 'Koteering',
+ 'Quotation Date' => 'Hinnapakkumise kuupäev',
+ 'Quotation Date missing!' => 'Hinnapakkumise kuupäev puudub!',
+ 'Quotation Number' => 'Hinnapakkumise number',
+ 'Quotation Number missing!' => 'Hinnapakkumise number puudub!',
+ 'Quotation deleted!' => 'Hinnapakkumine kustutatud!',
+ 'Quotations' => 'Hinnapakkumised',
+ 'RFQ' => 'Hinnapakkumise Taotlus',
+ 'RFQ ' => 'Hinnapakkumuse Taotlus',
+ 'RFQ Number' => 'Hinnapakkumise Taotluse nr.',
+ 'Recd' => 'Kattesaadud',
+ 'Receive Merchandise' => 'Kauba Vastuvõtt',
+ 'Recurring Transaction' => 'Korduvad Tehingud',
+ 'Reference' => 'Referenss',
+ 'Remaining' => 'Kasutamata',
+ 'Repeat' => 'Korrata',
+ 'Req' => 'Vajalik',
+ 'Request for Quotation' => 'Hinnapakkumise Taotlus',
+ 'Request for Quotations' => 'Hinnapakkumise Taotlused',
+ 'Required by' => 'Tarneaeg',
+ 'SKU' => 'Asenduskaup',
+ 'Sales Invoice' => 'Müügiarve',
+ 'Sales Order' => 'Müügitellimus',
+ 'Sales Orders' => 'Müügitellimused',
+ 'Salesperson' => 'Müügiesindaja',
+ 'Save' => 'Salvesta',
+ 'Save Schedule' => 'Salvestada Ajakava',
+ 'Save as new' => 'Salvesta uuena',
+ 'Schedule' => 'Ajakava',
+ 'Scheduled' => 'Planeeritud',
+ 'Screen' => 'Ekraan',
+ 'Select Vendor' => 'Vali Tarnija',
+ 'Select a Printer!' => 'Vali Printer',
+ 'Select from one of the names below' => 'Vali üks alltoodud nimedest',
+ 'Select from one of the projects below' => 'Vali üks alltoodud projektidest',
+ 'Select items' => 'Vali kaubaartikkel',
+ 'Select postscript or PDF!' => 'Vali kas postscript või PDF',
+ 'Select txt, postscript or PDF!' => 'Valida .txt, postscript või PDF!',
+ 'Sep' => 'Sept',
+ 'September' => 'September',
+ 'Serial No.' => 'Seerianr.',
+ 'Service' => 'Teenus',
+ 'Ship' => 'Tarnimine',
+ 'Ship Merchandise' => 'Tarni kaubad',
+ 'Ship to' => 'Tarneaadress',
+ 'Ship via' => 'Tarneviis',
+ 'Shipping Address' => 'Tarneaadress',
+ 'Shipping Date' => 'Tarne kuupäev',
+ 'Shipping Date missing!' => 'Tarne kuupäev puudub',
+ 'Shipping Point' => 'Saadetise Sihtpunkt',
+ 'Startdate' => 'Algus Kuupäev',
+ 'State/Province' => 'Maakond',
+ 'Subject' => 'Pealkiri',
+ 'Subtotal' => 'Vahesumma',
+ 'Tax' => 'Maks',
+ 'Tax Included' => 'Koos maksuga',
+ 'Terms' => 'Maksetingimus',
+ 'Text' => 'Tekst',
+ 'To' => 'Kuni',
+ 'To Warehouse' => 'Kaubalattu',
+ 'Total' => 'Kokku',
+ 'Trade Discount' => 'Kaubanduslik Mahahindlus',
+ 'Transfer' => 'Tsessioon',
+ 'Transfer Inventory' => 'Vii laoartiklid teisse lattu',
+ 'Transfer from' => 'Liikumine laost',
+ 'Transfer to' => 'Liikumine lattu',
+ 'Translation not on file!' => 'Tõlget pole andmebaasis olemas',
+ 'Unit' => 'Ühik',
+ 'Update' => 'Uuendus',
+ 'Valid until' => 'Kehtiv kuni',
+ 'Vendor' => 'Hankija',
+ 'Vendor Invoice' => 'Ostuarve',
+ 'Vendor Number' => 'Hankija number',
+ 'Vendor missing!' => 'Hankija puudub!',
+ 'Vendor not on file!' => 'Hankijat pole failis!',
+ 'Warehouse' => 'Ladu',
+ 'Warning!' => 'Tähelepanu!',
+ 'Week(s)' => 'Nädal(at)',
+ 'What type of item is this?' => 'Mis tüüpi tootega on tegemist?',
+ 'Work Order' => 'Töökäsk',
+ 'Year' => 'Aasta',
+ 'Year(s)' => 'Aasta(t)',
+ 'Yes' => 'Jah',
+ 'You are posting an existing transaction!' => 'Postitad juba olemasolevat tehingut',
+ 'You are printing and posting an existing transaction!' => 'Trükida ja postitad juba olemasolevat tehingut',
+ 'You are printing and saving an existing order' => 'Trükid ja salvestad juba olemasolevat tellimust',
+ 'You are printing and saving an existing quotation' => 'Trükid ja salvestad juba olemasolevat pakkumust',
+ 'You are saving an existing order' => 'Salvestad juba olemasolevat tellimust',
+ 'You are saving an existing quotation' => 'Salvestad juba olemasolevat pakkumust',
+ 'Zip/Postal Code' => 'Postiindex',
+ 'days' => 'päeva',
+ 'ea' => 'tk',
+ 'for' => 'läheb',
+ 'sent' => 'saadetud',
+ 'time(s)' => 'Kord(a)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'tellimuste_koondamine' => 'consolidate_orders',
+ 'edasi' => 'continue',
+ 'kustuta' => 'delete',
+ 'kustutata_ajakava' => 'delete_schedule',
+ 'teostatud' => 'done',
+ 'e_mail' => 'e_mail',
+ 'genereeri_tellimused' => 'generate_orders',
+ 'genereeri_ostutellimused' => 'generate_purchase_orders',
+ 'genereeri_müügitellimused' => 'generate_sales_order',
+ 'trüki' => 'print',
+ 'trüki_ja_salvesta' => 'print_and_save',
+ 'trüki_ja_salvesta_uuena' => 'print_and_save_as_new',
+ 'ostutellimus' => 'purchase_order',
+ 'hinnapakkumine' => 'quotation',
+ 'koteering' => 'quotation_',
+ 'hinnapakkumise_taotlus' => 'rfq',
+ 'hinnapakkumuse_taotlus' => 'rfq_',
+ 'müügiarve' => 'sales_invoice',
+ 'müügitellimus' => 'sales_order',
+ 'salvesta' => 'save',
+ 'salvestada_ajakava' => 'save_schedule',
+ 'salvesta_uuena' => 'save_as_new',
+ 'ajakava' => 'schedule',
+ 'vali_tarnija' => 'select_vendor',
+ 'tarneaadress' => 'ship_to',
+ 'tsessioon' => 'transfer',
+ 'uuendus' => 'update',
+ 'ostuarve' => 'vendor_invoice',
+ 'jah' => 'yes',
+};
+
+1;
+
diff --git a/locale/ee/pe b/locale/ee/pe
new file mode 100755
index 00000000..c11041f1
--- /dev/null
+++ b/locale/ee/pe
@@ -0,0 +1,168 @@
+$self{charset} = 'ISO-8859-15';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Raamatupidamise Menüü',
+ 'Active' => 'Aktiva',
+ 'Add' => 'Lisa',
+ 'Add Group' => 'Lisa Grupp',
+ 'Add Job' => 'Lisa Ülesanne',
+ 'Add Pricegroup' => 'Lisa Hinnagrupp',
+ 'Add Project' => 'Lisa Projekt',
+ 'Address' => 'Aadress',
+ 'All' => 'Kõik',
+ 'Amount' => 'Summa',
+ 'As of' => 'nagu',
+ 'Assembly' => 'Komplekt',
+ 'Assembly stocked!' => 'Komplekt ladustatud',
+ 'Bin' => 'Kast',
+ 'Cannot stock Assembly!' => 'Komplekti pole võimalik ladustada!',
+ 'Completed' => 'Lõpetatud',
+ 'Continue' => 'Edasi',
+ 'Current' => 'Käesolev',
+ 'Customer' => 'Klient',
+ 'Customer missing!' => 'Klienti pole määratud!',
+ 'Customer not on file!' => 'Klienti pole failis!',
+ 'Date' => 'Kuupäev',
+ 'Delete' => 'Kustuta',
+ 'Description' => 'Selgitus',
+ 'Description Translations' => 'Selgituse tõlged',
+ 'Detail' => 'Detail',
+ 'Edit Description Translations' => 'Muuda Selgituse Tõlged',
+ 'Edit Group' => 'Muuda Gruppi andmed',
+ 'Edit Job' => 'Redigeeri Tööülesanne',
+ 'Edit Pricegroup' => 'Muuda Hinnagrupi andmed',
+ 'Edit Project' => 'Muuda Projekti andmed',
+ 'Employee' => 'Töötaja',
+ 'Enddate' => 'Lõppkuupäev',
+ 'Failed to save order!' => 'Viga tellimuse salvestamisel!',
+ 'From' => 'Alates',
+ 'Generate Sales Orders' => 'Genereeri Müügitellimused',
+ 'Group' => 'Grupp',
+ 'Group Translations' => 'Grupeeri Tõlked',
+ 'Group deleted!' => 'Grupp kustutatud!',
+ 'Group missing!' => 'Grupp puudub!',
+ 'Group saved!' => 'Grupp salvestatud!',
+ 'Groups' => 'Grupid',
+ 'Inactive' => 'Vähenõutav',
+ 'Income' => 'Kasum',
+ 'Job' => 'Tööülesanne',
+ 'Job Number' => 'Tööülesande Number',
+ 'Job deleted!' => 'Tööülesanne kustutatud!',
+ 'Job saved!' => 'Tööülesanne salvestatud!',
+ 'Jobs' => 'Tööülesanded',
+ 'Language' => 'Keel',
+ 'Languages not defined!' => 'Keeled pole defineeritud!',
+ 'Link Accounts' => 'Seosta kontod',
+ 'List Price' => 'Hinnakirja hind',
+ 'Month' => 'Kuu',
+ 'No open Projects!' => 'Puuduvad avatud Projektid!',
+ 'Notes' => 'Märkused',
+ 'Nothing selected!' => 'Valik puudub!',
+ 'Number' => 'Kood',
+ 'Orders generated!' => 'Arved genereeritud',
+ 'Orphaned' => 'Seosteta',
+ 'Part Number' => 'Deaili Number',
+ 'Period' => 'Periood',
+ 'Pricegroup' => 'Hinnagrupp',
+ 'Pricegroup deleted!' => 'Hinnagrupp kustutatud!',
+ 'Pricegroup missing!' => 'Hinnagrupp puudub!',
+ 'Pricegroup saved!' => 'Hinnagrup salvestatud!',
+ 'Pricegroups' => 'Hinnagrupid',
+ 'Production' => 'Tootmine',
+ 'Project' => 'Projekt',
+ 'Project Description Translations' => 'Projekti Selgituse Tõlged',
+ 'Project Number' => 'Projekti number',
+ 'Project deleted!' => 'Projekt kustutatud!',
+ 'Project saved!' => 'Projekt salvestatud!',
+ 'Projects' => 'Projektid',
+ 'Qty' => 'Kogus',
+ 'Quarter' => 'Trimester',
+ 'Save' => 'Salvesta',
+ 'Select Customer' => 'Vali Klient',
+ 'Select from one of the names below' => 'Vali üks alltoodud nimedest',
+ 'Sell Price' => 'Müügihind',
+ 'Service Code' => 'Teenuse Kood',
+ 'Startdate' => 'Algus Kuupäev',
+ 'Stock Finished Goods' => 'Ladusta Valmistoodang',
+ 'Summary' => 'Kokkuvõtte',
+ 'Tax' => 'Maks',
+ 'To' => 'Kuni',
+ 'Transaction Dates' => 'Tehingte Kuupäevad',
+ 'Translation' => 'Tõlge',
+ 'Translation deleted!' => 'Tõlge kustutatud',
+ 'Translations saved!' => 'Tõlked salvestatud',
+ 'Unit' => 'Ühik',
+ 'Update' => 'Uuendus',
+ 'Updated' => 'Uuendatud',
+ 'Vendor' => 'Hankija',
+ 'Vendor not on file!' => 'Hankijat pole failis!',
+ 'Weight' => 'Kaal',
+ 'Year' => 'Aasta',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'lisa_grupp' => 'add_group',
+ 'lisa_Ülesanne' => 'add_job',
+ 'lisa_hinnagrupp' => 'add_pricegroup',
+ 'lisa_projekt' => 'add_project',
+ 'edasi' => 'continue',
+ 'kustuta' => 'delete',
+ 'genereeri_müügitellimused' => 'generate_sales_orders',
+ 'salvesta' => 'save',
+ 'vali_klient' => 'select_customer',
+ 'uuendus' => 'update',
+};
+
+1;
+
diff --git a/locale/ee/pos b/locale/ee/pos
new file mode 100755
index 00000000..8759c3a4
--- /dev/null
+++ b/locale/ee/pos
@@ -0,0 +1,83 @@
+$self{charset} = 'ISO-8859-15';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Raamatupidamise Menüü',
+ 'Add POS Invoice' => 'Lisa Sularahamüügi Kviitung',
+ 'Amount' => 'Summa',
+ 'Business' => 'Ettevõtte',
+ 'Cannot post transaction!' => 'Kannet ei saa salvestada!',
+ 'Change' => 'Muuda',
+ 'Continue' => 'Edasi',
+ 'Credit Limit' => 'Krediidilimiit',
+ 'Currency' => 'Valuuta',
+ 'Current' => 'Käesolev',
+ 'Customer' => 'Klient',
+ 'Customer missing!' => 'Klienti pole määratud!',
+ 'Delete' => 'Kustuta',
+ 'Department' => 'Osakond',
+ 'Description' => 'Selgitus',
+ 'Edit POS Invoice' => 'Muuda Sularahamüügi Kviitung',
+ 'Exchange Rate' => 'Valuutakurss',
+ 'Exchange rate missing!' => 'Valuutakurssi ei ole',
+ 'Extended' => 'Summa',
+ 'From' => 'Alates',
+ 'Language' => 'Keel',
+ 'Memo' => 'Memo',
+ 'Month' => 'Kuu',
+ 'Number' => 'Kood',
+ 'Open' => 'Avatud',
+ 'Period' => 'Periood',
+ 'Post' => 'Salvesta',
+ 'Posted!' => 'Salvestatud!',
+ 'Price' => 'Hind',
+ 'Print' => 'Trüki',
+ 'Print and Post' => 'Trüki ja salvesta',
+ 'Printed' => 'Trükitud',
+ 'Qty' => 'Kogus',
+ 'Quarter' => 'Trimester',
+ 'Receipts' => 'Sissetulek',
+ 'Record in' => 'Sihtkonto',
+ 'Remaining' => 'Kasutamata',
+ 'Salesperson' => 'Müügiesindaja',
+ 'Screen' => 'Ekraan',
+ 'Select a Printer!' => 'Vali Printer',
+ 'Source' => 'Allikas',
+ 'Subtotal' => 'Vahesumma',
+ 'Tax Included' => 'Koos maksuga',
+ 'To' => 'Kuni',
+ 'Total' => 'Kokku',
+ 'Trade Discount' => 'Kaubanduslik Mahahindlus',
+ 'Unit' => 'Ühik',
+ 'Update' => 'Uuendus',
+ 'Year' => 'Aasta',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'edasi' => 'continue',
+ 'kustuta' => 'delete',
+ 'salvesta' => 'post',
+ 'trüki' => 'print',
+ 'trüki_ja_salvesta' => 'print_and_post',
+ 'uuendus' => 'update',
+};
+
+1;
+
diff --git a/locale/ee/ps b/locale/ee/ps
new file mode 100755
index 00000000..33b7f0d6
--- /dev/null
+++ b/locale/ee/ps
@@ -0,0 +1,399 @@
+$self{charset} = 'ISO-8859-15';
+
+$self{texts} = {
+ 'AP Aging' => 'Võlad',
+ 'AP Outstanding' => 'Tasumata kohustused',
+ 'AP Transaction' => 'Kohustuste kanne',
+ 'AP Transactions' => 'Kohustuste kanded',
+ 'AR Aging' => 'Võlglased',
+ 'AR Outstanding' => 'Tasumata nõued',
+ 'AR Transaction' => 'Nõuete kanne',
+ 'AR Transactions' => 'Nõuete kanded',
+ 'Account' => 'Konto',
+ 'Account Number' => 'Konto number',
+ 'Accounting Menu' => 'Raamatupidamise Menüü',
+ 'Accounts' => 'Kontod',
+ 'Accrual' => 'Kapitalisatsioon',
+ 'Add AP Transaction' => 'Lisa OR Tehing',
+ 'Add AR Transaction' => 'Lisa MR Tehing',
+ 'Add POS Invoice' => 'Lisa Sularahamüügi Kviitung',
+ 'Add Purchase Order' => 'Lisa Ostutellimus',
+ 'Add Quotation' => 'Lisa Pakkumine',
+ 'Add Request for Quotation' => 'Lisa Hinnapakkumise taotlus',
+ 'Add Sales Invoice' => 'Lisa Müügiarve',
+ 'Add Sales Order' => 'Lisa Müügitellimus',
+ 'Address' => 'Aadress',
+ 'Aged' => 'Aegunud',
+ 'Aged Overdue' => 'Aegunud Võlgnevused',
+ 'All Accounts' => 'Koik kontod',
+ 'Amount' => 'Summa',
+ 'Amount Due' => 'Võlaosa',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprill',
+ 'Are you sure you want to delete Invoice Number' => 'Kas oled kindel, et soovid kustutada arve',
+ 'Are you sure you want to delete Transaction' => 'Kas oled kindel, et soovid kustutada kande',
+ 'Attachment' => 'Kaasatud fail',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Balance' => 'Bilanss',
+ 'Balance Sheet' => 'Bilansitabel',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Arve aadress',
+ 'Bin' => 'Kast',
+ 'Bin List' => 'Pakendi Saateleht',
+ 'Business' => 'Ettevõtte',
+ 'Cannot delete invoice!' => 'Arvet ei saa kustutada',
+ 'Cannot delete transaction!' => 'Kannet ei saa kustutada!',
+ 'Cannot post invoice for a closed period!' => 'Arvet ei saa salvestada suletud perioodile!',
+ 'Cannot post invoice!' => 'Arvet ei saa salvestada!',
+ 'Cannot post payment for a closed period!' => 'Makset ei saa salvestada suletud perioodile!',
+ 'Cannot post transaction for a closed period!' => 'Kannet ei saa salvestada suletud perioodile!',
+ 'Cannot post transaction!' => 'Kannet ei saa salvestada!',
+ 'Cash' => 'Kassa',
+ 'Cc' => 'Cc',
+ 'Change' => 'Muuda',
+ 'Check' => 'Tshekk',
+ 'City' => 'Linn',
+ 'Closed' => 'Suletud',
+ 'Company Name' => 'Ettevõtte nimi',
+ 'Compare to' => 'Võrdlus perioodiga',
+ 'Confirm!' => 'Kinnita!',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Edasi',
+ 'Copies' => 'koopiat',
+ 'Country' => 'Riik',
+ 'Credit' => 'Kreedit',
+ 'Credit Limit' => 'Krediidilimiit',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valuuta',
+ 'Current' => 'Käesolev',
+ 'Current Earnings' => 'Käesoleva aasta kasum (kahjum)',
+ 'Customer' => 'Klient',
+ 'Customer Number' => 'Kliendi number',
+ 'Customer missing!' => 'Klienti pole määratud!',
+ 'Customer not on file!' => 'Klienti pole failis!',
+ 'Date' => 'Kuupäev',
+ 'Date Paid' => 'Maksekuupäev',
+ 'Day(s)' => 'Päev(a)',
+ 'Debit' => 'Deebet',
+ 'Dec' => 'Dets',
+ 'December' => 'Detsember',
+ 'Decimalplaces' => 'Komakohad',
+ 'Delete' => 'Kustuta',
+ 'Delete Schedule' => 'Kustutata Ajakava',
+ 'Delivery Date' => 'Kättetoimetamise kuupäev',
+ 'Department' => 'Osakond',
+ 'Description' => 'Selgitus',
+ 'Detail' => 'Detail',
+ 'Due Date' => 'Maksetähtaeg',
+ 'Due Date missing!' => 'Maksetähtaeg puudub!',
+ 'E-mail' => 'E-mail',
+ 'E-mail Statement to' => 'E-mailiga teatamine',
+ 'E-mail address missing!' => 'E-maili aadress puudub',
+ 'E-mail message' => 'E-posti teade',
+ 'E-mailed' => 'E-mailiga saadetud',
+ 'Edit AP Transaction' => 'Muuda OR Tehing',
+ 'Edit AR Transaction' => 'Muuda MR Tehing',
+ 'Edit POS Invoice' => 'Muuda Sularahamüügi Kviitung',
+ 'Edit Sales Invoice' => 'Müügiarve muutmine',
+ 'Employee' => 'Töötaja',
+ 'Every' => 'Iga',
+ 'Exch' => 'Kurss',
+ 'Exchange Rate' => 'Valuutakurss',
+ 'Exchange rate for payment missing!' => 'Maksel ei ole valuutakurssi!',
+ 'Exchange rate missing!' => 'Valuutakurssi ei ole',
+ 'Extended' => 'Summa',
+ 'Fax' => 'Faks',
+ 'Feb' => 'Veebr',
+ 'February' => 'Veebruar',
+ 'For' => 'Saata',
+ 'From' => 'Alates',
+ 'GIFI' => 'GIFI',
+ 'Group' => 'Grupp',
+ 'Heading' => 'Päis',
+ 'ID' => 'ID',
+ 'In-line' => 'Dokumendisisene',
+ 'Include Exchange Rate Difference' => 'Kaasa valuutavahetuskursside vahe',
+ 'Include Payment' => 'Lisa Makse',
+ 'Include in Report' => 'Kaasa aruandesse',
+ 'Income Statement' => 'Kasumiaruanne',
+ 'Internal Notes' => 'Sisemärkused',
+ 'Invoice' => 'Arve',
+ 'Invoice Date' => 'Arve kuupäev',
+ 'Invoice Date missing!' => 'Arve kuupäev puudub!',
+ 'Invoice Number' => 'Arve number',
+ 'Invoice Number missing!' => 'Arve number puudub!',
+ 'Invoice deleted!' => 'Arve kustutatud!',
+ 'Item' => 'AR.',
+ 'Item not on file!' => 'Toode puudub andmebaasist!',
+ 'Jan' => 'Jaan',
+ 'January' => 'Jaanuar',
+ 'Jul' => 'Juul',
+ 'July' => 'Juuli',
+ 'Jun' => 'Juun',
+ 'June' => 'Juuni',
+ 'Language' => 'Keel',
+ 'Manager' => 'Juhataja',
+ 'Mar' => 'Mär',
+ 'March' => 'Märts',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Memo',
+ 'Message' => 'Teade',
+ 'Method' => 'Meetod',
+ 'Month' => 'Kuu',
+ 'Month(s)' => 'Kuu(d)',
+ 'N/A' => 'Puudub',
+ 'Next Date' => 'Järgmine Kuupäev',
+ 'No.' => 'Nr.',
+ 'Non-taxable Purchases' => 'Maksuvaba ostud',
+ 'Non-taxable Sales' => 'Maksuvaba müük',
+ 'Notes' => 'Märkused',
+ 'Nothing selected!' => 'Valik puudub!',
+ 'Nothing to print!' => 'Pole midagi trükkida!',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Kood',
+ 'Number missing in Row' => 'Antud real puudub kood',
+ 'OH' => 'Ülekulud',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktoober',
+ 'Open' => 'Avatud',
+ 'Order' => 'Tellimus',
+ 'Order Date missing!' => 'Tellimuse kuupäev puudub!',
+ 'Order Number' => 'Tellimuse number',
+ 'Order Number missing!' => 'Tellimuse number puudub',
+ 'Overdue' => 'Tähtaegunud',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ostutellimuse Number',
+ 'Packing List' => 'Saateleht',
+ 'Packing List Date missing!' => 'Saatelehe kuupäev puudub!',
+ 'Packing List Number missing!' => 'Saatelehe number puudub!',
+ 'Paid' => 'Makstud',
+ 'Part' => 'Toode',
+ 'Payment date missing!' => 'Maksekuupäev puudub!',
+ 'Payments' => 'Maksed',
+ 'Period' => 'Periood',
+ 'Phone' => 'Telefon',
+ 'Pick List' => 'Veose Saateleht',
+ 'Post' => 'Salvesta',
+ 'Post as new' => 'Salvesta uuena',
+ 'Posted!' => 'Salvestatud!',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Hind',
+ 'Print' => 'Trüki',
+ 'Print and Post' => 'Trüki ja salvesta',
+ 'Print and Post as new' => 'Trüki ja Postita uuena',
+ 'Printed' => 'Trükitud',
+ 'Project' => 'Projekt',
+ 'Project Number' => 'Projekti number',
+ 'Project Transactions' => 'Projekti Kanded',
+ 'Project not on file!' => 'Projekti pole failis!',
+ 'Purchase Order' => 'Ostutellimus',
+ 'Qty' => 'Kogus',
+ 'Quarter' => 'Trimester',
+ 'Queue' => 'Järjekord',
+ 'Queued' => 'Järjekorras',
+ 'Quotation' => 'Hinnapakkumine',
+ 'Quotation Date missing!' => 'Hinnapakkumise kuupäev puudub!',
+ 'Quotation Number missing!' => 'Hinnapakkumise number puudub!',
+ 'Recd' => 'Kattesaadud',
+ 'Receipt' => 'Maksekviitung',
+ 'Receipts' => 'Sissetulek',
+ 'Record in' => 'Sihtkonto',
+ 'Recurring Transaction' => 'Korduvad Tehingud',
+ 'Reference' => 'Referenss',
+ 'Remaining' => 'Kasutamata',
+ 'Repeat' => 'Korrata',
+ 'Report for' => 'Aruanne',
+ 'Required by' => 'Tarneaeg',
+ 'SKU' => 'Asenduskaup',
+ 'Sales Invoice.' => 'Müügiarve.',
+ 'Sales Order' => 'Müügitellimus',
+ 'Salesperson' => 'Müügiesindaja',
+ 'Save Schedule' => 'Salvestada Ajakava',
+ 'Schedule' => 'Ajakava',
+ 'Scheduled' => 'Planeeritud',
+ 'Screen' => 'Ekraan',
+ 'Select a Printer!' => 'Vali Printer',
+ 'Select all' => 'Vali kõik',
+ 'Select from one of the names below' => 'Vali üks alltoodud nimedest',
+ 'Select from one of the projects below' => 'Vali üks alltoodud projektidest',
+ 'Select items' => 'Vali kaubaartikkel',
+ 'Select payment' => 'Vali makse',
+ 'Select postscript or PDF!' => 'Vali kas postscript või PDF',
+ 'Select txt, postscript or PDF!' => 'Valida .txt, postscript või PDF!',
+ 'Sep' => 'Sept',
+ 'September' => 'September',
+ 'Serial No.' => 'Seerianr.',
+ 'Service' => 'Teenus',
+ 'Ship' => 'Tarnimine',
+ 'Ship to' => 'Tarneaadress',
+ 'Ship via' => 'Tarneviis',
+ 'Shipping Address' => 'Tarneaadress',
+ 'Shipping Point' => 'Saadetise Sihtpunkt',
+ 'Source' => 'Allikas',
+ 'Standard' => 'Standard',
+ 'Startdate' => 'Algus Kuupäev',
+ 'State/Province' => 'Maakond',
+ 'Statement' => 'Aruanne',
+ 'Statement sent to' => 'Saata aruanne aadressil',
+ 'Statements sent to printer!' => 'Saata aruanne printerile',
+ 'Subject' => 'Pealkiri',
+ 'Subtotal' => 'Vahesumma',
+ 'Summary' => 'Kokkuvõtte',
+ 'Tax' => 'Maks',
+ 'Tax Included' => 'Koos maksuga',
+ 'Tax collected' => 'Kogutud maksud',
+ 'Tax paid' => 'Makstud maksud',
+ 'Text' => 'Tekst',
+ 'Till' => 'Müügipunkt',
+ 'To' => 'Kuni',
+ 'Total' => 'Kokku',
+ 'Trade Discount' => 'Kaubanduslik Mahahindlus',
+ 'Transaction' => 'Tehing',
+ 'Transaction deleted!' => 'Kanne kustutatud!',
+ 'Transaction posted!' => 'Kanne saadetud!',
+ 'Translation not on file!' => 'Tõlget pole andmebaasis olemas',
+ 'Trial Balance' => 'Proovibilanss',
+ 'Unit' => 'Ühik',
+ 'Update' => 'Uuendus',
+ 'Vendor' => 'Hankija',
+ 'Vendor Invoice.' => 'Tarnija Kaubaarve.',
+ 'Vendor Number' => 'Hankija number',
+ 'Vendor missing!' => 'Hankija puudub!',
+ 'Vendor not on file!' => 'Hankijat pole failis!',
+ 'Warning!' => 'Tähelepanu!',
+ 'Week(s)' => 'Nädal(at)',
+ 'What type of item is this?' => 'Mis tüüpi tootega on tegemist?',
+ 'Work Order' => 'Töökäsk',
+ 'Year' => 'Aasta',
+ 'Year(s)' => 'Aasta(t)',
+ 'Yes' => 'Jah',
+ 'You are posting an existing transaction!' => 'Postitad juba olemasolevat tehingut',
+ 'You are printing and posting an existing transaction!' => 'Trükida ja postitad juba olemasolevat tehingut',
+ 'You are printing and saving an existing order' => 'Trükid ja salvestad juba olemasolevat tellimust',
+ 'You are printing and saving an existing quotation' => 'Trükid ja salvestad juba olemasolevat pakkumust',
+ 'You are saving an existing order' => 'Salvestad juba olemasolevat tellimust',
+ 'You are saving an existing quotation' => 'Salvestad juba olemasolevat pakkumust',
+ 'Zip/Postal Code' => 'Postiindex',
+ 'as at' => 'seisuga',
+ 'ea' => 'tk',
+ 'for' => 'läheb',
+ 'for Period' => 'Periood',
+ 'posted!' => 'salvestatud!',
+ 'sent' => 'saadetud',
+ 'time(s)' => 'Kord(a)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'kohustuste_kanne' => 'ap_transaction',
+ 'nõuete_kanne' => 'ar_transaction',
+ 'edasi' => 'continue',
+ 'kustuta' => 'delete',
+ 'kustutata_ajakava' => 'delete_schedule',
+ 'e_mail' => 'e_mail',
+ 'salvesta' => 'post',
+ 'salvesta_uuena' => 'post_as_new',
+ 'trüki' => 'print',
+ 'trüki_ja_salvesta' => 'print_and_post',
+ 'trüki_ja_postita_uuena' => 'print_and_post_as_new',
+ 'müügiarve_' => 'sales_invoice_',
+ 'müügitellimus' => 'sales_order',
+ 'salvestada_ajakava' => 'save_schedule',
+ 'ajakava' => 'schedule',
+ 'vali_kõik' => 'select_all',
+ 'tarneaadress' => 'ship_to',
+ 'uuendus' => 'update',
+ 'tarnija_kaubaarve_' => 'vendor_invoice_',
+ 'jah' => 'yes',
+};
+
+1;
+
diff --git a/locale/ee/pw b/locale/ee/pw
new file mode 100755
index 00000000..c703c351
--- /dev/null
+++ b/locale/ee/pw
@@ -0,0 +1,15 @@
+$self{charset} = 'ISO-8859-15';
+
+$self{texts} = {
+ 'Continue' => 'Edasi',
+ 'Password' => 'Parool',
+ 'Session expired!' => 'Sessioon aegunud!',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'edasi' => 'continue',
+};
+
+1;
+
diff --git a/locale/ee/rc b/locale/ee/rc
new file mode 100755
index 00000000..619682d1
--- /dev/null
+++ b/locale/ee/rc
@@ -0,0 +1,81 @@
+$self{charset} = 'ISO-8859-15';
+
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Raamatupidamise Menüü',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprill',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Balance' => 'Bilanss',
+ 'Beginning Balance' => 'Algsaldo',
+ 'Cleared' => 'Laekunud',
+ 'Continue' => 'Edasi',
+ 'Credit' => 'Kreedit',
+ 'Current' => 'Käesolev',
+ 'Date' => 'Kuupäev',
+ 'Debit' => 'Deebet',
+ 'Dec' => 'Dets',
+ 'December' => 'Detsember',
+ 'Description' => 'Selgitus',
+ 'Detail' => 'Detail',
+ 'Difference' => 'Vahe',
+ 'Done' => 'Teostatud',
+ 'Feb' => 'Veebr',
+ 'February' => 'Veebruar',
+ 'From' => 'Alates',
+ 'Include Exchange Rate Difference' => 'Kaasa valuutavahetuskursside vahe',
+ 'Jan' => 'Jaan',
+ 'January' => 'Jaanuar',
+ 'Jul' => 'Juul',
+ 'July' => 'Juuli',
+ 'Jun' => 'Juun',
+ 'June' => 'Juuni',
+ 'Mar' => 'Mär',
+ 'March' => 'Märts',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Month' => 'Kuu',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktoober',
+ 'Out of balance!' => 'Bilanss ei klapi!',
+ 'Outstanding' => 'Tasumata nõued',
+ 'Period' => 'Periood',
+ 'Quarter' => 'Trimester',
+ 'R' => 'M',
+ 'Reconciliation' => 'Kooskõlastamine',
+ 'Reconciliation Report' => 'Kooskõlastamise Raport',
+ 'Select all' => 'Vali kõik',
+ 'Sep' => 'Sept',
+ 'September' => 'September',
+ 'Source' => 'Allikas',
+ 'Statement Balance' => 'Bilansiaruanne',
+ 'Summary' => 'Kokkuvõtte',
+ 'To' => 'Kuni',
+ 'Update' => 'Uuendus',
+ 'Year' => 'Aasta',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'edasi' => 'continue',
+ 'teostatud' => 'done',
+ 'vali_kõik' => 'select_all',
+ 'uuendus' => 'update',
+};
+
+1;
+
diff --git a/locale/ee/rp b/locale/ee/rp
new file mode 100755
index 00000000..5d68625d
--- /dev/null
+++ b/locale/ee/rp
@@ -0,0 +1,207 @@
+$self{charset} = 'ISO-8859-15';
+
+$self{texts} = {
+ 'AP Aging' => 'Võlad',
+ 'AR Aging' => 'Võlglased',
+ 'Account' => 'Konto',
+ 'Account Number' => 'Konto number',
+ 'Accounting Menu' => 'Raamatupidamise Menüü',
+ 'Accounts' => 'Kontod',
+ 'Accrual' => 'Kapitalisatsioon',
+ 'Address' => 'Aadress',
+ 'Aged' => 'Aegunud',
+ 'Aged Overdue' => 'Aegunud Võlgnevused',
+ 'All Accounts' => 'Koik kontod',
+ 'Amount' => 'Summa',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprill',
+ 'Attachment' => 'Kaasatud fail',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Balance' => 'Bilanss',
+ 'Balance Sheet' => 'Bilansitabel',
+ 'Bcc' => 'Bcc',
+ 'Cash' => 'Kassa',
+ 'Cc' => 'Cc',
+ 'Compare to' => 'Võrdlus perioodiga',
+ 'Continue' => 'Edasi',
+ 'Copies' => 'koopiat',
+ 'Credit' => 'Kreedit',
+ 'Curr' => 'Val.',
+ 'Current' => 'Käesolev',
+ 'Current Earnings' => 'Käesoleva aasta kasum (kahjum)',
+ 'Customer' => 'Klient',
+ 'Customer not on file!' => 'Klienti pole failis!',
+ 'Date' => 'Kuupäev',
+ 'Day(s)' => 'Päev(a)',
+ 'Debit' => 'Deebet',
+ 'Dec' => 'Dets',
+ 'December' => 'Detsember',
+ 'Decimalplaces' => 'Komakohad',
+ 'Delete Schedule' => 'Kustutata Ajakava',
+ 'Department' => 'Osakond',
+ 'Description' => 'Selgitus',
+ 'Detail' => 'Detail',
+ 'Due Date' => 'Maksetähtaeg',
+ 'E-mail' => 'E-mail',
+ 'E-mail Statement to' => 'E-mailiga teatamine',
+ 'E-mail address missing!' => 'E-maili aadress puudub',
+ 'E-mail message' => 'E-posti teade',
+ 'Every' => 'Iga',
+ 'Feb' => 'Veebr',
+ 'February' => 'Veebruar',
+ 'For' => 'Saata',
+ 'From' => 'Alates',
+ 'GIFI' => 'GIFI',
+ 'Heading' => 'Päis',
+ 'ID' => 'ID',
+ 'In-line' => 'Dokumendisisene',
+ 'Include Exchange Rate Difference' => 'Kaasa valuutavahetuskursside vahe',
+ 'Include Payment' => 'Lisa Makse',
+ 'Include in Report' => 'Kaasa aruandesse',
+ 'Income Statement' => 'Kasumiaruanne',
+ 'Invoice' => 'Arve',
+ 'Jan' => 'Jaan',
+ 'January' => 'Jaanuar',
+ 'Jul' => 'Juul',
+ 'July' => 'Juuli',
+ 'Jun' => 'Juun',
+ 'June' => 'Juuni',
+ 'Language' => 'Keel',
+ 'Mar' => 'Mär',
+ 'March' => 'Märts',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Memo',
+ 'Message' => 'Teade',
+ 'Method' => 'Meetod',
+ 'Month' => 'Kuu',
+ 'Month(s)' => 'Kuu(d)',
+ 'N/A' => 'Puudub',
+ 'Next Date' => 'Järgmine Kuupäev',
+ 'Non-taxable Purchases' => 'Maksuvaba ostud',
+ 'Non-taxable Sales' => 'Maksuvaba müük',
+ 'Nothing selected!' => 'Valik puudub!',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Kood',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktoober',
+ 'Order' => 'Tellimus',
+ 'Overdue' => 'Tähtaegunud',
+ 'PDF' => 'PDF',
+ 'Payments' => 'Maksed',
+ 'Period' => 'Periood',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Trüki',
+ 'Project' => 'Projekt',
+ 'Project Number' => 'Projekti number',
+ 'Project Transactions' => 'Projekti Kanded',
+ 'Project not on file!' => 'Projekti pole failis!',
+ 'Quarter' => 'Trimester',
+ 'Receipts' => 'Sissetulek',
+ 'Recurring Transaction' => 'Korduvad Tehingud',
+ 'Reference' => 'Referenss',
+ 'Repeat' => 'Korrata',
+ 'Report for' => 'Aruanne',
+ 'Salesperson' => 'Müügiesindaja',
+ 'Save Schedule' => 'Salvestada Ajakava',
+ 'Screen' => 'Ekraan',
+ 'Select all' => 'Vali kõik',
+ 'Select from one of the names below' => 'Vali üks alltoodud nimedest',
+ 'Select from one of the projects below' => 'Vali üks alltoodud projektidest',
+ 'Select postscript or PDF!' => 'Vali kas postscript või PDF',
+ 'Sep' => 'Sept',
+ 'September' => 'September',
+ 'Source' => 'Allikas',
+ 'Standard' => 'Standard',
+ 'Startdate' => 'Algus Kuupäev',
+ 'Statement' => 'Aruanne',
+ 'Statement sent to' => 'Saata aruanne aadressil',
+ 'Statements sent to printer!' => 'Saata aruanne printerile',
+ 'Subject' => 'Pealkiri',
+ 'Subtotal' => 'Vahesumma',
+ 'Summary' => 'Kokkuvõtte',
+ 'Tax' => 'Maks',
+ 'Tax collected' => 'Kogutud maksud',
+ 'Tax paid' => 'Makstud maksud',
+ 'Till' => 'Müügipunkt',
+ 'To' => 'Kuni',
+ 'Total' => 'Kokku',
+ 'Trial Balance' => 'Proovibilanss',
+ 'Vendor' => 'Hankija',
+ 'Vendor not on file!' => 'Hankijat pole failis!',
+ 'Warning!' => 'Tähelepanu!',
+ 'Week(s)' => 'Nädal(at)',
+ 'Year' => 'Aasta',
+ 'Year(s)' => 'Aasta(t)',
+ 'You are posting an existing transaction!' => 'Postitad juba olemasolevat tehingut',
+ 'You are printing and posting an existing transaction!' => 'Trükida ja postitad juba olemasolevat tehingut',
+ 'You are printing and saving an existing order' => 'Trükid ja salvestad juba olemasolevat tellimust',
+ 'You are printing and saving an existing quotation' => 'Trükid ja salvestad juba olemasolevat pakkumust',
+ 'You are saving an existing order' => 'Salvestad juba olemasolevat tellimust',
+ 'You are saving an existing quotation' => 'Salvestad juba olemasolevat pakkumust',
+ 'as at' => 'seisuga',
+ 'for' => 'läheb',
+ 'for Period' => 'Periood',
+ 'sent' => 'saadetud',
+ 'time(s)' => 'Kord(a)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'edasi' => 'continue',
+ 'kustutata_ajakava' => 'delete_schedule',
+ 'e_mail' => 'e_mail',
+ 'trüki' => 'print',
+ 'salvestada_ajakava' => 'save_schedule',
+ 'vali_kõik' => 'select_all',
+};
+
+1;
+
diff --git a/locale/ee_utf/COPYING b/locale/ee_utf/COPYING
new file mode 100755
index 00000000..3b3a8e72
--- /dev/null
+++ b/locale/ee_utf/COPYING
@@ -0,0 +1,23 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2006
+#
+# Estonian texts:
+#
+# Author: Andrei Kolu <andrei.kolu@mail.ee>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/ee_utf/LANGUAGE b/locale/ee_utf/LANGUAGE
new file mode 100755
index 00000000..822c67af
--- /dev/null
+++ b/locale/ee_utf/LANGUAGE
@@ -0,0 +1 @@
+Estonian (UTF-8)
diff --git a/locale/ee_utf/Num2text b/locale/ee_utf/Num2text
new file mode 100755
index 00000000..0dd9db0f
--- /dev/null
+++ b/locale/ee_utf/Num2text
@@ -0,0 +1,140 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (C) 2003
+#
+# Author: Dieter Simader
+# Email: dsimader@sql-ledger.org
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+# Contributors: Mario R. Pizzolanti <mario@zavood.ee>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#======================================================================
+#
+# written for check and receipt printing
+# it returns a properly formatted text string
+# for a number up to 10**9
+
+sub init {
+ my $self = shift;
+
+ %{ $self->{numbername} } =
+ (0 => 'null',
+ 1 => 'üks',
+ 2 => 'kaks',
+ 3 => 'kolm',
+ 4 => 'neli',
+ 5 => 'viis',
+ 6 => 'kuus',
+ 7 => 'seitse',
+ 8 => 'kaheksa',
+ 9 => 'üheksa',
+ 10 => 'kümme',
+ 10**2 => 'sada',
+ 10**3 => 'tuhat',
+ 10**6 => 'miljon',
+ 10**9 => 'miljard',
+ 10**12 => 'biljon'
+ );
+
+}
+
+
+sub num2text {
+ my ($self, $amount) = @_;
+
+ return $self->{numbername}{0} unless $amount;
+
+ my @textnumber = ();
+
+ # split amount into chunks of 3
+ my @num = reverse split //, abs($amount);
+ my @numblock = ();
+ my ($i, $appendit);
+ my @a = ();
+
+ while (@num) {
+ @a = ();
+ for (1 .. 3) {
+ push @a, shift @num;
+ }
+ push @numblock, join / /, reverse @a;
+ }
+
+ while (@numblock) {
+
+ $i = $#numblock;
+ $numblock[$i] *= 1;
+ @num = split //, $numblock[$i];
+
+ $appendit = "it";
+ $hundred = 0;
+
+ if ($numblock[$i] == 0) {
+ pop @numblock;
+ next;
+ }
+
+ if ($numblock[$i] > 99) {
+ # the one from hundreds
+ push @textnumber, "$self->{numbername}{$num[0]}$self->{numbername}{10**2}";
+ # reduce numblock
+ $numblock[$i] -= $num[0] * 100;
+ @num = split //, $numblock[$i];
+ $hundred = 1;
+ }
+
+ if ($numblock[$i] > 19) {
+ # 20 - 99
+ push @textnumber, "$self->{numbername}{$num[0]}kümmend";
+ @num = split //, $numblock[$i];
+ push @textnumber, $self->{numbername}{$num[1]} if $num[1] > 0;
+
+ } elsif ($numblock[$i] > 10) {
+ # 11 - 19
+ if ($hundred) {
+ @num = split //, $numblock[$i];
+ }
+ $num = $num[1];
+
+ push @textnumber, "$self->{numbername}{$num}teist";
+
+ } elsif ($numblock[$i] > 1) {
+ # ones
+ push @textnumber, $self->{numbername}{$numblock[$i]};
+
+ } elsif ($numblock[$i] == 1) {
+ push @textnumber, $self->{numbername}{$num[0]};
+ $appendit = "";
+
+ }
+
+ # add thousand, million
+ if ($i) {
+ $amount = 10**($i * 3);
+ $appendit = ($i == 1) ? "" : $appendit;
+ push @textnumber, "$self->{numbername}{$amount}$appendit";
+ }
+
+ pop @numblock;
+
+ }
+
+ join ' ', @textnumber;
+
+}
+
+
+1;
+
diff --git a/locale/ee_utf/aa b/locale/ee_utf/aa
new file mode 100755
index 00000000..338350eb
--- /dev/null
+++ b/locale/ee_utf/aa
@@ -0,0 +1,163 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Outstanding' => 'OR Kohustused',
+ 'AP Transaction' => 'OR Kanne',
+ 'AP Transactions' => 'OR Kanded',
+ 'AR Outstanding' => 'MR Nõuded',
+ 'AR Transaction' => 'MR Kanne',
+ 'AR Transactions' => 'MR Kanded',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Raamatupidamise Menüü',
+ 'Add AP Transaction' => 'Lisa OR Ãœlekanne',
+ 'Add AR Transaction' => 'Lisa MR Ãœlekanne',
+ 'Amount' => 'Summa',
+ 'Amount Due' => 'Võlaosa',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprill',
+ 'Are you sure you want to delete Transaction' => 'Kas oled kindel, et soovid kustutada kande',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Cannot delete transaction!' => 'Kannet ei saa kustutada!',
+ 'Cannot post payment for a closed period!' => 'Makset ei saa salvestada suletud perioodile!',
+ 'Cannot post transaction for a closed period!' => 'Kannet ei saa salvestada suletud perioodile!',
+ 'Cannot post transaction!' => 'Kannet ei saa salvestada!',
+ 'Check' => 'TÅ¡ekk',
+ 'Closed' => 'Suletud',
+ 'Confirm!' => 'Kinnita!',
+ 'Continue' => 'Edasi',
+ 'Credit' => 'Kreedit',
+ 'Credit Limit' => 'Krediidilimiit',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valuuta',
+ 'Current' => 'Käesolev',
+ 'Customer' => 'Klient',
+ 'Customer missing!' => 'Klienti pole määratud!',
+ 'Date' => 'Kuupäev',
+ 'Date Paid' => 'Maksekuupäev',
+ 'Debit' => 'Deebet',
+ 'Dec' => 'Dets',
+ 'December' => 'Detsember',
+ 'Delete' => 'Kustuta',
+ 'Department' => 'Osakond',
+ 'Description' => 'Selgitus',
+ 'Detail' => 'Detail',
+ 'Due Date' => 'Maksetähtaeg',
+ 'Due Date missing!' => 'Maksetähtaeg puudub!',
+ 'Edit AP Transaction' => 'Muuda OR Ãœlekanne',
+ 'Edit AR Transaction' => 'Muuda MR Ãœlekanne',
+ 'Employee' => 'Töötaja',
+ 'Exch' => 'Kurss',
+ 'Exchange Rate' => 'Valuutakurss',
+ 'Exchange rate for payment missing!' => 'Maksel ei ole valuutakurssi!',
+ 'Exchange rate missing!' => 'Valuutakurssi ei ole',
+ 'Feb' => 'Veebr',
+ 'February' => 'Veebruar',
+ 'From' => 'Alates',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Kaasa aruandesse',
+ 'Invoice' => 'Arve',
+ 'Invoice Date' => 'Arve kuupäev',
+ 'Invoice Date missing!' => 'Arve kuupäev puudub!',
+ 'Invoice Number' => 'Arve number',
+ 'Jan' => 'Jaan',
+ 'January' => 'Jaanuar',
+ 'Jul' => 'Juul',
+ 'July' => 'Juuli',
+ 'Jun' => 'Juun',
+ 'June' => 'Juuni',
+ 'Manager' => 'Juhataja',
+ 'Mar' => 'Mär',
+ 'March' => 'Märts',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Memo',
+ 'Month' => 'Kuu',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Märkused',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktoober',
+ 'Open' => 'Avatud',
+ 'Order' => 'Tellimus',
+ 'Order Number' => 'Tellimuse number',
+ 'PO Number' => 'Ostutellimuse Number',
+ 'Paid' => 'Makstud',
+ 'Payment date missing!' => 'Maksekuupäev puudub!',
+ 'Payments' => 'Maksed',
+ 'Period' => 'Periood',
+ 'Post' => 'Salvesta',
+ 'Post as new' => 'Salvesta uuena',
+ 'Print' => 'Trüki',
+ 'Print and Post' => 'Trüki ja Postita',
+ 'Print and Post as new' => 'Trüki ja Postita uuena',
+ 'Project' => 'Projekt',
+ 'Quarter' => 'Kvartal',
+ 'Receipt' => 'Maksekviitung',
+ 'Remaining' => 'Kasutamata',
+ 'Sales Invoice.' => 'Arve Number.',
+ 'Salesperson' => 'Müügiesindaja',
+ 'Schedule' => 'Ajakava',
+ 'Sep' => 'Sept',
+ 'September' => 'September',
+ 'Ship to' => 'Tarneaadress',
+ 'Ship via' => 'Tarneviis',
+ 'Shipping Point' => 'Saadetise sihtkoht',
+ 'Source' => 'Allikas',
+ 'Subtotal' => 'Vahesumma',
+ 'Summary' => 'Kokkuvõtte',
+ 'Tax' => 'Maksud',
+ 'Tax Included' => 'Koos maksuga',
+ 'Till' => 'Müügipunkt',
+ 'To' => 'Kuni',
+ 'Total' => 'Kokku',
+ 'Transaction' => 'Kanne',
+ 'Transaction deleted!' => 'Kanne kustutatud!',
+ 'Transaction posted!' => 'Kanne saadetud!',
+ 'Update' => 'Uuendus',
+ 'Vendor' => 'Hankija',
+ 'Vendor Invoice.' => 'Ostuarve',
+ 'Vendor missing!' => 'Tarnija puudub!',
+ 'Year' => 'Aasta',
+ 'Yes' => 'Jah',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'or_kanne' => 'ap_transaction',
+ 'mr_kanne' => 'ar_transaction',
+ 'edasi' => 'continue',
+ 'kustuta' => 'delete',
+ 'salvesta' => 'post',
+ 'salvesta_uuena' => 'post_as_new',
+ 'trüki' => 'print',
+ 'trüki_ja_postita' => 'print_and_post',
+ 'trüki_ja_postita_uuena' => 'print_and_post_as_new',
+ 'arve_number_' => 'sales_invoice_',
+ 'ajakava' => 'schedule',
+ 'tarneaadress' => 'ship_to',
+ 'uuendus' => 'update',
+ 'ostuarve' => 'vendor_invoice_',
+ 'jah' => 'yes',
+};
+
+1;
+
diff --git a/locale/ee_utf/admin b/locale/ee_utf/admin
new file mode 100755
index 00000000..45ad10e5
--- /dev/null
+++ b/locale/ee_utf/admin
@@ -0,0 +1,146 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Access Control' => 'Ligipääsukontroll',
+ 'Accounting' => 'Raamatupidamisarvestus',
+ 'Add User' => 'Lisa Kasutaja',
+ 'Address' => 'Aadress',
+ 'Administration' => 'Arvepidamine',
+ 'Administrator' => 'Arvepidaja',
+ 'All Datasets up to date!' => 'Kõik Andmehulgad on kaasaegsed!',
+ 'Cannot create Lock!' => 'Ei saa Lukustada!',
+ 'Change Admin Password' => 'Muuda Adminni Parool',
+ 'Change Password' => 'Muuda Parool',
+ 'Click on login name to edit!' => 'Redigeerimiseks kliki kasutajanimel',
+ 'Company' => 'Firma',
+ 'Confirm' => 'Kinnita',
+ 'Connect to' => 'Ãœhenda',
+ 'Continue' => 'Jätka',
+ 'Create Chart of Accounts' => 'Uus kontoplaan',
+ 'Create Dataset' => 'Uus Andmekogu',
+ 'DBA' => 'DBA',
+ 'DBI not installed!' => 'DBI on installeerimata',
+ 'Database' => 'Andmebaas',
+ 'Database Administration' => 'Andmebaasi administreerimine',
+ 'Database Driver not checked!' => 'Andmebaasi draiver valimata!',
+ 'Database User missing!' => 'Andmebaasi kasutaja puudub!',
+ 'Dataset' => 'Andmekogu',
+ 'Dataset missing!' => 'Andmekogu puudub!',
+ 'Dataset updated!' => 'Andmekogu uuendatud!',
+ 'Date Format' => 'Kuupäeva Formaat',
+ 'Delete' => 'Kustuta',
+ 'Delete Dataset' => 'Kustuta Andmekogu',
+ 'Directory' => 'Aadressiraamat',
+ 'Driver' => 'Ohjur',
+ 'Dropdown Limit' => 'Rippmenüü Piirang',
+ 'E-mail' => 'E-post',
+ 'Edit User' => 'Muuda Kasutaja',
+ 'Existing Datasets' => 'Olemasolevad Andmekogud',
+ 'Fax' => 'Faks',
+ 'Host' => 'Server',
+ 'Hostname missing!' => 'Serveri nimi puudu!',
+ 'Language' => 'Keel',
+ 'Lock System' => 'Lukusta Süsteem',
+ 'Lockfile created!' => 'Lukustusfail loodud!',
+ 'Lockfile removed!' => 'Lukustusfail eemaldatud!',
+ 'Login' => 'Logi sisse',
+ 'Login name missing!' => 'Kasutajanimi puudu!',
+ 'Logout' => 'Logi välja',
+ 'Manager' => 'Juhataja',
+ 'Menu Width' => 'Menüü Laius',
+ 'Multibyte Encoding' => 'Multibyte Encoding',
+ 'Name' => 'Nimi',
+ 'New Templates' => 'Uus Dokumendipõhi',
+ 'No Database Drivers available!' => 'Ãœhtegi Andmebaasiohjurit pole saadaval!',
+ 'No Dataset selected!' => 'Andmekogu valimata!',
+ 'Nothing to delete!' => 'Midagi pole kustutada!',
+ 'Number Format' => 'Numbri Formaat',
+ 'Oracle Database Administration' => 'Oracle Andmebaasi Administreerimine',
+ 'Password' => 'Parool',
+ 'Password changed!' => 'Parool muudetud!',
+ 'Passwords do not match!' => 'Paroolid ei klapi!',
+ 'Pg Database Administration' => 'Pg Andmebaasi administreerimine',
+ 'PgPP Database Administration' => 'PgPP Database Administration',
+ 'Phone' => 'Telefon',
+ 'Port' => 'Port',
+ 'Port missing!' => 'Port puudub!',
+ 'Printer' => 'Printer',
+ 'Save' => 'Salvesta',
+ 'Session Timeout' => 'Sessiooni aegumine',
+ 'Session expired!' => 'Sessioon aegunud!',
+ 'Setup Templates' => 'Dokumendipõhjade seadistamine',
+ 'Signature' => 'Allkiri',
+ 'Stylesheet' => 'Laaditabel',
+ 'Supervisor' => 'Ãœlevaataja',
+ 'Templates' => 'Dokumendipõhjad',
+ 'The following Datasets are not in use and can be deleted' => 'Järgnevad andmebaasid ei ole kasutusel ning võib kustutada',
+ 'The following Datasets need to be updated' => 'Järgmised andmebaasid vajavad uuendamist',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Olemasolevate allikate eelkontroll. Praeguses staadiumis ei toimu andmete lisamist ega kustutamist.',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Kasutaja gruppi lisamiseks redigeeri nime, muuda kasutajanimi ja salvesta. Luuakse samade parameetritega uus kasutaja',
+ 'Unlock System' => 'Avada Süsteem',
+ 'Update Dataset' => 'Värkenda Andmekogu',
+ 'Use Templates' => 'Kasuta Dokumendipõhju',
+ 'User' => 'Kasutaja',
+ 'User deleted!' => 'Kasutaja kustutatud!',
+ 'User saved!' => 'Kasutaja salvestatud!',
+ 'Version' => 'Versioon',
+ 'You are logged out' => 'Oled välja logitud',
+ 'does not exist' => 'ei eksisteeri',
+ 'is already a member!' => 'on juba kasutaja!',
+ 'localhost' => 'localhost',
+ 'locked!' => 'lukustatud!',
+ 'successfully created!' => 'loodud!',
+ 'successfully deleted!' => 'kustutatud!',
+ 'website' => 'kodulehekülg',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'lisa_kasutaja' => 'add_user',
+ 'muuda_adminni_parool' => 'change_admin_password',
+ 'muuda_parool' => 'change_password',
+ 'jätka' => 'continue',
+ 'uus_andmekogu' => 'create_dataset',
+ 'kustuta' => 'delete',
+ 'kustuta_andmekogu' => 'delete_dataset',
+ 'lukusta_süsteem' => 'lock_system',
+ 'logi_sisse' => 'login',
+ 'logi_välja' => 'logout',
+ 'oracle_andmebaasi_administreerimine' => 'oracle_database_administration',
+ 'pg_andmebaasi_administreerimine' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'salvesta' => 'save',
+ 'avada_süsteem' => 'unlock_system',
+ 'värkenda_andmekogu' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/ee_utf/all b/locale/ee_utf/all
new file mode 100755
index 00000000..cf246e3a
--- /dev/null
+++ b/locale/ee_utf/all
@@ -0,0 +1,928 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+$self{charset} = 'UTF-8';
+
+
+$self{texts} = {
+ 'A' => 'A',
+ 'AP' => 'OstuReskontro',
+ 'AP Aging' => 'OR Aegunud',
+ 'AP Outstanding' => 'OR Laekumata',
+ 'AP Transaction' => 'OR Tehing',
+ 'AP Transactions' => 'OR Tehingud',
+ 'AR' => 'MüügiReskontro',
+ 'AR Aging' => 'MR Aegunud',
+ 'AR Outstanding' => 'MR Laekumata',
+ 'AR Transaction' => 'MR Tehing',
+ 'AR Transactions' => 'MR Tehingud',
+ 'AR/AP' => 'MR/OR',
+ 'About' => 'Programmi Info',
+ 'Above' => 'Alla',
+ 'Access Control' => 'Ligipääsukontroll',
+ 'Access Denied!' => 'Ligipääs Keelatud!',
+ 'Account' => 'Konto',
+ 'Account Number' => 'Konto Number',
+ 'Account Number missing!' => 'Konto Number puudu',
+ 'Account Type' => 'Konto Tüüp',
+ 'Account Type missing!' => 'Konto Tüüp puudu!',
+ 'Account deleted!' => 'Konto on kustutatud!',
+ 'Account does not exist!' => 'Konto ei eksisteeri',
+ 'Account saved!' => 'Konto on salvestatud',
+ 'Accounting' => 'Raamatupidamisarvestus',
+ 'Accounting Menu' => 'Raamatupidamisarvestuse Menüü',
+ 'Accounts' => 'Kontod',
+ 'Accrual' => 'Kapitalisatsioon',
+ 'Activate Audit trail' => 'Aktiveeri Auditi jälgimine',
+ 'Activate Audit trails' => 'Aktiveeri Auditi jälgimine',
+ 'Active' => 'Aktiiv',
+ 'Add' => 'Lisa',
+ 'Add AP Transaction' => 'Lisa OR Tehing',
+ 'Add AR Transaction' => 'Lisa MR Tehing',
+ 'Add Account' => 'Lisa Konto',
+ 'Add Assembly' => 'Lisa Komplekt',
+ 'Add Business' => 'Lisa Ettevõte',
+ 'Add Cash Transfer Transaction' => 'Lisa Sularahamüügi Tehing',
+ 'Add Customer' => 'Lisa Klient',
+ 'Add Deduction' => 'Lisa Hinnaaland',
+ 'Add Department' => 'Lisa Osakond',
+ 'Add Employee' => 'Lisa Töötaja',
+ 'Add Exchange Rate' => 'Lisa Valuutakurss',
+ 'Add GIFI' => 'Lisa GIFI',
+ 'Add General Ledger Transaction' => 'Lisa Pearaamatu Tehing',
+ 'Add Group' => 'Lisa Grupp',
+ 'Add Job' => 'Lisa Ãœlesanne',
+ 'Add Labor/Overhead' => 'Lisa Tööjõud/Kulud',
+ 'Add Language' => 'Lisa Keel',
+ 'Add POS Invoice' => 'Lisa Müügipunkti Kaubaarve',
+ 'Add Part' => 'Lisa Detail',
+ 'Add Pricegroup' => 'Lisa Hinnagrupp',
+ 'Add Project' => 'Lisa Projekt',
+ 'Add Purchase Order' => 'Lisa Hanketellimus',
+ 'Add Quotation' => 'Lisa Koteering',
+ 'Add Request for Quotation' => 'Lisa Hinnapakkumuse Taotlus',
+ 'Add SIC' => 'Lisa Standardiseeritud Tööstuskood',
+ 'Add Sales Invoice' => 'Lisa Müügiarve',
+ 'Add Sales Order' => 'Lisa Müügitellimus',
+ 'Add Service' => 'Lisa Teenus',
+ 'Add Stores Card' => 'Lisa Tagavarade Kaart',
+ 'Add Time Card' => 'Lisa Ajakaart',
+ 'Add Transaction' => 'Lisa Kanne',
+ 'Add User' => 'Lisa Kasutaja',
+ 'Add Vendor' => 'Lisa Tarnija',
+ 'Add Vendor Invoice' => 'Lisa Ostuarve',
+ 'Add Warehouse' => 'Lisa Kaubaladu',
+ 'Address' => 'Aadress',
+ 'Administration' => 'Arvepidamine',
+ 'Administrator' => 'Arvepidaja',
+ 'After Deduction' => 'Pärast Mahaarvatist',
+ 'Aged' => 'Aegunud',
+ 'Aged Overdue' => 'Aegunud Võlgnevused',
+ 'All' => 'Kõik',
+ 'All Accounts' => 'Kõik Kontod',
+ 'All Datasets up to date!' => 'Kõik Andmehulgad on kaasaegsed!',
+ 'All Items' => 'Kõik Kaubaartiklid',
+ 'Allocated' => 'Reserveeritud',
+ 'Allowances' => 'Diskontod',
+ 'Amount' => 'Summa',
+ 'Amount Due' => 'Maksmisele kuuluv summa',
+ 'Amount missing!' => 'Summa puudub!',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprill',
+ 'Are you sure you want to delete Invoice Number' => 'Kas oled kindel, et soovid kustutada Kaubaarve Number',
+ 'Are you sure you want to delete Order Number' => 'Kas oled kindel, et soovid kustutada Tellimuse Number',
+ 'Are you sure you want to delete Quotation Number' => 'Kas oled kindel, et soovid Koteeringu Number',
+ 'Are you sure you want to delete Transaction' => 'Kas oled kindel, et soovid kustutada kande',
+ 'Are you sure you want to delete time card for' => 'Oled kindel, et soovid kustutada ajakardi',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Kas olete kindel, et soovite eemaldada märgitud väljad järjekorrast?',
+ 'As of' => 'nagu',
+ 'Assemblies' => 'Koosteosad',
+ 'Assemblies restocked!' => 'Koosteosade laovaru täiendatud!',
+ 'Assembly' => 'Komplekt',
+ 'Assembly stocked!' => 'Komplekt ladustatud',
+ 'Asset' => 'Vara',
+ 'Attachment' => 'Manus',
+ 'Audit Control' => 'Audiitorkontroll',
+ 'Audit trail disabled' => 'Auditi jälgimine välja lülitatud',
+ 'Audit trail enabled' => 'Auditi jälgimine sisse lülitatud',
+ 'Audit trail removed up to' => 'Auditi jäljed kustutatud kuni',
+ 'Audit trails disabled' => 'Auditi jälgimine välja lülitatud',
+ 'Audit trails enabled' => 'Auditi jälgimine sisse lülitatud',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Average Cost' => 'Keskmised Kulud',
+ 'Avg Cost' => 'Kesk. Kulud',
+ 'BIC' => 'BIC (S.W.I.F.T)',
+ 'BOM' => 'Materjaliarvestus',
+ 'Backup' => 'Varukoopia',
+ 'Backup sent to' => 'Varukoopia saadetud',
+ 'Balance' => 'Bilanss',
+ 'Balance Sheet' => 'Bilansiaruanne',
+ 'Based on' => 'Põhineb',
+ 'Batch Printing' => 'Mass. Väljatrükk',
+ 'Bcc' => 'Bcc',
+ 'Before Deduction' => 'Enne Hinnaalandust',
+ 'Beginning Balance' => 'Algsaldo',
+ 'Below' => 'All',
+ 'Billing Address' => 'Arve Esitamise Aadress',
+ 'Bin' => 'Pakendit',
+ 'Bin List' => 'Pakendi Saateleht',
+ 'Bin Lists' => 'Pakendi Saatelehed',
+ 'Books are open' => 'Žurnaalid on avatud',
+ 'Break' => 'Katkestus',
+ 'Business' => 'Ettevõte',
+ 'Business Number' => 'Ettevõtte Registrinumber',
+ 'Business deleted!' => 'Ettevõte kustutatud!',
+ 'Business saved!' => 'Ettevõte salvestatud',
+ 'C' => 'C',
+ 'COGS' => 'Müügikulud',
+ 'COGS account does not exist!' => 'Müügikulude kontot puudu!',
+ 'Cannot add stores card for a completed job!' => 'Ei saa lisada tagavarade kaarti juba lõpetatud tööülesandele!',
+ 'Cannot add time card for a completed job!' => 'Ei saa lisada ajakaarti juba lõpetatud tööülesandele!',
+ 'Cannot change stores card for a completed job!' => 'Ei saa muuta tagavarade kaarti juba lõpetatud tööülesandele!',
+ 'Cannot change time card for a completed job!' => 'Ei saa muuta ajakaarti juba lõpetatud tööülesandele!',
+ 'Cannot create Assembly' => 'Ei saa luua Komplekti',
+ 'Cannot create Labor' => 'Ei saa luua Tööjõudu',
+ 'Cannot create Lock!' => 'Ei saa Lukustada!',
+ 'Cannot create Part' => 'Ei saa luua Detaili',
+ 'Cannot create Service' => 'Ei saa luua Teenust',
+ 'Cannot delete account!' => 'Kontot ei saa kustutada!',
+ 'Cannot delete customer!' => 'Kienti ei saa kustutada!',
+ 'Cannot delete default account!' => 'Tähtaegunud võla kontot ei saa kustutada!',
+ 'Cannot delete invoice!' => 'Arvet ei saa kustutada',
+ 'Cannot delete item!' => 'Kaubaartiklit ei saa kustutada!',
+ 'Cannot delete order!' => 'Tellimust ei saa kustutada!',
+ 'Cannot delete quotation!' => 'Koteeringut ei saa kustutada!',
+ 'Cannot delete time card!' => 'Ei saa kustutada ajakaarti!',
+ 'Cannot delete transaction!' => 'Kannet ei saa kustutada!',
+ 'Cannot delete vendor!' => 'Tarnijat ei saa kustutada!',
+ 'Cannot post Payment!' => 'Makset ei saa salvestada!',
+ 'Cannot post Receipt!' => 'Sisetulekuarderit ei saa salvestada!',
+ 'Cannot post invoice for a closed period!' => 'Arvet ei saa salvestada suletud perioodile!',
+ 'Cannot post invoice!' => 'Arvet ei saa salvestada!',
+ 'Cannot post payment for a closed period!' => 'Makset ei saa salvestada suletud perioodile!',
+ 'Cannot post transaction for a closed period!' => 'Kannet ei saa salvestada suletud perioodile!',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => 'Ei saa postitada tehingut deebeti ja kreediti väljadega samal kontol!',
+ 'Cannot post transaction!' => 'Tehingut ei saa salvestada!',
+ 'Cannot remove files!' => 'Faile ei saa kustutada!',
+ 'Cannot save account!' => 'Kontot ei saa salvestada!',
+ 'Cannot save defaults!' => 'Ei saa salvestada tähtaegunud võlgu!',
+ 'Cannot save order!' => 'Tellimust ei saa salvestada!',
+ 'Cannot save preferences!' => 'Määranguid ei saa salvestada!',
+ 'Cannot save quotation!' => 'Koteeringut ei saa salvestada!',
+ 'Cannot save stores card for a closed period!' => 'Ei saa salvestada tagavarade kaarti juba suletud perioodil!',
+ 'Cannot save stores card!' => 'Ei saa salvestada tagavarade kaarti!',
+ 'Cannot save time card for a closed period!' => 'Ei saa salvestada ajakaarti juba suletud perioodil!',
+ 'Cannot save time card!' => 'Ajakaarti ei saa salvestada!',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Konto saab olla, kas Nõue, Kohustuse või Tulu/Kulu tüüpi',
+ 'Cannot set multiple options for' => 'Ei saa märgistada mitut valikut',
+ 'Cannot set multiple options for Item' => 'Ei saa märgistada mitut valikut Kaubaartiklile',
+ 'Cannot stock Assembly!' => 'Komplekti pole võimalik ladustada!',
+ 'Cannot stock assemblies!' => 'Ei saa ladustada koosteosi',
+ 'Cash' => 'Kassaseis',
+ 'Cc' => 'Cc',
+ 'Change' => 'Tagasi',
+ 'Change Admin Password' => 'Muuda Adminni Parool',
+ 'Change Password' => 'Muuda Parool',
+ 'Chargeable' => 'Maksustatav',
+ 'Chart of Accounts' => 'Kontoplaan',
+ 'Check' => 'Kontrolli',
+ 'Check Inventory' => 'Kontrolli Laoseisu',
+ 'City' => 'Linn',
+ 'Cleared' => 'Laekunud',
+ 'Click on login name to edit!' => 'Redigeerimiseks kliki kasutajanimel',
+ 'Clocked' => 'Kulunud aeg',
+ 'Close Books up to' => 'Sulge Žurnaalid kuni',
+ 'Closed' => 'Suletud',
+ 'Code' => 'Kood',
+ 'Code missing!' => 'Kood puudu!',
+ 'Company' => 'Firma',
+ 'Company Name' => 'Firma Nimi',
+ 'Compare to' => 'Võrdlus perioodiga',
+ 'Completed' => 'Lõpetatud',
+ 'Components' => 'Komponendid',
+ 'Confirm' => 'Kinnita',
+ 'Confirm!' => 'Kinnita!',
+ 'Connect to' => 'Ãœhenda',
+ 'Consolidate' => 'Koonda',
+ 'Consolidate Orders' => 'Tellimuste Koondamine',
+ 'Consolidate Purchase Orders' => 'Ostutellimuste Koondamine',
+ 'Consolidate Sales Orders' => 'Müügitellimuste Koondamine',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Jätka',
+ 'Contra' => 'Ammortisatsioon',
+ 'Copies' => 'Koopiat',
+ 'Copy to COA' => 'Kopeeri kontoplaani',
+ 'Cost' => 'Omahind',
+ 'Cost Center' => 'Kulukeskus',
+ 'Could not save pricelist!' => 'Hinnakirja salvestamine ebaõnnestus!',
+ 'Could not save!' => 'Ei saa salvestada!',
+ 'Could not transfer Inventory!' => 'Laoseisu ei saa ümber paigutada!',
+ 'Country' => 'Riik',
+ 'Create Chart of Accounts' => 'Uus kontoplaan',
+ 'Create Dataset' => 'Uus Andmekogu',
+ 'Credit' => 'Kreedit',
+ 'Credit Invoice' => 'Kreeditarve',
+ 'Credit Limit' => 'Krediidilimiit',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valuuta',
+ 'Current' => 'Jooksev',
+ 'Current Earnings' => 'Jooksev Kasum/Kahjum',
+ 'Customer' => 'Klient',
+ 'Customer History' => 'Kliendi Ajalugu',
+ 'Customer Number' => 'Kliendi Number',
+ 'Customer deleted!' => 'Klient on kustutatud!',
+ 'Customer missing!' => 'Klienti puudu!',
+ 'Customer not on file!' => 'Klient puudub failis!',
+ 'Customer saved!' => 'Klient salvestatud!',
+ 'Customers' => 'Kliendid',
+ 'DBA' => 'DBA',
+ 'DBI not installed!' => 'DBI on installeerimata',
+ 'DOB' => 'Sünniaeg',
+ 'Database' => 'Andmebaas',
+ 'Database Administration' => 'Andmebaasi administreerimine',
+ 'Database Driver not checked!' => 'Andmebaasi draiver valimata!',
+ 'Database Host' => 'Andmebaasiserver',
+ 'Database User missing!' => 'Andmebaasi kasutaja puudub!',
+ 'Dataset' => 'Andmekogu',
+ 'Dataset is newer than version!' => 'Andmekogu versioon, on uuem süsteemi omast!',
+ 'Dataset missing!' => 'Andmekogu puudub!',
+ 'Dataset updated!' => 'Andmekogu uuendatud!',
+ 'Date' => 'Kuupäev',
+ 'Date Format' => 'Kuupäeva Formaat',
+ 'Date Paid' => 'Maksekuupäev',
+ 'Date Received' => 'Kättesaamise kuupäev',
+ 'Date missing!' => 'Kuupäev puudub!',
+ 'Date received missing!' => 'Kattesaamise kuupäev puudub!',
+ 'Date worked' => 'Töötatud kuupäeval',
+ 'Day' => 'Päev',
+ 'Day(s)' => 'Päev(a)',
+ 'Days' => 'Päeva',
+ 'Debit' => 'Deebet',
+ 'Debit Invoice' => 'Deebitarve',
+ 'Dec' => 'Dets',
+ 'December' => 'Detsember',
+ 'Decimalplaces' => 'Komakohad',
+ 'Deduct after' => 'Hinnaaland pärast',
+ 'Deduction deleted!' => 'Hinnaaland kustutatud!',
+ 'Deduction saved!' => 'Hinnaaland salvestatud!',
+ 'Deductions' => 'Hinnaalandused',
+ 'Default Template' => 'Vaikimisi Dokumendipõhi',
+ 'Defaults' => 'Vaikeväärtused',
+ 'Defaults saved!' => 'Vaikeväärtused salvestatud!',
+ 'Delete' => 'Kustuta',
+ 'Delete Account' => 'Kustuta Lonto',
+ 'Delete Dataset' => 'Kustuta Andmekogu',
+ 'Delete Schedule' => 'Kustutata Ajakava',
+ 'Deleting a language will also delete the templates for the language' => 'Keele kustutamisele järgneb kõigi selle keele dokumendipõhjade kustutamine',
+ 'Delivery Date' => 'Tarnetähtaeg',
+ 'Department' => 'Osakond',
+ 'Department deleted!' => 'Osakond kustutatud!',
+ 'Department saved!' => 'Osakond salvestatud!',
+ 'Departments' => 'Osakonnad',
+ 'Deposit' => 'Deposiit',
+ 'Description' => 'Selgitus',
+ 'Description Translations' => 'Tõlgete Selgitus',
+ 'Description missing!' => 'Selgitus puudub!',
+ 'Detail' => 'Detail',
+ 'Difference' => 'Erinevus',
+ 'Directory' => 'Aadressiraamat',
+ 'Discount' => 'Diskonto',
+ 'Done' => 'Valmis',
+ 'Drawing' => 'Joonis',
+ 'Driver' => 'Ohjur',
+ 'Dropdown Limit' => 'Rippmenüü Piirang',
+ 'Due Date' => 'Maksetähtaeg',
+ 'Due Date missing!' => 'Maksetähtaeg puudub!',
+ 'E-mail' => 'E-post',
+ 'E-mail Statement to' => 'Saata E-postiga Kasumiaruanne aadressil',
+ 'E-mail address missing!' => 'E-posti aadress puudub',
+ 'E-mail message' => 'E-posti teade',
+ 'E-mailed' => 'E-postiga saadetud',
+ 'Edit' => 'Muudatused',
+ 'Edit AP Transaction' => 'Muuda OR Tehing',
+ 'Edit AR Transaction' => 'Muuda MR Tehing',
+ 'Edit Account' => 'Muuda Konto',
+ 'Edit Assembly' => 'Muuda Komplekti',
+ 'Edit Business' => 'Muuda Ettevõtte',
+ 'Edit Cash Transfer Transaction' => 'Muuda Raha Ãœlekande Tehing',
+ 'Edit Customer' => 'Muuda Klienti',
+ 'Edit Deduction' => 'Muuda Hinnaaland',
+ 'Edit Department' => 'Muuda Osakonna',
+ 'Edit Description Translations' => 'Muuda Tõlgete Selgitus',
+ 'Edit Employee' => 'Muuda Töötaja',
+ 'Edit GIFI' => 'Muuda GIFI',
+ 'Edit General Ledger Transaction' => 'Muuda Pearaamatu Tehing',
+ 'Edit Group' => 'Muuda Gruppi andmed',
+ 'Edit Job' => 'Redigeeri Tööülesanne',
+ 'Edit Labor/Overhead' => 'Muuda Tööjõukulu',
+ 'Edit Language' => 'Muuda Keel',
+ 'Edit POS Invoice' => 'Muuda Müügipunkti Müügiarve',
+ 'Edit Part' => 'Muuda Detail',
+ 'Edit Preferences for' => 'Muuda Määrangud: ',
+ 'Edit Pricegroup' => 'Muuda Hinnagrupp',
+ 'Edit Project' => 'Muuda Projekt',
+ 'Edit Purchase Order' => 'Muuda Ostutellimus',
+ 'Edit Quotation' => 'Muuda Koteering',
+ 'Edit Request for Quotation' => 'Muuda Koteeringu Taotlus',
+ 'Edit SIC' => 'Muuda SIC-Standardiseeritud Tööstuskood',
+ 'Edit Sales Invoice' => 'Muuda Müügiarve',
+ 'Edit Sales Order' => 'Muuda Müügitellimus',
+ 'Edit Service' => 'Muuda Teenus',
+ 'Edit Template' => 'Muuda Dokumendipõhi',
+ 'Edit Time Card' => 'Muuda Ajakaarti',
+ 'Edit User' => 'Muuda Kasutaja',
+ 'Edit Vendor' => 'Muuda Tarnija',
+ 'Edit Vendor Invoice' => 'Muuda Ostuarve',
+ 'Edit Warehouse' => 'Muuda Kaubaladu',
+ 'Employee' => 'Töötaja',
+ 'Employee Name' => 'Teenistuja Nimi',
+ 'Employee Number' => 'Teenistuja Number',
+ 'Employee deleted!' => 'Teenistuja kustutatud',
+ 'Employee pays' => 'Teenistuja töötasu',
+ 'Employee saved!' => 'Teenistuja salvestatud',
+ 'Employees' => 'Teenistujad',
+ 'Employer' => 'Tööandja',
+ 'Employer pays' => 'Tööandja töötasu',
+ 'Enddate' => 'Lõputähtaeg',
+ 'Ends' => 'Lõpeb',
+ 'Enforce transaction reversal for all dates' => 'Kohustuslik tehingute storneerimine kõikide kuupäevade ulatuses',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Sisesta kohalikud- ja välisvaluutad (kuni 3 tähemärki, koolonitega eraltatud, nt. CAD:USD:EUR)',
+ 'Equity' => 'Omandiõigus',
+ 'Every' => 'Iga',
+ 'Exch' => 'Kurss',
+ 'Exchange Rate' => 'Valuutakurss',
+ 'Exchange rate for payment missing!' => 'Maksel puudub valuutakurss!',
+ 'Exchange rate missing!' => 'Valuutakurss puudu!',
+ 'Exempt age <' => 'Vabastatud aeg <',
+ 'Existing Datasets' => 'Olemasolevad Andmekogud',
+ 'Expense' => 'Kulu',
+ 'Expense account does not exist!' => 'Kulude konto puudu!',
+ 'Expense/Asset' => 'Kulu/Vara',
+ 'Extended' => 'Summa',
+ 'FX' => 'Valuutavahetus',
+ 'Failed to save order!' => 'Viga tellimuse salvestamisel!',
+ 'Fax' => 'Faks',
+ 'Feb' => 'Veebr',
+ 'February' => 'Veebruar',
+ 'For' => 'Saata',
+ 'Foreign Exchange Gain' => 'Valuutavahetuse Kasum',
+ 'Foreign Exchange Loss' => 'Valuutavahetuse Kahjum',
+ 'Friday' => 'Reede',
+ 'From' => 'Alates',
+ 'From Warehouse' => 'Tuleb Kaubalaost',
+ 'GIFI' => 'GIFI',
+ 'GIFI deleted!' => 'GIFI kustutatud!',
+ 'GIFI missing!' => 'GIFI puudub!',
+ 'GIFI saved!' => 'GIFI salvestatud!',
+ 'GL' => 'Pearaamat',
+ 'GL Reference Number' => 'Pearaamatu Viitenumber',
+ 'GL Transaction' => 'Pearaamatu Kanne',
+ 'General Ledger' => 'Pearaamat',
+ 'Generate' => 'Genereeri',
+ 'Generate Orders' => 'Genereeri Tellimused',
+ 'Generate Purchase Orders' => 'Genereeri Ostutellimused',
+ 'Generate Purchase Orders from Sales Order' => 'Genereeri Ostutellimused Müügitellimustest',
+ 'Generate Sales Order' => 'Genereeri Müügitellimused',
+ 'Generate Sales Order from Purchase Orders' => 'Genereeri Müügitellimused Ostutellimustest',
+ 'Generate Sales Orders' => 'Genereeri Müügitellimused',
+ 'Goods & Services' => 'Tooted ja Teenused',
+ 'Group' => 'Grupeeri',
+ 'Group Items' => 'Grupeeri Kaubaartiklid',
+ 'Group Translations' => 'Grupeeri Tõlked',
+ 'Group deleted!' => 'Grupp kustutatud!',
+ 'Group missing!' => 'Grupp puudub!',
+ 'Group saved!' => 'Grupp salvestatud!',
+ 'Groups' => 'Grupid',
+ 'HR' => 'Personal',
+ 'HTML Templates' => 'HTML Dokumendipõhjad',
+ 'Heading' => 'Päis',
+ 'History' => 'Ajalugu',
+ 'Home Phone' => 'Kodune Telefon',
+ 'Host' => 'Server',
+ 'Hostname missing!' => 'Serveri nimi puudu!',
+ 'IBAN' => 'Pangaarve NR.',
+ 'ID' => 'ID',
+ 'Image' => 'Pilt',
+ 'In-line' => 'Dokumendisisene',
+ 'Inactive' => 'Vähenõutav',
+ 'Include Exchange Rate Difference' => 'Lisa Valuutavahetuskursside erinevus',
+ 'Include Payment' => 'Lisa Makse',
+ 'Include in Report' => 'Kaasa Aruandesse',
+ 'Include in drop-down menus' => 'Kaasa rippmenüüdesse',
+ 'Income' => 'Tulu',
+ 'Income Statement' => 'Kasumiaruanne',
+ 'Income account does not exist!' => 'Tulude konto puudu!',
+ 'Incorrect Dataset version!' => 'Vale Andmekogu versioon',
+ 'Individual Items' => 'Eraldiseisvad Kaubaartiklid',
+ 'Internal Notes' => 'Sisemärkused',
+ 'Inventory' => 'Laoseis',
+ 'Inventory account does not exist!' => 'Laoseisu konto puudu!',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Enne komplekti aegunuks märkimist peab laoseis null olema!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Enne toote aegunuks märkimist peab laoseis null olema!',
+ 'Inventory saved!' => 'Laoseis salvestatud!',
+ 'Inventory transferred!' => 'Laoseis üle kantud!',
+ 'Invoice' => 'Kaubaarve',
+ 'Invoice Date' => 'Kaubaarve Kuupäev',
+ 'Invoice Date missing!' => 'Kaubaarvel Kuupäev puudu!',
+ 'Invoice Number' => 'Kaubaarve Number',
+ 'Invoice Number missing!' => 'Kaubaarve Number puudu!',
+ 'Invoice deleted!' => 'Kaubaarve kustutatud!',
+ 'Invoices' => 'Kaubaarved',
+ 'Is this a summary account to record' => 'Kirje summaarne konto',
+ 'Item' => 'AR.',
+ 'Item already on pricelist!' => 'Kaubaartikkel on juba hinnakirjas!',
+ 'Item deleted!' => 'Kaubaartikkel kustutatud!',
+ 'Item not on file!' => 'Kaubaartikkel pole failis !',
+ 'Items' => 'Kaubaartiklid',
+ 'Jan' => 'Jaan',
+ 'January' => 'Jaanuar',
+ 'Job' => 'Tööülesanne',
+ 'Job Description' => 'Tööülesande Kirjeldus',
+ 'Job Name' => 'Tööülesande Nimetus',
+ 'Job Number' => 'Tööülesande Number',
+ 'Job Number missing!' => 'Tööülesande Number puudu!',
+ 'Job deleted!' => 'Tööülesanne kustutatud!',
+ 'Job saved!' => 'Tööülesanne salvestatud!',
+ 'Job/Project Number' => 'Töö/Projekti Number',
+ 'Jobs' => 'Tööülesanded',
+ 'Jul' => 'Juul',
+ 'July' => 'Juuli',
+ 'Jun' => 'Juun',
+ 'June' => 'Juuni',
+ 'LaTeX Templates' => 'LaTeX Dokumendipõhjad',
+ 'Labor Code' => 'Tööseadusandlus',
+ 'Labor Code missing!' => 'Tööseadusandluse Kood puudu!',
+ 'Labor/Overhead' => 'Tööjõud/Kulud',
+ 'Language' => 'Keel',
+ 'Language deleted!' => 'Keel kustutatud!',
+ 'Language saved!' => 'Keel salvestatud!',
+ 'Languages' => 'Keeled',
+ 'Languages not defined!' => 'Keeled pole defineeritud!',
+ 'Last Cost' => 'Viimane Maksumus',
+ 'Last Numbers & Default Accounts' => 'Viimased Numbrid ja Vaikimisi Kontod',
+ 'Lead' => 'Juhtimine',
+ 'Leadtime' => 'Tellimuse täitmisaeg',
+ 'Liability' => 'Võlg',
+ 'Licensed to' => 'Litsentsi omanik',
+ 'Line Total' => 'Rea Summa',
+ 'Link' => 'Seosed',
+ 'Link Accounts' => 'Seosta Kontod',
+ 'List' => 'Nimekiri',
+ 'List Accounts' => 'Kontode Nimekiri',
+ 'List Businesses' => 'Ettevõtete Nimekiri',
+ 'List Departments' => 'Osakondade Nimekiri',
+ 'List GIFI' => 'GIFI nimekiri',
+ 'List Languages' => 'Keelte Nimekiri',
+ 'List Price' => 'Hinnakirjahind',
+ 'List Projects' => 'Projektide Nimekiri',
+ 'List SIC' => 'SIC-Standardiseeritud Tööstuskoodide Nimekiri',
+ 'List Transactions' => 'Tehingute Nimekiri',
+ 'List Warehouses' => 'Kaubaladude Nimekiri',
+ 'Lock System' => 'Lukusta Süsteem',
+ 'Lockfile created!' => 'Lukustusfail loodud!',
+ 'Lockfile removed!' => 'Lukustusfail eemaldatud!',
+ 'Login' => 'Logi sisse',
+ 'Login name missing!' => 'Kasutajanimi puudu!',
+ 'Logout' => 'Logi välja',
+ 'Make' => 'Tootja',
+ 'Manager' => 'Juhataja',
+ 'Mar' => 'Mär',
+ 'March' => 'Märts',
+ 'Marked entries printed!' => 'Märgitud kanded välja trükitud!',
+ 'Markup' => 'Kate',
+ 'Maximum' => 'Maksimum',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Memo',
+ 'Menu Width' => 'Menüü Laius',
+ 'Message' => 'Sõnum',
+ 'Method' => 'Meetod',
+ 'Microfiche' => 'Mikrofišš',
+ 'Model' => 'Mudel',
+ 'Monday' => 'Esmaspäev',
+ 'Month' => 'Kuu',
+ 'Month(s)' => 'Kuu(d)',
+ 'Months' => 'Kuud',
+ 'Multibyte Encoding' => 'Multibyte Encoding',
+ 'N/A' => 'Puudub',
+ 'Name' => 'Nimi',
+ 'Name missing!' => 'Nimi puudu!',
+ 'New Templates' => 'Uus Dokumendipõhi',
+ 'New Window' => 'Uus Aken',
+ 'Next' => 'Järgmine',
+ 'Next Date' => 'Järgmine Kuupäev',
+ 'Next Number' => 'Järgmine Number',
+ 'No' => 'Ei',
+ 'No Database Drivers available!' => 'Ãœhtegi Andmebaasiohjurit pole saadaval!',
+ 'No Dataset selected!' => 'Andmekogu valimata!',
+ 'No Employees on file!' => 'Failis puuduvad Töötajad',
+ 'No History!' => 'Ajalugu Puudub!',
+ 'No Labor codes on file!' => 'Failis puuduvad Tööseadusandluse koodid',
+ 'No Parts on file!' => 'Failis puuduvad Detailid',
+ 'No Services on file!' => 'Failis puuduvad Teenused',
+ 'No email address for' => 'E-posti aadress puudu',
+ 'No open Jobs!' => 'Puuduvad alustatud Tööülesanded',
+ 'No open Projects!' => 'Puuduvad avatud Projektid!',
+ 'No.' => 'Nr.',
+ 'Non-chargeable' => 'Maksuvaba',
+ 'Non-taxable' => 'Maksuvaba',
+ 'Non-taxable Purchases' => 'Maksuvaba Ostud',
+ 'Non-taxable Sales' => 'Maksuvaba Müük',
+ 'Non-tracking Items' => 'Mitte jälgitavad Kaubaartiklid',
+ 'Notes' => 'Märkused',
+ 'Nothing entered!' => 'Midagi pole sisestatud!',
+ 'Nothing open!' => 'Midagi ei avane!',
+ 'Nothing selected!' => 'Valik puudub!',
+ 'Nothing to delete!' => 'Midagi pole kustutada!',
+ 'Nothing to print!' => 'Pole midagi trükkida!',
+ 'Nothing to transfer!' => 'Pole midagi ümber paigutada!',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Number',
+ 'Number Format' => 'Numbri Formaat',
+ 'Number missing in Row' => 'Antud real puudub Number',
+ 'O' => 'Avatud',
+ 'OH' => 'Ãœlekulud',
+ 'Obsolete' => 'Aegunud',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktoober',
+ 'On Hand' => 'Saadaval',
+ 'Onhand' => 'Käepärast',
+ 'Open' => 'Avatud',
+ 'Oracle Database Administration' => 'Oracle Andmebaasi Administreerimine',
+ 'Order' => 'Tellimus',
+ 'Order Date' => 'Tellimuse Kuupäev',
+ 'Order Date missing!' => 'Tellimuse Kuupäev puudub!',
+ 'Order Entry' => 'Tellimuse Sisestus',
+ 'Order Number' => 'Tellimuse Number',
+ 'Order Number missing!' => 'Tellimuse Number puudub',
+ 'Order deleted!' => 'Tellimus kustutatud!',
+ 'Order generation failed!' => 'Arve genereerimine ebaõnnestus!',
+ 'Order saved!' => 'Tellimus salvestatud!',
+ 'Orders generated!' => 'Arved genereeritud',
+ 'Orphaned' => 'Seosteta',
+ 'Out of balance transaction!' => 'Bilansiväline tehing!',
+ 'Out of balance!' => 'Bilanss ei klapi!',
+ 'Outstanding' => 'Laekumata',
+ 'Overdue' => 'Tähtaegunud',
+ 'PDF' => 'PDF',
+ 'PO' => 'Hanketellimus',
+ 'PO Number' => 'Ostutellimuse Number',
+ 'POS' => 'MüügiPunkt',
+ 'POS Invoice' => 'MP Kaubaarve',
+ 'Packing List' => 'Saateleht',
+ 'Packing List Date missing!' => 'Saatelehe Kuupäev puudu!',
+ 'Packing List Number missing!' => 'Saateelehe Number puudu!',
+ 'Packing Lists' => 'Saatelehed',
+ 'Paid' => 'Makstud',
+ 'Part' => 'Detail',
+ 'Part Number' => 'Detaili Number',
+ 'Partnumber' => 'Detailinumber',
+ 'Parts' => 'Detailid',
+ 'Parts Requirements' => 'Detailide Vajadus',
+ 'Password' => 'Parool',
+ 'Password changed!' => 'Parool muudetud!',
+ 'Password does not match!' => 'Vale parool!',
+ 'Passwords do not match!' => 'Paroolid ei klapi!',
+ 'Payables' => 'Kreditoorne võlgnevus',
+ 'Payment' => 'Makse',
+ 'Payment date missing!' => 'Maksekuupäev puudu!',
+ 'Payment posted!' => 'Makse saadetud!',
+ 'Payments' => 'Maksed',
+ 'Payments posted!' => 'Maksed postitatud!',
+ 'Payroll Deduction' => 'Palga Mahaarvatis',
+ 'Period' => 'Periood',
+ 'Pg Database Administration' => 'Pg Andmebaasi Administreerimine',
+ 'PgPP Database Administration' => 'PgPP Database Administration',
+ 'Phone' => 'Telefon',
+ 'Pick List' => 'Veose Saateleht',
+ 'Pick Lists' => 'Veose Saatelehed',
+ 'Port' => 'Port',
+ 'Port missing!' => 'Port puudub!',
+ 'Pos' => 'NR.',
+ 'Post' => 'Postita',
+ 'Post as new' => 'Postita uuena',
+ 'Posted!' => 'Postitatud!',
+ 'Posting' => 'Postitamine',
+ 'Posting failed!' => 'Postitamine ebaõnnestus',
+ 'Postscript' => 'Postscript',
+ 'Preferences' => 'Eelistused',
+ 'Preferences saved!' => 'Eelistused salvestatud!',
+ 'Prepayment' => 'Ettemaksmine',
+ 'Price' => 'Hind',
+ 'Pricegroup' => 'Hinnagrupp',
+ 'Pricegroup deleted!' => 'Hinnagrupp kustutatud!',
+ 'Pricegroup missing!' => 'Hinnagrupp puudu!',
+ 'Pricegroup saved!' => 'Hinnagrup salvestatud!',
+ 'Pricegroups' => 'Hinnagrupid',
+ 'Pricelist' => 'Hinnakiri',
+ 'Print' => 'Trüki',
+ 'Print and Post' => 'Trüki ja Postita',
+ 'Print and Post as new' => 'Trüki ja Postita uuena',
+ 'Print and Save' => 'Trüki ja Salvesta',
+ 'Print and Save as new' => 'Trüki ja Salvesta uuena',
+ 'Printed' => 'Trükitud',
+ 'Printer' => 'Printer',
+ 'Printing' => 'Trükib',
+ 'Printing ... ' => 'Trükib ...',
+ 'Process Transactions' => 'Viia läbi Tehing',
+ 'Production' => 'Tootmine',
+ 'Profit Center' => 'Kasumikeskus',
+ 'Project' => 'Projekt',
+ 'Project Description Translations' => 'Projekti Kirjelduse Selgitus',
+ 'Project Name' => 'Projekti Nimi',
+ 'Project Number' => 'Projekti Number',
+ 'Project Number missing!' => 'Projekti Number puudu!',
+ 'Project Transactions' => 'Projekti Kanded',
+ 'Project deleted!' => 'Projekt kustutatud!',
+ 'Project not on file!' => 'Projekti pole failis!',
+ 'Project saved!' => 'Projekt salvestatud!',
+ 'Project/Job Name' => 'Projekti/Tööülesande Nimi',
+ 'Project/Job Number' => 'Projekti/Tööülesande Number',
+ 'Projects' => 'Projektid',
+ 'Purchase Order' => 'Hanketellimus',
+ 'Purchase Order Number' => 'Hanketellimuse Number',
+ 'Purchase Orders' => 'Hanketellimused',
+ 'Qty' => 'Kogus',
+ 'Quantity exceeds available units to stock!' => 'Kogus ületab laos olevad ühikud!',
+ 'Quarter' => 'Kvartal',
+ 'Queue' => 'Järjekord',
+ 'Queued' => 'Järjekorras',
+ 'Quotation' => 'Koteering',
+ 'Quotation ' => 'Koteering',
+ 'Quotation Date' => 'Koteeringu kuupäev',
+ 'Quotation Date missing!' => 'Koteeringu Kuupäev puudu!',
+ 'Quotation Number' => 'Koteeringu Number',
+ 'Quotation Number missing!' => 'Koteeringu Number puudub!',
+ 'Quotation deleted!' => 'Koteering kustutatud!',
+ 'Quotations' => 'Koteeringud',
+ 'R' => 'M',
+ 'RFQ' => 'Hinnapakkumuse Taotlus',
+ 'RFQ ' => 'Hinnapakkumuse Taotlus',
+ 'RFQ Number' => 'Hinnapakkumuse Taotluse NR.',
+ 'RFQs' => 'Hinnapakkumuse Taotlused',
+ 'ROP' => 'Pakendis tk.',
+ 'Rate' => 'Tariif',
+ 'Rate missing!' => 'Tariif puudu!',
+ 'Recd' => 'Kätte saadud',
+ 'Receipt' => 'Kviitung',
+ 'Receipt posted!' => 'Kviitung postitatud',
+ 'Receipts' => 'Laekumid',
+ 'Receivables' => 'Debitoorne võlgnevus',
+ 'Receive' => 'Vastuvõtt',
+ 'Receive Merchandise' => 'Kauba Vastuvõtt',
+ 'Reconciliation' => 'Kooskõlastamine',
+ 'Reconciliation Report' => 'Kooskõlastamise Raport',
+ 'Record in' => 'Sihtkonto',
+ 'Recurring Transaction' => 'Korduvad Tehingud',
+ 'Recurring Transactions' => 'Korduvad Tehingud',
+ 'Reference' => 'Teatis',
+ 'Remaining' => 'Jääk',
+ 'Remove' => 'Eemalda',
+ 'Remove Audit trail up to' => 'Eemaldada Auditi jäljed kuni',
+ 'Remove Audit trails up to' => 'Kustuta Auditi jäljed kuni',
+ 'Removed spoolfiles!' => 'Trükijärjekorra failid eemaldatud!',
+ 'Removing marked entries from queue ...' => 'Eemaldan märgitud kanded järjekorrast...',
+ 'Repeat' => 'Korrata',
+ 'Report for' => 'Aruanne',
+ 'Reports' => 'Aruanded',
+ 'Req' => 'Vajalik',
+ 'Request for Quotation' => 'Hinnapakkumuse Taotlus',
+ 'Request for Quotations' => 'Hinnapakkumuse Taotlused',
+ 'Required by' => 'Tarnetähtaeg',
+ 'Requirements' => 'Nõudmised',
+ 'Retained Earnings' => 'Jaotamata Kasum',
+ 'Role' => 'Roll',
+ 'S' => 'Laupäev/Pühapäev',
+ 'SIC' => 'Standardiseeritud Tööstuskood',
+ 'SIC deleted!' => 'Standardiseeritud Tööstuskood Kustutatud!',
+ 'SIC saved!' => 'Standardiseeritud Tööstuskood Salvestatud!',
+ 'SKU' => 'Asenduskaup',
+ 'SO' => 'Müügitellimus',
+ 'SSN' => 'Isikukood',
+ 'Sale' => 'Müük',
+ 'Sales' => 'Müük',
+ 'Sales Invoice' => 'Müügiarve',
+ 'Sales Invoice ' => 'Müügiarve',
+ 'Sales Invoice.' => 'Müügiarve.',
+ 'Sales Invoice/AR Transaction Number' => 'Müügiarve/MR Tehingu Number',
+ 'Sales Invoices' => 'Müügiarved',
+ 'Sales Order' => 'Müügitellimus',
+ 'Sales Order Number' => 'Müügiarve Number',
+ 'Sales Orders' => 'Müügitellimused',
+ 'Sales Quotation Number' => 'Müügipakkumuse Number',
+ 'Salesperson' => 'Müüja',
+ 'Saturday' => 'Laupäev',
+ 'Save' => 'Salvesta',
+ 'Save Pricelist' => 'Salvesta Hinnakiri',
+ 'Save Schedule' => 'Salvestada Ajakava',
+ 'Save as new' => 'Salvesta uuena',
+ 'Save to File' => 'Salvesta Faili',
+ 'Saving' => 'Salvestab',
+ 'Schedule' => 'Ajakava',
+ 'Scheduled' => 'Planeeritud',
+ 'Screen' => 'Ekraan',
+ 'Search' => 'Otsi',
+ 'Select' => 'Vali',
+ 'Select Customer' => 'Vali Klient',
+ 'Select Vendor' => 'Vali Tarnija',
+ 'Select a Printer!' => 'Vali Printer',
+ 'Select a printer!' => 'Vali printer!',
+ 'Select all' => 'Vali kõik',
+ 'Select from one of the names below' => 'Vali üks alltoodud nimedest',
+ 'Select from one of the projects below' => 'Vali üks alltoodud projektidest',
+ 'Select items' => 'Vali kaubaartikkel',
+ 'Select payment' => 'Vali makse',
+ 'Select postscript or PDF!' => 'Vali kas postscript või PDF',
+ 'Select txt, postscript or PDF!' => 'Valida .txt, postscript või PDF!',
+ 'Sell' => 'Müüma',
+ 'Sell Price' => 'Müügihind',
+ 'Send by E-Mail' => 'Saada E-postiga',
+ 'Sending' => 'Saadab',
+ 'Sep' => 'Sept',
+ 'September' => 'September',
+ 'Serial No.' => 'Seerianr.',
+ 'Serial Number' => 'Seerianumber',
+ 'Service' => 'Teenus',
+ 'Service Code' => 'Teenuse Kood',
+ 'Service Code missing!' => 'Teenuse Kood puudu!',
+ 'Service/Labor Code' => 'Teenuse/Töö Kood',
+ 'Services' => 'Teenused',
+ 'Session Timeout' => 'Sessiooni aegumine',
+ 'Session expired!' => 'Sessioon aegunud!',
+ 'Setup Templates' => 'Dokumendipõhjade seadistamine',
+ 'Ship' => 'Saatmine',
+ 'Ship Merchandise' => 'Kauba Saatmine',
+ 'Ship to' => 'Kaubasaaja',
+ 'Ship via' => 'Tarneviis',
+ 'Shipping' => 'Saadetised',
+ 'Shipping Address' => 'Tarneaadress',
+ 'Shipping Date' => 'Saatmise Kuupäev',
+ 'Shipping Date missing!' => 'Saatmise Kuupäev puudub',
+ 'Shipping Point' => 'Saadetise Sihtpunkt',
+ 'Short' => 'Puudu',
+ 'Signature' => 'Allkiri',
+ 'Source' => 'Allikas',
+ 'Spoolfile' => 'Trükijärjekorra fail',
+ 'Standard' => 'Standard',
+ 'Standard Industrial Codes' => 'Standardiseeritud Tööstuskood',
+ 'Startdate' => 'Alguskuupäev',
+ 'State' => 'Riik',
+ 'State/Province' => 'Riik/Maakond',
+ 'Statement' => 'Aruanne',
+ 'Statement Balance' => 'Bilansiaruanne',
+ 'Statement sent to' => 'Aruanne saadetud',
+ 'Statements sent to printer!' => 'Aruanded saadetud printerile',
+ 'Stock' => 'Kaubavaru',
+ 'Stock Assembly' => 'Komplekti Ladustamine',
+ 'Stock Finished Goods' => 'Ladusta Valmistoodang',
+ 'Stores Card' => 'Tagavarade Kaart',
+ 'Stores Card saved!' => 'Tagavarade Kaart salvestatud!',
+ 'Stores Cards' => 'Tagavarade Kaardid',
+ 'Stylesheet' => 'Laaditabel',
+ 'Sub-contract GIFI' => 'Allhanke GIFI',
+ 'Subject' => 'Pealkiri',
+ 'Subtotal' => 'Vahekokkuvõte',
+ 'Summary' => 'Kokkuvõte',
+ 'Sunday' => 'Pühapäev',
+ 'Supervisor' => 'Ãœlevaataja',
+ 'System' => 'Süsteem',
+ 'System Defaults' => 'Süsteemi Vaikeväärtused',
+ 'Tax' => 'Maks',
+ 'Tax Account' => 'Maksukonto',
+ 'Tax Accounts' => 'Maksukontod',
+ 'Tax Included' => 'Sisaldab Käibemaksu',
+ 'Tax Number' => 'Maks Nnumber ',
+ 'Tax Number / SSN' => 'Maksu Number / Isikukood',
+ 'Tax collected' => 'Kogutud maksud',
+ 'Tax paid' => 'Makstud maksud',
+ 'Taxable' => 'Maksustatav',
+ 'Template saved!' => 'Dokumendipõhjad salvestatud!',
+ 'Templates' => 'Dokumendipõhjad',
+ 'Terms' => 'Tingimused',
+ 'Text' => 'Tekst',
+ 'Text Templates' => 'Tekstipõhised Dokumendipõhjad',
+ 'The following Datasets are not in use and can be deleted' => 'Järgnevad andmebaasid ei ole kasutusel ning võib kustutada',
+ 'The following Datasets need to be updated' => 'Järgmised andmebaasid vajavad uuendamist',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Olemasolevate allikate eelkontroll. Praeguses staadiumis ei toimu andmete lisamist ega kustutamist.',
+ 'Thursday' => 'Neljapäev',
+ 'Till' => 'Rahalaegas',
+ 'Time' => 'Aeg',
+ 'Time Card' => 'Aja Kaart',
+ 'Time Card deleted!' => 'Ajakaart kustutatud!',
+ 'Time Card saved!' => 'Ajakaart salvestatud!',
+ 'Time Cards' => 'Aja Kaardid',
+ 'Time In' => 'Aeg sisse',
+ 'Time Out' => 'Aeg välja',
+ 'Times' => 'Korda',
+ 'To' => 'Kuni',
+ 'To Warehouse' => 'Kaubalattu',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Kasutaja gruppi lisamiseks redigeeri nime, muuda kasutajanimi ja salvesta. Luuakse samade parameetritega uus kasutaja',
+ 'Top Level' => 'Kõrgtase',
+ 'Total' => 'Kokku',
+ 'Tracking Items' => 'Jälgitavad Kaubaartikleid',
+ 'Trade Discount' => 'Kaubanduslik Mahahindlus',
+ 'Transaction' => 'Tehing',
+ 'Transaction Date missing!' => 'Tehingu Kuupäev puudu!',
+ 'Transaction Dates' => 'Tehingte Kuupäevad',
+ 'Transaction deleted!' => 'Tehing kustutatud!',
+ 'Transaction posted!' => 'Tehing saadetud!',
+ 'Transaction reversal enforced for all dates' => 'Tehingute storneerimine on kohustuslik kõikide kuupäevade ulatuses',
+ 'Transaction reversal enforced up to' => 'Tehingute storneerimine on kohustuslik kuni',
+ 'Transactions' => 'Tehingud',
+ 'Transfer' => 'Tsessioon',
+ 'Transfer Inventory' => 'Laoliikumine',
+ 'Transfer from' => 'Liikumine laost',
+ 'Transfer to' => 'Liikumine lattu',
+ 'Translation' => 'Tõlge',
+ 'Translation deleted!' => 'Tõlge kustutatud',
+ 'Translation not on file!' => 'Tõlget puudub failis!',
+ 'Translations' => 'Tõlked',
+ 'Translations saved!' => 'Tõlked salvestatud',
+ 'Trial Balance' => 'Proovibilanss',
+ 'Tuesday' => 'Teisipäev',
+ 'Type of Business' => 'Ettevõtte tüüp',
+ 'Unit' => 'Ãœhik',
+ 'Unit Rate' => 'Ãœhiku Tase',
+ 'Unit of measure' => 'Mõõtühik',
+ 'Unlock System' => 'Avada Süsteem',
+ 'Update' => 'Värskenda',
+ 'Update Dataset' => 'Värkenda Andmekogu',
+ 'Updated' => 'Värskendatud',
+ 'Upgrading to Version' => 'Täiustamine Versioonini',
+ 'Use Templates' => 'Kasuta Dokumendipõhju',
+ 'User' => 'Kasutaja',
+ 'User deleted!' => 'Kasutaja kustutatud!',
+ 'User saved!' => 'Kasutaja salvestatud!',
+ 'Valid until' => 'Kehtiv kuni',
+ 'Vendor' => 'Tarnija',
+ 'Vendor History' => 'Tarnija Ajalugu',
+ 'Vendor Invoice' => 'Tarnija Kaubaarve',
+ 'Vendor Invoice ' => 'Tarnija Kaubaarve ',
+ 'Vendor Invoice.' => 'Tarnija Kaubaarve.',
+ 'Vendor Invoice/AP Transaction Number' => 'Tarnija Kaubaarve/OR Number',
+ 'Vendor Invoices' => 'Tarnija Kaubaarved',
+ 'Vendor Number' => 'Tarnija Number',
+ 'Vendor deleted!' => 'Tarnija kustutatud!',
+ 'Vendor missing!' => 'Tarnija puudu!',
+ 'Vendor not on file!' => 'Tarnija pole failis!',
+ 'Vendor saved!' => 'Tarnija salvestatud!',
+ 'Vendors' => 'Tarnijad',
+ 'Version' => 'Versioon',
+ 'Warehouse' => 'Kaubaladu',
+ 'Warehouse deleted!' => 'Kaubaladu kustutatud!',
+ 'Warehouse saved!' => 'Kaubaladu salvestatud!',
+ 'Warehouses' => 'Kaubalaod',
+ 'Warning!' => 'Tähelepanu!',
+ 'Wednesday' => 'Kolmapäev',
+ 'Week' => 'Nädal',
+ 'Week(s)' => 'Nädal(at)',
+ 'Weeks' => 'Nädalat',
+ 'Weight' => 'Kaal',
+ 'Weight Unit' => 'Kaaluühik',
+ 'What type of item is this?' => 'Mis tüüpi kaubaartikliga on tegemist?',
+ 'Work Order' => 'Töökäsk',
+ 'Work Orders' => 'Töökäsud',
+ 'Work Phone' => 'Töötelefon',
+ 'Year' => 'Aasta',
+ 'Year(s)' => 'Aasta(t)',
+ 'Yearend' => 'Aastalõpp',
+ 'Yearend date missing!' => 'Aastalõpu kuupäev puudub!',
+ 'Yearend posted!' => 'Aastalõpp postitatud!',
+ 'Yearend posting failed!' => 'Aastalõpu postitus ebaõnnestus!',
+ 'Years' => 'Aastat',
+ 'Yes' => 'Jah',
+ 'You are logged out' => 'Oled välja logitud',
+ 'You are posting an existing transaction!' => 'Postitad juba olemasolevat tehingut',
+ 'You are printing and posting an existing transaction!' => 'Trükida ja postitad juba olemasolevat tehingut',
+ 'You are printing and saving an existing order' => 'Trükid ja salvestad juba olemasolevat tellimust',
+ 'You are printing and saving an existing quotation' => 'Trükid ja salvestad juba olemasolevat pakkumust',
+ 'You are printing and saving an existing transaction!' => 'Trükid ja salvestad juba olemasolevat tehingut!',
+ 'You are saving an existing order' => 'Salvestad juba olemasolevat tellimust',
+ 'You are saving an existing quotation' => 'Salvestad juba olemasolevat pakkumust',
+ 'You are saving an existing transaction!' => 'Salvestad juba olemasolevat tehingut"',
+ 'You did not enter a name!' => 'Jätsid nime sisestamata!',
+ 'Zip/Postal Code' => 'Postiindex',
+ 'account cannot be set to any other type of account' => 'konto tüüpi ei saa muuta teiseks kontotüübiks',
+ 'as at' => 'seisuga',
+ 'days' => 'päeva',
+ 'does not exist' => 'ei eksisteeri',
+ 'done' => 'tehtud',
+ 'ea' => 'tk',
+ 'failed' => 'nurjus',
+ 'for' => 'läheb',
+ 'for Period' => 'Periood',
+ 'is already a member!' => 'on juba kasutaja!',
+ 'localhost' => 'localhost',
+ 'locked!' => 'lukustatud!',
+ 'posted!' => 'salvestatud!',
+ 'sent' => 'saadetud',
+ 'successfully created!' => 'loodud!',
+ 'successfully deleted!' => 'kustutatud!',
+ 'time(s)' => 'Kord(a)',
+ 'unexpected error!' => 'ootamatu viga!',
+ 'website' => 'kodulehekülg',
+};
+
+1;
diff --git a/locale/ee_utf/am b/locale/ee_utf/am
new file mode 100755
index 00000000..d2528973
--- /dev/null
+++ b/locale/ee_utf/am
@@ -0,0 +1,317 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP' => 'Ostureskontro',
+ 'AR' => 'Müügireskontro',
+ 'About' => 'Programmi Info',
+ 'Account' => 'Konto',
+ 'Account Number' => 'Konto Number',
+ 'Account Number missing!' => 'Konto Number puudu!',
+ 'Account Type' => 'Konto Tüüp',
+ 'Account Type missing!' => 'Konto Tüüp puudu!',
+ 'Account deleted!' => 'Konto kustutatud!',
+ 'Account does not exist!' => 'Kontot ei eksisteeri!',
+ 'Account saved!' => 'Konto salvestatud!',
+ 'Accounting Menu' => 'Raamatupidamise Menüü',
+ 'Accrual' => 'Laekumine',
+ 'Activate Audit trail' => 'Aktiveeri Auditi jälgimine',
+ 'Add Account' => 'Lisa Konto',
+ 'Add Business' => 'Lisa Ettevõtte',
+ 'Add Department' => 'Lisa Osakond',
+ 'Add GIFI' => 'Lisa GIFI',
+ 'Add Language' => 'Lisa Keel',
+ 'Add SIC' => 'Lisa Standardiseeritud Tööstuskood',
+ 'Add Warehouse' => 'Lisa Ladu',
+ 'Address' => 'Aadress',
+ 'Amount' => 'Summa',
+ 'Asset' => 'Vara',
+ 'Audit Control' => 'Audit',
+ 'Audit trail disabled' => 'Auditi jälgimine välja lülitatud',
+ 'Audit trail enabled' => 'Auditi jälgimine sisse lülitatud',
+ 'Audit trail removed up to' => 'Auditi jäljed kustutatud kuni',
+ 'Backup sent to' => 'Varukoopia saadetakse',
+ 'Bin List' => 'Kasti Sisu',
+ 'Books are open' => 'Kanded on avatud',
+ 'Business Number' => 'Ettevõtte Number',
+ 'Business deleted!' => 'Ettevõte kustutatud',
+ 'Business saved!' => 'Ettevõte salvestatud!',
+ 'COGS' => 'COGS',
+ 'Cannot delete account!' => 'Kontot ei saa kustutada!',
+ 'Cannot delete default account!' => 'Vaikimisi kontot ei saa kustutada!',
+ 'Cannot save account!' => 'Kontot ei saa salvestada!',
+ 'Cannot save defaults!' => 'Ei salvestata vaikimisi määranguid!',
+ 'Cannot save preferences!' => 'Määranguid ei salvestata!',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Konto saab olla, kas MR, OR või Tulu/Kulu tüüpi',
+ 'Cannot set multiple options for' => 'Ei saa märgistada mitut valikut',
+ 'Cash' => 'Kassa',
+ 'Chart of Accounts' => 'Kontoplaan',
+ 'Close Books up to' => 'Sulge kanded kuni',
+ 'Code' => 'Kood',
+ 'Code missing!' => 'Kood puudu!',
+ 'Company' => 'Ettevõte',
+ 'Confirm' => 'Kinnita',
+ 'Confirm!' => 'Kinnita!',
+ 'Continue' => 'Edasi',
+ 'Contra' => 'Amortisatsioon',
+ 'Copy to COA' => 'Kopeeri kontoplaani',
+ 'Cost Center' => 'Kulukeskus',
+ 'Credit' => 'Kreedit',
+ 'Credit Invoice' => 'Kreeditarve',
+ 'Customer Number' => 'Kliendi Number',
+ 'Database Host' => 'Andmebaasiserver',
+ 'Dataset' => 'Andmekogu',
+ 'Date Format' => 'Kuupäeva Formaat',
+ 'Day' => 'Päev',
+ 'Days' => 'Päevi',
+ 'Debit' => 'Deebet',
+ 'Debit Invoice' => 'Deebitarve',
+ 'Default Template' => 'Vaikimisi Dokumendipõhi',
+ 'Defaults saved!' => 'Vaikväärtused salvestatud',
+ 'Delete' => 'Kustuta',
+ 'Delete Account' => 'Kustuta Konto',
+ 'Deleting a language will also delete the templates for the language' => 'Keele kustutamisele järgneb kõigi selle keele dokumendipõhjade kustutamine',
+ 'Department deleted!' => 'Osakond kustutatud!',
+ 'Department saved!' => 'Osakond salvestatud!',
+ 'Departments' => 'Osakonnad',
+ 'Description' => 'Selgitus',
+ 'Description missing!' => 'Selgitus puudu!',
+ 'Discount' => 'Allahindlus',
+ 'Dropdown Limit' => 'Rippmenüü Piirang',
+ 'E-mail' => 'E-post',
+ 'E-mail address missing!' => 'E-posti aadress puudu',
+ 'Edit' => 'Muuda',
+ 'Edit Account' => 'Muuda Konto',
+ 'Edit Business' => 'Muuda Ettevõtte',
+ 'Edit Department' => 'Muuda Osakond',
+ 'Edit GIFI' => 'Muuda GIFI',
+ 'Edit Language' => 'Muuda Keel',
+ 'Edit Preferences for' => 'Muuda Määrangud: ',
+ 'Edit SIC' => 'Muuda Standardiseeritud Tööstuskood',
+ 'Edit Template' => 'Muuda Dokumendipõhi',
+ 'Edit Warehouse' => 'Muuda Ladu',
+ 'Employee Number' => 'Töötaja Number',
+ 'Ends' => 'Lõpeb',
+ 'Enforce transaction reversal for all dates' => 'Muuda kannete pööramine kõikide kuupäevade ulatuses kohustuslikuks',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Sisesta kohalikud- ja välisvaluutad (kuni 3 tähemärki, koolonitega eraltatud, nt. CAD:USD:EUR)',
+ 'Equity' => 'Omakapital',
+ 'Every' => 'Iga',
+ 'Expense' => 'Kulu',
+ 'Expense/Asset' => 'Kulu/Vara',
+ 'Fax' => 'Faks',
+ 'Foreign Exchange Gain' => 'Valuutavahetuse kasum',
+ 'Foreign Exchange Loss' => 'Valuutavahetuse kahjum',
+ 'GIFI' => 'GIFI',
+ 'GIFI deleted!' => 'GIFI kustutatud!',
+ 'GIFI missing!' => 'GIFI puudub!',
+ 'GIFI saved!' => 'GIFI salvestatud!',
+ 'GL' => 'Pearaamat',
+ 'GL Reference Number' => 'Pearaamatu Viitenumber',
+ 'GL Transaction' => 'Pearaamatu Kanne',
+ 'Heading' => 'Päis',
+ 'ID' => 'ID',
+ 'Include in drop-down menus' => 'Kaasa valikmenüüdes',
+ 'Income' => 'Kasum',
+ 'Inventory' => 'Laoarvestus',
+ 'Invoice' => 'Arve',
+ 'Is this a summary account to record' => 'Kirje summaarne konto',
+ 'Job/Project Number' => 'Töö/Projekti Number',
+ 'Language' => 'Keel',
+ 'Language deleted!' => 'Keel kustutatud!',
+ 'Language saved!' => 'Keel salvestatud!',
+ 'Languages' => 'Keeled',
+ 'Last Numbers & Default Accounts' => 'Viimased Numbrid ja Põhikontod',
+ 'Liability' => 'Kohustus',
+ 'Licensed to' => 'Litsentseeritud',
+ 'Link' => 'Seosed',
+ 'Menu Width' => 'Menüü Laius',
+ 'Method' => 'Meetod',
+ 'Month' => 'Kuu',
+ 'Months' => 'Kuud',
+ 'Name' => 'Nimi',
+ 'Next' => 'Järgmine',
+ 'Next Number' => 'Järgmine Number',
+ 'No' => 'Ei',
+ 'No email address for' => 'E-posti aadress puudu',
+ 'Non-tracking Items' => 'Mitte jälgitavad Kaubaartiklid',
+ 'Number' => 'Number',
+ 'Number Format' => 'Numbri Formaat',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Saateleht',
+ 'Part Number' => 'Deaili Number',
+ 'Password' => 'Parool',
+ 'Password does not match!' => 'Vale parool',
+ 'Payables' => 'Kohustused',
+ 'Payment' => 'Maksmine',
+ 'Phone' => 'Telefon',
+ 'Pick List' => 'Valida Kataloog',
+ 'Posting' => 'Postitamine',
+ 'Postscript' => 'Postscript',
+ 'Preferences saved!' => 'Määrangud salvestatud!',
+ 'Print' => 'Trüki',
+ 'Printer' => 'Printer',
+ 'Printing' => 'Trükib',
+ 'Process Transactions' => 'Viia läbi Tehing',
+ 'Profit Center' => 'Kasumikeskus',
+ 'Purchase Order' => 'Ostutellimus',
+ 'Purchase Order Number' => 'Ostuarve Number',
+ 'Purchase Orders' => 'Ostutellimused',
+ 'RFQ Number' => 'Hinnapakkumuse Taotluse Nr.',
+ 'Rate' => 'Määr',
+ 'Receivables' => 'Nõuded',
+ 'Recurring Transactions' => 'Korduvad Tehingud',
+ 'Reference' => 'Referenss',
+ 'Remove Audit trail up to' => 'Eemaldada Auditi jäljed kuni',
+ 'Retained Earnings' => 'Jaotamata kasum',
+ 'SIC deleted!' => 'Standardiseeritud Tööstuskood Kustutatud!',
+ 'SIC saved!' => 'Standardiseeritud Tööstuskood Salvestatud!',
+ 'Sales Invoice' => 'Müügiarve',
+ 'Sales Invoice/AR Transaction Number' => 'Müügiarve/MR Tehingu Number',
+ 'Sales Order' => 'Müügitellimus',
+ 'Sales Order Number' => 'Müügiarve Number',
+ 'Sales Orders' => 'Müügitellimused',
+ 'Sales Quotation Number' => 'Müügipakkumuse Number',
+ 'Save' => 'Salvesta',
+ 'Save as new' => 'Salvesta uuena',
+ 'Saving' => 'Salvestab',
+ 'Sending' => 'Saadab',
+ 'Session Timeout' => 'Sessiooni Ajalimiit läbi',
+ 'Signature' => 'Allkiri',
+ 'Standard Industrial Codes' => 'Standardiseeritud Tööstuskood',
+ 'Stylesheet' => 'Laadileht',
+ 'System Defaults' => 'Süsteemi Vaikeväärtused',
+ 'Tax' => 'Maksud',
+ 'Template saved!' => 'Dokumendipõhjad salvestatud!',
+ 'Times' => 'Kordi',
+ 'Tracking Items' => 'Jälgitavad Kaubaartikleid',
+ 'Transaction' => 'Kanne',
+ 'Transaction reversal enforced for all dates' => 'Kannete pööramine on kohustuslik kõikide kuupäevade ulatuses',
+ 'Transaction reversal enforced up to' => 'Kannete pööramine on kohustuslik kuni',
+ 'Type of Business' => 'Tegevusvaldkond',
+ 'Update' => 'Värskenda',
+ 'User' => 'Kasutaja',
+ 'Vendor Invoice' => 'Ostuarve',
+ 'Vendor Invoice/AP Transaction Number' => 'Tarnija Kaubaarve/OR Number',
+ 'Vendor Number' => 'Tarnija Number',
+ 'Version' => 'Versioon',
+ 'Warehouse deleted!' => 'Ladu kustutatud!',
+ 'Warehouse saved!' => 'Ladu salvestatud!',
+ 'Warehouses' => 'Laod',
+ 'Week' => 'Nädal',
+ 'Weeks' => 'Nädalat',
+ 'Weight Unit' => 'Kaaluühik',
+ 'Work Order' => 'Töökäsk',
+ 'Year' => 'Aasta',
+ 'Yearend' => 'Aastalõpuaruanne',
+ 'Yearend date missing!' => 'Aastalõpuaruande kuupäev puudu!',
+ 'Yearend posted!' => 'Aastalõpuaruanne postitatud!',
+ 'Yearend posting failed!' => 'Aastalõpuaruende postitus ebaõnnestus',
+ 'Years' => 'Aastat',
+ 'Yes' => 'Jah',
+ 'account cannot be set to any other type of account' => 'konto tüüpi ei saa muuta',
+ 'done' => 'valmis',
+ 'failed' => 'nurjus',
+ 'localhost' => 'localhost',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'lisa_konto' => 'add_account',
+ 'lisa_ettevõtte' => 'add_business',
+ 'lisa_osakond' => 'add_department',
+ 'lisa_keel' => 'add_language',
+ 'lisa_standardiseeritud_tööstuskood' => 'add_sic',
+ 'lisa_ladu' => 'add_warehouse',
+ 'edasi' => 'continue',
+ 'kopeeri_kontoplaani' => 'copy_to_coa',
+ 'kustuta' => 'delete',
+ 'muuda' => 'edit',
+ 'muuda_konto' => 'edit_account',
+ 'viia_läbi_tehing' => 'process_transactions',
+ 'salvesta' => 'save',
+ 'salvesta_uuena' => 'save_as_new',
+ 'värskenda' => 'update',
+};
+
+1;
+
diff --git a/locale/ee_utf/ap b/locale/ee_utf/ap
new file mode 100755
index 00000000..4a49ab75
--- /dev/null
+++ b/locale/ee_utf/ap
@@ -0,0 +1,242 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Outstanding' => 'OR Kohustused',
+ 'AP Transaction' => 'OR Kanne',
+ 'AP Transactions' => 'OR Kanded',
+ 'AR Outstanding' => 'MR Nõuded',
+ 'AR Transaction' => 'MR Kanne',
+ 'AR Transactions' => 'MR Kanded',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Raamatupidamise Menüü',
+ 'Add AP Transaction' => 'Lisa OR Ãœlekanne',
+ 'Add AR Transaction' => 'Lisa MR Ãœlekanne',
+ 'Address' => 'Aadress',
+ 'Amount' => 'Summa',
+ 'Amount Due' => 'Võlaosa',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprill',
+ 'Are you sure you want to delete Transaction' => 'Kas oled kindel, et soovid kustutada Kande',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'Kannet ei saa kustutada!',
+ 'Cannot post payment for a closed period!' => 'Makset ei saa salvestada suletud perioodile!',
+ 'Cannot post transaction for a closed period!' => 'Kannet ei saa salvestada suletud perioodile!',
+ 'Cannot post transaction!' => 'Kannet ei saa salvestada!',
+ 'Cc' => 'Cc',
+ 'Check' => 'TÅ¡ekk',
+ 'Closed' => 'Suletud',
+ 'Confirm!' => 'Kinnita!',
+ 'Continue' => 'Edasi',
+ 'Credit' => 'Kreedit',
+ 'Credit Limit' => 'Krediidilimiit',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valuuta',
+ 'Current' => 'Käesolev',
+ 'Customer' => 'Klient',
+ 'Customer missing!' => 'Klienti pole määratud!',
+ 'Customer not on file!' => 'Klienti pole failis!',
+ 'Date' => 'Kuupäev',
+ 'Date Paid' => 'Maksekuupäev',
+ 'Day(s)' => 'Päev(a)',
+ 'Debit' => 'Deebet',
+ 'Dec' => 'Dets',
+ 'December' => 'Detsember',
+ 'Delete' => 'Kustuta',
+ 'Delete Schedule' => 'Kustutada Ajakava',
+ 'Department' => 'Osakond',
+ 'Description' => 'Selgitus',
+ 'Detail' => 'Detail',
+ 'Due Date' => 'Maksetähtaeg',
+ 'Due Date missing!' => 'Maksetähtaeg puudub!',
+ 'E-mail' => 'E-post',
+ 'E-mail message' => 'E-posti teade',
+ 'Edit AP Transaction' => 'Muuda OR Ãœlekanne',
+ 'Edit AR Transaction' => 'Muuda MR Ãœlekanne',
+ 'Employee' => 'Töötaja',
+ 'Every' => 'Iga',
+ 'Exch' => 'Kurss',
+ 'Exchange Rate' => 'Valuutakurss',
+ 'Exchange rate for payment missing!' => 'Maksel ei ole valuutakurssi!',
+ 'Exchange rate missing!' => 'Valuutakurssi ei ole',
+ 'Feb' => 'Veebr',
+ 'February' => 'Veebruar',
+ 'For' => 'Saata',
+ 'From' => 'Alates',
+ 'ID' => 'ID',
+ 'Include Payment' => 'Lisa Makse',
+ 'Include in Report' => 'Kaasata Aruandesse',
+ 'Invoice' => 'Arve',
+ 'Invoice Date' => 'Arve Kuupäev',
+ 'Invoice Date missing!' => 'Arve Kuupäev puudu!',
+ 'Invoice Number' => 'Arve Number',
+ 'Jan' => 'Jaan',
+ 'January' => 'Jaanuar',
+ 'Jul' => 'Juul',
+ 'July' => 'Juuli',
+ 'Jun' => 'Juun',
+ 'June' => 'Juuni',
+ 'Manager' => 'Juhataja',
+ 'Mar' => 'Mär',
+ 'March' => 'Märts',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Memo',
+ 'Message' => 'Teade',
+ 'Month' => 'Kuu',
+ 'Month(s)' => 'Kuu(d)',
+ 'Next Date' => 'Järgmine Kuupäev',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Märkmed',
+ 'Nothing to print!' => 'Pole midagi trükkida!',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Kood',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktoober',
+ 'Open' => 'Avatud',
+ 'Order' => 'Tellimus',
+ 'Order Number' => 'Tellimuse Number',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ostutellimuse Number',
+ 'Paid' => 'Makstud',
+ 'Payment date missing!' => 'Maksekuupäev puudub!',
+ 'Payments' => 'Maksed',
+ 'Period' => 'Periood',
+ 'Post' => 'Postita',
+ 'Post as new' => 'Postita uuena',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Trüki',
+ 'Print and Post' => 'Trüki ja Postita',
+ 'Print and Post as new' => 'Trüki ja Postita uuena',
+ 'Printed' => 'Trükitud',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Projekti pole failis!',
+ 'Quarter' => 'Kvartal',
+ 'Receipt' => 'Maksekviitung',
+ 'Recurring Transaction' => 'Korduvad Ãœlenakded',
+ 'Reference' => 'Referenss',
+ 'Remaining' => 'Kasutamata',
+ 'Repeat' => 'Korrata',
+ 'Sales Invoice.' => 'Arve number',
+ 'Salesperson' => 'Müügiesindaja',
+ 'Save Schedule' => 'Salvestada ajakava',
+ 'Schedule' => 'Ajakava',
+ 'Scheduled' => 'Planeeritud',
+ 'Screen' => 'Ekraan',
+ 'Select a Printer!' => 'Valida printer',
+ 'Select from one of the names below' => 'Vali üks alltoodud nimedest',
+ 'Select from one of the projects below' => 'Vali üks alltoodud projektidest',
+ 'Select payment' => 'Valida makse',
+ 'Select postscript or PDF!' => 'Vali kas postscript või PDF',
+ 'Sep' => 'Sept',
+ 'September' => 'September',
+ 'Ship to' => 'Tarneaadress',
+ 'Ship via' => 'Tarneviis',
+ 'Shipping Point' => 'Saadetise Sihtpunkt',
+ 'Source' => 'Allikas',
+ 'Startdate' => 'Alguskuupäev',
+ 'Subject' => 'Pealkiri',
+ 'Subtotal' => 'Vahesumma',
+ 'Summary' => 'Kokkuvõtte',
+ 'Tax' => 'Maks',
+ 'Tax Included' => 'Koos maksuga',
+ 'Till' => 'Müügipunkt',
+ 'To' => 'Kuni',
+ 'Total' => 'Kokku',
+ 'Transaction' => 'Kanne',
+ 'Transaction deleted!' => 'Kanne kustutatud!',
+ 'Transaction posted!' => 'Kanne saadetud!',
+ 'Update' => 'Uuendus',
+ 'Vendor' => 'Hankija',
+ 'Vendor Invoice.' => 'Tarnija arve',
+ 'Vendor missing!' => 'Tarnija puudub!',
+ 'Vendor not on file!' => 'Tarnijat pole failis!',
+ 'Warning!' => 'Tähelepanu!',
+ 'Week(s)' => 'Nädal(at)',
+ 'Year' => 'Aasta',
+ 'Year(s)' => 'Aasta(t)',
+ 'Yes' => 'Jah',
+ 'You are posting an existing transaction!' => 'Postitad juba olemasolevat kannet',
+ 'You are printing and posting an existing transaction!' => 'Trükida ja postitad juba olemasolevat kannet',
+ 'You are printing and saving an existing order' => 'Trükid ja salvestad juba olemasolevat arver',
+ 'You are printing and saving an existing quotation' => 'Trükid ja salvestad juba olemasolevat pakkumust',
+ 'You are saving an existing order' => 'Salvestad juba olemasolevat arvet',
+ 'You are saving an existing quotation' => 'Salvestad juba olemasolevat pakkumust',
+ 'for' => 'läheb',
+ 'sent' => 'saadetud',
+ 'time(s)' => 'Korda(i)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'or_kanne' => 'ap_transaction',
+ 'mr_kanne' => 'ar_transaction',
+ 'edasi' => 'continue',
+ 'kustuta' => 'delete',
+ 'kustutada_ajakava' => 'delete_schedule',
+ 'postita' => 'post',
+ 'postita_uuena' => 'post_as_new',
+ 'trüki' => 'print',
+ 'trüki_ja_postita' => 'print_and_post',
+ 'trüki_ja_postita_uuena' => 'print_and_post_as_new',
+ 'arve_number' => 'sales_invoice_',
+ 'salvestada_ajakava' => 'save_schedule',
+ 'ajakava' => 'schedule',
+ 'tarneaadress' => 'ship_to',
+ 'uuendus' => 'update',
+ 'tarnija_arve' => 'vendor_invoice_',
+ 'jah' => 'yes',
+};
+
+1;
+
diff --git a/locale/ee_utf/ar b/locale/ee_utf/ar
new file mode 100755
index 00000000..a5bc890d
--- /dev/null
+++ b/locale/ee_utf/ar
@@ -0,0 +1,242 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Outstanding' => 'OR Kohustused',
+ 'AP Transaction' => 'OR Kanne',
+ 'AP Transactions' => 'OR Kanded',
+ 'AR Outstanding' => 'MR Nõuded',
+ 'AR Transaction' => 'MR Kanne',
+ 'AR Transactions' => 'MR Kanded',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Raamatupidamise Menüü',
+ 'Add AP Transaction' => 'Lisa OR Ãœlekanne',
+ 'Add AR Transaction' => 'Lisa MR Ãœlekanne',
+ 'Address' => 'Aadress',
+ 'Amount' => 'Summa',
+ 'Amount Due' => 'Võlaosa',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprill',
+ 'Are you sure you want to delete Transaction' => 'Kas oled kindel, et soovid kustutada kande',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'Kannet ei saa kustutada!',
+ 'Cannot post payment for a closed period!' => 'Makset ei saa salvestada suletud perioodile!',
+ 'Cannot post transaction for a closed period!' => 'Kannet ei saa salvestada suletud perioodile!',
+ 'Cannot post transaction!' => 'Kannet ei saa salvestada!',
+ 'Cc' => 'Cc',
+ 'Check' => 'TÅ¡ekk',
+ 'Closed' => 'Suletud',
+ 'Confirm!' => 'Kinnita!',
+ 'Continue' => 'Edasi',
+ 'Credit' => 'Krediit',
+ 'Credit Limit' => 'Krediidilimiit',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valuuta',
+ 'Current' => 'Käesolev',
+ 'Customer' => 'Klient',
+ 'Customer missing!' => 'Klienti pole määratud!',
+ 'Customer not on file!' => 'Klienti pole failis!',
+ 'Date' => 'Kuupäev',
+ 'Date Paid' => 'Maksekuupäev',
+ 'Day(s)' => 'Päev(a)',
+ 'Debit' => 'Deebet',
+ 'Dec' => 'Dets',
+ 'December' => 'Detsember',
+ 'Delete' => 'Kustuta',
+ 'Delete Schedule' => 'Kustuta Ajakava',
+ 'Department' => 'Osakond',
+ 'Description' => 'Selgitus',
+ 'Detail' => 'Detail',
+ 'Due Date' => 'Maksetähtaeg',
+ 'Due Date missing!' => 'Maksetähtaeg puudub!',
+ 'E-mail' => 'E-post',
+ 'E-mail message' => 'E-posti sõnum',
+ 'Edit AP Transaction' => 'Muuda OR Kanne',
+ 'Edit AR Transaction' => 'Muuda MR Kanne',
+ 'Employee' => 'Töötaja',
+ 'Every' => 'Iga',
+ 'Exch' => 'Kurss',
+ 'Exchange Rate' => 'Valuutakurss',
+ 'Exchange rate for payment missing!' => 'Maksel ei ole valuutakurssi!',
+ 'Exchange rate missing!' => 'Valuutakurssi ei ole',
+ 'Feb' => 'Veebr',
+ 'February' => 'Veebruar',
+ 'For' => 'Saata',
+ 'From' => 'Alates',
+ 'ID' => 'ID',
+ 'Include Payment' => 'Lisa Makse',
+ 'Include in Report' => 'Lisada Aruandesse',
+ 'Invoice' => 'Arve',
+ 'Invoice Date' => 'Arve Kuupäev',
+ 'Invoice Date missing!' => 'Arvel Puudub Kuupäev!',
+ 'Invoice Number' => 'Arve Number',
+ 'Jan' => 'Jaan',
+ 'January' => 'Jaanuar',
+ 'Jul' => 'Juul',
+ 'July' => 'Juuli',
+ 'Jun' => 'Juun',
+ 'June' => 'Juuni',
+ 'Manager' => 'Juhataja',
+ 'Mar' => 'Mär',
+ 'March' => 'Märts',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Memo',
+ 'Message' => 'Teade',
+ 'Month' => 'Kuu',
+ 'Month(s)' => 'Kuu(d)',
+ 'Next Date' => 'Järgmine Kuupäev',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Märkused',
+ 'Nothing to print!' => 'Pole midagi trükkida!',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Kood',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktoober',
+ 'Open' => 'Avatud',
+ 'Order' => 'Tellimus',
+ 'Order Number' => 'Tellimuse Number',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ostutellimuse Number',
+ 'Paid' => 'Makstud',
+ 'Payment date missing!' => 'Maksekuupäev puudub!',
+ 'Payments' => 'Maksed',
+ 'Period' => 'Periood',
+ 'Post' => 'Postita',
+ 'Post as new' => 'Postita uuena',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Trüki',
+ 'Print and Post' => 'Trüki ja salvesta',
+ 'Print and Post as new' => 'Trüki ja postita uuena',
+ 'Printed' => 'Trükitud',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Projekti pole failis!',
+ 'Quarter' => 'Kvartal',
+ 'Receipt' => 'Maksekviitung',
+ 'Recurring Transaction' => 'Korduvad Ãœlenakded',
+ 'Reference' => 'Viide',
+ 'Remaining' => 'Kasutamata',
+ 'Repeat' => 'Korrata',
+ 'Sales Invoice.' => 'Arve Number.',
+ 'Salesperson' => 'Müügja',
+ 'Save Schedule' => 'Salvesta Ajakava',
+ 'Schedule' => 'Ajakava',
+ 'Scheduled' => 'Planeeritud',
+ 'Screen' => 'Ekraan',
+ 'Select a Printer!' => 'Vali Printer',
+ 'Select from one of the names below' => 'Vali üks alltoodud nimedest',
+ 'Select from one of the projects below' => 'Vali üks alltoodud projektidest',
+ 'Select payment' => 'Vali makse',
+ 'Select postscript or PDF!' => 'Vali kas postscript või PDF',
+ 'Sep' => 'Sept',
+ 'September' => 'September',
+ 'Ship to' => 'Tarneaadress',
+ 'Ship via' => 'Tarneviis',
+ 'Shipping Point' => 'Saadetise Sihtpunkt',
+ 'Source' => 'Allikas',
+ 'Startdate' => 'Alguskuupäev',
+ 'Subject' => 'Pealkiri',
+ 'Subtotal' => 'Vahesumma',
+ 'Summary' => 'Kokkuvõtte',
+ 'Tax' => 'Käibemaks',
+ 'Tax Included' => 'Koos käibemaksuga',
+ 'Till' => 'Müügipunkt',
+ 'To' => 'Kuni',
+ 'Total' => 'Kokku',
+ 'Transaction' => 'Kanne',
+ 'Transaction deleted!' => 'Kanne kustutatud!',
+ 'Transaction posted!' => 'Kanne postitatud!',
+ 'Update' => 'Uuendus',
+ 'Vendor' => 'Hankija',
+ 'Vendor Invoice.' => 'Tarnija arve',
+ 'Vendor missing!' => 'Tarnija puudub!',
+ 'Vendor not on file!' => 'Tarnijat pole failis!',
+ 'Warning!' => 'Ettevaatust!',
+ 'Week(s)' => 'Nädal(at)',
+ 'Year' => 'Aasta',
+ 'Year(s)' => 'Aasta(t)',
+ 'Yes' => 'Jah',
+ 'You are posting an existing transaction!' => 'Postitad juba olemasolevat kannet',
+ 'You are printing and posting an existing transaction!' => 'Trükida ja postitad juba olemasolevat kannet',
+ 'You are printing and saving an existing order' => 'Trükid ja salvestad juba olemasolevat arver',
+ 'You are printing and saving an existing quotation' => 'Trükid ja salvestad juba olemasolevat pakkumust',
+ 'You are saving an existing order' => 'Salvestad juba olemasolevat arvet',
+ 'You are saving an existing quotation' => 'Salvestad juba olemasolevat pakkumust',
+ 'for' => 'läheb',
+ 'sent' => 'saadetud',
+ 'time(s)' => 'Korda(i)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'or_kanne' => 'ap_transaction',
+ 'mr_kanne' => 'ar_transaction',
+ 'edasi' => 'continue',
+ 'kustuta' => 'delete',
+ 'kustuta_ajakava' => 'delete_schedule',
+ 'postita' => 'post',
+ 'postita_uuena' => 'post_as_new',
+ 'trüki' => 'print',
+ 'trüki_ja_salvesta' => 'print_and_post',
+ 'trüki_ja_postita_uuena' => 'print_and_post_as_new',
+ 'arve_number_' => 'sales_invoice_',
+ 'salvesta_ajakava' => 'save_schedule',
+ 'ajakava' => 'schedule',
+ 'tarneaadress' => 'ship_to',
+ 'uuendus' => 'update',
+ 'tarnija_arve' => 'vendor_invoice_',
+ 'jah' => 'yes',
+};
+
+1;
+
diff --git a/locale/ee_utf/arap b/locale/ee_utf/arap
new file mode 100755
index 00000000..3aaee4c4
--- /dev/null
+++ b/locale/ee_utf/arap
@@ -0,0 +1,76 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Address' => 'Aadress',
+ 'Bcc' => 'Bcc',
+ 'Cc' => 'Cc',
+ 'Continue' => 'Edasi',
+ 'Customer not on file!' => 'Klienti pole failis!',
+ 'Date' => 'Kuupäev',
+ 'Day(s)' => 'Päev(a)',
+ 'Delete Schedule' => 'Kustutada Ajakava',
+ 'Description' => 'Selgitus',
+ 'E-mail' => 'E-post',
+ 'E-mail message' => 'E-posti sõnum',
+ 'Every' => 'Iga',
+ 'For' => 'Saata',
+ 'Include Payment' => 'Lisa Makse',
+ 'Message' => 'Teade',
+ 'Month(s)' => 'Kuu(d)',
+ 'Next Date' => 'Järgmine kuupäev',
+ 'Number' => 'Kood',
+ 'Print' => 'Trüki',
+ 'Project not on file!' => 'Projekti pole failis!',
+ 'Recurring Transaction' => 'Korduvad Ãœlenakded',
+ 'Reference' => 'Viide',
+ 'Repeat' => 'Korrata',
+ 'Save Schedule' => 'Salvesta Ajakava',
+ 'Select from one of the names below' => 'Valida üks alltoodud nimedest',
+ 'Select from one of the projects below' => 'Valida üks alltoodud projektidest',
+ 'Startdate' => 'Alguskuupäev',
+ 'Subject' => 'Pealkiri',
+ 'To' => 'Kuni',
+ 'Vendor not on file!' => 'Tarnijat pole failis!',
+ 'Warning!' => 'Tähelepanu!',
+ 'Week(s)' => 'Nädal(at)',
+ 'Year(s)' => 'Aasta(t)',
+ 'You are posting an existing transaction!' => 'Postitad juba olemasolevat kannet',
+ 'You are printing and posting an existing transaction!' => 'Trükida ja postitad juba olemasolevat kannet',
+ 'You are printing and saving an existing order' => 'Trükid ja salvestad juba olemasolevat arver',
+ 'You are printing and saving an existing quotation' => 'Trükid ja salvestad juba olemasolevat pakkumust',
+ 'You are saving an existing order' => 'Salvestad juba olemasolevat arvet',
+ 'You are saving an existing quotation' => 'Salvestad juba olemasolevat pakkumust',
+ 'for' => 'läheb',
+ 'sent' => 'saadetud',
+ 'time(s)' => 'Korda(i)',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'edasi' => 'continue',
+ 'kustutada_ajakava' => 'delete_schedule',
+ 'salvesta_ajakava' => 'save_schedule',
+};
+
+1;
+
diff --git a/locale/ee_utf/arapprn b/locale/ee_utf/arapprn
new file mode 100755
index 00000000..674012b7
--- /dev/null
+++ b/locale/ee_utf/arapprn
@@ -0,0 +1,36 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Amount' => 'Summa',
+ 'Continue' => 'Jätka',
+ 'Date' => 'Kuupäev',
+ 'Memo' => 'Memo',
+ 'Nothing to print!' => 'Pole midagi trükkida!',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'Postscript',
+ 'Printed' => 'Trükitud',
+ 'Scheduled' => 'Planeeritud',
+ 'Screen' => 'Ekraan',
+ 'Select a Printer!' => 'Valida printer',
+ 'Select payment' => 'Valida makse',
+ 'Select postscript or PDF!' => 'Vali kas postscript või PDF',
+ 'Source' => 'Allikas',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'jätka' => 'continue',
+};
+
+1;
+
diff --git a/locale/ee_utf/bp b/locale/ee_utf/bp
new file mode 100755
index 00000000..02273459
--- /dev/null
+++ b/locale/ee_utf/bp
@@ -0,0 +1,71 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Raamatupidamise Menüü',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Kas olete kindel, et soovited eemaldava märgitud väljad järjekorrast?',
+ 'Bin Lists' => 'Kasti Nimekirjad',
+ 'Cannot remove files!' => 'Faili ei saa kustutada!',
+ 'Confirm!' => 'Kinnita!',
+ 'Continue' => 'Edasi',
+ 'Current' => 'Käesolev',
+ 'Customer' => 'Klient',
+ 'Date' => 'Kuupäev',
+ 'Employee' => 'Töötaja',
+ 'From' => 'Alates',
+ 'ID' => 'ID',
+ 'Invoice' => 'Arve',
+ 'Invoice Number' => 'Arve Number',
+ 'Marked entries printed!' => 'Märgitud kanded väljatrükitud!',
+ 'Month' => 'Kuu',
+ 'Order' => 'Tellimus',
+ 'Order Number' => 'Tellimuse Number',
+ 'Packing Lists' => 'Saatelehed',
+ 'Period' => 'Periood',
+ 'Pick Lists' => 'Valida Kataloogid',
+ 'Print' => 'Trüki',
+ 'Printing' => 'Trükib',
+ 'Purchase Orders' => 'Ostutellimused',
+ 'Quarter' => 'Kvartal',
+ 'Quotation' => 'Hinnapakkumus',
+ 'Quotation Number' => 'Hinnapakkumuse Number',
+ 'Quotations' => 'Hinnapakkumused',
+ 'RFQs' => 'Hinnapakkumuse Taotlused',
+ 'Remove' => 'Eemalda',
+ 'Removed spoolfiles!' => 'Trükijärjekorra failid eemaldatud!',
+ 'Removing marked entries from queue ...' => 'Eemaldan märgitud kanded trükijärjekorrast...',
+ 'Sales Invoices' => 'Müügiarved',
+ 'Sales Orders' => 'Müügitellimused',
+ 'Select all' => 'Vali kõik',
+ 'Spoolfile' => 'Trükijärjekorra fail',
+ 'Time Cards' => 'Ajakaardid',
+ 'To' => 'Kuni',
+ 'Vendor' => 'Tarnija',
+ 'Work Orders' => 'Töökäsud',
+ 'Year' => 'Aasta',
+ 'Yes' => 'Jah',
+ 'done' => 'valmis',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'edasi' => 'continue',
+ 'trüki' => 'print',
+ 'eemalda' => 'remove',
+ 'vali_kõik' => 'select_all',
+ 'jah' => 'yes',
+};
+
+1;
+
diff --git a/locale/ee_utf/ca b/locale/ee_utf/ca
new file mode 100755
index 00000000..a266f45e
--- /dev/null
+++ b/locale/ee_utf/ca
@@ -0,0 +1,62 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AR/AP' => 'MR/OR',
+ 'Account' => 'Konto',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprill',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Balance' => 'Bilanss',
+ 'Chart of Accounts' => 'Kontoplaan',
+ 'Credit' => 'Kreedit',
+ 'Current' => 'Käesolev',
+ 'Date' => 'Kuupäev',
+ 'Debit' => 'Deebet',
+ 'Dec' => 'Dets',
+ 'December' => 'Detsember',
+ 'Department' => 'Osakond',
+ 'Description' => 'Selgitus',
+ 'Feb' => 'Veebr',
+ 'February' => 'Veebruar',
+ 'From' => 'Alates',
+ 'GIFI' => 'GIFI',
+ 'Include in Report' => 'Kaasata Aruandesse',
+ 'Jan' => 'Jaan',
+ 'January' => 'Jaanuar',
+ 'Jul' => 'Juul',
+ 'July' => 'Juuli',
+ 'Jun' => 'Juun',
+ 'June' => 'Juuni',
+ 'List Transactions' => 'Kannete Kataloog',
+ 'Mar' => 'Mär',
+ 'March' => 'Märts',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Month' => 'Kuu',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktoober',
+ 'Period' => 'Periood',
+ 'Project Number' => 'Projekti Number',
+ 'Quarter' => 'Kvartal',
+ 'R' => 'M',
+ 'Reference' => 'Viide',
+ 'Sep' => 'Sept',
+ 'September' => 'September',
+ 'Subtotal' => 'Vahesumma',
+ 'To' => 'Kuni',
+ 'Year' => 'Aasta',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'kannete_kataloog' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/ee_utf/cp b/locale/ee_utf/cp
new file mode 100755
index 00000000..d0a88e3d
--- /dev/null
+++ b/locale/ee_utf/cp
@@ -0,0 +1,151 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP' => 'Ostureskontro',
+ 'AR' => 'Müügireskontro',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Raamatupidamise Menüü',
+ 'Address' => 'Aadress',
+ 'All' => 'Kõik',
+ 'Amount' => 'Summa',
+ 'Amount Due' => 'Võlaosa',
+ 'Bcc' => 'Bcc',
+ 'Cannot post Payment!' => 'Makset ei saa salvestada!',
+ 'Cannot post Receipt!' => 'Sisetulekuarderit ei saa salvestada!',
+ 'Cannot post payment for a closed period!' => 'Makset ei saa salvestada suletud perioodile!',
+ 'Cc' => 'Cc',
+ 'Continue' => 'Edasi',
+ 'Currency' => 'Valuuta',
+ 'Customer' => 'Klient',
+ 'Customer not on file!' => 'Klienti pole failis!',
+ 'Date' => 'Kuupäev',
+ 'Date missing!' => 'Kuupäev puudub!',
+ 'Day(s)' => 'Päev(a)',
+ 'Delete Schedule' => 'Kustutata ajakava',
+ 'Department' => 'Osakond',
+ 'Deposit' => 'Deposiit',
+ 'Description' => 'Selgitus',
+ 'Due Date' => 'Maksetähtaeg',
+ 'E-mail' => 'E-post',
+ 'E-mail message' => 'E-posti sõnum',
+ 'Every' => 'Iga',
+ 'Exchange Rate' => 'Valuutakurss',
+ 'Exchange rate missing!' => 'Valuutakurssi ei ole',
+ 'For' => 'Saata',
+ 'From' => 'Alates',
+ 'Include Payment' => 'Lisa Makse',
+ 'Invoice' => 'Arve',
+ 'Invoices' => 'Arved',
+ 'Language' => 'Keel',
+ 'Memo' => 'Memo',
+ 'Message' => 'Teade',
+ 'Month(s)' => 'Kuu(d)',
+ 'Next Date' => 'Järgmine Kuupäev',
+ 'Nothing open!' => 'Midagi ei avane!',
+ 'Number' => 'Kood',
+ 'PDF' => 'PDF',
+ 'Payment' => 'Maksmine',
+ 'Payment posted!' => 'Makse saadetud!',
+ 'Payments' => 'Maksed',
+ 'Payments posted!' => 'Maksed postitatud!',
+ 'Post' => 'Salvesta',
+ 'Posting failed!' => 'Saatmine ebaõnnestus',
+ 'Postscript' => 'Postscript',
+ 'Prepayment' => 'Ettemaksud',
+ 'Print' => 'Trüki',
+ 'Project not on file!' => 'Projekti pole failis!',
+ 'Receipt' => 'Maksekviitung',
+ 'Receipt posted!' => 'Maksekviitung postitatud',
+ 'Receipts' => 'Sissetulek',
+ 'Recurring Transaction' => 'Korduvad Ãœlenakded',
+ 'Reference' => 'Viide',
+ 'Repeat' => 'Korrata',
+ 'Save Schedule' => 'Salvesta Ajakava',
+ 'Screen' => 'Ekraan',
+ 'Select' => 'Vali',
+ 'Select all' => 'Vali kõik',
+ 'Select from one of the names below' => 'Vali üks alltoodud nimedest',
+ 'Select from one of the projects below' => 'Vali üks alltoodud projektidest',
+ 'Select postscript or PDF!' => 'Vali kas postscript või PDF',
+ 'Source' => 'Allikas',
+ 'Startdate' => 'Alguskuupäev',
+ 'Subject' => 'Pealkiri',
+ 'To' => 'Kuni',
+ 'Update' => 'Uuendus',
+ 'Vendor' => 'Tarnija',
+ 'Vendor not on file!' => 'Tarnijat pole failis!',
+ 'Warning!' => 'Ettevaatust!',
+ 'Week(s)' => 'Nädal(at)',
+ 'Year(s)' => 'Aasta(t)',
+ 'You are posting an existing transaction!' => 'Postitad juba olemasolevat kannet',
+ 'You are printing and posting an existing transaction!' => 'Trükida ja postitad juba olemasolevat kannet',
+ 'You are printing and saving an existing order' => 'Trükid ja salvestad juba olemasolevat arver',
+ 'You are printing and saving an existing quotation' => 'Trükid ja salvestad juba olemasolevat pakkumust',
+ 'You are saving an existing order' => 'Salvestad juba olemasolevat arvet',
+ 'You are saving an existing quotation' => 'Salvestad juba olemasolevat pakkumust',
+ 'for' => 'läheb',
+ 'sent' => 'saadetud',
+ 'time(s)' => 'Korda(i)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'edasi' => 'continue',
+ 'kustutata_ajakava' => 'delete_schedule',
+ 'salvesta' => 'post',
+ 'trüki' => 'print',
+ 'salvesta_ajakava' => 'save_schedule',
+ 'vali_kõik' => 'select_all',
+ 'uuendus' => 'update',
+};
+
+1;
+
diff --git a/locale/ee_utf/ct b/locale/ee_utf/ct
new file mode 100755
index 00000000..5dffb9ca
--- /dev/null
+++ b/locale/ee_utf/ct
@@ -0,0 +1,192 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Transaction' => 'OR Kanne',
+ 'AP Transactions' => 'OR Kanded',
+ 'AR Transaction' => 'MR Kanne',
+ 'AR Transactions' => 'MR Kanded',
+ 'Accounting Menu' => 'Raamatupidamise Menüü',
+ 'Active' => 'Aktiva',
+ 'Add Customer' => 'Lisa Klient',
+ 'Add Vendor' => 'Lisa Tarnija',
+ 'Address' => 'Aadress',
+ 'All' => 'Kõik',
+ 'Amount' => 'Summa',
+ 'BIC' => 'BIC (S.W.I.F.T)',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Arve Esitamise Aadress',
+ 'Break' => 'Katkesta',
+ 'Cannot delete customer!' => 'Kienti ei saa kustutada!',
+ 'Cannot delete vendor!' => 'Tarnijat ei saa kustutada!',
+ 'Cc' => 'Cc',
+ 'City' => 'Linn',
+ 'Closed' => 'Suletud',
+ 'Company Name' => 'Ettevõtte Nimi',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Edasi',
+ 'Cost' => 'Kulu',
+ 'Could not save pricelist!' => 'Hinnakirja salvestamine ebaõnnestus!',
+ 'Country' => 'Riik',
+ 'Credit Limit' => 'Krediidilimiit',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valuuta',
+ 'Customer History' => 'Kliendi Ajalugu',
+ 'Customer Number' => 'Kliendi Number',
+ 'Customer deleted!' => 'Klient kustutatud!',
+ 'Customer saved!' => 'Klient salvestatud!',
+ 'Customers' => 'Kliendid',
+ 'Delete' => 'Kustuta',
+ 'Delivery Date' => 'Kättetoimetamise kuupäev',
+ 'Description' => 'Selgitus',
+ 'Detail' => 'Detail',
+ 'Discount' => 'Allahindlus',
+ 'E-mail' => 'E-post',
+ 'Edit Customer' => 'Muuda Klienti',
+ 'Edit Vendor' => 'Muuda Tarnijat',
+ 'Employee' => 'Töötaja',
+ 'Enddate' => 'Lõputähtaeg',
+ 'Fax' => 'Faks',
+ 'From' => 'Alates',
+ 'GIFI' => 'GIFI',
+ 'Group' => 'Grupp',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Inactive' => 'Passiivne',
+ 'Include in Report' => 'Kaasa Aruandesse',
+ 'Invoice' => 'Arve',
+ 'Item already on pricelist!' => 'Tooteühik on juba hinnakirjas!',
+ 'Item not on file!' => 'Tooteühik puudub andmebaasist!',
+ 'Language' => 'Keel',
+ 'Leadtime' => 'Tellimuse täitmisaeg',
+ 'Manager' => 'Juhataja',
+ 'Name' => 'Nimi',
+ 'Name missing!' => 'Nimi puudu!',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Märkused',
+ 'Number' => 'Kood',
+ 'Open' => 'Avatud',
+ 'Order' => 'Tellimus',
+ 'Orphaned' => 'Seosteta',
+ 'POS' => 'Müügipunkt?!',
+ 'Part Number' => 'Deaili Number',
+ 'Phone' => 'Telefon',
+ 'Pricegroup' => 'Hinnagrupp',
+ 'Pricelist' => 'Hinnakiri',
+ 'Project Number' => 'Projekti Number',
+ 'Purchase Order' => 'Ostutellimus',
+ 'Purchase Orders' => 'Ostutellimused',
+ 'Qty' => 'Kogus',
+ 'Quotation' => 'Hinnapakkumus',
+ 'Quotations' => 'Hinnapakkumused',
+ 'RFQ' => 'Hinnapakkumuse Taotlus',
+ 'Request for Quotations' => 'Hinnapakkumuse Taotlused',
+ 'SIC' => 'Standardiseeritud Tööstuskood',
+ 'SKU' => 'Asenduskaup',
+ 'Sales Invoice' => 'Müügiarve',
+ 'Sales Invoices' => 'Müügiarved',
+ 'Sales Order' => 'Müügitellimus',
+ 'Sales Orders' => 'Müügitellimused',
+ 'Salesperson' => 'Müüja',
+ 'Save' => 'Salvesta',
+ 'Save Pricelist' => 'Salvesta Hinnakiri',
+ 'Save as new' => 'Salvesta uuena',
+ 'Search' => 'Otsi',
+ 'Select items' => 'Vali tooteühikud',
+ 'Sell Price' => 'Müügihind',
+ 'Serial Number' => 'Seerianumber',
+ 'Shipping Address' => 'Tarneaadress',
+ 'Startdate' => 'Alguskuupäev',
+ 'State' => 'Seis',
+ 'State/Province' => 'Maakond',
+ 'Sub-contract GIFI' => 'Allhange GIFI',
+ 'Subtotal' => 'Vahesumma',
+ 'Summary' => 'Kokkuvõte',
+ 'Tax' => 'Käibemaks',
+ 'Tax Account' => 'Käibemaksukonto',
+ 'Tax Included' => 'Koos Käibemaksuga',
+ 'Tax Number' => 'Käibemaksukohuslase Registrinumber',
+ 'Tax Number / SSN' => 'Käibemaksukohuslase Registrinumber / SSN',
+ 'Taxable' => 'Maksustatav',
+ 'Terms' => 'Maksetingimused',
+ 'To' => 'Kuni',
+ 'Total' => 'Kokku',
+ 'Type of Business' => 'Ettevõtte Liik',
+ 'Unit' => 'Ãœhik',
+ 'Update' => 'Värskenda',
+ 'Vendor History' => 'Hankija Ajalugu',
+ 'Vendor Invoice' => 'Tarnija Ostuarve',
+ 'Vendor Invoices' => 'Tarnija Ostuarved',
+ 'Vendor Number' => 'Tarnija number',
+ 'Vendor deleted!' => 'Tarnija kustutatud!',
+ 'Vendor saved!' => 'Tarnija salvestatud!',
+ 'Vendors' => 'Tarnijad',
+ 'Zip/Postal Code' => 'Postiindeks',
+ 'days' => 'päeva',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'or_kanne' => 'ap_transaction',
+ 'mr_kanne' => 'ar_transaction',
+ 'lisa_klient' => 'add_customer',
+ 'lisa_tarnija' => 'add_vendor',
+ 'edasi' => 'continue',
+ 'kustuta' => 'delete',
+ 'müügipunkt?!' => 'pos',
+ 'hinnakiri' => 'pricelist',
+ 'ostutellimus' => 'purchase_order',
+ 'hinnapakkumus' => 'quotation',
+ 'hinnapakkumuse_taotlus' => 'rfq',
+ 'müügiarve' => 'sales_invoice',
+ 'müügitellimus' => 'sales_order',
+ 'salvesta' => 'save',
+ 'salvesta_hinnakiri' => 'save_pricelist',
+ 'salvesta_uuena' => 'save_as_new',
+ 'värskenda' => 'update',
+ 'tarnija_ostuarve' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/ee_utf/gl b/locale/ee_utf/gl
new file mode 100755
index 00000000..c0185eb2
--- /dev/null
+++ b/locale/ee_utf/gl
@@ -0,0 +1,187 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Transaction' => 'OR Kanne',
+ 'AR Transaction' => 'MR Kanne',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Raamatupidamise Menüü',
+ 'Add Cash Transfer Transaction' => 'Lisa Rahaülekanne',
+ 'Add General Ledger Transaction' => 'Lisa Pearaamatu Kanne',
+ 'Address' => 'Aadress',
+ 'All' => 'Kõik',
+ 'Amount' => 'Summa',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprill',
+ 'Are you sure you want to delete Transaction' => 'Kas oled kindel, et soovid kustutada kande',
+ 'Asset' => 'Vara',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Balance' => 'Bilanss',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'Kannet ei saa kustutada!',
+ 'Cannot post transaction for a closed period!' => 'Kannet ei saa salvestada suletud perioodile!',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => 'Ei saa postitada tehingut deebeti ja kreediti väljadega samal kontol!',
+ 'Cannot post transaction!' => 'Kannet ei saa salvestada!',
+ 'Cc' => 'Cc',
+ 'Confirm!' => 'Kinnita!',
+ 'Continue' => 'Edasi',
+ 'Credit' => 'Kreedit',
+ 'Current' => 'Käesolev',
+ 'Customer not on file!' => 'Klienti pole failis!',
+ 'Date' => 'Kuupäev',
+ 'Day(s)' => 'Päev(a)',
+ 'Debit' => 'Deebet',
+ 'Dec' => 'Dets',
+ 'December' => 'Detsember',
+ 'Delete' => 'Kustuta',
+ 'Delete Schedule' => 'Kustuta Ajakava',
+ 'Department' => 'Osakond',
+ 'Description' => 'Kirjeldus',
+ 'E-mail' => 'E-post',
+ 'E-mail message' => 'E-posti sõnum',
+ 'Edit Cash Transfer Transaction' => 'Muuda Raha Ãœlekande Tehing',
+ 'Edit General Ledger Transaction' => 'Muuda Pearaamatu Kanne',
+ 'Equity' => 'Omakapital',
+ 'Every' => 'Iga',
+ 'Expense' => 'Kulu',
+ 'FX' => 'Valuutavahetus',
+ 'Feb' => 'Veebr',
+ 'February' => 'Veebruar',
+ 'For' => 'Saata',
+ 'From' => 'Alates',
+ 'GIFI' => 'GIFI',
+ 'GL Transaction' => 'Pearaamatu Kanne',
+ 'General Ledger' => 'Pearaamat',
+ 'ID' => 'ID',
+ 'Include Payment' => 'Lisa Makse',
+ 'Include in Report' => 'Kaasata Aruandesse',
+ 'Income' => 'Kasum',
+ 'Jan' => 'Jaan',
+ 'January' => 'Jaanuar',
+ 'Jul' => 'Juul',
+ 'July' => 'Juuli',
+ 'Jun' => 'Juun',
+ 'June' => 'Juuni',
+ 'Liability' => 'Kohustus',
+ 'Mar' => 'Mär',
+ 'March' => 'Märts',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Memo',
+ 'Message' => 'Sõnum',
+ 'Month' => 'Kuu',
+ 'Month(s)' => 'Kuu(d)',
+ 'Next Date' => 'Järgmine Kuupäev',
+ 'Notes' => 'Märkused',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Number',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktoober',
+ 'Out of balance transaction!' => 'Kanne ei ole balanseeritud!',
+ 'Period' => 'Periood',
+ 'Post' => 'Postitada',
+ 'Post as new' => 'Postitada uuena',
+ 'Print' => 'Trüki',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Projekti pole failis!',
+ 'Quarter' => 'Kvartal',
+ 'R' => 'M',
+ 'Recurring Transaction' => 'Korduvad Ãœlekanded',
+ 'Reference' => 'Viide',
+ 'Repeat' => 'Korrata',
+ 'Reports' => 'Aruanded',
+ 'Sales Invoice ' => 'Müügiarve',
+ 'Save Schedule' => 'Salvesta Ajakava',
+ 'Schedule' => 'Ajakava',
+ 'Scheduled' => 'Planeeritud',
+ 'Select from one of the names below' => 'Vali üks alltoodud nimedest',
+ 'Select from one of the projects below' => 'Vali üks alltoodud projektidest',
+ 'Sep' => 'Sept',
+ 'September' => 'September',
+ 'Source' => 'Allikas',
+ 'Startdate' => 'Algus Kuupäev',
+ 'Subject' => 'Pealkiri',
+ 'Subtotal' => 'Vahesumma',
+ 'To' => 'Kuni',
+ 'Transaction Date missing!' => 'Kande Kuupäev puudu!',
+ 'Transaction deleted!' => 'Kanne kustutatud!',
+ 'Transaction posted!' => 'Kanne saadetud!',
+ 'Update' => 'Värskenda',
+ 'Vendor Invoice ' => 'Tarnija Arve',
+ 'Vendor not on file!' => 'Tarnijat pole failis!',
+ 'Warning!' => 'Tähelepanu!',
+ 'Week(s)' => 'Nädal(at)',
+ 'Year' => 'Aasta',
+ 'Year(s)' => 'Aasta(t)',
+ 'Yes' => 'Jah',
+ 'You are posting an existing transaction!' => 'Postitad juba olemasolevat kannet',
+ 'You are printing and posting an existing transaction!' => 'Trükida ja postitad juba olemasolevat kannet',
+ 'You are printing and saving an existing order' => 'Trükid ja salvestad juba olemasolevat arver',
+ 'You are printing and saving an existing quotation' => 'Trükid ja salvestad juba olemasolevat pakkumust',
+ 'You are saving an existing order' => 'Salvestad juba olemasolevat arvet',
+ 'You are saving an existing quotation' => 'Salvestad juba olemasolevat pakkumust',
+ 'for' => 'läheb',
+ 'sent' => 'saadetud',
+ 'time(s)' => 'kord(a)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'or_kanne' => 'ap_transaction',
+ 'mr_kanne' => 'ar_transaction',
+ 'edasi' => 'continue',
+ 'kustuta' => 'delete',
+ 'kustuta_ajakava' => 'delete_schedule',
+ 'pearaamatu_kanne' => 'gl_transaction',
+ 'postitada' => 'post',
+ 'postitada_uuena' => 'post_as_new',
+ 'müügiarve' => 'sales_invoice_',
+ 'salvesta_ajakava' => 'save_schedule',
+ 'ajakava' => 'schedule',
+ 'värskenda' => 'update',
+ 'tarnija_arve' => 'vendor_invoice_',
+ 'jah' => 'yes',
+};
+
+1;
+
diff --git a/locale/ee_utf/hr b/locale/ee_utf/hr
new file mode 100755
index 00000000..eeb766c5
--- /dev/null
+++ b/locale/ee_utf/hr
@@ -0,0 +1,122 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP' => 'Kohustused',
+ 'Above' => 'Ãœlal',
+ 'Accounting Menu' => 'Raamatupidamise Menüü',
+ 'Active' => 'Aktiva',
+ 'Add Deduction' => 'Lisa Mahaarvamine',
+ 'Add Employee' => 'Lisa Töötaja',
+ 'Address' => 'Aadress',
+ 'Administrator' => 'Administraator',
+ 'After Deduction' => 'Peale Mahaarvamist',
+ 'All' => 'Kõik',
+ 'Allowances' => 'Arvestused',
+ 'Amount' => 'Summa',
+ 'Amount missing!' => 'Summa puudub!',
+ 'BIC' => 'BIC (S.W.I.F.T)',
+ 'Based on' => 'Põhineb',
+ 'Before Deduction' => 'Enne Mahaarvamisi',
+ 'Below' => 'All',
+ 'City' => 'Linn',
+ 'Continue' => 'Edasi',
+ 'Country' => 'Riik',
+ 'DOB' => 'Sünniaeg',
+ 'Deduct after' => 'Hinnaalandus pärast',
+ 'Deduction deleted!' => 'Hinnaalandus kustutatud!',
+ 'Deduction saved!' => 'Hinnaalandus salvestatud!',
+ 'Deductions' => 'Hinnaalandused',
+ 'Delete' => 'Kustuta',
+ 'Description' => 'Selgitus',
+ 'Description missing!' => 'Selgitus puudub!',
+ 'E-mail' => 'E-post',
+ 'Edit Deduction' => 'Muuda Mahaarvamine',
+ 'Edit Employee' => 'Muuda Töötaja',
+ 'Employee' => 'Töötaja',
+ 'Employee Name' => 'Töötaja Nimi',
+ 'Employee Number' => 'Töötaja Number',
+ 'Employee deleted!' => 'Töötaja kustutatud',
+ 'Employee pays' => 'Töötaja tasub',
+ 'Employee saved!' => 'Töötaja salvestatud',
+ 'Employees' => 'Töötajad',
+ 'Employer' => 'Tööandja',
+ 'Employer pays' => 'Tööandja tasub',
+ 'Enddate' => 'Lõputähtaeg',
+ 'Exempt age <' => 'Vabastus aeg <',
+ 'Expense' => 'Kulu',
+ 'From' => 'Alates',
+ 'Home Phone' => 'Kodune Telefon',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Inactive' => 'Passiivne',
+ 'Include in Report' => 'Kaasa Aruandesse',
+ 'Login' => 'Login',
+ 'Manager' => 'Juhataja',
+ 'Maximum' => 'Maksimum',
+ 'Name' => 'Nimi',
+ 'Name missing!' => 'Nimi puudu!',
+ 'Notes' => 'Märkused',
+ 'Number' => 'Kood',
+ 'Orphaned' => 'Seosteta',
+ 'Payroll Deduction' => 'Palgast Mahaarvestamine',
+ 'Pos' => 'NR.',
+ 'Rate' => 'Määr',
+ 'Rate missing!' => 'Määr puudu!',
+ 'Role' => 'Roll',
+ 'S' => 'Laupäev/Pühapäev',
+ 'SSN' => 'IK',
+ 'Sales' => 'Müük',
+ 'Save' => 'Salvesta',
+ 'Save as new' => 'Salvesta uuena',
+ 'Startdate' => 'Alguskuupäev',
+ 'State/Province' => 'Maakond',
+ 'Supervisor' => 'Ãœlevaataja',
+ 'To' => 'Kuni',
+ 'Update' => 'Uuenda',
+ 'User' => 'Kasutaja',
+ 'Work Phone' => 'Töötelefon',
+ 'Zip/Postal Code' => 'Postiindex',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'lisa_mahaarvamine' => 'add_deduction',
+ 'lisa_töötaja' => 'add_employee',
+ 'edasi' => 'continue',
+ 'kustuta' => 'delete',
+ 'salvesta' => 'save',
+ 'salvesta_uuena' => 'save_as_new',
+ 'uuenda' => 'update',
+};
+
+1;
+
diff --git a/locale/ee_utf/ic b/locale/ee_utf/ic
new file mode 100755
index 00000000..dee2f2e5
--- /dev/null
+++ b/locale/ee_utf/ic
@@ -0,0 +1,303 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'A' => 'A',
+ 'Accounting Menu' => 'Raamatupidamise Menüü',
+ 'Accounts' => 'Kontod',
+ 'Accrual' => 'Laekumine',
+ 'Active' => 'Aktiva',
+ 'Add' => 'Lisa',
+ 'Add Assembly' => 'Lisa komplekt',
+ 'Add Labor/Overhead' => 'Lisa Tööjõukulu',
+ 'Add Part' => 'Lisa Toote',
+ 'Add Purchase Order' => 'Lisa Ostutellimus',
+ 'Add Quotation' => 'Lisa Hinnapakkumus',
+ 'Add Request for Quotation' => 'Lisa Hinnapakkumuse Taotlus',
+ 'Add Sales Order' => 'Lisa Müügitellimus',
+ 'Add Service' => 'Lisa teenus',
+ 'Address' => 'Aadress',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprill',
+ 'Assemblies' => 'Komplektid',
+ 'Assemblies restocked!' => 'Komplektid lattu tagastatud!',
+ 'Assembly' => 'Komplekt',
+ 'Attachment' => 'Manus',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Average Cost' => 'Keskmine hind',
+ 'Avg Cost' => 'Keskmine hind',
+ 'BOM' => 'Materjaliarvestus',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Arve aadress',
+ 'Bin' => 'Kast',
+ 'Bin List' => 'Kasti sisu',
+ 'Break' => 'Katkesa',
+ 'COGS' => 'COGS',
+ 'COGS account does not exist!' => 'Müügikulude kontot puudu!',
+ 'Cannot create Assembly' => 'Ei saa luua Komplekti',
+ 'Cannot create Labor' => 'Ei saa luua Tööjõudu',
+ 'Cannot create Part' => 'Ei saa luua Detaili',
+ 'Cannot create Service' => 'Ei saa luua Teenust',
+ 'Cannot delete item!' => 'Toodet ei saa kustutada!',
+ 'Cannot stock assemblies!' => 'Ei saa ladustada koosteosi',
+ 'Cash' => 'Sularaha',
+ 'Cc' => 'Cc',
+ 'Check Inventory' => 'Kontrolli Laoseisu',
+ 'City' => 'Linn',
+ 'Closed' => 'Suletud',
+ 'Company Name' => 'Firma Nimi',
+ 'Components' => 'Komponendid',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Edasi',
+ 'Copies' => 'koopiat',
+ 'Cost' => 'Kulu',
+ 'Country' => 'Riik',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valuuta',
+ 'Customer' => 'Klient',
+ 'Customer Number' => 'Kliendi number',
+ 'Customer not on file!' => 'Klienti pole failis!',
+ 'Date' => 'Kuupäev',
+ 'Dec' => 'Dets',
+ 'December' => 'Detsember',
+ 'Delete' => 'Kustuta',
+ 'Delivery Date' => 'Kättetoimetamise kuupäev',
+ 'Description' => 'Selgitus',
+ 'Detail' => 'Detail',
+ 'Drawing' => 'Joonis',
+ 'E-mail' => 'E-post',
+ 'E-mail address missing!' => 'E-posti aadress puudu!',
+ 'E-mailed' => 'E-postiga saadetud',
+ 'Edit Assembly' => 'Muuda Komplekti',
+ 'Edit Labor/Overhead' => 'Muuda Tööjõu/Lisakulu',
+ 'Edit Part' => 'Muuda Toodet',
+ 'Edit Service' => 'Muuda Teenus',
+ 'Employee' => 'Töötaja',
+ 'Expense' => 'Kulu',
+ 'Expense account does not exist!' => 'Kulude konto puudu!',
+ 'Extended' => 'Summa',
+ 'Fax' => 'Faks',
+ 'Feb' => 'Veebr',
+ 'February' => 'Veebruar',
+ 'From' => 'Alates',
+ 'Group' => 'Grupp',
+ 'Image' => 'Pilt',
+ 'In-line' => 'Dokumendisisene',
+ 'Include in Report' => 'Kaasa aruandesse',
+ 'Income' => 'Kasum',
+ 'Income account does not exist!' => 'Tulude konto puudu!',
+ 'Individual Items' => 'Eraldiseisvad Ãœhikud',
+ 'Inventory' => 'Laoarvestus',
+ 'Inventory account does not exist!' => 'Laoseisu konto puudu!',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Enne komplekti aegunuks märkimist peab laoseis null olema!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Enne toote aegunuks märkimist peab laoseis null olema!',
+ 'Invoice' => 'Arve',
+ 'Invoice Date missing!' => 'Arve Kuupäev puudu!',
+ 'Invoice Number' => 'Arve Number',
+ 'Invoice Number missing!' => 'Arve Number puudu!',
+ 'Item' => 'Tooteühik',
+ 'Item deleted!' => 'Tooteühik kustutatud!',
+ 'Item not on file!' => 'Tooteühikut pole failis !',
+ 'Items' => 'Tooteühikud',
+ 'Jan' => 'Jaan',
+ 'January' => 'Jaanuar',
+ 'Jul' => 'Juul',
+ 'July' => 'Juuli',
+ 'Jun' => 'Juun',
+ 'June' => 'Juuni',
+ 'Labor/Overhead' => 'Tööjõu/Lisakulu',
+ 'Last Cost' => 'Viimane Maksumus',
+ 'Leadtime' => 'Tellimuse täitmisaeg',
+ 'Line Total' => 'Rea Summa',
+ 'Link Accounts' => 'Seosta Kontod',
+ 'List' => 'Kataloog',
+ 'List Price' => 'Kataloogi Hind',
+ 'Make' => 'Tootja',
+ 'Mar' => 'Mär',
+ 'March' => 'Märts',
+ 'Markup' => 'Kate',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Message' => 'Teade',
+ 'Microfiche' => 'Mikrokaart',
+ 'Model' => 'Mudel',
+ 'Name' => 'Nimi',
+ 'No History!' => 'Ajalugu Puudub!',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Märkmed',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Number',
+ 'Number missing in Row' => 'Antud real puudub Number',
+ 'OH' => 'Ãœlekulud',
+ 'Obsolete' => 'Aegunud',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktoober',
+ 'On Hand' => 'Laos',
+ 'Onhand' => 'Laoseis',
+ 'Open' => 'Avatud',
+ 'Order' => 'Tellimus',
+ 'Order Date missing!' => 'Tellimuse Kuupäev puudu!',
+ 'Order Number' => 'Tellimuse Number',
+ 'Order Number missing!' => 'Tellimuse Number puudu!',
+ 'Orphaned' => 'Seosteta',
+ 'PDF' => 'PDF',
+ 'PO' => 'Hanketellimus',
+ 'Packing List' => 'Saateleht',
+ 'Packing List Date missing!' => 'Saatelehe Kuupäev puudu!',
+ 'Packing List Number missing!' => 'Saatelehe Number puudu!',
+ 'Part' => 'Osa',
+ 'Parts' => 'Osad',
+ 'Parts Requirements' => 'Vajalikud Detailid',
+ 'Period' => 'Periood',
+ 'Phone' => 'Telefon',
+ 'Pick List' => 'Vali Kataloog',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Hind',
+ 'Pricegroup' => 'Hinnagrupp',
+ 'Printed' => 'Trükitud',
+ 'Project' => 'Projekt',
+ 'Purchase Order' => 'Ostutellimus',
+ 'Purchase Orders' => 'Ostutellimused',
+ 'Qty' => 'Kogus',
+ 'Quantity exceeds available units to stock!' => 'Kogus on suurem, kui laos olev hulk!',
+ 'Queue' => 'Järjekord',
+ 'Queued' => 'Järjekorras',
+ 'Quotation' => 'Hinnapakkumus',
+ 'Quotation Date missing!' => 'Hinnapakkumuse Kuupäev puudu!',
+ 'Quotation Number missing!' => 'Hinnapakkumuse Number puudu!',
+ 'Quotations' => 'Hinnapakkumused',
+ 'RFQ' => 'Hinnapakkumuse Taotlus',
+ 'ROP' => 'TM',
+ 'Recd' => 'Kättesaadud',
+ 'Required by' => 'Tarneaeg',
+ 'SKU' => 'Asenduskaup',
+ 'SO' => 'Müügitellimus',
+ 'Sales Invoice' => 'Müügiarve',
+ 'Sales Invoices' => 'Müügiarved',
+ 'Sales Order' => 'Müügitellimus',
+ 'Sales Orders' => 'Müügitellimused',
+ 'Save' => 'Salvesta',
+ 'Save as new' => 'Salvesta uuena',
+ 'Scheduled' => 'Planeeritud',
+ 'Screen' => 'Ekraan',
+ 'Select from one of the names below' => 'Vali üks alltoodud nimedest',
+ 'Select items' => 'Valitud hikud',
+ 'Select txt, postscript or PDF!' => 'Vali .txt, postscript või PDF!',
+ 'Sell' => 'Müük',
+ 'Sell Price' => 'Müügihind',
+ 'Sep' => 'Sept',
+ 'September' => 'September',
+ 'Serial No.' => 'Seeria Nr.',
+ 'Serial Number' => 'Seeria Number',
+ 'Service' => 'Teenus',
+ 'Services' => 'Teenused',
+ 'Ship' => 'Saatmine',
+ 'Ship to' => 'Tarneaadress',
+ 'Shipping Address' => 'Tarneaadress',
+ 'Short' => 'Lühike',
+ 'State/Province' => 'Maakond',
+ 'Stock' => 'Kaubavaru',
+ 'Stock Assembly' => 'Pakitud Kaubavaru',
+ 'Subject' => 'Pealkiri',
+ 'Subtotal' => 'Vahesumma',
+ 'Summary' => 'Kokkuvõte',
+ 'Tax' => 'Käibemaks',
+ 'Text' => 'Tekst',
+ 'To' => 'Kuni',
+ 'Top Level' => 'Kõrgtase',
+ 'Translation not on file!' => 'Tõlget pole failis',
+ 'Unit' => 'Ãœhik',
+ 'Update' => 'Värskenda',
+ 'Updated' => 'Värskendatud',
+ 'Vendor' => 'Tarnija',
+ 'Vendor Invoice' => 'Tarnija Arve',
+ 'Vendor Invoices' => 'Tarnija Arved',
+ 'Vendor Number' => 'Tarnija Number',
+ 'Vendor not on file!' => 'Tarnijat pole failis!',
+ 'Warehouse' => 'Ladu',
+ 'Weight' => 'Kaal',
+ 'What type of item is this?' => 'Mis tüüpi tooteühikuga on tegemist?',
+ 'Work Order' => 'Töökäsk',
+ 'Year' => 'Aasta',
+ 'Zip/Postal Code' => 'Postiindeks',
+ 'days' => 'päeva',
+ 'sent' => 'saadetud',
+ 'unexpected error!' => 'ootamatu viga!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'lisa_komplekt' => 'add_assembly',
+ 'lisa_tööjõukulu' => 'add_labor_overhead',
+ 'lisa_toote' => 'add_part',
+ 'lisa_teenus' => 'add_service',
+ 'edasi' => 'continue',
+ 'kustuta' => 'delete',
+ 'muuda_komplekti' => 'edit_assembly',
+ 'muuda_toodet' => 'edit_part',
+ 'muuda_teenus' => 'edit_service',
+ 'salvesta' => 'save',
+ 'salvesta_uuena' => 'save_as_new',
+ 'värskenda' => 'update',
+};
+
+1;
+
diff --git a/locale/ee_utf/io b/locale/ee_utf/io
new file mode 100755
index 00000000..f7958953
--- /dev/null
+++ b/locale/ee_utf/io
@@ -0,0 +1,139 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Add Purchase Order' => 'Lisa Ostutellimus',
+ 'Add Quotation' => 'Lisa Hinnapakkumus',
+ 'Add Request for Quotation' => 'Lisa Taotlus Hinnapakkumusele ',
+ 'Add Sales Order' => 'Lisa Müügitellimus',
+ 'Address' => 'Aadress',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprill',
+ 'Attachment' => 'Manus',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Arve Esitamise Aadress',
+ 'Bin' => 'Kast',
+ 'Bin List' => 'Kasti sisu',
+ 'Cc' => 'Cc',
+ 'City' => 'Linn',
+ 'Company Name' => 'Ettevõtte Nimi',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Edasi',
+ 'Copies' => 'Koopiat',
+ 'Country' => 'Riik',
+ 'Customer Number' => 'Kliendi Number',
+ 'Date' => 'Kuupäev',
+ 'Dec' => 'Dets',
+ 'December' => 'Detsember',
+ 'Delivery Date' => 'Kättetoimetamise Kuupäev',
+ 'Description' => 'Kirjeldus',
+ 'E-mail' => 'E-post',
+ 'E-mail address missing!' => 'E-posti aadress puudu!',
+ 'E-mailed' => 'E-postiga saadetud',
+ 'Extended' => 'Pikendatud',
+ 'Fax' => 'Faks',
+ 'Feb' => 'Veebr',
+ 'February' => 'Veebruar',
+ 'Group' => 'Grupp',
+ 'In-line' => 'Dokumendisisene',
+ 'Invoice' => 'Arve',
+ 'Invoice Date missing!' => 'Arve Kuupäev puudu!',
+ 'Invoice Number missing!' => 'Arve Number puudu!',
+ 'Item' => 'Tooteühik',
+ 'Item not on file!' => 'Tooteühikut ei ole failis!',
+ 'Jan' => 'Jaan',
+ 'January' => 'Jaanuar',
+ 'Jul' => 'Juul',
+ 'July' => 'Juuli',
+ 'Jun' => 'Juun',
+ 'June' => 'Juuni',
+ 'Mar' => 'Mär',
+ 'March' => 'Märts',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Message' => 'Teade',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Number',
+ 'Number missing in Row' => 'Real puudub Number',
+ 'OH' => 'Ãœlekulud',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktoober',
+ 'Order Date missing!' => 'Tellimuse Kuupäev puudu!',
+ 'Order Number missing!' => 'Tellimuse Number puudu!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Saateleht',
+ 'Packing List Date missing!' => 'Saatelehe Kuupäev puudu!',
+ 'Packing List Number missing!' => 'Saatelehe Number puudu!',
+ 'Part' => 'Detail',
+ 'Phone' => 'Telefon',
+ 'Pick List' => 'Valida Kataloog',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Hind',
+ 'Printed' => 'Trükitud',
+ 'Project' => 'Projekt',
+ 'Purchase Order' => 'Ostutellimus',
+ 'Qty' => 'Kogus',
+ 'Queue' => 'Järjekord',
+ 'Queued' => 'Järjekorras',
+ 'Quotation' => 'Hinnapakkumus',
+ 'Quotation Date missing!' => 'Hinnapakkumuse Kuupäev puudu!',
+ 'Quotation Number missing!' => 'Hinnapakkumuse Number puudu!',
+ 'Recd' => 'Kätte saadud',
+ 'Required by' => 'Tarneaeg',
+ 'SKU' => 'Asenduskaup',
+ 'Sales Order' => 'Müügitellimus',
+ 'Scheduled' => 'Planeeritud',
+ 'Screen' => 'Ekraan',
+ 'Select items' => 'Valitud tooted',
+ 'Select txt, postscript or PDF!' => 'Valida .txt, postscript või PDF!',
+ 'Sep' => 'Sept',
+ 'September' => 'September',
+ 'Serial No.' => 'Seeria NR.',
+ 'Service' => 'Teenus',
+ 'Ship' => 'Saatmine',
+ 'Ship to' => 'Saata:',
+ 'Shipping Address' => 'Vastuvõtja Aadress',
+ 'State/Province' => 'Riik/Maakond',
+ 'Subject' => 'Pealkiri',
+ 'Subtotal' => 'Vahesumma',
+ 'Text' => 'Tekst',
+ 'To' => 'Kuni',
+ 'Translation not on file!' => 'Failis pole tõlget',
+ 'Unit' => 'Ãœhik',
+ 'Vendor Number' => 'Tarnija Number',
+ 'What type of item is this?' => 'Mis tüüpi tootega on tegemist?',
+ 'Work Order' => 'Töökäsk',
+ 'Zip/Postal Code' => 'Postiindeks',
+ 'sent' => 'saadetud',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'edasi' => 'continue',
+};
+
+1;
+
diff --git a/locale/ee_utf/ir b/locale/ee_utf/ir
new file mode 100755
index 00000000..463efec5
--- /dev/null
+++ b/locale/ee_utf/ir
@@ -0,0 +1,259 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Raamatupidamise Menüü',
+ 'Add Purchase Order' => 'Lisa Ostutellimus',
+ 'Add Quotation' => 'Lisa Pakkumine',
+ 'Add Request for Quotation' => 'Lisa Taotlus Hinnapakkumusele',
+ 'Add Sales Order' => 'Lisa Müügitellimus',
+ 'Add Vendor Invoice' => 'Lisa Ostuarve',
+ 'Address' => 'Aadress',
+ 'Amount' => 'Summa',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprill',
+ 'Are you sure you want to delete Invoice Number' => 'Kas oled kindel, et soovid kustutada Arve Number',
+ 'Attachment' => 'Manus',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Arve aadress',
+ 'Bin' => 'Kast',
+ 'Bin List' => 'Kasti sisu',
+ 'Cannot delete invoice!' => 'Arvet ei saa kustutada',
+ 'Cannot post invoice for a closed period!' => 'Arvet ei saa salvestada suletud perioodile!',
+ 'Cannot post invoice!' => 'Arvet ei saa postitada!',
+ 'Cannot post payment for a closed period!' => 'Makset ei saa postitada suletud perioodil!',
+ 'Cc' => 'Cc',
+ 'City' => 'Linn',
+ 'Company Name' => 'Firma Nimi',
+ 'Confirm!' => 'Kinnita!',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Edasi',
+ 'Copies' => 'koopiat',
+ 'Country' => 'Riik',
+ 'Credit Limit' => 'Krediidilimiit',
+ 'Currency' => 'Valuuta',
+ 'Customer Number' => 'Kliendi number',
+ 'Customer not on file!' => 'Klienti pole failis!',
+ 'Date' => 'Kuupäev',
+ 'Day(s)' => 'Päev(a)',
+ 'Dec' => 'Dets',
+ 'December' => 'Detsember',
+ 'Delete' => 'Kustuta',
+ 'Delete Schedule' => 'Kustuta Ajakava',
+ 'Delivery Date' => 'Kättetoimetamise Kuupäev',
+ 'Department' => 'Osakond',
+ 'Description' => 'Selgitus',
+ 'Due Date' => 'Maksetähtaeg',
+ 'E-mail' => 'E-post',
+ 'E-mail address missing!' => 'E-postii aadress puudu',
+ 'E-mail message' => 'E-posti sõnum',
+ 'E-mailed' => 'E-postiga saadetud',
+ 'Edit Vendor Invoice' => 'Muuda Tarnija Ostuarvet',
+ 'Every' => 'Iga',
+ 'Exch' => 'Kurss',
+ 'Exchange Rate' => 'Valuutakurss',
+ 'Exchange rate for payment missing!' => 'Maksel puudub valuutakurss!',
+ 'Exchange rate missing!' => 'Valuutakurss puudu',
+ 'Extended' => 'Summa',
+ 'Fax' => 'Faks',
+ 'Feb' => 'Veebr',
+ 'February' => 'Veebruar',
+ 'For' => 'Saata',
+ 'Group' => 'Grupp',
+ 'In-line' => 'Dokumendisisene',
+ 'Include Payment' => 'Lisa Makse',
+ 'Internal Notes' => 'Sisemärkused',
+ 'Invoice' => 'Arve',
+ 'Invoice Date' => 'Arve Kuupäev',
+ 'Invoice Date missing!' => 'Arve Kuupäev puudu!',
+ 'Invoice Number' => 'Arve Number',
+ 'Invoice Number missing!' => 'Arve Number puudu!',
+ 'Invoice deleted!' => 'Arve kustutatud!',
+ 'Item' => 'Tooteühik',
+ 'Item not on file!' => 'Tooteühikut pole failis!',
+ 'Jan' => 'Jaan',
+ 'January' => 'Jaanuar',
+ 'Jul' => 'Juul',
+ 'July' => 'Juuli',
+ 'Jun' => 'Juun',
+ 'June' => 'Juuni',
+ 'Language' => 'Keel',
+ 'Mar' => 'Mär',
+ 'March' => 'Märts',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Memo',
+ 'Message' => 'Teade',
+ 'Month(s)' => 'Kuu(d)',
+ 'Next Date' => 'Järgmine Kuupäev',
+ 'Notes' => 'Märkused',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Kood',
+ 'Number missing in Row' => 'Real puudub Number',
+ 'OH' => 'Ãœlekulud',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktoober',
+ 'Order Date missing!' => 'Tellimuse Kuupäev puudu!',
+ 'Order Number' => 'Tellimuse Number',
+ 'Order Number missing!' => 'Tellimuse Number puudu!',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ostutellimuse Number',
+ 'Packing List' => 'Saateleht',
+ 'Packing List Date missing!' => 'Saatelehe Kuupäev puudu!',
+ 'Packing List Number missing!' => 'Saatelehe Number puudu!',
+ 'Part' => 'Detail',
+ 'Payment date missing!' => 'Maksekuupäev puudu!',
+ 'Payments' => 'Maksed',
+ 'Phone' => 'Telefon',
+ 'Pick List' => 'Vali Kataloog',
+ 'Post' => 'Postita',
+ 'Post as new' => 'Postita uuena',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Hind',
+ 'Print' => 'Trüki',
+ 'Printed' => 'Trükitud',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Projekti pole failis!',
+ 'Purchase Order' => 'Ostutellimus',
+ 'Qty' => 'Kogus',
+ 'Queue' => 'Järjekord',
+ 'Queued' => 'Järjekorras',
+ 'Quotation' => 'Hinnapakkumus',
+ 'Quotation Date missing!' => 'Hinnapakkumuse Kuupäev puudu!',
+ 'Quotation Number missing!' => 'Hinnapakkumise Number puudu!',
+ 'Recd' => 'Kätte toimetatud',
+ 'Record in' => 'Sihtkonto',
+ 'Recurring Transaction' => 'Korduvad Ãœlenakded',
+ 'Reference' => 'Viide',
+ 'Remaining' => 'Kasutamata',
+ 'Repeat' => 'Korrata',
+ 'Required by' => 'Tarneaeg',
+ 'SKU' => 'Asenduskaup',
+ 'Sales Order' => 'Müügitellimus',
+ 'Save Schedule' => 'Salvestada Ajakava',
+ 'Schedule' => 'Ajakava',
+ 'Scheduled' => 'Planeeritud',
+ 'Screen' => 'Ekraan',
+ 'Select from one of the names below' => 'Vali üks alltoodud nimedest',
+ 'Select from one of the projects below' => 'Vali üks alltoodud projektidest',
+ 'Select items' => 'Valitud hikud',
+ 'Select txt, postscript or PDF!' => 'Valida .txt, postscript või PDF!',
+ 'Sep' => 'Sept',
+ 'September' => 'September',
+ 'Serial No.' => 'Seeria Nr.',
+ 'Service' => 'Teenus',
+ 'Ship' => 'Tarnimine',
+ 'Ship to' => 'Tarnida aadressil',
+ 'Shipping Address' => 'Tarneaadress',
+ 'Source' => 'Allikas',
+ 'Startdate' => 'Alguskuupäev',
+ 'State/Province' => 'Riik/Maakond',
+ 'Subject' => 'Pealkiri',
+ 'Subtotal' => 'Vahesumma',
+ 'Tax Included' => 'Koos Käibemaksuga',
+ 'Text' => 'Tekst',
+ 'To' => 'Kuni',
+ 'Total' => 'Kokku',
+ 'Translation not on file!' => 'Tõlget pole failis!',
+ 'Unit' => 'Ãœhik',
+ 'Update' => 'Värskenda',
+ 'Vendor' => 'Tarnija',
+ 'Vendor Number' => 'Tarnija number',
+ 'Vendor missing!' => 'Tarnija puudub!',
+ 'Vendor not on file!' => 'Tarnijat pole failis!',
+ 'Warning!' => 'Ettevaatust!',
+ 'Week(s)' => 'Nädal(at)',
+ 'What type of item is this?' => 'Mis tüüpi tootega on tegemist?',
+ 'Work Order' => 'Töökäsk',
+ 'Year(s)' => 'Aasta(t)',
+ 'Yes' => 'Jah',
+ 'You are posting an existing transaction!' => 'Postitad juba olemasolevat kannet',
+ 'You are printing and posting an existing transaction!' => 'Trükida ja postitad juba olemasolevat kannet',
+ 'You are printing and saving an existing order' => 'Trükid ja salvestad juba olemasolevat arver',
+ 'You are printing and saving an existing quotation' => 'Trükid ja salvestad juba olemasolevat pakkumust',
+ 'You are saving an existing order' => 'Salvestad juba olemasolevat arvet',
+ 'You are saving an existing quotation' => 'Salvestad juba olemasolevat pakkumust',
+ 'Zip/Postal Code' => 'Postiindeks',
+ 'ea' => 'tk',
+ 'for' => 'läheb',
+ 'posted!' => 'salvestatud!',
+ 'sent' => 'saadetud',
+ 'time(s)' => 'korda(i)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'edasi' => 'continue',
+ 'kustuta' => 'delete',
+ 'kustuta_ajakava' => 'delete_schedule',
+ 'postita' => 'post',
+ 'postita_uuena' => 'post_as_new',
+ 'ostutellimus' => 'purchase_order',
+ 'salvestada_ajakava' => 'save_schedule',
+ 'ajakava' => 'schedule',
+ 'värskenda' => 'update',
+ 'jah' => 'yes',
+};
+
+1;
+
diff --git a/locale/ee_utf/is b/locale/ee_utf/is
new file mode 100755
index 00000000..4ab2e810
--- /dev/null
+++ b/locale/ee_utf/is
@@ -0,0 +1,273 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Raamatupidamise Menüü',
+ 'Add Purchase Order' => 'Lisa Ostutellimus',
+ 'Add Quotation' => 'Lisa Pakkumine',
+ 'Add Request for Quotation' => 'Lisa Taotlus Hinnapakkumusele',
+ 'Add Sales Invoice' => 'Lisa Müügiarve',
+ 'Add Sales Order' => 'Lisa Müügitellimus',
+ 'Address' => 'Aadress',
+ 'Amount' => 'Summa',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprill',
+ 'Are you sure you want to delete Invoice Number' => 'Kas oled kindel, et soovid kustutada arve',
+ 'Attachment' => 'Kaasatud fail',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Arve aadress',
+ 'Bin' => 'Kast',
+ 'Bin List' => 'Kasti sisu',
+ 'Business' => 'Ettevõte',
+ 'Cannot delete invoice!' => 'Arvet ei saa kustutada',
+ 'Cannot post invoice for a closed period!' => 'Arvet ei saa sisestada suletud perioodil!',
+ 'Cannot post invoice!' => 'Arvet ei saa salvestada!',
+ 'Cannot post payment for a closed period!' => 'Makset ei saa sisestada suletud perioodil!',
+ 'Cc' => 'Cc',
+ 'City' => 'Linn',
+ 'Company Name' => 'Firma Nimi',
+ 'Confirm!' => 'Kinnita!',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Edasi',
+ 'Copies' => 'Koopiat',
+ 'Country' => 'Riik',
+ 'Credit Limit' => 'Krediidilimiit',
+ 'Currency' => 'Valuuta',
+ 'Customer' => 'Klient',
+ 'Customer Number' => 'Kliendi Number',
+ 'Customer missing!' => 'Klient puudu!',
+ 'Customer not on file!' => 'Klient pole failis!',
+ 'Date' => 'Kuupäev',
+ 'Day(s)' => 'Päev(a)',
+ 'Dec' => 'Dets',
+ 'December' => 'Detsember',
+ 'Delete' => 'Kustuta',
+ 'Delete Schedule' => 'Kustuta Ajakava',
+ 'Delivery Date' => 'Tarne Kuupäev',
+ 'Department' => 'Osakond',
+ 'Description' => 'Selgitus',
+ 'Due Date' => 'Maksetähtaeg',
+ 'E-mail' => 'E-post',
+ 'E-mail address missing!' => 'E-posti aadress puudu',
+ 'E-mail message' => 'E-posti sõnum',
+ 'E-mailed' => 'E-postiga saadetud',
+ 'Edit Sales Invoice' => 'Muuda Müügiarve',
+ 'Every' => 'Iga',
+ 'Exch' => 'Kurss',
+ 'Exchange Rate' => 'Valuutakurss',
+ 'Exchange rate for payment missing!' => 'Maksel puudub valuutakurss!',
+ 'Exchange rate missing!' => 'Valuutakurss puudu!',
+ 'Extended' => 'Pikendatud',
+ 'Fax' => 'Faks',
+ 'Feb' => 'Veebr',
+ 'February' => 'Veebruar',
+ 'For' => 'Saata',
+ 'Group' => 'Grupp',
+ 'In-line' => 'Dokumendisisene',
+ 'Include Payment' => 'Lisa Makse',
+ 'Internal Notes' => 'Sisemärkused',
+ 'Invoice' => 'Arve',
+ 'Invoice Date' => 'Arve Kuupäev',
+ 'Invoice Date missing!' => 'Arve Kuupäev puudu!',
+ 'Invoice Number' => 'Arve Number',
+ 'Invoice Number missing!' => 'Arve Number puudu!',
+ 'Invoice deleted!' => 'Arve kustutatud!',
+ 'Item' => 'Tooteühik',
+ 'Item not on file!' => 'Tooteühik puudub failis!',
+ 'Jan' => 'Jaan',
+ 'January' => 'Jaanuar',
+ 'Jul' => 'Juul',
+ 'July' => 'Juuli',
+ 'Jun' => 'Juun',
+ 'June' => 'Juuni',
+ 'Mar' => 'Mär',
+ 'March' => 'Märts',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Memo',
+ 'Message' => 'Teade',
+ 'Month(s)' => 'Kuu(d)',
+ 'Next Date' => 'Järgmine Kuupäev',
+ 'Notes' => 'Märkused',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Number',
+ 'Number missing in Row' => 'Real puudub Number',
+ 'OH' => 'Ãœlekulud',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktoober',
+ 'Order Date missing!' => 'Tellimuse Kuupäev puudu!',
+ 'Order Number' => 'Tellimuse Number',
+ 'Order Number missing!' => 'Tellimuse Number puudu',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ostutellimuse Number',
+ 'Packing List' => 'Saateleht',
+ 'Packing List Date missing!' => 'Saatelehe Kuupäev puudu!',
+ 'Packing List Number missing!' => 'Saatelehe Number puudu!',
+ 'Part' => 'Toode',
+ 'Payment date missing!' => 'Maksetähtaeg puudu!',
+ 'Payments' => 'Maksed',
+ 'Phone' => 'Telefon',
+ 'Pick List' => 'Valida nimekiri',
+ 'Post' => 'Salvesta',
+ 'Post as new' => 'Salvesta uuena',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Hind',
+ 'Print' => 'Trüki',
+ 'Print and Post' => 'Trüki ja Postita',
+ 'Print and Post as new' => 'Trüki ja Postita uuena',
+ 'Printed' => 'Trükitud',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Projekti pole failis!',
+ 'Purchase Order' => 'Ostutellimus',
+ 'Qty' => 'Kogus',
+ 'Queue' => 'Järjekord',
+ 'Queued' => 'Järjekorras',
+ 'Quotation' => 'Hinnapakkumus',
+ 'Quotation Date missing!' => 'Hinnapakkumuse Kuupäev puudu!',
+ 'Quotation Number missing!' => 'Hinnapakkumuse Number puudu!',
+ 'Recd' => 'Kätte toimetatud',
+ 'Record in' => 'Sihtkonto',
+ 'Recurring Transaction' => 'Korduvad Ãœlenakded',
+ 'Reference' => 'Referenss',
+ 'Remaining' => 'Kasutamata',
+ 'Repeat' => 'Korrata',
+ 'Required by' => 'Tarneaeg',
+ 'SKU' => 'Asenduskaup',
+ 'Sales Order' => 'Müügitellimus',
+ 'Salesperson' => 'Müüja',
+ 'Save Schedule' => 'Salvesta Ajakava',
+ 'Schedule' => 'Ajakava',
+ 'Scheduled' => 'Planeeritud',
+ 'Screen' => 'Ekraan',
+ 'Select a Printer!' => 'Vali printer',
+ 'Select from one of the names below' => 'Vali üks alltoodud nimedest',
+ 'Select from one of the projects below' => 'Vali üks alltoodud projektidest',
+ 'Select items' => 'Vali tooteühikud',
+ 'Select postscript or PDF!' => 'Vali kas postscript või PDF',
+ 'Select txt, postscript or PDF!' => 'Vali .txt, postscript või PDF!',
+ 'Sep' => 'Sept',
+ 'September' => 'September',
+ 'Serial No.' => 'Seeria Nr.',
+ 'Service' => 'Teenus',
+ 'Ship' => 'Tarnimine',
+ 'Ship to' => 'Tarneaadress',
+ 'Ship via' => 'Tarneviis',
+ 'Shipping Address' => 'Tarneaadress',
+ 'Shipping Point' => 'Saadetise Sihtpunkt',
+ 'Source' => 'Allikas',
+ 'Startdate' => 'Alguskuupäev',
+ 'State/Province' => 'Riik/Maakond',
+ 'Subject' => 'Pealkiri',
+ 'Subtotal' => 'Vahesumma',
+ 'Tax Included' => 'Sisaldab Käibemaksu',
+ 'Text' => 'Tekst',
+ 'To' => 'Kuni',
+ 'Total' => 'Kokku',
+ 'Trade Discount' => 'Müügi Allahindlus',
+ 'Translation not on file!' => 'Tõlge puudub failis!',
+ 'Unit' => 'Ãœhik',
+ 'Update' => 'Värskenda',
+ 'Vendor Number' => 'Tarnija Number',
+ 'Vendor not on file!' => 'Tarnijat pole failis!',
+ 'Warning!' => 'Ettevaatust!',
+ 'Week(s)' => 'Nädal(at)',
+ 'What type of item is this?' => 'Mis tüüpi tootega on tegemist?',
+ 'Work Order' => 'Töökäsk',
+ 'Year(s)' => 'Aasta(t)',
+ 'Yes' => 'Jah',
+ 'You are posting an existing transaction!' => 'Postitad juba olemasolevat kannet',
+ 'You are printing and posting an existing transaction!' => 'Trükida ja postitad juba olemasolevat kannet',
+ 'You are printing and saving an existing order' => 'Trükid ja salvestad juba olemasolevat arver',
+ 'You are printing and saving an existing quotation' => 'Trükid ja salvestad juba olemasolevat pakkumust',
+ 'You are saving an existing order' => 'Salvestad juba olemasolevat arvet',
+ 'You are saving an existing quotation' => 'Salvestad juba olemasolevat pakkumust',
+ 'Zip/Postal Code' => 'Postiindeks',
+ 'ea' => 'tk',
+ 'for' => 'läheb',
+ 'posted!' => 'salvestatud!',
+ 'sent' => 'saadetud',
+ 'time(s)' => 'korda',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'edasi' => 'continue',
+ 'kustuta' => 'delete',
+ 'kustuta_ajakava' => 'delete_schedule',
+ 'e_post' => 'e_mail',
+ 'salvesta' => 'post',
+ 'salvesta_uuena' => 'post_as_new',
+ 'trüki' => 'print',
+ 'trüki_ja_postita' => 'print_and_post',
+ 'trüki_ja_postita_uuena' => 'print_and_post_as_new',
+ 'müügitellimus' => 'sales_order',
+ 'salvesta_ajakava' => 'save_schedule',
+ 'ajakava' => 'schedule',
+ 'tarneaadress' => 'ship_to',
+ 'värskenda' => 'update',
+ 'jah' => 'yes',
+};
+
+1;
+
diff --git a/locale/ee_utf/jc b/locale/ee_utf/jc
new file mode 100755
index 00000000..0184383d
--- /dev/null
+++ b/locale/ee_utf/jc
@@ -0,0 +1,157 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Raamatupidamise Menüü',
+ 'Add Stores Card' => 'Lisa Tagavarade Kaart',
+ 'Add Time Card' => 'Lisa Ajakaart',
+ 'Allocated' => 'Reserveeritud',
+ 'Amount' => 'Summa',
+ 'Are you sure you want to delete time card for' => 'Oled kindel, et soovid kustutada ajakardi',
+ 'Cannot add stores card for a completed job!' => 'Ei saa lisada tagavarade kaarti juba lõpetatud tööülesandele!',
+ 'Cannot add time card for a completed job!' => 'Ei saa lisada ajakaarti juba lõpetatud tööülesandele!',
+ 'Cannot change stores card for a completed job!' => 'Ei saa muuta tagavarade kaarti juba lõpetatud tööülesandele!',
+ 'Cannot change time card for a completed job!' => 'Ei saa muuta ajakaarti juba lõpetatud tööülesandele!',
+ 'Cannot delete time card!' => 'Ei saa kustutada ajakaarti!',
+ 'Cannot save stores card for a closed period!' => 'Ei saa salvestada tagavarade kaarti juba suletud perioodil!',
+ 'Cannot save stores card!' => 'Ei saa salvestada tagavarade kaarti!',
+ 'Cannot save time card for a closed period!' => 'Ei saa salvestada ajakaarti juba suletud perioodil!',
+ 'Cannot save time card!' => 'Ajakaarti ei saa salvestada!',
+ 'Chargeable' => 'Maksustatav',
+ 'Clocked' => 'Kulunud aeg',
+ 'Closed' => 'Suletud',
+ 'Confirm!' => 'Kinnita!',
+ 'Continue' => 'Edasi',
+ 'Cost' => 'Kulu',
+ 'Current' => 'Käesolev',
+ 'Date' => 'Kuupäev',
+ 'Date missing!' => 'Kuupäev puudu!',
+ 'Date worked' => 'Töötatud kuupäeval',
+ 'Delete' => 'Kustuta',
+ 'Description' => 'Selgitus',
+ 'Edit Time Card' => 'Muuda Ajakaarti',
+ 'Employee' => 'Töötaja',
+ 'Friday' => 'Reede',
+ 'From' => 'Alates',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Kaasata Aruandesse',
+ 'Job Description' => 'Ãœlesande Kirjeldus',
+ 'Job Name' => 'Ãœlesande Nimetus',
+ 'Job Number' => 'Ãœlesande Number',
+ 'Job Number missing!' => 'Ãœlesande Number on puudu!',
+ 'Labor Code' => 'Töötaja Kood',
+ 'Labor Code missing!' => 'Töötaja Kood puudu!',
+ 'Monday' => 'Esmaspäev',
+ 'Month' => 'Kuu',
+ 'No Employees on file!' => 'Failis puuduvad Töötajad',
+ 'No Labor codes on file!' => 'Failis puuduvad Töö koodid',
+ 'No Parts on file!' => 'Failis puuduvad Detailid',
+ 'No Services on file!' => 'Failis puuduvad Teenused',
+ 'No open Jobs!' => 'Puuduvad alustatud Ãœlesanded',
+ 'No open Projects!' => 'Puuduvad alustatud Projektid!',
+ 'Non-chargeable' => 'Maksuvaba',
+ 'Notes' => 'Märkused',
+ 'Open' => 'Avatud',
+ 'PDF' => 'PDF',
+ 'Part Number' => 'Detaili Number',
+ 'Period' => 'Periood',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Trüki',
+ 'Print and Save' => 'Trüki ja Salvesta',
+ 'Print and Save as new' => 'Trüki ja Salvesta uuena',
+ 'Printed' => 'Trükitud',
+ 'Project Name' => 'Projekti Nimi',
+ 'Project Number' => 'Projekti Number',
+ 'Project Number missing!' => 'Projekti Number puudu!',
+ 'Project/Job Name' => 'Projekti/Ãœlesande Nimi',
+ 'Project/Job Number' => 'Projekti/Ãœlesande Number',
+ 'Qty' => 'Kogus',
+ 'Quarter' => 'Kvartal',
+ 'Queue' => 'Järjekord',
+ 'Queued' => 'Järjekorras',
+ 'Saturday' => 'Laupäev',
+ 'Save' => 'Salvesta',
+ 'Save as new' => 'Salvesta uuena',
+ 'Screen' => 'Ekraan',
+ 'Select a Printer!' => 'Valida printer',
+ 'Select postscript or PDF!' => 'Vali postscript või PDF',
+ 'Service Code' => 'Teenuse Kood',
+ 'Service Code missing!' => 'Teenuse Kood puudu!',
+ 'Service/Labor Code' => 'Teenuse/Töö Kood',
+ 'Startdate' => 'Alguskuupäev',
+ 'Stores Card' => 'Tagavarade Kaart',
+ 'Stores Card saved!' => 'Tagavarade Kaart salvestatud!',
+ 'Stores Cards' => 'Tagavarade Kaardid',
+ 'Subtotal' => 'Vahesumma',
+ 'Sunday' => 'Pühapäev',
+ 'Thursday' => 'Neljapäev',
+ 'Time' => 'Aeg',
+ 'Time Card' => 'Ajakaart',
+ 'Time Card deleted!' => 'Ajakaart kustutatud!',
+ 'Time Card saved!' => 'Ajakaart salvestatud!',
+ 'Time Cards' => 'Ajakaardid',
+ 'Time In' => 'Aeg Sisse',
+ 'Time Out' => 'Aeg Välja',
+ 'To' => 'Kuni',
+ 'Total' => 'Kokku',
+ 'Tuesday' => 'Teisipäev',
+ 'Update' => 'Värskenda',
+ 'Warning!' => 'Ettevaatust!',
+ 'Wednesday' => 'Kolmapäev',
+ 'Year' => 'Aasta',
+ 'Yes' => 'Jah',
+ 'You are printing and saving an existing transaction!' => 'Trükid ja salvestad juba olemasolevat tehingut!',
+ 'You are saving an existing transaction!' => 'Salvestad juba olemasolevat tehingut"',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'lisa_tagavarade_kaart' => 'add_stores_card',
+ 'lisa_ajakaart' => 'add_time_card',
+ 'edasi' => 'continue',
+ 'kustuta' => 'delete',
+ 'trüki' => 'print',
+ 'trüki_ja_salvesta' => 'print_and_save',
+ 'trüki_ja_salvesta_uuena' => 'print_and_save_as_new',
+ 'salvesta' => 'save',
+ 'salvesta_uuena' => 'save_as_new',
+ 'värskenda' => 'update',
+ 'jah' => 'yes',
+};
+
+1;
+
diff --git a/locale/ee_utf/locales.pl b/locale/ee_utf/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/ee_utf/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/ee_utf/login b/locale/ee_utf/login
new file mode 100755
index 00000000..96d462e8
--- /dev/null
+++ b/locale/ee_utf/login
@@ -0,0 +1,27 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Access Denied!' => 'Ligipääs Keelatud!',
+ 'Company' => 'Firma',
+ 'Continue' => 'Edasi',
+ 'Dataset is newer than version!' => 'Andmestiku versioon on uuem, kui süsteemi oma!',
+ 'Incorrect Dataset version!' => 'Vale Andmestiku versioon!',
+ 'Login' => 'Logi sisse:',
+ 'Name' => 'Nimi',
+ 'Password' => 'Parool',
+ 'Upgrading to Version' => 'Uuendus Versioonini',
+ 'Version' => 'Versioon',
+ 'You did not enter a name!' => 'Nimi jäi sisestamata!',
+ 'done' => 'valmis',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ 'logi_sisse:' => 'login',
+};
+
+1;
+
diff --git a/locale/ee_utf/menu b/locale/ee_utf/menu
new file mode 100755
index 00000000..24ca4f11
--- /dev/null
+++ b/locale/ee_utf/menu
@@ -0,0 +1,145 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP' => 'Ostureskontro',
+ 'AP Aging' => 'OR Võlad',
+ 'AP Transaction' => 'OR kanne',
+ 'AR' => 'Müügireskontro',
+ 'AR Aging' => 'MR Võlglased',
+ 'AR Transaction' => 'MR Nõuete kanne',
+ 'Accounting Menu' => 'Raamatupidamise Menüü',
+ 'Add Account' => 'Lisa Konto',
+ 'Add Assembly' => 'Lisa Komplekt',
+ 'Add Business' => 'Lisa Ettevõte',
+ 'Add Customer' => 'Lisa Klient',
+ 'Add Department' => 'Lisa Osakond',
+ 'Add Employee' => 'Lisa Töötaja',
+ 'Add GIFI' => 'Lisa GIFI',
+ 'Add Group' => 'Lisa Grupp',
+ 'Add Labor/Overhead' => 'Lisa Tööjõukulu',
+ 'Add Language' => 'Lisa Keel',
+ 'Add Part' => 'Lisa Toote',
+ 'Add Pricegroup' => 'Lisa Hinnagrupp',
+ 'Add Project' => 'Lisa Projekt',
+ 'Add SIC' => 'Lisa Standardiseeritud Tööstuskood',
+ 'Add Service' => 'Lisa Teenus',
+ 'Add Time Card' => 'Lisa Ajakaart',
+ 'Add Transaction' => 'Lisa Kanne',
+ 'Add Vendor' => 'Lisa Tarnija',
+ 'Add Warehouse' => 'Lisa Ladu',
+ 'All Items' => 'Kõik ühikud',
+ 'Assemblies' => 'Komplektid',
+ 'Audit Control' => 'Auditeerimine',
+ 'Backup' => 'Varukoopia',
+ 'Balance Sheet' => 'Bilansitabel',
+ 'Batch Printing' => 'Mass. Väljatrükk',
+ 'Bin List' => 'Kasti Nimekiri',
+ 'Bin Lists' => 'Kasti Nimekirjad',
+ 'Cash' => 'Kassa',
+ 'Chart of Accounts' => 'Kontoplaan',
+ 'Check' => 'TÅ¡ekk',
+ 'Components' => 'Komponendid',
+ 'Consolidate' => 'Koonda',
+ 'Customers' => 'Kliendid',
+ 'Defaults' => 'Vaikeväärtused',
+ 'Departments' => 'Osakonnad',
+ 'Description' => 'Selgitus',
+ 'Employees' => 'Töötajad',
+ 'General Ledger' => 'Pearaamat',
+ 'Generate' => 'Genereeri',
+ 'Goods & Services' => 'Tooted ja Teenused',
+ 'Groups' => 'Grupid',
+ 'HR' => 'Personal',
+ 'HTML Templates' => 'HTML Dokumendipõhjad',
+ 'History' => 'Ajalugu',
+ 'Income Statement' => 'Kasumiaruanne',
+ 'Invoice' => 'Arve',
+ 'LaTeX Templates' => 'LaTeX Dokumendipõhjad',
+ 'Labor/Overhead' => 'Tööjõu/Lisakulu',
+ 'Language' => 'Keel',
+ 'List Accounts' => 'Kontode Nimekiri',
+ 'List Businesses' => 'Ettevõtete Nimekiri',
+ 'List Departments' => 'Osakondade Nimekiri',
+ 'List GIFI' => 'GIFI Nimekiri',
+ 'List Languages' => 'Keelte Nimekiri',
+ 'List Projects' => 'Projektide Nimekiri',
+ 'List SIC' => 'Standardiseeritud Tööstuskoodide Nimekiri',
+ 'List Warehouses' => 'Ladude Nimekiri',
+ 'Logout' => 'Logi välja',
+ 'New Window' => 'Uus Aken',
+ 'Non-taxable' => 'Maksuvaba',
+ 'Open' => 'Ava',
+ 'Order Entry' => 'Tellimuse Sisestus',
+ 'Outstanding' => 'Tasumata nõuded',
+ 'POS' => 'Müügipunkt?!',
+ 'POS Invoice' => 'POS Arve',
+ 'Packing List' => 'Saateleht',
+ 'Packing Lists' => 'Saatelehed',
+ 'Parts' => 'Osad',
+ 'Payment' => 'Maksmine',
+ 'Payments' => 'Maksed',
+ 'Pick List' => 'Valida Nimekiri',
+ 'Pick Lists' => 'Valida Nimekirjad',
+ 'Preferences' => 'Määrangud',
+ 'Pricegroups' => 'Hinnagrupid',
+ 'Print' => 'Trüki',
+ 'Projects' => 'Projektid',
+ 'Purchase Order' => 'Ostutellimus',
+ 'Purchase Orders' => 'Ostutellimused',
+ 'Quotation' => 'Hinnapakkumus',
+ 'Quotations' => 'Hinnapakkumused',
+ 'RFQ' => 'Hinnapakkumuse Taotlus',
+ 'RFQs' => 'Hinnapakkumuse Taotlused',
+ 'Receipt' => 'Maksekviitung',
+ 'Receipts' => 'Sissetulek',
+ 'Receive' => 'Kauba Vastuvõtmine',
+ 'Reconciliation' => 'Tasaarveldus?!',
+ 'Recurring Transactions' => 'Korduvad Tehingud',
+ 'Reports' => 'Aruanded',
+ 'Requirements' => 'Nõuded',
+ 'SIC' => 'Standardiseeritud Tööstuskood',
+ 'Sale' => 'Müük',
+ 'Sales Invoice' => 'Müügiarve',
+ 'Sales Invoices' => 'Müügiarved',
+ 'Sales Order' => 'Müügitellimus',
+ 'Sales Orders' => 'Müügitellimused',
+ 'Save to File' => 'Salvesta Faili',
+ 'Search' => 'Otsi',
+ 'Send by E-Mail' => 'Saada E-postiga',
+ 'Services' => 'Teenused',
+ 'Ship' => 'Kauba Saatmine',
+ 'Shipping' => 'Kohaletoimetus',
+ 'Statement' => 'Aruanne',
+ 'Stock Assembly' => 'Komplekti lattu võtmine',
+ 'Stylesheet' => 'Laadileht',
+ 'System' => 'Süsteem',
+ 'Tax collected' => 'Kogutud käibemaks',
+ 'Tax paid' => 'Makstud käibemaks',
+ 'Text Templates' => 'Tekstipõhised Dokumendipõhjad',
+ 'Time Card' => 'Ajakaart',
+ 'Time Cards' => 'Ajakaardid',
+ 'Transactions' => 'Kanded',
+ 'Transfer' => 'Liikumine',
+ 'Transfer Inventory' => 'Laoliikumine',
+ 'Translations' => 'Tõlked',
+ 'Trial Balance' => 'Proovibilanss',
+ 'Type of Business' => 'Ettevõtte Tüüp',
+ 'Vendor Invoice' => 'Tarnija Arve',
+ 'Vendors' => 'Tarnijad',
+ 'Version' => 'Versioon',
+ 'Warehouses' => 'Laod',
+ 'Work Order' => 'Töökäsk',
+ 'Work Orders' => 'Töökäsud',
+ 'Yearend' => 'Aasta lõpp',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/ee_utf/oe b/locale/ee_utf/oe
new file mode 100755
index 00000000..821ce76d
--- /dev/null
+++ b/locale/ee_utf/oe
@@ -0,0 +1,380 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Raamatupidamise Menüü',
+ 'Add Exchange Rate' => 'Lisa Vahetuskurss',
+ 'Add Purchase Order' => 'Lisa Ostutellimus',
+ 'Add Quotation' => 'Lisa Pakkumus',
+ 'Add Request for Quotation' => 'Lisa Taotlus Hinnapakkumusele',
+ 'Add Sales Invoice' => 'Lisa Müügiarve',
+ 'Add Sales Order' => 'Lisa Müügitellimus',
+ 'Add Vendor Invoice' => 'Lisa Tarnija Ostuarve',
+ 'Address' => 'Aadress',
+ 'Amount' => 'Summa',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprill',
+ 'Are you sure you want to delete Order Number' => 'Kas oled kindel, et soovid kustutada tellimuse',
+ 'Are you sure you want to delete Quotation Number' => 'Kas oled kindel, et soovid kustutada pakkumise',
+ 'Attachment' => 'Manus',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Arve esitamise aadress',
+ 'Bin' => 'Kast',
+ 'Bin List' => 'Kasti Sisu',
+ 'Business' => 'Ettevõte',
+ 'C' => 'C',
+ 'Cannot delete order!' => 'Tellimust ei saa kustutada!',
+ 'Cannot delete quotation!' => 'Hinnapakkumist ei saa kustutada!',
+ 'Cannot save order!' => 'Arvet ei saa salvestada!',
+ 'Cannot save quotation!' => 'Hinnapakkumist ei saa salvestada!',
+ 'Cc' => 'Cc',
+ 'City' => 'Linn',
+ 'Closed' => 'Suletud',
+ 'Company Name' => 'Firma Nimi',
+ 'Confirm!' => 'Kinnita!',
+ 'Consolidate Orders' => 'Tellimuste Koondamine',
+ 'Consolidate Purchase Orders' => 'Ostutellimuste Koondamine',
+ 'Consolidate Sales Orders' => 'Müügitellimuste Koondamine',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Edasi',
+ 'Copies' => 'koopiat',
+ 'Cost' => 'Kulu',
+ 'Could not save!' => 'Ei saa salvestada!',
+ 'Could not transfer Inventory!' => 'Laoartiklit ei saa üle viia!',
+ 'Country' => 'Riik',
+ 'Credit Limit' => 'Krediidilimiit',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valuuta',
+ 'Current' => 'Käesolev',
+ 'Customer' => 'Klient',
+ 'Customer Number' => 'Kliendi Number',
+ 'Customer missing!' => 'Klient pole määratud!',
+ 'Customer not on file!' => 'Klient puudub failis!',
+ 'Date' => 'Kuupäev',
+ 'Date Received' => 'Kättesaamise Kuupäev',
+ 'Date received missing!' => 'Kattesaamise kuupäev puudu!',
+ 'Day(s)' => 'Päev(a)',
+ 'Dec' => 'Dets',
+ 'December' => 'Detsember',
+ 'Delete' => 'Kustuta',
+ 'Delete Schedule' => 'Kustutata Ajakava',
+ 'Delivery Date' => 'Kättetoimetamise Kuupäev',
+ 'Department' => 'Osakond',
+ 'Description' => 'Selgitus',
+ 'Done' => 'Valmis',
+ 'E-mail' => 'E-Post',
+ 'E-mail address missing!' => 'E-posti aadress puudub!',
+ 'E-mail message' => 'E-posti sõnum',
+ 'E-mailed' => 'E-mailiga saadetud',
+ 'Edit Purchase Order' => 'Muuda Ostutellimus',
+ 'Edit Quotation' => 'Muuda Hinnapakkumus',
+ 'Edit Request for Quotation' => 'Muuda Hinnapakkumuse Taotlus',
+ 'Edit Sales Order' => 'Muuda Müügitellimus',
+ 'Employee' => 'Töötaja',
+ 'Every' => 'Iga',
+ 'Exchange Rate' => 'Valuutakurss',
+ 'Exchange rate missing!' => 'Valuutakurssi ei ole',
+ 'Extended' => 'Summa',
+ 'Fax' => 'Faks',
+ 'Feb' => 'Veebr',
+ 'February' => 'Veebruar',
+ 'For' => 'Saata',
+ 'From' => 'Alates',
+ 'From Warehouse' => 'Laost',
+ 'Generate Orders' => 'Genereerida Arved',
+ 'Generate Purchase Orders' => 'Genereeri Ostutellimused',
+ 'Generate Purchase Orders from Sales Order' => 'Genereeri Ostutellimused Müügitellimustest',
+ 'Generate Sales Order' => 'Genereeri Müügitellimused',
+ 'Generate Sales Order from Purchase Orders' => 'Genereeri Müügitellimused Ostutellimustest',
+ 'Group' => 'Grupp',
+ 'ID' => 'ID',
+ 'In-line' => 'Dokumendisisene',
+ 'Include Payment' => 'Lisa Makse',
+ 'Include in Report' => 'Kaasa aruandesse',
+ 'Internal Notes' => 'Sisemärkused',
+ 'Inventory saved!' => 'Laoartiklid salvestatud!',
+ 'Inventory transferred!' => 'Laoartiklid üleviidud!',
+ 'Invoice' => 'Arve',
+ 'Invoice Date missing!' => 'Arve Kuupäev puudu!',
+ 'Invoice Number missing!' => 'Arve Number puudu!',
+ 'Item' => 'Tooteühik',
+ 'Item not on file!' => 'Tooteühik puudub failis!',
+ 'Jan' => 'Jaan',
+ 'January' => 'Jaanuar',
+ 'Jul' => 'Juul',
+ 'July' => 'Juuli',
+ 'Jun' => 'Juun',
+ 'June' => 'Juuni',
+ 'Lead' => 'Juhtimine',
+ 'Manager' => 'Juhataja',
+ 'Mar' => 'Mär',
+ 'March' => 'Märts',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Message' => 'Teade',
+ 'Month' => 'Kuu',
+ 'Month(s)' => 'Kuu(d)',
+ 'Next Date' => 'Järgmine Kuupäev',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Märkmed',
+ 'Nothing entered!' => 'Midagi pole sisestatud!',
+ 'Nothing selected!' => 'Valik puudub!',
+ 'Nothing to transfer!' => 'Pole midagi üle kanda!',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Kood',
+ 'Number missing in Row' => 'Real puudub Number',
+ 'O' => 'Avatud',
+ 'OH' => 'Ãœlekulud',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktoober',
+ 'Open' => 'Avatud',
+ 'Order' => 'Tellimus',
+ 'Order Date' => 'Tellimuse Kuupäev',
+ 'Order Date missing!' => 'Tellimuse Kuupäev puudu!',
+ 'Order Number' => 'Tellimuse Number',
+ 'Order Number missing!' => 'Tellimuse Number puudu',
+ 'Order deleted!' => 'Tellimus kustutatud!',
+ 'Order generation failed!' => 'Arve genereerimine ebaõnnestus!',
+ 'Order saved!' => 'Tellimus salvestatud!',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ostutellimuse Number',
+ 'Packing List' => 'Saateleht',
+ 'Packing List Date missing!' => 'Saatelehe Kuupäev puudu!',
+ 'Packing List Number missing!' => 'Saatelehe Number puudu!',
+ 'Part' => 'Detail',
+ 'Part Number' => 'Deaili Number',
+ 'Period' => 'Periood',
+ 'Phone' => 'Telefon',
+ 'Pick List' => 'Vali Kataloog',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Hind',
+ 'Print' => 'Trüki',
+ 'Print and Save' => 'Trüki ja Salvesta',
+ 'Print and Save as new' => 'Trüki ja Salvesta uuena',
+ 'Printed' => 'Trükitud',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Projekti pole failis!',
+ 'Purchase Order' => 'Ostutellimus',
+ 'Purchase Orders' => 'Ostutellimused',
+ 'Qty' => 'Kogus',
+ 'Quarter' => 'Kvartal',
+ 'Queue' => 'Järjekord',
+ 'Queued' => 'Järjekorras',
+ 'Quotation' => 'Hinnapakkumus',
+ 'Quotation ' => 'Koteering',
+ 'Quotation Date' => 'Hinnapakkumuse Kuupäev',
+ 'Quotation Date missing!' => 'Hinnapakkumuse Kuupäev puudu!',
+ 'Quotation Number' => 'Hinnapakkumuse Number',
+ 'Quotation Number missing!' => 'Hinnapakkumuse Number puudu!',
+ 'Quotation deleted!' => 'Hinnapakkumus kustutatud!',
+ 'Quotations' => 'Hinnapakkumused',
+ 'RFQ' => 'Hinnapakkumuse Taotlus',
+ 'RFQ ' => 'Hinnapakkumuse Taotlus',
+ 'RFQ Number' => 'Hinnapakkumuse Taotluse nr.',
+ 'Recd' => 'Kätte toimetatud',
+ 'Receive Merchandise' => 'Kauba Vastuvõtt',
+ 'Recurring Transaction' => 'Korduvad Ãœlenakded',
+ 'Reference' => 'Referenss',
+ 'Remaining' => 'Kasutamata',
+ 'Repeat' => 'Korrata',
+ 'Req' => 'Vajalik',
+ 'Request for Quotation' => 'Hinnapakkumise Taotlus',
+ 'Request for Quotations' => 'Hinnapakkumise Taotlused',
+ 'Required by' => 'Tarneaeg',
+ 'SKU' => 'Asenduskaup',
+ 'Sales Invoice' => 'Müügiarve',
+ 'Sales Order' => 'Müügitellimus',
+ 'Sales Orders' => 'Müügitellimused',
+ 'Salesperson' => 'Müügiesindaja',
+ 'Save' => 'Salvesta',
+ 'Save Schedule' => 'Salvestada Ajakava',
+ 'Save as new' => 'Salvesta uuena',
+ 'Schedule' => 'Ajakava',
+ 'Scheduled' => 'Planeeritud',
+ 'Screen' => 'Ekraan',
+ 'Select Vendor' => 'Vali Tarnija',
+ 'Select a Printer!' => 'Vali Printer',
+ 'Select from one of the names below' => 'Vali üks alltoodud nimedest',
+ 'Select from one of the projects below' => 'Vali üks alltoodud projektidest',
+ 'Select items' => 'Valitud tooteühikud',
+ 'Select postscript or PDF!' => 'Vali kas postscript või PDF',
+ 'Select txt, postscript or PDF!' => 'Valida .txt, postscript või PDF!',
+ 'Sep' => 'Sept',
+ 'September' => 'September',
+ 'Serial No.' => 'Seeria Nr.',
+ 'Service' => 'Teenus',
+ 'Ship' => 'Tarnimine',
+ 'Ship Merchandise' => 'Kauba Saatmine',
+ 'Ship to' => 'Tarneaadress',
+ 'Ship via' => 'Tarneviis',
+ 'Shipping Address' => 'Tarneaadress',
+ 'Shipping Date' => 'Tarne Kuupäev',
+ 'Shipping Date missing!' => 'Tarne Kuupäev puudub',
+ 'Shipping Point' => 'Saadetise Sihtpunkt',
+ 'Startdate' => 'Alguskuupäev',
+ 'State/Province' => 'Riik/Maakond',
+ 'Subject' => 'Pealkiri',
+ 'Subtotal' => 'Vahesumma',
+ 'Tax' => 'Maksud',
+ 'Tax Included' => 'Koos Maksuga',
+ 'Terms' => 'Maksetingimused',
+ 'Text' => 'Tekst',
+ 'To' => 'Kuni',
+ 'To Warehouse' => 'Lattu',
+ 'Total' => 'Kokku',
+ 'Trade Discount' => 'Kauba Allahindlus',
+ 'Transfer' => 'Ãœlekanne',
+ 'Transfer Inventory' => 'Lao Liikumised',
+ 'Transfer from' => 'Viia üle laost',
+ 'Transfer to' => 'Viia üle lattu',
+ 'Translation not on file!' => 'Tõlget pole failis',
+ 'Unit' => 'Ãœhik',
+ 'Update' => 'Uuenda',
+ 'Valid until' => 'Kehtiv kuni',
+ 'Vendor' => 'Tarnija',
+ 'Vendor Invoice' => 'Tarnija Arve',
+ 'Vendor Number' => 'Tarnija Number',
+ 'Vendor missing!' => 'Tarnija puudub!',
+ 'Vendor not on file!' => 'Tarnijat pole failis!',
+ 'Warehouse' => 'Ladu',
+ 'Warning!' => 'Ettevaatust!',
+ 'Week(s)' => 'Nädal(at)',
+ 'What type of item is this?' => 'Mis tüüpi tootega on tegemist?',
+ 'Work Order' => 'Töökäsk',
+ 'Year' => 'Aasta',
+ 'Year(s)' => 'Aasta(t)',
+ 'Yes' => 'Jah',
+ 'You are posting an existing transaction!' => 'Postitad juba olemasolevat kannet',
+ 'You are printing and posting an existing transaction!' => 'Trükida ja postitad juba olemasolevat kannet',
+ 'You are printing and saving an existing order' => 'Trükid ja salvestad juba olemasolevat arver',
+ 'You are printing and saving an existing quotation' => 'Trükid ja salvestad juba olemasolevat pakkumust',
+ 'You are saving an existing order' => 'Salvestad juba olemasolevat arvet',
+ 'You are saving an existing quotation' => 'Salvestad juba olemasolevat pakkumust',
+ 'Zip/Postal Code' => 'Postiindeks',
+ 'days' => 'päeva',
+ 'ea' => 'tk',
+ 'for' => 'läheb',
+ 'sent' => 'saadetud',
+ 'time(s)' => 'kord(a)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'tellimuste_koondamine' => 'consolidate_orders',
+ 'edasi' => 'continue',
+ 'kustuta' => 'delete',
+ 'kustutata_ajakava' => 'delete_schedule',
+ 'valmis' => 'done',
+ 'e_post' => 'e_mail',
+ 'genereerida_arved' => 'generate_orders',
+ 'genereeri_ostutellimused' => 'generate_purchase_orders',
+ 'genereeri_müügitellimused' => 'generate_sales_order',
+ 'trüki' => 'print',
+ 'trüki_ja_salvesta' => 'print_and_save',
+ 'trüki_ja_salvesta_uuena' => 'print_and_save_as_new',
+ 'ostutellimus' => 'purchase_order',
+ 'hinnapakkumus' => 'quotation',
+ 'koteering' => 'quotation_',
+ 'hinnapakkumuse_taotlus' => 'rfq',
+ 'hinnapakkumuse_taotlus' => 'rfq_',
+ 'müügiarve' => 'sales_invoice',
+ 'müügitellimus' => 'sales_order',
+ 'salvesta' => 'save',
+ 'salvestada_ajakava' => 'save_schedule',
+ 'salvesta_uuena' => 'save_as_new',
+ 'ajakava' => 'schedule',
+ 'vali_tarnija' => 'select_vendor',
+ 'tarneaadress' => 'ship_to',
+ 'Ãœlekanne' => 'transfer',
+ 'uuenda' => 'update',
+ 'tarnija_arve' => 'vendor_invoice',
+ 'jah' => 'yes',
+};
+
+1;
+
diff --git a/locale/ee_utf/pe b/locale/ee_utf/pe
new file mode 100755
index 00000000..ea63b318
--- /dev/null
+++ b/locale/ee_utf/pe
@@ -0,0 +1,168 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Raamatupidamise Menüü',
+ 'Active' => 'Aktiva',
+ 'Add' => 'Lisa',
+ 'Add Group' => 'Lisa Grupp',
+ 'Add Job' => 'Lisa Ãœlesanne',
+ 'Add Pricegroup' => 'Lisa Hinnagrupp',
+ 'Add Project' => 'Lisa Projekt',
+ 'Address' => 'Aadress',
+ 'All' => 'Kõik',
+ 'Amount' => 'Summa',
+ 'As of' => 'Nagu',
+ 'Assembly' => 'Komplekt',
+ 'Assembly stocked!' => 'Valmistoode ladustatud',
+ 'Bin' => 'Kast',
+ 'Cannot stock Assembly!' => 'Ei saa Valmistoodet ladustada!',
+ 'Completed' => 'Valmis',
+ 'Continue' => 'Edasi',
+ 'Current' => 'Käesolev',
+ 'Customer' => 'Klient',
+ 'Customer missing!' => 'Klient puudu!',
+ 'Customer not on file!' => 'Klient pole failis!',
+ 'Date' => 'Kuupäev',
+ 'Delete' => 'Kustuta',
+ 'Description' => 'Selgitus',
+ 'Description Translations' => 'Lausendi Selgitus',
+ 'Detail' => 'Detail',
+ 'Edit Description Translations' => 'Muuda Lausendi Selgitust',
+ 'Edit Group' => 'Muuda Grupp',
+ 'Edit Job' => 'Muuda Ãœlesanne',
+ 'Edit Pricegroup' => 'Muuda Hinnagrupp',
+ 'Edit Project' => 'Muuda Projekt',
+ 'Employee' => 'Töötaja',
+ 'Enddate' => 'Lõputähtaeg',
+ 'Failed to save order!' => 'Viga arve salvestamisel!',
+ 'From' => 'Kellelt',
+ 'Generate Sales Orders' => 'Genereerida Müügiarved',
+ 'Group' => 'Grupp',
+ 'Group Translations' => 'Grupeeri Tõlked',
+ 'Group deleted!' => 'Grupp kustutatud!',
+ 'Group missing!' => 'Grupp puudub!',
+ 'Group saved!' => 'Grupp salvestatud!',
+ 'Groups' => 'Grupid',
+ 'Inactive' => 'Passiivne',
+ 'Income' => 'Kasum',
+ 'Job' => 'Ãœlesanne',
+ 'Job Number' => 'Ãœlesande Number',
+ 'Job deleted!' => 'Ãœlesanne on kustutatud',
+ 'Job saved!' => 'Ãœlesanne salvestatud',
+ 'Jobs' => 'Ãœlesanded',
+ 'Language' => 'Keel',
+ 'Languages not defined!' => 'Keeled defineerimata!',
+ 'Link Accounts' => 'Seosta Kontod',
+ 'List Price' => 'Hinnakirja Hind',
+ 'Month' => 'Kuu',
+ 'No open Projects!' => 'Puuduvad avatud Projektid!',
+ 'Notes' => 'Märkused',
+ 'Nothing selected!' => 'Midagi pole valitud!',
+ 'Number' => 'Number',
+ 'Orders generated!' => 'Arved genereeritud',
+ 'Orphaned' => 'Seosteta',
+ 'Part Number' => 'Detaili Number',
+ 'Period' => 'Periood',
+ 'Pricegroup' => 'Hinnagrupp',
+ 'Pricegroup deleted!' => 'Hinnagrupp kustutatud!',
+ 'Pricegroup missing!' => 'Hinnagrupp puudub!',
+ 'Pricegroup saved!' => 'Hinnagrup salvestatud!',
+ 'Pricegroups' => 'Hinnagrupid',
+ 'Production' => 'Tootmine',
+ 'Project' => 'Projekt',
+ 'Project Description Translations' => 'Projekti Kirjelduse Selgitus',
+ 'Project Number' => 'Projekti Number',
+ 'Project deleted!' => 'Projekt kustutatud!',
+ 'Project saved!' => 'Projekt salvestatud!',
+ 'Projects' => 'Projektid',
+ 'Qty' => 'Kogus',
+ 'Quarter' => 'Kvartal',
+ 'Save' => 'Salvesta',
+ 'Select Customer' => 'Valida klient',
+ 'Select from one of the names below' => 'Vali üks alltoodud nimedest',
+ 'Sell Price' => 'Müügihind',
+ 'Service Code' => 'Teenuse Kood',
+ 'Startdate' => 'Alguskuupäev',
+ 'Stock Finished Goods' => 'Ladusta Valmistoodang',
+ 'Summary' => 'Kokkuvõtte',
+ 'Tax' => 'Käibemaks',
+ 'To' => 'Kuni',
+ 'Transaction Dates' => 'Ülekannete Kuupäevad',
+ 'Translation' => 'Tõlge',
+ 'Translation deleted!' => 'Tõlge kustutatud',
+ 'Translations saved!' => 'Tõlked salvestatud',
+ 'Unit' => 'Ãœhik',
+ 'Update' => 'Värskenda',
+ 'Updated' => 'Värskendatud',
+ 'Vendor' => 'Tarnija',
+ 'Vendor not on file!' => 'Tarnijat pole failis!',
+ 'Weight' => 'Kaal',
+ 'Year' => 'Aasta',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'lisa_grupp' => 'add_group',
+ 'lisa_Ãœlesanne' => 'add_job',
+ 'lisa_hinnagrupp' => 'add_pricegroup',
+ 'lisa_projekt' => 'add_project',
+ 'edasi' => 'continue',
+ 'kustuta' => 'delete',
+ 'genereerida_müügiarved' => 'generate_sales_orders',
+ 'salvesta' => 'save',
+ 'valida_klient' => 'select_customer',
+ 'värskenda' => 'update',
+};
+
+1;
+
diff --git a/locale/ee_utf/pos b/locale/ee_utf/pos
new file mode 100755
index 00000000..963b49b4
--- /dev/null
+++ b/locale/ee_utf/pos
@@ -0,0 +1,83 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Raamatupidamise Menüü',
+ 'Add POS Invoice' => 'Lisada Müügipunkti Arve',
+ 'Amount' => 'Summa',
+ 'Business' => 'Ettevõte',
+ 'Cannot post transaction!' => 'Kannet ei saa postitada!',
+ 'Change' => 'Muuda',
+ 'Continue' => 'Edasi',
+ 'Credit Limit' => 'Krediidilimiit',
+ 'Currency' => 'Valuuta',
+ 'Current' => 'Käesolev',
+ 'Customer' => 'Klient',
+ 'Customer missing!' => 'Klient puudu!',
+ 'Delete' => 'Kustuta',
+ 'Department' => 'Osakond',
+ 'Description' => 'Selgitus',
+ 'Edit POS Invoice' => 'Muuda Müügipunkti Arve',
+ 'Exchange Rate' => 'Valuutakurss',
+ 'Exchange rate missing!' => 'Valuutakurssi ei ole',
+ 'Extended' => 'Summa',
+ 'From' => 'Alates',
+ 'Language' => 'Keel',
+ 'Memo' => 'Märkus',
+ 'Month' => 'Kuu',
+ 'Number' => 'Number',
+ 'Open' => 'Avada',
+ 'Period' => 'Periood',
+ 'Post' => 'Postita',
+ 'Posted!' => 'Postitatud!',
+ 'Price' => 'Hind',
+ 'Print' => 'Trüki',
+ 'Print and Post' => 'Trüki ja Postita',
+ 'Printed' => 'Trükitud',
+ 'Qty' => 'Kogus',
+ 'Quarter' => 'Kvartal',
+ 'Receipts' => 'Sissetulek',
+ 'Record in' => 'Sihtkonto',
+ 'Remaining' => 'Kasutamata',
+ 'Salesperson' => 'Müüja',
+ 'Screen' => 'Ekraan',
+ 'Select a Printer!' => 'Vali Printer',
+ 'Source' => 'Allikas',
+ 'Subtotal' => 'Vahesumma',
+ 'Tax Included' => 'Sisaldab Käibemaksu',
+ 'To' => 'Kuni',
+ 'Total' => 'Kokku',
+ 'Trade Discount' => 'Kauba Allahindlus',
+ 'Unit' => 'Komponent',
+ 'Update' => 'Värskenda',
+ 'Year' => 'Aasta',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'edasi' => 'continue',
+ 'kustuta' => 'delete',
+ 'postita' => 'post',
+ 'trüki' => 'print',
+ 'trüki_ja_postita' => 'print_and_post',
+ 'värskenda' => 'update',
+};
+
+1;
+
diff --git a/locale/ee_utf/ps b/locale/ee_utf/ps
new file mode 100755
index 00000000..6956102e
--- /dev/null
+++ b/locale/ee_utf/ps
@@ -0,0 +1,399 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Aging' => 'OR Aegunud',
+ 'AP Outstanding' => 'OR Kohustused',
+ 'AP Transaction' => 'OR Kanne',
+ 'AP Transactions' => 'OR Kanded',
+ 'AR Aging' => 'MR Võlglased',
+ 'AR Outstanding' => 'MR Nõued',
+ 'AR Transaction' => 'MR Kanne',
+ 'AR Transactions' => 'MR Kanded',
+ 'Account' => 'Konto',
+ 'Account Number' => 'Konto Number',
+ 'Accounting Menu' => 'Raamatupidamise Menüü',
+ 'Accounts' => 'Kontod',
+ 'Accrual' => 'Laekumine',
+ 'Add AP Transaction' => 'Lisa OR Ãœlekanne',
+ 'Add AR Transaction' => 'Lisa MR Ãœlekanne',
+ 'Add POS Invoice' => 'Lisa Sularahamüügi Kviitung',
+ 'Add Purchase Order' => 'Lisa Ostutellimus',
+ 'Add Quotation' => 'Lisa Pakkumine',
+ 'Add Request for Quotation' => 'Lisa Hinnapakkumise taotlus',
+ 'Add Sales Invoice' => 'Lisa Müügiarve',
+ 'Add Sales Order' => 'Lisa Müügitellimus',
+ 'Address' => 'Aadress',
+ 'Aged' => 'Aegunud',
+ 'Aged Overdue' => 'Aegunud Võlgnevused',
+ 'All Accounts' => 'Kõik Kontod',
+ 'Amount' => 'Summa',
+ 'Amount Due' => 'Võlaosa',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprill',
+ 'Are you sure you want to delete Invoice Number' => 'Kas oled kindel, et soovid kustutada Arve Number',
+ 'Are you sure you want to delete Transaction' => 'Kas oled kindel, et soovid kustutada Kande',
+ 'Attachment' => 'Manus',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Balance' => 'Bilanss',
+ 'Balance Sheet' => 'Bilansitabel',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Arve Esitamise Aadress',
+ 'Bin' => 'Kast',
+ 'Bin List' => 'Kasti sisu',
+ 'Business' => 'Ettevõte',
+ 'Cannot delete invoice!' => 'Arvet ei saa kustutada!',
+ 'Cannot delete transaction!' => 'Kannet ei saa kustutada!',
+ 'Cannot post invoice for a closed period!' => 'Arvet ei saa sisestada suletud perioodil!',
+ 'Cannot post invoice!' => 'Arvet ei saa sisestada!',
+ 'Cannot post payment for a closed period!' => 'Makset ei saa sisestada suletud perioodil!',
+ 'Cannot post transaction for a closed period!' => 'Kannet ei saa sisestada suletud perioodil!',
+ 'Cannot post transaction!' => 'Kannet ei saa sisestada!',
+ 'Cash' => 'Kassa',
+ 'Cc' => 'Cc',
+ 'Change' => 'Muuda',
+ 'Check' => 'TÅ¡ekk',
+ 'City' => 'Linn',
+ 'Closed' => 'Suletud',
+ 'Company Name' => 'Firma Nimi',
+ 'Compare to' => 'Võrdlus perioodiga',
+ 'Confirm!' => 'Kinnita!',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Edasi',
+ 'Copies' => 'Koopiat',
+ 'Country' => 'Riik',
+ 'Credit' => 'Kreedit',
+ 'Credit Limit' => 'Krediidilimiit',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valuuta',
+ 'Current' => 'Käesolev',
+ 'Current Earnings' => 'Käesolev kasum/kahjum',
+ 'Customer' => 'Klient',
+ 'Customer Number' => 'Kliendi Number',
+ 'Customer missing!' => 'Klienti pole määratud!',
+ 'Customer not on file!' => 'Klienti pole failis!',
+ 'Date' => 'Kuupäev',
+ 'Date Paid' => 'Maksekuupäev',
+ 'Day(s)' => 'Päev(a)',
+ 'Debit' => 'Deebet',
+ 'Dec' => 'Dets',
+ 'December' => 'Detsember',
+ 'Decimalplaces' => 'Komakohad',
+ 'Delete' => 'Kustuta',
+ 'Delete Schedule' => 'Kustutata Ajakava',
+ 'Delivery Date' => 'Kättetoimetamise Kuupäev',
+ 'Department' => 'Osakond',
+ 'Description' => 'Selgitus',
+ 'Detail' => 'Detail',
+ 'Due Date' => 'Maksetähtaeg',
+ 'Due Date missing!' => 'Maksetähtaeg puudub!',
+ 'E-mail' => 'E-post',
+ 'E-mail Statement to' => 'Saata Teatis E-postiga',
+ 'E-mail address missing!' => 'E-posti aadress puudu!',
+ 'E-mail message' => 'E-posti sõnum',
+ 'E-mailed' => 'E-postitatud',
+ 'Edit AP Transaction' => 'Muuda OR Ãœlekanne',
+ 'Edit AR Transaction' => 'Muuda MR Ãœlekanne',
+ 'Edit POS Invoice' => 'Muuda Müügipunkti Arve',
+ 'Edit Sales Invoice' => 'Muuda Müügiarve',
+ 'Employee' => 'Töötaja',
+ 'Every' => 'Iga',
+ 'Exch' => 'Kurss',
+ 'Exchange Rate' => 'Valuutakurss',
+ 'Exchange rate for payment missing!' => 'Maksel ei ole valuutakurssi!',
+ 'Exchange rate missing!' => 'Valuutakurss puudu!',
+ 'Extended' => 'Summa',
+ 'Fax' => 'Faks',
+ 'Feb' => 'Veebr',
+ 'February' => 'Veebruar',
+ 'For' => 'Saata',
+ 'From' => 'Alates',
+ 'GIFI' => 'GIFI',
+ 'Group' => 'Grupp',
+ 'Heading' => 'Päis',
+ 'ID' => 'ID',
+ 'In-line' => 'Dokumendisisene',
+ 'Include Exchange Rate Difference' => 'Kaasa valuutavahetuskursside vahe',
+ 'Include Payment' => 'Lisa Makse',
+ 'Include in Report' => 'Kaasa aruandesse',
+ 'Income Statement' => 'Kasumiaruanne',
+ 'Internal Notes' => 'Sisemärkused',
+ 'Invoice' => 'Arve',
+ 'Invoice Date' => 'Arve Kuupäev',
+ 'Invoice Date missing!' => 'Arve Kuupäev puudu!',
+ 'Invoice Number' => 'Arve Number',
+ 'Invoice Number missing!' => 'Arve Number puudu!',
+ 'Invoice deleted!' => 'Arve kustutatud!',
+ 'Item' => 'Tooteühik',
+ 'Item not on file!' => 'Tooteühik pole failis!',
+ 'Jan' => 'Jaan',
+ 'January' => 'Jaanuar',
+ 'Jul' => 'Juul',
+ 'July' => 'Juuli',
+ 'Jun' => 'Juun',
+ 'June' => 'Juuni',
+ 'Language' => 'Keel',
+ 'Manager' => 'Juhataja',
+ 'Mar' => 'Mär',
+ 'March' => 'Märts',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Memo',
+ 'Message' => 'Teade',
+ 'Method' => 'Meetod',
+ 'Month' => 'Kuu',
+ 'Month(s)' => 'Kuu(d)',
+ 'N/A' => 'Puudub',
+ 'Next Date' => 'Järgmine kuupäev',
+ 'No.' => 'Nr.',
+ 'Non-taxable Purchases' => 'Käibemaksuvaba Ostud',
+ 'Non-taxable Sales' => 'Käibemaksuvaba Müük',
+ 'Notes' => 'Märkmed',
+ 'Nothing selected!' => 'Valik puudu!',
+ 'Nothing to print!' => 'Pole midagi trükkida!',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Kood',
+ 'Number missing in Row' => 'Real puudub Number',
+ 'OH' => 'Ãœlekulud',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktoober',
+ 'Open' => 'Avatud',
+ 'Order' => 'Tellimus',
+ 'Order Date missing!' => 'Tellimuse Kuupäev puudu!',
+ 'Order Number' => 'Tellimuse Number',
+ 'Order Number missing!' => 'Tellimuse Number puudu!',
+ 'Overdue' => 'Võlgnevus',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ostutellimuse Number',
+ 'Packing List' => 'Saateleht',
+ 'Packing List Date missing!' => 'Saatelehe Kuupäev puudu!',
+ 'Packing List Number missing!' => 'Saatelehe Number puudu!',
+ 'Paid' => 'Makstud',
+ 'Part' => 'Osa',
+ 'Payment date missing!' => 'Maksekuupäev puudu!',
+ 'Payments' => 'Maksed',
+ 'Period' => 'Periood',
+ 'Phone' => 'Telefon',
+ 'Pick List' => 'Vali Kataloog',
+ 'Post' => 'Postita',
+ 'Post as new' => 'Postita uuena',
+ 'Posted!' => 'Postitatud!',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Hind',
+ 'Print' => 'Trüki',
+ 'Print and Post' => 'Trüki ja Postita',
+ 'Print and Post as new' => 'Trüki ja Postita uuena',
+ 'Printed' => 'Trükitud',
+ 'Project' => 'Projekt',
+ 'Project Number' => 'Projekti Number',
+ 'Project Transactions' => 'Projekti Kanded',
+ 'Project not on file!' => 'Projekti pole failis!',
+ 'Purchase Order' => 'Ostutellimus',
+ 'Qty' => 'Kogus',
+ 'Quarter' => 'Kvartal',
+ 'Queue' => 'Järjekord',
+ 'Queued' => 'Järjekorras',
+ 'Quotation' => 'Hinnapakkumine',
+ 'Quotation Date missing!' => 'Hinnapakkumise Kuupäev puudu!',
+ 'Quotation Number missing!' => 'Hinnapakkumise Number puudu!',
+ 'Recd' => 'Kättesaadud',
+ 'Receipt' => 'Maksekviitung',
+ 'Receipts' => 'Sissetulek',
+ 'Record in' => 'Sihtkonto',
+ 'Recurring Transaction' => 'Korduvad Ãœlenakded',
+ 'Reference' => 'Viide',
+ 'Remaining' => 'Järelejäänud',
+ 'Repeat' => 'Korda',
+ 'Report for' => 'Aruanne',
+ 'Required by' => 'Tarneaeg',
+ 'SKU' => 'Asenduskaup',
+ 'Sales Invoice.' => 'Arve Number.',
+ 'Sales Order' => 'Müügitellimus',
+ 'Salesperson' => 'Müüja',
+ 'Save Schedule' => 'Salvestada Ajakava',
+ 'Schedule' => 'Ajakava',
+ 'Scheduled' => 'Ajastatud',
+ 'Screen' => 'Ekraan',
+ 'Select a Printer!' => 'Vali Printer',
+ 'Select all' => 'Vali kõik',
+ 'Select from one of the names below' => 'Vali üks alltoodud nimedest',
+ 'Select from one of the projects below' => 'Vali üks alltoodud projektidest',
+ 'Select items' => 'Vali tooteühikud',
+ 'Select payment' => 'Vali makseviis',
+ 'Select postscript or PDF!' => 'Vali postscript või PDF',
+ 'Select txt, postscript or PDF!' => 'Vali .txt, postscript või PDF!',
+ 'Sep' => 'Sept',
+ 'September' => 'September',
+ 'Serial No.' => 'Seeria nr.',
+ 'Service' => 'Teenus',
+ 'Ship' => 'Tarnimine',
+ 'Ship to' => 'Tarneaadress',
+ 'Ship via' => 'Tarneviis',
+ 'Shipping Address' => 'Tarneaadress',
+ 'Shipping Point' => 'Saadetise Sihtpunkt',
+ 'Source' => 'Allikas',
+ 'Standard' => 'Standard',
+ 'Startdate' => 'Alguskuupäev',
+ 'State/Province' => 'Riik/Maakond',
+ 'Statement' => 'Aruanne',
+ 'Statement sent to' => 'Saata aruanne aadressil',
+ 'Statements sent to printer!' => 'Saata aruanne printerile',
+ 'Subject' => 'Pealkiri',
+ 'Subtotal' => 'Vahesumma',
+ 'Summary' => 'Kokkuvõtte',
+ 'Tax' => 'Käibemaks',
+ 'Tax Included' => 'Sisaldab Käibemaks',
+ 'Tax collected' => 'Kogutud käibemaks',
+ 'Tax paid' => 'Makstud käibemaks',
+ 'Text' => 'Tekst',
+ 'Till' => 'Müügipunkt',
+ 'To' => 'Kuhu',
+ 'Total' => 'Kokku',
+ 'Trade Discount' => 'Kauba Allahindlus',
+ 'Transaction' => 'Kanne',
+ 'Transaction deleted!' => 'Kanne kustutatud!',
+ 'Transaction posted!' => 'Kanne saadetud!',
+ 'Translation not on file!' => 'Tõlget pole failis!',
+ 'Trial Balance' => 'Proovibilanss',
+ 'Unit' => 'Ãœhik',
+ 'Update' => 'Värskenda',
+ 'Vendor' => 'Tarnija',
+ 'Vendor Invoice.' => 'Tarnija Arve',
+ 'Vendor Number' => 'Tarnija Number',
+ 'Vendor missing!' => 'Tarnija puudub!',
+ 'Vendor not on file!' => 'Tarnija pole failis!',
+ 'Warning!' => 'Ettevaatust!',
+ 'Week(s)' => 'Nädal(at)',
+ 'What type of item is this?' => 'Mis tüüpi tootega on tegemist?',
+ 'Work Order' => 'Töökäsk',
+ 'Year' => 'Aasta',
+ 'Year(s)' => 'Aasta(t)',
+ 'Yes' => 'Jah',
+ 'You are posting an existing transaction!' => 'Postitad juba olemasolevat kannet',
+ 'You are printing and posting an existing transaction!' => 'Trükida ja postitad juba olemasolevat kannet',
+ 'You are printing and saving an existing order' => 'Trükid ja salvestad juba olemasolevat arver',
+ 'You are printing and saving an existing quotation' => 'Trükid ja salvestad juba olemasolevat pakkumust',
+ 'You are saving an existing order' => 'Salvestad juba olemasolevat arvet',
+ 'You are saving an existing quotation' => 'Salvestad juba olemasolevat pakkumust',
+ 'Zip/Postal Code' => 'Postiindex',
+ 'as at' => 'seisuga',
+ 'ea' => 'tk',
+ 'for' => 'läheb',
+ 'for Period' => 'Perioodil',
+ 'posted!' => 'postitatud!',
+ 'sent' => 'saadetud',
+ 'time(s)' => 'kord(a)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'or_kanne' => 'ap_transaction',
+ 'mr_kanne' => 'ar_transaction',
+ 'edasi' => 'continue',
+ 'kustuta' => 'delete',
+ 'kustutata_ajakava' => 'delete_schedule',
+ 'e_post' => 'e_mail',
+ 'postita' => 'post',
+ 'postita_uuena' => 'post_as_new',
+ 'trüki' => 'print',
+ 'trüki_ja_postita' => 'print_and_post',
+ 'trüki_ja_postita_uuena' => 'print_and_post_as_new',
+ 'arve_number_' => 'sales_invoice_',
+ 'müügitellimus' => 'sales_order',
+ 'salvestada_ajakava' => 'save_schedule',
+ 'ajakava' => 'schedule',
+ 'vali_kõik' => 'select_all',
+ 'tarneaadress' => 'ship_to',
+ 'värskenda' => 'update',
+ 'tarnija_arve' => 'vendor_invoice_',
+ 'jah' => 'yes',
+};
+
+1;
+
diff --git a/locale/ee_utf/pw b/locale/ee_utf/pw
new file mode 100755
index 00000000..1130cc69
--- /dev/null
+++ b/locale/ee_utf/pw
@@ -0,0 +1,15 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Continue' => 'Jätka',
+ 'Password' => 'Parool',
+ 'Session expired!' => 'Sessioon aegunud!',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'jätka' => 'continue',
+};
+
+1;
+
diff --git a/locale/ee_utf/rc b/locale/ee_utf/rc
new file mode 100755
index 00000000..c0b621d6
--- /dev/null
+++ b/locale/ee_utf/rc
@@ -0,0 +1,81 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Raamatupidamise Menüü',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprill',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Balance' => 'Bilanss',
+ 'Beginning Balance' => 'Algsaldo',
+ 'Cleared' => 'Laekunud',
+ 'Continue' => 'Edasi',
+ 'Credit' => 'Kreedit',
+ 'Current' => 'Käesolev',
+ 'Date' => 'Kuupäev',
+ 'Debit' => 'Deebet',
+ 'Dec' => 'Dets',
+ 'December' => 'Detsember',
+ 'Description' => 'Selgitus',
+ 'Detail' => 'Detail',
+ 'Difference' => 'Vahe',
+ 'Done' => 'Valmis',
+ 'Feb' => 'Veebr',
+ 'February' => 'Veebruar',
+ 'From' => 'Alates',
+ 'Include Exchange Rate Difference' => 'Kaasaarvatud Valuutavahetuskursside Vahe',
+ 'Jan' => 'Jaan',
+ 'January' => 'Jaanuar',
+ 'Jul' => 'Juul',
+ 'July' => 'Juuli',
+ 'Jun' => 'Juun',
+ 'June' => 'Juuni',
+ 'Mar' => 'Mär',
+ 'March' => 'Märts',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Month' => 'Kuu',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktoober',
+ 'Out of balance!' => 'Bilanss ei klapi!',
+ 'Outstanding' => 'Tasumata nõuded',
+ 'Period' => 'Periood',
+ 'Quarter' => 'Kvartal',
+ 'R' => 'M',
+ 'Reconciliation' => 'Tasaarveldus?!',
+ 'Reconciliation Report' => 'Kooskõlastamise Raport',
+ 'Select all' => 'Vali kõik',
+ 'Sep' => 'Sept',
+ 'September' => 'September',
+ 'Source' => 'Allikas',
+ 'Statement Balance' => 'Bilansiaruanne',
+ 'Summary' => 'Kokkuvõtte',
+ 'To' => 'Kuni',
+ 'Update' => 'Värskenda',
+ 'Year' => 'Aasta',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'edasi' => 'continue',
+ 'valmis' => 'done',
+ 'vali_kõik' => 'select_all',
+ 'värskenda' => 'update',
+};
+
+1;
+
diff --git a/locale/ee_utf/rp b/locale/ee_utf/rp
new file mode 100755
index 00000000..75973fa7
--- /dev/null
+++ b/locale/ee_utf/rp
@@ -0,0 +1,207 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Aging' => 'OR Võlad',
+ 'AR Aging' => 'MR Võlad',
+ 'Account' => 'Konto',
+ 'Account Number' => 'Konto number',
+ 'Accounting Menu' => 'Raamatupidamise Menüü',
+ 'Accounts' => 'Kontod',
+ 'Accrual' => 'Laekumine',
+ 'Address' => 'Aadress',
+ 'Aged' => 'Aegunud',
+ 'Aged Overdue' => 'Aegunud Võlgnevused',
+ 'All Accounts' => 'Kõik Kontod',
+ 'Amount' => 'Summa',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprill',
+ 'Attachment' => 'Kaasatud fail',
+ 'Aug' => 'Aug',
+ 'August' => 'August',
+ 'Balance' => 'Bilanss',
+ 'Balance Sheet' => 'Bilansitabel',
+ 'Bcc' => 'Bcc',
+ 'Cash' => 'Kassa',
+ 'Cc' => 'Cc',
+ 'Compare to' => 'Võrdlus perioodiga',
+ 'Continue' => 'Edasi',
+ 'Copies' => 'koopiaid',
+ 'Credit' => 'Kreedit',
+ 'Curr' => 'Val.',
+ 'Current' => 'Käesolev',
+ 'Current Earnings' => 'Käesolev kasum/kahjum',
+ 'Customer' => 'Klient',
+ 'Customer not on file!' => 'Klienti pole failis!',
+ 'Date' => 'Kuupäev',
+ 'Day(s)' => 'Päev(a)',
+ 'Debit' => 'Deebet',
+ 'Dec' => 'Dets',
+ 'December' => 'Detsember',
+ 'Decimalplaces' => 'Komakohad',
+ 'Delete Schedule' => 'Kustutada Ajakava',
+ 'Department' => 'Osakond',
+ 'Description' => 'Selgitus',
+ 'Detail' => 'Detail',
+ 'Due Date' => 'Maksetähtaeg',
+ 'E-mail' => 'E-post',
+ 'E-mail Statement to' => 'Saata E-postiga Kasumiaruanne aadressil',
+ 'E-mail address missing!' => 'E-posti aadress puudub!',
+ 'E-mail message' => 'E-posti sõnum',
+ 'Every' => 'Iga',
+ 'Feb' => 'Veebr',
+ 'February' => 'Veebruar',
+ 'For' => 'Saata',
+ 'From' => 'Alates',
+ 'GIFI' => 'GIFI',
+ 'Heading' => 'Päis',
+ 'ID' => 'ID',
+ 'In-line' => 'Dokumendisisene',
+ 'Include Exchange Rate Difference' => 'Kaasa valuutavahetuskursside vahe',
+ 'Include Payment' => 'Lisa Makse',
+ 'Include in Report' => 'Kaasata Aruandesse',
+ 'Income Statement' => 'Kasumiaruanne',
+ 'Invoice' => 'Arve',
+ 'Jan' => 'Jaan',
+ 'January' => 'Jaanuar',
+ 'Jul' => 'Juul',
+ 'July' => 'Juuli',
+ 'Jun' => 'Juun',
+ 'June' => 'Juuni',
+ 'Language' => 'Keel',
+ 'Mar' => 'Mär',
+ 'March' => 'Märts',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Memo',
+ 'Message' => 'Teade',
+ 'Method' => 'Meetod',
+ 'Month' => 'Kuu',
+ 'Month(s)' => 'Kuu(d)',
+ 'N/A' => 'Puudub',
+ 'Next Date' => 'Järgmine kuupäev',
+ 'Non-taxable Purchases' => 'Käibemaksuvabad Ostud',
+ 'Non-taxable Sales' => 'Käibemaksuvaba Müük',
+ 'Nothing selected!' => 'Valik puudub!',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Kood',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktoober',
+ 'Order' => 'Tellimus',
+ 'Overdue' => 'Võlgnevus',
+ 'PDF' => 'PDF',
+ 'Payments' => 'Maksed',
+ 'Period' => 'Periood',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Trüki',
+ 'Project' => 'Projekt',
+ 'Project Number' => 'Projekti Number',
+ 'Project Transactions' => 'Projekti Kanded',
+ 'Project not on file!' => 'Projekti pole failis!',
+ 'Quarter' => 'Kvartal',
+ 'Receipts' => 'Sissetulek',
+ 'Recurring Transaction' => 'Korduvad Ãœlenakded',
+ 'Reference' => 'Viide',
+ 'Repeat' => 'Korrata',
+ 'Report for' => 'Aruanne',
+ 'Salesperson' => 'Müügiesindaja',
+ 'Save Schedule' => 'Salvesta Ajakava',
+ 'Screen' => 'Ekraan',
+ 'Select all' => 'Valida kõik',
+ 'Select from one of the names below' => 'Valida üks alltoodud nimedest',
+ 'Select from one of the projects below' => 'Valida üks alltoodud projektidest',
+ 'Select postscript or PDF!' => 'Valida postscript või PDF',
+ 'Sep' => 'Sept',
+ 'September' => 'September',
+ 'Source' => 'Allikas',
+ 'Standard' => 'Standard',
+ 'Startdate' => 'Alguskuupäev',
+ 'Statement' => 'Aruanne',
+ 'Statement sent to' => 'Saata aruanne aadressil',
+ 'Statements sent to printer!' => 'Saata aruanne printerile',
+ 'Subject' => 'Pealkiri',
+ 'Subtotal' => 'Vahesumma',
+ 'Summary' => 'Kokkuvõtte',
+ 'Tax' => 'Käibemaks',
+ 'Tax collected' => 'Kogutud Käibemaks',
+ 'Tax paid' => 'Makstud Käibemaks',
+ 'Till' => 'Müügipunkt',
+ 'To' => 'Kuni',
+ 'Total' => 'Kokku',
+ 'Trial Balance' => 'Proovibilanss',
+ 'Vendor' => 'Hankija',
+ 'Vendor not on file!' => 'Hankijat pole failis!',
+ 'Warning!' => 'Ettevaatust!',
+ 'Week(s)' => 'Nädal(at)',
+ 'Year' => 'Aasta',
+ 'Year(s)' => 'Aasta(t)',
+ 'You are posting an existing transaction!' => 'Postitad juba olemasolevat kannet',
+ 'You are printing and posting an existing transaction!' => 'Trükida ja postitad juba olemasolevat kannet',
+ 'You are printing and saving an existing order' => 'Trükid ja salvestad juba olemasolevat arver',
+ 'You are printing and saving an existing quotation' => 'Trükid ja salvestad juba olemasolevat pakkumust',
+ 'You are saving an existing order' => 'Salvestad juba olemasolevat arvet',
+ 'You are saving an existing quotation' => 'Salvestad juba olemasolevat pakkumust',
+ 'as at' => 'seisuga',
+ 'for' => 'läheb',
+ 'for Period' => 'Periood',
+ 'sent' => 'saadetud',
+ 'time(s)' => 'kord(a)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'edasi' => 'continue',
+ 'kustutada_ajakava' => 'delete_schedule',
+ 'e_post' => 'e_mail',
+ 'trüki' => 'print',
+ 'salvesta_ajakava' => 'save_schedule',
+ 'valida_kõik' => 'select_all',
+};
+
+1;
+
diff --git a/locale/eg_utf/COPYING b/locale/eg_utf/COPYING
new file mode 100755
index 00000000..4c77801a
--- /dev/null
+++ b/locale/eg_utf/COPYING
@@ -0,0 +1,28 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2003
+#
+# Egypt Arabic texts:
+#
+# Author: Omar BaheyEldin <o@ab2.com>
+# Rania Tayel
+#---- Please Use UTF-8 encoding
+#---- For some web servers you have to enable UTF-8
+#---- For Knoquere you have to edit the font and use an arabic font
+# --- Good Luck
+#--- Omar BaheyEldin
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/eg_utf/LANGUAGE b/locale/eg_utf/LANGUAGE
new file mode 100755
index 00000000..91099f28
--- /dev/null
+++ b/locale/eg_utf/LANGUAGE
@@ -0,0 +1 @@
+Arabic/Egypt (UTF-8)
diff --git a/locale/eg_utf/aa b/locale/eg_utf/aa
new file mode 100755
index 00000000..ee79e623
--- /dev/null
+++ b/locale/eg_utf/aa
@@ -0,0 +1,143 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Outstanding' => 'ارصدة موردين متبقية',
+ 'AP Transaction' => 'حركة حساب مورد',
+ 'AP Transactions' => 'حركات حساب الموردين',
+ 'AR Outstanding' => 'ارصدة عملاء ',
+ 'AR Transaction' => 'حركة حساب عميل',
+ 'AR Transactions' => 'حركات حساب العملاء',
+ 'Account' => 'حساب',
+ 'Accounting Menu' => 'قائمة الحسابات',
+ 'Amount' => 'الكمية',
+ 'Amount Due' => 'الرصيد ',
+ 'Apr' => 'ابريل',
+ 'April' => 'ابريل',
+ 'Are you sure you want to delete Transaction' => 'هل انت متأكد انك تريد الغاء الحركة',
+ 'Aug' => 'اغسطس',
+ 'August' => 'اغسطس',
+ 'Cannot delete transaction!' => 'لا يمكن الغاء الحركة',
+ 'Cannot post payment for a closed period!' => 'لا يمكن تسجيل المدÙوعات Ù„Ùترة مغلقة',
+ 'Cannot post transaction for a closed period!' => 'لا يمكن تسجيل الحركة Ù„Ùترة مغلقة',
+ 'Cannot post transaction!' => 'لا يمكن تسجيل الحركة',
+ 'Check' => 'شيك',
+ 'Closed' => 'مغلق',
+ 'Confirm!' => 'تاكيد',
+ 'Continue' => 'تابع',
+ 'Credit' => 'دائن',
+ 'Credit Limit' => 'حد الائتمان',
+ 'Curr' => 'عملة',
+ 'Currency' => 'عملة',
+ 'Current' => 'الحالي',
+ 'Customer' => 'العميل',
+ 'Customer missing!' => 'عميل غير موجود',
+ 'Date' => 'التاريخ',
+ 'Date Paid' => 'تاريخ الدÙع',
+ 'Debit' => 'مدين',
+ 'Dec' => 'ديسمبر',
+ 'December' => 'ديسمبر',
+ 'Delete' => 'الغاء',
+ 'Department' => 'قسم',
+ 'Description' => 'وصÙ',
+ 'Detail' => 'تÙصيلى',
+ 'Due Date' => 'تاريخ الاستحقاق',
+ 'Due Date missing!' => 'تاريخ الاستحقاق غير موجود',
+ 'Employee' => 'الموظÙ',
+ 'Exch' => 'سعر الصرÙ',
+ 'Exchange Rate' => 'سعر الصرÙ',
+ 'Exchange rate for payment missing!' => 'سعر الصر٠للمدÙوعات غير موجود',
+ 'Exchange rate missing!' => 'سعر الصر٠غير موجود',
+ 'Feb' => 'Ùبراير',
+ 'February' => 'Ùبراير',
+ 'From' => 'من',
+ 'ID' => 'البطاقة الشخصية',
+ 'Include in Report' => 'ارÙÙ‚ ÙÙŠ التقرير ------',
+ 'Invoice' => 'Ùاتورة',
+ 'Invoice Date' => 'تاريخ الÙاتورة',
+ 'Invoice Date missing!' => 'تاريخ الÙاتورة غير موجود',
+ 'Invoice Number' => 'رقم الÙاتورة',
+ 'Jan' => 'يناير',
+ 'January' => 'يناير',
+ 'Jul' => 'يولية',
+ 'July' => 'يولية',
+ 'Jun' => 'يونية',
+ 'June' => 'يونية',
+ 'Manager' => 'مدير',
+ 'Mar' => 'مارس',
+ 'March' => 'مارس',
+ 'May' => 'مايو',
+ 'May ' => 'مايو',
+ 'Memo' => 'ملاحظات',
+ 'No.' => 'رقم',
+ 'Notes' => 'ملاحظات',
+ 'Nov' => 'نوÙمبر',
+ 'November' => 'نوÙمبر',
+ 'Oct' => 'اكتوبر',
+ 'October' => 'اكتوبر',
+ 'Open' => 'Ùتح',
+ 'Order' => 'امر',
+ 'Order Number' => 'رقم الامر',
+ 'Paid' => 'المدÙوع',
+ 'Payment date missing!' => 'تاريخ الدÙع غير موجود',
+ 'Payments' => 'المدÙوعات',
+ 'Post' => 'تسجيل',
+ 'Post as new' => 'سجل كجديد',
+ 'Print' => 'طباعة',
+ 'Project' => 'مشروع',
+ 'Receipt' => 'الوارد',
+ 'Remaining' => 'متبقى',
+ 'Salesperson' => 'مندوب مبيعات',
+ 'Sep' => 'سبتمبر',
+ 'September' => 'سبتمبر',
+ 'Ship to' => 'شحن الى',
+ 'Ship via' => 'شحن من خلال',
+ 'Shipping Point' => 'نقطة الشحن',
+ 'Source' => 'مصدر',
+ 'Subtotal' => 'اجمالى',
+ 'Summary' => 'ملخص',
+ 'Tax' => 'ضريبة',
+ 'Tax Included' => 'الضريبة المضاÙØ©',
+ 'Till' => 'إلى',
+ 'To' => 'إلى',
+ 'Total' => 'مجموع',
+ 'Transaction deleted!' => 'الغيت الحركة',
+ 'Transaction posted!' => 'سجلت الحركة',
+ 'Update' => 'تعديل',
+ 'Vendor' => 'المورد',
+ 'Vendor missing!' => 'مورد غير موجود',
+ 'Yes' => 'نعم',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'حركة_حساب_مورد' => 'ap_transaction',
+ 'حركة_حساب_عميل' => 'ar_transaction',
+ 'تابع' => 'continue',
+ 'الغاء' => 'delete',
+ 'تسجيل' => 'post',
+ 'سجل_كجديد' => 'post_as_new',
+ 'طباعة' => 'print',
+ 'شحن_الى' => 'ship_to',
+ 'تعديل' => 'update',
+ 'نعم' => 'yes',
+};
+
+1;
+
diff --git a/locale/eg_utf/admin b/locale/eg_utf/admin
new file mode 100755
index 00000000..0c9467f3
--- /dev/null
+++ b/locale/eg_utf/admin
@@ -0,0 +1,102 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting' => 'الحسابات',
+ 'Add User' => 'اضاÙØ© مستخدم',
+ 'Address' => 'العنوان',
+ 'Administration' => 'الادارة',
+ 'Administrator' => 'المدير',
+ 'All Datasets up to date!' => 'كل البيانات حديثة',
+ 'Change Password' => 'تغيير كلمة السر',
+ 'Company' => 'شركة',
+ 'Connect to' => 'صل',
+ 'Continue' => 'تابع',
+ 'Create Chart of Accounts' => 'انشاء قائمة حسابات',
+ 'Create Dataset' => 'انشاء مجموعة بيانات',
+ 'Database' => 'قواعد البيانات',
+ 'Database Administration' => 'ادارة قواعد البيانات',
+ 'Database User missing!' => ' مستخدم قواعد البيانات غير موجود',
+ 'Dataset' => 'مجموعة بيانات',
+ 'Dataset missing!' => 'مجموعة بيانات غير موجودة',
+ 'Dataset updated!' => 'مجموعة بيانات معدلة',
+ 'Date Format' => 'تنسيق البيانات',
+ 'Delete' => 'الغاء',
+ 'Delete Dataset' => 'الغاء مجموعة البيانات',
+ 'E-mail' => 'بريد الكتروني',
+ 'Edit User' => 'تعديل مستخدم ',
+ 'Existing Datasets' => 'قاعدةالبيانات الحالية',
+ 'Fax' => 'الÙاكس',
+ 'Host' => 'المضيÙ',
+ 'Hostname missing!' => 'اسم المضي٠غير موجود',
+ 'Language' => 'اللغة',
+ 'Login' => 'دخول',
+ 'Login name missing!' => 'اسم مستخدم غير موجود ',
+ 'Logout' => 'خروج',
+ 'Manager' => 'مدير',
+ 'Name' => 'الاسم',
+ 'New Templates' => 'عينة جديدة',
+ 'Nothing to delete!' => 'لم يتم الالغاء',
+ 'Password' => 'كلمة السر',
+ 'Password changed!' => 'تغيير كلمة السر',
+ 'Phone' => 'تليÙون',
+ 'Printer' => 'طابعة',
+ 'Save' => 'تخزين',
+ 'Signature' => 'امضاء',
+ 'Templates' => 'العينات',
+ 'The following Datasets are not in use and can be deleted' => 'هذة المجموعة من البيانات لا يتم استخدامها و يمكن الغائها',
+ 'The following Datasets need to be updated' => 'هذة المجموعة من البيانات تحتاج إلى تحديث',
+ 'Use Templates' => 'استخدم العينات',
+ 'User' => 'مستخدم',
+ 'User deleted!' => 'الغي المستخدم',
+ 'User saved!' => 'خزن المستخدم',
+ 'Version' => 'نسخة',
+ 'does not exist' => 'لا يوجد',
+ 'is already a member!' => 'عضو موجود',
+ 'successfully created!' => 'انشأ بنجاح',
+ 'successfully deleted!' => 'الغي بنجاح',
+ 'website' => 'موقع انترنت',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'اضاÙØ©_مستخدم' => 'add_user',
+ 'تغيير_كلمة_السر' => 'change_password',
+ 'تابع' => 'continue',
+ 'انشاء_مجموعة_بيانات' => 'create_dataset',
+ 'الغاء' => 'delete',
+ 'الغاء_مجموعة_البيانات' => 'delete_dataset',
+ 'دخول' => 'login',
+ 'خروج' => 'logout',
+ 'تخزين' => 'save',
+};
+
+1;
+
diff --git a/locale/eg_utf/all b/locale/eg_utf/all
new file mode 100755
index 00000000..f78ec703
--- /dev/null
+++ b/locale/eg_utf/all
@@ -0,0 +1,892 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+$self{charset} = 'UTF-8';
+
+
+$self{texts} = {
+ 'A' => '',
+ 'AP' => 'موردين',
+ 'AP Aging' => 'كش٠حساب موردين',
+ 'AP Outstanding' => 'ارصدة موردين متبقية',
+ 'AP Transaction' => 'حركة حساب مورد',
+ 'AP Transactions' => 'حركات حساب الموردين',
+ 'AR' => 'عملاء',
+ 'AR Aging' => 'كشوÙات حسابات العملاء',
+ 'AR Outstanding' => 'ارصدة عملاء ',
+ 'AR Transaction' => 'حركة حساب عميل',
+ 'AR Transactions' => 'حركات حساب العملاء',
+ 'AR/AP' => '',
+ 'About' => 'عن',
+ 'Above' => '',
+ 'Access Control' => '',
+ 'Access Denied!' => '',
+ 'Account' => 'حساب',
+ 'Account Number' => 'رقم حساب',
+ 'Account Number missing!' => 'رقم الحساب غير موجود',
+ 'Account Type' => 'نوع الحساب',
+ 'Account Type missing!' => 'نوع الحساب غير موجود',
+ 'Account deleted!' => 'ألغي الحساب',
+ 'Account does not exist!' => 'الحساب غير موجود',
+ 'Account saved!' => 'خزن الحساب',
+ 'Accounting' => 'الحسابات',
+ 'Accounting Menu' => 'قائمة الحسابات',
+ 'Accounts' => 'حسابات',
+ 'Accrual' => 'المجمعة',
+ 'Activate Audit trail' => '',
+ 'Active' => 'Ùعال',
+ 'Add' => 'اضاÙØ©',
+ 'Add AP Transaction' => '',
+ 'Add AR Transaction' => '',
+ 'Add Account' => 'اضاÙØ© حساب',
+ 'Add Assembly' => 'اضاÙØ© تجميع',
+ 'Add Business' => 'اضاÙØ© نوع عمل',
+ 'Add Cash Transfer Transaction' => 'اضاÙØ© حركة تحويل النقدية',
+ 'Add Customer' => 'اضاÙØ© عميل',
+ 'Add Deduction' => '',
+ 'Add Department' => 'اضاÙØ© قسم',
+ 'Add Employee' => 'اضاÙØ© موظÙ',
+ 'Add Exchange Rate' => '',
+ 'Add GIFI' => '',
+ 'Add General Ledger Transaction' => 'اضاÙØ© حركة الأستاذ العام',
+ 'Add Group' => 'اضاÙØ© مجموعة',
+ 'Add Job' => '',
+ 'Add Labor/Overhead' => 'اضاÙØ© تكلÙØ© عمالة',
+ 'Add Language' => 'اضاÙØ© لغة',
+ 'Add POS Invoice' => 'اضاÙØ© Ùاتورة نقطة بيع',
+ 'Add Part' => 'اضاÙØ© جزء',
+ 'Add Pricegroup' => '',
+ 'Add Project' => 'اضاÙØ© مشروع',
+ 'Add Purchase Order' => 'اضاÙØ© طلب شراء',
+ 'Add Quotation' => 'اضاÙØ© عرض سعر ',
+ 'Add Request for Quotation' => 'اضاÙØ© عرض سعر مورد',
+ 'Add SIC' => 'اضاÙØ© كود صناعى قياسى',
+ 'Add Sales Invoice' => 'اضاÙØ© Ùاتورة بيع',
+ 'Add Sales Order' => 'اضاÙØ© طلب بيع',
+ 'Add Service' => 'اضاÙØ© خدمة',
+ 'Add Timecard' => '',
+ 'Add Transaction' => 'اضاÙØ© حركة',
+ 'Add User' => 'اضاÙØ© مستخدم',
+ 'Add Vendor' => 'اضاÙØ© مورد',
+ 'Add Vendor Invoice' => 'اضاÙØ© Ùاتورة المورد',
+ 'Add Warehouse' => 'اضاÙØ© مخزن',
+ 'Address' => 'العنوان',
+ 'Administration' => 'الادارة',
+ 'Administrator' => 'المدير',
+ 'After Deduction' => '',
+ 'All' => 'الكل',
+ 'All Accounts' => 'كل الحسابات',
+ 'All Datasets up to date!' => 'كل البيانات حديثة',
+ 'All Items' => 'الكل',
+ 'Allowances' => '',
+ 'Amount' => 'الكمية',
+ 'Amount Due' => 'الرصيد ',
+ 'Amount missing!' => 'الكمية غير موجودة',
+ 'Apr' => 'ابريل',
+ 'April' => 'ابريل',
+ 'Are you sure you want to delete Invoice Number' => 'هل انت متأكد انك تريد الغاء رقم الÙاتروة ',
+ 'Are you sure you want to delete Order Number' => 'هل انت متأكد انك تريد الغاء رقم الطلب',
+ 'Are you sure you want to delete Quotation Number' => '',
+ 'Are you sure you want to delete Timecard for' => '',
+ 'Are you sure you want to delete Transaction' => 'هل انت متأكد انك تريد الغاء الحركة',
+ 'Are you sure you want to remove the marked entries from the queue?' => '',
+ 'Assemblies' => 'مجمعات',
+ 'Assemblies restocked!' => '',
+ 'Assembly' => '',
+ 'Assembly stocked!' => '',
+ 'Asset' => 'أصول',
+ 'Attachment' => 'مرÙقات',
+ 'Audit Control' => 'التحكم ÙÙŠ المراجعة',
+ 'Audit trail disabled' => '',
+ 'Audit trail enabled' => '',
+ 'Audit trail removed up to' => '',
+ 'Aug' => 'اغسطس',
+ 'August' => 'اغسطس',
+ 'Average Cost' => '',
+ 'Avg Cost' => '',
+ 'BIC' => '',
+ 'BOM' => '',
+ 'Backup' => 'نسخة احتياطية ',
+ 'Backup sent to' => 'نسخة احتياطية ارسلت الى',
+ 'Balance' => 'رصيد',
+ 'Balance Sheet' => 'الميزانية',
+ 'Based on' => '',
+ 'Bcc' => 'نسخة غير مرئية',
+ 'Before Deduction' => '',
+ 'Beginning Balance' => 'بداية الميزانية',
+ 'Below' => '',
+ 'Billing Address' => 'عنوان ارسال الÙواتير',
+ 'Bin' => '',
+ 'Bin List' => '',
+ 'Bin Lists' => '',
+ 'Books are open' => '',
+ 'Break' => '',
+ 'Business' => '',
+ 'Business Number' => 'الرقم الضريبى',
+ 'Business deleted!' => '',
+ 'Business saved!' => '',
+ 'C' => '',
+ 'COGS' => 'تكلÙØ© البضاعة المباعة',
+ 'COGS account does not exist!' => '',
+ 'Cannot add timecard for a completed job!' => '',
+ 'Cannot change timecard for a completed job!' => '',
+ 'Cannot create Assembly' => '',
+ 'Cannot create Labor' => '',
+ 'Cannot create Lock!' => '',
+ 'Cannot create Part' => '',
+ 'Cannot create Service' => '',
+ 'Cannot delete Timecard!' => '',
+ 'Cannot delete account!' => 'لا يمكن الغاء الحساب ',
+ 'Cannot delete customer!' => 'لا يمكن الغاء العميل',
+ 'Cannot delete default account!' => 'لا يمكن الغاء الحساب الاساسي',
+ 'Cannot delete invoice!' => 'لا يمكن الغاء الÙاتورة',
+ 'Cannot delete item!' => 'لا يمكن الغاء الوحدة',
+ 'Cannot delete order!' => 'لا يمكن الغاء الطلب',
+ 'Cannot delete quotation!' => '',
+ 'Cannot delete transaction!' => 'لا يمكن الغاء الحركة',
+ 'Cannot delete vendor!' => 'لا يمكن الغاء المورد',
+ 'Cannot post Payment!' => 'لا يمكن تسجيل المدÙوعات',
+ 'Cannot post Receipt!' => '',
+ 'Cannot post invoice for a closed period!' => '',
+ 'Cannot post invoice!' => 'لا يمكن تسجيل الÙاتورة',
+ 'Cannot post payment for a closed period!' => 'لا يمكن تسجيل المدÙوعات Ù„Ùترة مغلقة',
+ 'Cannot post transaction for a closed period!' => 'لا يمكن تسجيل الحركة Ù„Ùترة مغلقة',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => '',
+ 'Cannot post transaction!' => 'لا يمكن تسجيل الحركة',
+ 'Cannot remove files!' => '',
+ 'Cannot save account!' => 'لا يمكن تخزين الحساب',
+ 'Cannot save defaults!' => '',
+ 'Cannot save order!' => 'لا يمكن تخزين الطلب',
+ 'Cannot save preferences!' => '',
+ 'Cannot save quotation!' => '',
+ 'Cannot save timecard for a closed period!' => '',
+ 'Cannot save timecard!' => '',
+ 'Cannot set account for more than one of AR, AP or IC' => '',
+ 'Cannot set multiple options for' => '',
+ 'Cannot set multiple options for Item' => '',
+ 'Cannot stock Assembly!' => '',
+ 'Cannot stock assemblies!' => '',
+ 'Cash' => 'النقدية',
+ 'Cc' => 'نسخة اخرى',
+ 'Change' => 'تغيير',
+ 'Change Admin Password' => '',
+ 'Change Password' => 'تغيير كلمة السر',
+ 'Charge' => '',
+ 'Chart of Accounts' => 'قائمة الحسابات',
+ 'Check' => 'شيك',
+ 'Check Inventory' => 'مراجعة مخزون',
+ 'Checks' => 'الشيكات',
+ 'City' => 'مدينة',
+ 'Cleared' => 'مغلق',
+ 'Click on login name to edit!' => '',
+ 'Clocked' => '',
+ 'Close Books up to' => 'اقÙال الدÙاتر حتى',
+ 'Closed' => 'مغلق',
+ 'Code' => 'كود',
+ 'Code missing!' => '',
+ 'Company' => 'شركة',
+ 'Company Name' => 'اسم الشركة',
+ 'Compare to' => 'مقارنة ',
+ 'Completed' => '',
+ 'Components' => 'مكونات',
+ 'Confirm' => '',
+ 'Confirm!' => 'تاكيد',
+ 'Connect to' => 'صل',
+ 'Contact' => 'شخص الاتصال',
+ 'Continue' => 'تابع',
+ 'Contra' => '',
+ 'Copies' => 'نسخ',
+ 'Copy to COA' => '',
+ 'Cost' => 'تكلÙØ©',
+ 'Cost Center' => 'مركز تكلÙØ©',
+ 'Could not save pricelist!' => '',
+ 'Could not save!' => '',
+ 'Could not transfer Inventory!' => '',
+ 'Country' => 'دولة',
+ 'Create Chart of Accounts' => 'انشاء قائمة حسابات',
+ 'Create Dataset' => 'انشاء مجموعة بيانات',
+ 'Credit' => 'دائن',
+ 'Credit Limit' => 'حد الائتمان',
+ 'Curr' => 'عملة',
+ 'Currency' => 'عملة',
+ 'Current' => 'الحالي',
+ 'Current Earnings' => '',
+ 'Customer' => 'العميل',
+ 'Customer History' => 'بيانات تاريخية للعميل',
+ 'Customer Number' => 'رقم العميل',
+ 'Customer deleted!' => 'الغي العميل',
+ 'Customer missing!' => 'عميل غير موجود',
+ 'Customer not on file!' => ' عميل غير موجود ÙÙŠ الملÙ',
+ 'Customer saved!' => 'خزن العميل',
+ 'Customers' => 'العملاء',
+ 'DBI not installed!' => '',
+ 'DOB' => '',
+ 'Database' => 'قواعد البيانات',
+ 'Database Administration' => 'ادارة قواعد البيانات',
+ 'Database Driver not checked!' => '',
+ 'Database Host' => 'مضي٠قواعد البيانات',
+ 'Database User missing!' => ' مستخدم قواعد البيانات غير موجود',
+ 'Dataset' => 'مجموعة بيانات',
+ 'Dataset is newer than version!' => '',
+ 'Dataset missing!' => 'مجموعة بيانات غير موجودة',
+ 'Dataset updated!' => 'مجموعة بيانات معدلة',
+ 'Date' => 'التاريخ',
+ 'Date Format' => 'تنسيق البيانات',
+ 'Date Paid' => 'تاريخ الدÙع',
+ 'Date Received' => '',
+ 'Date missing!' => 'التاريخ غير موجود',
+ 'Date received missing!' => '',
+ 'Date worked' => '',
+ 'Day' => '',
+ 'Day(s)' => '',
+ 'Days' => '',
+ 'Debit' => 'مدين',
+ 'Dec' => 'ديسمبر',
+ 'December' => 'ديسمبر',
+ 'Decimalplaces' => 'علامات عشرية',
+ 'Decrease' => 'تناقص',
+ 'Deduct after' => '',
+ 'Deduction deleted!' => '',
+ 'Deduction saved!' => '',
+ 'Deductions' => '',
+ 'Default Template' => '',
+ 'Defaults' => 'معطيات النظام',
+ 'Defaults saved!' => '',
+ 'Delete' => 'الغاء',
+ 'Delete Account' => 'الغاء الحساب',
+ 'Delete Dataset' => 'الغاء مجموعة البيانات',
+ 'Delete Schedule' => '',
+ 'Deleting a language will also delete the templates for the language' => '',
+ 'Delivery Date' => 'تاريخ الوصول',
+ 'Department' => 'قسم',
+ 'Department deleted!' => '',
+ 'Department saved!' => '',
+ 'Departments' => 'اقسام',
+ 'Deposit' => 'إيداع',
+ 'Description' => 'وصÙ',
+ 'Description Translations' => 'ترجمة مواصÙات',
+ 'Description missing!' => '',
+ 'Detail' => 'تÙصيلى',
+ 'Difference' => 'اختلاÙات',
+ 'Directory' => '',
+ 'Discount' => 'خصم',
+ 'Done' => 'Ù†ÙØ°',
+ 'Drawing' => 'رسم',
+ 'Driver' => '',
+ 'Dropdown Limit' => '',
+ 'Due Date' => 'تاريخ الاستحقاق',
+ 'Due Date missing!' => 'تاريخ الاستحقاق غير موجود',
+ 'E-mail' => 'بريد الكتروني',
+ 'E-mail Statement to' => '',
+ 'E-mail address missing!' => 'عنوان البريد الالكتروني غير موجود',
+ 'E-mail message' => '',
+ 'E-mailed' => '',
+ 'Edit' => 'تعديل',
+ 'Edit AP Transaction' => '',
+ 'Edit AR Transaction' => '',
+ 'Edit Account' => 'تعديل الحساب',
+ 'Edit Assembly' => '',
+ 'Edit Business' => '',
+ 'Edit Cash Transfer Transaction' => 'تعديل حركة تحويل النقدية',
+ 'Edit Customer' => 'تعديل بيانات العميل',
+ 'Edit Deduction' => '',
+ 'Edit Department' => '',
+ 'Edit Description Translations' => '',
+ 'Edit Employee' => '',
+ 'Edit GIFI' => '',
+ 'Edit General Ledger Transaction' => 'تعديل حركة الأستاذ العام',
+ 'Edit Group' => 'تعديل مجموعة',
+ 'Edit Job' => '',
+ 'Edit Labor/Overhead' => '',
+ 'Edit Language' => '',
+ 'Edit POS Invoice' => 'تعديل Ùاتورة أمر الشراء',
+ 'Edit Part' => 'تعديل جزء',
+ 'Edit Preferences for' => '',
+ 'Edit Pricegroup' => '',
+ 'Edit Project' => 'تعديل مشروع',
+ 'Edit Purchase Order' => 'تعديل امر شراء',
+ 'Edit Quotation' => '',
+ 'Edit Request for Quotation' => '',
+ 'Edit SIC' => '',
+ 'Edit Sales Invoice' => 'تعديل Ùاتورة مبيعات',
+ 'Edit Sales Order' => 'تعديل امر مبيعات',
+ 'Edit Service' => 'تعديل خدمة',
+ 'Edit Template' => 'تعديل عينة',
+ 'Edit Timecard' => '',
+ 'Edit User' => 'تعديل مستخدم ',
+ 'Edit Vendor' => 'تعديل مورد',
+ 'Edit Vendor Invoice' => 'تعديل Ùاتورة مورد',
+ 'Edit Warehouse' => '',
+ 'Employee' => 'الموظÙ',
+ 'Employee Name' => 'اسم الموظÙ',
+ 'Employee Number' => '',
+ 'Employee deleted!' => '',
+ 'Employee pays' => '',
+ 'Employee saved!' => '',
+ 'Employees' => 'العاملين',
+ 'Employer' => '',
+ 'Employer pays' => '',
+ 'Enddate' => 'تاريخ نهاية العمل',
+ 'Ends' => '',
+ 'Enforce transaction reversal for all dates' => '',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'ادخل 3 حرو٠للعملة Ù…Ùصولة ":" )CAD:USD:EUR) للعملة المحلية Ùˆ العملات الاجنبية',
+ 'Equity' => 'رأس المال',
+ 'Every' => '',
+ 'Excempt age <' => '',
+ 'Exch' => 'سعر الصرÙ',
+ 'Exchange Rate' => 'سعر الصرÙ',
+ 'Exchange rate for payment missing!' => 'سعر الصر٠للمدÙوعات غير موجود',
+ 'Exchange rate missing!' => 'سعر الصر٠غير موجود',
+ 'Existing Datasets' => 'قاعدةالبيانات الحالية',
+ 'Expense' => 'المصروÙات',
+ 'Expense account does not exist!' => '',
+ 'Expense/Asset' => 'الخصوم/الأصول',
+ 'Extended' => 'اجمالى',
+ 'FX' => '',
+ 'Failed to save order!' => '',
+ 'Fax' => 'الÙاكس',
+ 'Feb' => 'Ùبراير',
+ 'February' => 'Ùبراير',
+ 'For' => '',
+ 'Foreign Exchange Gain' => 'ارباح التحويل الاجنبي',
+ 'Foreign Exchange Loss' => 'خسائر التحويل الاجنبي',
+ 'Friday' => '',
+ 'From' => 'من',
+ 'From Warehouse' => '',
+ 'GIFI' => '',
+ 'GIFI deleted!' => '',
+ 'GIFI missing!' => '',
+ 'GIFI saved!' => '',
+ 'GL' => '',
+ 'GL Reference Number' => '',
+ 'GL Transaction' => 'حركات الاستاذ العام',
+ 'General Ledger' => 'الاستاذ العام',
+ 'Generate' => '',
+ 'Generate Orders' => '',
+ 'Generate Purchase Orders' => '',
+ 'Generate Purchase Orders from Sales Order' => '',
+ 'Generate Sales Order' => '',
+ 'Generate Sales Order from Purchase Orders' => '',
+ 'Generate Sales Orders' => '',
+ 'Goods & Services' => 'البضاعة و الخدمات',
+ 'Group' => 'مجموعة',
+ 'Group Items' => 'مجموعة الوحدات',
+ 'Group Translations' => 'ترجمة مجوعات',
+ 'Group deleted!' => 'الغيت المجموعة',
+ 'Group missing!' => 'مجموعة غير موجودة',
+ 'Group saved!' => 'تخزين المجموعة',
+ 'Groups' => 'مجموعات',
+ 'HR' => 'موارد بشرية',
+ 'HTML Templates' => '',
+ 'Heading' => 'عنوان',
+ 'History' => 'تاريخى',
+ 'Home Phone' => 'تلÙون المنزل',
+ 'Host' => 'المضيÙ',
+ 'Hostname missing!' => 'اسم المضي٠غير موجود',
+ 'IBAN' => '',
+ 'ID' => 'البطاقة الشخصية',
+ 'Image' => 'صورة',
+ 'In-line' => 'ÙÙŠ الصÙ',
+ 'Inactive' => '',
+ 'Include Exchange Rate Difference' => 'اظهار تغيير سعر العملة',
+ 'Include Payment' => '',
+ 'Include in Report' => 'ارÙÙ‚ ÙÙŠ التقرير ------',
+ 'Include in drop-down menus' => 'ضع الحساب ÙÙ‰ قائمة الخيارات ---',
+ 'Income' => 'الربح',
+ 'Income Statement' => 'قائمة الدخل',
+ 'Income account does not exist!' => '',
+ 'Incorrect Dataset version!' => 'نسخة غير صحيحة من مجموعة البيانات',
+ 'Increase' => 'زيادة',
+ 'Individual Items' => 'وحدات Ùردية',
+ 'Internal Notes' => 'ملاحظات داخلية',
+ 'Inventory' => 'مخزون',
+ 'Inventory account does not exist!' => '',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => '',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => '',
+ 'Inventory saved!' => '',
+ 'Inventory transferred!' => '',
+ 'Invoice' => 'Ùاتورة',
+ 'Invoice Date' => 'تاريخ الÙاتورة',
+ 'Invoice Date missing!' => 'تاريخ الÙاتورة غير موجود',
+ 'Invoice Number' => 'رقم الÙاتورة',
+ 'Invoice Number missing!' => 'رقم الÙاتورة غير موجود',
+ 'Invoice deleted!' => 'الغيت القاتورة',
+ 'Invoices' => 'Ùواتير',
+ 'Is this a summary account to record' => 'هل هذا الحساب ملخص لحساب لكى يتم تسجيله ----',
+ 'Item already on pricelist!' => '',
+ 'Item deleted!' => 'الغيت الوحدة',
+ 'Item not on file!' => 'الوحدة غير موجودة ÙÙŠ الملÙ',
+ 'Items' => '',
+ 'Jan' => 'يناير',
+ 'January' => 'يناير',
+ 'Job' => '',
+ 'Job Name' => '',
+ 'Job Number' => '',
+ 'Job Number missing!' => '',
+ 'Job deleted!' => '',
+ 'Job saved!' => '',
+ 'Jobs' => '',
+ 'Jul' => 'يولية',
+ 'July' => 'يولية',
+ 'Jun' => 'يونية',
+ 'June' => 'يونية',
+ 'LaTeX Templates' => '',
+ 'Labor Code' => '',
+ 'Labor/Overhead' => 'تكلÙØ© عمالة',
+ 'Language' => 'اللغة',
+ 'Language deleted!' => '',
+ 'Language saved!' => '',
+ 'Languages' => 'اللغات',
+ 'Languages not defined!' => '',
+ 'Last Cost' => '',
+ 'Last Numbers & Default Accounts' => 'اخر رقم و الحساب الرئيسي',
+ 'Lead' => '',
+ 'Leadtime' => 'مدة التسليم',
+ 'Leave host and port field empty unless you want to make a remote connection.' => '',
+ 'Liability' => 'التزامات',
+ 'Licensed to' => 'ترخيص',
+ 'Line Total' => 'اجمالى السطر',
+ 'Link' => 'ربط',
+ 'Link Accounts' => 'ربط الحسابات',
+ 'List' => '',
+ 'List Accounts' => 'قائمة الحسابات',
+ 'List Businesses' => 'قائمةانواع العمل',
+ 'List Departments' => 'قائمة الاقسام',
+ 'List GIFI' => '',
+ 'List Languages' => 'قائمة اللغات',
+ 'List Price' => 'قائمة الاسعار',
+ 'List Projects' => 'قائمة المشروعات',
+ 'List SIC' => 'قائمة الاكواد الصناعية القياسية',
+ 'List Transactions' => 'قائمة الحركات',
+ 'List Warehouses' => 'قائمة المخازن',
+ 'Lock System' => '',
+ 'Lockfile created!' => '',
+ 'Lockfile removed!' => '',
+ 'Login' => 'دخول',
+ 'Login name missing!' => 'اسم مستخدم غير موجود ',
+ 'Logout' => 'خروج',
+ 'Make' => 'اÙعل',
+ 'Manager' => 'مدير',
+ 'Mar' => 'مارس',
+ 'March' => 'مارس',
+ 'Marked entries printed!' => '',
+ 'Markup' => 'نسبة الربح',
+ 'Maximum' => '',
+ 'May' => 'مايو',
+ 'May ' => 'مايو',
+ 'Memo' => 'ملاحظات',
+ 'Menu Width' => '',
+ 'Message' => 'رسالة',
+ 'Method' => 'طريقة',
+ 'Microfiche' => '',
+ 'Model' => 'موديل',
+ 'Monday' => '',
+ 'Month' => '',
+ 'Month(s)' => '',
+ 'Months' => '',
+ 'Multibyte Encoding' => '',
+ 'N/A' => 'غير موجود',
+ 'Name' => 'الاسم',
+ 'Name missing!' => 'اسم غير موجود',
+ 'New Templates' => 'عينة جديدة',
+ 'New Window' => '',
+ 'Next' => '',
+ 'Next Date' => '',
+ 'Next Number' => '',
+ 'No' => 'لا',
+ 'No Database Drivers available!' => '',
+ 'No Dataset selected!' => '',
+ 'No Employees on file!' => '',
+ 'No Labor codes on file!' => '',
+ 'No email address for' => '',
+ 'No open Jobs!' => '',
+ 'No open Projects!' => '',
+ 'No.' => 'رقم',
+ 'Non-taxable' => 'غير خاضع للضريبة',
+ 'Non-taxable Purchases' => 'المبيعات المعÙاة من الضرائب',
+ 'Non-taxable Sales' => 'المبيعات المعÙاة من الضرائب',
+ 'Non-tracking Items' => '',
+ 'Notes' => 'ملاحظات',
+ 'Nothing entered!' => '',
+ 'Nothing selected!' => 'لم يتم الاختيار',
+ 'Nothing to delete!' => 'لم يتم الالغاء',
+ 'Nothing to print!' => '',
+ 'Nothing to transfer!' => '',
+ 'Nov' => 'نوÙمبر',
+ 'November' => 'نوÙمبر',
+ 'Number' => 'الرقم',
+ 'Number Format' => '',
+ 'Number missing in Row' => 'رقم غير موجود ÙÙŠ الصÙ',
+ 'O' => '',
+ 'OH' => '',
+ 'Obsolete' => '',
+ 'Oct' => 'اكتوبر',
+ 'October' => 'اكتوبر',
+ 'On Hand' => 'بالمخزن',
+ 'Open' => 'Ùتح',
+ 'Oracle Database Administration' => '',
+ 'Order' => 'امر',
+ 'Order Date' => 'تاريخ الامر',
+ 'Order Date missing!' => 'تاريخ الامر غير موجود',
+ 'Order Entry' => 'ادخال الامر',
+ 'Order Number' => 'رقم الامر',
+ 'Order Number missing!' => 'رقم الامر غير موجود',
+ 'Order deleted!' => 'الغي الامر',
+ 'Order generation failed!' => '',
+ 'Order saved!' => 'خزن الامر',
+ 'Orders generated!' => '',
+ 'Orphaned' => '',
+ 'Out of balance transaction!' => '',
+ 'Out of balance!' => '',
+ 'Outstanding' => 'ارصدة',
+ 'PDF' => '',
+ 'PO Number' => '',
+ 'POS' => 'نقطة بيع',
+ 'POS Invoice' => 'Ùاتورة امر الشراء',
+ 'Packing List' => 'قائمة تعبئة',
+ 'Packing List Date missing!' => 'تاريخ بوليصة الشحن غير موجود',
+ 'Packing List Number missing!' => 'رقم بوليصة الشحن غير موجود',
+ 'Packing Lists' => 'قوائم تعبئة',
+ 'Paid' => 'المدÙوع',
+ 'Part' => 'جزء',
+ 'Part Number' => '',
+ 'Partnumber' => '',
+ 'Parts' => 'الاجزاء',
+ 'Password' => 'كلمة السر',
+ 'Password changed!' => 'تغيير كلمة السر',
+ 'Password does not match!' => '',
+ 'Passwords do not match!' => '',
+ 'Payables' => 'المدÙوعات',
+ 'Payment' => 'الدÙع النقدى',
+ 'Payment date missing!' => 'تاريخ الدÙع غير موجود',
+ 'Payment posted!' => 'تم ترحيل مدÙوعات',
+ 'Payments' => 'المدÙوعات',
+ 'Payments posted!' => '',
+ 'Payroll Deduction' => '',
+ 'Period' => '',
+ 'Pg Database Administration' => '',
+ 'PgPP Database Administration' => '',
+ 'Phone' => 'تليÙون',
+ 'Pick List' => '',
+ 'Pick Lists' => '',
+ 'Port' => '',
+ 'Port missing!' => '',
+ 'Pos' => '',
+ 'Post' => 'تسجيل',
+ 'Post as new' => 'سجل كجديد',
+ 'Posted!' => 'سجل',
+ 'Posting' => '',
+ 'Posting failed!' => '',
+ 'Postscript' => '',
+ 'Preferences' => '',
+ 'Preferences saved!' => '',
+ 'Prepayment' => '',
+ 'Price' => 'سعر',
+ 'Pricegroup' => 'مجموعة سعرية',
+ 'Pricegroup deleted!' => '',
+ 'Pricegroup missing!' => '',
+ 'Pricegroup saved!' => '',
+ 'Pricegroups' => 'مجموعات سعرية',
+ 'Pricelist' => '',
+ 'Print' => 'طباعة',
+ 'Print and Post' => '',
+ 'Print and Post as new' => '',
+ 'Print and Save' => '',
+ 'Print and Save as new' => '',
+ 'Print and post as new' => '',
+ 'Print and save as new' => '',
+ 'Printed' => '',
+ 'Printer' => 'طابعة',
+ 'Printing' => '',
+ 'Printing ... ' => '',
+ 'Process Transactions' => '',
+ 'Production' => '',
+ 'Profit Center' => 'مركز ربح',
+ 'Project' => 'مشروع',
+ 'Project Description Translations' => 'ترجمة وص٠المشروع',
+ 'Project Name' => '',
+ 'Project Number' => 'رقم المشروع',
+ 'Project Number missing!' => 'رقم المشروع غير موجود',
+ 'Project Transactions' => 'حركات المشروع',
+ 'Project deleted!' => 'الغي المشروع',
+ 'Project not on file!' => 'المشروع ليس ÙÙ‰ الملÙات',
+ 'Project saved!' => 'خزن المشروع',
+ 'Project/Job Name' => '',
+ 'Project/Job Number' => '',
+ 'Projects' => 'مشروعات',
+ 'Purchase Order' => 'امر شراء',
+ 'Purchase Order Number' => '',
+ 'Purchase Orders' => 'اوامر شراء',
+ 'Qty' => 'الكمية',
+ 'Quantity exceeds available units to stock!' => '',
+ 'Quarter' => '',
+ 'Quotation' => 'عروض اسعار للعملاء',
+ 'Quotation ' => '',
+ 'Quotation Date' => 'تاريخ عرض السعر',
+ 'Quotation Date missing!' => '',
+ 'Quotation Number' => 'رقم عرض السعر',
+ 'Quotation Number missing!' => '',
+ 'Quotation deleted!' => '',
+ 'Quotations' => 'عروض اسعار',
+ 'R' => '',
+ 'RFQ' => '',
+ 'RFQ ' => '',
+ 'RFQ Number' => 'رقم عرض السعر',
+ 'RFQs' => 'عروض اسعار موردين',
+ 'ROP' => '',
+ 'Rate' => 'النسبة',
+ 'Rate missing!' => '',
+ 'Recd' => '',
+ 'Receipt' => 'الوارد',
+ 'Receipt posted!' => '',
+ 'Receipts' => 'الواردات',
+ 'Receivables' => 'المقبوضات',
+ 'Receive' => 'شحن وارد',
+ 'Receive Merchandise' => 'استلام بضاعة',
+ 'Reconciliation' => 'تسويات',
+ 'Reconciliation Report' => 'تقرير التسويات',
+ 'Record in' => 'ÙÙŠ السجل',
+ 'Recurring Transaction' => '',
+ 'Recurring Transactions' => '',
+ 'Reference' => 'مرجع',
+ 'Remaining' => 'متبقى',
+ 'Remove' => '',
+ 'Remove Audit trail up to' => '',
+ 'Removed spoolfiles!' => '',
+ 'Removing marked entries from queue ...' => '',
+ 'Repeat' => '',
+ 'Report for' => 'تقرير لاجل',
+ 'Reports' => 'تقارير',
+ 'Req' => '',
+ 'Request for Quotation' => '',
+ 'Request for Quotations' => 'عروض اسعار مطلوبة',
+ 'Required by' => 'مطلوب من قبل',
+ 'Retained Earnings' => 'ارباح محجوزة',
+ 'Role' => 'الوظيÙØ©',
+ 'S' => '',
+ 'SIC' => 'الاكواد الصناعية القياسية',
+ 'SIC deleted!' => '',
+ 'SIC saved!' => '',
+ 'SKU' => '',
+ 'SSN' => '',
+ 'Sale' => 'بيع',
+ 'Sales' => 'مبيعات',
+ 'Sales Invoice' => 'Ùاتورة المبيعات',
+ 'Sales Invoice ' => '',
+ 'Sales Invoice.' => '',
+ 'Sales Invoice/AR Transaction Number' => '',
+ 'Sales Invoices' => 'Ùواتير المبيعات',
+ 'Sales Order' => 'امر بيع',
+ 'Sales Order Number' => '',
+ 'Sales Orders' => 'اوامر بيع',
+ 'Sales Quotation Number' => '',
+ 'Salesperson' => 'مندوب مبيعات',
+ 'Saturday' => '',
+ 'Save' => 'تخزين',
+ 'Save Pricelist' => '',
+ 'Save Schedule' => '',
+ 'Save as new' => 'خزن كجديد',
+ 'Save to File' => 'خزن كملÙ',
+ 'Saving' => '',
+ 'Schedule' => '',
+ 'Scheduled' => '',
+ 'Screen' => 'الشاشة',
+ 'Search' => 'بحث',
+ 'Select' => '',
+ 'Select Customer' => '',
+ 'Select Vendor' => '',
+ 'Select a Printer!' => '',
+ 'Select a printer!' => '',
+ 'Select all' => 'اختر الكل',
+ 'Select from one of the items below' => 'اختر وحدة من الوحدات',
+ 'Select from one of the names below' => 'اختر اسم من الاسماء',
+ 'Select from one of the projects below' => 'اختر مشروع من المشروعات التالية',
+ 'Select items' => '',
+ 'Select payment' => '',
+ 'Select postscript or PDF!' => '',
+ 'Select txt, postscript or PDF!' => '',
+ 'Sell' => '',
+ 'Sell Price' => 'سعر البيع',
+ 'Send by E-Mail' => 'ارسل بالبريد الالكتروني',
+ 'Sending' => '',
+ 'Sep' => 'سبتمبر',
+ 'September' => 'سبتمبر',
+ 'Serial No.' => '',
+ 'Serial Number' => 'رقم مسلسل',
+ 'Service' => 'خدمة',
+ 'Service Code' => '',
+ 'Service/Labor Code' => '',
+ 'Services' => 'خدمات',
+ 'Session Timeout' => '',
+ 'Session expired!' => '',
+ 'Setup Templates' => '',
+ 'Ship' => 'شحن صادر',
+ 'Ship Merchandise' => 'شحن بضاعة للخارج',
+ 'Ship to' => 'شحن الى',
+ 'Ship via' => 'شحن من خلال',
+ 'Shipping' => 'شحن',
+ 'Shipping Address' => 'عنوان الشحن',
+ 'Shipping Date' => '',
+ 'Shipping Date missing!' => '',
+ 'Shipping Point' => 'نقطة الشحن',
+ 'Short' => 'قصير',
+ 'Signature' => 'امضاء',
+ 'Source' => 'مصدر',
+ 'Spoolfile' => '',
+ 'Standard' => 'اساس',
+ 'Standard Industrial Codes' => 'الاكواد الصناعية القياسية',
+ 'Startdate' => 'تاريخ يدء العمل',
+ 'State' => '',
+ 'State/Province' => 'محاÙظة',
+ 'Statement' => 'كش٠حساب',
+ 'Statement Balance' => 'رصيد كش٠حساب',
+ 'Statement sent to' => 'كش٠حساب مرسل الى',
+ 'Statements sent to printer!' => 'كش٠حساب مرسل الى الطابعة',
+ 'Stock' => 'مخزون',
+ 'Stock Assembly' => 'تجميع مخزون',
+ 'Stocking Date' => '',
+ 'Stylesheet' => '',
+ 'Sub-contract GIFI' => '',
+ 'Subject' => 'موضوع',
+ 'Subtotal' => 'اجمالى',
+ 'Summary' => 'ملخص',
+ 'Sunday' => '',
+ 'Supervisor' => '',
+ 'System' => 'نظام',
+ 'System Defaults' => 'معطيات النظام',
+ 'Tax' => 'ضريبة',
+ 'Tax Accounts' => 'الحسابات الضريبية',
+ 'Tax Included' => 'الضريبة المضاÙØ©',
+ 'Tax Number' => 'رقم ضريبى',
+ 'Tax Number / SSN' => '',
+ 'Tax collected' => 'الضريبة المجمعة',
+ 'Tax paid' => 'الضريبة المدÙوعة',
+ 'Taxable' => 'خاضع للضريبة',
+ 'Template saved!' => 'خزنت العينة',
+ 'Templates' => 'العينات',
+ 'Terms' => 'شروط ',
+ 'Text' => '',
+ 'Text Templates' => '',
+ 'The following Datasets are not in use and can be deleted' => 'هذة المجموعة من البيانات لا يتم استخدامها و يمكن الغائها',
+ 'The following Datasets need to be updated' => 'هذة المجموعة من البيانات تحتاج إلى تحديث',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => '',
+ 'Thursday' => '',
+ 'Till' => 'إلى',
+ 'Time In' => '',
+ 'Time Out' => '',
+ 'Timecard' => '',
+ 'Timecard deleted!' => '',
+ 'Timecard saved!' => '',
+ 'Timecards' => '',
+ 'Times' => '',
+ 'To' => 'إلى',
+ 'To Warehouse' => '',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => '',
+ 'Top Level' => 'المستوى الاعلى',
+ 'Total' => 'مجموع',
+ 'Tracking Items' => '',
+ 'Trade Discount' => '',
+ 'Transaction' => '',
+ 'Transaction Date missing!' => 'تاريخ الحركة غير موجود',
+ 'Transaction Dates' => '',
+ 'Transaction deleted!' => 'الغيت الحركة',
+ 'Transaction posted!' => 'سجلت الحركة',
+ 'Transaction reversal enforced for all dates' => '',
+ 'Transaction reversal enforced up to' => '',
+ 'Transactions' => 'حركات',
+ 'Transfer' => 'تحويل',
+ 'Transfer Inventory' => '',
+ 'Transfer from' => '',
+ 'Transfer to' => '',
+ 'Translation' => '',
+ 'Translation deleted!' => '',
+ 'Translation not on file!' => '',
+ 'Translations' => 'ترجمات',
+ 'Translations saved!' => '',
+ 'Trial Balance' => 'ميزان المراجعة',
+ 'Tuesday' => '',
+ 'Type of Business' => 'نوع العمل',
+ 'Unit' => 'وحدة',
+ 'Unit of measure' => 'وحدة القياس',
+ 'Unlock System' => '',
+ 'Update' => 'تعديل',
+ 'Update Dataset' => '',
+ 'Updated' => 'معدل',
+ 'Upgrading to Version' => '',
+ 'Use Templates' => 'استخدم العينات',
+ 'User' => 'مستخدم',
+ 'User deleted!' => 'الغي المستخدم',
+ 'User saved!' => 'خزن المستخدم',
+ 'Valid until' => 'سارى حتى',
+ 'Vendor' => 'المورد',
+ 'Vendor History' => 'بيانات تاريخية عن مورد',
+ 'Vendor Invoice' => 'Ùاتورة المورد ',
+ 'Vendor Invoice ' => '',
+ 'Vendor Invoice.' => '',
+ 'Vendor Invoice/AP Transaction Number' => '',
+ 'Vendor Invoices' => 'Ùواتير الموردين',
+ 'Vendor Number' => 'رقم المورد',
+ 'Vendor deleted!' => 'الغي المورد',
+ 'Vendor missing!' => 'مورد غير موجود',
+ 'Vendor not on file!' => 'مورد غير موجود ÙÙŠ الملÙ',
+ 'Vendor saved!' => 'خزن المورد',
+ 'Vendors' => 'الموردين',
+ 'Version' => 'نسخة',
+ 'Warehouse' => '',
+ 'Warehouse deleted!' => '',
+ 'Warehouse saved!' => '',
+ 'Warehouses' => 'مخازن',
+ 'Warning!' => '',
+ 'Wednesday' => '',
+ 'Week' => '',
+ 'Week(s)' => '',
+ 'Weeks' => '',
+ 'Weight' => 'وزن',
+ 'Weight Unit' => 'وزن الوحدة',
+ 'What type of item is this?' => 'ما نوع هذة الوحدة؟',
+ 'Work Order' => 'امر شغل',
+ 'Work Orders' => '',
+ 'Work Phone' => 'تلÙون العمل',
+ 'Year' => '',
+ 'Year(s)' => '',
+ 'Yearend' => 'نهاية العام المالى',
+ 'Yearend date missing!' => '',
+ 'Yearend posted!' => '',
+ 'Yearend posting failed!' => '',
+ 'Years' => '',
+ 'Yes' => 'نعم',
+ 'You are logged out' => '',
+ 'You are posting an existing transaction!' => '',
+ 'You are printing and posting an existing transaction!' => '',
+ 'You are printing and saving an existing order' => '',
+ 'You are printing and saving an existing quotation' => '',
+ 'You are printing and saving an existing transaction!' => '',
+ 'You are saving an existing order' => '',
+ 'You are saving an existing quotation' => '',
+ 'You are saving an existing transaction!' => '',
+ 'You did not enter a name!' => 'لم يتم ادخال الاسم',
+ 'You must enter a host and port for local and remote connections!' => '',
+ 'Zip/Postal Code' => '',
+ 'account cannot be set to any other type of account' => '',
+ 'as at' => 'من',
+ 'days' => 'ايام',
+ 'does not exist' => 'لا يوجد',
+ 'done' => 'Ù†ÙØ°',
+ 'ea' => 'قطعة',
+ 'failed' => '',
+ 'for' => '',
+ 'for Period' => 'للÙترة',
+ 'is already a member!' => 'عضو موجود',
+ 'localhost' => '',
+ 'locked!' => '',
+ 'partsgroup' => '',
+ 'posted!' => '',
+ 'sent' => '',
+ 'successfully created!' => 'انشأ بنجاح',
+ 'successfully deleted!' => 'الغي بنجاح',
+ 'time(s)' => '',
+ 'unexpected error!' => '',
+ 'website' => 'موقع انترنت',
+};
+
+1;
diff --git a/locale/eg_utf/am b/locale/eg_utf/am
new file mode 100755
index 00000000..5ef2b7b1
--- /dev/null
+++ b/locale/eg_utf/am
@@ -0,0 +1,220 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP' => 'موردين',
+ 'AR' => 'عملاء',
+ 'About' => 'عن',
+ 'Account' => 'حساب',
+ 'Account Number' => 'رقم حساب',
+ 'Account Number missing!' => 'رقم الحساب غير موجود',
+ 'Account Type' => 'نوع الحساب',
+ 'Account Type missing!' => 'نوع الحساب غير موجود',
+ 'Account deleted!' => 'ألغي الحساب',
+ 'Account does not exist!' => 'الحساب غير موجود',
+ 'Account saved!' => 'خزن الحساب',
+ 'Accounting Menu' => 'قائمة الحسابات',
+ 'Accrual' => 'المجمعة',
+ 'Add Account' => 'اضاÙØ© حساب',
+ 'Add Business' => 'اضاÙØ© نوع عمل',
+ 'Add Department' => 'اضاÙØ© قسم',
+ 'Add Language' => 'اضاÙØ© لغة',
+ 'Add SIC' => 'اضاÙØ© كود صناعى قياسى',
+ 'Add Warehouse' => 'اضاÙØ© مخزن',
+ 'Address' => 'العنوان',
+ 'Amount' => 'الكمية',
+ 'Asset' => 'أصول',
+ 'Audit Control' => 'التحكم ÙÙŠ المراجعة',
+ 'Backup sent to' => 'نسخة احتياطية ارسلت الى',
+ 'Business Number' => 'الرقم الضريبى',
+ 'COGS' => 'تكلÙØ© البضاعة المباعة',
+ 'Cannot delete account!' => 'لا يمكن الغاء الحساب ',
+ 'Cannot delete default account!' => 'لا يمكن الغاء الحساب الاساسي',
+ 'Cannot save account!' => 'لا يمكن تخزين الحساب',
+ 'Cash' => 'النقدية',
+ 'Chart of Accounts' => 'قائمة الحسابات',
+ 'Close Books up to' => 'اقÙال الدÙاتر حتى',
+ 'Code' => 'كود',
+ 'Company' => 'شركة',
+ 'Confirm!' => 'تاكيد',
+ 'Continue' => 'تابع',
+ 'Cost Center' => 'مركز تكلÙØ©',
+ 'Credit' => 'دائن',
+ 'Customer Number' => 'رقم العميل',
+ 'Database Host' => 'مضي٠قواعد البيانات',
+ 'Dataset' => 'مجموعة بيانات',
+ 'Date Format' => 'تنسيق البيانات',
+ 'Debit' => 'مدين',
+ 'Delete' => 'الغاء',
+ 'Delete Account' => 'الغاء الحساب',
+ 'Departments' => 'اقسام',
+ 'Description' => 'وصÙ',
+ 'Discount' => 'خصم',
+ 'E-mail' => 'بريد الكتروني',
+ 'E-mail address missing!' => 'عنوان البريد الالكتروني غير موجود',
+ 'Edit' => 'تعديل',
+ 'Edit Account' => 'تعديل الحساب',
+ 'Edit Template' => 'تعديل عينة',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'ادخل 3 حرو٠للعملة Ù…Ùصولة ":" )CAD:USD:EUR) للعملة المحلية Ùˆ العملات الاجنبية',
+ 'Equity' => 'رأس المال',
+ 'Expense' => 'المصروÙات',
+ 'Expense/Asset' => 'الخصوم/الأصول',
+ 'Fax' => 'الÙاكس',
+ 'Foreign Exchange Gain' => 'ارباح التحويل الاجنبي',
+ 'Foreign Exchange Loss' => 'خسائر التحويل الاجنبي',
+ 'GL Transaction' => 'حركات الاستاذ العام',
+ 'Heading' => 'عنوان',
+ 'ID' => 'البطاقة الشخصية',
+ 'Include in drop-down menus' => 'ضع الحساب ÙÙ‰ قائمة الخيارات ---',
+ 'Income' => 'الربح',
+ 'Inventory' => 'مخزون',
+ 'Invoice' => 'Ùاتورة',
+ 'Is this a summary account to record' => 'هل هذا الحساب ملخص لحساب لكى يتم تسجيله ----',
+ 'Language' => 'اللغة',
+ 'Languages' => 'اللغات',
+ 'Last Numbers & Default Accounts' => 'اخر رقم و الحساب الرئيسي',
+ 'Liability' => 'التزامات',
+ 'Licensed to' => 'ترخيص',
+ 'Link' => 'ربط',
+ 'Method' => 'طريقة',
+ 'Name' => 'الاسم',
+ 'No' => 'لا',
+ 'Number' => 'الرقم',
+ 'Packing List' => 'قائمة تعبئة',
+ 'Password' => 'كلمة السر',
+ 'Payables' => 'المدÙوعات',
+ 'Payment' => 'الدÙع النقدى',
+ 'Phone' => 'تليÙون',
+ 'Print' => 'طباعة',
+ 'Printer' => 'طابعة',
+ 'Profit Center' => 'مركز ربح',
+ 'Purchase Order' => 'امر شراء',
+ 'Purchase Orders' => 'اوامر شراء',
+ 'RFQ Number' => 'رقم عرض السعر',
+ 'Rate' => 'النسبة',
+ 'Receivables' => 'المقبوضات',
+ 'Reference' => 'مرجع',
+ 'Retained Earnings' => 'ارباح محجوزة',
+ 'Sales Invoice' => 'Ùاتورة المبيعات',
+ 'Sales Order' => 'امر بيع',
+ 'Sales Orders' => 'اوامر بيع',
+ 'Save' => 'تخزين',
+ 'Save as new' => 'خزن كجديد',
+ 'Signature' => 'امضاء',
+ 'Standard Industrial Codes' => 'الاكواد الصناعية القياسية',
+ 'System Defaults' => 'معطيات النظام',
+ 'Tax' => 'ضريبة',
+ 'Template saved!' => 'خزنت العينة',
+ 'Type of Business' => 'نوع العمل',
+ 'Update' => 'تعديل',
+ 'User' => 'مستخدم',
+ 'Vendor Invoice' => 'Ùاتورة المورد ',
+ 'Vendor Number' => 'رقم المورد',
+ 'Version' => 'نسخة',
+ 'Warehouses' => 'مخازن',
+ 'Weight Unit' => 'وزن الوحدة',
+ 'Work Order' => 'امر شغل',
+ 'Yearend' => 'نهاية العام المالى',
+ 'Yes' => 'نعم',
+ 'done' => 'Ù†ÙØ°',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'اضاÙØ©_حساب' => 'add_account',
+ 'اضاÙØ©_نوع_عمل' => 'add_business',
+ 'اضاÙØ©_قسم' => 'add_department',
+ 'اضاÙØ©_لغة' => 'add_language',
+ 'اضاÙØ©_كود_صناعى_قياسى' => 'add_sic',
+ 'اضاÙØ©_مخزن' => 'add_warehouse',
+ 'تابع' => 'continue',
+ 'الغاء' => 'delete',
+ 'تعديل' => 'edit',
+ 'تعديل_الحساب' => 'edit_account',
+ 'تخزين' => 'save',
+ 'خزن_كجديد' => 'save_as_new',
+ 'تعديل' => 'update',
+};
+
+1;
+
diff --git a/locale/eg_utf/ap b/locale/eg_utf/ap
new file mode 100755
index 00000000..5dc3bf78
--- /dev/null
+++ b/locale/eg_utf/ap
@@ -0,0 +1,189 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Outstanding' => 'ارصدة موردين متبقية',
+ 'AP Transaction' => 'حركة حساب مورد',
+ 'AP Transactions' => 'حركات حساب الموردين',
+ 'AR Outstanding' => 'ارصدة عملاء ',
+ 'AR Transaction' => 'حركة حساب عميل',
+ 'AR Transactions' => 'حركات حساب العملاء',
+ 'Account' => 'حساب',
+ 'Accounting Menu' => 'قائمة الحسابات',
+ 'Address' => 'العنوان',
+ 'Amount' => 'الكمية',
+ 'Amount Due' => 'الرصيد ',
+ 'Apr' => 'ابريل',
+ 'April' => 'ابريل',
+ 'Are you sure you want to delete Transaction' => 'هل انت متأكد انك تريد الغاء الحركة',
+ 'Aug' => 'اغسطس',
+ 'August' => 'اغسطس',
+ 'Bcc' => 'نسخة غير مرئية',
+ 'Cannot delete transaction!' => 'لا يمكن الغاء الحركة',
+ 'Cannot post payment for a closed period!' => 'لا يمكن تسجيل المدÙوعات Ù„Ùترة مغلقة',
+ 'Cannot post transaction for a closed period!' => 'لا يمكن تسجيل الحركة Ù„Ùترة مغلقة',
+ 'Cannot post transaction!' => 'لا يمكن تسجيل الحركة',
+ 'Cc' => 'نسخة اخرى',
+ 'Check' => 'شيك',
+ 'Closed' => 'مغلق',
+ 'Confirm!' => 'تاكيد',
+ 'Continue' => 'تابع',
+ 'Credit' => 'دائن',
+ 'Credit Limit' => 'حد الائتمان',
+ 'Curr' => 'عملة',
+ 'Currency' => 'عملة',
+ 'Current' => 'الحالي',
+ 'Customer' => 'العميل',
+ 'Customer missing!' => 'عميل غير موجود',
+ 'Customer not on file!' => ' عميل غير موجود ÙÙŠ الملÙ',
+ 'Date' => 'التاريخ',
+ 'Date Paid' => 'تاريخ الدÙع',
+ 'Debit' => 'مدين',
+ 'Dec' => 'ديسمبر',
+ 'December' => 'ديسمبر',
+ 'Delete' => 'الغاء',
+ 'Department' => 'قسم',
+ 'Description' => 'وصÙ',
+ 'Detail' => 'تÙصيلى',
+ 'Due Date' => 'تاريخ الاستحقاق',
+ 'Due Date missing!' => 'تاريخ الاستحقاق غير موجود',
+ 'E-mail' => 'بريد الكتروني',
+ 'Employee' => 'الموظÙ',
+ 'Exch' => 'سعر الصرÙ',
+ 'Exchange Rate' => 'سعر الصرÙ',
+ 'Exchange rate for payment missing!' => 'سعر الصر٠للمدÙوعات غير موجود',
+ 'Exchange rate missing!' => 'سعر الصر٠غير موجود',
+ 'Feb' => 'Ùبراير',
+ 'February' => 'Ùبراير',
+ 'From' => 'من',
+ 'ID' => 'البطاقة الشخصية',
+ 'Include in Report' => 'ارÙÙ‚ ÙÙŠ التقرير ------',
+ 'Invoice' => 'Ùاتورة',
+ 'Invoice Date' => 'تاريخ الÙاتورة',
+ 'Invoice Date missing!' => 'تاريخ الÙاتورة غير موجود',
+ 'Invoice Number' => 'رقم الÙاتورة',
+ 'Jan' => 'يناير',
+ 'January' => 'يناير',
+ 'Jul' => 'يولية',
+ 'July' => 'يولية',
+ 'Jun' => 'يونية',
+ 'June' => 'يونية',
+ 'Manager' => 'مدير',
+ 'Mar' => 'مارس',
+ 'March' => 'مارس',
+ 'May' => 'مايو',
+ 'May ' => 'مايو',
+ 'Memo' => 'ملاحظات',
+ 'Message' => 'رسالة',
+ 'No.' => 'رقم',
+ 'Notes' => 'ملاحظات',
+ 'Nov' => 'نوÙمبر',
+ 'November' => 'نوÙمبر',
+ 'Number' => 'الرقم',
+ 'Oct' => 'اكتوبر',
+ 'October' => 'اكتوبر',
+ 'Open' => 'Ùتح',
+ 'Order' => 'امر',
+ 'Order Number' => 'رقم الامر',
+ 'Paid' => 'المدÙوع',
+ 'Payment date missing!' => 'تاريخ الدÙع غير موجود',
+ 'Payments' => 'المدÙوعات',
+ 'Post' => 'تسجيل',
+ 'Post as new' => 'سجل كجديد',
+ 'Print' => 'طباعة',
+ 'Project' => 'مشروع',
+ 'Project not on file!' => 'المشروع ليس ÙÙ‰ الملÙات',
+ 'Receipt' => 'الوارد',
+ 'Reference' => 'مرجع',
+ 'Remaining' => 'متبقى',
+ 'Salesperson' => 'مندوب مبيعات',
+ 'Screen' => 'الشاشة',
+ 'Select from one of the names below' => 'اختر اسم من الاسماء',
+ 'Select from one of the projects below' => 'اختر مشروع من المشروعات التالية',
+ 'Sep' => 'سبتمبر',
+ 'September' => 'سبتمبر',
+ 'Ship to' => 'شحن الى',
+ 'Ship via' => 'شحن من خلال',
+ 'Shipping Point' => 'نقطة الشحن',
+ 'Source' => 'مصدر',
+ 'Startdate' => 'تاريخ يدء العمل',
+ 'Subject' => 'موضوع',
+ 'Subtotal' => 'اجمالى',
+ 'Summary' => 'ملخص',
+ 'Tax' => 'ضريبة',
+ 'Tax Included' => 'الضريبة المضاÙØ©',
+ 'Till' => 'إلى',
+ 'To' => 'إلى',
+ 'Total' => 'مجموع',
+ 'Transaction deleted!' => 'الغيت الحركة',
+ 'Transaction posted!' => 'سجلت الحركة',
+ 'Update' => 'تعديل',
+ 'Vendor' => 'المورد',
+ 'Vendor missing!' => 'مورد غير موجود',
+ 'Vendor not on file!' => 'مورد غير موجود ÙÙŠ الملÙ',
+ 'Yes' => 'نعم',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'حركة_حساب_مورد' => 'ap_transaction',
+ 'حركة_حساب_عميل' => 'ar_transaction',
+ 'تابع' => 'continue',
+ 'الغاء' => 'delete',
+ 'تسجيل' => 'post',
+ 'سجل_كجديد' => 'post_as_new',
+ 'طباعة' => 'print',
+ 'شحن_الى' => 'ship_to',
+ 'تعديل' => 'update',
+ 'نعم' => 'yes',
+};
+
+1;
+
diff --git a/locale/eg_utf/ar b/locale/eg_utf/ar
new file mode 100755
index 00000000..5dc3bf78
--- /dev/null
+++ b/locale/eg_utf/ar
@@ -0,0 +1,189 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Outstanding' => 'ارصدة موردين متبقية',
+ 'AP Transaction' => 'حركة حساب مورد',
+ 'AP Transactions' => 'حركات حساب الموردين',
+ 'AR Outstanding' => 'ارصدة عملاء ',
+ 'AR Transaction' => 'حركة حساب عميل',
+ 'AR Transactions' => 'حركات حساب العملاء',
+ 'Account' => 'حساب',
+ 'Accounting Menu' => 'قائمة الحسابات',
+ 'Address' => 'العنوان',
+ 'Amount' => 'الكمية',
+ 'Amount Due' => 'الرصيد ',
+ 'Apr' => 'ابريل',
+ 'April' => 'ابريل',
+ 'Are you sure you want to delete Transaction' => 'هل انت متأكد انك تريد الغاء الحركة',
+ 'Aug' => 'اغسطس',
+ 'August' => 'اغسطس',
+ 'Bcc' => 'نسخة غير مرئية',
+ 'Cannot delete transaction!' => 'لا يمكن الغاء الحركة',
+ 'Cannot post payment for a closed period!' => 'لا يمكن تسجيل المدÙوعات Ù„Ùترة مغلقة',
+ 'Cannot post transaction for a closed period!' => 'لا يمكن تسجيل الحركة Ù„Ùترة مغلقة',
+ 'Cannot post transaction!' => 'لا يمكن تسجيل الحركة',
+ 'Cc' => 'نسخة اخرى',
+ 'Check' => 'شيك',
+ 'Closed' => 'مغلق',
+ 'Confirm!' => 'تاكيد',
+ 'Continue' => 'تابع',
+ 'Credit' => 'دائن',
+ 'Credit Limit' => 'حد الائتمان',
+ 'Curr' => 'عملة',
+ 'Currency' => 'عملة',
+ 'Current' => 'الحالي',
+ 'Customer' => 'العميل',
+ 'Customer missing!' => 'عميل غير موجود',
+ 'Customer not on file!' => ' عميل غير موجود ÙÙŠ الملÙ',
+ 'Date' => 'التاريخ',
+ 'Date Paid' => 'تاريخ الدÙع',
+ 'Debit' => 'مدين',
+ 'Dec' => 'ديسمبر',
+ 'December' => 'ديسمبر',
+ 'Delete' => 'الغاء',
+ 'Department' => 'قسم',
+ 'Description' => 'وصÙ',
+ 'Detail' => 'تÙصيلى',
+ 'Due Date' => 'تاريخ الاستحقاق',
+ 'Due Date missing!' => 'تاريخ الاستحقاق غير موجود',
+ 'E-mail' => 'بريد الكتروني',
+ 'Employee' => 'الموظÙ',
+ 'Exch' => 'سعر الصرÙ',
+ 'Exchange Rate' => 'سعر الصرÙ',
+ 'Exchange rate for payment missing!' => 'سعر الصر٠للمدÙوعات غير موجود',
+ 'Exchange rate missing!' => 'سعر الصر٠غير موجود',
+ 'Feb' => 'Ùبراير',
+ 'February' => 'Ùبراير',
+ 'From' => 'من',
+ 'ID' => 'البطاقة الشخصية',
+ 'Include in Report' => 'ارÙÙ‚ ÙÙŠ التقرير ------',
+ 'Invoice' => 'Ùاتورة',
+ 'Invoice Date' => 'تاريخ الÙاتورة',
+ 'Invoice Date missing!' => 'تاريخ الÙاتورة غير موجود',
+ 'Invoice Number' => 'رقم الÙاتورة',
+ 'Jan' => 'يناير',
+ 'January' => 'يناير',
+ 'Jul' => 'يولية',
+ 'July' => 'يولية',
+ 'Jun' => 'يونية',
+ 'June' => 'يونية',
+ 'Manager' => 'مدير',
+ 'Mar' => 'مارس',
+ 'March' => 'مارس',
+ 'May' => 'مايو',
+ 'May ' => 'مايو',
+ 'Memo' => 'ملاحظات',
+ 'Message' => 'رسالة',
+ 'No.' => 'رقم',
+ 'Notes' => 'ملاحظات',
+ 'Nov' => 'نوÙمبر',
+ 'November' => 'نوÙمبر',
+ 'Number' => 'الرقم',
+ 'Oct' => 'اكتوبر',
+ 'October' => 'اكتوبر',
+ 'Open' => 'Ùتح',
+ 'Order' => 'امر',
+ 'Order Number' => 'رقم الامر',
+ 'Paid' => 'المدÙوع',
+ 'Payment date missing!' => 'تاريخ الدÙع غير موجود',
+ 'Payments' => 'المدÙوعات',
+ 'Post' => 'تسجيل',
+ 'Post as new' => 'سجل كجديد',
+ 'Print' => 'طباعة',
+ 'Project' => 'مشروع',
+ 'Project not on file!' => 'المشروع ليس ÙÙ‰ الملÙات',
+ 'Receipt' => 'الوارد',
+ 'Reference' => 'مرجع',
+ 'Remaining' => 'متبقى',
+ 'Salesperson' => 'مندوب مبيعات',
+ 'Screen' => 'الشاشة',
+ 'Select from one of the names below' => 'اختر اسم من الاسماء',
+ 'Select from one of the projects below' => 'اختر مشروع من المشروعات التالية',
+ 'Sep' => 'سبتمبر',
+ 'September' => 'سبتمبر',
+ 'Ship to' => 'شحن الى',
+ 'Ship via' => 'شحن من خلال',
+ 'Shipping Point' => 'نقطة الشحن',
+ 'Source' => 'مصدر',
+ 'Startdate' => 'تاريخ يدء العمل',
+ 'Subject' => 'موضوع',
+ 'Subtotal' => 'اجمالى',
+ 'Summary' => 'ملخص',
+ 'Tax' => 'ضريبة',
+ 'Tax Included' => 'الضريبة المضاÙØ©',
+ 'Till' => 'إلى',
+ 'To' => 'إلى',
+ 'Total' => 'مجموع',
+ 'Transaction deleted!' => 'الغيت الحركة',
+ 'Transaction posted!' => 'سجلت الحركة',
+ 'Update' => 'تعديل',
+ 'Vendor' => 'المورد',
+ 'Vendor missing!' => 'مورد غير موجود',
+ 'Vendor not on file!' => 'مورد غير موجود ÙÙŠ الملÙ',
+ 'Yes' => 'نعم',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'حركة_حساب_مورد' => 'ap_transaction',
+ 'حركة_حساب_عميل' => 'ar_transaction',
+ 'تابع' => 'continue',
+ 'الغاء' => 'delete',
+ 'تسجيل' => 'post',
+ 'سجل_كجديد' => 'post_as_new',
+ 'طباعة' => 'print',
+ 'شحن_الى' => 'ship_to',
+ 'تعديل' => 'update',
+ 'نعم' => 'yes',
+};
+
+1;
+
diff --git a/locale/eg_utf/arap b/locale/eg_utf/arap
new file mode 100755
index 00000000..7eacbdeb
--- /dev/null
+++ b/locale/eg_utf/arap
@@ -0,0 +1,51 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Address' => 'العنوان',
+ 'Bcc' => 'نسخة غير مرئية',
+ 'Cc' => 'نسخة اخرى',
+ 'Continue' => 'تابع',
+ 'Customer not on file!' => ' عميل غير موجود ÙÙŠ الملÙ',
+ 'Date' => 'التاريخ',
+ 'Description' => 'وصÙ',
+ 'E-mail' => 'بريد الكتروني',
+ 'Message' => 'رسالة',
+ 'Number' => 'الرقم',
+ 'Print' => 'طباعة',
+ 'Project not on file!' => 'المشروع ليس ÙÙ‰ الملÙات',
+ 'Reference' => 'مرجع',
+ 'Select from one of the names below' => 'اختر اسم من الاسماء',
+ 'Select from one of the projects below' => 'اختر مشروع من المشروعات التالية',
+ 'Startdate' => 'تاريخ يدء العمل',
+ 'Subject' => 'موضوع',
+ 'To' => 'إلى',
+ 'Vendor not on file!' => 'مورد غير موجود ÙÙŠ الملÙ',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'تابع' => 'continue',
+};
+
+1;
+
diff --git a/locale/eg_utf/arapprn b/locale/eg_utf/arapprn
new file mode 100755
index 00000000..0d7cd1fe
--- /dev/null
+++ b/locale/eg_utf/arapprn
@@ -0,0 +1,28 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'حساب',
+ 'Amount' => 'الكمية',
+ 'Continue' => 'تابع',
+ 'Date' => 'التاريخ',
+ 'Memo' => 'ملاحظات',
+ 'Screen' => 'الشاشة',
+ 'Source' => 'مصدر',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'تابع' => 'continue',
+};
+
+1;
+
diff --git a/locale/eg_utf/bp b/locale/eg_utf/bp
new file mode 100755
index 00000000..750448d8
--- /dev/null
+++ b/locale/eg_utf/bp
@@ -0,0 +1,54 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'حساب',
+ 'Accounting Menu' => 'قائمة الحسابات',
+ 'Confirm!' => 'تاكيد',
+ 'Continue' => 'تابع',
+ 'Current' => 'الحالي',
+ 'Customer' => 'العميل',
+ 'Date' => 'التاريخ',
+ 'Employee' => 'الموظÙ',
+ 'From' => 'من',
+ 'ID' => 'البطاقة الشخصية',
+ 'Invoice' => 'Ùاتورة',
+ 'Invoice Number' => 'رقم الÙاتورة',
+ 'Order' => 'امر',
+ 'Order Number' => 'رقم الامر',
+ 'Packing Lists' => 'قوائم تعبئة',
+ 'Print' => 'طباعة',
+ 'Purchase Orders' => 'اوامر شراء',
+ 'Quotation' => 'عروض اسعار للعملاء',
+ 'Quotation Number' => 'رقم عرض السعر',
+ 'Quotations' => 'عروض اسعار',
+ 'RFQs' => 'عروض اسعار موردين',
+ 'Sales Invoices' => 'Ùواتير المبيعات',
+ 'Sales Orders' => 'اوامر بيع',
+ 'Select all' => 'اختر الكل',
+ 'To' => 'إلى',
+ 'Vendor' => 'المورد',
+ 'Yes' => 'نعم',
+ 'done' => 'Ù†ÙØ°',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'تابع' => 'continue',
+ 'طباعة' => 'print',
+ 'اختر_الكل' => 'select_all',
+ 'نعم' => 'yes',
+};
+
+1;
+
diff --git a/locale/eg_utf/ca b/locale/eg_utf/ca
new file mode 100755
index 00000000..6b1cfb95
--- /dev/null
+++ b/locale/eg_utf/ca
@@ -0,0 +1,55 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'حساب',
+ 'Apr' => 'ابريل',
+ 'April' => 'ابريل',
+ 'Aug' => 'اغسطس',
+ 'August' => 'اغسطس',
+ 'Balance' => 'رصيد',
+ 'Chart of Accounts' => 'قائمة الحسابات',
+ 'Credit' => 'دائن',
+ 'Current' => 'الحالي',
+ 'Date' => 'التاريخ',
+ 'Debit' => 'مدين',
+ 'Dec' => 'ديسمبر',
+ 'December' => 'ديسمبر',
+ 'Department' => 'قسم',
+ 'Description' => 'وصÙ',
+ 'Feb' => 'Ùبراير',
+ 'February' => 'Ùبراير',
+ 'From' => 'من',
+ 'Include in Report' => 'ارÙÙ‚ ÙÙŠ التقرير ------',
+ 'Jan' => 'يناير',
+ 'January' => 'يناير',
+ 'Jul' => 'يولية',
+ 'July' => 'يولية',
+ 'Jun' => 'يونية',
+ 'June' => 'يونية',
+ 'List Transactions' => 'قائمة الحركات',
+ 'Mar' => 'مارس',
+ 'March' => 'مارس',
+ 'May' => 'مايو',
+ 'May ' => 'مايو',
+ 'Nov' => 'نوÙمبر',
+ 'November' => 'نوÙمبر',
+ 'Oct' => 'اكتوبر',
+ 'October' => 'اكتوبر',
+ 'Project Number' => 'رقم المشروع',
+ 'Reference' => 'مرجع',
+ 'Sep' => 'سبتمبر',
+ 'September' => 'سبتمبر',
+ 'Subtotal' => 'اجمالى',
+ 'To' => 'إلى',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'قائمة_الحركات' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/eg_utf/cp b/locale/eg_utf/cp
new file mode 100755
index 00000000..08b9ac69
--- /dev/null
+++ b/locale/eg_utf/cp
@@ -0,0 +1,116 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP' => 'موردين',
+ 'AR' => 'عملاء',
+ 'Account' => 'حساب',
+ 'Accounting Menu' => 'قائمة الحسابات',
+ 'Address' => 'العنوان',
+ 'All' => 'الكل',
+ 'Amount' => 'الكمية',
+ 'Amount Due' => 'الرصيد ',
+ 'Bcc' => 'نسخة غير مرئية',
+ 'Cannot post Payment!' => 'لا يمكن تسجيل المدÙوعات',
+ 'Cannot post payment for a closed period!' => 'لا يمكن تسجيل المدÙوعات Ù„Ùترة مغلقة',
+ 'Cc' => 'نسخة اخرى',
+ 'Continue' => 'تابع',
+ 'Currency' => 'عملة',
+ 'Customer' => 'العميل',
+ 'Customer not on file!' => ' عميل غير موجود ÙÙŠ الملÙ',
+ 'Date' => 'التاريخ',
+ 'Date missing!' => 'التاريخ غير موجود',
+ 'Department' => 'قسم',
+ 'Deposit' => 'إيداع',
+ 'Description' => 'وصÙ',
+ 'Due Date' => 'تاريخ الاستحقاق',
+ 'E-mail' => 'بريد الكتروني',
+ 'Exchange Rate' => 'سعر الصرÙ',
+ 'Exchange rate missing!' => 'سعر الصر٠غير موجود',
+ 'From' => 'من',
+ 'Invoice' => 'Ùاتورة',
+ 'Invoices' => 'Ùواتير',
+ 'Language' => 'اللغة',
+ 'Memo' => 'ملاحظات',
+ 'Message' => 'رسالة',
+ 'Number' => 'الرقم',
+ 'Payment' => 'الدÙع النقدى',
+ 'Payment posted!' => 'تم ترحيل مدÙوعات',
+ 'Payments' => 'المدÙوعات',
+ 'Post' => 'تسجيل',
+ 'Print' => 'طباعة',
+ 'Project not on file!' => 'المشروع ليس ÙÙ‰ الملÙات',
+ 'Receipt' => 'الوارد',
+ 'Receipts' => 'الواردات',
+ 'Reference' => 'مرجع',
+ 'Screen' => 'الشاشة',
+ 'Select all' => 'اختر الكل',
+ 'Select from one of the names below' => 'اختر اسم من الاسماء',
+ 'Select from one of the projects below' => 'اختر مشروع من المشروعات التالية',
+ 'Source' => 'مصدر',
+ 'Startdate' => 'تاريخ يدء العمل',
+ 'Subject' => 'موضوع',
+ 'To' => 'إلى',
+ 'Update' => 'تعديل',
+ 'Vendor' => 'المورد',
+ 'Vendor not on file!' => 'مورد غير موجود ÙÙŠ الملÙ',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'تابع' => 'continue',
+ 'تسجيل' => 'post',
+ 'طباعة' => 'print',
+ 'اختر_الكل' => 'select_all',
+ 'تعديل' => 'update',
+};
+
+1;
+
diff --git a/locale/eg_utf/ct b/locale/eg_utf/ct
new file mode 100755
index 00000000..5f800be8
--- /dev/null
+++ b/locale/eg_utf/ct
@@ -0,0 +1,170 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Transaction' => 'حركة حساب مورد',
+ 'AP Transactions' => 'حركات حساب الموردين',
+ 'AR Transaction' => 'حركة حساب عميل',
+ 'AR Transactions' => 'حركات حساب العملاء',
+ 'Accounting Menu' => 'قائمة الحسابات',
+ 'Active' => 'Ùعال',
+ 'Add Customer' => 'اضاÙØ© عميل',
+ 'Add Vendor' => 'اضاÙØ© مورد',
+ 'Address' => 'العنوان',
+ 'All' => 'الكل',
+ 'Amount' => 'الكمية',
+ 'Bcc' => 'نسخة غير مرئية',
+ 'Billing Address' => 'عنوان ارسال الÙواتير',
+ 'Cannot delete customer!' => 'لا يمكن الغاء العميل',
+ 'Cannot delete vendor!' => 'لا يمكن الغاء المورد',
+ 'Cc' => 'نسخة اخرى',
+ 'City' => 'مدينة',
+ 'Closed' => 'مغلق',
+ 'Company Name' => 'اسم الشركة',
+ 'Contact' => 'شخص الاتصال',
+ 'Continue' => 'تابع',
+ 'Cost' => 'تكلÙØ©',
+ 'Country' => 'دولة',
+ 'Credit Limit' => 'حد الائتمان',
+ 'Curr' => 'عملة',
+ 'Currency' => 'عملة',
+ 'Customer History' => 'بيانات تاريخية للعميل',
+ 'Customer Number' => 'رقم العميل',
+ 'Customer deleted!' => 'الغي العميل',
+ 'Customer saved!' => 'خزن العميل',
+ 'Customers' => 'العملاء',
+ 'Delete' => 'الغاء',
+ 'Delivery Date' => 'تاريخ الوصول',
+ 'Description' => 'وصÙ',
+ 'Detail' => 'تÙصيلى',
+ 'Discount' => 'خصم',
+ 'E-mail' => 'بريد الكتروني',
+ 'Edit Customer' => 'تعديل بيانات العميل',
+ 'Edit Vendor' => 'تعديل مورد',
+ 'Employee' => 'الموظÙ',
+ 'Enddate' => 'تاريخ نهاية العمل',
+ 'Fax' => 'الÙاكس',
+ 'From' => 'من',
+ 'Group' => 'مجموعة',
+ 'ID' => 'البطاقة الشخصية',
+ 'Include in Report' => 'ارÙÙ‚ ÙÙŠ التقرير ------',
+ 'Invoice' => 'Ùاتورة',
+ 'Item not on file!' => 'الوحدة غير موجودة ÙÙŠ الملÙ',
+ 'Language' => 'اللغة',
+ 'Leadtime' => 'مدة التسليم',
+ 'Manager' => 'مدير',
+ 'Name' => 'الاسم',
+ 'Name missing!' => 'اسم غير موجود',
+ 'No.' => 'رقم',
+ 'Notes' => 'ملاحظات',
+ 'Number' => 'الرقم',
+ 'Open' => 'Ùتح',
+ 'Order' => 'امر',
+ 'POS' => 'نقطة بيع',
+ 'Phone' => 'تليÙون',
+ 'Pricegroup' => 'مجموعة سعرية',
+ 'Project Number' => 'رقم المشروع',
+ 'Purchase Order' => 'امر شراء',
+ 'Purchase Orders' => 'اوامر شراء',
+ 'Qty' => 'الكمية',
+ 'Quotation' => 'عروض اسعار للعملاء',
+ 'Quotations' => 'عروض اسعار',
+ 'Request for Quotations' => 'عروض اسعار مطلوبة',
+ 'SIC' => 'الاكواد الصناعية القياسية',
+ 'Sales Invoice' => 'Ùاتورة المبيعات',
+ 'Sales Invoices' => 'Ùواتير المبيعات',
+ 'Sales Order' => 'امر بيع',
+ 'Sales Orders' => 'اوامر بيع',
+ 'Salesperson' => 'مندوب مبيعات',
+ 'Save' => 'تخزين',
+ 'Save as new' => 'خزن كجديد',
+ 'Search' => 'بحث',
+ 'Sell Price' => 'سعر البيع',
+ 'Serial Number' => 'رقم مسلسل',
+ 'Shipping Address' => 'عنوان الشحن',
+ 'Startdate' => 'تاريخ يدء العمل',
+ 'State/Province' => 'محاÙظة',
+ 'Subtotal' => 'اجمالى',
+ 'Summary' => 'ملخص',
+ 'Tax' => 'ضريبة',
+ 'Tax Included' => 'الضريبة المضاÙØ©',
+ 'Tax Number' => 'رقم ضريبى',
+ 'Taxable' => 'خاضع للضريبة',
+ 'Terms' => 'شروط ',
+ 'To' => 'إلى',
+ 'Total' => 'مجموع',
+ 'Type of Business' => 'نوع العمل',
+ 'Unit' => 'وحدة',
+ 'Update' => 'تعديل',
+ 'Vendor History' => 'بيانات تاريخية عن مورد',
+ 'Vendor Invoice' => 'Ùاتورة المورد ',
+ 'Vendor Invoices' => 'Ùواتير الموردين',
+ 'Vendor Number' => 'رقم المورد',
+ 'Vendor deleted!' => 'الغي المورد',
+ 'Vendor saved!' => 'خزن المورد',
+ 'Vendors' => 'الموردين',
+ 'days' => 'ايام',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'حركة_حساب_مورد' => 'ap_transaction',
+ 'حركة_حساب_عميل' => 'ar_transaction',
+ 'اضاÙØ©_عميل' => 'add_customer',
+ 'اضاÙØ©_مورد' => 'add_vendor',
+ 'تابع' => 'continue',
+ 'الغاء' => 'delete',
+ 'نقطة_بيع' => 'pos',
+ 'امر_شراء' => 'purchase_order',
+ 'عروض_اسعار_للعملاء' => 'quotation',
+ 'Ùاتورة_المبيعات' => 'sales_invoice',
+ 'امر_بيع' => 'sales_order',
+ 'تخزين' => 'save',
+ 'خزن_كجديد' => 'save_as_new',
+ 'تعديل' => 'update',
+ 'Ùاتورة_المورد_' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/eg_utf/gl b/locale/eg_utf/gl
new file mode 100755
index 00000000..2b04b9a7
--- /dev/null
+++ b/locale/eg_utf/gl
@@ -0,0 +1,146 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Transaction' => 'حركة حساب مورد',
+ 'AR Transaction' => 'حركة حساب عميل',
+ 'Account' => 'حساب',
+ 'Accounting Menu' => 'قائمة الحسابات',
+ 'Add Cash Transfer Transaction' => 'اضاÙØ© حركة تحويل النقدية',
+ 'Add General Ledger Transaction' => 'اضاÙØ© حركة الأستاذ العام',
+ 'Address' => 'العنوان',
+ 'All' => 'الكل',
+ 'Amount' => 'الكمية',
+ 'Apr' => 'ابريل',
+ 'April' => 'ابريل',
+ 'Are you sure you want to delete Transaction' => 'هل انت متأكد انك تريد الغاء الحركة',
+ 'Asset' => 'أصول',
+ 'Aug' => 'اغسطس',
+ 'August' => 'اغسطس',
+ 'Balance' => 'رصيد',
+ 'Bcc' => 'نسخة غير مرئية',
+ 'Cannot delete transaction!' => 'لا يمكن الغاء الحركة',
+ 'Cannot post transaction for a closed period!' => 'لا يمكن تسجيل الحركة Ù„Ùترة مغلقة',
+ 'Cannot post transaction!' => 'لا يمكن تسجيل الحركة',
+ 'Cc' => 'نسخة اخرى',
+ 'Confirm!' => 'تاكيد',
+ 'Continue' => 'تابع',
+ 'Credit' => 'دائن',
+ 'Current' => 'الحالي',
+ 'Customer not on file!' => ' عميل غير موجود ÙÙŠ الملÙ',
+ 'Date' => 'التاريخ',
+ 'Debit' => 'مدين',
+ 'Dec' => 'ديسمبر',
+ 'December' => 'ديسمبر',
+ 'Delete' => 'الغاء',
+ 'Department' => 'قسم',
+ 'Description' => 'وصÙ',
+ 'E-mail' => 'بريد الكتروني',
+ 'Edit Cash Transfer Transaction' => 'تعديل حركة تحويل النقدية',
+ 'Edit General Ledger Transaction' => 'تعديل حركة الأستاذ العام',
+ 'Equity' => 'رأس المال',
+ 'Expense' => 'المصروÙات',
+ 'Feb' => 'Ùبراير',
+ 'February' => 'Ùبراير',
+ 'From' => 'من',
+ 'GL Transaction' => 'حركات الاستاذ العام',
+ 'General Ledger' => 'الاستاذ العام',
+ 'ID' => 'البطاقة الشخصية',
+ 'Include in Report' => 'ارÙÙ‚ ÙÙŠ التقرير ------',
+ 'Income' => 'الربح',
+ 'Jan' => 'يناير',
+ 'January' => 'يناير',
+ 'Jul' => 'يولية',
+ 'July' => 'يولية',
+ 'Jun' => 'يونية',
+ 'June' => 'يونية',
+ 'Liability' => 'التزامات',
+ 'Mar' => 'مارس',
+ 'March' => 'مارس',
+ 'May' => 'مايو',
+ 'May ' => 'مايو',
+ 'Memo' => 'ملاحظات',
+ 'Message' => 'رسالة',
+ 'Notes' => 'ملاحظات',
+ 'Nov' => 'نوÙمبر',
+ 'November' => 'نوÙمبر',
+ 'Number' => 'الرقم',
+ 'Oct' => 'اكتوبر',
+ 'October' => 'اكتوبر',
+ 'Post' => 'تسجيل',
+ 'Post as new' => 'سجل كجديد',
+ 'Print' => 'طباعة',
+ 'Project' => 'مشروع',
+ 'Project not on file!' => 'المشروع ليس ÙÙ‰ الملÙات',
+ 'Reference' => 'مرجع',
+ 'Reports' => 'تقارير',
+ 'Select from one of the names below' => 'اختر اسم من الاسماء',
+ 'Select from one of the projects below' => 'اختر مشروع من المشروعات التالية',
+ 'Sep' => 'سبتمبر',
+ 'September' => 'سبتمبر',
+ 'Source' => 'مصدر',
+ 'Startdate' => 'تاريخ يدء العمل',
+ 'Subject' => 'موضوع',
+ 'Subtotal' => 'اجمالى',
+ 'To' => 'إلى',
+ 'Transaction Date missing!' => 'تاريخ الحركة غير موجود',
+ 'Transaction deleted!' => 'الغيت الحركة',
+ 'Transaction posted!' => 'سجلت الحركة',
+ 'Update' => 'تعديل',
+ 'Vendor not on file!' => 'مورد غير موجود ÙÙŠ الملÙ',
+ 'Yes' => 'نعم',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'حركة_حساب_مورد' => 'ap_transaction',
+ 'حركة_حساب_عميل' => 'ar_transaction',
+ 'تابع' => 'continue',
+ 'الغاء' => 'delete',
+ 'حركات_الاستاذ_العام' => 'gl_transaction',
+ 'تسجيل' => 'post',
+ 'سجل_كجديد' => 'post_as_new',
+ 'تعديل' => 'update',
+ 'نعم' => 'yes',
+};
+
+1;
+
diff --git a/locale/eg_utf/hr b/locale/eg_utf/hr
new file mode 100755
index 00000000..e3dfe741
--- /dev/null
+++ b/locale/eg_utf/hr
@@ -0,0 +1,87 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP' => 'موردين',
+ 'Accounting Menu' => 'قائمة الحسابات',
+ 'Active' => 'Ùعال',
+ 'Add Employee' => 'اضاÙØ© موظÙ',
+ 'Address' => 'العنوان',
+ 'Administrator' => 'المدير',
+ 'All' => 'الكل',
+ 'Amount' => 'الكمية',
+ 'Amount missing!' => 'الكمية غير موجودة',
+ 'City' => 'مدينة',
+ 'Continue' => 'تابع',
+ 'Country' => 'دولة',
+ 'Delete' => 'الغاء',
+ 'Description' => 'وصÙ',
+ 'E-mail' => 'بريد الكتروني',
+ 'Employee' => 'الموظÙ',
+ 'Employee Name' => 'اسم الموظÙ',
+ 'Employees' => 'العاملين',
+ 'Enddate' => 'تاريخ نهاية العمل',
+ 'Expense' => 'المصروÙات',
+ 'From' => 'من',
+ 'Home Phone' => 'تلÙون المنزل',
+ 'ID' => 'البطاقة الشخصية',
+ 'Include in Report' => 'ارÙÙ‚ ÙÙŠ التقرير ------',
+ 'Login' => 'دخول',
+ 'Manager' => 'مدير',
+ 'Name' => 'الاسم',
+ 'Name missing!' => 'اسم غير موجود',
+ 'Notes' => 'ملاحظات',
+ 'Number' => 'الرقم',
+ 'Rate' => 'النسبة',
+ 'Role' => 'الوظيÙØ©',
+ 'Sales' => 'مبيعات',
+ 'Save' => 'تخزين',
+ 'Save as new' => 'خزن كجديد',
+ 'Startdate' => 'تاريخ يدء العمل',
+ 'State/Province' => 'محاÙظة',
+ 'To' => 'إلى',
+ 'Update' => 'تعديل',
+ 'User' => 'مستخدم',
+ 'Work Phone' => 'تلÙون العمل',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'اضاÙØ©_موظÙ' => 'add_employee',
+ 'تابع' => 'continue',
+ 'الغاء' => 'delete',
+ 'تخزين' => 'save',
+ 'خزن_كجديد' => 'save_as_new',
+ 'تعديل' => 'update',
+};
+
+1;
+
diff --git a/locale/eg_utf/ic b/locale/eg_utf/ic
new file mode 100755
index 00000000..07da39a2
--- /dev/null
+++ b/locale/eg_utf/ic
@@ -0,0 +1,240 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => 'قائمة الحسابات',
+ 'Accounts' => 'حسابات',
+ 'Accrual' => 'المجمعة',
+ 'Active' => 'Ùعال',
+ 'Add' => 'اضاÙØ©',
+ 'Add Assembly' => 'اضاÙØ© تجميع',
+ 'Add Labor/Overhead' => 'اضاÙØ© تكلÙØ© عمالة',
+ 'Add Part' => 'اضاÙØ© جزء',
+ 'Add Purchase Order' => 'اضاÙØ© طلب شراء',
+ 'Add Quotation' => 'اضاÙØ© عرض سعر ',
+ 'Add Request for Quotation' => 'اضاÙØ© عرض سعر مورد',
+ 'Add Sales Order' => 'اضاÙØ© طلب بيع',
+ 'Add Service' => 'اضاÙØ© خدمة',
+ 'Address' => 'العنوان',
+ 'Apr' => 'ابريل',
+ 'April' => 'ابريل',
+ 'Assemblies' => 'مجمعات',
+ 'Attachment' => 'مرÙقات',
+ 'Aug' => 'اغسطس',
+ 'August' => 'اغسطس',
+ 'Bcc' => 'نسخة غير مرئية',
+ 'Billing Address' => 'عنوان ارسال الÙواتير',
+ 'COGS' => 'تكلÙØ© البضاعة المباعة',
+ 'Cannot delete item!' => 'لا يمكن الغاء الوحدة',
+ 'Cash' => 'النقدية',
+ 'Cc' => 'نسخة اخرى',
+ 'Check Inventory' => 'مراجعة مخزون',
+ 'City' => 'مدينة',
+ 'Closed' => 'مغلق',
+ 'Company Name' => 'اسم الشركة',
+ 'Components' => 'مكونات',
+ 'Contact' => 'شخص الاتصال',
+ 'Continue' => 'تابع',
+ 'Copies' => 'نسخ',
+ 'Cost' => 'تكلÙØ©',
+ 'Country' => 'دولة',
+ 'Curr' => 'عملة',
+ 'Currency' => 'عملة',
+ 'Customer' => 'العميل',
+ 'Customer Number' => 'رقم العميل',
+ 'Customer not on file!' => ' عميل غير موجود ÙÙŠ الملÙ',
+ 'Date' => 'التاريخ',
+ 'Dec' => 'ديسمبر',
+ 'December' => 'ديسمبر',
+ 'Delete' => 'الغاء',
+ 'Delivery Date' => 'تاريخ الوصول',
+ 'Description' => 'وصÙ',
+ 'Detail' => 'تÙصيلى',
+ 'Drawing' => 'رسم',
+ 'E-mail' => 'بريد الكتروني',
+ 'E-mail address missing!' => 'عنوان البريد الالكتروني غير موجود',
+ 'Edit Part' => 'تعديل جزء',
+ 'Edit Service' => 'تعديل خدمة',
+ 'Employee' => 'الموظÙ',
+ 'Expense' => 'المصروÙات',
+ 'Extended' => 'اجمالى',
+ 'Fax' => 'الÙاكس',
+ 'Feb' => 'Ùبراير',
+ 'February' => 'Ùبراير',
+ 'From' => 'من',
+ 'Group' => 'مجموعة',
+ 'Image' => 'صورة',
+ 'In-line' => 'ÙÙŠ الصÙ',
+ 'Include in Report' => 'ارÙÙ‚ ÙÙŠ التقرير ------',
+ 'Income' => 'الربح',
+ 'Individual Items' => 'وحدات Ùردية',
+ 'Inventory' => 'مخزون',
+ 'Invoice' => 'Ùاتورة',
+ 'Invoice Date missing!' => 'تاريخ الÙاتورة غير موجود',
+ 'Invoice Number' => 'رقم الÙاتورة',
+ 'Invoice Number missing!' => 'رقم الÙاتورة غير موجود',
+ 'Item deleted!' => 'الغيت الوحدة',
+ 'Item not on file!' => 'الوحدة غير موجودة ÙÙŠ الملÙ',
+ 'Jan' => 'يناير',
+ 'January' => 'يناير',
+ 'Jul' => 'يولية',
+ 'July' => 'يولية',
+ 'Jun' => 'يونية',
+ 'June' => 'يونية',
+ 'Labor/Overhead' => 'تكلÙØ© عمالة',
+ 'Leadtime' => 'مدة التسليم',
+ 'Line Total' => 'اجمالى السطر',
+ 'Link Accounts' => 'ربط الحسابات',
+ 'List Price' => 'قائمة الاسعار',
+ 'Make' => 'اÙعل',
+ 'Mar' => 'مارس',
+ 'March' => 'مارس',
+ 'Markup' => 'نسبة الربح',
+ 'May' => 'مايو',
+ 'May ' => 'مايو',
+ 'Message' => 'رسالة',
+ 'Model' => 'موديل',
+ 'Name' => 'الاسم',
+ 'No.' => 'رقم',
+ 'Notes' => 'ملاحظات',
+ 'Nov' => 'نوÙمبر',
+ 'November' => 'نوÙمبر',
+ 'Number' => 'الرقم',
+ 'Number missing in Row' => 'رقم غير موجود ÙÙŠ الصÙ',
+ 'Oct' => 'اكتوبر',
+ 'October' => 'اكتوبر',
+ 'On Hand' => 'بالمخزن',
+ 'Open' => 'Ùتح',
+ 'Order' => 'امر',
+ 'Order Date missing!' => 'تاريخ الامر غير موجود',
+ 'Order Number' => 'رقم الامر',
+ 'Order Number missing!' => 'رقم الامر غير موجود',
+ 'Packing List' => 'قائمة تعبئة',
+ 'Packing List Date missing!' => 'تاريخ بوليصة الشحن غير موجود',
+ 'Packing List Number missing!' => 'رقم بوليصة الشحن غير موجود',
+ 'Part' => 'جزء',
+ 'Parts' => 'الاجزاء',
+ 'Phone' => 'تليÙون',
+ 'Price' => 'سعر',
+ 'Pricegroup' => 'مجموعة سعرية',
+ 'Project' => 'مشروع',
+ 'Purchase Order' => 'امر شراء',
+ 'Purchase Orders' => 'اوامر شراء',
+ 'Qty' => 'الكمية',
+ 'Quotation' => 'عروض اسعار للعملاء',
+ 'Quotations' => 'عروض اسعار',
+ 'Required by' => 'مطلوب من قبل',
+ 'Sales Invoice' => 'Ùاتورة المبيعات',
+ 'Sales Invoices' => 'Ùواتير المبيعات',
+ 'Sales Order' => 'امر بيع',
+ 'Sales Orders' => 'اوامر بيع',
+ 'Save' => 'تخزين',
+ 'Save as new' => 'خزن كجديد',
+ 'Screen' => 'الشاشة',
+ 'Select from one of the names below' => 'اختر اسم من الاسماء',
+ 'Sell Price' => 'سعر البيع',
+ 'Sep' => 'سبتمبر',
+ 'September' => 'سبتمبر',
+ 'Serial Number' => 'رقم مسلسل',
+ 'Service' => 'خدمة',
+ 'Services' => 'خدمات',
+ 'Ship' => 'شحن صادر',
+ 'Ship to' => 'شحن الى',
+ 'Shipping Address' => 'عنوان الشحن',
+ 'Short' => 'قصير',
+ 'State/Province' => 'محاÙظة',
+ 'Stock' => 'مخزون',
+ 'Stock Assembly' => 'تجميع مخزون',
+ 'Subject' => 'موضوع',
+ 'Subtotal' => 'اجمالى',
+ 'Summary' => 'ملخص',
+ 'Tax' => 'ضريبة',
+ 'To' => 'إلى',
+ 'Top Level' => 'المستوى الاعلى',
+ 'Unit' => 'وحدة',
+ 'Update' => 'تعديل',
+ 'Updated' => 'معدل',
+ 'Vendor' => 'المورد',
+ 'Vendor Invoice' => 'Ùاتورة المورد ',
+ 'Vendor Invoices' => 'Ùواتير الموردين',
+ 'Vendor Number' => 'رقم المورد',
+ 'Vendor not on file!' => 'مورد غير موجود ÙÙŠ الملÙ',
+ 'Weight' => 'وزن',
+ 'What type of item is this?' => 'ما نوع هذة الوحدة؟',
+ 'Work Order' => 'امر شغل',
+ 'days' => 'ايام',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'اضاÙØ©_تجميع' => 'add_assembly',
+ 'اضاÙØ©_تكلÙØ©_عمالة' => 'add_labor_overhead',
+ 'اضاÙØ©_جزء' => 'add_part',
+ 'اضاÙØ©_خدمة' => 'add_service',
+ 'تابع' => 'continue',
+ 'الغاء' => 'delete',
+ 'تعديل_جزء' => 'edit_part',
+ 'تعديل_خدمة' => 'edit_service',
+ 'تخزين' => 'save',
+ 'خزن_كجديد' => 'save_as_new',
+ 'تعديل' => 'update',
+};
+
+1;
+
diff --git a/locale/eg_utf/io b/locale/eg_utf/io
new file mode 100755
index 00000000..a542c76f
--- /dev/null
+++ b/locale/eg_utf/io
@@ -0,0 +1,116 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Add Purchase Order' => 'اضاÙØ© طلب شراء',
+ 'Add Quotation' => 'اضاÙØ© عرض سعر ',
+ 'Add Request for Quotation' => 'اضاÙØ© عرض سعر مورد',
+ 'Add Sales Order' => 'اضاÙØ© طلب بيع',
+ 'Address' => 'العنوان',
+ 'Apr' => 'ابريل',
+ 'April' => 'ابريل',
+ 'Attachment' => 'مرÙقات',
+ 'Aug' => 'اغسطس',
+ 'August' => 'اغسطس',
+ 'Bcc' => 'نسخة غير مرئية',
+ 'Billing Address' => 'عنوان ارسال الÙواتير',
+ 'Cc' => 'نسخة اخرى',
+ 'City' => 'مدينة',
+ 'Company Name' => 'اسم الشركة',
+ 'Contact' => 'شخص الاتصال',
+ 'Continue' => 'تابع',
+ 'Copies' => 'نسخ',
+ 'Country' => 'دولة',
+ 'Customer Number' => 'رقم العميل',
+ 'Date' => 'التاريخ',
+ 'Dec' => 'ديسمبر',
+ 'December' => 'ديسمبر',
+ 'Delivery Date' => 'تاريخ الوصول',
+ 'Description' => 'وصÙ',
+ 'E-mail' => 'بريد الكتروني',
+ 'E-mail address missing!' => 'عنوان البريد الالكتروني غير موجود',
+ 'Extended' => 'اجمالى',
+ 'Fax' => 'الÙاكس',
+ 'Feb' => 'Ùبراير',
+ 'February' => 'Ùبراير',
+ 'Group' => 'مجموعة',
+ 'In-line' => 'ÙÙŠ الصÙ',
+ 'Invoice' => 'Ùاتورة',
+ 'Invoice Date missing!' => 'تاريخ الÙاتورة غير موجود',
+ 'Invoice Number missing!' => 'رقم الÙاتورة غير موجود',
+ 'Item not on file!' => 'الوحدة غير موجودة ÙÙŠ الملÙ',
+ 'Jan' => 'يناير',
+ 'January' => 'يناير',
+ 'Jul' => 'يولية',
+ 'July' => 'يولية',
+ 'Jun' => 'يونية',
+ 'June' => 'يونية',
+ 'Mar' => 'مارس',
+ 'March' => 'مارس',
+ 'May' => 'مايو',
+ 'May ' => 'مايو',
+ 'Message' => 'رسالة',
+ 'Nov' => 'نوÙمبر',
+ 'November' => 'نوÙمبر',
+ 'Number' => 'الرقم',
+ 'Number missing in Row' => 'رقم غير موجود ÙÙŠ الصÙ',
+ 'Oct' => 'اكتوبر',
+ 'October' => 'اكتوبر',
+ 'Order Date missing!' => 'تاريخ الامر غير موجود',
+ 'Order Number missing!' => 'رقم الامر غير موجود',
+ 'Packing List' => 'قائمة تعبئة',
+ 'Packing List Date missing!' => 'تاريخ بوليصة الشحن غير موجود',
+ 'Packing List Number missing!' => 'رقم بوليصة الشحن غير موجود',
+ 'Part' => 'جزء',
+ 'Phone' => 'تليÙون',
+ 'Price' => 'سعر',
+ 'Project' => 'مشروع',
+ 'Purchase Order' => 'امر شراء',
+ 'Qty' => 'الكمية',
+ 'Quotation' => 'عروض اسعار للعملاء',
+ 'Required by' => 'مطلوب من قبل',
+ 'Sales Order' => 'امر بيع',
+ 'Screen' => 'الشاشة',
+ 'Sep' => 'سبتمبر',
+ 'September' => 'سبتمبر',
+ 'Service' => 'خدمة',
+ 'Ship' => 'شحن صادر',
+ 'Ship to' => 'شحن الى',
+ 'Shipping Address' => 'عنوان الشحن',
+ 'State/Province' => 'محاÙظة',
+ 'Subject' => 'موضوع',
+ 'Subtotal' => 'اجمالى',
+ 'To' => 'إلى',
+ 'Unit' => 'وحدة',
+ 'Vendor Number' => 'رقم المورد',
+ 'What type of item is this?' => 'ما نوع هذة الوحدة؟',
+ 'Work Order' => 'امر شغل',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'تابع' => 'continue',
+};
+
+1;
+
diff --git a/locale/eg_utf/ir b/locale/eg_utf/ir
new file mode 100755
index 00000000..4f74bf46
--- /dev/null
+++ b/locale/eg_utf/ir
@@ -0,0 +1,207 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'حساب',
+ 'Accounting Menu' => 'قائمة الحسابات',
+ 'Add Purchase Order' => 'اضاÙØ© طلب شراء',
+ 'Add Quotation' => 'اضاÙØ© عرض سعر ',
+ 'Add Request for Quotation' => 'اضاÙØ© عرض سعر مورد',
+ 'Add Sales Order' => 'اضاÙØ© طلب بيع',
+ 'Add Vendor Invoice' => 'اضاÙØ© Ùاتورة المورد',
+ 'Address' => 'العنوان',
+ 'Amount' => 'الكمية',
+ 'Apr' => 'ابريل',
+ 'April' => 'ابريل',
+ 'Are you sure you want to delete Invoice Number' => 'هل انت متأكد انك تريد الغاء رقم الÙاتروة ',
+ 'Attachment' => 'مرÙقات',
+ 'Aug' => 'اغسطس',
+ 'August' => 'اغسطس',
+ 'Bcc' => 'نسخة غير مرئية',
+ 'Billing Address' => 'عنوان ارسال الÙواتير',
+ 'Cannot delete invoice!' => 'لا يمكن الغاء الÙاتورة',
+ 'Cannot post invoice!' => 'لا يمكن تسجيل الÙاتورة',
+ 'Cannot post payment for a closed period!' => 'لا يمكن تسجيل المدÙوعات Ù„Ùترة مغلقة',
+ 'Cc' => 'نسخة اخرى',
+ 'City' => 'مدينة',
+ 'Company Name' => 'اسم الشركة',
+ 'Confirm!' => 'تاكيد',
+ 'Contact' => 'شخص الاتصال',
+ 'Continue' => 'تابع',
+ 'Copies' => 'نسخ',
+ 'Country' => 'دولة',
+ 'Credit Limit' => 'حد الائتمان',
+ 'Currency' => 'عملة',
+ 'Customer Number' => 'رقم العميل',
+ 'Customer not on file!' => ' عميل غير موجود ÙÙŠ الملÙ',
+ 'Date' => 'التاريخ',
+ 'Dec' => 'ديسمبر',
+ 'December' => 'ديسمبر',
+ 'Delete' => 'الغاء',
+ 'Delivery Date' => 'تاريخ الوصول',
+ 'Department' => 'قسم',
+ 'Description' => 'وصÙ',
+ 'Due Date' => 'تاريخ الاستحقاق',
+ 'E-mail' => 'بريد الكتروني',
+ 'E-mail address missing!' => 'عنوان البريد الالكتروني غير موجود',
+ 'Edit Vendor Invoice' => 'تعديل Ùاتورة مورد',
+ 'Exch' => 'سعر الصرÙ',
+ 'Exchange Rate' => 'سعر الصرÙ',
+ 'Exchange rate for payment missing!' => 'سعر الصر٠للمدÙوعات غير موجود',
+ 'Exchange rate missing!' => 'سعر الصر٠غير موجود',
+ 'Extended' => 'اجمالى',
+ 'Fax' => 'الÙاكس',
+ 'Feb' => 'Ùبراير',
+ 'February' => 'Ùبراير',
+ 'Group' => 'مجموعة',
+ 'In-line' => 'ÙÙŠ الصÙ',
+ 'Internal Notes' => 'ملاحظات داخلية',
+ 'Invoice' => 'Ùاتورة',
+ 'Invoice Date' => 'تاريخ الÙاتورة',
+ 'Invoice Date missing!' => 'تاريخ الÙاتورة غير موجود',
+ 'Invoice Number' => 'رقم الÙاتورة',
+ 'Invoice Number missing!' => 'رقم الÙاتورة غير موجود',
+ 'Invoice deleted!' => 'الغيت القاتورة',
+ 'Item not on file!' => 'الوحدة غير موجودة ÙÙŠ الملÙ',
+ 'Jan' => 'يناير',
+ 'January' => 'يناير',
+ 'Jul' => 'يولية',
+ 'July' => 'يولية',
+ 'Jun' => 'يونية',
+ 'June' => 'يونية',
+ 'Language' => 'اللغة',
+ 'Mar' => 'مارس',
+ 'March' => 'مارس',
+ 'May' => 'مايو',
+ 'May ' => 'مايو',
+ 'Memo' => 'ملاحظات',
+ 'Message' => 'رسالة',
+ 'Notes' => 'ملاحظات',
+ 'Nov' => 'نوÙمبر',
+ 'November' => 'نوÙمبر',
+ 'Number' => 'الرقم',
+ 'Number missing in Row' => 'رقم غير موجود ÙÙŠ الصÙ',
+ 'Oct' => 'اكتوبر',
+ 'October' => 'اكتوبر',
+ 'Order Date missing!' => 'تاريخ الامر غير موجود',
+ 'Order Number' => 'رقم الامر',
+ 'Order Number missing!' => 'رقم الامر غير موجود',
+ 'Packing List' => 'قائمة تعبئة',
+ 'Packing List Date missing!' => 'تاريخ بوليصة الشحن غير موجود',
+ 'Packing List Number missing!' => 'رقم بوليصة الشحن غير موجود',
+ 'Part' => 'جزء',
+ 'Payment date missing!' => 'تاريخ الدÙع غير موجود',
+ 'Payments' => 'المدÙوعات',
+ 'Phone' => 'تليÙون',
+ 'Post' => 'تسجيل',
+ 'Post as new' => 'سجل كجديد',
+ 'Price' => 'سعر',
+ 'Print' => 'طباعة',
+ 'Project' => 'مشروع',
+ 'Project not on file!' => 'المشروع ليس ÙÙ‰ الملÙات',
+ 'Purchase Order' => 'امر شراء',
+ 'Qty' => 'الكمية',
+ 'Quotation' => 'عروض اسعار للعملاء',
+ 'Record in' => 'ÙÙŠ السجل',
+ 'Reference' => 'مرجع',
+ 'Remaining' => 'متبقى',
+ 'Required by' => 'مطلوب من قبل',
+ 'Sales Order' => 'امر بيع',
+ 'Screen' => 'الشاشة',
+ 'Select from one of the names below' => 'اختر اسم من الاسماء',
+ 'Select from one of the projects below' => 'اختر مشروع من المشروعات التالية',
+ 'Sep' => 'سبتمبر',
+ 'September' => 'سبتمبر',
+ 'Service' => 'خدمة',
+ 'Ship' => 'شحن صادر',
+ 'Ship to' => 'شحن الى',
+ 'Shipping Address' => 'عنوان الشحن',
+ 'Source' => 'مصدر',
+ 'Startdate' => 'تاريخ يدء العمل',
+ 'State/Province' => 'محاÙظة',
+ 'Subject' => 'موضوع',
+ 'Subtotal' => 'اجمالى',
+ 'Tax Included' => 'الضريبة المضاÙØ©',
+ 'To' => 'إلى',
+ 'Total' => 'مجموع',
+ 'Unit' => 'وحدة',
+ 'Update' => 'تعديل',
+ 'Vendor' => 'المورد',
+ 'Vendor Number' => 'رقم المورد',
+ 'Vendor missing!' => 'مورد غير موجود',
+ 'Vendor not on file!' => 'مورد غير موجود ÙÙŠ الملÙ',
+ 'What type of item is this?' => 'ما نوع هذة الوحدة؟',
+ 'Work Order' => 'امر شغل',
+ 'Yes' => 'نعم',
+ 'ea' => 'قطعة',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'تابع' => 'continue',
+ 'الغاء' => 'delete',
+ 'تسجيل' => 'post',
+ 'سجل_كجديد' => 'post_as_new',
+ 'امر_شراء' => 'purchase_order',
+ 'تعديل' => 'update',
+ 'نعم' => 'yes',
+};
+
+1;
+
diff --git a/locale/eg_utf/is b/locale/eg_utf/is
new file mode 100755
index 00000000..da3a6922
--- /dev/null
+++ b/locale/eg_utf/is
@@ -0,0 +1,213 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'حساب',
+ 'Accounting Menu' => 'قائمة الحسابات',
+ 'Add Purchase Order' => 'اضاÙØ© طلب شراء',
+ 'Add Quotation' => 'اضاÙØ© عرض سعر ',
+ 'Add Request for Quotation' => 'اضاÙØ© عرض سعر مورد',
+ 'Add Sales Invoice' => 'اضاÙØ© Ùاتورة بيع',
+ 'Add Sales Order' => 'اضاÙØ© طلب بيع',
+ 'Address' => 'العنوان',
+ 'Amount' => 'الكمية',
+ 'Apr' => 'ابريل',
+ 'April' => 'ابريل',
+ 'Are you sure you want to delete Invoice Number' => 'هل انت متأكد انك تريد الغاء رقم الÙاتروة ',
+ 'Attachment' => 'مرÙقات',
+ 'Aug' => 'اغسطس',
+ 'August' => 'اغسطس',
+ 'Bcc' => 'نسخة غير مرئية',
+ 'Billing Address' => 'عنوان ارسال الÙواتير',
+ 'Cannot delete invoice!' => 'لا يمكن الغاء الÙاتورة',
+ 'Cannot post invoice!' => 'لا يمكن تسجيل الÙاتورة',
+ 'Cannot post payment for a closed period!' => 'لا يمكن تسجيل المدÙوعات Ù„Ùترة مغلقة',
+ 'Cc' => 'نسخة اخرى',
+ 'City' => 'مدينة',
+ 'Company Name' => 'اسم الشركة',
+ 'Confirm!' => 'تاكيد',
+ 'Contact' => 'شخص الاتصال',
+ 'Continue' => 'تابع',
+ 'Copies' => 'نسخ',
+ 'Country' => 'دولة',
+ 'Credit Limit' => 'حد الائتمان',
+ 'Currency' => 'عملة',
+ 'Customer' => 'العميل',
+ 'Customer Number' => 'رقم العميل',
+ 'Customer missing!' => 'عميل غير موجود',
+ 'Customer not on file!' => ' عميل غير موجود ÙÙŠ الملÙ',
+ 'Date' => 'التاريخ',
+ 'Dec' => 'ديسمبر',
+ 'December' => 'ديسمبر',
+ 'Delete' => 'الغاء',
+ 'Delivery Date' => 'تاريخ الوصول',
+ 'Department' => 'قسم',
+ 'Description' => 'وصÙ',
+ 'Due Date' => 'تاريخ الاستحقاق',
+ 'E-mail' => 'بريد الكتروني',
+ 'E-mail address missing!' => 'عنوان البريد الالكتروني غير موجود',
+ 'Edit Sales Invoice' => 'تعديل Ùاتورة مبيعات',
+ 'Exch' => 'سعر الصرÙ',
+ 'Exchange Rate' => 'سعر الصرÙ',
+ 'Exchange rate for payment missing!' => 'سعر الصر٠للمدÙوعات غير موجود',
+ 'Exchange rate missing!' => 'سعر الصر٠غير موجود',
+ 'Extended' => 'اجمالى',
+ 'Fax' => 'الÙاكس',
+ 'Feb' => 'Ùبراير',
+ 'February' => 'Ùبراير',
+ 'Group' => 'مجموعة',
+ 'In-line' => 'ÙÙŠ الصÙ',
+ 'Internal Notes' => 'ملاحظات داخلية',
+ 'Invoice' => 'Ùاتورة',
+ 'Invoice Date' => 'تاريخ الÙاتورة',
+ 'Invoice Date missing!' => 'تاريخ الÙاتورة غير موجود',
+ 'Invoice Number' => 'رقم الÙاتورة',
+ 'Invoice Number missing!' => 'رقم الÙاتورة غير موجود',
+ 'Invoice deleted!' => 'الغيت القاتورة',
+ 'Item not on file!' => 'الوحدة غير موجودة ÙÙŠ الملÙ',
+ 'Jan' => 'يناير',
+ 'January' => 'يناير',
+ 'Jul' => 'يولية',
+ 'July' => 'يولية',
+ 'Jun' => 'يونية',
+ 'June' => 'يونية',
+ 'Mar' => 'مارس',
+ 'March' => 'مارس',
+ 'May' => 'مايو',
+ 'May ' => 'مايو',
+ 'Memo' => 'ملاحظات',
+ 'Message' => 'رسالة',
+ 'Notes' => 'ملاحظات',
+ 'Nov' => 'نوÙمبر',
+ 'November' => 'نوÙمبر',
+ 'Number' => 'الرقم',
+ 'Number missing in Row' => 'رقم غير موجود ÙÙŠ الصÙ',
+ 'Oct' => 'اكتوبر',
+ 'October' => 'اكتوبر',
+ 'Order Date missing!' => 'تاريخ الامر غير موجود',
+ 'Order Number' => 'رقم الامر',
+ 'Order Number missing!' => 'رقم الامر غير موجود',
+ 'Packing List' => 'قائمة تعبئة',
+ 'Packing List Date missing!' => 'تاريخ بوليصة الشحن غير موجود',
+ 'Packing List Number missing!' => 'رقم بوليصة الشحن غير موجود',
+ 'Part' => 'جزء',
+ 'Payment date missing!' => 'تاريخ الدÙع غير موجود',
+ 'Payments' => 'المدÙوعات',
+ 'Phone' => 'تليÙون',
+ 'Post' => 'تسجيل',
+ 'Post as new' => 'سجل كجديد',
+ 'Price' => 'سعر',
+ 'Print' => 'طباعة',
+ 'Project' => 'مشروع',
+ 'Project not on file!' => 'المشروع ليس ÙÙ‰ الملÙات',
+ 'Purchase Order' => 'امر شراء',
+ 'Qty' => 'الكمية',
+ 'Quotation' => 'عروض اسعار للعملاء',
+ 'Record in' => 'ÙÙŠ السجل',
+ 'Reference' => 'مرجع',
+ 'Remaining' => 'متبقى',
+ 'Required by' => 'مطلوب من قبل',
+ 'Sales Order' => 'امر بيع',
+ 'Salesperson' => 'مندوب مبيعات',
+ 'Screen' => 'الشاشة',
+ 'Select from one of the names below' => 'اختر اسم من الاسماء',
+ 'Select from one of the projects below' => 'اختر مشروع من المشروعات التالية',
+ 'Sep' => 'سبتمبر',
+ 'September' => 'سبتمبر',
+ 'Service' => 'خدمة',
+ 'Ship' => 'شحن صادر',
+ 'Ship to' => 'شحن الى',
+ 'Ship via' => 'شحن من خلال',
+ 'Shipping Address' => 'عنوان الشحن',
+ 'Shipping Point' => 'نقطة الشحن',
+ 'Source' => 'مصدر',
+ 'Startdate' => 'تاريخ يدء العمل',
+ 'State/Province' => 'محاÙظة',
+ 'Subject' => 'موضوع',
+ 'Subtotal' => 'اجمالى',
+ 'Tax Included' => 'الضريبة المضاÙØ©',
+ 'To' => 'إلى',
+ 'Total' => 'مجموع',
+ 'Unit' => 'وحدة',
+ 'Update' => 'تعديل',
+ 'Vendor Number' => 'رقم المورد',
+ 'Vendor not on file!' => 'مورد غير موجود ÙÙŠ الملÙ',
+ 'What type of item is this?' => 'ما نوع هذة الوحدة؟',
+ 'Work Order' => 'امر شغل',
+ 'Yes' => 'نعم',
+ 'ea' => 'قطعة',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'تابع' => 'continue',
+ 'الغاء' => 'delete',
+ 'بريد_الكتروني' => 'e_mail',
+ 'تسجيل' => 'post',
+ 'سجل_كجديد' => 'post_as_new',
+ 'طباعة' => 'print',
+ 'امر_بيع' => 'sales_order',
+ 'شحن_الى' => 'ship_to',
+ 'تعديل' => 'update',
+ 'نعم' => 'yes',
+};
+
+1;
+
diff --git a/locale/eg_utf/jc b/locale/eg_utf/jc
new file mode 100755
index 00000000..6530520d
--- /dev/null
+++ b/locale/eg_utf/jc
@@ -0,0 +1,83 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => 'قائمة الحسابات',
+ 'Amount' => 'الكمية',
+ 'Closed' => 'مغلق',
+ 'Confirm!' => 'تاكيد',
+ 'Continue' => 'تابع',
+ 'Cost' => 'تكلÙØ©',
+ 'Current' => 'الحالي',
+ 'Date' => 'التاريخ',
+ 'Date missing!' => 'التاريخ غير موجود',
+ 'Delete' => 'الغاء',
+ 'Description' => 'وصÙ',
+ 'Employee' => 'الموظÙ',
+ 'From' => 'من',
+ 'ID' => 'البطاقة الشخصية',
+ 'Include in Report' => 'ارÙÙ‚ ÙÙŠ التقرير ------',
+ 'Notes' => 'ملاحظات',
+ 'Open' => 'Ùتح',
+ 'Print' => 'طباعة',
+ 'Project Number' => 'رقم المشروع',
+ 'Project Number missing!' => 'رقم المشروع غير موجود',
+ 'Qty' => 'الكمية',
+ 'Save' => 'تخزين',
+ 'Save as new' => 'خزن كجديد',
+ 'Screen' => 'الشاشة',
+ 'Startdate' => 'تاريخ يدء العمل',
+ 'Subtotal' => 'اجمالى',
+ 'To' => 'إلى',
+ 'Total' => 'مجموع',
+ 'Update' => 'تعديل',
+ 'Yes' => 'نعم',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'تابع' => 'continue',
+ 'الغاء' => 'delete',
+ 'طباعة' => 'print',
+ 'تخزين' => 'save',
+ 'خزن_كجديد' => 'save_as_new',
+ 'تعديل' => 'update',
+ 'نعم' => 'yes',
+};
+
+1;
+
diff --git a/locale/eg_utf/locales.pl b/locale/eg_utf/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/eg_utf/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/eg_utf/login b/locale/eg_utf/login
new file mode 100755
index 00000000..1c469cbf
--- /dev/null
+++ b/locale/eg_utf/login
@@ -0,0 +1,24 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Company' => 'شركة',
+ 'Continue' => 'تابع',
+ 'Incorrect Dataset version!' => 'نسخة غير صحيحة من مجموعة البيانات',
+ 'Login' => 'دخول',
+ 'Name' => 'الاسم',
+ 'Password' => 'كلمة السر',
+ 'Version' => 'نسخة',
+ 'You did not enter a name!' => 'لم يتم ادخال الاسم',
+ 'done' => 'Ù†ÙØ°',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ 'دخول' => 'login',
+};
+
+1;
+
diff --git a/locale/eg_utf/menu b/locale/eg_utf/menu
new file mode 100755
index 00000000..41cca697
--- /dev/null
+++ b/locale/eg_utf/menu
@@ -0,0 +1,121 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP' => 'موردين',
+ 'AP Aging' => 'كش٠حساب موردين',
+ 'AP Transaction' => 'حركة حساب مورد',
+ 'AR' => 'عملاء',
+ 'AR Aging' => 'كشوÙات حسابات العملاء',
+ 'AR Transaction' => 'حركة حساب عميل',
+ 'Accounting Menu' => 'قائمة الحسابات',
+ 'Add Account' => 'اضاÙØ© حساب',
+ 'Add Assembly' => 'اضاÙØ© تجميع',
+ 'Add Business' => 'اضاÙØ© نوع عمل',
+ 'Add Customer' => 'اضاÙØ© عميل',
+ 'Add Department' => 'اضاÙØ© قسم',
+ 'Add Employee' => 'اضاÙØ© موظÙ',
+ 'Add Group' => 'اضاÙØ© مجموعة',
+ 'Add Labor/Overhead' => 'اضاÙØ© تكلÙØ© عمالة',
+ 'Add Language' => 'اضاÙØ© لغة',
+ 'Add Part' => 'اضاÙØ© جزء',
+ 'Add Project' => 'اضاÙØ© مشروع',
+ 'Add SIC' => 'اضاÙØ© كود صناعى قياسى',
+ 'Add Service' => 'اضاÙØ© خدمة',
+ 'Add Transaction' => 'اضاÙØ© حركة',
+ 'Add Vendor' => 'اضاÙØ© مورد',
+ 'Add Warehouse' => 'اضاÙØ© مخزن',
+ 'All Items' => 'الكل',
+ 'Assemblies' => 'مجمعات',
+ 'Audit Control' => 'التحكم ÙÙŠ المراجعة',
+ 'Backup' => 'نسخة احتياطية ',
+ 'Balance Sheet' => 'الميزانية',
+ 'Cash' => 'النقدية',
+ 'Chart of Accounts' => 'قائمة الحسابات',
+ 'Check' => 'شيك',
+ 'Components' => 'مكونات',
+ 'Customers' => 'العملاء',
+ 'Defaults' => 'معطيات النظام',
+ 'Departments' => 'اقسام',
+ 'Description' => 'وصÙ',
+ 'Employees' => 'العاملين',
+ 'General Ledger' => 'الاستاذ العام',
+ 'Goods & Services' => 'البضاعة و الخدمات',
+ 'Groups' => 'مجموعات',
+ 'HR' => 'موارد بشرية',
+ 'History' => 'تاريخى',
+ 'Income Statement' => 'قائمة الدخل',
+ 'Invoice' => 'Ùاتورة',
+ 'Labor/Overhead' => 'تكلÙØ© عمالة',
+ 'Language' => 'اللغة',
+ 'List Accounts' => 'قائمة الحسابات',
+ 'List Businesses' => 'قائمةانواع العمل',
+ 'List Departments' => 'قائمة الاقسام',
+ 'List Languages' => 'قائمة اللغات',
+ 'List Projects' => 'قائمة المشروعات',
+ 'List SIC' => 'قائمة الاكواد الصناعية القياسية',
+ 'List Warehouses' => 'قائمة المخازن',
+ 'Logout' => 'خروج',
+ 'Non-taxable' => 'غير خاضع للضريبة',
+ 'Open' => 'Ùتح',
+ 'Order Entry' => 'ادخال الامر',
+ 'Outstanding' => 'ارصدة',
+ 'POS' => 'نقطة بيع',
+ 'POS Invoice' => 'Ùاتورة امر الشراء',
+ 'Packing List' => 'قائمة تعبئة',
+ 'Packing Lists' => 'قوائم تعبئة',
+ 'Parts' => 'الاجزاء',
+ 'Payment' => 'الدÙع النقدى',
+ 'Payments' => 'المدÙوعات',
+ 'Pricegroups' => 'مجموعات سعرية',
+ 'Print' => 'طباعة',
+ 'Projects' => 'مشروعات',
+ 'Purchase Order' => 'امر شراء',
+ 'Purchase Orders' => 'اوامر شراء',
+ 'Quotation' => 'عروض اسعار للعملاء',
+ 'Quotations' => 'عروض اسعار',
+ 'RFQs' => 'عروض اسعار موردين',
+ 'Receipt' => 'الوارد',
+ 'Receipts' => 'الواردات',
+ 'Receive' => 'شحن وارد',
+ 'Reconciliation' => 'تسويات',
+ 'Reports' => 'تقارير',
+ 'SIC' => 'الاكواد الصناعية القياسية',
+ 'Sale' => 'بيع',
+ 'Sales Invoice' => 'Ùاتورة المبيعات',
+ 'Sales Invoices' => 'Ùواتير المبيعات',
+ 'Sales Order' => 'امر بيع',
+ 'Sales Orders' => 'اوامر بيع',
+ 'Save to File' => 'خزن كملÙ',
+ 'Search' => 'بحث',
+ 'Send by E-Mail' => 'ارسل بالبريد الالكتروني',
+ 'Services' => 'خدمات',
+ 'Ship' => 'شحن صادر',
+ 'Shipping' => 'شحن',
+ 'Statement' => 'كش٠حساب',
+ 'Stock Assembly' => 'تجميع مخزون',
+ 'System' => 'نظام',
+ 'Tax collected' => 'الضريبة المجمعة',
+ 'Tax paid' => 'الضريبة المدÙوعة',
+ 'Transactions' => 'حركات',
+ 'Transfer' => 'تحويل',
+ 'Translations' => 'ترجمات',
+ 'Trial Balance' => 'ميزان المراجعة',
+ 'Type of Business' => 'نوع العمل',
+ 'Vendor Invoice' => 'Ùاتورة المورد ',
+ 'Vendors' => 'الموردين',
+ 'Version' => 'نسخة',
+ 'Warehouses' => 'مخازن',
+ 'Work Order' => 'امر شغل',
+ 'Yearend' => 'نهاية العام المالى',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/eg_utf/oe b/locale/eg_utf/oe
new file mode 100755
index 00000000..1a2ebe13
--- /dev/null
+++ b/locale/eg_utf/oe
@@ -0,0 +1,268 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => 'قائمة الحسابات',
+ 'Add Purchase Order' => 'اضاÙØ© طلب شراء',
+ 'Add Quotation' => 'اضاÙØ© عرض سعر ',
+ 'Add Request for Quotation' => 'اضاÙØ© عرض سعر مورد',
+ 'Add Sales Invoice' => 'اضاÙØ© Ùاتورة بيع',
+ 'Add Sales Order' => 'اضاÙØ© طلب بيع',
+ 'Add Vendor Invoice' => 'اضاÙØ© Ùاتورة المورد',
+ 'Address' => 'العنوان',
+ 'Amount' => 'الكمية',
+ 'Apr' => 'ابريل',
+ 'April' => 'ابريل',
+ 'Are you sure you want to delete Order Number' => 'هل انت متأكد انك تريد الغاء رقم الطلب',
+ 'Attachment' => 'مرÙقات',
+ 'Aug' => 'اغسطس',
+ 'August' => 'اغسطس',
+ 'Bcc' => 'نسخة غير مرئية',
+ 'Billing Address' => 'عنوان ارسال الÙواتير',
+ 'Cannot delete order!' => 'لا يمكن الغاء الطلب',
+ 'Cannot save order!' => 'لا يمكن تخزين الطلب',
+ 'Cc' => 'نسخة اخرى',
+ 'City' => 'مدينة',
+ 'Closed' => 'مغلق',
+ 'Company Name' => 'اسم الشركة',
+ 'Confirm!' => 'تاكيد',
+ 'Contact' => 'شخص الاتصال',
+ 'Continue' => 'تابع',
+ 'Copies' => 'نسخ',
+ 'Cost' => 'تكلÙØ©',
+ 'Country' => 'دولة',
+ 'Credit Limit' => 'حد الائتمان',
+ 'Curr' => 'عملة',
+ 'Currency' => 'عملة',
+ 'Current' => 'الحالي',
+ 'Customer' => 'العميل',
+ 'Customer Number' => 'رقم العميل',
+ 'Customer missing!' => 'عميل غير موجود',
+ 'Customer not on file!' => ' عميل غير موجود ÙÙŠ الملÙ',
+ 'Date' => 'التاريخ',
+ 'Dec' => 'ديسمبر',
+ 'December' => 'ديسمبر',
+ 'Delete' => 'الغاء',
+ 'Delivery Date' => 'تاريخ الوصول',
+ 'Department' => 'قسم',
+ 'Description' => 'وصÙ',
+ 'Done' => 'Ù†ÙØ°',
+ 'E-mail' => 'بريد الكتروني',
+ 'E-mail address missing!' => 'عنوان البريد الالكتروني غير موجود',
+ 'Edit Purchase Order' => 'تعديل امر شراء',
+ 'Edit Sales Order' => 'تعديل امر مبيعات',
+ 'Employee' => 'الموظÙ',
+ 'Exchange Rate' => 'سعر الصرÙ',
+ 'Exchange rate missing!' => 'سعر الصر٠غير موجود',
+ 'Extended' => 'اجمالى',
+ 'Fax' => 'الÙاكس',
+ 'Feb' => 'Ùبراير',
+ 'February' => 'Ùبراير',
+ 'From' => 'من',
+ 'Group' => 'مجموعة',
+ 'ID' => 'البطاقة الشخصية',
+ 'In-line' => 'ÙÙŠ الصÙ',
+ 'Include in Report' => 'ارÙÙ‚ ÙÙŠ التقرير ------',
+ 'Internal Notes' => 'ملاحظات داخلية',
+ 'Invoice' => 'Ùاتورة',
+ 'Invoice Date missing!' => 'تاريخ الÙاتورة غير موجود',
+ 'Invoice Number missing!' => 'رقم الÙاتورة غير موجود',
+ 'Item not on file!' => 'الوحدة غير موجودة ÙÙŠ الملÙ',
+ 'Jan' => 'يناير',
+ 'January' => 'يناير',
+ 'Jul' => 'يولية',
+ 'July' => 'يولية',
+ 'Jun' => 'يونية',
+ 'June' => 'يونية',
+ 'Manager' => 'مدير',
+ 'Mar' => 'مارس',
+ 'March' => 'مارس',
+ 'May' => 'مايو',
+ 'May ' => 'مايو',
+ 'Message' => 'رسالة',
+ 'No.' => 'رقم',
+ 'Notes' => 'ملاحظات',
+ 'Nothing selected!' => 'لم يتم الاختيار',
+ 'Nov' => 'نوÙمبر',
+ 'November' => 'نوÙمبر',
+ 'Number' => 'الرقم',
+ 'Number missing in Row' => 'رقم غير موجود ÙÙŠ الصÙ',
+ 'Oct' => 'اكتوبر',
+ 'October' => 'اكتوبر',
+ 'Open' => 'Ùتح',
+ 'Order' => 'امر',
+ 'Order Date' => 'تاريخ الامر',
+ 'Order Date missing!' => 'تاريخ الامر غير موجود',
+ 'Order Number' => 'رقم الامر',
+ 'Order Number missing!' => 'رقم الامر غير موجود',
+ 'Order deleted!' => 'الغي الامر',
+ 'Order saved!' => 'خزن الامر',
+ 'Packing List' => 'قائمة تعبئة',
+ 'Packing List Date missing!' => 'تاريخ بوليصة الشحن غير موجود',
+ 'Packing List Number missing!' => 'رقم بوليصة الشحن غير موجود',
+ 'Part' => 'جزء',
+ 'Phone' => 'تليÙون',
+ 'Price' => 'سعر',
+ 'Print' => 'طباعة',
+ 'Project' => 'مشروع',
+ 'Project not on file!' => 'المشروع ليس ÙÙ‰ الملÙات',
+ 'Purchase Order' => 'امر شراء',
+ 'Purchase Orders' => 'اوامر شراء',
+ 'Qty' => 'الكمية',
+ 'Quotation' => 'عروض اسعار للعملاء',
+ 'Quotation Date' => 'تاريخ عرض السعر',
+ 'Quotation Number' => 'رقم عرض السعر',
+ 'Quotations' => 'عروض اسعار',
+ 'RFQ Number' => 'رقم عرض السعر',
+ 'Receive Merchandise' => 'استلام بضاعة',
+ 'Reference' => 'مرجع',
+ 'Remaining' => 'متبقى',
+ 'Request for Quotations' => 'عروض اسعار مطلوبة',
+ 'Required by' => 'مطلوب من قبل',
+ 'Sales Invoice' => 'Ùاتورة المبيعات',
+ 'Sales Order' => 'امر بيع',
+ 'Sales Orders' => 'اوامر بيع',
+ 'Salesperson' => 'مندوب مبيعات',
+ 'Save' => 'تخزين',
+ 'Save as new' => 'خزن كجديد',
+ 'Screen' => 'الشاشة',
+ 'Select from one of the names below' => 'اختر اسم من الاسماء',
+ 'Select from one of the projects below' => 'اختر مشروع من المشروعات التالية',
+ 'Sep' => 'سبتمبر',
+ 'September' => 'سبتمبر',
+ 'Service' => 'خدمة',
+ 'Ship' => 'شحن صادر',
+ 'Ship Merchandise' => 'شحن بضاعة للخارج',
+ 'Ship to' => 'شحن الى',
+ 'Ship via' => 'شحن من خلال',
+ 'Shipping Address' => 'عنوان الشحن',
+ 'Shipping Point' => 'نقطة الشحن',
+ 'Startdate' => 'تاريخ يدء العمل',
+ 'State/Province' => 'محاÙظة',
+ 'Subject' => 'موضوع',
+ 'Subtotal' => 'اجمالى',
+ 'Tax' => 'ضريبة',
+ 'Tax Included' => 'الضريبة المضاÙØ©',
+ 'Terms' => 'شروط ',
+ 'To' => 'إلى',
+ 'Total' => 'مجموع',
+ 'Transfer' => 'تحويل',
+ 'Unit' => 'وحدة',
+ 'Update' => 'تعديل',
+ 'Valid until' => 'سارى حتى',
+ 'Vendor' => 'المورد',
+ 'Vendor Invoice' => 'Ùاتورة المورد ',
+ 'Vendor Number' => 'رقم المورد',
+ 'Vendor missing!' => 'مورد غير موجود',
+ 'Vendor not on file!' => 'مورد غير موجود ÙÙŠ الملÙ',
+ 'What type of item is this?' => 'ما نوع هذة الوحدة؟',
+ 'Work Order' => 'امر شغل',
+ 'Yes' => 'نعم',
+ 'days' => 'ايام',
+ 'ea' => 'قطعة',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'تابع' => 'continue',
+ 'الغاء' => 'delete',
+ 'Ù†ÙØ°' => 'done',
+ 'بريد_الكتروني' => 'e_mail',
+ 'طباعة' => 'print',
+ 'امر_شراء' => 'purchase_order',
+ 'عروض_اسعار_للعملاء' => 'quotation',
+ 'Ùاتورة_المبيعات' => 'sales_invoice',
+ 'امر_بيع' => 'sales_order',
+ 'تخزين' => 'save',
+ 'خزن_كجديد' => 'save_as_new',
+ 'شحن_الى' => 'ship_to',
+ 'تحويل' => 'transfer',
+ 'تعديل' => 'update',
+ 'Ùاتورة_المورد_' => 'vendor_invoice',
+ 'نعم' => 'yes',
+};
+
+1;
+
diff --git a/locale/eg_utf/pe b/locale/eg_utf/pe
new file mode 100755
index 00000000..71e7a882
--- /dev/null
+++ b/locale/eg_utf/pe
@@ -0,0 +1,125 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => 'قائمة الحسابات',
+ 'Active' => 'Ùعال',
+ 'Add' => 'اضاÙØ©',
+ 'Add Group' => 'اضاÙØ© مجموعة',
+ 'Add Project' => 'اضاÙØ© مشروع',
+ 'Address' => 'العنوان',
+ 'All' => 'الكل',
+ 'Amount' => 'الكمية',
+ 'Continue' => 'تابع',
+ 'Current' => 'الحالي',
+ 'Customer' => 'العميل',
+ 'Customer missing!' => 'عميل غير موجود',
+ 'Customer not on file!' => ' عميل غير موجود ÙÙŠ الملÙ',
+ 'Date' => 'التاريخ',
+ 'Delete' => 'الغاء',
+ 'Description' => 'وصÙ',
+ 'Description Translations' => 'ترجمة مواصÙات',
+ 'Detail' => 'تÙصيلى',
+ 'Edit Group' => 'تعديل مجموعة',
+ 'Edit Project' => 'تعديل مشروع',
+ 'Employee' => 'الموظÙ',
+ 'Enddate' => 'تاريخ نهاية العمل',
+ 'From' => 'من',
+ 'Group' => 'مجموعة',
+ 'Group Translations' => 'ترجمة مجوعات',
+ 'Group deleted!' => 'الغيت المجموعة',
+ 'Group missing!' => 'مجموعة غير موجودة',
+ 'Group saved!' => 'تخزين المجموعة',
+ 'Groups' => 'مجموعات',
+ 'Income' => 'الربح',
+ 'Language' => 'اللغة',
+ 'Link Accounts' => 'ربط الحسابات',
+ 'List Price' => 'قائمة الاسعار',
+ 'Notes' => 'ملاحظات',
+ 'Nothing selected!' => 'لم يتم الاختيار',
+ 'Number' => 'الرقم',
+ 'Pricegroup' => 'مجموعة سعرية',
+ 'Pricegroups' => 'مجموعات سعرية',
+ 'Project' => 'مشروع',
+ 'Project Description Translations' => 'ترجمة وص٠المشروع',
+ 'Project Number' => 'رقم المشروع',
+ 'Project deleted!' => 'الغي المشروع',
+ 'Project saved!' => 'خزن المشروع',
+ 'Projects' => 'مشروعات',
+ 'Qty' => 'الكمية',
+ 'Save' => 'تخزين',
+ 'Select from one of the names below' => 'اختر اسم من الاسماء',
+ 'Sell Price' => 'سعر البيع',
+ 'Startdate' => 'تاريخ يدء العمل',
+ 'Summary' => 'ملخص',
+ 'Tax' => 'ضريبة',
+ 'To' => 'إلى',
+ 'Unit' => 'وحدة',
+ 'Update' => 'تعديل',
+ 'Updated' => 'معدل',
+ 'Vendor' => 'المورد',
+ 'Vendor not on file!' => 'مورد غير موجود ÙÙŠ الملÙ',
+ 'Weight' => 'وزن',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'اضاÙØ©_مجموعة' => 'add_group',
+ 'اضاÙØ©_مشروع' => 'add_project',
+ 'تابع' => 'continue',
+ 'الغاء' => 'delete',
+ 'تخزين' => 'save',
+ 'تعديل' => 'update',
+};
+
+1;
+
diff --git a/locale/eg_utf/pos b/locale/eg_utf/pos
new file mode 100755
index 00000000..a6675144
--- /dev/null
+++ b/locale/eg_utf/pos
@@ -0,0 +1,73 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => 'قائمة الحسابات',
+ 'Add POS Invoice' => 'اضاÙØ© Ùاتورة نقطة بيع',
+ 'Amount' => 'الكمية',
+ 'Cannot post transaction!' => 'لا يمكن تسجيل الحركة',
+ 'Change' => 'تغيير',
+ 'Continue' => 'تابع',
+ 'Credit Limit' => 'حد الائتمان',
+ 'Currency' => 'عملة',
+ 'Current' => 'الحالي',
+ 'Customer' => 'العميل',
+ 'Customer missing!' => 'عميل غير موجود',
+ 'Delete' => 'الغاء',
+ 'Department' => 'قسم',
+ 'Description' => 'وصÙ',
+ 'Edit POS Invoice' => 'تعديل Ùاتورة أمر الشراء',
+ 'Exchange Rate' => 'سعر الصرÙ',
+ 'Exchange rate missing!' => 'سعر الصر٠غير موجود',
+ 'Extended' => 'اجمالى',
+ 'From' => 'من',
+ 'Language' => 'اللغة',
+ 'Memo' => 'ملاحظات',
+ 'Number' => 'الرقم',
+ 'Open' => 'Ùتح',
+ 'Post' => 'تسجيل',
+ 'Posted!' => 'سجل',
+ 'Price' => 'سعر',
+ 'Print' => 'طباعة',
+ 'Qty' => 'الكمية',
+ 'Receipts' => 'الواردات',
+ 'Record in' => 'ÙÙŠ السجل',
+ 'Remaining' => 'متبقى',
+ 'Salesperson' => 'مندوب مبيعات',
+ 'Screen' => 'الشاشة',
+ 'Source' => 'مصدر',
+ 'Subtotal' => 'اجمالى',
+ 'Tax Included' => 'الضريبة المضاÙØ©',
+ 'To' => 'إلى',
+ 'Total' => 'مجموع',
+ 'Unit' => 'وحدة',
+ 'Update' => 'تعديل',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'تابع' => 'continue',
+ 'الغاء' => 'delete',
+ 'تسجيل' => 'post',
+ 'طباعة' => 'print',
+ 'تعديل' => 'update',
+};
+
+1;
+
diff --git a/locale/eg_utf/ps b/locale/eg_utf/ps
new file mode 100755
index 00000000..9778c8aa
--- /dev/null
+++ b/locale/eg_utf/ps
@@ -0,0 +1,318 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Aging' => 'كش٠حساب موردين',
+ 'AP Outstanding' => 'ارصدة موردين متبقية',
+ 'AP Transaction' => 'حركة حساب مورد',
+ 'AP Transactions' => 'حركات حساب الموردين',
+ 'AR Aging' => 'كشوÙات حسابات العملاء',
+ 'AR Outstanding' => 'ارصدة عملاء ',
+ 'AR Transaction' => 'حركة حساب عميل',
+ 'AR Transactions' => 'حركات حساب العملاء',
+ 'Account' => 'حساب',
+ 'Account Number' => 'رقم حساب',
+ 'Accounting Menu' => 'قائمة الحسابات',
+ 'Accounts' => 'حسابات',
+ 'Accrual' => 'المجمعة',
+ 'Add POS Invoice' => 'اضاÙØ© Ùاتورة نقطة بيع',
+ 'Add Purchase Order' => 'اضاÙØ© طلب شراء',
+ 'Add Quotation' => 'اضاÙØ© عرض سعر ',
+ 'Add Request for Quotation' => 'اضاÙØ© عرض سعر مورد',
+ 'Add Sales Invoice' => 'اضاÙØ© Ùاتورة بيع',
+ 'Add Sales Order' => 'اضاÙØ© طلب بيع',
+ 'Address' => 'العنوان',
+ 'All Accounts' => 'كل الحسابات',
+ 'Amount' => 'الكمية',
+ 'Amount Due' => 'الرصيد ',
+ 'Apr' => 'ابريل',
+ 'April' => 'ابريل',
+ 'Are you sure you want to delete Invoice Number' => 'هل انت متأكد انك تريد الغاء رقم الÙاتروة ',
+ 'Are you sure you want to delete Transaction' => 'هل انت متأكد انك تريد الغاء الحركة',
+ 'Attachment' => 'مرÙقات',
+ 'Aug' => 'اغسطس',
+ 'August' => 'اغسطس',
+ 'Balance' => 'رصيد',
+ 'Balance Sheet' => 'الميزانية',
+ 'Bcc' => 'نسخة غير مرئية',
+ 'Billing Address' => 'عنوان ارسال الÙواتير',
+ 'Cannot delete invoice!' => 'لا يمكن الغاء الÙاتورة',
+ 'Cannot delete transaction!' => 'لا يمكن الغاء الحركة',
+ 'Cannot post invoice!' => 'لا يمكن تسجيل الÙاتورة',
+ 'Cannot post payment for a closed period!' => 'لا يمكن تسجيل المدÙوعات Ù„Ùترة مغلقة',
+ 'Cannot post transaction for a closed period!' => 'لا يمكن تسجيل الحركة Ù„Ùترة مغلقة',
+ 'Cannot post transaction!' => 'لا يمكن تسجيل الحركة',
+ 'Cash' => 'النقدية',
+ 'Cc' => 'نسخة اخرى',
+ 'Change' => 'تغيير',
+ 'Check' => 'شيك',
+ 'City' => 'مدينة',
+ 'Closed' => 'مغلق',
+ 'Company Name' => 'اسم الشركة',
+ 'Compare to' => 'مقارنة ',
+ 'Confirm!' => 'تاكيد',
+ 'Contact' => 'شخص الاتصال',
+ 'Continue' => 'تابع',
+ 'Copies' => 'نسخ',
+ 'Country' => 'دولة',
+ 'Credit' => 'دائن',
+ 'Credit Limit' => 'حد الائتمان',
+ 'Curr' => 'عملة',
+ 'Currency' => 'عملة',
+ 'Current' => 'الحالي',
+ 'Customer' => 'العميل',
+ 'Customer Number' => 'رقم العميل',
+ 'Customer missing!' => 'عميل غير موجود',
+ 'Customer not on file!' => ' عميل غير موجود ÙÙŠ الملÙ',
+ 'Date' => 'التاريخ',
+ 'Date Paid' => 'تاريخ الدÙع',
+ 'Debit' => 'مدين',
+ 'Dec' => 'ديسمبر',
+ 'December' => 'ديسمبر',
+ 'Decimalplaces' => 'علامات عشرية',
+ 'Delete' => 'الغاء',
+ 'Delivery Date' => 'تاريخ الوصول',
+ 'Department' => 'قسم',
+ 'Description' => 'وصÙ',
+ 'Detail' => 'تÙصيلى',
+ 'Due Date' => 'تاريخ الاستحقاق',
+ 'Due Date missing!' => 'تاريخ الاستحقاق غير موجود',
+ 'E-mail' => 'بريد الكتروني',
+ 'E-mail address missing!' => 'عنوان البريد الالكتروني غير موجود',
+ 'Edit POS Invoice' => 'تعديل Ùاتورة أمر الشراء',
+ 'Edit Sales Invoice' => 'تعديل Ùاتورة مبيعات',
+ 'Employee' => 'الموظÙ',
+ 'Exch' => 'سعر الصرÙ',
+ 'Exchange Rate' => 'سعر الصرÙ',
+ 'Exchange rate for payment missing!' => 'سعر الصر٠للمدÙوعات غير موجود',
+ 'Exchange rate missing!' => 'سعر الصر٠غير موجود',
+ 'Extended' => 'اجمالى',
+ 'Fax' => 'الÙاكس',
+ 'Feb' => 'Ùبراير',
+ 'February' => 'Ùبراير',
+ 'From' => 'من',
+ 'Group' => 'مجموعة',
+ 'Heading' => 'عنوان',
+ 'ID' => 'البطاقة الشخصية',
+ 'In-line' => 'ÙÙŠ الصÙ',
+ 'Include Exchange Rate Difference' => 'اظهار تغيير سعر العملة',
+ 'Include in Report' => 'ارÙÙ‚ ÙÙŠ التقرير ------',
+ 'Income Statement' => 'قائمة الدخل',
+ 'Internal Notes' => 'ملاحظات داخلية',
+ 'Invoice' => 'Ùاتورة',
+ 'Invoice Date' => 'تاريخ الÙاتورة',
+ 'Invoice Date missing!' => 'تاريخ الÙاتورة غير موجود',
+ 'Invoice Number' => 'رقم الÙاتورة',
+ 'Invoice Number missing!' => 'رقم الÙاتورة غير موجود',
+ 'Invoice deleted!' => 'الغيت القاتورة',
+ 'Item not on file!' => 'الوحدة غير موجودة ÙÙŠ الملÙ',
+ 'Jan' => 'يناير',
+ 'January' => 'يناير',
+ 'Jul' => 'يولية',
+ 'July' => 'يولية',
+ 'Jun' => 'يونية',
+ 'June' => 'يونية',
+ 'Language' => 'اللغة',
+ 'Manager' => 'مدير',
+ 'Mar' => 'مارس',
+ 'March' => 'مارس',
+ 'May' => 'مايو',
+ 'May ' => 'مايو',
+ 'Memo' => 'ملاحظات',
+ 'Message' => 'رسالة',
+ 'Method' => 'طريقة',
+ 'N/A' => 'غير موجود',
+ 'No.' => 'رقم',
+ 'Non-taxable Purchases' => 'المبيعات المعÙاة من الضرائب',
+ 'Non-taxable Sales' => 'المبيعات المعÙاة من الضرائب',
+ 'Notes' => 'ملاحظات',
+ 'Nothing selected!' => 'لم يتم الاختيار',
+ 'Nov' => 'نوÙمبر',
+ 'November' => 'نوÙمبر',
+ 'Number' => 'الرقم',
+ 'Number missing in Row' => 'رقم غير موجود ÙÙŠ الصÙ',
+ 'Oct' => 'اكتوبر',
+ 'October' => 'اكتوبر',
+ 'Open' => 'Ùتح',
+ 'Order' => 'امر',
+ 'Order Date missing!' => 'تاريخ الامر غير موجود',
+ 'Order Number' => 'رقم الامر',
+ 'Order Number missing!' => 'رقم الامر غير موجود',
+ 'Packing List' => 'قائمة تعبئة',
+ 'Packing List Date missing!' => 'تاريخ بوليصة الشحن غير موجود',
+ 'Packing List Number missing!' => 'رقم بوليصة الشحن غير موجود',
+ 'Paid' => 'المدÙوع',
+ 'Part' => 'جزء',
+ 'Payment date missing!' => 'تاريخ الدÙع غير موجود',
+ 'Payments' => 'المدÙوعات',
+ 'Phone' => 'تليÙون',
+ 'Post' => 'تسجيل',
+ 'Post as new' => 'سجل كجديد',
+ 'Posted!' => 'سجل',
+ 'Price' => 'سعر',
+ 'Print' => 'طباعة',
+ 'Project' => 'مشروع',
+ 'Project Number' => 'رقم المشروع',
+ 'Project Transactions' => 'حركات المشروع',
+ 'Project not on file!' => 'المشروع ليس ÙÙ‰ الملÙات',
+ 'Purchase Order' => 'امر شراء',
+ 'Qty' => 'الكمية',
+ 'Quotation' => 'عروض اسعار للعملاء',
+ 'Receipt' => 'الوارد',
+ 'Receipts' => 'الواردات',
+ 'Record in' => 'ÙÙŠ السجل',
+ 'Reference' => 'مرجع',
+ 'Remaining' => 'متبقى',
+ 'Report for' => 'تقرير لاجل',
+ 'Required by' => 'مطلوب من قبل',
+ 'Sales Order' => 'امر بيع',
+ 'Salesperson' => 'مندوب مبيعات',
+ 'Screen' => 'الشاشة',
+ 'Select all' => 'اختر الكل',
+ 'Select from one of the names below' => 'اختر اسم من الاسماء',
+ 'Select from one of the projects below' => 'اختر مشروع من المشروعات التالية',
+ 'Sep' => 'سبتمبر',
+ 'September' => 'سبتمبر',
+ 'Service' => 'خدمة',
+ 'Ship' => 'شحن صادر',
+ 'Ship to' => 'شحن الى',
+ 'Ship via' => 'شحن من خلال',
+ 'Shipping Address' => 'عنوان الشحن',
+ 'Shipping Point' => 'نقطة الشحن',
+ 'Source' => 'مصدر',
+ 'Standard' => 'اساس',
+ 'Startdate' => 'تاريخ يدء العمل',
+ 'State/Province' => 'محاÙظة',
+ 'Statement' => 'كش٠حساب',
+ 'Statement sent to' => 'كش٠حساب مرسل الى',
+ 'Statements sent to printer!' => 'كش٠حساب مرسل الى الطابعة',
+ 'Subject' => 'موضوع',
+ 'Subtotal' => 'اجمالى',
+ 'Summary' => 'ملخص',
+ 'Tax' => 'ضريبة',
+ 'Tax Included' => 'الضريبة المضاÙØ©',
+ 'Tax collected' => 'الضريبة المجمعة',
+ 'Tax paid' => 'الضريبة المدÙوعة',
+ 'Till' => 'إلى',
+ 'To' => 'إلى',
+ 'Total' => 'مجموع',
+ 'Transaction deleted!' => 'الغيت الحركة',
+ 'Transaction posted!' => 'سجلت الحركة',
+ 'Trial Balance' => 'ميزان المراجعة',
+ 'Unit' => 'وحدة',
+ 'Update' => 'تعديل',
+ 'Vendor' => 'المورد',
+ 'Vendor Number' => 'رقم المورد',
+ 'Vendor missing!' => 'مورد غير موجود',
+ 'Vendor not on file!' => 'مورد غير موجود ÙÙŠ الملÙ',
+ 'What type of item is this?' => 'ما نوع هذة الوحدة؟',
+ 'Work Order' => 'امر شغل',
+ 'Yes' => 'نعم',
+ 'as at' => 'من',
+ 'ea' => 'قطعة',
+ 'for Period' => 'للÙترة',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'حركة_حساب_مورد' => 'ap_transaction',
+ 'حركة_حساب_عميل' => 'ar_transaction',
+ 'تابع' => 'continue',
+ 'الغاء' => 'delete',
+ 'بريد_الكتروني' => 'e_mail',
+ 'تسجيل' => 'post',
+ 'سجل_كجديد' => 'post_as_new',
+ 'طباعة' => 'print',
+ 'امر_بيع' => 'sales_order',
+ 'اختر_الكل' => 'select_all',
+ 'شحن_الى' => 'ship_to',
+ 'تعديل' => 'update',
+ 'نعم' => 'yes',
+};
+
+1;
+
diff --git a/locale/eg_utf/pw b/locale/eg_utf/pw
new file mode 100755
index 00000000..89d1cdab
--- /dev/null
+++ b/locale/eg_utf/pw
@@ -0,0 +1,14 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Continue' => 'تابع',
+ 'Password' => 'كلمة السر',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'تابع' => 'continue',
+};
+
+1;
+
diff --git a/locale/eg_utf/rc b/locale/eg_utf/rc
new file mode 100755
index 00000000..f5360bf0
--- /dev/null
+++ b/locale/eg_utf/rc
@@ -0,0 +1,75 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'حساب',
+ 'Accounting Menu' => 'قائمة الحسابات',
+ 'Apr' => 'ابريل',
+ 'April' => 'ابريل',
+ 'Aug' => 'اغسطس',
+ 'August' => 'اغسطس',
+ 'Balance' => 'رصيد',
+ 'Beginning Balance' => 'بداية الميزانية',
+ 'Cleared' => 'مغلق',
+ 'Continue' => 'تابع',
+ 'Credit' => 'دائن',
+ 'Current' => 'الحالي',
+ 'Date' => 'التاريخ',
+ 'Debit' => 'مدين',
+ 'Dec' => 'ديسمبر',
+ 'December' => 'ديسمبر',
+ 'Description' => 'وصÙ',
+ 'Detail' => 'تÙصيلى',
+ 'Difference' => 'اختلاÙات',
+ 'Done' => 'Ù†ÙØ°',
+ 'Feb' => 'Ùبراير',
+ 'February' => 'Ùبراير',
+ 'From' => 'من',
+ 'Include Exchange Rate Difference' => 'اظهار تغيير سعر العملة',
+ 'Jan' => 'يناير',
+ 'January' => 'يناير',
+ 'Jul' => 'يولية',
+ 'July' => 'يولية',
+ 'Jun' => 'يونية',
+ 'June' => 'يونية',
+ 'Mar' => 'مارس',
+ 'March' => 'مارس',
+ 'May' => 'مايو',
+ 'May ' => 'مايو',
+ 'Nov' => 'نوÙمبر',
+ 'November' => 'نوÙمبر',
+ 'Oct' => 'اكتوبر',
+ 'October' => 'اكتوبر',
+ 'Outstanding' => 'ارصدة',
+ 'Reconciliation' => 'تسويات',
+ 'Reconciliation Report' => 'تقرير التسويات',
+ 'Select all' => 'اختر الكل',
+ 'Sep' => 'سبتمبر',
+ 'September' => 'سبتمبر',
+ 'Source' => 'مصدر',
+ 'Statement Balance' => 'رصيد كش٠حساب',
+ 'Summary' => 'ملخص',
+ 'To' => 'إلى',
+ 'Update' => 'تعديل',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'تابع' => 'continue',
+ 'Ù†ÙØ°' => 'done',
+ 'اختر_الكل' => 'select_all',
+ 'تعديل' => 'update',
+};
+
+1;
+
diff --git a/locale/eg_utf/rp b/locale/eg_utf/rp
new file mode 100755
index 00000000..77605fda
--- /dev/null
+++ b/locale/eg_utf/rp
@@ -0,0 +1,169 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Aging' => 'كش٠حساب موردين',
+ 'AR Aging' => 'كشوÙات حسابات العملاء',
+ 'Account' => 'حساب',
+ 'Account Number' => 'رقم حساب',
+ 'Accounting Menu' => 'قائمة الحسابات',
+ 'Accounts' => 'حسابات',
+ 'Accrual' => 'المجمعة',
+ 'Address' => 'العنوان',
+ 'All Accounts' => 'كل الحسابات',
+ 'Amount' => 'الكمية',
+ 'Apr' => 'ابريل',
+ 'April' => 'ابريل',
+ 'Attachment' => 'مرÙقات',
+ 'Aug' => 'اغسطس',
+ 'August' => 'اغسطس',
+ 'Balance' => 'رصيد',
+ 'Balance Sheet' => 'الميزانية',
+ 'Bcc' => 'نسخة غير مرئية',
+ 'Cash' => 'النقدية',
+ 'Cc' => 'نسخة اخرى',
+ 'Compare to' => 'مقارنة ',
+ 'Continue' => 'تابع',
+ 'Copies' => 'نسخ',
+ 'Credit' => 'دائن',
+ 'Curr' => 'عملة',
+ 'Current' => 'الحالي',
+ 'Customer' => 'العميل',
+ 'Customer not on file!' => ' عميل غير موجود ÙÙŠ الملÙ',
+ 'Date' => 'التاريخ',
+ 'Debit' => 'مدين',
+ 'Dec' => 'ديسمبر',
+ 'December' => 'ديسمبر',
+ 'Decimalplaces' => 'علامات عشرية',
+ 'Department' => 'قسم',
+ 'Description' => 'وصÙ',
+ 'Detail' => 'تÙصيلى',
+ 'Due Date' => 'تاريخ الاستحقاق',
+ 'E-mail' => 'بريد الكتروني',
+ 'E-mail address missing!' => 'عنوان البريد الالكتروني غير موجود',
+ 'Feb' => 'Ùبراير',
+ 'February' => 'Ùبراير',
+ 'From' => 'من',
+ 'Heading' => 'عنوان',
+ 'ID' => 'البطاقة الشخصية',
+ 'In-line' => 'ÙÙŠ الصÙ',
+ 'Include Exchange Rate Difference' => 'اظهار تغيير سعر العملة',
+ 'Include in Report' => 'ارÙÙ‚ ÙÙŠ التقرير ------',
+ 'Income Statement' => 'قائمة الدخل',
+ 'Invoice' => 'Ùاتورة',
+ 'Jan' => 'يناير',
+ 'January' => 'يناير',
+ 'Jul' => 'يولية',
+ 'July' => 'يولية',
+ 'Jun' => 'يونية',
+ 'June' => 'يونية',
+ 'Language' => 'اللغة',
+ 'Mar' => 'مارس',
+ 'March' => 'مارس',
+ 'May' => 'مايو',
+ 'May ' => 'مايو',
+ 'Memo' => 'ملاحظات',
+ 'Message' => 'رسالة',
+ 'Method' => 'طريقة',
+ 'N/A' => 'غير موجود',
+ 'Non-taxable Purchases' => 'المبيعات المعÙاة من الضرائب',
+ 'Non-taxable Sales' => 'المبيعات المعÙاة من الضرائب',
+ 'Nothing selected!' => 'لم يتم الاختيار',
+ 'Nov' => 'نوÙمبر',
+ 'November' => 'نوÙمبر',
+ 'Number' => 'الرقم',
+ 'Oct' => 'اكتوبر',
+ 'October' => 'اكتوبر',
+ 'Order' => 'امر',
+ 'Payments' => 'المدÙوعات',
+ 'Print' => 'طباعة',
+ 'Project' => 'مشروع',
+ 'Project Number' => 'رقم المشروع',
+ 'Project Transactions' => 'حركات المشروع',
+ 'Project not on file!' => 'المشروع ليس ÙÙ‰ الملÙات',
+ 'Receipts' => 'الواردات',
+ 'Reference' => 'مرجع',
+ 'Report for' => 'تقرير لاجل',
+ 'Salesperson' => 'مندوب مبيعات',
+ 'Screen' => 'الشاشة',
+ 'Select all' => 'اختر الكل',
+ 'Select from one of the names below' => 'اختر اسم من الاسماء',
+ 'Select from one of the projects below' => 'اختر مشروع من المشروعات التالية',
+ 'Sep' => 'سبتمبر',
+ 'September' => 'سبتمبر',
+ 'Source' => 'مصدر',
+ 'Standard' => 'اساس',
+ 'Startdate' => 'تاريخ يدء العمل',
+ 'Statement' => 'كش٠حساب',
+ 'Statement sent to' => 'كش٠حساب مرسل الى',
+ 'Statements sent to printer!' => 'كش٠حساب مرسل الى الطابعة',
+ 'Subject' => 'موضوع',
+ 'Subtotal' => 'اجمالى',
+ 'Summary' => 'ملخص',
+ 'Tax' => 'ضريبة',
+ 'Tax collected' => 'الضريبة المجمعة',
+ 'Tax paid' => 'الضريبة المدÙوعة',
+ 'Till' => 'إلى',
+ 'To' => 'إلى',
+ 'Total' => 'مجموع',
+ 'Trial Balance' => 'ميزان المراجعة',
+ 'Vendor' => 'المورد',
+ 'Vendor not on file!' => 'مورد غير موجود ÙÙŠ الملÙ',
+ 'as at' => 'من',
+ 'for Period' => 'للÙترة',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'تابع' => 'continue',
+ 'بريد_الكتروني' => 'e_mail',
+ 'طباعة' => 'print',
+ 'اختر_الكل' => 'select_all',
+};
+
+1;
+
diff --git a/locale/en_GB/COPYING b/locale/en_GB/COPYING
new file mode 100755
index 00000000..2ca062c1
--- /dev/null
+++ b/locale/en_GB/COPYING
@@ -0,0 +1,23 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2003
+#
+# British English texts:
+#
+# Author:
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/en_GB/LANGUAGE b/locale/en_GB/LANGUAGE
new file mode 100755
index 00000000..bed69f72
--- /dev/null
+++ b/locale/en_GB/LANGUAGE
@@ -0,0 +1 @@
+British English
diff --git a/locale/en_GB/aa b/locale/en_GB/aa
new file mode 100755
index 00000000..62110aa6
--- /dev/null
+++ b/locale/en_GB/aa
@@ -0,0 +1,37 @@
+$self{texts} = {
+ 'AP Transaction' => 'Purchase Transaction',
+ 'AP Transactions' => 'Purchase Transactions',
+ 'AR Transaction' => 'Sales Transaction',
+ 'AR Transactions' => 'Sales Transactions',
+ 'Check' => 'Cheque',
+ 'Customer' => 'Debtor',
+ 'Customer missing!' => 'Debtor missing!',
+ 'Vendor' => 'Creditor',
+ 'Vendor missing!' => 'Creditor missing!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'purchase_transaction' => 'ap_transaction',
+ 'sales_transaction' => 'ar_transaction',
+};
+
+1;
+
diff --git a/locale/en_GB/admin b/locale/en_GB/admin
new file mode 100755
index 00000000..b04aaf48
--- /dev/null
+++ b/locale/en_GB/admin
@@ -0,0 +1,106 @@
+$self{texts} = {
+ 'Access Control' => 'Access Control',
+ 'Accounting' => 'Accounting',
+ 'Add User' => 'Add User',
+ 'Administration' => 'Administration',
+ 'Administrator' => 'Administrator',
+ 'All Datasets up to date!' => 'All Datasets up to date!',
+ 'Cannot create Lock!' => 'Cannot create Lock!',
+ 'Change Admin Password' => 'Change Admin Password',
+ 'Change Password' => 'Change Password',
+ 'Click on login name to edit!' => 'Click on login name to edit!',
+ 'Connect to' => 'Connect to',
+ 'Create Chart of Accounts' => 'Create Chart of Accounts',
+ 'Create Dataset' => 'Create Dataset',
+ 'DBI not installed!' => 'DBI not installed!',
+ 'Database' => 'Database',
+ 'Database Administration' => 'Database Administration',
+ 'Database Driver not checked!' => 'Database Driver not checked!',
+ 'Database User missing!' => 'Database User missing!',
+ 'Dataset missing!' => 'Dataset missing!',
+ 'Dataset updated!' => 'Dataset updated!',
+ 'Delete Dataset' => 'Delete Dataset',
+ 'Directory' => 'Directory',
+ 'Driver' => 'Driver',
+ 'Edit User' => 'Edit User',
+ 'Existing Datasets' => 'Existing Datasets',
+ 'Host' => 'Host',
+ 'Hostname missing!' => 'Hostname missing!',
+ 'Lock System' => 'Lock System',
+ 'Lockfile created!' => 'Lockfile created!',
+ 'Lockfile removed!' => 'Lockfile removed!',
+ 'Login name missing!' => 'Login name missing!',
+ 'Multibyte Encoding' => 'Multibyte Encoding',
+ 'New Templates' => 'New Templates',
+ 'No Database Drivers available!' => 'No Database Drivers available!',
+ 'No Dataset selected!' => 'No Dataset selected!',
+ 'Nothing to delete!' => 'Nothing to delete!',
+ 'Oracle Database Administration' => 'Oracle Database Administration',
+ 'Password changed!' => 'Password changed!',
+ 'Pg Database Administration' => 'Pg Database Administration',
+ 'PgPP Database Administration' => 'PgPP Database Administration',
+ 'Port' => 'Port',
+ 'Port missing!' => 'Port missing!',
+ 'Setup Templates' => 'Setup Templates',
+ 'Templates' => 'Templates',
+ 'The following Datasets are not in use and can be deleted' => 'The following Datasets are not in use and can be deleted',
+ 'The following Datasets need to be updated' => 'The following Datasets need to be updated',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.',
+ 'Unlock System' => 'Unlock System',
+ 'Update Dataset' => 'Update Dataset',
+ 'Use Templates' => 'Use Templates',
+ 'User deleted!' => 'User deleted!',
+ 'User saved!' => 'User saved!',
+ 'does not exist' => 'does not exist',
+ 'is already a member!' => 'is already a member!',
+ 'successfully created!' => 'successfully created!',
+ 'successfully deleted!' => 'successfully deleted!',
+ 'website' => 'website',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'add_user' => 'add_user',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'create_dataset' => 'create_dataset',
+ 'delete_dataset' => 'delete_dataset',
+ 'lock_system' => 'lock_system',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/en_GB/all b/locale/en_GB/all
new file mode 100755
index 00000000..d6282914
--- /dev/null
+++ b/locale/en_GB/all
@@ -0,0 +1,890 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+
+$self{texts} = {
+ 'A' => '',
+ 'AP' => 'Purchases',
+ 'AP Aging' => 'Creditor Aging',
+ 'AP Outstanding' => '',
+ 'AP Transaction' => 'Purchase Transaction',
+ 'AP Transactions' => 'Purchase Transactions',
+ 'AR' => 'Sales',
+ 'AR Aging' => 'Debtor Aging',
+ 'AR Outstanding' => '',
+ 'AR Transaction' => 'Sales Transaction',
+ 'AR Transactions' => 'Sales Transactions',
+ 'AR/AP' => '',
+ 'About' => '',
+ 'Above' => '',
+ 'Access Control' => 'Access Control',
+ 'Access Denied!' => '',
+ 'Account' => '',
+ 'Account Number' => '',
+ 'Account Number missing!' => '',
+ 'Account Type' => '',
+ 'Account Type missing!' => '',
+ 'Account deleted!' => '',
+ 'Account does not exist!' => '',
+ 'Account saved!' => '',
+ 'Accounting' => 'Accounting',
+ 'Accounting Menu' => '',
+ 'Accounts' => '',
+ 'Accrual' => '',
+ 'Activate Audit trail' => '',
+ 'Active' => '',
+ 'Add' => '',
+ 'Add AP Transaction' => '',
+ 'Add AR Transaction' => '',
+ 'Add Account' => '',
+ 'Add Assembly' => '',
+ 'Add Business' => '',
+ 'Add Cash Transfer Transaction' => '',
+ 'Add Customer' => 'Add Debtor',
+ 'Add Deduction' => '',
+ 'Add Department' => '',
+ 'Add Employee' => '',
+ 'Add Exchange Rate' => '',
+ 'Add GIFI' => '',
+ 'Add General Ledger Transaction' => '',
+ 'Add Group' => '',
+ 'Add Job' => '',
+ 'Add Labor/Overhead' => '',
+ 'Add Language' => '',
+ 'Add POS Invoice' => '',
+ 'Add Part' => '',
+ 'Add Pricegroup' => '',
+ 'Add Project' => '',
+ 'Add Purchase Order' => '',
+ 'Add Quotation' => '',
+ 'Add Request for Quotation' => '',
+ 'Add SIC' => '',
+ 'Add Sales Invoice' => '',
+ 'Add Sales Order' => '',
+ 'Add Service' => '',
+ 'Add Timecard' => '',
+ 'Add Transaction' => '',
+ 'Add User' => 'Add User',
+ 'Add Vendor' => 'Add Creditor',
+ 'Add Vendor Invoice' => 'Add Creditor Invoice',
+ 'Add Warehouse' => '',
+ 'Address' => '',
+ 'Administration' => 'Administration',
+ 'Administrator' => 'Administrator',
+ 'After Deduction' => '',
+ 'All' => '',
+ 'All Accounts' => '',
+ 'All Datasets up to date!' => 'All Datasets up to date!',
+ 'All Items' => '',
+ 'Allowances' => '',
+ 'Amount' => '',
+ 'Amount Due' => '',
+ 'Amount missing!' => '',
+ 'Apr' => '',
+ 'April' => '',
+ 'Are you sure you want to delete Invoice Number' => '',
+ 'Are you sure you want to delete Order Number' => '',
+ 'Are you sure you want to delete Quotation Number' => '',
+ 'Are you sure you want to delete Timecard for' => '',
+ 'Are you sure you want to delete Transaction' => '',
+ 'Are you sure you want to remove the marked entries from the queue?' => '',
+ 'Assemblies' => '',
+ 'Assemblies restocked!' => '',
+ 'Assembly' => '',
+ 'Assembly stocked!' => '',
+ 'Asset' => '',
+ 'Attachment' => '',
+ 'Audit Control' => '',
+ 'Audit trail disabled' => '',
+ 'Audit trail enabled' => '',
+ 'Audit trail removed up to' => '',
+ 'Aug' => '',
+ 'August' => '',
+ 'Average Cost' => '',
+ 'Avg Cost' => '',
+ 'BIC' => '',
+ 'BOM' => '',
+ 'Backup' => '',
+ 'Backup sent to' => '',
+ 'Balance' => '',
+ 'Balance Sheet' => '',
+ 'Based on' => '',
+ 'Bcc' => '',
+ 'Before Deduction' => '',
+ 'Beginning Balance' => '',
+ 'Below' => '',
+ 'Billing Address' => '',
+ 'Bin' => '',
+ 'Bin List' => '',
+ 'Bin Lists' => '',
+ 'Books are open' => '',
+ 'Break' => '',
+ 'Business' => '',
+ 'Business Number' => '',
+ 'Business deleted!' => '',
+ 'Business saved!' => '',
+ 'C' => '',
+ 'COGS' => '',
+ 'COGS account does not exist!' => '',
+ 'Cannot add timecard for a completed job!' => '',
+ 'Cannot change timecard for a completed job!' => '',
+ 'Cannot create Assembly' => '',
+ 'Cannot create Labor' => '',
+ 'Cannot create Lock!' => 'Cannot create Lock!',
+ 'Cannot create Part' => '',
+ 'Cannot create Service' => '',
+ 'Cannot delete Timecard!' => '',
+ 'Cannot delete account!' => '',
+ 'Cannot delete customer!' => 'Cannot delete debtor!',
+ 'Cannot delete default account!' => '',
+ 'Cannot delete invoice!' => '',
+ 'Cannot delete item!' => '',
+ 'Cannot delete order!' => '',
+ 'Cannot delete quotation!' => '',
+ 'Cannot delete transaction!' => '',
+ 'Cannot delete vendor!' => 'Cannot delete creditor',
+ 'Cannot post Payment!' => '',
+ 'Cannot post Receipt!' => '',
+ 'Cannot post invoice for a closed period!' => '',
+ 'Cannot post invoice!' => '',
+ 'Cannot post payment for a closed period!' => '',
+ 'Cannot post transaction for a closed period!' => '',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => '',
+ 'Cannot post transaction!' => '',
+ 'Cannot remove files!' => '',
+ 'Cannot save account!' => '',
+ 'Cannot save defaults!' => '',
+ 'Cannot save order!' => '',
+ 'Cannot save preferences!' => '',
+ 'Cannot save quotation!' => '',
+ 'Cannot save timecard for a closed period!' => '',
+ 'Cannot save timecard!' => '',
+ 'Cannot set account for more than one of AR, AP or IC' => '',
+ 'Cannot set multiple options for' => '',
+ 'Cannot set multiple options for Item' => '',
+ 'Cannot stock Assembly!' => '',
+ 'Cannot stock assemblies!' => '',
+ 'Cash' => '',
+ 'Cc' => '',
+ 'Change' => '',
+ 'Change Admin Password' => 'Change Admin Password',
+ 'Change Password' => 'Change Password',
+ 'Charge' => '',
+ 'Chart of Accounts' => '',
+ 'Check' => 'Cheque',
+ 'Check Inventory' => '',
+ 'Checks' => 'Cheques',
+ 'City' => '',
+ 'Cleared' => '',
+ 'Click on login name to edit!' => 'Click on login name to edit!',
+ 'Clocked' => '',
+ 'Close Books up to' => '',
+ 'Closed' => '',
+ 'Code' => '',
+ 'Code missing!' => '',
+ 'Company' => '',
+ 'Company Name' => '',
+ 'Compare to' => '',
+ 'Completed' => '',
+ 'Components' => '',
+ 'Confirm' => '',
+ 'Confirm!' => '',
+ 'Connect to' => 'Connect to',
+ 'Contact' => '',
+ 'Continue' => '',
+ 'Contra' => '',
+ 'Copies' => '',
+ 'Copy to COA' => '',
+ 'Cost' => '',
+ 'Cost Center' => '',
+ 'Could not save pricelist!' => '',
+ 'Could not save!' => '',
+ 'Could not transfer Inventory!' => '',
+ 'Country' => '',
+ 'Create Chart of Accounts' => 'Create Chart of Accounts',
+ 'Create Dataset' => 'Create Dataset',
+ 'Credit' => '',
+ 'Credit Limit' => '',
+ 'Curr' => '',
+ 'Currency' => '',
+ 'Current' => '',
+ 'Current Earnings' => '',
+ 'Customer' => 'Debtor',
+ 'Customer History' => '',
+ 'Customer Number' => 'Debtor Number',
+ 'Customer deleted!' => 'Debtor deleted!',
+ 'Customer missing!' => 'Debtor missing!',
+ 'Customer not on file!' => 'Debtor not on file!',
+ 'Customer saved!' => 'Debtor saved!',
+ 'Customers' => 'Debtors',
+ 'DBI not installed!' => 'DBI not installed!',
+ 'DOB' => '',
+ 'Database' => 'Database',
+ 'Database Administration' => 'Database Administration',
+ 'Database Driver not checked!' => 'Database Driver not checked!',
+ 'Database Host' => '',
+ 'Database User missing!' => 'Database User missing!',
+ 'Dataset' => '',
+ 'Dataset is newer than version!' => '',
+ 'Dataset missing!' => 'Dataset missing!',
+ 'Dataset updated!' => 'Dataset updated!',
+ 'Date' => '',
+ 'Date Format' => '',
+ 'Date Paid' => '',
+ 'Date Received' => '',
+ 'Date missing!' => '',
+ 'Date received missing!' => '',
+ 'Date worked' => '',
+ 'Day' => '',
+ 'Day(s)' => '',
+ 'Days' => '',
+ 'Debit' => '',
+ 'Dec' => '',
+ 'December' => '',
+ 'Decimalplaces' => '',
+ 'Decrease' => '',
+ 'Deduct after' => '',
+ 'Deduction deleted!' => '',
+ 'Deduction saved!' => '',
+ 'Deductions' => '',
+ 'Default Template' => '',
+ 'Defaults' => '',
+ 'Defaults saved!' => '',
+ 'Delete' => '',
+ 'Delete Account' => '',
+ 'Delete Dataset' => 'Delete Dataset',
+ 'Delete Schedule' => '',
+ 'Deleting a language will also delete the templates for the language' => '',
+ 'Delivery Date' => '',
+ 'Department' => '',
+ 'Department deleted!' => '',
+ 'Department saved!' => '',
+ 'Departments' => '',
+ 'Deposit' => '',
+ 'Description' => '',
+ 'Description Translations' => '',
+ 'Description missing!' => '',
+ 'Detail' => '',
+ 'Difference' => '',
+ 'Directory' => 'Directory',
+ 'Discount' => '',
+ 'Done' => '',
+ 'Drawing' => '',
+ 'Driver' => 'Driver',
+ 'Dropdown Limit' => '',
+ 'Due Date' => '',
+ 'Due Date missing!' => '',
+ 'E-mail' => '',
+ 'E-mail Statement to' => '',
+ 'E-mail address missing!' => '',
+ 'E-mail message' => '',
+ 'E-mailed' => '',
+ 'Edit' => '',
+ 'Edit AP Transaction' => '',
+ 'Edit AR Transaction' => '',
+ 'Edit Account' => '',
+ 'Edit Assembly' => '',
+ 'Edit Business' => '',
+ 'Edit Cash Transfer Transaction' => '',
+ 'Edit Customer' => 'Edit Debtor',
+ 'Edit Deduction' => '',
+ 'Edit Department' => '',
+ 'Edit Description Translations' => '',
+ 'Edit Employee' => '',
+ 'Edit GIFI' => '',
+ 'Edit General Ledger Transaction' => '',
+ 'Edit Group' => '',
+ 'Edit Job' => '',
+ 'Edit Labor/Overhead' => '',
+ 'Edit Language' => '',
+ 'Edit POS Invoice' => '',
+ 'Edit Part' => '',
+ 'Edit Preferences for' => '',
+ 'Edit Pricegroup' => '',
+ 'Edit Project' => '',
+ 'Edit Purchase Order' => '',
+ 'Edit Quotation' => '',
+ 'Edit Request for Quotation' => '',
+ 'Edit SIC' => '',
+ 'Edit Sales Invoice' => '',
+ 'Edit Sales Order' => '',
+ 'Edit Service' => '',
+ 'Edit Template' => '',
+ 'Edit Timecard' => '',
+ 'Edit User' => 'Edit User',
+ 'Edit Vendor' => 'Edit Creditor',
+ 'Edit Vendor Invoice' => 'Edit Creditor Invoice',
+ 'Edit Warehouse' => '',
+ 'Employee' => '',
+ 'Employee Name' => '',
+ 'Employee Number' => '',
+ 'Employee deleted!' => '',
+ 'Employee pays' => '',
+ 'Employee saved!' => '',
+ 'Employees' => '',
+ 'Employer' => '',
+ 'Employer pays' => '',
+ 'Enddate' => '',
+ 'Ends' => '',
+ 'Enforce transaction reversal for all dates' => '',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => '',
+ 'Equity' => '',
+ 'Every' => '',
+ 'Excempt age <' => '',
+ 'Exch' => '',
+ 'Exchange Rate' => '',
+ 'Exchange rate for payment missing!' => '',
+ 'Exchange rate missing!' => '',
+ 'Existing Datasets' => 'Existing Datasets',
+ 'Expense' => '',
+ 'Expense account does not exist!' => '',
+ 'Expense/Asset' => '',
+ 'Extended' => '',
+ 'FX' => '',
+ 'Failed to save order!' => '',
+ 'Fax' => '',
+ 'Feb' => '',
+ 'February' => '',
+ 'For' => '',
+ 'Foreign Exchange Gain' => '',
+ 'Foreign Exchange Loss' => '',
+ 'Friday' => '',
+ 'From' => '',
+ 'From Warehouse' => '',
+ 'GIFI' => '',
+ 'GIFI deleted!' => '',
+ 'GIFI missing!' => '',
+ 'GIFI saved!' => '',
+ 'GL' => '',
+ 'GL Reference Number' => '',
+ 'GL Transaction' => '',
+ 'General Ledger' => '',
+ 'Generate' => '',
+ 'Generate Orders' => '',
+ 'Generate Purchase Orders' => '',
+ 'Generate Purchase Orders from Sales Order' => '',
+ 'Generate Sales Order' => '',
+ 'Generate Sales Order from Purchase Orders' => '',
+ 'Generate Sales Orders' => '',
+ 'Goods & Services' => '',
+ 'Group' => '',
+ 'Group Items' => '',
+ 'Group Translations' => '',
+ 'Group deleted!' => '',
+ 'Group missing!' => '',
+ 'Group saved!' => '',
+ 'Groups' => '',
+ 'HR' => '',
+ 'HTML Templates' => '',
+ 'Heading' => '',
+ 'History' => '',
+ 'Home Phone' => '',
+ 'Host' => 'Host',
+ 'Hostname missing!' => 'Hostname missing!',
+ 'IBAN' => '',
+ 'ID' => '',
+ 'Image' => '',
+ 'In-line' => '',
+ 'Inactive' => '',
+ 'Include Exchange Rate Difference' => '',
+ 'Include Payment' => '',
+ 'Include in Report' => '',
+ 'Include in drop-down menus' => '',
+ 'Income' => '',
+ 'Income Statement' => '',
+ 'Income account does not exist!' => '',
+ 'Incorrect Dataset version!' => '',
+ 'Increase' => '',
+ 'Individual Items' => '',
+ 'Internal Notes' => '',
+ 'Inventory' => '',
+ 'Inventory account does not exist!' => '',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => '',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => '',
+ 'Inventory saved!' => '',
+ 'Inventory transferred!' => '',
+ 'Invoice' => '',
+ 'Invoice Date' => '',
+ 'Invoice Date missing!' => '',
+ 'Invoice Number' => '',
+ 'Invoice Number missing!' => '',
+ 'Invoice deleted!' => '',
+ 'Invoices' => '',
+ 'Is this a summary account to record' => '',
+ 'Item already on pricelist!' => '',
+ 'Item deleted!' => '',
+ 'Item not on file!' => '',
+ 'Items' => '',
+ 'Jan' => '',
+ 'January' => '',
+ 'Job' => '',
+ 'Job Name' => '',
+ 'Job Number' => '',
+ 'Job Number missing!' => '',
+ 'Job deleted!' => '',
+ 'Job saved!' => '',
+ 'Jobs' => '',
+ 'Jul' => '',
+ 'July' => '',
+ 'Jun' => '',
+ 'June' => '',
+ 'LaTeX Templates' => '',
+ 'Labor Code' => '',
+ 'Labor/Overhead' => '',
+ 'Language' => '',
+ 'Language deleted!' => '',
+ 'Language saved!' => '',
+ 'Languages' => '',
+ 'Languages not defined!' => '',
+ 'Last Cost' => '',
+ 'Last Numbers & Default Accounts' => '',
+ 'Lead' => '',
+ 'Leadtime' => '',
+ 'Leave host and port field empty unless you want to make a remote connection.' => 'Leave host and port field empty unless you want to make a remote connection.',
+ 'Liability' => '',
+ 'Licensed to' => '',
+ 'Line Total' => '',
+ 'Link' => '',
+ 'Link Accounts' => '',
+ 'List' => '',
+ 'List Accounts' => '',
+ 'List Businesses' => '',
+ 'List Departments' => '',
+ 'List GIFI' => '',
+ 'List Languages' => '',
+ 'List Price' => '',
+ 'List Projects' => '',
+ 'List SIC' => '',
+ 'List Transactions' => '',
+ 'List Warehouses' => '',
+ 'Lock System' => 'Lock System',
+ 'Lockfile created!' => 'Lockfile created!',
+ 'Lockfile removed!' => 'Lockfile removed!',
+ 'Login' => '',
+ 'Login name missing!' => 'Login name missing!',
+ 'Logout' => '',
+ 'Make' => '',
+ 'Manager' => '',
+ 'Mar' => '',
+ 'March' => '',
+ 'Marked entries printed!' => '',
+ 'Markup' => '',
+ 'Maximum' => '',
+ 'May' => '',
+ 'May ' => '',
+ 'Memo' => '',
+ 'Menu Width' => '',
+ 'Message' => '',
+ 'Method' => '',
+ 'Microfiche' => '',
+ 'Model' => '',
+ 'Monday' => '',
+ 'Month' => '',
+ 'Month(s)' => '',
+ 'Months' => '',
+ 'Multibyte Encoding' => 'Multibyte Encoding',
+ 'N/A' => '',
+ 'Name' => '',
+ 'Name missing!' => '',
+ 'New Templates' => 'New Templates',
+ 'New Window' => '',
+ 'Next' => '',
+ 'Next Date' => '',
+ 'Next Number' => '',
+ 'No' => '',
+ 'No Database Drivers available!' => 'No Database Drivers available!',
+ 'No Dataset selected!' => 'No Dataset selected!',
+ 'No Employees on file!' => '',
+ 'No Labor codes on file!' => '',
+ 'No email address for' => '',
+ 'No open Jobs!' => '',
+ 'No open Projects!' => '',
+ 'No.' => '',
+ 'Non-taxable' => '',
+ 'Non-taxable Purchases' => '',
+ 'Non-taxable Sales' => '',
+ 'Non-tracking Items' => '',
+ 'Notes' => '',
+ 'Nothing entered!' => '',
+ 'Nothing selected!' => '',
+ 'Nothing to delete!' => 'Nothing to delete!',
+ 'Nothing to print!' => '',
+ 'Nothing to transfer!' => '',
+ 'Nov' => '',
+ 'November' => '',
+ 'Number' => '',
+ 'Number Format' => '',
+ 'Number missing in Row' => '',
+ 'O' => '',
+ 'OH' => '',
+ 'Obsolete' => '',
+ 'Oct' => '',
+ 'October' => '',
+ 'On Hand' => '',
+ 'Open' => '',
+ 'Oracle Database Administration' => 'Oracle Database Administration',
+ 'Order' => '',
+ 'Order Date' => '',
+ 'Order Date missing!' => '',
+ 'Order Entry' => '',
+ 'Order Number' => '',
+ 'Order Number missing!' => '',
+ 'Order deleted!' => '',
+ 'Order generation failed!' => '',
+ 'Order saved!' => '',
+ 'Orders generated!' => '',
+ 'Orphaned' => '',
+ 'Out of balance transaction!' => '',
+ 'Out of balance!' => '',
+ 'Outstanding' => '',
+ 'PDF' => '',
+ 'PO Number' => '',
+ 'POS' => '',
+ 'POS Invoice' => '',
+ 'Packing List' => '',
+ 'Packing List Date missing!' => '',
+ 'Packing List Number missing!' => '',
+ 'Packing Lists' => '',
+ 'Paid' => '',
+ 'Part' => '',
+ 'Part Number' => '',
+ 'Partnumber' => '',
+ 'Parts' => '',
+ 'Password' => '',
+ 'Password changed!' => 'Password changed!',
+ 'Password does not match!' => '',
+ 'Passwords do not match!' => '',
+ 'Payables' => '',
+ 'Payment' => '',
+ 'Payment date missing!' => '',
+ 'Payment posted!' => '',
+ 'Payments' => '',
+ 'Payments posted!' => '',
+ 'Payroll Deduction' => '',
+ 'Period' => '',
+ 'Pg Database Administration' => 'Pg Database Administration',
+ 'PgPP Database Administration' => 'PgPP Database Administration',
+ 'Phone' => '',
+ 'Pick List' => '',
+ 'Pick Lists' => '',
+ 'Port' => 'Port',
+ 'Port missing!' => 'Port missing!',
+ 'Pos' => '',
+ 'Post' => '',
+ 'Post as new' => '',
+ 'Posted!' => '',
+ 'Posting' => '',
+ 'Posting failed!' => '',
+ 'Postscript' => '',
+ 'Preferences' => '',
+ 'Preferences saved!' => '',
+ 'Prepayment' => '',
+ 'Price' => '',
+ 'Pricegroup' => '',
+ 'Pricegroup deleted!' => '',
+ 'Pricegroup missing!' => '',
+ 'Pricegroup saved!' => '',
+ 'Pricegroups' => '',
+ 'Pricelist' => '',
+ 'Print' => '',
+ 'Print and Post' => '',
+ 'Print and Post as new' => '',
+ 'Print and Save' => '',
+ 'Print and Save as new' => '',
+ 'Print and post as new' => '',
+ 'Print and save as new' => '',
+ 'Printed' => '',
+ 'Printer' => '',
+ 'Printing' => '',
+ 'Printing ... ' => '',
+ 'Process Transactions' => '',
+ 'Production' => '',
+ 'Profit Center' => '',
+ 'Project' => '',
+ 'Project Description Translations' => '',
+ 'Project Name' => '',
+ 'Project Number' => '',
+ 'Project Number missing!' => '',
+ 'Project Transactions' => '',
+ 'Project deleted!' => '',
+ 'Project not on file!' => '',
+ 'Project saved!' => '',
+ 'Project/Job Name' => '',
+ 'Project/Job Number' => '',
+ 'Projects' => '',
+ 'Purchase Order' => '',
+ 'Purchase Order Number' => '',
+ 'Purchase Orders' => '',
+ 'Qty' => '',
+ 'Quantity exceeds available units to stock!' => '',
+ 'Quarter' => '',
+ 'Quotation' => '',
+ 'Quotation ' => '',
+ 'Quotation Date' => '',
+ 'Quotation Date missing!' => '',
+ 'Quotation Number' => '',
+ 'Quotation Number missing!' => '',
+ 'Quotation deleted!' => '',
+ 'Quotations' => '',
+ 'R' => '',
+ 'RFQ' => '',
+ 'RFQ ' => '',
+ 'RFQ Number' => '',
+ 'RFQs' => '',
+ 'ROP' => '',
+ 'Rate' => '',
+ 'Rate missing!' => '',
+ 'Recd' => '',
+ 'Receipt' => '',
+ 'Receipt posted!' => '',
+ 'Receipts' => '',
+ 'Receivables' => '',
+ 'Receive' => '',
+ 'Receive Merchandise' => '',
+ 'Reconciliation' => '',
+ 'Reconciliation Report' => '',
+ 'Record in' => '',
+ 'Recurring Transaction' => '',
+ 'Recurring Transactions' => '',
+ 'Reference' => '',
+ 'Remaining' => '',
+ 'Remove' => '',
+ 'Remove Audit trail up to' => '',
+ 'Removed spoolfiles!' => '',
+ 'Removing marked entries from queue ...' => '',
+ 'Repeat' => '',
+ 'Report for' => '',
+ 'Reports' => '',
+ 'Req' => '',
+ 'Request for Quotation' => '',
+ 'Request for Quotations' => '',
+ 'Required by' => '',
+ 'Retained Earnings' => '',
+ 'Role' => '',
+ 'S' => '',
+ 'SIC' => '',
+ 'SIC deleted!' => '',
+ 'SIC saved!' => '',
+ 'SKU' => '',
+ 'SSN' => '',
+ 'Sale' => '',
+ 'Sales' => '',
+ 'Sales Invoice' => '',
+ 'Sales Invoice ' => '',
+ 'Sales Invoice.' => '',
+ 'Sales Invoice/AR Transaction Number' => '',
+ 'Sales Invoices' => '',
+ 'Sales Order' => '',
+ 'Sales Order Number' => '',
+ 'Sales Orders' => '',
+ 'Sales Quotation Number' => '',
+ 'Salesperson' => '',
+ 'Saturday' => '',
+ 'Save' => '',
+ 'Save Pricelist' => '',
+ 'Save Schedule' => '',
+ 'Save as new' => '',
+ 'Save to File' => '',
+ 'Saving' => '',
+ 'Schedule' => '',
+ 'Scheduled' => '',
+ 'Screen' => '',
+ 'Search' => '',
+ 'Select' => '',
+ 'Select Customer' => '',
+ 'Select Vendor' => '',
+ 'Select a Printer!' => '',
+ 'Select a printer!' => '',
+ 'Select all' => '',
+ 'Select from one of the items below' => '',
+ 'Select from one of the names below' => '',
+ 'Select from one of the projects below' => '',
+ 'Select items' => '',
+ 'Select payment' => '',
+ 'Select postscript or PDF!' => '',
+ 'Select txt, postscript or PDF!' => '',
+ 'Sell' => '',
+ 'Sell Price' => '',
+ 'Send by E-Mail' => '',
+ 'Sending' => '',
+ 'Sep' => '',
+ 'September' => '',
+ 'Serial No.' => '',
+ 'Serial Number' => '',
+ 'Service' => '',
+ 'Service Code' => '',
+ 'Service/Labor Code' => '',
+ 'Services' => '',
+ 'Session Timeout' => '',
+ 'Session expired!' => '',
+ 'Setup Templates' => 'Setup Templates',
+ 'Ship' => '',
+ 'Ship Merchandise' => '',
+ 'Ship to' => '',
+ 'Ship via' => '',
+ 'Shipping' => '',
+ 'Shipping Address' => '',
+ 'Shipping Date' => '',
+ 'Shipping Date missing!' => '',
+ 'Shipping Point' => '',
+ 'Short' => '',
+ 'Signature' => '',
+ 'Source' => '',
+ 'Spoolfile' => '',
+ 'Standard' => '',
+ 'Standard Industrial Codes' => '',
+ 'Startdate' => '',
+ 'State' => '',
+ 'State/Province' => '',
+ 'Statement' => '',
+ 'Statement Balance' => '',
+ 'Statement sent to' => '',
+ 'Statements sent to printer!' => '',
+ 'Stock' => '',
+ 'Stock Assembly' => '',
+ 'Stocking Date' => '',
+ 'Stylesheet' => '',
+ 'Sub-contract GIFI' => '',
+ 'Subject' => '',
+ 'Subtotal' => '',
+ 'Summary' => '',
+ 'Sunday' => '',
+ 'Supervisor' => '',
+ 'System' => '',
+ 'System Defaults' => '',
+ 'Tax' => '',
+ 'Tax Accounts' => '',
+ 'Tax Included' => '',
+ 'Tax Number' => '',
+ 'Tax Number / SSN' => '',
+ 'Tax collected' => '',
+ 'Tax paid' => '',
+ 'Taxable' => '',
+ 'Template saved!' => '',
+ 'Templates' => 'Templates',
+ 'Terms' => '',
+ 'Text' => '',
+ 'Text Templates' => '',
+ 'The following Datasets are not in use and can be deleted' => 'The following Datasets are not in use and can be deleted',
+ 'The following Datasets need to be updated' => 'The following Datasets need to be updated',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!',
+ 'Thursday' => '',
+ 'Till' => '',
+ 'Time In' => '',
+ 'Time Out' => '',
+ 'Timecard' => '',
+ 'Timecard deleted!' => '',
+ 'Timecard saved!' => '',
+ 'Timecards' => '',
+ 'Times' => '',
+ 'To' => '',
+ 'To Warehouse' => '',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.',
+ 'Top Level' => '',
+ 'Total' => '',
+ 'Tracking Items' => '',
+ 'Trade Discount' => '',
+ 'Transaction' => '',
+ 'Transaction Date missing!' => '',
+ 'Transaction Dates' => '',
+ 'Transaction deleted!' => '',
+ 'Transaction posted!' => '',
+ 'Transaction reversal enforced for all dates' => '',
+ 'Transaction reversal enforced up to' => '',
+ 'Transactions' => '',
+ 'Transfer' => '',
+ 'Transfer Inventory' => '',
+ 'Transfer from' => '',
+ 'Transfer to' => '',
+ 'Translation' => '',
+ 'Translation deleted!' => '',
+ 'Translation not on file!' => '',
+ 'Translations' => '',
+ 'Translations saved!' => '',
+ 'Trial Balance' => '',
+ 'Tuesday' => '',
+ 'Type of Business' => '',
+ 'Unit' => '',
+ 'Unit of measure' => '',
+ 'Unlock System' => 'Unlock System',
+ 'Update' => '',
+ 'Update Dataset' => 'Update Dataset',
+ 'Updated' => '',
+ 'Upgrading to Version' => '',
+ 'Use Templates' => 'Use Templates',
+ 'User' => '',
+ 'User deleted!' => 'User deleted!',
+ 'User saved!' => 'User saved!',
+ 'Valid until' => '',
+ 'Vendor' => 'Creditor',
+ 'Vendor History' => '',
+ 'Vendor Invoice' => 'Creditor Invoice',
+ 'Vendor Invoice ' => '',
+ 'Vendor Invoice.' => '',
+ 'Vendor Invoice/AP Transaction Number' => '',
+ 'Vendor Invoices' => '',
+ 'Vendor Number' => 'Creditor Number',
+ 'Vendor deleted!' => 'Creditor deleted!',
+ 'Vendor missing!' => 'Creditor missing!',
+ 'Vendor not on file!' => 'Creditor not on file!',
+ 'Vendor saved!' => 'Creditor saved!',
+ 'Vendors' => 'Creditors',
+ 'Version' => '',
+ 'Warehouse' => '',
+ 'Warehouse deleted!' => '',
+ 'Warehouse saved!' => '',
+ 'Warehouses' => '',
+ 'Warning!' => '',
+ 'Wednesday' => '',
+ 'Week' => '',
+ 'Week(s)' => '',
+ 'Weeks' => '',
+ 'Weight' => '',
+ 'Weight Unit' => '',
+ 'What type of item is this?' => '',
+ 'Work Order' => '',
+ 'Work Orders' => '',
+ 'Work Phone' => '',
+ 'Year' => '',
+ 'Year(s)' => '',
+ 'Yearend' => '',
+ 'Yearend date missing!' => '',
+ 'Yearend posted!' => '',
+ 'Yearend posting failed!' => '',
+ 'Years' => '',
+ 'Yes' => '',
+ 'You are logged out' => '',
+ 'You are posting an existing transaction!' => '',
+ 'You are printing and posting an existing transaction!' => '',
+ 'You are printing and saving an existing order' => '',
+ 'You are printing and saving an existing quotation' => '',
+ 'You are printing and saving an existing transaction!' => '',
+ 'You are saving an existing order' => '',
+ 'You are saving an existing quotation' => '',
+ 'You are saving an existing transaction!' => '',
+ 'You did not enter a name!' => '',
+ 'You must enter a host and port for local and remote connections!' => 'You must enter a host and port for local and remote connections!',
+ 'Zip/Postal Code' => '',
+ 'account cannot be set to any other type of account' => '',
+ 'as at' => '',
+ 'days' => '',
+ 'does not exist' => 'does not exist',
+ 'done' => '',
+ 'ea' => '',
+ 'failed' => '',
+ 'for' => '',
+ 'for Period' => '',
+ 'is already a member!' => 'is already a member!',
+ 'localhost' => '',
+ 'locked!' => '',
+ 'partsgroup' => '',
+ 'posted!' => '',
+ 'sent' => '',
+ 'successfully created!' => 'successfully created!',
+ 'successfully deleted!' => 'successfully deleted!',
+ 'time(s)' => '',
+ 'unexpected error!' => '',
+ 'website' => 'website',
+};
+
+1;
diff --git a/locale/en_GB/am b/locale/en_GB/am
new file mode 100755
index 00000000..c7f77261
--- /dev/null
+++ b/locale/en_GB/am
@@ -0,0 +1,95 @@
+$self{texts} = {
+ 'AP' => 'Purchases',
+ 'AR' => 'Sales',
+ 'Customer Number' => 'Debtor Number',
+ 'Vendor Invoice' => 'Creditor Invoice',
+ 'Vendor Number' => 'Creditor Number',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+};
+
+1;
+
diff --git a/locale/en_GB/ap b/locale/en_GB/ap
new file mode 100755
index 00000000..3d10668b
--- /dev/null
+++ b/locale/en_GB/ap
@@ -0,0 +1,70 @@
+$self{texts} = {
+ 'AP Transaction' => 'Purchase Transaction',
+ 'AP Transactions' => 'Purchase Transactions',
+ 'AR Transaction' => 'Sales Transaction',
+ 'AR Transactions' => 'Sales Transactions',
+ 'Check' => 'Cheque',
+ 'Customer' => 'Debtor',
+ 'Customer missing!' => 'Debtor missing!',
+ 'Customer not on file!' => 'Debtor not on file!',
+ 'Vendor' => 'Creditor',
+ 'Vendor missing!' => 'Creditor missing!',
+ 'Vendor not on file!' => 'Creditor not on file!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'purchase_transaction' => 'ap_transaction',
+ 'sales_transaction' => 'ar_transaction',
+};
+
+1;
+
diff --git a/locale/en_GB/ar b/locale/en_GB/ar
new file mode 100755
index 00000000..3d10668b
--- /dev/null
+++ b/locale/en_GB/ar
@@ -0,0 +1,70 @@
+$self{texts} = {
+ 'AP Transaction' => 'Purchase Transaction',
+ 'AP Transactions' => 'Purchase Transactions',
+ 'AR Transaction' => 'Sales Transaction',
+ 'AR Transactions' => 'Sales Transactions',
+ 'Check' => 'Cheque',
+ 'Customer' => 'Debtor',
+ 'Customer missing!' => 'Debtor missing!',
+ 'Customer not on file!' => 'Debtor not on file!',
+ 'Vendor' => 'Creditor',
+ 'Vendor missing!' => 'Creditor missing!',
+ 'Vendor not on file!' => 'Creditor not on file!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'purchase_transaction' => 'ap_transaction',
+ 'sales_transaction' => 'ar_transaction',
+};
+
+1;
+
diff --git a/locale/en_GB/arap b/locale/en_GB/arap
new file mode 100755
index 00000000..3c777934
--- /dev/null
+++ b/locale/en_GB/arap
@@ -0,0 +1,31 @@
+$self{texts} = {
+ 'Customer not on file!' => 'Debtor not on file!',
+ 'Vendor not on file!' => 'Creditor not on file!',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+};
+
+1;
+
diff --git a/locale/en_GB/arapprn b/locale/en_GB/arapprn
new file mode 100755
index 00000000..a2d2335a
--- /dev/null
+++ b/locale/en_GB/arapprn
@@ -0,0 +1,18 @@
+$self{texts} = {
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+};
+
+1;
+
diff --git a/locale/en_GB/bp b/locale/en_GB/bp
new file mode 100755
index 00000000..9f00bd4e
--- /dev/null
+++ b/locale/en_GB/bp
@@ -0,0 +1,22 @@
+$self{texts} = {
+ 'Customer' => 'Debtor',
+ 'Vendor' => 'Creditor',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+};
+
+1;
+
diff --git a/locale/en_GB/ca b/locale/en_GB/ca
new file mode 100755
index 00000000..f7985928
--- /dev/null
+++ b/locale/en_GB/ca
@@ -0,0 +1,12 @@
+$self{texts} = {
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/en_GB/cp b/locale/en_GB/cp
new file mode 100755
index 00000000..4d49a4c3
--- /dev/null
+++ b/locale/en_GB/cp
@@ -0,0 +1,63 @@
+$self{texts} = {
+ 'AP' => 'Purchases',
+ 'AR' => 'Sales',
+ 'Customer' => 'Debtor',
+ 'Customer not on file!' => 'Debtor not on file!',
+ 'Vendor' => 'Creditor',
+ 'Vendor not on file!' => 'Creditor not on file!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+};
+
+1;
+
diff --git a/locale/en_GB/ct b/locale/en_GB/ct
new file mode 100755
index 00000000..c15da8ae
--- /dev/null
+++ b/locale/en_GB/ct
@@ -0,0 +1,75 @@
+$self{texts} = {
+ 'AP Transaction' => 'Purchase Transaction',
+ 'AP Transactions' => 'Purchase Transactions',
+ 'AR Transaction' => 'Sales Transaction',
+ 'AR Transactions' => 'Sales Transactions',
+ 'Add Customer' => 'Add Debtor',
+ 'Add Vendor' => 'Add Creditor',
+ 'Cannot delete customer!' => 'Cannot delete debtor!',
+ 'Cannot delete vendor!' => 'Cannot delete creditor',
+ 'Customer Number' => 'Debtor Number',
+ 'Customer deleted!' => 'Debtor deleted!',
+ 'Customer saved!' => 'Debtor saved!',
+ 'Customers' => 'Debtors',
+ 'Edit Customer' => 'Edit Debtor',
+ 'Edit Vendor' => 'Edit Creditor',
+ 'Vendor Invoice' => 'Creditor Invoice',
+ 'Vendor Number' => 'Creditor Number',
+ 'Vendor deleted!' => 'Creditor deleted!',
+ 'Vendor saved!' => 'Creditor saved!',
+ 'Vendors' => 'Creditors',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'purchase_transaction' => 'ap_transaction',
+ 'sales_transaction' => 'ar_transaction',
+ 'add_debtor' => 'add_customer',
+ 'add_creditor' => 'add_vendor',
+ 'creditor_invoice' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/en_GB/gl b/locale/en_GB/gl
new file mode 100755
index 00000000..610b3021
--- /dev/null
+++ b/locale/en_GB/gl
@@ -0,0 +1,54 @@
+$self{texts} = {
+ 'AP Transaction' => 'Purchase Transaction',
+ 'AR Transaction' => 'Sales Transaction',
+ 'Customer not on file!' => 'Debtor not on file!',
+ 'Vendor not on file!' => 'Creditor not on file!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'purchase_transaction' => 'ap_transaction',
+ 'sales_transaction' => 'ar_transaction',
+};
+
+1;
+
diff --git a/locale/en_GB/hr b/locale/en_GB/hr
new file mode 100755
index 00000000..c7860cb6
--- /dev/null
+++ b/locale/en_GB/hr
@@ -0,0 +1,40 @@
+$self{texts} = {
+ 'AP' => 'Purchases',
+ 'Administrator' => 'Administrator',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+};
+
+1;
+
diff --git a/locale/en_GB/ic b/locale/en_GB/ic
new file mode 100755
index 00000000..a367f1af
--- /dev/null
+++ b/locale/en_GB/ic
@@ -0,0 +1,73 @@
+$self{texts} = {
+ 'Customer' => 'Debtor',
+ 'Customer Number' => 'Debtor Number',
+ 'Customer not on file!' => 'Debtor not on file!',
+ 'Vendor' => 'Creditor',
+ 'Vendor Invoice' => 'Creditor Invoice',
+ 'Vendor Number' => 'Creditor Number',
+ 'Vendor not on file!' => 'Creditor not on file!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+};
+
+1;
+
diff --git a/locale/en_GB/io b/locale/en_GB/io
new file mode 100755
index 00000000..484f553e
--- /dev/null
+++ b/locale/en_GB/io
@@ -0,0 +1,32 @@
+$self{texts} = {
+ 'Customer Number' => 'Debtor Number',
+ 'Vendor Number' => 'Creditor Number',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+};
+
+1;
+
diff --git a/locale/en_GB/ir b/locale/en_GB/ir
new file mode 100755
index 00000000..2f2b01c3
--- /dev/null
+++ b/locale/en_GB/ir
@@ -0,0 +1,74 @@
+$self{texts} = {
+ 'Add Vendor Invoice' => 'Add Creditor Invoice',
+ 'Customer Number' => 'Debtor Number',
+ 'Customer not on file!' => 'Debtor not on file!',
+ 'Edit Vendor Invoice' => 'Edit Creditor Invoice',
+ 'Vendor' => 'Creditor',
+ 'Vendor Number' => 'Creditor Number',
+ 'Vendor missing!' => 'Creditor missing!',
+ 'Vendor not on file!' => 'Creditor not on file!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+};
+
+1;
+
diff --git a/locale/en_GB/is b/locale/en_GB/is
new file mode 100755
index 00000000..1ddf7f5b
--- /dev/null
+++ b/locale/en_GB/is
@@ -0,0 +1,73 @@
+$self{texts} = {
+ 'Customer' => 'Debtor',
+ 'Customer Number' => 'Debtor Number',
+ 'Customer missing!' => 'Debtor missing!',
+ 'Customer not on file!' => 'Debtor not on file!',
+ 'Vendor Number' => 'Creditor Number',
+ 'Vendor not on file!' => 'Creditor not on file!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+};
+
+1;
+
diff --git a/locale/en_GB/jc b/locale/en_GB/jc
new file mode 100755
index 00000000..31503ed9
--- /dev/null
+++ b/locale/en_GB/jc
@@ -0,0 +1,44 @@
+$self{texts} = {
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+};
+
+1;
+
diff --git a/locale/en_GB/locales.pl b/locale/en_GB/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/en_GB/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/en_GB/login b/locale/en_GB/login
new file mode 100755
index 00000000..e3112e15
--- /dev/null
+++ b/locale/en_GB/login
@@ -0,0 +1,12 @@
+$self{texts} = {
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+};
+
+1;
+
diff --git a/locale/en_GB/menu b/locale/en_GB/menu
new file mode 100755
index 00000000..eb4790ed
--- /dev/null
+++ b/locale/en_GB/menu
@@ -0,0 +1,25 @@
+$self{texts} = {
+ 'AP' => 'Purchases',
+ 'AP Aging' => 'Creditor Aging',
+ 'AP Transaction' => 'Purchase Transaction',
+ 'AR' => 'Sales',
+ 'AR Aging' => 'Debtor Aging',
+ 'AR Transaction' => 'Sales Transaction',
+ 'Add Customer' => 'Add Debtor',
+ 'Add Vendor' => 'Add Creditor',
+ 'Check' => 'Cheque',
+ 'Customers' => 'Debtors',
+ 'Vendor Invoice' => 'Creditor Invoice',
+ 'Vendors' => 'Creditors',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/en_GB/oe b/locale/en_GB/oe
new file mode 100755
index 00000000..f50de91f
--- /dev/null
+++ b/locale/en_GB/oe
@@ -0,0 +1,103 @@
+$self{texts} = {
+ 'Add Vendor Invoice' => 'Add Creditor Invoice',
+ 'Customer' => 'Debtor',
+ 'Customer Number' => 'Debtor Number',
+ 'Customer missing!' => 'Debtor missing!',
+ 'Customer not on file!' => 'Debtor not on file!',
+ 'Vendor' => 'Creditor',
+ 'Vendor Invoice' => 'Creditor Invoice',
+ 'Vendor Number' => 'Creditor Number',
+ 'Vendor missing!' => 'Creditor missing!',
+ 'Vendor not on file!' => 'Creditor not on file!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'creditor_invoice' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/en_GB/pe b/locale/en_GB/pe
new file mode 100755
index 00000000..82c386d8
--- /dev/null
+++ b/locale/en_GB/pe
@@ -0,0 +1,64 @@
+$self{texts} = {
+ 'Customer' => 'Debtor',
+ 'Customer missing!' => 'Debtor missing!',
+ 'Customer not on file!' => 'Debtor not on file!',
+ 'Vendor' => 'Creditor',
+ 'Vendor not on file!' => 'Creditor not on file!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+};
+
+1;
+
diff --git a/locale/en_GB/pos b/locale/en_GB/pos
new file mode 100755
index 00000000..fe8fc05a
--- /dev/null
+++ b/locale/en_GB/pos
@@ -0,0 +1,28 @@
+$self{texts} = {
+ 'Customer' => 'Debtor',
+ 'Customer missing!' => 'Debtor missing!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/en_GB/ps b/locale/en_GB/ps
new file mode 100755
index 00000000..764daa97
--- /dev/null
+++ b/locale/en_GB/ps
@@ -0,0 +1,111 @@
+$self{texts} = {
+ 'AP Aging' => 'Creditor Aging',
+ 'AP Transaction' => 'Purchase Transaction',
+ 'AP Transactions' => 'Purchase Transactions',
+ 'AR Aging' => 'Debtor Aging',
+ 'AR Transaction' => 'Sales Transaction',
+ 'AR Transactions' => 'Sales Transactions',
+ 'Check' => 'Cheque',
+ 'Customer' => 'Debtor',
+ 'Customer Number' => 'Debtor Number',
+ 'Customer missing!' => 'Debtor missing!',
+ 'Customer not on file!' => 'Debtor not on file!',
+ 'Vendor' => 'Creditor',
+ 'Vendor Number' => 'Creditor Number',
+ 'Vendor missing!' => 'Creditor missing!',
+ 'Vendor not on file!' => 'Creditor not on file!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'purchase_transaction' => 'ap_transaction',
+ 'sales_transaction' => 'ar_transaction',
+};
+
+1;
+
diff --git a/locale/en_GB/pw b/locale/en_GB/pw
new file mode 100755
index 00000000..b18ff8cf
--- /dev/null
+++ b/locale/en_GB/pw
@@ -0,0 +1,9 @@
+$self{texts} = {
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+};
+
+1;
+
diff --git a/locale/en_GB/rc b/locale/en_GB/rc
new file mode 100755
index 00000000..9163d154
--- /dev/null
+++ b/locale/en_GB/rc
@@ -0,0 +1,20 @@
+$self{texts} = {
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+};
+
+1;
+
diff --git a/locale/en_GB/rp b/locale/en_GB/rp
new file mode 100755
index 00000000..8c84c027
--- /dev/null
+++ b/locale/en_GB/rp
@@ -0,0 +1,60 @@
+$self{texts} = {
+ 'AP Aging' => 'Creditor Aging',
+ 'AR Aging' => 'Debtor Aging',
+ 'Customer' => 'Debtor',
+ 'Customer not on file!' => 'Debtor not on file!',
+ 'Vendor' => 'Creditor',
+ 'Vendor not on file!' => 'Creditor not on file!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+};
+
+1;
+
diff --git a/locale/es/COPYING b/locale/es/COPYING
new file mode 100755
index 00000000..cf45996f
--- /dev/null
+++ b/locale/es/COPYING
@@ -0,0 +1,26 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2002
+#
+# Spanish texts:
+#
+# Author: Maria Gabriela Fong <mgfong@maga.tzo.org>
+# John Stoddart <jstypo@imagencolor.com.ve>
+# Federico Montesino Pouzols <fedemp@arrok.com>
+# Tomás Pereira <topec@percar.com>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/es/LANGUAGE b/locale/es/LANGUAGE
new file mode 100755
index 00000000..c1a0de22
--- /dev/null
+++ b/locale/es/LANGUAGE
@@ -0,0 +1 @@
+Spanish
diff --git a/locale/es/Num2text b/locale/es/Num2text
new file mode 100755
index 00000000..88ffe737
--- /dev/null
+++ b/locale/es/Num2text
@@ -0,0 +1,212 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (C) 2002
+#
+# Author: Dieter Simader
+# Email: dsimader@sql-ledger.org
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+# Language: Spanish
+# Contributors: John Christian Stoddart
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#======================================================================
+
+
+sub init {
+ my $self = shift;
+
+ %{ $self->{numbername} } =
+ (0 => 'cero',
+ 1 => 'un',
+ '1o' => 'uno',
+ 2 => 'dos',
+ 3 => 'tres',
+ 4 => 'cuatro',
+ 5 => 'cinco',
+ 6 => 'seis',
+ 7 => 'siete',
+ 8 => 'ocho',
+ 9 => 'nueve',
+ 10 => 'diez',
+ 11 => 'once',
+ '11o' => 'once',
+ 12 => 'doce',
+ 13 => 'trece',
+ 14 => 'catorce',
+ 15 => 'quince',
+ 16 => 'dieciséis',
+ 17 => 'diecisiete',
+ 18 => 'dieciocho',
+ 19 => 'diecinueve',
+ 20 => 'veinte',
+ 21 => 'veintiún',
+ '21o' => 'veintiuno',
+ 22 => 'veintidós',
+ 23 => 'veintitrés',
+ 24 => 'veinticuatro',
+ 25 => 'veinticinco',
+ 26 => 'veintiséis',
+ 27 => 'veintisiete',
+ 28 => 'veintiocho',
+ 29 => 'veintinueve',
+ 30 => 'treinta',
+ 40 => 'cuarenta',
+ 50 => 'cincuenta',
+ 60 => 'sesenta',
+ 70 => 'setenta',
+ 80 => 'ochenta',
+ 90 => 'noventa',
+ 500 => 'quinientos',
+ 700 => 'setecientos',
+ 900 => 'novecientos',
+ 10**2 => 'ciento',
+ 10**3 => 'mil',
+ 10**6 => 'millón',
+ 10**12 => 'billón',
+ );
+
+}
+
+
+sub num2text {
+ my ($self, $amount) = @_;
+
+ return $self->{numbername}{0} unless $amount;
+
+ my @textnumber = ();
+
+ # split amount into chunks of 3
+ my @num = reverse split //, abs($amount);
+ my @numblock = ();
+ my $stripun = 0;
+ my @a = ();
+ my $i;
+
+ while (@num) {
+ @a = ();
+ for (1 .. 3) {
+ push @a, shift @num;
+ }
+ push @numblock, join / /, reverse @a;
+ }
+
+ # special case for 1000
+ if ($numblock[1] eq '1' && $numblock[0] gt '000') {
+ # remove first array element from textnumber
+ $stripun = 1;
+ }
+
+ while (@numblock) {
+
+ $i = $#numblock;
+ @num = split //, $numblock[$i];
+
+ $numblock[$i] *= 1;
+
+ if ($numblock[$i] == 0) {
+ pop @numblock;
+ next;
+ }
+
+ if ($numblock[$i] > 99) {
+ if ($num[0] == 1) {
+ push @textnumber, $self->{numbername}{10**2};
+ } else {
+ # special case for 500, 700, 900
+ if (grep /$num[0]/, (5,7,9)) {
+ push @textnumber, $self->{numbername}{"${num[0]}00"};
+
+ } else {
+
+ # the one from hundreds, append cientos
+ push @textnumber, $self->{numbername}{$num[0]}.$self->{numbername}{10**2}.'s';
+
+ }
+ }
+
+ # reduce numblock
+ $numblock[$i] -= $num[0] * 100;
+ }
+
+ if ($numblock[$i] > 9) {
+ # tens
+ push @textnumber, $self->format_ten($numblock[$i], $i);
+ } elsif ($numblock[$i] > 0) {
+ # ones
+ $num = $numblock[$i];
+ $num .= 'o' if ($num == 1 && $i == 0);
+ push @textnumber, $self->{numbername}{$num};
+ }
+
+ # add thousand, million
+ if ($i) {
+ $num = 10**($i * 3);
+ if ($numblock[$i] > 1) {
+ if ($i == 2 || $i == 4) {
+ $a = $self->{numbername}{$num}."es";
+ $a =~ s/ó/o/;
+ push @textnumber, $a;
+ } elsif ($i == 3) {
+ $num = 10**($i * 2);
+ $a = "$self->{10**3} $self->{numbername}{$num}"."es";
+ $a =~ s/ó/o/;
+ push @textnumber, $a;
+ } else {
+ if ($i == 1) {
+ push @textnumber, $self->{numbername}{$num};
+ } else {
+ push @textnumber, $self->{numbername}{$num}.'s';
+ }
+ }
+ } else {
+ push @textnumber, $self->{numbername}{$num};
+ }
+ }
+
+ pop @numblock;
+
+ }
+
+ shift @textnumber if $stripun;
+
+ join ' ', @textnumber;
+
+}
+
+
+sub format_ten {
+ my ($self, $amount, $i) = @_;
+
+ my $textnumber = "";
+ my @num = split //, $amount;
+
+ if ($amount > 30) {
+ $textnumber = $self->{numbername}{$num[0]*10};
+ $amount = $num[1];
+ } else {
+ $amount .= 'o' if ($num[1] == 1 && $i == 0);
+ $textnumber = $self->{numbername}{$amount};
+ $amount = 0;
+ }
+
+ $textnumber .= " y ".$self->{numbername}{$amount} if $amount;
+
+ $textnumber;
+
+}
+
+
+1;
+
diff --git a/locale/es/aa b/locale/es/aa
new file mode 100755
index 00000000..6d361770
--- /dev/null
+++ b/locale/es/aa
@@ -0,0 +1,156 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Impagados Proveedores',
+ 'AP Transaction' => 'Gestión se pago',
+ 'AP Transactions' => 'Gestiones de pagos',
+ 'AR Outstanding' => 'Impagados Cartera',
+ 'AR Transaction' => 'Gestión de cobro',
+ 'AR Transactions' => 'Gestiones de cobros',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Add AP Transaction' => 'Añadir Asiento de CxP',
+ 'Add AR Transaction' => 'Añadir Asiento de CxC',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Cantidad adeudada',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => '¿Está seguro de que desea borrar la transacción?',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Cannot delete transaction!' => '¡No se puede borrar la transacción!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo ya cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar una transacción para un periodo cerrado',
+ 'Cannot post transaction!' => '¡No se puede registrar la transacción',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Cerrado',
+ 'Confirm!' => 'Confirmar',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Limite de credito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Date' => 'Fecha',
+ 'Date Paid' => 'Fecha de pago',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Department' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'Due Date missing!' => 'Falta la fecha de vencimiento',
+ 'Edit AP Transaction' => 'Editar Asiento de CxP',
+ 'Edit AR Transaction' => 'Editar Asiento de CxC',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de cambio',
+ 'Exchange rate for payment missing!' => '¡Falta la tasa de cambio para el pago!',
+ 'Exchange rate missing!' => '¡Falta la tasa de cambio!',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Manager' => 'Administrador',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Month' => 'Mes',
+ 'No.' => 'No.',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Number' => 'Número de orden',
+ 'Paid' => 'Pagado',
+ 'Payment date missing!' => 'No se encuentra la fecha de pago',
+ 'Payments' => 'Vencimientos impagados',
+ 'Period' => 'Período',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Project' => 'Proyecto',
+ 'Quarter' => 'Trimestre',
+ 'Receipt' => 'Recibo',
+ 'Remaining' => 'Resto',
+ 'Sales Invoice.' => 'Facturas de ventas.',
+ 'Salesperson' => 'Vendedor',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Ship to' => 'Destino',
+ 'Ship via' => 'Envio por',
+ 'Shipping Point' => 'Destino',
+ 'Source' => 'Fuente',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Résumen',
+ 'Tax' => 'Impuesto',
+ 'Tax Included' => 'Impuestos incluidos en el precio',
+ 'Till' => 'Caja',
+ 'To' => 'Hasta',
+ 'Total' => 'Total',
+ 'Transaction' => 'Asiento',
+ 'Transaction deleted!' => '¡Transacción borrada!',
+ 'Transaction posted!' => '¡Transacción registrada!',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice.' => 'Factura de Compra.',
+ 'Vendor missing!' => '¡Falta el proveedor!',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'gestión_se_pago' => 'ap_transaction',
+ 'gestión_de_cobro' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'imprimir_y_registrar' => 'print_and_post',
+ 'facturas_de_ventas_' => 'sales_invoice_',
+ 'destino' => 'ship_to',
+ 'actualizar' => 'update',
+ 'factura_de_compra_' => 'vendor_invoice_',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/es/admin b/locale/es/admin
new file mode 100755
index 00000000..6efa1b93
--- /dev/null
+++ b/locale/es/admin
@@ -0,0 +1,144 @@
+$self{texts} = {
+ 'Access Control' => 'Control de Acceso',
+ 'Accounting' => 'Contabilidad',
+ 'Add User' => 'Añadir usuario',
+ 'Address' => 'Dirección',
+ 'Administration' => 'Administración',
+ 'Administrator' => 'Administrador',
+ 'All Datasets up to date!' => 'Todas las bases de datos están actualizadas',
+ 'Cannot create Lock!' => 'Cannot create Lock!',
+ 'Change Admin Password' => 'Cambiar la contraseña del administrador',
+ 'Change Password' => 'Cambiar contraseña',
+ 'Click on login name to edit!' => 'Haga clic en el nombre de usuario por
+editar',
+ 'Company' => 'Compañía',
+ 'Confirm' => 'Confirmar',
+ 'Connect to' => 'Conectar a',
+ 'Continue' => 'Continuar',
+ 'Create Chart of Accounts' => 'Crear catálogo de cuentas',
+ 'Create Dataset' => 'Crear base de datos',
+ 'DBI not installed!' => 'No se ha instalado DBI',
+ 'Database' => 'Base de datos',
+ 'Database Administration' => 'Administración de las bases de datos',
+ 'Database Driver not checked!' => 'No se ha podido verificar el gestor de la base de datos',
+ 'Database User missing!' => 'No se ha definido el usuario de la base de datos',
+ 'Dataset' => 'Base de datos',
+ 'Dataset missing!' => 'No se ha definido la base de datos',
+ 'Dataset updated!' => 'Base de datos actualizada',
+ 'Date Format' => 'Formato de fecha',
+ 'Delete' => 'Borrar',
+ 'Delete Dataset' => 'Borrar base de datos',
+ 'Directory' => 'Directorio',
+ 'Driver' => 'Gestor',
+ 'Dropdown Limit' => 'Límite de efectivo',
+ 'E-mail' => 'Correo electrónico',
+ 'Edit User' => 'Editar usuario',
+ 'Existing Datasets' => 'Bases de datos existentes',
+ 'Fax' => 'Fax',
+ 'Host' => 'Máquina servidor de base de datos',
+ 'Hostname missing!' => 'No se ha definido la máquina servidor de base de datos',
+ 'Language' => 'Lenguaje',
+ 'Lock System' => 'Lock System',
+ 'Lockfile created!' => 'Lockfile created!',
+ 'Lockfile removed!' => 'Lockfile removed!',
+ 'Login' => 'Entrar',
+ 'Login name missing!' => 'Login name missing!',
+ 'Logout' => 'Salir',
+ 'Manager' => 'Administrador',
+ 'Menu Width' => 'Ancho del Menu',
+ 'Multibyte Encoding' => 'Multibyte Encoding',
+ 'Name' => 'Nombre',
+ 'New Templates' => 'Nuevas plantillas',
+ 'No Database Drivers available!' => 'No hay ningún gestor de base de datos disponible',
+ 'No Dataset selected!' => 'No se ha seleccionado ninguna base de datos',
+ 'Nothing to delete!' => '¡No hay nada para borrar!',
+ 'Number Format' => 'Formato de número',
+ 'Oracle Database Administration' => 'Administración de la base de datos Oracle',
+ 'Password' => 'Contraseña',
+ 'Password changed!' => '¡Contraseña cambiada!',
+ 'Passwords do not match!' => '¡Contraseñas son incorrectas!',
+ 'Pg Database Administration' => 'Administración de la base de datos PostgreSQL',
+ 'PgPP Database Administration' => 'PgPP Database Administration',
+ 'Phone' => 'Teléfono',
+ 'Port' => 'Puerto',
+ 'Port missing!' => 'No se ha definido el puerto',
+ 'Printer' => 'Impresora',
+ 'Save' => 'Guardar',
+ 'Session Timeout' => '¡Sesión Caducó!',
+ 'Session expired!' => '¡Sesión Expiró!',
+ 'Setup Templates' => 'Configurar plantillas',
+ 'Signature' => 'Firma',
+ 'Stylesheet' => 'Hoja de estilo',
+ 'Supervisor' => 'Supervisor',
+ 'Templates' => 'Plantillas',
+ 'The following Datasets are not in use and can be deleted' => 'Las siguientes bases de datos no están en uso y se pueden borrar',
+ 'The following Datasets need to be updated' => 'Es necesario actualizar las siguientes bases de datos',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Esta es una verificacion preliminar de fuentes existentes. No se creará ni borrará nada durante esta etapa',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Para añadir un usuario a un grupo, edite un nombre, cambie el nombre de usuario (login) y guarde los cambios. Un nuevo usuario, con las mismas propiedades se guardará bajo el nuevo nombre de usuario (login).',
+ 'Unlock System' => 'Unlock System',
+ 'Update Dataset' => 'Actualizar base de datos',
+ 'Use Templates' => 'Plantillas de usuarios',
+ 'User' => 'Usuario',
+ 'User deleted!' => '¡Usuario borrado!',
+ 'User saved!' => '¡Usuario guardado!',
+ 'Version' => 'Versión',
+ 'You are logged out' => '¡Ud. está desconectado del sistema!',
+ 'does not exist' => 'no existe',
+ 'is already a member!' => 'ya es actualmente un miembro',
+ 'localhost' => 'máquina local',
+ 'locked!' => 'Bloqueado!',
+ 'successfully created!' => 'creado satisfactoriamente',
+ 'successfully deleted!' => 'borrado satisfactoriamente',
+ 'website' => 'sitio web',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'añadir_usuario' => 'add_user',
+ 'cambiar_la_contraseña_del_administrador' => 'change_admin_password',
+ 'cambiar_contraseña' => 'change_password',
+ 'continuar' => 'continue',
+ 'crear_base_de_datos' => 'create_dataset',
+ 'borrar' => 'delete',
+ 'borrar_base_de_datos' => 'delete_dataset',
+ 'lock_system' => 'lock_system',
+ 'entrar' => 'login',
+ 'salir' => 'logout',
+ 'administración_de_la_base_de_datos_oracle' => 'oracle_database_administration',
+ 'administración_de_la_base_de_datos_postgresql' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'guardar' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'actualizar_base_de_datos' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/es/all b/locale/es/all
new file mode 100755
index 00000000..abb74e1a
--- /dev/null
+++ b/locale/es/all
@@ -0,0 +1,896 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+
+$self{texts} = {
+ 'A' => 'A',
+ 'AP' => 'Cartera de pagos',
+ 'AP Aging' => 'Diario resumido de pagos',
+ 'AP Outstanding' => 'Impagados Proveedores',
+ 'AP Transaction' => 'Gestión se pago',
+ 'AP Transactions' => 'Gestiones de pagos',
+ 'AR' => 'Cartera de cobros',
+ 'AR Aging' => 'Diario resumido de cobros ',
+ 'AR Outstanding' => 'Impagados Cartera',
+ 'AR Transaction' => 'Gestión de cobro',
+ 'AR Transactions' => 'Gestiones de cobros',
+ 'AR/AP' => '',
+ 'About' => 'Acerca de',
+ 'Above' => 'Encima de',
+ 'Access Control' => 'Control de Acceso',
+ 'Access Denied!' => '',
+ 'Account' => 'Cuenta',
+ 'Account Number' => 'Número de cuenta',
+ 'Account Number missing!' => 'No se ha definido el número de la cuenta',
+ 'Account Type' => 'Categoría de cuenta',
+ 'Account Type missing!' => 'No se ha definido el tipo de la cuenta',
+ 'Account deleted!' => '¡Cuenta borraba!',
+ 'Account does not exist!' => 'Cuenta no existe!',
+ 'Account saved!' => '¡Cuenta guardada!',
+ 'Accounting' => 'Contabilidad',
+ 'Accounting Menu' => 'Menú general',
+ 'Accounts' => 'Cuentas',
+ 'Accrual' => 'Acumulado',
+ 'Activate Audit trail' => 'Activar Rastro Auditoría',
+ 'Activate Audit trails' => 'Activar Rastro Auditoría',
+ 'Active' => 'Activo',
+ 'Add' => 'Añadir',
+ 'Add AP Transaction' => 'Añadir Asiento de CxP',
+ 'Add AR Transaction' => 'Añadir Asiento de CxC',
+ 'Add Account' => 'Añadir cuenta',
+ 'Add Assembly' => 'Añadir compuesto',
+ 'Add Business' => 'Agregar Empresa',
+ 'Add Cash Transfer Transaction' => 'Agregar transacción',
+ 'Add Customer' => 'Añadir cliente',
+ 'Add Deduction' => 'Agregar Deducción',
+ 'Add Department' => 'Agregar Centro de Costos',
+ 'Add Employee' => 'Agregar Empleado',
+ 'Add Exchange Rate' => 'Agregar Tasa de Cambio',
+ 'Add GIFI' => 'Añadir código GIFI',
+ 'Add General Ledger Transaction' => 'Añadir transacción al libro mayor general',
+ 'Add Group' => 'Agregar Grupo',
+ 'Add Job' => '',
+ 'Add Labor/Overhead' => 'Agregar Mano de Obra',
+ 'Add Language' => 'Agregar Idioma',
+ 'Add POS Invoice' => 'Agregar Factura POS',
+ 'Add Part' => 'Añadir artículo',
+ 'Add Pricegroup' => 'Añadir Grupo de Precios',
+ 'Add Project' => 'Añadir proyecto',
+ 'Add Purchase Order' => 'Añadir pedido',
+ 'Add Quotation' => 'Agregar Cotización',
+ 'Add Request for Quotation' => 'Pedir Cotización',
+ 'Add SIC' => 'Agregar SIC',
+ 'Add Sales Invoice' => 'Añadir factura',
+ 'Add Sales Order' => 'Añadir presupuesto',
+ 'Add Service' => 'Añadir servicio',
+ 'Add Timecard' => '',
+ 'Add Transaction' => 'Añadir',
+ 'Add User' => 'Añadir usuario',
+ 'Add Vendor' => 'Añadir proveedor',
+ 'Add Vendor Invoice' => 'Añadir factura de compra',
+ 'Add Warehouse' => 'Agregar Bodega',
+ 'Address' => 'Dirección',
+ 'Administration' => 'Administración',
+ 'Administrator' => 'Administrador',
+ 'After Deduction' => 'Despues Deducción',
+ 'All' => 'Todos',
+ 'All Accounts' => 'Todas las Cuentas',
+ 'All Datasets up to date!' => 'Todas las bases de datos están actualizadas',
+ 'All Items' => 'Todo',
+ 'Allowances' => 'Permisos',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Cantidad adeudada',
+ 'Amount missing!' => 'Falta suma',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => '¿Esta seguro de que desea borrar la factura número',
+ 'Are you sure you want to delete Order Number' => '¿Esta seguro de que desea
+borrar la orden número?',
+ 'Are you sure you want to delete Quotation Number' => 'Seguro que quiere borrar la cotización número',
+ 'Are you sure you want to delete Timecard for' => '',
+ 'Are you sure you want to delete Transaction' => '¿Está seguro de que desea borrar la transacción?',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Seguro que quieres remover las entradas seleccionadas de la cola?',
+ 'Assemblies' => 'Compuestos',
+ 'Assemblies restocked!' => '¡Compuestos actualizados en almacen!',
+ 'Assembly' => 'Compuesto',
+ 'Assembly stocked!' => '',
+ 'Asset' => 'Activo',
+ 'Attachment' => 'Adjunto',
+ 'Audit Control' => 'Control de auditoría',
+ 'Audit trail disabled' => 'Rastro de Auditoría desactivado',
+ 'Audit trail enabled' => 'Rastro de Auditoría activado',
+ 'Audit trail removed up to' => 'Rastro de Auditoría removido hasta',
+ 'Audit trails disabled' => 'Rastro de Auditoría desactivado',
+ 'Audit trails enabled' => 'Rastro de Auditoría activado',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Average Cost' => '',
+ 'Avg Cost' => '',
+ 'BIC' => 'BIC',
+ 'BOM' => 'Listado de piezas',
+ 'Backup' => 'Copia de seguridad de los datos',
+ 'Backup sent to' => 'Copia de seguridad enviada a',
+ 'Balance' => 'Balance',
+ 'Balance Sheet' => 'Hoja de balance',
+ 'Based on' => 'Basado en',
+ 'Bcc' => 'Bcc',
+ 'Before Deduction' => 'Antes de la Deducción',
+ 'Beginning Balance' => 'Balance Inicial',
+ 'Below' => 'Debajo',
+ 'Billing Address' => 'Dirección Factura',
+ 'Bin' => 'Bin',
+ 'Bin List' => 'Lista Empaque',
+ 'Bin Lists' => 'Listas Empaque',
+ 'Books are open' => 'Los libros están abiertos',
+ 'Break' => 'Pausa',
+ 'Business' => 'Empresa',
+ 'Business Number' => 'Numero de negocio',
+ 'Business deleted!' => 'Empresa eliminada!',
+ 'Business saved!' => 'Empresa guardada!',
+ 'C' => 'C',
+ 'COGS' => 'Costo de los artículos',
+ 'COGS account does not exist!' => '',
+ 'Cannot add timecard for a completed job!' => '',
+ 'Cannot change timecard for a completed job!' => '',
+ 'Cannot create Assembly' => '',
+ 'Cannot create Labor' => '',
+ 'Cannot create Lock!' => 'Cannot create Lock!',
+ 'Cannot create Part' => '',
+ 'Cannot create Service' => '',
+ 'Cannot delete Timecard!' => '',
+ 'Cannot delete account!' => '¡No se puede borrar la cuenta!',
+ 'Cannot delete customer!' => '¡No se puede borrar el cliente!',
+ 'Cannot delete default account!' => 'No se puede borrar la cuenta por omisión',
+ 'Cannot delete invoice!' => '¡No se puede borrar la factura!',
+ 'Cannot delete item!' => '¡No se puede borrar el artículo!',
+ 'Cannot delete order!' => '¡No se puede borrar el pedido!',
+ 'Cannot delete quotation!' => '¡No puedo borrar cotización!',
+ 'Cannot delete transaction!' => '¡No se puede borrar la transacción!',
+ 'Cannot delete vendor!' => '¡No se puede borrar el vendedor!',
+ 'Cannot post Payment!' => 'No puedo guardar pago',
+ 'Cannot post Receipt!' => 'No puedo guardar recibo',
+ 'Cannot post invoice for a closed period!' => '¡No se puede registrar una factura en un periodo ya cerrado!',
+ 'Cannot post invoice!' => '¡No se puede registrar la factura!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo ya cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar una transacción para un periodo cerrado',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => '',
+ 'Cannot post transaction!' => '¡No se puede registrar la transacción',
+ 'Cannot remove files!' => 'No puedo borrar archivos!',
+ 'Cannot save account!' => '¡No se puede guardar la cuenta!',
+ 'Cannot save defaults!' => 'No puedo guardar preferencias!',
+ 'Cannot save order!' => '¡No se puede guardar el pedido!',
+ 'Cannot save preferences!' => '¡No se puede guardar las preferencias!',
+ 'Cannot save quotation!' => 'No puedo guardar cotización!',
+ 'Cannot save timecard for a closed period!' => '',
+ 'Cannot save timecard!' => '',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Tiene que seleccionar cuenta!',
+ 'Cannot set multiple options for' => 'No puedo crear multiples opciones para',
+ 'Cannot set multiple options for Item' => '',
+ 'Cannot stock Assembly!' => '',
+ 'Cannot stock assemblies!' => '¡No se pueden almacenar los compuestos!',
+ 'Cash' => 'Efectivo',
+ 'Cc' => 'Cc',
+ 'Change' => 'Cambiar',
+ 'Change Admin Password' => 'Cambiar la contraseña del administrador',
+ 'Change Password' => 'Cambiar contraseña',
+ 'Charge' => '',
+ 'Chart of Accounts' => 'Cuadro de cuentas',
+ 'Check' => 'Cheque',
+ 'Check Inventory' => 'Revisar Inventario',
+ 'Checks' => 'Cheques',
+ 'City' => 'Ciudad',
+ 'Cleared' => 'Borrado',
+ 'Click on login name to edit!' => 'Haga clic en el nombre de usuario por
+editar',
+ 'Clocked' => '',
+ 'Close Books up to' => 'Cerrar los libros hasta',
+ 'Closed' => 'Cerrado',
+ 'Code' => 'Código',
+ 'Code missing!' => 'Falta código',
+ 'Company' => 'Compañía',
+ 'Company Name' => 'Nombre de la empresa',
+ 'Compare to' => 'Comparar con',
+ 'Completed' => '',
+ 'Components' => 'Componentes',
+ 'Confirm' => 'Confirmar',
+ 'Confirm!' => 'Confirmar',
+ 'Connect to' => 'Conectar a',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Contra' => 'Cuentas del Orden',
+ 'Copies' => 'Copias',
+ 'Copy to COA' => 'Copiar al catálogo de cuentas',
+ 'Cost' => 'Costo',
+ 'Cost Center' => 'Centro de Costos (Gastos)',
+ 'Could not save pricelist!' => '¡No se pudo guradar lista de precios!',
+ 'Could not save!' => 'No pude guardar',
+ 'Could not transfer Inventory!' => 'No puedo transferir inventario!',
+ 'Country' => 'País',
+ 'Create Chart of Accounts' => 'Crear catálogo de cuentas',
+ 'Create Dataset' => 'Crear base de datos',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Limite de credito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Current Earnings' => 'Resultado del periodo',
+ 'Customer' => 'Cliente',
+ 'Customer History' => 'Historial del Cliente',
+ 'Customer Number' => 'Número del cliente',
+ 'Customer deleted!' => '¡Cliente borrado!',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Customer saved!' => '¡Cliente guardado!',
+ 'Customers' => 'Clientes',
+ 'DBI not installed!' => 'No se ha instalado DBI',
+ 'DOB' => 'Fecha de Nacimiento',
+ 'Database' => 'Base de datos',
+ 'Database Administration' => 'Administración de las bases de datos',
+ 'Database Driver not checked!' => 'No se ha podido verificar el gestor de la base de datos',
+ 'Database Host' => 'Máquina servidor de base de datos',
+ 'Database User missing!' => 'No se ha definido el usuario de la base de datos',
+ 'Dataset' => 'Base de datos',
+ 'Dataset is newer than version!' => 'La base de datos está más actual que la versión del programa',
+ 'Dataset missing!' => 'No se ha definido la base de datos',
+ 'Dataset updated!' => 'Base de datos actualizada',
+ 'Date' => 'Fecha',
+ 'Date Format' => 'Formato de fecha',
+ 'Date Paid' => 'Fecha de pago',
+ 'Date Received' => 'Fecha recibido',
+ 'Date missing!' => '¡Falta la fecha!',
+ 'Date received missing!' => 'Faltas datos',
+ 'Date worked' => '',
+ 'Day' => '',
+ 'Day(s)' => '',
+ 'Days' => '',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Decimalplaces' => 'Lugar de los decimales',
+ 'Decrease' => 'Reducir',
+ 'Deduct after' => 'Deducir despues de',
+ 'Deduction deleted!' => 'Deducción borrado!',
+ 'Deduction saved!' => 'Deducción guardado',
+ 'Deductions' => 'Deducciones',
+ 'Default Template' => '',
+ 'Defaults' => 'Preferencias',
+ 'Defaults saved!' => 'Guardado!',
+ 'Delete' => 'Borrar',
+ 'Delete Account' => 'Borrar cuenta',
+ 'Delete Dataset' => 'Borrar base de datos',
+ 'Delete Schedule' => '',
+ 'Deleting a language will also delete the templates for the language' => '',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Department' => 'Centro de Costos',
+ 'Department deleted!' => 'Centro de Costos borrado!',
+ 'Department saved!' => 'Centro de Costos guardado!',
+ 'Departments' => 'Centro de Costos',
+ 'Deposit' => 'Depósito',
+ 'Description' => 'Descripción',
+ 'Description Translations' => 'Descripción Traducción',
+ 'Description missing!' => 'Falta Descripción',
+ 'Detail' => 'Detalle',
+ 'Difference' => 'Diferencia',
+ 'Directory' => 'Directorio',
+ 'Discount' => 'Descuento',
+ 'Done' => 'Hecho',
+ 'Drawing' => 'Reintegro',
+ 'Driver' => 'Gestor',
+ 'Dropdown Limit' => 'Límite de efectivo',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'Due Date missing!' => 'Falta la fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail Statement to' => 'Enviar comprobante por correo electrónico a',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'E-mail message' => '',
+ 'E-mailed' => 'Enviado por mail',
+ 'Edit' => 'Editar',
+ 'Edit AP Transaction' => 'Editar Asiento de CxP',
+ 'Edit AR Transaction' => 'Editar Asiento de CxC',
+ 'Edit Account' => 'Editar cuenta',
+ 'Edit Assembly' => 'Editar compuesto',
+ 'Edit Business' => 'Editar empresa',
+ 'Edit Cash Transfer Transaction' => 'Editar Transacción en Effectivo',
+ 'Edit Customer' => 'Editar Cliente',
+ 'Edit Deduction' => 'Editar Deducción',
+ 'Edit Department' => 'Editar Centro de Costos',
+ 'Edit Description Translations' => 'Editar Descripción Traducción',
+ 'Edit Employee' => 'Editar Empleado',
+ 'Edit GIFI' => 'Editar GIFI',
+ 'Edit General Ledger Transaction' => 'Editar transacción del libro mayor general',
+ 'Edit Group' => 'Editar Grupo',
+ 'Edit Job' => '',
+ 'Edit Labor/Overhead' => 'Editar Mano de Obra',
+ 'Edit Language' => 'Editar Idioma',
+ 'Edit POS Invoice' => 'Editar Factura Punto de Venta',
+ 'Edit Part' => 'Editar compuesto',
+ 'Edit Preferences for' => 'Editar preferencias de',
+ 'Edit Pricegroup' => 'Editar Grupo de Precios',
+ 'Edit Project' => 'Editar proyecto',
+ 'Edit Purchase Order' => 'Editar pedido',
+ 'Edit Quotation' => 'Editar Cotización',
+ 'Edit Request for Quotation' => 'Editar Solicitud de Cotización',
+ 'Edit SIC' => 'Editar SIC',
+ 'Edit Sales Invoice' => 'Edirar factura de venta',
+ 'Edit Sales Order' => 'Editar presupuesto',
+ 'Edit Service' => 'Editar servicio',
+ 'Edit Template' => 'Editar plantilla',
+ 'Edit Timecard' => '',
+ 'Edit User' => 'Editar usuario',
+ 'Edit Vendor' => 'Editar Proveedor',
+ 'Edit Vendor Invoice' => 'Editar factura de compra',
+ 'Edit Warehouse' => 'Editar Bodega',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Employee Name' => 'Nombre del Empleado',
+ 'Employee Number' => 'Número de Empleado',
+ 'Employee deleted!' => 'Empleado borrado!',
+ 'Employee pays' => 'Empleado cancela',
+ 'Employee saved!' => 'Empleado guardado!',
+ 'Employees' => 'Empleados',
+ 'Employer' => 'Empleador',
+ 'Employer pays' => 'Empleador cancela',
+ 'Enddate' => 'Fecha final',
+ 'Ends' => '',
+ 'Enforce transaction reversal for all dates' => 'Forzar la anulación de las transacciones para todas las fechas',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Introduzca hasta 3 letras separadas por dos puntos (p.e. CAD:USD:EUR) para las monedas locales y las extranjeras',
+ 'Equity' => 'Balance',
+ 'Every' => '',
+ 'Excempt age <' => 'Edad de Excención <',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de cambio',
+ 'Exchange rate for payment missing!' => '¡Falta la tasa de cambio para el pago!',
+ 'Exchange rate missing!' => '¡Falta la tasa de cambio!',
+ 'Existing Datasets' => 'Bases de datos existentes',
+ 'Expense' => 'Gastos',
+ 'Expense account does not exist!' => '',
+ 'Expense/Asset' => 'Gastos/Activo',
+ 'Extended' => 'Extendido',
+ 'FX' => 'TC',
+ 'Failed to save order!' => '',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'For' => '',
+ 'Foreign Exchange Gain' => 'Ganancia en moneda extranjera',
+ 'Foreign Exchange Loss' => 'Pérdida en moneda extranjera',
+ 'Friday' => '',
+ 'From' => 'Desde',
+ 'From Warehouse' => '',
+ 'GIFI' => 'Código GIFI',
+ 'GIFI deleted!' => '¡Borrado el código GIFI!',
+ 'GIFI missing!' => 'No se ha definido el código GIFI',
+ 'GIFI saved!' => '¡Guardado el código GIFI!',
+ 'GL' => '',
+ 'GL Reference Number' => '',
+ 'GL Transaction' => 'Transacción en el libro mayor',
+ 'General Ledger' => 'Libro mayor general',
+ 'Generate' => '',
+ 'Generate Orders' => '',
+ 'Generate Purchase Orders' => '',
+ 'Generate Purchase Orders from Sales Order' => '',
+ 'Generate Sales Order' => '',
+ 'Generate Sales Order from Purchase Orders' => '',
+ 'Generate Sales Orders' => '',
+ 'Goods & Services' => 'Bienes y servicios',
+ 'Group' => 'Grupo',
+ 'Group Items' => 'Agrupar itemes',
+ 'Group Translations' => 'Traducción Grupos',
+ 'Group deleted!' => 'Grupo eleminado!',
+ 'Group missing!' => 'Falta el grupo',
+ 'Group saved!' => 'Grupo guardado!',
+ 'Groups' => 'Grupos',
+ 'HR' => 'Recursos Humanos',
+ 'HTML Templates' => 'Plantillas HTML',
+ 'Heading' => 'Encabezado',
+ 'History' => 'Historial',
+ 'Home Phone' => 'Teléfono residencia',
+ 'Host' => 'Máquina servidor de base de datos',
+ 'Hostname missing!' => 'No se ha definido la máquina servidor de base de datos',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Image' => 'Imagen',
+ 'In-line' => 'Incrustado',
+ 'Inactive' => '',
+ 'Include Exchange Rate Difference' => 'Incluir Diferencia por Tasa de Cambio',
+ 'Include Payment' => '',
+ 'Include in Report' => 'Incluir en informe',
+ 'Include in drop-down menus' => 'Incluir en menúes desplegables:',
+ 'Income' => 'Ingreso',
+ 'Income Statement' => 'Balance de situación',
+ 'Income account does not exist!' => '',
+ 'Incorrect Dataset version!' => 'Versión de base de datos incorrecta',
+ 'Increase' => 'Aumentar',
+ 'Individual Items' => 'Artículos individuales',
+ 'Internal Notes' => 'Notas internas',
+ 'Inventory' => 'Inventario',
+ 'Inventory account does not exist!' => '',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'La cantidad en inventario debe ser cero antes de cambiar este compuesto a obsoleto',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'La cantidad en inventario debe ser cero antes de cambiar este artículo a obsoleto',
+ 'Inventory saved!' => 'Inventario guardado!',
+ 'Inventory transferred!' => 'Inventario transferido!',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Invoice Number missing!' => 'No se ha definido el número de la factura',
+ 'Invoice deleted!' => '¡Factura borrada!',
+ 'Invoices' => 'Facturas',
+ 'Is this a summary account to record' => '¿Es esta una cuenta de resumen a registrar?',
+ 'Item already on pricelist!' => '¡Artículo está incluido en la lista de precios!',
+ 'Item deleted!' => '¡Concepto borrado!',
+ 'Item not on file!' => 'El concepto no se encuentra en ningún archivo',
+ 'Items' => 'Productos/Servicios',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Job' => '',
+ 'Job Name' => '',
+ 'Job Number' => '',
+ 'Job Number missing!' => '',
+ 'Job deleted!' => '',
+ 'Job saved!' => '',
+ 'Jobs' => '',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'LaTeX Templates' => 'Plantillas LaTeX',
+ 'Labor Code' => '',
+ 'Labor/Overhead' => 'Mano de Obra',
+ 'Language' => 'Lenguaje',
+ 'Language deleted!' => 'Idioma Borrada!',
+ 'Language saved!' => 'Idioma Guardada!',
+ 'Languages' => 'Idiomas',
+ 'Languages not defined!' => 'Idiomas no configuradas!',
+ 'Last Cost' => '',
+ 'Last Numbers & Default Accounts' => 'Últimos números y cuentas por omisión',
+ 'Lead' => '',
+ 'Leadtime' => 'Tiempo de Entrega',
+ 'Leave host and port field empty unless you want to make a remote connection.' => 'Deje los campos de máquina servidor de base de datos y puerto vacíos al menos que quiera hacer una conexión remota',
+ 'Liability' => 'Pasivo',
+ 'Licensed to' => 'Adaptado para',
+ 'Line Total' => 'Total de la línea',
+ 'Link' => 'Enlaces',
+ 'Link Accounts' => 'Enlazar cuentas',
+ 'List' => 'Lista',
+ 'List Accounts' => 'Listar cuentas',
+ 'List Businesses' => 'Mostrar empresas',
+ 'List Departments' => 'Mostrar Centro de Costos',
+ 'List GIFI' => 'Listar código GIFI',
+ 'List Languages' => 'Mostrar Idiomas',
+ 'List Price' => 'Precio de lista',
+ 'List Projects' => 'Mostrar Projectos',
+ 'List SIC' => 'Mostrar SIC',
+ 'List Transactions' => 'Listar transacciones',
+ 'List Warehouses' => 'Mostar bodegas',
+ 'Lock System' => 'Lock System',
+ 'Lockfile created!' => 'Lockfile created!',
+ 'Lockfile removed!' => 'Lockfile removed!',
+ 'Login' => 'Entrar',
+ 'Login name missing!' => 'Login name missing!',
+ 'Logout' => 'Salir',
+ 'Make' => 'Marca',
+ 'Manager' => 'Administrador',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'Marked entries printed!' => 'Selección impresa',
+ 'Markup' => 'Margen',
+ 'Maximum' => 'Maximo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Menu Width' => 'Ancho del Menu',
+ 'Message' => 'Mensaje',
+ 'Method' => 'Metódo',
+ 'Microfiche' => 'Microficha',
+ 'Model' => 'Modelo',
+ 'Monday' => '',
+ 'Month' => 'Mes',
+ 'Month(s)' => '',
+ 'Months' => '',
+ 'Multibyte Encoding' => 'Multibyte Encoding',
+ 'N/A' => 'Sin respuesta',
+ 'Name' => 'Nombre',
+ 'Name missing!' => '¡Falta el nombre!',
+ 'New Templates' => 'Nuevas plantillas',
+ 'New Window' => '',
+ 'Next' => '',
+ 'Next Date' => '',
+ 'Next Number' => '',
+ 'No' => 'No',
+ 'No Database Drivers available!' => 'No hay ningún gestor de base de datos disponible',
+ 'No Dataset selected!' => 'No se ha seleccionado ninguna base de datos',
+ 'No Employees on file!' => '',
+ 'No Labor codes on file!' => '',
+ 'No email address for' => 'Falta la dirección de correo electrónico de',
+ 'No open Jobs!' => '',
+ 'No open Projects!' => '',
+ 'No.' => 'No.',
+ 'Non-taxable' => 'Sin Impuestos',
+ 'Non-taxable Purchases' => 'Compras sin Impuestos',
+ 'Non-taxable Sales' => 'Ventas sin Impuestos',
+ 'Non-tracking Items' => '',
+ 'Notes' => 'Notas',
+ 'Nothing entered!' => 'Información Incompleta',
+ 'Nothing selected!' => '¡No es seleccionado nada!',
+ 'Nothing to delete!' => '¡No hay nada para borrar!',
+ 'Nothing to print!' => '¡No hay nada que imprimir!',
+ 'Nothing to transfer!' => 'Nada para transferir',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number Format' => 'Formato de número',
+ 'Number missing in Row' => 'No se ha definido el número en la fila',
+ 'O' => 'O',
+ 'OH' => '',
+ 'Obsolete' => 'Obsoleto',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'On Hand' => 'Disponible',
+ 'Open' => 'Abierto',
+ 'Oracle Database Administration' => 'Administración de la base de datos Oracle',
+ 'Order' => 'Orden',
+ 'Order Date' => 'Fecha de elaboración',
+ 'Order Date missing!' => 'No se ha definido la fecha de la elaboración',
+ 'Order Entry' => 'Presupuestos y pedidos',
+ 'Order Number' => 'Número de orden',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'Order deleted!' => '¡Orden borrada!',
+ 'Order generation failed!' => '',
+ 'Order saved!' => 'Pedido guardado',
+ 'Orders generated!' => '',
+ 'Orphaned' => 'Huérfano',
+ 'Out of balance transaction!' => 'Transacción fuera de Balance!',
+ 'Out of balance!' => '¡Fuera de balance!',
+ 'Outstanding' => 'Impagados',
+ 'PDF' => 'PDF',
+ 'PO Number' => '',
+ 'POS' => 'Punto de Venta',
+ 'POS Invoice' => 'Factura Punto de Venta',
+ 'Packing List' => 'Albarán',
+ 'Packing List Date missing!' => 'No se ha definido la fecha del albarán',
+ 'Packing List Number missing!' => 'No se ha definido el número del albarán',
+ 'Packing Lists' => 'Lista de empaque',
+ 'Paid' => 'Pagado',
+ 'Part' => 'Artículo',
+ 'Part Number' => '',
+ 'Partnumber' => 'Número parte',
+ 'Parts' => 'Artículos',
+ 'Password' => 'Contraseña',
+ 'Password changed!' => '¡Contraseña cambiada!',
+ 'Password does not match!' => '¡Contraseña incorrecta!',
+ 'Passwords do not match!' => '¡Contraseñas son incorrectas!',
+ 'Payables' => 'Pagos',
+ 'Payment' => 'Pago',
+ 'Payment date missing!' => 'No se encuentra la fecha de pago',
+ 'Payment posted!' => '¡Pago registrado!',
+ 'Payments' => 'Vencimientos impagados',
+ 'Payments posted!' => '',
+ 'Payroll Deduction' => 'Deducciones Nómina',
+ 'Period' => 'Período',
+ 'Pg Database Administration' => 'Administración de la base de datos PostgreSQL',
+ 'PgPP Database Administration' => 'PgPP Database Administration',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Empaque',
+ 'Pick Lists' => 'Listas de Empaque',
+ 'Port' => 'Puerto',
+ 'Port missing!' => 'No se ha definido el puerto',
+ 'Pos' => '',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Posted!' => 'Agregado!',
+ 'Posting' => '',
+ 'Posting failed!' => '',
+ 'Postscript' => 'Postscript',
+ 'Preferences' => 'Preferencias',
+ 'Preferences saved!' => 'Preferencias guardadas',
+ 'Prepayment' => 'Prepago',
+ 'Price' => 'Precio',
+ 'Pricegroup' => 'Grupo de Precios',
+ 'Pricegroup deleted!' => 'Grupo Borrado!',
+ 'Pricegroup missing!' => 'Falta Grupo!',
+ 'Pricegroup saved!' => 'Guardado!',
+ 'Pricegroups' => 'Grupos de Precios',
+ 'Pricelist' => 'Lista de Precios',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Print and Post as new' => '',
+ 'Print and Save' => 'Imprimir y Guardar',
+ 'Print and Save as new' => '',
+ 'Print and post as new' => '',
+ 'Print and save as new' => '',
+ 'Printed' => 'Impreso',
+ 'Printer' => 'Impresora',
+ 'Printing' => '',
+ 'Printing ... ' => 'Imprimiendo...',
+ 'Process Transactions' => '',
+ 'Production' => '',
+ 'Profit Center' => 'Centro de Costo (Ingresos)',
+ 'Project' => 'Proyecto',
+ 'Project Description Translations' => 'Descripción Traducción del Proyecto',
+ 'Project Name' => '',
+ 'Project Number' => 'Número del Proyecto',
+ 'Project Number missing!' => '¡Falta el número de proyecto!',
+ 'Project Transactions' => 'Transacciones del Projecto',
+ 'Project deleted!' => '¡Proyecto borrado!',
+ 'Project not on file!' => '¡No se encuentra el proyecto en la base de datos!',
+ 'Project saved!' => '¡Proyecto guardado ',
+ 'Project/Job Name' => '',
+ 'Project/Job Number' => '',
+ 'Projects' => 'Proyectos',
+ 'Purchase Order' => 'Pedido',
+ 'Purchase Order Number' => 'Número de Orden de Compra',
+ 'Purchase Orders' => 'Pedidos',
+ 'Qty' => 'Cantidad',
+ 'Quantity exceeds available units to stock!' => 'No hay esta cantidad disponible en el Inventario!',
+ 'Quarter' => 'Trimestre',
+ 'Quotation' => 'Cotización',
+ 'Quotation ' => 'Cotización ',
+ 'Quotation Date' => 'Fecha de cotización',
+ 'Quotation Date missing!' => 'Falta fecha de cotización',
+ 'Quotation Number' => 'Número cotización',
+ 'Quotation Number missing!' => 'Falta número de cotización',
+ 'Quotation deleted!' => 'Cotización borrado',
+ 'Quotations' => 'Cotizaciones',
+ 'R' => 'R',
+ 'RFQ' => 'Solicitar Cotización',
+ 'RFQ ' => 'Solicitar Cotización ',
+ 'RFQ Number' => 'Número de Cotización',
+ 'RFQs' => 'Cotizaciones solicitados',
+ 'ROP' => 'Tope de envio',
+ 'Rate' => 'Tarifa',
+ 'Rate missing!' => 'Falta Tarifa!',
+ 'Recd' => 'Cobrado',
+ 'Receipt' => 'Recibo',
+ 'Receipt posted!' => 'Recibo agregado',
+ 'Receipts' => 'Recibos',
+ 'Receivables' => 'Cobros',
+ 'Receive' => 'Recibir',
+ 'Receive Merchandise' => 'Recibir mercancia',
+ 'Reconciliation' => 'Reconciliación',
+ 'Reconciliation Report' => 'Reporte de Reconciliación',
+ 'Record in' => 'Registrar en',
+ 'Recurring Transaction' => '',
+ 'Recurring Transactions' => '',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Resto',
+ 'Remove' => 'Eliminar',
+ 'Remove Audit trail up to' => 'Remover Rastro de Auditoría hasta',
+ 'Remove Audit trails up to' => 'Remover Rastro de Auditoría hasta',
+ 'Removed spoolfiles!' => 'Archivos eliminados de la cola',
+ 'Removing marked entries from queue ...' => 'Removiendo entradas sellecionads de la cola...',
+ 'Repeat' => '',
+ 'Report for' => 'Informe para',
+ 'Reports' => 'Informes',
+ 'Req' => '',
+ 'Request for Quotation' => 'Solicitar Cotización',
+ 'Request for Quotations' => 'Solicitar Cotizaciones',
+ 'Required by' => 'Aceptado el',
+ 'Retained Earnings' => 'Resultado del Ejercicio',
+ 'Role' => 'Función',
+ 'S' => 'S',
+ 'SIC' => 'SIC',
+ 'SIC deleted!' => 'SIC borrado!',
+ 'SIC saved!' => 'SIC guardado!',
+ 'SKU' => 'SKU',
+ 'SSN' => 'RIF',
+ 'Sale' => 'Venta',
+ 'Sales' => 'Ventas',
+ 'Sales Invoice' => 'Facturas de ventas',
+ 'Sales Invoice ' => 'Facturas de ventas ',
+ 'Sales Invoice.' => 'Facturas de ventas.',
+ 'Sales Invoice/AR Transaction Number' => '',
+ 'Sales Invoices' => 'Factura de venta',
+ 'Sales Order' => 'Presupuesto',
+ 'Sales Order Number' => 'N°de Pedido',
+ 'Sales Orders' => 'Presupuestos',
+ 'Sales Quotation Number' => 'N°de Cotización de Venta',
+ 'Salesperson' => 'Vendedor',
+ 'Saturday' => '',
+ 'Save' => 'Guardar',
+ 'Save Pricelist' => 'Guardar Lista de Precios',
+ 'Save Schedule' => '',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Save to File' => 'Guardar en un archivo',
+ 'Saving' => '',
+ 'Schedule' => '',
+ 'Scheduled' => '',
+ 'Screen' => 'Pantalla',
+ 'Search' => 'Búsqueda',
+ 'Select' => 'Seleccionar',
+ 'Select Customer' => '',
+ 'Select Vendor' => '',
+ 'Select a Printer!' => '',
+ 'Select a printer!' => '',
+ 'Select all' => 'Guardar todo',
+ 'Select from one of the items below' => 'Seleccione uno de los artículos siguientes',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Select items' => '',
+ 'Select payment' => '¡Seleccione Pago!',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Select txt, postscript or PDF!' => '¡Seleccione txt, postscript o PDF!',
+ 'Sell' => 'Vender',
+ 'Sell Price' => 'Precio de venta',
+ 'Send by E-Mail' => 'Enviar por correo electrónico',
+ 'Sending' => '',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'No de Serial',
+ 'Serial Number' => 'Número del Serial',
+ 'Service' => 'Servicio',
+ 'Service Code' => '',
+ 'Service/Labor Code' => '',
+ 'Services' => 'Servicios',
+ 'Session Timeout' => '¡Sesión Caducó!',
+ 'Session expired!' => '¡Sesión Expiró!',
+ 'Setup Templates' => 'Configurar plantillas',
+ 'Ship' => 'Envio',
+ 'Ship Merchandise' => 'Enviar Mercancía',
+ 'Ship to' => 'Destino',
+ 'Ship via' => 'Envio por',
+ 'Shipping' => 'Envio',
+ 'Shipping Address' => 'Dirección del envio',
+ 'Shipping Date' => 'Fecha del Envio',
+ 'Shipping Date missing!' => 'Falta Fecha del Envio',
+ 'Shipping Point' => 'Destino',
+ 'Short' => 'Corto',
+ 'Signature' => 'Firma',
+ 'Source' => 'Fuente',
+ 'Spoolfile' => 'Cola de Impresión',
+ 'Standard' => 'Estándard',
+ 'Standard Industrial Codes' => 'Standard Industrial Codes (Código estandardizado)',
+ 'Startdate' => 'Fecha inicial',
+ 'State' => 'Estado',
+ 'State/Province' => 'Departamento',
+ 'Statement' => 'Estado de cuenta',
+ 'Statement Balance' => 'Balance de cuenta',
+ 'Statement sent to' => 'Estado de cuenta enviado a',
+ 'Statements sent to printer!' => '¡Estado de cuenta enviado a la impresora!',
+ 'Stock' => 'Inventario',
+ 'Stock Assembly' => 'Inventariar compuesto',
+ 'Stocking Date' => '',
+ 'Stylesheet' => 'Hoja de estilo',
+ 'Sub-contract GIFI' => 'Sub-Contrato PUC',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Résumen',
+ 'Sunday' => '',
+ 'Supervisor' => 'Supervisor',
+ 'System' => 'Sistema',
+ 'System Defaults' => 'Predeterminados del Sistema',
+ 'Tax' => 'Impuesto',
+ 'Tax Accounts' => 'Cuentas de impuestos',
+ 'Tax Included' => 'Impuestos incluidos en el precio',
+ 'Tax Number' => 'Numero de Impuesto',
+ 'Tax Number / SSN' => 'NIT./CC./CE.',
+ 'Tax collected' => 'Impuestos cobrados',
+ 'Tax paid' => 'Impuestos pagados',
+ 'Taxable' => 'Impuestos gravables',
+ 'Template saved!' => '¡Plantilla guardada!',
+ 'Templates' => 'Plantillas',
+ 'Terms' => 'Crédito',
+ 'Text' => '',
+ 'Text Templates' => 'Plantillas de Texto',
+ 'The following Datasets are not in use and can be deleted' => 'Las siguientes bases de datos no están en uso y se pueden borrar',
+ 'The following Datasets need to be updated' => 'Es necesario actualizar las siguientes bases de datos',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Esta es una verificacion preliminar de fuentes existentes. No se creará ni borrará nada durante esta etapa',
+ 'Thursday' => '',
+ 'Till' => 'Caja',
+ 'Time In' => '',
+ 'Time Out' => '',
+ 'Timecard' => '',
+ 'Timecard deleted!' => '',
+ 'Timecard saved!' => '',
+ 'Timecards' => '',
+ 'Times' => '',
+ 'To' => 'Hasta',
+ 'To Warehouse' => '',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Para añadir un usuario a un grupo, edite un nombre, cambie el nombre de usuario (login) y guarde los cambios. Un nuevo usuario, con las mismas propiedades se guardará bajo el nuevo nombre de usuario (login).',
+ 'Top Level' => 'Nivel superior',
+ 'Total' => 'Total',
+ 'Tracking Items' => '',
+ 'Trade Discount' => 'Descuento',
+ 'Transaction' => 'Asiento',
+ 'Transaction Date missing!' => 'No se ha definido la fecha de la transacción',
+ 'Transaction Dates' => '',
+ 'Transaction deleted!' => '¡Transacción borrada!',
+ 'Transaction posted!' => '¡Transacción registrada!',
+ 'Transaction reversal enforced for all dates' => 'Se ha forzado la anulación de las transacciones para todas las fechas',
+ 'Transaction reversal enforced up to' => 'Se ha forzado la anulación de las transacciones hasta',
+ 'Transactions' => 'Impagados',
+ 'Transfer' => 'Transferencia',
+ 'Transfer Inventory' => 'Transferir Inventario',
+ 'Transfer from' => '',
+ 'Transfer to' => 'Transferir a',
+ 'Translation' => 'Traducción',
+ 'Translation deleted!' => 'Traducción Borrada!',
+ 'Translation not on file!' => 'Traducción no se encuentra en la Base de Datos',
+ 'Translations' => 'Traducciones',
+ 'Translations saved!' => 'Guardado',
+ 'Trial Balance' => 'Balance de comprobación',
+ 'Tuesday' => '',
+ 'Type of Business' => 'Clase de Negocio',
+ 'Unit' => 'Unidad',
+ 'Unit of measure' => 'Unidad de medida',
+ 'Unlock System' => 'Unlock System',
+ 'Update' => 'Actualizar',
+ 'Update Dataset' => 'Actualizar base de datos',
+ 'Updated' => '¡Actualizado!',
+ 'Upgrading to Version' => 'Actulaizando a versión',
+ 'Use Templates' => 'Plantillas de usuarios',
+ 'User' => 'Usuario',
+ 'User deleted!' => '¡Usuario borrado!',
+ 'User saved!' => '¡Usuario guardado!',
+ 'Valid until' => 'Válido hasta',
+ 'Vendor' => 'Proveedor',
+ 'Vendor History' => 'Historial Proveedor',
+ 'Vendor Invoice' => 'Factura de compras',
+ 'Vendor Invoice ' => 'Factura de Compra',
+ 'Vendor Invoice.' => 'Factura de Compra.',
+ 'Vendor Invoice/AP Transaction Number' => '',
+ 'Vendor Invoices' => 'Facturas de Proveedor',
+ 'Vendor Number' => 'Código Vendedor',
+ 'Vendor deleted!' => '¡Proveedor borrado!',
+ 'Vendor missing!' => '¡Falta el proveedor!',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Vendor saved!' => '¡Proveedor guardado!',
+ 'Vendors' => 'Proveedores',
+ 'Version' => 'Versión',
+ 'Warehouse' => 'Bodega',
+ 'Warehouse deleted!' => 'Bodega borrado',
+ 'Warehouse saved!' => 'Bodegas guardado',
+ 'Warehouses' => 'Bodegas',
+ 'Warning!' => 'Alerta!',
+ 'Wednesday' => '',
+ 'Week' => '',
+ 'Week(s)' => '',
+ 'Weeks' => '',
+ 'Weight' => 'Peso',
+ 'Weight Unit' => 'Unidad de peso',
+ 'What type of item is this?' => '¿De qué tipo es este concepto?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Work Orders' => 'Ordenes de Trabajo',
+ 'Work Phone' => 'Teléfono (Oficina)',
+ 'Year' => 'Año',
+ 'Year(s)' => '',
+ 'Yearend' => 'Fin del Año',
+ 'Yearend date missing!' => 'Falta fecha del Fin del Año',
+ 'Yearend posted!' => 'Fin del Año guardado!',
+ 'Yearend posting failed!' => 'No se puede guardar Fin del Año',
+ 'Years' => '',
+ 'Yes' => 'Si',
+ 'You are logged out' => '¡Ud. está desconectado del sistema!',
+ 'You are posting an existing transaction!' => '',
+ 'You are printing and posting an existing transaction!' => '',
+ 'You are printing and saving an existing order' => '',
+ 'You are printing and saving an existing quotation' => '',
+ 'You are printing and saving an existing transaction!' => '',
+ 'You are saving an existing order' => '',
+ 'You are saving an existing quotation' => '',
+ 'You are saving an existing transaction!' => '',
+ 'You did not enter a name!' => 'No ha introducido el nombre',
+ 'You must enter a host and port for local and remote connections!' => 'Debe introducir una máquina servidor de bases de datos y un puerto para conexiones locales y remotas',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'account cannot be set to any other type of account' => 'No se puede cambiar a otro tipo de cuenta',
+ 'as at' => 'al',
+ 'days' => 'días',
+ 'does not exist' => 'no existe',
+ 'done' => 'hecho',
+ 'ea' => 'unid.',
+ 'failed' => '',
+ 'for' => '',
+ 'for Period' => 'para el periodo',
+ 'is already a member!' => 'ya es actualmente un miembro',
+ 'localhost' => 'máquina local',
+ 'locked!' => 'Bloqueado!',
+ 'partsgroup' => '',
+ 'posted!' => 'Guardado',
+ 'sent' => 'Enviado',
+ 'successfully created!' => 'creado satisfactoriamente',
+ 'successfully deleted!' => 'borrado satisfactoriamente',
+ 'time(s)' => '',
+ 'unexpected error!' => '',
+ 'website' => 'sitio web',
+};
+
+1;
diff --git a/locale/es/am b/locale/es/am
new file mode 100755
index 00000000..d1963909
--- /dev/null
+++ b/locale/es/am
@@ -0,0 +1,284 @@
+$self{texts} = {
+ 'AP' => 'Cartera de pagos',
+ 'AR' => 'Cartera de cobros',
+ 'About' => 'Acerca de',
+ 'Account' => 'Cuenta',
+ 'Account Number' => 'Número de cuenta',
+ 'Account Number missing!' => 'No se ha definido el número de la cuenta',
+ 'Account Type' => 'Categoría de cuenta',
+ 'Account Type missing!' => 'No se ha definido el tipo de la cuenta',
+ 'Account deleted!' => '¡Cuenta borraba!',
+ 'Account does not exist!' => 'Cuenta no existe!',
+ 'Account saved!' => '¡Cuenta guardada!',
+ 'Accounting Menu' => 'Menú general',
+ 'Accrual' => 'Acumulado',
+ 'Activate Audit trail' => 'Activar Rastro Auditoría',
+ 'Add Account' => 'Añadir cuenta',
+ 'Add Business' => 'Agregar Empresa',
+ 'Add Department' => 'Agregar Centro de Costos',
+ 'Add GIFI' => 'Añadir código GIFI',
+ 'Add Language' => 'Agregar Idioma',
+ 'Add SIC' => 'Agregar SIC',
+ 'Add Warehouse' => 'Agregar Bodega',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Total',
+ 'Asset' => 'Activo',
+ 'Audit Control' => 'Control de auditoría',
+ 'Audit trail disabled' => 'Rastro de Auditoría desactivado',
+ 'Audit trail enabled' => 'Rastro de Auditoría activado',
+ 'Audit trail removed up to' => 'Rastro de Auditoría removido hasta',
+ 'Backup sent to' => 'Copia de seguridad enviada a',
+ 'Bin List' => 'Lista Empaque',
+ 'Books are open' => 'Los libros están abiertos',
+ 'Business Number' => 'Numero de negocio',
+ 'Business deleted!' => 'Empresa eliminada!',
+ 'Business saved!' => 'Empresa guardada!',
+ 'COGS' => 'Costo de los artículos',
+ 'Cannot delete account!' => '¡No se puede borrar la cuenta!',
+ 'Cannot delete default account!' => 'No se puede borrar la cuenta por omisión',
+ 'Cannot save account!' => '¡No se puede guardar la cuenta!',
+ 'Cannot save defaults!' => 'No puedo guardar preferencias!',
+ 'Cannot save preferences!' => '¡No se puede guardar las preferencias!',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Tiene que seleccionar cuenta!',
+ 'Cannot set multiple options for' => 'No puedo crear multiples opciones para',
+ 'Cash' => 'Efectivo',
+ 'Chart of Accounts' => 'Cuadro de cuentas',
+ 'Close Books up to' => 'Cerrar los libros hasta',
+ 'Code' => 'Código',
+ 'Code missing!' => 'Falta código',
+ 'Company' => 'Compañía',
+ 'Confirm' => 'Confirmar',
+ 'Confirm!' => 'Confirmar',
+ 'Continue' => 'Continuar',
+ 'Contra' => 'Cuentas del Orden',
+ 'Copy to COA' => 'Copiar al catálogo de cuentas',
+ 'Cost Center' => 'Centro de Costos (Gastos)',
+ 'Credit' => 'Crédito',
+ 'Customer Number' => 'Número del cliente',
+ 'Database Host' => 'Máquina servidor de base de datos',
+ 'Dataset' => 'Base de datos',
+ 'Date Format' => 'Formato de fecha',
+ 'Debit' => 'Débito',
+ 'Defaults saved!' => 'Guardado!',
+ 'Delete' => 'Borrar',
+ 'Delete Account' => 'Borrar cuenta',
+ 'Department deleted!' => 'Centro de Costos borrado!',
+ 'Department saved!' => 'Centro de Costos guardado!',
+ 'Departments' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Description missing!' => 'Falta Descripción',
+ 'Discount' => 'Descuento',
+ 'Dropdown Limit' => 'Límite de efectivo',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'Edit' => 'Editar',
+ 'Edit Account' => 'Editar cuenta',
+ 'Edit Business' => 'Editar empresa',
+ 'Edit Department' => 'Editar Centro de Costos',
+ 'Edit GIFI' => 'Editar GIFI',
+ 'Edit Language' => 'Editar Idioma',
+ 'Edit Preferences for' => 'Editar preferencias de',
+ 'Edit SIC' => 'Editar SIC',
+ 'Edit Template' => 'Editar plantilla',
+ 'Edit Warehouse' => 'Editar Bodega',
+ 'Employee Number' => 'Número de Empleado',
+ 'Enforce transaction reversal for all dates' => 'Forzar la anulación de las transacciones para todas las fechas',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Introduzca hasta 3 letras separadas por dos puntos (p.e. CAD:USD:EUR) para las monedas locales y las extranjeras',
+ 'Equity' => 'Balance',
+ 'Expense' => 'Gastos',
+ 'Expense/Asset' => 'Gastos/Activo',
+ 'Fax' => 'Fax',
+ 'Foreign Exchange Gain' => 'Ganancia en moneda extranjera',
+ 'Foreign Exchange Loss' => 'Pérdida en moneda extranjera',
+ 'GIFI' => 'Código GIFI',
+ 'GIFI deleted!' => '¡Borrado el código GIFI!',
+ 'GIFI missing!' => 'No se ha definido el código GIFI',
+ 'GIFI saved!' => '¡Guardado el código GIFI!',
+ 'GL Transaction' => 'Transacción en el libro mayor',
+ 'Heading' => 'Encabezado',
+ 'ID' => 'ID',
+ 'Include in drop-down menus' => 'Incluir en menúes desplegables:',
+ 'Income' => 'Ingreso',
+ 'Inventory' => 'Inventario',
+ 'Invoice' => 'Factura',
+ 'Is this a summary account to record' => '¿Es esta una cuenta de resumen a registrar?',
+ 'Language' => 'Lenguaje',
+ 'Language deleted!' => 'Idioma Borrada!',
+ 'Language saved!' => 'Idioma Guardada!',
+ 'Languages' => 'Idiomas',
+ 'Last Numbers & Default Accounts' => 'Últimos números y cuentas por omisión',
+ 'Liability' => 'Pasivo',
+ 'Licensed to' => 'Adaptado para',
+ 'Link' => 'Enlaces',
+ 'Menu Width' => 'Ancho del Menu',
+ 'Method' => 'Metódo',
+ 'Month' => 'Mes',
+ 'Name' => 'Nombre',
+ 'No' => 'No',
+ 'No email address for' => 'Falta la dirección de correo electrónico de',
+ 'Number' => 'Número',
+ 'Number Format' => 'Formato de número',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Albarán',
+ 'Password' => 'Contraseña',
+ 'Password does not match!' => '¡Contraseña incorrecta!',
+ 'Payables' => 'Pagos',
+ 'Payment' => 'Pago',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Empaque',
+ 'Postscript' => 'Postscript',
+ 'Preferences saved!' => 'Preferencias guardadas',
+ 'Print' => 'Imprimir',
+ 'Printer' => 'Impresora',
+ 'Profit Center' => 'Centro de Costo (Ingresos)',
+ 'Purchase Order' => 'Pedido',
+ 'Purchase Order Number' => 'Número de Orden de Compra',
+ 'Purchase Orders' => 'Pedidos',
+ 'RFQ Number' => 'Número de Cotización',
+ 'Rate' => 'Tarifa',
+ 'Receivables' => 'Cobros',
+ 'Reference' => 'Referencia',
+ 'Remove Audit trail up to' => 'Remover Rastro de Auditoría hasta',
+ 'Retained Earnings' => 'Resultado del Ejercicio',
+ 'SIC deleted!' => 'SIC borrado!',
+ 'SIC saved!' => 'SIC guardado!',
+ 'Sales Invoice' => 'Facturas de ventas',
+ 'Sales Order' => 'Presupuesto',
+ 'Sales Order Number' => 'N°de Pedido',
+ 'Sales Orders' => 'Presupuestos',
+ 'Sales Quotation Number' => 'N°de Cotización de Venta',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Session Timeout' => '¡Sesión Caducó!',
+ 'Signature' => 'Firma',
+ 'Standard Industrial Codes' => 'Standard Industrial Codes (Código estandardizado)',
+ 'Stylesheet' => 'Hoja de estilo',
+ 'System Defaults' => 'Predeterminados del Sistema',
+ 'Tax' => 'Impuesto',
+ 'Template saved!' => '¡Plantilla guardada!',
+ 'Transaction' => 'Asiento',
+ 'Transaction reversal enforced for all dates' => 'Se ha forzado la anulación de las transacciones para todas las fechas',
+ 'Transaction reversal enforced up to' => 'Se ha forzado la anulación de las transacciones hasta',
+ 'Type of Business' => 'Clase de Negocio',
+ 'Update' => 'Actualizar',
+ 'User' => 'Usuario',
+ 'Vendor Invoice' => 'Factura de compras',
+ 'Vendor Number' => 'Código Vendedor',
+ 'Version' => 'Versión',
+ 'Warehouse deleted!' => 'Bodega borrado',
+ 'Warehouse saved!' => 'Bodegas guardado',
+ 'Warehouses' => 'Bodegas',
+ 'Weight Unit' => 'Unidad de peso',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Year' => 'Año',
+ 'Yearend' => 'Fin del Año',
+ 'Yearend date missing!' => 'Falta fecha del Fin del Año',
+ 'Yearend posted!' => 'Fin del Año guardado!',
+ 'Yearend posting failed!' => 'No se puede guardar Fin del Año',
+ 'Yes' => 'Si',
+ 'account cannot be set to any other type of account' => 'No se puede cambiar a otro tipo de cuenta',
+ 'done' => 'hecho',
+ 'localhost' => 'máquina local',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'añadir_cuenta' => 'add_account',
+ 'agregar_empresa' => 'add_business',
+ 'agregar_centro_de_costos' => 'add_department',
+ 'agregar_idioma' => 'add_language',
+ 'agregar_sic' => 'add_sic',
+ 'agregar_bodega' => 'add_warehouse',
+ 'continuar' => 'continue',
+ 'copiar_al_catálogo_de_cuentas' => 'copy_to_coa',
+ 'borrar' => 'delete',
+ 'editar' => 'edit',
+ 'editar_cuenta' => 'edit_account',
+ 'guardar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/es/ap b/locale/es/ap
new file mode 100755
index 00000000..cc0e6796
--- /dev/null
+++ b/locale/es/ap
@@ -0,0 +1,210 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Impagados Proveedores',
+ 'AP Transaction' => 'Gestión se pago',
+ 'AP Transactions' => 'Gestiones de pagos',
+ 'AR Outstanding' => 'Impagados Cartera',
+ 'AR Transaction' => 'Gestión de cobro',
+ 'AR Transactions' => 'Gestiones de cobros',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Add AP Transaction' => 'Añadir Asiento de CxP',
+ 'Add AR Transaction' => 'Añadir Asiento de CxC',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Cantidad adeudada',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => '¿Está seguro de que desea borrar la transacción?',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => '¡No se puede borrar la transacción!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo ya cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar una transacción para un periodo cerrado',
+ 'Cannot post transaction!' => '¡No se puede registrar la transacción',
+ 'Cc' => 'Cc',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Cerrado',
+ 'Confirm!' => 'Confirmar',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Limite de credito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Date Paid' => 'Fecha de pago',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Department' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'Due Date missing!' => 'Falta la fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'Edit AP Transaction' => 'Editar Asiento de CxP',
+ 'Edit AR Transaction' => 'Editar Asiento de CxC',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de cambio',
+ 'Exchange rate for payment missing!' => '¡Falta la tasa de cambio para el pago!',
+ 'Exchange rate missing!' => '¡Falta la tasa de cambio!',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Manager' => 'Administrador',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Message' => 'Mensaje',
+ 'Month' => 'Mes',
+ 'No.' => 'No.',
+ 'Notes' => 'Notas',
+ 'Nothing to print!' => '¡No hay nada que imprimir!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Number' => 'Número de orden',
+ 'PDF' => 'PDF',
+ 'Paid' => 'Pagado',
+ 'Payment date missing!' => 'No se encuentra la fecha de pago',
+ 'Payments' => 'Vencimientos impagados',
+ 'Period' => 'Período',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => '¡No se encuentra el proyecto en la base de datos!',
+ 'Quarter' => 'Trimestre',
+ 'Receipt' => 'Recibo',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Resto',
+ 'Sales Invoice.' => 'Facturas de ventas.',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Select payment' => '¡Seleccione Pago!',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Ship to' => 'Destino',
+ 'Ship via' => 'Envio por',
+ 'Shipping Point' => 'Destino',
+ 'Source' => 'Fuente',
+ 'Startdate' => 'Fecha inicial',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Résumen',
+ 'Tax' => 'Impuesto',
+ 'Tax Included' => 'Impuestos incluidos en el precio',
+ 'Till' => 'Caja',
+ 'To' => 'Hasta',
+ 'Total' => 'Total',
+ 'Transaction' => 'Asiento',
+ 'Transaction deleted!' => '¡Transacción borrada!',
+ 'Transaction posted!' => '¡Transacción registrada!',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice.' => 'Factura de Compra.',
+ 'Vendor missing!' => '¡Falta el proveedor!',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Warning!' => 'Alerta!',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'gestión_se_pago' => 'ap_transaction',
+ 'gestión_de_cobro' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'imprimir_y_registrar' => 'print_and_post',
+ 'facturas_de_ventas_' => 'sales_invoice_',
+ 'destino' => 'ship_to',
+ 'actualizar' => 'update',
+ 'factura_de_compra_' => 'vendor_invoice_',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/es/ar b/locale/es/ar
new file mode 100755
index 00000000..cc0e6796
--- /dev/null
+++ b/locale/es/ar
@@ -0,0 +1,210 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Impagados Proveedores',
+ 'AP Transaction' => 'Gestión se pago',
+ 'AP Transactions' => 'Gestiones de pagos',
+ 'AR Outstanding' => 'Impagados Cartera',
+ 'AR Transaction' => 'Gestión de cobro',
+ 'AR Transactions' => 'Gestiones de cobros',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Add AP Transaction' => 'Añadir Asiento de CxP',
+ 'Add AR Transaction' => 'Añadir Asiento de CxC',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Cantidad adeudada',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => '¿Está seguro de que desea borrar la transacción?',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => '¡No se puede borrar la transacción!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo ya cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar una transacción para un periodo cerrado',
+ 'Cannot post transaction!' => '¡No se puede registrar la transacción',
+ 'Cc' => 'Cc',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Cerrado',
+ 'Confirm!' => 'Confirmar',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Limite de credito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Date Paid' => 'Fecha de pago',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Department' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'Due Date missing!' => 'Falta la fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'Edit AP Transaction' => 'Editar Asiento de CxP',
+ 'Edit AR Transaction' => 'Editar Asiento de CxC',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de cambio',
+ 'Exchange rate for payment missing!' => '¡Falta la tasa de cambio para el pago!',
+ 'Exchange rate missing!' => '¡Falta la tasa de cambio!',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Manager' => 'Administrador',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Message' => 'Mensaje',
+ 'Month' => 'Mes',
+ 'No.' => 'No.',
+ 'Notes' => 'Notas',
+ 'Nothing to print!' => '¡No hay nada que imprimir!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Number' => 'Número de orden',
+ 'PDF' => 'PDF',
+ 'Paid' => 'Pagado',
+ 'Payment date missing!' => 'No se encuentra la fecha de pago',
+ 'Payments' => 'Vencimientos impagados',
+ 'Period' => 'Período',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => '¡No se encuentra el proyecto en la base de datos!',
+ 'Quarter' => 'Trimestre',
+ 'Receipt' => 'Recibo',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Resto',
+ 'Sales Invoice.' => 'Facturas de ventas.',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Select payment' => '¡Seleccione Pago!',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Ship to' => 'Destino',
+ 'Ship via' => 'Envio por',
+ 'Shipping Point' => 'Destino',
+ 'Source' => 'Fuente',
+ 'Startdate' => 'Fecha inicial',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Résumen',
+ 'Tax' => 'Impuesto',
+ 'Tax Included' => 'Impuestos incluidos en el precio',
+ 'Till' => 'Caja',
+ 'To' => 'Hasta',
+ 'Total' => 'Total',
+ 'Transaction' => 'Asiento',
+ 'Transaction deleted!' => '¡Transacción borrada!',
+ 'Transaction posted!' => '¡Transacción registrada!',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice.' => 'Factura de Compra.',
+ 'Vendor missing!' => '¡Falta el proveedor!',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Warning!' => 'Alerta!',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'gestión_se_pago' => 'ap_transaction',
+ 'gestión_de_cobro' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'imprimir_y_registrar' => 'print_and_post',
+ 'facturas_de_ventas_' => 'sales_invoice_',
+ 'destino' => 'ship_to',
+ 'actualizar' => 'update',
+ 'factura_de_compra_' => 'vendor_invoice_',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/es/arap b/locale/es/arap
new file mode 100755
index 00000000..fbef7b26
--- /dev/null
+++ b/locale/es/arap
@@ -0,0 +1,51 @@
+$self{texts} = {
+ 'Address' => 'Dirección',
+ 'Bcc' => 'Bcc',
+ 'Cc' => 'Cc',
+ 'Continue' => 'Continuar',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Description' => 'Descripción',
+ 'E-mail' => 'Correo electrónico',
+ 'Message' => 'Mensaje',
+ 'Number' => 'Número',
+ 'Print' => 'Imprimir',
+ 'Project not on file!' => '¡No se encuentra el proyecto en la base de datos!',
+ 'Reference' => 'Referencia',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Startdate' => 'Fecha inicial',
+ 'Subject' => 'Asunto',
+ 'To' => 'Hasta',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Warning!' => 'Alerta!',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/es/arapprn b/locale/es/arapprn
new file mode 100755
index 00000000..54ffd18e
--- /dev/null
+++ b/locale/es/arapprn
@@ -0,0 +1,32 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Amount' => 'Total',
+ 'Continue' => 'Continuar',
+ 'Date' => 'Fecha',
+ 'Memo' => 'Memo',
+ 'Nothing to print!' => '¡No hay nada que imprimir!',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'Postscript',
+ 'Printed' => 'Impreso',
+ 'Screen' => 'Pantalla',
+ 'Select payment' => '¡Seleccione Pago!',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Source' => 'Fuente',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/es/bp b/locale/es/bp
new file mode 100755
index 00000000..f581b638
--- /dev/null
+++ b/locale/es/bp
@@ -0,0 +1,67 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Seguro que quieres remover las entradas seleccionadas de la cola?',
+ 'Bin Lists' => 'Listas Empaque',
+ 'Cannot remove files!' => 'No puedo borrar archivos!',
+ 'Confirm!' => 'Confirmar',
+ 'Continue' => 'Continuar',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Date' => 'Fecha',
+ 'Employee' => 'Colaborador/Empleado',
+ 'From' => 'Desde',
+ 'ID' => 'ID',
+ 'Invoice' => 'Factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Marked entries printed!' => 'Selección impresa',
+ 'Month' => 'Mes',
+ 'Order' => 'Orden',
+ 'Order Number' => 'Número de orden',
+ 'Packing Lists' => 'Lista de empaque',
+ 'Period' => 'Período',
+ 'Pick Lists' => 'Listas de Empaque',
+ 'Print' => 'Imprimir',
+ 'Purchase Orders' => 'Pedidos',
+ 'Quarter' => 'Trimestre',
+ 'Quotation' => 'Cotización',
+ 'Quotation Number' => 'Número cotización',
+ 'Quotations' => 'Cotizaciones',
+ 'RFQs' => 'Cotizaciones solicitados',
+ 'Remove' => 'Eliminar',
+ 'Removed spoolfiles!' => 'Archivos eliminados de la cola',
+ 'Removing marked entries from queue ...' => 'Removiendo entradas sellecionads de la cola...',
+ 'Sales Invoices' => 'Factura de venta',
+ 'Sales Orders' => 'Presupuestos',
+ 'Select all' => 'Guardar todo',
+ 'Spoolfile' => 'Cola de Impresión',
+ 'To' => 'Hasta',
+ 'Vendor' => 'Proveedor',
+ 'Work Orders' => 'Ordenes de Trabajo',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+ 'done' => 'hecho',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'imprimir' => 'print',
+ 'eliminar' => 'remove',
+ 'guardar_todo' => 'select_all',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/es/ca b/locale/es/ca
new file mode 100755
index 00000000..f935296b
--- /dev/null
+++ b/locale/es/ca
@@ -0,0 +1,59 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Balance',
+ 'Chart of Accounts' => 'Cuadro de cuentas',
+ 'Credit' => 'Crédito',
+ 'Current' => 'Actual',
+ 'Date' => 'Fecha',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Department' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'GIFI' => 'Código GIFI',
+ 'Include in Report' => 'Incluir en informe',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'List Transactions' => 'Listar transacciones',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Month' => 'Mes',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Period' => 'Período',
+ 'Project Number' => 'Número del Proyecto',
+ 'Quarter' => 'Trimestre',
+ 'R' => 'R',
+ 'Reference' => 'Referencia',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'Hasta',
+ 'Year' => 'Año',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'listar_transacciones' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/es/cp b/locale/es/cp
new file mode 100755
index 00000000..fffbb4b8
--- /dev/null
+++ b/locale/es/cp
@@ -0,0 +1,123 @@
+$self{texts} = {
+ 'AP' => 'Cartera de pagos',
+ 'AR' => 'Cartera de cobros',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Address' => 'Dirección',
+ 'All' => 'Todos',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Cantidad adeudada',
+ 'Bcc' => 'Bcc',
+ 'Cannot post Payment!' => 'No puedo guardar pago',
+ 'Cannot post Receipt!' => 'No puedo guardar recibo',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo ya cerrado!',
+ 'Cc' => 'Cc',
+ 'Continue' => 'Continuar',
+ 'Currency' => 'Moneda',
+ 'Customer' => 'Cliente',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Date missing!' => '¡Falta la fecha!',
+ 'Department' => 'Centro de Costos',
+ 'Deposit' => 'Depósito',
+ 'Description' => 'Descripción',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'Exchange Rate' => 'Tasa de cambio',
+ 'Exchange rate missing!' => '¡Falta la tasa de cambio!',
+ 'From' => 'Desde',
+ 'Invoice' => 'Factura',
+ 'Invoices' => 'Facturas',
+ 'Language' => 'Lenguaje',
+ 'Memo' => 'Memo',
+ 'Message' => 'Mensaje',
+ 'Number' => 'Número',
+ 'PDF' => 'PDF',
+ 'Payment' => 'Pago',
+ 'Payment posted!' => '¡Pago registrado!',
+ 'Payments' => 'Vencimientos impagados',
+ 'Post' => 'Registrar',
+ 'Postscript' => 'Postscript',
+ 'Prepayment' => 'Prepago',
+ 'Print' => 'Imprimir',
+ 'Project not on file!' => '¡No se encuentra el proyecto en la base de datos!',
+ 'Receipt' => 'Recibo',
+ 'Receipt posted!' => 'Recibo agregado',
+ 'Receipts' => 'Recibos',
+ 'Reference' => 'Referencia',
+ 'Screen' => 'Pantalla',
+ 'Select' => 'Seleccionar',
+ 'Select all' => 'Guardar todo',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Source' => 'Fuente',
+ 'Startdate' => 'Fecha inicial',
+ 'Subject' => 'Asunto',
+ 'To' => 'Hasta',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Warning!' => 'Alerta!',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuar' => 'continue',
+ 'registrar' => 'post',
+ 'imprimir' => 'print',
+ 'guardar_todo' => 'select_all',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/es/ct b/locale/es/ct
new file mode 100755
index 00000000..4dc126bf
--- /dev/null
+++ b/locale/es/ct
@@ -0,0 +1,186 @@
+$self{texts} = {
+ 'AP Transaction' => 'Gestión se pago',
+ 'AP Transactions' => 'Gestiones de pagos',
+ 'AR Transaction' => 'Gestión de cobro',
+ 'AR Transactions' => 'Gestiones de cobros',
+ 'Accounting Menu' => 'Menú general',
+ 'Active' => 'Activo',
+ 'Add Customer' => 'Añadir cliente',
+ 'Add Vendor' => 'Añadir proveedor',
+ 'Address' => 'Dirección',
+ 'All' => 'Todos',
+ 'Amount' => 'Total',
+ 'BIC' => 'BIC',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Dirección Factura',
+ 'Break' => 'Pausa',
+ 'Cannot delete customer!' => '¡No se puede borrar el cliente!',
+ 'Cannot delete vendor!' => '¡No se puede borrar el vendedor!',
+ 'Cc' => 'Cc',
+ 'City' => 'Ciudad',
+ 'Closed' => 'Cerrado',
+ 'Company Name' => 'Nombre de la empresa',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Cost' => 'Costo',
+ 'Could not save pricelist!' => '¡No se pudo guradar lista de precios!',
+ 'Country' => 'País',
+ 'Credit Limit' => 'Limite de credito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Customer History' => 'Historial del Cliente',
+ 'Customer Number' => 'Número del cliente',
+ 'Customer deleted!' => '¡Cliente borrado!',
+ 'Customer saved!' => '¡Cliente guardado!',
+ 'Customers' => 'Clientes',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Discount' => 'Descuento',
+ 'E-mail' => 'Correo electrónico',
+ 'Edit Customer' => 'Editar Cliente',
+ 'Edit Vendor' => 'Editar Proveedor',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Enddate' => 'Fecha final',
+ 'Fax' => 'Fax',
+ 'From' => 'Desde',
+ 'GIFI' => 'Código GIFI',
+ 'Group' => 'Grupo',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Invoice' => 'Factura',
+ 'Item already on pricelist!' => '¡Artículo está incluido en la lista de precios!',
+ 'Item not on file!' => 'El concepto no se encuentra en ningún archivo',
+ 'Language' => 'Lenguaje',
+ 'Leadtime' => 'Tiempo de Entrega',
+ 'Manager' => 'Administrador',
+ 'Name' => 'Nombre',
+ 'Name missing!' => '¡Falta el nombre!',
+ 'No.' => 'No.',
+ 'Notes' => 'Notas',
+ 'Number' => 'Número',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Orphaned' => 'Huérfano',
+ 'POS' => 'Punto de Venta',
+ 'Phone' => 'Teléfono',
+ 'Pricegroup' => 'Grupo de Precios',
+ 'Pricelist' => 'Lista de Precios',
+ 'Project Number' => 'Número del Proyecto',
+ 'Purchase Order' => 'Pedido',
+ 'Purchase Orders' => 'Pedidos',
+ 'Qty' => 'Cantidad',
+ 'Quotation' => 'Cotización',
+ 'Quotations' => 'Cotizaciones',
+ 'RFQ' => 'Solicitar Cotización',
+ 'Request for Quotations' => 'Solicitar Cotizaciones',
+ 'SIC' => 'SIC',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Facturas de ventas',
+ 'Sales Invoices' => 'Factura de venta',
+ 'Sales Order' => 'Presupuesto',
+ 'Sales Orders' => 'Presupuestos',
+ 'Salesperson' => 'Vendedor',
+ 'Save' => 'Guardar',
+ 'Save Pricelist' => 'Guardar Lista de Precios',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Search' => 'Búsqueda',
+ 'Sell Price' => 'Precio de venta',
+ 'Serial Number' => 'Número del Serial',
+ 'Shipping Address' => 'Dirección del envio',
+ 'Startdate' => 'Fecha inicial',
+ 'State' => 'Estado',
+ 'State/Province' => 'Departamento',
+ 'Sub-contract GIFI' => 'Sub-Contrato PUC',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Résumen',
+ 'Tax' => 'Impuesto',
+ 'Tax Included' => 'Impuestos incluidos en el precio',
+ 'Tax Number' => 'Numero de Impuesto',
+ 'Tax Number / SSN' => 'NIT./CC./CE.',
+ 'Taxable' => 'Impuestos gravables',
+ 'Terms' => 'Crédito',
+ 'To' => 'Hasta',
+ 'Total' => 'Total',
+ 'Type of Business' => 'Clase de Negocio',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Vendor History' => 'Historial Proveedor',
+ 'Vendor Invoice' => 'Factura de compras',
+ 'Vendor Invoices' => 'Facturas de Proveedor',
+ 'Vendor Number' => 'Código Vendedor',
+ 'Vendor deleted!' => '¡Proveedor borrado!',
+ 'Vendor saved!' => '¡Proveedor guardado!',
+ 'Vendors' => 'Proveedores',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'days' => 'días',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'gestión_se_pago' => 'ap_transaction',
+ 'gestión_de_cobro' => 'ar_transaction',
+ 'añadir_cliente' => 'add_customer',
+ 'añadir_proveedor' => 'add_vendor',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'punto_de_venta' => 'pos',
+ 'lista_de_precios' => 'pricelist',
+ 'pedido' => 'purchase_order',
+ 'cotización' => 'quotation',
+ 'solicitar_cotización' => 'rfq',
+ 'facturas_de_ventas' => 'sales_invoice',
+ 'presupuesto' => 'sales_order',
+ 'guardar' => 'save',
+ 'guardar_lista_de_precios' => 'save_pricelist',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+ 'factura_de_compras' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/es/gl b/locale/es/gl
new file mode 100755
index 00000000..8a304f68
--- /dev/null
+++ b/locale/es/gl
@@ -0,0 +1,158 @@
+$self{texts} = {
+ 'AP Transaction' => 'Gestión se pago',
+ 'AR Transaction' => 'Gestión de cobro',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Add Cash Transfer Transaction' => 'Agregar transacción',
+ 'Add General Ledger Transaction' => 'Añadir transacción al libro mayor general',
+ 'Address' => 'Dirección',
+ 'All' => 'Todos',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => '¿Está seguro de que desea borrar la transacción?',
+ 'Asset' => 'Activo',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Balance',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => '¡No se puede borrar la transacción!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar una transacción para un periodo cerrado',
+ 'Cannot post transaction!' => '¡No se puede registrar la transacción',
+ 'Cc' => 'Cc',
+ 'Confirm!' => 'Confirmar',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Current' => 'Actual',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Department' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'E-mail' => 'Correo electrónico',
+ 'Edit Cash Transfer Transaction' => 'Editar Transacción en Effectivo',
+ 'Edit General Ledger Transaction' => 'Editar transacción del libro mayor general',
+ 'Equity' => 'Balance',
+ 'Expense' => 'Gastos',
+ 'FX' => 'TC',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'GIFI' => 'Código GIFI',
+ 'GL Transaction' => 'Transacción en el libro mayor',
+ 'General Ledger' => 'Libro mayor general',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Income' => 'Ingreso',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Liability' => 'Pasivo',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Message' => 'Mensaje',
+ 'Month' => 'Mes',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Out of balance transaction!' => 'Transacción fuera de Balance!',
+ 'Period' => 'Período',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Print' => 'Imprimir',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => '¡No se encuentra el proyecto en la base de datos!',
+ 'Quarter' => 'Trimestre',
+ 'R' => 'R',
+ 'Reference' => 'Referencia',
+ 'Reports' => 'Informes',
+ 'Sales Invoice ' => 'Facturas de ventas ',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Source' => 'Fuente',
+ 'Startdate' => 'Fecha inicial',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'Hasta',
+ 'Transaction Date missing!' => 'No se ha definido la fecha de la transacción',
+ 'Transaction deleted!' => '¡Transacción borrada!',
+ 'Transaction posted!' => '¡Transacción registrada!',
+ 'Update' => 'Actualizar',
+ 'Vendor Invoice ' => 'Factura de Compra',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Warning!' => 'Alerta!',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'gestión_se_pago' => 'ap_transaction',
+ 'gestión_de_cobro' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'transacción_en_el_libro_mayor' => 'gl_transaction',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'facturas_de_ventas_' => 'sales_invoice_',
+ 'actualizar' => 'update',
+ 'factura_de_compra' => 'vendor_invoice_',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/es/hr b/locale/es/hr
new file mode 100755
index 00000000..73666b3c
--- /dev/null
+++ b/locale/es/hr
@@ -0,0 +1,117 @@
+$self{texts} = {
+ 'AP' => 'Cartera de pagos',
+ 'Above' => 'Encima de',
+ 'Accounting Menu' => 'Menú general',
+ 'Active' => 'Activo',
+ 'Add Deduction' => 'Agregar Deducción',
+ 'Add Employee' => 'Agregar Empleado',
+ 'Address' => 'Dirección',
+ 'Administrator' => 'Administrador',
+ 'After Deduction' => 'Despues Deducción',
+ 'All' => 'Todos',
+ 'Allowances' => 'Permisos',
+ 'Amount' => 'Total',
+ 'Amount missing!' => 'Falta suma',
+ 'BIC' => 'BIC',
+ 'Based on' => 'Basado en',
+ 'Before Deduction' => 'Antes de la Deducción',
+ 'Below' => 'Debajo',
+ 'City' => 'Ciudad',
+ 'Continue' => 'Continuar',
+ 'Country' => 'País',
+ 'DOB' => 'Fecha de Nacimiento',
+ 'Deduct after' => 'Deducir despues de',
+ 'Deduction deleted!' => 'Deducción borrado!',
+ 'Deduction saved!' => 'Deducción guardado',
+ 'Deductions' => 'Deducciones',
+ 'Delete' => 'Borrar',
+ 'Description' => 'Descripción',
+ 'Description missing!' => 'Falta Descripción',
+ 'E-mail' => 'Correo electrónico',
+ 'Edit Deduction' => 'Editar Deducción',
+ 'Edit Employee' => 'Editar Empleado',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Employee Name' => 'Nombre del Empleado',
+ 'Employee Number' => 'Número de Empleado',
+ 'Employee deleted!' => 'Empleado borrado!',
+ 'Employee pays' => 'Empleado cancela',
+ 'Employee saved!' => 'Empleado guardado!',
+ 'Employees' => 'Empleados',
+ 'Employer' => 'Empleador',
+ 'Employer pays' => 'Empleador cancela',
+ 'Enddate' => 'Fecha final',
+ 'Expense' => 'Gastos',
+ 'From' => 'Desde',
+ 'Home Phone' => 'Teléfono residencia',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Login' => 'Entrar',
+ 'Manager' => 'Administrador',
+ 'Maximum' => 'Maximo',
+ 'Name' => 'Nombre',
+ 'Name missing!' => '¡Falta el nombre!',
+ 'Notes' => 'Notas',
+ 'Number' => 'Número',
+ 'Orphaned' => 'Huérfano',
+ 'Payroll Deduction' => 'Deducciones Nómina',
+ 'Rate' => 'Tarifa',
+ 'Rate missing!' => 'Falta Tarifa!',
+ 'Role' => 'Función',
+ 'S' => 'S',
+ 'SSN' => 'RIF',
+ 'Sales' => 'Ventas',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Startdate' => 'Fecha inicial',
+ 'State/Province' => 'Departamento',
+ 'Supervisor' => 'Supervisor',
+ 'To' => 'Hasta',
+ 'Update' => 'Actualizar',
+ 'User' => 'Usuario',
+ 'Work Phone' => 'Teléfono (Oficina)',
+ 'Zip/Postal Code' => 'Código Postal',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'agregar_deducción' => 'add_deduction',
+ 'agregar_empleado' => 'add_employee',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'guardar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/es/ic b/locale/es/ic
new file mode 100755
index 00000000..de5c96de
--- /dev/null
+++ b/locale/es/ic
@@ -0,0 +1,277 @@
+$self{texts} = {
+ 'A' => 'A',
+ 'Accounting Menu' => 'Menú general',
+ 'Accounts' => 'Cuentas',
+ 'Accrual' => 'Acumulado',
+ 'Active' => 'Activo',
+ 'Add' => 'Añadir',
+ 'Add Assembly' => 'Añadir compuesto',
+ 'Add Labor/Overhead' => 'Agregar Mano de Obra',
+ 'Add Part' => 'Añadir artículo',
+ 'Add Purchase Order' => 'Añadir pedido',
+ 'Add Quotation' => 'Agregar Cotización',
+ 'Add Request for Quotation' => 'Pedir Cotización',
+ 'Add Sales Order' => 'Añadir presupuesto',
+ 'Add Service' => 'Añadir servicio',
+ 'Address' => 'Dirección',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Assemblies' => 'Compuestos',
+ 'Assemblies restocked!' => '¡Compuestos actualizados en almacen!',
+ 'Assembly' => 'Compuesto',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'BOM' => 'Listado de piezas',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Dirección Factura',
+ 'Bin' => 'Bin',
+ 'Bin List' => 'Lista Empaque',
+ 'Break' => 'Pausa',
+ 'COGS' => 'Costo de los artículos',
+ 'Cannot delete item!' => '¡No se puede borrar el artículo!',
+ 'Cannot stock assemblies!' => '¡No se pueden almacenar los compuestos!',
+ 'Cash' => 'Efectivo',
+ 'Cc' => 'Cc',
+ 'Check Inventory' => 'Revisar Inventario',
+ 'City' => 'Ciudad',
+ 'Closed' => 'Cerrado',
+ 'Company Name' => 'Nombre de la empresa',
+ 'Components' => 'Componentes',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Cost' => 'Costo',
+ 'Country' => 'País',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Customer' => 'Cliente',
+ 'Customer Number' => 'Número del cliente',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Drawing' => 'Reintegro',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'E-mailed' => 'Enviado por mail',
+ 'Edit Assembly' => 'Editar compuesto',
+ 'Edit Labor/Overhead' => 'Editar Mano de Obra',
+ 'Edit Part' => 'Editar compuesto',
+ 'Edit Service' => 'Editar servicio',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Expense' => 'Gastos',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'Group' => 'Grupo',
+ 'Image' => 'Imagen',
+ 'In-line' => 'Incrustado',
+ 'Include in Report' => 'Incluir en informe',
+ 'Income' => 'Ingreso',
+ 'Individual Items' => 'Artículos individuales',
+ 'Inventory' => 'Inventario',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'La cantidad en inventario debe ser cero antes de cambiar este compuesto a obsoleto',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'La cantidad en inventario debe ser cero antes de cambiar este artículo a obsoleto',
+ 'Invoice' => 'Factura',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Invoice Number missing!' => 'No se ha definido el número de la factura',
+ 'Item deleted!' => '¡Concepto borrado!',
+ 'Item not on file!' => 'El concepto no se encuentra en ningún archivo',
+ 'Items' => 'Productos/Servicios',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Labor/Overhead' => 'Mano de Obra',
+ 'Leadtime' => 'Tiempo de Entrega',
+ 'Line Total' => 'Total de la línea',
+ 'Link Accounts' => 'Enlazar cuentas',
+ 'List' => 'Lista',
+ 'List Price' => 'Precio de lista',
+ 'Make' => 'Marca',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'Markup' => 'Margen',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Message' => 'Mensaje',
+ 'Microfiche' => 'Microficha',
+ 'Model' => 'Modelo',
+ 'Name' => 'Nombre',
+ 'No.' => 'No.',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se ha definido el número en la fila',
+ 'Obsolete' => 'Obsoleto',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'On Hand' => 'Disponible',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Date missing!' => 'No se ha definido la fecha de la elaboración',
+ 'Order Number' => 'Número de orden',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'Orphaned' => 'Huérfano',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Albarán',
+ 'Packing List Date missing!' => 'No se ha definido la fecha del albarán',
+ 'Packing List Number missing!' => 'No se ha definido el número del albarán',
+ 'Part' => 'Artículo',
+ 'Parts' => 'Artículos',
+ 'Period' => 'Período',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Empaque',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Pricegroup' => 'Grupo de Precios',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Purchase Order' => 'Pedido',
+ 'Purchase Orders' => 'Pedidos',
+ 'Qty' => 'Cantidad',
+ 'Quantity exceeds available units to stock!' => 'No hay esta cantidad disponible en el Inventario!',
+ 'Quotation' => 'Cotización',
+ 'Quotation Date missing!' => 'Falta fecha de cotización',
+ 'Quotation Number missing!' => 'Falta número de cotización',
+ 'Quotations' => 'Cotizaciones',
+ 'RFQ' => 'Solicitar Cotización',
+ 'ROP' => 'Tope de envio',
+ 'Recd' => 'Cobrado',
+ 'Required by' => 'Aceptado el',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Facturas de ventas',
+ 'Sales Invoices' => 'Factura de venta',
+ 'Sales Order' => 'Presupuesto',
+ 'Sales Orders' => 'Presupuestos',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select txt, postscript or PDF!' => '¡Seleccione txt, postscript o PDF!',
+ 'Sell' => 'Vender',
+ 'Sell Price' => 'Precio de venta',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'No de Serial',
+ 'Serial Number' => 'Número del Serial',
+ 'Service' => 'Servicio',
+ 'Services' => 'Servicios',
+ 'Ship' => 'Envio',
+ 'Ship to' => 'Destino',
+ 'Shipping Address' => 'Dirección del envio',
+ 'Short' => 'Corto',
+ 'State/Province' => 'Departamento',
+ 'Stock' => 'Inventario',
+ 'Stock Assembly' => 'Inventariar compuesto',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Résumen',
+ 'Tax' => 'Impuesto',
+ 'To' => 'Hasta',
+ 'Top Level' => 'Nivel superior',
+ 'Translation not on file!' => 'Traducción no se encuentra en la Base de Datos',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Updated' => '¡Actualizado!',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice' => 'Factura de compras',
+ 'Vendor Invoices' => 'Facturas de Proveedor',
+ 'Vendor Number' => 'Código Vendedor',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Warehouse' => 'Bodega',
+ 'Weight' => 'Peso',
+ 'What type of item is this?' => '¿De qué tipo es este concepto?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Year' => 'Año',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'days' => 'días',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'añadir_compuesto' => 'add_assembly',
+ 'agregar_mano_de_obra' => 'add_labor_overhead',
+ 'añadir_artículo' => 'add_part',
+ 'añadir_servicio' => 'add_service',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'editar_compuesto' => 'edit_assembly',
+ 'editar_compuesto' => 'edit_part',
+ 'editar_servicio' => 'edit_service',
+ 'guardar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/es/io b/locale/es/io
new file mode 100755
index 00000000..f8d5379f
--- /dev/null
+++ b/locale/es/io
@@ -0,0 +1,130 @@
+$self{texts} = {
+ 'Add Purchase Order' => 'Añadir pedido',
+ 'Add Quotation' => 'Agregar Cotización',
+ 'Add Request for Quotation' => 'Pedir Cotización',
+ 'Add Sales Order' => 'Añadir presupuesto',
+ 'Address' => 'Dirección',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Dirección Factura',
+ 'Bin' => 'Bin',
+ 'Bin List' => 'Lista Empaque',
+ 'Cc' => 'Cc',
+ 'City' => 'Ciudad',
+ 'Company Name' => 'Nombre de la empresa',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Country' => 'País',
+ 'Customer Number' => 'Número del cliente',
+ 'Date' => 'Fecha',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Description' => 'Descripción',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'E-mailed' => 'Enviado por mail',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'Group' => 'Grupo',
+ 'In-line' => 'Incrustado',
+ 'Invoice' => 'Factura',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number missing!' => 'No se ha definido el número de la factura',
+ 'Item not on file!' => 'El concepto no se encuentra en ningún archivo',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Message' => 'Mensaje',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se ha definido el número en la fila',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Order Date missing!' => 'No se ha definido la fecha de la elaboración',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Albarán',
+ 'Packing List Date missing!' => 'No se ha definido la fecha del albarán',
+ 'Packing List Number missing!' => 'No se ha definido el número del albarán',
+ 'Part' => 'Artículo',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Empaque',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Purchase Order' => 'Pedido',
+ 'Qty' => 'Cantidad',
+ 'Quotation' => 'Cotización',
+ 'Quotation Date missing!' => 'Falta fecha de cotización',
+ 'Quotation Number missing!' => 'Falta número de cotización',
+ 'Recd' => 'Cobrado',
+ 'Required by' => 'Aceptado el',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Presupuesto',
+ 'Screen' => 'Pantalla',
+ 'Select txt, postscript or PDF!' => '¡Seleccione txt, postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'No de Serial',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Envio',
+ 'Ship to' => 'Destino',
+ 'Shipping Address' => 'Dirección del envio',
+ 'State/Province' => 'Departamento',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'Hasta',
+ 'Translation not on file!' => 'Traducción no se encuentra en la Base de Datos',
+ 'Unit' => 'Unidad',
+ 'Vendor Number' => 'Código Vendedor',
+ 'What type of item is this?' => '¿De qué tipo es este concepto?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/es/ir b/locale/es/ir
new file mode 100755
index 00000000..1fbcfe31
--- /dev/null
+++ b/locale/es/ir
@@ -0,0 +1,224 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Add Purchase Order' => 'Añadir pedido',
+ 'Add Quotation' => 'Agregar Cotización',
+ 'Add Request for Quotation' => 'Pedir Cotización',
+ 'Add Sales Order' => 'Añadir presupuesto',
+ 'Add Vendor Invoice' => 'Añadir factura de compra',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => '¿Esta seguro de que desea borrar la factura número',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Dirección Factura',
+ 'Bin' => 'Bin',
+ 'Bin List' => 'Lista Empaque',
+ 'Cannot delete invoice!' => '¡No se puede borrar la factura!',
+ 'Cannot post invoice for a closed period!' => '¡No se puede registrar una factura en un periodo ya cerrado!',
+ 'Cannot post invoice!' => '¡No se puede registrar la factura!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo ya cerrado!',
+ 'Cc' => 'Cc',
+ 'City' => 'Ciudad',
+ 'Company Name' => 'Nombre de la empresa',
+ 'Confirm!' => 'Confirmar',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Country' => 'País',
+ 'Credit Limit' => 'Limite de credito',
+ 'Currency' => 'Moneda',
+ 'Customer Number' => 'Número del cliente',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Department' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'E-mailed' => 'Enviado por mail',
+ 'Edit Vendor Invoice' => 'Editar factura de compra',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de cambio',
+ 'Exchange rate for payment missing!' => '¡Falta la tasa de cambio para el pago!',
+ 'Exchange rate missing!' => '¡Falta la tasa de cambio!',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'Group' => 'Grupo',
+ 'In-line' => 'Incrustado',
+ 'Internal Notes' => 'Notas internas',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Invoice Number missing!' => 'No se ha definido el número de la factura',
+ 'Invoice deleted!' => '¡Factura borrada!',
+ 'Item not on file!' => 'El concepto no se encuentra en ningún archivo',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Language' => 'Lenguaje',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Message' => 'Mensaje',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se ha definido el número en la fila',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Order Date missing!' => 'No se ha definido la fecha de la elaboración',
+ 'Order Number' => 'Número de orden',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Albarán',
+ 'Packing List Date missing!' => 'No se ha definido la fecha del albarán',
+ 'Packing List Number missing!' => 'No se ha definido el número del albarán',
+ 'Part' => 'Artículo',
+ 'Payment date missing!' => 'No se encuentra la fecha de pago',
+ 'Payments' => 'Vencimientos impagados',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Empaque',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => '¡No se encuentra el proyecto en la base de datos!',
+ 'Purchase Order' => 'Pedido',
+ 'Qty' => 'Cantidad',
+ 'Quotation' => 'Cotización',
+ 'Quotation Date missing!' => 'Falta fecha de cotización',
+ 'Quotation Number missing!' => 'Falta número de cotización',
+ 'Recd' => 'Cobrado',
+ 'Record in' => 'Registrar en',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Resto',
+ 'Required by' => 'Aceptado el',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Presupuesto',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Select txt, postscript or PDF!' => '¡Seleccione txt, postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'No de Serial',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Envio',
+ 'Ship to' => 'Destino',
+ 'Shipping Address' => 'Dirección del envio',
+ 'Source' => 'Fuente',
+ 'Startdate' => 'Fecha inicial',
+ 'State/Province' => 'Departamento',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Tax Included' => 'Impuestos incluidos en el precio',
+ 'To' => 'Hasta',
+ 'Total' => 'Total',
+ 'Translation not on file!' => 'Traducción no se encuentra en la Base de Datos',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Number' => 'Código Vendedor',
+ 'Vendor missing!' => '¡Falta el proveedor!',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Warning!' => 'Alerta!',
+ 'What type of item is this?' => '¿De qué tipo es este concepto?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Yes' => 'Si',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'ea' => 'unid.',
+ 'posted!' => 'Guardado',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'pedido' => 'purchase_order',
+ 'actualizar' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/es/is b/locale/es/is
new file mode 100755
index 00000000..4864a06b
--- /dev/null
+++ b/locale/es/is
@@ -0,0 +1,235 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Add Purchase Order' => 'Añadir pedido',
+ 'Add Quotation' => 'Agregar Cotización',
+ 'Add Request for Quotation' => 'Pedir Cotización',
+ 'Add Sales Invoice' => 'Añadir factura',
+ 'Add Sales Order' => 'Añadir presupuesto',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => '¿Esta seguro de que desea borrar la factura número',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Dirección Factura',
+ 'Bin' => 'Bin',
+ 'Bin List' => 'Lista Empaque',
+ 'Business' => 'Empresa',
+ 'Cannot delete invoice!' => '¡No se puede borrar la factura!',
+ 'Cannot post invoice for a closed period!' => '¡No se puede registrar una factura en un periodo ya cerrado!',
+ 'Cannot post invoice!' => '¡No se puede registrar la factura!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo ya cerrado!',
+ 'Cc' => 'Cc',
+ 'City' => 'Ciudad',
+ 'Company Name' => 'Nombre de la empresa',
+ 'Confirm!' => 'Confirmar',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Country' => 'País',
+ 'Credit Limit' => 'Limite de credito',
+ 'Currency' => 'Moneda',
+ 'Customer' => 'Cliente',
+ 'Customer Number' => 'Número del cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Department' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'E-mailed' => 'Enviado por mail',
+ 'Edit Sales Invoice' => 'Edirar factura de venta',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de cambio',
+ 'Exchange rate for payment missing!' => '¡Falta la tasa de cambio para el pago!',
+ 'Exchange rate missing!' => '¡Falta la tasa de cambio!',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'Group' => 'Grupo',
+ 'In-line' => 'Incrustado',
+ 'Internal Notes' => 'Notas internas',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Invoice Number missing!' => 'No se ha definido el número de la factura',
+ 'Invoice deleted!' => '¡Factura borrada!',
+ 'Item not on file!' => 'El concepto no se encuentra en ningún archivo',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Message' => 'Mensaje',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se ha definido el número en la fila',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Order Date missing!' => 'No se ha definido la fecha de la elaboración',
+ 'Order Number' => 'Número de orden',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Albarán',
+ 'Packing List Date missing!' => 'No se ha definido la fecha del albarán',
+ 'Packing List Number missing!' => 'No se ha definido el número del albarán',
+ 'Part' => 'Artículo',
+ 'Payment date missing!' => 'No se encuentra la fecha de pago',
+ 'Payments' => 'Vencimientos impagados',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Empaque',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => '¡No se encuentra el proyecto en la base de datos!',
+ 'Purchase Order' => 'Pedido',
+ 'Qty' => 'Cantidad',
+ 'Quotation' => 'Cotización',
+ 'Quotation Date missing!' => 'Falta fecha de cotización',
+ 'Quotation Number missing!' => 'Falta número de cotización',
+ 'Recd' => 'Cobrado',
+ 'Record in' => 'Registrar en',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Resto',
+ 'Required by' => 'Aceptado el',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Presupuesto',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Select txt, postscript or PDF!' => '¡Seleccione txt, postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'No de Serial',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Envio',
+ 'Ship to' => 'Destino',
+ 'Ship via' => 'Envio por',
+ 'Shipping Address' => 'Dirección del envio',
+ 'Shipping Point' => 'Destino',
+ 'Source' => 'Fuente',
+ 'Startdate' => 'Fecha inicial',
+ 'State/Province' => 'Departamento',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Tax Included' => 'Impuestos incluidos en el precio',
+ 'To' => 'Hasta',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Descuento',
+ 'Translation not on file!' => 'Traducción no se encuentra en la Base de Datos',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Vendor Number' => 'Código Vendedor',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Warning!' => 'Alerta!',
+ 'What type of item is this?' => '¿De qué tipo es este concepto?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Yes' => 'Si',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'ea' => 'unid.',
+ 'posted!' => 'Guardado',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'correo_electrónico' => 'e_mail',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'imprimir_y_registrar' => 'print_and_post',
+ 'presupuesto' => 'sales_order',
+ 'destino' => 'ship_to',
+ 'actualizar' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/es/jc b/locale/es/jc
new file mode 100755
index 00000000..05a04f94
--- /dev/null
+++ b/locale/es/jc
@@ -0,0 +1,92 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menú general',
+ 'Amount' => 'Total',
+ 'Closed' => 'Cerrado',
+ 'Confirm!' => 'Confirmar',
+ 'Continue' => 'Continuar',
+ 'Cost' => 'Costo',
+ 'Current' => 'Actual',
+ 'Date' => 'Fecha',
+ 'Date missing!' => '¡Falta la fecha!',
+ 'Delete' => 'Borrar',
+ 'Description' => 'Descripción',
+ 'Employee' => 'Colaborador/Empleado',
+ 'From' => 'Desde',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Month' => 'Mes',
+ 'Notes' => 'Notas',
+ 'Open' => 'Abierto',
+ 'PDF' => 'PDF',
+ 'Period' => 'Período',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Imprimir',
+ 'Print and Save' => 'Imprimir y Guardar',
+ 'Printed' => 'Impreso',
+ 'Project Number' => 'Número del Proyecto',
+ 'Project Number missing!' => '¡Falta el número de proyecto!',
+ 'Qty' => 'Cantidad',
+ 'Quarter' => 'Trimestre',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Screen' => 'Pantalla',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Startdate' => 'Fecha inicial',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'Hasta',
+ 'Total' => 'Total',
+ 'Update' => 'Actualizar',
+ 'Warning!' => 'Alerta!',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'imprimir' => 'print',
+ 'imprimir_y_guardar' => 'print_and_save',
+ 'guardar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/es/locales.pl b/locale/es/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/es/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/es/login b/locale/es/login
new file mode 100755
index 00000000..3cc94222
--- /dev/null
+++ b/locale/es/login
@@ -0,0 +1,24 @@
+$self{texts} = {
+ 'Company' => 'Compañía',
+ 'Continue' => 'Continuar',
+ 'Dataset is newer than version!' => 'La base de datos está más actual que la versión del programa',
+ 'Incorrect Dataset version!' => 'Versión de base de datos incorrecta',
+ 'Login' => 'Entrar',
+ 'Name' => 'Nombre',
+ 'Password' => 'Contraseña',
+ 'Upgrading to Version' => 'Actulaizando a versión',
+ 'Version' => 'Versión',
+ 'You did not enter a name!' => 'No ha introducido el nombre',
+ 'done' => 'hecho',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ 'entrar' => 'login',
+};
+
+1;
+
diff --git a/locale/es/menu b/locale/es/menu
new file mode 100755
index 00000000..bac793fe
--- /dev/null
+++ b/locale/es/menu
@@ -0,0 +1,134 @@
+$self{texts} = {
+ 'AP' => 'Cartera de pagos',
+ 'AP Aging' => 'Diario resumido de pagos',
+ 'AP Transaction' => 'Gestión se pago',
+ 'AR' => 'Cartera de cobros',
+ 'AR Aging' => 'Diario resumido de cobros ',
+ 'AR Transaction' => 'Gestión de cobro',
+ 'Accounting Menu' => 'Menú general',
+ 'Add Account' => 'Añadir cuenta',
+ 'Add Assembly' => 'Añadir compuesto',
+ 'Add Business' => 'Agregar Empresa',
+ 'Add Customer' => 'Añadir cliente',
+ 'Add Department' => 'Agregar Centro de Costos',
+ 'Add Employee' => 'Agregar Empleado',
+ 'Add GIFI' => 'Añadir código GIFI',
+ 'Add Group' => 'Agregar Grupo',
+ 'Add Labor/Overhead' => 'Agregar Mano de Obra',
+ 'Add Language' => 'Agregar Idioma',
+ 'Add Part' => 'Añadir artículo',
+ 'Add Pricegroup' => 'Añadir Grupo de Precios',
+ 'Add Project' => 'Añadir proyecto',
+ 'Add SIC' => 'Agregar SIC',
+ 'Add Service' => 'Añadir servicio',
+ 'Add Transaction' => 'Añadir',
+ 'Add Vendor' => 'Añadir proveedor',
+ 'Add Warehouse' => 'Agregar Bodega',
+ 'All Items' => 'Todo',
+ 'Assemblies' => 'Compuestos',
+ 'Audit Control' => 'Control de auditoría',
+ 'Backup' => 'Copia de seguridad de los datos',
+ 'Balance Sheet' => 'Hoja de balance',
+ 'Bin List' => 'Lista Empaque',
+ 'Bin Lists' => 'Listas Empaque',
+ 'Cash' => 'Efectivo',
+ 'Chart of Accounts' => 'Cuadro de cuentas',
+ 'Check' => 'Cheque',
+ 'Components' => 'Componentes',
+ 'Customers' => 'Clientes',
+ 'Defaults' => 'Preferencias',
+ 'Departments' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Employees' => 'Empleados',
+ 'General Ledger' => 'Libro mayor general',
+ 'Goods & Services' => 'Bienes y servicios',
+ 'Groups' => 'Grupos',
+ 'HR' => 'Recursos Humanos',
+ 'HTML Templates' => 'Plantillas HTML',
+ 'History' => 'Historial',
+ 'Income Statement' => 'Balance de situación',
+ 'Invoice' => 'Factura',
+ 'LaTeX Templates' => 'Plantillas LaTeX',
+ 'Labor/Overhead' => 'Mano de Obra',
+ 'Language' => 'Lenguaje',
+ 'List Accounts' => 'Listar cuentas',
+ 'List Businesses' => 'Mostrar empresas',
+ 'List Departments' => 'Mostrar Centro de Costos',
+ 'List GIFI' => 'Listar código GIFI',
+ 'List Languages' => 'Mostrar Idiomas',
+ 'List Projects' => 'Mostrar Projectos',
+ 'List SIC' => 'Mostrar SIC',
+ 'List Warehouses' => 'Mostar bodegas',
+ 'Logout' => 'Salir',
+ 'Non-taxable' => 'Sin Impuestos',
+ 'Open' => 'Abierto',
+ 'Order Entry' => 'Presupuestos y pedidos',
+ 'Outstanding' => 'Impagados',
+ 'POS' => 'Punto de Venta',
+ 'POS Invoice' => 'Factura Punto de Venta',
+ 'Packing List' => 'Albarán',
+ 'Packing Lists' => 'Lista de empaque',
+ 'Parts' => 'Artículos',
+ 'Payment' => 'Pago',
+ 'Payments' => 'Vencimientos impagados',
+ 'Pick List' => 'Lista de Empaque',
+ 'Pick Lists' => 'Listas de Empaque',
+ 'Preferences' => 'Preferencias',
+ 'Pricegroups' => 'Grupos de Precios',
+ 'Print' => 'Imprimir',
+ 'Projects' => 'Proyectos',
+ 'Purchase Order' => 'Pedido',
+ 'Purchase Orders' => 'Pedidos',
+ 'Quotation' => 'Cotización',
+ 'Quotations' => 'Cotizaciones',
+ 'RFQ' => 'Solicitar Cotización',
+ 'RFQs' => 'Cotizaciones solicitados',
+ 'Receipt' => 'Recibo',
+ 'Receipts' => 'Recibos',
+ 'Receive' => 'Recibir',
+ 'Reconciliation' => 'Reconciliación',
+ 'Reports' => 'Informes',
+ 'SIC' => 'SIC',
+ 'Sale' => 'Venta',
+ 'Sales Invoice' => 'Facturas de ventas',
+ 'Sales Invoices' => 'Factura de venta',
+ 'Sales Order' => 'Presupuesto',
+ 'Sales Orders' => 'Presupuestos',
+ 'Save to File' => 'Guardar en un archivo',
+ 'Search' => 'Búsqueda',
+ 'Send by E-Mail' => 'Enviar por correo electrónico',
+ 'Services' => 'Servicios',
+ 'Ship' => 'Envio',
+ 'Shipping' => 'Envio',
+ 'Statement' => 'Estado de cuenta',
+ 'Stock Assembly' => 'Inventariar compuesto',
+ 'Stylesheet' => 'Hoja de estilo',
+ 'System' => 'Sistema',
+ 'Tax collected' => 'Impuestos cobrados',
+ 'Tax paid' => 'Impuestos pagados',
+ 'Text Templates' => 'Plantillas de Texto',
+ 'Transactions' => 'Impagados',
+ 'Transfer' => 'Transferencia',
+ 'Transfer Inventory' => 'Transferir Inventario',
+ 'Translations' => 'Traducciones',
+ 'Trial Balance' => 'Balance de comprobación',
+ 'Type of Business' => 'Clase de Negocio',
+ 'Vendor Invoice' => 'Factura de compras',
+ 'Vendors' => 'Proveedores',
+ 'Version' => 'Versión',
+ 'Warehouses' => 'Bodegas',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Work Orders' => 'Ordenes de Trabajo',
+ 'Yearend' => 'Fin del Año',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/es/oe b/locale/es/oe
new file mode 100755
index 00000000..c78925e3
--- /dev/null
+++ b/locale/es/oe
@@ -0,0 +1,322 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menú general',
+ 'Add Exchange Rate' => 'Agregar Tasa de Cambio',
+ 'Add Purchase Order' => 'Añadir pedido',
+ 'Add Quotation' => 'Agregar Cotización',
+ 'Add Request for Quotation' => 'Pedir Cotización',
+ 'Add Sales Invoice' => 'Añadir factura',
+ 'Add Sales Order' => 'Añadir presupuesto',
+ 'Add Vendor Invoice' => 'Añadir factura de compra',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Order Number' => '¿Esta seguro de que desea
+borrar la orden número?',
+ 'Are you sure you want to delete Quotation Number' => 'Seguro que quiere borrar la cotización número',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Dirección Factura',
+ 'Bin' => 'Bin',
+ 'Bin List' => 'Lista Empaque',
+ 'Business' => 'Empresa',
+ 'C' => 'C',
+ 'Cannot delete order!' => '¡No se puede borrar el pedido!',
+ 'Cannot delete quotation!' => '¡No puedo borrar cotización!',
+ 'Cannot save order!' => '¡No se puede guardar el pedido!',
+ 'Cannot save quotation!' => 'No puedo guardar cotización!',
+ 'Cc' => 'Cc',
+ 'City' => 'Ciudad',
+ 'Closed' => 'Cerrado',
+ 'Company Name' => 'Nombre de la empresa',
+ 'Confirm!' => 'Confirmar',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Cost' => 'Costo',
+ 'Could not save!' => 'No pude guardar',
+ 'Could not transfer Inventory!' => 'No puedo transferir inventario!',
+ 'Country' => 'País',
+ 'Credit Limit' => 'Limite de credito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer Number' => 'Número del cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Date Received' => 'Fecha recibido',
+ 'Date received missing!' => 'Faltas datos',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Department' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Done' => 'Hecho',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'E-mailed' => 'Enviado por mail',
+ 'Edit Purchase Order' => 'Editar pedido',
+ 'Edit Quotation' => 'Editar Cotización',
+ 'Edit Request for Quotation' => 'Editar Solicitud de Cotización',
+ 'Edit Sales Order' => 'Editar presupuesto',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Exchange Rate' => 'Tasa de cambio',
+ 'Exchange rate missing!' => '¡Falta la tasa de cambio!',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'Group' => 'Grupo',
+ 'ID' => 'ID',
+ 'In-line' => 'Incrustado',
+ 'Include in Report' => 'Incluir en informe',
+ 'Internal Notes' => 'Notas internas',
+ 'Inventory saved!' => 'Inventario guardado!',
+ 'Inventory transferred!' => 'Inventario transferido!',
+ 'Invoice' => 'Factura',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number missing!' => 'No se ha definido el número de la factura',
+ 'Item not on file!' => 'El concepto no se encuentra en ningún archivo',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Manager' => 'Administrador',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Message' => 'Mensaje',
+ 'Month' => 'Mes',
+ 'No.' => 'No.',
+ 'Notes' => 'Notas',
+ 'Nothing entered!' => 'Información Incompleta',
+ 'Nothing selected!' => '¡No es seleccionado nada!',
+ 'Nothing to transfer!' => 'Nada para transferir',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se ha definido el número en la fila',
+ 'O' => 'O',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Date' => 'Fecha de elaboración',
+ 'Order Date missing!' => 'No se ha definido la fecha de la elaboración',
+ 'Order Number' => 'Número de orden',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'Order deleted!' => '¡Orden borrada!',
+ 'Order saved!' => 'Pedido guardado',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Albarán',
+ 'Packing List Date missing!' => 'No se ha definido la fecha del albarán',
+ 'Packing List Number missing!' => 'No se ha definido el número del albarán',
+ 'Part' => 'Artículo',
+ 'Period' => 'Período',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Empaque',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Print and Save' => 'Imprimir y Guardar',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => '¡No se encuentra el proyecto en la base de datos!',
+ 'Purchase Order' => 'Pedido',
+ 'Purchase Orders' => 'Pedidos',
+ 'Qty' => 'Cantidad',
+ 'Quarter' => 'Trimestre',
+ 'Quotation' => 'Cotización',
+ 'Quotation ' => 'Cotización ',
+ 'Quotation Date' => 'Fecha de cotización',
+ 'Quotation Date missing!' => 'Falta fecha de cotización',
+ 'Quotation Number' => 'Número cotización',
+ 'Quotation Number missing!' => 'Falta número de cotización',
+ 'Quotation deleted!' => 'Cotización borrado',
+ 'Quotations' => 'Cotizaciones',
+ 'RFQ' => 'Solicitar Cotización',
+ 'RFQ ' => 'Solicitar Cotización ',
+ 'RFQ Number' => 'Número de Cotización',
+ 'Recd' => 'Cobrado',
+ 'Receive Merchandise' => 'Recibir mercancia',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Resto',
+ 'Request for Quotation' => 'Solicitar Cotización',
+ 'Request for Quotations' => 'Solicitar Cotizaciones',
+ 'Required by' => 'Aceptado el',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Facturas de ventas',
+ 'Sales Order' => 'Presupuesto',
+ 'Sales Orders' => 'Presupuestos',
+ 'Salesperson' => 'Vendedor',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Select txt, postscript or PDF!' => '¡Seleccione txt, postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'No de Serial',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Envio',
+ 'Ship Merchandise' => 'Enviar Mercancía',
+ 'Ship to' => 'Destino',
+ 'Ship via' => 'Envio por',
+ 'Shipping Address' => 'Dirección del envio',
+ 'Shipping Date' => 'Fecha del Envio',
+ 'Shipping Date missing!' => 'Falta Fecha del Envio',
+ 'Shipping Point' => 'Destino',
+ 'Startdate' => 'Fecha inicial',
+ 'State/Province' => 'Departamento',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Tax' => 'Impuesto',
+ 'Tax Included' => 'Impuestos incluidos en el precio',
+ 'Terms' => 'Crédito',
+ 'To' => 'Hasta',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Descuento',
+ 'Transfer' => 'Transferencia',
+ 'Transfer Inventory' => 'Transferir Inventario',
+ 'Transfer to' => 'Transferir a',
+ 'Translation not on file!' => 'Traducción no se encuentra en la Base de Datos',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Valid until' => 'Válido hasta',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice' => 'Factura de compras',
+ 'Vendor Number' => 'Código Vendedor',
+ 'Vendor missing!' => '¡Falta el proveedor!',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Warehouse' => 'Bodega',
+ 'Warning!' => 'Alerta!',
+ 'What type of item is this?' => '¿De qué tipo es este concepto?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'days' => 'días',
+ 'ea' => 'unid.',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'hecho' => 'done',
+ 'correo_electrónico' => 'e_mail',
+ 'imprimir' => 'print',
+ 'imprimir_y_guardar' => 'print_and_save',
+ 'pedido' => 'purchase_order',
+ 'cotización' => 'quotation',
+ 'cotización_' => 'quotation_',
+ 'solicitar_cotización' => 'rfq',
+ 'solicitar_cotización_' => 'rfq_',
+ 'facturas_de_ventas' => 'sales_invoice',
+ 'presupuesto' => 'sales_order',
+ 'guardar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'destino' => 'ship_to',
+ 'transferencia' => 'transfer',
+ 'actualizar' => 'update',
+ 'factura_de_compras' => 'vendor_invoice',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/es/pe b/locale/es/pe
new file mode 100755
index 00000000..c9b4d8bb
--- /dev/null
+++ b/locale/es/pe
@@ -0,0 +1,141 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menú general',
+ 'Active' => 'Activo',
+ 'Add' => 'Añadir',
+ 'Add Group' => 'Agregar Grupo',
+ 'Add Pricegroup' => 'Añadir Grupo de Precios',
+ 'Add Project' => 'Añadir proyecto',
+ 'Address' => 'Dirección',
+ 'All' => 'Todos',
+ 'Amount' => 'Total',
+ 'Assembly' => 'Compuesto',
+ 'Bin' => 'Bin',
+ 'Continue' => 'Continuar',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Delete' => 'Borrar',
+ 'Description' => 'Descripción',
+ 'Description Translations' => 'Descripción Traducción',
+ 'Detail' => 'Detalle',
+ 'Edit Description Translations' => 'Editar Descripción Traducción',
+ 'Edit Group' => 'Editar Grupo',
+ 'Edit Pricegroup' => 'Editar Grupo de Precios',
+ 'Edit Project' => 'Editar proyecto',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Enddate' => 'Fecha final',
+ 'From' => 'Desde',
+ 'Group' => 'Grupo',
+ 'Group Translations' => 'Traducción Grupos',
+ 'Group deleted!' => 'Grupo eleminado!',
+ 'Group missing!' => 'Falta el grupo',
+ 'Group saved!' => 'Grupo guardado!',
+ 'Groups' => 'Grupos',
+ 'Income' => 'Ingreso',
+ 'Language' => 'Lenguaje',
+ 'Languages not defined!' => 'Idiomas no configuradas!',
+ 'Link Accounts' => 'Enlazar cuentas',
+ 'List Price' => 'Precio de lista',
+ 'Month' => 'Mes',
+ 'Notes' => 'Notas',
+ 'Nothing selected!' => '¡No es seleccionado nada!',
+ 'Number' => 'Número',
+ 'Orphaned' => 'Huérfano',
+ 'Period' => 'Período',
+ 'Pricegroup' => 'Grupo de Precios',
+ 'Pricegroup deleted!' => 'Grupo Borrado!',
+ 'Pricegroup missing!' => 'Falta Grupo!',
+ 'Pricegroup saved!' => 'Guardado!',
+ 'Pricegroups' => 'Grupos de Precios',
+ 'Project' => 'Proyecto',
+ 'Project Description Translations' => 'Descripción Traducción del Proyecto',
+ 'Project Number' => 'Número del Proyecto',
+ 'Project deleted!' => '¡Proyecto borrado!',
+ 'Project saved!' => '¡Proyecto guardado ',
+ 'Projects' => 'Proyectos',
+ 'Qty' => 'Cantidad',
+ 'Quarter' => 'Trimestre',
+ 'Save' => 'Guardar',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Sell Price' => 'Precio de venta',
+ 'Startdate' => 'Fecha inicial',
+ 'Summary' => 'Résumen',
+ 'Tax' => 'Impuesto',
+ 'To' => 'Hasta',
+ 'Translation' => 'Traducción',
+ 'Translation deleted!' => 'Traducción Borrada!',
+ 'Translations saved!' => 'Guardado',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Updated' => '¡Actualizado!',
+ 'Vendor' => 'Proveedor',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Weight' => 'Peso',
+ 'Year' => 'Año',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'agregar_grupo' => 'add_group',
+ 'añadir_grupo_de_precios' => 'add_pricegroup',
+ 'añadir_proyecto' => 'add_project',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'guardar' => 'save',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/es/pos b/locale/es/pos
new file mode 100755
index 00000000..34ddbb78
--- /dev/null
+++ b/locale/es/pos
@@ -0,0 +1,80 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menú general',
+ 'Add POS Invoice' => 'Agregar Factura POS',
+ 'Amount' => 'Total',
+ 'Business' => 'Empresa',
+ 'Cannot post transaction!' => '¡No se puede registrar la transacción',
+ 'Change' => 'Cambiar',
+ 'Continue' => 'Continuar',
+ 'Credit Limit' => 'Limite de credito',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Delete' => 'Borrar',
+ 'Department' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Edit POS Invoice' => 'Editar Factura Punto de Venta',
+ 'Exchange Rate' => 'Tasa de cambio',
+ 'Exchange rate missing!' => '¡Falta la tasa de cambio!',
+ 'Extended' => 'Extendido',
+ 'From' => 'Desde',
+ 'Language' => 'Lenguaje',
+ 'Memo' => 'Memo',
+ 'Month' => 'Mes',
+ 'Number' => 'Número',
+ 'Open' => 'Abierto',
+ 'Period' => 'Período',
+ 'Post' => 'Registrar',
+ 'Posted!' => 'Agregado!',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Printed' => 'Impreso',
+ 'Qty' => 'Cantidad',
+ 'Quarter' => 'Trimestre',
+ 'Receipts' => 'Recibos',
+ 'Record in' => 'Registrar en',
+ 'Remaining' => 'Resto',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Pantalla',
+ 'Source' => 'Fuente',
+ 'Subtotal' => 'Subtotal',
+ 'Tax Included' => 'Impuestos incluidos en el precio',
+ 'To' => 'Hasta',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Descuento',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Year' => 'Año',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'registrar' => 'post',
+ 'imprimir' => 'print',
+ 'imprimir_y_registrar' => 'print_and_post',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/es/ps b/locale/es/ps
new file mode 100755
index 00000000..6f229d2c
--- /dev/null
+++ b/locale/es/ps
@@ -0,0 +1,358 @@
+$self{texts} = {
+ 'AP Aging' => 'Diario resumido de pagos',
+ 'AP Outstanding' => 'Impagados Proveedores',
+ 'AP Transaction' => 'Gestión se pago',
+ 'AP Transactions' => 'Gestiones de pagos',
+ 'AR Aging' => 'Diario resumido de cobros ',
+ 'AR Outstanding' => 'Impagados Cartera',
+ 'AR Transaction' => 'Gestión de cobro',
+ 'AR Transactions' => 'Gestiones de cobros',
+ 'Account' => 'Cuenta',
+ 'Account Number' => 'Número de cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Accounts' => 'Cuentas',
+ 'Accrual' => 'Acumulado',
+ 'Add AP Transaction' => 'Añadir Asiento de CxP',
+ 'Add AR Transaction' => 'Añadir Asiento de CxC',
+ 'Add POS Invoice' => 'Agregar Factura POS',
+ 'Add Purchase Order' => 'Añadir pedido',
+ 'Add Quotation' => 'Agregar Cotización',
+ 'Add Request for Quotation' => 'Pedir Cotización',
+ 'Add Sales Invoice' => 'Añadir factura',
+ 'Add Sales Order' => 'Añadir presupuesto',
+ 'Address' => 'Dirección',
+ 'All Accounts' => 'Todas las Cuentas',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Cantidad adeudada',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => '¿Esta seguro de que desea borrar la factura número',
+ 'Are you sure you want to delete Transaction' => '¿Está seguro de que desea borrar la transacción?',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Balance',
+ 'Balance Sheet' => 'Hoja de balance',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Dirección Factura',
+ 'Bin' => 'Bin',
+ 'Bin List' => 'Lista Empaque',
+ 'Business' => 'Empresa',
+ 'Cannot delete invoice!' => '¡No se puede borrar la factura!',
+ 'Cannot delete transaction!' => '¡No se puede borrar la transacción!',
+ 'Cannot post invoice for a closed period!' => '¡No se puede registrar una factura en un periodo ya cerrado!',
+ 'Cannot post invoice!' => '¡No se puede registrar la factura!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo ya cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar una transacción para un periodo cerrado',
+ 'Cannot post transaction!' => '¡No se puede registrar la transacción',
+ 'Cash' => 'Efectivo',
+ 'Cc' => 'Cc',
+ 'Change' => 'Cambiar',
+ 'Check' => 'Cheque',
+ 'City' => 'Ciudad',
+ 'Closed' => 'Cerrado',
+ 'Company Name' => 'Nombre de la empresa',
+ 'Compare to' => 'Comparar con',
+ 'Confirm!' => 'Confirmar',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Country' => 'País',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Limite de credito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Current Earnings' => 'Resultado del periodo',
+ 'Customer' => 'Cliente',
+ 'Customer Number' => 'Número del cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Date Paid' => 'Fecha de pago',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Decimalplaces' => 'Lugar de los decimales',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Department' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'Due Date missing!' => 'Falta la fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail Statement to' => 'Enviar comprobante por correo electrónico a',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'E-mailed' => 'Enviado por mail',
+ 'Edit AP Transaction' => 'Editar Asiento de CxP',
+ 'Edit AR Transaction' => 'Editar Asiento de CxC',
+ 'Edit POS Invoice' => 'Editar Factura Punto de Venta',
+ 'Edit Sales Invoice' => 'Edirar factura de venta',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de cambio',
+ 'Exchange rate for payment missing!' => '¡Falta la tasa de cambio para el pago!',
+ 'Exchange rate missing!' => '¡Falta la tasa de cambio!',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'GIFI' => 'Código GIFI',
+ 'Group' => 'Grupo',
+ 'Heading' => 'Encabezado',
+ 'ID' => 'ID',
+ 'In-line' => 'Incrustado',
+ 'Include Exchange Rate Difference' => 'Incluir Diferencia por Tasa de Cambio',
+ 'Include in Report' => 'Incluir en informe',
+ 'Income Statement' => 'Balance de situación',
+ 'Internal Notes' => 'Notas internas',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Invoice Number missing!' => 'No se ha definido el número de la factura',
+ 'Invoice deleted!' => '¡Factura borrada!',
+ 'Item not on file!' => 'El concepto no se encuentra en ningún archivo',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Language' => 'Lenguaje',
+ 'Manager' => 'Administrador',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Message' => 'Mensaje',
+ 'Method' => 'Metódo',
+ 'Month' => 'Mes',
+ 'N/A' => 'Sin respuesta',
+ 'No.' => 'No.',
+ 'Non-taxable Purchases' => 'Compras sin Impuestos',
+ 'Non-taxable Sales' => 'Ventas sin Impuestos',
+ 'Notes' => 'Notas',
+ 'Nothing selected!' => '¡No es seleccionado nada!',
+ 'Nothing to print!' => '¡No hay nada que imprimir!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se ha definido el número en la fila',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Date missing!' => 'No se ha definido la fecha de la elaboración',
+ 'Order Number' => 'Número de orden',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Albarán',
+ 'Packing List Date missing!' => 'No se ha definido la fecha del albarán',
+ 'Packing List Number missing!' => 'No se ha definido el número del albarán',
+ 'Paid' => 'Pagado',
+ 'Part' => 'Artículo',
+ 'Payment date missing!' => 'No se encuentra la fecha de pago',
+ 'Payments' => 'Vencimientos impagados',
+ 'Period' => 'Período',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Empaque',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Posted!' => 'Agregado!',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project Number' => 'Número del Proyecto',
+ 'Project Transactions' => 'Transacciones del Projecto',
+ 'Project not on file!' => '¡No se encuentra el proyecto en la base de datos!',
+ 'Purchase Order' => 'Pedido',
+ 'Qty' => 'Cantidad',
+ 'Quarter' => 'Trimestre',
+ 'Quotation' => 'Cotización',
+ 'Quotation Date missing!' => 'Falta fecha de cotización',
+ 'Quotation Number missing!' => 'Falta número de cotización',
+ 'Recd' => 'Cobrado',
+ 'Receipt' => 'Recibo',
+ 'Receipts' => 'Recibos',
+ 'Record in' => 'Registrar en',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Resto',
+ 'Report for' => 'Informe para',
+ 'Required by' => 'Aceptado el',
+ 'SKU' => 'SKU',
+ 'Sales Invoice.' => 'Facturas de ventas.',
+ 'Sales Order' => 'Presupuesto',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Pantalla',
+ 'Select all' => 'Guardar todo',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Select payment' => '¡Seleccione Pago!',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Select txt, postscript or PDF!' => '¡Seleccione txt, postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'No de Serial',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Envio',
+ 'Ship to' => 'Destino',
+ 'Ship via' => 'Envio por',
+ 'Shipping Address' => 'Dirección del envio',
+ 'Shipping Point' => 'Destino',
+ 'Source' => 'Fuente',
+ 'Standard' => 'Estándard',
+ 'Startdate' => 'Fecha inicial',
+ 'State/Province' => 'Departamento',
+ 'Statement' => 'Estado de cuenta',
+ 'Statement sent to' => 'Estado de cuenta enviado a',
+ 'Statements sent to printer!' => '¡Estado de cuenta enviado a la impresora!',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Résumen',
+ 'Tax' => 'Impuesto',
+ 'Tax Included' => 'Impuestos incluidos en el precio',
+ 'Tax collected' => 'Impuestos cobrados',
+ 'Tax paid' => 'Impuestos pagados',
+ 'Till' => 'Caja',
+ 'To' => 'Hasta',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Descuento',
+ 'Transaction' => 'Asiento',
+ 'Transaction deleted!' => '¡Transacción borrada!',
+ 'Transaction posted!' => '¡Transacción registrada!',
+ 'Translation not on file!' => 'Traducción no se encuentra en la Base de Datos',
+ 'Trial Balance' => 'Balance de comprobación',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice.' => 'Factura de Compra.',
+ 'Vendor Number' => 'Código Vendedor',
+ 'Vendor missing!' => '¡Falta el proveedor!',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Warning!' => 'Alerta!',
+ 'What type of item is this?' => '¿De qué tipo es este concepto?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'as at' => 'al',
+ 'ea' => 'unid.',
+ 'for Period' => 'para el periodo',
+ 'posted!' => 'Guardado',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'gestión_se_pago' => 'ap_transaction',
+ 'gestión_de_cobro' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'correo_electrónico' => 'e_mail',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'imprimir_y_registrar' => 'print_and_post',
+ 'facturas_de_ventas_' => 'sales_invoice_',
+ 'presupuesto' => 'sales_order',
+ 'guardar_todo' => 'select_all',
+ 'destino' => 'ship_to',
+ 'actualizar' => 'update',
+ 'factura_de_compra_' => 'vendor_invoice_',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/es/pw b/locale/es/pw
new file mode 100755
index 00000000..d5ed0e14
--- /dev/null
+++ b/locale/es/pw
@@ -0,0 +1,13 @@
+$self{texts} = {
+ 'Continue' => 'Continuar',
+ 'Password' => 'Contraseña',
+ 'Session expired!' => '¡Sesión Expiró!',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/es/rc b/locale/es/rc
new file mode 100755
index 00000000..a08f256f
--- /dev/null
+++ b/locale/es/rc
@@ -0,0 +1,79 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Balance',
+ 'Beginning Balance' => 'Balance Inicial',
+ 'Cleared' => 'Borrado',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Current' => 'Actual',
+ 'Date' => 'Fecha',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Difference' => 'Diferencia',
+ 'Done' => 'Hecho',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'Include Exchange Rate Difference' => 'Incluir Diferencia por Tasa de Cambio',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Month' => 'Mes',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Out of balance!' => '¡Fuera de balance!',
+ 'Outstanding' => 'Impagados',
+ 'Period' => 'Período',
+ 'Quarter' => 'Trimestre',
+ 'R' => 'R',
+ 'Reconciliation' => 'Reconciliación',
+ 'Reconciliation Report' => 'Reporte de Reconciliación',
+ 'Select all' => 'Guardar todo',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Source' => 'Fuente',
+ 'Statement Balance' => 'Balance de cuenta',
+ 'Summary' => 'Résumen',
+ 'To' => 'Hasta',
+ 'Update' => 'Actualizar',
+ 'Year' => 'Año',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'continuar' => 'continue',
+ 'hecho' => 'done',
+ 'guardar_todo' => 'select_all',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/es/rp b/locale/es/rp
new file mode 100755
index 00000000..0116363f
--- /dev/null
+++ b/locale/es/rp
@@ -0,0 +1,179 @@
+$self{texts} = {
+ 'AP Aging' => 'Diario resumido de pagos',
+ 'AR Aging' => 'Diario resumido de cobros ',
+ 'Account' => 'Cuenta',
+ 'Account Number' => 'Número de cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Accounts' => 'Cuentas',
+ 'Accrual' => 'Acumulado',
+ 'Address' => 'Dirección',
+ 'All Accounts' => 'Todas las Cuentas',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Balance',
+ 'Balance Sheet' => 'Hoja de balance',
+ 'Bcc' => 'Bcc',
+ 'Cash' => 'Efectivo',
+ 'Cc' => 'Cc',
+ 'Compare to' => 'Comparar con',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Credit' => 'Crédito',
+ 'Curr' => 'Mon.',
+ 'Current' => 'Actual',
+ 'Current Earnings' => 'Resultado del periodo',
+ 'Customer' => 'Cliente',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Decimalplaces' => 'Lugar de los decimales',
+ 'Department' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail Statement to' => 'Enviar comprobante por correo electrónico a',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'GIFI' => 'Código GIFI',
+ 'Heading' => 'Encabezado',
+ 'ID' => 'ID',
+ 'In-line' => 'Incrustado',
+ 'Include Exchange Rate Difference' => 'Incluir Diferencia por Tasa de Cambio',
+ 'Include in Report' => 'Incluir en informe',
+ 'Income Statement' => 'Balance de situación',
+ 'Invoice' => 'Factura',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Language' => 'Lenguaje',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Message' => 'Mensaje',
+ 'Method' => 'Metódo',
+ 'Month' => 'Mes',
+ 'N/A' => 'Sin respuesta',
+ 'Non-taxable Purchases' => 'Compras sin Impuestos',
+ 'Non-taxable Sales' => 'Ventas sin Impuestos',
+ 'Nothing selected!' => '¡No es seleccionado nada!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Order' => 'Orden',
+ 'PDF' => 'PDF',
+ 'Payments' => 'Vencimientos impagados',
+ 'Period' => 'Período',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Imprimir',
+ 'Project' => 'Proyecto',
+ 'Project Number' => 'Número del Proyecto',
+ 'Project Transactions' => 'Transacciones del Projecto',
+ 'Project not on file!' => '¡No se encuentra el proyecto en la base de datos!',
+ 'Quarter' => 'Trimestre',
+ 'Receipts' => 'Recibos',
+ 'Reference' => 'Referencia',
+ 'Report for' => 'Informe para',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Pantalla',
+ 'Select all' => 'Guardar todo',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Source' => 'Fuente',
+ 'Standard' => 'Estándard',
+ 'Startdate' => 'Fecha inicial',
+ 'Statement' => 'Estado de cuenta',
+ 'Statement sent to' => 'Estado de cuenta enviado a',
+ 'Statements sent to printer!' => '¡Estado de cuenta enviado a la impresora!',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Résumen',
+ 'Tax' => 'Impuesto',
+ 'Tax collected' => 'Impuestos cobrados',
+ 'Tax paid' => 'Impuestos pagados',
+ 'Till' => 'Caja',
+ 'To' => 'Hasta',
+ 'Total' => 'Total',
+ 'Trial Balance' => 'Balance de comprobación',
+ 'Vendor' => 'Proveedor',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Warning!' => 'Alerta!',
+ 'Year' => 'Año',
+ 'as at' => 'al',
+ 'for Period' => 'para el periodo',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuar' => 'continue',
+ 'correo_electrónico' => 'e_mail',
+ 'imprimir' => 'print',
+ 'guardar_todo' => 'select_all',
+};
+
+1;
+
diff --git a/locale/es_utf/COPYING b/locale/es_utf/COPYING
new file mode 100755
index 00000000..2904f500
--- /dev/null
+++ b/locale/es_utf/COPYING
@@ -0,0 +1,26 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2002
+#
+# Spanish texts:
+#
+# Author: Maria Gabriela Fong <mgfong@maga.tzo.org>
+# John Stoddart <jstypo@imagencolor.com.ve>
+# Federico Montesino Pouzols <fedemp@arrok.com>
+# Tomás Pereira <topec@percar.com>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/es_utf/LANGUAGE b/locale/es_utf/LANGUAGE
new file mode 100755
index 00000000..5e4a76a9
--- /dev/null
+++ b/locale/es_utf/LANGUAGE
@@ -0,0 +1 @@
+Spanish (UTF-8)
diff --git a/locale/es_utf/Num2text b/locale/es_utf/Num2text
new file mode 100755
index 00000000..03fe16d0
--- /dev/null
+++ b/locale/es_utf/Num2text
@@ -0,0 +1,211 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (C) 2002
+#
+# Author: Dieter Simader
+# Email: dsimader@sql-ledger.org
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+# Language: Spanish UTF-8
+# Contributors:
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#======================================================================
+
+
+sub init {
+ my $self = shift;
+
+ %{ $self->{numbername} } =
+ (0 => 'cero',
+ 1 => 'un',
+ '1o' => 'uno',
+ 2 => 'dos',
+ 3 => 'tres',
+ 4 => 'cuatro',
+ 5 => 'cinco',
+ 6 => 'seis',
+ 7 => 'siete',
+ 8 => 'ocho',
+ 9 => 'nueve',
+ 10 => 'diez',
+ 11 => 'once',
+ 12 => 'doce',
+ 13 => 'trece',
+ 14 => 'catorce',
+ 15 => 'quince',
+ 16 => 'dieciséis',
+ 17 => 'diecisiete',
+ 18 => 'dieciocho',
+ 19 => 'diecinueve',
+ 20 => 'veinte',
+ 21 => 'veintiún',
+ '21o' => 'veintiuno',
+ 22 => 'veintidós',
+ 23 => 'veintitrés',
+ 24 => 'veinticuatro',
+ 25 => 'veinticinco',
+ 26 => 'veintiséis',
+ 27 => 'veintisiete',
+ 28 => 'veintiocho',
+ 29 => 'veintinueve',
+ 30 => 'treinta',
+ 40 => 'cuarenta',
+ 50 => 'cincuenta',
+ 60 => 'sesenta',
+ 70 => 'setenta',
+ 80 => 'ochenta',
+ 90 => 'noventa',
+ 500 => 'quinientos',
+ 700 => 'setecientos',
+ 900 => 'novecientos',
+ 10**2 => 'ciento',
+ 10**3 => 'mil',
+ 10**6 => 'millón',
+ 10**12 => 'billón',
+ );
+
+}
+
+
+sub num2text {
+ my ($self, $amount) = @_;
+
+ return $self->{numbername}{0} unless $amount;
+
+ my @textnumber = ();
+
+ # split amount into chunks of 3
+ my @num = reverse split //, abs($amount);
+ my @numblock = ();
+ my $stripun = 0;
+ my @a = ();
+ my $i;
+
+ while (@num) {
+ @a = ();
+ for (1 .. 3) {
+ push @a, shift @num;
+ }
+ push @numblock, join / /, reverse @a;
+ }
+
+ # special case for 1000
+ if ($numblock[1] eq '1' && $numblock[0] gt '000') {
+ # remove first array element from textnumber
+ $stripun = 1;
+ }
+
+ while (@numblock) {
+
+ $i = $#numblock;
+ @num = split //, $numblock[$i];
+
+ $numblock[$i] *= 1;
+
+ if ($numblock[$i] == 0) {
+ pop @numblock;
+ next;
+ }
+
+ if ($numblock[$i] > 99) {
+ if ($num[0] == 1) {
+ push @textnumber, $self->{numbername}{10**2};
+ } else {
+ # special case for 500, 700, 900
+ if (grep /$num[0]/, (5,7,9)) {
+ push @textnumber, $self->{numbername}{"${num[0]}00"};
+
+ } else {
+
+ # the one from hundreds, append cientos
+ push @textnumber, $self->{numbername}{$num[0]}.$self->{numbername}{10**2}.'s';
+
+ }
+ }
+
+ # reduce numblock
+ $numblock[$i] -= $num[0] * 100;
+ }
+
+ if ($numblock[$i] > 9) {
+ # tens
+ push @textnumber, $self->format_ten($numblock[$i], $i);
+ } elsif ($numblock[$i] > 0) {
+ # ones
+ $num = $numblock[$i];
+ $num .= 'o' if ($num == 1 && $i == 0);
+ push @textnumber, $self->{numbername}{$num};
+ }
+
+ # add thousand, million
+ if ($i) {
+ $num = 10**($i * 3);
+ if ($numblock[$i] > 1) {
+ if ($i == 2 || $i == 4) {
+ $a = $self->{numbername}{$num}."es";
+ $a =~ s/ó/o/;
+ push @textnumber, $a;
+ } elsif ($i == 3) {
+ $num = 10**($i * 2);
+ $a = "$self->{10**3} $self->{numbername}{$num}"."es";
+ $a =~ s/ó/o/;
+ push @textnumber, $a;
+ } else {
+ if ($i == 1) {
+ push @textnumber, $self->{numbername}{$num};
+ } else {
+ push @textnumber, $self->{numbername}{$num}.'s';
+ }
+ }
+ } else {
+ push @textnumber, $self->{numbername}{$num};
+ }
+ }
+
+ pop @numblock;
+
+ }
+
+ shift @textnumber if $stripun;
+
+ join ' ', @textnumber;
+
+}
+
+
+sub format_ten {
+ my ($self, $amount, $i) = @_;
+
+ my $textnumber = "";
+ my @num = split //, $amount;
+
+ if ($amount > 30) {
+ $textnumber = $self->{numbername}{$num[0]*10};
+ $amount = $num[1];
+ } else {
+ $amount .= 'o' if ($num[1] == 1 && $i == 0);
+ $textnumber = $self->{numbername}{$amount};
+ $amount = 0;
+ }
+
+ $textnumber .= " y ".$self->{numbername}{$amount} if $amount;
+
+ $textnumber;
+
+}
+
+
+1;
+
diff --git a/locale/es_utf/aa b/locale/es_utf/aa
new file mode 100755
index 00000000..1527e331
--- /dev/null
+++ b/locale/es_utf/aa
@@ -0,0 +1,132 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Transaction' => 'Gestión se pago',
+ 'AP Transactions' => 'Gestiones de pagos',
+ 'AR Transaction' => 'Gestión de cobro',
+ 'AR Transactions' => 'Gestiones de cobros',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Cantidad adeudada',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => '¿Está seguro de que desea borrar la transacción?',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Cannot delete transaction!' => '¡No se puede borrar la transacción!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo ya cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar una transacción para un periodo cerrado',
+ 'Cannot post transaction!' => '¡No se puede registrar la transacción',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Cerrado',
+ 'Confirm!' => 'Confirmar',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Limite de credito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Date' => 'Fecha',
+ 'Date Paid' => 'Fecha de pago',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Description' => 'Descripción',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'Due Date missing!' => 'Falta la fecha de vencimiento',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de cambio',
+ 'Exchange rate for payment missing!' => '¡Falta la tasa de cambio para el pago!',
+ 'Exchange rate missing!' => '¡Falta la tasa de cambio!',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Number' => 'Número de orden',
+ 'Paid' => 'Pagado',
+ 'Payment date missing!' => 'No se encuentra la fecha de pago',
+ 'Payments' => 'Vencimientos impagados',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Print' => 'Imprimir',
+ 'Project' => 'Proyecto',
+ 'Receipt' => 'Recibo',
+ 'Remaining' => 'Resto',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Ship to' => 'Destino',
+ 'Ship via' => 'Envio por',
+ 'Source' => 'Fuente',
+ 'Subtotal' => 'Subtotal',
+ 'Tax' => 'Impuesto',
+ 'Tax Included' => 'Impuestos incluidos en el precio',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Transaction deleted!' => '¡Transacción borrada!',
+ 'Transaction posted!' => '¡Transacción registrada!',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor missing!' => '¡Falta el proveedor!',
+ 'Yes' => 'Si',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'gestión_se_pago' => 'ap_transaction',
+ 'gestión_de_cobro' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'destino' => 'ship_to',
+ 'actualizar' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/es_utf/admin b/locale/es_utf/admin
new file mode 100755
index 00000000..db4375fb
--- /dev/null
+++ b/locale/es_utf/admin
@@ -0,0 +1,137 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Access Control' => 'Control de Acceso',
+ 'Accounting' => 'Contabilidad',
+ 'Add User' => 'Añadir usuario',
+ 'Address' => 'Dirección',
+ 'Administration' => 'Administración',
+ 'Administrator' => 'Administrador',
+ 'All Datasets up to date!' => 'Todas las bases de datos están actualizadas',
+ 'Cannot create Lock!' => 'Cannot create Lock!',
+ 'Change Admin Password' => 'Cambiar la contraseña del administrador',
+ 'Change Password' => 'Cambiar contraseña',
+ 'Click on login name to edit!' => 'Haga clic en el nombre de usuario por
+editar',
+ 'Company' => 'Compañía',
+ 'Connect to' => 'Conectar a',
+ 'Continue' => 'Continuar',
+ 'Create Chart of Accounts' => 'Crear catálogo de cuentas',
+ 'Create Dataset' => 'Crear base de datos',
+ 'DBI not installed!' => 'No se ha instalado DBI',
+ 'Database' => 'Base de datos',
+ 'Database Administration' => 'Administración de las bases de datos',
+ 'Database Driver not checked!' => 'No se ha podido verificar el gestor de la base de datos',
+ 'Database User missing!' => 'No se ha definido el usuario de la base de datos',
+ 'Dataset' => 'Base de datos',
+ 'Dataset missing!' => 'No se ha definido la base de datos',
+ 'Dataset updated!' => 'Base de datos actualizada',
+ 'Date Format' => 'Formato de fecha',
+ 'Delete' => 'Borrar',
+ 'Delete Dataset' => 'Borrar base de datos',
+ 'Directory' => 'Directorio',
+ 'Driver' => 'Gestor',
+ 'Dropdown Limit' => 'Límite de efectivo',
+ 'E-mail' => 'Correo electrónico',
+ 'Edit User' => 'Editar usuario',
+ 'Existing Datasets' => 'Bases de datos existentes',
+ 'Fax' => 'Fax',
+ 'Host' => 'Máquina servidor de base de datos',
+ 'Hostname missing!' => 'No se ha definido la máquina servidor de base de datos',
+ 'Language' => 'Lenguaje',
+ 'Lock System' => 'Lock System',
+ 'Lockfile created!' => 'Lockfile created!',
+ 'Lockfile removed!' => 'Lockfile removed!',
+ 'Login' => 'Entrar',
+ 'Login name missing!' => 'Login name missing!',
+ 'Logout' => 'Salir',
+ 'Multibyte Encoding' => 'Multibyte Encoding',
+ 'Name' => 'Nombre',
+ 'New Templates' => 'Nuevas plantillas',
+ 'No Database Drivers available!' => 'No hay ningún gestor de base de datos disponible',
+ 'No Dataset selected!' => 'No se ha seleccionado ninguna base de datos',
+ 'Nothing to delete!' => '¡No hay nada para borrar!',
+ 'Number Format' => 'Formato de número',
+ 'Oracle Database Administration' => 'Administración de la base de datos Oracle',
+ 'Password' => 'Contraseña',
+ 'Password changed!' => '¡Contraseña cambiada!',
+ 'Pg Database Administration' => 'Administración de la base de datos PostgreSQL',
+ 'PgPP Database Administration' => 'PgPP Database Administration',
+ 'Phone' => 'Teléfono',
+ 'Port' => 'Puerto',
+ 'Port missing!' => 'No se ha definido el puerto',
+ 'Printer' => 'Impresora',
+ 'Save' => 'Guardar',
+ 'Setup Templates' => 'Configurar plantillas',
+ 'Signature' => 'Firma',
+ 'Stylesheet' => 'Hoja de estilo',
+ 'Templates' => 'Plantillas',
+ 'The following Datasets are not in use and can be deleted' => 'Las siguientes bases de datos no están en uso y se pueden borrar',
+ 'The following Datasets need to be updated' => 'Es necesario actualizar las siguientes bases de datos',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Esta es una verificacion preliminar de fuentes existentes. No se creará ni borrará nada durante esta etapa',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Para añadir un usuario a un grupo, edite un nombre, cambie el nombre de usuario (login) y guarde los cambios. Un nuevo usuario, con las mismas propiedades se guardará bajo el nuevo nombre de usuario (login).',
+ 'Unlock System' => 'Unlock System',
+ 'Update Dataset' => 'Actualizar base de datos',
+ 'Use Templates' => 'Plantillas de usuarios',
+ 'User' => 'Usuario',
+ 'User deleted!' => '¡Usuario borrado!',
+ 'User saved!' => '¡Usuario guardado!',
+ 'Version' => 'Versión',
+ 'does not exist' => 'no existe',
+ 'is already a member!' => 'ya es actualmente un miembro',
+ 'localhost' => 'máquina local',
+ 'successfully created!' => 'creado satisfactoriamente',
+ 'successfully deleted!' => 'borrado satisfactoriamente',
+ 'website' => 'sitio web',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'añadir_usuario' => 'add_user',
+ 'cambiar_la_contraseña_del_administrador' => 'change_admin_password',
+ 'cambiar_contraseña' => 'change_password',
+ 'continuar' => 'continue',
+ 'crear_base_de_datos' => 'create_dataset',
+ 'borrar' => 'delete',
+ 'borrar_base_de_datos' => 'delete_dataset',
+ 'lock_system' => 'lock_system',
+ 'entrar' => 'login',
+ 'salir' => 'logout',
+ 'administración_de_la_base_de_datos_oracle' => 'oracle_database_administration',
+ 'administración_de_la_base_de_datos_postgresql' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'guardar' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'actualizar_base_de_datos' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/es_utf/all b/locale/es_utf/all
new file mode 100755
index 00000000..72fd4beb
--- /dev/null
+++ b/locale/es_utf/all
@@ -0,0 +1,894 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+$self{charset} = 'UTF-8';
+
+
+$self{texts} = {
+ 'A' => '',
+ 'AP' => 'Cartera de pagos',
+ 'AP Aging' => 'Diario resumido de pagos',
+ 'AP Outstanding' => '',
+ 'AP Transaction' => 'Gestión se pago',
+ 'AP Transactions' => 'Gestiones de pagos',
+ 'AR' => 'Cartera de cobros',
+ 'AR Aging' => 'Diario resumido de cobros ',
+ 'AR Outstanding' => '',
+ 'AR Transaction' => 'Gestión de cobro',
+ 'AR Transactions' => 'Gestiones de cobros',
+ 'AR/AP' => '',
+ 'About' => 'Acerca de',
+ 'Above' => '',
+ 'Access Control' => 'Control de Acceso',
+ 'Access Denied!' => '',
+ 'Account' => 'Cuenta',
+ 'Account Number' => 'Número de cuenta',
+ 'Account Number missing!' => 'No se ha definido el número de la cuenta',
+ 'Account Type' => 'Categoría de cuenta',
+ 'Account Type missing!' => 'No se ha definido el tipo de la cuenta',
+ 'Account deleted!' => '¡Cuenta borraba!',
+ 'Account does not exist!' => '',
+ 'Account saved!' => '¡Cuenta guardada!',
+ 'Accounting' => 'Contabilidad',
+ 'Accounting Menu' => 'Menú general',
+ 'Accounts' => 'Cuentas',
+ 'Accrual' => '',
+ 'Activate Audit trail' => '',
+ 'Active' => 'Activo',
+ 'Add' => 'Añadir',
+ 'Add AP Transaction' => '',
+ 'Add AR Transaction' => '',
+ 'Add Account' => 'Añadir cuenta',
+ 'Add Assembly' => 'Añadir compuesto',
+ 'Add Business' => '',
+ 'Add Cash Transfer Transaction' => '',
+ 'Add Customer' => 'Añadir cliente',
+ 'Add Deduction' => '',
+ 'Add Department' => '',
+ 'Add Employee' => '',
+ 'Add Exchange Rate' => '',
+ 'Add GIFI' => 'Añadir código GIFI',
+ 'Add General Ledger Transaction' => 'Añadir transacción al libro mayor general',
+ 'Add Group' => '',
+ 'Add Job' => '',
+ 'Add Labor/Overhead' => '',
+ 'Add Language' => '',
+ 'Add POS Invoice' => '',
+ 'Add Part' => 'Añadir artículo',
+ 'Add Pricegroup' => '',
+ 'Add Project' => 'Añadir proyecto',
+ 'Add Purchase Order' => 'Añadir pedido',
+ 'Add Quotation' => '',
+ 'Add Request for Quotation' => '',
+ 'Add SIC' => '',
+ 'Add Sales Invoice' => 'Añadir factura',
+ 'Add Sales Order' => 'Añadir presupuesto',
+ 'Add Service' => 'Añadir servicio',
+ 'Add Timecard' => '',
+ 'Add Transaction' => 'Añadir',
+ 'Add User' => 'Añadir usuario',
+ 'Add Vendor' => 'Añadir proveedor',
+ 'Add Vendor Invoice' => 'Añadir factura de compra',
+ 'Add Warehouse' => '',
+ 'Address' => 'Dirección',
+ 'Administration' => 'Administración',
+ 'Administrator' => 'Administrador',
+ 'After Deduction' => '',
+ 'All' => 'Todos',
+ 'All Accounts' => '',
+ 'All Datasets up to date!' => 'Todas las bases de datos están actualizadas',
+ 'All Items' => '',
+ 'Allowances' => '',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Cantidad adeudada',
+ 'Amount missing!' => '',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => '¿Esta seguro de que desea borrar la factura número',
+ 'Are you sure you want to delete Order Number' => '¿Esta seguro de que desea
+borrar la orden número?',
+ 'Are you sure you want to delete Quotation Number' => '',
+ 'Are you sure you want to delete Timecard for' => '',
+ 'Are you sure you want to delete Transaction' => '¿Está seguro de que desea borrar la transacción?',
+ 'Are you sure you want to remove the marked entries from the queue?' => '',
+ 'Assemblies' => 'Compuestos',
+ 'Assemblies restocked!' => '¡Compuestos actualizados en almacen!',
+ 'Assembly' => '',
+ 'Assembly stocked!' => '',
+ 'Asset' => 'Activo',
+ 'Attachment' => 'Adjunto',
+ 'Audit Control' => 'Control de auditoría',
+ 'Audit trail disabled' => '',
+ 'Audit trail enabled' => '',
+ 'Audit trail removed up to' => '',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Average Cost' => '',
+ 'Avg Cost' => '',
+ 'BIC' => '',
+ 'BOM' => 'Listado de piezas',
+ 'Backup' => 'Copia de seguridad de los datos',
+ 'Backup sent to' => 'Copia de seguridad enviada a',
+ 'Balance' => 'Balance',
+ 'Balance Sheet' => 'Hoja de balance',
+ 'Based on' => '',
+ 'Bcc' => '',
+ 'Before Deduction' => '',
+ 'Beginning Balance' => '',
+ 'Below' => '',
+ 'Billing Address' => '',
+ 'Bin' => 'Bin',
+ 'Bin List' => '',
+ 'Bin Lists' => '',
+ 'Books are open' => 'Los libros están abiertos',
+ 'Break' => '',
+ 'Business' => '',
+ 'Business Number' => 'Numero de negocio',
+ 'Business deleted!' => '',
+ 'Business saved!' => '',
+ 'C' => '',
+ 'COGS' => 'Costo de los artículos',
+ 'COGS account does not exist!' => '',
+ 'Cannot add timecard for a completed job!' => '',
+ 'Cannot change timecard for a completed job!' => '',
+ 'Cannot create Assembly' => '',
+ 'Cannot create Labor' => '',
+ 'Cannot create Lock!' => 'Cannot create Lock!',
+ 'Cannot create Part' => '',
+ 'Cannot create Service' => '',
+ 'Cannot delete Timecard!' => '',
+ 'Cannot delete account!' => '¡No se puede borrar la cuenta!',
+ 'Cannot delete customer!' => '¡No se puede borrar el cliente!',
+ 'Cannot delete default account!' => 'No se puede borrar la cuenta por omisión',
+ 'Cannot delete invoice!' => '¡No se puede borrar la factura!',
+ 'Cannot delete item!' => '¡No se puede borrar el artículo!',
+ 'Cannot delete order!' => '¡No se puede borrar el pedido!',
+ 'Cannot delete quotation!' => '',
+ 'Cannot delete transaction!' => '¡No se puede borrar la transacción!',
+ 'Cannot delete vendor!' => '¡No se puede borrar el vendedor!',
+ 'Cannot post Payment!' => '',
+ 'Cannot post Receipt!' => '',
+ 'Cannot post invoice for a closed period!' => '¡No se puede registrar una factura en un periodo ya cerrado!',
+ 'Cannot post invoice!' => '¡No se puede registrar la factura!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo ya cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar una transacción para un periodo cerrado',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => '',
+ 'Cannot post transaction!' => '¡No se puede registrar la transacción',
+ 'Cannot remove files!' => '',
+ 'Cannot save account!' => '¡No se puede guardar la cuenta!',
+ 'Cannot save defaults!' => '',
+ 'Cannot save order!' => '¡No se puede guardar el pedido!',
+ 'Cannot save preferences!' => '¡No se puede guardar las preferencias!',
+ 'Cannot save quotation!' => '',
+ 'Cannot save timecard for a closed period!' => '',
+ 'Cannot save timecard!' => '',
+ 'Cannot set account for more than one of AR, AP or IC' => '',
+ 'Cannot set multiple options for' => '',
+ 'Cannot set multiple options for Item' => '',
+ 'Cannot stock Assembly!' => '',
+ 'Cannot stock assemblies!' => '¡No se pueden almacenar los compuestos!',
+ 'Cash' => 'Efectivo',
+ 'Cc' => '',
+ 'Change' => '',
+ 'Change Admin Password' => 'Cambiar la contraseña del administrador',
+ 'Change Password' => 'Cambiar contraseña',
+ 'Charge' => '',
+ 'Chart of Accounts' => 'Cuadro de cuentas',
+ 'Check' => 'Cheque',
+ 'Check Inventory' => '',
+ 'Checks' => '',
+ 'City' => '',
+ 'Cleared' => '',
+ 'Click on login name to edit!' => 'Haga clic en el nombre de usuario por
+editar',
+ 'Clocked' => '',
+ 'Close Books up to' => 'Cerrar los libros hasta',
+ 'Closed' => 'Cerrado',
+ 'Code' => '',
+ 'Code missing!' => '',
+ 'Company' => 'Compañía',
+ 'Company Name' => '',
+ 'Compare to' => 'Comparar con',
+ 'Completed' => '',
+ 'Components' => '',
+ 'Confirm' => '',
+ 'Confirm!' => 'Confirmar',
+ 'Connect to' => 'Conectar a',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Contra' => '',
+ 'Copies' => 'Copias',
+ 'Copy to COA' => 'Copiar al catálogo de cuentas',
+ 'Cost' => '',
+ 'Cost Center' => '',
+ 'Could not save pricelist!' => '',
+ 'Could not save!' => '',
+ 'Could not transfer Inventory!' => '',
+ 'Country' => '',
+ 'Create Chart of Accounts' => 'Crear catálogo de cuentas',
+ 'Create Dataset' => 'Crear base de datos',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Limite de credito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Current Earnings' => '',
+ 'Customer' => 'Cliente',
+ 'Customer History' => '',
+ 'Customer Number' => '',
+ 'Customer deleted!' => '¡Cliente borrado!',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Customer saved!' => '¡Cliente guardado!',
+ 'Customers' => 'Clientes',
+ 'DBI not installed!' => 'No se ha instalado DBI',
+ 'DOB' => '',
+ 'Database' => 'Base de datos',
+ 'Database Administration' => 'Administración de las bases de datos',
+ 'Database Driver not checked!' => 'No se ha podido verificar el gestor de la base de datos',
+ 'Database Host' => 'Máquina servidor de base de datos',
+ 'Database User missing!' => 'No se ha definido el usuario de la base de datos',
+ 'Dataset' => 'Base de datos',
+ 'Dataset is newer than version!' => '',
+ 'Dataset missing!' => 'No se ha definido la base de datos',
+ 'Dataset updated!' => 'Base de datos actualizada',
+ 'Date' => 'Fecha',
+ 'Date Format' => 'Formato de fecha',
+ 'Date Paid' => 'Fecha de pago',
+ 'Date Received' => '',
+ 'Date missing!' => '¡Falta la fecha!',
+ 'Date received missing!' => '',
+ 'Date worked' => '',
+ 'Day' => '',
+ 'Day(s)' => '',
+ 'Days' => '',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Decimalplaces' => 'Lugar de los decimales',
+ 'Decrease' => '',
+ 'Deduct after' => '',
+ 'Deduction deleted!' => '',
+ 'Deduction saved!' => '',
+ 'Deductions' => '',
+ 'Default Template' => '',
+ 'Defaults' => '',
+ 'Defaults saved!' => '',
+ 'Delete' => 'Borrar',
+ 'Delete Account' => 'Borrar cuenta',
+ 'Delete Dataset' => 'Borrar base de datos',
+ 'Delete Schedule' => '',
+ 'Deleting a language will also delete the templates for the language' => '',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Department' => '',
+ 'Department deleted!' => '',
+ 'Department saved!' => '',
+ 'Departments' => '',
+ 'Deposit' => 'Depósito',
+ 'Description' => 'Descripción',
+ 'Description Translations' => '',
+ 'Description missing!' => '',
+ 'Detail' => '',
+ 'Difference' => 'Diferencia',
+ 'Directory' => 'Directorio',
+ 'Discount' => 'Descuento',
+ 'Done' => 'Hecho',
+ 'Drawing' => 'Reintegro',
+ 'Driver' => 'Gestor',
+ 'Dropdown Limit' => 'Límite de efectivo',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'Due Date missing!' => 'Falta la fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail Statement to' => 'Enviar comprobante por correo electrónico a',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'E-mail message' => '',
+ 'E-mailed' => '',
+ 'Edit' => 'Editar',
+ 'Edit AP Transaction' => '',
+ 'Edit AR Transaction' => '',
+ 'Edit Account' => 'Editar cuenta',
+ 'Edit Assembly' => 'Editar compuesto',
+ 'Edit Business' => '',
+ 'Edit Cash Transfer Transaction' => '',
+ 'Edit Customer' => '',
+ 'Edit Deduction' => '',
+ 'Edit Department' => '',
+ 'Edit Description Translations' => '',
+ 'Edit Employee' => '',
+ 'Edit GIFI' => 'Editar GIFI',
+ 'Edit General Ledger Transaction' => 'Editar transacción del libro mayor general',
+ 'Edit Group' => '',
+ 'Edit Job' => '',
+ 'Edit Labor/Overhead' => '',
+ 'Edit Language' => '',
+ 'Edit POS Invoice' => '',
+ 'Edit Part' => 'Editar compuesto',
+ 'Edit Preferences for' => 'Editar preferencias de',
+ 'Edit Pricegroup' => '',
+ 'Edit Project' => 'Editar proyecto',
+ 'Edit Purchase Order' => 'Editar pedido',
+ 'Edit Quotation' => '',
+ 'Edit Request for Quotation' => '',
+ 'Edit SIC' => '',
+ 'Edit Sales Invoice' => 'Edirar factura de venta',
+ 'Edit Sales Order' => 'Editar presupuesto',
+ 'Edit Service' => 'Editar servicio',
+ 'Edit Template' => 'Editar plantilla',
+ 'Edit Timecard' => '',
+ 'Edit User' => 'Editar usuario',
+ 'Edit Vendor' => '',
+ 'Edit Vendor Invoice' => 'Editar factura de compra',
+ 'Edit Warehouse' => '',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Employee Name' => '',
+ 'Employee Number' => '',
+ 'Employee deleted!' => '',
+ 'Employee pays' => '',
+ 'Employee saved!' => '',
+ 'Employees' => '',
+ 'Employer' => '',
+ 'Employer pays' => '',
+ 'Enddate' => '',
+ 'Ends' => '',
+ 'Enforce transaction reversal for all dates' => 'Forzar la anulación de las transacciones para todas las fechas',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Introduzca hasta 3 letras separadas por dos puntos (p.e. CAD:USD:EUR) para las monedas locales y las extranjeras',
+ 'Equity' => 'Balance',
+ 'Every' => '',
+ 'Excempt age <' => '',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de cambio',
+ 'Exchange rate for payment missing!' => '¡Falta la tasa de cambio para el pago!',
+ 'Exchange rate missing!' => '¡Falta la tasa de cambio!',
+ 'Existing Datasets' => 'Bases de datos existentes',
+ 'Expense' => 'Gastos',
+ 'Expense account does not exist!' => '',
+ 'Expense/Asset' => 'Gastos/Activo',
+ 'Extended' => 'Extendido',
+ 'FX' => '',
+ 'Failed to save order!' => '',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'For' => '',
+ 'Foreign Exchange Gain' => 'Ganancia en moneda extranjera',
+ 'Foreign Exchange Loss' => 'Pérdida en moneda extranjera',
+ 'Friday' => '',
+ 'From' => 'Desde',
+ 'From Warehouse' => '',
+ 'GIFI' => 'Código GIFI',
+ 'GIFI deleted!' => '¡Borrado el código GIFI!',
+ 'GIFI missing!' => 'No se ha definido el código GIFI',
+ 'GIFI saved!' => '¡Guardado el código GIFI!',
+ 'GL' => '',
+ 'GL Reference Number' => '',
+ 'GL Transaction' => 'Transacción en el libro mayor',
+ 'General Ledger' => 'Libro mayor general',
+ 'Generate' => '',
+ 'Generate Orders' => '',
+ 'Generate Purchase Orders' => '',
+ 'Generate Purchase Orders from Sales Order' => '',
+ 'Generate Sales Order' => '',
+ 'Generate Sales Order from Purchase Orders' => '',
+ 'Generate Sales Orders' => '',
+ 'Goods & Services' => 'Bienes y servicios',
+ 'Group' => '',
+ 'Group Items' => '',
+ 'Group Translations' => '',
+ 'Group deleted!' => '',
+ 'Group missing!' => '',
+ 'Group saved!' => '',
+ 'Groups' => '',
+ 'HR' => '',
+ 'HTML Templates' => 'Plantillas HTML',
+ 'Heading' => 'Encabezado',
+ 'History' => '',
+ 'Home Phone' => '',
+ 'Host' => 'Máquina servidor de base de datos',
+ 'Hostname missing!' => 'No se ha definido la máquina servidor de base de datos',
+ 'IBAN' => '',
+ 'ID' => 'ID',
+ 'Image' => 'Imagen',
+ 'In-line' => 'Incrustado',
+ 'Inactive' => '',
+ 'Include Exchange Rate Difference' => '',
+ 'Include Payment' => '',
+ 'Include in Report' => 'Incluir en informe',
+ 'Include in drop-down menus' => 'Incluir en menúes desplegables:',
+ 'Income' => '',
+ 'Income Statement' => 'Balance de situación',
+ 'Income account does not exist!' => '',
+ 'Incorrect Dataset version!' => '',
+ 'Increase' => '',
+ 'Individual Items' => 'Artículos individuales',
+ 'Internal Notes' => '',
+ 'Inventory' => 'Inventario',
+ 'Inventory account does not exist!' => '',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'La cantidad en inventario debe ser cero antes de cambiar este compuesto a obsoleto',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'La cantidad en inventario debe ser cero antes de cambiar este artículo a obsoleto',
+ 'Inventory saved!' => '',
+ 'Inventory transferred!' => '',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Invoice Number missing!' => 'No se ha definido el número de la factura',
+ 'Invoice deleted!' => '¡Factura borrada!',
+ 'Invoices' => 'Facturas',
+ 'Is this a summary account to record' => '¿Es esta una cuenta de resumen a registrar?',
+ 'Item already on pricelist!' => '',
+ 'Item deleted!' => '¡Concepto borrado!',
+ 'Item not on file!' => 'El concepto no se encuentra en ningún archivo',
+ 'Items' => '',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Job' => '',
+ 'Job Name' => '',
+ 'Job Number' => '',
+ 'Job Number missing!' => '',
+ 'Job deleted!' => '',
+ 'Job saved!' => '',
+ 'Jobs' => '',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'LaTeX Templates' => 'Plantillas LaTeX',
+ 'Labor Code' => '',
+ 'Labor/Overhead' => '',
+ 'Language' => 'Lenguaje',
+ 'Language deleted!' => '',
+ 'Language saved!' => '',
+ 'Languages' => '',
+ 'Languages not defined!' => '',
+ 'Last Cost' => '',
+ 'Last Numbers & Default Accounts' => 'Últimos números y cuentas por omisión',
+ 'Lead' => '',
+ 'Leadtime' => '',
+ 'Leave host and port field empty unless you want to make a remote connection.' => 'Deje los campos de máquina servidor de base de datos y puerto vacíos al menos que quiera hacer una conexión remota',
+ 'Liability' => 'Pasivo',
+ 'Licensed to' => 'Adaptado para',
+ 'Line Total' => 'Total de la línea',
+ 'Link' => 'Enlaces',
+ 'Link Accounts' => 'Enlazar cuentas',
+ 'List' => '',
+ 'List Accounts' => 'Listar cuentas',
+ 'List Businesses' => '',
+ 'List Departments' => '',
+ 'List GIFI' => 'Listar código GIFI',
+ 'List Languages' => '',
+ 'List Price' => 'Precio de lista',
+ 'List Projects' => '',
+ 'List SIC' => '',
+ 'List Transactions' => 'Listar transacciones',
+ 'List Warehouses' => '',
+ 'Lock System' => 'Lock System',
+ 'Lockfile created!' => 'Lockfile created!',
+ 'Lockfile removed!' => 'Lockfile removed!',
+ 'Login' => 'Entrar',
+ 'Login name missing!' => 'Login name missing!',
+ 'Logout' => 'Salir',
+ 'Make' => 'Marca',
+ 'Manager' => '',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'Marked entries printed!' => '',
+ 'Markup' => '',
+ 'Maximum' => '',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Memo' => '',
+ 'Menu Width' => '',
+ 'Message' => 'Mensaje',
+ 'Method' => '',
+ 'Microfiche' => 'Microficha',
+ 'Model' => 'Modelo',
+ 'Monday' => '',
+ 'Month' => '',
+ 'Month(s)' => '',
+ 'Months' => '',
+ 'Multibyte Encoding' => 'Multibyte Encoding',
+ 'N/A' => 'Sin respuesta',
+ 'Name' => 'Nombre',
+ 'Name missing!' => '¡Falta el nombre!',
+ 'New Templates' => 'Nuevas plantillas',
+ 'New Window' => '',
+ 'Next' => '',
+ 'Next Date' => '',
+ 'Next Number' => '',
+ 'No' => 'No',
+ 'No Database Drivers available!' => 'No hay ningún gestor de base de datos disponible',
+ 'No Dataset selected!' => 'No se ha seleccionado ninguna base de datos',
+ 'No Employees on file!' => '',
+ 'No Labor codes on file!' => '',
+ 'No email address for' => 'Falta la dirección de correo electrónico de',
+ 'No open Jobs!' => '',
+ 'No open Projects!' => '',
+ 'No.' => '',
+ 'Non-taxable' => '',
+ 'Non-taxable Purchases' => '',
+ 'Non-taxable Sales' => '',
+ 'Non-tracking Items' => '',
+ 'Notes' => 'Notas',
+ 'Nothing entered!' => '',
+ 'Nothing selected!' => '¡No es seleccionado nada!',
+ 'Nothing to delete!' => '¡No hay nada para borrar!',
+ 'Nothing to print!' => '',
+ 'Nothing to transfer!' => '',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number Format' => 'Formato de número',
+ 'Number missing in Row' => 'No se ha definido el número en la fila',
+ 'O' => '',
+ 'OH' => '',
+ 'Obsolete' => 'Obsoleto',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'On Hand' => 'Disponible',
+ 'Open' => 'Abierto',
+ 'Oracle Database Administration' => 'Administración de la base de datos Oracle',
+ 'Order' => 'Orden',
+ 'Order Date' => 'Fecha de elaboración',
+ 'Order Date missing!' => 'No se ha definido la fecha de la elaboración',
+ 'Order Entry' => 'Presupuestos y pedidos',
+ 'Order Number' => 'Número de orden',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'Order deleted!' => '¡Orden borrada!',
+ 'Order generation failed!' => '',
+ 'Order saved!' => '',
+ 'Orders generated!' => '',
+ 'Orphaned' => 'Huérfano',
+ 'Out of balance transaction!' => '',
+ 'Out of balance!' => '¡Fuera de balance!',
+ 'Outstanding' => '',
+ 'PDF' => '',
+ 'PO Number' => '',
+ 'POS' => '',
+ 'POS Invoice' => '',
+ 'Packing List' => 'Albarán',
+ 'Packing List Date missing!' => 'No se ha definido la fecha del albarán',
+ 'Packing List Number missing!' => 'No se ha definido el número del albarán',
+ 'Packing Lists' => '',
+ 'Paid' => 'Pagado',
+ 'Part' => 'Artículo',
+ 'Part Number' => '',
+ 'Partnumber' => '',
+ 'Parts' => 'Artículos',
+ 'Password' => 'Contraseña',
+ 'Password changed!' => '¡Contraseña cambiada!',
+ 'Password does not match!' => '',
+ 'Passwords do not match!' => '',
+ 'Payables' => 'Pagos',
+ 'Payment' => 'Pago',
+ 'Payment date missing!' => 'No se encuentra la fecha de pago',
+ 'Payment posted!' => '¡Pago registrado!',
+ 'Payments' => 'Vencimientos impagados',
+ 'Payments posted!' => '',
+ 'Payroll Deduction' => '',
+ 'Period' => '',
+ 'Pg Database Administration' => 'Administración de la base de datos PostgreSQL',
+ 'PgPP Database Administration' => 'PgPP Database Administration',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => '',
+ 'Pick Lists' => '',
+ 'Port' => 'Puerto',
+ 'Port missing!' => 'No se ha definido el puerto',
+ 'Pos' => '',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Posted!' => '',
+ 'Posting' => '',
+ 'Posting failed!' => '',
+ 'Postscript' => '',
+ 'Preferences' => 'Preferencias',
+ 'Preferences saved!' => 'Preferencias guardadas',
+ 'Prepayment' => '',
+ 'Price' => 'Precio',
+ 'Pricegroup' => '',
+ 'Pricegroup deleted!' => '',
+ 'Pricegroup missing!' => '',
+ 'Pricegroup saved!' => '',
+ 'Pricegroups' => '',
+ 'Pricelist' => '',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => '',
+ 'Print and Post as new' => '',
+ 'Print and Save' => '',
+ 'Print and Save as new' => '',
+ 'Print and post as new' => '',
+ 'Print and save as new' => '',
+ 'Printed' => '',
+ 'Printer' => 'Impresora',
+ 'Printing' => '',
+ 'Printing ... ' => '',
+ 'Process Transactions' => '',
+ 'Production' => '',
+ 'Profit Center' => '',
+ 'Project' => 'Proyecto',
+ 'Project Description Translations' => '',
+ 'Project Name' => '',
+ 'Project Number' => '',
+ 'Project Number missing!' => '¡Falta el número de proyecto!',
+ 'Project Transactions' => '',
+ 'Project deleted!' => '¡Proyecto borrado!',
+ 'Project not on file!' => '¡No se encuentra el proyecto en la base de datos!',
+ 'Project saved!' => '¡Proyecto guardado ',
+ 'Project/Job Name' => '',
+ 'Project/Job Number' => '',
+ 'Projects' => 'Proyectos',
+ 'Purchase Order' => 'Pedido',
+ 'Purchase Order Number' => '',
+ 'Purchase Orders' => 'Pedidos',
+ 'Qty' => 'Cantidad',
+ 'Quantity exceeds available units to stock!' => '',
+ 'Quarter' => '',
+ 'Quotation' => '',
+ 'Quotation ' => '',
+ 'Quotation Date' => '',
+ 'Quotation Date missing!' => '',
+ 'Quotation Number' => '',
+ 'Quotation Number missing!' => '',
+ 'Quotation deleted!' => '',
+ 'Quotations' => '',
+ 'R' => '',
+ 'RFQ' => '',
+ 'RFQ ' => '',
+ 'RFQ Number' => '',
+ 'RFQs' => '',
+ 'ROP' => 'Tope de envio',
+ 'Rate' => 'Tarifa',
+ 'Rate missing!' => '',
+ 'Recd' => 'Cobrado',
+ 'Receipt' => 'Recibo',
+ 'Receipt posted!' => '',
+ 'Receipts' => 'Recibos',
+ 'Receivables' => 'Cobros',
+ 'Receive' => '',
+ 'Receive Merchandise' => '',
+ 'Reconciliation' => 'Reconciliación',
+ 'Reconciliation Report' => '',
+ 'Record in' => 'Registrar en',
+ 'Recurring Transaction' => '',
+ 'Recurring Transactions' => '',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Resto',
+ 'Remove' => '',
+ 'Remove Audit trail up to' => '',
+ 'Removed spoolfiles!' => '',
+ 'Removing marked entries from queue ...' => '',
+ 'Repeat' => '',
+ 'Report for' => 'Informe para',
+ 'Reports' => 'Informes',
+ 'Req' => '',
+ 'Request for Quotation' => '',
+ 'Request for Quotations' => '',
+ 'Required by' => 'Aceptado el',
+ 'Retained Earnings' => '',
+ 'Role' => '',
+ 'S' => '',
+ 'SIC' => '',
+ 'SIC deleted!' => '',
+ 'SIC saved!' => '',
+ 'SKU' => '',
+ 'SSN' => '',
+ 'Sale' => '',
+ 'Sales' => 'Ventas',
+ 'Sales Invoice' => 'Facturas de ventas',
+ 'Sales Invoice ' => '',
+ 'Sales Invoice.' => '',
+ 'Sales Invoice/AR Transaction Number' => '',
+ 'Sales Invoices' => '',
+ 'Sales Order' => 'Presupuesto',
+ 'Sales Order Number' => '',
+ 'Sales Orders' => 'Presupuestos',
+ 'Sales Quotation Number' => '',
+ 'Salesperson' => '',
+ 'Saturday' => '',
+ 'Save' => 'Guardar',
+ 'Save Pricelist' => '',
+ 'Save Schedule' => '',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Save to File' => 'Guardar en un archivo',
+ 'Saving' => '',
+ 'Schedule' => '',
+ 'Scheduled' => '',
+ 'Screen' => 'Pantalla',
+ 'Search' => '',
+ 'Select' => '',
+ 'Select Customer' => '',
+ 'Select Vendor' => '',
+ 'Select a Printer!' => '',
+ 'Select a printer!' => '',
+ 'Select all' => 'Guardar todo',
+ 'Select from one of the items below' => 'Seleccione uno de los artículos siguientes',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Select items' => '',
+ 'Select payment' => '',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Select txt, postscript or PDF!' => '',
+ 'Sell' => '',
+ 'Sell Price' => 'Precio de venta',
+ 'Send by E-Mail' => 'Enviar por correo electrónico',
+ 'Sending' => '',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => '',
+ 'Serial Number' => '',
+ 'Service' => 'Servicio',
+ 'Service Code' => '',
+ 'Service/Labor Code' => '',
+ 'Services' => 'Servicios',
+ 'Session Timeout' => '',
+ 'Session expired!' => '',
+ 'Setup Templates' => 'Configurar plantillas',
+ 'Ship' => 'Envio',
+ 'Ship Merchandise' => '',
+ 'Ship to' => 'Destino',
+ 'Ship via' => 'Envio por',
+ 'Shipping' => '',
+ 'Shipping Address' => '',
+ 'Shipping Date' => '',
+ 'Shipping Date missing!' => '',
+ 'Shipping Point' => '',
+ 'Short' => 'Corto',
+ 'Signature' => 'Firma',
+ 'Source' => 'Fuente',
+ 'Spoolfile' => '',
+ 'Standard' => 'Estándard',
+ 'Standard Industrial Codes' => '',
+ 'Startdate' => '',
+ 'State' => '',
+ 'State/Province' => '',
+ 'Statement' => 'Estado de cuenta',
+ 'Statement Balance' => 'Balance de cuenta',
+ 'Statement sent to' => 'Estado de cuenta enviado a',
+ 'Statements sent to printer!' => '¡Estado de cuenta enviado a la impresora!',
+ 'Stock' => '',
+ 'Stock Assembly' => 'Inventariar compuesto',
+ 'Stocking Date' => '',
+ 'Stylesheet' => 'Hoja de estilo',
+ 'Sub-contract GIFI' => '',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => '',
+ 'Sunday' => '',
+ 'Supervisor' => '',
+ 'System' => 'Sistema',
+ 'System Defaults' => '',
+ 'Tax' => 'Impuesto',
+ 'Tax Accounts' => 'Cuentas de impuestos',
+ 'Tax Included' => 'Impuestos incluidos en el precio',
+ 'Tax Number' => '',
+ 'Tax Number / SSN' => '',
+ 'Tax collected' => 'Impuestos cobrados',
+ 'Tax paid' => 'Impuestos pagados',
+ 'Taxable' => 'Impuestos gravables',
+ 'Template saved!' => '¡Plantilla guardada!',
+ 'Templates' => 'Plantillas',
+ 'Terms' => 'Crédito',
+ 'Text' => '',
+ 'Text Templates' => '',
+ 'The following Datasets are not in use and can be deleted' => 'Las siguientes bases de datos no están en uso y se pueden borrar',
+ 'The following Datasets need to be updated' => 'Es necesario actualizar las siguientes bases de datos',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Esta es una verificacion preliminar de fuentes existentes. No se creará ni borrará nada durante esta etapa',
+ 'Thursday' => '',
+ 'Till' => '',
+ 'Time In' => '',
+ 'Time Out' => '',
+ 'Timecard' => '',
+ 'Timecard deleted!' => '',
+ 'Timecard saved!' => '',
+ 'Timecards' => '',
+ 'Times' => '',
+ 'To' => 'Hasta ',
+ 'To Warehouse' => '',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Para añadir un usuario a un grupo, edite un nombre, cambie el nombre de usuario (login) y guarde los cambios. Un nuevo usuario, con las mismas propiedades se guardará bajo el nuevo nombre de usuario (login).',
+ 'Top Level' => '',
+ 'Total' => 'Total',
+ 'Tracking Items' => '',
+ 'Trade Discount' => '',
+ 'Transaction' => '',
+ 'Transaction Date missing!' => 'No se ha definido la fecha de la transacción',
+ 'Transaction Dates' => '',
+ 'Transaction deleted!' => '¡Transacción borrada!',
+ 'Transaction posted!' => '¡Transacción registrada!',
+ 'Transaction reversal enforced for all dates' => 'Se ha forzado la anulación de las transacciones para todas las fechas',
+ 'Transaction reversal enforced up to' => 'Se ha forzado la anulación de las transacciones hasta',
+ 'Transactions' => 'Impagados',
+ 'Transfer' => '',
+ 'Transfer Inventory' => '',
+ 'Transfer from' => '',
+ 'Transfer to' => '',
+ 'Translation' => '',
+ 'Translation deleted!' => '',
+ 'Translation not on file!' => '',
+ 'Translations' => '',
+ 'Translations saved!' => '',
+ 'Trial Balance' => 'Balance de comprobación',
+ 'Tuesday' => '',
+ 'Type of Business' => '',
+ 'Unit' => 'Unidad',
+ 'Unit of measure' => 'Unidad de medida',
+ 'Unlock System' => 'Unlock System',
+ 'Update' => 'Actualizar',
+ 'Update Dataset' => 'Actualizar base de datos',
+ 'Updated' => '¡Actualizado!',
+ 'Upgrading to Version' => '',
+ 'Use Templates' => 'Plantillas de usuarios',
+ 'User' => 'Usuario',
+ 'User deleted!' => '¡Usuario borrado!',
+ 'User saved!' => '¡Usuario guardado!',
+ 'Valid until' => '',
+ 'Vendor' => 'Proveedor',
+ 'Vendor History' => '',
+ 'Vendor Invoice' => 'Factura de compras',
+ 'Vendor Invoice ' => '',
+ 'Vendor Invoice.' => '',
+ 'Vendor Invoice/AP Transaction Number' => '',
+ 'Vendor Invoices' => '',
+ 'Vendor Number' => '',
+ 'Vendor deleted!' => '¡Proveedor borrado!',
+ 'Vendor missing!' => '¡Falta el proveedor!',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Vendor saved!' => '¡Proveedor guardado!',
+ 'Vendors' => 'Proveedores',
+ 'Version' => 'Versión',
+ 'Warehouse' => '',
+ 'Warehouse deleted!' => '',
+ 'Warehouse saved!' => '',
+ 'Warehouses' => '',
+ 'Warning!' => '',
+ 'Wednesday' => '',
+ 'Week' => '',
+ 'Week(s)' => '',
+ 'Weeks' => '',
+ 'Weight' => 'Peso',
+ 'Weight Unit' => 'Unidad de peso',
+ 'What type of item is this?' => '¿De qué tipo es este concepto?',
+ 'Work Order' => '',
+ 'Work Orders' => '',
+ 'Work Phone' => '',
+ 'Year' => '',
+ 'Year(s)' => '',
+ 'Yearend' => '',
+ 'Yearend date missing!' => '',
+ 'Yearend posted!' => '',
+ 'Yearend posting failed!' => '',
+ 'Years' => '',
+ 'Yes' => 'Si',
+ 'You are logged out' => '',
+ 'You are posting an existing transaction!' => '',
+ 'You are printing and posting an existing transaction!' => '',
+ 'You are printing and saving an existing order' => '',
+ 'You are printing and saving an existing quotation' => '',
+ 'You are printing and saving an existing transaction!' => '',
+ 'You are saving an existing order' => '',
+ 'You are saving an existing quotation' => '',
+ 'You are saving an existing transaction!' => '',
+ 'You did not enter a name!' => 'No ha introducido el nombre',
+ 'You must enter a host and port for local and remote connections!' => 'Debe introducir una máquina servidor de bases de datos y un puerto para conexiones locales y remotas',
+ 'Zip/Postal Code' => '',
+ 'account cannot be set to any other type of account' => '',
+ 'as at' => 'al',
+ 'days' => 'días',
+ 'does not exist' => 'no existe',
+ 'done' => '',
+ 'ea' => 'unid.',
+ 'failed' => '',
+ 'for' => '',
+ 'for Period' => 'para el periodo',
+ 'is already a member!' => 'ya es actualmente un miembro',
+ 'localhost' => 'máquina local',
+ 'locked!' => '',
+ 'partsgroup' => '',
+ 'posted!' => '',
+ 'sent' => '',
+ 'successfully created!' => 'creado satisfactoriamente',
+ 'successfully deleted!' => 'borrado satisfactoriamente',
+ 'time(s)' => '',
+ 'unexpected error!' => '',
+ 'website' => 'sitio web',
+};
+
+1;
diff --git a/locale/es_utf/am b/locale/es_utf/am
new file mode 100755
index 00000000..58c0ba5c
--- /dev/null
+++ b/locale/es_utf/am
@@ -0,0 +1,210 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP' => 'Cartera de pagos',
+ 'AR' => 'Cartera de cobros',
+ 'About' => 'Acerca de',
+ 'Account' => 'Cuenta',
+ 'Account Number' => 'Número de cuenta',
+ 'Account Number missing!' => 'No se ha definido el número de la cuenta',
+ 'Account Type' => 'Categoría de cuenta',
+ 'Account Type missing!' => 'No se ha definido el tipo de la cuenta',
+ 'Account deleted!' => '¡Cuenta borraba!',
+ 'Account saved!' => '¡Cuenta guardada!',
+ 'Accounting Menu' => 'Menú general',
+ 'Add Account' => 'Añadir cuenta',
+ 'Add GIFI' => 'Añadir código GIFI',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Total',
+ 'Asset' => 'Activo',
+ 'Audit Control' => 'Control de auditoría',
+ 'Backup sent to' => 'Copia de seguridad enviada a',
+ 'Books are open' => 'Los libros están abiertos',
+ 'Business Number' => 'Numero de negocio',
+ 'COGS' => 'Costo de los artículos',
+ 'Cannot delete account!' => '¡No se puede borrar la cuenta!',
+ 'Cannot delete default account!' => 'No se puede borrar la cuenta por omisión',
+ 'Cannot save account!' => '¡No se puede guardar la cuenta!',
+ 'Cannot save preferences!' => '¡No se puede guardar las preferencias!',
+ 'Cash' => 'Efectivo',
+ 'Chart of Accounts' => 'Cuadro de cuentas',
+ 'Close Books up to' => 'Cerrar los libros hasta',
+ 'Company' => 'Compañía',
+ 'Confirm!' => 'Confirmar',
+ 'Continue' => 'Continuar',
+ 'Copy to COA' => 'Copiar al catálogo de cuentas',
+ 'Credit' => 'Crédito',
+ 'Database Host' => 'Máquina servidor de base de datos',
+ 'Dataset' => 'Base de datos',
+ 'Date Format' => 'Formato de fecha',
+ 'Debit' => 'Débito',
+ 'Delete' => 'Borrar',
+ 'Delete Account' => 'Borrar cuenta',
+ 'Description' => 'Descripción',
+ 'Discount' => 'Descuento',
+ 'Dropdown Limit' => 'Límite de efectivo',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'Edit' => 'Editar',
+ 'Edit Account' => 'Editar cuenta',
+ 'Edit GIFI' => 'Editar GIFI',
+ 'Edit Preferences for' => 'Editar preferencias de',
+ 'Edit Template' => 'Editar plantilla',
+ 'Enforce transaction reversal for all dates' => 'Forzar la anulación de las transacciones para todas las fechas',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Introduzca hasta 3 letras separadas por dos puntos (p.e. CAD:USD:EUR) para las monedas locales y las extranjeras',
+ 'Equity' => 'Balance',
+ 'Expense' => 'Gastos',
+ 'Expense/Asset' => 'Gastos/Activo',
+ 'Fax' => 'Fax',
+ 'Foreign Exchange Gain' => 'Ganancia en moneda extranjera',
+ 'Foreign Exchange Loss' => 'Pérdida en moneda extranjera',
+ 'GIFI' => 'Código GIFI',
+ 'GIFI deleted!' => '¡Borrado el código GIFI!',
+ 'GIFI missing!' => 'No se ha definido el código GIFI',
+ 'GIFI saved!' => '¡Guardado el código GIFI!',
+ 'GL Transaction' => 'Transacción en el libro mayor',
+ 'Heading' => 'Encabezado',
+ 'ID' => 'ID',
+ 'Include in drop-down menus' => 'Incluir en menúes desplegables:',
+ 'Inventory' => 'Inventario',
+ 'Invoice' => 'Factura',
+ 'Is this a summary account to record' => '¿Es esta una cuenta de resumen a registrar?',
+ 'Language' => 'Lenguaje',
+ 'Last Numbers & Default Accounts' => 'Últimos números y cuentas por omisión',
+ 'Liability' => 'Pasivo',
+ 'Licensed to' => 'Adaptado para',
+ 'Link' => 'Enlaces',
+ 'Name' => 'Nombre',
+ 'No' => 'No',
+ 'No email address for' => 'Falta la dirección de correo electrónico de',
+ 'Number' => 'Número',
+ 'Number Format' => 'Formato de número',
+ 'Packing List' => 'Albarán',
+ 'Password' => 'Contraseña',
+ 'Payables' => 'Pagos',
+ 'Payment' => 'Pago',
+ 'Phone' => 'Teléfono',
+ 'Preferences saved!' => 'Preferencias guardadas',
+ 'Print' => 'Imprimir',
+ 'Printer' => 'Impresora',
+ 'Purchase Order' => 'Pedido',
+ 'Purchase Orders' => 'Pedidos',
+ 'Rate' => 'Tarifa',
+ 'Receivables' => 'Cobros',
+ 'Reference' => 'Referencia',
+ 'Sales Invoice' => 'Facturas de ventas',
+ 'Sales Order' => 'Presupuesto',
+ 'Sales Orders' => 'Presupuestos',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Signature' => 'Firma',
+ 'Stylesheet' => 'Hoja de estilo',
+ 'Tax' => 'Impuesto',
+ 'Template saved!' => '¡Plantilla guardada!',
+ 'Transaction reversal enforced for all dates' => 'Se ha forzado la anulación de las transacciones para todas las fechas',
+ 'Transaction reversal enforced up to' => 'Se ha forzado la anulación de las transacciones hasta',
+ 'Update' => 'Actualizar',
+ 'User' => 'Usuario',
+ 'Vendor Invoice' => 'Factura de compras',
+ 'Version' => 'Versión',
+ 'Weight Unit' => 'Unidad de peso',
+ 'Yes' => 'Si',
+ 'localhost' => 'máquina local',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'añadir_cuenta' => 'add_account',
+ 'continuar' => 'continue',
+ 'copiar_al_catálogo_de_cuentas' => 'copy_to_coa',
+ 'borrar' => 'delete',
+ 'editar' => 'edit',
+ 'editar_cuenta' => 'edit_account',
+ 'guardar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/es_utf/ap b/locale/es_utf/ap
new file mode 100755
index 00000000..cf9e3a86
--- /dev/null
+++ b/locale/es_utf/ap
@@ -0,0 +1,176 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Transaction' => 'Gestión se pago',
+ 'AP Transactions' => 'Gestiones de pagos',
+ 'AR Transaction' => 'Gestión de cobro',
+ 'AR Transactions' => 'Gestiones de cobros',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Cantidad adeudada',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => '¿Está seguro de que desea borrar la transacción?',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Cannot delete transaction!' => '¡No se puede borrar la transacción!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo ya cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar una transacción para un periodo cerrado',
+ 'Cannot post transaction!' => '¡No se puede registrar la transacción',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Cerrado',
+ 'Confirm!' => 'Confirmar',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Limite de credito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Date Paid' => 'Fecha de pago',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Description' => 'Descripción',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'Due Date missing!' => 'Falta la fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de cambio',
+ 'Exchange rate for payment missing!' => '¡Falta la tasa de cambio para el pago!',
+ 'Exchange rate missing!' => '¡Falta la tasa de cambio!',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Message' => 'Mensaje',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Number' => 'Número de orden',
+ 'Paid' => 'Pagado',
+ 'Payment date missing!' => 'No se encuentra la fecha de pago',
+ 'Payments' => 'Vencimientos impagados',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Print' => 'Imprimir',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => '¡No se encuentra el proyecto en la base de datos!',
+ 'Receipt' => 'Recibo',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Resto',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Ship to' => 'Destino',
+ 'Ship via' => 'Envio por',
+ 'Source' => 'Fuente',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Tax' => 'Impuesto',
+ 'Tax Included' => 'Impuestos incluidos en el precio',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Transaction deleted!' => '¡Transacción borrada!',
+ 'Transaction posted!' => '¡Transacción registrada!',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor missing!' => '¡Falta el proveedor!',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Yes' => 'Si',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'gestión_se_pago' => 'ap_transaction',
+ 'gestión_de_cobro' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'destino' => 'ship_to',
+ 'actualizar' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/es_utf/ar b/locale/es_utf/ar
new file mode 100755
index 00000000..cf9e3a86
--- /dev/null
+++ b/locale/es_utf/ar
@@ -0,0 +1,176 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Transaction' => 'Gestión se pago',
+ 'AP Transactions' => 'Gestiones de pagos',
+ 'AR Transaction' => 'Gestión de cobro',
+ 'AR Transactions' => 'Gestiones de cobros',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Cantidad adeudada',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => '¿Está seguro de que desea borrar la transacción?',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Cannot delete transaction!' => '¡No se puede borrar la transacción!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo ya cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar una transacción para un periodo cerrado',
+ 'Cannot post transaction!' => '¡No se puede registrar la transacción',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Cerrado',
+ 'Confirm!' => 'Confirmar',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Limite de credito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Date Paid' => 'Fecha de pago',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Description' => 'Descripción',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'Due Date missing!' => 'Falta la fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de cambio',
+ 'Exchange rate for payment missing!' => '¡Falta la tasa de cambio para el pago!',
+ 'Exchange rate missing!' => '¡Falta la tasa de cambio!',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Message' => 'Mensaje',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Number' => 'Número de orden',
+ 'Paid' => 'Pagado',
+ 'Payment date missing!' => 'No se encuentra la fecha de pago',
+ 'Payments' => 'Vencimientos impagados',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Print' => 'Imprimir',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => '¡No se encuentra el proyecto en la base de datos!',
+ 'Receipt' => 'Recibo',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Resto',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Ship to' => 'Destino',
+ 'Ship via' => 'Envio por',
+ 'Source' => 'Fuente',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Tax' => 'Impuesto',
+ 'Tax Included' => 'Impuestos incluidos en el precio',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Transaction deleted!' => '¡Transacción borrada!',
+ 'Transaction posted!' => '¡Transacción registrada!',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor missing!' => '¡Falta el proveedor!',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Yes' => 'Si',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'gestión_se_pago' => 'ap_transaction',
+ 'gestión_de_cobro' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'destino' => 'ship_to',
+ 'actualizar' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/es_utf/arap b/locale/es_utf/arap
new file mode 100755
index 00000000..e474d0d9
--- /dev/null
+++ b/locale/es_utf/arap
@@ -0,0 +1,48 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Address' => 'Dirección',
+ 'Continue' => 'Continuar',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Description' => 'Descripción',
+ 'E-mail' => 'Correo electrónico',
+ 'Message' => 'Mensaje',
+ 'Number' => 'Número',
+ 'Print' => 'Imprimir',
+ 'Project not on file!' => '¡No se encuentra el proyecto en la base de datos!',
+ 'Reference' => 'Referencia',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Subject' => 'Asunto',
+ 'To' => 'Hasta ',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/es_utf/arapprn b/locale/es_utf/arapprn
new file mode 100755
index 00000000..9cb00508
--- /dev/null
+++ b/locale/es_utf/arapprn
@@ -0,0 +1,28 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Amount' => 'Total',
+ 'Continue' => 'Continuar',
+ 'Date' => 'Fecha',
+ 'Screen' => 'Pantalla',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Source' => 'Fuente',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/es_utf/bp b/locale/es_utf/bp
new file mode 100755
index 00000000..f033cbb6
--- /dev/null
+++ b/locale/es_utf/bp
@@ -0,0 +1,47 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Confirm!' => 'Confirmar',
+ 'Continue' => 'Continuar',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Date' => 'Fecha',
+ 'Employee' => 'Colaborador/Empleado',
+ 'From' => 'Desde',
+ 'ID' => 'ID',
+ 'Invoice' => 'Factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Order' => 'Orden',
+ 'Order Number' => 'Número de orden',
+ 'Print' => 'Imprimir',
+ 'Purchase Orders' => 'Pedidos',
+ 'Sales Orders' => 'Presupuestos',
+ 'Select all' => 'Guardar todo',
+ 'To' => 'Hasta ',
+ 'Vendor' => 'Proveedor',
+ 'Yes' => 'Si',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'imprimir' => 'print',
+ 'guardar_todo' => 'select_all',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/es_utf/ca b/locale/es_utf/ca
new file mode 100755
index 00000000..8d7e78fe
--- /dev/null
+++ b/locale/es_utf/ca
@@ -0,0 +1,54 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Balance',
+ 'Chart of Accounts' => 'Cuadro de cuentas',
+ 'Credit' => 'Crédito',
+ 'Current' => 'Actual',
+ 'Date' => 'Fecha',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Description' => 'Descripción',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'GIFI' => 'Código GIFI',
+ 'Include in Report' => 'Incluir en informe',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'List Transactions' => 'Listar transacciones',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Reference' => 'Referencia',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'Hasta ',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'listar_transacciones' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/es_utf/cp b/locale/es_utf/cp
new file mode 100755
index 00000000..f3211b87
--- /dev/null
+++ b/locale/es_utf/cp
@@ -0,0 +1,111 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP' => 'Cartera de pagos',
+ 'AR' => 'Cartera de cobros',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Address' => 'Dirección',
+ 'All' => 'Todos',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Cantidad adeudada',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo ya cerrado!',
+ 'Continue' => 'Continuar',
+ 'Currency' => 'Moneda',
+ 'Customer' => 'Cliente',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Date missing!' => '¡Falta la fecha!',
+ 'Deposit' => 'Depósito',
+ 'Description' => 'Descripción',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'Exchange Rate' => 'Tasa de cambio',
+ 'Exchange rate missing!' => '¡Falta la tasa de cambio!',
+ 'From' => 'Desde',
+ 'Invoice' => 'Factura',
+ 'Invoices' => 'Facturas',
+ 'Language' => 'Lenguaje',
+ 'Message' => 'Mensaje',
+ 'Number' => 'Número',
+ 'Payment' => 'Pago',
+ 'Payment posted!' => '¡Pago registrado!',
+ 'Payments' => 'Vencimientos impagados',
+ 'Post' => 'Registrar',
+ 'Print' => 'Imprimir',
+ 'Project not on file!' => '¡No se encuentra el proyecto en la base de datos!',
+ 'Receipt' => 'Recibo',
+ 'Receipts' => 'Recibos',
+ 'Reference' => 'Referencia',
+ 'Screen' => 'Pantalla',
+ 'Select all' => 'Guardar todo',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Source' => 'Fuente',
+ 'Subject' => 'Asunto',
+ 'To' => 'Hasta ',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuar' => 'continue',
+ 'registrar' => 'post',
+ 'imprimir' => 'print',
+ 'guardar_todo' => 'select_all',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/es_utf/ct b/locale/es_utf/ct
new file mode 100755
index 00000000..2dba3311
--- /dev/null
+++ b/locale/es_utf/ct
@@ -0,0 +1,133 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Transaction' => 'Gestión se pago',
+ 'AP Transactions' => 'Gestiones de pagos',
+ 'AR Transaction' => 'Gestión de cobro',
+ 'AR Transactions' => 'Gestiones de cobros',
+ 'Accounting Menu' => 'Menú general',
+ 'Active' => 'Activo',
+ 'Add Customer' => 'Añadir cliente',
+ 'Add Vendor' => 'Añadir proveedor',
+ 'Address' => 'Dirección',
+ 'All' => 'Todos',
+ 'Amount' => 'Total',
+ 'Cannot delete customer!' => '¡No se puede borrar el cliente!',
+ 'Cannot delete vendor!' => '¡No se puede borrar el vendedor!',
+ 'Closed' => 'Cerrado',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Credit Limit' => 'Limite de credito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Customer deleted!' => '¡Cliente borrado!',
+ 'Customer saved!' => '¡Cliente guardado!',
+ 'Customers' => 'Clientes',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Description' => 'Descripción',
+ 'Discount' => 'Descuento',
+ 'E-mail' => 'Correo electrónico',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Fax' => 'Fax',
+ 'From' => 'Desde',
+ 'GIFI' => 'Código GIFI',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Invoice' => 'Factura',
+ 'Item not on file!' => 'El concepto no se encuentra en ningún archivo',
+ 'Language' => 'Lenguaje',
+ 'Name' => 'Nombre',
+ 'Name missing!' => '¡Falta el nombre!',
+ 'Notes' => 'Notas',
+ 'Number' => 'Número',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Orphaned' => 'Huérfano',
+ 'Phone' => 'Teléfono',
+ 'Purchase Order' => 'Pedido',
+ 'Purchase Orders' => 'Pedidos',
+ 'Qty' => 'Cantidad',
+ 'Sales Invoice' => 'Facturas de ventas',
+ 'Sales Order' => 'Presupuesto',
+ 'Sales Orders' => 'Presupuestos',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Sell Price' => 'Precio de venta',
+ 'Subtotal' => 'Subtotal',
+ 'Tax' => 'Impuesto',
+ 'Tax Included' => 'Impuestos incluidos en el precio',
+ 'Taxable' => 'Impuestos gravables',
+ 'Terms' => 'Crédito',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Vendor Invoice' => 'Factura de compras',
+ 'Vendor deleted!' => '¡Proveedor borrado!',
+ 'Vendor saved!' => '¡Proveedor guardado!',
+ 'Vendors' => 'Proveedores',
+ 'days' => 'días',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'gestión_se_pago' => 'ap_transaction',
+ 'gestión_de_cobro' => 'ar_transaction',
+ 'añadir_cliente' => 'add_customer',
+ 'añadir_proveedor' => 'add_vendor',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'pedido' => 'purchase_order',
+ 'facturas_de_ventas' => 'sales_invoice',
+ 'presupuesto' => 'sales_order',
+ 'guardar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+ 'factura_de_compras' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/es_utf/gl b/locale/es_utf/gl
new file mode 100755
index 00000000..89489e1c
--- /dev/null
+++ b/locale/es_utf/gl
@@ -0,0 +1,139 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Transaction' => 'Gestión se pago',
+ 'AR Transaction' => 'Gestión de cobro',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Add General Ledger Transaction' => 'Añadir transacción al libro mayor general',
+ 'Address' => 'Dirección',
+ 'All' => 'Todos',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => '¿Está seguro de que desea borrar la transacción?',
+ 'Asset' => 'Activo',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Balance',
+ 'Cannot delete transaction!' => '¡No se puede borrar la transacción!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar una transacción para un periodo cerrado',
+ 'Cannot post transaction!' => '¡No se puede registrar la transacción',
+ 'Confirm!' => 'Confirmar',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Current' => 'Actual',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Description' => 'Descripción',
+ 'E-mail' => 'Correo electrónico',
+ 'Edit General Ledger Transaction' => 'Editar transacción del libro mayor general',
+ 'Equity' => 'Balance',
+ 'Expense' => 'Gastos',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'GIFI' => 'Código GIFI',
+ 'GL Transaction' => 'Transacción en el libro mayor',
+ 'General Ledger' => 'Libro mayor general',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Liability' => 'Pasivo',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Message' => 'Mensaje',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Print' => 'Imprimir',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => '¡No se encuentra el proyecto en la base de datos!',
+ 'Reference' => 'Referencia',
+ 'Reports' => 'Informes',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Source' => 'Fuente',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'Hasta ',
+ 'Transaction Date missing!' => 'No se ha definido la fecha de la transacción',
+ 'Transaction deleted!' => '¡Transacción borrada!',
+ 'Transaction posted!' => '¡Transacción registrada!',
+ 'Update' => 'Actualizar',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Yes' => 'Si',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'gestión_se_pago' => 'ap_transaction',
+ 'gestión_de_cobro' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'transacción_en_el_libro_mayor' => 'gl_transaction',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'actualizar' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/es_utf/hr b/locale/es_utf/hr
new file mode 100755
index 00000000..4de38688
--- /dev/null
+++ b/locale/es_utf/hr
@@ -0,0 +1,74 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP' => 'Cartera de pagos',
+ 'Accounting Menu' => 'Menú general',
+ 'Active' => 'Activo',
+ 'Address' => 'Dirección',
+ 'Administrator' => 'Administrador',
+ 'All' => 'Todos',
+ 'Amount' => 'Total',
+ 'Continue' => 'Continuar',
+ 'Delete' => 'Borrar',
+ 'Description' => 'Descripción',
+ 'E-mail' => 'Correo electrónico',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Expense' => 'Gastos',
+ 'From' => 'Desde',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Login' => 'Entrar',
+ 'Name' => 'Nombre',
+ 'Name missing!' => '¡Falta el nombre!',
+ 'Notes' => 'Notas',
+ 'Number' => 'Número',
+ 'Orphaned' => 'Huérfano',
+ 'Rate' => 'Tarifa',
+ 'Sales' => 'Ventas',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'To' => 'Hasta ',
+ 'Update' => 'Actualizar',
+ 'User' => 'Usuario',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'guardar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/es_utf/ic b/locale/es_utf/ic
new file mode 100755
index 00000000..cd6eb90d
--- /dev/null
+++ b/locale/es_utf/ic
@@ -0,0 +1,218 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Menú general',
+ 'Accounts' => 'Cuentas',
+ 'Active' => 'Activo',
+ 'Add' => 'Añadir',
+ 'Add Assembly' => 'Añadir compuesto',
+ 'Add Part' => 'Añadir artículo',
+ 'Add Purchase Order' => 'Añadir pedido',
+ 'Add Sales Order' => 'Añadir presupuesto',
+ 'Add Service' => 'Añadir servicio',
+ 'Address' => 'Dirección',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Assemblies' => 'Compuestos',
+ 'Assemblies restocked!' => '¡Compuestos actualizados en almacen!',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'BOM' => 'Listado de piezas',
+ 'Bin' => 'Bin',
+ 'COGS' => 'Costo de los artículos',
+ 'Cannot delete item!' => '¡No se puede borrar el artículo!',
+ 'Cannot stock assemblies!' => '¡No se pueden almacenar los compuestos!',
+ 'Cash' => 'Efectivo',
+ 'Closed' => 'Cerrado',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Customer' => 'Cliente',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Description' => 'Descripción',
+ 'Drawing' => 'Reintegro',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'Edit Assembly' => 'Editar compuesto',
+ 'Edit Part' => 'Editar compuesto',
+ 'Edit Service' => 'Editar servicio',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Expense' => 'Gastos',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'Image' => 'Imagen',
+ 'In-line' => 'Incrustado',
+ 'Include in Report' => 'Incluir en informe',
+ 'Individual Items' => 'Artículos individuales',
+ 'Inventory' => 'Inventario',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'La cantidad en inventario debe ser cero antes de cambiar este compuesto a obsoleto',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'La cantidad en inventario debe ser cero antes de cambiar este artículo a obsoleto',
+ 'Invoice' => 'Factura',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Invoice Number missing!' => 'No se ha definido el número de la factura',
+ 'Item deleted!' => '¡Concepto borrado!',
+ 'Item not on file!' => 'El concepto no se encuentra en ningún archivo',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Line Total' => 'Total de la línea',
+ 'Link Accounts' => 'Enlazar cuentas',
+ 'List Price' => 'Precio de lista',
+ 'Make' => 'Marca',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Message' => 'Mensaje',
+ 'Microfiche' => 'Microficha',
+ 'Model' => 'Modelo',
+ 'Name' => 'Nombre',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se ha definido el número en la fila',
+ 'Obsolete' => 'Obsoleto',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'On Hand' => 'Disponible',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Date missing!' => 'No se ha definido la fecha de la elaboración',
+ 'Order Number' => 'Número de orden',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'Orphaned' => 'Huérfano',
+ 'Packing List' => 'Albarán',
+ 'Packing List Date missing!' => 'No se ha definido la fecha del albarán',
+ 'Packing List Number missing!' => 'No se ha definido el número del albarán',
+ 'Part' => 'Artículo',
+ 'Parts' => 'Artículos',
+ 'Phone' => 'Teléfono',
+ 'Price' => 'Precio',
+ 'Project' => 'Proyecto',
+ 'Purchase Order' => 'Pedido',
+ 'Purchase Orders' => 'Pedidos',
+ 'Qty' => 'Cantidad',
+ 'ROP' => 'Tope de envio',
+ 'Recd' => 'Cobrado',
+ 'Required by' => 'Aceptado el',
+ 'Sales Invoice' => 'Facturas de ventas',
+ 'Sales Order' => 'Presupuesto',
+ 'Sales Orders' => 'Presupuestos',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Sell Price' => 'Precio de venta',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Service' => 'Servicio',
+ 'Services' => 'Servicios',
+ 'Ship' => 'Envio',
+ 'Ship to' => 'Destino',
+ 'Short' => 'Corto',
+ 'Stock Assembly' => 'Inventariar compuesto',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Tax' => 'Impuesto',
+ 'To' => 'Hasta ',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Updated' => '¡Actualizado!',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice' => 'Factura de compras',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Weight' => 'Peso',
+ 'What type of item is this?' => '¿De qué tipo es este concepto?',
+ 'days' => 'días',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'añadir_compuesto' => 'add_assembly',
+ 'añadir_artículo' => 'add_part',
+ 'añadir_servicio' => 'add_service',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'editar_compuesto' => 'edit_assembly',
+ 'editar_compuesto' => 'edit_part',
+ 'editar_servicio' => 'edit_service',
+ 'guardar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/es_utf/io b/locale/es_utf/io
new file mode 100755
index 00000000..d06a4ce7
--- /dev/null
+++ b/locale/es_utf/io
@@ -0,0 +1,103 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Add Purchase Order' => 'Añadir pedido',
+ 'Add Sales Order' => 'Añadir presupuesto',
+ 'Address' => 'Dirección',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bin' => 'Bin',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Date' => 'Fecha',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Description' => 'Descripción',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'In-line' => 'Incrustado',
+ 'Invoice' => 'Factura',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number missing!' => 'No se ha definido el número de la factura',
+ 'Item not on file!' => 'El concepto no se encuentra en ningún archivo',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Message' => 'Mensaje',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se ha definido el número en la fila',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Order Date missing!' => 'No se ha definido la fecha de la elaboración',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'Packing List' => 'Albarán',
+ 'Packing List Date missing!' => 'No se ha definido la fecha del albarán',
+ 'Packing List Number missing!' => 'No se ha definido el número del albarán',
+ 'Part' => 'Artículo',
+ 'Phone' => 'Teléfono',
+ 'Price' => 'Precio',
+ 'Project' => 'Proyecto',
+ 'Purchase Order' => 'Pedido',
+ 'Qty' => 'Cantidad',
+ 'Recd' => 'Cobrado',
+ 'Required by' => 'Aceptado el',
+ 'Sales Order' => 'Presupuesto',
+ 'Screen' => 'Pantalla',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Envio',
+ 'Ship to' => 'Destino',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'Hasta ',
+ 'Unit' => 'Unidad',
+ 'What type of item is this?' => '¿De qué tipo es este concepto?',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/es_utf/ir b/locale/es_utf/ir
new file mode 100755
index 00000000..d4bcfdd3
--- /dev/null
+++ b/locale/es_utf/ir
@@ -0,0 +1,191 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Add Purchase Order' => 'Añadir pedido',
+ 'Add Sales Order' => 'Añadir presupuesto',
+ 'Add Vendor Invoice' => 'Añadir factura de compra',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => '¿Esta seguro de que desea borrar la factura número',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bin' => 'Bin',
+ 'Cannot delete invoice!' => '¡No se puede borrar la factura!',
+ 'Cannot post invoice for a closed period!' => '¡No se puede registrar una factura en un periodo ya cerrado!',
+ 'Cannot post invoice!' => '¡No se puede registrar la factura!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo ya cerrado!',
+ 'Confirm!' => 'Confirmar',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Credit Limit' => 'Limite de credito',
+ 'Currency' => 'Moneda',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Description' => 'Descripción',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'Edit Vendor Invoice' => 'Editar factura de compra',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de cambio',
+ 'Exchange rate for payment missing!' => '¡Falta la tasa de cambio para el pago!',
+ 'Exchange rate missing!' => '¡Falta la tasa de cambio!',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'In-line' => 'Incrustado',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Invoice Number missing!' => 'No se ha definido el número de la factura',
+ 'Invoice deleted!' => '¡Factura borrada!',
+ 'Item not on file!' => 'El concepto no se encuentra en ningún archivo',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Language' => 'Lenguaje',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Message' => 'Mensaje',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se ha definido el número en la fila',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Order Date missing!' => 'No se ha definido la fecha de la elaboración',
+ 'Order Number' => 'Número de orden',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'Packing List' => 'Albarán',
+ 'Packing List Date missing!' => 'No se ha definido la fecha del albarán',
+ 'Packing List Number missing!' => 'No se ha definido el número del albarán',
+ 'Part' => 'Artículo',
+ 'Payment date missing!' => 'No se encuentra la fecha de pago',
+ 'Payments' => 'Vencimientos impagados',
+ 'Phone' => 'Teléfono',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => '¡No se encuentra el proyecto en la base de datos!',
+ 'Purchase Order' => 'Pedido',
+ 'Qty' => 'Cantidad',
+ 'Recd' => 'Cobrado',
+ 'Record in' => 'Registrar en',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Resto',
+ 'Required by' => 'Aceptado el',
+ 'Sales Order' => 'Presupuesto',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Envio',
+ 'Ship to' => 'Destino',
+ 'Source' => 'Fuente',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Tax Included' => 'Impuestos incluidos en el precio',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor missing!' => '¡Falta el proveedor!',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'What type of item is this?' => '¿De qué tipo es este concepto?',
+ 'Yes' => 'Si',
+ 'ea' => 'unid.',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'pedido' => 'purchase_order',
+ 'actualizar' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/es_utf/is b/locale/es_utf/is
new file mode 100755
index 00000000..025c6e39
--- /dev/null
+++ b/locale/es_utf/is
@@ -0,0 +1,196 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Add Purchase Order' => 'Añadir pedido',
+ 'Add Sales Invoice' => 'Añadir factura',
+ 'Add Sales Order' => 'Añadir presupuesto',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => '¿Esta seguro de que desea borrar la factura número',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bin' => 'Bin',
+ 'Cannot delete invoice!' => '¡No se puede borrar la factura!',
+ 'Cannot post invoice for a closed period!' => '¡No se puede registrar una factura en un periodo ya cerrado!',
+ 'Cannot post invoice!' => '¡No se puede registrar la factura!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo ya cerrado!',
+ 'Confirm!' => 'Confirmar',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Credit Limit' => 'Limite de credito',
+ 'Currency' => 'Moneda',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Description' => 'Descripción',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'Edit Sales Invoice' => 'Edirar factura de venta',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de cambio',
+ 'Exchange rate for payment missing!' => '¡Falta la tasa de cambio para el pago!',
+ 'Exchange rate missing!' => '¡Falta la tasa de cambio!',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'In-line' => 'Incrustado',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Invoice Number missing!' => 'No se ha definido el número de la factura',
+ 'Invoice deleted!' => '¡Factura borrada!',
+ 'Item not on file!' => 'El concepto no se encuentra en ningún archivo',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Message' => 'Mensaje',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se ha definido el número en la fila',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Order Date missing!' => 'No se ha definido la fecha de la elaboración',
+ 'Order Number' => 'Número de orden',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'Packing List' => 'Albarán',
+ 'Packing List Date missing!' => 'No se ha definido la fecha del albarán',
+ 'Packing List Number missing!' => 'No se ha definido el número del albarán',
+ 'Part' => 'Artículo',
+ 'Payment date missing!' => 'No se encuentra la fecha de pago',
+ 'Payments' => 'Vencimientos impagados',
+ 'Phone' => 'Teléfono',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => '¡No se encuentra el proyecto en la base de datos!',
+ 'Purchase Order' => 'Pedido',
+ 'Qty' => 'Cantidad',
+ 'Recd' => 'Cobrado',
+ 'Record in' => 'Registrar en',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Resto',
+ 'Required by' => 'Aceptado el',
+ 'Sales Order' => 'Presupuesto',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Envio',
+ 'Ship to' => 'Destino',
+ 'Ship via' => 'Envio por',
+ 'Source' => 'Fuente',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Tax Included' => 'Impuestos incluidos en el precio',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'What type of item is this?' => '¿De qué tipo es este concepto?',
+ 'Yes' => 'Si',
+ 'ea' => 'unid.',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'correo_electrónico' => 'e_mail',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'presupuesto' => 'sales_order',
+ 'destino' => 'ship_to',
+ 'actualizar' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/es_utf/jc b/locale/es_utf/jc
new file mode 100755
index 00000000..c2f035ae
--- /dev/null
+++ b/locale/es_utf/jc
@@ -0,0 +1,81 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Menú general',
+ 'Amount' => 'Total',
+ 'Closed' => 'Cerrado',
+ 'Confirm!' => 'Confirmar',
+ 'Continue' => 'Continuar',
+ 'Current' => 'Actual',
+ 'Date' => 'Fecha',
+ 'Date missing!' => '¡Falta la fecha!',
+ 'Delete' => 'Borrar',
+ 'Description' => 'Descripción',
+ 'Employee' => 'Colaborador/Empleado',
+ 'From' => 'Desde',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Notes' => 'Notas',
+ 'Open' => 'Abierto',
+ 'Print' => 'Imprimir',
+ 'Project Number missing!' => '¡Falta el número de proyecto!',
+ 'Qty' => 'Cantidad',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Screen' => 'Pantalla',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Update' => 'Actualizar',
+ 'Yes' => 'Si',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'imprimir' => 'print',
+ 'guardar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/es_utf/locales.pl b/locale/es_utf/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/es_utf/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/es_utf/login b/locale/es_utf/login
new file mode 100755
index 00000000..d1337317
--- /dev/null
+++ b/locale/es_utf/login
@@ -0,0 +1,22 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Company' => 'Compañía',
+ 'Continue' => 'Continuar',
+ 'Login' => 'Entrar',
+ 'Name' => 'Nombre',
+ 'Password' => 'Contraseña',
+ 'Version' => 'Versión',
+ 'You did not enter a name!' => 'No ha introducido el nombre',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ 'entrar' => 'login',
+};
+
+1;
+
diff --git a/locale/es_utf/menu b/locale/es_utf/menu
new file mode 100755
index 00000000..e52ecaa4
--- /dev/null
+++ b/locale/es_utf/menu
@@ -0,0 +1,83 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP' => 'Cartera de pagos',
+ 'AP Aging' => 'Diario resumido de pagos',
+ 'AP Transaction' => 'Gestión se pago',
+ 'AR' => 'Cartera de cobros',
+ 'AR Aging' => 'Diario resumido de cobros ',
+ 'AR Transaction' => 'Gestión de cobro',
+ 'Accounting Menu' => 'Menú general',
+ 'Add Account' => 'Añadir cuenta',
+ 'Add Assembly' => 'Añadir compuesto',
+ 'Add Customer' => 'Añadir cliente',
+ 'Add GIFI' => 'Añadir código GIFI',
+ 'Add Part' => 'Añadir artículo',
+ 'Add Project' => 'Añadir proyecto',
+ 'Add Service' => 'Añadir servicio',
+ 'Add Transaction' => 'Añadir',
+ 'Add Vendor' => 'Añadir proveedor',
+ 'Assemblies' => 'Compuestos',
+ 'Audit Control' => 'Control de auditoría',
+ 'Backup' => 'Copia de seguridad de los datos',
+ 'Balance Sheet' => 'Hoja de balance',
+ 'Cash' => 'Efectivo',
+ 'Chart of Accounts' => 'Cuadro de cuentas',
+ 'Check' => 'Cheque',
+ 'Customers' => 'Clientes',
+ 'Description' => 'Descripción',
+ 'General Ledger' => 'Libro mayor general',
+ 'Goods & Services' => 'Bienes y servicios',
+ 'HTML Templates' => 'Plantillas HTML',
+ 'Income Statement' => 'Balance de situación',
+ 'Invoice' => 'Factura',
+ 'LaTeX Templates' => 'Plantillas LaTeX',
+ 'Language' => 'Lenguaje',
+ 'List Accounts' => 'Listar cuentas',
+ 'List GIFI' => 'Listar código GIFI',
+ 'Logout' => 'Salir',
+ 'Open' => 'Abierto',
+ 'Order Entry' => 'Presupuestos y pedidos',
+ 'Packing List' => 'Albarán',
+ 'Parts' => 'Artículos',
+ 'Payment' => 'Pago',
+ 'Payments' => 'Vencimientos impagados',
+ 'Preferences' => 'Preferencias',
+ 'Print' => 'Imprimir',
+ 'Projects' => 'Proyectos',
+ 'Purchase Order' => 'Pedido',
+ 'Purchase Orders' => 'Pedidos',
+ 'Receipt' => 'Recibo',
+ 'Receipts' => 'Recibos',
+ 'Reconciliation' => 'Reconciliación',
+ 'Reports' => 'Informes',
+ 'Sales Invoice' => 'Facturas de ventas',
+ 'Sales Order' => 'Presupuesto',
+ 'Sales Orders' => 'Presupuestos',
+ 'Save to File' => 'Guardar en un archivo',
+ 'Send by E-Mail' => 'Enviar por correo electrónico',
+ 'Services' => 'Servicios',
+ 'Ship' => 'Envio',
+ 'Statement' => 'Estado de cuenta',
+ 'Stock Assembly' => 'Inventariar compuesto',
+ 'Stylesheet' => 'Hoja de estilo',
+ 'System' => 'Sistema',
+ 'Tax collected' => 'Impuestos cobrados',
+ 'Tax paid' => 'Impuestos pagados',
+ 'Transactions' => 'Impagados',
+ 'Trial Balance' => 'Balance de comprobación',
+ 'Vendor Invoice' => 'Factura de compras',
+ 'Vendors' => 'Proveedores',
+ 'Version' => 'Versión',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/es_utf/oe b/locale/es_utf/oe
new file mode 100755
index 00000000..162ce1f9
--- /dev/null
+++ b/locale/es_utf/oe
@@ -0,0 +1,237 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Menú general',
+ 'Add Purchase Order' => 'Añadir pedido',
+ 'Add Sales Invoice' => 'Añadir factura',
+ 'Add Sales Order' => 'Añadir presupuesto',
+ 'Add Vendor Invoice' => 'Añadir factura de compra',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Order Number' => '¿Esta seguro de que desea
+borrar la orden número?',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bin' => 'Bin',
+ 'Cannot delete order!' => '¡No se puede borrar el pedido!',
+ 'Cannot save order!' => '¡No se puede guardar el pedido!',
+ 'Closed' => 'Cerrado',
+ 'Confirm!' => 'Confirmar',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Credit Limit' => 'Limite de credito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Description' => 'Descripción',
+ 'Done' => 'Hecho',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'Edit Purchase Order' => 'Editar pedido',
+ 'Edit Sales Order' => 'Editar presupuesto',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Exchange Rate' => 'Tasa de cambio',
+ 'Exchange rate missing!' => '¡Falta la tasa de cambio!',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'ID' => 'ID',
+ 'In-line' => 'Incrustado',
+ 'Include in Report' => 'Incluir en informe',
+ 'Invoice' => 'Factura',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number missing!' => 'No se ha definido el número de la factura',
+ 'Item not on file!' => 'El concepto no se encuentra en ningún archivo',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Message' => 'Mensaje',
+ 'Notes' => 'Notas',
+ 'Nothing selected!' => '¡No es seleccionado nada!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se ha definido el número en la fila',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Date' => 'Fecha de elaboración',
+ 'Order Date missing!' => 'No se ha definido la fecha de la elaboración',
+ 'Order Number' => 'Número de orden',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'Order deleted!' => '¡Orden borrada!',
+ 'Packing List' => 'Albarán',
+ 'Packing List Date missing!' => 'No se ha definido la fecha del albarán',
+ 'Packing List Number missing!' => 'No se ha definido el número del albarán',
+ 'Part' => 'Artículo',
+ 'Phone' => 'Teléfono',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => '¡No se encuentra el proyecto en la base de datos!',
+ 'Purchase Order' => 'Pedido',
+ 'Purchase Orders' => 'Pedidos',
+ 'Qty' => 'Cantidad',
+ 'Recd' => 'Cobrado',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Resto',
+ 'Required by' => 'Aceptado el',
+ 'Sales Invoice' => 'Facturas de ventas',
+ 'Sales Order' => 'Presupuesto',
+ 'Sales Orders' => 'Presupuestos',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Envio',
+ 'Ship to' => 'Destino',
+ 'Ship via' => 'Envio por',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Tax' => 'Impuesto',
+ 'Tax Included' => 'Impuestos incluidos en el precio',
+ 'Terms' => 'Crédito',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice' => 'Factura de compras',
+ 'Vendor missing!' => '¡Falta el proveedor!',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'What type of item is this?' => '¿De qué tipo es este concepto?',
+ 'Yes' => 'Si',
+ 'days' => 'días',
+ 'ea' => 'unid.',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'hecho' => 'done',
+ 'correo_electrónico' => 'e_mail',
+ 'imprimir' => 'print',
+ 'pedido' => 'purchase_order',
+ 'facturas_de_ventas' => 'sales_invoice',
+ 'presupuesto' => 'sales_order',
+ 'guardar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'destino' => 'ship_to',
+ 'actualizar' => 'update',
+ 'factura_de_compras' => 'vendor_invoice',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/es_utf/pe b/locale/es_utf/pe
new file mode 100755
index 00000000..7308648a
--- /dev/null
+++ b/locale/es_utf/pe
@@ -0,0 +1,108 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Menú general',
+ 'Active' => 'Activo',
+ 'Add' => 'Añadir',
+ 'Add Project' => 'Añadir proyecto',
+ 'Address' => 'Dirección',
+ 'All' => 'Todos',
+ 'Amount' => 'Total',
+ 'Bin' => 'Bin',
+ 'Continue' => 'Continuar',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Delete' => 'Borrar',
+ 'Description' => 'Descripción',
+ 'Edit Project' => 'Editar proyecto',
+ 'Employee' => 'Colaborador/Empleado',
+ 'From' => 'Desde',
+ 'Language' => 'Lenguaje',
+ 'Link Accounts' => 'Enlazar cuentas',
+ 'List Price' => 'Precio de lista',
+ 'Notes' => 'Notas',
+ 'Nothing selected!' => '¡No es seleccionado nada!',
+ 'Number' => 'Número',
+ 'Orphaned' => 'Huérfano',
+ 'Project' => 'Proyecto',
+ 'Project deleted!' => '¡Proyecto borrado!',
+ 'Project saved!' => '¡Proyecto guardado ',
+ 'Projects' => 'Proyectos',
+ 'Qty' => 'Cantidad',
+ 'Save' => 'Guardar',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Sell Price' => 'Precio de venta',
+ 'Tax' => 'Impuesto',
+ 'To' => 'Hasta ',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Updated' => '¡Actualizado!',
+ 'Vendor' => 'Proveedor',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'Weight' => 'Peso',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'añadir_proyecto' => 'add_project',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'guardar' => 'save',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/es_utf/pos b/locale/es_utf/pos
new file mode 100755
index 00000000..507c5881
--- /dev/null
+++ b/locale/es_utf/pos
@@ -0,0 +1,66 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Menú general',
+ 'Amount' => 'Total',
+ 'Cannot post transaction!' => '¡No se puede registrar la transacción',
+ 'Continue' => 'Continuar',
+ 'Credit Limit' => 'Limite de credito',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Delete' => 'Borrar',
+ 'Description' => 'Descripción',
+ 'Exchange Rate' => 'Tasa de cambio',
+ 'Exchange rate missing!' => '¡Falta la tasa de cambio!',
+ 'Extended' => 'Extendido',
+ 'From' => 'Desde',
+ 'Language' => 'Lenguaje',
+ 'Number' => 'Número',
+ 'Open' => 'Abierto',
+ 'Post' => 'Registrar',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Qty' => 'Cantidad',
+ 'Receipts' => 'Recibos',
+ 'Record in' => 'Registrar en',
+ 'Remaining' => 'Resto',
+ 'Screen' => 'Pantalla',
+ 'Source' => 'Fuente',
+ 'Subtotal' => 'Subtotal',
+ 'Tax Included' => 'Impuestos incluidos en el precio',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'registrar' => 'post',
+ 'imprimir' => 'print',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/es_utf/ps b/locale/es_utf/ps
new file mode 100755
index 00000000..798be394
--- /dev/null
+++ b/locale/es_utf/ps
@@ -0,0 +1,284 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Aging' => 'Diario resumido de pagos',
+ 'AP Transaction' => 'Gestión se pago',
+ 'AP Transactions' => 'Gestiones de pagos',
+ 'AR Aging' => 'Diario resumido de cobros ',
+ 'AR Transaction' => 'Gestión de cobro',
+ 'AR Transactions' => 'Gestiones de cobros',
+ 'Account' => 'Cuenta',
+ 'Account Number' => 'Número de cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Accounts' => 'Cuentas',
+ 'Add Purchase Order' => 'Añadir pedido',
+ 'Add Sales Invoice' => 'Añadir factura',
+ 'Add Sales Order' => 'Añadir presupuesto',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Cantidad adeudada',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => '¿Esta seguro de que desea borrar la factura número',
+ 'Are you sure you want to delete Transaction' => '¿Está seguro de que desea borrar la transacción?',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Balance',
+ 'Balance Sheet' => 'Hoja de balance',
+ 'Bin' => 'Bin',
+ 'Cannot delete invoice!' => '¡No se puede borrar la factura!',
+ 'Cannot delete transaction!' => '¡No se puede borrar la transacción!',
+ 'Cannot post invoice for a closed period!' => '¡No se puede registrar una factura en un periodo ya cerrado!',
+ 'Cannot post invoice!' => '¡No se puede registrar la factura!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo ya cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar una transacción para un periodo cerrado',
+ 'Cannot post transaction!' => '¡No se puede registrar la transacción',
+ 'Cash' => 'Efectivo',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Cerrado',
+ 'Compare to' => 'Comparar con',
+ 'Confirm!' => 'Confirmar',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Limite de credito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Date Paid' => 'Fecha de pago',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Decimalplaces' => 'Lugar de los decimales',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Description' => 'Descripción',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'Due Date missing!' => 'Falta la fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail Statement to' => 'Enviar comprobante por correo electrónico a',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'Edit Sales Invoice' => 'Edirar factura de venta',
+ 'Employee' => 'Colaborador/Empleado',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de cambio',
+ 'Exchange rate for payment missing!' => '¡Falta la tasa de cambio para el pago!',
+ 'Exchange rate missing!' => '¡Falta la tasa de cambio!',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'GIFI' => 'Código GIFI',
+ 'Heading' => 'Encabezado',
+ 'ID' => 'ID',
+ 'In-line' => 'Incrustado',
+ 'Include in Report' => 'Incluir en informe',
+ 'Income Statement' => 'Balance de situación',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => 'No se ha definido la fecha de la factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Invoice Number missing!' => 'No se ha definido el número de la factura',
+ 'Invoice deleted!' => '¡Factura borrada!',
+ 'Item not on file!' => 'El concepto no se encuentra en ningún archivo',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Language' => 'Lenguaje',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Message' => 'Mensaje',
+ 'N/A' => 'Sin respuesta',
+ 'Notes' => 'Notas',
+ 'Nothing selected!' => '¡No es seleccionado nada!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se ha definido el número en la fila',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Date missing!' => 'No se ha definido la fecha de la elaboración',
+ 'Order Number' => 'Número de orden',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'Packing List' => 'Albarán',
+ 'Packing List Date missing!' => 'No se ha definido la fecha del albarán',
+ 'Packing List Number missing!' => 'No se ha definido el número del albarán',
+ 'Paid' => 'Pagado',
+ 'Part' => 'Artículo',
+ 'Payment date missing!' => 'No se encuentra la fecha de pago',
+ 'Payments' => 'Vencimientos impagados',
+ 'Phone' => 'Teléfono',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => '¡No se encuentra el proyecto en la base de datos!',
+ 'Purchase Order' => 'Pedido',
+ 'Qty' => 'Cantidad',
+ 'Recd' => 'Cobrado',
+ 'Receipt' => 'Recibo',
+ 'Receipts' => 'Recibos',
+ 'Record in' => 'Registrar en',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Resto',
+ 'Report for' => 'Informe para',
+ 'Required by' => 'Aceptado el',
+ 'Sales Order' => 'Presupuesto',
+ 'Screen' => 'Pantalla',
+ 'Select all' => 'Guardar todo',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Envio',
+ 'Ship to' => 'Destino',
+ 'Ship via' => 'Envio por',
+ 'Source' => 'Fuente',
+ 'Standard' => 'Estándard',
+ 'Statement' => 'Estado de cuenta',
+ 'Statement sent to' => 'Estado de cuenta enviado a',
+ 'Statements sent to printer!' => '¡Estado de cuenta enviado a la impresora!',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Tax' => 'Impuesto',
+ 'Tax Included' => 'Impuestos incluidos en el precio',
+ 'Tax collected' => 'Impuestos cobrados',
+ 'Tax paid' => 'Impuestos pagados',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Transaction deleted!' => '¡Transacción borrada!',
+ 'Transaction posted!' => '¡Transacción registrada!',
+ 'Trial Balance' => 'Balance de comprobación',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor missing!' => '¡Falta el proveedor!',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'What type of item is this?' => '¿De qué tipo es este concepto?',
+ 'Yes' => 'Si',
+ 'as at' => 'al',
+ 'ea' => 'unid.',
+ 'for Period' => 'para el periodo',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'gestión_se_pago' => 'ap_transaction',
+ 'gestión_de_cobro' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'correo_electrónico' => 'e_mail',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'presupuesto' => 'sales_order',
+ 'guardar_todo' => 'select_all',
+ 'destino' => 'ship_to',
+ 'actualizar' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/es_utf/pw b/locale/es_utf/pw
new file mode 100755
index 00000000..09521e1d
--- /dev/null
+++ b/locale/es_utf/pw
@@ -0,0 +1,14 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Continue' => 'Continuar',
+ 'Password' => 'Contraseña',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/es_utf/rc b/locale/es_utf/rc
new file mode 100755
index 00000000..1d44fbaa
--- /dev/null
+++ b/locale/es_utf/rc
@@ -0,0 +1,69 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Balance',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Current' => 'Actual',
+ 'Date' => 'Fecha',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Description' => 'Descripción',
+ 'Difference' => 'Diferencia',
+ 'Done' => 'Hecho',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Out of balance!' => '¡Fuera de balance!',
+ 'Reconciliation' => 'Reconciliación',
+ 'Select all' => 'Guardar todo',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Source' => 'Fuente',
+ 'Statement Balance' => 'Balance de cuenta',
+ 'To' => 'Hasta ',
+ 'Update' => 'Actualizar',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'continuar' => 'continue',
+ 'hecho' => 'done',
+ 'guardar_todo' => 'select_all',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/es_utf/rp b/locale/es_utf/rp
new file mode 100755
index 00000000..38b249b0
--- /dev/null
+++ b/locale/es_utf/rp
@@ -0,0 +1,155 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Aging' => 'Diario resumido de pagos',
+ 'AR Aging' => 'Diario resumido de cobros ',
+ 'Account' => 'Cuenta',
+ 'Account Number' => 'Número de cuenta',
+ 'Accounting Menu' => 'Menú general',
+ 'Accounts' => 'Cuentas',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Balance',
+ 'Balance Sheet' => 'Hoja de balance',
+ 'Cash' => 'Efectivo',
+ 'Compare to' => 'Comparar con',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Credit' => 'Crédito',
+ 'Curr' => 'Mon.',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Decimalplaces' => 'Lugar de los decimales',
+ 'Description' => 'Descripción',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail Statement to' => 'Enviar comprobante por correo electrónico a',
+ 'E-mail address missing!' => 'No se ha definido el correo electrónico',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'GIFI' => 'Código GIFI',
+ 'Heading' => 'Encabezado',
+ 'ID' => 'ID',
+ 'In-line' => 'Incrustado',
+ 'Include in Report' => 'Incluir en informe',
+ 'Income Statement' => 'Balance de situación',
+ 'Invoice' => 'Factura',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Language' => 'Lenguaje',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Message' => 'Mensaje',
+ 'N/A' => 'Sin respuesta',
+ 'Nothing selected!' => '¡No es seleccionado nada!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Order' => 'Orden',
+ 'Payments' => 'Vencimientos impagados',
+ 'Print' => 'Imprimir',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => '¡No se encuentra el proyecto en la base de datos!',
+ 'Receipts' => 'Recibos',
+ 'Reference' => 'Referencia',
+ 'Report for' => 'Informe para',
+ 'Screen' => 'Pantalla',
+ 'Select all' => 'Guardar todo',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Source' => 'Fuente',
+ 'Standard' => 'Estándard',
+ 'Statement' => 'Estado de cuenta',
+ 'Statement sent to' => 'Estado de cuenta enviado a',
+ 'Statements sent to printer!' => '¡Estado de cuenta enviado a la impresora!',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Tax' => 'Impuesto',
+ 'Tax collected' => 'Impuestos cobrados',
+ 'Tax paid' => 'Impuestos pagados',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Trial Balance' => 'Balance de comprobación',
+ 'Vendor' => 'Proveedor',
+ 'Vendor not on file!' => '¡No se encuentra el proveedor en la base de datos!',
+ 'as at' => 'al',
+ 'for Period' => 'para el periodo',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuar' => 'continue',
+ 'correo_electrónico' => 'e_mail',
+ 'imprimir' => 'print',
+ 'guardar_todo' => 'select_all',
+};
+
+1;
+
diff --git a/locale/fi/COPYING b/locale/fi/COPYING
new file mode 100755
index 00000000..fe5ae3ce
--- /dev/null
+++ b/locale/fi/COPYING
@@ -0,0 +1,24 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2002
+#
+# Finish texts:
+#
+# Author: Petri Leppänen <mpj@mail.htk.fi>
+# Jukka Aho <jukka.aho@kapsi.fi>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/fi/LANGUAGE b/locale/fi/LANGUAGE
new file mode 100755
index 00000000..34350141
--- /dev/null
+++ b/locale/fi/LANGUAGE
@@ -0,0 +1 @@
+Finnish
diff --git a/locale/fi/aa b/locale/fi/aa
new file mode 100755
index 00000000..efc19707
--- /dev/null
+++ b/locale/fi/aa
@@ -0,0 +1,151 @@
+$self{texts} = {
+ 'AP Transaction' => 'Ostotapahtuma',
+ 'AP Transactions' => 'Ostotapahtumat',
+ 'AR Transaction' => 'Myyntitapahtuma',
+ 'AR Transactions' => 'Myyntitapahtumat',
+ 'Account' => 'Tili',
+ 'Accounting Menu' => 'Kirjanpitovalikko',
+ 'Add AP Transaction' => 'Lisää ostotapahtuma',
+ 'Add AR Transaction' => 'Lisää myyntitapahtuma',
+ 'Amount' => 'Summa',
+ 'Amount Due' => 'Erääntyvä summa',
+ 'Apr' => 'Huh',
+ 'April' => 'Huhtikuu',
+ 'Are you sure you want to delete Transaction' => 'Haluatko poistaa viennin',
+ 'Aug' => 'Elo',
+ 'August' => 'Elokuu',
+ 'Cannot delete transaction!' => 'Vientiä ei voi poistaa!',
+ 'Cannot post payment for a closed period!' => 'Maksun kirjaus suljetulle ajanjaksolle kielletty!',
+ 'Cannot post transaction for a closed period!' => 'Viennin kirjaus suljetulle ajanjaksolle kielletty!',
+ 'Cannot post transaction!' => 'Vientiä ei voi kirjata',
+ 'Check' => 'Sekki',
+ 'Closed' => 'Suljettu',
+ 'Confirm!' => 'Vahvista!',
+ 'Continue' => 'Jatka',
+ 'Credit' => 'Kredit',
+ 'Credit Limit' => 'Luottoraja',
+ 'Curr' => 'Valuutta',
+ 'Currency' => 'Valuutta',
+ 'Current' => 'Erääntyy',
+ 'Customer' => 'Asiakas',
+ 'Customer missing!' => 'Asiakas puuttuu!',
+ 'Date' => 'Päiväys',
+ 'Date Paid' => 'Maksupäivä',
+ 'Debit' => 'Debet',
+ 'Dec' => 'Jou',
+ 'December' => 'Joulukuu',
+ 'Delete' => 'Poista',
+ 'Department' => 'Toimipiste',
+ 'Description' => 'Kuvaus',
+ 'Detail' => 'Yksityiskohdat',
+ 'Due Date' => 'Eräpäivä',
+ 'Due Date missing!' => 'Eräpäivä puuttuu!',
+ 'Edit AP Transaction' => 'Muokkaa ostotapahtumaa',
+ 'Edit AR Transaction' => 'Muokkaa myyntitapahtumaa',
+ 'Employee' => 'Työntekijä',
+ 'Exch' => 'Vaihtokurssi',
+ 'Exchange Rate' => 'Vaihtokurssi',
+ 'Exchange rate for payment missing!' => 'Maksun vaihtokurssi puuttuu',
+ 'Exchange rate missing!' => 'Vaihtokurssi puuttuu',
+ 'Feb' => 'Hel',
+ 'February' => 'Helmikuu',
+ 'From' => 'Alkaen',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Sisällytä raporttiin',
+ 'Invoice' => 'Lasku',
+ 'Invoice Date' => 'Laskun päiväys',
+ 'Invoice Date missing!' => 'Laskun päiväys puuttuu!',
+ 'Invoice Number' => 'Laskun numero',
+ 'Jan' => 'Tam',
+ 'January' => 'Tammikuu',
+ 'Jul' => 'Hei',
+ 'July' => 'Heinäkuu',
+ 'Jun' => 'Kes',
+ 'June' => 'Kesäkuu',
+ 'Manager' => 'Johtaja',
+ 'Mar' => 'Maa',
+ 'March' => 'Maaliskuu',
+ 'May' => 'Tou',
+ 'May ' => 'Toukokuu',
+ 'Month' => 'Kuukausi',
+ 'No.' => 'no',
+ 'Notes' => 'Lisätietoja',
+ 'Nov' => 'Mar',
+ 'November' => 'Marraskuu',
+ 'Oct' => 'Lok',
+ 'October' => 'Lokakuu',
+ 'Open' => 'Avoinna',
+ 'Order' => 'Tilaus',
+ 'Order Number' => 'Tilausnumero',
+ 'Paid' => 'Maksettu',
+ 'Payment date missing!' => 'Maksupäivä puuttuu!',
+ 'Payments' => 'Maksut',
+ 'Period' => 'Ajanjakso',
+ 'Post' => 'Kirjaa',
+ 'Post as new' => 'Kirjaa uutena',
+ 'Print' => 'Tulosta',
+ 'Print and Post' => 'Tulosta ja kirjaa',
+ 'Project' => 'Projekti',
+ 'Quarter' => 'Neljännes',
+ 'Receipt' => 'Kuitti',
+ 'Remaining' => 'Jäljellä',
+ 'Sales Invoice.' => 'Myyntilasku.',
+ 'Salesperson' => 'Myyjä',
+ 'Sep' => 'Syy',
+ 'September' => 'Syyskuu',
+ 'Ship to' => 'Toimitusosoite',
+ 'Ship via' => 'Välipiste',
+ 'Source' => 'Lähde',
+ 'Subtotal' => 'Välisumma',
+ 'Summary' => 'Kooste',
+ 'Tax' => 'Vero',
+ 'Tax Included' => 'ALV sisältyy',
+ 'To' => 'Hetkeen',
+ 'Total' => 'Yhteensä',
+ 'Transaction' => 'Vienti',
+ 'Transaction deleted!' => 'Vienti poistettu!',
+ 'Transaction posted!' => 'Vienti kirjattu!',
+ 'Update' => 'Päivitä',
+ 'Vendor' => 'Toimittaja',
+ 'Vendor Invoice.' => 'Ostolasku.',
+ 'Vendor missing!' => 'Toimittaja puuttuu!',
+ 'Year' => 'Vuosi',
+ 'Yes' => 'Kyllä',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'ostotapahtuma' => 'ap_transaction',
+ 'myyntitapahtuma' => 'ar_transaction',
+ 'jatka' => 'continue',
+ 'poista' => 'delete',
+ 'kirjaa' => 'post',
+ 'kirjaa_uutena' => 'post_as_new',
+ 'tulosta' => 'print',
+ 'tulosta_ja_kirjaa' => 'print_and_post',
+ 'myyntilasku_' => 'sales_invoice_',
+ 'toimitusosoite' => 'ship_to',
+ 'päivitä' => 'update',
+ 'ostolasku_' => 'vendor_invoice_',
+ 'kyllä' => 'yes',
+};
+
+1;
+
diff --git a/locale/fi/admin b/locale/fi/admin
new file mode 100755
index 00000000..66e9b4c8
--- /dev/null
+++ b/locale/fi/admin
@@ -0,0 +1,144 @@
+$self{texts} = {
+ 'Access Control' => 'Kulunvalvonta',
+ 'Accounting' => 'Kirjanpito',
+ 'Add User' => 'Lisää käyttäjä',
+ 'Address' => 'Osoite',
+ 'Administration' => 'Ylläpito',
+ 'Administrator' => 'Pääkäyttäjä',
+ 'All Datasets up to date!' => 'Kaikki tietokannat ajan tasalla',
+ 'Cannot create Lock!' => 'Ei voi lukita!',
+ 'Change Admin Password' => 'Muuta pääkäyttäjän salasana',
+ 'Change Password' => 'Muuta salasana',
+ 'Click on login name to edit!' => 'Klikkaa kirjautumisnimeä muokataksesi sitä!',
+ 'Company' => 'Yritys',
+ 'Confirm' => 'Hyväksy',
+ 'Connect to' => 'Yhdistä',
+ 'Continue' => 'Jatka',
+ 'Create Chart of Accounts' => 'Luo tilikartta',
+ 'Create Dataset' => 'Luo tietolähteet',
+ 'DBI not installed!' => 'DBI-ajuria ei ole asennettu!',
+ 'Database' => 'Tietokanta',
+ 'Database Administration' => 'Tietokannan ylläpito',
+ 'Database Driver not checked!' => 'Tietokanta-ajuria ei ole tarkastettu',
+ 'Database User missing!' => 'Tietokannan käyttäjä puuttuu',
+ 'Dataset' => 'Tietokanta',
+ 'Dataset missing!' => 'Tietokanta puuttuu',
+ 'Dataset updated!' => 'Tietokanta päivitetty',
+ 'Date Format' => 'Päiväyksen muoto',
+ 'Delete' => 'Poista',
+ 'Delete Dataset' => 'Poista tietokanta',
+ 'Directory' => 'Hakemisto',
+ 'Driver' => 'Ajuri',
+ 'Dropdown Limit' => 'Pudotusvalikkojen rivimäärä',
+ 'E-mail' => 'Sähköposti',
+ 'Edit User' => 'Muokkaa käyttäjää',
+ 'Existing Datasets' => 'Nykyiset tietokannat',
+ 'Fax' => 'Faksi',
+ 'Host' => 'Osoite',
+ 'Hostname missing!' => 'Osoite puuttuu',
+ 'Language' => 'Kieli',
+ 'Lock System' => 'Lukitse järjestelmä',
+ 'Lockfile created!' => 'Järjestelmä lukittu!',
+ 'Lockfile removed!' => 'Järjestelmä avattu!',
+ 'Login' => 'Nimi',
+ 'Login name missing!' => 'Nimi puuttuu',
+ 'Logout' => 'Kirjaudu ulos',
+ 'Manager' => 'Johtaja',
+ 'Menu Width' => 'Valikon leveys',
+ 'Multibyte Encoding' => 'Itämaisten kielten tuki',
+ 'Name' => 'Nimi',
+ 'New Templates' => 'Uudet mallit',
+ 'No Database Drivers available!' => 'Tietokannan ajuria ei saatavilla!',
+ 'No Dataset selected!' => 'Ei tietokantaa valittuna!',
+ 'Nothing to delete!' => 'Ei poistettavaa!',
+ 'Number Format' => 'Numeron muoto',
+ 'Oracle Database Administration' => 'Oracle-tietokannan ylläpito',
+ 'Password' => 'Salasana',
+ 'Password changed!' => 'Salasana muutettu!',
+ 'Passwords do not match!' => 'Salasanat eivät täsmää!',
+ 'Pg Database Administration' => 'Postgres-tietokannan ylläpito',
+ 'PgPP Database Administration' => 'PgPP-tietokannan ylläpito',
+ 'Phone' => 'Puhelin',
+ 'Port' => 'Portti',
+ 'Port missing!' => 'Portti puuttuu!',
+ 'Printer' => 'Tulostin',
+ 'Save' => 'Tallenna',
+ 'Session Timeout' => 'Yhteys aikakatkaistu',
+ 'Session expired!' => 'Yhteys vanhentunut',
+ 'Setup Templates' => 'Aseta mallit',
+ 'Signature' => 'Allekirjoitus',
+ 'Stylesheet' => 'Tyylitiedosto',
+ 'Supervisor' => 'Valvoja',
+ 'Templates' => 'Mallit',
+ 'The following Datasets are not in use and can be deleted' => 'Seuraavat tietolähteet
+eivät ole käytössä ja voidaan poistaa',
+ 'The following Datasets need to be updated' => 'Seuraavat tietolähteet päivitettävä',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Tämä on olemassa olevien lähteiden ennakkotarkistus. Mitään ei luoda tai poisteta tässä vaiheessa!',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Lisätäksesi käyttäjän ryhmään muokkaa nimeä, muuta kirjautumisnimi ja tallenna.',
+ 'Unlock System' => 'Avaa järjestelmä',
+ 'Update Dataset' => 'Päivitä tietokanta',
+ 'Use Templates' => 'Käytä mallia',
+ 'User' => 'Käyttäjä',
+ 'User deleted!' => 'Käyttäjä poistettu!',
+ 'User saved!' => 'Käyttäjä tallennettu!',
+ 'Version' => 'Versio',
+ 'You are logged out' => 'Olet kirjautunut ulos',
+ 'does not exist' => 'ei löydy',
+ 'is already a member!' => 'on jo käyttäjä',
+ 'localhost' => 'paikallinen tietokone',
+ 'locked!' => 'lukittu!',
+ 'successfully created!' => 'onnistuneesti luotu!',
+ 'successfully deleted!' => 'onnistuneesti poistettu!',
+ 'website' => 'www-sivu',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'lisää_käyttäjä' => 'add_user',
+ 'muuta_pääkäyttäjän_salasana' => 'change_admin_password',
+ 'muuta_salasana' => 'change_password',
+ 'jatka' => 'continue',
+ 'luo_tietolähteet' => 'create_dataset',
+ 'poista' => 'delete',
+ 'poista_tietokanta' => 'delete_dataset',
+ 'lukitse_järjestelmä' => 'lock_system',
+ 'nimi' => 'login',
+ 'kirjaudu_ulos' => 'logout',
+ 'oracle_tietokannan_ylläpito' => 'oracle_database_administration',
+ 'postgres_tietokannan_ylläpito' => 'pg_database_administration',
+ 'pgpp_tietokannan_ylläpito' => 'pgpp_database_administration',
+ 'tallenna' => 'save',
+ 'avaa_järjestelmä' => 'unlock_system',
+ 'päivitä_tietokanta' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/fi/all b/locale/fi/all
new file mode 100755
index 00000000..7d15a44a
--- /dev/null
+++ b/locale/fi/all
@@ -0,0 +1,891 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+
+$self{texts} = {
+ 'A' => '',
+ 'AP' => 'Ostot',
+ 'AP Aging' => 'Erääntyvät ostolaskut',
+ 'AP Outstanding' => '',
+ 'AP Transaction' => 'Ostotapahtuma',
+ 'AP Transactions' => 'Ostotapahtumat',
+ 'AR' => 'Myynnit',
+ 'AR Aging' => 'Erääntyvät myyntilaskut',
+ 'AR Outstanding' => '',
+ 'AR Transaction' => 'Myyntitapahtuma',
+ 'AR Transactions' => 'Myyntitapahtumat',
+ 'AR/AP' => '',
+ 'About' => 'Lisätietoja',
+ 'Above' => 'Edellä',
+ 'Access Control' => 'Kulunvalvonta',
+ 'Access Denied!' => '',
+ 'Account' => 'Tili',
+ 'Account Number' => 'Tilinumero',
+ 'Account Number missing!' => 'Tilinumero puuttuu',
+ 'Account Type' => 'Tilityyppi',
+ 'Account Type missing!' => 'Tilityyppi puuttuu',
+ 'Account deleted!' => 'Tili poistettu',
+ 'Account does not exist!' => 'Tiliä ei ole olemassa',
+ 'Account saved!' => 'Tili lisätty',
+ 'Accounting' => 'Kirjanpito',
+ 'Accounting Menu' => 'Kirjanpitovalikko',
+ 'Accounts' => 'Tilit',
+ 'Accrual' => '',
+ 'Activate Audit trail' => '',
+ 'Active' => 'Avoin',
+ 'Add' => 'Lisää',
+ 'Add AP Transaction' => 'Lisää ostotapahtuma',
+ 'Add AR Transaction' => 'Lisää myyntitapahtuma',
+ 'Add Account' => 'Lisää tili',
+ 'Add Assembly' => 'Lisää tuote',
+ 'Add Business' => 'Lisää toimiala',
+ 'Add Cash Transfer Transaction' => 'Lisää rahansiirtotapahtuma',
+ 'Add Customer' => 'Lisää asiakas',
+ 'Add Deduction' => '',
+ 'Add Department' => 'Lisää toimipiste',
+ 'Add Employee' => 'Lisää työntekijä',
+ 'Add Exchange Rate' => 'Lisää vaihtokurssi',
+ 'Add GIFI' => 'Lisää GIFI',
+ 'Add General Ledger Transaction' => 'Lisää pääkirjantapahtuma',
+ 'Add Group' => 'Lisää ryhmä',
+ 'Add Job' => '',
+ 'Add Labor/Overhead' => '',
+ 'Add Language' => 'Lisää kieli',
+ 'Add POS Invoice' => '',
+ 'Add Part' => 'Lisää raaka-aine/tarvike',
+ 'Add Pricegroup' => 'Lisää hintaryhmä',
+ 'Add Project' => 'Lisää projekti',
+ 'Add Purchase Order' => 'Ostotilaus',
+ 'Add Quotation' => 'Lisää tarjous',
+ 'Add Request for Quotation' => 'Lisää tarjouspyyntö',
+ 'Add SIC' => 'Lisää SIC',
+ 'Add Sales Invoice' => 'Lisää myyntilasku',
+ 'Add Sales Order' => 'Lisää tilausvahvistus',
+ 'Add Service' => 'Lisää palvelu',
+ 'Add Timecard' => '',
+ 'Add Transaction' => 'Lisää tapahtuma',
+ 'Add User' => 'Lisää käyttäjä',
+ 'Add Vendor' => 'Lisää toimittaja',
+ 'Add Vendor Invoice' => 'Lisää ostolasku',
+ 'Add Warehouse' => 'Lisää varasto',
+ 'Address' => 'Osoite',
+ 'Administration' => 'Ylläpito',
+ 'Administrator' => 'Pääkäyttäjä',
+ 'After Deduction' => '',
+ 'All' => 'Kaikki',
+ 'All Accounts' => 'Kaikki tunnukset',
+ 'All Datasets up to date!' => 'Kaikki tietokannat ajan tasalla',
+ 'All Items' => 'Kaikki tuotteet',
+ 'Allowances' => '',
+ 'Amount' => 'Summa',
+ 'Amount Due' => 'Erääntyvä summa',
+ 'Amount missing!' => 'Summa puuttuu!',
+ 'Apr' => 'Huh',
+ 'April' => 'Huhtikuu',
+ 'Are you sure you want to delete Invoice Number' => 'Haluatko poistaa laskun numero',
+ 'Are you sure you want to delete Order Number' => 'Haluatko poistaa tilauksen numero',
+ 'Are you sure you want to delete Quotation Number' => 'Haluatko poistaa tarjouksen numero',
+ 'Are you sure you want to delete Timecard for' => '',
+ 'Are you sure you want to delete Transaction' => 'Haluatko poistaa viennin',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Haluatko poistaa merkityt kentät listasta?',
+ 'Assemblies' => 'Tuotteet',
+ 'Assemblies restocked!' => 'Tuotteet viety varastoon',
+ 'Assembly' => '',
+ 'Assembly stocked!' => '',
+ 'Asset' => 'Vastaavaa',
+ 'Attachment' => 'Liite',
+ 'Audit Control' => 'Tilien tarkistus',
+ 'Audit trail disabled' => '',
+ 'Audit trail enabled' => '',
+ 'Audit trail removed up to' => '',
+ 'Aug' => 'Elo',
+ 'August' => 'Elokuu',
+ 'Average Cost' => '',
+ 'Avg Cost' => '',
+ 'BIC' => '',
+ 'BOM' => 'Materiaalilista',
+ 'Backup' => 'Varmuuskopio',
+ 'Backup sent to' => 'Varmuuskopio lähetetty',
+ 'Balance' => 'Tase',
+ 'Balance Sheet' => 'Taselaskelma',
+ 'Based on' => 'Perustuen',
+ 'Bcc' => 'Näkymätön kopio',
+ 'Before Deduction' => '',
+ 'Beginning Balance' => 'Alkusaldo',
+ 'Below' => '',
+ 'Billing Address' => 'Laskutusosoite',
+ 'Bin' => 'Varastopaikka',
+ 'Bin List' => '',
+ 'Bin Lists' => '',
+ 'Books are open' => 'Kirjat ovat avoinna',
+ 'Break' => '',
+ 'Business' => 'Toimiala',
+ 'Business Number' => 'Y-numero',
+ 'Business deleted!' => 'Toimiala poistettu',
+ 'Business saved!' => 'Toimiala tallennettu',
+ 'C' => 'C',
+ 'COGS' => 'Myydyn tuotteen kulut',
+ 'COGS account does not exist!' => '',
+ 'Cannot add timecard for a completed job!' => '',
+ 'Cannot change timecard for a completed job!' => '',
+ 'Cannot create Assembly' => '',
+ 'Cannot create Labor' => '',
+ 'Cannot create Lock!' => 'Ei voi lukita!',
+ 'Cannot create Part' => '',
+ 'Cannot create Service' => '',
+ 'Cannot delete Timecard!' => '',
+ 'Cannot delete account!' => 'Tiliä ei voi poistaa!',
+ 'Cannot delete customer!' => 'Asiakasta ei voi poistaa!',
+ 'Cannot delete default account!' => 'Oletustiliä ei voi poistaa!',
+ 'Cannot delete invoice!' => 'Laskua ei voi poistaa!',
+ 'Cannot delete item!' => 'Nimikettä ei voi poistaa!',
+ 'Cannot delete order!' => 'Tilausta ei voi poistaa!',
+ 'Cannot delete quotation!' => 'Tarjouspyyntöä ei voi poistaa!',
+ 'Cannot delete transaction!' => 'Vientiä ei voi poistaa!',
+ 'Cannot delete vendor!' => 'Toimittajaa ei voi poistaa!',
+ 'Cannot post Payment!' => '',
+ 'Cannot post Receipt!' => '',
+ 'Cannot post invoice for a closed period!' => 'Laskun kirjaus suljetulle ajanjaksolle kielletty!',
+ 'Cannot post invoice!' => 'Laskua ei voi kirjata!',
+ 'Cannot post payment for a closed period!' => 'Maksun kirjaus suljetulle ajanjaksolle kielletty!',
+ 'Cannot post transaction for a closed period!' => 'Viennin kirjaus suljetulle ajanjaksolle kielletty!',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => '',
+ 'Cannot post transaction!' => 'Vientiä ei voi kirjata',
+ 'Cannot remove files!' => 'Tiedostojen poisto ei onnistu!',
+ 'Cannot save account!' => 'Tilin tallennus ei onnistu!',
+ 'Cannot save defaults!' => 'Oletusasetuksien tallennus ei onnistu!',
+ 'Cannot save order!' => 'Tilauksen tallennus ei onnistu!',
+ 'Cannot save preferences!' => 'Asetuksien tallennus ei onnistu!',
+ 'Cannot save quotation!' => 'Ei voi tallentaa tarjousta!',
+ 'Cannot save timecard for a closed period!' => '',
+ 'Cannot save timecard!' => '',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Tili voi olla vain yksi yhteenvetotili',
+ 'Cannot set multiple options for' => 'Ei voi asettaa useita asetuksia',
+ 'Cannot set multiple options for Item' => '',
+ 'Cannot stock Assembly!' => '',
+ 'Cannot stock assemblies!' => 'Tuotteiden varastointi ei onnistu!',
+ 'Cash' => 'Käteiskauppa',
+ 'Cc' => 'Kopio',
+ 'Change' => 'Vaihda',
+ 'Change Admin Password' => 'Muuta pääkäyttäjän salasana',
+ 'Change Password' => 'Muuta salasana',
+ 'Charge' => '',
+ 'Chart of Accounts' => 'Tilikartta',
+ 'Check' => 'Sekki',
+ 'Check Inventory' => '',
+ 'Checks' => '',
+ 'City' => 'Kaupunki',
+ 'Cleared' => 'Tyhjennetty',
+ 'Click on login name to edit!' => 'Klikkaa kirjautumisnimeä muokataksesi sitä!',
+ 'Clocked' => '',
+ 'Close Books up to' => 'Sulje kirjat hetkeen',
+ 'Closed' => 'Suljettu',
+ 'Code' => 'Koodi',
+ 'Code missing!' => 'Koodi puuttuu!',
+ 'Company' => 'Yritys',
+ 'Company Name' => 'Yrityksen nimi',
+ 'Compare to' => 'verrattuna',
+ 'Completed' => '',
+ 'Components' => 'Komponentit',
+ 'Confirm' => 'Hyväksy',
+ 'Confirm!' => 'Vahvista!',
+ 'Connect to' => 'Yhdistä',
+ 'Contact' => 'Yhteyshenkilö',
+ 'Continue' => 'Jatka',
+ 'Contra' => 'Kontra',
+ 'Copies' => 'Kopiot',
+ 'Copy to COA' => 'Kopioi tilikarttaan',
+ 'Cost' => 'Hinta',
+ 'Cost Center' => '',
+ 'Could not save pricelist!' => '',
+ 'Could not save!' => 'Ei voi talelntaa',
+ 'Could not transfer Inventory!' => '',
+ 'Country' => 'Maa',
+ 'Create Chart of Accounts' => 'Luo tilikartta',
+ 'Create Dataset' => 'Luo tietolähteet',
+ 'Credit' => 'Kredit',
+ 'Credit Limit' => 'Luottoraja',
+ 'Curr' => 'Valuutta',
+ 'Currency' => 'Valuutta',
+ 'Current' => 'Erääntyy',
+ 'Current Earnings' => 'Nykyisen tilikauden tuotot',
+ 'Customer' => 'Asiakas',
+ 'Customer History' => 'Asiakashistoria',
+ 'Customer Number' => 'Asiakasnumero',
+ 'Customer deleted!' => 'Asiakas poistettu!',
+ 'Customer missing!' => 'Asiakas puuttuu!',
+ 'Customer not on file!' => 'Asiakas ei järjestelmässä!',
+ 'Customer saved!' => 'Asiakas tallennettu!',
+ 'Customers' => 'Asiakkaat',
+ 'DBI not installed!' => 'DBI-ajuria ei ole asennettu!',
+ 'DOB' => 'Syntymäaika',
+ 'Database' => 'Tietokanta',
+ 'Database Administration' => 'Tietokannan ylläpito',
+ 'Database Driver not checked!' => 'Tietokanta-ajuria ei ole tarkastettu',
+ 'Database Host' => 'Tietokannan osoite',
+ 'Database User missing!' => 'Tietokannan käyttäjä puuttuu',
+ 'Dataset' => 'Tietokanta',
+ 'Dataset is newer than version!' => 'Tietokanta on uudempi kuin sovelluksen versio',
+ 'Dataset missing!' => 'Tietokanta puuttuu',
+ 'Dataset updated!' => 'Tietokanta päivitetty',
+ 'Date' => 'Päiväys',
+ 'Date Format' => 'Päiväyksen muoto',
+ 'Date Paid' => 'Maksupäivä',
+ 'Date Received' => '',
+ 'Date missing!' => 'Päiväys puuttuu',
+ 'Date received missing!' => '',
+ 'Date worked' => '',
+ 'Day' => '',
+ 'Day(s)' => '',
+ 'Days' => '',
+ 'Debit' => 'Debet',
+ 'Dec' => 'Jou',
+ 'December' => 'Joulukuu',
+ 'Decimalplaces' => 'Desimaalipaikkoja',
+ 'Decrease' => '',
+ 'Deduct after' => '',
+ 'Deduction deleted!' => '',
+ 'Deduction saved!' => '',
+ 'Deductions' => '',
+ 'Default Template' => '',
+ 'Defaults' => 'Oletukset',
+ 'Defaults saved!' => 'Oletusasetukset poistettu',
+ 'Delete' => 'Poista',
+ 'Delete Account' => 'Poista tili',
+ 'Delete Dataset' => 'Poista tietokanta',
+ 'Delete Schedule' => '',
+ 'Deleting a language will also delete the templates for the language' => '',
+ 'Delivery Date' => 'Toimituspäivä',
+ 'Department' => 'Toimipiste',
+ 'Department deleted!' => 'Toimipiste poistettu',
+ 'Department saved!' => 'Toimipiste tallennettu',
+ 'Departments' => 'Toimipisteet',
+ 'Deposit' => 'Rahatallennus',
+ 'Description' => 'Kuvaus',
+ 'Description Translations' => '',
+ 'Description missing!' => 'Kuvaus puuttuu',
+ 'Detail' => 'Yksityiskohdat',
+ 'Difference' => 'Ero',
+ 'Directory' => 'Hakemisto',
+ 'Discount' => 'Alennus',
+ 'Done' => 'Suoritettu',
+ 'Drawing' => 'Piirros',
+ 'Driver' => 'Ajuri',
+ 'Dropdown Limit' => 'Pudotusvalikkojen rivimäärä',
+ 'Due Date' => 'Eräpäivä',
+ 'Due Date missing!' => 'Eräpäivä puuttuu!',
+ 'E-mail' => 'Sähköposti',
+ 'E-mail Statement to' => 'Sähköpostilla tiliote',
+ 'E-mail address missing!' => 'Sähköpostiosoite puuttuu!',
+ 'E-mail message' => '',
+ 'E-mailed' => 'Lähetetty',
+ 'Edit' => 'Muokkaa',
+ 'Edit AP Transaction' => 'Muokkaa ostotapahtumaa',
+ 'Edit AR Transaction' => 'Muokkaa myyntitapahtumaa',
+ 'Edit Account' => 'Muokkaa tiliä',
+ 'Edit Assembly' => 'Muokkaa tuotetta',
+ 'Edit Business' => 'Muokkaa toimialaa',
+ 'Edit Cash Transfer Transaction' => '',
+ 'Edit Customer' => 'Muokkaa asiakasta',
+ 'Edit Deduction' => '',
+ 'Edit Department' => 'Muokkaa toimipistettä',
+ 'Edit Description Translations' => '',
+ 'Edit Employee' => 'Muokkaa työntekijää',
+ 'Edit GIFI' => 'Muokkaa GIFI',
+ 'Edit General Ledger Transaction' => 'Muokkaa pääkirjavientiä',
+ 'Edit Group' => 'Muokkaa ryhmää',
+ 'Edit Job' => '',
+ 'Edit Labor/Overhead' => '',
+ 'Edit Language' => 'Muokkaa kieltä',
+ 'Edit POS Invoice' => '',
+ 'Edit Part' => 'Muokkaa raaka-ainetta/tarviketta',
+ 'Edit Preferences for' => 'Muokkaa asetuksia',
+ 'Edit Pricegroup' => 'Muokkaa hintaryhmää',
+ 'Edit Project' => 'Muokkaa projektia',
+ 'Edit Purchase Order' => 'Muokkaa ostotilausta',
+ 'Edit Quotation' => 'Muokkaa tarjousta',
+ 'Edit Request for Quotation' => 'Muokkaa tarjouspyyntöä',
+ 'Edit SIC' => '',
+ 'Edit Sales Invoice' => 'Muokkaa myyntilaskua',
+ 'Edit Sales Order' => 'Muokkaa myyntitilausta',
+ 'Edit Service' => 'Muokkaa palvelua',
+ 'Edit Template' => 'Muokkaa mallia',
+ 'Edit Timecard' => '',
+ 'Edit User' => 'Muokkaa käyttäjää',
+ 'Edit Vendor' => 'Muokkaa myyjää',
+ 'Edit Vendor Invoice' => 'Muokkaa ostolaskua',
+ 'Edit Warehouse' => 'Muokkaa varastoa',
+ 'Employee' => 'Työntekijä',
+ 'Employee Name' => 'Työntekijän nimi',
+ 'Employee Number' => 'Työntekijän numero',
+ 'Employee deleted!' => 'Työntekijä poistettu',
+ 'Employee pays' => '',
+ 'Employee saved!' => 'Työntekijä tallennettu',
+ 'Employees' => 'Työntekijät',
+ 'Employer' => 'Työntekijä',
+ 'Employer pays' => '',
+ 'Enddate' => 'Päättymispäivä',
+ 'Ends' => '',
+ 'Enforce transaction reversal for all dates' => 'Pakota muunnos kaikille viennille',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Merkitse käyttämäsi valuutat 3 kirjaimella ja erota ne kaksoispisteellä, esim.(EUR:USD:SEK).',
+ 'Equity' => 'Oma pääoma',
+ 'Every' => '',
+ 'Excempt age <' => 'Paitsi ajalta <',
+ 'Exch' => 'Vaihtokurssi',
+ 'Exchange Rate' => 'Vaihtokurssi',
+ 'Exchange rate for payment missing!' => 'Maksun vaihtokurssi puuttuu',
+ 'Exchange rate missing!' => 'Vaihtokurssi puuttuu',
+ 'Existing Datasets' => 'Nykyiset tietokannat',
+ 'Expense' => 'Meno',
+ 'Expense account does not exist!' => '',
+ 'Expense/Asset' => 'Meno/Varat',
+ 'Extended' => 'Pidennetty',
+ 'FX' => '',
+ 'Failed to save order!' => '',
+ 'Fax' => 'Faksi',
+ 'Feb' => 'Hel',
+ 'February' => 'Helmikuu',
+ 'For' => '',
+ 'Foreign Exchange Gain' => 'Vaihtokurssivoitto',
+ 'Foreign Exchange Loss' => 'Vaihtokurssitappio',
+ 'Friday' => '',
+ 'From' => 'Alkaen',
+ 'From Warehouse' => '',
+ 'GIFI' => 'GIFI',
+ 'GIFI deleted!' => 'GIFI poistettu!',
+ 'GIFI missing!' => 'GIFI puuttuu!',
+ 'GIFI saved!' => 'GIFI tallennettu!',
+ 'GL' => '',
+ 'GL Reference Number' => '',
+ 'GL Transaction' => 'Pääkirjavienti',
+ 'General Ledger' => 'Pääkirja',
+ 'Generate' => '',
+ 'Generate Orders' => '',
+ 'Generate Purchase Orders' => '',
+ 'Generate Purchase Orders from Sales Order' => '',
+ 'Generate Sales Order' => '',
+ 'Generate Sales Order from Purchase Orders' => '',
+ 'Generate Sales Orders' => '',
+ 'Goods & Services' => 'Hyödykkeet ja palvelut',
+ 'Group' => 'Ryhmä',
+ 'Group Items' => 'Ryhmän tuotteet',
+ 'Group Translations' => '',
+ 'Group deleted!' => 'Ryhmä poistettu',
+ 'Group missing!' => 'Ryhmä puuttuu',
+ 'Group saved!' => 'Ryhmä tallennettu',
+ 'Groups' => 'Ryhmät',
+ 'HR' => '',
+ 'HTML Templates' => 'HTML-mallit',
+ 'Heading' => 'Otsikko',
+ 'History' => 'Historia',
+ 'Home Phone' => 'Kotipuhelin',
+ 'Host' => 'Osoite',
+ 'Hostname missing!' => 'Osoite puuttuu',
+ 'IBAN' => '',
+ 'ID' => 'ID',
+ 'Image' => 'Kuva',
+ 'In-line' => 'Linjalla',
+ 'Inactive' => '',
+ 'Include Exchange Rate Difference' => '',
+ 'Include Payment' => '',
+ 'Include in Report' => 'Sisällytä raporttiin',
+ 'Include in drop-down menus' => 'Sisällytä pudotusvalikoihin',
+ 'Income' => 'Tulo',
+ 'Income Statement' => 'Tuloslaskelma',
+ 'Income account does not exist!' => '',
+ 'Incorrect Dataset version!' => 'Väärä tietokannan versio!',
+ 'Increase' => 'Lisää',
+ 'Individual Items' => 'Yksittäiset nimikkeet',
+ 'Internal Notes' => 'Sisäiset viestit',
+ 'Inventory' => 'Varasto',
+ 'Inventory account does not exist!' => '',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Tuotteen varaston on oltava nolla ennen asettamista epäkurantiksi!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Raaka-aineen/tarvikkeen varaston määrä on oltava nolla ennen asettamista epäkurantiksi!',
+ 'Inventory saved!' => 'Varasto tallennettu!',
+ 'Inventory transferred!' => 'Varasto siirretty!',
+ 'Invoice' => 'Lasku',
+ 'Invoice Date' => 'Laskun päiväys',
+ 'Invoice Date missing!' => 'Laskun päiväys puuttuu!',
+ 'Invoice Number' => 'Laskun numero',
+ 'Invoice Number missing!' => 'Laskun numero puuttuu!',
+ 'Invoice deleted!' => 'Lasku poistettu!',
+ 'Invoices' => 'Laskut',
+ 'Is this a summary account to record' => 'Onko tämä tallennettava yhteenvetotili?',
+ 'Item already on pricelist!' => '',
+ 'Item deleted!' => 'Nimike poistettu!',
+ 'Item not on file!' => 'Nimikettä ei ole järjestelmässä!',
+ 'Items' => 'Tuotteet',
+ 'Jan' => 'Tam',
+ 'January' => 'Tammikuu',
+ 'Job' => '',
+ 'Job Name' => '',
+ 'Job Number' => '',
+ 'Job Number missing!' => '',
+ 'Job deleted!' => '',
+ 'Job saved!' => '',
+ 'Jobs' => '',
+ 'Jul' => 'Hei',
+ 'July' => 'Heinäkuu',
+ 'Jun' => 'Kes',
+ 'June' => 'Kesäkuu',
+ 'LaTeX Templates' => 'LaTeX mallit',
+ 'Labor Code' => '',
+ 'Labor/Overhead' => '',
+ 'Language' => 'Kieli',
+ 'Language deleted!' => 'Kieli tuhottu',
+ 'Language saved!' => 'Kieli tallennettu',
+ 'Languages' => 'Kielet',
+ 'Languages not defined!' => 'Kielet ei ole määritelty',
+ 'Last Cost' => '',
+ 'Last Numbers & Default Accounts' => 'Edelliset numerot ja oletustilit',
+ 'Lead' => '',
+ 'Leadtime' => '',
+ 'Leave host and port field empty unless you want to make a remote connection.' => 'Jätä osoite- ja porttikentät tyhjiksi mikäli et halua ottaa etäyhteyttä.',
+ 'Liability' => 'Vastattavaa',
+ 'Licensed to' => 'Lisenssin omistaja',
+ 'Line Total' => 'Rivi yhteensä',
+ 'Link' => 'Linkki',
+ 'Link Accounts' => 'Linkkaa tilit',
+ 'List' => 'Lista',
+ 'List Accounts' => 'Listaa tilit',
+ 'List Businesses' => 'Listaa toimialat',
+ 'List Departments' => 'Listaa toimipisteet',
+ 'List GIFI' => 'Listaa GIFI',
+ 'List Languages' => 'Listaa kielet',
+ 'List Price' => 'Listaa hinnat',
+ 'List Projects' => 'Listaa projektit',
+ 'List SIC' => 'Listaa SIC',
+ 'List Transactions' => 'Listaa viennit',
+ 'List Warehouses' => 'Listaa varastot',
+ 'Lock System' => 'Lukitse järjestelmä',
+ 'Lockfile created!' => 'Järjestelmä lukittu!',
+ 'Lockfile removed!' => 'Järjestelmä avattu!',
+ 'Login' => 'Nimi',
+ 'Login name missing!' => 'Nimi puuttuu',
+ 'Logout' => 'Kirjaudu ulos',
+ 'Make' => 'Valmistaja',
+ 'Manager' => 'Johtaja',
+ 'Mar' => 'Maa',
+ 'March' => 'Maaliskuu',
+ 'Marked entries printed!' => 'Valitut kentät tulostettu',
+ 'Markup' => '',
+ 'Maximum' => 'Maksimi',
+ 'May' => 'Tou',
+ 'May ' => 'Toukokuu',
+ 'Memo' => '',
+ 'Menu Width' => 'Valikon leveys',
+ 'Message' => 'Viesti',
+ 'Method' => 'Tapa',
+ 'Microfiche' => 'Mikrokuva',
+ 'Model' => 'Tuotenimi',
+ 'Monday' => '',
+ 'Month' => 'Kuukausi',
+ 'Month(s)' => '',
+ 'Months' => '',
+ 'Multibyte Encoding' => 'Itämaisten kielten tuki',
+ 'N/A' => 'Ei saatavilla',
+ 'Name' => 'Nimi',
+ 'Name missing!' => 'Nimi puuttuu!',
+ 'New Templates' => 'Uudet mallit',
+ 'New Window' => '',
+ 'Next' => '',
+ 'Next Date' => '',
+ 'Next Number' => '',
+ 'No' => 'Ei',
+ 'No Database Drivers available!' => 'Tietokannan ajuria ei saatavilla!',
+ 'No Dataset selected!' => 'Ei tietokantaa valittuna!',
+ 'No Employees on file!' => '',
+ 'No Labor codes on file!' => '',
+ 'No email address for' => 'Sähköpostiosoite puuttuu',
+ 'No open Jobs!' => '',
+ 'No open Projects!' => '',
+ 'No.' => 'no',
+ 'Non-taxable' => 'Veroton',
+ 'Non-taxable Purchases' => 'Verottomat ostot',
+ 'Non-taxable Sales' => 'Verottomat myynnit',
+ 'Non-tracking Items' => '',
+ 'Notes' => 'Lisätietoja',
+ 'Nothing entered!' => 'Ei syötettä',
+ 'Nothing selected!' => 'Mitään valitsematta!',
+ 'Nothing to delete!' => 'Ei poistettavaa!',
+ 'Nothing to print!' => 'Ei tulostettavaa!',
+ 'Nothing to transfer!' => 'Ei siirrettävää!',
+ 'Nov' => 'Mar',
+ 'November' => 'Marraskuu',
+ 'Number' => 'Numero',
+ 'Number Format' => 'Numeron muoto',
+ 'Number missing in Row' => 'Numero puuttuu kannan riviltä',
+ 'O' => 'O',
+ 'OH' => '',
+ 'Obsolete' => 'Vanhentunut',
+ 'Oct' => 'Lok',
+ 'October' => 'Lokakuu',
+ 'On Hand' => 'Varastossa',
+ 'Open' => 'Avoinna',
+ 'Oracle Database Administration' => 'Oracle-tietokannan ylläpito',
+ 'Order' => 'Tilaus',
+ 'Order Date' => 'Tilauspäivämäärä',
+ 'Order Date missing!' => 'Tilauspäivämäärä puuttuu!',
+ 'Order Entry' => 'Tilauksen kirjaus',
+ 'Order Number' => 'Tilausnumero',
+ 'Order Number missing!' => 'Tilausnumero puuttuu!',
+ 'Order deleted!' => 'Tilaus poistettu!',
+ 'Order generation failed!' => '',
+ 'Order saved!' => 'Tilaus tallennettu!',
+ 'Orders generated!' => '',
+ 'Orphaned' => 'Hylätyt',
+ 'Out of balance transaction!' => 'Viennin taseet eivät täsmää!',
+ 'Out of balance!' => 'Taseet eivät täsmää',
+ 'Outstanding' => '',
+ 'PDF' => 'PDF',
+ 'PO Number' => '',
+ 'POS' => '',
+ 'POS Invoice' => '',
+ 'Packing List' => 'Pakkauslista',
+ 'Packing List Date missing!' => 'Pakkauslistan päiväys puuttuu!',
+ 'Packing List Number missing!' => 'Pakkauslistan numero puuttuu!',
+ 'Packing Lists' => 'Pakkauslistat',
+ 'Paid' => 'Maksettu',
+ 'Part' => 'Tarvike',
+ 'Part Number' => '',
+ 'Partnumber' => 'Tarvikenumero',
+ 'Parts' => 'Tarvikkeet',
+ 'Password' => 'Salasana',
+ 'Password changed!' => 'Salasana muutettu!',
+ 'Password does not match!' => 'Salasana ei täsmää!',
+ 'Passwords do not match!' => 'Salasanat eivät täsmää!',
+ 'Payables' => 'Maksettavaa',
+ 'Payment' => 'Maksu',
+ 'Payment date missing!' => 'Maksupäivä puuttuu!',
+ 'Payment posted!' => 'Maksu kirjattu!',
+ 'Payments' => 'Maksut',
+ 'Payments posted!' => '',
+ 'Payroll Deduction' => '',
+ 'Period' => 'Ajanjakso',
+ 'Pg Database Administration' => 'Postgres-tietokannan ylläpito',
+ 'PgPP Database Administration' => 'PgPP-tietokannan ylläpito',
+ 'Phone' => 'Puhelin',
+ 'Pick List' => '',
+ 'Pick Lists' => '',
+ 'Port' => 'Portti',
+ 'Port missing!' => 'Portti puuttuu!',
+ 'Pos' => '',
+ 'Post' => 'Kirjaa',
+ 'Post as new' => 'Kirjaa uutena',
+ 'Posted!' => 'Kirjattu!',
+ 'Posting' => '',
+ 'Posting failed!' => '',
+ 'Postscript' => 'Postscript',
+ 'Preferences' => 'Asetukset',
+ 'Preferences saved!' => 'Asetukset tallennettu!',
+ 'Prepayment' => 'Ennakkomaksu',
+ 'Price' => 'Hinta',
+ 'Pricegroup' => 'Hintaryhmä',
+ 'Pricegroup deleted!' => 'Hintaryhmä poistettu',
+ 'Pricegroup missing!' => 'Hintaryhmä puuttuu',
+ 'Pricegroup saved!' => 'Hintaryhmä tallennettu',
+ 'Pricegroups' => 'Hintaryhmät',
+ 'Pricelist' => 'Hintalista',
+ 'Print' => 'Tulosta',
+ 'Print and Post' => 'Tulosta ja kirjaa',
+ 'Print and Post as new' => '',
+ 'Print and Save' => 'Tulosta ja tallenna',
+ 'Print and Save as new' => '',
+ 'Print and post as new' => '',
+ 'Print and save as new' => '',
+ 'Printed' => 'Tulostettu',
+ 'Printer' => 'Tulostin',
+ 'Printing' => '',
+ 'Printing ... ' => 'Tulostaa..',
+ 'Process Transactions' => '',
+ 'Production' => '',
+ 'Profit Center' => '',
+ 'Project' => 'Projekti',
+ 'Project Description Translations' => '',
+ 'Project Name' => '',
+ 'Project Number' => 'Projektinumero',
+ 'Project Number missing!' => 'Projektinumero puuttuu!',
+ 'Project Transactions' => 'Projektin tapahtumat',
+ 'Project deleted!' => 'Projekti poistettu!',
+ 'Project not on file!' => 'Projekti ei ole järjestelmässä!',
+ 'Project saved!' => 'Projekti tallennettu!',
+ 'Project/Job Name' => '',
+ 'Project/Job Number' => '',
+ 'Projects' => 'Projektit',
+ 'Purchase Order' => 'Ostotilaus',
+ 'Purchase Order Number' => 'Ostotilausnumero',
+ 'Purchase Orders' => 'Ostotilaukset',
+ 'Qty' => 'Määrä',
+ 'Quantity exceeds available units to stock!' => '',
+ 'Quarter' => 'Neljännes',
+ 'Quotation' => 'Tarjous',
+ 'Quotation ' => 'Tarjous ',
+ 'Quotation Date' => 'Tarjouspäivä',
+ 'Quotation Date missing!' => 'Tarjouspäivä puuttuu',
+ 'Quotation Number' => 'Tarjousnumero',
+ 'Quotation Number missing!' => 'Tarjousnumero puuttuu',
+ 'Quotation deleted!' => 'Tarjous poistettu',
+ 'Quotations' => 'Tarjoukset',
+ 'R' => '',
+ 'RFQ' => 'Tarjouspyyntö',
+ 'RFQ ' => 'Tarjouspyyntö ',
+ 'RFQ Number' => 'Tarjouspyynnön numero',
+ 'RFQs' => 'Tarjouspyynnöt',
+ 'ROP' => '',
+ 'Rate' => 'Kurssi',
+ 'Rate missing!' => 'Kurssi puuttuu',
+ 'Recd' => 'Vastaanotettu',
+ 'Receipt' => 'Kuitti',
+ 'Receipt posted!' => 'Kuitti kirjattu',
+ 'Receipts' => 'Kuitit',
+ 'Receivables' => 'Saamiset',
+ 'Receive' => '',
+ 'Receive Merchandise' => '',
+ 'Reconciliation' => 'Sovitus',
+ 'Reconciliation Report' => '',
+ 'Record in' => 'Talleta tilille',
+ 'Recurring Transaction' => '',
+ 'Recurring Transactions' => '',
+ 'Reference' => 'Viite',
+ 'Remaining' => 'Jäljellä',
+ 'Remove' => 'Poista',
+ 'Remove Audit trail up to' => '',
+ 'Removed spoolfiles!' => 'Spool-tiedostot poistettu',
+ 'Removing marked entries from queue ...' => '',
+ 'Repeat' => '',
+ 'Report for' => 'Raportti',
+ 'Reports' => 'Raportit',
+ 'Req' => '',
+ 'Request for Quotation' => 'Tarjouspyyntö',
+ 'Request for Quotations' => 'Tarjouspyynnöt',
+ 'Required by' => 'Toimituspäivä',
+ 'Retained Earnings' => 'Käyttörahasto\jakamaton voitto',
+ 'Role' => '',
+ 'S' => '',
+ 'SIC' => '',
+ 'SIC deleted!' => 'SIC poistettu!',
+ 'SIC saved!' => 'SIC tallennettu!',
+ 'SKU' => '',
+ 'SSN' => '',
+ 'Sale' => '',
+ 'Sales' => 'Myynti',
+ 'Sales Invoice' => 'Myyntilasku',
+ 'Sales Invoice ' => 'Myyntilasku ',
+ 'Sales Invoice.' => 'Myyntilasku.',
+ 'Sales Invoice/AR Transaction Number' => '',
+ 'Sales Invoices' => 'Myyntilaskut',
+ 'Sales Order' => 'Tilausvahvistus',
+ 'Sales Order Number' => 'Tilausvahvistuksen numero',
+ 'Sales Orders' => 'Tilausvahvistukset',
+ 'Sales Quotation Number' => '',
+ 'Salesperson' => 'Myyjä',
+ 'Saturday' => '',
+ 'Save' => 'Tallenna',
+ 'Save Pricelist' => '',
+ 'Save Schedule' => '',
+ 'Save as new' => 'Tallenna uutena',
+ 'Save to File' => 'Tallenna tiedostoon',
+ 'Saving' => '',
+ 'Schedule' => '',
+ 'Scheduled' => '',
+ 'Screen' => 'Näyttö',
+ 'Search' => 'Etsi',
+ 'Select' => 'Valitse',
+ 'Select Customer' => '',
+ 'Select Vendor' => '',
+ 'Select a Printer!' => '',
+ 'Select a printer!' => '',
+ 'Select all' => 'Valitse kaikki',
+ 'Select from one of the items below' => 'Valitse yksi nimike alapuolelta',
+ 'Select from one of the names below' => 'Valitse yksi nimi alapuolelta',
+ 'Select from one of the projects below' => 'Valitse yksi projekti alapuolelta',
+ 'Select items' => '',
+ 'Select payment' => 'Valitse maksutapa',
+ 'Select postscript or PDF!' => 'Valitse postscript tai PDF!',
+ 'Select txt, postscript or PDF!' => 'Valitse tekstitiedosto, postscript tai PDF!',
+ 'Sell' => 'Myynti',
+ 'Sell Price' => 'Myyntihinta',
+ 'Send by E-Mail' => 'Lähetä sähköpostilla',
+ 'Sending' => '',
+ 'Sep' => 'Syy',
+ 'September' => 'Syyskuu',
+ 'Serial No.' => 'Sarjanumero',
+ 'Serial Number' => 'Sarjanumero',
+ 'Service' => 'Palvelu',
+ 'Service Code' => '',
+ 'Service/Labor Code' => '',
+ 'Services' => 'Palvelut',
+ 'Session Timeout' => 'Yhteys aikakatkaistu',
+ 'Session expired!' => 'Yhteys vanhentunut',
+ 'Setup Templates' => 'Aseta mallit',
+ 'Ship' => 'Lähetä',
+ 'Ship Merchandise' => '',
+ 'Ship to' => 'Toimitusosoite',
+ 'Ship via' => 'Välipiste',
+ 'Shipping' => '',
+ 'Shipping Address' => '',
+ 'Shipping Date' => '',
+ 'Shipping Date missing!' => '',
+ 'Shipping Point' => '',
+ 'Short' => 'Lyhytaikaiset',
+ 'Signature' => 'Allekirjoitus',
+ 'Source' => 'Lähde',
+ 'Spoolfile' => '',
+ 'Standard' => 'Vakio',
+ 'Standard Industrial Codes' => '',
+ 'Startdate' => 'Aloituspäivä',
+ 'State' => 'Lääni',
+ 'State/Province' => 'Lääni',
+ 'Statement' => 'Tiliote',
+ 'Statement Balance' => 'Tiliotteen tase',
+ 'Statement sent to' => 'Tiliote lähetetty',
+ 'Statements sent to printer!' => 'Tiliotteet lähetetty tulostimelle!',
+ 'Stock' => '',
+ 'Stock Assembly' => 'Varastoi tuote',
+ 'Stocking Date' => '',
+ 'Stylesheet' => 'Tyylitiedosto',
+ 'Sub-contract GIFI' => '',
+ 'Subject' => 'Aihe',
+ 'Subtotal' => 'Välisumma',
+ 'Summary' => 'Kooste',
+ 'Sunday' => '',
+ 'Supervisor' => 'Valvoja',
+ 'System' => 'Järjestelmä',
+ 'System Defaults' => 'Järjestelmän oletukset',
+ 'Tax' => 'Vero',
+ 'Tax Accounts' => 'Verotilit',
+ 'Tax Included' => 'ALV sisältyy',
+ 'Tax Number' => 'Veronumero',
+ 'Tax Number / SSN' => 'Veronumero / SSN',
+ 'Tax collected' => 'Veroa kerätty',
+ 'Tax paid' => 'Veroa maksettu',
+ 'Taxable' => 'Verotettavaa',
+ 'Template saved!' => 'Malli tallennettu',
+ 'Templates' => 'Mallit',
+ 'Terms' => 'Maksuehto',
+ 'Text' => '',
+ 'Text Templates' => 'Tekstimallit',
+ 'The following Datasets are not in use and can be deleted' => 'Seuraavat tietolähteet
+eivät ole käytössä ja voidaan poistaa',
+ 'The following Datasets need to be updated' => 'Seuraavat tietolähteet päivitettävä',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Tämä on olemassa olevien lähteiden ennakkotarkistus. Mitään ei luoda tai poisteta tässä vaiheessa!',
+ 'Thursday' => '',
+ 'Till' => '',
+ 'Time In' => '',
+ 'Time Out' => '',
+ 'Timecard' => '',
+ 'Timecard deleted!' => '',
+ 'Timecard saved!' => '',
+ 'Timecards' => '',
+ 'Times' => '',
+ 'To' => 'Hetkeen',
+ 'To Warehouse' => '',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Lisätäksesi käyttäjän ryhmään muokkaa nimeä, muuta kirjautumisnimi ja tallenna.',
+ 'Top Level' => 'Ylin taso',
+ 'Total' => 'Yhteensä',
+ 'Tracking Items' => '',
+ 'Trade Discount' => '',
+ 'Transaction' => 'Vienti',
+ 'Transaction Date missing!' => 'Viennin päiväys puuttuu!',
+ 'Transaction Dates' => '',
+ 'Transaction deleted!' => 'Vienti poistettu!',
+ 'Transaction posted!' => 'Vienti kirjattu!',
+ 'Transaction reversal enforced for all dates' => 'Kirjaukset muunnettu kaikille päiväyksille',
+ 'Transaction reversal enforced up to' => 'Kirjaukset muunnnettu hetkeen ',
+ 'Transactions' => 'Tapahtumat',
+ 'Transfer' => 'Siirto',
+ 'Transfer Inventory' => '',
+ 'Transfer from' => '',
+ 'Transfer to' => '',
+ 'Translation' => '',
+ 'Translation deleted!' => '',
+ 'Translation not on file!' => '',
+ 'Translations' => '',
+ 'Translations saved!' => '',
+ 'Trial Balance' => 'Saldolista',
+ 'Tuesday' => '',
+ 'Type of Business' => 'Toimialan luokitus',
+ 'Unit' => 'Yksikkö',
+ 'Unit of measure' => 'Mittayksikkö',
+ 'Unlock System' => 'Avaa järjestelmä',
+ 'Update' => 'Päivitä',
+ 'Update Dataset' => 'Päivitä tietokanta',
+ 'Updated' => 'Päivitetty',
+ 'Upgrading to Version' => 'Päivitetään',
+ 'Use Templates' => 'Käytä mallia',
+ 'User' => 'Käyttäjä',
+ 'User deleted!' => 'Käyttäjä poistettu!',
+ 'User saved!' => 'Käyttäjä tallennettu!',
+ 'Valid until' => '',
+ 'Vendor' => 'Toimittaja',
+ 'Vendor History' => 'Toimittajahistoria',
+ 'Vendor Invoice' => 'Ostolasku',
+ 'Vendor Invoice ' => 'Ostolasku ',
+ 'Vendor Invoice.' => 'Ostolasku.',
+ 'Vendor Invoice/AP Transaction Number' => '',
+ 'Vendor Invoices' => 'Ostolaskut',
+ 'Vendor Number' => 'Toimittajanumero',
+ 'Vendor deleted!' => 'Toimittaja poistettu!',
+ 'Vendor missing!' => 'Toimittaja puuttuu!',
+ 'Vendor not on file!' => 'Toimittajaa ei järjestelmässä!',
+ 'Vendor saved!' => 'Toimittaja tallennettu!',
+ 'Vendors' => 'Toimittajat',
+ 'Version' => 'Versio',
+ 'Warehouse' => 'Varasto',
+ 'Warehouse deleted!' => 'Varasto poistettu',
+ 'Warehouse saved!' => 'Varasto tallennettu',
+ 'Warehouses' => 'Varastot',
+ 'Warning!' => 'Varoitus!',
+ 'Wednesday' => '',
+ 'Week' => '',
+ 'Week(s)' => '',
+ 'Weeks' => '',
+ 'Weight' => 'Paino',
+ 'Weight Unit' => 'Painoyksikkö',
+ 'What type of item is this?' => 'Minkä tyyppinen nimike tämä on?',
+ 'Work Order' => 'Työtilaus',
+ 'Work Orders' => 'Työtilaukset',
+ 'Work Phone' => 'Työpuhelin',
+ 'Year' => 'Vuosi',
+ 'Year(s)' => '',
+ 'Yearend' => 'Tilinpäätös',
+ 'Yearend date missing!' => 'Tilikauden päätöspäivä puuttuu',
+ 'Yearend posted!' => 'Tilinpäätös kirjattu',
+ 'Yearend posting failed!' => 'Tilinpäätöksen kirjaus epäonnistui!',
+ 'Years' => '',
+ 'Yes' => 'Kyllä',
+ 'You are logged out' => 'Olet kirjautunut ulos',
+ 'You are posting an existing transaction!' => '',
+ 'You are printing and posting an existing transaction!' => '',
+ 'You are printing and saving an existing order' => '',
+ 'You are printing and saving an existing quotation' => '',
+ 'You are printing and saving an existing transaction!' => '',
+ 'You are saving an existing order' => '',
+ 'You are saving an existing quotation' => '',
+ 'You are saving an existing transaction!' => '',
+ 'You did not enter a name!' => 'Et kirjoittanut nimeä',
+ 'You must enter a host and port for local and remote connections!' => 'Sinun täytyy antaa isäntäkone ja portti paikallisille ja etäyhteyksille!',
+ 'Zip/Postal Code' => 'Postinumero',
+ 'account cannot be set to any other type of account' => 'tilityyppiä ei voi muuttaa',
+ 'as at' => 'päivänä ',
+ 'days' => 'päivää',
+ 'does not exist' => 'ei löydy',
+ 'done' => 'valmis',
+ 'ea' => 'kpl',
+ 'failed' => '',
+ 'for' => '',
+ 'for Period' => 'jaksolle',
+ 'is already a member!' => 'on jo käyttäjä',
+ 'localhost' => 'paikallinen tietokone',
+ 'locked!' => 'lukittu!',
+ 'partsgroup' => '',
+ 'posted!' => 'kirjattu!',
+ 'sent' => 'lähetetty',
+ 'successfully created!' => 'onnistuneesti luotu!',
+ 'successfully deleted!' => 'onnistuneesti poistettu!',
+ 'time(s)' => '',
+ 'unexpected error!' => '',
+ 'website' => 'www-sivu',
+};
+
+1;
diff --git a/locale/fi/am b/locale/fi/am
new file mode 100755
index 00000000..8e15511b
--- /dev/null
+++ b/locale/fi/am
@@ -0,0 +1,271 @@
+$self{texts} = {
+ 'AP' => 'Ostot',
+ 'AR' => 'Myynnit',
+ 'About' => 'Lisätietoja',
+ 'Account' => 'Tili',
+ 'Account Number' => 'Tilinumero',
+ 'Account Number missing!' => 'Tilinumero puuttuu',
+ 'Account Type' => 'Tilityyppi',
+ 'Account Type missing!' => 'Tilityyppi puuttuu',
+ 'Account deleted!' => 'Tili poistettu',
+ 'Account does not exist!' => 'Tiliä ei ole olemassa',
+ 'Account saved!' => 'Tili lisätty',
+ 'Accounting Menu' => 'Kirjanpitovalikko',
+ 'Add Account' => 'Lisää tili',
+ 'Add Business' => 'Lisää toimiala',
+ 'Add Department' => 'Lisää toimipiste',
+ 'Add GIFI' => 'Lisää GIFI',
+ 'Add Language' => 'Lisää kieli',
+ 'Add SIC' => 'Lisää SIC',
+ 'Add Warehouse' => 'Lisää varasto',
+ 'Address' => 'Osoite',
+ 'Amount' => 'Summa',
+ 'Asset' => 'Vastaavaa',
+ 'Audit Control' => 'Tilien tarkistus',
+ 'Backup sent to' => 'Varmuuskopio lähetetty',
+ 'Books are open' => 'Kirjat ovat avoinna',
+ 'Business Number' => 'Y-numero',
+ 'Business deleted!' => 'Toimiala poistettu',
+ 'Business saved!' => 'Toimiala tallennettu',
+ 'COGS' => 'Myydyn tuotteen kulut',
+ 'Cannot delete account!' => 'Tiliä ei voi poistaa!',
+ 'Cannot delete default account!' => 'Oletustiliä ei voi poistaa!',
+ 'Cannot save account!' => 'Tilin tallennus ei onnistu!',
+ 'Cannot save defaults!' => 'Oletusasetuksien tallennus ei onnistu!',
+ 'Cannot save preferences!' => 'Asetuksien tallennus ei onnistu!',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Tili voi olla vain yksi yhteenvetotili',
+ 'Cannot set multiple options for' => 'Ei voi asettaa useita asetuksia',
+ 'Cash' => 'Käteiskauppa',
+ 'Chart of Accounts' => 'Tilikartta',
+ 'Close Books up to' => 'Sulje kirjat hetkeen',
+ 'Code' => 'Koodi',
+ 'Code missing!' => 'Koodi puuttuu!',
+ 'Company' => 'Yritys',
+ 'Confirm' => 'Hyväksy',
+ 'Confirm!' => 'Vahvista!',
+ 'Continue' => 'Jatka',
+ 'Contra' => 'Kontra',
+ 'Copy to COA' => 'Kopioi tilikarttaan',
+ 'Credit' => 'Kredit',
+ 'Customer Number' => 'Asiakasnumero',
+ 'Database Host' => 'Tietokannan osoite',
+ 'Dataset' => 'Tietokanta',
+ 'Date Format' => 'Päiväyksen muoto',
+ 'Debit' => 'Debet',
+ 'Defaults saved!' => 'Oletusasetukset poistettu',
+ 'Delete' => 'Poista',
+ 'Delete Account' => 'Poista tili',
+ 'Department deleted!' => 'Toimipiste poistettu',
+ 'Department saved!' => 'Toimipiste tallennettu',
+ 'Departments' => 'Toimipisteet',
+ 'Description' => 'Kuvaus',
+ 'Description missing!' => 'Kuvaus puuttuu',
+ 'Discount' => 'Alennus',
+ 'Dropdown Limit' => 'Pudotusvalikkojen rivimäärä',
+ 'E-mail' => 'Sähköposti',
+ 'E-mail address missing!' => 'Sähköpostiosoite puuttuu!',
+ 'Edit' => 'Muokkaa',
+ 'Edit Account' => 'Muokkaa tiliä',
+ 'Edit Business' => 'Muokkaa toimialaa',
+ 'Edit Department' => 'Muokkaa toimipistettä',
+ 'Edit GIFI' => 'Muokkaa GIFI',
+ 'Edit Language' => 'Muokkaa kieltä',
+ 'Edit Preferences for' => 'Muokkaa asetuksia',
+ 'Edit Template' => 'Muokkaa mallia',
+ 'Edit Warehouse' => 'Muokkaa varastoa',
+ 'Employee Number' => 'Työntekijän numero',
+ 'Enforce transaction reversal for all dates' => 'Pakota muunnos kaikille viennille',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Merkitse käyttämäsi valuutat 3 kirjaimella ja erota ne kaksoispisteellä, esim.(EUR:USD:SEK).',
+ 'Equity' => 'Oma pääoma',
+ 'Expense' => 'Meno',
+ 'Expense/Asset' => 'Meno/Varat',
+ 'Fax' => 'Faksi',
+ 'Foreign Exchange Gain' => 'Vaihtokurssivoitto',
+ 'Foreign Exchange Loss' => 'Vaihtokurssitappio',
+ 'GIFI' => 'GIFI',
+ 'GIFI deleted!' => 'GIFI poistettu!',
+ 'GIFI missing!' => 'GIFI puuttuu!',
+ 'GIFI saved!' => 'GIFI tallennettu!',
+ 'GL Transaction' => 'Pääkirjavienti',
+ 'Heading' => 'Otsikko',
+ 'ID' => 'ID',
+ 'Include in drop-down menus' => 'Sisällytä pudotusvalikoihin',
+ 'Income' => 'Tulo',
+ 'Inventory' => 'Varasto',
+ 'Invoice' => 'Lasku',
+ 'Is this a summary account to record' => 'Onko tämä tallennettava yhteenvetotili?',
+ 'Language' => 'Kieli',
+ 'Language deleted!' => 'Kieli tuhottu',
+ 'Language saved!' => 'Kieli tallennettu',
+ 'Languages' => 'Kielet',
+ 'Last Numbers & Default Accounts' => 'Edelliset numerot ja oletustilit',
+ 'Liability' => 'Vastattavaa',
+ 'Licensed to' => 'Lisenssin omistaja',
+ 'Link' => 'Linkki',
+ 'Menu Width' => 'Valikon leveys',
+ 'Method' => 'Tapa',
+ 'Month' => 'Kuukausi',
+ 'Name' => 'Nimi',
+ 'No' => 'Ei',
+ 'No email address for' => 'Sähköpostiosoite puuttuu',
+ 'Number' => 'Numero',
+ 'Number Format' => 'Numeron muoto',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Pakkauslista',
+ 'Password' => 'Salasana',
+ 'Password does not match!' => 'Salasana ei täsmää!',
+ 'Payables' => 'Maksettavaa',
+ 'Payment' => 'Maksu',
+ 'Phone' => 'Puhelin',
+ 'Postscript' => 'Postscript',
+ 'Preferences saved!' => 'Asetukset tallennettu!',
+ 'Print' => 'Tulosta',
+ 'Printer' => 'Tulostin',
+ 'Purchase Order' => 'Ostotilaus',
+ 'Purchase Order Number' => 'Ostotilausnumero',
+ 'Purchase Orders' => 'Ostotilaukset',
+ 'RFQ Number' => 'Tarjouspyynnön numero',
+ 'Rate' => 'Kurssi',
+ 'Receivables' => 'Saamiset',
+ 'Reference' => 'Viite',
+ 'Retained Earnings' => 'Käyttörahasto\jakamaton voitto',
+ 'SIC deleted!' => 'SIC poistettu!',
+ 'SIC saved!' => 'SIC tallennettu!',
+ 'Sales Invoice' => 'Myyntilasku',
+ 'Sales Order' => 'Tilausvahvistus',
+ 'Sales Order Number' => 'Tilausvahvistuksen numero',
+ 'Sales Orders' => 'Tilausvahvistukset',
+ 'Save' => 'Tallenna',
+ 'Save as new' => 'Tallenna uutena',
+ 'Session Timeout' => 'Yhteys aikakatkaistu',
+ 'Signature' => 'Allekirjoitus',
+ 'Stylesheet' => 'Tyylitiedosto',
+ 'System Defaults' => 'Järjestelmän oletukset',
+ 'Tax' => 'Vero',
+ 'Template saved!' => 'Malli tallennettu',
+ 'Transaction' => 'Vienti',
+ 'Transaction reversal enforced for all dates' => 'Kirjaukset muunnettu kaikille päiväyksille',
+ 'Transaction reversal enforced up to' => 'Kirjaukset muunnnettu hetkeen ',
+ 'Type of Business' => 'Toimialan luokitus',
+ 'Update' => 'Päivitä',
+ 'User' => 'Käyttäjä',
+ 'Vendor Invoice' => 'Ostolasku',
+ 'Vendor Number' => 'Toimittajanumero',
+ 'Version' => 'Versio',
+ 'Warehouse deleted!' => 'Varasto poistettu',
+ 'Warehouse saved!' => 'Varasto tallennettu',
+ 'Warehouses' => 'Varastot',
+ 'Weight Unit' => 'Painoyksikkö',
+ 'Work Order' => 'Työtilaus',
+ 'Year' => 'Vuosi',
+ 'Yearend' => 'Tilinpäätös',
+ 'Yearend date missing!' => 'Tilikauden päätöspäivä puuttuu',
+ 'Yearend posted!' => 'Tilinpäätös kirjattu',
+ 'Yearend posting failed!' => 'Tilinpäätöksen kirjaus epäonnistui!',
+ 'Yes' => 'Kyllä',
+ 'account cannot be set to any other type of account' => 'tilityyppiä ei voi muuttaa',
+ 'done' => 'valmis',
+ 'localhost' => 'paikallinen tietokone',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'lisää_tili' => 'add_account',
+ 'lisää_toimiala' => 'add_business',
+ 'lisää_toimipiste' => 'add_department',
+ 'lisää_kieli' => 'add_language',
+ 'lisää_sic' => 'add_sic',
+ 'lisää_varasto' => 'add_warehouse',
+ 'jatka' => 'continue',
+ 'kopioi_tilikarttaan' => 'copy_to_coa',
+ 'poista' => 'delete',
+ 'muokkaa' => 'edit',
+ 'muokkaa_tiliä' => 'edit_account',
+ 'tallenna' => 'save',
+ 'tallenna_uutena' => 'save_as_new',
+ 'päivitä' => 'update',
+};
+
+1;
+
diff --git a/locale/fi/ap b/locale/fi/ap
new file mode 100755
index 00000000..18f4c5fe
--- /dev/null
+++ b/locale/fi/ap
@@ -0,0 +1,205 @@
+$self{texts} = {
+ 'AP Transaction' => 'Ostotapahtuma',
+ 'AP Transactions' => 'Ostotapahtumat',
+ 'AR Transaction' => 'Myyntitapahtuma',
+ 'AR Transactions' => 'Myyntitapahtumat',
+ 'Account' => 'Tili',
+ 'Accounting Menu' => 'Kirjanpitovalikko',
+ 'Add AP Transaction' => 'Lisää ostotapahtuma',
+ 'Add AR Transaction' => 'Lisää myyntitapahtuma',
+ 'Address' => 'Osoite',
+ 'Amount' => 'Summa',
+ 'Amount Due' => 'Erääntyvä summa',
+ 'Apr' => 'Huh',
+ 'April' => 'Huhtikuu',
+ 'Are you sure you want to delete Transaction' => 'Haluatko poistaa viennin',
+ 'Aug' => 'Elo',
+ 'August' => 'Elokuu',
+ 'Bcc' => 'Näkymätön kopio',
+ 'Cannot delete transaction!' => 'Vientiä ei voi poistaa!',
+ 'Cannot post payment for a closed period!' => 'Maksun kirjaus suljetulle ajanjaksolle kielletty!',
+ 'Cannot post transaction for a closed period!' => 'Viennin kirjaus suljetulle ajanjaksolle kielletty!',
+ 'Cannot post transaction!' => 'Vientiä ei voi kirjata',
+ 'Cc' => 'Kopio',
+ 'Check' => 'Sekki',
+ 'Closed' => 'Suljettu',
+ 'Confirm!' => 'Vahvista!',
+ 'Continue' => 'Jatka',
+ 'Credit' => 'Kredit',
+ 'Credit Limit' => 'Luottoraja',
+ 'Curr' => 'Valuutta',
+ 'Currency' => 'Valuutta',
+ 'Current' => 'Erääntyy',
+ 'Customer' => 'Asiakas',
+ 'Customer missing!' => 'Asiakas puuttuu!',
+ 'Customer not on file!' => 'Asiakas ei järjestelmässä!',
+ 'Date' => 'Päiväys',
+ 'Date Paid' => 'Maksupäivä',
+ 'Debit' => 'Debet',
+ 'Dec' => 'Jou',
+ 'December' => 'Joulukuu',
+ 'Delete' => 'Poista',
+ 'Department' => 'Toimipiste',
+ 'Description' => 'Kuvaus',
+ 'Detail' => 'Yksityiskohdat',
+ 'Due Date' => 'Eräpäivä',
+ 'Due Date missing!' => 'Eräpäivä puuttuu!',
+ 'E-mail' => 'Sähköposti',
+ 'Edit AP Transaction' => 'Muokkaa ostotapahtumaa',
+ 'Edit AR Transaction' => 'Muokkaa myyntitapahtumaa',
+ 'Employee' => 'Työntekijä',
+ 'Exch' => 'Vaihtokurssi',
+ 'Exchange Rate' => 'Vaihtokurssi',
+ 'Exchange rate for payment missing!' => 'Maksun vaihtokurssi puuttuu',
+ 'Exchange rate missing!' => 'Vaihtokurssi puuttuu',
+ 'Feb' => 'Hel',
+ 'February' => 'Helmikuu',
+ 'From' => 'Alkaen',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Sisällytä raporttiin',
+ 'Invoice' => 'Lasku',
+ 'Invoice Date' => 'Laskun päiväys',
+ 'Invoice Date missing!' => 'Laskun päiväys puuttuu!',
+ 'Invoice Number' => 'Laskun numero',
+ 'Jan' => 'Tam',
+ 'January' => 'Tammikuu',
+ 'Jul' => 'Hei',
+ 'July' => 'Heinäkuu',
+ 'Jun' => 'Kes',
+ 'June' => 'Kesäkuu',
+ 'Manager' => 'Johtaja',
+ 'Mar' => 'Maa',
+ 'March' => 'Maaliskuu',
+ 'May' => 'Tou',
+ 'May ' => 'Toukokuu',
+ 'Message' => 'Viesti',
+ 'Month' => 'Kuukausi',
+ 'No.' => 'no',
+ 'Notes' => 'Lisätietoja',
+ 'Nothing to print!' => 'Ei tulostettavaa!',
+ 'Nov' => 'Mar',
+ 'November' => 'Marraskuu',
+ 'Number' => 'Numero',
+ 'Oct' => 'Lok',
+ 'October' => 'Lokakuu',
+ 'Open' => 'Avoinna',
+ 'Order' => 'Tilaus',
+ 'Order Number' => 'Tilausnumero',
+ 'PDF' => 'PDF',
+ 'Paid' => 'Maksettu',
+ 'Payment date missing!' => 'Maksupäivä puuttuu!',
+ 'Payments' => 'Maksut',
+ 'Period' => 'Ajanjakso',
+ 'Post' => 'Kirjaa',
+ 'Post as new' => 'Kirjaa uutena',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Tulosta',
+ 'Print and Post' => 'Tulosta ja kirjaa',
+ 'Printed' => 'Tulostettu',
+ 'Project' => 'Projekti',
+ 'Project not on file!' => 'Projekti ei ole järjestelmässä!',
+ 'Quarter' => 'Neljännes',
+ 'Receipt' => 'Kuitti',
+ 'Reference' => 'Viite',
+ 'Remaining' => 'Jäljellä',
+ 'Sales Invoice.' => 'Myyntilasku.',
+ 'Salesperson' => 'Myyjä',
+ 'Screen' => 'Näyttö',
+ 'Select from one of the names below' => 'Valitse yksi nimi alapuolelta',
+ 'Select from one of the projects below' => 'Valitse yksi projekti alapuolelta',
+ 'Select payment' => 'Valitse maksutapa',
+ 'Select postscript or PDF!' => 'Valitse postscript tai PDF!',
+ 'Sep' => 'Syy',
+ 'September' => 'Syyskuu',
+ 'Ship to' => 'Toimitusosoite',
+ 'Ship via' => 'Välipiste',
+ 'Source' => 'Lähde',
+ 'Startdate' => 'Aloituspäivä',
+ 'Subject' => 'Aihe',
+ 'Subtotal' => 'Välisumma',
+ 'Summary' => 'Kooste',
+ 'Tax' => 'Vero',
+ 'Tax Included' => 'ALV sisältyy',
+ 'To' => 'Hetkeen',
+ 'Total' => 'Yhteensä',
+ 'Transaction' => 'Vienti',
+ 'Transaction deleted!' => 'Vienti poistettu!',
+ 'Transaction posted!' => 'Vienti kirjattu!',
+ 'Update' => 'Päivitä',
+ 'Vendor' => 'Toimittaja',
+ 'Vendor Invoice.' => 'Ostolasku.',
+ 'Vendor missing!' => 'Toimittaja puuttuu!',
+ 'Vendor not on file!' => 'Toimittajaa ei järjestelmässä!',
+ 'Warning!' => 'Varoitus!',
+ 'Year' => 'Vuosi',
+ 'Yes' => 'Kyllä',
+ 'sent' => 'lähetetty',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'ostotapahtuma' => 'ap_transaction',
+ 'myyntitapahtuma' => 'ar_transaction',
+ 'jatka' => 'continue',
+ 'poista' => 'delete',
+ 'kirjaa' => 'post',
+ 'kirjaa_uutena' => 'post_as_new',
+ 'tulosta' => 'print',
+ 'tulosta_ja_kirjaa' => 'print_and_post',
+ 'myyntilasku_' => 'sales_invoice_',
+ 'toimitusosoite' => 'ship_to',
+ 'päivitä' => 'update',
+ 'ostolasku_' => 'vendor_invoice_',
+ 'kyllä' => 'yes',
+};
+
+1;
+
diff --git a/locale/fi/ar b/locale/fi/ar
new file mode 100755
index 00000000..18f4c5fe
--- /dev/null
+++ b/locale/fi/ar
@@ -0,0 +1,205 @@
+$self{texts} = {
+ 'AP Transaction' => 'Ostotapahtuma',
+ 'AP Transactions' => 'Ostotapahtumat',
+ 'AR Transaction' => 'Myyntitapahtuma',
+ 'AR Transactions' => 'Myyntitapahtumat',
+ 'Account' => 'Tili',
+ 'Accounting Menu' => 'Kirjanpitovalikko',
+ 'Add AP Transaction' => 'Lisää ostotapahtuma',
+ 'Add AR Transaction' => 'Lisää myyntitapahtuma',
+ 'Address' => 'Osoite',
+ 'Amount' => 'Summa',
+ 'Amount Due' => 'Erääntyvä summa',
+ 'Apr' => 'Huh',
+ 'April' => 'Huhtikuu',
+ 'Are you sure you want to delete Transaction' => 'Haluatko poistaa viennin',
+ 'Aug' => 'Elo',
+ 'August' => 'Elokuu',
+ 'Bcc' => 'Näkymätön kopio',
+ 'Cannot delete transaction!' => 'Vientiä ei voi poistaa!',
+ 'Cannot post payment for a closed period!' => 'Maksun kirjaus suljetulle ajanjaksolle kielletty!',
+ 'Cannot post transaction for a closed period!' => 'Viennin kirjaus suljetulle ajanjaksolle kielletty!',
+ 'Cannot post transaction!' => 'Vientiä ei voi kirjata',
+ 'Cc' => 'Kopio',
+ 'Check' => 'Sekki',
+ 'Closed' => 'Suljettu',
+ 'Confirm!' => 'Vahvista!',
+ 'Continue' => 'Jatka',
+ 'Credit' => 'Kredit',
+ 'Credit Limit' => 'Luottoraja',
+ 'Curr' => 'Valuutta',
+ 'Currency' => 'Valuutta',
+ 'Current' => 'Erääntyy',
+ 'Customer' => 'Asiakas',
+ 'Customer missing!' => 'Asiakas puuttuu!',
+ 'Customer not on file!' => 'Asiakas ei järjestelmässä!',
+ 'Date' => 'Päiväys',
+ 'Date Paid' => 'Maksupäivä',
+ 'Debit' => 'Debet',
+ 'Dec' => 'Jou',
+ 'December' => 'Joulukuu',
+ 'Delete' => 'Poista',
+ 'Department' => 'Toimipiste',
+ 'Description' => 'Kuvaus',
+ 'Detail' => 'Yksityiskohdat',
+ 'Due Date' => 'Eräpäivä',
+ 'Due Date missing!' => 'Eräpäivä puuttuu!',
+ 'E-mail' => 'Sähköposti',
+ 'Edit AP Transaction' => 'Muokkaa ostotapahtumaa',
+ 'Edit AR Transaction' => 'Muokkaa myyntitapahtumaa',
+ 'Employee' => 'Työntekijä',
+ 'Exch' => 'Vaihtokurssi',
+ 'Exchange Rate' => 'Vaihtokurssi',
+ 'Exchange rate for payment missing!' => 'Maksun vaihtokurssi puuttuu',
+ 'Exchange rate missing!' => 'Vaihtokurssi puuttuu',
+ 'Feb' => 'Hel',
+ 'February' => 'Helmikuu',
+ 'From' => 'Alkaen',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Sisällytä raporttiin',
+ 'Invoice' => 'Lasku',
+ 'Invoice Date' => 'Laskun päiväys',
+ 'Invoice Date missing!' => 'Laskun päiväys puuttuu!',
+ 'Invoice Number' => 'Laskun numero',
+ 'Jan' => 'Tam',
+ 'January' => 'Tammikuu',
+ 'Jul' => 'Hei',
+ 'July' => 'Heinäkuu',
+ 'Jun' => 'Kes',
+ 'June' => 'Kesäkuu',
+ 'Manager' => 'Johtaja',
+ 'Mar' => 'Maa',
+ 'March' => 'Maaliskuu',
+ 'May' => 'Tou',
+ 'May ' => 'Toukokuu',
+ 'Message' => 'Viesti',
+ 'Month' => 'Kuukausi',
+ 'No.' => 'no',
+ 'Notes' => 'Lisätietoja',
+ 'Nothing to print!' => 'Ei tulostettavaa!',
+ 'Nov' => 'Mar',
+ 'November' => 'Marraskuu',
+ 'Number' => 'Numero',
+ 'Oct' => 'Lok',
+ 'October' => 'Lokakuu',
+ 'Open' => 'Avoinna',
+ 'Order' => 'Tilaus',
+ 'Order Number' => 'Tilausnumero',
+ 'PDF' => 'PDF',
+ 'Paid' => 'Maksettu',
+ 'Payment date missing!' => 'Maksupäivä puuttuu!',
+ 'Payments' => 'Maksut',
+ 'Period' => 'Ajanjakso',
+ 'Post' => 'Kirjaa',
+ 'Post as new' => 'Kirjaa uutena',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Tulosta',
+ 'Print and Post' => 'Tulosta ja kirjaa',
+ 'Printed' => 'Tulostettu',
+ 'Project' => 'Projekti',
+ 'Project not on file!' => 'Projekti ei ole järjestelmässä!',
+ 'Quarter' => 'Neljännes',
+ 'Receipt' => 'Kuitti',
+ 'Reference' => 'Viite',
+ 'Remaining' => 'Jäljellä',
+ 'Sales Invoice.' => 'Myyntilasku.',
+ 'Salesperson' => 'Myyjä',
+ 'Screen' => 'Näyttö',
+ 'Select from one of the names below' => 'Valitse yksi nimi alapuolelta',
+ 'Select from one of the projects below' => 'Valitse yksi projekti alapuolelta',
+ 'Select payment' => 'Valitse maksutapa',
+ 'Select postscript or PDF!' => 'Valitse postscript tai PDF!',
+ 'Sep' => 'Syy',
+ 'September' => 'Syyskuu',
+ 'Ship to' => 'Toimitusosoite',
+ 'Ship via' => 'Välipiste',
+ 'Source' => 'Lähde',
+ 'Startdate' => 'Aloituspäivä',
+ 'Subject' => 'Aihe',
+ 'Subtotal' => 'Välisumma',
+ 'Summary' => 'Kooste',
+ 'Tax' => 'Vero',
+ 'Tax Included' => 'ALV sisältyy',
+ 'To' => 'Hetkeen',
+ 'Total' => 'Yhteensä',
+ 'Transaction' => 'Vienti',
+ 'Transaction deleted!' => 'Vienti poistettu!',
+ 'Transaction posted!' => 'Vienti kirjattu!',
+ 'Update' => 'Päivitä',
+ 'Vendor' => 'Toimittaja',
+ 'Vendor Invoice.' => 'Ostolasku.',
+ 'Vendor missing!' => 'Toimittaja puuttuu!',
+ 'Vendor not on file!' => 'Toimittajaa ei järjestelmässä!',
+ 'Warning!' => 'Varoitus!',
+ 'Year' => 'Vuosi',
+ 'Yes' => 'Kyllä',
+ 'sent' => 'lähetetty',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'ostotapahtuma' => 'ap_transaction',
+ 'myyntitapahtuma' => 'ar_transaction',
+ 'jatka' => 'continue',
+ 'poista' => 'delete',
+ 'kirjaa' => 'post',
+ 'kirjaa_uutena' => 'post_as_new',
+ 'tulosta' => 'print',
+ 'tulosta_ja_kirjaa' => 'print_and_post',
+ 'myyntilasku_' => 'sales_invoice_',
+ 'toimitusosoite' => 'ship_to',
+ 'päivitä' => 'update',
+ 'ostolasku_' => 'vendor_invoice_',
+ 'kyllä' => 'yes',
+};
+
+1;
+
diff --git a/locale/fi/arap b/locale/fi/arap
new file mode 100755
index 00000000..81e8841d
--- /dev/null
+++ b/locale/fi/arap
@@ -0,0 +1,51 @@
+$self{texts} = {
+ 'Address' => 'Osoite',
+ 'Bcc' => 'Näkymätön kopio',
+ 'Cc' => 'Kopio',
+ 'Continue' => 'Jatka',
+ 'Customer not on file!' => 'Asiakas ei järjestelmässä!',
+ 'Date' => 'Päiväys',
+ 'Description' => 'Kuvaus',
+ 'E-mail' => 'Sähköposti',
+ 'Message' => 'Viesti',
+ 'Number' => 'Numero',
+ 'Print' => 'Tulosta',
+ 'Project not on file!' => 'Projekti ei ole järjestelmässä!',
+ 'Reference' => 'Viite',
+ 'Select from one of the names below' => 'Valitse yksi nimi alapuolelta',
+ 'Select from one of the projects below' => 'Valitse yksi projekti alapuolelta',
+ 'Startdate' => 'Aloituspäivä',
+ 'Subject' => 'Aihe',
+ 'To' => 'Hetkeen',
+ 'Vendor not on file!' => 'Toimittajaa ei järjestelmässä!',
+ 'Warning!' => 'Varoitus!',
+ 'sent' => 'lähetetty',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'jatka' => 'continue',
+};
+
+1;
+
diff --git a/locale/fi/arapprn b/locale/fi/arapprn
new file mode 100755
index 00000000..363d130e
--- /dev/null
+++ b/locale/fi/arapprn
@@ -0,0 +1,31 @@
+$self{texts} = {
+ 'Account' => 'Tili',
+ 'Amount' => 'Summa',
+ 'Continue' => 'Jatka',
+ 'Date' => 'Päiväys',
+ 'Nothing to print!' => 'Ei tulostettavaa!',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'Postscript',
+ 'Printed' => 'Tulostettu',
+ 'Screen' => 'Näyttö',
+ 'Select payment' => 'Valitse maksutapa',
+ 'Select postscript or PDF!' => 'Valitse postscript tai PDF!',
+ 'Source' => 'Lähde',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'jatka' => 'continue',
+};
+
+1;
+
diff --git a/locale/fi/bp b/locale/fi/bp
new file mode 100755
index 00000000..12f614f0
--- /dev/null
+++ b/locale/fi/bp
@@ -0,0 +1,63 @@
+$self{texts} = {
+ 'Account' => 'Tili',
+ 'Accounting Menu' => 'Kirjanpitovalikko',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Haluatko poistaa merkityt kentät listasta?',
+ 'Cannot remove files!' => 'Tiedostojen poisto ei onnistu!',
+ 'Confirm!' => 'Vahvista!',
+ 'Continue' => 'Jatka',
+ 'Current' => 'Erääntyy',
+ 'Customer' => 'Asiakas',
+ 'Date' => 'Päiväys',
+ 'Employee' => 'Työntekijä',
+ 'From' => 'Alkaen',
+ 'ID' => 'ID',
+ 'Invoice' => 'Lasku',
+ 'Invoice Number' => 'Laskun numero',
+ 'Marked entries printed!' => 'Valitut kentät tulostettu',
+ 'Month' => 'Kuukausi',
+ 'Order' => 'Tilaus',
+ 'Order Number' => 'Tilausnumero',
+ 'Packing Lists' => 'Pakkauslistat',
+ 'Period' => 'Ajanjakso',
+ 'Print' => 'Tulosta',
+ 'Purchase Orders' => 'Ostotilaukset',
+ 'Quarter' => 'Neljännes',
+ 'Quotation' => 'Tarjous',
+ 'Quotation Number' => 'Tarjousnumero',
+ 'Quotations' => 'Tarjoukset',
+ 'RFQs' => 'Tarjouspyynnöt',
+ 'Remove' => 'Poista',
+ 'Removed spoolfiles!' => 'Spool-tiedostot poistettu',
+ 'Sales Invoices' => 'Myyntilaskut',
+ 'Sales Orders' => 'Tilausvahvistukset',
+ 'Select all' => 'Valitse kaikki',
+ 'To' => 'Hetkeen',
+ 'Vendor' => 'Toimittaja',
+ 'Work Orders' => 'Työtilaukset',
+ 'Year' => 'Vuosi',
+ 'Yes' => 'Kyllä',
+ 'done' => 'valmis',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'jatka' => 'continue',
+ 'tulosta' => 'print',
+ 'poista' => 'remove',
+ 'valitse_kaikki' => 'select_all',
+ 'kyllä' => 'yes',
+};
+
+1;
+
diff --git a/locale/fi/ca b/locale/fi/ca
new file mode 100755
index 00000000..b2d295b7
--- /dev/null
+++ b/locale/fi/ca
@@ -0,0 +1,58 @@
+$self{texts} = {
+ 'Account' => 'Tili',
+ 'Apr' => 'Huh',
+ 'April' => 'Huhtikuu',
+ 'Aug' => 'Elo',
+ 'August' => 'Elokuu',
+ 'Balance' => 'Tase',
+ 'Chart of Accounts' => 'Tilikartta',
+ 'Credit' => 'Kredit',
+ 'Current' => 'Erääntyy',
+ 'Date' => 'Päiväys',
+ 'Debit' => 'Debet',
+ 'Dec' => 'Jou',
+ 'December' => 'Joulukuu',
+ 'Department' => 'Toimipiste',
+ 'Description' => 'Kuvaus',
+ 'Feb' => 'Hel',
+ 'February' => 'Helmikuu',
+ 'From' => 'Alkaen',
+ 'GIFI' => 'GIFI',
+ 'Include in Report' => 'Sisällytä raporttiin',
+ 'Jan' => 'Tam',
+ 'January' => 'Tammikuu',
+ 'Jul' => 'Hei',
+ 'July' => 'Heinäkuu',
+ 'Jun' => 'Kes',
+ 'June' => 'Kesäkuu',
+ 'List Transactions' => 'Listaa viennit',
+ 'Mar' => 'Maa',
+ 'March' => 'Maaliskuu',
+ 'May' => 'Tou',
+ 'May ' => 'Toukokuu',
+ 'Month' => 'Kuukausi',
+ 'Nov' => 'Mar',
+ 'November' => 'Marraskuu',
+ 'Oct' => 'Lok',
+ 'October' => 'Lokakuu',
+ 'Period' => 'Ajanjakso',
+ 'Project Number' => 'Projektinumero',
+ 'Quarter' => 'Neljännes',
+ 'Reference' => 'Viite',
+ 'Sep' => 'Syy',
+ 'September' => 'Syyskuu',
+ 'Subtotal' => 'Välisumma',
+ 'To' => 'Hetkeen',
+ 'Year' => 'Vuosi',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'listaa_viennit' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/fi/cp b/locale/fi/cp
new file mode 100755
index 00000000..595c8404
--- /dev/null
+++ b/locale/fi/cp
@@ -0,0 +1,120 @@
+$self{texts} = {
+ 'AP' => 'Ostot',
+ 'AR' => 'Myynnit',
+ 'Account' => 'Tili',
+ 'Accounting Menu' => 'Kirjanpitovalikko',
+ 'Address' => 'Osoite',
+ 'All' => 'Kaikki',
+ 'Amount' => 'Summa',
+ 'Amount Due' => 'Erääntyvä summa',
+ 'Bcc' => 'Näkymätön kopio',
+ 'Cannot post payment for a closed period!' => 'Maksun kirjaus suljetulle ajanjaksolle kielletty!',
+ 'Cc' => 'Kopio',
+ 'Continue' => 'Jatka',
+ 'Currency' => 'Valuutta',
+ 'Customer' => 'Asiakas',
+ 'Customer not on file!' => 'Asiakas ei järjestelmässä!',
+ 'Date' => 'Päiväys',
+ 'Date missing!' => 'Päiväys puuttuu',
+ 'Department' => 'Toimipiste',
+ 'Deposit' => 'Rahatallennus',
+ 'Description' => 'Kuvaus',
+ 'Due Date' => 'Eräpäivä',
+ 'E-mail' => 'Sähköposti',
+ 'Exchange Rate' => 'Vaihtokurssi',
+ 'Exchange rate missing!' => 'Vaihtokurssi puuttuu',
+ 'From' => 'Alkaen',
+ 'Invoice' => 'Lasku',
+ 'Invoices' => 'Laskut',
+ 'Language' => 'Kieli',
+ 'Message' => 'Viesti',
+ 'Number' => 'Numero',
+ 'PDF' => 'PDF',
+ 'Payment' => 'Maksu',
+ 'Payment posted!' => 'Maksu kirjattu!',
+ 'Payments' => 'Maksut',
+ 'Post' => 'Kirjaa',
+ 'Postscript' => 'Postscript',
+ 'Prepayment' => 'Ennakkomaksu',
+ 'Print' => 'Tulosta',
+ 'Project not on file!' => 'Projekti ei ole järjestelmässä!',
+ 'Receipt' => 'Kuitti',
+ 'Receipt posted!' => 'Kuitti kirjattu',
+ 'Receipts' => 'Kuitit',
+ 'Reference' => 'Viite',
+ 'Screen' => 'Näyttö',
+ 'Select' => 'Valitse',
+ 'Select all' => 'Valitse kaikki',
+ 'Select from one of the names below' => 'Valitse yksi nimi alapuolelta',
+ 'Select from one of the projects below' => 'Valitse yksi projekti alapuolelta',
+ 'Select postscript or PDF!' => 'Valitse postscript tai PDF!',
+ 'Source' => 'Lähde',
+ 'Startdate' => 'Aloituspäivä',
+ 'Subject' => 'Aihe',
+ 'To' => 'Hetkeen',
+ 'Update' => 'Päivitä',
+ 'Vendor' => 'Toimittaja',
+ 'Vendor not on file!' => 'Toimittajaa ei järjestelmässä!',
+ 'Warning!' => 'Varoitus!',
+ 'sent' => 'lähetetty',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'jatka' => 'continue',
+ 'kirjaa' => 'post',
+ 'tulosta' => 'print',
+ 'valitse_kaikki' => 'select_all',
+ 'päivitä' => 'update',
+};
+
+1;
+
diff --git a/locale/fi/ct b/locale/fi/ct
new file mode 100755
index 00000000..333d647e
--- /dev/null
+++ b/locale/fi/ct
@@ -0,0 +1,172 @@
+$self{texts} = {
+ 'AP Transaction' => 'Ostotapahtuma',
+ 'AP Transactions' => 'Ostotapahtumat',
+ 'AR Transaction' => 'Myyntitapahtuma',
+ 'AR Transactions' => 'Myyntitapahtumat',
+ 'Accounting Menu' => 'Kirjanpitovalikko',
+ 'Active' => 'Avoin',
+ 'Add Customer' => 'Lisää asiakas',
+ 'Add Vendor' => 'Lisää toimittaja',
+ 'Address' => 'Osoite',
+ 'All' => 'Kaikki',
+ 'Amount' => 'Summa',
+ 'Bcc' => 'Näkymätön kopio',
+ 'Billing Address' => 'Laskutusosoite',
+ 'Cannot delete customer!' => 'Asiakasta ei voi poistaa!',
+ 'Cannot delete vendor!' => 'Toimittajaa ei voi poistaa!',
+ 'Cc' => 'Kopio',
+ 'City' => 'Kaupunki',
+ 'Closed' => 'Suljettu',
+ 'Company Name' => 'Yrityksen nimi',
+ 'Contact' => 'Yhteyshenkilö',
+ 'Continue' => 'Jatka',
+ 'Cost' => 'Hinta',
+ 'Country' => 'Maa',
+ 'Credit Limit' => 'Luottoraja',
+ 'Curr' => 'Valuutta',
+ 'Currency' => 'Valuutta',
+ 'Customer History' => 'Asiakashistoria',
+ 'Customer Number' => 'Asiakasnumero',
+ 'Customer deleted!' => 'Asiakas poistettu!',
+ 'Customer saved!' => 'Asiakas tallennettu!',
+ 'Customers' => 'Asiakkaat',
+ 'Delete' => 'Poista',
+ 'Delivery Date' => 'Toimituspäivä',
+ 'Description' => 'Kuvaus',
+ 'Detail' => 'Yksityiskohdat',
+ 'Discount' => 'Alennus',
+ 'E-mail' => 'Sähköposti',
+ 'Edit Customer' => 'Muokkaa asiakasta',
+ 'Edit Vendor' => 'Muokkaa myyjää',
+ 'Employee' => 'Työntekijä',
+ 'Enddate' => 'Päättymispäivä',
+ 'Fax' => 'Faksi',
+ 'From' => 'Alkaen',
+ 'GIFI' => 'GIFI',
+ 'Group' => 'Ryhmä',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Sisällytä raporttiin',
+ 'Invoice' => 'Lasku',
+ 'Item not on file!' => 'Nimikettä ei ole järjestelmässä!',
+ 'Language' => 'Kieli',
+ 'Manager' => 'Johtaja',
+ 'Name' => 'Nimi',
+ 'Name missing!' => 'Nimi puuttuu!',
+ 'No.' => 'no',
+ 'Notes' => 'Lisätietoja',
+ 'Number' => 'Numero',
+ 'Open' => 'Avoinna',
+ 'Order' => 'Tilaus',
+ 'Orphaned' => 'Hylätyt',
+ 'Phone' => 'Puhelin',
+ 'Pricegroup' => 'Hintaryhmä',
+ 'Pricelist' => 'Hintalista',
+ 'Project Number' => 'Projektinumero',
+ 'Purchase Order' => 'Ostotilaus',
+ 'Purchase Orders' => 'Ostotilaukset',
+ 'Qty' => 'Määrä',
+ 'Quotation' => 'Tarjous',
+ 'Quotations' => 'Tarjoukset',
+ 'RFQ' => 'Tarjouspyyntö',
+ 'Request for Quotations' => 'Tarjouspyynnöt',
+ 'Sales Invoice' => 'Myyntilasku',
+ 'Sales Invoices' => 'Myyntilaskut',
+ 'Sales Order' => 'Tilausvahvistus',
+ 'Sales Orders' => 'Tilausvahvistukset',
+ 'Salesperson' => 'Myyjä',
+ 'Save' => 'Tallenna',
+ 'Save as new' => 'Tallenna uutena',
+ 'Search' => 'Etsi',
+ 'Sell Price' => 'Myyntihinta',
+ 'Serial Number' => 'Sarjanumero',
+ 'Startdate' => 'Aloituspäivä',
+ 'State' => 'Lääni',
+ 'State/Province' => 'Lääni',
+ 'Subtotal' => 'Välisumma',
+ 'Summary' => 'Kooste',
+ 'Tax' => 'Vero',
+ 'Tax Included' => 'ALV sisältyy',
+ 'Tax Number' => 'Veronumero',
+ 'Tax Number / SSN' => 'Veronumero / SSN',
+ 'Taxable' => 'Verotettavaa',
+ 'Terms' => 'Maksuehto',
+ 'To' => 'Hetkeen',
+ 'Total' => 'Yhteensä',
+ 'Type of Business' => 'Toimialan luokitus',
+ 'Unit' => 'Yksikkö',
+ 'Update' => 'Päivitä',
+ 'Vendor History' => 'Toimittajahistoria',
+ 'Vendor Invoice' => 'Ostolasku',
+ 'Vendor Invoices' => 'Ostolaskut',
+ 'Vendor Number' => 'Toimittajanumero',
+ 'Vendor deleted!' => 'Toimittaja poistettu!',
+ 'Vendor saved!' => 'Toimittaja tallennettu!',
+ 'Vendors' => 'Toimittajat',
+ 'Zip/Postal Code' => 'Postinumero',
+ 'days' => 'päivää',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'ostotapahtuma' => 'ap_transaction',
+ 'myyntitapahtuma' => 'ar_transaction',
+ 'lisää_asiakas' => 'add_customer',
+ 'lisää_toimittaja' => 'add_vendor',
+ 'jatka' => 'continue',
+ 'poista' => 'delete',
+ 'hintalista' => 'pricelist',
+ 'ostotilaus' => 'purchase_order',
+ 'tarjous' => 'quotation',
+ 'tarjouspyyntö' => 'rfq',
+ 'myyntilasku' => 'sales_invoice',
+ 'tilausvahvistus' => 'sales_order',
+ 'tallenna' => 'save',
+ 'tallenna_uutena' => 'save_as_new',
+ 'päivitä' => 'update',
+ 'ostolasku' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/fi/gl b/locale/fi/gl
new file mode 100755
index 00000000..584d34c3
--- /dev/null
+++ b/locale/fi/gl
@@ -0,0 +1,154 @@
+$self{texts} = {
+ 'AP Transaction' => 'Ostotapahtuma',
+ 'AR Transaction' => 'Myyntitapahtuma',
+ 'Account' => 'Tili',
+ 'Accounting Menu' => 'Kirjanpitovalikko',
+ 'Add Cash Transfer Transaction' => 'Lisää rahansiirtotapahtuma',
+ 'Add General Ledger Transaction' => 'Lisää pääkirjantapahtuma',
+ 'Address' => 'Osoite',
+ 'All' => 'Kaikki',
+ 'Amount' => 'Summa',
+ 'Apr' => 'Huh',
+ 'April' => 'Huhtikuu',
+ 'Are you sure you want to delete Transaction' => 'Haluatko poistaa viennin',
+ 'Asset' => 'Vastaavaa',
+ 'Aug' => 'Elo',
+ 'August' => 'Elokuu',
+ 'Balance' => 'Tase',
+ 'Bcc' => 'Näkymätön kopio',
+ 'Cannot delete transaction!' => 'Vientiä ei voi poistaa!',
+ 'Cannot post transaction for a closed period!' => 'Viennin kirjaus suljetulle ajanjaksolle kielletty!',
+ 'Cannot post transaction!' => 'Vientiä ei voi kirjata',
+ 'Cc' => 'Kopio',
+ 'Confirm!' => 'Vahvista!',
+ 'Continue' => 'Jatka',
+ 'Credit' => 'Kredit',
+ 'Current' => 'Erääntyy',
+ 'Customer not on file!' => 'Asiakas ei järjestelmässä!',
+ 'Date' => 'Päiväys',
+ 'Debit' => 'Debet',
+ 'Dec' => 'Jou',
+ 'December' => 'Joulukuu',
+ 'Delete' => 'Poista',
+ 'Department' => 'Toimipiste',
+ 'Description' => 'Kuvaus',
+ 'E-mail' => 'Sähköposti',
+ 'Edit General Ledger Transaction' => 'Muokkaa pääkirjavientiä',
+ 'Equity' => 'Oma pääoma',
+ 'Expense' => 'Meno',
+ 'Feb' => 'Hel',
+ 'February' => 'Helmikuu',
+ 'From' => 'Alkaen',
+ 'GIFI' => 'GIFI',
+ 'GL Transaction' => 'Pääkirjavienti',
+ 'General Ledger' => 'Pääkirja',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Sisällytä raporttiin',
+ 'Income' => 'Tulo',
+ 'Jan' => 'Tam',
+ 'January' => 'Tammikuu',
+ 'Jul' => 'Hei',
+ 'July' => 'Heinäkuu',
+ 'Jun' => 'Kes',
+ 'June' => 'Kesäkuu',
+ 'Liability' => 'Vastattavaa',
+ 'Mar' => 'Maa',
+ 'March' => 'Maaliskuu',
+ 'May' => 'Tou',
+ 'May ' => 'Toukokuu',
+ 'Message' => 'Viesti',
+ 'Month' => 'Kuukausi',
+ 'Notes' => 'Lisätietoja',
+ 'Nov' => 'Mar',
+ 'November' => 'Marraskuu',
+ 'Number' => 'Numero',
+ 'Oct' => 'Lok',
+ 'October' => 'Lokakuu',
+ 'Out of balance transaction!' => 'Viennin taseet eivät täsmää!',
+ 'Period' => 'Ajanjakso',
+ 'Post' => 'Kirjaa',
+ 'Post as new' => 'Kirjaa uutena',
+ 'Print' => 'Tulosta',
+ 'Project' => 'Projekti',
+ 'Project not on file!' => 'Projekti ei ole järjestelmässä!',
+ 'Quarter' => 'Neljännes',
+ 'Reference' => 'Viite',
+ 'Reports' => 'Raportit',
+ 'Sales Invoice ' => 'Myyntilasku ',
+ 'Select from one of the names below' => 'Valitse yksi nimi alapuolelta',
+ 'Select from one of the projects below' => 'Valitse yksi projekti alapuolelta',
+ 'Sep' => 'Syy',
+ 'September' => 'Syyskuu',
+ 'Source' => 'Lähde',
+ 'Startdate' => 'Aloituspäivä',
+ 'Subject' => 'Aihe',
+ 'Subtotal' => 'Välisumma',
+ 'To' => 'Hetkeen',
+ 'Transaction Date missing!' => 'Viennin päiväys puuttuu!',
+ 'Transaction deleted!' => 'Vienti poistettu!',
+ 'Transaction posted!' => 'Vienti kirjattu!',
+ 'Update' => 'Päivitä',
+ 'Vendor Invoice ' => 'Ostolasku ',
+ 'Vendor not on file!' => 'Toimittajaa ei järjestelmässä!',
+ 'Warning!' => 'Varoitus!',
+ 'Year' => 'Vuosi',
+ 'Yes' => 'Kyllä',
+ 'sent' => 'lähetetty',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'ostotapahtuma' => 'ap_transaction',
+ 'myyntitapahtuma' => 'ar_transaction',
+ 'jatka' => 'continue',
+ 'poista' => 'delete',
+ 'pääkirjavienti' => 'gl_transaction',
+ 'kirjaa' => 'post',
+ 'kirjaa_uutena' => 'post_as_new',
+ 'myyntilasku_' => 'sales_invoice_',
+ 'päivitä' => 'update',
+ 'ostolasku_' => 'vendor_invoice_',
+ 'kyllä' => 'yes',
+};
+
+1;
+
diff --git a/locale/fi/hr b/locale/fi/hr
new file mode 100755
index 00000000..683c6511
--- /dev/null
+++ b/locale/fi/hr
@@ -0,0 +1,98 @@
+$self{texts} = {
+ 'AP' => 'Ostot',
+ 'Above' => 'Edellä',
+ 'Accounting Menu' => 'Kirjanpitovalikko',
+ 'Active' => 'Avoin',
+ 'Add Employee' => 'Lisää työntekijä',
+ 'Address' => 'Osoite',
+ 'Administrator' => 'Pääkäyttäjä',
+ 'All' => 'Kaikki',
+ 'Amount' => 'Summa',
+ 'Amount missing!' => 'Summa puuttuu!',
+ 'Based on' => 'Perustuen',
+ 'City' => 'Kaupunki',
+ 'Continue' => 'Jatka',
+ 'Country' => 'Maa',
+ 'DOB' => 'Syntymäaika',
+ 'Delete' => 'Poista',
+ 'Description' => 'Kuvaus',
+ 'Description missing!' => 'Kuvaus puuttuu',
+ 'E-mail' => 'Sähköposti',
+ 'Edit Employee' => 'Muokkaa työntekijää',
+ 'Employee' => 'Työntekijä',
+ 'Employee Name' => 'Työntekijän nimi',
+ 'Employee Number' => 'Työntekijän numero',
+ 'Employee deleted!' => 'Työntekijä poistettu',
+ 'Employee saved!' => 'Työntekijä tallennettu',
+ 'Employees' => 'Työntekijät',
+ 'Employer' => 'Työntekijä',
+ 'Enddate' => 'Päättymispäivä',
+ 'Expense' => 'Meno',
+ 'From' => 'Alkaen',
+ 'Home Phone' => 'Kotipuhelin',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Sisällytä raporttiin',
+ 'Login' => 'Nimi',
+ 'Manager' => 'Johtaja',
+ 'Maximum' => 'Maksimi',
+ 'Name' => 'Nimi',
+ 'Name missing!' => 'Nimi puuttuu!',
+ 'Notes' => 'Lisätietoja',
+ 'Number' => 'Numero',
+ 'Orphaned' => 'Hylätyt',
+ 'Rate' => 'Kurssi',
+ 'Rate missing!' => 'Kurssi puuttuu',
+ 'Sales' => 'Myynti',
+ 'Save' => 'Tallenna',
+ 'Save as new' => 'Tallenna uutena',
+ 'Startdate' => 'Aloituspäivä',
+ 'State/Province' => 'Lääni',
+ 'Supervisor' => 'Valvoja',
+ 'To' => 'Hetkeen',
+ 'Update' => 'Päivitä',
+ 'User' => 'Käyttäjä',
+ 'Work Phone' => 'Työpuhelin',
+ 'Zip/Postal Code' => 'Postinumero',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'lisää_työntekijä' => 'add_employee',
+ 'jatka' => 'continue',
+ 'poista' => 'delete',
+ 'tallenna' => 'save',
+ 'tallenna_uutena' => 'save_as_new',
+ 'päivitä' => 'update',
+};
+
+1;
+
diff --git a/locale/fi/ic b/locale/fi/ic
new file mode 100755
index 00000000..cab4dbf0
--- /dev/null
+++ b/locale/fi/ic
@@ -0,0 +1,258 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Kirjanpitovalikko',
+ 'Accounts' => 'Tilit',
+ 'Active' => 'Avoin',
+ 'Add' => 'Lisää',
+ 'Add Assembly' => 'Lisää tuote',
+ 'Add Part' => 'Lisää raaka-aine/tarvike',
+ 'Add Purchase Order' => 'Ostotilaus',
+ 'Add Quotation' => 'Lisää tarjous',
+ 'Add Request for Quotation' => 'Lisää tarjouspyyntö',
+ 'Add Sales Order' => 'Lisää tilausvahvistus',
+ 'Add Service' => 'Lisää palvelu',
+ 'Address' => 'Osoite',
+ 'Apr' => 'Huh',
+ 'April' => 'Huhtikuu',
+ 'Assemblies' => 'Tuotteet',
+ 'Assemblies restocked!' => 'Tuotteet viety varastoon',
+ 'Attachment' => 'Liite',
+ 'Aug' => 'Elo',
+ 'August' => 'Elokuu',
+ 'BOM' => 'Materiaalilista',
+ 'Bcc' => 'Näkymätön kopio',
+ 'Billing Address' => 'Laskutusosoite',
+ 'Bin' => 'Varastopaikka',
+ 'COGS' => 'Myydyn tuotteen kulut',
+ 'Cannot delete item!' => 'Nimikettä ei voi poistaa!',
+ 'Cannot stock assemblies!' => 'Tuotteiden varastointi ei onnistu!',
+ 'Cash' => 'Käteiskauppa',
+ 'Cc' => 'Kopio',
+ 'City' => 'Kaupunki',
+ 'Closed' => 'Suljettu',
+ 'Company Name' => 'Yrityksen nimi',
+ 'Components' => 'Komponentit',
+ 'Contact' => 'Yhteyshenkilö',
+ 'Continue' => 'Jatka',
+ 'Copies' => 'Kopiot',
+ 'Cost' => 'Hinta',
+ 'Country' => 'Maa',
+ 'Curr' => 'Valuutta',
+ 'Currency' => 'Valuutta',
+ 'Customer' => 'Asiakas',
+ 'Customer Number' => 'Asiakasnumero',
+ 'Customer not on file!' => 'Asiakas ei järjestelmässä!',
+ 'Date' => 'Päiväys',
+ 'Dec' => 'Jou',
+ 'December' => 'Joulukuu',
+ 'Delete' => 'Poista',
+ 'Delivery Date' => 'Toimituspäivä',
+ 'Description' => 'Kuvaus',
+ 'Detail' => 'Yksityiskohdat',
+ 'Drawing' => 'Piirros',
+ 'E-mail' => 'Sähköposti',
+ 'E-mail address missing!' => 'Sähköpostiosoite puuttuu!',
+ 'E-mailed' => 'Lähetetty',
+ 'Edit Assembly' => 'Muokkaa tuotetta',
+ 'Edit Part' => 'Muokkaa raaka-ainetta/tarviketta',
+ 'Edit Service' => 'Muokkaa palvelua',
+ 'Employee' => 'Työntekijä',
+ 'Expense' => 'Meno',
+ 'Extended' => 'Pidennetty',
+ 'Fax' => 'Faksi',
+ 'Feb' => 'Hel',
+ 'February' => 'Helmikuu',
+ 'From' => 'Alkaen',
+ 'Group' => 'Ryhmä',
+ 'Image' => 'Kuva',
+ 'In-line' => 'Linjalla',
+ 'Include in Report' => 'Sisällytä raporttiin',
+ 'Income' => 'Tulo',
+ 'Individual Items' => 'Yksittäiset nimikkeet',
+ 'Inventory' => 'Varasto',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Tuotteen varaston on oltava nolla ennen asettamista epäkurantiksi!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Raaka-aineen/tarvikkeen varaston määrä on oltava nolla ennen asettamista epäkurantiksi!',
+ 'Invoice' => 'Lasku',
+ 'Invoice Date missing!' => 'Laskun päiväys puuttuu!',
+ 'Invoice Number' => 'Laskun numero',
+ 'Invoice Number missing!' => 'Laskun numero puuttuu!',
+ 'Item deleted!' => 'Nimike poistettu!',
+ 'Item not on file!' => 'Nimikettä ei ole järjestelmässä!',
+ 'Items' => 'Tuotteet',
+ 'Jan' => 'Tam',
+ 'January' => 'Tammikuu',
+ 'Jul' => 'Hei',
+ 'July' => 'Heinäkuu',
+ 'Jun' => 'Kes',
+ 'June' => 'Kesäkuu',
+ 'Line Total' => 'Rivi yhteensä',
+ 'Link Accounts' => 'Linkkaa tilit',
+ 'List' => 'Lista',
+ 'List Price' => 'Listaa hinnat',
+ 'Make' => 'Valmistaja',
+ 'Mar' => 'Maa',
+ 'March' => 'Maaliskuu',
+ 'May' => 'Tou',
+ 'May ' => 'Toukokuu',
+ 'Message' => 'Viesti',
+ 'Microfiche' => 'Mikrokuva',
+ 'Model' => 'Tuotenimi',
+ 'Name' => 'Nimi',
+ 'No.' => 'no',
+ 'Notes' => 'Lisätietoja',
+ 'Nov' => 'Mar',
+ 'November' => 'Marraskuu',
+ 'Number' => 'Numero',
+ 'Number missing in Row' => 'Numero puuttuu kannan riviltä',
+ 'Obsolete' => 'Vanhentunut',
+ 'Oct' => 'Lok',
+ 'October' => 'Lokakuu',
+ 'On Hand' => 'Varastossa',
+ 'Open' => 'Avoinna',
+ 'Order' => 'Tilaus',
+ 'Order Date missing!' => 'Tilauspäivämäärä puuttuu!',
+ 'Order Number' => 'Tilausnumero',
+ 'Order Number missing!' => 'Tilausnumero puuttuu!',
+ 'Orphaned' => 'Hylätyt',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Pakkauslista',
+ 'Packing List Date missing!' => 'Pakkauslistan päiväys puuttuu!',
+ 'Packing List Number missing!' => 'Pakkauslistan numero puuttuu!',
+ 'Part' => 'Tarvike',
+ 'Parts' => 'Tarvikkeet',
+ 'Period' => 'Ajanjakso',
+ 'Phone' => 'Puhelin',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Hinta',
+ 'Pricegroup' => 'Hintaryhmä',
+ 'Printed' => 'Tulostettu',
+ 'Project' => 'Projekti',
+ 'Purchase Order' => 'Ostotilaus',
+ 'Purchase Orders' => 'Ostotilaukset',
+ 'Qty' => 'Määrä',
+ 'Quotation' => 'Tarjous',
+ 'Quotation Date missing!' => 'Tarjouspäivä puuttuu',
+ 'Quotation Number missing!' => 'Tarjousnumero puuttuu',
+ 'Quotations' => 'Tarjoukset',
+ 'RFQ' => 'Tarjouspyyntö',
+ 'Recd' => 'Vastaanotettu',
+ 'Required by' => 'Toimituspäivä',
+ 'Sales Invoice' => 'Myyntilasku',
+ 'Sales Invoices' => 'Myyntilaskut',
+ 'Sales Order' => 'Tilausvahvistus',
+ 'Sales Orders' => 'Tilausvahvistukset',
+ 'Save' => 'Tallenna',
+ 'Save as new' => 'Tallenna uutena',
+ 'Screen' => 'Näyttö',
+ 'Select from one of the names below' => 'Valitse yksi nimi alapuolelta',
+ 'Select txt, postscript or PDF!' => 'Valitse tekstitiedosto, postscript tai PDF!',
+ 'Sell' => 'Myynti',
+ 'Sell Price' => 'Myyntihinta',
+ 'Sep' => 'Syy',
+ 'September' => 'Syyskuu',
+ 'Serial No.' => 'Sarjanumero',
+ 'Serial Number' => 'Sarjanumero',
+ 'Service' => 'Palvelu',
+ 'Services' => 'Palvelut',
+ 'Ship' => 'Lähetä',
+ 'Ship to' => 'Toimitusosoite',
+ 'Short' => 'Lyhytaikaiset',
+ 'State/Province' => 'Lääni',
+ 'Stock Assembly' => 'Varastoi tuote',
+ 'Subject' => 'Aihe',
+ 'Subtotal' => 'Välisumma',
+ 'Summary' => 'Kooste',
+ 'Tax' => 'Vero',
+ 'To' => 'Hetkeen',
+ 'Top Level' => 'Ylin taso',
+ 'Unit' => 'Yksikkö',
+ 'Update' => 'Päivitä',
+ 'Updated' => 'Päivitetty',
+ 'Vendor' => 'Toimittaja',
+ 'Vendor Invoice' => 'Ostolasku',
+ 'Vendor Invoices' => 'Ostolaskut',
+ 'Vendor Number' => 'Toimittajanumero',
+ 'Vendor not on file!' => 'Toimittajaa ei järjestelmässä!',
+ 'Warehouse' => 'Varasto',
+ 'Weight' => 'Paino',
+ 'What type of item is this?' => 'Minkä tyyppinen nimike tämä on?',
+ 'Work Order' => 'Työtilaus',
+ 'Year' => 'Vuosi',
+ 'Zip/Postal Code' => 'Postinumero',
+ 'days' => 'päivää',
+ 'sent' => 'lähetetty',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'lisää_tuote' => 'add_assembly',
+ 'lisää_raaka_aine_tarvike' => 'add_part',
+ 'lisää_palvelu' => 'add_service',
+ 'jatka' => 'continue',
+ 'poista' => 'delete',
+ 'muokkaa_tuotetta' => 'edit_assembly',
+ 'muokkaa_raaka_ainetta_tarviketta' => 'edit_part',
+ 'muokkaa_palvelua' => 'edit_service',
+ 'tallenna' => 'save',
+ 'tallenna_uutena' => 'save_as_new',
+ 'päivitä' => 'update',
+};
+
+1;
+
diff --git a/locale/fi/io b/locale/fi/io
new file mode 100755
index 00000000..66c8f124
--- /dev/null
+++ b/locale/fi/io
@@ -0,0 +1,125 @@
+$self{texts} = {
+ 'Add Purchase Order' => 'Ostotilaus',
+ 'Add Quotation' => 'Lisää tarjous',
+ 'Add Request for Quotation' => 'Lisää tarjouspyyntö',
+ 'Add Sales Order' => 'Lisää tilausvahvistus',
+ 'Address' => 'Osoite',
+ 'Apr' => 'Huh',
+ 'April' => 'Huhtikuu',
+ 'Attachment' => 'Liite',
+ 'Aug' => 'Elo',
+ 'August' => 'Elokuu',
+ 'Bcc' => 'Näkymätön kopio',
+ 'Billing Address' => 'Laskutusosoite',
+ 'Bin' => 'Varastopaikka',
+ 'Cc' => 'Kopio',
+ 'City' => 'Kaupunki',
+ 'Company Name' => 'Yrityksen nimi',
+ 'Contact' => 'Yhteyshenkilö',
+ 'Continue' => 'Jatka',
+ 'Copies' => 'Kopiot',
+ 'Country' => 'Maa',
+ 'Customer Number' => 'Asiakasnumero',
+ 'Date' => 'Päiväys',
+ 'Dec' => 'Jou',
+ 'December' => 'Joulukuu',
+ 'Delivery Date' => 'Toimituspäivä',
+ 'Description' => 'Kuvaus',
+ 'E-mail' => 'Sähköposti',
+ 'E-mail address missing!' => 'Sähköpostiosoite puuttuu!',
+ 'E-mailed' => 'Lähetetty',
+ 'Extended' => 'Pidennetty',
+ 'Fax' => 'Faksi',
+ 'Feb' => 'Hel',
+ 'February' => 'Helmikuu',
+ 'Group' => 'Ryhmä',
+ 'In-line' => 'Linjalla',
+ 'Invoice' => 'Lasku',
+ 'Invoice Date missing!' => 'Laskun päiväys puuttuu!',
+ 'Invoice Number missing!' => 'Laskun numero puuttuu!',
+ 'Item not on file!' => 'Nimikettä ei ole järjestelmässä!',
+ 'Jan' => 'Tam',
+ 'January' => 'Tammikuu',
+ 'Jul' => 'Hei',
+ 'July' => 'Heinäkuu',
+ 'Jun' => 'Kes',
+ 'June' => 'Kesäkuu',
+ 'Mar' => 'Maa',
+ 'March' => 'Maaliskuu',
+ 'May' => 'Tou',
+ 'May ' => 'Toukokuu',
+ 'Message' => 'Viesti',
+ 'Nov' => 'Mar',
+ 'November' => 'Marraskuu',
+ 'Number' => 'Numero',
+ 'Number missing in Row' => 'Numero puuttuu kannan riviltä',
+ 'Oct' => 'Lok',
+ 'October' => 'Lokakuu',
+ 'Order Date missing!' => 'Tilauspäivämäärä puuttuu!',
+ 'Order Number missing!' => 'Tilausnumero puuttuu!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Pakkauslista',
+ 'Packing List Date missing!' => 'Pakkauslistan päiväys puuttuu!',
+ 'Packing List Number missing!' => 'Pakkauslistan numero puuttuu!',
+ 'Part' => 'Tarvike',
+ 'Phone' => 'Puhelin',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Hinta',
+ 'Printed' => 'Tulostettu',
+ 'Project' => 'Projekti',
+ 'Purchase Order' => 'Ostotilaus',
+ 'Qty' => 'Määrä',
+ 'Quotation' => 'Tarjous',
+ 'Quotation Date missing!' => 'Tarjouspäivä puuttuu',
+ 'Quotation Number missing!' => 'Tarjousnumero puuttuu',
+ 'Recd' => 'Vastaanotettu',
+ 'Required by' => 'Toimituspäivä',
+ 'Sales Order' => 'Tilausvahvistus',
+ 'Screen' => 'Näyttö',
+ 'Select txt, postscript or PDF!' => 'Valitse tekstitiedosto, postscript tai PDF!',
+ 'Sep' => 'Syy',
+ 'September' => 'Syyskuu',
+ 'Serial No.' => 'Sarjanumero',
+ 'Service' => 'Palvelu',
+ 'Ship' => 'Lähetä',
+ 'Ship to' => 'Toimitusosoite',
+ 'State/Province' => 'Lääni',
+ 'Subject' => 'Aihe',
+ 'Subtotal' => 'Välisumma',
+ 'To' => 'Hetkeen',
+ 'Unit' => 'Yksikkö',
+ 'Vendor Number' => 'Toimittajanumero',
+ 'What type of item is this?' => 'Minkä tyyppinen nimike tämä on?',
+ 'Work Order' => 'Työtilaus',
+ 'Zip/Postal Code' => 'Postinumero',
+ 'sent' => 'lähetetty',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'jatka' => 'continue',
+};
+
+1;
+
diff --git a/locale/fi/ir b/locale/fi/ir
new file mode 100755
index 00000000..1b72e80a
--- /dev/null
+++ b/locale/fi/ir
@@ -0,0 +1,218 @@
+$self{texts} = {
+ 'Account' => 'Tili',
+ 'Accounting Menu' => 'Kirjanpitovalikko',
+ 'Add Purchase Order' => 'Ostotilaus',
+ 'Add Quotation' => 'Lisää tarjous',
+ 'Add Request for Quotation' => 'Lisää tarjouspyyntö',
+ 'Add Sales Order' => 'Lisää tilausvahvistus',
+ 'Add Vendor Invoice' => 'Lisää ostolasku',
+ 'Address' => 'Osoite',
+ 'Amount' => 'Summa',
+ 'Apr' => 'Huh',
+ 'April' => 'Huhtikuu',
+ 'Are you sure you want to delete Invoice Number' => 'Haluatko poistaa laskun numero',
+ 'Attachment' => 'Liite',
+ 'Aug' => 'Elo',
+ 'August' => 'Elokuu',
+ 'Bcc' => 'Näkymätön kopio',
+ 'Billing Address' => 'Laskutusosoite',
+ 'Bin' => 'Varastopaikka',
+ 'Cannot delete invoice!' => 'Laskua ei voi poistaa!',
+ 'Cannot post invoice for a closed period!' => 'Laskun kirjaus suljetulle ajanjaksolle kielletty!',
+ 'Cannot post invoice!' => 'Laskua ei voi kirjata!',
+ 'Cannot post payment for a closed period!' => 'Maksun kirjaus suljetulle ajanjaksolle kielletty!',
+ 'Cc' => 'Kopio',
+ 'City' => 'Kaupunki',
+ 'Company Name' => 'Yrityksen nimi',
+ 'Confirm!' => 'Vahvista!',
+ 'Contact' => 'Yhteyshenkilö',
+ 'Continue' => 'Jatka',
+ 'Copies' => 'Kopiot',
+ 'Country' => 'Maa',
+ 'Credit Limit' => 'Luottoraja',
+ 'Currency' => 'Valuutta',
+ 'Customer Number' => 'Asiakasnumero',
+ 'Customer not on file!' => 'Asiakas ei järjestelmässä!',
+ 'Date' => 'Päiväys',
+ 'Dec' => 'Jou',
+ 'December' => 'Joulukuu',
+ 'Delete' => 'Poista',
+ 'Delivery Date' => 'Toimituspäivä',
+ 'Department' => 'Toimipiste',
+ 'Description' => 'Kuvaus',
+ 'Due Date' => 'Eräpäivä',
+ 'E-mail' => 'Sähköposti',
+ 'E-mail address missing!' => 'Sähköpostiosoite puuttuu!',
+ 'E-mailed' => 'Lähetetty',
+ 'Edit Vendor Invoice' => 'Muokkaa ostolaskua',
+ 'Exch' => 'Vaihtokurssi',
+ 'Exchange Rate' => 'Vaihtokurssi',
+ 'Exchange rate for payment missing!' => 'Maksun vaihtokurssi puuttuu',
+ 'Exchange rate missing!' => 'Vaihtokurssi puuttuu',
+ 'Extended' => 'Pidennetty',
+ 'Fax' => 'Faksi',
+ 'Feb' => 'Hel',
+ 'February' => 'Helmikuu',
+ 'Group' => 'Ryhmä',
+ 'In-line' => 'Linjalla',
+ 'Internal Notes' => 'Sisäiset viestit',
+ 'Invoice' => 'Lasku',
+ 'Invoice Date' => 'Laskun päiväys',
+ 'Invoice Date missing!' => 'Laskun päiväys puuttuu!',
+ 'Invoice Number' => 'Laskun numero',
+ 'Invoice Number missing!' => 'Laskun numero puuttuu!',
+ 'Invoice deleted!' => 'Lasku poistettu!',
+ 'Item not on file!' => 'Nimikettä ei ole järjestelmässä!',
+ 'Jan' => 'Tam',
+ 'January' => 'Tammikuu',
+ 'Jul' => 'Hei',
+ 'July' => 'Heinäkuu',
+ 'Jun' => 'Kes',
+ 'June' => 'Kesäkuu',
+ 'Language' => 'Kieli',
+ 'Mar' => 'Maa',
+ 'March' => 'Maaliskuu',
+ 'May' => 'Tou',
+ 'May ' => 'Toukokuu',
+ 'Message' => 'Viesti',
+ 'Notes' => 'Lisätietoja',
+ 'Nov' => 'Mar',
+ 'November' => 'Marraskuu',
+ 'Number' => 'Numero',
+ 'Number missing in Row' => 'Numero puuttuu kannan riviltä',
+ 'Oct' => 'Lok',
+ 'October' => 'Lokakuu',
+ 'Order Date missing!' => 'Tilauspäivämäärä puuttuu!',
+ 'Order Number' => 'Tilausnumero',
+ 'Order Number missing!' => 'Tilausnumero puuttuu!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Pakkauslista',
+ 'Packing List Date missing!' => 'Pakkauslistan päiväys puuttuu!',
+ 'Packing List Number missing!' => 'Pakkauslistan numero puuttuu!',
+ 'Part' => 'Tarvike',
+ 'Payment date missing!' => 'Maksupäivä puuttuu!',
+ 'Payments' => 'Maksut',
+ 'Phone' => 'Puhelin',
+ 'Post' => 'Kirjaa',
+ 'Post as new' => 'Kirjaa uutena',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Hinta',
+ 'Print' => 'Tulosta',
+ 'Printed' => 'Tulostettu',
+ 'Project' => 'Projekti',
+ 'Project not on file!' => 'Projekti ei ole järjestelmässä!',
+ 'Purchase Order' => 'Ostotilaus',
+ 'Qty' => 'Määrä',
+ 'Quotation' => 'Tarjous',
+ 'Quotation Date missing!' => 'Tarjouspäivä puuttuu',
+ 'Quotation Number missing!' => 'Tarjousnumero puuttuu',
+ 'Recd' => 'Vastaanotettu',
+ 'Record in' => 'Talleta tilille',
+ 'Reference' => 'Viite',
+ 'Remaining' => 'Jäljellä',
+ 'Required by' => 'Toimituspäivä',
+ 'Sales Order' => 'Tilausvahvistus',
+ 'Screen' => 'Näyttö',
+ 'Select from one of the names below' => 'Valitse yksi nimi alapuolelta',
+ 'Select from one of the projects below' => 'Valitse yksi projekti alapuolelta',
+ 'Select txt, postscript or PDF!' => 'Valitse tekstitiedosto, postscript tai PDF!',
+ 'Sep' => 'Syy',
+ 'September' => 'Syyskuu',
+ 'Serial No.' => 'Sarjanumero',
+ 'Service' => 'Palvelu',
+ 'Ship' => 'Lähetä',
+ 'Ship to' => 'Toimitusosoite',
+ 'Source' => 'Lähde',
+ 'Startdate' => 'Aloituspäivä',
+ 'State/Province' => 'Lääni',
+ 'Subject' => 'Aihe',
+ 'Subtotal' => 'Välisumma',
+ 'Tax Included' => 'ALV sisältyy',
+ 'To' => 'Hetkeen',
+ 'Total' => 'Yhteensä',
+ 'Unit' => 'Yksikkö',
+ 'Update' => 'Päivitä',
+ 'Vendor' => 'Toimittaja',
+ 'Vendor Number' => 'Toimittajanumero',
+ 'Vendor missing!' => 'Toimittaja puuttuu!',
+ 'Vendor not on file!' => 'Toimittajaa ei järjestelmässä!',
+ 'Warning!' => 'Varoitus!',
+ 'What type of item is this?' => 'Minkä tyyppinen nimike tämä on?',
+ 'Work Order' => 'Työtilaus',
+ 'Yes' => 'Kyllä',
+ 'Zip/Postal Code' => 'Postinumero',
+ 'ea' => 'kpl',
+ 'posted!' => 'kirjattu!',
+ 'sent' => 'lähetetty',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'jatka' => 'continue',
+ 'poista' => 'delete',
+ 'kirjaa' => 'post',
+ 'kirjaa_uutena' => 'post_as_new',
+ 'ostotilaus' => 'purchase_order',
+ 'päivitä' => 'update',
+ 'kyllä' => 'yes',
+};
+
+1;
+
diff --git a/locale/fi/is b/locale/fi/is
new file mode 100755
index 00000000..7b49f2e6
--- /dev/null
+++ b/locale/fi/is
@@ -0,0 +1,227 @@
+$self{texts} = {
+ 'Account' => 'Tili',
+ 'Accounting Menu' => 'Kirjanpitovalikko',
+ 'Add Purchase Order' => 'Ostotilaus',
+ 'Add Quotation' => 'Lisää tarjous',
+ 'Add Request for Quotation' => 'Lisää tarjouspyyntö',
+ 'Add Sales Invoice' => 'Lisää myyntilasku',
+ 'Add Sales Order' => 'Lisää tilausvahvistus',
+ 'Address' => 'Osoite',
+ 'Amount' => 'Summa',
+ 'Apr' => 'Huh',
+ 'April' => 'Huhtikuu',
+ 'Are you sure you want to delete Invoice Number' => 'Haluatko poistaa laskun numero',
+ 'Attachment' => 'Liite',
+ 'Aug' => 'Elo',
+ 'August' => 'Elokuu',
+ 'Bcc' => 'Näkymätön kopio',
+ 'Billing Address' => 'Laskutusosoite',
+ 'Bin' => 'Varastopaikka',
+ 'Business' => 'Toimiala',
+ 'Cannot delete invoice!' => 'Laskua ei voi poistaa!',
+ 'Cannot post invoice for a closed period!' => 'Laskun kirjaus suljetulle ajanjaksolle kielletty!',
+ 'Cannot post invoice!' => 'Laskua ei voi kirjata!',
+ 'Cannot post payment for a closed period!' => 'Maksun kirjaus suljetulle ajanjaksolle kielletty!',
+ 'Cc' => 'Kopio',
+ 'City' => 'Kaupunki',
+ 'Company Name' => 'Yrityksen nimi',
+ 'Confirm!' => 'Vahvista!',
+ 'Contact' => 'Yhteyshenkilö',
+ 'Continue' => 'Jatka',
+ 'Copies' => 'Kopiot',
+ 'Country' => 'Maa',
+ 'Credit Limit' => 'Luottoraja',
+ 'Currency' => 'Valuutta',
+ 'Customer' => 'Asiakas',
+ 'Customer Number' => 'Asiakasnumero',
+ 'Customer missing!' => 'Asiakas puuttuu!',
+ 'Customer not on file!' => 'Asiakas ei järjestelmässä!',
+ 'Date' => 'Päiväys',
+ 'Dec' => 'Jou',
+ 'December' => 'Joulukuu',
+ 'Delete' => 'Poista',
+ 'Delivery Date' => 'Toimituspäivä',
+ 'Department' => 'Toimipiste',
+ 'Description' => 'Kuvaus',
+ 'Due Date' => 'Eräpäivä',
+ 'E-mail' => 'Sähköposti',
+ 'E-mail address missing!' => 'Sähköpostiosoite puuttuu!',
+ 'E-mailed' => 'Lähetetty',
+ 'Edit Sales Invoice' => 'Muokkaa myyntilaskua',
+ 'Exch' => 'Vaihtokurssi',
+ 'Exchange Rate' => 'Vaihtokurssi',
+ 'Exchange rate for payment missing!' => 'Maksun vaihtokurssi puuttuu',
+ 'Exchange rate missing!' => 'Vaihtokurssi puuttuu',
+ 'Extended' => 'Pidennetty',
+ 'Fax' => 'Faksi',
+ 'Feb' => 'Hel',
+ 'February' => 'Helmikuu',
+ 'Group' => 'Ryhmä',
+ 'In-line' => 'Linjalla',
+ 'Internal Notes' => 'Sisäiset viestit',
+ 'Invoice' => 'Lasku',
+ 'Invoice Date' => 'Laskun päiväys',
+ 'Invoice Date missing!' => 'Laskun päiväys puuttuu!',
+ 'Invoice Number' => 'Laskun numero',
+ 'Invoice Number missing!' => 'Laskun numero puuttuu!',
+ 'Invoice deleted!' => 'Lasku poistettu!',
+ 'Item not on file!' => 'Nimikettä ei ole järjestelmässä!',
+ 'Jan' => 'Tam',
+ 'January' => 'Tammikuu',
+ 'Jul' => 'Hei',
+ 'July' => 'Heinäkuu',
+ 'Jun' => 'Kes',
+ 'June' => 'Kesäkuu',
+ 'Mar' => 'Maa',
+ 'March' => 'Maaliskuu',
+ 'May' => 'Tou',
+ 'May ' => 'Toukokuu',
+ 'Message' => 'Viesti',
+ 'Notes' => 'Lisätietoja',
+ 'Nov' => 'Mar',
+ 'November' => 'Marraskuu',
+ 'Number' => 'Numero',
+ 'Number missing in Row' => 'Numero puuttuu kannan riviltä',
+ 'Oct' => 'Lok',
+ 'October' => 'Lokakuu',
+ 'Order Date missing!' => 'Tilauspäivämäärä puuttuu!',
+ 'Order Number' => 'Tilausnumero',
+ 'Order Number missing!' => 'Tilausnumero puuttuu!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Pakkauslista',
+ 'Packing List Date missing!' => 'Pakkauslistan päiväys puuttuu!',
+ 'Packing List Number missing!' => 'Pakkauslistan numero puuttuu!',
+ 'Part' => 'Tarvike',
+ 'Payment date missing!' => 'Maksupäivä puuttuu!',
+ 'Payments' => 'Maksut',
+ 'Phone' => 'Puhelin',
+ 'Post' => 'Kirjaa',
+ 'Post as new' => 'Kirjaa uutena',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Hinta',
+ 'Print' => 'Tulosta',
+ 'Print and Post' => 'Tulosta ja kirjaa',
+ 'Printed' => 'Tulostettu',
+ 'Project' => 'Projekti',
+ 'Project not on file!' => 'Projekti ei ole järjestelmässä!',
+ 'Purchase Order' => 'Ostotilaus',
+ 'Qty' => 'Määrä',
+ 'Quotation' => 'Tarjous',
+ 'Quotation Date missing!' => 'Tarjouspäivä puuttuu',
+ 'Quotation Number missing!' => 'Tarjousnumero puuttuu',
+ 'Recd' => 'Vastaanotettu',
+ 'Record in' => 'Talleta tilille',
+ 'Reference' => 'Viite',
+ 'Remaining' => 'Jäljellä',
+ 'Required by' => 'Toimituspäivä',
+ 'Sales Order' => 'Tilausvahvistus',
+ 'Salesperson' => 'Myyjä',
+ 'Screen' => 'Näyttö',
+ 'Select from one of the names below' => 'Valitse yksi nimi alapuolelta',
+ 'Select from one of the projects below' => 'Valitse yksi projekti alapuolelta',
+ 'Select postscript or PDF!' => 'Valitse postscript tai PDF!',
+ 'Select txt, postscript or PDF!' => 'Valitse tekstitiedosto, postscript tai PDF!',
+ 'Sep' => 'Syy',
+ 'September' => 'Syyskuu',
+ 'Serial No.' => 'Sarjanumero',
+ 'Service' => 'Palvelu',
+ 'Ship' => 'Lähetä',
+ 'Ship to' => 'Toimitusosoite',
+ 'Ship via' => 'Välipiste',
+ 'Source' => 'Lähde',
+ 'Startdate' => 'Aloituspäivä',
+ 'State/Province' => 'Lääni',
+ 'Subject' => 'Aihe',
+ 'Subtotal' => 'Välisumma',
+ 'Tax Included' => 'ALV sisältyy',
+ 'To' => 'Hetkeen',
+ 'Total' => 'Yhteensä',
+ 'Unit' => 'Yksikkö',
+ 'Update' => 'Päivitä',
+ 'Vendor Number' => 'Toimittajanumero',
+ 'Vendor not on file!' => 'Toimittajaa ei järjestelmässä!',
+ 'Warning!' => 'Varoitus!',
+ 'What type of item is this?' => 'Minkä tyyppinen nimike tämä on?',
+ 'Work Order' => 'Työtilaus',
+ 'Yes' => 'Kyllä',
+ 'Zip/Postal Code' => 'Postinumero',
+ 'ea' => 'kpl',
+ 'posted!' => 'kirjattu!',
+ 'sent' => 'lähetetty',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'jatka' => 'continue',
+ 'poista' => 'delete',
+ 'sähköposti' => 'e_mail',
+ 'kirjaa' => 'post',
+ 'kirjaa_uutena' => 'post_as_new',
+ 'tulosta' => 'print',
+ 'tulosta_ja_kirjaa' => 'print_and_post',
+ 'tilausvahvistus' => 'sales_order',
+ 'toimitusosoite' => 'ship_to',
+ 'päivitä' => 'update',
+ 'kyllä' => 'yes',
+};
+
+1;
+
diff --git a/locale/fi/jc b/locale/fi/jc
new file mode 100755
index 00000000..8d9a5548
--- /dev/null
+++ b/locale/fi/jc
@@ -0,0 +1,92 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Kirjanpitovalikko',
+ 'Amount' => 'Summa',
+ 'Closed' => 'Suljettu',
+ 'Confirm!' => 'Vahvista!',
+ 'Continue' => 'Jatka',
+ 'Cost' => 'Hinta',
+ 'Current' => 'Erääntyy',
+ 'Date' => 'Päiväys',
+ 'Date missing!' => 'Päiväys puuttuu',
+ 'Delete' => 'Poista',
+ 'Description' => 'Kuvaus',
+ 'Employee' => 'Työntekijä',
+ 'From' => 'Alkaen',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Sisällytä raporttiin',
+ 'Month' => 'Kuukausi',
+ 'Notes' => 'Lisätietoja',
+ 'Open' => 'Avoinna',
+ 'PDF' => 'PDF',
+ 'Period' => 'Ajanjakso',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Tulosta',
+ 'Print and Save' => 'Tulosta ja tallenna',
+ 'Printed' => 'Tulostettu',
+ 'Project Number' => 'Projektinumero',
+ 'Project Number missing!' => 'Projektinumero puuttuu!',
+ 'Qty' => 'Määrä',
+ 'Quarter' => 'Neljännes',
+ 'Save' => 'Tallenna',
+ 'Save as new' => 'Tallenna uutena',
+ 'Screen' => 'Näyttö',
+ 'Select postscript or PDF!' => 'Valitse postscript tai PDF!',
+ 'Startdate' => 'Aloituspäivä',
+ 'Subtotal' => 'Välisumma',
+ 'To' => 'Hetkeen',
+ 'Total' => 'Yhteensä',
+ 'Update' => 'Päivitä',
+ 'Warning!' => 'Varoitus!',
+ 'Year' => 'Vuosi',
+ 'Yes' => 'Kyllä',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'jatka' => 'continue',
+ 'poista' => 'delete',
+ 'tulosta' => 'print',
+ 'tulosta_ja_tallenna' => 'print_and_save',
+ 'tallenna' => 'save',
+ 'tallenna_uutena' => 'save_as_new',
+ 'päivitä' => 'update',
+ 'kyllä' => 'yes',
+};
+
+1;
+
diff --git a/locale/fi/locales.pl b/locale/fi/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/fi/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/fi/login b/locale/fi/login
new file mode 100755
index 00000000..5e9ef33c
--- /dev/null
+++ b/locale/fi/login
@@ -0,0 +1,24 @@
+$self{texts} = {
+ 'Company' => 'Yritys',
+ 'Continue' => 'Jatka',
+ 'Dataset is newer than version!' => 'Tietokanta on uudempi kuin sovelluksen versio',
+ 'Incorrect Dataset version!' => 'Väärä tietokannan versio!',
+ 'Login' => 'Nimi',
+ 'Name' => 'Nimi',
+ 'Password' => 'Salasana',
+ 'Upgrading to Version' => 'Päivitetään',
+ 'Version' => 'Versio',
+ 'You did not enter a name!' => 'Et kirjoittanut nimeä',
+ 'done' => 'valmis',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ 'nimi' => 'login',
+};
+
+1;
+
diff --git a/locale/fi/menu b/locale/fi/menu
new file mode 100755
index 00000000..9c5225a8
--- /dev/null
+++ b/locale/fi/menu
@@ -0,0 +1,118 @@
+$self{texts} = {
+ 'AP' => 'Ostot',
+ 'AP Aging' => 'Erääntyvät ostolaskut',
+ 'AP Transaction' => 'Ostotapahtuma',
+ 'AR' => 'Myynnit',
+ 'AR Aging' => 'Erääntyvät myyntilaskut',
+ 'AR Transaction' => 'Myyntitapahtuma',
+ 'Accounting Menu' => 'Kirjanpitovalikko',
+ 'Add Account' => 'Lisää tili',
+ 'Add Assembly' => 'Lisää tuote',
+ 'Add Business' => 'Lisää toimiala',
+ 'Add Customer' => 'Lisää asiakas',
+ 'Add Department' => 'Lisää toimipiste',
+ 'Add Employee' => 'Lisää työntekijä',
+ 'Add GIFI' => 'Lisää GIFI',
+ 'Add Group' => 'Lisää ryhmä',
+ 'Add Language' => 'Lisää kieli',
+ 'Add Part' => 'Lisää raaka-aine/tarvike',
+ 'Add Pricegroup' => 'Lisää hintaryhmä',
+ 'Add Project' => 'Lisää projekti',
+ 'Add SIC' => 'Lisää SIC',
+ 'Add Service' => 'Lisää palvelu',
+ 'Add Transaction' => 'Lisää tapahtuma',
+ 'Add Vendor' => 'Lisää toimittaja',
+ 'Add Warehouse' => 'Lisää varasto',
+ 'All Items' => 'Kaikki tuotteet',
+ 'Assemblies' => 'Tuotteet',
+ 'Audit Control' => 'Tilien tarkistus',
+ 'Backup' => 'Varmuuskopio',
+ 'Balance Sheet' => 'Taselaskelma',
+ 'Cash' => 'Käteiskauppa',
+ 'Chart of Accounts' => 'Tilikartta',
+ 'Check' => 'Sekki',
+ 'Components' => 'Komponentit',
+ 'Customers' => 'Asiakkaat',
+ 'Defaults' => 'Oletukset',
+ 'Departments' => 'Toimipisteet',
+ 'Description' => 'Kuvaus',
+ 'Employees' => 'Työntekijät',
+ 'General Ledger' => 'Pääkirja',
+ 'Goods & Services' => 'Hyödykkeet ja palvelut',
+ 'Groups' => 'Ryhmät',
+ 'HTML Templates' => 'HTML-mallit',
+ 'History' => 'Historia',
+ 'Income Statement' => 'Tuloslaskelma',
+ 'Invoice' => 'Lasku',
+ 'LaTeX Templates' => 'LaTeX mallit',
+ 'Language' => 'Kieli',
+ 'List Accounts' => 'Listaa tilit',
+ 'List Businesses' => 'Listaa toimialat',
+ 'List Departments' => 'Listaa toimipisteet',
+ 'List GIFI' => 'Listaa GIFI',
+ 'List Languages' => 'Listaa kielet',
+ 'List Projects' => 'Listaa projektit',
+ 'List SIC' => 'Listaa SIC',
+ 'List Warehouses' => 'Listaa varastot',
+ 'Logout' => 'Kirjaudu ulos',
+ 'Non-taxable' => 'Veroton',
+ 'Open' => 'Avoinna',
+ 'Order Entry' => 'Tilauksen kirjaus',
+ 'Packing List' => 'Pakkauslista',
+ 'Packing Lists' => 'Pakkauslistat',
+ 'Parts' => 'Tarvikkeet',
+ 'Payment' => 'Maksu',
+ 'Payments' => 'Maksut',
+ 'Preferences' => 'Asetukset',
+ 'Pricegroups' => 'Hintaryhmät',
+ 'Print' => 'Tulosta',
+ 'Projects' => 'Projektit',
+ 'Purchase Order' => 'Ostotilaus',
+ 'Purchase Orders' => 'Ostotilaukset',
+ 'Quotation' => 'Tarjous',
+ 'Quotations' => 'Tarjoukset',
+ 'RFQ' => 'Tarjouspyyntö',
+ 'RFQs' => 'Tarjouspyynnöt',
+ 'Receipt' => 'Kuitti',
+ 'Receipts' => 'Kuitit',
+ 'Reconciliation' => 'Sovitus',
+ 'Reports' => 'Raportit',
+ 'Sales Invoice' => 'Myyntilasku',
+ 'Sales Invoices' => 'Myyntilaskut',
+ 'Sales Order' => 'Tilausvahvistus',
+ 'Sales Orders' => 'Tilausvahvistukset',
+ 'Save to File' => 'Tallenna tiedostoon',
+ 'Search' => 'Etsi',
+ 'Send by E-Mail' => 'Lähetä sähköpostilla',
+ 'Services' => 'Palvelut',
+ 'Ship' => 'Lähetä',
+ 'Statement' => 'Tiliote',
+ 'Stock Assembly' => 'Varastoi tuote',
+ 'Stylesheet' => 'Tyylitiedosto',
+ 'System' => 'Järjestelmä',
+ 'Tax collected' => 'Veroa kerätty',
+ 'Tax paid' => 'Veroa maksettu',
+ 'Text Templates' => 'Tekstimallit',
+ 'Transactions' => 'Tapahtumat',
+ 'Transfer' => 'Siirto',
+ 'Trial Balance' => 'Saldolista',
+ 'Type of Business' => 'Toimialan luokitus',
+ 'Vendor Invoice' => 'Ostolasku',
+ 'Vendors' => 'Toimittajat',
+ 'Version' => 'Versio',
+ 'Warehouses' => 'Varastot',
+ 'Work Order' => 'Työtilaus',
+ 'Work Orders' => 'Työtilaukset',
+ 'Yearend' => 'Tilinpäätös',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/fi/oe b/locale/fi/oe
new file mode 100755
index 00000000..e23848cb
--- /dev/null
+++ b/locale/fi/oe
@@ -0,0 +1,304 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Kirjanpitovalikko',
+ 'Add Exchange Rate' => 'Lisää vaihtokurssi',
+ 'Add Purchase Order' => 'Ostotilaus',
+ 'Add Quotation' => 'Lisää tarjous',
+ 'Add Request for Quotation' => 'Lisää tarjouspyyntö',
+ 'Add Sales Invoice' => 'Lisää myyntilasku',
+ 'Add Sales Order' => 'Lisää tilausvahvistus',
+ 'Add Vendor Invoice' => 'Lisää ostolasku',
+ 'Address' => 'Osoite',
+ 'Amount' => 'Summa',
+ 'Apr' => 'Huh',
+ 'April' => 'Huhtikuu',
+ 'Are you sure you want to delete Order Number' => 'Haluatko poistaa tilauksen numero',
+ 'Are you sure you want to delete Quotation Number' => 'Haluatko poistaa tarjouksen numero',
+ 'Attachment' => 'Liite',
+ 'Aug' => 'Elo',
+ 'August' => 'Elokuu',
+ 'Bcc' => 'Näkymätön kopio',
+ 'Billing Address' => 'Laskutusosoite',
+ 'Bin' => 'Varastopaikka',
+ 'Business' => 'Toimiala',
+ 'C' => 'C',
+ 'Cannot delete order!' => 'Tilausta ei voi poistaa!',
+ 'Cannot delete quotation!' => 'Tarjouspyyntöä ei voi poistaa!',
+ 'Cannot save order!' => 'Tilauksen tallennus ei onnistu!',
+ 'Cannot save quotation!' => 'Ei voi tallentaa tarjousta!',
+ 'Cc' => 'Kopio',
+ 'City' => 'Kaupunki',
+ 'Closed' => 'Suljettu',
+ 'Company Name' => 'Yrityksen nimi',
+ 'Confirm!' => 'Vahvista!',
+ 'Contact' => 'Yhteyshenkilö',
+ 'Continue' => 'Jatka',
+ 'Copies' => 'Kopiot',
+ 'Cost' => 'Hinta',
+ 'Could not save!' => 'Ei voi talelntaa',
+ 'Country' => 'Maa',
+ 'Credit Limit' => 'Luottoraja',
+ 'Curr' => 'Valuutta',
+ 'Currency' => 'Valuutta',
+ 'Current' => 'Erääntyy',
+ 'Customer' => 'Asiakas',
+ 'Customer Number' => 'Asiakasnumero',
+ 'Customer missing!' => 'Asiakas puuttuu!',
+ 'Customer not on file!' => 'Asiakas ei järjestelmässä!',
+ 'Date' => 'Päiväys',
+ 'Dec' => 'Jou',
+ 'December' => 'Joulukuu',
+ 'Delete' => 'Poista',
+ 'Delivery Date' => 'Toimituspäivä',
+ 'Department' => 'Toimipiste',
+ 'Description' => 'Kuvaus',
+ 'Done' => 'Suoritettu',
+ 'E-mail' => 'Sähköposti',
+ 'E-mail address missing!' => 'Sähköpostiosoite puuttuu!',
+ 'E-mailed' => 'Lähetetty',
+ 'Edit Purchase Order' => 'Muokkaa ostotilausta',
+ 'Edit Quotation' => 'Muokkaa tarjousta',
+ 'Edit Request for Quotation' => 'Muokkaa tarjouspyyntöä',
+ 'Edit Sales Order' => 'Muokkaa myyntitilausta',
+ 'Employee' => 'Työntekijä',
+ 'Exchange Rate' => 'Vaihtokurssi',
+ 'Exchange rate missing!' => 'Vaihtokurssi puuttuu',
+ 'Extended' => 'Pidennetty',
+ 'Fax' => 'Faksi',
+ 'Feb' => 'Hel',
+ 'February' => 'Helmikuu',
+ 'From' => 'Alkaen',
+ 'Group' => 'Ryhmä',
+ 'ID' => 'ID',
+ 'In-line' => 'Linjalla',
+ 'Include in Report' => 'Sisällytä raporttiin',
+ 'Internal Notes' => 'Sisäiset viestit',
+ 'Inventory saved!' => 'Varasto tallennettu!',
+ 'Inventory transferred!' => 'Varasto siirretty!',
+ 'Invoice' => 'Lasku',
+ 'Invoice Date missing!' => 'Laskun päiväys puuttuu!',
+ 'Invoice Number missing!' => 'Laskun numero puuttuu!',
+ 'Item not on file!' => 'Nimikettä ei ole järjestelmässä!',
+ 'Jan' => 'Tam',
+ 'January' => 'Tammikuu',
+ 'Jul' => 'Hei',
+ 'July' => 'Heinäkuu',
+ 'Jun' => 'Kes',
+ 'June' => 'Kesäkuu',
+ 'Manager' => 'Johtaja',
+ 'Mar' => 'Maa',
+ 'March' => 'Maaliskuu',
+ 'May' => 'Tou',
+ 'May ' => 'Toukokuu',
+ 'Message' => 'Viesti',
+ 'Month' => 'Kuukausi',
+ 'No.' => 'no',
+ 'Notes' => 'Lisätietoja',
+ 'Nothing entered!' => 'Ei syötettä',
+ 'Nothing selected!' => 'Mitään valitsematta!',
+ 'Nothing to transfer!' => 'Ei siirrettävää!',
+ 'Nov' => 'Mar',
+ 'November' => 'Marraskuu',
+ 'Number' => 'Numero',
+ 'Number missing in Row' => 'Numero puuttuu kannan riviltä',
+ 'O' => 'O',
+ 'Oct' => 'Lok',
+ 'October' => 'Lokakuu',
+ 'Open' => 'Avoinna',
+ 'Order' => 'Tilaus',
+ 'Order Date' => 'Tilauspäivämäärä',
+ 'Order Date missing!' => 'Tilauspäivämäärä puuttuu!',
+ 'Order Number' => 'Tilausnumero',
+ 'Order Number missing!' => 'Tilausnumero puuttuu!',
+ 'Order deleted!' => 'Tilaus poistettu!',
+ 'Order saved!' => 'Tilaus tallennettu!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Pakkauslista',
+ 'Packing List Date missing!' => 'Pakkauslistan päiväys puuttuu!',
+ 'Packing List Number missing!' => 'Pakkauslistan numero puuttuu!',
+ 'Part' => 'Tarvike',
+ 'Period' => 'Ajanjakso',
+ 'Phone' => 'Puhelin',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Hinta',
+ 'Print' => 'Tulosta',
+ 'Print and Save' => 'Tulosta ja tallenna',
+ 'Printed' => 'Tulostettu',
+ 'Project' => 'Projekti',
+ 'Project not on file!' => 'Projekti ei ole järjestelmässä!',
+ 'Purchase Order' => 'Ostotilaus',
+ 'Purchase Orders' => 'Ostotilaukset',
+ 'Qty' => 'Määrä',
+ 'Quarter' => 'Neljännes',
+ 'Quotation' => 'Tarjous',
+ 'Quotation ' => 'Tarjous ',
+ 'Quotation Date' => 'Tarjouspäivä',
+ 'Quotation Date missing!' => 'Tarjouspäivä puuttuu',
+ 'Quotation Number' => 'Tarjousnumero',
+ 'Quotation Number missing!' => 'Tarjousnumero puuttuu',
+ 'Quotation deleted!' => 'Tarjous poistettu',
+ 'Quotations' => 'Tarjoukset',
+ 'RFQ' => 'Tarjouspyyntö',
+ 'RFQ ' => 'Tarjouspyyntö ',
+ 'RFQ Number' => 'Tarjouspyynnön numero',
+ 'Recd' => 'Vastaanotettu',
+ 'Reference' => 'Viite',
+ 'Remaining' => 'Jäljellä',
+ 'Request for Quotation' => 'Tarjouspyyntö',
+ 'Request for Quotations' => 'Tarjouspyynnöt',
+ 'Required by' => 'Toimituspäivä',
+ 'Sales Invoice' => 'Myyntilasku',
+ 'Sales Order' => 'Tilausvahvistus',
+ 'Sales Orders' => 'Tilausvahvistukset',
+ 'Salesperson' => 'Myyjä',
+ 'Save' => 'Tallenna',
+ 'Save as new' => 'Tallenna uutena',
+ 'Screen' => 'Näyttö',
+ 'Select from one of the names below' => 'Valitse yksi nimi alapuolelta',
+ 'Select from one of the projects below' => 'Valitse yksi projekti alapuolelta',
+ 'Select postscript or PDF!' => 'Valitse postscript tai PDF!',
+ 'Select txt, postscript or PDF!' => 'Valitse tekstitiedosto, postscript tai PDF!',
+ 'Sep' => 'Syy',
+ 'September' => 'Syyskuu',
+ 'Serial No.' => 'Sarjanumero',
+ 'Service' => 'Palvelu',
+ 'Ship' => 'Lähetä',
+ 'Ship to' => 'Toimitusosoite',
+ 'Ship via' => 'Välipiste',
+ 'Startdate' => 'Aloituspäivä',
+ 'State/Province' => 'Lääni',
+ 'Subject' => 'Aihe',
+ 'Subtotal' => 'Välisumma',
+ 'Tax' => 'Vero',
+ 'Tax Included' => 'ALV sisältyy',
+ 'Terms' => 'Maksuehto',
+ 'To' => 'Hetkeen',
+ 'Total' => 'Yhteensä',
+ 'Transfer' => 'Siirto',
+ 'Unit' => 'Yksikkö',
+ 'Update' => 'Päivitä',
+ 'Vendor' => 'Toimittaja',
+ 'Vendor Invoice' => 'Ostolasku',
+ 'Vendor Number' => 'Toimittajanumero',
+ 'Vendor missing!' => 'Toimittaja puuttuu!',
+ 'Vendor not on file!' => 'Toimittajaa ei järjestelmässä!',
+ 'Warehouse' => 'Varasto',
+ 'Warning!' => 'Varoitus!',
+ 'What type of item is this?' => 'Minkä tyyppinen nimike tämä on?',
+ 'Work Order' => 'Työtilaus',
+ 'Year' => 'Vuosi',
+ 'Yes' => 'Kyllä',
+ 'Zip/Postal Code' => 'Postinumero',
+ 'days' => 'päivää',
+ 'ea' => 'kpl',
+ 'sent' => 'lähetetty',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'jatka' => 'continue',
+ 'poista' => 'delete',
+ 'suoritettu' => 'done',
+ 'sähköposti' => 'e_mail',
+ 'tulosta' => 'print',
+ 'tulosta_ja_tallenna' => 'print_and_save',
+ 'ostotilaus' => 'purchase_order',
+ 'tarjous' => 'quotation',
+ 'tarjous_' => 'quotation_',
+ 'tarjouspyyntö' => 'rfq',
+ 'tarjouspyyntö_' => 'rfq_',
+ 'myyntilasku' => 'sales_invoice',
+ 'tilausvahvistus' => 'sales_order',
+ 'tallenna' => 'save',
+ 'tallenna_uutena' => 'save_as_new',
+ 'toimitusosoite' => 'ship_to',
+ 'siirto' => 'transfer',
+ 'päivitä' => 'update',
+ 'ostolasku' => 'vendor_invoice',
+ 'kyllä' => 'yes',
+};
+
+1;
+
diff --git a/locale/fi/pe b/locale/fi/pe
new file mode 100755
index 00000000..def6a8d1
--- /dev/null
+++ b/locale/fi/pe
@@ -0,0 +1,133 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Kirjanpitovalikko',
+ 'Active' => 'Avoin',
+ 'Add' => 'Lisää',
+ 'Add Group' => 'Lisää ryhmä',
+ 'Add Pricegroup' => 'Lisää hintaryhmä',
+ 'Add Project' => 'Lisää projekti',
+ 'Address' => 'Osoite',
+ 'All' => 'Kaikki',
+ 'Amount' => 'Summa',
+ 'Bin' => 'Varastopaikka',
+ 'Continue' => 'Jatka',
+ 'Current' => 'Erääntyy',
+ 'Customer' => 'Asiakas',
+ 'Customer missing!' => 'Asiakas puuttuu!',
+ 'Customer not on file!' => 'Asiakas ei järjestelmässä!',
+ 'Date' => 'Päiväys',
+ 'Delete' => 'Poista',
+ 'Description' => 'Kuvaus',
+ 'Detail' => 'Yksityiskohdat',
+ 'Edit Group' => 'Muokkaa ryhmää',
+ 'Edit Pricegroup' => 'Muokkaa hintaryhmää',
+ 'Edit Project' => 'Muokkaa projektia',
+ 'Employee' => 'Työntekijä',
+ 'Enddate' => 'Päättymispäivä',
+ 'From' => 'Alkaen',
+ 'Group' => 'Ryhmä',
+ 'Group deleted!' => 'Ryhmä poistettu',
+ 'Group missing!' => 'Ryhmä puuttuu',
+ 'Group saved!' => 'Ryhmä tallennettu',
+ 'Groups' => 'Ryhmät',
+ 'Income' => 'Tulo',
+ 'Language' => 'Kieli',
+ 'Languages not defined!' => 'Kielet ei ole määritelty',
+ 'Link Accounts' => 'Linkkaa tilit',
+ 'List Price' => 'Listaa hinnat',
+ 'Month' => 'Kuukausi',
+ 'Notes' => 'Lisätietoja',
+ 'Nothing selected!' => 'Mitään valitsematta!',
+ 'Number' => 'Numero',
+ 'Orphaned' => 'Hylätyt',
+ 'Period' => 'Ajanjakso',
+ 'Pricegroup' => 'Hintaryhmä',
+ 'Pricegroup deleted!' => 'Hintaryhmä poistettu',
+ 'Pricegroup missing!' => 'Hintaryhmä puuttuu',
+ 'Pricegroup saved!' => 'Hintaryhmä tallennettu',
+ 'Pricegroups' => 'Hintaryhmät',
+ 'Project' => 'Projekti',
+ 'Project Number' => 'Projektinumero',
+ 'Project deleted!' => 'Projekti poistettu!',
+ 'Project saved!' => 'Projekti tallennettu!',
+ 'Projects' => 'Projektit',
+ 'Qty' => 'Määrä',
+ 'Quarter' => 'Neljännes',
+ 'Save' => 'Tallenna',
+ 'Select from one of the names below' => 'Valitse yksi nimi alapuolelta',
+ 'Sell Price' => 'Myyntihinta',
+ 'Startdate' => 'Aloituspäivä',
+ 'Summary' => 'Kooste',
+ 'Tax' => 'Vero',
+ 'To' => 'Hetkeen',
+ 'Unit' => 'Yksikkö',
+ 'Update' => 'Päivitä',
+ 'Updated' => 'Päivitetty',
+ 'Vendor' => 'Toimittaja',
+ 'Vendor not on file!' => 'Toimittajaa ei järjestelmässä!',
+ 'Weight' => 'Paino',
+ 'Year' => 'Vuosi',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'lisää_ryhmä' => 'add_group',
+ 'lisää_hintaryhmä' => 'add_pricegroup',
+ 'lisää_projekti' => 'add_project',
+ 'jatka' => 'continue',
+ 'poista' => 'delete',
+ 'tallenna' => 'save',
+ 'päivitä' => 'update',
+};
+
+1;
+
diff --git a/locale/fi/pos b/locale/fi/pos
new file mode 100755
index 00000000..b42f62f0
--- /dev/null
+++ b/locale/fi/pos
@@ -0,0 +1,76 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Kirjanpitovalikko',
+ 'Amount' => 'Summa',
+ 'Business' => 'Toimiala',
+ 'Cannot post transaction!' => 'Vientiä ei voi kirjata',
+ 'Change' => 'Vaihda',
+ 'Continue' => 'Jatka',
+ 'Credit Limit' => 'Luottoraja',
+ 'Currency' => 'Valuutta',
+ 'Current' => 'Erääntyy',
+ 'Customer' => 'Asiakas',
+ 'Customer missing!' => 'Asiakas puuttuu!',
+ 'Delete' => 'Poista',
+ 'Department' => 'Toimipiste',
+ 'Description' => 'Kuvaus',
+ 'Exchange Rate' => 'Vaihtokurssi',
+ 'Exchange rate missing!' => 'Vaihtokurssi puuttuu',
+ 'Extended' => 'Pidennetty',
+ 'From' => 'Alkaen',
+ 'Language' => 'Kieli',
+ 'Month' => 'Kuukausi',
+ 'Number' => 'Numero',
+ 'Open' => 'Avoinna',
+ 'Period' => 'Ajanjakso',
+ 'Post' => 'Kirjaa',
+ 'Posted!' => 'Kirjattu!',
+ 'Price' => 'Hinta',
+ 'Print' => 'Tulosta',
+ 'Print and Post' => 'Tulosta ja kirjaa',
+ 'Printed' => 'Tulostettu',
+ 'Qty' => 'Määrä',
+ 'Quarter' => 'Neljännes',
+ 'Receipts' => 'Kuitit',
+ 'Record in' => 'Talleta tilille',
+ 'Remaining' => 'Jäljellä',
+ 'Salesperson' => 'Myyjä',
+ 'Screen' => 'Näyttö',
+ 'Source' => 'Lähde',
+ 'Subtotal' => 'Välisumma',
+ 'Tax Included' => 'ALV sisältyy',
+ 'To' => 'Hetkeen',
+ 'Total' => 'Yhteensä',
+ 'Unit' => 'Yksikkö',
+ 'Update' => 'Päivitä',
+ 'Year' => 'Vuosi',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'jatka' => 'continue',
+ 'poista' => 'delete',
+ 'kirjaa' => 'post',
+ 'tulosta' => 'print',
+ 'tulosta_ja_kirjaa' => 'print_and_post',
+ 'päivitä' => 'update',
+};
+
+1;
+
diff --git a/locale/fi/ps b/locale/fi/ps
new file mode 100755
index 00000000..a373f689
--- /dev/null
+++ b/locale/fi/ps
@@ -0,0 +1,343 @@
+$self{texts} = {
+ 'AP Aging' => 'Erääntyvät ostolaskut',
+ 'AP Transaction' => 'Ostotapahtuma',
+ 'AP Transactions' => 'Ostotapahtumat',
+ 'AR Aging' => 'Erääntyvät myyntilaskut',
+ 'AR Transaction' => 'Myyntitapahtuma',
+ 'AR Transactions' => 'Myyntitapahtumat',
+ 'Account' => 'Tili',
+ 'Account Number' => 'Tilinumero',
+ 'Accounting Menu' => 'Kirjanpitovalikko',
+ 'Accounts' => 'Tilit',
+ 'Add AP Transaction' => 'Lisää ostotapahtuma',
+ 'Add AR Transaction' => 'Lisää myyntitapahtuma',
+ 'Add Purchase Order' => 'Ostotilaus',
+ 'Add Quotation' => 'Lisää tarjous',
+ 'Add Request for Quotation' => 'Lisää tarjouspyyntö',
+ 'Add Sales Invoice' => 'Lisää myyntilasku',
+ 'Add Sales Order' => 'Lisää tilausvahvistus',
+ 'Address' => 'Osoite',
+ 'All Accounts' => 'Kaikki tunnukset',
+ 'Amount' => 'Summa',
+ 'Amount Due' => 'Erääntyvä summa',
+ 'Apr' => 'Huh',
+ 'April' => 'Huhtikuu',
+ 'Are you sure you want to delete Invoice Number' => 'Haluatko poistaa laskun numero',
+ 'Are you sure you want to delete Transaction' => 'Haluatko poistaa viennin',
+ 'Attachment' => 'Liite',
+ 'Aug' => 'Elo',
+ 'August' => 'Elokuu',
+ 'Balance' => 'Tase',
+ 'Balance Sheet' => 'Taselaskelma',
+ 'Bcc' => 'Näkymätön kopio',
+ 'Billing Address' => 'Laskutusosoite',
+ 'Bin' => 'Varastopaikka',
+ 'Business' => 'Toimiala',
+ 'Cannot delete invoice!' => 'Laskua ei voi poistaa!',
+ 'Cannot delete transaction!' => 'Vientiä ei voi poistaa!',
+ 'Cannot post invoice for a closed period!' => 'Laskun kirjaus suljetulle ajanjaksolle kielletty!',
+ 'Cannot post invoice!' => 'Laskua ei voi kirjata!',
+ 'Cannot post payment for a closed period!' => 'Maksun kirjaus suljetulle ajanjaksolle kielletty!',
+ 'Cannot post transaction for a closed period!' => 'Viennin kirjaus suljetulle ajanjaksolle kielletty!',
+ 'Cannot post transaction!' => 'Vientiä ei voi kirjata',
+ 'Cash' => 'Käteiskauppa',
+ 'Cc' => 'Kopio',
+ 'Change' => 'Vaihda',
+ 'Check' => 'Sekki',
+ 'City' => 'Kaupunki',
+ 'Closed' => 'Suljettu',
+ 'Company Name' => 'Yrityksen nimi',
+ 'Compare to' => 'verrattuna',
+ 'Confirm!' => 'Vahvista!',
+ 'Contact' => 'Yhteyshenkilö',
+ 'Continue' => 'Jatka',
+ 'Copies' => 'Kopiot',
+ 'Country' => 'Maa',
+ 'Credit' => 'Kredit',
+ 'Credit Limit' => 'Luottoraja',
+ 'Curr' => 'Valuutta',
+ 'Currency' => 'Valuutta',
+ 'Current' => 'Erääntyy',
+ 'Current Earnings' => 'Nykyisen tilikauden tuotot',
+ 'Customer' => 'Asiakas',
+ 'Customer Number' => 'Asiakasnumero',
+ 'Customer missing!' => 'Asiakas puuttuu!',
+ 'Customer not on file!' => 'Asiakas ei järjestelmässä!',
+ 'Date' => 'Päiväys',
+ 'Date Paid' => 'Maksupäivä',
+ 'Debit' => 'Debet',
+ 'Dec' => 'Jou',
+ 'December' => 'Joulukuu',
+ 'Decimalplaces' => 'Desimaalipaikkoja',
+ 'Delete' => 'Poista',
+ 'Delivery Date' => 'Toimituspäivä',
+ 'Department' => 'Toimipiste',
+ 'Description' => 'Kuvaus',
+ 'Detail' => 'Yksityiskohdat',
+ 'Due Date' => 'Eräpäivä',
+ 'Due Date missing!' => 'Eräpäivä puuttuu!',
+ 'E-mail' => 'Sähköposti',
+ 'E-mail Statement to' => 'Sähköpostilla tiliote',
+ 'E-mail address missing!' => 'Sähköpostiosoite puuttuu!',
+ 'E-mailed' => 'Lähetetty',
+ 'Edit AP Transaction' => 'Muokkaa ostotapahtumaa',
+ 'Edit AR Transaction' => 'Muokkaa myyntitapahtumaa',
+ 'Edit Sales Invoice' => 'Muokkaa myyntilaskua',
+ 'Employee' => 'Työntekijä',
+ 'Exch' => 'Vaihtokurssi',
+ 'Exchange Rate' => 'Vaihtokurssi',
+ 'Exchange rate for payment missing!' => 'Maksun vaihtokurssi puuttuu',
+ 'Exchange rate missing!' => 'Vaihtokurssi puuttuu',
+ 'Extended' => 'Pidennetty',
+ 'Fax' => 'Faksi',
+ 'Feb' => 'Hel',
+ 'February' => 'Helmikuu',
+ 'From' => 'Alkaen',
+ 'GIFI' => 'GIFI',
+ 'Group' => 'Ryhmä',
+ 'Heading' => 'Otsikko',
+ 'ID' => 'ID',
+ 'In-line' => 'Linjalla',
+ 'Include in Report' => 'Sisällytä raporttiin',
+ 'Income Statement' => 'Tuloslaskelma',
+ 'Internal Notes' => 'Sisäiset viestit',
+ 'Invoice' => 'Lasku',
+ 'Invoice Date' => 'Laskun päiväys',
+ 'Invoice Date missing!' => 'Laskun päiväys puuttuu!',
+ 'Invoice Number' => 'Laskun numero',
+ 'Invoice Number missing!' => 'Laskun numero puuttuu!',
+ 'Invoice deleted!' => 'Lasku poistettu!',
+ 'Item not on file!' => 'Nimikettä ei ole järjestelmässä!',
+ 'Jan' => 'Tam',
+ 'January' => 'Tammikuu',
+ 'Jul' => 'Hei',
+ 'July' => 'Heinäkuu',
+ 'Jun' => 'Kes',
+ 'June' => 'Kesäkuu',
+ 'Language' => 'Kieli',
+ 'Manager' => 'Johtaja',
+ 'Mar' => 'Maa',
+ 'March' => 'Maaliskuu',
+ 'May' => 'Tou',
+ 'May ' => 'Toukokuu',
+ 'Message' => 'Viesti',
+ 'Method' => 'Tapa',
+ 'Month' => 'Kuukausi',
+ 'N/A' => 'Ei saatavilla',
+ 'No.' => 'no',
+ 'Non-taxable Purchases' => 'Verottomat ostot',
+ 'Non-taxable Sales' => 'Verottomat myynnit',
+ 'Notes' => 'Lisätietoja',
+ 'Nothing selected!' => 'Mitään valitsematta!',
+ 'Nothing to print!' => 'Ei tulostettavaa!',
+ 'Nov' => 'Mar',
+ 'November' => 'Marraskuu',
+ 'Number' => 'Numero',
+ 'Number missing in Row' => 'Numero puuttuu kannan riviltä',
+ 'Oct' => 'Lok',
+ 'October' => 'Lokakuu',
+ 'Open' => 'Avoinna',
+ 'Order' => 'Tilaus',
+ 'Order Date missing!' => 'Tilauspäivämäärä puuttuu!',
+ 'Order Number' => 'Tilausnumero',
+ 'Order Number missing!' => 'Tilausnumero puuttuu!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Pakkauslista',
+ 'Packing List Date missing!' => 'Pakkauslistan päiväys puuttuu!',
+ 'Packing List Number missing!' => 'Pakkauslistan numero puuttuu!',
+ 'Paid' => 'Maksettu',
+ 'Part' => 'Tarvike',
+ 'Payment date missing!' => 'Maksupäivä puuttuu!',
+ 'Payments' => 'Maksut',
+ 'Period' => 'Ajanjakso',
+ 'Phone' => 'Puhelin',
+ 'Post' => 'Kirjaa',
+ 'Post as new' => 'Kirjaa uutena',
+ 'Posted!' => 'Kirjattu!',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Hinta',
+ 'Print' => 'Tulosta',
+ 'Print and Post' => 'Tulosta ja kirjaa',
+ 'Printed' => 'Tulostettu',
+ 'Project' => 'Projekti',
+ 'Project Number' => 'Projektinumero',
+ 'Project Transactions' => 'Projektin tapahtumat',
+ 'Project not on file!' => 'Projekti ei ole järjestelmässä!',
+ 'Purchase Order' => 'Ostotilaus',
+ 'Qty' => 'Määrä',
+ 'Quarter' => 'Neljännes',
+ 'Quotation' => 'Tarjous',
+ 'Quotation Date missing!' => 'Tarjouspäivä puuttuu',
+ 'Quotation Number missing!' => 'Tarjousnumero puuttuu',
+ 'Recd' => 'Vastaanotettu',
+ 'Receipt' => 'Kuitti',
+ 'Receipts' => 'Kuitit',
+ 'Record in' => 'Talleta tilille',
+ 'Reference' => 'Viite',
+ 'Remaining' => 'Jäljellä',
+ 'Report for' => 'Raportti',
+ 'Required by' => 'Toimituspäivä',
+ 'Sales Invoice.' => 'Myyntilasku.',
+ 'Sales Order' => 'Tilausvahvistus',
+ 'Salesperson' => 'Myyjä',
+ 'Screen' => 'Näyttö',
+ 'Select all' => 'Valitse kaikki',
+ 'Select from one of the names below' => 'Valitse yksi nimi alapuolelta',
+ 'Select from one of the projects below' => 'Valitse yksi projekti alapuolelta',
+ 'Select payment' => 'Valitse maksutapa',
+ 'Select postscript or PDF!' => 'Valitse postscript tai PDF!',
+ 'Select txt, postscript or PDF!' => 'Valitse tekstitiedosto, postscript tai PDF!',
+ 'Sep' => 'Syy',
+ 'September' => 'Syyskuu',
+ 'Serial No.' => 'Sarjanumero',
+ 'Service' => 'Palvelu',
+ 'Ship' => 'Lähetä',
+ 'Ship to' => 'Toimitusosoite',
+ 'Ship via' => 'Välipiste',
+ 'Source' => 'Lähde',
+ 'Standard' => 'Vakio',
+ 'Startdate' => 'Aloituspäivä',
+ 'State/Province' => 'Lääni',
+ 'Statement' => 'Tiliote',
+ 'Statement sent to' => 'Tiliote lähetetty',
+ 'Statements sent to printer!' => 'Tiliotteet lähetetty tulostimelle!',
+ 'Subject' => 'Aihe',
+ 'Subtotal' => 'Välisumma',
+ 'Summary' => 'Kooste',
+ 'Tax' => 'Vero',
+ 'Tax Included' => 'ALV sisältyy',
+ 'Tax collected' => 'Veroa kerätty',
+ 'Tax paid' => 'Veroa maksettu',
+ 'To' => 'Hetkeen',
+ 'Total' => 'Yhteensä',
+ 'Transaction' => 'Vienti',
+ 'Transaction deleted!' => 'Vienti poistettu!',
+ 'Transaction posted!' => 'Vienti kirjattu!',
+ 'Trial Balance' => 'Saldolista',
+ 'Unit' => 'Yksikkö',
+ 'Update' => 'Päivitä',
+ 'Vendor' => 'Toimittaja',
+ 'Vendor Invoice.' => 'Ostolasku.',
+ 'Vendor Number' => 'Toimittajanumero',
+ 'Vendor missing!' => 'Toimittaja puuttuu!',
+ 'Vendor not on file!' => 'Toimittajaa ei järjestelmässä!',
+ 'Warning!' => 'Varoitus!',
+ 'What type of item is this?' => 'Minkä tyyppinen nimike tämä on?',
+ 'Work Order' => 'Työtilaus',
+ 'Year' => 'Vuosi',
+ 'Yes' => 'Kyllä',
+ 'Zip/Postal Code' => 'Postinumero',
+ 'as at' => 'päivänä ',
+ 'ea' => 'kpl',
+ 'for Period' => 'jaksolle',
+ 'posted!' => 'kirjattu!',
+ 'sent' => 'lähetetty',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'ostotapahtuma' => 'ap_transaction',
+ 'myyntitapahtuma' => 'ar_transaction',
+ 'jatka' => 'continue',
+ 'poista' => 'delete',
+ 'sähköposti' => 'e_mail',
+ 'kirjaa' => 'post',
+ 'kirjaa_uutena' => 'post_as_new',
+ 'tulosta' => 'print',
+ 'tulosta_ja_kirjaa' => 'print_and_post',
+ 'myyntilasku_' => 'sales_invoice_',
+ 'tilausvahvistus' => 'sales_order',
+ 'valitse_kaikki' => 'select_all',
+ 'toimitusosoite' => 'ship_to',
+ 'päivitä' => 'update',
+ 'ostolasku_' => 'vendor_invoice_',
+ 'kyllä' => 'yes',
+};
+
+1;
+
diff --git a/locale/fi/pw b/locale/fi/pw
new file mode 100755
index 00000000..a9b6101e
--- /dev/null
+++ b/locale/fi/pw
@@ -0,0 +1,13 @@
+$self{texts} = {
+ 'Continue' => 'Jatka',
+ 'Password' => 'Salasana',
+ 'Session expired!' => 'Yhteys vanhentunut',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'jatka' => 'continue',
+};
+
+1;
+
diff --git a/locale/fi/rc b/locale/fi/rc
new file mode 100755
index 00000000..cb3d5124
--- /dev/null
+++ b/locale/fi/rc
@@ -0,0 +1,75 @@
+$self{texts} = {
+ 'Account' => 'Tili',
+ 'Accounting Menu' => 'Kirjanpitovalikko',
+ 'Apr' => 'Huh',
+ 'April' => 'Huhtikuu',
+ 'Aug' => 'Elo',
+ 'August' => 'Elokuu',
+ 'Balance' => 'Tase',
+ 'Beginning Balance' => 'Alkusaldo',
+ 'Cleared' => 'Tyhjennetty',
+ 'Continue' => 'Jatka',
+ 'Credit' => 'Kredit',
+ 'Current' => 'Erääntyy',
+ 'Date' => 'Päiväys',
+ 'Debit' => 'Debet',
+ 'Dec' => 'Jou',
+ 'December' => 'Joulukuu',
+ 'Description' => 'Kuvaus',
+ 'Detail' => 'Yksityiskohdat',
+ 'Difference' => 'Ero',
+ 'Done' => 'Suoritettu',
+ 'Feb' => 'Hel',
+ 'February' => 'Helmikuu',
+ 'From' => 'Alkaen',
+ 'Jan' => 'Tam',
+ 'January' => 'Tammikuu',
+ 'Jul' => 'Hei',
+ 'July' => 'Heinäkuu',
+ 'Jun' => 'Kes',
+ 'June' => 'Kesäkuu',
+ 'Mar' => 'Maa',
+ 'March' => 'Maaliskuu',
+ 'May' => 'Tou',
+ 'May ' => 'Toukokuu',
+ 'Month' => 'Kuukausi',
+ 'Nov' => 'Mar',
+ 'November' => 'Marraskuu',
+ 'Oct' => 'Lok',
+ 'October' => 'Lokakuu',
+ 'Out of balance!' => 'Taseet eivät täsmää',
+ 'Period' => 'Ajanjakso',
+ 'Quarter' => 'Neljännes',
+ 'Reconciliation' => 'Sovitus',
+ 'Select all' => 'Valitse kaikki',
+ 'Sep' => 'Syy',
+ 'September' => 'Syyskuu',
+ 'Source' => 'Lähde',
+ 'Statement Balance' => 'Tiliotteen tase',
+ 'Summary' => 'Kooste',
+ 'To' => 'Hetkeen',
+ 'Update' => 'Päivitä',
+ 'Year' => 'Vuosi',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'jatka' => 'continue',
+ 'suoritettu' => 'done',
+ 'valitse_kaikki' => 'select_all',
+ 'päivitä' => 'update',
+};
+
+1;
+
diff --git a/locale/fi/rp b/locale/fi/rp
new file mode 100755
index 00000000..c326f31c
--- /dev/null
+++ b/locale/fi/rp
@@ -0,0 +1,175 @@
+$self{texts} = {
+ 'AP Aging' => 'Erääntyvät ostolaskut',
+ 'AR Aging' => 'Erääntyvät myyntilaskut',
+ 'Account' => 'Tili',
+ 'Account Number' => 'Tilinumero',
+ 'Accounting Menu' => 'Kirjanpitovalikko',
+ 'Accounts' => 'Tilit',
+ 'Address' => 'Osoite',
+ 'All Accounts' => 'Kaikki tunnukset',
+ 'Amount' => 'Summa',
+ 'Apr' => 'Huh',
+ 'April' => 'Huhtikuu',
+ 'Attachment' => 'Liite',
+ 'Aug' => 'Elo',
+ 'August' => 'Elokuu',
+ 'Balance' => 'Tase',
+ 'Balance Sheet' => 'Taselaskelma',
+ 'Bcc' => 'Näkymätön kopio',
+ 'Cash' => 'Käteiskauppa',
+ 'Cc' => 'Kopio',
+ 'Compare to' => 'verrattuna',
+ 'Continue' => 'Jatka',
+ 'Copies' => 'Kopiot',
+ 'Credit' => 'Kredit',
+ 'Curr' => 'Valuutta',
+ 'Current' => 'Erääntyy',
+ 'Current Earnings' => 'Nykyisen tilikauden tuotot',
+ 'Customer' => 'Asiakas',
+ 'Customer not on file!' => 'Asiakas ei järjestelmässä!',
+ 'Date' => 'Päiväys',
+ 'Debit' => 'Debet',
+ 'Dec' => 'Jou',
+ 'December' => 'Joulukuu',
+ 'Decimalplaces' => 'Desimaalipaikkoja',
+ 'Department' => 'Toimipiste',
+ 'Description' => 'Kuvaus',
+ 'Detail' => 'Yksityiskohdat',
+ 'Due Date' => 'Eräpäivä',
+ 'E-mail' => 'Sähköposti',
+ 'E-mail Statement to' => 'Sähköpostilla tiliote',
+ 'E-mail address missing!' => 'Sähköpostiosoite puuttuu!',
+ 'Feb' => 'Hel',
+ 'February' => 'Helmikuu',
+ 'From' => 'Alkaen',
+ 'GIFI' => 'GIFI',
+ 'Heading' => 'Otsikko',
+ 'ID' => 'ID',
+ 'In-line' => 'Linjalla',
+ 'Include in Report' => 'Sisällytä raporttiin',
+ 'Income Statement' => 'Tuloslaskelma',
+ 'Invoice' => 'Lasku',
+ 'Jan' => 'Tam',
+ 'January' => 'Tammikuu',
+ 'Jul' => 'Hei',
+ 'July' => 'Heinäkuu',
+ 'Jun' => 'Kes',
+ 'June' => 'Kesäkuu',
+ 'Language' => 'Kieli',
+ 'Mar' => 'Maa',
+ 'March' => 'Maaliskuu',
+ 'May' => 'Tou',
+ 'May ' => 'Toukokuu',
+ 'Message' => 'Viesti',
+ 'Method' => 'Tapa',
+ 'Month' => 'Kuukausi',
+ 'N/A' => 'Ei saatavilla',
+ 'Non-taxable Purchases' => 'Verottomat ostot',
+ 'Non-taxable Sales' => 'Verottomat myynnit',
+ 'Nothing selected!' => 'Mitään valitsematta!',
+ 'Nov' => 'Mar',
+ 'November' => 'Marraskuu',
+ 'Number' => 'Numero',
+ 'Oct' => 'Lok',
+ 'October' => 'Lokakuu',
+ 'Order' => 'Tilaus',
+ 'PDF' => 'PDF',
+ 'Payments' => 'Maksut',
+ 'Period' => 'Ajanjakso',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Tulosta',
+ 'Project' => 'Projekti',
+ 'Project Number' => 'Projektinumero',
+ 'Project Transactions' => 'Projektin tapahtumat',
+ 'Project not on file!' => 'Projekti ei ole järjestelmässä!',
+ 'Quarter' => 'Neljännes',
+ 'Receipts' => 'Kuitit',
+ 'Reference' => 'Viite',
+ 'Report for' => 'Raportti',
+ 'Salesperson' => 'Myyjä',
+ 'Screen' => 'Näyttö',
+ 'Select all' => 'Valitse kaikki',
+ 'Select from one of the names below' => 'Valitse yksi nimi alapuolelta',
+ 'Select from one of the projects below' => 'Valitse yksi projekti alapuolelta',
+ 'Select postscript or PDF!' => 'Valitse postscript tai PDF!',
+ 'Sep' => 'Syy',
+ 'September' => 'Syyskuu',
+ 'Source' => 'Lähde',
+ 'Standard' => 'Vakio',
+ 'Startdate' => 'Aloituspäivä',
+ 'Statement' => 'Tiliote',
+ 'Statement sent to' => 'Tiliote lähetetty',
+ 'Statements sent to printer!' => 'Tiliotteet lähetetty tulostimelle!',
+ 'Subject' => 'Aihe',
+ 'Subtotal' => 'Välisumma',
+ 'Summary' => 'Kooste',
+ 'Tax' => 'Vero',
+ 'Tax collected' => 'Veroa kerätty',
+ 'Tax paid' => 'Veroa maksettu',
+ 'To' => 'Hetkeen',
+ 'Total' => 'Yhteensä',
+ 'Trial Balance' => 'Saldolista',
+ 'Vendor' => 'Toimittaja',
+ 'Vendor not on file!' => 'Toimittajaa ei järjestelmässä!',
+ 'Warning!' => 'Varoitus!',
+ 'Year' => 'Vuosi',
+ 'as at' => 'päivänä ',
+ 'for Period' => 'jaksolle',
+ 'sent' => 'lähetetty',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'jatka' => 'continue',
+ 'sähköposti' => 'e_mail',
+ 'tulosta' => 'print',
+ 'valitse_kaikki' => 'select_all',
+};
+
+1;
+
diff --git a/locale/fi_utf/COPYING b/locale/fi_utf/COPYING
new file mode 100755
index 00000000..b0951f39
--- /dev/null
+++ b/locale/fi_utf/COPYING
@@ -0,0 +1,26 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2002, 2006
+#
+# Finnish texts:
+#
+# Authors: Petri Leppänen <mpj@mail.htk.fi>
+# Jukka Aho <jukka.aho@kapsi.fi>
+# Paul Saris <paul.saris@granula.com> COA's, utf8, templates
+# and recent translations
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/fi_utf/LANGUAGE b/locale/fi_utf/LANGUAGE
new file mode 100755
index 00000000..31312724
--- /dev/null
+++ b/locale/fi_utf/LANGUAGE
@@ -0,0 +1 @@
+Finnish (UTF-8)
diff --git a/locale/fi_utf/aa b/locale/fi_utf/aa
new file mode 100755
index 00000000..5e726081
--- /dev/null
+++ b/locale/fi_utf/aa
@@ -0,0 +1,161 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Ei maksetut ostolaskut',
+ 'AP Transaction' => 'Ostotapahtuma',
+ 'AP Transactions' => 'Ostotapahtumat',
+ 'AR Outstanding' => 'Ei maksetut myyntilaskut',
+ 'AR Transaction' => 'Myyntitapahtuma',
+ 'AR Transactions' => 'Myyntitapahtumat',
+ 'Account' => 'Tili',
+ 'Accounting Menu' => 'Kirjanpitovalikko',
+ 'Add AP Transaction' => 'Lisää ostotapahtuma',
+ 'Add AR Transaction' => 'Lisää myyntitapahtuma',
+ 'Amount' => 'Summa',
+ 'Amount Due' => 'Erääntyvä summa',
+ 'Apr' => 'Huh',
+ 'April' => 'Huhtikuu',
+ 'Are you sure you want to delete Transaction' => 'Haluatko poistaa viennin',
+ 'Aug' => 'Elo',
+ 'August' => 'Elokuu',
+ 'Cannot delete transaction!' => 'Vientiä ei voi poistaa!',
+ 'Cannot post payment for a closed period!' => 'Maksun kirjaus suljetulle ajanjaksolle kielletty!',
+ 'Cannot post transaction for a closed period!' => 'Viennin kirjaus suljetulle ajanjaksolle kielletty!',
+ 'Cannot post transaction!' => 'Vientiä ei voi kirjata',
+ 'Check' => 'Sekki',
+ 'Closed' => 'Suljettu',
+ 'Confirm!' => 'Vahvista!',
+ 'Continue' => 'Jatka',
+ 'Credit' => 'Kredit',
+ 'Credit Limit' => 'Luottoraja',
+ 'Curr' => 'Valuutta',
+ 'Currency' => 'Valuutta',
+ 'Current' => 'Erääntyy',
+ 'Customer' => 'Asiakas',
+ 'Customer missing!' => 'Asiakas puuttuu!',
+ 'Date' => 'Päiväys',
+ 'Date Paid' => 'Maksupäivä',
+ 'Debit' => 'Debet',
+ 'Dec' => 'Jou',
+ 'December' => 'Joulukuu',
+ 'Delete' => 'Poista',
+ 'Department' => 'Toimipiste',
+ 'Description' => 'Kuvaus',
+ 'Detail' => 'Yksityiskohdat',
+ 'Due Date' => 'Eräpäivä',
+ 'Due Date missing!' => 'Eräpäivä puuttuu!',
+ 'Edit AP Transaction' => 'Muokkaa ostotapahtumaa',
+ 'Edit AR Transaction' => 'Muokkaa myyntitapahtumaa',
+ 'Employee' => 'Työntekijä',
+ 'Exch' => 'Vaihtokurssi',
+ 'Exchange Rate' => 'Vaihtokurssi',
+ 'Exchange rate for payment missing!' => 'Maksun vaihtokurssi puuttuu',
+ 'Exchange rate missing!' => 'Vaihtokurssi puuttuu',
+ 'Feb' => 'Hel',
+ 'February' => 'Helmikuu',
+ 'From' => 'Alkaen',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Sisällytä raporttiin',
+ 'Invoice' => 'Lasku',
+ 'Invoice Date' => 'Laskun päiväys',
+ 'Invoice Date missing!' => 'Laskun päiväys puuttuu!',
+ 'Invoice Number' => 'Laskun numero',
+ 'Jan' => 'Tam',
+ 'January' => 'Tammikuu',
+ 'Jul' => 'Hei',
+ 'July' => 'Heinäkuu',
+ 'Jun' => 'Kes',
+ 'June' => 'Kesäkuu',
+ 'Manager' => 'Johtaja',
+ 'Mar' => 'Maa',
+ 'March' => 'Maaliskuu',
+ 'May' => 'Tou',
+ 'May ' => 'Toukokuu',
+ 'Memo' => 'Muistio',
+ 'Month' => 'Kuukausi',
+ 'No.' => 'no',
+ 'Notes' => 'Lisätietoja',
+ 'Nov' => 'Mar',
+ 'November' => 'Marraskuu',
+ 'Oct' => 'Lok',
+ 'October' => 'Lokakuu',
+ 'Open' => 'Avoinna',
+ 'Order' => 'Tilaus',
+ 'Order Number' => 'Tilausnumero',
+ 'PO Number' => 'Ostotilausnumero',
+ 'Paid' => 'Maksettu',
+ 'Payment date missing!' => 'Maksupäivä puuttuu!',
+ 'Payments' => 'Maksut',
+ 'Period' => 'Ajanjakso',
+ 'Post' => 'Kirjaa',
+ 'Post as new' => 'Kirjaa uutena',
+ 'Print' => 'Tulosta',
+ 'Print and Post' => 'Tulosta ja kirjaa',
+ 'Print and Post as new' => 'Tulosta ja kirjaa uutena',
+ 'Project' => 'Projekti',
+ 'Quarter' => 'Neljännes',
+ 'Receipt' => 'Kuitti',
+ 'Remaining' => 'Jäljellä',
+ 'Sales Invoice.' => 'Myyntilasku.',
+ 'Salesperson' => 'Myyjä',
+ 'Schedule' => 'Aikataulu',
+ 'Sep' => 'Syy',
+ 'September' => 'Syyskuu',
+ 'Ship to' => 'Toimitusosoite',
+ 'Ship via' => 'Välipiste',
+ 'Shipping Point' => 'Toimitusehto',
+ 'Source' => 'Lähde',
+ 'Subtotal' => 'Välisumma',
+ 'Summary' => 'Kooste',
+ 'Tax' => 'Vero',
+ 'Tax Included' => 'ALV sisältyy',
+ 'Till' => 'Kassa',
+ 'To' => 'Hetkeen',
+ 'Total' => 'Yhteensä',
+ 'Transaction' => 'Vienti',
+ 'Transaction deleted!' => 'Vienti poistettu!',
+ 'Transaction posted!' => 'Vienti kirjattu!',
+ 'Update' => 'Päivitä',
+ 'Vendor' => 'Toimittaja',
+ 'Vendor Invoice.' => 'Ostolasku.',
+ 'Vendor missing!' => 'Toimittaja puuttuu!',
+ 'Year' => 'Vuosi',
+ 'Yes' => 'Kyllä',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'ostotapahtuma' => 'ap_transaction',
+ 'myyntitapahtuma' => 'ar_transaction',
+ 'jatka' => 'continue',
+ 'poista' => 'delete',
+ 'kirjaa' => 'post',
+ 'kirjaa_uutena' => 'post_as_new',
+ 'tulosta' => 'print',
+ 'tulosta_ja_kirjaa' => 'print_and_post',
+ 'tulosta_ja_kirjaa_uutena' => 'print_and_post_as_new',
+ 'myyntilasku_' => 'sales_invoice_',
+ 'aikataulu' => 'schedule',
+ 'toimitusosoite' => 'ship_to',
+ 'päivitä' => 'update',
+ 'ostolasku_' => 'vendor_invoice_',
+ 'kyllä' => 'yes',
+};
+
+1;
+
diff --git a/locale/fi_utf/admin b/locale/fi_utf/admin
new file mode 100755
index 00000000..d5445048
--- /dev/null
+++ b/locale/fi_utf/admin
@@ -0,0 +1,145 @@
+$self{texts} = {
+ 'Access Control' => 'Kulunvalvonta',
+ 'Accounting' => 'Kirjanpito',
+ 'Add User' => 'Lisää käyttäjä',
+ 'Address' => 'Osoite',
+ 'Administration' => 'Ylläpito',
+ 'Administrator' => 'Pääkäyttäjä',
+ 'All Datasets up to date!' => 'Kaikki tietokannat ajan tasalla',
+ 'Cannot create Lock!' => 'Ei voi lukita!',
+ 'Change Admin Password' => 'Muuta pääkäyttäjän salasana',
+ 'Change Password' => 'Muuta salasana',
+ 'Click on login name to edit!' => 'Klikkaa kirjautumisnimeä muokataksesi sitä!',
+ 'Company' => 'Yritys',
+ 'Confirm' => 'Hyväksy',
+ 'Connect to' => 'Yhdistä',
+ 'Continue' => 'Jatka',
+ 'Create Chart of Accounts' => 'Luo tilikartta',
+ 'Create Dataset' => 'Luo tietolähteet',
+ 'DBA' => 'Tietokantahallinnoija',
+ 'DBI not installed!' => 'DBI-ajuria ei ole asennettu!',
+ 'Database' => 'Tietokanta',
+ 'Database Administration' => 'Tietokannan ylläpito',
+ 'Database Driver not checked!' => 'Tietokanta-ajuria ei ole tarkastettu',
+ 'Database User missing!' => 'Tietokannan käyttäjä puuttuu',
+ 'Dataset' => 'Tietokanta',
+ 'Dataset missing!' => 'Tietokanta puuttuu',
+ 'Dataset updated!' => 'Tietokanta päivitetty',
+ 'Date Format' => 'Päiväyksen muoto',
+ 'Delete' => 'Poista',
+ 'Delete Dataset' => 'Poista tietokanta',
+ 'Directory' => 'Hakemisto',
+ 'Driver' => 'Ajuri',
+ 'Dropdown Limit' => 'Pudotusvalikkojen rivimäärä',
+ 'E-mail' => 'Sähköposti',
+ 'Edit User' => 'Muokkaa käyttäjää',
+ 'Existing Datasets' => 'Nykyiset tietokannat',
+ 'Fax' => 'Faksi',
+ 'Host' => 'Osoite',
+ 'Hostname missing!' => 'Osoite puuttuu',
+ 'Language' => 'Kieli',
+ 'Lock System' => 'Lukitse järjestelmä',
+ 'Lockfile created!' => 'Järjestelmä lukittu!',
+ 'Lockfile removed!' => 'Järjestelmä avattu!',
+ 'Login' => 'Nimi',
+ 'Login name missing!' => 'Nimi puuttuu',
+ 'Logout' => 'Kirjaudu ulos',
+ 'Manager' => 'Johtaja',
+ 'Menu Width' => 'Valikon leveys',
+ 'Multibyte Encoding' => 'Itämaisten kielten tuki',
+ 'Name' => 'Nimi',
+ 'New Templates' => 'Uudet mallit',
+ 'No Database Drivers available!' => 'Tietokannan ajuria ei saatavilla!',
+ 'No Dataset selected!' => 'Ei tietokantaa valittuna!',
+ 'Nothing to delete!' => 'Ei poistettavaa!',
+ 'Number Format' => 'Numeron muoto',
+ 'Oracle Database Administration' => 'Oracle-tietokannan ylläpito',
+ 'Password' => 'Salasana',
+ 'Password changed!' => 'Salasana muutettu!',
+ 'Passwords do not match!' => 'Salasanat eivät täsmää!',
+ 'Pg Database Administration' => 'Postgres-tietokannan ylläpito',
+ 'PgPP Database Administration' => 'PgPP-tietokannan ylläpito',
+ 'Phone' => 'Puhelin',
+ 'Port' => 'Portti',
+ 'Port missing!' => 'Portti puuttuu!',
+ 'Printer' => 'Tulostin',
+ 'Save' => 'Tallenna',
+ 'Session Timeout' => 'Yhteys aikakatkaistu',
+ 'Session expired!' => 'Yhteys vanhentunut',
+ 'Setup Templates' => 'Aseta mallit',
+ 'Signature' => 'Allekirjoitus',
+ 'Stylesheet' => 'Tyylitiedosto',
+ 'Supervisor' => 'Valvoja',
+ 'Templates' => 'Mallit',
+ 'The following Datasets are not in use and can be deleted' => 'Seuraavat tietolähteet
+eivät ole käytössä ja voidaan poistaa',
+ 'The following Datasets need to be updated' => 'Seuraavat tietolähteet päivitettävä',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Tämä on olemassa olevien lähteiden ennakkotarkistus. Mitään ei luoda tai poisteta tässä vaiheessa!',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Lisätäksesi käyttäjän ryhmään muokkaa nimeä, muuta kirjautumisnimi ja tallenna.',
+ 'Unlock System' => 'Avaa järjestelmä',
+ 'Update Dataset' => 'Päivitä tietokanta',
+ 'Use Templates' => 'Käytä mallia',
+ 'User' => 'Käyttäjä',
+ 'User deleted!' => 'Käyttäjä poistettu!',
+ 'User saved!' => 'Käyttäjä tallennettu!',
+ 'Version' => 'Versio',
+ 'You are logged out' => 'Olet kirjautunut ulos',
+ 'does not exist' => 'ei löydy',
+ 'is already a member!' => 'on jo käyttäjä',
+ 'localhost' => 'paikallinen tietokone',
+ 'locked!' => 'lukittu!',
+ 'successfully created!' => 'onnistuneesti luotu!',
+ 'successfully deleted!' => 'onnistuneesti poistettu!',
+ 'website' => 'www-sivu',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'lisää_käyttäjä' => 'add_user',
+ 'muuta_pääkäyttäjän_salasana' => 'change_admin_password',
+ 'muuta_salasana' => 'change_password',
+ 'jatka' => 'continue',
+ 'luo_tietolähteet' => 'create_dataset',
+ 'poista' => 'delete',
+ 'poista_tietokanta' => 'delete_dataset',
+ 'lukitse_järjestelmä' => 'lock_system',
+ 'nimi' => 'login',
+ 'kirjaudu_ulos' => 'logout',
+ 'oracle_tietokannan_ylläpito' => 'oracle_database_administration',
+ 'postgres_tietokannan_ylläpito' => 'pg_database_administration',
+ 'pgpp_tietokannan_ylläpito' => 'pgpp_database_administration',
+ 'tallenna' => 'save',
+ 'avaa_järjestelmä' => 'unlock_system',
+ 'päivitä_tietokanta' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/fi_utf/all b/locale/fi_utf/all
new file mode 100755
index 00000000..a30c717c
--- /dev/null
+++ b/locale/fi_utf/all
@@ -0,0 +1,888 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+
+$self{texts} = {
+ 'A' => '',
+ 'AP' => 'Ostoreskontra',
+ 'AP Aging' => 'Vanhenevat ostolaskut',
+ 'AP Outstanding' => 'Ei maksetut ostolaskut',
+ 'AP Transaction' => 'Ostotapahtuma',
+ 'AP Transactions' => 'Ostotapahtumat',
+ 'AR' => 'Myyntireskontra',
+ 'AR Aging' => 'Vanhenevat myyntilaskut',
+ 'AR Outstanding' => 'Ei maksetut myyntilaskut',
+ 'AR Transaction' => 'Myyntitapahtuma',
+ 'AR Transactions' => 'Myyntitapahtumat',
+ 'AR/AP' => 'Osto/Myynti-tilit',
+ 'About' => 'Lisätietoja',
+ 'Above' => 'Edellä',
+ 'Access Control' => 'Kulunvalvonta',
+ 'Access Denied!' => 'Pääsy kielletty',
+ 'Account' => 'Tili',
+ 'Account Number' => 'Tilinumero',
+ 'Account Number missing!' => 'Tilinumero puuttuu',
+ 'Account Type' => 'Tilityyppi',
+ 'Account Type missing!' => 'Tilityyppi puuttuu',
+ 'Account deleted!' => 'Tili poistettu',
+ 'Account does not exist!' => 'Tiliä ei ole olemassa',
+ 'Account saved!' => 'Tili lisätty',
+ 'Accounting' => 'Kirjanpito',
+ 'Accounting Menu' => 'Kirjanpitovalikko',
+ 'Accounts' => 'Tilit',
+ 'Accrual' => 'Varaukset',
+ 'Activate Audit trail' => 'Aktivoi tarkastusjälki',
+ 'Active' => 'Avoin',
+ 'Add' => 'Lisää',
+ 'Add AP Transaction' => 'Lisää ostotapahtuma',
+ 'Add AR Transaction' => 'Lisää myyntitapahtuma',
+ 'Add Account' => 'Lisää tili',
+ 'Add Assembly' => 'Lisää tuote',
+ 'Add Business' => 'Lisää yritys',
+ 'Add Cash Transfer Transaction' => 'Lisää rahansiirtotapahtuma',
+ 'Add Customer' => 'Lisää asiakas',
+ 'Add Deduction' => 'Lisää vähennys',
+ 'Add Department' => 'Lisää osasto',
+ 'Add Employee' => 'Lisää työntekijä',
+ 'Add Exchange Rate' => 'Lisää vaihtokurssi',
+ 'Add GIFI' => 'Lisää GIFI',
+ 'Add General Ledger Transaction' => 'Lisää pääkirjatapahtuma',
+ 'Add Group' => 'Lisää ryhmä',
+ 'Add Job' => 'Lisää työ',
+ 'Add Labor/Overhead' => 'Lisää työ/overhead-kust',
+ 'Add Language' => 'Lisää kieli',
+ 'Add POS Invoice' => 'Lisää käteislasku',
+ 'Add Part' => 'Lisää raaka-aine/tarvike',
+ 'Add Pricegroup' => 'Lisää hintaryhmä',
+ 'Add Project' => 'Lisää projekti',
+ 'Add Purchase Order' => 'Ostotilaus',
+ 'Add Quotation' => 'Lisää tarjous',
+ 'Add Request for Quotation' => 'Lisää tarjouspyyntö',
+ 'Add SIC' => 'Lisää teollisuusluokite',
+ 'Add Sales Invoice' => 'Lisää myyntilasku',
+ 'Add Sales Order' => 'Lisää tilausvahvistus',
+ 'Add Service' => 'Lisää palvelu',
+ 'Add Timecard' => 'Lisää aikakortti',
+ 'Add Transaction' => 'Lisää tapahtuma',
+ 'Add User' => 'Lisää käyttäjä',
+ 'Add Vendor' => 'Lisää toimittaja',
+ 'Add Vendor Invoice' => 'Lisää ostolasku',
+ 'Add Warehouse' => 'Lisää varasto',
+ 'Address' => 'Osoite',
+ 'Administration' => 'Ylläpito',
+ 'Administrator' => 'Pääkäyttäjä',
+ 'After Deduction' => 'Vähennysten jälkeen',
+ 'All' => 'Kaikki',
+ 'All Accounts' => 'Kaikki tunnukset',
+ 'All Datasets up to date!' => 'Kaikki tietokannat ajan tasalla',
+ 'All Items' => 'Kaikki tuotteet',
+ 'Allowances' => 'Vähennykset',
+ 'Amount' => 'Summa',
+ 'Amount Due' => 'Erääntyvä summa',
+ 'Amount missing!' => 'Summa puuttuu!',
+ 'Apr' => 'Huh',
+ 'April' => 'Huhtikuu',
+ 'Are you sure you want to delete Invoice Number' => 'Haluatko poistaa laskun numero',
+ 'Are you sure you want to delete Order Number' => 'Haluatko poistaa tilauksen numero',
+ 'Are you sure you want to delete Quotation Number' => 'Haluatko poistaa tarjouksen numero',
+ 'Are you sure you want to delete Timecard for' => 'Haluatko poistaa aikakortin ',
+ 'Are you sure you want to delete Transaction' => 'Haluatko poistaa viennin',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Haluatko poistaa merkityt kentät listasta?',
+ 'Assemblies' => 'Tuotteet',
+ 'Assemblies restocked!' => 'Tuotteet viety varastoon',
+ 'Assembly' => 'Tuote',
+ 'Assembly stocked!' => 'Tuote varastoitu',
+ 'Asset' => 'Vastaavaa',
+ 'Attachment' => 'Liite',
+ 'Audit Control' => 'Tilien tarkistus',
+ 'Audit trail disabled' => 'Tarkastusjälki deaktivoitu',
+ 'Audit trail enabled' => 'Tarkastusjälki aktivoitu',
+ 'Audit trail removed up to' => 'Tarkastusjälki poistettu asti',
+ 'Aug' => 'Elo',
+ 'August' => 'Elokuu',
+ 'Average Cost' => 'Keskikustannus',
+ 'Avg Cost' => 'Kesk. kust.',
+ 'BIC' => 'SWIFT',
+ 'BOM' => 'Materiaalilista',
+ 'Backup' => 'Varmuuskopio',
+ 'Backup sent to' => 'Varmuuskopio lähetetty',
+ 'Balance' => 'Tase',
+ 'Balance Sheet' => 'Taselaskelma',
+ 'Based on' => 'Perustuen',
+ 'Bcc' => 'Näkymätön kopio',
+ 'Before Deduction' => 'Ennen vähennystä',
+ 'Beginning Balance' => 'Alkusaldo',
+ 'Below' => 'Alle',
+ 'Billing Address' => 'Laskutusosoite',
+ 'Bin' => 'Varastopaikka',
+ 'Bin List' => 'Varastopaikkalista',
+ 'Bin Lists' => 'Varastopaikkalistat',
+ 'Books are open' => 'Kirjat ovat avoinna',
+ 'Break' => 'Katkaise',
+ 'Business' => 'Yritys',
+ 'Business Number' => 'Y-numero',
+ 'Business deleted!' => 'Yritys poistettu',
+ 'Business saved!' => 'Yritys tallennettu',
+ 'C' => 'C',
+ 'COGS' => 'Myydyn tuotteen kulut',
+ 'COGS account does not exist!' => 'Tiliä myydyn tuotteen kuluille ei ole',
+ 'Cannot add timecard for a completed job!' => 'Aikakortin lisääminen valmiille työlle ei onnistu',
+ 'Cannot change timecard for a completed job!' => 'Aikakortin muuttaminen valmiille työlle ei onnistu',
+ 'Cannot create Assembly' => 'Tuotteen luonti ei onnistu',
+ 'Cannot create Labor' => 'Työn luonti ei onnistu',
+ 'Cannot create Lock!' => 'Ei voi lukita!',
+ 'Cannot create Part' => 'Raaka-aineen/tarvikkeen luonti ei onnistu',
+ 'Cannot create Service' => 'Palvelun luonti ei onnistu',
+ 'Cannot delete Timecard!' => 'Aikakorttia ei voi poistaa',
+ 'Cannot delete account!' => 'Tiliä ei voi poistaa!',
+ 'Cannot delete customer!' => 'Asiakasta ei voi poistaa!',
+ 'Cannot delete default account!' => 'Oletustiliä ei voi poistaa!',
+ 'Cannot delete invoice!' => 'Laskua ei voi poistaa!',
+ 'Cannot delete item!' => 'Nimikettä ei voi poistaa!',
+ 'Cannot delete order!' => 'Tilausta ei voi poistaa!',
+ 'Cannot delete quotation!' => 'Tarjouspyyntöä ei voi poistaa!',
+ 'Cannot delete transaction!' => 'Vientiä ei voi poistaa!',
+ 'Cannot delete vendor!' => 'Toimittajaa ei voi poistaa!',
+ 'Cannot post Payment!' => 'Maksua ei voi kirjata',
+ 'Cannot post Receipt!' => 'Kuittia ei voi kirjata',
+ 'Cannot post invoice for a closed period!' => 'Laskun kirjaus suljetulle ajanjaksolle kielletty!',
+ 'Cannot post invoice!' => 'Laskua ei voi kirjata!',
+ 'Cannot post payment for a closed period!' => 'Maksun kirjaus suljetulle ajanjaksolle kielletty!',
+ 'Cannot post transaction for a closed period!' => 'Viennin kirjaus suljetulle ajanjaksolle kielletty!',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => '',
+ 'Cannot post transaction!' => 'Vientiä ei voi kirjata',
+ 'Cannot remove files!' => 'Tiedostojen poisto ei onnistu!',
+ 'Cannot save account!' => 'Tilin tallennus ei onnistu!',
+ 'Cannot save defaults!' => 'Oletusasetuksien tallennus ei onnistu!',
+ 'Cannot save order!' => 'Tilauksen tallennus ei onnistu!',
+ 'Cannot save preferences!' => 'Asetuksien tallennus ei onnistu!',
+ 'Cannot save quotation!' => 'Tarjousta ei voi tallentaa!',
+ 'Cannot save timecard for a closed period!' => 'Aikakortin tallennus suljetulle ajanjaksolle kielletty',
+ 'Cannot save timecard!' => 'Aikakortin tallennus ei onnistu!',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Tili voi olla vain joko Myynti, Osto tai Varasto',
+ 'Cannot set multiple options for' => 'Ei voi asettaa useita asetuksia',
+ 'Cannot set multiple options for Item' => 'Ei voi asettaa nimikkeelle useita asetuksia',
+ 'Cannot stock Assembly!' => 'Tuoteen varastointi ei onnistu',
+ 'Cannot stock assemblies!' => 'Tuotteiden varastointi ei onnistu!',
+ 'Cash' => 'Käteiskauppa',
+ 'Cc' => 'Kopio',
+ 'Change' => 'Vaihda',
+ 'Change Admin Password' => 'Muuta pääkäyttäjän salasana',
+ 'Change Password' => 'Muuta salasana',
+ 'Charge' => 'Maksu',
+ 'Chart of Accounts' => 'Tilikartta',
+ 'Check' => 'Sekki',
+ 'Check Inventory' => 'Sekkivarasto',
+ 'Checks' => 'Sekit',
+ 'City' => 'Kaupunki',
+ 'Cleared' => 'Tyhjennetty',
+ 'Click on login name to edit!' => 'Klikkaa kirjautumisnimeä muokataksesi sitä!',
+ 'Clocked' => 'Ajastettu',
+ 'Close Books up to' => 'Sulje kirjat hetkeen',
+ 'Closed' => 'Suljettu',
+ 'Code' => 'Koodi',
+ 'Code missing!' => 'Koodi puuttuu!',
+ 'Company' => 'Yritys',
+ 'Company Name' => 'Yrityksen nimi',
+ 'Compare to' => 'verrattuna',
+ 'Completed' => 'Valmistunut',
+ 'Components' => 'Komponentit',
+ 'Confirm' => 'Hyväksy',
+ 'Confirm!' => 'Vahvista!',
+ 'Connect to' => 'Yhdistä',
+ 'Contact' => 'Yhteyshenkilö',
+ 'Continue' => 'Jatka',
+ 'Contra' => 'Kontra',
+ 'Copies' => 'Kopiot',
+ 'Copy to COA' => 'Kopioi tilikarttaan',
+ 'Cost' => 'Kustannus',
+ 'Cost Center' => 'Kustannuspaikka',
+ 'Could not save pricelist!' => 'Hintalistan tallennus ei onnistu',
+ 'Could not save!' => 'Tallentaminen ei onnistu',
+ 'Could not transfer Inventory!' => 'Varaston siirto ei onnistu',
+ 'Country' => 'Maa',
+ 'Create Chart of Accounts' => 'Luo tilikartta',
+ 'Create Dataset' => 'Luo tietolähteet',
+ 'Credit' => 'Kredit',
+ 'Credit Limit' => 'Luottoraja',
+ 'Curr' => 'Valuutta',
+ 'Currency' => 'Valuutta',
+ 'Current' => 'Nykyinen',
+ 'Current Earnings' => 'Nykyisen tilikauden tuotot',
+ 'Customer' => 'Asiakas',
+ 'Customer History' => 'Asiakashistoria',
+ 'Customer Number' => 'Asiakasnumero',
+ 'Customer deleted!' => 'Asiakas poistettu!',
+ 'Customer missing!' => 'Asiakas puuttuu!',
+ 'Customer not on file!' => 'Asiakas ei järjestelmässä!',
+ 'Customer saved!' => 'Asiakas tallennettu!',
+ 'Customers' => 'Asiakkaat',
+ 'DBI not installed!' => 'DBI-ajuria ei ole asennettu!',
+ 'DOB' => 'Syntymäaika',
+ 'Database' => 'Tietokanta',
+ 'Database Administration' => 'Tietokannan ylläpito',
+ 'Database Driver not checked!' => 'Tietokanta-ajuria ei ole tarkastettu',
+ 'Database Host' => 'Tietokannan osoite',
+ 'Database User missing!' => 'Tietokannan käyttäjä puuttuu',
+ 'Dataset' => 'Tietokanta',
+ 'Dataset is newer than version!' => 'Tietokanta on uudempi kuin sovelluksen versio',
+ 'Dataset missing!' => 'Tietokanta puuttuu',
+ 'Dataset updated!' => 'Tietokanta päivitetty',
+ 'Date' => 'Päiväys',
+ 'Date Format' => 'Päiväyksen muoto',
+ 'Date Paid' => 'Maksettu päivänä',
+ 'Date Received' => 'Vastaanotettu',
+ 'Date missing!' => 'Pvm puuttuu',
+ 'Date received missing!' => 'Vastaanottopvm puuttuu',
+ 'Date worked' => 'Työpvm',
+ 'Day' => 'Päivä',
+ 'Day(s)' => 'Päivä(t)',
+ 'Days' => 'Päivät',
+ 'Debit' => 'Debet',
+ 'Dec' => 'Jou',
+ 'December' => 'Joulukuu',
+ 'Decimalplaces' => 'Desimaalipaikkoja',
+ 'Decrease' => 'Vähennä',
+ 'Deduct after' => 'Vähennä jälkeen',
+ 'Deduction deleted!' => 'Vähennys poistettu',
+ 'Deduction saved!' => 'Vähennys tallennettu',
+ 'Deductions' => 'Vähennykset',
+ 'Default Template' => 'Oletusmalle',
+ 'Defaults' => 'Oletukset',
+ 'Defaults saved!' => 'Oletukset tallennettu',
+ 'Delete' => 'Poista',
+ 'Delete Account' => 'Poista tili',
+ 'Delete Dataset' => 'Poista tietokanta',
+ 'Delete Schedule' => 'Poista aikataulu',
+ 'Deleting a language will also delete the templates for the language' => 'Kielen poisto poistaa myös kielen mallit',
+ 'Delivery Date' => 'Toimituspäivä',
+ 'Department' => 'Osasto',
+ 'Department deleted!' => 'Osasto poistettu',
+ 'Department saved!' => 'Osasto tallennettu',
+ 'Departments' => 'Osastot',
+ 'Deposit' => 'Rahatallennus',
+ 'Description' => 'Kuvaus',
+ 'Description Translations' => 'Kuvauskäännökset',
+ 'Description missing!' => 'Kuvaus puuttuu',
+ 'Detail' => 'Yksityiskohdat',
+ 'Difference' => 'Ero',
+ 'Directory' => 'Hakemisto',
+ 'Discount' => 'Alennus',
+ 'Done' => 'Suoritettu',
+ 'Drawing' => 'Piirros',
+ 'Driver' => 'Ajuri',
+ 'Dropdown Limit' => 'Pudotusvalikkojen rivimäärä',
+ 'Due Date' => 'Eräpäivä',
+ 'Due Date missing!' => 'Eräpäivä puuttuu!',
+ 'E-mail' => 'Sähköposti',
+ 'E-mail Statement to' => 'Sähköpostilla tiliote',
+ 'E-mail address missing!' => 'Sähköpostiosoite puuttuu!',
+ 'E-mail message' => 'Sähkpostiviesti',
+ 'E-mailed' => 'Sähköpostitettu',
+ 'Edit' => 'Muokkaa',
+ 'Edit AP Transaction' => 'Muokkaa ostotapahtumaa',
+ 'Edit AR Transaction' => 'Muokkaa myyntitapahtumaa',
+ 'Edit Account' => 'Muokkaa tiliä',
+ 'Edit Assembly' => 'Muokkaa tuotetta',
+ 'Edit Business' => 'Muokkaa toimialaa',
+ 'Edit Cash Transfer Transaction' => 'Muokkaa käteissiirtotapahtumaa',
+ 'Edit Customer' => 'Muokkaa asiakasta',
+ 'Edit Deduction' => 'Muokkaa vähennystä',
+ 'Edit Department' => 'Muokkaa osastia',
+ 'Edit Description Translations' => 'Muokkaa kuvauskäännöksiä',
+ 'Edit Employee' => 'Muokkaa työntekijää',
+ 'Edit GIFI' => 'Muokkaa GIFI',
+ 'Edit General Ledger Transaction' => 'Muokkaa pääkirjavientiä',
+ 'Edit Group' => 'Muokkaa ryhmää',
+ 'Edit Job' => 'Työ',
+ 'Edit Labor/Overhead' => 'Muokaa Työ/overhead-kustannuksia',
+ 'Edit Language' => 'Muokkaa kieltä',
+ 'Edit POS Invoice' => 'Muokkaa käteismyyntilaskua',
+ 'Edit Part' => 'Muokkaa raaka-ainetta/tarviketta',
+ 'Edit Preferences for' => 'Muokkaa asetuksia',
+ 'Edit Pricegroup' => 'Muokkaa hintaryhmää',
+ 'Edit Project' => 'Muokkaa projektia',
+ 'Edit Purchase Order' => 'Muokkaa ostotilausta',
+ 'Edit Quotation' => 'Muokkaa tarjousta',
+ 'Edit Request for Quotation' => 'Muokkaa tarjouspyyntöä',
+ 'Edit SIC' => 'Muokkaa teollisuusluokite',
+ 'Edit Sales Invoice' => 'Muokkaa myyntilaskua',
+ 'Edit Sales Order' => 'Muokkaa myyntitilausta',
+ 'Edit Service' => 'Muokkaa palvelua',
+ 'Edit Template' => 'Muokkaa mallia',
+ 'Edit Timecard' => 'Muokkaa aikakorttia',
+ 'Edit User' => 'Muokkaa käyttäjää',
+ 'Edit Vendor' => 'Muokkaa myyjää',
+ 'Edit Vendor Invoice' => 'Muokkaa ostolaskua',
+ 'Edit Warehouse' => 'Muokkaa varastoa',
+ 'Employee' => 'Työntekijä',
+ 'Employee Name' => 'Työntekijän nimi',
+ 'Employee Number' => 'Työntekijän numero',
+ 'Employee deleted!' => 'Työntekijä poistettu',
+ 'Employee pays' => 'Työntekijä maksaa',
+ 'Employee saved!' => 'Työntekijä tallennettu',
+ 'Employees' => 'Työntekijät',
+ 'Employer' => 'Työnantaja',
+ 'Employer pays' => 'Työnantaja maksaa',
+ 'Enddate' => 'Päättymispäivä',
+ 'Ends' => 'Päättyy',
+ 'Enforce transaction reversal for all dates' => 'Pakota muunnos kaikille viennille',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Merkitse käyttämäsi valuutat 3 kirjaimella ja erota ne kaksoispisteellä, esim.(EUR:USD:SEK).',
+ 'Equity' => 'Oma pääoma',
+ 'Every' => 'Jokainen',
+ 'Excempt age <' => 'Paitsi ajalta <',
+ 'Exch' => 'Vaihtokurssi',
+ 'Exchange Rate' => 'Vaihtokurssi',
+ 'Exchange rate for payment missing!' => 'Maksun vaihtokurssi puuttuu',
+ 'Exchange rate missing!' => 'Vaihtokurssi puuttuu',
+ 'Existing Datasets' => 'Nykyiset tietokannat',
+ 'Expense' => 'Meno',
+ 'Expense account does not exist!' => 'Menotiliä ei ole',
+ 'Expense/Asset' => 'Meno/Vastaavaa',
+ 'Extended' => 'Pidennetty',
+ 'FX' => 'Valuutat',
+ 'Failed to save order!' => 'Tilauksen tallennus epäonnistui',
+ 'Fax' => 'Faksi',
+ 'Feb' => 'Hel',
+ 'February' => 'Helmikuu',
+ 'For' => ' ',
+ 'Foreign Exchange Gain' => 'Vaihtokurssivoitto',
+ 'Foreign Exchange Loss' => 'Vaihtokurssitappio',
+ 'Friday' => 'Perjantai',
+ 'From' => 'Alkaen',
+ 'From Warehouse' => 'Varastosta',
+ 'GIFI' => 'GIFI',
+ 'GIFI deleted!' => 'GIFI poistettu!',
+ 'GIFI missing!' => 'GIFI puuttuu!',
+ 'GIFI saved!' => 'GIFI tallennettu!',
+ 'GL' => 'Pääkirja',
+ 'GL Reference Number' => 'Pääkirjan viitenumero',
+ 'GL Transaction' => 'Pääkirjavienti',
+ 'General Ledger' => 'Pääkirja',
+ 'Generate' => 'Luo',
+ 'Generate Orders' => 'Luo tilaukset',
+ 'Generate Purchase Orders' => 'Luo ostotilaukset',
+ 'Generate Purchase Orders from Sales Order' => 'Luo ostotilaukset myyntitilauksesta',
+ 'Generate Sales Order' => 'Luo myyntitilaus',
+ 'Generate Sales Order from Purchase Orders' => 'Luo myyntitilaus ostotilauksista',
+ 'Generate Sales Orders' => 'Luo myyntitilaukset',
+ 'Goods & Services' => 'Hyödykkeet ja palvelut',
+ 'Group' => 'Ryhmä',
+ 'Group Items' => 'Ryhmän tuotteet',
+ 'Group Translations' => 'Ryhmäkäännökset',
+ 'Group deleted!' => 'Ryhmä poistettu',
+ 'Group missing!' => 'Ryhmä puuttuu',
+ 'Group saved!' => 'Ryhmä tallennettu',
+ 'Groups' => 'Ryhmät',
+ 'HR' => 'Henkilöstöhallinta',
+ 'HTML Templates' => 'HTML-mallit',
+ 'Heading' => 'Otsikko',
+ 'History' => 'Historia',
+ 'Home Phone' => 'Kotipuhelin',
+ 'Host' => 'Palvelin',
+ 'Hostname missing!' => 'Palvelimen nimi puuttuu',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Image' => 'Kuva',
+ 'In-line' => 'Linjalla',
+ 'Inactive' => 'Ei aktiivinen',
+ 'Include Exchange Rate Difference' => 'Sisällytä vaihtokurssiero',
+ 'Include Payment' => 'Sisällytä maksu',
+ 'Include in Report' => 'Sisällytä raporttiin',
+ 'Include in drop-down menus' => 'Sisällytä pudotusvalikoihin',
+ 'Income' => 'Tulo',
+ 'Income Statement' => 'Tulolaskelma',
+ 'Income account does not exist!' => 'Tulotiliä ei ole',
+ 'Incorrect Dataset version!' => 'Väärä tietokannan versio!',
+ 'Increase' => 'Lisää',
+ 'Individual Items' => 'Yksittäiset nimikkeet',
+ 'Internal Notes' => 'Sisäiset viestit',
+ 'Inventory' => 'Varasto',
+ 'Inventory account does not exist!' => 'Varastotiliä ei ole',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Tuotteen varaston on oltava nolla ennen asettamista epäkurantiksi!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Raaka-aineen/tarvikkeen varaston määrä on oltava nolla ennen asettamista epäkurantiksi!',
+ 'Inventory saved!' => 'Varasto tallennettu!',
+ 'Inventory transferred!' => 'Varasto siirretty!',
+ 'Invoice' => 'Lasku',
+ 'Invoice Date' => 'Laskun päiväys',
+ 'Invoice Date missing!' => 'Laskun päiväys puuttuu!',
+ 'Invoice Number' => 'Laskun numero',
+ 'Invoice Number missing!' => 'Laskun numero puuttuu!',
+ 'Invoice deleted!' => 'Lasku poistettu!',
+ 'Invoices' => 'Laskut',
+ 'Is this a summary account to record' => 'Onko tämä tallennettava yhteenvetotili?',
+ 'Item already on pricelist!' => 'Tuote jo hinnastossa',
+ 'Item deleted!' => 'Nimike poistettu!',
+ 'Item not on file!' => 'Nimikettä ei ole järjestelmässä!',
+ 'Items' => 'Tuotteet',
+ 'Jan' => 'Tam',
+ 'January' => 'Tammikuu',
+ 'Job' => 'Työ',
+ 'Job Name' => 'Työnimike',
+ 'Job Number' => 'Työnumero',
+ 'Job Number missing!' => 'Työnumero puuttuu',
+ 'Job deleted!' => 'Työ poistettu',
+ 'Job saved!' => 'Työ tallennettu',
+ 'Jobs' => 'Työt',
+ 'Jul' => 'Hei',
+ 'July' => 'Heinäkuu',
+ 'Jun' => 'Kes',
+ 'June' => 'Kesäkuu',
+ 'LaTeX Templates' => 'LaTeX mallit',
+ 'Labor Code' => 'Työkoodi',
+ 'Labor/Overhead' => 'Työ/overhead',
+ 'Language' => 'Kieli',
+ 'Language deleted!' => 'Kieli poistettu',
+ 'Language saved!' => 'Kieli tallennettu',
+ 'Languages' => 'Kielet',
+ 'Languages not defined!' => 'Kielet ei ole määritelty',
+ 'Last Cost' => 'Viimeksi toteutunut kustannus',
+ 'Last Numbers & Default Accounts' => 'Edelliset numerot ja oletustilit',
+ 'Lead' => 'Johtolanka',
+ 'Leadtime' => 'Ennakkoaika',
+ 'Leave host and port field empty unless you want to make a remote connection.' => 'Jätä osoite- ja porttikentät tyhjiksi mikäli et halua ottaa etäyhteyttä.',
+ 'Liability' => 'Vastattavaa',
+ 'Licensed to' => 'Lisenssin omistaja',
+ 'Line Total' => 'Rivi yhteensä',
+ 'Link' => 'Linkki',
+ 'Link Accounts' => 'Linkkaa tilit',
+ 'List' => 'Lista',
+ 'List Accounts' => 'Listaa tilit',
+ 'List Businesses' => 'Listaa toimialat',
+ 'List Departments' => 'Listaa toimipisteet',
+ 'List GIFI' => 'Listaa GIFI',
+ 'List Languages' => 'Listaa kielet',
+ 'List Price' => 'Listaa hinnat',
+ 'List Projects' => 'Listaa projektit',
+ 'List SIC' => 'Listaa teollisuusluokitteet',
+ 'List Transactions' => 'Listaa viennit',
+ 'List Warehouses' => 'Listaa varastot',
+ 'Lock System' => 'Lukitse järjestelmä',
+ 'Lockfile created!' => 'Järjestelmä lukittu!',
+ 'Lockfile removed!' => 'Järjestelmä avattu!',
+ 'Login' => 'Nimi',
+ 'Login name missing!' => 'Nimi puuttuu',
+ 'Logout' => 'Kirjaudu ulos',
+ 'Make' => 'Valmistaja',
+ 'Manager' => 'Vastuuhenkilö',
+ 'Mar' => 'Maa',
+ 'March' => 'Maaliskuu',
+ 'Marked entries printed!' => 'Valitut kentät tulostettu',
+ 'Markup' => 'Hintalisäys',
+ 'Maximum' => 'Maksimi',
+ 'May' => 'Tou',
+ 'May ' => 'Toukokuu',
+ 'Memo' => 'Muistio',
+ 'Menu Width' => 'Valikon leveys',
+ 'Message' => 'Viesti',
+ 'Method' => 'Tapa',
+ 'Microfiche' => 'Mikrokuva',
+ 'Model' => 'Tuotenimi',
+ 'Monday' => 'Maanatai',
+ 'Month' => 'Kuukausi',
+ 'Month(s)' => 'Kuukausi(det)',
+ 'Months' => 'Luukaudet',
+ 'Multibyte Encoding' => 'Itämaisten kielten tuki',
+ 'N/A' => 'Ei saatavilla',
+ 'Name' => 'Nimi',
+ 'Name missing!' => 'Nimi puuttuu!',
+ 'New Templates' => 'Uudet mallit',
+ 'New Window' => 'Uusi ikkuna',
+ 'Next' => 'Seuraava',
+ 'Next Date' => 'Seuraava pvm',
+ 'Next Number' => 'Seuraava numero',
+ 'No' => 'Ei',
+ 'No Database Drivers available!' => 'Tietokannan ajuria ei saatavilla!',
+ 'No Dataset selected!' => 'Ei tietokantaa valittuna!',
+ 'No Employees on file!' => 'Ei työntekijöitä tallennettuna',
+ 'No Labor codes on file!' => 'Ei työkoodeja tallennettuna',
+ 'No email address for' => 'Sähköpostiosoite puuttuu',
+ 'No open Jobs!' => 'Töitä ei auki',
+ 'No open Projects!' => 'Projekteja ei auki',
+ 'No.' => 'n:o',
+ 'Non-taxable' => 'Veroton',
+ 'Non-taxable Purchases' => 'Verottomat ostot',
+ 'Non-taxable Sales' => 'Verottomat myynnit',
+ 'Non-tracking Items' => 'Ei seurattavia tuotteita',
+ 'Notes' => 'Lisätietoja',
+ 'Nothing entered!' => 'Ei syötettä',
+ 'Nothing selected!' => 'Mitään valitsematta!',
+ 'Nothing to delete!' => 'Ei poistettavaa!',
+ 'Nothing to print!' => 'Ei tulostettavaa!',
+ 'Nothing to transfer!' => 'Ei siirrettävää!',
+ 'Nov' => 'Mar',
+ 'November' => 'Marraskuu',
+ 'Number' => 'Numero',
+ 'Number Format' => 'Numeron muoto',
+ 'Number missing in Row' => 'Numero puuttuu kannan riviltä',
+ 'O' => 'O',
+ 'OH' => '',
+ 'Obsolete' => 'Vanhentunut',
+ 'Oct' => 'Lok',
+ 'October' => 'Lokakuu',
+ 'On Hand' => 'Varastossa',
+ 'Open' => 'Avoinna',
+ 'Oracle Database Administration' => 'Oracle-tietokannan ylläpito',
+ 'Order' => 'Tilaus',
+ 'Order Date' => 'Tilauspäivämäärä',
+ 'Order Date missing!' => 'Tilauspäivämäärä puuttuu!',
+ 'Order Entry' => 'Tilauksen kirjaus',
+ 'Order Number' => 'Tilausnumero',
+ 'Order Number missing!' => 'Tilausnumero puuttuu!',
+ 'Order deleted!' => 'Tilaus poistettu!',
+ 'Order generation failed!' => 'Tilausten luonti ei onnistunut',
+ 'Order saved!' => 'Tilaus tallennettu!',
+ 'Orders generated!' => 'Tilaukset luotu',
+ 'Orphaned' => 'Hylätyt',
+ 'Out of balance transaction!' => 'Viennin taseet eivät täsmää!',
+ 'Out of balance!' => 'Taseet eivät täsmää',
+ 'Outstanding' => 'Maksamatta',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ostotilausnumero',
+ 'POS' => 'Käteiskauppa',
+ 'POS Invoice' => 'Käteiskauppalasku',
+ 'Packing List' => 'Pakkauslista',
+ 'Packing List Date missing!' => 'Pakkauslistan päiväys puuttuu!',
+ 'Packing List Number missing!' => 'Pakkauslistan numero puuttuu!',
+ 'Packing Lists' => 'Pakkauslistat',
+ 'Paid' => 'Maksettu',
+ 'Part' => 'Tarvike',
+ 'Part Number' => 'Tarvikenumero',
+ 'Partnumber' => 'Tarvikenumero',
+ 'Parts' => 'Tarvikkeet',
+ 'Password' => 'Salasana',
+ 'Password changed!' => 'Salasana muutettu!',
+ 'Password does not match!' => 'Salasana ei täsmää!',
+ 'Passwords do not match!' => 'Salasanat eivät täsmää!',
+ 'Payables' => 'Erääntyvät',
+ 'Payment' => 'Maksu',
+ 'Payment date missing!' => 'Eräpäivä puuttuu!',
+ 'Payment posted!' => 'Maksu kirjattu!',
+ 'Payments' => 'Maksut',
+ 'Payments posted!' => 'Maksut tallennettu',
+ 'Payroll Deduction' => 'Palkkavähennys',
+ 'Period' => 'Ajanjakso',
+ 'Pg Database Administration' => 'Postgres-tietokannan ylläpito',
+ 'PgPP Database Administration' => 'PgPP-tietokannan ylläpito',
+ 'Phone' => 'Puhelin',
+ 'Pick List' => 'Keräyslista',
+ 'Pick Lists' => 'Keräyslistat',
+ 'Port' => 'Portti',
+ 'Port missing!' => 'Portti puuttuu!',
+ 'Pos' => 'Rivi',
+ 'Post' => 'Kirjaa',
+ 'Post as new' => 'Kirjaa uutena',
+ 'Posted!' => 'Kirjattu!',
+ 'Posting' => 'Kirjaam',
+ 'Posting failed!' => 'Kirjaus ei onnistunut',
+ 'Postscript' => 'Postscript',
+ 'Preferences' => 'Asetukset',
+ 'Preferences saved!' => 'Asetukset tallennettu!',
+ 'Prepayment' => 'Ennakkomaksu',
+ 'Price' => 'Hinta',
+ 'Pricegroup' => 'Hintaryhmä',
+ 'Pricegroup deleted!' => 'Hintaryhmä poistettu',
+ 'Pricegroup missing!' => 'Hintaryhmä puuttuu',
+ 'Pricegroup saved!' => 'Hintaryhmä tallennettu',
+ 'Pricegroups' => 'Hintaryhmät',
+ 'Pricelist' => 'Hinnasto',
+ 'Print' => 'Tulosta',
+ 'Print and Post' => 'Tulosta ja kirjaa',
+ 'Print and Post as new' => 'Tulosta ja kirjaa uutena',
+ 'Print and Save' => 'Tulosta ja tallenna',
+ 'Print and Save as new' => 'Tulosta ja tallenna uutena',
+ 'Printed' => 'Tulostettu',
+ 'Printer' => 'Tulostin',
+ 'Printing' => 'Tulostuu',
+ 'Printing ... ' => 'Tulostuu..',
+ 'Process Transactions' => 'Prosessiviennit',
+ 'Production' => 'Tuotanto',
+ 'Profit Center' => 'Profit center',
+ 'Project' => 'Projekti',
+ 'Project Description Translations' => 'Projektikuvauskäännökset',
+ 'Project Name' => 'Projektin nimi',
+ 'Project Number' => 'Projektin numero',
+ 'Project Number missing!' => 'Projektin numero puuttuu!',
+ 'Project Transactions' => 'Projektin tapahtumat',
+ 'Project deleted!' => 'Projekti poistettu!',
+ 'Project not on file!' => 'Projekti ei ole järjestelmässä!',
+ 'Project saved!' => 'Projekti tallennettu!',
+ 'Project/Job Name' => 'Projektin/työn nimi',
+ 'Project/Job Number' => 'Projektin/työn numero',
+ 'Projects' => 'Projektit',
+ 'Purchase Order' => 'Ostotilaus',
+ 'Purchase Order Number' => 'Ostotilausnumero',
+ 'Purchase Orders' => 'Ostotilaukset',
+ 'Qty' => 'Määrä',
+ 'Quantity exceeds available units to stock!' => 'Määrä ylittää varaston',
+ 'Quarter' => 'Neljännes',
+ 'Quotation' => 'Tarjous',
+ 'Quotation ' => 'Tarjous ',
+ 'Quotation Date' => 'Tarjouksen pvm',
+ 'Quotation Date missing!' => 'Tarjouksen pvm puuttuu',
+ 'Quotation Number' => 'Tarjousnumero',
+ 'Quotation Number missing!' => 'Tarjousnumero puuttuu',
+ 'Quotation deleted!' => 'Tarjous poistettu',
+ 'Quotations' => 'Tarjoukset',
+ 'R' => '',
+ 'RFQ' => 'Tarjouspyyntö',
+ 'RFQ ' => 'Tarjouspyyntö ',
+ 'RFQ Number' => 'Tarjouspyynnön numero',
+ 'RFQs' => 'Tarjouspyynnöt',
+ 'ROP' => 'Uudelleentilauspiste',
+ 'Rate' => 'Kurssi',
+ 'Rate missing!' => 'Kurssi puuttuu',
+ 'Recd' => 'Vastaanotettu',
+ 'Receipt' => 'Kuitti',
+ 'Receipt posted!' => 'Kuitti kirjattu',
+ 'Receipts' => 'Kuitit',
+ 'Receivables' => 'Saatavat',
+ 'Receive' => 'Saada',
+ 'Receive Merchandise' => 'Saada tuotteet',
+ 'Reconciliation' => 'Sovitus',
+ 'Reconciliation Report' => 'Sovitusraportti',
+ 'Record in' => 'Talleta tilille',
+ 'Recurring Transaction' => 'Toistuva siirto',
+ 'Recurring Transactions' => 'Toistuvat siirrit',
+ 'Reference' => 'Viite',
+ 'Remaining' => 'Jäljellä',
+ 'Remove' => 'Poista',
+ 'Remove Audit trail up to' => 'Poista tarkastusjälki asti',
+ 'Removed spoolfiles!' => 'Spool-tiedostot poistettu',
+ 'Removing marked entries from queue ...' => 'Postaa merkityt jonosta',
+ 'Repeat' => 'Toista',
+ 'Report for' => 'Raportti',
+ 'Reports' => 'Raportit',
+ 'Req' => 'Pyyntö',
+ 'Request for Quotation' => 'Tarjouspyyntö',
+ 'Request for Quotations' => 'Tarjouspyynnöt',
+ 'Required by' => 'Toimituspäivä',
+ 'Retained Earnings' => 'Käyttörahasto\jakamaton voitto',
+ 'Role' => 'Rooli',
+ 'S' => '',
+ 'SIC' => 'Teollisuusluokite',
+ 'SIC deleted!' => 'Teollisuusluokite poistettu!',
+ 'SIC saved!' => 'Teollisuusluokite tallennettu!',
+ 'SKU' => 'Varastoyksikkö',
+ 'SSN' => 'Sosiaaliturvatunnus',
+ 'Sale' => 'Myynti',
+ 'Sales' => 'Myynnit',
+ 'Sales Invoice' => 'Myyntilasku',
+ 'Sales Invoice ' => 'Myyntilasku ',
+ 'Sales Invoice.' => 'Myyntilasku.',
+ 'Sales Invoice/AR Transaction Number' => 'Myyntilaskun/viennin numero',
+ 'Sales Invoices' => 'Myyntilaskut',
+ 'Sales Order' => 'Tilausvahvistus',
+ 'Sales Order Number' => 'Tilausvahvistuksen numero',
+ 'Sales Orders' => 'Tilausvahvistukset',
+ 'Sales Quotation Number' => 'Myynnntitarjousnumero',
+ 'Salesperson' => 'Käsittelijä',
+ 'Saturday' => 'Lauantai',
+ 'Save' => 'Tallenna',
+ 'Save Pricelist' => 'Tallenna hinnasto',
+ 'Save Schedule' => 'Tallenna aikataulu',
+ 'Save as new' => 'Tallenna uutena',
+ 'Save to File' => 'Tallenna tiedostoon',
+ 'Saving' => 'Tallentaa',
+ 'Schedule' => 'Aikataulu',
+ 'Scheduled' => 'Aikataulutettu',
+ 'Screen' => 'Näyttö',
+ 'Search' => 'Etsi',
+ 'Select' => 'Valitse',
+ 'Select Customer' => 'Valitse asiakas',
+ 'Select Vendor' => 'Valitse toimittaja',
+ 'Select a Printer!' => 'Valitse tulostin',
+ 'Select a printer!' => 'Valitse tulostin',
+ 'Select all' => 'Valitse kaikki',
+ 'Select from one of the items below' => 'Valitse yksi nimike alapuolelta',
+ 'Select from one of the names below' => 'Valitse yksi nimi alapuolelta',
+ 'Select from one of the projects below' => 'Valitse yksi projekti alapuolelta',
+ 'Select items' => 'Valitse nimikkeet',
+ 'Select payment' => 'Valitse maksutapa',
+ 'Select postscript or PDF!' => 'Valitse postscript tai PDF!',
+ 'Select txt, postscript or PDF!' => 'Valitse tekstitiedosto, postscript tai PDF!',
+ 'Sell' => 'Myynti',
+ 'Sell Price' => 'Myyntihinta',
+ 'Send by E-Mail' => 'Lähetä sähköpostilla',
+ 'Sending' => 'Lähettää',
+ 'Sep' => 'Syy',
+ 'September' => 'Syyskuu',
+ 'Serial No.' => 'Sarjan:o',
+ 'Serial Number' => 'Sarjanumero',
+ 'Service' => 'Palvelu',
+ 'Service Code' => 'Palvelukoodi',
+ 'Service/Labor Code' => 'Palvelu/työkoodi',
+ 'Services' => 'Palvelut',
+ 'Session Timeout' => 'Yhteys aikakatkaistu',
+ 'Session expired!' => 'Yhteys vanhentunut',
+ 'Setup Templates' => 'Aseta mallit',
+ 'Ship' => 'Toimita',
+ 'Ship Merchandise' => 'Toimita kauppatavara',
+ 'Ship to' => 'Toimitusosoite',
+ 'Ship via' => 'Toimita käyttäen',
+ 'Shipping' => 'Toimittaa',
+ 'Shipping Address' => 'Toimitusosoite',
+ 'Shipping Date' => 'Toimituspvm',
+ 'Shipping Date missing!' => 'Toimituspvm puuttuu',
+ 'Shipping Point' => 'Toimitusehto',
+ 'Short' => 'Lyhytaikaiset',
+ 'Signature' => 'Allekirjoitus',
+ 'Source' => 'Lähde',
+ 'Spoolfile' => 'Spool-tiedosto',
+ 'Standard' => 'Vakio',
+ 'Standard Industrial Codes' => 'Teollisuusluokitteet',
+ 'Startdate' => 'Aloituspäivä',
+ 'State' => 'Osavaltio',
+ 'State/Province' => 'Lääni',
+ 'Statement' => 'Tiliote',
+ 'Statement Balance' => 'Tiliotteen tase',
+ 'Statement sent to' => 'Tiliote lähetetty',
+ 'Statements sent to printer!' => 'Tiliotteet lähetetty tulostimelle!',
+ 'Stock' => 'Varasto',
+ 'Stock Assembly' => 'Varastoi tuote',
+ 'Stocking Date' => 'Varasto pvm',
+ 'Stylesheet' => 'Tyylitiedosto',
+ 'Sub-contract GIFI' => 'Alihankinta GIFI',
+ 'Subject' => 'Aihe',
+ 'Subtotal' => 'Välisumma',
+ 'Summary' => 'Kooste',
+ 'Sunday' => 'Sunnuntai',
+ 'Supervisor' => 'Valvoja',
+ 'System' => 'Järjestelmä',
+ 'System Defaults' => 'Järjestelmän oletukset',
+ 'Tax' => 'Vero',
+ 'Tax Accounts' => 'Verotilit',
+ 'Tax Included' => 'ALV sisältyy',
+ 'Tax Number' => 'Veronumero',
+ 'Tax Number / SSN' => 'Y-n:o / Sotu',
+ 'Tax collected' => 'Veroa kerätty',
+ 'Tax paid' => 'Veroa maksettu',
+ 'Taxable' => 'Verotettavaa',
+ 'Template saved!' => 'Malli tallennettu',
+ 'Templates' => 'Mallit',
+ 'Terms' => 'Maksuehto',
+ 'Text' => 'Teksti',
+ 'Text Templates' => 'Tekstimallit',
+ 'The following Datasets are not in use and can be deleted' => 'Seuraavat tietolähteet eivät ole käytössä ja voidaan poistaa',
+ 'The following Datasets need to be updated' => 'Seuraavat tietolähteet päivitettävä',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Tämä on olemassa olevien lähteiden ennakkotarkistus. Mitään ei luoda tai poisteta tässä vaiheessa!',
+ 'Thursday' => 'Torstai',
+ 'Till' => 'Kassa',
+ 'Time In' => 'Sisääntuloaika',
+ 'Time Out' => 'Ulosmenoaika',
+ 'Timecard' => 'Aikakortti',
+ 'Timecard deleted!' => 'Aikakortti poistettu',
+ 'Timecard saved!' => 'Aikakortti tallennettu',
+ 'Timecards' => 'Aikakortit',
+ 'Times' => 'Kertaa',
+ 'To' => 'Hetkeen',
+ 'To Warehouse' => 'Varastoon',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Lisätäksesi käyttäjän ryhmään muokkaa nimeä, muuta kirjautumisnimi ja tallenna.',
+ 'Top Level' => 'Ylin taso',
+ 'Total' => 'Yhteensä',
+ 'Tracking Items' => 'Seurattavia nimikkeitä',
+ 'Trade Discount' => 'Alennus',
+ 'Transaction' => 'Vienti',
+ 'Transaction Date missing!' => 'Viennin päiväys puuttuu!',
+ 'Transaction Dates' => 'Vientipvm',
+ 'Transaction deleted!' => 'Vienti poistettu!',
+ 'Transaction posted!' => 'Vienti kirjattu!',
+ 'Transaction reversal enforced for all dates' => 'Kirjaukset muunnettu kaikille päiväyksille',
+ 'Transaction reversal enforced up to' => 'Kirjaukset muunnnettu hetkeen ',
+ 'Transactions' => 'Tapahtumat',
+ 'Transfer' => 'Siirto',
+ 'Transfer Inventory' => 'Siirrä varasto',
+ 'Transfer from' => 'Siirrö hetkestä',
+ 'Transfer to' => 'Siirrä hetkeen',
+ 'Translation' => 'Vienti',
+ 'Translation deleted!' => 'Vienti poistettu',
+ 'Translation not on file!' => 'Vienti ei tallennettu',
+ 'Translations' => 'Käännökset',
+ 'Translations saved!' => 'Käännökset tallennettu',
+ 'Trial Balance' => 'Saldolista',
+ 'Tuesday' => 'Tiistai',
+ 'Type of Business' => 'Liiketoiminnan tyyppi',
+ 'Unit' => 'Yksikkö',
+ 'Unit of measure' => 'Mittayksikkö',
+ 'Unlock System' => 'Avaa järjestelmä',
+ 'Update' => 'Päivitä',
+ 'Update Dataset' => 'Päivitä tietokanta',
+ 'Updated' => 'Päivitetty',
+ 'Upgrading to Version' => 'Päivitetään versioon',
+ 'Use Templates' => 'Käytä mallia',
+ 'User' => 'Käyttäjä',
+ 'User deleted!' => 'Käyttäjä poistettu!',
+ 'User saved!' => 'Käyttäjä tallennettu!',
+ 'Valid until' => 'Voimassa asti',
+ 'Vendor' => 'Toimittaja',
+ 'Vendor History' => 'Toimittajahistoria',
+ 'Vendor Invoice' => 'Ostolasku',
+ 'Vendor Invoice ' => 'Ostolasku ',
+ 'Vendor Invoice.' => 'Ostolasku.',
+ 'Vendor Invoice/AP Transaction Number' => 'Ostolasku/Ostoreskontra vientinumero',
+ 'Vendor Invoices' => 'Ostolaskut',
+ 'Vendor Number' => 'Toimittajanumero',
+ 'Vendor deleted!' => 'Toimittaja poistettu!',
+ 'Vendor missing!' => 'Toimittaja puuttuu!',
+ 'Vendor not on file!' => 'Toimittajaa ei järjestelmässä!',
+ 'Vendor saved!' => 'Toimittaja tallennettu!',
+ 'Vendors' => 'Toimittajat',
+ 'Version' => 'Versio',
+ 'Warehouse' => 'Varasto',
+ 'Warehouse deleted!' => 'Varasto poistettu',
+ 'Warehouse saved!' => 'Varasto tallennettu',
+ 'Warehouses' => 'Varastot',
+ 'Warning!' => 'Varoitus!',
+ 'Wednesday' => 'Keskiviikko',
+ 'Week' => 'Viikko',
+ 'Week(s)' => 'Viiko(t)',
+ 'Weeks' => 'Viikot',
+ 'Weight' => 'Paino',
+ 'Weight Unit' => 'Painoyksikkö',
+ 'What type of item is this?' => 'Minkä tyyppinen nimike tämä on?',
+ 'Work Order' => 'Työmääräin',
+ 'Work Orders' => 'Työmääräimet',
+ 'Work Phone' => 'Työpuhelin',
+ 'Year' => 'Vuosi',
+ 'Year(s)' => 'Vuodet',
+ 'Yearend' => 'Tilinpäätös',
+ 'Yearend date missing!' => 'Tilipäätöspvm puuttuu',
+ 'Yearend posted!' => 'Tilinpäätös kirjattu',
+ 'Yearend posting failed!' => 'Tilinpäätöksen kirjaus epäonnistui!',
+ 'Years' => 'Vuodet',
+ 'Yes' => 'Kyllä',
+ 'You are logged out' => 'Olet kirjautunut ulos',
+ 'You are posting an existing transaction!' => 'Tallennat olemassaolevan viennin',
+ 'You are printing and posting an existing transaction!' => 'Tallennat ja tulostat olemassaolevan viennin',
+ 'You are printing and saving an existing order' => 'Tallennat ja tulostat olemassaolevan tilauksen',
+ 'You are printing and saving an existing quotation' => 'Tallennat ja tulostat olemassaolevan tarjouksen',
+ 'You are printing and saving an existing transaction!' => 'Tallennat ja tulostat olemassaolevan viennin',
+ 'You are saving an existing order' => 'Tallennat olemassaolevan tilauksen',
+ 'You are saving an existing quotation' => 'Tallennat olemassaolevan tarjouksen',
+ 'You are saving an existing transaction!' => 'Tallennat olemassaolevan viennin',
+ 'You did not enter a name!' => 'Et kirjoittanut nimeä',
+ 'You must enter a host and port for local and remote connections!' => 'Sinun täytyy antaa isäntäkone ja portti paikallisille ja etäyhteyksille!',
+ 'Zip/Postal Code' => 'Postinumero',
+ 'account cannot be set to any other type of account' => 'tilityyppiä ei voi muuttaa',
+ 'as at' => 'päivänä ',
+ 'days' => 'päivää',
+ 'does not exist' => 'ei löydy',
+ 'done' => 'valmis',
+ 'ea' => 'kpl',
+ 'failed' => 'epäonnistui',
+ 'for' => '',
+ 'for Period' => 'jaksolle',
+ 'is already a member!' => 'on jo käyttäjä',
+ 'localhost' => 'paikallinen tietokone',
+ 'locked!' => 'lukittu!',
+ 'partsgroup' => 'tarvikeryhmä',
+ 'posted!' => 'kirjattu!',
+ 'sent' => 'lähetetty',
+ 'successfully created!' => 'onnistuneesti luotu!',
+ 'successfully deleted!' => 'onnistuneesti poistettu!',
+ 'time(s)' => 'kertaa',
+ 'unexpected error!' => 'odottamaton virhe',
+ 'website' => 'www-sivu',
+};
+
+1;
diff --git a/locale/fi_utf/am b/locale/fi_utf/am
new file mode 100755
index 00000000..7ee52ce8
--- /dev/null
+++ b/locale/fi_utf/am
@@ -0,0 +1,319 @@
+$self{texts} = {
+ 'AP' => 'Ostot',
+ 'AR' => 'Myynnit',
+ 'About' => 'Lisätietoja',
+ 'Account' => 'Tili',
+ 'Account Number' => 'Tilinumero',
+ 'Account Number missing!' => 'Tilinumero puuttuu',
+ 'Account Type' => 'Tilityyppi',
+ 'Account Type missing!' => 'Tilityyppi puuttuu',
+ 'Account deleted!' => 'Tili poistettu',
+ 'Account does not exist!' => 'Tiliä ei ole olemassa',
+ 'Account saved!' => 'Tili lisätty',
+ 'Accounting Menu' => 'Kirjanpitovalikko',
+ 'Accrual' => 'Varaukset',
+ 'Activate Audit trail' => 'Aktivoi tarkastusjälki',
+ 'Add Account' => 'Lisää tili',
+ 'Add Business' => 'Lisää toimiala',
+ 'Add Department' => 'Lisää toimipiste',
+ 'Add GIFI' => 'Lisää GIFI',
+ 'Add Language' => 'Lisää kieli',
+ 'Add SIC' => 'Lisää SIC',
+ 'Add Warehouse' => 'Lisää varasto',
+ 'Address' => 'Osoite',
+ 'Amount' => 'Summa',
+ 'Asset' => 'Vastaavaa',
+ 'Audit Control' => 'Tilien tarkistus',
+ 'Audit trail disabled' => 'Tarkastusjälki deaktivoitu',
+ 'Audit trail enabled' => 'Tarkastusjälki aktivoitu',
+ 'Audit trail removed up to' => 'Tarkastusjälki poistettu asti',
+ 'Backup sent to' => 'Varmuuskopio lähetetty',
+ 'Bin List' => 'Varastopaikkalista',
+ 'Books are open' => 'Kirjat ovat avoinna',
+ 'Business Number' => 'Y-numero',
+ 'Business deleted!' => 'Toimiala poistettu',
+ 'Business saved!' => 'Toimiala tallennettu',
+ 'COGS' => 'Myydyn tuotteen kulut',
+ 'Cannot delete account!' => 'Tiliä ei voi poistaa!',
+ 'Cannot delete default account!' => 'Oletustiliä ei voi poistaa!',
+ 'Cannot save account!' => 'Tilin tallennus ei onnistu!',
+ 'Cannot save defaults!' => 'Oletusasetuksien tallennus ei onnistu!',
+ 'Cannot save preferences!' => 'Asetuksien tallennus ei onnistu!',
+ 'Cannot save taxes!' => 'Verojen tallennus ei onnistu',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Tili voi olla vain yksi yhteenvetotili',
+ 'Cannot set multiple options for' => 'Ei voi asettaa useita asetuksia',
+ 'Cash' => 'Käteiskauppa',
+ 'Chart of Accounts' => 'Tilikartta',
+ 'Close Books up to' => 'Sulje kirjat hetkeen',
+ 'Code' => 'Koodi',
+ 'Code missing!' => 'Koodi puuttuu!',
+ 'Company' => 'Yritys',
+ 'Confirm' => 'Hyväksy',
+ 'Confirm!' => 'Vahvista!',
+ 'Continue' => 'Jatka',
+ 'Contra' => 'Kontra',
+ 'Copy to COA' => 'Kopioi tilikarttaan',
+ 'Cost Center' => 'Kustannuspaikka',
+ 'Credit' => 'Kredit',
+ 'Credit Invoice' => 'Hyvityslasku',
+ 'Customer Number' => 'Asiakasnumero',
+ 'Database Host' => 'Tietokannan osoite',
+ 'Dataset' => 'Tietokanta',
+ 'Date Format' => 'Päiväyksen muoto',
+ 'Day' => 'Päivä',
+ 'Days' => 'Päivät',
+ 'Debit' => 'Debet',
+ 'Debit Invoice' => 'Lasku',
+ 'Default Template' => 'Oletusmalle',
+ 'Defaults saved!' => 'Oletusasetukset poistettu',
+ 'Delete' => 'Poista',
+ 'Delete Account' => 'Poista tili',
+ 'Deleting a language will also delete the templates for the language' => 'Kielen poisto poistaa myös kielen mallit',
+ 'Department deleted!' => 'Toimipiste poistettu',
+ 'Department saved!' => 'Toimipiste tallennettu',
+ 'Departments' => 'Toimipisteet',
+ 'Description' => 'Kuvaus',
+ 'Description missing!' => 'Kuvaus puuttuu',
+ 'Discount' => 'Alennus',
+ 'Dropdown Limit' => 'Pudotusvalikkojen rivimäärä',
+ 'E-mail' => 'Sähköposti',
+ 'E-mail address missing!' => 'Sähköpostiosoite puuttuu!',
+ 'Edit' => 'Muokkaa',
+ 'Edit Account' => 'Muokkaa tiliä',
+ 'Edit Business' => 'Muokkaa toimialaa',
+ 'Edit Department' => 'Muokkaa toimipistettä',
+ 'Edit GIFI' => 'Muokkaa GIFI',
+ 'Edit Language' => 'Muokkaa kieltä',
+ 'Edit Preferences for' => 'Muokkaa asetuksia',
+ 'Edit SIC' => 'Muokkaa teollisuusluokite',
+ 'Edit Template' => 'Muokkaa mallia',
+ 'Edit Warehouse' => 'Muokkaa varastoa',
+ 'Employee Number' => 'Työntekijän numero',
+ 'Ends' => 'Päättyy',
+ 'Enforce transaction reversal for all dates' => 'Pakota muunnos kaikille viennille',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Merkitse käyttämäsi valuutat 3 kirjaimella ja erota ne kaksoispisteellä, esim.(EUR:USD:SEK).',
+ 'Equity' => 'Oma pääoma',
+ 'Every' => 'Jokainen',
+ 'Expense' => 'Meno',
+ 'Expense/Asset' => 'Meno/Varat',
+ 'Fax' => 'Faksi',
+ 'Foreign Exchange Gain' => 'Vaihtokurssivoitto',
+ 'Foreign Exchange Loss' => 'Vaihtokurssitappio',
+ 'GIFI' => 'GIFI',
+ 'GIFI deleted!' => 'GIFI poistettu!',
+ 'GIFI missing!' => 'GIFI puuttuu!',
+ 'GIFI saved!' => 'GIFI tallennettu!',
+ 'GL' => 'Pääkirja',
+ 'GL Reference Number' => 'Pääkirjan viitenumero',
+ 'GL Transaction' => 'Pääkirjavienti',
+ 'Heading' => 'Otsikko',
+ 'ID' => 'ID',
+ 'Include in drop-down menus' => 'Sisällytä pudotusvalikoihin',
+ 'Income' => 'Tulo',
+ 'Inventory' => 'Varasto',
+ 'Invoice' => 'Lasku',
+ 'Is this a summary account to record' => 'Onko tämä tallennettava yhteenvetotili?',
+ 'Job/Project Number' => 'Työ-/Projektinumero',
+ 'Language' => 'Kieli',
+ 'Language deleted!' => 'Kieli tuhottu',
+ 'Language saved!' => 'Kieli tallennettu',
+ 'Languages' => 'Kielet',
+ 'Last Numbers & Default Accounts' => 'Edelliset numerot ja oletustilit',
+ 'Liability' => 'Vastattavaa',
+ 'Licensed to' => 'Lisenssin omistaja',
+ 'Link' => 'Linkki',
+ 'Menu Width' => 'Valikon leveys',
+ 'Method' => 'Tapa',
+ 'Month' => 'Kuukausi',
+ 'Months' => 'Luukaudet',
+ 'Name' => 'Nimi',
+ 'Next' => 'Seuraava',
+ 'Next Number' => 'Seuraava numero',
+ 'No' => 'Ei',
+ 'No email address for' => 'Sähköpostiosoite puuttuu',
+ 'Non-tracking Items' => 'Ei seurattavia tuotteita',
+ 'Number' => 'Numero',
+ 'Number Format' => 'Numeron muoto',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Pakkauslista',
+ 'Part Number' => 'Tarvikenumero',
+ 'Password' => 'Salasana',
+ 'Password does not match!' => 'Salasana ei täsmää!',
+ 'Payables' => 'Maksettavaa',
+ 'Payment' => 'Maksu',
+ 'Phone' => 'Puhelin',
+ 'Pick List' => 'Keräyslista',
+ 'Posting' => 'Kirjaam',
+ 'Postscript' => 'Postscript',
+ 'Preferences saved!' => 'Asetukset tallennettu!',
+ 'Print' => 'Tulosta',
+ 'Printer' => 'Tulostin',
+ 'Printing' => 'Tulostuu',
+ 'Process Transactions' => 'Prosessiviennit',
+ 'Profit Center' => 'Profit Center',
+ 'Purchase Order' => 'Ostotilaus',
+ 'Purchase Order Number' => 'Ostotilausnumero',
+ 'Purchase Orders' => 'Ostotilaukset',
+ 'RFQ Number' => 'Tarjouspyynnön numero',
+ 'Rate' => 'Kurssi',
+ 'Receivables' => 'Saamiset',
+ 'Recurring Transactions' => 'Toistuvat siirrit',
+ 'Reference' => 'Viite',
+ 'Remove Audit trail up to' => 'Poista tarkastusjälki asti',
+ 'Retained Earnings' => 'Käyttörahasto\jakamaton voitto',
+ 'SIC deleted!' => 'SIC poistettu!',
+ 'SIC saved!' => 'SIC tallennettu!',
+ 'Sales Invoice' => 'Myyntilasku',
+ 'Sales Invoice/AR Transaction Number' => 'Myyntilaskun/viennin numero',
+ 'Sales Order' => 'Tilausvahvistus',
+ 'Sales Order Number' => 'Tilausvahvistuksen numero',
+ 'Sales Orders' => 'Tilausvahvistukset',
+ 'Sales Quotation Number' => 'Myynnntitarjousnumero',
+ 'Save' => 'Tallenna',
+ 'Save as new' => 'Tallenna uutena',
+ 'Saving' => 'Tallentaa',
+ 'Sending' => 'Lähettää',
+ 'Session Timeout' => 'Yhteys aikakatkaistu',
+ 'Signature' => 'Allekirjoitus',
+ 'Standard Industrial Codes' => 'Teollisuusluokitteet',
+ 'Stylesheet' => 'Tyylitiedosto',
+ 'System Defaults' => 'Järjestelmän oletukset',
+ 'Tax' => 'Vero',
+ 'Taxes' => 'Verot',
+ 'Taxes saved!' => 'Verot tallennettu',
+ 'Template saved!' => 'Malli tallennettu',
+ 'Times' => 'Kertaa',
+ 'Tracking Items' => 'Seurattavia nimikkeitä',
+ 'Transaction' => 'Vienti',
+ 'Transaction reversal enforced for all dates' => 'Kirjaukset muunnettu kaikille päiväyksille',
+ 'Transaction reversal enforced up to' => 'Kirjaukset muunnnettu hetkeen ',
+ 'Type of Business' => 'Toimialan luokitus',
+ 'Update' => 'Päivitä',
+ 'User' => 'Käyttäjä',
+ 'Valid To' => 'Voimassa asti',
+ 'Vendor Invoice' => 'Ostolasku',
+ 'Vendor Invoice/AP Transaction Number' => 'Ostolasku/AP Vientinumero',
+ 'Vendor Number' => 'Toimittajanumero',
+ 'Version' => 'Versio',
+ 'Warehouse deleted!' => 'Varasto poistettu',
+ 'Warehouse saved!' => 'Varasto tallennettu',
+ 'Warehouses' => 'Varastot',
+ 'Week' => 'Viikko',
+ 'Weeks' => 'Viikot',
+ 'Weight Unit' => 'Painoyksikkö',
+ 'Work Order' => 'Työtilaus',
+ 'Year' => 'Vuosi',
+ 'Yearend' => 'Tilinpäätös',
+ 'Yearend date missing!' => 'Tilikauden päätöspäivä puuttuu',
+ 'Yearend posted!' => 'Tilinpäätös kirjattu',
+ 'Yearend posting failed!' => 'Tilinpäätöksen kirjaus epäonnistui!',
+ 'Years' => 'Vuodet',
+ 'Yes' => 'Kyllä',
+ 'account cannot be set to any other type of account' => 'tilityyppiä ei voi muuttaa',
+ 'done' => 'valmis',
+ 'failed' => 'epäonnistui',
+ 'localhost' => 'paikallinen tietokone',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'lisää_tili' => 'add_account',
+ 'lisää_toimiala' => 'add_business',
+ 'lisää_toimipiste' => 'add_department',
+ 'lisää_kieli' => 'add_language',
+ 'lisää_sic' => 'add_sic',
+ 'lisää_varasto' => 'add_warehouse',
+ 'jatka' => 'continue',
+ 'kopioi_tilikarttaan' => 'copy_to_coa',
+ 'poista' => 'delete',
+ 'muokkaa' => 'edit',
+ 'muokkaa_tiliä' => 'edit_account',
+ 'prosessiviennit' => 'process_transactions',
+ 'tallenna' => 'save',
+ 'tallenna_uutena' => 'save_as_new',
+ 'päivitä' => 'update',
+};
+
+1;
+
diff --git a/locale/fi_utf/ap b/locale/fi_utf/ap
new file mode 100755
index 00000000..9e5af776
--- /dev/null
+++ b/locale/fi_utf/ap
@@ -0,0 +1,240 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Ei maksetut ostolaskut',
+ 'AP Transaction' => 'Ostotapahtuma',
+ 'AP Transactions' => 'Ostotapahtumat',
+ 'AR Outstanding' => 'Ei maksetut myyntilaskut',
+ 'AR Transaction' => 'Myyntitapahtuma',
+ 'AR Transactions' => 'Myyntitapahtumat',
+ 'Account' => 'Tili',
+ 'Accounting Menu' => 'Kirjanpitovalikko',
+ 'Add AP Transaction' => 'Lisää ostotapahtuma',
+ 'Add AR Transaction' => 'Lisää myyntitapahtuma',
+ 'Address' => 'Osoite',
+ 'Amount' => 'Summa',
+ 'Amount Due' => 'Erääntyvä summa',
+ 'Apr' => 'Huh',
+ 'April' => 'Huhtikuu',
+ 'Are you sure you want to delete Transaction' => 'Haluatko poistaa viennin',
+ 'Aug' => 'Elo',
+ 'August' => 'Elokuu',
+ 'Bcc' => 'Näkymätön kopio',
+ 'Cannot delete transaction!' => 'Vientiä ei voi poistaa!',
+ 'Cannot post payment for a closed period!' => 'Maksun kirjaus suljetulle ajanjaksolle kielletty!',
+ 'Cannot post transaction for a closed period!' => 'Viennin kirjaus suljetulle ajanjaksolle kielletty!',
+ 'Cannot post transaction!' => 'Vientiä ei voi kirjata',
+ 'Cc' => 'Kopio',
+ 'Check' => 'Sekki',
+ 'Closed' => 'Suljettu',
+ 'Confirm!' => 'Vahvista!',
+ 'Continue' => 'Jatka',
+ 'Credit' => 'Kredit',
+ 'Credit Limit' => 'Luottoraja',
+ 'Curr' => 'Valuutta',
+ 'Currency' => 'Valuutta',
+ 'Current' => 'Erääntyy',
+ 'Customer' => 'Asiakas',
+ 'Customer missing!' => 'Asiakas puuttuu!',
+ 'Customer not on file!' => 'Asiakas ei järjestelmässä!',
+ 'Date' => 'Päiväys',
+ 'Date Paid' => 'Maksupäivä',
+ 'Day(s)' => 'Päivä(t)',
+ 'Debit' => 'Debet',
+ 'Dec' => 'Jou',
+ 'December' => 'Joulukuu',
+ 'Delete' => 'Poista',
+ 'Delete Schedule' => 'Poista aikataulu',
+ 'Department' => 'Toimipiste',
+ 'Description' => 'Kuvaus',
+ 'Detail' => 'Yksityiskohdat',
+ 'Due Date' => 'Eräpäivä',
+ 'Due Date missing!' => 'Eräpäivä puuttuu!',
+ 'E-mail' => 'Sähköposti',
+ 'E-mail message' => 'Sähkpostiviesti',
+ 'Edit AP Transaction' => 'Muokkaa ostotapahtumaa',
+ 'Edit AR Transaction' => 'Muokkaa myyntitapahtumaa',
+ 'Employee' => 'Työntekijä',
+ 'Every' => 'Jokainen',
+ 'Exch' => 'Vaihtokurssi',
+ 'Exchange Rate' => 'Vaihtokurssi',
+ 'Exchange rate for payment missing!' => 'Maksun vaihtokurssi puuttuu',
+ 'Exchange rate missing!' => 'Vaihtokurssi puuttuu',
+ 'Feb' => 'Hel',
+ 'February' => 'Helmikuu',
+ 'For' => ' ',
+ 'From' => 'Alkaen',
+ 'ID' => 'ID',
+ 'Include Payment' => 'Sisällytä maksu',
+ 'Include in Report' => 'Sisällytä raporttiin',
+ 'Invoice' => 'Lasku',
+ 'Invoice Date' => 'Laskun päiväys',
+ 'Invoice Date missing!' => 'Laskun päiväys puuttuu!',
+ 'Invoice Number' => 'Laskun numero',
+ 'Jan' => 'Tam',
+ 'January' => 'Tammikuu',
+ 'Jul' => 'Hei',
+ 'July' => 'Heinäkuu',
+ 'Jun' => 'Kes',
+ 'June' => 'Kesäkuu',
+ 'Manager' => 'Johtaja',
+ 'Mar' => 'Maa',
+ 'March' => 'Maaliskuu',
+ 'May' => 'Tou',
+ 'May ' => 'Toukokuu',
+ 'Memo' => 'Muistio',
+ 'Message' => 'Viesti',
+ 'Month' => 'Kuukausi',
+ 'Month(s)' => 'Kuukausi(det)',
+ 'Next Date' => 'Seuraava pvm',
+ 'No.' => 'no',
+ 'Notes' => 'Lisätietoja',
+ 'Nothing to print!' => 'Ei tulostettavaa!',
+ 'Nov' => 'Mar',
+ 'November' => 'Marraskuu',
+ 'Number' => 'Numero',
+ 'Oct' => 'Lok',
+ 'October' => 'Lokakuu',
+ 'Open' => 'Avoinna',
+ 'Order' => 'Tilaus',
+ 'Order Number' => 'Tilausnumero',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ostotilausnumero',
+ 'Paid' => 'Maksettu',
+ 'Payment date missing!' => 'Maksupäivä puuttuu!',
+ 'Payments' => 'Maksut',
+ 'Period' => 'Ajanjakso',
+ 'Post' => 'Kirjaa',
+ 'Post as new' => 'Kirjaa uutena',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Tulosta',
+ 'Print and Post' => 'Tulosta ja kirjaa',
+ 'Print and Post as new' => 'Tulosta ja kirjaa uutena',
+ 'Printed' => 'Tulostettu',
+ 'Project' => 'Projekti',
+ 'Project not on file!' => 'Projekti ei ole järjestelmässä!',
+ 'Quarter' => 'Neljännes',
+ 'Receipt' => 'Kuitti',
+ 'Recurring Transaction' => 'Toistuva siirto',
+ 'Reference' => 'Viite',
+ 'Remaining' => 'Jäljellä',
+ 'Repeat' => 'Toista',
+ 'Sales Invoice.' => 'Myyntilasku.',
+ 'Salesperson' => 'Myyjä',
+ 'Save Schedule' => 'Tallenna aikataulu',
+ 'Schedule' => 'Aikataulu',
+ 'Scheduled' => 'Aikataulutettu',
+ 'Screen' => 'Näyttö',
+ 'Select a Printer!' => 'Valitse tulostin',
+ 'Select from one of the names below' => 'Valitse yksi nimi alapuolelta',
+ 'Select from one of the projects below' => 'Valitse yksi projekti alapuolelta',
+ 'Select payment' => 'Valitse maksutapa',
+ 'Select postscript or PDF!' => 'Valitse postscript tai PDF!',
+ 'Sep' => 'Syy',
+ 'September' => 'Syyskuu',
+ 'Ship to' => 'Toimitusosoite',
+ 'Ship via' => 'Välipiste',
+ 'Shipping Point' => 'Toimitusehto',
+ 'Source' => 'Lähde',
+ 'Startdate' => 'Aloituspäivä',
+ 'Subject' => 'Aihe',
+ 'Subtotal' => 'Välisumma',
+ 'Summary' => 'Kooste',
+ 'Tax' => 'Vero',
+ 'Tax Included' => 'ALV sisältyy',
+ 'Till' => 'Kassa',
+ 'To' => 'Hetkeen',
+ 'Total' => 'Yhteensä',
+ 'Transaction' => 'Vienti',
+ 'Transaction deleted!' => 'Vienti poistettu!',
+ 'Transaction posted!' => 'Vienti kirjattu!',
+ 'Update' => 'Päivitä',
+ 'Vendor' => 'Toimittaja',
+ 'Vendor Invoice.' => 'Ostolasku.',
+ 'Vendor missing!' => 'Toimittaja puuttuu!',
+ 'Vendor not on file!' => 'Toimittajaa ei järjestelmässä!',
+ 'Warning!' => 'Varoitus!',
+ 'Week(s)' => 'Viiko(t)',
+ 'Year' => 'Vuosi',
+ 'Year(s)' => 'Vuodet',
+ 'Yes' => 'Kyllä',
+ 'You are posting an existing transaction!' => 'Tallennat olemassaolevan viennin',
+ 'You are printing and posting an existing transaction!' => 'Tallennat ja tulostat olemassaolevan viennin',
+ 'You are printing and saving an existing order' => 'Tallennat ja tulostat olemassaolevan tilauksen',
+ 'You are printing and saving an existing quotation' => 'Tallennat ja tulostat olemassaolevan tarjouksen',
+ 'You are saving an existing order' => 'Tallennat olemassaolevan tilauksen',
+ 'You are saving an existing quotation' => 'Tallennat olemassaolevan tarjouksen',
+ 'for' => 'for',
+ 'sent' => 'lähetetty',
+ 'time(s)' => 'kertaa',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'ostotapahtuma' => 'ap_transaction',
+ 'myyntitapahtuma' => 'ar_transaction',
+ 'jatka' => 'continue',
+ 'poista' => 'delete',
+ 'poista_aikataulu' => 'delete_schedule',
+ 'kirjaa' => 'post',
+ 'kirjaa_uutena' => 'post_as_new',
+ 'tulosta' => 'print',
+ 'tulosta_ja_kirjaa' => 'print_and_post',
+ 'tulosta_ja_kirjaa_uutena' => 'print_and_post_as_new',
+ 'myyntilasku_' => 'sales_invoice_',
+ 'tallenna_aikataulu' => 'save_schedule',
+ 'aikataulu' => 'schedule',
+ 'toimitusosoite' => 'ship_to',
+ 'päivitä' => 'update',
+ 'ostolasku_' => 'vendor_invoice_',
+ 'kyllä' => 'yes',
+};
+
+1;
+
diff --git a/locale/fi_utf/ar b/locale/fi_utf/ar
new file mode 100755
index 00000000..35d9f657
--- /dev/null
+++ b/locale/fi_utf/ar
@@ -0,0 +1,240 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Ei maksetut ostolaskut',
+ 'AP Transaction' => 'Ostotapahtuma',
+ 'AP Transactions' => 'Ostotapahtumat',
+ 'AR Outstanding' => 'Ei maksetut myyntilaskut',
+ 'AR Transaction' => 'Myyntitapahtuma',
+ 'AR Transactions' => 'Myyntitapahtumat',
+ 'Account' => 'Tili',
+ 'Accounting Menu' => 'Kirjanpitovalikko',
+ 'Add AP Transaction' => 'Lisää ostotapahtuma',
+ 'Add AR Transaction' => 'Lisää myyntitapahtuma',
+ 'Address' => 'Osoite',
+ 'Amount' => 'Summa',
+ 'Amount Due' => 'Erääntyvä summa',
+ 'Apr' => 'Huh',
+ 'April' => 'Huhtikuu',
+ 'Are you sure you want to delete Transaction' => 'Haluatko poistaa viennin',
+ 'Aug' => 'Elo',
+ 'August' => 'Elokuu',
+ 'Bcc' => 'Näkymätön kopio',
+ 'Cannot delete transaction!' => 'Vientiä ei voi poistaa!',
+ 'Cannot post payment for a closed period!' => 'Maksun kirjaus suljetulle ajanjaksolle kielletty!',
+ 'Cannot post transaction for a closed period!' => 'Viennin kirjaus suljetulle ajanjaksolle kielletty!',
+ 'Cannot post transaction!' => 'Vientiä ei voi kirjata',
+ 'Cc' => 'Kopio',
+ 'Check' => 'Sekki',
+ 'Closed' => 'Suljettu',
+ 'Confirm!' => 'Vahvista!',
+ 'Continue' => 'Jatka',
+ 'Credit' => 'Kredit',
+ 'Credit Limit' => 'Luottoraja',
+ 'Curr' => 'Valuutta',
+ 'Currency' => 'Valuutta',
+ 'Current' => 'Erääntyy',
+ 'Customer' => 'Asiakas',
+ 'Customer missing!' => 'Asiakas puuttuu!',
+ 'Customer not on file!' => 'Asiakas ei järjestelmässä!',
+ 'Date' => 'Päiväys',
+ 'Date Paid' => 'Maksupäivä',
+ 'Day(s)' => 'Päivä(t)',
+ 'Debit' => 'Debet',
+ 'Dec' => 'Jou',
+ 'December' => 'Joulukuu',
+ 'Delete' => 'Poista',
+ 'Delete Schedule' => 'Poista aikataulu',
+ 'Department' => 'Toimipiste',
+ 'Description' => 'Kuvaus',
+ 'Detail' => 'Yksityiskohdat',
+ 'Due Date' => 'Eräpäivä',
+ 'Due Date missing!' => 'Eräpäivä puuttuu!',
+ 'E-mail' => 'Sähköposti',
+ 'E-mail message' => 'Sähkpostiviesti',
+ 'Edit AP Transaction' => 'Muokkaa ostotapahtumaa',
+ 'Edit AR Transaction' => 'Muokkaa myyntitapahtumaa',
+ 'Employee' => 'Työntekijä',
+ 'Every' => 'Jokainen',
+ 'Exch' => 'Vaihtokurssi',
+ 'Exchange Rate' => 'Vaihtokurssi',
+ 'Exchange rate for payment missing!' => 'Maksun vaihtokurssi puuttuu',
+ 'Exchange rate missing!' => 'Vaihtokurssi puuttuu',
+ 'Feb' => 'Hel',
+ 'February' => 'Helmikuu',
+ 'For' => ' ',
+ 'From' => 'Alkaen',
+ 'ID' => 'ID',
+ 'Include Payment' => 'Sisällytä maksu',
+ 'Include in Report' => 'Sisällytä raporttiin',
+ 'Invoice' => 'Lasku',
+ 'Invoice Date' => 'Laskun päiväys',
+ 'Invoice Date missing!' => 'Laskun päiväys puuttuu!',
+ 'Invoice Number' => 'Laskun numero',
+ 'Jan' => 'Tam',
+ 'January' => 'Tammikuu',
+ 'Jul' => 'Hei',
+ 'July' => 'Heinäkuu',
+ 'Jun' => 'Kes',
+ 'June' => 'Kesäkuu',
+ 'Manager' => 'Johtaja',
+ 'Mar' => 'Maa',
+ 'March' => 'Maaliskuu',
+ 'May' => 'Tou',
+ 'May ' => 'Toukokuu',
+ 'Memo' => 'Muistio',
+ 'Message' => 'Viesti',
+ 'Month' => 'Kuukausi',
+ 'Month(s)' => 'Kuukausi(det)',
+ 'Next Date' => 'Seuraava pvm',
+ 'No.' => 'no',
+ 'Notes' => 'Lisätietoja',
+ 'Nothing to print!' => 'Ei tulostettavaa!',
+ 'Nov' => 'Mar',
+ 'November' => 'Marraskuu',
+ 'Number' => 'Numero',
+ 'Oct' => 'Lok',
+ 'October' => 'Lokakuu',
+ 'Open' => 'Avoinna',
+ 'Order' => 'Tilaus',
+ 'Order Number' => 'Tilausnumero',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ostotilausnumero',
+ 'Paid' => 'Maksettu',
+ 'Payment date missing!' => 'Maksupäivä puuttuu!',
+ 'Payments' => 'Maksut',
+ 'Period' => 'Ajanjakso',
+ 'Post' => 'Kirjaa',
+ 'Post as new' => 'Kirjaa uutena',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Tulosta',
+ 'Print and Post' => 'Tulosta ja kirjaa',
+ 'Print and Post as new' => 'Tulosta ja kirjaa uutena',
+ 'Printed' => 'Tulostettu',
+ 'Project' => 'Projekti',
+ 'Project not on file!' => 'Projekti ei ole järjestelmässä!',
+ 'Quarter' => 'Neljännes',
+ 'Receipt' => 'Kuitti',
+ 'Recurring Transaction' => 'Toistuva siirto',
+ 'Reference' => 'Viite',
+ 'Remaining' => 'Jäljellä',
+ 'Repeat' => 'Toista',
+ 'Sales Invoice.' => 'Myyntilasku.',
+ 'Salesperson' => 'Myyjä',
+ 'Save Schedule' => 'Tallenna aikataulu',
+ 'Schedule' => 'Aikataulu',
+ 'Scheduled' => 'Aikataulutettu',
+ 'Screen' => 'Näyttö',
+ 'Select a Printer!' => 'Valitse tulostin',
+ 'Select from one of the names below' => 'Valitse yksi nimi alapuolelta',
+ 'Select from one of the projects below' => 'Valitse yksi projekti alapuolelta',
+ 'Select payment' => 'Valitse maksutapa',
+ 'Select postscript or PDF!' => 'Valitse postscript tai PDF!',
+ 'Sep' => 'Syy',
+ 'September' => 'Syyskuu',
+ 'Ship to' => 'Toimitusosoite',
+ 'Ship via' => 'Välipiste',
+ 'Shipping Point' => 'Toimitusehto',
+ 'Source' => 'Lähde',
+ 'Startdate' => 'Aloituspäivä',
+ 'Subject' => 'Aihe',
+ 'Subtotal' => 'Välisumma',
+ 'Summary' => 'Kooste',
+ 'Tax' => 'Vero',
+ 'Tax Included' => 'ALV sisältyy',
+ 'Till' => 'Kassa',
+ 'To' => 'Hetkeen',
+ 'Total' => 'Yhteensä',
+ 'Transaction' => 'Vienti',
+ 'Transaction deleted!' => 'Vienti poistettu!',
+ 'Transaction posted!' => 'Vienti kirjattu!',
+ 'Update' => 'Päivitä',
+ 'Vendor' => 'Toimittaja',
+ 'Vendor Invoice.' => 'Ostolasku.',
+ 'Vendor missing!' => 'Toimittaja puuttuu!',
+ 'Vendor not on file!' => 'Toimittajaa ei järjestelmässä!',
+ 'Warning!' => 'Varoitus!',
+ 'Week(s)' => 'Viiko(t)',
+ 'Year' => 'Vuosi',
+ 'Year(s)' => 'Vuodet',
+ 'Yes' => 'Kyllä',
+ 'You are posting an existing transaction!' => 'Tallennat olemassaolevan viennin',
+ 'You are printing and posting an existing transaction!' => 'Tallennat ja tulostat olemassaolevan viennin',
+ 'You are printing and saving an existing order' => 'Tallennat ja tulostat olemassaolevan tilauksen',
+ 'You are printing and saving an existing quotation' => 'Tallennat ja tulostat olemassaolevan tarjouksen',
+ 'You are saving an existing order' => 'Tallennat olemassaolevan tilauksen',
+ 'You are saving an existing quotation' => 'Tallennat olemassaolevan tarjouksen',
+ 'for' => 'for',
+ 'sent' => 'lähetetty',
+ 'time(s)' => 'kertaa',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'ostoreskontravienti' => 'ap_transaction',
+ 'myyntireskontravienti' => 'ar_transaction',
+ 'jatka' => 'continue',
+ 'poista' => 'delete',
+ 'poista_aikataulu' => 'delete_schedule',
+ 'kirjaa' => 'post',
+ 'kirjaa_uutena' => 'post_as_new',
+ 'tulosta' => 'print',
+ 'tulosta_ja_kirjaa' => 'print_and_post',
+ 'tulosta_ja_kirjaa_uutena' => 'print_and_post_as_new',
+ 'myyntilasku_' => 'sales_invoice_',
+ 'tallenna_aikataulu' => 'save_schedule',
+ 'aikataulu' => 'schedule',
+ 'toimitusosoite' => 'ship_to',
+ 'päivitä' => 'update',
+ 'ostolasku_' => 'vendor_invoice_',
+ 'kyllä' => 'yes',
+};
+
+1;
+
diff --git a/locale/fi_utf/arap b/locale/fi_utf/arap
new file mode 100755
index 00000000..597d2016
--- /dev/null
+++ b/locale/fi_utf/arap
@@ -0,0 +1,74 @@
+$self{texts} = {
+ 'Address' => 'Osoite',
+ 'Bcc' => 'Näkymätön kopio',
+ 'Cc' => 'Kopio',
+ 'Continue' => 'Jatka',
+ 'Customer not on file!' => 'Asiakas ei järjestelmässä!',
+ 'Date' => 'Päiväys',
+ 'Day(s)' => 'Päivä(t)',
+ 'Delete Schedule' => 'Poista aikataulu',
+ 'Description' => 'Kuvaus',
+ 'E-mail' => 'Sähköposti',
+ 'E-mail message' => 'Sähkpostiviesti',
+ 'Every' => 'Jokainen',
+ 'For' => ' ',
+ 'Include Payment' => 'Sisällytä maksu',
+ 'Message' => 'Viesti',
+ 'Month(s)' => 'Kuukausi(det)',
+ 'Next Date' => 'Seuraava pvm',
+ 'Number' => 'Numero',
+ 'Print' => 'Tulosta',
+ 'Project not on file!' => 'Projekti ei ole järjestelmässä!',
+ 'Recurring Transaction' => 'Toistuva siirto',
+ 'Reference' => 'Viite',
+ 'Repeat' => 'Toista',
+ 'Save Schedule' => 'Tallenna aikataulu',
+ 'Select from one of the names below' => 'Valitse yksi nimi alapuolelta',
+ 'Select from one of the projects below' => 'Valitse yksi projekti alapuolelta',
+ 'Startdate' => 'Aloituspäivä',
+ 'Subject' => 'Aihe',
+ 'To' => 'Hetkeen',
+ 'Vendor not on file!' => 'Toimittajaa ei järjestelmässä!',
+ 'Warning!' => 'Varoitus!',
+ 'Week(s)' => 'Viiko(t)',
+ 'Year(s)' => 'Vuodet',
+ 'You are posting an existing transaction!' => 'Tallennat olemassaolevan viennin',
+ 'You are printing and posting an existing transaction!' => 'Tallennat ja tulostat olemassaolevan viennin',
+ 'You are printing and saving an existing order' => 'Tallennat ja tulostat olemassaolevan tilauksen',
+ 'You are printing and saving an existing quotation' => 'Tallennat ja tulostat olemassaolevan tarjouksen',
+ 'You are saving an existing order' => 'Tallennat olemassaolevan tilauksen',
+ 'You are saving an existing quotation' => 'Tallennat olemassaolevan tarjouksen',
+ 'for' => 'for',
+ 'sent' => 'lähetetty',
+ 'time(s)' => 'kertaa',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'jatka' => 'continue',
+ 'poista_aikataulu' => 'delete_schedule',
+ 'tallenna_aikataulu' => 'save_schedule',
+};
+
+1;
+
diff --git a/locale/fi_utf/arapprn b/locale/fi_utf/arapprn
new file mode 100755
index 00000000..07816dc1
--- /dev/null
+++ b/locale/fi_utf/arapprn
@@ -0,0 +1,34 @@
+$self{texts} = {
+ 'Account' => 'Tili',
+ 'Amount' => 'Summa',
+ 'Continue' => 'Jatka',
+ 'Date' => 'Päiväys',
+ 'Memo' => 'Muistio',
+ 'Nothing to print!' => 'Ei tulostettavaa!',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'Postscript',
+ 'Printed' => 'Tulostettu',
+ 'Scheduled' => 'Aikataulutettu',
+ 'Screen' => 'Näyttö,
+ 'Select a Printer!' => 'Valitse tulostin',
+ 'Select payment' => 'Valitse maksutapa',
+ 'Select postscript or PDF!' => 'Valitse postscript tai PDF!',
+ 'Source' => 'Lähde',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'jatka' => 'continue',
+};
+
+1;
+
diff --git a/locale/fi_utf/bp b/locale/fi_utf/bp
new file mode 100755
index 00000000..13f4e7a1
--- /dev/null
+++ b/locale/fi_utf/bp
@@ -0,0 +1,69 @@
+$self{texts} = {
+ 'Account' => 'Tili',
+ 'Accounting Menu' => 'Kirjanpitovalikko',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Haluatko poistaa merkityt kentät listasta?',
+ 'Bin Lists' => 'Varastopaikkalistat',
+ 'Cannot remove files!' => 'Tiedostojen poisto ei onnistu!',
+ 'Confirm!' => 'Vahvista!',
+ 'Continue' => 'Jatka',
+ 'Current' => 'Erääntyy',
+ 'Customer' => 'Asiakas',
+ 'Date' => 'Päiväys',
+ 'Employee' => 'Työntekijä,
+ 'From' => 'Alkaen',
+ 'ID' => 'ID',
+ 'Invoice' => 'Lasku',
+ 'Invoice Number' => 'Laskun numero',
+ 'Marked entries printed!' => 'Valitut kentät tulostettu',
+ 'Month' => 'Kuukausi',
+ 'Order' => 'Tilaus',
+ 'Order Number' => 'Tilausnumero',
+ 'Packing Lists' => 'Pakkauslistat',
+ 'Period' => 'Ajanjakso',
+ 'Pick Lists' => 'Keräyslistat',
+ 'Print' => 'Tulosta',
+ 'Printing' => 'Tulostuu',
+ 'Purchase Orders' => 'Ostotilaukset',
+ 'Quarter' => 'Neljännes',
+ 'Quotation' => 'Tarjous',
+ 'Quotation Number' => 'Tarjousnumero',
+ 'Quotations' => 'Tarjoukset',
+ 'RFQs' => 'Tarjouspyynn�',
+ 'Remove' => 'Poista',
+ 'Removed spoolfiles!' => 'Spool-tiedostot poistettu',
+ 'Removing marked entries from queue ...' => 'Postaa merkityt jonosta',
+ 'Sales Invoices' => 'Myyntilaskut',
+ 'Sales Orders' => 'Tilausvahvistukset',
+ 'Select all' => 'Valitse kaikki',
+ 'Spoolfile' => 'Spool-tiedosto',
+ 'Time Cards' => 'Aikakortit',
+ 'To' => 'Hetkeen',
+ 'Vendor' => 'Toimittaja',
+ 'Work Orders' => 'Työtilaukset',
+ 'Year' => 'Vuosi',
+ 'Yes' => 'Kyllä,
+ 'done' => 'valmis',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'jatka' => 'continue',
+ 'tulosta' => 'print',
+ 'poista' => 'remove',
+ 'valitse_kaikki' => 'select_all',
+ 'kyll� => 'yes',
+};
+
+1;
+
diff --git a/locale/fi_utf/ca b/locale/fi_utf/ca
new file mode 100755
index 00000000..e0a5a76d
--- /dev/null
+++ b/locale/fi_utf/ca
@@ -0,0 +1,61 @@
+$self{texts} = {
+ 'AR/AP' => 'Osto/Myynti-tilit',
+ 'Account' => 'Tili',
+ 'Apr' => 'Huh',
+ 'April' => 'Huhtikuu',
+ 'Aug' => 'Elo',
+ 'August' => 'Elokuu',
+ 'Balance' => 'Tase',
+ 'Chart of Accounts' => 'Tilikartta',
+ 'Credit' => 'Kredit',
+ 'Current' => 'Erääntyy',
+ 'Date' => 'Päiväys',
+ 'Debit' => 'Debet',
+ 'Dec' => 'Jou',
+ 'December' => 'Joulukuu',
+ 'Department' => 'Toimipiste',
+ 'Description' => 'Kuvaus',
+ 'Feb' => 'Hel',
+ 'February' => 'Helmikuu',
+ 'From' => 'Alkaen',
+ 'GIFI' => 'GIFI',
+ 'Include in Report' => 'Sisällytä raporttiin',
+ 'Jan' => 'Tam',
+ 'January' => 'Tammikuu',
+ 'Jul' => 'Hei',
+ 'July' => 'Heinäkuu',
+ 'Jun' => 'Kes',
+ 'June' => 'Kesäkuu',
+ 'List Transactions' => 'Listaa viennit',
+ 'Mar' => 'Maa',
+ 'March' => 'Maaliskuu',
+ 'May' => 'Tou',
+ 'May ' => 'Toukokuu',
+ 'Month' => 'Kuukausi',
+ 'Nov' => 'Mar',
+ 'November' => 'Marraskuu',
+ 'Oct' => 'Lok',
+ 'October' => 'Lokakuu',
+ 'Period' => 'Ajanjakso',
+ 'Project Number' => 'Projektinumero',
+ 'Quarter' => 'Neljännes',
+ 'R' => 'R',
+ 'Reference' => 'Viite',
+ 'Sep' => 'Syy',
+ 'September' => 'Syyskuu',
+ 'Source' => 'Lähde',
+ 'Subtotal' => 'Välisumma',
+ 'To' => 'Hetkeen',
+ 'Year' => 'Vuosi',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'listaa_viennit' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/fi_utf/cp b/locale/fi_utf/cp
new file mode 100755
index 00000000..051f037d
--- /dev/null
+++ b/locale/fi_utf/cp
@@ -0,0 +1,149 @@
+$self{texts} = {
+ 'AP' => 'Ostot',
+ 'AR' => 'Myynnit',
+ 'Account' => 'Tili',
+ 'Accounting Menu' => 'Kirjanpitovalikko',
+ 'Address' => 'Osoite',
+ 'All' => 'Kaikki',
+ 'Amount' => 'Summa',
+ 'Amount Due' => 'Erääntyvä summa',
+ 'Bcc' => 'Näkymätön kopio',
+ 'Cannot post Payment!' => 'Maksua ei voi kirjata',
+ 'Cannot post Receipt!' => 'Kuittia ei voi kirjata',
+ 'Cannot post payment for a closed period!' => 'Maksun kirjaus suljetulle ajanjaksolle kielletty!',
+ 'Cc' => 'Kopio',
+ 'Continue' => 'Jatka',
+ 'Currency' => 'Valuutta',
+ 'Customer' => 'Asiakas',
+ 'Customer not on file!' => 'Asiakas ei järjestelmässä!',
+ 'Date' => 'Päiväys',
+ 'Date missing!' => 'Päiväus puuttuu',
+ 'Day(s)' => 'Päivä(t)',
+ 'Delete Schedule' => 'Poista aikataulu',
+ 'Department' => 'Toimipiste',
+ 'Deposit' => 'Rahatallennus',
+ 'Description' => 'Kuvaus',
+ 'Due Date' => 'Eräpäivä,
+ 'E-mail' => 'Sähköposti',
+ 'E-mail message' => 'Sähkpostiviesti',
+ 'Every' => 'Jokainen',
+ 'Exchange Rate' => 'Vaihtokurssi',
+ 'Exchange rate missing!' => 'Vaihtokurssi puuttuu',
+ 'For' => ' ',
+ 'From' => 'Alkaen',
+ 'Include Payment' => 'Sisällytä maksu',
+ 'Invoice' => 'Lasku',
+ 'Invoices' => 'Laskut',
+ 'Language' => 'Kieli',
+ 'Memo' => 'Muistio',
+ 'Message' => 'Viesti',
+ 'Month(s)' => 'Kuukausi(det)',
+ 'Next Date' => 'Seuraava pvm',
+ 'Nothing open!' => 'Ei mitään auki',
+ 'Number' => 'Numero',
+ 'PDF' => 'PDF',
+ 'Payment' => 'Maksu',
+ 'Payment posted!' => 'Maksu kirjattu!',
+ 'Payments' => 'Maksut',
+ 'Payments posted!' => 'Maksut tallennettu',
+ 'Post' => 'Kirjaa',
+ 'Posting failed!' => 'Kirjaus ei onnistunut',
+ 'Postscript' => 'Postscript',
+ 'Prepayment' => 'Ennakkomaksu',
+ 'Print' => 'Tulosta',
+ 'Project not on file!' => 'Projekti ei ole j�jestelm�s�',
+ 'Receipt' => 'Kuitti',
+ 'Receipt posted!' => 'Kuitti kirjattu',
+ 'Receipts' => 'Kuitit',
+ 'Recurring Transaction' => 'Toistuva siirto',
+ 'Reference' => 'Viite',
+ 'Repeat' => 'Toista',
+ 'Save Schedule' => 'Tallenna aikataulu',
+ 'Screen' => 'Näyttö,
+ 'Select' => 'Valitse',
+ 'Select all' => 'Valitse kaikki',
+ 'Select from one of the names below' => 'Valitse yksi nimi alapuolelta',
+ 'Select from one of the projects below' => 'Valitse yksi projekti alapuolelta',
+ 'Select postscript or PDF!' => 'Valitse postscript tai PDF!',
+ 'Source' => 'Lähde',
+ 'Startdate' => 'Aloituspäivä,
+ 'Subject' => 'Aihe',
+ 'To' => 'Hetkeen',
+ 'Update' => 'Päivitä,
+ 'Vendor' => 'Toimittaja',
+ 'Vendor not on file!' => 'Toimittajaa ei järjestelmässä!',
+ 'Warning!' => 'Varoitus!',
+ 'Week(s)' => 'Viiko(t)',
+ 'Year(s)' => 'Vuodet',
+ 'You are posting an existing transaction!' => 'Tallennat olemassaolevan viennin',
+ 'You are printing and posting an existing transaction!' => 'Tallennat ja tulostat olemassaolevan viennin',
+ 'You are printing and saving an existing order' => 'Tallennat ja tulostat olemassaolevan tilauksen',
+ 'You are printing and saving an existing quotation' => 'Tallennat ja tulostat olemassaolevan tarjouksen',
+ 'You are saving an existing order' => 'Tallennat olemassaolevan tilauksen',
+ 'You are saving an existing quotation' => 'Tallennat olemassaolevan tarjouksen',
+ 'for' => 'for',
+ 'sent' => 'lähetetty',
+ 'time(s)' => 'kertaa',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'jatka' => 'continue',
+ 'poista_aikataulu' => 'delete_schedule',
+ 'kirjaa' => 'post',
+ 'tulosta' => 'print',
+ 'tallenna_aikataulu' => 'save_schedule',
+ 'valitse_kaikki' => 'select_all',
+ 'päivitä' => 'update',
+};
+
+1;
+
diff --git a/locale/fi_utf/ct b/locale/fi_utf/ct
new file mode 100755
index 00000000..8db1fea3
--- /dev/null
+++ b/locale/fi_utf/ct
@@ -0,0 +1,188 @@
+$self{texts} = {
+ 'AP Transaction' => 'Ostotapahtuma',
+ 'AP Transactions' => 'Ostotapahtumat',
+ 'AR Transaction' => 'Myyntitapahtuma',
+ 'AR Transactions' => 'Myyntitapahtumat',
+ 'Accounting Menu' => 'Kirjanpitovalikko',
+ 'Active' => 'Avoin',
+ 'Add Customer' => 'Lisää asiakas',
+ 'Add Vendor' => 'Lisää toimittaja',
+ 'Address' => 'Osoite',
+ 'All' => 'Kaikki',
+ 'Amount' => 'Summa',
+ 'BIC' => 'SWIFT',
+ 'Bcc' => 'Näkymätön kopio',
+ 'Billing Address' => 'Laskutusosoite',
+ 'Break' => 'Katkaise',
+ 'Cannot delete customer!' => 'Asiakasta ei voi poistaa!',
+ 'Cannot delete vendor!' => 'Toimittajaa ei voi poistaa!',
+ 'Cc' => 'Kopio',
+ 'City' => 'Kaupunki',
+ 'Closed' => 'Suljettu',
+ 'Company Name' => 'Yrityksen nimi',
+ 'Contact' => 'Yhteyshenkilö',
+ 'Continue' => 'Jatka',
+ 'Cost' => 'Hinta',
+ 'Could not save pricelist!' => 'Hintalistan tallennus ei onnistu',
+ 'Country' => 'Maa',
+ 'Credit Limit' => 'Luottoraja',
+ 'Curr' => 'Valuutta',
+ 'Currency' => 'Valuutta',
+ 'Customer History' => 'Asiakashistoria',
+ 'Customer Number' => 'Asiakasnumero',
+ 'Customer deleted!' => 'Asiakas poistettu!',
+ 'Customer saved!' => 'Asiakas tallennettu!',
+ 'Customers' => 'Asiakkaat',
+ 'Delete' => 'Poista',
+ 'Delivery Date' => 'Toimituspäivä',
+ 'Description' => 'Kuvaus',
+ 'Detail' => 'Yksityiskohdat',
+ 'Discount' => 'Alennus',
+ 'E-mail' => 'Sähköposti',
+ 'Edit Customer' => 'Muokkaa asiakasta',
+ 'Edit Vendor' => 'Muokkaa myyjää',
+ 'Employee' => 'Työntekijä',
+ 'Enddate' => 'Päättymispäivä',
+ 'Fax' => 'Faksi',
+ 'From' => 'Alkaen',
+ 'GIFI' => 'GIFI',
+ 'Group' => 'Ryhmä',
+ 'ID' => 'ID',
+ 'Inactive' => 'Ei aktiivinen',
+ 'Include in Report' => 'Sisällytä raporttiin',
+ 'Invoice' => 'Lasku',
+ 'Item already on pricelist!' => 'Tuote jo hinnastossa',
+ 'Item not on file!' => 'Nimikettä ei ole järjestelmässä!',
+ 'Language' => 'Kieli',
+ 'Leadtime' => 'Ennakkoaika',
+ 'Manager' => 'Johtaja',
+ 'Name' => 'Nimi',
+ 'Name missing!' => 'Nimi puuttuu!',
+ 'No.' => 'n:o',
+ 'Notes' => 'Lisätietoja',
+ 'Number' => 'Numero',
+ 'Open' => 'Avoinna',
+ 'Order' => 'Tilaus',
+ 'Orphaned' => 'Hylätyt',
+ 'POS' => 'Käteiskauppa',
+ 'Part Number' => 'Tarvikenumero',
+ 'Phone' => 'Puhelin',
+ 'Pricegroup' => 'Hintaryhmä',
+ 'Pricelist' => 'Hintalista',
+ 'Project Number' => 'Projektinumero',
+ 'Purchase Order' => 'Ostotilaus',
+ 'Purchase Orders' => 'Ostotilaukset',
+ 'Qty' => 'Määrä',
+ 'Quotation' => 'Tarjous',
+ 'Quotations' => 'Tarjoukset',
+ 'RFQ' => 'Tarjouspyyntö',
+ 'Request for Quotations' => 'Tarjouspyynnöt',
+ 'SIC' => 'Teollisuusluokite',
+ 'SKU' => 'Varastoyksikkö',
+ 'Sales Invoice' => 'Myyntilasku',
+ 'Sales Invoices' => 'Myyntilaskut',
+ 'Sales Order' => 'Tilausvahvistus',
+ 'Sales Orders' => 'Tilausvahvistukset',
+ 'Salesperson' => 'Myyjä',
+ 'Save' => 'Tallenna',
+ 'Save Pricelist' => 'Tallenna hinnasto',
+ 'Save as new' => 'Tallenna uutena',
+ 'Search' => 'Etsi',
+ 'Select items' => 'Valitse nimikkeet',
+ 'Sell Price' => 'Myyntihinta',
+ 'Serial Number' => 'Sarjanumero',
+ 'Shipping Address' => 'Toimitusosoite',
+ 'Startdate' => 'Aloituspäivä',
+ 'State' => 'Lääni',
+ 'State/Province' => 'Lääni',
+ 'Sub-contract GIFI' => 'Alihankinta GIFI',
+ 'Subtotal' => 'Välisumma',
+ 'Summary' => 'Kooste',
+ 'Tax' => 'Vero',
+ 'Tax Included' => 'ALV sisältyy',
+ 'Tax Number' => 'Veronumero',
+ 'Tax Number / SSN' => 'Veronumero / SSN',
+ 'Taxable' => 'Verotettavaa',
+ 'Terms' => 'Maksuehto',
+ 'To' => 'Hetkeen',
+ 'Total' => 'Yhteensä',
+ 'Type of Business' => 'Toimialan luokitus',
+ 'Unit' => 'Yksikkö',
+ 'Update' => 'Päivitä',
+ 'Vendor History' => 'Toimittajahistoria',
+ 'Vendor Invoice' => 'Ostolasku',
+ 'Vendor Invoices' => 'Ostolaskut',
+ 'Vendor Number' => 'Toimittajanumero',
+ 'Vendor deleted!' => 'Toimittaja poistettu!',
+ 'Vendor saved!' => 'Toimittaja tallennettu!',
+ 'Vendors' => 'Toimittajat',
+ 'Zip/Postal Code' => 'Postinumero',
+ 'days' => 'päivää',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'ostotapahtuma' => 'ap_transaction',
+ 'myyntitapahtuma' => 'ar_transaction',
+ 'lisää_asiakas' => 'add_customer',
+ 'lisää_toimittaja' => 'add_vendor',
+ 'jatka' => 'continue',
+ 'poista' => 'delete',
+ 'käteiskauppa' => 'pos',
+ 'hintalista' => 'pricelist',
+ 'ostotilaus' => 'purchase_order',
+ 'tarjous' => 'quotation',
+ 'tarjouspyyntö' => 'rfq',
+ 'myyntilasku' => 'sales_invoice',
+ 'tilausvahvistus' => 'sales_order',
+ 'tallenna' => 'save',
+ 'tallenna_hinnasto' => 'save_pricelist',
+ 'tallenna_uutena' => 'save_as_new',
+ 'päivitä' => 'update',
+ 'ostolasku' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/fi_utf/gl b/locale/fi_utf/gl
new file mode 100755
index 00000000..4a7426e9
--- /dev/null
+++ b/locale/fi_utf/gl
@@ -0,0 +1,185 @@
+$self{texts} = {
+ 'AP Transaction' => 'Ostotapahtuma',
+ 'AR Transaction' => 'Myyntitapahtuma',
+ 'Account' => 'Tili',
+ 'Accounting Menu' => 'Kirjanpitovalikko',
+ 'Add Cash Transfer Transaction' => 'Lisää rahansiirtotapahtuma',
+ 'Add General Ledger Transaction' => 'Lisää pääkirjantapahtuma',
+ 'Address' => 'Osoite',
+ 'All' => 'Kaikki',
+ 'Amount' => 'Summa',
+ 'Apr' => 'Huh',
+ 'April' => 'Huhtikuu',
+ 'Are you sure you want to delete Transaction' => 'Haluatko poistaa viennin',
+ 'Asset' => 'Vastaavaa',
+ 'Aug' => 'Elo',
+ 'August' => 'Elokuu',
+ 'Balance' => 'Tase',
+ 'Bcc' => 'Näkymätön kopio',
+ 'Cannot delete transaction!' => 'Vientiä ei voi poistaa!',
+ 'Cannot post transaction for a closed period!' => 'Viennin kirjaus suljetulle ajanjaksolle kielletty!',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => 'En voi suorittaa vientiä missä debet ja kredit on samalle tilille!',
+ 'Cannot post transaction!' => 'Vientiä ei voi kirjata',
+ 'Cc' => 'Kopio',
+ 'Confirm!' => 'Vahvista!',
+ 'Continue' => 'Jatka',
+ 'Credit' => 'Kredit',
+ 'Current' => 'Erääntyy',
+ 'Customer not on file!' => 'Asiakas ei järjestelmässä!',
+ 'Date' => 'Päiväys',
+ 'Day(s)' => 'Päivä(t)',
+ 'Debit' => 'Debet',
+ 'Dec' => 'Jou',
+ 'December' => 'Joulukuu',
+ 'Delete' => 'Poista',
+ 'Delete Schedule' => 'Poista aikataulu',
+ 'Department' => 'Toimipiste',
+ 'Description' => 'Kuvaus',
+ 'E-mail' => 'Sähköposti',
+ 'E-mail message' => 'Sähkpostiviesti',
+ 'Edit Cash Transfer Transaction' => 'Muokkaa käteissiirtotapahtumaa',
+ 'Edit General Ledger Transaction' => 'Muokkaa pääkirjavientiä',
+ 'Equity' => 'Oma pääoma',
+ 'Every' => 'Jokainen',
+ 'Expense' => 'Meno',
+ 'FX' => 'Valuutat',
+ 'Feb' => 'Hel',
+ 'February' => 'Helmikuu',
+ 'For' => ' ',
+ 'From' => 'Alkaen',
+ 'GIFI' => 'GIFI',
+ 'GL Transaction' => 'Pääkirjavienti',
+ 'General Ledger' => 'Pääkirja',
+ 'ID' => 'ID',
+ 'Include Payment' => 'Sisällytä maksu',
+ 'Include in Report' => 'Sisällytä raporttiin',
+ 'Income' => 'Tulo',
+ 'Jan' => 'Tam',
+ 'January' => 'Tammikuu',
+ 'Jul' => 'Hei',
+ 'July' => 'Heinäkuu',
+ 'Jun' => 'Kes',
+ 'June' => 'Kesäkuu',
+ 'Liability' => 'Vastattavaa',
+ 'Mar' => 'Maa',
+ 'March' => 'Maaliskuu',
+ 'May' => 'Tou',
+ 'May ' => 'Toukokuu',
+ 'Memo' => 'Muistio',
+ 'Message' => 'Viesti',
+ 'Month' => 'Kuukausi',
+ 'Month(s)' => 'Kuukausi(det)',
+ 'Next Date' => 'Seuraava pvm',
+ 'Notes' => 'Lisätietoja',
+ 'Nov' => 'Mar',
+ 'November' => 'Marraskuu',
+ 'Number' => 'Numero',
+ 'Oct' => 'Lok',
+ 'October' => 'Lokakuu',
+ 'Out of balance transaction!' => 'Viennin taseet eivät täsmää!',
+ 'Period' => 'Ajanjakso',
+ 'Post' => 'Kirjaa',
+ 'Post as new' => 'Kirjaa uutena',
+ 'Print' => 'Tulosta',
+ 'Project' => 'Projekti',
+ 'Project not on file!' => 'Projekti ei ole järjestelmässä!',
+ 'Quarter' => 'Neljännes',
+ 'R' => 'R',
+ 'Recurring Transaction' => 'Toistuva siirto',
+ 'Reference' => 'Viite',
+ 'Repeat' => 'Toista',
+ 'Reports' => 'Raportit',
+ 'Sales Invoice ' => 'Myyntilasku ',
+ 'Save Schedule' => 'Tallenna aikataulu',
+ 'Schedule' => 'Aikataulu',
+ 'Scheduled' => 'Aikataulutettu',
+ 'Select from one of the names below' => 'Valitse yksi nimi alapuolelta',
+ 'Select from one of the projects below' => 'Valitse yksi projekti alapuolelta',
+ 'Sep' => 'Syy',
+ 'September' => 'Syyskuu',
+ 'Source' => 'Lähde',
+ 'Startdate' => 'Aloituspäivä',
+ 'Subject' => 'Aihe',
+ 'Subtotal' => 'Välisumma',
+ 'To' => 'Hetkeen',
+ 'Transaction Date missing!' => 'Viennin päiväys puuttuu!',
+ 'Transaction deleted!' => 'Vienti poistettu!',
+ 'Transaction posted!' => 'Vienti kirjattu!',
+ 'Update' => 'Päivitä',
+ 'Vendor Invoice ' => 'Ostolasku ',
+ 'Vendor not on file!' => 'Toimittajaa ei järjestelmässä!',
+ 'Warning!' => 'Varoitus!',
+ 'Week(s)' => 'Viiko(t)',
+ 'Year' => 'Vuosi',
+ 'Year(s)' => 'Vuodet',
+ 'Yes' => 'Kyllä',
+ 'You are posting an existing transaction!' => 'Tallennat olemassaolevan viennin',
+ 'You are printing and posting an existing transaction!' => 'Tallennat ja tulostat olemassaolevan viennin',
+ 'You are printing and saving an existing order' => 'Tallennat ja tulostat olemassaolevan tilauksen',
+ 'You are printing and saving an existing quotation' => 'Tallennat ja tulostat olemassaolevan tarjouksen',
+ 'You are saving an existing order' => 'Tallennat olemassaolevan tilauksen',
+ 'You are saving an existing quotation' => 'Tallennat olemassaolevan tarjouksen',
+ 'for' => 'for',
+ 'sent' => 'lähetetty',
+ 'time(s)' => 'kertaa',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'ostoreskontravienti' => 'ap_transaction',
+ 'myyntireskontravienti' => 'ar_transaction',
+ 'jatka' => 'continue',
+ 'poista' => 'delete',
+ 'poista_aikataulu' => 'delete_schedule',
+ 'pääkirjavienti' => 'gl_transaction',
+ 'kirjaa' => 'post',
+ 'kirjaa_uutena' => 'post_as_new',
+ 'myyntilasku_' => 'sales_invoice_',
+ 'tallenna_aikataulu' => 'save_schedule',
+ 'aikataulu' => 'schedule',
+ 'päivitä' => 'update',
+ 'ostolasku_' => 'vendor_invoice_',
+ 'kyllä' => 'yes',
+};
+
+1;
+
diff --git a/locale/fi_utf/hr b/locale/fi_utf/hr
new file mode 100755
index 00000000..8e69d712
--- /dev/null
+++ b/locale/fi_utf/hr
@@ -0,0 +1,120 @@
+$self{texts} = {
+ 'AP' => 'Ostot',
+ 'Above' => 'Edellä',
+ 'Accounting Menu' => 'Kirjanpitovalikko',
+ 'Active' => 'Avoin',
+ 'Add Deduction' => 'Lisää vähennys',
+ 'Add Employee' => 'Lisää työntekijä',
+ 'Address' => 'Osoite',
+ 'Administrator' => 'Pääkäyttäjä',
+ 'After Deduction' => 'Vähennysten jälkeen',
+ 'All' => 'Kaikki',
+ 'Allowances' => 'Vähennykset',
+ 'Amount' => 'Summa',
+ 'Amount missing!' => 'Summa puuttuu!',
+ 'BIC' => 'SWIFT',
+ 'Based on' => 'Perustuen',
+ 'Before Deduction' => 'Ennen vähennystä',
+ 'Below' => 'Alle',
+ 'City' => 'Kaupunki',
+ 'Continue' => 'Jatka',
+ 'Country' => 'Maa',
+ 'DOB' => 'Syntymäaika',
+ 'Deduct after' => 'Vähennä jälkeen',
+ 'Deduction deleted!' => 'Vähennys poistettu',
+ 'Deduction saved!' => 'Vähennys tallennettu',
+ 'Deductions' => 'Vähennykset',
+ 'Delete' => 'Poista',
+ 'Description' => 'Kuvaus',
+ 'Description missing!' => 'Kuvaus puuttuu',
+ 'E-mail' => 'Sähköposti',
+ 'Edit Deduction' => 'Muokkaa vähennystä',
+ 'Edit Employee' => 'Muokkaa työntekijää',
+ 'Employee' => 'Työntekijä',
+ 'Employee Name' => 'Työntekijän nimi',
+ 'Employee Number' => 'Työntekijän numero',
+ 'Employee deleted!' => 'Työntekijä poistettu',
+ 'Employee pays' => 'Työntekijä maksaa',
+ 'Employee saved!' => 'Työntekijä tallennettu',
+ 'Employees' => 'Työntekijät',
+ 'Employer' => 'Työntekijä',
+ 'Employer pays' => 'Työnantaja maksaa',
+ 'Enddate' => 'Päättymispäivä',
+ 'Exempt age <' => 'Vapautusikä <',
+ 'Expense' => 'Meno',
+ 'From' => 'Alkaen',
+ 'Home Phone' => 'Kotipuhelin',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Inactive' => 'Ei aktiivinen',
+ 'Include in Report' => 'Sisällytä raporttiin',
+ 'Login' => 'Nimi',
+ 'Manager' => 'Johtaja',
+ 'Maximum' => 'Maksimi',
+ 'Name' => 'Nimi',
+ 'Name missing!' => 'Nimi puuttuu!',
+ 'Notes' => 'Lisätietoja',
+ 'Number' => 'Numero',
+ 'Orphaned' => 'Hylätyt',
+ 'Payroll Deduction' => 'Palkkavähennys',
+ 'Pos' => 'Rivi',
+ 'Rate' => 'Kurssi',
+ 'Rate missing!' => 'Kurssi puuttuu',
+ 'Role' => 'Rooli',
+ 'S' => 'S',
+ 'SSN' => 'Sosiaaliturvatunnus',
+ 'Sales' => 'Myynti',
+ 'Save' => 'Tallenna',
+ 'Save as new' => 'Tallenna uutena',
+ 'Startdate' => 'Aloituspäivä',
+ 'State/Province' => 'Lääni',
+ 'Supervisor' => 'Valvoja',
+ 'To' => 'Hetkeen',
+ 'Update' => 'Päivitä',
+ 'User' => 'Käyttäjä',
+ 'Work Phone' => 'Työpuhelin',
+ 'Zip/Postal Code' => 'Postinumero',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'lisää_vähennys' => 'add_deduction',
+ 'lisää_työntekijä' => 'add_employee',
+ 'jatka' => 'continue',
+ 'poista' => 'delete',
+ 'tallenna' => 'save',
+ 'tallenna_uutena' => 'save_as_new',
+ 'päivitä' => 'update',
+};
+
+1;
+
diff --git a/locale/fi_utf/ic b/locale/fi_utf/ic
new file mode 100755
index 00000000..68e38afc
--- /dev/null
+++ b/locale/fi_utf/ic
@@ -0,0 +1,303 @@
+$self{texts} = {
+ 'A' => 'A',
+ 'Accounting Menu' => 'Kirjanpitovalikko',
+ 'Accounts' => 'Tilit',
+ 'Accrual' => 'Varaukset',
+ 'Active' => 'Avoin',
+ 'Add' => 'Lisää',
+ 'Add Assembly' => 'Lisää tuote',
+ 'Add Labor/Overhead' => 'Lisää työ-/overhead-kust',
+ 'Add Part' => 'Lisää raaka-aine/tarvike',
+ 'Add Purchase Order' => 'Ostotilaus',
+ 'Add Quotation' => 'Lisää tarjous',
+ 'Add Request for Quotation' => 'Lisää tarjouspyyntö',
+ 'Add Sales Order' => 'Lisää tilausvahvistus',
+ 'Add Service' => 'Lisää palvelu',
+ 'Address' => 'Osoite',
+ 'Apr' => 'Huh',
+ 'April' => 'Huhtikuu',
+ 'Assemblies' => 'Tuotteet',
+ 'Assemblies restocked!' => 'Tuotteet viety varastoon',
+ 'Assembly' => 'Tuote',
+ 'Attachment' => 'Liite',
+ 'Aug' => 'Elo',
+ 'August' => 'Elokuu',
+ 'Average Cost' => 'Keskikustannus',
+ 'Avg Cost' => 'Kesk. kust.',
+ 'BOM' => 'Materiaalilista',
+ 'Bcc' => 'Näkymätön kopio',
+ 'Billing Address' => 'Laskutusosoite',
+ 'Bin' => 'Varastopaikka',
+ 'Bin List' => 'Varastopaikkalista',
+ 'Break' => 'Katkaise',
+ 'COGS' => 'Myydyn tuotteen kulut',
+ 'COGS account does not exist!' => 'Tiliä myydyn tuotteen kuluille ei ole',
+ 'Cannot create Assembly' => 'Tuotteen luonti ei onnistu',
+ 'Cannot create Labor' => 'Työn luonti ei onnistu',
+ 'Cannot create Part' => 'Raaka-aineen/tarvikkeen luonti ei onnistu',
+ 'Cannot create Service' => 'Palvelun luonti ei onnistu',
+ 'Cannot delete item!' => 'Nimikettä ei voi poistaa!',
+ 'Cannot stock assemblies!' => 'Tuotteiden varastointi ei onnistu!',
+ 'Cash' => 'Käteiskauppa',
+ 'Cc' => 'Kopio',
+ 'Check Inventory' => 'Sekkivarasto',
+ 'City' => 'Kaupunki',
+ 'Closed' => 'Suljettu',
+ 'Company Name' => 'Yrityksen nimi',
+ 'Components' => 'Komponentit',
+ 'Contact' => 'Yhteyshenkilö',
+ 'Continue' => 'Jatka',
+ 'Copies' => 'Kopiot',
+ 'Cost' => 'Hinta',
+ 'Country' => 'Maa',
+ 'Curr' => 'Valuutta',
+ 'Currency' => 'Valuutta',
+ 'Customer' => 'Asiakas',
+ 'Customer Number' => 'Asiakasnumero',
+ 'Customer not on file!' => 'Asiakas ei järjestelmässä!',
+ 'Date' => 'Päiväys',
+ 'Dec' => 'Jou',
+ 'December' => 'Joulukuu',
+ 'Delete' => 'Poista',
+ 'Delivery Date' => 'Toimituspäivä',
+ 'Description' => 'Kuvaus',
+ 'Detail' => 'Yksityiskohdat',
+ 'Drawing' => 'Piirros',
+ 'E-mail' => 'Sähköposti',
+ 'E-mail address missing!' => 'Sähköpostiosoite puuttuu!',
+ 'E-mailed' => 'Lähetetty',
+ 'Edit Assembly' => 'Muokkaa tuotetta',
+ 'Edit Labor/Overhead' => 'Muokaa työ/overhead-kustannuksia',
+ 'Edit Part' => 'Muokkaa raaka-ainetta/tarviketta',
+ 'Edit Service' => 'Muokkaa palvelua',
+ 'Employee' => 'Työntekijä',
+ 'Expense' => 'Meno',
+ 'Expense account does not exist!' => 'Menotiliä ei ole',
+ 'Extended' => 'Pidennetty',
+ 'Fax' => 'Faksi',
+ 'Feb' => 'Hel',
+ 'February' => 'Helmikuu',
+ 'From' => 'Alkaen',
+ 'Group' => 'Ryhmä',
+ 'Group by' => 'Ryhmitä mukaan',
+ 'Image' => 'Kuva',
+ 'In-line' => 'Linjalla',
+ 'Include in Report' => 'Sisällytä raporttiin',
+ 'Income' => 'Tulo',
+ 'Income account does not exist!' => 'Tulotiliä ei ole',
+ 'Individual Items' => 'Yksittäiset nimikkeet',
+ 'Inventory' => 'Varasto',
+ 'Inventory account does not exist!' => 'Varastotiliä ei ole',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Tuotteen varaston on oltava nolla ennen asettamista epäkurantiksi!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Raaka-aineen/tarvikkeen varaston määrä on oltava nolla ennen asettamista epäkurantiksi!',
+ 'Invoice' => 'Lasku',
+ 'Invoice Date missing!' => 'Laskun päiväys puuttuu!',
+ 'Invoice Number' => 'Laskun numero',
+ 'Invoice Number missing!' => 'Laskun numero puuttuu!',
+ 'Item' => 'Nimike',
+ 'Item deleted!' => 'Nimike poistettu!',
+ 'Item not on file!' => 'Nimikettä ei ole järjestelmässä!',
+ 'Items' => 'Tuotteet',
+ 'Jan' => 'Tam',
+ 'January' => 'Tammikuu',
+ 'Jul' => 'Hei',
+ 'July' => 'Heinäkuu',
+ 'Jun' => 'Kes',
+ 'June' => 'Kesäkuu',
+ 'Labor/Overhead' => 'Työ/overhead',
+ 'Last Cost' => 'Viimeksi toteutunut kustannus',
+ 'Leadtime' => 'Ennakkoaika',
+ 'Line Total' => 'Rivi yhteensä',
+ 'Link Accounts' => 'Linkkaa tilit',
+ 'List' => 'Lista',
+ 'List Price' => 'Listaa hinnat',
+ 'Make' => 'Valmistaja',
+ 'Mar' => 'Maa',
+ 'March' => 'Maaliskuu',
+ 'Markup' => 'Hinnannousu',
+ 'May' => 'Tou',
+ 'May ' => 'Toukokuu',
+ 'Message' => 'Viesti',
+ 'Microfiche' => 'Mikrokuva',
+ 'Model' => 'Tuotenimi',
+ 'Name' => 'Nimi',
+ 'No History!' => 'Ei historiaa',
+ 'No.' => 'no',
+ 'Notes' => 'Lisätietoja',
+ 'Nov' => 'Mar',
+ 'November' => 'Marraskuu',
+ 'Number' => 'Numero',
+ 'Number missing in Row' => 'Numero puuttuu kannan riviltä',
+ 'OH' => 'Oh',
+ 'Obsolete' => 'Vanhentunut',
+ 'Oct' => 'Lok',
+ 'October' => 'Lokakuu',
+ 'On Hand' => 'Varastossa',
+ 'Onhand' => 'Saatavilla',
+ 'Open' => 'Avoinna',
+ 'Order' => 'Tilaus',
+ 'Order Date missing!' => 'Tilauspäivämäärä puuttuu!',
+ 'Order Number' => 'Tilausnumero',
+ 'Order Number missing!' => 'Tilausnumero puuttuu!',
+ 'Orphaned' => 'Hylätyt',
+ 'PDF' => 'PDF',
+ 'PO' => 'Ostotilaus',
+ 'Packing List' => 'Pakkauslista',
+ 'Packing List Date missing!' => 'Pakkauslistan päiväys puuttuu!',
+ 'Packing List Number missing!' => 'Pakkauslistan numero puuttuu!',
+ 'Part' => 'Tarvike',
+ 'Parts' => 'Tarvikkeet',
+ 'Parts Requirements' => 'Tarvitaan',
+ 'Period' => 'Ajanjakso',
+ 'Phone' => 'Puhelin',
+ 'Pick List' => 'Keräyslista',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Hinta',
+ 'Pricegroup' => 'Hintaryhmä',
+ 'Printed' => 'Tulostettu',
+ 'Project' => 'Projekti',
+ 'Purchase Order' => 'Ostotilaus',
+ 'Purchase Orders' => 'Ostotilaukset',
+ 'Qty' => 'Määrä',
+ 'Quantity exceeds available units to stock!' => 'Määrä ylittää varaston',
+ 'Queue' => 'Jono',
+ 'Queued' => 'Jonotettu',
+ 'Quotation' => 'Tarjous',
+ 'Quotation Date missing!' => 'Tarjouspäivä puuttuu',
+ 'Quotation Number missing!' => 'Tarjousnumero puuttuu',
+ 'Quotations' => 'Tarjoukset',
+ 'RFQ' => 'Tarjouspyyntö',
+ 'ROP' => 'Uudelleentilauspiste',
+ 'Recd' => 'Vastaanotettu',
+ 'Required by' => 'Toimituspäivä',
+ 'SKU' => 'Varastoyksikkö',
+ 'SO' => 'SO',
+ 'Sales Invoice' => 'Myyntilasku',
+ 'Sales Invoices' => 'Myyntilaskut',
+ 'Sales Order' => 'Tilausvahvistus',
+ 'Sales Orders' => 'Tilausvahvistukset',
+ 'Save' => 'Tallenna',
+ 'Save as new' => 'Tallenna uutena',
+ 'Scheduled' => 'Aikataulutettu',
+ 'Screen' => 'Näyttö',
+ 'Select from one of the names below' => 'Valitse yksi nimi alapuolelta',
+ 'Select items' => 'VAlitse nimikkeet',
+ 'Select txt, postscript or PDF!' => 'Valitse tekstitiedosto, postscript tai PDF!',
+ 'Sell' => 'Myynti',
+ 'Sell Price' => 'Myyntihinta',
+ 'Sep' => 'Syy',
+ 'September' => 'Syyskuu',
+ 'Serial No.' => 'Sarjanumero',
+ 'Serial Number' => 'Sarjanumero',
+ 'Service' => 'Palvelu',
+ 'Services' => 'Palvelut',
+ 'Ship' => 'Lähetä',
+ 'Ship to' => 'Toimitusosoite',
+ 'Shipping Address' => 'Toimitusosoite',
+ 'Short' => 'Lyhytaikaiset',
+ 'Sort by' => 'Järjestä mukaan',
+ 'State/Province' => 'Lääni',
+ 'Stock' => 'Varasto',
+ 'Stock Assembly' => 'Varastoi tuote',
+ 'Subject' => 'Aihe',
+ 'Subtotal' => 'Välisumma',
+ 'Summary' => 'Kooste',
+ 'Tax' => 'Vero',
+ 'Text' => 'Teksti',
+ 'To' => 'Hetkeen',
+ 'Top Level' => 'Ylin taso',
+ 'Translation not on file!' => 'Vienti ei tallennettu',
+ 'Unit' => 'Yksikkö',
+ 'Update' => 'Päivitä',
+ 'Updated' => 'Päivitetty',
+ 'Vendor' => 'Toimittaja',
+ 'Vendor Invoice' => 'Ostolasku',
+ 'Vendor Invoices' => 'Ostolaskut',
+ 'Vendor Number' => 'Toimittajanumero',
+ 'Vendor not on file!' => 'Toimittajaa ei järjestelmässä!',
+ 'Warehouse' => 'Varasto',
+ 'Weight' => 'Paino',
+ 'What type of item is this?' => 'Minkä tyyppinen nimike tämä on?',
+ 'Work Order' => 'Työtilaus',
+ 'Year' => 'Vuosi',
+ 'Zip/Postal Code' => 'Postinumero',
+ 'days' => 'päivää',
+ 'sent' => 'lähetetty',
+ 'unexpected error!' => 'odottamaton virhe',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'lisää_tuote' => 'add_assembly',
+ 'lisää_työ_overhead_kust' => 'add_labor_overhead',
+ 'lisää_raaka_aine_tarvike' => 'add_part',
+ 'lisää_palvelu' => 'add_service',
+ 'jatka' => 'continue',
+ 'poista' => 'delete',
+ 'muokkaa_tuotetta' => 'edit_assembly',
+ 'muokkaa_raaka_ainetta_tarviketta' => 'edit_part',
+ 'muokkaa_palvelua' => 'edit_service',
+ 'tallenna' => 'save',
+ 'tallenna_uutena' => 'save_as_new',
+ 'päivitä' => 'update',
+};
+
+1;
+
diff --git a/locale/fi_utf/io b/locale/fi_utf/io
new file mode 100755
index 00000000..f89f3367
--- /dev/null
+++ b/locale/fi_utf/io
@@ -0,0 +1,139 @@
+$self{texts} = {
+ 'Add Purchase Order' => 'Ostotilaus',
+ 'Add Quotation' => 'Lisää tarjous',
+ 'Add Request for Quotation' => 'Lisää tarjouspyyntö',
+ 'Add Sales Order' => 'Lisää tilausvahvistus',
+ 'Address' => 'Osoite',
+ 'Apr' => 'Huh',
+ 'April' => 'Huhtikuu',
+ 'Attachment' => 'Liite',
+ 'Aug' => 'Elo',
+ 'August' => 'Elokuu',
+ 'Bcc' => 'Näkymätön kopio',
+ 'Billing Address' => 'Laskutusosoite',
+ 'Bin' => 'Varastopaikka',
+ 'Bin List' => 'Varastopaikkalista',
+ 'Cc' => 'Kopio',
+ 'City' => 'Kaupunki',
+ 'Company Name' => 'Yrityksen nimi',
+ 'Contact' => 'Yhteyshenkilö',
+ 'Continue' => 'Jatka',
+ 'Copies' => 'Kopiot',
+ 'Country' => 'Maa',
+ 'Customer Number' => 'Asiakasnumero',
+ 'Date' => 'Päiväys',
+ 'Dec' => 'Jou',
+ 'December' => 'Joulukuu',
+ 'Delivery Date' => 'Toimituspäivä',
+ 'Description' => 'Kuvaus',
+ 'E-mail' => 'Sähköposti',
+ 'E-mail address missing!' => 'Sähköpostiosoite puuttuu!',
+ 'E-mailed' => 'Lähetetty',
+ 'Extended' => 'Pidennetty',
+ 'Fax' => 'Faksi',
+ 'Feb' => 'Hel',
+ 'February' => 'Helmikuu',
+ 'Group' => 'Ryhmä',
+ 'Group by' => 'Ryhmitä mukaan',
+ 'In-line' => 'Linjalla',
+ 'Invoice' => 'Lasku',
+ 'Invoice Date missing!' => 'Laskun päiväys puuttuu!',
+ 'Invoice Number missing!' => 'Laskun numero puuttuu!',
+ 'Item' => 'Nimike',
+ 'Item not on file!' => 'Nimikettä ei ole järjestelmässä!',
+ 'Jan' => 'Tam',
+ 'January' => 'Tammikuu',
+ 'Jul' => 'Hei',
+ 'July' => 'Heinäkuu',
+ 'Jun' => 'Kes',
+ 'June' => 'Kesäkuu',
+ 'Mar' => 'Maa',
+ 'March' => 'Maaliskuu',
+ 'May' => 'Tou',
+ 'May ' => 'Toukokuu',
+ 'Message' => 'Viesti',
+ 'Nov' => 'Mar',
+ 'November' => 'Marraskuu',
+ 'Number' => 'Numero',
+ 'Number missing in Row' => 'Numero puuttuu kannan riviltä',
+ 'OH' => 'Oh',
+ 'Oct' => 'Lok',
+ 'October' => 'Lokakuu',
+ 'Order Date missing!' => 'Tilauspäivämäärä puuttuu!',
+ 'Order Number missing!' => 'Tilausnumero puuttuu!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Pakkauslista',
+ 'Packing List Date missing!' => 'Pakkauslistan päiväys puuttuu!',
+ 'Packing List Number missing!' => 'Pakkauslistan numero puuttuu!',
+ 'Part' => 'Tarvike',
+ 'Phone' => 'Puhelin',
+ 'Pick List' => 'Keräyslista',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Hinta',
+ 'Printed' => 'Tulostettu',
+ 'Project' => 'Projekti',
+ 'Purchase Order' => 'Ostotilaus',
+ 'Qty' => 'Määrä',
+ 'Queue' => 'Jono',
+ 'Queued' => 'Jonotettu',
+ 'Quotation' => 'Tarjous',
+ 'Quotation Date missing!' => 'Tarjouspäivä puuttuu',
+ 'Quotation Number missing!' => 'Tarjousnumero puuttuu',
+ 'Recd' => 'Vastaanotettu',
+ 'Required by' => 'Toimituspäivä',
+ 'SKU' => 'Varastoyksikkö',
+ 'Sales Order' => 'Tilausvahvistus',
+ 'Scheduled' => 'Aikataulutettu',
+ 'Screen' => 'Näyttö',
+ 'Select items' => 'Valitse nimikkeet',
+ 'Select txt, postscript or PDF!' => 'Valitse tekstitiedosto, postscript tai PDF!',
+ 'Sep' => 'Syy',
+ 'September' => 'Syyskuu',
+ 'Serial No.' => 'Sarjanumero',
+ 'Service' => 'Palvelu',
+ 'Ship' => 'Lähetä',
+ 'Ship to' => 'Toimitusosoite',
+ 'Shipping Address' => 'Toimitusosoite',
+ 'Sort by' => 'Järjestä mukaan',
+ 'State/Province' => 'Lääni',
+ 'Subject' => 'Aihe',
+ 'Subtotal' => 'Välisumma',
+ 'Text' => 'Teksti',
+ 'To' => 'Hetkeen',
+ 'Translation not on file!' => 'Vienti ei tallennettu',
+ 'Unit' => 'Yksikkö',
+ 'Vendor Number' => 'Toimittajanumero',
+ 'What type of item is this?' => 'Minkä tyyppinen nimike tämä on?',
+ 'Work Order' => 'Työtilaus',
+ 'Zip/Postal Code' => 'Postinumero',
+ 'sent' => 'lähetetty',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'jatka' => 'continue',
+};
+
+1;
+
diff --git a/locale/fi_utf/ir b/locale/fi_utf/ir
new file mode 100755
index 00000000..6cdf51ee
--- /dev/null
+++ b/locale/fi_utf/ir
@@ -0,0 +1,259 @@
+$self{texts} = {
+ 'Account' => 'Tili',
+ 'Accounting Menu' => 'Kirjanpitovalikko',
+ 'Add Purchase Order' => 'Ostotilaus',
+ 'Add Quotation' => 'Lisää tarjous',
+ 'Add Request for Quotation' => 'Lisää tarjouspyyntö',
+ 'Add Sales Order' => 'Lisää tilausvahvistus',
+ 'Add Vendor Invoice' => 'Lisää ostolasku',
+ 'Address' => 'Osoite',
+ 'Amount' => 'Summa',
+ 'Apr' => 'Huh',
+ 'April' => 'Huhtikuu',
+ 'Are you sure you want to delete Invoice Number' => 'Haluatko poistaa laskun numero',
+ 'Attachment' => 'Liite',
+ 'Aug' => 'Elo',
+ 'August' => 'Elokuu',
+ 'Bcc' => 'Näkymätön kopio',
+ 'Billing Address' => 'Laskutusosoite',
+ 'Bin' => 'Varastopaikka',
+ 'Bin List' => 'Varastopaikkalista',
+ 'Cannot delete invoice!' => 'Laskua ei voi poistaa!',
+ 'Cannot post invoice for a closed period!' => 'Laskun kirjaus suljetulle ajanjaksolle kielletty!',
+ 'Cannot post invoice!' => 'Laskua ei voi kirjata!',
+ 'Cannot post payment for a closed period!' => 'Maksun kirjaus suljetulle ajanjaksolle kielletty!',
+ 'Cc' => 'Kopio',
+ 'City' => 'Kaupunki',
+ 'Company Name' => 'Yrityksen nimi',
+ 'Confirm!' => 'Vahvista!',
+ 'Contact' => 'Yhteyshenkilö',
+ 'Continue' => 'Jatka',
+ 'Copies' => 'Kopiot',
+ 'Country' => 'Maa',
+ 'Credit Limit' => 'Luottoraja',
+ 'Currency' => 'Valuutta',
+ 'Customer Number' => 'Asiakasnumero',
+ 'Customer not on file!' => 'Asiakas ei järjestelmässä!',
+ 'Date' => 'Päiväys',
+ 'Day(s)' => 'Päivä(t)',
+ 'Dec' => 'Jou',
+ 'December' => 'Joulukuu',
+ 'Delete' => 'Poista',
+ 'Delete Schedule' => 'Poista aikataulu',
+ 'Delivery Date' => 'Toimituspäivä',
+ 'Department' => 'Toimipiste',
+ 'Description' => 'Kuvaus',
+ 'Due Date' => 'Eräpäivä',
+ 'E-mail' => 'Sähköposti',
+ 'E-mail address missing!' => 'Sähköpostiosoite puuttuu!',
+ 'E-mail message' => 'Sähkpostiviesti',
+ 'E-mailed' => 'Lähetetty',
+ 'Edit Vendor Invoice' => 'Muokkaa ostolaskua',
+ 'Every' => 'Jokainen',
+ 'Exch' => 'Vaihtokurssi',
+ 'Exchange Rate' => 'Vaihtokurssi',
+ 'Exchange rate for payment missing!' => 'Maksun vaihtokurssi puuttuu',
+ 'Exchange rate missing!' => 'Vaihtokurssi puuttuu',
+ 'Extended' => 'Pidennetty',
+ 'Fax' => 'Faksi',
+ 'Feb' => 'Hel',
+ 'February' => 'Helmikuu',
+ 'For' => ' ',
+ 'Group' => 'Ryhmä',
+ 'Group by' => 'Ryhmitä mukaan',
+ 'In-line' => 'Linjalla',
+ 'Include Payment' => 'Sisällytä maksu',
+ 'Internal Notes' => 'Sisäiset viestit',
+ 'Invoice' => 'Lasku',
+ 'Invoice Date' => 'Laskun päiväys',
+ 'Invoice Date missing!' => 'Laskun päiväys puuttuu!',
+ 'Invoice Number' => 'Laskun numero',
+ 'Invoice Number missing!' => 'Laskun numero puuttuu!',
+ 'Invoice deleted!' => 'Lasku poistettu!',
+ 'Item' => 'Nimike',
+ 'Item not on file!' => 'Nimikettä ei ole järjestelmässä!',
+ 'Jan' => 'Tam',
+ 'January' => 'Tammikuu',
+ 'Jul' => 'Hei',
+ 'July' => 'Heinäkuu',
+ 'Jun' => 'Kes',
+ 'June' => 'Kesäkuu',
+ 'Language' => 'Kieli',
+ 'Mar' => 'Maa',
+ 'March' => 'Maaliskuu',
+ 'May' => 'Tou',
+ 'May ' => 'Toukokuu',
+ 'Memo' => 'Muistio',
+ 'Message' => 'Viesti',
+ 'Month(s)' => 'Kuukausi(det)',
+ 'Next Date' => 'Seuraava pvm',
+ 'Notes' => 'Lisätietoja',
+ 'Nov' => 'Mar',
+ 'November' => 'Marraskuu',
+ 'Number' => 'Numero',
+ 'Number missing in Row' => 'Numero puuttuu kannan riviltä',
+ 'OH' => 'Oh',
+ 'Oct' => 'Lok',
+ 'October' => 'Lokakuu',
+ 'Order Date missing!' => 'Tilauspäivämäärä puuttuu!',
+ 'Order Number' => 'Tilausnumero',
+ 'Order Number missing!' => 'Tilausnumero puuttuu!',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ostotilausnumero',
+ 'Packing List' => 'Pakkauslista',
+ 'Packing List Date missing!' => 'Pakkauslistan päiväys puuttuu!',
+ 'Packing List Number missing!' => 'Pakkauslistan numero puuttuu!',
+ 'Part' => 'Tarvike',
+ 'Payment date missing!' => 'Maksupäivä puuttuu!',
+ 'Payments' => 'Maksut',
+ 'Phone' => 'Puhelin',
+ 'Pick List' => 'Keräyslista',
+ 'Post' => 'Kirjaa',
+ 'Post as new' => 'Kirjaa uutena',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Hinta',
+ 'Print' => 'Tulosta',
+ 'Printed' => 'Tulostettu',
+ 'Project' => 'Projekti',
+ 'Project not on file!' => 'Projekti ei ole järjestelmässä!',
+ 'Purchase Order' => 'Ostotilaus',
+ 'Qty' => 'Määrä',
+ 'Queue' => 'Jono',
+ 'Queued' => 'Jonotettu',
+ 'Quotation' => 'Tarjous',
+ 'Quotation Date missing!' => 'Tarjouspäivä puuttuu',
+ 'Quotation Number missing!' => 'Tarjousnumero puuttuu',
+ 'Recd' => 'Vastaanotettu',
+ 'Record in' => 'Talleta tilille',
+ 'Recurring Transaction' => 'Toistuva siirto',
+ 'Reference' => 'Viite',
+ 'Remaining' => 'Jäljellä',
+ 'Repeat' => 'Toista',
+ 'Required by' => 'Toimituspäivä',
+ 'SKU' => 'Varastoyksikkö',
+ 'Sales Order' => 'Tilausvahvistus',
+ 'Save Schedule' => 'Tallenna aikataulu',
+ 'Schedule' => 'Aikataulu',
+ 'Scheduled' => 'Aikataulutettu',
+ 'Screen' => 'Näyttö',
+ 'Select from one of the names below' => 'Valitse yksi nimi alapuolelta',
+ 'Select from one of the projects below' => 'Valitse yksi projekti alapuolelta',
+ 'Select items' => 'VAlitse nimikkeet',
+ 'Select txt, postscript or PDF!' => 'Valitse tekstitiedosto, postscript tai PDF!',
+ 'Sep' => 'Syy',
+ 'September' => 'Syyskuu',
+ 'Serial No.' => 'Sarjanumero',
+ 'Service' => 'Palvelu',
+ 'Ship' => 'Lähetä',
+ 'Ship to' => 'Toimitusosoite',
+ 'Shipping Address' => 'Toimitusosoite',
+ 'Sort by' => 'Järjestä mukaan',
+ 'Source' => 'Lähde',
+ 'Startdate' => 'Aloituspäivä',
+ 'State/Province' => 'Lääni',
+ 'Subject' => 'Aihe',
+ 'Subtotal' => 'Välisumma',
+ 'Tax Included' => 'ALV sisältyy',
+ 'Text' => 'Teksti',
+ 'To' => 'Hetkeen',
+ 'Total' => 'Yhteensä',
+ 'Translation not on file!' => 'Vienti ei tallennettu',
+ 'Unit' => 'Yksikkö',
+ 'Update' => 'Päivitä',
+ 'Vendor' => 'Toimittaja',
+ 'Vendor Number' => 'Toimittajanumero',
+ 'Vendor missing!' => 'Toimittaja puuttuu!',
+ 'Vendor not on file!' => 'Toimittajaa ei järjestelmässä!',
+ 'Warning!' => 'Varoitus!',
+ 'Week(s)' => 'Viiko(t)',
+ 'What type of item is this?' => 'Minkä tyyppinen nimike tämä on?',
+ 'Work Order' => 'Työtilaus',
+ 'Year(s)' => 'Vuodet',
+ 'Yes' => 'Kyllä',
+ 'You are posting an existing transaction!' => 'Tallennat olemassaolevan viennin',
+ 'You are printing and posting an existing transaction!' => 'Tallennat ja tulostat olemassaolevan viennin',
+ 'You are printing and saving an existing order' => 'Tallennat ja tulostat olemassaolevan tilauksen',
+ 'You are printing and saving an existing quotation' => 'Tallennat ja tulostat olemassaolevan tarjouksen',
+ 'You are saving an existing order' => 'Tallennat olemassaolevan tilauksen',
+ 'You are saving an existing quotation' => 'Tallennat olemassaolevan tarjouksen',
+ 'Zip/Postal Code' => 'Postinumero',
+ 'ea' => 'kpl',
+ 'for' => 'for',
+ 'posted!' => 'kirjattu!',
+ 'sent' => 'lähetetty',
+ 'time(s)' => 'kertaa',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'jatka' => 'continue',
+ 'poista' => 'delete',
+ 'poista_aikataulu' => 'delete_schedule',
+ 'kirjaa' => 'post',
+ 'kirjaa_uutena' => 'post_as_new',
+ 'ostotilaus' => 'purchase_order',
+ 'tallenna_aikataulu' => 'save_schedule',
+ 'aikataulu' => 'schedule',
+ 'päivitä' => 'update',
+ 'kyllä' => 'yes',
+};
+
+1;
+
diff --git a/locale/fi_utf/is b/locale/fi_utf/is
new file mode 100755
index 00000000..981b518c
--- /dev/null
+++ b/locale/fi_utf/is
@@ -0,0 +1,273 @@
+$self{texts} = {
+ 'Account' => 'Tili',
+ 'Accounting Menu' => 'Kirjanpitovalikko',
+ 'Add Purchase Order' => 'Ostotilaus',
+ 'Add Quotation' => 'Lisää tarjous',
+ 'Add Request for Quotation' => 'Lisää tarjouspyyntö',
+ 'Add Sales Invoice' => 'Lisää myyntilasku',
+ 'Add Sales Order' => 'Lisää tilausvahvistus',
+ 'Address' => 'Osoite',
+ 'Amount' => 'Summa',
+ 'Apr' => 'Huh',
+ 'April' => 'Huhtikuu',
+ 'Are you sure you want to delete Invoice Number' => 'Haluatko poistaa laskun numero',
+ 'Attachment' => 'Liite',
+ 'Aug' => 'Elo',
+ 'August' => 'Elokuu',
+ 'Bcc' => 'Näkymätön kopio',
+ 'Billing Address' => 'Laskutusosoite',
+ 'Bin' => 'Varastopaikka',
+ 'Bin List' => 'Varastopaikkalista',
+ 'Business' => 'Toimiala',
+ 'Cannot delete invoice!' => 'Laskua ei voi poistaa!',
+ 'Cannot post invoice for a closed period!' => 'Laskun kirjaus suljetulle ajanjaksolle kielletty!',
+ 'Cannot post invoice!' => 'Laskua ei voi kirjata!',
+ 'Cannot post payment for a closed period!' => 'Maksun kirjaus suljetulle ajanjaksolle kielletty!',
+ 'Cc' => 'Kopio',
+ 'City' => 'Kaupunki',
+ 'Company Name' => 'Yrityksen nimi',
+ 'Confirm!' => 'Vahvista!',
+ 'Contact' => 'Yhteyshenkilö',
+ 'Continue' => 'Jatka',
+ 'Copies' => 'Kopiot',
+ 'Country' => 'Maa',
+ 'Credit Limit' => 'Luottoraja',
+ 'Currency' => 'Valuutta',
+ 'Customer' => 'Asiakas',
+ 'Customer Number' => 'Asiakasnumero',
+ 'Customer missing!' => 'Asiakas puuttuu!',
+ 'Customer not on file!' => 'Asiakas ei järjestelmässä!',
+ 'Date' => 'Päiväys',
+ 'Day(s)' => 'Päivä(t)',
+ 'Dec' => 'Jou',
+ 'December' => 'Joulukuu',
+ 'Delete' => 'Poista',
+ 'Delete Schedule' => 'Poista aikataulu',
+ 'Delivery Date' => 'Toimituspäivä',
+ 'Department' => 'Toimipiste',
+ 'Description' => 'Kuvaus',
+ 'Due Date' => 'Eräpäivä',
+ 'E-mail' => 'Sähköposti',
+ 'E-mail address missing!' => 'Sähköpostiosoite puuttuu!',
+ 'E-mail message' => 'Sähköpostiviesti',
+ 'E-mailed' => 'Lähetetty',
+ 'Edit Sales Invoice' => 'Muokkaa myyntilaskua',
+ 'Every' => 'Jokainen',
+ 'Exch' => 'Vaihtokurssi',
+ 'Exchange Rate' => 'Vaihtokurssi',
+ 'Exchange rate for payment missing!' => 'Maksun vaihtokurssi puuttuu',
+ 'Exchange rate missing!' => 'Vaihtokurssi puuttuu',
+ 'Extended' => 'Pidennetty',
+ 'Fax' => 'Faksi',
+ 'Feb' => 'Hel',
+ 'February' => 'Helmikuu',
+ 'For' => ' ',
+ 'Group' => 'Ryhmä',
+ 'Group by' => 'Ryhmitä mukaan',
+ 'In-line' => 'Linjalla',
+ 'Include Payment' => 'Sisällytä maksu',
+ 'Internal Notes' => 'Sisäiset viestit',
+ 'Invoice' => 'Lasku',
+ 'Invoice Date' => 'Laskun päiväys',
+ 'Invoice Date missing!' => 'Laskun päiväys puuttuu!',
+ 'Invoice Number' => 'Laskun numero',
+ 'Invoice Number missing!' => 'Laskun numero puuttuu!',
+ 'Invoice deleted!' => 'Lasku poistettu!',
+ 'Item' => 'Nimike',
+ 'Item not on file!' => 'Nimikettä ei ole järjestelmässä!',
+ 'Jan' => 'Tam',
+ 'January' => 'Tammikuu',
+ 'Jul' => 'Hei',
+ 'July' => 'Heinäkuu',
+ 'Jun' => 'Kes',
+ 'June' => 'Kesäkuu',
+ 'Mar' => 'Maa',
+ 'March' => 'Maaliskuu',
+ 'May' => 'Tou',
+ 'May ' => 'Toukokuu',
+ 'Memo' => 'Muistio',
+ 'Message' => 'Viesti',
+ 'Month(s)' => 'Kuukausi(det)',
+ 'Next Date' => 'Seuraava pvm',
+ 'Notes' => 'Lisätietoja',
+ 'Nov' => 'Mar',
+ 'November' => 'Marraskuu',
+ 'Number' => 'Numero',
+ 'Number missing in Row' => 'Numero puuttuu kannan riviltä',
+ 'OH' => 'Oh',
+ 'Oct' => 'Lok',
+ 'October' => 'Lokakuu',
+ 'Order Date missing!' => 'Tilauspäivämäärä puuttuu!',
+ 'Order Number' => 'Tilausnumero',
+ 'Order Number missing!' => 'Tilausnumero puuttuu!',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ostotilausnumero',
+ 'Packing List' => 'Pakkauslista',
+ 'Packing List Date missing!' => 'Pakkauslistan päiväys puuttuu!',
+ 'Packing List Number missing!' => 'Pakkauslistan numero puuttuu!',
+ 'Part' => 'Tarvike',
+ 'Payment date missing!' => 'Maksupäivä puuttuu!',
+ 'Payments' => 'Maksut',
+ 'Phone' => 'Puhelin',
+ 'Pick List' => 'Keräyslista',
+ 'Post' => 'Kirjaa',
+ 'Post as new' => 'Kirjaa uutena',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Hinta',
+ 'Print' => 'Tulosta',
+ 'Print and Post' => 'Tulosta ja kirjaa',
+ 'Print and Post as new' => 'Tulosta ja kirjaa uutena',
+ 'Printed' => 'Tulostettu',
+ 'Project' => 'Projekti',
+ 'Project not on file!' => 'Projekti ei ole järjestelmässä!',
+ 'Purchase Order' => 'Ostotilaus',
+ 'Qty' => 'Määrä',
+ 'Queue' => 'Jono',
+ 'Queued' => 'Jonotettu',
+ 'Quotation' => 'Tarjous',
+ 'Quotation Date missing!' => 'Tarjouspäivä puuttuu',
+ 'Quotation Number missing!' => 'Tarjousnumero puuttuu',
+ 'Recd' => 'Vastaanotettu',
+ 'Record in' => 'Talleta tilille',
+ 'Recurring Transaction' => 'Toistuva siirto',
+ 'Reference' => 'Viite',
+ 'Remaining' => 'Jäljellä',
+ 'Repeat' => 'Toista',
+ 'Required by' => 'Toimituspäivä',
+ 'SKU' => 'Varastoyksikkö',
+ 'Sales Order' => 'Tilausvahvistus',
+ 'Salesperson' => 'Myyjä',
+ 'Save Schedule' => 'Tallenna aikataulu',
+ 'Schedule' => 'Aikataulu',
+ 'Scheduled' => 'Aikataulutettu',
+ 'Screen' => 'Näyttö',
+ 'Select a Printer!' => 'Valitse tulostin',
+ 'Select from one of the names below' => 'Valitse yksi nimi alapuolelta',
+ 'Select from one of the projects below' => 'Valitse yksi projekti alapuolelta',
+ 'Select items' => 'VAlitse nimikkeet',
+ 'Select postscript or PDF!' => 'Valitse postscript tai PDF!',
+ 'Select txt, postscript or PDF!' => 'Valitse tekstitiedosto, postscript tai PDF!',
+ 'Sep' => 'Syy',
+ 'September' => 'Syyskuu',
+ 'Serial No.' => 'Sarjanumero',
+ 'Service' => 'Palvelu',
+ 'Ship' => 'Lähetä',
+ 'Ship to' => 'Toimitusosoite',
+ 'Ship via' => 'Välipiste',
+ 'Shipping Address' => 'Toimitusosoite',
+ 'Shipping Point' => 'Toimitusehto',
+ 'Sort by' => 'Järjestä mukaan',
+ 'Source' => 'Lähde',
+ 'Startdate' => 'Aloituspäivä',
+ 'State/Province' => 'Lääni',
+ 'Subject' => 'Aihe',
+ 'Subtotal' => 'Välisumma',
+ 'Tax Included' => 'ALV sisältyy',
+ 'Text' => 'Teksti',
+ 'To' => 'Hetkeen',
+ 'Total' => 'Yhteensä',
+ 'Trade Discount' => 'Alennus',
+ 'Translation not on file!' => 'Vienti ei tallennettu',
+ 'Unit' => 'Yksikkö',
+ 'Update' => 'Päivitä',
+ 'Vendor Number' => 'Toimittajanumero',
+ 'Vendor not on file!' => 'Toimittajaa ei järjestelmässä!',
+ 'Warning!' => 'Varoitus!',
+ 'Week(s)' => 'Viiko(t)',
+ 'What type of item is this?' => 'Minkä tyyppinen nimike tämä on?',
+ 'Work Order' => 'Työtilaus',
+ 'Year(s)' => 'Vuosi(det)',
+ 'Yes' => 'Kyllä',
+ 'You are posting an existing transaction!' => 'Tallennat olemassaolevan viennin',
+ 'You are printing and posting an existing transaction!' => 'Tallennat ja tulostat olemassaolevan viennin',
+ 'You are printing and saving an existing order' => 'Tallennat ja tulostat olemassaolevan tilauksen',
+ 'You are printing and saving an existing quotation' => 'Tallennat ja tulostat olemassaolevan tarjouksen',
+ 'You are saving an existing order' => 'Tallennat olemassaolevan tilauksen',
+ 'You are saving an existing quotation' => 'Tallennat olemassaolevan tarjouksen',
+ 'Zip/Postal Code' => 'Postinumero',
+ 'ea' => 'kpl',
+ 'for' => 'for',
+ 'posted!' => 'kirjattu!',
+ 'sent' => 'lähetetty',
+ 'time(s)' => 'kertaa',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'jatka' => 'continue',
+ 'poista' => 'delete',
+ 'poista_aikataulu' => 'delete_schedule',
+ 'sähköposti' => 'e_mail',
+ 'kirjaa' => 'post',
+ 'kirjaa_uutena' => 'post_as_new',
+ 'tulosta' => 'print',
+ 'tulosta_ja_kirjaa' => 'print_and_post',
+ 'tulosta_ja_kirjaa_uutena' => 'print_and_post_as_new',
+ 'tilausvahvistus' => 'sales_order',
+ 'tallenna_aikataulu' => 'save_schedule',
+ 'aikataulu' => 'schedule',
+ 'toimitusosoite' => 'ship_to',
+ 'päivitä' => 'update',
+ 'kyllä' => 'yes',
+};
+
+1;
+
diff --git a/locale/fi_utf/jc b/locale/fi_utf/jc
new file mode 100755
index 00000000..fafc32a6
--- /dev/null
+++ b/locale/fi_utf/jc
@@ -0,0 +1,156 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Kirjanpitovalikko',
+ 'Add Stores Card' => 'Lisää varastokortti',
+ 'Add Time Card' => 'Lisää aikakortti',
+ 'Allocated' => 'Allokoitu',
+ 'Amount' => 'Summa',
+ 'Are you sure you want to delete time card for' => 'Oletko varma, että haluat poistaa tämän aikakortin?',
+ 'Cannot add stores card for a completed job!' => 'Ei voi lisätä varastokorttia valmiille työlle!',
+ 'Cannot add time card for a completed job!' => 'Ei voi lisätä aikakorttia valmiille työlle!',
+ 'Cannot change stores card for a completed job!' => 'Ei voi muuttaa varastokorttia valmiille työlle!',
+ 'Cannot change time card for a completed job!' => 'Ei voi muuttaa aikakorttia valmiille työlle!',
+ 'Cannot delete time card!' => 'Ei voi poistaa aikakorttia!',
+ 'Cannot save stores card for a closed period!' => 'Ei voi tallentaa varastokorttia suljetulle ajanjaksolle!',
+ 'Cannot save stores card!' => 'Ei voi tallentaa varastokorttia!',
+ 'Cannot save time card for a closed period!' => 'Ei voi tallentaa aikakorttia suljetulle ajanjaksolle!',
+ 'Cannot save time card!' => 'Ei voi tallentaa aikakorttia!',
+ 'Chargeable' => 'Laskutettavissa',
+ 'Chargeout Rate' => 'Laskutushinta',
+ 'Clocked' => 'Ajastettu',
+ 'Closed' => 'Suljettu',
+ 'Confirm!' => 'Vahvista!',
+ 'Continue' => 'Jatka',
+ 'Cost' => 'Hinta',
+ 'Current' => 'Erääntyy',
+ 'Date' => 'Päiväys',
+ 'Date missing!' => 'Päiväys puuttuu',
+ 'Date worked' => 'Työpvm',
+ 'Delete' => 'Poista',
+ 'Description' => 'Kuvaus',
+ 'Edit Time Card' => 'Muokkaa aikakorttia',
+ 'Employee' => 'Työntekijä',
+ 'Friday' => 'Perjantai',
+ 'From' => 'Alkaen',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Sisällytä raporttiin',
+ 'Job Description' => 'Työn kuvaus',
+ 'Job Name' => 'Työnimike',
+ 'Job Number' => 'Työnumero',
+ 'Job Number missing!' => 'Työnumero puuttuu',
+ 'Labor Code' => 'Työkoodi',
+ 'Labor Code missing!' => 'Työkoodi puuttuu',
+ 'Monday' => 'Maanantai',
+ 'Month' => 'Kuukausi',
+ 'No Employees on file!' => 'Ei työntekijöitä tallennettuna',
+ 'No Labor codes on file!' => 'Ei työkoodeja tallennettuna',
+ 'No Parts on file!' => 'Ei tarvikkeita tallennettuna',
+ 'No Services on file!' => 'Ei palveluja tallennettuna!',
+ 'No open Jobs!' => 'Töitä ei auki',
+ 'No open Projects!' => 'Projekteja ei auki',
+ 'Non-chargeable' => 'Ei laskutettavissa',
+ 'Notes' => 'Lisätietoja',
+ 'Open' => 'Avoinna',
+ 'PDF' => 'PDF',
+ 'Part Number' => 'Tarvikenumero',
+ 'Period' => 'Ajanjakso',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Tulosta',
+ 'Print and Save' => 'Tulosta ja tallenna',
+ 'Print and Save as new' => 'Tulosta ja tallenna uutena',
+ 'Printed' => 'Tulostettu',
+ 'Project Name' => 'Projektin nimi',
+ 'Project Number' => 'Projektinumero',
+ 'Project Number missing!' => 'Projektinumero puuttuu!',
+ 'Project/Job Name' => 'Projektin/työn nimi',
+ 'Project/Job Number' => 'Projektin/työn numero',
+ 'Qty' => 'Määrä',
+ 'Quarter' => 'Neljännes',
+ 'Queue' => 'Jono',
+ 'Queued' => 'Jonotettu',
+ 'Saturday' => 'Lauantai',
+ 'Save' => 'Tallenna',
+ 'Save as new' => 'Tallenna uutena',
+ 'Screen' => 'Näyttö',
+ 'Select a Printer!' => 'Valitse tulostin',
+ 'Select postscript or PDF!' => 'Valitse postscript tai PDF!',
+ 'Service Code' => 'Palvelukoodi',
+ 'Service Code missing!' => 'Palvelukoodi puuttuu!',
+ 'Service/Labor Code' => 'Palvelu/työkoodi',
+ 'Startdate' => 'Aloituspäivä',
+ 'Stores Card' => 'Varastokortti',
+ 'Stores Card saved!' => 'Varastokortti tallennettu!',
+ 'Stores Cards' => 'Varastokortit',
+ 'Subtotal' => 'Välisumma',
+ 'Sunday' => 'Sunnuntai',
+ 'Thursday' => 'Torstai',
+ 'Time' => 'Aika',
+ 'Time Card' => 'Aikakortti',
+ 'Time Card deleted!' => 'Aikakortti poistettu',
+ 'Time Card saved!' => 'Aikakortti tallennettu!',
+ 'Time Cards' => 'Aikakortit',
+ 'Time In' => 'Sisääntuloaika',
+ 'Time Out' => 'Ulosmenoaika',
+ 'To' => 'Hetkeen',
+ 'Total' => 'Yhteensä',
+ 'Tuesday' => 'Tiistai',
+ 'Update' => 'Päivitä',
+ 'Warning!' => 'Varoitus!',
+ 'Wednesday' => 'Keskiviikko',
+ 'Year' => 'Vuosi',
+ 'Yes' => 'Kyllä',
+ 'You are printing and saving an existing transaction!' => 'Tallennat ja tulostat olemassaolevan viennin',
+ 'You are saving an existing transaction!' => 'Tallennat olemassaolevan viennin',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'lisää_varastokortti' => 'add_stores_card',
+ 'lisää_aikakortti' => 'add_time_card',
+ 'jatka' => 'continue',
+ 'poista' => 'delete',
+ 'tulosta' => 'print',
+ 'tulosta_ja_tallenna' => 'print_and_save',
+ 'tulosta_ja_tallenna_uutena' => 'print_and_save_as_new',
+ 'tallenna' => 'save',
+ 'tallenna_uutena' => 'save_as_new',
+ 'päivitä' => 'update',
+ 'kyllä' => 'yes',
+};
+
+1;
+
diff --git a/locale/fi_utf/locales.pl b/locale/fi_utf/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/fi_utf/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/fi_utf/login b/locale/fi_utf/login
new file mode 100755
index 00000000..cc9f28bc
--- /dev/null
+++ b/locale/fi_utf/login
@@ -0,0 +1,25 @@
+$self{texts} = {
+ 'Access Denied!' => 'Pääsy kielletty',
+ 'Company' => 'Yritys',
+ 'Continue' => 'Jatka',
+ 'Dataset is newer than version!' => 'Tietokanta on uudempi kuin sovelluksen versio',
+ 'Incorrect Dataset version!' => 'Väärätietokannan versio!',
+ 'Login' => 'Nimi',
+ 'Name' => 'Nimi',
+ 'Password' => 'Salasana',
+ 'Upgrading to Version' => 'Pävitetän versioon',
+ 'Version' => 'Versio',
+ 'You did not enter a name!' => 'Et kirjoittanut nimeä,
+ 'done' => 'valmis',
+};
+
+$self{subs} = {
+ 'login' => 'kirjaudu sisään',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'kirjaudu ulos',
+ 'selectdataset' => 'valitse tietosetti',
+ 'nimi' => 'login',
+};
+
+1;
+
diff --git a/locale/fi_utf/menu b/locale/fi_utf/menu
new file mode 100755
index 00000000..b84327b6
--- /dev/null
+++ b/locale/fi_utf/menu
@@ -0,0 +1,144 @@
+$self{texts} = {
+ 'AP' => 'Ostoreskontra',
+ 'AP Aging' => 'Erääntyvät ostolaskut',
+ 'AP Transaction' => 'Ostoreskontravienti',
+ 'AR' => 'Myyntireskontra',
+ 'AR Aging' => 'Erääntyvät myyntilaskut',
+ 'AR Transaction' => 'Myyntireskontravienti',
+ 'Accounting Menu' => 'Kirjanpitovalikko',
+ 'Add Account' => 'Lisää tili',
+ 'Add Assembly' => 'Lisää tuote',
+ 'Add Business' => 'Lisää toimiala',
+ 'Add Customer' => 'Lisää asiakas',
+ 'Add Department' => 'Lisää toimipiste',
+ 'Add Employee' => 'Lisää työntekijä',
+ 'Add GIFI' => 'Lisää GIFI',
+ 'Add Group' => 'Lisää ryhmä',
+ 'Add Labor/Overhead' => 'Lisää työ/overhead-kust',
+ 'Add Language' => 'Lisää kieli',
+ 'Add Part' => 'Lisää raaka-aine/tarvike',
+ 'Add Pricegroup' => 'Lisää hintaryhmä',
+ 'Add Project' => 'Lisää projekti',
+ 'Add SIC' => 'Lisää SIC',
+ 'Add Service' => 'Lisää palvelu',
+ 'Add Time Card' => 'Lisää aikakortti',
+ 'Add Transaction' => 'Lisää tapahtuma',
+ 'Add Vendor' => 'Lisää toimittaja',
+ 'Add Warehouse' => 'Lisää varasto',
+ 'All Items' => 'Kaikki tuotteet',
+ 'Assemblies' => 'Tuotteet',
+ 'Audit Control' => 'Tilien tarkistus',
+ 'Backup' => 'Varmuuskopio',
+ 'Balance Sheet' => 'Taselaskelma',
+ 'Batch Printing' => 'Erätulostus',
+ 'Bin List' => 'Varastopaikkalista',
+ 'Bin Lists' => 'Varastopaikkalistat',
+ 'Cash' => 'Käteiskauppa',
+ 'Chart of Accounts' => 'Tilikartta',
+ 'Check' => 'Sekki',
+ 'Components' => 'Komponentit',
+ 'Consolidate' => 'Yhdistä',
+ 'Customers' => 'Asiakkaat',
+ 'Defaults' => 'Oletukset',
+ 'Departments' => 'Toimipisteet',
+ 'Description' => 'Kuvaus',
+ 'Employees' => 'Työntekijät',
+ 'General Ledger' => 'Pääkirja',
+ 'Generate' => 'Luo',
+ 'Goods & Services' => 'Hyödykkeet ja palvelut',
+ 'Groups' => 'Ryhmät',
+ 'HR' => 'Henkilöstöhallinta',
+ 'HTML Templates' => 'HTML-mallit',
+ 'History' => 'Historia',
+ 'Income Statement' => 'Tuloslaskelma',
+ 'Invoice' => 'Lasku',
+ 'LaTeX Templates' => 'LaTeX mallit',
+ 'Labor/Overhead' => 'Työ/overhead',
+ 'Language' => 'Kieli',
+ 'List Accounts' => 'Listaa tilit',
+ 'List Businesses' => 'Listaa toimialat',
+ 'List Departments' => 'Listaa toimipisteet',
+ 'List GIFI' => 'Listaa GIFI',
+ 'List Languages' => 'Listaa kielet',
+ 'List Projects' => 'Listaa projektit',
+ 'List SIC' => 'Listaa SIC',
+ 'List Warehouses' => 'Listaa varastot',
+ 'Logout' => 'Kirjaudu ulos',
+ 'New Window' => 'Uusi ikkuna',
+ 'Non-taxable' => 'Veroton',
+ 'Open' => 'Avoinna',
+ 'Order Entry' => 'Tilauksen kirjaus',
+ 'Outstanding' => 'Maksamatta',
+ 'POS' => 'Käteiskauppa',
+ 'POS Invoice' => 'Käteiskauppalasku',
+ 'Packing List' => 'Pakkauslista',
+ 'Packing Lists' => 'Pakkauslistat',
+ 'Parts' => 'Tarvikkeet',
+ 'Payment' => 'Maksu',
+ 'Payments' => 'Maksut',
+ 'Pick List' => 'Keräyslista',
+ 'Pick Lists' => 'Keräyslistat',
+ 'Preferences' => 'Asetukset',
+ 'Pricegroups' => 'Hintaryhmät',
+ 'Print' => 'Tulosta',
+ 'Projects' => 'Projektit',
+ 'Purchase Order' => 'Ostotilaus',
+ 'Purchase Orders' => 'Ostotilaukset',
+ 'Quotation' => 'Tarjous',
+ 'Quotations' => 'Tarjoukset',
+ 'RFQ' => 'Tarjouspyyntö',
+ 'RFQs' => 'Tarjouspyynnöt',
+ 'Receipt' => 'Kuitti',
+ 'Receipts' => 'Kuitit',
+ 'Receive' => 'Saada',
+ 'Reconciliation' => 'Sovitus',
+ 'Recurring Transactions' => 'Toistuvat siirrit',
+ 'Reports' => 'Raportit',
+ 'Requirements' => 'Vaatimukset',
+ 'SIC' => 'Teollisuusluokite',
+ 'Sale' => 'Myynti',
+ 'Sales Invoice' => 'Myyntilasku',
+ 'Sales Invoices' => 'Myyntilaskut',
+ 'Sales Order' => 'Tilausvahvistus',
+ 'Sales Orders' => 'Tilausvahvistukset',
+ 'Save to File' => 'Tallenna tiedostoon',
+ 'Search' => 'Etsi',
+ 'Send by E-Mail' => 'Lähetä sähköpostilla',
+ 'Services' => 'Palvelut',
+ 'Ship' => 'Lähetä',
+ 'Shipping' => 'Toimittaa',
+ 'Statement' => 'Tiliote',
+ 'Stock Assembly' => 'Varastoi tuote',
+ 'Stylesheet' => 'Tyylitiedosto',
+ 'System' => 'Järjestelmä',
+ 'Tax collected' => 'Veroa kerätty',
+ 'Tax paid' => 'Veroa maksettu',
+ 'Taxes' => 'Verot',
+ 'Text Templates' => 'Tekstimallit',
+ 'Time Card' => 'Aikakortti',
+ 'Time Cards' => 'Aikakortit',
+ 'Transactions' => 'Tapahtumat',
+ 'Transfer' => 'Siirto',
+ 'Transfer Inventory' => 'Siirrä varasto',
+ 'Translations' => 'Käännökset',
+ 'Trial Balance' => 'Saldolista',
+ 'Type of Business' => 'Toimialan luokitus',
+ 'Vendor Invoice' => 'Ostolasku',
+ 'Vendors' => 'Toimittajat',
+ 'Version' => 'Versio',
+ 'Warehouses' => 'Varastot',
+ 'Work Order' => 'Työtilaus',
+ 'Work Orders' => 'Työtilaukset',
+ 'Yearend' => 'Tilinpäätös',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/fi_utf/oe b/locale/fi_utf/oe
new file mode 100755
index 00000000..57a7dc88
--- /dev/null
+++ b/locale/fi_utf/oe
@@ -0,0 +1,380 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Kirjanpitovalikko',
+ 'Add Exchange Rate' => 'Lisää vaihtokurssi',
+ 'Add Purchase Order' => 'Ostotilaus',
+ 'Add Quotation' => 'Lisää tarjous',
+ 'Add Request for Quotation' => 'Lisää tarjouspyyntö',
+ 'Add Sales Invoice' => 'Lisää myyntilasku',
+ 'Add Sales Order' => 'Lisää tilausvahvistus',
+ 'Add Vendor Invoice' => 'Lisää ostolasku',
+ 'Address' => 'Osoite',
+ 'Amount' => 'Summa',
+ 'Apr' => 'Huh',
+ 'April' => 'Huhtikuu',
+ 'Are you sure you want to delete Order Number' => 'Haluatko poistaa tilauksen numero',
+ 'Are you sure you want to delete Quotation Number' => 'Haluatko poistaa tarjouksen numero',
+ 'Attachment' => 'Liite',
+ 'Aug' => 'Elo',
+ 'August' => 'Elokuu',
+ 'Bcc' => 'Näkymätön kopio',
+ 'Billing Address' => 'Laskutusosoite',
+ 'Bin' => 'Varastopaikka',
+ 'Bin List' => 'Varastopaikkalista',
+ 'Business' => 'Toimiala',
+ 'C' => 'C',
+ 'Cannot delete order!' => 'Tilausta ei voi poistaa!',
+ 'Cannot delete quotation!' => 'Tarjouspyyntöä ei voi poistaa!',
+ 'Cannot save order!' => 'Tilauksen tallennus ei onnistu!',
+ 'Cannot save quotation!' => 'Ei voi tallentaa tarjousta!',
+ 'Cc' => 'Kopio',
+ 'City' => 'Kaupunki',
+ 'Closed' => 'Suljettu',
+ 'Company Name' => 'Yrityksen nimi',
+ 'Confirm!' => 'Vahvista!',
+ 'Consolidate Orders' => 'Yhdistä tilaukset',
+ 'Consolidate Purchase Orders' => 'Yhdistä ostotilaukset',
+ 'Consolidate Sales Orders' => 'Yhdistä myyntitilaukset',
+ 'Contact' => 'Yhteyshenkilö',
+ 'Continue' => 'Jatka',
+ 'Copies' => 'Kopiot',
+ 'Cost' => 'Hinta',
+ 'Could not save!' => 'Ei voi talelntaa',
+ 'Could not transfer Inventory!' => 'Varaston siirto ei onnistu',
+ 'Country' => 'Maa',
+ 'Credit Limit' => 'Luottoraja',
+ 'Curr' => 'Valuutta',
+ 'Currency' => 'Valuutta',
+ 'Current' => 'Erääntyy',
+ 'Customer' => 'Asiakas',
+ 'Customer Number' => 'Asiakasnumero',
+ 'Customer missing!' => 'Asiakas puuttuu!',
+ 'Customer not on file!' => 'Asiakas ei järjestelmässä!',
+ 'Date' => 'Päiväys',
+ 'Date Received' => 'Vastaanotettu',
+ 'Date received missing!' => 'Vastaanottopvm puuttuu',
+ 'Day(s)' => 'Päivä(t)',
+ 'Dec' => 'Jou',
+ 'December' => 'Joulukuu',
+ 'Delete' => 'Poista',
+ 'Delete Schedule' => 'Poista aikataulu',
+ 'Delivery Date' => 'Toimituspäivä',
+ 'Department' => 'Toimipiste',
+ 'Description' => 'Kuvaus',
+ 'Done' => 'Suoritettu',
+ 'E-mail' => 'Sähköposti',
+ 'E-mail address missing!' => 'Sähköpostiosoite puuttuu!',
+ 'E-mail message' => 'Sähkpostiviesti',
+ 'E-mailed' => 'Lähetetty',
+ 'Edit Purchase Order' => 'Muokkaa ostotilausta',
+ 'Edit Quotation' => 'Muokkaa tarjousta',
+ 'Edit Request for Quotation' => 'Muokkaa tarjouspyyntöä',
+ 'Edit Sales Order' => 'Muokkaa myyntitilausta',
+ 'Employee' => 'Työntekijä',
+ 'Every' => 'Jokainen',
+ 'Exchange Rate' => 'Vaihtokurssi',
+ 'Exchange rate missing!' => 'Vaihtokurssi puuttuu',
+ 'Extended' => 'Pidennetty',
+ 'Fax' => 'Faksi',
+ 'Feb' => 'Hel',
+ 'February' => 'Helmikuu',
+ 'For' => ' ',
+ 'From' => 'Alkaen',
+ 'From Warehouse' => 'Varastosta',
+ 'Generate Orders' => 'Luo tilaukset',
+ 'Generate Purchase Orders' => 'Luo ostotilaukset',
+ 'Generate Purchase Orders from Sales Order' => 'Luo ostotilaukset myyntitilauksesta',
+ 'Generate Sales Order' => 'Luo myyntitilaus',
+ 'Generate Sales Order from Purchase Orders' => 'Luo myyntitilaus ostotilauksista',
+ 'Group' => 'Ryhmä',
+ 'Group by' => 'Ryhmitä mukaan',
+ 'ID' => 'ID',
+ 'In-line' => 'Linjalla',
+ 'Include Payment' => 'Sisällytä maksu',
+ 'Include in Report' => 'Sisällytä raporttiin',
+ 'Internal Notes' => 'Sisäiset viestit',
+ 'Inventory saved!' => 'Varasto tallennettu!',
+ 'Inventory transferred!' => 'Varasto siirretty!',
+ 'Invoice' => 'Lasku',
+ 'Invoice Date missing!' => 'Laskun päiväys puuttuu!',
+ 'Invoice Number missing!' => 'Laskun numero puuttuu!',
+ 'Item' => 'Nimike',
+ 'Item not on file!' => 'Nimikettä ei ole järjestelmässä!',
+ 'Jan' => 'Tam',
+ 'January' => 'Tammikuu',
+ 'Jul' => 'Hei',
+ 'July' => 'Heinäkuu',
+ 'Jun' => 'Kes',
+ 'June' => 'Kesäkuu',
+ 'Lead' => 'Johtolanka',
+ 'Manager' => 'Johtaja',
+ 'Mar' => 'Maa',
+ 'March' => 'Maaliskuu',
+ 'May' => 'Tou',
+ 'May ' => 'Toukokuu',
+ 'Message' => 'Viesti',
+ 'Month' => 'Kuukausi',
+ 'Month(s)' => 'Kuukausi(det)',
+ 'Next Date' => 'Seuraava pvm',
+ 'No.' => 'no',
+ 'Notes' => 'Lisätietoja',
+ 'Nothing entered!' => 'Ei syötettä',
+ 'Nothing selected!' => 'Mitään valitsematta!',
+ 'Nothing to transfer!' => 'Ei siirrettävää!',
+ 'Nov' => 'Mar',
+ 'November' => 'Marraskuu',
+ 'Number' => 'Numero',
+ 'Number missing in Row' => 'Numero puuttuu kannan riviltä',
+ 'O' => 'O',
+ 'OH' => 'Oh',
+ 'Oct' => 'Lok',
+ 'October' => 'Lokakuu',
+ 'Open' => 'Avoinna',
+ 'Order' => 'Tilaus',
+ 'Order Date' => 'Tilauspäivämäärä',
+ 'Order Date missing!' => 'Tilauspäivämäärä puuttuu!',
+ 'Order Number' => 'Tilausnumero',
+ 'Order Number missing!' => 'Tilausnumero puuttuu!',
+ 'Order deleted!' => 'Tilaus poistettu!',
+ 'Order generation failed!' => 'Tilausten luonti ei onnistunut',
+ 'Order saved!' => 'Tilaus tallennettu!',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ostotilausnumero',
+ 'Packing List' => 'Pakkauslista',
+ 'Packing List Date missing!' => 'Pakkauslistan päiväys puuttuu!',
+ 'Packing List Number missing!' => 'Pakkauslistan numero puuttuu!',
+ 'Part' => 'Tarvike',
+ 'Part Number' => 'Tarvikenumero',
+ 'Period' => 'Ajanjakso',
+ 'Phone' => 'Puhelin',
+ 'Pick List' => 'Keräyslista',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Hinta',
+ 'Print' => 'Tulosta',
+ 'Print and Save' => 'Tulosta ja tallenna',
+ 'Print and Save as new' => 'Tulosta ja tallenna uutena',
+ 'Printed' => 'Tulostettu',
+ 'Project' => 'Projekti',
+ 'Project not on file!' => 'Projekti ei ole järjestelmässä!',
+ 'Purchase Order' => 'Ostotilaus',
+ 'Purchase Orders' => 'Ostotilaukset',
+ 'Qty' => 'Määrä',
+ 'Quarter' => 'Neljännes',
+ 'Queue' => 'Jono',
+ 'Queued' => 'Jonotettu',
+ 'Quotation' => 'Tarjous',
+ 'Quotation ' => 'Tarjous ',
+ 'Quotation Date' => 'Tarjouspäivä',
+ 'Quotation Date missing!' => 'Tarjouspäivä puuttuu',
+ 'Quotation Number' => 'Tarjousnumero',
+ 'Quotation Number missing!' => 'Tarjousnumero puuttuu',
+ 'Quotation deleted!' => 'Tarjous poistettu',
+ 'Quotations' => 'Tarjoukset',
+ 'RFQ' => 'Tarjouspyyntö',
+ 'RFQ ' => 'Tarjouspyyntö ',
+ 'RFQ Number' => 'Tarjouspyynnön numero',
+ 'Recd' => 'Vastaanotettu',
+ 'Receive Merchandise' => 'Saada tuotteet',
+ 'Recurring Transaction' => 'Toistuva siirto',
+ 'Reference' => 'Viite',
+ 'Remaining' => 'Jäljellä',
+ 'Repeat' => 'Toista',
+ 'Req' => 'Pyyntö',
+ 'Request for Quotation' => 'Tarjouspyyntö',
+ 'Request for Quotations' => 'Tarjouspyynnöt',
+ 'Required by' => 'Toimituspäivä',
+ 'SKU' => 'Varastoyksikkö',
+ 'Sales Invoice' => 'Myyntilasku',
+ 'Sales Order' => 'Tilausvahvistus',
+ 'Sales Orders' => 'Tilausvahvistukset',
+ 'Salesperson' => 'Myyjä',
+ 'Save' => 'Tallenna',
+ 'Save Schedule' => 'Tallenna aikataulu',
+ 'Save as new' => 'Tallenna uutena',
+ 'Schedule' => 'Aikataulu',
+ 'Scheduled' => 'Aikataulutettu',
+ 'Screen' => 'Näyttö',
+ 'Select Vendor' => 'Valitse toimittaja',
+ 'Select a Printer!' => 'Valitse tulostin',
+ 'Select from one of the names below' => 'Valitse yksi nimi alapuolelta',
+ 'Select from one of the projects below' => 'Valitse yksi projekti alapuolelta',
+ 'Select items' => 'VAlitse nimikkeet',
+ 'Select postscript or PDF!' => 'Valitse postscript tai PDF!',
+ 'Select txt, postscript or PDF!' => 'Valitse tekstitiedosto, postscript tai PDF!',
+ 'Sep' => 'Syy',
+ 'September' => 'Syyskuu',
+ 'Serial No.' => 'Sarjanumero',
+ 'Service' => 'Palvelu',
+ 'Ship' => 'Lähetä',
+ 'Ship Merchandise' => 'Toimita kauppatavara',
+ 'Ship to' => 'Toimitusosoite',
+ 'Ship via' => 'Välipiste',
+ 'Shipping Address' => 'Toimitusosoite',
+ 'Shipping Date' => 'Toimituspvm',
+ 'Shipping Date missing!' => 'Toimituspvm puuttuu',
+ 'Shipping Point' => 'Toimitusehto',
+ 'Sort by' => 'Järjestä mukaan',
+ 'Startdate' => 'Aloituspäivä',
+ 'State/Province' => 'Lääni',
+ 'Subject' => 'Aihe',
+ 'Subtotal' => 'Välisumma',
+ 'Tax' => 'Vero',
+ 'Tax Included' => 'ALV sisältyy',
+ 'Terms' => 'Maksuehto',
+ 'Text' => 'Teksti',
+ 'To' => 'Hetkeen',
+ 'To Warehouse' => 'Varastoon',
+ 'Total' => 'Yhteensä',
+ 'Trade Discount' => 'Alennus',
+ 'Transfer' => 'Siirto',
+ 'Transfer Inventory' => 'Siirrä varasto',
+ 'Transfer from' => 'Siirrö hetkestä',
+ 'Transfer to' => 'Siirrä hetkeen',
+ 'Translation not on file!' => 'Vienti ei tallennettu',
+ 'Unit' => 'Yksikkö',
+ 'Update' => 'Päivitä',
+ 'Valid until' => 'Voimassa asti',
+ 'Vendor' => 'Toimittaja',
+ 'Vendor Invoice' => 'Ostolasku',
+ 'Vendor Number' => 'Toimittajanumero',
+ 'Vendor missing!' => 'Toimittaja puuttuu!',
+ 'Vendor not on file!' => 'Toimittajaa ei järjestelmässä!',
+ 'Warehouse' => 'Varasto',
+ 'Warning!' => 'Varoitus!',
+ 'Week(s)' => 'Viiko(t)',
+ 'What type of item is this?' => 'Minkä tyyppinen nimike tämä on?',
+ 'Work Order' => 'Työtilaus',
+ 'Year' => 'Vuosi',
+ 'Year(s)' => 'Vuodet',
+ 'Yes' => 'Kyllä',
+ 'You are posting an existing transaction!' => 'Tallennat olemassaolevan viennin',
+ 'You are printing and posting an existing transaction!' => 'Tallennat ja tulostat olemassaolevan viennin',
+ 'You are printing and saving an existing order' => 'Tallennat ja tulostat olemassaolevan tilauksen',
+ 'You are printing and saving an existing quotation' => 'Tallennat ja tulostat olemassaolevan tarjouksen',
+ 'You are saving an existing order' => 'Tallennat olemassaolevan tilauksen',
+ 'You are saving an existing quotation' => 'Tallennat olemassaolevan tarjouksen',
+ 'Zip/Postal Code' => 'Postinumero',
+ 'days' => 'päivää',
+ 'ea' => 'kpl',
+ 'for' => 'for',
+ 'sent' => 'lähetetty',
+ 'time(s)' => 'kertaa',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'yhdistä_tilaukset' => 'consolidate_orders',
+ 'jatka' => 'continue',
+ 'poista' => 'delete',
+ 'poista_aikataulu' => 'delete_schedule',
+ 'suoritettu' => 'done',
+ 'sähköposti' => 'e_mail',
+ 'luo_tilaukset' => 'generate_orders',
+ 'luo_ostotilaukset' => 'generate_purchase_orders',
+ 'luo_myyntitilaus' => 'generate_sales_order',
+ 'tulosta' => 'print',
+ 'tulosta_ja_tallenna' => 'print_and_save',
+ 'tulosta_ja_tallenna_uutena' => 'print_and_save_as_new',
+ 'ostotilaus' => 'purchase_order',
+ 'tarjous' => 'quotation',
+ 'tarjous_' => 'quotation_',
+ 'tarjouspyyntö' => 'rfq',
+ 'tarjouspyyntö_' => 'rfq_',
+ 'myyntilasku' => 'sales_invoice',
+ 'tilausvahvistus' => 'sales_order',
+ 'tallenna' => 'save',
+ 'tallenna_aikataulu' => 'save_schedule',
+ 'tallenna_uutena' => 'save_as_new',
+ 'aikataulu' => 'schedule',
+ 'valitse_toimittaja' => 'select_vendor',
+ 'toimitusosoite' => 'ship_to',
+ 'siirto' => 'transfer',
+ 'päivitä' => 'update',
+ 'ostolasku' => 'vendor_invoice',
+ 'kyllä' => 'yes',
+};
+
+1;
+
diff --git a/locale/fi_utf/pe b/locale/fi_utf/pe
new file mode 100755
index 00000000..fe5053fc
--- /dev/null
+++ b/locale/fi_utf/pe
@@ -0,0 +1,166 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Kirjanpitovalikko',
+ 'Active' => 'Avoin',
+ 'Add' => 'Lisää',
+ 'Add Group' => 'Lisää ryhmä',
+ 'Add Job' => 'Lisää työ',
+ 'Add Pricegroup' => 'Lisää hintaryhmä',
+ 'Add Project' => 'Lisää projekti',
+ 'Address' => 'Osoite',
+ 'All' => 'Kaikki',
+ 'Amount' => 'Summa',
+ 'As of' => 'Hetkestä',
+ 'Assembly' => 'Tuote',
+ 'Assembly stocked!' => 'Tuote varastoitu',
+ 'Bin' => 'Varastopaikka',
+ 'Cannot stock Assembly!' => 'Tuoteen varastointi ei onnistu',
+ 'Completed' => 'Valmistunut',
+ 'Continue' => 'Jatka',
+ 'Current' => 'Erääntyy',
+ 'Customer' => 'Asiakas',
+ 'Customer missing!' => 'Asiakas puuttuu!',
+ 'Customer not on file!' => 'Asiakas ei järjestelmässä!',
+ 'Date' => 'Päiväys',
+ 'Delete' => 'Poista',
+ 'Description' => 'Kuvaus',
+ 'Description Translations' => 'Kuvauskäännökset',
+ 'Detail' => 'Yksityiskohdat',
+ 'Edit Description Translations' => 'Muokkaa kuvauskäännöksiä',
+ 'Edit Group' => 'Muokkaa ryhmää',
+ 'Edit Job' => 'Työ',
+ 'Edit Pricegroup' => 'Muokkaa hintaryhmää',
+ 'Edit Project' => 'Muokkaa projektia',
+ 'Employee' => 'Työntekijä',
+ 'Enddate' => 'Päättymispäivä',
+ 'Failed to save order!' => 'Tilauksen tallennus epäonnistui',
+ 'From' => 'Alkaen',
+ 'Generate Sales Orders' => 'Luo myyntitilaukset',
+ 'Group' => 'Ryhmä',
+ 'Group Translations' => 'Ryhmäkäämmökset',
+ 'Group deleted!' => 'Ryhmä poistettu',
+ 'Group missing!' => 'Ryhmä puuttuu',
+ 'Group saved!' => 'Ryhmä tallennettu',
+ 'Groups' => 'Ryhmät',
+ 'Inactive' => 'Ei aktiivinen',
+ 'Income' => 'Tulo',
+ 'Job' => 'Työ',
+ 'Job Number' => 'Työnumero',
+ 'Job deleted!' => 'Työ poistettu',
+ 'Job saved!' => 'Työ tallennettu',
+ 'Jobs' => 'Työt',
+ 'Language' => 'Kieli',
+ 'Languages not defined!' => 'Kielet ei ole määritelty',
+ 'Link Accounts' => 'Linkkaa tilit',
+ 'List Price' => 'Listaa hinnat',
+ 'Month' => 'Kuukausi',
+ 'No open Projects!' => 'Projekteja ei auki',
+ 'Notes' => 'Lisätietoja',
+ 'Nothing selected!' => 'Mitään valitsematta!',
+ 'Number' => 'Numero',
+ 'Orders generated!' => 'Tilaukset luotu',
+ 'Orphaned' => 'Hylätyt',
+ 'Part Number' => 'Tarvikenumero',
+ 'Period' => 'Ajanjakso',
+ 'Pricegroup' => 'Hintaryhmä',
+ 'Pricegroup deleted!' => 'Hintaryhmä poistettu',
+ 'Pricegroup missing!' => 'Hintaryhmä puuttuu',
+ 'Pricegroup saved!' => 'Hintaryhmä tallennettu',
+ 'Pricegroups' => 'Hintaryhmät',
+ 'Production' => 'Tuotanto',
+ 'Project' => 'Projekti',
+ 'Project Description Translations' => 'Projektikuvauskäännökset',
+ 'Project Number' => 'Projektinumero',
+ 'Project deleted!' => 'Projekti poistettu!',
+ 'Project saved!' => 'Projekti tallennettu!',
+ 'Projects' => 'Projektit',
+ 'Qty' => 'Määrä',
+ 'Quarter' => 'Neljännes',
+ 'Save' => 'Tallenna',
+ 'Select Customer' => 'Valitse asiakas',
+ 'Select from one of the names below' => 'Valitse yksi nimi alapuolelta',
+ 'Sell Price' => 'Myyntihinta',
+ 'Service Code' => 'Palvelukoodi',
+ 'Startdate' => 'Aloituspäivä',
+ 'Stock Finished Goods' => 'Varastoi valmiit tuotteet',
+ 'Summary' => 'Kooste',
+ 'Tax' => 'Vero',
+ 'To' => 'Hetkeen',
+ 'Transaction Dates' => 'Vientipvm',
+ 'Translation' => 'Vienti',
+ 'Translation deleted!' => 'Vienti poistettu',
+ 'Translations saved!' => 'Käännökset tallennettu',
+ 'Unit' => 'Yksikkö',
+ 'Update' => 'Päivitä',
+ 'Updated' => 'Päivitetty',
+ 'Vendor' => 'Toimittaja',
+ 'Vendor not on file!' => 'Toimittajaa ei järjestelmässä!',
+ 'Weight' => 'Paino',
+ 'Year' => 'Vuosi',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'lisää_ryhmä' => 'add_group',
+ 'lisää_työ' => 'add_job',
+ 'lisää_hintaryhmä' => 'add_pricegroup',
+ 'lisää_projekti' => 'add_project',
+ 'jatka' => 'continue',
+ 'poista' => 'delete',
+ 'luo_myyntitilaukset' => 'generate_sales_orders',
+ 'tallenna' => 'save',
+ 'valitse_asiakas' => 'select_customer',
+ 'päivitä' => 'update',
+};
+
+1;
+
diff --git a/locale/fi_utf/pos b/locale/fi_utf/pos
new file mode 100755
index 00000000..55ffcad2
--- /dev/null
+++ b/locale/fi_utf/pos
@@ -0,0 +1,81 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Kirjanpitovalikko',
+ 'Add POS Invoice' => 'Lisää käteislasku',
+ 'Amount' => 'Summa',
+ 'Business' => 'Toimiala',
+ 'Cannot post transaction!' => 'Vientiä ei voi kirjata',
+ 'Change' => 'Vaihda',
+ 'Continue' => 'Jatka',
+ 'Credit Limit' => 'Luottoraja',
+ 'Currency' => 'Valuutta',
+ 'Current' => 'Erääntyy',
+ 'Customer' => 'Asiakas',
+ 'Customer missing!' => 'Asiakas puuttuu!',
+ 'Delete' => 'Poista',
+ 'Department' => 'Toimipiste',
+ 'Description' => 'Kuvaus',
+ 'Edit POS Invoice' => 'Muokkaa käteismyyntilaskua',
+ 'Exchange Rate' => 'Vaihtokurssi',
+ 'Exchange rate missing!' => 'Vaihtokurssi puuttuu',
+ 'Extended' => 'Pidennetty',
+ 'From' => 'Alkaen',
+ 'Language' => 'Kieli',
+ 'Memo' => 'Muistio',
+ 'Month' => 'Kuukausi',
+ 'Number' => 'Numero',
+ 'Open' => 'Avoinna',
+ 'Period' => 'Ajanjakso',
+ 'Post' => 'Kirjaa',
+ 'Posted!' => 'Kirjattu!',
+ 'Price' => 'Hinta',
+ 'Print' => 'Tulosta',
+ 'Print and Post' => 'Tulosta ja kirjaa',
+ 'Printed' => 'Tulostettu',
+ 'Qty' => 'Määrä',
+ 'Quarter' => 'Neljännes',
+ 'Receipts' => 'Kuitit',
+ 'Record in' => 'Talleta tilille',
+ 'Remaining' => 'Jäljellä',
+ 'Salesperson' => 'Myyjä',
+ 'Screen' => 'Näyttö',
+ 'Select a Printer!' => 'Valitse tulostin',
+ 'Source' => 'Lähde',
+ 'Subtotal' => 'Välisumma',
+ 'Tax Included' => 'ALV sisältyy',
+ 'To' => 'Hetkeen',
+ 'Total' => 'Yhteensä',
+ 'Trade Discount' => 'Alennus',
+ 'Unit' => 'Yksikkö',
+ 'Update' => 'Päivitä',
+ 'Year' => 'Vuosi',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'jatka' => 'continue',
+ 'poista' => 'delete',
+ 'kirjaa' => 'post',
+ 'tulosta' => 'print',
+ 'tulosta_ja_kirjaa' => 'print_and_post',
+ 'päivitä' => 'update',
+};
+
+1;
+
diff --git a/locale/fi_utf/ps b/locale/fi_utf/ps
new file mode 100755
index 00000000..fe25dea3
--- /dev/null
+++ b/locale/fi_utf/ps
@@ -0,0 +1,399 @@
+$self{texts} = {
+ 'AP Aging' => 'Erääntyvät ostolaskut',
+ 'AP Outstanding' => 'Ei maksetut ostolaskut',
+ 'AP Transaction' => 'Ostotapahtuma',
+ 'AP Transactions' => 'Ostotapahtumat',
+ 'AR Aging' => 'Erääntyvät myyntilaskut',
+ 'AR Outstanding' => 'Ei maksetut myyntilaskut',
+ 'AR Transaction' => 'Myyntitapahtuma',
+ 'AR Transactions' => 'Myyntitapahtumat',
+ 'Account' => 'Tili',
+ 'Account Number' => 'Tilinumero',
+ 'Accounting Menu' => 'Kirjanpitovalikko',
+ 'Accounts' => 'Tilit',
+ 'Accrual' => 'Varaukset',
+ 'Add AP Transaction' => 'Lisää ostotapahtuma',
+ 'Add AR Transaction' => 'Lisää myyntitapahtuma',
+ 'Add POS Invoice' => 'Lisää käteislasku',
+ 'Add Purchase Order' => 'Ostotilaus',
+ 'Add Quotation' => 'Lisää tarjous',
+ 'Add Request for Quotation' => 'Lisää tarjouspyyntö',
+ 'Add Sales Invoice' => 'Lisää myyntilasku',
+ 'Add Sales Order' => 'Lisää tilausvahvistus',
+ 'Address' => 'Osoite',
+ 'Aged' => 'Vanhat',
+ 'Aged Overdue' => 'Vanhat erääntyneet',
+ 'All Accounts' => 'Kaikki tunnukset',
+ 'Amount' => 'Summa',
+ 'Amount Due' => 'Erääntyvä summa',
+ 'Apr' => 'Huh',
+ 'April' => 'Huhtikuu',
+ 'Are you sure you want to delete Invoice Number' => 'Haluatko poistaa laskun numero',
+ 'Are you sure you want to delete Transaction' => 'Haluatko poistaa viennin',
+ 'Attachment' => 'Liite',
+ 'Aug' => 'Elo',
+ 'August' => 'Elokuu',
+ 'Balance' => 'Tase',
+ 'Balance Sheet' => 'Taselaskelma',
+ 'Bcc' => 'Näkymätön kopio',
+ 'Billing Address' => 'Laskutusosoite',
+ 'Bin' => 'Varastopaikka',
+ 'Bin List' => 'Varastopaikkalista',
+ 'Business' => 'Toimiala',
+ 'Cannot delete invoice!' => 'Laskua ei voi poistaa!',
+ 'Cannot delete transaction!' => 'Vientiä ei voi poistaa!',
+ 'Cannot post invoice for a closed period!' => 'Laskun kirjaus suljetulle ajanjaksolle kielletty!',
+ 'Cannot post invoice!' => 'Laskua ei voi kirjata!',
+ 'Cannot post payment for a closed period!' => 'Maksun kirjaus suljetulle ajanjaksolle kielletty!',
+ 'Cannot post transaction for a closed period!' => 'Viennin kirjaus suljetulle ajanjaksolle kielletty!',
+ 'Cannot post transaction!' => 'Vientiä ei voi kirjata',
+ 'Cash' => 'Käteiskauppa',
+ 'Cc' => 'Kopio',
+ 'Change' => 'Vaihda',
+ 'Check' => 'Sekki',
+ 'City' => 'Kaupunki',
+ 'Closed' => 'Suljettu',
+ 'Company Name' => 'Yrityksen nimi',
+ 'Compare to' => 'verrattuna',
+ 'Confirm!' => 'Vahvista!',
+ 'Contact' => 'Yhteyshenkilö',
+ 'Continue' => 'Jatka',
+ 'Copies' => 'Kopiot',
+ 'Country' => 'Maa',
+ 'Credit' => 'Kredit',
+ 'Credit Limit' => 'Luottoraja',
+ 'Curr' => 'Valuutta',
+ 'Currency' => 'Valuutta',
+ 'Current' => 'Erääntyy',
+ 'Current Earnings' => 'Nykyisen tilikauden tuotot',
+ 'Customer' => 'Asiakas',
+ 'Customer Number' => 'Asiakasnumero',
+ 'Customer missing!' => 'Asiakas puuttuu!',
+ 'Customer not on file!' => 'Asiakas ei järjestelmässä!',
+ 'Date' => 'Päiväys',
+ 'Date Paid' => 'Maksupäivä',
+ 'Day(s)' => 'Päivä(t)',
+ 'Debit' => 'Debet',
+ 'Dec' => 'Jou',
+ 'December' => 'Joulukuu',
+ 'Decimalplaces' => 'Desimaalipaikkoja',
+ 'Delete' => 'Poista',
+ 'Delete Schedule' => 'Poista aikataulu',
+ 'Delivery Date' => 'Toimituspäivä',
+ 'Department' => 'Toimipiste',
+ 'Description' => 'Kuvaus',
+ 'Detail' => 'Yksityiskohdat',
+ 'Due Date' => 'Eräpäivä',
+ 'Due Date missing!' => 'Eräpäivä puuttuu!',
+ 'E-mail' => 'Sähköposti',
+ 'E-mail Statement to' => 'Sähköpostilla tiliote',
+ 'E-mail address missing!' => 'Sähköpostiosoite puuttuu!',
+ 'E-mail message' => 'Sähkpostiviesti',
+ 'E-mailed' => 'Lähetetty',
+ 'Edit AP Transaction' => 'Muokkaa ostotapahtumaa',
+ 'Edit AR Transaction' => 'Muokkaa myyntitapahtumaa',
+ 'Edit POS Invoice' => 'Muokkaa käteismyyntilaskua',
+ 'Edit Sales Invoice' => 'Muokkaa myyntilaskua',
+ 'Employee' => 'Työntekijä',
+ 'Every' => 'Jokainen',
+ 'Exch' => 'Vaihtokurssi',
+ 'Exchange Rate' => 'Vaihtokurssi',
+ 'Exchange rate for payment missing!' => 'Maksun vaihtokurssi puuttuu',
+ 'Exchange rate missing!' => 'Vaihtokurssi puuttuu',
+ 'Extended' => 'Pidennetty',
+ 'Fax' => 'Faksi',
+ 'Feb' => 'Hel',
+ 'February' => 'Helmikuu',
+ 'For' => ' ',
+ 'From' => 'Alkaen',
+ 'GIFI' => 'GIFI',
+ 'Group' => 'Ryhmä',
+ 'Group by' => 'Ryhmitä mukaan',
+ 'Heading' => 'Otsikko',
+ 'ID' => 'ID',
+ 'In-line' => 'Linjalla',
+ 'Include Exchange Rate Difference' => 'Sisällytä vaihtokurssiero',
+ 'Include Payment' => 'Sisällytä maksu',
+ 'Include in Report' => 'Sisällytä raporttiin',
+ 'Income Statement' => 'Tuloslaskelma',
+ 'Internal Notes' => 'Sisäiset viestit',
+ 'Invoice' => 'Lasku',
+ 'Invoice Date' => 'Laskun päiväys',
+ 'Invoice Date missing!' => 'Laskun päiväys puuttuu!',
+ 'Invoice Number' => 'Laskun numero',
+ 'Invoice Number missing!' => 'Laskun numero puuttuu!',
+ 'Invoice deleted!' => 'Lasku poistettu!',
+ 'Item' => 'Nimike',
+ 'Item not on file!' => 'Nimikettä ei ole järjestelmässä!',
+ 'Jan' => 'Tam',
+ 'January' => 'Tammikuu',
+ 'Jul' => 'Hei',
+ 'July' => 'Heinäkuu',
+ 'Jun' => 'Kes',
+ 'June' => 'Kesäkuu',
+ 'Language' => 'Kieli',
+ 'Manager' => 'Johtaja',
+ 'Mar' => 'Maa',
+ 'March' => 'Maaliskuu',
+ 'May' => 'Tou',
+ 'May ' => 'Toukokuu',
+ 'Memo' => 'Muistio',
+ 'Message' => 'Viesti',
+ 'Method' => 'Tapa',
+ 'Month' => 'Kuukausi',
+ 'Month(s)' => 'Kuukausi(det)',
+ 'N/A' => 'Ei saatavilla',
+ 'Next Date' => 'Seuraava pvm',
+ 'No.' => 'no',
+ 'Non-taxable Purchases' => 'Verottomat ostot',
+ 'Non-taxable Sales' => 'Verottomat myynnit',
+ 'Notes' => 'Lisätietoja',
+ 'Nothing selected!' => 'Mitään valitsematta!',
+ 'Nothing to print!' => 'Ei tulostettavaa!',
+ 'Nov' => 'Mar',
+ 'November' => 'Marraskuu',
+ 'Number' => 'Numero',
+ 'Number missing in Row' => 'Numero puuttuu kannan riviltä',
+ 'OH' => 'Oh',
+ 'Oct' => 'Lok',
+ 'October' => 'Lokakuu',
+ 'Open' => 'Avoinna',
+ 'Order' => 'Tilaus',
+ 'Order Date missing!' => 'Tilauspäivämäärä puuttuu!',
+ 'Order Number' => 'Tilausnumero',
+ 'Order Number missing!' => 'Tilausnumero puuttuu!',
+ 'Overdue' => 'Erääntyneet',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ostotilausnumero',
+ 'Packing List' => 'Pakkauslista',
+ 'Packing List Date missing!' => 'Pakkauslistan päiväys puuttuu!',
+ 'Packing List Number missing!' => 'Pakkauslistan numero puuttuu!',
+ 'Paid' => 'Maksettu',
+ 'Part' => 'Tarvike',
+ 'Payment date missing!' => 'Maksupäivä puuttuu!',
+ 'Payments' => 'Maksut',
+ 'Period' => 'Ajanjakso',
+ 'Phone' => 'Puhelin',
+ 'Pick List' => 'Keräyslista',
+ 'Post' => 'Kirjaa',
+ 'Post as new' => 'Kirjaa uutena',
+ 'Posted!' => 'Kirjattu!',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Hinta',
+ 'Print' => 'Tulosta',
+ 'Print and Post' => 'Tulosta ja kirjaa',
+ 'Print and Post as new' => 'Tulosta ja kirjaa uutena',
+ 'Printed' => 'Tulostettu',
+ 'Project' => 'Projekti',
+ 'Project Number' => 'Projektinumero',
+ 'Project Transactions' => 'Projektin tapahtumat',
+ 'Project not on file!' => 'Projekti ei ole järjestelmässä!',
+ 'Purchase Order' => 'Ostotilaus',
+ 'Qty' => 'Määrä',
+ 'Quarter' => 'Neljännes',
+ 'Queue' => 'Jono',
+ 'Queued' => 'Jonotettu',
+ 'Quotation' => 'Tarjous',
+ 'Quotation Date missing!' => 'Tarjouspäivä puuttuu',
+ 'Quotation Number missing!' => 'Tarjousnumero puuttuu',
+ 'Recd' => 'Vastaanotettu',
+ 'Receipt' => 'Kuitti',
+ 'Receipts' => 'Kuitit',
+ 'Record in' => 'Talleta tilille',
+ 'Recurring Transaction' => 'Toistuva siirto',
+ 'Reference' => 'Viite',
+ 'Remaining' => 'Jäljellä',
+ 'Repeat' => 'Toista',
+ 'Report for' => 'Raportti',
+ 'Required by' => 'Toimituspäivä',
+ 'SKU' => 'Varastoyksikkö',
+ 'Sales Invoice.' => 'Myyntilasku.',
+ 'Sales Order' => 'Tilausvahvistus',
+ 'Salesperson' => 'Myyjä',
+ 'Save Schedule' => 'Tallenna aikataulu',
+ 'Schedule' => 'Aikataulu',
+ 'Scheduled' => 'Aikataulutettu',
+ 'Screen' => 'Näyttö',
+ 'Select a Printer!' => 'Valitse tulostin',
+ 'Select all' => 'Valitse kaikki',
+ 'Select from one of the names below' => 'Valitse yksi nimi alapuolelta',
+ 'Select from one of the projects below' => 'Valitse yksi projekti alapuolelta',
+ 'Select items' => 'VAlitse nimikkeet',
+ 'Select payment' => 'Valitse maksutapa',
+ 'Select postscript or PDF!' => 'Valitse postscript tai PDF!',
+ 'Select txt, postscript or PDF!' => 'Valitse tekstitiedosto, postscript tai PDF!',
+ 'Sep' => 'Syy',
+ 'September' => 'Syyskuu',
+ 'Serial No.' => 'Sarjanumero',
+ 'Service' => 'Palvelu',
+ 'Ship' => 'Lähetä',
+ 'Ship to' => 'Toimitusosoite',
+ 'Ship via' => 'Välipiste',
+ 'Shipping Address' => 'Toimitusosoite',
+ 'Shipping Point' => 'Toimitusehto',
+ 'Sort by' => 'Järjestä mukaan',
+ 'Source' => 'Lähde',
+ 'Standard' => 'Vakio',
+ 'Startdate' => 'Aloituspäivä',
+ 'State/Province' => 'Lääni',
+ 'Statement' => 'Tiliote',
+ 'Statement sent to' => 'Tiliote lähetetty',
+ 'Statements sent to printer!' => 'Tiliotteet lähetetty tulostimelle!',
+ 'Subject' => 'Aihe',
+ 'Subtotal' => 'Välisumma',
+ 'Summary' => 'Kooste',
+ 'Tax' => 'Vero',
+ 'Tax Included' => 'ALV sisältyy',
+ 'Tax collected' => 'Veroa kerätty',
+ 'Tax paid' => 'Veroa maksettu',
+ 'Text' => 'Teksti',
+ 'Till' => 'Kassa',
+ 'To' => 'Hetkeen',
+ 'Total' => 'Yhteensä',
+ 'Trade Discount' => 'Alennus',
+ 'Transaction' => 'Vienti',
+ 'Transaction deleted!' => 'Vienti poistettu!',
+ 'Transaction posted!' => 'Vienti kirjattu!',
+ 'Translation not on file!' => 'Vienti ei tallennettu',
+ 'Trial Balance' => 'Saldolista',
+ 'Unit' => 'Yksikkö',
+ 'Update' => 'Päivitä',
+ 'Vendor' => 'Toimittaja',
+ 'Vendor Invoice.' => 'Ostolasku.',
+ 'Vendor Number' => 'Toimittajanumero',
+ 'Vendor missing!' => 'Toimittaja puuttuu!',
+ 'Vendor not on file!' => 'Toimittajaa ei järjestelmässä!',
+ 'Warning!' => 'Varoitus!',
+ 'Week(s)' => 'Viiko(t)',
+ 'What type of item is this?' => 'Minkä tyyppinen nimike tämä on?',
+ 'Work Order' => 'Työtilaus',
+ 'Year' => 'Vuosi',
+ 'Year(s)' => 'Vuodet',
+ 'Yes' => 'Kyllä',
+ 'You are posting an existing transaction!' => 'Tallennat olemassaolevan viennin',
+ 'You are printing and posting an existing transaction!' => 'Tallennat ja tulostat olemassaolevan viennin',
+ 'You are printing and saving an existing order' => 'Tallennat ja tulostat olemassaolevan tilauksen',
+ 'You are printing and saving an existing quotation' => 'Tallennat ja tulostat olemassaolevan tarjouksen',
+ 'You are saving an existing order' => 'Tallennat olemassaolevan tilauksen',
+ 'You are saving an existing quotation' => 'Tallennat olemassaolevan tarjouksen',
+ 'Zip/Postal Code' => 'Postinumero',
+ 'as at' => 'päivänä ',
+ 'ea' => 'kpl',
+ 'for' => 'for',
+ 'for Period' => 'jaksolle',
+ 'posted!' => 'kirjattu!',
+ 'sent' => 'lähetetty',
+ 'time(s)' => 'kertaa',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'ostotapahtuma' => 'ap_transaction',
+ 'myyntitapahtuma' => 'ar_transaction',
+ 'jatka' => 'continue',
+ 'poista' => 'delete',
+ 'poista_aikataulu' => 'delete_schedule',
+ 'sähköposti' => 'e_mail',
+ 'kirjaa' => 'post',
+ 'kirjaa_uutena' => 'post_as_new',
+ 'tulosta' => 'print',
+ 'tulosta_ja_kirjaa' => 'print_and_post',
+ 'tulosta_ja_kirjaa_uutena' => 'print_and_post_as_new',
+ 'myyntilasku_' => 'sales_invoice_',
+ 'tilausvahvistus' => 'sales_order',
+ 'tallenna_aikataulu' => 'save_schedule',
+ 'aikataulu' => 'schedule',
+ 'valitse_kaikki' => 'select_all',
+ 'toimitusosoite' => 'ship_to',
+ 'päivitä' => 'update',
+ 'ostolasku_' => 'vendor_invoice_',
+ 'kyllä' => 'yes',
+};
+
+1;
+
diff --git a/locale/fi_utf/pw b/locale/fi_utf/pw
new file mode 100755
index 00000000..a9b6101e
--- /dev/null
+++ b/locale/fi_utf/pw
@@ -0,0 +1,13 @@
+$self{texts} = {
+ 'Continue' => 'Jatka',
+ 'Password' => 'Salasana',
+ 'Session expired!' => 'Yhteys vanhentunut',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'jatka' => 'continue',
+};
+
+1;
+
diff --git a/locale/fi_utf/rc b/locale/fi_utf/rc
new file mode 100755
index 00000000..3291d50f
--- /dev/null
+++ b/locale/fi_utf/rc
@@ -0,0 +1,79 @@
+$self{texts} = {
+ 'Account' => 'Tili',
+ 'Accounting Menu' => 'Kirjanpitovalikko',
+ 'Apr' => 'Huh',
+ 'April' => 'Huhtikuu',
+ 'Aug' => 'Elo',
+ 'August' => 'Elokuu',
+ 'Balance' => 'Tase',
+ 'Beginning Balance' => 'Alkusaldo',
+ 'Cleared' => 'Tyhjennetty',
+ 'Continue' => 'Jatka',
+ 'Credit' => 'Kredit',
+ 'Current' => 'Erääntyy',
+ 'Date' => 'Päiväys',
+ 'Debit' => 'Debet',
+ 'Dec' => 'Jou',
+ 'December' => 'Joulukuu',
+ 'Description' => 'Kuvaus',
+ 'Detail' => 'Yksityiskohdat',
+ 'Difference' => 'Ero',
+ 'Done' => 'Suoritettu',
+ 'Feb' => 'Hel',
+ 'February' => 'Helmikuu',
+ 'From' => 'Alkaen',
+ 'Include Exchange Rate Difference' => 'Sisällytä vaihtokurssiero',
+ 'Jan' => 'Tam',
+ 'January' => 'Tammikuu',
+ 'Jul' => 'Hei',
+ 'July' => 'Heinäkuu',
+ 'Jun' => 'Kes',
+ 'June' => 'Kesäkuu',
+ 'Mar' => 'Maa',
+ 'March' => 'Maaliskuu',
+ 'May' => 'Tou',
+ 'May ' => 'Toukokuu',
+ 'Month' => 'Kuukausi',
+ 'Nov' => 'Mar',
+ 'November' => 'Marraskuu',
+ 'Oct' => 'Lok',
+ 'October' => 'Lokakuu',
+ 'Out of balance!' => 'Taseet eivät täsmää',
+ 'Outstanding' => 'Maksamatta',
+ 'Period' => 'Ajanjakso',
+ 'Quarter' => 'Neljännes',
+ 'R' => 'R',
+ 'Reconciliation' => 'Sovitus',
+ 'Reconciliation Report' => 'Sovitusraportti',
+ 'Select all' => 'Valitse kaikki',
+ 'Sep' => 'Syy',
+ 'September' => 'Syyskuu',
+ 'Source' => 'Lähde',
+ 'Statement Balance' => 'Tiliotteen tase',
+ 'Summary' => 'Kooste',
+ 'To' => 'Hetkeen',
+ 'Update' => 'Päivitä',
+ 'Year' => 'Vuosi',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'jatka' => 'continue',
+ 'suoritettu' => 'done',
+ 'valitse_kaikki' => 'select_all',
+ 'päivitä' => 'update',
+};
+
+1;
+
diff --git a/locale/fi_utf/rp b/locale/fi_utf/rp
new file mode 100755
index 00000000..af7ea38b
--- /dev/null
+++ b/locale/fi_utf/rp
@@ -0,0 +1,205 @@
+$self{texts} = {
+ 'AP Aging' => 'Erääntyvät ostolaskut',
+ 'AR Aging' => 'Erääntyvät myyntilaskut',
+ 'Account' => 'Tili',
+ 'Account Number' => 'Tilinumero',
+ 'Accounting Menu' => 'Kirjanpitovalikko',
+ 'Accounts' => 'Tilit',
+ 'Accrual' => 'Varaukset',
+ 'Address' => 'Osoite',
+ 'Aged' => 'Vanhat',
+ 'Aged Overdue' => 'Vanhat erääntyneet',
+ 'All Accounts' => 'Kaikki tunnukset',
+ 'Amount' => 'Summa',
+ 'Apr' => 'Huh',
+ 'April' => 'Huhtikuu',
+ 'Attachment' => 'Liite',
+ 'Aug' => 'Elo',
+ 'August' => 'Elokuu',
+ 'Balance' => 'Tase',
+ 'Balance Sheet' => 'Taselaskelma',
+ 'Bcc' => 'Näkymätön kopio',
+ 'Cash' => 'Käteiskauppa',
+ 'Cc' => 'Kopio',
+ 'Compare to' => 'verrattuna',
+ 'Continue' => 'Jatka',
+ 'Copies' => 'Kopiot',
+ 'Credit' => 'Kredit',
+ 'Curr' => 'Valuutta',
+ 'Current' => 'Erääntyy',
+ 'Current Earnings' => 'Nykyisen tilikauden tuotot',
+ 'Customer' => 'Asiakas',
+ 'Customer not on file!' => 'Asiakas ei järjestelmässä!',
+ 'Date' => 'Päiväys',
+ 'Day(s)' => 'Päivä(t)',
+ 'Debit' => 'Debet',
+ 'Dec' => 'Jou',
+ 'December' => 'Joulukuu',
+ 'Decimalplaces' => 'Desimaalipaikkoja',
+ 'Delete Schedule' => 'Poista aikataulu',
+ 'Department' => 'Toimipiste',
+ 'Description' => 'Kuvaus',
+ 'Detail' => 'Yksityiskohdat',
+ 'Due Date' => 'Eräpäivä',
+ 'E-mail' => 'Sähköposti',
+ 'E-mail Statement to' => 'Sähköpostilla tiliote',
+ 'E-mail address missing!' => 'Sähköpostiosoite puuttuu!',
+ 'E-mail message' => 'Sähkpostiviesti',
+ 'Every' => 'Jokainen',
+ 'Feb' => 'Hel',
+ 'February' => 'Helmikuu',
+ 'For' => ' ',
+ 'From' => 'Alkaen',
+ 'GIFI' => 'GIFI',
+ 'Heading' => 'Otsikko',
+ 'ID' => 'ID',
+ 'In-line' => 'Linjalla',
+ 'Include Exchange Rate Difference' => 'Sisällytä vaihtokurssiero',
+ 'Include Payment' => 'Sisällytä maksu',
+ 'Include in Report' => 'Sisällytä raporttiin',
+ 'Income Statement' => 'Tuloslaskelma',
+ 'Invoice' => 'Lasku',
+ 'Jan' => 'Tam',
+ 'January' => 'Tammikuu',
+ 'Jul' => 'Hei',
+ 'July' => 'Heinäkuu',
+ 'Jun' => 'Kes',
+ 'June' => 'Kesäkuu',
+ 'Language' => 'Kieli',
+ 'Mar' => 'Maa',
+ 'March' => 'Maaliskuu',
+ 'May' => 'Tou',
+ 'May ' => 'Toukokuu',
+ 'Memo' => 'Muistio',
+ 'Message' => 'Viesti',
+ 'Method' => 'Tapa',
+ 'Month' => 'Kuukausi',
+ 'Month(s)' => 'Kuukausi(det)',
+ 'N/A' => 'Ei saatavilla',
+ 'Next Date' => 'Seuraava pvm',
+ 'Non-taxable Purchases' => 'Verottomat ostot',
+ 'Non-taxable Sales' => 'Verottomat myynnit',
+ 'Nothing selected!' => 'Mitään valitsematta!',
+ 'Nov' => 'Mar',
+ 'November' => 'Marraskuu',
+ 'Number' => 'Numero',
+ 'Oct' => 'Lok',
+ 'October' => 'Lokakuu',
+ 'Order' => 'Tilaus',
+ 'Overdue' => 'Erääntyneet',
+ 'PDF' => 'PDF',
+ 'Payments' => 'Maksut',
+ 'Period' => 'Ajanjakso',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Tulosta',
+ 'Project' => 'Projekti',
+ 'Project Number' => 'Projektinumero',
+ 'Project Transactions' => 'Projektin tapahtumat',
+ 'Project not on file!' => 'Projekti ei ole järjestelmässä!',
+ 'Quarter' => 'Neljännes',
+ 'Receipts' => 'Kuitit',
+ 'Recurring Transaction' => 'Toistuva siirto',
+ 'Reference' => 'Viite',
+ 'Repeat' => 'Toista',
+ 'Report for' => 'Raportti',
+ 'Salesperson' => 'Myyjä',
+ 'Save Schedule' => 'Tallenna aikataulu',
+ 'Screen' => 'Näyttö',
+ 'Select all' => 'Valitse kaikki',
+ 'Select from one of the names below' => 'Valitse yksi nimi alapuolelta',
+ 'Select from one of the projects below' => 'Valitse yksi projekti alapuolelta',
+ 'Select postscript or PDF!' => 'Valitse postscript tai PDF!',
+ 'Sep' => 'Syy',
+ 'September' => 'Syyskuu',
+ 'Source' => 'Lähde',
+ 'Standard' => 'Vakio',
+ 'Startdate' => 'Aloituspäivä',
+ 'Statement' => 'Tiliote',
+ 'Statement sent to' => 'Tiliote lähetetty',
+ 'Statements sent to printer!' => 'Tiliotteet lähetetty tulostimelle!',
+ 'Subject' => 'Aihe',
+ 'Subtotal' => 'Välisumma',
+ 'Summary' => 'Kooste',
+ 'Tax' => 'Vero',
+ 'Tax collected' => 'Veroa kerätty',
+ 'Tax paid' => 'Veroa maksettu',
+ 'Till' => 'Kassa',
+ 'To' => 'Hetkeen',
+ 'Total' => 'Yhteensä',
+ 'Trial Balance' => 'Saldolista',
+ 'Vendor' => 'Toimittaja',
+ 'Vendor not on file!' => 'Toimittajaa ei järjestelmässä!',
+ 'Warning!' => 'Varoitus!',
+ 'Week(s)' => 'Viiko(t)',
+ 'Year' => 'Vuosi',
+ 'Year(s)' => 'Vuodet',
+ 'You are posting an existing transaction!' => 'Tallennat olemassaolevan viennin',
+ 'You are printing and posting an existing transaction!' => 'Tallennat ja tulostat olemassaolevan viennin',
+ 'You are printing and saving an existing order' => 'Tallennat ja tulostat olemassaolevan tilauksen',
+ 'You are printing and saving an existing quotation' => 'Tallennat ja tulostat olemassaolevan tarjouksen',
+ 'You are saving an existing order' => 'Tallennat olemassaolevan tilauksen',
+ 'You are saving an existing quotation' => 'Tallennat olemassaolevan tarjouksen',
+ 'as at' => 'päivänä ',
+ 'for' => 'for',
+ 'for Period' => 'jaksolle',
+ 'sent' => 'lähetetty',
+ 'time(s)' => 'kertaa',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'jatka' => 'continue',
+ 'poista_aikataulu' => 'delete_schedule',
+ 'sähköposti' => 'e_mail',
+ 'tulosta' => 'print',
+ 'tallenna_aikataulu' => 'save_schedule',
+ 'valitse_kaikki' => 'select_all',
+};
+
+1;
+
diff --git a/locale/fr/COPYING b/locale/fr/COPYING
new file mode 100755
index 00000000..76693a89
--- /dev/null
+++ b/locale/fr/COPYING
@@ -0,0 +1,28 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2003
+#
+# French texts:
+#
+# Author: Sèbastien Brassard <sbrassar.cgocable.ca>
+# Oscar Buijten <oscar@elbie.com>
+# Wolfgang Sourdeau <wolfgang@contre.com>
+# Aguibou KONE <aguibou.kone@rocketmail.com>
+# Jens-Ingo Brodesser <jens-ingo@all2all.org>
+# Mathieu Chappuis <mathieu.chappuis@nchp.net>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/fr/LANGUAGE b/locale/fr/LANGUAGE
new file mode 100755
index 00000000..744b2c3f
--- /dev/null
+++ b/locale/fr/LANGUAGE
@@ -0,0 +1 @@
+French
diff --git a/locale/fr/Num2text b/locale/fr/Num2text
new file mode 100755
index 00000000..bcc693a5
--- /dev/null
+++ b/locale/fr/Num2text
@@ -0,0 +1,211 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (C) 2002
+#
+# Author: Dieter Simader
+# Email: dsimader@sql-ledger.org
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+# Contributors: Bruno Leveque <bruno.leveque@net6d.com>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=====================================================================
+#
+# this is the french code for printing numbers in text
+#
+#=====================================================================
+
+
+sub init {
+ my $self = shift;
+
+ %{ $self->{numbername} } =
+ (0 => 'Zéro',
+ 1 => 'Un',
+ 2 => 'Deux',
+ 3 => 'Trois',
+ 4 => 'Quatre',
+ 5 => 'Cinq',
+ 6 => 'Six',
+ 7 => 'Sept',
+ 8 => 'Huit',
+ 9 => 'Neuf',
+ 10 => 'Dix',
+ 11 => 'Onze',
+ 12 => 'Douze',
+ 13 => 'Treize',
+ 14 => 'Quatorze',
+ 15 => 'Quinze',
+ 16 => 'Seize',
+ 17 => 'Dix-sept',
+ 18 => 'Dix-huit',
+ 19 => 'Dix-neuf',
+ 20 => 'Vingt',
+ 30 => 'Trente',
+ 40 => 'Quarante',
+ 50 => 'Cinquante',
+ 60 => 'Soixante',
+ 70 => 'Soixante-dix',
+ 80 => 'Quatre-vingt',
+ 90 => 'Quatre-vingt-dix',
+ 10**2 => 'Cent',
+ 10**3 => 'Mille',
+ 10**6 => 'Million',
+ 10**9 => 'Milliard',
+ 10**12 => 'Billion',
+ );
+
+}
+
+
+sub num2text {
+ my ($self, $amount) = @_;
+
+ return $self->{numbername}{0} unless $amount;
+
+ my @textnumber = ();
+
+ # split amount into chunks of 3
+ my @num = reverse split //, abs($amount);
+ my @numblock = ();
+ my @a;
+ my $i;
+
+ while (@num) {
+ @a = ();
+ for (1 .. 3) {
+ push @a, shift @num;
+ }
+ push @numblock, join / /, reverse @a;
+ }
+
+ my $cent=0;
+
+ while (@numblock) {
+
+ $i = $#numblock;
+ @num = split //, $numblock[$i];
+
+ if ($numblock[$i] == 0) {
+ pop @numblock;
+ next;
+ }
+
+ if ($numblock[$i] > 99) {
+ $cent=1;
+
+ # the one from hundreds
+
+ if ($num[0] > 1) {
+ push @textnumber, $self->{numbername}{$num[0]};
+ }
+
+ # reduce numblock
+ $numblock[$i] -= $num[0] * 100;
+
+ # add hundred designation
+ if ($num[0] > 1) {
+ if($numblock[$i] > 0) {
+ push @textnumber, $self->{numbername}{10**2};
+ } else {
+ push @textnumber, "$self->{numbername}{10**2}s";
+ }
+ } else {
+ push @textnumber, $self->{numbername}{10**2};
+ }
+
+ }
+
+ $numblock[$i] *= 1;
+
+ if ($numblock[$i] > 9) {
+ # tens
+ push @textnumber, $self->format_ten($numblock[$i]);
+ } elsif ($numblock[$i] > 0) {
+ # ones
+ if ($i == 1) {
+ if ($cent == 1) {
+ push @textnumber, $self->{numbername}{$numblock[$i]};
+ }
+ $cent = 0;
+ } else {
+ push @textnumber, $self->{numbername}{$numblock[$i]};
+ }
+ }
+
+ # add thousand, million
+ if ($i) {
+ $num = 10**($i * 3);
+ if ($i == 1) {
+ push @textnumber, $self->{numbername}{$num};
+ } elsif ($numblock[$i] > 1) {
+ push @textnumber, "$self->{numbername}{$num}s";
+ } else {
+ push @textnumber, "$self->{numbername}{$num}";
+ }
+ }
+
+ pop @numblock;
+
+ }
+
+ join ' ', @textnumber;
+
+}
+
+
+sub format_ten {
+ my ($self, $amount) = @_;
+
+ my $textnumber = "";
+ my @num = split //, $amount;
+
+ if ($amount > 20) {
+ if ($num[0] == 8) {
+ if ($num[1] > 0) {
+ $textnumber = $self->{numbername}{$num[0]*10};
+ } else {
+ $textnumber = "$self->{numbername}{$num[0]*10}s";
+ }
+ $amount = $num[1];
+ } elsif ($num[0] == 7 || $num[0] == 9) {
+ if ($num[1] > 0) {
+ $textnumber = $self->{numbername}{($num[0]-1)*10};
+
+ $textnumber .= " et" if ($num[1] == 1 && $num[0] == 7);
+
+ $amount -= ($num[0]-1)*10;
+ } else {
+ $textnumber = $self->{numbername}{$num[0]*10};
+ $amount = $num[1];
+ }
+ } else {
+ $textnumber = $self->{numbername}{$num[0]*10};
+ $textnumber .= " et" if ($num[1] == 1);
+ $amount = $num[1];
+ }
+ } else {
+ $textnumber = "$self->{numbername}{$amount}";
+ $amount = 0;
+ }
+
+ $textnumber .= " ".$self->{numbername}{$amount} if $amount;
+
+ $textnumber;
+
+}
+
+
+1;
+
diff --git a/locale/fr/aa b/locale/fr/aa
new file mode 100755
index 00000000..ce05b273
--- /dev/null
+++ b/locale/fr/aa
@@ -0,0 +1,159 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Dépenses en retard',
+ 'AP Transaction' => 'Écriture dépenses',
+ 'AP Transactions' => 'Mouvements - Dépenses',
+ 'AR Outstanding' => 'Recettes en retard',
+ 'AR Transaction' => 'Écriture recettes',
+ 'AR Transactions' => 'Mouvements - Recettes',
+ 'Account' => 'Compte',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Add AP Transaction' => 'Ajouter une dépense',
+ 'Add AR Transaction' => 'Ajouter une recette',
+ 'Amount' => 'Montant',
+ 'Amount Due' => 'Montant dû',
+ 'Apr' => 'Avril',
+ 'April' => 'Avril',
+ 'Are you sure you want to delete Transaction' => 'Êtes vous sûr de vouloir effacer la saisie?',
+ 'Aug' => 'Août',
+ 'August' => 'Août',
+ 'Cannot delete transaction!' => 'Impossible de supprimer la saisie!',
+ 'Cannot post payment for a closed period!' => 'Impossible d\'enregistrer le paiement sur un exercice clos!',
+ 'Cannot post transaction for a closed period!' => 'Impossible d\'enregistrer l\'écriture sur un exercice clos!',
+ 'Cannot post transaction!' => 'Impossible d\'enregistrer l\'écriture!',
+ 'Check' => 'Chèque',
+ 'Closed' => 'Clôturé',
+ 'Confirm!' => 'Confirmer!',
+ 'Continue' => 'Continuer',
+ 'Credit' => 'Crédit',
+ 'Credit Limit' => 'Encours autorisé',
+ 'Curr' => 'Dev.',
+ 'Currency' => 'Devise',
+ 'Current' => 'En cours',
+ 'Customer' => 'Client',
+ 'Customer missing!' => 'Client manquant!',
+ 'Date' => 'Date',
+ 'Date Paid' => 'Date de paiement',
+ 'Debit' => 'Débit',
+ 'Dec' => 'Déc.',
+ 'December' => 'Décembre',
+ 'Delete' => 'Supprimer',
+ 'Department' => 'Service',
+ 'Description' => 'Description',
+ 'Detail' => 'Détail',
+ 'Due Date' => 'Échéance',
+ 'Due Date missing!' => 'Date d\'échéance manquante!',
+ 'Edit AP Transaction' => 'Modifier une dépense',
+ 'Edit AR Transaction' => 'Modifier une recette',
+ 'Employee' => 'Employé',
+ 'Exch' => 'Change',
+ 'Exchange Rate' => 'Taux de change',
+ 'Exchange rate for payment missing!' => 'Taux de change manquant pour le paiement!',
+ 'Exchange rate missing!' => 'Taux de change manquant!',
+ 'Feb' => 'Fév.',
+ 'February' => 'Février',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Inclure dans l\'état',
+ 'Invoice' => 'Facture',
+ 'Invoice Date' => 'Date de facturation',
+ 'Invoice Date missing!' => 'Date de facture manquante!',
+ 'Invoice Number' => 'Numéro de facture',
+ 'Jan' => 'Jan.',
+ 'January' => 'Janvier',
+ 'Jul' => 'Juill.',
+ 'July' => 'Juillet',
+ 'Jun' => 'Juin',
+ 'June' => 'Juin',
+ 'Manager' => 'Gestionnaire',
+ 'Mar' => 'Mars',
+ 'March' => 'Mars',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Mémo',
+ 'Month' => 'Mois',
+ 'No.' => 'N°',
+ 'Notes' => 'Notes',
+ 'Nov' => 'Nov.',
+ 'November' => 'Novembre',
+ 'Oct' => 'Oct.',
+ 'October' => 'Octobre',
+ 'Open' => 'Ouvert',
+ 'Order' => 'Commande',
+ 'Order Number' => 'Numéro de commande',
+ 'PO Number' => 'Numéro de référence',
+ 'Paid' => 'Total payé',
+ 'Payment date missing!' => 'Date de paiement manquante!',
+ 'Payments' => 'Paiements',
+ 'Period' => 'Période',
+ 'Post' => 'Enregistrer',
+ 'Post as new' => 'Enregistrer comme nouveau',
+ 'Print' => 'Imprimer',
+ 'Print and Post' => 'Imprimer et imputer',
+ 'Project' => 'Projet',
+ 'Quarter' => 'Trimestre',
+ 'Receipt' => 'Reçu',
+ 'Remaining' => 'Restant',
+ 'Sales Invoice.' => 'Facture de vente.',
+ 'Salesperson' => 'Vendeur',
+ 'Schedule' => 'Planification',
+ 'Sep' => 'Sept.',
+ 'September' => 'Septembre',
+ 'Ship to' => 'Expédier à',
+ 'Ship via' => 'Expédier via',
+ 'Shipping Point' => 'Expéditeur',
+ 'Source' => 'Source',
+ 'Subtotal' => 'Sous total',
+ 'Summary' => 'Résumé',
+ 'Tax' => 'Taxe',
+ 'Tax Included' => 'Taxe incluse',
+ 'Till' => 'Caisse',
+ 'To' => 'À',
+ 'Total' => 'Total',
+ 'Transaction' => 'Écriture',
+ 'Transaction deleted!' => 'Écriture supprimée!',
+ 'Transaction posted!' => 'Écriture enregistrée!',
+ 'Update' => 'Mettre à jour',
+ 'Vendor' => 'Fournisseur',
+ 'Vendor Invoice.' => 'Facture d\'achat.',
+ 'Vendor missing!' => 'Fournisseur manquant!',
+ 'Year' => 'Année',
+ 'Yes' => 'Oui',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'Écriture_dépenses' => 'ap_transaction',
+ 'Écriture_recettes' => 'ar_transaction',
+ 'continuer' => 'continue',
+ 'supprimer' => 'delete',
+ 'enregistrer' => 'post',
+ 'enregistrer_comme_nouveau' => 'post_as_new',
+ 'imprimer' => 'print',
+ 'imprimer_et_imputer' => 'print_and_post',
+ 'facture_de_vente_' => 'sales_invoice_',
+ 'planification' => 'schedule',
+ 'expédier_à' => 'ship_to',
+ 'mettre_à_jour' => 'update',
+ 'facture_d\'achat_' => 'vendor_invoice_',
+ 'oui' => 'yes',
+};
+
+1;
+
diff --git a/locale/fr/admin b/locale/fr/admin
new file mode 100755
index 00000000..ba84c069
--- /dev/null
+++ b/locale/fr/admin
@@ -0,0 +1,143 @@
+$self{texts} = {
+ 'Access Control' => 'Contrôle d\'accès',
+ 'Accounting' => 'Comptabilité',
+ 'Add User' => 'Ajouter utilisateur',
+ 'Address' => 'Adresse',
+ 'Administration' => 'Administration',
+ 'Administrator' => 'Administrateur',
+ 'All Datasets up to date!' => 'Tous les fichiers de données sont à jour!',
+ 'Cannot create Lock!' => 'Impossible de verrouiller le fichier!',
+ 'Change Admin Password' => 'Modifier mot de passe administrateur',
+ 'Change Password' => 'Modifier mot de passe',
+ 'Click on login name to edit!' => 'Cliquer sur votre identifiant pour editer!',
+ 'Company' => 'Société',
+ 'Confirm' => 'Confirmer',
+ 'Connect to' => 'Connecter à',
+ 'Continue' => 'Continuer',
+ 'Create Chart of Accounts' => 'Créer le plan comptable',
+ 'Create Dataset' => 'Créer fichier de données',
+ 'DBI not installed!' => 'DBI non installée!',
+ 'Database' => 'Base de données',
+ 'Database Administration' => 'Gérer base de données',
+ 'Database Driver not checked!' => 'Pilotes de base de données non verifiés!',
+ 'Database User missing!' => 'Utilisateur base de données manquant!',
+ 'Dataset' => 'Fichier de données',
+ 'Dataset missing!' => 'Fichier de données manquant!',
+ 'Dataset updated!' => 'Base de données mise à jour!',
+ 'Date Format' => 'Format de date',
+ 'Delete' => 'Supprimer',
+ 'Delete Dataset' => 'Supprimer fichier de données',
+ 'Directory' => 'Répertoire',
+ 'Driver' => 'Pilote',
+ 'Dropdown Limit' => 'Limite de déroulement',
+ 'E-mail' => 'E-mail',
+ 'Edit User' => 'Modifier utilisateur',
+ 'Existing Datasets' => 'Fichiers de données existants',
+ 'Fax' => 'Fax',
+ 'Host' => 'Hôte',
+ 'Hostname missing!' => 'Nom de l\'hôte manquant',
+ 'Language' => 'Langue',
+ 'Lock System' => 'Verrouiller le système',
+ 'Lockfile created!' => 'Verrouillage en place!',
+ 'Lockfile removed!' => 'Verrouillage enlevé!',
+ 'Login' => 'Login',
+ 'Login name missing!' => 'Nom d\'utilisateur manquant!',
+ 'Logout' => 'Déconnexion',
+ 'Manager' => 'Gestionnaire',
+ 'Menu Width' => 'Largeur menu',
+ 'Multibyte Encoding' => 'Encodage multibyte',
+ 'Name' => 'Nom',
+ 'New Templates' => 'Nouveaux squelettes',
+ 'No Database Drivers available!' => 'Pas de pilote de base de données disponible!',
+ 'No Dataset selected!' => 'Pas de fichier de données sélectionné!',
+ 'Nothing to delete!' => 'Rien à supprimer',
+ 'Number Format' => 'Format des numéros',
+ 'Oracle Database Administration' => 'Administration de base de données Oracle',
+ 'Password' => 'Mot de passe',
+ 'Password changed!' => 'Mot de passe modifié!',
+ 'Passwords do not match!' => 'Mots de passes non-identiques',
+ 'Pg Database Administration' => 'Administration base de données PostgreSQL',
+ 'PgPP Database Administration' => 'Administration base de données PgPP',
+ 'Phone' => 'Tél.',
+ 'Port' => 'Port',
+ 'Port missing!' => 'Port manquant!',
+ 'Printer' => 'Imprimante',
+ 'Save' => 'Enregistrer',
+ 'Session Timeout' => 'Fin de session',
+ 'Session expired!' => 'Session terminée!',
+ 'Setup Templates' => 'Configuration des squelettes',
+ 'Signature' => 'Signature',
+ 'Stylesheet' => 'Feuille de style',
+ 'Supervisor' => 'Chef de service',
+ 'Templates' => 'Squelettes',
+ 'The following Datasets are not in use and can be deleted' => 'Les fichiers de données suivants ne sont pas utilisés et peuvent être supprimés.',
+ 'The following Datasets need to be updated' => 'Les fichiers de données suivants doivent être mis à jour',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Ceci est un test préliminaire des sources existantes. Aucune modification à ce stade!',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Pour ajouter un utilisateur à un groupe, editer un "nom", changer le "login" et enregistrer. Un nouvel utilisateur avec les mêmes données sera enregistré avec le nouveau "login".',
+ 'Unlock System' => 'Déverrouiller le système',
+ 'Update Dataset' => 'Mise à jour de la base de données',
+ 'Use Templates' => 'Utiliser les squelettes',
+ 'User' => 'Utilisateur',
+ 'User deleted!' => 'Utilisateur supprimé!',
+ 'User saved!' => 'Utilisateur enregistré!',
+ 'Version' => 'Version',
+ 'You are logged out' => 'Vous êtes déconnecté!',
+ 'does not exist' => 'n\'existe pas!',
+ 'is already a member!' => 'est déjà un membre!',
+ 'localhost' => 'hôte local',
+ 'locked!' => 'verrouillé!',
+ 'successfully created!' => 'créé avec succès',
+ 'successfully deleted!' => 'supprimé avec succès',
+ 'website' => 'site web',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'ajouter_utilisateur' => 'add_user',
+ 'modifier_mot_de_passe_administrateur' => 'change_admin_password',
+ 'modifier_mot_de_passe' => 'change_password',
+ 'continuer' => 'continue',
+ 'créer_fichier_de_données' => 'create_dataset',
+ 'supprimer' => 'delete',
+ 'supprimer_fichier_de_données' => 'delete_dataset',
+ 'verrouiller_le_système' => 'lock_system',
+ 'login' => 'login',
+ 'déconnexion' => 'logout',
+ 'administration_de_base_de_données_oracle' => 'oracle_database_administration',
+ 'administration_base_de_données_postgresql' => 'pg_database_administration',
+ 'administration_base_de_données_pgpp' => 'pgpp_database_administration',
+ 'enregistrer' => 'save',
+ 'déverrouiller_le_système' => 'unlock_system',
+ 'mise_à_jour_de_la_base_de_données' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/fr/all b/locale/fr/all
new file mode 100755
index 00000000..2a5dd874
--- /dev/null
+++ b/locale/fr/all
@@ -0,0 +1,786 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+
+$self{texts} = {
+ 'A' => 'A',
+ 'AP' => 'Dépenses',
+ 'AP Aging' => 'Dépenses exigibles',
+ 'AP Outstanding' => 'Dépenses en retard',
+ 'AP Transaction' => 'Écriture dépenses',
+ 'AP Transactions' => 'Mouvements - Dépenses',
+ 'AR' => 'Recettes',
+ 'AR Aging' => 'Recettes exigibles',
+ 'AR Outstanding' => 'Recettes en retard',
+ 'AR Transaction' => 'Écriture recettes',
+ 'AR Transactions' => 'Mouvements - Recettes',
+ 'About' => 'À propos',
+ 'Above' => 'En dessus',
+ 'Access Control' => 'Contrôle d\'accès',
+ 'Account' => 'Compte',
+ 'Account Number' => 'Numéro de compte',
+ 'Account Number missing!' => 'Numéro de compte manquant!',
+ 'Account Type' => 'Type de compte',
+ 'Account Type missing!' => 'Type de compte manquant!',
+ 'Account deleted!' => 'Compte supprimé',
+ 'Account does not exist!' => 'Compte non existant!',
+ 'Account saved!' => 'Compte enregistré',
+ 'Accounting' => 'Comptabilité',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Accounts' => 'Comptes',
+ 'Accrual' => 'Accumulation',
+ 'Activate Audit trail' => 'Activer la journalisation des accès aux écritures clôturées',
+ 'Activate Audit trails' => 'Activer la journalisation des accès aux écritures clôturées',
+ 'Active' => 'Actif',
+ 'Add' => 'Ajouter',
+ 'Add AP Transaction' => 'Ajouter une dépense',
+ 'Add AR Transaction' => 'Ajouter une recette',
+ 'Add Account' => 'Ajouter compte',
+ 'Add Assembly' => 'Ajouter produit',
+ 'Add Business' => 'Ajouter type d\'affaire',
+ 'Add Cash Transfer Transaction' => 'Saisie d\'écriture - Virements internes',
+ 'Add Customer' => 'Ajouter client',
+ 'Add Deduction' => 'Ajouter prélèvement',
+ 'Add Department' => 'Ajouter service',
+ 'Add Employee' => 'Ajouter employé',
+ 'Add Exchange Rate' => 'Ajouter taux de change',
+ 'Add GIFI' => 'Ajouter code d\'identification comptable ou fiscale',
+ 'Add General Ledger Transaction' => 'Ajouter une écriture au grand-livre',
+ 'Add Group' => 'Ajouter groupe',
+ 'Add Labor/Overhead' => 'Ajouter coût de production',
+ 'Add Language' => 'Ajouter langue',
+ 'Add POS Invoice' => 'Saisie ticket de caisse',
+ 'Add Part' => 'Ajouter marchandise',
+ 'Add Pricegroup' => 'Ajouter groupe de prix',
+ 'Add Project' => 'Ajouter projet',
+ 'Add Purchase Order' => 'Établir commande d\'achat',
+ 'Add Quotation' => 'Établir devis',
+ 'Add Request for Quotation' => 'Établir demande de devis',
+ 'Add SIC' => 'Ajouter code secteur économique',
+ 'Add Sales Invoice' => 'Établir facture de vente',
+ 'Add Sales Order' => 'Établir commande de vente',
+ 'Add Service' => 'Ajouter prestation',
+ 'Add Transaction' => 'Saisie d\'écriture',
+ 'Add User' => 'Ajouter utilisateur',
+ 'Add Vendor' => 'Ajouter fournisseur',
+ 'Add Vendor Invoice' => 'Établir facture d\'achat',
+ 'Add Warehouse' => 'Ajouter entrepôt',
+ 'Address' => 'Adresse',
+ 'Administration' => 'Administration',
+ 'Administrator' => 'Administrateur',
+ 'After Deduction' => 'Après prélèvement',
+ 'All' => 'Tous',
+ 'All Accounts' => 'Afficher tous les comptes',
+ 'All Datasets up to date!' => 'Tous les fichiers de données sont à jour!',
+ 'All Items' => 'Tout objet',
+ 'Allowances' => 'Indemnités',
+ 'Amount' => 'Montant',
+ 'Amount Due' => 'Montant dû',
+ 'Amount missing!' => 'Montant manquant!',
+ 'Apr' => 'Avril',
+ 'April' => 'Avril',
+ 'Are you sure you want to delete Invoice Number' => 'Êtes-vous sûr de vouloir supprimer la facture n°',
+ 'Are you sure you want to delete Order Number' => 'Êtes vous sûr de vouloir supprimer la commande n°',
+ 'Are you sure you want to delete Quotation Number' => 'Êtes vous sûr de vouloir supprimer le devis n°',
+ 'Are you sure you want to delete Transaction' => 'Êtes vous sûr de vouloir effacer la saisie?',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Êtes vous sûr de vouloir enlever les objets sélectionnés de la queue?',
+ 'Assemblies' => 'Produits finis',
+ 'Assemblies restocked!' => 'Renvoyer produits vers stock!',
+ 'Assembly' => 'Produit fini',
+ 'Asset' => 'Actif',
+ 'Attachment' => 'Pièce jointe',
+ 'Audit Control' => 'Clôture périodique',
+ 'Audit trail disabled' => 'Journalisation clôture desactivée',
+ 'Audit trail enabled' => 'Journalisation clôture activée',
+ 'Audit trail removed up to' => 'Annulation de la journalisation des accès aux écritures clôturées jusqu\'au',
+ 'Audit trails disabled' => 'Journalisation clôture desactivée',
+ 'Audit trails enabled' => 'Journalisation clôture activée',
+ 'Aug' => 'Août',
+ 'August' => 'Août',
+ 'BIC' => 'BIC',
+ 'BOM' => 'Nomenclature composantes',
+ 'Backup' => 'Sauvegarder',
+ 'Backup sent to' => 'Sauvegarde envoyée à',
+ 'Balance' => 'Solde',
+ 'Balance Sheet' => 'Bilan',
+ 'Based on' => 'Basé sur',
+ 'Bcc' => 'Copie cachée',
+ 'Before Deduction' => 'Avant prélèvement',
+ 'Beginning Balance' => 'Solde du départ',
+ 'Below' => 'En dessous',
+ 'Billing Address' => 'Adresse de facturation',
+ 'Bin' => 'Lieu stockage',
+ 'Bin List' => 'Liste des emplacements',
+ 'Bin Lists' => 'Liste des emplacements',
+ 'Books are open' => 'Début exercice',
+ 'Break' => 'Rupture',
+ 'Business' => 'Type d\'affaire',
+ 'Business Number' => 'Numéro d\'enregistrement société',
+ 'Business deleted!' => 'Type d\'affaire effacé!',
+ 'Business saved!' => 'Type d\'affaire enregistré!',
+ 'C' => 'C',
+ 'COGS' => 'Coût des produits vendus',
+ 'Cannot create Lock!' => 'Impossible de verrouiller le fichier!',
+ 'Cannot delete account!' => 'Impossible de supprimer le compte!',
+ 'Cannot delete customer!' => 'Impossible de supprimer le client!',
+ 'Cannot delete default account!' => 'Impossible de supprimer le compte par défaut!',
+ 'Cannot delete invoice!' => 'Impossible de supprimer la facture!',
+ 'Cannot delete item!' => 'Impossible de supprimer l\'objet!',
+ 'Cannot delete order!' => 'Impossible de supprimer la commande!',
+ 'Cannot delete quotation!' => 'Impossible de supprimer le devis!',
+ 'Cannot delete transaction!' => 'Impossible de supprimer la saisie!',
+ 'Cannot delete vendor!' => 'Impossible de supprimer le fournisseur!',
+ 'Cannot post Payment!' => 'Impossible d\'enregistrer le paiement!',
+ 'Cannot post Receipt!' => 'Impossible d\'enregistrer le reçu!',
+ 'Cannot post invoice for a closed period!' => 'Impossible d\'enregistrer la facture sur un exercice clos!',
+ 'Cannot post invoice!' => 'Impossible d\'enregistrer la facture!',
+ 'Cannot post payment for a closed period!' => 'Impossible d\'enregistrer le paiement sur un exercice clos!',
+ 'Cannot post transaction for a closed period!' => 'Impossible d\'enregistrer l\'écriture sur un exercice clos!',
+ 'Cannot post transaction!' => 'Impossible d\'enregistrer l\'écriture!',
+ 'Cannot remove files!' => 'Impossible d\'effacer les fichiers!',
+ 'Cannot save account!' => 'Impossible d\'enregistrer le compte!',
+ 'Cannot save defaults!' => 'Impossible d\'enregistrer les valeurs par défaut!',
+ 'Cannot save order!' => 'Impossible d\'enregistrer la commande!',
+ 'Cannot save preferences!' => 'Impossible d\'enregistrer les préférences',
+ 'Cannot save quotation!' => 'Impossible d\'enregistrer le devis!',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Impossible d\'enregistrer le compte simultanément en tant que compte de recettes, dépenses ou service',
+ 'Cannot set multiple options for' => 'Impossible de choisir plusieurs options pour',
+ 'Cannot stock assemblies!' => 'Impossible de stocker l\'assemblage!',
+ 'Cash' => 'Financier',
+ 'Cc' => 'Copie',
+ 'Change' => 'Retour monnaie',
+ 'Change Admin Password' => 'Modifier mot de passe administrateur',
+ 'Change Password' => 'Modifier mot de passe',
+ 'Chart of Accounts' => 'Plan Comptable',
+ 'Check' => 'Chèque',
+ 'Check Inventory' => 'Listing chèques',
+ 'Checks' => 'Chèques',
+ 'City' => 'Ville',
+ 'Cleared' => 'Lettré',
+ 'Click on login name to edit!' => 'Cliquer sur votre identifiant pour editer!',
+ 'Close Books up to' => 'Clôturer l\'exercice jusqu\'au',
+ 'Closed' => 'Clôturé',
+ 'Code' => 'Code',
+ 'Code missing!' => 'Code manquant!',
+ 'Company' => 'Société',
+ 'Company Name' => 'Nom de société',
+ 'Compare to' => 'Comparer à',
+ 'Components' => 'Composants',
+ 'Confirm' => 'Confirmer',
+ 'Confirm!' => 'Confirmer!',
+ 'Connect to' => 'Connecter à',
+ 'Contact' => 'Contact',
+ 'Continue' => 'Continuer',
+ 'Contra' => 'Contrepartie',
+ 'Copies' => 'Copies',
+ 'Copy to COA' => 'Copier dans le plan comptable',
+ 'Cost' => 'Coût',
+ 'Cost Center' => 'Axé coûts',
+ 'Could not save pricelist!' => 'Enregistrement de la liste de prix impossible!',
+ 'Could not save!' => 'Enregistrement impossible!',
+ 'Could not transfer Inventory!' => 'Impossible de transférer l\'inventaire!',
+ 'Country' => 'Pays',
+ 'Create Chart of Accounts' => 'Créer le plan comptable',
+ 'Create Dataset' => 'Créer fichier de données',
+ 'Credit' => 'Crédit',
+ 'Credit Limit' => 'Encours autorisé',
+ 'Curr' => 'Dev.',
+ 'Currency' => 'Devise',
+ 'Current' => 'En cours',
+ 'Current Earnings' => 'Bénéfice de l\'exercice',
+ 'Customer' => 'Client',
+ 'Customer History' => 'Historique client',
+ 'Customer Number' => 'Numéro de client',
+ 'Customer deleted!' => 'Client supprimé!',
+ 'Customer missing!' => 'Client manquant!',
+ 'Customer not on file!' => 'Client absent du fichier!',
+ 'Customer saved!' => 'Client enregistré!',
+ 'Customers' => 'Clients',
+ 'DBI not installed!' => 'DBI non installée!',
+ 'DOB' => 'Date de naissance',
+ 'Database' => 'Base de données',
+ 'Database Administration' => 'Gérer base de données',
+ 'Database Driver not checked!' => 'Pilotes de base de données non verifiés!',
+ 'Database Host' => 'Hôte de base de données',
+ 'Database User missing!' => 'Utilisateur base de données manquant!',
+ 'Dataset' => 'Fichier de données',
+ 'Dataset is newer than version!' => 'Fichier de données plus récent que le logiciel!',
+ 'Dataset missing!' => 'Fichier de données manquant!',
+ 'Dataset updated!' => 'Base de données mise à jour!',
+ 'Date' => 'Date',
+ 'Date Format' => 'Format de date',
+ 'Date Paid' => 'Date de paiement',
+ 'Date Received' => 'Date de réception',
+ 'Date missing!' => 'Date manquante!',
+ 'Date received missing!' => 'Date de réception manquante!',
+ 'Day' => 'Jour',
+ 'Days' => 'Jours',
+ 'Debit' => 'Débit',
+ 'Dec' => 'Déc.',
+ 'December' => 'Décembre',
+ 'Decimalplaces' => 'Décimales',
+ 'Decrease' => 'Diminution',
+ 'Deduct after' => 'Prélèver après',
+ 'Deduction deleted!' => 'Prélèvement supprimé!',
+ 'Deduction saved!' => 'Prélèvement enrégistré!',
+ 'Deductions' => 'Prélèvements',
+ 'Default Template' => 'Squelette par defaut',
+ 'Defaults' => 'Valeurs par défaut',
+ 'Defaults saved!' => 'Valeurs par défaut enrégistrées!',
+ 'Delete' => 'Supprimer',
+ 'Delete Account' => 'Supprimer compte',
+ 'Delete Dataset' => 'Supprimer fichier de données',
+ 'Delete Schedule' => 'Effacer transaction planifiée',
+ 'Deleting a language will also delete the templates for the language' => 'Effacer une langue, implique également l\'effacement des squelettes correspondants à cette langue',
+ 'Delivery Date' => 'Date de livraison',
+ 'Department' => 'Service',
+ 'Department deleted!' => 'Service effacé!',
+ 'Department saved!' => 'Service enregistré!',
+ 'Departments' => 'Services',
+ 'Deposit' => 'Dépôt',
+ 'Description' => 'Description',
+ 'Description Translations' => 'Description traductions',
+ 'Description missing!' => 'Description manquante!',
+ 'Detail' => 'Détail',
+ 'Difference' => 'Différence',
+ 'Directory' => 'Répertoire',
+ 'Discount' => 'Remise',
+ 'Done' => 'Fait!',
+ 'Drawing' => 'Dessin',
+ 'Driver' => 'Pilote',
+ 'Dropdown Limit' => 'Limite de déroulement',
+ 'Due Date' => 'Échéance',
+ 'Due Date missing!' => 'Date d\'échéance manquante!',
+ 'E-mail' => 'E-mail',
+ 'E-mail Statement to' => 'Message éléctronique à',
+ 'E-mail address missing!' => 'Adresse e-mail manquante!',
+ 'E-mail message' => 'Message e-mail',
+ 'E-mailed' => 'E-mail envoyé',
+ 'Edit' => 'Modifier',
+ 'Edit AP Transaction' => 'Modifier une dépense',
+ 'Edit AR Transaction' => 'Modifier une recette',
+ 'Edit Account' => 'Modifier le compte',
+ 'Edit Assembly' => 'Modifier produit fini / transformé',
+ 'Edit Business' => 'Modifier type d\'affaire',
+ 'Edit Cash Transfer Transaction' => 'Modifier virements internes',
+ 'Edit Customer' => 'Modifier client',
+ 'Edit Deduction' => 'Modifier prélèvement',
+ 'Edit Department' => 'Modifier service de l\'entreprise',
+ 'Edit Description Translations' => 'Modifier traductions description',
+ 'Edit Employee' => 'Modifier employé',
+ 'Edit GIFI' => 'Modifier code d\'identification comptable ou fiscale',
+ 'Edit General Ledger Transaction' => 'Modifier écriture grand-livre',
+ 'Edit Group' => 'Modifier groupe',
+ 'Edit Labor/Overhead' => 'Modifier coût de production',
+ 'Edit Language' => 'Modifier langue',
+ 'Edit POS Invoice' => 'Modifier ticket de caisse',
+ 'Edit Part' => 'Modifier marchandise',
+ 'Edit Preferences for' => 'Modifier les préférences pour',
+ 'Edit Pricegroup' => 'Modifier groupe de prix',
+ 'Edit Project' => 'Modifier projet',
+ 'Edit Purchase Order' => 'Modifier commande d\'achat',
+ 'Edit Quotation' => 'Modifier devis',
+ 'Edit Request for Quotation' => 'Modifier demande de devis',
+ 'Edit SIC' => 'Modifier code de secteur économique',
+ 'Edit Sales Invoice' => 'Modifier facture de vente',
+ 'Edit Sales Order' => 'Modifier commande de vente',
+ 'Edit Service' => 'Modifier service',
+ 'Edit Template' => 'Modifier squelette',
+ 'Edit User' => 'Modifier utilisateur',
+ 'Edit Vendor' => 'Modifier fournisseur',
+ 'Edit Vendor Invoice' => 'Modifier facture de fournisseur',
+ 'Edit Warehouse' => 'Modifier entrepôt',
+ 'Employee' => 'Employé',
+ 'Employee Name' => 'Nom employé',
+ 'Employee Number' => 'Numéro d\'employé',
+ 'Employee deleted!' => 'Employé effacé!',
+ 'Employee pays' => 'Employé pays',
+ 'Employee saved!' => 'Employé enregistré',
+ 'Employees' => 'Employés',
+ 'Employer' => 'Employeur',
+ 'Employer pays' => 'Employeur pays',
+ 'Enddate' => 'Date de fin',
+ 'Ends' => 'Se termine',
+ 'Enforce transaction reversal for all dates' => 'Activer la clôture des écritures pour toutes les dates',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Entrer le nom de la monnaie nationale et des monnaies étrangères en 3 lettres séparées par (:) (Ex: EUR:USD:CAD)',
+ 'Equity' => 'Capital',
+ 'Every' => 'Chaque',
+ 'Exch' => 'Change',
+ 'Exchange Rate' => 'Taux de change',
+ 'Exchange rate for payment missing!' => 'Taux de change manquant pour le paiement!',
+ 'Exchange rate missing!' => 'Taux de change manquant!',
+ 'Existing Datasets' => 'Fichiers de données existants',
+ 'Expense' => 'Dépenses',
+ 'Expense/Asset' => 'Dépenses/actif',
+ 'Extended' => 'Prix total',
+ 'FX' => 'Devises',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Fév.',
+ 'February' => 'Février',
+ 'For' => 'Pour',
+ 'Foreign Exchange Gain' => 'Produit conversion devises',
+ 'Foreign Exchange Loss' => 'Perte conversion devises',
+ 'From' => 'De',
+ 'GIFI' => 'Code d\'identification comptable ou fiscale',
+ 'GIFI deleted!' => 'Code d\'identification comptable ou fiscale supprimé!',
+ 'GIFI missing!' => 'Code d\'identification comptable ou fiscale manquant!',
+ 'GIFI saved!' => 'Code d\'identification comptable ou fiscale enregistré!',
+ 'GL' => 'Grand-livre',
+ 'GL Transaction' => 'Transaction grand-livre',
+ 'General Ledger' => 'Grand-livre',
+ 'Goods & Services' => 'Articles & Prestations',
+ 'Group' => 'Groupe',
+ 'Group Items' => 'Grouper objets',
+ 'Group Translations' => 'Grouper traductions',
+ 'Group deleted!' => 'Groupe effacé!',
+ 'Group missing!' => 'Groupe absent!',
+ 'Group saved!' => 'Groupe enregistré!',
+ 'Groups' => 'Groupes',
+ 'HR' => 'Ressources humaines',
+ 'HTML Templates' => 'Squelettes HTML',
+ 'Heading' => 'En-tête',
+ 'History' => 'Historique',
+ 'Home Phone' => 'Téléphone privé',
+ 'Host' => 'Hôte',
+ 'Hostname missing!' => 'Nom de l\'hôte manquant',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Image' => 'Image',
+ 'In-line' => 'En ligne',
+ 'Include Exchange Rate Difference' => 'Inclure différence conversion devises',
+ 'Include Payment' => 'Inclure paiement',
+ 'Include in Report' => 'Inclure dans l\'état',
+ 'Include in drop-down menus' => 'Inclure dans les menus déroulants',
+ 'Income' => 'Recettes',
+ 'Income Statement' => 'Compte de résultat',
+ 'Incorrect Dataset version!' => 'Fichier de données incorrect!',
+ 'Increase' => 'Augmentation',
+ 'Individual Items' => 'Composition en marchandises individuelles',
+ 'Internal Notes' => 'Notes internes',
+ 'Inventory' => 'Inventaire',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'La quantité en stock doit être zéro avant de pouvoir annuler cet assemblage!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'La quantité en stock doit être zero avant de pouvoir annuler cette pièce!',
+ 'Inventory saved!' => 'Inventaire enregistré!',
+ 'Inventory transferred!' => 'Inventaire transféré!',
+ 'Invoice' => 'Facture',
+ 'Invoice Date' => 'Date de facturation',
+ 'Invoice Date missing!' => 'Date de facture manquante!',
+ 'Invoice Number' => 'Numéro de facture',
+ 'Invoice Number missing!' => 'Numéro de facture manquant!',
+ 'Invoice deleted!' => 'Facture supprimée!',
+ 'Invoices' => 'Factures',
+ 'Is this a summary account to record' => 'Est-ce que c\'est un compte sommaire à enregistrer?',
+ 'Item already on pricelist!' => 'Objet déjà présent dans la liste des prix',
+ 'Item deleted!' => 'Objet supprimé!',
+ 'Item not on file!' => 'Objet non-listé!',
+ 'Items' => 'Objets',
+ 'Jan' => 'Jan.',
+ 'January' => 'Janvier',
+ 'Jul' => 'Juill.',
+ 'July' => 'Juillet',
+ 'Jun' => 'Juin',
+ 'June' => 'Juin',
+ 'LaTeX Templates' => 'Squelettes LaTeX',
+ 'Labor/Overhead' => 'Coût de production',
+ 'Language' => 'Langue',
+ 'Language deleted!' => 'Langue effacée!',
+ 'Language saved!' => 'Langue enregistrée!',
+ 'Languages' => 'Langues',
+ 'Languages not defined!' => 'Langues non définis!',
+ 'Last Numbers & Default Accounts' => 'Derniers numéros et comptes par défauts',
+ 'Leadtime' => 'Délai',
+ 'Leave host and port field empty unless you want to make a remote connection.' => 'Laisser "port" et "hôte" vide, sauf si vous voulez vous connecter à distance (par réseau)',
+ 'Liability' => 'Passif',
+ 'Licensed to' => 'Licence à',
+ 'Line Total' => 'Total ligne',
+ 'Link' => 'Liens',
+ 'Link Accounts' => 'Lier comptes',
+ 'List' => 'Liste',
+ 'List Accounts' => 'Liste des comptes',
+ 'List Businesses' => 'Liste types d\'affaire',
+ 'List Departments' => 'Liste des services',
+ 'List GIFI' => 'Afficher la liste des codes d\'identification comptable ou fiscale',
+ 'List Languages' => 'Liste des langues',
+ 'List Price' => 'Prix de revient',
+ 'List Projects' => 'Liste des projets',
+ 'List SIC' => 'Liste des codes secteur économique',
+ 'List Transactions' => 'Afficher écritures',
+ 'List Warehouses' => 'Liste des entrepôts',
+ 'Lock System' => 'Verrouiller le système',
+ 'Lockfile created!' => 'Verrouillage en place!',
+ 'Lockfile removed!' => 'Verrouillage enlevé!',
+ 'Login' => 'Login',
+ 'Login name missing!' => 'Nom d\'utilisateur manquant!',
+ 'Logout' => 'Déconnexion',
+ 'Make' => 'Marque',
+ 'Manager' => 'Gestionnaire',
+ 'Mar' => 'Mars',
+ 'March' => 'Mars',
+ 'Marked entries printed!' => 'Éléments marqués imprimés!',
+ 'Markup' => 'Majoration',
+ 'Maximum' => 'Maximum',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Mémo',
+ 'Menu Width' => 'Largeur menu',
+ 'Message' => 'Message',
+ 'Method' => 'Méthode',
+ 'Microfiche' => 'Microfiche',
+ 'Model' => 'Modèle',
+ 'Month' => 'Mois',
+ 'Months' => 'Mois',
+ 'Multibyte Encoding' => 'Encodage multibyte',
+ 'N/A' => 'Non applicable',
+ 'Name' => 'Nom',
+ 'Name missing!' => 'Nom manquant!',
+ 'New Templates' => 'Nouveaux squelettes',
+ 'New Window' => 'Nouvelle fenêtre',
+ 'Next' => 'Prochain',
+ 'Next Date' => 'Prochaine date',
+ 'No' => 'Non',
+ 'No Database Drivers available!' => 'Pas de pilote de base de données disponible!',
+ 'No Dataset selected!' => 'Pas de fichier de données sélectionné!',
+ 'No email address for' => 'Pas d\'adresse email pour',
+ 'No.' => 'N°',
+ 'Non-taxable' => 'Non imposable',
+ 'Non-taxable Purchases' => 'Achats hors taxe',
+ 'Non-taxable Sales' => 'Ventes hors taxe',
+ 'Notes' => 'Notes',
+ 'Nothing entered!' => 'Rien n\'a été saisi!',
+ 'Nothing selected!' => 'Pas de sélection!',
+ 'Nothing to delete!' => 'Rien à supprimer',
+ 'Nothing to print!' => 'Rien à imprimer',
+ 'Nothing to transfer!' => 'Rien à transférer!',
+ 'Nov' => 'Nov.',
+ 'November' => 'Novembre',
+ 'Number' => 'Numéro',
+ 'Number Format' => 'Format des numéros',
+ 'Number missing in Row' => 'Numéro manquant dans ligne',
+ 'O' => 'O',
+ 'Obsolete' => 'Obsolète',
+ 'Oct' => 'Oct.',
+ 'October' => 'Octobre',
+ 'On Hand' => 'En Stock / disponible',
+ 'Open' => 'Ouvert',
+ 'Oracle Database Administration' => 'Administration de base de données Oracle',
+ 'Order' => 'Commande',
+ 'Order Date' => 'Date de commande',
+ 'Order Date missing!' => 'Date de commande manquante!',
+ 'Order Entry' => 'Commandes',
+ 'Order Number' => 'Numéro de commande',
+ 'Order Number missing!' => 'Numéro de commande manquant!',
+ 'Order deleted!' => 'Commande supprimée!',
+ 'Order saved!' => 'Commande enregistrée!',
+ 'Orphaned' => 'Orphelin',
+ 'Out of balance transaction!' => 'Écriture non-soldée!',
+ 'Out of balance!' => 'Non-soldée!',
+ 'Outstanding' => 'En retard',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Numéro de référence',
+ 'POS' => 'Point de vente',
+ 'POS Invoice' => 'Ticket de caisse',
+ 'Packing List' => 'Liste d\'envoi',
+ 'Packing List Date missing!' => 'La liste d\'envoi n\'a pas de date!',
+ 'Packing List Number missing!' => 'Le numéro de la liste d\'envoi est manquant!',
+ 'Packing Lists' => 'Listes d\'envoi',
+ 'Paid' => 'Total payé',
+ 'Part' => 'Marchandise',
+ 'Partnumber' => 'Numéro de marchandise',
+ 'Parts' => 'Marchandises',
+ 'Password' => 'Mot de passe',
+ 'Password changed!' => 'Mot de passe modifié!',
+ 'Password does not match!' => 'Mot de passe incorrect!',
+ 'Passwords do not match!' => 'Mots de passes non-identiques',
+ 'Payables' => 'À payer',
+ 'Payment' => 'Paiement',
+ 'Payment date missing!' => 'Date de paiement manquante!',
+ 'Payment posted!' => 'Paiement enregistré!',
+ 'Payments' => 'Paiements',
+ 'Payroll Deduction' => 'Prélèvement salaire',
+ 'Period' => 'Période',
+ 'Pg Database Administration' => 'Administration base de données PostgreSQL',
+ 'PgPP Database Administration' => 'Administration base de données PgPP',
+ 'Phone' => 'Tél.',
+ 'Pick List' => 'Liste de sélection',
+ 'Pick Lists' => 'Liste de sélection',
+ 'Port' => 'Port',
+ 'Port missing!' => 'Port manquant!',
+ 'Post' => 'Enregistrer',
+ 'Post as new' => 'Enregistrer comme nouveau',
+ 'Posted!' => 'Enregistré!',
+ 'Posting' => 'Enregistrement',
+ 'Postscript' => 'Postcript',
+ 'Preferences' => 'Préférences',
+ 'Preferences saved!' => 'Préférences enregistrées!',
+ 'Prepayment' => 'Paiement à l\'avance',
+ 'Price' => 'Prix',
+ 'Pricegroup' => 'Groupe de prix',
+ 'Pricegroup deleted!' => 'Groupe de prix supprimé!',
+ 'Pricegroup missing!' => 'Groupe de prix manquant!',
+ 'Pricegroup saved!' => 'Groupe de prix enregistré!',
+ 'Pricegroups' => 'Groupes de prix',
+ 'Pricelist' => 'Liste de prix',
+ 'Print' => 'Imprimer',
+ 'Print and Post' => 'Imprimer et imputer',
+ 'Print and Save' => 'Imprimer et sauver',
+ 'Printed' => 'Imprimé',
+ 'Printer' => 'Imprimante',
+ 'Printing' => 'Impression',
+ 'Printing ... ' => 'Impression en cours ... ',
+ 'Process Transactions' => 'Traiter transactions',
+ 'Profit Center' => 'Axé profit',
+ 'Project' => 'Projet',
+ 'Project Description Translations' => 'Traductions description de projet',
+ 'Project Number' => 'Numéro de projet',
+ 'Project Number missing!' => 'Numéro du projet manquant!',
+ 'Project Transactions' => 'Mouvements - Projet',
+ 'Project deleted!' => 'Projet supprimé!',
+ 'Project not on file!' => 'Projet absent du fichier!',
+ 'Project saved!' => 'Projet enregistré!',
+ 'Projects' => 'Projets',
+ 'Purchase Order' => 'Commande d\'achat',
+ 'Purchase Order Number' => 'Numéro de commande',
+ 'Purchase Orders' => 'Commandes d\'achat',
+ 'Qty' => 'Qté',
+ 'Quantity exceeds available units to stock!' => 'La quantité dépasse le nombre d\'unités en stock',
+ 'Quarter' => 'Trimestre',
+ 'Quotation' => 'Devis',
+ 'Quotation ' => 'Devis ',
+ 'Quotation Date' => 'Date de devis',
+ 'Quotation Date missing!' => 'Date de devis manqante!',
+ 'Quotation Number' => 'Numéro de devis',
+ 'Quotation Number missing!' => 'Numéro de devis manquant!',
+ 'Quotation deleted!' => 'Devis effacé!',
+ 'Quotations' => 'Devis',
+ 'R' => 'R',
+ 'RFQ' => 'Demande de devis',
+ 'RFQ ' => 'Demande de devis ',
+ 'RFQ Number' => 'Numéro de demande de devis',
+ 'RFQs' => 'Demandes de devis',
+ 'ROP' => 'Seuil réapprovisionnement',
+ 'Rate' => 'Taux',
+ 'Rate missing!' => 'Taux manquant!',
+ 'Recd' => 'Reçu',
+ 'Receipt' => 'Reçu',
+ 'Receipt posted!' => 'Reçu enregistré!',
+ 'Receipts' => 'Reçus',
+ 'Receivables' => 'À recevoir',
+ 'Receive' => 'Réception',
+ 'Receive Merchandise' => 'Réception marchandise',
+ 'Reconciliation' => 'Rapprochement',
+ 'Reconciliation Report' => 'Rapport de rapprochement',
+ 'Record in' => 'Enregistrer dans',
+ 'Recurring Transaction' => 'Transaction périodique',
+ 'Recurring Transactions' => 'Transactions périodiques',
+ 'Reference' => 'Référence',
+ 'Remaining' => 'Restant',
+ 'Remove' => 'Effacer',
+ 'Remove Audit trail up to' => 'Annuler la journalisation des accès aux écritures clôturées jusqu\'au',
+ 'Remove Audit trails up to' => 'Annuler la journalisation des accès aux écritures clôturées jusqu\'au',
+ 'Removed spoolfiles!' => 'File d\'attente impression effacée!',
+ 'Removing marked entries from queue ...' => 'Suppression des éléments sélectionnés de la file d\'attente ...',
+ 'Repeat' => 'Répéter',
+ 'Report for' => 'Rapport de',
+ 'Reports' => 'Rapports',
+ 'Request for Quotation' => 'Demande de devis',
+ 'Request for Quotations' => 'Demandes de devis',
+ 'Required by' => 'Requis pour',
+ 'Retained Earnings' => 'Éxcédents non distribués',
+ 'Role' => 'Rôle',
+ 'S' => 'S',
+ 'SIC' => 'Code secteur économique',
+ 'SIC deleted!' => 'Code secteur économique effacé!',
+ 'SIC saved!' => 'Code secteur économique enregistré!',
+ 'SKU' => 'SKU',
+ 'SSN' => 'Numéro sécurité sociale',
+ 'Sale' => 'Vente',
+ 'Sales' => 'Ventes',
+ 'Sales Invoice' => 'Facture de vente',
+ 'Sales Invoice ' => 'Facture de vente ',
+ 'Sales Invoice.' => 'Facture de vente.',
+ 'Sales Invoices' => 'Factures de vente',
+ 'Sales Order' => 'Commande de vente',
+ 'Sales Order Number' => 'Numéro de commande de vente',
+ 'Sales Orders' => 'Commandes de vente',
+ 'Sales Quotation Number' => 'Numéro de devis de vente',
+ 'Salesperson' => 'Vendeur',
+ 'Save' => 'Enregistrer',
+ 'Save Pricelist' => 'Enregistrer la liste de prix',
+ 'Save Schedule' => 'Enregistrer transaction planifiée',
+ 'Save as new' => 'Enregistrer comme nouveau',
+ 'Save to File' => 'Enregistrer dans un fichier',
+ 'Saving' => 'Enregistrement',
+ 'Schedule' => 'Planification',
+ 'Scheduled' => 'Planifié',
+ 'Screen' => 'Écran',
+ 'Search' => 'Recherche',
+ 'Select' => 'Sélectionner',
+ 'Select all' => 'Tout sélectionner',
+ 'Select from one of the items below' => 'Sélectionner un des objets ci-dessous',
+ 'Select from one of the names below' => 'Sélectionner un des noms ci-dessous',
+ 'Select from one of the projects below' => 'Sélectionner un des projets ci-dessous',
+ 'Select items' => 'Sélectionner éléments',
+ 'Select payment' => 'Sélectionner le payement',
+ 'Select postscript or PDF!' => 'Sélectionner Postscript ou PDF!',
+ 'Select txt, postscript or PDF!' => 'Sélectionner Txt, Postscript ou PDF!',
+ 'Sell' => 'Vente',
+ 'Sell Price' => 'Prix de vente',
+ 'Send by E-Mail' => 'Envoyer par e-mail',
+ 'Sending' => 'Envoyer',
+ 'Sep' => 'Sept.',
+ 'September' => 'Septembre',
+ 'Serial No.' => 'N° série',
+ 'Serial Number' => 'Numéro de série',
+ 'Service' => 'Prestation de service',
+ 'Services' => 'Prestations de services',
+ 'Session Timeout' => 'Fin de session',
+ 'Session expired!' => 'Session terminée!',
+ 'Setup Templates' => 'Configuration des squelettes',
+ 'Ship' => 'Expédier',
+ 'Ship Merchandise' => 'Expédier marchandise',
+ 'Ship to' => 'Expédier à',
+ 'Ship via' => 'Expédier via',
+ 'Shipping' => 'Expédition',
+ 'Shipping Address' => 'Adresse d\'envoi',
+ 'Shipping Date' => 'Date d\'expédition',
+ 'Shipping Date missing!' => 'Date d\'expédition manquante!',
+ 'Shipping Point' => 'Expéditeur',
+ 'Short' => 'Court',
+ 'Signature' => 'Signature',
+ 'Source' => 'Source',
+ 'Spoolfile' => 'Fichier file d\'attente impression',
+ 'Standard' => 'Standard',
+ 'Standard Industrial Codes' => 'Code secteur économique',
+ 'Startdate' => 'Date de début',
+ 'State' => 'Etat',
+ 'State/Province' => 'Région/État',
+ 'Statement' => 'Relevé',
+ 'Statement Balance' => 'Solde relevé de compte',
+ 'Statement sent to' => 'Relevé envoyé à',
+ 'Statements sent to printer!' => 'Relevés envoyés à l\'imprimante!',
+ 'Stock' => 'Stock',
+ 'Stock Assembly' => 'Stock de produits',
+ 'Stylesheet' => 'Feuille de style',
+ 'Sub-contract GIFI' => 'Code d\'identification comptable ou fiscale - Sous-traitance',
+ 'Subject' => 'Objet',
+ 'Subtotal' => 'Sous total',
+ 'Summary' => 'Résumé',
+ 'Supervisor' => 'Chef de service',
+ 'System' => 'Système',
+ 'System Defaults' => 'Préférences système',
+ 'Tax' => 'Taxe',
+ 'Tax Accounts' => 'Comptes de taxe',
+ 'Tax Included' => 'Taxe incluse',
+ 'Tax Number' => 'Numéro de TVA',
+ 'Tax Number / SSN' => 'Numéro de TVA / Sécurité Sociale',
+ 'Tax collected' => 'Taxe collectée',
+ 'Tax paid' => 'Taxe payée',
+ 'Taxable' => 'Imposable',
+ 'Template saved!' => 'Squelette enregistré!',
+ 'Templates' => 'Squelettes',
+ 'Terms' => 'Crédit limité à',
+ 'Text' => 'Texte',
+ 'Text Templates' => 'Squelettes texte',
+ 'The following Datasets are not in use and can be deleted' => 'Les fichiers de données suivants ne sont pas utilisés et peuvent être supprimés.',
+ 'The following Datasets need to be updated' => 'Les fichiers de données suivants doivent être mis à jour',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Ceci est un test préliminaire des sources existantes. Aucune modification à ce stade!',
+ 'Till' => 'Caisse',
+ 'Times' => 'Temps',
+ 'To' => 'À',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Pour ajouter un utilisateur à un groupe, editer un "nom", changer le "login" et enregistrer. Un nouvel utilisateur avec les mêmes données sera enregistré avec le nouveau "login".',
+ 'Top Level' => 'Description principale',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Escompte commercial',
+ 'Transaction' => 'Écriture',
+ 'Transaction Date missing!' => 'Date d\'écriture manquante!',
+ 'Transaction deleted!' => 'Écriture supprimée!',
+ 'Transaction posted!' => 'Écriture enregistrée!',
+ 'Transaction reversal enforced for all dates' => 'Inversion des écritures exécutée pour toutes les dates',
+ 'Transaction reversal enforced up to' => 'Inversion des écritures exécutée jusqu\'au',
+ 'Transactions' => 'Mouvements',
+ 'Transfer' => 'Transfert',
+ 'Transfer Inventory' => 'Transfert inventaire',
+ 'Transfer to' => 'Transférer vers',
+ 'Translation' => 'Traduction',
+ 'Translation deleted!' => 'Traduction supprimée!',
+ 'Translation not on file!' => 'Pas de traduction dans le fichier',
+ 'Translations' => 'Traductions',
+ 'Translations saved!' => 'Traductions enregistrées',
+ 'Trial Balance' => 'Balance Globale',
+ 'Type of Business' => 'Type d\'affaire',
+ 'Unit' => 'Unité',
+ 'Unit of measure' => 'Unité de mesure',
+ 'Unlock System' => 'Déverrouiller le système',
+ 'Update' => 'Mettre à jour',
+ 'Update Dataset' => 'Mise à jour de la base de données',
+ 'Updated' => 'Mis à jour',
+ 'Upgrading to Version' => 'Mise à jour à la version',
+ 'Use Templates' => 'Utiliser les squelettes',
+ 'User' => 'Utilisateur',
+ 'User deleted!' => 'Utilisateur supprimé!',
+ 'User saved!' => 'Utilisateur enregistré!',
+ 'Valid until' => 'Valable jusqu\'au',
+ 'Vendor' => 'Fournisseur',
+ 'Vendor History' => 'Historique fournisseurs',
+ 'Vendor Invoice' => 'Facture d\'achat',
+ 'Vendor Invoice ' => 'Facture d\'achat ',
+ 'Vendor Invoice.' => 'Facture d\'achat.',
+ 'Vendor Invoices' => 'Factures d\'achat',
+ 'Vendor Number' => 'Numéro de fournisseur',
+ 'Vendor deleted!' => 'Fournisseur supprimé!',
+ 'Vendor missing!' => 'Fournisseur manquant!',
+ 'Vendor not on file!' => 'Fournisseur absent du fichier!',
+ 'Vendor saved!' => 'Fournisseur enregistré!',
+ 'Vendors' => 'Fournisseurs',
+ 'Version' => 'Version',
+ 'Warehouse' => 'Entrepôt',
+ 'Warehouse deleted!' => 'Entrepôt supprimé',
+ 'Warehouse saved!' => 'Entrepôt enregistré',
+ 'Warehouses' => 'Entrepôts',
+ 'Warning!' => 'Attention!',
+ 'Week' => 'Semaine',
+ 'Weeks' => 'Semaines',
+ 'Weight' => 'Poids',
+ 'Weight Unit' => 'Unité de poids',
+ 'What type of item is this?' => 'De quel type est cet objet?',
+ 'Work Order' => 'Fiche de traitement',
+ 'Work Orders' => 'Fiche de traitement',
+ 'Work Phone' => 'Téléphone travail',
+ 'Year' => 'Année',
+ 'Yearend' => 'Écriture de fin d\'exercice',
+ 'Yearend date missing!' => 'Écriture de fin d\'exercice - date manquante',
+ 'Yearend posted!' => 'Écriture de fin d\'exercice enregistrée',
+ 'Yearend posting failed!' => 'Échec enregistrement écriture fin d\'exercice!',
+ 'Years' => 'Années',
+ 'Yes' => 'Oui',
+ 'You are logged out' => 'Vous êtes déconnecté!',
+ 'You are posting an existing transaction!' => 'Vous enregistrez une transaction existante!',
+ 'You are printing and posting an existing transaction!' => 'Vous imprimez et enregistrez une transaction existante!',
+ 'You are printing and saving an existing order' => 'Vous imprimez et enregistrez une commande existante!',
+ 'You are printing and saving an existing quotation' => 'Vous imprimez et enregistrez un devis existant!',
+ 'You are saving an existing order' => 'Vous enregistrez une commande existante',
+ 'You are saving an existing quotation' => 'Vous enregistrez un devis existant',
+ 'You did not enter a name!' => 'Vous n\'avez pas saisi de nom!',
+ 'You must enter a host and port for local and remote connections!' => 'Vous devez saisir un "hôte" et un "port" pour les connexions distantes!',
+ 'Zip/Postal Code' => 'Code postal',
+ 'account cannot be set to any other type of account' => 'compte ne peut pas être changé vers un autre type de compte',
+ 'as at' => 'au',
+ 'days' => 'jours',
+ 'does not exist' => 'n\'existe pas!',
+ 'done' => 'fait',
+ 'ea' => 'ch',
+ 'failed' => 'échec',
+ 'for' => 'pour',
+ 'for Period' => 'pour la période',
+ 'is already a member!' => 'est déjà un membre!',
+ 'localhost' => 'hôte local',
+ 'locked!' => 'verrouillé!',
+ 'posted!' => 'enregistré!',
+ 'sent' => 'envoyé',
+ 'successfully created!' => 'créé avec succès',
+ 'successfully deleted!' => 'supprimé avec succès',
+ 'time(s)' => 'temps',
+ 'website' => 'site web',
+};
+
+1;
diff --git a/locale/fr/am b/locale/fr/am
new file mode 100755
index 00000000..bd9ab6af
--- /dev/null
+++ b/locale/fr/am
@@ -0,0 +1,305 @@
+$self{texts} = {
+ 'AP' => 'Dépenses',
+ 'AR' => 'Recettes',
+ 'About' => 'À propos',
+ 'Account' => 'Compte',
+ 'Account Number' => 'Numéro de compte',
+ 'Account Number missing!' => 'Numéro de compte manquant!',
+ 'Account Type' => 'Type de compte',
+ 'Account Type missing!' => 'Type de compte manquant!',
+ 'Account deleted!' => 'Compte supprimé',
+ 'Account does not exist!' => 'Compte non existant!',
+ 'Account saved!' => 'Compte enregistré',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Accrual' => 'Accumulation',
+ 'Activate Audit trail' => 'Activer la journalisation des accès aux écritures clôturées',
+ 'Add Account' => 'Ajouter compte',
+ 'Add Business' => 'Ajouter type d\'affaire',
+ 'Add Department' => 'Ajouter service',
+ 'Add GIFI' => 'Ajouter code d\'identification comptable ou fiscale',
+ 'Add Language' => 'Ajouter langue',
+ 'Add SIC' => 'Ajouter code secteur économique',
+ 'Add Warehouse' => 'Ajouter entrepôt',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Montant',
+ 'Asset' => 'Actif',
+ 'Audit Control' => 'Clôture périodique',
+ 'Audit trail disabled' => 'Journalisation clôture desactivée',
+ 'Audit trail enabled' => 'Journalisation clôture activée',
+ 'Audit trail removed up to' => 'Annulation de la journalisation des accès aux écritures clôturées jusqu\'au',
+ 'Backup sent to' => 'Sauvegarde envoyée à',
+ 'Bin List' => 'Liste des emplacements',
+ 'Books are open' => 'Début exercice',
+ 'Business Number' => 'Numéro d\'enregistrement société',
+ 'Business deleted!' => 'Type d\'affaire effacé!',
+ 'Business saved!' => 'Type d\'affaire enregistré!',
+ 'COGS' => 'Coût des produits vendus',
+ 'Cannot delete account!' => 'Impossible de supprimer le compte!',
+ 'Cannot delete default account!' => 'Impossible de supprimer le compte par défaut!',
+ 'Cannot save account!' => 'Impossible d\'enregistrer le compte!',
+ 'Cannot save defaults!' => 'Impossible d\'enregistrer les valeurs par défaut!',
+ 'Cannot save preferences!' => 'Impossible d\'enregistrer les préférences',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Impossible d\'enregistrer le compte simultanément en tant que compte de recettes, dépenses ou service',
+ 'Cannot set multiple options for' => 'Impossible de choisir plusieurs options pour',
+ 'Cash' => 'Financier',
+ 'Chart of Accounts' => 'Plan Comptable',
+ 'Close Books up to' => 'Clôturer l\'exercice jusqu\'au',
+ 'Code' => 'Code',
+ 'Code missing!' => 'Code manquant!',
+ 'Company' => 'Société',
+ 'Confirm' => 'Confirmer',
+ 'Confirm!' => 'Confirmer!',
+ 'Continue' => 'Continuer',
+ 'Contra' => 'Contrepartie',
+ 'Copy to COA' => 'Copier dans le plan comptable',
+ 'Cost Center' => 'Axé coûts',
+ 'Credit' => 'Crédit',
+ 'Customer Number' => 'Numéro de client',
+ 'Database Host' => 'Hôte de base de données',
+ 'Dataset' => 'Fichier de données',
+ 'Date Format' => 'Format de date',
+ 'Day' => 'Jour',
+ 'Days' => 'Jours',
+ 'Debit' => 'Débit',
+ 'Default Template' => 'Squelette par defaut',
+ 'Defaults saved!' => 'Valeurs par défaut enrégistrées!',
+ 'Delete' => 'Supprimer',
+ 'Delete Account' => 'Supprimer compte',
+ 'Deleting a language will also delete the templates for the language' => 'Effacer une langue, implique également l\'effacement des squelettes correspondants à cette langue',
+ 'Department deleted!' => 'Service effacé!',
+ 'Department saved!' => 'Service enregistré!',
+ 'Departments' => 'Services',
+ 'Description' => 'Description',
+ 'Description missing!' => 'Description manquante!',
+ 'Discount' => 'Remise',
+ 'Dropdown Limit' => 'Limite de déroulement',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Adresse e-mail manquante!',
+ 'Edit' => 'Modifier',
+ 'Edit Account' => 'Modifier le compte',
+ 'Edit Business' => 'Modifier type d\'affaire',
+ 'Edit Department' => 'Modifier service de l\'entreprise',
+ 'Edit GIFI' => 'Modifier code d\'identification comptable ou fiscale',
+ 'Edit Language' => 'Modifier langue',
+ 'Edit Preferences for' => 'Modifier les préférences pour',
+ 'Edit SIC' => 'Modifier code de secteur économique',
+ 'Edit Template' => 'Modifier squelette',
+ 'Edit Warehouse' => 'Modifier entrepôt',
+ 'Employee Number' => 'Numéro d\'employé',
+ 'Ends' => 'Se termine',
+ 'Enforce transaction reversal for all dates' => 'Activer la clôture des écritures pour toutes les dates',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Entrer le nom de la monnaie nationale et des monnaies étrangères en 3 lettres séparées par (:) (Ex: EUR:USD:CAD)',
+ 'Equity' => 'Capital',
+ 'Every' => 'Chaque',
+ 'Expense' => 'Dépenses',
+ 'Expense/Asset' => 'Dépenses/actif',
+ 'Fax' => 'Fax',
+ 'Foreign Exchange Gain' => 'Produit conversion devises',
+ 'Foreign Exchange Loss' => 'Perte conversion devises',
+ 'GIFI' => 'Code d\'identification comptable ou fiscale',
+ 'GIFI deleted!' => 'Code d\'identification comptable ou fiscale supprimé!',
+ 'GIFI missing!' => 'Code d\'identification comptable ou fiscale manquant!',
+ 'GIFI saved!' => 'Code d\'identification comptable ou fiscale enregistré!',
+ 'GL' => 'Grand-livre',
+ 'GL Transaction' => 'Transaction grand-livre',
+ 'Heading' => 'En-tête',
+ 'ID' => 'ID',
+ 'Include in drop-down menus' => 'Inclure dans les menus déroulants',
+ 'Income' => 'Recettes',
+ 'Inventory' => 'Inventaire',
+ 'Invoice' => 'Facture',
+ 'Is this a summary account to record' => 'Est-ce que c\'est un compte sommaire à enregistrer?',
+ 'Language' => 'Langue',
+ 'Language deleted!' => 'Langue effacée!',
+ 'Language saved!' => 'Langue enregistrée!',
+ 'Languages' => 'Langues',
+ 'Last Numbers & Default Accounts' => 'Derniers numéros et comptes par défauts',
+ 'Liability' => 'Passif',
+ 'Licensed to' => 'Licence à',
+ 'Link' => 'Liens',
+ 'Menu Width' => 'Largeur menu',
+ 'Method' => 'Méthode',
+ 'Month' => 'Mois',
+ 'Months' => 'Mois',
+ 'Name' => 'Nom',
+ 'Next' => 'Prochain',
+ 'No' => 'Non',
+ 'No email address for' => 'Pas d\'adresse email pour',
+ 'Number' => 'Numéro',
+ 'Number Format' => 'Format des numéros',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Liste d\'envoi',
+ 'Password' => 'Mot de passe',
+ 'Password does not match!' => 'Mot de passe incorrect!',
+ 'Payables' => 'À payer',
+ 'Payment' => 'Paiement',
+ 'Phone' => 'Tél.',
+ 'Pick List' => 'Liste de sélection',
+ 'Posting' => 'Enregistrement',
+ 'Postscript' => 'Postcript',
+ 'Preferences saved!' => 'Préférences enregistrées!',
+ 'Print' => 'Imprimer',
+ 'Printer' => 'Imprimante',
+ 'Printing' => 'Impression',
+ 'Process Transactions' => 'Traiter transactions',
+ 'Profit Center' => 'Axé profit',
+ 'Purchase Order' => 'Commande d\'achat',
+ 'Purchase Order Number' => 'Numéro de commande',
+ 'Purchase Orders' => 'Commandes d\'achat',
+ 'RFQ Number' => 'Numéro de demande de devis',
+ 'Rate' => 'Taux',
+ 'Receivables' => 'À recevoir',
+ 'Recurring Transactions' => 'Transactions périodiques',
+ 'Reference' => 'Référence',
+ 'Remove Audit trail up to' => 'Annuler la journalisation des accès aux écritures clôturées jusqu\'au',
+ 'Retained Earnings' => 'Éxcédents non distribués',
+ 'SIC deleted!' => 'Code secteur économique effacé!',
+ 'SIC saved!' => 'Code secteur économique enregistré!',
+ 'Sales Invoice' => 'Facture de vente',
+ 'Sales Order' => 'Commande de vente',
+ 'Sales Order Number' => 'Numéro de commande de vente',
+ 'Sales Orders' => 'Commandes de vente',
+ 'Sales Quotation Number' => 'Numéro de devis de vente',
+ 'Save' => 'Enregistrer',
+ 'Save as new' => 'Enregistrer comme nouveau',
+ 'Saving' => 'Enregistrement',
+ 'Sending' => 'Envoyer',
+ 'Session Timeout' => 'Fin de session',
+ 'Signature' => 'Signature',
+ 'Standard Industrial Codes' => 'Code secteur économique',
+ 'Stylesheet' => 'Feuille de style',
+ 'System Defaults' => 'Préférences système',
+ 'Tax' => 'Taxe',
+ 'Template saved!' => 'Squelette enregistré!',
+ 'Times' => 'Temps',
+ 'Transaction' => 'Écriture',
+ 'Transaction reversal enforced for all dates' => 'Inversion des écritures exécutée pour toutes les dates',
+ 'Transaction reversal enforced up to' => 'Inversion des écritures exécutée jusqu\'au',
+ 'Type of Business' => 'Type d\'affaire',
+ 'Update' => 'Mettre à jour',
+ 'User' => 'Utilisateur',
+ 'Vendor Invoice' => 'Facture d\'achat',
+ 'Vendor Number' => 'Numéro de fournisseur',
+ 'Version' => 'Version',
+ 'Warehouse deleted!' => 'Entrepôt supprimé',
+ 'Warehouse saved!' => 'Entrepôt enregistré',
+ 'Warehouses' => 'Entrepôts',
+ 'Week' => 'Semaine',
+ 'Weeks' => 'Semaines',
+ 'Weight Unit' => 'Unité de poids',
+ 'Work Order' => 'Fiche de traitement',
+ 'Year' => 'Année',
+ 'Yearend' => 'Écriture de fin d\'exercice',
+ 'Yearend date missing!' => 'Écriture de fin d\'exercice - date manquante',
+ 'Yearend posted!' => 'Écriture de fin d\'exercice enregistrée',
+ 'Yearend posting failed!' => 'Échec enregistrement écriture fin d\'exercice!',
+ 'Years' => 'Années',
+ 'Yes' => 'Oui',
+ 'account cannot be set to any other type of account' => 'compte ne peut pas être changé vers un autre type de compte',
+ 'done' => 'fait',
+ 'failed' => 'échec',
+ 'localhost' => 'hôte local',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'ajouter_compte' => 'add_account',
+ 'ajouter_type_d\'affaire' => 'add_business',
+ 'ajouter_service' => 'add_department',
+ 'ajouter_langue' => 'add_language',
+ 'ajouter_code_secteur_économique' => 'add_sic',
+ 'ajouter_entrepôt' => 'add_warehouse',
+ 'continuer' => 'continue',
+ 'copier_dans_le_plan_comptable' => 'copy_to_coa',
+ 'supprimer' => 'delete',
+ 'modifier' => 'edit',
+ 'modifier_le_compte' => 'edit_account',
+ 'traiter_transactions' => 'process_transactions',
+ 'enregistrer' => 'save',
+ 'enregistrer_comme_nouveau' => 'save_as_new',
+ 'mettre_à_jour' => 'update',
+};
+
+1;
+
diff --git a/locale/fr/ap b/locale/fr/ap
new file mode 100755
index 00000000..0b71031d
--- /dev/null
+++ b/locale/fr/ap
@@ -0,0 +1,233 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Dépenses en retard',
+ 'AP Transaction' => 'Écriture dépenses',
+ 'AP Transactions' => 'Mouvements - Dépenses',
+ 'AR Outstanding' => 'Recettes en retard',
+ 'AR Transaction' => 'Écriture recettes',
+ 'AR Transactions' => 'Mouvements - Recettes',
+ 'Account' => 'Compte',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Add AP Transaction' => 'Ajouter une dépense',
+ 'Add AR Transaction' => 'Ajouter une recette',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Montant',
+ 'Amount Due' => 'Montant dû',
+ 'Apr' => 'Avril',
+ 'April' => 'Avril',
+ 'Are you sure you want to delete Transaction' => 'Êtes vous sûr de vouloir effacer la saisie?',
+ 'Aug' => 'Août',
+ 'August' => 'Août',
+ 'Bcc' => 'Copie cachée',
+ 'Cannot delete transaction!' => 'Impossible de supprimer la saisie!',
+ 'Cannot post payment for a closed period!' => 'Impossible d\'enregistrer le paiement sur un exercice clos!',
+ 'Cannot post transaction for a closed period!' => 'Impossible d\'enregistrer l\'écriture sur un exercice clos!',
+ 'Cannot post transaction!' => 'Impossible d\'enregistrer l\'écriture!',
+ 'Cc' => 'Copie',
+ 'Check' => 'Chèque',
+ 'Closed' => 'Clôturé',
+ 'Confirm!' => 'Confirmer!',
+ 'Continue' => 'Continuer',
+ 'Credit' => 'Crédit',
+ 'Credit Limit' => 'Encours autorisé',
+ 'Curr' => 'Dev.',
+ 'Currency' => 'Devise',
+ 'Current' => 'En cours',
+ 'Customer' => 'Client',
+ 'Customer missing!' => 'Client manquant!',
+ 'Customer not on file!' => 'Client absent du fichier!',
+ 'Date' => 'Date',
+ 'Date Paid' => 'Date de paiement',
+ 'Debit' => 'Débit',
+ 'Dec' => 'Déc.',
+ 'December' => 'Décembre',
+ 'Delete' => 'Supprimer',
+ 'Delete Schedule' => 'Effacer transaction planifiée',
+ 'Department' => 'Service',
+ 'Description' => 'Description',
+ 'Detail' => 'Détail',
+ 'Due Date' => 'Échéance',
+ 'Due Date missing!' => 'Date d\'échéance manquante!',
+ 'E-mail' => 'E-mail',
+ 'E-mail message' => 'Message e-mail',
+ 'Edit AP Transaction' => 'Modifier une dépense',
+ 'Edit AR Transaction' => 'Modifier une recette',
+ 'Employee' => 'Employé',
+ 'Every' => 'Chaque',
+ 'Exch' => 'Change',
+ 'Exchange Rate' => 'Taux de change',
+ 'Exchange rate for payment missing!' => 'Taux de change manquant pour le paiement!',
+ 'Exchange rate missing!' => 'Taux de change manquant!',
+ 'Feb' => 'Fév.',
+ 'February' => 'Février',
+ 'For' => 'Pour',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'Include Payment' => 'Inclure paiement',
+ 'Include in Report' => 'Inclure dans l\'état',
+ 'Invoice' => 'Facture',
+ 'Invoice Date' => 'Date de facturation',
+ 'Invoice Date missing!' => 'Date de facture manquante!',
+ 'Invoice Number' => 'Numéro de facture',
+ 'Jan' => 'Jan.',
+ 'January' => 'Janvier',
+ 'Jul' => 'Juill.',
+ 'July' => 'Juillet',
+ 'Jun' => 'Juin',
+ 'June' => 'Juin',
+ 'Manager' => 'Gestionnaire',
+ 'Mar' => 'Mars',
+ 'March' => 'Mars',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Mémo',
+ 'Message' => 'Message',
+ 'Month' => 'Mois',
+ 'Next Date' => 'Prochaine date',
+ 'No.' => 'N°',
+ 'Notes' => 'Notes',
+ 'Nothing to print!' => 'Rien à imprimer',
+ 'Nov' => 'Nov.',
+ 'November' => 'Novembre',
+ 'Number' => 'Numéro',
+ 'Oct' => 'Oct.',
+ 'October' => 'Octobre',
+ 'Open' => 'Ouvert',
+ 'Order' => 'Commande',
+ 'Order Number' => 'Numéro de commande',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Numéro de référence',
+ 'Paid' => 'Total payé',
+ 'Payment date missing!' => 'Date de paiement manquante!',
+ 'Payments' => 'Paiements',
+ 'Period' => 'Période',
+ 'Post' => 'Enregistrer',
+ 'Post as new' => 'Enregistrer comme nouveau',
+ 'Postscript' => 'Postcript',
+ 'Print' => 'Imprimer',
+ 'Print and Post' => 'Imprimer et imputer',
+ 'Printed' => 'Imprimé',
+ 'Project' => 'Projet',
+ 'Project not on file!' => 'Projet absent du fichier!',
+ 'Quarter' => 'Trimestre',
+ 'Receipt' => 'Reçu',
+ 'Recurring Transaction' => 'Transaction périodique',
+ 'Reference' => 'Référence',
+ 'Remaining' => 'Restant',
+ 'Repeat' => 'Répéter',
+ 'Sales Invoice.' => 'Facture de vente.',
+ 'Salesperson' => 'Vendeur',
+ 'Save Schedule' => 'Enregistrer transaction planifiée',
+ 'Schedule' => 'Planification',
+ 'Scheduled' => 'Planifié',
+ 'Screen' => 'Écran',
+ 'Select from one of the names below' => 'Sélectionner un des noms ci-dessous',
+ 'Select from one of the projects below' => 'Sélectionner un des projets ci-dessous',
+ 'Select payment' => 'Sélectionner le payement',
+ 'Select postscript or PDF!' => 'Sélectionner Postscript ou PDF!',
+ 'Sep' => 'Sept.',
+ 'September' => 'Septembre',
+ 'Ship to' => 'Expédier à',
+ 'Ship via' => 'Expédier via',
+ 'Shipping Point' => 'Expéditeur',
+ 'Source' => 'Source',
+ 'Startdate' => 'Date de début',
+ 'Subject' => 'Objet',
+ 'Subtotal' => 'Sous total',
+ 'Summary' => 'Résumé',
+ 'Tax' => 'Taxe',
+ 'Tax Included' => 'Taxe incluse',
+ 'Till' => 'Caisse',
+ 'To' => 'À',
+ 'Total' => 'Total',
+ 'Transaction' => 'Écriture',
+ 'Transaction deleted!' => 'Écriture supprimée!',
+ 'Transaction posted!' => 'Écriture enregistrée!',
+ 'Update' => 'Mettre à jour',
+ 'Vendor' => 'Fournisseur',
+ 'Vendor Invoice.' => 'Facture d\'achat.',
+ 'Vendor missing!' => 'Fournisseur manquant!',
+ 'Vendor not on file!' => 'Fournisseur absent du fichier!',
+ 'Warning!' => 'Attention!',
+ 'Year' => 'Année',
+ 'Yes' => 'Oui',
+ 'You are posting an existing transaction!' => 'Vous enregistrez une transaction existante!',
+ 'You are printing and posting an existing transaction!' => 'Vous imprimez et enregistrez une transaction existante!',
+ 'You are printing and saving an existing order' => 'Vous imprimez et enregistrez une commande existante!',
+ 'You are printing and saving an existing quotation' => 'Vous imprimez et enregistrez un devis existant!',
+ 'You are saving an existing order' => 'Vous enregistrez une commande existante',
+ 'You are saving an existing quotation' => 'Vous enregistrez un devis existant',
+ 'for' => 'pour',
+ 'sent' => 'envoyé',
+ 'time(s)' => 'temps',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'Écriture_dépenses' => 'ap_transaction',
+ 'Écriture_recettes' => 'ar_transaction',
+ 'continuer' => 'continue',
+ 'supprimer' => 'delete',
+ 'effacer_transaction_planifiée' => 'delete_schedule',
+ 'enregistrer' => 'post',
+ 'enregistrer_comme_nouveau' => 'post_as_new',
+ 'imprimer' => 'print',
+ 'imprimer_et_imputer' => 'print_and_post',
+ 'facture_de_vente_' => 'sales_invoice_',
+ 'enregistrer_transaction_planifiée' => 'save_schedule',
+ 'planification' => 'schedule',
+ 'expédier_à' => 'ship_to',
+ 'mettre_à_jour' => 'update',
+ 'facture_d\'achat_' => 'vendor_invoice_',
+ 'oui' => 'yes',
+};
+
+1;
+
diff --git a/locale/fr/ar b/locale/fr/ar
new file mode 100755
index 00000000..0b71031d
--- /dev/null
+++ b/locale/fr/ar
@@ -0,0 +1,233 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Dépenses en retard',
+ 'AP Transaction' => 'Écriture dépenses',
+ 'AP Transactions' => 'Mouvements - Dépenses',
+ 'AR Outstanding' => 'Recettes en retard',
+ 'AR Transaction' => 'Écriture recettes',
+ 'AR Transactions' => 'Mouvements - Recettes',
+ 'Account' => 'Compte',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Add AP Transaction' => 'Ajouter une dépense',
+ 'Add AR Transaction' => 'Ajouter une recette',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Montant',
+ 'Amount Due' => 'Montant dû',
+ 'Apr' => 'Avril',
+ 'April' => 'Avril',
+ 'Are you sure you want to delete Transaction' => 'Êtes vous sûr de vouloir effacer la saisie?',
+ 'Aug' => 'Août',
+ 'August' => 'Août',
+ 'Bcc' => 'Copie cachée',
+ 'Cannot delete transaction!' => 'Impossible de supprimer la saisie!',
+ 'Cannot post payment for a closed period!' => 'Impossible d\'enregistrer le paiement sur un exercice clos!',
+ 'Cannot post transaction for a closed period!' => 'Impossible d\'enregistrer l\'écriture sur un exercice clos!',
+ 'Cannot post transaction!' => 'Impossible d\'enregistrer l\'écriture!',
+ 'Cc' => 'Copie',
+ 'Check' => 'Chèque',
+ 'Closed' => 'Clôturé',
+ 'Confirm!' => 'Confirmer!',
+ 'Continue' => 'Continuer',
+ 'Credit' => 'Crédit',
+ 'Credit Limit' => 'Encours autorisé',
+ 'Curr' => 'Dev.',
+ 'Currency' => 'Devise',
+ 'Current' => 'En cours',
+ 'Customer' => 'Client',
+ 'Customer missing!' => 'Client manquant!',
+ 'Customer not on file!' => 'Client absent du fichier!',
+ 'Date' => 'Date',
+ 'Date Paid' => 'Date de paiement',
+ 'Debit' => 'Débit',
+ 'Dec' => 'Déc.',
+ 'December' => 'Décembre',
+ 'Delete' => 'Supprimer',
+ 'Delete Schedule' => 'Effacer transaction planifiée',
+ 'Department' => 'Service',
+ 'Description' => 'Description',
+ 'Detail' => 'Détail',
+ 'Due Date' => 'Échéance',
+ 'Due Date missing!' => 'Date d\'échéance manquante!',
+ 'E-mail' => 'E-mail',
+ 'E-mail message' => 'Message e-mail',
+ 'Edit AP Transaction' => 'Modifier une dépense',
+ 'Edit AR Transaction' => 'Modifier une recette',
+ 'Employee' => 'Employé',
+ 'Every' => 'Chaque',
+ 'Exch' => 'Change',
+ 'Exchange Rate' => 'Taux de change',
+ 'Exchange rate for payment missing!' => 'Taux de change manquant pour le paiement!',
+ 'Exchange rate missing!' => 'Taux de change manquant!',
+ 'Feb' => 'Fév.',
+ 'February' => 'Février',
+ 'For' => 'Pour',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'Include Payment' => 'Inclure paiement',
+ 'Include in Report' => 'Inclure dans l\'état',
+ 'Invoice' => 'Facture',
+ 'Invoice Date' => 'Date de facturation',
+ 'Invoice Date missing!' => 'Date de facture manquante!',
+ 'Invoice Number' => 'Numéro de facture',
+ 'Jan' => 'Jan.',
+ 'January' => 'Janvier',
+ 'Jul' => 'Juill.',
+ 'July' => 'Juillet',
+ 'Jun' => 'Juin',
+ 'June' => 'Juin',
+ 'Manager' => 'Gestionnaire',
+ 'Mar' => 'Mars',
+ 'March' => 'Mars',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Mémo',
+ 'Message' => 'Message',
+ 'Month' => 'Mois',
+ 'Next Date' => 'Prochaine date',
+ 'No.' => 'N°',
+ 'Notes' => 'Notes',
+ 'Nothing to print!' => 'Rien à imprimer',
+ 'Nov' => 'Nov.',
+ 'November' => 'Novembre',
+ 'Number' => 'Numéro',
+ 'Oct' => 'Oct.',
+ 'October' => 'Octobre',
+ 'Open' => 'Ouvert',
+ 'Order' => 'Commande',
+ 'Order Number' => 'Numéro de commande',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Numéro de référence',
+ 'Paid' => 'Total payé',
+ 'Payment date missing!' => 'Date de paiement manquante!',
+ 'Payments' => 'Paiements',
+ 'Period' => 'Période',
+ 'Post' => 'Enregistrer',
+ 'Post as new' => 'Enregistrer comme nouveau',
+ 'Postscript' => 'Postcript',
+ 'Print' => 'Imprimer',
+ 'Print and Post' => 'Imprimer et imputer',
+ 'Printed' => 'Imprimé',
+ 'Project' => 'Projet',
+ 'Project not on file!' => 'Projet absent du fichier!',
+ 'Quarter' => 'Trimestre',
+ 'Receipt' => 'Reçu',
+ 'Recurring Transaction' => 'Transaction périodique',
+ 'Reference' => 'Référence',
+ 'Remaining' => 'Restant',
+ 'Repeat' => 'Répéter',
+ 'Sales Invoice.' => 'Facture de vente.',
+ 'Salesperson' => 'Vendeur',
+ 'Save Schedule' => 'Enregistrer transaction planifiée',
+ 'Schedule' => 'Planification',
+ 'Scheduled' => 'Planifié',
+ 'Screen' => 'Écran',
+ 'Select from one of the names below' => 'Sélectionner un des noms ci-dessous',
+ 'Select from one of the projects below' => 'Sélectionner un des projets ci-dessous',
+ 'Select payment' => 'Sélectionner le payement',
+ 'Select postscript or PDF!' => 'Sélectionner Postscript ou PDF!',
+ 'Sep' => 'Sept.',
+ 'September' => 'Septembre',
+ 'Ship to' => 'Expédier à',
+ 'Ship via' => 'Expédier via',
+ 'Shipping Point' => 'Expéditeur',
+ 'Source' => 'Source',
+ 'Startdate' => 'Date de début',
+ 'Subject' => 'Objet',
+ 'Subtotal' => 'Sous total',
+ 'Summary' => 'Résumé',
+ 'Tax' => 'Taxe',
+ 'Tax Included' => 'Taxe incluse',
+ 'Till' => 'Caisse',
+ 'To' => 'À',
+ 'Total' => 'Total',
+ 'Transaction' => 'Écriture',
+ 'Transaction deleted!' => 'Écriture supprimée!',
+ 'Transaction posted!' => 'Écriture enregistrée!',
+ 'Update' => 'Mettre à jour',
+ 'Vendor' => 'Fournisseur',
+ 'Vendor Invoice.' => 'Facture d\'achat.',
+ 'Vendor missing!' => 'Fournisseur manquant!',
+ 'Vendor not on file!' => 'Fournisseur absent du fichier!',
+ 'Warning!' => 'Attention!',
+ 'Year' => 'Année',
+ 'Yes' => 'Oui',
+ 'You are posting an existing transaction!' => 'Vous enregistrez une transaction existante!',
+ 'You are printing and posting an existing transaction!' => 'Vous imprimez et enregistrez une transaction existante!',
+ 'You are printing and saving an existing order' => 'Vous imprimez et enregistrez une commande existante!',
+ 'You are printing and saving an existing quotation' => 'Vous imprimez et enregistrez un devis existant!',
+ 'You are saving an existing order' => 'Vous enregistrez une commande existante',
+ 'You are saving an existing quotation' => 'Vous enregistrez un devis existant',
+ 'for' => 'pour',
+ 'sent' => 'envoyé',
+ 'time(s)' => 'temps',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'Écriture_dépenses' => 'ap_transaction',
+ 'Écriture_recettes' => 'ar_transaction',
+ 'continuer' => 'continue',
+ 'supprimer' => 'delete',
+ 'effacer_transaction_planifiée' => 'delete_schedule',
+ 'enregistrer' => 'post',
+ 'enregistrer_comme_nouveau' => 'post_as_new',
+ 'imprimer' => 'print',
+ 'imprimer_et_imputer' => 'print_and_post',
+ 'facture_de_vente_' => 'sales_invoice_',
+ 'enregistrer_transaction_planifiée' => 'save_schedule',
+ 'planification' => 'schedule',
+ 'expédier_à' => 'ship_to',
+ 'mettre_à_jour' => 'update',
+ 'facture_d\'achat_' => 'vendor_invoice_',
+ 'oui' => 'yes',
+};
+
+1;
+
diff --git a/locale/fr/arap b/locale/fr/arap
new file mode 100755
index 00000000..1e210fa3
--- /dev/null
+++ b/locale/fr/arap
@@ -0,0 +1,70 @@
+$self{texts} = {
+ 'Address' => 'Adresse',
+ 'Bcc' => 'Copie cachée',
+ 'Cc' => 'Copie',
+ 'Continue' => 'Continuer',
+ 'Customer not on file!' => 'Client absent du fichier!',
+ 'Date' => 'Date',
+ 'Delete Schedule' => 'Effacer transaction planifiée',
+ 'Description' => 'Description',
+ 'E-mail' => 'E-mail',
+ 'E-mail message' => 'Message e-mail',
+ 'Every' => 'Chaque',
+ 'For' => 'Pour',
+ 'Include Payment' => 'Inclure paiement',
+ 'Message' => 'Message',
+ 'Next Date' => 'Prochaine date',
+ 'Number' => 'Numéro',
+ 'Print' => 'Imprimer',
+ 'Project not on file!' => 'Projet absent du fichier!',
+ 'Recurring Transaction' => 'Transaction périodique',
+ 'Reference' => 'Référence',
+ 'Repeat' => 'Répéter',
+ 'Save Schedule' => 'Enregistrer transaction planifiée',
+ 'Select from one of the names below' => 'Sélectionner un des noms ci-dessous',
+ 'Select from one of the projects below' => 'Sélectionner un des projets ci-dessous',
+ 'Startdate' => 'Date de début',
+ 'Subject' => 'Objet',
+ 'To' => 'À',
+ 'Vendor not on file!' => 'Fournisseur absent du fichier!',
+ 'Warning!' => 'Attention!',
+ 'You are posting an existing transaction!' => 'Vous enregistrez une transaction existante!',
+ 'You are printing and posting an existing transaction!' => 'Vous imprimez et enregistrez une transaction existante!',
+ 'You are printing and saving an existing order' => 'Vous imprimez et enregistrez une commande existante!',
+ 'You are printing and saving an existing quotation' => 'Vous imprimez et enregistrez un devis existant!',
+ 'You are saving an existing order' => 'Vous enregistrez une commande existante',
+ 'You are saving an existing quotation' => 'Vous enregistrez un devis existant',
+ 'for' => 'pour',
+ 'sent' => 'envoyé',
+ 'time(s)' => 'temps',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuer' => 'continue',
+ 'effacer_transaction_planifiée' => 'delete_schedule',
+ 'enregistrer_transaction_planifiée' => 'save_schedule',
+};
+
+1;
+
diff --git a/locale/fr/arapprn b/locale/fr/arapprn
new file mode 100755
index 00000000..5b98be2c
--- /dev/null
+++ b/locale/fr/arapprn
@@ -0,0 +1,33 @@
+$self{texts} = {
+ 'Account' => 'Compte',
+ 'Amount' => 'Montant',
+ 'Continue' => 'Continuer',
+ 'Date' => 'Date',
+ 'Memo' => 'Mémo',
+ 'Nothing to print!' => 'Rien à imprimer',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'Postcript',
+ 'Printed' => 'Imprimé',
+ 'Scheduled' => 'Planifié',
+ 'Screen' => 'Écran',
+ 'Select payment' => 'Sélectionner le payement',
+ 'Select postscript or PDF!' => 'Sélectionner Postscript ou PDF!',
+ 'Source' => 'Source',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'continuer' => 'continue',
+};
+
+1;
+
diff --git a/locale/fr/bp b/locale/fr/bp
new file mode 100755
index 00000000..16c571dc
--- /dev/null
+++ b/locale/fr/bp
@@ -0,0 +1,68 @@
+$self{texts} = {
+ 'Account' => 'Compte',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Êtes vous sûr de vouloir enlever les objets sélectionnés de la queue?',
+ 'Bin Lists' => 'Liste des emplacements',
+ 'Cannot remove files!' => 'Impossible d\'effacer les fichiers!',
+ 'Confirm!' => 'Confirmer!',
+ 'Continue' => 'Continuer',
+ 'Current' => 'En cours',
+ 'Customer' => 'Client',
+ 'Date' => 'Date',
+ 'Employee' => 'Employé',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'Invoice' => 'Facture',
+ 'Invoice Number' => 'Numéro de facture',
+ 'Marked entries printed!' => 'Éléments marqués imprimés!',
+ 'Month' => 'Mois',
+ 'Order' => 'Commande',
+ 'Order Number' => 'Numéro de commande',
+ 'Packing Lists' => 'Listes d\'envoi',
+ 'Period' => 'Période',
+ 'Pick Lists' => 'Liste de sélection',
+ 'Print' => 'Imprimer',
+ 'Printing' => 'Impression',
+ 'Purchase Orders' => 'Commandes d\'achat',
+ 'Quarter' => 'Trimestre',
+ 'Quotation' => 'Devis',
+ 'Quotation Number' => 'Numéro de devis',
+ 'Quotations' => 'Devis',
+ 'RFQs' => 'Demandes de devis',
+ 'Remove' => 'Effacer',
+ 'Removed spoolfiles!' => 'File d\'attente impression effacée!',
+ 'Removing marked entries from queue ...' => 'Suppression des éléments sélectionnés de la file d\'attente ...',
+ 'Sales Invoices' => 'Factures de vente',
+ 'Sales Orders' => 'Commandes de vente',
+ 'Select all' => 'Tout sélectionner',
+ 'Spoolfile' => 'Fichier file d\'attente impression',
+ 'To' => 'À',
+ 'Vendor' => 'Fournisseur',
+ 'Work Orders' => 'Fiche de traitement',
+ 'Year' => 'Année',
+ 'Yes' => 'Oui',
+ 'done' => 'fait',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'continuer' => 'continue',
+ 'imprimer' => 'print',
+ 'effacer' => 'remove',
+ 'tout_sélectionner' => 'select_all',
+ 'oui' => 'yes',
+};
+
+1;
+
diff --git a/locale/fr/ca b/locale/fr/ca
new file mode 100755
index 00000000..1d81b4c3
--- /dev/null
+++ b/locale/fr/ca
@@ -0,0 +1,59 @@
+$self{texts} = {
+ 'Account' => 'Compte',
+ 'Apr' => 'Avril',
+ 'April' => 'Avril',
+ 'Aug' => 'Août',
+ 'August' => 'Août',
+ 'Balance' => 'Solde',
+ 'Chart of Accounts' => 'Plan Comptable',
+ 'Credit' => 'Crédit',
+ 'Current' => 'En cours',
+ 'Date' => 'Date',
+ 'Debit' => 'Débit',
+ 'Dec' => 'Déc.',
+ 'December' => 'Décembre',
+ 'Department' => 'Service',
+ 'Description' => 'Description',
+ 'Feb' => 'Fév.',
+ 'February' => 'Février',
+ 'From' => 'De',
+ 'GIFI' => 'Code d\'identification comptable ou fiscale',
+ 'Include in Report' => 'Inclure dans l\'état',
+ 'Jan' => 'Jan.',
+ 'January' => 'Janvier',
+ 'Jul' => 'Juill.',
+ 'July' => 'Juillet',
+ 'Jun' => 'Juin',
+ 'June' => 'Juin',
+ 'List Transactions' => 'Afficher écritures',
+ 'Mar' => 'Mars',
+ 'March' => 'Mars',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Month' => 'Mois',
+ 'Nov' => 'Nov.',
+ 'November' => 'Novembre',
+ 'Oct' => 'Oct.',
+ 'October' => 'Octobre',
+ 'Period' => 'Période',
+ 'Project Number' => 'Numéro de projet',
+ 'Quarter' => 'Trimestre',
+ 'R' => 'R',
+ 'Reference' => 'Référence',
+ 'Sep' => 'Sept.',
+ 'September' => 'Septembre',
+ 'Subtotal' => 'Sous total',
+ 'To' => 'À',
+ 'Year' => 'Année',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'afficher_écritures' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/fr/cp b/locale/fr/cp
new file mode 100755
index 00000000..6411a49c
--- /dev/null
+++ b/locale/fr/cp
@@ -0,0 +1,142 @@
+$self{texts} = {
+ 'AP' => 'Dépenses',
+ 'AR' => 'Recettes',
+ 'Account' => 'Compte',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Address' => 'Adresse',
+ 'All' => 'Tous',
+ 'Amount' => 'Montant',
+ 'Amount Due' => 'Montant dû',
+ 'Bcc' => 'Copie cachée',
+ 'Cannot post Payment!' => 'Impossible d\'enregistrer le paiement!',
+ 'Cannot post Receipt!' => 'Impossible d\'enregistrer le reçu!',
+ 'Cannot post payment for a closed period!' => 'Impossible d\'enregistrer le paiement sur un exercice clos!',
+ 'Cc' => 'Copie',
+ 'Continue' => 'Continuer',
+ 'Currency' => 'Devise',
+ 'Customer' => 'Client',
+ 'Customer not on file!' => 'Client absent du fichier!',
+ 'Date' => 'Date',
+ 'Date missing!' => 'Date manquante!',
+ 'Delete Schedule' => 'Effacer transaction planifiée',
+ 'Department' => 'Service',
+ 'Deposit' => 'Dépôt',
+ 'Description' => 'Description',
+ 'Due Date' => 'Échéance',
+ 'E-mail' => 'E-mail',
+ 'E-mail message' => 'Message e-mail',
+ 'Every' => 'Chaque',
+ 'Exchange Rate' => 'Taux de change',
+ 'Exchange rate missing!' => 'Taux de change manquant!',
+ 'For' => 'Pour',
+ 'From' => 'De',
+ 'Include Payment' => 'Inclure paiement',
+ 'Invoice' => 'Facture',
+ 'Invoices' => 'Factures',
+ 'Language' => 'Langue',
+ 'Memo' => 'Mémo',
+ 'Message' => 'Message',
+ 'Next Date' => 'Prochaine date',
+ 'Number' => 'Numéro',
+ 'PDF' => 'PDF',
+ 'Payment' => 'Paiement',
+ 'Payment posted!' => 'Paiement enregistré!',
+ 'Payments' => 'Paiements',
+ 'Post' => 'Enregistrer',
+ 'Postscript' => 'Postcript',
+ 'Prepayment' => 'Paiement à l\'avance',
+ 'Print' => 'Imprimer',
+ 'Project not on file!' => 'Projet absent du fichier!',
+ 'Receipt' => 'Reçu',
+ 'Receipt posted!' => 'Reçu enregistré!',
+ 'Receipts' => 'Reçus',
+ 'Recurring Transaction' => 'Transaction périodique',
+ 'Reference' => 'Référence',
+ 'Repeat' => 'Répéter',
+ 'Save Schedule' => 'Enregistrer transaction planifiée',
+ 'Screen' => 'Écran',
+ 'Select' => 'Sélectionner',
+ 'Select all' => 'Tout sélectionner',
+ 'Select from one of the names below' => 'Sélectionner un des noms ci-dessous',
+ 'Select from one of the projects below' => 'Sélectionner un des projets ci-dessous',
+ 'Select postscript or PDF!' => 'Sélectionner Postscript ou PDF!',
+ 'Source' => 'Source',
+ 'Startdate' => 'Date de début',
+ 'Subject' => 'Objet',
+ 'To' => 'À',
+ 'Update' => 'Mettre à jour',
+ 'Vendor' => 'Fournisseur',
+ 'Vendor not on file!' => 'Fournisseur absent du fichier!',
+ 'Warning!' => 'Attention!',
+ 'You are posting an existing transaction!' => 'Vous enregistrez une transaction existante!',
+ 'You are printing and posting an existing transaction!' => 'Vous imprimez et enregistrez une transaction existante!',
+ 'You are printing and saving an existing order' => 'Vous imprimez et enregistrez une commande existante!',
+ 'You are printing and saving an existing quotation' => 'Vous imprimez et enregistrez un devis existant!',
+ 'You are saving an existing order' => 'Vous enregistrez une commande existante',
+ 'You are saving an existing quotation' => 'Vous enregistrez un devis existant',
+ 'for' => 'pour',
+ 'sent' => 'envoyé',
+ 'time(s)' => 'temps',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuer' => 'continue',
+ 'effacer_transaction_planifiée' => 'delete_schedule',
+ 'enregistrer' => 'post',
+ 'imprimer' => 'print',
+ 'enregistrer_transaction_planifiée' => 'save_schedule',
+ 'tout_sélectionner' => 'select_all',
+ 'mettre_à_jour' => 'update',
+};
+
+1;
+
diff --git a/locale/fr/ct b/locale/fr/ct
new file mode 100755
index 00000000..5920dca0
--- /dev/null
+++ b/locale/fr/ct
@@ -0,0 +1,187 @@
+$self{texts} = {
+ 'AP Transaction' => 'Écriture dépenses',
+ 'AP Transactions' => 'Mouvements - Dépenses',
+ 'AR Transaction' => 'Écriture recettes',
+ 'AR Transactions' => 'Mouvements - Recettes',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Active' => 'Actif',
+ 'Add Customer' => 'Ajouter client',
+ 'Add Vendor' => 'Ajouter fournisseur',
+ 'Address' => 'Adresse',
+ 'All' => 'Tous',
+ 'Amount' => 'Montant',
+ 'BIC' => 'BIC',
+ 'Bcc' => 'Copie cachée',
+ 'Billing Address' => 'Adresse de facturation',
+ 'Break' => 'Rupture',
+ 'Cannot delete customer!' => 'Impossible de supprimer le client!',
+ 'Cannot delete vendor!' => 'Impossible de supprimer le fournisseur!',
+ 'Cc' => 'Copie',
+ 'City' => 'Ville',
+ 'Closed' => 'Clôturé',
+ 'Company Name' => 'Nom de société',
+ 'Contact' => 'Contact',
+ 'Continue' => 'Continuer',
+ 'Cost' => 'Coût',
+ 'Could not save pricelist!' => 'Enregistrement de la liste de prix impossible!',
+ 'Country' => 'Pays',
+ 'Credit Limit' => 'Encours autorisé',
+ 'Curr' => 'Dev.',
+ 'Currency' => 'Devise',
+ 'Customer History' => 'Historique client',
+ 'Customer Number' => 'Numéro de client',
+ 'Customer deleted!' => 'Client supprimé!',
+ 'Customer saved!' => 'Client enregistré!',
+ 'Customers' => 'Clients',
+ 'Delete' => 'Supprimer',
+ 'Delivery Date' => 'Date de livraison',
+ 'Description' => 'Description',
+ 'Detail' => 'Détail',
+ 'Discount' => 'Remise',
+ 'E-mail' => 'E-mail',
+ 'Edit Customer' => 'Modifier client',
+ 'Edit Vendor' => 'Modifier fournisseur',
+ 'Employee' => 'Employé',
+ 'Enddate' => 'Date de fin',
+ 'Fax' => 'Fax',
+ 'From' => 'De',
+ 'GIFI' => 'Code d\'identification comptable ou fiscale',
+ 'Group' => 'Groupe',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Inclure dans l\'état',
+ 'Invoice' => 'Facture',
+ 'Item already on pricelist!' => 'Objet déjà présent dans la liste des prix',
+ 'Item not on file!' => 'Objet non-listé!',
+ 'Language' => 'Langue',
+ 'Leadtime' => 'Délai',
+ 'Manager' => 'Gestionnaire',
+ 'Name' => 'Nom',
+ 'Name missing!' => 'Nom manquant!',
+ 'No.' => 'N°',
+ 'Notes' => 'Notes',
+ 'Number' => 'Numéro',
+ 'Open' => 'Ouvert',
+ 'Order' => 'Commande',
+ 'Orphaned' => 'Orphelin',
+ 'POS' => 'Point de vente',
+ 'Phone' => 'Tél.',
+ 'Pricegroup' => 'Groupe de prix',
+ 'Pricelist' => 'Liste de prix',
+ 'Project Number' => 'Numéro de projet',
+ 'Purchase Order' => 'Commande d\'achat',
+ 'Purchase Orders' => 'Commandes d\'achat',
+ 'Qty' => 'Qté',
+ 'Quotation' => 'Devis',
+ 'Quotations' => 'Devis',
+ 'RFQ' => 'Demande de devis',
+ 'Request for Quotations' => 'Demandes de devis',
+ 'SIC' => 'Code secteur économique',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Facture de vente',
+ 'Sales Invoices' => 'Factures de vente',
+ 'Sales Order' => 'Commande de vente',
+ 'Sales Orders' => 'Commandes de vente',
+ 'Salesperson' => 'Vendeur',
+ 'Save' => 'Enregistrer',
+ 'Save Pricelist' => 'Enregistrer la liste de prix',
+ 'Save as new' => 'Enregistrer comme nouveau',
+ 'Search' => 'Recherche',
+ 'Select items' => 'Sélectionner éléments',
+ 'Sell Price' => 'Prix de vente',
+ 'Serial Number' => 'Numéro de série',
+ 'Shipping Address' => 'Adresse d\'envoi',
+ 'Startdate' => 'Date de début',
+ 'State' => 'Etat',
+ 'State/Province' => 'Région/État',
+ 'Sub-contract GIFI' => 'Code d\'identification comptable ou fiscale - Sous-traitance',
+ 'Subtotal' => 'Sous total',
+ 'Summary' => 'Résumé',
+ 'Tax' => 'Taxe',
+ 'Tax Included' => 'Taxe incluse',
+ 'Tax Number' => 'Numéro de TVA',
+ 'Tax Number / SSN' => 'Numéro de TVA / Sécurité Sociale',
+ 'Taxable' => 'Imposable',
+ 'Terms' => 'Crédit limité à',
+ 'To' => 'À',
+ 'Total' => 'Total',
+ 'Type of Business' => 'Type d\'affaire',
+ 'Unit' => 'Unité',
+ 'Update' => 'Mettre à jour',
+ 'Vendor History' => 'Historique fournisseurs',
+ 'Vendor Invoice' => 'Facture d\'achat',
+ 'Vendor Invoices' => 'Factures d\'achat',
+ 'Vendor Number' => 'Numéro de fournisseur',
+ 'Vendor deleted!' => 'Fournisseur supprimé!',
+ 'Vendor saved!' => 'Fournisseur enregistré!',
+ 'Vendors' => 'Fournisseurs',
+ 'Zip/Postal Code' => 'Code postal',
+ 'days' => 'jours',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'Écriture_dépenses' => 'ap_transaction',
+ 'Écriture_recettes' => 'ar_transaction',
+ 'ajouter_client' => 'add_customer',
+ 'ajouter_fournisseur' => 'add_vendor',
+ 'continuer' => 'continue',
+ 'supprimer' => 'delete',
+ 'point_de_vente' => 'pos',
+ 'liste_de_prix' => 'pricelist',
+ 'commande_d\'achat' => 'purchase_order',
+ 'devis' => 'quotation',
+ 'demande_de_devis' => 'rfq',
+ 'facture_de_vente' => 'sales_invoice',
+ 'commande_de_vente' => 'sales_order',
+ 'enregistrer' => 'save',
+ 'enregistrer_la_liste_de_prix' => 'save_pricelist',
+ 'enregistrer_comme_nouveau' => 'save_as_new',
+ 'mettre_à_jour' => 'update',
+ 'facture_d\'achat' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/fr/gl b/locale/fr/gl
new file mode 100755
index 00000000..c2b7cca3
--- /dev/null
+++ b/locale/fr/gl
@@ -0,0 +1,180 @@
+$self{texts} = {
+ 'AP Transaction' => 'Écriture dépenses',
+ 'AR Transaction' => 'Écriture recettes',
+ 'Account' => 'Compte',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Add Cash Transfer Transaction' => 'Saisie d\'écriture - Virements internes',
+ 'Add General Ledger Transaction' => 'Ajouter une écriture au grand-livre',
+ 'Address' => 'Adresse',
+ 'All' => 'Tous',
+ 'Amount' => 'Montant',
+ 'Apr' => 'Avril',
+ 'April' => 'Avril',
+ 'Are you sure you want to delete Transaction' => 'Êtes vous sûr de vouloir effacer la saisie?',
+ 'Asset' => 'Actif',
+ 'Aug' => 'Août',
+ 'August' => 'Août',
+ 'Balance' => 'Solde',
+ 'Bcc' => 'Copie cachée',
+ 'Cannot delete transaction!' => 'Impossible de supprimer la saisie!',
+ 'Cannot post transaction for a closed period!' => 'Impossible d\'enregistrer l\'écriture sur un exercice clos!',
+ 'Cannot post transaction!' => 'Impossible d\'enregistrer l\'écriture!',
+ 'Cc' => 'Copie',
+ 'Confirm!' => 'Confirmer!',
+ 'Continue' => 'Continuer',
+ 'Credit' => 'Crédit',
+ 'Current' => 'En cours',
+ 'Customer not on file!' => 'Client absent du fichier!',
+ 'Date' => 'Date',
+ 'Debit' => 'Débit',
+ 'Dec' => 'Déc.',
+ 'December' => 'Décembre',
+ 'Delete' => 'Supprimer',
+ 'Delete Schedule' => 'Effacer transaction planifiée',
+ 'Department' => 'Service',
+ 'Description' => 'Description',
+ 'E-mail' => 'E-mail',
+ 'E-mail message' => 'Message e-mail',
+ 'Edit Cash Transfer Transaction' => 'Modifier virements internes',
+ 'Edit General Ledger Transaction' => 'Modifier écriture grand-livre',
+ 'Equity' => 'Capital',
+ 'Every' => 'Chaque',
+ 'Expense' => 'Dépenses',
+ 'FX' => 'Devises',
+ 'Feb' => 'Fév.',
+ 'February' => 'Février',
+ 'For' => 'Pour',
+ 'From' => 'De',
+ 'GIFI' => 'Code d\'identification comptable ou fiscale',
+ 'GL Transaction' => 'Transaction grand-livre',
+ 'General Ledger' => 'Grand-livre',
+ 'ID' => 'ID',
+ 'Include Payment' => 'Inclure paiement',
+ 'Include in Report' => 'Inclure dans l\'état',
+ 'Income' => 'Recettes',
+ 'Jan' => 'Jan.',
+ 'January' => 'Janvier',
+ 'Jul' => 'Juill.',
+ 'July' => 'Juillet',
+ 'Jun' => 'Juin',
+ 'June' => 'Juin',
+ 'Liability' => 'Passif',
+ 'Mar' => 'Mars',
+ 'March' => 'Mars',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Mémo',
+ 'Message' => 'Message',
+ 'Month' => 'Mois',
+ 'Next Date' => 'Prochaine date',
+ 'Notes' => 'Notes',
+ 'Nov' => 'Nov.',
+ 'November' => 'Novembre',
+ 'Number' => 'Numéro',
+ 'Oct' => 'Oct.',
+ 'October' => 'Octobre',
+ 'Out of balance transaction!' => 'Écriture non-soldée!',
+ 'Period' => 'Période',
+ 'Post' => 'Enregistrer',
+ 'Post as new' => 'Enregistrer comme nouveau',
+ 'Print' => 'Imprimer',
+ 'Project' => 'Projet',
+ 'Project not on file!' => 'Projet absent du fichier!',
+ 'Quarter' => 'Trimestre',
+ 'R' => 'R',
+ 'Recurring Transaction' => 'Transaction périodique',
+ 'Reference' => 'Référence',
+ 'Repeat' => 'Répéter',
+ 'Reports' => 'Rapports',
+ 'Sales Invoice ' => 'Facture de vente ',
+ 'Save Schedule' => 'Enregistrer transaction planifiée',
+ 'Schedule' => 'Planification',
+ 'Scheduled' => 'Planifié',
+ 'Select from one of the names below' => 'Sélectionner un des noms ci-dessous',
+ 'Select from one of the projects below' => 'Sélectionner un des projets ci-dessous',
+ 'Sep' => 'Sept.',
+ 'September' => 'Septembre',
+ 'Source' => 'Source',
+ 'Startdate' => 'Date de début',
+ 'Subject' => 'Objet',
+ 'Subtotal' => 'Sous total',
+ 'To' => 'À',
+ 'Transaction Date missing!' => 'Date d\'écriture manquante!',
+ 'Transaction deleted!' => 'Écriture supprimée!',
+ 'Transaction posted!' => 'Écriture enregistrée!',
+ 'Update' => 'Mettre à jour',
+ 'Vendor Invoice ' => 'Facture d\'achat ',
+ 'Vendor not on file!' => 'Fournisseur absent du fichier!',
+ 'Warning!' => 'Attention!',
+ 'Year' => 'Année',
+ 'Yes' => 'Oui',
+ 'You are posting an existing transaction!' => 'Vous enregistrez une transaction existante!',
+ 'You are printing and posting an existing transaction!' => 'Vous imprimez et enregistrez une transaction existante!',
+ 'You are printing and saving an existing order' => 'Vous imprimez et enregistrez une commande existante!',
+ 'You are printing and saving an existing quotation' => 'Vous imprimez et enregistrez un devis existant!',
+ 'You are saving an existing order' => 'Vous enregistrez une commande existante',
+ 'You are saving an existing quotation' => 'Vous enregistrez un devis existant',
+ 'for' => 'pour',
+ 'sent' => 'envoyé',
+ 'time(s)' => 'temps',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'Écriture_dépenses' => 'ap_transaction',
+ 'Écriture_recettes' => 'ar_transaction',
+ 'continuer' => 'continue',
+ 'supprimer' => 'delete',
+ 'effacer_transaction_planifiée' => 'delete_schedule',
+ 'transaction_grand_livre' => 'gl_transaction',
+ 'enregistrer' => 'post',
+ 'enregistrer_comme_nouveau' => 'post_as_new',
+ 'facture_de_vente_' => 'sales_invoice_',
+ 'enregistrer_transaction_planifiée' => 'save_schedule',
+ 'planification' => 'schedule',
+ 'mettre_à_jour' => 'update',
+ 'facture_d\'achat_' => 'vendor_invoice_',
+ 'oui' => 'yes',
+};
+
+1;
+
diff --git a/locale/fr/hr b/locale/fr/hr
new file mode 100755
index 00000000..0d47870c
--- /dev/null
+++ b/locale/fr/hr
@@ -0,0 +1,117 @@
+$self{texts} = {
+ 'AP' => 'Dépenses',
+ 'Above' => 'En dessus',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Active' => 'Actif',
+ 'Add Deduction' => 'Ajouter prélèvement',
+ 'Add Employee' => 'Ajouter employé',
+ 'Address' => 'Adresse',
+ 'Administrator' => 'Administrateur',
+ 'After Deduction' => 'Après prélèvement',
+ 'All' => 'Tous',
+ 'Allowances' => 'Indemnités',
+ 'Amount' => 'Montant',
+ 'Amount missing!' => 'Montant manquant!',
+ 'BIC' => 'BIC',
+ 'Based on' => 'Basé sur',
+ 'Before Deduction' => 'Avant prélèvement',
+ 'Below' => 'En dessous',
+ 'City' => 'Ville',
+ 'Continue' => 'Continuer',
+ 'Country' => 'Pays',
+ 'DOB' => 'Date de naissance',
+ 'Deduct after' => 'Prélèver après',
+ 'Deduction deleted!' => 'Prélèvement supprimé!',
+ 'Deduction saved!' => 'Prélèvement enrégistré!',
+ 'Deductions' => 'Prélèvements',
+ 'Delete' => 'Supprimer',
+ 'Description' => 'Description',
+ 'Description missing!' => 'Description manquante!',
+ 'E-mail' => 'E-mail',
+ 'Edit Deduction' => 'Modifier prélèvement',
+ 'Edit Employee' => 'Modifier employé',
+ 'Employee' => 'Employé',
+ 'Employee Name' => 'Nom employé',
+ 'Employee Number' => 'Numéro d\'employé',
+ 'Employee deleted!' => 'Employé effacé!',
+ 'Employee pays' => 'Employé pays',
+ 'Employee saved!' => 'Employé enregistré',
+ 'Employees' => 'Employés',
+ 'Employer' => 'Employeur',
+ 'Employer pays' => 'Employeur pays',
+ 'Enddate' => 'Date de fin',
+ 'Expense' => 'Dépenses',
+ 'From' => 'De',
+ 'Home Phone' => 'Téléphone privé',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Inclure dans l\'état',
+ 'Login' => 'Login',
+ 'Manager' => 'Gestionnaire',
+ 'Maximum' => 'Maximum',
+ 'Name' => 'Nom',
+ 'Name missing!' => 'Nom manquant!',
+ 'Notes' => 'Notes',
+ 'Number' => 'Numéro',
+ 'Orphaned' => 'Orphelin',
+ 'Payroll Deduction' => 'Prélèvement salaire',
+ 'Rate' => 'Taux',
+ 'Rate missing!' => 'Taux manquant!',
+ 'Role' => 'Rôle',
+ 'S' => 'S',
+ 'SSN' => 'Numéro sécurité sociale',
+ 'Sales' => 'Ventes',
+ 'Save' => 'Enregistrer',
+ 'Save as new' => 'Enregistrer comme nouveau',
+ 'Startdate' => 'Date de début',
+ 'State/Province' => 'Région/État',
+ 'Supervisor' => 'Chef de service',
+ 'To' => 'À',
+ 'Update' => 'Mettre à jour',
+ 'User' => 'Utilisateur',
+ 'Work Phone' => 'Téléphone travail',
+ 'Zip/Postal Code' => 'Code postal',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'ajouter_prélèvement' => 'add_deduction',
+ 'ajouter_employé' => 'add_employee',
+ 'continuer' => 'continue',
+ 'supprimer' => 'delete',
+ 'enregistrer' => 'save',
+ 'enregistrer_comme_nouveau' => 'save_as_new',
+ 'mettre_à_jour' => 'update',
+};
+
+1;
+
diff --git a/locale/fr/ic b/locale/fr/ic
new file mode 100755
index 00000000..64ca907e
--- /dev/null
+++ b/locale/fr/ic
@@ -0,0 +1,280 @@
+$self{texts} = {
+ 'A' => 'A',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Accounts' => 'Comptes',
+ 'Accrual' => 'Accumulation',
+ 'Active' => 'Actif',
+ 'Add' => 'Ajouter',
+ 'Add Assembly' => 'Ajouter produit',
+ 'Add Labor/Overhead' => 'Ajouter coût de production',
+ 'Add Part' => 'Ajouter marchandise',
+ 'Add Purchase Order' => 'Établir commande d\'achat',
+ 'Add Quotation' => 'Établir devis',
+ 'Add Request for Quotation' => 'Établir demande de devis',
+ 'Add Sales Order' => 'Établir commande de vente',
+ 'Add Service' => 'Ajouter prestation',
+ 'Address' => 'Adresse',
+ 'Apr' => 'Avril',
+ 'April' => 'Avril',
+ 'Assemblies' => 'Produits finis',
+ 'Assemblies restocked!' => 'Renvoyer produits vers stock!',
+ 'Assembly' => 'Produit fini',
+ 'Attachment' => 'Pièce jointe',
+ 'Aug' => 'Août',
+ 'August' => 'Août',
+ 'BOM' => 'Nomenclature composantes',
+ 'Bcc' => 'Copie cachée',
+ 'Billing Address' => 'Adresse de facturation',
+ 'Bin' => 'Lieu stockage',
+ 'Bin List' => 'Liste des emplacements',
+ 'Break' => 'Rupture',
+ 'COGS' => 'Coût des produits vendus',
+ 'Cannot delete item!' => 'Impossible de supprimer l\'objet!',
+ 'Cannot stock assemblies!' => 'Impossible de stocker l\'assemblage!',
+ 'Cash' => 'Financier',
+ 'Cc' => 'Copie',
+ 'Check Inventory' => 'Listing chèques',
+ 'City' => 'Ville',
+ 'Closed' => 'Clôturé',
+ 'Company Name' => 'Nom de société',
+ 'Components' => 'Composants',
+ 'Contact' => 'Contact',
+ 'Continue' => 'Continuer',
+ 'Copies' => 'Copies',
+ 'Cost' => 'Coût',
+ 'Country' => 'Pays',
+ 'Curr' => 'Dev.',
+ 'Currency' => 'Devise',
+ 'Customer' => 'Client',
+ 'Customer Number' => 'Numéro de client',
+ 'Customer not on file!' => 'Client absent du fichier!',
+ 'Date' => 'Date',
+ 'Dec' => 'Déc.',
+ 'December' => 'Décembre',
+ 'Delete' => 'Supprimer',
+ 'Delivery Date' => 'Date de livraison',
+ 'Description' => 'Description',
+ 'Detail' => 'Détail',
+ 'Drawing' => 'Dessin',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Adresse e-mail manquante!',
+ 'E-mailed' => 'E-mail envoyé',
+ 'Edit Assembly' => 'Modifier produit fini / transformé',
+ 'Edit Labor/Overhead' => 'Modifier coût de production',
+ 'Edit Part' => 'Modifier marchandise',
+ 'Edit Service' => 'Modifier service',
+ 'Employee' => 'Employé',
+ 'Expense' => 'Dépenses',
+ 'Extended' => 'Prix total',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Fév.',
+ 'February' => 'Février',
+ 'From' => 'De',
+ 'Group' => 'Groupe',
+ 'Image' => 'Image',
+ 'In-line' => 'En ligne',
+ 'Include in Report' => 'Inclure dans l\'état',
+ 'Income' => 'Recettes',
+ 'Individual Items' => 'Composition en marchandises individuelles',
+ 'Inventory' => 'Inventaire',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'La quantité en stock doit être zéro avant de pouvoir annuler cet assemblage!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'La quantité en stock doit être zero avant de pouvoir annuler cette pièce!',
+ 'Invoice' => 'Facture',
+ 'Invoice Date missing!' => 'Date de facture manquante!',
+ 'Invoice Number' => 'Numéro de facture',
+ 'Invoice Number missing!' => 'Numéro de facture manquant!',
+ 'Item deleted!' => 'Objet supprimé!',
+ 'Item not on file!' => 'Objet non-listé!',
+ 'Items' => 'Objets',
+ 'Jan' => 'Jan.',
+ 'January' => 'Janvier',
+ 'Jul' => 'Juill.',
+ 'July' => 'Juillet',
+ 'Jun' => 'Juin',
+ 'June' => 'Juin',
+ 'Labor/Overhead' => 'Coût de production',
+ 'Leadtime' => 'Délai',
+ 'Line Total' => 'Total ligne',
+ 'Link Accounts' => 'Lier comptes',
+ 'List' => 'Liste',
+ 'List Price' => 'Prix de revient',
+ 'Make' => 'Marque',
+ 'Mar' => 'Mars',
+ 'March' => 'Mars',
+ 'Markup' => 'Majoration',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Message' => 'Message',
+ 'Microfiche' => 'Microfiche',
+ 'Model' => 'Modèle',
+ 'Name' => 'Nom',
+ 'No.' => 'N°',
+ 'Notes' => 'Notes',
+ 'Nov' => 'Nov.',
+ 'November' => 'Novembre',
+ 'Number' => 'Numéro',
+ 'Number missing in Row' => 'Numéro manquant dans ligne',
+ 'Obsolete' => 'Obsolète',
+ 'Oct' => 'Oct.',
+ 'October' => 'Octobre',
+ 'On Hand' => 'En Stock / disponible',
+ 'Open' => 'Ouvert',
+ 'Order' => 'Commande',
+ 'Order Date missing!' => 'Date de commande manquante!',
+ 'Order Number' => 'Numéro de commande',
+ 'Order Number missing!' => 'Numéro de commande manquant!',
+ 'Orphaned' => 'Orphelin',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Liste d\'envoi',
+ 'Packing List Date missing!' => 'La liste d\'envoi n\'a pas de date!',
+ 'Packing List Number missing!' => 'Le numéro de la liste d\'envoi est manquant!',
+ 'Part' => 'Marchandise',
+ 'Parts' => 'Marchandises',
+ 'Period' => 'Période',
+ 'Phone' => 'Tél.',
+ 'Pick List' => 'Liste de sélection',
+ 'Postscript' => 'Postcript',
+ 'Price' => 'Prix',
+ 'Pricegroup' => 'Groupe de prix',
+ 'Printed' => 'Imprimé',
+ 'Project' => 'Projet',
+ 'Purchase Order' => 'Commande d\'achat',
+ 'Purchase Orders' => 'Commandes d\'achat',
+ 'Qty' => 'Qté',
+ 'Quantity exceeds available units to stock!' => 'La quantité dépasse le nombre d\'unités en stock',
+ 'Quotation' => 'Devis',
+ 'Quotation Date missing!' => 'Date de devis manqante!',
+ 'Quotation Number missing!' => 'Numéro de devis manquant!',
+ 'Quotations' => 'Devis',
+ 'RFQ' => 'Demande de devis',
+ 'ROP' => 'Seuil réapprovisionnement',
+ 'Recd' => 'Reçu',
+ 'Required by' => 'Requis pour',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Facture de vente',
+ 'Sales Invoices' => 'Factures de vente',
+ 'Sales Order' => 'Commande de vente',
+ 'Sales Orders' => 'Commandes de vente',
+ 'Save' => 'Enregistrer',
+ 'Save as new' => 'Enregistrer comme nouveau',
+ 'Scheduled' => 'Planifié',
+ 'Screen' => 'Écran',
+ 'Select from one of the names below' => 'Sélectionner un des noms ci-dessous',
+ 'Select items' => 'Sélectionner éléments',
+ 'Select txt, postscript or PDF!' => 'Sélectionner Txt, Postscript ou PDF!',
+ 'Sell' => 'Vente',
+ 'Sell Price' => 'Prix de vente',
+ 'Sep' => 'Sept.',
+ 'September' => 'Septembre',
+ 'Serial No.' => 'N° série',
+ 'Serial Number' => 'Numéro de série',
+ 'Service' => 'Prestation de service',
+ 'Services' => 'Prestations de services',
+ 'Ship' => 'Expédier',
+ 'Ship to' => 'Expédier à',
+ 'Shipping Address' => 'Adresse d\'envoi',
+ 'Short' => 'Court',
+ 'State/Province' => 'Région/État',
+ 'Stock' => 'Stock',
+ 'Stock Assembly' => 'Stock de produits',
+ 'Subject' => 'Objet',
+ 'Subtotal' => 'Sous total',
+ 'Summary' => 'Résumé',
+ 'Tax' => 'Taxe',
+ 'Text' => 'Texte',
+ 'To' => 'À',
+ 'Top Level' => 'Description principale',
+ 'Translation not on file!' => 'Pas de traduction dans le fichier',
+ 'Unit' => 'Unité',
+ 'Update' => 'Mettre à jour',
+ 'Updated' => 'Mis à jour',
+ 'Vendor' => 'Fournisseur',
+ 'Vendor Invoice' => 'Facture d\'achat',
+ 'Vendor Invoices' => 'Factures d\'achat',
+ 'Vendor Number' => 'Numéro de fournisseur',
+ 'Vendor not on file!' => 'Fournisseur absent du fichier!',
+ 'Warehouse' => 'Entrepôt',
+ 'Weight' => 'Poids',
+ 'What type of item is this?' => 'De quel type est cet objet?',
+ 'Work Order' => 'Fiche de traitement',
+ 'Year' => 'Année',
+ 'Zip/Postal Code' => 'Code postal',
+ 'days' => 'jours',
+ 'sent' => 'envoyé',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'ajouter_produit' => 'add_assembly',
+ 'ajouter_coût_de_production' => 'add_labor_overhead',
+ 'ajouter_marchandise' => 'add_part',
+ 'ajouter_prestation' => 'add_service',
+ 'continuer' => 'continue',
+ 'supprimer' => 'delete',
+ 'modifier_produit_fini___transformé' => 'edit_assembly',
+ 'modifier_marchandise' => 'edit_part',
+ 'modifier_service' => 'edit_service',
+ 'enregistrer' => 'save',
+ 'enregistrer_comme_nouveau' => 'save_as_new',
+ 'mettre_à_jour' => 'update',
+};
+
+1;
+
diff --git a/locale/fr/io b/locale/fr/io
new file mode 100755
index 00000000..7917cff1
--- /dev/null
+++ b/locale/fr/io
@@ -0,0 +1,133 @@
+$self{texts} = {
+ 'Add Purchase Order' => 'Établir commande d\'achat',
+ 'Add Quotation' => 'Établir devis',
+ 'Add Request for Quotation' => 'Établir demande de devis',
+ 'Add Sales Order' => 'Établir commande de vente',
+ 'Address' => 'Adresse',
+ 'Apr' => 'Avril',
+ 'April' => 'Avril',
+ 'Attachment' => 'Pièce jointe',
+ 'Aug' => 'Août',
+ 'August' => 'Août',
+ 'Bcc' => 'Copie cachée',
+ 'Billing Address' => 'Adresse de facturation',
+ 'Bin' => 'Lieu stockage',
+ 'Bin List' => 'Liste des emplacements',
+ 'Cc' => 'Copie',
+ 'City' => 'Ville',
+ 'Company Name' => 'Nom de société',
+ 'Contact' => 'Contact',
+ 'Continue' => 'Continuer',
+ 'Copies' => 'Copies',
+ 'Country' => 'Pays',
+ 'Customer Number' => 'Numéro de client',
+ 'Date' => 'Date',
+ 'Dec' => 'Déc.',
+ 'December' => 'Décembre',
+ 'Delivery Date' => 'Date de livraison',
+ 'Description' => 'Description',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Adresse e-mail manquante!',
+ 'E-mailed' => 'E-mail envoyé',
+ 'Extended' => 'Prix total',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Fév.',
+ 'February' => 'Février',
+ 'Group' => 'Groupe',
+ 'In-line' => 'En ligne',
+ 'Invoice' => 'Facture',
+ 'Invoice Date missing!' => 'Date de facture manquante!',
+ 'Invoice Number missing!' => 'Numéro de facture manquant!',
+ 'Item not on file!' => 'Objet non-listé!',
+ 'Jan' => 'Jan.',
+ 'January' => 'Janvier',
+ 'Jul' => 'Juill.',
+ 'July' => 'Juillet',
+ 'Jun' => 'Juin',
+ 'June' => 'Juin',
+ 'Mar' => 'Mars',
+ 'March' => 'Mars',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Message' => 'Message',
+ 'Nov' => 'Nov.',
+ 'November' => 'Novembre',
+ 'Number' => 'Numéro',
+ 'Number missing in Row' => 'Numéro manquant dans ligne',
+ 'Oct' => 'Oct.',
+ 'October' => 'Octobre',
+ 'Order Date missing!' => 'Date de commande manquante!',
+ 'Order Number missing!' => 'Numéro de commande manquant!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Liste d\'envoi',
+ 'Packing List Date missing!' => 'La liste d\'envoi n\'a pas de date!',
+ 'Packing List Number missing!' => 'Le numéro de la liste d\'envoi est manquant!',
+ 'Part' => 'Marchandise',
+ 'Phone' => 'Tél.',
+ 'Pick List' => 'Liste de sélection',
+ 'Postscript' => 'Postcript',
+ 'Price' => 'Prix',
+ 'Printed' => 'Imprimé',
+ 'Project' => 'Projet',
+ 'Purchase Order' => 'Commande d\'achat',
+ 'Qty' => 'Qté',
+ 'Quotation' => 'Devis',
+ 'Quotation Date missing!' => 'Date de devis manqante!',
+ 'Quotation Number missing!' => 'Numéro de devis manquant!',
+ 'Recd' => 'Reçu',
+ 'Required by' => 'Requis pour',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Commande de vente',
+ 'Scheduled' => 'Planifié',
+ 'Screen' => 'Écran',
+ 'Select items' => 'Sélectionner éléments',
+ 'Select txt, postscript or PDF!' => 'Sélectionner Txt, Postscript ou PDF!',
+ 'Sep' => 'Sept.',
+ 'September' => 'Septembre',
+ 'Serial No.' => 'N° série',
+ 'Service' => 'Prestation de service',
+ 'Ship' => 'Expédier',
+ 'Ship to' => 'Expédier à',
+ 'Shipping Address' => 'Adresse d\'envoi',
+ 'State/Province' => 'Région/État',
+ 'Subject' => 'Objet',
+ 'Subtotal' => 'Sous total',
+ 'Text' => 'Texte',
+ 'To' => 'À',
+ 'Translation not on file!' => 'Pas de traduction dans le fichier',
+ 'Unit' => 'Unité',
+ 'Vendor Number' => 'Numéro de fournisseur',
+ 'What type of item is this?' => 'De quel type est cet objet?',
+ 'Work Order' => 'Fiche de traitement',
+ 'Zip/Postal Code' => 'Code postal',
+ 'sent' => 'envoyé',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'continuer' => 'continue',
+};
+
+1;
+
diff --git a/locale/fr/ir b/locale/fr/ir
new file mode 100755
index 00000000..2e3114da
--- /dev/null
+++ b/locale/fr/ir
@@ -0,0 +1,249 @@
+$self{texts} = {
+ 'Account' => 'Compte',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Add Purchase Order' => 'Établir commande d\'achat',
+ 'Add Quotation' => 'Établir devis',
+ 'Add Request for Quotation' => 'Établir demande de devis',
+ 'Add Sales Order' => 'Établir commande de vente',
+ 'Add Vendor Invoice' => 'Établir facture d\'achat',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Montant',
+ 'Apr' => 'Avril',
+ 'April' => 'Avril',
+ 'Are you sure you want to delete Invoice Number' => 'Êtes-vous sûr de vouloir supprimer la facture n°',
+ 'Attachment' => 'Pièce jointe',
+ 'Aug' => 'Août',
+ 'August' => 'Août',
+ 'Bcc' => 'Copie cachée',
+ 'Billing Address' => 'Adresse de facturation',
+ 'Bin' => 'Lieu stockage',
+ 'Bin List' => 'Liste des emplacements',
+ 'Cannot delete invoice!' => 'Impossible de supprimer la facture!',
+ 'Cannot post invoice for a closed period!' => 'Impossible d\'enregistrer la facture sur un exercice clos!',
+ 'Cannot post invoice!' => 'Impossible d\'enregistrer la facture!',
+ 'Cannot post payment for a closed period!' => 'Impossible d\'enregistrer le paiement sur un exercice clos!',
+ 'Cc' => 'Copie',
+ 'City' => 'Ville',
+ 'Company Name' => 'Nom de société',
+ 'Confirm!' => 'Confirmer!',
+ 'Contact' => 'Contact',
+ 'Continue' => 'Continuer',
+ 'Copies' => 'Copies',
+ 'Country' => 'Pays',
+ 'Credit Limit' => 'Encours autorisé',
+ 'Currency' => 'Devise',
+ 'Customer Number' => 'Numéro de client',
+ 'Customer not on file!' => 'Client absent du fichier!',
+ 'Date' => 'Date',
+ 'Dec' => 'Déc.',
+ 'December' => 'Décembre',
+ 'Delete' => 'Supprimer',
+ 'Delete Schedule' => 'Effacer transaction planifiée',
+ 'Delivery Date' => 'Date de livraison',
+ 'Department' => 'Service',
+ 'Description' => 'Description',
+ 'Due Date' => 'Échéance',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Adresse e-mail manquante!',
+ 'E-mail message' => 'Message e-mail',
+ 'E-mailed' => 'E-mail envoyé',
+ 'Edit Vendor Invoice' => 'Modifier facture de fournisseur',
+ 'Every' => 'Chaque',
+ 'Exch' => 'Change',
+ 'Exchange Rate' => 'Taux de change',
+ 'Exchange rate for payment missing!' => 'Taux de change manquant pour le paiement!',
+ 'Exchange rate missing!' => 'Taux de change manquant!',
+ 'Extended' => 'Prix total',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Fév.',
+ 'February' => 'Février',
+ 'For' => 'Pour',
+ 'Group' => 'Groupe',
+ 'In-line' => 'En ligne',
+ 'Include Payment' => 'Inclure paiement',
+ 'Internal Notes' => 'Notes internes',
+ 'Invoice' => 'Facture',
+ 'Invoice Date' => 'Date de facturation',
+ 'Invoice Date missing!' => 'Date de facture manquante!',
+ 'Invoice Number' => 'Numéro de facture',
+ 'Invoice Number missing!' => 'Numéro de facture manquant!',
+ 'Invoice deleted!' => 'Facture supprimée!',
+ 'Item not on file!' => 'Objet non-listé!',
+ 'Jan' => 'Jan.',
+ 'January' => 'Janvier',
+ 'Jul' => 'Juill.',
+ 'July' => 'Juillet',
+ 'Jun' => 'Juin',
+ 'June' => 'Juin',
+ 'Language' => 'Langue',
+ 'Mar' => 'Mars',
+ 'March' => 'Mars',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Mémo',
+ 'Message' => 'Message',
+ 'Next Date' => 'Prochaine date',
+ 'Notes' => 'Notes',
+ 'Nov' => 'Nov.',
+ 'November' => 'Novembre',
+ 'Number' => 'Numéro',
+ 'Number missing in Row' => 'Numéro manquant dans ligne',
+ 'Oct' => 'Oct.',
+ 'October' => 'Octobre',
+ 'Order Date missing!' => 'Date de commande manquante!',
+ 'Order Number' => 'Numéro de commande',
+ 'Order Number missing!' => 'Numéro de commande manquant!',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Numéro de référence',
+ 'Packing List' => 'Liste d\'envoi',
+ 'Packing List Date missing!' => 'La liste d\'envoi n\'a pas de date!',
+ 'Packing List Number missing!' => 'Le numéro de la liste d\'envoi est manquant!',
+ 'Part' => 'Marchandise',
+ 'Payment date missing!' => 'Date de paiement manquante!',
+ 'Payments' => 'Paiements',
+ 'Phone' => 'Tél.',
+ 'Pick List' => 'Liste de sélection',
+ 'Post' => 'Enregistrer',
+ 'Post as new' => 'Enregistrer comme nouveau',
+ 'Postscript' => 'Postcript',
+ 'Price' => 'Prix',
+ 'Print' => 'Imprimer',
+ 'Printed' => 'Imprimé',
+ 'Project' => 'Projet',
+ 'Project not on file!' => 'Projet absent du fichier!',
+ 'Purchase Order' => 'Commande d\'achat',
+ 'Qty' => 'Qté',
+ 'Quotation' => 'Devis',
+ 'Quotation Date missing!' => 'Date de devis manqante!',
+ 'Quotation Number missing!' => 'Numéro de devis manquant!',
+ 'Recd' => 'Reçu',
+ 'Record in' => 'Enregistrer dans',
+ 'Recurring Transaction' => 'Transaction périodique',
+ 'Reference' => 'Référence',
+ 'Remaining' => 'Restant',
+ 'Repeat' => 'Répéter',
+ 'Required by' => 'Requis pour',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Commande de vente',
+ 'Save Schedule' => 'Enregistrer transaction planifiée',
+ 'Schedule' => 'Planification',
+ 'Scheduled' => 'Planifié',
+ 'Screen' => 'Écran',
+ 'Select from one of the names below' => 'Sélectionner un des noms ci-dessous',
+ 'Select from one of the projects below' => 'Sélectionner un des projets ci-dessous',
+ 'Select items' => 'Sélectionner éléments',
+ 'Select txt, postscript or PDF!' => 'Sélectionner Txt, Postscript ou PDF!',
+ 'Sep' => 'Sept.',
+ 'September' => 'Septembre',
+ 'Serial No.' => 'N° série',
+ 'Service' => 'Prestation de service',
+ 'Ship' => 'Expédier',
+ 'Ship to' => 'Expédier à',
+ 'Shipping Address' => 'Adresse d\'envoi',
+ 'Source' => 'Source',
+ 'Startdate' => 'Date de début',
+ 'State/Province' => 'Région/État',
+ 'Subject' => 'Objet',
+ 'Subtotal' => 'Sous total',
+ 'Tax Included' => 'Taxe incluse',
+ 'Text' => 'Texte',
+ 'To' => 'À',
+ 'Total' => 'Total',
+ 'Translation not on file!' => 'Pas de traduction dans le fichier',
+ 'Unit' => 'Unité',
+ 'Update' => 'Mettre à jour',
+ 'Vendor' => 'Fournisseur',
+ 'Vendor Number' => 'Numéro de fournisseur',
+ 'Vendor missing!' => 'Fournisseur manquant!',
+ 'Vendor not on file!' => 'Fournisseur absent du fichier!',
+ 'Warning!' => 'Attention!',
+ 'What type of item is this?' => 'De quel type est cet objet?',
+ 'Work Order' => 'Fiche de traitement',
+ 'Yes' => 'Oui',
+ 'You are posting an existing transaction!' => 'Vous enregistrez une transaction existante!',
+ 'You are printing and posting an existing transaction!' => 'Vous imprimez et enregistrez une transaction existante!',
+ 'You are printing and saving an existing order' => 'Vous imprimez et enregistrez une commande existante!',
+ 'You are printing and saving an existing quotation' => 'Vous imprimez et enregistrez un devis existant!',
+ 'You are saving an existing order' => 'Vous enregistrez une commande existante',
+ 'You are saving an existing quotation' => 'Vous enregistrez un devis existant',
+ 'Zip/Postal Code' => 'Code postal',
+ 'ea' => 'ch',
+ 'for' => 'pour',
+ 'posted!' => 'enregistré!',
+ 'sent' => 'envoyé',
+ 'time(s)' => 'temps',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'continuer' => 'continue',
+ 'supprimer' => 'delete',
+ 'effacer_transaction_planifiée' => 'delete_schedule',
+ 'enregistrer' => 'post',
+ 'enregistrer_comme_nouveau' => 'post_as_new',
+ 'commande_d\'achat' => 'purchase_order',
+ 'enregistrer_transaction_planifiée' => 'save_schedule',
+ 'planification' => 'schedule',
+ 'mettre_à_jour' => 'update',
+ 'oui' => 'yes',
+};
+
+1;
+
diff --git a/locale/fr/is b/locale/fr/is
new file mode 100755
index 00000000..195f9503
--- /dev/null
+++ b/locale/fr/is
@@ -0,0 +1,260 @@
+$self{texts} = {
+ 'Account' => 'Compte',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Add Purchase Order' => 'Établir commande d\'achat',
+ 'Add Quotation' => 'Établir devis',
+ 'Add Request for Quotation' => 'Établir demande de devis',
+ 'Add Sales Invoice' => 'Établir facture de vente',
+ 'Add Sales Order' => 'Établir commande de vente',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Montant',
+ 'Apr' => 'Avril',
+ 'April' => 'Avril',
+ 'Are you sure you want to delete Invoice Number' => 'Êtes-vous sûr de vouloir supprimer la facture n°',
+ 'Attachment' => 'Pièce jointe',
+ 'Aug' => 'Août',
+ 'August' => 'Août',
+ 'Bcc' => 'Copie cachée',
+ 'Billing Address' => 'Adresse de facturation',
+ 'Bin' => 'Lieu stockage',
+ 'Bin List' => 'Liste des emplacements',
+ 'Business' => 'Type d\'affaire',
+ 'Cannot delete invoice!' => 'Impossible de supprimer la facture!',
+ 'Cannot post invoice for a closed period!' => 'Impossible d\'enregistrer la facture sur un exercice clos!',
+ 'Cannot post invoice!' => 'Impossible d\'enregistrer la facture!',
+ 'Cannot post payment for a closed period!' => 'Impossible d\'enregistrer le paiement sur un exercice clos!',
+ 'Cc' => 'Copie',
+ 'City' => 'Ville',
+ 'Company Name' => 'Nom de société',
+ 'Confirm!' => 'Confirmer!',
+ 'Contact' => 'Contact',
+ 'Continue' => 'Continuer',
+ 'Copies' => 'Copies',
+ 'Country' => 'Pays',
+ 'Credit Limit' => 'Encours autorisé',
+ 'Currency' => 'Devise',
+ 'Customer' => 'Client',
+ 'Customer Number' => 'Numéro de client',
+ 'Customer missing!' => 'Client manquant!',
+ 'Customer not on file!' => 'Client absent du fichier!',
+ 'Date' => 'Date',
+ 'Dec' => 'Déc.',
+ 'December' => 'Décembre',
+ 'Delete' => 'Supprimer',
+ 'Delete Schedule' => 'Effacer transaction planifiée',
+ 'Delivery Date' => 'Date de livraison',
+ 'Department' => 'Service',
+ 'Description' => 'Description',
+ 'Due Date' => 'Échéance',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Adresse e-mail manquante!',
+ 'E-mail message' => 'Message e-mail',
+ 'E-mailed' => 'E-mail envoyé',
+ 'Edit Sales Invoice' => 'Modifier facture de vente',
+ 'Every' => 'Chaque',
+ 'Exch' => 'Change',
+ 'Exchange Rate' => 'Taux de change',
+ 'Exchange rate for payment missing!' => 'Taux de change manquant pour le paiement!',
+ 'Exchange rate missing!' => 'Taux de change manquant!',
+ 'Extended' => 'Prix total',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Fév.',
+ 'February' => 'Février',
+ 'For' => 'Pour',
+ 'Group' => 'Groupe',
+ 'In-line' => 'En ligne',
+ 'Include Payment' => 'Inclure paiement',
+ 'Internal Notes' => 'Notes internes',
+ 'Invoice' => 'Facture',
+ 'Invoice Date' => 'Date de facturation',
+ 'Invoice Date missing!' => 'Date de facture manquante!',
+ 'Invoice Number' => 'Numéro de facture',
+ 'Invoice Number missing!' => 'Numéro de facture manquant!',
+ 'Invoice deleted!' => 'Facture supprimée!',
+ 'Item not on file!' => 'Objet non-listé!',
+ 'Jan' => 'Jan.',
+ 'January' => 'Janvier',
+ 'Jul' => 'Juill.',
+ 'July' => 'Juillet',
+ 'Jun' => 'Juin',
+ 'June' => 'Juin',
+ 'Mar' => 'Mars',
+ 'March' => 'Mars',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Mémo',
+ 'Message' => 'Message',
+ 'Next Date' => 'Prochaine date',
+ 'Notes' => 'Notes',
+ 'Nov' => 'Nov.',
+ 'November' => 'Novembre',
+ 'Number' => 'Numéro',
+ 'Number missing in Row' => 'Numéro manquant dans ligne',
+ 'Oct' => 'Oct.',
+ 'October' => 'Octobre',
+ 'Order Date missing!' => 'Date de commande manquante!',
+ 'Order Number' => 'Numéro de commande',
+ 'Order Number missing!' => 'Numéro de commande manquant!',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Numéro de référence',
+ 'Packing List' => 'Liste d\'envoi',
+ 'Packing List Date missing!' => 'La liste d\'envoi n\'a pas de date!',
+ 'Packing List Number missing!' => 'Le numéro de la liste d\'envoi est manquant!',
+ 'Part' => 'Marchandise',
+ 'Payment date missing!' => 'Date de paiement manquante!',
+ 'Payments' => 'Paiements',
+ 'Phone' => 'Tél.',
+ 'Pick List' => 'Liste de sélection',
+ 'Post' => 'Enregistrer',
+ 'Post as new' => 'Enregistrer comme nouveau',
+ 'Postscript' => 'Postcript',
+ 'Price' => 'Prix',
+ 'Print' => 'Imprimer',
+ 'Print and Post' => 'Imprimer et imputer',
+ 'Printed' => 'Imprimé',
+ 'Project' => 'Projet',
+ 'Project not on file!' => 'Projet absent du fichier!',
+ 'Purchase Order' => 'Commande d\'achat',
+ 'Qty' => 'Qté',
+ 'Quotation' => 'Devis',
+ 'Quotation Date missing!' => 'Date de devis manqante!',
+ 'Quotation Number missing!' => 'Numéro de devis manquant!',
+ 'Recd' => 'Reçu',
+ 'Record in' => 'Enregistrer dans',
+ 'Recurring Transaction' => 'Transaction périodique',
+ 'Reference' => 'Référence',
+ 'Remaining' => 'Restant',
+ 'Repeat' => 'Répéter',
+ 'Required by' => 'Requis pour',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Commande de vente',
+ 'Salesperson' => 'Vendeur',
+ 'Save Schedule' => 'Enregistrer transaction planifiée',
+ 'Schedule' => 'Planification',
+ 'Scheduled' => 'Planifié',
+ 'Screen' => 'Écran',
+ 'Select from one of the names below' => 'Sélectionner un des noms ci-dessous',
+ 'Select from one of the projects below' => 'Sélectionner un des projets ci-dessous',
+ 'Select items' => 'Sélectionner éléments',
+ 'Select postscript or PDF!' => 'Sélectionner Postscript ou PDF!',
+ 'Select txt, postscript or PDF!' => 'Sélectionner Txt, Postscript ou PDF!',
+ 'Sep' => 'Sept.',
+ 'September' => 'Septembre',
+ 'Serial No.' => 'N° série',
+ 'Service' => 'Prestation de service',
+ 'Ship' => 'Expédier',
+ 'Ship to' => 'Expédier à',
+ 'Ship via' => 'Expédier via',
+ 'Shipping Address' => 'Adresse d\'envoi',
+ 'Shipping Point' => 'Expéditeur',
+ 'Source' => 'Source',
+ 'Startdate' => 'Date de début',
+ 'State/Province' => 'Région/État',
+ 'Subject' => 'Objet',
+ 'Subtotal' => 'Sous total',
+ 'Tax Included' => 'Taxe incluse',
+ 'Text' => 'Texte',
+ 'To' => 'À',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Escompte commercial',
+ 'Translation not on file!' => 'Pas de traduction dans le fichier',
+ 'Unit' => 'Unité',
+ 'Update' => 'Mettre à jour',
+ 'Vendor Number' => 'Numéro de fournisseur',
+ 'Vendor not on file!' => 'Fournisseur absent du fichier!',
+ 'Warning!' => 'Attention!',
+ 'What type of item is this?' => 'De quel type est cet objet?',
+ 'Work Order' => 'Fiche de traitement',
+ 'Yes' => 'Oui',
+ 'You are posting an existing transaction!' => 'Vous enregistrez une transaction existante!',
+ 'You are printing and posting an existing transaction!' => 'Vous imprimez et enregistrez une transaction existante!',
+ 'You are printing and saving an existing order' => 'Vous imprimez et enregistrez une commande existante!',
+ 'You are printing and saving an existing quotation' => 'Vous imprimez et enregistrez un devis existant!',
+ 'You are saving an existing order' => 'Vous enregistrez une commande existante',
+ 'You are saving an existing quotation' => 'Vous enregistrez un devis existant',
+ 'Zip/Postal Code' => 'Code postal',
+ 'ea' => 'ch',
+ 'for' => 'pour',
+ 'posted!' => 'enregistré!',
+ 'sent' => 'envoyé',
+ 'time(s)' => 'temps',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'continuer' => 'continue',
+ 'supprimer' => 'delete',
+ 'effacer_transaction_planifiée' => 'delete_schedule',
+ 'e_mail' => 'e_mail',
+ 'enregistrer' => 'post',
+ 'enregistrer_comme_nouveau' => 'post_as_new',
+ 'imprimer' => 'print',
+ 'imprimer_et_imputer' => 'print_and_post',
+ 'commande_de_vente' => 'sales_order',
+ 'enregistrer_transaction_planifiée' => 'save_schedule',
+ 'planification' => 'schedule',
+ 'expédier_à' => 'ship_to',
+ 'mettre_à_jour' => 'update',
+ 'oui' => 'yes',
+};
+
+1;
+
diff --git a/locale/fr/jc b/locale/fr/jc
new file mode 100755
index 00000000..64c073a3
--- /dev/null
+++ b/locale/fr/jc
@@ -0,0 +1,92 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Amount' => 'Montant',
+ 'Closed' => 'Clôturé',
+ 'Confirm!' => 'Confirmer!',
+ 'Continue' => 'Continuer',
+ 'Cost' => 'Coût',
+ 'Current' => 'En cours',
+ 'Date' => 'Date',
+ 'Date missing!' => 'Date manquante!',
+ 'Delete' => 'Supprimer',
+ 'Description' => 'Description',
+ 'Employee' => 'Employé',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Inclure dans l\'état',
+ 'Month' => 'Mois',
+ 'Notes' => 'Notes',
+ 'Open' => 'Ouvert',
+ 'PDF' => 'PDF',
+ 'Period' => 'Période',
+ 'Postscript' => 'Postcript',
+ 'Print' => 'Imprimer',
+ 'Print and Save' => 'Imprimer et sauver',
+ 'Printed' => 'Imprimé',
+ 'Project Number' => 'Numéro de projet',
+ 'Project Number missing!' => 'Numéro du projet manquant!',
+ 'Qty' => 'Qté',
+ 'Quarter' => 'Trimestre',
+ 'Save' => 'Enregistrer',
+ 'Save as new' => 'Enregistrer comme nouveau',
+ 'Screen' => 'Écran',
+ 'Select postscript or PDF!' => 'Sélectionner Postscript ou PDF!',
+ 'Startdate' => 'Date de début',
+ 'Subtotal' => 'Sous total',
+ 'To' => 'À',
+ 'Total' => 'Total',
+ 'Update' => 'Mettre à jour',
+ 'Warning!' => 'Attention!',
+ 'Year' => 'Année',
+ 'Yes' => 'Oui',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'continuer' => 'continue',
+ 'supprimer' => 'delete',
+ 'imprimer' => 'print',
+ 'imprimer_et_sauver' => 'print_and_save',
+ 'enregistrer' => 'save',
+ 'enregistrer_comme_nouveau' => 'save_as_new',
+ 'mettre_à_jour' => 'update',
+ 'oui' => 'yes',
+};
+
+1;
+
diff --git a/locale/fr/locales.pl b/locale/fr/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/fr/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/fr/login b/locale/fr/login
new file mode 100755
index 00000000..7c47c681
--- /dev/null
+++ b/locale/fr/login
@@ -0,0 +1,24 @@
+$self{texts} = {
+ 'Company' => 'Société',
+ 'Continue' => 'Continuer',
+ 'Dataset is newer than version!' => 'Fichier de données plus récent que le logiciel!',
+ 'Incorrect Dataset version!' => 'Fichier de données incorrect!',
+ 'Login' => 'Login',
+ 'Name' => 'Nom',
+ 'Password' => 'Mot de passe',
+ 'Upgrading to Version' => 'Mise à jour à la version',
+ 'Version' => 'Version',
+ 'You did not enter a name!' => 'Vous n\'avez pas saisi de nom!',
+ 'done' => 'fait',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ 'login' => 'login',
+};
+
+1;
+
diff --git a/locale/fr/menu b/locale/fr/menu
new file mode 100755
index 00000000..82209eef
--- /dev/null
+++ b/locale/fr/menu
@@ -0,0 +1,136 @@
+$self{texts} = {
+ 'AP' => 'Dépenses',
+ 'AP Aging' => 'Dépenses exigibles',
+ 'AP Transaction' => 'Écriture dépenses',
+ 'AR' => 'Recettes',
+ 'AR Aging' => 'Recettes exigibles',
+ 'AR Transaction' => 'Écriture recettes',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Add Account' => 'Ajouter compte',
+ 'Add Assembly' => 'Ajouter produit',
+ 'Add Business' => 'Ajouter type d\'affaire',
+ 'Add Customer' => 'Ajouter client',
+ 'Add Department' => 'Ajouter service',
+ 'Add Employee' => 'Ajouter employé',
+ 'Add GIFI' => 'Ajouter code d\'identification comptable ou fiscale',
+ 'Add Group' => 'Ajouter groupe',
+ 'Add Labor/Overhead' => 'Ajouter coût de production',
+ 'Add Language' => 'Ajouter langue',
+ 'Add Part' => 'Ajouter marchandise',
+ 'Add Pricegroup' => 'Ajouter groupe de prix',
+ 'Add Project' => 'Ajouter projet',
+ 'Add SIC' => 'Ajouter code secteur économique',
+ 'Add Service' => 'Ajouter prestation',
+ 'Add Transaction' => 'Saisie d\'écriture',
+ 'Add Vendor' => 'Ajouter fournisseur',
+ 'Add Warehouse' => 'Ajouter entrepôt',
+ 'All Items' => 'Tout objet',
+ 'Assemblies' => 'Produits finis',
+ 'Audit Control' => 'Clôture périodique',
+ 'Backup' => 'Sauvegarder',
+ 'Balance Sheet' => 'Bilan',
+ 'Bin List' => 'Liste des emplacements',
+ 'Bin Lists' => 'Liste des emplacements',
+ 'Cash' => 'Financier',
+ 'Chart of Accounts' => 'Plan Comptable',
+ 'Check' => 'Chèque',
+ 'Components' => 'Composants',
+ 'Customers' => 'Clients',
+ 'Defaults' => 'Valeurs par défaut',
+ 'Departments' => 'Services',
+ 'Description' => 'Description',
+ 'Employees' => 'Employés',
+ 'General Ledger' => 'Grand-livre',
+ 'Goods & Services' => 'Articles & Prestations',
+ 'Groups' => 'Groupes',
+ 'HR' => 'Ressources humaines',
+ 'HTML Templates' => 'Squelettes HTML',
+ 'History' => 'Historique',
+ 'Income Statement' => 'Compte de résultat',
+ 'Invoice' => 'Facture',
+ 'LaTeX Templates' => 'Squelettes LaTeX',
+ 'Labor/Overhead' => 'Coût de production',
+ 'Language' => 'Langue',
+ 'List Accounts' => 'Liste des comptes',
+ 'List Businesses' => 'Liste types d\'affaire',
+ 'List Departments' => 'Liste des services',
+ 'List GIFI' => 'Afficher la liste des codes d\'identification comptable ou fiscale',
+ 'List Languages' => 'Liste des langues',
+ 'List Projects' => 'Liste des projets',
+ 'List SIC' => 'Liste des codes secteur économique',
+ 'List Warehouses' => 'Liste des entrepôts',
+ 'Logout' => 'Déconnexion',
+ 'New Window' => 'Nouvelle fenêtre',
+ 'Non-taxable' => 'Non imposable',
+ 'Open' => 'Ouvert',
+ 'Order Entry' => 'Commandes',
+ 'Outstanding' => 'En retard',
+ 'POS' => 'Point de vente',
+ 'POS Invoice' => 'Ticket de caisse',
+ 'Packing List' => 'Liste d\'envoi',
+ 'Packing Lists' => 'Listes d\'envoi',
+ 'Parts' => 'Marchandises',
+ 'Payment' => 'Paiement',
+ 'Payments' => 'Paiements',
+ 'Pick List' => 'Liste de sélection',
+ 'Pick Lists' => 'Liste de sélection',
+ 'Preferences' => 'Préférences',
+ 'Pricegroups' => 'Groupes de prix',
+ 'Print' => 'Imprimer',
+ 'Projects' => 'Projets',
+ 'Purchase Order' => 'Commande d\'achat',
+ 'Purchase Orders' => 'Commandes d\'achat',
+ 'Quotation' => 'Devis',
+ 'Quotations' => 'Devis',
+ 'RFQ' => 'Demande de devis',
+ 'RFQs' => 'Demandes de devis',
+ 'Receipt' => 'Reçu',
+ 'Receipts' => 'Reçus',
+ 'Receive' => 'Réception',
+ 'Reconciliation' => 'Rapprochement',
+ 'Recurring Transactions' => 'Transactions périodiques',
+ 'Reports' => 'Rapports',
+ 'SIC' => 'Code secteur économique',
+ 'Sale' => 'Vente',
+ 'Sales Invoice' => 'Facture de vente',
+ 'Sales Invoices' => 'Factures de vente',
+ 'Sales Order' => 'Commande de vente',
+ 'Sales Orders' => 'Commandes de vente',
+ 'Save to File' => 'Enregistrer dans un fichier',
+ 'Search' => 'Recherche',
+ 'Send by E-Mail' => 'Envoyer par e-mail',
+ 'Services' => 'Prestations de services',
+ 'Ship' => 'Expédier',
+ 'Shipping' => 'Expédition',
+ 'Statement' => 'Relevé',
+ 'Stock Assembly' => 'Stock de produits',
+ 'Stylesheet' => 'Feuille de style',
+ 'System' => 'Système',
+ 'Tax collected' => 'Taxe collectée',
+ 'Tax paid' => 'Taxe payée',
+ 'Text Templates' => 'Squelettes texte',
+ 'Transactions' => 'Mouvements',
+ 'Transfer' => 'Transfert',
+ 'Transfer Inventory' => 'Transfert inventaire',
+ 'Translations' => 'Traductions',
+ 'Trial Balance' => 'Balance Globale',
+ 'Type of Business' => 'Type d\'affaire',
+ 'Vendor Invoice' => 'Facture d\'achat',
+ 'Vendors' => 'Fournisseurs',
+ 'Version' => 'Version',
+ 'Warehouses' => 'Entrepôts',
+ 'Work Order' => 'Fiche de traitement',
+ 'Work Orders' => 'Fiche de traitement',
+ 'Yearend' => 'Écriture de fin d\'exercice',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/fr/oe b/locale/fr/oe
new file mode 100755
index 00000000..1bd84467
--- /dev/null
+++ b/locale/fr/oe
@@ -0,0 +1,346 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Add Exchange Rate' => 'Ajouter taux de change',
+ 'Add Purchase Order' => 'Établir commande d\'achat',
+ 'Add Quotation' => 'Établir devis',
+ 'Add Request for Quotation' => 'Établir demande de devis',
+ 'Add Sales Invoice' => 'Établir facture de vente',
+ 'Add Sales Order' => 'Établir commande de vente',
+ 'Add Vendor Invoice' => 'Établir facture d\'achat',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Montant',
+ 'Apr' => 'Avril',
+ 'April' => 'Avril',
+ 'Are you sure you want to delete Order Number' => 'Êtes vous sûr de vouloir supprimer la commande n°',
+ 'Are you sure you want to delete Quotation Number' => 'Êtes vous sûr de vouloir supprimer le devis n°',
+ 'Attachment' => 'Pièce jointe',
+ 'Aug' => 'Août',
+ 'August' => 'Août',
+ 'Bcc' => 'Copie cachée',
+ 'Billing Address' => 'Adresse de facturation',
+ 'Bin' => 'Lieu stockage',
+ 'Bin List' => 'Liste des emplacements',
+ 'Business' => 'Type d\'affaire',
+ 'C' => 'C',
+ 'Cannot delete order!' => 'Impossible de supprimer la commande!',
+ 'Cannot delete quotation!' => 'Impossible de supprimer le devis!',
+ 'Cannot save order!' => 'Impossible d\'enregistrer la commande!',
+ 'Cannot save quotation!' => 'Impossible d\'enregistrer le devis!',
+ 'Cc' => 'Copie',
+ 'City' => 'Ville',
+ 'Closed' => 'Clôturé',
+ 'Company Name' => 'Nom de société',
+ 'Confirm!' => 'Confirmer!',
+ 'Contact' => 'Contact',
+ 'Continue' => 'Continuer',
+ 'Copies' => 'Copies',
+ 'Cost' => 'Coût',
+ 'Could not save!' => 'Enregistrement impossible!',
+ 'Could not transfer Inventory!' => 'Impossible de transférer l\'inventaire!',
+ 'Country' => 'Pays',
+ 'Credit Limit' => 'Encours autorisé',
+ 'Curr' => 'Dev.',
+ 'Currency' => 'Devise',
+ 'Current' => 'En cours',
+ 'Customer' => 'Client',
+ 'Customer Number' => 'Numéro de client',
+ 'Customer missing!' => 'Client manquant!',
+ 'Customer not on file!' => 'Client absent du fichier!',
+ 'Date' => 'Date',
+ 'Date Received' => 'Date de réception',
+ 'Date received missing!' => 'Date de réception manquante!',
+ 'Dec' => 'Déc.',
+ 'December' => 'Décembre',
+ 'Delete' => 'Supprimer',
+ 'Delete Schedule' => 'Effacer transaction planifiée',
+ 'Delivery Date' => 'Date de livraison',
+ 'Department' => 'Service',
+ 'Description' => 'Description',
+ 'Done' => 'Fait!',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Adresse e-mail manquante!',
+ 'E-mail message' => 'Message e-mail',
+ 'E-mailed' => 'E-mail envoyé',
+ 'Edit Purchase Order' => 'Modifier commande d\'achat',
+ 'Edit Quotation' => 'Modifier devis',
+ 'Edit Request for Quotation' => 'Modifier demande de devis',
+ 'Edit Sales Order' => 'Modifier commande de vente',
+ 'Employee' => 'Employé',
+ 'Every' => 'Chaque',
+ 'Exchange Rate' => 'Taux de change',
+ 'Exchange rate missing!' => 'Taux de change manquant!',
+ 'Extended' => 'Prix total',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Fév.',
+ 'February' => 'Février',
+ 'For' => 'Pour',
+ 'From' => 'De',
+ 'Group' => 'Groupe',
+ 'ID' => 'ID',
+ 'In-line' => 'En ligne',
+ 'Include Payment' => 'Inclure paiement',
+ 'Include in Report' => 'Inclure dans l\'état',
+ 'Internal Notes' => 'Notes internes',
+ 'Inventory saved!' => 'Inventaire enregistré!',
+ 'Inventory transferred!' => 'Inventaire transféré!',
+ 'Invoice' => 'Facture',
+ 'Invoice Date missing!' => 'Date de facture manquante!',
+ 'Invoice Number missing!' => 'Numéro de facture manquant!',
+ 'Item not on file!' => 'Objet non-listé!',
+ 'Jan' => 'Jan.',
+ 'January' => 'Janvier',
+ 'Jul' => 'Juill.',
+ 'July' => 'Juillet',
+ 'Jun' => 'Juin',
+ 'June' => 'Juin',
+ 'Manager' => 'Gestionnaire',
+ 'Mar' => 'Mars',
+ 'March' => 'Mars',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Message' => 'Message',
+ 'Month' => 'Mois',
+ 'Next Date' => 'Prochaine date',
+ 'No.' => 'N°',
+ 'Notes' => 'Notes',
+ 'Nothing entered!' => 'Rien n\'a été saisi!',
+ 'Nothing selected!' => 'Pas de sélection!',
+ 'Nothing to transfer!' => 'Rien à transférer!',
+ 'Nov' => 'Nov.',
+ 'November' => 'Novembre',
+ 'Number' => 'Numéro',
+ 'Number missing in Row' => 'Numéro manquant dans ligne',
+ 'O' => 'O',
+ 'Oct' => 'Oct.',
+ 'October' => 'Octobre',
+ 'Open' => 'Ouvert',
+ 'Order' => 'Commande',
+ 'Order Date' => 'Date de commande',
+ 'Order Date missing!' => 'Date de commande manquante!',
+ 'Order Number' => 'Numéro de commande',
+ 'Order Number missing!' => 'Numéro de commande manquant!',
+ 'Order deleted!' => 'Commande supprimée!',
+ 'Order saved!' => 'Commande enregistrée!',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Numéro de référence',
+ 'Packing List' => 'Liste d\'envoi',
+ 'Packing List Date missing!' => 'La liste d\'envoi n\'a pas de date!',
+ 'Packing List Number missing!' => 'Le numéro de la liste d\'envoi est manquant!',
+ 'Part' => 'Marchandise',
+ 'Period' => 'Période',
+ 'Phone' => 'Tél.',
+ 'Pick List' => 'Liste de sélection',
+ 'Postscript' => 'Postcript',
+ 'Price' => 'Prix',
+ 'Print' => 'Imprimer',
+ 'Print and Save' => 'Imprimer et sauver',
+ 'Printed' => 'Imprimé',
+ 'Project' => 'Projet',
+ 'Project not on file!' => 'Projet absent du fichier!',
+ 'Purchase Order' => 'Commande d\'achat',
+ 'Purchase Orders' => 'Commandes d\'achat',
+ 'Qty' => 'Qté',
+ 'Quarter' => 'Trimestre',
+ 'Quotation' => 'Devis',
+ 'Quotation ' => 'Devis ',
+ 'Quotation Date' => 'Date de devis',
+ 'Quotation Date missing!' => 'Date de devis manqante!',
+ 'Quotation Number' => 'Numéro de devis',
+ 'Quotation Number missing!' => 'Numéro de devis manquant!',
+ 'Quotation deleted!' => 'Devis effacé!',
+ 'Quotations' => 'Devis',
+ 'RFQ' => 'Demande de devis',
+ 'RFQ ' => 'Demande de devis ',
+ 'RFQ Number' => 'Numéro de demande de devis',
+ 'Recd' => 'Reçu',
+ 'Receive Merchandise' => 'Réception marchandise',
+ 'Recurring Transaction' => 'Transaction périodique',
+ 'Reference' => 'Référence',
+ 'Remaining' => 'Restant',
+ 'Repeat' => 'Répéter',
+ 'Request for Quotation' => 'Demande de devis',
+ 'Request for Quotations' => 'Demandes de devis',
+ 'Required by' => 'Requis pour',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Facture de vente',
+ 'Sales Order' => 'Commande de vente',
+ 'Sales Orders' => 'Commandes de vente',
+ 'Salesperson' => 'Vendeur',
+ 'Save' => 'Enregistrer',
+ 'Save Schedule' => 'Enregistrer transaction planifiée',
+ 'Save as new' => 'Enregistrer comme nouveau',
+ 'Schedule' => 'Planification',
+ 'Scheduled' => 'Planifié',
+ 'Screen' => 'Écran',
+ 'Select from one of the names below' => 'Sélectionner un des noms ci-dessous',
+ 'Select from one of the projects below' => 'Sélectionner un des projets ci-dessous',
+ 'Select items' => 'Sélectionner éléments',
+ 'Select postscript or PDF!' => 'Sélectionner Postscript ou PDF!',
+ 'Select txt, postscript or PDF!' => 'Sélectionner Txt, Postscript ou PDF!',
+ 'Sep' => 'Sept.',
+ 'September' => 'Septembre',
+ 'Serial No.' => 'N° série',
+ 'Service' => 'Prestation de service',
+ 'Ship' => 'Expédier',
+ 'Ship Merchandise' => 'Expédier marchandise',
+ 'Ship to' => 'Expédier à',
+ 'Ship via' => 'Expédier via',
+ 'Shipping Address' => 'Adresse d\'envoi',
+ 'Shipping Date' => 'Date d\'expédition',
+ 'Shipping Date missing!' => 'Date d\'expédition manquante!',
+ 'Shipping Point' => 'Expéditeur',
+ 'Startdate' => 'Date de début',
+ 'State/Province' => 'Région/État',
+ 'Subject' => 'Objet',
+ 'Subtotal' => 'Sous total',
+ 'Tax' => 'Taxe',
+ 'Tax Included' => 'Taxe incluse',
+ 'Terms' => 'Crédit limité à',
+ 'Text' => 'Texte',
+ 'To' => 'À',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Escompte commercial',
+ 'Transfer' => 'Transfert',
+ 'Transfer Inventory' => 'Transfert inventaire',
+ 'Transfer to' => 'Transférer vers',
+ 'Translation not on file!' => 'Pas de traduction dans le fichier',
+ 'Unit' => 'Unité',
+ 'Update' => 'Mettre à jour',
+ 'Valid until' => 'Valable jusqu\'au',
+ 'Vendor' => 'Fournisseur',
+ 'Vendor Invoice' => 'Facture d\'achat',
+ 'Vendor Number' => 'Numéro de fournisseur',
+ 'Vendor missing!' => 'Fournisseur manquant!',
+ 'Vendor not on file!' => 'Fournisseur absent du fichier!',
+ 'Warehouse' => 'Entrepôt',
+ 'Warning!' => 'Attention!',
+ 'What type of item is this?' => 'De quel type est cet objet?',
+ 'Work Order' => 'Fiche de traitement',
+ 'Year' => 'Année',
+ 'Yes' => 'Oui',
+ 'You are posting an existing transaction!' => 'Vous enregistrez une transaction existante!',
+ 'You are printing and posting an existing transaction!' => 'Vous imprimez et enregistrez une transaction existante!',
+ 'You are printing and saving an existing order' => 'Vous imprimez et enregistrez une commande existante!',
+ 'You are printing and saving an existing quotation' => 'Vous imprimez et enregistrez un devis existant!',
+ 'You are saving an existing order' => 'Vous enregistrez une commande existante',
+ 'You are saving an existing quotation' => 'Vous enregistrez un devis existant',
+ 'Zip/Postal Code' => 'Code postal',
+ 'days' => 'jours',
+ 'ea' => 'ch',
+ 'for' => 'pour',
+ 'sent' => 'envoyé',
+ 'time(s)' => 'temps',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'continuer' => 'continue',
+ 'supprimer' => 'delete',
+ 'effacer_transaction_planifiée' => 'delete_schedule',
+ 'fait!' => 'done',
+ 'e_mail' => 'e_mail',
+ 'imprimer' => 'print',
+ 'imprimer_et_sauver' => 'print_and_save',
+ 'commande_d\'achat' => 'purchase_order',
+ 'devis' => 'quotation',
+ 'devis_' => 'quotation_',
+ 'demande_de_devis' => 'rfq',
+ 'demande_de_devis_' => 'rfq_',
+ 'facture_de_vente' => 'sales_invoice',
+ 'commande_de_vente' => 'sales_order',
+ 'enregistrer' => 'save',
+ 'enregistrer_transaction_planifiée' => 'save_schedule',
+ 'enregistrer_comme_nouveau' => 'save_as_new',
+ 'planification' => 'schedule',
+ 'expédier_à' => 'ship_to',
+ 'transfert' => 'transfer',
+ 'mettre_à_jour' => 'update',
+ 'facture_d\'achat' => 'vendor_invoice',
+ 'oui' => 'yes',
+};
+
+1;
+
diff --git a/locale/fr/pe b/locale/fr/pe
new file mode 100755
index 00000000..c7b3ff07
--- /dev/null
+++ b/locale/fr/pe
@@ -0,0 +1,141 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Active' => 'Actif',
+ 'Add' => 'Ajouter',
+ 'Add Group' => 'Ajouter groupe',
+ 'Add Pricegroup' => 'Ajouter groupe de prix',
+ 'Add Project' => 'Ajouter projet',
+ 'Address' => 'Adresse',
+ 'All' => 'Tous',
+ 'Amount' => 'Montant',
+ 'Assembly' => 'Produit fini',
+ 'Bin' => 'Lieu stockage',
+ 'Continue' => 'Continuer',
+ 'Current' => 'En cours',
+ 'Customer' => 'Client',
+ 'Customer missing!' => 'Client manquant!',
+ 'Customer not on file!' => 'Client absent du fichier!',
+ 'Date' => 'Date',
+ 'Delete' => 'Supprimer',
+ 'Description' => 'Description',
+ 'Description Translations' => 'Description traductions',
+ 'Detail' => 'Détail',
+ 'Edit Description Translations' => 'Modifier traductions description',
+ 'Edit Group' => 'Modifier groupe',
+ 'Edit Pricegroup' => 'Modifier groupe de prix',
+ 'Edit Project' => 'Modifier projet',
+ 'Employee' => 'Employé',
+ 'Enddate' => 'Date de fin',
+ 'From' => 'De',
+ 'Group' => 'Groupe',
+ 'Group Translations' => 'Grouper traductions',
+ 'Group deleted!' => 'Groupe effacé!',
+ 'Group missing!' => 'Groupe absent!',
+ 'Group saved!' => 'Groupe enregistré!',
+ 'Groups' => 'Groupes',
+ 'Income' => 'Recettes',
+ 'Language' => 'Langue',
+ 'Languages not defined!' => 'Langues non définis!',
+ 'Link Accounts' => 'Lier comptes',
+ 'List Price' => 'Prix de revient',
+ 'Month' => 'Mois',
+ 'Notes' => 'Notes',
+ 'Nothing selected!' => 'Pas de sélection!',
+ 'Number' => 'Numéro',
+ 'Orphaned' => 'Orphelin',
+ 'Period' => 'Période',
+ 'Pricegroup' => 'Groupe de prix',
+ 'Pricegroup deleted!' => 'Groupe de prix supprimé!',
+ 'Pricegroup missing!' => 'Groupe de prix manquant!',
+ 'Pricegroup saved!' => 'Groupe de prix enregistré!',
+ 'Pricegroups' => 'Groupes de prix',
+ 'Project' => 'Projet',
+ 'Project Description Translations' => 'Traductions description de projet',
+ 'Project Number' => 'Numéro de projet',
+ 'Project deleted!' => 'Projet supprimé!',
+ 'Project saved!' => 'Projet enregistré!',
+ 'Projects' => 'Projets',
+ 'Qty' => 'Qté',
+ 'Quarter' => 'Trimestre',
+ 'Save' => 'Enregistrer',
+ 'Select from one of the names below' => 'Sélectionner un des noms ci-dessous',
+ 'Sell Price' => 'Prix de vente',
+ 'Startdate' => 'Date de début',
+ 'Summary' => 'Résumé',
+ 'Tax' => 'Taxe',
+ 'To' => 'À',
+ 'Translation' => 'Traduction',
+ 'Translation deleted!' => 'Traduction supprimée!',
+ 'Translations saved!' => 'Traductions enregistrées',
+ 'Unit' => 'Unité',
+ 'Update' => 'Mettre à jour',
+ 'Updated' => 'Mis à jour',
+ 'Vendor' => 'Fournisseur',
+ 'Vendor not on file!' => 'Fournisseur absent du fichier!',
+ 'Weight' => 'Poids',
+ 'Year' => 'Année',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'ajouter_groupe' => 'add_group',
+ 'ajouter_groupe_de_prix' => 'add_pricegroup',
+ 'ajouter_projet' => 'add_project',
+ 'continuer' => 'continue',
+ 'supprimer' => 'delete',
+ 'enregistrer' => 'save',
+ 'mettre_à_jour' => 'update',
+};
+
+1;
+
diff --git a/locale/fr/pos b/locale/fr/pos
new file mode 100755
index 00000000..69db8091
--- /dev/null
+++ b/locale/fr/pos
@@ -0,0 +1,80 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Add POS Invoice' => 'Saisie ticket de caisse',
+ 'Amount' => 'Montant',
+ 'Business' => 'Type d\'affaire',
+ 'Cannot post transaction!' => 'Impossible d\'enregistrer l\'écriture!',
+ 'Change' => 'Retour monnaie',
+ 'Continue' => 'Continuer',
+ 'Credit Limit' => 'Encours autorisé',
+ 'Currency' => 'Devise',
+ 'Current' => 'En cours',
+ 'Customer' => 'Client',
+ 'Customer missing!' => 'Client manquant!',
+ 'Delete' => 'Supprimer',
+ 'Department' => 'Service',
+ 'Description' => 'Description',
+ 'Edit POS Invoice' => 'Modifier ticket de caisse',
+ 'Exchange Rate' => 'Taux de change',
+ 'Exchange rate missing!' => 'Taux de change manquant!',
+ 'Extended' => 'Prix total',
+ 'From' => 'De',
+ 'Language' => 'Langue',
+ 'Memo' => 'Mémo',
+ 'Month' => 'Mois',
+ 'Number' => 'Numéro',
+ 'Open' => 'Ouvert',
+ 'Period' => 'Période',
+ 'Post' => 'Enregistrer',
+ 'Posted!' => 'Enregistré!',
+ 'Price' => 'Prix',
+ 'Print' => 'Imprimer',
+ 'Print and Post' => 'Imprimer et imputer',
+ 'Printed' => 'Imprimé',
+ 'Qty' => 'Qté',
+ 'Quarter' => 'Trimestre',
+ 'Receipts' => 'Reçus',
+ 'Record in' => 'Enregistrer dans',
+ 'Remaining' => 'Restant',
+ 'Salesperson' => 'Vendeur',
+ 'Screen' => 'Écran',
+ 'Source' => 'Source',
+ 'Subtotal' => 'Sous total',
+ 'Tax Included' => 'Taxe incluse',
+ 'To' => 'À',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Escompte commercial',
+ 'Unit' => 'Unité',
+ 'Update' => 'Mettre à jour',
+ 'Year' => 'Année',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'continuer' => 'continue',
+ 'supprimer' => 'delete',
+ 'enregistrer' => 'post',
+ 'imprimer' => 'print',
+ 'imprimer_et_imputer' => 'print_and_post',
+ 'mettre_à_jour' => 'update',
+};
+
+1;
+
diff --git a/locale/fr/ps b/locale/fr/ps
new file mode 100755
index 00000000..7e6e0979
--- /dev/null
+++ b/locale/fr/ps
@@ -0,0 +1,383 @@
+$self{texts} = {
+ 'AP Aging' => 'Dépenses exigibles',
+ 'AP Outstanding' => 'Dépenses en retard',
+ 'AP Transaction' => 'Écriture dépenses',
+ 'AP Transactions' => 'Mouvements - Dépenses',
+ 'AR Aging' => 'Recettes exigibles',
+ 'AR Outstanding' => 'Recettes en retard',
+ 'AR Transaction' => 'Écriture recettes',
+ 'AR Transactions' => 'Mouvements - Recettes',
+ 'Account' => 'Compte',
+ 'Account Number' => 'Numéro de compte',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Accounts' => 'Comptes',
+ 'Accrual' => 'Accumulation',
+ 'Add AP Transaction' => 'Ajouter une dépense',
+ 'Add AR Transaction' => 'Ajouter une recette',
+ 'Add POS Invoice' => 'Saisie ticket de caisse',
+ 'Add Purchase Order' => 'Établir commande d\'achat',
+ 'Add Quotation' => 'Établir devis',
+ 'Add Request for Quotation' => 'Établir demande de devis',
+ 'Add Sales Invoice' => 'Établir facture de vente',
+ 'Add Sales Order' => 'Établir commande de vente',
+ 'Address' => 'Adresse',
+ 'All Accounts' => 'Afficher tous les comptes',
+ 'Amount' => 'Montant',
+ 'Amount Due' => 'Montant dû',
+ 'Apr' => 'Avril',
+ 'April' => 'Avril',
+ 'Are you sure you want to delete Invoice Number' => 'Êtes-vous sûr de vouloir supprimer la facture n°',
+ 'Are you sure you want to delete Transaction' => 'Êtes vous sûr de vouloir effacer la saisie?',
+ 'Attachment' => 'Pièce jointe',
+ 'Aug' => 'Août',
+ 'August' => 'Août',
+ 'Balance' => 'Solde',
+ 'Balance Sheet' => 'Bilan',
+ 'Bcc' => 'Copie cachée',
+ 'Billing Address' => 'Adresse de facturation',
+ 'Bin' => 'Lieu stockage',
+ 'Bin List' => 'Liste des emplacements',
+ 'Business' => 'Type d\'affaire',
+ 'Cannot delete invoice!' => 'Impossible de supprimer la facture!',
+ 'Cannot delete transaction!' => 'Impossible de supprimer la saisie!',
+ 'Cannot post invoice for a closed period!' => 'Impossible d\'enregistrer la facture sur un exercice clos!',
+ 'Cannot post invoice!' => 'Impossible d\'enregistrer la facture!',
+ 'Cannot post payment for a closed period!' => 'Impossible d\'enregistrer le paiement sur un exercice clos!',
+ 'Cannot post transaction for a closed period!' => 'Impossible d\'enregistrer l\'écriture sur un exercice clos!',
+ 'Cannot post transaction!' => 'Impossible d\'enregistrer l\'écriture!',
+ 'Cash' => 'Financier',
+ 'Cc' => 'Copie',
+ 'Change' => 'Retour monnaie',
+ 'Check' => 'Chèque',
+ 'City' => 'Ville',
+ 'Closed' => 'Clôturé',
+ 'Company Name' => 'Nom de société',
+ 'Compare to' => 'Comparer à',
+ 'Confirm!' => 'Confirmer!',
+ 'Contact' => 'Contact',
+ 'Continue' => 'Continuer',
+ 'Copies' => 'Copies',
+ 'Country' => 'Pays',
+ 'Credit' => 'Crédit',
+ 'Credit Limit' => 'Encours autorisé',
+ 'Curr' => 'Dev.',
+ 'Currency' => 'Devise',
+ 'Current' => 'En cours',
+ 'Current Earnings' => 'Bénéfice de l\'exercice',
+ 'Customer' => 'Client',
+ 'Customer Number' => 'Numéro de client',
+ 'Customer missing!' => 'Client manquant!',
+ 'Customer not on file!' => 'Client absent du fichier!',
+ 'Date' => 'Date',
+ 'Date Paid' => 'Date de paiement',
+ 'Debit' => 'Débit',
+ 'Dec' => 'Déc.',
+ 'December' => 'Décembre',
+ 'Decimalplaces' => 'Décimales',
+ 'Delete' => 'Supprimer',
+ 'Delete Schedule' => 'Effacer transaction planifiée',
+ 'Delivery Date' => 'Date de livraison',
+ 'Department' => 'Service',
+ 'Description' => 'Description',
+ 'Detail' => 'Détail',
+ 'Due Date' => 'Échéance',
+ 'Due Date missing!' => 'Date d\'échéance manquante!',
+ 'E-mail' => 'E-mail',
+ 'E-mail Statement to' => 'Message éléctronique à',
+ 'E-mail address missing!' => 'Adresse e-mail manquante!',
+ 'E-mail message' => 'Message e-mail',
+ 'E-mailed' => 'E-mail envoyé',
+ 'Edit AP Transaction' => 'Modifier une dépense',
+ 'Edit AR Transaction' => 'Modifier une recette',
+ 'Edit POS Invoice' => 'Modifier ticket de caisse',
+ 'Edit Sales Invoice' => 'Modifier facture de vente',
+ 'Employee' => 'Employé',
+ 'Every' => 'Chaque',
+ 'Exch' => 'Change',
+ 'Exchange Rate' => 'Taux de change',
+ 'Exchange rate for payment missing!' => 'Taux de change manquant pour le paiement!',
+ 'Exchange rate missing!' => 'Taux de change manquant!',
+ 'Extended' => 'Prix total',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Fév.',
+ 'February' => 'Février',
+ 'For' => 'Pour',
+ 'From' => 'De',
+ 'GIFI' => 'Code d\'identification comptable ou fiscale',
+ 'Group' => 'Groupe',
+ 'Heading' => 'En-tête',
+ 'ID' => 'ID',
+ 'In-line' => 'En ligne',
+ 'Include Exchange Rate Difference' => 'Inclure différence conversion devises',
+ 'Include Payment' => 'Inclure paiement',
+ 'Include in Report' => 'Inclure dans l\'état',
+ 'Income Statement' => 'Compte de résultat',
+ 'Internal Notes' => 'Notes internes',
+ 'Invoice' => 'Facture',
+ 'Invoice Date' => 'Date de facturation',
+ 'Invoice Date missing!' => 'Date de facture manquante!',
+ 'Invoice Number' => 'Numéro de facture',
+ 'Invoice Number missing!' => 'Numéro de facture manquant!',
+ 'Invoice deleted!' => 'Facture supprimée!',
+ 'Item not on file!' => 'Objet non-listé!',
+ 'Jan' => 'Jan.',
+ 'January' => 'Janvier',
+ 'Jul' => 'Juill.',
+ 'July' => 'Juillet',
+ 'Jun' => 'Juin',
+ 'June' => 'Juin',
+ 'Language' => 'Langue',
+ 'Manager' => 'Gestionnaire',
+ 'Mar' => 'Mars',
+ 'March' => 'Mars',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Mémo',
+ 'Message' => 'Message',
+ 'Method' => 'Méthode',
+ 'Month' => 'Mois',
+ 'N/A' => 'Non applicable',
+ 'Next Date' => 'Prochaine date',
+ 'No.' => 'N°',
+ 'Non-taxable Purchases' => 'Achats hors taxe',
+ 'Non-taxable Sales' => 'Ventes hors taxe',
+ 'Notes' => 'Notes',
+ 'Nothing selected!' => 'Pas de sélection!',
+ 'Nothing to print!' => 'Rien à imprimer',
+ 'Nov' => 'Nov.',
+ 'November' => 'Novembre',
+ 'Number' => 'Numéro',
+ 'Number missing in Row' => 'Numéro manquant dans ligne',
+ 'Oct' => 'Oct.',
+ 'October' => 'Octobre',
+ 'Open' => 'Ouvert',
+ 'Order' => 'Commande',
+ 'Order Date missing!' => 'Date de commande manquante!',
+ 'Order Number' => 'Numéro de commande',
+ 'Order Number missing!' => 'Numéro de commande manquant!',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Numéro de référence',
+ 'Packing List' => 'Liste d\'envoi',
+ 'Packing List Date missing!' => 'La liste d\'envoi n\'a pas de date!',
+ 'Packing List Number missing!' => 'Le numéro de la liste d\'envoi est manquant!',
+ 'Paid' => 'Total payé',
+ 'Part' => 'Marchandise',
+ 'Payment date missing!' => 'Date de paiement manquante!',
+ 'Payments' => 'Paiements',
+ 'Period' => 'Période',
+ 'Phone' => 'Tél.',
+ 'Pick List' => 'Liste de sélection',
+ 'Post' => 'Enregistrer',
+ 'Post as new' => 'Enregistrer comme nouveau',
+ 'Posted!' => 'Enregistré!',
+ 'Postscript' => 'Postcript',
+ 'Price' => 'Prix',
+ 'Print' => 'Imprimer',
+ 'Print and Post' => 'Imprimer et imputer',
+ 'Printed' => 'Imprimé',
+ 'Project' => 'Projet',
+ 'Project Number' => 'Numéro de projet',
+ 'Project Transactions' => 'Mouvements - Projet',
+ 'Project not on file!' => 'Projet absent du fichier!',
+ 'Purchase Order' => 'Commande d\'achat',
+ 'Qty' => 'Qté',
+ 'Quarter' => 'Trimestre',
+ 'Quotation' => 'Devis',
+ 'Quotation Date missing!' => 'Date de devis manqante!',
+ 'Quotation Number missing!' => 'Numéro de devis manquant!',
+ 'Recd' => 'Reçu',
+ 'Receipt' => 'Reçu',
+ 'Receipts' => 'Reçus',
+ 'Record in' => 'Enregistrer dans',
+ 'Recurring Transaction' => 'Transaction périodique',
+ 'Reference' => 'Référence',
+ 'Remaining' => 'Restant',
+ 'Repeat' => 'Répéter',
+ 'Report for' => 'Rapport de',
+ 'Required by' => 'Requis pour',
+ 'SKU' => 'SKU',
+ 'Sales Invoice.' => 'Facture de vente.',
+ 'Sales Order' => 'Commande de vente',
+ 'Salesperson' => 'Vendeur',
+ 'Save Schedule' => 'Enregistrer transaction planifiée',
+ 'Schedule' => 'Planification',
+ 'Scheduled' => 'Planifié',
+ 'Screen' => 'Écran',
+ 'Select all' => 'Tout sélectionner',
+ 'Select from one of the names below' => 'Sélectionner un des noms ci-dessous',
+ 'Select from one of the projects below' => 'Sélectionner un des projets ci-dessous',
+ 'Select items' => 'Sélectionner éléments',
+ 'Select payment' => 'Sélectionner le payement',
+ 'Select postscript or PDF!' => 'Sélectionner Postscript ou PDF!',
+ 'Select txt, postscript or PDF!' => 'Sélectionner Txt, Postscript ou PDF!',
+ 'Sep' => 'Sept.',
+ 'September' => 'Septembre',
+ 'Serial No.' => 'N° série',
+ 'Service' => 'Prestation de service',
+ 'Ship' => 'Expédier',
+ 'Ship to' => 'Expédier à',
+ 'Ship via' => 'Expédier via',
+ 'Shipping Address' => 'Adresse d\'envoi',
+ 'Shipping Point' => 'Expéditeur',
+ 'Source' => 'Source',
+ 'Standard' => 'Standard',
+ 'Startdate' => 'Date de début',
+ 'State/Province' => 'Région/État',
+ 'Statement' => 'Relevé',
+ 'Statement sent to' => 'Relevé envoyé à',
+ 'Statements sent to printer!' => 'Relevés envoyés à l\'imprimante!',
+ 'Subject' => 'Objet',
+ 'Subtotal' => 'Sous total',
+ 'Summary' => 'Résumé',
+ 'Tax' => 'Taxe',
+ 'Tax Included' => 'Taxe incluse',
+ 'Tax collected' => 'Taxe collectée',
+ 'Tax paid' => 'Taxe payée',
+ 'Text' => 'Texte',
+ 'Till' => 'Caisse',
+ 'To' => 'À',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Escompte commercial',
+ 'Transaction' => 'Écriture',
+ 'Transaction deleted!' => 'Écriture supprimée!',
+ 'Transaction posted!' => 'Écriture enregistrée!',
+ 'Translation not on file!' => 'Pas de traduction dans le fichier',
+ 'Trial Balance' => 'Balance Globale',
+ 'Unit' => 'Unité',
+ 'Update' => 'Mettre à jour',
+ 'Vendor' => 'Fournisseur',
+ 'Vendor Invoice.' => 'Facture d\'achat.',
+ 'Vendor Number' => 'Numéro de fournisseur',
+ 'Vendor missing!' => 'Fournisseur manquant!',
+ 'Vendor not on file!' => 'Fournisseur absent du fichier!',
+ 'Warning!' => 'Attention!',
+ 'What type of item is this?' => 'De quel type est cet objet?',
+ 'Work Order' => 'Fiche de traitement',
+ 'Year' => 'Année',
+ 'Yes' => 'Oui',
+ 'You are posting an existing transaction!' => 'Vous enregistrez une transaction existante!',
+ 'You are printing and posting an existing transaction!' => 'Vous imprimez et enregistrez une transaction existante!',
+ 'You are printing and saving an existing order' => 'Vous imprimez et enregistrez une commande existante!',
+ 'You are printing and saving an existing quotation' => 'Vous imprimez et enregistrez un devis existant!',
+ 'You are saving an existing order' => 'Vous enregistrez une commande existante',
+ 'You are saving an existing quotation' => 'Vous enregistrez un devis existant',
+ 'Zip/Postal Code' => 'Code postal',
+ 'as at' => 'au',
+ 'ea' => 'ch',
+ 'for' => 'pour',
+ 'for Period' => 'pour la période',
+ 'posted!' => 'enregistré!',
+ 'sent' => 'envoyé',
+ 'time(s)' => 'temps',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'Écriture_dépenses' => 'ap_transaction',
+ 'Écriture_recettes' => 'ar_transaction',
+ 'continuer' => 'continue',
+ 'supprimer' => 'delete',
+ 'effacer_transaction_planifiée' => 'delete_schedule',
+ 'e_mail' => 'e_mail',
+ 'enregistrer' => 'post',
+ 'enregistrer_comme_nouveau' => 'post_as_new',
+ 'imprimer' => 'print',
+ 'imprimer_et_imputer' => 'print_and_post',
+ 'facture_de_vente_' => 'sales_invoice_',
+ 'commande_de_vente' => 'sales_order',
+ 'enregistrer_transaction_planifiée' => 'save_schedule',
+ 'planification' => 'schedule',
+ 'tout_sélectionner' => 'select_all',
+ 'expédier_à' => 'ship_to',
+ 'mettre_à_jour' => 'update',
+ 'facture_d\'achat_' => 'vendor_invoice_',
+ 'oui' => 'yes',
+};
+
+1;
+
diff --git a/locale/fr/pw b/locale/fr/pw
new file mode 100755
index 00000000..fde00cae
--- /dev/null
+++ b/locale/fr/pw
@@ -0,0 +1,13 @@
+$self{texts} = {
+ 'Continue' => 'Continuer',
+ 'Password' => 'Mot de passe',
+ 'Session expired!' => 'Session terminée!',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'continuer' => 'continue',
+};
+
+1;
+
diff --git a/locale/fr/rc b/locale/fr/rc
new file mode 100755
index 00000000..3e6dc439
--- /dev/null
+++ b/locale/fr/rc
@@ -0,0 +1,79 @@
+$self{texts} = {
+ 'Account' => 'Compte',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Apr' => 'Avril',
+ 'April' => 'Avril',
+ 'Aug' => 'Août',
+ 'August' => 'Août',
+ 'Balance' => 'Solde',
+ 'Beginning Balance' => 'Solde du départ',
+ 'Cleared' => 'Lettré',
+ 'Continue' => 'Continuer',
+ 'Credit' => 'Crédit',
+ 'Current' => 'En cours',
+ 'Date' => 'Date',
+ 'Debit' => 'Débit',
+ 'Dec' => 'Déc.',
+ 'December' => 'Décembre',
+ 'Description' => 'Description',
+ 'Detail' => 'Détail',
+ 'Difference' => 'Différence',
+ 'Done' => 'Fait!',
+ 'Feb' => 'Fév.',
+ 'February' => 'Février',
+ 'From' => 'De',
+ 'Include Exchange Rate Difference' => 'Inclure différence conversion devises',
+ 'Jan' => 'Jan.',
+ 'January' => 'Janvier',
+ 'Jul' => 'Juill.',
+ 'July' => 'Juillet',
+ 'Jun' => 'Juin',
+ 'June' => 'Juin',
+ 'Mar' => 'Mars',
+ 'March' => 'Mars',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Month' => 'Mois',
+ 'Nov' => 'Nov.',
+ 'November' => 'Novembre',
+ 'Oct' => 'Oct.',
+ 'October' => 'Octobre',
+ 'Out of balance!' => 'Non-soldée!',
+ 'Outstanding' => 'En retard',
+ 'Period' => 'Période',
+ 'Quarter' => 'Trimestre',
+ 'R' => 'R',
+ 'Reconciliation' => 'Rapprochement',
+ 'Reconciliation Report' => 'Rapport de rapprochement',
+ 'Select all' => 'Tout sélectionner',
+ 'Sep' => 'Sept.',
+ 'September' => 'Septembre',
+ 'Source' => 'Source',
+ 'Statement Balance' => 'Solde relevé de compte',
+ 'Summary' => 'Résumé',
+ 'To' => 'À',
+ 'Update' => 'Mettre à jour',
+ 'Year' => 'Année',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'continuer' => 'continue',
+ 'fait!' => 'done',
+ 'tout_sélectionner' => 'select_all',
+ 'mettre_à_jour' => 'update',
+};
+
+1;
+
diff --git a/locale/fr/rp b/locale/fr/rp
new file mode 100755
index 00000000..53ddba95
--- /dev/null
+++ b/locale/fr/rp
@@ -0,0 +1,198 @@
+$self{texts} = {
+ 'AP Aging' => 'Dépenses exigibles',
+ 'AR Aging' => 'Recettes exigibles',
+ 'Account' => 'Compte',
+ 'Account Number' => 'Numéro de compte',
+ 'Accounting Menu' => 'Menu de comptabilité',
+ 'Accounts' => 'Comptes',
+ 'Accrual' => 'Accumulation',
+ 'Address' => 'Adresse',
+ 'All Accounts' => 'Afficher tous les comptes',
+ 'Amount' => 'Montant',
+ 'Apr' => 'Avril',
+ 'April' => 'Avril',
+ 'Attachment' => 'Pièce jointe',
+ 'Aug' => 'Août',
+ 'August' => 'Août',
+ 'Balance' => 'Solde',
+ 'Balance Sheet' => 'Bilan',
+ 'Bcc' => 'Copie cachée',
+ 'Cash' => 'Financier',
+ 'Cc' => 'Copie',
+ 'Compare to' => 'Comparer à',
+ 'Continue' => 'Continuer',
+ 'Copies' => 'Copies',
+ 'Credit' => 'Crédit',
+ 'Curr' => 'Dev.',
+ 'Current' => 'En cours',
+ 'Current Earnings' => 'Bénéfice de l\'exercice',
+ 'Customer' => 'Client',
+ 'Customer not on file!' => 'Client absent du fichier!',
+ 'Date' => 'Date',
+ 'Debit' => 'Débit',
+ 'Dec' => 'Déc.',
+ 'December' => 'Décembre',
+ 'Decimalplaces' => 'Décimales',
+ 'Delete Schedule' => 'Effacer transaction planifiée',
+ 'Department' => 'Service',
+ 'Description' => 'Description',
+ 'Detail' => 'Détail',
+ 'Due Date' => 'Échéance',
+ 'E-mail' => 'E-mail',
+ 'E-mail Statement to' => 'Message éléctronique à',
+ 'E-mail address missing!' => 'Adresse e-mail manquante!',
+ 'E-mail message' => 'Message e-mail',
+ 'Every' => 'Chaque',
+ 'Feb' => 'Fév.',
+ 'February' => 'Février',
+ 'For' => 'Pour',
+ 'From' => 'De',
+ 'GIFI' => 'Code d\'identification comptable ou fiscale',
+ 'Heading' => 'En-tête',
+ 'ID' => 'ID',
+ 'In-line' => 'En ligne',
+ 'Include Exchange Rate Difference' => 'Inclure différence conversion devises',
+ 'Include Payment' => 'Inclure paiement',
+ 'Include in Report' => 'Inclure dans l\'état',
+ 'Income Statement' => 'Compte de résultat',
+ 'Invoice' => 'Facture',
+ 'Jan' => 'Jan.',
+ 'January' => 'Janvier',
+ 'Jul' => 'Juill.',
+ 'July' => 'Juillet',
+ 'Jun' => 'Juin',
+ 'June' => 'Juin',
+ 'Language' => 'Langue',
+ 'Mar' => 'Mars',
+ 'March' => 'Mars',
+ 'May' => 'Mai',
+ 'May ' => 'Mai ',
+ 'Memo' => 'Mémo',
+ 'Message' => 'Message',
+ 'Method' => 'Méthode',
+ 'Month' => 'Mois',
+ 'N/A' => 'Non applicable',
+ 'Next Date' => 'Prochaine date',
+ 'Non-taxable Purchases' => 'Achats hors taxe',
+ 'Non-taxable Sales' => 'Ventes hors taxe',
+ 'Nothing selected!' => 'Pas de sélection!',
+ 'Nov' => 'Nov.',
+ 'November' => 'Novembre',
+ 'Number' => 'Numéro',
+ 'Oct' => 'Oct.',
+ 'October' => 'Octobre',
+ 'Order' => 'Commande',
+ 'PDF' => 'PDF',
+ 'Payments' => 'Paiements',
+ 'Period' => 'Période',
+ 'Postscript' => 'Postcript',
+ 'Print' => 'Imprimer',
+ 'Project' => 'Projet',
+ 'Project Number' => 'Numéro de projet',
+ 'Project Transactions' => 'Mouvements - Projet',
+ 'Project not on file!' => 'Projet absent du fichier!',
+ 'Quarter' => 'Trimestre',
+ 'Receipts' => 'Reçus',
+ 'Recurring Transaction' => 'Transaction périodique',
+ 'Reference' => 'Référence',
+ 'Repeat' => 'Répéter',
+ 'Report for' => 'Rapport de',
+ 'Salesperson' => 'Vendeur',
+ 'Save Schedule' => 'Enregistrer transaction planifiée',
+ 'Screen' => 'Écran',
+ 'Select all' => 'Tout sélectionner',
+ 'Select from one of the names below' => 'Sélectionner un des noms ci-dessous',
+ 'Select from one of the projects below' => 'Sélectionner un des projets ci-dessous',
+ 'Select postscript or PDF!' => 'Sélectionner Postscript ou PDF!',
+ 'Sep' => 'Sept.',
+ 'September' => 'Septembre',
+ 'Source' => 'Source',
+ 'Standard' => 'Standard',
+ 'Startdate' => 'Date de début',
+ 'Statement' => 'Relevé',
+ 'Statement sent to' => 'Relevé envoyé à',
+ 'Statements sent to printer!' => 'Relevés envoyés à l\'imprimante!',
+ 'Subject' => 'Objet',
+ 'Subtotal' => 'Sous total',
+ 'Summary' => 'Résumé',
+ 'Tax' => 'Taxe',
+ 'Tax collected' => 'Taxe collectée',
+ 'Tax paid' => 'Taxe payée',
+ 'Till' => 'Caisse',
+ 'To' => 'À',
+ 'Total' => 'Total',
+ 'Trial Balance' => 'Balance Globale',
+ 'Vendor' => 'Fournisseur',
+ 'Vendor not on file!' => 'Fournisseur absent du fichier!',
+ 'Warning!' => 'Attention!',
+ 'Year' => 'Année',
+ 'You are posting an existing transaction!' => 'Vous enregistrez une transaction existante!',
+ 'You are printing and posting an existing transaction!' => 'Vous imprimez et enregistrez une transaction existante!',
+ 'You are printing and saving an existing order' => 'Vous imprimez et enregistrez une commande existante!',
+ 'You are printing and saving an existing quotation' => 'Vous imprimez et enregistrez un devis existant!',
+ 'You are saving an existing order' => 'Vous enregistrez une commande existante',
+ 'You are saving an existing quotation' => 'Vous enregistrez un devis existant',
+ 'as at' => 'au',
+ 'for' => 'pour',
+ 'for Period' => 'pour la période',
+ 'sent' => 'envoyé',
+ 'time(s)' => 'temps',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuer' => 'continue',
+ 'effacer_transaction_planifiée' => 'delete_schedule',
+ 'e_mail' => 'e_mail',
+ 'imprimer' => 'print',
+ 'enregistrer_transaction_planifiée' => 'save_schedule',
+ 'tout_sélectionner' => 'select_all',
+};
+
+1;
+
diff --git a/locale/gr/COPYING b/locale/gr/COPYING
new file mode 100755
index 00000000..03e87d26
--- /dev/null
+++ b/locale/gr/COPYING
@@ -0,0 +1,23 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2004
+#
+# Greek texts:
+#
+# Author: Dimitris Andavoglou <dimitrisand@nortech.gr>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/gr/LANGUAGE b/locale/gr/LANGUAGE
new file mode 100755
index 00000000..65d1349b
--- /dev/null
+++ b/locale/gr/LANGUAGE
@@ -0,0 +1 @@
+Greek (ISO-8859-7)
diff --git a/locale/gr/aa b/locale/gr/aa
new file mode 100755
index 00000000..d3974daa
--- /dev/null
+++ b/locale/gr/aa
@@ -0,0 +1,106 @@
+$self{charset} = 'ISO-8859-7';
+
+$self{texts} = {
+ 'AP Transaction' => 'ÊéíÞóç ÁãïñÜò',
+ 'AP Transactions' => 'ÊéíÞóåéò Áãïñþí',
+ 'AR Transaction' => 'ÊéíÞóåéò ÐùëÞóåùí',
+ 'AR Transactions' => 'ÊéíÞóåéò ÐùëÞóåùí',
+ 'Account' => 'Ëïãáñéáóìüò',
+ 'Accounting Menu' => 'Ìåíðý ËïãéóôéêÞò',
+ 'Amount' => 'Ðïóü',
+ 'Apr' => 'Áðñ',
+ 'April' => 'Áðñßëéïò',
+ 'Are you sure you want to delete Transaction' => 'Åßóáé óßãïõñïò üôé èÝëåéò íá äéáãñÜøåéò ôçí êßíçóç',
+ 'Aug' => 'Áõã',
+ 'August' => 'Áýãïõóôïò',
+ 'Cannot delete transaction!' => 'Äåí ìðïñåß íá äéáãñáöåß ç êßíçóç',
+ 'Check' => 'ÅðéôáãÞ',
+ 'Closed' => 'ÊëåéóìÝíï',
+ 'Confirm!' => 'Åðéâåâáßùóç!',
+ 'Continue' => 'ÓõíÝ÷åéá',
+ 'Credit' => 'Ðßóôùóç',
+ 'Credit Limit' => '¼ñéï Ðßóôùóçò',
+ 'Currency' => 'ÓõíÜëëáãìá',
+ 'Current' => 'ÔñÝ÷ùí',
+ 'Customer' => 'ÐåëÜôçò',
+ 'Customer missing!' => 'Ï ÐåëÜôçò ëåßðåé!',
+ 'Date' => 'Çìåñïìçíßá',
+ 'Date Paid' => 'Çì. ÐëçñùìÞò',
+ 'Debit' => '×ñÝïò',
+ 'Dec' => 'Äåê',
+ 'December' => 'ÄåêÝìâñéïò',
+ 'Delete' => 'ÄéáãñáöÞ',
+ 'Department' => 'ÔìÞìá',
+ 'Description' => 'ÐåñéãñáöÞ',
+ 'Detail' => 'ËåðôïìÝñåéá',
+ 'Due Date' => 'Çìåñïìçíßá ëÞîçò',
+ 'Due Date missing!' => 'Ç çìåñïìçíßá ëÞîçò ëåßðåé',
+ 'Employee' => 'ÕðÜëëçëïò',
+ 'Exch' => 'Óõíáëë',
+ 'Exchange Rate' => 'ÔéìÞ óõíáëëÜãìáôïò',
+ 'Exchange rate for payment missing!' => 'Ç ôéìÞ óõíáëëÜãìáôïò ëåßðåé',
+ 'Feb' => 'Öåâ',
+ 'February' => 'ÖåâñïõÜñéïò',
+ 'From' => 'Áðü',
+ 'Invoice' => 'Ôéìïëüãéï',
+ 'Invoice Date' => 'Çì. ôéìïëïãßïõ',
+ 'Invoice Number' => 'Áñ. ôéìïëïãßïõ',
+ 'Jan' => 'ÉÜí',
+ 'January' => 'ÉáíïõÜñéïò',
+ 'Jul' => 'Éïýë',
+ 'July' => 'Éïýëéïò',
+ 'Jun' => 'Éïýí',
+ 'June' => 'Éïýíéïò',
+ 'Manager' => 'ÄéåõèõíôÞò',
+ 'Mar' => 'Ìáñ',
+ 'March' => 'ÌÜñôéïò',
+ 'May' => 'ÌÜúïò',
+ 'May ' => 'ÌÜúïò',
+ 'Month' => 'ÌÞíáò',
+ 'Notes' => 'Óçìåéþóåéò',
+ 'Nov' => 'ÍïÝ',
+ 'November' => 'ÍïÝìâñéïò',
+ 'Oct' => 'Ïêô',
+ 'October' => 'Ïêôþâñéïò',
+ 'Open' => '¢íïéãìá',
+ 'Order' => 'Ðáñáããåëßá',
+ 'Order Number' => 'Áñ. Ðáñáããåëßáò',
+ 'Print' => 'Åêôýðùóç',
+ 'Print and Post' => '¸êôýðùóç êáé áðïóôïëÞ',
+ 'Project' => '¸ñãï',
+ 'Receipt' => 'Áðüäåéîç',
+ 'Source' => 'ÐçãÞ',
+ 'Tax' => 'Öüñïò',
+ 'Vendor' => 'Creditor',
+ 'Vendor missing!' => 'Creditor missing!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'ÊéíÞóç_ÁãïñÜò' => 'ap_transaction',
+ 'ÊéíÞóåéò_ÐùëÞóåùí' => 'ar_transaction',
+ 'ÓõíÝ÷åéá' => 'continue',
+ 'ÄéáãñáöÞ' => 'delete',
+ 'Åêôýðùóç' => 'print',
+ '¸êôýðùóç_êáé_áðïóôïëÞ' => 'print_and_post',
+};
+
+1;
+
diff --git a/locale/gr/admin b/locale/gr/admin
new file mode 100755
index 00000000..c1cd1a82
--- /dev/null
+++ b/locale/gr/admin
@@ -0,0 +1,128 @@
+$self{charset} = 'ISO-8859-7';
+
+$self{texts} = {
+ 'Access Control' => '¸ëåã÷ïò ðñüóâáóçò',
+ 'Accounting' => 'ËïãéóôéêÞ',
+ 'Add User' => 'ÐñïóèÞêç ÷ñÞóôç',
+ 'Address' => 'ÄéÝõèõíóç',
+ 'Administration' => 'Äéá÷åßñéóç',
+ 'Administrator' => 'Äéá÷åéñéóôÞò',
+ 'All Datasets up to date!' => 'All Datasets up to date!',
+ 'Cannot create Lock!' => 'Cannot create Lock!',
+ 'Change Admin Password' => 'Change Admin Password',
+ 'Change Password' => 'ÁëëáãÞ êùäéêïý',
+ 'Click on login name to edit!' => 'Click on login name to edit!',
+ 'Company' => 'Åôáéñßá',
+ 'Connect to' => 'Óýíäåóç ìå',
+ 'Continue' => 'ÓõíÝ÷åéá',
+ 'Create Chart of Accounts' => 'Create Chart of Accounts',
+ 'Create Dataset' => 'Create Dataset',
+ 'DBI not installed!' => 'DBI äåí Ý÷åé åãêáôáóôáèåß!',
+ 'Database' => 'ÂÜóç äåäïìÝíùí',
+ 'Database Administration' => 'Äéá÷åéñéóôÞò âÜóçò äåäïìÝíùí',
+ 'Database Driver not checked!' => 'Database Driver not checked!',
+ 'Database User missing!' => 'Database User missing!',
+ 'Dataset missing!' => 'Dataset missing!',
+ 'Dataset updated!' => 'Dataset updated!',
+ 'Date Format' => 'ÌïñöÞ çìåñïìçíßáò',
+ 'Delete' => 'ÄéáãñáöÞ',
+ 'Delete Dataset' => 'Delete Dataset',
+ 'Directory' => 'Directory',
+ 'Driver' => 'Driver',
+ 'Edit User' => 'Åðåîåñãáóßá ÷ñÞóôç',
+ 'Existing Datasets' => 'Existing Datasets',
+ 'Fax' => 'Öáî',
+ 'Host' => 'Host',
+ 'Hostname missing!' => 'Hostname missing!',
+ 'Language' => 'Ãëþóóá',
+ 'Lock System' => 'Lock System',
+ 'Lockfile created!' => 'Lockfile created!',
+ 'Lockfile removed!' => 'Lockfile removed!',
+ 'Login' => 'ÅéóáãùãÞ',
+ 'Login name missing!' => 'Login name missing!',
+ 'Logout' => 'ÅîáãùãÞ',
+ 'Manager' => 'ÄéåõèõíôÞò',
+ 'Multibyte Encoding' => 'Multibyte Encoding',
+ 'Name' => '¼íïìá',
+ 'New Templates' => 'New Templates',
+ 'No Database Drivers available!' => 'No Database Drivers available!',
+ 'No Dataset selected!' => 'No Dataset selected!',
+ 'Nothing to delete!' => 'Äåí õðÜñ÷åé ôßðïôá ãéá äéáãñáöÞ!',
+ 'Oracle Database Administration' => 'Oracle Database Administration',
+ 'Password changed!' => 'Password changed!',
+ 'Pg Database Administration' => 'Pg Database Administration',
+ 'PgPP Database Administration' => 'PgPP Database Administration',
+ 'Phone' => 'ÔçëÝöùíï',
+ 'Port' => 'Port',
+ 'Port missing!' => 'Port missing!',
+ 'Printer' => 'ÅêôõðùôÞò',
+ 'Save' => 'ÁðïèÞêåõóç',
+ 'Setup Templates' => 'Setup Templates',
+ 'Signature' => 'ÕðïãñáöÞ',
+ 'Templates' => 'Templates',
+ 'The following Datasets are not in use and can be deleted' => 'The following Datasets are not in use and can be deleted',
+ 'The following Datasets need to be updated' => 'The following Datasets need to be updated',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.',
+ 'Unlock System' => 'Unlock System',
+ 'Update Dataset' => 'Update Dataset',
+ 'Use Templates' => 'Use Templates',
+ 'User deleted!' => 'User deleted!',
+ 'User saved!' => 'User saved!',
+ 'does not exist' => 'does not exist',
+ 'is already a member!' => 'is already a member!',
+ 'successfully created!' => 'successfully created!',
+ 'successfully deleted!' => 'successfully deleted!',
+ 'website' => 'website',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'ÐñïóèÞêç_÷ñÞóôç' => 'add_user',
+ 'change_admin_password' => 'change_admin_password',
+ 'ÁëëáãÞ_êùäéêïý' => 'change_password',
+ 'ÓõíÝ÷åéá' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'ÄéáãñáöÞ' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'lock_system' => 'lock_system',
+ 'ÅéóáãùãÞ' => 'login',
+ 'ÅîáãùãÞ' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'ÁðïèÞêåõóç' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/gr/all b/locale/gr/all
new file mode 100755
index 00000000..576d5e24
--- /dev/null
+++ b/locale/gr/all
@@ -0,0 +1,892 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+$self{charset} = 'ISO-8859-7';
+
+
+$self{texts} = {
+ 'A' => '',
+ 'AP' => 'ÁãïñÝò',
+ 'AP Aging' => 'Creditor Aging',
+ 'AP Outstanding' => '',
+ 'AP Transaction' => 'ÊéíÞóç ÁãïñÜò',
+ 'AP Transactions' => 'ÊéíÞóåéò Áãïñþí',
+ 'AR' => 'ÐùëÞóåéò',
+ 'AR Aging' => 'Debtor Aging',
+ 'AR Outstanding' => '',
+ 'AR Transaction' => 'ÊéíÞóåéò ÐùëÞóåùí',
+ 'AR Transactions' => 'ÊéíÞóåéò ÐùëÞóåùí',
+ 'AR/AP' => '',
+ 'About' => '',
+ 'Above' => '',
+ 'Access Control' => '¸ëåã÷ïò ðñüóâáóçò',
+ 'Access Denied!' => '',
+ 'Account' => 'Ëïãáñéáóìüò',
+ 'Account Number' => 'Êùäéêüò Ëïãáñéáóìïý',
+ 'Account Number missing!' => 'Ï êùäéêüò ëïãáñéáóìïý ëåßðåé',
+ 'Account Type' => 'Ôýðïò Êùäéêïý',
+ 'Account Type missing!' => 'Ï ôýðïò ôïõ êùäéêïý ëåßðåé',
+ 'Account deleted!' => 'Ï ëïãáñéáóìüò äéáãñÜöçêå',
+ 'Account does not exist!' => 'Ï ëïãáñéáóìüò äåí õðÜñ÷åé',
+ 'Account saved!' => 'Ï ëïãáñéóìüò áðïèçêåýôçêå',
+ 'Accounting' => 'ËïãéóôéêÞ',
+ 'Accounting Menu' => 'Ìåíðý ËïãéóôéêÞò',
+ 'Accounts' => 'Ëïãáñéáóìïß',
+ 'Accrual' => 'Áýîçóç',
+ 'Activate Audit trail' => '',
+ 'Active' => 'Åíåñãüò',
+ 'Add' => 'ÐñïóèÞêç',
+ 'Add AP Transaction' => '',
+ 'Add AR Transaction' => '',
+ 'Add Account' => 'ÐñïóèÞêç ëïãáñéáóìïý',
+ 'Add Assembly' => '',
+ 'Add Business' => '',
+ 'Add Cash Transfer Transaction' => '',
+ 'Add Customer' => 'ÐñïóèÞêç ÐåëÜôç',
+ 'Add Deduction' => '',
+ 'Add Department' => '',
+ 'Add Employee' => 'ÐñïóèÞêç õðáëëÞëïõ',
+ 'Add Exchange Rate' => 'ÐñïóèÞêç ôéìÞò óõíáëÜãìáôïò',
+ 'Add GIFI' => '',
+ 'Add General Ledger Transaction' => '',
+ 'Add Group' => 'ÐñïóèÞêç ïìÜäáò',
+ 'Add Job' => '',
+ 'Add Labor/Overhead' => '',
+ 'Add Language' => 'ÐñïóèÞêç ãëþóóáò',
+ 'Add POS Invoice' => 'ÐñïóèÞêç áðüäçîçò ÔáìåéáêÞò ìç÷áíÞò',
+ 'Add Part' => '',
+ 'Add Pricegroup' => '',
+ 'Add Project' => 'ÐñïóèÞêç Ýñãïõ',
+ 'Add Purchase Order' => '',
+ 'Add Quotation' => 'ÐñïóèÞêç ðñïóöïñÜò',
+ 'Add Request for Quotation' => '',
+ 'Add SIC' => '',
+ 'Add Sales Invoice' => 'ÐñïóèÞêç Ôéìïëïãßïõ ðþëçóçò',
+ 'Add Sales Order' => 'ÐñïóèÞêç Ðáñáããåëßáò',
+ 'Add Service' => 'ÐñïóèÞêç õðçñåóßáò',
+ 'Add Timecard' => '',
+ 'Add Transaction' => 'ÐñïóèÞêç óõíáëëáãÞò',
+ 'Add User' => 'ÐñïóèÞêç ÷ñÞóôç',
+ 'Add Vendor' => 'ÐñïóèÞêç ÐéóôùôÞ',
+ 'Add Vendor Invoice' => 'Add Creditor Invoice',
+ 'Add Warehouse' => 'ÐñïóèÞêç ÁðïèÞêçò',
+ 'Address' => 'ÄéÝõèõíóç',
+ 'Administration' => 'Äéá÷åßñéóç',
+ 'Administrator' => 'Äéá÷åéñéóôÞò',
+ 'After Deduction' => 'ÌåôÜ ¸êðôùóéò',
+ 'All' => '¼ëá',
+ 'All Accounts' => '¼ëïé ïé ëïãáñéáóìïß',
+ 'All Datasets up to date!' => 'All Datasets up to date!',
+ 'All Items' => 'ÐñïóèÞêç åßäïõò',
+ 'Allowances' => 'Ðáñï÷Ýò',
+ 'Amount' => 'Ðïóü',
+ 'Amount Due' => '',
+ 'Amount missing!' => 'Ðïóü ðïõ ëåßðåé',
+ 'Apr' => 'Áðñ',
+ 'April' => 'Áðñßëéïò',
+ 'Are you sure you want to delete Invoice Number' => 'Åßóáé óßãïõñïò ðùò èÝëåéò íá äéáãñÜøåéò ôï áñéèìü ôéìïëïãßïõ',
+ 'Are you sure you want to delete Order Number' => 'Åßóáé óßãïõñïò ðùò èÝëåéò íá äéáãñÜøåéò ôïí áñéèìü ðáñáããåëßáò',
+ 'Are you sure you want to delete Quotation Number' => '',
+ 'Are you sure you want to delete Timecard for' => '',
+ 'Are you sure you want to delete Transaction' => 'Åßóáé óßãïõñïò üôé èÝëåéò íá äéáãñÜøåéò ôçí êßíçóç',
+ 'Are you sure you want to remove the marked entries from the queue?' => '',
+ 'Assemblies' => 'ÓõíáñìïëïãÞóåéò',
+ 'Assemblies restocked!' => '',
+ 'Assembly' => 'Óõíáñìïëüãçóç',
+ 'Assembly stocked!' => '',
+ 'Asset' => 'ÐÜãéï',
+ 'Attachment' => 'ÅîÜñôçìá',
+ 'Audit Control' => 'Åëåã÷ïò',
+ 'Audit trail disabled' => '',
+ 'Audit trail enabled' => '',
+ 'Audit trail removed up to' => '',
+ 'Aug' => 'Áõã',
+ 'August' => 'Áýãïõóôïò',
+ 'Average Cost' => '',
+ 'Avg Cost' => '',
+ 'BIC' => '',
+ 'BOM' => '',
+ 'Backup' => 'Áíôßãñáöï áóöáëåßáò',
+ 'Backup sent to' => 'ÁðïóôïëÞ áíôéãñÜöïõ áóöáëåßáò óå..',
+ 'Balance' => 'Éóïæýãéï',
+ 'Balance Sheet' => 'Éóïæýãéï',
+ 'Based on' => 'ÂáóéóìÝíï óå',
+ 'Bcc' => '',
+ 'Before Deduction' => '',
+ 'Beginning Balance' => 'Éóïæýãéï ¸íáñîçò',
+ 'Below' => '',
+ 'Billing Address' => '',
+ 'Bin' => '',
+ 'Bin List' => '',
+ 'Bin Lists' => '',
+ 'Books are open' => 'Ôá âéâëßá åßíáé áíïé÷ôÜ',
+ 'Break' => 'ÄéÜëåõììá',
+ 'Business' => 'Åðé÷åßñçóç',
+ 'Business Number' => 'Êùäéêüò Åðé÷åßñçóçò',
+ 'Business deleted!' => '',
+ 'Business saved!' => '',
+ 'C' => '',
+ 'COGS' => '',
+ 'COGS account does not exist!' => '',
+ 'Cannot add timecard for a completed job!' => '',
+ 'Cannot change timecard for a completed job!' => '',
+ 'Cannot create Assembly' => '',
+ 'Cannot create Labor' => '',
+ 'Cannot create Lock!' => 'Cannot create Lock!',
+ 'Cannot create Part' => '',
+ 'Cannot create Service' => '',
+ 'Cannot delete Timecard!' => '',
+ 'Cannot delete account!' => '',
+ 'Cannot delete customer!' => 'Cannot delete debtor!',
+ 'Cannot delete default account!' => '',
+ 'Cannot delete invoice!' => 'Äåí ìðïñåß íá äéáãñáöåß ôï ôéìïëüãéï',
+ 'Cannot delete item!' => '',
+ 'Cannot delete order!' => 'Äåí ìðïñåß íá äéáãñáöåß ç ðáñáããåëßá',
+ 'Cannot delete quotation!' => '',
+ 'Cannot delete transaction!' => 'Äåí ìðïñåß íá äéáãñáöåß ç êßíçóç',
+ 'Cannot delete vendor!' => 'Äåí ìðïñåß íá äéáãñáöåß ï ðéóôùôÞò',
+ 'Cannot post Payment!' => '',
+ 'Cannot post Receipt!' => 'Äåí ìðïñåß íá åêäïèåß áðüäåéîç',
+ 'Cannot post invoice for a closed period!' => '',
+ 'Cannot post invoice!' => '',
+ 'Cannot post payment for a closed period!' => '',
+ 'Cannot post transaction for a closed period!' => '',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => '',
+ 'Cannot post transaction!' => '',
+ 'Cannot remove files!' => 'Äåí ìðïñïýí íá äéáãñáöïýí áñ÷åßá',
+ 'Cannot save account!' => 'Äåí ìðïñïýí íá áðïèçêåõôïýí ïé ëïãáñéáìïß',
+ 'Cannot save defaults!' => '',
+ 'Cannot save order!' => 'Äåí ìðïñåß íá áðïèçêåõôåß ç ðáñáããåëßá',
+ 'Cannot save preferences!' => '',
+ 'Cannot save quotation!' => '',
+ 'Cannot save timecard for a closed period!' => '',
+ 'Cannot save timecard!' => '',
+ 'Cannot set account for more than one of AR, AP or IC' => '',
+ 'Cannot set multiple options for' => '',
+ 'Cannot set multiple options for Item' => '',
+ 'Cannot stock Assembly!' => '',
+ 'Cannot stock assemblies!' => '',
+ 'Cash' => 'ÑåõóôÜ',
+ 'Cc' => '',
+ 'Change' => '',
+ 'Change Admin Password' => 'Change Admin Password',
+ 'Change Password' => 'ÁëëáãÞ êùäéêïý',
+ 'Charge' => '',
+ 'Chart of Accounts' => 'ÃñÜöçìá ôùí Êùäéêþí',
+ 'Check' => 'ÅðéôáãÞ',
+ 'Check Inventory' => '¸ëåã÷ïò ÁðïãñáöÞò',
+ 'Checks' => 'ÅðéôáãÝò',
+ 'City' => 'Ðüëç',
+ 'Cleared' => '',
+ 'Click on login name to edit!' => 'Click on login name to edit!',
+ 'Clocked' => '',
+ 'Close Books up to' => 'Êëåßóéìï âéâëßùí ìÝ÷ñé',
+ 'Closed' => 'ÊëåéóìÝíï',
+ 'Code' => 'Êùäéêüò',
+ 'Code missing!' => 'Ï Êùäéêüò ëåßðåé',
+ 'Company' => 'Åôáéñßá',
+ 'Company Name' => '¼íïìá åôáéñßáò',
+ 'Compare to' => '',
+ 'Completed' => '',
+ 'Components' => 'ÓõóôáôéêÜ',
+ 'Confirm' => '',
+ 'Confirm!' => 'Åðéâåâáßùóç!',
+ 'Connect to' => 'Óýíäåóç ìå',
+ 'Contact' => 'ÅðáöÞ',
+ 'Continue' => 'ÓõíÝ÷åéá',
+ 'Contra' => '',
+ 'Copies' => 'Áíôßãñáöá',
+ 'Copy to COA' => '',
+ 'Cost' => 'Êüóôïò',
+ 'Cost Center' => 'ÊÝíôñï Êüóôïò',
+ 'Could not save pricelist!' => '',
+ 'Could not save!' => 'Ç áðïèÞêåõóç äåí åßíáé äõíáôÞ',
+ 'Could not transfer Inventory!' => '',
+ 'Country' => '×þñá',
+ 'Create Chart of Accounts' => 'Create Chart of Accounts',
+ 'Create Dataset' => 'Create Dataset',
+ 'Credit' => 'Ðßóôùóç',
+ 'Credit Limit' => '¼ñéï Ðßóôùóçò',
+ 'Curr' => '',
+ 'Currency' => 'ÓõíÜëëáãìá',
+ 'Current' => 'ÔñÝ÷ùí',
+ 'Current Earnings' => 'ÔñÝ÷ùíôá êÝñäç',
+ 'Customer' => 'ÐåëÜôçò',
+ 'Customer History' => 'Éóôïñéêü ÐåëÜôç',
+ 'Customer Number' => 'Êùäéêüò ÐåëÜôç',
+ 'Customer deleted!' => 'Ï ðåëÜôçò äéáãñÜöçêå!',
+ 'Customer missing!' => 'Ï ÐåëÜôçò ëåßðåé!',
+ 'Customer not on file!' => 'Debtor not on file!',
+ 'Customer saved!' => 'Ï ÐåëÜôçò áðïèçêåýôçêå!',
+ 'Customers' => 'ÐåëÜôåò',
+ 'DBI not installed!' => 'DBI äåí Ý÷åé åãêáôáóôáèåß!',
+ 'DOB' => '',
+ 'Database' => 'ÂÜóç äåäïìÝíùí',
+ 'Database Administration' => 'Äéá÷åéñéóôÞò âÜóçò äåäïìÝíùí',
+ 'Database Driver not checked!' => 'Database Driver not checked!',
+ 'Database Host' => '',
+ 'Database User missing!' => 'Database User missing!',
+ 'Dataset' => '',
+ 'Dataset is newer than version!' => '',
+ 'Dataset missing!' => 'Dataset missing!',
+ 'Dataset updated!' => 'Dataset updated!',
+ 'Date' => 'Çìåñïìçíßá',
+ 'Date Format' => 'ÌïñöÞ çìåñïìçíßáò',
+ 'Date Paid' => 'Çì. ÐëçñùìÞò',
+ 'Date Received' => '',
+ 'Date missing!' => 'Äåí õðÜñ÷åé ç çìåñïìçíßá',
+ 'Date received missing!' => '',
+ 'Date worked' => '',
+ 'Day' => '',
+ 'Day(s)' => '',
+ 'Days' => '',
+ 'Debit' => '×ñÝïò',
+ 'Dec' => 'Äåê',
+ 'December' => 'ÄåêÝìâñéïò',
+ 'Decimalplaces' => 'ÄåêáäéêÜ',
+ 'Decrease' => 'Ìåßùóç',
+ 'Deduct after' => 'ÐáñáêñÜôçóç ìåôÜ',
+ 'Deduction deleted!' => 'ÐáñáêñÜôçóç äéáãñÜöçêå',
+ 'Deduction saved!' => 'ÐáñáêñÜôçóç áðïèçêåýôçêå',
+ 'Deductions' => 'ÐáñáêñáôÞóåéò',
+ 'Default Template' => '',
+ 'Defaults' => 'ÐñïåðéëïãÝò',
+ 'Defaults saved!' => 'ÐñïåðéëïãÝò áðïèçêåýôçêáí',
+ 'Delete' => 'ÄéáãñáöÞ',
+ 'Delete Account' => 'ÄéáãñáöÞ Ëïãáñéáóìïý',
+ 'Delete Dataset' => 'Delete Dataset',
+ 'Delete Schedule' => '',
+ 'Deleting a language will also delete the templates for the language' => '',
+ 'Delivery Date' => '',
+ 'Department' => 'ÔìÞìá',
+ 'Department deleted!' => 'ÔìÞìá äéáãñÜöçêå',
+ 'Department saved!' => 'ÔìÞìá áðïèçêåýôçêå',
+ 'Departments' => 'ÔìÞìáôá',
+ 'Deposit' => 'ÊáôÜèåóç',
+ 'Description' => 'ÐåñéãñáöÞ',
+ 'Description Translations' => 'ÐåñéãñáöÞ ÌåôáöñÜóåùí',
+ 'Description missing!' => 'ÐåñéãñáöÞ ëåßðåé',
+ 'Detail' => 'ËåðôïìÝñåéá',
+ 'Difference' => 'ÄéáöïñÜ',
+ 'Directory' => 'Directory',
+ 'Discount' => '¸êðôùóç',
+ 'Done' => 'ÅíôÜîåé',
+ 'Drawing' => 'Ó÷Ýäéï',
+ 'Driver' => 'Driver',
+ 'Dropdown Limit' => '',
+ 'Due Date' => 'Çìåñïìçíßá ëÞîçò',
+ 'Due Date missing!' => 'Ç çìåñïìçíßá ëÞîçò ëåßðåé',
+ 'E-mail' => '',
+ 'E-mail Statement to' => '',
+ 'E-mail address missing!' => '',
+ 'E-mail message' => '',
+ 'E-mailed' => '',
+ 'Edit' => 'Åðåîåñãáóßá',
+ 'Edit AP Transaction' => '',
+ 'Edit AR Transaction' => '',
+ 'Edit Account' => 'Åðåîåñãáóßá ëïãáñéáóìïý',
+ 'Edit Assembly' => 'Åðåîåñãáóßá óõíáñìïëüãçóçò',
+ 'Edit Business' => 'Åðåîåñãáóßá åðé÷åßñçóçò',
+ 'Edit Cash Transfer Transaction' => 'Åðåîåñãáóßá êßíçóçò ìåôáöïñÜò ÷ñçìÜôùí',
+ 'Edit Customer' => 'Åðåîåñãáóßá ÐåëÜôç',
+ 'Edit Deduction' => '',
+ 'Edit Department' => '',
+ 'Edit Description Translations' => '',
+ 'Edit Employee' => 'Åðåîåñãáóßá ÅñãáæïìÝíïõ',
+ 'Edit GIFI' => '',
+ 'Edit General Ledger Transaction' => '',
+ 'Edit Group' => '',
+ 'Edit Job' => '',
+ 'Edit Labor/Overhead' => '',
+ 'Edit Language' => 'Åðåîåñãáóßá ãëþóóáò',
+ 'Edit POS Invoice' => 'Åðåîåñãáóßá áðüäåéîçò ôáìåéáêÞò',
+ 'Edit Part' => '',
+ 'Edit Preferences for' => 'Åðåîåñãáóßá ðñïôéìÞóåùí ãéá',
+ 'Edit Pricegroup' => '',
+ 'Edit Project' => 'Åðåîåñãáóßá Ýñãïõ',
+ 'Edit Purchase Order' => '',
+ 'Edit Quotation' => 'Åðåîåñãáóßá ðñïóöïñÜò',
+ 'Edit Request for Quotation' => '',
+ 'Edit SIC' => '',
+ 'Edit Sales Invoice' => 'Åðåîåñãáóßá ôéìïëïãßïõ',
+ 'Edit Sales Order' => '',
+ 'Edit Service' => 'Åðåîåñãáóßá õðçñåóßáò',
+ 'Edit Template' => '',
+ 'Edit Timecard' => '',
+ 'Edit User' => 'Åðåîåñãáóßá ÷ñÞóôç',
+ 'Edit Vendor' => 'Edit Creditor',
+ 'Edit Vendor Invoice' => 'Edit Creditor Invoice',
+ 'Edit Warehouse' => '',
+ 'Employee' => 'ÕðÜëëçëïò',
+ 'Employee Name' => '¼íïìá ÕðáëëÞëïõ',
+ 'Employee Number' => 'Áñ. ÕðáëëÞëïõ',
+ 'Employee deleted!' => 'Ï ÕðÜëëçëïò ÄéáãñÜöçêå',
+ 'Employee pays' => '',
+ 'Employee saved!' => 'Ï ÕðÜëëçëïò áðïèçêåýôçêå',
+ 'Employees' => 'ÕðÜëëçëïé',
+ 'Employer' => 'Åñãïäüôçò',
+ 'Employer pays' => '',
+ 'Enddate' => '',
+ 'Ends' => '',
+ 'Enforce transaction reversal for all dates' => '',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'ÅÕÑ',
+ 'Equity' => 'Åðéåßêéá',
+ 'Every' => '',
+ 'Excempt age <' => '',
+ 'Exch' => 'Óõíáëë',
+ 'Exchange Rate' => 'ÔéìÞ óõíáëëÜãìáôïò',
+ 'Exchange rate for payment missing!' => 'Ç ôéìÞ óõíáëëÜãìáôïò ëåßðåé',
+ 'Exchange rate missing!' => '',
+ 'Existing Datasets' => 'Existing Datasets',
+ 'Expense' => '¸îïäá',
+ 'Expense account does not exist!' => '',
+ 'Expense/Asset' => '¸îïäï/ÐÜãéï',
+ 'Extended' => '',
+ 'FX' => '',
+ 'Failed to save order!' => '',
+ 'Fax' => 'Öáî',
+ 'Feb' => 'Öåâ',
+ 'February' => 'ÖåâñïõÜñéïò',
+ 'For' => '',
+ 'Foreign Exchange Gain' => 'ÊÝñäïò áðü óõííáëáãìáôéêÞ äéáöïñÜ ',
+ 'Foreign Exchange Loss' => 'Æçìßá áðü óõíáëëáãìáôéêÞ äéáöïñÜ',
+ 'Friday' => '',
+ 'From' => 'Áðü',
+ 'From Warehouse' => '',
+ 'GIFI' => '',
+ 'GIFI deleted!' => '',
+ 'GIFI missing!' => '',
+ 'GIFI saved!' => '',
+ 'GL' => '',
+ 'GL Reference Number' => '',
+ 'GL Transaction' => '',
+ 'General Ledger' => '',
+ 'Generate' => '',
+ 'Generate Orders' => '',
+ 'Generate Purchase Orders' => '',
+ 'Generate Purchase Orders from Sales Order' => '',
+ 'Generate Sales Order' => '',
+ 'Generate Sales Order from Purchase Orders' => '',
+ 'Generate Sales Orders' => '',
+ 'Goods & Services' => '',
+ 'Group' => 'ÏìÜäá',
+ 'Group Items' => '',
+ 'Group Translations' => '',
+ 'Group deleted!' => '',
+ 'Group missing!' => '',
+ 'Group saved!' => '',
+ 'Groups' => '',
+ 'HR' => 'ÄÐ',
+ 'HTML Templates' => '',
+ 'Heading' => '',
+ 'History' => 'Éóôïñéêü',
+ 'Home Phone' => 'Ôçë. Óðéôéïý',
+ 'Host' => 'Host',
+ 'Hostname missing!' => 'Hostname missing!',
+ 'IBAN' => '',
+ 'ID' => '',
+ 'Image' => 'Åéêüíá',
+ 'In-line' => '',
+ 'Inactive' => '',
+ 'Include Exchange Rate Difference' => '',
+ 'Include Payment' => '',
+ 'Include in Report' => '',
+ 'Include in drop-down menus' => '',
+ 'Income' => 'Åéóüäçìá',
+ 'Income Statement' => '',
+ 'Income account does not exist!' => '',
+ 'Incorrect Dataset version!' => '',
+ 'Increase' => 'Áýîçóç',
+ 'Individual Items' => '',
+ 'Internal Notes' => '',
+ 'Inventory' => 'ÁðïãñáöÞ',
+ 'Inventory account does not exist!' => '',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => '',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => '',
+ 'Inventory saved!' => 'Ç ÁðïãñáöÞ áðïèçêåýôçêå',
+ 'Inventory transferred!' => '',
+ 'Invoice' => 'Ôéìïëüãéï',
+ 'Invoice Date' => 'Çì. ôéìïëïãßïõ',
+ 'Invoice Date missing!' => '',
+ 'Invoice Number' => 'Áñ. ôéìïëïãßïõ',
+ 'Invoice Number missing!' => 'Ôï ôéìïëüãéï äéáãñÜöçêå',
+ 'Invoice deleted!' => '',
+ 'Invoices' => 'Ôéìïëüãéá',
+ 'Is this a summary account to record' => '',
+ 'Item already on pricelist!' => '',
+ 'Item deleted!' => 'Ôï ôåìÜ÷éï äéáãñÜöçêå',
+ 'Item not on file!' => 'ÔåìÜ÷éï äåí åßíáé óå áñ÷åßï',
+ 'Items' => 'ÔåìÜ÷éá',
+ 'Jan' => 'ÉÜí',
+ 'January' => 'ÉáíïõÜñéïò',
+ 'Job' => '',
+ 'Job Name' => '',
+ 'Job Number' => '',
+ 'Job Number missing!' => '',
+ 'Job deleted!' => '',
+ 'Job saved!' => '',
+ 'Jobs' => '',
+ 'Jul' => 'Éïýë',
+ 'July' => 'Éïýëéïò',
+ 'Jun' => 'Éïýí',
+ 'June' => 'Éïýíéïò',
+ 'LaTeX Templates' => '',
+ 'Labor Code' => '',
+ 'Labor/Overhead' => '',
+ 'Language' => 'Ãëþóóá',
+ 'Language deleted!' => 'Ç ãëþóóá äéáãñÜöêò',
+ 'Language saved!' => 'Ç ãëþóóá áðïèçêÝõôçêå',
+ 'Languages' => 'Ãëþóóåó',
+ 'Languages not defined!' => '',
+ 'Last Cost' => '',
+ 'Last Numbers & Default Accounts' => '',
+ 'Lead' => '',
+ 'Leadtime' => '',
+ 'Leave host and port field empty unless you want to make a remote connection.' => 'Leave host and port field empty unless you want to make a remote connection.',
+ 'Liability' => 'Ðáèçôéêü',
+ 'Licensed to' => 'Áäåéá óå',
+ 'Line Total' => '',
+ 'Link' => 'Óýíäåóìïò',
+ 'Link Accounts' => '',
+ 'List' => 'Ëßóôá',
+ 'List Accounts' => 'Ëßóôá Ëïãáñéáóìþí',
+ 'List Businesses' => '',
+ 'List Departments' => '',
+ 'List GIFI' => '',
+ 'List Languages' => 'Ëßóôá ãëùóóþí',
+ 'List Price' => 'Ëßóôá ôéìþí',
+ 'List Projects' => 'Ëßóôá ¸ñãùí',
+ 'List SIC' => '',
+ 'List Transactions' => 'Ëßóôá ÊéíÞóåùí',
+ 'List Warehouses' => 'Ëßóôá áðïèçêþí',
+ 'Lock System' => 'Lock System',
+ 'Lockfile created!' => 'Lockfile created!',
+ 'Lockfile removed!' => 'Lockfile removed!',
+ 'Login' => 'ÅéóáãùãÞ',
+ 'Login name missing!' => 'Login name missing!',
+ 'Logout' => 'ÅîáãùãÞ',
+ 'Make' => '',
+ 'Manager' => 'ÄéåõèõíôÞò',
+ 'Mar' => 'Ìáñ',
+ 'March' => 'ÌÜñôéïò',
+ 'Marked entries printed!' => '',
+ 'Markup' => '',
+ 'Maximum' => 'ÌÝãéóôï',
+ 'May' => 'ÌÜúïò',
+ 'May ' => 'ÌÜúïò',
+ 'Memo' => '',
+ 'Menu Width' => '',
+ 'Message' => 'Ìýíçìá',
+ 'Method' => 'ÌÝèïäïò',
+ 'Microfiche' => '',
+ 'Model' => 'ÌïíôÝëï',
+ 'Monday' => '',
+ 'Month' => 'ÌÞíáò',
+ 'Month(s)' => '',
+ 'Months' => '',
+ 'Multibyte Encoding' => 'Multibyte Encoding',
+ 'N/A' => '',
+ 'Name' => '¼íïìá',
+ 'Name missing!' => 'Ôï üíïìá äåí õðÜñ÷åé',
+ 'New Templates' => 'New Templates',
+ 'New Window' => '',
+ 'Next' => '',
+ 'Next Date' => '',
+ 'Next Number' => '',
+ 'No' => '¼÷é',
+ 'No Database Drivers available!' => 'No Database Drivers available!',
+ 'No Dataset selected!' => 'No Dataset selected!',
+ 'No Employees on file!' => '',
+ 'No Labor codes on file!' => '',
+ 'No email address for' => '',
+ 'No open Jobs!' => '',
+ 'No open Projects!' => '',
+ 'No.' => '',
+ 'Non-taxable' => 'Äåí åßíáé öïñïëïãßóéìï',
+ 'Non-taxable Purchases' => '',
+ 'Non-taxable Sales' => '',
+ 'Non-tracking Items' => '',
+ 'Notes' => 'Óçìåéþóåéò',
+ 'Nothing entered!' => 'Äåí å÷åé ãßíåé åéóáãùãÞ',
+ 'Nothing selected!' => 'Äåí Ý÷å åðéëå÷èåß ôßðïôá',
+ 'Nothing to delete!' => 'Äåí õðÜñ÷åé ôßðïôá ãéá äéáãñáöÞ!',
+ 'Nothing to print!' => 'Äåí õðÜñ÷åé ôßðïôá ãéá åêôýðùóç',
+ 'Nothing to transfer!' => '',
+ 'Nov' => 'ÍïÝ',
+ 'November' => 'ÍïÝìâñéïò',
+ 'Number' => 'Áñéèìüò',
+ 'Number Format' => '',
+ 'Number missing in Row' => '',
+ 'O' => 'Ï',
+ 'OH' => '',
+ 'Obsolete' => 'Áðáñ÷áéùìÝíïò',
+ 'Oct' => 'Ïêô',
+ 'October' => 'Ïêôþâñéïò',
+ 'On Hand' => '',
+ 'Open' => '¢íïéãìá',
+ 'Oracle Database Administration' => 'Oracle Database Administration',
+ 'Order' => 'Ðáñáããåëßá',
+ 'Order Date' => 'Çì. Ðáñáããåëßáò',
+ 'Order Date missing!' => '',
+ 'Order Entry' => '',
+ 'Order Number' => 'Áñ. Ðáñáããåëßáò',
+ 'Order Number missing!' => '',
+ 'Order deleted!' => 'Ç Ðáñáããåëßá äéáãñÜöçêå',
+ 'Order generation failed!' => '',
+ 'Order saved!' => 'Ç Ðáñáããåëßá áðïèçêåýôçêå',
+ 'Orders generated!' => '',
+ 'Orphaned' => '',
+ 'Out of balance transaction!' => '',
+ 'Out of balance!' => '',
+ 'Outstanding' => 'Áîéïóçìåßùôï',
+ 'PDF' => '',
+ 'PO Number' => '',
+ 'POS' => '',
+ 'POS Invoice' => '',
+ 'Packing List' => '',
+ 'Packing List Date missing!' => '',
+ 'Packing List Number missing!' => '',
+ 'Packing Lists' => '',
+ 'Paid' => '',
+ 'Part' => '',
+ 'Part Number' => '',
+ 'Partnumber' => '',
+ 'Parts' => '',
+ 'Password' => '',
+ 'Password changed!' => 'Password changed!',
+ 'Password does not match!' => '',
+ 'Passwords do not match!' => '',
+ 'Payables' => '',
+ 'Payment' => '',
+ 'Payment date missing!' => '',
+ 'Payment posted!' => '',
+ 'Payments' => '',
+ 'Payments posted!' => '',
+ 'Payroll Deduction' => 'ÊñÜôçóç ìéóèïý',
+ 'Period' => '',
+ 'Pg Database Administration' => 'Pg Database Administration',
+ 'PgPP Database Administration' => 'PgPP Database Administration',
+ 'Phone' => 'ÔçëÝöùíï',
+ 'Pick List' => '',
+ 'Pick Lists' => '',
+ 'Port' => 'Port',
+ 'Port missing!' => 'Port missing!',
+ 'Pos' => '',
+ 'Post' => '',
+ 'Post as new' => '',
+ 'Posted!' => '',
+ 'Posting' => '',
+ 'Posting failed!' => '',
+ 'Postscript' => '',
+ 'Preferences' => 'ÅðéëïãÝò',
+ 'Preferences saved!' => 'ÅðéëïãÝò áðïèçêåýôçêáí',
+ 'Prepayment' => 'ÐñïðëçñùìÞ',
+ 'Price' => 'ÔéìÞ',
+ 'Pricegroup' => '',
+ 'Pricegroup deleted!' => '',
+ 'Pricegroup missing!' => '',
+ 'Pricegroup saved!' => '',
+ 'Pricegroups' => '',
+ 'Pricelist' => '',
+ 'Print' => 'Åêôýðùóç',
+ 'Print and Post' => '¸êôýðùóç êáé áðïóôïëÞ',
+ 'Print and Post as new' => '',
+ 'Print and Save' => 'Åêôýðùóç êáé áðïèÞêåõóç',
+ 'Print and Save as new' => '',
+ 'Print and post as new' => '',
+ 'Print and save as new' => '',
+ 'Printed' => 'Åêôõðþèçêå',
+ 'Printer' => 'ÅêôõðùôÞò',
+ 'Printing' => '',
+ 'Printing ... ' => 'Åêôõðþíåôáé...',
+ 'Process Transactions' => '',
+ 'Production' => '',
+ 'Profit Center' => '',
+ 'Project' => '¸ñãï',
+ 'Project Description Translations' => '',
+ 'Project Name' => '',
+ 'Project Number' => 'Áñéèìüò Ýñãïõ',
+ 'Project Number missing!' => '',
+ 'Project Transactions' => '',
+ 'Project deleted!' => '',
+ 'Project not on file!' => '',
+ 'Project saved!' => '',
+ 'Project/Job Name' => '',
+ 'Project/Job Number' => '',
+ 'Projects' => '¸ñãá',
+ 'Purchase Order' => '',
+ 'Purchase Order Number' => '',
+ 'Purchase Orders' => '',
+ 'Qty' => 'Ðïó.',
+ 'Quantity exceeds available units to stock!' => '',
+ 'Quarter' => '',
+ 'Quotation' => '',
+ 'Quotation ' => '',
+ 'Quotation Date' => '',
+ 'Quotation Date missing!' => '',
+ 'Quotation Number' => '',
+ 'Quotation Number missing!' => '',
+ 'Quotation deleted!' => '',
+ 'Quotations' => '',
+ 'R' => '',
+ 'RFQ' => '',
+ 'RFQ ' => '',
+ 'RFQ Number' => '',
+ 'RFQs' => '',
+ 'ROP' => '',
+ 'Rate' => '',
+ 'Rate missing!' => '',
+ 'Recd' => '',
+ 'Receipt' => 'Áðüäåéîç',
+ 'Receipt posted!' => '',
+ 'Receipts' => '',
+ 'Receivables' => '',
+ 'Receive' => '',
+ 'Receive Merchandise' => '',
+ 'Reconciliation' => '',
+ 'Reconciliation Report' => '',
+ 'Record in' => '',
+ 'Recurring Transaction' => '',
+ 'Recurring Transactions' => '',
+ 'Reference' => '',
+ 'Remaining' => '',
+ 'Remove' => '',
+ 'Remove Audit trail up to' => '',
+ 'Removed spoolfiles!' => '',
+ 'Removing marked entries from queue ...' => '',
+ 'Repeat' => '',
+ 'Report for' => '',
+ 'Reports' => '',
+ 'Req' => '',
+ 'Request for Quotation' => '',
+ 'Request for Quotations' => '',
+ 'Required by' => '',
+ 'Retained Earnings' => '',
+ 'Role' => '',
+ 'S' => '',
+ 'SIC' => '',
+ 'SIC deleted!' => '',
+ 'SIC saved!' => '',
+ 'SKU' => '',
+ 'SSN' => '',
+ 'Sale' => 'Ðþëçóç',
+ 'Sales' => '',
+ 'Sales Invoice' => '',
+ 'Sales Invoice ' => '',
+ 'Sales Invoice.' => '',
+ 'Sales Invoice/AR Transaction Number' => '',
+ 'Sales Invoices' => '',
+ 'Sales Order' => '',
+ 'Sales Order Number' => '',
+ 'Sales Orders' => '',
+ 'Sales Quotation Number' => '',
+ 'Salesperson' => '',
+ 'Saturday' => '',
+ 'Save' => 'ÁðïèÞêåõóç',
+ 'Save Pricelist' => '',
+ 'Save Schedule' => '',
+ 'Save as new' => '',
+ 'Save to File' => '',
+ 'Saving' => '',
+ 'Schedule' => '',
+ 'Scheduled' => '',
+ 'Screen' => 'Ïèüíç',
+ 'Search' => 'ÁíáæÞôçóç',
+ 'Select' => 'ÅðéëïãÞ',
+ 'Select Customer' => '',
+ 'Select Vendor' => '',
+ 'Select a Printer!' => '',
+ 'Select a printer!' => '',
+ 'Select all' => 'ÅðéëïãÞ üëùí',
+ 'Select from one of the items below' => '',
+ 'Select from one of the names below' => '',
+ 'Select from one of the projects below' => '',
+ 'Select items' => '',
+ 'Select payment' => '',
+ 'Select postscript or PDF!' => '',
+ 'Select txt, postscript or PDF!' => '',
+ 'Sell' => '',
+ 'Sell Price' => '',
+ 'Send by E-Mail' => '',
+ 'Sending' => '',
+ 'Sep' => '',
+ 'September' => '',
+ 'Serial No.' => '',
+ 'Serial Number' => '',
+ 'Service' => 'Õðçñåóßá',
+ 'Service Code' => '',
+ 'Service/Labor Code' => '',
+ 'Services' => '',
+ 'Session Timeout' => '',
+ 'Session expired!' => '',
+ 'Setup Templates' => 'Setup Templates',
+ 'Ship' => '',
+ 'Ship Merchandise' => '',
+ 'Ship to' => '',
+ 'Ship via' => '',
+ 'Shipping' => '',
+ 'Shipping Address' => '',
+ 'Shipping Date' => '',
+ 'Shipping Date missing!' => '',
+ 'Shipping Point' => '',
+ 'Short' => '',
+ 'Signature' => 'ÕðïãñáöÞ',
+ 'Source' => 'ÐçãÞ',
+ 'Spoolfile' => '',
+ 'Standard' => '',
+ 'Standard Industrial Codes' => '',
+ 'Startdate' => '',
+ 'State' => '',
+ 'State/Province' => '',
+ 'Statement' => '',
+ 'Statement Balance' => '',
+ 'Statement sent to' => '',
+ 'Statements sent to printer!' => '',
+ 'Stock' => '',
+ 'Stock Assembly' => '',
+ 'Stocking Date' => '',
+ 'Stylesheet' => '',
+ 'Sub-contract GIFI' => '',
+ 'Subject' => '',
+ 'Subtotal' => '',
+ 'Summary' => '',
+ 'Sunday' => '',
+ 'Supervisor' => '',
+ 'System' => '',
+ 'System Defaults' => '',
+ 'Tax' => 'Öüñïò',
+ 'Tax Accounts' => '',
+ 'Tax Included' => '',
+ 'Tax Number' => '',
+ 'Tax Number / SSN' => 'Á.Ö.Ì.',
+ 'Tax collected' => '',
+ 'Tax paid' => '',
+ 'Taxable' => '',
+ 'Template saved!' => '',
+ 'Templates' => 'Templates',
+ 'Terms' => '',
+ 'Text' => '',
+ 'Text Templates' => '',
+ 'The following Datasets are not in use and can be deleted' => 'The following Datasets are not in use and can be deleted',
+ 'The following Datasets need to be updated' => 'The following Datasets need to be updated',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!',
+ 'Thursday' => '',
+ 'Till' => '',
+ 'Time In' => '',
+ 'Time Out' => '',
+ 'Timecard' => '',
+ 'Timecard deleted!' => '',
+ 'Timecard saved!' => '',
+ 'Timecards' => '',
+ 'Times' => '',
+ 'To' => '',
+ 'To Warehouse' => '',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.',
+ 'Top Level' => '',
+ 'Total' => '',
+ 'Tracking Items' => '',
+ 'Trade Discount' => '',
+ 'Transaction' => '',
+ 'Transaction Date missing!' => '',
+ 'Transaction Dates' => '',
+ 'Transaction deleted!' => '',
+ 'Transaction posted!' => '',
+ 'Transaction reversal enforced for all dates' => '',
+ 'Transaction reversal enforced up to' => '',
+ 'Transactions' => '',
+ 'Transfer' => '',
+ 'Transfer Inventory' => '',
+ 'Transfer from' => '',
+ 'Transfer to' => '',
+ 'Translation' => '',
+ 'Translation deleted!' => '',
+ 'Translation not on file!' => '',
+ 'Translations' => '',
+ 'Translations saved!' => '',
+ 'Trial Balance' => '',
+ 'Tuesday' => '',
+ 'Type of Business' => '',
+ 'Unit' => '',
+ 'Unit of measure' => '',
+ 'Unlock System' => 'Unlock System',
+ 'Update' => '',
+ 'Update Dataset' => 'Update Dataset',
+ 'Updated' => '',
+ 'Upgrading to Version' => '',
+ 'Use Templates' => 'Use Templates',
+ 'User' => '',
+ 'User deleted!' => 'User deleted!',
+ 'User saved!' => 'User saved!',
+ 'Valid until' => '',
+ 'Vendor' => 'Creditor',
+ 'Vendor History' => '',
+ 'Vendor Invoice' => 'Creditor Invoice',
+ 'Vendor Invoice ' => '',
+ 'Vendor Invoice.' => '',
+ 'Vendor Invoice/AP Transaction Number' => '',
+ 'Vendor Invoices' => '',
+ 'Vendor Number' => 'Creditor Number',
+ 'Vendor deleted!' => 'Creditor deleted!',
+ 'Vendor missing!' => 'Creditor missing!',
+ 'Vendor not on file!' => 'Creditor not on file!',
+ 'Vendor saved!' => 'Creditor saved!',
+ 'Vendors' => 'Creditors',
+ 'Version' => '',
+ 'Warehouse' => '',
+ 'Warehouse deleted!' => '',
+ 'Warehouse saved!' => '',
+ 'Warehouses' => '',
+ 'Warning!' => '',
+ 'Wednesday' => '',
+ 'Week' => '',
+ 'Week(s)' => '',
+ 'Weeks' => '',
+ 'Weight' => '',
+ 'Weight Unit' => '',
+ 'What type of item is this?' => '',
+ 'Work Order' => '',
+ 'Work Orders' => '',
+ 'Work Phone' => '',
+ 'Year' => '',
+ 'Year(s)' => '',
+ 'Yearend' => '',
+ 'Yearend date missing!' => '',
+ 'Yearend posted!' => '',
+ 'Yearend posting failed!' => '',
+ 'Years' => '',
+ 'Yes' => '',
+ 'You are logged out' => '',
+ 'You are posting an existing transaction!' => '',
+ 'You are printing and posting an existing transaction!' => '',
+ 'You are printing and saving an existing order' => '',
+ 'You are printing and saving an existing quotation' => '',
+ 'You are printing and saving an existing transaction!' => '',
+ 'You are saving an existing order' => '',
+ 'You are saving an existing quotation' => '',
+ 'You are saving an existing transaction!' => '',
+ 'You did not enter a name!' => '',
+ 'You must enter a host and port for local and remote connections!' => 'You must enter a host and port for local and remote connections!',
+ 'Zip/Postal Code' => '',
+ 'account cannot be set to any other type of account' => '',
+ 'as at' => '',
+ 'days' => '',
+ 'does not exist' => 'does not exist',
+ 'done' => '',
+ 'ea' => '',
+ 'failed' => '',
+ 'for' => '',
+ 'for Period' => '',
+ 'is already a member!' => 'is already a member!',
+ 'localhost' => '',
+ 'locked!' => '',
+ 'partsgroup' => '',
+ 'posted!' => '',
+ 'sent' => '',
+ 'successfully created!' => 'successfully created!',
+ 'successfully deleted!' => 'successfully deleted!',
+ 'time(s)' => '',
+ 'unexpected error!' => '',
+ 'website' => 'website',
+};
+
+1;
diff --git a/locale/gr/am b/locale/gr/am
new file mode 100755
index 00000000..7bb62edd
--- /dev/null
+++ b/locale/gr/am
@@ -0,0 +1,182 @@
+$self{charset} = 'ISO-8859-7';
+
+$self{texts} = {
+ 'AP' => 'ÁãïñÝò',
+ 'AR' => 'ÐùëÞóåéò',
+ 'Account' => 'Ëïãáñéáóìüò',
+ 'Account Number' => 'Êùäéêüò Ëïãáñéáóìïý',
+ 'Account Number missing!' => 'Ï êùäéêüò ëïãáñéáóìïý ëåßðåé',
+ 'Account Type' => 'Ôýðïò Êùäéêïý',
+ 'Account Type missing!' => 'Ï ôýðïò ôïõ êùäéêïý ëåßðåé',
+ 'Account deleted!' => 'Ï ëïãáñéáóìüò äéáãñÜöçêå',
+ 'Account does not exist!' => 'Ï ëïãáñéáóìüò äåí õðÜñ÷åé',
+ 'Account saved!' => 'Ï ëïãáñéóìüò áðïèçêåýôçêå',
+ 'Accounting Menu' => 'Ìåíðý ËïãéóôéêÞò',
+ 'Accrual' => 'Áýîçóç',
+ 'Add Account' => 'ÐñïóèÞêç ëïãáñéáóìïý',
+ 'Add Language' => 'ÐñïóèÞêç ãëþóóáò',
+ 'Add Warehouse' => 'ÐñïóèÞêç ÁðïèÞêçò',
+ 'Address' => 'ÄéÝõèõíóç',
+ 'Amount' => 'Ðïóü',
+ 'Asset' => 'ÐÜãéï',
+ 'Audit Control' => 'Åëåã÷ïò',
+ 'Backup sent to' => 'ÁðïóôïëÞ áíôéãñÜöïõ áóöáëåßáò óå..',
+ 'Books are open' => 'Ôá âéâëßá åßíáé áíïé÷ôÜ',
+ 'Business Number' => 'Êùäéêüò Åðé÷åßñçóçò',
+ 'Cannot save account!' => 'Äåí ìðïñïýí íá áðïèçêåõôïýí ïé ëïãáñéáìïß',
+ 'Cash' => 'ÑåõóôÜ',
+ 'Chart of Accounts' => 'ÃñÜöçìá ôùí Êùäéêþí',
+ 'Close Books up to' => 'Êëåßóéìï âéâëßùí ìÝ÷ñé',
+ 'Code' => 'Êùäéêüò',
+ 'Code missing!' => 'Ï Êùäéêüò ëåßðåé',
+ 'Company' => 'Åôáéñßá',
+ 'Confirm!' => 'Åðéâåâáßùóç!',
+ 'Continue' => 'ÓõíÝ÷åéá',
+ 'Cost Center' => 'ÊÝíôñï Êüóôïò',
+ 'Credit' => 'Ðßóôùóç',
+ 'Customer Number' => 'Êùäéêüò ÐåëÜôç',
+ 'Date Format' => 'ÌïñöÞ çìåñïìçíßáò',
+ 'Debit' => '×ñÝïò',
+ 'Defaults saved!' => 'ÐñïåðéëïãÝò áðïèçêåýôçêáí',
+ 'Delete' => 'ÄéáãñáöÞ',
+ 'Delete Account' => 'ÄéáãñáöÞ Ëïãáñéáóìïý',
+ 'Department deleted!' => 'ÔìÞìá äéáãñÜöçêå',
+ 'Department saved!' => 'ÔìÞìá áðïèçêåýôçêå',
+ 'Departments' => 'ÔìÞìáôá',
+ 'Description' => 'ÐåñéãñáöÞ',
+ 'Description missing!' => 'ÐåñéãñáöÞ ëåßðåé',
+ 'Discount' => '¸êðôùóç',
+ 'Edit' => 'Åðåîåñãáóßá',
+ 'Edit Account' => 'Åðåîåñãáóßá ëïãáñéáóìïý',
+ 'Edit Business' => 'Åðåîåñãáóßá åðé÷åßñçóçò',
+ 'Edit Language' => 'Åðåîåñãáóßá ãëþóóáò',
+ 'Edit Preferences for' => 'Åðåîåñãáóßá ðñïôéìÞóåùí ãéá',
+ 'Employee Number' => 'Áñ. ÕðáëëÞëïõ',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'ÅÕÑ',
+ 'Equity' => 'Åðéåßêéá',
+ 'Expense' => '¸îïäá',
+ 'Expense/Asset' => '¸îïäï/ÐÜãéï',
+ 'Fax' => 'Öáî',
+ 'Foreign Exchange Gain' => 'ÊÝñäïò áðü óõííáëáãìáôéêÞ äéáöïñÜ ',
+ 'Foreign Exchange Loss' => 'Æçìßá áðü óõíáëëáãìáôéêÞ äéáöïñÜ',
+ 'Income' => 'Åéóüäçìá',
+ 'Inventory' => 'ÁðïãñáöÞ',
+ 'Invoice' => 'Ôéìïëüãéï',
+ 'Language' => 'Ãëþóóá',
+ 'Language deleted!' => 'Ç ãëþóóá äéáãñÜöêò',
+ 'Language saved!' => 'Ç ãëþóóá áðïèçêÝõôçêå',
+ 'Languages' => 'Ãëþóóåó',
+ 'Liability' => 'Ðáèçôéêü',
+ 'Licensed to' => 'Áäåéá óå',
+ 'Link' => 'Óýíäåóìïò',
+ 'Method' => 'ÌÝèïäïò',
+ 'Month' => 'ÌÞíáò',
+ 'Name' => '¼íïìá',
+ 'No' => '¼÷é',
+ 'Number' => 'Áñéèìüò',
+ 'Phone' => 'ÔçëÝöùíï',
+ 'Preferences saved!' => 'ÅðéëïãÝò áðïèçêåýôçêáí',
+ 'Print' => 'Åêôýðùóç',
+ 'Printer' => 'ÅêôõðùôÞò',
+ 'Save' => 'ÁðïèÞêåõóç',
+ 'Signature' => 'ÕðïãñáöÞ',
+ 'Tax' => 'Öüñïò',
+ 'Vendor Invoice' => 'Creditor Invoice',
+ 'Vendor Number' => 'Creditor Number',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'ÐñïóèÞêç_ëïãáñéáóìïý' => 'add_account',
+ 'ÐñïóèÞêç_ãëþóóáò' => 'add_language',
+ 'ÐñïóèÞêç_ÁðïèÞêçò' => 'add_warehouse',
+ 'ÓõíÝ÷åéá' => 'continue',
+ 'ÄéáãñáöÞ' => 'delete',
+ 'Åðåîåñãáóßá' => 'edit',
+ 'Åðåîåñãáóßá_ëïãáñéáóìïý' => 'edit_account',
+ 'ÁðïèÞêåõóç' => 'save',
+};
+
+1;
+
diff --git a/locale/gr/ap b/locale/gr/ap
new file mode 100755
index 00000000..45a155fa
--- /dev/null
+++ b/locale/gr/ap
@@ -0,0 +1,145 @@
+$self{charset} = 'ISO-8859-7';
+
+$self{texts} = {
+ 'AP Transaction' => 'ÊéíÞóç ÁãïñÜò',
+ 'AP Transactions' => 'ÊéíÞóåéò Áãïñþí',
+ 'AR Transaction' => 'ÊéíÞóåéò ÐùëÞóåùí',
+ 'AR Transactions' => 'ÊéíÞóåéò ÐùëÞóåùí',
+ 'Account' => 'Ëïãáñéáóìüò',
+ 'Accounting Menu' => 'Ìåíðý ËïãéóôéêÞò',
+ 'Address' => 'ÄéÝõèõíóç',
+ 'Amount' => 'Ðïóü',
+ 'Apr' => 'Áðñ',
+ 'April' => 'Áðñßëéïò',
+ 'Are you sure you want to delete Transaction' => 'Åßóáé óßãïõñïò üôé èÝëåéò íá äéáãñÜøåéò ôçí êßíçóç',
+ 'Aug' => 'Áõã',
+ 'August' => 'Áýãïõóôïò',
+ 'Cannot delete transaction!' => 'Äåí ìðïñåß íá äéáãñáöåß ç êßíçóç',
+ 'Check' => 'ÅðéôáãÞ',
+ 'Closed' => 'ÊëåéóìÝíï',
+ 'Confirm!' => 'Åðéâåâáßùóç!',
+ 'Continue' => 'ÓõíÝ÷åéá',
+ 'Credit' => 'Ðßóôùóç',
+ 'Credit Limit' => '¼ñéï Ðßóôùóçò',
+ 'Currency' => 'ÓõíÜëëáãìá',
+ 'Current' => 'ÔñÝ÷ùí',
+ 'Customer' => 'ÐåëÜôçò',
+ 'Customer missing!' => 'Ï ÐåëÜôçò ëåßðåé!',
+ 'Customer not on file!' => 'Debtor not on file!',
+ 'Date' => 'Çìåñïìçíßá',
+ 'Date Paid' => 'Çì. ÐëçñùìÞò',
+ 'Debit' => '×ñÝïò',
+ 'Dec' => 'Äåê',
+ 'December' => 'ÄåêÝìâñéïò',
+ 'Delete' => 'ÄéáãñáöÞ',
+ 'Department' => 'ÔìÞìá',
+ 'Description' => 'ÐåñéãñáöÞ',
+ 'Detail' => 'ËåðôïìÝñåéá',
+ 'Due Date' => 'Çìåñïìçíßá ëÞîçò',
+ 'Due Date missing!' => 'Ç çìåñïìçíßá ëÞîçò ëåßðåé',
+ 'Employee' => 'ÕðÜëëçëïò',
+ 'Exch' => 'Óõíáëë',
+ 'Exchange Rate' => 'ÔéìÞ óõíáëëÜãìáôïò',
+ 'Exchange rate for payment missing!' => 'Ç ôéìÞ óõíáëëÜãìáôïò ëåßðåé',
+ 'Feb' => 'Öåâ',
+ 'February' => 'ÖåâñïõÜñéïò',
+ 'From' => 'Áðü',
+ 'Invoice' => 'Ôéìïëüãéï',
+ 'Invoice Date' => 'Çì. ôéìïëïãßïõ',
+ 'Invoice Number' => 'Áñ. ôéìïëïãßïõ',
+ 'Jan' => 'ÉÜí',
+ 'January' => 'ÉáíïõÜñéïò',
+ 'Jul' => 'Éïýë',
+ 'July' => 'Éïýëéïò',
+ 'Jun' => 'Éïýí',
+ 'June' => 'Éïýíéïò',
+ 'Manager' => 'ÄéåõèõíôÞò',
+ 'Mar' => 'Ìáñ',
+ 'March' => 'ÌÜñôéïò',
+ 'May' => 'ÌÜúïò',
+ 'May ' => 'ÌÜúïò',
+ 'Message' => 'Ìýíçìá',
+ 'Month' => 'ÌÞíáò',
+ 'Notes' => 'Óçìåéþóåéò',
+ 'Nothing to print!' => 'Äåí õðÜñ÷åé ôßðïôá ãéá åêôýðùóç',
+ 'Nov' => 'ÍïÝ',
+ 'November' => 'ÍïÝìâñéïò',
+ 'Number' => 'Áñéèìüò',
+ 'Oct' => 'Ïêô',
+ 'October' => 'Ïêôþâñéïò',
+ 'Open' => '¢íïéãìá',
+ 'Order' => 'Ðáñáããåëßá',
+ 'Order Number' => 'Áñ. Ðáñáããåëßáò',
+ 'Print' => 'Åêôýðùóç',
+ 'Print and Post' => '¸êôýðùóç êáé áðïóôïëÞ',
+ 'Printed' => 'Åêôõðþèçêå',
+ 'Project' => '¸ñãï',
+ 'Receipt' => 'Áðüäåéîç',
+ 'Screen' => 'Ïèüíç',
+ 'Source' => 'ÐçãÞ',
+ 'Tax' => 'Öüñïò',
+ 'Vendor' => 'Creditor',
+ 'Vendor missing!' => 'Creditor missing!',
+ 'Vendor not on file!' => 'Creditor not on file!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'ÊéíÞóç_ÁãïñÜò' => 'ap_transaction',
+ 'ÊéíÞóåéò_ÐùëÞóåùí' => 'ar_transaction',
+ 'ÓõíÝ÷åéá' => 'continue',
+ 'ÄéáãñáöÞ' => 'delete',
+ 'Åêôýðùóç' => 'print',
+ '¸êôýðùóç_êáé_áðïóôïëÞ' => 'print_and_post',
+};
+
+1;
+
diff --git a/locale/gr/ar b/locale/gr/ar
new file mode 100755
index 00000000..45a155fa
--- /dev/null
+++ b/locale/gr/ar
@@ -0,0 +1,145 @@
+$self{charset} = 'ISO-8859-7';
+
+$self{texts} = {
+ 'AP Transaction' => 'ÊéíÞóç ÁãïñÜò',
+ 'AP Transactions' => 'ÊéíÞóåéò Áãïñþí',
+ 'AR Transaction' => 'ÊéíÞóåéò ÐùëÞóåùí',
+ 'AR Transactions' => 'ÊéíÞóåéò ÐùëÞóåùí',
+ 'Account' => 'Ëïãáñéáóìüò',
+ 'Accounting Menu' => 'Ìåíðý ËïãéóôéêÞò',
+ 'Address' => 'ÄéÝõèõíóç',
+ 'Amount' => 'Ðïóü',
+ 'Apr' => 'Áðñ',
+ 'April' => 'Áðñßëéïò',
+ 'Are you sure you want to delete Transaction' => 'Åßóáé óßãïõñïò üôé èÝëåéò íá äéáãñÜøåéò ôçí êßíçóç',
+ 'Aug' => 'Áõã',
+ 'August' => 'Áýãïõóôïò',
+ 'Cannot delete transaction!' => 'Äåí ìðïñåß íá äéáãñáöåß ç êßíçóç',
+ 'Check' => 'ÅðéôáãÞ',
+ 'Closed' => 'ÊëåéóìÝíï',
+ 'Confirm!' => 'Åðéâåâáßùóç!',
+ 'Continue' => 'ÓõíÝ÷åéá',
+ 'Credit' => 'Ðßóôùóç',
+ 'Credit Limit' => '¼ñéï Ðßóôùóçò',
+ 'Currency' => 'ÓõíÜëëáãìá',
+ 'Current' => 'ÔñÝ÷ùí',
+ 'Customer' => 'ÐåëÜôçò',
+ 'Customer missing!' => 'Ï ÐåëÜôçò ëåßðåé!',
+ 'Customer not on file!' => 'Debtor not on file!',
+ 'Date' => 'Çìåñïìçíßá',
+ 'Date Paid' => 'Çì. ÐëçñùìÞò',
+ 'Debit' => '×ñÝïò',
+ 'Dec' => 'Äåê',
+ 'December' => 'ÄåêÝìâñéïò',
+ 'Delete' => 'ÄéáãñáöÞ',
+ 'Department' => 'ÔìÞìá',
+ 'Description' => 'ÐåñéãñáöÞ',
+ 'Detail' => 'ËåðôïìÝñåéá',
+ 'Due Date' => 'Çìåñïìçíßá ëÞîçò',
+ 'Due Date missing!' => 'Ç çìåñïìçíßá ëÞîçò ëåßðåé',
+ 'Employee' => 'ÕðÜëëçëïò',
+ 'Exch' => 'Óõíáëë',
+ 'Exchange Rate' => 'ÔéìÞ óõíáëëÜãìáôïò',
+ 'Exchange rate for payment missing!' => 'Ç ôéìÞ óõíáëëÜãìáôïò ëåßðåé',
+ 'Feb' => 'Öåâ',
+ 'February' => 'ÖåâñïõÜñéïò',
+ 'From' => 'Áðü',
+ 'Invoice' => 'Ôéìïëüãéï',
+ 'Invoice Date' => 'Çì. ôéìïëïãßïõ',
+ 'Invoice Number' => 'Áñ. ôéìïëïãßïõ',
+ 'Jan' => 'ÉÜí',
+ 'January' => 'ÉáíïõÜñéïò',
+ 'Jul' => 'Éïýë',
+ 'July' => 'Éïýëéïò',
+ 'Jun' => 'Éïýí',
+ 'June' => 'Éïýíéïò',
+ 'Manager' => 'ÄéåõèõíôÞò',
+ 'Mar' => 'Ìáñ',
+ 'March' => 'ÌÜñôéïò',
+ 'May' => 'ÌÜúïò',
+ 'May ' => 'ÌÜúïò',
+ 'Message' => 'Ìýíçìá',
+ 'Month' => 'ÌÞíáò',
+ 'Notes' => 'Óçìåéþóåéò',
+ 'Nothing to print!' => 'Äåí õðÜñ÷åé ôßðïôá ãéá åêôýðùóç',
+ 'Nov' => 'ÍïÝ',
+ 'November' => 'ÍïÝìâñéïò',
+ 'Number' => 'Áñéèìüò',
+ 'Oct' => 'Ïêô',
+ 'October' => 'Ïêôþâñéïò',
+ 'Open' => '¢íïéãìá',
+ 'Order' => 'Ðáñáããåëßá',
+ 'Order Number' => 'Áñ. Ðáñáããåëßáò',
+ 'Print' => 'Åêôýðùóç',
+ 'Print and Post' => '¸êôýðùóç êáé áðïóôïëÞ',
+ 'Printed' => 'Åêôõðþèçêå',
+ 'Project' => '¸ñãï',
+ 'Receipt' => 'Áðüäåéîç',
+ 'Screen' => 'Ïèüíç',
+ 'Source' => 'ÐçãÞ',
+ 'Tax' => 'Öüñïò',
+ 'Vendor' => 'Creditor',
+ 'Vendor missing!' => 'Creditor missing!',
+ 'Vendor not on file!' => 'Creditor not on file!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'ÊéíÞóç_ÁãïñÜò' => 'ap_transaction',
+ 'ÊéíÞóåéò_ÐùëÞóåùí' => 'ar_transaction',
+ 'ÓõíÝ÷åéá' => 'continue',
+ 'ÄéáãñáöÞ' => 'delete',
+ 'Åêôýðùóç' => 'print',
+ '¸êôýðùóç_êáé_áðïóôïëÞ' => 'print_and_post',
+};
+
+1;
+
diff --git a/locale/gr/arap b/locale/gr/arap
new file mode 100755
index 00000000..d7fda7df
--- /dev/null
+++ b/locale/gr/arap
@@ -0,0 +1,41 @@
+$self{charset} = 'ISO-8859-7';
+
+$self{texts} = {
+ 'Address' => 'ÄéÝõèõíóç',
+ 'Continue' => 'ÓõíÝ÷åéá',
+ 'Customer not on file!' => 'Debtor not on file!',
+ 'Date' => 'Çìåñïìçíßá',
+ 'Description' => 'ÐåñéãñáöÞ',
+ 'Message' => 'Ìýíçìá',
+ 'Number' => 'Áñéèìüò',
+ 'Print' => 'Åêôýðùóç',
+ 'Vendor not on file!' => 'Creditor not on file!',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'ÓõíÝ÷åéá' => 'continue',
+};
+
+1;
+
diff --git a/locale/gr/arapprn b/locale/gr/arapprn
new file mode 100755
index 00000000..76dda99a
--- /dev/null
+++ b/locale/gr/arapprn
@@ -0,0 +1,29 @@
+$self{charset} = 'ISO-8859-7';
+
+$self{texts} = {
+ 'Account' => 'Ëïãáñéáóìüò',
+ 'Amount' => 'Ðïóü',
+ 'Continue' => 'ÓõíÝ÷åéá',
+ 'Date' => 'Çìåñïìçíßá',
+ 'Nothing to print!' => 'Äåí õðÜñ÷åé ôßðïôá ãéá åêôýðùóç',
+ 'Printed' => 'Åêôõðþèçêå',
+ 'Screen' => 'Ïèüíç',
+ 'Source' => 'ÐçãÞ',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'ÓõíÝ÷åéá' => 'continue',
+};
+
+1;
+
diff --git a/locale/gr/bp b/locale/gr/bp
new file mode 100755
index 00000000..4e71be97
--- /dev/null
+++ b/locale/gr/bp
@@ -0,0 +1,43 @@
+$self{charset} = 'ISO-8859-7';
+
+$self{texts} = {
+ 'Account' => 'Ëïãáñéáóìüò',
+ 'Accounting Menu' => 'Ìåíðý ËïãéóôéêÞò',
+ 'Cannot remove files!' => 'Äåí ìðïñïýí íá äéáãñáöïýí áñ÷åßá',
+ 'Confirm!' => 'Åðéâåâáßùóç!',
+ 'Continue' => 'ÓõíÝ÷åéá',
+ 'Current' => 'ÔñÝ÷ùí',
+ 'Customer' => 'ÐåëÜôçò',
+ 'Date' => 'Çìåñïìçíßá',
+ 'Employee' => 'ÕðÜëëçëïò',
+ 'From' => 'Áðü',
+ 'Invoice' => 'Ôéìïëüãéï',
+ 'Invoice Number' => 'Áñ. ôéìïëïãßïõ',
+ 'Month' => 'ÌÞíáò',
+ 'Order' => 'Ðáñáããåëßá',
+ 'Order Number' => 'Áñ. Ðáñáããåëßáò',
+ 'Print' => 'Åêôýðùóç',
+ 'Select all' => 'ÅðéëïãÞ üëùí',
+ 'Vendor' => 'Creditor',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'ÓõíÝ÷åéá' => 'continue',
+ 'Åêôýðùóç' => 'print',
+ 'ÅðéëïãÞ_üëùí' => 'select_all',
+};
+
+1;
+
diff --git a/locale/gr/ca b/locale/gr/ca
new file mode 100755
index 00000000..1b6a371f
--- /dev/null
+++ b/locale/gr/ca
@@ -0,0 +1,50 @@
+$self{charset} = 'ISO-8859-7';
+
+$self{texts} = {
+ 'Account' => 'Ëïãáñéáóìüò',
+ 'Apr' => 'Áðñ',
+ 'April' => 'Áðñßëéïò',
+ 'Aug' => 'Áõã',
+ 'August' => 'Áýãïõóôïò',
+ 'Balance' => 'Éóïæýãéï',
+ 'Chart of Accounts' => 'ÃñÜöçìá ôùí Êùäéêþí',
+ 'Credit' => 'Ðßóôùóç',
+ 'Current' => 'ÔñÝ÷ùí',
+ 'Date' => 'Çìåñïìçíßá',
+ 'Debit' => '×ñÝïò',
+ 'Dec' => 'Äåê',
+ 'December' => 'ÄåêÝìâñéïò',
+ 'Department' => 'ÔìÞìá',
+ 'Description' => 'ÐåñéãñáöÞ',
+ 'Feb' => 'Öåâ',
+ 'February' => 'ÖåâñïõÜñéïò',
+ 'From' => 'Áðü',
+ 'Jan' => 'ÉÜí',
+ 'January' => 'ÉáíïõÜñéïò',
+ 'Jul' => 'Éïýë',
+ 'July' => 'Éïýëéïò',
+ 'Jun' => 'Éïýí',
+ 'June' => 'Éïýíéïò',
+ 'List Transactions' => 'Ëßóôá ÊéíÞóåùí',
+ 'Mar' => 'Ìáñ',
+ 'March' => 'ÌÜñôéïò',
+ 'May' => 'ÌÜúïò',
+ 'May ' => 'ÌÜúïò',
+ 'Month' => 'ÌÞíáò',
+ 'Nov' => 'ÍïÝ',
+ 'November' => 'ÍïÝìâñéïò',
+ 'Oct' => 'Ïêô',
+ 'October' => 'Ïêôþâñéïò',
+ 'Project Number' => 'Áñéèìüò Ýñãïõ',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'Ëßóôá_ÊéíÞóåùí' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/gr/cp b/locale/gr/cp
new file mode 100755
index 00000000..f7266327
--- /dev/null
+++ b/locale/gr/cp
@@ -0,0 +1,96 @@
+$self{charset} = 'ISO-8859-7';
+
+$self{texts} = {
+ 'AP' => 'ÁãïñÝò',
+ 'AR' => 'ÐùëÞóåéò',
+ 'Account' => 'Ëïãáñéáóìüò',
+ 'Accounting Menu' => 'Ìåíðý ËïãéóôéêÞò',
+ 'Address' => 'ÄéÝõèõíóç',
+ 'All' => '¼ëá',
+ 'Amount' => 'Ðïóü',
+ 'Cannot post Receipt!' => 'Äåí ìðïñåß íá åêäïèåß áðüäåéîç',
+ 'Continue' => 'ÓõíÝ÷åéá',
+ 'Currency' => 'ÓõíÜëëáãìá',
+ 'Customer' => 'ÐåëÜôçò',
+ 'Customer not on file!' => 'Debtor not on file!',
+ 'Date' => 'Çìåñïìçíßá',
+ 'Date missing!' => 'Äåí õðÜñ÷åé ç çìåñïìçíßá',
+ 'Department' => 'ÔìÞìá',
+ 'Deposit' => 'ÊáôÜèåóç',
+ 'Description' => 'ÐåñéãñáöÞ',
+ 'Due Date' => 'Çìåñïìçíßá ëÞîçò',
+ 'Exchange Rate' => 'ÔéìÞ óõíáëëÜãìáôïò',
+ 'From' => 'Áðü',
+ 'Invoice' => 'Ôéìïëüãéï',
+ 'Invoices' => 'Ôéìïëüãéá',
+ 'Language' => 'Ãëþóóá',
+ 'Message' => 'Ìýíçìá',
+ 'Number' => 'Áñéèìüò',
+ 'Prepayment' => 'ÐñïðëçñùìÞ',
+ 'Print' => 'Åêôýðùóç',
+ 'Receipt' => 'Áðüäåéîç',
+ 'Screen' => 'Ïèüíç',
+ 'Select' => 'ÅðéëïãÞ',
+ 'Select all' => 'ÅðéëïãÞ üëùí',
+ 'Source' => 'ÐçãÞ',
+ 'Vendor' => 'Creditor',
+ 'Vendor not on file!' => 'Creditor not on file!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'ÓõíÝ÷åéá' => 'continue',
+ 'Åêôýðùóç' => 'print',
+ 'ÅðéëïãÞ_üëùí' => 'select_all',
+};
+
+1;
+
diff --git a/locale/gr/ct b/locale/gr/ct
new file mode 100755
index 00000000..e28caed7
--- /dev/null
+++ b/locale/gr/ct
@@ -0,0 +1,121 @@
+$self{charset} = 'ISO-8859-7';
+
+$self{texts} = {
+ 'AP Transaction' => 'ÊéíÞóç ÁãïñÜò',
+ 'AP Transactions' => 'ÊéíÞóåéò Áãïñþí',
+ 'AR Transaction' => 'ÊéíÞóåéò ÐùëÞóåùí',
+ 'AR Transactions' => 'ÊéíÞóåéò ÐùëÞóåùí',
+ 'Accounting Menu' => 'Ìåíðý ËïãéóôéêÞò',
+ 'Active' => 'Åíåñãüò',
+ 'Add Customer' => 'ÐñïóèÞêç ÐåëÜôç',
+ 'Add Vendor' => 'ÐñïóèÞêç ÐéóôùôÞ',
+ 'Address' => 'ÄéÝõèõíóç',
+ 'All' => '¼ëá',
+ 'Amount' => 'Ðïóü',
+ 'Break' => 'ÄéÜëåõììá',
+ 'Cannot delete customer!' => 'Cannot delete debtor!',
+ 'Cannot delete vendor!' => 'Äåí ìðïñåß íá äéáãñáöåß ï ðéóôùôÞò',
+ 'City' => 'Ðüëç',
+ 'Closed' => 'ÊëåéóìÝíï',
+ 'Company Name' => '¼íïìá åôáéñßáò',
+ 'Contact' => 'ÅðáöÞ',
+ 'Continue' => 'ÓõíÝ÷åéá',
+ 'Cost' => 'Êüóôïò',
+ 'Country' => '×þñá',
+ 'Credit Limit' => '¼ñéï Ðßóôùóçò',
+ 'Currency' => 'ÓõíÜëëáãìá',
+ 'Customer History' => 'Éóôïñéêü ÐåëÜôç',
+ 'Customer Number' => 'Êùäéêüò ÐåëÜôç',
+ 'Customer deleted!' => 'Ï ðåëÜôçò äéáãñÜöçêå!',
+ 'Customer saved!' => 'Ï ÐåëÜôçò áðïèçêåýôçêå!',
+ 'Customers' => 'ÐåëÜôåò',
+ 'Delete' => 'ÄéáãñáöÞ',
+ 'Description' => 'ÐåñéãñáöÞ',
+ 'Detail' => 'ËåðôïìÝñåéá',
+ 'Discount' => '¸êðôùóç',
+ 'Edit Customer' => 'Åðåîåñãáóßá ÐåëÜôç',
+ 'Edit Vendor' => 'Edit Creditor',
+ 'Employee' => 'ÕðÜëëçëïò',
+ 'Fax' => 'Öáî',
+ 'From' => 'Áðü',
+ 'Group' => 'ÏìÜäá',
+ 'Invoice' => 'Ôéìïëüãéï',
+ 'Item not on file!' => 'ÔåìÜ÷éï äåí åßíáé óå áñ÷åßï',
+ 'Language' => 'Ãëþóóá',
+ 'Manager' => 'ÄéåõèõíôÞò',
+ 'Name' => '¼íïìá',
+ 'Name missing!' => 'Ôï üíïìá äåí õðÜñ÷åé',
+ 'Notes' => 'Óçìåéþóåéò',
+ 'Number' => 'Áñéèìüò',
+ 'Open' => '¢íïéãìá',
+ 'Order' => 'Ðáñáããåëßá',
+ 'Phone' => 'ÔçëÝöùíï',
+ 'Project Number' => 'Áñéèìüò Ýñãïõ',
+ 'Qty' => 'Ðïó.',
+ 'Save' => 'ÁðïèÞêåõóç',
+ 'Search' => 'ÁíáæÞôçóç',
+ 'Tax' => 'Öüñïò',
+ 'Tax Number / SSN' => 'Á.Ö.Ì.',
+ 'Vendor Invoice' => 'Creditor Invoice',
+ 'Vendor Number' => 'Creditor Number',
+ 'Vendor deleted!' => 'Creditor deleted!',
+ 'Vendor saved!' => 'Creditor saved!',
+ 'Vendors' => 'Creditors',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'ÊéíÞóç_ÁãïñÜò' => 'ap_transaction',
+ 'ÊéíÞóåéò_ÐùëÞóåùí' => 'ar_transaction',
+ 'ÐñïóèÞêç_ÐåëÜôç' => 'add_customer',
+ 'ÐñïóèÞêç_ÐéóôùôÞ' => 'add_vendor',
+ 'ÓõíÝ÷åéá' => 'continue',
+ 'ÄéáãñáöÞ' => 'delete',
+ 'ÁðïèÞêåõóç' => 'save',
+ 'creditor_invoice' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/gr/gl b/locale/gr/gl
new file mode 100755
index 00000000..c32c8f34
--- /dev/null
+++ b/locale/gr/gl
@@ -0,0 +1,111 @@
+$self{charset} = 'ISO-8859-7';
+
+$self{texts} = {
+ 'AP Transaction' => 'ÊéíÞóç ÁãïñÜò',
+ 'AR Transaction' => 'ÊéíÞóåéò ÐùëÞóåùí',
+ 'Account' => 'Ëïãáñéáóìüò',
+ 'Accounting Menu' => 'Ìåíðý ËïãéóôéêÞò',
+ 'Address' => 'ÄéÝõèõíóç',
+ 'All' => '¼ëá',
+ 'Amount' => 'Ðïóü',
+ 'Apr' => 'Áðñ',
+ 'April' => 'Áðñßëéïò',
+ 'Are you sure you want to delete Transaction' => 'Åßóáé óßãïõñïò üôé èÝëåéò íá äéáãñÜøåéò ôçí êßíçóç',
+ 'Asset' => 'ÐÜãéï',
+ 'Aug' => 'Áõã',
+ 'August' => 'Áýãïõóôïò',
+ 'Balance' => 'Éóïæýãéï',
+ 'Cannot delete transaction!' => 'Äåí ìðïñåß íá äéáãñáöåß ç êßíçóç',
+ 'Confirm!' => 'Åðéâåâáßùóç!',
+ 'Continue' => 'ÓõíÝ÷åéá',
+ 'Credit' => 'Ðßóôùóç',
+ 'Current' => 'ÔñÝ÷ùí',
+ 'Customer not on file!' => 'Debtor not on file!',
+ 'Date' => 'Çìåñïìçíßá',
+ 'Debit' => '×ñÝïò',
+ 'Dec' => 'Äåê',
+ 'December' => 'ÄåêÝìâñéïò',
+ 'Delete' => 'ÄéáãñáöÞ',
+ 'Department' => 'ÔìÞìá',
+ 'Description' => 'ÐåñéãñáöÞ',
+ 'Edit Cash Transfer Transaction' => 'Åðåîåñãáóßá êßíçóçò ìåôáöïñÜò ÷ñçìÜôùí',
+ 'Equity' => 'Åðéåßêéá',
+ 'Expense' => '¸îïäá',
+ 'Feb' => 'Öåâ',
+ 'February' => 'ÖåâñïõÜñéïò',
+ 'From' => 'Áðü',
+ 'Income' => 'Åéóüäçìá',
+ 'Jan' => 'ÉÜí',
+ 'January' => 'ÉáíïõÜñéïò',
+ 'Jul' => 'Éïýë',
+ 'July' => 'Éïýëéïò',
+ 'Jun' => 'Éïýí',
+ 'June' => 'Éïýíéïò',
+ 'Liability' => 'Ðáèçôéêü',
+ 'Mar' => 'Ìáñ',
+ 'March' => 'ÌÜñôéïò',
+ 'May' => 'ÌÜúïò',
+ 'May ' => 'ÌÜúïò',
+ 'Message' => 'Ìýíçìá',
+ 'Month' => 'ÌÞíáò',
+ 'Notes' => 'Óçìåéþóåéò',
+ 'Nov' => 'ÍïÝ',
+ 'November' => 'ÍïÝìâñéïò',
+ 'Number' => 'Áñéèìüò',
+ 'Oct' => 'Ïêô',
+ 'October' => 'Ïêôþâñéïò',
+ 'Print' => 'Åêôýðùóç',
+ 'Project' => '¸ñãï',
+ 'Source' => 'ÐçãÞ',
+ 'Vendor not on file!' => 'Creditor not on file!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'ÊéíÞóç_ÁãïñÜò' => 'ap_transaction',
+ 'ÊéíÞóåéò_ÐùëÞóåùí' => 'ar_transaction',
+ 'ÓõíÝ÷åéá' => 'continue',
+ 'ÄéáãñáöÞ' => 'delete',
+};
+
+1;
+
diff --git a/locale/gr/hr b/locale/gr/hr
new file mode 100755
index 00000000..60fd9e43
--- /dev/null
+++ b/locale/gr/hr
@@ -0,0 +1,86 @@
+$self{charset} = 'ISO-8859-7';
+
+$self{texts} = {
+ 'AP' => 'ÁãïñÝò',
+ 'Accounting Menu' => 'Ìåíðý ËïãéóôéêÞò',
+ 'Active' => 'Åíåñãüò',
+ 'Add Employee' => 'ÐñïóèÞêç õðáëëÞëïõ',
+ 'Address' => 'ÄéÝõèõíóç',
+ 'Administrator' => 'Äéá÷åéñéóôÞò',
+ 'After Deduction' => 'ÌåôÜ ¸êðôùóéò',
+ 'All' => '¼ëá',
+ 'Allowances' => 'Ðáñï÷Ýò',
+ 'Amount' => 'Ðïóü',
+ 'Amount missing!' => 'Ðïóü ðïõ ëåßðåé',
+ 'Based on' => 'ÂáóéóìÝíï óå',
+ 'City' => 'Ðüëç',
+ 'Continue' => 'ÓõíÝ÷åéá',
+ 'Country' => '×þñá',
+ 'Deduct after' => 'ÐáñáêñÜôçóç ìåôÜ',
+ 'Deduction deleted!' => 'ÐáñáêñÜôçóç äéáãñÜöçêå',
+ 'Deduction saved!' => 'ÐáñáêñÜôçóç áðïèçêåýôçêå',
+ 'Deductions' => 'ÐáñáêñáôÞóåéò',
+ 'Delete' => 'ÄéáãñáöÞ',
+ 'Description' => 'ÐåñéãñáöÞ',
+ 'Description missing!' => 'ÐåñéãñáöÞ ëåßðåé',
+ 'Edit Employee' => 'Åðåîåñãáóßá ÅñãáæïìÝíïõ',
+ 'Employee' => 'ÕðÜëëçëïò',
+ 'Employee Name' => '¼íïìá ÕðáëëÞëïõ',
+ 'Employee Number' => 'Áñ. ÕðáëëÞëïõ',
+ 'Employee deleted!' => 'Ï ÕðÜëëçëïò ÄéáãñÜöçêå',
+ 'Employee saved!' => 'Ï ÕðÜëëçëïò áðïèçêåýôçêå',
+ 'Employees' => 'ÕðÜëëçëïé',
+ 'Employer' => 'Åñãïäüôçò',
+ 'Expense' => '¸îïäá',
+ 'From' => 'Áðü',
+ 'Home Phone' => 'Ôçë. Óðéôéïý',
+ 'Login' => 'ÅéóáãùãÞ',
+ 'Manager' => 'ÄéåõèõíôÞò',
+ 'Maximum' => 'ÌÝãéóôï',
+ 'Name' => '¼íïìá',
+ 'Name missing!' => 'Ôï üíïìá äåí õðÜñ÷åé',
+ 'Notes' => 'Óçìåéþóåéò',
+ 'Number' => 'Áñéèìüò',
+ 'Payroll Deduction' => 'ÊñÜôçóç ìéóèïý',
+ 'Save' => 'ÁðïèÞêåõóç',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'ÐñïóèÞêç_õðáëëÞëïõ' => 'add_employee',
+ 'ÓõíÝ÷åéá' => 'continue',
+ 'ÄéáãñáöÞ' => 'delete',
+ 'ÁðïèÞêåõóç' => 'save',
+};
+
+1;
+
diff --git a/locale/gr/ic b/locale/gr/ic
new file mode 100755
index 00000000..639726ec
--- /dev/null
+++ b/locale/gr/ic
@@ -0,0 +1,169 @@
+$self{charset} = 'ISO-8859-7';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Ìåíðý ËïãéóôéêÞò',
+ 'Accounts' => 'Ëïãáñéáóìïß',
+ 'Accrual' => 'Áýîçóç',
+ 'Active' => 'Åíåñãüò',
+ 'Add' => 'ÐñïóèÞêç',
+ 'Add Quotation' => 'ÐñïóèÞêç ðñïóöïñÜò',
+ 'Add Sales Order' => 'ÐñïóèÞêç Ðáñáããåëßáò',
+ 'Add Service' => 'ÐñïóèÞêç õðçñåóßáò',
+ 'Address' => 'ÄéÝõèõíóç',
+ 'Apr' => 'Áðñ',
+ 'April' => 'Áðñßëéïò',
+ 'Assemblies' => 'ÓõíáñìïëïãÞóåéò',
+ 'Assembly' => 'Óõíáñìïëüãçóç',
+ 'Attachment' => 'ÅîÜñôçìá',
+ 'Aug' => 'Áõã',
+ 'August' => 'Áýãïõóôïò',
+ 'Break' => 'ÄéÜëåõììá',
+ 'Cash' => 'ÑåõóôÜ',
+ 'Check Inventory' => '¸ëåã÷ïò ÁðïãñáöÞò',
+ 'City' => 'Ðüëç',
+ 'Closed' => 'ÊëåéóìÝíï',
+ 'Company Name' => '¼íïìá åôáéñßáò',
+ 'Components' => 'ÓõóôáôéêÜ',
+ 'Contact' => 'ÅðáöÞ',
+ 'Continue' => 'ÓõíÝ÷åéá',
+ 'Copies' => 'Áíôßãñáöá',
+ 'Cost' => 'Êüóôïò',
+ 'Country' => '×þñá',
+ 'Currency' => 'ÓõíÜëëáãìá',
+ 'Customer' => 'ÐåëÜôçò',
+ 'Customer Number' => 'Êùäéêüò ÐåëÜôç',
+ 'Customer not on file!' => 'Debtor not on file!',
+ 'Date' => 'Çìåñïìçíßá',
+ 'Dec' => 'Äåê',
+ 'December' => 'ÄåêÝìâñéïò',
+ 'Delete' => 'ÄéáãñáöÞ',
+ 'Description' => 'ÐåñéãñáöÞ',
+ 'Detail' => 'ËåðôïìÝñåéá',
+ 'Drawing' => 'Ó÷Ýäéï',
+ 'Edit Assembly' => 'Åðåîåñãáóßá óõíáñìïëüãçóçò',
+ 'Edit Service' => 'Åðåîåñãáóßá õðçñåóßáò',
+ 'Employee' => 'ÕðÜëëçëïò',
+ 'Expense' => '¸îïäá',
+ 'Fax' => 'Öáî',
+ 'Feb' => 'Öåâ',
+ 'February' => 'ÖåâñïõÜñéïò',
+ 'From' => 'Áðü',
+ 'Group' => 'ÏìÜäá',
+ 'Image' => 'Åéêüíá',
+ 'Income' => 'Åéóüäçìá',
+ 'Inventory' => 'ÁðïãñáöÞ',
+ 'Invoice' => 'Ôéìïëüãéï',
+ 'Invoice Number' => 'Áñ. ôéìïëïãßïõ',
+ 'Invoice Number missing!' => 'Ôï ôéìïëüãéï äéáãñÜöçêå',
+ 'Item deleted!' => 'Ôï ôåìÜ÷éï äéáãñÜöçêå',
+ 'Item not on file!' => 'ÔåìÜ÷éï äåí åßíáé óå áñ÷åßï',
+ 'Items' => 'ÔåìÜ÷éá',
+ 'Jan' => 'ÉÜí',
+ 'January' => 'ÉáíïõÜñéïò',
+ 'Jul' => 'Éïýë',
+ 'July' => 'Éïýëéïò',
+ 'Jun' => 'Éïýí',
+ 'June' => 'Éïýíéïò',
+ 'List' => 'Ëßóôá',
+ 'List Price' => 'Ëßóôá ôéìþí',
+ 'Mar' => 'Ìáñ',
+ 'March' => 'ÌÜñôéïò',
+ 'May' => 'ÌÜúïò',
+ 'May ' => 'ÌÜúïò',
+ 'Message' => 'Ìýíçìá',
+ 'Model' => 'ÌïíôÝëï',
+ 'Name' => '¼íïìá',
+ 'Notes' => 'Óçìåéþóåéò',
+ 'Nov' => 'ÍïÝ',
+ 'November' => 'ÍïÝìâñéïò',
+ 'Number' => 'Áñéèìüò',
+ 'Obsolete' => 'Áðáñ÷áéùìÝíïò',
+ 'Oct' => 'Ïêô',
+ 'October' => 'Ïêôþâñéïò',
+ 'Open' => '¢íïéãìá',
+ 'Order' => 'Ðáñáããåëßá',
+ 'Order Number' => 'Áñ. Ðáñáããåëßáò',
+ 'Phone' => 'ÔçëÝöùíï',
+ 'Price' => 'ÔéìÞ',
+ 'Printed' => 'Åêôõðþèçêå',
+ 'Project' => '¸ñãï',
+ 'Qty' => 'Ðïó.',
+ 'Save' => 'ÁðïèÞêåõóç',
+ 'Screen' => 'Ïèüíç',
+ 'Service' => 'Õðçñåóßá',
+ 'Tax' => 'Öüñïò',
+ 'Vendor' => 'Creditor',
+ 'Vendor Invoice' => 'Creditor Invoice',
+ 'Vendor Number' => 'Creditor Number',
+ 'Vendor not on file!' => 'Creditor not on file!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'ÐñïóèÞêç_õðçñåóßáò' => 'add_service',
+ 'ÓõíÝ÷åéá' => 'continue',
+ 'ÄéáãñáöÞ' => 'delete',
+ 'Åðåîåñãáóßá_óõíáñìïëüãçóçò' => 'edit_assembly',
+ 'Åðåîåñãáóßá_õðçñåóßáò' => 'edit_service',
+ 'ÁðïèÞêåõóç' => 'save',
+};
+
+1;
+
diff --git a/locale/gr/io b/locale/gr/io
new file mode 100755
index 00000000..c59c3b30
--- /dev/null
+++ b/locale/gr/io
@@ -0,0 +1,83 @@
+$self{charset} = 'ISO-8859-7';
+
+$self{texts} = {
+ 'Add Quotation' => 'ÐñïóèÞêç ðñïóöïñÜò',
+ 'Add Sales Order' => 'ÐñïóèÞêç Ðáñáããåëßáò',
+ 'Address' => 'ÄéÝõèõíóç',
+ 'Apr' => 'Áðñ',
+ 'April' => 'Áðñßëéïò',
+ 'Attachment' => 'ÅîÜñôçìá',
+ 'Aug' => 'Áõã',
+ 'August' => 'Áýãïõóôïò',
+ 'City' => 'Ðüëç',
+ 'Company Name' => '¼íïìá åôáéñßáò',
+ 'Contact' => 'ÅðáöÞ',
+ 'Continue' => 'ÓõíÝ÷åéá',
+ 'Copies' => 'Áíôßãñáöá',
+ 'Country' => '×þñá',
+ 'Customer Number' => 'Êùäéêüò ÐåëÜôç',
+ 'Date' => 'Çìåñïìçíßá',
+ 'Dec' => 'Äåê',
+ 'December' => 'ÄåêÝìâñéïò',
+ 'Description' => 'ÐåñéãñáöÞ',
+ 'Fax' => 'Öáî',
+ 'Feb' => 'Öåâ',
+ 'February' => 'ÖåâñïõÜñéïò',
+ 'Group' => 'ÏìÜäá',
+ 'Invoice' => 'Ôéìïëüãéï',
+ 'Invoice Number missing!' => 'Ôï ôéìïëüãéï äéáãñÜöçêå',
+ 'Item not on file!' => 'ÔåìÜ÷éï äåí åßíáé óå áñ÷åßï',
+ 'Jan' => 'ÉÜí',
+ 'January' => 'ÉáíïõÜñéïò',
+ 'Jul' => 'Éïýë',
+ 'July' => 'Éïýëéïò',
+ 'Jun' => 'Éïýí',
+ 'June' => 'Éïýíéïò',
+ 'Mar' => 'Ìáñ',
+ 'March' => 'ÌÜñôéïò',
+ 'May' => 'ÌÜúïò',
+ 'May ' => 'ÌÜúïò',
+ 'Message' => 'Ìýíçìá',
+ 'Nov' => 'ÍïÝ',
+ 'November' => 'ÍïÝìâñéïò',
+ 'Number' => 'Áñéèìüò',
+ 'Oct' => 'Ïêô',
+ 'October' => 'Ïêôþâñéïò',
+ 'Phone' => 'ÔçëÝöùíï',
+ 'Price' => 'ÔéìÞ',
+ 'Printed' => 'Åêôõðþèçêå',
+ 'Project' => '¸ñãï',
+ 'Qty' => 'Ðïó.',
+ 'Screen' => 'Ïèüíç',
+ 'Service' => 'Õðçñåóßá',
+ 'Vendor Number' => 'Creditor Number',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'ÓõíÝ÷åéá' => 'continue',
+};
+
+1;
+
diff --git a/locale/gr/ir b/locale/gr/ir
new file mode 100755
index 00000000..0b1f2709
--- /dev/null
+++ b/locale/gr/ir
@@ -0,0 +1,147 @@
+$self{charset} = 'ISO-8859-7';
+
+$self{texts} = {
+ 'Account' => 'Ëïãáñéáóìüò',
+ 'Accounting Menu' => 'Ìåíðý ËïãéóôéêÞò',
+ 'Add Quotation' => 'ÐñïóèÞêç ðñïóöïñÜò',
+ 'Add Sales Order' => 'ÐñïóèÞêç Ðáñáããåëßáò',
+ 'Add Vendor Invoice' => 'Add Creditor Invoice',
+ 'Address' => 'ÄéÝõèõíóç',
+ 'Amount' => 'Ðïóü',
+ 'Apr' => 'Áðñ',
+ 'April' => 'Áðñßëéïò',
+ 'Are you sure you want to delete Invoice Number' => 'Åßóáé óßãïõñïò ðùò èÝëåéò íá äéáãñÜøåéò ôï áñéèìü ôéìïëïãßïõ',
+ 'Attachment' => 'ÅîÜñôçìá',
+ 'Aug' => 'Áõã',
+ 'August' => 'Áýãïõóôïò',
+ 'Cannot delete invoice!' => 'Äåí ìðïñåß íá äéáãñáöåß ôï ôéìïëüãéï',
+ 'City' => 'Ðüëç',
+ 'Company Name' => '¼íïìá åôáéñßáò',
+ 'Confirm!' => 'Åðéâåâáßùóç!',
+ 'Contact' => 'ÅðáöÞ',
+ 'Continue' => 'ÓõíÝ÷åéá',
+ 'Copies' => 'Áíôßãñáöá',
+ 'Country' => '×þñá',
+ 'Credit Limit' => '¼ñéï Ðßóôùóçò',
+ 'Currency' => 'ÓõíÜëëáãìá',
+ 'Customer Number' => 'Êùäéêüò ÐåëÜôç',
+ 'Customer not on file!' => 'Debtor not on file!',
+ 'Date' => 'Çìåñïìçíßá',
+ 'Dec' => 'Äåê',
+ 'December' => 'ÄåêÝìâñéïò',
+ 'Delete' => 'ÄéáãñáöÞ',
+ 'Department' => 'ÔìÞìá',
+ 'Description' => 'ÐåñéãñáöÞ',
+ 'Due Date' => 'Çìåñïìçíßá ëÞîçò',
+ 'Edit Vendor Invoice' => 'Edit Creditor Invoice',
+ 'Exch' => 'Óõíáëë',
+ 'Exchange Rate' => 'ÔéìÞ óõíáëëÜãìáôïò',
+ 'Exchange rate for payment missing!' => 'Ç ôéìÞ óõíáëëÜãìáôïò ëåßðåé',
+ 'Fax' => 'Öáî',
+ 'Feb' => 'Öåâ',
+ 'February' => 'ÖåâñïõÜñéïò',
+ 'Group' => 'ÏìÜäá',
+ 'Invoice' => 'Ôéìïëüãéï',
+ 'Invoice Date' => 'Çì. ôéìïëïãßïõ',
+ 'Invoice Number' => 'Áñ. ôéìïëïãßïõ',
+ 'Invoice Number missing!' => 'Ôï ôéìïëüãéï äéáãñÜöçêå',
+ 'Item not on file!' => 'ÔåìÜ÷éï äåí åßíáé óå áñ÷åßï',
+ 'Jan' => 'ÉÜí',
+ 'January' => 'ÉáíïõÜñéïò',
+ 'Jul' => 'Éïýë',
+ 'July' => 'Éïýëéïò',
+ 'Jun' => 'Éïýí',
+ 'June' => 'Éïýíéïò',
+ 'Language' => 'Ãëþóóá',
+ 'Mar' => 'Ìáñ',
+ 'March' => 'ÌÜñôéïò',
+ 'May' => 'ÌÜúïò',
+ 'May ' => 'ÌÜúïò',
+ 'Message' => 'Ìýíçìá',
+ 'Notes' => 'Óçìåéþóåéò',
+ 'Nov' => 'ÍïÝ',
+ 'November' => 'ÍïÝìâñéïò',
+ 'Number' => 'Áñéèìüò',
+ 'Oct' => 'Ïêô',
+ 'October' => 'Ïêôþâñéïò',
+ 'Order Number' => 'Áñ. Ðáñáããåëßáò',
+ 'Phone' => 'ÔçëÝöùíï',
+ 'Price' => 'ÔéìÞ',
+ 'Print' => 'Åêôýðùóç',
+ 'Printed' => 'Åêôõðþèçêå',
+ 'Project' => '¸ñãï',
+ 'Qty' => 'Ðïó.',
+ 'Screen' => 'Ïèüíç',
+ 'Service' => 'Õðçñåóßá',
+ 'Source' => 'ÐçãÞ',
+ 'Vendor' => 'Creditor',
+ 'Vendor Number' => 'Creditor Number',
+ 'Vendor missing!' => 'Creditor missing!',
+ 'Vendor not on file!' => 'Creditor not on file!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'ÓõíÝ÷åéá' => 'continue',
+ 'ÄéáãñáöÞ' => 'delete',
+};
+
+1;
+
diff --git a/locale/gr/is b/locale/gr/is
new file mode 100755
index 00000000..2b33e607
--- /dev/null
+++ b/locale/gr/is
@@ -0,0 +1,151 @@
+$self{charset} = 'ISO-8859-7';
+
+$self{texts} = {
+ 'Account' => 'Ëïãáñéáóìüò',
+ 'Accounting Menu' => 'Ìåíðý ËïãéóôéêÞò',
+ 'Add Quotation' => 'ÐñïóèÞêç ðñïóöïñÜò',
+ 'Add Sales Invoice' => 'ÐñïóèÞêç Ôéìïëïãßïõ ðþëçóçò',
+ 'Add Sales Order' => 'ÐñïóèÞêç Ðáñáããåëßáò',
+ 'Address' => 'ÄéÝõèõíóç',
+ 'Amount' => 'Ðïóü',
+ 'Apr' => 'Áðñ',
+ 'April' => 'Áðñßëéïò',
+ 'Are you sure you want to delete Invoice Number' => 'Åßóáé óßãïõñïò ðùò èÝëåéò íá äéáãñÜøåéò ôï áñéèìü ôéìïëïãßïõ',
+ 'Attachment' => 'ÅîÜñôçìá',
+ 'Aug' => 'Áõã',
+ 'August' => 'Áýãïõóôïò',
+ 'Business' => 'Åðé÷åßñçóç',
+ 'Cannot delete invoice!' => 'Äåí ìðïñåß íá äéáãñáöåß ôï ôéìïëüãéï',
+ 'City' => 'Ðüëç',
+ 'Company Name' => '¼íïìá åôáéñßáò',
+ 'Confirm!' => 'Åðéâåâáßùóç!',
+ 'Contact' => 'ÅðáöÞ',
+ 'Continue' => 'ÓõíÝ÷åéá',
+ 'Copies' => 'Áíôßãñáöá',
+ 'Country' => '×þñá',
+ 'Credit Limit' => '¼ñéï Ðßóôùóçò',
+ 'Currency' => 'ÓõíÜëëáãìá',
+ 'Customer' => 'ÐåëÜôçò',
+ 'Customer Number' => 'Êùäéêüò ÐåëÜôç',
+ 'Customer missing!' => 'Ï ÐåëÜôçò ëåßðåé!',
+ 'Customer not on file!' => 'Debtor not on file!',
+ 'Date' => 'Çìåñïìçíßá',
+ 'Dec' => 'Äåê',
+ 'December' => 'ÄåêÝìâñéïò',
+ 'Delete' => 'ÄéáãñáöÞ',
+ 'Department' => 'ÔìÞìá',
+ 'Description' => 'ÐåñéãñáöÞ',
+ 'Due Date' => 'Çìåñïìçíßá ëÞîçò',
+ 'Edit Sales Invoice' => 'Åðåîåñãáóßá ôéìïëïãßïõ',
+ 'Exch' => 'Óõíáëë',
+ 'Exchange Rate' => 'ÔéìÞ óõíáëëÜãìáôïò',
+ 'Exchange rate for payment missing!' => 'Ç ôéìÞ óõíáëëÜãìáôïò ëåßðåé',
+ 'Fax' => 'Öáî',
+ 'Feb' => 'Öåâ',
+ 'February' => 'ÖåâñïõÜñéïò',
+ 'Group' => 'ÏìÜäá',
+ 'Invoice' => 'Ôéìïëüãéï',
+ 'Invoice Date' => 'Çì. ôéìïëïãßïõ',
+ 'Invoice Number' => 'Áñ. ôéìïëïãßïõ',
+ 'Invoice Number missing!' => 'Ôï ôéìïëüãéï äéáãñÜöçêå',
+ 'Item not on file!' => 'ÔåìÜ÷éï äåí åßíáé óå áñ÷åßï',
+ 'Jan' => 'ÉÜí',
+ 'January' => 'ÉáíïõÜñéïò',
+ 'Jul' => 'Éïýë',
+ 'July' => 'Éïýëéïò',
+ 'Jun' => 'Éïýí',
+ 'June' => 'Éïýíéïò',
+ 'Mar' => 'Ìáñ',
+ 'March' => 'ÌÜñôéïò',
+ 'May' => 'ÌÜúïò',
+ 'May ' => 'ÌÜúïò',
+ 'Message' => 'Ìýíçìá',
+ 'Notes' => 'Óçìåéþóåéò',
+ 'Nov' => 'ÍïÝ',
+ 'November' => 'ÍïÝìâñéïò',
+ 'Number' => 'Áñéèìüò',
+ 'Oct' => 'Ïêô',
+ 'October' => 'Ïêôþâñéïò',
+ 'Order Number' => 'Áñ. Ðáñáããåëßáò',
+ 'Phone' => 'ÔçëÝöùíï',
+ 'Price' => 'ÔéìÞ',
+ 'Print' => 'Åêôýðùóç',
+ 'Print and Post' => '¸êôýðùóç êáé áðïóôïëÞ',
+ 'Printed' => 'Åêôõðþèçêå',
+ 'Project' => '¸ñãï',
+ 'Qty' => 'Ðïó.',
+ 'Screen' => 'Ïèüíç',
+ 'Service' => 'Õðçñåóßá',
+ 'Source' => 'ÐçãÞ',
+ 'Vendor Number' => 'Creditor Number',
+ 'Vendor not on file!' => 'Creditor not on file!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'ÓõíÝ÷åéá' => 'continue',
+ 'ÄéáãñáöÞ' => 'delete',
+ 'Åêôýðùóç' => 'print',
+ '¸êôýðùóç_êáé_áðïóôïëÞ' => 'print_and_post',
+};
+
+1;
+
diff --git a/locale/gr/jc b/locale/gr/jc
new file mode 100755
index 00000000..b054aee4
--- /dev/null
+++ b/locale/gr/jc
@@ -0,0 +1,74 @@
+$self{charset} = 'ISO-8859-7';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Ìåíðý ËïãéóôéêÞò',
+ 'Amount' => 'Ðïóü',
+ 'Closed' => 'ÊëåéóìÝíï',
+ 'Confirm!' => 'Åðéâåâáßùóç!',
+ 'Continue' => 'ÓõíÝ÷åéá',
+ 'Cost' => 'Êüóôïò',
+ 'Current' => 'ÔñÝ÷ùí',
+ 'Date' => 'Çìåñïìçíßá',
+ 'Date missing!' => 'Äåí õðÜñ÷åé ç çìåñïìçíßá',
+ 'Delete' => 'ÄéáãñáöÞ',
+ 'Description' => 'ÐåñéãñáöÞ',
+ 'Employee' => 'ÕðÜëëçëïò',
+ 'From' => 'Áðü',
+ 'Month' => 'ÌÞíáò',
+ 'Notes' => 'Óçìåéþóåéò',
+ 'Open' => '¢íïéãìá',
+ 'Print' => 'Åêôýðùóç',
+ 'Print and Save' => 'Åêôýðùóç êáé áðïèÞêåõóç',
+ 'Printed' => 'Åêôõðþèçêå',
+ 'Project Number' => 'Áñéèìüò Ýñãïõ',
+ 'Qty' => 'Ðïó.',
+ 'Save' => 'ÁðïèÞêåõóç',
+ 'Screen' => 'Ïèüíç',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'ÓõíÝ÷åéá' => 'continue',
+ 'ÄéáãñáöÞ' => 'delete',
+ 'Åêôýðùóç' => 'print',
+ 'Åêôýðùóç_êáé_áðïèÞêåõóç' => 'print_and_save',
+ 'ÁðïèÞêåõóç' => 'save',
+};
+
+1;
+
diff --git a/locale/gr/locales.pl b/locale/gr/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/gr/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/gr/login b/locale/gr/login
new file mode 100755
index 00000000..04f4eadc
--- /dev/null
+++ b/locale/gr/login
@@ -0,0 +1,19 @@
+$self{charset} = 'ISO-8859-7';
+
+$self{texts} = {
+ 'Company' => 'Åôáéñßá',
+ 'Continue' => 'ÓõíÝ÷åéá',
+ 'Login' => 'ÅéóáãùãÞ',
+ 'Name' => '¼íïìá',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ 'ÅéóáãùãÞ' => 'login',
+};
+
+1;
+
diff --git a/locale/gr/menu b/locale/gr/menu
new file mode 100755
index 00000000..363c8248
--- /dev/null
+++ b/locale/gr/menu
@@ -0,0 +1,66 @@
+$self{charset} = 'ISO-8859-7';
+
+$self{texts} = {
+ 'AP' => 'ÁãïñÝò',
+ 'AP Aging' => 'Creditor Aging',
+ 'AP Transaction' => 'ÊéíÞóç ÁãïñÜò',
+ 'AR' => 'ÐùëÞóåéò',
+ 'AR Aging' => 'Debtor Aging',
+ 'AR Transaction' => 'ÊéíÞóåéò ÐùëÞóåùí',
+ 'Accounting Menu' => 'Ìåíðý ËïãéóôéêÞò',
+ 'Add Account' => 'ÐñïóèÞêç ëïãáñéáóìïý',
+ 'Add Customer' => 'ÐñïóèÞêç ÐåëÜôç',
+ 'Add Employee' => 'ÐñïóèÞêç õðáëëÞëïõ',
+ 'Add Group' => 'ÐñïóèÞêç ïìÜäáò',
+ 'Add Language' => 'ÐñïóèÞêç ãëþóóáò',
+ 'Add Project' => 'ÐñïóèÞêç Ýñãïõ',
+ 'Add Service' => 'ÐñïóèÞêç õðçñåóßáò',
+ 'Add Transaction' => 'ÐñïóèÞêç óõíáëëáãÞò',
+ 'Add Vendor' => 'ÐñïóèÞêç ÐéóôùôÞ',
+ 'Add Warehouse' => 'ÐñïóèÞêç ÁðïèÞêçò',
+ 'All Items' => 'ÐñïóèÞêç åßäïõò',
+ 'Assemblies' => 'ÓõíáñìïëïãÞóåéò',
+ 'Audit Control' => 'Åëåã÷ïò',
+ 'Backup' => 'Áíôßãñáöï áóöáëåßáò',
+ 'Balance Sheet' => 'Éóïæýãéï',
+ 'Cash' => 'ÑåõóôÜ',
+ 'Chart of Accounts' => 'ÃñÜöçìá ôùí Êùäéêþí',
+ 'Check' => 'ÅðéôáãÞ',
+ 'Components' => 'ÓõóôáôéêÜ',
+ 'Customers' => 'ÐåëÜôåò',
+ 'Defaults' => 'ÐñïåðéëïãÝò',
+ 'Departments' => 'ÔìÞìáôá',
+ 'Description' => 'ÐåñéãñáöÞ',
+ 'Employees' => 'ÕðÜëëçëïé',
+ 'HR' => 'ÄÐ',
+ 'History' => 'Éóôïñéêü',
+ 'Invoice' => 'Ôéìïëüãéï',
+ 'Language' => 'Ãëþóóá',
+ 'List Accounts' => 'Ëßóôá Ëïãáñéáóìþí',
+ 'List Languages' => 'Ëßóôá ãëùóóþí',
+ 'List Projects' => 'Ëßóôá ¸ñãùí',
+ 'List Warehouses' => 'Ëßóôá áðïèçêþí',
+ 'Logout' => 'ÅîáãùãÞ',
+ 'Non-taxable' => 'Äåí åßíáé öïñïëïãßóéìï',
+ 'Open' => '¢íïéãìá',
+ 'Outstanding' => 'Áîéïóçìåßùôï',
+ 'Preferences' => 'ÅðéëïãÝò',
+ 'Print' => 'Åêôýðùóç',
+ 'Projects' => '¸ñãá',
+ 'Receipt' => 'Áðüäåéîç',
+ 'Sale' => 'Ðþëçóç',
+ 'Search' => 'ÁíáæÞôçóç',
+ 'Vendor Invoice' => 'Creditor Invoice',
+ 'Vendors' => 'Creditors',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/gr/oe b/locale/gr/oe
new file mode 100755
index 00000000..d99306fa
--- /dev/null
+++ b/locale/gr/oe
@@ -0,0 +1,198 @@
+$self{charset} = 'ISO-8859-7';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Ìåíðý ËïãéóôéêÞò',
+ 'Add Exchange Rate' => 'ÐñïóèÞêç ôéìÞò óõíáëÜãìáôïò',
+ 'Add Quotation' => 'ÐñïóèÞêç ðñïóöïñÜò',
+ 'Add Sales Invoice' => 'ÐñïóèÞêç Ôéìïëïãßïõ ðþëçóçò',
+ 'Add Sales Order' => 'ÐñïóèÞêç Ðáñáããåëßáò',
+ 'Add Vendor Invoice' => 'Add Creditor Invoice',
+ 'Address' => 'ÄéÝõèõíóç',
+ 'Amount' => 'Ðïóü',
+ 'Apr' => 'Áðñ',
+ 'April' => 'Áðñßëéïò',
+ 'Are you sure you want to delete Order Number' => 'Åßóáé óßãïõñïò ðùò èÝëåéò íá äéáãñÜøåéò ôïí áñéèìü ðáñáããåëßáò',
+ 'Attachment' => 'ÅîÜñôçìá',
+ 'Aug' => 'Áõã',
+ 'August' => 'Áýãïõóôïò',
+ 'Business' => 'Åðé÷åßñçóç',
+ 'Cannot delete order!' => 'Äåí ìðïñåß íá äéáãñáöåß ç ðáñáããåëßá',
+ 'Cannot save order!' => 'Äåí ìðïñåß íá áðïèçêåõôåß ç ðáñáããåëßá',
+ 'City' => 'Ðüëç',
+ 'Closed' => 'ÊëåéóìÝíï',
+ 'Company Name' => '¼íïìá åôáéñßáò',
+ 'Confirm!' => 'Åðéâåâáßùóç!',
+ 'Contact' => 'ÅðáöÞ',
+ 'Continue' => 'ÓõíÝ÷åéá',
+ 'Copies' => 'Áíôßãñáöá',
+ 'Cost' => 'Êüóôïò',
+ 'Could not save!' => 'Ç áðïèÞêåõóç äåí åßíáé äõíáôÞ',
+ 'Country' => '×þñá',
+ 'Credit Limit' => '¼ñéï Ðßóôùóçò',
+ 'Currency' => 'ÓõíÜëëáãìá',
+ 'Current' => 'ÔñÝ÷ùí',
+ 'Customer' => 'ÐåëÜôçò',
+ 'Customer Number' => 'Êùäéêüò ÐåëÜôç',
+ 'Customer missing!' => 'Ï ÐåëÜôçò ëåßðåé!',
+ 'Customer not on file!' => 'Debtor not on file!',
+ 'Date' => 'Çìåñïìçíßá',
+ 'Dec' => 'Äåê',
+ 'December' => 'ÄåêÝìâñéïò',
+ 'Delete' => 'ÄéáãñáöÞ',
+ 'Department' => 'ÔìÞìá',
+ 'Description' => 'ÐåñéãñáöÞ',
+ 'Done' => 'ÅíôÜîåé',
+ 'Edit Quotation' => 'Åðåîåñãáóßá ðñïóöïñÜò',
+ 'Employee' => 'ÕðÜëëçëïò',
+ 'Exchange Rate' => 'ÔéìÞ óõíáëëÜãìáôïò',
+ 'Fax' => 'Öáî',
+ 'Feb' => 'Öåâ',
+ 'February' => 'ÖåâñïõÜñéïò',
+ 'From' => 'Áðü',
+ 'Group' => 'ÏìÜäá',
+ 'Inventory saved!' => 'Ç ÁðïãñáöÞ áðïèçêåýôçêå',
+ 'Invoice' => 'Ôéìïëüãéï',
+ 'Invoice Number missing!' => 'Ôï ôéìïëüãéï äéáãñÜöçêå',
+ 'Item not on file!' => 'ÔåìÜ÷éï äåí åßíáé óå áñ÷åßï',
+ 'Jan' => 'ÉÜí',
+ 'January' => 'ÉáíïõÜñéïò',
+ 'Jul' => 'Éïýë',
+ 'July' => 'Éïýëéïò',
+ 'Jun' => 'Éïýí',
+ 'June' => 'Éïýíéïò',
+ 'Manager' => 'ÄéåõèõíôÞò',
+ 'Mar' => 'Ìáñ',
+ 'March' => 'ÌÜñôéïò',
+ 'May' => 'ÌÜúïò',
+ 'May ' => 'ÌÜúïò',
+ 'Message' => 'Ìýíçìá',
+ 'Month' => 'ÌÞíáò',
+ 'Notes' => 'Óçìåéþóåéò',
+ 'Nothing entered!' => 'Äåí å÷åé ãßíåé åéóáãùãÞ',
+ 'Nothing selected!' => 'Äåí Ý÷å åðéëå÷èåß ôßðïôá',
+ 'Nov' => 'ÍïÝ',
+ 'November' => 'ÍïÝìâñéïò',
+ 'Number' => 'Áñéèìüò',
+ 'O' => 'Ï',
+ 'Oct' => 'Ïêô',
+ 'October' => 'Ïêôþâñéïò',
+ 'Open' => '¢íïéãìá',
+ 'Order' => 'Ðáñáããåëßá',
+ 'Order Date' => 'Çì. Ðáñáããåëßáò',
+ 'Order Number' => 'Áñ. Ðáñáããåëßáò',
+ 'Order deleted!' => 'Ç Ðáñáããåëßá äéáãñÜöçêå',
+ 'Order saved!' => 'Ç Ðáñáããåëßá áðïèçêåýôçêå',
+ 'Phone' => 'ÔçëÝöùíï',
+ 'Price' => 'ÔéìÞ',
+ 'Print' => 'Åêôýðùóç',
+ 'Print and Save' => 'Åêôýðùóç êáé áðïèÞêåõóç',
+ 'Printed' => 'Åêôõðþèçêå',
+ 'Project' => '¸ñãï',
+ 'Qty' => 'Ðïó.',
+ 'Save' => 'ÁðïèÞêåõóç',
+ 'Screen' => 'Ïèüíç',
+ 'Service' => 'Õðçñåóßá',
+ 'Tax' => 'Öüñïò',
+ 'Vendor' => 'Creditor',
+ 'Vendor Invoice' => 'Creditor Invoice',
+ 'Vendor Number' => 'Creditor Number',
+ 'Vendor missing!' => 'Creditor missing!',
+ 'Vendor not on file!' => 'Creditor not on file!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'ÓõíÝ÷åéá' => 'continue',
+ 'ÄéáãñáöÞ' => 'delete',
+ 'ÅíôÜîåé' => 'done',
+ 'Åêôýðùóç' => 'print',
+ 'Åêôýðùóç_êáé_áðïèÞêåõóç' => 'print_and_save',
+ 'ÁðïèÞêåõóç' => 'save',
+ 'creditor_invoice' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/gr/pe b/locale/gr/pe
new file mode 100755
index 00000000..3c683de7
--- /dev/null
+++ b/locale/gr/pe
@@ -0,0 +1,104 @@
+$self{charset} = 'ISO-8859-7';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Ìåíðý ËïãéóôéêÞò',
+ 'Active' => 'Åíåñãüò',
+ 'Add' => 'ÐñïóèÞêç',
+ 'Add Group' => 'ÐñïóèÞêç ïìÜäáò',
+ 'Add Project' => 'ÐñïóèÞêç Ýñãïõ',
+ 'Address' => 'ÄéÝõèõíóç',
+ 'All' => '¼ëá',
+ 'Amount' => 'Ðïóü',
+ 'Assembly' => 'Óõíáñìïëüãçóç',
+ 'Continue' => 'ÓõíÝ÷åéá',
+ 'Current' => 'ÔñÝ÷ùí',
+ 'Customer' => 'ÐåëÜôçò',
+ 'Customer missing!' => 'Ï ÐåëÜôçò ëåßðåé!',
+ 'Customer not on file!' => 'Debtor not on file!',
+ 'Date' => 'Çìåñïìçíßá',
+ 'Delete' => 'ÄéáãñáöÞ',
+ 'Description' => 'ÐåñéãñáöÞ',
+ 'Description Translations' => 'ÐåñéãñáöÞ ÌåôáöñÜóåùí',
+ 'Detail' => 'ËåðôïìÝñåéá',
+ 'Edit Project' => 'Åðåîåñãáóßá Ýñãïõ',
+ 'Employee' => 'ÕðÜëëçëïò',
+ 'From' => 'Áðü',
+ 'Group' => 'ÏìÜäá',
+ 'Income' => 'Åéóüäçìá',
+ 'Language' => 'Ãëþóóá',
+ 'List Price' => 'Ëßóôá ôéìþí',
+ 'Month' => 'ÌÞíáò',
+ 'Notes' => 'Óçìåéþóåéò',
+ 'Nothing selected!' => 'Äåí Ý÷å åðéëå÷èåß ôßðïôá',
+ 'Number' => 'Áñéèìüò',
+ 'Project' => '¸ñãï',
+ 'Project Number' => 'Áñéèìüò Ýñãïõ',
+ 'Projects' => '¸ñãá',
+ 'Qty' => 'Ðïó.',
+ 'Save' => 'ÁðïèÞêåõóç',
+ 'Tax' => 'Öüñïò',
+ 'Vendor' => 'Creditor',
+ 'Vendor not on file!' => 'Creditor not on file!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'ÐñïóèÞêç_ïìÜäáò' => 'add_group',
+ 'ÐñïóèÞêç_Ýñãïõ' => 'add_project',
+ 'ÓõíÝ÷åéá' => 'continue',
+ 'ÄéáãñáöÞ' => 'delete',
+ 'ÁðïèÞêåõóç' => 'save',
+};
+
+1;
+
diff --git a/locale/gr/pos b/locale/gr/pos
new file mode 100755
index 00000000..cc324326
--- /dev/null
+++ b/locale/gr/pos
@@ -0,0 +1,59 @@
+$self{charset} = 'ISO-8859-7';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Ìåíðý ËïãéóôéêÞò',
+ 'Add POS Invoice' => 'ÐñïóèÞêç áðüäçîçò ÔáìåéáêÞò ìç÷áíÞò',
+ 'Amount' => 'Ðïóü',
+ 'Business' => 'Åðé÷åßñçóç',
+ 'Continue' => 'ÓõíÝ÷åéá',
+ 'Credit Limit' => '¼ñéï Ðßóôùóçò',
+ 'Currency' => 'ÓõíÜëëáãìá',
+ 'Current' => 'ÔñÝ÷ùí',
+ 'Customer' => 'ÐåëÜôçò',
+ 'Customer missing!' => 'Ï ÐåëÜôçò ëåßðåé!',
+ 'Delete' => 'ÄéáãñáöÞ',
+ 'Department' => 'ÔìÞìá',
+ 'Description' => 'ÐåñéãñáöÞ',
+ 'Edit POS Invoice' => 'Åðåîåñãáóßá áðüäåéîçò ôáìåéáêÞò',
+ 'Exchange Rate' => 'ÔéìÞ óõíáëëÜãìáôïò',
+ 'From' => 'Áðü',
+ 'Language' => 'Ãëþóóá',
+ 'Month' => 'ÌÞíáò',
+ 'Number' => 'Áñéèìüò',
+ 'Open' => '¢íïéãìá',
+ 'Price' => 'ÔéìÞ',
+ 'Print' => 'Åêôýðùóç',
+ 'Print and Post' => '¸êôýðùóç êáé áðïóôïëÞ',
+ 'Printed' => 'Åêôõðþèçêå',
+ 'Qty' => 'Ðïó.',
+ 'Screen' => 'Ïèüíç',
+ 'Source' => 'ÐçãÞ',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'ÓõíÝ÷åéá' => 'continue',
+ 'ÄéáãñáöÞ' => 'delete',
+ 'Åêôýðùóç' => 'print',
+ '¸êôýðùóç_êáé_áðïóôïëÞ' => 'print_and_post',
+};
+
+1;
+
diff --git a/locale/gr/ps b/locale/gr/ps
new file mode 100755
index 00000000..8f0c746b
--- /dev/null
+++ b/locale/gr/ps
@@ -0,0 +1,224 @@
+$self{charset} = 'ISO-8859-7';
+
+$self{texts} = {
+ 'AP Aging' => 'Creditor Aging',
+ 'AP Transaction' => 'ÊéíÞóç ÁãïñÜò',
+ 'AP Transactions' => 'ÊéíÞóåéò Áãïñþí',
+ 'AR Aging' => 'Debtor Aging',
+ 'AR Transaction' => 'ÊéíÞóåéò ÐùëÞóåùí',
+ 'AR Transactions' => 'ÊéíÞóåéò ÐùëÞóåùí',
+ 'Account' => 'Ëïãáñéáóìüò',
+ 'Account Number' => 'Êùäéêüò Ëïãáñéáóìïý',
+ 'Accounting Menu' => 'Ìåíðý ËïãéóôéêÞò',
+ 'Accounts' => 'Ëïãáñéáóìïß',
+ 'Accrual' => 'Áýîçóç',
+ 'Add POS Invoice' => 'ÐñïóèÞêç áðüäçîçò ÔáìåéáêÞò ìç÷áíÞò',
+ 'Add Quotation' => 'ÐñïóèÞêç ðñïóöïñÜò',
+ 'Add Sales Invoice' => 'ÐñïóèÞêç Ôéìïëïãßïõ ðþëçóçò',
+ 'Add Sales Order' => 'ÐñïóèÞêç Ðáñáããåëßáò',
+ 'Address' => 'ÄéÝõèõíóç',
+ 'All Accounts' => '¼ëïé ïé ëïãáñéáóìïß',
+ 'Amount' => 'Ðïóü',
+ 'Apr' => 'Áðñ',
+ 'April' => 'Áðñßëéïò',
+ 'Are you sure you want to delete Invoice Number' => 'Åßóáé óßãïõñïò ðùò èÝëåéò íá äéáãñÜøåéò ôï áñéèìü ôéìïëïãßïõ',
+ 'Are you sure you want to delete Transaction' => 'Åßóáé óßãïõñïò üôé èÝëåéò íá äéáãñÜøåéò ôçí êßíçóç',
+ 'Attachment' => 'ÅîÜñôçìá',
+ 'Aug' => 'Áõã',
+ 'August' => 'Áýãïõóôïò',
+ 'Balance' => 'Éóïæýãéï',
+ 'Balance Sheet' => 'Éóïæýãéï',
+ 'Business' => 'Åðé÷åßñçóç',
+ 'Cannot delete invoice!' => 'Äåí ìðïñåß íá äéáãñáöåß ôï ôéìïëüãéï',
+ 'Cannot delete transaction!' => 'Äåí ìðïñåß íá äéáãñáöåß ç êßíçóç',
+ 'Cash' => 'ÑåõóôÜ',
+ 'Check' => 'ÅðéôáãÞ',
+ 'City' => 'Ðüëç',
+ 'Closed' => 'ÊëåéóìÝíï',
+ 'Company Name' => '¼íïìá åôáéñßáò',
+ 'Confirm!' => 'Åðéâåâáßùóç!',
+ 'Contact' => 'ÅðáöÞ',
+ 'Continue' => 'ÓõíÝ÷åéá',
+ 'Copies' => 'Áíôßãñáöá',
+ 'Country' => '×þñá',
+ 'Credit' => 'Ðßóôùóç',
+ 'Credit Limit' => '¼ñéï Ðßóôùóçò',
+ 'Currency' => 'ÓõíÜëëáãìá',
+ 'Current' => 'ÔñÝ÷ùí',
+ 'Current Earnings' => 'ÔñÝ÷ùíôá êÝñäç',
+ 'Customer' => 'ÐåëÜôçò',
+ 'Customer Number' => 'Êùäéêüò ÐåëÜôç',
+ 'Customer missing!' => 'Ï ÐåëÜôçò ëåßðåé!',
+ 'Customer not on file!' => 'Debtor not on file!',
+ 'Date' => 'Çìåñïìçíßá',
+ 'Date Paid' => 'Çì. ÐëçñùìÞò',
+ 'Debit' => '×ñÝïò',
+ 'Dec' => 'Äåê',
+ 'December' => 'ÄåêÝìâñéïò',
+ 'Decimalplaces' => 'ÄåêáäéêÜ',
+ 'Delete' => 'ÄéáãñáöÞ',
+ 'Department' => 'ÔìÞìá',
+ 'Description' => 'ÐåñéãñáöÞ',
+ 'Detail' => 'ËåðôïìÝñåéá',
+ 'Due Date' => 'Çìåñïìçíßá ëÞîçò',
+ 'Due Date missing!' => 'Ç çìåñïìçíßá ëÞîçò ëåßðåé',
+ 'Edit POS Invoice' => 'Åðåîåñãáóßá áðüäåéîçò ôáìåéáêÞò',
+ 'Edit Sales Invoice' => 'Åðåîåñãáóßá ôéìïëïãßïõ',
+ 'Employee' => 'ÕðÜëëçëïò',
+ 'Exch' => 'Óõíáëë',
+ 'Exchange Rate' => 'ÔéìÞ óõíáëëÜãìáôïò',
+ 'Exchange rate for payment missing!' => 'Ç ôéìÞ óõíáëëÜãìáôïò ëåßðåé',
+ 'Fax' => 'Öáî',
+ 'Feb' => 'Öåâ',
+ 'February' => 'ÖåâñïõÜñéïò',
+ 'From' => 'Áðü',
+ 'Group' => 'ÏìÜäá',
+ 'Invoice' => 'Ôéìïëüãéï',
+ 'Invoice Date' => 'Çì. ôéìïëïãßïõ',
+ 'Invoice Number' => 'Áñ. ôéìïëïãßïõ',
+ 'Invoice Number missing!' => 'Ôï ôéìïëüãéï äéáãñÜöçêå',
+ 'Item not on file!' => 'ÔåìÜ÷éï äåí åßíáé óå áñ÷åßï',
+ 'Jan' => 'ÉÜí',
+ 'January' => 'ÉáíïõÜñéïò',
+ 'Jul' => 'Éïýë',
+ 'July' => 'Éïýëéïò',
+ 'Jun' => 'Éïýí',
+ 'June' => 'Éïýíéïò',
+ 'Language' => 'Ãëþóóá',
+ 'Manager' => 'ÄéåõèõíôÞò',
+ 'Mar' => 'Ìáñ',
+ 'March' => 'ÌÜñôéïò',
+ 'May' => 'ÌÜúïò',
+ 'May ' => 'ÌÜúïò',
+ 'Message' => 'Ìýíçìá',
+ 'Method' => 'ÌÝèïäïò',
+ 'Month' => 'ÌÞíáò',
+ 'Notes' => 'Óçìåéþóåéò',
+ 'Nothing selected!' => 'Äåí Ý÷å åðéëå÷èåß ôßðïôá',
+ 'Nothing to print!' => 'Äåí õðÜñ÷åé ôßðïôá ãéá åêôýðùóç',
+ 'Nov' => 'ÍïÝ',
+ 'November' => 'ÍïÝìâñéïò',
+ 'Number' => 'Áñéèìüò',
+ 'Oct' => 'Ïêô',
+ 'October' => 'Ïêôþâñéïò',
+ 'Open' => '¢íïéãìá',
+ 'Order' => 'Ðáñáããåëßá',
+ 'Order Number' => 'Áñ. Ðáñáããåëßáò',
+ 'Phone' => 'ÔçëÝöùíï',
+ 'Price' => 'ÔéìÞ',
+ 'Print' => 'Åêôýðùóç',
+ 'Print and Post' => '¸êôýðùóç êáé áðïóôïëÞ',
+ 'Printed' => 'Åêôõðþèçêå',
+ 'Project' => '¸ñãï',
+ 'Project Number' => 'Áñéèìüò Ýñãïõ',
+ 'Qty' => 'Ðïó.',
+ 'Receipt' => 'Áðüäåéîç',
+ 'Screen' => 'Ïèüíç',
+ 'Select all' => 'ÅðéëïãÞ üëùí',
+ 'Service' => 'Õðçñåóßá',
+ 'Source' => 'ÐçãÞ',
+ 'Tax' => 'Öüñïò',
+ 'Vendor' => 'Creditor',
+ 'Vendor Number' => 'Creditor Number',
+ 'Vendor missing!' => 'Creditor missing!',
+ 'Vendor not on file!' => 'Creditor not on file!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'ÊéíÞóç_ÁãïñÜò' => 'ap_transaction',
+ 'ÊéíÞóåéò_ÐùëÞóåùí' => 'ar_transaction',
+ 'ÓõíÝ÷åéá' => 'continue',
+ 'ÄéáãñáöÞ' => 'delete',
+ 'Åêôýðùóç' => 'print',
+ '¸êôýðùóç_êáé_áðïóôïëÞ' => 'print_and_post',
+ 'ÅðéëïãÞ_üëùí' => 'select_all',
+};
+
+1;
+
diff --git a/locale/gr/pw b/locale/gr/pw
new file mode 100755
index 00000000..7d14c2cb
--- /dev/null
+++ b/locale/gr/pw
@@ -0,0 +1,13 @@
+$self{charset} = 'ISO-8859-7';
+
+$self{texts} = {
+ 'Continue' => 'ÓõíÝ÷åéá',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'ÓõíÝ÷åéá' => 'continue',
+};
+
+1;
+
diff --git a/locale/gr/rc b/locale/gr/rc
new file mode 100755
index 00000000..d9d60c62
--- /dev/null
+++ b/locale/gr/rc
@@ -0,0 +1,65 @@
+$self{charset} = 'ISO-8859-7';
+
+$self{texts} = {
+ 'Account' => 'Ëïãáñéáóìüò',
+ 'Accounting Menu' => 'Ìåíðý ËïãéóôéêÞò',
+ 'Apr' => 'Áðñ',
+ 'April' => 'Áðñßëéïò',
+ 'Aug' => 'Áõã',
+ 'August' => 'Áýãïõóôïò',
+ 'Balance' => 'Éóïæýãéï',
+ 'Beginning Balance' => 'Éóïæýãéï ¸íáñîçò',
+ 'Continue' => 'ÓõíÝ÷åéá',
+ 'Credit' => 'Ðßóôùóç',
+ 'Current' => 'ÔñÝ÷ùí',
+ 'Date' => 'Çìåñïìçíßá',
+ 'Debit' => '×ñÝïò',
+ 'Dec' => 'Äåê',
+ 'December' => 'ÄåêÝìâñéïò',
+ 'Description' => 'ÐåñéãñáöÞ',
+ 'Detail' => 'ËåðôïìÝñåéá',
+ 'Difference' => 'ÄéáöïñÜ',
+ 'Done' => 'ÅíôÜîåé',
+ 'Feb' => 'Öåâ',
+ 'February' => 'ÖåâñïõÜñéïò',
+ 'From' => 'Áðü',
+ 'Jan' => 'ÉÜí',
+ 'January' => 'ÉáíïõÜñéïò',
+ 'Jul' => 'Éïýë',
+ 'July' => 'Éïýëéïò',
+ 'Jun' => 'Éïýí',
+ 'June' => 'Éïýíéïò',
+ 'Mar' => 'Ìáñ',
+ 'March' => 'ÌÜñôéïò',
+ 'May' => 'ÌÜúïò',
+ 'May ' => 'ÌÜúïò',
+ 'Month' => 'ÌÞíáò',
+ 'Nov' => 'ÍïÝ',
+ 'November' => 'ÍïÝìâñéïò',
+ 'Oct' => 'Ïêô',
+ 'October' => 'Ïêôþâñéïò',
+ 'Outstanding' => 'Áîéïóçìåßùôï',
+ 'Select all' => 'ÅðéëïãÞ üëùí',
+ 'Source' => 'ÐçãÞ',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'ÓõíÝ÷åéá' => 'continue',
+ 'ÅíôÜîåé' => 'done',
+ 'ÅðéëïãÞ_üëùí' => 'select_all',
+};
+
+1;
+
diff --git a/locale/gr/rp b/locale/gr/rp
new file mode 100755
index 00000000..c6e75e89
--- /dev/null
+++ b/locale/gr/rp
@@ -0,0 +1,127 @@
+$self{charset} = 'ISO-8859-7';
+
+$self{texts} = {
+ 'AP Aging' => 'Creditor Aging',
+ 'AR Aging' => 'Debtor Aging',
+ 'Account' => 'Ëïãáñéáóìüò',
+ 'Account Number' => 'Êùäéêüò Ëïãáñéáóìïý',
+ 'Accounting Menu' => 'Ìåíðý ËïãéóôéêÞò',
+ 'Accounts' => 'Ëïãáñéáóìïß',
+ 'Accrual' => 'Áýîçóç',
+ 'Address' => 'ÄéÝõèõíóç',
+ 'All Accounts' => '¼ëïé ïé ëïãáñéáóìïß',
+ 'Amount' => 'Ðïóü',
+ 'Apr' => 'Áðñ',
+ 'April' => 'Áðñßëéïò',
+ 'Attachment' => 'ÅîÜñôçìá',
+ 'Aug' => 'Áõã',
+ 'August' => 'Áýãïõóôïò',
+ 'Balance' => 'Éóïæýãéï',
+ 'Balance Sheet' => 'Éóïæýãéï',
+ 'Cash' => 'ÑåõóôÜ',
+ 'Continue' => 'ÓõíÝ÷åéá',
+ 'Copies' => 'Áíôßãñáöá',
+ 'Credit' => 'Ðßóôùóç',
+ 'Current' => 'ÔñÝ÷ùí',
+ 'Current Earnings' => 'ÔñÝ÷ùíôá êÝñäç',
+ 'Customer' => 'ÐåëÜôçò',
+ 'Customer not on file!' => 'Debtor not on file!',
+ 'Date' => 'Çìåñïìçíßá',
+ 'Debit' => '×ñÝïò',
+ 'Dec' => 'Äåê',
+ 'December' => 'ÄåêÝìâñéïò',
+ 'Decimalplaces' => 'ÄåêáäéêÜ',
+ 'Department' => 'ÔìÞìá',
+ 'Description' => 'ÐåñéãñáöÞ',
+ 'Detail' => 'ËåðôïìÝñåéá',
+ 'Due Date' => 'Çìåñïìçíßá ëÞîçò',
+ 'Feb' => 'Öåâ',
+ 'February' => 'ÖåâñïõÜñéïò',
+ 'From' => 'Áðü',
+ 'Invoice' => 'Ôéìïëüãéï',
+ 'Jan' => 'ÉÜí',
+ 'January' => 'ÉáíïõÜñéïò',
+ 'Jul' => 'Éïýë',
+ 'July' => 'Éïýëéïò',
+ 'Jun' => 'Éïýí',
+ 'June' => 'Éïýíéïò',
+ 'Language' => 'Ãëþóóá',
+ 'Mar' => 'Ìáñ',
+ 'March' => 'ÌÜñôéïò',
+ 'May' => 'ÌÜúïò',
+ 'May ' => 'ÌÜúïò',
+ 'Message' => 'Ìýíçìá',
+ 'Method' => 'ÌÝèïäïò',
+ 'Month' => 'ÌÞíáò',
+ 'Nothing selected!' => 'Äåí Ý÷å åðéëå÷èåß ôßðïôá',
+ 'Nov' => 'ÍïÝ',
+ 'November' => 'ÍïÝìâñéïò',
+ 'Number' => 'Áñéèìüò',
+ 'Oct' => 'Ïêô',
+ 'October' => 'Ïêôþâñéïò',
+ 'Order' => 'Ðáñáããåëßá',
+ 'Print' => 'Åêôýðùóç',
+ 'Project' => '¸ñãï',
+ 'Project Number' => 'Áñéèìüò Ýñãïõ',
+ 'Screen' => 'Ïèüíç',
+ 'Select all' => 'ÅðéëïãÞ üëùí',
+ 'Source' => 'ÐçãÞ',
+ 'Tax' => 'Öüñïò',
+ 'Vendor' => 'Creditor',
+ 'Vendor not on file!' => 'Creditor not on file!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'ÓõíÝ÷åéá' => 'continue',
+ 'Åêôýðùóç' => 'print',
+ 'ÅðéëïãÞ_üëùí' => 'select_all',
+};
+
+1;
+
diff --git a/locale/hu/COPYING b/locale/hu/COPYING
new file mode 100755
index 00000000..28f9a170
--- /dev/null
+++ b/locale/hu/COPYING
@@ -0,0 +1,23 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2003
+#
+# Hungarian texts:
+#
+# Author: Kabai József <kabai@investor.hu>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/hu/LANGUAGE b/locale/hu/LANGUAGE
new file mode 100755
index 00000000..6c035d52
--- /dev/null
+++ b/locale/hu/LANGUAGE
@@ -0,0 +1 @@
+Hungarian (ISO-8859-2)
diff --git a/locale/hu/Num2text b/locale/hu/Num2text
new file mode 100755
index 00000000..8c619887
--- /dev/null
+++ b/locale/hu/Num2text
@@ -0,0 +1,232 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (C) 2001
+#
+# Author: Dieter Simader
+# Email: dsimader@sql-ledger.org
+# Web: http://sourceforge.net/projects/ledger-smb/
+# Modified by: Medgyesi Aniko
+# **********************************
+# *#MEA1 * Hungarian version *
+# **********************************
+# Contributors:
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#=====================================================================
+#
+# this is the default code for the Check package
+#
+#=====================================================================
+
+sub init {
+ my $self = shift;
+#MEA1 English number ignored
+# %{ $self->{numbername} } =
+# (0 => 'Zero',
+# 1 => 'One',
+# 2 => 'Two',
+# 3 => 'Three',
+# 4 => 'Four',
+# 5 => 'Five',
+# 6 => 'Six',
+# 7 => 'Seven',
+# 8 => 'Eight',
+# 9 => 'Nine',
+# 10 => 'Ten',
+# 11 => 'Eleven',
+# 12 => 'Twelve',
+# 13 => 'Thirteen',
+# 14 => 'Fourteen',
+# 15 => 'Fifteen',
+# 16 => 'Sixteen',
+# 17 => 'Seventeen',
+# 18 => 'Eighteen',
+# 19 => 'Nineteen',
+# 20 => 'Twenty',
+# 30 => 'Thirty',
+# 40 => 'Forty',
+# 50 => 'Fifty',
+# 60 => 'Sixty',
+# 70 => 'Seventy',
+# 80 => 'Eighty',
+# 90 => 'Ninety',
+# 10**2 => 'Hundred',
+# 10**3 => 'Thousand',
+# 10**6 => 'Million',
+# 10**9 => 'Billion',
+# 10**12 => 'Trillion',
+# );
+#MEA1BEG Hungarian numbers
+ %{ $self->{numbername} } =
+ (0 => 'Nulla',
+ 1 => 'egy',
+ 2 => 'kettõ',
+ 3 => 'három',
+ 4 => 'négy',
+ 5 => 'öt',
+ 6 => 'hat',
+ 7 => 'hét',
+ 8 => 'nyolc',
+ 9 => 'kilenc',
+ 10 => 'tíz',
+ 11 => 'tizenegy',
+ 12 => 'tizenkettõ',
+ 13 => 'tizenhárom',
+ 14 => 'tizennégy',
+ 15 => 'tizenöt',
+ 16 => 'tizenhat',
+ 17 => 'tizenhét',
+ 18 => 'tizennyolc',
+ 19 => 'tizenkilenc',
+ 20 => 'húsz',
+ 21 => 'huszonegy',
+ 22 => 'huszonkettõ',
+ 23 => 'huszonhárom',
+ 24 => 'huszonnégy',
+ 25 => 'huszonöt',
+ 26 => 'huszonhat',
+ 27 => 'huszonhét',
+ 28 => 'huszonnyolc',
+ 29 => 'huszonkilenc',
+ 30 => 'harminc',
+ 40 => 'negyven',
+ 50 => 'ötven',
+ 60 => 'hatvan',
+ 70 => 'hetven',
+ 80 => 'nyolcvan',
+ 90 => 'kilencven',
+ 10**2 => 'száz',
+ 10**3 => 'ezer',
+ 10**6 => 'millió',
+ 10**9 => 'milliárd',
+ 10**12 => 'billió',
+ );
+#MEA1END
+
+}
+
+
+sub num2text {
+ my ($self, $amount) = @_;
+
+ return $self->{numbername}{0} unless $amount;
+
+ my @textnumber = ();
+
+ # split amount into chunks of 3
+ my @num = reverse split //, abs($amount);
+ my @numblock = ();
+ my @a;
+ my $i;
+#MEA1BEG
+ my $res;
+#MEA1END
+ while (@num) {
+ @a = ();
+ for (1 .. 3) {
+ push @a, shift @num;
+ }
+ push @numblock, join / /, reverse @a;
+ }
+ while (@numblock) {
+ $i = $#numblock;
+ @num = split //, $numblock[$i];
+
+ if ($numblock[$i] == 0) {
+ pop @numblock;
+ next;
+ }
+ if ($numblock[$i] > 99) {
+ push @textnumber, $self->{numbername}{$num[0]};
+
+ # add hundred designation
+ push @textnumber, $self->{numbername}{10**2};
+
+ # reduce numblock
+ $numblock[$i] -= $num[0] * 100;
+
+ }
+
+ $numblock[$i] *= 1;
+ if ($numblock[$i] > 9) {
+ # tens
+ push @textnumber, $self->format_ten($numblock[$i]);
+ } elsif ($numblock[$i] > 0) {
+ # ones
+ push @textnumber, $self->{numbername}{$numblock[$i]};
+ }
+
+ # add thousand, million
+ if ($i) {
+#MEA1BEG above 2000 need hyphen between treegroups
+# if ($numblock[$i] > 9) {
+# push @textnumber, $self->format_ten($numblock[$i]);
+# } elsif ($numblock[$i] > 0) {
+# push @textnumber, $self->{numbername}{$numblock[$i]};
+# }
+ if ($i==1 && $amount < 2000){
+
+ $num = 10**($i * 3);
+ push @textnumber, $self->{numbername}{$num};
+ } else {
+
+ $num = 10**($i * 3);
+ push @textnumber, $self->{numbername}{$num}."-";
+ }
+#MEA1END
+ }
+
+ pop @numblock;
+
+ }
+#MEA1BEG First charachter is uppercase
+# join '', @textnumber;
+ $res=ucfirst join '', @textnumber;
+#MEA1END
+#MEA1BEG remove last hyphen
+ $res=~s/(\-)$//;
+ return $res;
+#MEA1END
+
+
+}
+
+
+sub format_ten {
+ my ($self, $amount) = @_;
+
+ my $textnumber = "";
+ my @num = split //, $amount;
+#MEA1BEG above 30 not above 20
+# if ($amount > 30) {
+ if ($amount > 30) {
+#MEA1END
+ $textnumber = $self->{numbername}{$num[0]*10};
+ $amount = $num[1];
+ } else {
+ $textnumber = $self->{numbername}{$amount};
+ $amount = 0;
+ }
+
+ $textnumber .= "".$self->{numbername}{$amount} if $amount;
+
+ $textnumber;
+
+}
+
+
+1;
+
+
+
diff --git a/locale/hu/aa b/locale/hu/aa
new file mode 100755
index 00000000..76c0c085
--- /dev/null
+++ b/locale/hu/aa
@@ -0,0 +1,163 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'AP Outstanding' => 'Kifizetetlen szállítószámlák',
+ 'AP Transaction' => 'Szállító tranzakció',
+ 'AP Transactions' => 'Szállító tranzakciók',
+ 'AR Outstanding' => 'Kifizetetlen vevõszámlák',
+ 'AR Transaction' => 'Vevõ tranzakció',
+ 'AR Transactions' => 'Vevõ tranzakciók',
+ 'Account' => 'Számla',
+ 'Accounting Menu' => 'Menü',
+ 'Add AP Transaction' => 'Új Szállító Tranzakció',
+ 'Add AR Transaction' => 'Új Vevõ Tranzakció',
+ 'Amount' => 'Összeg',
+ 'Amount Due' => 'Esedékes összeg',
+ 'Apr' => 'Ápr.',
+ 'April' => 'Április',
+ 'Are you sure you want to delete Transaction' => 'Biztos, hogy törölni akarja? Tranzakció:',
+ 'Aug' => 'Aug.',
+ 'August' => 'Augusztus',
+ 'Cannot delete transaction!' => 'A tranzakciót nem lehet törölni!',
+ 'Cannot post payment for a closed period!' => 'A lezárt idõszakban nem lehet fizetést rögzíteni!',
+ 'Cannot post transaction for a closed period!' => 'A lezárt idõszakban nem lehet tranzakciót rögzíteni!!',
+ 'Cannot post transaction!' => 'A tranzakciót nem lehet rögzíteni!',
+ 'Check' => 'Csekk',
+ 'Closed' => 'Lezárt',
+ 'Confirm!' => 'Megerõsítés:',
+ 'Continue' => 'Folytatás',
+ 'Credit' => 'Követel',
+ 'Credit Limit' => 'Hitelkeret',
+ 'Curr' => 'Dev',
+ 'Currency' => 'Deviza',
+ 'Current' => '0-30',
+ 'Customer' => 'Vevõ',
+ 'Customer missing!' => 'Vevõ hiányzik!',
+ 'Date' => 'Dátum',
+ 'Date Paid' => 'Fizetés napja',
+ 'Debit' => 'Tartozik',
+ 'Dec' => 'Dec.',
+ 'December' => 'December',
+ 'Delete' => 'Törlés',
+ 'Department' => 'Osztály',
+ 'Description' => 'Szöveges leírás',
+ 'Detail' => 'Részletek',
+ 'Due Date' => 'Esedékesség',
+ 'Due Date missing!' => 'Esedékesség hiányzik!',
+ 'Edit AP Transaction' => 'Módosít Szállító Tranzakció',
+ 'Edit AR Transaction' => 'Módosít Szállító Tranzakció',
+ 'Employee' => 'Alkalmazott',
+ 'Exch' => 'Árf',
+ 'Exchange Rate' => 'Átváltási árfolyam',
+ 'Exchange rate for payment missing!' => 'A fizetett összeg átváltási árfolyama hiányzik!',
+ 'Exchange rate missing!' => 'Átváltási árfolyam hiányzik!',
+ 'Feb' => 'Feb.',
+ 'February' => 'Február',
+ 'From' => 'Mikortól:',
+ 'ID' => 'Azonosító',
+ 'Include in Report' => 'Oszlopok:',
+ 'Invoice' => 'Számla',
+ 'Invoice Date' => 'Teljesítés dátuma',
+ 'Invoice Date missing!' => 'Teljesítés dátuma hiányzik!',
+ 'Invoice Number' => 'Számlaszám',
+ 'Jan' => 'Jan.',
+ 'January' => 'Január',
+ 'Jul' => 'Júl.',
+ 'July' => 'Július',
+ 'Jun' => 'Jún.',
+ 'June' => 'Június',
+ 'Manager' => 'Manager',
+ 'Mar' => 'Márc.',
+ 'March' => 'Március',
+ 'May' => 'Máj.',
+ 'May ' => 'Május',
+ 'Memo' => 'Memo',
+ 'Month' => 'Hónap',
+ 'No.' => 'Sz.',
+ 'Notes' => 'Megjegyzés',
+ 'Nov' => 'Nov.',
+ 'November' => 'November',
+ 'Oct' => 'Okt.',
+ 'October' => 'Október',
+ 'Open' => 'Nyitott',
+ 'Order' => 'Rendelés',
+ 'Order Number' => 'Rendelés száma',
+ 'PO Number' => 'BeRendSzám',
+ 'Paid' => 'Fizetve',
+ 'Payment date missing!' => 'Pénzmozgás dátuma hiányzik!',
+ 'Payments' => 'Kifizetések',
+ 'Period' => 'Idõszak',
+ 'Post' => 'Rögzítés',
+ 'Post as new' => 'Rögzítés új tranzakcióként',
+ 'Print' => 'Nyomtatás',
+ 'Print and Post' => 'Nyomtat és Rögzít',
+ 'Print and Post as new' => 'Újat Nyomtat és Rögzít',
+ 'Project' => 'Munkaszám',
+ 'Quarter' => 'Negyedév',
+ 'Receipt' => 'Befizetés',
+ 'Remaining' => 'Maradék',
+ 'Sales Invoice.' => 'Vevõ Számla',
+ 'Salesperson' => 'Ügynök',
+ 'Schedule' => 'Ütemezés',
+ 'Sep' => 'Szept.',
+ 'September' => 'Szeptember',
+ 'Ship to' => 'Szállítási cím',
+ 'Ship via' => 'Fizetési mód',
+ 'Shipping Point' => 'Szállítási Hely',
+ 'Source' => 'Bizonylatszám',
+ 'Subtotal' => 'Részösszeg',
+ 'Summary' => 'Összegzés',
+ 'Tax' => 'Adó',
+ 'Tax Included' => 'Adót tartalmazza',
+ 'Till' => 'Kassza',
+ 'To' => 'Meddig:',
+ 'Total' => 'Végösszeg',
+ 'Transaction' => 'Tranzakció',
+ 'Transaction deleted!' => 'Tranzakció törölve!',
+ 'Transaction posted!' => 'Tranzakció rögzítve!',
+ 'Update' => 'Frissítés',
+ 'Vendor' => 'Szállító',
+ 'Vendor Invoice.' => 'Vevõ Számla',
+ 'Vendor missing!' => 'Szállító hiányzik!',
+ 'Year' => 'Év',
+ 'Yes' => 'Igen',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'szállító_tranzakció' => 'ap_transaction',
+ 'vevõ_tranzakció' => 'ar_transaction',
+ 'folytatás' => 'continue',
+ 'törlés' => 'delete',
+ 'rögzítés' => 'post',
+ 'rögzítés_új_tranzakcióként' => 'post_as_new',
+ 'nyomtatás' => 'print',
+ 'nyomtat_és_rögzít' => 'print_and_post',
+ 'Újat_nyomtat_és_rögzít' => 'print_and_post_as_new',
+ 'vevõ_számla' => 'sales_invoice_',
+ 'Ütemezés' => 'schedule',
+ 'szállítási_cím' => 'ship_to',
+ 'frissítés' => 'update',
+ 'vevõ_számla' => 'vendor_invoice_',
+ 'igen' => 'yes',
+};
+
+1;
+
diff --git a/locale/hu/admin b/locale/hu/admin
new file mode 100755
index 00000000..060071b3
--- /dev/null
+++ b/locale/hu/admin
@@ -0,0 +1,146 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Access Control' => 'Hozzáférési jogok',
+ 'Accounting' => 'Könyvelés',
+ 'Add User' => 'Új felhasználó',
+ 'Address' => 'Cím',
+ 'Administration' => 'Rendszerfelügyelet',
+ 'Administrator' => 'Rendszergazda',
+ 'All Datasets up to date!' => 'Összes ügyféladatbázis frissítve!',
+ 'Cannot create Lock!' => 'Cannot create Lock!',
+ 'Change Admin Password' => 'Rendszergazda jelszavának megváltoztatása',
+ 'Change Password' => 'Jelszó megváltoztatása',
+ 'Click on login name to edit!' => 'Módosításhoz klikkeljen a felhasználó nevére!',
+ 'Company' => 'Társaság',
+ 'Confirm' => 'Megerõsít',
+ 'Connect to' => 'Csatlakozva ehhez:',
+ 'Continue' => 'Folytatás',
+ 'Create Chart of Accounts' => 'Számlatükör készítése',
+ 'Create Dataset' => 'Új cégadatbázis',
+ 'DBA' => 'DBA',
+ 'DBI not installed!' => 'DBI program nincs installálva!',
+ 'Database' => 'Adatbázis',
+ 'Database Administration' => 'Adatbázis felügyelet',
+ 'Database Driver not checked!' => 'Nincs kijelölve az adatbázismotor típusa!',
+ 'Database User missing!' => 'Adatbázis felhasználója hiányzik!',
+ 'Dataset' => 'Cégadatbázis',
+ 'Dataset missing!' => 'Cégadatbázis hiányzik!',
+ 'Dataset updated!' => 'Cégadatbázis frissítve!',
+ 'Date Format' => 'Dátumformátum',
+ 'Delete' => 'Törlés',
+ 'Delete Dataset' => 'Cégadatbázis törlése',
+ 'Directory' => 'Könyvtár',
+ 'Driver' => 'Meghajtó',
+ 'Dropdown Limit' => 'Lenyíló ablak limit',
+ 'E-mail' => 'E-mail',
+ 'Edit User' => 'Felhasználó módosítása',
+ 'Existing Datasets' => 'Létezõ cégadatbázisok',
+ 'Fax' => 'Fax',
+ 'Host' => 'Adatbázis helye:',
+ 'Hostname missing!' => 'Adatbázis helye hiányzik!',
+ 'Language' => 'Nyelv',
+ 'Lock System' => 'Lock System',
+ 'Lockfile created!' => 'Lockfile created!',
+ 'Lockfile removed!' => 'Lockfile removed!',
+ 'Login' => 'Belépés',
+ 'Login name missing!' => 'Login name missing!',
+ 'Logout' => 'Kilépés',
+ 'Manager' => 'Manager',
+ 'Menu Width' => 'Menü Szélesség',
+ 'Multibyte Encoding' => 'Multibyte kódolás',
+ 'Name' => 'Név',
+ 'New Templates' => 'Új sablonok',
+ 'No Database Drivers available!' => 'Nincs elérhetõ adatbázismeghajtó!',
+ 'No Dataset selected!' => 'Nincs kiválasztott cégadatbázis!',
+ 'Nothing to delete!' => 'Nincs mit törölni!',
+ 'Number Format' => 'Számformátum',
+ 'Oracle Database Administration' => 'Oracle adatbázis felügyelet',
+ 'Password' => 'Jelszó',
+ 'Password changed!' => 'Jelszó megváltozott!',
+ 'Passwords do not match!' => 'Jelszó nem talált!',
+ 'Pg Database Administration' => 'Postgresql adatbázis felügyelet',
+ 'PgPP Database Administration' => 'PgPP Database Administration',
+ 'Phone' => 'Telefon',
+ 'Port' => 'Port száma',
+ 'Port missing!' => 'Port száma hiányzik!',
+ 'Printer' => 'Nyomtató',
+ 'Save' => 'Mentés',
+ 'Session Timeout' => 'Kapcsolat Lejárai Idõ',
+ 'Session expired!' => 'Kapcsolat lejárt!',
+ 'Setup Templates' => 'Sablonok beállítása',
+ 'Signature' => 'Aláírás',
+ 'Stylesheet' => 'Stíluslap',
+ 'Supervisor' => 'Felügyelõ',
+ 'Templates' => 'Sablonok',
+ 'The following Datasets are not in use and can be deleted' => 'Az alábbi cégadatbázisok üresek, és törölhetõk',
+ 'The following Datasets need to be updated' => 'Az alábbi cégadatbázisokat frissíteni kell',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'A meglévõ adatbázisok elõzetes ellenõrzése. A program itt még nem töröl és nem hoz létre semmit!',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Új felhasználót úgy hozhat létre egy meglévõ cégadatbázishoz, hogy egy létezõ felhasználóra kattint, és a belépési nevet és a jelszót megváltoztatja és elmenti. Az új felhasználó örökli a beállításokat.',
+ 'Unlock System' => 'Unlock System',
+ 'Update Dataset' => 'Cégadatbázis frissítése',
+ 'Use Templates' => 'Sablon használata',
+ 'User' => 'Felhasználó',
+ 'User deleted!' => 'Felhasználó törölve!',
+ 'User saved!' => 'Felhasználó elmentve!',
+ 'Version' => 'Verzió',
+ 'You are logged out' => 'Ön kilépett',
+ 'does not exist' => 'nem létezik',
+ 'is already a member!' => 'már tag!',
+ 'localhost' => 'localhost',
+ 'locked!' => 'lezárva',
+ 'successfully created!' => 'sikeresen létrehozva!',
+ 'successfully deleted!' => 'sikeresen törölve!',
+ 'website' => 'honlap',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'Új_felhasználó' => 'add_user',
+ 'rendszergazda_jelszavának_megváltoztatása' => 'change_admin_password',
+ 'jelszó_megváltoztatása' => 'change_password',
+ 'folytatás' => 'continue',
+ 'Új_cégadatbázis' => 'create_dataset',
+ 'törlés' => 'delete',
+ 'cégadatbázis_törlése' => 'delete_dataset',
+ 'lock_system' => 'lock_system',
+ 'belépés' => 'login',
+ 'kilépés' => 'logout',
+ 'oracle_adatbázis_felügyelet' => 'oracle_database_administration',
+ 'postgresql_adatbázis_felügyelet' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'mentés' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'cégadatbázis_frissítése' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/hu/all b/locale/hu/all
new file mode 100755
index 00000000..d1ffa86a
--- /dev/null
+++ b/locale/hu/all
@@ -0,0 +1,892 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+$self{charset} = 'ISO-8859-2';
+
+
+$self{texts} = {
+ 'A' => '',
+ 'AP' => 'Szállítók',
+ 'AP Aging' => 'Szállító lejárati lista',
+ 'AP Outstanding' => 'Kifizetetlen szállítószámlák',
+ 'AP Transaction' => 'Szállító tranzakció',
+ 'AP Transactions' => 'Szállító tranzakciók',
+ 'AR' => 'Vevõk',
+ 'AR Aging' => 'Vevõ lejárati lista',
+ 'AR Outstanding' => 'Kifizetetlen vevõszámlák',
+ 'AR Transaction' => 'Vevõ tranzakció',
+ 'AR Transactions' => 'Vevõ tranzakciók',
+ 'AR/AP' => '',
+ 'About' => ' ',
+ 'Above' => '',
+ 'Access Control' => 'Hozzáférési jogok',
+ 'Access Denied!' => '',
+ 'Account' => 'Számla',
+ 'Account Number' => 'Számlaszám',
+ 'Account Number missing!' => 'Számlaszám hiányzik!',
+ 'Account Type' => 'Számlatípus',
+ 'Account Type missing!' => 'Számlatípus hiányzik!',
+ 'Account deleted!' => 'Számla törölve!',
+ 'Account does not exist!' => '',
+ 'Account saved!' => 'Számla elmentve!',
+ 'Accounting' => 'Könyvelés',
+ 'Accounting Menu' => 'Menü',
+ 'Accounts' => 'Számlák',
+ 'Accrual' => '',
+ 'Activate Audit trail' => '',
+ 'Active' => 'Aktív',
+ 'Add' => 'Új',
+ 'Add AP Transaction' => '',
+ 'Add AR Transaction' => '',
+ 'Add Account' => 'Új számla',
+ 'Add Assembly' => 'Új saját termék',
+ 'Add Business' => '',
+ 'Add Cash Transfer Transaction' => 'Új számlák közötti pénzmozgás',
+ 'Add Customer' => 'Új vevõ',
+ 'Add Deduction' => '',
+ 'Add Department' => '',
+ 'Add Employee' => '',
+ 'Add Exchange Rate' => '',
+ 'Add GIFI' => 'Új gyûjtõkód',
+ 'Add General Ledger Transaction' => 'Új fõkönyvi könyvelés',
+ 'Add Group' => 'Új csoport',
+ 'Add Job' => '',
+ 'Add Labor/Overhead' => '',
+ 'Add Language' => '',
+ 'Add POS Invoice' => 'Új Nyugta',
+ 'Add Part' => 'Új cikk',
+ 'Add Pricegroup' => '',
+ 'Add Project' => 'Új munkaszám',
+ 'Add Purchase Order' => 'Új beszerzési rendelés',
+ 'Add Quotation' => '',
+ 'Add Request for Quotation' => '',
+ 'Add SIC' => '',
+ 'Add Sales Invoice' => 'Új vevõszámla',
+ 'Add Sales Order' => 'Új vevõrendelés',
+ 'Add Service' => 'Új szolgáltatás',
+ 'Add Timecard' => '',
+ 'Add Transaction' => 'Új tranzakció',
+ 'Add User' => 'Új felhasználó',
+ 'Add Vendor' => 'Új szállító',
+ 'Add Vendor Invoice' => 'Új beszerzési számla',
+ 'Add Warehouse' => '',
+ 'Address' => 'Cím',
+ 'Administration' => 'Rendszerfelügyelet',
+ 'Administrator' => 'Rendszergazda',
+ 'After Deduction' => '',
+ 'All' => 'Összes',
+ 'All Accounts' => '',
+ 'All Datasets up to date!' => 'Összes ügyféladatbázis frissítve!',
+ 'All Items' => '',
+ 'Allowances' => '',
+ 'Amount' => 'Összeg',
+ 'Amount Due' => 'Esedékes összeg',
+ 'Amount missing!' => 'Összeg hiányzik!',
+ 'Apr' => 'Ápr.',
+ 'April' => 'Április',
+ 'Are you sure you want to delete Invoice Number' => 'Biztos, hogy törölni akarja? Számlaszám:',
+ 'Are you sure you want to delete Order Number' => 'Biztos, hogy törölni akarja? Megrendelésszám:',
+ 'Are you sure you want to delete Quotation Number' => '',
+ 'Are you sure you want to delete Timecard for' => '',
+ 'Are you sure you want to delete Transaction' => 'Biztos, hogy törölni akarja? Tranzakció:',
+ 'Are you sure you want to remove the marked entries from the queue?' => '',
+ 'Assemblies' => 'Saját termékek',
+ 'Assemblies restocked!' => 'Saját termékek készletre véve',
+ 'Assembly' => '',
+ 'Assembly stocked!' => '',
+ 'Asset' => 'Eszköz',
+ 'Attachment' => 'Csatolás',
+ 'Audit Control' => 'Audit Kontroll',
+ 'Audit trail disabled' => '',
+ 'Audit trail enabled' => '',
+ 'Audit trail removed up to' => '',
+ 'Aug' => 'Aug.',
+ 'August' => 'Augusztus',
+ 'Average Cost' => '',
+ 'Avg Cost' => '',
+ 'BIC' => '',
+ 'BOM' => 'Anyagjegyzék',
+ 'Backup' => 'Biztonsági másolat',
+ 'Backup sent to' => 'Biztonsági másolat elküldve:',
+ 'Balance' => 'Egyenleg',
+ 'Balance Sheet' => 'Mérleg',
+ 'Based on' => '',
+ 'Bcc' => 'Titkos másolat',
+ 'Before Deduction' => '',
+ 'Beginning Balance' => 'Nyitóegyenleg',
+ 'Below' => '',
+ 'Billing Address' => '',
+ 'Bin' => 'Raktárhely',
+ 'Bin List' => '',
+ 'Bin Lists' => '',
+ 'Books are open' => 'Az ügyféladatbázisban bármit lehet törölni, módosítani',
+ 'Break' => '',
+ 'Business' => '',
+ 'Business Number' => 'Adószám',
+ 'Business deleted!' => '',
+ 'Business saved!' => '',
+ 'C' => 'C',
+ 'COGS' => 'ELÁBÉ',
+ 'COGS account does not exist!' => '',
+ 'Cannot add timecard for a completed job!' => '',
+ 'Cannot change timecard for a completed job!' => '',
+ 'Cannot create Assembly' => '',
+ 'Cannot create Labor' => '',
+ 'Cannot create Lock!' => 'Cannot create Lock!',
+ 'Cannot create Part' => '',
+ 'Cannot create Service' => '',
+ 'Cannot delete Timecard!' => '',
+ 'Cannot delete account!' => 'A számlát nem lehet törölni',
+ 'Cannot delete customer!' => 'A vevõt nem lehet törölni!',
+ 'Cannot delete default account!' => 'Az alapbeállítású számlát nem lehet törölni!',
+ 'Cannot delete invoice!' => 'A partnerszámlát nem lehet törölni!',
+ 'Cannot delete item!' => 'A tételt nem lehet törölni!',
+ 'Cannot delete order!' => 'A rendelést nem lehet törölni!',
+ 'Cannot delete quotation!' => '',
+ 'Cannot delete transaction!' => 'A tranzakciót nem lehet törölni!',
+ 'Cannot delete vendor!' => 'Szállítót nem lehet törölni!',
+ 'Cannot post Payment!' => '',
+ 'Cannot post Receipt!' => '',
+ 'Cannot post invoice for a closed period!' => 'A lezárt idõszakban nem lehet számlát kiállítani!',
+ 'Cannot post invoice!' => 'A partnerszámlát nem lehet kiállítani',
+ 'Cannot post payment for a closed period!' => 'A lezárt idõszakban nem lehet fizetést rögzíteni!',
+ 'Cannot post transaction for a closed period!' => 'A lezárt idõszakban nem lehet tranzakciót rögzíteni!!',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => '',
+ 'Cannot post transaction!' => 'A tranzakciót nem lehet rögzíteni!',
+ 'Cannot remove files!' => '',
+ 'Cannot save account!' => 'A számlát nem lehet elmenteni!',
+ 'Cannot save defaults!' => '',
+ 'Cannot save order!' => 'A rendelést nem lehet elmenteni!',
+ 'Cannot save preferences!' => 'A beállításokat nem lehet elmenteni',
+ 'Cannot save quotation!' => '',
+ 'Cannot save timecard for a closed period!' => '',
+ 'Cannot save timecard!' => '',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Gyûjtõszámla nem lehet egyszerre Vevõk, Szállítók vagy Készlet',
+ 'Cannot set multiple options for' => '',
+ 'Cannot set multiple options for Item' => '',
+ 'Cannot stock Assembly!' => '',
+ 'Cannot stock assemblies!' => 'A saját terméket nem lehet készletre venni!',
+ 'Cash' => 'Pénzmozgások',
+ 'Cc' => 'Másolat',
+ 'Change' => 'Visszajáró',
+ 'Change Admin Password' => 'Rendszergazda jelszavának megváltoztatása',
+ 'Change Password' => 'Jelszó megváltoztatása',
+ 'Charge' => '',
+ 'Chart of Accounts' => 'Számlatükör',
+ 'Check' => 'Csekk',
+ 'Check Inventory' => '',
+ 'Checks' => '',
+ 'City' => '',
+ 'Cleared' => '',
+ 'Click on login name to edit!' => 'Módosításhoz klikkeljen a felhasználó nevére!',
+ 'Clocked' => '',
+ 'Close Books up to' => 'Könyvelés lezárása eddig az idõpontig:',
+ 'Closed' => 'Lezárt',
+ 'Code' => '',
+ 'Code missing!' => '',
+ 'Company' => 'Társaság',
+ 'Company Name' => '',
+ 'Compare to' => 'Összehasonlítva:',
+ 'Completed' => '',
+ 'Components' => '',
+ 'Confirm' => '',
+ 'Confirm!' => 'Megerõsítés:',
+ 'Connect to' => 'Csatlakozva ehhez:',
+ 'Contact' => 'Kapcsolat',
+ 'Continue' => 'Folytatás',
+ 'Contra' => '',
+ 'Copies' => 'Másolatok',
+ 'Copy to COA' => 'Másolás a számlatükörbe',
+ 'Cost' => '',
+ 'Cost Center' => '',
+ 'Could not save pricelist!' => '',
+ 'Could not save!' => '',
+ 'Could not transfer Inventory!' => '',
+ 'Country' => '',
+ 'Create Chart of Accounts' => 'Számlatükör készítése',
+ 'Create Dataset' => 'Új cégadatbázis',
+ 'Credit' => 'Követel',
+ 'Credit Limit' => 'Hitelkeret',
+ 'Curr' => 'Dev',
+ 'Currency' => 'Deviza',
+ 'Current' => '0-30',
+ 'Current Earnings' => '',
+ 'Customer' => 'Vevõ',
+ 'Customer History' => '',
+ 'Customer Number' => '',
+ 'Customer deleted!' => 'Vevõ törölve!',
+ 'Customer missing!' => 'Vevõ hiányzik!',
+ 'Customer not on file!' => 'A vevõ hiányzik az adatbázisból!',
+ 'Customer saved!' => 'Vevõ elmentve!',
+ 'Customers' => 'Vevõadatok',
+ 'DBI not installed!' => 'DBI program nincs installálva!',
+ 'DOB' => '',
+ 'Database' => 'Adatbázis',
+ 'Database Administration' => 'Adatbázis felügyelet',
+ 'Database Driver not checked!' => 'Nincs kijelölve az adatbázismotor típusa!',
+ 'Database Host' => 'Adatbázis helye',
+ 'Database User missing!' => 'Adatbázis felhasználója hiányzik!',
+ 'Dataset' => 'Cégadatbázis',
+ 'Dataset is newer than version!' => 'A Cégadatbázis verziója újabb, mint a programé!',
+ 'Dataset missing!' => 'Cégadatbázis hiányzik!',
+ 'Dataset updated!' => 'Cégadatbázis frissítve!',
+ 'Date' => 'Dátum',
+ 'Date Format' => 'Dátumformátum',
+ 'Date Paid' => 'Fizetés napja',
+ 'Date Received' => '',
+ 'Date missing!' => 'Dátum hiányzik',
+ 'Date received missing!' => '',
+ 'Date worked' => '',
+ 'Day' => '',
+ 'Day(s)' => '',
+ 'Days' => '',
+ 'Debit' => 'Tartozik',
+ 'Dec' => 'Dec.',
+ 'December' => 'December',
+ 'Decimalplaces' => 'Tizedeshelyek',
+ 'Decrease' => 'Csökkenés',
+ 'Deduct after' => '',
+ 'Deduction deleted!' => '',
+ 'Deduction saved!' => '',
+ 'Deductions' => '',
+ 'Default Template' => '',
+ 'Defaults' => '',
+ 'Defaults saved!' => '',
+ 'Delete' => 'Törlés',
+ 'Delete Account' => 'Számla törlése',
+ 'Delete Dataset' => 'Cégadatbázis törlése',
+ 'Delete Schedule' => '',
+ 'Deleting a language will also delete the templates for the language' => '',
+ 'Delivery Date' => 'Szállítás dátuma',
+ 'Department' => '',
+ 'Department deleted!' => '',
+ 'Department saved!' => '',
+ 'Departments' => '',
+ 'Deposit' => 'Jóváírás',
+ 'Description' => 'Szöveges leírás',
+ 'Description Translations' => '',
+ 'Description missing!' => '',
+ 'Detail' => '',
+ 'Difference' => 'Eltérés',
+ 'Directory' => 'Könyvtár',
+ 'Discount' => 'Engedmény',
+ 'Done' => 'Elvégezve',
+ 'Drawing' => 'Rajz',
+ 'Driver' => 'Meghajtó',
+ 'Dropdown Limit' => 'Lenyíló ablak limit',
+ 'Due Date' => 'Esedékesség',
+ 'Due Date missing!' => 'Esedékesség hiányzik!',
+ 'E-mail' => 'E-mail',
+ 'E-mail Statement to' => 'Kimutatás küldése e-mail-ben:',
+ 'E-mail address missing!' => 'E-mail cím hiányzik!',
+ 'E-mail message' => '',
+ 'E-mailed' => '',
+ 'Edit' => 'Módosítás',
+ 'Edit AP Transaction' => '',
+ 'Edit AR Transaction' => '',
+ 'Edit Account' => 'Számlaszám módosítása',
+ 'Edit Assembly' => 'Saját termék módosítása',
+ 'Edit Business' => '',
+ 'Edit Cash Transfer Transaction' => 'Számlák közötti pénzmozgás módosítása',
+ 'Edit Customer' => 'Vevõ módosítása',
+ 'Edit Deduction' => '',
+ 'Edit Department' => '',
+ 'Edit Description Translations' => '',
+ 'Edit Employee' => '',
+ 'Edit GIFI' => 'Gyûjtõkód módosítása',
+ 'Edit General Ledger Transaction' => 'Vegyes könyvelési tétel módosítása',
+ 'Edit Group' => 'Csoport módosítása',
+ 'Edit Job' => '',
+ 'Edit Labor/Overhead' => '',
+ 'Edit Language' => '',
+ 'Edit POS Invoice' => 'Nyugta módosítása',
+ 'Edit Part' => 'Cikk módosítása',
+ 'Edit Preferences for' => 'Felhasználói paraméterek módosítása:',
+ 'Edit Pricegroup' => '',
+ 'Edit Project' => 'Projekt módosítása',
+ 'Edit Purchase Order' => 'Beszerzési rendelés módosítása',
+ 'Edit Quotation' => '',
+ 'Edit Request for Quotation' => '',
+ 'Edit SIC' => '',
+ 'Edit Sales Invoice' => 'Vevõszámla módosítása',
+ 'Edit Sales Order' => 'Vevõrendelés módosítása',
+ 'Edit Service' => 'Szolgáltatás módosítása',
+ 'Edit Template' => 'Sablon módosítása',
+ 'Edit Timecard' => '',
+ 'Edit User' => 'Felhasználó módosítása',
+ 'Edit Vendor' => 'Szállító módosítása',
+ 'Edit Vendor Invoice' => 'Beszerzési számla módosítása',
+ 'Edit Warehouse' => '',
+ 'Employee' => 'Alkalmazott',
+ 'Employee Name' => '',
+ 'Employee Number' => '',
+ 'Employee deleted!' => '',
+ 'Employee pays' => '',
+ 'Employee saved!' => '',
+ 'Employees' => '',
+ 'Employer' => '',
+ 'Employer pays' => '',
+ 'Enddate' => '',
+ 'Ends' => '',
+ 'Enforce transaction reversal for all dates' => 'Minden dátum esetében csak ellentétes elõjelû tranzakcióval lehet stornózni?',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'A saját és külföldi devizákat jelölje 3 betûvel kettõsponttal elválasztva! (pl. HUF:EUR:USD)',
+ 'Equity' => 'Tõke',
+ 'Every' => '',
+ 'Excempt age <' => '',
+ 'Exch' => 'Árf',
+ 'Exchange Rate' => 'Átváltási árfolyam',
+ 'Exchange rate for payment missing!' => 'A fizetett összeg átváltási árfolyama hiányzik!',
+ 'Exchange rate missing!' => 'Átváltási árfolyam hiányzik!',
+ 'Existing Datasets' => 'Létezõ cégadatbázisok',
+ 'Expense' => 'Költség',
+ 'Expense account does not exist!' => '',
+ 'Expense/Asset' => 'Költség/Eszköz',
+ 'Extended' => 'Összeg',
+ 'FX' => 'Deviza',
+ 'Failed to save order!' => '',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb.',
+ 'February' => 'Február',
+ 'For' => '',
+ 'Foreign Exchange Gain' => 'Árfolyamnyereség',
+ 'Foreign Exchange Loss' => 'Árfolyamveszteség',
+ 'Friday' => '',
+ 'From' => 'Mikortól:',
+ 'From Warehouse' => '',
+ 'GIFI' => 'Gyûjtõkód',
+ 'GIFI deleted!' => 'Gyûjtõkód törölve!',
+ 'GIFI missing!' => 'Gyûjtõkód hiányzik!',
+ 'GIFI saved!' => 'Gyûjtõkód elmentve!',
+ 'GL' => '',
+ 'GL Reference Number' => '',
+ 'GL Transaction' => 'Fõkönyvi tranzakció!',
+ 'General Ledger' => 'Fõkönyvi könyvelés',
+ 'Generate' => '',
+ 'Generate Orders' => '',
+ 'Generate Purchase Orders' => '',
+ 'Generate Purchase Orders from Sales Order' => '',
+ 'Generate Sales Order' => '',
+ 'Generate Sales Order from Purchase Orders' => '',
+ 'Generate Sales Orders' => '',
+ 'Goods & Services' => 'Áruk & Szolgáltatások',
+ 'Group' => 'Csoport',
+ 'Group Items' => 'Tételek rendezése csoport alapján',
+ 'Group Translations' => '',
+ 'Group deleted!' => 'Csoport törölve!',
+ 'Group missing!' => 'Csoport hiányzik!',
+ 'Group saved!' => 'Csoport elmentve!',
+ 'Groups' => 'Csoportok',
+ 'HR' => '',
+ 'HTML Templates' => 'HTML sablonok',
+ 'Heading' => 'Fejléc',
+ 'History' => '',
+ 'Home Phone' => '',
+ 'Host' => 'Adatbázis helye:',
+ 'Hostname missing!' => 'Adatbázis helye hiányzik!',
+ 'IBAN' => '',
+ 'ID' => 'Azonosító',
+ 'Image' => 'Kép',
+ 'In-line' => 'Beágyazva',
+ 'Inactive' => '',
+ 'Include Exchange Rate Difference' => 'Árfolyamkülönbséget tartalmazza',
+ 'Include Payment' => '',
+ 'Include in Report' => 'Oszlopok:',
+ 'Include in drop-down menus' => 'Mely tranzakció(k)-nál lehessen kiválasztani?:',
+ 'Income' => 'Árbevétel',
+ 'Income Statement' => 'Eredménykimutatás',
+ 'Income account does not exist!' => '',
+ 'Incorrect Dataset version!' => 'Érvénytelen adatbázisverzió!',
+ 'Increase' => 'Növekedés',
+ 'Individual Items' => 'Összetevõk',
+ 'Internal Notes' => '',
+ 'Inventory' => 'Készlet',
+ 'Inventory account does not exist!' => '',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Mielõtt ezt a saját terméket elévültnek nyilvánítja,a mennyiségnek nullának kell lennie!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Mielõtt ezt az anyagot/árut elévültnek nyilvánítja,a mennyiségnek nullának kell lennie!!',
+ 'Inventory saved!' => '',
+ 'Inventory transferred!' => '',
+ 'Invoice' => 'Számla',
+ 'Invoice Date' => 'Teljesítés dátuma',
+ 'Invoice Date missing!' => 'Teljesítés dátuma hiányzik!',
+ 'Invoice Number' => 'Számlaszám',
+ 'Invoice Number missing!' => 'Számlaszám hiányzik!',
+ 'Invoice deleted!' => 'Számla törölve!',
+ 'Invoices' => 'Számlák',
+ 'Is this a summary account to record' => 'Gyûjtõszámlaként szerepeljen ezeknél a tranzakcióknál:',
+ 'Item already on pricelist!' => '',
+ 'Item deleted!' => 'Tétel törölve!',
+ 'Item not on file!' => 'A tétel nincs az adatbázisban!',
+ 'Items' => '',
+ 'Jan' => 'Jan.',
+ 'January' => 'Január',
+ 'Job' => '',
+ 'Job Name' => '',
+ 'Job Number' => '',
+ 'Job Number missing!' => '',
+ 'Job deleted!' => '',
+ 'Job saved!' => '',
+ 'Jobs' => '',
+ 'Jul' => 'Júl.',
+ 'July' => 'Július',
+ 'Jun' => 'Jún.',
+ 'June' => 'Június',
+ 'LaTeX Templates' => 'LaTeX sablonok',
+ 'Labor Code' => '',
+ 'Labor/Overhead' => '',
+ 'Language' => 'Nyelv',
+ 'Language deleted!' => '',
+ 'Language saved!' => '',
+ 'Languages' => '',
+ 'Languages not defined!' => '',
+ 'Last Cost' => '',
+ 'Last Numbers & Default Accounts' => 'Legutolsó számok & Alapszámlák',
+ 'Lead' => '',
+ 'Leadtime' => '',
+ 'Leave host and port field empty unless you want to make a remote connection.' => 'Hagyja üresen a Hely és a Port mezõket, hacsak nem akar távoli kapcsolatot létesíteni',
+ 'Liability' => 'Kötelezettség',
+ 'Licensed to' => 'Cég:',
+ 'Line Total' => 'Sor összesen',
+ 'Link' => 'Kapcsolat',
+ 'Link Accounts' => 'Számlakapcsolatok',
+ 'List' => '',
+ 'List Accounts' => 'Számlák listázása',
+ 'List Businesses' => '',
+ 'List Departments' => '',
+ 'List GIFI' => 'Gyûjtõkódok listázása',
+ 'List Languages' => '',
+ 'List Price' => 'Listaár',
+ 'List Projects' => '',
+ 'List SIC' => '',
+ 'List Transactions' => 'Tranzakciók listázása',
+ 'List Warehouses' => '',
+ 'Lock System' => 'Lock System',
+ 'Lockfile created!' => 'Lockfile created!',
+ 'Lockfile removed!' => 'Lockfile removed!',
+ 'Login' => 'Belépés',
+ 'Login name missing!' => 'Login name missing!',
+ 'Logout' => 'Kilépés',
+ 'Make' => 'Gyártmány',
+ 'Manager' => '',
+ 'Mar' => 'Márc.',
+ 'March' => 'Március',
+ 'Marked entries printed!' => '',
+ 'Markup' => '',
+ 'Maximum' => '',
+ 'May' => 'Máj.',
+ 'May ' => 'Május',
+ 'Memo' => '',
+ 'Menu Width' => '',
+ 'Message' => 'Üzenet',
+ 'Method' => '',
+ 'Microfiche' => 'Mikrofilm',
+ 'Model' => 'Modell',
+ 'Monday' => '',
+ 'Month' => '',
+ 'Month(s)' => '',
+ 'Months' => '',
+ 'Multibyte Encoding' => 'Multibyte kódolás',
+ 'N/A' => 'N/A',
+ 'Name' => 'Név',
+ 'Name missing!' => 'Név hiányzik',
+ 'New Templates' => 'Új sablonok',
+ 'New Window' => '',
+ 'Next' => '',
+ 'Next Date' => '',
+ 'Next Number' => '',
+ 'No' => 'Nem',
+ 'No Database Drivers available!' => 'Nincs elérhetõ adatbázismeghajtó!',
+ 'No Dataset selected!' => 'Nincs kiválasztott cégadatbázis!',
+ 'No Employees on file!' => '',
+ 'No Labor codes on file!' => '',
+ 'No email address for' => 'Nincs e-mail címe:',
+ 'No open Jobs!' => '',
+ 'No open Projects!' => '',
+ 'No.' => 'Sz.',
+ 'Non-taxable' => '',
+ 'Non-taxable Purchases' => '',
+ 'Non-taxable Sales' => '',
+ 'Non-tracking Items' => '',
+ 'Notes' => 'Megjegyzés',
+ 'Nothing entered!' => '',
+ 'Nothing selected!' => 'Nincs semmi kiválasztva!',
+ 'Nothing to delete!' => 'Nincs mit törölni!',
+ 'Nothing to print!' => '',
+ 'Nothing to transfer!' => '',
+ 'Nov' => 'Nov.',
+ 'November' => 'November',
+ 'Number' => 'Szám',
+ 'Number Format' => 'Számformátum',
+ 'Number missing in Row' => 'Ebbõl a sorból hiányzik a szám:',
+ 'O' => 'Ny.',
+ 'OH' => '',
+ 'Obsolete' => 'Elévült',
+ 'Oct' => 'Okt.',
+ 'October' => 'Október',
+ 'On Hand' => 'Készleten',
+ 'Open' => 'Nyitott',
+ 'Oracle Database Administration' => 'Oracle adatbázis felügyelet',
+ 'Order' => 'Rendelés',
+ 'Order Date' => 'Rendelés dátuma',
+ 'Order Date missing!' => 'Rendelés dátuma hiányzik!',
+ 'Order Entry' => 'Rendelések',
+ 'Order Number' => 'Rendelés száma',
+ 'Order Number missing!' => 'Rendelés száma hiányzik!',
+ 'Order deleted!' => 'Rendelés törölve!',
+ 'Order generation failed!' => '',
+ 'Order saved!' => 'Rendelés elmentve!',
+ 'Orders generated!' => '',
+ 'Orphaned' => 'Tranzakció nélküli',
+ 'Out of balance transaction!' => '',
+ 'Out of balance!' => 'Az egyenleg nem stimmel!',
+ 'Outstanding' => 'Kifizetetlen',
+ 'PDF' => 'PDF',
+ 'PO Number' => '',
+ 'POS' => 'Nyugta',
+ 'POS Invoice' => '',
+ 'Packing List' => 'Szállítólevél',
+ 'Packing List Date missing!' => 'Szállítólevél dátuma hiányzik!',
+ 'Packing List Number missing!' => 'Szállítólevél száma hiányzik!',
+ 'Packing Lists' => '',
+ 'Paid' => 'Fizetve',
+ 'Part' => 'Cikk',
+ 'Part Number' => '',
+ 'Partnumber' => '',
+ 'Parts' => 'Cikkek',
+ 'Password' => 'Jelszó',
+ 'Password changed!' => 'Jelszó megváltozott!',
+ 'Password does not match!' => '',
+ 'Passwords do not match!' => '',
+ 'Payables' => 'Szállítók',
+ 'Payment' => 'Kifizetés',
+ 'Payment date missing!' => 'Pénzmozgás dátuma hiányzik!',
+ 'Payment posted!' => 'Pénzmozgás rögzítve',
+ 'Payments' => 'Kifizetések',
+ 'Payments posted!' => '',
+ 'Payroll Deduction' => '',
+ 'Period' => '',
+ 'Pg Database Administration' => 'Postgresql adatbázis felügyelet',
+ 'PgPP Database Administration' => 'PgPP Database Administration',
+ 'Phone' => 'Telefon',
+ 'Pick List' => '',
+ 'Pick Lists' => '',
+ 'Port' => 'Port száma',
+ 'Port missing!' => 'Port száma hiányzik!',
+ 'Pos' => '',
+ 'Post' => 'Rögzítés',
+ 'Post as new' => 'Rögzítés új tranzakcióként',
+ 'Posted!' => 'Rögzítve',
+ 'Posting' => '',
+ 'Posting failed!' => '',
+ 'Postscript' => 'Postscript',
+ 'Preferences' => 'Beállítások',
+ 'Preferences saved!' => 'Beállítások elmentve!',
+ 'Prepayment' => '',
+ 'Price' => 'Ár',
+ 'Pricegroup' => '',
+ 'Pricegroup deleted!' => '',
+ 'Pricegroup missing!' => '',
+ 'Pricegroup saved!' => '',
+ 'Pricegroups' => '',
+ 'Pricelist' => '',
+ 'Print' => 'Nyomtatás',
+ 'Print and Post' => '',
+ 'Print and Post as new' => '',
+ 'Print and Save' => '',
+ 'Print and Save as new' => '',
+ 'Print and post as new' => '',
+ 'Print and save as new' => '',
+ 'Printed' => '',
+ 'Printer' => 'Nyomtató',
+ 'Printing' => '',
+ 'Printing ... ' => '',
+ 'Process Transactions' => '',
+ 'Production' => '',
+ 'Profit Center' => '',
+ 'Project' => 'Munkaszám',
+ 'Project Description Translations' => '',
+ 'Project Name' => '',
+ 'Project Number' => 'Munkaszám',
+ 'Project Number missing!' => 'Munkaszám száma hiányzik!',
+ 'Project Transactions' => '',
+ 'Project deleted!' => 'Munkaszám törölve!',
+ 'Project not on file!' => '',
+ 'Project saved!' => 'Munkaszám elmentve!',
+ 'Project/Job Name' => '',
+ 'Project/Job Number' => '',
+ 'Projects' => 'Munkaszámok',
+ 'Purchase Order' => 'Beszerzési rendelés',
+ 'Purchase Order Number' => '',
+ 'Purchase Orders' => 'Beszerzési rendelések',
+ 'Qty' => 'Menny.',
+ 'Quantity exceeds available units to stock!' => '',
+ 'Quarter' => '',
+ 'Quotation' => '',
+ 'Quotation ' => '',
+ 'Quotation Date' => '',
+ 'Quotation Date missing!' => '',
+ 'Quotation Number' => '',
+ 'Quotation Number missing!' => '',
+ 'Quotation deleted!' => '',
+ 'Quotations' => '',
+ 'R' => 'E',
+ 'RFQ' => '',
+ 'RFQ ' => '',
+ 'RFQ Number' => '',
+ 'RFQs' => '',
+ 'ROP' => 'Rendelési pont',
+ 'Rate' => 'Árfolyam',
+ 'Rate missing!' => '',
+ 'Recd' => 'Kapott',
+ 'Receipt' => 'Befizetés',
+ 'Receipt posted!' => '',
+ 'Receipts' => 'Befizetések',
+ 'Receivables' => 'Vevõk',
+ 'Receive' => '',
+ 'Receive Merchandise' => '',
+ 'Reconciliation' => 'Egyeztetés',
+ 'Reconciliation Report' => '',
+ 'Record in' => 'Feladás:',
+ 'Recurring Transaction' => '',
+ 'Recurring Transactions' => '',
+ 'Reference' => 'Hivatkozás',
+ 'Remaining' => 'Maradék',
+ 'Remove' => '',
+ 'Remove Audit trail up to' => '',
+ 'Removed spoolfiles!' => '',
+ 'Removing marked entries from queue ...' => '',
+ 'Repeat' => '',
+ 'Report for' => 'Jelentés:',
+ 'Reports' => 'Jelentések',
+ 'Req' => '',
+ 'Request for Quotation' => '',
+ 'Request for Quotations' => '',
+ 'Required by' => 'Leszállítás',
+ 'Retained Earnings' => 'Adózás elõtti eredmény',
+ 'Role' => '',
+ 'S' => '',
+ 'SIC' => '',
+ 'SIC deleted!' => '',
+ 'SIC saved!' => '',
+ 'SKU' => '',
+ 'SSN' => '',
+ 'Sale' => 'Eladás',
+ 'Sales' => 'Eladás',
+ 'Sales Invoice' => 'Vevõszámla',
+ 'Sales Invoice ' => '',
+ 'Sales Invoice.' => '',
+ 'Sales Invoice/AR Transaction Number' => '',
+ 'Sales Invoices' => '',
+ 'Sales Order' => 'Vevõrendelés',
+ 'Sales Order Number' => '',
+ 'Sales Orders' => 'Vevõrendelések',
+ 'Sales Quotation Number' => '',
+ 'Salesperson' => 'Ügynök',
+ 'Saturday' => '',
+ 'Save' => 'Mentés',
+ 'Save Pricelist' => '',
+ 'Save Schedule' => '',
+ 'Save as new' => 'Mentés újként',
+ 'Save to File' => 'Másolat File-ba',
+ 'Saving' => '',
+ 'Schedule' => '',
+ 'Scheduled' => '',
+ 'Screen' => 'Képernyõre',
+ 'Search' => '',
+ 'Select' => '',
+ 'Select Customer' => '',
+ 'Select Vendor' => '',
+ 'Select a Printer!' => '',
+ 'Select a printer!' => '',
+ 'Select all' => 'Mindent kijelöl',
+ 'Select from one of the items below' => 'Válasszon ki egyet az alábbi tételek közül',
+ 'Select from one of the names below' => 'Válasszon ki egyet az alábbi nevek közül',
+ 'Select from one of the projects below' => '',
+ 'Select items' => '',
+ 'Select payment' => '',
+ 'Select postscript or PDF!' => 'Válassza ki a postscript vagy a PDF formátumot!',
+ 'Select txt, postscript or PDF!' => '',
+ 'Sell' => '',
+ 'Sell Price' => 'Eladási ár',
+ 'Send by E-Mail' => 'Másolat E-mail-ben',
+ 'Sending' => '',
+ 'Sep' => 'Szept.',
+ 'September' => 'Szeptember',
+ 'Serial No.' => '',
+ 'Serial Number' => '',
+ 'Service' => 'Szolgáltatás',
+ 'Service Code' => '',
+ 'Service/Labor Code' => '',
+ 'Services' => 'Szolgáltatások',
+ 'Session Timeout' => '',
+ 'Session expired!' => '',
+ 'Setup Templates' => 'Sablonok beállítása',
+ 'Ship' => 'Szállítás',
+ 'Ship Merchandise' => '',
+ 'Ship to' => 'Szállítási cím',
+ 'Ship via' => 'Fizetési mód',
+ 'Shipping' => '',
+ 'Shipping Address' => '',
+ 'Shipping Date' => '',
+ 'Shipping Date missing!' => '',
+ 'Shipping Point' => '',
+ 'Short' => 'Hiányzó',
+ 'Signature' => 'Aláírás',
+ 'Source' => 'Bizonylatszám',
+ 'Spoolfile' => '',
+ 'Standard' => 'Sztenderd',
+ 'Standard Industrial Codes' => '',
+ 'Startdate' => '',
+ 'State' => '',
+ 'State/Province' => '',
+ 'Statement' => 'Kimutatás',
+ 'Statement Balance' => 'Kimutatás egyenlege',
+ 'Statement sent to' => 'Kimutatás elküldve:',
+ 'Statements sent to printer!' => 'Kimutatás kinyomtatva!',
+ 'Stock' => 'Készletre vesz',
+ 'Stock Assembly' => 'Saját termék bevételezése',
+ 'Stocking Date' => '',
+ 'Stylesheet' => 'Stíluslap',
+ 'Sub-contract GIFI' => '',
+ 'Subject' => 'Tárgy',
+ 'Subtotal' => 'Részösszeg',
+ 'Summary' => '',
+ 'Sunday' => '',
+ 'Supervisor' => '',
+ 'System' => 'Törzsadatok',
+ 'System Defaults' => '',
+ 'Tax' => 'Adó',
+ 'Tax Accounts' => 'Adószámlák',
+ 'Tax Included' => 'Adót tartalmazza',
+ 'Tax Number' => '',
+ 'Tax Number / SSN' => '',
+ 'Tax collected' => 'Fizetendõ ÁFA',
+ 'Tax paid' => 'Levonható ÁFA',
+ 'Taxable' => 'Adó:',
+ 'Template saved!' => 'Sablon elmentve!',
+ 'Templates' => 'Sablonok',
+ 'Terms' => 'Határidõ',
+ 'Text' => '',
+ 'Text Templates' => '',
+ 'The following Datasets are not in use and can be deleted' => 'Az alábbi cégadatbázisok üresek, és törölhetõk',
+ 'The following Datasets need to be updated' => 'Az alábbi cégadatbázisokat frissíteni kell',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'A meglévõ adatbázisok elõzetes ellenõrzése. A program itt még nem töröl és nem hoz létre semmit!',
+ 'Thursday' => '',
+ 'Till' => 'Kassza',
+ 'Time In' => '',
+ 'Time Out' => '',
+ 'Timecard' => '',
+ 'Timecard deleted!' => '',
+ 'Timecard saved!' => '',
+ 'Timecards' => '',
+ 'Times' => '',
+ 'To' => 'Meddig:',
+ 'To Warehouse' => '',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Új felhasználót úgy hozhat létre egy meglévõ cégadatbázishoz, hogy egy létezõ felhasználóra kattint, és a belépési nevet és a jelszót megváltoztatja és elmenti. Az új felhasználó örökli a beállításokat.',
+ 'Top Level' => 'Legfelsõ szint',
+ 'Total' => 'Végösszeg',
+ 'Tracking Items' => '',
+ 'Trade Discount' => '',
+ 'Transaction' => '',
+ 'Transaction Date missing!' => 'Tranzakció dátuma hiányzik!',
+ 'Transaction Dates' => '',
+ 'Transaction deleted!' => 'Tranzakció törölve!',
+ 'Transaction posted!' => 'Tranzakció rögzítve!',
+ 'Transaction reversal enforced for all dates' => 'Bármilyen dátumú tranzakciót csak ellentétes elõjelû tranzakcióval lehet stornózni',
+ 'Transaction reversal enforced up to' => 'E dátumig csak ellentétes elõjelû tranzakcióval lehet stornózni:',
+ 'Transactions' => 'Tranzakciók',
+ 'Transfer' => 'Számlák közötti',
+ 'Transfer Inventory' => '',
+ 'Transfer from' => '',
+ 'Transfer to' => '',
+ 'Translation' => '',
+ 'Translation deleted!' => '',
+ 'Translation not on file!' => '',
+ 'Translations' => '',
+ 'Translations saved!' => '',
+ 'Trial Balance' => 'Fõkönyvi kivonat',
+ 'Tuesday' => '',
+ 'Type of Business' => '',
+ 'Unit' => 'Egység',
+ 'Unit of measure' => 'Mértékegység',
+ 'Unlock System' => 'Unlock System',
+ 'Update' => 'Frissítés',
+ 'Update Dataset' => 'Cégadatbázis frissítése',
+ 'Updated' => 'Frissítve',
+ 'Upgrading to Version' => '',
+ 'Use Templates' => 'Sablon használata',
+ 'User' => 'Felhasználó',
+ 'User deleted!' => 'Felhasználó törölve!',
+ 'User saved!' => 'Felhasználó elmentve!',
+ 'Valid until' => '',
+ 'Vendor' => 'Szállító',
+ 'Vendor History' => '',
+ 'Vendor Invoice' => 'Beszerzési számla',
+ 'Vendor Invoice ' => '',
+ 'Vendor Invoice.' => '',
+ 'Vendor Invoice/AP Transaction Number' => '',
+ 'Vendor Invoices' => '',
+ 'Vendor Number' => '',
+ 'Vendor deleted!' => 'Szállító törölve!',
+ 'Vendor missing!' => 'Szállító hiányzik!',
+ 'Vendor not on file!' => 'Szállító nincs az adatbázisban!',
+ 'Vendor saved!' => 'Szállító elmentve!',
+ 'Vendors' => 'Szállítók',
+ 'Version' => 'Verzió',
+ 'Warehouse' => '',
+ 'Warehouse deleted!' => '',
+ 'Warehouse saved!' => '',
+ 'Warehouses' => '',
+ 'Warning!' => '',
+ 'Wednesday' => '',
+ 'Week' => '',
+ 'Week(s)' => '',
+ 'Weeks' => '',
+ 'Weight' => 'Súly',
+ 'Weight Unit' => 'Súlyegység',
+ 'What type of item is this?' => 'Ez milyen típusú tétel?',
+ 'Work Order' => '',
+ 'Work Orders' => '',
+ 'Work Phone' => '',
+ 'Year' => '',
+ 'Year(s)' => '',
+ 'Yearend' => '',
+ 'Yearend date missing!' => '',
+ 'Yearend posted!' => '',
+ 'Yearend posting failed!' => '',
+ 'Years' => '',
+ 'Yes' => 'Igen',
+ 'You are logged out' => '',
+ 'You are posting an existing transaction!' => '',
+ 'You are printing and posting an existing transaction!' => '',
+ 'You are printing and saving an existing order' => '',
+ 'You are printing and saving an existing quotation' => '',
+ 'You are printing and saving an existing transaction!' => '',
+ 'You are saving an existing order' => '',
+ 'You are saving an existing quotation' => '',
+ 'You are saving an existing transaction!' => '',
+ 'You did not enter a name!' => 'Nem írt be nevet!',
+ 'You must enter a host and port for local and remote connections!' => 'A helyi és távoli kapcsolat eléréséhez írjon be helyet, és portszámot!',
+ 'Zip/Postal Code' => '',
+ 'account cannot be set to any other type of account' => 'gyûjtõszámlát nem lehet más típusú tranzakcióhoz beállítani',
+ 'as at' => 'Fordulónap:',
+ 'days' => 'nap',
+ 'does not exist' => 'nem létezik',
+ 'done' => 'elvégezve',
+ 'ea' => 'db',
+ 'failed' => '',
+ 'for' => '',
+ 'for Period' => 'Idõszak:',
+ 'is already a member!' => 'már tag!',
+ 'localhost' => 'localhost',
+ 'locked!' => '',
+ 'partsgroup' => '',
+ 'posted!' => '',
+ 'sent' => '',
+ 'successfully created!' => 'sikeresen létrehozva!',
+ 'successfully deleted!' => 'sikeresen törölve!',
+ 'time(s)' => '',
+ 'unexpected error!' => '',
+ 'website' => 'honlap',
+};
+
+1;
diff --git a/locale/hu/am b/locale/hu/am
new file mode 100755
index 00000000..d32f355e
--- /dev/null
+++ b/locale/hu/am
@@ -0,0 +1,321 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'AP' => 'Szállítók',
+ 'AR' => 'Vevõk',
+ 'About' => ' ',
+ 'Account' => 'Számla',
+ 'Account Number' => 'Számlaszám',
+ 'Account Number missing!' => 'Számlaszám hiányzik!',
+ 'Account Type' => 'Számlatípus',
+ 'Account Type missing!' => 'Számlatípus hiányzik!',
+ 'Account deleted!' => 'Számla törölve!',
+ 'Account does not exist!' => 'Számla nem létezik!',
+ 'Account saved!' => 'Számla elmentve!',
+ 'Accounting Menu' => 'Menü',
+ 'Accrual' => 'Pénzforgalom',
+ 'Activate Audit trail' => 'Audit követés aktiválás',
+ 'Add Account' => 'Új számla',
+ 'Add Business' => 'Új üzletág',
+ 'Add Department' => 'Új részleg',
+ 'Add GIFI' => 'Új gyûjtõkód',
+ 'Add Language' => 'Új nyelv',
+ 'Add SIC' => 'Új SIC',
+ 'Add Warehouse' => 'Új raktár',
+ 'Address' => 'Cím',
+ 'Amount' => 'Összeg',
+ 'Asset' => 'Eszköz',
+ 'Audit Control' => 'Audit Kontroll',
+ 'Audit trail disabled' => 'Audit követést kikapcsol',
+ 'Audit trail enabled' => 'Audit követést bekapcsol',
+ 'Audit trail removed up to' => 'Audit követés törlés dátuma',
+ 'Backup sent to' => 'Biztonsági másolat elküldve:',
+ 'Bin List' => 'Tároló helyek',
+ 'Books are open' => 'Az ügyféladatbázisban bármit lehet törölni, módosítani',
+ 'Business Number' => 'Adószám',
+ 'Business deleted!' => 'Üzletág törölve!',
+ 'Business saved!' => 'Üzletág elmentve!',
+ 'COGS' => 'ELÁBÉ',
+ 'Cannot delete account!' => 'A számlát nem lehet törölni',
+ 'Cannot delete default account!' => 'Az alapbeállítású számlát nem lehet törölni!',
+ 'Cannot save account!' => 'A számlát nem lehet elmenteni!',
+ 'Cannot save defaults!' => 'Nem tudom elmenteni a beállítást!',
+ 'Cannot save preferences!' => 'A beállításokat nem lehet elmenteni',
+ 'Cannot save taxes!' => 'Nem tudom elmenteni az adókat!',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Gyûjtõszámla nem lehet egyszerre Vevõk, Szállítók vagy Készlet',
+ 'Cannot set multiple options for' => 'Nem tudom beállítani a töbszörös opciót',
+ 'Cash' => 'Pénzmozgások',
+ 'Chart of Accounts' => 'Számlatükör',
+ 'Close Books up to' => 'Könyvelés lezárása eddig az idõpontig:',
+ 'Code' => 'Kód',
+ 'Code missing!' => 'Hiányzó kód',
+ 'Company' => 'Társaság',
+ 'Confirm' => 'Megerõsít',
+ 'Confirm!' => 'Megerõsítés:',
+ 'Continue' => 'Folytatás',
+ 'Contra' => 'Ellen',
+ 'Copy to COA' => 'Másolás a számlatükörbe',
+ 'Cost Center' => 'Költséghely',
+ 'Credit' => 'Követel',
+ 'Credit Invoice' => 'Credit Számla',
+ 'Customer Number' => 'Vevõ Száma',
+ 'Database Host' => 'Adatbázis helye',
+ 'Dataset' => 'Cégadatbázis',
+ 'Date Format' => 'Dátumformátum',
+ 'Day' => 'Nap',
+ 'Days' => 'Napok',
+ 'Debit' => 'Tartozik',
+ 'Debit Invoice' => 'Debit Számla',
+ 'Default Template' => 'Alap Minta',
+ 'Defaults saved!' => 'Alapértelmezések elmentve!',
+ 'Delete' => 'Törlés',
+ 'Delete Account' => 'Számla törlése',
+ 'Deleting a language will also delete the templates for the language' => 'A nyelv törlése törli a nyomtató mintákat is',
+ 'Department deleted!' => 'Osztály törölve!',
+ 'Department saved!' => 'Osztály elmentve!',
+ 'Departments' => 'Osztályok',
+ 'Description' => 'Szöveges leírás',
+ 'Description missing!' => 'Megnevezés hiányzik!',
+ 'Discount' => 'Engedmény',
+ 'Dropdown Limit' => 'Lenyíló ablak limit',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'E-mail cím hiányzik!',
+ 'Edit' => 'Módosítás',
+ 'Edit Account' => 'Számlaszám módosítása',
+ 'Edit Business' => 'Üzletág módosítás',
+ 'Edit Department' => 'Osztály módosítás',
+ 'Edit GIFI' => 'Gyûjtõkód módosítása',
+ 'Edit Language' => 'Nyelv módosítás',
+ 'Edit Preferences for' => 'Felhasználói paraméterek módosítása:',
+ 'Edit SIC' => 'SIC módosítás',
+ 'Edit Template' => 'Sablon módosítása',
+ 'Edit Warehouse' => 'Raktár módosítás',
+ 'Employee Number' => 'Alkalmazott Száma',
+ 'Ends' => 'Vége',
+ 'Enforce transaction reversal for all dates' => 'Minden dátum esetében csak ellentétes elõjelû tranzakcióval lehet stornózni?',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'A saját és külföldi devizákat jelölje 3 betûvel kettõsponttal elválasztva! (pl. HUF:EUR:USD)',
+ 'Equity' => 'Tõke',
+ 'Every' => 'Minden',
+ 'Expense' => 'Költség',
+ 'Expense/Asset' => 'Költség/Eszköz',
+ 'Fax' => 'Fax',
+ 'Foreign Exchange Gain' => 'Árfolyamnyereség',
+ 'Foreign Exchange Loss' => 'Árfolyamveszteség',
+ 'GIFI' => 'Gyûjtõkód',
+ 'GIFI deleted!' => 'Gyûjtõkód törölve!',
+ 'GIFI missing!' => 'Gyûjtõkód hiányzik!',
+ 'GIFI saved!' => 'Gyûjtõkód elmentve!',
+ 'GL' => 'Vegyes Könyvelés',
+ 'GL Reference Number' => 'VegyKönyv RefSzám',
+ 'GL Transaction' => 'Fõkönyvi tranzakció!',
+ 'Heading' => 'Fejléc',
+ 'ID' => 'Azonosító',
+ 'Include in drop-down menus' => 'Mely tranzakció(k)-nál lehessen kiválasztani?:',
+ 'Income' => 'Árbevétel',
+ 'Inventory' => 'Készlet',
+ 'Invoice' => 'Számla',
+ 'Is this a summary account to record' => 'Gyûjtõszámlaként szerepeljen ezeknél a tranzakcióknál:',
+ 'Job/Project Number' => 'Job/Projekt Szám',
+ 'Language' => 'Nyelv',
+ 'Language deleted!' => 'Nyelv törölve!',
+ 'Language saved!' => 'Nyelv elmentve!',
+ 'Languages' => 'Nyelv',
+ 'Last Numbers & Default Accounts' => 'Legutolsó számok & Alapszámlák',
+ 'Liability' => 'Kötelezettség',
+ 'Licensed to' => 'Cég:',
+ 'Link' => 'Kapcsolat',
+ 'Menu Width' => 'Menü szélesség',
+ 'Method' => 'Módszer',
+ 'Month' => 'Hónap',
+ 'Months' => 'Hónapok',
+ 'Name' => 'Név',
+ 'Next' => 'Következõ',
+ 'Next Number' => 'Következõ szám',
+ 'No' => 'Nem',
+ 'No email address for' => 'Nincs e-mail címe:',
+ 'Non-tracking Items' => 'Nem raktározott tétel',
+ 'Number' => 'Szám',
+ 'Number Format' => 'Számformátum',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Szállítólevél',
+ 'Part Number' => 'Cikkszám',
+ 'Password' => 'Jelszó',
+ 'Password does not match!' => 'Jelszó nem egyezik!',
+ 'Payables' => 'Szállítók',
+ 'Payment' => 'Kifizetés',
+ 'Phone' => 'Telefon',
+ 'Pick List' => 'Kiszedési Lista',
+ 'Posting' => 'Rõgzítve',
+ 'Postscript' => 'Postscript',
+ 'Preferences saved!' => 'Beállítások elmentve!',
+ 'Print' => 'Nyomtatás',
+ 'Printer' => 'Nyomtató',
+ 'Printing' => 'Nyomtatva',
+ 'Process Transactions' => 'Tranzakció elvégzése',
+ 'Profit Center' => 'Profit Center',
+ 'Purchase Order' => 'Beszerzési rendelés',
+ 'Purchase Order Number' => 'BeszRend Szám',
+ 'Purchase Orders' => 'Beszerzési rendelések',
+ 'RFQ Number' => 'Ajánlat Kérés Szám',
+ 'Rate' => 'Árfolyam',
+ 'Receivables' => 'Vevõk',
+ 'Recurring Transactions' => 'Ismétlõdõ Tranzakciók',
+ 'Reference' => 'Hivatkozás',
+ 'Remove Audit trail up to' => 'Töröld az audit követést eddig:',
+ 'Retained Earnings' => 'Adózás elõtti eredmény',
+ 'SIC deleted!' => 'Osztályozó Kód törölve!',
+ 'SIC saved!' => 'Osztályozó Kód elmentve!',
+ 'Sales Invoice' => 'Vevõszámla',
+ 'Sales Invoice/AR Transaction Number' => 'Értékesítési Számla/Tranz. Szám',
+ 'Sales Order' => 'Vevõrendelés',
+ 'Sales Order Number' => 'Értékesítési Rendelés Szám',
+ 'Sales Orders' => 'Vevõrendelések',
+ 'Sales Quotation Number' => 'Ajánlat Szám',
+ 'Save' => 'Mentés',
+ 'Save as new' => 'Mentés újként',
+ 'Saving' => 'Mentés',
+ 'Sending' => 'Elküldés',
+ 'Session Timeout' => 'Lejárt az idõ',
+ 'Signature' => 'Aláírás',
+ 'Standard Industrial Codes' => 'Osztályozó Kód',
+ 'Stylesheet' => 'Stíluslap',
+ 'System Defaults' => 'Rendszer alapértelmezés',
+ 'Tax' => 'Adó',
+ 'Taxes' => 'Adók',
+ 'Taxes saved!' => 'Adók elmentve!',
+ 'Template saved!' => 'Sablon elmentve!',
+ 'Times' => '-szor',
+ 'Tracking Items' => 'Raktározott tétel',
+ 'Transaction' => 'Tranzakció',
+ 'Transaction reversal enforced for all dates' => 'Bármilyen dátumú tranzakciót csak ellentétes elõjelû tranzakcióval lehet stornózni',
+ 'Transaction reversal enforced up to' => 'E dátumig csak ellentétes elõjelû tranzakcióval lehet stornózni:',
+ 'Type of Business' => 'Üzletág Típus',
+ 'Update' => 'Frissítés',
+ 'User' => 'Felhasználó',
+ 'Valid To' => 'Érvényes',
+ 'Vendor Invoice' => 'Beszerzési számla',
+ 'Vendor Invoice/AP Transaction Number' => 'Szállító Számla/Tranz. Szám',
+ 'Vendor Number' => 'Szállítószám',
+ 'Version' => 'Verzió',
+ 'Warehouse deleted!' => 'Raktár törölve!',
+ 'Warehouse saved!' => 'Raktár elmentve!',
+ 'Warehouses' => 'Raktárak',
+ 'Week' => 'Hét',
+ 'Weeks' => 'Hetek',
+ 'Weight Unit' => 'Súlyegység',
+ 'Work Order' => 'Munka rendelés',
+ 'Year' => 'Év',
+ 'Yearend' => 'Évzárás',
+ 'Yearend date missing!' => 'Hiányzó Évzáró dátum!',
+ 'Yearend posted!' => 'Évzárás elmentve!',
+ 'Yearend posting failed!' => 'Sikertelen Évzárás mentés!',
+ 'Years' => 'Évek',
+ 'Yes' => 'Igen',
+ 'account cannot be set to any other type of account' => 'gyûjtõszámlát nem lehet más típusú tranzakcióhoz beállítani',
+ 'done' => 'elvégezve',
+ 'failed' => 'nem sikerült',
+ 'localhost' => 'localhost',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'Új_számla' => 'add_account',
+ 'Új_üzletág' => 'add_business',
+ 'Új_részleg' => 'add_department',
+ 'Új_nyelv' => 'add_language',
+ 'Új_sic' => 'add_sic',
+ 'Új_raktár' => 'add_warehouse',
+ 'folytatás' => 'continue',
+ 'másolás_a_számlatükörbe' => 'copy_to_coa',
+ 'törlés' => 'delete',
+ 'módosítás' => 'edit',
+ 'számlaszám_módosítása' => 'edit_account',
+ 'tranzakció_elvégzése' => 'process_transactions',
+ 'mentés' => 'save',
+ 'mentés_újként' => 'save_as_new',
+ 'frissítés' => 'update',
+};
+
+1;
+
diff --git a/locale/hu/ap b/locale/hu/ap
new file mode 100755
index 00000000..81f72734
--- /dev/null
+++ b/locale/hu/ap
@@ -0,0 +1,242 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'AP Outstanding' => 'Kifizetetlen szállítószámlák',
+ 'AP Transaction' => 'Szállító tranzakció',
+ 'AP Transactions' => 'Szállító tranzakciók',
+ 'AR Outstanding' => 'Kifizetetlen vevõszámlák',
+ 'AR Transaction' => 'Vevõ tranzakció',
+ 'AR Transactions' => 'Vevõ tranzakciók',
+ 'Account' => 'Számla',
+ 'Accounting Menu' => 'Menü',
+ 'Add AP Transaction' => 'Új Szállító Tranzakció',
+ 'Add AR Transaction' => 'Új Vevõ Tranzakció',
+ 'Address' => 'Cím',
+ 'Amount' => 'Összeg',
+ 'Amount Due' => 'Esedékes összeg',
+ 'Apr' => 'Ápr.',
+ 'April' => 'Április',
+ 'Are you sure you want to delete Transaction' => 'Biztos, hogy törölni akarja? Tranzakció:',
+ 'Aug' => 'Aug.',
+ 'August' => 'Augusztus',
+ 'Bcc' => 'Titkos másolat',
+ 'Cannot delete transaction!' => 'A tranzakciót nem lehet törölni!',
+ 'Cannot post payment for a closed period!' => 'A lezárt idõszakban nem lehet fizetést rögzíteni!',
+ 'Cannot post transaction for a closed period!' => 'A lezárt idõszakban nem lehet tranzakciót rögzíteni!!',
+ 'Cannot post transaction!' => 'A tranzakciót nem lehet rögzíteni!',
+ 'Cc' => 'Másolat',
+ 'Check' => 'Csekk',
+ 'Closed' => 'Lezárt',
+ 'Confirm!' => 'Megerõsítés:',
+ 'Continue' => 'Folytatás',
+ 'Credit' => 'Követel',
+ 'Credit Limit' => 'Hitelkeret',
+ 'Curr' => 'Dev',
+ 'Currency' => 'Deviza',
+ 'Current' => '0-30',
+ 'Customer' => 'Vevõ',
+ 'Customer missing!' => 'Vevõ hiányzik!',
+ 'Customer not on file!' => 'A vevõ hiányzik az adatbázisból!',
+ 'Date' => 'Dátum',
+ 'Date Paid' => 'Fizetés napja',
+ 'Day(s)' => 'Nap(ok)',
+ 'Debit' => 'Tartozik',
+ 'Dec' => 'Dec.',
+ 'December' => 'December',
+ 'Delete' => 'Törlés',
+ 'Delete Schedule' => 'Ütemezés Törlése',
+ 'Department' => 'Osztály',
+ 'Description' => 'Szöveges leírás',
+ 'Detail' => 'Részletek',
+ 'Due Date' => 'Esedékesség',
+ 'Due Date missing!' => 'Esedékesség hiányzik!',
+ 'E-mail' => 'E-mail',
+ 'E-mail message' => 'E-mail üzenet',
+ 'Edit AP Transaction' => 'Szállító Tranzakció Módosítás',
+ 'Edit AR Transaction' => 'Módosít Szállító Tranzakció',
+ 'Employee' => 'Alkalmazott',
+ 'Every' => 'Minden',
+ 'Exch' => 'Árf',
+ 'Exchange Rate' => 'Átváltási árfolyam',
+ 'Exchange rate for payment missing!' => 'A fizetett összeg átváltási árfolyama hiányzik!',
+ 'Exchange rate missing!' => 'Átváltási árfolyam hiányzik!',
+ 'Feb' => 'Feb.',
+ 'February' => 'Február',
+ 'For' => 'Ismétlés',
+ 'From' => 'Mikortól:',
+ 'ID' => 'Azonosító',
+ 'Include Payment' => 'Pénzmozgással együtt',
+ 'Include in Report' => 'Oszlopok:',
+ 'Invoice' => 'Számla',
+ 'Invoice Date' => 'Teljesítés dátuma',
+ 'Invoice Date missing!' => 'Teljesítés dátuma hiányzik!',
+ 'Invoice Number' => 'Számlaszám',
+ 'Jan' => 'Jan.',
+ 'January' => 'Január',
+ 'Jul' => 'Júl.',
+ 'July' => 'Július',
+ 'Jun' => 'Jún.',
+ 'June' => 'Június',
+ 'Manager' => 'Manager',
+ 'Mar' => 'Márc.',
+ 'March' => 'Március',
+ 'May' => 'Máj.',
+ 'May ' => 'Május',
+ 'Memo' => 'Memo',
+ 'Message' => 'Üzenet',
+ 'Month' => 'Hónap',
+ 'Month(s)' => 'Hónap',
+ 'Next Date' => 'Következõ Dátum',
+ 'No.' => 'Sz.',
+ 'Notes' => 'Megjegyzés',
+ 'Nothing to print!' => 'Nincs mit nyomtatni!',
+ 'Nov' => 'Nov.',
+ 'November' => 'November',
+ 'Number' => 'Szám',
+ 'Oct' => 'Okt.',
+ 'October' => 'Október',
+ 'Open' => 'Nyitott',
+ 'Order' => 'Rendelés',
+ 'Order Number' => 'Rendelés száma',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'BeRendSzám',
+ 'Paid' => 'Fizetve',
+ 'Payment date missing!' => 'Pénzmozgás dátuma hiányzik!',
+ 'Payments' => 'Kifizetések',
+ 'Period' => 'Idõszak',
+ 'Post' => 'Rögzítés',
+ 'Post as new' => 'Rögzítés új tranzakcióként',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Nyomtatás',
+ 'Print and Post' => 'Nyomtat és Rögzít',
+ 'Print and Post as new' => 'Újat Nyomtat és Rögzít',
+ 'Printed' => 'Kinyomtatva',
+ 'Project' => 'Munkaszám',
+ 'Project not on file!' => 'Projekt nincs meg',
+ 'Quarter' => 'Negyedév',
+ 'Receipt' => 'Befizetés',
+ 'Recurring Transaction' => 'Ismétlõdõ Tranzakció',
+ 'Reference' => 'Hivatkozás',
+ 'Remaining' => 'Maradék',
+ 'Repeat' => 'Ismétlés',
+ 'Sales Invoice.' => 'Vevõ Számla',
+ 'Salesperson' => 'Ügynök',
+ 'Save Schedule' => 'Ütemezés mentése',
+ 'Schedule' => 'Ütemezés',
+ 'Scheduled' => 'Ütemezve',
+ 'Screen' => 'Képernyõre',
+ 'Select a Printer!' => 'Válasszon Nyomtatót',
+ 'Select from one of the names below' => 'Válasszon ki egyet az alábbi nevek közül',
+ 'Select from one of the projects below' => 'Válasszon a projektek közül',
+ 'Select payment' => 'Válasszon fizetési módot',
+ 'Select postscript or PDF!' => 'Válassza ki a postscript vagy a PDF formátumot!',
+ 'Sep' => 'Szept.',
+ 'September' => 'Szeptember',
+ 'Ship to' => 'Szállítási cím',
+ 'Ship via' => 'Fizetési mód',
+ 'Shipping Point' => 'Szállítási Hely',
+ 'Source' => 'Bizonylatszám',
+ 'Startdate' => 'Kezdõ dátum',
+ 'Subject' => 'Tárgy',
+ 'Subtotal' => 'Részösszeg',
+ 'Summary' => 'Összegzés',
+ 'Tax' => 'Adó',
+ 'Tax Included' => 'Adót tartalmazza',
+ 'Till' => 'Kassza',
+ 'To' => 'Meddig:',
+ 'Total' => 'Végösszeg',
+ 'Transaction' => 'Tranzakció',
+ 'Transaction deleted!' => 'Tranzakció törölve!',
+ 'Transaction posted!' => 'Tranzakció rögzítve!',
+ 'Update' => 'Frissítés',
+ 'Vendor' => 'Szállító',
+ 'Vendor Invoice.' => 'Vevõ Számla',
+ 'Vendor missing!' => 'Szállító hiányzik!',
+ 'Vendor not on file!' => 'Szállító nincs az adatbázisban!',
+ 'Warning!' => 'Figyelmeztetés',
+ 'Week(s)' => 'Hét',
+ 'Year' => 'Év',
+ 'Year(s)' => 'Év',
+ 'Yes' => 'Igen',
+ 'You are posting an existing transaction!' => 'Ön egy létezõ tranzakciót módosít!',
+ 'You are printing and posting an existing transaction!' => 'Ön egy létezõ tranzakciót rögzít és nyomtat!',
+ 'You are printing and saving an existing order' => 'Ön egy létezõ rendelést rögzít és nyomtat!',
+ 'You are printing and saving an existing quotation' => 'Ön egy létezõ ajánlatot rögzít és nyomtat!',
+ 'You are saving an existing order' => 'Ön egy létezõ rendelést módosít!',
+ 'You are saving an existing quotation' => 'Ön egy létezõ ajánlatot módosít',
+ 'for' => 'for',
+ 'sent' => 'elküldve',
+ 'time(s)' => '-szor',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'szállító_tranzakció' => 'ap_transaction',
+ 'vevõ_tranzakció' => 'ar_transaction',
+ 'folytatás' => 'continue',
+ 'törlés' => 'delete',
+ 'Ütemezés_törlése' => 'delete_schedule',
+ 'rögzítés' => 'post',
+ 'rögzítés_új_tranzakcióként' => 'post_as_new',
+ 'nyomtatás' => 'print',
+ 'nyomtat_és_rögzít' => 'print_and_post',
+ 'Újat_nyomtat_és_rögzít' => 'print_and_post_as_new',
+ 'vevõ_számla' => 'sales_invoice_',
+ 'Ütemezés_mentése' => 'save_schedule',
+ 'Ütemezés' => 'schedule',
+ 'szállítási_cím' => 'ship_to',
+ 'frissítés' => 'update',
+ 'vevõ_számla' => 'vendor_invoice_',
+ 'igen' => 'yes',
+};
+
+1;
+
diff --git a/locale/hu/ar b/locale/hu/ar
new file mode 100755
index 00000000..7c670063
--- /dev/null
+++ b/locale/hu/ar
@@ -0,0 +1,242 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'AP Outstanding' => 'Kifizetetlen szállítószámlák',
+ 'AP Transaction' => 'Szállító tranzakció',
+ 'AP Transactions' => 'Szállító tranzakciók',
+ 'AR Outstanding' => 'Kifizetetlen vevõszámlák',
+ 'AR Transaction' => 'Vevõ tranzakció',
+ 'AR Transactions' => 'Vevõ tranzakciók',
+ 'Account' => 'Számla',
+ 'Accounting Menu' => 'Menü',
+ 'Add AP Transaction' => 'Új Szállító Tranzakció',
+ 'Add AR Transaction' => 'Új Vevõ Tranzakció',
+ 'Address' => 'Cím',
+ 'Amount' => 'Összeg',
+ 'Amount Due' => 'Esedékes összeg',
+ 'Apr' => 'Ápr.',
+ 'April' => 'Április',
+ 'Are you sure you want to delete Transaction' => 'Biztos, hogy törölni akarja? Tranzakció:',
+ 'Aug' => 'Aug.',
+ 'August' => 'Augusztus',
+ 'Bcc' => 'Titkos másolat',
+ 'Cannot delete transaction!' => 'A tranzakciót nem lehet törölni!',
+ 'Cannot post payment for a closed period!' => 'A lezárt idõszakban nem lehet fizetést rögzíteni!',
+ 'Cannot post transaction for a closed period!' => 'A lezárt idõszakban nem lehet tranzakciót rögzíteni!!',
+ 'Cannot post transaction!' => 'A tranzakciót nem lehet rögzíteni!',
+ 'Cc' => 'Másolat',
+ 'Check' => 'Csekk',
+ 'Closed' => 'Lezárt',
+ 'Confirm!' => 'Megerõsítés:',
+ 'Continue' => 'Folytatás',
+ 'Credit' => 'Követel',
+ 'Credit Limit' => 'Hitelkeret',
+ 'Curr' => 'Dev',
+ 'Currency' => 'Deviza',
+ 'Current' => '0-30',
+ 'Customer' => 'Vevõ',
+ 'Customer missing!' => 'Vevõ hiányzik!',
+ 'Customer not on file!' => 'A vevõ hiányzik az adatbázisból!',
+ 'Date' => 'Dátum',
+ 'Date Paid' => 'Fizetés napja',
+ 'Day(s)' => 'Nap(ok)',
+ 'Debit' => 'Tartozik',
+ 'Dec' => 'Dec.',
+ 'December' => 'December',
+ 'Delete' => 'Törlés',
+ 'Delete Schedule' => 'Ütemezés Törlése',
+ 'Department' => 'Osztály',
+ 'Description' => 'Szöveges leírás',
+ 'Detail' => 'Részletek',
+ 'Due Date' => 'Esedékesség',
+ 'Due Date missing!' => 'Esedékesség hiányzik!',
+ 'E-mail' => 'E-mail',
+ 'E-mail message' => 'E-mail üzenet',
+ 'Edit AP Transaction' => 'Szállító Tranzakció Módosítás',
+ 'Edit AR Transaction' => 'Vevõ Tranzakció Módosítás',
+ 'Employee' => 'Alkalmazott',
+ 'Every' => 'Minden',
+ 'Exch' => 'Árf',
+ 'Exchange Rate' => 'Átváltási árfolyam',
+ 'Exchange rate for payment missing!' => 'A fizetett összeg átváltási árfolyama hiányzik!',
+ 'Exchange rate missing!' => 'Átváltási árfolyam hiányzik!',
+ 'Feb' => 'Feb.',
+ 'February' => 'Február',
+ 'For' => 'Ismétlés',
+ 'From' => 'Mikortól:',
+ 'ID' => 'Azonosító',
+ 'Include Payment' => 'Pénzmozgással együtt',
+ 'Include in Report' => 'Oszlopok:',
+ 'Invoice' => 'Számla',
+ 'Invoice Date' => 'Teljesítés dátuma',
+ 'Invoice Date missing!' => 'Teljesítés dátuma hiányzik!',
+ 'Invoice Number' => 'Számlaszám',
+ 'Jan' => 'Jan.',
+ 'January' => 'Január',
+ 'Jul' => 'Júl.',
+ 'July' => 'Július',
+ 'Jun' => 'Jún.',
+ 'June' => 'Június',
+ 'Manager' => 'Manager',
+ 'Mar' => 'Márc.',
+ 'March' => 'Március',
+ 'May' => 'Máj.',
+ 'May ' => 'Május',
+ 'Memo' => 'Memo',
+ 'Message' => 'Üzenet',
+ 'Month' => 'Hónap',
+ 'Month(s)' => 'Hónap',
+ 'Next Date' => 'Következõ Dátum',
+ 'No.' => 'Sz.',
+ 'Notes' => 'Megjegyzés',
+ 'Nothing to print!' => 'Nincs mit nyomtatni!',
+ 'Nov' => 'Nov.',
+ 'November' => 'November',
+ 'Number' => 'Szám',
+ 'Oct' => 'Okt.',
+ 'October' => 'Október',
+ 'Open' => 'Nyitott',
+ 'Order' => 'Rendelés',
+ 'Order Number' => 'Rendelés száma',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'BeRendSzám',
+ 'Paid' => 'Fizetve',
+ 'Payment date missing!' => 'Pénzmozgás dátuma hiányzik!',
+ 'Payments' => 'Kifizetések',
+ 'Period' => 'Idõszak',
+ 'Post' => 'Rögzítés',
+ 'Post as new' => 'Rögzítés új tranzakcióként',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Nyomtatás',
+ 'Print and Post' => 'Nyomtat és Rögzít',
+ 'Print and Post as new' => 'Újat Nyomtat és Rögzít',
+ 'Printed' => 'Kinyomtatva',
+ 'Project' => 'Munkaszám',
+ 'Project not on file!' => 'Projekt nincs meg',
+ 'Quarter' => 'Negyedév',
+ 'Receipt' => 'Befizetés',
+ 'Recurring Transaction' => 'Ismétlõdõ Tranzakció',
+ 'Reference' => 'Hivatkozás',
+ 'Remaining' => 'Maradék',
+ 'Repeat' => 'Ismétlés',
+ 'Sales Invoice.' => 'Vevõ Számla',
+ 'Salesperson' => 'Ügynök',
+ 'Save Schedule' => 'Ütemezés mentése',
+ 'Schedule' => 'Ütemezés',
+ 'Scheduled' => 'Ütemezve',
+ 'Screen' => 'Képernyõre',
+ 'Select a Printer!' => 'Válasszon Nyomtatót',
+ 'Select from one of the names below' => 'Válasszon ki egyet az alábbi nevek közül',
+ 'Select from one of the projects below' => 'Válasszon a projektek közül',
+ 'Select payment' => 'Válasszon fizetési módot',
+ 'Select postscript or PDF!' => 'Válassza ki a postscript vagy a PDF formátumot!',
+ 'Sep' => 'Szept.',
+ 'September' => 'Szeptember',
+ 'Ship to' => 'Szállítási cím',
+ 'Ship via' => 'Fizetési mód',
+ 'Shipping Point' => 'Szállítási Hely',
+ 'Source' => 'Bizonylatszám',
+ 'Startdate' => 'Kezdõ dátum',
+ 'Subject' => 'Tárgy',
+ 'Subtotal' => 'Részösszeg',
+ 'Summary' => 'Összegzés',
+ 'Tax' => 'Adó',
+ 'Tax Included' => 'Adót tartalmazza',
+ 'Till' => 'Kassza',
+ 'To' => 'Meddig:',
+ 'Total' => 'Végösszeg',
+ 'Transaction' => 'Tranzakció',
+ 'Transaction deleted!' => 'Tranzakció törölve!',
+ 'Transaction posted!' => 'Tranzakció rögzítve!',
+ 'Update' => 'Frissítés',
+ 'Vendor' => 'Szállító',
+ 'Vendor Invoice.' => 'Vevõ Számla',
+ 'Vendor missing!' => 'Szállító hiányzik!',
+ 'Vendor not on file!' => 'Szállító nincs az adatbázisban!',
+ 'Warning!' => 'Figyelmeztetés',
+ 'Week(s)' => 'Hét',
+ 'Year' => 'Év',
+ 'Year(s)' => 'Év',
+ 'Yes' => 'Igen',
+ 'You are posting an existing transaction!' => 'Ön egy létezõ tranzakciót módosít!',
+ 'You are printing and posting an existing transaction!' => 'Ön egy létezõ tranzakciót rögzít és nyomtat!',
+ 'You are printing and saving an existing order' => 'Ön egy létezõ rendelést rögzít és nyomtat!',
+ 'You are printing and saving an existing quotation' => 'Ön egy létezõ ajánlatot rögzít és nyomtat!',
+ 'You are saving an existing order' => 'Ön egy létezõ rendelést módosít!',
+ 'You are saving an existing quotation' => 'Ön egy létezõ ajánlatot módosít',
+ 'for' => 'for',
+ 'sent' => 'elküldve',
+ 'time(s)' => '-szor',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'szállító_tranzakció' => 'ap_transaction',
+ 'vevõ_tranzakció' => 'ar_transaction',
+ 'folytatás' => 'continue',
+ 'törlés' => 'delete',
+ 'Ütemezés_törlése' => 'delete_schedule',
+ 'rögzítés' => 'post',
+ 'rögzítés_új_tranzakcióként' => 'post_as_new',
+ 'nyomtatás' => 'print',
+ 'nyomtat_és_rögzít' => 'print_and_post',
+ 'Újat_nyomtat_és_rögzít' => 'print_and_post_as_new',
+ 'vevõ_számla' => 'sales_invoice_',
+ 'Ütemezés_mentése' => 'save_schedule',
+ 'Ütemezés' => 'schedule',
+ 'szállítási_cím' => 'ship_to',
+ 'frissítés' => 'update',
+ 'vevõ_számla' => 'vendor_invoice_',
+ 'igen' => 'yes',
+};
+
+1;
+
diff --git a/locale/hu/arap b/locale/hu/arap
new file mode 100755
index 00000000..de44042f
--- /dev/null
+++ b/locale/hu/arap
@@ -0,0 +1,76 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Address' => 'Cím',
+ 'Bcc' => 'Titkos másolat',
+ 'Cc' => 'Másolat',
+ 'Continue' => 'Folytatás',
+ 'Customer not on file!' => 'A vevõ hiányzik az adatbázisból!',
+ 'Date' => 'Dátum',
+ 'Day(s)' => 'Nap(ok)',
+ 'Delete Schedule' => 'Ütemezés Törlése',
+ 'Description' => 'Szöveges leírás',
+ 'E-mail' => 'E-mail',
+ 'E-mail message' => 'E-mail üzenet',
+ 'Every' => 'Minden',
+ 'For' => 'Ismétlés',
+ 'Include Payment' => 'Pénzmozgással együtt',
+ 'Message' => 'Üzenet',
+ 'Month(s)' => 'Hónap',
+ 'Next Date' => 'Következõ Dátum',
+ 'Number' => 'Szám',
+ 'Print' => 'Nyomtatás',
+ 'Project not on file!' => 'Projekt nincs meg',
+ 'Recurring Transaction' => 'Ismétlõdõ Tranzakció',
+ 'Reference' => 'Hivatkozás',
+ 'Repeat' => 'Ismétlés',
+ 'Save Schedule' => 'Ütemezés mentése',
+ 'Select from one of the names below' => 'Válasszon ki egyet az alábbi nevek közül',
+ 'Select from one of the projects below' => 'Válasszon a projektek közül',
+ 'Startdate' => 'Kezdõ dátum',
+ 'Subject' => 'Tárgy',
+ 'To' => 'Meddig:',
+ 'Vendor not on file!' => 'Szállító nincs az adatbázisban!',
+ 'Warning!' => 'Figyelmeztetés',
+ 'Week(s)' => 'Hét',
+ 'Year(s)' => 'Év',
+ 'You are posting an existing transaction!' => 'Ön egy létezõ tranzakciót módosít!',
+ 'You are printing and posting an existing transaction!' => 'Ön egy létezõ tranzakciót rögzít és nyomtat!',
+ 'You are printing and saving an existing order' => 'Ön egy létezõ rendelést rögzít és nyomtat!',
+ 'You are printing and saving an existing quotation' => 'Ön egy létezõ ajánlatot rögzít és nyomtat!',
+ 'You are saving an existing order' => 'Ön egy létezõ rendelést módosít!',
+ 'You are saving an existing quotation' => 'Ön egy létezõ ajánlatot módosít',
+ 'for' => 'for',
+ 'sent' => 'elküldve',
+ 'time(s)' => '-szor',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'folytatás' => 'continue',
+ 'Ütemezés_törlése' => 'delete_schedule',
+ 'Ütemezés_mentése' => 'save_schedule',
+};
+
+1;
+
diff --git a/locale/hu/arapprn b/locale/hu/arapprn
new file mode 100755
index 00000000..7189cfef
--- /dev/null
+++ b/locale/hu/arapprn
@@ -0,0 +1,36 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Account' => 'Számla',
+ 'Amount' => 'Összeg',
+ 'Continue' => 'Folytatás',
+ 'Date' => 'Dátum',
+ 'Memo' => 'Memo',
+ 'Nothing to print!' => 'Nincs mit nyomtatni!',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'Postscript',
+ 'Printed' => 'Kinyomtatva',
+ 'Scheduled' => 'Ütemezve',
+ 'Screen' => 'Képernyõre',
+ 'Select a Printer!' => 'Válasszon Nyomtatót',
+ 'Select payment' => 'Válasszon fizetési módot',
+ 'Select postscript or PDF!' => 'Válassza ki a postscript vagy a PDF formátumot!',
+ 'Source' => 'Bizonylatszám',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'folytatás' => 'continue',
+};
+
+1;
+
diff --git a/locale/hu/bp b/locale/hu/bp
new file mode 100755
index 00000000..f4f0c75a
--- /dev/null
+++ b/locale/hu/bp
@@ -0,0 +1,71 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Account' => 'Számla',
+ 'Accounting Menu' => 'Menü',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Biztos, hogy ki akarja törölni a megjelölt sorokat?',
+ 'Bin Lists' => 'Polc Lista',
+ 'Cannot remove files!' => 'Nem lehet a fájlt kitörölni!',
+ 'Confirm!' => 'Megerõsítés:',
+ 'Continue' => 'Folytatás',
+ 'Current' => '0-30',
+ 'Customer' => 'Vevõ',
+ 'Date' => 'Dátum',
+ 'Employee' => 'Alkalmazott',
+ 'From' => 'Mikortól:',
+ 'ID' => 'Azonosító',
+ 'Invoice' => 'Számla',
+ 'Invoice Number' => 'Számlaszám',
+ 'Marked entries printed!' => 'Megjelölt sorok kinyomtatva!',
+ 'Month' => 'Hónap',
+ 'Order' => 'Rendelés',
+ 'Order Number' => 'Rendelés száma',
+ 'Packing Lists' => 'Csomagolás lista',
+ 'Period' => 'Idõszak',
+ 'Pick Lists' => 'Kiszedés lista',
+ 'Print' => 'Nyomtatás',
+ 'Printing' => 'Nyomtatás',
+ 'Purchase Orders' => 'Beszerzési rendelések',
+ 'Quarter' => 'Negyedév',
+ 'Quotation' => 'Ajánlat',
+ 'Quotation Number' => 'Ajánlat szám',
+ 'Quotations' => 'Ajánlatok',
+ 'RFQs' => 'Ajánlat kérések',
+ 'Remove' => 'Kitörlés',
+ 'Removed spoolfiles!' => 'A sorban álló fájlok kitörölve!',
+ 'Removing marked entries from queue ...' => 'Kivesszük a megjelölt sorokat',
+ 'Sales Invoices' => 'Vevõ Számla',
+ 'Sales Orders' => 'Vevõrendelések',
+ 'Select all' => 'Mindent kijelöl',
+ 'Spoolfile' => 'Sorban álló fájlok',
+ 'Time Cards' => 'Idõ Kártyák',
+ 'To' => 'Meddig:',
+ 'Vendor' => 'Szállító',
+ 'Work Orders' => 'Gyártási Rendelés',
+ 'Year' => 'Év',
+ 'Yes' => 'Igen',
+ 'done' => 'elvégezve',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'folytatás' => 'continue',
+ 'nyomtatás' => 'print',
+ 'kitörlés' => 'remove',
+ 'mindent_kijelöl' => 'select_all',
+ 'igen' => 'yes',
+};
+
+1;
+
diff --git a/locale/hu/ca b/locale/hu/ca
new file mode 100755
index 00000000..6f5cc458
--- /dev/null
+++ b/locale/hu/ca
@@ -0,0 +1,62 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'AR/AP' => 'VEVÕK/SZÁLLÍTÓK',
+ 'Account' => 'Számla',
+ 'Apr' => 'Ápr.',
+ 'April' => 'Április',
+ 'Aug' => 'Aug.',
+ 'August' => 'Augusztus',
+ 'Balance' => 'Egyenleg',
+ 'Chart of Accounts' => 'Számlatükör',
+ 'Credit' => 'Követel',
+ 'Current' => '0-30',
+ 'Date' => 'Dátum',
+ 'Debit' => 'Tartozik',
+ 'Dec' => 'Dec.',
+ 'December' => 'December',
+ 'Department' => 'Osztály',
+ 'Description' => 'Szöveges leírás',
+ 'Feb' => 'Feb.',
+ 'February' => 'Február',
+ 'From' => 'Mikortól:',
+ 'GIFI' => 'Gyûjtõkód',
+ 'Include in Report' => 'Oszlopok:',
+ 'Jan' => 'Jan.',
+ 'January' => 'Január',
+ 'Jul' => 'Júl.',
+ 'July' => 'Július',
+ 'Jun' => 'Jún.',
+ 'June' => 'Június',
+ 'List Transactions' => 'Tranzakciók listázása',
+ 'Mar' => 'Márc.',
+ 'March' => 'Március',
+ 'May' => 'Máj.',
+ 'May ' => 'Május',
+ 'Month' => 'Hónap',
+ 'Nov' => 'Nov.',
+ 'November' => 'November',
+ 'Oct' => 'Okt.',
+ 'October' => 'Október',
+ 'Period' => 'Idõszak',
+ 'Project Number' => 'Munkaszám',
+ 'Quarter' => 'Negyedév',
+ 'R' => 'E',
+ 'Reference' => 'Hivatkozás',
+ 'Sep' => 'Szept.',
+ 'September' => 'Szeptember',
+ 'Subtotal' => 'Részösszeg',
+ 'To' => 'Meddig:',
+ 'Year' => 'Év',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'tranzakciók_listázása' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/hu/cp b/locale/hu/cp
new file mode 100755
index 00000000..6a69458b
--- /dev/null
+++ b/locale/hu/cp
@@ -0,0 +1,151 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'AP' => 'Szállítók',
+ 'AR' => 'Vevõk',
+ 'Account' => 'Számla',
+ 'Accounting Menu' => 'Menü',
+ 'Address' => 'Cím',
+ 'All' => 'Összes',
+ 'Amount' => 'Összeg',
+ 'Amount Due' => 'Esedékes összeg',
+ 'Bcc' => 'Titkos másolat',
+ 'Cannot post Payment!' => 'A kifizetést nem tudom rögzíteni!',
+ 'Cannot post Receipt!' => 'A befizetész nem tudom rögzíteni!',
+ 'Cannot post payment for a closed period!' => 'A lezárt idõszakban nem lehet fizetést rögzíteni!',
+ 'Cc' => 'Másolat',
+ 'Continue' => 'Folytatás',
+ 'Currency' => 'Deviza',
+ 'Customer' => 'Vevõ',
+ 'Customer not on file!' => 'A vevõ hiányzik az adatbázisból!',
+ 'Date' => 'Dátum',
+ 'Date missing!' => 'Dátum hiányzik',
+ 'Day(s)' => 'Nap(ok)',
+ 'Delete Schedule' => 'Ütemezés Törlése',
+ 'Department' => 'Osztály',
+ 'Deposit' => 'Jóváírás',
+ 'Description' => 'Szöveges leírás',
+ 'Due Date' => 'Esedékesség',
+ 'E-mail' => 'E-mail',
+ 'E-mail message' => 'E-mail üzenet',
+ 'Every' => 'Minden',
+ 'Exchange Rate' => 'Átváltási árfolyam',
+ 'Exchange rate missing!' => 'Átváltási árfolyam hiányzik!',
+ 'For' => 'Ismétlés',
+ 'From' => 'Mikortól:',
+ 'Include Payment' => 'Pénzmozgással együtt',
+ 'Invoice' => 'Számla',
+ 'Invoices' => 'Számlák',
+ 'Language' => 'Nyelv',
+ 'Memo' => 'Memo',
+ 'Message' => 'Üzenet',
+ 'Month(s)' => 'Hónap',
+ 'Next Date' => 'Következõ Dátum',
+ 'Nothing open!' => 'Nincs nyilva',
+ 'Number' => 'Szám',
+ 'PDF' => 'PDF',
+ 'Payment' => 'Kifizetés',
+ 'Payment posted!' => 'Pénzmozgás rögzítve',
+ 'Payments' => 'Kifizetések',
+ 'Payments posted!' => 'Kifizetés rögzítve!',
+ 'Post' => 'Rögzítés',
+ 'Posting failed!' => 'A rögzítés nem sikerült!',
+ 'Postscript' => 'Postscript',
+ 'Prepayment' => 'Elõre fizetés',
+ 'Print' => 'Nyomtatás',
+ 'Project not on file!' => 'Projekt nincs meg',
+ 'Receipt' => 'Befizetés',
+ 'Receipt posted!' => 'Befizetés rögzítve!',
+ 'Receipts' => 'Befizetések',
+ 'Recurring Transaction' => 'Ismétlõdõ Tranzakció',
+ 'Reference' => 'Hivatkozás',
+ 'Repeat' => 'Ismétlés',
+ 'Save Schedule' => 'Ütemezés mentése',
+ 'Screen' => 'Képernyõre',
+ 'Select' => 'Választás',
+ 'Select all' => 'Mindent kijelöl',
+ 'Select from one of the names below' => 'Válasszon ki egyet az alábbi nevek közül',
+ 'Select from one of the projects below' => 'Válasszon a projektek közül',
+ 'Select postscript or PDF!' => 'Válassza ki a postscript vagy a PDF formátumot!',
+ 'Source' => 'Bizonylatszám',
+ 'Startdate' => 'Kezdõ dátum',
+ 'Subject' => 'Tárgy',
+ 'To' => 'Meddig:',
+ 'Update' => 'Frissítés',
+ 'Vendor' => 'Szállító',
+ 'Vendor not on file!' => 'Szállító nincs az adatbázisban!',
+ 'Warning!' => 'Figyelmeztetés',
+ 'Week(s)' => 'Hét',
+ 'Year(s)' => 'Év',
+ 'You are posting an existing transaction!' => 'Ön egy létezõ tranzakciót módosít!',
+ 'You are printing and posting an existing transaction!' => 'Ön egy létezõ tranzakciót rögzít és nyomtat!',
+ 'You are printing and saving an existing order' => 'Ön egy létezõ rendelést rögzít és nyomtat!',
+ 'You are printing and saving an existing quotation' => 'Ön egy létezõ ajánlatot rögzít és nyomtat!',
+ 'You are saving an existing order' => 'Ön egy létezõ rendelést módosít!',
+ 'You are saving an existing quotation' => 'Ön egy létezõ ajánlatot módosít',
+ 'for' => 'for',
+ 'sent' => 'elküldve',
+ 'time(s)' => '-szor',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'folytatás' => 'continue',
+ 'Ütemezés_törlése' => 'delete_schedule',
+ 'rögzítés' => 'post',
+ 'nyomtatás' => 'print',
+ 'Ütemezés_mentése' => 'save_schedule',
+ 'mindent_kijelöl' => 'select_all',
+ 'frissítés' => 'update',
+};
+
+1;
+
diff --git a/locale/hu/ct b/locale/hu/ct
new file mode 100755
index 00000000..b07a2720
--- /dev/null
+++ b/locale/hu/ct
@@ -0,0 +1,192 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'AP Transaction' => 'Szállító tranzakció',
+ 'AP Transactions' => 'Szállító tranzakciók',
+ 'AR Transaction' => 'Vevõ tranzakció',
+ 'AR Transactions' => 'Vevõ tranzakciók',
+ 'Accounting Menu' => 'Menü',
+ 'Active' => 'Aktív',
+ 'Add Customer' => 'Új vevõ',
+ 'Add Vendor' => 'Új szállító',
+ 'Address' => 'Cím',
+ 'All' => 'Összes',
+ 'Amount' => 'Összeg',
+ 'BIC' => 'Bank Azonosító Kód',
+ 'Bcc' => 'Titkos másolat',
+ 'Billing Address' => 'Számlázási cím',
+ 'Break' => 'Break',
+ 'Cannot delete customer!' => 'A vevõt nem lehet törölni!',
+ 'Cannot delete vendor!' => 'Szállítót nem lehet törölni!',
+ 'Cc' => 'Másolat',
+ 'City' => 'Ország',
+ 'Closed' => 'Lezárt',
+ 'Company Name' => 'Vállalat név',
+ 'Contact' => 'Adószám',
+ 'Continue' => 'Folytatás',
+ 'Cost' => 'Költség',
+ 'Could not save pricelist!' => 'Nem tudom elmenteni az árlistát!',
+ 'Country' => 'Ország',
+ 'Credit Limit' => 'Hitelkeret',
+ 'Curr' => 'Dev',
+ 'Currency' => 'Deviza',
+ 'Customer History' => 'Vevõ történelem',
+ 'Customer Number' => 'Vevõ Száma',
+ 'Customer deleted!' => 'Vevõ törölve!',
+ 'Customer saved!' => 'Vevõ elmentve!',
+ 'Customers' => 'Vevõadatok',
+ 'Delete' => 'Törlés',
+ 'Delivery Date' => 'Szállítás dátuma',
+ 'Description' => 'Szöveges leírás',
+ 'Detail' => 'Részletek',
+ 'Discount' => 'Engedmény',
+ 'E-mail' => 'E-mail',
+ 'Edit Customer' => 'Vevõ módosítása',
+ 'Edit Vendor' => 'Szállító módosítása',
+ 'Employee' => 'Alkalmazott',
+ 'Enddate' => 'Végdátum',
+ 'Fax' => 'Fax',
+ 'From' => 'Mikortól:',
+ 'GIFI' => 'Gyûjtõkód',
+ 'Group' => 'Csoport',
+ 'IBAN' => 'Bank Számlaszám',
+ 'ID' => 'Azonosító',
+ 'Inactive' => 'Inaktív',
+ 'Include in Report' => 'Oszlopok:',
+ 'Invoice' => 'Számla',
+ 'Item already on pricelist!' => 'A cikk már szerepel az árlistában!',
+ 'Item not on file!' => 'A tétel nincs az adatbázisban!',
+ 'Language' => 'Nyelv',
+ 'Leadtime' => 'Utánpótlási idõ',
+ 'Manager' => 'Manager',
+ 'Name' => 'Név',
+ 'Name missing!' => 'Név hiányzik',
+ 'No.' => 'Sz.',
+ 'Notes' => 'Megjegyzés',
+ 'Number' => 'Szám',
+ 'Open' => 'Nyitott',
+ 'Order' => 'Rendelés',
+ 'Orphaned' => 'Tranzakció nélküli',
+ 'POS' => 'Nyugta',
+ 'Part Number' => 'Cikkszám',
+ 'Phone' => 'Telefon',
+ 'Pricegroup' => 'Árcsoport',
+ 'Pricelist' => 'Árlista',
+ 'Project Number' => 'Munkaszám',
+ 'Purchase Order' => 'Beszerzési rendelés',
+ 'Purchase Orders' => 'Beszerzési rendelések',
+ 'Qty' => 'Menny.',
+ 'Quotation' => 'Ajánlat',
+ 'Quotations' => 'Ajánlatok',
+ 'RFQ' => 'Ajánlat kérés',
+ 'Request for Quotations' => 'Ajánlat kérés',
+ 'SIC' => 'Osztályozó Kód',
+ 'SKU' => 'Idegen azonosító',
+ 'Sales Invoice' => 'Vevõszámla',
+ 'Sales Invoices' => 'Vevõ Számla',
+ 'Sales Order' => 'Vevõrendelés',
+ 'Sales Orders' => 'Vevõrendelések',
+ 'Salesperson' => 'Ügynök',
+ 'Save' => 'Mentés',
+ 'Save Pricelist' => 'Árlista ,emtése',
+ 'Save as new' => 'Mentés újként',
+ 'Search' => 'Keresés',
+ 'Select items' => 'Cikk választás',
+ 'Sell Price' => 'Eladási ár',
+ 'Serial Number' => 'Sorszám',
+ 'Shipping Address' => 'Szállítási cím',
+ 'Startdate' => 'Kezdõ dátum',
+ 'State' => 'Állapot',
+ 'State/Province' => 'Állam/Régió',
+ 'Sub-contract GIFI' => 'Sub-contract GIFI',
+ 'Subtotal' => 'Részösszeg',
+ 'Summary' => 'Összegzés',
+ 'Tax' => 'Adó',
+ 'Tax Account' => 'Adó számla',
+ 'Tax Included' => 'Adót tartalmazza',
+ 'Tax Number' => 'Adószám',
+ 'Tax Number / SSN' => 'Tax Number / SSN',
+ 'Taxable' => 'Adó:',
+ 'Terms' => 'Határidõ',
+ 'To' => 'Meddig:',
+ 'Total' => 'Végösszeg',
+ 'Type of Business' => 'Üzletág Típus',
+ 'Unit' => 'Egység',
+ 'Update' => 'Frissítés',
+ 'Vendor History' => 'Szállító történelem',
+ 'Vendor Invoice' => 'Beszerzési számla',
+ 'Vendor Invoices' => 'Szállító számlák',
+ 'Vendor Number' => 'Szállítószám',
+ 'Vendor deleted!' => 'Szállító törölve!',
+ 'Vendor saved!' => 'Szállító elmentve!',
+ 'Vendors' => 'Szállítók',
+ 'Zip/Postal Code' => 'Irányítószám',
+ 'days' => 'nap',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'szállító_tranzakció' => 'ap_transaction',
+ 'vevõ_tranzakció' => 'ar_transaction',
+ 'Új_vevõ' => 'add_customer',
+ 'Új_szállító' => 'add_vendor',
+ 'folytatás' => 'continue',
+ 'törlés' => 'delete',
+ 'nyugta' => 'pos',
+ 'Árlista' => 'pricelist',
+ 'beszerzési_rendelés' => 'purchase_order',
+ 'ajánlat' => 'quotation',
+ 'ajánlat_kérés' => 'rfq',
+ 'vevõszámla' => 'sales_invoice',
+ 'vevõrendelés' => 'sales_order',
+ 'mentés' => 'save',
+ 'Árlista__emtése' => 'save_pricelist',
+ 'mentés_újként' => 'save_as_new',
+ 'frissítés' => 'update',
+ 'beszerzési_számla' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/hu/gl b/locale/hu/gl
new file mode 100755
index 00000000..b19616e1
--- /dev/null
+++ b/locale/hu/gl
@@ -0,0 +1,187 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'AP Transaction' => 'Szállító tranzakció',
+ 'AR Transaction' => 'Vevõ tranzakció',
+ 'Account' => 'Számla',
+ 'Accounting Menu' => 'Menü',
+ 'Add Cash Transfer Transaction' => 'Új számlák közötti pénzmozgás',
+ 'Add General Ledger Transaction' => 'Új fõkönyvi könyvelés',
+ 'Address' => 'Cím',
+ 'All' => 'Összes',
+ 'Amount' => 'Összeg',
+ 'Apr' => 'Ápr.',
+ 'April' => 'Április',
+ 'Are you sure you want to delete Transaction' => 'Biztos, hogy törölni akarja? Tranzakció:',
+ 'Asset' => 'Eszköz',
+ 'Aug' => 'Aug.',
+ 'August' => 'Augusztus',
+ 'Balance' => 'Egyenleg',
+ 'Bcc' => 'Titkos másolat',
+ 'Cannot delete transaction!' => 'A tranzakciót nem lehet törölni!',
+ 'Cannot post transaction for a closed period!' => 'A lezárt idõszakban nem lehet tranzakciót rögzíteni!!',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => 'Ugyanazon számlaszámon nem lehet credit és debit!',
+ 'Cannot post transaction!' => 'A tranzakciót nem lehet rögzíteni!',
+ 'Cc' => 'Másolat',
+ 'Confirm!' => 'Megerõsítés:',
+ 'Continue' => 'Folytatás',
+ 'Credit' => 'Követel',
+ 'Current' => '0-30',
+ 'Customer not on file!' => 'A vevõ hiányzik az adatbázisból!',
+ 'Date' => 'Dátum',
+ 'Day(s)' => 'Nap(ok)',
+ 'Debit' => 'Tartozik',
+ 'Dec' => 'Dec.',
+ 'December' => 'December',
+ 'Delete' => 'Törlés',
+ 'Delete Schedule' => 'Ütemezés Törlése',
+ 'Department' => 'Osztály',
+ 'Description' => 'Szöveges leírás',
+ 'E-mail' => 'E-mail',
+ 'E-mail message' => 'E-mail üzenet',
+ 'Edit Cash Transfer Transaction' => 'Számlák közötti pénzmozgás módosítása',
+ 'Edit General Ledger Transaction' => 'Vegyes könyvelési tétel módosítása',
+ 'Equity' => 'Tõke',
+ 'Every' => 'Minden',
+ 'Expense' => 'Költség',
+ 'FX' => 'Deviza',
+ 'Feb' => 'Feb.',
+ 'February' => 'Február',
+ 'For' => 'Ismétlés',
+ 'From' => 'Mikortól:',
+ 'GIFI' => 'Gyûjtõkód',
+ 'GL Transaction' => 'Fõkönyvi tranzakció!',
+ 'General Ledger' => 'Fõkönyvi könyvelés',
+ 'ID' => 'Azonosító',
+ 'Include Payment' => 'Pénzmozgással együtt',
+ 'Include in Report' => 'Oszlopok:',
+ 'Income' => 'Árbevétel',
+ 'Jan' => 'Jan.',
+ 'January' => 'Január',
+ 'Jul' => 'Júl.',
+ 'July' => 'Július',
+ 'Jun' => 'Jún.',
+ 'June' => 'Június',
+ 'Liability' => 'Kötelezettség',
+ 'Mar' => 'Márc.',
+ 'March' => 'Március',
+ 'May' => 'Máj.',
+ 'May ' => 'Május',
+ 'Memo' => 'Memo',
+ 'Message' => 'Üzenet',
+ 'Month' => 'Hónap',
+ 'Month(s)' => 'Hónap',
+ 'Next Date' => 'Következõ Dátum',
+ 'Notes' => 'Megjegyzés',
+ 'Nov' => 'Nov.',
+ 'November' => 'November',
+ 'Number' => 'Szám',
+ 'Oct' => 'Okt.',
+ 'October' => 'Október',
+ 'Out of balance transaction!' => 'Nem mérlegszerû tranzakció!',
+ 'Period' => 'Idõszak',
+ 'Post' => 'Rögzítés',
+ 'Post as new' => 'Rögzítés új tranzakcióként',
+ 'Print' => 'Nyomtatás',
+ 'Project' => 'Munkaszám',
+ 'Project not on file!' => 'Projekt nincs meg',
+ 'Quarter' => 'Negyedév',
+ 'R' => 'E',
+ 'Recurring Transaction' => 'Ismétlõdõ Tranzakció',
+ 'Reference' => 'Hivatkozás',
+ 'Repeat' => 'Ismétlés',
+ 'Reports' => 'Jelentések',
+ 'Sales Invoice ' => 'Vevõ számla',
+ 'Save Schedule' => 'Ütemezés mentése',
+ 'Schedule' => 'Ütemezés',
+ 'Scheduled' => 'Ütemezve',
+ 'Select from one of the names below' => 'Válasszon ki egyet az alábbi nevek közül',
+ 'Select from one of the projects below' => 'Válasszon a projektek közül',
+ 'Sep' => 'Szept.',
+ 'September' => 'Szeptember',
+ 'Source' => 'Bizonylatszám',
+ 'Startdate' => 'Kezdõ dátum',
+ 'Subject' => 'Tárgy',
+ 'Subtotal' => 'Részösszeg',
+ 'To' => 'Meddig:',
+ 'Transaction Date missing!' => 'Tranzakció dátuma hiányzik!',
+ 'Transaction deleted!' => 'Tranzakció törölve!',
+ 'Transaction posted!' => 'Tranzakció rögzítve!',
+ 'Update' => 'Frissítés',
+ 'Vendor Invoice ' => 'Szállító számla',
+ 'Vendor not on file!' => 'Szállító nincs az adatbázisban!',
+ 'Warning!' => 'Figyelmeztetés',
+ 'Week(s)' => 'Hét',
+ 'Year' => 'Év',
+ 'Year(s)' => 'Év',
+ 'Yes' => 'Igen',
+ 'You are posting an existing transaction!' => 'Ön egy létezõ tranzakciót módosít!',
+ 'You are printing and posting an existing transaction!' => 'Ön egy létezõ tranzakciót rögzít és nyomtat!',
+ 'You are printing and saving an existing order' => 'Ön egy létezõ rendelést rögzít és nyomtat!',
+ 'You are printing and saving an existing quotation' => 'Ön egy létezõ ajánlatot rögzít és nyomtat!',
+ 'You are saving an existing order' => 'Ön egy létezõ rendelést módosít!',
+ 'You are saving an existing quotation' => 'Ön egy létezõ ajánlatot módosít',
+ 'for' => 'for',
+ 'sent' => 'elküldve',
+ 'time(s)' => '-szor',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'szállító_tranzakció' => 'ap_transaction',
+ 'vevõ_tranzakció' => 'ar_transaction',
+ 'folytatás' => 'continue',
+ 'törlés' => 'delete',
+ 'Ütemezés_törlése' => 'delete_schedule',
+ 'fõkönyvi_tranzakció!' => 'gl_transaction',
+ 'rögzítés' => 'post',
+ 'rögzítés_új_tranzakcióként' => 'post_as_new',
+ 'vevõ_számla' => 'sales_invoice_',
+ 'Ütemezés_mentése' => 'save_schedule',
+ 'Ütemezés' => 'schedule',
+ 'frissítés' => 'update',
+ 'szállító_számla' => 'vendor_invoice_',
+ 'igen' => 'yes',
+};
+
+1;
+
diff --git a/locale/hu/hr b/locale/hu/hr
new file mode 100755
index 00000000..3cd7c6fa
--- /dev/null
+++ b/locale/hu/hr
@@ -0,0 +1,99 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'AP' => 'Szállítók',
+ 'Accounting Menu' => 'Menü',
+ 'Active' => 'Aktív',
+ 'Add Employee' => 'Új alkalmazott',
+ 'Address' => 'Cím',
+ 'Administrator' => 'Rendszergazda',
+ 'All' => 'Összes',
+ 'Amount' => 'Összeg',
+ 'Amount missing!' => 'Összeg hiányzik!',
+ 'BIC' => 'Bank Azonosító Kód',
+ 'City' => 'Ország',
+ 'Continue' => 'Folytatás',
+ 'Country' => 'Ország',
+ 'Delete' => 'Törlés',
+ 'Description' => 'Szöveges leírás',
+ 'Description missing!' => 'Megnevezés hiányzik!',
+ 'E-mail' => 'E-mail',
+ 'Edit Employee' => 'Munkatárs Módosítás',
+ 'Employee' => 'Alkalmazott',
+ 'Employee Name' => 'Munkatárs Név',
+ 'Employee Number' => 'Alkalmazott Száma',
+ 'Employee deleted!' => 'Munkatárs törölve ',
+ 'Employee saved!' => 'Munkatárs elmentve!',
+ 'Employees' => 'Alkalmazottak',
+ 'Employer' => 'Munkaadó',
+ 'Enddate' => 'Végdátum',
+ 'Expense' => 'Költség',
+ 'From' => 'Mikortól:',
+ 'Home Phone' => 'Otthoni telefon',
+ 'IBAN' => 'Számla Azonosító',
+ 'ID' => 'Azonosító',
+ 'Inactive' => 'Inaktív',
+ 'Include in Report' => 'Oszlopok:',
+ 'Login' => 'Belépés',
+ 'Manager' => 'Manager',
+ 'Name' => 'Név',
+ 'Name missing!' => 'Név hiányzik',
+ 'Notes' => 'Megjegyzés',
+ 'Number' => 'Szám',
+ 'Orphaned' => 'Tranzakció nélküli',
+ 'Rate' => 'Árfolyam',
+ 'Role' => 'Szerep',
+ 'Sales' => 'Eladás',
+ 'Save' => 'Mentés',
+ 'Save as new' => 'Mentés újként',
+ 'Startdate' => 'Kezdõ dátum',
+ 'State/Province' => 'Állam/Régió',
+ 'Supervisor' => 'Ellenõr',
+ 'To' => 'Meddig:',
+ 'Update' => 'Frissítés',
+ 'User' => 'Felhasználó',
+ 'Work Phone' => 'Munkahelyi telefon',
+ 'Zip/Postal Code' => 'Irányítószám',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'Új_alkalmazott' => 'add_employee',
+ 'folytatás' => 'continue',
+ 'törlés' => 'delete',
+ 'mentés' => 'save',
+ 'mentés_újként' => 'save_as_new',
+ 'frissítés' => 'update',
+};
+
+1;
+
diff --git a/locale/hu/hr.missing b/locale/hu/hr.missing
new file mode 100755
index 00000000..c3194317
--- /dev/null
+++ b/locale/hu/hr.missing
@@ -0,0 +1,29 @@
+# module hr
+# add the missing texts and run locales.pl to rebuild
+
+$missing = {
+ 'Above' => '',
+ 'Add Deduction' => '',
+ 'After Deduction' => '',
+ 'Allowances' => '',
+ 'Based on' => '',
+ 'Before Deduction' => '',
+ 'Below' => '',
+ 'DOB' => '',
+ 'Deduct after' => '',
+ 'Deduction deleted!' => '',
+ 'Deduction saved!' => '',
+ 'Deductions' => '',
+ 'Edit Deduction' => '',
+ 'Employee pays' => '',
+ 'Employer pays' => '',
+ 'Exempt age <' => '',
+ 'Maximum' => '',
+ 'Payroll Deduction' => '',
+ 'Pos' => '',
+ 'Rate missing!' => '',
+ 'S' => '',
+ 'SSN' => '',
+};
+
+1;
diff --git a/locale/hu/ic b/locale/hu/ic
new file mode 100755
index 00000000..637a0a0d
--- /dev/null
+++ b/locale/hu/ic
@@ -0,0 +1,305 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'A' => 'Árvált.',
+ 'Accounting Menu' => 'Menü',
+ 'Accounts' => 'Számlák',
+ 'Accrual' => 'Pénzforgalom',
+ 'Active' => 'Aktív',
+ 'Add' => 'Új',
+ 'Add Assembly' => 'Új saját termék',
+ 'Add Labor/Overhead' => 'Új Mûvelet',
+ 'Add Part' => 'Új cikk',
+ 'Add Purchase Order' => 'Új beszerzési rendelés',
+ 'Add Quotation' => 'Új Ajánlat',
+ 'Add Request for Quotation' => 'Új Ajánlat Kérés',
+ 'Add Sales Order' => 'Új vevõrendelés',
+ 'Add Service' => 'Új szolgáltatás',
+ 'Address' => 'Cím',
+ 'Apr' => 'Ápr.',
+ 'April' => 'Április',
+ 'Assemblies' => 'Saját termékek',
+ 'Assemblies restocked!' => 'Saját termékek készletre véve',
+ 'Assembly' => 'Szerelvény',
+ 'Attachment' => 'Csatolás',
+ 'Aug' => 'Aug.',
+ 'August' => 'Augusztus',
+ 'Average Cost' => 'Átlag költség',
+ 'Avg Cost' => 'Ált.költség',
+ 'BOM' => 'Anyagjegyzék',
+ 'Bcc' => 'Titkos másolat',
+ 'Billing Address' => 'Számlázási cím',
+ 'Bin' => 'Raktárhely',
+ 'Bin List' => 'Tároló helyek',
+ 'Break' => 'Break',
+ 'COGS' => 'ELÁBÉ',
+ 'COGS account does not exist!' => 'Nincs Költségszámla!',
+ 'Cannot create Assembly' => 'Nem tudok Szerelvényt létrehozni',
+ 'Cannot create Labor' => 'Nem tudok Mûveletet léterhozni',
+ 'Cannot create Part' => 'Nem tudok Cikket létrehozni!',
+ 'Cannot create Service' => 'Nem tudok Szolgáltatást létrehozni!',
+ 'Cannot delete item!' => 'A tételt nem lehet törölni!',
+ 'Cannot stock assemblies!' => 'A saját terméket nem lehet készletre venni!',
+ 'Cash' => 'Pénzmozgások',
+ 'Cc' => 'Másolat',
+ 'Check Inventory' => 'Készlet ellenõrzés',
+ 'City' => 'Ország',
+ 'Closed' => 'Lezárt',
+ 'Company Name' => 'Vállalat név',
+ 'Components' => 'Komponensek',
+ 'Contact' => 'Adószám',
+ 'Continue' => 'Folytatás',
+ 'Copies' => 'Másolatok',
+ 'Cost' => 'Költség',
+ 'Country' => 'Ország',
+ 'Curr' => 'Dev',
+ 'Currency' => 'Deviza',
+ 'Customer' => 'Vevõ',
+ 'Customer Number' => 'Vevõ Száma',
+ 'Customer not on file!' => 'A vevõ hiányzik az adatbázisból!',
+ 'Date' => 'Dátum',
+ 'Dec' => 'Dec.',
+ 'December' => 'December',
+ 'Delete' => 'Törlés',
+ 'Delivery Date' => 'Szállítás dátuma',
+ 'Description' => 'Szöveges leírás',
+ 'Detail' => 'Részletek',
+ 'Drawing' => 'Rajz',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'E-mail cím hiányzik!',
+ 'E-mailed' => 'E-mail elküldve',
+ 'Edit Assembly' => 'Saját termék módosítása',
+ 'Edit Labor/Overhead' => 'Mûvelet módosítás',
+ 'Edit Part' => 'Cikk módosítása',
+ 'Edit Service' => 'Szolgáltatás módosítása',
+ 'Employee' => 'Alkalmazott',
+ 'Expense' => 'Költség',
+ 'Expense account does not exist!' => 'Nincs Költségszámla!',
+ 'Extended' => 'Összeg',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb.',
+ 'February' => 'Február',
+ 'From' => 'Mikortól:',
+ 'Group' => 'Csoport',
+ 'Group by' => 'Csoportosítva',
+ 'Image' => 'Kép',
+ 'In-line' => 'Beágyazva',
+ 'Include in Report' => 'Oszlopok:',
+ 'Income' => 'Árbevétel',
+ 'Income account does not exist!' => 'Nincs Bevétel számla!',
+ 'Individual Items' => 'Összetevõk',
+ 'Inventory' => 'Készlet',
+ 'Inventory account does not exist!' => 'Nincs Készlet számla!',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Mielõtt ezt a saját terméket elévültnek nyilvánítja,a mennyiségnek nullának kell lennie!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Mielõtt ezt az anyagot/árut elévültnek nyilvánítja,a mennyiségnek nullának kell lennie!!',
+ 'Invoice' => 'Számla',
+ 'Invoice Date missing!' => 'Teljesítés dátuma hiányzik!',
+ 'Invoice Number' => 'Számlaszám',
+ 'Invoice Number missing!' => 'Számlaszám hiányzik!',
+ 'Item' => 'Tétel',
+ 'Item deleted!' => 'Tétel törölve!',
+ 'Item not on file!' => 'A tétel nincs az adatbázisban!',
+ 'Items' => 'Tételek',
+ 'Jan' => 'Jan.',
+ 'January' => 'Január',
+ 'Jul' => 'Júl.',
+ 'July' => 'Július',
+ 'Jun' => 'Jún.',
+ 'June' => 'Június',
+ 'Labor/Overhead' => 'Mûvelet',
+ 'Last Cost' => 'Utolsó Költség',
+ 'Leadtime' => 'Utánpótlási idõ',
+ 'Line Total' => 'Sor összesen',
+ 'Link Accounts' => 'Számlakapcsolatok',
+ 'List' => 'Lista',
+ 'List Price' => 'Listaár',
+ 'Make' => 'Gyártmány',
+ 'Mar' => 'Márc.',
+ 'March' => 'Március',
+ 'Markup' => 'Árrés',
+ 'May' => 'Máj.',
+ 'May ' => 'Május',
+ 'Message' => 'Üzenet',
+ 'Microfiche' => 'Mikrofilm',
+ 'Model' => 'Modell',
+ 'Name' => 'Név',
+ 'No History!' => 'Nincs történelem!',
+ 'No.' => 'Sz.',
+ 'Notes' => 'Megjegyzés',
+ 'Nov' => 'Nov.',
+ 'November' => 'November',
+ 'Number' => 'Szám',
+ 'Number missing in Row' => 'Ebbõl a sorból hiányzik a szám:',
+ 'OH' => 'Rezsi',
+ 'Obsolete' => 'Elévült',
+ 'Oct' => 'Okt.',
+ 'October' => 'Október',
+ 'On Hand' => 'Készleten',
+ 'Onhand' => 'Ténykészlet',
+ 'Open' => 'Nyitott',
+ 'Order' => 'Javasolt',
+ 'Order Date missing!' => 'Rendelés dátuma hiányzik!',
+ 'Order Number' => 'Rendelés száma',
+ 'Order Number missing!' => 'Rendelés száma hiányzik!',
+ 'Orphaned' => 'Tranzakció nélküli',
+ 'PDF' => 'PDF',
+ 'PO' => 'Besz.Rend',
+ 'Packing List' => 'Szállítólevél',
+ 'Packing List Date missing!' => 'Szállítólevél dátuma hiányzik!',
+ 'Packing List Number missing!' => 'Szállítólevél száma hiányzik!',
+ 'Part' => 'Cikk',
+ 'Parts' => 'Cikkek',
+ 'Parts Requirements' => 'Cikk Szükséglet',
+ 'Period' => 'Idõszak',
+ 'Phone' => 'Telefon',
+ 'Pick List' => 'Kiszedési Lista',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Ár',
+ 'Pricegroup' => 'Árcsoport',
+ 'Printed' => 'Kinyomtatva',
+ 'Project' => 'Munkaszám',
+ 'Purchase Order' => 'Beszerzési rendelés',
+ 'Purchase Orders' => 'Beszerzési rendelések',
+ 'Qty' => 'Menny.',
+ 'Quantity exceeds available units to stock!' => 'A mennyiség meghaladja a készletet!',
+ 'Queue' => 'Sor',
+ 'Queued' => 'Sorba állítva',
+ 'Quotation' => 'Ajánlat',
+ 'Quotation Date missing!' => 'Hiányzó Ajánlat dátum!',
+ 'Quotation Number missing!' => 'Hiányzó Ajánlat szám!',
+ 'Quotations' => 'Ajánlatok',
+ 'RFQ' => 'Ajánlat kérés',
+ 'ROP' => 'Újrarendelési pont',
+ 'Recd' => 'Kapott',
+ 'Required by' => 'Leszállítás',
+ 'SKU' => 'Idegen azonosító',
+ 'SO' => 'Vev.Rend',
+ 'Sales Invoice' => 'Vevõszámla',
+ 'Sales Invoices' => 'Vevõ Számla',
+ 'Sales Order' => 'Vevõrendelés',
+ 'Sales Orders' => 'Vevõrendelések',
+ 'Save' => 'Mentés',
+ 'Save as new' => 'Mentés újként',
+ 'Scheduled' => 'Ütemezve',
+ 'Screen' => 'Képernyõre',
+ 'Select from one of the names below' => 'Válasszon ki egyet az alábbi nevek közül',
+ 'Select items' => 'Cikk választás',
+ 'Select txt, postscript or PDF!' => 'Válasszon txt, postscript vagy PDF formát!',
+ 'Sell' => 'Eladás',
+ 'Sell Price' => 'Eladási ár',
+ 'Sep' => 'Szept.',
+ 'September' => 'Szeptember',
+ 'Serial No.' => 'Sorozat szám',
+ 'Serial Number' => 'Sorszám',
+ 'Service' => 'Szolgáltatás',
+ 'Services' => 'Szolgáltatások',
+ 'Ship' => 'Szállítás',
+ 'Ship to' => 'Szállítási cím',
+ 'Shipping Address' => 'Szállítási cím',
+ 'Short' => 'Hiányzó',
+ 'Sort by' => 'Rendezve',
+ 'State/Province' => 'Állam/Régió',
+ 'Stock' => 'Készletre vesz',
+ 'Stock Assembly' => 'Saját termék bevételezése',
+ 'Subject' => 'Tárgy',
+ 'Subtotal' => 'Részösszeg',
+ 'Summary' => 'Összegzés',
+ 'Tax' => 'Adó',
+ 'Text' => 'Szöveg',
+ 'To' => 'Meddig:',
+ 'Top Level' => 'Legfelsõ szint',
+ 'Translation not on file!' => 'A fordítás nincs meg!',
+ 'Unit' => 'Egység',
+ 'Update' => 'Frissítés',
+ 'Updated' => 'Frissítve',
+ 'Vendor' => 'Szállító',
+ 'Vendor Invoice' => 'Beszerzési számla',
+ 'Vendor Invoices' => 'Szállító számlák',
+ 'Vendor Number' => 'Szállítószám',
+ 'Vendor not on file!' => 'Szállító nincs az adatbázisban!',
+ 'Warehouse' => 'Raktár',
+ 'Weight' => 'Súly',
+ 'What type of item is this?' => 'Ez milyen típusú tétel?',
+ 'Work Order' => 'Munka rendelés',
+ 'Year' => 'Év',
+ 'Zip/Postal Code' => 'Irányítószám',
+ 'days' => 'nap',
+ 'sent' => 'elküldve',
+ 'unexpected error!' => 'Váratlan hiba!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'Új_saját_termék' => 'add_assembly',
+ 'Új_mûvelet' => 'add_labor_overhead',
+ 'Új_cikk' => 'add_part',
+ 'Új_szolgáltatás' => 'add_service',
+ 'folytatás' => 'continue',
+ 'törlés' => 'delete',
+ 'saját_termék_módosítása' => 'edit_assembly',
+ 'cikk_módosítása' => 'edit_part',
+ 'szolgáltatás_módosítása' => 'edit_service',
+ 'mentés' => 'save',
+ 'mentés_újként' => 'save_as_new',
+ 'frissítés' => 'update',
+};
+
+1;
+
diff --git a/locale/hu/io b/locale/hu/io
new file mode 100755
index 00000000..72bb0840
--- /dev/null
+++ b/locale/hu/io
@@ -0,0 +1,141 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Add Purchase Order' => 'Új beszerzési rendelés',
+ 'Add Quotation' => 'Új Ajánlat',
+ 'Add Request for Quotation' => 'Új Ajánlat Kérés',
+ 'Add Sales Order' => 'Új vevõrendelés',
+ 'Address' => 'Cím',
+ 'Apr' => 'Ápr.',
+ 'April' => 'Április',
+ 'Attachment' => 'Csatolás',
+ 'Aug' => 'Aug.',
+ 'August' => 'Augusztus',
+ 'Bcc' => 'Titkos másolat',
+ 'Billing Address' => 'Számlázási cím',
+ 'Bin' => 'Raktárhely',
+ 'Bin List' => 'Tároló helyek',
+ 'Cc' => 'Másolat',
+ 'City' => 'Ország',
+ 'Company Name' => 'Vállalat név',
+ 'Contact' => 'Kapcsolat',
+ 'Continue' => 'Folytatás',
+ 'Copies' => 'Másolatok',
+ 'Country' => 'Ország',
+ 'Customer Number' => 'Vevõ Száma',
+ 'Date' => 'Dátum',
+ 'Dec' => 'Dec.',
+ 'December' => 'December',
+ 'Delivery Date' => 'Szállítás dátuma',
+ 'Description' => 'Szöveges leírás',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'E-mail cím hiányzik!',
+ 'E-mailed' => 'E-mail elküldve',
+ 'Extended' => 'Összeg',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb.',
+ 'February' => 'Február',
+ 'Group' => 'Csoport',
+ 'Group by' => 'Csoportosítva',
+ 'In-line' => 'Beágyazva',
+ 'Invoice' => 'Számla',
+ 'Invoice Date missing!' => 'Teljesítés dátuma hiányzik!',
+ 'Invoice Number missing!' => 'Számlaszám hiányzik!',
+ 'Item' => 'Tétel',
+ 'Item not on file!' => 'A tétel nincs az adatbázisban!',
+ 'Jan' => 'Jan.',
+ 'January' => 'Január',
+ 'Jul' => 'Júl.',
+ 'July' => 'Július',
+ 'Jun' => 'Jún.',
+ 'June' => 'Június',
+ 'Mar' => 'Márc.',
+ 'March' => 'Március',
+ 'May' => 'Máj.',
+ 'May ' => 'Május',
+ 'Message' => 'Üzenet',
+ 'Nov' => 'Nov.',
+ 'November' => 'November',
+ 'Number' => 'Szám',
+ 'Number missing in Row' => 'Ebbõl a sorból hiányzik a szám:',
+ 'OH' => 'Rezsi',
+ 'Oct' => 'Okt.',
+ 'October' => 'Október',
+ 'Order Date missing!' => 'Rendelés dátuma hiányzik!',
+ 'Order Number missing!' => 'Rendelés száma hiányzik!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Szállítólevél',
+ 'Packing List Date missing!' => 'Szállítólevél dátuma hiányzik!',
+ 'Packing List Number missing!' => 'Szállítólevél száma hiányzik!',
+ 'Part' => 'Cikk',
+ 'Phone' => 'Telefon',
+ 'Pick List' => 'Kiszedési Lista',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Ár',
+ 'Printed' => 'Kinyomtatva',
+ 'Project' => 'Munkaszám',
+ 'Purchase Order' => 'Beszerzési rendelés',
+ 'Qty' => 'Menny.',
+ 'Queue' => 'Sor',
+ 'Queued' => 'Sorba állítva',
+ 'Quotation' => 'Ajánlat',
+ 'Quotation Date missing!' => 'Hiányzó Ajánlat dátum!',
+ 'Quotation Number missing!' => 'Hiányzó Ajánlat szám!',
+ 'Recd' => 'Kapott',
+ 'Required by' => 'Leszállítás',
+ 'SKU' => 'Idegen azonosító',
+ 'Sales Order' => 'Vevõrendelés',
+ 'Scheduled' => 'Ütemezve',
+ 'Screen' => 'Képernyõre',
+ 'Select items' => 'Cikk választás',
+ 'Select txt, postscript or PDF!' => 'Válasszon txt, postscript vagy PDF formát!',
+ 'Sep' => 'Szept.',
+ 'September' => 'Szeptember',
+ 'Serial No.' => 'Sorozat szám',
+ 'Service' => 'Szolgáltatás',
+ 'Ship' => 'Szállítás',
+ 'Ship to' => 'Szállítási cím',
+ 'Shipping Address' => 'Szállítási cím',
+ 'Sort by' => 'Rendezve',
+ 'State/Province' => 'Állam/Régió',
+ 'Subject' => 'Tárgy',
+ 'Subtotal' => 'Részösszeg',
+ 'Text' => 'Szöveg',
+ 'To' => 'Meddig:',
+ 'Translation not on file!' => 'A fordítás nincs meg!',
+ 'Unit' => 'Egység',
+ 'Vendor Number' => 'Szállítószám',
+ 'What type of item is this?' => 'Ez milyen típusú tétel?',
+ 'Work Order' => 'Munka rendelés',
+ 'Zip/Postal Code' => 'Irányítószám',
+ 'sent' => 'elküldve',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'folytatás' => 'continue',
+};
+
+1;
+
diff --git a/locale/hu/ir b/locale/hu/ir
new file mode 100755
index 00000000..2d5beded
--- /dev/null
+++ b/locale/hu/ir
@@ -0,0 +1,261 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Account' => 'Számla',
+ 'Accounting Menu' => 'Menü',
+ 'Add Purchase Order' => 'Új beszerzési rendelés',
+ 'Add Quotation' => 'Új Ajánlat',
+ 'Add Request for Quotation' => 'Új Ajánlat Kérés',
+ 'Add Sales Order' => 'Új vevõrendelés',
+ 'Add Vendor Invoice' => 'Új beszerzési számla',
+ 'Address' => 'Cím',
+ 'Amount' => 'Összeg',
+ 'Apr' => 'Ápr.',
+ 'April' => 'Április',
+ 'Are you sure you want to delete Invoice Number' => 'Biztos, hogy törölni akarja? Számlaszám:',
+ 'Attachment' => 'Csatolás',
+ 'Aug' => 'Aug.',
+ 'August' => 'Augusztus',
+ 'Bcc' => 'Titkos másolat',
+ 'Billing Address' => 'Számlázási cím',
+ 'Bin' => 'Raktárhely',
+ 'Bin List' => 'Tároló helyek',
+ 'Cannot delete invoice!' => 'A partnerszámlát nem lehet törölni!',
+ 'Cannot post invoice for a closed period!' => 'A lezárt idõszakban nem lehet számlát kiállítani!',
+ 'Cannot post invoice!' => 'A partnerszámlát nem lehet kiállítani',
+ 'Cannot post payment for a closed period!' => 'A lezárt idõszakban nem lehet fizetést rögzíteni!',
+ 'Cc' => 'Másolat',
+ 'City' => 'Ország',
+ 'Company Name' => 'Vállalat név',
+ 'Confirm!' => 'Megerõsítés:',
+ 'Contact' => 'Kapcsolat',
+ 'Continue' => 'Folytatás',
+ 'Copies' => 'Másolatok',
+ 'Country' => 'Ország',
+ 'Credit Limit' => 'Hitelkeret',
+ 'Currency' => 'Deviza',
+ 'Customer Number' => 'Vevõ Száma',
+ 'Customer not on file!' => 'A vevõ hiányzik az adatbázisból!',
+ 'Date' => 'Dátum',
+ 'Day(s)' => 'Nap(ok)',
+ 'Dec' => 'Dec.',
+ 'December' => 'December',
+ 'Delete' => 'Törlés',
+ 'Delete Schedule' => 'Ütemezés Törlése',
+ 'Delivery Date' => 'Szállítás dátuma',
+ 'Department' => 'Osztály',
+ 'Description' => 'Szöveges leírás',
+ 'Due Date' => 'Esedékesség',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'E-mail cím hiányzik!',
+ 'E-mail message' => 'E-mail üzenet',
+ 'E-mailed' => 'E-mail elküldve',
+ 'Edit Vendor Invoice' => 'Beszerzési számla módosítása',
+ 'Every' => 'Minden',
+ 'Exch' => 'Árf',
+ 'Exchange Rate' => 'Átváltási árfolyam',
+ 'Exchange rate for payment missing!' => 'A fizetett összeg átváltási árfolyama hiányzik!',
+ 'Exchange rate missing!' => 'Átváltási árfolyam hiányzik!',
+ 'Extended' => 'Összeg',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb.',
+ 'February' => 'Február',
+ 'For' => 'Ismétlés',
+ 'Group' => 'Csoport',
+ 'Group by' => 'Csoportosítva',
+ 'In-line' => 'Beágyazva',
+ 'Include Payment' => 'Pénzmozgással együtt',
+ 'Internal Notes' => 'Belsõ Megjegyzés',
+ 'Invoice' => 'Számla',
+ 'Invoice Date' => 'Teljesítés dátuma',
+ 'Invoice Date missing!' => 'Teljesítés dátuma hiányzik!',
+ 'Invoice Number' => 'Számlaszám',
+ 'Invoice Number missing!' => 'Számlaszám hiányzik!',
+ 'Invoice deleted!' => 'Számla törölve!',
+ 'Item' => 'Tétel',
+ 'Item not on file!' => 'A tétel nincs az adatbázisban!',
+ 'Jan' => 'Jan.',
+ 'January' => 'Január',
+ 'Jul' => 'Júl.',
+ 'July' => 'Július',
+ 'Jun' => 'Jún.',
+ 'June' => 'Június',
+ 'Language' => 'Nyelv',
+ 'Mar' => 'Márc.',
+ 'March' => 'Március',
+ 'May' => 'Máj.',
+ 'May ' => 'Május',
+ 'Memo' => 'Memo',
+ 'Message' => 'Üzenet',
+ 'Month(s)' => 'Hónap',
+ 'Next Date' => 'Következõ Dátum',
+ 'Notes' => 'Megjegyzés',
+ 'Nov' => 'Nov.',
+ 'November' => 'November',
+ 'Number' => 'Szám',
+ 'Number missing in Row' => 'Ebbõl a sorból hiányzik a szám:',
+ 'OH' => 'Rezsi',
+ 'Oct' => 'Okt.',
+ 'October' => 'Október',
+ 'Order Date missing!' => 'Rendelés dátuma hiányzik!',
+ 'Order Number' => 'Rendelés száma',
+ 'Order Number missing!' => 'Rendelés száma hiányzik!',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'BeRendSzám',
+ 'Packing List' => 'Szállítólevél',
+ 'Packing List Date missing!' => 'Szállítólevél dátuma hiányzik!',
+ 'Packing List Number missing!' => 'Szállítólevél száma hiányzik!',
+ 'Part' => 'Cikk',
+ 'Payment date missing!' => 'Pénzmozgás dátuma hiányzik!',
+ 'Payments' => 'Kifizetések',
+ 'Phone' => 'Telefon',
+ 'Pick List' => 'Kiszedési Lista',
+ 'Post' => 'Rögzítés',
+ 'Post as new' => 'Rögzítés új tranzakcióként',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Ár',
+ 'Print' => 'Nyomtatás',
+ 'Printed' => 'Kinyomtatva',
+ 'Project' => 'Munkaszám',
+ 'Project not on file!' => 'Projekt nincs meg',
+ 'Purchase Order' => 'Beszerzési rendelés',
+ 'Qty' => 'Menny.',
+ 'Queue' => 'Sor',
+ 'Queued' => 'Sorba állítva',
+ 'Quotation' => 'Ajánlat',
+ 'Quotation Date missing!' => 'Hiányzó Ajánlat dátum!',
+ 'Quotation Number missing!' => 'Hiányzó Ajánlat szám!',
+ 'Recd' => 'Kapott',
+ 'Record in' => 'Feladás:',
+ 'Recurring Transaction' => 'Ismétlõdõ Tranzakció',
+ 'Reference' => 'Hivatkozás',
+ 'Remaining' => 'Maradék',
+ 'Repeat' => 'Ismétlés',
+ 'Required by' => 'Leszállítás',
+ 'SKU' => 'Idegen azonosító',
+ 'Sales Order' => 'Vevõrendelés',
+ 'Save Schedule' => 'Ütemezés mentése',
+ 'Schedule' => 'Ütemezés',
+ 'Scheduled' => 'Ütemezve',
+ 'Screen' => 'Képernyõre',
+ 'Select from one of the names below' => 'Válasszon ki egyet az alábbi nevek közül',
+ 'Select from one of the projects below' => 'Válasszon a projektek közül',
+ 'Select items' => 'Cikk választás',
+ 'Select txt, postscript or PDF!' => 'Válasszon txt, postscript vagy PDF formát!',
+ 'Sep' => 'Szept.',
+ 'September' => 'Szeptember',
+ 'Serial No.' => 'Sorozat szám',
+ 'Service' => 'Szolgáltatás',
+ 'Ship' => 'Szállítás',
+ 'Ship to' => 'Szállítási cím',
+ 'Shipping Address' => 'Szállítási cím',
+ 'Sort by' => 'Rendezve',
+ 'Source' => 'Bizonylatszám',
+ 'Startdate' => 'Kezdõ dátum',
+ 'State/Province' => 'Állam/Régió',
+ 'Subject' => 'Tárgy',
+ 'Subtotal' => 'Részösszeg',
+ 'Tax Included' => 'Adót tartalmazza',
+ 'Text' => 'Szöveg',
+ 'To' => 'Meddig:',
+ 'Total' => 'Végösszeg',
+ 'Translation not on file!' => 'A fordítás nincs meg!',
+ 'Unit' => 'Egység',
+ 'Update' => 'Frissítés',
+ 'Vendor' => 'Szállító',
+ 'Vendor Number' => 'Szállítószám',
+ 'Vendor missing!' => 'Szállító hiányzik!',
+ 'Vendor not on file!' => 'Szállító nincs az adatbázisban!',
+ 'Warning!' => 'Figyelmeztetés',
+ 'Week(s)' => 'Hét',
+ 'What type of item is this?' => 'Ez milyen típusú tétel?',
+ 'Work Order' => 'Munka rendelés',
+ 'Year(s)' => 'Év',
+ 'Yes' => 'Igen',
+ 'You are posting an existing transaction!' => 'Ön egy létezõ tranzakciót módosít!',
+ 'You are printing and posting an existing transaction!' => 'Ön egy létezõ tranzakciót rögzít és nyomtat!',
+ 'You are printing and saving an existing order' => 'Ön egy létezõ rendelést rögzít és nyomtat!',
+ 'You are printing and saving an existing quotation' => 'Ön egy létezõ ajánlatot rögzít és nyomtat!',
+ 'You are saving an existing order' => 'Ön egy létezõ rendelést módosít!',
+ 'You are saving an existing quotation' => 'Ön egy létezõ ajánlatot módosít',
+ 'Zip/Postal Code' => 'Irányítószám',
+ 'ea' => 'db',
+ 'for' => 'for',
+ 'posted!' => 'rögzítve!',
+ 'sent' => 'elküldve',
+ 'time(s)' => '-szor',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'folytatás' => 'continue',
+ 'törlés' => 'delete',
+ 'Ütemezés_törlése' => 'delete_schedule',
+ 'rögzítés' => 'post',
+ 'rögzítés_új_tranzakcióként' => 'post_as_new',
+ 'beszerzési_rendelés' => 'purchase_order',
+ 'Ütemezés_mentése' => 'save_schedule',
+ 'Ütemezés' => 'schedule',
+ 'frissítés' => 'update',
+ 'igen' => 'yes',
+};
+
+1;
+
diff --git a/locale/hu/is b/locale/hu/is
new file mode 100755
index 00000000..7115d17b
--- /dev/null
+++ b/locale/hu/is
@@ -0,0 +1,275 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Account' => 'Számla',
+ 'Accounting Menu' => 'Menü',
+ 'Add Purchase Order' => 'Új beszerzési rendelés',
+ 'Add Quotation' => 'Új ajánlat',
+ 'Add Request for Quotation' => 'Ajánlat kérés',
+ 'Add Sales Invoice' => 'Új vevõszámla',
+ 'Add Sales Order' => 'Új vevõrendelés',
+ 'Address' => 'Cím',
+ 'Amount' => 'Összeg',
+ 'Apr' => 'Ápr.',
+ 'April' => 'Április',
+ 'Are you sure you want to delete Invoice Number' => 'Biztos, hogy törölni akarja? Számlaszám:',
+ 'Attachment' => 'Csatolás',
+ 'Aug' => 'Aug.',
+ 'August' => 'Augusztus',
+ 'Bcc' => 'Titkos másolat',
+ 'Billing Address' => 'Számlázási cím',
+ 'Bin' => 'Raktárhely',
+ 'Bin List' => 'Tároló helyek',
+ 'Business' => 'Üzletág',
+ 'Cannot delete invoice!' => 'A partnerszámlát nem lehet törölni!',
+ 'Cannot post invoice for a closed period!' => 'A lezárt idõszakban nem lehet számlát kiállítani!',
+ 'Cannot post invoice!' => 'A partnerszámlát nem lehet kiállítani',
+ 'Cannot post payment for a closed period!' => 'A lezárt idõszakban nem lehet fizetést rögzíteni!',
+ 'Cc' => 'Másolat',
+ 'City' => 'Város',
+ 'Company Name' => 'Vállalat neve',
+ 'Confirm!' => 'Megerõsítés:',
+ 'Contact' => 'Kapcsolat',
+ 'Continue' => 'Folytatás',
+ 'Copies' => 'Másolatok',
+ 'Country' => 'Ország',
+ 'Credit Limit' => 'Hitelkeret',
+ 'Currency' => 'Deviza',
+ 'Customer' => 'Vevõ',
+ 'Customer Number' => 'Ügyfél szám',
+ 'Customer missing!' => 'Vevõ hiányzik!',
+ 'Customer not on file!' => 'A vevõ hiányzik az adatbázisból!',
+ 'Date' => 'Dátum',
+ 'Day(s)' => 'Nap(ok)',
+ 'Dec' => 'Dec.',
+ 'December' => 'December',
+ 'Delete' => 'Törlés',
+ 'Delete Schedule' => 'Ütemezés Törlése',
+ 'Delivery Date' => 'Szállítás dátuma',
+ 'Department' => 'Részleg',
+ 'Description' => 'Szöveges leírás',
+ 'Due Date' => 'Esedékesség',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'E-mail cím hiányzik!',
+ 'E-mail message' => 'E-mail üzenet',
+ 'E-mailed' => 'E-mail elküldve',
+ 'Edit Sales Invoice' => 'Vevõszámla módosítása',
+ 'Every' => 'Minden',
+ 'Exch' => 'Árf',
+ 'Exchange Rate' => 'Átváltási árfolyam',
+ 'Exchange rate for payment missing!' => 'A fizetett összeg átváltási árfolyama hiányzik!',
+ 'Exchange rate missing!' => 'Átváltási árfolyam hiányzik!',
+ 'Extended' => 'Összeg',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb.',
+ 'February' => 'Február',
+ 'For' => 'Ismétlés',
+ 'Group' => 'Csoport',
+ 'Group by' => 'Csoportosítva',
+ 'In-line' => 'Beágyazva',
+ 'Include Payment' => 'Pénzmozgással együtt',
+ 'Internal Notes' => 'Belsõ megjegyzés',
+ 'Invoice' => 'Számla',
+ 'Invoice Date' => 'Teljesítés dátuma',
+ 'Invoice Date missing!' => 'Teljesítés dátuma hiányzik!',
+ 'Invoice Number' => 'Számlaszám',
+ 'Invoice Number missing!' => 'Számlaszám hiányzik!',
+ 'Invoice deleted!' => 'Számla törölve!',
+ 'Item' => 'Sor',
+ 'Item not on file!' => 'A tétel nincs az adatbázisban!',
+ 'Jan' => 'Jan.',
+ 'January' => 'Január',
+ 'Jul' => 'Júl.',
+ 'July' => 'Július',
+ 'Jun' => 'Jún.',
+ 'June' => 'Június',
+ 'Mar' => 'Márc.',
+ 'March' => 'Március',
+ 'May' => 'Máj.',
+ 'May ' => 'Május',
+ 'Memo' => 'Memo',
+ 'Message' => 'Üzenet',
+ 'Month(s)' => 'Hónap',
+ 'Next Date' => 'Következõ Dátum',
+ 'Notes' => 'Megjegyzés',
+ 'Nov' => 'Nov.',
+ 'November' => 'November',
+ 'Number' => 'CikkSzám',
+ 'Number missing in Row' => 'Ebbõl a sorból hiányzik a szám:',
+ 'OH' => 'Rezsi',
+ 'Oct' => 'Okt.',
+ 'October' => 'Október',
+ 'Order Date missing!' => 'Rendelés dátuma hiányzik!',
+ 'Order Number' => 'VevõRendSzám',
+ 'Order Number missing!' => 'Rendelés száma hiányzik!',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'SzállRendSzám',
+ 'Packing List' => 'Szállítólevél',
+ 'Packing List Date missing!' => 'Szállítólevél dátuma hiányzik!',
+ 'Packing List Number missing!' => 'Szállítólevél száma hiányzik!',
+ 'Part' => 'Cikk',
+ 'Payment date missing!' => 'Pénzmozgás dátuma hiányzik!',
+ 'Payments' => 'Kifizetések',
+ 'Phone' => 'Telefon',
+ 'Pick List' => 'Kiszedési Lista',
+ 'Post' => 'Rögzítés',
+ 'Post as new' => 'Rögzítés új tranzakcióként',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Ár',
+ 'Print' => 'Nyomtatás',
+ 'Print and Post' => 'Számlát nyomtat',
+ 'Print and Post as new' => 'Újat Nyomtat és Rögzít',
+ 'Printed' => 'Kinyomtatva',
+ 'Project' => 'Munkaszám',
+ 'Project not on file!' => 'Projekt nincs meg',
+ 'Purchase Order' => 'Beszerzési rendelés',
+ 'Qty' => 'Menny.',
+ 'Queue' => 'Nyomtató sor',
+ 'Queued' => 'Sorbaállítva',
+ 'Quotation' => 'Ajánlat',
+ 'Quotation Date missing!' => 'Ajánlati dátum hiány',
+ 'Quotation Number missing!' => 'Ajánlati szám hiány',
+ 'Recd' => 'Kapott',
+ 'Record in' => 'Feladás:',
+ 'Recurring Transaction' => 'Ismétlõdõ Tranzakció',
+ 'Reference' => 'Hivatkozás',
+ 'Remaining' => 'Maradék',
+ 'Repeat' => 'Ismétlés',
+ 'Required by' => 'Leszállítás',
+ 'SKU' => 'Idegen azonosító',
+ 'Sales Order' => 'Vevõrendelés',
+ 'Salesperson' => 'Ügynök',
+ 'Save Schedule' => 'Ütemezés mentése',
+ 'Schedule' => 'Ütemezés',
+ 'Scheduled' => 'Ütemezve',
+ 'Screen' => 'Képernyõre',
+ 'Select a Printer!' => 'Válasszon Nyomtatót',
+ 'Select from one of the names below' => 'Válasszon ki egyet az alábbi nevek közül',
+ 'Select from one of the projects below' => 'Válasszon a projektek közül',
+ 'Select items' => 'Válasszon tételt',
+ 'Select postscript or PDF!' => 'Válassza ki a postscript vagy a PDF formátumot!',
+ 'Select txt, postscript or PDF!' => 'Válasszon TXT, postcript vagy PDF',
+ 'Sep' => 'Szept.',
+ 'September' => 'Szeptember',
+ 'Serial No.' => 'Sorozat szám',
+ 'Service' => 'Szolgáltatás',
+ 'Ship' => 'Szállítás',
+ 'Ship to' => 'Szállítási cím',
+ 'Ship via' => 'Fizetési mód',
+ 'Shipping Address' => 'Szállítási cím',
+ 'Shipping Point' => 'Szállítási pont',
+ 'Sort by' => 'Rendezve',
+ 'Source' => 'Bizonylatszám',
+ 'Startdate' => 'Kezdõ dátum',
+ 'State/Province' => 'állam/megye',
+ 'Subject' => 'Tárgy',
+ 'Subtotal' => 'Részösszeg',
+ 'Tax Included' => 'Adót tartalmazza',
+ 'Text' => 'Szöveg',
+ 'To' => 'Meddig:',
+ 'Total' => 'Végösszeg',
+ 'Trade Discount' => 'Árengedmény',
+ 'Translation not on file!' => 'Tranzakció nincs meg',
+ 'Unit' => 'Egység',
+ 'Update' => 'Frissítés',
+ 'Vendor Number' => 'Szállító szám',
+ 'Vendor not on file!' => 'Szállító nincs az adatbázisban!',
+ 'Warning!' => 'Figyelmeztetés',
+ 'Week(s)' => 'Hét',
+ 'What type of item is this?' => 'Ez milyen típusú tétel?',
+ 'Work Order' => 'Munka rendelés',
+ 'Year(s)' => 'Év',
+ 'Yes' => 'Igen',
+ 'You are posting an existing transaction!' => 'Ön egy létezõ tranzakciót módosít!',
+ 'You are printing and posting an existing transaction!' => 'Ön egy létezõ tranzakciót rögzít és nyomtat!',
+ 'You are printing and saving an existing order' => 'Ön egy létezõ rendelést rögzít és nyomtat!',
+ 'You are printing and saving an existing quotation' => 'Ön egy létezõ ajánlatot rögzít és nyomtat!',
+ 'You are saving an existing order' => 'Ön egy létezõ rendelést módosít!',
+ 'You are saving an existing quotation' => 'Ön egy létezõ ajánlatot módosít',
+ 'Zip/Postal Code' => 'Irányítószám',
+ 'ea' => 'db',
+ 'for' => 'for',
+ 'posted!' => 'rögzítve',
+ 'sent' => 'elküldve',
+ 'time(s)' => 'szor',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'folytatás' => 'continue',
+ 'törlés' => 'delete',
+ 'Ütemezés_törlése' => 'delete_schedule',
+ 'e_mail' => 'e_mail',
+ 'rögzítés' => 'post',
+ 'rögzítés_új_tranzakcióként' => 'post_as_new',
+ 'nyomtatás' => 'print',
+ 'számlát_nyomtat' => 'print_and_post',
+ 'Újat_nyomtat_és_rögzít' => 'print_and_post_as_new',
+ 'vevõrendelés' => 'sales_order',
+ 'Ütemezés_mentése' => 'save_schedule',
+ 'Ütemezés' => 'schedule',
+ 'szállítási_cím' => 'ship_to',
+ 'frissítés' => 'update',
+ 'igen' => 'yes',
+};
+
+1;
+
diff --git a/locale/hu/jc b/locale/hu/jc
new file mode 100755
index 00000000..65dc85ea
--- /dev/null
+++ b/locale/hu/jc
@@ -0,0 +1,158 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Menü',
+ 'Add Stores Card' => 'Új Tároló Kártya',
+ 'Add Time Card' => 'Új Idõ Kártya',
+ 'Allocated' => 'Lefoglalva',
+ 'Amount' => 'Összeg',
+ 'Are you sure you want to delete time card for' => 'Biztosan ki akarja törölni az idõ kártyát',
+ 'Cannot add stores card for a completed job!' => 'Befejezett munkához nem adhatok tároló kártyát!',
+ 'Cannot add time card for a completed job!' => 'Befejezett munkához nem adhatok idõ kártyát!',
+ 'Cannot change stores card for a completed job!' => 'Befejezett munkánál nem változtatható a tároló kártya!',
+ 'Cannot change time card for a completed job!' => 'Befejezett munkánál nem változtatható az idõ kártya!',
+ 'Cannot delete time card!' => 'Nem tudom törölni az idõ kártyát!',
+ 'Cannot save stores card for a closed period!' => 'Lezárt periódushoz nem adható tároló kártya!',
+ 'Cannot save stores card!' => 'Nem tudom elmenteni a tároló kártyát!',
+ 'Cannot save time card for a closed period!' => 'Lezárt periódushoz nem adható idõ kártya!',
+ 'Cannot save time card!' => 'Nem tudom elmenteni az idõ kártyát!',
+ 'Chargeable' => 'Fizetõs',
+ 'Chargeout Rate' => 'Chargeout Rate',
+ 'Clocked' => 'Blokkolva',
+ 'Closed' => 'Lezárt',
+ 'Confirm!' => 'Megerõsítés:',
+ 'Continue' => 'Folytatás',
+ 'Cost' => 'Költség',
+ 'Current' => '0-30',
+ 'Date' => 'Dátum',
+ 'Date missing!' => 'Dátum hiányzik',
+ 'Date worked' => 'Dátum',
+ 'Delete' => 'Törlés',
+ 'Description' => 'Szöveges leírás',
+ 'Edit Time Card' => 'Idõ Kártya Módosítás',
+ 'Employee' => 'Alkalmazott',
+ 'Friday' => 'Péntek',
+ 'From' => 'Mikortól:',
+ 'ID' => 'Azonosító',
+ 'Include in Report' => 'Oszlopok:',
+ 'Job Description' => 'Job Leírás',
+ 'Job Name' => 'Job Név',
+ 'Job Number' => 'Job Szám',
+ 'Job Number missing!' => 'Hiányzó Job Szám',
+ 'Labor Code' => 'Munka Kód',
+ 'Labor Code missing!' => 'Munka Kód hiányzik!',
+ 'Monday' => 'Hétfõ',
+ 'Month' => 'Hónap',
+ 'No Employees on file!' => 'Nincs Alkalmazott a fájlban!',
+ 'No Labor codes on file!' => 'Nincs Munka Kód a fájlban!',
+ 'No Parts on file!' => 'Nincs Árucikk a fájlban!',
+ 'No Services on file!' => 'Nincs Szolgáltatás a fájlban!',
+ 'No open Jobs!' => 'Nincs nyitott Job!',
+ 'No open Projects!' => 'Nincs nyitott Projekt',
+ 'Non-chargeable' => 'Nem számlázandó',
+ 'Notes' => 'Megjegyzés',
+ 'Open' => 'Nyitott',
+ 'PDF' => 'PDF',
+ 'Part Number' => 'Cikkszám',
+ 'Period' => 'Idõszak',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Nyomtatás',
+ 'Print and Save' => 'Nyomtat és Ment',
+ 'Print and Save as new' => 'Újként Nyomtat és Ment',
+ 'Printed' => 'Kinyomtatva',
+ 'Project Name' => 'Project Megnevezés',
+ 'Project Number' => 'Projektszám',
+ 'Project Number missing!' => 'Projektszám hiányzik!',
+ 'Project/Job Name' => 'Projekt/Job Megnevezés',
+ 'Project/Job Number' => 'Projekt/Job Szám',
+ 'Qty' => 'Menny.',
+ 'Quarter' => 'Negyedév',
+ 'Queue' => 'Sor',
+ 'Queued' => 'Sorba állítva',
+ 'Saturday' => 'Szombat',
+ 'Save' => 'Mentés',
+ 'Save as new' => 'Mentés újként',
+ 'Screen' => 'Képernyõre',
+ 'Select a Printer!' => 'Válasszon Nyomtatót',
+ 'Select postscript or PDF!' => 'Válassza ki a postscript vagy a PDF formátumot!',
+ 'Service Code' => 'Szolgáltatási Kód',
+ 'Service Code missing!' => 'Hiányzó Szolgáltatás Kód',
+ 'Service/Labor Code' => 'Szolgáltatás/Munka Kód',
+ 'Startdate' => 'Kezdõ dátum',
+ 'Stores Card' => 'Tároló Kártya',
+ 'Stores Card saved!' => 'Tároló Kártya elmentve!',
+ 'Stores Cards' => 'Tároló Kártyák',
+ 'Subtotal' => 'Részösszeg',
+ 'Sunday' => 'Vasárnap',
+ 'Thursday' => 'Csütörtök',
+ 'Time' => 'Idõ',
+ 'Time Card' => 'Idõ Kártya',
+ 'Time Card deleted!' => 'Idõ Kártya törölve!',
+ 'Time Card saved!' => 'Idõ Kártya elmentve!',
+ 'Time Cards' => 'Idõ Kártyák',
+ 'Time In' => 'Beléspés ideje',
+ 'Time Out' => 'Kilépés ideje',
+ 'To' => 'Meddig:',
+ 'Total' => 'Végösszeg',
+ 'Tuesday' => 'Kedd',
+ 'Update' => 'Frissítés',
+ 'Warning!' => 'Figyelmeztetés',
+ 'Wednesday' => 'Szerda',
+ 'Year' => 'Év',
+ 'Yes' => 'Igen',
+ 'You are printing and saving an existing transaction!' => 'Ön létezõ tranzakciót rögzít és nyomtat!',
+ 'You are saving an existing transaction!' => 'Ön egy létezõ tranzakciót rögzít!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'Új_tároló_kártya' => 'add_stores_card',
+ 'Új_idõ_kártya' => 'add_time_card',
+ 'folytatás' => 'continue',
+ 'törlés' => 'delete',
+ 'nyomtatás' => 'print',
+ 'nyomtat_és_ment' => 'print_and_save',
+ 'Újként_nyomtat_és_ment' => 'print_and_save_as_new',
+ 'mentés' => 'save',
+ 'mentés_újként' => 'save_as_new',
+ 'frissítés' => 'update',
+ 'igen' => 'yes',
+};
+
+1;
+
diff --git a/locale/hu/locales.pl b/locale/hu/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/hu/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/hu/login b/locale/hu/login
new file mode 100755
index 00000000..60198d22
--- /dev/null
+++ b/locale/hu/login
@@ -0,0 +1,27 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Access Denied!' => 'Hozzáférés megtagadva!',
+ 'Company' => 'Társaság',
+ 'Continue' => 'Folytatás',
+ 'Dataset is newer than version!' => 'A Cégadatbázis verziója újabb, mint a programé!',
+ 'Incorrect Dataset version!' => 'Érvénytelen adatbázisverzió!',
+ 'Login' => 'Belépés',
+ 'Name' => 'Név',
+ 'Password' => 'Jelszó',
+ 'Upgrading to Version' => 'Verzió karbantartás',
+ 'Version' => 'Verzió',
+ 'You did not enter a name!' => 'Nem írt be nevet!',
+ 'done' => 'elvégezve',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ 'belépés' => 'login',
+};
+
+1;
+
diff --git a/locale/hu/menu b/locale/hu/menu
new file mode 100755
index 00000000..eb2f4267
--- /dev/null
+++ b/locale/hu/menu
@@ -0,0 +1,146 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'AP' => 'SZÁLLÍTÓK',
+ 'AP Aging' => 'SzállítóLejáratiLista',
+ 'AP Transaction' => 'SzállítóTranzakció',
+ 'AR' => 'VEVÕK',
+ 'AR Aging' => 'VevõLejáratiLista',
+ 'AR Transaction' => 'VevõTranzakció',
+ 'Accounting Menu' => 'Menü',
+ 'Add Account' => 'ÚjSzámla',
+ 'Add Assembly' => 'ÚjGyártottTermék',
+ 'Add Business' => 'ÚjÜzletág',
+ 'Add Customer' => 'ÚjVevõ',
+ 'Add Department' => 'ÚjOsztály',
+ 'Add Employee' => 'ÚjMunkatárs',
+ 'Add GIFI' => 'ÚjGyûjtõkód',
+ 'Add Group' => 'ÚjTételCsoport',
+ 'Add Labor/Overhead' => 'ÚjMunkamûvelet',
+ 'Add Language' => 'ÚjNyelv',
+ 'Add Part' => 'ÚjCikk',
+ 'Add Pricegroup' => 'ÚjÁrCsoport',
+ 'Add Project' => 'ÚjProjekt',
+ 'Add SIC' => 'ÚjOsztályozóKód',
+ 'Add Service' => 'ÚjSzolgáltatás',
+ 'Add Time Card' => 'ÚjIdõKártya',
+ 'Add Transaction' => 'ÚjPénzügyiTranzakció',
+ 'Add Vendor' => 'ÚjSzállító',
+ 'Add Warehouse' => 'ÚjRaktár',
+ 'All Items' => 'MindenTétel',
+ 'Assemblies' => 'GyártottTermékek',
+ 'Audit Control' => 'AuditKontroll',
+ 'Backup' => 'BiztonságiMásolat',
+ 'Balance Sheet' => 'Mérleg',
+ 'Batch Printing' => 'KÉSÕBB_NYOMTAT',
+ 'Bin List' => 'TárolóHelyek',
+ 'Bin Lists' => 'PolcLista',
+ 'Cash' => 'PÉNZMOZGÁSOK',
+ 'Chart of Accounts' => 'Számlatükör',
+ 'Check' => 'Csekk',
+ 'Components' => 'BeépülõKomponensek',
+ 'Consolidate' => 'Konszolidál',
+ 'Customers' => 'Vevõadatok',
+ 'Defaults' => 'Alapértelmezések',
+ 'Departments' => 'Osztályok',
+ 'Description' => 'SzövegesLeírás',
+ 'Employees' => 'Munkatársak',
+ 'General Ledger' => 'KÖNYVELÉS',
+ 'Generate' => 'Generál',
+ 'Goods & Services' => 'ÁRU_SZOLGÁLTATÁS',
+ 'Groups' => 'TételCsoportok',
+ 'HR' => 'Személyzti',
+ 'HTML Templates' => 'HTML sablonok',
+ 'History' => 'Történet',
+ 'Income Statement' => 'Eredménykimutatás',
+ 'Invoice' => 'Számla',
+ 'LaTeX Templates' => 'LaTeX_Sablonok',
+ 'Labor/Overhead' => 'Munkamûvelet',
+ 'Language' => 'Nyelv',
+ 'List Accounts' => 'SzámlákListázása',
+ 'List Businesses' => 'ÜzletágLista',
+ 'List Departments' => 'OsztályLista',
+ 'List GIFI' => 'GyûjtõkódLista',
+ 'List Languages' => 'NyelvLista',
+ 'List Projects' => 'ProjektLista',
+ 'List SIC' => 'OsztályozóKódLista',
+ 'List Warehouses' => 'RaktárLista',
+ 'Logout' => 'Kilépés',
+ 'New Window' => 'Új ablak',
+ 'Non-taxable' => 'Adómentes',
+ 'Open' => 'Nyitott',
+ 'Order Entry' => 'RENDELÉSEK',
+ 'Outstanding' => 'KifizetetlenSzámlák',
+ 'POS' => 'Nyugta',
+ 'POS Invoice' => 'Egyszerûsített számla',
+ 'Packing List' => 'Szállítólevél',
+ 'Packing Lists' => 'CsomagolásLista',
+ 'Parts' => 'Cikkek',
+ 'Payment' => 'Kifizetés',
+ 'Payments' => 'CsoportosKifizetések',
+ 'Pick List' => 'KiszedésLista',
+ 'Pick Lists' => 'KiszedésiListák',
+ 'Preferences' => 'Beállítások',
+ 'Pricegroups' => 'ÁrCsoportok',
+ 'Print' => 'Nyomtatás',
+ 'Projects' => 'PROJEKTEK',
+ 'Purchase Order' => 'ÚjSzállRendelés',
+ 'Purchase Orders' => 'SzállRendLista',
+ 'Quotation' => 'ÚjAjánlat',
+ 'Quotations' => 'AJÁNLATOK',
+ 'RFQ' => 'ÚjAjánlatKérés',
+ 'RFQs' => 'AjánlatKérésLista',
+ 'Receipt' => 'Befizetés',
+ 'Receipts' => 'CsoportosBefizetések',
+ 'Receive' => 'Beszállítás',
+ 'Reconciliation' => 'Egyeztetés',
+ 'Recurring Transactions' => 'Ütemezések',
+ 'Reports' => 'Jelentések',
+ 'Requirements' => 'SzükségletSzámítás',
+ 'SIC' => 'OsztályozóKód',
+ 'Sale' => 'Eladás',
+ 'Sales Invoice' => 'Vevõszámla',
+ 'Sales Invoices' => 'VevõSzámla',
+ 'Sales Order' => 'ÚjVevõRendelés',
+ 'Sales Orders' => 'VevõRendLista',
+ 'Save to File' => 'Mentés_File-ba',
+ 'Search' => 'Keresés',
+ 'Send by E-Mail' => 'Küldés_E-mail-ben',
+ 'Services' => 'Szolgáltatások',
+ 'Ship' => 'Kiszállítás',
+ 'Shipping' => 'SZÁLLÍTÁS',
+ 'Statement' => 'Kimutatás',
+ 'Stock Assembly' => 'GyártottTermékBevét',
+ 'Stylesheet' => 'Stíluslap',
+ 'System' => 'TÖRZSADATOK',
+ 'Tax collected' => 'FizetendõÁFA',
+ 'Tax paid' => 'LevonhatóÁFA',
+ 'Taxes' => 'Adók',
+ 'Text Templates' => 'Szöveges minta',
+ 'Time Card' => 'IdõKártya',
+ 'Time Cards' => 'IdõKártyaLista',
+ 'Transactions' => 'TranzakcióLista',
+ 'Transfer' => 'SzámlákKözött',
+ 'Transfer Inventory' => 'KészletÁthelyezés',
+ 'Translations' => 'Fordítások',
+ 'Trial Balance' => 'FõkönyviKivonat',
+ 'Type of Business' => 'ÜzletágTípus',
+ 'Vendor Invoice' => 'Beszerzési számla',
+ 'Vendors' => 'Szállítók',
+ 'Version' => 'Verzió',
+ 'Warehouses' => 'Raktárak',
+ 'Work Order' => 'MunkaRendelés',
+ 'Work Orders' => 'GyártásiRendelés',
+ 'Yearend' => 'Évzárás',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/hu/oe b/locale/hu/oe
new file mode 100755
index 00000000..56b4f0d5
--- /dev/null
+++ b/locale/hu/oe
@@ -0,0 +1,382 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Menü',
+ 'Add Exchange Rate' => 'Új Váltószám',
+ 'Add Purchase Order' => 'Új_Szállító_Rendelés',
+ 'Add Quotation' => 'Új ajánlat',
+ 'Add Request for Quotation' => 'Ajánlat kérés',
+ 'Add Sales Invoice' => 'Rendelésbõl Vevõ Számla',
+ 'Add Sales Order' => 'Új Vevõrendelés',
+ 'Add Vendor Invoice' => 'Új_Szállító_Számla',
+ 'Address' => 'Cím',
+ 'Amount' => 'Összeg',
+ 'Apr' => 'Ápr.',
+ 'April' => 'Április',
+ 'Are you sure you want to delete Order Number' => 'Biztos, hogy törölni akarja? Megrendelésszám:',
+ 'Are you sure you want to delete Quotation Number' => 'Biztos abban, hogy törölni akarja az Ajánlat számot',
+ 'Attachment' => 'Csatolás',
+ 'Aug' => 'Aug.',
+ 'August' => 'Augusztus',
+ 'Bcc' => 'Titkos másolat',
+ 'Billing Address' => 'Számlázási cím',
+ 'Bin' => 'Raktárhely',
+ 'Bin List' => 'Tároló helyek',
+ 'Business' => 'Üzletág',
+ 'C' => 'L.',
+ 'Cannot delete order!' => 'A rendelést nem lehet törölni!',
+ 'Cannot delete quotation!' => 'Nem lehet törölni az ajánlatot!',
+ 'Cannot save order!' => 'A rendelést nem lehet elmenteni!',
+ 'Cannot save quotation!' => 'Nem lehet elmenteni az ajánlatot!',
+ 'Cc' => 'Másolat',
+ 'City' => 'Város',
+ 'Closed' => 'Lezárt',
+ 'Company Name' => 'Vállalat neve',
+ 'Confirm!' => 'Megerõsítés:',
+ 'Consolidate Orders' => 'Rendelések_Összevonása',
+ 'Consolidate Purchase Orders' => 'Szállító_Rendelések_Összevonása',
+ 'Consolidate Sales Orders' => 'Vevõ_Rendelések_Összevonása',
+ 'Contact' => 'Kapcsolat',
+ 'Continue' => 'Folytatás',
+ 'Copies' => 'Másolatok',
+ 'Cost' => 'Költség',
+ 'Could not save!' => 'Nem tudom elmenteni!',
+ 'Could not transfer Inventory!' => 'Nem tudom a készletet áthelyezni!',
+ 'Country' => 'Ország',
+ 'Credit Limit' => 'Hitelkeret',
+ 'Curr' => 'Dev',
+ 'Currency' => 'Deviza',
+ 'Current' => '0-30',
+ 'Customer' => 'Vevõ',
+ 'Customer Number' => 'Ügyfél szám',
+ 'Customer missing!' => 'Vevõ hiányzik!',
+ 'Customer not on file!' => 'A vevõ hiányzik az adatbázisból!',
+ 'Date' => 'Dátum',
+ 'Date Received' => 'Beérkezés dátuma',
+ 'Date received missing!' => 'Beérkezés dátuma hiányzik!',
+ 'Day(s)' => 'Nap(ok)',
+ 'Dec' => 'Dec.',
+ 'December' => 'December',
+ 'Delete' => 'Törlés',
+ 'Delete Schedule' => 'Ütemezés Törlése',
+ 'Delivery Date' => 'SzállDátum',
+ 'Department' => 'Részleg',
+ 'Description' => 'Szöveges leírás',
+ 'Done' => 'Elvégezve',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'E-mail cím hiányzik!',
+ 'E-mail message' => 'E-mail üzenet',
+ 'E-mailed' => 'E-mail elküldve',
+ 'Edit Purchase Order' => 'Szállító Rendelés Módosítása',
+ 'Edit Quotation' => 'Ajánlat Módosítás',
+ 'Edit Request for Quotation' => 'Ajánla Kérés Módosítás',
+ 'Edit Sales Order' => 'Vevõrendelés módosítása',
+ 'Employee' => 'Alkalmazott',
+ 'Every' => 'Minden',
+ 'Exchange Rate' => 'Átváltási árfolyam',
+ 'Exchange rate missing!' => 'Átváltási árfolyam hiányzik!',
+ 'Extended' => 'Összeg',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb.',
+ 'February' => 'Február',
+ 'For' => 'Ismétlés',
+ 'From' => 'Mikortól:',
+ 'From Warehouse' => 'Raktárból',
+ 'Generate Orders' => 'Rendelés Generálás',
+ 'Generate Purchase Orders' => 'Szállító Rendelés Generálás',
+ 'Generate Purchase Orders from Sales Order' => 'Értékesítésbõl Beszerzési Rendelés Generálás',
+ 'Generate Sales Order' => 'Vevõ Rendelés Generálás',
+ 'Generate Sales Order from Purchase Orders' => 'Beszerzési Rendelésbõl Értékesitési Rendelés Generálás',
+ 'Group' => 'Csoport',
+ 'Group by' => 'Csoportosítva',
+ 'ID' => 'Azonosító',
+ 'In-line' => 'Beágyazva',
+ 'Include Payment' => 'Pénzmozgással együtt',
+ 'Include in Report' => 'Oszlopok:',
+ 'Internal Notes' => 'Belsõ megjegyzés',
+ 'Inventory saved!' => 'Készlet elmentve!',
+ 'Inventory transferred!' => 'Készlet áthelyezve',
+ 'Invoice' => 'Számla',
+ 'Invoice Date missing!' => 'Teljesítés dátuma hiányzik!',
+ 'Invoice Number missing!' => 'Számlaszám hiányzik!',
+ 'Item' => 'Sor',
+ 'Item not on file!' => 'A tétel nincs az adatbázisban!',
+ 'Jan' => 'Jan.',
+ 'January' => 'Január',
+ 'Jul' => 'Júl.',
+ 'July' => 'Július',
+ 'Jun' => 'Jún.',
+ 'June' => 'Június',
+ 'Lead' => 'Átfutás',
+ 'Manager' => 'Manager',
+ 'Mar' => 'Márc.',
+ 'March' => 'Március',
+ 'May' => 'Máj.',
+ 'May ' => 'Május',
+ 'Message' => 'Üzenet',
+ 'Month' => 'Hónap',
+ 'Month(s)' => 'Hónap',
+ 'Next Date' => 'Következõ Dátum',
+ 'No.' => 'Sz.',
+ 'Notes' => 'Megjegyzés',
+ 'Nothing entered!' => 'Nincs adat!',
+ 'Nothing selected!' => 'Nincs semmi kiválasztva!',
+ 'Nothing to transfer!' => 'Nincs mit áthelyezni!',
+ 'Nov' => 'Nov.',
+ 'November' => 'November',
+ 'Number' => 'CikkSzám',
+ 'Number missing in Row' => 'Ebbõl a sorból hiányzik a szám:',
+ 'O' => 'Ny.',
+ 'OH' => 'Rezsi',
+ 'Oct' => 'Okt.',
+ 'October' => 'Október',
+ 'Open' => 'Nyitott',
+ 'Order' => 'Rendelés',
+ 'Order Date' => 'Rendelés dátuma',
+ 'Order Date missing!' => 'Rendelés dátuma hiányzik!',
+ 'Order Number' => 'VevõRendSzám',
+ 'Order Number missing!' => 'Rendelés száma hiányzik!',
+ 'Order deleted!' => 'Rendelés törölve!',
+ 'Order generation failed!' => 'Sikertelen Rendelés Generálás!',
+ 'Order saved!' => 'Rendelés elmentve!',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'SzállRendSzám',
+ 'Packing List' => 'Szállítólevél',
+ 'Packing List Date missing!' => 'Szállítólevél dátuma hiányzik!',
+ 'Packing List Number missing!' => 'Szállítólevél száma hiányzik!',
+ 'Part' => 'Cikk',
+ 'Part Number' => 'Cikkszám',
+ 'Period' => 'Idõszak',
+ 'Phone' => 'Telefon',
+ 'Pick List' => 'Kiszedési Lista',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Ár',
+ 'Print' => 'Nyomtatás',
+ 'Print and Save' => 'Nyomtat és Ment',
+ 'Print and Save as new' => 'Újként Nyomtat és Ment',
+ 'Printed' => 'Kinyomtatva',
+ 'Project' => 'Munkaszám',
+ 'Project not on file!' => 'Projekt nincs meg',
+ 'Purchase Order' => 'Szállítói rendelés',
+ 'Purchase Orders' => 'Szállítói rendelések',
+ 'Qty' => 'Menny.',
+ 'Quarter' => 'Negyedév',
+ 'Queue' => 'Nyomtató sor',
+ 'Queued' => 'Sorbaállítva',
+ 'Quotation' => 'Ajánlat',
+ 'Quotation ' => 'Ajánlat',
+ 'Quotation Date' => 'Ajánlat Dátum',
+ 'Quotation Date missing!' => 'Ajánlati dátum hiány',
+ 'Quotation Number' => 'Ajánlat szám',
+ 'Quotation Number missing!' => 'Ajánlati szám hiány',
+ 'Quotation deleted!' => 'Ajánlat törölve',
+ 'Quotations' => 'Ajánlatok',
+ 'RFQ' => 'Ajánlat kérés',
+ 'RFQ ' => 'Ajánlat kérés',
+ 'RFQ Number' => 'Ajánlat kérés szám',
+ 'Recd' => 'Kapott',
+ 'Receive Merchandise' => 'Áru érkeztetés',
+ 'Recurring Transaction' => 'Ismétlõdõ Tranzakció',
+ 'Reference' => 'Hivatkozás',
+ 'Remaining' => 'Maradék',
+ 'Repeat' => 'Ismétlés',
+ 'Req' => 'Kérés',
+ 'Request for Quotation' => 'Ajánlat Kérés',
+ 'Request for Quotations' => 'Ajánlat kérés',
+ 'Required by' => 'Kért Dátum',
+ 'SKU' => 'Idegen azonosító',
+ 'Sales Invoice' => 'Vevõszámla',
+ 'Sales Order' => 'Vevõrendelés',
+ 'Sales Orders' => 'Vevõrendelések',
+ 'Salesperson' => 'Ügynök',
+ 'Save' => 'Mentés',
+ 'Save Schedule' => 'Ütemezés mentése',
+ 'Save as new' => 'Mentés újként',
+ 'Schedule' => 'Ütemezés',
+ 'Scheduled' => 'Ütemezve',
+ 'Screen' => 'Képernyõre',
+ 'Select Vendor' => 'Válasszon Szállítót',
+ 'Select a Printer!' => 'Válasszon Nyomtatót',
+ 'Select from one of the names below' => 'Válasszon ki egyet az alábbi nevek közül',
+ 'Select from one of the projects below' => 'Válasszon a projektek közül',
+ 'Select items' => 'Válasszon tételt',
+ 'Select postscript or PDF!' => 'Válassza ki a postscript vagy a PDF formátumot!',
+ 'Select txt, postscript or PDF!' => 'Válasszon TXT, postcript vagy PDF',
+ 'Sep' => 'Szept.',
+ 'September' => 'Szeptember',
+ 'Serial No.' => 'Sorozat szám',
+ 'Service' => 'Szolgáltatás',
+ 'Ship' => 'Szállítás',
+ 'Ship Merchandise' => 'Áru kiszállítás',
+ 'Ship to' => 'Szállítási cím',
+ 'Ship via' => 'Fizetési mód',
+ 'Shipping Address' => 'Szállítási cím',
+ 'Shipping Date' => 'Szállítási dátum',
+ 'Shipping Date missing!' => 'Hiányzó szállítási dátum',
+ 'Shipping Point' => 'Szállítási pont',
+ 'Sort by' => 'Rendezve',
+ 'Startdate' => 'Kezdõ dátum',
+ 'State/Province' => 'állam/megye',
+ 'Subject' => 'Tárgy',
+ 'Subtotal' => 'Részösszeg',
+ 'Tax' => 'Adó',
+ 'Tax Included' => 'Adót tartalmazza',
+ 'Terms' => 'Fizetés határidõ',
+ 'Text' => 'Szöveg',
+ 'To' => 'Meddig:',
+ 'To Warehouse' => 'Raktárba',
+ 'Total' => 'Végösszeg',
+ 'Trade Discount' => 'Árengedmény',
+ 'Transfer' => 'Számlák közötti',
+ 'Transfer Inventory' => 'Készlet Áthelyezés',
+ 'Transfer from' => 'Áthelyezés innen',
+ 'Transfer to' => 'Áthelyezés ide',
+ 'Translation not on file!' => 'Tranzakció nincs meg',
+ 'Unit' => 'Egység',
+ 'Update' => 'Frissítés',
+ 'Valid until' => 'Érvényesség',
+ 'Vendor' => 'Szállító',
+ 'Vendor Invoice' => 'Beszerzési számla',
+ 'Vendor Number' => 'Szállító szám',
+ 'Vendor missing!' => 'Szállító hiányzik!',
+ 'Vendor not on file!' => 'Szállító nincs az adatbázisban!',
+ 'Warehouse' => 'Raktár',
+ 'Warning!' => 'Figyelmeztetés',
+ 'Week(s)' => 'Hét',
+ 'What type of item is this?' => 'Ez milyen típusú tétel?',
+ 'Work Order' => 'Munka rendelés',
+ 'Year' => 'Év',
+ 'Year(s)' => 'Év',
+ 'Yes' => 'Igen',
+ 'You are posting an existing transaction!' => 'Ön egy létezõ tranzakciót módosít!',
+ 'You are printing and posting an existing transaction!' => 'Ön egy létezõ tranzakciót rögzít és nyomtat!',
+ 'You are printing and saving an existing order' => 'Ön egy létezõ rendelést rögzít és nyomtat!',
+ 'You are printing and saving an existing quotation' => 'Ön egy létezõ ajánlatot rögzít és nyomtat!',
+ 'You are saving an existing order' => 'Ön egy létezõ rendelést módosít!',
+ 'You are saving an existing quotation' => 'Ön egy létezõ ajánlatot módosít',
+ 'Zip/Postal Code' => 'Irányítószám',
+ 'days' => 'nap',
+ 'ea' => 'db',
+ 'for' => 'for',
+ 'sent' => 'elküldve',
+ 'time(s)' => '-szor',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'rendelések_Összevonása' => 'consolidate_orders',
+ 'folytatás' => 'continue',
+ 'törlés' => 'delete',
+ 'Ütemezés_törlése' => 'delete_schedule',
+ 'elvégezve' => 'done',
+ 'e_mail' => 'e_mail',
+ 'rendelés_generálás' => 'generate_orders',
+ 'szállító_rendelés_generálás' => 'generate_purchase_orders',
+ 'vevõ_rendelés_generálás' => 'generate_sales_order',
+ 'nyomtatás' => 'print',
+ 'nyomtat_és_ment' => 'print_and_save',
+ 'Újként_nyomtat_és_ment' => 'print_and_save_as_new',
+ 'szállítói_rendelés' => 'purchase_order',
+ 'ajánlat' => 'quotation',
+ 'ajánlat' => 'quotation_',
+ 'ajánlat_kérés' => 'rfq',
+ 'ajánlat_kérés' => 'rfq_',
+ 'vevõszámla' => 'sales_invoice',
+ 'vevõrendelés' => 'sales_order',
+ 'mentés' => 'save',
+ 'Ütemezés_mentése' => 'save_schedule',
+ 'mentés_újként' => 'save_as_new',
+ 'Ütemezés' => 'schedule',
+ 'válasszon_szállítót' => 'select_vendor',
+ 'szállítási_cím' => 'ship_to',
+ 'számlák_közötti' => 'transfer',
+ 'frissítés' => 'update',
+ 'beszerzési_számla' => 'vendor_invoice',
+ 'igen' => 'yes',
+};
+
+1;
+
diff --git a/locale/hu/pe b/locale/hu/pe
new file mode 100755
index 00000000..41b260f1
--- /dev/null
+++ b/locale/hu/pe
@@ -0,0 +1,168 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Menü',
+ 'Active' => 'Aktív',
+ 'Add' => 'Új',
+ 'Add Group' => 'Új csoport',
+ 'Add Job' => 'Új Munkamûvelet',
+ 'Add Pricegroup' => 'Új Árcsoport',
+ 'Add Project' => 'Új Projekt',
+ 'Address' => 'Cím',
+ 'All' => 'Összes',
+ 'Amount' => 'Összeg',
+ 'As of' => 'As of',
+ 'Assembly' => 'Szerelvény',
+ 'Assembly stocked!' => 'Szerelvényt raktárra vettem!',
+ 'Bin' => 'Raktárhely',
+ 'Cannot stock Assembly!' => 'Nem tudom a szerelvényt raktárra venni!',
+ 'Completed' => 'Befejezve',
+ 'Continue' => 'Folytatás',
+ 'Current' => '0-30',
+ 'Customer' => 'Vevõ',
+ 'Customer missing!' => 'Vevõ hiányzik!',
+ 'Customer not on file!' => 'A vevõ hiányzik az adatbázisból!',
+ 'Date' => 'Dátum',
+ 'Delete' => 'Törlés',
+ 'Description' => 'Szöveges leírás',
+ 'Description Translations' => 'Megnevezés Fordítások',
+ 'Detail' => 'Részletek',
+ 'Edit Description Translations' => 'Megnevezés Fordítások Módosítás',
+ 'Edit Group' => 'Csoport módosítása',
+ 'Edit Job' => 'Munkamûvelet Módosítás',
+ 'Edit Pricegroup' => 'Árcsoport Módosítás',
+ 'Edit Project' => 'Projekt módosítása',
+ 'Employee' => 'Alkalmazott',
+ 'Enddate' => 'Végdátum',
+ 'Failed to save order!' => 'Nem sikerült a rendelést elmenteni!',
+ 'From' => 'Mikortól:',
+ 'Generate Sales Orders' => 'Értékesítés Rendelés Generálás',
+ 'Group' => 'Csoport',
+ 'Group Translations' => 'Csoport Fordítások',
+ 'Group deleted!' => 'Csoport törölve!',
+ 'Group missing!' => 'Csoport hiányzik!',
+ 'Group saved!' => 'Csoport elmentve!',
+ 'Groups' => 'Csoportok',
+ 'Inactive' => 'Inaktív',
+ 'Income' => 'Árbevétel',
+ 'Job' => 'Mûvelet',
+ 'Job Number' => 'Job Szám',
+ 'Job deleted!' => 'Mûvelet törölve!',
+ 'Job saved!' => 'Mûvelet rögzítve!',
+ 'Jobs' => 'Mûveletek',
+ 'Language' => 'Nyelv',
+ 'Languages not defined!' => 'Nincs definiált nyelv!',
+ 'Link Accounts' => 'Számlakapcsolatok',
+ 'List Price' => 'Listaár',
+ 'Month' => 'Hónap',
+ 'No open Projects!' => 'Nincs nyitott Projekt',
+ 'Notes' => 'Megjegyzés',
+ 'Nothing selected!' => 'Nincs semmi kiválasztva!',
+ 'Number' => 'Szám',
+ 'Orders generated!' => 'Rendelések generálva!',
+ 'Orphaned' => 'Tranzakció nélküli',
+ 'Part Number' => 'Cikkszám',
+ 'Period' => 'Idõszak',
+ 'Pricegroup' => 'Árcsoport',
+ 'Pricegroup deleted!' => 'Árcsoport törölve!',
+ 'Pricegroup missing!' => 'Árcsoport hiányzik!',
+ 'Pricegroup saved!' => 'Árcsoport elmentve!',
+ 'Pricegroups' => 'Árcsoportok',
+ 'Production' => 'Gyártás',
+ 'Project' => 'Projekt',
+ 'Project Description Translations' => 'Projekt Megnevezés Fordítás',
+ 'Project Number' => 'Projektszám',
+ 'Project deleted!' => 'Projekt törölve!',
+ 'Project saved!' => 'Projekt elmentve!',
+ 'Projects' => 'Projektek',
+ 'Qty' => 'Menny.',
+ 'Quarter' => 'Negyedév',
+ 'Save' => 'Mentés',
+ 'Select Customer' => 'Válasszon Vevõt',
+ 'Select from one of the names below' => 'Válasszon ki egyet az alábbi nevek közül',
+ 'Sell Price' => 'Eladási ár',
+ 'Service Code' => 'Szolgáltatási Kód',
+ 'Startdate' => 'Kezdõ dátum',
+ 'Stock Finished Goods' => 'Stock Finished Goods',
+ 'Summary' => 'Összegzés',
+ 'Tax' => 'Adó',
+ 'To' => 'Meddig:',
+ 'Transaction Dates' => 'Tranzakció dátum',
+ 'Translation' => 'Fordítás',
+ 'Translation deleted!' => 'Fordítás törölve!',
+ 'Translations saved!' => 'Fordítás elmentve!',
+ 'Unit' => 'Egység',
+ 'Update' => 'Frissítés',
+ 'Updated' => 'Frissítve',
+ 'Vendor' => 'Szállító',
+ 'Vendor not on file!' => 'Szállító nincs az adatbázisban!',
+ 'Weight' => 'Súly',
+ 'Year' => 'Év',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'Új_csoport' => 'add_group',
+ 'Új_munkamûvelet' => 'add_job',
+ 'Új_Árcsoport' => 'add_pricegroup',
+ 'Új_projekt' => 'add_project',
+ 'folytatás' => 'continue',
+ 'törlés' => 'delete',
+ 'Értékesítés_rendelés_generálás' => 'generate_sales_orders',
+ 'mentés' => 'save',
+ 'válasszon_vevõt' => 'select_customer',
+ 'frissítés' => 'update',
+};
+
+1;
+
diff --git a/locale/hu/pos b/locale/hu/pos
new file mode 100755
index 00000000..fefe729e
--- /dev/null
+++ b/locale/hu/pos
@@ -0,0 +1,83 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Menü',
+ 'Add POS Invoice' => 'Új Nyugta',
+ 'Amount' => 'Összeg',
+ 'Business' => 'Üzletág',
+ 'Cannot post transaction!' => 'A tranzakciót nem lehet rögzíteni!',
+ 'Change' => 'Visszajáró',
+ 'Continue' => 'Folytatás',
+ 'Credit Limit' => 'Hitelkeret',
+ 'Currency' => 'Deviza',
+ 'Current' => '0-30',
+ 'Customer' => 'Vevõ',
+ 'Customer missing!' => 'Vevõ hiányzik!',
+ 'Delete' => 'Törlés',
+ 'Department' => 'Részleg',
+ 'Description' => 'Szöveges leírás',
+ 'Edit POS Invoice' => 'Nyugta módosítása',
+ 'Exchange Rate' => 'Átváltási árfolyam',
+ 'Exchange rate missing!' => 'Átváltási árfolyam hiányzik!',
+ 'Extended' => 'Összeg',
+ 'From' => 'Mikortól:',
+ 'Language' => 'Nyelv',
+ 'Memo' => 'Memo',
+ 'Month' => 'Hónap',
+ 'Number' => 'Szám',
+ 'Open' => 'Nyitott',
+ 'Period' => 'Idõszak',
+ 'Post' => 'Rögzítés',
+ 'Posted!' => 'Rögzítve',
+ 'Price' => 'Ár',
+ 'Print' => 'Nyomtatás',
+ 'Print and Post' => 'Számlát nyomtat',
+ 'Printed' => 'Kinyomtatva',
+ 'Qty' => 'Menny.',
+ 'Quarter' => 'Negyedév',
+ 'Receipts' => 'Befizetések',
+ 'Record in' => 'Feladás:',
+ 'Remaining' => 'Maradék',
+ 'Salesperson' => 'Ügynök',
+ 'Screen' => 'Képernyõre',
+ 'Select a Printer!' => 'Válasszon Nyomtatót',
+ 'Source' => 'Bizonylatszám',
+ 'Subtotal' => 'Részösszeg',
+ 'Tax Included' => 'Adót tartalmazza',
+ 'To' => 'Meddig:',
+ 'Total' => 'Végösszeg',
+ 'Trade Discount' => 'Árengedmény',
+ 'Unit' => 'Egység',
+ 'Update' => 'Frissítés',
+ 'Year' => 'Év',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'folytatás' => 'continue',
+ 'törlés' => 'delete',
+ 'rögzítés' => 'post',
+ 'nyomtatás' => 'print',
+ 'számlát_nyomtat' => 'print_and_post',
+ 'frissítés' => 'update',
+};
+
+1;
+
diff --git a/locale/hu/ps b/locale/hu/ps
new file mode 100755
index 00000000..e4ad7768
--- /dev/null
+++ b/locale/hu/ps
@@ -0,0 +1,401 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'AP Aging' => 'Szállító lejárati lista',
+ 'AP Outstanding' => 'Kifizetetlen szállítószámlák',
+ 'AP Transaction' => 'Szállító tranzakció',
+ 'AP Transactions' => 'Szállító tranzakciók',
+ 'AR Aging' => 'Vevõ lejárati lista',
+ 'AR Outstanding' => 'Kifizetetlen vevõszámlák',
+ 'AR Transaction' => 'Vevõ tranzakció',
+ 'AR Transactions' => 'Vevõ tranzakciók',
+ 'Account' => 'Számla',
+ 'Account Number' => 'Számlaszám',
+ 'Accounting Menu' => 'Menü',
+ 'Accounts' => 'Számlák',
+ 'Accrual' => 'Pénzforgalom',
+ 'Add AP Transaction' => 'Új Szállító Tranzakció',
+ 'Add AR Transaction' => 'Új Vevõ Tranzakció',
+ 'Add POS Invoice' => 'Új Nyugta',
+ 'Add Purchase Order' => 'Új beszerzési rendelés',
+ 'Add Quotation' => 'Új ajánlat',
+ 'Add Request for Quotation' => 'Ajánlat kérés',
+ 'Add Sales Invoice' => 'Új vevõszámla',
+ 'Add Sales Order' => 'Új vevõrendelés',
+ 'Address' => 'Cím',
+ 'Aged' => 'Korosítás',
+ 'Aged Overdue' => 'Késedelem korosítása',
+ 'All Accounts' => 'Minden Számla',
+ 'Amount' => 'Összeg',
+ 'Amount Due' => 'Esedékes összeg',
+ 'Apr' => 'Ápr.',
+ 'April' => 'Április',
+ 'Are you sure you want to delete Invoice Number' => 'Biztos, hogy törölni akarja? Számlaszám:',
+ 'Are you sure you want to delete Transaction' => 'Biztos, hogy törölni akarja? Tranzakció:',
+ 'Attachment' => 'Csatolás',
+ 'Aug' => 'Aug.',
+ 'August' => 'Augusztus',
+ 'Balance' => 'Egyenleg',
+ 'Balance Sheet' => 'Mérleg',
+ 'Bcc' => 'Titkos másolat',
+ 'Billing Address' => 'Számlázási cím',
+ 'Bin' => 'Raktárhely',
+ 'Bin List' => 'Tároló helyek',
+ 'Business' => 'Üzletág',
+ 'Cannot delete invoice!' => 'A partnerszámlát nem lehet törölni!',
+ 'Cannot delete transaction!' => 'A tranzakciót nem lehet törölni!',
+ 'Cannot post invoice for a closed period!' => 'A lezárt idõszakban nem lehet számlát kiállítani!',
+ 'Cannot post invoice!' => 'A partnerszámlát nem lehet kiállítani',
+ 'Cannot post payment for a closed period!' => 'A lezárt idõszakban nem lehet fizetést rögzíteni!',
+ 'Cannot post transaction for a closed period!' => 'A lezárt idõszakban nem lehet tranzakciót rögzíteni!!',
+ 'Cannot post transaction!' => 'A tranzakciót nem lehet rögzíteni!',
+ 'Cash' => 'Pénzmozgások',
+ 'Cc' => 'Másolat',
+ 'Change' => 'Visszajáró',
+ 'Check' => 'Csekk',
+ 'City' => 'Város',
+ 'Closed' => 'Lezárt',
+ 'Company Name' => 'Vállalat neve',
+ 'Compare to' => 'Összehasonlítva:',
+ 'Confirm!' => 'Megerõsítés:',
+ 'Contact' => 'Kapcsolat',
+ 'Continue' => 'Folytatás',
+ 'Copies' => 'Másolatok',
+ 'Country' => 'Ország',
+ 'Credit' => 'Követel',
+ 'Credit Limit' => 'Hitelkeret',
+ 'Curr' => 'Dev',
+ 'Currency' => 'Deviza',
+ 'Current' => '0-30',
+ 'Current Earnings' => 'Nyereség',
+ 'Customer' => 'Vevõ',
+ 'Customer Number' => 'Ügyfél szám',
+ 'Customer missing!' => 'Vevõ hiányzik!',
+ 'Customer not on file!' => 'A vevõ hiányzik az adatbázisból!',
+ 'Date' => 'Dátum',
+ 'Date Paid' => 'Fizetés napja',
+ 'Day(s)' => 'Nap(ok)',
+ 'Debit' => 'Tartozik',
+ 'Dec' => 'Dec.',
+ 'December' => 'December',
+ 'Decimalplaces' => 'Tizedeshelyek',
+ 'Delete' => 'Törlés',
+ 'Delete Schedule' => 'Ütemezés Törlése',
+ 'Delivery Date' => 'Szállítás dátuma',
+ 'Department' => 'Részleg',
+ 'Description' => 'Szöveges leírás',
+ 'Detail' => 'Részletek',
+ 'Due Date' => 'Esedékesség',
+ 'Due Date missing!' => 'Esedékesség hiányzik!',
+ 'E-mail' => 'E-mail',
+ 'E-mail Statement to' => 'Kimutatás küldése e-mail-ben:',
+ 'E-mail address missing!' => 'E-mail cím hiányzik!',
+ 'E-mail message' => 'E-mail üzenet',
+ 'E-mailed' => 'E-mail elküldve',
+ 'Edit AP Transaction' => 'Szállító Tranzakció Módosítás',
+ 'Edit AR Transaction' => 'Vevõ Tranzakció Módosítás',
+ 'Edit POS Invoice' => 'Nyugta módosítása',
+ 'Edit Sales Invoice' => 'Vevõszámla módosítása',
+ 'Employee' => 'Alkalmazott',
+ 'Every' => 'Minden',
+ 'Exch' => 'Árf',
+ 'Exchange Rate' => 'Átváltási árfolyam',
+ 'Exchange rate for payment missing!' => 'A fizetett összeg átváltási árfolyama hiányzik!',
+ 'Exchange rate missing!' => 'Átváltási árfolyam hiányzik!',
+ 'Extended' => 'Összeg',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb.',
+ 'February' => 'Február',
+ 'For' => 'Ismétlés',
+ 'From' => 'Mikortól:',
+ 'GIFI' => 'Gyûjtõkód',
+ 'Group' => 'Csoport',
+ 'Group by' => 'Csoportosítva',
+ 'Heading' => 'Fejléc',
+ 'ID' => 'Azonosító',
+ 'In-line' => 'Beágyazva',
+ 'Include Exchange Rate Difference' => 'Árfolyamkülönbséget tartalmazza',
+ 'Include Payment' => 'Pénzmozgással együtt',
+ 'Include in Report' => 'Oszlopok:',
+ 'Income Statement' => 'Eredménykimutatás',
+ 'Internal Notes' => 'Belsõ megjegyzés',
+ 'Invoice' => 'Számla',
+ 'Invoice Date' => 'Teljesítés dátuma',
+ 'Invoice Date missing!' => 'Teljesítés dátuma hiányzik!',
+ 'Invoice Number' => 'Számlaszám',
+ 'Invoice Number missing!' => 'Számlaszám hiányzik!',
+ 'Invoice deleted!' => 'Számla törölve!',
+ 'Item' => 'Tétel',
+ 'Item not on file!' => 'A tétel nincs az adatbázisban!',
+ 'Jan' => 'Jan.',
+ 'January' => 'Január',
+ 'Jul' => 'Júl.',
+ 'July' => 'Július',
+ 'Jun' => 'Jún.',
+ 'June' => 'Június',
+ 'Language' => 'Nyelv',
+ 'Manager' => 'Manager',
+ 'Mar' => 'Márc.',
+ 'March' => 'Március',
+ 'May' => 'Máj.',
+ 'May ' => 'Május',
+ 'Memo' => 'Memo',
+ 'Message' => 'Üzenet',
+ 'Method' => 'Módszer',
+ 'Month' => 'Hónap',
+ 'Month(s)' => 'Hónap',
+ 'N/A' => 'N/A',
+ 'Next Date' => 'Következõ Dátum',
+ 'No.' => 'Sz.',
+ 'Non-taxable Purchases' => 'Adómentes Beszerzések',
+ 'Non-taxable Sales' => 'Adómentes Eladások',
+ 'Notes' => 'Megjegyzés',
+ 'Nothing selected!' => 'Nincs semmi kiválasztva!',
+ 'Nothing to print!' => 'Nincs mit nyomtatni!',
+ 'Nov' => 'Nov.',
+ 'November' => 'November',
+ 'Number' => 'Szám',
+ 'Number missing in Row' => 'Ebbõl a sorból hiányzik a szám:',
+ 'OH' => 'Rezsi',
+ 'Oct' => 'Okt.',
+ 'October' => 'Október',
+ 'Open' => 'Nyitott',
+ 'Order' => 'Rendelés',
+ 'Order Date missing!' => 'Rendelés dátuma hiányzik!',
+ 'Order Number' => 'Rendelés száma',
+ 'Order Number missing!' => 'Rendelés száma hiányzik!',
+ 'Overdue' => 'Késedelem',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'BeRendSzám',
+ 'Packing List' => 'Szállítólevél',
+ 'Packing List Date missing!' => 'Szállítólevél dátuma hiányzik!',
+ 'Packing List Number missing!' => 'Szállítólevél száma hiányzik!',
+ 'Paid' => 'Fizetve',
+ 'Part' => 'Cikk',
+ 'Payment date missing!' => 'Pénzmozgás dátuma hiányzik!',
+ 'Payments' => 'Kifizetések',
+ 'Period' => 'Idõszak',
+ 'Phone' => 'Telefon',
+ 'Pick List' => 'Kiszedési Lista',
+ 'Post' => 'Rögzítés',
+ 'Post as new' => 'Rögzítés új tranzakcióként',
+ 'Posted!' => 'Rögzítve',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Ár',
+ 'Print' => 'Nyomtatás',
+ 'Print and Post' => 'Számlát nyomtat',
+ 'Print and Post as new' => 'Újat Nyomtat és Rögzít',
+ 'Printed' => 'Kinyomtatva',
+ 'Project' => 'Munkaszám',
+ 'Project Number' => 'Munkaszám',
+ 'Project Transactions' => 'Munkaszám Tranzakciók',
+ 'Project not on file!' => 'Projekt nincs meg',
+ 'Purchase Order' => 'Beszerzési rendelés',
+ 'Qty' => 'Menny.',
+ 'Quarter' => 'Negyedév',
+ 'Queue' => 'Nyomtató sor',
+ 'Queued' => 'Sorbaállítva',
+ 'Quotation' => 'Ajánlat',
+ 'Quotation Date missing!' => 'Ajánlati dátum hiány',
+ 'Quotation Number missing!' => 'Ajánlati szám hiány',
+ 'Recd' => 'Kapott',
+ 'Receipt' => 'Befizetés',
+ 'Receipts' => 'Befizetések',
+ 'Record in' => 'Feladás:',
+ 'Recurring Transaction' => 'Ismétlõdõ Tranzakció',
+ 'Reference' => 'Hivatkozás',
+ 'Remaining' => 'Maradék',
+ 'Repeat' => 'Ismétlés',
+ 'Report for' => 'Jelentés:',
+ 'Required by' => 'Leszállítás',
+ 'SKU' => 'Idegen azonosító',
+ 'Sales Invoice.' => 'Vevõ Számla',
+ 'Sales Order' => 'Vevõrendelés',
+ 'Salesperson' => 'Ügynök',
+ 'Save Schedule' => 'Ütemezés mentése',
+ 'Schedule' => 'Ütemezés',
+ 'Scheduled' => 'Ütemezve',
+ 'Screen' => 'Képernyõre',
+ 'Select a Printer!' => 'Válasszon Nyomtatót',
+ 'Select all' => 'Mindent kijelöl',
+ 'Select from one of the names below' => 'Válasszon ki egyet az alábbi nevek közül',
+ 'Select from one of the projects below' => 'Válasszon a projektek közül',
+ 'Select items' => 'Válasszon tételt',
+ 'Select payment' => 'Válasszon fizetési módot',
+ 'Select postscript or PDF!' => 'Válassza ki a postscript vagy a PDF formátumot!',
+ 'Select txt, postscript or PDF!' => 'Válasszon TXT, postcript vagy PDF',
+ 'Sep' => 'Szept.',
+ 'September' => 'Szeptember',
+ 'Serial No.' => 'Sorozat szám',
+ 'Service' => 'Szolgáltatás',
+ 'Ship' => 'Szállítás',
+ 'Ship to' => 'Szállítási cím',
+ 'Ship via' => 'Fizetési mód',
+ 'Shipping Address' => 'Szállítási cím',
+ 'Shipping Point' => 'Szállítási pont',
+ 'Sort by' => 'Rendezve',
+ 'Source' => 'Bizonylatszám',
+ 'Standard' => 'Sztenderd',
+ 'Startdate' => 'Kezdõ dátum',
+ 'State/Province' => 'állam/megye',
+ 'Statement' => 'Kimutatás',
+ 'Statement sent to' => 'Kimutatás elküldve:',
+ 'Statements sent to printer!' => 'Kimutatás kinyomtatva!',
+ 'Subject' => 'Tárgy',
+ 'Subtotal' => 'Részösszeg',
+ 'Summary' => 'Összegzés',
+ 'Tax' => 'Adó',
+ 'Tax Included' => 'Adót tartalmazza',
+ 'Tax collected' => 'Fizetendõ ÁFA',
+ 'Tax paid' => 'Levonható ÁFA',
+ 'Text' => 'Szöveg',
+ 'Till' => 'Kassza',
+ 'To' => 'Meddig:',
+ 'Total' => 'Végösszeg',
+ 'Trade Discount' => 'Árengedmény',
+ 'Transaction' => 'Tranzakció',
+ 'Transaction deleted!' => 'Tranzakció törölve!',
+ 'Transaction posted!' => 'Tranzakció rögzítve!',
+ 'Translation not on file!' => 'Tranzakció nincs meg',
+ 'Trial Balance' => 'Fõkönyvi kivonat',
+ 'Unit' => 'Egység',
+ 'Update' => 'Frissítés',
+ 'Vendor' => 'Szállító',
+ 'Vendor Invoice.' => 'Vevõ Számla',
+ 'Vendor Number' => 'Szállító szám',
+ 'Vendor missing!' => 'Szállító hiányzik!',
+ 'Vendor not on file!' => 'Szállító nincs az adatbázisban!',
+ 'Warning!' => 'Figyelmeztetés',
+ 'Week(s)' => 'Hét',
+ 'What type of item is this?' => 'Ez milyen típusú tétel?',
+ 'Work Order' => 'Munka rendelés',
+ 'Year' => 'Év',
+ 'Year(s)' => 'Év',
+ 'Yes' => 'Igen',
+ 'You are posting an existing transaction!' => 'Ön egy létezõ tranzakciót módosít!',
+ 'You are printing and posting an existing transaction!' => 'Ön egy létezõ tranzakciót rögzít és nyomtat!',
+ 'You are printing and saving an existing order' => 'Ön egy létezõ rendelést rögzít és nyomtat!',
+ 'You are printing and saving an existing quotation' => 'Ön egy létezõ ajánlatot rögzít és nyomtat!',
+ 'You are saving an existing order' => 'Ön egy létezõ rendelést módosít!',
+ 'You are saving an existing quotation' => 'Ön egy létezõ ajánlatot módosít',
+ 'Zip/Postal Code' => 'Irányítószám',
+ 'as at' => 'Fordulónap:',
+ 'ea' => 'db',
+ 'for' => 'for',
+ 'for Period' => 'Idõszak:',
+ 'posted!' => 'rögzítve',
+ 'sent' => 'elküldve',
+ 'time(s)' => '-szor',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'szállító_tranzakció' => 'ap_transaction',
+ 'vevõ_tranzakció' => 'ar_transaction',
+ 'folytatás' => 'continue',
+ 'törlés' => 'delete',
+ 'Ütemezés_törlése' => 'delete_schedule',
+ 'e_mail' => 'e_mail',
+ 'rögzítés' => 'post',
+ 'rögzítés_új_tranzakcióként' => 'post_as_new',
+ 'nyomtatás' => 'print',
+ 'számlát_nyomtat' => 'print_and_post',
+ 'Újat_nyomtat_és_rögzít' => 'print_and_post_as_new',
+ 'vevõ_számla' => 'sales_invoice_',
+ 'vevõrendelés' => 'sales_order',
+ 'Ütemezés_mentése' => 'save_schedule',
+ 'Ütemezés' => 'schedule',
+ 'mindent_kijelöl' => 'select_all',
+ 'szállítási_cím' => 'ship_to',
+ 'frissítés' => 'update',
+ 'vevõ_számla' => 'vendor_invoice_',
+ 'igen' => 'yes',
+};
+
+1;
+
diff --git a/locale/hu/pw b/locale/hu/pw
new file mode 100755
index 00000000..cb1ef45d
--- /dev/null
+++ b/locale/hu/pw
@@ -0,0 +1,15 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Continue' => 'Folytatás',
+ 'Password' => 'Jelszó',
+ 'Session expired!' => 'Lejárt az idõ!',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'folytatás' => 'continue',
+};
+
+1;
+
diff --git a/locale/hu/rc b/locale/hu/rc
new file mode 100755
index 00000000..46d9c98d
--- /dev/null
+++ b/locale/hu/rc
@@ -0,0 +1,81 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Account' => 'Számla',
+ 'Accounting Menu' => 'Menü',
+ 'Apr' => 'Ápr.',
+ 'April' => 'Április',
+ 'Aug' => 'Aug.',
+ 'August' => 'Augusztus',
+ 'Balance' => 'Egyenleg',
+ 'Beginning Balance' => 'Nyitóegyenleg',
+ 'Cleared' => 'Kitörölve',
+ 'Continue' => 'Folytatás',
+ 'Credit' => 'Követel',
+ 'Current' => '0-30',
+ 'Date' => 'Dátum',
+ 'Debit' => 'Tartozik',
+ 'Dec' => 'Dec.',
+ 'December' => 'December',
+ 'Description' => 'Szöveges leírás',
+ 'Detail' => 'Részletek',
+ 'Difference' => 'Eltérés',
+ 'Done' => 'Elvégezve',
+ 'Feb' => 'Feb.',
+ 'February' => 'Február',
+ 'From' => 'Mikortól:',
+ 'Include Exchange Rate Difference' => 'Árfolyamkülönbséget tartalmazza',
+ 'Jan' => 'Jan.',
+ 'January' => 'Január',
+ 'Jul' => 'Júl.',
+ 'July' => 'Július',
+ 'Jun' => 'Jún.',
+ 'June' => 'Június',
+ 'Mar' => 'Márc.',
+ 'March' => 'Március',
+ 'May' => 'Máj.',
+ 'May ' => 'Május',
+ 'Month' => 'Hónap',
+ 'Nov' => 'Nov.',
+ 'November' => 'November',
+ 'Oct' => 'Okt.',
+ 'October' => 'Október',
+ 'Out of balance!' => 'Az egyenleg nem stimmel!',
+ 'Outstanding' => 'Kifizetetlen',
+ 'Period' => 'Idõszak',
+ 'Quarter' => 'Negyedév',
+ 'R' => 'E',
+ 'Reconciliation' => 'Egyeztetés',
+ 'Reconciliation Report' => 'Egyeztetõ Lista',
+ 'Select all' => 'Mindent kijelöl',
+ 'Sep' => 'Szept.',
+ 'September' => 'Szeptember',
+ 'Source' => 'Bizonylatszám',
+ 'Statement Balance' => 'Kimutatás egyenlege',
+ 'Summary' => 'Összegzés',
+ 'To' => 'Meddig:',
+ 'Update' => 'Frissítés',
+ 'Year' => 'Év',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'folytatás' => 'continue',
+ 'elvégezve' => 'done',
+ 'mindent_kijelöl' => 'select_all',
+ 'frissítés' => 'update',
+};
+
+1;
+
diff --git a/locale/hu/rp b/locale/hu/rp
new file mode 100755
index 00000000..7d2e37ad
--- /dev/null
+++ b/locale/hu/rp
@@ -0,0 +1,207 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'AP Aging' => 'Szállító lejárati lista',
+ 'AR Aging' => 'Vevõ lejárati lista',
+ 'Account' => 'Számla',
+ 'Account Number' => 'Számlaszám',
+ 'Accounting Menu' => 'Menü',
+ 'Accounts' => 'Számlák',
+ 'Accrual' => 'Pénzforgalom',
+ 'Address' => 'Cím',
+ 'Aged' => 'Korosítás',
+ 'Aged Overdue' => 'Késedelem korosítása',
+ 'All Accounts' => 'Minden Számla',
+ 'Amount' => 'Összeg',
+ 'Apr' => 'Ápr.',
+ 'April' => 'Április',
+ 'Attachment' => 'Csatolás',
+ 'Aug' => 'Aug.',
+ 'August' => 'Augusztus',
+ 'Balance' => 'Egyenleg',
+ 'Balance Sheet' => 'Mérleg',
+ 'Bcc' => 'Titkos másolat',
+ 'Cash' => 'Pénzmozgások',
+ 'Cc' => 'Másolat',
+ 'Compare to' => 'Összehasonlítva:',
+ 'Continue' => 'Folytatás',
+ 'Copies' => 'Másolatok',
+ 'Credit' => 'Követel',
+ 'Curr' => 'Dev',
+ 'Current' => '0-30',
+ 'Current Earnings' => 'Nyereség',
+ 'Customer' => 'Vevõ',
+ 'Customer not on file!' => 'A vevõ hiányzik az adatbázisból!',
+ 'Date' => 'Dátum',
+ 'Day(s)' => 'Nap(ok)',
+ 'Debit' => 'Tartozik',
+ 'Dec' => 'Dec.',
+ 'December' => 'December',
+ 'Decimalplaces' => 'Tizedeshelyek',
+ 'Delete Schedule' => 'Ütemezés Törlése',
+ 'Department' => 'Részleg',
+ 'Description' => 'Szöveges leírás',
+ 'Detail' => 'Részletek',
+ 'Due Date' => 'Esedékesség',
+ 'E-mail' => 'E-mail',
+ 'E-mail Statement to' => 'Kimutatás küldése e-mail-ben:',
+ 'E-mail address missing!' => 'E-mail cím hiányzik!',
+ 'E-mail message' => 'E-mail üzenet',
+ 'Every' => 'Minden',
+ 'Feb' => 'Feb.',
+ 'February' => 'Február',
+ 'For' => 'Ismétlés',
+ 'From' => 'Mikortól:',
+ 'GIFI' => 'Gyûjtõkód',
+ 'Heading' => 'Fejléc',
+ 'ID' => 'Azonosító',
+ 'In-line' => 'Beágyazva',
+ 'Include Exchange Rate Difference' => 'Árfolyamkülönbséget tartalmazza',
+ 'Include Payment' => 'Pénzmozgással együtt',
+ 'Include in Report' => 'Oszlopok:',
+ 'Income Statement' => 'Eredménykimutatás',
+ 'Invoice' => 'Számla',
+ 'Jan' => 'Jan.',
+ 'January' => 'Január',
+ 'Jul' => 'Júl.',
+ 'July' => 'Július',
+ 'Jun' => 'Jún.',
+ 'June' => 'Június',
+ 'Language' => 'Nyelv',
+ 'Mar' => 'Márc.',
+ 'March' => 'Március',
+ 'May' => 'Máj.',
+ 'May ' => 'Május',
+ 'Memo' => 'Memo',
+ 'Message' => 'Üzenet',
+ 'Method' => 'Módszer',
+ 'Month' => 'Hónap',
+ 'Month(s)' => 'Hónap',
+ 'N/A' => 'N/A',
+ 'Next Date' => 'Következõ Dátum',
+ 'Non-taxable Purchases' => 'Adómentes Beszerzések',
+ 'Non-taxable Sales' => 'Adómentes Eladások',
+ 'Nothing selected!' => 'Nincs semmi kiválasztva!',
+ 'Nov' => 'Nov.',
+ 'November' => 'November',
+ 'Number' => 'Szám',
+ 'Oct' => 'Okt.',
+ 'October' => 'Október',
+ 'Order' => 'Rendelés',
+ 'Overdue' => 'Késedelem',
+ 'PDF' => 'PDF',
+ 'Payments' => 'Kifizetések',
+ 'Period' => 'Idõszak',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Nyomtatás',
+ 'Project' => 'Projekt',
+ 'Project Number' => 'Projektszám',
+ 'Project Transactions' => 'Projekt Tranzakciók',
+ 'Project not on file!' => 'Projekt nincs meg',
+ 'Quarter' => 'Negyedév',
+ 'Receipts' => 'Befizetések',
+ 'Recurring Transaction' => 'Ismétlõdõ Tranzakció',
+ 'Reference' => 'Hivatkozás',
+ 'Repeat' => 'Ismétlés',
+ 'Report for' => 'Jelentés:',
+ 'Salesperson' => 'Ügynök',
+ 'Save Schedule' => 'Ütemezés mentése',
+ 'Screen' => 'Képernyõre',
+ 'Select all' => 'Mindent kijelöl',
+ 'Select from one of the names below' => 'Válasszon ki egyet az alábbi nevek közül',
+ 'Select from one of the projects below' => 'Válasszon a projektek közül',
+ 'Select postscript or PDF!' => 'Válassza ki a postscript vagy a PDF formátumot!',
+ 'Sep' => 'Szept.',
+ 'September' => 'Szeptember',
+ 'Source' => 'Bizonylatszám',
+ 'Standard' => 'Sztenderd',
+ 'Startdate' => 'Kezdõ dátum',
+ 'Statement' => 'Kimutatás',
+ 'Statement sent to' => 'Kimutatás elküldve:',
+ 'Statements sent to printer!' => 'Kimutatás kinyomtatva!',
+ 'Subject' => 'Tárgy',
+ 'Subtotal' => 'Részösszeg',
+ 'Summary' => 'Összegzés',
+ 'Tax' => 'Adó',
+ 'Tax collected' => 'Fizetendõ ÁFA',
+ 'Tax paid' => 'Levonható ÁFA',
+ 'Till' => 'Kassza',
+ 'To' => 'Meddig:',
+ 'Total' => 'Végösszeg',
+ 'Trial Balance' => 'Fõkönyvi kivonat',
+ 'Vendor' => 'Szállító',
+ 'Vendor not on file!' => 'Szállító nincs az adatbázisban!',
+ 'Warning!' => 'Figyelmeztetés',
+ 'Week(s)' => 'Hét',
+ 'Year' => 'Év',
+ 'Year(s)' => 'Év',
+ 'You are posting an existing transaction!' => 'Ön egy létezõ tranzakciót módosít!',
+ 'You are printing and posting an existing transaction!' => 'Ön egy létezõ tranzakciót rögzít és nyomtat!',
+ 'You are printing and saving an existing order' => 'Ön egy létezõ rendelést rögzít és nyomtat!',
+ 'You are printing and saving an existing quotation' => 'Ön egy létezõ ajánlatot rögzít és nyomtat!',
+ 'You are saving an existing order' => 'Ön egy létezõ rendelést módosít!',
+ 'You are saving an existing quotation' => 'Ön egy létezõ ajánlatot módosít',
+ 'as at' => 'Fordulónap:',
+ 'for' => 'for',
+ 'for Period' => 'Idõszak:',
+ 'sent' => 'elküldve',
+ 'time(s)' => '-szor',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'folytatás' => 'continue',
+ 'Ütemezés_törlése' => 'delete_schedule',
+ 'e_mail' => 'e_mail',
+ 'nyomtatás' => 'print',
+ 'Ütemezés_mentése' => 'save_schedule',
+ 'mindent_kijelöl' => 'select_all',
+};
+
+1;
+
diff --git a/locale/id/COPYING b/locale/id/COPYING
new file mode 100755
index 00000000..96b7429c
--- /dev/null
+++ b/locale/id/COPYING
@@ -0,0 +1,23 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2005
+#
+# Indonesian texts:
+#
+# Author: Akhmad Daniel Sembiring <daniel@vitraining.com>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/id/LANGUAGE b/locale/id/LANGUAGE
new file mode 100755
index 00000000..9cab5f32
--- /dev/null
+++ b/locale/id/LANGUAGE
@@ -0,0 +1 @@
+Bahasa Indonesia
diff --git a/locale/id/aa b/locale/id/aa
new file mode 100755
index 00000000..9c2f08aa
--- /dev/null
+++ b/locale/id/aa
@@ -0,0 +1,126 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Hutang Belum Lunas',
+ 'AP Transaction' => 'Transkasi Hutang',
+ 'AP Transactions' => 'Transkasi Hutang',
+ 'AR Outstanding' => 'Piutang Belum Lunas',
+ 'AR Transaction' => 'Transaksi Piutang',
+ 'AR Transactions' => 'Transaksi Piutang',
+ 'Account' => 'Akun',
+ 'Accounting Menu' => 'Menu Akunting',
+ 'Add AP Transaction' => 'Tambah Transaksi Hutang',
+ 'Add AR Transaction' => 'Tambah Transaksi Piutang',
+ 'Amount' => 'Jumlah',
+ 'Amount Due' => 'Jumlah Terhutang',
+ 'Are you sure you want to delete Transaction' => 'Apakah anda yakin akan menghapus Nomor Transaksi',
+ 'August' => 'Agustus',
+ 'Cannot delete transaction!' => 'Tidak dapat menghapus Transaksi!',
+ 'Cannot post payment for a closed period!' => 'Tidak dapat posting pembayaran untuk perioda yang sudah ditutup!',
+ 'Cannot post transaction for a closed period!' => 'Tidak dapat posting transaksi untuk perioda yang sudah ditutup!',
+ 'Cannot post transaction!' => 'Tidak dapat posting transaksi!',
+ 'Confirm!' => 'Konfirmasi!',
+ 'Continue' => 'Lanjut',
+ 'Credit' => 'Kredit',
+ 'Credit Limit' => 'Batas Kredit',
+ 'Curr' => 'Mata Uang',
+ 'Currency' => 'Mata Uang',
+ 'Customer' => 'Pelanggan',
+ 'Customer missing!' => 'Pelanggan harap diisi!',
+ 'Date' => 'Tanggal',
+ 'Date Paid' => 'Tanggal Bayar',
+ 'December' => 'Desember',
+ 'Delete' => 'Hapus',
+ 'Department' => 'Departemen',
+ 'Description' => 'Keterangan',
+ 'Detail' => 'Detil',
+ 'Due Date' => 'Jatuh Tempo',
+ 'Due Date missing!' => 'Tanggal Jatuh Tempo harap diisi!',
+ 'Edit AP Transaction' => 'Edit Transaksi Hutang',
+ 'Edit AR Transaction' => 'Edit Transaksi Piutang',
+ 'Employee' => 'Karyawan',
+ 'Exchange Rate' => 'Kurs',
+ 'Exchange rate missing!' => 'Kurs harap diisi!',
+ 'February' => 'Februari',
+ 'From' => 'Dari',
+ 'Include in Report' => 'Tampilkan pada <br>laporan',
+ 'Invoice' => 'Invoice',
+ 'Invoice Date' => 'Tanggal Invoice',
+ 'Invoice Date missing!' => 'Tanggal Invoice harap diisi!',
+ 'Invoice Number' => 'Nomor Invoice',
+ 'January' => 'Januari',
+ 'July' => 'Juli',
+ 'June' => 'Juni',
+ 'March' => 'Maret',
+ 'May ' => 'Mei',
+ 'Month' => 'Bulan',
+ 'No.' => 'No.',
+ 'Notes' => 'Catatan',
+ 'October' => 'Oktober',
+ 'Order' => 'No. Pesanan',
+ 'Order Number' => 'Nomor Pesanan',
+ 'Paid' => 'Dibayar',
+ 'Payment date missing!' => 'Tanggal Pembayaran harap diisi!',
+ 'Payments' => 'Pembayaran',
+ 'Period' => 'Perioda',
+ 'Post' => 'Posting',
+ 'Post as new' => 'Posting sbg yang baru',
+ 'Print' => 'Cetak',
+ 'Print and Post' => 'Cetak dan Posting',
+ 'Project' => 'Proyek',
+ 'Receipt' => 'Penerimaan',
+ 'Remaining' => 'Sisa',
+ 'Sales Invoice.' => 'Invoice Penjualan.',
+ 'Salesperson' => 'Salesman',
+ 'Ship to' => 'Kirim kepada',
+ 'Ship via' => 'Kirim melalui',
+ 'Shipping Point' => 'Titik Pengiriman',
+ 'Source' => 'Bukti',
+ 'Summary' => 'Ringkasan',
+ 'Tax' => 'Pajak',
+ 'Tax Included' => 'Termasuk Pajak',
+ 'To' => 'Sampai',
+ 'Total' => 'Total',
+ 'Transaction' => 'Transaksi',
+ 'Transaction deleted!' => 'Transaksi sudah dihapus',
+ 'Transaction posted!' => 'Transaksi sudah diposting',
+ 'Vendor' => 'Supplier',
+ 'Vendor Invoice.' => 'Invoice Supplier.',
+ 'Vendor missing!' => 'Data Supplier harap diisi!',
+ 'Year' => 'Tahun',
+ 'Yes' => 'Ya',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'transkasi_hutang' => 'ap_transaction',
+ 'transaksi_piutang' => 'ar_transaction',
+ 'lanjut' => 'continue',
+ 'hapus' => 'delete',
+ 'posting' => 'post',
+ 'posting_sbg_yang_baru' => 'post_as_new',
+ 'cetak' => 'print',
+ 'cetak_dan_posting' => 'print_and_post',
+ 'invoice_penjualan_' => 'sales_invoice_',
+ 'kirim_kepada' => 'ship_to',
+ 'invoice_supplier_' => 'vendor_invoice_',
+ 'ya' => 'yes',
+};
+
+1;
+
diff --git a/locale/id/admin b/locale/id/admin
new file mode 100755
index 00000000..59ba43ad
--- /dev/null
+++ b/locale/id/admin
@@ -0,0 +1,99 @@
+$self{texts} = {
+ 'Access Control' => 'Kontrol Aksess',
+ 'Accounting' => 'Akunting',
+ 'Add User' => 'Tambah User',
+ 'Address' => 'Alamat',
+ 'Administration' => 'Administrasi',
+ 'Administrator' => 'Administrator',
+ 'All Datasets up to date!' => 'Semua Dataset up to date!',
+ 'Cannot create Lock!' => 'Tidak dapat membuat Lock!',
+ 'Change Admin Password' => 'Ganti Password Admin',
+ 'Change Password' => 'Ganti Password',
+ 'Click on login name to edit!' => 'Klik pada nama login untuk mengedit!',
+ 'Company' => 'Perusahaan',
+ 'Confirm' => 'Konfirmasi',
+ 'Connect to' => 'Connect ke',
+ 'Continue' => 'Lanjut',
+ 'Create Chart of Accounts' => 'Buat Bagan Akun',
+ 'Create Dataset' => 'Buat Dataase',
+ 'DBI not installed!' => 'DBI belum ter-install',
+ 'Database User missing!' => 'Database User harap diisi!',
+ 'Dataset missing!' => 'Dataset harap diisi!',
+ 'Dataset updated!' => 'Dataset sudah diupdate!',
+ 'Date Format' => 'Format Tanggal',
+ 'Delete' => 'Hapus',
+ 'Delete Dataset' => 'Hapus Dataset',
+ 'Directory' => 'Direktori',
+ 'Dropdown Limit' => 'Batas Dropdown',
+ 'Hostname missing!' => 'Hostname harap diisi!',
+ 'Language' => 'Bahasa',
+ 'Login name missing!' => 'Nama Login harap diisi',
+ 'Menu Width' => 'Lebar Menu',
+ 'Name' => 'Nama',
+ 'New Templates' => 'Template Baru',
+ 'No Database Drivers available!' => 'Tidak ada Database Driver yang tersedia!',
+ 'No Dataset selected!' => 'Tidak ada Dataset yang dipilih!',
+ 'Nothing to delete!' => 'Tidak ada yang akan dihapus!',
+ 'Number Format' => 'Format Angka',
+ 'Password changed!' => 'Password sudah dirubah!',
+ 'Passwords do not match!' => 'Password tidak cocok!',
+ 'Phone' => 'Telephone',
+ 'Port missing!' => 'Port harap diisi!',
+ 'Save' => 'Simpan',
+ 'Setup Templates' => 'Setup Template',
+ 'Supervisor' => 'Supervisor',
+ 'Templates' => 'Template',
+ 'The following Datasets need to be updated' => 'Dataset berikut ini perlu di-update',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Untuk menambah user ke suatu group, edit nama user, ganti loginnya, dan simpan. User baru dengan variabel yang sama akan tersimpan di bawah nama login yang baru.',
+ 'User deleted!' => 'User sudah dihapus!',
+ 'User saved!' => 'User sudah disimpan!',
+ 'Version' => 'Versi',
+ 'You are logged out' => 'Anda sudah Logout',
+ 'is already a member!' => 'sudah tercatat sebagai member',
+ 'successfully created!' => 'berhasil dibuat!',
+ 'successfully deleted!' => 'berhasil dihapus!',
+ 'website' => 'situs web',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'tambah_user' => 'add_user',
+ 'ganti_password_admin' => 'change_admin_password',
+ 'ganti_password' => 'change_password',
+ 'lanjut' => 'continue',
+ 'buat_dataase' => 'create_dataset',
+ 'hapus' => 'delete',
+ 'hapus_dataset' => 'delete_dataset',
+ 'simpan' => 'save',
+};
+
+1;
+
diff --git a/locale/id/all b/locale/id/all
new file mode 100755
index 00000000..1863bb38
--- /dev/null
+++ b/locale/id/all
@@ -0,0 +1,890 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+
+$self{texts} = {
+ 'A' => 'A',
+ 'AP' => 'Hutang',
+ 'AP Aging' => 'Umur Hutang',
+ 'AP Outstanding' => 'Hutang Belum Lunas',
+ 'AP Transaction' => 'Transkasi Hutang',
+ 'AP Transactions' => 'Transkasi Hutang',
+ 'AR' => 'Piutang',
+ 'AR Aging' => 'Umur Piutang',
+ 'AR Outstanding' => 'Piutang Belum Lunas',
+ 'AR Transaction' => 'Transaksi Piutang',
+ 'AR Transactions' => 'Transaksi Piutang',
+ 'AR/AP' => '',
+ 'About' => '',
+ 'Above' => 'Di atas',
+ 'Access Control' => 'Kontrol Aksess',
+ 'Access Denied!' => '',
+ 'Account' => 'Akun',
+ 'Account Number' => 'Nomor Akun',
+ 'Account Number missing!' => 'Nomor Akun harap diisi!',
+ 'Account Type' => 'Jenis Akun',
+ 'Account Type missing!' => 'Jenis Akun harap diisi',
+ 'Account deleted!' => 'Kode Akun sudah dihapus!',
+ 'Account does not exist!' => 'Kode Akun tidak ditemukan',
+ 'Account saved!' => 'Kode Akun sudah disimpan',
+ 'Accounting' => 'Akunting',
+ 'Accounting Menu' => 'Menu Akunting',
+ 'Accounts' => 'Daftar Akun',
+ 'Accrual' => '',
+ 'Activate Audit trail' => '',
+ 'Active' => 'Aktif',
+ 'Add' => 'Tambah',
+ 'Add AP Transaction' => 'Tambah Transaksi Hutang',
+ 'Add AR Transaction' => 'Tambah Transaksi Piutang',
+ 'Add Account' => 'Tambah Akun',
+ 'Add Assembly' => 'Tambah Rakitan',
+ 'Add Business' => 'Tambah Jenis Bisnis',
+ 'Add Cash Transfer Transaction' => 'Tambah Transaksi Transfer Kas',
+ 'Add Customer' => 'Tambah Pelanggan',
+ 'Add Deduction' => 'Tambah Deduksi',
+ 'Add Department' => 'Tambah Departemen',
+ 'Add Employee' => 'Tambah Karyawan',
+ 'Add Exchange Rate' => 'Tambah Kurs',
+ 'Add GIFI' => 'Tambah GIFI',
+ 'Add General Ledger Transaction' => 'Tambah Transaksi GL',
+ 'Add Group' => 'Tambah Kelompok Rakitan',
+ 'Add Job' => '',
+ 'Add Labor/Overhead' => 'Tambah Tenaga Kerja/ Overhead',
+ 'Add Language' => 'Tambah Bahasa',
+ 'Add POS Invoice' => 'Tambah Invoice Kasir',
+ 'Add Part' => 'Tambah Barang',
+ 'Add Pricegroup' => 'Tambah Kelompok Harga',
+ 'Add Project' => 'Tambah Proyek',
+ 'Add Purchase Order' => 'Tambah Pesanan Pembelian (PO)',
+ 'Add Quotation' => 'Tambah Quotation',
+ 'Add Request for Quotation' => 'Tambah Request for Quotation',
+ 'Add SIC' => 'Tambah SIC',
+ 'Add Sales Invoice' => 'Tambah Invoice Penjualan',
+ 'Add Sales Order' => 'Tambah Pesanan Penjualan (SO)',
+ 'Add Service' => 'Tambah Jasa',
+ 'Add Timecard' => '',
+ 'Add Transaction' => 'Tambah Transaksi',
+ 'Add User' => 'Tambah User',
+ 'Add Vendor' => 'Tambah Supplier',
+ 'Add Vendor Invoice' => 'Tambah Invoice Supplier',
+ 'Add Warehouse' => 'Tambah Gudang',
+ 'Address' => 'Alamat',
+ 'Administration' => 'Administrasi',
+ 'Administrator' => 'Administrator',
+ 'After Deduction' => 'Setelah Deduksi',
+ 'All' => 'Semua',
+ 'All Accounts' => 'Semua Akun',
+ 'All Datasets up to date!' => 'Semua Dataset up to date!',
+ 'All Items' => 'Semua Item',
+ 'Allowances' => '',
+ 'Amount' => 'Jumlah',
+ 'Amount Due' => 'Jumlah Terhutang',
+ 'Amount missing!' => 'Jumlah harap diisi!',
+ 'Apr' => '',
+ 'April' => '',
+ 'Are you sure you want to delete Invoice Number' => 'Apakah anda yakin akan menghapus Nomor Invoice',
+ 'Are you sure you want to delete Order Number' => 'Apakah anda yakin akan menghapus Nomor Order',
+ 'Are you sure you want to delete Quotation Number' => 'Apakah anda yakin akan menghapus Nomor Quotasi',
+ 'Are you sure you want to delete Timecard for' => '',
+ 'Are you sure you want to delete Transaction' => 'Apakah anda yakin akan menghapus Nomor Transaksi',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Apakah anda yakin akan menghapus entri terpilih pada antrian',
+ 'Assemblies' => 'Rakitan',
+ 'Assemblies restocked!' => 'Barang Rakitan telah di stock ulang!',
+ 'Assembly' => 'Rakitan',
+ 'Assembly stocked!' => '',
+ 'Asset' => 'Aktiva',
+ 'Attachment' => 'Lampiran',
+ 'Audit Control' => 'Kontrol Audit',
+ 'Audit trail disabled' => '',
+ 'Audit trail enabled' => '',
+ 'Audit trail removed up to' => '',
+ 'Aug' => '',
+ 'August' => 'Agustus',
+ 'Average Cost' => '',
+ 'Avg Cost' => '',
+ 'BIC' => '',
+ 'BOM' => '',
+ 'Backup' => '',
+ 'Backup sent to' => 'Backup dikirim kepada',
+ 'Balance' => 'Saldo',
+ 'Balance Sheet' => 'Neraca',
+ 'Based on' => 'Berdasarkan',
+ 'Bcc' => '',
+ 'Before Deduction' => 'Sebelum Deduksi',
+ 'Beginning Balance' => 'Saldo Awal',
+ 'Below' => 'Dibawah',
+ 'Billing Address' => 'Alamat Penagihan',
+ 'Bin' => '',
+ 'Bin List' => '',
+ 'Bin Lists' => '',
+ 'Books are open' => '',
+ 'Break' => '',
+ 'Business' => 'Bisnis',
+ 'Business Number' => 'Nomor Bisnis',
+ 'Business deleted!' => 'Bisnis telah dihapus!',
+ 'Business saved!' => 'Bisnis telah disimpan!',
+ 'C' => '',
+ 'COGS' => '',
+ 'COGS account does not exist!' => '',
+ 'Cannot add timecard for a completed job!' => '',
+ 'Cannot change timecard for a completed job!' => '',
+ 'Cannot create Assembly' => '',
+ 'Cannot create Labor' => '',
+ 'Cannot create Lock!' => 'Tidak dapat membuat Lock!',
+ 'Cannot create Part' => '',
+ 'Cannot create Service' => '',
+ 'Cannot delete Timecard!' => '',
+ 'Cannot delete account!' => 'Tidak dapat menghapus Akun',
+ 'Cannot delete customer!' => 'Tidak dapat menghapus Pelanggan!',
+ 'Cannot delete default account!' => 'Tidak dapat menghapus default account!',
+ 'Cannot delete invoice!' => 'Tidak dapat menghapus Invoice!',
+ 'Cannot delete item!' => 'Tidak dapat menghapus Item!',
+ 'Cannot delete order!' => 'Tidak dapat menghapus Pesanan!',
+ 'Cannot delete quotation!' => 'Tidak dapat menghapus Quotation!',
+ 'Cannot delete transaction!' => 'Tidak dapat menghapus Transaksi!',
+ 'Cannot delete vendor!' => 'Tidak dapat menghapus Supplier!',
+ 'Cannot post Payment!' => 'Tidak dapat posting Pembayaran!',
+ 'Cannot post Receipt!' => 'Tidak dapat posting Penerimaan!',
+ 'Cannot post invoice for a closed period!' => 'Tidak dapat posting invoice untuk perioda yang sudah ditutup!',
+ 'Cannot post invoice!' => 'Tidak dapat posting Invoice!',
+ 'Cannot post payment for a closed period!' => 'Tidak dapat posting pembayaran untuk perioda yang sudah ditutup!',
+ 'Cannot post transaction for a closed period!' => 'Tidak dapat posting transaksi untuk perioda yang sudah ditutup!',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => '',
+ 'Cannot post transaction!' => 'Tidak dapat posting transaksi!',
+ 'Cannot remove files!' => 'Tidak dapat menghapus file!',
+ 'Cannot save account!' => 'Tidak dapat menyimpan akun!',
+ 'Cannot save defaults!' => 'Tidak dapat menyimpan nilai default!',
+ 'Cannot save order!' => 'Tidak dapat menyimpan pesanan!',
+ 'Cannot save preferences!' => 'Tidak dapat menyimpan preference!',
+ 'Cannot save quotation!' => 'Tidak dapat menyimpan quotation!',
+ 'Cannot save timecard for a closed period!' => '',
+ 'Cannot save timecard!' => '',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Tidak dapat men-set akun untuk selain AR (Piutang), AP (Hutang) or IC',
+ 'Cannot set multiple options for' => 'Tidak dapat men-set multiple option untuk ',
+ 'Cannot set multiple options for Item' => '',
+ 'Cannot stock Assembly!' => '',
+ 'Cannot stock assemblies!' => 'Tidak dapat men-stock barang rakitan!',
+ 'Cash' => 'Kas dan Bank',
+ 'Cc' => '',
+ 'Change' => 'Kembalian',
+ 'Change Admin Password' => 'Ganti Password Admin',
+ 'Change Password' => 'Ganti Password',
+ 'Charge' => '',
+ 'Chart of Accounts' => 'Bagan Akun',
+ 'Check' => '',
+ 'Check Inventory' => '',
+ 'Checks' => '',
+ 'City' => 'Kota',
+ 'Cleared' => '',
+ 'Click on login name to edit!' => 'Klik pada nama login untuk mengedit!',
+ 'Clocked' => '',
+ 'Close Books up to' => '',
+ 'Closed' => '',
+ 'Code' => 'Kode',
+ 'Code missing!' => 'Kode harap diisi!',
+ 'Company' => 'Perusahaan',
+ 'Company Name' => 'Nama Perusahaan',
+ 'Compare to' => 'Dibandingkan kepada',
+ 'Completed' => '',
+ 'Components' => 'Komponen',
+ 'Confirm' => 'Konfirmasi',
+ 'Confirm!' => 'Konfirmasi!',
+ 'Connect to' => 'Connect ke',
+ 'Contact' => '',
+ 'Continue' => 'Lanjut',
+ 'Contra' => 'Kontra',
+ 'Copies' => 'Jumlah Copy',
+ 'Copy to COA' => 'Copy ke Bagan Akun',
+ 'Cost' => 'Biaya',
+ 'Cost Center' => '',
+ 'Could not save pricelist!' => 'Tidak dapat menyimpan daftar harga',
+ 'Could not save!' => 'Tidak dapat menyimpan',
+ 'Could not transfer Inventory!' => 'Tidak dapat mentransfer Inventory',
+ 'Country' => 'Negara',
+ 'Create Chart of Accounts' => 'Buat Bagan Akun',
+ 'Create Dataset' => 'Buat Dataase',
+ 'Credit' => 'Kredit',
+ 'Credit Limit' => 'Batas Kredit',
+ 'Curr' => 'Mata Uang',
+ 'Currency' => 'Mata Uang',
+ 'Current' => '',
+ 'Current Earnings' => '',
+ 'Customer' => 'Pelanggan',
+ 'Customer History' => 'Historis Pelanggan',
+ 'Customer Number' => 'Nomor Pelanggan',
+ 'Customer deleted!' => 'Pelanggan sudah dihapus!',
+ 'Customer missing!' => 'Pelanggan harap diisi!',
+ 'Customer not on file!' => 'Pelanggan tidak ditemukan!',
+ 'Customer saved!' => 'Pelanggan telah disimpan!',
+ 'Customers' => 'Pelanggan',
+ 'DBI not installed!' => 'DBI belum ter-install',
+ 'DOB' => '',
+ 'Database' => '',
+ 'Database Administration' => '',
+ 'Database Driver not checked!' => '',
+ 'Database Host' => '',
+ 'Database User missing!' => 'Database User harap diisi!',
+ 'Dataset' => '',
+ 'Dataset is newer than version!' => 'Dataset lebih baru daripada versi!',
+ 'Dataset missing!' => 'Dataset harap diisi!',
+ 'Dataset updated!' => 'Dataset sudah diupdate!',
+ 'Date' => 'Tanggal',
+ 'Date Format' => 'Format Tanggal',
+ 'Date Paid' => 'Tanggal Bayar',
+ 'Date Received' => 'Tanggal Diterima',
+ 'Date missing!' => 'Tanggal harap diisi!',
+ 'Date received missing!' => 'Tanggal diterima harap diisi!',
+ 'Date worked' => '',
+ 'Day' => '',
+ 'Day(s)' => '',
+ 'Days' => '',
+ 'Debit' => '',
+ 'Dec' => '',
+ 'December' => 'Desember',
+ 'Decimalplaces' => 'Angka Desimal',
+ 'Decrease' => '',
+ 'Deduct after' => '',
+ 'Deduction deleted!' => 'Deduksi sudah dihapus!',
+ 'Deduction saved!' => 'Deduksi sudah disimpan!',
+ 'Deductions' => 'Deduksi',
+ 'Default Template' => '',
+ 'Defaults' => 'Default',
+ 'Defaults saved!' => 'Default sudah disimpan!',
+ 'Delete' => 'Hapus',
+ 'Delete Account' => 'Hapus Akun',
+ 'Delete Dataset' => 'Hapus Dataset',
+ 'Delete Schedule' => '',
+ 'Deleting a language will also delete the templates for the language' => '',
+ 'Delivery Date' => 'Tanggal Kirim',
+ 'Department' => 'Departemen',
+ 'Department deleted!' => 'Departemen telah dihapus',
+ 'Department saved!' => 'Departemen telah disimpan',
+ 'Departments' => 'Departemen',
+ 'Deposit' => '',
+ 'Description' => 'Keterangan',
+ 'Description Translations' => '',
+ 'Description missing!' => 'Keterangan harap diisi!',
+ 'Detail' => 'Detil',
+ 'Difference' => 'Selisih',
+ 'Directory' => 'Direktori',
+ 'Discount' => 'Diskon',
+ 'Done' => 'Selesai',
+ 'Drawing' => '',
+ 'Driver' => '',
+ 'Dropdown Limit' => 'Batas Dropdown',
+ 'Due Date' => 'Jatuh Tempo',
+ 'Due Date missing!' => 'Tanggal Jatuh Tempo harap diisi!',
+ 'E-mail' => '',
+ 'E-mail Statement to' => '',
+ 'E-mail address missing!' => '',
+ 'E-mail message' => '',
+ 'E-mailed' => '',
+ 'Edit' => '',
+ 'Edit AP Transaction' => 'Edit Transaksi Hutang',
+ 'Edit AR Transaction' => 'Edit Transaksi Piutang',
+ 'Edit Account' => 'Edit Akun',
+ 'Edit Assembly' => 'Edit Rakitan',
+ 'Edit Business' => 'Edit Jenis Bisnis',
+ 'Edit Cash Transfer Transaction' => 'Edit Transaksi Transfer Kas',
+ 'Edit Customer' => 'Edit Pelanggan',
+ 'Edit Deduction' => '',
+ 'Edit Department' => 'Edit Departemen',
+ 'Edit Description Translations' => '',
+ 'Edit Employee' => 'Edit Karyawan',
+ 'Edit GIFI' => '',
+ 'Edit General Ledger Transaction' => 'Edit Transaksi GL',
+ 'Edit Group' => 'Edit Kelompok Rakitan',
+ 'Edit Job' => '',
+ 'Edit Labor/Overhead' => 'Edit Tenaga Kerja/ Overhead',
+ 'Edit Language' => 'Edit Bahasa',
+ 'Edit POS Invoice' => 'Edit Invoice Kasir',
+ 'Edit Part' => 'Edit Barang',
+ 'Edit Preferences for' => 'Edit Preferences untuk',
+ 'Edit Pricegroup' => 'Edit Kelompok Harga',
+ 'Edit Project' => 'Edit Proyek',
+ 'Edit Purchase Order' => 'Edit Pesanan Pembelian (PO)',
+ 'Edit Quotation' => '',
+ 'Edit Request for Quotation' => '',
+ 'Edit SIC' => '',
+ 'Edit Sales Invoice' => 'Edit Invoice Penjualan',
+ 'Edit Sales Order' => 'Edit Pesanan Penjualan (SO)',
+ 'Edit Service' => 'Edit Jasa',
+ 'Edit Template' => '',
+ 'Edit Timecard' => '',
+ 'Edit User' => '',
+ 'Edit Vendor' => 'Edit Supplier',
+ 'Edit Vendor Invoice' => 'Edit Invoice Supplier',
+ 'Edit Warehouse' => '',
+ 'Employee' => 'Karyawan',
+ 'Employee Name' => 'Nama Karyawan',
+ 'Employee Number' => 'Nomor Karyawan',
+ 'Employee deleted!' => 'Karyawan sudah dihapus!',
+ 'Employee pays' => '',
+ 'Employee saved!' => 'Karyawan sudah disimpan',
+ 'Employees' => 'Karyawan',
+ 'Employer' => '',
+ 'Employer pays' => '',
+ 'Enddate' => 'Tanggal Akhir',
+ 'Ends' => '',
+ 'Enforce transaction reversal for all dates' => '',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Masukkan sd. 3 huruf nama mata uang dipisahkan oleh tanda titik dua (mis. IDR:USD:EUR) untuk mata uang yang digunakan',
+ 'Equity' => 'Modal',
+ 'Every' => '',
+ 'Excempt age <' => '',
+ 'Exch' => '',
+ 'Exchange Rate' => 'Kurs',
+ 'Exchange rate for payment missing!' => '',
+ 'Exchange rate missing!' => 'Kurs harap diisi!',
+ 'Existing Datasets' => '',
+ 'Expense' => 'Biaya',
+ 'Expense account does not exist!' => '',
+ 'Expense/Asset' => 'Biaya/Aktiva',
+ 'Extended' => 'Jumlah',
+ 'FX' => '',
+ 'Failed to save order!' => '',
+ 'Fax' => '',
+ 'Feb' => '',
+ 'February' => 'Februari',
+ 'For' => '',
+ 'Foreign Exchange Gain' => 'Keuntungan Selisih Kurs',
+ 'Foreign Exchange Loss' => 'Kerugian Selisih Kurs',
+ 'Friday' => '',
+ 'From' => 'Dari',
+ 'From Warehouse' => '',
+ 'GIFI' => '',
+ 'GIFI deleted!' => '',
+ 'GIFI missing!' => '',
+ 'GIFI saved!' => '',
+ 'GL' => '',
+ 'GL Reference Number' => '',
+ 'GL Transaction' => 'Transaksi GL',
+ 'General Ledger' => '',
+ 'Generate' => '',
+ 'Generate Orders' => '',
+ 'Generate Purchase Orders' => '',
+ 'Generate Purchase Orders from Sales Order' => '',
+ 'Generate Sales Order' => '',
+ 'Generate Sales Order from Purchase Orders' => '',
+ 'Generate Sales Orders' => '',
+ 'Goods & Services' => 'Barang dan Jasa',
+ 'Group' => '',
+ 'Group Items' => '',
+ 'Group Translations' => '',
+ 'Group deleted!' => '',
+ 'Group missing!' => '',
+ 'Group saved!' => '',
+ 'Groups' => 'Kelompok Rakitan',
+ 'HR' => '',
+ 'HTML Templates' => '',
+ 'Heading' => '',
+ 'History' => 'Historis',
+ 'Home Phone' => 'Telephone Rumah',
+ 'Host' => '',
+ 'Hostname missing!' => 'Hostname harap diisi!',
+ 'IBAN' => '',
+ 'ID' => '',
+ 'Image' => '',
+ 'In-line' => '',
+ 'Inactive' => '',
+ 'Include Exchange Rate Difference' => '',
+ 'Include Payment' => '',
+ 'Include in Report' => 'Tampilkan pada <br>laporan',
+ 'Include in drop-down menus' => 'Tampilkan pada menu drop-down',
+ 'Income' => 'Pendapatan',
+ 'Income Statement' => 'Laba Rugi',
+ 'Income account does not exist!' => '',
+ 'Incorrect Dataset version!' => 'Versi Dataset tidak benar!',
+ 'Increase' => '',
+ 'Individual Items' => '',
+ 'Internal Notes' => '',
+ 'Inventory' => '',
+ 'Inventory account does not exist!' => '',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => '',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => '',
+ 'Inventory saved!' => 'Inventory sudah disimpan!',
+ 'Inventory transferred!' => 'Inventory sudah di-transfer',
+ 'Invoice' => 'Invoice',
+ 'Invoice Date' => 'Tanggal Invoice',
+ 'Invoice Date missing!' => 'Tanggal Invoice harap diisi!',
+ 'Invoice Number' => 'Nomor Invoice',
+ 'Invoice Number missing!' => 'Nomor Invoice harap diisi',
+ 'Invoice deleted!' => 'Invoice sudah dihapus',
+ 'Invoices' => 'Invoice',
+ 'Is this a summary account to record' => 'Akun ini adalah akun ringkasan untuk mencatat',
+ 'Item already on pricelist!' => 'Barang sudah terdapat pada daftar harga',
+ 'Item deleted!' => 'Barang sudah dihapus!',
+ 'Item not on file!' => 'Item ini tidak ditemukan!',
+ 'Items' => 'Item',
+ 'Jan' => '',
+ 'January' => 'Januari',
+ 'Job' => '',
+ 'Job Name' => '',
+ 'Job Number' => '',
+ 'Job Number missing!' => '',
+ 'Job deleted!' => '',
+ 'Job saved!' => '',
+ 'Jobs' => '',
+ 'Jul' => '',
+ 'July' => 'Juli',
+ 'Jun' => '',
+ 'June' => 'Juni',
+ 'LaTeX Templates' => 'Template LaTeX',
+ 'Labor Code' => '',
+ 'Labor/Overhead' => 'Tenaga Kerja/ Overhead',
+ 'Language' => 'Bahasa',
+ 'Language deleted!' => 'Bahasa sudah dihapus!',
+ 'Language saved!' => 'Bahasa sudah disimpan!',
+ 'Languages' => 'Bahasa',
+ 'Languages not defined!' => 'Bahasa tidak terdefinisi!',
+ 'Last Cost' => '',
+ 'Last Numbers & Default Accounts' => '',
+ 'Lead' => '',
+ 'Leadtime' => '',
+ 'Leave host and port field empty unless you want to make a remote connection.' => '',
+ 'Liability' => 'Hutang',
+ 'Licensed to' => 'Lisensi kepada',
+ 'Line Total' => 'Total Baris',
+ 'Link' => '',
+ 'Link Accounts' => 'Akun yg Berhubungan',
+ 'List' => 'Daftar',
+ 'List Accounts' => 'Daftar Akun',
+ 'List Businesses' => 'Daftar Bisnis',
+ 'List Departments' => 'Daftar Departemen',
+ 'List GIFI' => 'Daftar GIFI',
+ 'List Languages' => 'Daftar Bahasa',
+ 'List Price' => 'Daftar Harga',
+ 'List Projects' => 'Daftar Proyek',
+ 'List SIC' => 'Daftar SIC',
+ 'List Transactions' => 'Daftar Transaksi',
+ 'List Warehouses' => 'Daftar Gudang',
+ 'Lock System' => '',
+ 'Lockfile created!' => '',
+ 'Lockfile removed!' => '',
+ 'Login' => '',
+ 'Login name missing!' => 'Nama Login harap diisi',
+ 'Logout' => '',
+ 'Make' => 'Pembuatan',
+ 'Manager' => '',
+ 'Mar' => '',
+ 'March' => 'Maret',
+ 'Marked entries printed!' => '',
+ 'Markup' => '',
+ 'Maximum' => '',
+ 'May' => '',
+ 'May ' => 'Mei',
+ 'Memo' => '',
+ 'Menu Width' => 'Lebar Menu',
+ 'Message' => 'Pesan',
+ 'Method' => 'Metoda',
+ 'Microfiche' => '',
+ 'Model' => '',
+ 'Monday' => '',
+ 'Month' => 'Bulan',
+ 'Month(s)' => '',
+ 'Months' => '',
+ 'Multibyte Encoding' => '',
+ 'N/A' => '',
+ 'Name' => 'Nama',
+ 'Name missing!' => 'Nama harap diisi!',
+ 'New Templates' => 'Template Baru',
+ 'New Window' => 'Buka Window Baru',
+ 'Next' => '',
+ 'Next Date' => '',
+ 'Next Number' => '',
+ 'No' => 'Tidak',
+ 'No Database Drivers available!' => 'Tidak ada Database Driver yang tersedia!',
+ 'No Dataset selected!' => 'Tidak ada Dataset yang dipilih!',
+ 'No Employees on file!' => '',
+ 'No Labor codes on file!' => '',
+ 'No email address for' => 'Tidak ada alamat email untuk',
+ 'No open Jobs!' => '',
+ 'No open Projects!' => '',
+ 'No.' => 'No.',
+ 'Non-taxable' => 'Tanpa Pajak',
+ 'Non-taxable Purchases' => 'Pembelian Tanpa Pajak',
+ 'Non-taxable Sales' => 'Penjualan Tanpa Pajak',
+ 'Non-tracking Items' => '',
+ 'Notes' => 'Catatan',
+ 'Nothing entered!' => 'Catatan sudah dimasukkan!',
+ 'Nothing selected!' => 'Tidak ada yang dipilih!',
+ 'Nothing to delete!' => 'Tidak ada yang akan dihapus!',
+ 'Nothing to print!' => 'Tidak ada yang akan dicetak!',
+ 'Nothing to transfer!' => 'Tidak ada yang akan di-transfer!',
+ 'Nov' => '',
+ 'November' => '',
+ 'Number' => 'Nomor',
+ 'Number Format' => 'Format Angka',
+ 'Number missing in Row' => '',
+ 'O' => '',
+ 'OH' => '',
+ 'Obsolete' => 'Kadaluarsa',
+ 'Oct' => '',
+ 'October' => 'Oktober',
+ 'On Hand' => '',
+ 'Open' => '',
+ 'Oracle Database Administration' => '',
+ 'Order' => 'No. Pesanan',
+ 'Order Date' => 'Tanggal Pesanan',
+ 'Order Date missing!' => 'Tanggal Pesanan harap diisi!',
+ 'Order Entry' => 'Pesanan',
+ 'Order Number' => 'Nomor Pesanan',
+ 'Order Number missing!' => 'Nomor Pesanan harap diisi',
+ 'Order deleted!' => 'Pesanan sudah dihapus!',
+ 'Order generation failed!' => '',
+ 'Order saved!' => 'Pesanan sudah disimpan!',
+ 'Orders generated!' => '',
+ 'Orphaned' => '',
+ 'Out of balance transaction!' => '',
+ 'Out of balance!' => '',
+ 'Outstanding' => 'Belum Lunas',
+ 'PDF' => '',
+ 'PO Number' => '',
+ 'POS' => 'Kasir (POS)',
+ 'POS Invoice' => 'Invoice Kasir',
+ 'Packing List' => '',
+ 'Packing List Date missing!' => 'Tanggal Packing List harap diisi!',
+ 'Packing List Number missing!' => 'Nomor Packing List harap diisi!',
+ 'Packing Lists' => '',
+ 'Paid' => 'Dibayar',
+ 'Part' => 'Barang',
+ 'Part Number' => '',
+ 'Partnumber' => 'Nomor Barang',
+ 'Parts' => 'Barang',
+ 'Password' => '',
+ 'Password changed!' => 'Password sudah dirubah!',
+ 'Password does not match!' => 'Password tidak cocok!',
+ 'Passwords do not match!' => 'Password tidak cocok!',
+ 'Payables' => 'Hutang',
+ 'Payment' => 'Pembayaran',
+ 'Payment date missing!' => 'Tanggal Pembayaran harap diisi!',
+ 'Payment posted!' => 'Pembayaran sudah di-posting',
+ 'Payments' => 'Pembayaran',
+ 'Payments posted!' => '',
+ 'Payroll Deduction' => 'Pengurangan Pembayaran',
+ 'Period' => 'Perioda',
+ 'Pg Database Administration' => '',
+ 'PgPP Database Administration' => '',
+ 'Phone' => 'Telephone',
+ 'Pick List' => '',
+ 'Pick Lists' => '',
+ 'Port' => '',
+ 'Port missing!' => 'Port harap diisi!',
+ 'Pos' => '',
+ 'Post' => 'Posting',
+ 'Post as new' => 'Posting sbg yang baru',
+ 'Posted!' => 'Sudah Diposting!',
+ 'Posting' => '',
+ 'Posting failed!' => '',
+ 'Postscript' => '',
+ 'Preferences' => '',
+ 'Preferences saved!' => 'Preferences sudah disimpan!',
+ 'Prepayment' => '',
+ 'Price' => 'Harga',
+ 'Pricegroup' => 'Kelompok Harga',
+ 'Pricegroup deleted!' => 'Kelompok Harga sudah dihapus!',
+ 'Pricegroup missing!' => 'Kelompok Harga harap diisi!',
+ 'Pricegroup saved!' => 'Kelompok Harga sudah disimpan!',
+ 'Pricegroups' => 'Kelompok Harga',
+ 'Pricelist' => 'Daftar Harga',
+ 'Print' => 'Cetak',
+ 'Print and Post' => 'Cetak dan Posting',
+ 'Print and Post as new' => '',
+ 'Print and Save' => 'Cetak dan Simpan',
+ 'Print and Save as new' => '',
+ 'Print and post as new' => '',
+ 'Print and save as new' => '',
+ 'Printed' => 'Sudah dicetak',
+ 'Printer' => '',
+ 'Printing' => '',
+ 'Printing ... ' => 'Sedang mencetak...',
+ 'Process Transactions' => '',
+ 'Production' => '',
+ 'Profit Center' => '',
+ 'Project' => 'Proyek',
+ 'Project Description Translations' => '',
+ 'Project Name' => '',
+ 'Project Number' => 'Nomor Proyek',
+ 'Project Number missing!' => 'Nomor Proyek harap diisi!',
+ 'Project Transactions' => 'Transaksi Proyek',
+ 'Project deleted!' => 'Data Proyek sudah dihapus!',
+ 'Project not on file!' => 'Data Proyek tidak ditemukan!',
+ 'Project saved!' => 'Data Proyek sudah disimpan!',
+ 'Project/Job Name' => '',
+ 'Project/Job Number' => '',
+ 'Projects' => 'Proyek',
+ 'Purchase Order' => 'Pesanan Pembelian (PO)',
+ 'Purchase Order Number' => 'Nomor Pesanan Pembelian (PO)',
+ 'Purchase Orders' => 'Pesanan Pembelian (PO)',
+ 'Qty' => 'Banyak',
+ 'Quantity exceeds available units to stock!' => 'Jumlah melebihi unit yang tersedia pada inventory!',
+ 'Quarter' => '',
+ 'Quotation' => 'Quotation',
+ 'Quotation ' => 'No.Quotation',
+ 'Quotation Date' => 'Tanggal Quotation',
+ 'Quotation Date missing!' => 'Tanggal Quotation harap diisi!',
+ 'Quotation Number' => 'Nomor Quotation',
+ 'Quotation Number missing!' => 'Nomor Quotation harap diisi!',
+ 'Quotation deleted!' => 'Nomor Quotation sudah dihapus!',
+ 'Quotations' => 'Quotation',
+ 'R' => '',
+ 'RFQ' => '',
+ 'RFQ ' => '',
+ 'RFQ Number' => '',
+ 'RFQs' => '',
+ 'ROP' => '',
+ 'Rate' => '',
+ 'Rate missing!' => '',
+ 'Recd' => 'Terima',
+ 'Receipt' => 'Penerimaan',
+ 'Receipt posted!' => 'Penerimaan sudah diposting!',
+ 'Receipts' => 'Penerimaan',
+ 'Receivables' => 'Piutang',
+ 'Receive' => 'Penerimaan',
+ 'Receive Merchandise' => 'Penerimaan Barang',
+ 'Reconciliation' => 'Rekonsiliasi',
+ 'Reconciliation Report' => 'Laporan Rekonsiliasi',
+ 'Record in' => 'Catat pada',
+ 'Recurring Transaction' => '',
+ 'Recurring Transactions' => '',
+ 'Reference' => 'Referensi',
+ 'Remaining' => 'Sisa',
+ 'Remove' => '',
+ 'Remove Audit trail up to' => '',
+ 'Removed spoolfiles!' => '',
+ 'Removing marked entries from queue ...' => '',
+ 'Repeat' => '',
+ 'Report for' => '',
+ 'Reports' => 'Laporan',
+ 'Req' => '',
+ 'Request for Quotation' => '',
+ 'Request for Quotations' => '',
+ 'Required by' => 'Tanggal Kirim',
+ 'Retained Earnings' => 'Pendapatan Ditahan',
+ 'Role' => '',
+ 'S' => '',
+ 'SIC' => '',
+ 'SIC deleted!' => '',
+ 'SIC saved!' => '',
+ 'SKU' => '',
+ 'SSN' => '',
+ 'Sale' => 'Penjualan',
+ 'Sales' => 'Penjualan',
+ 'Sales Invoice' => 'Invoice Penjualan',
+ 'Sales Invoice ' => 'Invoice Penjualan ',
+ 'Sales Invoice.' => 'Invoice Penjualan.',
+ 'Sales Invoice/AR Transaction Number' => '',
+ 'Sales Invoices' => 'Invoice Penjualan',
+ 'Sales Order' => 'Pesanan Penjualan (SO)',
+ 'Sales Order Number' => 'Nomor Pesanan Penjualan (SO)',
+ 'Sales Orders' => 'Pesanan Penjualan (SO)',
+ 'Sales Quotation Number' => 'Nomor Sales Quotation',
+ 'Salesperson' => 'Salesman',
+ 'Saturday' => '',
+ 'Save' => 'Simpan',
+ 'Save Pricelist' => 'Simpan Daftar Harga',
+ 'Save Schedule' => '',
+ 'Save as new' => 'Simpan sbg yg baru',
+ 'Save to File' => 'Simpan ke File',
+ 'Saving' => '',
+ 'Schedule' => '',
+ 'Scheduled' => '',
+ 'Screen' => 'Layar',
+ 'Search' => 'Cari',
+ 'Select' => 'Pilih',
+ 'Select Customer' => '',
+ 'Select Vendor' => '',
+ 'Select a Printer!' => '',
+ 'Select a printer!' => '',
+ 'Select all' => 'Pilih semua',
+ 'Select from one of the items below' => 'Pilih dari salah satu item di bawah',
+ 'Select from one of the names below' => 'Pilih dari salah satu nama di bawah',
+ 'Select from one of the projects below' => 'Pilih dari salah satu proyek di bawah',
+ 'Select items' => '',
+ 'Select payment' => 'Pilih pembayaran',
+ 'Select postscript or PDF!' => 'Pilih postscript atau PDF!',
+ 'Select txt, postscript or PDF!' => 'Pilih txt, postscript atau PDF!',
+ 'Sell' => 'Jual',
+ 'Sell Price' => 'Harga Jual',
+ 'Send by E-Mail' => 'Kirim melalui E-mail',
+ 'Sending' => '',
+ 'Sep' => '',
+ 'September' => '',
+ 'Serial No.' => 'No. Seri',
+ 'Serial Number' => 'Nomor Seri',
+ 'Service' => 'Jasa',
+ 'Service Code' => '',
+ 'Service/Labor Code' => '',
+ 'Services' => 'Jasa',
+ 'Session Timeout' => '',
+ 'Session expired!' => '',
+ 'Setup Templates' => 'Setup Template',
+ 'Ship' => 'Kirim',
+ 'Ship Merchandise' => 'Pengiriman Barang',
+ 'Ship to' => 'Kirim kepada',
+ 'Ship via' => 'Kirim melalui',
+ 'Shipping' => 'Kirim dan Terima',
+ 'Shipping Address' => 'Alamat Pengiriman',
+ 'Shipping Date' => 'Tanggal Pengiriman',
+ 'Shipping Date missing!' => 'Tanggal Pengiriman harap diisi!',
+ 'Shipping Point' => 'Titik Pengiriman',
+ 'Short' => '',
+ 'Signature' => '',
+ 'Source' => 'Bukti',
+ 'Spoolfile' => '',
+ 'Standard' => '',
+ 'Standard Industrial Codes' => '',
+ 'Startdate' => 'Tanggal Mulai',
+ 'State' => 'Negara Bagian',
+ 'State/Province' => 'Provinsi',
+ 'Statement' => '',
+ 'Statement Balance' => '',
+ 'Statement sent to' => '',
+ 'Statements sent to printer!' => '',
+ 'Stock' => '',
+ 'Stock Assembly' => '',
+ 'Stocking Date' => '',
+ 'Stylesheet' => '',
+ 'Sub-contract GIFI' => '',
+ 'Subject' => '',
+ 'Subtotal' => '',
+ 'Summary' => 'Ringkasan',
+ 'Sunday' => '',
+ 'Supervisor' => 'Supervisor',
+ 'System' => 'Sistem',
+ 'System Defaults' => 'Default Sistem',
+ 'Tax' => 'Pajak',
+ 'Tax Accounts' => 'No. Rekening Pajak',
+ 'Tax Included' => 'Termasuk Pajak',
+ 'Tax Number' => 'Nomor Pajak',
+ 'Tax Number / SSN' => 'Nomor Pajak/ SSN',
+ 'Tax collected' => 'Pajak Terkumpul',
+ 'Tax paid' => 'Pajak Dibayar',
+ 'Taxable' => 'Kena Pajak',
+ 'Template saved!' => 'Template sudah disimpan!',
+ 'Templates' => 'Template',
+ 'Terms' => 'Termin',
+ 'Text' => '',
+ 'Text Templates' => 'Template Text',
+ 'The following Datasets are not in use and can be deleted' => '',
+ 'The following Datasets need to be updated' => 'Dataset berikut ini perlu di-update',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => '',
+ 'Thursday' => '',
+ 'Till' => '',
+ 'Time In' => '',
+ 'Time Out' => '',
+ 'Timecard' => '',
+ 'Timecard deleted!' => '',
+ 'Timecard saved!' => '',
+ 'Timecards' => '',
+ 'Times' => '',
+ 'To' => 'Sampai',
+ 'To Warehouse' => '',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Untuk menambah user ke suatu group, edit nama user, ganti loginnya, dan simpan. User baru dengan variabel yang sama akan tersimpan di bawah nama login yang baru.',
+ 'Top Level' => '',
+ 'Total' => 'Total',
+ 'Tracking Items' => '',
+ 'Trade Discount' => '',
+ 'Transaction' => 'Transaksi',
+ 'Transaction Date missing!' => 'Tanggal Transaksi harap diisi',
+ 'Transaction Dates' => '',
+ 'Transaction deleted!' => 'Transaksi sudah dihapus',
+ 'Transaction posted!' => 'Transaksi sudah diposting',
+ 'Transaction reversal enforced for all dates' => '',
+ 'Transaction reversal enforced up to' => '',
+ 'Transactions' => 'Transaksi',
+ 'Transfer' => '',
+ 'Transfer Inventory' => '',
+ 'Transfer from' => '',
+ 'Transfer to' => 'Transfer ke',
+ 'Translation' => '',
+ 'Translation deleted!' => '',
+ 'Translation not on file!' => '',
+ 'Translations' => '',
+ 'Translations saved!' => '',
+ 'Trial Balance' => 'Neraca Percobaan',
+ 'Tuesday' => '',
+ 'Type of Business' => 'Jenis Bisnis',
+ 'Unit' => 'Satuan',
+ 'Unit of measure' => 'Satuan pengukuran',
+ 'Unlock System' => '',
+ 'Update' => '',
+ 'Update Dataset' => '',
+ 'Updated' => 'Diupdate',
+ 'Upgrading to Version' => '',
+ 'Use Templates' => '',
+ 'User' => '',
+ 'User deleted!' => 'User sudah dihapus!',
+ 'User saved!' => 'User sudah disimpan!',
+ 'Valid until' => 'Valid hingga',
+ 'Vendor' => 'Supplier',
+ 'Vendor History' => 'Historis Supplier',
+ 'Vendor Invoice' => 'Invoice Supplier',
+ 'Vendor Invoice ' => 'Invoice Supplier ',
+ 'Vendor Invoice.' => 'Invoice Supplier.',
+ 'Vendor Invoice/AP Transaction Number' => '',
+ 'Vendor Invoices' => 'Invoice Supplier',
+ 'Vendor Number' => 'Nomor Supplier',
+ 'Vendor deleted!' => 'Data Supplier sudah dihapus!',
+ 'Vendor missing!' => 'Data Supplier harap diisi!',
+ 'Vendor not on file!' => 'Data Supplier tidak ditemukan!',
+ 'Vendor saved!' => 'Data Supplier sudah disimpan!',
+ 'Vendors' => 'Supplier',
+ 'Version' => 'Versi',
+ 'Warehouse' => 'Gudang',
+ 'Warehouse deleted!' => 'Data Gudang sudah dihapus!',
+ 'Warehouse saved!' => 'Data Gudang sudah disimpan',
+ 'Warehouses' => 'Gudang',
+ 'Warning!' => 'Peringatan!',
+ 'Wednesday' => '',
+ 'Week' => '',
+ 'Week(s)' => '',
+ 'Weeks' => '',
+ 'Weight' => 'Berat',
+ 'Weight Unit' => 'Satuan Berat',
+ 'What type of item is this?' => 'Jenis item ini ?',
+ 'Work Order' => '',
+ 'Work Orders' => '',
+ 'Work Phone' => 'Telephone Kantor',
+ 'Year' => 'Tahun',
+ 'Year(s)' => '',
+ 'Yearend' => 'Akhir Tahun',
+ 'Yearend date missing!' => 'Tanggal Akhir Tahun harap diisi!',
+ 'Yearend posted!' => 'Akhir Tahun sudah di-posting!',
+ 'Yearend posting failed!' => 'Akhir Tahun gagal di-posting!',
+ 'Years' => '',
+ 'Yes' => 'Ya',
+ 'You are logged out' => 'Anda sudah Logout',
+ 'You are posting an existing transaction!' => '',
+ 'You are printing and posting an existing transaction!' => '',
+ 'You are printing and saving an existing order' => '',
+ 'You are printing and saving an existing quotation' => '',
+ 'You are printing and saving an existing transaction!' => '',
+ 'You are saving an existing order' => '',
+ 'You are saving an existing quotation' => '',
+ 'You are saving an existing transaction!' => '',
+ 'You did not enter a name!' => 'Anda tidak memasukkan nama!',
+ 'You must enter a host and port for local and remote connections!' => '',
+ 'Zip/Postal Code' => 'Kode Pos',
+ 'account cannot be set to any other type of account' => 'akun tidak dapat diset menjadi jenis akun lainnya',
+ 'as at' => 'per',
+ 'days' => 'hari',
+ 'does not exist' => '',
+ 'done' => 'selesai',
+ 'ea' => '',
+ 'failed' => '',
+ 'for' => '',
+ 'for Period' => 'untuk Perioda',
+ 'is already a member!' => 'sudah tercatat sebagai member',
+ 'localhost' => '',
+ 'locked!' => '',
+ 'partsgroup' => '',
+ 'posted!' => 'sudah diposting!',
+ 'sent' => 'sudah dikirim',
+ 'successfully created!' => 'berhasil dibuat!',
+ 'successfully deleted!' => 'berhasil dihapus!',
+ 'time(s)' => '',
+ 'unexpected error!' => '',
+ 'website' => 'situs web',
+};
+
+1;
diff --git a/locale/id/am b/locale/id/am
new file mode 100755
index 00000000..4ca75d12
--- /dev/null
+++ b/locale/id/am
@@ -0,0 +1,228 @@
+$self{texts} = {
+ 'AP' => 'Hutang',
+ 'AR' => 'Piutang',
+ 'Account' => 'Akun',
+ 'Account Number' => 'Nomor Akun',
+ 'Account Number missing!' => 'Nomor Akun harap diisi!',
+ 'Account Type' => 'Jenis Akun',
+ 'Account Type missing!' => 'Jenis Akun harap diisi',
+ 'Account deleted!' => 'Kode Akun sudah dihapus!',
+ 'Account does not exist!' => 'Kode Akun tidak ditemukan',
+ 'Account saved!' => 'Kode Akun sudah disimpan',
+ 'Accounting Menu' => 'Menu Akunting',
+ 'Add Account' => 'Tambah Akun',
+ 'Add Business' => 'Tambah Jenis Bisnis',
+ 'Add Department' => 'Tambah Departemen',
+ 'Add GIFI' => 'Tambah GIFI',
+ 'Add Language' => 'Tambah Bahasa',
+ 'Add SIC' => 'Tambah SIC',
+ 'Add Warehouse' => 'Tambah Gudang',
+ 'Address' => 'Alamat',
+ 'Amount' => 'Jumlah',
+ 'Asset' => 'Aktiva',
+ 'Audit Control' => 'Kontrol Audit',
+ 'Backup sent to' => 'Backup dikirim kepada',
+ 'Business Number' => 'Nomor Bisnis',
+ 'Business deleted!' => 'Bisnis telah dihapus!',
+ 'Business saved!' => 'Bisnis telah disimpan!',
+ 'Cannot delete account!' => 'Tidak dapat menghapus Akun',
+ 'Cannot delete default account!' => 'Tidak dapat menghapus default account!',
+ 'Cannot save account!' => 'Tidak dapat menyimpan akun!',
+ 'Cannot save defaults!' => 'Tidak dapat menyimpan nilai default!',
+ 'Cannot save preferences!' => 'Tidak dapat menyimpan preference!',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Tidak dapat men-set akun untuk selain AR (Piutang), AP (Hutang) or IC',
+ 'Cannot set multiple options for' => 'Tidak dapat men-set multiple option untuk ',
+ 'Cash' => 'Kas dan Bank',
+ 'Chart of Accounts' => 'Bagan Akun',
+ 'Code' => 'Kode',
+ 'Code missing!' => 'Kode harap diisi!',
+ 'Company' => 'Perusahaan',
+ 'Confirm' => 'Konfirmasi',
+ 'Confirm!' => 'Konfirmasi!',
+ 'Continue' => 'Lanjut',
+ 'Contra' => 'Kontra',
+ 'Copy to COA' => 'Copy ke Bagan Akun',
+ 'Credit' => 'Kredit',
+ 'Customer Number' => 'Nomor Pelanggan',
+ 'Date Format' => 'Format Tanggal',
+ 'Defaults saved!' => 'Default sudah disimpan!',
+ 'Delete' => 'Hapus',
+ 'Delete Account' => 'Hapus Akun',
+ 'Department deleted!' => 'Departemen telah dihapus',
+ 'Department saved!' => 'Departemen telah disimpan',
+ 'Departments' => 'Departemen',
+ 'Description' => 'Keterangan',
+ 'Description missing!' => 'Keterangan harap diisi!',
+ 'Discount' => 'Diskon',
+ 'Dropdown Limit' => 'Batas Dropdown',
+ 'Edit Account' => 'Edit Akun',
+ 'Edit Business' => 'Edit Jenis Bisnis',
+ 'Edit Department' => 'Edit Departemen',
+ 'Edit Language' => 'Edit Bahasa',
+ 'Edit Preferences for' => 'Edit Preferences untuk',
+ 'Employee Number' => 'Nomor Karyawan',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Masukkan sd. 3 huruf nama mata uang dipisahkan oleh tanda titik dua (mis. IDR:USD:EUR) untuk mata uang yang digunakan',
+ 'Equity' => 'Modal',
+ 'Expense' => 'Biaya',
+ 'Expense/Asset' => 'Biaya/Aktiva',
+ 'Foreign Exchange Gain' => 'Keuntungan Selisih Kurs',
+ 'Foreign Exchange Loss' => 'Kerugian Selisih Kurs',
+ 'GL Transaction' => 'Transaksi GL',
+ 'Include in drop-down menus' => 'Tampilkan pada menu drop-down',
+ 'Income' => 'Pendapatan',
+ 'Invoice' => 'Invoice',
+ 'Is this a summary account to record' => 'Akun ini adalah akun ringkasan untuk mencatat',
+ 'Language' => 'Bahasa',
+ 'Language deleted!' => 'Bahasa sudah dihapus!',
+ 'Language saved!' => 'Bahasa sudah disimpan!',
+ 'Languages' => 'Bahasa',
+ 'Liability' => 'Hutang',
+ 'Licensed to' => 'Lisensi kepada',
+ 'Menu Width' => 'Lebar Menu',
+ 'Method' => 'Metoda',
+ 'Month' => 'Bulan',
+ 'Name' => 'Nama',
+ 'No' => 'Tidak',
+ 'No email address for' => 'Tidak ada alamat email untuk',
+ 'Number' => 'Nomor',
+ 'Number Format' => 'Format Angka',
+ 'Password does not match!' => 'Password tidak cocok!',
+ 'Payables' => 'Hutang',
+ 'Payment' => 'Pembayaran',
+ 'Phone' => 'Telephone',
+ 'Preferences saved!' => 'Preferences sudah disimpan!',
+ 'Print' => 'Cetak',
+ 'Purchase Order' => 'Pesanan Pembelian (PO)',
+ 'Purchase Order Number' => 'Nomor Pesanan Pembelian (PO)',
+ 'Purchase Orders' => 'Pesanan Pembelian (PO)',
+ 'Receivables' => 'Piutang',
+ 'Reference' => 'Referensi',
+ 'Retained Earnings' => 'Pendapatan Ditahan',
+ 'Sales Invoice' => 'Invoice Penjualan',
+ 'Sales Order' => 'Pesanan Penjualan (SO)',
+ 'Sales Order Number' => 'Nomor Pesanan Penjualan (SO)',
+ 'Sales Orders' => 'Pesanan Penjualan (SO)',
+ 'Sales Quotation Number' => 'Nomor Sales Quotation',
+ 'Save' => 'Simpan',
+ 'Save as new' => 'Simpan sbg yg baru',
+ 'System Defaults' => 'Default Sistem',
+ 'Tax' => 'Pajak',
+ 'Template saved!' => 'Template sudah disimpan!',
+ 'Transaction' => 'Transaksi',
+ 'Type of Business' => 'Jenis Bisnis',
+ 'Vendor Invoice' => 'Invoice Supplier',
+ 'Vendor Number' => 'Nomor Supplier',
+ 'Version' => 'Versi',
+ 'Warehouse deleted!' => 'Data Gudang sudah dihapus!',
+ 'Warehouse saved!' => 'Data Gudang sudah disimpan',
+ 'Warehouses' => 'Gudang',
+ 'Weight Unit' => 'Satuan Berat',
+ 'Year' => 'Tahun',
+ 'Yearend' => 'Akhir Tahun',
+ 'Yearend date missing!' => 'Tanggal Akhir Tahun harap diisi!',
+ 'Yearend posted!' => 'Akhir Tahun sudah di-posting!',
+ 'Yearend posting failed!' => 'Akhir Tahun gagal di-posting!',
+ 'Yes' => 'Ya',
+ 'account cannot be set to any other type of account' => 'akun tidak dapat diset menjadi jenis akun lainnya',
+ 'done' => 'selesai',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'tambah_akun' => 'add_account',
+ 'tambah_jenis_bisnis' => 'add_business',
+ 'tambah_departemen' => 'add_department',
+ 'tambah_bahasa' => 'add_language',
+ 'tambah_sic' => 'add_sic',
+ 'tambah_gudang' => 'add_warehouse',
+ 'lanjut' => 'continue',
+ 'copy_ke_bagan_akun' => 'copy_to_coa',
+ 'hapus' => 'delete',
+ 'edit_akun' => 'edit_account',
+ 'simpan' => 'save',
+ 'simpan_sbg_yg_baru' => 'save_as_new',
+};
+
+1;
+
diff --git a/locale/id/ap b/locale/id/ap
new file mode 100755
index 00000000..c1b090ab
--- /dev/null
+++ b/locale/id/ap
@@ -0,0 +1,174 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Hutang Belum Lunas',
+ 'AP Transaction' => 'Transkasi Hutang',
+ 'AP Transactions' => 'Transkasi Hutang',
+ 'AR Outstanding' => 'Piutang Belum Lunas',
+ 'AR Transaction' => 'Transaksi Piutang',
+ 'AR Transactions' => 'Transaksi Piutang',
+ 'Account' => 'Akun',
+ 'Accounting Menu' => 'Menu Akunting',
+ 'Add AP Transaction' => 'Tambah Transaksi Hutang',
+ 'Add AR Transaction' => 'Tambah Transaksi Piutang',
+ 'Address' => 'Alamat',
+ 'Amount' => 'Jumlah',
+ 'Amount Due' => 'Jumlah Terhutang',
+ 'Are you sure you want to delete Transaction' => 'Apakah anda yakin akan menghapus Nomor Transaksi',
+ 'August' => 'Agustus',
+ 'Cannot delete transaction!' => 'Tidak dapat menghapus Transaksi!',
+ 'Cannot post payment for a closed period!' => 'Tidak dapat posting pembayaran untuk perioda yang sudah ditutup!',
+ 'Cannot post transaction for a closed period!' => 'Tidak dapat posting transaksi untuk perioda yang sudah ditutup!',
+ 'Cannot post transaction!' => 'Tidak dapat posting transaksi!',
+ 'Confirm!' => 'Konfirmasi!',
+ 'Continue' => 'Lanjut',
+ 'Credit' => 'Kredit',
+ 'Credit Limit' => 'Batas Kredit',
+ 'Curr' => 'Mata Uang',
+ 'Currency' => 'Mata Uang',
+ 'Customer' => 'Pelanggan',
+ 'Customer missing!' => 'Pelanggan harap diisi!',
+ 'Customer not on file!' => 'Pelanggan tidak ditemukan!',
+ 'Date' => 'Tanggal',
+ 'Date Paid' => 'Tanggal Bayar',
+ 'December' => 'Desember',
+ 'Delete' => 'Hapus',
+ 'Department' => 'Departemen',
+ 'Description' => 'Keterangan',
+ 'Detail' => 'Detil',
+ 'Due Date' => 'Jatuh Tempo',
+ 'Due Date missing!' => 'Tanggal Jatuh Tempo harap diisi!',
+ 'Edit AP Transaction' => 'Edit Transaksi Hutang',
+ 'Edit AR Transaction' => 'Edit Transaksi Piutang',
+ 'Employee' => 'Karyawan',
+ 'Exchange Rate' => 'Kurs',
+ 'Exchange rate missing!' => 'Kurs harap diisi!',
+ 'February' => 'Februari',
+ 'From' => 'Dari',
+ 'Include in Report' => 'Tampilkan pada <br>laporan',
+ 'Invoice' => 'Invoice',
+ 'Invoice Date' => 'Tanggal Invoice',
+ 'Invoice Date missing!' => 'Tanggal Invoice harap diisi!',
+ 'Invoice Number' => 'Nomor Invoice',
+ 'January' => 'Januari',
+ 'July' => 'Juli',
+ 'June' => 'Juni',
+ 'March' => 'Maret',
+ 'May ' => 'Mei',
+ 'Message' => 'Pesan',
+ 'Month' => 'Bulan',
+ 'No.' => 'No.',
+ 'Notes' => 'Catatan',
+ 'Nothing to print!' => 'Tidak ada yang akan dicetak!',
+ 'Number' => 'Nomor',
+ 'October' => 'Oktober',
+ 'Order' => 'No. Pesanan',
+ 'Order Number' => 'Nomor Pesanan',
+ 'Paid' => 'Dibayar',
+ 'Payment date missing!' => 'Tanggal Pembayaran harap diisi!',
+ 'Payments' => 'Pembayaran',
+ 'Period' => 'Perioda',
+ 'Post' => 'Posting',
+ 'Post as new' => 'Posting sbg yang baru',
+ 'Print' => 'Cetak',
+ 'Print and Post' => 'Cetak dan Posting',
+ 'Printed' => 'Sudah dicetak',
+ 'Project' => 'Proyek',
+ 'Project not on file!' => 'Data Proyek tidak ditemukan!',
+ 'Receipt' => 'Penerimaan',
+ 'Reference' => 'Referensi',
+ 'Remaining' => 'Sisa',
+ 'Sales Invoice.' => 'Invoice Penjualan.',
+ 'Salesperson' => 'Salesman',
+ 'Screen' => 'Layar',
+ 'Select from one of the names below' => 'Pilih dari salah satu nama di bawah',
+ 'Select from one of the projects below' => 'Pilih dari salah satu proyek di bawah',
+ 'Select payment' => 'Pilih pembayaran',
+ 'Select postscript or PDF!' => 'Pilih postscript atau PDF!',
+ 'Ship to' => 'Kirim kepada',
+ 'Ship via' => 'Kirim melalui',
+ 'Shipping Point' => 'Titik Pengiriman',
+ 'Source' => 'Bukti',
+ 'Startdate' => 'Tanggal Mulai',
+ 'Summary' => 'Ringkasan',
+ 'Tax' => 'Pajak',
+ 'Tax Included' => 'Termasuk Pajak',
+ 'To' => 'Sampai',
+ 'Total' => 'Total',
+ 'Transaction' => 'Transaksi',
+ 'Transaction deleted!' => 'Transaksi sudah dihapus',
+ 'Transaction posted!' => 'Transaksi sudah diposting',
+ 'Vendor' => 'Supplier',
+ 'Vendor Invoice.' => 'Invoice Supplier.',
+ 'Vendor missing!' => 'Data Supplier harap diisi!',
+ 'Vendor not on file!' => 'Data Supplier tidak ditemukan!',
+ 'Warning!' => 'Peringatan!',
+ 'Year' => 'Tahun',
+ 'Yes' => 'Ya',
+ 'sent' => 'sudah dikirim',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'transkasi_hutang' => 'ap_transaction',
+ 'transaksi_piutang' => 'ar_transaction',
+ 'lanjut' => 'continue',
+ 'hapus' => 'delete',
+ 'posting' => 'post',
+ 'posting_sbg_yang_baru' => 'post_as_new',
+ 'cetak' => 'print',
+ 'cetak_dan_posting' => 'print_and_post',
+ 'invoice_penjualan_' => 'sales_invoice_',
+ 'kirim_kepada' => 'ship_to',
+ 'invoice_supplier_' => 'vendor_invoice_',
+ 'ya' => 'yes',
+};
+
+1;
+
diff --git a/locale/id/ar b/locale/id/ar
new file mode 100755
index 00000000..c1b090ab
--- /dev/null
+++ b/locale/id/ar
@@ -0,0 +1,174 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Hutang Belum Lunas',
+ 'AP Transaction' => 'Transkasi Hutang',
+ 'AP Transactions' => 'Transkasi Hutang',
+ 'AR Outstanding' => 'Piutang Belum Lunas',
+ 'AR Transaction' => 'Transaksi Piutang',
+ 'AR Transactions' => 'Transaksi Piutang',
+ 'Account' => 'Akun',
+ 'Accounting Menu' => 'Menu Akunting',
+ 'Add AP Transaction' => 'Tambah Transaksi Hutang',
+ 'Add AR Transaction' => 'Tambah Transaksi Piutang',
+ 'Address' => 'Alamat',
+ 'Amount' => 'Jumlah',
+ 'Amount Due' => 'Jumlah Terhutang',
+ 'Are you sure you want to delete Transaction' => 'Apakah anda yakin akan menghapus Nomor Transaksi',
+ 'August' => 'Agustus',
+ 'Cannot delete transaction!' => 'Tidak dapat menghapus Transaksi!',
+ 'Cannot post payment for a closed period!' => 'Tidak dapat posting pembayaran untuk perioda yang sudah ditutup!',
+ 'Cannot post transaction for a closed period!' => 'Tidak dapat posting transaksi untuk perioda yang sudah ditutup!',
+ 'Cannot post transaction!' => 'Tidak dapat posting transaksi!',
+ 'Confirm!' => 'Konfirmasi!',
+ 'Continue' => 'Lanjut',
+ 'Credit' => 'Kredit',
+ 'Credit Limit' => 'Batas Kredit',
+ 'Curr' => 'Mata Uang',
+ 'Currency' => 'Mata Uang',
+ 'Customer' => 'Pelanggan',
+ 'Customer missing!' => 'Pelanggan harap diisi!',
+ 'Customer not on file!' => 'Pelanggan tidak ditemukan!',
+ 'Date' => 'Tanggal',
+ 'Date Paid' => 'Tanggal Bayar',
+ 'December' => 'Desember',
+ 'Delete' => 'Hapus',
+ 'Department' => 'Departemen',
+ 'Description' => 'Keterangan',
+ 'Detail' => 'Detil',
+ 'Due Date' => 'Jatuh Tempo',
+ 'Due Date missing!' => 'Tanggal Jatuh Tempo harap diisi!',
+ 'Edit AP Transaction' => 'Edit Transaksi Hutang',
+ 'Edit AR Transaction' => 'Edit Transaksi Piutang',
+ 'Employee' => 'Karyawan',
+ 'Exchange Rate' => 'Kurs',
+ 'Exchange rate missing!' => 'Kurs harap diisi!',
+ 'February' => 'Februari',
+ 'From' => 'Dari',
+ 'Include in Report' => 'Tampilkan pada <br>laporan',
+ 'Invoice' => 'Invoice',
+ 'Invoice Date' => 'Tanggal Invoice',
+ 'Invoice Date missing!' => 'Tanggal Invoice harap diisi!',
+ 'Invoice Number' => 'Nomor Invoice',
+ 'January' => 'Januari',
+ 'July' => 'Juli',
+ 'June' => 'Juni',
+ 'March' => 'Maret',
+ 'May ' => 'Mei',
+ 'Message' => 'Pesan',
+ 'Month' => 'Bulan',
+ 'No.' => 'No.',
+ 'Notes' => 'Catatan',
+ 'Nothing to print!' => 'Tidak ada yang akan dicetak!',
+ 'Number' => 'Nomor',
+ 'October' => 'Oktober',
+ 'Order' => 'No. Pesanan',
+ 'Order Number' => 'Nomor Pesanan',
+ 'Paid' => 'Dibayar',
+ 'Payment date missing!' => 'Tanggal Pembayaran harap diisi!',
+ 'Payments' => 'Pembayaran',
+ 'Period' => 'Perioda',
+ 'Post' => 'Posting',
+ 'Post as new' => 'Posting sbg yang baru',
+ 'Print' => 'Cetak',
+ 'Print and Post' => 'Cetak dan Posting',
+ 'Printed' => 'Sudah dicetak',
+ 'Project' => 'Proyek',
+ 'Project not on file!' => 'Data Proyek tidak ditemukan!',
+ 'Receipt' => 'Penerimaan',
+ 'Reference' => 'Referensi',
+ 'Remaining' => 'Sisa',
+ 'Sales Invoice.' => 'Invoice Penjualan.',
+ 'Salesperson' => 'Salesman',
+ 'Screen' => 'Layar',
+ 'Select from one of the names below' => 'Pilih dari salah satu nama di bawah',
+ 'Select from one of the projects below' => 'Pilih dari salah satu proyek di bawah',
+ 'Select payment' => 'Pilih pembayaran',
+ 'Select postscript or PDF!' => 'Pilih postscript atau PDF!',
+ 'Ship to' => 'Kirim kepada',
+ 'Ship via' => 'Kirim melalui',
+ 'Shipping Point' => 'Titik Pengiriman',
+ 'Source' => 'Bukti',
+ 'Startdate' => 'Tanggal Mulai',
+ 'Summary' => 'Ringkasan',
+ 'Tax' => 'Pajak',
+ 'Tax Included' => 'Termasuk Pajak',
+ 'To' => 'Sampai',
+ 'Total' => 'Total',
+ 'Transaction' => 'Transaksi',
+ 'Transaction deleted!' => 'Transaksi sudah dihapus',
+ 'Transaction posted!' => 'Transaksi sudah diposting',
+ 'Vendor' => 'Supplier',
+ 'Vendor Invoice.' => 'Invoice Supplier.',
+ 'Vendor missing!' => 'Data Supplier harap diisi!',
+ 'Vendor not on file!' => 'Data Supplier tidak ditemukan!',
+ 'Warning!' => 'Peringatan!',
+ 'Year' => 'Tahun',
+ 'Yes' => 'Ya',
+ 'sent' => 'sudah dikirim',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'transkasi_hutang' => 'ap_transaction',
+ 'transaksi_piutang' => 'ar_transaction',
+ 'lanjut' => 'continue',
+ 'hapus' => 'delete',
+ 'posting' => 'post',
+ 'posting_sbg_yang_baru' => 'post_as_new',
+ 'cetak' => 'print',
+ 'cetak_dan_posting' => 'print_and_post',
+ 'invoice_penjualan_' => 'sales_invoice_',
+ 'kirim_kepada' => 'ship_to',
+ 'invoice_supplier_' => 'vendor_invoice_',
+ 'ya' => 'yes',
+};
+
+1;
+
diff --git a/locale/id/arap b/locale/id/arap
new file mode 100755
index 00000000..ccde0bb4
--- /dev/null
+++ b/locale/id/arap
@@ -0,0 +1,47 @@
+$self{texts} = {
+ 'Address' => 'Alamat',
+ 'Continue' => 'Lanjut',
+ 'Customer not on file!' => 'Pelanggan tidak ditemukan!',
+ 'Date' => 'Tanggal',
+ 'Description' => 'Keterangan',
+ 'Message' => 'Pesan',
+ 'Number' => 'Nomor',
+ 'Print' => 'Cetak',
+ 'Project not on file!' => 'Data Proyek tidak ditemukan!',
+ 'Reference' => 'Referensi',
+ 'Select from one of the names below' => 'Pilih dari salah satu nama di bawah',
+ 'Select from one of the projects below' => 'Pilih dari salah satu proyek di bawah',
+ 'Startdate' => 'Tanggal Mulai',
+ 'To' => 'Sampai',
+ 'Vendor not on file!' => 'Data Supplier tidak ditemukan!',
+ 'Warning!' => 'Peringatan!',
+ 'sent' => 'sudah dikirim',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'lanjut' => 'continue',
+};
+
+1;
+
diff --git a/locale/id/arapprn b/locale/id/arapprn
new file mode 100755
index 00000000..05d90490
--- /dev/null
+++ b/locale/id/arapprn
@@ -0,0 +1,29 @@
+$self{texts} = {
+ 'Account' => 'Akun',
+ 'Amount' => 'Jumlah',
+ 'Continue' => 'Lanjut',
+ 'Date' => 'Tanggal',
+ 'Nothing to print!' => 'Tidak ada yang akan dicetak!',
+ 'Printed' => 'Sudah dicetak',
+ 'Screen' => 'Layar',
+ 'Select payment' => 'Pilih pembayaran',
+ 'Select postscript or PDF!' => 'Pilih postscript atau PDF!',
+ 'Source' => 'Bukti',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'lanjut' => 'continue',
+};
+
+1;
+
diff --git a/locale/id/bp b/locale/id/bp
new file mode 100755
index 00000000..029eba6f
--- /dev/null
+++ b/locale/id/bp
@@ -0,0 +1,53 @@
+$self{texts} = {
+ 'Account' => 'Akun',
+ 'Accounting Menu' => 'Menu Akunting',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Apakah anda yakin akan menghapus entri terpilih pada antrian',
+ 'Cannot remove files!' => 'Tidak dapat menghapus file!',
+ 'Confirm!' => 'Konfirmasi!',
+ 'Continue' => 'Lanjut',
+ 'Customer' => 'Pelanggan',
+ 'Date' => 'Tanggal',
+ 'Employee' => 'Karyawan',
+ 'From' => 'Dari',
+ 'Invoice' => 'Invoice',
+ 'Invoice Number' => 'Nomor Invoice',
+ 'Month' => 'Bulan',
+ 'Order' => 'No. Pesanan',
+ 'Order Number' => 'Nomor Pesanan',
+ 'Period' => 'Perioda',
+ 'Print' => 'Cetak',
+ 'Purchase Orders' => 'Pesanan Pembelian (PO)',
+ 'Quotation' => 'Quotation',
+ 'Quotation Number' => 'Nomor Quotation',
+ 'Quotations' => 'Quotation',
+ 'Sales Invoices' => 'Invoice Penjualan',
+ 'Sales Orders' => 'Pesanan Penjualan (SO)',
+ 'Select all' => 'Pilih semua',
+ 'To' => 'Sampai',
+ 'Vendor' => 'Supplier',
+ 'Year' => 'Tahun',
+ 'Yes' => 'Ya',
+ 'done' => 'selesai',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'lanjut' => 'continue',
+ 'cetak' => 'print',
+ 'pilih_semua' => 'select_all',
+ 'ya' => 'yes',
+};
+
+1;
+
diff --git a/locale/id/ca b/locale/id/ca
new file mode 100755
index 00000000..dd0442dc
--- /dev/null
+++ b/locale/id/ca
@@ -0,0 +1,38 @@
+$self{texts} = {
+ 'Account' => 'Akun',
+ 'August' => 'Agustus',
+ 'Balance' => 'Saldo',
+ 'Chart of Accounts' => 'Bagan Akun',
+ 'Credit' => 'Kredit',
+ 'Date' => 'Tanggal',
+ 'December' => 'Desember',
+ 'Department' => 'Departemen',
+ 'Description' => 'Keterangan',
+ 'February' => 'Februari',
+ 'From' => 'Dari',
+ 'Include in Report' => 'Tampilkan pada <br>laporan',
+ 'January' => 'Januari',
+ 'July' => 'Juli',
+ 'June' => 'Juni',
+ 'List Transactions' => 'Daftar Transaksi',
+ 'March' => 'Maret',
+ 'May ' => 'Mei',
+ 'Month' => 'Bulan',
+ 'October' => 'Oktober',
+ 'Period' => 'Perioda',
+ 'Project Number' => 'Nomor Proyek',
+ 'Reference' => 'Referensi',
+ 'To' => 'Sampai',
+ 'Year' => 'Tahun',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'daftar_transaksi' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/id/cp b/locale/id/cp
new file mode 100755
index 00000000..908c963a
--- /dev/null
+++ b/locale/id/cp
@@ -0,0 +1,112 @@
+$self{texts} = {
+ 'AP' => 'Hutang',
+ 'AR' => 'Piutang',
+ 'Account' => 'Akun',
+ 'Accounting Menu' => 'Menu Akunting',
+ 'Address' => 'Alamat',
+ 'All' => 'Semua',
+ 'Amount' => 'Jumlah',
+ 'Amount Due' => 'Jumlah Terhutang',
+ 'Cannot post Payment!' => 'Tidak dapat posting Pembayaran!',
+ 'Cannot post Receipt!' => 'Tidak dapat posting Penerimaan!',
+ 'Cannot post payment for a closed period!' => 'Tidak dapat posting pembayaran untuk perioda yang sudah ditutup!',
+ 'Continue' => 'Lanjut',
+ 'Currency' => 'Mata Uang',
+ 'Customer' => 'Pelanggan',
+ 'Customer not on file!' => 'Pelanggan tidak ditemukan!',
+ 'Date' => 'Tanggal',
+ 'Date missing!' => 'Tanggal harap diisi!',
+ 'Department' => 'Departemen',
+ 'Description' => 'Keterangan',
+ 'Due Date' => 'Jatuh Tempo',
+ 'Exchange Rate' => 'Kurs',
+ 'Exchange rate missing!' => 'Kurs harap diisi!',
+ 'From' => 'Dari',
+ 'Invoice' => 'Invoice',
+ 'Invoices' => 'Invoice',
+ 'Language' => 'Bahasa',
+ 'Message' => 'Pesan',
+ 'Number' => 'Nomor',
+ 'Payment' => 'Pembayaran',
+ 'Payment posted!' => 'Pembayaran sudah di-posting',
+ 'Payments' => 'Pembayaran',
+ 'Post' => 'Posting',
+ 'Print' => 'Cetak',
+ 'Project not on file!' => 'Data Proyek tidak ditemukan!',
+ 'Receipt' => 'Penerimaan',
+ 'Receipt posted!' => 'Penerimaan sudah diposting!',
+ 'Receipts' => 'Penerimaan',
+ 'Reference' => 'Referensi',
+ 'Screen' => 'Layar',
+ 'Select' => 'Pilih',
+ 'Select all' => 'Pilih semua',
+ 'Select from one of the names below' => 'Pilih dari salah satu nama di bawah',
+ 'Select from one of the projects below' => 'Pilih dari salah satu proyek di bawah',
+ 'Select postscript or PDF!' => 'Pilih postscript atau PDF!',
+ 'Source' => 'Bukti',
+ 'Startdate' => 'Tanggal Mulai',
+ 'To' => 'Sampai',
+ 'Vendor' => 'Supplier',
+ 'Vendor not on file!' => 'Data Supplier tidak ditemukan!',
+ 'Warning!' => 'Peringatan!',
+ 'sent' => 'sudah dikirim',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'lanjut' => 'continue',
+ 'posting' => 'post',
+ 'cetak' => 'print',
+ 'pilih_semua' => 'select_all',
+};
+
+1;
+
diff --git a/locale/id/ct b/locale/id/ct
new file mode 100755
index 00000000..71bac808
--- /dev/null
+++ b/locale/id/ct
@@ -0,0 +1,161 @@
+$self{texts} = {
+ 'AP Transaction' => 'Transkasi Hutang',
+ 'AP Transactions' => 'Transkasi Hutang',
+ 'AR Transaction' => 'Transaksi Piutang',
+ 'AR Transactions' => 'Transaksi Piutang',
+ 'Accounting Menu' => 'Menu Akunting',
+ 'Active' => 'Aktif',
+ 'Add Customer' => 'Tambah Pelanggan',
+ 'Add Vendor' => 'Tambah Supplier',
+ 'Address' => 'Alamat',
+ 'All' => 'Semua',
+ 'Amount' => 'Jumlah',
+ 'Billing Address' => 'Alamat Penagihan',
+ 'Cannot delete customer!' => 'Tidak dapat menghapus Pelanggan!',
+ 'Cannot delete vendor!' => 'Tidak dapat menghapus Supplier!',
+ 'City' => 'Kota',
+ 'Company Name' => 'Nama Perusahaan',
+ 'Continue' => 'Lanjut',
+ 'Cost' => 'Biaya',
+ 'Could not save pricelist!' => 'Tidak dapat menyimpan daftar harga',
+ 'Country' => 'Negara',
+ 'Credit Limit' => 'Batas Kredit',
+ 'Curr' => 'Mata Uang',
+ 'Currency' => 'Mata Uang',
+ 'Customer History' => 'Historis Pelanggan',
+ 'Customer Number' => 'Nomor Pelanggan',
+ 'Customer deleted!' => 'Pelanggan sudah dihapus!',
+ 'Customer saved!' => 'Pelanggan telah disimpan!',
+ 'Customers' => 'Pelanggan',
+ 'Delete' => 'Hapus',
+ 'Delivery Date' => 'Tanggal Kirim',
+ 'Description' => 'Keterangan',
+ 'Detail' => 'Detil',
+ 'Discount' => 'Diskon',
+ 'Edit Customer' => 'Edit Pelanggan',
+ 'Edit Vendor' => 'Edit Supplier',
+ 'Employee' => 'Karyawan',
+ 'Enddate' => 'Tanggal Akhir',
+ 'From' => 'Dari',
+ 'Include in Report' => 'Tampilkan pada <br>laporan',
+ 'Invoice' => 'Invoice',
+ 'Item already on pricelist!' => 'Barang sudah terdapat pada daftar harga',
+ 'Item not on file!' => 'Item ini tidak ditemukan!',
+ 'Language' => 'Bahasa',
+ 'Name' => 'Nama',
+ 'Name missing!' => 'Nama harap diisi!',
+ 'No.' => 'No.',
+ 'Notes' => 'Catatan',
+ 'Number' => 'Nomor',
+ 'Order' => 'No. Pesanan',
+ 'POS' => 'Kasir (POS)',
+ 'Phone' => 'Telephone',
+ 'Pricegroup' => 'Kelompok Harga',
+ 'Pricelist' => 'Daftar Harga',
+ 'Project Number' => 'Nomor Proyek',
+ 'Purchase Order' => 'Pesanan Pembelian (PO)',
+ 'Purchase Orders' => 'Pesanan Pembelian (PO)',
+ 'Qty' => 'Banyak',
+ 'Quotation' => 'Quotation',
+ 'Quotations' => 'Quotation',
+ 'Sales Invoice' => 'Invoice Penjualan',
+ 'Sales Invoices' => 'Invoice Penjualan',
+ 'Sales Order' => 'Pesanan Penjualan (SO)',
+ 'Sales Orders' => 'Pesanan Penjualan (SO)',
+ 'Salesperson' => 'Salesman',
+ 'Save' => 'Simpan',
+ 'Save Pricelist' => 'Simpan Daftar Harga',
+ 'Save as new' => 'Simpan sbg yg baru',
+ 'Search' => 'Cari',
+ 'Sell Price' => 'Harga Jual',
+ 'Serial Number' => 'Nomor Seri',
+ 'Shipping Address' => 'Alamat Pengiriman',
+ 'Startdate' => 'Tanggal Mulai',
+ 'State' => 'Negara Bagian',
+ 'State/Province' => 'Provinsi',
+ 'Summary' => 'Ringkasan',
+ 'Tax' => 'Pajak',
+ 'Tax Included' => 'Termasuk Pajak',
+ 'Tax Number' => 'Nomor Pajak',
+ 'Tax Number / SSN' => 'Nomor Pajak/ SSN',
+ 'Taxable' => 'Kena Pajak',
+ 'Terms' => 'Termin',
+ 'To' => 'Sampai',
+ 'Total' => 'Total',
+ 'Type of Business' => 'Jenis Bisnis',
+ 'Unit' => 'Satuan',
+ 'Vendor History' => 'Historis Supplier',
+ 'Vendor Invoice' => 'Invoice Supplier',
+ 'Vendor Invoices' => 'Invoice Supplier',
+ 'Vendor Number' => 'Nomor Supplier',
+ 'Vendor deleted!' => 'Data Supplier sudah dihapus!',
+ 'Vendor saved!' => 'Data Supplier sudah disimpan!',
+ 'Vendors' => 'Supplier',
+ 'Zip/Postal Code' => 'Kode Pos',
+ 'days' => 'hari',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'transkasi_hutang' => 'ap_transaction',
+ 'transaksi_piutang' => 'ar_transaction',
+ 'tambah_pelanggan' => 'add_customer',
+ 'tambah_supplier' => 'add_vendor',
+ 'lanjut' => 'continue',
+ 'hapus' => 'delete',
+ 'kasir_(pos)' => 'pos',
+ 'daftar_harga' => 'pricelist',
+ 'pesanan_pembelian_(po)' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'invoice_penjualan' => 'sales_invoice',
+ 'pesanan_penjualan_(so)' => 'sales_order',
+ 'simpan' => 'save',
+ 'simpan_daftar_harga' => 'save_pricelist',
+ 'simpan_sbg_yg_baru' => 'save_as_new',
+ 'invoice_supplier' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/id/gl b/locale/id/gl
new file mode 100755
index 00000000..135b815d
--- /dev/null
+++ b/locale/id/gl
@@ -0,0 +1,126 @@
+$self{texts} = {
+ 'AP Transaction' => 'Transkasi Hutang',
+ 'AR Transaction' => 'Transaksi Piutang',
+ 'Account' => 'Akun',
+ 'Accounting Menu' => 'Menu Akunting',
+ 'Add Cash Transfer Transaction' => 'Tambah Transaksi Transfer Kas',
+ 'Add General Ledger Transaction' => 'Tambah Transaksi GL',
+ 'Address' => 'Alamat',
+ 'All' => 'Semua',
+ 'Amount' => 'Jumlah',
+ 'Are you sure you want to delete Transaction' => 'Apakah anda yakin akan menghapus Nomor Transaksi',
+ 'Asset' => 'Aktiva',
+ 'August' => 'Agustus',
+ 'Balance' => 'Saldo',
+ 'Cannot delete transaction!' => 'Tidak dapat menghapus Transaksi!',
+ 'Cannot post transaction for a closed period!' => 'Tidak dapat posting transaksi untuk perioda yang sudah ditutup!',
+ 'Cannot post transaction!' => 'Tidak dapat posting transaksi!',
+ 'Confirm!' => 'Konfirmasi!',
+ 'Continue' => 'Lanjut',
+ 'Credit' => 'Kredit',
+ 'Customer not on file!' => 'Pelanggan tidak ditemukan!',
+ 'Date' => 'Tanggal',
+ 'December' => 'Desember',
+ 'Delete' => 'Hapus',
+ 'Department' => 'Departemen',
+ 'Description' => 'Keterangan',
+ 'Edit Cash Transfer Transaction' => 'Edit Transaksi Transfer Kas',
+ 'Edit General Ledger Transaction' => 'Edit Transaksi GL',
+ 'Equity' => 'Modal',
+ 'Expense' => 'Biaya',
+ 'February' => 'Februari',
+ 'From' => 'Dari',
+ 'GL Transaction' => 'Transaksi GL',
+ 'Include in Report' => 'Tampilkan pada <br>laporan',
+ 'Income' => 'Pendapatan',
+ 'January' => 'Januari',
+ 'July' => 'Juli',
+ 'June' => 'Juni',
+ 'Liability' => 'Hutang',
+ 'March' => 'Maret',
+ 'May ' => 'Mei',
+ 'Message' => 'Pesan',
+ 'Month' => 'Bulan',
+ 'Notes' => 'Catatan',
+ 'Number' => 'Nomor',
+ 'October' => 'Oktober',
+ 'Period' => 'Perioda',
+ 'Post' => 'Posting',
+ 'Post as new' => 'Posting sbg yang baru',
+ 'Print' => 'Cetak',
+ 'Project' => 'Proyek',
+ 'Project not on file!' => 'Data Proyek tidak ditemukan!',
+ 'Reference' => 'Referensi',
+ 'Reports' => 'Laporan',
+ 'Sales Invoice ' => 'Invoice Penjualan ',
+ 'Select from one of the names below' => 'Pilih dari salah satu nama di bawah',
+ 'Select from one of the projects below' => 'Pilih dari salah satu proyek di bawah',
+ 'Source' => 'Bukti',
+ 'Startdate' => 'Tanggal Mulai',
+ 'To' => 'Sampai',
+ 'Transaction Date missing!' => 'Tanggal Transaksi harap diisi',
+ 'Transaction deleted!' => 'Transaksi sudah dihapus',
+ 'Transaction posted!' => 'Transaksi sudah diposting',
+ 'Vendor Invoice ' => 'Invoice Supplier ',
+ 'Vendor not on file!' => 'Data Supplier tidak ditemukan!',
+ 'Warning!' => 'Peringatan!',
+ 'Year' => 'Tahun',
+ 'Yes' => 'Ya',
+ 'sent' => 'sudah dikirim',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'transkasi_hutang' => 'ap_transaction',
+ 'transaksi_piutang' => 'ar_transaction',
+ 'lanjut' => 'continue',
+ 'hapus' => 'delete',
+ 'transaksi_gl' => 'gl_transaction',
+ 'posting' => 'post',
+ 'posting_sbg_yang_baru' => 'post_as_new',
+ 'invoice_penjualan_' => 'sales_invoice_',
+ 'invoice_supplier_' => 'vendor_invoice_',
+ 'ya' => 'yes',
+};
+
+1;
+
diff --git a/locale/id/hr b/locale/id/hr
new file mode 100755
index 00000000..669e0488
--- /dev/null
+++ b/locale/id/hr
@@ -0,0 +1,94 @@
+$self{texts} = {
+ 'AP' => 'Hutang',
+ 'Above' => 'Di atas',
+ 'Accounting Menu' => 'Menu Akunting',
+ 'Active' => 'Aktif',
+ 'Add Deduction' => 'Tambah Deduksi',
+ 'Add Employee' => 'Tambah Karyawan',
+ 'Address' => 'Alamat',
+ 'Administrator' => 'Administrator',
+ 'After Deduction' => 'Setelah Deduksi',
+ 'All' => 'Semua',
+ 'Amount' => 'Jumlah',
+ 'Amount missing!' => 'Jumlah harap diisi!',
+ 'Based on' => 'Berdasarkan',
+ 'Before Deduction' => 'Sebelum Deduksi',
+ 'Below' => 'Dibawah',
+ 'City' => 'Kota',
+ 'Continue' => 'Lanjut',
+ 'Country' => 'Negara',
+ 'Deduction deleted!' => 'Deduksi sudah dihapus!',
+ 'Deduction saved!' => 'Deduksi sudah disimpan!',
+ 'Deductions' => 'Deduksi',
+ 'Delete' => 'Hapus',
+ 'Description' => 'Keterangan',
+ 'Description missing!' => 'Keterangan harap diisi!',
+ 'Edit Employee' => 'Edit Karyawan',
+ 'Employee' => 'Karyawan',
+ 'Employee Name' => 'Nama Karyawan',
+ 'Employee Number' => 'Nomor Karyawan',
+ 'Employee deleted!' => 'Karyawan sudah dihapus!',
+ 'Employee saved!' => 'Karyawan sudah disimpan',
+ 'Employees' => 'Karyawan',
+ 'Enddate' => 'Tanggal Akhir',
+ 'Expense' => 'Biaya',
+ 'From' => 'Dari',
+ 'Home Phone' => 'Telephone Rumah',
+ 'Include in Report' => 'Tampilkan pada <br>laporan',
+ 'Name' => 'Nama',
+ 'Name missing!' => 'Nama harap diisi!',
+ 'Notes' => 'Catatan',
+ 'Number' => 'Nomor',
+ 'Payroll Deduction' => 'Pengurangan Pembayaran',
+ 'Sales' => 'Penjualan',
+ 'Save' => 'Simpan',
+ 'Save as new' => 'Simpan sbg yg baru',
+ 'Startdate' => 'Tanggal Mulai',
+ 'State/Province' => 'Provinsi',
+ 'Supervisor' => 'Supervisor',
+ 'To' => 'Sampai',
+ 'Work Phone' => 'Telephone Kantor',
+ 'Zip/Postal Code' => 'Kode Pos',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'tambah_deduksi' => 'add_deduction',
+ 'tambah_karyawan' => 'add_employee',
+ 'lanjut' => 'continue',
+ 'hapus' => 'delete',
+ 'simpan' => 'save',
+ 'simpan_sbg_yg_baru' => 'save_as_new',
+};
+
+1;
+
diff --git a/locale/id/ic b/locale/id/ic
new file mode 100755
index 00000000..74258d88
--- /dev/null
+++ b/locale/id/ic
@@ -0,0 +1,214 @@
+$self{texts} = {
+ 'A' => 'A',
+ 'Accounting Menu' => 'Menu Akunting',
+ 'Accounts' => 'Daftar Akun',
+ 'Active' => 'Aktif',
+ 'Add' => 'Tambah',
+ 'Add Assembly' => 'Tambah Rakitan',
+ 'Add Labor/Overhead' => 'Tambah Tenaga Kerja/ Overhead',
+ 'Add Part' => 'Tambah Barang',
+ 'Add Purchase Order' => 'Tambah Pesanan Pembelian (PO)',
+ 'Add Quotation' => 'Tambah Quotation',
+ 'Add Request for Quotation' => 'Tambah Request for Quotation',
+ 'Add Sales Order' => 'Tambah Pesanan Penjualan (SO)',
+ 'Add Service' => 'Tambah Jasa',
+ 'Address' => 'Alamat',
+ 'Assemblies' => 'Rakitan',
+ 'Assemblies restocked!' => 'Barang Rakitan telah di stock ulang!',
+ 'Assembly' => 'Rakitan',
+ 'Attachment' => 'Lampiran',
+ 'August' => 'Agustus',
+ 'Billing Address' => 'Alamat Penagihan',
+ 'Cannot delete item!' => 'Tidak dapat menghapus Item!',
+ 'Cannot stock assemblies!' => 'Tidak dapat men-stock barang rakitan!',
+ 'Cash' => 'Kas dan Bank',
+ 'City' => 'Kota',
+ 'Company Name' => 'Nama Perusahaan',
+ 'Components' => 'Komponen',
+ 'Continue' => 'Lanjut',
+ 'Copies' => 'Jumlah Copy',
+ 'Cost' => 'Biaya',
+ 'Country' => 'Negara',
+ 'Curr' => 'Mata Uang',
+ 'Currency' => 'Mata Uang',
+ 'Customer' => 'Pelanggan',
+ 'Customer Number' => 'Nomor Pelanggan',
+ 'Customer not on file!' => 'Pelanggan tidak ditemukan!',
+ 'Date' => 'Tanggal',
+ 'December' => 'Desember',
+ 'Delete' => 'Hapus',
+ 'Delivery Date' => 'Tanggal Kirim',
+ 'Description' => 'Keterangan',
+ 'Detail' => 'Detil',
+ 'Edit Assembly' => 'Edit Rakitan',
+ 'Edit Labor/Overhead' => 'Edit Tenaga Kerja/ Overhead',
+ 'Edit Part' => 'Edit Barang',
+ 'Edit Service' => 'Edit Jasa',
+ 'Employee' => 'Karyawan',
+ 'Expense' => 'Biaya',
+ 'Extended' => 'Jumlah',
+ 'February' => 'Februari',
+ 'From' => 'Dari',
+ 'Include in Report' => 'Tampilkan pada <br>laporan',
+ 'Income' => 'Pendapatan',
+ 'Invoice' => 'Invoice',
+ 'Invoice Date missing!' => 'Tanggal Invoice harap diisi!',
+ 'Invoice Number' => 'Nomor Invoice',
+ 'Invoice Number missing!' => 'Nomor Invoice harap diisi',
+ 'Item deleted!' => 'Barang sudah dihapus!',
+ 'Item not on file!' => 'Item ini tidak ditemukan!',
+ 'Items' => 'Item',
+ 'January' => 'Januari',
+ 'July' => 'Juli',
+ 'June' => 'Juni',
+ 'Labor/Overhead' => 'Tenaga Kerja/ Overhead',
+ 'Line Total' => 'Total Baris',
+ 'Link Accounts' => 'Akun yg Berhubungan',
+ 'List' => 'Daftar',
+ 'List Price' => 'Daftar Harga',
+ 'Make' => 'Pembuatan',
+ 'March' => 'Maret',
+ 'May ' => 'Mei',
+ 'Message' => 'Pesan',
+ 'Name' => 'Nama',
+ 'No.' => 'No.',
+ 'Notes' => 'Catatan',
+ 'Number' => 'Nomor',
+ 'Obsolete' => 'Kadaluarsa',
+ 'October' => 'Oktober',
+ 'Order' => 'No. Pesanan',
+ 'Order Date missing!' => 'Tanggal Pesanan harap diisi!',
+ 'Order Number' => 'Nomor Pesanan',
+ 'Order Number missing!' => 'Nomor Pesanan harap diisi',
+ 'Packing List Date missing!' => 'Tanggal Packing List harap diisi!',
+ 'Packing List Number missing!' => 'Nomor Packing List harap diisi!',
+ 'Part' => 'Barang',
+ 'Parts' => 'Barang',
+ 'Period' => 'Perioda',
+ 'Phone' => 'Telephone',
+ 'Price' => 'Harga',
+ 'Pricegroup' => 'Kelompok Harga',
+ 'Printed' => 'Sudah dicetak',
+ 'Project' => 'Proyek',
+ 'Purchase Order' => 'Pesanan Pembelian (PO)',
+ 'Purchase Orders' => 'Pesanan Pembelian (PO)',
+ 'Qty' => 'Banyak',
+ 'Quantity exceeds available units to stock!' => 'Jumlah melebihi unit yang tersedia pada inventory!',
+ 'Quotation' => 'Quotation',
+ 'Quotation Date missing!' => 'Tanggal Quotation harap diisi!',
+ 'Quotation Number missing!' => 'Nomor Quotation harap diisi!',
+ 'Quotations' => 'Quotation',
+ 'Recd' => 'Terima',
+ 'Required by' => 'Tanggal Kirim',
+ 'Sales Invoice' => 'Invoice Penjualan',
+ 'Sales Invoices' => 'Invoice Penjualan',
+ 'Sales Order' => 'Pesanan Penjualan (SO)',
+ 'Sales Orders' => 'Pesanan Penjualan (SO)',
+ 'Save' => 'Simpan',
+ 'Save as new' => 'Simpan sbg yg baru',
+ 'Screen' => 'Layar',
+ 'Select from one of the names below' => 'Pilih dari salah satu nama di bawah',
+ 'Select txt, postscript or PDF!' => 'Pilih txt, postscript atau PDF!',
+ 'Sell' => 'Jual',
+ 'Sell Price' => 'Harga Jual',
+ 'Serial No.' => 'No. Seri',
+ 'Serial Number' => 'Nomor Seri',
+ 'Service' => 'Jasa',
+ 'Services' => 'Jasa',
+ 'Ship' => 'Kirim',
+ 'Ship to' => 'Kirim kepada',
+ 'Shipping Address' => 'Alamat Pengiriman',
+ 'State/Province' => 'Provinsi',
+ 'Summary' => 'Ringkasan',
+ 'Tax' => 'Pajak',
+ 'To' => 'Sampai',
+ 'Unit' => 'Satuan',
+ 'Updated' => 'Diupdate',
+ 'Vendor' => 'Supplier',
+ 'Vendor Invoice' => 'Invoice Supplier',
+ 'Vendor Invoices' => 'Invoice Supplier',
+ 'Vendor Number' => 'Nomor Supplier',
+ 'Vendor not on file!' => 'Data Supplier tidak ditemukan!',
+ 'Warehouse' => 'Gudang',
+ 'Weight' => 'Berat',
+ 'What type of item is this?' => 'Jenis item ini ?',
+ 'Year' => 'Tahun',
+ 'Zip/Postal Code' => 'Kode Pos',
+ 'days' => 'hari',
+ 'sent' => 'sudah dikirim',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'tambah_rakitan' => 'add_assembly',
+ 'tambah_tenaga_kerja__overhead' => 'add_labor_overhead',
+ 'tambah_barang' => 'add_part',
+ 'tambah_jasa' => 'add_service',
+ 'lanjut' => 'continue',
+ 'hapus' => 'delete',
+ 'edit_rakitan' => 'edit_assembly',
+ 'edit_barang' => 'edit_part',
+ 'edit_jasa' => 'edit_service',
+ 'simpan' => 'save',
+ 'simpan_sbg_yg_baru' => 'save_as_new',
+};
+
+1;
+
diff --git a/locale/id/io b/locale/id/io
new file mode 100755
index 00000000..297bce80
--- /dev/null
+++ b/locale/id/io
@@ -0,0 +1,94 @@
+$self{texts} = {
+ 'Add Purchase Order' => 'Tambah Pesanan Pembelian (PO)',
+ 'Add Quotation' => 'Tambah Quotation',
+ 'Add Request for Quotation' => 'Tambah Request for Quotation',
+ 'Add Sales Order' => 'Tambah Pesanan Penjualan (SO)',
+ 'Address' => 'Alamat',
+ 'Attachment' => 'Lampiran',
+ 'August' => 'Agustus',
+ 'Billing Address' => 'Alamat Penagihan',
+ 'City' => 'Kota',
+ 'Company Name' => 'Nama Perusahaan',
+ 'Continue' => 'Lanjut',
+ 'Copies' => 'Jumlah Copy',
+ 'Country' => 'Negara',
+ 'Customer Number' => 'Nomor Pelanggan',
+ 'Date' => 'Tanggal',
+ 'December' => 'Desember',
+ 'Delivery Date' => 'Tanggal Kirim',
+ 'Description' => 'Keterangan',
+ 'Extended' => 'Jumlah',
+ 'February' => 'Februari',
+ 'Invoice' => 'Invoice',
+ 'Invoice Date missing!' => 'Tanggal Invoice harap diisi!',
+ 'Invoice Number missing!' => 'Nomor Invoice harap diisi',
+ 'Item not on file!' => 'Item ini tidak ditemukan!',
+ 'January' => 'Januari',
+ 'July' => 'Juli',
+ 'June' => 'Juni',
+ 'March' => 'Maret',
+ 'May ' => 'Mei',
+ 'Message' => 'Pesan',
+ 'Number' => 'Nomor',
+ 'October' => 'Oktober',
+ 'Order Date missing!' => 'Tanggal Pesanan harap diisi!',
+ 'Order Number missing!' => 'Nomor Pesanan harap diisi',
+ 'Packing List Date missing!' => 'Tanggal Packing List harap diisi!',
+ 'Packing List Number missing!' => 'Nomor Packing List harap diisi!',
+ 'Part' => 'Barang',
+ 'Phone' => 'Telephone',
+ 'Price' => 'Harga',
+ 'Printed' => 'Sudah dicetak',
+ 'Project' => 'Proyek',
+ 'Purchase Order' => 'Pesanan Pembelian (PO)',
+ 'Qty' => 'Banyak',
+ 'Quotation' => 'Quotation',
+ 'Quotation Date missing!' => 'Tanggal Quotation harap diisi!',
+ 'Quotation Number missing!' => 'Nomor Quotation harap diisi!',
+ 'Recd' => 'Terima',
+ 'Required by' => 'Tanggal Kirim',
+ 'Sales Order' => 'Pesanan Penjualan (SO)',
+ 'Screen' => 'Layar',
+ 'Select txt, postscript or PDF!' => 'Pilih txt, postscript atau PDF!',
+ 'Serial No.' => 'No. Seri',
+ 'Service' => 'Jasa',
+ 'Ship' => 'Kirim',
+ 'Ship to' => 'Kirim kepada',
+ 'Shipping Address' => 'Alamat Pengiriman',
+ 'State/Province' => 'Provinsi',
+ 'To' => 'Sampai',
+ 'Unit' => 'Satuan',
+ 'Vendor Number' => 'Nomor Supplier',
+ 'What type of item is this?' => 'Jenis item ini ?',
+ 'Zip/Postal Code' => 'Kode Pos',
+ 'sent' => 'sudah dikirim',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'lanjut' => 'continue',
+};
+
+1;
+
diff --git a/locale/id/ir b/locale/id/ir
new file mode 100755
index 00000000..1cfffeaa
--- /dev/null
+++ b/locale/id/ir
@@ -0,0 +1,181 @@
+$self{texts} = {
+ 'Account' => 'Akun',
+ 'Accounting Menu' => 'Menu Akunting',
+ 'Add Purchase Order' => 'Tambah Pesanan Pembelian (PO)',
+ 'Add Quotation' => 'Tambah Quotation',
+ 'Add Request for Quotation' => 'Tambah Request for Quotation',
+ 'Add Sales Order' => 'Tambah Pesanan Penjualan (SO)',
+ 'Add Vendor Invoice' => 'Tambah Invoice Supplier',
+ 'Address' => 'Alamat',
+ 'Amount' => 'Jumlah',
+ 'Are you sure you want to delete Invoice Number' => 'Apakah anda yakin akan menghapus Nomor Invoice',
+ 'Attachment' => 'Lampiran',
+ 'August' => 'Agustus',
+ 'Billing Address' => 'Alamat Penagihan',
+ 'Cannot delete invoice!' => 'Tidak dapat menghapus Invoice!',
+ 'Cannot post invoice for a closed period!' => 'Tidak dapat posting invoice untuk perioda yang sudah ditutup!',
+ 'Cannot post invoice!' => 'Tidak dapat posting Invoice!',
+ 'Cannot post payment for a closed period!' => 'Tidak dapat posting pembayaran untuk perioda yang sudah ditutup!',
+ 'City' => 'Kota',
+ 'Company Name' => 'Nama Perusahaan',
+ 'Confirm!' => 'Konfirmasi!',
+ 'Continue' => 'Lanjut',
+ 'Copies' => 'Jumlah Copy',
+ 'Country' => 'Negara',
+ 'Credit Limit' => 'Batas Kredit',
+ 'Currency' => 'Mata Uang',
+ 'Customer Number' => 'Nomor Pelanggan',
+ 'Customer not on file!' => 'Pelanggan tidak ditemukan!',
+ 'Date' => 'Tanggal',
+ 'December' => 'Desember',
+ 'Delete' => 'Hapus',
+ 'Delivery Date' => 'Tanggal Kirim',
+ 'Department' => 'Departemen',
+ 'Description' => 'Keterangan',
+ 'Due Date' => 'Jatuh Tempo',
+ 'Edit Vendor Invoice' => 'Edit Invoice Supplier',
+ 'Exchange Rate' => 'Kurs',
+ 'Exchange rate missing!' => 'Kurs harap diisi!',
+ 'Extended' => 'Jumlah',
+ 'February' => 'Februari',
+ 'Invoice' => 'Invoice',
+ 'Invoice Date' => 'Tanggal Invoice',
+ 'Invoice Date missing!' => 'Tanggal Invoice harap diisi!',
+ 'Invoice Number' => 'Nomor Invoice',
+ 'Invoice Number missing!' => 'Nomor Invoice harap diisi',
+ 'Invoice deleted!' => 'Invoice sudah dihapus',
+ 'Item not on file!' => 'Item ini tidak ditemukan!',
+ 'January' => 'Januari',
+ 'July' => 'Juli',
+ 'June' => 'Juni',
+ 'Language' => 'Bahasa',
+ 'March' => 'Maret',
+ 'May ' => 'Mei',
+ 'Message' => 'Pesan',
+ 'Notes' => 'Catatan',
+ 'Number' => 'Nomor',
+ 'October' => 'Oktober',
+ 'Order Date missing!' => 'Tanggal Pesanan harap diisi!',
+ 'Order Number' => 'Nomor Pesanan',
+ 'Order Number missing!' => 'Nomor Pesanan harap diisi',
+ 'Packing List Date missing!' => 'Tanggal Packing List harap diisi!',
+ 'Packing List Number missing!' => 'Nomor Packing List harap diisi!',
+ 'Part' => 'Barang',
+ 'Payment date missing!' => 'Tanggal Pembayaran harap diisi!',
+ 'Payments' => 'Pembayaran',
+ 'Phone' => 'Telephone',
+ 'Post' => 'Posting',
+ 'Post as new' => 'Posting sbg yang baru',
+ 'Price' => 'Harga',
+ 'Print' => 'Cetak',
+ 'Printed' => 'Sudah dicetak',
+ 'Project' => 'Proyek',
+ 'Project not on file!' => 'Data Proyek tidak ditemukan!',
+ 'Purchase Order' => 'Pesanan Pembelian (PO)',
+ 'Qty' => 'Banyak',
+ 'Quotation' => 'Quotation',
+ 'Quotation Date missing!' => 'Tanggal Quotation harap diisi!',
+ 'Quotation Number missing!' => 'Nomor Quotation harap diisi!',
+ 'Recd' => 'Terima',
+ 'Record in' => 'Catat pada',
+ 'Reference' => 'Referensi',
+ 'Remaining' => 'Sisa',
+ 'Required by' => 'Tanggal Kirim',
+ 'Sales Order' => 'Pesanan Penjualan (SO)',
+ 'Screen' => 'Layar',
+ 'Select from one of the names below' => 'Pilih dari salah satu nama di bawah',
+ 'Select from one of the projects below' => 'Pilih dari salah satu proyek di bawah',
+ 'Select txt, postscript or PDF!' => 'Pilih txt, postscript atau PDF!',
+ 'Serial No.' => 'No. Seri',
+ 'Service' => 'Jasa',
+ 'Ship' => 'Kirim',
+ 'Ship to' => 'Kirim kepada',
+ 'Shipping Address' => 'Alamat Pengiriman',
+ 'Source' => 'Bukti',
+ 'Startdate' => 'Tanggal Mulai',
+ 'State/Province' => 'Provinsi',
+ 'Tax Included' => 'Termasuk Pajak',
+ 'To' => 'Sampai',
+ 'Total' => 'Total',
+ 'Unit' => 'Satuan',
+ 'Vendor' => 'Supplier',
+ 'Vendor Number' => 'Nomor Supplier',
+ 'Vendor missing!' => 'Data Supplier harap diisi!',
+ 'Vendor not on file!' => 'Data Supplier tidak ditemukan!',
+ 'Warning!' => 'Peringatan!',
+ 'What type of item is this?' => 'Jenis item ini ?',
+ 'Yes' => 'Ya',
+ 'Zip/Postal Code' => 'Kode Pos',
+ 'posted!' => 'sudah diposting!',
+ 'sent' => 'sudah dikirim',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'lanjut' => 'continue',
+ 'hapus' => 'delete',
+ 'posting' => 'post',
+ 'posting_sbg_yang_baru' => 'post_as_new',
+ 'pesanan_pembelian_(po)' => 'purchase_order',
+ 'ya' => 'yes',
+};
+
+1;
+
diff --git a/locale/id/is b/locale/id/is
new file mode 100755
index 00000000..52155702
--- /dev/null
+++ b/locale/id/is
@@ -0,0 +1,190 @@
+$self{texts} = {
+ 'Account' => 'Akun',
+ 'Accounting Menu' => 'Menu Akunting',
+ 'Add Purchase Order' => 'Tambah Pesanan Pembelian (PO)',
+ 'Add Quotation' => 'Tambah Quotation',
+ 'Add Request for Quotation' => 'Tambah Request for Quotation',
+ 'Add Sales Invoice' => 'Tambah Invoice Penjualan',
+ 'Add Sales Order' => 'Tambah Pesanan Penjualan (SO)',
+ 'Address' => 'Alamat',
+ 'Amount' => 'Jumlah',
+ 'Are you sure you want to delete Invoice Number' => 'Apakah anda yakin akan menghapus Nomor Invoice',
+ 'Attachment' => 'Lampiran',
+ 'August' => 'Agustus',
+ 'Billing Address' => 'Alamat Penagihan',
+ 'Business' => 'Bisnis',
+ 'Cannot delete invoice!' => 'Tidak dapat menghapus Invoice!',
+ 'Cannot post invoice for a closed period!' => 'Tidak dapat posting invoice untuk perioda yang sudah ditutup!',
+ 'Cannot post invoice!' => 'Tidak dapat posting Invoice!',
+ 'Cannot post payment for a closed period!' => 'Tidak dapat posting pembayaran untuk perioda yang sudah ditutup!',
+ 'City' => 'Kota',
+ 'Company Name' => 'Nama Perusahaan',
+ 'Confirm!' => 'Konfirmasi!',
+ 'Continue' => 'Lanjut',
+ 'Copies' => 'Jumlah Copy',
+ 'Country' => 'Negara',
+ 'Credit Limit' => 'Batas Kredit',
+ 'Currency' => 'Mata Uang',
+ 'Customer' => 'Pelanggan',
+ 'Customer Number' => 'Nomor Pelanggan',
+ 'Customer missing!' => 'Pelanggan harap diisi!',
+ 'Customer not on file!' => 'Pelanggan tidak ditemukan!',
+ 'Date' => 'Tanggal',
+ 'December' => 'Desember',
+ 'Delete' => 'Hapus',
+ 'Delivery Date' => 'Tanggal Kirim',
+ 'Department' => 'Departemen',
+ 'Description' => 'Keterangan',
+ 'Due Date' => 'Jatuh Tempo',
+ 'Edit Sales Invoice' => 'Edit Invoice Penjualan',
+ 'Exchange Rate' => 'Kurs',
+ 'Exchange rate missing!' => 'Kurs harap diisi!',
+ 'Extended' => 'Jumlah',
+ 'February' => 'Februari',
+ 'Invoice' => 'Invoice',
+ 'Invoice Date' => 'Tanggal Invoice',
+ 'Invoice Date missing!' => 'Tanggal Invoice harap diisi!',
+ 'Invoice Number' => 'Nomor Invoice',
+ 'Invoice Number missing!' => 'Nomor Invoice harap diisi',
+ 'Invoice deleted!' => 'Invoice sudah dihapus',
+ 'Item not on file!' => 'Item ini tidak ditemukan!',
+ 'January' => 'Januari',
+ 'July' => 'Juli',
+ 'June' => 'Juni',
+ 'March' => 'Maret',
+ 'May ' => 'Mei',
+ 'Message' => 'Pesan',
+ 'Notes' => 'Catatan',
+ 'Number' => 'Nomor',
+ 'October' => 'Oktober',
+ 'Order Date missing!' => 'Tanggal Pesanan harap diisi!',
+ 'Order Number' => 'Nomor Pesanan',
+ 'Order Number missing!' => 'Nomor Pesanan harap diisi',
+ 'Packing List Date missing!' => 'Tanggal Packing List harap diisi!',
+ 'Packing List Number missing!' => 'Nomor Packing List harap diisi!',
+ 'Part' => 'Barang',
+ 'Payment date missing!' => 'Tanggal Pembayaran harap diisi!',
+ 'Payments' => 'Pembayaran',
+ 'Phone' => 'Telephone',
+ 'Post' => 'Posting',
+ 'Post as new' => 'Posting sbg yang baru',
+ 'Price' => 'Harga',
+ 'Print' => 'Cetak',
+ 'Print and Post' => 'Cetak dan Posting',
+ 'Printed' => 'Sudah dicetak',
+ 'Project' => 'Proyek',
+ 'Project not on file!' => 'Data Proyek tidak ditemukan!',
+ 'Purchase Order' => 'Pesanan Pembelian (PO)',
+ 'Qty' => 'Banyak',
+ 'Quotation' => 'Quotation',
+ 'Quotation Date missing!' => 'Tanggal Quotation harap diisi!',
+ 'Quotation Number missing!' => 'Nomor Quotation harap diisi!',
+ 'Recd' => 'Terima',
+ 'Record in' => 'Catat pada',
+ 'Reference' => 'Referensi',
+ 'Remaining' => 'Sisa',
+ 'Required by' => 'Tanggal Kirim',
+ 'Sales Order' => 'Pesanan Penjualan (SO)',
+ 'Salesperson' => 'Salesman',
+ 'Screen' => 'Layar',
+ 'Select from one of the names below' => 'Pilih dari salah satu nama di bawah',
+ 'Select from one of the projects below' => 'Pilih dari salah satu proyek di bawah',
+ 'Select postscript or PDF!' => 'Pilih postscript atau PDF!',
+ 'Select txt, postscript or PDF!' => 'Pilih txt, postscript atau PDF!',
+ 'Serial No.' => 'No. Seri',
+ 'Service' => 'Jasa',
+ 'Ship' => 'Kirim',
+ 'Ship to' => 'Kirim kepada',
+ 'Ship via' => 'Kirim melalui',
+ 'Shipping Address' => 'Alamat Pengiriman',
+ 'Shipping Point' => 'Titik Pengiriman',
+ 'Source' => 'Bukti',
+ 'Startdate' => 'Tanggal Mulai',
+ 'State/Province' => 'Provinsi',
+ 'Tax Included' => 'Termasuk Pajak',
+ 'To' => 'Sampai',
+ 'Total' => 'Total',
+ 'Unit' => 'Satuan',
+ 'Vendor Number' => 'Nomor Supplier',
+ 'Vendor not on file!' => 'Data Supplier tidak ditemukan!',
+ 'Warning!' => 'Peringatan!',
+ 'What type of item is this?' => 'Jenis item ini ?',
+ 'Yes' => 'Ya',
+ 'Zip/Postal Code' => 'Kode Pos',
+ 'posted!' => 'sudah diposting!',
+ 'sent' => 'sudah dikirim',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'lanjut' => 'continue',
+ 'hapus' => 'delete',
+ 'posting' => 'post',
+ 'posting_sbg_yang_baru' => 'post_as_new',
+ 'cetak' => 'print',
+ 'cetak_dan_posting' => 'print_and_post',
+ 'pesanan_penjualan_(so)' => 'sales_order',
+ 'kirim_kepada' => 'ship_to',
+ 'ya' => 'yes',
+};
+
+1;
+
diff --git a/locale/id/jc b/locale/id/jc
new file mode 100755
index 00000000..d160efe4
--- /dev/null
+++ b/locale/id/jc
@@ -0,0 +1,82 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menu Akunting',
+ 'Amount' => 'Jumlah',
+ 'Confirm!' => 'Konfirmasi!',
+ 'Continue' => 'Lanjut',
+ 'Cost' => 'Biaya',
+ 'Date' => 'Tanggal',
+ 'Date missing!' => 'Tanggal harap diisi!',
+ 'Delete' => 'Hapus',
+ 'Description' => 'Keterangan',
+ 'Employee' => 'Karyawan',
+ 'From' => 'Dari',
+ 'Include in Report' => 'Tampilkan pada <br>laporan',
+ 'Month' => 'Bulan',
+ 'Notes' => 'Catatan',
+ 'Period' => 'Perioda',
+ 'Print' => 'Cetak',
+ 'Print and Save' => 'Cetak dan Simpan',
+ 'Printed' => 'Sudah dicetak',
+ 'Project Number' => 'Nomor Proyek',
+ 'Project Number missing!' => 'Nomor Proyek harap diisi!',
+ 'Qty' => 'Banyak',
+ 'Save' => 'Simpan',
+ 'Save as new' => 'Simpan sbg yg baru',
+ 'Screen' => 'Layar',
+ 'Select postscript or PDF!' => 'Pilih postscript atau PDF!',
+ 'Startdate' => 'Tanggal Mulai',
+ 'To' => 'Sampai',
+ 'Total' => 'Total',
+ 'Warning!' => 'Peringatan!',
+ 'Year' => 'Tahun',
+ 'Yes' => 'Ya',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'lanjut' => 'continue',
+ 'hapus' => 'delete',
+ 'cetak' => 'print',
+ 'cetak_dan_simpan' => 'print_and_save',
+ 'simpan' => 'save',
+ 'simpan_sbg_yg_baru' => 'save_as_new',
+ 'ya' => 'yes',
+};
+
+1;
+
diff --git a/locale/id/locales.pl b/locale/id/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/id/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/id/login b/locale/id/login
new file mode 100755
index 00000000..a21f26fb
--- /dev/null
+++ b/locale/id/login
@@ -0,0 +1,20 @@
+$self{texts} = {
+ 'Company' => 'Perusahaan',
+ 'Continue' => 'Lanjut',
+ 'Dataset is newer than version!' => 'Dataset lebih baru daripada versi!',
+ 'Incorrect Dataset version!' => 'Versi Dataset tidak benar!',
+ 'Name' => 'Nama',
+ 'Version' => 'Versi',
+ 'You did not enter a name!' => 'Anda tidak memasukkan nama!',
+ 'done' => 'selesai',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+};
+
+1;
+
diff --git a/locale/id/menu b/locale/id/menu
new file mode 100755
index 00000000..28d18a22
--- /dev/null
+++ b/locale/id/menu
@@ -0,0 +1,110 @@
+$self{texts} = {
+ 'AP' => 'Hutang',
+ 'AP Aging' => 'Umur Hutang',
+ 'AP Transaction' => 'Transkasi Hutang',
+ 'AR' => 'Piutang',
+ 'AR Aging' => 'Umur Piutang',
+ 'AR Transaction' => 'Transaksi Piutang',
+ 'Accounting Menu' => 'Menu Akunting',
+ 'Add Account' => 'Tambah Akun',
+ 'Add Assembly' => 'Tambah Rakitan',
+ 'Add Business' => 'Tambah Jenis Bisnis',
+ 'Add Customer' => 'Tambah Pelanggan',
+ 'Add Department' => 'Tambah Departemen',
+ 'Add Employee' => 'Tambah Karyawan',
+ 'Add GIFI' => 'Tambah GIFI',
+ 'Add Group' => 'Tambah Kelompok Rakitan',
+ 'Add Labor/Overhead' => 'Tambah Tenaga Kerja/ Overhead',
+ 'Add Language' => 'Tambah Bahasa',
+ 'Add Part' => 'Tambah Barang',
+ 'Add Pricegroup' => 'Tambah Kelompok Harga',
+ 'Add Project' => 'Tambah Proyek',
+ 'Add SIC' => 'Tambah SIC',
+ 'Add Service' => 'Tambah Jasa',
+ 'Add Transaction' => 'Tambah Transaksi',
+ 'Add Vendor' => 'Tambah Supplier',
+ 'Add Warehouse' => 'Tambah Gudang',
+ 'All Items' => 'Semua Item',
+ 'Assemblies' => 'Rakitan',
+ 'Audit Control' => 'Kontrol Audit',
+ 'Balance Sheet' => 'Neraca',
+ 'Cash' => 'Kas dan Bank',
+ 'Chart of Accounts' => 'Bagan Akun',
+ 'Components' => 'Komponen',
+ 'Customers' => 'Pelanggan',
+ 'Defaults' => 'Default',
+ 'Departments' => 'Departemen',
+ 'Description' => 'Keterangan',
+ 'Employees' => 'Karyawan',
+ 'Goods & Services' => 'Barang dan Jasa',
+ 'Groups' => 'Kelompok Rakitan',
+ 'History' => 'Historis',
+ 'Income Statement' => 'Laba Rugi',
+ 'Invoice' => 'Invoice',
+ 'LaTeX Templates' => 'Template LaTeX',
+ 'Labor/Overhead' => 'Tenaga Kerja/ Overhead',
+ 'Language' => 'Bahasa',
+ 'List Accounts' => 'Daftar Akun',
+ 'List Businesses' => 'Daftar Bisnis',
+ 'List Departments' => 'Daftar Departemen',
+ 'List GIFI' => 'Daftar GIFI',
+ 'List Languages' => 'Daftar Bahasa',
+ 'List Projects' => 'Daftar Proyek',
+ 'List SIC' => 'Daftar SIC',
+ 'List Warehouses' => 'Daftar Gudang',
+ 'New Window' => 'Buka Window Baru',
+ 'Non-taxable' => 'Tanpa Pajak',
+ 'Order Entry' => 'Pesanan',
+ 'Outstanding' => 'Belum Lunas',
+ 'POS' => 'Kasir (POS)',
+ 'POS Invoice' => 'Invoice Kasir',
+ 'Parts' => 'Barang',
+ 'Payment' => 'Pembayaran',
+ 'Payments' => 'Pembayaran',
+ 'Pricegroups' => 'Kelompok Harga',
+ 'Print' => 'Cetak',
+ 'Projects' => 'Proyek',
+ 'Purchase Order' => 'Pesanan Pembelian (PO)',
+ 'Purchase Orders' => 'Pesanan Pembelian (PO)',
+ 'Quotation' => 'Quotation',
+ 'Quotations' => 'Quotation',
+ 'Receipt' => 'Penerimaan',
+ 'Receipts' => 'Penerimaan',
+ 'Receive' => 'Penerimaan',
+ 'Reconciliation' => 'Rekonsiliasi',
+ 'Reports' => 'Laporan',
+ 'Sale' => 'Penjualan',
+ 'Sales Invoice' => 'Invoice Penjualan',
+ 'Sales Invoices' => 'Invoice Penjualan',
+ 'Sales Order' => 'Pesanan Penjualan (SO)',
+ 'Sales Orders' => 'Pesanan Penjualan (SO)',
+ 'Save to File' => 'Simpan ke File',
+ 'Search' => 'Cari',
+ 'Send by E-Mail' => 'Kirim melalui E-mail',
+ 'Services' => 'Jasa',
+ 'Ship' => 'Kirim',
+ 'Shipping' => 'Kirim dan Terima',
+ 'System' => 'Sistem',
+ 'Tax collected' => 'Pajak Terkumpul',
+ 'Tax paid' => 'Pajak Dibayar',
+ 'Text Templates' => 'Template Text',
+ 'Transactions' => 'Transaksi',
+ 'Trial Balance' => 'Neraca Percobaan',
+ 'Type of Business' => 'Jenis Bisnis',
+ 'Vendor Invoice' => 'Invoice Supplier',
+ 'Vendors' => 'Supplier',
+ 'Version' => 'Versi',
+ 'Warehouses' => 'Gudang',
+ 'Yearend' => 'Akhir Tahun',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/id/oe b/locale/id/oe
new file mode 100755
index 00000000..2aa15b15
--- /dev/null
+++ b/locale/id/oe
@@ -0,0 +1,259 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menu Akunting',
+ 'Add Exchange Rate' => 'Tambah Kurs',
+ 'Add Purchase Order' => 'Tambah Pesanan Pembelian (PO)',
+ 'Add Quotation' => 'Tambah Quotation',
+ 'Add Request for Quotation' => 'Tambah Request for Quotation',
+ 'Add Sales Invoice' => 'Tambah Invoice Penjualan',
+ 'Add Sales Order' => 'Tambah Pesanan Penjualan (SO)',
+ 'Add Vendor Invoice' => 'Tambah Invoice Supplier',
+ 'Address' => 'Alamat',
+ 'Amount' => 'Jumlah',
+ 'Are you sure you want to delete Order Number' => 'Apakah anda yakin akan menghapus Nomor Order',
+ 'Are you sure you want to delete Quotation Number' => 'Apakah anda yakin akan menghapus Nomor Quotasi',
+ 'Attachment' => 'Lampiran',
+ 'August' => 'Agustus',
+ 'Billing Address' => 'Alamat Penagihan',
+ 'Business' => 'Bisnis',
+ 'Cannot delete order!' => 'Tidak dapat menghapus Pesanan!',
+ 'Cannot delete quotation!' => 'Tidak dapat menghapus Quotation!',
+ 'Cannot save order!' => 'Tidak dapat menyimpan pesanan!',
+ 'Cannot save quotation!' => 'Tidak dapat menyimpan quotation!',
+ 'City' => 'Kota',
+ 'Company Name' => 'Nama Perusahaan',
+ 'Confirm!' => 'Konfirmasi!',
+ 'Continue' => 'Lanjut',
+ 'Copies' => 'Jumlah Copy',
+ 'Cost' => 'Biaya',
+ 'Could not save!' => 'Tidak dapat menyimpan',
+ 'Could not transfer Inventory!' => 'Tidak dapat mentransfer Inventory',
+ 'Country' => 'Negara',
+ 'Credit Limit' => 'Batas Kredit',
+ 'Curr' => 'Mata Uang',
+ 'Currency' => 'Mata Uang',
+ 'Customer' => 'Pelanggan',
+ 'Customer Number' => 'Nomor Pelanggan',
+ 'Customer missing!' => 'Pelanggan harap diisi!',
+ 'Customer not on file!' => 'Pelanggan tidak ditemukan!',
+ 'Date' => 'Tanggal',
+ 'Date Received' => 'Tanggal Diterima',
+ 'Date received missing!' => 'Tanggal diterima harap diisi!',
+ 'December' => 'Desember',
+ 'Delete' => 'Hapus',
+ 'Delivery Date' => 'Tanggal Kirim',
+ 'Department' => 'Departemen',
+ 'Description' => 'Keterangan',
+ 'Done' => 'Selesai',
+ 'Edit Purchase Order' => 'Edit Pesanan Pembelian (PO)',
+ 'Edit Sales Order' => 'Edit Pesanan Penjualan (SO)',
+ 'Employee' => 'Karyawan',
+ 'Exchange Rate' => 'Kurs',
+ 'Exchange rate missing!' => 'Kurs harap diisi!',
+ 'Extended' => 'Jumlah',
+ 'February' => 'Februari',
+ 'From' => 'Dari',
+ 'Include in Report' => 'Tampilkan pada <br>laporan',
+ 'Inventory saved!' => 'Inventory sudah disimpan!',
+ 'Inventory transferred!' => 'Inventory sudah di-transfer',
+ 'Invoice' => 'Invoice',
+ 'Invoice Date missing!' => 'Tanggal Invoice harap diisi!',
+ 'Invoice Number missing!' => 'Nomor Invoice harap diisi',
+ 'Item not on file!' => 'Item ini tidak ditemukan!',
+ 'January' => 'Januari',
+ 'July' => 'Juli',
+ 'June' => 'Juni',
+ 'March' => 'Maret',
+ 'May ' => 'Mei',
+ 'Message' => 'Pesan',
+ 'Month' => 'Bulan',
+ 'No.' => 'No.',
+ 'Notes' => 'Catatan',
+ 'Nothing entered!' => 'Catatan sudah dimasukkan!',
+ 'Nothing selected!' => 'Tidak ada yang dipilih!',
+ 'Nothing to transfer!' => 'Tidak ada yang akan di-transfer!',
+ 'Number' => 'Nomor',
+ 'October' => 'Oktober',
+ 'Order' => 'No. Pesanan',
+ 'Order Date' => 'Tanggal Pesanan',
+ 'Order Date missing!' => 'Tanggal Pesanan harap diisi!',
+ 'Order Number' => 'Nomor Pesanan',
+ 'Order Number missing!' => 'Nomor Pesanan harap diisi',
+ 'Order deleted!' => 'Pesanan sudah dihapus!',
+ 'Order saved!' => 'Pesanan sudah disimpan!',
+ 'Packing List Date missing!' => 'Tanggal Packing List harap diisi!',
+ 'Packing List Number missing!' => 'Nomor Packing List harap diisi!',
+ 'Part' => 'Barang',
+ 'Period' => 'Perioda',
+ 'Phone' => 'Telephone',
+ 'Price' => 'Harga',
+ 'Print' => 'Cetak',
+ 'Print and Save' => 'Cetak dan Simpan',
+ 'Printed' => 'Sudah dicetak',
+ 'Project' => 'Proyek',
+ 'Project not on file!' => 'Data Proyek tidak ditemukan!',
+ 'Purchase Order' => 'Pesanan Pembelian (PO)',
+ 'Purchase Orders' => 'Pesanan Pembelian (PO)',
+ 'Qty' => 'Banyak',
+ 'Quotation' => 'Quotation',
+ 'Quotation ' => 'No.Quotation',
+ 'Quotation Date' => 'Tanggal Quotation',
+ 'Quotation Date missing!' => 'Tanggal Quotation harap diisi!',
+ 'Quotation Number' => 'Nomor Quotation',
+ 'Quotation Number missing!' => 'Nomor Quotation harap diisi!',
+ 'Quotation deleted!' => 'Nomor Quotation sudah dihapus!',
+ 'Quotations' => 'Quotation',
+ 'Recd' => 'Terima',
+ 'Receive Merchandise' => 'Penerimaan Barang',
+ 'Reference' => 'Referensi',
+ 'Remaining' => 'Sisa',
+ 'Required by' => 'Tanggal Kirim',
+ 'Sales Invoice' => 'Invoice Penjualan',
+ 'Sales Order' => 'Pesanan Penjualan (SO)',
+ 'Sales Orders' => 'Pesanan Penjualan (SO)',
+ 'Salesperson' => 'Salesman',
+ 'Save' => 'Simpan',
+ 'Save as new' => 'Simpan sbg yg baru',
+ 'Screen' => 'Layar',
+ 'Select from one of the names below' => 'Pilih dari salah satu nama di bawah',
+ 'Select from one of the projects below' => 'Pilih dari salah satu proyek di bawah',
+ 'Select postscript or PDF!' => 'Pilih postscript atau PDF!',
+ 'Select txt, postscript or PDF!' => 'Pilih txt, postscript atau PDF!',
+ 'Serial No.' => 'No. Seri',
+ 'Service' => 'Jasa',
+ 'Ship' => 'Kirim',
+ 'Ship Merchandise' => 'Pengiriman Barang',
+ 'Ship to' => 'Kirim kepada',
+ 'Ship via' => 'Kirim melalui',
+ 'Shipping Address' => 'Alamat Pengiriman',
+ 'Shipping Date' => 'Tanggal Pengiriman',
+ 'Shipping Date missing!' => 'Tanggal Pengiriman harap diisi!',
+ 'Shipping Point' => 'Titik Pengiriman',
+ 'Startdate' => 'Tanggal Mulai',
+ 'State/Province' => 'Provinsi',
+ 'Tax' => 'Pajak',
+ 'Tax Included' => 'Termasuk Pajak',
+ 'Terms' => 'Termin',
+ 'To' => 'Sampai',
+ 'Total' => 'Total',
+ 'Transfer to' => 'Transfer ke',
+ 'Unit' => 'Satuan',
+ 'Valid until' => 'Valid hingga',
+ 'Vendor' => 'Supplier',
+ 'Vendor Invoice' => 'Invoice Supplier',
+ 'Vendor Number' => 'Nomor Supplier',
+ 'Vendor missing!' => 'Data Supplier harap diisi!',
+ 'Vendor not on file!' => 'Data Supplier tidak ditemukan!',
+ 'Warehouse' => 'Gudang',
+ 'Warning!' => 'Peringatan!',
+ 'What type of item is this?' => 'Jenis item ini ?',
+ 'Year' => 'Tahun',
+ 'Yes' => 'Ya',
+ 'Zip/Postal Code' => 'Kode Pos',
+ 'days' => 'hari',
+ 'sent' => 'sudah dikirim',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'lanjut' => 'continue',
+ 'hapus' => 'delete',
+ 'selesai' => 'done',
+ 'cetak' => 'print',
+ 'cetak_dan_simpan' => 'print_and_save',
+ 'pesanan_pembelian_(po)' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'no.quotation' => 'quotation_',
+ 'invoice_penjualan' => 'sales_invoice',
+ 'pesanan_penjualan_(so)' => 'sales_order',
+ 'simpan' => 'save',
+ 'simpan_sbg_yg_baru' => 'save_as_new',
+ 'kirim_kepada' => 'ship_to',
+ 'invoice_supplier' => 'vendor_invoice',
+ 'ya' => 'yes',
+};
+
+1;
+
diff --git a/locale/id/pe b/locale/id/pe
new file mode 100755
index 00000000..965cccce
--- /dev/null
+++ b/locale/id/pe
@@ -0,0 +1,124 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menu Akunting',
+ 'Active' => 'Aktif',
+ 'Add' => 'Tambah',
+ 'Add Group' => 'Tambah Kelompok Rakitan',
+ 'Add Pricegroup' => 'Tambah Kelompok Harga',
+ 'Add Project' => 'Tambah Proyek',
+ 'Address' => 'Alamat',
+ 'All' => 'Semua',
+ 'Amount' => 'Jumlah',
+ 'Assembly' => 'Rakitan',
+ 'Continue' => 'Lanjut',
+ 'Customer' => 'Pelanggan',
+ 'Customer missing!' => 'Pelanggan harap diisi!',
+ 'Customer not on file!' => 'Pelanggan tidak ditemukan!',
+ 'Date' => 'Tanggal',
+ 'Delete' => 'Hapus',
+ 'Description' => 'Keterangan',
+ 'Detail' => 'Detil',
+ 'Edit Group' => 'Edit Kelompok Rakitan',
+ 'Edit Pricegroup' => 'Edit Kelompok Harga',
+ 'Edit Project' => 'Edit Proyek',
+ 'Employee' => 'Karyawan',
+ 'Enddate' => 'Tanggal Akhir',
+ 'From' => 'Dari',
+ 'Groups' => 'Kelompok Rakitan',
+ 'Income' => 'Pendapatan',
+ 'Language' => 'Bahasa',
+ 'Languages not defined!' => 'Bahasa tidak terdefinisi!',
+ 'Link Accounts' => 'Akun yg Berhubungan',
+ 'List Price' => 'Daftar Harga',
+ 'Month' => 'Bulan',
+ 'Notes' => 'Catatan',
+ 'Nothing selected!' => 'Tidak ada yang dipilih!',
+ 'Number' => 'Nomor',
+ 'Period' => 'Perioda',
+ 'Pricegroup' => 'Kelompok Harga',
+ 'Pricegroup deleted!' => 'Kelompok Harga sudah dihapus!',
+ 'Pricegroup missing!' => 'Kelompok Harga harap diisi!',
+ 'Pricegroup saved!' => 'Kelompok Harga sudah disimpan!',
+ 'Pricegroups' => 'Kelompok Harga',
+ 'Project' => 'Proyek',
+ 'Project Number' => 'Nomor Proyek',
+ 'Project deleted!' => 'Data Proyek sudah dihapus!',
+ 'Project saved!' => 'Data Proyek sudah disimpan!',
+ 'Projects' => 'Proyek',
+ 'Qty' => 'Banyak',
+ 'Save' => 'Simpan',
+ 'Select from one of the names below' => 'Pilih dari salah satu nama di bawah',
+ 'Sell Price' => 'Harga Jual',
+ 'Startdate' => 'Tanggal Mulai',
+ 'Summary' => 'Ringkasan',
+ 'Tax' => 'Pajak',
+ 'To' => 'Sampai',
+ 'Unit' => 'Satuan',
+ 'Updated' => 'Diupdate',
+ 'Vendor' => 'Supplier',
+ 'Vendor not on file!' => 'Data Supplier tidak ditemukan!',
+ 'Weight' => 'Berat',
+ 'Year' => 'Tahun',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'tambah_kelompok_rakitan' => 'add_group',
+ 'tambah_kelompok_harga' => 'add_pricegroup',
+ 'tambah_proyek' => 'add_project',
+ 'lanjut' => 'continue',
+ 'hapus' => 'delete',
+ 'simpan' => 'save',
+};
+
+1;
+
diff --git a/locale/id/pos b/locale/id/pos
new file mode 100755
index 00000000..05a4928a
--- /dev/null
+++ b/locale/id/pos
@@ -0,0 +1,72 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menu Akunting',
+ 'Add POS Invoice' => 'Tambah Invoice Kasir',
+ 'Amount' => 'Jumlah',
+ 'Business' => 'Bisnis',
+ 'Cannot post transaction!' => 'Tidak dapat posting transaksi!',
+ 'Change' => 'Kembalian',
+ 'Continue' => 'Lanjut',
+ 'Credit Limit' => 'Batas Kredit',
+ 'Currency' => 'Mata Uang',
+ 'Customer' => 'Pelanggan',
+ 'Customer missing!' => 'Pelanggan harap diisi!',
+ 'Delete' => 'Hapus',
+ 'Department' => 'Departemen',
+ 'Description' => 'Keterangan',
+ 'Edit POS Invoice' => 'Edit Invoice Kasir',
+ 'Exchange Rate' => 'Kurs',
+ 'Exchange rate missing!' => 'Kurs harap diisi!',
+ 'Extended' => 'Jumlah',
+ 'From' => 'Dari',
+ 'Language' => 'Bahasa',
+ 'Month' => 'Bulan',
+ 'Number' => 'Nomor',
+ 'Period' => 'Perioda',
+ 'Post' => 'Posting',
+ 'Posted!' => 'Sudah Diposting!',
+ 'Price' => 'Harga',
+ 'Print' => 'Cetak',
+ 'Print and Post' => 'Cetak dan Posting',
+ 'Printed' => 'Sudah dicetak',
+ 'Qty' => 'Banyak',
+ 'Receipts' => 'Penerimaan',
+ 'Record in' => 'Catat pada',
+ 'Remaining' => 'Sisa',
+ 'Salesperson' => 'Salesman',
+ 'Screen' => 'Layar',
+ 'Source' => 'Bukti',
+ 'Tax Included' => 'Termasuk Pajak',
+ 'To' => 'Sampai',
+ 'Total' => 'Total',
+ 'Unit' => 'Satuan',
+ 'Year' => 'Tahun',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'lanjut' => 'continue',
+ 'hapus' => 'delete',
+ 'posting' => 'post',
+ 'cetak' => 'print',
+ 'cetak_dan_posting' => 'print_and_post',
+};
+
+1;
+
diff --git a/locale/id/ps b/locale/id/ps
new file mode 100755
index 00000000..a73c8da1
--- /dev/null
+++ b/locale/id/ps
@@ -0,0 +1,292 @@
+$self{texts} = {
+ 'AP Aging' => 'Umur Hutang',
+ 'AP Outstanding' => 'Hutang Belum Lunas',
+ 'AP Transaction' => 'Transkasi Hutang',
+ 'AP Transactions' => 'Transkasi Hutang',
+ 'AR Aging' => 'Umur Piutang',
+ 'AR Outstanding' => 'Piutang Belum Lunas',
+ 'AR Transaction' => 'Transaksi Piutang',
+ 'AR Transactions' => 'Transaksi Piutang',
+ 'Account' => 'Akun',
+ 'Account Number' => 'Nomor Akun',
+ 'Accounting Menu' => 'Menu Akunting',
+ 'Accounts' => 'Daftar Akun',
+ 'Add AP Transaction' => 'Tambah Transaksi Hutang',
+ 'Add AR Transaction' => 'Tambah Transaksi Piutang',
+ 'Add POS Invoice' => 'Tambah Invoice Kasir',
+ 'Add Purchase Order' => 'Tambah Pesanan Pembelian (PO)',
+ 'Add Quotation' => 'Tambah Quotation',
+ 'Add Request for Quotation' => 'Tambah Request for Quotation',
+ 'Add Sales Invoice' => 'Tambah Invoice Penjualan',
+ 'Add Sales Order' => 'Tambah Pesanan Penjualan (SO)',
+ 'Address' => 'Alamat',
+ 'All Accounts' => 'Semua Akun',
+ 'Amount' => 'Jumlah',
+ 'Amount Due' => 'Jumlah Terhutang',
+ 'Are you sure you want to delete Invoice Number' => 'Apakah anda yakin akan menghapus Nomor Invoice',
+ 'Are you sure you want to delete Transaction' => 'Apakah anda yakin akan menghapus Nomor Transaksi',
+ 'Attachment' => 'Lampiran',
+ 'August' => 'Agustus',
+ 'Balance' => 'Saldo',
+ 'Balance Sheet' => 'Neraca',
+ 'Billing Address' => 'Alamat Penagihan',
+ 'Business' => 'Bisnis',
+ 'Cannot delete invoice!' => 'Tidak dapat menghapus Invoice!',
+ 'Cannot delete transaction!' => 'Tidak dapat menghapus Transaksi!',
+ 'Cannot post invoice for a closed period!' => 'Tidak dapat posting invoice untuk perioda yang sudah ditutup!',
+ 'Cannot post invoice!' => 'Tidak dapat posting Invoice!',
+ 'Cannot post payment for a closed period!' => 'Tidak dapat posting pembayaran untuk perioda yang sudah ditutup!',
+ 'Cannot post transaction for a closed period!' => 'Tidak dapat posting transaksi untuk perioda yang sudah ditutup!',
+ 'Cannot post transaction!' => 'Tidak dapat posting transaksi!',
+ 'Cash' => 'Kas dan Bank',
+ 'Change' => 'Kembalian',
+ 'City' => 'Kota',
+ 'Company Name' => 'Nama Perusahaan',
+ 'Compare to' => 'Dibandingkan kepada',
+ 'Confirm!' => 'Konfirmasi!',
+ 'Continue' => 'Lanjut',
+ 'Copies' => 'Jumlah Copy',
+ 'Country' => 'Negara',
+ 'Credit' => 'Kredit',
+ 'Credit Limit' => 'Batas Kredit',
+ 'Curr' => 'Mata Uang',
+ 'Currency' => 'Mata Uang',
+ 'Customer' => 'Pelanggan',
+ 'Customer Number' => 'Nomor Pelanggan',
+ 'Customer missing!' => 'Pelanggan harap diisi!',
+ 'Customer not on file!' => 'Pelanggan tidak ditemukan!',
+ 'Date' => 'Tanggal',
+ 'Date Paid' => 'Tanggal Bayar',
+ 'December' => 'Desember',
+ 'Decimalplaces' => 'Angka Desimal',
+ 'Delete' => 'Hapus',
+ 'Delivery Date' => 'Tanggal Kirim',
+ 'Department' => 'Departemen',
+ 'Description' => 'Keterangan',
+ 'Detail' => 'Detil',
+ 'Due Date' => 'Jatuh Tempo',
+ 'Due Date missing!' => 'Tanggal Jatuh Tempo harap diisi!',
+ 'Edit AP Transaction' => 'Edit Transaksi Hutang',
+ 'Edit AR Transaction' => 'Edit Transaksi Piutang',
+ 'Edit POS Invoice' => 'Edit Invoice Kasir',
+ 'Edit Sales Invoice' => 'Edit Invoice Penjualan',
+ 'Employee' => 'Karyawan',
+ 'Exchange Rate' => 'Kurs',
+ 'Exchange rate missing!' => 'Kurs harap diisi!',
+ 'Extended' => 'Jumlah',
+ 'February' => 'Februari',
+ 'From' => 'Dari',
+ 'Include in Report' => 'Tampilkan pada <br>laporan',
+ 'Income Statement' => 'Laba Rugi',
+ 'Invoice' => 'Invoice',
+ 'Invoice Date' => 'Tanggal Invoice',
+ 'Invoice Date missing!' => 'Tanggal Invoice harap diisi!',
+ 'Invoice Number' => 'Nomor Invoice',
+ 'Invoice Number missing!' => 'Nomor Invoice harap diisi',
+ 'Invoice deleted!' => 'Invoice sudah dihapus',
+ 'Item not on file!' => 'Item ini tidak ditemukan!',
+ 'January' => 'Januari',
+ 'July' => 'Juli',
+ 'June' => 'Juni',
+ 'Language' => 'Bahasa',
+ 'March' => 'Maret',
+ 'May ' => 'Mei',
+ 'Message' => 'Pesan',
+ 'Method' => 'Metoda',
+ 'Month' => 'Bulan',
+ 'No.' => 'No.',
+ 'Non-taxable Purchases' => 'Pembelian Tanpa Pajak',
+ 'Non-taxable Sales' => 'Penjualan Tanpa Pajak',
+ 'Notes' => 'Catatan',
+ 'Nothing selected!' => 'Tidak ada yang dipilih!',
+ 'Nothing to print!' => 'Tidak ada yang akan dicetak!',
+ 'Number' => 'Nomor',
+ 'October' => 'Oktober',
+ 'Order' => 'No. Pesanan',
+ 'Order Date missing!' => 'Tanggal Pesanan harap diisi!',
+ 'Order Number' => 'Nomor Pesanan',
+ 'Order Number missing!' => 'Nomor Pesanan harap diisi',
+ 'Packing List Date missing!' => 'Tanggal Packing List harap diisi!',
+ 'Packing List Number missing!' => 'Nomor Packing List harap diisi!',
+ 'Paid' => 'Dibayar',
+ 'Part' => 'Barang',
+ 'Payment date missing!' => 'Tanggal Pembayaran harap diisi!',
+ 'Payments' => 'Pembayaran',
+ 'Period' => 'Perioda',
+ 'Phone' => 'Telephone',
+ 'Post' => 'Posting',
+ 'Post as new' => 'Posting sbg yang baru',
+ 'Posted!' => 'Sudah Diposting!',
+ 'Price' => 'Harga',
+ 'Print' => 'Cetak',
+ 'Print and Post' => 'Cetak dan Posting',
+ 'Printed' => 'Sudah dicetak',
+ 'Project' => 'Proyek',
+ 'Project Number' => 'Nomor Proyek',
+ 'Project Transactions' => 'Transaksi Proyek',
+ 'Project not on file!' => 'Data Proyek tidak ditemukan!',
+ 'Purchase Order' => 'Pesanan Pembelian (PO)',
+ 'Qty' => 'Banyak',
+ 'Quotation' => 'Quotation',
+ 'Quotation Date missing!' => 'Tanggal Quotation harap diisi!',
+ 'Quotation Number missing!' => 'Nomor Quotation harap diisi!',
+ 'Recd' => 'Terima',
+ 'Receipt' => 'Penerimaan',
+ 'Receipts' => 'Penerimaan',
+ 'Record in' => 'Catat pada',
+ 'Reference' => 'Referensi',
+ 'Remaining' => 'Sisa',
+ 'Required by' => 'Tanggal Kirim',
+ 'Sales Invoice.' => 'Invoice Penjualan.',
+ 'Sales Order' => 'Pesanan Penjualan (SO)',
+ 'Salesperson' => 'Salesman',
+ 'Screen' => 'Layar',
+ 'Select all' => 'Pilih semua',
+ 'Select from one of the names below' => 'Pilih dari salah satu nama di bawah',
+ 'Select from one of the projects below' => 'Pilih dari salah satu proyek di bawah',
+ 'Select payment' => 'Pilih pembayaran',
+ 'Select postscript or PDF!' => 'Pilih postscript atau PDF!',
+ 'Select txt, postscript or PDF!' => 'Pilih txt, postscript atau PDF!',
+ 'Serial No.' => 'No. Seri',
+ 'Service' => 'Jasa',
+ 'Ship' => 'Kirim',
+ 'Ship to' => 'Kirim kepada',
+ 'Ship via' => 'Kirim melalui',
+ 'Shipping Address' => 'Alamat Pengiriman',
+ 'Shipping Point' => 'Titik Pengiriman',
+ 'Source' => 'Bukti',
+ 'Startdate' => 'Tanggal Mulai',
+ 'State/Province' => 'Provinsi',
+ 'Summary' => 'Ringkasan',
+ 'Tax' => 'Pajak',
+ 'Tax Included' => 'Termasuk Pajak',
+ 'Tax collected' => 'Pajak Terkumpul',
+ 'Tax paid' => 'Pajak Dibayar',
+ 'To' => 'Sampai',
+ 'Total' => 'Total',
+ 'Transaction' => 'Transaksi',
+ 'Transaction deleted!' => 'Transaksi sudah dihapus',
+ 'Transaction posted!' => 'Transaksi sudah diposting',
+ 'Trial Balance' => 'Neraca Percobaan',
+ 'Unit' => 'Satuan',
+ 'Vendor' => 'Supplier',
+ 'Vendor Invoice.' => 'Invoice Supplier.',
+ 'Vendor Number' => 'Nomor Supplier',
+ 'Vendor missing!' => 'Data Supplier harap diisi!',
+ 'Vendor not on file!' => 'Data Supplier tidak ditemukan!',
+ 'Warning!' => 'Peringatan!',
+ 'What type of item is this?' => 'Jenis item ini ?',
+ 'Year' => 'Tahun',
+ 'Yes' => 'Ya',
+ 'Zip/Postal Code' => 'Kode Pos',
+ 'as at' => 'per',
+ 'for Period' => 'untuk Perioda',
+ 'posted!' => 'sudah diposting!',
+ 'sent' => 'sudah dikirim',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'transkasi_hutang' => 'ap_transaction',
+ 'transaksi_piutang' => 'ar_transaction',
+ 'lanjut' => 'continue',
+ 'hapus' => 'delete',
+ 'posting' => 'post',
+ 'posting_sbg_yang_baru' => 'post_as_new',
+ 'cetak' => 'print',
+ 'cetak_dan_posting' => 'print_and_post',
+ 'invoice_penjualan_' => 'sales_invoice_',
+ 'pesanan_penjualan_(so)' => 'sales_order',
+ 'pilih_semua' => 'select_all',
+ 'kirim_kepada' => 'ship_to',
+ 'invoice_supplier_' => 'vendor_invoice_',
+ 'ya' => 'yes',
+};
+
+1;
+
diff --git a/locale/id/pw b/locale/id/pw
new file mode 100755
index 00000000..8415d6fb
--- /dev/null
+++ b/locale/id/pw
@@ -0,0 +1,11 @@
+$self{texts} = {
+ 'Continue' => 'Lanjut',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'lanjut' => 'continue',
+};
+
+1;
+
diff --git a/locale/id/rc b/locale/id/rc
new file mode 100755
index 00000000..92b2987c
--- /dev/null
+++ b/locale/id/rc
@@ -0,0 +1,54 @@
+$self{texts} = {
+ 'Account' => 'Akun',
+ 'Accounting Menu' => 'Menu Akunting',
+ 'August' => 'Agustus',
+ 'Balance' => 'Saldo',
+ 'Beginning Balance' => 'Saldo Awal',
+ 'Continue' => 'Lanjut',
+ 'Credit' => 'Kredit',
+ 'Date' => 'Tanggal',
+ 'December' => 'Desember',
+ 'Description' => 'Keterangan',
+ 'Detail' => 'Detil',
+ 'Difference' => 'Selisih',
+ 'Done' => 'Selesai',
+ 'February' => 'Februari',
+ 'From' => 'Dari',
+ 'January' => 'Januari',
+ 'July' => 'Juli',
+ 'June' => 'Juni',
+ 'March' => 'Maret',
+ 'May ' => 'Mei',
+ 'Month' => 'Bulan',
+ 'October' => 'Oktober',
+ 'Outstanding' => 'Belum Lunas',
+ 'Period' => 'Perioda',
+ 'Reconciliation' => 'Rekonsiliasi',
+ 'Reconciliation Report' => 'Laporan Rekonsiliasi',
+ 'Select all' => 'Pilih semua',
+ 'Source' => 'Bukti',
+ 'Summary' => 'Ringkasan',
+ 'To' => 'Sampai',
+ 'Year' => 'Tahun',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'lanjut' => 'continue',
+ 'selesai' => 'done',
+ 'pilih_semua' => 'select_all',
+};
+
+1;
+
diff --git a/locale/id/rp b/locale/id/rp
new file mode 100755
index 00000000..1f1b4cfc
--- /dev/null
+++ b/locale/id/rp
@@ -0,0 +1,136 @@
+$self{texts} = {
+ 'AP Aging' => 'Umur Hutang',
+ 'AR Aging' => 'Umur Piutang',
+ 'Account' => 'Akun',
+ 'Account Number' => 'Nomor Akun',
+ 'Accounting Menu' => 'Menu Akunting',
+ 'Accounts' => 'Daftar Akun',
+ 'Address' => 'Alamat',
+ 'All Accounts' => 'Semua Akun',
+ 'Amount' => 'Jumlah',
+ 'Attachment' => 'Lampiran',
+ 'August' => 'Agustus',
+ 'Balance' => 'Saldo',
+ 'Balance Sheet' => 'Neraca',
+ 'Cash' => 'Kas dan Bank',
+ 'Compare to' => 'Dibandingkan kepada',
+ 'Continue' => 'Lanjut',
+ 'Copies' => 'Jumlah Copy',
+ 'Credit' => 'Kredit',
+ 'Curr' => 'Mata Uang',
+ 'Customer' => 'Pelanggan',
+ 'Customer not on file!' => 'Pelanggan tidak ditemukan!',
+ 'Date' => 'Tanggal',
+ 'December' => 'Desember',
+ 'Decimalplaces' => 'Angka Desimal',
+ 'Department' => 'Departemen',
+ 'Description' => 'Keterangan',
+ 'Detail' => 'Detil',
+ 'Due Date' => 'Jatuh Tempo',
+ 'February' => 'Februari',
+ 'From' => 'Dari',
+ 'Include in Report' => 'Tampilkan pada <br>laporan',
+ 'Income Statement' => 'Laba Rugi',
+ 'Invoice' => 'Invoice',
+ 'January' => 'Januari',
+ 'July' => 'Juli',
+ 'June' => 'Juni',
+ 'Language' => 'Bahasa',
+ 'March' => 'Maret',
+ 'May ' => 'Mei',
+ 'Message' => 'Pesan',
+ 'Method' => 'Metoda',
+ 'Month' => 'Bulan',
+ 'Non-taxable Purchases' => 'Pembelian Tanpa Pajak',
+ 'Non-taxable Sales' => 'Penjualan Tanpa Pajak',
+ 'Nothing selected!' => 'Tidak ada yang dipilih!',
+ 'Number' => 'Nomor',
+ 'October' => 'Oktober',
+ 'Order' => 'No. Pesanan',
+ 'Payments' => 'Pembayaran',
+ 'Period' => 'Perioda',
+ 'Print' => 'Cetak',
+ 'Project' => 'Proyek',
+ 'Project Number' => 'Nomor Proyek',
+ 'Project Transactions' => 'Transaksi Proyek',
+ 'Project not on file!' => 'Data Proyek tidak ditemukan!',
+ 'Receipts' => 'Penerimaan',
+ 'Reference' => 'Referensi',
+ 'Salesperson' => 'Salesman',
+ 'Screen' => 'Layar',
+ 'Select all' => 'Pilih semua',
+ 'Select from one of the names below' => 'Pilih dari salah satu nama di bawah',
+ 'Select from one of the projects below' => 'Pilih dari salah satu proyek di bawah',
+ 'Select postscript or PDF!' => 'Pilih postscript atau PDF!',
+ 'Source' => 'Bukti',
+ 'Startdate' => 'Tanggal Mulai',
+ 'Summary' => 'Ringkasan',
+ 'Tax' => 'Pajak',
+ 'Tax collected' => 'Pajak Terkumpul',
+ 'Tax paid' => 'Pajak Dibayar',
+ 'To' => 'Sampai',
+ 'Total' => 'Total',
+ 'Trial Balance' => 'Neraca Percobaan',
+ 'Vendor' => 'Supplier',
+ 'Vendor not on file!' => 'Data Supplier tidak ditemukan!',
+ 'Warning!' => 'Peringatan!',
+ 'Year' => 'Tahun',
+ 'as at' => 'per',
+ 'for Period' => 'untuk Perioda',
+ 'sent' => 'sudah dikirim',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'lanjut' => 'continue',
+ 'cetak' => 'print',
+ 'pilih_semua' => 'select_all',
+};
+
+1;
+
diff --git a/locale/is/COPYING b/locale/is/COPYING
new file mode 100755
index 00000000..f6550e42
--- /dev/null
+++ b/locale/is/COPYING
@@ -0,0 +1,23 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2003
+#
+# Icelandic texts:
+#
+# Author: Margeir Reynisson <margeir@met.is>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/is/LANGUAGE b/locale/is/LANGUAGE
new file mode 100755
index 00000000..b91caef1
--- /dev/null
+++ b/locale/is/LANGUAGE
@@ -0,0 +1 @@
+Icelandic
diff --git a/locale/is/aa b/locale/is/aa
new file mode 100755
index 00000000..f238ef6e
--- /dev/null
+++ b/locale/is/aa
@@ -0,0 +1,131 @@
+$self{texts} = {
+ 'AP Transaction' => 'Innkaupafærsla',
+ 'AP Transactions' => 'Innkaupafærslur',
+ 'AR Transaction' => 'Sölufærsla',
+ 'AR Transactions' => 'Sölufærslur',
+ 'Account' => 'Reikningur',
+ 'Accounting Menu' => 'Bókhalds valmynd',
+ 'Amount' => 'Upphæð',
+ 'Amount Due' => 'Eindagi',
+ 'Apr' => 'apr',
+ 'April' => 'apríl',
+ 'Are you sure you want to delete Transaction' => 'Ert þú viss um að þú viljir eyða færslunni',
+ 'Aug' => 'ágú',
+ 'August' => 'ágúst',
+ 'Cannot delete transaction!' => 'Get ekki eytt færslu!',
+ 'Cannot post payment for a closed period!' => 'Get ekki bókað greiðslu á lokað tímabil',
+ 'Cannot post transaction for a closed period!' => 'Get ekki bókað færslu á lokað tímabil!',
+ 'Cannot post transaction!' => 'Get ekki bókað færslu!',
+ 'Check' => 'Ávísun',
+ 'Closed' => 'Lokað',
+ 'Confirm!' => 'Staðfesta!',
+ 'Continue' => 'Áfram',
+ 'Credit' => 'Kredit',
+ 'Credit Limit' => 'Kreditmörk',
+ 'Curr' => 'Gjaldm',
+ 'Currency' => 'Gjaldmiðill',
+ 'Current' => 'Núvirði',
+ 'Customer' => 'Viðskiptavinur',
+ 'Customer missing!' => 'Viðskiptavin vantar!',
+ 'Date' => 'Dagsetning',
+ 'Date Paid' => 'Greiðsludagur',
+ 'Debit' => 'Debit',
+ 'Dec' => 'des',
+ 'December' => 'desember',
+ 'Delete' => 'Eyða',
+ 'Description' => 'Skýringar',
+ 'Due Date' => 'Dags. lokið',
+ 'Due Date missing!' => 'Vantar dags. lokið!',
+ 'Employee' => 'Starfsmenn',
+ 'Exch' => 'Vx',
+ 'Exchange Rate' => 'Vextir',
+ 'Exchange rate for payment missing!' => 'Vextir fyrir greiðslu vantar!',
+ 'Exchange rate missing!' => 'Vantar vexti!',
+ 'Feb' => 'feb',
+ 'February' => 'febrúar',
+ 'From' => 'Frá',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Innifela í skýrslu',
+ 'Invoice' => 'Sölureikningur',
+ 'Invoice Date' => 'Sölureikningur dags.',
+ 'Invoice Date missing!' => 'Sölureiknings dags. vantar!',
+ 'Invoice Number' => 'Sölureikningur Númer',
+ 'Jan' => 'jan',
+ 'January' => 'janúar',
+ 'Jul' => 'júl',
+ 'July' => 'júlí',
+ 'Jun' => 'jún',
+ 'June' => 'júní',
+ 'Mar' => 'mar',
+ 'March' => 'mars',
+ 'May' => 'maí',
+ 'May ' => 'maí',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Upplýsinar',
+ 'Nov' => 'nóv',
+ 'November' => 'nóvember',
+ 'Oct' => 'ókt',
+ 'October' => 'óktóber',
+ 'Open' => 'opna',
+ 'Order' => 'Pöntun',
+ 'Order Number' => 'Pöntun númer',
+ 'Paid' => 'Greitt',
+ 'Payment date missing!' => 'Greiðsudags. vantar!',
+ 'Payments' => 'Greiðslur',
+ 'Post' => 'Bókfæra',
+ 'Post as new' => 'Bókfæra sem nýjan',
+ 'Print' => 'Prenta',
+ 'Project' => 'Verkefni',
+ 'Receipt' => 'Kvittun',
+ 'Remaining' => 'Eftir',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Ship to' => 'Senda til',
+ 'Ship via' => 'Senda með',
+ 'Source' => 'Frálag',
+ 'Subtotal' => 'Samtala',
+ 'Tax' => 'Virðisaukaskattur',
+ 'Tax Included' => 'Taka með VSK',
+ 'To' => 'til',
+ 'Total' => 'Samtals',
+ 'Transaction deleted!' => 'Færslu eytt!',
+ 'Transaction posted!' => 'Færsla bókfærð!',
+ 'Update' => 'Uppfærsla',
+ 'Vendor' => 'Byrgir',
+ 'Vendor missing!' => 'Byrgja vantar!',
+ 'Yes' => 'Já',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'innkaupafærsla' => 'ap_transaction',
+ 'sölufærsla' => 'ar_transaction',
+ 'Áfram' => 'continue',
+ 'eyða' => 'delete',
+ 'bókfæra' => 'post',
+ 'bókfæra_sem_nýjan' => 'post_as_new',
+ 'prenta' => 'print',
+ 'senda_til' => 'ship_to',
+ 'uppfærsla' => 'update',
+ 'já' => 'yes',
+};
+
+1;
+
diff --git a/locale/is/admin b/locale/is/admin
new file mode 100755
index 00000000..e01c8bc6
--- /dev/null
+++ b/locale/is/admin
@@ -0,0 +1,134 @@
+$self{texts} = {
+ 'Access Control' => 'Aðgangsheimildir',
+ 'Accounting' => 'Bókhald',
+ 'Add User' => 'Nýr notandi',
+ 'Address' => 'Heimilisfang',
+ 'Administration' => 'Kerfisstjórnun',
+ 'Administrator' => 'Kerfisstjóri',
+ 'All Datasets up to date!' => 'Öll gagnasöfn uppfærð',
+ 'Cannot create Lock!' => 'Cannot create Lock!',
+ 'Change Admin Password' => 'Breyta kerfisstjóra lykilorði',
+ 'Change Password' => 'Breyta lykilorði',
+ 'Click on login name to edit!' => 'Smellið á notendanafn til þess að breyta',
+ 'Company' => 'Fyritæki',
+ 'Connect to' => 'Tengjast við',
+ 'Continue' => 'Áfram',
+ 'Create Chart of Accounts' => 'Búa til lykklasett',
+ 'Create Dataset' => 'Búa til gagnasafn',
+ 'DBI not installed!' => 'DBI ekki virkt',
+ 'Database' => 'Gagnagrunnur',
+ 'Database Administration' => 'Kerfisstjórn gagnagrunns',
+ 'Database Driver not checked!' => 'Gagnagrunnstengi ekki athugað',
+ 'Database User missing!' => 'Gagnagrunns notanda vantar!',
+ 'Dataset' => 'Gagnasafn',
+ 'Dataset missing!' => 'Gagnasafn vantar!',
+ 'Dataset updated!' => 'gagnasafn uppfært!',
+ 'Date Format' => 'Dagsetningarform',
+ 'Delete' => 'Eyða',
+ 'Delete Dataset' => 'Eyða gagnasafni',
+ 'Directory' => 'Mapa',
+ 'Driver' => 'Driver',
+ 'Dropdown Limit' => 'Takmörk fyrir valmynd',
+ 'E-mail' => 'R-póstur',
+ 'Edit User' => 'Breyta notanda',
+ 'Existing Datasets' => 'Hætta með gagnasafn',
+ 'Fax' => 'Símbréf',
+ 'Host' => 'Netþjónn',
+ 'Hostname missing!' => 'Nafn netþjóns vantar',
+ 'Language' => 'Túngumál',
+ 'Lock System' => 'Lock System',
+ 'Lockfile created!' => 'Lockfile created!',
+ 'Lockfile removed!' => 'Lockfile removed!',
+ 'Login' => 'Tengjast',
+ 'Login name missing!' => 'Login name missing!',
+ 'Logout' => 'Aftengjast',
+ 'Multibyte Encoding' => 'Multibyte Encoding',
+ 'Name' => 'Nafn',
+ 'New Templates' => 'Nýtt skabalón',
+ 'No Database Drivers available!' => 'Engin gagnagrunnstengin til',
+ 'No Dataset selected!' => 'Ekkert gagnasafn valið',
+ 'Nothing to delete!' => 'Ekkert til þess að eyða!',
+ 'Number Format' => 'Númera útlit',
+ 'Oracle Database Administration' => 'Oracle kerfisstjórnun á gagnagrunni',
+ 'Password' => 'Aðgangsorð',
+ 'Password changed!' => 'Aðgangsorði breytt',
+ 'Pg Database Administration' => 'Pg kerfisstjórnun gagnarunns',
+ 'PgPP Database Administration' => 'PgPP Database Administration',
+ 'Phone' => 'Sími.',
+ 'Port' => 'Port',
+ 'Port missing!' => 'Port vantar',
+ 'Printer' => 'Prentari',
+ 'Save' => 'Geyma',
+ 'Setup Templates' => 'Skabalón fyrir uppsetningu',
+ 'Signature' => 'Undirskrift',
+ 'Stylesheet' => 'Stílblað',
+ 'Templates' => 'Skabalón',
+ 'The following Datasets are not in use and can be deleted' => 'Eftirfarandi gagnasöfn eru ekki í notkunn og er því ekki hægt að eyða þeim',
+ 'The following Datasets need to be updated' => 'Eftirfarandi gagnasafn þarfnast uppfærslu',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Engu verður eytt eða breytt með þessu ',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Þú getur notað notanda sem til er til þess að útbúa nýjan notanda með þvi að breyta bara notendanafninu.',
+ 'Unlock System' => 'Unlock System',
+ 'Update Dataset' => 'Uppfæra gagnasafn',
+ 'Use Templates' => 'Nota skabalón',
+ 'User' => 'Notandi',
+ 'User deleted!' => 'Notanda eytt!',
+ 'User saved!' => 'Notandi geymdur!',
+ 'Version' => 'Útgáfa',
+ 'does not exist' => 'er ekki til',
+ 'is already a member!' => 'er þegar meðlimur',
+ 'localhost' => 'lokal',
+ 'successfully created!' => 'uppfært!',
+ 'successfully deleted!' => 'eytt!',
+ 'website' => 'á Internetinu',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'nýr_notandi' => 'add_user',
+ 'breyta_kerfisstjóra_lykilorði' => 'change_admin_password',
+ 'breyta_lykilorði' => 'change_password',
+ 'Áfram' => 'continue',
+ 'búa_til_gagnasafn' => 'create_dataset',
+ 'eyða' => 'delete',
+ 'eyða_gagnasafni' => 'delete_dataset',
+ 'lock_system' => 'lock_system',
+ 'tengjast' => 'login',
+ 'aftengjast' => 'logout',
+ 'oracle_kerfisstjórnun_á_gagnagrunni' => 'oracle_database_administration',
+ 'pg_kerfisstjórnun_gagnarunns' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'geyma' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'uppfæra_gagnasafn' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/is/all b/locale/is/all
new file mode 100755
index 00000000..7a8aa241
--- /dev/null
+++ b/locale/is/all
@@ -0,0 +1,890 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+
+$self{texts} = {
+ 'A' => '',
+ 'AP' => 'Innkaupakerfi',
+ 'AP Aging' => 'Aldursgreining',
+ 'AP Outstanding' => '',
+ 'AP Transaction' => 'Innkaupafærsla',
+ 'AP Transactions' => 'Innkaupafærslur',
+ 'AR' => 'Sölukerfi',
+ 'AR Aging' => 'Aldursgreining',
+ 'AR Outstanding' => '',
+ 'AR Transaction' => 'Sölufærsla',
+ 'AR Transactions' => 'Sölufærslur',
+ 'AR/AP' => '',
+ 'About' => 'Um',
+ 'Above' => '',
+ 'Access Control' => 'Aðgangsheimildir',
+ 'Access Denied!' => '',
+ 'Account' => 'Reikningur',
+ 'Account Number' => 'Reikningsnúmer',
+ 'Account Number missing!' => 'Reikningsnúmer vantar!',
+ 'Account Type' => 'Reikningstegund',
+ 'Account Type missing!' => 'Reikningstegund vantar!',
+ 'Account deleted!' => 'Reikningi eytt!',
+ 'Account does not exist!' => '',
+ 'Account saved!' => 'Reikningur geymdur!',
+ 'Accounting' => 'Bókhald',
+ 'Accounting Menu' => 'Bókhalds valmynd',
+ 'Accounts' => 'Reikningar',
+ 'Accrual' => '',
+ 'Activate Audit trail' => '',
+ 'Active' => 'Virkja',
+ 'Add' => 'Nýr',
+ 'Add AP Transaction' => '',
+ 'Add AR Transaction' => '',
+ 'Add Account' => 'Nýr reikningur',
+ 'Add Assembly' => 'Ný samsetning',
+ 'Add Business' => '',
+ 'Add Cash Transfer Transaction' => '',
+ 'Add Customer' => 'Nýr viðskiptavinur',
+ 'Add Deduction' => '',
+ 'Add Department' => '',
+ 'Add Employee' => '',
+ 'Add Exchange Rate' => '',
+ 'Add GIFI' => 'Ný GIFI',
+ 'Add General Ledger Transaction' => 'Ný höfuðfærsla',
+ 'Add Group' => '',
+ 'Add Job' => '',
+ 'Add Labor/Overhead' => '',
+ 'Add Language' => '',
+ 'Add POS Invoice' => '',
+ 'Add Part' => 'Ný vara',
+ 'Add Pricegroup' => '',
+ 'Add Project' => 'Nýt verkefni',
+ 'Add Purchase Order' => 'Ný innkaupspöntun',
+ 'Add Quotation' => '',
+ 'Add Request for Quotation' => '',
+ 'Add SIC' => '',
+ 'Add Sales Invoice' => 'Nýr sölureikningur',
+ 'Add Sales Order' => 'Ný sölupöntun',
+ 'Add Service' => 'Ný þjónusta',
+ 'Add Timecard' => '',
+ 'Add Transaction' => 'Ný bókhaldsfærsla',
+ 'Add User' => 'Nýr notandi',
+ 'Add Vendor' => 'Nýr byrgir',
+ 'Add Vendor Invoice' => 'Nýr innkaupsreikningur',
+ 'Add Warehouse' => '',
+ 'Address' => 'Heimilisfang',
+ 'Administration' => 'Kerfisstjórnun',
+ 'Administrator' => 'Kerfisstjóri',
+ 'After Deduction' => '',
+ 'All' => 'Allt',
+ 'All Accounts' => '',
+ 'All Datasets up to date!' => 'Öll gagnasöfn uppfærð',
+ 'All Items' => '',
+ 'Allowances' => '',
+ 'Amount' => 'Upphæð',
+ 'Amount Due' => 'Eindagi',
+ 'Amount missing!' => '',
+ 'Apr' => 'apr',
+ 'April' => 'apríl',
+ 'Are you sure you want to delete Invoice Number' => 'Ert þú viss um að þú viljir eyða reikningi númer',
+ 'Are you sure you want to delete Order Number' => 'Ert þú viss um að þú viljir eyða pöntun númer',
+ 'Are you sure you want to delete Quotation Number' => '',
+ 'Are you sure you want to delete Timecard for' => '',
+ 'Are you sure you want to delete Transaction' => 'Ert þú viss um að þú viljir eyða færslunni',
+ 'Are you sure you want to remove the marked entries from the queue?' => '',
+ 'Assemblies' => 'Samsetningar',
+ 'Assemblies restocked!' => 'Samsetningar endurunnar',
+ 'Assembly' => '',
+ 'Assembly stocked!' => '',
+ 'Asset' => 'Eignir',
+ 'Attachment' => 'Hjálagt',
+ 'Audit Control' => 'Yfirlit stjórnun',
+ 'Audit trail disabled' => '',
+ 'Audit trail enabled' => '',
+ 'Audit trail removed up to' => '',
+ 'Aug' => 'ágú',
+ 'August' => 'ágúst',
+ 'Average Cost' => '',
+ 'Avg Cost' => '',
+ 'BIC' => '',
+ 'BOM' => 'BOM',
+ 'Backup' => 'Afrit',
+ 'Backup sent to' => 'Afrit sendist til',
+ 'Balance' => 'Afstemming',
+ 'Balance Sheet' => 'Staða',
+ 'Based on' => '',
+ 'Bcc' => 'Blint afrit',
+ 'Before Deduction' => '',
+ 'Beginning Balance' => '',
+ 'Below' => '',
+ 'Billing Address' => '',
+ 'Bin' => 'Vörulager',
+ 'Bin List' => '',
+ 'Bin Lists' => '',
+ 'Books are open' => 'Bókhald er opið fyrir leiðréttingar',
+ 'Break' => '',
+ 'Business' => '',
+ 'Business Number' => 'Viðskiptanúmer',
+ 'Business deleted!' => '',
+ 'Business saved!' => '',
+ 'C' => 'C',
+ 'COGS' => 'Innkaup',
+ 'COGS account does not exist!' => '',
+ 'Cannot add timecard for a completed job!' => '',
+ 'Cannot change timecard for a completed job!' => '',
+ 'Cannot create Assembly' => '',
+ 'Cannot create Labor' => '',
+ 'Cannot create Lock!' => 'Cannot create Lock!',
+ 'Cannot create Part' => '',
+ 'Cannot create Service' => '',
+ 'Cannot delete Timecard!' => '',
+ 'Cannot delete account!' => 'Get ekki eytt reikningi!',
+ 'Cannot delete customer!' => 'Get ekki eytt viðskiptavini!',
+ 'Cannot delete default account!' => 'Get ekki eytt grunnreikningi!',
+ 'Cannot delete invoice!' => 'Get ekki eytt sölureikningi!',
+ 'Cannot delete item!' => 'Get ekki eytt hlut!',
+ 'Cannot delete order!' => 'Get ekki eytt pöntun!',
+ 'Cannot delete quotation!' => '',
+ 'Cannot delete transaction!' => 'Get ekki eytt færslu!',
+ 'Cannot delete vendor!' => 'Get ekki eytt framleiðanda!',
+ 'Cannot post Payment!' => '',
+ 'Cannot post Receipt!' => '',
+ 'Cannot post invoice for a closed period!' => 'Get ekki bókað á lokað tímabil!',
+ 'Cannot post invoice!' => 'Get ekki bókað sölureikning!',
+ 'Cannot post payment for a closed period!' => 'Get ekki bókað greiðslu á lokað tímabil',
+ 'Cannot post transaction for a closed period!' => 'Get ekki bókað færslu á lokað tímabil!',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => '',
+ 'Cannot post transaction!' => 'Get ekki bókað færslu!',
+ 'Cannot remove files!' => '',
+ 'Cannot save account!' => 'Get ekki geymt reikning!',
+ 'Cannot save defaults!' => '',
+ 'Cannot save order!' => 'Get ekki geymt pöntun!',
+ 'Cannot save preferences!' => 'Get ekki geymt uppsetningu!',
+ 'Cannot save quotation!' => '',
+ 'Cannot save timecard for a closed period!' => '',
+ 'Cannot save timecard!' => '',
+ 'Cannot set account for more than one of AR, AP or IC' => '',
+ 'Cannot set multiple options for' => '',
+ 'Cannot set multiple options for Item' => '',
+ 'Cannot stock Assembly!' => '',
+ 'Cannot stock assemblies!' => 'Get ekki fært samsetningar',
+ 'Cash' => 'Reiðufé',
+ 'Cc' => 'Afrit',
+ 'Change' => '',
+ 'Change Admin Password' => 'Breyta kerfisstjóra lykilorði',
+ 'Change Password' => 'Breyta lykilorði',
+ 'Charge' => '',
+ 'Chart of Accounts' => 'Listi yfir lykkla/reikninga',
+ 'Check' => 'Ávísun',
+ 'Check Inventory' => '',
+ 'Checks' => '',
+ 'City' => '',
+ 'Cleared' => '',
+ 'Click on login name to edit!' => 'Smellið á notendanafn til þess að breyta',
+ 'Clocked' => '',
+ 'Close Books up to' => 'Loka bókhaldi til dags',
+ 'Closed' => 'Lokað',
+ 'Code' => '',
+ 'Code missing!' => '',
+ 'Company' => 'Fyritæki',
+ 'Company Name' => '',
+ 'Compare to' => 'Bera saman við',
+ 'Completed' => '',
+ 'Components' => '',
+ 'Confirm' => '',
+ 'Confirm!' => 'Staðfesta!',
+ 'Connect to' => 'Tengjast við',
+ 'Contact' => 'Talsmaður',
+ 'Continue' => 'Áfram',
+ 'Contra' => '',
+ 'Copies' => 'Afrit',
+ 'Copy to COA' => 'Afrita í COA',
+ 'Cost' => '',
+ 'Cost Center' => '',
+ 'Could not save pricelist!' => '',
+ 'Could not save!' => '',
+ 'Could not transfer Inventory!' => '',
+ 'Country' => '',
+ 'Create Chart of Accounts' => 'Búa til lykklasett',
+ 'Create Dataset' => 'Búa til gagnasafn',
+ 'Credit' => 'Kredit',
+ 'Credit Limit' => 'Kreditmörk',
+ 'Curr' => 'Gjaldm',
+ 'Currency' => 'Gjaldmiðill',
+ 'Current' => 'Núvirði',
+ 'Current Earnings' => '',
+ 'Customer' => 'Viðskiptavinur',
+ 'Customer History' => '',
+ 'Customer Number' => '',
+ 'Customer deleted!' => 'Viðskiptavini eytt!',
+ 'Customer missing!' => 'Viðskiptavin vantar!',
+ 'Customer not on file!' => 'Viðskiptavinur ekki á skrá!',
+ 'Customer saved!' => 'Viðskiptavinur geymdur!',
+ 'Customers' => 'Viðskiptavinir',
+ 'DBI not installed!' => 'DBI ekki virkt',
+ 'DOB' => '',
+ 'Database' => 'Gagnagrunnur',
+ 'Database Administration' => 'Kerfisstjórn gagnagrunns',
+ 'Database Driver not checked!' => 'Gagnagrunnstengi ekki athugað',
+ 'Database Host' => 'Gagnagrunns-netþjónn',
+ 'Database User missing!' => 'Gagnagrunns notanda vantar!',
+ 'Dataset' => 'Gagnasafn',
+ 'Dataset is newer than version!' => '',
+ 'Dataset missing!' => 'Gagnasafn vantar!',
+ 'Dataset updated!' => 'gagnasafn uppfært!',
+ 'Date' => 'Dagsetning',
+ 'Date Format' => 'Dagsetningarform',
+ 'Date Paid' => 'Greiðsludagur',
+ 'Date Received' => '',
+ 'Date missing!' => 'Dagsetningu vantar!',
+ 'Date received missing!' => '',
+ 'Date worked' => '',
+ 'Day' => '',
+ 'Day(s)' => '',
+ 'Days' => '',
+ 'Debit' => 'Debit',
+ 'Dec' => 'des',
+ 'December' => 'desember',
+ 'Decimalplaces' => 'Aukastafir',
+ 'Decrease' => '',
+ 'Deduct after' => '',
+ 'Deduction deleted!' => '',
+ 'Deduction saved!' => '',
+ 'Deductions' => '',
+ 'Default Template' => '',
+ 'Defaults' => '',
+ 'Defaults saved!' => '',
+ 'Delete' => 'Eyða',
+ 'Delete Account' => 'Eyða reikningi',
+ 'Delete Dataset' => 'Eyða gagnasafni',
+ 'Delete Schedule' => '',
+ 'Deleting a language will also delete the templates for the language' => '',
+ 'Delivery Date' => 'Afgreiðsludags.',
+ 'Department' => '',
+ 'Department deleted!' => '',
+ 'Department saved!' => '',
+ 'Departments' => '',
+ 'Deposit' => 'Innlagt',
+ 'Description' => 'Skýringar',
+ 'Description Translations' => '',
+ 'Description missing!' => '',
+ 'Detail' => '',
+ 'Difference' => 'Mismunur',
+ 'Directory' => 'Mapa',
+ 'Discount' => 'Afsláttur',
+ 'Done' => 'Búið',
+ 'Drawing' => 'Dregið',
+ 'Driver' => 'Driver',
+ 'Dropdown Limit' => 'Takmörk fyrir valmynd',
+ 'Due Date' => 'Dags. lokið',
+ 'Due Date missing!' => 'Vantar dags. lokið!',
+ 'E-mail' => 'R-póstur',
+ 'E-mail Statement to' => 'Senda yfirlit til',
+ 'E-mail address missing!' => 'R-póst vantar!',
+ 'E-mail message' => '',
+ 'E-mailed' => '',
+ 'Edit' => 'Breyta',
+ 'Edit AP Transaction' => '',
+ 'Edit AR Transaction' => '',
+ 'Edit Account' => 'Breyta reikningi',
+ 'Edit Assembly' => 'Breyta samsetningu',
+ 'Edit Business' => '',
+ 'Edit Cash Transfer Transaction' => '',
+ 'Edit Customer' => 'Breyta viðskiptavini',
+ 'Edit Deduction' => '',
+ 'Edit Department' => '',
+ 'Edit Description Translations' => '',
+ 'Edit Employee' => '',
+ 'Edit GIFI' => 'Breyta GIFI',
+ 'Edit General Ledger Transaction' => 'Breyta yfitbókunar færslum',
+ 'Edit Group' => '',
+ 'Edit Job' => '',
+ 'Edit Labor/Overhead' => '',
+ 'Edit Language' => '',
+ 'Edit POS Invoice' => '',
+ 'Edit Part' => 'Breyta vöru',
+ 'Edit Preferences for' => 'Breyta uppsetningu fyrir',
+ 'Edit Pricegroup' => '',
+ 'Edit Project' => 'Breyta verkefni',
+ 'Edit Purchase Order' => 'Breyta innkaupapöntun',
+ 'Edit Quotation' => '',
+ 'Edit Request for Quotation' => '',
+ 'Edit SIC' => '',
+ 'Edit Sales Invoice' => 'Breyta sölureikningi',
+ 'Edit Sales Order' => 'Breyta sölupöntun',
+ 'Edit Service' => 'Breyta þjónustu',
+ 'Edit Template' => 'Breyta skabalóni',
+ 'Edit Timecard' => '',
+ 'Edit User' => 'Breyta notanda',
+ 'Edit Vendor' => 'Breyta byrgja',
+ 'Edit Vendor Invoice' => 'Breyta innkaupareikningi',
+ 'Edit Warehouse' => '',
+ 'Employee' => 'Starfsmenn',
+ 'Employee Name' => '',
+ 'Employee Number' => '',
+ 'Employee deleted!' => '',
+ 'Employee pays' => '',
+ 'Employee saved!' => '',
+ 'Employees' => '',
+ 'Employer' => '',
+ 'Employer pays' => '',
+ 'Enddate' => '',
+ 'Ends' => '',
+ 'Enforce transaction reversal for all dates' => 'Gennemtving explicitte rettelser af posteringer for alle datoer',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Vinsamlega sláið inn 3 stafa nafn á gjaldeyri sem á að nota setji tvípúnkt á milli.',
+ 'Equity' => 'Eigiðfé',
+ 'Every' => '',
+ 'Excempt age <' => '',
+ 'Exch' => 'Vx',
+ 'Exchange Rate' => 'Vextir',
+ 'Exchange rate for payment missing!' => 'Vextir fyrir greiðslu vantar!',
+ 'Exchange rate missing!' => 'Vantar vexti!',
+ 'Existing Datasets' => 'Hætta með gagnasafn',
+ 'Expense' => 'Kostnaður',
+ 'Expense account does not exist!' => '',
+ 'Expense/Asset' => 'Kostnaður/Eignir',
+ 'Extended' => 'Framlengt',
+ 'FX' => '',
+ 'Failed to save order!' => '',
+ 'Fax' => 'Símbréf',
+ 'Feb' => 'feb',
+ 'February' => 'febrúar',
+ 'For' => '',
+ 'Foreign Exchange Gain' => 'Gengishagnaður',
+ 'Foreign Exchange Loss' => 'Gengistap',
+ 'Friday' => '',
+ 'From' => 'Frá',
+ 'From Warehouse' => '',
+ 'GIFI' => 'GIFI',
+ 'GIFI deleted!' => 'GIFI eytt!',
+ 'GIFI missing!' => 'GIFI vantar!',
+ 'GIFI saved!' => 'GIFI geymt!',
+ 'GL' => '',
+ 'GL Reference Number' => '',
+ 'GL Transaction' => 'Færslur í aðalbók',
+ 'General Ledger' => 'Aðalbók',
+ 'Generate' => '',
+ 'Generate Orders' => '',
+ 'Generate Purchase Orders' => '',
+ 'Generate Purchase Orders from Sales Order' => '',
+ 'Generate Sales Order' => '',
+ 'Generate Sales Order from Purchase Orders' => '',
+ 'Generate Sales Orders' => '',
+ 'Goods & Services' => 'Vörur og þjónusta',
+ 'Group' => '',
+ 'Group Items' => '',
+ 'Group Translations' => '',
+ 'Group deleted!' => '',
+ 'Group missing!' => '',
+ 'Group saved!' => '',
+ 'Groups' => '',
+ 'HR' => '',
+ 'HTML Templates' => 'HTML-skabalón',
+ 'Heading' => 'Yfirskriftir',
+ 'History' => '',
+ 'Home Phone' => '',
+ 'Host' => 'Netþjónn',
+ 'Hostname missing!' => 'Nafn netþjóns vantar',
+ 'IBAN' => '',
+ 'ID' => 'ID',
+ 'Image' => 'Mynd',
+ 'In-line' => 'Inndregið',
+ 'Inactive' => '',
+ 'Include Exchange Rate Difference' => '',
+ 'Include Payment' => '',
+ 'Include in Report' => 'Innifela í skýrslu',
+ 'Include in drop-down menus' => 'Innifela í fellivalmynd',
+ 'Income' => '',
+ 'Income Statement' => 'Inn yfirlýsing',
+ 'Income account does not exist!' => '',
+ 'Incorrect Dataset version!' => 'Röng útgáfa af gagnasfni!',
+ 'Increase' => '',
+ 'Individual Items' => 'Sjálfstæðir hlutir',
+ 'Internal Notes' => '',
+ 'Inventory' => 'Lager',
+ 'Inventory account does not exist!' => '',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Lagerbeholdning skal være nul for at du kan forælde denne sammensætning',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Lagerbeholdning skal være nul for at du kan forælde denne enhed',
+ 'Inventory saved!' => '',
+ 'Inventory transferred!' => '',
+ 'Invoice' => 'Sölureikningur',
+ 'Invoice Date' => 'Sölureikningur dags.',
+ 'Invoice Date missing!' => 'Sölureiknings dags. vantar!',
+ 'Invoice Number' => 'Sölureikningur Númer',
+ 'Invoice Number missing!' => 'Sölureikningsnúmer vantar!',
+ 'Invoice deleted!' => 'Sölureikningi eytt!',
+ 'Invoices' => 'Sölureikningar',
+ 'Is this a summary account to record' => 'Söfnunarreikningur fyrir',
+ 'Item already on pricelist!' => '',
+ 'Item deleted!' => 'Hlut eytt!',
+ 'Item not on file!' => 'Hlutur ekki á skrá!',
+ 'Items' => '',
+ 'Jan' => 'jan',
+ 'January' => 'janúar',
+ 'Job' => '',
+ 'Job Name' => '',
+ 'Job Number' => '',
+ 'Job Number missing!' => '',
+ 'Job deleted!' => '',
+ 'Job saved!' => '',
+ 'Jobs' => '',
+ 'Jul' => 'júl',
+ 'July' => 'júlí',
+ 'Jun' => 'jún',
+ 'June' => 'júní',
+ 'LaTeX Templates' => 'LaTeX-skabalón',
+ 'Labor Code' => '',
+ 'Labor/Overhead' => '',
+ 'Language' => 'Túngumál',
+ 'Language deleted!' => '',
+ 'Language saved!' => '',
+ 'Languages' => '',
+ 'Languages not defined!' => '',
+ 'Last Cost' => '',
+ 'Last Numbers & Default Accounts' => 'Síðasta númer og sjálfgefin reikningur',
+ 'Lead' => '',
+ 'Leadtime' => '',
+ 'Leave host and port field empty unless you want to make a remote connection.' => 'Setjið engar upplýsingar í netþjónn og port nema um sé að ræða annan netþjón.',
+ 'Liability' => 'Passiv',
+ 'Licensed to' => 'Skráð á',
+ 'Line Total' => 'Samtals línur',
+ 'Link' => 'Tenglar',
+ 'Link Accounts' => 'Tengja lykla',
+ 'List' => '',
+ 'List Accounts' => 'Sýna lykla',
+ 'List Businesses' => '',
+ 'List Departments' => '',
+ 'List GIFI' => 'Sýna GIFI',
+ 'List Languages' => '',
+ 'List Price' => 'Sýna verð',
+ 'List Projects' => '',
+ 'List SIC' => '',
+ 'List Transactions' => 'Sýna færslur',
+ 'List Warehouses' => '',
+ 'Lock System' => 'Lock System',
+ 'Lockfile created!' => 'Lockfile created!',
+ 'Lockfile removed!' => 'Lockfile removed!',
+ 'Login' => 'Tengjast',
+ 'Login name missing!' => 'Login name missing!',
+ 'Logout' => 'Aftengjast',
+ 'Make' => 'Tegund',
+ 'Manager' => '',
+ 'Mar' => 'mar',
+ 'March' => 'mars',
+ 'Marked entries printed!' => '',
+ 'Markup' => '',
+ 'Maximum' => '',
+ 'May' => 'maí',
+ 'May ' => 'maí',
+ 'Memo' => '',
+ 'Menu Width' => '',
+ 'Message' => 'Skilaboð',
+ 'Method' => '',
+ 'Microfiche' => 'Mikrofilm',
+ 'Model' => 'Model',
+ 'Monday' => '',
+ 'Month' => '',
+ 'Month(s)' => '',
+ 'Months' => '',
+ 'Multibyte Encoding' => 'Multibyte Encoding',
+ 'N/A' => '',
+ 'Name' => 'Nafn',
+ 'Name missing!' => 'Nafn vantar!',
+ 'New Templates' => 'Nýtt skabalón',
+ 'New Window' => '',
+ 'Next' => '',
+ 'Next Date' => '',
+ 'Next Number' => '',
+ 'No' => 'Nei',
+ 'No Database Drivers available!' => 'Engin gagnagrunnstengin til',
+ 'No Dataset selected!' => 'Ekkert gagnasafn valið',
+ 'No Employees on file!' => '',
+ 'No Labor codes on file!' => '',
+ 'No email address for' => 'Ekkert netfang fyrir',
+ 'No open Jobs!' => '',
+ 'No open Projects!' => '',
+ 'No.' => 'Nr.',
+ 'Non-taxable' => '',
+ 'Non-taxable Purchases' => '',
+ 'Non-taxable Sales' => '',
+ 'Non-tracking Items' => '',
+ 'Notes' => 'Upplýsinar',
+ 'Nothing entered!' => '',
+ 'Nothing selected!' => 'Ekkert valið!',
+ 'Nothing to delete!' => 'Ekkert til þess að eyða!',
+ 'Nothing to print!' => '',
+ 'Nothing to transfer!' => '',
+ 'Nov' => 'nóv',
+ 'November' => 'nóvember',
+ 'Number' => 'Númer',
+ 'Number Format' => 'Númera útlit',
+ 'Number missing in Row' => 'Tölu vantar í röð',
+ 'O' => 'O',
+ 'OH' => '',
+ 'Obsolete' => 'Úrelt',
+ 'Oct' => 'ókt',
+ 'October' => 'óktóber',
+ 'On Hand' => 'Á lager',
+ 'Open' => 'opna',
+ 'Oracle Database Administration' => 'Oracle kerfisstjórnun á gagnagrunni',
+ 'Order' => 'Pöntun',
+ 'Order Date' => 'Pöntunar dags.',
+ 'Order Date missing!' => 'Pöntunar dags. vantar',
+ 'Order Entry' => 'Pöntunarblað',
+ 'Order Number' => 'Pöntun númer',
+ 'Order Number missing!' => 'Númer pöntunar vantar',
+ 'Order deleted!' => 'Pöntun eytt',
+ 'Order generation failed!' => '',
+ 'Order saved!' => 'Pöntun geymd',
+ 'Orders generated!' => '',
+ 'Orphaned' => 'Sjáfstætt',
+ 'Out of balance transaction!' => '',
+ 'Out of balance!' => 'Ekki jafnvægi!',
+ 'Outstanding' => '',
+ 'PDF' => 'PDF',
+ 'PO Number' => '',
+ 'POS' => '',
+ 'POS Invoice' => '',
+ 'Packing List' => 'Fylgiseðill',
+ 'Packing List Date missing!' => 'Dags. fylgiseðils vantar!',
+ 'Packing List Number missing!' => 'Númer fylgiseðils vantar!',
+ 'Packing Lists' => '',
+ 'Paid' => 'Greitt',
+ 'Part' => 'Vara',
+ 'Part Number' => '',
+ 'Partnumber' => '',
+ 'Parts' => 'Vörur',
+ 'Password' => 'Aðgangsorð',
+ 'Password changed!' => 'Aðgangsorði breytt',
+ 'Password does not match!' => '',
+ 'Passwords do not match!' => '',
+ 'Payables' => 'Útistandandi',
+ 'Payment' => 'Greislur',
+ 'Payment date missing!' => 'Greiðsudags. vantar!',
+ 'Payment posted!' => 'Greiðsla bókuð',
+ 'Payments' => 'Greiðslur',
+ 'Payments posted!' => '',
+ 'Payroll Deduction' => '',
+ 'Period' => '',
+ 'Pg Database Administration' => 'Pg kerfisstjórnun gagnarunns',
+ 'PgPP Database Administration' => 'PgPP Database Administration',
+ 'Phone' => 'Sími.',
+ 'Pick List' => '',
+ 'Pick Lists' => '',
+ 'Port' => 'Port',
+ 'Port missing!' => 'Port vantar',
+ 'Pos' => '',
+ 'Post' => 'Bókfæra',
+ 'Post as new' => 'Bókfæra sem nýjan',
+ 'Posted!' => '',
+ 'Posting' => '',
+ 'Posting failed!' => '',
+ 'Postscript' => 'Postscript',
+ 'Preferences' => 'Uppsetningar',
+ 'Preferences saved!' => 'Uppsetningar geymdar!',
+ 'Prepayment' => '',
+ 'Price' => 'Verð',
+ 'Pricegroup' => '',
+ 'Pricegroup deleted!' => '',
+ 'Pricegroup missing!' => '',
+ 'Pricegroup saved!' => '',
+ 'Pricegroups' => '',
+ 'Pricelist' => '',
+ 'Print' => 'Prenta',
+ 'Print and Post' => '',
+ 'Print and Post as new' => '',
+ 'Print and Save' => '',
+ 'Print and Save as new' => '',
+ 'Print and post as new' => '',
+ 'Print and save as new' => '',
+ 'Printed' => '',
+ 'Printer' => 'Prentari',
+ 'Printing' => '',
+ 'Printing ... ' => '',
+ 'Process Transactions' => '',
+ 'Production' => '',
+ 'Profit Center' => '',
+ 'Project' => 'Verkefni',
+ 'Project Description Translations' => '',
+ 'Project Name' => '',
+ 'Project Number' => '',
+ 'Project Number missing!' => 'Verkefnisnúmer vantar!',
+ 'Project Transactions' => '',
+ 'Project deleted!' => 'Verkefni eytt!',
+ 'Project not on file!' => 'Verkefni ekki á skrá!',
+ 'Project saved!' => 'verkefni geymt!',
+ 'Project/Job Name' => '',
+ 'Project/Job Number' => '',
+ 'Projects' => 'Verkefni',
+ 'Purchase Order' => 'Innkaupspöntun',
+ 'Purchase Order Number' => '',
+ 'Purchase Orders' => 'Innkaupspantanir',
+ 'Qty' => 'Magn',
+ 'Quantity exceeds available units to stock!' => '',
+ 'Quarter' => '',
+ 'Quotation' => '',
+ 'Quotation ' => '',
+ 'Quotation Date' => '',
+ 'Quotation Date missing!' => '',
+ 'Quotation Number' => '',
+ 'Quotation Number missing!' => '',
+ 'Quotation deleted!' => '',
+ 'Quotations' => '',
+ 'R' => '',
+ 'RFQ' => '',
+ 'RFQ ' => '',
+ 'RFQ Number' => '',
+ 'RFQs' => '',
+ 'ROP' => '',
+ 'Rate' => 'Taxti',
+ 'Rate missing!' => '',
+ 'Recd' => 'Mótt:',
+ 'Receipt' => 'Kvittun',
+ 'Receipt posted!' => '',
+ 'Receipts' => 'Kvittanir',
+ 'Receivables' => 'Innborganir',
+ 'Receive' => '',
+ 'Receive Merchandise' => '',
+ 'Reconciliation' => 'Afstemingar',
+ 'Reconciliation Report' => '',
+ 'Record in' => 'Bóka á',
+ 'Recurring Transaction' => '',
+ 'Recurring Transactions' => '',
+ 'Reference' => 'Fylgiskjal',
+ 'Remaining' => 'Eftir',
+ 'Remove' => '',
+ 'Remove Audit trail up to' => '',
+ 'Removed spoolfiles!' => '',
+ 'Removing marked entries from queue ...' => '',
+ 'Repeat' => '',
+ 'Report for' => 'Skýrsla fyrir',
+ 'Reports' => 'Skýrslur',
+ 'Req' => '',
+ 'Request for Quotation' => '',
+ 'Request for Quotations' => '',
+ 'Required by' => 'Pantað af',
+ 'Retained Earnings' => 'Realiseret overskud',
+ 'Role' => '',
+ 'S' => '',
+ 'SIC' => '',
+ 'SIC deleted!' => '',
+ 'SIC saved!' => '',
+ 'SKU' => '',
+ 'SSN' => '',
+ 'Sale' => '',
+ 'Sales' => 'Sala',
+ 'Sales Invoice' => 'Sölureikningur',
+ 'Sales Invoice ' => '',
+ 'Sales Invoice.' => '',
+ 'Sales Invoice/AR Transaction Number' => '',
+ 'Sales Invoices' => '',
+ 'Sales Order' => 'Sölupöntun',
+ 'Sales Order Number' => '',
+ 'Sales Orders' => 'Sölupantanir',
+ 'Sales Quotation Number' => '',
+ 'Salesperson' => '',
+ 'Saturday' => '',
+ 'Save' => 'Geyma',
+ 'Save Pricelist' => '',
+ 'Save Schedule' => '',
+ 'Save as new' => 'Geyma sem nýtt',
+ 'Save to File' => 'Geyma í skrá',
+ 'Saving' => '',
+ 'Schedule' => '',
+ 'Scheduled' => '',
+ 'Screen' => 'Skjá',
+ 'Search' => '',
+ 'Select' => '',
+ 'Select Customer' => '',
+ 'Select Vendor' => '',
+ 'Select a Printer!' => '',
+ 'Select a printer!' => '',
+ 'Select all' => 'Velja allt',
+ 'Select from one of the items below' => 'Veljið einhver að neðangreindum hlutum, og ýtið á "Áfram"',
+ 'Select from one of the names below' => 'Veljið einhvað að neðangreindum nöfnum',
+ 'Select from one of the projects below' => 'Veljið einhvað að neðangreindum verkefnum',
+ 'Select items' => '',
+ 'Select payment' => '',
+ 'Select postscript or PDF!' => 'Veljið postscript eða PDF',
+ 'Select txt, postscript or PDF!' => '',
+ 'Sell' => '',
+ 'Sell Price' => 'Söluverð',
+ 'Send by E-Mail' => 'Senda með rafpósti',
+ 'Sending' => '',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Serial No.' => '',
+ 'Serial Number' => '',
+ 'Service' => 'Þjónusta',
+ 'Service Code' => '',
+ 'Service/Labor Code' => '',
+ 'Services' => 'Þjónustur',
+ 'Session Timeout' => '',
+ 'Session expired!' => '',
+ 'Setup Templates' => 'Skabalón fyrir uppsetningu',
+ 'Ship' => 'Senda',
+ 'Ship Merchandise' => '',
+ 'Ship to' => 'Senda til',
+ 'Ship via' => 'Senda með',
+ 'Shipping' => '',
+ 'Shipping Address' => '',
+ 'Shipping Date' => '',
+ 'Shipping Date missing!' => '',
+ 'Shipping Point' => '',
+ 'Short' => 'Stutt',
+ 'Signature' => 'Undirskrift',
+ 'Source' => 'Frálag',
+ 'Spoolfile' => '',
+ 'Standard' => 'Standart',
+ 'Standard Industrial Codes' => '',
+ 'Startdate' => '',
+ 'State' => '',
+ 'State/Province' => '',
+ 'Statement' => 'Uppgjör',
+ 'Statement Balance' => 'jöfnunaruppgjör',
+ 'Statement sent to' => 'Uppgjör sendist til',
+ 'Statements sent to printer!' => 'Uppgjör sendist á prentara',
+ 'Stock' => '',
+ 'Stock Assembly' => 'Lager samsetning',
+ 'Stocking Date' => '',
+ 'Stylesheet' => 'Stílblað',
+ 'Sub-contract GIFI' => '',
+ 'Subject' => 'Efni',
+ 'Subtotal' => 'Samtala',
+ 'Summary' => '',
+ 'Sunday' => '',
+ 'Supervisor' => '',
+ 'System' => 'Kerfi',
+ 'System Defaults' => '',
+ 'Tax' => 'Virðisaukaskattur',
+ 'Tax Accounts' => 'VSK lykill',
+ 'Tax Included' => 'Taka með VSK',
+ 'Tax Number' => '',
+ 'Tax Number / SSN' => '',
+ 'Tax collected' => 'VSK samtals',
+ 'Tax paid' => 'VSK greitt',
+ 'Taxable' => 'Skatskildur',
+ 'Template saved!' => 'Skabalón geymt!',
+ 'Templates' => 'Skabalón',
+ 'Terms' => 'Nettó',
+ 'Text' => '',
+ 'Text Templates' => '',
+ 'The following Datasets are not in use and can be deleted' => 'Eftirfarandi gagnasöfn eru ekki í notkunn og er því ekki hægt að eyða þeim',
+ 'The following Datasets need to be updated' => 'Eftirfarandi gagnasafn þarfnast uppfærslu',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Engu verður eytt eða breytt með þessu ',
+ 'Thursday' => '',
+ 'Till' => '',
+ 'Time In' => '',
+ 'Time Out' => '',
+ 'Timecard' => '',
+ 'Timecard deleted!' => '',
+ 'Timecard saved!' => '',
+ 'Timecards' => '',
+ 'Times' => '',
+ 'To' => 'til',
+ 'To Warehouse' => '',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Þú getur notað notanda sem til er til þess að útbúa nýjan notanda með þvi að breyta bara notendanafninu.',
+ 'Top Level' => 'Efsta þrep',
+ 'Total' => 'Samtals',
+ 'Tracking Items' => '',
+ 'Trade Discount' => '',
+ 'Transaction' => '',
+ 'Transaction Date missing!' => 'Dags. vantar!',
+ 'Transaction Dates' => '',
+ 'Transaction deleted!' => 'Færslu eytt!',
+ 'Transaction posted!' => 'Færsla bókfærð!',
+ 'Transaction reversal enforced for all dates' => 'Rettelser af posteringer skal altid bogføres explicit',
+ 'Transaction reversal enforced up to' => 'Rettelser af posteringer skal bogføres explicit indtil',
+ 'Transactions' => 'Færslur',
+ 'Transfer' => '',
+ 'Transfer Inventory' => '',
+ 'Transfer from' => '',
+ 'Transfer to' => '',
+ 'Translation' => '',
+ 'Translation deleted!' => '',
+ 'Translation not on file!' => '',
+ 'Translations' => '',
+ 'Translations saved!' => '',
+ 'Trial Balance' => 'Prufu staða',
+ 'Tuesday' => '',
+ 'Type of Business' => '',
+ 'Unit' => 'Einingar',
+ 'Unit of measure' => 'Mælieining',
+ 'Unlock System' => 'Unlock System',
+ 'Update' => 'Uppfærsla',
+ 'Update Dataset' => 'Uppfæra gagnasafn',
+ 'Updated' => 'Uppfæra',
+ 'Upgrading to Version' => '',
+ 'Use Templates' => 'Nota skabalón',
+ 'User' => 'Notandi',
+ 'User deleted!' => 'Notanda eytt!',
+ 'User saved!' => 'Notandi geymdur!',
+ 'Valid until' => '',
+ 'Vendor' => 'Byrgir',
+ 'Vendor History' => '',
+ 'Vendor Invoice' => 'Innkaupsreikningur',
+ 'Vendor Invoice ' => '',
+ 'Vendor Invoice.' => '',
+ 'Vendor Invoice/AP Transaction Number' => '',
+ 'Vendor Invoices' => '',
+ 'Vendor Number' => '',
+ 'Vendor deleted!' => 'Byrgja eytt!',
+ 'Vendor missing!' => 'Byrgja vantar!',
+ 'Vendor not on file!' => 'Byrgir ekki til í gagnagrunni!',
+ 'Vendor saved!' => 'Byrgir geymdur!',
+ 'Vendors' => 'Byrgjar',
+ 'Version' => 'Útgáfa',
+ 'Warehouse' => '',
+ 'Warehouse deleted!' => '',
+ 'Warehouse saved!' => '',
+ 'Warehouses' => '',
+ 'Warning!' => '',
+ 'Wednesday' => '',
+ 'Week' => '',
+ 'Week(s)' => '',
+ 'Weeks' => '',
+ 'Weight' => 'Vigt',
+ 'Weight Unit' => 'Vigtareining',
+ 'What type of item is this?' => 'Hvernig hlutur er þetta?',
+ 'Work Order' => '',
+ 'Work Orders' => '',
+ 'Work Phone' => '',
+ 'Year' => '',
+ 'Year(s)' => '',
+ 'Yearend' => '',
+ 'Yearend date missing!' => '',
+ 'Yearend posted!' => '',
+ 'Yearend posting failed!' => '',
+ 'Years' => '',
+ 'Yes' => 'Já',
+ 'You are logged out' => '',
+ 'You are posting an existing transaction!' => '',
+ 'You are printing and posting an existing transaction!' => '',
+ 'You are printing and saving an existing order' => '',
+ 'You are printing and saving an existing quotation' => '',
+ 'You are printing and saving an existing transaction!' => '',
+ 'You are saving an existing order' => '',
+ 'You are saving an existing quotation' => '',
+ 'You are saving an existing transaction!' => '',
+ 'You did not enter a name!' => 'Þú gafst ekki upp nafn',
+ 'You must enter a host and port for local and remote connections!' => 'Þú verður að gefa upp netþjón of port til þess að geta tengst!',
+ 'Zip/Postal Code' => '',
+ 'account cannot be set to any other type of account' => '',
+ 'as at' => 'líkt og með',
+ 'days' => 'dagar',
+ 'does not exist' => 'er ekki til',
+ 'done' => '',
+ 'ea' => 'stk',
+ 'failed' => '',
+ 'for' => '',
+ 'for Period' => 'fyrir tímabilið',
+ 'is already a member!' => 'er þegar meðlimur',
+ 'localhost' => 'lokal',
+ 'locked!' => '',
+ 'partsgroup' => '',
+ 'posted!' => '',
+ 'sent' => '',
+ 'successfully created!' => 'uppfært!',
+ 'successfully deleted!' => 'eytt!',
+ 'time(s)' => '',
+ 'unexpected error!' => '',
+ 'website' => 'á Internetinu',
+};
+
+1;
diff --git a/locale/is/am b/locale/is/am
new file mode 100755
index 00000000..1640c2ab
--- /dev/null
+++ b/locale/is/am
@@ -0,0 +1,211 @@
+$self{texts} = {
+ 'AP' => 'Innkaupakerfi',
+ 'AR' => 'Sölukerfi',
+ 'About' => 'Um',
+ 'Account' => 'Reikningur',
+ 'Account Number' => 'Reikningsnúmer',
+ 'Account Number missing!' => 'Reikningsnúmer vantar!',
+ 'Account Type' => 'Reikningstegund',
+ 'Account Type missing!' => 'Reikningstegund vantar!',
+ 'Account deleted!' => 'Reikningi eytt!',
+ 'Account saved!' => 'Reikningur geymdur!',
+ 'Accounting Menu' => 'Bókhalds valmynd',
+ 'Add Account' => 'Nýr reikningur',
+ 'Add GIFI' => 'Ný GIFI',
+ 'Address' => 'Heimilisfang',
+ 'Amount' => 'Upphæð',
+ 'Asset' => 'Eignir',
+ 'Audit Control' => 'Yfirlit stjórnun',
+ 'Backup sent to' => 'Afrit sendist til',
+ 'Books are open' => 'Bókhald er opið fyrir leiðréttingar',
+ 'Business Number' => 'Viðskiptanúmer',
+ 'COGS' => 'Innkaup',
+ 'Cannot delete account!' => 'Get ekki eytt reikningi!',
+ 'Cannot delete default account!' => 'Get ekki eytt grunnreikningi!',
+ 'Cannot save account!' => 'Get ekki geymt reikning!',
+ 'Cannot save preferences!' => 'Get ekki geymt uppsetningu!',
+ 'Cash' => 'Reiðufé',
+ 'Chart of Accounts' => 'Listi yfir lykkla/reikninga',
+ 'Close Books up to' => 'Loka bókhaldi til dags',
+ 'Company' => 'Fyritæki',
+ 'Confirm!' => 'Staðfesta!',
+ 'Continue' => 'Áfram',
+ 'Copy to COA' => 'Afrita í COA',
+ 'Credit' => 'Kredit',
+ 'Database Host' => 'Gagnagrunns-netþjónn',
+ 'Dataset' => 'Gagnasafn',
+ 'Date Format' => 'Dagsetningarform',
+ 'Debit' => 'Debit',
+ 'Delete' => 'Eyða',
+ 'Delete Account' => 'Eyða reikningi',
+ 'Description' => 'Skýringar',
+ 'Discount' => 'Afsláttur',
+ 'Dropdown Limit' => 'Takmörk fyrir valmynd',
+ 'E-mail' => 'R-póstur',
+ 'E-mail address missing!' => 'R-póst vantar!',
+ 'Edit' => 'Breyta',
+ 'Edit Account' => 'Breyta reikningi',
+ 'Edit GIFI' => 'Breyta GIFI',
+ 'Edit Preferences for' => 'Breyta uppsetningu fyrir',
+ 'Edit Template' => 'Breyta skabalóni',
+ 'Enforce transaction reversal for all dates' => 'Gennemtving explicitte rettelser af posteringer for alle datoer',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Vinsamlega sláið inn 3 stafa nafn á gjaldeyri sem á að nota setji tvípúnkt á milli.',
+ 'Equity' => 'Eigiðfé',
+ 'Expense' => 'Kostnaður',
+ 'Expense/Asset' => 'Kostnaður/Eignir',
+ 'Fax' => 'Símbréf',
+ 'Foreign Exchange Gain' => 'Gengishagnaður',
+ 'Foreign Exchange Loss' => 'Gengistap',
+ 'GIFI' => 'GIFI',
+ 'GIFI deleted!' => 'GIFI eytt!',
+ 'GIFI missing!' => 'GIFI vantar!',
+ 'GIFI saved!' => 'GIFI geymt!',
+ 'GL Transaction' => 'Færslur í aðalbók',
+ 'Heading' => 'Yfirskriftir',
+ 'ID' => 'ID',
+ 'Include in drop-down menus' => 'Innifela í fellivalmynd',
+ 'Inventory' => 'Lager',
+ 'Invoice' => 'Sölureikningur',
+ 'Is this a summary account to record' => 'Söfnunarreikningur fyrir',
+ 'Language' => 'Túngumál',
+ 'Last Numbers & Default Accounts' => 'Síðasta númer og sjálfgefin reikningur',
+ 'Liability' => 'Passiv',
+ 'Licensed to' => 'Skráð á',
+ 'Link' => 'Tenglar',
+ 'Name' => 'Nafn',
+ 'No' => 'Nei',
+ 'No email address for' => 'Ekkert netfang fyrir',
+ 'Number' => 'Númer',
+ 'Number Format' => 'Númera útlit',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Fylgiseðill',
+ 'Password' => 'Aðgangsorð',
+ 'Payables' => 'Útistandandi',
+ 'Payment' => 'Greislur',
+ 'Phone' => 'Sími.',
+ 'Postscript' => 'Postscript',
+ 'Preferences saved!' => 'Uppsetningar geymdar!',
+ 'Print' => 'Prenta',
+ 'Printer' => 'Prentari',
+ 'Purchase Order' => 'Innkaupspöntun',
+ 'Purchase Orders' => 'Innkaupspantanir',
+ 'Rate' => 'Taxti',
+ 'Receivables' => 'Innborganir',
+ 'Reference' => 'Fylgiskjal',
+ 'Retained Earnings' => 'Realiseret overskud',
+ 'Sales Invoice' => 'Sölureikningur',
+ 'Sales Order' => 'Sölupöntun',
+ 'Sales Orders' => 'Sölupantanir',
+ 'Save' => 'Geyma',
+ 'Save as new' => 'Geyma sem nýtt',
+ 'Signature' => 'Undirskrift',
+ 'Stylesheet' => 'Stílblað',
+ 'Tax' => 'Virðisaukaskattur',
+ 'Template saved!' => 'Skabalón geymt!',
+ 'Transaction reversal enforced for all dates' => 'Rettelser af posteringer skal altid bogføres explicit',
+ 'Transaction reversal enforced up to' => 'Rettelser af posteringer skal bogføres explicit indtil',
+ 'Update' => 'Uppfærsla',
+ 'User' => 'Notandi',
+ 'Vendor Invoice' => 'Innkaupsreikningur',
+ 'Version' => 'Útgáfa',
+ 'Weight Unit' => 'Vigtareining',
+ 'Yes' => 'Já',
+ 'localhost' => 'lokal',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'nýr_reikningur' => 'add_account',
+ 'Áfram' => 'continue',
+ 'afrita_í_coa' => 'copy_to_coa',
+ 'eyða' => 'delete',
+ 'breyta' => 'edit',
+ 'breyta_reikningi' => 'edit_account',
+ 'geyma' => 'save',
+ 'geyma_sem_nýtt' => 'save_as_new',
+ 'uppfærsla' => 'update',
+};
+
+1;
+
diff --git a/locale/is/ap b/locale/is/ap
new file mode 100755
index 00000000..f9cf5764
--- /dev/null
+++ b/locale/is/ap
@@ -0,0 +1,179 @@
+$self{texts} = {
+ 'AP Transaction' => 'Innkaupafærsla',
+ 'AP Transactions' => 'Innkaupafærslur',
+ 'AR Transaction' => 'Sölufærsla',
+ 'AR Transactions' => 'Sölufærslur',
+ 'Account' => 'Reikningur',
+ 'Accounting Menu' => 'Bókhalds valmynd',
+ 'Address' => 'Heimilisfang',
+ 'Amount' => 'Upphæð',
+ 'Amount Due' => 'Eindagi',
+ 'Apr' => 'apr',
+ 'April' => 'apríl',
+ 'Are you sure you want to delete Transaction' => 'Ert þú viss um að þú viljir eyða færslunni',
+ 'Aug' => 'ágú',
+ 'August' => 'ágúst',
+ 'Bcc' => 'Blint afrit',
+ 'Cannot delete transaction!' => 'Get ekki eytt færslu!',
+ 'Cannot post payment for a closed period!' => 'Get ekki bókað greiðslu á lokað tímabil',
+ 'Cannot post transaction for a closed period!' => 'Get ekki bókað færslu á lokað tímabil!',
+ 'Cannot post transaction!' => 'Get ekki bókað færslu!',
+ 'Cc' => 'Afrit',
+ 'Check' => 'Ávísun',
+ 'Closed' => 'Lokað',
+ 'Confirm!' => 'Staðfesta!',
+ 'Continue' => 'Áfram',
+ 'Credit' => 'Kredit',
+ 'Credit Limit' => 'Kreditmörk',
+ 'Curr' => 'Gjaldm',
+ 'Currency' => 'Gjaldmiðill',
+ 'Current' => 'Núvirði',
+ 'Customer' => 'Viðskiptavinur',
+ 'Customer missing!' => 'Viðskiptavin vantar!',
+ 'Customer not on file!' => 'Viðskiptavinur ekki á skrá!',
+ 'Date' => 'Dagsetning',
+ 'Date Paid' => 'Greiðsludagur',
+ 'Debit' => 'Debit',
+ 'Dec' => 'des',
+ 'December' => 'desember',
+ 'Delete' => 'Eyða',
+ 'Description' => 'Skýringar',
+ 'Due Date' => 'Dags. lokið',
+ 'Due Date missing!' => 'Vantar dags. lokið!',
+ 'E-mail' => 'R-póstur',
+ 'Employee' => 'Starfsmenn',
+ 'Exch' => 'Vx',
+ 'Exchange Rate' => 'Vextir',
+ 'Exchange rate for payment missing!' => 'Vextir fyrir greiðslu vantar!',
+ 'Exchange rate missing!' => 'Vantar vexti!',
+ 'Feb' => 'feb',
+ 'February' => 'febrúar',
+ 'From' => 'Frá',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Innifela í skýrslu',
+ 'Invoice' => 'Sölureikningur',
+ 'Invoice Date' => 'Sölureikningur dags.',
+ 'Invoice Date missing!' => 'Sölureiknings dags. vantar!',
+ 'Invoice Number' => 'Sölureikningur Númer',
+ 'Jan' => 'jan',
+ 'January' => 'janúar',
+ 'Jul' => 'júl',
+ 'July' => 'júlí',
+ 'Jun' => 'jún',
+ 'June' => 'júní',
+ 'Mar' => 'mar',
+ 'March' => 'mars',
+ 'May' => 'maí',
+ 'May ' => 'maí',
+ 'Message' => 'Skilaboð',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Upplýsinar',
+ 'Nov' => 'nóv',
+ 'November' => 'nóvember',
+ 'Number' => 'Númer',
+ 'Oct' => 'ókt',
+ 'October' => 'óktóber',
+ 'Open' => 'opna',
+ 'Order' => 'Pöntun',
+ 'Order Number' => 'Pöntun númer',
+ 'PDF' => 'PDF',
+ 'Paid' => 'Greitt',
+ 'Payment date missing!' => 'Greiðsudags. vantar!',
+ 'Payments' => 'Greiðslur',
+ 'Post' => 'Bókfæra',
+ 'Post as new' => 'Bókfæra sem nýjan',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Prenta',
+ 'Project' => 'Verkefni',
+ 'Project not on file!' => 'Verkefni ekki á skrá!',
+ 'Receipt' => 'Kvittun',
+ 'Reference' => 'Fylgiskjal',
+ 'Remaining' => 'Eftir',
+ 'Screen' => 'Skjá',
+ 'Select from one of the names below' => 'Veljið einhvað að neðangreindum nöfnum',
+ 'Select from one of the projects below' => 'Veljið einhvað að neðangreindum verkefnum',
+ 'Select postscript or PDF!' => 'Veljið postscript eða PDF',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Ship to' => 'Senda til',
+ 'Ship via' => 'Senda með',
+ 'Source' => 'Frálag',
+ 'Subject' => 'Efni',
+ 'Subtotal' => 'Samtala',
+ 'Tax' => 'Virðisaukaskattur',
+ 'Tax Included' => 'Taka með VSK',
+ 'To' => 'til',
+ 'Total' => 'Samtals',
+ 'Transaction deleted!' => 'Færslu eytt!',
+ 'Transaction posted!' => 'Færsla bókfærð!',
+ 'Update' => 'Uppfærsla',
+ 'Vendor' => 'Byrgir',
+ 'Vendor missing!' => 'Byrgja vantar!',
+ 'Vendor not on file!' => 'Byrgir ekki til í gagnagrunni!',
+ 'Yes' => 'Já',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'innkaupafærsla' => 'ap_transaction',
+ 'sölufærsla' => 'ar_transaction',
+ 'Áfram' => 'continue',
+ 'eyða' => 'delete',
+ 'bókfæra' => 'post',
+ 'bókfæra_sem_nýjan' => 'post_as_new',
+ 'prenta' => 'print',
+ 'senda_til' => 'ship_to',
+ 'uppfærsla' => 'update',
+ 'já' => 'yes',
+};
+
+1;
+
diff --git a/locale/is/ar b/locale/is/ar
new file mode 100755
index 00000000..f9cf5764
--- /dev/null
+++ b/locale/is/ar
@@ -0,0 +1,179 @@
+$self{texts} = {
+ 'AP Transaction' => 'Innkaupafærsla',
+ 'AP Transactions' => 'Innkaupafærslur',
+ 'AR Transaction' => 'Sölufærsla',
+ 'AR Transactions' => 'Sölufærslur',
+ 'Account' => 'Reikningur',
+ 'Accounting Menu' => 'Bókhalds valmynd',
+ 'Address' => 'Heimilisfang',
+ 'Amount' => 'Upphæð',
+ 'Amount Due' => 'Eindagi',
+ 'Apr' => 'apr',
+ 'April' => 'apríl',
+ 'Are you sure you want to delete Transaction' => 'Ert þú viss um að þú viljir eyða færslunni',
+ 'Aug' => 'ágú',
+ 'August' => 'ágúst',
+ 'Bcc' => 'Blint afrit',
+ 'Cannot delete transaction!' => 'Get ekki eytt færslu!',
+ 'Cannot post payment for a closed period!' => 'Get ekki bókað greiðslu á lokað tímabil',
+ 'Cannot post transaction for a closed period!' => 'Get ekki bókað færslu á lokað tímabil!',
+ 'Cannot post transaction!' => 'Get ekki bókað færslu!',
+ 'Cc' => 'Afrit',
+ 'Check' => 'Ávísun',
+ 'Closed' => 'Lokað',
+ 'Confirm!' => 'Staðfesta!',
+ 'Continue' => 'Áfram',
+ 'Credit' => 'Kredit',
+ 'Credit Limit' => 'Kreditmörk',
+ 'Curr' => 'Gjaldm',
+ 'Currency' => 'Gjaldmiðill',
+ 'Current' => 'Núvirði',
+ 'Customer' => 'Viðskiptavinur',
+ 'Customer missing!' => 'Viðskiptavin vantar!',
+ 'Customer not on file!' => 'Viðskiptavinur ekki á skrá!',
+ 'Date' => 'Dagsetning',
+ 'Date Paid' => 'Greiðsludagur',
+ 'Debit' => 'Debit',
+ 'Dec' => 'des',
+ 'December' => 'desember',
+ 'Delete' => 'Eyða',
+ 'Description' => 'Skýringar',
+ 'Due Date' => 'Dags. lokið',
+ 'Due Date missing!' => 'Vantar dags. lokið!',
+ 'E-mail' => 'R-póstur',
+ 'Employee' => 'Starfsmenn',
+ 'Exch' => 'Vx',
+ 'Exchange Rate' => 'Vextir',
+ 'Exchange rate for payment missing!' => 'Vextir fyrir greiðslu vantar!',
+ 'Exchange rate missing!' => 'Vantar vexti!',
+ 'Feb' => 'feb',
+ 'February' => 'febrúar',
+ 'From' => 'Frá',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Innifela í skýrslu',
+ 'Invoice' => 'Sölureikningur',
+ 'Invoice Date' => 'Sölureikningur dags.',
+ 'Invoice Date missing!' => 'Sölureiknings dags. vantar!',
+ 'Invoice Number' => 'Sölureikningur Númer',
+ 'Jan' => 'jan',
+ 'January' => 'janúar',
+ 'Jul' => 'júl',
+ 'July' => 'júlí',
+ 'Jun' => 'jún',
+ 'June' => 'júní',
+ 'Mar' => 'mar',
+ 'March' => 'mars',
+ 'May' => 'maí',
+ 'May ' => 'maí',
+ 'Message' => 'Skilaboð',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Upplýsinar',
+ 'Nov' => 'nóv',
+ 'November' => 'nóvember',
+ 'Number' => 'Númer',
+ 'Oct' => 'ókt',
+ 'October' => 'óktóber',
+ 'Open' => 'opna',
+ 'Order' => 'Pöntun',
+ 'Order Number' => 'Pöntun númer',
+ 'PDF' => 'PDF',
+ 'Paid' => 'Greitt',
+ 'Payment date missing!' => 'Greiðsudags. vantar!',
+ 'Payments' => 'Greiðslur',
+ 'Post' => 'Bókfæra',
+ 'Post as new' => 'Bókfæra sem nýjan',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Prenta',
+ 'Project' => 'Verkefni',
+ 'Project not on file!' => 'Verkefni ekki á skrá!',
+ 'Receipt' => 'Kvittun',
+ 'Reference' => 'Fylgiskjal',
+ 'Remaining' => 'Eftir',
+ 'Screen' => 'Skjá',
+ 'Select from one of the names below' => 'Veljið einhvað að neðangreindum nöfnum',
+ 'Select from one of the projects below' => 'Veljið einhvað að neðangreindum verkefnum',
+ 'Select postscript or PDF!' => 'Veljið postscript eða PDF',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Ship to' => 'Senda til',
+ 'Ship via' => 'Senda með',
+ 'Source' => 'Frálag',
+ 'Subject' => 'Efni',
+ 'Subtotal' => 'Samtala',
+ 'Tax' => 'Virðisaukaskattur',
+ 'Tax Included' => 'Taka með VSK',
+ 'To' => 'til',
+ 'Total' => 'Samtals',
+ 'Transaction deleted!' => 'Færslu eytt!',
+ 'Transaction posted!' => 'Færsla bókfærð!',
+ 'Update' => 'Uppfærsla',
+ 'Vendor' => 'Byrgir',
+ 'Vendor missing!' => 'Byrgja vantar!',
+ 'Vendor not on file!' => 'Byrgir ekki til í gagnagrunni!',
+ 'Yes' => 'Já',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'innkaupafærsla' => 'ap_transaction',
+ 'sölufærsla' => 'ar_transaction',
+ 'Áfram' => 'continue',
+ 'eyða' => 'delete',
+ 'bókfæra' => 'post',
+ 'bókfæra_sem_nýjan' => 'post_as_new',
+ 'prenta' => 'print',
+ 'senda_til' => 'ship_to',
+ 'uppfærsla' => 'update',
+ 'já' => 'yes',
+};
+
+1;
+
diff --git a/locale/is/arap b/locale/is/arap
new file mode 100755
index 00000000..3f07942f
--- /dev/null
+++ b/locale/is/arap
@@ -0,0 +1,48 @@
+$self{texts} = {
+ 'Address' => 'Heimilisfang',
+ 'Bcc' => 'Blint afrit',
+ 'Cc' => 'Afrit',
+ 'Continue' => 'Áfram',
+ 'Customer not on file!' => 'Viðskiptavinur ekki á skrá!',
+ 'Date' => 'Dagsetning',
+ 'Description' => 'Skýringar',
+ 'E-mail' => 'R-póstur',
+ 'Message' => 'Skilaboð',
+ 'Number' => 'Númer',
+ 'Print' => 'Prenta',
+ 'Project not on file!' => 'Verkefni ekki á skrá!',
+ 'Reference' => 'Fylgiskjal',
+ 'Select from one of the names below' => 'Veljið einhvað að neðangreindum nöfnum',
+ 'Select from one of the projects below' => 'Veljið einhvað að neðangreindum verkefnum',
+ 'Subject' => 'Efni',
+ 'To' => 'til',
+ 'Vendor not on file!' => 'Byrgir ekki til í gagnagrunni!',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'Áfram' => 'continue',
+};
+
+1;
+
diff --git a/locale/is/arapprn b/locale/is/arapprn
new file mode 100755
index 00000000..dfd165bb
--- /dev/null
+++ b/locale/is/arapprn
@@ -0,0 +1,28 @@
+$self{texts} = {
+ 'Account' => 'Reikningur',
+ 'Amount' => 'Upphæð',
+ 'Continue' => 'Áfram',
+ 'Date' => 'Dagsetning',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'Postscript',
+ 'Screen' => 'Skjá',
+ 'Select postscript or PDF!' => 'Veljið postscript eða PDF',
+ 'Source' => 'Frálag',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'Áfram' => 'continue',
+};
+
+1;
+
diff --git a/locale/is/bp b/locale/is/bp
new file mode 100755
index 00000000..0cad2f2b
--- /dev/null
+++ b/locale/is/bp
@@ -0,0 +1,45 @@
+$self{texts} = {
+ 'Account' => 'Reikningur',
+ 'Accounting Menu' => 'Bókhalds valmynd',
+ 'Confirm!' => 'Staðfesta!',
+ 'Continue' => 'Áfram',
+ 'Current' => 'Núvirði',
+ 'Customer' => 'Viðskiptavinur',
+ 'Date' => 'Dagsetning',
+ 'Employee' => 'Starfsmenn',
+ 'From' => 'Frá',
+ 'ID' => 'ID',
+ 'Invoice' => 'Sölureikningur',
+ 'Invoice Number' => 'Sölureikningur Númer',
+ 'Order' => 'Pöntun',
+ 'Order Number' => 'Pöntun númer',
+ 'Print' => 'Prenta',
+ 'Purchase Orders' => 'Innkaupspantanir',
+ 'Sales Orders' => 'Sölupantanir',
+ 'Select all' => 'Velja allt',
+ 'To' => 'til',
+ 'Vendor' => 'Byrgir',
+ 'Yes' => 'Já',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'Áfram' => 'continue',
+ 'prenta' => 'print',
+ 'velja_allt' => 'select_all',
+ 'já' => 'yes',
+};
+
+1;
+
diff --git a/locale/is/ca b/locale/is/ca
new file mode 100755
index 00000000..d3a7e419
--- /dev/null
+++ b/locale/is/ca
@@ -0,0 +1,52 @@
+$self{texts} = {
+ 'Account' => 'Reikningur',
+ 'Apr' => 'apr',
+ 'April' => 'apríl',
+ 'Aug' => 'ágú',
+ 'August' => 'ágúst',
+ 'Balance' => 'Afstemming',
+ 'Chart of Accounts' => 'Listi yfir lykkla/reikninga',
+ 'Credit' => 'Kredit',
+ 'Current' => 'Núvirði',
+ 'Date' => 'Dagsetning',
+ 'Debit' => 'Debit',
+ 'Dec' => 'des',
+ 'December' => 'desember',
+ 'Description' => 'Skýringar',
+ 'Feb' => 'feb',
+ 'February' => 'febrúar',
+ 'From' => 'Frá',
+ 'GIFI' => 'GIFI',
+ 'Include in Report' => 'Innifela í skýrslu',
+ 'Jan' => 'jan',
+ 'January' => 'janúar',
+ 'Jul' => 'júl',
+ 'July' => 'júlí',
+ 'Jun' => 'jún',
+ 'June' => 'júní',
+ 'List Transactions' => 'Sýna færslur',
+ 'Mar' => 'mar',
+ 'March' => 'mars',
+ 'May' => 'maí',
+ 'May ' => 'maí',
+ 'Nov' => 'nóv',
+ 'November' => 'nóvember',
+ 'Oct' => 'ókt',
+ 'October' => 'óktóber',
+ 'Reference' => 'Fylgiskjal',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Subtotal' => 'Samtala',
+ 'To' => 'til',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'sýna_færslur' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/is/cp b/locale/is/cp
new file mode 100755
index 00000000..fdd591ae
--- /dev/null
+++ b/locale/is/cp
@@ -0,0 +1,113 @@
+$self{texts} = {
+ 'AP' => 'Innkaupakerfi',
+ 'AR' => 'Sölukerfi',
+ 'Account' => 'Reikningur',
+ 'Accounting Menu' => 'Bókhalds valmynd',
+ 'Address' => 'Heimilisfang',
+ 'All' => 'Allt',
+ 'Amount' => 'Upphæð',
+ 'Amount Due' => 'Eindagi',
+ 'Bcc' => 'Blint afrit',
+ 'Cannot post payment for a closed period!' => 'Get ekki bókað greiðslu á lokað tímabil',
+ 'Cc' => 'Afrit',
+ 'Continue' => 'Áfram',
+ 'Currency' => 'Gjaldmiðill',
+ 'Customer' => 'Viðskiptavinur',
+ 'Customer not on file!' => 'Viðskiptavinur ekki á skrá!',
+ 'Date' => 'Dagsetning',
+ 'Date missing!' => 'Dagsetningu vantar!',
+ 'Deposit' => 'Innlagt',
+ 'Description' => 'Skýringar',
+ 'Due Date' => 'Dags. lokið',
+ 'E-mail' => 'R-póstur',
+ 'Exchange Rate' => 'Vextir',
+ 'Exchange rate missing!' => 'Vantar vexti!',
+ 'From' => 'Frá',
+ 'Invoice' => 'Sölureikningur',
+ 'Invoices' => 'Sölureikningar',
+ 'Language' => 'Túngumál',
+ 'Message' => 'Skilaboð',
+ 'Number' => 'Númer',
+ 'PDF' => 'PDF',
+ 'Payment' => 'Greislur',
+ 'Payment posted!' => 'Greiðsla bókuð',
+ 'Payments' => 'Greiðslur',
+ 'Post' => 'Bókfæra',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Prenta',
+ 'Project not on file!' => 'Verkefni ekki á skrá!',
+ 'Receipt' => 'Kvittun',
+ 'Receipts' => 'Kvittanir',
+ 'Reference' => 'Fylgiskjal',
+ 'Screen' => 'Skjá',
+ 'Select all' => 'Velja allt',
+ 'Select from one of the names below' => 'Veljið einhvað að neðangreindum nöfnum',
+ 'Select from one of the projects below' => 'Veljið einhvað að neðangreindum verkefnum',
+ 'Select postscript or PDF!' => 'Veljið postscript eða PDF',
+ 'Source' => 'Frálag',
+ 'Subject' => 'Efni',
+ 'To' => 'til',
+ 'Update' => 'Uppfærsla',
+ 'Vendor' => 'Byrgir',
+ 'Vendor not on file!' => 'Byrgir ekki til í gagnagrunni!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'Áfram' => 'continue',
+ 'bókfæra' => 'post',
+ 'prenta' => 'print',
+ 'velja_allt' => 'select_all',
+ 'uppfærsla' => 'update',
+};
+
+1;
+
diff --git a/locale/is/ct b/locale/is/ct
new file mode 100755
index 00000000..1f51867b
--- /dev/null
+++ b/locale/is/ct
@@ -0,0 +1,136 @@
+$self{texts} = {
+ 'AP Transaction' => 'Innkaupafærsla',
+ 'AP Transactions' => 'Innkaupafærslur',
+ 'AR Transaction' => 'Sölufærsla',
+ 'AR Transactions' => 'Sölufærslur',
+ 'Accounting Menu' => 'Bókhalds valmynd',
+ 'Active' => 'Virkja',
+ 'Add Customer' => 'Nýr viðskiptavinur',
+ 'Add Vendor' => 'Nýr byrgir',
+ 'Address' => 'Heimilisfang',
+ 'All' => 'Allt',
+ 'Amount' => 'Upphæð',
+ 'Bcc' => 'Blint afrit',
+ 'Cannot delete customer!' => 'Get ekki eytt viðskiptavini!',
+ 'Cannot delete vendor!' => 'Get ekki eytt framleiðanda!',
+ 'Cc' => 'Afrit',
+ 'Closed' => 'Lokað',
+ 'Contact' => 'Talsmaður',
+ 'Continue' => 'Áfram',
+ 'Credit Limit' => 'Kreditmörk',
+ 'Curr' => 'Gjaldm',
+ 'Currency' => 'Gjaldmiðill',
+ 'Customer deleted!' => 'Viðskiptavini eytt!',
+ 'Customer saved!' => 'Viðskiptavinur geymdur!',
+ 'Customers' => 'Viðskiptavinir',
+ 'Delete' => 'Eyða',
+ 'Delivery Date' => 'Afgreiðsludags.',
+ 'Description' => 'Skýringar',
+ 'Discount' => 'Afsláttur',
+ 'E-mail' => 'R-póstur',
+ 'Edit Customer' => 'Breyta viðskiptavini',
+ 'Edit Vendor' => 'Breyta byrgja',
+ 'Employee' => 'Starfsmenn',
+ 'Fax' => 'Símbréf',
+ 'From' => 'Frá',
+ 'GIFI' => 'GIFI',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Innifela í skýrslu',
+ 'Invoice' => 'Sölureikningur',
+ 'Item not on file!' => 'Hlutur ekki á skrá!',
+ 'Language' => 'Túngumál',
+ 'Name' => 'Nafn',
+ 'Name missing!' => 'Nafn vantar!',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Upplýsinar',
+ 'Number' => 'Númer',
+ 'Open' => 'opna',
+ 'Order' => 'Pöntun',
+ 'Orphaned' => 'Sjáfstætt',
+ 'Phone' => 'Sími.',
+ 'Purchase Order' => 'Innkaupspöntun',
+ 'Purchase Orders' => 'Innkaupspantanir',
+ 'Qty' => 'Magn',
+ 'Sales Invoice' => 'Sölureikningur',
+ 'Sales Order' => 'Sölupöntun',
+ 'Sales Orders' => 'Sölupantanir',
+ 'Save' => 'Geyma',
+ 'Save as new' => 'Geyma sem nýtt',
+ 'Sell Price' => 'Söluverð',
+ 'Subtotal' => 'Samtala',
+ 'Tax' => 'Virðisaukaskattur',
+ 'Tax Included' => 'Taka með VSK',
+ 'Taxable' => 'Skatskildur',
+ 'Terms' => 'Nettó',
+ 'To' => 'til',
+ 'Total' => 'Samtals',
+ 'Unit' => 'Einingar',
+ 'Update' => 'Uppfærsla',
+ 'Vendor Invoice' => 'Innkaupsreikningur',
+ 'Vendor deleted!' => 'Byrgja eytt!',
+ 'Vendor saved!' => 'Byrgir geymdur!',
+ 'Vendors' => 'Byrgjar',
+ 'days' => 'dagar',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'innkaupafærsla' => 'ap_transaction',
+ 'sölufærsla' => 'ar_transaction',
+ 'nýr_viðskiptavinur' => 'add_customer',
+ 'nýr_byrgir' => 'add_vendor',
+ 'Áfram' => 'continue',
+ 'eyða' => 'delete',
+ 'innkaupspöntun' => 'purchase_order',
+ 'sölureikningur' => 'sales_invoice',
+ 'sölupöntun' => 'sales_order',
+ 'geyma' => 'save',
+ 'geyma_sem_nýtt' => 'save_as_new',
+ 'uppfærsla' => 'update',
+ 'innkaupsreikningur' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/is/gl b/locale/is/gl
new file mode 100755
index 00000000..f53ad5e9
--- /dev/null
+++ b/locale/is/gl
@@ -0,0 +1,139 @@
+$self{texts} = {
+ 'AP Transaction' => 'Innkaupafærsla',
+ 'AR Transaction' => 'Sölufærsla',
+ 'Account' => 'Reikningur',
+ 'Accounting Menu' => 'Bókhalds valmynd',
+ 'Add General Ledger Transaction' => 'Ný höfuðfærsla',
+ 'Address' => 'Heimilisfang',
+ 'All' => 'Allt',
+ 'Amount' => 'Upphæð',
+ 'Apr' => 'apr',
+ 'April' => 'apríl',
+ 'Are you sure you want to delete Transaction' => 'Ert þú viss um að þú viljir eyða færslunni',
+ 'Asset' => 'Eignir',
+ 'Aug' => 'ágú',
+ 'August' => 'ágúst',
+ 'Balance' => 'Afstemming',
+ 'Bcc' => 'Blint afrit',
+ 'Cannot delete transaction!' => 'Get ekki eytt færslu!',
+ 'Cannot post transaction for a closed period!' => 'Get ekki bókað færslu á lokað tímabil!',
+ 'Cannot post transaction!' => 'Get ekki bókað færslu!',
+ 'Cc' => 'Afrit',
+ 'Confirm!' => 'Staðfesta!',
+ 'Continue' => 'Áfram',
+ 'Credit' => 'Kredit',
+ 'Current' => 'Núvirði',
+ 'Customer not on file!' => 'Viðskiptavinur ekki á skrá!',
+ 'Date' => 'Dagsetning',
+ 'Debit' => 'Debit',
+ 'Dec' => 'des',
+ 'December' => 'desember',
+ 'Delete' => 'Eyða',
+ 'Description' => 'Skýringar',
+ 'E-mail' => 'R-póstur',
+ 'Edit General Ledger Transaction' => 'Breyta yfitbókunar færslum',
+ 'Equity' => 'Eigiðfé',
+ 'Expense' => 'Kostnaður',
+ 'Feb' => 'feb',
+ 'February' => 'febrúar',
+ 'From' => 'Frá',
+ 'GIFI' => 'GIFI',
+ 'GL Transaction' => 'Færslur í aðalbók',
+ 'General Ledger' => 'Aðalbók',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Innifela í skýrslu',
+ 'Jan' => 'jan',
+ 'January' => 'janúar',
+ 'Jul' => 'júl',
+ 'July' => 'júlí',
+ 'Jun' => 'jún',
+ 'June' => 'júní',
+ 'Liability' => 'Passiv',
+ 'Mar' => 'mar',
+ 'March' => 'mars',
+ 'May' => 'maí',
+ 'May ' => 'maí',
+ 'Message' => 'Skilaboð',
+ 'Notes' => 'Upplýsinar',
+ 'Nov' => 'nóv',
+ 'November' => 'nóvember',
+ 'Number' => 'Númer',
+ 'Oct' => 'ókt',
+ 'October' => 'óktóber',
+ 'Post' => 'Bókfæra',
+ 'Post as new' => 'Bókfæra sem nýjan',
+ 'Print' => 'Prenta',
+ 'Project' => 'Verkefni',
+ 'Project not on file!' => 'Verkefni ekki á skrá!',
+ 'Reference' => 'Fylgiskjal',
+ 'Reports' => 'Skýrslur',
+ 'Select from one of the names below' => 'Veljið einhvað að neðangreindum nöfnum',
+ 'Select from one of the projects below' => 'Veljið einhvað að neðangreindum verkefnum',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Source' => 'Frálag',
+ 'Subject' => 'Efni',
+ 'Subtotal' => 'Samtala',
+ 'To' => 'til',
+ 'Transaction Date missing!' => 'Dags. vantar!',
+ 'Transaction deleted!' => 'Færslu eytt!',
+ 'Transaction posted!' => 'Færsla bókfærð!',
+ 'Update' => 'Uppfærsla',
+ 'Vendor not on file!' => 'Byrgir ekki til í gagnagrunni!',
+ 'Yes' => 'Já',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'innkaupafærsla' => 'ap_transaction',
+ 'sölufærsla' => 'ar_transaction',
+ 'Áfram' => 'continue',
+ 'eyða' => 'delete',
+ 'færslur_í_aðalbók' => 'gl_transaction',
+ 'bókfæra' => 'post',
+ 'bókfæra_sem_nýjan' => 'post_as_new',
+ 'uppfærsla' => 'update',
+ 'já' => 'yes',
+};
+
+1;
+
diff --git a/locale/is/hr b/locale/is/hr
new file mode 100755
index 00000000..68913f0a
--- /dev/null
+++ b/locale/is/hr
@@ -0,0 +1,72 @@
+$self{texts} = {
+ 'AP' => 'Innkaupakerfi',
+ 'Accounting Menu' => 'Bókhalds valmynd',
+ 'Active' => 'Virkja',
+ 'Address' => 'Heimilisfang',
+ 'Administrator' => 'Kerfisstjóri',
+ 'All' => 'Allt',
+ 'Amount' => 'Upphæð',
+ 'Continue' => 'Áfram',
+ 'Delete' => 'Eyða',
+ 'Description' => 'Skýringar',
+ 'E-mail' => 'R-póstur',
+ 'Employee' => 'Starfsmenn',
+ 'Expense' => 'Kostnaður',
+ 'From' => 'Frá',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Innifela í skýrslu',
+ 'Login' => 'Tengjast',
+ 'Name' => 'Nafn',
+ 'Name missing!' => 'Nafn vantar!',
+ 'Notes' => 'Upplýsinar',
+ 'Number' => 'Númer',
+ 'Orphaned' => 'Sjáfstætt',
+ 'Rate' => 'Taxti',
+ 'Sales' => 'Sala',
+ 'Save' => 'Geyma',
+ 'Save as new' => 'Geyma sem nýtt',
+ 'To' => 'til',
+ 'Update' => 'Uppfærsla',
+ 'User' => 'Notandi',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'Áfram' => 'continue',
+ 'eyða' => 'delete',
+ 'geyma' => 'save',
+ 'geyma_sem_nýtt' => 'save_as_new',
+ 'uppfærsla' => 'update',
+};
+
+1;
+
diff --git a/locale/is/ic b/locale/is/ic
new file mode 100755
index 00000000..8385078f
--- /dev/null
+++ b/locale/is/ic
@@ -0,0 +1,221 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Bókhalds valmynd',
+ 'Accounts' => 'Reikningar',
+ 'Active' => 'Virkja',
+ 'Add' => 'Nýr',
+ 'Add Assembly' => 'Ný samsetning',
+ 'Add Part' => 'Ný vara',
+ 'Add Purchase Order' => 'Ný innkaupspöntun',
+ 'Add Sales Order' => 'Ný sölupöntun',
+ 'Add Service' => 'Ný þjónusta',
+ 'Address' => 'Heimilisfang',
+ 'Apr' => 'apr',
+ 'April' => 'apríl',
+ 'Assemblies' => 'Samsetningar',
+ 'Assemblies restocked!' => 'Samsetningar endurunnar',
+ 'Attachment' => 'Hjálagt',
+ 'Aug' => 'ágú',
+ 'August' => 'ágúst',
+ 'BOM' => 'BOM',
+ 'Bcc' => 'Blint afrit',
+ 'Bin' => 'Vörulager',
+ 'COGS' => 'Innkaup',
+ 'Cannot delete item!' => 'Get ekki eytt hlut!',
+ 'Cannot stock assemblies!' => 'Get ekki fært samsetningar',
+ 'Cash' => 'Reiðufé',
+ 'Cc' => 'Afrit',
+ 'Closed' => 'Lokað',
+ 'Contact' => 'Talsmaður',
+ 'Continue' => 'Áfram',
+ 'Copies' => 'Afrit',
+ 'Curr' => 'Gjaldm',
+ 'Currency' => 'Gjaldmiðill',
+ 'Customer' => 'Viðskiptavinur',
+ 'Customer not on file!' => 'Viðskiptavinur ekki á skrá!',
+ 'Date' => 'Dagsetning',
+ 'Dec' => 'des',
+ 'December' => 'desember',
+ 'Delete' => 'Eyða',
+ 'Delivery Date' => 'Afgreiðsludags.',
+ 'Description' => 'Skýringar',
+ 'Drawing' => 'Dregið',
+ 'E-mail' => 'R-póstur',
+ 'E-mail address missing!' => 'R-póst vantar!',
+ 'Edit Assembly' => 'Breyta samsetningu',
+ 'Edit Part' => 'Breyta vöru',
+ 'Edit Service' => 'Breyta þjónustu',
+ 'Employee' => 'Starfsmenn',
+ 'Expense' => 'Kostnaður',
+ 'Extended' => 'Framlengt',
+ 'Fax' => 'Símbréf',
+ 'Feb' => 'feb',
+ 'February' => 'febrúar',
+ 'From' => 'Frá',
+ 'Image' => 'Mynd',
+ 'In-line' => 'Inndregið',
+ 'Include in Report' => 'Innifela í skýrslu',
+ 'Individual Items' => 'Sjálfstæðir hlutir',
+ 'Inventory' => 'Lager',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Lagerbeholdning skal være nul for at du kan forælde denne sammensætning',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Lagerbeholdning skal være nul for at du kan forælde denne enhed',
+ 'Invoice' => 'Sölureikningur',
+ 'Invoice Date missing!' => 'Sölureiknings dags. vantar!',
+ 'Invoice Number' => 'Sölureikningur Númer',
+ 'Invoice Number missing!' => 'Sölureikningsnúmer vantar!',
+ 'Item deleted!' => 'Hlut eytt!',
+ 'Item not on file!' => 'Hlutur ekki á skrá!',
+ 'Jan' => 'jan',
+ 'January' => 'janúar',
+ 'Jul' => 'júl',
+ 'July' => 'júlí',
+ 'Jun' => 'jún',
+ 'June' => 'júní',
+ 'Line Total' => 'Samtals línur',
+ 'Link Accounts' => 'Tengja lykla',
+ 'List Price' => 'Sýna verð',
+ 'Make' => 'Tegund',
+ 'Mar' => 'mar',
+ 'March' => 'mars',
+ 'May' => 'maí',
+ 'May ' => 'maí',
+ 'Message' => 'Skilaboð',
+ 'Microfiche' => 'Mikrofilm',
+ 'Model' => 'Model',
+ 'Name' => 'Nafn',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Upplýsinar',
+ 'Nov' => 'nóv',
+ 'November' => 'nóvember',
+ 'Number' => 'Númer',
+ 'Number missing in Row' => 'Tölu vantar í röð',
+ 'Obsolete' => 'Úrelt',
+ 'Oct' => 'ókt',
+ 'October' => 'óktóber',
+ 'On Hand' => 'Á lager',
+ 'Open' => 'opna',
+ 'Order' => 'Pöntun',
+ 'Order Date missing!' => 'Pöntunar dags. vantar',
+ 'Order Number' => 'Pöntun númer',
+ 'Order Number missing!' => 'Númer pöntunar vantar',
+ 'Orphaned' => 'Sjáfstætt',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Fylgiseðill',
+ 'Packing List Date missing!' => 'Dags. fylgiseðils vantar!',
+ 'Packing List Number missing!' => 'Númer fylgiseðils vantar!',
+ 'Part' => 'Vara',
+ 'Parts' => 'Vörur',
+ 'Phone' => 'Sími.',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Verð',
+ 'Project' => 'Verkefni',
+ 'Purchase Order' => 'Innkaupspöntun',
+ 'Purchase Orders' => 'Innkaupspantanir',
+ 'Qty' => 'Magn',
+ 'Recd' => 'Mótt:',
+ 'Required by' => 'Pantað af',
+ 'Sales Invoice' => 'Sölureikningur',
+ 'Sales Order' => 'Sölupöntun',
+ 'Sales Orders' => 'Sölupantanir',
+ 'Save' => 'Geyma',
+ 'Save as new' => 'Geyma sem nýtt',
+ 'Screen' => 'Skjá',
+ 'Select from one of the names below' => 'Veljið einhvað að neðangreindum nöfnum',
+ 'Sell Price' => 'Söluverð',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Service' => 'Þjónusta',
+ 'Services' => 'Þjónustur',
+ 'Ship' => 'Senda',
+ 'Ship to' => 'Senda til',
+ 'Short' => 'Stutt',
+ 'Stock Assembly' => 'Lager samsetning',
+ 'Subject' => 'Efni',
+ 'Subtotal' => 'Samtala',
+ 'Tax' => 'Virðisaukaskattur',
+ 'To' => 'til',
+ 'Top Level' => 'Efsta þrep',
+ 'Unit' => 'Einingar',
+ 'Update' => 'Uppfærsla',
+ 'Updated' => 'Uppfæra',
+ 'Vendor' => 'Byrgir',
+ 'Vendor Invoice' => 'Innkaupsreikningur',
+ 'Vendor not on file!' => 'Byrgir ekki til í gagnagrunni!',
+ 'Weight' => 'Vigt',
+ 'What type of item is this?' => 'Hvernig hlutur er þetta?',
+ 'days' => 'dagar',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'ný_samsetning' => 'add_assembly',
+ 'ný_vara' => 'add_part',
+ 'ný_þjónusta' => 'add_service',
+ 'Áfram' => 'continue',
+ 'eyða' => 'delete',
+ 'breyta_samsetningu' => 'edit_assembly',
+ 'breyta_vöru' => 'edit_part',
+ 'breyta_þjónustu' => 'edit_service',
+ 'geyma' => 'save',
+ 'geyma_sem_nýtt' => 'save_as_new',
+ 'uppfærsla' => 'update',
+};
+
+1;
+
diff --git a/locale/is/io b/locale/is/io
new file mode 100755
index 00000000..01d49c84
--- /dev/null
+++ b/locale/is/io
@@ -0,0 +1,105 @@
+$self{texts} = {
+ 'Add Purchase Order' => 'Ný innkaupspöntun',
+ 'Add Sales Order' => 'Ný sölupöntun',
+ 'Address' => 'Heimilisfang',
+ 'Apr' => 'apr',
+ 'April' => 'apríl',
+ 'Attachment' => 'Hjálagt',
+ 'Aug' => 'ágú',
+ 'August' => 'ágúst',
+ 'Bcc' => 'Blint afrit',
+ 'Bin' => 'Vörulager',
+ 'Cc' => 'Afrit',
+ 'Contact' => 'Talsmaður',
+ 'Continue' => 'Áfram',
+ 'Copies' => 'Afrit',
+ 'Date' => 'Dagsetning',
+ 'Dec' => 'des',
+ 'December' => 'desember',
+ 'Delivery Date' => 'Afgreiðsludags.',
+ 'Description' => 'Skýringar',
+ 'E-mail' => 'R-póstur',
+ 'E-mail address missing!' => 'R-póst vantar!',
+ 'Extended' => 'Framlengt',
+ 'Fax' => 'Símbréf',
+ 'Feb' => 'feb',
+ 'February' => 'febrúar',
+ 'In-line' => 'Inndregið',
+ 'Invoice' => 'Sölureikningur',
+ 'Invoice Date missing!' => 'Sölureiknings dags. vantar!',
+ 'Invoice Number missing!' => 'Sölureikningsnúmer vantar!',
+ 'Item not on file!' => 'Hlutur ekki á skrá!',
+ 'Jan' => 'jan',
+ 'January' => 'janúar',
+ 'Jul' => 'júl',
+ 'July' => 'júlí',
+ 'Jun' => 'jún',
+ 'June' => 'júní',
+ 'Mar' => 'mar',
+ 'March' => 'mars',
+ 'May' => 'maí',
+ 'May ' => 'maí',
+ 'Message' => 'Skilaboð',
+ 'Nov' => 'nóv',
+ 'November' => 'nóvember',
+ 'Number' => 'Númer',
+ 'Number missing in Row' => 'Tölu vantar í röð',
+ 'Oct' => 'ókt',
+ 'October' => 'óktóber',
+ 'Order Date missing!' => 'Pöntunar dags. vantar',
+ 'Order Number missing!' => 'Númer pöntunar vantar',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Fylgiseðill',
+ 'Packing List Date missing!' => 'Dags. fylgiseðils vantar!',
+ 'Packing List Number missing!' => 'Númer fylgiseðils vantar!',
+ 'Part' => 'Vara',
+ 'Phone' => 'Sími.',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Verð',
+ 'Project' => 'Verkefni',
+ 'Purchase Order' => 'Innkaupspöntun',
+ 'Qty' => 'Magn',
+ 'Recd' => 'Mótt:',
+ 'Required by' => 'Pantað af',
+ 'Sales Order' => 'Sölupöntun',
+ 'Screen' => 'Skjá',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Service' => 'Þjónusta',
+ 'Ship' => 'Senda',
+ 'Ship to' => 'Senda til',
+ 'Subject' => 'Efni',
+ 'Subtotal' => 'Samtala',
+ 'To' => 'til',
+ 'Unit' => 'Einingar',
+ 'What type of item is this?' => 'Hvernig hlutur er þetta?',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'Áfram' => 'continue',
+};
+
+1;
+
diff --git a/locale/is/ir b/locale/is/ir
new file mode 100755
index 00000000..47f67bd0
--- /dev/null
+++ b/locale/is/ir
@@ -0,0 +1,193 @@
+$self{texts} = {
+ 'Account' => 'Reikningur',
+ 'Accounting Menu' => 'Bókhalds valmynd',
+ 'Add Purchase Order' => 'Ný innkaupspöntun',
+ 'Add Sales Order' => 'Ný sölupöntun',
+ 'Add Vendor Invoice' => 'Nýr innkaupsreikningur',
+ 'Address' => 'Heimilisfang',
+ 'Amount' => 'Upphæð',
+ 'Apr' => 'apr',
+ 'April' => 'apríl',
+ 'Are you sure you want to delete Invoice Number' => 'Ert þú viss um að þú viljir eyða reikningi númer',
+ 'Attachment' => 'Hjálagt',
+ 'Aug' => 'ágú',
+ 'August' => 'ágúst',
+ 'Bcc' => 'Blint afrit',
+ 'Bin' => 'Vörulager',
+ 'Cannot delete invoice!' => 'Get ekki eytt sölureikningi!',
+ 'Cannot post invoice for a closed period!' => 'Get ekki bókað á lokað tímabil!',
+ 'Cannot post invoice!' => 'Get ekki bókað sölureikning!',
+ 'Cannot post payment for a closed period!' => 'Get ekki bókað greiðslu á lokað tímabil',
+ 'Cc' => 'Afrit',
+ 'Confirm!' => 'Staðfesta!',
+ 'Contact' => 'Talsmaður',
+ 'Continue' => 'Áfram',
+ 'Copies' => 'Afrit',
+ 'Credit Limit' => 'Kreditmörk',
+ 'Currency' => 'Gjaldmiðill',
+ 'Customer not on file!' => 'Viðskiptavinur ekki á skrá!',
+ 'Date' => 'Dagsetning',
+ 'Dec' => 'des',
+ 'December' => 'desember',
+ 'Delete' => 'Eyða',
+ 'Delivery Date' => 'Afgreiðsludags.',
+ 'Description' => 'Skýringar',
+ 'Due Date' => 'Dags. lokið',
+ 'E-mail' => 'R-póstur',
+ 'E-mail address missing!' => 'R-póst vantar!',
+ 'Edit Vendor Invoice' => 'Breyta innkaupareikningi',
+ 'Exch' => 'Vx',
+ 'Exchange Rate' => 'Vextir',
+ 'Exchange rate for payment missing!' => 'Vextir fyrir greiðslu vantar!',
+ 'Exchange rate missing!' => 'Vantar vexti!',
+ 'Extended' => 'Framlengt',
+ 'Fax' => 'Símbréf',
+ 'Feb' => 'feb',
+ 'February' => 'febrúar',
+ 'In-line' => 'Inndregið',
+ 'Invoice' => 'Sölureikningur',
+ 'Invoice Date' => 'Sölureikningur dags.',
+ 'Invoice Date missing!' => 'Sölureiknings dags. vantar!',
+ 'Invoice Number' => 'Sölureikningur Númer',
+ 'Invoice Number missing!' => 'Sölureikningsnúmer vantar!',
+ 'Invoice deleted!' => 'Sölureikningi eytt!',
+ 'Item not on file!' => 'Hlutur ekki á skrá!',
+ 'Jan' => 'jan',
+ 'January' => 'janúar',
+ 'Jul' => 'júl',
+ 'July' => 'júlí',
+ 'Jun' => 'jún',
+ 'June' => 'júní',
+ 'Language' => 'Túngumál',
+ 'Mar' => 'mar',
+ 'March' => 'mars',
+ 'May' => 'maí',
+ 'May ' => 'maí',
+ 'Message' => 'Skilaboð',
+ 'Notes' => 'Upplýsinar',
+ 'Nov' => 'nóv',
+ 'November' => 'nóvember',
+ 'Number' => 'Númer',
+ 'Number missing in Row' => 'Tölu vantar í röð',
+ 'Oct' => 'ókt',
+ 'October' => 'óktóber',
+ 'Order Date missing!' => 'Pöntunar dags. vantar',
+ 'Order Number' => 'Pöntun númer',
+ 'Order Number missing!' => 'Númer pöntunar vantar',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Fylgiseðill',
+ 'Packing List Date missing!' => 'Dags. fylgiseðils vantar!',
+ 'Packing List Number missing!' => 'Númer fylgiseðils vantar!',
+ 'Part' => 'Vara',
+ 'Payment date missing!' => 'Greiðsudags. vantar!',
+ 'Payments' => 'Greiðslur',
+ 'Phone' => 'Sími.',
+ 'Post' => 'Bókfæra',
+ 'Post as new' => 'Bókfæra sem nýjan',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Verð',
+ 'Print' => 'Prenta',
+ 'Project' => 'Verkefni',
+ 'Project not on file!' => 'Verkefni ekki á skrá!',
+ 'Purchase Order' => 'Innkaupspöntun',
+ 'Qty' => 'Magn',
+ 'Recd' => 'Mótt:',
+ 'Record in' => 'Bóka á',
+ 'Reference' => 'Fylgiskjal',
+ 'Remaining' => 'Eftir',
+ 'Required by' => 'Pantað af',
+ 'Sales Order' => 'Sölupöntun',
+ 'Screen' => 'Skjá',
+ 'Select from one of the names below' => 'Veljið einhvað að neðangreindum nöfnum',
+ 'Select from one of the projects below' => 'Veljið einhvað að neðangreindum verkefnum',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Service' => 'Þjónusta',
+ 'Ship' => 'Senda',
+ 'Ship to' => 'Senda til',
+ 'Source' => 'Frálag',
+ 'Subject' => 'Efni',
+ 'Subtotal' => 'Samtala',
+ 'Tax Included' => 'Taka með VSK',
+ 'To' => 'til',
+ 'Total' => 'Samtals',
+ 'Unit' => 'Einingar',
+ 'Update' => 'Uppfærsla',
+ 'Vendor' => 'Byrgir',
+ 'Vendor missing!' => 'Byrgja vantar!',
+ 'Vendor not on file!' => 'Byrgir ekki til í gagnagrunni!',
+ 'What type of item is this?' => 'Hvernig hlutur er þetta?',
+ 'Yes' => 'Já',
+ 'ea' => 'stk',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'Áfram' => 'continue',
+ 'eyða' => 'delete',
+ 'bókfæra' => 'post',
+ 'bókfæra_sem_nýjan' => 'post_as_new',
+ 'innkaupspöntun' => 'purchase_order',
+ 'uppfærsla' => 'update',
+ 'já' => 'yes',
+};
+
+1;
+
diff --git a/locale/is/is b/locale/is/is
new file mode 100755
index 00000000..0639a520
--- /dev/null
+++ b/locale/is/is
@@ -0,0 +1,198 @@
+$self{texts} = {
+ 'Account' => 'Reikningur',
+ 'Accounting Menu' => 'Bókhalds valmynd',
+ 'Add Purchase Order' => 'Ný innkaupspöntun',
+ 'Add Sales Invoice' => 'Nýr sölureikningur',
+ 'Add Sales Order' => 'Ný sölupöntun',
+ 'Address' => 'Heimilisfang',
+ 'Amount' => 'Upphæð',
+ 'Apr' => 'apr',
+ 'April' => 'apríl',
+ 'Are you sure you want to delete Invoice Number' => 'Ert þú viss um að þú viljir eyða reikningi númer',
+ 'Attachment' => 'Hjálagt',
+ 'Aug' => 'ágú',
+ 'August' => 'ágúst',
+ 'Bcc' => 'Blint afrit',
+ 'Bin' => 'Vörulager',
+ 'Cannot delete invoice!' => 'Get ekki eytt sölureikningi!',
+ 'Cannot post invoice for a closed period!' => 'Get ekki bókað á lokað tímabil!',
+ 'Cannot post invoice!' => 'Get ekki bókað sölureikning!',
+ 'Cannot post payment for a closed period!' => 'Get ekki bókað greiðslu á lokað tímabil',
+ 'Cc' => 'Afrit',
+ 'Confirm!' => 'Staðfesta!',
+ 'Contact' => 'Talsmaður',
+ 'Continue' => 'Áfram',
+ 'Copies' => 'Afrit',
+ 'Credit Limit' => 'Kreditmörk',
+ 'Currency' => 'Gjaldmiðill',
+ 'Customer' => 'Viðskiptavinur',
+ 'Customer missing!' => 'Viðskiptavin vantar!',
+ 'Customer not on file!' => 'Viðskiptavinur ekki á skrá!',
+ 'Date' => 'Dagsetning',
+ 'Dec' => 'des',
+ 'December' => 'desember',
+ 'Delete' => 'Eyða',
+ 'Delivery Date' => 'Afgreiðsludags.',
+ 'Description' => 'Skýringar',
+ 'Due Date' => 'Dags. lokið',
+ 'E-mail' => 'R-póstur',
+ 'E-mail address missing!' => 'R-póst vantar!',
+ 'Edit Sales Invoice' => 'Breyta sölureikningi',
+ 'Exch' => 'Vx',
+ 'Exchange Rate' => 'Vextir',
+ 'Exchange rate for payment missing!' => 'Vextir fyrir greiðslu vantar!',
+ 'Exchange rate missing!' => 'Vantar vexti!',
+ 'Extended' => 'Framlengt',
+ 'Fax' => 'Símbréf',
+ 'Feb' => 'feb',
+ 'February' => 'febrúar',
+ 'In-line' => 'Inndregið',
+ 'Invoice' => 'Sölureikningur',
+ 'Invoice Date' => 'Sölureikningur dags.',
+ 'Invoice Date missing!' => 'Sölureiknings dags. vantar!',
+ 'Invoice Number' => 'Sölureikningur Númer',
+ 'Invoice Number missing!' => 'Sölureikningsnúmer vantar!',
+ 'Invoice deleted!' => 'Sölureikningi eytt!',
+ 'Item not on file!' => 'Hlutur ekki á skrá!',
+ 'Jan' => 'jan',
+ 'January' => 'janúar',
+ 'Jul' => 'júl',
+ 'July' => 'júlí',
+ 'Jun' => 'jún',
+ 'June' => 'júní',
+ 'Mar' => 'mar',
+ 'March' => 'mars',
+ 'May' => 'maí',
+ 'May ' => 'maí',
+ 'Message' => 'Skilaboð',
+ 'Notes' => 'Upplýsinar',
+ 'Nov' => 'nóv',
+ 'November' => 'nóvember',
+ 'Number' => 'Númer',
+ 'Number missing in Row' => 'Tölu vantar í röð',
+ 'Oct' => 'ókt',
+ 'October' => 'óktóber',
+ 'Order Date missing!' => 'Pöntunar dags. vantar',
+ 'Order Number' => 'Pöntun númer',
+ 'Order Number missing!' => 'Númer pöntunar vantar',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Fylgiseðill',
+ 'Packing List Date missing!' => 'Dags. fylgiseðils vantar!',
+ 'Packing List Number missing!' => 'Númer fylgiseðils vantar!',
+ 'Part' => 'Vara',
+ 'Payment date missing!' => 'Greiðsudags. vantar!',
+ 'Payments' => 'Greiðslur',
+ 'Phone' => 'Sími.',
+ 'Post' => 'Bókfæra',
+ 'Post as new' => 'Bókfæra sem nýjan',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Verð',
+ 'Print' => 'Prenta',
+ 'Project' => 'Verkefni',
+ 'Project not on file!' => 'Verkefni ekki á skrá!',
+ 'Purchase Order' => 'Innkaupspöntun',
+ 'Qty' => 'Magn',
+ 'Recd' => 'Mótt:',
+ 'Record in' => 'Bóka á',
+ 'Reference' => 'Fylgiskjal',
+ 'Remaining' => 'Eftir',
+ 'Required by' => 'Pantað af',
+ 'Sales Order' => 'Sölupöntun',
+ 'Screen' => 'Skjá',
+ 'Select from one of the names below' => 'Veljið einhvað að neðangreindum nöfnum',
+ 'Select from one of the projects below' => 'Veljið einhvað að neðangreindum verkefnum',
+ 'Select postscript or PDF!' => 'Veljið postscript eða PDF',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Service' => 'Þjónusta',
+ 'Ship' => 'Senda',
+ 'Ship to' => 'Senda til',
+ 'Ship via' => 'Senda með',
+ 'Source' => 'Frálag',
+ 'Subject' => 'Efni',
+ 'Subtotal' => 'Samtala',
+ 'Tax Included' => 'Taka með VSK',
+ 'To' => 'til',
+ 'Total' => 'Samtals',
+ 'Unit' => 'Einingar',
+ 'Update' => 'Uppfærsla',
+ 'Vendor not on file!' => 'Byrgir ekki til í gagnagrunni!',
+ 'What type of item is this?' => 'Hvernig hlutur er þetta?',
+ 'Yes' => 'Já',
+ 'ea' => 'stk',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'Áfram' => 'continue',
+ 'eyða' => 'delete',
+ 'r_póstur' => 'e_mail',
+ 'bókfæra' => 'post',
+ 'bókfæra_sem_nýjan' => 'post_as_new',
+ 'prenta' => 'print',
+ 'sölupöntun' => 'sales_order',
+ 'senda_til' => 'ship_to',
+ 'uppfærsla' => 'update',
+ 'já' => 'yes',
+};
+
+1;
+
diff --git a/locale/is/jc b/locale/is/jc
new file mode 100755
index 00000000..9a1d7f6f
--- /dev/null
+++ b/locale/is/jc
@@ -0,0 +1,81 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Bókhalds valmynd',
+ 'Amount' => 'Upphæð',
+ 'Closed' => 'Lokað',
+ 'Confirm!' => 'Staðfesta!',
+ 'Continue' => 'Áfram',
+ 'Current' => 'Núvirði',
+ 'Date' => 'Dagsetning',
+ 'Date missing!' => 'Dagsetningu vantar!',
+ 'Delete' => 'Eyða',
+ 'Description' => 'Skýringar',
+ 'Employee' => 'Starfsmenn',
+ 'From' => 'Frá',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Innifela í skýrslu',
+ 'Notes' => 'Upplýsinar',
+ 'Open' => 'opna',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Prenta',
+ 'Project Number missing!' => 'Verkefnisnúmer vantar!',
+ 'Qty' => 'Magn',
+ 'Save' => 'Geyma',
+ 'Save as new' => 'Geyma sem nýtt',
+ 'Screen' => 'Skjá',
+ 'Select postscript or PDF!' => 'Veljið postscript eða PDF',
+ 'Subtotal' => 'Samtala',
+ 'To' => 'til',
+ 'Total' => 'Samtals',
+ 'Update' => 'Uppfærsla',
+ 'Yes' => 'Já',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'Áfram' => 'continue',
+ 'eyða' => 'delete',
+ 'prenta' => 'print',
+ 'geyma' => 'save',
+ 'geyma_sem_nýtt' => 'save_as_new',
+ 'uppfærsla' => 'update',
+ 'já' => 'yes',
+};
+
+1;
+
diff --git a/locale/is/locales.pl b/locale/is/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/is/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/is/login b/locale/is/login
new file mode 100755
index 00000000..bf3ab8c8
--- /dev/null
+++ b/locale/is/login
@@ -0,0 +1,21 @@
+$self{texts} = {
+ 'Company' => 'Fyritæki',
+ 'Continue' => 'Áfram',
+ 'Incorrect Dataset version!' => 'Röng útgáfa af gagnasfni!',
+ 'Login' => 'Tengjast',
+ 'Name' => 'Nafn',
+ 'Password' => 'Aðgangsorð',
+ 'Version' => 'Útgáfa',
+ 'You did not enter a name!' => 'Þú gafst ekki upp nafn',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ 'tengjast' => 'login',
+};
+
+1;
+
diff --git a/locale/is/menu b/locale/is/menu
new file mode 100755
index 00000000..1a8f8676
--- /dev/null
+++ b/locale/is/menu
@@ -0,0 +1,81 @@
+$self{texts} = {
+ 'AP' => 'Innkaupakerfi',
+ 'AP Aging' => 'Aldursgreining',
+ 'AP Transaction' => 'Innkaupafærsla',
+ 'AR' => 'Sölukerfi',
+ 'AR Aging' => 'Aldursgreining',
+ 'AR Transaction' => 'Sölufærsla',
+ 'Accounting Menu' => 'Bókhalds valmynd',
+ 'Add Account' => 'Nýr reikningur',
+ 'Add Assembly' => 'Ný samsetning',
+ 'Add Customer' => 'Nýr viðskiptavinur',
+ 'Add GIFI' => 'Ný GIFI',
+ 'Add Part' => 'Ný vara',
+ 'Add Project' => 'Nýt verkefni',
+ 'Add Service' => 'Ný þjónusta',
+ 'Add Transaction' => 'Ný bókhaldsfærsla',
+ 'Add Vendor' => 'Nýr byrgir',
+ 'Assemblies' => 'Samsetningar',
+ 'Audit Control' => 'Yfirlit stjórnun',
+ 'Backup' => 'Afrit',
+ 'Balance Sheet' => 'Staða',
+ 'Cash' => 'Reiðufé',
+ 'Chart of Accounts' => 'Listi yfir lykkla/reikninga',
+ 'Check' => 'Ávísun',
+ 'Customers' => 'Viðskiptavinir',
+ 'Description' => 'Skýringar',
+ 'General Ledger' => 'Aðalbók',
+ 'Goods & Services' => 'Vörur og þjónusta',
+ 'HTML Templates' => 'HTML-skabalón',
+ 'Income Statement' => 'Inn yfirlýsing',
+ 'Invoice' => 'Sölureikningur',
+ 'LaTeX Templates' => 'LaTeX-skabalón',
+ 'Language' => 'Túngumál',
+ 'List Accounts' => 'Sýna lykla',
+ 'List GIFI' => 'Sýna GIFI',
+ 'Logout' => 'Aftengjast',
+ 'Open' => 'opna',
+ 'Order Entry' => 'Pöntunarblað',
+ 'Packing List' => 'Fylgiseðill',
+ 'Parts' => 'Vörur',
+ 'Payment' => 'Greislur',
+ 'Payments' => 'Greiðslur',
+ 'Preferences' => 'Uppsetningar',
+ 'Print' => 'Prenta',
+ 'Projects' => 'Verkefni',
+ 'Purchase Order' => 'Innkaupspöntun',
+ 'Purchase Orders' => 'Innkaupspantanir',
+ 'Receipt' => 'Kvittun',
+ 'Receipts' => 'Kvittanir',
+ 'Reconciliation' => 'Afstemingar',
+ 'Reports' => 'Skýrslur',
+ 'Sales Invoice' => 'Sölureikningur',
+ 'Sales Order' => 'Sölupöntun',
+ 'Sales Orders' => 'Sölupantanir',
+ 'Save to File' => 'Geyma í skrá',
+ 'Send by E-Mail' => 'Senda með rafpósti',
+ 'Services' => 'Þjónustur',
+ 'Ship' => 'Senda',
+ 'Statement' => 'Uppgjör',
+ 'Stock Assembly' => 'Lager samsetning',
+ 'Stylesheet' => 'Stílblað',
+ 'System' => 'Kerfi',
+ 'Tax collected' => 'VSK samtals',
+ 'Tax paid' => 'VSK greitt',
+ 'Transactions' => 'Færslur',
+ 'Trial Balance' => 'Prufu staða',
+ 'Vendor Invoice' => 'Innkaupsreikningur',
+ 'Vendors' => 'Byrgjar',
+ 'Version' => 'Útgáfa',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/is/oe b/locale/is/oe
new file mode 100755
index 00000000..5b508e40
--- /dev/null
+++ b/locale/is/oe
@@ -0,0 +1,242 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Bókhalds valmynd',
+ 'Add Purchase Order' => 'Ný innkaupspöntun',
+ 'Add Sales Invoice' => 'Nýr sölureikningur',
+ 'Add Sales Order' => 'Ný sölupöntun',
+ 'Add Vendor Invoice' => 'Nýr innkaupsreikningur',
+ 'Address' => 'Heimilisfang',
+ 'Amount' => 'Upphæð',
+ 'Apr' => 'apr',
+ 'April' => 'apríl',
+ 'Are you sure you want to delete Order Number' => 'Ert þú viss um að þú viljir eyða pöntun númer',
+ 'Attachment' => 'Hjálagt',
+ 'Aug' => 'ágú',
+ 'August' => 'ágúst',
+ 'Bcc' => 'Blint afrit',
+ 'Bin' => 'Vörulager',
+ 'C' => 'C',
+ 'Cannot delete order!' => 'Get ekki eytt pöntun!',
+ 'Cannot save order!' => 'Get ekki geymt pöntun!',
+ 'Cc' => 'Afrit',
+ 'Closed' => 'Lokað',
+ 'Confirm!' => 'Staðfesta!',
+ 'Contact' => 'Talsmaður',
+ 'Continue' => 'Áfram',
+ 'Copies' => 'Afrit',
+ 'Credit Limit' => 'Kreditmörk',
+ 'Curr' => 'Gjaldm',
+ 'Currency' => 'Gjaldmiðill',
+ 'Current' => 'Núvirði',
+ 'Customer' => 'Viðskiptavinur',
+ 'Customer missing!' => 'Viðskiptavin vantar!',
+ 'Customer not on file!' => 'Viðskiptavinur ekki á skrá!',
+ 'Date' => 'Dagsetning',
+ 'Dec' => 'des',
+ 'December' => 'desember',
+ 'Delete' => 'Eyða',
+ 'Delivery Date' => 'Afgreiðsludags.',
+ 'Description' => 'Skýringar',
+ 'Done' => 'Búið',
+ 'E-mail' => 'R-póstur',
+ 'E-mail address missing!' => 'R-póst vantar!',
+ 'Edit Purchase Order' => 'Breyta innkaupapöntun',
+ 'Edit Sales Order' => 'Breyta sölupöntun',
+ 'Employee' => 'Starfsmenn',
+ 'Exchange Rate' => 'Vextir',
+ 'Exchange rate missing!' => 'Vantar vexti!',
+ 'Extended' => 'Framlengt',
+ 'Fax' => 'Símbréf',
+ 'Feb' => 'feb',
+ 'February' => 'febrúar',
+ 'From' => 'Frá',
+ 'ID' => 'ID',
+ 'In-line' => 'Inndregið',
+ 'Include in Report' => 'Innifela í skýrslu',
+ 'Invoice' => 'Sölureikningur',
+ 'Invoice Date missing!' => 'Sölureiknings dags. vantar!',
+ 'Invoice Number missing!' => 'Sölureikningsnúmer vantar!',
+ 'Item not on file!' => 'Hlutur ekki á skrá!',
+ 'Jan' => 'jan',
+ 'January' => 'janúar',
+ 'Jul' => 'júl',
+ 'July' => 'júlí',
+ 'Jun' => 'jún',
+ 'June' => 'júní',
+ 'Mar' => 'mar',
+ 'March' => 'mars',
+ 'May' => 'maí',
+ 'May ' => 'maí',
+ 'Message' => 'Skilaboð',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Upplýsinar',
+ 'Nothing selected!' => 'Ekkert valið!',
+ 'Nov' => 'nóv',
+ 'November' => 'nóvember',
+ 'Number' => 'Númer',
+ 'Number missing in Row' => 'Tölu vantar í röð',
+ 'O' => 'O',
+ 'Oct' => 'ókt',
+ 'October' => 'óktóber',
+ 'Open' => 'opna',
+ 'Order' => 'Pöntun',
+ 'Order Date' => 'Pöntunar dags.',
+ 'Order Date missing!' => 'Pöntunar dags. vantar',
+ 'Order Number' => 'Pöntun númer',
+ 'Order Number missing!' => 'Númer pöntunar vantar',
+ 'Order deleted!' => 'Pöntun eytt',
+ 'Order saved!' => 'Pöntun geymd',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Fylgiseðill',
+ 'Packing List Date missing!' => 'Dags. fylgiseðils vantar!',
+ 'Packing List Number missing!' => 'Númer fylgiseðils vantar!',
+ 'Part' => 'Vara',
+ 'Phone' => 'Sími.',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Verð',
+ 'Print' => 'Prenta',
+ 'Project' => 'Verkefni',
+ 'Project not on file!' => 'Verkefni ekki á skrá!',
+ 'Purchase Order' => 'Innkaupspöntun',
+ 'Purchase Orders' => 'Innkaupspantanir',
+ 'Qty' => 'Magn',
+ 'Recd' => 'Mótt:',
+ 'Reference' => 'Fylgiskjal',
+ 'Remaining' => 'Eftir',
+ 'Required by' => 'Pantað af',
+ 'Sales Invoice' => 'Sölureikningur',
+ 'Sales Order' => 'Sölupöntun',
+ 'Sales Orders' => 'Sölupantanir',
+ 'Save' => 'Geyma',
+ 'Save as new' => 'Geyma sem nýtt',
+ 'Screen' => 'Skjá',
+ 'Select from one of the names below' => 'Veljið einhvað að neðangreindum nöfnum',
+ 'Select from one of the projects below' => 'Veljið einhvað að neðangreindum verkefnum',
+ 'Select postscript or PDF!' => 'Veljið postscript eða PDF',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Service' => 'Þjónusta',
+ 'Ship' => 'Senda',
+ 'Ship to' => 'Senda til',
+ 'Ship via' => 'Senda með',
+ 'Subject' => 'Efni',
+ 'Subtotal' => 'Samtala',
+ 'Tax' => 'Virðisaukaskattur',
+ 'Tax Included' => 'Taka með VSK',
+ 'Terms' => 'Nettó',
+ 'To' => 'til',
+ 'Total' => 'Samtals',
+ 'Unit' => 'Einingar',
+ 'Update' => 'Uppfærsla',
+ 'Vendor' => 'Byrgir',
+ 'Vendor Invoice' => 'Innkaupsreikningur',
+ 'Vendor missing!' => 'Byrgja vantar!',
+ 'Vendor not on file!' => 'Byrgir ekki til í gagnagrunni!',
+ 'What type of item is this?' => 'Hvernig hlutur er þetta?',
+ 'Yes' => 'Já',
+ 'days' => 'dagar',
+ 'ea' => 'stk',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'Áfram' => 'continue',
+ 'eyða' => 'delete',
+ 'búið' => 'done',
+ 'r_póstur' => 'e_mail',
+ 'prenta' => 'print',
+ 'innkaupspöntun' => 'purchase_order',
+ 'sölureikningur' => 'sales_invoice',
+ 'sölupöntun' => 'sales_order',
+ 'geyma' => 'save',
+ 'geyma_sem_nýtt' => 'save_as_new',
+ 'senda_til' => 'ship_to',
+ 'uppfærsla' => 'update',
+ 'innkaupsreikningur' => 'vendor_invoice',
+ 'já' => 'yes',
+};
+
+1;
+
diff --git a/locale/is/pe b/locale/is/pe
new file mode 100755
index 00000000..002640d4
--- /dev/null
+++ b/locale/is/pe
@@ -0,0 +1,106 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Bókhalds valmynd',
+ 'Active' => 'Virkja',
+ 'Add' => 'Nýr',
+ 'Add Project' => 'Nýt verkefni',
+ 'Address' => 'Heimilisfang',
+ 'All' => 'Allt',
+ 'Amount' => 'Upphæð',
+ 'Bin' => 'Vörulager',
+ 'Continue' => 'Áfram',
+ 'Current' => 'Núvirði',
+ 'Customer' => 'Viðskiptavinur',
+ 'Customer missing!' => 'Viðskiptavin vantar!',
+ 'Customer not on file!' => 'Viðskiptavinur ekki á skrá!',
+ 'Date' => 'Dagsetning',
+ 'Delete' => 'Eyða',
+ 'Description' => 'Skýringar',
+ 'Edit Project' => 'Breyta verkefni',
+ 'Employee' => 'Starfsmenn',
+ 'From' => 'Frá',
+ 'Language' => 'Túngumál',
+ 'Link Accounts' => 'Tengja lykla',
+ 'List Price' => 'Sýna verð',
+ 'Notes' => 'Upplýsinar',
+ 'Nothing selected!' => 'Ekkert valið!',
+ 'Number' => 'Númer',
+ 'Orphaned' => 'Sjáfstætt',
+ 'Project' => 'Verkefni',
+ 'Project deleted!' => 'Verkefni eytt!',
+ 'Project saved!' => 'verkefni geymt!',
+ 'Projects' => 'Verkefni',
+ 'Qty' => 'Magn',
+ 'Save' => 'Geyma',
+ 'Select from one of the names below' => 'Veljið einhvað að neðangreindum nöfnum',
+ 'Sell Price' => 'Söluverð',
+ 'Tax' => 'Virðisaukaskattur',
+ 'To' => 'til',
+ 'Unit' => 'Einingar',
+ 'Update' => 'Uppfærsla',
+ 'Updated' => 'Uppfæra',
+ 'Vendor' => 'Byrgir',
+ 'Vendor not on file!' => 'Byrgir ekki til í gagnagrunni!',
+ 'Weight' => 'Vigt',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'nýt_verkefni' => 'add_project',
+ 'Áfram' => 'continue',
+ 'eyða' => 'delete',
+ 'geyma' => 'save',
+ 'uppfærsla' => 'update',
+};
+
+1;
+
diff --git a/locale/is/pos b/locale/is/pos
new file mode 100755
index 00000000..be49c673
--- /dev/null
+++ b/locale/is/pos
@@ -0,0 +1,64 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Bókhalds valmynd',
+ 'Amount' => 'Upphæð',
+ 'Cannot post transaction!' => 'Get ekki bókað færslu!',
+ 'Continue' => 'Áfram',
+ 'Credit Limit' => 'Kreditmörk',
+ 'Currency' => 'Gjaldmiðill',
+ 'Current' => 'Núvirði',
+ 'Customer' => 'Viðskiptavinur',
+ 'Customer missing!' => 'Viðskiptavin vantar!',
+ 'Delete' => 'Eyða',
+ 'Description' => 'Skýringar',
+ 'Exchange Rate' => 'Vextir',
+ 'Exchange rate missing!' => 'Vantar vexti!',
+ 'Extended' => 'Framlengt',
+ 'From' => 'Frá',
+ 'Language' => 'Túngumál',
+ 'Number' => 'Númer',
+ 'Open' => 'opna',
+ 'Post' => 'Bókfæra',
+ 'Price' => 'Verð',
+ 'Print' => 'Prenta',
+ 'Qty' => 'Magn',
+ 'Receipts' => 'Kvittanir',
+ 'Record in' => 'Bóka á',
+ 'Remaining' => 'Eftir',
+ 'Screen' => 'Skjá',
+ 'Source' => 'Frálag',
+ 'Subtotal' => 'Samtala',
+ 'Tax Included' => 'Taka með VSK',
+ 'To' => 'til',
+ 'Total' => 'Samtals',
+ 'Unit' => 'Einingar',
+ 'Update' => 'Uppfærsla',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'Áfram' => 'continue',
+ 'eyða' => 'delete',
+ 'bókfæra' => 'post',
+ 'prenta' => 'print',
+ 'uppfærsla' => 'update',
+};
+
+1;
+
diff --git a/locale/is/ps b/locale/is/ps
new file mode 100755
index 00000000..6545a3ee
--- /dev/null
+++ b/locale/is/ps
@@ -0,0 +1,286 @@
+$self{texts} = {
+ 'AP Aging' => 'Aldursgreining',
+ 'AP Transaction' => 'Innkaupafærsla',
+ 'AP Transactions' => 'Innkaupafærslur',
+ 'AR Aging' => 'Aldursgreining',
+ 'AR Transaction' => 'Sölufærsla',
+ 'AR Transactions' => 'Sölufærslur',
+ 'Account' => 'Reikningur',
+ 'Account Number' => 'Reikningsnúmer',
+ 'Accounting Menu' => 'Bókhalds valmynd',
+ 'Accounts' => 'Reikningar',
+ 'Add Purchase Order' => 'Ný innkaupspöntun',
+ 'Add Sales Invoice' => 'Nýr sölureikningur',
+ 'Add Sales Order' => 'Ný sölupöntun',
+ 'Address' => 'Heimilisfang',
+ 'Amount' => 'Upphæð',
+ 'Amount Due' => 'Eindagi',
+ 'Apr' => 'apr',
+ 'April' => 'apríl',
+ 'Are you sure you want to delete Invoice Number' => 'Ert þú viss um að þú viljir eyða reikningi númer',
+ 'Are you sure you want to delete Transaction' => 'Ert þú viss um að þú viljir eyða færslunni',
+ 'Attachment' => 'Hjálagt',
+ 'Aug' => 'ágú',
+ 'August' => 'ágúst',
+ 'Balance' => 'Afstemming',
+ 'Balance Sheet' => 'Staða',
+ 'Bcc' => 'Blint afrit',
+ 'Bin' => 'Vörulager',
+ 'Cannot delete invoice!' => 'Get ekki eytt sölureikningi!',
+ 'Cannot delete transaction!' => 'Get ekki eytt færslu!',
+ 'Cannot post invoice for a closed period!' => 'Get ekki bókað á lokað tímabil!',
+ 'Cannot post invoice!' => 'Get ekki bókað sölureikning!',
+ 'Cannot post payment for a closed period!' => 'Get ekki bókað greiðslu á lokað tímabil',
+ 'Cannot post transaction for a closed period!' => 'Get ekki bókað færslu á lokað tímabil!',
+ 'Cannot post transaction!' => 'Get ekki bókað færslu!',
+ 'Cash' => 'Reiðufé',
+ 'Cc' => 'Afrit',
+ 'Check' => 'Ávísun',
+ 'Closed' => 'Lokað',
+ 'Compare to' => 'Bera saman við',
+ 'Confirm!' => 'Staðfesta!',
+ 'Contact' => 'Talsmaður',
+ 'Continue' => 'Áfram',
+ 'Copies' => 'Afrit',
+ 'Credit' => 'Kredit',
+ 'Credit Limit' => 'Kreditmörk',
+ 'Curr' => 'Gjaldm',
+ 'Currency' => 'Gjaldmiðill',
+ 'Current' => 'Núvirði',
+ 'Customer' => 'Viðskiptavinur',
+ 'Customer missing!' => 'Viðskiptavin vantar!',
+ 'Customer not on file!' => 'Viðskiptavinur ekki á skrá!',
+ 'Date' => 'Dagsetning',
+ 'Date Paid' => 'Greiðsludagur',
+ 'Debit' => 'Debit',
+ 'Dec' => 'des',
+ 'December' => 'desember',
+ 'Decimalplaces' => 'Aukastafir',
+ 'Delete' => 'Eyða',
+ 'Delivery Date' => 'Afgreiðsludags.',
+ 'Description' => 'Skýringar',
+ 'Due Date' => 'Dags. lokið',
+ 'Due Date missing!' => 'Vantar dags. lokið!',
+ 'E-mail' => 'R-póstur',
+ 'E-mail Statement to' => 'Senda yfirlit til',
+ 'E-mail address missing!' => 'R-póst vantar!',
+ 'Edit Sales Invoice' => 'Breyta sölureikningi',
+ 'Employee' => 'Starfsmenn',
+ 'Exch' => 'Vx',
+ 'Exchange Rate' => 'Vextir',
+ 'Exchange rate for payment missing!' => 'Vextir fyrir greiðslu vantar!',
+ 'Exchange rate missing!' => 'Vantar vexti!',
+ 'Extended' => 'Framlengt',
+ 'Fax' => 'Símbréf',
+ 'Feb' => 'feb',
+ 'February' => 'febrúar',
+ 'From' => 'Frá',
+ 'GIFI' => 'GIFI',
+ 'Heading' => 'Yfirskriftir',
+ 'ID' => 'ID',
+ 'In-line' => 'Inndregið',
+ 'Include in Report' => 'Innifela í skýrslu',
+ 'Income Statement' => 'Inn yfirlýsing',
+ 'Invoice' => 'Sölureikningur',
+ 'Invoice Date' => 'Sölureikningur dags.',
+ 'Invoice Date missing!' => 'Sölureiknings dags. vantar!',
+ 'Invoice Number' => 'Sölureikningur Númer',
+ 'Invoice Number missing!' => 'Sölureikningsnúmer vantar!',
+ 'Invoice deleted!' => 'Sölureikningi eytt!',
+ 'Item not on file!' => 'Hlutur ekki á skrá!',
+ 'Jan' => 'jan',
+ 'January' => 'janúar',
+ 'Jul' => 'júl',
+ 'July' => 'júlí',
+ 'Jun' => 'jún',
+ 'June' => 'júní',
+ 'Language' => 'Túngumál',
+ 'Mar' => 'mar',
+ 'March' => 'mars',
+ 'May' => 'maí',
+ 'May ' => 'maí',
+ 'Message' => 'Skilaboð',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Upplýsinar',
+ 'Nothing selected!' => 'Ekkert valið!',
+ 'Nov' => 'nóv',
+ 'November' => 'nóvember',
+ 'Number' => 'Númer',
+ 'Number missing in Row' => 'Tölu vantar í röð',
+ 'Oct' => 'ókt',
+ 'October' => 'óktóber',
+ 'Open' => 'opna',
+ 'Order' => 'Pöntun',
+ 'Order Date missing!' => 'Pöntunar dags. vantar',
+ 'Order Number' => 'Pöntun númer',
+ 'Order Number missing!' => 'Númer pöntunar vantar',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Fylgiseðill',
+ 'Packing List Date missing!' => 'Dags. fylgiseðils vantar!',
+ 'Packing List Number missing!' => 'Númer fylgiseðils vantar!',
+ 'Paid' => 'Greitt',
+ 'Part' => 'Vara',
+ 'Payment date missing!' => 'Greiðsudags. vantar!',
+ 'Payments' => 'Greiðslur',
+ 'Phone' => 'Sími.',
+ 'Post' => 'Bókfæra',
+ 'Post as new' => 'Bókfæra sem nýjan',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Verð',
+ 'Print' => 'Prenta',
+ 'Project' => 'Verkefni',
+ 'Project not on file!' => 'Verkefni ekki á skrá!',
+ 'Purchase Order' => 'Innkaupspöntun',
+ 'Qty' => 'Magn',
+ 'Recd' => 'Mótt:',
+ 'Receipt' => 'Kvittun',
+ 'Receipts' => 'Kvittanir',
+ 'Record in' => 'Bóka á',
+ 'Reference' => 'Fylgiskjal',
+ 'Remaining' => 'Eftir',
+ 'Report for' => 'Skýrsla fyrir',
+ 'Required by' => 'Pantað af',
+ 'Sales Order' => 'Sölupöntun',
+ 'Screen' => 'Skjá',
+ 'Select all' => 'Velja allt',
+ 'Select from one of the names below' => 'Veljið einhvað að neðangreindum nöfnum',
+ 'Select from one of the projects below' => 'Veljið einhvað að neðangreindum verkefnum',
+ 'Select postscript or PDF!' => 'Veljið postscript eða PDF',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Service' => 'Þjónusta',
+ 'Ship' => 'Senda',
+ 'Ship to' => 'Senda til',
+ 'Ship via' => 'Senda með',
+ 'Source' => 'Frálag',
+ 'Standard' => 'Standart',
+ 'Statement' => 'Uppgjör',
+ 'Statement sent to' => 'Uppgjör sendist til',
+ 'Statements sent to printer!' => 'Uppgjör sendist á prentara',
+ 'Subject' => 'Efni',
+ 'Subtotal' => 'Samtala',
+ 'Tax' => 'Virðisaukaskattur',
+ 'Tax Included' => 'Taka með VSK',
+ 'Tax collected' => 'VSK samtals',
+ 'Tax paid' => 'VSK greitt',
+ 'To' => 'til',
+ 'Total' => 'Samtals',
+ 'Transaction deleted!' => 'Færslu eytt!',
+ 'Transaction posted!' => 'Færsla bókfærð!',
+ 'Trial Balance' => 'Prufu staða',
+ 'Unit' => 'Einingar',
+ 'Update' => 'Uppfærsla',
+ 'Vendor' => 'Byrgir',
+ 'Vendor missing!' => 'Byrgja vantar!',
+ 'Vendor not on file!' => 'Byrgir ekki til í gagnagrunni!',
+ 'What type of item is this?' => 'Hvernig hlutur er þetta?',
+ 'Yes' => 'Já',
+ 'as at' => 'líkt og með',
+ 'ea' => 'stk',
+ 'for Period' => 'fyrir tímabilið',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'innkaupafærsla' => 'ap_transaction',
+ 'sölufærsla' => 'ar_transaction',
+ 'Áfram' => 'continue',
+ 'eyða' => 'delete',
+ 'r_póstur' => 'e_mail',
+ 'bókfæra' => 'post',
+ 'bókfæra_sem_nýjan' => 'post_as_new',
+ 'prenta' => 'print',
+ 'sölupöntun' => 'sales_order',
+ 'velja_allt' => 'select_all',
+ 'senda_til' => 'ship_to',
+ 'uppfærsla' => 'update',
+ 'já' => 'yes',
+};
+
+1;
+
diff --git a/locale/is/pw b/locale/is/pw
new file mode 100755
index 00000000..a7819b47
--- /dev/null
+++ b/locale/is/pw
@@ -0,0 +1,12 @@
+$self{texts} = {
+ 'Continue' => 'Áfram',
+ 'Password' => 'Aðgangsorð',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'Áfram' => 'continue',
+};
+
+1;
+
diff --git a/locale/is/rc b/locale/is/rc
new file mode 100755
index 00000000..2b807db4
--- /dev/null
+++ b/locale/is/rc
@@ -0,0 +1,67 @@
+$self{texts} = {
+ 'Account' => 'Reikningur',
+ 'Accounting Menu' => 'Bókhalds valmynd',
+ 'Apr' => 'apr',
+ 'April' => 'apríl',
+ 'Aug' => 'ágú',
+ 'August' => 'ágúst',
+ 'Balance' => 'Afstemming',
+ 'Continue' => 'Áfram',
+ 'Credit' => 'Kredit',
+ 'Current' => 'Núvirði',
+ 'Date' => 'Dagsetning',
+ 'Debit' => 'Debit',
+ 'Dec' => 'des',
+ 'December' => 'desember',
+ 'Description' => 'Skýringar',
+ 'Difference' => 'Mismunur',
+ 'Done' => 'Búið',
+ 'Feb' => 'feb',
+ 'February' => 'febrúar',
+ 'From' => 'Frá',
+ 'Jan' => 'jan',
+ 'January' => 'janúar',
+ 'Jul' => 'júl',
+ 'July' => 'júlí',
+ 'Jun' => 'jún',
+ 'June' => 'júní',
+ 'Mar' => 'mar',
+ 'March' => 'mars',
+ 'May' => 'maí',
+ 'May ' => 'maí',
+ 'Nov' => 'nóv',
+ 'November' => 'nóvember',
+ 'Oct' => 'ókt',
+ 'October' => 'óktóber',
+ 'Out of balance!' => 'Ekki jafnvægi!',
+ 'Reconciliation' => 'Afstemingar',
+ 'Select all' => 'Velja allt',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Source' => 'Frálag',
+ 'Statement Balance' => 'jöfnunaruppgjör',
+ 'To' => 'til',
+ 'Update' => 'Uppfærsla',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'Áfram' => 'continue',
+ 'búið' => 'done',
+ 'velja_allt' => 'select_all',
+ 'uppfærsla' => 'update',
+};
+
+1;
+
diff --git a/locale/is/rp b/locale/is/rp
new file mode 100755
index 00000000..5ead2d4e
--- /dev/null
+++ b/locale/is/rp
@@ -0,0 +1,156 @@
+$self{texts} = {
+ 'AP Aging' => 'Aldursgreining',
+ 'AR Aging' => 'Aldursgreining',
+ 'Account' => 'Reikningur',
+ 'Account Number' => 'Reikningsnúmer',
+ 'Accounting Menu' => 'Bókhalds valmynd',
+ 'Accounts' => 'Reikningar',
+ 'Address' => 'Heimilisfang',
+ 'Amount' => 'Upphæð',
+ 'Apr' => 'apr',
+ 'April' => 'apríl',
+ 'Attachment' => 'Hjálagt',
+ 'Aug' => 'ágú',
+ 'August' => 'ágúst',
+ 'Balance' => 'Afstemming',
+ 'Balance Sheet' => 'Staða',
+ 'Bcc' => 'Blint afrit',
+ 'Cash' => 'Reiðufé',
+ 'Cc' => 'Afrit',
+ 'Compare to' => 'Bera saman við',
+ 'Continue' => 'Áfram',
+ 'Copies' => 'Afrit',
+ 'Credit' => 'Kredit',
+ 'Curr' => 'Gjaldm',
+ 'Current' => 'Núvirði',
+ 'Customer' => 'Viðskiptavinur',
+ 'Customer not on file!' => 'Viðskiptavinur ekki á skrá!',
+ 'Date' => 'Dagsetning',
+ 'Debit' => 'Debit',
+ 'Dec' => 'des',
+ 'December' => 'desember',
+ 'Decimalplaces' => 'Aukastafir',
+ 'Description' => 'Skýringar',
+ 'Due Date' => 'Dags. lokið',
+ 'E-mail' => 'R-póstur',
+ 'E-mail Statement to' => 'Senda yfirlit til',
+ 'E-mail address missing!' => 'R-póst vantar!',
+ 'Feb' => 'feb',
+ 'February' => 'febrúar',
+ 'From' => 'Frá',
+ 'GIFI' => 'GIFI',
+ 'Heading' => 'Yfirskriftir',
+ 'ID' => 'ID',
+ 'In-line' => 'Inndregið',
+ 'Include in Report' => 'Innifela í skýrslu',
+ 'Income Statement' => 'Inn yfirlýsing',
+ 'Invoice' => 'Sölureikningur',
+ 'Jan' => 'jan',
+ 'January' => 'janúar',
+ 'Jul' => 'júl',
+ 'July' => 'júlí',
+ 'Jun' => 'jún',
+ 'June' => 'júní',
+ 'Language' => 'Túngumál',
+ 'Mar' => 'mar',
+ 'March' => 'mars',
+ 'May' => 'maí',
+ 'May ' => 'maí',
+ 'Message' => 'Skilaboð',
+ 'Nothing selected!' => 'Ekkert valið!',
+ 'Nov' => 'nóv',
+ 'November' => 'nóvember',
+ 'Number' => 'Númer',
+ 'Oct' => 'ókt',
+ 'October' => 'óktóber',
+ 'Order' => 'Pöntun',
+ 'PDF' => 'PDF',
+ 'Payments' => 'Greiðslur',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Prenta',
+ 'Project' => 'Verkefni',
+ 'Project not on file!' => 'Verkefni ekki á skrá!',
+ 'Receipts' => 'Kvittanir',
+ 'Reference' => 'Fylgiskjal',
+ 'Report for' => 'Skýrsla fyrir',
+ 'Screen' => 'Skjá',
+ 'Select all' => 'Velja allt',
+ 'Select from one of the names below' => 'Veljið einhvað að neðangreindum nöfnum',
+ 'Select from one of the projects below' => 'Veljið einhvað að neðangreindum verkefnum',
+ 'Select postscript or PDF!' => 'Veljið postscript eða PDF',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Source' => 'Frálag',
+ 'Standard' => 'Standart',
+ 'Statement' => 'Uppgjör',
+ 'Statement sent to' => 'Uppgjör sendist til',
+ 'Statements sent to printer!' => 'Uppgjör sendist á prentara',
+ 'Subject' => 'Efni',
+ 'Subtotal' => 'Samtala',
+ 'Tax' => 'Virðisaukaskattur',
+ 'Tax collected' => 'VSK samtals',
+ 'Tax paid' => 'VSK greitt',
+ 'To' => 'til',
+ 'Total' => 'Samtals',
+ 'Trial Balance' => 'Prufu staða',
+ 'Vendor' => 'Byrgir',
+ 'Vendor not on file!' => 'Byrgir ekki til í gagnagrunni!',
+ 'as at' => 'líkt og með',
+ 'for Period' => 'fyrir tímabilið',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'Áfram' => 'continue',
+ 'r_póstur' => 'e_mail',
+ 'prenta' => 'print',
+ 'velja_allt' => 'select_all',
+};
+
+1;
+
diff --git a/locale/it/COPYING b/locale/it/COPYING
new file mode 100755
index 00000000..65fe6359
--- /dev/null
+++ b/locale/it/COPYING
@@ -0,0 +1,26 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2001-2003
+#
+# Italian texts:
+#
+# Author: Paolo Bizzarri <p.bizzarri@icube.it>
+# Luca Venturini <luca@yepa.com>
+# Alessandro Pasotti <apasotti@isoleborromee.it>
+# Daniele Giacomini <daniele@swlibero.org> 2003.09.28-2003.11.05
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/it/LANGUAGE b/locale/it/LANGUAGE
new file mode 100755
index 00000000..4e07e7ec
--- /dev/null
+++ b/locale/it/LANGUAGE
@@ -0,0 +1 @@
+Italian
diff --git a/locale/it/Num2text b/locale/it/Num2text
new file mode 100755
index 00000000..6086c339
--- /dev/null
+++ b/locale/it/Num2text
@@ -0,0 +1,162 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (C) 2002
+#
+# Author: Dieter Simader
+# Email: dsimader@sql-ledger.org
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+# Contributors: Luca Venturini <luca@yepa.com>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#======================================================================
+#
+# this is a variation of the Lingua package
+# written for check and receipt printing
+# it returns a properly formatted text string
+# for a number up to 10**12
+
+sub init {
+ my $self = shift;
+
+ %{ $self->{numbername} } =
+ (0 => 'Zero',
+ 1 => 'uno',
+ 2 => 'due',
+ 3 => 'tre',
+ 4 => 'quattro',
+ 5 => 'cinque',
+ 6 => 'sei',
+ 7 => 'sette',
+ 8 => 'otto',
+ 9 => 'nove',
+ 10 => 'dieci',
+ 11 => 'undici',
+ 12 => 'dodici',
+ 13 => 'tredici',
+ 14 => 'quattrodici',
+ 15 => 'quindici',
+ 16 => 'sedici',
+ 17 => 'diciassette',
+ 18 => 'diciotto',
+ 19 => 'diciannove',
+ 20 => 'venti',
+ 30 => 'trenta',
+ 40 => 'quaranta',
+ 50 => 'cinquanta',
+ 60 => 'sessanta',
+ 70 => 'settanta',
+ 80 => 'ottanta',
+ 90 => 'novanta',
+ 10**2 => 'cento',
+ 10**3 => 'mille',
+ 10**6 => 'milione',
+ 10**9 => 'miliardo',
+ 10**12 => 'mille miliardi'
+ );
+
+}
+
+
+sub num2text {
+ my ($self, $amount) = @_;
+
+ return $self->{numbername}{0} unless $amount;
+
+ my @textnumber = ();
+
+ # split amount into chunks of 3
+ my @num = reverse split //, abs($amount);
+ my @numblock = ();
+ my ($i, $appendn);
+ my @a = ();
+
+ while (@num) {
+ @a = ();
+ for (1 .. 3) {
+ push @a, shift @num;
+ }
+ push @numblock, join / /, reverse @a;
+ }
+
+ while (@numblock) {
+
+ $i = $#numblock;
+ @num = split //, $numblock[$i];
+
+ $numblock[$i] *= 1;
+
+ if ($numblock[$i] == 0) {
+ pop @numblock;
+ next;
+ }
+
+ if ($numblock[$i] > 99) {
+ # the one from hundreds
+ push @textnumber, $self->{numbername}{$num[0]};
+
+ # add hundred designation
+ push @textnumber, $self->{numbername}{10**2};
+
+ # reduce numblock
+ $numblock[$i] -= $num[0] * 100;
+ }
+
+ if ($numblock[$i] > 9) {
+ # tens
+ push @textnumber, $self->format_ten($numblock[$i]);
+ } elsif ($numblock[$i] > 1) {
+ # ones
+ push @textnumber, $self->{numbername}{$numblock[$i]};
+ }
+
+ # add thousand, million
+ if ($i) {
+ $amount = 10**($i * 3);
+ push @textnumber, $self->{numbername}{$amount};
+ }
+
+ pop @numblock;
+
+ }
+
+ join '', @textnumber;
+
+}
+
+
+sub format_ten {
+ my ($self, $amount) = @_;
+
+ my $textnumber = "";
+ my @num = split //, $amount;
+
+ if ($amount > 20) {
+ if ($num[1] == 0) {
+ $textnumber = $self->{numbername}{$amount};
+ } else {
+ $amount = $num[0] * 10;
+ $textnumber = $self->{numbername}{$amount}.$self->{numbername}{$num[1]};
+ }
+ } else {
+ $textnumber = $self->{numbername}{$amount};
+ }
+
+ $textnumber;
+
+}
+
+
+1;
+
diff --git a/locale/it/aa b/locale/it/aa
new file mode 100755
index 00000000..1de00b98
--- /dev/null
+++ b/locale/it/aa
@@ -0,0 +1,128 @@
+$self{texts} = {
+ 'AP Transaction' => 'Transazione Fornitore',
+ 'AP Transactions' => 'Transazioni Fornitori',
+ 'AR Transaction' => 'Transazione Cliente',
+ 'AR Transactions' => 'Transazioni Clienti',
+ 'Account' => 'Conto',
+ 'Accounting Menu' => 'Menu Contabilit&agrave;',
+ 'Amount' => 'Importo',
+ 'Amount Due' => 'Importo Dovuto',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprile',
+ 'Are you sure you want to delete Transaction' => 'Sei sicuro di voler cancellare la Transazione',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Cannot delete transaction!' => 'Non puoi cancellare la transazione',
+ 'Cannot post payment for a closed period!' => 'Non puoi salvare pagamenti per un periodo chiuso!',
+ 'Cannot post transaction for a closed period!' => 'Non puoi salvare una transazione per un periodo chiuso!',
+ 'Cannot post transaction!' => 'Non puoi salvare la transazione!',
+ 'Check' => 'Assegno',
+ 'Closed' => 'Chiuso',
+ 'Confirm!' => 'Conferma!',
+ 'Continue' => 'Continua',
+ 'Credit' => 'Avere',
+ 'Credit Limit' => 'Fido',
+ 'Curr' => 'Valuta',
+ 'Currency' => 'Valuta',
+ 'Current' => 'Corrente',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => 'Cliente mancante!',
+ 'Date' => 'Data',
+ 'Date Paid' => 'Data di pagamento',
+ 'Debit' => 'Dare',
+ 'Dec' => 'Dic',
+ 'December' => 'Dicembre',
+ 'Delete' => 'Cancella',
+ 'Description' => 'Descrizione',
+ 'Due Date' => 'Scadenza Fattura',
+ 'Due Date missing!' => 'Data di Scadenza mancante!',
+ 'Employee' => 'Dipendente',
+ 'Exch' => 'Cambio',
+ 'Feb' => 'Feb',
+ 'February' => 'Febbraio',
+ 'From' => 'Dal',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Includi nel Prospetto',
+ 'Invoice' => 'Fattura',
+ 'Invoice Date' => 'Data Registrazione Fattura',
+ 'Invoice Date missing!' => 'Manca la data della Fattura!',
+ 'Invoice Number' => 'Protocollo Numero',
+ 'Jan' => 'Gen',
+ 'January' => 'Gennaio',
+ 'Jul' => 'Lug',
+ 'July' => 'Luglio',
+ 'Jun' => 'Giu',
+ 'June' => 'Giugno',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mag',
+ 'May ' => 'Mag ',
+ 'No.' => 'No.',
+ 'Notes' => 'Note',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembre',
+ 'Oct' => 'Ott',
+ 'October' => 'Ottobre',
+ 'Open' => 'Aperto',
+ 'Order' => 'Ordine',
+ 'Order Number' => 'Numero Fattura Fornitore',
+ 'Paid' => 'Importo Pagato',
+ 'Payment date missing!' => 'Manca la data del pagamento!',
+ 'Payments' => 'Pagamenti',
+ 'Post' => 'Salva',
+ 'Post as new' => 'Salva come nuovo',
+ 'Print' => 'Stampa',
+ 'Project' => 'Progetto',
+ 'Receipt' => 'Incasso',
+ 'Remaining' => 'Rimanente',
+ 'Sep' => 'Set',
+ 'September' => 'Settembre',
+ 'Ship to' => 'Spedire a',
+ 'Ship via' => 'Porto',
+ 'Source' => 'Sorgente',
+ 'Subtotal' => 'Totale Parziale',
+ 'Tax' => 'Tassa',
+ 'Tax Included' => 'Tasse Incluse',
+ 'To' => 'Al',
+ 'Total' => 'Totale',
+ 'Transaction deleted!' => 'Transazione cancellata!',
+ 'Transaction posted!' => 'Transazione salvata!',
+ 'Update' => 'Aggiorna',
+ 'Vendor' => 'Fornitore',
+ 'Vendor missing!' => 'Manca il fornitore!',
+ 'Yes' => 'Si',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'transazione_fornitore' => 'ap_transaction',
+ 'transazione_cliente' => 'ar_transaction',
+ 'continua' => 'continue',
+ 'cancella' => 'delete',
+ 'salva' => 'post',
+ 'salva_come_nuovo' => 'post_as_new',
+ 'stampa' => 'print',
+ 'spedire_a' => 'ship_to',
+ 'aggiorna' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/it/admin b/locale/it/admin
new file mode 100755
index 00000000..83ca999a
--- /dev/null
+++ b/locale/it/admin
@@ -0,0 +1,123 @@
+$self{texts} = {
+ 'Access Control' => 'Controllo degli accessi',
+ 'Accounting' => 'Contabilit&agrave;',
+ 'Add User' => 'Aggiungi Utente',
+ 'Address' => 'Indirizzo',
+ 'Administration' => 'Amministrazione',
+ 'Administrator' => 'Amministratore',
+ 'All Datasets up to date!' => 'Tutti i Datasets sono aggiornati!',
+ 'Change Admin Password' => 'Cambia password dell\'amministratore',
+ 'Change Password' => 'Cambia password',
+ 'Click on login name to edit!' => 'Clicca sul nome per effettuare modifiche',
+ 'Company' => 'Ragione Sociale',
+ 'Connect to' => 'Connetti a',
+ 'Continue' => 'Continua',
+ 'Create Chart of Accounts' => 'Crea Piano dei conti',
+ 'Create Dataset' => 'Crea Dataset',
+ 'DBI not installed!' => 'Modulo DBI non installato',
+ 'Database' => 'Database',
+ 'Database Administration' => 'Amministratore del Database',
+ 'Database Driver not checked!' => 'Il driver del database non e\' stato controllato!',
+ 'Database User missing!' => 'Manca lo user del Database!',
+ 'Dataset' => 'Dataset',
+ 'Dataset missing!' => 'Dataset mancante!',
+ 'Dataset updated!' => 'Dataset aggiornato!',
+ 'Date Format' => 'Formato della data',
+ 'Delete' => 'Cancella',
+ 'Delete Dataset' => 'Cancella Dataset',
+ 'Directory' => 'Directory',
+ 'Driver' => 'Driver',
+ 'Dropdown Limit' => 'Limite per i menu a discesa',
+ 'E-mail' => 'E-mail',
+ 'Edit User' => 'Modifica Utente',
+ 'Existing Datasets' => 'Datasets esistenti',
+ 'Fax' => 'Fax',
+ 'Host' => 'Host',
+ 'Hostname missing!' => 'Manca il nome del server',
+ 'Language' => 'Lingua',
+ 'Login' => 'Login',
+ 'Logout' => 'Logout',
+ 'Name' => 'Nome',
+ 'New Templates' => 'Nuovi Modelli',
+ 'No Database Drivers available!' => 'Nessun Database Driver disponibile!',
+ 'No Dataset selected!' => 'Nessun Dataset selezionato!',
+ 'Nothing to delete!' => 'Nulla da cancellare!',
+ 'Number Format' => 'Formato Numerico',
+ 'Oracle Database Administration' => 'Amministratore del Database Oracle',
+ 'Password' => 'Password',
+ 'Password changed!' => 'Password cambiata!',
+ 'Pg Database Administration' => 'Amministratore del Database Pg',
+ 'Phone' => 'Tel.',
+ 'Port' => 'Porta',
+ 'Port missing!' => 'Manca la Porta',
+ 'Printer' => 'Stampante',
+ 'Save' => 'Salva',
+ 'Setup Templates' => 'Configurazione dei modelli',
+ 'Signature' => 'Firma',
+ 'Stylesheet' => 'Foglio di Stile',
+ 'Templates' => 'Modelli',
+ 'The following Datasets are not in use and can be deleted' => 'I seguenti datasets non sono in uso e possono essere cancellati',
+ 'The following Datasets need to be updated' => 'I seguenti datasets devono essere aggiornati',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Questo &egrave; un controllo preliminare per verificare le risorse esistenti. Nulla verr&agrave; creato o cancellato in questa fase!',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Per aggiungere un utente ad un gruppo, modifica i dati dell\'utente, cambia lo username e salva. Un nuovo utente con gli stessi dati verr&agrave; salvato con il nuovo username.',
+ 'Update Dataset' => 'Aggiorna il Dataset',
+ 'Use Templates' => 'Usa Modelli',
+ 'User' => 'Utente',
+ 'User deleted!' => 'Utente cancellato!',
+ 'User saved!' => 'Utente salvato!',
+ 'Version' => 'Versione',
+ 'does not exist' => 'non esiste',
+ 'is already a member!' => '&egrave; gi&agrave; utente!',
+ 'localhost' => 'localhost',
+ 'successfully created!' => 'creato!',
+ 'successfully deleted!' => 'cancellato!',
+ 'website' => 'sito web',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'aggiungi_utente' => 'add_user',
+ 'cambia_password_dell\'amministratore' => 'change_admin_password',
+ 'cambia_password' => 'change_password',
+ 'continua' => 'continue',
+ 'crea_dataset' => 'create_dataset',
+ 'cancella' => 'delete',
+ 'cancella_dataset' => 'delete_dataset',
+ 'login' => 'login',
+ 'logout' => 'logout',
+ 'amministratore_del_database_oracle' => 'oracle_database_administration',
+ 'amministratore_del_database_pg' => 'pg_database_administration',
+ 'salva' => 'save',
+ 'aggiorna_il_dataset' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/it/all b/locale/it/all
new file mode 100755
index 00000000..dacef5cb
--- /dev/null
+++ b/locale/it/all
@@ -0,0 +1,422 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+
+$self{texts} = {
+ 'AP' => 'Debiti Fornitori',
+ 'AP Aging' => 'Partite Aperte',
+ 'AP Transaction' => 'Transazione Fornitore',
+ 'AP Transactions' => 'Transazioni Fornitori',
+ 'AR' => 'Crediti Clienti',
+ 'AR Aging' => 'Partite Aperte',
+ 'AR Transaction' => 'Transazione Cliente',
+ 'AR Transactions' => 'Transazioni Clienti',
+ 'About' => 'Informazioni',
+ 'Access Control' => 'Controllo degli accessi',
+ 'Account' => 'Conto',
+ 'Account Number' => 'Numero di conto',
+ 'Account Number missing!' => 'Manca il numero di conto!',
+ 'Account Type' => 'Tipo di conto',
+ 'Account Type missing!' => 'Manca il tipo del conto!',
+ 'Account deleted!' => 'Conto cancellato!',
+ 'Account saved!' => 'Conto salvato!',
+ 'Accounting' => 'Contabilit&agrave;',
+ 'Accounting Menu' => 'Menu Contabilit&agrave;',
+ 'Accounts' => 'Conti',
+ 'Active' => 'Attivo',
+ 'Add' => 'Aggiungi',
+ 'Add Account' => 'Aggiungi conto',
+ 'Add Assembly' => 'Aggiungi Assemblato',
+ 'Add Customer' => 'Aggiungi Cliente',
+ 'Add GIFI' => 'Aggiungi codice GIFI',
+ 'Add General Ledger Transaction' => 'Aggiungi Transazione di Contabilità Generale',
+ 'Add Part' => 'Aggiungi Articolo',
+ 'Add Project' => 'Aggiungi Progetto',
+ 'Add Purchase Order' => 'Aggiungi Ordine di acquisto',
+ 'Add Sales Invoice' => 'Aggiungi Fattura di vendita',
+ 'Add Sales Order' => 'Aggiungi Ordine di vendita',
+ 'Add Service' => 'Aggiungi Servizio',
+ 'Add Transaction' => 'Aggiungi Transazione',
+ 'Add User' => 'Aggiungi Utente',
+ 'Add Vendor' => 'Aggiungi Fornitore',
+ 'Address' => 'Indirizzo',
+ 'Administration' => 'Amministrazione',
+ 'Administrator' => 'Amministratore',
+ 'All' => 'Tutti',
+ 'All Datasets up to date!' => 'Tutti i Datasets sono aggiornati!',
+ 'Amount' => 'Importo',
+ 'Amount Due' => 'Importo Dovuto',
+ 'Amount missing!' => 'Manca l\'importo',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprile',
+ 'Are you sure you want to delete Invoice Number' => 'Sei sicuro di voler cancellare la Fattura numero',
+ 'Are you sure you want to delete Order Number' => 'Sei sicuro di volre cancellare l\'ordine numero',
+ 'Are you sure you want to delete Transaction' => 'Sei sicuro di voler cancellare la Transazione',
+ 'Assemblies' => 'Assemblati',
+ 'Assemblies restocked!' => 'Assemblati ricaricati!',
+ 'Asset' => 'Attivit&agrave;',
+ 'Attachment' => 'Attachment',
+ 'Audit Control' => 'Controllo accessi',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'BOM' => 'BOM',
+ 'Backup' => 'Backup',
+ 'Backup sent to' => 'Backup inviato a',
+ 'Balance' => 'Saldo',
+ 'Balance Sheet' => 'Stato Patrimoniale',
+ 'Bcc' => 'Bcc',
+ 'Bin' => 'Codice BIN',
+ 'Books are open' => 'I conti sono aperti',
+ 'Business Number' => 'Partita IVA',
+ 'C' => 'C',
+ 'COGS' => 'Costo dei Beni Venduti',
+ 'Cannot delete account!' => 'Non puoi cancellare il conto!',
+ 'Cannot delete customer!' => 'Non puoi cancellare il cliente!',
+ 'Cannot delete default account!' => 'Non puoi cancellare il conto di default!',
+ 'Cannot delete invoice!' => 'Non puoi cancellare la fattura!',
+ 'Cannot delete item!' => 'Non puoi cancellare l\'articolo',
+ 'Cannot delete order!' => 'Non puoi cancellare l\'ordine',
+ 'Cannot delete transaction!' => 'Non puoi cancellare la transazione',
+ 'Cannot delete vendor!' => 'Non puoi cancellare il fornitore',
+ 'Cannot post invoice for a closed period!' => 'Non puoi salvare una transazione per un periodo chiuso!',
+ 'Cannot post invoice!' => 'Non puoi salvare la fattura!',
+ 'Cannot post payment for a closed period!' => 'Non puoi salvare pagamenti per un periodo chiuso!',
+ 'Cannot post transaction for a closed period!' => 'Non puoi salvare una transazione per un periodo chiuso!',
+ 'Cannot post transaction!' => 'Non puoi salvare la transazione!',
+ 'Cannot save account!' => 'Non puoi salvare il conto!',
+ 'Cannot save order!' => 'Non puoi salvare l\'ordine!',
+ 'Cannot save preferences!' => 'Non puoi salvare le preferenze!',
+ 'Cannot stock assemblies!' => 'Non puoi caricare gli assemblati!',
+ 'Cash' => 'Cassa',
+ 'Cc' => 'Cc',
+ 'Change Admin Password' => 'Cambia password dell\'amministratore',
+ 'Change Password' => 'Cambia password',
+ 'Chart of Accounts' => 'Piano dei Conti',
+ 'Check' => 'Assegno',
+ 'Click on login name to edit!' => 'Clicca sul nome per effettuare modifiche',
+ 'Close Books up to' => 'Chiudi i conti fino a',
+ 'Closed' => 'Chiuso',
+ 'Company' => 'Ragione Sociale',
+ 'Compare to' => 'Confronta con',
+ 'Confirm!' => 'Conferma!',
+ 'Connect to' => 'Connetti a',
+ 'Contact' => 'Contatto',
+ 'Continue' => 'Continua',
+ 'Copies' => 'Copie',
+ 'Copy to COA' => 'Inserisci come conto',
+ 'Create Chart of Accounts' => 'Crea Piano dei conti',
+ 'Create Dataset' => 'Crea Dataset',
+ 'Credit' => 'Avere',
+ 'Credit Limit' => 'Fido',
+ 'Curr' => 'Valuta',
+ 'Currency' => 'Valuta',
+ 'Current' => 'Corrente',
+ 'Customer' => 'Cliente',
+ 'Customer deleted!' => 'Cliente cancellato!',
+ 'Customer missing!' => 'Cliente mancante!',
+ 'Customer not on file!' => 'Cliente non sul file!',
+ 'Customer saved!' => 'Cliente salvato!',
+ 'Customers' => 'Clienti',
+ 'DBI not installed!' => 'Modulo DBI non installato',
+ 'Database' => 'Database',
+ 'Database Administration' => 'Amministratore del Database',
+ 'Database Driver not checked!' => 'Il driver del database non e\' stato controllato!',
+ 'Database Host' => 'Server',
+ 'Database User missing!' => 'Manca lo user del Database!',
+ 'Dataset' => 'Dataset',
+ 'Dataset missing!' => 'Dataset mancante!',
+ 'Dataset updated!' => 'Dataset aggiornato!',
+ 'Date' => 'Data',
+ 'Date Format' => 'Formato della data',
+ 'Date Paid' => 'Data di pagamento',
+ 'Date missing!' => 'Manca la data!',
+ 'Debit' => 'Dare',
+ 'Dec' => 'Dic',
+ 'December' => 'Dicembre',
+ 'Decimalplaces' => 'Numero di decimali',
+ 'Delete' => 'Cancella',
+ 'Delete Account' => 'Cancella Conto',
+ 'Delete Dataset' => 'Cancella Dataset',
+ 'Delivery Date' => 'Data di spedizione',
+ 'Deposit' => 'Deposito',
+ 'Description' => 'Descrizione',
+ 'Difference' => 'Differenza',
+ 'Directory' => 'Directory',
+ 'Discount' => 'Sconto',
+ 'Done' => 'Fatto',
+ 'Drawing' => 'Disegno',
+ 'Driver' => 'Driver',
+ 'Dropdown Limit' => 'Limite per i menu a discesa',
+ 'Due Date' => 'Scadenza Fattura',
+ 'Due Date missing!' => 'Data di Scadenza mancante!',
+ 'E-mail' => 'E-mail',
+ 'E-mail Statement to' => 'Manda il sollecito via e-mail a',
+ 'E-mail address missing!' => 'Indirizzo e-mail mancante!',
+ 'Edit' => 'Modifica',
+ 'Edit Account' => 'Modifica Conto',
+ 'Edit Assembly' => 'Modifica Assemblato',
+ 'Edit GIFI' => 'Modifica codice GIFI',
+ 'Edit General Ledger Transaction' => 'Modifica Transazione di Contabilit&agrave; Generale',
+ 'Edit Part' => 'Modifica Articolo',
+ 'Edit Preferences for' => 'Modifica Preferenze di',
+ 'Edit Project' => 'Modifica Progetto',
+ 'Edit Purchase Order' => 'Modifica Ordine di acquisto',
+ 'Edit Sales Invoice' => 'Modifica Fattura di Vendita',
+ 'Edit Sales Order' => 'Modifica Ordine di vendita',
+ 'Edit Service' => 'Modifica Servizio',
+ 'Edit Template' => 'Modifica Modello',
+ 'Edit User' => 'Modifica Utente',
+ 'Employee' => 'Dipendente',
+ 'Enforce transaction reversal for all dates' => 'Forza l\'uso delle transazioni inverse per tutte le date',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Inserisci fino a 3 valute separate da ":" (es.: EUR:USD:CAD) per la valuta locale e quelle straniere',
+ 'Equity' => 'Capitale',
+ 'Exch' => 'Cambio',
+ 'Existing Datasets' => 'Datasets esistenti',
+ 'Expense' => 'Costi',
+ 'Expense/Asset' => 'Acquisti/Attivit&agrave;',
+ 'Extended' => 'Esteso',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febbraio',
+ 'Foreign Exchange Gain' => 'Guadagno da cambio valuta',
+ 'Foreign Exchange Loss' => 'Perdita da cambio valuta',
+ 'From' => 'Dal',
+ 'GIFI' => 'Codice GIFI',
+ 'GIFI deleted!' => 'Codice GIFI cancellato!',
+ 'GIFI missing!' => 'Codice GIFI mancante!',
+ 'GIFI saved!' => 'Codice GIFI salvato!',
+ 'GL Transaction' => 'Transazione di Contabilit&agrave; generale',
+ 'General Ledger' => 'Contabilit&agrave; generale',
+ 'Goods & Services' => 'Beni e Servizi',
+ 'HTML Templates' => 'Modelli HTML',
+ 'Heading' => 'Intestazione',
+ 'Host' => 'Host',
+ 'Hostname missing!' => 'Manca il nome del server',
+ 'ID' => 'ID',
+ 'Image' => 'Immagine',
+ 'In-line' => 'In-line',
+ 'Include in Report' => 'Includi nel Prospetto',
+ 'Include in drop-down menus' => 'Da includere nei menu a discesa dei seguenti moduli',
+ 'Income' => 'Ricavi',
+ 'Income Statement' => 'Conto Economico',
+ 'Incorrect Dataset version!' => 'Versione del Dataset non corretta!',
+ 'Individual Items' => 'Articoli Individuali',
+ 'Inventory' => 'Inventario',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'La quantit&agrave; in inventario deve essere zero per poter mettere l\'assemblato come obsoleto!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'La quantit&agrave; in inventario deve essere zero per poter mettere l\'articolo come obsoleto!',
+ 'Invoice' => 'Fattura',
+ 'Invoice Date' => 'Data Registrazione Fattura',
+ 'Invoice Date missing!' => 'Manca la data della Fattura!',
+ 'Invoice Number' => 'Protocollo Numero',
+ 'Invoice Number missing!' => 'Manca il numero della Fattura!',
+ 'Invoice deleted!' => 'Fattura Cancellata!',
+ 'Invoices' => 'Fatture',
+ 'Is this a summary account to record' => 'Conto di riferimento del modulo:',
+ 'Item deleted!' => 'Articolo Cancellato!',
+ 'Item not on file!' => 'Articolo non in archivio!',
+ 'Jan' => 'Gen',
+ 'January' => 'Gennaio',
+ 'Jul' => 'Lug',
+ 'July' => 'Luglio',
+ 'Jun' => 'Giu',
+ 'June' => 'Giugno',
+ 'LaTeX Templates' => 'Modelli LaTeX',
+ 'Language' => 'Lingua',
+ 'Last Cost' => 'Ultimo Costo',
+ 'Last Numbers & Default Accounts' => 'Ultimi numeri e Conti di Default',
+ 'Leave host and port field empty unless you want to make a remote connection.' => 'Lascia in bianco il server e la porta a meno che tu non voglia fare una connessione remota',
+ 'Liability' => 'Passivit&agrave;',
+ 'Licensed to' => 'Dato in Licenza a',
+ 'Line Total' => 'Totale Linea',
+ 'Link' => 'Collegamenti',
+ 'Link Accounts' => 'Collegamenti tra Conti',
+ 'List Accounts' => 'Lista Conti',
+ 'List GIFI' => 'Lista codici GIFI',
+ 'List Price' => 'Prezzo di Listino',
+ 'List Transactions' => 'Lista Transazioni',
+ 'Login' => 'Login',
+ 'Logout' => 'Logout',
+ 'Make' => 'Produttore',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mag',
+ 'May ' => 'Mag ',
+ 'Message' => 'Messaggio',
+ 'Microfiche' => 'Microfiche',
+ 'Model' => 'Modello',
+ 'N/A' => 'N/A',
+ 'Name' => 'Nome',
+ 'Name missing!' => 'Manca il Nome!',
+ 'New Templates' => 'Nuovi Modelli',
+ 'No' => 'No',
+ 'No Database Drivers available!' => 'Nessun Database Driver disponibile!',
+ 'No Dataset selected!' => 'Nessun Dataset selezionato!',
+ 'No email address for' => 'Manca l\'indirizzo e-mail per',
+ 'No.' => 'No.',
+ 'Notes' => 'Note',
+ 'Nothing selected!' => 'Non hai selezionato nulla!',
+ 'Nothing to delete!' => 'Nulla da cancellare!',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembre',
+ 'Number' => 'Partita IVA',
+ 'Number Format' => 'Formato Numerico',
+ 'Number missing in Row' => 'Manca il codice nella riga',
+ 'O' => 'O',
+ 'Obsolete' => 'Obsoleto',
+ 'Oct' => 'Ott',
+ 'October' => 'Ottobre',
+ 'On Hand' => 'Disponibilit&agrave;',
+ 'Open' => 'Aperto',
+ 'Oracle Database Administration' => 'Amministratore del Database Oracle',
+ 'Order' => 'Ordine',
+ 'Order Date' => 'Data dell\'ordine',
+ 'Order Date missing!' => 'Manca la data dell\'ordine',
+ 'Order Entry' => 'Ordini',
+ 'Order Number' => 'Numero Fattura Fornitore',
+ 'Order Number missing!' => 'Manca il numero dell\'ordine!',
+ 'Order deleted!' => 'Ordine Cancellato!',
+ 'Order saved!' => 'Ordine Salvato!',
+ 'Orphaned' => 'Orfano',
+ 'Out of balance!' => 'Non conciliato!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista Etichette',
+ 'Packing List Date missing!' => 'Manca la data della Packing List!',
+ 'Packing List Number missing!' => 'Manca il codice della Packing List!',
+ 'Paid' => 'Importo Pagato',
+ 'Part' => 'Articolo',
+ 'Parts' => 'Articoli',
+ 'Password' => 'Password',
+ 'Password changed!' => 'Password cambiata!',
+ 'Payables' => 'Debiti Fornitori',
+ 'Payment' => 'Pagamento',
+ 'Payment date missing!' => 'Manca la data del pagamento!',
+ 'Payment posted!' => 'Pagamento Salvato',
+ 'Payments' => 'Pagamenti',
+ 'Pg Database Administration' => 'Amministratore del Database Pg',
+ 'Phone' => 'Tel.',
+ 'Port' => 'Porta',
+ 'Port missing!' => 'Manca la Porta',
+ 'Post' => 'Salva',
+ 'Post as new' => 'Salva come nuovo',
+ 'Postscript' => 'Postscript',
+ 'Preferences' => 'Preferenze',
+ 'Preferences saved!' => 'Preferenze Salvate!',
+ 'Price' => 'Prezzo',
+ 'Print' => 'Stampa',
+ 'Printer' => 'Stampante',
+ 'Project' => 'Progetto',
+ 'Project Number missing!' => 'Manca il codice del progetto!',
+ 'Project deleted!' => 'Progetto cancellato!',
+ 'Project not on file!' => 'Progetto non archiviato!',
+ 'Project saved!' => 'Progetto salvato!',
+ 'Projects' => 'Progetti',
+ 'Purchase Order' => 'Ordine di acquisto',
+ 'Purchase Orders' => 'Ordini di acquisto',
+ 'Qty' => 'Q.t&agrave;',
+ 'ROP' => 'Soglia di Riordino',
+ 'Rate' => 'Tasso',
+ 'Recd' => 'Ricevuto',
+ 'Receipt' => 'Incasso',
+ 'Receipts' => 'Incassi',
+ 'Receivables' => 'Crediti Clienti',
+ 'Reconciliation' => 'Conciliazione',
+ 'Record in' => 'Registra in',
+ 'Reference' => 'Riferimento',
+ 'Remaining' => 'Rimanente',
+ 'Report for' => 'Prospetto per',
+ 'Reports' => 'Prospetti',
+ 'Required by' => 'Necessario dal',
+ 'Retained Earnings' => 'Guadagni',
+ 'Sales' => 'Vendite',
+ 'Sales Invoice' => 'Fattura di vendita',
+ 'Sales Order' => 'Ordine di vendita',
+ 'Sales Orders' => 'Ordini di vendita',
+ 'Save' => 'Salva',
+ 'Save as new' => 'Salva come nuovo',
+ 'Save to File' => 'Salva su file',
+ 'Screen' => 'Schermo',
+ 'Select all' => 'Seleziona tutto',
+ 'Select from one of the items below' => 'Seleziona uno dei seguenti Articoli',
+ 'Select from one of the names below' => 'Seleziona uno dei seguenti nomi',
+ 'Select from one of the projects below' => 'Seleziona uno dei seguenti progetti',
+ 'Select postscript or PDF!' => 'Scegli tra postscript e PDF!',
+ 'Sell Price' => 'Prezzo di Vendita',
+ 'Send by E-Mail' => 'Spedisci via e-mail',
+ 'Sep' => 'Set',
+ 'September' => 'Settembre',
+ 'Service' => 'Servizio',
+ 'Services' => 'Servizi',
+ 'Setup Templates' => 'Configurazione dei modelli',
+ 'Ship' => 'Invio',
+ 'Ship to' => 'Spedire a',
+ 'Ship via' => 'Porto',
+ 'Short' => 'Corto',
+ 'Signature' => 'Firma',
+ 'Source' => 'Sorgente',
+ 'Standard' => 'Standard',
+ 'Statement' => 'Sollecito',
+ 'Statement Balance' => 'Saldo',
+ 'Statement sent to' => 'Sollecito mandato a',
+ 'Statements sent to printer!' => 'Solleciti mandati in stampa!',
+ 'Stock Assembly' => 'Magazzino Assemblati',
+ 'Stylesheet' => 'Foglio di Stile',
+ 'Subject' => 'Oggetto',
+ 'Subtotal' => 'Totale Parziale',
+ 'System' => 'Sistema',
+ 'Tax' => 'Tassa',
+ 'Tax Accounts' => 'Conti relativi a tasse',
+ 'Tax Included' => 'Tasse Incluse',
+ 'Tax collected' => 'Debito IVA',
+ 'Tax paid' => 'Credito IVA',
+ 'Taxable' => 'Tassabile',
+ 'Template saved!' => 'Modello salvato!',
+ 'Templates' => 'Modelli',
+ 'The following Datasets are not in use and can be deleted' => 'I seguenti datasets non sono in uso e possono essere cancellati',
+ 'The following Datasets need to be updated' => 'I seguenti datasets devono essere aggiornati',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Questo &egrave; un controllo preliminare per verificare le risorse esistenti. Nulla verr&agrave; creato o cancellato in questa fase!',
+ 'To' => 'Al',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Per aggiungere un utente ad un gruppo, modifica i dati dell\'utente, cambia lo username e salva. Un nuovo utente con gli stessi dati verr&agrave; salvato con il nuovo username.',
+ 'Top Level' => 'Livello Top',
+ 'Total' => 'Totale',
+ 'Transaction Date missing!' => 'Manca la data della transazione!',
+ 'Transaction deleted!' => 'Transazione cancellata!',
+ 'Transaction posted!' => 'Transazione salvata!',
+ 'Transaction reversal enforced for all dates' => 'Uso delle transazioni inverse forzato per tutte le date',
+ 'Transaction reversal enforced up to' => 'Uso delle transazioni inverse forzato fino a',
+ 'Transactions' => 'Transazioni',
+ 'Trial Balance' => 'Bilancio di Verifica',
+ 'Unit' => 'Unit&agrave;',
+ 'Unit of measure' => 'Unit&agrave; di misura',
+ 'Update' => 'Aggiorna',
+ 'Update Dataset' => 'Aggiorna il Dataset',
+ 'Updated' => 'Aggiornato',
+ 'Use Templates' => 'Usa Modelli',
+ 'User' => 'Utente',
+ 'User deleted!' => 'Utente cancellato!',
+ 'User saved!' => 'Utente salvato!',
+ 'Vendor' => 'Fornitore',
+ 'Vendor deleted!' => 'Fornitore cancellato!',
+ 'Vendor missing!' => 'Manca il fornitore!',
+ 'Vendor not on file!' => 'Fornitore non in archivio!',
+ 'Vendor saved!' => 'Fornitore salvato!',
+ 'Vendors' => 'Fornitori',
+ 'Version' => 'Versione',
+ 'Weight' => 'Peso',
+ 'Weight Unit' => 'Unit&agrave; di misura',
+ 'What type of item is this?' => 'Che tipo di Articolo &egrave; questo?',
+ 'Yes' => 'Si',
+ 'You did not enter a name!' => 'Non hai inserito il nome!',
+ 'You must enter a host and port for local and remote connections!' => 'Devi inserire un server ed una porta per le connessioni locali e remote!',
+ 'as at' => 'Al',
+ 'days' => 'giorni',
+ 'does not exist' => 'non esiste',
+ 'ea' => 'ci',
+ 'for Period' => 'per il Periodo',
+ 'is already a member!' => '&egrave; gi&agrave; utente!',
+ 'localhost' => 'localhost',
+ 'successfully created!' => 'creato!',
+ 'successfully deleted!' => 'cancellato!',
+ 'website' => 'sito web',
+};
+
+1;
diff --git a/locale/it/am b/locale/it/am
new file mode 100755
index 00000000..527ee22b
--- /dev/null
+++ b/locale/it/am
@@ -0,0 +1,211 @@
+$self{texts} = {
+ 'AP' => 'Debiti Fornitori',
+ 'AR' => 'Crediti Clienti',
+ 'About' => 'Informazioni',
+ 'Account' => 'Conto',
+ 'Account Number' => 'Numero di conto',
+ 'Account Number missing!' => 'Manca il numero di conto!',
+ 'Account Type' => 'Tipo di conto',
+ 'Account Type missing!' => 'Manca il tipo del conto!',
+ 'Account deleted!' => 'Conto cancellato!',
+ 'Account saved!' => 'Conto salvato!',
+ 'Accounting Menu' => 'Menu Contabilit&agrave;',
+ 'Add Account' => 'Aggiungi conto',
+ 'Add GIFI' => 'Aggiungi codice GIFI',
+ 'Address' => 'Indirizzo',
+ 'Amount' => 'Importo',
+ 'Asset' => 'Attivit&agrave;',
+ 'Audit Control' => 'Controllo accessi',
+ 'Backup sent to' => 'Backup inviato a',
+ 'Books are open' => 'I conti sono aperti',
+ 'Business Number' => 'Partita IVA',
+ 'COGS' => 'Costo dei Beni Venduti',
+ 'Cannot delete account!' => 'Non puoi cancellare il conto!',
+ 'Cannot delete default account!' => 'Non puoi cancellare il conto di default!',
+ 'Cannot save account!' => 'Non puoi salvare il conto!',
+ 'Cannot save preferences!' => 'Non puoi salvare le preferenze!',
+ 'Cash' => 'Cassa',
+ 'Chart of Accounts' => 'Piano dei Conti',
+ 'Close Books up to' => 'Chiudi i conti fino a',
+ 'Company' => 'Ragione Sociale',
+ 'Confirm!' => 'Conferma!',
+ 'Continue' => 'Continua',
+ 'Copy to COA' => 'Inserisci come conto',
+ 'Credit' => 'Avere',
+ 'Database Host' => 'Server',
+ 'Dataset' => 'Dataset',
+ 'Date Format' => 'Formato della data',
+ 'Debit' => 'Dare',
+ 'Delete' => 'Cancella',
+ 'Delete Account' => 'Cancella Conto',
+ 'Description' => 'Descrizione',
+ 'Discount' => 'Sconto',
+ 'Dropdown Limit' => 'Limite per i menu a discesa',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Indirizzo e-mail mancante!',
+ 'Edit' => 'Modifica',
+ 'Edit Account' => 'Modifica Conto',
+ 'Edit GIFI' => 'Modifica codice GIFI',
+ 'Edit Preferences for' => 'Modifica Preferenze di',
+ 'Edit Template' => 'Modifica Modello',
+ 'Enforce transaction reversal for all dates' => 'Forza l\'uso delle transazioni inverse per tutte le date',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Inserisci fino a 3 valute separate da ":" (es.: EUR:USD:CAD) per la valuta locale e quelle straniere',
+ 'Equity' => 'Capitale',
+ 'Expense' => 'Costi',
+ 'Expense/Asset' => 'Acquisti/Attivit&agrave;',
+ 'Fax' => 'Fax',
+ 'Foreign Exchange Gain' => 'Guadagno da cambio valuta',
+ 'Foreign Exchange Loss' => 'Perdita da cambio valuta',
+ 'GIFI' => 'Codice GIFI',
+ 'GIFI deleted!' => 'Codice GIFI cancellato!',
+ 'GIFI missing!' => 'Codice GIFI mancante!',
+ 'GIFI saved!' => 'Codice GIFI salvato!',
+ 'GL Transaction' => 'Transazione di Contabilit&agrave; generale',
+ 'Heading' => 'Intestazione',
+ 'ID' => 'ID',
+ 'Include in drop-down menus' => 'Da includere nei menu a discesa dei seguenti moduli',
+ 'Income' => 'Ricavi',
+ 'Inventory' => 'Inventario',
+ 'Invoice' => 'Fattura',
+ 'Is this a summary account to record' => 'Conto di riferimento del modulo:',
+ 'Language' => 'Lingua',
+ 'Last Numbers & Default Accounts' => 'Ultimi numeri e Conti di Default',
+ 'Liability' => 'Passivit&agrave;',
+ 'Licensed to' => 'Dato in Licenza a',
+ 'Link' => 'Collegamenti',
+ 'Name' => 'Nome',
+ 'No' => 'No',
+ 'No email address for' => 'Manca l\'indirizzo e-mail per',
+ 'Number' => 'Partita IVA',
+ 'Number Format' => 'Formato Numerico',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista Etichette',
+ 'Password' => 'Password',
+ 'Payables' => 'Debiti Fornitori',
+ 'Payment' => 'Pagamento',
+ 'Phone' => 'Tel.',
+ 'Postscript' => 'Postscript',
+ 'Preferences saved!' => 'Preferenze Salvate!',
+ 'Print' => 'Stampa',
+ 'Printer' => 'Stampante',
+ 'Purchase Order' => 'Ordine di acquisto',
+ 'Purchase Orders' => 'Ordini di acquisto',
+ 'Rate' => 'Tasso',
+ 'Receivables' => 'Crediti Clienti',
+ 'Reference' => 'Riferimento',
+ 'Retained Earnings' => 'Guadagni',
+ 'Sales Invoice' => 'Fattura di vendita',
+ 'Sales Order' => 'Ordine di vendita',
+ 'Sales Orders' => 'Ordini di vendita',
+ 'Save' => 'Salva',
+ 'Save as new' => 'Salva come nuovo',
+ 'Signature' => 'Firma',
+ 'Stylesheet' => 'Foglio di Stile',
+ 'Tax' => 'Tassa',
+ 'Template saved!' => 'Modello salvato!',
+ 'Transaction reversal enforced for all dates' => 'Uso delle transazioni inverse forzato per tutte le date',
+ 'Transaction reversal enforced up to' => 'Uso delle transazioni inverse forzato fino a',
+ 'Update' => 'Aggiorna',
+ 'User' => 'Utente',
+ 'Version' => 'Versione',
+ 'Weight Unit' => 'Unit&agrave; di misura',
+ 'Yes' => 'Si',
+ 'localhost' => 'localhost',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'aggiungi_conto' => 'add_account',
+ 'continua' => 'continue',
+ 'inserisci_come_conto' => 'copy_to_coa',
+ 'cancella' => 'delete',
+ 'modifica' => 'edit',
+ 'modifica_conto' => 'edit_account',
+ 'salva' => 'save',
+ 'salva_come_nuovo' => 'save_as_new',
+ 'aggiorna' => 'update',
+};
+
+1;
+
diff --git a/locale/it/ap b/locale/it/ap
new file mode 100755
index 00000000..a5af90e7
--- /dev/null
+++ b/locale/it/ap
@@ -0,0 +1,176 @@
+$self{texts} = {
+ 'AP Transaction' => 'Transazione Fornitore',
+ 'AP Transactions' => 'Transazioni Fornitori',
+ 'AR Transaction' => 'Transazione Cliente',
+ 'AR Transactions' => 'Transazioni Clienti',
+ 'Account' => 'Conto',
+ 'Accounting Menu' => 'Menu Contabilit&agrave;',
+ 'Address' => 'Indirizzo',
+ 'Amount' => 'Importo',
+ 'Amount Due' => 'Importo Dovuto',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprile',
+ 'Are you sure you want to delete Transaction' => 'Sei sicuro di voler cancellare la Transazione',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'Non puoi cancellare la transazione',
+ 'Cannot post payment for a closed period!' => 'Non puoi salvare pagamenti per un periodo chiuso!',
+ 'Cannot post transaction for a closed period!' => 'Non puoi salvare una transazione per un periodo chiuso!',
+ 'Cannot post transaction!' => 'Non puoi salvare la transazione!',
+ 'Cc' => 'Cc',
+ 'Check' => 'Assegno',
+ 'Closed' => 'Chiuso',
+ 'Confirm!' => 'Conferma!',
+ 'Continue' => 'Continua',
+ 'Credit' => 'Avere',
+ 'Credit Limit' => 'Fido',
+ 'Curr' => 'Valuta',
+ 'Currency' => 'Valuta',
+ 'Current' => 'Corrente',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => 'Cliente mancante!',
+ 'Customer not on file!' => 'Cliente non sul file!',
+ 'Date' => 'Data',
+ 'Date Paid' => 'Data di pagamento',
+ 'Debit' => 'Dare',
+ 'Dec' => 'Dic',
+ 'December' => 'Dicembre',
+ 'Delete' => 'Cancella',
+ 'Description' => 'Descrizione',
+ 'Due Date' => 'Scadenza Fattura',
+ 'Due Date missing!' => 'Data di Scadenza mancante!',
+ 'E-mail' => 'E-mail',
+ 'Employee' => 'Dipendente',
+ 'Exch' => 'Cambio',
+ 'Feb' => 'Feb',
+ 'February' => 'Febbraio',
+ 'From' => 'Dal',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Includi nel Prospetto',
+ 'Invoice' => 'Fattura',
+ 'Invoice Date' => 'Data Registrazione Fattura',
+ 'Invoice Date missing!' => 'Manca la data della Fattura!',
+ 'Invoice Number' => 'Protocollo Numero',
+ 'Jan' => 'Gen',
+ 'January' => 'Gennaio',
+ 'Jul' => 'Lug',
+ 'July' => 'Luglio',
+ 'Jun' => 'Giu',
+ 'June' => 'Giugno',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mag',
+ 'May ' => 'Mag ',
+ 'Message' => 'Messaggio',
+ 'No.' => 'No.',
+ 'Notes' => 'Note',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembre',
+ 'Number' => 'Partita IVA',
+ 'Oct' => 'Ott',
+ 'October' => 'Ottobre',
+ 'Open' => 'Aperto',
+ 'Order' => 'Ordine',
+ 'Order Number' => 'Numero Fattura Fornitore',
+ 'PDF' => 'PDF',
+ 'Paid' => 'Importo Pagato',
+ 'Payment date missing!' => 'Manca la data del pagamento!',
+ 'Payments' => 'Pagamenti',
+ 'Post' => 'Salva',
+ 'Post as new' => 'Salva come nuovo',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Stampa',
+ 'Project' => 'Progetto',
+ 'Project not on file!' => 'Progetto non archiviato!',
+ 'Receipt' => 'Incasso',
+ 'Reference' => 'Riferimento',
+ 'Remaining' => 'Rimanente',
+ 'Screen' => 'Schermo',
+ 'Select from one of the names below' => 'Seleziona uno dei seguenti nomi',
+ 'Select from one of the projects below' => 'Seleziona uno dei seguenti progetti',
+ 'Select postscript or PDF!' => 'Scegli tra postscript e PDF!',
+ 'Sep' => 'Set',
+ 'September' => 'Settembre',
+ 'Ship to' => 'Spedire a',
+ 'Ship via' => 'Porto',
+ 'Source' => 'Sorgente',
+ 'Subject' => 'Oggetto',
+ 'Subtotal' => 'Totale Parziale',
+ 'Tax' => 'Tassa',
+ 'Tax Included' => 'Tasse Incluse',
+ 'To' => 'Al',
+ 'Total' => 'Totale',
+ 'Transaction deleted!' => 'Transazione cancellata!',
+ 'Transaction posted!' => 'Transazione salvata!',
+ 'Update' => 'Aggiorna',
+ 'Vendor' => 'Fornitore',
+ 'Vendor missing!' => 'Manca il fornitore!',
+ 'Vendor not on file!' => 'Fornitore non in archivio!',
+ 'Yes' => 'Si',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'transazione_fornitore' => 'ap_transaction',
+ 'transazione_cliente' => 'ar_transaction',
+ 'continua' => 'continue',
+ 'cancella' => 'delete',
+ 'salva' => 'post',
+ 'salva_come_nuovo' => 'post_as_new',
+ 'stampa' => 'print',
+ 'spedire_a' => 'ship_to',
+ 'aggiorna' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/it/ar b/locale/it/ar
new file mode 100755
index 00000000..a5af90e7
--- /dev/null
+++ b/locale/it/ar
@@ -0,0 +1,176 @@
+$self{texts} = {
+ 'AP Transaction' => 'Transazione Fornitore',
+ 'AP Transactions' => 'Transazioni Fornitori',
+ 'AR Transaction' => 'Transazione Cliente',
+ 'AR Transactions' => 'Transazioni Clienti',
+ 'Account' => 'Conto',
+ 'Accounting Menu' => 'Menu Contabilit&agrave;',
+ 'Address' => 'Indirizzo',
+ 'Amount' => 'Importo',
+ 'Amount Due' => 'Importo Dovuto',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprile',
+ 'Are you sure you want to delete Transaction' => 'Sei sicuro di voler cancellare la Transazione',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'Non puoi cancellare la transazione',
+ 'Cannot post payment for a closed period!' => 'Non puoi salvare pagamenti per un periodo chiuso!',
+ 'Cannot post transaction for a closed period!' => 'Non puoi salvare una transazione per un periodo chiuso!',
+ 'Cannot post transaction!' => 'Non puoi salvare la transazione!',
+ 'Cc' => 'Cc',
+ 'Check' => 'Assegno',
+ 'Closed' => 'Chiuso',
+ 'Confirm!' => 'Conferma!',
+ 'Continue' => 'Continua',
+ 'Credit' => 'Avere',
+ 'Credit Limit' => 'Fido',
+ 'Curr' => 'Valuta',
+ 'Currency' => 'Valuta',
+ 'Current' => 'Corrente',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => 'Cliente mancante!',
+ 'Customer not on file!' => 'Cliente non sul file!',
+ 'Date' => 'Data',
+ 'Date Paid' => 'Data di pagamento',
+ 'Debit' => 'Dare',
+ 'Dec' => 'Dic',
+ 'December' => 'Dicembre',
+ 'Delete' => 'Cancella',
+ 'Description' => 'Descrizione',
+ 'Due Date' => 'Scadenza Fattura',
+ 'Due Date missing!' => 'Data di Scadenza mancante!',
+ 'E-mail' => 'E-mail',
+ 'Employee' => 'Dipendente',
+ 'Exch' => 'Cambio',
+ 'Feb' => 'Feb',
+ 'February' => 'Febbraio',
+ 'From' => 'Dal',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Includi nel Prospetto',
+ 'Invoice' => 'Fattura',
+ 'Invoice Date' => 'Data Registrazione Fattura',
+ 'Invoice Date missing!' => 'Manca la data della Fattura!',
+ 'Invoice Number' => 'Protocollo Numero',
+ 'Jan' => 'Gen',
+ 'January' => 'Gennaio',
+ 'Jul' => 'Lug',
+ 'July' => 'Luglio',
+ 'Jun' => 'Giu',
+ 'June' => 'Giugno',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mag',
+ 'May ' => 'Mag ',
+ 'Message' => 'Messaggio',
+ 'No.' => 'No.',
+ 'Notes' => 'Note',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembre',
+ 'Number' => 'Partita IVA',
+ 'Oct' => 'Ott',
+ 'October' => 'Ottobre',
+ 'Open' => 'Aperto',
+ 'Order' => 'Ordine',
+ 'Order Number' => 'Numero Fattura Fornitore',
+ 'PDF' => 'PDF',
+ 'Paid' => 'Importo Pagato',
+ 'Payment date missing!' => 'Manca la data del pagamento!',
+ 'Payments' => 'Pagamenti',
+ 'Post' => 'Salva',
+ 'Post as new' => 'Salva come nuovo',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Stampa',
+ 'Project' => 'Progetto',
+ 'Project not on file!' => 'Progetto non archiviato!',
+ 'Receipt' => 'Incasso',
+ 'Reference' => 'Riferimento',
+ 'Remaining' => 'Rimanente',
+ 'Screen' => 'Schermo',
+ 'Select from one of the names below' => 'Seleziona uno dei seguenti nomi',
+ 'Select from one of the projects below' => 'Seleziona uno dei seguenti progetti',
+ 'Select postscript or PDF!' => 'Scegli tra postscript e PDF!',
+ 'Sep' => 'Set',
+ 'September' => 'Settembre',
+ 'Ship to' => 'Spedire a',
+ 'Ship via' => 'Porto',
+ 'Source' => 'Sorgente',
+ 'Subject' => 'Oggetto',
+ 'Subtotal' => 'Totale Parziale',
+ 'Tax' => 'Tassa',
+ 'Tax Included' => 'Tasse Incluse',
+ 'To' => 'Al',
+ 'Total' => 'Totale',
+ 'Transaction deleted!' => 'Transazione cancellata!',
+ 'Transaction posted!' => 'Transazione salvata!',
+ 'Update' => 'Aggiorna',
+ 'Vendor' => 'Fornitore',
+ 'Vendor missing!' => 'Manca il fornitore!',
+ 'Vendor not on file!' => 'Fornitore non in archivio!',
+ 'Yes' => 'Si',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'transazione_fornitore' => 'ap_transaction',
+ 'transazione_cliente' => 'ar_transaction',
+ 'continua' => 'continue',
+ 'cancella' => 'delete',
+ 'salva' => 'post',
+ 'salva_come_nuovo' => 'post_as_new',
+ 'stampa' => 'print',
+ 'spedire_a' => 'ship_to',
+ 'aggiorna' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/it/arap b/locale/it/arap
new file mode 100755
index 00000000..cead41ba
--- /dev/null
+++ b/locale/it/arap
@@ -0,0 +1,48 @@
+$self{texts} = {
+ 'Address' => 'Indirizzo',
+ 'Bcc' => 'Bcc',
+ 'Cc' => 'Cc',
+ 'Continue' => 'Continua',
+ 'Customer not on file!' => 'Cliente non sul file!',
+ 'Date' => 'Data',
+ 'Description' => 'Descrizione',
+ 'E-mail' => 'E-mail',
+ 'Message' => 'Messaggio',
+ 'Number' => 'Partita IVA',
+ 'Print' => 'Stampa',
+ 'Project not on file!' => 'Progetto non archiviato!',
+ 'Reference' => 'Riferimento',
+ 'Select from one of the names below' => 'Seleziona uno dei seguenti nomi',
+ 'Select from one of the projects below' => 'Seleziona uno dei seguenti progetti',
+ 'Subject' => 'Oggetto',
+ 'To' => 'Al',
+ 'Vendor not on file!' => 'Fornitore non in archivio!',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continua' => 'continue',
+};
+
+1;
+
diff --git a/locale/it/arapprn b/locale/it/arapprn
new file mode 100755
index 00000000..c6c08e62
--- /dev/null
+++ b/locale/it/arapprn
@@ -0,0 +1,28 @@
+$self{texts} = {
+ 'Account' => 'Conto',
+ 'Amount' => 'Importo',
+ 'Continue' => 'Continua',
+ 'Date' => 'Data',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'Postscript',
+ 'Screen' => 'Schermo',
+ 'Select postscript or PDF!' => 'Scegli tra postscript e PDF!',
+ 'Source' => 'Sorgente',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'continua' => 'continue',
+};
+
+1;
+
diff --git a/locale/it/bp b/locale/it/bp
new file mode 100755
index 00000000..a820ccbd
--- /dev/null
+++ b/locale/it/bp
@@ -0,0 +1,45 @@
+$self{texts} = {
+ 'Account' => 'Conto',
+ 'Accounting Menu' => 'Menu Contabilit&agrave;',
+ 'Confirm!' => 'Conferma!',
+ 'Continue' => 'Continua',
+ 'Current' => 'Corrente',
+ 'Customer' => 'Cliente',
+ 'Date' => 'Data',
+ 'Employee' => 'Dipendente',
+ 'From' => 'Dal',
+ 'ID' => 'ID',
+ 'Invoice' => 'Fattura',
+ 'Invoice Number' => 'Protocollo Numero',
+ 'Order' => 'Ordine',
+ 'Order Number' => 'Numero Fattura Fornitore',
+ 'Print' => 'Stampa',
+ 'Purchase Orders' => 'Ordini di acquisto',
+ 'Sales Orders' => 'Ordini di vendita',
+ 'Select all' => 'Seleziona tutto',
+ 'To' => 'Al',
+ 'Vendor' => 'Fornitore',
+ 'Yes' => 'Si',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'continua' => 'continue',
+ 'stampa' => 'print',
+ 'seleziona_tutto' => 'select_all',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/it/ca b/locale/it/ca
new file mode 100755
index 00000000..ca324549
--- /dev/null
+++ b/locale/it/ca
@@ -0,0 +1,52 @@
+$self{texts} = {
+ 'Account' => 'Conto',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprile',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Saldo',
+ 'Chart of Accounts' => 'Piano dei Conti',
+ 'Credit' => 'Avere',
+ 'Current' => 'Corrente',
+ 'Date' => 'Data',
+ 'Debit' => 'Dare',
+ 'Dec' => 'Dic',
+ 'December' => 'Dicembre',
+ 'Description' => 'Descrizione',
+ 'Feb' => 'Feb',
+ 'February' => 'Febbraio',
+ 'From' => 'Dal',
+ 'GIFI' => 'Codice GIFI',
+ 'Include in Report' => 'Includi nel Prospetto',
+ 'Jan' => 'Gen',
+ 'January' => 'Gennaio',
+ 'Jul' => 'Lug',
+ 'July' => 'Luglio',
+ 'Jun' => 'Giu',
+ 'June' => 'Giugno',
+ 'List Transactions' => 'Lista Transazioni',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mag',
+ 'May ' => 'Mag ',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembre',
+ 'Oct' => 'Ott',
+ 'October' => 'Ottobre',
+ 'Reference' => 'Riferimento',
+ 'Sep' => 'Set',
+ 'September' => 'Settembre',
+ 'Subtotal' => 'Totale Parziale',
+ 'To' => 'Al',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'lista_transazioni' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/it/cp b/locale/it/cp
new file mode 100755
index 00000000..b78a37b9
--- /dev/null
+++ b/locale/it/cp
@@ -0,0 +1,111 @@
+$self{texts} = {
+ 'AP' => 'Debiti Fornitori',
+ 'AR' => 'Crediti Clienti',
+ 'Account' => 'Conto',
+ 'Accounting Menu' => 'Menu Contabilit&agrave;',
+ 'Address' => 'Indirizzo',
+ 'All' => 'Tutti',
+ 'Amount' => 'Importo',
+ 'Amount Due' => 'Importo Dovuto',
+ 'Bcc' => 'Bcc',
+ 'Cannot post payment for a closed period!' => 'Non puoi salvare pagamenti per un periodo chiuso!',
+ 'Cc' => 'Cc',
+ 'Continue' => 'Continua',
+ 'Currency' => 'Valuta',
+ 'Customer' => 'Cliente',
+ 'Customer not on file!' => 'Cliente non sul file!',
+ 'Date' => 'Data',
+ 'Date missing!' => 'Manca la data!',
+ 'Deposit' => 'Deposito',
+ 'Description' => 'Descrizione',
+ 'Due Date' => 'Scadenza Fattura',
+ 'E-mail' => 'E-mail',
+ 'From' => 'Dal',
+ 'Invoice' => 'Fattura',
+ 'Invoices' => 'Fatture',
+ 'Language' => 'Lingua',
+ 'Message' => 'Messaggio',
+ 'Number' => 'Partita IVA',
+ 'PDF' => 'PDF',
+ 'Payment' => 'Pagamento',
+ 'Payment posted!' => 'Pagamento Salvato',
+ 'Payments' => 'Pagamenti',
+ 'Post' => 'Salva',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Stampa',
+ 'Project not on file!' => 'Progetto non archiviato!',
+ 'Receipt' => 'Incasso',
+ 'Receipts' => 'Incassi',
+ 'Reference' => 'Riferimento',
+ 'Screen' => 'Schermo',
+ 'Select all' => 'Seleziona tutto',
+ 'Select from one of the names below' => 'Seleziona uno dei seguenti nomi',
+ 'Select from one of the projects below' => 'Seleziona uno dei seguenti progetti',
+ 'Select postscript or PDF!' => 'Scegli tra postscript e PDF!',
+ 'Source' => 'Sorgente',
+ 'Subject' => 'Oggetto',
+ 'To' => 'Al',
+ 'Update' => 'Aggiorna',
+ 'Vendor' => 'Fornitore',
+ 'Vendor not on file!' => 'Fornitore non in archivio!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continua' => 'continue',
+ 'salva' => 'post',
+ 'stampa' => 'print',
+ 'seleziona_tutto' => 'select_all',
+ 'aggiorna' => 'update',
+};
+
+1;
+
diff --git a/locale/it/ct b/locale/it/ct
new file mode 100755
index 00000000..b79ae3a2
--- /dev/null
+++ b/locale/it/ct
@@ -0,0 +1,131 @@
+$self{texts} = {
+ 'AP Transaction' => 'Transazione Fornitore',
+ 'AP Transactions' => 'Transazioni Fornitori',
+ 'AR Transaction' => 'Transazione Cliente',
+ 'AR Transactions' => 'Transazioni Clienti',
+ 'Accounting Menu' => 'Menu Contabilit&agrave;',
+ 'Active' => 'Attivo',
+ 'Add Customer' => 'Aggiungi Cliente',
+ 'Add Vendor' => 'Aggiungi Fornitore',
+ 'Address' => 'Indirizzo',
+ 'All' => 'Tutti',
+ 'Amount' => 'Importo',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete customer!' => 'Non puoi cancellare il cliente!',
+ 'Cannot delete vendor!' => 'Non puoi cancellare il fornitore',
+ 'Cc' => 'Cc',
+ 'Closed' => 'Chiuso',
+ 'Contact' => 'Contatto',
+ 'Continue' => 'Continua',
+ 'Credit Limit' => 'Fido',
+ 'Curr' => 'Valuta',
+ 'Currency' => 'Valuta',
+ 'Customer deleted!' => 'Cliente cancellato!',
+ 'Customer saved!' => 'Cliente salvato!',
+ 'Customers' => 'Clienti',
+ 'Delete' => 'Cancella',
+ 'Delivery Date' => 'Data di spedizione',
+ 'Description' => 'Descrizione',
+ 'Discount' => 'Sconto',
+ 'E-mail' => 'E-mail',
+ 'Employee' => 'Dipendente',
+ 'Fax' => 'Fax',
+ 'From' => 'Dal',
+ 'GIFI' => 'Codice GIFI',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Includi nel Prospetto',
+ 'Invoice' => 'Fattura',
+ 'Item not on file!' => 'Articolo non in archivio!',
+ 'Language' => 'Lingua',
+ 'Name' => 'Nome',
+ 'Name missing!' => 'Manca il Nome!',
+ 'No.' => 'No.',
+ 'Notes' => 'Note',
+ 'Number' => 'Partita IVA',
+ 'Open' => 'Aperto',
+ 'Order' => 'Ordine',
+ 'Orphaned' => 'Orfano',
+ 'Phone' => 'Tel.',
+ 'Purchase Order' => 'Ordine di acquisto',
+ 'Purchase Orders' => 'Ordini di acquisto',
+ 'Qty' => 'Q.t&agrave;',
+ 'Sales Invoice' => 'Fattura di vendita',
+ 'Sales Order' => 'Ordine di vendita',
+ 'Sales Orders' => 'Ordini di vendita',
+ 'Save' => 'Salva',
+ 'Save as new' => 'Salva come nuovo',
+ 'Sell Price' => 'Prezzo di Vendita',
+ 'Subtotal' => 'Totale Parziale',
+ 'Tax' => 'Tassa',
+ 'Tax Included' => 'Tasse Incluse',
+ 'Taxable' => 'Tassabile',
+ 'To' => 'Al',
+ 'Total' => 'Totale',
+ 'Unit' => 'Unit&agrave;',
+ 'Update' => 'Aggiorna',
+ 'Vendor deleted!' => 'Fornitore cancellato!',
+ 'Vendor saved!' => 'Fornitore salvato!',
+ 'Vendors' => 'Fornitori',
+ 'days' => 'giorni',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'transazione_fornitore' => 'ap_transaction',
+ 'transazione_cliente' => 'ar_transaction',
+ 'aggiungi_cliente' => 'add_customer',
+ 'aggiungi_fornitore' => 'add_vendor',
+ 'continua' => 'continue',
+ 'cancella' => 'delete',
+ 'ordine_di_acquisto' => 'purchase_order',
+ 'fattura_di_vendita' => 'sales_invoice',
+ 'ordine_di_vendita' => 'sales_order',
+ 'salva' => 'save',
+ 'salva_come_nuovo' => 'save_as_new',
+ 'aggiorna' => 'update',
+};
+
+1;
+
diff --git a/locale/it/gl b/locale/it/gl
new file mode 100755
index 00000000..92b3e108
--- /dev/null
+++ b/locale/it/gl
@@ -0,0 +1,140 @@
+$self{texts} = {
+ 'AP Transaction' => 'Transazione Fornitore',
+ 'AR Transaction' => 'Transazione Cliente',
+ 'Account' => 'Conto',
+ 'Accounting Menu' => 'Menu Contabilit&agrave;',
+ 'Add General Ledger Transaction' => 'Aggiungi Transazione di Contabilità Generale',
+ 'Address' => 'Indirizzo',
+ 'All' => 'Tutti',
+ 'Amount' => 'Importo',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprile',
+ 'Are you sure you want to delete Transaction' => 'Sei sicuro di voler cancellare la Transazione',
+ 'Asset' => 'Attivit&agrave;',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Saldo',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'Non puoi cancellare la transazione',
+ 'Cannot post transaction for a closed period!' => 'Non puoi salvare una transazione per un periodo chiuso!',
+ 'Cannot post transaction!' => 'Non puoi salvare la transazione!',
+ 'Cc' => 'Cc',
+ 'Confirm!' => 'Conferma!',
+ 'Continue' => 'Continua',
+ 'Credit' => 'Avere',
+ 'Current' => 'Corrente',
+ 'Customer not on file!' => 'Cliente non sul file!',
+ 'Date' => 'Data',
+ 'Debit' => 'Dare',
+ 'Dec' => 'Dic',
+ 'December' => 'Dicembre',
+ 'Delete' => 'Cancella',
+ 'Description' => 'Descrizione',
+ 'E-mail' => 'E-mail',
+ 'Edit General Ledger Transaction' => 'Modifica Transazione di Contabilit&agrave; Generale',
+ 'Equity' => 'Capitale',
+ 'Expense' => 'Costi',
+ 'Feb' => 'Feb',
+ 'February' => 'Febbraio',
+ 'From' => 'Dal',
+ 'GIFI' => 'Codice GIFI',
+ 'GL Transaction' => 'Transazione di Contabilit&agrave; generale',
+ 'General Ledger' => 'Contabilit&agrave; generale',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Includi nel Prospetto',
+ 'Income' => 'Ricavi',
+ 'Jan' => 'Gen',
+ 'January' => 'Gennaio',
+ 'Jul' => 'Lug',
+ 'July' => 'Luglio',
+ 'Jun' => 'Giu',
+ 'June' => 'Giugno',
+ 'Liability' => 'Passivit&agrave;',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mag',
+ 'May ' => 'Mag ',
+ 'Message' => 'Messaggio',
+ 'Notes' => 'Note',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembre',
+ 'Number' => 'Partita IVA',
+ 'Oct' => 'Ott',
+ 'October' => 'Ottobre',
+ 'Post' => 'Salva',
+ 'Post as new' => 'Salva come nuovo',
+ 'Print' => 'Stampa',
+ 'Project' => 'Progetto',
+ 'Project not on file!' => 'Progetto non archiviato!',
+ 'Reference' => 'Riferimento',
+ 'Reports' => 'Prospetti',
+ 'Select from one of the names below' => 'Seleziona uno dei seguenti nomi',
+ 'Select from one of the projects below' => 'Seleziona uno dei seguenti progetti',
+ 'Sep' => 'Set',
+ 'September' => 'Settembre',
+ 'Source' => 'Sorgente',
+ 'Subject' => 'Oggetto',
+ 'Subtotal' => 'Totale Parziale',
+ 'To' => 'Al',
+ 'Transaction Date missing!' => 'Manca la data della transazione!',
+ 'Transaction deleted!' => 'Transazione cancellata!',
+ 'Transaction posted!' => 'Transazione salvata!',
+ 'Update' => 'Aggiorna',
+ 'Vendor not on file!' => 'Fornitore non in archivio!',
+ 'Yes' => 'Si',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'transazione_fornitore' => 'ap_transaction',
+ 'transazione_cliente' => 'ar_transaction',
+ 'continua' => 'continue',
+ 'cancella' => 'delete',
+ 'transazione_di_contabilit&agrave;_generale' => 'gl_transaction',
+ 'salva' => 'post',
+ 'salva_come_nuovo' => 'post_as_new',
+ 'aggiorna' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/it/hr b/locale/it/hr
new file mode 100755
index 00000000..8381c7d9
--- /dev/null
+++ b/locale/it/hr
@@ -0,0 +1,73 @@
+$self{texts} = {
+ 'AP' => 'Debiti Fornitori',
+ 'Accounting Menu' => 'Menu Contabilit&agrave;',
+ 'Active' => 'Attivo',
+ 'Address' => 'Indirizzo',
+ 'Administrator' => 'Amministratore',
+ 'All' => 'Tutti',
+ 'Amount' => 'Importo',
+ 'Amount missing!' => 'Manca l\'importo',
+ 'Continue' => 'Continua',
+ 'Delete' => 'Cancella',
+ 'Description' => 'Descrizione',
+ 'E-mail' => 'E-mail',
+ 'Employee' => 'Dipendente',
+ 'Expense' => 'Costi',
+ 'From' => 'Dal',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Includi nel Prospetto',
+ 'Login' => 'Login',
+ 'Name' => 'Nome',
+ 'Name missing!' => 'Manca il Nome!',
+ 'Notes' => 'Note',
+ 'Number' => 'Partita IVA',
+ 'Orphaned' => 'Orfano',
+ 'Rate' => 'Tasso',
+ 'Sales' => 'Vendite',
+ 'Save' => 'Salva',
+ 'Save as new' => 'Salva come nuovo',
+ 'To' => 'Al',
+ 'Update' => 'Aggiorna',
+ 'User' => 'Utente',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'continua' => 'continue',
+ 'cancella' => 'delete',
+ 'salva' => 'save',
+ 'salva_come_nuovo' => 'save_as_new',
+ 'aggiorna' => 'update',
+};
+
+1;
+
diff --git a/locale/it/ic b/locale/it/ic
new file mode 100755
index 00000000..a9f683f8
--- /dev/null
+++ b/locale/it/ic
@@ -0,0 +1,223 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menu Contabilit&agrave;',
+ 'Accounts' => 'Conti',
+ 'Active' => 'Attivo',
+ 'Add' => 'Aggiungi',
+ 'Add Assembly' => 'Aggiungi Assemblato',
+ 'Add Part' => 'Aggiungi Articolo',
+ 'Add Purchase Order' => 'Aggiungi Ordine di acquisto',
+ 'Add Sales Order' => 'Aggiungi Ordine di vendita',
+ 'Add Service' => 'Aggiungi Servizio',
+ 'Address' => 'Indirizzo',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprile',
+ 'Assemblies' => 'Assemblati',
+ 'Assemblies restocked!' => 'Assemblati ricaricati!',
+ 'Attachment' => 'Attachment',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'BOM' => 'BOM',
+ 'Bcc' => 'Bcc',
+ 'Bin' => 'Codice BIN',
+ 'COGS' => 'Costo dei Beni Venduti',
+ 'Cannot delete item!' => 'Non puoi cancellare l\'articolo',
+ 'Cannot stock assemblies!' => 'Non puoi caricare gli assemblati!',
+ 'Cash' => 'Cassa',
+ 'Cc' => 'Cc',
+ 'Closed' => 'Chiuso',
+ 'Contact' => 'Contatto',
+ 'Continue' => 'Continua',
+ 'Copies' => 'Copie',
+ 'Curr' => 'Valuta',
+ 'Currency' => 'Valuta',
+ 'Customer' => 'Cliente',
+ 'Customer not on file!' => 'Cliente non sul file!',
+ 'Date' => 'Data',
+ 'Dec' => 'Dic',
+ 'December' => 'Dicembre',
+ 'Delete' => 'Cancella',
+ 'Delivery Date' => 'Data di spedizione',
+ 'Description' => 'Descrizione',
+ 'Drawing' => 'Disegno',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Indirizzo e-mail mancante!',
+ 'Edit Assembly' => 'Modifica Assemblato',
+ 'Edit Part' => 'Modifica Articolo',
+ 'Edit Service' => 'Modifica Servizio',
+ 'Employee' => 'Dipendente',
+ 'Expense' => 'Costi',
+ 'Extended' => 'Esteso',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febbraio',
+ 'From' => 'Dal',
+ 'Image' => 'Immagine',
+ 'In-line' => 'In-line',
+ 'Include in Report' => 'Includi nel Prospetto',
+ 'Income' => 'Ricavi',
+ 'Individual Items' => 'Articoli Individuali',
+ 'Inventory' => 'Inventario',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'La quantit&agrave; in inventario deve essere zero per poter mettere l\'assemblato come obsoleto!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'La quantit&agrave; in inventario deve essere zero per poter mettere l\'articolo come obsoleto!',
+ 'Invoice' => 'Fattura',
+ 'Invoice Date missing!' => 'Manca la data della Fattura!',
+ 'Invoice Number' => 'Protocollo Numero',
+ 'Invoice Number missing!' => 'Manca il numero della Fattura!',
+ 'Item deleted!' => 'Articolo Cancellato!',
+ 'Item not on file!' => 'Articolo non in archivio!',
+ 'Jan' => 'Gen',
+ 'January' => 'Gennaio',
+ 'Jul' => 'Lug',
+ 'July' => 'Luglio',
+ 'Jun' => 'Giu',
+ 'June' => 'Giugno',
+ 'Last Cost' => 'Ultimo Costo',
+ 'Line Total' => 'Totale Linea',
+ 'Link Accounts' => 'Collegamenti tra Conti',
+ 'List Price' => 'Prezzo di Listino',
+ 'Make' => 'Produttore',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mag',
+ 'May ' => 'Mag ',
+ 'Message' => 'Messaggio',
+ 'Microfiche' => 'Microfiche',
+ 'Model' => 'Modello',
+ 'Name' => 'Nome',
+ 'No.' => 'No.',
+ 'Notes' => 'Note',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembre',
+ 'Number' => 'Partita IVA',
+ 'Number missing in Row' => 'Manca il codice nella riga',
+ 'Obsolete' => 'Obsoleto',
+ 'Oct' => 'Ott',
+ 'October' => 'Ottobre',
+ 'On Hand' => 'Disponibilit&agrave;',
+ 'Open' => 'Aperto',
+ 'Order' => 'Ordine',
+ 'Order Date missing!' => 'Manca la data dell\'ordine',
+ 'Order Number' => 'Numero Fattura Fornitore',
+ 'Order Number missing!' => 'Manca il numero dell\'ordine!',
+ 'Orphaned' => 'Orfano',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista Etichette',
+ 'Packing List Date missing!' => 'Manca la data della Packing List!',
+ 'Packing List Number missing!' => 'Manca il codice della Packing List!',
+ 'Part' => 'Articolo',
+ 'Parts' => 'Articoli',
+ 'Phone' => 'Tel.',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Prezzo',
+ 'Project' => 'Progetto',
+ 'Purchase Order' => 'Ordine di acquisto',
+ 'Purchase Orders' => 'Ordini di acquisto',
+ 'Qty' => 'Q.t&agrave;',
+ 'ROP' => 'Soglia di Riordino',
+ 'Recd' => 'Ricevuto',
+ 'Required by' => 'Necessario dal',
+ 'Sales Invoice' => 'Fattura di vendita',
+ 'Sales Order' => 'Ordine di vendita',
+ 'Sales Orders' => 'Ordini di vendita',
+ 'Save' => 'Salva',
+ 'Save as new' => 'Salva come nuovo',
+ 'Screen' => 'Schermo',
+ 'Select from one of the names below' => 'Seleziona uno dei seguenti nomi',
+ 'Sell Price' => 'Prezzo di Vendita',
+ 'Sep' => 'Set',
+ 'September' => 'Settembre',
+ 'Service' => 'Servizio',
+ 'Services' => 'Servizi',
+ 'Ship' => 'Invio',
+ 'Ship to' => 'Spedire a',
+ 'Short' => 'Corto',
+ 'Stock Assembly' => 'Magazzino Assemblati',
+ 'Subject' => 'Oggetto',
+ 'Subtotal' => 'Totale Parziale',
+ 'Tax' => 'Tassa',
+ 'To' => 'Al',
+ 'Top Level' => 'Livello Top',
+ 'Unit' => 'Unit&agrave;',
+ 'Update' => 'Aggiorna',
+ 'Updated' => 'Aggiornato',
+ 'Vendor' => 'Fornitore',
+ 'Vendor not on file!' => 'Fornitore non in archivio!',
+ 'Weight' => 'Peso',
+ 'What type of item is this?' => 'Che tipo di Articolo &egrave; questo?',
+ 'days' => 'giorni',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'aggiungi_assemblato' => 'add_assembly',
+ 'aggiungi_articolo' => 'add_part',
+ 'aggiungi_servizio' => 'add_service',
+ 'continua' => 'continue',
+ 'cancella' => 'delete',
+ 'modifica_assemblato' => 'edit_assembly',
+ 'modifica_articolo' => 'edit_part',
+ 'modifica_servizio' => 'edit_service',
+ 'salva' => 'save',
+ 'salva_come_nuovo' => 'save_as_new',
+ 'aggiorna' => 'update',
+};
+
+1;
+
diff --git a/locale/it/io b/locale/it/io
new file mode 100755
index 00000000..180653a8
--- /dev/null
+++ b/locale/it/io
@@ -0,0 +1,105 @@
+$self{texts} = {
+ 'Add Purchase Order' => 'Aggiungi Ordine di acquisto',
+ 'Add Sales Order' => 'Aggiungi Ordine di vendita',
+ 'Address' => 'Indirizzo',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprile',
+ 'Attachment' => 'Attachment',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Bin' => 'Codice BIN',
+ 'Cc' => 'Cc',
+ 'Contact' => 'Contatto',
+ 'Continue' => 'Continua',
+ 'Copies' => 'Copie',
+ 'Date' => 'Data',
+ 'Dec' => 'Dic',
+ 'December' => 'Dicembre',
+ 'Delivery Date' => 'Data di spedizione',
+ 'Description' => 'Descrizione',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Indirizzo e-mail mancante!',
+ 'Extended' => 'Esteso',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febbraio',
+ 'In-line' => 'In-line',
+ 'Invoice' => 'Fattura',
+ 'Invoice Date missing!' => 'Manca la data della Fattura!',
+ 'Invoice Number missing!' => 'Manca il numero della Fattura!',
+ 'Item not on file!' => 'Articolo non in archivio!',
+ 'Jan' => 'Gen',
+ 'January' => 'Gennaio',
+ 'Jul' => 'Lug',
+ 'July' => 'Luglio',
+ 'Jun' => 'Giu',
+ 'June' => 'Giugno',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mag',
+ 'May ' => 'Mag ',
+ 'Message' => 'Messaggio',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembre',
+ 'Number' => 'Partita IVA',
+ 'Number missing in Row' => 'Manca il codice nella riga',
+ 'Oct' => 'Ott',
+ 'October' => 'Ottobre',
+ 'Order Date missing!' => 'Manca la data dell\'ordine',
+ 'Order Number missing!' => 'Manca il numero dell\'ordine!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista Etichette',
+ 'Packing List Date missing!' => 'Manca la data della Packing List!',
+ 'Packing List Number missing!' => 'Manca il codice della Packing List!',
+ 'Part' => 'Articolo',
+ 'Phone' => 'Tel.',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Prezzo',
+ 'Project' => 'Progetto',
+ 'Purchase Order' => 'Ordine di acquisto',
+ 'Qty' => 'Q.t&agrave;',
+ 'Recd' => 'Ricevuto',
+ 'Required by' => 'Necessario dal',
+ 'Sales Order' => 'Ordine di vendita',
+ 'Screen' => 'Schermo',
+ 'Sep' => 'Set',
+ 'September' => 'Settembre',
+ 'Service' => 'Servizio',
+ 'Ship' => 'Invio',
+ 'Ship to' => 'Spedire a',
+ 'Subject' => 'Oggetto',
+ 'Subtotal' => 'Totale Parziale',
+ 'To' => 'Al',
+ 'Unit' => 'Unit&agrave;',
+ 'What type of item is this?' => 'Che tipo di Articolo &egrave; questo?',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'continua' => 'continue',
+};
+
+1;
+
diff --git a/locale/it/ir b/locale/it/ir
new file mode 100755
index 00000000..0c6c99d9
--- /dev/null
+++ b/locale/it/ir
@@ -0,0 +1,188 @@
+$self{texts} = {
+ 'Account' => 'Conto',
+ 'Accounting Menu' => 'Menu Contabilit&agrave;',
+ 'Add Purchase Order' => 'Aggiungi Ordine di acquisto',
+ 'Add Sales Order' => 'Aggiungi Ordine di vendita',
+ 'Address' => 'Indirizzo',
+ 'Amount' => 'Importo',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprile',
+ 'Are you sure you want to delete Invoice Number' => 'Sei sicuro di voler cancellare la Fattura numero',
+ 'Attachment' => 'Attachment',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Bin' => 'Codice BIN',
+ 'Cannot delete invoice!' => 'Non puoi cancellare la fattura!',
+ 'Cannot post invoice for a closed period!' => 'Non puoi salvare una transazione per un periodo chiuso!',
+ 'Cannot post invoice!' => 'Non puoi salvare la fattura!',
+ 'Cannot post payment for a closed period!' => 'Non puoi salvare pagamenti per un periodo chiuso!',
+ 'Cc' => 'Cc',
+ 'Confirm!' => 'Conferma!',
+ 'Contact' => 'Contatto',
+ 'Continue' => 'Continua',
+ 'Copies' => 'Copie',
+ 'Credit Limit' => 'Fido',
+ 'Currency' => 'Valuta',
+ 'Customer not on file!' => 'Cliente non sul file!',
+ 'Date' => 'Data',
+ 'Dec' => 'Dic',
+ 'December' => 'Dicembre',
+ 'Delete' => 'Cancella',
+ 'Delivery Date' => 'Data di spedizione',
+ 'Description' => 'Descrizione',
+ 'Due Date' => 'Scadenza Fattura',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Indirizzo e-mail mancante!',
+ 'Exch' => 'Cambio',
+ 'Extended' => 'Esteso',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febbraio',
+ 'In-line' => 'In-line',
+ 'Invoice' => 'Fattura',
+ 'Invoice Date' => 'Data Registrazione Fattura',
+ 'Invoice Date missing!' => 'Manca la data della Fattura!',
+ 'Invoice Number' => 'Protocollo Numero',
+ 'Invoice Number missing!' => 'Manca il numero della Fattura!',
+ 'Invoice deleted!' => 'Fattura Cancellata!',
+ 'Item not on file!' => 'Articolo non in archivio!',
+ 'Jan' => 'Gen',
+ 'January' => 'Gennaio',
+ 'Jul' => 'Lug',
+ 'July' => 'Luglio',
+ 'Jun' => 'Giu',
+ 'June' => 'Giugno',
+ 'Language' => 'Lingua',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mag',
+ 'May ' => 'Mag ',
+ 'Message' => 'Messaggio',
+ 'Notes' => 'Note',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembre',
+ 'Number' => 'Partita IVA',
+ 'Number missing in Row' => 'Manca il codice nella riga',
+ 'Oct' => 'Ott',
+ 'October' => 'Ottobre',
+ 'Order Date missing!' => 'Manca la data dell\'ordine',
+ 'Order Number' => 'Numero Fattura Fornitore',
+ 'Order Number missing!' => 'Manca il numero dell\'ordine!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista Etichette',
+ 'Packing List Date missing!' => 'Manca la data della Packing List!',
+ 'Packing List Number missing!' => 'Manca il codice della Packing List!',
+ 'Part' => 'Articolo',
+ 'Payment date missing!' => 'Manca la data del pagamento!',
+ 'Payments' => 'Pagamenti',
+ 'Phone' => 'Tel.',
+ 'Post' => 'Salva',
+ 'Post as new' => 'Salva come nuovo',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Prezzo',
+ 'Print' => 'Stampa',
+ 'Project' => 'Progetto',
+ 'Project not on file!' => 'Progetto non archiviato!',
+ 'Purchase Order' => 'Ordine di acquisto',
+ 'Qty' => 'Q.t&agrave;',
+ 'Recd' => 'Ricevuto',
+ 'Record in' => 'Registra in',
+ 'Reference' => 'Riferimento',
+ 'Remaining' => 'Rimanente',
+ 'Required by' => 'Necessario dal',
+ 'Sales Order' => 'Ordine di vendita',
+ 'Screen' => 'Schermo',
+ 'Select from one of the names below' => 'Seleziona uno dei seguenti nomi',
+ 'Select from one of the projects below' => 'Seleziona uno dei seguenti progetti',
+ 'Sep' => 'Set',
+ 'September' => 'Settembre',
+ 'Service' => 'Servizio',
+ 'Ship' => 'Invio',
+ 'Ship to' => 'Spedire a',
+ 'Source' => 'Sorgente',
+ 'Subject' => 'Oggetto',
+ 'Subtotal' => 'Totale Parziale',
+ 'Tax Included' => 'Tasse Incluse',
+ 'To' => 'Al',
+ 'Total' => 'Totale',
+ 'Unit' => 'Unit&agrave;',
+ 'Update' => 'Aggiorna',
+ 'Vendor' => 'Fornitore',
+ 'Vendor missing!' => 'Manca il fornitore!',
+ 'Vendor not on file!' => 'Fornitore non in archivio!',
+ 'What type of item is this?' => 'Che tipo di Articolo &egrave; questo?',
+ 'Yes' => 'Si',
+ 'ea' => 'ci',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'continua' => 'continue',
+ 'cancella' => 'delete',
+ 'salva' => 'post',
+ 'salva_come_nuovo' => 'post_as_new',
+ 'ordine_di_acquisto' => 'purchase_order',
+ 'aggiorna' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/it/is b/locale/it/is
new file mode 100755
index 00000000..47df0f37
--- /dev/null
+++ b/locale/it/is
@@ -0,0 +1,195 @@
+$self{texts} = {
+ 'Account' => 'Conto',
+ 'Accounting Menu' => 'Menu Contabilit&agrave;',
+ 'Add Purchase Order' => 'Aggiungi Ordine di acquisto',
+ 'Add Sales Invoice' => 'Aggiungi Fattura di vendita',
+ 'Add Sales Order' => 'Aggiungi Ordine di vendita',
+ 'Address' => 'Indirizzo',
+ 'Amount' => 'Importo',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprile',
+ 'Are you sure you want to delete Invoice Number' => 'Sei sicuro di voler cancellare la Fattura numero',
+ 'Attachment' => 'Attachment',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Bin' => 'Codice BIN',
+ 'Cannot delete invoice!' => 'Non puoi cancellare la fattura!',
+ 'Cannot post invoice for a closed period!' => 'Non puoi salvare una transazione per un periodo chiuso!',
+ 'Cannot post invoice!' => 'Non puoi salvare la fattura!',
+ 'Cannot post payment for a closed period!' => 'Non puoi salvare pagamenti per un periodo chiuso!',
+ 'Cc' => 'Cc',
+ 'Confirm!' => 'Conferma!',
+ 'Contact' => 'Contatto',
+ 'Continue' => 'Continua',
+ 'Copies' => 'Copie',
+ 'Credit Limit' => 'Fido',
+ 'Currency' => 'Valuta',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => 'Cliente mancante!',
+ 'Customer not on file!' => 'Cliente non sul file!',
+ 'Date' => 'Data',
+ 'Dec' => 'Dic',
+ 'December' => 'Dicembre',
+ 'Delete' => 'Cancella',
+ 'Delivery Date' => 'Data di spedizione',
+ 'Description' => 'Descrizione',
+ 'Due Date' => 'Scadenza Fattura',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Indirizzo e-mail mancante!',
+ 'Edit Sales Invoice' => 'Modifica Fattura di Vendita',
+ 'Exch' => 'Cambio',
+ 'Extended' => 'Esteso',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febbraio',
+ 'In-line' => 'In-line',
+ 'Invoice' => 'Fattura',
+ 'Invoice Date' => 'Data Registrazione Fattura',
+ 'Invoice Date missing!' => 'Manca la data della Fattura!',
+ 'Invoice Number' => 'Protocollo Numero',
+ 'Invoice Number missing!' => 'Manca il numero della Fattura!',
+ 'Invoice deleted!' => 'Fattura Cancellata!',
+ 'Item not on file!' => 'Articolo non in archivio!',
+ 'Jan' => 'Gen',
+ 'January' => 'Gennaio',
+ 'Jul' => 'Lug',
+ 'July' => 'Luglio',
+ 'Jun' => 'Giu',
+ 'June' => 'Giugno',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mag',
+ 'May ' => 'Mag ',
+ 'Message' => 'Messaggio',
+ 'Notes' => 'Note',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembre',
+ 'Number' => 'Partita IVA',
+ 'Number missing in Row' => 'Manca il codice nella riga',
+ 'Oct' => 'Ott',
+ 'October' => 'Ottobre',
+ 'Order Date missing!' => 'Manca la data dell\'ordine',
+ 'Order Number' => 'Numero Fattura Fornitore',
+ 'Order Number missing!' => 'Manca il numero dell\'ordine!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista Etichette',
+ 'Packing List Date missing!' => 'Manca la data della Packing List!',
+ 'Packing List Number missing!' => 'Manca il codice della Packing List!',
+ 'Part' => 'Articolo',
+ 'Payment date missing!' => 'Manca la data del pagamento!',
+ 'Payments' => 'Pagamenti',
+ 'Phone' => 'Tel.',
+ 'Post' => 'Salva',
+ 'Post as new' => 'Salva come nuovo',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Prezzo',
+ 'Print' => 'Stampa',
+ 'Project' => 'Progetto',
+ 'Project not on file!' => 'Progetto non archiviato!',
+ 'Purchase Order' => 'Ordine di acquisto',
+ 'Qty' => 'Q.t&agrave;',
+ 'Recd' => 'Ricevuto',
+ 'Record in' => 'Registra in',
+ 'Reference' => 'Riferimento',
+ 'Remaining' => 'Rimanente',
+ 'Required by' => 'Necessario dal',
+ 'Sales Order' => 'Ordine di vendita',
+ 'Screen' => 'Schermo',
+ 'Select from one of the names below' => 'Seleziona uno dei seguenti nomi',
+ 'Select from one of the projects below' => 'Seleziona uno dei seguenti progetti',
+ 'Select postscript or PDF!' => 'Scegli tra postscript e PDF!',
+ 'Sep' => 'Set',
+ 'September' => 'Settembre',
+ 'Service' => 'Servizio',
+ 'Ship' => 'Invio',
+ 'Ship to' => 'Spedire a',
+ 'Ship via' => 'Porto',
+ 'Source' => 'Sorgente',
+ 'Subject' => 'Oggetto',
+ 'Subtotal' => 'Totale Parziale',
+ 'Tax Included' => 'Tasse Incluse',
+ 'To' => 'Al',
+ 'Total' => 'Totale',
+ 'Unit' => 'Unit&agrave;',
+ 'Update' => 'Aggiorna',
+ 'Vendor not on file!' => 'Fornitore non in archivio!',
+ 'What type of item is this?' => 'Che tipo di Articolo &egrave; questo?',
+ 'Yes' => 'Si',
+ 'ea' => 'ci',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'continua' => 'continue',
+ 'cancella' => 'delete',
+ 'e_mail' => 'e_mail',
+ 'salva' => 'post',
+ 'salva_come_nuovo' => 'post_as_new',
+ 'stampa' => 'print',
+ 'ordine_di_vendita' => 'sales_order',
+ 'spedire_a' => 'ship_to',
+ 'aggiorna' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/it/jc b/locale/it/jc
new file mode 100755
index 00000000..e419739a
--- /dev/null
+++ b/locale/it/jc
@@ -0,0 +1,81 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menu Contabilit&agrave;',
+ 'Amount' => 'Importo',
+ 'Closed' => 'Chiuso',
+ 'Confirm!' => 'Conferma!',
+ 'Continue' => 'Continua',
+ 'Current' => 'Corrente',
+ 'Date' => 'Data',
+ 'Date missing!' => 'Manca la data!',
+ 'Delete' => 'Cancella',
+ 'Description' => 'Descrizione',
+ 'Employee' => 'Dipendente',
+ 'From' => 'Dal',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Includi nel Prospetto',
+ 'Notes' => 'Note',
+ 'Open' => 'Aperto',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Stampa',
+ 'Project Number missing!' => 'Manca il codice del progetto!',
+ 'Qty' => 'Q.t&agrave;',
+ 'Save' => 'Salva',
+ 'Save as new' => 'Salva come nuovo',
+ 'Screen' => 'Schermo',
+ 'Select postscript or PDF!' => 'Scegli tra postscript e PDF!',
+ 'Subtotal' => 'Totale Parziale',
+ 'To' => 'Al',
+ 'Total' => 'Totale',
+ 'Update' => 'Aggiorna',
+ 'Yes' => 'Si',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'continua' => 'continue',
+ 'cancella' => 'delete',
+ 'stampa' => 'print',
+ 'salva' => 'save',
+ 'salva_come_nuovo' => 'save_as_new',
+ 'aggiorna' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/it/locales.pl b/locale/it/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/it/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/it/login b/locale/it/login
new file mode 100755
index 00000000..7b33541f
--- /dev/null
+++ b/locale/it/login
@@ -0,0 +1,21 @@
+$self{texts} = {
+ 'Company' => 'Ragione Sociale',
+ 'Continue' => 'Continua',
+ 'Incorrect Dataset version!' => 'Versione del Dataset non corretta!',
+ 'Login' => 'Login',
+ 'Name' => 'Nome',
+ 'Password' => 'Password',
+ 'Version' => 'Versione',
+ 'You did not enter a name!' => 'Non hai inserito il nome!',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ 'login' => 'login',
+};
+
+1;
+
diff --git a/locale/it/menu b/locale/it/menu
new file mode 100755
index 00000000..ede27e40
--- /dev/null
+++ b/locale/it/menu
@@ -0,0 +1,80 @@
+$self{texts} = {
+ 'AP' => 'Debiti Fornitori',
+ 'AP Aging' => 'Partite Aperte',
+ 'AP Transaction' => 'Transazione Fornitore',
+ 'AR' => 'Crediti Clienti',
+ 'AR Aging' => 'Partite Aperte',
+ 'AR Transaction' => 'Transazione Cliente',
+ 'Accounting Menu' => 'Menu Contabilit&agrave;',
+ 'Add Account' => 'Aggiungi conto',
+ 'Add Assembly' => 'Aggiungi Assemblato',
+ 'Add Customer' => 'Aggiungi Cliente',
+ 'Add GIFI' => 'Aggiungi codice GIFI',
+ 'Add Part' => 'Aggiungi Articolo',
+ 'Add Project' => 'Aggiungi Progetto',
+ 'Add Service' => 'Aggiungi Servizio',
+ 'Add Transaction' => 'Aggiungi Transazione',
+ 'Add Vendor' => 'Aggiungi Fornitore',
+ 'Assemblies' => 'Assemblati',
+ 'Audit Control' => 'Controllo accessi',
+ 'Backup' => 'Backup',
+ 'Balance Sheet' => 'Stato Patrimoniale',
+ 'Cash' => 'Cassa',
+ 'Chart of Accounts' => 'Piano dei Conti',
+ 'Check' => 'Assegno',
+ 'Customers' => 'Clienti',
+ 'Description' => 'Descrizione',
+ 'General Ledger' => 'Contabilit&agrave; generale',
+ 'Goods & Services' => 'Beni e Servizi',
+ 'HTML Templates' => 'Modelli HTML',
+ 'Income Statement' => 'Conto Economico',
+ 'Invoice' => 'Fattura',
+ 'LaTeX Templates' => 'Modelli LaTeX',
+ 'Language' => 'Lingua',
+ 'List Accounts' => 'Lista Conti',
+ 'List GIFI' => 'Lista codici GIFI',
+ 'Logout' => 'Logout',
+ 'Open' => 'Aperto',
+ 'Order Entry' => 'Ordini',
+ 'Packing List' => 'Lista Etichette',
+ 'Parts' => 'Articoli',
+ 'Payment' => 'Pagamento',
+ 'Payments' => 'Pagamenti',
+ 'Preferences' => 'Preferenze',
+ 'Print' => 'Stampa',
+ 'Projects' => 'Progetti',
+ 'Purchase Order' => 'Ordine di acquisto',
+ 'Purchase Orders' => 'Ordini di acquisto',
+ 'Receipt' => 'Incasso',
+ 'Receipts' => 'Incassi',
+ 'Reconciliation' => 'Conciliazione',
+ 'Reports' => 'Prospetti',
+ 'Sales Invoice' => 'Fattura di vendita',
+ 'Sales Order' => 'Ordine di vendita',
+ 'Sales Orders' => 'Ordini di vendita',
+ 'Save to File' => 'Salva su file',
+ 'Send by E-Mail' => 'Spedisci via e-mail',
+ 'Services' => 'Servizi',
+ 'Ship' => 'Invio',
+ 'Statement' => 'Sollecito',
+ 'Stock Assembly' => 'Magazzino Assemblati',
+ 'Stylesheet' => 'Foglio di Stile',
+ 'System' => 'Sistema',
+ 'Tax collected' => 'Debito IVA',
+ 'Tax paid' => 'Credito IVA',
+ 'Transactions' => 'Transazioni',
+ 'Trial Balance' => 'Bilancio di Verifica',
+ 'Vendors' => 'Fornitori',
+ 'Version' => 'Versione',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/it/oe b/locale/it/oe
new file mode 100755
index 00000000..007593bd
--- /dev/null
+++ b/locale/it/oe
@@ -0,0 +1,236 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menu Contabilit&agrave;',
+ 'Add Purchase Order' => 'Aggiungi Ordine di acquisto',
+ 'Add Sales Invoice' => 'Aggiungi Fattura di vendita',
+ 'Add Sales Order' => 'Aggiungi Ordine di vendita',
+ 'Address' => 'Indirizzo',
+ 'Amount' => 'Importo',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprile',
+ 'Are you sure you want to delete Order Number' => 'Sei sicuro di volre cancellare l\'ordine numero',
+ 'Attachment' => 'Attachment',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Bin' => 'Codice BIN',
+ 'C' => 'C',
+ 'Cannot delete order!' => 'Non puoi cancellare l\'ordine',
+ 'Cannot save order!' => 'Non puoi salvare l\'ordine!',
+ 'Cc' => 'Cc',
+ 'Closed' => 'Chiuso',
+ 'Confirm!' => 'Conferma!',
+ 'Contact' => 'Contatto',
+ 'Continue' => 'Continua',
+ 'Copies' => 'Copie',
+ 'Credit Limit' => 'Fido',
+ 'Curr' => 'Valuta',
+ 'Currency' => 'Valuta',
+ 'Current' => 'Corrente',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => 'Cliente mancante!',
+ 'Customer not on file!' => 'Cliente non sul file!',
+ 'Date' => 'Data',
+ 'Dec' => 'Dic',
+ 'December' => 'Dicembre',
+ 'Delete' => 'Cancella',
+ 'Delivery Date' => 'Data di spedizione',
+ 'Description' => 'Descrizione',
+ 'Done' => 'Fatto',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Indirizzo e-mail mancante!',
+ 'Edit Purchase Order' => 'Modifica Ordine di acquisto',
+ 'Edit Sales Order' => 'Modifica Ordine di vendita',
+ 'Employee' => 'Dipendente',
+ 'Extended' => 'Esteso',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febbraio',
+ 'From' => 'Dal',
+ 'ID' => 'ID',
+ 'In-line' => 'In-line',
+ 'Include in Report' => 'Includi nel Prospetto',
+ 'Invoice' => 'Fattura',
+ 'Invoice Date missing!' => 'Manca la data della Fattura!',
+ 'Invoice Number missing!' => 'Manca il numero della Fattura!',
+ 'Item not on file!' => 'Articolo non in archivio!',
+ 'Jan' => 'Gen',
+ 'January' => 'Gennaio',
+ 'Jul' => 'Lug',
+ 'July' => 'Luglio',
+ 'Jun' => 'Giu',
+ 'June' => 'Giugno',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mag',
+ 'May ' => 'Mag ',
+ 'Message' => 'Messaggio',
+ 'No.' => 'No.',
+ 'Notes' => 'Note',
+ 'Nothing selected!' => 'Non hai selezionato nulla!',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembre',
+ 'Number' => 'Partita IVA',
+ 'Number missing in Row' => 'Manca il codice nella riga',
+ 'O' => 'O',
+ 'Oct' => 'Ott',
+ 'October' => 'Ottobre',
+ 'Open' => 'Aperto',
+ 'Order' => 'Ordine',
+ 'Order Date' => 'Data dell\'ordine',
+ 'Order Date missing!' => 'Manca la data dell\'ordine',
+ 'Order Number' => 'Numero Fattura Fornitore',
+ 'Order Number missing!' => 'Manca il numero dell\'ordine!',
+ 'Order deleted!' => 'Ordine Cancellato!',
+ 'Order saved!' => 'Ordine Salvato!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista Etichette',
+ 'Packing List Date missing!' => 'Manca la data della Packing List!',
+ 'Packing List Number missing!' => 'Manca il codice della Packing List!',
+ 'Part' => 'Articolo',
+ 'Phone' => 'Tel.',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Prezzo',
+ 'Print' => 'Stampa',
+ 'Project' => 'Progetto',
+ 'Project not on file!' => 'Progetto non archiviato!',
+ 'Purchase Order' => 'Ordine di acquisto',
+ 'Purchase Orders' => 'Ordini di acquisto',
+ 'Qty' => 'Q.t&agrave;',
+ 'Recd' => 'Ricevuto',
+ 'Reference' => 'Riferimento',
+ 'Remaining' => 'Rimanente',
+ 'Required by' => 'Necessario dal',
+ 'Sales Invoice' => 'Fattura di vendita',
+ 'Sales Order' => 'Ordine di vendita',
+ 'Sales Orders' => 'Ordini di vendita',
+ 'Save' => 'Salva',
+ 'Save as new' => 'Salva come nuovo',
+ 'Screen' => 'Schermo',
+ 'Select from one of the names below' => 'Seleziona uno dei seguenti nomi',
+ 'Select from one of the projects below' => 'Seleziona uno dei seguenti progetti',
+ 'Select postscript or PDF!' => 'Scegli tra postscript e PDF!',
+ 'Sep' => 'Set',
+ 'September' => 'Settembre',
+ 'Service' => 'Servizio',
+ 'Ship' => 'Invio',
+ 'Ship to' => 'Spedire a',
+ 'Ship via' => 'Porto',
+ 'Subject' => 'Oggetto',
+ 'Subtotal' => 'Totale Parziale',
+ 'Tax' => 'Tassa',
+ 'Tax Included' => 'Tasse Incluse',
+ 'To' => 'Al',
+ 'Total' => 'Totale',
+ 'Unit' => 'Unit&agrave;',
+ 'Update' => 'Aggiorna',
+ 'Vendor' => 'Fornitore',
+ 'Vendor missing!' => 'Manca il fornitore!',
+ 'Vendor not on file!' => 'Fornitore non in archivio!',
+ 'What type of item is this?' => 'Che tipo di Articolo &egrave; questo?',
+ 'Yes' => 'Si',
+ 'days' => 'giorni',
+ 'ea' => 'ci',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'continua' => 'continue',
+ 'cancella' => 'delete',
+ 'fatto' => 'done',
+ 'e_mail' => 'e_mail',
+ 'stampa' => 'print',
+ 'ordine_di_acquisto' => 'purchase_order',
+ 'fattura_di_vendita' => 'sales_invoice',
+ 'ordine_di_vendita' => 'sales_order',
+ 'salva' => 'save',
+ 'salva_come_nuovo' => 'save_as_new',
+ 'spedire_a' => 'ship_to',
+ 'aggiorna' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/it/pe b/locale/it/pe
new file mode 100755
index 00000000..4f398036
--- /dev/null
+++ b/locale/it/pe
@@ -0,0 +1,107 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menu Contabilit&agrave;',
+ 'Active' => 'Attivo',
+ 'Add' => 'Aggiungi',
+ 'Add Project' => 'Aggiungi Progetto',
+ 'Address' => 'Indirizzo',
+ 'All' => 'Tutti',
+ 'Amount' => 'Importo',
+ 'Bin' => 'Codice BIN',
+ 'Continue' => 'Continua',
+ 'Current' => 'Corrente',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => 'Cliente mancante!',
+ 'Customer not on file!' => 'Cliente non sul file!',
+ 'Date' => 'Data',
+ 'Delete' => 'Cancella',
+ 'Description' => 'Descrizione',
+ 'Edit Project' => 'Modifica Progetto',
+ 'Employee' => 'Dipendente',
+ 'From' => 'Dal',
+ 'Income' => 'Ricavi',
+ 'Language' => 'Lingua',
+ 'Link Accounts' => 'Collegamenti tra Conti',
+ 'List Price' => 'Prezzo di Listino',
+ 'Notes' => 'Note',
+ 'Nothing selected!' => 'Non hai selezionato nulla!',
+ 'Number' => 'Partita IVA',
+ 'Orphaned' => 'Orfano',
+ 'Project' => 'Progetto',
+ 'Project deleted!' => 'Progetto cancellato!',
+ 'Project saved!' => 'Progetto salvato!',
+ 'Projects' => 'Progetti',
+ 'Qty' => 'Q.t&agrave;',
+ 'Save' => 'Salva',
+ 'Select from one of the names below' => 'Seleziona uno dei seguenti nomi',
+ 'Sell Price' => 'Prezzo di Vendita',
+ 'Tax' => 'Tassa',
+ 'To' => 'Al',
+ 'Unit' => 'Unit&agrave;',
+ 'Update' => 'Aggiorna',
+ 'Updated' => 'Aggiornato',
+ 'Vendor' => 'Fornitore',
+ 'Vendor not on file!' => 'Fornitore non in archivio!',
+ 'Weight' => 'Peso',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'aggiungi_progetto' => 'add_project',
+ 'continua' => 'continue',
+ 'cancella' => 'delete',
+ 'salva' => 'save',
+ 'aggiorna' => 'update',
+};
+
+1;
+
diff --git a/locale/it/pos b/locale/it/pos
new file mode 100755
index 00000000..0bbbc1c6
--- /dev/null
+++ b/locale/it/pos
@@ -0,0 +1,62 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menu Contabilit&agrave;',
+ 'Amount' => 'Importo',
+ 'Cannot post transaction!' => 'Non puoi salvare la transazione!',
+ 'Continue' => 'Continua',
+ 'Credit Limit' => 'Fido',
+ 'Currency' => 'Valuta',
+ 'Current' => 'Corrente',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => 'Cliente mancante!',
+ 'Delete' => 'Cancella',
+ 'Description' => 'Descrizione',
+ 'Extended' => 'Esteso',
+ 'From' => 'Dal',
+ 'Language' => 'Lingua',
+ 'Number' => 'Partita IVA',
+ 'Open' => 'Aperto',
+ 'Post' => 'Salva',
+ 'Price' => 'Prezzo',
+ 'Print' => 'Stampa',
+ 'Qty' => 'Q.t&agrave;',
+ 'Receipts' => 'Incassi',
+ 'Record in' => 'Registra in',
+ 'Remaining' => 'Rimanente',
+ 'Screen' => 'Schermo',
+ 'Source' => 'Sorgente',
+ 'Subtotal' => 'Totale Parziale',
+ 'Tax Included' => 'Tasse Incluse',
+ 'To' => 'Al',
+ 'Total' => 'Totale',
+ 'Unit' => 'Unit&agrave;',
+ 'Update' => 'Aggiorna',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'continua' => 'continue',
+ 'cancella' => 'delete',
+ 'salva' => 'post',
+ 'stampa' => 'print',
+ 'aggiorna' => 'update',
+};
+
+1;
+
diff --git a/locale/it/ps b/locale/it/ps
new file mode 100755
index 00000000..09c97c7d
--- /dev/null
+++ b/locale/it/ps
@@ -0,0 +1,284 @@
+$self{texts} = {
+ 'AP Aging' => 'Partite Aperte',
+ 'AP Transaction' => 'Transazione Fornitore',
+ 'AP Transactions' => 'Transazioni Fornitori',
+ 'AR Aging' => 'Partite Aperte',
+ 'AR Transaction' => 'Transazione Cliente',
+ 'AR Transactions' => 'Transazioni Clienti',
+ 'Account' => 'Conto',
+ 'Account Number' => 'Numero di conto',
+ 'Accounting Menu' => 'Menu Contabilit&agrave;',
+ 'Accounts' => 'Conti',
+ 'Add Purchase Order' => 'Aggiungi Ordine di acquisto',
+ 'Add Sales Invoice' => 'Aggiungi Fattura di vendita',
+ 'Add Sales Order' => 'Aggiungi Ordine di vendita',
+ 'Address' => 'Indirizzo',
+ 'Amount' => 'Importo',
+ 'Amount Due' => 'Importo Dovuto',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprile',
+ 'Are you sure you want to delete Invoice Number' => 'Sei sicuro di voler cancellare la Fattura numero',
+ 'Are you sure you want to delete Transaction' => 'Sei sicuro di voler cancellare la Transazione',
+ 'Attachment' => 'Attachment',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Saldo',
+ 'Balance Sheet' => 'Stato Patrimoniale',
+ 'Bcc' => 'Bcc',
+ 'Bin' => 'Codice BIN',
+ 'Cannot delete invoice!' => 'Non puoi cancellare la fattura!',
+ 'Cannot delete transaction!' => 'Non puoi cancellare la transazione',
+ 'Cannot post invoice for a closed period!' => 'Non puoi salvare una transazione per un periodo chiuso!',
+ 'Cannot post invoice!' => 'Non puoi salvare la fattura!',
+ 'Cannot post payment for a closed period!' => 'Non puoi salvare pagamenti per un periodo chiuso!',
+ 'Cannot post transaction for a closed period!' => 'Non puoi salvare una transazione per un periodo chiuso!',
+ 'Cannot post transaction!' => 'Non puoi salvare la transazione!',
+ 'Cash' => 'Cassa',
+ 'Cc' => 'Cc',
+ 'Check' => 'Assegno',
+ 'Closed' => 'Chiuso',
+ 'Compare to' => 'Confronta con',
+ 'Confirm!' => 'Conferma!',
+ 'Contact' => 'Contatto',
+ 'Continue' => 'Continua',
+ 'Copies' => 'Copie',
+ 'Credit' => 'Avere',
+ 'Credit Limit' => 'Fido',
+ 'Curr' => 'Valuta',
+ 'Currency' => 'Valuta',
+ 'Current' => 'Corrente',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => 'Cliente mancante!',
+ 'Customer not on file!' => 'Cliente non sul file!',
+ 'Date' => 'Data',
+ 'Date Paid' => 'Data di pagamento',
+ 'Debit' => 'Dare',
+ 'Dec' => 'Dic',
+ 'December' => 'Dicembre',
+ 'Decimalplaces' => 'Numero di decimali',
+ 'Delete' => 'Cancella',
+ 'Delivery Date' => 'Data di spedizione',
+ 'Description' => 'Descrizione',
+ 'Due Date' => 'Scadenza Fattura',
+ 'Due Date missing!' => 'Data di Scadenza mancante!',
+ 'E-mail' => 'E-mail',
+ 'E-mail Statement to' => 'Manda il sollecito via e-mail a',
+ 'E-mail address missing!' => 'Indirizzo e-mail mancante!',
+ 'Edit Sales Invoice' => 'Modifica Fattura di Vendita',
+ 'Employee' => 'Dipendente',
+ 'Exch' => 'Cambio',
+ 'Extended' => 'Esteso',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febbraio',
+ 'From' => 'Dal',
+ 'GIFI' => 'Codice GIFI',
+ 'Heading' => 'Intestazione',
+ 'ID' => 'ID',
+ 'In-line' => 'In-line',
+ 'Include in Report' => 'Includi nel Prospetto',
+ 'Income Statement' => 'Conto Economico',
+ 'Invoice' => 'Fattura',
+ 'Invoice Date' => 'Data Registrazione Fattura',
+ 'Invoice Date missing!' => 'Manca la data della Fattura!',
+ 'Invoice Number' => 'Protocollo Numero',
+ 'Invoice Number missing!' => 'Manca il numero della Fattura!',
+ 'Invoice deleted!' => 'Fattura Cancellata!',
+ 'Item not on file!' => 'Articolo non in archivio!',
+ 'Jan' => 'Gen',
+ 'January' => 'Gennaio',
+ 'Jul' => 'Lug',
+ 'July' => 'Luglio',
+ 'Jun' => 'Giu',
+ 'June' => 'Giugno',
+ 'Language' => 'Lingua',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mag',
+ 'May ' => 'Mag ',
+ 'Message' => 'Messaggio',
+ 'N/A' => 'N/A',
+ 'No.' => 'No.',
+ 'Notes' => 'Note',
+ 'Nothing selected!' => 'Non hai selezionato nulla!',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembre',
+ 'Number' => 'Partita IVA',
+ 'Number missing in Row' => 'Manca il codice nella riga',
+ 'Oct' => 'Ott',
+ 'October' => 'Ottobre',
+ 'Open' => 'Aperto',
+ 'Order' => 'Ordine',
+ 'Order Date missing!' => 'Manca la data dell\'ordine',
+ 'Order Number' => 'Numero Fattura Fornitore',
+ 'Order Number missing!' => 'Manca il numero dell\'ordine!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista Etichette',
+ 'Packing List Date missing!' => 'Manca la data della Packing List!',
+ 'Packing List Number missing!' => 'Manca il codice della Packing List!',
+ 'Paid' => 'Importo Pagato',
+ 'Part' => 'Articolo',
+ 'Payment date missing!' => 'Manca la data del pagamento!',
+ 'Payments' => 'Pagamenti',
+ 'Phone' => 'Tel.',
+ 'Post' => 'Salva',
+ 'Post as new' => 'Salva come nuovo',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Prezzo',
+ 'Print' => 'Stampa',
+ 'Project' => 'Progetto',
+ 'Project not on file!' => 'Progetto non archiviato!',
+ 'Purchase Order' => 'Ordine di acquisto',
+ 'Qty' => 'Q.t&agrave;',
+ 'Recd' => 'Ricevuto',
+ 'Receipt' => 'Incasso',
+ 'Receipts' => 'Incassi',
+ 'Record in' => 'Registra in',
+ 'Reference' => 'Riferimento',
+ 'Remaining' => 'Rimanente',
+ 'Report for' => 'Prospetto per',
+ 'Required by' => 'Necessario dal',
+ 'Sales Order' => 'Ordine di vendita',
+ 'Screen' => 'Schermo',
+ 'Select all' => 'Seleziona tutto',
+ 'Select from one of the names below' => 'Seleziona uno dei seguenti nomi',
+ 'Select from one of the projects below' => 'Seleziona uno dei seguenti progetti',
+ 'Select postscript or PDF!' => 'Scegli tra postscript e PDF!',
+ 'Sep' => 'Set',
+ 'September' => 'Settembre',
+ 'Service' => 'Servizio',
+ 'Ship' => 'Invio',
+ 'Ship to' => 'Spedire a',
+ 'Ship via' => 'Porto',
+ 'Source' => 'Sorgente',
+ 'Standard' => 'Standard',
+ 'Statement' => 'Sollecito',
+ 'Statement sent to' => 'Sollecito mandato a',
+ 'Statements sent to printer!' => 'Solleciti mandati in stampa!',
+ 'Subject' => 'Oggetto',
+ 'Subtotal' => 'Totale Parziale',
+ 'Tax' => 'Tassa',
+ 'Tax Included' => 'Tasse Incluse',
+ 'Tax collected' => 'Debito IVA',
+ 'Tax paid' => 'Credito IVA',
+ 'To' => 'Al',
+ 'Total' => 'Totale',
+ 'Transaction deleted!' => 'Transazione cancellata!',
+ 'Transaction posted!' => 'Transazione salvata!',
+ 'Trial Balance' => 'Bilancio di Verifica',
+ 'Unit' => 'Unit&agrave;',
+ 'Update' => 'Aggiorna',
+ 'Vendor' => 'Fornitore',
+ 'Vendor missing!' => 'Manca il fornitore!',
+ 'Vendor not on file!' => 'Fornitore non in archivio!',
+ 'What type of item is this?' => 'Che tipo di Articolo &egrave; questo?',
+ 'Yes' => 'Si',
+ 'as at' => 'Al',
+ 'ea' => 'ci',
+ 'for Period' => 'per il Periodo',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'transazione_fornitore' => 'ap_transaction',
+ 'transazione_cliente' => 'ar_transaction',
+ 'continua' => 'continue',
+ 'cancella' => 'delete',
+ 'e_mail' => 'e_mail',
+ 'salva' => 'post',
+ 'salva_come_nuovo' => 'post_as_new',
+ 'stampa' => 'print',
+ 'ordine_di_vendita' => 'sales_order',
+ 'seleziona_tutto' => 'select_all',
+ 'spedire_a' => 'ship_to',
+ 'aggiorna' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/it/pw b/locale/it/pw
new file mode 100755
index 00000000..1787e9c9
--- /dev/null
+++ b/locale/it/pw
@@ -0,0 +1,12 @@
+$self{texts} = {
+ 'Continue' => 'Continua',
+ 'Password' => 'Password',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'continua' => 'continue',
+};
+
+1;
+
diff --git a/locale/it/qe b/locale/it/qe
new file mode 100755
index 00000000..7153d1ec
--- /dev/null
+++ b/locale/it/qe
@@ -0,0 +1,199 @@
+$self{texts} = {
+ 'Add' => 'Aggiungi',
+ 'Add Purchase Invoice' => 'Aggiungi Fattura di acquisto',
+ 'Add Purchase Order' => 'Aggiungi Ordine di acquisto',
+ 'Add Sales Invoice' => 'Aggiungi Fattura di vendita',
+ 'Add Sales Order' => 'Aggiungi Ordine di vendita',
+ 'Address' => 'Indirizzo',
+ 'Amount' => 'Importo',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprile',
+ 'Are you sure you want to delete Order Number' => 'Sei sicuro di volre cancellare l\'ordine numero',
+ 'Attachment' => 'Attachment',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Bin' => 'Codice BIN',
+ 'C' => 'C',
+ 'Cannot delete order!' => 'Non puoi cancellare l\'ordine',
+ 'Cannot save order!' => 'Non puoi salvare l\'ordine!',
+ 'Cc' => 'Cc',
+ 'Closed' => 'Chiuso',
+ 'Confirm!' => 'Conferma!',
+ 'Contact' => 'Contatto',
+ 'Continue' => 'Continua',
+ 'Copies' => 'Copie',
+ 'Credit Limit' => 'Fido',
+ 'Curr' => 'Valuta',
+ 'Currency' => 'Valuta',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => 'Cliente mancante!',
+ 'Customer not on file!' => 'Cliente non sul file!',
+ 'Date' => 'Data',
+ 'Dec' => 'Dic',
+ 'December' => 'Dicembre',
+ 'Delete' => 'Cancella',
+ 'Delivery Date' => 'Data di spedizione',
+ 'Description' => 'Descrizione',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Indirizzo e-mail mancante!',
+ 'Edit Purchase Order' => 'Modifica Ordine di acquisto',
+ 'Edit Sales Order' => 'Modifica Ordine di vendita',
+ 'Exchangerate' => 'Tasso di Cambio',
+ 'Exchangerate missing!' => 'Manca il Tasso di Cambio!',
+ 'Extended' => 'Esteso',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febbraio',
+ 'From' => 'Dal',
+ 'ID' => 'ID',
+ 'In-line' => 'In-line',
+ 'Include in Report' => 'Includi nel Prospetto',
+ 'Invoice' => 'Fattura',
+ 'Invoice Date missing!' => 'Manca la data della Fattura!',
+ 'Invoice Number missing!' => 'Manca il numero della Fattura!',
+ 'Item not on file!' => 'Articolo non in archivio!',
+ 'Jan' => 'Gen',
+ 'January' => 'Gennaio',
+ 'Jul' => 'Lug',
+ 'July' => 'Luglio',
+ 'Jun' => 'Giu',
+ 'June' => 'Giugno',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mag',
+ 'May ' => 'Mag ',
+ 'Message' => 'Messaggio',
+ 'Name' => 'Nome',
+ 'No.' => 'No.',
+ 'Notes' => 'Note',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembre',
+ 'Number' => 'Partita IVA',
+ 'Number missing in Row' => 'Manca il codice nella riga',
+ 'O' => 'O',
+ 'Oct' => 'Ott',
+ 'October' => 'Ottobre',
+ 'Open' => 'Aperto',
+ 'Order' => 'Ordine',
+ 'Order Date' => 'Data dell\'ordine',
+ 'Order Date missing!' => 'Manca la data dell\'ordine',
+ 'Order Number' => 'Ordine Numero',
+ 'Order Number missing!' => 'Manca il numero dell\'ordine!',
+ 'Order deleted!' => 'Ordine Cancellato!',
+ 'Order saved!' => 'Ordine Salvato!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista Etichette',
+ 'Packing List Date missing!' => 'Manca la data della Packing List!',
+ 'Packing List Number missing!' => 'Manca il codice della Packing List!',
+ 'Part' => 'Articolo',
+ 'Phone' => 'Tel.',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Prezzo',
+ 'Print' => 'Stampa',
+ 'Printer' => 'Stampante',
+ 'Project' => 'Progetto',
+ 'Project not on file!' => 'Progetto non archiviato!',
+ 'Purchase Order' => 'Ordine di acquisto',
+ 'Purchase Orders' => 'Ordini di acquisto',
+ 'Qty' => 'Q.t&agrave;',
+ 'Recd' => 'Ricevuto',
+ 'Remaining' => 'Rimanente',
+ 'Required by' => 'Necessario dal',
+ 'Sales Order' => 'Ordine di vendita',
+ 'Sales Orders' => 'Ordini di vendita',
+ 'Save' => 'Salva',
+ 'Save as new' => 'Salva come nuovo',
+ 'Screen' => 'Schermo',
+ 'Select from one of the items below' => 'Seleziona uno dei seguenti Articoli',
+ 'Select from one of the names below' => 'Seleziona uno dei seguenti nomi',
+ 'Select from one of the projects below' => 'Seleziona uno dei seguenti progetti',
+ 'Select postscript or PDF!' => 'Scegli tra postscript e PDF!',
+ 'Sep' => 'Set',
+ 'September' => 'Settembre',
+ 'Service' => 'Servizio',
+ 'Ship' => 'Invio',
+ 'Ship to' => 'Spedire a',
+ 'Ship via' => 'Porto',
+ 'Subject' => 'Oggetto',
+ 'Subtotal' => 'Totale Parziale',
+ 'Tax' => 'Tassa',
+ 'Tax Included' => 'Tasse Incluse',
+ 'Terms' => 'Termini: Netto',
+ 'To' => 'Al',
+ 'Total' => 'Totale',
+ 'Unit' => 'Unit&agrave;',
+ 'Update' => 'Aggiorna',
+ 'Vendor' => 'Fornitore',
+ 'Vendor missing!' => 'Manca il fornitore!',
+ 'Vendor not on file!' => 'Fornitore non in archivio!',
+ 'What type of item is this?' => 'Che tipo di Articolo &egrave; questo?',
+ 'Yes' => 'Si',
+ 'days' => 'giorni',
+ 'ea' => 'ci',
+ 'emailed to' => 'Mandato via e-mail a',
+ 'sent to printer' => 'mandato in stampa',
+};
+
+$self{subs} = {
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order' => 'order',
+ 'order_links' => 'order_links',
+ 'orders' => 'orders',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_invoice' => 'purchase_invoice',
+ 'sales_invoice' => 'sales_invoice',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'yes' => 'yes',
+ 'aggiungi' => 'add',
+ 'continua' => 'continue',
+ 'cancella' => 'delete',
+ 'e_mail' => 'e_mail',
+ 'fattura' => 'invoice',
+ 'stampa' => 'print',
+ 'salva' => 'save',
+ 'salva_come_nuovo' => 'save_as_new',
+ 'spedire_a' => 'ship_to',
+ 'aggiorna' => 'update',
+ 'si' => 'yes',
+};
+
+1;
diff --git a/locale/it/rc b/locale/it/rc
new file mode 100755
index 00000000..4e7c9689
--- /dev/null
+++ b/locale/it/rc
@@ -0,0 +1,67 @@
+$self{texts} = {
+ 'Account' => 'Conto',
+ 'Accounting Menu' => 'Menu Contabilit&agrave;',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprile',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Saldo',
+ 'Continue' => 'Continua',
+ 'Credit' => 'Avere',
+ 'Current' => 'Corrente',
+ 'Date' => 'Data',
+ 'Debit' => 'Dare',
+ 'Dec' => 'Dic',
+ 'December' => 'Dicembre',
+ 'Description' => 'Descrizione',
+ 'Difference' => 'Differenza',
+ 'Done' => 'Fatto',
+ 'Feb' => 'Feb',
+ 'February' => 'Febbraio',
+ 'From' => 'Dal',
+ 'Jan' => 'Gen',
+ 'January' => 'Gennaio',
+ 'Jul' => 'Lug',
+ 'July' => 'Luglio',
+ 'Jun' => 'Giu',
+ 'June' => 'Giugno',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mag',
+ 'May ' => 'Mag ',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembre',
+ 'Oct' => 'Ott',
+ 'October' => 'Ottobre',
+ 'Out of balance!' => 'Non conciliato!',
+ 'Reconciliation' => 'Conciliazione',
+ 'Select all' => 'Seleziona tutto',
+ 'Sep' => 'Set',
+ 'September' => 'Settembre',
+ 'Source' => 'Sorgente',
+ 'Statement Balance' => 'Saldo',
+ 'To' => 'Al',
+ 'Update' => 'Aggiorna',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'continua' => 'continue',
+ 'fatto' => 'done',
+ 'seleziona_tutto' => 'select_all',
+ 'aggiorna' => 'update',
+};
+
+1;
+
diff --git a/locale/it/rp b/locale/it/rp
new file mode 100755
index 00000000..2b3724ce
--- /dev/null
+++ b/locale/it/rp
@@ -0,0 +1,157 @@
+$self{texts} = {
+ 'AP Aging' => 'Partite Aperte',
+ 'AR Aging' => 'Partite Aperte',
+ 'Account' => 'Conto',
+ 'Account Number' => 'Numero di conto',
+ 'Accounting Menu' => 'Menu Contabilit&agrave;',
+ 'Accounts' => 'Conti',
+ 'Address' => 'Indirizzo',
+ 'Amount' => 'Importo',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprile',
+ 'Attachment' => 'Attachment',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Saldo',
+ 'Balance Sheet' => 'Stato Patrimoniale',
+ 'Bcc' => 'Bcc',
+ 'Cash' => 'Cassa',
+ 'Cc' => 'Cc',
+ 'Compare to' => 'Confronta con',
+ 'Continue' => 'Continua',
+ 'Copies' => 'Copie',
+ 'Credit' => 'Avere',
+ 'Curr' => 'Valuta',
+ 'Current' => 'Corrente',
+ 'Customer' => 'Cliente',
+ 'Customer not on file!' => 'Cliente non sul file!',
+ 'Date' => 'Data',
+ 'Debit' => 'Dare',
+ 'Dec' => 'Dic',
+ 'December' => 'Dicembre',
+ 'Decimalplaces' => 'Numero di decimali',
+ 'Description' => 'Descrizione',
+ 'Due Date' => 'Scadenza Fattura',
+ 'E-mail' => 'E-mail',
+ 'E-mail Statement to' => 'Manda il sollecito via e-mail a',
+ 'E-mail address missing!' => 'Indirizzo e-mail mancante!',
+ 'Feb' => 'Feb',
+ 'February' => 'Febbraio',
+ 'From' => 'Dal',
+ 'GIFI' => 'Codice GIFI',
+ 'Heading' => 'Intestazione',
+ 'ID' => 'ID',
+ 'In-line' => 'In-line',
+ 'Include in Report' => 'Includi nel Prospetto',
+ 'Income Statement' => 'Conto Economico',
+ 'Invoice' => 'Fattura',
+ 'Jan' => 'Gen',
+ 'January' => 'Gennaio',
+ 'Jul' => 'Lug',
+ 'July' => 'Luglio',
+ 'Jun' => 'Giu',
+ 'June' => 'Giugno',
+ 'Language' => 'Lingua',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mag',
+ 'May ' => 'Mag ',
+ 'Message' => 'Messaggio',
+ 'N/A' => 'N/A',
+ 'Nothing selected!' => 'Non hai selezionato nulla!',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembre',
+ 'Number' => 'Partita IVA',
+ 'Oct' => 'Ott',
+ 'October' => 'Ottobre',
+ 'Order' => 'Ordine',
+ 'PDF' => 'PDF',
+ 'Payments' => 'Pagamenti',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Stampa',
+ 'Project' => 'Progetto',
+ 'Project not on file!' => 'Progetto non archiviato!',
+ 'Receipts' => 'Incassi',
+ 'Reference' => 'Riferimento',
+ 'Report for' => 'Prospetto per',
+ 'Screen' => 'Schermo',
+ 'Select all' => 'Seleziona tutto',
+ 'Select from one of the names below' => 'Seleziona uno dei seguenti nomi',
+ 'Select from one of the projects below' => 'Seleziona uno dei seguenti progetti',
+ 'Select postscript or PDF!' => 'Scegli tra postscript e PDF!',
+ 'Sep' => 'Set',
+ 'September' => 'Settembre',
+ 'Source' => 'Sorgente',
+ 'Standard' => 'Standard',
+ 'Statement' => 'Sollecito',
+ 'Statement sent to' => 'Sollecito mandato a',
+ 'Statements sent to printer!' => 'Solleciti mandati in stampa!',
+ 'Subject' => 'Oggetto',
+ 'Subtotal' => 'Totale Parziale',
+ 'Tax' => 'Tassa',
+ 'Tax collected' => 'Debito IVA',
+ 'Tax paid' => 'Credito IVA',
+ 'To' => 'Al',
+ 'Total' => 'Totale',
+ 'Trial Balance' => 'Bilancio di Verifica',
+ 'Vendor' => 'Fornitore',
+ 'Vendor not on file!' => 'Fornitore non in archivio!',
+ 'as at' => 'Al',
+ 'for Period' => 'per il Periodo',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continua' => 'continue',
+ 'e_mail' => 'e_mail',
+ 'stampa' => 'print',
+ 'seleziona_tutto' => 'select_all',
+};
+
+1;
+
diff --git a/locale/lt/COPYING b/locale/lt/COPYING
new file mode 100755
index 00000000..ce5aa1f4
--- /dev/null
+++ b/locale/lt/COPYING
@@ -0,0 +1,23 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2003
+#
+# Lithuanian texts:
+#
+# Author:
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/lt/LANGUAGE b/locale/lt/LANGUAGE
new file mode 100755
index 00000000..0e1e2ac2
--- /dev/null
+++ b/locale/lt/LANGUAGE
@@ -0,0 +1 @@
+Lithuanian (ISO-8859-13)
diff --git a/locale/lt/aa b/locale/lt/aa
new file mode 100755
index 00000000..a5974dc8
--- /dev/null
+++ b/locale/lt/aa
@@ -0,0 +1,133 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'AP Transaction' => 'Pirkimo Operacijà',
+ 'AP Transactions' => 'Pirkimo Operacijos',
+ 'AR Transaction' => 'Pardavimo Operacijà',
+ 'AR Transactions' => 'Pardavimo Operacijos',
+ 'Account' => 'Sàskaita',
+ 'Accounting Menu' => 'Apskaitos Menu',
+ 'Amount' => 'Suma',
+ 'Amount Due' => 'Suma iki',
+ 'Apr' => 'Bal',
+ 'April' => 'Balandis',
+ 'Are you sure you want to delete Transaction' => 'Ar Jus tikrai norite iðtrinti operacijà?',
+ 'Aug' => 'Rug',
+ 'August' => 'Rugpjûtis',
+ 'Cannot delete transaction!' => 'Neámanoma iðtrinti operacijos!',
+ 'Cannot post payment for a closed period!' => 'Neámanoma patvirtinti mokëjimo uþdarajam periodui!',
+ 'Cannot post transaction for a closed period!' => 'Neámanoma patvirtinti operacijos uþdarajam periodui!',
+ 'Cannot post transaction!' => 'Neámanoma patvirtinti operacijos!',
+ 'Check' => 'Èekis',
+ 'Closed' => 'Uþdaryta',
+ 'Confirm!' => 'Patvirtinti!',
+ 'Continue' => 'Tæsti',
+ 'Credit' => 'Kreditas',
+ 'Credit Limit' => 'Kredito riba',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valiûta',
+ 'Current' => 'Dabartinis',
+ 'Customer' => 'Klientas',
+ 'Customer missing!' => 'Kliento vardo nëra!',
+ 'Date' => 'Data',
+ 'Date Paid' => 'Mokëjimo Data',
+ 'Debit' => 'Debetas',
+ 'Dec' => 'Grd',
+ 'December' => 'Gruodis',
+ 'Delete' => 'Iðtrinti',
+ 'Description' => 'Apraðymas',
+ 'Due Date' => 'Iki Data',
+ 'Due Date missing!' => 'Nëra Iki Datos!',
+ 'Employee' => 'Darbuotojas',
+ 'Exch' => 'Kurs.',
+ 'Exchange Rate' => 'Keitimo kursas',
+ 'Exchange rate for payment missing!' => 'Mokëjimo keitimo kurso nëra!',
+ 'Exchange rate missing!' => 'Keitimo kurso nëra!',
+ 'Feb' => 'Vas',
+ 'February' => 'Vasaris',
+ 'From' => 'Nuo',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Ádëti á ataskaità',
+ 'Invoice' => 'Sàskaita-faktûra',
+ 'Invoice Date' => 'Sàskaitos-faktûros data',
+ 'Invoice Date missing!' => 'Sàskaitos-faktûros datos nëra!',
+ 'Invoice Number' => 'Sàskaitos-faktûros numeris',
+ 'Jan' => 'Sau',
+ 'January' => 'Sausis',
+ 'Jul' => 'Lie',
+ 'July' => 'Liepa',
+ 'Jun' => 'Bir',
+ 'June' => 'Birþelis',
+ 'Mar' => 'Kov',
+ 'March' => 'Kovas',
+ 'May' => 'Geg',
+ 'May ' => 'Geguþë',
+ 'No.' => 'Num',
+ 'Notes' => 'Pastaba',
+ 'Nov' => 'Lap',
+ 'November' => 'Lapkritis',
+ 'Oct' => 'Spa',
+ 'October' => 'Spalis',
+ 'Open' => 'Atidaryti',
+ 'Order' => 'Uþsakymas',
+ 'Order Number' => 'Uþsakymo numeris',
+ 'Paid' => 'Apmokëta',
+ 'Payment date missing!' => 'Mokëjimo datos nëra',
+ 'Payments' => 'Mokëjimai',
+ 'Post' => 'Patvirtinti',
+ 'Post as new' => 'Patvirtinti kaip naujà',
+ 'Print' => 'Spausdinti',
+ 'Project' => 'Projektas',
+ 'Receipt' => 'Kasos orderis',
+ 'Remaining' => 'Likutis',
+ 'Sep' => 'Rgs',
+ 'September' => 'Rûgsëjis',
+ 'Ship to' => 'Pristatyti á',
+ 'Ship via' => 'Pristatyti per',
+ 'Source' => 'Dokumentas',
+ 'Subtotal' => 'Viso',
+ 'Tax' => 'Mokëstis',
+ 'Tax Included' => 'su mokesèiais',
+ 'To' => 'iki',
+ 'Total' => 'Ið viso',
+ 'Transaction deleted!' => 'Operacija iðtrinta!',
+ 'Transaction posted!' => 'Operacija patvirtinta!',
+ 'Update' => 'Atnaujinti',
+ 'Vendor' => 'Tiekëjas',
+ 'Vendor missing!' => 'Tiekëjo Vardo nëra!',
+ 'Yes' => 'Taip',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'pirkimo_operacijà' => 'ap_transaction',
+ 'pardavimo_operacijà' => 'ar_transaction',
+ 'tæsti' => 'continue',
+ 'iðtrinti' => 'delete',
+ 'patvirtinti' => 'post',
+ 'patvirtinti_kaip_naujà' => 'post_as_new',
+ 'spausdinti' => 'print',
+ 'pristatyti_á' => 'ship_to',
+ 'atnaujinti' => 'update',
+ 'taip' => 'yes',
+};
+
+1;
+
diff --git a/locale/lt/admin b/locale/lt/admin
new file mode 100755
index 00000000..60adc839
--- /dev/null
+++ b/locale/lt/admin
@@ -0,0 +1,136 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'Access Control' => 'Priëjimo kontrolë',
+ 'Accounting' => 'Apskaita',
+ 'Add User' => 'Pridëti Vartotojà',
+ 'Address' => 'Adresas',
+ 'Administration' => 'Administracija',
+ 'Administrator' => 'Administratorius',
+ 'All Datasets up to date!' => 'All Datasets up to date!',
+ 'Cannot create Lock!' => 'Cannot create Lock!',
+ 'Change Admin Password' => 'Pakeisti Administratoriaus slaptaþodá',
+ 'Change Password' => 'Pakeisti slaptaþodá',
+ 'Click on login name to edit!' => 'Paspauskit prisijungimo vardà redagavimui!',
+ 'Company' => 'Firma',
+ 'Connect to' => 'Prisijungti prie',
+ 'Continue' => 'Tæsti',
+ 'Create Chart of Accounts' => 'Sukûrti sàskaitø planà',
+ 'Create Dataset' => 'Sukûrti duomenø aibæ',
+ 'DBI not installed!' => 'DBI ne instaliuotas!',
+ 'Database' => 'Duomenø bazë',
+ 'Database Administration' => 'Duomenø bazës administravimas',
+ 'Database Driver not checked!' => 'Duomenø bazës tvarkiklë nepatikrinta!',
+ 'Database User missing!' => 'Duomenø bazës vartotojo nëra!',
+ 'Dataset' => 'Duomenø aibë',
+ 'Dataset missing!' => 'Duomenø aibës nëra!',
+ 'Dataset updated!' => 'Duomenø aibë atnaujinta!',
+ 'Date Format' => 'Datos Formatas',
+ 'Delete' => 'Iðtrinti',
+ 'Delete Dataset' => 'Iðtrinti Duomenø aibë',
+ 'Directory' => 'Direktorija',
+ 'Driver' => 'Tvarkyklë',
+ 'Dropdown Limit' => 'Iðsiskleidþianèio meniu riba',
+ 'E-mail' => 'E-paðtas',
+ 'Edit User' => 'Redaguoti vartotojà',
+ 'Existing Datasets' => 'Egzistuojanèios duomenø aibës',
+ 'Fax' => 'Faksas',
+ 'Host' => 'Hostas',
+ 'Hostname missing!' => 'Hosto vardo nëra!',
+ 'Language' => 'Kalba',
+ 'Lock System' => 'Lock System',
+ 'Lockfile created!' => 'Lockfile created!',
+ 'Lockfile removed!' => 'Lockfile removed!',
+ 'Login' => 'Prisijungimas',
+ 'Login name missing!' => 'Login name missing!',
+ 'Logout' => 'Iðsijungti',
+ 'Multibyte Encoding' => 'Multibaitinë kodiruotë',
+ 'Name' => 'Vardas',
+ 'New Templates' => 'Nauji ðablonai',
+ 'No Database Drivers available!' => 'Nëra Duomenø baziø tvarkykliø!',
+ 'No Dataset selected!' => 'Duomenø aibë neiðrinkta!',
+ 'Nothing to delete!' => 'Nëra ko trinti!',
+ 'Number Format' => 'Skaièiaus formatas',
+ 'Oracle Database Administration' => 'Oracle Duomenø bazës Administravimas',
+ 'Password' => 'Slaptaþodis',
+ 'Password changed!' => 'Slaptaþodis pakeistas!',
+ 'Pg Database Administration' => 'Pg Duomenø bazës Administravimas',
+ 'PgPP Database Administration' => 'PgPP Database Administration',
+ 'Phone' => 'Tel.',
+ 'Port' => 'Portas',
+ 'Port missing!' => 'Porto numerio nëra!',
+ 'Printer' => 'Spausdintuvas',
+ 'Save' => 'Iðsaugoti',
+ 'Setup Templates' => 'Nustatyti ðablonus',
+ 'Signature' => 'Paraðas',
+ 'Stylesheet' => 'Stiliø lentelë',
+ 'Templates' => 'Ðablonai',
+ 'The following Datasets are not in use and can be deleted' => 'Ðios duomenø aibës nëra naudojamos ir gali bûti iðtrintos',
+ 'The following Datasets need to be updated' => 'Ðios duomenø aibës turi bûti atnaujintos',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Èia preliminarus egzistuojanèiø ðaltiniø patikrinimas. Niekas negali bûti sukurta arba iðtrinta ðioje stadijoje.',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Kad pridëti vartotojà á grupæ redaguokite vardà, pakeiskite prisijungimo vardà ir iðsaugokite. Bus sukurtas naujas vartotojas su tais paèiais kintamaisiais ir nauju prisijungimo vardu',
+ 'Unlock System' => 'Unlock System',
+ 'Update Dataset' => 'Atnaujinti Duomenø Aibæ',
+ 'Use Templates' => 'Naudoti ðablonus',
+ 'User' => 'Vartotojas',
+ 'User deleted!' => 'Vartotojas iðtrintas!',
+ 'User saved!' => 'Vartotojas iðsaugotas!',
+ 'Version' => 'Versija',
+ 'does not exist' => 'ne egzistuoja',
+ 'is already a member!' => 'jau narys',
+ 'localhost' => 'lokalhostas',
+ 'successfully created!' => 'sëkmingai sukurta',
+ 'successfully deleted!' => 'sëkmingai iðtrinta',
+ 'website' => 'Websaitas',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'pridëti_vartotojà' => 'add_user',
+ 'pakeisti_administratoriaus_slaptaþodá' => 'change_admin_password',
+ 'pakeisti_slaptaþodá' => 'change_password',
+ 'tæsti' => 'continue',
+ 'sukûrti_duomenø_aibæ' => 'create_dataset',
+ 'iðtrinti' => 'delete',
+ 'iðtrinti_duomenø_aibë' => 'delete_dataset',
+ 'lock_system' => 'lock_system',
+ 'prisijungimas' => 'login',
+ 'iðsijungti' => 'logout',
+ 'oracle_duomenø_bazës_administravimas' => 'oracle_database_administration',
+ 'pg_duomenø_bazës_administravimas' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'iðsaugoti' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'atnaujinti_duomenø_aibæ' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/lt/all b/locale/lt/all
new file mode 100755
index 00000000..7393618f
--- /dev/null
+++ b/locale/lt/all
@@ -0,0 +1,892 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+$self{charset} = 'ISO-8859-13';
+
+
+$self{texts} = {
+ 'A' => '',
+ 'AP' => 'Pirkimai',
+ 'AP Aging' => 'Pirkimo Skolos',
+ 'AP Outstanding' => '',
+ 'AP Transaction' => 'Pirkimo Operacijà',
+ 'AP Transactions' => 'Pirkimo Operacijos',
+ 'AR' => 'Pardavimai',
+ 'AR Aging' => 'Pardavimo Skolos',
+ 'AR Outstanding' => '',
+ 'AR Transaction' => 'Pardavimo Operacijà',
+ 'AR Transactions' => 'Pardavimo Operacijos',
+ 'AR/AP' => '',
+ 'About' => 'Apie...',
+ 'Above' => '',
+ 'Access Control' => 'Priëjimo kontrolë',
+ 'Access Denied!' => '',
+ 'Account' => 'Sàskaita',
+ 'Account Number' => 'Sàskaitos numeris',
+ 'Account Number missing!' => 'Sàskaitos numerio nëra!',
+ 'Account Type' => 'Sàskaitos tipas',
+ 'Account Type missing!' => 'Sàskaitos tipo nëra!',
+ 'Account deleted!' => 'Sàskaitos iðtrintos',
+ 'Account does not exist!' => '',
+ 'Account saved!' => 'Sàskaitos iðsaugotos',
+ 'Accounting' => 'Apskaita',
+ 'Accounting Menu' => 'Apskaitos Menu',
+ 'Accounts' => 'Sàskaitos',
+ 'Accrual' => '',
+ 'Activate Audit trail' => '',
+ 'Active' => 'Aktyvus',
+ 'Add' => 'Pridëti',
+ 'Add AP Transaction' => '',
+ 'Add AR Transaction' => '',
+ 'Add Account' => 'Pridëti sàskaità',
+ 'Add Assembly' => 'Pridëti rinkiná',
+ 'Add Business' => '',
+ 'Add Cash Transfer Transaction' => '',
+ 'Add Customer' => 'Pridëti klientà',
+ 'Add Deduction' => '',
+ 'Add Department' => '',
+ 'Add Employee' => '',
+ 'Add Exchange Rate' => '',
+ 'Add GIFI' => 'Pridëti GIFI',
+ 'Add General Ledger Transaction' => 'Pridëti Bendroji Þurnalo Operacijà',
+ 'Add Group' => '',
+ 'Add Job' => '',
+ 'Add Labor/Overhead' => '',
+ 'Add Language' => '',
+ 'Add POS Invoice' => '',
+ 'Add Part' => 'Pridëti prekæ',
+ 'Add Pricegroup' => '',
+ 'Add Project' => 'Pridëti proektà',
+ 'Add Purchase Order' => 'Pridëti Pirkimo uþsakymà',
+ 'Add Quotation' => '',
+ 'Add Request for Quotation' => '',
+ 'Add SIC' => '',
+ 'Add Sales Invoice' => 'Pridëti Pardavimo sàskaità-faktûrà',
+ 'Add Sales Order' => 'Pridëti Pardavimo uþsakymà',
+ 'Add Service' => 'Pridëti Paslaugà',
+ 'Add Timecard' => '',
+ 'Add Transaction' => 'Pridëti Operacijà',
+ 'Add User' => 'Pridëti Vartotojà',
+ 'Add Vendor' => 'Pridëti Tiekëja',
+ 'Add Vendor Invoice' => '',
+ 'Add Warehouse' => '',
+ 'Address' => 'Adresas',
+ 'Administration' => 'Administracija',
+ 'Administrator' => 'Administratorius',
+ 'After Deduction' => '',
+ 'All' => 'Visi',
+ 'All Accounts' => '',
+ 'All Datasets up to date!' => 'All Datasets up to date!',
+ 'All Items' => '',
+ 'Allowances' => '',
+ 'Amount' => 'Suma',
+ 'Amount Due' => 'Suma iki',
+ 'Amount missing!' => '',
+ 'Apr' => 'Bal',
+ 'April' => 'Balandis',
+ 'Are you sure you want to delete Invoice Number' => 'Ar Jus tikrai norite iðtrinti saskaitu-fakturos numeris:',
+ 'Are you sure you want to delete Order Number' => 'Ar Jus tikrai norite iðtrinti uzsakimas numeris:',
+ 'Are you sure you want to delete Quotation Number' => '',
+ 'Are you sure you want to delete Timecard for' => '',
+ 'Are you sure you want to delete Transaction' => 'Ar Jus tikrai norite iðtrinti operacijà?',
+ 'Are you sure you want to remove the marked entries from the queue?' => '',
+ 'Assemblies' => 'Rinkiniai',
+ 'Assemblies restocked!' => 'Rinkiniai persandeliuoti!',
+ 'Assembly' => '',
+ 'Assembly stocked!' => '',
+ 'Asset' => 'Turtas',
+ 'Attachment' => 'Prisegta',
+ 'Audit Control' => 'Audito kontrolë',
+ 'Audit trail disabled' => '',
+ 'Audit trail enabled' => '',
+ 'Audit trail removed up to' => '',
+ 'Aug' => 'Rug',
+ 'August' => 'Rugpjûtis',
+ 'Average Cost' => '',
+ 'Avg Cost' => '',
+ 'BIC' => '',
+ 'BOM' => 'BOM',
+ 'Backup' => 'Reservinë kopija',
+ 'Backup sent to' => 'Reservinë kopija iðsiusta á',
+ 'Balance' => 'Balansas',
+ 'Balance Sheet' => 'Balanso lëntelë',
+ 'Based on' => '',
+ 'Bcc' => 'Bcc',
+ 'Before Deduction' => '',
+ 'Beginning Balance' => '',
+ 'Below' => '',
+ 'Billing Address' => '',
+ 'Bin' => 'Dëþë',
+ 'Bin List' => '',
+ 'Bin Lists' => '',
+ 'Books are open' => 'Þurnalai atidaryti',
+ 'Break' => '',
+ 'Business' => '',
+ 'Business Number' => 'Ámonës kodas',
+ 'Business deleted!' => '',
+ 'Business saved!' => '',
+ 'C' => 'C',
+ 'COGS' => 'PPS',
+ 'COGS account does not exist!' => '',
+ 'Cannot add timecard for a completed job!' => '',
+ 'Cannot change timecard for a completed job!' => '',
+ 'Cannot create Assembly' => '',
+ 'Cannot create Labor' => '',
+ 'Cannot create Lock!' => 'Cannot create Lock!',
+ 'Cannot create Part' => '',
+ 'Cannot create Service' => '',
+ 'Cannot delete Timecard!' => '',
+ 'Cannot delete account!' => 'Neámanoma iðtrinti sàskaitos!',
+ 'Cannot delete customer!' => 'Neámanoma iðtrinti kliento!',
+ 'Cannot delete default account!' => 'Neámanoma iðtrinti sàskaitos pagal nutylejimà!',
+ 'Cannot delete invoice!' => 'Neámanoma iðtrinti sàskaitos-faktûros!',
+ 'Cannot delete item!' => 'Neámanoma iðtrinti prekës!',
+ 'Cannot delete order!' => 'Neámanoma iðtrinti uþsakymo!',
+ 'Cannot delete quotation!' => '',
+ 'Cannot delete transaction!' => 'Neámanoma iðtrinti operacijos!',
+ 'Cannot delete vendor!' => 'Neámanoma iðtrinti tiekëjo!',
+ 'Cannot post Payment!' => '',
+ 'Cannot post Receipt!' => '',
+ 'Cannot post invoice for a closed period!' => 'Neámanoma patvirtinti sàskaitos-faktûros uþdarajam periodui!',
+ 'Cannot post invoice!' => 'Neámanoma patvirtinti sàskaitos-faktûros!',
+ 'Cannot post payment for a closed period!' => 'Neámanoma patvirtinti mokëjimo uþdarajam periodui!',
+ 'Cannot post transaction for a closed period!' => 'Neámanoma patvirtinti operacijos uþdarajam periodui!',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => '',
+ 'Cannot post transaction!' => 'Neámanoma patvirtinti operacijos!',
+ 'Cannot remove files!' => '',
+ 'Cannot save account!' => 'Neámanoma iðsaugoti sàskaitos!',
+ 'Cannot save defaults!' => '',
+ 'Cannot save order!' => 'Neámanoma iðsaugoti uþsakymo!',
+ 'Cannot save preferences!' => 'Neámanoma iðsaugoti nuostatø!',
+ 'Cannot save quotation!' => '',
+ 'Cannot save timecard for a closed period!' => '',
+ 'Cannot save timecard!' => '',
+ 'Cannot set account for more than one of AR, AP or IC' => '',
+ 'Cannot set multiple options for' => '',
+ 'Cannot set multiple options for Item' => '',
+ 'Cannot stock Assembly!' => '',
+ 'Cannot stock assemblies!' => 'Neámanoma sandelioti rinkinius!',
+ 'Cash' => 'Kasa',
+ 'Cc' => 'Cc',
+ 'Change' => '',
+ 'Change Admin Password' => 'Pakeisti Administratoriaus slaptaþodá',
+ 'Change Password' => 'Pakeisti slaptaþodá',
+ 'Charge' => '',
+ 'Chart of Accounts' => 'Sàskaitø planas',
+ 'Check' => 'Èekis',
+ 'Check Inventory' => '',
+ 'Checks' => '',
+ 'City' => '',
+ 'Cleared' => '',
+ 'Click on login name to edit!' => 'Paspauskit prisijungimo vardà redagavimui!',
+ 'Clocked' => '',
+ 'Close Books up to' => 'Uþdaryti þurnalus iki',
+ 'Closed' => 'Uþdaryta',
+ 'Code' => '',
+ 'Code missing!' => '',
+ 'Company' => 'Firma',
+ 'Company Name' => '',
+ 'Compare to' => 'Palyginti su',
+ 'Completed' => '',
+ 'Components' => '',
+ 'Confirm' => '',
+ 'Confirm!' => 'Patvirtinti!',
+ 'Connect to' => 'Prisijungti prie',
+ 'Contact' => 'Kontaktas',
+ 'Continue' => 'Tæsti',
+ 'Contra' => '',
+ 'Copies' => 'Kopijos',
+ 'Copy to COA' => 'Kopijuoti á SP',
+ 'Cost' => '',
+ 'Cost Center' => '',
+ 'Could not save pricelist!' => '',
+ 'Could not save!' => '',
+ 'Could not transfer Inventory!' => '',
+ 'Country' => '',
+ 'Create Chart of Accounts' => 'Sukûrti sàskaitø planà',
+ 'Create Dataset' => 'Sukûrti duomenø aibæ',
+ 'Credit' => 'Kreditas',
+ 'Credit Limit' => 'Kredito riba',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valiûta',
+ 'Current' => 'Dabartinis',
+ 'Current Earnings' => '',
+ 'Customer' => 'Klientas',
+ 'Customer History' => '',
+ 'Customer Number' => '',
+ 'Customer deleted!' => 'Klientas iðtrintas!',
+ 'Customer missing!' => 'Kliento vardo nëra!',
+ 'Customer not on file!' => 'Tokio kliento nëra!',
+ 'Customer saved!' => 'Klientas iðsaugotas!',
+ 'Customers' => 'Klientai',
+ 'DBI not installed!' => 'DBI ne instaliuotas!',
+ 'DOB' => '',
+ 'Database' => 'Duomenø bazë',
+ 'Database Administration' => 'Duomenø bazës administravimas',
+ 'Database Driver not checked!' => 'Duomenø bazës tvarkiklë nepatikrinta!',
+ 'Database Host' => 'Duomenø bazës hostas',
+ 'Database User missing!' => 'Duomenø bazës vartotojo nëra!',
+ 'Dataset' => 'Duomenø aibë',
+ 'Dataset is newer than version!' => '',
+ 'Dataset missing!' => 'Duomenø aibës nëra!',
+ 'Dataset updated!' => 'Duomenø aibë atnaujinta!',
+ 'Date' => 'Data',
+ 'Date Format' => 'Datos Formatas',
+ 'Date Paid' => 'Mokëjimo Data',
+ 'Date Received' => '',
+ 'Date missing!' => 'Datos nëra!',
+ 'Date received missing!' => '',
+ 'Date worked' => '',
+ 'Day' => '',
+ 'Day(s)' => '',
+ 'Days' => '',
+ 'Debit' => 'Debetas',
+ 'Dec' => 'Grd',
+ 'December' => 'Gruodis',
+ 'Decimalplaces' => 'Skaièiø po taðko',
+ 'Decrease' => '',
+ 'Deduct after' => '',
+ 'Deduction deleted!' => '',
+ 'Deduction saved!' => '',
+ 'Deductions' => '',
+ 'Default Template' => '',
+ 'Defaults' => '',
+ 'Defaults saved!' => '',
+ 'Delete' => 'Iðtrinti',
+ 'Delete Account' => 'Iðtrinti sàskaità',
+ 'Delete Dataset' => 'Iðtrinti Duomenø aibë',
+ 'Delete Schedule' => '',
+ 'Deleting a language will also delete the templates for the language' => '',
+ 'Delivery Date' => 'Prystatimo Data',
+ 'Department' => '',
+ 'Department deleted!' => '',
+ 'Department saved!' => '',
+ 'Departments' => '',
+ 'Deposit' => 'Depozitas',
+ 'Description' => 'Apraðymas',
+ 'Description Translations' => '',
+ 'Description missing!' => '',
+ 'Detail' => '',
+ 'Difference' => 'Skirtumas',
+ 'Directory' => 'Direktorija',
+ 'Discount' => 'Nuolaidos',
+ 'Done' => 'Ávykdyta',
+ 'Drawing' => 'Brieþinys',
+ 'Driver' => 'Tvarkyklë',
+ 'Dropdown Limit' => 'Iðsiskleidþianèio meniu riba',
+ 'Due Date' => 'Iki Data',
+ 'Due Date missing!' => 'Nëra Iki Datos!',
+ 'E-mail' => 'E-paðtas',
+ 'E-mail Statement to' => 'Suvestinæ suisti per e-pastà á',
+ 'E-mail address missing!' => 'E-paðto adreso nëra!',
+ 'E-mail message' => '',
+ 'E-mailed' => '',
+ 'Edit' => 'Redaguoti',
+ 'Edit AP Transaction' => '',
+ 'Edit AR Transaction' => '',
+ 'Edit Account' => 'Redaguoti sàskaità',
+ 'Edit Assembly' => 'Redaguoti rinkiná',
+ 'Edit Business' => '',
+ 'Edit Cash Transfer Transaction' => '',
+ 'Edit Customer' => 'Redaguoti Klientà',
+ 'Edit Deduction' => '',
+ 'Edit Department' => '',
+ 'Edit Description Translations' => '',
+ 'Edit Employee' => '',
+ 'Edit GIFI' => 'Redaguoti GIFI',
+ 'Edit General Ledger Transaction' => 'Redaguoti Bendrojo Þurnalo operacijà',
+ 'Edit Group' => '',
+ 'Edit Job' => '',
+ 'Edit Labor/Overhead' => '',
+ 'Edit Language' => '',
+ 'Edit POS Invoice' => '',
+ 'Edit Part' => 'Redaguoti prekæ',
+ 'Edit Preferences for' => 'Redaguoti nuostatas...',
+ 'Edit Pricegroup' => '',
+ 'Edit Project' => 'Redaguoti projektà',
+ 'Edit Purchase Order' => 'Redaguoti pirkimo uþsakymà',
+ 'Edit Quotation' => '',
+ 'Edit Request for Quotation' => '',
+ 'Edit SIC' => '',
+ 'Edit Sales Invoice' => 'Redaguoti pardavimo sàskaità-faktûrà',
+ 'Edit Sales Order' => 'Redaguoti pardavimo uþsakymà',
+ 'Edit Service' => 'Redaguoti paslaugà',
+ 'Edit Template' => 'Redaguoti ðablonà',
+ 'Edit Timecard' => '',
+ 'Edit User' => 'Redaguoti vartotojà',
+ 'Edit Vendor' => 'Redaguoti Tiekijà',
+ 'Edit Vendor Invoice' => '',
+ 'Edit Warehouse' => '',
+ 'Employee' => 'Darbuotojas',
+ 'Employee Name' => '',
+ 'Employee Number' => '',
+ 'Employee deleted!' => '',
+ 'Employee pays' => '',
+ 'Employee saved!' => '',
+ 'Employees' => '',
+ 'Employer' => '',
+ 'Employer pays' => '',
+ 'Enddate' => '',
+ 'Ends' => '',
+ 'Enforce transaction reversal for all dates' => 'Reversuoti operacijas visoms datoms',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Áveskite iki 3-jø raidþiø, iðskirtø taðkais (Pvz. LTL:EUR:USD:YEN) savo ir uþsienio valiutoms paþymëti',
+ 'Equity' => 'Turtas/Nuosavybë',
+ 'Every' => '',
+ 'Excempt age <' => '',
+ 'Exch' => 'Kurs.',
+ 'Exchange Rate' => 'Keitimo kursas',
+ 'Exchange rate for payment missing!' => 'Mokëjimo keitimo kurso nëra!',
+ 'Exchange rate missing!' => 'Keitimo kurso nëra!',
+ 'Existing Datasets' => 'Egzistuojanèios duomenø aibës',
+ 'Expense' => 'Sànaudos',
+ 'Expense account does not exist!' => '',
+ 'Expense/Asset' => 'Sànaudos/Aktyvai',
+ 'Extended' => 'Iðplësta',
+ 'FX' => '',
+ 'Failed to save order!' => '',
+ 'Fax' => 'Faksas',
+ 'Feb' => 'Vas',
+ 'February' => 'Vasaris',
+ 'For' => '',
+ 'Foreign Exchange Gain' => 'Valiûtos keitimo pelnas',
+ 'Foreign Exchange Loss' => 'Valiûtos keitimo nuostolis',
+ 'Friday' => '',
+ 'From' => 'Nuo',
+ 'From Warehouse' => '',
+ 'GIFI' => 'GIFI',
+ 'GIFI deleted!' => 'GIFI iðtrintas!',
+ 'GIFI missing!' => 'GIFI nëra!',
+ 'GIFI saved!' => 'GIFI iðsaugotas!',
+ 'GL' => '',
+ 'GL Reference Number' => '',
+ 'GL Transaction' => 'BÞ operacija',
+ 'General Ledger' => 'Bendrasis þurnalas',
+ 'Generate' => '',
+ 'Generate Orders' => '',
+ 'Generate Purchase Orders' => '',
+ 'Generate Purchase Orders from Sales Order' => '',
+ 'Generate Sales Order' => '',
+ 'Generate Sales Order from Purchase Orders' => '',
+ 'Generate Sales Orders' => '',
+ 'Goods & Services' => 'Prekës ir Paslaugos',
+ 'Group' => '',
+ 'Group Items' => '',
+ 'Group Translations' => '',
+ 'Group deleted!' => '',
+ 'Group missing!' => '',
+ 'Group saved!' => '',
+ 'Groups' => '',
+ 'HR' => '',
+ 'HTML Templates' => 'HTML ðablonai',
+ 'Heading' => 'Antraðtë',
+ 'History' => '',
+ 'Home Phone' => '',
+ 'Host' => 'Hostas',
+ 'Hostname missing!' => 'Hosto vardo nëra!',
+ 'IBAN' => '',
+ 'ID' => 'ID',
+ 'Image' => 'Pieðinys',
+ 'In-line' => 'Vienaeilis',
+ 'Inactive' => '',
+ 'Include Exchange Rate Difference' => '',
+ 'Include Payment' => '',
+ 'Include in Report' => 'Ádëti á ataskaità',
+ 'Include in drop-down menus' => 'Ádëti á iðsáskleidþianèius meniu',
+ 'Income' => '',
+ 'Income Statement' => 'Pelno/nuostolio ataskaita',
+ 'Income account does not exist!' => '',
+ 'Incorrect Dataset version!' => 'Neteisinga duomenø aibës versija!',
+ 'Increase' => '',
+ 'Individual Items' => 'Individualios prekës',
+ 'Internal Notes' => '',
+ 'Inventory' => 'Prekës',
+ 'Inventory account does not exist!' => '',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Prekës kiekis turi bûti lygus nuliui prieð paþymint rinkiná pasenusiu!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Prekës kiekis turi bûti lygus nuliui prieð paþymint ðià dalá pasenusia!',
+ 'Inventory saved!' => '',
+ 'Inventory transferred!' => '',
+ 'Invoice' => 'Sàskaita-faktûra',
+ 'Invoice Date' => 'Sàskaitos-faktûros data',
+ 'Invoice Date missing!' => 'Sàskaitos-faktûros datos nëra!',
+ 'Invoice Number' => 'Sàskaitos-faktûros numeris',
+ 'Invoice Number missing!' => 'Sàskaitos-faktûra numerio nëra!',
+ 'Invoice deleted!' => 'Sàskaitos-faktûra iðtrintos!',
+ 'Invoices' => 'Sàskaitos-faktûros',
+ 'Is this a summary account to record' => 'Ar èia apibendrinta áraðo sàskaita',
+ 'Item already on pricelist!' => '',
+ 'Item deleted!' => 'Vienetas iðtrintas!',
+ 'Item not on file!' => 'Vieneto nëra áraðuose!',
+ 'Items' => '',
+ 'Jan' => 'Sau',
+ 'January' => 'Sausis',
+ 'Job' => '',
+ 'Job Name' => '',
+ 'Job Number' => '',
+ 'Job Number missing!' => '',
+ 'Job deleted!' => '',
+ 'Job saved!' => '',
+ 'Jobs' => '',
+ 'Jul' => 'Lie',
+ 'July' => 'Liepa',
+ 'Jun' => 'Bir',
+ 'June' => 'Birþelis',
+ 'LaTeX Templates' => 'LaTeX ðablonai',
+ 'Labor Code' => '',
+ 'Labor/Overhead' => '',
+ 'Language' => 'Kalba',
+ 'Language deleted!' => '',
+ 'Language saved!' => '',
+ 'Languages' => '',
+ 'Languages not defined!' => '',
+ 'Last Cost' => '',
+ 'Last Numbers & Default Accounts' => 'Paskutinieji numeriai ir sàskaitos pagal nutylëjimà',
+ 'Lead' => '',
+ 'Leadtime' => '',
+ 'Leave host and port field empty unless you want to make a remote connection.' => 'Lokaliam prisijungimui palikite hosto ir porto laukelius tuðèiais',
+ 'Liability' => 'Nuosavybë',
+ 'Licensed to' => 'Licenzijuota...',
+ 'Line Total' => 'Viso eilutëje',
+ 'Link' => 'Ryðys',
+ 'Link Accounts' => 'Suriðti sàskaitas',
+ 'List' => '',
+ 'List Accounts' => 'Sàskaitø sàraðas',
+ 'List Businesses' => '',
+ 'List Departments' => '',
+ 'List GIFI' => 'GIFI sàraðas',
+ 'List Languages' => '',
+ 'List Price' => 'Pirkimo kaina',
+ 'List Projects' => '',
+ 'List SIC' => '',
+ 'List Transactions' => 'Parodyti operacijas',
+ 'List Warehouses' => '',
+ 'Lock System' => 'Lock System',
+ 'Lockfile created!' => 'Lockfile created!',
+ 'Lockfile removed!' => 'Lockfile removed!',
+ 'Login' => 'Prisijungimas',
+ 'Login name missing!' => 'Login name missing!',
+ 'Logout' => 'Iðsijungti',
+ 'Make' => 'Gamintojas',
+ 'Manager' => '',
+ 'Mar' => 'Kov',
+ 'March' => 'Kovas',
+ 'Marked entries printed!' => '',
+ 'Markup' => '',
+ 'Maximum' => '',
+ 'May' => 'Geg',
+ 'May ' => 'Geguþë',
+ 'Memo' => '',
+ 'Menu Width' => '',
+ 'Message' => 'Þinutë',
+ 'Method' => '',
+ 'Microfiche' => 'Mikrofiða',
+ 'Model' => 'Modelis',
+ 'Monday' => '',
+ 'Month' => '',
+ 'Month(s)' => '',
+ 'Months' => '',
+ 'Multibyte Encoding' => 'Multibaitinë kodiruotë',
+ 'N/A' => 'N/A',
+ 'Name' => 'Vardas',
+ 'Name missing!' => 'Pavadinimo nëra',
+ 'New Templates' => 'Nauji ðablonai',
+ 'New Window' => '',
+ 'Next' => '',
+ 'Next Date' => '',
+ 'Next Number' => '',
+ 'No' => 'Ne',
+ 'No Database Drivers available!' => 'Nëra Duomenø baziø tvarkykliø!',
+ 'No Dataset selected!' => 'Duomenø aibë neiðrinkta!',
+ 'No Employees on file!' => '',
+ 'No Labor codes on file!' => '',
+ 'No email address for' => 'Nëra e-paðto adreso...',
+ 'No open Jobs!' => '',
+ 'No open Projects!' => '',
+ 'No.' => 'Num',
+ 'Non-taxable' => '',
+ 'Non-taxable Purchases' => '',
+ 'Non-taxable Sales' => '',
+ 'Non-tracking Items' => '',
+ 'Notes' => 'Pastaba',
+ 'Nothing entered!' => '',
+ 'Nothing selected!' => 'Nieko neiðrinkta!',
+ 'Nothing to delete!' => 'Nëra ko trinti!',
+ 'Nothing to print!' => '',
+ 'Nothing to transfer!' => '',
+ 'Nov' => 'Lap',
+ 'November' => 'Lapkritis',
+ 'Number' => 'Numeris',
+ 'Number Format' => 'Skaièiaus formatas',
+ 'Number missing in Row' => 'Numerio nëra eilëje',
+ 'O' => 'O',
+ 'OH' => '',
+ 'Obsolete' => 'Pasenæ',
+ 'Oct' => 'Spa',
+ 'October' => 'Spalis',
+ 'On Hand' => 'Likutis',
+ 'Open' => 'Atidaryti',
+ 'Oracle Database Administration' => 'Oracle Duomenø bazës Administravimas',
+ 'Order' => 'Uþsakymas',
+ 'Order Date' => 'Uþsakymo data',
+ 'Order Date missing!' => 'Uþsakymo datos nëra!',
+ 'Order Entry' => 'Uþsakymo áraðas',
+ 'Order Number' => 'Uþsakymo numeris',
+ 'Order Number missing!' => 'Uþsakymo numerio nëra!',
+ 'Order deleted!' => 'Uþsakymai iðtrinti!',
+ 'Order generation failed!' => '',
+ 'Order saved!' => 'Uþsakymas iðsaugotas!',
+ 'Orders generated!' => '',
+ 'Orphaned' => 'Naðlaitinis',
+ 'Out of balance transaction!' => '',
+ 'Out of balance!' => 'Nesubalansuota!',
+ 'Outstanding' => '',
+ 'PDF' => 'PDF',
+ 'PO Number' => '',
+ 'POS' => '',
+ 'POS Invoice' => '',
+ 'Packing List' => 'Ápakavimo sàraðas',
+ 'Packing List Date missing!' => 'Ápakavimo sàraðo datos nëra!',
+ 'Packing List Number missing!' => 'Ápakavimo sàraðo numerio nëra!',
+ 'Packing Lists' => '',
+ 'Paid' => 'Apmokëta',
+ 'Part' => 'Prekë',
+ 'Part Number' => '',
+ 'Partnumber' => '',
+ 'Parts' => 'Prekës',
+ 'Password' => 'Slaptaþodis',
+ 'Password changed!' => 'Slaptaþodis pakeistas!',
+ 'Password does not match!' => '',
+ 'Passwords do not match!' => '',
+ 'Payables' => 'Pirkimai',
+ 'Payment' => 'Mokëjimas',
+ 'Payment date missing!' => 'Mokëjimo datos nëra',
+ 'Payment posted!' => 'Mokëjimas patvirtintas!',
+ 'Payments' => 'Mokëjimai',
+ 'Payments posted!' => '',
+ 'Payroll Deduction' => '',
+ 'Period' => '',
+ 'Pg Database Administration' => 'Pg Duomenø bazës Administravimas',
+ 'PgPP Database Administration' => 'PgPP Database Administration',
+ 'Phone' => 'Tel.',
+ 'Pick List' => '',
+ 'Pick Lists' => '',
+ 'Port' => 'Portas',
+ 'Port missing!' => 'Porto numerio nëra!',
+ 'Pos' => '',
+ 'Post' => 'Patvirtinti',
+ 'Post as new' => 'Patvirtinti kaip naujà',
+ 'Posted!' => '',
+ 'Posting' => '',
+ 'Posting failed!' => '',
+ 'Postscript' => 'Postscript(TM)',
+ 'Preferences' => 'Nuostatos',
+ 'Preferences saved!' => 'Nuostatos iðsaugotos!',
+ 'Prepayment' => '',
+ 'Price' => 'Kaina',
+ 'Pricegroup' => '',
+ 'Pricegroup deleted!' => '',
+ 'Pricegroup missing!' => '',
+ 'Pricegroup saved!' => '',
+ 'Pricegroups' => '',
+ 'Pricelist' => '',
+ 'Print' => 'Spausdinti',
+ 'Print and Post' => '',
+ 'Print and Post as new' => '',
+ 'Print and Save' => '',
+ 'Print and Save as new' => '',
+ 'Print and post as new' => '',
+ 'Print and save as new' => '',
+ 'Printed' => '',
+ 'Printer' => 'Spausdintuvas',
+ 'Printing' => '',
+ 'Printing ... ' => '',
+ 'Process Transactions' => '',
+ 'Production' => '',
+ 'Profit Center' => '',
+ 'Project' => 'Projektas',
+ 'Project Description Translations' => '',
+ 'Project Name' => '',
+ 'Project Number' => '',
+ 'Project Number missing!' => 'Projekto numerio nëra!',
+ 'Project Transactions' => '',
+ 'Project deleted!' => 'Projektas iðtrintas!',
+ 'Project not on file!' => 'Nëra tokio projekto!',
+ 'Project saved!' => 'Projektas iðsaugotas!',
+ 'Project/Job Name' => '',
+ 'Project/Job Number' => '',
+ 'Projects' => 'Projektai',
+ 'Purchase Order' => 'Pirkimo uþsakymas',
+ 'Purchase Order Number' => '',
+ 'Purchase Orders' => 'Pirkimo uþsakymai',
+ 'Qty' => 'Kks',
+ 'Quantity exceeds available units to stock!' => '',
+ 'Quarter' => '',
+ 'Quotation' => '',
+ 'Quotation ' => '',
+ 'Quotation Date' => '',
+ 'Quotation Date missing!' => '',
+ 'Quotation Number' => '',
+ 'Quotation Number missing!' => '',
+ 'Quotation deleted!' => '',
+ 'Quotations' => '',
+ 'R' => '',
+ 'RFQ' => '',
+ 'RFQ ' => '',
+ 'RFQ Number' => '',
+ 'RFQs' => '',
+ 'ROP' => 'ROP',
+ 'Rate' => 'Kursas',
+ 'Rate missing!' => '',
+ 'Recd' => 'Gaut',
+ 'Receipt' => 'Kasos orderis',
+ 'Receipt posted!' => '',
+ 'Receipts' => 'Kasos orderiai',
+ 'Receivables' => 'Pardavimai',
+ 'Receive' => '',
+ 'Receive Merchandise' => '',
+ 'Reconciliation' => 'Sutaikinimas',
+ 'Reconciliation Report' => '',
+ 'Record in' => 'Áraðyti á',
+ 'Recurring Transaction' => '',
+ 'Recurring Transactions' => '',
+ 'Reference' => 'Nuorodos',
+ 'Remaining' => 'Likutis',
+ 'Remove' => '',
+ 'Remove Audit trail up to' => '',
+ 'Removed spoolfiles!' => '',
+ 'Removing marked entries from queue ...' => '',
+ 'Repeat' => '',
+ 'Report for' => 'Ataskaita...',
+ 'Reports' => 'Ataskaitos',
+ 'Req' => '',
+ 'Request for Quotation' => '',
+ 'Request for Quotations' => '',
+ 'Required by' => 'Iki kada',
+ 'Retained Earnings' => 'Turimi uþdarbiai',
+ 'Role' => '',
+ 'S' => '',
+ 'SIC' => '',
+ 'SIC deleted!' => '',
+ 'SIC saved!' => '',
+ 'SKU' => '',
+ 'SSN' => '',
+ 'Sale' => '',
+ 'Sales' => 'Pardavimai',
+ 'Sales Invoice' => 'Pardavimo SF',
+ 'Sales Invoice ' => '',
+ 'Sales Invoice.' => '',
+ 'Sales Invoice/AR Transaction Number' => '',
+ 'Sales Invoices' => '',
+ 'Sales Order' => 'Pardavimø uþsakymas',
+ 'Sales Order Number' => '',
+ 'Sales Orders' => 'Pardavimø uþsakymai',
+ 'Sales Quotation Number' => '',
+ 'Salesperson' => '',
+ 'Saturday' => '',
+ 'Save' => 'Iðsaugoti',
+ 'Save Pricelist' => '',
+ 'Save Schedule' => '',
+ 'Save as new' => 'Iðsaugoti kaip naujà',
+ 'Save to File' => 'Iðsaugoti á failà',
+ 'Saving' => '',
+ 'Schedule' => '',
+ 'Scheduled' => '',
+ 'Screen' => 'Ekranas',
+ 'Search' => '',
+ 'Select' => '',
+ 'Select Customer' => '',
+ 'Select Vendor' => '',
+ 'Select a Printer!' => '',
+ 'Select a printer!' => '',
+ 'Select all' => 'Iðrinkti viskà',
+ 'Select from one of the items below' => 'Iðrinkite vienà ið prekiø apaèioje',
+ 'Select from one of the names below' => 'Iðrinkite vienà ið pavadinimø apaèioje',
+ 'Select from one of the projects below' => 'Iðrinkite vienà ið projektø apaèioje',
+ 'Select items' => '',
+ 'Select payment' => '',
+ 'Select postscript or PDF!' => 'Iðrinkite postscript arba PDF!',
+ 'Select txt, postscript or PDF!' => '',
+ 'Sell' => '',
+ 'Sell Price' => 'Pardavimo kaina',
+ 'Send by E-Mail' => 'Iðsiûsti e-paðtu',
+ 'Sending' => '',
+ 'Sep' => 'Rgs',
+ 'September' => 'Rûgsëjis',
+ 'Serial No.' => '',
+ 'Serial Number' => '',
+ 'Service' => 'Paslauga',
+ 'Service Code' => '',
+ 'Service/Labor Code' => '',
+ 'Services' => 'Paslaugos',
+ 'Session Timeout' => '',
+ 'Session expired!' => '',
+ 'Setup Templates' => 'Nustatyti ðablonus',
+ 'Ship' => 'Pristatymas',
+ 'Ship Merchandise' => '',
+ 'Ship to' => 'Pristatyti á',
+ 'Ship via' => 'Pristatyti per',
+ 'Shipping' => '',
+ 'Shipping Address' => '',
+ 'Shipping Date' => '',
+ 'Shipping Date missing!' => '',
+ 'Shipping Point' => '',
+ 'Short' => 'Stoka',
+ 'Signature' => 'Paraðas',
+ 'Source' => 'Dokumentas',
+ 'Spoolfile' => '',
+ 'Standard' => 'Standartas',
+ 'Standard Industrial Codes' => '',
+ 'Startdate' => '',
+ 'State' => '',
+ 'State/Province' => '',
+ 'Statement' => 'Suvestinë',
+ 'Statement Balance' => 'Balanso suvestinë',
+ 'Statement sent to' => 'Siusti suvestinæ á',
+ 'Statements sent to printer!' => 'Siusti suvestinæ á spausdintuvà!',
+ 'Stock' => '',
+ 'Stock Assembly' => 'Rinkiniai sandëlyje',
+ 'Stocking Date' => '',
+ 'Stylesheet' => 'Stiliø lentelë',
+ 'Sub-contract GIFI' => '',
+ 'Subject' => 'Dalykas',
+ 'Subtotal' => 'Viso',
+ 'Summary' => '',
+ 'Sunday' => '',
+ 'Supervisor' => '',
+ 'System' => 'Sistema',
+ 'System Defaults' => '',
+ 'Tax' => 'Mokëstis',
+ 'Tax Accounts' => 'Mokesèiø sàskaitos',
+ 'Tax Included' => 'su mokesèiais',
+ 'Tax Number' => '',
+ 'Tax Number / SSN' => '',
+ 'Tax collected' => 'Mokesèiai surinkti',
+ 'Tax paid' => 'Mokesèiai sumokëti',
+ 'Taxable' => 'Apmokestinama',
+ 'Template saved!' => 'Ðablonai iðsaugoti!',
+ 'Templates' => 'Ðablonai',
+ 'Terms' => 'Terminas: ',
+ 'Text' => '',
+ 'Text Templates' => '',
+ 'The following Datasets are not in use and can be deleted' => 'Ðios duomenø aibës nëra naudojamos ir gali bûti iðtrintos',
+ 'The following Datasets need to be updated' => 'Ðios duomenø aibës turi bûti atnaujintos',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Èia preliminarus egzistuojanèiø ðaltiniø patikrinimas. Niekas negali bûti sukurta arba iðtrinta ðioje stadijoje.',
+ 'Thursday' => '',
+ 'Till' => '',
+ 'Time In' => '',
+ 'Time Out' => '',
+ 'Timecard' => '',
+ 'Timecard deleted!' => '',
+ 'Timecard saved!' => '',
+ 'Timecards' => '',
+ 'Times' => '',
+ 'To' => 'iki',
+ 'To Warehouse' => '',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Kad pridëti vartotojà á grupæ redaguokite vardà, pakeiskite prisijungimo vardà ir iðsaugokite. Bus sukurtas naujas vartotojas su tais paèiais kintamaisiais ir nauju prisijungimo vardu',
+ 'Top Level' => 'Aukðèiausias lygis',
+ 'Total' => 'Ið viso',
+ 'Tracking Items' => '',
+ 'Trade Discount' => '',
+ 'Transaction' => '',
+ 'Transaction Date missing!' => 'Operacijos datos nëra!',
+ 'Transaction Dates' => '',
+ 'Transaction deleted!' => 'Operacija iðtrinta!',
+ 'Transaction posted!' => 'Operacija patvirtinta!',
+ 'Transaction reversal enforced for all dates' => 'Operacijos bus reversuojamos visoms datoms',
+ 'Transaction reversal enforced up to' => 'Operacijos bus reversuojamos iki',
+ 'Transactions' => 'Operacijos',
+ 'Transfer' => '',
+ 'Transfer Inventory' => '',
+ 'Transfer from' => '',
+ 'Transfer to' => '',
+ 'Translation' => '',
+ 'Translation deleted!' => '',
+ 'Translation not on file!' => '',
+ 'Translations' => '',
+ 'Translations saved!' => '',
+ 'Trial Balance' => 'Bandomasis balansas',
+ 'Tuesday' => '',
+ 'Type of Business' => '',
+ 'Unit' => 'Vienetas',
+ 'Unit of measure' => 'Matavimo vienetas',
+ 'Unlock System' => 'Unlock System',
+ 'Update' => 'Atnaujinti',
+ 'Update Dataset' => 'Atnaujinti Duomenø Aibæ',
+ 'Updated' => 'Atnaujinta',
+ 'Upgrading to Version' => '',
+ 'Use Templates' => 'Naudoti ðablonus',
+ 'User' => 'Vartotojas',
+ 'User deleted!' => 'Vartotojas iðtrintas!',
+ 'User saved!' => 'Vartotojas iðsaugotas!',
+ 'Valid until' => '',
+ 'Vendor' => 'Tiekëjas',
+ 'Vendor History' => '',
+ 'Vendor Invoice' => '',
+ 'Vendor Invoice ' => '',
+ 'Vendor Invoice.' => '',
+ 'Vendor Invoice/AP Transaction Number' => '',
+ 'Vendor Invoices' => '',
+ 'Vendor Number' => '',
+ 'Vendor deleted!' => 'Tiekëjas iðtrintas!',
+ 'Vendor missing!' => 'Tiekëjo Vardo nëra!',
+ 'Vendor not on file!' => 'Tokio tiekëjo nëra!',
+ 'Vendor saved!' => 'Tiekëjai iðsaugoti',
+ 'Vendors' => 'Tiekëjai',
+ 'Version' => 'Versija',
+ 'Warehouse' => '',
+ 'Warehouse deleted!' => '',
+ 'Warehouse saved!' => '',
+ 'Warehouses' => '',
+ 'Warning!' => '',
+ 'Wednesday' => '',
+ 'Week' => '',
+ 'Week(s)' => '',
+ 'Weeks' => '',
+ 'Weight' => 'Svoris',
+ 'Weight Unit' => 'Svorio vienetas.',
+ 'What type of item is this?' => 'Koks ðio dalyko tipas?',
+ 'Work Order' => '',
+ 'Work Orders' => '',
+ 'Work Phone' => '',
+ 'Year' => '',
+ 'Year(s)' => '',
+ 'Yearend' => '',
+ 'Yearend date missing!' => '',
+ 'Yearend posted!' => '',
+ 'Yearend posting failed!' => '',
+ 'Years' => '',
+ 'Yes' => 'Taip',
+ 'You are logged out' => '',
+ 'You are posting an existing transaction!' => '',
+ 'You are printing and posting an existing transaction!' => '',
+ 'You are printing and saving an existing order' => '',
+ 'You are printing and saving an existing quotation' => '',
+ 'You are printing and saving an existing transaction!' => '',
+ 'You are saving an existing order' => '',
+ 'You are saving an existing quotation' => '',
+ 'You are saving an existing transaction!' => '',
+ 'You did not enter a name!' => 'Neávedëte vardo!',
+ 'You must enter a host and port for local and remote connections!' => 'Turite ávesti hostà ir portà lokalioms ir nuotoliniams prisijungimams!',
+ 'Zip/Postal Code' => '',
+ 'account cannot be set to any other type of account' => '',
+ 'as at' => 'kaip',
+ 'days' => 'dienos',
+ 'does not exist' => 'ne egzistuoja',
+ 'done' => '',
+ 'ea' => 'kk',
+ 'failed' => '',
+ 'for' => '',
+ 'for Period' => 'periodui',
+ 'is already a member!' => 'jau narys',
+ 'localhost' => 'lokalhostas',
+ 'locked!' => '',
+ 'partsgroup' => '',
+ 'posted!' => '',
+ 'sent' => '',
+ 'successfully created!' => 'sëkmingai sukurta',
+ 'successfully deleted!' => 'sëkmingai iðtrinta',
+ 'time(s)' => '',
+ 'unexpected error!' => '',
+ 'website' => 'Websaitas',
+};
+
+1;
diff --git a/locale/lt/am b/locale/lt/am
new file mode 100755
index 00000000..0541c6a8
--- /dev/null
+++ b/locale/lt/am
@@ -0,0 +1,212 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'AP' => 'Pirkimai',
+ 'AR' => 'Pardavimai',
+ 'About' => 'Apie...',
+ 'Account' => 'Sàskaita',
+ 'Account Number' => 'Sàskaitos numeris',
+ 'Account Number missing!' => 'Sàskaitos numerio nëra!',
+ 'Account Type' => 'Sàskaitos tipas',
+ 'Account Type missing!' => 'Sàskaitos tipo nëra!',
+ 'Account deleted!' => 'Sàskaitos iðtrintos',
+ 'Account saved!' => 'Sàskaitos iðsaugotos',
+ 'Accounting Menu' => 'Apskaitos Menu',
+ 'Add Account' => 'Pridëti sàskaità',
+ 'Add GIFI' => 'Pridëti GIFI',
+ 'Address' => 'Adresas',
+ 'Amount' => 'Suma',
+ 'Asset' => 'Turtas',
+ 'Audit Control' => 'Audito kontrolë',
+ 'Backup sent to' => 'Reservinë kopija iðsiusta á',
+ 'Books are open' => 'Þurnalai atidaryti',
+ 'Business Number' => 'Ámonës kodas',
+ 'COGS' => 'PPS',
+ 'Cannot delete account!' => 'Neámanoma iðtrinti sàskaitos!',
+ 'Cannot delete default account!' => 'Neámanoma iðtrinti sàskaitos pagal nutylejimà!',
+ 'Cannot save account!' => 'Neámanoma iðsaugoti sàskaitos!',
+ 'Cannot save preferences!' => 'Neámanoma iðsaugoti nuostatø!',
+ 'Cash' => 'Kasa',
+ 'Chart of Accounts' => 'Sàskaitø planas',
+ 'Close Books up to' => 'Uþdaryti þurnalus iki',
+ 'Company' => 'Firma',
+ 'Confirm!' => 'Patvirtinti!',
+ 'Continue' => 'Tæsti',
+ 'Copy to COA' => 'Kopijuoti á SP',
+ 'Credit' => 'Kreditas',
+ 'Database Host' => 'Duomenø bazës hostas',
+ 'Dataset' => 'Duomenø aibë',
+ 'Date Format' => 'Datos Formatas',
+ 'Debit' => 'Debetas',
+ 'Delete' => 'Iðtrinti',
+ 'Delete Account' => 'Iðtrinti sàskaità',
+ 'Description' => 'Apraðymas',
+ 'Discount' => 'Nuolaidos',
+ 'Dropdown Limit' => 'Iðsiskleidþianèio meniu riba',
+ 'E-mail' => 'E-paðtas',
+ 'E-mail address missing!' => 'E-paðto adreso nëra!',
+ 'Edit' => 'Redaguoti',
+ 'Edit Account' => 'Redaguoti sàskaità',
+ 'Edit GIFI' => 'Redaguoti GIFI',
+ 'Edit Preferences for' => 'Redaguoti nuostatas...',
+ 'Edit Template' => 'Redaguoti ðablonà',
+ 'Enforce transaction reversal for all dates' => 'Reversuoti operacijas visoms datoms',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Áveskite iki 3-jø raidþiø, iðskirtø taðkais (Pvz. LTL:EUR:USD:YEN) savo ir uþsienio valiutoms paþymëti',
+ 'Equity' => 'Turtas/Nuosavybë',
+ 'Expense' => 'Sànaudos',
+ 'Expense/Asset' => 'Sànaudos/Aktyvai',
+ 'Fax' => 'Faksas',
+ 'Foreign Exchange Gain' => 'Valiûtos keitimo pelnas',
+ 'Foreign Exchange Loss' => 'Valiûtos keitimo nuostolis',
+ 'GIFI' => 'GIFI',
+ 'GIFI deleted!' => 'GIFI iðtrintas!',
+ 'GIFI missing!' => 'GIFI nëra!',
+ 'GIFI saved!' => 'GIFI iðsaugotas!',
+ 'GL Transaction' => 'BÞ operacija',
+ 'Heading' => 'Antraðtë',
+ 'ID' => 'ID',
+ 'Include in drop-down menus' => 'Ádëti á iðsáskleidþianèius meniu',
+ 'Inventory' => 'Prekës',
+ 'Invoice' => 'Sàskaita-faktûra',
+ 'Is this a summary account to record' => 'Ar èia apibendrinta áraðo sàskaita',
+ 'Language' => 'Kalba',
+ 'Last Numbers & Default Accounts' => 'Paskutinieji numeriai ir sàskaitos pagal nutylëjimà',
+ 'Liability' => 'Nuosavybë',
+ 'Licensed to' => 'Licenzijuota...',
+ 'Link' => 'Ryðys',
+ 'Name' => 'Vardas',
+ 'No' => 'Ne',
+ 'No email address for' => 'Nëra e-paðto adreso...',
+ 'Number' => 'Numeris',
+ 'Number Format' => 'Skaièiaus formatas',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Ápakavimo sàraðas',
+ 'Password' => 'Slaptaþodis',
+ 'Payables' => 'Pirkimai',
+ 'Payment' => 'Mokëjimas',
+ 'Phone' => 'Tel.',
+ 'Postscript' => 'Postscript(TM)',
+ 'Preferences saved!' => 'Nuostatos iðsaugotos!',
+ 'Print' => 'Spausdinti',
+ 'Printer' => 'Spausdintuvas',
+ 'Purchase Order' => 'Pirkimo uþsakymas',
+ 'Purchase Orders' => 'Pirkimo uþsakymai',
+ 'Rate' => 'Kursas',
+ 'Receivables' => 'Pardavimai',
+ 'Reference' => 'Nuorodos',
+ 'Retained Earnings' => 'Turimi uþdarbiai',
+ 'Sales Invoice' => 'Pardavimo SF',
+ 'Sales Order' => 'Pardavimø uþsakymas',
+ 'Sales Orders' => 'Pardavimø uþsakymai',
+ 'Save' => 'Iðsaugoti',
+ 'Save as new' => 'Iðsaugoti kaip naujà',
+ 'Signature' => 'Paraðas',
+ 'Stylesheet' => 'Stiliø lentelë',
+ 'Tax' => 'Mokëstis',
+ 'Template saved!' => 'Ðablonai iðsaugoti!',
+ 'Transaction reversal enforced for all dates' => 'Operacijos bus reversuojamos visoms datoms',
+ 'Transaction reversal enforced up to' => 'Operacijos bus reversuojamos iki',
+ 'Update' => 'Atnaujinti',
+ 'User' => 'Vartotojas',
+ 'Version' => 'Versija',
+ 'Weight Unit' => 'Svorio vienetas.',
+ 'Yes' => 'Taip',
+ 'localhost' => 'lokalhostas',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'pridëti_sàskaità' => 'add_account',
+ 'tæsti' => 'continue',
+ 'kopijuoti_á_sp' => 'copy_to_coa',
+ 'iðtrinti' => 'delete',
+ 'redaguoti' => 'edit',
+ 'redaguoti_sàskaità' => 'edit_account',
+ 'iðsaugoti' => 'save',
+ 'iðsaugoti_kaip_naujà' => 'save_as_new',
+ 'atnaujinti' => 'update',
+};
+
+1;
+
diff --git a/locale/lt/ap b/locale/lt/ap
new file mode 100755
index 00000000..a16f8be2
--- /dev/null
+++ b/locale/lt/ap
@@ -0,0 +1,181 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'AP Transaction' => 'Pirkimo Operacijà',
+ 'AP Transactions' => 'Pirkimo Operacijos',
+ 'AR Transaction' => 'Pardavimo Operacijà',
+ 'AR Transactions' => 'Pardavimo Operacijos',
+ 'Account' => 'Sàskaita',
+ 'Accounting Menu' => 'Apskaitos Menu',
+ 'Address' => 'Adresas',
+ 'Amount' => 'Suma',
+ 'Amount Due' => 'Suma iki',
+ 'Apr' => 'Bal',
+ 'April' => 'Balandis',
+ 'Are you sure you want to delete Transaction' => 'Ar Jus tikrai norite iðtrinti operacijà?',
+ 'Aug' => 'Rug',
+ 'August' => 'Rugpjûtis',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'Neámanoma iðtrinti operacijos!',
+ 'Cannot post payment for a closed period!' => 'Neámanoma patvirtinti mokëjimo uþdarajam periodui!',
+ 'Cannot post transaction for a closed period!' => 'Neámanoma patvirtinti operacijos uþdarajam periodui!',
+ 'Cannot post transaction!' => 'Neámanoma patvirtinti operacijos!',
+ 'Cc' => 'Cc',
+ 'Check' => 'Èekis',
+ 'Closed' => 'Uþdaryta',
+ 'Confirm!' => 'Patvirtinti!',
+ 'Continue' => 'Tæsti',
+ 'Credit' => 'Kreditas',
+ 'Credit Limit' => 'Kredito riba',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valiûta',
+ 'Current' => 'Dabartinis',
+ 'Customer' => 'Klientas',
+ 'Customer missing!' => 'Kliento vardo nëra!',
+ 'Customer not on file!' => 'Tokio kliento nëra!',
+ 'Date' => 'Data',
+ 'Date Paid' => 'Mokëjimo Data',
+ 'Debit' => 'Debetas',
+ 'Dec' => 'Grd',
+ 'December' => 'Gruodis',
+ 'Delete' => 'Iðtrinti',
+ 'Description' => 'Apraðymas',
+ 'Due Date' => 'Iki Data',
+ 'Due Date missing!' => 'Nëra Iki Datos!',
+ 'E-mail' => 'E-paðtas',
+ 'Employee' => 'Darbuotojas',
+ 'Exch' => 'Kurs.',
+ 'Exchange Rate' => 'Keitimo kursas',
+ 'Exchange rate for payment missing!' => 'Mokëjimo keitimo kurso nëra!',
+ 'Exchange rate missing!' => 'Keitimo kurso nëra!',
+ 'Feb' => 'Vas',
+ 'February' => 'Vasaris',
+ 'From' => 'Nuo',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Ádëti á ataskaità',
+ 'Invoice' => 'Sàskaita-faktûra',
+ 'Invoice Date' => 'Sàskaitos-faktûros data',
+ 'Invoice Date missing!' => 'Sàskaitos-faktûros datos nëra!',
+ 'Invoice Number' => 'Sàskaitos-faktûros numeris',
+ 'Jan' => 'Sau',
+ 'January' => 'Sausis',
+ 'Jul' => 'Lie',
+ 'July' => 'Liepa',
+ 'Jun' => 'Bir',
+ 'June' => 'Birþelis',
+ 'Mar' => 'Kov',
+ 'March' => 'Kovas',
+ 'May' => 'Geg',
+ 'May ' => 'Geguþë',
+ 'Message' => 'Þinutë',
+ 'No.' => 'Num',
+ 'Notes' => 'Pastaba',
+ 'Nov' => 'Lap',
+ 'November' => 'Lapkritis',
+ 'Number' => 'Numeris',
+ 'Oct' => 'Spa',
+ 'October' => 'Spalis',
+ 'Open' => 'Atidaryti',
+ 'Order' => 'Uþsakymas',
+ 'Order Number' => 'Uþsakymo numeris',
+ 'PDF' => 'PDF',
+ 'Paid' => 'Apmokëta',
+ 'Payment date missing!' => 'Mokëjimo datos nëra',
+ 'Payments' => 'Mokëjimai',
+ 'Post' => 'Patvirtinti',
+ 'Post as new' => 'Patvirtinti kaip naujà',
+ 'Postscript' => 'Postscript(TM)',
+ 'Print' => 'Spausdinti',
+ 'Project' => 'Projektas',
+ 'Project not on file!' => 'Nëra tokio projekto!',
+ 'Receipt' => 'Kasos orderis',
+ 'Reference' => 'Nuorodos',
+ 'Remaining' => 'Likutis',
+ 'Screen' => 'Ekranas',
+ 'Select from one of the names below' => 'Iðrinkite vienà ið pavadinimø apaèioje',
+ 'Select from one of the projects below' => 'Iðrinkite vienà ið projektø apaèioje',
+ 'Select postscript or PDF!' => 'Iðrinkite postscript arba PDF!',
+ 'Sep' => 'Rgs',
+ 'September' => 'Rûgsëjis',
+ 'Ship to' => 'Pristatyti á',
+ 'Ship via' => 'Pristatyti per',
+ 'Source' => 'Dokumentas',
+ 'Subject' => 'Dalykas',
+ 'Subtotal' => 'Viso',
+ 'Tax' => 'Mokëstis',
+ 'Tax Included' => 'su mokesèiais',
+ 'To' => 'iki',
+ 'Total' => 'Ið viso',
+ 'Transaction deleted!' => 'Operacija iðtrinta!',
+ 'Transaction posted!' => 'Operacija patvirtinta!',
+ 'Update' => 'Atnaujinti',
+ 'Vendor' => 'Tiekëjas',
+ 'Vendor missing!' => 'Tiekëjo Vardo nëra!',
+ 'Vendor not on file!' => 'Tokio tiekëjo nëra!',
+ 'Yes' => 'Taip',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'pirkimo_operacijà' => 'ap_transaction',
+ 'pardavimo_operacijà' => 'ar_transaction',
+ 'tæsti' => 'continue',
+ 'iðtrinti' => 'delete',
+ 'patvirtinti' => 'post',
+ 'patvirtinti_kaip_naujà' => 'post_as_new',
+ 'spausdinti' => 'print',
+ 'pristatyti_á' => 'ship_to',
+ 'atnaujinti' => 'update',
+ 'taip' => 'yes',
+};
+
+1;
+
diff --git a/locale/lt/ar b/locale/lt/ar
new file mode 100755
index 00000000..a16f8be2
--- /dev/null
+++ b/locale/lt/ar
@@ -0,0 +1,181 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'AP Transaction' => 'Pirkimo Operacijà',
+ 'AP Transactions' => 'Pirkimo Operacijos',
+ 'AR Transaction' => 'Pardavimo Operacijà',
+ 'AR Transactions' => 'Pardavimo Operacijos',
+ 'Account' => 'Sàskaita',
+ 'Accounting Menu' => 'Apskaitos Menu',
+ 'Address' => 'Adresas',
+ 'Amount' => 'Suma',
+ 'Amount Due' => 'Suma iki',
+ 'Apr' => 'Bal',
+ 'April' => 'Balandis',
+ 'Are you sure you want to delete Transaction' => 'Ar Jus tikrai norite iðtrinti operacijà?',
+ 'Aug' => 'Rug',
+ 'August' => 'Rugpjûtis',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'Neámanoma iðtrinti operacijos!',
+ 'Cannot post payment for a closed period!' => 'Neámanoma patvirtinti mokëjimo uþdarajam periodui!',
+ 'Cannot post transaction for a closed period!' => 'Neámanoma patvirtinti operacijos uþdarajam periodui!',
+ 'Cannot post transaction!' => 'Neámanoma patvirtinti operacijos!',
+ 'Cc' => 'Cc',
+ 'Check' => 'Èekis',
+ 'Closed' => 'Uþdaryta',
+ 'Confirm!' => 'Patvirtinti!',
+ 'Continue' => 'Tæsti',
+ 'Credit' => 'Kreditas',
+ 'Credit Limit' => 'Kredito riba',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valiûta',
+ 'Current' => 'Dabartinis',
+ 'Customer' => 'Klientas',
+ 'Customer missing!' => 'Kliento vardo nëra!',
+ 'Customer not on file!' => 'Tokio kliento nëra!',
+ 'Date' => 'Data',
+ 'Date Paid' => 'Mokëjimo Data',
+ 'Debit' => 'Debetas',
+ 'Dec' => 'Grd',
+ 'December' => 'Gruodis',
+ 'Delete' => 'Iðtrinti',
+ 'Description' => 'Apraðymas',
+ 'Due Date' => 'Iki Data',
+ 'Due Date missing!' => 'Nëra Iki Datos!',
+ 'E-mail' => 'E-paðtas',
+ 'Employee' => 'Darbuotojas',
+ 'Exch' => 'Kurs.',
+ 'Exchange Rate' => 'Keitimo kursas',
+ 'Exchange rate for payment missing!' => 'Mokëjimo keitimo kurso nëra!',
+ 'Exchange rate missing!' => 'Keitimo kurso nëra!',
+ 'Feb' => 'Vas',
+ 'February' => 'Vasaris',
+ 'From' => 'Nuo',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Ádëti á ataskaità',
+ 'Invoice' => 'Sàskaita-faktûra',
+ 'Invoice Date' => 'Sàskaitos-faktûros data',
+ 'Invoice Date missing!' => 'Sàskaitos-faktûros datos nëra!',
+ 'Invoice Number' => 'Sàskaitos-faktûros numeris',
+ 'Jan' => 'Sau',
+ 'January' => 'Sausis',
+ 'Jul' => 'Lie',
+ 'July' => 'Liepa',
+ 'Jun' => 'Bir',
+ 'June' => 'Birþelis',
+ 'Mar' => 'Kov',
+ 'March' => 'Kovas',
+ 'May' => 'Geg',
+ 'May ' => 'Geguþë',
+ 'Message' => 'Þinutë',
+ 'No.' => 'Num',
+ 'Notes' => 'Pastaba',
+ 'Nov' => 'Lap',
+ 'November' => 'Lapkritis',
+ 'Number' => 'Numeris',
+ 'Oct' => 'Spa',
+ 'October' => 'Spalis',
+ 'Open' => 'Atidaryti',
+ 'Order' => 'Uþsakymas',
+ 'Order Number' => 'Uþsakymo numeris',
+ 'PDF' => 'PDF',
+ 'Paid' => 'Apmokëta',
+ 'Payment date missing!' => 'Mokëjimo datos nëra',
+ 'Payments' => 'Mokëjimai',
+ 'Post' => 'Patvirtinti',
+ 'Post as new' => 'Patvirtinti kaip naujà',
+ 'Postscript' => 'Postscript(TM)',
+ 'Print' => 'Spausdinti',
+ 'Project' => 'Projektas',
+ 'Project not on file!' => 'Nëra tokio projekto!',
+ 'Receipt' => 'Kasos orderis',
+ 'Reference' => 'Nuorodos',
+ 'Remaining' => 'Likutis',
+ 'Screen' => 'Ekranas',
+ 'Select from one of the names below' => 'Iðrinkite vienà ið pavadinimø apaèioje',
+ 'Select from one of the projects below' => 'Iðrinkite vienà ið projektø apaèioje',
+ 'Select postscript or PDF!' => 'Iðrinkite postscript arba PDF!',
+ 'Sep' => 'Rgs',
+ 'September' => 'Rûgsëjis',
+ 'Ship to' => 'Pristatyti á',
+ 'Ship via' => 'Pristatyti per',
+ 'Source' => 'Dokumentas',
+ 'Subject' => 'Dalykas',
+ 'Subtotal' => 'Viso',
+ 'Tax' => 'Mokëstis',
+ 'Tax Included' => 'su mokesèiais',
+ 'To' => 'iki',
+ 'Total' => 'Ið viso',
+ 'Transaction deleted!' => 'Operacija iðtrinta!',
+ 'Transaction posted!' => 'Operacija patvirtinta!',
+ 'Update' => 'Atnaujinti',
+ 'Vendor' => 'Tiekëjas',
+ 'Vendor missing!' => 'Tiekëjo Vardo nëra!',
+ 'Vendor not on file!' => 'Tokio tiekëjo nëra!',
+ 'Yes' => 'Taip',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'pirkimo_operacijà' => 'ap_transaction',
+ 'pardavimo_operacijà' => 'ar_transaction',
+ 'tæsti' => 'continue',
+ 'iðtrinti' => 'delete',
+ 'patvirtinti' => 'post',
+ 'patvirtinti_kaip_naujà' => 'post_as_new',
+ 'spausdinti' => 'print',
+ 'pristatyti_á' => 'ship_to',
+ 'atnaujinti' => 'update',
+ 'taip' => 'yes',
+};
+
+1;
+
diff --git a/locale/lt/arap b/locale/lt/arap
new file mode 100755
index 00000000..0eeb18b8
--- /dev/null
+++ b/locale/lt/arap
@@ -0,0 +1,50 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'Address' => 'Adresas',
+ 'Bcc' => 'Bcc',
+ 'Cc' => 'Cc',
+ 'Continue' => 'Tæsti',
+ 'Customer not on file!' => 'Tokio kliento nëra!',
+ 'Date' => 'Data',
+ 'Description' => 'Apraðymas',
+ 'E-mail' => 'E-paðtas',
+ 'Message' => 'Þinutë',
+ 'Number' => 'Numeris',
+ 'Print' => 'Spausdinti',
+ 'Project not on file!' => 'Nëra tokio projekto!',
+ 'Reference' => 'Nuorodos',
+ 'Select from one of the names below' => 'Iðrinkite vienà ið pavadinimø apaèioje',
+ 'Select from one of the projects below' => 'Iðrinkite vienà ið projektø apaèioje',
+ 'Subject' => 'Dalykas',
+ 'To' => 'iki',
+ 'Vendor not on file!' => 'Tokio tiekëjo nëra!',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'tæsti' => 'continue',
+};
+
+1;
+
diff --git a/locale/lt/arapprn b/locale/lt/arapprn
new file mode 100755
index 00000000..35b7641f
--- /dev/null
+++ b/locale/lt/arapprn
@@ -0,0 +1,30 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'Account' => 'Sàskaita',
+ 'Amount' => 'Suma',
+ 'Continue' => 'Tæsti',
+ 'Date' => 'Data',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'Postscript(TM)',
+ 'Screen' => 'Ekranas',
+ 'Select postscript or PDF!' => 'Iðrinkite postscript arba PDF!',
+ 'Source' => 'Dokumentas',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'tæsti' => 'continue',
+};
+
+1;
+
diff --git a/locale/lt/bp b/locale/lt/bp
new file mode 100755
index 00000000..b1d2764e
--- /dev/null
+++ b/locale/lt/bp
@@ -0,0 +1,47 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'Account' => 'Sàskaita',
+ 'Accounting Menu' => 'Apskaitos Menu',
+ 'Confirm!' => 'Patvirtinti!',
+ 'Continue' => 'Tæsti',
+ 'Current' => 'Dabartinis',
+ 'Customer' => 'Klientas',
+ 'Date' => 'Data',
+ 'Employee' => 'Darbuotojas',
+ 'From' => 'Nuo',
+ 'ID' => 'ID',
+ 'Invoice' => 'Sàskaita-faktûra',
+ 'Invoice Number' => 'Sàskaitos-faktûros numeris',
+ 'Order' => 'Uþsakymas',
+ 'Order Number' => 'Uþsakymo numeris',
+ 'Print' => 'Spausdinti',
+ 'Purchase Orders' => 'Pirkimo uþsakymai',
+ 'Sales Orders' => 'Pardavimø uþsakymai',
+ 'Select all' => 'Iðrinkti viskà',
+ 'To' => 'iki',
+ 'Vendor' => 'Tiekëjas',
+ 'Yes' => 'Taip',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'tæsti' => 'continue',
+ 'spausdinti' => 'print',
+ 'iðrinkti_viskà' => 'select_all',
+ 'taip' => 'yes',
+};
+
+1;
+
diff --git a/locale/lt/ca b/locale/lt/ca
new file mode 100755
index 00000000..6672206b
--- /dev/null
+++ b/locale/lt/ca
@@ -0,0 +1,54 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'Account' => 'Sàskaita',
+ 'Apr' => 'Bal',
+ 'April' => 'Balandis',
+ 'Aug' => 'Rug',
+ 'August' => 'Rugpjûtis',
+ 'Balance' => 'Balansas',
+ 'Chart of Accounts' => 'Sàskaitø planas',
+ 'Credit' => 'Kreditas',
+ 'Current' => 'Dabartinis',
+ 'Date' => 'Data',
+ 'Debit' => 'Debetas',
+ 'Dec' => 'Grd',
+ 'December' => 'Gruodis',
+ 'Description' => 'Apraðymas',
+ 'Feb' => 'Vas',
+ 'February' => 'Vasaris',
+ 'From' => 'Nuo',
+ 'GIFI' => 'GIFI',
+ 'Include in Report' => 'Ádëti á ataskaità',
+ 'Jan' => 'Sau',
+ 'January' => 'Sausis',
+ 'Jul' => 'Lie',
+ 'July' => 'Liepa',
+ 'Jun' => 'Bir',
+ 'June' => 'Birþelis',
+ 'List Transactions' => 'Parodyti operacijas',
+ 'Mar' => 'Kov',
+ 'March' => 'Kovas',
+ 'May' => 'Geg',
+ 'May ' => 'Geguþë',
+ 'Nov' => 'Lap',
+ 'November' => 'Lapkritis',
+ 'Oct' => 'Spa',
+ 'October' => 'Spalis',
+ 'Reference' => 'Nuorodos',
+ 'Sep' => 'Rgs',
+ 'September' => 'Rûgsëjis',
+ 'Subtotal' => 'Viso',
+ 'To' => 'iki',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'parodyti_operacijas' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/lt/cp b/locale/lt/cp
new file mode 100755
index 00000000..2af27c3c
--- /dev/null
+++ b/locale/lt/cp
@@ -0,0 +1,115 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'AP' => 'Pirkimai',
+ 'AR' => 'Pardavimai',
+ 'Account' => 'Sàskaita',
+ 'Accounting Menu' => 'Apskaitos Menu',
+ 'Address' => 'Adresas',
+ 'All' => 'Visi',
+ 'Amount' => 'Suma',
+ 'Amount Due' => 'Suma iki',
+ 'Bcc' => 'Bcc',
+ 'Cannot post payment for a closed period!' => 'Neámanoma patvirtinti mokëjimo uþdarajam periodui!',
+ 'Cc' => 'Cc',
+ 'Continue' => 'Tæsti',
+ 'Currency' => 'Valiûta',
+ 'Customer' => 'Klientas',
+ 'Customer not on file!' => 'Tokio kliento nëra!',
+ 'Date' => 'Data',
+ 'Date missing!' => 'Datos nëra!',
+ 'Deposit' => 'Depozitas',
+ 'Description' => 'Apraðymas',
+ 'Due Date' => 'Iki Data',
+ 'E-mail' => 'E-paðtas',
+ 'Exchange Rate' => 'Keitimo kursas',
+ 'Exchange rate missing!' => 'Keitimo kurso nëra!',
+ 'From' => 'Nuo',
+ 'Invoice' => 'Sàskaita-faktûra',
+ 'Invoices' => 'Sàskaitos-faktûros',
+ 'Language' => 'Kalba',
+ 'Message' => 'Þinutë',
+ 'Number' => 'Numeris',
+ 'PDF' => 'PDF',
+ 'Payment' => 'Mokëjimas',
+ 'Payment posted!' => 'Mokëjimas patvirtintas!',
+ 'Payments' => 'Mokëjimai',
+ 'Post' => 'Patvirtinti',
+ 'Postscript' => 'Postscript(TM)',
+ 'Print' => 'Spausdinti',
+ 'Project not on file!' => 'Nëra tokio projekto!',
+ 'Receipt' => 'Kasos orderis',
+ 'Receipts' => 'Kasos orderiai',
+ 'Reference' => 'Nuorodos',
+ 'Screen' => 'Ekranas',
+ 'Select all' => 'Iðrinkti viskà',
+ 'Select from one of the names below' => 'Iðrinkite vienà ið pavadinimø apaèioje',
+ 'Select from one of the projects below' => 'Iðrinkite vienà ið projektø apaèioje',
+ 'Select postscript or PDF!' => 'Iðrinkite postscript arba PDF!',
+ 'Source' => 'Dokumentas',
+ 'Subject' => 'Dalykas',
+ 'To' => 'iki',
+ 'Update' => 'Atnaujinti',
+ 'Vendor' => 'Tiekëjas',
+ 'Vendor not on file!' => 'Tokio tiekëjo nëra!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'tæsti' => 'continue',
+ 'patvirtinti' => 'post',
+ 'spausdinti' => 'print',
+ 'iðrinkti_viskà' => 'select_all',
+ 'atnaujinti' => 'update',
+};
+
+1;
+
diff --git a/locale/lt/ct b/locale/lt/ct
new file mode 100755
index 00000000..64433d55
--- /dev/null
+++ b/locale/lt/ct
@@ -0,0 +1,136 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'AP Transaction' => 'Pirkimo Operacijà',
+ 'AP Transactions' => 'Pirkimo Operacijos',
+ 'AR Transaction' => 'Pardavimo Operacijà',
+ 'AR Transactions' => 'Pardavimo Operacijos',
+ 'Accounting Menu' => 'Apskaitos Menu',
+ 'Active' => 'Aktyvus',
+ 'Add Customer' => 'Pridëti klientà',
+ 'Add Vendor' => 'Pridëti Tiekëja',
+ 'Address' => 'Adresas',
+ 'All' => 'Visi',
+ 'Amount' => 'Suma',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete customer!' => 'Neámanoma iðtrinti kliento!',
+ 'Cannot delete vendor!' => 'Neámanoma iðtrinti tiekëjo!',
+ 'Cc' => 'Cc',
+ 'Closed' => 'Uþdaryta',
+ 'Contact' => 'Kontaktas',
+ 'Continue' => 'Tæsti',
+ 'Credit Limit' => 'Kredito riba',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valiûta',
+ 'Customer deleted!' => 'Klientas iðtrintas!',
+ 'Customer saved!' => 'Klientas iðsaugotas!',
+ 'Customers' => 'Klientai',
+ 'Delete' => 'Iðtrinti',
+ 'Delivery Date' => 'Prystatimo Data',
+ 'Description' => 'Apraðymas',
+ 'Discount' => 'Nuolaidos',
+ 'E-mail' => 'E-paðtas',
+ 'Edit Customer' => 'Redaguoti Klientà',
+ 'Edit Vendor' => 'Redaguoti Tiekijà',
+ 'Employee' => 'Darbuotojas',
+ 'Fax' => 'Faksas',
+ 'From' => 'Nuo',
+ 'GIFI' => 'GIFI',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Ádëti á ataskaità',
+ 'Invoice' => 'Sàskaita-faktûra',
+ 'Item not on file!' => 'Vieneto nëra áraðuose!',
+ 'Language' => 'Kalba',
+ 'Name' => 'Vardas',
+ 'Name missing!' => 'Pavadinimo nëra',
+ 'No.' => 'Num',
+ 'Notes' => 'Pastaba',
+ 'Number' => 'Numeris',
+ 'Open' => 'Atidaryti',
+ 'Order' => 'Uþsakymas',
+ 'Orphaned' => 'Naðlaitinis',
+ 'Phone' => 'Tel.',
+ 'Purchase Order' => 'Pirkimo uþsakymas',
+ 'Purchase Orders' => 'Pirkimo uþsakymai',
+ 'Qty' => 'Kks',
+ 'Sales Invoice' => 'Pardavimo SF',
+ 'Sales Order' => 'Pardavimø uþsakymas',
+ 'Sales Orders' => 'Pardavimø uþsakymai',
+ 'Save' => 'Iðsaugoti',
+ 'Save as new' => 'Iðsaugoti kaip naujà',
+ 'Sell Price' => 'Pardavimo kaina',
+ 'Subtotal' => 'Viso',
+ 'Tax' => 'Mokëstis',
+ 'Tax Included' => 'su mokesèiais',
+ 'Taxable' => 'Apmokestinama',
+ 'Terms' => 'Terminas: ',
+ 'To' => 'iki',
+ 'Total' => 'Ið viso',
+ 'Unit' => 'Vienetas',
+ 'Update' => 'Atnaujinti',
+ 'Vendor deleted!' => 'Tiekëjas iðtrintas!',
+ 'Vendor saved!' => 'Tiekëjai iðsaugoti',
+ 'Vendors' => 'Tiekëjai',
+ 'days' => 'dienos',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'pirkimo_operacijà' => 'ap_transaction',
+ 'pardavimo_operacijà' => 'ar_transaction',
+ 'pridëti_klientà' => 'add_customer',
+ 'pridëti_tiekëja' => 'add_vendor',
+ 'tæsti' => 'continue',
+ 'iðtrinti' => 'delete',
+ 'pirkimo_uþsakymas' => 'purchase_order',
+ 'pardavimo_sf' => 'sales_invoice',
+ 'pardavimø_uþsakymas' => 'sales_order',
+ 'iðsaugoti' => 'save',
+ 'iðsaugoti_kaip_naujà' => 'save_as_new',
+ 'atnaujinti' => 'update',
+};
+
+1;
+
diff --git a/locale/lt/gl b/locale/lt/gl
new file mode 100755
index 00000000..daf6a0da
--- /dev/null
+++ b/locale/lt/gl
@@ -0,0 +1,141 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'AP Transaction' => 'Pirkimo Operacijà',
+ 'AR Transaction' => 'Pardavimo Operacijà',
+ 'Account' => 'Sàskaita',
+ 'Accounting Menu' => 'Apskaitos Menu',
+ 'Add General Ledger Transaction' => 'Pridëti Bendroji Þurnalo Operacijà',
+ 'Address' => 'Adresas',
+ 'All' => 'Visi',
+ 'Amount' => 'Suma',
+ 'Apr' => 'Bal',
+ 'April' => 'Balandis',
+ 'Are you sure you want to delete Transaction' => 'Ar Jus tikrai norite iðtrinti operacijà?',
+ 'Asset' => 'Turtas',
+ 'Aug' => 'Rug',
+ 'August' => 'Rugpjûtis',
+ 'Balance' => 'Balansas',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'Neámanoma iðtrinti operacijos!',
+ 'Cannot post transaction for a closed period!' => 'Neámanoma patvirtinti operacijos uþdarajam periodui!',
+ 'Cannot post transaction!' => 'Neámanoma patvirtinti operacijos!',
+ 'Cc' => 'Cc',
+ 'Confirm!' => 'Patvirtinti!',
+ 'Continue' => 'Tæsti',
+ 'Credit' => 'Kreditas',
+ 'Current' => 'Dabartinis',
+ 'Customer not on file!' => 'Tokio kliento nëra!',
+ 'Date' => 'Data',
+ 'Debit' => 'Debetas',
+ 'Dec' => 'Grd',
+ 'December' => 'Gruodis',
+ 'Delete' => 'Iðtrinti',
+ 'Description' => 'Apraðymas',
+ 'E-mail' => 'E-paðtas',
+ 'Edit General Ledger Transaction' => 'Redaguoti Bendrojo Þurnalo operacijà',
+ 'Equity' => 'Turtas/Nuosavybë',
+ 'Expense' => 'Sànaudos',
+ 'Feb' => 'Vas',
+ 'February' => 'Vasaris',
+ 'From' => 'Nuo',
+ 'GIFI' => 'GIFI',
+ 'GL Transaction' => 'BÞ operacija',
+ 'General Ledger' => 'Bendrasis þurnalas',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Ádëti á ataskaità',
+ 'Jan' => 'Sau',
+ 'January' => 'Sausis',
+ 'Jul' => 'Lie',
+ 'July' => 'Liepa',
+ 'Jun' => 'Bir',
+ 'June' => 'Birþelis',
+ 'Liability' => 'Nuosavybë',
+ 'Mar' => 'Kov',
+ 'March' => 'Kovas',
+ 'May' => 'Geg',
+ 'May ' => 'Geguþë',
+ 'Message' => 'Þinutë',
+ 'Notes' => 'Pastaba',
+ 'Nov' => 'Lap',
+ 'November' => 'Lapkritis',
+ 'Number' => 'Numeris',
+ 'Oct' => 'Spa',
+ 'October' => 'Spalis',
+ 'Post' => 'Patvirtinti',
+ 'Post as new' => 'Patvirtinti kaip naujà',
+ 'Print' => 'Spausdinti',
+ 'Project' => 'Projektas',
+ 'Project not on file!' => 'Nëra tokio projekto!',
+ 'Reference' => 'Nuorodos',
+ 'Reports' => 'Ataskaitos',
+ 'Select from one of the names below' => 'Iðrinkite vienà ið pavadinimø apaèioje',
+ 'Select from one of the projects below' => 'Iðrinkite vienà ið projektø apaèioje',
+ 'Sep' => 'Rgs',
+ 'September' => 'Rûgsëjis',
+ 'Source' => 'Dokumentas',
+ 'Subject' => 'Dalykas',
+ 'Subtotal' => 'Viso',
+ 'To' => 'iki',
+ 'Transaction Date missing!' => 'Operacijos datos nëra!',
+ 'Transaction deleted!' => 'Operacija iðtrinta!',
+ 'Transaction posted!' => 'Operacija patvirtinta!',
+ 'Update' => 'Atnaujinti',
+ 'Vendor not on file!' => 'Tokio tiekëjo nëra!',
+ 'Yes' => 'Taip',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'pirkimo_operacijà' => 'ap_transaction',
+ 'pardavimo_operacijà' => 'ar_transaction',
+ 'tæsti' => 'continue',
+ 'iðtrinti' => 'delete',
+ 'bÞ_operacija' => 'gl_transaction',
+ 'patvirtinti' => 'post',
+ 'patvirtinti_kaip_naujà' => 'post_as_new',
+ 'atnaujinti' => 'update',
+ 'taip' => 'yes',
+};
+
+1;
+
diff --git a/locale/lt/hr b/locale/lt/hr
new file mode 100755
index 00000000..97f94d48
--- /dev/null
+++ b/locale/lt/hr
@@ -0,0 +1,74 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'AP' => 'Pirkimai',
+ 'Accounting Menu' => 'Apskaitos Menu',
+ 'Active' => 'Aktyvus',
+ 'Address' => 'Adresas',
+ 'Administrator' => 'Administratorius',
+ 'All' => 'Visi',
+ 'Amount' => 'Suma',
+ 'Continue' => 'Tæsti',
+ 'Delete' => 'Iðtrinti',
+ 'Description' => 'Apraðymas',
+ 'E-mail' => 'E-paðtas',
+ 'Employee' => 'Darbuotojas',
+ 'Expense' => 'Sànaudos',
+ 'From' => 'Nuo',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Ádëti á ataskaità',
+ 'Login' => 'Prisijungimas',
+ 'Name' => 'Vardas',
+ 'Name missing!' => 'Pavadinimo nëra',
+ 'Notes' => 'Pastaba',
+ 'Number' => 'Numeris',
+ 'Orphaned' => 'Naðlaitinis',
+ 'Rate' => 'Kursas',
+ 'Sales' => 'Pardavimai',
+ 'Save' => 'Iðsaugoti',
+ 'Save as new' => 'Iðsaugoti kaip naujà',
+ 'To' => 'iki',
+ 'Update' => 'Atnaujinti',
+ 'User' => 'Vartotojas',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'tæsti' => 'continue',
+ 'iðtrinti' => 'delete',
+ 'iðsaugoti' => 'save',
+ 'iðsaugoti_kaip_naujà' => 'save_as_new',
+ 'atnaujinti' => 'update',
+};
+
+1;
+
diff --git a/locale/lt/ic b/locale/lt/ic
new file mode 100755
index 00000000..fe1efe11
--- /dev/null
+++ b/locale/lt/ic
@@ -0,0 +1,223 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Apskaitos Menu',
+ 'Accounts' => 'Sàskaitos',
+ 'Active' => 'Aktyvus',
+ 'Add' => 'Pridëti',
+ 'Add Assembly' => 'Pridëti rinkiná',
+ 'Add Part' => 'Pridëti prekæ',
+ 'Add Purchase Order' => 'Pridëti Pirkimo uþsakymà',
+ 'Add Sales Order' => 'Pridëti Pardavimo uþsakymà',
+ 'Add Service' => 'Pridëti Paslaugà',
+ 'Address' => 'Adresas',
+ 'Apr' => 'Bal',
+ 'April' => 'Balandis',
+ 'Assemblies' => 'Rinkiniai',
+ 'Assemblies restocked!' => 'Rinkiniai persandeliuoti!',
+ 'Attachment' => 'Prisegta',
+ 'Aug' => 'Rug',
+ 'August' => 'Rugpjûtis',
+ 'BOM' => 'BOM',
+ 'Bcc' => 'Bcc',
+ 'Bin' => 'Dëþë',
+ 'COGS' => 'PPS',
+ 'Cannot delete item!' => 'Neámanoma iðtrinti prekës!',
+ 'Cannot stock assemblies!' => 'Neámanoma sandelioti rinkinius!',
+ 'Cash' => 'Kasa',
+ 'Cc' => 'Cc',
+ 'Closed' => 'Uþdaryta',
+ 'Contact' => 'Kontaktas',
+ 'Continue' => 'Tæsti',
+ 'Copies' => 'Kopijos',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valiûta',
+ 'Customer' => 'Klientas',
+ 'Customer not on file!' => 'Tokio kliento nëra!',
+ 'Date' => 'Data',
+ 'Dec' => 'Grd',
+ 'December' => 'Gruodis',
+ 'Delete' => 'Iðtrinti',
+ 'Delivery Date' => 'Prystatimo Data',
+ 'Description' => 'Apraðymas',
+ 'Drawing' => 'Brieþinys',
+ 'E-mail' => 'E-paðtas',
+ 'E-mail address missing!' => 'E-paðto adreso nëra!',
+ 'Edit Assembly' => 'Redaguoti rinkiná',
+ 'Edit Part' => 'Redaguoti prekæ',
+ 'Edit Service' => 'Redaguoti paslaugà',
+ 'Employee' => 'Darbuotojas',
+ 'Expense' => 'Sànaudos',
+ 'Extended' => 'Iðplësta',
+ 'Fax' => 'Faksas',
+ 'Feb' => 'Vas',
+ 'February' => 'Vasaris',
+ 'From' => 'Nuo',
+ 'Image' => 'Pieðinys',
+ 'In-line' => 'Vienaeilis',
+ 'Include in Report' => 'Ádëti á ataskaità',
+ 'Individual Items' => 'Individualios prekës',
+ 'Inventory' => 'Prekës',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Prekës kiekis turi bûti lygus nuliui prieð paþymint rinkiná pasenusiu!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Prekës kiekis turi bûti lygus nuliui prieð paþymint ðià dalá pasenusia!',
+ 'Invoice' => 'Sàskaita-faktûra',
+ 'Invoice Date missing!' => 'Sàskaitos-faktûros datos nëra!',
+ 'Invoice Number' => 'Sàskaitos-faktûros numeris',
+ 'Invoice Number missing!' => 'Sàskaitos-faktûra numerio nëra!',
+ 'Item deleted!' => 'Vienetas iðtrintas!',
+ 'Item not on file!' => 'Vieneto nëra áraðuose!',
+ 'Jan' => 'Sau',
+ 'January' => 'Sausis',
+ 'Jul' => 'Lie',
+ 'July' => 'Liepa',
+ 'Jun' => 'Bir',
+ 'June' => 'Birþelis',
+ 'Line Total' => 'Viso eilutëje',
+ 'Link Accounts' => 'Suriðti sàskaitas',
+ 'List Price' => 'Pirkimo kaina',
+ 'Make' => 'Gamintojas',
+ 'Mar' => 'Kov',
+ 'March' => 'Kovas',
+ 'May' => 'Geg',
+ 'May ' => 'Geguþë',
+ 'Message' => 'Þinutë',
+ 'Microfiche' => 'Mikrofiða',
+ 'Model' => 'Modelis',
+ 'Name' => 'Vardas',
+ 'No.' => 'Num',
+ 'Notes' => 'Pastaba',
+ 'Nov' => 'Lap',
+ 'November' => 'Lapkritis',
+ 'Number' => 'Numeris',
+ 'Number missing in Row' => 'Numerio nëra eilëje',
+ 'Obsolete' => 'Pasenæ',
+ 'Oct' => 'Spa',
+ 'October' => 'Spalis',
+ 'On Hand' => 'Likutis',
+ 'Open' => 'Atidaryti',
+ 'Order' => 'Uþsakymas',
+ 'Order Date missing!' => 'Uþsakymo datos nëra!',
+ 'Order Number' => 'Uþsakymo numeris',
+ 'Order Number missing!' => 'Uþsakymo numerio nëra!',
+ 'Orphaned' => 'Naðlaitinis',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Ápakavimo sàraðas',
+ 'Packing List Date missing!' => 'Ápakavimo sàraðo datos nëra!',
+ 'Packing List Number missing!' => 'Ápakavimo sàraðo numerio nëra!',
+ 'Part' => 'Prekë',
+ 'Parts' => 'Prekës',
+ 'Phone' => 'Tel.',
+ 'Postscript' => 'Postscript(TM)',
+ 'Price' => 'Kaina',
+ 'Project' => 'Projektas',
+ 'Purchase Order' => 'Pirkimo uþsakymas',
+ 'Purchase Orders' => 'Pirkimo uþsakymai',
+ 'Qty' => 'Kks',
+ 'ROP' => 'ROP',
+ 'Recd' => 'Gaut',
+ 'Required by' => 'Iki kada',
+ 'Sales Invoice' => 'Pardavimo SF',
+ 'Sales Order' => 'Pardavimø uþsakymas',
+ 'Sales Orders' => 'Pardavimø uþsakymai',
+ 'Save' => 'Iðsaugoti',
+ 'Save as new' => 'Iðsaugoti kaip naujà',
+ 'Screen' => 'Ekranas',
+ 'Select from one of the names below' => 'Iðrinkite vienà ið pavadinimø apaèioje',
+ 'Sell Price' => 'Pardavimo kaina',
+ 'Sep' => 'Rgs',
+ 'September' => 'Rûgsëjis',
+ 'Service' => 'Paslauga',
+ 'Services' => 'Paslaugos',
+ 'Ship' => 'Pristatymas',
+ 'Ship to' => 'Pristatyti á',
+ 'Short' => 'Stoka',
+ 'Stock Assembly' => 'Rinkiniai sandëlyje',
+ 'Subject' => 'Dalykas',
+ 'Subtotal' => 'Viso',
+ 'Tax' => 'Mokëstis',
+ 'To' => 'iki',
+ 'Top Level' => 'Aukðèiausias lygis',
+ 'Unit' => 'Vienetas',
+ 'Update' => 'Atnaujinti',
+ 'Updated' => 'Atnaujinta',
+ 'Vendor' => 'Tiekëjas',
+ 'Vendor not on file!' => 'Tokio tiekëjo nëra!',
+ 'Weight' => 'Svoris',
+ 'What type of item is this?' => 'Koks ðio dalyko tipas?',
+ 'days' => 'dienos',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'pridëti_rinkiná' => 'add_assembly',
+ 'pridëti_prekæ' => 'add_part',
+ 'pridëti_paslaugà' => 'add_service',
+ 'tæsti' => 'continue',
+ 'iðtrinti' => 'delete',
+ 'redaguoti_rinkiná' => 'edit_assembly',
+ 'redaguoti_prekæ' => 'edit_part',
+ 'redaguoti_paslaugà' => 'edit_service',
+ 'iðsaugoti' => 'save',
+ 'iðsaugoti_kaip_naujà' => 'save_as_new',
+ 'atnaujinti' => 'update',
+};
+
+1;
+
diff --git a/locale/lt/io b/locale/lt/io
new file mode 100755
index 00000000..ef614575
--- /dev/null
+++ b/locale/lt/io
@@ -0,0 +1,107 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'Add Purchase Order' => 'Pridëti Pirkimo uþsakymà',
+ 'Add Sales Order' => 'Pridëti Pardavimo uþsakymà',
+ 'Address' => 'Adresas',
+ 'Apr' => 'Bal',
+ 'April' => 'Balandis',
+ 'Attachment' => 'Prisegta',
+ 'Aug' => 'Rug',
+ 'August' => 'Rugpjûtis',
+ 'Bcc' => 'Bcc',
+ 'Bin' => 'Dëþë',
+ 'Cc' => 'Cc',
+ 'Contact' => 'Kontaktas',
+ 'Continue' => 'Tæsti',
+ 'Copies' => 'Kopijos',
+ 'Date' => 'Data',
+ 'Dec' => 'Grd',
+ 'December' => 'Gruodis',
+ 'Delivery Date' => 'Prystatimo Data',
+ 'Description' => 'Apraðymas',
+ 'E-mail' => 'E-paðtas',
+ 'E-mail address missing!' => 'E-paðto adreso nëra!',
+ 'Extended' => 'Iðplësta',
+ 'Fax' => 'Faksas',
+ 'Feb' => 'Vas',
+ 'February' => 'Vasaris',
+ 'In-line' => 'Vienaeilis',
+ 'Invoice' => 'Sàskaita-faktûra',
+ 'Invoice Date missing!' => 'Sàskaitos-faktûros datos nëra!',
+ 'Invoice Number missing!' => 'Sàskaitos-faktûra numerio nëra!',
+ 'Item not on file!' => 'Vieneto nëra áraðuose!',
+ 'Jan' => 'Sau',
+ 'January' => 'Sausis',
+ 'Jul' => 'Lie',
+ 'July' => 'Liepa',
+ 'Jun' => 'Bir',
+ 'June' => 'Birþelis',
+ 'Mar' => 'Kov',
+ 'March' => 'Kovas',
+ 'May' => 'Geg',
+ 'May ' => 'Geguþë',
+ 'Message' => 'Þinutë',
+ 'Nov' => 'Lap',
+ 'November' => 'Lapkritis',
+ 'Number' => 'Numeris',
+ 'Number missing in Row' => 'Numerio nëra eilëje',
+ 'Oct' => 'Spa',
+ 'October' => 'Spalis',
+ 'Order Date missing!' => 'Uþsakymo datos nëra!',
+ 'Order Number missing!' => 'Uþsakymo numerio nëra!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Ápakavimo sàraðas',
+ 'Packing List Date missing!' => 'Ápakavimo sàraðo datos nëra!',
+ 'Packing List Number missing!' => 'Ápakavimo sàraðo numerio nëra!',
+ 'Part' => 'Prekë',
+ 'Phone' => 'Tel.',
+ 'Postscript' => 'Postscript(TM)',
+ 'Price' => 'Kaina',
+ 'Project' => 'Projektas',
+ 'Purchase Order' => 'Pirkimo uþsakymas',
+ 'Qty' => 'Kks',
+ 'Recd' => 'Gaut',
+ 'Required by' => 'Iki kada',
+ 'Sales Order' => 'Pardavimø uþsakymas',
+ 'Screen' => 'Ekranas',
+ 'Sep' => 'Rgs',
+ 'September' => 'Rûgsëjis',
+ 'Service' => 'Paslauga',
+ 'Ship' => 'Pristatymas',
+ 'Ship to' => 'Pristatyti á',
+ 'Subject' => 'Dalykas',
+ 'Subtotal' => 'Viso',
+ 'To' => 'iki',
+ 'Unit' => 'Vienetas',
+ 'What type of item is this?' => 'Koks ðio dalyko tipas?',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'tæsti' => 'continue',
+};
+
+1;
+
diff --git a/locale/lt/ir b/locale/lt/ir
new file mode 100755
index 00000000..fe2c67b9
--- /dev/null
+++ b/locale/lt/ir
@@ -0,0 +1,193 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'Account' => 'Sàskaita',
+ 'Accounting Menu' => 'Apskaitos Menu',
+ 'Add Purchase Order' => 'Pridëti Pirkimo uþsakymà',
+ 'Add Sales Order' => 'Pridëti Pardavimo uþsakymà',
+ 'Address' => 'Adresas',
+ 'Amount' => 'Suma',
+ 'Apr' => 'Bal',
+ 'April' => 'Balandis',
+ 'Are you sure you want to delete Invoice Number' => 'Ar Jus tikrai norite iðtrinti saskaitu-fakturos numeris:',
+ 'Attachment' => 'Prisegta',
+ 'Aug' => 'Rug',
+ 'August' => 'Rugpjûtis',
+ 'Bcc' => 'Bcc',
+ 'Bin' => 'Dëþë',
+ 'Cannot delete invoice!' => 'Neámanoma iðtrinti sàskaitos-faktûros!',
+ 'Cannot post invoice for a closed period!' => 'Neámanoma patvirtinti sàskaitos-faktûros uþdarajam periodui!',
+ 'Cannot post invoice!' => 'Neámanoma patvirtinti sàskaitos-faktûros!',
+ 'Cannot post payment for a closed period!' => 'Neámanoma patvirtinti mokëjimo uþdarajam periodui!',
+ 'Cc' => 'Cc',
+ 'Confirm!' => 'Patvirtinti!',
+ 'Contact' => 'Kontaktas',
+ 'Continue' => 'Tæsti',
+ 'Copies' => 'Kopijos',
+ 'Credit Limit' => 'Kredito riba',
+ 'Currency' => 'Valiûta',
+ 'Customer not on file!' => 'Tokio kliento nëra!',
+ 'Date' => 'Data',
+ 'Dec' => 'Grd',
+ 'December' => 'Gruodis',
+ 'Delete' => 'Iðtrinti',
+ 'Delivery Date' => 'Prystatimo Data',
+ 'Description' => 'Apraðymas',
+ 'Due Date' => 'Iki Data',
+ 'E-mail' => 'E-paðtas',
+ 'E-mail address missing!' => 'E-paðto adreso nëra!',
+ 'Exch' => 'Kurs.',
+ 'Exchange Rate' => 'Keitimo kursas',
+ 'Exchange rate for payment missing!' => 'Mokëjimo keitimo kurso nëra!',
+ 'Exchange rate missing!' => 'Keitimo kurso nëra!',
+ 'Extended' => 'Iðplësta',
+ 'Fax' => 'Faksas',
+ 'Feb' => 'Vas',
+ 'February' => 'Vasaris',
+ 'In-line' => 'Vienaeilis',
+ 'Invoice' => 'Sàskaita-faktûra',
+ 'Invoice Date' => 'Sàskaitos-faktûros data',
+ 'Invoice Date missing!' => 'Sàskaitos-faktûros datos nëra!',
+ 'Invoice Number' => 'Sàskaitos-faktûros numeris',
+ 'Invoice Number missing!' => 'Sàskaitos-faktûra numerio nëra!',
+ 'Invoice deleted!' => 'Sàskaitos-faktûra iðtrintos!',
+ 'Item not on file!' => 'Vieneto nëra áraðuose!',
+ 'Jan' => 'Sau',
+ 'January' => 'Sausis',
+ 'Jul' => 'Lie',
+ 'July' => 'Liepa',
+ 'Jun' => 'Bir',
+ 'June' => 'Birþelis',
+ 'Language' => 'Kalba',
+ 'Mar' => 'Kov',
+ 'March' => 'Kovas',
+ 'May' => 'Geg',
+ 'May ' => 'Geguþë',
+ 'Message' => 'Þinutë',
+ 'Notes' => 'Pastaba',
+ 'Nov' => 'Lap',
+ 'November' => 'Lapkritis',
+ 'Number' => 'Numeris',
+ 'Number missing in Row' => 'Numerio nëra eilëje',
+ 'Oct' => 'Spa',
+ 'October' => 'Spalis',
+ 'Order Date missing!' => 'Uþsakymo datos nëra!',
+ 'Order Number' => 'Uþsakymo numeris',
+ 'Order Number missing!' => 'Uþsakymo numerio nëra!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Ápakavimo sàraðas',
+ 'Packing List Date missing!' => 'Ápakavimo sàraðo datos nëra!',
+ 'Packing List Number missing!' => 'Ápakavimo sàraðo numerio nëra!',
+ 'Part' => 'Prekë',
+ 'Payment date missing!' => 'Mokëjimo datos nëra',
+ 'Payments' => 'Mokëjimai',
+ 'Phone' => 'Tel.',
+ 'Post' => 'Patvirtinti',
+ 'Post as new' => 'Patvirtinti kaip naujà',
+ 'Postscript' => 'Postscript(TM)',
+ 'Price' => 'Kaina',
+ 'Print' => 'Spausdinti',
+ 'Project' => 'Projektas',
+ 'Project not on file!' => 'Nëra tokio projekto!',
+ 'Purchase Order' => 'Pirkimo uþsakymas',
+ 'Qty' => 'Kks',
+ 'Recd' => 'Gaut',
+ 'Record in' => 'Áraðyti á',
+ 'Reference' => 'Nuorodos',
+ 'Remaining' => 'Likutis',
+ 'Required by' => 'Iki kada',
+ 'Sales Order' => 'Pardavimø uþsakymas',
+ 'Screen' => 'Ekranas',
+ 'Select from one of the names below' => 'Iðrinkite vienà ið pavadinimø apaèioje',
+ 'Select from one of the projects below' => 'Iðrinkite vienà ið projektø apaèioje',
+ 'Sep' => 'Rgs',
+ 'September' => 'Rûgsëjis',
+ 'Service' => 'Paslauga',
+ 'Ship' => 'Pristatymas',
+ 'Ship to' => 'Pristatyti á',
+ 'Source' => 'Dokumentas',
+ 'Subject' => 'Dalykas',
+ 'Subtotal' => 'Viso',
+ 'Tax Included' => 'su mokesèiais',
+ 'To' => 'iki',
+ 'Total' => 'Ið viso',
+ 'Unit' => 'Vienetas',
+ 'Update' => 'Atnaujinti',
+ 'Vendor' => 'Tiekëjas',
+ 'Vendor missing!' => 'Tiekëjo Vardo nëra!',
+ 'Vendor not on file!' => 'Tokio tiekëjo nëra!',
+ 'What type of item is this?' => 'Koks ðio dalyko tipas?',
+ 'Yes' => 'Taip',
+ 'ea' => 'kk',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'tæsti' => 'continue',
+ 'iðtrinti' => 'delete',
+ 'patvirtinti' => 'post',
+ 'patvirtinti_kaip_naujà' => 'post_as_new',
+ 'pirkimo_uþsakymas' => 'purchase_order',
+ 'atnaujinti' => 'update',
+ 'taip' => 'yes',
+};
+
+1;
+
diff --git a/locale/lt/is b/locale/lt/is
new file mode 100755
index 00000000..bd7d9326
--- /dev/null
+++ b/locale/lt/is
@@ -0,0 +1,200 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'Account' => 'Sàskaita',
+ 'Accounting Menu' => 'Apskaitos Menu',
+ 'Add Purchase Order' => 'Pridëti Pirkimo uþsakymà',
+ 'Add Sales Invoice' => 'Pridëti Pardavimo sàskaità-faktûrà',
+ 'Add Sales Order' => 'Pridëti Pardavimo uþsakymà',
+ 'Address' => 'Adresas',
+ 'Amount' => 'Suma',
+ 'Apr' => 'Bal',
+ 'April' => 'Balandis',
+ 'Are you sure you want to delete Invoice Number' => 'Ar Jus tikrai norite iðtrinti saskaitu-fakturos numeris:',
+ 'Attachment' => 'Prisegta',
+ 'Aug' => 'Rug',
+ 'August' => 'Rugpjûtis',
+ 'Bcc' => 'Bcc',
+ 'Bin' => 'Dëþë',
+ 'Cannot delete invoice!' => 'Neámanoma iðtrinti sàskaitos-faktûros!',
+ 'Cannot post invoice for a closed period!' => 'Neámanoma patvirtinti sàskaitos-faktûros uþdarajam periodui!',
+ 'Cannot post invoice!' => 'Neámanoma patvirtinti sàskaitos-faktûros!',
+ 'Cannot post payment for a closed period!' => 'Neámanoma patvirtinti mokëjimo uþdarajam periodui!',
+ 'Cc' => 'Cc',
+ 'Confirm!' => 'Patvirtinti!',
+ 'Contact' => 'Kontaktas',
+ 'Continue' => 'Tæsti',
+ 'Copies' => 'Kopijos',
+ 'Credit Limit' => 'Kredito riba',
+ 'Currency' => 'Valiûta',
+ 'Customer' => 'Klientas',
+ 'Customer missing!' => 'Kliento vardo nëra!',
+ 'Customer not on file!' => 'Tokio kliento nëra!',
+ 'Date' => 'Data',
+ 'Dec' => 'Grd',
+ 'December' => 'Gruodis',
+ 'Delete' => 'Iðtrinti',
+ 'Delivery Date' => 'Prystatimo Data',
+ 'Description' => 'Apraðymas',
+ 'Due Date' => 'Iki Data',
+ 'E-mail' => 'E-paðtas',
+ 'E-mail address missing!' => 'E-paðto adreso nëra!',
+ 'Edit Sales Invoice' => 'Redaguoti pardavimo sàskaità-faktûrà',
+ 'Exch' => 'Kurs.',
+ 'Exchange Rate' => 'Keitimo kursas',
+ 'Exchange rate for payment missing!' => 'Mokëjimo keitimo kurso nëra!',
+ 'Exchange rate missing!' => 'Keitimo kurso nëra!',
+ 'Extended' => 'Iðplësta',
+ 'Fax' => 'Faksas',
+ 'Feb' => 'Vas',
+ 'February' => 'Vasaris',
+ 'In-line' => 'Vienaeilis',
+ 'Invoice' => 'Sàskaita-faktûra',
+ 'Invoice Date' => 'Sàskaitos-faktûros data',
+ 'Invoice Date missing!' => 'Sàskaitos-faktûros datos nëra!',
+ 'Invoice Number' => 'Sàskaitos-faktûros numeris',
+ 'Invoice Number missing!' => 'Sàskaitos-faktûra numerio nëra!',
+ 'Invoice deleted!' => 'Sàskaitos-faktûra iðtrintos!',
+ 'Item not on file!' => 'Vieneto nëra áraðuose!',
+ 'Jan' => 'Sau',
+ 'January' => 'Sausis',
+ 'Jul' => 'Lie',
+ 'July' => 'Liepa',
+ 'Jun' => 'Bir',
+ 'June' => 'Birþelis',
+ 'Mar' => 'Kov',
+ 'March' => 'Kovas',
+ 'May' => 'Geg',
+ 'May ' => 'Geguþë',
+ 'Message' => 'Þinutë',
+ 'Notes' => 'Pastaba',
+ 'Nov' => 'Lap',
+ 'November' => 'Lapkritis',
+ 'Number' => 'Numeris',
+ 'Number missing in Row' => 'Numerio nëra eilëje',
+ 'Oct' => 'Spa',
+ 'October' => 'Spalis',
+ 'Order Date missing!' => 'Uþsakymo datos nëra!',
+ 'Order Number' => 'Uþsakymo numeris',
+ 'Order Number missing!' => 'Uþsakymo numerio nëra!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Ápakavimo sàraðas',
+ 'Packing List Date missing!' => 'Ápakavimo sàraðo datos nëra!',
+ 'Packing List Number missing!' => 'Ápakavimo sàraðo numerio nëra!',
+ 'Part' => 'Prekë',
+ 'Payment date missing!' => 'Mokëjimo datos nëra',
+ 'Payments' => 'Mokëjimai',
+ 'Phone' => 'Tel.',
+ 'Post' => 'Patvirtinti',
+ 'Post as new' => 'Patvirtinti kaip naujà',
+ 'Postscript' => 'Postscript(TM)',
+ 'Price' => 'Kaina',
+ 'Print' => 'Spausdinti',
+ 'Project' => 'Projektas',
+ 'Project not on file!' => 'Nëra tokio projekto!',
+ 'Purchase Order' => 'Pirkimo uþsakymas',
+ 'Qty' => 'Kks',
+ 'Recd' => 'Gaut',
+ 'Record in' => 'Áraðyti á',
+ 'Reference' => 'Nuorodos',
+ 'Remaining' => 'Likutis',
+ 'Required by' => 'Iki kada',
+ 'Sales Order' => 'Pardavimø uþsakymas',
+ 'Screen' => 'Ekranas',
+ 'Select from one of the names below' => 'Iðrinkite vienà ið pavadinimø apaèioje',
+ 'Select from one of the projects below' => 'Iðrinkite vienà ið projektø apaèioje',
+ 'Select postscript or PDF!' => 'Iðrinkite postscript arba PDF!',
+ 'Sep' => 'Rgs',
+ 'September' => 'Rûgsëjis',
+ 'Service' => 'Paslauga',
+ 'Ship' => 'Pristatymas',
+ 'Ship to' => 'Pristatyti á',
+ 'Ship via' => 'Pristatyti per',
+ 'Source' => 'Dokumentas',
+ 'Subject' => 'Dalykas',
+ 'Subtotal' => 'Viso',
+ 'Tax Included' => 'su mokesèiais',
+ 'To' => 'iki',
+ 'Total' => 'Ið viso',
+ 'Unit' => 'Vienetas',
+ 'Update' => 'Atnaujinti',
+ 'Vendor not on file!' => 'Tokio tiekëjo nëra!',
+ 'What type of item is this?' => 'Koks ðio dalyko tipas?',
+ 'Yes' => 'Taip',
+ 'ea' => 'kk',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'tæsti' => 'continue',
+ 'iðtrinti' => 'delete',
+ 'e_paðtas' => 'e_mail',
+ 'patvirtinti' => 'post',
+ 'patvirtinti_kaip_naujà' => 'post_as_new',
+ 'spausdinti' => 'print',
+ 'pardavimø_uþsakymas' => 'sales_order',
+ 'pristatyti_á' => 'ship_to',
+ 'atnaujinti' => 'update',
+ 'taip' => 'yes',
+};
+
+1;
+
diff --git a/locale/lt/jc b/locale/lt/jc
new file mode 100755
index 00000000..6fb1eb7e
--- /dev/null
+++ b/locale/lt/jc
@@ -0,0 +1,83 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Apskaitos Menu',
+ 'Amount' => 'Suma',
+ 'Closed' => 'Uþdaryta',
+ 'Confirm!' => 'Patvirtinti!',
+ 'Continue' => 'Tæsti',
+ 'Current' => 'Dabartinis',
+ 'Date' => 'Data',
+ 'Date missing!' => 'Datos nëra!',
+ 'Delete' => 'Iðtrinti',
+ 'Description' => 'Apraðymas',
+ 'Employee' => 'Darbuotojas',
+ 'From' => 'Nuo',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Ádëti á ataskaità',
+ 'Notes' => 'Pastaba',
+ 'Open' => 'Atidaryti',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'Postscript(TM)',
+ 'Print' => 'Spausdinti',
+ 'Project Number missing!' => 'Projekto numerio nëra!',
+ 'Qty' => 'Kks',
+ 'Save' => 'Iðsaugoti',
+ 'Save as new' => 'Iðsaugoti kaip naujà',
+ 'Screen' => 'Ekranas',
+ 'Select postscript or PDF!' => 'Iðrinkite postscript arba PDF!',
+ 'Subtotal' => 'Viso',
+ 'To' => 'iki',
+ 'Total' => 'Ið viso',
+ 'Update' => 'Atnaujinti',
+ 'Yes' => 'Taip',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'tæsti' => 'continue',
+ 'iðtrinti' => 'delete',
+ 'spausdinti' => 'print',
+ 'iðsaugoti' => 'save',
+ 'iðsaugoti_kaip_naujà' => 'save_as_new',
+ 'atnaujinti' => 'update',
+ 'taip' => 'yes',
+};
+
+1;
+
diff --git a/locale/lt/locales.pl b/locale/lt/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/lt/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/lt/login b/locale/lt/login
new file mode 100755
index 00000000..ccfac136
--- /dev/null
+++ b/locale/lt/login
@@ -0,0 +1,23 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'Company' => 'Firma',
+ 'Continue' => 'Tæsti',
+ 'Incorrect Dataset version!' => 'Neteisinga duomenø aibës versija!',
+ 'Login' => 'Prisijungimas',
+ 'Name' => 'Vardas',
+ 'Password' => 'Slaptaþodis',
+ 'Version' => 'Versija',
+ 'You did not enter a name!' => 'Neávedëte vardo!',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ 'prisijungimas' => 'login',
+};
+
+1;
+
diff --git a/locale/lt/menu b/locale/lt/menu
new file mode 100755
index 00000000..71491782
--- /dev/null
+++ b/locale/lt/menu
@@ -0,0 +1,82 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'AP' => 'Pirkimai',
+ 'AP Aging' => 'Pirkimo Skolos',
+ 'AP Transaction' => 'Pirkimo Operacijà',
+ 'AR' => 'Pardavimai',
+ 'AR Aging' => 'Pardavimo Skolos',
+ 'AR Transaction' => 'Pardavimo Operacijà',
+ 'Accounting Menu' => 'Apskaitos Menu',
+ 'Add Account' => 'Pridëti sàskaità',
+ 'Add Assembly' => 'Pridëti rinkiná',
+ 'Add Customer' => 'Pridëti klientà',
+ 'Add GIFI' => 'Pridëti GIFI',
+ 'Add Part' => 'Pridëti prekæ',
+ 'Add Project' => 'Pridëti proektà',
+ 'Add Service' => 'Pridëti Paslaugà',
+ 'Add Transaction' => 'Pridëti Operacijà',
+ 'Add Vendor' => 'Pridëti Tiekëja',
+ 'Assemblies' => 'Rinkiniai',
+ 'Audit Control' => 'Audito kontrolë',
+ 'Backup' => 'Reservinë kopija',
+ 'Balance Sheet' => 'Balanso lëntelë',
+ 'Cash' => 'Kasa',
+ 'Chart of Accounts' => 'Sàskaitø planas',
+ 'Check' => 'Èekis',
+ 'Customers' => 'Klientai',
+ 'Description' => 'Apraðymas',
+ 'General Ledger' => 'Bendrasis þurnalas',
+ 'Goods & Services' => 'Prekës ir Paslaugos',
+ 'HTML Templates' => 'HTML ðablonai',
+ 'Income Statement' => 'Pelno/nuostolio ataskaita',
+ 'Invoice' => 'Sàskaita-faktûra',
+ 'LaTeX Templates' => 'LaTeX ðablonai',
+ 'Language' => 'Kalba',
+ 'List Accounts' => 'Sàskaitø sàraðas',
+ 'List GIFI' => 'GIFI sàraðas',
+ 'Logout' => 'Iðsijungti',
+ 'Open' => 'Atidaryti',
+ 'Order Entry' => 'Uþsakymo áraðas',
+ 'Packing List' => 'Ápakavimo sàraðas',
+ 'Parts' => 'Prekës',
+ 'Payment' => 'Mokëjimas',
+ 'Payments' => 'Mokëjimai',
+ 'Preferences' => 'Nuostatos',
+ 'Print' => 'Spausdinti',
+ 'Projects' => 'Projektai',
+ 'Purchase Order' => 'Pirkimo uþsakymas',
+ 'Purchase Orders' => 'Pirkimo uþsakymai',
+ 'Receipt' => 'Kasos orderis',
+ 'Receipts' => 'Kasos orderiai',
+ 'Reconciliation' => 'Sutaikinimas',
+ 'Reports' => 'Ataskaitos',
+ 'Sales Invoice' => 'Pardavimo SF',
+ 'Sales Order' => 'Pardavimø uþsakymas',
+ 'Sales Orders' => 'Pardavimø uþsakymai',
+ 'Save to File' => 'Iðsaugoti á failà',
+ 'Send by E-Mail' => 'Iðsiûsti e-paðtu',
+ 'Services' => 'Paslaugos',
+ 'Ship' => 'Pristatymas',
+ 'Statement' => 'Suvestinë',
+ 'Stock Assembly' => 'Rinkiniai sandëlyje',
+ 'Stylesheet' => 'Stiliø lentelë',
+ 'System' => 'Sistema',
+ 'Tax collected' => 'Mokesèiai surinkti',
+ 'Tax paid' => 'Mokesèiai sumokëti',
+ 'Transactions' => 'Operacijos',
+ 'Trial Balance' => 'Bandomasis balansas',
+ 'Vendors' => 'Tiekëjai',
+ 'Version' => 'Versija',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/lt/oe b/locale/lt/oe
new file mode 100755
index 00000000..f8afecaf
--- /dev/null
+++ b/locale/lt/oe
@@ -0,0 +1,241 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Apskaitos Menu',
+ 'Add Purchase Order' => 'Pridëti Pirkimo uþsakymà',
+ 'Add Sales Invoice' => 'Pridëti Pardavimo sàskaità-faktûrà',
+ 'Add Sales Order' => 'Pridëti Pardavimo uþsakymà',
+ 'Address' => 'Adresas',
+ 'Amount' => 'Suma',
+ 'Apr' => 'Bal',
+ 'April' => 'Balandis',
+ 'Are you sure you want to delete Order Number' => 'Ar Jus tikrai norite iðtrinti uzsakimas numeris:',
+ 'Attachment' => 'Prisegta',
+ 'Aug' => 'Rug',
+ 'August' => 'Rugpjûtis',
+ 'Bcc' => 'Bcc',
+ 'Bin' => 'Dëþë',
+ 'C' => 'C',
+ 'Cannot delete order!' => 'Neámanoma iðtrinti uþsakymo!',
+ 'Cannot save order!' => 'Neámanoma iðsaugoti uþsakymo!',
+ 'Cc' => 'Cc',
+ 'Closed' => 'Uþdaryta',
+ 'Confirm!' => 'Patvirtinti!',
+ 'Contact' => 'Kontaktas',
+ 'Continue' => 'Tæsti',
+ 'Copies' => 'Kopijos',
+ 'Credit Limit' => 'Kredito riba',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valiûta',
+ 'Current' => 'Dabartinis',
+ 'Customer' => 'Klientas',
+ 'Customer missing!' => 'Kliento vardo nëra!',
+ 'Customer not on file!' => 'Tokio kliento nëra!',
+ 'Date' => 'Data',
+ 'Dec' => 'Grd',
+ 'December' => 'Gruodis',
+ 'Delete' => 'Iðtrinti',
+ 'Delivery Date' => 'Prystatimo Data',
+ 'Description' => 'Apraðymas',
+ 'Done' => 'Ávykdyta',
+ 'E-mail' => 'E-paðtas',
+ 'E-mail address missing!' => 'E-paðto adreso nëra!',
+ 'Edit Purchase Order' => 'Redaguoti pirkimo uþsakymà',
+ 'Edit Sales Order' => 'Redaguoti pardavimo uþsakymà',
+ 'Employee' => 'Darbuotojas',
+ 'Exchange Rate' => 'Keitimo kursas',
+ 'Exchange rate missing!' => 'Keitimo kurso nëra!',
+ 'Extended' => 'Iðplësta',
+ 'Fax' => 'Faksas',
+ 'Feb' => 'Vas',
+ 'February' => 'Vasaris',
+ 'From' => 'Nuo',
+ 'ID' => 'ID',
+ 'In-line' => 'Vienaeilis',
+ 'Include in Report' => 'Ádëti á ataskaità',
+ 'Invoice' => 'Sàskaita-faktûra',
+ 'Invoice Date missing!' => 'Sàskaitos-faktûros datos nëra!',
+ 'Invoice Number missing!' => 'Sàskaitos-faktûra numerio nëra!',
+ 'Item not on file!' => 'Vieneto nëra áraðuose!',
+ 'Jan' => 'Sau',
+ 'January' => 'Sausis',
+ 'Jul' => 'Lie',
+ 'July' => 'Liepa',
+ 'Jun' => 'Bir',
+ 'June' => 'Birþelis',
+ 'Mar' => 'Kov',
+ 'March' => 'Kovas',
+ 'May' => 'Geg',
+ 'May ' => 'Geguþë',
+ 'Message' => 'Þinutë',
+ 'No.' => 'Num',
+ 'Notes' => 'Pastaba',
+ 'Nothing selected!' => 'Nieko neiðrinkta!',
+ 'Nov' => 'Lap',
+ 'November' => 'Lapkritis',
+ 'Number' => 'Numeris',
+ 'Number missing in Row' => 'Numerio nëra eilëje',
+ 'O' => 'O',
+ 'Oct' => 'Spa',
+ 'October' => 'Spalis',
+ 'Open' => 'Atidaryti',
+ 'Order' => 'Uþsakymas',
+ 'Order Date' => 'Uþsakymo data',
+ 'Order Date missing!' => 'Uþsakymo datos nëra!',
+ 'Order Number' => 'Uþsakymo numeris',
+ 'Order Number missing!' => 'Uþsakymo numerio nëra!',
+ 'Order deleted!' => 'Uþsakymai iðtrinti!',
+ 'Order saved!' => 'Uþsakymas iðsaugotas!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Ápakavimo sàraðas',
+ 'Packing List Date missing!' => 'Ápakavimo sàraðo datos nëra!',
+ 'Packing List Number missing!' => 'Ápakavimo sàraðo numerio nëra!',
+ 'Part' => 'Prekë',
+ 'Phone' => 'Tel.',
+ 'Postscript' => 'Postscript(TM)',
+ 'Price' => 'Kaina',
+ 'Print' => 'Spausdinti',
+ 'Project' => 'Projektas',
+ 'Project not on file!' => 'Nëra tokio projekto!',
+ 'Purchase Order' => 'Pirkimo uþsakymas',
+ 'Purchase Orders' => 'Pirkimo uþsakymai',
+ 'Qty' => 'Kks',
+ 'Recd' => 'Gaut',
+ 'Reference' => 'Nuorodos',
+ 'Remaining' => 'Likutis',
+ 'Required by' => 'Iki kada',
+ 'Sales Invoice' => 'Pardavimo SF',
+ 'Sales Order' => 'Pardavimø uþsakymas',
+ 'Sales Orders' => 'Pardavimø uþsakymai',
+ 'Save' => 'Iðsaugoti',
+ 'Save as new' => 'Iðsaugoti kaip naujà',
+ 'Screen' => 'Ekranas',
+ 'Select from one of the names below' => 'Iðrinkite vienà ið pavadinimø apaèioje',
+ 'Select from one of the projects below' => 'Iðrinkite vienà ið projektø apaèioje',
+ 'Select postscript or PDF!' => 'Iðrinkite postscript arba PDF!',
+ 'Sep' => 'Rgs',
+ 'September' => 'Rûgsëjis',
+ 'Service' => 'Paslauga',
+ 'Ship' => 'Pristatymas',
+ 'Ship to' => 'Pristatyti á',
+ 'Ship via' => 'Pristatyti per',
+ 'Subject' => 'Dalykas',
+ 'Subtotal' => 'Viso',
+ 'Tax' => 'Mokëstis',
+ 'Tax Included' => 'su mokesèiais',
+ 'Terms' => 'Terminas: ',
+ 'To' => 'iki',
+ 'Total' => 'Ið viso',
+ 'Unit' => 'Vienetas',
+ 'Update' => 'Atnaujinti',
+ 'Vendor' => 'Tiekëjas',
+ 'Vendor missing!' => 'Tiekëjo Vardo nëra!',
+ 'Vendor not on file!' => 'Tokio tiekëjo nëra!',
+ 'What type of item is this?' => 'Koks ðio dalyko tipas?',
+ 'Yes' => 'Taip',
+ 'days' => 'dienos',
+ 'ea' => 'kk',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'tæsti' => 'continue',
+ 'iðtrinti' => 'delete',
+ 'Ávykdyta' => 'done',
+ 'e_paðtas' => 'e_mail',
+ 'spausdinti' => 'print',
+ 'pirkimo_uþsakymas' => 'purchase_order',
+ 'pardavimo_sf' => 'sales_invoice',
+ 'pardavimø_uþsakymas' => 'sales_order',
+ 'iðsaugoti' => 'save',
+ 'iðsaugoti_kaip_naujà' => 'save_as_new',
+ 'pristatyti_á' => 'ship_to',
+ 'atnaujinti' => 'update',
+ 'taip' => 'yes',
+};
+
+1;
+
diff --git a/locale/lt/pe b/locale/lt/pe
new file mode 100755
index 00000000..a0bd422b
--- /dev/null
+++ b/locale/lt/pe
@@ -0,0 +1,108 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Apskaitos Menu',
+ 'Active' => 'Aktyvus',
+ 'Add' => 'Pridëti',
+ 'Add Project' => 'Pridëti proektà',
+ 'Address' => 'Adresas',
+ 'All' => 'Visi',
+ 'Amount' => 'Suma',
+ 'Bin' => 'Dëþë',
+ 'Continue' => 'Tæsti',
+ 'Current' => 'Dabartinis',
+ 'Customer' => 'Klientas',
+ 'Customer missing!' => 'Kliento vardo nëra!',
+ 'Customer not on file!' => 'Tokio kliento nëra!',
+ 'Date' => 'Data',
+ 'Delete' => 'Iðtrinti',
+ 'Description' => 'Apraðymas',
+ 'Edit Project' => 'Redaguoti projektà',
+ 'Employee' => 'Darbuotojas',
+ 'From' => 'Nuo',
+ 'Language' => 'Kalba',
+ 'Link Accounts' => 'Suriðti sàskaitas',
+ 'List Price' => 'Pirkimo kaina',
+ 'Notes' => 'Pastaba',
+ 'Nothing selected!' => 'Nieko neiðrinkta!',
+ 'Number' => 'Numeris',
+ 'Orphaned' => 'Naðlaitinis',
+ 'Project' => 'Projektas',
+ 'Project deleted!' => 'Projektas iðtrintas!',
+ 'Project saved!' => 'Projektas iðsaugotas!',
+ 'Projects' => 'Projektai',
+ 'Qty' => 'Kks',
+ 'Save' => 'Iðsaugoti',
+ 'Select from one of the names below' => 'Iðrinkite vienà ið pavadinimø apaèioje',
+ 'Sell Price' => 'Pardavimo kaina',
+ 'Tax' => 'Mokëstis',
+ 'To' => 'iki',
+ 'Unit' => 'Vienetas',
+ 'Update' => 'Atnaujinti',
+ 'Updated' => 'Atnaujinta',
+ 'Vendor' => 'Tiekëjas',
+ 'Vendor not on file!' => 'Tokio tiekëjo nëra!',
+ 'Weight' => 'Svoris',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'pridëti_proektà' => 'add_project',
+ 'tæsti' => 'continue',
+ 'iðtrinti' => 'delete',
+ 'iðsaugoti' => 'save',
+ 'atnaujinti' => 'update',
+};
+
+1;
+
diff --git a/locale/lt/pos b/locale/lt/pos
new file mode 100755
index 00000000..a08d0b1d
--- /dev/null
+++ b/locale/lt/pos
@@ -0,0 +1,66 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Apskaitos Menu',
+ 'Amount' => 'Suma',
+ 'Cannot post transaction!' => 'Neámanoma patvirtinti operacijos!',
+ 'Continue' => 'Tæsti',
+ 'Credit Limit' => 'Kredito riba',
+ 'Currency' => 'Valiûta',
+ 'Current' => 'Dabartinis',
+ 'Customer' => 'Klientas',
+ 'Customer missing!' => 'Kliento vardo nëra!',
+ 'Delete' => 'Iðtrinti',
+ 'Description' => 'Apraðymas',
+ 'Exchange Rate' => 'Keitimo kursas',
+ 'Exchange rate missing!' => 'Keitimo kurso nëra!',
+ 'Extended' => 'Iðplësta',
+ 'From' => 'Nuo',
+ 'Language' => 'Kalba',
+ 'Number' => 'Numeris',
+ 'Open' => 'Atidaryti',
+ 'Post' => 'Patvirtinti',
+ 'Price' => 'Kaina',
+ 'Print' => 'Spausdinti',
+ 'Qty' => 'Kks',
+ 'Receipts' => 'Kasos orderiai',
+ 'Record in' => 'Áraðyti á',
+ 'Remaining' => 'Likutis',
+ 'Screen' => 'Ekranas',
+ 'Source' => 'Dokumentas',
+ 'Subtotal' => 'Viso',
+ 'Tax Included' => 'su mokesèiais',
+ 'To' => 'iki',
+ 'Total' => 'Ið viso',
+ 'Unit' => 'Vienetas',
+ 'Update' => 'Atnaujinti',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'tæsti' => 'continue',
+ 'iðtrinti' => 'delete',
+ 'patvirtinti' => 'post',
+ 'spausdinti' => 'print',
+ 'atnaujinti' => 'update',
+};
+
+1;
+
diff --git a/locale/lt/ps b/locale/lt/ps
new file mode 100755
index 00000000..d3f92252
--- /dev/null
+++ b/locale/lt/ps
@@ -0,0 +1,289 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'AP Aging' => 'Pirkimo Skolos',
+ 'AP Transaction' => 'Pirkimo Operacijà',
+ 'AP Transactions' => 'Pirkimo Operacijos',
+ 'AR Aging' => 'Pardavimo Skolos',
+ 'AR Transaction' => 'Pardavimo Operacijà',
+ 'AR Transactions' => 'Pardavimo Operacijos',
+ 'Account' => 'Sàskaita',
+ 'Account Number' => 'Sàskaitos numeris',
+ 'Accounting Menu' => 'Apskaitos Menu',
+ 'Accounts' => 'Sàskaitos',
+ 'Add Purchase Order' => 'Pridëti Pirkimo uþsakymà',
+ 'Add Sales Invoice' => 'Pridëti Pardavimo sàskaità-faktûrà',
+ 'Add Sales Order' => 'Pridëti Pardavimo uþsakymà',
+ 'Address' => 'Adresas',
+ 'Amount' => 'Suma',
+ 'Amount Due' => 'Suma iki',
+ 'Apr' => 'Bal',
+ 'April' => 'Balandis',
+ 'Are you sure you want to delete Invoice Number' => 'Ar Jus tikrai norite iðtrinti saskaitu-fakturos numeris:',
+ 'Are you sure you want to delete Transaction' => 'Ar Jus tikrai norite iðtrinti operacijà?',
+ 'Attachment' => 'Prisegta',
+ 'Aug' => 'Rug',
+ 'August' => 'Rugpjûtis',
+ 'Balance' => 'Balansas',
+ 'Balance Sheet' => 'Balanso lëntelë',
+ 'Bcc' => 'Bcc',
+ 'Bin' => 'Dëþë',
+ 'Cannot delete invoice!' => 'Neámanoma iðtrinti sàskaitos-faktûros!',
+ 'Cannot delete transaction!' => 'Neámanoma iðtrinti operacijos!',
+ 'Cannot post invoice for a closed period!' => 'Neámanoma patvirtinti sàskaitos-faktûros uþdarajam periodui!',
+ 'Cannot post invoice!' => 'Neámanoma patvirtinti sàskaitos-faktûros!',
+ 'Cannot post payment for a closed period!' => 'Neámanoma patvirtinti mokëjimo uþdarajam periodui!',
+ 'Cannot post transaction for a closed period!' => 'Neámanoma patvirtinti operacijos uþdarajam periodui!',
+ 'Cannot post transaction!' => 'Neámanoma patvirtinti operacijos!',
+ 'Cash' => 'Kasa',
+ 'Cc' => 'Cc',
+ 'Check' => 'Èekis',
+ 'Closed' => 'Uþdaryta',
+ 'Compare to' => 'Palyginti su',
+ 'Confirm!' => 'Patvirtinti!',
+ 'Contact' => 'Kontaktas',
+ 'Continue' => 'Tæsti',
+ 'Copies' => 'Kopijos',
+ 'Credit' => 'Kreditas',
+ 'Credit Limit' => 'Kredito riba',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valiûta',
+ 'Current' => 'Dabartinis',
+ 'Customer' => 'Klientas',
+ 'Customer missing!' => 'Kliento vardo nëra!',
+ 'Customer not on file!' => 'Tokio kliento nëra!',
+ 'Date' => 'Data',
+ 'Date Paid' => 'Mokëjimo Data',
+ 'Debit' => 'Debetas',
+ 'Dec' => 'Grd',
+ 'December' => 'Gruodis',
+ 'Decimalplaces' => 'Skaièiø po taðko',
+ 'Delete' => 'Iðtrinti',
+ 'Delivery Date' => 'Prystatimo Data',
+ 'Description' => 'Apraðymas',
+ 'Due Date' => 'Iki Data',
+ 'Due Date missing!' => 'Nëra Iki Datos!',
+ 'E-mail' => 'E-paðtas',
+ 'E-mail Statement to' => 'Suvestinæ suisti per e-pastà á',
+ 'E-mail address missing!' => 'E-paðto adreso nëra!',
+ 'Edit Sales Invoice' => 'Redaguoti pardavimo sàskaità-faktûrà',
+ 'Employee' => 'Darbuotojas',
+ 'Exch' => 'Kurs.',
+ 'Exchange Rate' => 'Keitimo kursas',
+ 'Exchange rate for payment missing!' => 'Mokëjimo keitimo kurso nëra!',
+ 'Exchange rate missing!' => 'Keitimo kurso nëra!',
+ 'Extended' => 'Iðplësta',
+ 'Fax' => 'Faksas',
+ 'Feb' => 'Vas',
+ 'February' => 'Vasaris',
+ 'From' => 'Nuo',
+ 'GIFI' => 'GIFI',
+ 'Heading' => 'Antraðtë',
+ 'ID' => 'ID',
+ 'In-line' => 'Vienaeilis',
+ 'Include in Report' => 'Ádëti á ataskaità',
+ 'Income Statement' => 'Pelno/nuostolio ataskaita',
+ 'Invoice' => 'Sàskaita-faktûra',
+ 'Invoice Date' => 'Sàskaitos-faktûros data',
+ 'Invoice Date missing!' => 'Sàskaitos-faktûros datos nëra!',
+ 'Invoice Number' => 'Sàskaitos-faktûros numeris',
+ 'Invoice Number missing!' => 'Sàskaitos-faktûra numerio nëra!',
+ 'Invoice deleted!' => 'Sàskaitos-faktûra iðtrintos!',
+ 'Item not on file!' => 'Vieneto nëra áraðuose!',
+ 'Jan' => 'Sau',
+ 'January' => 'Sausis',
+ 'Jul' => 'Lie',
+ 'July' => 'Liepa',
+ 'Jun' => 'Bir',
+ 'June' => 'Birþelis',
+ 'Language' => 'Kalba',
+ 'Mar' => 'Kov',
+ 'March' => 'Kovas',
+ 'May' => 'Geg',
+ 'May ' => 'Geguþë',
+ 'Message' => 'Þinutë',
+ 'N/A' => 'N/A',
+ 'No.' => 'Num',
+ 'Notes' => 'Pastaba',
+ 'Nothing selected!' => 'Nieko neiðrinkta!',
+ 'Nov' => 'Lap',
+ 'November' => 'Lapkritis',
+ 'Number' => 'Numeris',
+ 'Number missing in Row' => 'Numerio nëra eilëje',
+ 'Oct' => 'Spa',
+ 'October' => 'Spalis',
+ 'Open' => 'Atidaryti',
+ 'Order' => 'Uþsakymas',
+ 'Order Date missing!' => 'Uþsakymo datos nëra!',
+ 'Order Number' => 'Uþsakymo numeris',
+ 'Order Number missing!' => 'Uþsakymo numerio nëra!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Ápakavimo sàraðas',
+ 'Packing List Date missing!' => 'Ápakavimo sàraðo datos nëra!',
+ 'Packing List Number missing!' => 'Ápakavimo sàraðo numerio nëra!',
+ 'Paid' => 'Apmokëta',
+ 'Part' => 'Prekë',
+ 'Payment date missing!' => 'Mokëjimo datos nëra',
+ 'Payments' => 'Mokëjimai',
+ 'Phone' => 'Tel.',
+ 'Post' => 'Patvirtinti',
+ 'Post as new' => 'Patvirtinti kaip naujà',
+ 'Postscript' => 'Postscript(TM)',
+ 'Price' => 'Kaina',
+ 'Print' => 'Spausdinti',
+ 'Project' => 'Projektas',
+ 'Project not on file!' => 'Nëra tokio projekto!',
+ 'Purchase Order' => 'Pirkimo uþsakymas',
+ 'Qty' => 'Kks',
+ 'Recd' => 'Gaut',
+ 'Receipt' => 'Kasos orderis',
+ 'Receipts' => 'Kasos orderiai',
+ 'Record in' => 'Áraðyti á',
+ 'Reference' => 'Nuorodos',
+ 'Remaining' => 'Likutis',
+ 'Report for' => 'Ataskaita...',
+ 'Required by' => 'Iki kada',
+ 'Sales Order' => 'Pardavimø uþsakymas',
+ 'Screen' => 'Ekranas',
+ 'Select all' => 'Iðrinkti viskà',
+ 'Select from one of the names below' => 'Iðrinkite vienà ið pavadinimø apaèioje',
+ 'Select from one of the projects below' => 'Iðrinkite vienà ið projektø apaèioje',
+ 'Select postscript or PDF!' => 'Iðrinkite postscript arba PDF!',
+ 'Sep' => 'Rgs',
+ 'September' => 'Rûgsëjis',
+ 'Service' => 'Paslauga',
+ 'Ship' => 'Pristatymas',
+ 'Ship to' => 'Pristatyti á',
+ 'Ship via' => 'Pristatyti per',
+ 'Source' => 'Dokumentas',
+ 'Standard' => 'Standartas',
+ 'Statement' => 'Suvestinë',
+ 'Statement sent to' => 'Siusti suvestinæ á',
+ 'Statements sent to printer!' => 'Siusti suvestinæ á spausdintuvà!',
+ 'Subject' => 'Dalykas',
+ 'Subtotal' => 'Viso',
+ 'Tax' => 'Mokëstis',
+ 'Tax Included' => 'su mokesèiais',
+ 'Tax collected' => 'Mokesèiai surinkti',
+ 'Tax paid' => 'Mokesèiai sumokëti',
+ 'To' => 'iki',
+ 'Total' => 'Ið viso',
+ 'Transaction deleted!' => 'Operacija iðtrinta!',
+ 'Transaction posted!' => 'Operacija patvirtinta!',
+ 'Trial Balance' => 'Bandomasis balansas',
+ 'Unit' => 'Vienetas',
+ 'Update' => 'Atnaujinti',
+ 'Vendor' => 'Tiekëjas',
+ 'Vendor missing!' => 'Tiekëjo Vardo nëra!',
+ 'Vendor not on file!' => 'Tokio tiekëjo nëra!',
+ 'What type of item is this?' => 'Koks ðio dalyko tipas?',
+ 'Yes' => 'Taip',
+ 'as at' => 'kaip',
+ 'ea' => 'kk',
+ 'for Period' => 'periodui',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'pirkimo_operacijà' => 'ap_transaction',
+ 'pardavimo_operacijà' => 'ar_transaction',
+ 'tæsti' => 'continue',
+ 'iðtrinti' => 'delete',
+ 'e_paðtas' => 'e_mail',
+ 'patvirtinti' => 'post',
+ 'patvirtinti_kaip_naujà' => 'post_as_new',
+ 'spausdinti' => 'print',
+ 'pardavimø_uþsakymas' => 'sales_order',
+ 'iðrinkti_viskà' => 'select_all',
+ 'pristatyti_á' => 'ship_to',
+ 'atnaujinti' => 'update',
+ 'taip' => 'yes',
+};
+
+1;
+
diff --git a/locale/lt/pw b/locale/lt/pw
new file mode 100755
index 00000000..3a392c6a
--- /dev/null
+++ b/locale/lt/pw
@@ -0,0 +1,14 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'Continue' => 'Tæsti',
+ 'Password' => 'Slaptaþodis',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'tæsti' => 'continue',
+};
+
+1;
+
diff --git a/locale/lt/rc b/locale/lt/rc
new file mode 100755
index 00000000..6278e8fe
--- /dev/null
+++ b/locale/lt/rc
@@ -0,0 +1,69 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'Account' => 'Sàskaita',
+ 'Accounting Menu' => 'Apskaitos Menu',
+ 'Apr' => 'Bal',
+ 'April' => 'Balandis',
+ 'Aug' => 'Rug',
+ 'August' => 'Rugpjûtis',
+ 'Balance' => 'Balansas',
+ 'Continue' => 'Tæsti',
+ 'Credit' => 'Kreditas',
+ 'Current' => 'Dabartinis',
+ 'Date' => 'Data',
+ 'Debit' => 'Debetas',
+ 'Dec' => 'Grd',
+ 'December' => 'Gruodis',
+ 'Description' => 'Apraðymas',
+ 'Difference' => 'Skirtumas',
+ 'Done' => 'Ávykdyta',
+ 'Feb' => 'Vas',
+ 'February' => 'Vasaris',
+ 'From' => 'Nuo',
+ 'Jan' => 'Sau',
+ 'January' => 'Sausis',
+ 'Jul' => 'Lie',
+ 'July' => 'Liepa',
+ 'Jun' => 'Bir',
+ 'June' => 'Birþelis',
+ 'Mar' => 'Kov',
+ 'March' => 'Kovas',
+ 'May' => 'Geg',
+ 'May ' => 'Geguþë',
+ 'Nov' => 'Lap',
+ 'November' => 'Lapkritis',
+ 'Oct' => 'Spa',
+ 'October' => 'Spalis',
+ 'Out of balance!' => 'Nesubalansuota!',
+ 'Reconciliation' => 'Sutaikinimas',
+ 'Select all' => 'Iðrinkti viskà',
+ 'Sep' => 'Rgs',
+ 'September' => 'Rûgsëjis',
+ 'Source' => 'Dokumentas',
+ 'Statement Balance' => 'Balanso suvestinë',
+ 'To' => 'iki',
+ 'Update' => 'Atnaujinti',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'tæsti' => 'continue',
+ 'Ávykdyta' => 'done',
+ 'iðrinkti_viskà' => 'select_all',
+ 'atnaujinti' => 'update',
+};
+
+1;
+
diff --git a/locale/lt/rp b/locale/lt/rp
new file mode 100755
index 00000000..9a5d6f23
--- /dev/null
+++ b/locale/lt/rp
@@ -0,0 +1,159 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'AP Aging' => 'Pirkimo Skolos',
+ 'AR Aging' => 'Pardavimo Skolos',
+ 'Account' => 'Sàskaita',
+ 'Account Number' => 'Sàskaitos numeris',
+ 'Accounting Menu' => 'Apskaitos Menu',
+ 'Accounts' => 'Sàskaitos',
+ 'Address' => 'Adresas',
+ 'Amount' => 'Suma',
+ 'Apr' => 'Bal',
+ 'April' => 'Balandis',
+ 'Attachment' => 'Prisegta',
+ 'Aug' => 'Rug',
+ 'August' => 'Rugpjûtis',
+ 'Balance' => 'Balansas',
+ 'Balance Sheet' => 'Balanso lëntelë',
+ 'Bcc' => 'Bcc',
+ 'Cash' => 'Kasa',
+ 'Cc' => 'Cc',
+ 'Compare to' => 'Palyginti su',
+ 'Continue' => 'Tæsti',
+ 'Copies' => 'Kopijos',
+ 'Credit' => 'Kreditas',
+ 'Curr' => 'Val.',
+ 'Current' => 'Dabartinis',
+ 'Customer' => 'Klientas',
+ 'Customer not on file!' => 'Tokio kliento nëra!',
+ 'Date' => 'Data',
+ 'Debit' => 'Debetas',
+ 'Dec' => 'Grd',
+ 'December' => 'Gruodis',
+ 'Decimalplaces' => 'Skaièiø po taðko',
+ 'Description' => 'Apraðymas',
+ 'Due Date' => 'Iki Data',
+ 'E-mail' => 'E-paðtas',
+ 'E-mail Statement to' => 'Suvestinæ suisti per e-pastà á',
+ 'E-mail address missing!' => 'E-paðto adreso nëra!',
+ 'Feb' => 'Vas',
+ 'February' => 'Vasaris',
+ 'From' => 'Nuo',
+ 'GIFI' => 'GIFI',
+ 'Heading' => 'Antraðtë',
+ 'ID' => 'ID',
+ 'In-line' => 'Vienaeilis',
+ 'Include in Report' => 'Ádëti á ataskaità',
+ 'Income Statement' => 'Pelno/nuostolio ataskaita',
+ 'Invoice' => 'Sàskaita-faktûra',
+ 'Jan' => 'Sau',
+ 'January' => 'Sausis',
+ 'Jul' => 'Lie',
+ 'July' => 'Liepa',
+ 'Jun' => 'Bir',
+ 'June' => 'Birþelis',
+ 'Language' => 'Kalba',
+ 'Mar' => 'Kov',
+ 'March' => 'Kovas',
+ 'May' => 'Geg',
+ 'May ' => 'Geguþë',
+ 'Message' => 'Þinutë',
+ 'N/A' => 'N/A',
+ 'Nothing selected!' => 'Nieko neiðrinkta!',
+ 'Nov' => 'Lap',
+ 'November' => 'Lapkritis',
+ 'Number' => 'Numeris',
+ 'Oct' => 'Spa',
+ 'October' => 'Spalis',
+ 'Order' => 'Uþsakymas',
+ 'PDF' => 'PDF',
+ 'Payments' => 'Mokëjimai',
+ 'Postscript' => 'Postscript(TM)',
+ 'Print' => 'Spausdinti',
+ 'Project' => 'Projektas',
+ 'Project not on file!' => 'Nëra tokio projekto!',
+ 'Receipts' => 'Kasos orderiai',
+ 'Reference' => 'Nuorodos',
+ 'Report for' => 'Ataskaita...',
+ 'Screen' => 'Ekranas',
+ 'Select all' => 'Iðrinkti viskà',
+ 'Select from one of the names below' => 'Iðrinkite vienà ið pavadinimø apaèioje',
+ 'Select from one of the projects below' => 'Iðrinkite vienà ið projektø apaèioje',
+ 'Select postscript or PDF!' => 'Iðrinkite postscript arba PDF!',
+ 'Sep' => 'Rgs',
+ 'September' => 'Rûgsëjis',
+ 'Source' => 'Dokumentas',
+ 'Standard' => 'Standartas',
+ 'Statement' => 'Suvestinë',
+ 'Statement sent to' => 'Siusti suvestinæ á',
+ 'Statements sent to printer!' => 'Siusti suvestinæ á spausdintuvà!',
+ 'Subject' => 'Dalykas',
+ 'Subtotal' => 'Viso',
+ 'Tax' => 'Mokëstis',
+ 'Tax collected' => 'Mokesèiai surinkti',
+ 'Tax paid' => 'Mokesèiai sumokëti',
+ 'To' => 'iki',
+ 'Total' => 'Ið viso',
+ 'Trial Balance' => 'Bandomasis balansas',
+ 'Vendor' => 'Tiekëjas',
+ 'Vendor not on file!' => 'Tokio tiekëjo nëra!',
+ 'as at' => 'kaip',
+ 'for Period' => 'periodui',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'tæsti' => 'continue',
+ 'e_paðtas' => 'e_mail',
+ 'spausdinti' => 'print',
+ 'iðrinkti_viskà' => 'select_all',
+};
+
+1;
+
diff --git a/locale/lv/COPYING b/locale/lv/COPYING
new file mode 100755
index 00000000..ba72007d
--- /dev/null
+++ b/locale/lv/COPYING
@@ -0,0 +1,23 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2003
+#
+# Latvian texts:
+#
+# Author: Kaspars Melkis <info@isolis.lv>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/lv/LANGUAGE b/locale/lv/LANGUAGE
new file mode 100755
index 00000000..8ad79db3
--- /dev/null
+++ b/locale/lv/LANGUAGE
@@ -0,0 +1 @@
+Latvian (ISO-8859-13)
diff --git a/locale/lv/aa b/locale/lv/aa
new file mode 100755
index 00000000..0dea20cf
--- /dev/null
+++ b/locale/lv/aa
@@ -0,0 +1,143 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'AP Outstanding' => 'KP Neapmaksâtie',
+ 'AP Transaction' => 'KP transakcija',
+ 'AP Transactions' => 'KP transakcijas',
+ 'AR Outstanding' => 'DP Neapmaksâtie',
+ 'AR Transaction' => 'DP transakcija',
+ 'AR Transactions' => 'DP transakcijas',
+ 'Account' => 'Konts',
+ 'Accounting Menu' => 'Kontçðanas izvçlne',
+ 'Amount' => 'Summa',
+ 'Amount Due' => 'Nesamaksâtâ summa',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprîlî',
+ 'Are you sure you want to delete Transaction' => 'Vai jûs patieðâm vçlaties dzçst transakciju',
+ 'Aug' => 'Aug',
+ 'August' => 'Augustâ',
+ 'Cannot delete transaction!' => 'Transakciju nevar izdzçst!',
+ 'Cannot post payment for a closed period!' => 'Nevar iegrâmatot maksâjumu par slçgtu periodu!',
+ 'Cannot post transaction for a closed period!' => 'Nevar iegrâmatot transakciju par slçgtu periodu!',
+ 'Cannot post transaction!' => 'Nevar iegrâmatot transakciju!',
+ 'Check' => 'Èeks',
+ 'Closed' => 'Aizvçrts',
+ 'Confirm!' => 'Apstiprinât!',
+ 'Continue' => 'Turpinât',
+ 'Credit' => 'Kredîts',
+ 'Credit Limit' => 'Kredîta limits',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valûta',
+ 'Current' => 'Paðreizçjs',
+ 'Customer' => 'Klients',
+ 'Customer missing!' => 'Nav norâdîts klients!',
+ 'Date' => 'Datums',
+ 'Date Paid' => 'Maksâjuma datums',
+ 'Debit' => 'Debets',
+ 'Dec' => 'Dec',
+ 'December' => 'Decembrî',
+ 'Delete' => 'Dzçst',
+ 'Department' => 'Nodaïa',
+ 'Description' => 'Apraksts',
+ 'Detail' => 'Sîks apraksts',
+ 'Due Date' => 'Apmaksas termiòð',
+ 'Due Date missing!' => 'Nav norâdîts apmaksas termiòð!',
+ 'Employee' => 'Darbinieks',
+ 'Exch' => 'Kurss',
+ 'Exchange Rate' => 'Valûtas maiòas kurss',
+ 'Exchange rate for payment missing!' => 'Nav norâdîts valûtas maiòas kurss maksâjumâ!',
+ 'Exchange rate missing!' => 'Nav norâdîts valûtas maiòas kurss!',
+ 'Feb' => 'Feb',
+ 'February' => 'Februârî',
+ 'From' => 'No',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Iekïaut atskaitç',
+ 'Invoice' => 'Rçíins',
+ 'Invoice Date' => 'Rçíina datums',
+ 'Invoice Date missing!' => 'Nav norâdîts rçíina datums!',
+ 'Invoice Number' => 'Rçíina numurs',
+ 'Jan' => 'Jan',
+ 'January' => 'Janvârî',
+ 'Jul' => 'Jûl',
+ 'July' => 'Jûlijâ',
+ 'Jun' => 'Jûn',
+ 'June' => 'Jûnijâ',
+ 'Manager' => 'Vadîtâjs',
+ 'Mar' => 'Mar',
+ 'March' => 'Martâ',
+ 'May' => 'Mai',
+ 'May ' => 'Maijâ ',
+ 'Memo' => 'Memorands',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Piezîmes',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembrî',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktobrî',
+ 'Open' => 'Atvçrts',
+ 'Order' => 'Orderis',
+ 'Order Number' => 'Ordera Nr.',
+ 'Paid' => 'Apmaksâts',
+ 'Payment date missing!' => 'Nav norâdîts maksâjuma datums',
+ 'Payments' => 'Maksâjumi',
+ 'Post' => 'Iegrâmatot',
+ 'Post as new' => 'Iegrâmatot kâ jaunu',
+ 'Print' => 'Drukât',
+ 'Project' => 'Projekts',
+ 'Receipt' => 'Kvîts',
+ 'Remaining' => 'Atlikums',
+ 'Salesperson' => 'Pârdevçjs',
+ 'Sep' => 'Sep',
+ 'September' => 'Septembrî',
+ 'Ship to' => 'Piegâdes adrese',
+ 'Ship via' => 'Piegâdât caur',
+ 'Shipping Point' => 'Nosûtîðanas vietas',
+ 'Source' => 'Dokuments',
+ 'Subtotal' => 'Kopâ',
+ 'Summary' => 'Kopçjais',
+ 'Tax' => 'Nodokïi',
+ 'Tax Included' => 'Kopâ ar nodokïiem',
+ 'Till' => 'lîdz',
+ 'To' => 'uz',
+ 'Total' => 'Pavisam Kopâ',
+ 'Transaction deleted!' => 'Transakcija izdzçsta!',
+ 'Transaction posted!' => 'Transakcija iegrâmatota!',
+ 'Update' => 'Atjauninât',
+ 'Vendor' => 'Pârdevçjs',
+ 'Vendor missing!' => 'Pârdevçjs nav norâdîts!',
+ 'Yes' => 'Jâ',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'kp_transakcija' => 'ap_transaction',
+ 'dp_transakcija' => 'ar_transaction',
+ 'turpinât' => 'continue',
+ 'dzçst' => 'delete',
+ 'iegrâmatot' => 'post',
+ 'iegrâmatot_kâ_jaunu' => 'post_as_new',
+ 'drukât' => 'print',
+ 'piegâdes_adrese' => 'ship_to',
+ 'atjauninât' => 'update',
+ 'jâ' => 'yes',
+};
+
+1;
+
diff --git a/locale/lv/admin b/locale/lv/admin
new file mode 100755
index 00000000..a7fb9e44
--- /dev/null
+++ b/locale/lv/admin
@@ -0,0 +1,139 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'Access Control' => 'Piekïuves kontrole',
+ 'Accounting' => 'Kontçðana',
+ 'Add User' => 'Pievienot lietotâju',
+ 'Address' => 'Adrese',
+ 'Administration' => 'Administrâcija',
+ 'Administrator' => 'Administrators',
+ 'All Datasets up to date!' => 'Visas datu kopas ir atjauninâtas!',
+ 'Cannot create Lock!' => 'Cannot create Lock!',
+ 'Change Admin Password' => 'Nomainît administratora paroli',
+ 'Change Password' => 'Nomainît paroli',
+ 'Click on login name to edit!' => 'Noklikðíinât uz lietotâjvârda, lai mainîtu!',
+ 'Company' => 'Uzòçmums',
+ 'Connect to' => 'Pievienoties',
+ 'Continue' => 'Turpinât',
+ 'Create Chart of Accounts' => 'Izveidot kontu plânu',
+ 'Create Dataset' => 'Izveidot datu kopu',
+ 'DBI not installed!' => 'Nav instalçts DBI!',
+ 'Database' => 'Datubâze',
+ 'Database Administration' => 'Datubâzes administrators',
+ 'Database Driver not checked!' => 'Datubâzes draiveris nav atzîmçts!',
+ 'Database User missing!' => 'Nav norâdîts datubâzes lietotâjs!',
+ 'Dataset' => 'Datukopa',
+ 'Dataset missing!' => 'Nav atrasta datukopa!',
+ 'Dataset updated!' => 'Datukopa atjauninâta!',
+ 'Date Format' => 'Datuma formâts',
+ 'Delete' => 'Dzçst',
+ 'Delete Dataset' => 'Izdzçst datukopu',
+ 'Directory' => 'Direktorija',
+ 'Driver' => 'Draiveris',
+ 'Dropdown Limit' => 'Maks. rindu skaits izvçlnç',
+ 'E-mail' => 'E-pasts',
+ 'Edit User' => 'Labot lietotâju',
+ 'Existing Datasets' => 'Esoðâs datukopas',
+ 'Fax' => 'Fakss',
+ 'Host' => 'Serveris',
+ 'Hostname missing!' => 'Nav norâdîts servera nosaukums!',
+ 'Language' => 'Valoda',
+ 'Lock System' => 'Lock System',
+ 'Lockfile created!' => 'Lockfile created!',
+ 'Lockfile removed!' => 'Lockfile removed!',
+ 'Login' => 'Pieteikties',
+ 'Login name missing!' => 'Nav norâdîts pieteikumvârds',
+ 'Logout' => 'Beigt darbu',
+ 'Manager' => 'Vadîtâjs',
+ 'Menu Width' => 'Izvçlnes Platums',
+ 'Multibyte Encoding' => 'Multibaitu kodçðana',
+ 'Name' => 'Nosaukums',
+ 'New Templates' => 'Jauni ðabloni',
+ 'No Database Drivers available!' => 'Nav pieejams datubâzes draiveris!',
+ 'No Dataset selected!' => 'Nav iezîmçta datukopa!',
+ 'Nothing to delete!' => 'Nav nekâ dzçðama!',
+ 'Number Format' => 'Skaitïa formâts',
+ 'Oracle Database Administration' => 'Oracle datubâzes administrçðana',
+ 'Password' => 'Parole',
+ 'Password changed!' => 'Mainît paroli!',
+ 'Pg Database Administration' => 'Pg datubâzes administrçðana',
+ 'PgPP Database Administration' => 'PgPP Database Administration',
+ 'Phone' => 'Tel.',
+ 'Port' => 'Ports',
+ 'Port missing!' => 'Nareizs porta numurs!',
+ 'Printer' => 'Printeris',
+ 'Save' => 'Saglabât',
+ 'Setup Templates' => 'Ðablonu izveidoðana',
+ 'Signature' => 'Paraksts',
+ 'Stylesheet' => 'Stila lapa',
+ 'Templates' => 'Ðabloni',
+ 'The following Datasets are not in use and can be deleted' => 'Sekojoðâs datukopas netiek lietotas un tâs var izdzçst',
+ 'The following Datasets need to be updated' => 'Sekojoðâs datukopas nepiecieðams atjauninât',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Ðî ir sagatavoðanâs pârbaude esoðiem datiem. Nekas netiks izveidots vai izdzçsts.',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Lai pievienotu lietotâju grupai, izmainiet lietotâjvârdu un saglabâjiet.',
+ 'Unlock System' => 'Unlock System',
+ 'Update Dataset' => 'Atjauninât datu kopu',
+ 'Use Templates' => 'Lietot ðablonu',
+ 'User' => 'Lietotâjs',
+ 'User deleted!' => 'Lietotâjs izdzçsts!',
+ 'User saved!' => 'Lietotâjs saglabâts!',
+ 'Version' => 'Versija',
+ 'does not exist' => 'neeksistç',
+ 'is already a member!' => 'jau eksistç ',
+ 'localhost' => 'localhost',
+ 'locked!' => 'slçgts!',
+ 'successfully created!' => 'veiksmîgi izveidots!',
+ 'successfully deleted!' => 'veiksmîgi izdzçsts!',
+ 'website' => 'interneta lapa',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'pievienot_lietotâju' => 'add_user',
+ 'nomainît_administratora_paroli' => 'change_admin_password',
+ 'nomainît_paroli' => 'change_password',
+ 'turpinât' => 'continue',
+ 'izveidot_datu_kopu' => 'create_dataset',
+ 'dzçst' => 'delete',
+ 'izdzçst_datukopu' => 'delete_dataset',
+ 'lock_system' => 'lock_system',
+ 'pieteikties' => 'login',
+ 'beigt_darbu' => 'logout',
+ 'oracle_datubâzes_administrçðana' => 'oracle_database_administration',
+ 'pg_datubâzes_administrçðana' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'saglabât' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'atjauninât_datu_kopu' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/lv/all b/locale/lv/all
new file mode 100755
index 00000000..b35329f3
--- /dev/null
+++ b/locale/lv/all
@@ -0,0 +1,896 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+$self{charset} = 'ISO-8859-13';
+
+
+$self{texts} = {
+ 'A' => 'A',
+ 'AP' => 'Kreditoru parâdi',
+ 'AP Aging' => 'KP novecojums',
+ 'AP Outstanding' => 'KP Neapmaksâtie',
+ 'AP Transaction' => 'KP transakcija',
+ 'AP Transactions' => 'KP transakcijas',
+ 'AR' => 'Debitoru parâdi',
+ 'AR Aging' => 'DP novecojums',
+ 'AR Outstanding' => 'DP Neapmaksâtie',
+ 'AR Transaction' => 'DP transakcija',
+ 'AR Transactions' => 'DP transakcijas',
+ 'AR/AP' => '',
+ 'About' => 'Par',
+ 'Above' => 'Iepriekð',
+ 'Access Control' => 'Piekïuves kontrole',
+ 'Access Denied!' => '',
+ 'Account' => 'Konts',
+ 'Account Number' => 'Konta numurs',
+ 'Account Number missing!' => 'Nav norâdîts konta numurs!',
+ 'Account Type' => 'Konta tips',
+ 'Account Type missing!' => 'Nav norâdîts konta tips!',
+ 'Account deleted!' => 'Kots izdzçsts!',
+ 'Account does not exist!' => 'Konts neeksistç',
+ 'Account saved!' => 'Konts saglabâts!',
+ 'Accounting' => 'Kontçðana',
+ 'Accounting Menu' => 'Kontçðanas izvçlne',
+ 'Accounts' => 'Konti',
+ 'Accrual' => 'Uzkrâðana',
+ 'Activate Audit trail' => 'Aktivizçt audita atzîmes',
+ 'Activate Audit trails' => 'Aktivizçt audita atzîmes',
+ 'Active' => 'Aktîvs',
+ 'Add' => 'Pievienot',
+ 'Add AP Transaction' => '',
+ 'Add AR Transaction' => '',
+ 'Add Account' => 'Pievienot kontu',
+ 'Add Assembly' => 'Pievienot komplektâciju',
+ 'Add Business' => 'Pievienot komercdarbîbu',
+ 'Add Cash Transfer Transaction' => 'Pievienot naudas transakciju',
+ 'Add Customer' => 'Pievienot klientu',
+ 'Add Deduction' => 'Pievienot atlaidi',
+ 'Add Department' => 'Pievienot nodaïu',
+ 'Add Employee' => 'Pievienot darbinieku',
+ 'Add Exchange Rate' => 'Pievienot valûtas maiòas kursu',
+ 'Add GIFI' => 'Pievienot GIFI',
+ 'Add General Ledger Transaction' => 'Pievienot virsgrâmatas transakciju',
+ 'Add Group' => 'Pievienot grupu',
+ 'Add Job' => '',
+ 'Add Labor/Overhead' => 'Pievienot darbu/izmaksas',
+ 'Add Language' => 'Pievienot valodu',
+ 'Add POS Invoice' => 'Pievienot POS rçíinu',
+ 'Add Part' => 'Pievienot daïu',
+ 'Add Pricegroup' => 'Pieviento cenu grupu',
+ 'Add Project' => 'Pievienot projektu',
+ 'Add Purchase Order' => 'Pievienot pirkuma orderi',
+ 'Add Quotation' => 'Pievienot tâmi',
+ 'Add Request for Quotation' => 'Pievienot tâmes pieprasîjumu',
+ 'Add SIC' => 'Pievienot SIC',
+ 'Add Sales Invoice' => 'Pievienot preèu rçíinu',
+ 'Add Sales Order' => 'Pievienot preèu orderi',
+ 'Add Service' => 'Pievienot pakalpojumu',
+ 'Add Timecard' => '',
+ 'Add Transaction' => 'Pievienot transakciju',
+ 'Add User' => 'Pievienot lietotâju',
+ 'Add Vendor' => 'Pievienot pârdevçju',
+ 'Add Vendor Invoice' => 'Pievienot pârdevçja rçíinu',
+ 'Add Warehouse' => 'Pievienot noliktavu',
+ 'Address' => 'Adrese',
+ 'Administration' => 'Administrâcija',
+ 'Administrator' => 'Administrators',
+ 'After Deduction' => 'Pçc atlaides',
+ 'All' => 'Visi',
+ 'All Accounts' => 'Visi konti',
+ 'All Datasets up to date!' => 'Visas datu kopas ir atjauninâtas!',
+ 'All Items' => 'Visi ',
+ 'Allowances' => 'Kabatas nauda',
+ 'Amount' => 'Summa',
+ 'Amount Due' => 'Nesamaksâtâ summa',
+ 'Amount missing!' => 'Nav norâdîta summa',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprîlî',
+ 'Are you sure you want to delete Invoice Number' => 'Vai jûs patieðâm vçlaties dzçst rçíina numuru',
+ 'Are you sure you want to delete Order Number' => 'Vai jûs patieðâm vçlaties dzçst ordera numuru',
+ 'Are you sure you want to delete Quotation Number' => 'Vai jûs patieðâm vçlaties dzçst tâmes numuru',
+ 'Are you sure you want to delete Timecard for' => '',
+ 'Are you sure you want to delete Transaction' => 'Vai jûs patieðâm vçlaties dzçst transakciju',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Vai jûs patieðâm vçlaties dzçst atzîmçtos ierakstus rindâ',
+ 'Assemblies' => 'Komplektâcijas',
+ 'Assemblies restocked!' => 'Komplektâcijas papildinâtas!',
+ 'Assembly' => 'Komplektâcija',
+ 'Assembly stocked!' => '',
+ 'Asset' => 'Aktîvs',
+ 'Attachment' => 'Pielikums',
+ 'Audit Control' => 'Audita kontrole',
+ 'Audit trail disabled' => 'Audita atzîmes atslçgtas',
+ 'Audit trail enabled' => 'Audita atzîmes ieslçgtas',
+ 'Audit trail removed up to' => 'Audita atzîmes novâktas lîdz',
+ 'Audit trails disabled' => 'Audita atzîmes atslçgtas',
+ 'Audit trails enabled' => 'Audita atzîmes ieslçgtas',
+ 'Aug' => 'Aug',
+ 'August' => 'Augustâ',
+ 'Average Cost' => '',
+ 'Avg Cost' => '',
+ 'BIC' => 'BIC',
+ 'BOM' => 'Materiâlu uzskaite',
+ 'Backup' => 'Rezerves kopija',
+ 'Backup sent to' => 'Rezerves kopija nosûtîta uz',
+ 'Balance' => 'Bilance',
+ 'Balance Sheet' => 'Bilances pârskats',
+ 'Based on' => 'Pamatojoties uz',
+ 'Bcc' => 'Bcc',
+ 'Before Deduction' => 'Pirms atlaides',
+ 'Beginning Balance' => 'Sâkuma atlikums',
+ 'Below' => 'Zemâk',
+ 'Billing Address' => 'Rçíina adrese',
+ 'Bin' => 'Bin',
+ 'Bin List' => 'Bin saraksts',
+ 'Bin Lists' => '',
+ 'Books are open' => 'Ieraksti ir atvçrti',
+ 'Break' => 'Pârtraukums',
+ 'Business' => 'Komercdarbîba',
+ 'Business Number' => 'Reìistrâcijas numurs',
+ 'Business deleted!' => 'Komercdarbîba izdzçsta',
+ 'Business saved!' => 'Komercdarbîba saglabâta',
+ 'C' => 'cena',
+ 'COGS' => 'Paðizmaksa',
+ 'COGS account does not exist!' => '',
+ 'Cannot add timecard for a completed job!' => '',
+ 'Cannot change timecard for a completed job!' => '',
+ 'Cannot create Assembly' => '',
+ 'Cannot create Labor' => '',
+ 'Cannot create Lock!' => 'Cannot create Lock!',
+ 'Cannot create Part' => '',
+ 'Cannot create Service' => '',
+ 'Cannot delete Timecard!' => '',
+ 'Cannot delete account!' => 'Kontu nevar izdzçst!',
+ 'Cannot delete customer!' => 'Klientu nevar izdzçst!',
+ 'Cannot delete default account!' => 'Noklusçto kontu nevar izdzçst!',
+ 'Cannot delete invoice!' => 'Rçíinu nevar izdzçst!',
+ 'Cannot delete item!' => 'Vienîbu nevar izdzçst!',
+ 'Cannot delete order!' => 'Orderi nevar izdzçst!',
+ 'Cannot delete quotation!' => 'Tâmi nevar izdzçst!',
+ 'Cannot delete transaction!' => 'Transakciju nevar izdzçst!',
+ 'Cannot delete vendor!' => 'Pârdevçju nevar izdzçst!',
+ 'Cannot post Payment!' => 'Maksâjumu nevar iegrâmatot!',
+ 'Cannot post Receipt!' => 'Kvîti nevar iegrâmatot!',
+ 'Cannot post invoice for a closed period!' => 'Nevar iegrâmatot rçíinu par slçgtu periodu!',
+ 'Cannot post invoice!' => 'Nevar iegrâmatot rçíinu!',
+ 'Cannot post payment for a closed period!' => 'Nevar iegrâmatot maksâjumu par slçgtu periodu!',
+ 'Cannot post transaction for a closed period!' => 'Nevar iegrâmatot transakciju par slçgtu periodu!',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => '',
+ 'Cannot post transaction!' => 'Nevar iegrâmatot transakciju!',
+ 'Cannot remove files!' => 'Nevar izdzçst failus',
+ 'Cannot save account!' => 'Kontu nevar saglabât!',
+ 'Cannot save defaults!' => 'Nevar saglabât noklusçtâs vçrtîbas',
+ 'Cannot save order!' => 'Maksâjuma uzdevumu nevar saglabât!',
+ 'Cannot save preferences!' => 'Nevar saglabât izvçles!',
+ 'Cannot save quotation!' => 'Nevar saglabât tâmi',
+ 'Cannot save timecard for a closed period!' => '',
+ 'Cannot save timecard!' => '',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Konta nevar piesaistît vairâk kâ vienam DP, KP vai IC',
+ 'Cannot set multiple options for' => '',
+ 'Cannot set multiple options for Item' => '',
+ 'Cannot stock Assembly!' => '',
+ 'Cannot stock assemblies!' => 'Nevar papildinât komplektâciju!',
+ 'Cash' => 'Nauda',
+ 'Cc' => 'Cc',
+ 'Change' => 'Izmainît',
+ 'Change Admin Password' => 'Nomainît administratora paroli',
+ 'Change Password' => 'Nomainît paroli',
+ 'Charge' => '',
+ 'Chart of Accounts' => 'Kontu plâns',
+ 'Check' => 'Èeks',
+ 'Check Inventory' => 'Èeku inventûra',
+ 'Checks' => 'Èeki',
+ 'City' => 'Pilsçta',
+ 'Cleared' => 'Apmaksâts',
+ 'Click on login name to edit!' => 'Noklikðíinât uz lietotâjvârda, lai mainîtu!',
+ 'Clocked' => '',
+ 'Close Books up to' => 'Aizvçrt ierakstus lîdz',
+ 'Closed' => 'Aizvçrts',
+ 'Code' => 'Kods',
+ 'Code missing!' => 'Nav norâdîts kods',
+ 'Company' => 'Uzòçmums',
+ 'Company Name' => 'Uzòçmuma nosaukums',
+ 'Compare to' => 'Salîdzinât ar',
+ 'Completed' => '',
+ 'Components' => 'Komponentes',
+ 'Confirm' => '',
+ 'Confirm!' => 'Apstiprinât!',
+ 'Connect to' => 'Pievienoties',
+ 'Contact' => 'Kontaktpersona',
+ 'Continue' => 'Turpinât',
+ 'Contra' => 'Kontrârais konts',
+ 'Copies' => 'Kopijas',
+ 'Copy to COA' => 'Kopçt uz kontu plânu',
+ 'Cost' => 'Izmaksas',
+ 'Cost Center' => 'Galvenâs izmaksas',
+ 'Could not save pricelist!' => '',
+ 'Could not save!' => 'Nevarçja saglabât',
+ 'Could not transfer Inventory!' => 'Nevarçja pârsûtît krâjumu',
+ 'Country' => 'Valsts',
+ 'Create Chart of Accounts' => 'Izveidot kontu plânu',
+ 'Create Dataset' => 'Izveidot datu kopu',
+ 'Credit' => 'Kredîts',
+ 'Credit Limit' => 'Kredîta limits',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valûta',
+ 'Current' => 'Paðreizçjs',
+ 'Current Earnings' => 'Paðreizçjie ienâkumi',
+ 'Customer' => 'Klients',
+ 'Customer History' => 'Klienta vçsture',
+ 'Customer Number' => 'Klienta numurs',
+ 'Customer deleted!' => 'Klients izdzçsts!',
+ 'Customer missing!' => 'Nav norâdîts klients!',
+ 'Customer not on file!' => 'Nav tâda klienta!',
+ 'Customer saved!' => 'Klients ir saglabâts!',
+ 'Customers' => 'Klienti',
+ 'DBI not installed!' => 'Nav instalçts DBI!',
+ 'DOB' => '',
+ 'Database' => 'Datubâze',
+ 'Database Administration' => 'Datubâzes administrators',
+ 'Database Driver not checked!' => 'Datubâzes draiveris nav atzîmçts!',
+ 'Database Host' => 'Datubâzes serveris',
+ 'Database User missing!' => 'Nav norâdîts datubâzes lietotâjs!',
+ 'Dataset' => 'Datukopa',
+ 'Dataset is newer than version!' => 'Datukopa ir jaunâka par versiju!',
+ 'Dataset missing!' => 'Nav atrasta datukopa!',
+ 'Dataset updated!' => 'Datukopa atjauninâta!',
+ 'Date' => 'Datums',
+ 'Date Format' => 'Datuma formâts',
+ 'Date Paid' => 'Maksâjuma datums',
+ 'Date Received' => 'Saòemðanas datums',
+ 'Date missing!' => 'Nav norâdîts datums!',
+ 'Date received missing!' => 'Nav norâdîts saòemðanas datums',
+ 'Date worked' => '',
+ 'Day' => '',
+ 'Day(s)' => '',
+ 'Days' => '',
+ 'Debit' => 'Debets',
+ 'Dec' => 'Dec',
+ 'December' => 'Decembrî',
+ 'Decimalplaces' => 'decimâldaïa',
+ 'Decrease' => 'Samazinât',
+ 'Deduct after' => 'Pieðíirt atlaidi pçc',
+ 'Deduction deleted!' => 'Atlaide izdzçsta',
+ 'Deduction saved!' => 'Atlaide saglabâta',
+ 'Deductions' => 'Atlaides',
+ 'Default Template' => '',
+ 'Defaults' => 'Noklusçtâs vçrtîbas',
+ 'Defaults saved!' => 'Noklusçtâs vçrtîbas saglabâtas',
+ 'Delete' => 'Dzçst',
+ 'Delete Account' => 'Izdzçst Kontu',
+ 'Delete Dataset' => 'Izdzçst datukopu',
+ 'Delete Schedule' => '',
+ 'Deleting a language will also delete the templates for the language' => '',
+ 'Delivery Date' => 'Piegâdes datums',
+ 'Department' => 'Nodaïa',
+ 'Department deleted!' => 'Nodaïa izdzçsta',
+ 'Department saved!' => 'Nodaïa saglabâta',
+ 'Departments' => 'Nodaïas',
+ 'Deposit' => 'Depozîts',
+ 'Description' => 'Apraksts',
+ 'Description Translations' => 'Apraksta tulkojumi',
+ 'Description missing!' => 'Nav norâdîts apraksts',
+ 'Detail' => 'Sîks apraksts',
+ 'Difference' => 'Starpîba',
+ 'Directory' => 'Direktorija',
+ 'Discount' => 'Atlaide',
+ 'Done' => 'Izdarîts',
+ 'Drawing' => 'Èeku izrakstîðana',
+ 'Driver' => 'Draiveris',
+ 'Dropdown Limit' => 'Maks. rindu skaits izvçlnç',
+ 'Due Date' => 'Apmaksas termiòð',
+ 'Due Date missing!' => 'Nav norâdîts apmaksas termiòð!',
+ 'E-mail' => 'E-pasts',
+ 'E-mail Statement to' => 'Nosûtît atskaiti pa e-pastu uz ',
+ 'E-mail address missing!' => 'Nepareiza E-pasta adrese!',
+ 'E-mail message' => '',
+ 'E-mailed' => 'Nosûtîts pa e-pastu',
+ 'Edit' => 'Labot',
+ 'Edit AP Transaction' => '',
+ 'Edit AR Transaction' => '',
+ 'Edit Account' => 'Labot kontu',
+ 'Edit Assembly' => 'Labot komplektâciju',
+ 'Edit Business' => 'Izmainît komercdarbîbu',
+ 'Edit Cash Transfer Transaction' => 'Labot naudas pârsûtîðanas transakciju',
+ 'Edit Customer' => 'Labot klientu',
+ 'Edit Deduction' => 'Labot atlaidi',
+ 'Edit Department' => 'Labot nodaïu',
+ 'Edit Description Translations' => 'Labot tulkojumu aprakstus',
+ 'Edit Employee' => 'Labot darbinieku',
+ 'Edit GIFI' => 'Labot GIFI',
+ 'Edit General Ledger Transaction' => 'Labot transakciju virsgrâmatâ',
+ 'Edit Group' => 'Labot grupu',
+ 'Edit Job' => '',
+ 'Edit Labor/Overhead' => 'Labot darbu/izmaksas',
+ 'Edit Language' => 'Labot valodu',
+ 'Edit POS Invoice' => 'Labot POS rçíinu',
+ 'Edit Part' => 'Labot daïu',
+ 'Edit Preferences for' => 'Labot izvçles',
+ 'Edit Pricegroup' => 'Labot cenu grupu',
+ 'Edit Project' => 'Labot projektu',
+ 'Edit Purchase Order' => 'Labot pirkuma orderi',
+ 'Edit Quotation' => 'Labot tâmi',
+ 'Edit Request for Quotation' => 'Labot tâmes pieprasîjumu',
+ 'Edit SIC' => 'Labot SIC',
+ 'Edit Sales Invoice' => 'Labot pârdoðanas rçíinu',
+ 'Edit Sales Order' => 'Labot pârdoðanas orderi',
+ 'Edit Service' => 'Labot pakalpojumu',
+ 'Edit Template' => 'Labot ðablonu',
+ 'Edit Timecard' => '',
+ 'Edit User' => 'Labot lietotâju',
+ 'Edit Vendor' => 'Labot pârdevçju',
+ 'Edit Vendor Invoice' => 'Labot pârdevçja rçíinu',
+ 'Edit Warehouse' => 'Labot noliktavu',
+ 'Employee' => 'Darbinieks',
+ 'Employee Name' => 'Darbinieka vârds',
+ 'Employee Number' => '',
+ 'Employee deleted!' => 'Darbinieks izdzçsts',
+ 'Employee pays' => 'Darbinieku izmaksas',
+ 'Employee saved!' => 'Darbinieks saglabâts',
+ 'Employees' => 'Darbinieki',
+ 'Employer' => 'Nodarbinâtâjs',
+ 'Employer pays' => 'Nodarbinâtâju izmaksas',
+ 'Enddate' => 'Beigu datums',
+ 'Ends' => '',
+ 'Enforce transaction reversal for all dates' => 'Izpildît transakciju atcelðanu visos datumos',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Ierakstît 3 simbolus kolonâs (USD:LVL:EUR), lai definçtu valûtas',
+ 'Equity' => 'Paðu kapitâls',
+ 'Every' => '',
+ 'Excempt age <' => '',
+ 'Exch' => 'Kurss',
+ 'Exchange Rate' => 'Valûtas maiòas kurss',
+ 'Exchange rate for payment missing!' => 'Nav norâdîts valûtas maiòas kurss maksâjumâ!',
+ 'Exchange rate missing!' => 'Nav norâdîts valûtas maiòas kurss!',
+ 'Existing Datasets' => 'Esoðâs datukopas',
+ 'Expense' => 'Izdevumi',
+ 'Expense account does not exist!' => '',
+ 'Expense/Asset' => 'Izdevumi/Aktîvi',
+ 'Extended' => 'Kopâ',
+ 'FX' => 'FX',
+ 'Failed to save order!' => '',
+ 'Fax' => 'Fakss',
+ 'Feb' => 'Feb',
+ 'February' => 'Februârî',
+ 'For' => '',
+ 'Foreign Exchange Gain' => 'Ienâkumi no valûtas maiòas',
+ 'Foreign Exchange Loss' => 'Zaudçjumi no valûtas maiòas',
+ 'Friday' => '',
+ 'From' => 'No',
+ 'From Warehouse' => '',
+ 'GIFI' => 'GIFI',
+ 'GIFI deleted!' => 'GIFI izdzçsts',
+ 'GIFI missing!' => 'Nav norâdîts GIFI!',
+ 'GIFI saved!' => 'GIFI saglabâts!',
+ 'GL' => '',
+ 'GL Reference Number' => '',
+ 'GL Transaction' => 'Virsgrâmatas transakcija',
+ 'General Ledger' => 'Virsgrâmata',
+ 'Generate' => '',
+ 'Generate Orders' => '',
+ 'Generate Purchase Orders' => '',
+ 'Generate Purchase Orders from Sales Order' => '',
+ 'Generate Sales Order' => '',
+ 'Generate Sales Order from Purchase Orders' => '',
+ 'Generate Sales Orders' => '',
+ 'Goods & Services' => 'Preces un Pakalpojumi',
+ 'Group' => 'Grupa',
+ 'Group Items' => 'Ierakstu grupa',
+ 'Group Translations' => 'Grupu transakcijas',
+ 'Group deleted!' => 'Grupa izdzçsta!',
+ 'Group missing!' => 'Grupa nav norâdîta!',
+ 'Group saved!' => 'Grupa saglabâta!',
+ 'Groups' => 'Grupas',
+ 'HR' => 'Personâldaïa',
+ 'HTML Templates' => 'HTML ðabloni',
+ 'Heading' => 'Virsraksts',
+ 'History' => 'Vçsture',
+ 'Home Phone' => 'Mâjas telefons',
+ 'Host' => 'Serveris',
+ 'Hostname missing!' => 'Nav norâdîts servera nosaukums!',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Image' => 'Attçls',
+ 'In-line' => 'Iekïauts',
+ 'Inactive' => '',
+ 'Include Exchange Rate Difference' => 'Iekïaut valûtas kursu atðíirîbas',
+ 'Include Payment' => '',
+ 'Include in Report' => 'Iekïaut atskaitç',
+ 'Include in drop-down menus' => 'Iekïaut nolaiþamo izvçlni',
+ 'Income' => 'Ienâkums',
+ 'Income Statement' => 'Peïòas vai zaudçjuma aprçíins',
+ 'Income account does not exist!' => '',
+ 'Incorrect Dataset version!' => 'Nepareiza datukopas versija!',
+ 'Increase' => 'Pieaugums',
+ 'Individual Items' => 'Individuâli ieraksti',
+ 'Internal Notes' => 'Iekðçjâs piezîmes',
+ 'Inventory' => 'Krâjumi',
+ 'Inventory account does not exist!' => '',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Krâjuma daudzumam jâbût nullei pirms jûs varat atcelt ðo komplektâciju!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Krâjuma daudzumam jâbût nullei pirms jûs varat atcelt ðo preci!',
+ 'Inventory saved!' => 'Krâjums saglabâts',
+ 'Inventory transferred!' => 'Krâjums pârsûtîts',
+ 'Invoice' => 'Rçíins',
+ 'Invoice Date' => 'Rçíina datums',
+ 'Invoice Date missing!' => 'Nav norâdîts rçíina datums!',
+ 'Invoice Number' => 'Rçíina numurs',
+ 'Invoice Number missing!' => 'Nepareizs rçíina numurs',
+ 'Invoice deleted!' => 'Rçíins izdzçsts!',
+ 'Invoices' => 'Rçíini',
+ 'Is this a summary account to record' => 'Vai ðis ir summârais konts ierakstam',
+ 'Item already on pricelist!' => '',
+ 'Item deleted!' => 'Vienîba izdzçsts!',
+ 'Item not on file!' => 'Nav tâdas vienîbas!',
+ 'Items' => 'Vienîbas',
+ 'Jan' => 'Jan',
+ 'January' => 'Janvârî',
+ 'Job' => '',
+ 'Job Name' => '',
+ 'Job Number' => '',
+ 'Job Number missing!' => '',
+ 'Job deleted!' => '',
+ 'Job saved!' => '',
+ 'Jobs' => '',
+ 'Jul' => 'Jûl',
+ 'July' => 'Jûlijâ',
+ 'Jun' => 'Jûn',
+ 'June' => 'Jûnijâ',
+ 'LaTeX Templates' => 'LaTeX ðablons',
+ 'Labor Code' => '',
+ 'Labor/Overhead' => 'Darbs/izmaksas',
+ 'Language' => 'Valoda',
+ 'Language deleted!' => 'Valoda izdzçsta',
+ 'Language saved!' => 'Valoda saglabâta',
+ 'Languages' => 'Valodas',
+ 'Languages not defined!' => 'Valodas nav definçtas',
+ 'Last Cost' => '',
+ 'Last Numbers & Default Accounts' => 'Pçdçjais numurs un noklusçtais konts',
+ 'Lead' => '',
+ 'Leadtime' => 'Izlaides termiòð',
+ 'Leave host and port field empty unless you want to make a remote connection.' => 'Servera un porta laukus var atstât tukðus, ja nevçlaties izveidot attâlinâtu konekciju',
+ 'Liability' => 'Saistîbas',
+ 'Licensed to' => 'Licencçts firmai',
+ 'Line Total' => 'Kopsumma',
+ 'Link' => 'Saite',
+ 'Link Accounts' => 'Piesaistît kontus',
+ 'List' => '',
+ 'List Accounts' => 'Kontu saraksts',
+ 'List Businesses' => 'Komerdarbîbu saraksts',
+ 'List Departments' => 'Nodaïu saraksts',
+ 'List GIFI' => 'GIFI saraksts',
+ 'List Languages' => 'Valodu saraksts',
+ 'List Price' => 'Cenrâþa cena',
+ 'List Projects' => 'Projektu saraksts',
+ 'List SIC' => 'SIC saraksts',
+ 'List Transactions' => 'Transakciju saraksts',
+ 'List Warehouses' => 'Noliktavu saraksts',
+ 'Lock System' => 'Lock System',
+ 'Lockfile created!' => 'Lockfile created!',
+ 'Lockfile removed!' => 'Lockfile removed!',
+ 'Login' => 'Pieteikties',
+ 'Login name missing!' => 'Nav norâdîts pieteikumvârds',
+ 'Logout' => 'Beigt darbu',
+ 'Make' => 'Izveidot',
+ 'Manager' => 'Vadîtâjs',
+ 'Mar' => 'Mar',
+ 'March' => 'Martâ',
+ 'Marked entries printed!' => 'Atzîmçtie ieraksti izdrukâti',
+ 'Markup' => 'Uzcenojums',
+ 'Maximum' => 'Maksimâlais',
+ 'May' => 'Mai',
+ 'May ' => 'Maijâ ',
+ 'Memo' => 'Memorands',
+ 'Menu Width' => 'Izvçlnes Platums',
+ 'Message' => 'Paziòojums',
+ 'Method' => 'Metode',
+ 'Microfiche' => 'Mikrofilma',
+ 'Model' => 'Modelis',
+ 'Monday' => '',
+ 'Month' => '',
+ 'Month(s)' => '',
+ 'Months' => '',
+ 'Multibyte Encoding' => 'Multibaitu kodçðana',
+ 'N/A' => 'Nav',
+ 'Name' => 'Nosaukums',
+ 'Name missing!' => 'Nepareizs nosaukums',
+ 'New Templates' => 'Jauni ðabloni',
+ 'New Window' => '',
+ 'Next' => '',
+ 'Next Date' => '',
+ 'Next Number' => '',
+ 'No' => 'Nç',
+ 'No Database Drivers available!' => 'Nav pieejams datubâzes draiveris!',
+ 'No Dataset selected!' => 'Nav iezîmçta datukopa!',
+ 'No Employees on file!' => '',
+ 'No Labor codes on file!' => '',
+ 'No email address for' => 'Nav e-pasta adrese',
+ 'No open Jobs!' => '',
+ 'No open Projects!' => '',
+ 'No.' => 'Nr.',
+ 'Non-taxable' => 'Neapliekams ar nodokïiem',
+ 'Non-taxable Purchases' => 'Pirkumi, kas nav apliekami ar nodokïiem',
+ 'Non-taxable Sales' => 'Tirgoðana, kas nav apliekama ar nodokïiem',
+ 'Non-tracking Items' => '',
+ 'Notes' => 'Piezîmes',
+ 'Nothing entered!' => 'Nekas nav ievadîts',
+ 'Nothing selected!' => 'Nekas nav iezîmçts!',
+ 'Nothing to delete!' => 'Nav nekâ dzçðama!',
+ 'Nothing to print!' => '',
+ 'Nothing to transfer!' => 'Nav nekâ pârsûtîðanai',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembrî',
+ 'Number' => 'Numurs',
+ 'Number Format' => 'Skaitïa formâts',
+ 'Number missing in Row' => 'Rindâ nav norâdîts numurs',
+ 'O' => 'O',
+ 'OH' => '',
+ 'Obsolete' => 'Novecojis',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktobrî',
+ 'On Hand' => 'Pieejams',
+ 'Open' => 'Atvçrts',
+ 'Oracle Database Administration' => 'Oracle datubâzes administrçðana',
+ 'Order' => 'Orderis',
+ 'Order Date' => 'Ordera datums',
+ 'Order Date missing!' => 'Nav norâdîts ordera datums!',
+ 'Order Entry' => 'Ordera ieraksts',
+ 'Order Number' => 'Ordera Nr.',
+ 'Order Number missing!' => 'Nav norâdîts ordera numurs!',
+ 'Order deleted!' => 'Orderis izdzçsts',
+ 'Order generation failed!' => '',
+ 'Order saved!' => 'Orderis saglabâts!',
+ 'Orders generated!' => '',
+ 'Orphaned' => 'Bez atbilstoðâ pâra',
+ 'Out of balance transaction!' => 'Transakcija bez bilances',
+ 'Out of balance!' => 'Nav bilances!',
+ 'Outstanding' => 'Neapmaksâtais',
+ 'PDF' => 'PDF',
+ 'PO Number' => '',
+ 'POS' => 'POS',
+ 'POS Invoice' => 'POS rçíins',
+ 'Packing List' => 'Iesaiòojumu saraksts',
+ 'Packing List Date missing!' => 'Nav norâdîts iesaiòojumu datums!',
+ 'Packing List Number missing!' => 'Nav norâdîts iesaiòojumu numurs!',
+ 'Packing Lists' => 'Iesaiòojumu saraksti',
+ 'Paid' => 'Apmaksâts',
+ 'Part' => 'Prece',
+ 'Part Number' => '',
+ 'Partnumber' => 'Daïas numurs',
+ 'Parts' => 'Daïas',
+ 'Password' => 'Parole',
+ 'Password changed!' => 'Mainît paroli!',
+ 'Password does not match!' => '',
+ 'Passwords do not match!' => '',
+ 'Payables' => 'Kreditoru parâdi',
+ 'Payment' => 'Maksâjums',
+ 'Payment date missing!' => 'Nav norâdîts maksâjuma datums',
+ 'Payment posted!' => 'Maksâjums iegrâmatots!',
+ 'Payments' => 'Maksâjumi',
+ 'Payments posted!' => '',
+ 'Payroll Deduction' => 'Algu atlaides',
+ 'Period' => '',
+ 'Pg Database Administration' => 'Pg datubâzes administrçðana',
+ 'PgPP Database Administration' => 'PgPP Database Administration',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Izvçles saraksts',
+ 'Pick Lists' => '',
+ 'Port' => 'Ports',
+ 'Port missing!' => 'Nareizs porta numurs!',
+ 'Pos' => '',
+ 'Post' => 'Iegrâmatot',
+ 'Post as new' => 'Iegrâmatot kâ jaunu',
+ 'Posted!' => 'Iegrâmatots!',
+ 'Posting' => '',
+ 'Posting failed!' => '',
+ 'Postscript' => 'Postscript',
+ 'Preferences' => 'Izvçles',
+ 'Preferences saved!' => 'Izvçles saglabâtas!',
+ 'Prepayment' => 'Avansa maksâjums',
+ 'Price' => 'Cena',
+ 'Pricegroup' => 'Cenu grupa',
+ 'Pricegroup deleted!' => 'Cenu grupa izdzçsta',
+ 'Pricegroup missing!' => 'Cenu grupa nav norâdîta',
+ 'Pricegroup saved!' => 'Cenu grupa saglabâta',
+ 'Pricegroups' => 'Cenu grupas',
+ 'Pricelist' => '',
+ 'Print' => 'Drukât',
+ 'Print and Post' => '',
+ 'Print and Post as new' => '',
+ 'Print and Save' => '',
+ 'Print and Save as new' => '',
+ 'Print and post as new' => '',
+ 'Print and save as new' => '',
+ 'Printed' => 'Izdrukâts',
+ 'Printer' => 'Printeris',
+ 'Printing' => '',
+ 'Printing ... ' => 'Drukâ ...',
+ 'Process Transactions' => '',
+ 'Production' => '',
+ 'Profit Center' => 'Galvenie ienâkumi',
+ 'Project' => 'Projekts',
+ 'Project Description Translations' => 'Projekta apraksta tulkojumi',
+ 'Project Name' => '',
+ 'Project Number' => 'Projekta numurs',
+ 'Project Number missing!' => 'Nav norâdîts projekta numurs!',
+ 'Project Transactions' => 'Projekta transakcijas',
+ 'Project deleted!' => 'Projekts izdzçsts!',
+ 'Project not on file!' => 'Nav tâda projekta!',
+ 'Project saved!' => 'Projekts saglabâts',
+ 'Project/Job Name' => '',
+ 'Project/Job Number' => '',
+ 'Projects' => 'Projekti',
+ 'Purchase Order' => 'Pirkðanas orderis',
+ 'Purchase Order Number' => '',
+ 'Purchase Orders' => 'Pirkðanas orderi',
+ 'Qty' => 'Skaits',
+ 'Quantity exceeds available units to stock!' => 'Skaits pârsniedz noliktavâ esoðo priekðmetu skaitu',
+ 'Quarter' => '',
+ 'Quotation' => 'Tâme',
+ 'Quotation ' => '',
+ 'Quotation Date' => 'Tâmes datums',
+ 'Quotation Date missing!' => 'Nav norâdîts tâmes datums',
+ 'Quotation Number' => 'Tâmes numurs',
+ 'Quotation Number missing!' => 'Nav norâdîts tâmes numurs',
+ 'Quotation deleted!' => 'Tâme izdzçsta',
+ 'Quotations' => 'Tâmes',
+ 'R' => 'R',
+ 'RFQ' => 'Tâmes pieprasîjums',
+ 'RFQ ' => '',
+ 'RFQ Number' => 'Tâmes pieprasîjuma numurs',
+ 'RFQs' => 'Tâmes pieprasîjumu',
+ 'ROP' => 'Pasûtîðanas limits',
+ 'Rate' => 'Likme',
+ 'Rate missing!' => 'Likme nav norâdîta',
+ 'Recd' => 'Saòemts',
+ 'Receipt' => 'Kvîts',
+ 'Receipt posted!' => 'Kvîtis iegrâmatotas',
+ 'Receipts' => 'Kvîtis',
+ 'Receivables' => 'Ienâkoðie maksâjumi',
+ 'Receive' => 'Saòemt',
+ 'Receive Merchandise' => 'Saòemt preces',
+ 'Reconciliation' => 'Izlîdzinâðana',
+ 'Reconciliation Report' => 'Izlîdzinâðanas atskaite',
+ 'Record in' => 'Ierakstît',
+ 'Recurring Transaction' => '',
+ 'Recurring Transactions' => '',
+ 'Reference' => 'Norâde',
+ 'Remaining' => 'Atlikums',
+ 'Remove' => 'Izdzçst',
+ 'Remove Audit trail up to' => 'Izdzçst audita atzîmes lîdz',
+ 'Remove Audit trails up to' => 'Izdzçst audita atzîmes lîdz',
+ 'Removed spoolfiles!' => 'Izdzçst printera rindas failus',
+ 'Removing marked entries from queue ...' => 'Izdzçðu atzîmçtos ierakstus no rindas ...',
+ 'Repeat' => '',
+ 'Report for' => 'Atskaite par',
+ 'Reports' => 'Atskaites',
+ 'Req' => '',
+ 'Request for Quotation' => 'Tâmes pieprasîjums',
+ 'Request for Quotations' => 'Tâmju pieprasîjums',
+ 'Required by' => 'Pieprasîja',
+ 'Retained Earnings' => 'Nesadalîtâ peïòa',
+ 'Role' => 'Loma',
+ 'S' => 'S',
+ 'SIC' => 'SIC',
+ 'SIC deleted!' => 'SIC izdzçsts',
+ 'SIC saved!' => 'SIC saglabâts',
+ 'SKU' => 'SKU',
+ 'SSN' => '',
+ 'Sale' => 'Pârdoðana',
+ 'Sales' => 'Pârdoðanas',
+ 'Sales Invoice' => 'Pârdoðanas rçíins',
+ 'Sales Invoice ' => '',
+ 'Sales Invoice.' => '',
+ 'Sales Invoice/AR Transaction Number' => '',
+ 'Sales Invoices' => 'Pârdoðanas rçíini',
+ 'Sales Order' => 'Pârdoðanas orderis',
+ 'Sales Order Number' => '',
+ 'Sales Orders' => 'Pârdoðanas orderi',
+ 'Sales Quotation Number' => '',
+ 'Salesperson' => 'Pârdevçjs',
+ 'Saturday' => '',
+ 'Save' => 'Saglabât',
+ 'Save Pricelist' => '',
+ 'Save Schedule' => '',
+ 'Save as new' => 'Saglabât kâ jaunu',
+ 'Save to File' => 'Saglabât failâ',
+ 'Saving' => '',
+ 'Schedule' => '',
+ 'Scheduled' => '',
+ 'Screen' => 'Ekrâns',
+ 'Search' => 'Meklçt',
+ 'Select' => 'Atlasît',
+ 'Select Customer' => '',
+ 'Select Vendor' => '',
+ 'Select a Printer!' => '',
+ 'Select a printer!' => '',
+ 'Select all' => 'Atlasît visu',
+ 'Select from one of the items below' => 'Atlasît vienu no sekojoðiem ierakstiem',
+ 'Select from one of the names below' => 'Atlasît vienu no sekojoðiem nosaukumiem',
+ 'Select from one of the projects below' => 'Atlasît vienu no sekojoðiem projektiem',
+ 'Select items' => '',
+ 'Select payment' => '',
+ 'Select postscript or PDF!' => 'Izvçlçties postscript vai PDF!',
+ 'Select txt, postscript or PDF!' => '',
+ 'Sell' => '',
+ 'Sell Price' => 'Pârdoðanas cena',
+ 'Send by E-Mail' => 'Nosûtît pa e-pastu',
+ 'Sending' => '',
+ 'Sep' => 'Sep',
+ 'September' => 'Septembrî',
+ 'Serial No.' => 'Seriâlais Nr.',
+ 'Serial Number' => 'Seriâlais numurs',
+ 'Service' => 'Pakalpojums',
+ 'Service Code' => '',
+ 'Service/Labor Code' => '',
+ 'Services' => 'Pakalpojumi',
+ 'Session Timeout' => '',
+ 'Session expired!' => '',
+ 'Setup Templates' => 'Ðablonu izveidoðana',
+ 'Ship' => 'Piegâdât',
+ 'Ship Merchandise' => 'Piegâdât preces',
+ 'Ship to' => 'Piegâdes adrese',
+ 'Ship via' => 'Piegâdât caur',
+ 'Shipping' => 'Piegâde',
+ 'Shipping Address' => 'Piegâdes adrese',
+ 'Shipping Date' => 'Nosûtîðanas datums',
+ 'Shipping Date missing!' => 'Nav norâdîts nosûtîðanas datums',
+ 'Shipping Point' => 'Nosûtîðanas vietas',
+ 'Short' => 'Aizdoðana',
+ 'Signature' => 'Paraksts',
+ 'Source' => 'Dokuments',
+ 'Spoolfile' => 'Printera rindas fails',
+ 'Standard' => 'Standarts',
+ 'Standard Industrial Codes' => 'Standarta industrijas kodi',
+ 'Startdate' => 'Sâkuma datums',
+ 'State' => '',
+ 'State/Province' => 'Ðtats/Province',
+ 'Statement' => 'Pârskats',
+ 'Statement Balance' => 'Bilances atskaite',
+ 'Statement sent to' => 'Nosûtît pârskatu uz',
+ 'Statements sent to printer!' => 'Nosûtît pârskatu uz drukâðanu!',
+ 'Stock' => 'Krâjums',
+ 'Stock Assembly' => 'Komplektâcijas krâjumâ',
+ 'Stocking Date' => '',
+ 'Stylesheet' => 'Stila lapa',
+ 'Sub-contract GIFI' => 'Subkontrakta GIFI',
+ 'Subject' => 'Temats',
+ 'Subtotal' => 'Kopâ',
+ 'Summary' => 'Kopçjais',
+ 'Sunday' => '',
+ 'Supervisor' => '',
+ 'System' => 'Sistçma',
+ 'System Defaults' => 'Sistçmas noklusçtâs vçrtîbas',
+ 'Tax' => 'Nodokïi',
+ 'Tax Accounts' => 'Nodokïu konti',
+ 'Tax Included' => 'Kopâ ar nodokïiem',
+ 'Tax Number' => 'Nodokïu maksâtâja kods',
+ 'Tax Number / SSN' => 'Nodokïu maksâtâja kods / SSN',
+ 'Tax collected' => 'Ieòemtie nodokïi',
+ 'Tax paid' => 'Samaksâtie nodokïi',
+ 'Taxable' => 'Apliekams ar nodokli',
+ 'Template saved!' => 'Ðablons saglabâts!',
+ 'Templates' => 'Ðabloni',
+ 'Terms' => 'Noteikumi: termiòð',
+ 'Text' => '',
+ 'Text Templates' => 'Teksta ðabloni',
+ 'The following Datasets are not in use and can be deleted' => 'Sekojoðâs datukopas netiek lietotas un tâs var izdzçst',
+ 'The following Datasets need to be updated' => 'Sekojoðâs datukopas nepiecieðams atjauninât',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Ðî ir sagatavoðanâs pârbaude esoðiem datiem. Nekas netiks izveidots vai izdzçsts.',
+ 'Thursday' => '',
+ 'Till' => 'lîdz',
+ 'Time In' => '',
+ 'Time Out' => '',
+ 'Timecard' => '',
+ 'Timecard deleted!' => '',
+ 'Timecard saved!' => '',
+ 'Timecards' => '',
+ 'Times' => '',
+ 'To' => 'uz',
+ 'To Warehouse' => '',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Lai pievienotu lietotâju grupai, izmainiet lietotâjvârdu un saglabâjiet.',
+ 'Top Level' => 'Augðçjais lîmenis',
+ 'Total' => 'Pavisam Kopâ',
+ 'Tracking Items' => '',
+ 'Trade Discount' => 'Vairumtirgotâja atlaide',
+ 'Transaction' => '',
+ 'Transaction Date missing!' => 'Nav norâdîts transakcijas datums!',
+ 'Transaction Dates' => '',
+ 'Transaction deleted!' => 'Transakcija izdzçsta!',
+ 'Transaction posted!' => 'Transakcija iegrâmatota!',
+ 'Transaction reversal enforced for all dates' => 'Veikt transakciju atcelðanu visiem datumiem',
+ 'Transaction reversal enforced up to' => 'Transakcijas bûs izmainîtas lîdz',
+ 'Transactions' => 'Transakcijas',
+ 'Transfer' => 'Pârsûtîðana',
+ 'Transfer Inventory' => 'Krâjuma pârsûtîðana',
+ 'Transfer from' => '',
+ 'Transfer to' => 'Pârsûtît uz',
+ 'Translation' => 'Tulkojums',
+ 'Translation deleted!' => 'Tulkojums izdzçsts',
+ 'Translation not on file!' => '',
+ 'Translations' => 'Tulkojumi',
+ 'Translations saved!' => 'Tulkojumi saglabâti',
+ 'Trial Balance' => 'Kontu bilance',
+ 'Tuesday' => '',
+ 'Type of Business' => 'Komercdarbîbas veids',
+ 'Unit' => 'Vienîba',
+ 'Unit of measure' => 'Preces mçrvienîba',
+ 'Unlock System' => 'Unlock System',
+ 'Update' => 'Atjauninât',
+ 'Update Dataset' => 'Atjauninât datu kopu',
+ 'Updated' => 'Atjauninâts',
+ 'Upgrading to Version' => 'Uzlabot lîdz versijai',
+ 'Use Templates' => 'Lietot ðablonu',
+ 'User' => 'Lietotâjs',
+ 'User deleted!' => 'Lietotâjs izdzçsts!',
+ 'User saved!' => 'Lietotâjs saglabâts!',
+ 'Valid until' => 'Derîgs lîdz',
+ 'Vendor' => 'Pârdevçjs',
+ 'Vendor History' => 'Pârdevçja vçsture',
+ 'Vendor Invoice' => 'Pârdevçja rçíins',
+ 'Vendor Invoice ' => '',
+ 'Vendor Invoice.' => '',
+ 'Vendor Invoice/AP Transaction Number' => '',
+ 'Vendor Invoices' => 'Pârdevçja rçíini',
+ 'Vendor Number' => 'Pârdevçja numurs',
+ 'Vendor deleted!' => 'Pârdevçjs izdzçsts!',
+ 'Vendor missing!' => 'Pârdevçjs nav norâdîts!',
+ 'Vendor not on file!' => 'Nav tâda pârdevçja!',
+ 'Vendor saved!' => 'Pârdevçjs saglabâts',
+ 'Vendors' => 'Pârdevçji',
+ 'Version' => 'Versija',
+ 'Warehouse' => 'Noliktava',
+ 'Warehouse deleted!' => 'Noliktava izdzçsta',
+ 'Warehouse saved!' => 'Noliktava saglabâta',
+ 'Warehouses' => 'Noliktavas',
+ 'Warning!' => 'Brîdinâjums!',
+ 'Wednesday' => '',
+ 'Week' => '',
+ 'Week(s)' => '',
+ 'Weeks' => '',
+ 'Weight' => 'Svars',
+ 'Weight Unit' => 'Svara mçrvienîba',
+ 'What type of item is this?' => 'Kâda veida vienîba tâ ir?',
+ 'Work Order' => 'Darba orderis',
+ 'Work Orders' => '',
+ 'Work Phone' => 'Darba telefons',
+ 'Year' => '',
+ 'Year(s)' => '',
+ 'Yearend' => 'Finanðu gada beigas',
+ 'Yearend date missing!' => 'Nav norâdîts pârskata finanðu gada beigu datums',
+ 'Yearend posted!' => 'Finanðu gada beigas iegrâmatotas',
+ 'Yearend posting failed!' => 'Finanðu gada beigu iegrâmatoðana neizdevâs',
+ 'Years' => '',
+ 'Yes' => 'Jâ',
+ 'You are logged out' => '',
+ 'You are posting an existing transaction!' => '',
+ 'You are printing and posting an existing transaction!' => '',
+ 'You are printing and saving an existing order' => '',
+ 'You are printing and saving an existing quotation' => '',
+ 'You are printing and saving an existing transaction!' => '',
+ 'You are saving an existing order' => '',
+ 'You are saving an existing quotation' => '',
+ 'You are saving an existing transaction!' => '',
+ 'You did not enter a name!' => 'Nav ievadîts vârds',
+ 'You must enter a host and port for local and remote connections!' => 'Lokâlam un attâlinâtam savienojumam jâievada vçrtîbas servera un porta laukos!',
+ 'Zip/Postal Code' => '',
+ 'account cannot be set to any other type of account' => 'kontu nevar nomainît uz jebkuru citu konta tipu',
+ 'as at' => 'uz',
+ 'days' => 'dienas',
+ 'does not exist' => 'neeksistç',
+ 'done' => 'izdarîts',
+ 'ea' => 'gb',
+ 'failed' => '',
+ 'for' => '',
+ 'for Period' => 'periodam',
+ 'is already a member!' => 'jau eksistç ',
+ 'localhost' => 'localhost',
+ 'locked!' => 'slçgts!',
+ 'partsgroup' => '',
+ 'posted!' => 'iegrâmatots!',
+ 'sent' => 'nosûtîts',
+ 'successfully created!' => 'veiksmîgi izveidots!',
+ 'successfully deleted!' => 'veiksmîgi izdzçsts!',
+ 'time(s)' => '',
+ 'unexpected error!' => '',
+ 'website' => 'interneta lapa',
+};
+
+1;
diff --git a/locale/lv/am b/locale/lv/am
new file mode 100755
index 00000000..3e929569
--- /dev/null
+++ b/locale/lv/am
@@ -0,0 +1,275 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'AP' => 'Kreditoru parâdi',
+ 'AR' => 'Debitoru parâdi',
+ 'About' => 'Par',
+ 'Account' => 'Konts',
+ 'Account Number' => 'Konta numurs',
+ 'Account Number missing!' => 'Nav norâdîts konta numurs!',
+ 'Account Type' => 'Konta tips',
+ 'Account Type missing!' => 'Nav norâdîts konta tips!',
+ 'Account deleted!' => 'Kots izdzçsts!',
+ 'Account does not exist!' => 'Konts neeksistç',
+ 'Account saved!' => 'Konts saglabâts!',
+ 'Accounting Menu' => 'Kontçðanas izvçlne',
+ 'Accrual' => 'Uzkrâðana',
+ 'Activate Audit trail' => 'Aktivizçt audita atzîmes',
+ 'Add Account' => 'Pievienot kontu',
+ 'Add Business' => 'Pievienot komercdarbîbu',
+ 'Add Department' => 'Pievienot nodaïu',
+ 'Add GIFI' => 'Pievienot GIFI',
+ 'Add Language' => 'Pievienot valodu',
+ 'Add SIC' => 'Pievienot SIC',
+ 'Add Warehouse' => 'Pievienot noliktavu',
+ 'Address' => 'Adrese',
+ 'Amount' => 'Summa',
+ 'Asset' => 'Aktîvs',
+ 'Audit Control' => 'Audita kontrole',
+ 'Audit trail disabled' => 'Audita atzîmes atslçgtas',
+ 'Audit trail enabled' => 'Audita atzîmes ieslçgtas',
+ 'Audit trail removed up to' => 'Audita atzîmes novâktas lîdz',
+ 'Backup sent to' => 'Rezerves kopija nosûtîta uz',
+ 'Bin List' => 'Bin saraksts',
+ 'Books are open' => 'Ieraksti ir atvçrti',
+ 'Business Number' => 'Reìistrâcijas numurs',
+ 'Business deleted!' => 'Komercdarbîba izdzçsta',
+ 'Business saved!' => 'Komercdarbîba saglabâta',
+ 'COGS' => 'Paðizmaksa',
+ 'Cannot delete account!' => 'Kontu nevar izdzçst!',
+ 'Cannot delete default account!' => 'Noklusçto kontu nevar izdzçst!',
+ 'Cannot save account!' => 'Kontu nevar saglabât!',
+ 'Cannot save defaults!' => 'Nevar saglabât noklusçtâs vçrtîbas',
+ 'Cannot save preferences!' => 'Nevar saglabât izvçles!',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Konta nevar piesaistît vairâk kâ vienam DP, KP vai IC',
+ 'Cash' => 'Nauda',
+ 'Chart of Accounts' => 'Kontu plâns',
+ 'Close Books up to' => 'Aizvçrt ierakstus lîdz',
+ 'Code' => 'Kods',
+ 'Code missing!' => 'Nav norâdîts kods',
+ 'Company' => 'Uzòçmums',
+ 'Confirm!' => 'Apstiprinât!',
+ 'Continue' => 'Turpinât',
+ 'Contra' => 'Kontrârais konts',
+ 'Copy to COA' => 'Kopçt uz kontu plânu',
+ 'Cost Center' => 'Galvenâs izmaksas',
+ 'Credit' => 'Kredîts',
+ 'Customer Number' => 'Klienta numurs',
+ 'Database Host' => 'Datubâzes serveris',
+ 'Dataset' => 'Datukopa',
+ 'Date Format' => 'Datuma formâts',
+ 'Debit' => 'Debets',
+ 'Defaults saved!' => 'Noklusçtâs vçrtîbas saglabâtas',
+ 'Delete' => 'Dzçst',
+ 'Delete Account' => 'Izdzçst Kontu',
+ 'Department deleted!' => 'Nodaïa izdzçsta',
+ 'Department saved!' => 'Nodaïa saglabâta',
+ 'Departments' => 'Nodaïas',
+ 'Description' => 'Apraksts',
+ 'Description missing!' => 'Nav norâdîts apraksts',
+ 'Discount' => 'Atlaide',
+ 'Dropdown Limit' => 'Maks. rindu skaits izvçlnç',
+ 'E-mail' => 'E-pasts',
+ 'E-mail address missing!' => 'Nepareiza E-pasta adrese!',
+ 'Edit' => 'Labot',
+ 'Edit Account' => 'Labot kontu',
+ 'Edit Business' => 'Izmainît komercdarbîbu',
+ 'Edit Department' => 'Labot nodaïu',
+ 'Edit GIFI' => 'Labot GIFI',
+ 'Edit Language' => 'Labot valodu',
+ 'Edit Preferences for' => 'Labot izvçles',
+ 'Edit SIC' => 'Labot SIC',
+ 'Edit Template' => 'Labot ðablonu',
+ 'Edit Warehouse' => 'Labot noliktavu',
+ 'Enforce transaction reversal for all dates' => 'Izpildît transakciju atcelðanu visos datumos',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Ierakstît 3 simbolus kolonâs (USD:LVL:EUR), lai definçtu valûtas',
+ 'Equity' => 'Paðu kapitâls',
+ 'Expense' => 'Izdevumi',
+ 'Expense/Asset' => 'Izdevumi/Aktîvi',
+ 'Fax' => 'Fakss',
+ 'Foreign Exchange Gain' => 'Ienâkumi no valûtas maiòas',
+ 'Foreign Exchange Loss' => 'Zaudçjumi no valûtas maiòas',
+ 'GIFI' => 'GIFI',
+ 'GIFI deleted!' => 'GIFI izdzçsts',
+ 'GIFI missing!' => 'Nav norâdîts GIFI!',
+ 'GIFI saved!' => 'GIFI saglabâts!',
+ 'GL Transaction' => 'Virsgrâmatas transakcija',
+ 'Heading' => 'Virsraksts',
+ 'ID' => 'ID',
+ 'Include in drop-down menus' => 'Iekïaut nolaiþamo izvçlni',
+ 'Income' => 'Ienâkums',
+ 'Inventory' => 'Krâjumi',
+ 'Invoice' => 'Rçíins',
+ 'Is this a summary account to record' => 'Vai ðis ir summârais konts ierakstam',
+ 'Language' => 'Valoda',
+ 'Language deleted!' => 'Valoda izdzçsta',
+ 'Language saved!' => 'Valoda saglabâta',
+ 'Languages' => 'Valodas',
+ 'Last Numbers & Default Accounts' => 'Pçdçjais numurs un noklusçtais konts',
+ 'Liability' => 'Saistîbas',
+ 'Licensed to' => 'Licencçts firmai',
+ 'Link' => 'Saite',
+ 'Menu Width' => 'Izvçlnes Platums',
+ 'Method' => 'Metode',
+ 'Name' => 'Nosaukums',
+ 'No' => 'Nç',
+ 'No email address for' => 'Nav e-pasta adrese',
+ 'Number' => 'Numurs',
+ 'Number Format' => 'Skaitïa formâts',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Iesaiòojumu saraksts',
+ 'Password' => 'Parole',
+ 'Payables' => 'Kreditoru parâdi',
+ 'Payment' => 'Maksâjums',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Izvçles saraksts',
+ 'Postscript' => 'Postscript',
+ 'Preferences saved!' => 'Izvçles saglabâtas!',
+ 'Print' => 'Drukât',
+ 'Printer' => 'Printeris',
+ 'Profit Center' => 'Galvenie ienâkumi',
+ 'Purchase Order' => 'Pirkðanas orderis',
+ 'Purchase Orders' => 'Pirkðanas orderi',
+ 'RFQ Number' => 'Tâmes pieprasîjuma numurs',
+ 'Rate' => 'Likme',
+ 'Receivables' => 'Ienâkoðie maksâjumi',
+ 'Reference' => 'Norâde',
+ 'Remove Audit trail up to' => 'Izdzçst audita atzîmes lîdz',
+ 'Retained Earnings' => 'Nesadalîtâ peïòa',
+ 'SIC deleted!' => 'SIC izdzçsts',
+ 'SIC saved!' => 'SIC saglabâts',
+ 'Sales Invoice' => 'Pârdoðanas rçíins',
+ 'Sales Order' => 'Pârdoðanas orderis',
+ 'Sales Orders' => 'Pârdoðanas orderi',
+ 'Save' => 'Saglabât',
+ 'Save as new' => 'Saglabât kâ jaunu',
+ 'Signature' => 'Paraksts',
+ 'Standard Industrial Codes' => 'Standarta industrijas kodi',
+ 'Stylesheet' => 'Stila lapa',
+ 'System Defaults' => 'Sistçmas noklusçtâs vçrtîbas',
+ 'Tax' => 'Nodokïi',
+ 'Template saved!' => 'Ðablons saglabâts!',
+ 'Transaction reversal enforced for all dates' => 'Veikt transakciju atcelðanu visiem datumiem',
+ 'Transaction reversal enforced up to' => 'Transakcijas bûs izmainîtas lîdz',
+ 'Type of Business' => 'Komercdarbîbas veids',
+ 'Update' => 'Atjauninât',
+ 'User' => 'Lietotâjs',
+ 'Vendor Invoice' => 'Pârdevçja rçíins',
+ 'Vendor Number' => 'Pârdevçja numurs',
+ 'Version' => 'Versija',
+ 'Warehouse deleted!' => 'Noliktava izdzçsta',
+ 'Warehouse saved!' => 'Noliktava saglabâta',
+ 'Warehouses' => 'Noliktavas',
+ 'Weight Unit' => 'Svara mçrvienîba',
+ 'Work Order' => 'Darba orderis',
+ 'Yearend' => 'Finanðu gada beigas',
+ 'Yearend date missing!' => 'Nav norâdîts pârskata finanðu gada beigu datums',
+ 'Yearend posted!' => 'Finanðu gada beigas iegrâmatotas',
+ 'Yearend posting failed!' => 'Finanðu gada beigu iegrâmatoðana neizdevâs',
+ 'Yes' => 'Jâ',
+ 'account cannot be set to any other type of account' => 'kontu nevar nomainît uz jebkuru citu konta tipu',
+ 'done' => 'izdarîts',
+ 'localhost' => 'localhost',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'pievienot_kontu' => 'add_account',
+ 'pievienot_komercdarbîbu' => 'add_business',
+ 'pievienot_nodaïu' => 'add_department',
+ 'pievienot_valodu' => 'add_language',
+ 'pievienot_sic' => 'add_sic',
+ 'pievienot_noliktavu' => 'add_warehouse',
+ 'turpinât' => 'continue',
+ 'kopçt_uz_kontu_plânu' => 'copy_to_coa',
+ 'dzçst' => 'delete',
+ 'labot' => 'edit',
+ 'labot_kontu' => 'edit_account',
+ 'saglabât' => 'save',
+ 'saglabât_kâ_jaunu' => 'save_as_new',
+ 'atjauninât' => 'update',
+};
+
+1;
+
diff --git a/locale/lv/ap b/locale/lv/ap
new file mode 100755
index 00000000..dc537481
--- /dev/null
+++ b/locale/lv/ap
@@ -0,0 +1,195 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'AP Outstanding' => 'KP Neapmaksâtie',
+ 'AP Transaction' => 'KP transakcija',
+ 'AP Transactions' => 'KP transakcijas',
+ 'AR Outstanding' => 'DP Neapmaksâtie',
+ 'AR Transaction' => 'DP transakcija',
+ 'AR Transactions' => 'DP transakcijas',
+ 'Account' => 'Konts',
+ 'Accounting Menu' => 'Kontçðanas izvçlne',
+ 'Address' => 'Adrese',
+ 'Amount' => 'Summa',
+ 'Amount Due' => 'Nesamaksâtâ summa',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprîlî',
+ 'Are you sure you want to delete Transaction' => 'Vai jûs patieðâm vçlaties dzçst transakciju',
+ 'Aug' => 'Aug',
+ 'August' => 'Augustâ',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'Transakciju nevar izdzçst!',
+ 'Cannot post payment for a closed period!' => 'Nevar iegrâmatot maksâjumu par slçgtu periodu!',
+ 'Cannot post transaction for a closed period!' => 'Nevar iegrâmatot transakciju par slçgtu periodu!',
+ 'Cannot post transaction!' => 'Nevar iegrâmatot transakciju!',
+ 'Cc' => 'Cc',
+ 'Check' => 'Èeks',
+ 'Closed' => 'Aizvçrts',
+ 'Confirm!' => 'Apstiprinât!',
+ 'Continue' => 'Turpinât',
+ 'Credit' => 'Kredîts',
+ 'Credit Limit' => 'Kredîta limits',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valûta',
+ 'Current' => 'Paðreizçjs',
+ 'Customer' => 'Klients',
+ 'Customer missing!' => 'Nav norâdîts klients!',
+ 'Customer not on file!' => 'Nav tâda klienta!',
+ 'Date' => 'Datums',
+ 'Date Paid' => 'Maksâjuma datums',
+ 'Debit' => 'Debets',
+ 'Dec' => 'Dec',
+ 'December' => 'Decembrî',
+ 'Delete' => 'Dzçst',
+ 'Department' => 'Nodaïa',
+ 'Description' => 'Apraksts',
+ 'Detail' => 'Sîks apraksts',
+ 'Due Date' => 'Apmaksas termiòð',
+ 'Due Date missing!' => 'Nav norâdîts apmaksas termiòð!',
+ 'E-mail' => 'E-pasts',
+ 'Employee' => 'Darbinieks',
+ 'Exch' => 'Kurss',
+ 'Exchange Rate' => 'Valûtas maiòas kurss',
+ 'Exchange rate for payment missing!' => 'Nav norâdîts valûtas maiòas kurss maksâjumâ!',
+ 'Exchange rate missing!' => 'Nav norâdîts valûtas maiòas kurss!',
+ 'Feb' => 'Feb',
+ 'February' => 'Februârî',
+ 'From' => 'No',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Iekïaut atskaitç',
+ 'Invoice' => 'Rçíins',
+ 'Invoice Date' => 'Rçíina datums',
+ 'Invoice Date missing!' => 'Nav norâdîts rçíina datums!',
+ 'Invoice Number' => 'Rçíina numurs',
+ 'Jan' => 'Jan',
+ 'January' => 'Janvârî',
+ 'Jul' => 'Jûl',
+ 'July' => 'Jûlijâ',
+ 'Jun' => 'Jûn',
+ 'June' => 'Jûnijâ',
+ 'Manager' => 'Vadîtâjs',
+ 'Mar' => 'Mar',
+ 'March' => 'Martâ',
+ 'May' => 'Mai',
+ 'May ' => 'Maijâ ',
+ 'Memo' => 'Memorands',
+ 'Message' => 'Paziòojums',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Piezîmes',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembrî',
+ 'Number' => 'Numurs',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktobrî',
+ 'Open' => 'Atvçrts',
+ 'Order' => 'Orderis',
+ 'Order Number' => 'Ordera Nr.',
+ 'PDF' => 'PDF',
+ 'Paid' => 'Apmaksâts',
+ 'Payment date missing!' => 'Nav norâdîts maksâjuma datums',
+ 'Payments' => 'Maksâjumi',
+ 'Post' => 'Iegrâmatot',
+ 'Post as new' => 'Iegrâmatot kâ jaunu',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Drukât',
+ 'Printed' => 'Izdrukâts',
+ 'Project' => 'Projekts',
+ 'Project not on file!' => 'Nav tâda projekta!',
+ 'Receipt' => 'Kvîts',
+ 'Reference' => 'Norâde',
+ 'Remaining' => 'Atlikums',
+ 'Salesperson' => 'Pârdevçjs',
+ 'Screen' => 'Ekrâns',
+ 'Select from one of the names below' => 'Atlasît vienu no sekojoðiem nosaukumiem',
+ 'Select from one of the projects below' => 'Atlasît vienu no sekojoðiem projektiem',
+ 'Select postscript or PDF!' => 'Izvçlçties postscript vai PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septembrî',
+ 'Ship to' => 'Piegâdes adrese',
+ 'Ship via' => 'Piegâdât caur',
+ 'Shipping Point' => 'Nosûtîðanas vietas',
+ 'Source' => 'Dokuments',
+ 'Startdate' => 'Sâkuma datums',
+ 'Subject' => 'Temats',
+ 'Subtotal' => 'Kopâ',
+ 'Summary' => 'Kopçjais',
+ 'Tax' => 'Nodokïi',
+ 'Tax Included' => 'Kopâ ar nodokïiem',
+ 'Till' => 'lîdz',
+ 'To' => 'uz',
+ 'Total' => 'Pavisam Kopâ',
+ 'Transaction deleted!' => 'Transakcija izdzçsta!',
+ 'Transaction posted!' => 'Transakcija iegrâmatota!',
+ 'Update' => 'Atjauninât',
+ 'Vendor' => 'Pârdevçjs',
+ 'Vendor missing!' => 'Pârdevçjs nav norâdîts!',
+ 'Vendor not on file!' => 'Nav tâda pârdevçja!',
+ 'Warning!' => 'Brîdinâjums!',
+ 'Yes' => 'Jâ',
+ 'sent' => 'nosûtîts',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'kp_transakcija' => 'ap_transaction',
+ 'dp_transakcija' => 'ar_transaction',
+ 'turpinât' => 'continue',
+ 'dzçst' => 'delete',
+ 'iegrâmatot' => 'post',
+ 'iegrâmatot_kâ_jaunu' => 'post_as_new',
+ 'drukât' => 'print',
+ 'piegâdes_adrese' => 'ship_to',
+ 'atjauninât' => 'update',
+ 'jâ' => 'yes',
+};
+
+1;
+
diff --git a/locale/lv/ar b/locale/lv/ar
new file mode 100755
index 00000000..dc537481
--- /dev/null
+++ b/locale/lv/ar
@@ -0,0 +1,195 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'AP Outstanding' => 'KP Neapmaksâtie',
+ 'AP Transaction' => 'KP transakcija',
+ 'AP Transactions' => 'KP transakcijas',
+ 'AR Outstanding' => 'DP Neapmaksâtie',
+ 'AR Transaction' => 'DP transakcija',
+ 'AR Transactions' => 'DP transakcijas',
+ 'Account' => 'Konts',
+ 'Accounting Menu' => 'Kontçðanas izvçlne',
+ 'Address' => 'Adrese',
+ 'Amount' => 'Summa',
+ 'Amount Due' => 'Nesamaksâtâ summa',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprîlî',
+ 'Are you sure you want to delete Transaction' => 'Vai jûs patieðâm vçlaties dzçst transakciju',
+ 'Aug' => 'Aug',
+ 'August' => 'Augustâ',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'Transakciju nevar izdzçst!',
+ 'Cannot post payment for a closed period!' => 'Nevar iegrâmatot maksâjumu par slçgtu periodu!',
+ 'Cannot post transaction for a closed period!' => 'Nevar iegrâmatot transakciju par slçgtu periodu!',
+ 'Cannot post transaction!' => 'Nevar iegrâmatot transakciju!',
+ 'Cc' => 'Cc',
+ 'Check' => 'Èeks',
+ 'Closed' => 'Aizvçrts',
+ 'Confirm!' => 'Apstiprinât!',
+ 'Continue' => 'Turpinât',
+ 'Credit' => 'Kredîts',
+ 'Credit Limit' => 'Kredîta limits',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valûta',
+ 'Current' => 'Paðreizçjs',
+ 'Customer' => 'Klients',
+ 'Customer missing!' => 'Nav norâdîts klients!',
+ 'Customer not on file!' => 'Nav tâda klienta!',
+ 'Date' => 'Datums',
+ 'Date Paid' => 'Maksâjuma datums',
+ 'Debit' => 'Debets',
+ 'Dec' => 'Dec',
+ 'December' => 'Decembrî',
+ 'Delete' => 'Dzçst',
+ 'Department' => 'Nodaïa',
+ 'Description' => 'Apraksts',
+ 'Detail' => 'Sîks apraksts',
+ 'Due Date' => 'Apmaksas termiòð',
+ 'Due Date missing!' => 'Nav norâdîts apmaksas termiòð!',
+ 'E-mail' => 'E-pasts',
+ 'Employee' => 'Darbinieks',
+ 'Exch' => 'Kurss',
+ 'Exchange Rate' => 'Valûtas maiòas kurss',
+ 'Exchange rate for payment missing!' => 'Nav norâdîts valûtas maiòas kurss maksâjumâ!',
+ 'Exchange rate missing!' => 'Nav norâdîts valûtas maiòas kurss!',
+ 'Feb' => 'Feb',
+ 'February' => 'Februârî',
+ 'From' => 'No',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Iekïaut atskaitç',
+ 'Invoice' => 'Rçíins',
+ 'Invoice Date' => 'Rçíina datums',
+ 'Invoice Date missing!' => 'Nav norâdîts rçíina datums!',
+ 'Invoice Number' => 'Rçíina numurs',
+ 'Jan' => 'Jan',
+ 'January' => 'Janvârî',
+ 'Jul' => 'Jûl',
+ 'July' => 'Jûlijâ',
+ 'Jun' => 'Jûn',
+ 'June' => 'Jûnijâ',
+ 'Manager' => 'Vadîtâjs',
+ 'Mar' => 'Mar',
+ 'March' => 'Martâ',
+ 'May' => 'Mai',
+ 'May ' => 'Maijâ ',
+ 'Memo' => 'Memorands',
+ 'Message' => 'Paziòojums',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Piezîmes',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembrî',
+ 'Number' => 'Numurs',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktobrî',
+ 'Open' => 'Atvçrts',
+ 'Order' => 'Orderis',
+ 'Order Number' => 'Ordera Nr.',
+ 'PDF' => 'PDF',
+ 'Paid' => 'Apmaksâts',
+ 'Payment date missing!' => 'Nav norâdîts maksâjuma datums',
+ 'Payments' => 'Maksâjumi',
+ 'Post' => 'Iegrâmatot',
+ 'Post as new' => 'Iegrâmatot kâ jaunu',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Drukât',
+ 'Printed' => 'Izdrukâts',
+ 'Project' => 'Projekts',
+ 'Project not on file!' => 'Nav tâda projekta!',
+ 'Receipt' => 'Kvîts',
+ 'Reference' => 'Norâde',
+ 'Remaining' => 'Atlikums',
+ 'Salesperson' => 'Pârdevçjs',
+ 'Screen' => 'Ekrâns',
+ 'Select from one of the names below' => 'Atlasît vienu no sekojoðiem nosaukumiem',
+ 'Select from one of the projects below' => 'Atlasît vienu no sekojoðiem projektiem',
+ 'Select postscript or PDF!' => 'Izvçlçties postscript vai PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septembrî',
+ 'Ship to' => 'Piegâdes adrese',
+ 'Ship via' => 'Piegâdât caur',
+ 'Shipping Point' => 'Nosûtîðanas vietas',
+ 'Source' => 'Dokuments',
+ 'Startdate' => 'Sâkuma datums',
+ 'Subject' => 'Temats',
+ 'Subtotal' => 'Kopâ',
+ 'Summary' => 'Kopçjais',
+ 'Tax' => 'Nodokïi',
+ 'Tax Included' => 'Kopâ ar nodokïiem',
+ 'Till' => 'lîdz',
+ 'To' => 'uz',
+ 'Total' => 'Pavisam Kopâ',
+ 'Transaction deleted!' => 'Transakcija izdzçsta!',
+ 'Transaction posted!' => 'Transakcija iegrâmatota!',
+ 'Update' => 'Atjauninât',
+ 'Vendor' => 'Pârdevçjs',
+ 'Vendor missing!' => 'Pârdevçjs nav norâdîts!',
+ 'Vendor not on file!' => 'Nav tâda pârdevçja!',
+ 'Warning!' => 'Brîdinâjums!',
+ 'Yes' => 'Jâ',
+ 'sent' => 'nosûtîts',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'kp_transakcija' => 'ap_transaction',
+ 'dp_transakcija' => 'ar_transaction',
+ 'turpinât' => 'continue',
+ 'dzçst' => 'delete',
+ 'iegrâmatot' => 'post',
+ 'iegrâmatot_kâ_jaunu' => 'post_as_new',
+ 'drukât' => 'print',
+ 'piegâdes_adrese' => 'ship_to',
+ 'atjauninât' => 'update',
+ 'jâ' => 'yes',
+};
+
+1;
+
diff --git a/locale/lv/arap b/locale/lv/arap
new file mode 100755
index 00000000..df2e7e14
--- /dev/null
+++ b/locale/lv/arap
@@ -0,0 +1,53 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'Address' => 'Adrese',
+ 'Bcc' => 'Bcc',
+ 'Cc' => 'Cc',
+ 'Continue' => 'Turpinât',
+ 'Customer not on file!' => 'Nav tâda klienta!',
+ 'Date' => 'Datums',
+ 'Description' => 'Apraksts',
+ 'E-mail' => 'E-pasts',
+ 'Message' => 'Paziòojums',
+ 'Number' => 'Numurs',
+ 'Print' => 'Drukât',
+ 'Project not on file!' => 'Nav tâda projekta!',
+ 'Reference' => 'Norâde',
+ 'Select from one of the names below' => 'Atlasît vienu no sekojoðiem nosaukumiem',
+ 'Select from one of the projects below' => 'Atlasît vienu no sekojoðiem projektiem',
+ 'Startdate' => 'Sâkuma datums',
+ 'Subject' => 'Temats',
+ 'To' => 'uz',
+ 'Vendor not on file!' => 'Nav tâda pârdevçja!',
+ 'Warning!' => 'Brîdinâjums!',
+ 'sent' => 'nosûtîts',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'turpinât' => 'continue',
+};
+
+1;
+
diff --git a/locale/lv/arapprn b/locale/lv/arapprn
new file mode 100755
index 00000000..fb2d3822
--- /dev/null
+++ b/locale/lv/arapprn
@@ -0,0 +1,32 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'Account' => 'Konts',
+ 'Amount' => 'Summa',
+ 'Continue' => 'Turpinât',
+ 'Date' => 'Datums',
+ 'Memo' => 'Memorands',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'Postscript',
+ 'Printed' => 'Izdrukâts',
+ 'Screen' => 'Ekrâns',
+ 'Select postscript or PDF!' => 'Izvçlçties postscript vai PDF!',
+ 'Source' => 'Dokuments',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'turpinât' => 'continue',
+};
+
+1;
+
diff --git a/locale/lv/bp b/locale/lv/bp
new file mode 100755
index 00000000..b2009dca
--- /dev/null
+++ b/locale/lv/bp
@@ -0,0 +1,62 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'Account' => 'Konts',
+ 'Accounting Menu' => 'Kontçðanas izvçlne',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Vai jûs patieðâm vçlaties dzçst atzîmçtos ierakstus rindâ',
+ 'Cannot remove files!' => 'Nevar izdzçst failus',
+ 'Confirm!' => 'Apstiprinât!',
+ 'Continue' => 'Turpinât',
+ 'Current' => 'Paðreizçjs',
+ 'Customer' => 'Klients',
+ 'Date' => 'Datums',
+ 'Employee' => 'Darbinieks',
+ 'From' => 'No',
+ 'ID' => 'ID',
+ 'Invoice' => 'Rçíins',
+ 'Invoice Number' => 'Rçíina numurs',
+ 'Marked entries printed!' => 'Atzîmçtie ieraksti izdrukâti',
+ 'Order' => 'Orderis',
+ 'Order Number' => 'Ordera Nr.',
+ 'Packing Lists' => 'Iesaiòojumu saraksti',
+ 'Print' => 'Drukât',
+ 'Purchase Orders' => 'Pirkðanas orderi',
+ 'Quotation' => 'Tâme',
+ 'Quotation Number' => 'Tâmes numurs',
+ 'Quotations' => 'Tâmes',
+ 'RFQs' => 'Tâmes pieprasîjumu',
+ 'Remove' => 'Izdzçst',
+ 'Removed spoolfiles!' => 'Izdzçst printera rindas failus',
+ 'Removing marked entries from queue ...' => 'Izdzçðu atzîmçtos ierakstus no rindas ...',
+ 'Sales Invoices' => 'Pârdoðanas rçíini',
+ 'Sales Orders' => 'Pârdoðanas orderi',
+ 'Select all' => 'Atlasît visu',
+ 'Spoolfile' => 'Printera rindas fails',
+ 'To' => 'uz',
+ 'Vendor' => 'Pârdevçjs',
+ 'Yes' => 'Jâ',
+ 'done' => 'izdarîts',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'turpinât' => 'continue',
+ 'drukât' => 'print',
+ 'izdzçst' => 'remove',
+ 'atlasît_visu' => 'select_all',
+ 'jâ' => 'yes',
+};
+
+1;
+
diff --git a/locale/lv/ca b/locale/lv/ca
new file mode 100755
index 00000000..71b6994a
--- /dev/null
+++ b/locale/lv/ca
@@ -0,0 +1,57 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'Account' => 'Konts',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprîlî',
+ 'Aug' => 'Aug',
+ 'August' => 'Augustâ',
+ 'Balance' => 'Bilance',
+ 'Chart of Accounts' => 'Kontu plâns',
+ 'Credit' => 'Kredîts',
+ 'Current' => 'Paðreizçjs',
+ 'Date' => 'Datums',
+ 'Debit' => 'Debets',
+ 'Dec' => 'Dec',
+ 'December' => 'Decembrî',
+ 'Department' => 'Nodaïa',
+ 'Description' => 'Apraksts',
+ 'Feb' => 'Feb',
+ 'February' => 'Februârî',
+ 'From' => 'No',
+ 'GIFI' => 'GIFI',
+ 'Include in Report' => 'Iekïaut atskaitç',
+ 'Jan' => 'Jan',
+ 'January' => 'Janvârî',
+ 'Jul' => 'Jûl',
+ 'July' => 'Jûlijâ',
+ 'Jun' => 'Jûn',
+ 'June' => 'Jûnijâ',
+ 'List Transactions' => 'Transakciju saraksts',
+ 'Mar' => 'Mar',
+ 'March' => 'Martâ',
+ 'May' => 'Mai',
+ 'May ' => 'Maijâ ',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembrî',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktobrî',
+ 'Project Number' => 'Projekta numurs',
+ 'R' => 'R',
+ 'Reference' => 'Norâde',
+ 'Sep' => 'Sep',
+ 'September' => 'Septembrî',
+ 'Subtotal' => 'Kopâ',
+ 'To' => 'uz',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'transakciju_saraksts' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/lv/cp b/locale/lv/cp
new file mode 100755
index 00000000..98842869
--- /dev/null
+++ b/locale/lv/cp
@@ -0,0 +1,125 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'AP' => 'Kreditoru parâdi',
+ 'AR' => 'Debitoru parâdi',
+ 'Account' => 'Konts',
+ 'Accounting Menu' => 'Kontçðanas izvçlne',
+ 'Address' => 'Adrese',
+ 'All' => 'Visi',
+ 'Amount' => 'Summa',
+ 'Amount Due' => 'Nesamaksâtâ summa',
+ 'Bcc' => 'Bcc',
+ 'Cannot post Payment!' => 'Maksâjumu nevar iegrâmatot!',
+ 'Cannot post Receipt!' => 'Kvîti nevar iegrâmatot!',
+ 'Cannot post payment for a closed period!' => 'Nevar iegrâmatot maksâjumu par slçgtu periodu!',
+ 'Cc' => 'Cc',
+ 'Continue' => 'Turpinât',
+ 'Currency' => 'Valûta',
+ 'Customer' => 'Klients',
+ 'Customer not on file!' => 'Nav tâda klienta!',
+ 'Date' => 'Datums',
+ 'Date missing!' => 'Nav norâdîts datums!',
+ 'Department' => 'Nodaïa',
+ 'Deposit' => 'Depozîts',
+ 'Description' => 'Apraksts',
+ 'Due Date' => 'Apmaksas termiòð',
+ 'E-mail' => 'E-pasts',
+ 'Exchange Rate' => 'Valûtas maiòas kurss',
+ 'Exchange rate missing!' => 'Nav norâdîts valûtas maiòas kurss!',
+ 'From' => 'No',
+ 'Invoice' => 'Rçíins',
+ 'Invoices' => 'Rçíini',
+ 'Language' => 'Valoda',
+ 'Memo' => 'Memorands',
+ 'Message' => 'Paziòojums',
+ 'Number' => 'Numurs',
+ 'PDF' => 'PDF',
+ 'Payment' => 'Maksâjums',
+ 'Payment posted!' => 'Maksâjums iegrâmatots!',
+ 'Payments' => 'Maksâjumi',
+ 'Post' => 'Iegrâmatot',
+ 'Postscript' => 'Postscript',
+ 'Prepayment' => 'Avansa maksâjums',
+ 'Print' => 'Drukât',
+ 'Project not on file!' => 'Nav tâda projekta!',
+ 'Receipt' => 'Kvîts',
+ 'Receipt posted!' => 'Kvîtis iegrâmatotas',
+ 'Receipts' => 'Kvîtis',
+ 'Reference' => 'Norâde',
+ 'Screen' => 'Ekrâns',
+ 'Select' => 'Atlasît',
+ 'Select all' => 'Atlasît visu',
+ 'Select from one of the names below' => 'Atlasît vienu no sekojoðiem nosaukumiem',
+ 'Select from one of the projects below' => 'Atlasît vienu no sekojoðiem projektiem',
+ 'Select postscript or PDF!' => 'Izvçlçties postscript vai PDF!',
+ 'Source' => 'Dokuments',
+ 'Startdate' => 'Sâkuma datums',
+ 'Subject' => 'Temats',
+ 'To' => 'uz',
+ 'Update' => 'Atjauninât',
+ 'Vendor' => 'Pârdevçjs',
+ 'Vendor not on file!' => 'Nav tâda pârdevçja!',
+ 'Warning!' => 'Brîdinâjums!',
+ 'sent' => 'nosûtîts',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'turpinât' => 'continue',
+ 'iegrâmatot' => 'post',
+ 'drukât' => 'print',
+ 'atlasît_visu' => 'select_all',
+ 'atjauninât' => 'update',
+};
+
+1;
+
diff --git a/locale/lv/ct b/locale/lv/ct
new file mode 100755
index 00000000..e4afd8c1
--- /dev/null
+++ b/locale/lv/ct
@@ -0,0 +1,180 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'AP Transaction' => 'KP transakcija',
+ 'AP Transactions' => 'KP transakcijas',
+ 'AR Transaction' => 'DP transakcija',
+ 'AR Transactions' => 'DP transakcijas',
+ 'Accounting Menu' => 'Kontçðanas izvçlne',
+ 'Active' => 'Aktîvs',
+ 'Add Customer' => 'Pievienot klientu',
+ 'Add Vendor' => 'Pievienot pârdevçju',
+ 'Address' => 'Adrese',
+ 'All' => 'Visi',
+ 'Amount' => 'Summa',
+ 'BIC' => 'BIC',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Rçíina adrese',
+ 'Break' => 'Pârtraukums',
+ 'Cannot delete customer!' => 'Klientu nevar izdzçst!',
+ 'Cannot delete vendor!' => 'Pârdevçju nevar izdzçst!',
+ 'Cc' => 'Cc',
+ 'City' => 'Pilsçta',
+ 'Closed' => 'Aizvçrts',
+ 'Company Name' => 'Uzòçmuma nosaukums',
+ 'Contact' => 'Kontaktpersona',
+ 'Continue' => 'Turpinât',
+ 'Cost' => 'Izmaksas',
+ 'Country' => 'Valsts',
+ 'Credit Limit' => 'Kredîta limits',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valûta',
+ 'Customer History' => 'Klienta vçsture',
+ 'Customer Number' => 'Klienta numurs',
+ 'Customer deleted!' => 'Klients izdzçsts!',
+ 'Customer saved!' => 'Klients ir saglabâts!',
+ 'Customers' => 'Klienti',
+ 'Delete' => 'Dzçst',
+ 'Delivery Date' => 'Piegâdes datums',
+ 'Description' => 'Apraksts',
+ 'Detail' => 'Sîks apraksts',
+ 'Discount' => 'Atlaide',
+ 'E-mail' => 'E-pasts',
+ 'Edit Customer' => 'Labot klientu',
+ 'Edit Vendor' => 'Labot pârdevçju',
+ 'Employee' => 'Darbinieks',
+ 'Enddate' => 'Beigu datums',
+ 'Fax' => 'Fakss',
+ 'From' => 'No',
+ 'GIFI' => 'GIFI',
+ 'Group' => 'Grupa',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Iekïaut atskaitç',
+ 'Invoice' => 'Rçíins',
+ 'Item not on file!' => 'Nav tâdas vienîbas!',
+ 'Language' => 'Valoda',
+ 'Leadtime' => 'Izlaides termiòð',
+ 'Manager' => 'Vadîtâjs',
+ 'Name' => 'Nosaukums',
+ 'Name missing!' => 'Nepareizs nosaukums',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Piezîmes',
+ 'Number' => 'Numurs',
+ 'Open' => 'Atvçrts',
+ 'Order' => 'Orderis',
+ 'Orphaned' => 'Bez atbilstoðâ pâra',
+ 'POS' => 'POS',
+ 'Phone' => 'Tel.',
+ 'Pricegroup' => 'Cenu grupa',
+ 'Project Number' => 'Projekta numurs',
+ 'Purchase Order' => 'Pirkðanas orderis',
+ 'Purchase Orders' => 'Pirkðanas orderi',
+ 'Qty' => 'Skaits',
+ 'Quotation' => 'Tâme',
+ 'Quotations' => 'Tâmes',
+ 'RFQ' => 'Tâmes pieprasîjums',
+ 'Request for Quotations' => 'Tâmju pieprasîjums',
+ 'SIC' => 'SIC',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Pârdoðanas rçíins',
+ 'Sales Invoices' => 'Pârdoðanas rçíini',
+ 'Sales Order' => 'Pârdoðanas orderis',
+ 'Sales Orders' => 'Pârdoðanas orderi',
+ 'Salesperson' => 'Pârdevçjs',
+ 'Save' => 'Saglabât',
+ 'Save as new' => 'Saglabât kâ jaunu',
+ 'Search' => 'Meklçt',
+ 'Sell Price' => 'Pârdoðanas cena',
+ 'Serial Number' => 'Seriâlais numurs',
+ 'Shipping Address' => 'Piegâdes adrese',
+ 'Startdate' => 'Sâkuma datums',
+ 'State/Province' => 'Ðtats/Province',
+ 'Sub-contract GIFI' => 'Subkontrakta GIFI',
+ 'Subtotal' => 'Kopâ',
+ 'Summary' => 'Kopçjais',
+ 'Tax' => 'Nodokïi',
+ 'Tax Included' => 'Kopâ ar nodokïiem',
+ 'Tax Number' => 'Nodokïu maksâtâja kods',
+ 'Tax Number / SSN' => 'Nodokïu maksâtâja kods / SSN',
+ 'Taxable' => 'Apliekams ar nodokli',
+ 'Terms' => 'Noteikumi: termiòð',
+ 'To' => 'uz',
+ 'Total' => 'Pavisam Kopâ',
+ 'Type of Business' => 'Komercdarbîbas veids',
+ 'Unit' => 'Vienîba',
+ 'Update' => 'Atjauninât',
+ 'Vendor History' => 'Pârdevçja vçsture',
+ 'Vendor Invoice' => 'Pârdevçja rçíins',
+ 'Vendor Invoices' => 'Pârdevçja rçíini',
+ 'Vendor Number' => 'Pârdevçja numurs',
+ 'Vendor deleted!' => 'Pârdevçjs izdzçsts!',
+ 'Vendor saved!' => 'Pârdevçjs saglabâts',
+ 'Vendors' => 'Pârdevçji',
+ 'days' => 'dienas',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'kp_transakcija' => 'ap_transaction',
+ 'dp_transakcija' => 'ar_transaction',
+ 'pievienot_klientu' => 'add_customer',
+ 'pievienot_pârdevçju' => 'add_vendor',
+ 'turpinât' => 'continue',
+ 'dzçst' => 'delete',
+ 'pos' => 'pos',
+ 'pirkðanas_orderis' => 'purchase_order',
+ 'tâme' => 'quotation',
+ 'tâmes_pieprasîjums' => 'rfq',
+ 'pârdoðanas_rçíins' => 'sales_invoice',
+ 'pârdoðanas_orderis' => 'sales_order',
+ 'saglabât' => 'save',
+ 'saglabât_kâ_jaunu' => 'save_as_new',
+ 'atjauninât' => 'update',
+ 'pârdevçja_rçíins' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/lv/gl b/locale/lv/gl
new file mode 100755
index 00000000..cf9274d5
--- /dev/null
+++ b/locale/lv/gl
@@ -0,0 +1,152 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'AP Transaction' => 'KP transakcija',
+ 'AR Transaction' => 'DP transakcija',
+ 'Account' => 'Konts',
+ 'Accounting Menu' => 'Kontçðanas izvçlne',
+ 'Add Cash Transfer Transaction' => 'Pievienot naudas transakciju',
+ 'Add General Ledger Transaction' => 'Pievienot virsgrâmatas transakciju',
+ 'Address' => 'Adrese',
+ 'All' => 'Visi',
+ 'Amount' => 'Summa',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprîlî',
+ 'Are you sure you want to delete Transaction' => 'Vai jûs patieðâm vçlaties dzçst transakciju',
+ 'Asset' => 'Aktîvs',
+ 'Aug' => 'Aug',
+ 'August' => 'Augustâ',
+ 'Balance' => 'Bilance',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'Transakciju nevar izdzçst!',
+ 'Cannot post transaction for a closed period!' => 'Nevar iegrâmatot transakciju par slçgtu periodu!',
+ 'Cannot post transaction!' => 'Nevar iegrâmatot transakciju!',
+ 'Cc' => 'Cc',
+ 'Confirm!' => 'Apstiprinât!',
+ 'Continue' => 'Turpinât',
+ 'Credit' => 'Kredîts',
+ 'Current' => 'Paðreizçjs',
+ 'Customer not on file!' => 'Nav tâda klienta!',
+ 'Date' => 'Datums',
+ 'Debit' => 'Debets',
+ 'Dec' => 'Dec',
+ 'December' => 'Decembrî',
+ 'Delete' => 'Dzçst',
+ 'Department' => 'Nodaïa',
+ 'Description' => 'Apraksts',
+ 'E-mail' => 'E-pasts',
+ 'Edit Cash Transfer Transaction' => 'Labot naudas pârsûtîðanas transakciju',
+ 'Edit General Ledger Transaction' => 'Labot transakciju virsgrâmatâ',
+ 'Equity' => 'Paðu kapitâls',
+ 'Expense' => 'Izdevumi',
+ 'FX' => 'FX',
+ 'Feb' => 'Feb',
+ 'February' => 'Februârî',
+ 'From' => 'No',
+ 'GIFI' => 'GIFI',
+ 'GL Transaction' => 'Virsgrâmatas transakcija',
+ 'General Ledger' => 'Virsgrâmata',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Iekïaut atskaitç',
+ 'Income' => 'Ienâkums',
+ 'Jan' => 'Jan',
+ 'January' => 'Janvârî',
+ 'Jul' => 'Jûl',
+ 'July' => 'Jûlijâ',
+ 'Jun' => 'Jûn',
+ 'June' => 'Jûnijâ',
+ 'Liability' => 'Saistîbas',
+ 'Mar' => 'Mar',
+ 'March' => 'Martâ',
+ 'May' => 'Mai',
+ 'May ' => 'Maijâ ',
+ 'Memo' => 'Memorands',
+ 'Message' => 'Paziòojums',
+ 'Notes' => 'Piezîmes',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembrî',
+ 'Number' => 'Numurs',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktobrî',
+ 'Out of balance transaction!' => 'Transakcija bez bilances',
+ 'Post' => 'Iegrâmatot',
+ 'Post as new' => 'Iegrâmatot kâ jaunu',
+ 'Print' => 'Drukât',
+ 'Project' => 'Projekts',
+ 'Project not on file!' => 'Nav tâda projekta!',
+ 'R' => 'R',
+ 'Reference' => 'Norâde',
+ 'Reports' => 'Atskaites',
+ 'Select from one of the names below' => 'Atlasît vienu no sekojoðiem nosaukumiem',
+ 'Select from one of the projects below' => 'Atlasît vienu no sekojoðiem projektiem',
+ 'Sep' => 'Sep',
+ 'September' => 'Septembrî',
+ 'Source' => 'Dokuments',
+ 'Startdate' => 'Sâkuma datums',
+ 'Subject' => 'Temats',
+ 'Subtotal' => 'Kopâ',
+ 'To' => 'uz',
+ 'Transaction Date missing!' => 'Nav norâdîts transakcijas datums!',
+ 'Transaction deleted!' => 'Transakcija izdzçsta!',
+ 'Transaction posted!' => 'Transakcija iegrâmatota!',
+ 'Update' => 'Atjauninât',
+ 'Vendor not on file!' => 'Nav tâda pârdevçja!',
+ 'Warning!' => 'Brîdinâjums!',
+ 'Yes' => 'Jâ',
+ 'sent' => 'nosûtîts',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'kp_transakcija' => 'ap_transaction',
+ 'dp_transakcija' => 'ar_transaction',
+ 'turpinât' => 'continue',
+ 'dzçst' => 'delete',
+ 'virsgrâmatas_transakcija' => 'gl_transaction',
+ 'iegrâmatot' => 'post',
+ 'iegrâmatot_kâ_jaunu' => 'post_as_new',
+ 'atjauninât' => 'update',
+ 'jâ' => 'yes',
+};
+
+1;
+
diff --git a/locale/lv/hr b/locale/lv/hr
new file mode 100755
index 00000000..43261473
--- /dev/null
+++ b/locale/lv/hr
@@ -0,0 +1,114 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'AP' => 'Kreditoru parâdi',
+ 'Above' => 'Iepriekð',
+ 'Accounting Menu' => 'Kontçðanas izvçlne',
+ 'Active' => 'Aktîvs',
+ 'Add Deduction' => 'Pievienot atlaidi',
+ 'Add Employee' => 'Pievienot darbinieku',
+ 'Address' => 'Adrese',
+ 'Administrator' => 'Administrators',
+ 'After Deduction' => 'Pçc atlaides',
+ 'All' => 'Visi',
+ 'Allowances' => 'Kabatas nauda',
+ 'Amount' => 'Summa',
+ 'Amount missing!' => 'Nav norâdîta summa',
+ 'BIC' => 'BIC',
+ 'Based on' => 'Pamatojoties uz',
+ 'Before Deduction' => 'Pirms atlaides',
+ 'Below' => 'Zemâk',
+ 'City' => 'Pilsçta',
+ 'Continue' => 'Turpinât',
+ 'Country' => 'Valsts',
+ 'Deduct after' => 'Pieðíirt atlaidi pçc',
+ 'Deduction deleted!' => 'Atlaide izdzçsta',
+ 'Deduction saved!' => 'Atlaide saglabâta',
+ 'Deductions' => 'Atlaides',
+ 'Delete' => 'Dzçst',
+ 'Description' => 'Apraksts',
+ 'Description missing!' => 'Nav norâdîts apraksts',
+ 'E-mail' => 'E-pasts',
+ 'Edit Deduction' => 'Labot atlaidi',
+ 'Edit Employee' => 'Labot darbinieku',
+ 'Employee' => 'Darbinieks',
+ 'Employee Name' => 'Darbinieka vârds',
+ 'Employee deleted!' => 'Darbinieks izdzçsts',
+ 'Employee pays' => 'Darbinieku izmaksas',
+ 'Employee saved!' => 'Darbinieks saglabâts',
+ 'Employees' => 'Darbinieki',
+ 'Employer' => 'Nodarbinâtâjs',
+ 'Employer pays' => 'Nodarbinâtâju izmaksas',
+ 'Enddate' => 'Beigu datums',
+ 'Expense' => 'Izdevumi',
+ 'From' => 'No',
+ 'Home Phone' => 'Mâjas telefons',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Iekïaut atskaitç',
+ 'Login' => 'Pieteikties',
+ 'Manager' => 'Vadîtâjs',
+ 'Maximum' => 'Maksimâlais',
+ 'Name' => 'Nosaukums',
+ 'Name missing!' => 'Nepareizs nosaukums',
+ 'Notes' => 'Piezîmes',
+ 'Number' => 'Numurs',
+ 'Orphaned' => 'Bez atbilstoðâ pâra',
+ 'Payroll Deduction' => 'Algu atlaides',
+ 'Rate' => 'Likme',
+ 'Rate missing!' => 'Likme nav norâdîta',
+ 'Role' => 'Loma',
+ 'S' => 'S',
+ 'Sales' => 'Pârdoðanas',
+ 'Save' => 'Saglabât',
+ 'Save as new' => 'Saglabât kâ jaunu',
+ 'Startdate' => 'Sâkuma datums',
+ 'State/Province' => 'Ðtats/Province',
+ 'To' => 'uz',
+ 'Update' => 'Atjauninât',
+ 'User' => 'Lietotâjs',
+ 'Work Phone' => 'Darba telefons',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'pievienot_atlaidi' => 'add_deduction',
+ 'pievienot_darbinieku' => 'add_employee',
+ 'turpinât' => 'continue',
+ 'dzçst' => 'delete',
+ 'saglabât' => 'save',
+ 'saglabât_kâ_jaunu' => 'save_as_new',
+ 'atjauninât' => 'update',
+};
+
+1;
+
diff --git a/locale/lv/ic b/locale/lv/ic
new file mode 100755
index 00000000..f637a922
--- /dev/null
+++ b/locale/lv/ic
@@ -0,0 +1,272 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'A' => 'A',
+ 'Accounting Menu' => 'Kontçðanas izvçlne',
+ 'Accounts' => 'Konti',
+ 'Accrual' => 'Uzkrâðana',
+ 'Active' => 'Aktîvs',
+ 'Add' => 'Pievienot',
+ 'Add Assembly' => 'Pievienot komplektâciju',
+ 'Add Labor/Overhead' => 'Pievienot darbu/izmaksas',
+ 'Add Part' => 'Pievienot daïu',
+ 'Add Purchase Order' => 'Pievienot pirkuma orderi',
+ 'Add Quotation' => 'Pievienot tâmi',
+ 'Add Request for Quotation' => 'Pievienot tâmes pieprasîjumu',
+ 'Add Sales Order' => 'Pievienot preèu orderi',
+ 'Add Service' => 'Pievienot pakalpojumu',
+ 'Address' => 'Adrese',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprîlî',
+ 'Assemblies' => 'Komplektâcijas',
+ 'Assemblies restocked!' => 'Komplektâcijas papildinâtas!',
+ 'Assembly' => 'Komplektâcija',
+ 'Attachment' => 'Pielikums',
+ 'Aug' => 'Aug',
+ 'August' => 'Augustâ',
+ 'BOM' => 'Materiâlu uzskaite',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Rçíina adrese',
+ 'Bin' => 'Bin',
+ 'Bin List' => 'Bin saraksts',
+ 'Break' => 'Pârtraukums',
+ 'COGS' => 'Paðizmaksa',
+ 'Cannot delete item!' => 'Vienîbu nevar izdzçst!',
+ 'Cannot stock assemblies!' => 'Nevar papildinât komplektâciju!',
+ 'Cash' => 'Nauda',
+ 'Cc' => 'Cc',
+ 'Check Inventory' => 'Èeku inventûra',
+ 'City' => 'Pilsçta',
+ 'Closed' => 'Aizvçrts',
+ 'Company Name' => 'Uzòçmuma nosaukums',
+ 'Components' => 'Komponentes',
+ 'Contact' => 'Kontaktpersona',
+ 'Continue' => 'Turpinât',
+ 'Copies' => 'Kopijas',
+ 'Cost' => 'Izmaksas',
+ 'Country' => 'Valsts',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valûta',
+ 'Customer' => 'Klients',
+ 'Customer Number' => 'Klienta numurs',
+ 'Customer not on file!' => 'Nav tâda klienta!',
+ 'Date' => 'Datums',
+ 'Dec' => 'Dec',
+ 'December' => 'Decembrî',
+ 'Delete' => 'Dzçst',
+ 'Delivery Date' => 'Piegâdes datums',
+ 'Description' => 'Apraksts',
+ 'Detail' => 'Sîks apraksts',
+ 'Drawing' => 'Èeku izrakstîðana',
+ 'E-mail' => 'E-pasts',
+ 'E-mail address missing!' => 'Nepareiza E-pasta adrese!',
+ 'E-mailed' => 'Nosûtîts pa e-pastu',
+ 'Edit Assembly' => 'Labot komplektâciju',
+ 'Edit Labor/Overhead' => 'Labot darbu/izmaksas',
+ 'Edit Part' => 'Labot daïu',
+ 'Edit Service' => 'Labot pakalpojumu',
+ 'Employee' => 'Darbinieks',
+ 'Expense' => 'Izdevumi',
+ 'Extended' => 'Kopâ',
+ 'Fax' => 'Fakss',
+ 'Feb' => 'Feb',
+ 'February' => 'Februârî',
+ 'From' => 'No',
+ 'Group' => 'Grupa',
+ 'Image' => 'Attçls',
+ 'In-line' => 'Iekïauts',
+ 'Include in Report' => 'Iekïaut atskaitç',
+ 'Income' => 'Ienâkums',
+ 'Individual Items' => 'Individuâli ieraksti',
+ 'Inventory' => 'Krâjumi',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Krâjuma daudzumam jâbût nullei pirms jûs varat atcelt ðo komplektâciju!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Krâjuma daudzumam jâbût nullei pirms jûs varat atcelt ðo preci!',
+ 'Invoice' => 'Rçíins',
+ 'Invoice Date missing!' => 'Nav norâdîts rçíina datums!',
+ 'Invoice Number' => 'Rçíina numurs',
+ 'Invoice Number missing!' => 'Nepareizs rçíina numurs',
+ 'Item deleted!' => 'Vienîba izdzçsts!',
+ 'Item not on file!' => 'Nav tâdas vienîbas!',
+ 'Items' => 'Vienîbas',
+ 'Jan' => 'Jan',
+ 'January' => 'Janvârî',
+ 'Jul' => 'Jûl',
+ 'July' => 'Jûlijâ',
+ 'Jun' => 'Jûn',
+ 'June' => 'Jûnijâ',
+ 'Labor/Overhead' => 'Darbs/izmaksas',
+ 'Leadtime' => 'Izlaides termiòð',
+ 'Line Total' => 'Kopsumma',
+ 'Link Accounts' => 'Piesaistît kontus',
+ 'List Price' => 'Cenrâþa cena',
+ 'Make' => 'Izveidot',
+ 'Mar' => 'Mar',
+ 'March' => 'Martâ',
+ 'Markup' => 'Uzcenojums',
+ 'May' => 'Mai',
+ 'May ' => 'Maijâ ',
+ 'Message' => 'Paziòojums',
+ 'Microfiche' => 'Mikrofilma',
+ 'Model' => 'Modelis',
+ 'Name' => 'Nosaukums',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Piezîmes',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembrî',
+ 'Number' => 'Numurs',
+ 'Number missing in Row' => 'Rindâ nav norâdîts numurs',
+ 'Obsolete' => 'Novecojis',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktobrî',
+ 'On Hand' => 'Pieejams',
+ 'Open' => 'Atvçrts',
+ 'Order' => 'Orderis',
+ 'Order Date missing!' => 'Nav norâdîts ordera datums!',
+ 'Order Number' => 'Ordera Nr.',
+ 'Order Number missing!' => 'Nav norâdîts ordera numurs!',
+ 'Orphaned' => 'Bez atbilstoðâ pâra',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Iesaiòojumu saraksts',
+ 'Packing List Date missing!' => 'Nav norâdîts iesaiòojumu datums!',
+ 'Packing List Number missing!' => 'Nav norâdîts iesaiòojumu numurs!',
+ 'Part' => 'Prece',
+ 'Parts' => 'Daïas',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Izvçles saraksts',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Cena',
+ 'Pricegroup' => 'Cenu grupa',
+ 'Printed' => 'Izdrukâts',
+ 'Project' => 'Projekts',
+ 'Purchase Order' => 'Pirkðanas orderis',
+ 'Purchase Orders' => 'Pirkðanas orderi',
+ 'Qty' => 'Skaits',
+ 'Quantity exceeds available units to stock!' => 'Skaits pârsniedz noliktavâ esoðo priekðmetu skaitu',
+ 'Quotation' => 'Tâme',
+ 'Quotation Date missing!' => 'Nav norâdîts tâmes datums',
+ 'Quotation Number missing!' => 'Nav norâdîts tâmes numurs',
+ 'Quotations' => 'Tâmes',
+ 'RFQ' => 'Tâmes pieprasîjums',
+ 'ROP' => 'Pasûtîðanas limits',
+ 'Recd' => 'Saòemts',
+ 'Required by' => 'Pieprasîja',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Pârdoðanas rçíins',
+ 'Sales Invoices' => 'Pârdoðanas rçíini',
+ 'Sales Order' => 'Pârdoðanas orderis',
+ 'Sales Orders' => 'Pârdoðanas orderi',
+ 'Save' => 'Saglabât',
+ 'Save as new' => 'Saglabât kâ jaunu',
+ 'Screen' => 'Ekrâns',
+ 'Select from one of the names below' => 'Atlasît vienu no sekojoðiem nosaukumiem',
+ 'Sell Price' => 'Pârdoðanas cena',
+ 'Sep' => 'Sep',
+ 'September' => 'Septembrî',
+ 'Serial No.' => 'Seriâlais Nr.',
+ 'Serial Number' => 'Seriâlais numurs',
+ 'Service' => 'Pakalpojums',
+ 'Services' => 'Pakalpojumi',
+ 'Ship' => 'Piegâdât',
+ 'Ship to' => 'Piegâdes adrese',
+ 'Shipping Address' => 'Piegâdes adrese',
+ 'Short' => 'Aizdoðana',
+ 'State/Province' => 'Ðtats/Province',
+ 'Stock' => 'Krâjums',
+ 'Stock Assembly' => 'Komplektâcijas krâjumâ',
+ 'Subject' => 'Temats',
+ 'Subtotal' => 'Kopâ',
+ 'Summary' => 'Kopçjais',
+ 'Tax' => 'Nodokïi',
+ 'To' => 'uz',
+ 'Top Level' => 'Augðçjais lîmenis',
+ 'Unit' => 'Vienîba',
+ 'Update' => 'Atjauninât',
+ 'Updated' => 'Atjauninâts',
+ 'Vendor' => 'Pârdevçjs',
+ 'Vendor Invoice' => 'Pârdevçja rçíins',
+ 'Vendor Invoices' => 'Pârdevçja rçíini',
+ 'Vendor Number' => 'Pârdevçja numurs',
+ 'Vendor not on file!' => 'Nav tâda pârdevçja!',
+ 'Warehouse' => 'Noliktava',
+ 'Weight' => 'Svars',
+ 'What type of item is this?' => 'Kâda veida vienîba tâ ir?',
+ 'Work Order' => 'Darba orderis',
+ 'days' => 'dienas',
+ 'sent' => 'nosûtîts',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'pievienot_komplektâciju' => 'add_assembly',
+ 'pievienot_darbu_izmaksas' => 'add_labor_overhead',
+ 'pievienot_daïu' => 'add_part',
+ 'pievienot_pakalpojumu' => 'add_service',
+ 'turpinât' => 'continue',
+ 'dzçst' => 'delete',
+ 'labot_komplektâciju' => 'edit_assembly',
+ 'labot_daïu' => 'edit_part',
+ 'labot_pakalpojumu' => 'edit_service',
+ 'saglabât' => 'save',
+ 'saglabât_kâ_jaunu' => 'save_as_new',
+ 'atjauninât' => 'update',
+};
+
+1;
+
diff --git a/locale/lv/io b/locale/lv/io
new file mode 100755
index 00000000..dd92258c
--- /dev/null
+++ b/locale/lv/io
@@ -0,0 +1,129 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'Add Purchase Order' => 'Pievienot pirkuma orderi',
+ 'Add Quotation' => 'Pievienot tâmi',
+ 'Add Request for Quotation' => 'Pievienot tâmes pieprasîjumu',
+ 'Add Sales Order' => 'Pievienot preèu orderi',
+ 'Address' => 'Adrese',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprîlî',
+ 'Attachment' => 'Pielikums',
+ 'Aug' => 'Aug',
+ 'August' => 'Augustâ',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Rçíina adrese',
+ 'Bin' => 'Bin',
+ 'Bin List' => 'Bin saraksts',
+ 'Cc' => 'Cc',
+ 'City' => 'Pilsçta',
+ 'Company Name' => 'Uzòçmuma nosaukums',
+ 'Contact' => 'Kontaktpersona',
+ 'Continue' => 'Turpinât',
+ 'Copies' => 'Kopijas',
+ 'Country' => 'Valsts',
+ 'Customer Number' => 'Klienta numurs',
+ 'Date' => 'Datums',
+ 'Dec' => 'Dec',
+ 'December' => 'Decembrî',
+ 'Delivery Date' => 'Piegâdes datums',
+ 'Description' => 'Apraksts',
+ 'E-mail' => 'E-pasts',
+ 'E-mail address missing!' => 'Nepareiza E-pasta adrese!',
+ 'E-mailed' => 'Nosûtîts pa e-pastu',
+ 'Extended' => 'Kopâ',
+ 'Fax' => 'Fakss',
+ 'Feb' => 'Feb',
+ 'February' => 'Februârî',
+ 'Group' => 'Grupa',
+ 'In-line' => 'Iekïauts',
+ 'Invoice' => 'Rçíins',
+ 'Invoice Date missing!' => 'Nav norâdîts rçíina datums!',
+ 'Invoice Number missing!' => 'Nepareizs rçíina numurs',
+ 'Item not on file!' => 'Nav tâdas vienîbas!',
+ 'Jan' => 'Jan',
+ 'January' => 'Janvârî',
+ 'Jul' => 'Jûl',
+ 'July' => 'Jûlijâ',
+ 'Jun' => 'Jûn',
+ 'June' => 'Jûnijâ',
+ 'Mar' => 'Mar',
+ 'March' => 'Martâ',
+ 'May' => 'Mai',
+ 'May ' => 'Maijâ ',
+ 'Message' => 'Paziòojums',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembrî',
+ 'Number' => 'Numurs',
+ 'Number missing in Row' => 'Rindâ nav norâdîts numurs',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktobrî',
+ 'Order Date missing!' => 'Nav norâdîts ordera datums!',
+ 'Order Number missing!' => 'Nav norâdîts ordera numurs!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Iesaiòojumu saraksts',
+ 'Packing List Date missing!' => 'Nav norâdîts iesaiòojumu datums!',
+ 'Packing List Number missing!' => 'Nav norâdîts iesaiòojumu numurs!',
+ 'Part' => 'Prece',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Izvçles saraksts',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Cena',
+ 'Printed' => 'Izdrukâts',
+ 'Project' => 'Projekts',
+ 'Purchase Order' => 'Pirkðanas orderis',
+ 'Qty' => 'Skaits',
+ 'Quotation' => 'Tâme',
+ 'Quotation Date missing!' => 'Nav norâdîts tâmes datums',
+ 'Quotation Number missing!' => 'Nav norâdîts tâmes numurs',
+ 'Recd' => 'Saòemts',
+ 'Required by' => 'Pieprasîja',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Pârdoðanas orderis',
+ 'Screen' => 'Ekrâns',
+ 'Sep' => 'Sep',
+ 'September' => 'Septembrî',
+ 'Serial No.' => 'Seriâlais Nr.',
+ 'Service' => 'Pakalpojums',
+ 'Ship' => 'Piegâdât',
+ 'Ship to' => 'Piegâdes adrese',
+ 'Shipping Address' => 'Piegâdes adrese',
+ 'State/Province' => 'Ðtats/Province',
+ 'Subject' => 'Temats',
+ 'Subtotal' => 'Kopâ',
+ 'To' => 'uz',
+ 'Unit' => 'Vienîba',
+ 'Vendor Number' => 'Pârdevçja numurs',
+ 'What type of item is this?' => 'Kâda veida vienîba tâ ir?',
+ 'Work Order' => 'Darba orderis',
+ 'sent' => 'nosûtîts',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'turpinât' => 'continue',
+};
+
+1;
+
diff --git a/locale/lv/ir b/locale/lv/ir
new file mode 100755
index 00000000..d9bf763b
--- /dev/null
+++ b/locale/lv/ir
@@ -0,0 +1,223 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'Account' => 'Konts',
+ 'Accounting Menu' => 'Kontçðanas izvçlne',
+ 'Add Purchase Order' => 'Pievienot pirkuma orderi',
+ 'Add Quotation' => 'Pievienot tâmi',
+ 'Add Request for Quotation' => 'Pievienot tâmes pieprasîjumu',
+ 'Add Sales Order' => 'Pievienot preèu orderi',
+ 'Add Vendor Invoice' => 'Pievienot pârdevçja rçíinu',
+ 'Address' => 'Adrese',
+ 'Amount' => 'Summa',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprîlî',
+ 'Are you sure you want to delete Invoice Number' => 'Vai jûs patieðâm vçlaties dzçst rçíina numuru',
+ 'Attachment' => 'Pielikums',
+ 'Aug' => 'Aug',
+ 'August' => 'Augustâ',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Rçíina adrese',
+ 'Bin' => 'Bin',
+ 'Bin List' => 'Bin saraksts',
+ 'Cannot delete invoice!' => 'Rçíinu nevar izdzçst!',
+ 'Cannot post invoice for a closed period!' => 'Nevar iegrâmatot rçíinu par slçgtu periodu!',
+ 'Cannot post invoice!' => 'Nevar iegrâmatot rçíinu!',
+ 'Cannot post payment for a closed period!' => 'Nevar iegrâmatot maksâjumu par slçgtu periodu!',
+ 'Cc' => 'Cc',
+ 'City' => 'Pilsçta',
+ 'Company Name' => 'Uzòçmuma nosaukums',
+ 'Confirm!' => 'Apstiprinât!',
+ 'Contact' => 'Kontaktpersona',
+ 'Continue' => 'Turpinât',
+ 'Copies' => 'Kopijas',
+ 'Country' => 'Valsts',
+ 'Credit Limit' => 'Kredîta limits',
+ 'Currency' => 'Valûta',
+ 'Customer Number' => 'Klienta numurs',
+ 'Customer not on file!' => 'Nav tâda klienta!',
+ 'Date' => 'Datums',
+ 'Dec' => 'Dec',
+ 'December' => 'Decembrî',
+ 'Delete' => 'Dzçst',
+ 'Delivery Date' => 'Piegâdes datums',
+ 'Department' => 'Nodaïa',
+ 'Description' => 'Apraksts',
+ 'Due Date' => 'Apmaksas termiòð',
+ 'E-mail' => 'E-pasts',
+ 'E-mail address missing!' => 'Nepareiza E-pasta adrese!',
+ 'E-mailed' => 'Nosûtîts pa e-pastu',
+ 'Edit Vendor Invoice' => 'Labot pârdevçja rçíinu',
+ 'Exch' => 'Kurss',
+ 'Exchange Rate' => 'Valûtas maiòas kurss',
+ 'Exchange rate for payment missing!' => 'Nav norâdîts valûtas maiòas kurss maksâjumâ!',
+ 'Exchange rate missing!' => 'Nav norâdîts valûtas maiòas kurss!',
+ 'Extended' => 'Kopâ',
+ 'Fax' => 'Fakss',
+ 'Feb' => 'Feb',
+ 'February' => 'Februârî',
+ 'Group' => 'Grupa',
+ 'In-line' => 'Iekïauts',
+ 'Internal Notes' => 'Iekðçjâs piezîmes',
+ 'Invoice' => 'Rçíins',
+ 'Invoice Date' => 'Rçíina datums',
+ 'Invoice Date missing!' => 'Nav norâdîts rçíina datums!',
+ 'Invoice Number' => 'Rçíina numurs',
+ 'Invoice Number missing!' => 'Nepareizs rçíina numurs',
+ 'Invoice deleted!' => 'Rçíins izdzçsts!',
+ 'Item not on file!' => 'Nav tâdas vienîbas!',
+ 'Jan' => 'Jan',
+ 'January' => 'Janvârî',
+ 'Jul' => 'Jûl',
+ 'July' => 'Jûlijâ',
+ 'Jun' => 'Jûn',
+ 'June' => 'Jûnijâ',
+ 'Language' => 'Valoda',
+ 'Mar' => 'Mar',
+ 'March' => 'Martâ',
+ 'May' => 'Mai',
+ 'May ' => 'Maijâ ',
+ 'Memo' => 'Memorands',
+ 'Message' => 'Paziòojums',
+ 'Notes' => 'Piezîmes',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembrî',
+ 'Number' => 'Numurs',
+ 'Number missing in Row' => 'Rindâ nav norâdîts numurs',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktobrî',
+ 'Order Date missing!' => 'Nav norâdîts ordera datums!',
+ 'Order Number' => 'Ordera Nr.',
+ 'Order Number missing!' => 'Nav norâdîts ordera numurs!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Iesaiòojumu saraksts',
+ 'Packing List Date missing!' => 'Nav norâdîts iesaiòojumu datums!',
+ 'Packing List Number missing!' => 'Nav norâdîts iesaiòojumu numurs!',
+ 'Part' => 'Prece',
+ 'Payment date missing!' => 'Nav norâdîts maksâjuma datums',
+ 'Payments' => 'Maksâjumi',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Izvçles saraksts',
+ 'Post' => 'Iegrâmatot',
+ 'Post as new' => 'Iegrâmatot kâ jaunu',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Cena',
+ 'Print' => 'Drukât',
+ 'Printed' => 'Izdrukâts',
+ 'Project' => 'Projekts',
+ 'Project not on file!' => 'Nav tâda projekta!',
+ 'Purchase Order' => 'Pirkðanas orderis',
+ 'Qty' => 'Skaits',
+ 'Quotation' => 'Tâme',
+ 'Quotation Date missing!' => 'Nav norâdîts tâmes datums',
+ 'Quotation Number missing!' => 'Nav norâdîts tâmes numurs',
+ 'Recd' => 'Saòemts',
+ 'Record in' => 'Ierakstît',
+ 'Reference' => 'Norâde',
+ 'Remaining' => 'Atlikums',
+ 'Required by' => 'Pieprasîja',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Pârdoðanas orderis',
+ 'Screen' => 'Ekrâns',
+ 'Select from one of the names below' => 'Atlasît vienu no sekojoðiem nosaukumiem',
+ 'Select from one of the projects below' => 'Atlasît vienu no sekojoðiem projektiem',
+ 'Sep' => 'Sep',
+ 'September' => 'Septembrî',
+ 'Serial No.' => 'Seriâlais Nr.',
+ 'Service' => 'Pakalpojums',
+ 'Ship' => 'Piegâdât',
+ 'Ship to' => 'Piegâdes adrese',
+ 'Shipping Address' => 'Piegâdes adrese',
+ 'Source' => 'Dokuments',
+ 'Startdate' => 'Sâkuma datums',
+ 'State/Province' => 'Ðtats/Province',
+ 'Subject' => 'Temats',
+ 'Subtotal' => 'Kopâ',
+ 'Tax Included' => 'Kopâ ar nodokïiem',
+ 'To' => 'uz',
+ 'Total' => 'Pavisam Kopâ',
+ 'Unit' => 'Vienîba',
+ 'Update' => 'Atjauninât',
+ 'Vendor' => 'Pârdevçjs',
+ 'Vendor Number' => 'Pârdevçja numurs',
+ 'Vendor missing!' => 'Pârdevçjs nav norâdîts!',
+ 'Vendor not on file!' => 'Nav tâda pârdevçja!',
+ 'Warning!' => 'Brîdinâjums!',
+ 'What type of item is this?' => 'Kâda veida vienîba tâ ir?',
+ 'Work Order' => 'Darba orderis',
+ 'Yes' => 'Jâ',
+ 'ea' => 'gb',
+ 'posted!' => 'iegrâmatots!',
+ 'sent' => 'nosûtîts',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'turpinât' => 'continue',
+ 'dzçst' => 'delete',
+ 'iegrâmatot' => 'post',
+ 'iegrâmatot_kâ_jaunu' => 'post_as_new',
+ 'pirkðanas_orderis' => 'purchase_order',
+ 'atjauninât' => 'update',
+ 'jâ' => 'yes',
+};
+
+1;
+
diff --git a/locale/lv/is b/locale/lv/is
new file mode 100755
index 00000000..e63b7ed9
--- /dev/null
+++ b/locale/lv/is
@@ -0,0 +1,232 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'Account' => 'Konts',
+ 'Accounting Menu' => 'Kontçðanas izvçlne',
+ 'Add Purchase Order' => 'Pievienot pirkuma orderi',
+ 'Add Quotation' => 'Pievienot tâmi',
+ 'Add Request for Quotation' => 'Pievienot tâmes pieprasîjumu',
+ 'Add Sales Invoice' => 'Pievienot preèu rçíinu',
+ 'Add Sales Order' => 'Pievienot preèu orderi',
+ 'Address' => 'Adrese',
+ 'Amount' => 'Summa',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprîlî',
+ 'Are you sure you want to delete Invoice Number' => 'Vai jûs patieðâm vçlaties dzçst rçíina numuru',
+ 'Attachment' => 'Pielikums',
+ 'Aug' => 'Aug',
+ 'August' => 'Augustâ',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Rçíina adrese',
+ 'Bin' => 'Bin',
+ 'Bin List' => 'Bin saraksts',
+ 'Business' => 'Komercdarbîba',
+ 'Cannot delete invoice!' => 'Rçíinu nevar izdzçst!',
+ 'Cannot post invoice for a closed period!' => 'Nevar iegrâmatot rçíinu par slçgtu periodu!',
+ 'Cannot post invoice!' => 'Nevar iegrâmatot rçíinu!',
+ 'Cannot post payment for a closed period!' => 'Nevar iegrâmatot maksâjumu par slçgtu periodu!',
+ 'Cc' => 'Cc',
+ 'City' => 'Pilsçta',
+ 'Company Name' => 'Uzòçmuma nosaukums',
+ 'Confirm!' => 'Apstiprinât!',
+ 'Contact' => 'Kontaktpersona',
+ 'Continue' => 'Turpinât',
+ 'Copies' => 'Kopijas',
+ 'Country' => 'Valsts',
+ 'Credit Limit' => 'Kredîta limits',
+ 'Currency' => 'Valûta',
+ 'Customer' => 'Klients',
+ 'Customer Number' => 'Klienta numurs',
+ 'Customer missing!' => 'Nav norâdîts klients!',
+ 'Customer not on file!' => 'Nav tâda klienta!',
+ 'Date' => 'Datums',
+ 'Dec' => 'Dec',
+ 'December' => 'Decembrî',
+ 'Delete' => 'Dzçst',
+ 'Delivery Date' => 'Piegâdes datums',
+ 'Department' => 'Nodaïa',
+ 'Description' => 'Apraksts',
+ 'Due Date' => 'Apmaksas termiòð',
+ 'E-mail' => 'E-pasts',
+ 'E-mail address missing!' => 'Nepareiza E-pasta adrese!',
+ 'E-mailed' => 'Nosûtîts pa e-pastu',
+ 'Edit Sales Invoice' => 'Labot pârdoðanas rçíinu',
+ 'Exch' => 'Kurss',
+ 'Exchange Rate' => 'Valûtas maiòas kurss',
+ 'Exchange rate for payment missing!' => 'Nav norâdîts valûtas maiòas kurss maksâjumâ!',
+ 'Exchange rate missing!' => 'Nav norâdîts valûtas maiòas kurss!',
+ 'Extended' => 'Kopâ',
+ 'Fax' => 'Fakss',
+ 'Feb' => 'Feb',
+ 'February' => 'Februârî',
+ 'Group' => 'Grupa',
+ 'In-line' => 'Iekïauts',
+ 'Internal Notes' => 'Iekðçjâs piezîmes',
+ 'Invoice' => 'Rçíins',
+ 'Invoice Date' => 'Rçíina datums',
+ 'Invoice Date missing!' => 'Nav norâdîts rçíina datums!',
+ 'Invoice Number' => 'Rçíina numurs',
+ 'Invoice Number missing!' => 'Nepareizs rçíina numurs',
+ 'Invoice deleted!' => 'Rçíins izdzçsts!',
+ 'Item not on file!' => 'Nav tâdas vienîbas!',
+ 'Jan' => 'Jan',
+ 'January' => 'Janvârî',
+ 'Jul' => 'Jûl',
+ 'July' => 'Jûlijâ',
+ 'Jun' => 'Jûn',
+ 'June' => 'Jûnijâ',
+ 'Mar' => 'Mar',
+ 'March' => 'Martâ',
+ 'May' => 'Mai',
+ 'May ' => 'Maijâ ',
+ 'Memo' => 'Memorands',
+ 'Message' => 'Paziòojums',
+ 'Notes' => 'Piezîmes',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembrî',
+ 'Number' => 'Numurs',
+ 'Number missing in Row' => 'Rindâ nav norâdîts numurs',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktobrî',
+ 'Order Date missing!' => 'Nav norâdîts ordera datums!',
+ 'Order Number' => 'Ordera Nr.',
+ 'Order Number missing!' => 'Nav norâdîts ordera numurs!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Iesaiòojumu saraksts',
+ 'Packing List Date missing!' => 'Nav norâdîts iesaiòojumu datums!',
+ 'Packing List Number missing!' => 'Nav norâdîts iesaiòojumu numurs!',
+ 'Part' => 'Prece',
+ 'Payment date missing!' => 'Nav norâdîts maksâjuma datums',
+ 'Payments' => 'Maksâjumi',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Izvçles saraksts',
+ 'Post' => 'Iegrâmatot',
+ 'Post as new' => 'Iegrâmatot kâ jaunu',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Cena',
+ 'Print' => 'Drukât',
+ 'Printed' => 'Izdrukâts',
+ 'Project' => 'Projekts',
+ 'Project not on file!' => 'Nav tâda projekta!',
+ 'Purchase Order' => 'Pirkðanas orderis',
+ 'Qty' => 'Skaits',
+ 'Quotation' => 'Tâme',
+ 'Quotation Date missing!' => 'Nav norâdîts tâmes datums',
+ 'Quotation Number missing!' => 'Nav norâdîts tâmes numurs',
+ 'Recd' => 'Saòemts',
+ 'Record in' => 'Ierakstît',
+ 'Reference' => 'Norâde',
+ 'Remaining' => 'Atlikums',
+ 'Required by' => 'Pieprasîja',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Pârdoðanas orderis',
+ 'Salesperson' => 'Pârdevçjs',
+ 'Screen' => 'Ekrâns',
+ 'Select from one of the names below' => 'Atlasît vienu no sekojoðiem nosaukumiem',
+ 'Select from one of the projects below' => 'Atlasît vienu no sekojoðiem projektiem',
+ 'Select postscript or PDF!' => 'Izvçlçties postscript vai PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septembrî',
+ 'Serial No.' => 'Seriâlais Nr.',
+ 'Service' => 'Pakalpojums',
+ 'Ship' => 'Piegâdât',
+ 'Ship to' => 'Piegâdes adrese',
+ 'Ship via' => 'Piegâdât caur',
+ 'Shipping Address' => 'Piegâdes adrese',
+ 'Shipping Point' => 'Nosûtîðanas vietas',
+ 'Source' => 'Dokuments',
+ 'Startdate' => 'Sâkuma datums',
+ 'State/Province' => 'Ðtats/Province',
+ 'Subject' => 'Temats',
+ 'Subtotal' => 'Kopâ',
+ 'Tax Included' => 'Kopâ ar nodokïiem',
+ 'To' => 'uz',
+ 'Total' => 'Pavisam Kopâ',
+ 'Trade Discount' => 'Vairumtirgotâja atlaide',
+ 'Unit' => 'Vienîba',
+ 'Update' => 'Atjauninât',
+ 'Vendor Number' => 'Pârdevçja numurs',
+ 'Vendor not on file!' => 'Nav tâda pârdevçja!',
+ 'Warning!' => 'Brîdinâjums!',
+ 'What type of item is this?' => 'Kâda veida vienîba tâ ir?',
+ 'Work Order' => 'Darba orderis',
+ 'Yes' => 'Jâ',
+ 'ea' => 'gb',
+ 'posted!' => 'iegrâmatots!',
+ 'sent' => 'nosûtîts',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'turpinât' => 'continue',
+ 'dzçst' => 'delete',
+ 'e_pasts' => 'e_mail',
+ 'iegrâmatot' => 'post',
+ 'iegrâmatot_kâ_jaunu' => 'post_as_new',
+ 'drukât' => 'print',
+ 'pârdoðanas_orderis' => 'sales_order',
+ 'piegâdes_adrese' => 'ship_to',
+ 'atjauninât' => 'update',
+ 'jâ' => 'yes',
+};
+
+1;
+
diff --git a/locale/lv/jc b/locale/lv/jc
new file mode 100755
index 00000000..e92a99b1
--- /dev/null
+++ b/locale/lv/jc
@@ -0,0 +1,88 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Kontçðanas izvçlne',
+ 'Amount' => 'Summa',
+ 'Closed' => 'Aizvçrts',
+ 'Confirm!' => 'Apstiprinât!',
+ 'Continue' => 'Turpinât',
+ 'Cost' => 'Izmaksas',
+ 'Current' => 'Paðreizçjs',
+ 'Date' => 'Datums',
+ 'Date missing!' => 'Nav norâdîts datums!',
+ 'Delete' => 'Dzçst',
+ 'Description' => 'Apraksts',
+ 'Employee' => 'Darbinieks',
+ 'From' => 'No',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Iekïaut atskaitç',
+ 'Notes' => 'Piezîmes',
+ 'Open' => 'Atvçrts',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Drukât',
+ 'Printed' => 'Izdrukâts',
+ 'Project Number' => 'Projekta numurs',
+ 'Project Number missing!' => 'Nav norâdîts projekta numurs!',
+ 'Qty' => 'Skaits',
+ 'Save' => 'Saglabât',
+ 'Save as new' => 'Saglabât kâ jaunu',
+ 'Screen' => 'Ekrâns',
+ 'Select postscript or PDF!' => 'Izvçlçties postscript vai PDF!',
+ 'Startdate' => 'Sâkuma datums',
+ 'Subtotal' => 'Kopâ',
+ 'To' => 'uz',
+ 'Total' => 'Pavisam Kopâ',
+ 'Update' => 'Atjauninât',
+ 'Warning!' => 'Brîdinâjums!',
+ 'Yes' => 'Jâ',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'turpinât' => 'continue',
+ 'dzçst' => 'delete',
+ 'drukât' => 'print',
+ 'saglabât' => 'save',
+ 'saglabât_kâ_jaunu' => 'save_as_new',
+ 'atjauninât' => 'update',
+ 'jâ' => 'yes',
+};
+
+1;
+
diff --git a/locale/lv/locales.pl b/locale/lv/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/lv/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/lv/login b/locale/lv/login
new file mode 100755
index 00000000..a8637657
--- /dev/null
+++ b/locale/lv/login
@@ -0,0 +1,26 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'Company' => 'Uzòçmums',
+ 'Continue' => 'Turpinât',
+ 'Dataset is newer than version!' => 'Datukopa ir jaunâka par versiju!',
+ 'Incorrect Dataset version!' => 'Nepareiza datukopas versija!',
+ 'Login' => 'Pieteikties',
+ 'Name' => 'Nosaukums',
+ 'Password' => 'Parole',
+ 'Upgrading to Version' => 'Uzlabot lîdz versijai',
+ 'Version' => 'Versija',
+ 'You did not enter a name!' => 'Nav ievadîts vârds',
+ 'done' => 'izdarîts',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ 'pieteikties' => 'login',
+};
+
+1;
+
diff --git a/locale/lv/menu b/locale/lv/menu
new file mode 100755
index 00000000..0191b707
--- /dev/null
+++ b/locale/lv/menu
@@ -0,0 +1,133 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'AP' => 'Kreditoru parâdi',
+ 'AP Aging' => 'KP novecojums',
+ 'AP Transaction' => 'KP transakcija',
+ 'AR' => 'Debitoru parâdi',
+ 'AR Aging' => 'DP novecojums',
+ 'AR Transaction' => 'DP transakcija',
+ 'Accounting Menu' => 'Kontçðanas izvçlne',
+ 'Add Account' => 'Pievienot kontu',
+ 'Add Assembly' => 'Pievienot komplektâciju',
+ 'Add Business' => 'Pievienot komercdarbîbu',
+ 'Add Customer' => 'Pievienot klientu',
+ 'Add Department' => 'Pievienot nodaïu',
+ 'Add Employee' => 'Pievienot darbinieku',
+ 'Add GIFI' => 'Pievienot GIFI',
+ 'Add Group' => 'Pievienot grupu',
+ 'Add Labor/Overhead' => 'Pievienot darbu/izmaksas',
+ 'Add Language' => 'Pievienot valodu',
+ 'Add Part' => 'Pievienot daïu',
+ 'Add Pricegroup' => 'Pieviento cenu grupu',
+ 'Add Project' => 'Pievienot projektu',
+ 'Add SIC' => 'Pievienot SIC',
+ 'Add Service' => 'Pievienot pakalpojumu',
+ 'Add Transaction' => 'Pievienot transakciju',
+ 'Add Vendor' => 'Pievienot pârdevçju',
+ 'Add Warehouse' => 'Pievienot noliktavu',
+ 'All Items' => 'Visi ',
+ 'Assemblies' => 'Komplektâcijas',
+ 'Audit Control' => 'Audita kontrole',
+ 'Backup' => 'Rezerves kopija',
+ 'Balance Sheet' => 'Bilances pârskats',
+ 'Bin List' => 'Bin saraksts',
+ 'Cash' => 'Nauda',
+ 'Chart of Accounts' => 'Kontu plâns',
+ 'Check' => 'Èeks',
+ 'Components' => 'Komponentes',
+ 'Customers' => 'Klienti',
+ 'Defaults' => 'Noklusçtâs vçrtîbas',
+ 'Departments' => 'Nodaïas',
+ 'Description' => 'Apraksts',
+ 'Employees' => 'Darbinieki',
+ 'General Ledger' => 'Virsgrâmata',
+ 'Goods & Services' => 'Preces un Pakalpojumi',
+ 'Groups' => 'Grupas',
+ 'HR' => 'Personâldaïa',
+ 'HTML Templates' => 'HTML ðabloni',
+ 'History' => 'Vçsture',
+ 'Income Statement' => 'Peïòas vai zaudçjuma aprçíins',
+ 'Invoice' => 'Rçíins',
+ 'LaTeX Templates' => 'LaTeX ðablons',
+ 'Labor/Overhead' => 'Darbs/izmaksas',
+ 'Language' => 'Valoda',
+ 'List Accounts' => 'Kontu saraksts',
+ 'List Businesses' => 'Komerdarbîbu saraksts',
+ 'List Departments' => 'Nodaïu saraksts',
+ 'List GIFI' => 'GIFI saraksts',
+ 'List Languages' => 'Valodu saraksts',
+ 'List Projects' => 'Projektu saraksts',
+ 'List SIC' => 'SIC saraksts',
+ 'List Warehouses' => 'Noliktavu saraksts',
+ 'Logout' => 'Beigt darbu',
+ 'Non-taxable' => 'Neapliekams ar nodokïiem',
+ 'Open' => 'Atvçrts',
+ 'Order Entry' => 'Ordera ieraksts',
+ 'Outstanding' => 'Neapmaksâtais',
+ 'POS' => 'POS',
+ 'POS Invoice' => 'POS rçíins',
+ 'Packing List' => 'Iesaiòojumu saraksts',
+ 'Packing Lists' => 'Iesaiòojumu saraksti',
+ 'Parts' => 'Daïas',
+ 'Payment' => 'Maksâjums',
+ 'Payments' => 'Maksâjumi',
+ 'Pick List' => 'Izvçles saraksts',
+ 'Preferences' => 'Izvçles',
+ 'Pricegroups' => 'Cenu grupas',
+ 'Print' => 'Drukât',
+ 'Projects' => 'Projekti',
+ 'Purchase Order' => 'Pirkðanas orderis',
+ 'Purchase Orders' => 'Pirkðanas orderi',
+ 'Quotation' => 'Tâme',
+ 'Quotations' => 'Tâmes',
+ 'RFQ' => 'Tâmes pieprasîjums',
+ 'RFQs' => 'Tâmes pieprasîjumu',
+ 'Receipt' => 'Kvîts',
+ 'Receipts' => 'Kvîtis',
+ 'Receive' => 'Saòemt',
+ 'Reconciliation' => 'Izlîdzinâðana',
+ 'Reports' => 'Atskaites',
+ 'SIC' => 'SIC',
+ 'Sale' => 'Pârdoðana',
+ 'Sales Invoice' => 'Pârdoðanas rçíins',
+ 'Sales Invoices' => 'Pârdoðanas rçíini',
+ 'Sales Order' => 'Pârdoðanas orderis',
+ 'Sales Orders' => 'Pârdoðanas orderi',
+ 'Save to File' => 'Saglabât failâ',
+ 'Search' => 'Meklçt',
+ 'Send by E-Mail' => 'Nosûtît pa e-pastu',
+ 'Services' => 'Pakalpojumi',
+ 'Ship' => 'Piegâdât',
+ 'Shipping' => 'Piegâde',
+ 'Statement' => 'Pârskats',
+ 'Stock Assembly' => 'Komplektâcijas krâjumâ',
+ 'Stylesheet' => 'Stila lapa',
+ 'System' => 'Sistçma',
+ 'Tax collected' => 'Ieòemtie nodokïi',
+ 'Tax paid' => 'Samaksâtie nodokïi',
+ 'Text Templates' => 'Teksta ðabloni',
+ 'Transactions' => 'Transakcijas',
+ 'Transfer' => 'Pârsûtîðana',
+ 'Transfer Inventory' => 'Krâjuma pârsûtîðana',
+ 'Translations' => 'Tulkojumi',
+ 'Trial Balance' => 'Kontu bilance',
+ 'Type of Business' => 'Komercdarbîbas veids',
+ 'Vendor Invoice' => 'Pârdevçja rçíins',
+ 'Vendors' => 'Pârdevçji',
+ 'Version' => 'Versija',
+ 'Warehouses' => 'Noliktavas',
+ 'Work Order' => 'Darba orderis',
+ 'Yearend' => 'Finanðu gada beigas',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/lv/oe b/locale/lv/oe
new file mode 100755
index 00000000..399e3097
--- /dev/null
+++ b/locale/lv/oe
@@ -0,0 +1,310 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Kontçðanas izvçlne',
+ 'Add Exchange Rate' => 'Pievienot valûtas maiòas kursu',
+ 'Add Purchase Order' => 'Pievienot pirkuma orderi',
+ 'Add Quotation' => 'Pievienot tâmi',
+ 'Add Request for Quotation' => 'Pievienot tâmes pieprasîjumu',
+ 'Add Sales Invoice' => 'Pievienot preèu rçíinu',
+ 'Add Sales Order' => 'Pievienot preèu orderi',
+ 'Add Vendor Invoice' => 'Pievienot pârdevçja rçíinu',
+ 'Address' => 'Adrese',
+ 'Amount' => 'Summa',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprîlî',
+ 'Are you sure you want to delete Order Number' => 'Vai jûs patieðâm vçlaties dzçst ordera numuru',
+ 'Are you sure you want to delete Quotation Number' => 'Vai jûs patieðâm vçlaties dzçst tâmes numuru',
+ 'Attachment' => 'Pielikums',
+ 'Aug' => 'Aug',
+ 'August' => 'Augustâ',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Rçíina adrese',
+ 'Bin' => 'Bin',
+ 'Bin List' => 'Bin saraksts',
+ 'Business' => 'Komercdarbîba',
+ 'C' => 'cena',
+ 'Cannot delete order!' => 'Orderi nevar izdzçst!',
+ 'Cannot delete quotation!' => 'Tâmi nevar izdzçst!',
+ 'Cannot save order!' => 'Maksâjuma uzdevumu nevar saglabât!',
+ 'Cannot save quotation!' => 'Nevar saglabât tâmi',
+ 'Cc' => 'Cc',
+ 'City' => 'Pilsçta',
+ 'Closed' => 'Aizvçrts',
+ 'Company Name' => 'Uzòçmuma nosaukums',
+ 'Confirm!' => 'Apstiprinât!',
+ 'Contact' => 'Kontaktpersona',
+ 'Continue' => 'Turpinât',
+ 'Copies' => 'Kopijas',
+ 'Cost' => 'Izmaksas',
+ 'Could not save!' => 'Nevarçja saglabât',
+ 'Could not transfer Inventory!' => 'Nevarçja pârsûtît krâjumu',
+ 'Country' => 'Valsts',
+ 'Credit Limit' => 'Kredîta limits',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valûta',
+ 'Current' => 'Paðreizçjs',
+ 'Customer' => 'Klients',
+ 'Customer Number' => 'Klienta numurs',
+ 'Customer missing!' => 'Nav norâdîts klients!',
+ 'Customer not on file!' => 'Nav tâda klienta!',
+ 'Date' => 'Datums',
+ 'Date Received' => 'Saòemðanas datums',
+ 'Date received missing!' => 'Nav norâdîts saòemðanas datums',
+ 'Dec' => 'Dec',
+ 'December' => 'Decembrî',
+ 'Delete' => 'Dzçst',
+ 'Delivery Date' => 'Piegâdes datums',
+ 'Department' => 'Nodaïa',
+ 'Description' => 'Apraksts',
+ 'Done' => 'Izdarîts',
+ 'E-mail' => 'E-pasts',
+ 'E-mail address missing!' => 'Nepareiza E-pasta adrese!',
+ 'E-mailed' => 'Nosûtîts pa e-pastu',
+ 'Edit Purchase Order' => 'Labot pirkuma orderi',
+ 'Edit Quotation' => 'Labot tâmi',
+ 'Edit Request for Quotation' => 'Labot tâmes pieprasîjumu',
+ 'Edit Sales Order' => 'Labot pârdoðanas orderi',
+ 'Employee' => 'Darbinieks',
+ 'Exchange Rate' => 'Valûtas maiòas kurss',
+ 'Exchange rate missing!' => 'Nav norâdîts valûtas maiòas kurss!',
+ 'Extended' => 'Kopâ',
+ 'Fax' => 'Fakss',
+ 'Feb' => 'Feb',
+ 'February' => 'Februârî',
+ 'From' => 'No',
+ 'Group' => 'Grupa',
+ 'ID' => 'ID',
+ 'In-line' => 'Iekïauts',
+ 'Include in Report' => 'Iekïaut atskaitç',
+ 'Internal Notes' => 'Iekðçjâs piezîmes',
+ 'Inventory saved!' => 'Krâjums saglabâts',
+ 'Inventory transferred!' => 'Krâjums pârsûtîts',
+ 'Invoice' => 'Rçíins',
+ 'Invoice Date missing!' => 'Nav norâdîts rçíina datums!',
+ 'Invoice Number missing!' => 'Nepareizs rçíina numurs',
+ 'Item not on file!' => 'Nav tâdas vienîbas!',
+ 'Jan' => 'Jan',
+ 'January' => 'Janvârî',
+ 'Jul' => 'Jûl',
+ 'July' => 'Jûlijâ',
+ 'Jun' => 'Jûn',
+ 'June' => 'Jûnijâ',
+ 'Manager' => 'Vadîtâjs',
+ 'Mar' => 'Mar',
+ 'March' => 'Martâ',
+ 'May' => 'Mai',
+ 'May ' => 'Maijâ ',
+ 'Message' => 'Paziòojums',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Piezîmes',
+ 'Nothing entered!' => 'Nekas nav ievadîts',
+ 'Nothing selected!' => 'Nekas nav iezîmçts!',
+ 'Nothing to transfer!' => 'Nav nekâ pârsûtîðanai',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembrî',
+ 'Number' => 'Numurs',
+ 'Number missing in Row' => 'Rindâ nav norâdîts numurs',
+ 'O' => 'O',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktobrî',
+ 'Open' => 'Atvçrts',
+ 'Order' => 'Orderis',
+ 'Order Date' => 'Ordera datums',
+ 'Order Date missing!' => 'Nav norâdîts ordera datums!',
+ 'Order Number' => 'Ordera Nr.',
+ 'Order Number missing!' => 'Nav norâdîts ordera numurs!',
+ 'Order deleted!' => 'Orderis izdzçsts',
+ 'Order saved!' => 'Orderis saglabâts!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Iesaiòojumu saraksts',
+ 'Packing List Date missing!' => 'Nav norâdîts iesaiòojumu datums!',
+ 'Packing List Number missing!' => 'Nav norâdîts iesaiòojumu numurs!',
+ 'Part' => 'Prece',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Izvçles saraksts',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Cena',
+ 'Print' => 'Drukât',
+ 'Printed' => 'Izdrukâts',
+ 'Project' => 'Projekts',
+ 'Project not on file!' => 'Nav tâda projekta!',
+ 'Purchase Order' => 'Pirkðanas orderis',
+ 'Purchase Orders' => 'Pirkðanas orderi',
+ 'Qty' => 'Skaits',
+ 'Quotation' => 'Tâme',
+ 'Quotation Date' => 'Tâmes datums',
+ 'Quotation Date missing!' => 'Nav norâdîts tâmes datums',
+ 'Quotation Number' => 'Tâmes numurs',
+ 'Quotation Number missing!' => 'Nav norâdîts tâmes numurs',
+ 'Quotation deleted!' => 'Tâme izdzçsta',
+ 'Quotations' => 'Tâmes',
+ 'RFQ' => 'Tâmes pieprasîjums',
+ 'RFQ Number' => 'Tâmes pieprasîjuma numurs',
+ 'Recd' => 'Saòemts',
+ 'Receive Merchandise' => 'Saòemt preces',
+ 'Reference' => 'Norâde',
+ 'Remaining' => 'Atlikums',
+ 'Request for Quotation' => 'Tâmes pieprasîjums',
+ 'Request for Quotations' => 'Tâmju pieprasîjums',
+ 'Required by' => 'Pieprasîja',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Pârdoðanas rçíins',
+ 'Sales Order' => 'Pârdoðanas orderis',
+ 'Sales Orders' => 'Pârdoðanas orderi',
+ 'Salesperson' => 'Pârdevçjs',
+ 'Save' => 'Saglabât',
+ 'Save as new' => 'Saglabât kâ jaunu',
+ 'Screen' => 'Ekrâns',
+ 'Select from one of the names below' => 'Atlasît vienu no sekojoðiem nosaukumiem',
+ 'Select from one of the projects below' => 'Atlasît vienu no sekojoðiem projektiem',
+ 'Select postscript or PDF!' => 'Izvçlçties postscript vai PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septembrî',
+ 'Serial No.' => 'Seriâlais Nr.',
+ 'Service' => 'Pakalpojums',
+ 'Ship' => 'Piegâdât',
+ 'Ship Merchandise' => 'Piegâdât preces',
+ 'Ship to' => 'Piegâdes adrese',
+ 'Ship via' => 'Piegâdât caur',
+ 'Shipping Address' => 'Piegâdes adrese',
+ 'Shipping Date' => 'Nosûtîðanas datums',
+ 'Shipping Date missing!' => 'Nav norâdîts nosûtîðanas datums',
+ 'Shipping Point' => 'Nosûtîðanas vietas',
+ 'Startdate' => 'Sâkuma datums',
+ 'State/Province' => 'Ðtats/Province',
+ 'Subject' => 'Temats',
+ 'Subtotal' => 'Kopâ',
+ 'Tax' => 'Nodokïi',
+ 'Tax Included' => 'Kopâ ar nodokïiem',
+ 'Terms' => 'Noteikumi: termiòð',
+ 'To' => 'uz',
+ 'Total' => 'Pavisam Kopâ',
+ 'Trade Discount' => 'Vairumtirgotâja atlaide',
+ 'Transfer' => 'Pârsûtîðana',
+ 'Transfer Inventory' => 'Krâjuma pârsûtîðana',
+ 'Transfer to' => 'Pârsûtît uz',
+ 'Unit' => 'Vienîba',
+ 'Update' => 'Atjauninât',
+ 'Valid until' => 'Derîgs lîdz',
+ 'Vendor' => 'Pârdevçjs',
+ 'Vendor Invoice' => 'Pârdevçja rçíins',
+ 'Vendor Number' => 'Pârdevçja numurs',
+ 'Vendor missing!' => 'Pârdevçjs nav norâdîts!',
+ 'Vendor not on file!' => 'Nav tâda pârdevçja!',
+ 'Warehouse' => 'Noliktava',
+ 'Warning!' => 'Brîdinâjums!',
+ 'What type of item is this?' => 'Kâda veida vienîba tâ ir?',
+ 'Work Order' => 'Darba orderis',
+ 'Yes' => 'Jâ',
+ 'days' => 'dienas',
+ 'ea' => 'gb',
+ 'sent' => 'nosûtîts',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'turpinât' => 'continue',
+ 'dzçst' => 'delete',
+ 'izdarîts' => 'done',
+ 'e_pasts' => 'e_mail',
+ 'drukât' => 'print',
+ 'pirkðanas_orderis' => 'purchase_order',
+ 'tâme' => 'quotation',
+ 'tâmes_pieprasîjums' => 'rfq',
+ 'pârdoðanas_rçíins' => 'sales_invoice',
+ 'pârdoðanas_orderis' => 'sales_order',
+ 'saglabât' => 'save',
+ 'saglabât_kâ_jaunu' => 'save_as_new',
+ 'piegâdes_adrese' => 'ship_to',
+ 'pârsûtîðana' => 'transfer',
+ 'atjauninât' => 'update',
+ 'pârdevçja_rçíins' => 'vendor_invoice',
+ 'jâ' => 'yes',
+};
+
+1;
+
diff --git a/locale/lv/pe b/locale/lv/pe
new file mode 100755
index 00000000..91a2fcc1
--- /dev/null
+++ b/locale/lv/pe
@@ -0,0 +1,139 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Kontçðanas izvçlne',
+ 'Active' => 'Aktîvs',
+ 'Add' => 'Pievienot',
+ 'Add Group' => 'Pievienot grupu',
+ 'Add Pricegroup' => 'Pieviento cenu grupu',
+ 'Add Project' => 'Pievienot projektu',
+ 'Address' => 'Adrese',
+ 'All' => 'Visi',
+ 'Amount' => 'Summa',
+ 'Assembly' => 'Komplektâcija',
+ 'Bin' => 'Bin',
+ 'Continue' => 'Turpinât',
+ 'Current' => 'Paðreizçjs',
+ 'Customer' => 'Klients',
+ 'Customer missing!' => 'Nav norâdîts klients!',
+ 'Customer not on file!' => 'Nav tâda klienta!',
+ 'Date' => 'Datums',
+ 'Delete' => 'Dzçst',
+ 'Description' => 'Apraksts',
+ 'Description Translations' => 'Apraksta tulkojumi',
+ 'Detail' => 'Sîks apraksts',
+ 'Edit Description Translations' => 'Labot tulkojumu aprakstus',
+ 'Edit Group' => 'Labot grupu',
+ 'Edit Pricegroup' => 'Labot cenu grupu',
+ 'Edit Project' => 'Labot projektu',
+ 'Employee' => 'Darbinieks',
+ 'Enddate' => 'Beigu datums',
+ 'From' => 'No',
+ 'Group' => 'Grupa',
+ 'Group Translations' => 'Grupu transakcijas',
+ 'Group deleted!' => 'Grupa izdzçsta!',
+ 'Group missing!' => 'Grupa nav norâdîta!',
+ 'Group saved!' => 'Grupa saglabâta!',
+ 'Groups' => 'Grupas',
+ 'Income' => 'Ienâkums',
+ 'Language' => 'Valoda',
+ 'Languages not defined!' => 'Valodas nav definçtas',
+ 'Link Accounts' => 'Piesaistît kontus',
+ 'List Price' => 'Cenrâþa cena',
+ 'Notes' => 'Piezîmes',
+ 'Nothing selected!' => 'Nekas nav iezîmçts!',
+ 'Number' => 'Numurs',
+ 'Orphaned' => 'Bez atbilstoðâ pâra',
+ 'Pricegroup' => 'Cenu grupa',
+ 'Pricegroup deleted!' => 'Cenu grupa izdzçsta',
+ 'Pricegroup missing!' => 'Cenu grupa nav norâdîta',
+ 'Pricegroup saved!' => 'Cenu grupa saglabâta',
+ 'Pricegroups' => 'Cenu grupas',
+ 'Project' => 'Projekts',
+ 'Project Description Translations' => 'Projekta apraksta tulkojumi',
+ 'Project Number' => 'Projekta numurs',
+ 'Project deleted!' => 'Projekts izdzçsts!',
+ 'Project saved!' => 'Projekts saglabâts',
+ 'Projects' => 'Projekti',
+ 'Qty' => 'Skaits',
+ 'Save' => 'Saglabât',
+ 'Select from one of the names below' => 'Atlasît vienu no sekojoðiem nosaukumiem',
+ 'Sell Price' => 'Pârdoðanas cena',
+ 'Startdate' => 'Sâkuma datums',
+ 'Summary' => 'Kopçjais',
+ 'Tax' => 'Nodokïi',
+ 'To' => 'uz',
+ 'Translation' => 'Tulkojums',
+ 'Translation deleted!' => 'Tulkojums izdzçsts',
+ 'Translations saved!' => 'Tulkojumi saglabâti',
+ 'Unit' => 'Vienîba',
+ 'Update' => 'Atjauninât',
+ 'Updated' => 'Atjauninâts',
+ 'Vendor' => 'Pârdevçjs',
+ 'Vendor not on file!' => 'Nav tâda pârdevçja!',
+ 'Weight' => 'Svars',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'pievienot_grupu' => 'add_group',
+ 'pieviento_cenu_grupu' => 'add_pricegroup',
+ 'pievienot_projektu' => 'add_project',
+ 'turpinât' => 'continue',
+ 'dzçst' => 'delete',
+ 'saglabât' => 'save',
+ 'atjauninât' => 'update',
+};
+
+1;
+
diff --git a/locale/lv/pos b/locale/lv/pos
new file mode 100755
index 00000000..a3cd5f49
--- /dev/null
+++ b/locale/lv/pos
@@ -0,0 +1,76 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Kontçðanas izvçlne',
+ 'Add POS Invoice' => 'Pievienot POS rçíinu',
+ 'Amount' => 'Summa',
+ 'Business' => 'Komercdarbîba',
+ 'Cannot post transaction!' => 'Nevar iegrâmatot transakciju!',
+ 'Change' => 'Izmainît',
+ 'Continue' => 'Turpinât',
+ 'Credit Limit' => 'Kredîta limits',
+ 'Currency' => 'Valûta',
+ 'Current' => 'Paðreizçjs',
+ 'Customer' => 'Klients',
+ 'Customer missing!' => 'Nav norâdîts klients!',
+ 'Delete' => 'Dzçst',
+ 'Department' => 'Nodaïa',
+ 'Description' => 'Apraksts',
+ 'Edit POS Invoice' => 'Labot POS rçíinu',
+ 'Exchange Rate' => 'Valûtas maiòas kurss',
+ 'Exchange rate missing!' => 'Nav norâdîts valûtas maiòas kurss!',
+ 'Extended' => 'Kopâ',
+ 'From' => 'No',
+ 'Language' => 'Valoda',
+ 'Memo' => 'Memorands',
+ 'Number' => 'Numurs',
+ 'Open' => 'Atvçrts',
+ 'Post' => 'Iegrâmatot',
+ 'Posted!' => 'Iegrâmatots!',
+ 'Price' => 'Cena',
+ 'Print' => 'Drukât',
+ 'Printed' => 'Izdrukâts',
+ 'Qty' => 'Skaits',
+ 'Receipts' => 'Kvîtis',
+ 'Record in' => 'Ierakstît',
+ 'Remaining' => 'Atlikums',
+ 'Salesperson' => 'Pârdevçjs',
+ 'Screen' => 'Ekrâns',
+ 'Source' => 'Dokuments',
+ 'Subtotal' => 'Kopâ',
+ 'Tax Included' => 'Kopâ ar nodokïiem',
+ 'To' => 'uz',
+ 'Total' => 'Pavisam Kopâ',
+ 'Trade Discount' => 'Vairumtirgotâja atlaide',
+ 'Unit' => 'Vienîba',
+ 'Update' => 'Atjauninât',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'turpinât' => 'continue',
+ 'dzçst' => 'delete',
+ 'iegrâmatot' => 'post',
+ 'drukât' => 'print',
+ 'atjauninât' => 'update',
+};
+
+1;
+
diff --git a/locale/lv/ps b/locale/lv/ps
new file mode 100755
index 00000000..687ed915
--- /dev/null
+++ b/locale/lv/ps
@@ -0,0 +1,340 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'AP Aging' => 'KP novecojums',
+ 'AP Outstanding' => 'KP Neapmaksâtie',
+ 'AP Transaction' => 'KP transakcija',
+ 'AP Transactions' => 'KP transakcijas',
+ 'AR Aging' => 'DP novecojums',
+ 'AR Outstanding' => 'DP Neapmaksâtie',
+ 'AR Transaction' => 'DP transakcija',
+ 'AR Transactions' => 'DP transakcijas',
+ 'Account' => 'Konts',
+ 'Account Number' => 'Konta numurs',
+ 'Accounting Menu' => 'Kontçðanas izvçlne',
+ 'Accounts' => 'Konti',
+ 'Accrual' => 'Uzkrâðana',
+ 'Add POS Invoice' => 'Pievienot POS rçíinu',
+ 'Add Purchase Order' => 'Pievienot pirkuma orderi',
+ 'Add Quotation' => 'Pievienot tâmi',
+ 'Add Request for Quotation' => 'Pievienot tâmes pieprasîjumu',
+ 'Add Sales Invoice' => 'Pievienot preèu rçíinu',
+ 'Add Sales Order' => 'Pievienot preèu orderi',
+ 'Address' => 'Adrese',
+ 'All Accounts' => 'Visi konti',
+ 'Amount' => 'Summa',
+ 'Amount Due' => 'Nesamaksâtâ summa',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprîlî',
+ 'Are you sure you want to delete Invoice Number' => 'Vai jûs patieðâm vçlaties dzçst rçíina numuru',
+ 'Are you sure you want to delete Transaction' => 'Vai jûs patieðâm vçlaties dzçst transakciju',
+ 'Attachment' => 'Pielikums',
+ 'Aug' => 'Aug',
+ 'August' => 'Augustâ',
+ 'Balance' => 'Bilance',
+ 'Balance Sheet' => 'Bilances pârskats',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Rçíina adrese',
+ 'Bin' => 'Bin',
+ 'Bin List' => 'Bin saraksts',
+ 'Business' => 'Komercdarbîba',
+ 'Cannot delete invoice!' => 'Rçíinu nevar izdzçst!',
+ 'Cannot delete transaction!' => 'Transakciju nevar izdzçst!',
+ 'Cannot post invoice for a closed period!' => 'Nevar iegrâmatot rçíinu par slçgtu periodu!',
+ 'Cannot post invoice!' => 'Nevar iegrâmatot rçíinu!',
+ 'Cannot post payment for a closed period!' => 'Nevar iegrâmatot maksâjumu par slçgtu periodu!',
+ 'Cannot post transaction for a closed period!' => 'Nevar iegrâmatot transakciju par slçgtu periodu!',
+ 'Cannot post transaction!' => 'Nevar iegrâmatot transakciju!',
+ 'Cash' => 'Nauda',
+ 'Cc' => 'Cc',
+ 'Change' => 'Izmainît',
+ 'Check' => 'Èeks',
+ 'City' => 'Pilsçta',
+ 'Closed' => 'Aizvçrts',
+ 'Company Name' => 'Uzòçmuma nosaukums',
+ 'Compare to' => 'Salîdzinât ar',
+ 'Confirm!' => 'Apstiprinât!',
+ 'Contact' => 'Kontaktpersona',
+ 'Continue' => 'Turpinât',
+ 'Copies' => 'Kopijas',
+ 'Country' => 'Valsts',
+ 'Credit' => 'Kredîts',
+ 'Credit Limit' => 'Kredîta limits',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valûta',
+ 'Current' => 'Paðreizçjs',
+ 'Current Earnings' => 'Paðreizçjie ienâkumi',
+ 'Customer' => 'Klients',
+ 'Customer Number' => 'Klienta numurs',
+ 'Customer missing!' => 'Nav norâdîts klients!',
+ 'Customer not on file!' => 'Nav tâda klienta!',
+ 'Date' => 'Datums',
+ 'Date Paid' => 'Maksâjuma datums',
+ 'Debit' => 'Debets',
+ 'Dec' => 'Dec',
+ 'December' => 'Decembrî',
+ 'Decimalplaces' => 'decimâldaïa',
+ 'Delete' => 'Dzçst',
+ 'Delivery Date' => 'Piegâdes datums',
+ 'Department' => 'Nodaïa',
+ 'Description' => 'Apraksts',
+ 'Detail' => 'Sîks apraksts',
+ 'Due Date' => 'Apmaksas termiòð',
+ 'Due Date missing!' => 'Nav norâdîts apmaksas termiòð!',
+ 'E-mail' => 'E-pasts',
+ 'E-mail Statement to' => 'Nosûtît atskaiti pa e-pastu uz ',
+ 'E-mail address missing!' => 'Nepareiza E-pasta adrese!',
+ 'E-mailed' => 'Nosûtîts pa e-pastu',
+ 'Edit POS Invoice' => 'Labot POS rçíinu',
+ 'Edit Sales Invoice' => 'Labot pârdoðanas rçíinu',
+ 'Employee' => 'Darbinieks',
+ 'Exch' => 'Kurss',
+ 'Exchange Rate' => 'Valûtas maiòas kurss',
+ 'Exchange rate for payment missing!' => 'Nav norâdîts valûtas maiòas kurss maksâjumâ!',
+ 'Exchange rate missing!' => 'Nav norâdîts valûtas maiòas kurss!',
+ 'Extended' => 'Kopâ',
+ 'Fax' => 'Fakss',
+ 'Feb' => 'Feb',
+ 'February' => 'Februârî',
+ 'From' => 'No',
+ 'GIFI' => 'GIFI',
+ 'Group' => 'Grupa',
+ 'Heading' => 'Virsraksts',
+ 'ID' => 'ID',
+ 'In-line' => 'Iekïauts',
+ 'Include Exchange Rate Difference' => 'Iekïaut valûtas kursu atðíirîbas',
+ 'Include in Report' => 'Iekïaut atskaitç',
+ 'Income Statement' => 'Peïòas vai zaudçjuma aprçíins',
+ 'Internal Notes' => 'Iekðçjâs piezîmes',
+ 'Invoice' => 'Rçíins',
+ 'Invoice Date' => 'Rçíina datums',
+ 'Invoice Date missing!' => 'Nav norâdîts rçíina datums!',
+ 'Invoice Number' => 'Rçíina numurs',
+ 'Invoice Number missing!' => 'Nepareizs rçíina numurs',
+ 'Invoice deleted!' => 'Rçíins izdzçsts!',
+ 'Item not on file!' => 'Nav tâdas vienîbas!',
+ 'Jan' => 'Jan',
+ 'January' => 'Janvârî',
+ 'Jul' => 'Jûl',
+ 'July' => 'Jûlijâ',
+ 'Jun' => 'Jûn',
+ 'June' => 'Jûnijâ',
+ 'Language' => 'Valoda',
+ 'Manager' => 'Vadîtâjs',
+ 'Mar' => 'Mar',
+ 'March' => 'Martâ',
+ 'May' => 'Mai',
+ 'May ' => 'Maijâ ',
+ 'Memo' => 'Memorands',
+ 'Message' => 'Paziòojums',
+ 'Method' => 'Metode',
+ 'N/A' => 'Nav',
+ 'No.' => 'Nr.',
+ 'Non-taxable Purchases' => 'Pirkumi, kas nav apliekami ar nodokïiem',
+ 'Non-taxable Sales' => 'Tirgoðana, kas nav apliekama ar nodokïiem',
+ 'Notes' => 'Piezîmes',
+ 'Nothing selected!' => 'Nekas nav iezîmçts!',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembrî',
+ 'Number' => 'Numurs',
+ 'Number missing in Row' => 'Rindâ nav norâdîts numurs',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktobrî',
+ 'Open' => 'Atvçrts',
+ 'Order' => 'Orderis',
+ 'Order Date missing!' => 'Nav norâdîts ordera datums!',
+ 'Order Number' => 'Ordera Nr.',
+ 'Order Number missing!' => 'Nav norâdîts ordera numurs!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Iesaiòojumu saraksts',
+ 'Packing List Date missing!' => 'Nav norâdîts iesaiòojumu datums!',
+ 'Packing List Number missing!' => 'Nav norâdîts iesaiòojumu numurs!',
+ 'Paid' => 'Apmaksâts',
+ 'Part' => 'Prece',
+ 'Payment date missing!' => 'Nav norâdîts maksâjuma datums',
+ 'Payments' => 'Maksâjumi',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Izvçles saraksts',
+ 'Post' => 'Iegrâmatot',
+ 'Post as new' => 'Iegrâmatot kâ jaunu',
+ 'Posted!' => 'Iegrâmatots!',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Cena',
+ 'Print' => 'Drukât',
+ 'Printed' => 'Izdrukâts',
+ 'Project' => 'Projekts',
+ 'Project Number' => 'Projekta numurs',
+ 'Project Transactions' => 'Projekta transakcijas',
+ 'Project not on file!' => 'Nav tâda projekta!',
+ 'Purchase Order' => 'Pirkðanas orderis',
+ 'Qty' => 'Skaits',
+ 'Quotation' => 'Tâme',
+ 'Quotation Date missing!' => 'Nav norâdîts tâmes datums',
+ 'Quotation Number missing!' => 'Nav norâdîts tâmes numurs',
+ 'Recd' => 'Saòemts',
+ 'Receipt' => 'Kvîts',
+ 'Receipts' => 'Kvîtis',
+ 'Record in' => 'Ierakstît',
+ 'Reference' => 'Norâde',
+ 'Remaining' => 'Atlikums',
+ 'Report for' => 'Atskaite par',
+ 'Required by' => 'Pieprasîja',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Pârdoðanas orderis',
+ 'Salesperson' => 'Pârdevçjs',
+ 'Screen' => 'Ekrâns',
+ 'Select all' => 'Atlasît visu',
+ 'Select from one of the names below' => 'Atlasît vienu no sekojoðiem nosaukumiem',
+ 'Select from one of the projects below' => 'Atlasît vienu no sekojoðiem projektiem',
+ 'Select postscript or PDF!' => 'Izvçlçties postscript vai PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septembrî',
+ 'Serial No.' => 'Seriâlais Nr.',
+ 'Service' => 'Pakalpojums',
+ 'Ship' => 'Piegâdât',
+ 'Ship to' => 'Piegâdes adrese',
+ 'Ship via' => 'Piegâdât caur',
+ 'Shipping Address' => 'Piegâdes adrese',
+ 'Shipping Point' => 'Nosûtîðanas vietas',
+ 'Source' => 'Dokuments',
+ 'Standard' => 'Standarts',
+ 'Startdate' => 'Sâkuma datums',
+ 'State/Province' => 'Ðtats/Province',
+ 'Statement' => 'Pârskats',
+ 'Statement sent to' => 'Nosûtît pârskatu uz',
+ 'Statements sent to printer!' => 'Nosûtît pârskatu uz drukâðanu!',
+ 'Subject' => 'Temats',
+ 'Subtotal' => 'Kopâ',
+ 'Summary' => 'Kopçjais',
+ 'Tax' => 'Nodokïi',
+ 'Tax Included' => 'Kopâ ar nodokïiem',
+ 'Tax collected' => 'Ieòemtie nodokïi',
+ 'Tax paid' => 'Samaksâtie nodokïi',
+ 'Till' => 'lîdz',
+ 'To' => 'uz',
+ 'Total' => 'Pavisam Kopâ',
+ 'Trade Discount' => 'Vairumtirgotâja atlaide',
+ 'Transaction deleted!' => 'Transakcija izdzçsta!',
+ 'Transaction posted!' => 'Transakcija iegrâmatota!',
+ 'Trial Balance' => 'Kontu bilance',
+ 'Unit' => 'Vienîba',
+ 'Update' => 'Atjauninât',
+ 'Vendor' => 'Pârdevçjs',
+ 'Vendor Number' => 'Pârdevçja numurs',
+ 'Vendor missing!' => 'Pârdevçjs nav norâdîts!',
+ 'Vendor not on file!' => 'Nav tâda pârdevçja!',
+ 'Warning!' => 'Brîdinâjums!',
+ 'What type of item is this?' => 'Kâda veida vienîba tâ ir?',
+ 'Work Order' => 'Darba orderis',
+ 'Yes' => 'Jâ',
+ 'as at' => 'uz',
+ 'ea' => 'gb',
+ 'for Period' => 'periodam',
+ 'posted!' => 'iegrâmatots!',
+ 'sent' => 'nosûtîts',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'kp_transakcija' => 'ap_transaction',
+ 'dp_transakcija' => 'ar_transaction',
+ 'turpinât' => 'continue',
+ 'dzçst' => 'delete',
+ 'e_pasts' => 'e_mail',
+ 'iegrâmatot' => 'post',
+ 'iegrâmatot_kâ_jaunu' => 'post_as_new',
+ 'drukât' => 'print',
+ 'pârdoðanas_orderis' => 'sales_order',
+ 'atlasît_visu' => 'select_all',
+ 'piegâdes_adrese' => 'ship_to',
+ 'atjauninât' => 'update',
+ 'jâ' => 'yes',
+};
+
+1;
+
diff --git a/locale/lv/pw b/locale/lv/pw
new file mode 100755
index 00000000..89375eae
--- /dev/null
+++ b/locale/lv/pw
@@ -0,0 +1,14 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'Continue' => 'Turpinât',
+ 'Password' => 'Parole',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'turpinât' => 'continue',
+};
+
+1;
+
diff --git a/locale/lv/rc b/locale/lv/rc
new file mode 100755
index 00000000..cb9edd63
--- /dev/null
+++ b/locale/lv/rc
@@ -0,0 +1,77 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'Account' => 'Konts',
+ 'Accounting Menu' => 'Kontçðanas izvçlne',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprîlî',
+ 'Aug' => 'Aug',
+ 'August' => 'Augustâ',
+ 'Balance' => 'Bilance',
+ 'Beginning Balance' => 'Sâkuma atlikums',
+ 'Cleared' => 'Apmaksâts',
+ 'Continue' => 'Turpinât',
+ 'Credit' => 'Kredîts',
+ 'Current' => 'Paðreizçjs',
+ 'Date' => 'Datums',
+ 'Debit' => 'Debets',
+ 'Dec' => 'Dec',
+ 'December' => 'Decembrî',
+ 'Description' => 'Apraksts',
+ 'Detail' => 'Sîks apraksts',
+ 'Difference' => 'Starpîba',
+ 'Done' => 'Izdarîts',
+ 'Feb' => 'Feb',
+ 'February' => 'Februârî',
+ 'From' => 'No',
+ 'Include Exchange Rate Difference' => 'Iekïaut valûtas kursu atðíirîbas',
+ 'Jan' => 'Jan',
+ 'January' => 'Janvârî',
+ 'Jul' => 'Jûl',
+ 'July' => 'Jûlijâ',
+ 'Jun' => 'Jûn',
+ 'June' => 'Jûnijâ',
+ 'Mar' => 'Mar',
+ 'March' => 'Martâ',
+ 'May' => 'Mai',
+ 'May ' => 'Maijâ ',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembrî',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktobrî',
+ 'Out of balance!' => 'Nav bilances!',
+ 'Outstanding' => 'Neapmaksâtais',
+ 'R' => 'R',
+ 'Reconciliation' => 'Izlîdzinâðana',
+ 'Reconciliation Report' => 'Izlîdzinâðanas atskaite',
+ 'Select all' => 'Atlasît visu',
+ 'Sep' => 'Sep',
+ 'September' => 'Septembrî',
+ 'Source' => 'Dokuments',
+ 'Statement Balance' => 'Bilances atskaite',
+ 'Summary' => 'Kopçjais',
+ 'To' => 'uz',
+ 'Update' => 'Atjauninât',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'turpinât' => 'continue',
+ 'izdarîts' => 'done',
+ 'atlasît_visu' => 'select_all',
+ 'atjauninât' => 'update',
+};
+
+1;
+
diff --git a/locale/lv/rp b/locale/lv/rp
new file mode 100755
index 00000000..f3a18741
--- /dev/null
+++ b/locale/lv/rp
@@ -0,0 +1,177 @@
+$self{charset} = 'ISO-8859-13';
+
+$self{texts} = {
+ 'AP Aging' => 'KP novecojums',
+ 'AR Aging' => 'DP novecojums',
+ 'Account' => 'Konts',
+ 'Account Number' => 'Konta numurs',
+ 'Accounting Menu' => 'Kontçðanas izvçlne',
+ 'Accounts' => 'Konti',
+ 'Accrual' => 'Uzkrâðana',
+ 'Address' => 'Adrese',
+ 'All Accounts' => 'Visi konti',
+ 'Amount' => 'Summa',
+ 'Apr' => 'Apr',
+ 'April' => 'Aprîlî',
+ 'Attachment' => 'Pielikums',
+ 'Aug' => 'Aug',
+ 'August' => 'Augustâ',
+ 'Balance' => 'Bilance',
+ 'Balance Sheet' => 'Bilances pârskats',
+ 'Bcc' => 'Bcc',
+ 'Cash' => 'Nauda',
+ 'Cc' => 'Cc',
+ 'Compare to' => 'Salîdzinât ar',
+ 'Continue' => 'Turpinât',
+ 'Copies' => 'Kopijas',
+ 'Credit' => 'Kredîts',
+ 'Curr' => 'Val.',
+ 'Current' => 'Paðreizçjs',
+ 'Current Earnings' => 'Paðreizçjie ienâkumi',
+ 'Customer' => 'Klients',
+ 'Customer not on file!' => 'Nav tâda klienta!',
+ 'Date' => 'Datums',
+ 'Debit' => 'Debets',
+ 'Dec' => 'Dec',
+ 'December' => 'Decembrî',
+ 'Decimalplaces' => 'decimâldaïa',
+ 'Department' => 'Nodaïa',
+ 'Description' => 'Apraksts',
+ 'Detail' => 'Sîks apraksts',
+ 'Due Date' => 'Apmaksas termiòð',
+ 'E-mail' => 'E-pasts',
+ 'E-mail Statement to' => 'Nosûtît atskaiti pa e-pastu uz ',
+ 'E-mail address missing!' => 'Nepareiza E-pasta adrese!',
+ 'Feb' => 'Feb',
+ 'February' => 'Februârî',
+ 'From' => 'No',
+ 'GIFI' => 'GIFI',
+ 'Heading' => 'Virsraksts',
+ 'ID' => 'ID',
+ 'In-line' => 'Iekïauts',
+ 'Include Exchange Rate Difference' => 'Iekïaut valûtas kursu atðíirîbas',
+ 'Include in Report' => 'Iekïaut atskaitç',
+ 'Income Statement' => 'Peïòas vai zaudçjuma aprçíins',
+ 'Invoice' => 'Rçíins',
+ 'Jan' => 'Jan',
+ 'January' => 'Janvârî',
+ 'Jul' => 'Jûl',
+ 'July' => 'Jûlijâ',
+ 'Jun' => 'Jûn',
+ 'June' => 'Jûnijâ',
+ 'Language' => 'Valoda',
+ 'Mar' => 'Mar',
+ 'March' => 'Martâ',
+ 'May' => 'Mai',
+ 'May ' => 'Maijâ ',
+ 'Memo' => 'Memorands',
+ 'Message' => 'Paziòojums',
+ 'Method' => 'Metode',
+ 'N/A' => 'Nav',
+ 'Non-taxable Purchases' => 'Pirkumi, kas nav apliekami ar nodokïiem',
+ 'Non-taxable Sales' => 'Tirgoðana, kas nav apliekama ar nodokïiem',
+ 'Nothing selected!' => 'Nekas nav iezîmçts!',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembrî',
+ 'Number' => 'Numurs',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktobrî',
+ 'Order' => 'Orderis',
+ 'PDF' => 'PDF',
+ 'Payments' => 'Maksâjumi',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Drukât',
+ 'Project' => 'Projekts',
+ 'Project Number' => 'Projekta numurs',
+ 'Project Transactions' => 'Projekta transakcijas',
+ 'Project not on file!' => 'Nav tâda projekta!',
+ 'Receipts' => 'Kvîtis',
+ 'Reference' => 'Norâde',
+ 'Report for' => 'Atskaite par',
+ 'Salesperson' => 'Pârdevçjs',
+ 'Screen' => 'Ekrâns',
+ 'Select all' => 'Atlasît visu',
+ 'Select from one of the names below' => 'Atlasît vienu no sekojoðiem nosaukumiem',
+ 'Select from one of the projects below' => 'Atlasît vienu no sekojoðiem projektiem',
+ 'Select postscript or PDF!' => 'Izvçlçties postscript vai PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septembrî',
+ 'Source' => 'Dokuments',
+ 'Standard' => 'Standarts',
+ 'Startdate' => 'Sâkuma datums',
+ 'Statement' => 'Pârskats',
+ 'Statement sent to' => 'Nosûtît pârskatu uz',
+ 'Statements sent to printer!' => 'Nosûtît pârskatu uz drukâðanu!',
+ 'Subject' => 'Temats',
+ 'Subtotal' => 'Kopâ',
+ 'Summary' => 'Kopçjais',
+ 'Tax' => 'Nodokïi',
+ 'Tax collected' => 'Ieòemtie nodokïi',
+ 'Tax paid' => 'Samaksâtie nodokïi',
+ 'Till' => 'lîdz',
+ 'To' => 'uz',
+ 'Total' => 'Pavisam Kopâ',
+ 'Trial Balance' => 'Kontu bilance',
+ 'Vendor' => 'Pârdevçjs',
+ 'Vendor not on file!' => 'Nav tâda pârdevçja!',
+ 'Warning!' => 'Brîdinâjums!',
+ 'as at' => 'uz',
+ 'for Period' => 'periodam',
+ 'sent' => 'nosûtîts',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'turpinât' => 'continue',
+ 'e_pasts' => 'e_mail',
+ 'drukât' => 'print',
+ 'atlasît_visu' => 'select_all',
+};
+
+1;
+
diff --git a/locale/mx/COPYING b/locale/mx/COPYING
new file mode 100755
index 00000000..d4a5247f
--- /dev/null
+++ b/locale/mx/COPYING
@@ -0,0 +1,23 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2001
+#
+# Spanish texts (Mexico):
+#
+# Author: Alberto Ladron <h@grupoh.com.mx>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/mx/LANGUAGE b/locale/mx/LANGUAGE
new file mode 100755
index 00000000..3f5b7b63
--- /dev/null
+++ b/locale/mx/LANGUAGE
@@ -0,0 +1 @@
+Spanish/Mexico
diff --git a/locale/mx/Num2text b/locale/mx/Num2text
new file mode 100755
index 00000000..88ffe737
--- /dev/null
+++ b/locale/mx/Num2text
@@ -0,0 +1,212 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (C) 2002
+#
+# Author: Dieter Simader
+# Email: dsimader@sql-ledger.org
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+# Language: Spanish
+# Contributors: John Christian Stoddart
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#======================================================================
+
+
+sub init {
+ my $self = shift;
+
+ %{ $self->{numbername} } =
+ (0 => 'cero',
+ 1 => 'un',
+ '1o' => 'uno',
+ 2 => 'dos',
+ 3 => 'tres',
+ 4 => 'cuatro',
+ 5 => 'cinco',
+ 6 => 'seis',
+ 7 => 'siete',
+ 8 => 'ocho',
+ 9 => 'nueve',
+ 10 => 'diez',
+ 11 => 'once',
+ '11o' => 'once',
+ 12 => 'doce',
+ 13 => 'trece',
+ 14 => 'catorce',
+ 15 => 'quince',
+ 16 => 'dieciséis',
+ 17 => 'diecisiete',
+ 18 => 'dieciocho',
+ 19 => 'diecinueve',
+ 20 => 'veinte',
+ 21 => 'veintiún',
+ '21o' => 'veintiuno',
+ 22 => 'veintidós',
+ 23 => 'veintitrés',
+ 24 => 'veinticuatro',
+ 25 => 'veinticinco',
+ 26 => 'veintiséis',
+ 27 => 'veintisiete',
+ 28 => 'veintiocho',
+ 29 => 'veintinueve',
+ 30 => 'treinta',
+ 40 => 'cuarenta',
+ 50 => 'cincuenta',
+ 60 => 'sesenta',
+ 70 => 'setenta',
+ 80 => 'ochenta',
+ 90 => 'noventa',
+ 500 => 'quinientos',
+ 700 => 'setecientos',
+ 900 => 'novecientos',
+ 10**2 => 'ciento',
+ 10**3 => 'mil',
+ 10**6 => 'millón',
+ 10**12 => 'billón',
+ );
+
+}
+
+
+sub num2text {
+ my ($self, $amount) = @_;
+
+ return $self->{numbername}{0} unless $amount;
+
+ my @textnumber = ();
+
+ # split amount into chunks of 3
+ my @num = reverse split //, abs($amount);
+ my @numblock = ();
+ my $stripun = 0;
+ my @a = ();
+ my $i;
+
+ while (@num) {
+ @a = ();
+ for (1 .. 3) {
+ push @a, shift @num;
+ }
+ push @numblock, join / /, reverse @a;
+ }
+
+ # special case for 1000
+ if ($numblock[1] eq '1' && $numblock[0] gt '000') {
+ # remove first array element from textnumber
+ $stripun = 1;
+ }
+
+ while (@numblock) {
+
+ $i = $#numblock;
+ @num = split //, $numblock[$i];
+
+ $numblock[$i] *= 1;
+
+ if ($numblock[$i] == 0) {
+ pop @numblock;
+ next;
+ }
+
+ if ($numblock[$i] > 99) {
+ if ($num[0] == 1) {
+ push @textnumber, $self->{numbername}{10**2};
+ } else {
+ # special case for 500, 700, 900
+ if (grep /$num[0]/, (5,7,9)) {
+ push @textnumber, $self->{numbername}{"${num[0]}00"};
+
+ } else {
+
+ # the one from hundreds, append cientos
+ push @textnumber, $self->{numbername}{$num[0]}.$self->{numbername}{10**2}.'s';
+
+ }
+ }
+
+ # reduce numblock
+ $numblock[$i] -= $num[0] * 100;
+ }
+
+ if ($numblock[$i] > 9) {
+ # tens
+ push @textnumber, $self->format_ten($numblock[$i], $i);
+ } elsif ($numblock[$i] > 0) {
+ # ones
+ $num = $numblock[$i];
+ $num .= 'o' if ($num == 1 && $i == 0);
+ push @textnumber, $self->{numbername}{$num};
+ }
+
+ # add thousand, million
+ if ($i) {
+ $num = 10**($i * 3);
+ if ($numblock[$i] > 1) {
+ if ($i == 2 || $i == 4) {
+ $a = $self->{numbername}{$num}."es";
+ $a =~ s/ó/o/;
+ push @textnumber, $a;
+ } elsif ($i == 3) {
+ $num = 10**($i * 2);
+ $a = "$self->{10**3} $self->{numbername}{$num}"."es";
+ $a =~ s/ó/o/;
+ push @textnumber, $a;
+ } else {
+ if ($i == 1) {
+ push @textnumber, $self->{numbername}{$num};
+ } else {
+ push @textnumber, $self->{numbername}{$num}.'s';
+ }
+ }
+ } else {
+ push @textnumber, $self->{numbername}{$num};
+ }
+ }
+
+ pop @numblock;
+
+ }
+
+ shift @textnumber if $stripun;
+
+ join ' ', @textnumber;
+
+}
+
+
+sub format_ten {
+ my ($self, $amount, $i) = @_;
+
+ my $textnumber = "";
+ my @num = split //, $amount;
+
+ if ($amount > 30) {
+ $textnumber = $self->{numbername}{$num[0]*10};
+ $amount = $num[1];
+ } else {
+ $amount .= 'o' if ($num[1] == 1 && $i == 0);
+ $textnumber = $self->{numbername}{$amount};
+ $amount = 0;
+ }
+
+ $textnumber .= " y ".$self->{numbername}{$amount} if $amount;
+
+ $textnumber;
+
+}
+
+
+1;
+
diff --git a/locale/mx/aa b/locale/mx/aa
new file mode 100755
index 00000000..a16ded83
--- /dev/null
+++ b/locale/mx/aa
@@ -0,0 +1,156 @@
+$self{texts} = {
+ 'AP Outstanding' => 'CxP pendientes',
+ 'AP Transaction' => 'Movimiento CxP',
+ 'AP Transactions' => 'Movimientos de CxP',
+ 'AR Outstanding' => 'CxC pendientes',
+ 'AR Transaction' => 'Movimiento CxC',
+ 'AR Transactions' => 'Movimientos de Ctas. x cobrar',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de contabilidad',
+ 'Add AP Transaction' => 'Nueva Asiento de CxP',
+ 'Add AR Transaction' => 'Nueva Asiento de CxC',
+ 'Amount' => 'Importe',
+ 'Amount Due' => 'Saldo',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => '¿Está Ud. seguro de querer borrar el movimiento',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Cannot delete transaction!' => '¡No se puede borrar el movimiento!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago para un periodo cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar un movimiento para un periodo cerrado!',
+ 'Cannot post transaction!' => '¡No se puede registrar el movimiento!',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Cerrada',
+ 'Confirm!' => '¡Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Abono',
+ 'Credit Limit' => 'Límite de crédito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Date' => 'Fecha',
+ 'Date Paid' => 'Fecha de pago',
+ 'Debit' => 'Cargo',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'Due Date missing!' => 'Falta fecha de vencimiento!',
+ 'Edit AP Transaction' => 'Modificar Asiento de CxP',
+ 'Edit AR Transaction' => 'Modificar Asiento de CxC',
+ 'Employee' => 'Empleado',
+ 'Exch' => 'T. de C.',
+ 'Exchange Rate' => 'Tipo de cambio',
+ 'Exchange rate for payment missing!' => '¡Falta el tipo de cambio para el pago!',
+ 'Exchange rate missing!' => '¡Falta el tipo de cambio!',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'De',
+ 'ID' => 'Id.',
+ 'Include in Report' => 'Incluir en reporte',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => '¡Falta la fecha de la factura!',
+ 'Invoice Number' => 'Número de factura',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Manager' => 'Administrador',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Nota',
+ 'Month' => 'Mes',
+ 'No.' => 'Num.',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Number' => 'Número de la orden',
+ 'Paid' => 'Pagado',
+ 'Payment date missing!' => '¡Falta la fecha del pago!',
+ 'Payments' => 'Pagos',
+ 'Period' => 'Período',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Print' => 'Vista Preliminar',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Project' => 'Proyecto',
+ 'Quarter' => 'Trimestre',
+ 'Receipt' => 'Cobro',
+ 'Remaining' => 'Disponible',
+ 'Sales Invoice.' => 'Factura de venta.',
+ 'Salesperson' => 'Vendedor',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Ship to' => 'Enviar a',
+ 'Ship via' => 'Enviar por',
+ 'Shipping Point' => 'Punto de envío',
+ 'Source' => 'Referencia',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resumen',
+ 'Tax' => 'Impuesto',
+ 'Tax Included' => 'Impuesto Incluido',
+ 'Till' => 'Hasta',
+ 'To' => 'A',
+ 'Total' => 'Total',
+ 'Transaction' => 'Asiento',
+ 'Transaction deleted!' => '¡Movimiento borrado!',
+ 'Transaction posted!' => '¡Movimiento registrado!',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice.' => 'Factura de compra.',
+ 'Vendor missing!' => '¡Falta el proveedor!',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'movimiento_cxp' => 'ap_transaction',
+ 'movimiento_cxc' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'vista_preliminar' => 'print',
+ 'imprimir_y_registrar' => 'print_and_post',
+ 'factura_de_venta_' => 'sales_invoice_',
+ 'enviar_a' => 'ship_to',
+ 'actualizar' => 'update',
+ 'factura_de_compra_' => 'vendor_invoice_',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/mx/admin b/locale/mx/admin
new file mode 100755
index 00000000..696b8172
--- /dev/null
+++ b/locale/mx/admin
@@ -0,0 +1,143 @@
+$self{texts} = {
+ 'Access Control' => 'Control de acceso',
+ 'Accounting' => 'Contabilidad',
+ 'Add User' => 'Nuevo usuario',
+ 'Address' => 'Dirección',
+ 'Administration' => 'Administración',
+ 'Administrator' => 'Administrador',
+ 'All Datasets up to date!' => '¡Todos los conjunto de datos están actualizados!',
+ 'Cannot create Lock!' => '¡No se puede crear el archivo de bloqueo!',
+ 'Change Admin Password' => 'Cambiar la contraseña del administrador',
+ 'Change Password' => 'Cambiar contraseña',
+ 'Click on login name to edit!' => '¡Seleccione el nombre del usuario que desea modificar!',
+ 'Company' => 'Empresa',
+ 'Confirm' => '¡Confirmar',
+ 'Connect to' => 'Conectar a',
+ 'Continue' => 'Continuar',
+ 'Create Chart of Accounts' => 'Crear catálogo de cuentas',
+ 'Create Dataset' => 'Crear conjunto de datos',
+ 'DBI not installed!' => '¡DBI no está instalado!',
+ 'Database' => 'Base de datos',
+ 'Database Administration' => 'Administración de base de datos',
+ 'Database Driver not checked!' => '¡No selecciono un manejador de bases de datos!',
+ 'Database User missing!' => '¡Falta el usuario de base de datos!',
+ 'Dataset' => 'Conjunto de datos',
+ 'Dataset missing!' => '¡Falta el conjunto de datos!',
+ 'Dataset updated!' => '¡Conjunto de datos actualizado!',
+ 'Date Format' => 'Formato de fecha',
+ 'Delete' => 'Borrar',
+ 'Delete Dataset' => 'Borrar conjunto de datos',
+ 'Directory' => 'Directorio',
+ 'Driver' => 'Manejador',
+ 'Dropdown Limit' => 'Limite en listas desplegables',
+ 'E-mail' => 'Correo-e',
+ 'Edit User' => 'Modificar usuario',
+ 'Existing Datasets' => 'Conjuntos de datos existentes',
+ 'Fax' => 'Fax',
+ 'Host' => 'Servidor',
+ 'Hostname missing!' => '¡Falta el nombre del servidor',
+ 'Language' => 'Lenguaje',
+ 'Lock System' => 'Bloquear el sistema',
+ 'Lockfile created!' => '¡Archivo de bloqueo creado!',
+ 'Lockfile removed!' => '¡Archivo de bloqueo borrado!',
+ 'Login' => 'Entrada al sistema',
+ 'Login name missing!' => '¡Falta el nombre del usuario!',
+ 'Logout' => 'Salida del sistema',
+ 'Manager' => 'Administrador',
+ 'Menu Width' => 'Anchura del menú',
+ 'Multibyte Encoding' => 'Codificación multibyte',
+ 'Name' => 'Nombre',
+ 'New Templates' => 'Nuevas plantillas',
+ 'No Database Drivers available!' => '¡No hay manejadores de bases de datos disponibles!',
+ 'No Dataset selected!' => '¡No ha seleccionado el conjunto de datos!',
+ 'Nothing to delete!' => '¡Nada que borrar!',
+ 'Number Format' => 'Formato de número',
+ 'Oracle Database Administration' => 'Administración de base de datos Oracle',
+ 'Password' => 'Contraseña',
+ 'Password changed!' => '¡Contraseña cambiada!',
+ 'Passwords do not match!' => '¡Contraseñas son incorrectas!',
+ 'Pg Database Administration' => 'Administración de base de datos PostgreSQL',
+ 'PgPP Database Administration' => 'Administración de base de datos PgPP',
+ 'Phone' => 'Teléfono',
+ 'Port' => 'Puerto',
+ 'Port missing!' => '¡Falta el puerto!',
+ 'Printer' => 'Impresora',
+ 'Save' => 'Guardar',
+ 'Session Timeout' => '¡Sesión Caducó!',
+ 'Session expired!' => '¡Sesión Expiró!',
+ 'Setup Templates' => 'Plantillas de inicio',
+ 'Signature' => 'Firma',
+ 'Stylesheet' => 'Hoja de estilos',
+ 'Supervisor' => 'Supervisor',
+ 'Templates' => 'Plantillas',
+ 'The following Datasets are not in use and can be deleted' => 'Los siguientes conjuntos de datos no están en uso y pueden ser borrados',
+ 'The following Datasets need to be updated' => 'Es necesario actualizar los siguientes conjuntos de datos',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Esta es una verificación preliminar de fuentes existentes. ¡Nada será creado o borrado en esta etapa!',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Para agregar un usuario a un grupo, selecciónelo, cambie el nombre de usuario y guarde los cambios. Un nuevo usuario, con las mismas variables se guardará con el nuevo nombre de usuario.',
+ 'Unlock System' => 'Desbloquear el sistema',
+ 'Update Dataset' => 'Actualizar conjunto de datos',
+ 'Use Templates' => 'Usar Plantillas',
+ 'User' => 'Usuario',
+ 'User deleted!' => '¡Usuario borrado!',
+ 'User saved!' => '¡Usuario guardado!',
+ 'Version' => 'Versión',
+ 'You are logged out' => '¡Ud. está desconectado del sistema!',
+ 'does not exist' => 'no existe',
+ 'is already a member!' => '¡ya es miembro!',
+ 'localhost' => 'localhost',
+ 'locked!' => '¡bloqueado!',
+ 'successfully created!' => '¡creado con éxito!',
+ 'successfully deleted!' => '¡borrado con éxito!',
+ 'website' => 'sitio web',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'nuevo_usuario' => 'add_user',
+ 'cambiar_la_contraseña_del_administrador' => 'change_admin_password',
+ 'cambiar_contraseña' => 'change_password',
+ 'continuar' => 'continue',
+ 'crear_conjunto_de_datos' => 'create_dataset',
+ 'borrar' => 'delete',
+ 'borrar_conjunto_de_datos' => 'delete_dataset',
+ 'bloquear_el_sistema' => 'lock_system',
+ 'entrada_al_sistema' => 'login',
+ 'salida_del_sistema' => 'logout',
+ 'administración_de_base_de_datos_oracle' => 'oracle_database_administration',
+ 'administración_de_base_de_datos_postgresql' => 'pg_database_administration',
+ 'administración_de_base_de_datos_pgpp' => 'pgpp_database_administration',
+ 'guardar' => 'save',
+ 'desbloquear_el_sistema' => 'unlock_system',
+ 'actualizar_conjunto_de_datos' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/mx/all b/locale/mx/all
new file mode 100755
index 00000000..e2407da1
--- /dev/null
+++ b/locale/mx/all
@@ -0,0 +1,894 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+
+$self{texts} = {
+ 'A' => 'E',
+ 'AP' => 'Ctas. x pagar',
+ 'AP Aging' => 'Vencimiento CxP',
+ 'AP Outstanding' => 'CxP pendientes',
+ 'AP Transaction' => 'Movimiento CxP',
+ 'AP Transactions' => 'Movimientos de CxP',
+ 'AR' => 'Ctas. x cobrar',
+ 'AR Aging' => 'Vencimiento CxC',
+ 'AR Outstanding' => 'CxC pendientes',
+ 'AR Transaction' => 'Movimiento CxC',
+ 'AR Transactions' => 'Movimientos de Ctas. x cobrar',
+ 'AR/AP' => '',
+ 'About' => 'Acerca de',
+ 'Above' => 'Sobre de',
+ 'Access Control' => 'Control de acceso',
+ 'Access Denied!' => '',
+ 'Account' => 'Cuenta',
+ 'Account Number' => 'Número de cuenta',
+ 'Account Number missing!' => '¡Falta el número de cuenta!',
+ 'Account Type' => 'Tipo de cuenta',
+ 'Account Type missing!' => '¡Falta el tipo de cuenta!',
+ 'Account deleted!' => '¡Cuenta eliminada!',
+ 'Account does not exist!' => '¡El número de cuenta no existe!',
+ 'Account saved!' => 'Cuenta guardada!',
+ 'Accounting' => 'Contabilidad',
+ 'Accounting Menu' => 'Menú de contabilidad',
+ 'Accounts' => 'Cuentas',
+ 'Accrual' => 'Acumulado',
+ 'Activate Audit trail' => 'Activar pistas de auditoría',
+ 'Activate Audit trails' => 'Activar pistas de auditoría',
+ 'Active' => 'Activa',
+ 'Add' => 'Crear',
+ 'Add AP Transaction' => 'Nueva Asiento de CxP',
+ 'Add AR Transaction' => 'Nueva Asiento de CxC',
+ 'Add Account' => 'Nueva cuenta',
+ 'Add Assembly' => 'Nuevo ensamblaje',
+ 'Add Business' => 'Nuevo negocio',
+ 'Add Cash Transfer Transaction' => 'Nuevo movimiento de transferencia',
+ 'Add Customer' => 'Nuevo cliente',
+ 'Add Deduction' => 'Nueva deducción',
+ 'Add Department' => 'Nuevo departamento',
+ 'Add Employee' => 'Nuevo empleado',
+ 'Add Exchange Rate' => 'Nuevo tipo de cambio',
+ 'Add GIFI' => 'Nuevo GIFI',
+ 'Add General Ledger Transaction' => 'Nuevo movimiento de mayor',
+ 'Add Group' => 'Nuevo grupo',
+ 'Add Job' => '',
+ 'Add Labor/Overhead' => 'Nueva mano de obra/indirecto',
+ 'Add Language' => 'Nuevo lenguaje',
+ 'Add POS Invoice' => 'Nueva factura de Pto. de Vta.',
+ 'Add Part' => 'Nueva parte',
+ 'Add Pricegroup' => 'Nuevo grupo de precios',
+ 'Add Project' => 'Nuevo proyecto',
+ 'Add Purchase Order' => 'Nueva orden de compra',
+ 'Add Quotation' => 'Nueva cotización',
+ 'Add Request for Quotation' => 'Nueva solicitud de cotización',
+ 'Add SIC' => 'Nuevo SIC',
+ 'Add Sales Invoice' => 'Nueva factura de venta',
+ 'Add Sales Order' => 'Nueva orden de venta',
+ 'Add Service' => 'Nuevo servicio',
+ 'Add Timecard' => '',
+ 'Add Transaction' => 'Nuevo movimiento',
+ 'Add User' => 'Nuevo usuario',
+ 'Add Vendor' => 'Nuevo proveedor',
+ 'Add Vendor Invoice' => 'Nueva factura de compra',
+ 'Add Warehouse' => 'Nuevo almacén',
+ 'Address' => 'Dirección',
+ 'Administration' => 'Administración',
+ 'Administrator' => 'Administrador',
+ 'After Deduction' => 'Después de deducciones',
+ 'All' => 'Todos',
+ 'All Accounts' => 'Todas las cuentas',
+ 'All Datasets up to date!' => '¡Todos los conjunto de datos están actualizados!',
+ 'All Items' => 'Todas las partidas',
+ 'Allowances' => 'Prestaciones',
+ 'Amount' => 'Importe',
+ 'Amount Due' => 'Saldo',
+ 'Amount missing!' => '¡Falta el importe!',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => '¿Está Ud. seguro de querer borrar la factura No.:',
+ 'Are you sure you want to delete Order Number' => '¿Está Ud. seguro de querer borrar la orden No.:',
+ 'Are you sure you want to delete Quotation Number' => '¿Está Ud. seguro de querer borrar la cotización No.:',
+ 'Are you sure you want to delete Timecard for' => '',
+ 'Are you sure you want to delete Transaction' => '¿Está Ud. seguro de querer borrar el movimiento',
+ 'Are you sure you want to remove the marked entries from the queue?' => '¿Está Ud. seguro de querer borrar las entradas seleccionadas de la fila?',
+ 'Assemblies' => 'Ensamblajes',
+ 'Assemblies restocked!' => 'Ensamblajes inventariados!',
+ 'Assembly' => 'Ensamblaje',
+ 'Assembly stocked!' => '',
+ 'Asset' => 'Activo',
+ 'Attachment' => 'Anexo',
+ 'Audit Control' => 'Control de auditoría',
+ 'Audit trail disabled' => 'Pistas de auditoría desactivadas',
+ 'Audit trail enabled' => 'Pistas de auditoría activadas',
+ 'Audit trail removed up to' => 'Pistas de auditoría eliminadas hasta',
+ 'Audit trails disabled' => 'Pistas de auditoría desactivadas',
+ 'Audit trails enabled' => 'Pistas de auditoría activadas',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Average Cost' => '',
+ 'Avg Cost' => '',
+ 'BIC' => 'BIC',
+ 'BOM' => 'L. de Emp.',
+ 'Backup' => 'Respaldo',
+ 'Backup sent to' => 'Respaldo enviado a',
+ 'Balance' => 'Saldo',
+ 'Balance Sheet' => 'Balance general',
+ 'Based on' => 'Basado en',
+ 'Bcc' => 'Bcc',
+ 'Before Deduction' => 'Antes de deducciones',
+ 'Beginning Balance' => 'Balance inicial',
+ 'Below' => 'Debajo de',
+ 'Billing Address' => 'Dirección de facturación',
+ 'Bin' => 'Ubicación',
+ 'Bin List' => 'Lista de ubicaciones',
+ 'Bin Lists' => 'Listas de ubicaciones',
+ 'Books are open' => 'Los libros están abiertos',
+ 'Break' => 'Romper',
+ 'Business' => 'Negocio',
+ 'Business Number' => 'RFC',
+ 'Business deleted!' => 'Negocio borrado',
+ 'Business saved!' => '¡Negocio guardado!',
+ 'C' => 'C',
+ 'COGS' => 'Costo de Ventas',
+ 'COGS account does not exist!' => '',
+ 'Cannot add timecard for a completed job!' => '',
+ 'Cannot change timecard for a completed job!' => '',
+ 'Cannot create Assembly' => '',
+ 'Cannot create Labor' => '',
+ 'Cannot create Lock!' => '¡No se puede crear el archivo de bloqueo!',
+ 'Cannot create Part' => '',
+ 'Cannot create Service' => '',
+ 'Cannot delete Timecard!' => '',
+ 'Cannot delete account!' => '¡No se puede borrar la cuenta!',
+ 'Cannot delete customer!' => '¡No se puede borrar el cliente!',
+ 'Cannot delete default account!' => '¡No se puede borrar la cuenta por defecto!',
+ 'Cannot delete invoice!' => '¡No se puede borrar la factura!',
+ 'Cannot delete item!' => '¡No se puede borrar el artículo!',
+ 'Cannot delete order!' => '¡No se puede borrar la orden!',
+ 'Cannot delete quotation!' => '¡No se puede borrar la cotización!',
+ 'Cannot delete transaction!' => '¡No se puede borrar el movimiento!',
+ 'Cannot delete vendor!' => '¡No se puede borrar el proveedor!',
+ 'Cannot post Payment!' => '¡No se puede registrar el pago!',
+ 'Cannot post Receipt!' => '¡No se puede registrar el recibo!',
+ 'Cannot post invoice for a closed period!' => '¡No se puede registrar una factura para un periodo cerrado!',
+ 'Cannot post invoice!' => '¡No se puede registrar la factura!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago para un periodo cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar un movimiento para un periodo cerrado!',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => '',
+ 'Cannot post transaction!' => '¡No se puede registrar el movimiento!',
+ 'Cannot remove files!' => '¡No se pueden borrar los archivos!',
+ 'Cannot save account!' => '¡No se puede guardar la cuenta!',
+ 'Cannot save defaults!' => '¡No se pueden borrar los defults!',
+ 'Cannot save order!' => '¡No se puede guardar la orden!',
+ 'Cannot save preferences!' => '¡No se puede guardar preferencias!',
+ 'Cannot save quotation!' => '¡No se puede guardar la cotización!',
+ 'Cannot save timecard for a closed period!' => '',
+ 'Cannot save timecard!' => '',
+ 'Cannot set account for more than one of AR, AP or IC' => '¡No se puede configurar una cuenta para mas de una de las opciones (AR, AP o IC)',
+ 'Cannot set multiple options for' => 'No se pueden configurar opciones múltiples para',
+ 'Cannot set multiple options for Item' => '',
+ 'Cannot stock Assembly!' => '',
+ 'Cannot stock assemblies!' => '¡No se puede guardar e ensamblaje!',
+ 'Cash' => 'Bancos',
+ 'Cc' => 'Cc',
+ 'Change' => 'Cambiar',
+ 'Change Admin Password' => 'Cambiar la contraseña del administrador',
+ 'Change Password' => 'Cambiar contraseña',
+ 'Charge' => '',
+ 'Chart of Accounts' => 'Catálogo de cuentas',
+ 'Check' => 'Cheque',
+ 'Check Inventory' => 'Verificar inventario',
+ 'Checks' => 'Cheques',
+ 'City' => 'Cuidad',
+ 'Cleared' => 'Aclarado',
+ 'Click on login name to edit!' => '¡Seleccione el nombre del usuario que desea modificar!',
+ 'Clocked' => '',
+ 'Close Books up to' => 'Cerrar libros al',
+ 'Closed' => 'Cerrada',
+ 'Code' => 'Código',
+ 'Code missing!' => '¡Falta el código!',
+ 'Company' => 'Empresa',
+ 'Company Name' => 'Nombre de la empresa',
+ 'Compare to' => 'Comparar al',
+ 'Completed' => '',
+ 'Components' => 'Componentes',
+ 'Confirm' => '¡Confirmar',
+ 'Confirm!' => '¡Confirmar!',
+ 'Connect to' => 'Conectar a',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Contra' => 'Contra',
+ 'Copies' => 'Copias',
+ 'Copy to COA' => 'Copiar al cat. de ctas.',
+ 'Cost' => 'Costo',
+ 'Cost Center' => 'Centro de costos',
+ 'Could not save pricelist!' => '¡No se pudo guradar lista de precios!',
+ 'Could not save!' => '¡No se pudo guardar!',
+ 'Could not transfer Inventory!' => '¡No se pudo transferir el inventario',
+ 'Country' => 'País',
+ 'Create Chart of Accounts' => 'Crear catálogo de cuentas',
+ 'Create Dataset' => 'Crear conjunto de datos',
+ 'Credit' => 'Abono',
+ 'Credit Limit' => 'Límite de crédito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Current Earnings' => 'Resultado',
+ 'Customer' => 'Cliente',
+ 'Customer History' => 'Historia del cliente',
+ 'Customer Number' => 'Número de cliente',
+ 'Customer deleted!' => '¡Cliente borrado!',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no está registrado!',
+ 'Customer saved!' => '¡Cliente guardado!',
+ 'Customers' => 'Clientes',
+ 'DBI not installed!' => '¡DBI no está instalado!',
+ 'DOB' => 'Fecha de Nacimiento',
+ 'Database' => 'Base de datos',
+ 'Database Administration' => 'Administración de base de datos',
+ 'Database Driver not checked!' => '¡No selecciono un manejador de bases de datos!',
+ 'Database Host' => 'Servidor de base de datos',
+ 'Database User missing!' => '¡Falta el usuario de base de datos!',
+ 'Dataset' => 'Conjunto de datos',
+ 'Dataset is newer than version!' => '¡El conjunto de datos es mas reciente que la versión del programa!',
+ 'Dataset missing!' => '¡Falta el conjunto de datos!',
+ 'Dataset updated!' => '¡Conjunto de datos actualizado!',
+ 'Date' => 'Fecha',
+ 'Date Format' => 'Formato de fecha',
+ 'Date Paid' => 'Fecha de pago',
+ 'Date Received' => 'Fecha de recibo',
+ 'Date missing!' => '¡Falta la fecha!',
+ 'Date received missing!' => '¡Falta la fecha de recibo!',
+ 'Date worked' => '',
+ 'Day' => '',
+ 'Day(s)' => '',
+ 'Days' => '',
+ 'Debit' => 'Cargo',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Decimalplaces' => 'No. de decimales',
+ 'Decrease' => 'Reducción',
+ 'Deduct after' => 'Deducir después',
+ 'Deduction deleted!' => '¡Deducción borrada!',
+ 'Deduction saved!' => '¡Deducción guardada!',
+ 'Deductions' => 'Decucciones',
+ 'Default Template' => '',
+ 'Defaults' => 'Defaults',
+ 'Defaults saved!' => '¡Defaults guardados!',
+ 'Delete' => 'Borrar',
+ 'Delete Account' => 'Borrar cuenta',
+ 'Delete Dataset' => 'Borrar conjunto de datos',
+ 'Delete Schedule' => '',
+ 'Deleting a language will also delete the templates for the language' => '',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Department' => 'Departamento',
+ 'Department deleted!' => '¡Departamento borrado!',
+ 'Department saved!' => '¡Departamento guardado!',
+ 'Departments' => 'Departamentos',
+ 'Deposit' => 'Depósito',
+ 'Description' => 'Descripción',
+ 'Description Translations' => 'Traducciones de la descripción',
+ 'Description missing!' => '¡Falta la descripción!',
+ 'Detail' => 'Detalle',
+ 'Difference' => 'Diferencia',
+ 'Directory' => 'Directorio',
+ 'Discount' => 'Descuento',
+ 'Done' => 'Listo',
+ 'Drawing' => 'Plano',
+ 'Driver' => 'Manejador',
+ 'Dropdown Limit' => 'Limite en listas desplegables',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'Due Date missing!' => 'Falta fecha de vencimiento!',
+ 'E-mail' => 'Correo-e',
+ 'E-mail Statement to' => 'Enviar estado de cuenta por correo-e a',
+ 'E-mail address missing!' => '¡Falta la dirección de correo-e!',
+ 'E-mail message' => '',
+ 'E-mailed' => 'Enviado por correo-e',
+ 'Edit' => 'Modificar',
+ 'Edit AP Transaction' => 'Modificar Asiento de CxP',
+ 'Edit AR Transaction' => 'Modificar Asiento de CxC',
+ 'Edit Account' => 'Modificar cuenta',
+ 'Edit Assembly' => 'Modificar ensamblaje',
+ 'Edit Business' => 'Modificar negocio',
+ 'Edit Cash Transfer Transaction' => 'Modificar transferencia',
+ 'Edit Customer' => 'Modificar cliente',
+ 'Edit Deduction' => 'Modificar deducción',
+ 'Edit Department' => 'Modificar departamento',
+ 'Edit Description Translations' => 'Modificar traducciones de descripción',
+ 'Edit Employee' => 'Modificar empleado',
+ 'Edit GIFI' => 'Modificar GIFI',
+ 'Edit General Ledger Transaction' => 'Modificar movimiento de mayor',
+ 'Edit Group' => 'Modificar grupo',
+ 'Edit Job' => '',
+ 'Edit Labor/Overhead' => 'Modificar mano de obra/indirecto',
+ 'Edit Language' => 'Modificar lenguaje',
+ 'Edit POS Invoice' => 'Modificar ticket',
+ 'Edit Part' => 'Modificar parte',
+ 'Edit Preferences for' => 'Modificar preferencias para',
+ 'Edit Pricegroup' => 'Modificar precio de grupo',
+ 'Edit Project' => 'Modificar proyecto',
+ 'Edit Purchase Order' => 'Modificar orden de compra',
+ 'Edit Quotation' => 'Modificar cotización',
+ 'Edit Request for Quotation' => 'Modificar solicitud de cotización',
+ 'Edit SIC' => 'Modificar SIC',
+ 'Edit Sales Invoice' => 'Modificar factura de venta',
+ 'Edit Sales Order' => 'Modificar orden de venta',
+ 'Edit Service' => 'Modificar servicio',
+ 'Edit Template' => 'Modificar plantilla',
+ 'Edit Timecard' => '',
+ 'Edit User' => 'Modificar usuario',
+ 'Edit Vendor' => 'Modificar proveedor',
+ 'Edit Vendor Invoice' => 'Modificar factura de compra',
+ 'Edit Warehouse' => 'Modificar almacén',
+ 'Employee' => 'Empleado',
+ 'Employee Name' => 'Nombre del empleado',
+ 'Employee Number' => 'Número de Empleado',
+ 'Employee deleted!' => '¡Empleado borrado!',
+ 'Employee pays' => 'El empleado paga',
+ 'Employee saved!' => '¡Empleado guardado!',
+ 'Employees' => 'Empleados',
+ 'Employer' => 'Patrón',
+ 'Employer pays' => 'El patrón paga',
+ 'Enddate' => 'Fecha final',
+ 'Ends' => '',
+ 'Enforce transaction reversal for all dates' => 'Activar la reversión de movimientos para todas las fechas',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Proporcionar hasta tres letras separadas por dos puntos (ej.: MXP:USD) para las monedas local y extranjeras',
+ 'Equity' => 'Capital',
+ 'Every' => '',
+ 'Excempt age <' => 'Edad de Excención <',
+ 'Exch' => 'T. de C.',
+ 'Exchange Rate' => 'Tipo de cambio',
+ 'Exchange rate for payment missing!' => '¡Falta el tipo de cambio para el pago!',
+ 'Exchange rate missing!' => '¡Falta el tipo de cambio!',
+ 'Existing Datasets' => 'Conjuntos de datos existentes',
+ 'Expense' => 'Egreso',
+ 'Expense account does not exist!' => '',
+ 'Expense/Asset' => 'Egreso/Activo',
+ 'Extended' => 'Extendido',
+ 'FX' => 'FX',
+ 'Failed to save order!' => '',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'For' => '',
+ 'Foreign Exchange Gain' => 'Utilidad cambiaria',
+ 'Foreign Exchange Loss' => 'Perdida cambiaria',
+ 'Friday' => '',
+ 'From' => 'De',
+ 'From Warehouse' => '',
+ 'GIFI' => 'Código GIFI',
+ 'GIFI deleted!' => '¡GIFI borrado!',
+ 'GIFI missing!' => '¡Falta el código GIFI',
+ 'GIFI saved!' => '¡GIFI guardado!',
+ 'GL' => '',
+ 'GL Reference Number' => '',
+ 'GL Transaction' => 'Movimiento de mayor',
+ 'General Ledger' => 'Mayor',
+ 'Generate' => '',
+ 'Generate Orders' => '',
+ 'Generate Purchase Orders' => '',
+ 'Generate Purchase Orders from Sales Order' => '',
+ 'Generate Sales Order' => '',
+ 'Generate Sales Order from Purchase Orders' => '',
+ 'Generate Sales Orders' => '',
+ 'Goods & Services' => 'Partes y servicios',
+ 'Group' => 'Grupo',
+ 'Group Items' => 'Componentes de grupo',
+ 'Group Translations' => 'Traducciones de grupo',
+ 'Group deleted!' => '¡Grupo borrado!',
+ 'Group missing!' => '¡Falta el grupo!',
+ 'Group saved!' => '¡Grupo guardado!',
+ 'Groups' => 'Grupos',
+ 'HR' => 'RH',
+ 'HTML Templates' => 'Plantillas HTML',
+ 'Heading' => 'Encabezado',
+ 'History' => 'Historia',
+ 'Home Phone' => 'Teléfono de casa',
+ 'Host' => 'Servidor',
+ 'Hostname missing!' => '¡Falta el nombre del servidor',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'Id.',
+ 'Image' => 'Imagen',
+ 'In-line' => 'En linea',
+ 'Inactive' => '',
+ 'Include Exchange Rate Difference' => 'Incluír la diferencia por tipo de cambio',
+ 'Include Payment' => '',
+ 'Include in Report' => 'Incluir en reporte',
+ 'Include in drop-down menus' => 'Incluir en listas desplegables',
+ 'Income' => 'Ingreso',
+ 'Income Statement' => 'Estado de resultados',
+ 'Income account does not exist!' => '',
+ 'Incorrect Dataset version!' => '¡La Versión del conjunto de datos es incorrecta!',
+ 'Increase' => 'Aumento',
+ 'Individual Items' => 'Artículos individuales',
+ 'Internal Notes' => 'Notas internas',
+ 'Inventory' => 'Inventario',
+ 'Inventory account does not exist!' => '',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => '¡Las existencias deben ser cero antes de poder cambiar el ensamblaje a obsoleto!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => '¡Las existencias deben ser cero antes de poder cambiar esta parte a obsoleta!',
+ 'Inventory saved!' => '¡Existencias guardadas!',
+ 'Inventory transferred!' => '¡Existencias transferidas!',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => '¡Falta la fecha de la factura!',
+ 'Invoice Number' => 'Número de factura',
+ 'Invoice Number missing!' => 'Falta el número de factura!',
+ 'Invoice deleted!' => '¡Factura borrada!',
+ 'Invoices' => 'Facturas',
+ 'Is this a summary account to record' => 'Es ésta una cuenta de resumen a registrar',
+ 'Item already on pricelist!' => '¡Artículo está incluido en la lista de precios!',
+ 'Item deleted!' => '¡Articulo borrado!',
+ 'Item not on file!' => '¡El artículo no está registrado!',
+ 'Items' => 'Partidas',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Job' => '',
+ 'Job Name' => '',
+ 'Job Number' => '',
+ 'Job Number missing!' => '',
+ 'Job deleted!' => '',
+ 'Job saved!' => '',
+ 'Jobs' => '',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'LaTeX Templates' => 'Plantillas LaTeX',
+ 'Labor Code' => '',
+ 'Labor/Overhead' => 'Mano de obra/Indirecto',
+ 'Language' => 'Lenguaje',
+ 'Language deleted!' => '¡Lenguaje borrado!',
+ 'Language saved!' => '¡Lenguaje guardado!',
+ 'Languages' => 'Lenguajes',
+ 'Languages not defined!' => '¡Lenguajes no definido!',
+ 'Last Cost' => '',
+ 'Last Numbers & Default Accounts' => 'Últimos números y cuentas de default',
+ 'Lead' => '',
+ 'Leadtime' => 'Duración del proceso',
+ 'Leave host and port field empty unless you want to make a remote connection.' => 'Deje los campos de servidor y puerto vacíos a menos que quiera hacer una conexión remota',
+ 'Liability' => 'Pasivo',
+ 'Licensed to' => 'Licenciado a',
+ 'Line Total' => 'Existencia',
+ 'Link' => 'Enlace',
+ 'Link Accounts' => 'Enlazar cuentas',
+ 'List' => 'Lista',
+ 'List Accounts' => 'Enlistar cuentas',
+ 'List Businesses' => 'Enlistar negocios',
+ 'List Departments' => 'Enlistar departamentos',
+ 'List GIFI' => 'Enlistar GIFI',
+ 'List Languages' => 'Enlistar lenguajes',
+ 'List Price' => 'Precio de lista',
+ 'List Projects' => 'Enlistar proyectos',
+ 'List SIC' => 'Enlistar SIC',
+ 'List Transactions' => 'Enlistar movimientos',
+ 'List Warehouses' => 'Enlistar almacenes',
+ 'Lock System' => 'Bloquear el sistema',
+ 'Lockfile created!' => '¡Archivo de bloqueo creado!',
+ 'Lockfile removed!' => '¡Archivo de bloqueo borrado!',
+ 'Login' => 'Entrada al sistema',
+ 'Login name missing!' => '¡Falta el nombre del usuario!',
+ 'Logout' => 'Salida del sistema',
+ 'Make' => 'Marca',
+ 'Manager' => 'Administrador',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'Marked entries printed!' => '¡Entradas seleccionadas impresas!',
+ 'Markup' => 'Marcar',
+ 'Maximum' => 'Máximo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Nota',
+ 'Menu Width' => 'Anchura del menú',
+ 'Message' => 'Mensaje',
+ 'Method' => 'Método',
+ 'Microfiche' => 'Microficha',
+ 'Model' => 'Modelo',
+ 'Monday' => '',
+ 'Month' => 'Mes',
+ 'Month(s)' => '',
+ 'Months' => '',
+ 'Multibyte Encoding' => 'Codificación multibyte',
+ 'N/A' => 'N/A',
+ 'Name' => 'Nombre',
+ 'Name missing!' => '¡Falta el nombre!',
+ 'New Templates' => 'Nuevas plantillas',
+ 'New Window' => 'Nueva Ventana',
+ 'Next' => '',
+ 'Next Date' => '',
+ 'Next Number' => '',
+ 'No' => 'No',
+ 'No Database Drivers available!' => '¡No hay manejadores de bases de datos disponibles!',
+ 'No Dataset selected!' => '¡No ha seleccionado el conjunto de datos!',
+ 'No Employees on file!' => '',
+ 'No Labor codes on file!' => '',
+ 'No email address for' => 'Falta dirección de correo-e para',
+ 'No open Jobs!' => '',
+ 'No open Projects!' => '',
+ 'No.' => 'Num.',
+ 'Non-taxable' => 'Exento',
+ 'Non-taxable Purchases' => 'Compras exentas',
+ 'Non-taxable Sales' => 'Ventas exentas',
+ 'Non-tracking Items' => '',
+ 'Notes' => 'Notas',
+ 'Nothing entered!' => '¡No se suministro nada!',
+ 'Nothing selected!' => '¡No se seleccionó nada!',
+ 'Nothing to delete!' => '¡Nada que borrar!',
+ 'Nothing to print!' => '¡No hay nada que imprimir!',
+ 'Nothing to transfer!' => '¡Nada que transferir!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number Format' => 'Formato de número',
+ 'Number missing in Row' => 'Falta el número en el renglón',
+ 'O' => 'A',
+ 'OH' => '',
+ 'Obsolete' => 'Obsoleto',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'On Hand' => 'Existencias',
+ 'Open' => 'Abierto',
+ 'Oracle Database Administration' => 'Administración de base de datos Oracle',
+ 'Order' => 'Orden',
+ 'Order Date' => 'Fecha de la orden',
+ 'Order Date missing!' => '¡Falta la fecha de la orden!',
+ 'Order Entry' => 'Ordenes',
+ 'Order Number' => 'Número de la orden',
+ 'Order Number missing!' => 'Falta el número de la orden!',
+ 'Order deleted!' => '¡Orden borrada!',
+ 'Order generation failed!' => '',
+ 'Order saved!' => '¡Orden guardada!',
+ 'Orders generated!' => '',
+ 'Orphaned' => 'Huérfano',
+ 'Out of balance transaction!' => '¡Movimiento desbalanceado!',
+ 'Out of balance!' => '¡Desbalanceado!',
+ 'Outstanding' => 'Pendiente',
+ 'PDF' => 'PDF',
+ 'PO Number' => '',
+ 'POS' => 'Pto. de Vta.',
+ 'POS Invoice' => 'Ticket',
+ 'Packing List' => 'Lista de empaque',
+ 'Packing List Date missing!' => '¡Falta la fecha en la lista de empaque!',
+ 'Packing List Number missing!' => '¡Falta le número en la lista de empaque!',
+ 'Packing Lists' => 'Listas de empaque',
+ 'Paid' => 'Pagado',
+ 'Part' => 'Parte',
+ 'Part Number' => '',
+ 'Partnumber' => 'Número de Parte',
+ 'Parts' => 'Partes',
+ 'Password' => 'Contraseña',
+ 'Password changed!' => '¡Contraseña cambiada!',
+ 'Password does not match!' => '¡Contraseña incorrecta!',
+ 'Passwords do not match!' => '¡Contraseñas son incorrectas!',
+ 'Payables' => 'Por Pagar',
+ 'Payment' => 'Pago',
+ 'Payment date missing!' => '¡Falta la fecha del pago!',
+ 'Payment posted!' => '¡Pago registrado!',
+ 'Payments' => 'Pagos',
+ 'Payments posted!' => '',
+ 'Payroll Deduction' => 'Deducciones de nómina',
+ 'Period' => 'Período',
+ 'Pg Database Administration' => 'Administración de base de datos PostgreSQL',
+ 'PgPP Database Administration' => 'Administración de base de datos PgPP',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Selección',
+ 'Pick Lists' => 'Listas de Selección',
+ 'Port' => 'Puerto',
+ 'Port missing!' => '¡Falta el puerto!',
+ 'Pos' => '',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Posted!' => '¡Registrado!',
+ 'Posting' => '',
+ 'Posting failed!' => '',
+ 'Postscript' => 'Postscript',
+ 'Preferences' => 'Preferencias',
+ 'Preferences saved!' => '¡Preferencias guardadas!',
+ 'Prepayment' => 'Prepago',
+ 'Price' => 'Precio',
+ 'Pricegroup' => 'Grupo de precios',
+ 'Pricegroup deleted!' => '¡Grupo de precios borrado!',
+ 'Pricegroup missing!' => '¡Falta el grupo de precios!',
+ 'Pricegroup saved!' => '¡Grupo de precios guardado!',
+ 'Pricegroups' => 'Grupos de precios',
+ 'Pricelist' => 'Lista de Precios',
+ 'Print' => 'Vista Preliminar',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Print and Post as new' => '',
+ 'Print and Save' => 'Imprimir y Guardar',
+ 'Print and Save as new' => '',
+ 'Print and post as new' => '',
+ 'Print and save as new' => '',
+ 'Printed' => 'Impreso',
+ 'Printer' => 'Impresora',
+ 'Printing' => '',
+ 'Printing ... ' => 'Imprimiendo ...',
+ 'Process Transactions' => '',
+ 'Production' => '',
+ 'Profit Center' => 'Centro de Ingresos',
+ 'Project' => 'Proyecto',
+ 'Project Description Translations' => 'Traducciones de descripción de proyecto',
+ 'Project Name' => '',
+ 'Project Number' => 'Número de proyecto',
+ 'Project Number missing!' => 'Falta número de proyecto',
+ 'Project Transactions' => 'Movimientos de proyecto',
+ 'Project deleted!' => '¡Proyecto borrado!',
+ 'Project not on file!' => '¡Proyecto no registrado!',
+ 'Project saved!' => '¡Proyecto registrado!',
+ 'Project/Job Name' => '',
+ 'Project/Job Number' => '',
+ 'Projects' => 'Proyectos',
+ 'Purchase Order' => 'Orden de compra',
+ 'Purchase Order Number' => 'Número de Orden de Compra',
+ 'Purchase Orders' => 'Ordenes de compra',
+ 'Qty' => 'Cant.',
+ 'Quantity exceeds available units to stock!' => '¡La cantidad excede al inventario disponible!',
+ 'Quarter' => 'Trimestre',
+ 'Quotation' => 'Cotización',
+ 'Quotation ' => 'Cotización ',
+ 'Quotation Date' => 'Fecha de cotización',
+ 'Quotation Date missing!' => '¡Falta la fecha de la cotización!',
+ 'Quotation Number' => 'Número de cotización',
+ 'Quotation Number missing!' => '¡Falta el número de la cotización!',
+ 'Quotation deleted!' => '¡Cotización borrada!',
+ 'Quotations' => 'Cotizaciones',
+ 'R' => 'C',
+ 'RFQ' => 'Sol. de Cot.',
+ 'RFQ ' => 'Sol. de Cot. ',
+ 'RFQ Number' => 'Número de Sol. de Cot.',
+ 'RFQs' => 'Sols. de Cots.',
+ 'ROP' => 'Pto. de Reord.',
+ 'Rate' => 'Tarifa',
+ 'Rate missing!' => '¡Falta la tarifa!',
+ 'Recd' => 'Recb.',
+ 'Receipt' => 'Cobro',
+ 'Receipt posted!' => '¡Cobro registrado!',
+ 'Receipts' => 'Cobros',
+ 'Receivables' => 'Por cobrar',
+ 'Receive' => 'Recibir',
+ 'Receive Merchandise' => 'Recibir mercancía',
+ 'Reconciliation' => 'Conciliación',
+ 'Reconciliation Report' => 'Reporte de conciliación',
+ 'Record in' => 'Registrar en',
+ 'Recurring Transaction' => '',
+ 'Recurring Transactions' => '',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Disponible',
+ 'Remove' => 'Eliminar',
+ 'Remove Audit trail up to' => 'Eliminar pistas de auditoría hasta',
+ 'Remove Audit trails up to' => 'Eliminar pistas de auditoría hasta',
+ 'Removed spoolfiles!' => '¡Archivos de fila eliminados!',
+ 'Removing marked entries from queue ...' => 'Eliminado entradas seleccionadas de la fila ...',
+ 'Repeat' => '',
+ 'Report for' => 'Reporte para',
+ 'Reports' => 'Reportes',
+ 'Req' => '',
+ 'Request for Quotation' => 'Solicitud de cotización',
+ 'Request for Quotations' => 'Solicitudes de cotización',
+ 'Required by' => 'Vencimiento',
+ 'Retained Earnings' => 'Resultado',
+ 'Role' => 'Rol',
+ 'S' => 'V',
+ 'SIC' => 'SIC',
+ 'SIC deleted!' => '¡SIC borrado!',
+ 'SIC saved!' => '¡SIC guardado!',
+ 'SKU' => 'SKU',
+ 'SSN' => 'RIF',
+ 'Sale' => 'Venta',
+ 'Sales' => 'Ventas',
+ 'Sales Invoice' => 'Factura de venta',
+ 'Sales Invoice ' => 'Factura de venta ',
+ 'Sales Invoice.' => 'Factura de venta.',
+ 'Sales Invoice/AR Transaction Number' => '',
+ 'Sales Invoices' => 'Facturas de venta',
+ 'Sales Order' => 'Orden de venta',
+ 'Sales Order Number' => 'N°de Pedido',
+ 'Sales Orders' => 'Ordenes de venta',
+ 'Sales Quotation Number' => 'N°de Cotización de venta',
+ 'Salesperson' => 'Vendedor',
+ 'Saturday' => '',
+ 'Save' => 'Guardar',
+ 'Save Pricelist' => 'Guardar Lista de Precios',
+ 'Save Schedule' => '',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Save to File' => 'Guardar en un archivo',
+ 'Saving' => '',
+ 'Schedule' => '',
+ 'Scheduled' => '',
+ 'Screen' => 'Pantalla',
+ 'Search' => 'Buscar',
+ 'Select' => 'Seleccionar',
+ 'Select Customer' => '',
+ 'Select Vendor' => '',
+ 'Select a Printer!' => '',
+ 'Select a printer!' => '',
+ 'Select all' => 'Seleccionar todo',
+ 'Select from one of the items below' => 'Seleccione uno de los siguientes artículos',
+ 'Select from one of the names below' => 'Seleccione uno de los siguientes nombres',
+ 'Select from one of the projects below' => 'Seleccione uno de los siguientes proyectos',
+ 'Select items' => '',
+ 'Select payment' => '¡Seleccione Pago!',
+ 'Select postscript or PDF!' => 'Seleccione Postcript o PDF',
+ 'Select txt, postscript or PDF!' => '¡Seleccione txt, postscript o PDF!',
+ 'Sell' => 'Vender',
+ 'Sell Price' => 'Precio de venta',
+ 'Send by E-Mail' => 'Enviar por correo-e',
+ 'Sending' => '',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'Núm. de serie',
+ 'Serial Number' => 'Número de serie',
+ 'Service' => 'Servicio',
+ 'Service Code' => '',
+ 'Service/Labor Code' => '',
+ 'Services' => 'Servicios',
+ 'Session Timeout' => '¡Sesión Caducó!',
+ 'Session expired!' => '¡Sesión Expiró!',
+ 'Setup Templates' => 'Plantillas de inicio',
+ 'Ship' => 'Enviar',
+ 'Ship Merchandise' => 'Enviar mercancías',
+ 'Ship to' => 'Enviar a',
+ 'Ship via' => 'Enviar por',
+ 'Shipping' => 'Envío',
+ 'Shipping Address' => 'Dirección de envío',
+ 'Shipping Date' => 'Fecha de envío',
+ 'Shipping Date missing!' => '¡Falta la fecha de envío!',
+ 'Shipping Point' => 'Punto de envío',
+ 'Short' => 'Corto',
+ 'Signature' => 'Firma',
+ 'Source' => 'Referencia',
+ 'Spoolfile' => 'Archivo de fila de impresión',
+ 'Standard' => 'Estándar',
+ 'Standard Industrial Codes' => 'Standard Industrial Codes',
+ 'Startdate' => 'Fecha inicial',
+ 'State' => 'Estado',
+ 'State/Province' => 'Estado',
+ 'Statement' => 'Estado de cuenta',
+ 'Statement Balance' => 'Saldo bancario',
+ 'Statement sent to' => 'Estado de cuenta enviado a',
+ 'Statements sent to printer!' => '¡Estado de cuenta enviado a la impresora!',
+ 'Stock' => 'Inventario',
+ 'Stock Assembly' => 'Inventariar ensamblaje',
+ 'Stocking Date' => '',
+ 'Stylesheet' => 'Hoja de estilos',
+ 'Sub-contract GIFI' => 'GIFI del subcontrato',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resumen',
+ 'Sunday' => '',
+ 'Supervisor' => 'Supervisor',
+ 'System' => 'Sistema',
+ 'System Defaults' => 'Defaults del sistema',
+ 'Tax' => 'Impuesto',
+ 'Tax Accounts' => 'Cuentas de impuesto',
+ 'Tax Included' => 'Impuesto Incluido',
+ 'Tax Number' => 'Número de impuesto',
+ 'Tax Number / SSN' => 'Número de impuesto / SSN',
+ 'Tax collected' => 'Impuesto Retenido',
+ 'Tax paid' => 'Impuesto Pagado',
+ 'Taxable' => 'Gravable',
+ 'Template saved!' => '¡Plantilla guardada!',
+ 'Templates' => 'Plantillas',
+ 'Terms' => 'Condiciones',
+ 'Text' => '',
+ 'Text Templates' => 'Plantillas de texto',
+ 'The following Datasets are not in use and can be deleted' => 'Los siguientes conjuntos de datos no están en uso y pueden ser borrados',
+ 'The following Datasets need to be updated' => 'Es necesario actualizar los siguientes conjuntos de datos',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Esta es una verificación preliminar de fuentes existentes. ¡Nada será creado o borrado en esta etapa!',
+ 'Thursday' => '',
+ 'Till' => 'Hasta',
+ 'Time In' => '',
+ 'Time Out' => '',
+ 'Timecard' => '',
+ 'Timecard deleted!' => '',
+ 'Timecard saved!' => '',
+ 'Timecards' => '',
+ 'Times' => '',
+ 'To' => 'A',
+ 'To Warehouse' => '',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Para agregar un usuario a un grupo, selecciónelo, cambie el nombre de usuario y guarde los cambios. Un nuevo usuario, con las mismas variables se guardará con el nuevo nombre de usuario.',
+ 'Top Level' => 'Nivel Superior',
+ 'Total' => 'Total',
+ 'Tracking Items' => '',
+ 'Trade Discount' => 'Descuento comercial',
+ 'Transaction' => 'Asiento',
+ 'Transaction Date missing!' => '¡Falta la fecha del movimiento!',
+ 'Transaction Dates' => '',
+ 'Transaction deleted!' => '¡Movimiento borrado!',
+ 'Transaction posted!' => '¡Movimiento registrado!',
+ 'Transaction reversal enforced for all dates' => 'Reversión de movimientos activado para todas las fechas',
+ 'Transaction reversal enforced up to' => 'Reversión de movimientos activado hasta',
+ 'Transactions' => 'Movimientos',
+ 'Transfer' => 'Transferir',
+ 'Transfer Inventory' => 'Transferir inventario',
+ 'Transfer from' => '',
+ 'Transfer to' => 'Transferir a',
+ 'Translation' => 'Traducción',
+ 'Translation deleted!' => '¡Traducción borrada!',
+ 'Translation not on file!' => 'Traducción no se encuentra en la Base de Datos',
+ 'Translations' => 'Traducciones',
+ 'Translations saved!' => '¡Traducciones guardadas!',
+ 'Trial Balance' => 'Balanza de comprobación',
+ 'Tuesday' => '',
+ 'Type of Business' => 'Tipo de negocio',
+ 'Unit' => 'Unidad',
+ 'Unit of measure' => 'Unidad de medida',
+ 'Unlock System' => 'Desbloquear el sistema',
+ 'Update' => 'Actualizar',
+ 'Update Dataset' => 'Actualizar conjunto de datos',
+ 'Updated' => 'Actualizado',
+ 'Upgrading to Version' => 'Actualizando a versión',
+ 'Use Templates' => 'Usar Plantillas',
+ 'User' => 'Usuario',
+ 'User deleted!' => '¡Usuario borrado!',
+ 'User saved!' => '¡Usuario guardado!',
+ 'Valid until' => 'Válido hasta',
+ 'Vendor' => 'Proveedor',
+ 'Vendor History' => 'Historia de proveedor',
+ 'Vendor Invoice' => 'Factura de compra',
+ 'Vendor Invoice ' => 'Factura de compra ',
+ 'Vendor Invoice.' => 'Factura de compra.',
+ 'Vendor Invoice/AP Transaction Number' => '',
+ 'Vendor Invoices' => 'Facturas de compra',
+ 'Vendor Number' => 'Número de proveedor',
+ 'Vendor deleted!' => '¡Proveedor borrado!',
+ 'Vendor missing!' => '¡Falta el proveedor!',
+ 'Vendor not on file!' => '¡Proveedor no registrado!',
+ 'Vendor saved!' => '¡Proveedor guardado!',
+ 'Vendors' => 'Proveedores',
+ 'Version' => 'Versión',
+ 'Warehouse' => 'Almacén',
+ 'Warehouse deleted!' => '¡Almacén borrado!',
+ 'Warehouse saved!' => '¡Almacén guardado!',
+ 'Warehouses' => 'Almacenes',
+ 'Warning!' => '¡Advertencia!',
+ 'Wednesday' => '',
+ 'Week' => '',
+ 'Week(s)' => '',
+ 'Weeks' => '',
+ 'Weight' => 'Peso',
+ 'Weight Unit' => 'Unidad de Peso',
+ 'What type of item is this?' => '¿Que tipo de articulo es este?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Work Orders' => 'Órdenes de Trabajo',
+ 'Work Phone' => 'Teléfono de oficina',
+ 'Year' => 'Año',
+ 'Year(s)' => '',
+ 'Yearend' => 'Cierre de periodo',
+ 'Yearend date missing!' => '¡Falta el cierre de periodo!',
+ 'Yearend posted!' => '¡Cierre de periodo registrado!',
+ 'Yearend posting failed!' => '¡Falló el registro de cierre de periodo!',
+ 'Years' => '',
+ 'Yes' => 'Si',
+ 'You are logged out' => '¡Ud. está desconectado del sistema!',
+ 'You are posting an existing transaction!' => '',
+ 'You are printing and posting an existing transaction!' => '',
+ 'You are printing and saving an existing order' => '',
+ 'You are printing and saving an existing quotation' => '',
+ 'You are printing and saving an existing transaction!' => '',
+ 'You are saving an existing order' => '',
+ 'You are saving an existing quotation' => '',
+ 'You are saving an existing transaction!' => '',
+ 'You did not enter a name!' => '¡No ingresó un nombre!',
+ 'You must enter a host and port for local and remote connections!' => 'Debe ingresar un servidor y un puerto para conexiones locales y remotas!',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'account cannot be set to any other type of account' => 'El tipo de cuenta no puede ser configurado como otro tipo de cuenta',
+ 'as at' => 'como a',
+ 'days' => 'días',
+ 'does not exist' => 'no existe',
+ 'done' => 'listo',
+ 'ea' => 'pza',
+ 'failed' => '',
+ 'for' => '',
+ 'for Period' => 'para el periodo',
+ 'is already a member!' => '¡ya es miembro!',
+ 'localhost' => 'localhost',
+ 'locked!' => '¡bloqueado!',
+ 'partsgroup' => '',
+ 'posted!' => '¡registrado!',
+ 'sent' => 'enviado',
+ 'successfully created!' => '¡creado con éxito!',
+ 'successfully deleted!' => '¡borrado con éxito!',
+ 'time(s)' => '',
+ 'unexpected error!' => '',
+ 'website' => 'sitio web',
+};
+
+1;
diff --git a/locale/mx/am b/locale/mx/am
new file mode 100755
index 00000000..755a3383
--- /dev/null
+++ b/locale/mx/am
@@ -0,0 +1,284 @@
+$self{texts} = {
+ 'AP' => 'Ctas. x pagar',
+ 'AR' => 'Ctas. x cobrar',
+ 'About' => 'Acerca de',
+ 'Account' => 'Cuenta',
+ 'Account Number' => 'Número de cuenta',
+ 'Account Number missing!' => '¡Falta el número de cuenta!',
+ 'Account Type' => 'Tipo de cuenta',
+ 'Account Type missing!' => '¡Falta el tipo de cuenta!',
+ 'Account deleted!' => '¡Cuenta eliminada!',
+ 'Account does not exist!' => '¡El número de cuenta no existe!',
+ 'Account saved!' => 'Cuenta guardada!',
+ 'Accounting Menu' => 'Menú de contabilidad',
+ 'Accrual' => 'Acumulado',
+ 'Activate Audit trail' => 'Activar pistas de auditoría',
+ 'Add Account' => 'Nueva cuenta',
+ 'Add Business' => 'Nuevo negocio',
+ 'Add Department' => 'Nuevo departamento',
+ 'Add GIFI' => 'Nuevo GIFI',
+ 'Add Language' => 'Nuevo lenguaje',
+ 'Add SIC' => 'Nuevo SIC',
+ 'Add Warehouse' => 'Nuevo almacén',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Importe',
+ 'Asset' => 'Activo',
+ 'Audit Control' => 'Control de auditoría',
+ 'Audit trail disabled' => 'Pistas de auditoría desactivadas',
+ 'Audit trail enabled' => 'Pistas de auditoría activadas',
+ 'Audit trail removed up to' => 'Pistas de auditoría eliminadas hasta',
+ 'Backup sent to' => 'Respaldo enviado a',
+ 'Bin List' => 'Lista de ubicaciones',
+ 'Books are open' => 'Los libros están abiertos',
+ 'Business Number' => 'RFC',
+ 'Business deleted!' => 'Negocio borrado',
+ 'Business saved!' => '¡Negocio guardado!',
+ 'COGS' => 'Costo de Ventas',
+ 'Cannot delete account!' => '¡No se puede borrar la cuenta!',
+ 'Cannot delete default account!' => '¡No se puede borrar la cuenta por defecto!',
+ 'Cannot save account!' => '¡No se puede guardar la cuenta!',
+ 'Cannot save defaults!' => '¡No se pueden borrar los defults!',
+ 'Cannot save preferences!' => '¡No se puede guardar preferencias!',
+ 'Cannot set account for more than one of AR, AP or IC' => '¡No se puede configurar una cuenta para mas de una de las opciones (AR, AP o IC)',
+ 'Cannot set multiple options for' => 'No se pueden configurar opciones múltiples para',
+ 'Cash' => 'Bancos',
+ 'Chart of Accounts' => 'Catálogo de cuentas',
+ 'Close Books up to' => 'Cerrar libros al',
+ 'Code' => 'Código',
+ 'Code missing!' => '¡Falta el código!',
+ 'Company' => 'Empresa',
+ 'Confirm' => '¡Confirmar',
+ 'Confirm!' => '¡Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Contra' => 'Contra',
+ 'Copy to COA' => 'Copiar al cat. de ctas.',
+ 'Cost Center' => 'Centro de costos',
+ 'Credit' => 'Abono',
+ 'Customer Number' => 'Número de cliente',
+ 'Database Host' => 'Servidor de base de datos',
+ 'Dataset' => 'Conjunto de datos',
+ 'Date Format' => 'Formato de fecha',
+ 'Debit' => 'Cargo',
+ 'Defaults saved!' => '¡Defaults guardados!',
+ 'Delete' => 'Borrar',
+ 'Delete Account' => 'Borrar cuenta',
+ 'Department deleted!' => '¡Departamento borrado!',
+ 'Department saved!' => '¡Departamento guardado!',
+ 'Departments' => 'Departamentos',
+ 'Description' => 'Descripción',
+ 'Description missing!' => '¡Falta la descripción!',
+ 'Discount' => 'Descuento',
+ 'Dropdown Limit' => 'Limite en listas desplegables',
+ 'E-mail' => 'Correo-e',
+ 'E-mail address missing!' => '¡Falta la dirección de correo-e!',
+ 'Edit' => 'Modificar',
+ 'Edit Account' => 'Modificar cuenta',
+ 'Edit Business' => 'Modificar negocio',
+ 'Edit Department' => 'Modificar departamento',
+ 'Edit GIFI' => 'Modificar GIFI',
+ 'Edit Language' => 'Modificar lenguaje',
+ 'Edit Preferences for' => 'Modificar preferencias para',
+ 'Edit SIC' => 'Modificar SIC',
+ 'Edit Template' => 'Modificar plantilla',
+ 'Edit Warehouse' => 'Modificar almacén',
+ 'Employee Number' => 'Número de Empleado',
+ 'Enforce transaction reversal for all dates' => 'Activar la reversión de movimientos para todas las fechas',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Proporcionar hasta tres letras separadas por dos puntos (ej.: MXP:USD) para las monedas local y extranjeras',
+ 'Equity' => 'Capital',
+ 'Expense' => 'Egreso',
+ 'Expense/Asset' => 'Egreso/Activo',
+ 'Fax' => 'Fax',
+ 'Foreign Exchange Gain' => 'Utilidad cambiaria',
+ 'Foreign Exchange Loss' => 'Perdida cambiaria',
+ 'GIFI' => 'Código GIFI',
+ 'GIFI deleted!' => '¡GIFI borrado!',
+ 'GIFI missing!' => '¡Falta el código GIFI',
+ 'GIFI saved!' => '¡GIFI guardado!',
+ 'GL Transaction' => 'Movimiento de mayor',
+ 'Heading' => 'Encabezado',
+ 'ID' => 'Id.',
+ 'Include in drop-down menus' => 'Incluir en listas desplegables',
+ 'Income' => 'Ingreso',
+ 'Inventory' => 'Inventario',
+ 'Invoice' => 'Factura',
+ 'Is this a summary account to record' => 'Es ésta una cuenta de resumen a registrar',
+ 'Language' => 'Lenguaje',
+ 'Language deleted!' => '¡Lenguaje borrado!',
+ 'Language saved!' => '¡Lenguaje guardado!',
+ 'Languages' => 'Lenguajes',
+ 'Last Numbers & Default Accounts' => 'Últimos números y cuentas de default',
+ 'Liability' => 'Pasivo',
+ 'Licensed to' => 'Licenciado a',
+ 'Link' => 'Enlace',
+ 'Menu Width' => 'Anchura del menú',
+ 'Method' => 'Método',
+ 'Month' => 'Mes',
+ 'Name' => 'Nombre',
+ 'No' => 'No',
+ 'No email address for' => 'Falta dirección de correo-e para',
+ 'Number' => 'Número',
+ 'Number Format' => 'Formato de número',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de empaque',
+ 'Password' => 'Contraseña',
+ 'Password does not match!' => '¡Contraseña incorrecta!',
+ 'Payables' => 'Por Pagar',
+ 'Payment' => 'Pago',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Selección',
+ 'Postscript' => 'Postscript',
+ 'Preferences saved!' => '¡Preferencias guardadas!',
+ 'Print' => 'Vista Preliminar',
+ 'Printer' => 'Impresora',
+ 'Profit Center' => 'Centro de Ingresos',
+ 'Purchase Order' => 'Orden de compra',
+ 'Purchase Order Number' => 'Número de Orden de Compra',
+ 'Purchase Orders' => 'Ordenes de compra',
+ 'RFQ Number' => 'Número de Sol. de Cot.',
+ 'Rate' => 'Tarifa',
+ 'Receivables' => 'Por cobrar',
+ 'Reference' => 'Referencia',
+ 'Remove Audit trail up to' => 'Eliminar pistas de auditoría hasta',
+ 'Retained Earnings' => 'Resultado',
+ 'SIC deleted!' => '¡SIC borrado!',
+ 'SIC saved!' => '¡SIC guardado!',
+ 'Sales Invoice' => 'Factura de venta',
+ 'Sales Order' => 'Orden de venta',
+ 'Sales Order Number' => 'N°de Pedido',
+ 'Sales Orders' => 'Ordenes de venta',
+ 'Sales Quotation Number' => 'N°de Cotización de venta',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Session Timeout' => '¡Sesión Caducó!',
+ 'Signature' => 'Firma',
+ 'Standard Industrial Codes' => 'Standard Industrial Codes',
+ 'Stylesheet' => 'Hoja de estilos',
+ 'System Defaults' => 'Defaults del sistema',
+ 'Tax' => 'Impuesto',
+ 'Template saved!' => '¡Plantilla guardada!',
+ 'Transaction' => 'Asiento',
+ 'Transaction reversal enforced for all dates' => 'Reversión de movimientos activado para todas las fechas',
+ 'Transaction reversal enforced up to' => 'Reversión de movimientos activado hasta',
+ 'Type of Business' => 'Tipo de negocio',
+ 'Update' => 'Actualizar',
+ 'User' => 'Usuario',
+ 'Vendor Invoice' => 'Factura de compra',
+ 'Vendor Number' => 'Número de proveedor',
+ 'Version' => 'Versión',
+ 'Warehouse deleted!' => '¡Almacén borrado!',
+ 'Warehouse saved!' => '¡Almacén guardado!',
+ 'Warehouses' => 'Almacenes',
+ 'Weight Unit' => 'Unidad de Peso',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Year' => 'Año',
+ 'Yearend' => 'Cierre de periodo',
+ 'Yearend date missing!' => '¡Falta el cierre de periodo!',
+ 'Yearend posted!' => '¡Cierre de periodo registrado!',
+ 'Yearend posting failed!' => '¡Falló el registro de cierre de periodo!',
+ 'Yes' => 'Si',
+ 'account cannot be set to any other type of account' => 'El tipo de cuenta no puede ser configurado como otro tipo de cuenta',
+ 'done' => 'listo',
+ 'localhost' => 'localhost',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'nueva_cuenta' => 'add_account',
+ 'nuevo_negocio' => 'add_business',
+ 'nuevo_departamento' => 'add_department',
+ 'nuevo_lenguaje' => 'add_language',
+ 'nuevo_sic' => 'add_sic',
+ 'nuevo_almacén' => 'add_warehouse',
+ 'continuar' => 'continue',
+ 'copiar_al_cat._de_ctas_' => 'copy_to_coa',
+ 'borrar' => 'delete',
+ 'modificar' => 'edit',
+ 'modificar_cuenta' => 'edit_account',
+ 'guardar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/mx/ap b/locale/mx/ap
new file mode 100755
index 00000000..28ad27f9
--- /dev/null
+++ b/locale/mx/ap
@@ -0,0 +1,210 @@
+$self{texts} = {
+ 'AP Outstanding' => 'CxP pendientes',
+ 'AP Transaction' => 'Movimiento CxP',
+ 'AP Transactions' => 'Movimientos de CxP',
+ 'AR Outstanding' => 'CxC pendientes',
+ 'AR Transaction' => 'Movimiento CxC',
+ 'AR Transactions' => 'Movimientos de Ctas. x cobrar',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de contabilidad',
+ 'Add AP Transaction' => 'Nueva Asiento de CxP',
+ 'Add AR Transaction' => 'Nueva Asiento de CxC',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Importe',
+ 'Amount Due' => 'Saldo',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => '¿Está Ud. seguro de querer borrar el movimiento',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => '¡No se puede borrar el movimiento!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago para un periodo cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar un movimiento para un periodo cerrado!',
+ 'Cannot post transaction!' => '¡No se puede registrar el movimiento!',
+ 'Cc' => 'Cc',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Cerrada',
+ 'Confirm!' => '¡Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Abono',
+ 'Credit Limit' => 'Límite de crédito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no está registrado!',
+ 'Date' => 'Fecha',
+ 'Date Paid' => 'Fecha de pago',
+ 'Debit' => 'Cargo',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'Due Date missing!' => 'Falta fecha de vencimiento!',
+ 'E-mail' => 'Correo-e',
+ 'Edit AP Transaction' => 'Modificar Asiento de CxP',
+ 'Edit AR Transaction' => 'Modificar Asiento de CxC',
+ 'Employee' => 'Empleado',
+ 'Exch' => 'T. de C.',
+ 'Exchange Rate' => 'Tipo de cambio',
+ 'Exchange rate for payment missing!' => '¡Falta el tipo de cambio para el pago!',
+ 'Exchange rate missing!' => '¡Falta el tipo de cambio!',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'De',
+ 'ID' => 'Id.',
+ 'Include in Report' => 'Incluir en reporte',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => '¡Falta la fecha de la factura!',
+ 'Invoice Number' => 'Número de factura',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Manager' => 'Administrador',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Nota',
+ 'Message' => 'Mensaje',
+ 'Month' => 'Mes',
+ 'No.' => 'Num.',
+ 'Notes' => 'Notas',
+ 'Nothing to print!' => '¡No hay nada que imprimir!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Number' => 'Número de la orden',
+ 'PDF' => 'PDF',
+ 'Paid' => 'Pagado',
+ 'Payment date missing!' => '¡Falta la fecha del pago!',
+ 'Payments' => 'Pagos',
+ 'Period' => 'Período',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Vista Preliminar',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => '¡Proyecto no registrado!',
+ 'Quarter' => 'Trimestre',
+ 'Receipt' => 'Cobro',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Disponible',
+ 'Sales Invoice.' => 'Factura de venta.',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los siguientes nombres',
+ 'Select from one of the projects below' => 'Seleccione uno de los siguientes proyectos',
+ 'Select payment' => '¡Seleccione Pago!',
+ 'Select postscript or PDF!' => 'Seleccione Postcript o PDF',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Ship to' => 'Enviar a',
+ 'Ship via' => 'Enviar por',
+ 'Shipping Point' => 'Punto de envío',
+ 'Source' => 'Referencia',
+ 'Startdate' => 'Fecha inicial',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resumen',
+ 'Tax' => 'Impuesto',
+ 'Tax Included' => 'Impuesto Incluido',
+ 'Till' => 'Hasta',
+ 'To' => 'A',
+ 'Total' => 'Total',
+ 'Transaction' => 'Asiento',
+ 'Transaction deleted!' => '¡Movimiento borrado!',
+ 'Transaction posted!' => '¡Movimiento registrado!',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice.' => 'Factura de compra.',
+ 'Vendor missing!' => '¡Falta el proveedor!',
+ 'Vendor not on file!' => '¡Proveedor no registrado!',
+ 'Warning!' => '¡Advertencia!',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+ 'sent' => 'enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'movimiento_cxp' => 'ap_transaction',
+ 'movimiento_cxc' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'vista_preliminar' => 'print',
+ 'imprimir_y_registrar' => 'print_and_post',
+ 'factura_de_venta_' => 'sales_invoice_',
+ 'enviar_a' => 'ship_to',
+ 'actualizar' => 'update',
+ 'factura_de_compra_' => 'vendor_invoice_',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/mx/ar b/locale/mx/ar
new file mode 100755
index 00000000..28ad27f9
--- /dev/null
+++ b/locale/mx/ar
@@ -0,0 +1,210 @@
+$self{texts} = {
+ 'AP Outstanding' => 'CxP pendientes',
+ 'AP Transaction' => 'Movimiento CxP',
+ 'AP Transactions' => 'Movimientos de CxP',
+ 'AR Outstanding' => 'CxC pendientes',
+ 'AR Transaction' => 'Movimiento CxC',
+ 'AR Transactions' => 'Movimientos de Ctas. x cobrar',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de contabilidad',
+ 'Add AP Transaction' => 'Nueva Asiento de CxP',
+ 'Add AR Transaction' => 'Nueva Asiento de CxC',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Importe',
+ 'Amount Due' => 'Saldo',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => '¿Está Ud. seguro de querer borrar el movimiento',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => '¡No se puede borrar el movimiento!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago para un periodo cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar un movimiento para un periodo cerrado!',
+ 'Cannot post transaction!' => '¡No se puede registrar el movimiento!',
+ 'Cc' => 'Cc',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Cerrada',
+ 'Confirm!' => '¡Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Abono',
+ 'Credit Limit' => 'Límite de crédito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no está registrado!',
+ 'Date' => 'Fecha',
+ 'Date Paid' => 'Fecha de pago',
+ 'Debit' => 'Cargo',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'Due Date missing!' => 'Falta fecha de vencimiento!',
+ 'E-mail' => 'Correo-e',
+ 'Edit AP Transaction' => 'Modificar Asiento de CxP',
+ 'Edit AR Transaction' => 'Modificar Asiento de CxC',
+ 'Employee' => 'Empleado',
+ 'Exch' => 'T. de C.',
+ 'Exchange Rate' => 'Tipo de cambio',
+ 'Exchange rate for payment missing!' => '¡Falta el tipo de cambio para el pago!',
+ 'Exchange rate missing!' => '¡Falta el tipo de cambio!',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'De',
+ 'ID' => 'Id.',
+ 'Include in Report' => 'Incluir en reporte',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => '¡Falta la fecha de la factura!',
+ 'Invoice Number' => 'Número de factura',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Manager' => 'Administrador',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Nota',
+ 'Message' => 'Mensaje',
+ 'Month' => 'Mes',
+ 'No.' => 'Num.',
+ 'Notes' => 'Notas',
+ 'Nothing to print!' => '¡No hay nada que imprimir!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Number' => 'Número de la orden',
+ 'PDF' => 'PDF',
+ 'Paid' => 'Pagado',
+ 'Payment date missing!' => '¡Falta la fecha del pago!',
+ 'Payments' => 'Pagos',
+ 'Period' => 'Período',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Vista Preliminar',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => '¡Proyecto no registrado!',
+ 'Quarter' => 'Trimestre',
+ 'Receipt' => 'Cobro',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Disponible',
+ 'Sales Invoice.' => 'Factura de venta.',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los siguientes nombres',
+ 'Select from one of the projects below' => 'Seleccione uno de los siguientes proyectos',
+ 'Select payment' => '¡Seleccione Pago!',
+ 'Select postscript or PDF!' => 'Seleccione Postcript o PDF',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Ship to' => 'Enviar a',
+ 'Ship via' => 'Enviar por',
+ 'Shipping Point' => 'Punto de envío',
+ 'Source' => 'Referencia',
+ 'Startdate' => 'Fecha inicial',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resumen',
+ 'Tax' => 'Impuesto',
+ 'Tax Included' => 'Impuesto Incluido',
+ 'Till' => 'Hasta',
+ 'To' => 'A',
+ 'Total' => 'Total',
+ 'Transaction' => 'Asiento',
+ 'Transaction deleted!' => '¡Movimiento borrado!',
+ 'Transaction posted!' => '¡Movimiento registrado!',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice.' => 'Factura de compra.',
+ 'Vendor missing!' => '¡Falta el proveedor!',
+ 'Vendor not on file!' => '¡Proveedor no registrado!',
+ 'Warning!' => '¡Advertencia!',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+ 'sent' => 'enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'movimiento_cxp' => 'ap_transaction',
+ 'movimiento_cxc' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'vista_preliminar' => 'print',
+ 'imprimir_y_registrar' => 'print_and_post',
+ 'factura_de_venta_' => 'sales_invoice_',
+ 'enviar_a' => 'ship_to',
+ 'actualizar' => 'update',
+ 'factura_de_compra_' => 'vendor_invoice_',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/mx/arap b/locale/mx/arap
new file mode 100755
index 00000000..0b576ebf
--- /dev/null
+++ b/locale/mx/arap
@@ -0,0 +1,51 @@
+$self{texts} = {
+ 'Address' => 'Dirección',
+ 'Bcc' => 'Bcc',
+ 'Cc' => 'Cc',
+ 'Continue' => 'Continuar',
+ 'Customer not on file!' => '¡El cliente no está registrado!',
+ 'Date' => 'Fecha',
+ 'Description' => 'Descripción',
+ 'E-mail' => 'Correo-e',
+ 'Message' => 'Mensaje',
+ 'Number' => 'Número',
+ 'Print' => 'Vista Preliminar',
+ 'Project not on file!' => '¡Proyecto no registrado!',
+ 'Reference' => 'Referencia',
+ 'Select from one of the names below' => 'Seleccione uno de los siguientes nombres',
+ 'Select from one of the projects below' => 'Seleccione uno de los siguientes proyectos',
+ 'Startdate' => 'Fecha inicial',
+ 'Subject' => 'Asunto',
+ 'To' => 'A',
+ 'Vendor not on file!' => '¡Proveedor no registrado!',
+ 'Warning!' => '¡Advertencia!',
+ 'sent' => 'enviado',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/mx/arapprn b/locale/mx/arapprn
new file mode 100755
index 00000000..9e05c5ce
--- /dev/null
+++ b/locale/mx/arapprn
@@ -0,0 +1,32 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Amount' => 'Importe',
+ 'Continue' => 'Continuar',
+ 'Date' => 'Fecha',
+ 'Memo' => 'Nota',
+ 'Nothing to print!' => '¡No hay nada que imprimir!',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'Postscript',
+ 'Printed' => 'Impreso',
+ 'Screen' => 'Pantalla',
+ 'Select payment' => '¡Seleccione Pago!',
+ 'Select postscript or PDF!' => 'Seleccione Postcript o PDF',
+ 'Source' => 'Referencia',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/mx/bp b/locale/mx/bp
new file mode 100755
index 00000000..f092717b
--- /dev/null
+++ b/locale/mx/bp
@@ -0,0 +1,67 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de contabilidad',
+ 'Are you sure you want to remove the marked entries from the queue?' => '¿Está Ud. seguro de querer borrar las entradas seleccionadas de la fila?',
+ 'Bin Lists' => 'Listas de ubicaciones',
+ 'Cannot remove files!' => '¡No se pueden borrar los archivos!',
+ 'Confirm!' => '¡Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Date' => 'Fecha',
+ 'Employee' => 'Empleado',
+ 'From' => 'De',
+ 'ID' => 'Id.',
+ 'Invoice' => 'Factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Marked entries printed!' => '¡Entradas seleccionadas impresas!',
+ 'Month' => 'Mes',
+ 'Order' => 'Orden',
+ 'Order Number' => 'Número de la orden',
+ 'Packing Lists' => 'Listas de empaque',
+ 'Period' => 'Período',
+ 'Pick Lists' => 'Listas de Selección',
+ 'Print' => 'Vista Preliminar',
+ 'Purchase Orders' => 'Ordenes de compra',
+ 'Quarter' => 'Trimestre',
+ 'Quotation' => 'Cotización',
+ 'Quotation Number' => 'Número de cotización',
+ 'Quotations' => 'Cotizaciones',
+ 'RFQs' => 'Sols. de Cots.',
+ 'Remove' => 'Eliminar',
+ 'Removed spoolfiles!' => '¡Archivos de fila eliminados!',
+ 'Removing marked entries from queue ...' => 'Eliminado entradas seleccionadas de la fila ...',
+ 'Sales Invoices' => 'Facturas de venta',
+ 'Sales Orders' => 'Ordenes de venta',
+ 'Select all' => 'Seleccionar todo',
+ 'Spoolfile' => 'Archivo de fila de impresión',
+ 'To' => 'A',
+ 'Vendor' => 'Proveedor',
+ 'Work Orders' => 'Órdenes de Trabajo',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+ 'done' => 'listo',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'vista_preliminar' => 'print',
+ 'eliminar' => 'remove',
+ 'seleccionar_todo' => 'select_all',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/mx/ca b/locale/mx/ca
new file mode 100755
index 00000000..7bcd2bab
--- /dev/null
+++ b/locale/mx/ca
@@ -0,0 +1,59 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Saldo',
+ 'Chart of Accounts' => 'Catálogo de cuentas',
+ 'Credit' => 'Abono',
+ 'Current' => 'Actual',
+ 'Date' => 'Fecha',
+ 'Debit' => 'Cargo',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descripción',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'De',
+ 'GIFI' => 'Código GIFI',
+ 'Include in Report' => 'Incluir en reporte',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'List Transactions' => 'Enlistar movimientos',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Month' => 'Mes',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Period' => 'Período',
+ 'Project Number' => 'Número de proyecto',
+ 'Quarter' => 'Trimestre',
+ 'R' => 'C',
+ 'Reference' => 'Referencia',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'A',
+ 'Year' => 'Año',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'enlistar_movimientos' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/mx/cp b/locale/mx/cp
new file mode 100755
index 00000000..03fe1052
--- /dev/null
+++ b/locale/mx/cp
@@ -0,0 +1,123 @@
+$self{texts} = {
+ 'AP' => 'Ctas. x pagar',
+ 'AR' => 'Ctas. x cobrar',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de contabilidad',
+ 'Address' => 'Dirección',
+ 'All' => 'Todos',
+ 'Amount' => 'Importe',
+ 'Amount Due' => 'Saldo',
+ 'Bcc' => 'Bcc',
+ 'Cannot post Payment!' => '¡No se puede registrar el pago!',
+ 'Cannot post Receipt!' => '¡No se puede registrar el recibo!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago para un periodo cerrado!',
+ 'Cc' => 'Cc',
+ 'Continue' => 'Continuar',
+ 'Currency' => 'Moneda',
+ 'Customer' => 'Cliente',
+ 'Customer not on file!' => '¡El cliente no está registrado!',
+ 'Date' => 'Fecha',
+ 'Date missing!' => '¡Falta la fecha!',
+ 'Department' => 'Departamento',
+ 'Deposit' => 'Depósito',
+ 'Description' => 'Descripción',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'E-mail' => 'Correo-e',
+ 'Exchange Rate' => 'Tipo de cambio',
+ 'Exchange rate missing!' => '¡Falta el tipo de cambio!',
+ 'From' => 'De',
+ 'Invoice' => 'Factura',
+ 'Invoices' => 'Facturas',
+ 'Language' => 'Lenguaje',
+ 'Memo' => 'Nota',
+ 'Message' => 'Mensaje',
+ 'Number' => 'Número',
+ 'PDF' => 'PDF',
+ 'Payment' => 'Pago',
+ 'Payment posted!' => '¡Pago registrado!',
+ 'Payments' => 'Pagos',
+ 'Post' => 'Registrar',
+ 'Postscript' => 'Postscript',
+ 'Prepayment' => 'Prepago',
+ 'Print' => 'Vista Preliminar',
+ 'Project not on file!' => '¡Proyecto no registrado!',
+ 'Receipt' => 'Cobro',
+ 'Receipt posted!' => '¡Cobro registrado!',
+ 'Receipts' => 'Cobros',
+ 'Reference' => 'Referencia',
+ 'Screen' => 'Pantalla',
+ 'Select' => 'Seleccionar',
+ 'Select all' => 'Seleccionar todo',
+ 'Select from one of the names below' => 'Seleccione uno de los siguientes nombres',
+ 'Select from one of the projects below' => 'Seleccione uno de los siguientes proyectos',
+ 'Select postscript or PDF!' => 'Seleccione Postcript o PDF',
+ 'Source' => 'Referencia',
+ 'Startdate' => 'Fecha inicial',
+ 'Subject' => 'Asunto',
+ 'To' => 'A',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor not on file!' => '¡Proveedor no registrado!',
+ 'Warning!' => '¡Advertencia!',
+ 'sent' => 'enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuar' => 'continue',
+ 'registrar' => 'post',
+ 'vista_preliminar' => 'print',
+ 'seleccionar_todo' => 'select_all',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/mx/ct b/locale/mx/ct
new file mode 100755
index 00000000..cf3c09fa
--- /dev/null
+++ b/locale/mx/ct
@@ -0,0 +1,186 @@
+$self{texts} = {
+ 'AP Transaction' => 'Movimiento CxP',
+ 'AP Transactions' => 'Movimientos de CxP',
+ 'AR Transaction' => 'Movimiento CxC',
+ 'AR Transactions' => 'Movimientos de Ctas. x cobrar',
+ 'Accounting Menu' => 'Menú de contabilidad',
+ 'Active' => 'Activa',
+ 'Add Customer' => 'Nuevo cliente',
+ 'Add Vendor' => 'Nuevo proveedor',
+ 'Address' => 'Dirección',
+ 'All' => 'Todos',
+ 'Amount' => 'Importe',
+ 'BIC' => 'BIC',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Dirección de facturación',
+ 'Break' => 'Romper',
+ 'Cannot delete customer!' => '¡No se puede borrar el cliente!',
+ 'Cannot delete vendor!' => '¡No se puede borrar el proveedor!',
+ 'Cc' => 'Cc',
+ 'City' => 'Cuidad',
+ 'Closed' => 'Cerrada',
+ 'Company Name' => 'Nombre de la empresa',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Cost' => 'Costo',
+ 'Could not save pricelist!' => '¡No se pudo guradar lista de precios!',
+ 'Country' => 'País',
+ 'Credit Limit' => 'Límite de crédito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Customer History' => 'Historia del cliente',
+ 'Customer Number' => 'Número de cliente',
+ 'Customer deleted!' => '¡Cliente borrado!',
+ 'Customer saved!' => '¡Cliente guardado!',
+ 'Customers' => 'Clientes',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Discount' => 'Descuento',
+ 'E-mail' => 'Correo-e',
+ 'Edit Customer' => 'Modificar cliente',
+ 'Edit Vendor' => 'Modificar proveedor',
+ 'Employee' => 'Empleado',
+ 'Enddate' => 'Fecha final',
+ 'Fax' => 'Fax',
+ 'From' => 'De',
+ 'GIFI' => 'Código GIFI',
+ 'Group' => 'Grupo',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'Id.',
+ 'Include in Report' => 'Incluir en reporte',
+ 'Invoice' => 'Factura',
+ 'Item already on pricelist!' => '¡Artículo está incluido en la lista de precios!',
+ 'Item not on file!' => '¡El artículo no está registrado!',
+ 'Language' => 'Lenguaje',
+ 'Leadtime' => 'Duración del proceso',
+ 'Manager' => 'Administrador',
+ 'Name' => 'Nombre',
+ 'Name missing!' => '¡Falta el nombre!',
+ 'No.' => 'Num.',
+ 'Notes' => 'Notas',
+ 'Number' => 'Número',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Orphaned' => 'Huérfano',
+ 'POS' => 'Pto. de Vta.',
+ 'Phone' => 'Teléfono',
+ 'Pricegroup' => 'Grupo de precios',
+ 'Pricelist' => 'Lista de Precios',
+ 'Project Number' => 'Número de proyecto',
+ 'Purchase Order' => 'Orden de compra',
+ 'Purchase Orders' => 'Ordenes de compra',
+ 'Qty' => 'Cant.',
+ 'Quotation' => 'Cotización',
+ 'Quotations' => 'Cotizaciones',
+ 'RFQ' => 'Sol. de Cot.',
+ 'Request for Quotations' => 'Solicitudes de cotización',
+ 'SIC' => 'SIC',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Factura de venta',
+ 'Sales Invoices' => 'Facturas de venta',
+ 'Sales Order' => 'Orden de venta',
+ 'Sales Orders' => 'Ordenes de venta',
+ 'Salesperson' => 'Vendedor',
+ 'Save' => 'Guardar',
+ 'Save Pricelist' => 'Guardar Lista de Precios',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Search' => 'Buscar',
+ 'Sell Price' => 'Precio de venta',
+ 'Serial Number' => 'Número de serie',
+ 'Shipping Address' => 'Dirección de envío',
+ 'Startdate' => 'Fecha inicial',
+ 'State' => 'Estado',
+ 'State/Province' => 'Estado',
+ 'Sub-contract GIFI' => 'GIFI del subcontrato',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resumen',
+ 'Tax' => 'Impuesto',
+ 'Tax Included' => 'Impuesto Incluido',
+ 'Tax Number' => 'Número de impuesto',
+ 'Tax Number / SSN' => 'Número de impuesto / SSN',
+ 'Taxable' => 'Gravable',
+ 'Terms' => 'Condiciones',
+ 'To' => 'A',
+ 'Total' => 'Total',
+ 'Type of Business' => 'Tipo de negocio',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Vendor History' => 'Historia de proveedor',
+ 'Vendor Invoice' => 'Factura de compra',
+ 'Vendor Invoices' => 'Facturas de compra',
+ 'Vendor Number' => 'Número de proveedor',
+ 'Vendor deleted!' => '¡Proveedor borrado!',
+ 'Vendor saved!' => '¡Proveedor guardado!',
+ 'Vendors' => 'Proveedores',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'days' => 'días',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'movimiento_cxp' => 'ap_transaction',
+ 'movimiento_cxc' => 'ar_transaction',
+ 'nuevo_cliente' => 'add_customer',
+ 'nuevo_proveedor' => 'add_vendor',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'pto._de_vta_' => 'pos',
+ 'lista_de_precios' => 'pricelist',
+ 'orden_de_compra' => 'purchase_order',
+ 'cotización' => 'quotation',
+ 'sol._de_cot_' => 'rfq',
+ 'factura_de_venta' => 'sales_invoice',
+ 'orden_de_venta' => 'sales_order',
+ 'guardar' => 'save',
+ 'guardar_lista_de_precios' => 'save_pricelist',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+ 'factura_de_compra' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/mx/gl b/locale/mx/gl
new file mode 100755
index 00000000..437d40c0
--- /dev/null
+++ b/locale/mx/gl
@@ -0,0 +1,158 @@
+$self{texts} = {
+ 'AP Transaction' => 'Movimiento CxP',
+ 'AR Transaction' => 'Movimiento CxC',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de contabilidad',
+ 'Add Cash Transfer Transaction' => 'Nuevo movimiento de transferencia',
+ 'Add General Ledger Transaction' => 'Nuevo movimiento de mayor',
+ 'Address' => 'Dirección',
+ 'All' => 'Todos',
+ 'Amount' => 'Importe',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => '¿Está Ud. seguro de querer borrar el movimiento',
+ 'Asset' => 'Activo',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Saldo',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => '¡No se puede borrar el movimiento!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar un movimiento para un periodo cerrado!',
+ 'Cannot post transaction!' => '¡No se puede registrar el movimiento!',
+ 'Cc' => 'Cc',
+ 'Confirm!' => '¡Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Abono',
+ 'Current' => 'Actual',
+ 'Customer not on file!' => '¡El cliente no está registrado!',
+ 'Date' => 'Fecha',
+ 'Debit' => 'Cargo',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descripción',
+ 'E-mail' => 'Correo-e',
+ 'Edit Cash Transfer Transaction' => 'Modificar transferencia',
+ 'Edit General Ledger Transaction' => 'Modificar movimiento de mayor',
+ 'Equity' => 'Capital',
+ 'Expense' => 'Egreso',
+ 'FX' => 'FX',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'De',
+ 'GIFI' => 'Código GIFI',
+ 'GL Transaction' => 'Movimiento de mayor',
+ 'General Ledger' => 'Mayor',
+ 'ID' => 'Id.',
+ 'Include in Report' => 'Incluir en reporte',
+ 'Income' => 'Ingreso',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Liability' => 'Pasivo',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Nota',
+ 'Message' => 'Mensaje',
+ 'Month' => 'Mes',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Out of balance transaction!' => '¡Movimiento desbalanceado!',
+ 'Period' => 'Período',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Print' => 'Vista Preliminar',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => '¡Proyecto no registrado!',
+ 'Quarter' => 'Trimestre',
+ 'R' => 'C',
+ 'Reference' => 'Referencia',
+ 'Reports' => 'Reportes',
+ 'Sales Invoice ' => 'Factura de venta ',
+ 'Select from one of the names below' => 'Seleccione uno de los siguientes nombres',
+ 'Select from one of the projects below' => 'Seleccione uno de los siguientes proyectos',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Source' => 'Referencia',
+ 'Startdate' => 'Fecha inicial',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'A',
+ 'Transaction Date missing!' => '¡Falta la fecha del movimiento!',
+ 'Transaction deleted!' => '¡Movimiento borrado!',
+ 'Transaction posted!' => '¡Movimiento registrado!',
+ 'Update' => 'Actualizar',
+ 'Vendor Invoice ' => 'Factura de compra ',
+ 'Vendor not on file!' => '¡Proveedor no registrado!',
+ 'Warning!' => '¡Advertencia!',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+ 'sent' => 'enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'movimiento_cxp' => 'ap_transaction',
+ 'movimiento_cxc' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'movimiento_de_mayor' => 'gl_transaction',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'factura_de_venta_' => 'sales_invoice_',
+ 'actualizar' => 'update',
+ 'factura_de_compra_' => 'vendor_invoice_',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/mx/hr b/locale/mx/hr
new file mode 100755
index 00000000..3f327bd4
--- /dev/null
+++ b/locale/mx/hr
@@ -0,0 +1,117 @@
+$self{texts} = {
+ 'AP' => 'Ctas. x pagar',
+ 'Above' => 'Sobre de',
+ 'Accounting Menu' => 'Menú de contabilidad',
+ 'Active' => 'Activa',
+ 'Add Deduction' => 'Nueva deducción',
+ 'Add Employee' => 'Nuevo empleado',
+ 'Address' => 'Dirección',
+ 'Administrator' => 'Administrador',
+ 'After Deduction' => 'Después de deducciones',
+ 'All' => 'Todos',
+ 'Allowances' => 'Prestaciones',
+ 'Amount' => 'Importe',
+ 'Amount missing!' => '¡Falta el importe!',
+ 'BIC' => 'BIC',
+ 'Based on' => 'Basado en',
+ 'Before Deduction' => 'Antes de deducciones',
+ 'Below' => 'Debajo de',
+ 'City' => 'Cuidad',
+ 'Continue' => 'Continuar',
+ 'Country' => 'País',
+ 'DOB' => 'Fecha de Nacimiento',
+ 'Deduct after' => 'Deducir después',
+ 'Deduction deleted!' => '¡Deducción borrada!',
+ 'Deduction saved!' => '¡Deducción guardada!',
+ 'Deductions' => 'Decucciones',
+ 'Delete' => 'Borrar',
+ 'Description' => 'Descripción',
+ 'Description missing!' => '¡Falta la descripción!',
+ 'E-mail' => 'Correo-e',
+ 'Edit Deduction' => 'Modificar deducción',
+ 'Edit Employee' => 'Modificar empleado',
+ 'Employee' => 'Empleado',
+ 'Employee Name' => 'Nombre del empleado',
+ 'Employee Number' => 'Número de Empleado',
+ 'Employee deleted!' => '¡Empleado borrado!',
+ 'Employee pays' => 'El empleado paga',
+ 'Employee saved!' => '¡Empleado guardado!',
+ 'Employees' => 'Empleados',
+ 'Employer' => 'Patrón',
+ 'Employer pays' => 'El patrón paga',
+ 'Enddate' => 'Fecha final',
+ 'Expense' => 'Egreso',
+ 'From' => 'De',
+ 'Home Phone' => 'Teléfono de casa',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'Id.',
+ 'Include in Report' => 'Incluir en reporte',
+ 'Login' => 'Entrada al sistema',
+ 'Manager' => 'Administrador',
+ 'Maximum' => 'Máximo',
+ 'Name' => 'Nombre',
+ 'Name missing!' => '¡Falta el nombre!',
+ 'Notes' => 'Notas',
+ 'Number' => 'Número',
+ 'Orphaned' => 'Huérfano',
+ 'Payroll Deduction' => 'Deducciones de nómina',
+ 'Rate' => 'Tarifa',
+ 'Rate missing!' => '¡Falta la tarifa!',
+ 'Role' => 'Rol',
+ 'S' => 'V',
+ 'SSN' => 'RIF',
+ 'Sales' => 'Ventas',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Startdate' => 'Fecha inicial',
+ 'State/Province' => 'Estado',
+ 'Supervisor' => 'Supervisor',
+ 'To' => 'A',
+ 'Update' => 'Actualizar',
+ 'User' => 'Usuario',
+ 'Work Phone' => 'Teléfono de oficina',
+ 'Zip/Postal Code' => 'Código Postal',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'nueva_deducción' => 'add_deduction',
+ 'nuevo_empleado' => 'add_employee',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'guardar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/mx/ic b/locale/mx/ic
new file mode 100755
index 00000000..b67b2698
--- /dev/null
+++ b/locale/mx/ic
@@ -0,0 +1,277 @@
+$self{texts} = {
+ 'A' => 'E',
+ 'Accounting Menu' => 'Menú de contabilidad',
+ 'Accounts' => 'Cuentas',
+ 'Accrual' => 'Acumulado',
+ 'Active' => 'Activa',
+ 'Add' => 'Crear',
+ 'Add Assembly' => 'Nuevo ensamblaje',
+ 'Add Labor/Overhead' => 'Nueva mano de obra/indirecto',
+ 'Add Part' => 'Nueva parte',
+ 'Add Purchase Order' => 'Nueva orden de compra',
+ 'Add Quotation' => 'Nueva cotización',
+ 'Add Request for Quotation' => 'Nueva solicitud de cotización',
+ 'Add Sales Order' => 'Nueva orden de venta',
+ 'Add Service' => 'Nuevo servicio',
+ 'Address' => 'Dirección',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Assemblies' => 'Ensamblajes',
+ 'Assemblies restocked!' => 'Ensamblajes inventariados!',
+ 'Assembly' => 'Ensamblaje',
+ 'Attachment' => 'Anexo',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'BOM' => 'L. de Emp.',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Dirección de facturación',
+ 'Bin' => 'Ubicación',
+ 'Bin List' => 'Lista de ubicaciones',
+ 'Break' => 'Romper',
+ 'COGS' => 'Costo de Ventas',
+ 'Cannot delete item!' => '¡No se puede borrar el artículo!',
+ 'Cannot stock assemblies!' => '¡No se puede guardar e ensamblaje!',
+ 'Cash' => 'Bancos',
+ 'Cc' => 'Cc',
+ 'Check Inventory' => 'Verificar inventario',
+ 'City' => 'Cuidad',
+ 'Closed' => 'Cerrada',
+ 'Company Name' => 'Nombre de la empresa',
+ 'Components' => 'Componentes',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Cost' => 'Costo',
+ 'Country' => 'País',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Customer' => 'Cliente',
+ 'Customer Number' => 'Número de cliente',
+ 'Customer not on file!' => '¡El cliente no está registrado!',
+ 'Date' => 'Fecha',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Drawing' => 'Plano',
+ 'E-mail' => 'Correo-e',
+ 'E-mail address missing!' => '¡Falta la dirección de correo-e!',
+ 'E-mailed' => 'Enviado por correo-e',
+ 'Edit Assembly' => 'Modificar ensamblaje',
+ 'Edit Labor/Overhead' => 'Modificar mano de obra/indirecto',
+ 'Edit Part' => 'Modificar parte',
+ 'Edit Service' => 'Modificar servicio',
+ 'Employee' => 'Empleado',
+ 'Expense' => 'Egreso',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'De',
+ 'Group' => 'Grupo',
+ 'Image' => 'Imagen',
+ 'In-line' => 'En linea',
+ 'Include in Report' => 'Incluir en reporte',
+ 'Income' => 'Ingreso',
+ 'Individual Items' => 'Artículos individuales',
+ 'Inventory' => 'Inventario',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => '¡Las existencias deben ser cero antes de poder cambiar el ensamblaje a obsoleto!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => '¡Las existencias deben ser cero antes de poder cambiar esta parte a obsoleta!',
+ 'Invoice' => 'Factura',
+ 'Invoice Date missing!' => '¡Falta la fecha de la factura!',
+ 'Invoice Number' => 'Número de factura',
+ 'Invoice Number missing!' => 'Falta el número de factura!',
+ 'Item deleted!' => '¡Articulo borrado!',
+ 'Item not on file!' => '¡El artículo no está registrado!',
+ 'Items' => 'Partidas',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Labor/Overhead' => 'Mano de obra/Indirecto',
+ 'Leadtime' => 'Duración del proceso',
+ 'Line Total' => 'Existencia',
+ 'Link Accounts' => 'Enlazar cuentas',
+ 'List' => 'Lista',
+ 'List Price' => 'Precio de lista',
+ 'Make' => 'Marca',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'Markup' => 'Marcar',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Message' => 'Mensaje',
+ 'Microfiche' => 'Microficha',
+ 'Model' => 'Modelo',
+ 'Name' => 'Nombre',
+ 'No.' => 'Num.',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'Falta el número en el renglón',
+ 'Obsolete' => 'Obsoleto',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'On Hand' => 'Existencias',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Date missing!' => '¡Falta la fecha de la orden!',
+ 'Order Number' => 'Número de la orden',
+ 'Order Number missing!' => 'Falta el número de la orden!',
+ 'Orphaned' => 'Huérfano',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de empaque',
+ 'Packing List Date missing!' => '¡Falta la fecha en la lista de empaque!',
+ 'Packing List Number missing!' => '¡Falta le número en la lista de empaque!',
+ 'Part' => 'Parte',
+ 'Parts' => 'Partes',
+ 'Period' => 'Período',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Selección',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Pricegroup' => 'Grupo de precios',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Purchase Order' => 'Orden de compra',
+ 'Purchase Orders' => 'Ordenes de compra',
+ 'Qty' => 'Cant.',
+ 'Quantity exceeds available units to stock!' => '¡La cantidad excede al inventario disponible!',
+ 'Quotation' => 'Cotización',
+ 'Quotation Date missing!' => '¡Falta la fecha de la cotización!',
+ 'Quotation Number missing!' => '¡Falta el número de la cotización!',
+ 'Quotations' => 'Cotizaciones',
+ 'RFQ' => 'Sol. de Cot.',
+ 'ROP' => 'Pto. de Reord.',
+ 'Recd' => 'Recb.',
+ 'Required by' => 'Vencimiento',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Factura de venta',
+ 'Sales Invoices' => 'Facturas de venta',
+ 'Sales Order' => 'Orden de venta',
+ 'Sales Orders' => 'Ordenes de venta',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los siguientes nombres',
+ 'Select txt, postscript or PDF!' => '¡Seleccione txt, postscript o PDF!',
+ 'Sell' => 'Vender',
+ 'Sell Price' => 'Precio de venta',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'Núm. de serie',
+ 'Serial Number' => 'Número de serie',
+ 'Service' => 'Servicio',
+ 'Services' => 'Servicios',
+ 'Ship' => 'Enviar',
+ 'Ship to' => 'Enviar a',
+ 'Shipping Address' => 'Dirección de envío',
+ 'Short' => 'Corto',
+ 'State/Province' => 'Estado',
+ 'Stock' => 'Inventario',
+ 'Stock Assembly' => 'Inventariar ensamblaje',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resumen',
+ 'Tax' => 'Impuesto',
+ 'To' => 'A',
+ 'Top Level' => 'Nivel Superior',
+ 'Translation not on file!' => 'Traducción no se encuentra en la Base de Datos',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Updated' => 'Actualizado',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice' => 'Factura de compra',
+ 'Vendor Invoices' => 'Facturas de compra',
+ 'Vendor Number' => 'Número de proveedor',
+ 'Vendor not on file!' => '¡Proveedor no registrado!',
+ 'Warehouse' => 'Almacén',
+ 'Weight' => 'Peso',
+ 'What type of item is this?' => '¿Que tipo de articulo es este?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Year' => 'Año',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'days' => 'días',
+ 'sent' => 'enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'nuevo_ensamblaje' => 'add_assembly',
+ 'nueva_mano_de_obra_indirecto' => 'add_labor_overhead',
+ 'nueva_parte' => 'add_part',
+ 'nuevo_servicio' => 'add_service',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'modificar_ensamblaje' => 'edit_assembly',
+ 'modificar_parte' => 'edit_part',
+ 'modificar_servicio' => 'edit_service',
+ 'guardar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/mx/io b/locale/mx/io
new file mode 100755
index 00000000..b77af1d6
--- /dev/null
+++ b/locale/mx/io
@@ -0,0 +1,130 @@
+$self{texts} = {
+ 'Add Purchase Order' => 'Nueva orden de compra',
+ 'Add Quotation' => 'Nueva cotización',
+ 'Add Request for Quotation' => 'Nueva solicitud de cotización',
+ 'Add Sales Order' => 'Nueva orden de venta',
+ 'Address' => 'Dirección',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Attachment' => 'Anexo',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Dirección de facturación',
+ 'Bin' => 'Ubicación',
+ 'Bin List' => 'Lista de ubicaciones',
+ 'Cc' => 'Cc',
+ 'City' => 'Cuidad',
+ 'Company Name' => 'Nombre de la empresa',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Country' => 'País',
+ 'Customer Number' => 'Número de cliente',
+ 'Date' => 'Fecha',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Description' => 'Descripción',
+ 'E-mail' => 'Correo-e',
+ 'E-mail address missing!' => '¡Falta la dirección de correo-e!',
+ 'E-mailed' => 'Enviado por correo-e',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'Group' => 'Grupo',
+ 'In-line' => 'En linea',
+ 'Invoice' => 'Factura',
+ 'Invoice Date missing!' => '¡Falta la fecha de la factura!',
+ 'Invoice Number missing!' => 'Falta el número de factura!',
+ 'Item not on file!' => '¡El artículo no está registrado!',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Message' => 'Mensaje',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'Falta el número en el renglón',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Order Date missing!' => '¡Falta la fecha de la orden!',
+ 'Order Number missing!' => 'Falta el número de la orden!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de empaque',
+ 'Packing List Date missing!' => '¡Falta la fecha en la lista de empaque!',
+ 'Packing List Number missing!' => '¡Falta le número en la lista de empaque!',
+ 'Part' => 'Parte',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Selección',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Purchase Order' => 'Orden de compra',
+ 'Qty' => 'Cant.',
+ 'Quotation' => 'Cotización',
+ 'Quotation Date missing!' => '¡Falta la fecha de la cotización!',
+ 'Quotation Number missing!' => '¡Falta el número de la cotización!',
+ 'Recd' => 'Recb.',
+ 'Required by' => 'Vencimiento',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Orden de venta',
+ 'Screen' => 'Pantalla',
+ 'Select txt, postscript or PDF!' => '¡Seleccione txt, postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'Núm. de serie',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Enviar',
+ 'Ship to' => 'Enviar a',
+ 'Shipping Address' => 'Dirección de envío',
+ 'State/Province' => 'Estado',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'A',
+ 'Translation not on file!' => 'Traducción no se encuentra en la Base de Datos',
+ 'Unit' => 'Unidad',
+ 'Vendor Number' => 'Número de proveedor',
+ 'What type of item is this?' => '¿Que tipo de articulo es este?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'sent' => 'enviado',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/mx/ir b/locale/mx/ir
new file mode 100755
index 00000000..0ed0435e
--- /dev/null
+++ b/locale/mx/ir
@@ -0,0 +1,224 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de contabilidad',
+ 'Add Purchase Order' => 'Nueva orden de compra',
+ 'Add Quotation' => 'Nueva cotización',
+ 'Add Request for Quotation' => 'Nueva solicitud de cotización',
+ 'Add Sales Order' => 'Nueva orden de venta',
+ 'Add Vendor Invoice' => 'Nueva factura de compra',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Importe',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => '¿Está Ud. seguro de querer borrar la factura No.:',
+ 'Attachment' => 'Anexo',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Dirección de facturación',
+ 'Bin' => 'Ubicación',
+ 'Bin List' => 'Lista de ubicaciones',
+ 'Cannot delete invoice!' => '¡No se puede borrar la factura!',
+ 'Cannot post invoice for a closed period!' => '¡No se puede registrar una factura para un periodo cerrado!',
+ 'Cannot post invoice!' => '¡No se puede registrar la factura!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago para un periodo cerrado!',
+ 'Cc' => 'Cc',
+ 'City' => 'Cuidad',
+ 'Company Name' => 'Nombre de la empresa',
+ 'Confirm!' => '¡Confirmar!',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Country' => 'País',
+ 'Credit Limit' => 'Límite de crédito',
+ 'Currency' => 'Moneda',
+ 'Customer Number' => 'Número de cliente',
+ 'Customer not on file!' => '¡El cliente no está registrado!',
+ 'Date' => 'Fecha',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descripción',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'E-mail' => 'Correo-e',
+ 'E-mail address missing!' => '¡Falta la dirección de correo-e!',
+ 'E-mailed' => 'Enviado por correo-e',
+ 'Edit Vendor Invoice' => 'Modificar factura de compra',
+ 'Exch' => 'T. de C.',
+ 'Exchange Rate' => 'Tipo de cambio',
+ 'Exchange rate for payment missing!' => '¡Falta el tipo de cambio para el pago!',
+ 'Exchange rate missing!' => '¡Falta el tipo de cambio!',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'Group' => 'Grupo',
+ 'In-line' => 'En linea',
+ 'Internal Notes' => 'Notas internas',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => '¡Falta la fecha de la factura!',
+ 'Invoice Number' => 'Número de factura',
+ 'Invoice Number missing!' => 'Falta el número de factura!',
+ 'Invoice deleted!' => '¡Factura borrada!',
+ 'Item not on file!' => '¡El artículo no está registrado!',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Language' => 'Lenguaje',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Nota',
+ 'Message' => 'Mensaje',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'Falta el número en el renglón',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Order Date missing!' => '¡Falta la fecha de la orden!',
+ 'Order Number' => 'Número de la orden',
+ 'Order Number missing!' => 'Falta el número de la orden!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de empaque',
+ 'Packing List Date missing!' => '¡Falta la fecha en la lista de empaque!',
+ 'Packing List Number missing!' => '¡Falta le número en la lista de empaque!',
+ 'Part' => 'Parte',
+ 'Payment date missing!' => '¡Falta la fecha del pago!',
+ 'Payments' => 'Pagos',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Selección',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Print' => 'Vista Preliminar',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => '¡Proyecto no registrado!',
+ 'Purchase Order' => 'Orden de compra',
+ 'Qty' => 'Cant.',
+ 'Quotation' => 'Cotización',
+ 'Quotation Date missing!' => '¡Falta la fecha de la cotización!',
+ 'Quotation Number missing!' => '¡Falta el número de la cotización!',
+ 'Recd' => 'Recb.',
+ 'Record in' => 'Registrar en',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Disponible',
+ 'Required by' => 'Vencimiento',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Orden de venta',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los siguientes nombres',
+ 'Select from one of the projects below' => 'Seleccione uno de los siguientes proyectos',
+ 'Select txt, postscript or PDF!' => '¡Seleccione txt, postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'Núm. de serie',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Enviar',
+ 'Ship to' => 'Enviar a',
+ 'Shipping Address' => 'Dirección de envío',
+ 'Source' => 'Referencia',
+ 'Startdate' => 'Fecha inicial',
+ 'State/Province' => 'Estado',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Tax Included' => 'Impuesto Incluido',
+ 'To' => 'A',
+ 'Total' => 'Total',
+ 'Translation not on file!' => 'Traducción no se encuentra en la Base de Datos',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Number' => 'Número de proveedor',
+ 'Vendor missing!' => '¡Falta el proveedor!',
+ 'Vendor not on file!' => '¡Proveedor no registrado!',
+ 'Warning!' => '¡Advertencia!',
+ 'What type of item is this?' => '¿Que tipo de articulo es este?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Yes' => 'Si',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'ea' => 'pza',
+ 'posted!' => '¡registrado!',
+ 'sent' => 'enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'orden_de_compra' => 'purchase_order',
+ 'actualizar' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/mx/is b/locale/mx/is
new file mode 100755
index 00000000..9cef1dab
--- /dev/null
+++ b/locale/mx/is
@@ -0,0 +1,235 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de contabilidad',
+ 'Add Purchase Order' => 'Nueva orden de compra',
+ 'Add Quotation' => 'Nueva cotización',
+ 'Add Request for Quotation' => 'Nueva solicitud de cotización',
+ 'Add Sales Invoice' => 'Nueva factura de venta',
+ 'Add Sales Order' => 'Nueva orden de venta',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Importe',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => '¿Está Ud. seguro de querer borrar la factura No.:',
+ 'Attachment' => 'Anexo',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Dirección de facturación',
+ 'Bin' => 'Ubicación',
+ 'Bin List' => 'Lista de ubicaciones',
+ 'Business' => 'Negocio',
+ 'Cannot delete invoice!' => '¡No se puede borrar la factura!',
+ 'Cannot post invoice for a closed period!' => '¡No se puede registrar una factura para un periodo cerrado!',
+ 'Cannot post invoice!' => '¡No se puede registrar la factura!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago para un periodo cerrado!',
+ 'Cc' => 'Cc',
+ 'City' => 'Cuidad',
+ 'Company Name' => 'Nombre de la empresa',
+ 'Confirm!' => '¡Confirmar!',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Country' => 'País',
+ 'Credit Limit' => 'Límite de crédito',
+ 'Currency' => 'Moneda',
+ 'Customer' => 'Cliente',
+ 'Customer Number' => 'Número de cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no está registrado!',
+ 'Date' => 'Fecha',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descripción',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'E-mail' => 'Correo-e',
+ 'E-mail address missing!' => '¡Falta la dirección de correo-e!',
+ 'E-mailed' => 'Enviado por correo-e',
+ 'Edit Sales Invoice' => 'Modificar factura de venta',
+ 'Exch' => 'T. de C.',
+ 'Exchange Rate' => 'Tipo de cambio',
+ 'Exchange rate for payment missing!' => '¡Falta el tipo de cambio para el pago!',
+ 'Exchange rate missing!' => '¡Falta el tipo de cambio!',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'Group' => 'Grupo',
+ 'In-line' => 'En linea',
+ 'Internal Notes' => 'Notas internas',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => '¡Falta la fecha de la factura!',
+ 'Invoice Number' => 'Número de factura',
+ 'Invoice Number missing!' => 'Falta el número de factura!',
+ 'Invoice deleted!' => '¡Factura borrada!',
+ 'Item not on file!' => '¡El artículo no está registrado!',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Nota',
+ 'Message' => 'Mensaje',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'Falta el número en el renglón',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Order Date missing!' => '¡Falta la fecha de la orden!',
+ 'Order Number' => 'Número de la orden',
+ 'Order Number missing!' => 'Falta el número de la orden!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de empaque',
+ 'Packing List Date missing!' => '¡Falta la fecha en la lista de empaque!',
+ 'Packing List Number missing!' => '¡Falta le número en la lista de empaque!',
+ 'Part' => 'Parte',
+ 'Payment date missing!' => '¡Falta la fecha del pago!',
+ 'Payments' => 'Pagos',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Selección',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Print' => 'Vista Preliminar',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => '¡Proyecto no registrado!',
+ 'Purchase Order' => 'Orden de compra',
+ 'Qty' => 'Cant.',
+ 'Quotation' => 'Cotización',
+ 'Quotation Date missing!' => '¡Falta la fecha de la cotización!',
+ 'Quotation Number missing!' => '¡Falta el número de la cotización!',
+ 'Recd' => 'Recb.',
+ 'Record in' => 'Registrar en',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Disponible',
+ 'Required by' => 'Vencimiento',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Orden de venta',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los siguientes nombres',
+ 'Select from one of the projects below' => 'Seleccione uno de los siguientes proyectos',
+ 'Select postscript or PDF!' => 'Seleccione Postcript o PDF',
+ 'Select txt, postscript or PDF!' => '¡Seleccione txt, postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'Núm. de serie',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Enviar',
+ 'Ship to' => 'Enviar a',
+ 'Ship via' => 'Enviar por',
+ 'Shipping Address' => 'Dirección de envío',
+ 'Shipping Point' => 'Punto de envío',
+ 'Source' => 'Referencia',
+ 'Startdate' => 'Fecha inicial',
+ 'State/Province' => 'Estado',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Tax Included' => 'Impuesto Incluido',
+ 'To' => 'A',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Descuento comercial',
+ 'Translation not on file!' => 'Traducción no se encuentra en la Base de Datos',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Vendor Number' => 'Número de proveedor',
+ 'Vendor not on file!' => '¡Proveedor no registrado!',
+ 'Warning!' => '¡Advertencia!',
+ 'What type of item is this?' => '¿Que tipo de articulo es este?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Yes' => 'Si',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'ea' => 'pza',
+ 'posted!' => '¡registrado!',
+ 'sent' => 'enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'correo_e' => 'e_mail',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'vista_preliminar' => 'print',
+ 'imprimir_y_registrar' => 'print_and_post',
+ 'orden_de_venta' => 'sales_order',
+ 'enviar_a' => 'ship_to',
+ 'actualizar' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/mx/jc b/locale/mx/jc
new file mode 100755
index 00000000..7d8b186e
--- /dev/null
+++ b/locale/mx/jc
@@ -0,0 +1,92 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menú de contabilidad',
+ 'Amount' => 'Importe',
+ 'Closed' => 'Cerrada',
+ 'Confirm!' => '¡Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Cost' => 'Costo',
+ 'Current' => 'Actual',
+ 'Date' => 'Fecha',
+ 'Date missing!' => '¡Falta la fecha!',
+ 'Delete' => 'Borrar',
+ 'Description' => 'Descripción',
+ 'Employee' => 'Empleado',
+ 'From' => 'De',
+ 'ID' => 'Id.',
+ 'Include in Report' => 'Incluir en reporte',
+ 'Month' => 'Mes',
+ 'Notes' => 'Notas',
+ 'Open' => 'Abierto',
+ 'PDF' => 'PDF',
+ 'Period' => 'Período',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Vista Preliminar',
+ 'Print and Save' => 'Imprimir y Guardar',
+ 'Printed' => 'Impreso',
+ 'Project Number' => 'Número de proyecto',
+ 'Project Number missing!' => 'Falta número de proyecto',
+ 'Qty' => 'Cant.',
+ 'Quarter' => 'Trimestre',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Screen' => 'Pantalla',
+ 'Select postscript or PDF!' => 'Seleccione Postcript o PDF',
+ 'Startdate' => 'Fecha inicial',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'A',
+ 'Total' => 'Total',
+ 'Update' => 'Actualizar',
+ 'Warning!' => '¡Advertencia!',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'vista_preliminar' => 'print',
+ 'imprimir_y_guardar' => 'print_and_save',
+ 'guardar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/mx/locales.pl b/locale/mx/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/mx/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/mx/login b/locale/mx/login
new file mode 100755
index 00000000..3e4c74d9
--- /dev/null
+++ b/locale/mx/login
@@ -0,0 +1,24 @@
+$self{texts} = {
+ 'Company' => 'Empresa',
+ 'Continue' => 'Continuar',
+ 'Dataset is newer than version!' => '¡El conjunto de datos es mas reciente que la versión del programa!',
+ 'Incorrect Dataset version!' => '¡La Versión del conjunto de datos es incorrecta!',
+ 'Login' => 'Entrada al sistema',
+ 'Name' => 'Nombre',
+ 'Password' => 'Contraseña',
+ 'Upgrading to Version' => 'Actualizando a versión',
+ 'Version' => 'Versión',
+ 'You did not enter a name!' => '¡No ingresó un nombre!',
+ 'done' => 'listo',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ 'entrada_al_sistema' => 'login',
+};
+
+1;
+
diff --git a/locale/mx/menu b/locale/mx/menu
new file mode 100755
index 00000000..2287b608
--- /dev/null
+++ b/locale/mx/menu
@@ -0,0 +1,135 @@
+$self{texts} = {
+ 'AP' => 'Ctas. x pagar',
+ 'AP Aging' => 'Vencimiento CxP',
+ 'AP Transaction' => 'Movimiento CxP',
+ 'AR' => 'Ctas. x cobrar',
+ 'AR Aging' => 'Vencimiento CxC',
+ 'AR Transaction' => 'Movimiento CxC',
+ 'Accounting Menu' => 'Menú de contabilidad',
+ 'Add Account' => 'Nueva cuenta',
+ 'Add Assembly' => 'Nuevo ensamblaje',
+ 'Add Business' => 'Nuevo negocio',
+ 'Add Customer' => 'Nuevo cliente',
+ 'Add Department' => 'Nuevo departamento',
+ 'Add Employee' => 'Nuevo empleado',
+ 'Add GIFI' => 'Nuevo GIFI',
+ 'Add Group' => 'Nuevo grupo',
+ 'Add Labor/Overhead' => 'Nueva mano de obra/indirecto',
+ 'Add Language' => 'Nuevo lenguaje',
+ 'Add Part' => 'Nueva parte',
+ 'Add Pricegroup' => 'Nuevo grupo de precios',
+ 'Add Project' => 'Nuevo proyecto',
+ 'Add SIC' => 'Nuevo SIC',
+ 'Add Service' => 'Nuevo servicio',
+ 'Add Transaction' => 'Nuevo movimiento',
+ 'Add Vendor' => 'Nuevo proveedor',
+ 'Add Warehouse' => 'Nuevo almacén',
+ 'All Items' => 'Todas las partidas',
+ 'Assemblies' => 'Ensamblajes',
+ 'Audit Control' => 'Control de auditoría',
+ 'Backup' => 'Respaldo',
+ 'Balance Sheet' => 'Balance general',
+ 'Bin List' => 'Lista de ubicaciones',
+ 'Bin Lists' => 'Listas de ubicaciones',
+ 'Cash' => 'Bancos',
+ 'Chart of Accounts' => 'Catálogo de cuentas',
+ 'Check' => 'Cheque',
+ 'Components' => 'Componentes',
+ 'Customers' => 'Clientes',
+ 'Defaults' => 'Defaults',
+ 'Departments' => 'Departamentos',
+ 'Description' => 'Descripción',
+ 'Employees' => 'Empleados',
+ 'General Ledger' => 'Mayor',
+ 'Goods & Services' => 'Partes y servicios',
+ 'Groups' => 'Grupos',
+ 'HR' => 'RH',
+ 'HTML Templates' => 'Plantillas HTML',
+ 'History' => 'Historia',
+ 'Income Statement' => 'Estado de resultados',
+ 'Invoice' => 'Factura',
+ 'LaTeX Templates' => 'Plantillas LaTeX',
+ 'Labor/Overhead' => 'Mano de obra/Indirecto',
+ 'Language' => 'Lenguaje',
+ 'List Accounts' => 'Enlistar cuentas',
+ 'List Businesses' => 'Enlistar negocios',
+ 'List Departments' => 'Enlistar departamentos',
+ 'List GIFI' => 'Enlistar GIFI',
+ 'List Languages' => 'Enlistar lenguajes',
+ 'List Projects' => 'Enlistar proyectos',
+ 'List SIC' => 'Enlistar SIC',
+ 'List Warehouses' => 'Enlistar almacenes',
+ 'Logout' => 'Salida del sistema',
+ 'New Window' => 'Nueva Ventana',
+ 'Non-taxable' => 'Exento',
+ 'Open' => 'Abierto',
+ 'Order Entry' => 'Ordenes',
+ 'Outstanding' => 'Pendiente',
+ 'POS' => 'Pto. de Vta.',
+ 'POS Invoice' => 'Ticket',
+ 'Packing List' => 'Lista de empaque',
+ 'Packing Lists' => 'Listas de empaque',
+ 'Parts' => 'Partes',
+ 'Payment' => 'Pago',
+ 'Payments' => 'Pagos',
+ 'Pick List' => 'Lista de Selección',
+ 'Pick Lists' => 'Listas de Selección',
+ 'Preferences' => 'Preferencias',
+ 'Pricegroups' => 'Grupos de precios',
+ 'Print' => 'Vista Preliminar',
+ 'Projects' => 'Proyectos',
+ 'Purchase Order' => 'Orden de compra',
+ 'Purchase Orders' => 'Ordenes de compra',
+ 'Quotation' => 'Cotización',
+ 'Quotations' => 'Cotizaciones',
+ 'RFQ' => 'Sol. de Cot.',
+ 'RFQs' => 'Sols. de Cots.',
+ 'Receipt' => 'Cobro',
+ 'Receipts' => 'Cobros',
+ 'Receive' => 'Recibir',
+ 'Reconciliation' => 'Conciliación',
+ 'Reports' => 'Reportes',
+ 'SIC' => 'SIC',
+ 'Sale' => 'Venta',
+ 'Sales Invoice' => 'Factura de venta',
+ 'Sales Invoices' => 'Facturas de venta',
+ 'Sales Order' => 'Orden de venta',
+ 'Sales Orders' => 'Ordenes de venta',
+ 'Save to File' => 'Guardar en un archivo',
+ 'Search' => 'Buscar',
+ 'Send by E-Mail' => 'Enviar por correo-e',
+ 'Services' => 'Servicios',
+ 'Ship' => 'Enviar',
+ 'Shipping' => 'Envío',
+ 'Statement' => 'Estado de cuenta',
+ 'Stock Assembly' => 'Inventariar ensamblaje',
+ 'Stylesheet' => 'Hoja de estilos',
+ 'System' => 'Sistema',
+ 'Tax collected' => 'Impuesto Retenido',
+ 'Tax paid' => 'Impuesto Pagado',
+ 'Text Templates' => 'Plantillas de texto',
+ 'Transactions' => 'Movimientos',
+ 'Transfer' => 'Transferir',
+ 'Transfer Inventory' => 'Transferir inventario',
+ 'Translations' => 'Traducciones',
+ 'Trial Balance' => 'Balanza de comprobación',
+ 'Type of Business' => 'Tipo de negocio',
+ 'Vendor Invoice' => 'Factura de compra',
+ 'Vendors' => 'Proveedores',
+ 'Version' => 'Versión',
+ 'Warehouses' => 'Almacenes',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Work Orders' => 'Órdenes de Trabajo',
+ 'Yearend' => 'Cierre de periodo',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/mx/oe b/locale/mx/oe
new file mode 100755
index 00000000..db3cd7d9
--- /dev/null
+++ b/locale/mx/oe
@@ -0,0 +1,321 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menú de contabilidad',
+ 'Add Exchange Rate' => 'Nuevo tipo de cambio',
+ 'Add Purchase Order' => 'Nueva orden de compra',
+ 'Add Quotation' => 'Nueva cotización',
+ 'Add Request for Quotation' => 'Nueva solicitud de cotización',
+ 'Add Sales Invoice' => 'Nueva factura de venta',
+ 'Add Sales Order' => 'Nueva orden de venta',
+ 'Add Vendor Invoice' => 'Nueva factura de compra',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Importe',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Order Number' => '¿Está Ud. seguro de querer borrar la orden No.:',
+ 'Are you sure you want to delete Quotation Number' => '¿Está Ud. seguro de querer borrar la cotización No.:',
+ 'Attachment' => 'Anexo',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Dirección de facturación',
+ 'Bin' => 'Ubicación',
+ 'Bin List' => 'Lista de ubicaciones',
+ 'Business' => 'Negocio',
+ 'C' => 'C',
+ 'Cannot delete order!' => '¡No se puede borrar la orden!',
+ 'Cannot delete quotation!' => '¡No se puede borrar la cotización!',
+ 'Cannot save order!' => '¡No se puede guardar la orden!',
+ 'Cannot save quotation!' => '¡No se puede guardar la cotización!',
+ 'Cc' => 'Cc',
+ 'City' => 'Cuidad',
+ 'Closed' => 'Cerrada',
+ 'Company Name' => 'Nombre de la empresa',
+ 'Confirm!' => '¡Confirmar!',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Cost' => 'Costo',
+ 'Could not save!' => '¡No se pudo guardar!',
+ 'Could not transfer Inventory!' => '¡No se pudo transferir el inventario',
+ 'Country' => 'País',
+ 'Credit Limit' => 'Límite de crédito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer Number' => 'Número de cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no está registrado!',
+ 'Date' => 'Fecha',
+ 'Date Received' => 'Fecha de recibo',
+ 'Date received missing!' => '¡Falta la fecha de recibo!',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descripción',
+ 'Done' => 'Listo',
+ 'E-mail' => 'Correo-e',
+ 'E-mail address missing!' => '¡Falta la dirección de correo-e!',
+ 'E-mailed' => 'Enviado por correo-e',
+ 'Edit Purchase Order' => 'Modificar orden de compra',
+ 'Edit Quotation' => 'Modificar cotización',
+ 'Edit Request for Quotation' => 'Modificar solicitud de cotización',
+ 'Edit Sales Order' => 'Modificar orden de venta',
+ 'Employee' => 'Empleado',
+ 'Exchange Rate' => 'Tipo de cambio',
+ 'Exchange rate missing!' => '¡Falta el tipo de cambio!',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'De',
+ 'Group' => 'Grupo',
+ 'ID' => 'Id.',
+ 'In-line' => 'En linea',
+ 'Include in Report' => 'Incluir en reporte',
+ 'Internal Notes' => 'Notas internas',
+ 'Inventory saved!' => '¡Existencias guardadas!',
+ 'Inventory transferred!' => '¡Existencias transferidas!',
+ 'Invoice' => 'Factura',
+ 'Invoice Date missing!' => '¡Falta la fecha de la factura!',
+ 'Invoice Number missing!' => 'Falta el número de factura!',
+ 'Item not on file!' => '¡El artículo no está registrado!',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Manager' => 'Administrador',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Message' => 'Mensaje',
+ 'Month' => 'Mes',
+ 'No.' => 'Num.',
+ 'Notes' => 'Notas',
+ 'Nothing entered!' => '¡No se suministro nada!',
+ 'Nothing selected!' => '¡No se seleccionó nada!',
+ 'Nothing to transfer!' => '¡Nada que transferir!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'Falta el número en el renglón',
+ 'O' => 'A',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Date' => 'Fecha de la orden',
+ 'Order Date missing!' => '¡Falta la fecha de la orden!',
+ 'Order Number' => 'Número de la orden',
+ 'Order Number missing!' => 'Falta el número de la orden!',
+ 'Order deleted!' => '¡Orden borrada!',
+ 'Order saved!' => '¡Orden guardada!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de empaque',
+ 'Packing List Date missing!' => '¡Falta la fecha en la lista de empaque!',
+ 'Packing List Number missing!' => '¡Falta le número en la lista de empaque!',
+ 'Part' => 'Parte',
+ 'Period' => 'Período',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Selección',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Print' => 'Vista Preliminar',
+ 'Print and Save' => 'Imprimir y Guardar',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => '¡Proyecto no registrado!',
+ 'Purchase Order' => 'Orden de compra',
+ 'Purchase Orders' => 'Ordenes de compra',
+ 'Qty' => 'Cant.',
+ 'Quarter' => 'Trimestre',
+ 'Quotation' => 'Cotización',
+ 'Quotation ' => 'Cotización ',
+ 'Quotation Date' => 'Fecha de cotización',
+ 'Quotation Date missing!' => '¡Falta la fecha de la cotización!',
+ 'Quotation Number' => 'Número de cotización',
+ 'Quotation Number missing!' => '¡Falta el número de la cotización!',
+ 'Quotation deleted!' => '¡Cotización borrada!',
+ 'Quotations' => 'Cotizaciones',
+ 'RFQ' => 'Sol. de Cot.',
+ 'RFQ ' => 'Sol. de Cot. ',
+ 'RFQ Number' => 'Número de Sol. de Cot.',
+ 'Recd' => 'Recb.',
+ 'Receive Merchandise' => 'Recibir mercancía',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Disponible',
+ 'Request for Quotation' => 'Solicitud de cotización',
+ 'Request for Quotations' => 'Solicitudes de cotización',
+ 'Required by' => 'Vencimiento',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Factura de venta',
+ 'Sales Order' => 'Orden de venta',
+ 'Sales Orders' => 'Ordenes de venta',
+ 'Salesperson' => 'Vendedor',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los siguientes nombres',
+ 'Select from one of the projects below' => 'Seleccione uno de los siguientes proyectos',
+ 'Select postscript or PDF!' => 'Seleccione Postcript o PDF',
+ 'Select txt, postscript or PDF!' => '¡Seleccione txt, postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'Núm. de serie',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Enviar',
+ 'Ship Merchandise' => 'Enviar mercancías',
+ 'Ship to' => 'Enviar a',
+ 'Ship via' => 'Enviar por',
+ 'Shipping Address' => 'Dirección de envío',
+ 'Shipping Date' => 'Fecha de envío',
+ 'Shipping Date missing!' => '¡Falta la fecha de envío!',
+ 'Shipping Point' => 'Punto de envío',
+ 'Startdate' => 'Fecha inicial',
+ 'State/Province' => 'Estado',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Tax' => 'Impuesto',
+ 'Tax Included' => 'Impuesto Incluido',
+ 'Terms' => 'Condiciones',
+ 'To' => 'A',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Descuento comercial',
+ 'Transfer' => 'Transferir',
+ 'Transfer Inventory' => 'Transferir inventario',
+ 'Transfer to' => 'Transferir a',
+ 'Translation not on file!' => 'Traducción no se encuentra en la Base de Datos',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Valid until' => 'Válido hasta',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice' => 'Factura de compra',
+ 'Vendor Number' => 'Número de proveedor',
+ 'Vendor missing!' => '¡Falta el proveedor!',
+ 'Vendor not on file!' => '¡Proveedor no registrado!',
+ 'Warehouse' => 'Almacén',
+ 'Warning!' => '¡Advertencia!',
+ 'What type of item is this?' => '¿Que tipo de articulo es este?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'days' => 'días',
+ 'ea' => 'pza',
+ 'sent' => 'enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'listo' => 'done',
+ 'correo_e' => 'e_mail',
+ 'vista_preliminar' => 'print',
+ 'imprimir_y_guardar' => 'print_and_save',
+ 'orden_de_compra' => 'purchase_order',
+ 'cotización' => 'quotation',
+ 'cotización_' => 'quotation_',
+ 'sol._de_cot_' => 'rfq',
+ 'sol._de_cot._' => 'rfq_',
+ 'factura_de_venta' => 'sales_invoice',
+ 'orden_de_venta' => 'sales_order',
+ 'guardar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'enviar_a' => 'ship_to',
+ 'transferir' => 'transfer',
+ 'actualizar' => 'update',
+ 'factura_de_compra' => 'vendor_invoice',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/mx/pe b/locale/mx/pe
new file mode 100755
index 00000000..2f576e49
--- /dev/null
+++ b/locale/mx/pe
@@ -0,0 +1,141 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menú de contabilidad',
+ 'Active' => 'Activa',
+ 'Add' => 'Crear',
+ 'Add Group' => 'Nuevo grupo',
+ 'Add Pricegroup' => 'Nuevo grupo de precios',
+ 'Add Project' => 'Nuevo proyecto',
+ 'Address' => 'Dirección',
+ 'All' => 'Todos',
+ 'Amount' => 'Importe',
+ 'Assembly' => 'Ensamblaje',
+ 'Bin' => 'Ubicación',
+ 'Continue' => 'Continuar',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no está registrado!',
+ 'Date' => 'Fecha',
+ 'Delete' => 'Borrar',
+ 'Description' => 'Descripción',
+ 'Description Translations' => 'Traducciones de la descripción',
+ 'Detail' => 'Detalle',
+ 'Edit Description Translations' => 'Modificar traducciones de descripción',
+ 'Edit Group' => 'Modificar grupo',
+ 'Edit Pricegroup' => 'Modificar precio de grupo',
+ 'Edit Project' => 'Modificar proyecto',
+ 'Employee' => 'Empleado',
+ 'Enddate' => 'Fecha final',
+ 'From' => 'De',
+ 'Group' => 'Grupo',
+ 'Group Translations' => 'Traducciones de grupo',
+ 'Group deleted!' => '¡Grupo borrado!',
+ 'Group missing!' => '¡Falta el grupo!',
+ 'Group saved!' => '¡Grupo guardado!',
+ 'Groups' => 'Grupos',
+ 'Income' => 'Ingreso',
+ 'Language' => 'Lenguaje',
+ 'Languages not defined!' => '¡Lenguajes no definido!',
+ 'Link Accounts' => 'Enlazar cuentas',
+ 'List Price' => 'Precio de lista',
+ 'Month' => 'Mes',
+ 'Notes' => 'Notas',
+ 'Nothing selected!' => '¡No se seleccionó nada!',
+ 'Number' => 'Número',
+ 'Orphaned' => 'Huérfano',
+ 'Period' => 'Período',
+ 'Pricegroup' => 'Grupo de precios',
+ 'Pricegroup deleted!' => '¡Grupo de precios borrado!',
+ 'Pricegroup missing!' => '¡Falta el grupo de precios!',
+ 'Pricegroup saved!' => '¡Grupo de precios guardado!',
+ 'Pricegroups' => 'Grupos de precios',
+ 'Project' => 'Proyecto',
+ 'Project Description Translations' => 'Traducciones de descripción de proyecto',
+ 'Project Number' => 'Número de proyecto',
+ 'Project deleted!' => '¡Proyecto borrado!',
+ 'Project saved!' => '¡Proyecto registrado!',
+ 'Projects' => 'Proyectos',
+ 'Qty' => 'Cant.',
+ 'Quarter' => 'Trimestre',
+ 'Save' => 'Guardar',
+ 'Select from one of the names below' => 'Seleccione uno de los siguientes nombres',
+ 'Sell Price' => 'Precio de venta',
+ 'Startdate' => 'Fecha inicial',
+ 'Summary' => 'Resumen',
+ 'Tax' => 'Impuesto',
+ 'To' => 'A',
+ 'Translation' => 'Traducción',
+ 'Translation deleted!' => '¡Traducción borrada!',
+ 'Translations saved!' => '¡Traducciones guardadas!',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Updated' => 'Actualizado',
+ 'Vendor' => 'Proveedor',
+ 'Vendor not on file!' => '¡Proveedor no registrado!',
+ 'Weight' => 'Peso',
+ 'Year' => 'Año',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'nuevo_grupo' => 'add_group',
+ 'nuevo_grupo_de_precios' => 'add_pricegroup',
+ 'nuevo_proyecto' => 'add_project',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'guardar' => 'save',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/mx/pos b/locale/mx/pos
new file mode 100755
index 00000000..c69f3a21
--- /dev/null
+++ b/locale/mx/pos
@@ -0,0 +1,80 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menú de contabilidad',
+ 'Add POS Invoice' => 'Nueva factura de Pto. de Vta.',
+ 'Amount' => 'Importe',
+ 'Business' => 'Negocio',
+ 'Cannot post transaction!' => '¡No se puede registrar el movimiento!',
+ 'Change' => 'Cambiar',
+ 'Continue' => 'Continuar',
+ 'Credit Limit' => 'Límite de crédito',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Delete' => 'Borrar',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descripción',
+ 'Edit POS Invoice' => 'Modificar ticket',
+ 'Exchange Rate' => 'Tipo de cambio',
+ 'Exchange rate missing!' => '¡Falta el tipo de cambio!',
+ 'Extended' => 'Extendido',
+ 'From' => 'De',
+ 'Language' => 'Lenguaje',
+ 'Memo' => 'Nota',
+ 'Month' => 'Mes',
+ 'Number' => 'Número',
+ 'Open' => 'Abierto',
+ 'Period' => 'Período',
+ 'Post' => 'Registrar',
+ 'Posted!' => '¡Registrado!',
+ 'Price' => 'Precio',
+ 'Print' => 'Vista Preliminar',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Printed' => 'Impreso',
+ 'Qty' => 'Cant.',
+ 'Quarter' => 'Trimestre',
+ 'Receipts' => 'Cobros',
+ 'Record in' => 'Registrar en',
+ 'Remaining' => 'Disponible',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Pantalla',
+ 'Source' => 'Referencia',
+ 'Subtotal' => 'Subtotal',
+ 'Tax Included' => 'Impuesto Incluido',
+ 'To' => 'A',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Descuento comercial',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Year' => 'Año',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'registrar' => 'post',
+ 'vista_preliminar' => 'print',
+ 'imprimir_y_registrar' => 'print_and_post',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/mx/ps b/locale/mx/ps
new file mode 100755
index 00000000..68fee41e
--- /dev/null
+++ b/locale/mx/ps
@@ -0,0 +1,358 @@
+$self{texts} = {
+ 'AP Aging' => 'Vencimiento CxP',
+ 'AP Outstanding' => 'CxP pendientes',
+ 'AP Transaction' => 'Movimiento CxP',
+ 'AP Transactions' => 'Movimientos de CxP',
+ 'AR Aging' => 'Vencimiento CxC',
+ 'AR Outstanding' => 'CxC pendientes',
+ 'AR Transaction' => 'Movimiento CxC',
+ 'AR Transactions' => 'Movimientos de Ctas. x cobrar',
+ 'Account' => 'Cuenta',
+ 'Account Number' => 'Número de cuenta',
+ 'Accounting Menu' => 'Menú de contabilidad',
+ 'Accounts' => 'Cuentas',
+ 'Accrual' => 'Acumulado',
+ 'Add AP Transaction' => 'Nueva Asiento de CxP',
+ 'Add AR Transaction' => 'Nueva Asiento de CxC',
+ 'Add POS Invoice' => 'Nueva factura de Pto. de Vta.',
+ 'Add Purchase Order' => 'Nueva orden de compra',
+ 'Add Quotation' => 'Nueva cotización',
+ 'Add Request for Quotation' => 'Nueva solicitud de cotización',
+ 'Add Sales Invoice' => 'Nueva factura de venta',
+ 'Add Sales Order' => 'Nueva orden de venta',
+ 'Address' => 'Dirección',
+ 'All Accounts' => 'Todas las cuentas',
+ 'Amount' => 'Importe',
+ 'Amount Due' => 'Saldo',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => '¿Está Ud. seguro de querer borrar la factura No.:',
+ 'Are you sure you want to delete Transaction' => '¿Está Ud. seguro de querer borrar el movimiento',
+ 'Attachment' => 'Anexo',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Saldo',
+ 'Balance Sheet' => 'Balance general',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Dirección de facturación',
+ 'Bin' => 'Ubicación',
+ 'Bin List' => 'Lista de ubicaciones',
+ 'Business' => 'Negocio',
+ 'Cannot delete invoice!' => '¡No se puede borrar la factura!',
+ 'Cannot delete transaction!' => '¡No se puede borrar el movimiento!',
+ 'Cannot post invoice for a closed period!' => '¡No se puede registrar una factura para un periodo cerrado!',
+ 'Cannot post invoice!' => '¡No se puede registrar la factura!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago para un periodo cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar un movimiento para un periodo cerrado!',
+ 'Cannot post transaction!' => '¡No se puede registrar el movimiento!',
+ 'Cash' => 'Bancos',
+ 'Cc' => 'Cc',
+ 'Change' => 'Cambiar',
+ 'Check' => 'Cheque',
+ 'City' => 'Cuidad',
+ 'Closed' => 'Cerrada',
+ 'Company Name' => 'Nombre de la empresa',
+ 'Compare to' => 'Comparar al',
+ 'Confirm!' => '¡Confirmar!',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Country' => 'País',
+ 'Credit' => 'Abono',
+ 'Credit Limit' => 'Límite de crédito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Current Earnings' => 'Resultado',
+ 'Customer' => 'Cliente',
+ 'Customer Number' => 'Número de cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no está registrado!',
+ 'Date' => 'Fecha',
+ 'Date Paid' => 'Fecha de pago',
+ 'Debit' => 'Cargo',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Decimalplaces' => 'No. de decimales',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'Due Date missing!' => 'Falta fecha de vencimiento!',
+ 'E-mail' => 'Correo-e',
+ 'E-mail Statement to' => 'Enviar estado de cuenta por correo-e a',
+ 'E-mail address missing!' => '¡Falta la dirección de correo-e!',
+ 'E-mailed' => 'Enviado por correo-e',
+ 'Edit AP Transaction' => 'Modificar Asiento de CxP',
+ 'Edit AR Transaction' => 'Modificar Asiento de CxC',
+ 'Edit POS Invoice' => 'Modificar ticket',
+ 'Edit Sales Invoice' => 'Modificar factura de venta',
+ 'Employee' => 'Empleado',
+ 'Exch' => 'T. de C.',
+ 'Exchange Rate' => 'Tipo de cambio',
+ 'Exchange rate for payment missing!' => '¡Falta el tipo de cambio para el pago!',
+ 'Exchange rate missing!' => '¡Falta el tipo de cambio!',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'De',
+ 'GIFI' => 'Código GIFI',
+ 'Group' => 'Grupo',
+ 'Heading' => 'Encabezado',
+ 'ID' => 'Id.',
+ 'In-line' => 'En linea',
+ 'Include Exchange Rate Difference' => 'Incluír la diferencia por tipo de cambio',
+ 'Include in Report' => 'Incluir en reporte',
+ 'Income Statement' => 'Estado de resultados',
+ 'Internal Notes' => 'Notas internas',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => '¡Falta la fecha de la factura!',
+ 'Invoice Number' => 'Número de factura',
+ 'Invoice Number missing!' => 'Falta el número de factura!',
+ 'Invoice deleted!' => '¡Factura borrada!',
+ 'Item not on file!' => '¡El artículo no está registrado!',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Language' => 'Lenguaje',
+ 'Manager' => 'Administrador',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Nota',
+ 'Message' => 'Mensaje',
+ 'Method' => 'Método',
+ 'Month' => 'Mes',
+ 'N/A' => 'N/A',
+ 'No.' => 'Num.',
+ 'Non-taxable Purchases' => 'Compras exentas',
+ 'Non-taxable Sales' => 'Ventas exentas',
+ 'Notes' => 'Notas',
+ 'Nothing selected!' => '¡No se seleccionó nada!',
+ 'Nothing to print!' => '¡No hay nada que imprimir!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'Falta el número en el renglón',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Date missing!' => '¡Falta la fecha de la orden!',
+ 'Order Number' => 'Número de la orden',
+ 'Order Number missing!' => 'Falta el número de la orden!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de empaque',
+ 'Packing List Date missing!' => '¡Falta la fecha en la lista de empaque!',
+ 'Packing List Number missing!' => '¡Falta le número en la lista de empaque!',
+ 'Paid' => 'Pagado',
+ 'Part' => 'Parte',
+ 'Payment date missing!' => '¡Falta la fecha del pago!',
+ 'Payments' => 'Pagos',
+ 'Period' => 'Período',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Selección',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Posted!' => '¡Registrado!',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Print' => 'Vista Preliminar',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project Number' => 'Número de proyecto',
+ 'Project Transactions' => 'Movimientos de proyecto',
+ 'Project not on file!' => '¡Proyecto no registrado!',
+ 'Purchase Order' => 'Orden de compra',
+ 'Qty' => 'Cant.',
+ 'Quarter' => 'Trimestre',
+ 'Quotation' => 'Cotización',
+ 'Quotation Date missing!' => '¡Falta la fecha de la cotización!',
+ 'Quotation Number missing!' => '¡Falta el número de la cotización!',
+ 'Recd' => 'Recb.',
+ 'Receipt' => 'Cobro',
+ 'Receipts' => 'Cobros',
+ 'Record in' => 'Registrar en',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Disponible',
+ 'Report for' => 'Reporte para',
+ 'Required by' => 'Vencimiento',
+ 'SKU' => 'SKU',
+ 'Sales Invoice.' => 'Factura de venta.',
+ 'Sales Order' => 'Orden de venta',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Pantalla',
+ 'Select all' => 'Seleccionar todo',
+ 'Select from one of the names below' => 'Seleccione uno de los siguientes nombres',
+ 'Select from one of the projects below' => 'Seleccione uno de los siguientes proyectos',
+ 'Select payment' => '¡Seleccione Pago!',
+ 'Select postscript or PDF!' => 'Seleccione Postcript o PDF',
+ 'Select txt, postscript or PDF!' => '¡Seleccione txt, postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'Núm. de serie',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Enviar',
+ 'Ship to' => 'Enviar a',
+ 'Ship via' => 'Enviar por',
+ 'Shipping Address' => 'Dirección de envío',
+ 'Shipping Point' => 'Punto de envío',
+ 'Source' => 'Referencia',
+ 'Standard' => 'Estándar',
+ 'Startdate' => 'Fecha inicial',
+ 'State/Province' => 'Estado',
+ 'Statement' => 'Estado de cuenta',
+ 'Statement sent to' => 'Estado de cuenta enviado a',
+ 'Statements sent to printer!' => '¡Estado de cuenta enviado a la impresora!',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resumen',
+ 'Tax' => 'Impuesto',
+ 'Tax Included' => 'Impuesto Incluido',
+ 'Tax collected' => 'Impuesto Retenido',
+ 'Tax paid' => 'Impuesto Pagado',
+ 'Till' => 'Hasta',
+ 'To' => 'A',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Descuento comercial',
+ 'Transaction' => 'Asiento',
+ 'Transaction deleted!' => '¡Movimiento borrado!',
+ 'Transaction posted!' => '¡Movimiento registrado!',
+ 'Translation not on file!' => 'Traducción no se encuentra en la Base de Datos',
+ 'Trial Balance' => 'Balanza de comprobación',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice.' => 'Factura de compra.',
+ 'Vendor Number' => 'Número de proveedor',
+ 'Vendor missing!' => '¡Falta el proveedor!',
+ 'Vendor not on file!' => '¡Proveedor no registrado!',
+ 'Warning!' => '¡Advertencia!',
+ 'What type of item is this?' => '¿Que tipo de articulo es este?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'as at' => 'como a',
+ 'ea' => 'pza',
+ 'for Period' => 'para el periodo',
+ 'posted!' => '¡registrado!',
+ 'sent' => 'enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'movimiento_cxp' => 'ap_transaction',
+ 'movimiento_cxc' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'correo_e' => 'e_mail',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'vista_preliminar' => 'print',
+ 'imprimir_y_registrar' => 'print_and_post',
+ 'factura_de_venta_' => 'sales_invoice_',
+ 'orden_de_venta' => 'sales_order',
+ 'seleccionar_todo' => 'select_all',
+ 'enviar_a' => 'ship_to',
+ 'actualizar' => 'update',
+ 'factura_de_compra_' => 'vendor_invoice_',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/mx/pw b/locale/mx/pw
new file mode 100755
index 00000000..d5ed0e14
--- /dev/null
+++ b/locale/mx/pw
@@ -0,0 +1,13 @@
+$self{texts} = {
+ 'Continue' => 'Continuar',
+ 'Password' => 'Contraseña',
+ 'Session expired!' => '¡Sesión Expiró!',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/mx/rc b/locale/mx/rc
new file mode 100755
index 00000000..e9ecca67
--- /dev/null
+++ b/locale/mx/rc
@@ -0,0 +1,79 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de contabilidad',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Saldo',
+ 'Beginning Balance' => 'Balance inicial',
+ 'Cleared' => 'Aclarado',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Abono',
+ 'Current' => 'Actual',
+ 'Date' => 'Fecha',
+ 'Debit' => 'Cargo',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Difference' => 'Diferencia',
+ 'Done' => 'Listo',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'De',
+ 'Include Exchange Rate Difference' => 'Incluír la diferencia por tipo de cambio',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Month' => 'Mes',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Out of balance!' => '¡Desbalanceado!',
+ 'Outstanding' => 'Pendiente',
+ 'Period' => 'Período',
+ 'Quarter' => 'Trimestre',
+ 'R' => 'C',
+ 'Reconciliation' => 'Conciliación',
+ 'Reconciliation Report' => 'Reporte de conciliación',
+ 'Select all' => 'Seleccionar todo',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Source' => 'Referencia',
+ 'Statement Balance' => 'Saldo bancario',
+ 'Summary' => 'Resumen',
+ 'To' => 'A',
+ 'Update' => 'Actualizar',
+ 'Year' => 'Año',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'continuar' => 'continue',
+ 'listo' => 'done',
+ 'seleccionar_todo' => 'select_all',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/mx/rp b/locale/mx/rp
new file mode 100755
index 00000000..fad82b62
--- /dev/null
+++ b/locale/mx/rp
@@ -0,0 +1,179 @@
+$self{texts} = {
+ 'AP Aging' => 'Vencimiento CxP',
+ 'AR Aging' => 'Vencimiento CxC',
+ 'Account' => 'Cuenta',
+ 'Account Number' => 'Número de cuenta',
+ 'Accounting Menu' => 'Menú de contabilidad',
+ 'Accounts' => 'Cuentas',
+ 'Accrual' => 'Acumulado',
+ 'Address' => 'Dirección',
+ 'All Accounts' => 'Todas las cuentas',
+ 'Amount' => 'Importe',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Attachment' => 'Anexo',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Saldo',
+ 'Balance Sheet' => 'Balance general',
+ 'Bcc' => 'Bcc',
+ 'Cash' => 'Bancos',
+ 'Cc' => 'Cc',
+ 'Compare to' => 'Comparar al',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Credit' => 'Abono',
+ 'Curr' => 'Mon.',
+ 'Current' => 'Actual',
+ 'Current Earnings' => 'Resultado',
+ 'Customer' => 'Cliente',
+ 'Customer not on file!' => '¡El cliente no está registrado!',
+ 'Date' => 'Fecha',
+ 'Debit' => 'Cargo',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Decimalplaces' => 'No. de decimales',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'E-mail' => 'Correo-e',
+ 'E-mail Statement to' => 'Enviar estado de cuenta por correo-e a',
+ 'E-mail address missing!' => '¡Falta la dirección de correo-e!',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'De',
+ 'GIFI' => 'Código GIFI',
+ 'Heading' => 'Encabezado',
+ 'ID' => 'Id.',
+ 'In-line' => 'En linea',
+ 'Include Exchange Rate Difference' => 'Incluír la diferencia por tipo de cambio',
+ 'Include in Report' => 'Incluir en reporte',
+ 'Income Statement' => 'Estado de resultados',
+ 'Invoice' => 'Factura',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Language' => 'Lenguaje',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Nota',
+ 'Message' => 'Mensaje',
+ 'Method' => 'Método',
+ 'Month' => 'Mes',
+ 'N/A' => 'N/A',
+ 'Non-taxable Purchases' => 'Compras exentas',
+ 'Non-taxable Sales' => 'Ventas exentas',
+ 'Nothing selected!' => '¡No se seleccionó nada!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Order' => 'Orden',
+ 'PDF' => 'PDF',
+ 'Payments' => 'Pagos',
+ 'Period' => 'Período',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Vista Preliminar',
+ 'Project' => 'Proyecto',
+ 'Project Number' => 'Número de proyecto',
+ 'Project Transactions' => 'Movimientos de proyecto',
+ 'Project not on file!' => '¡Proyecto no registrado!',
+ 'Quarter' => 'Trimestre',
+ 'Receipts' => 'Cobros',
+ 'Reference' => 'Referencia',
+ 'Report for' => 'Reporte para',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Pantalla',
+ 'Select all' => 'Seleccionar todo',
+ 'Select from one of the names below' => 'Seleccione uno de los siguientes nombres',
+ 'Select from one of the projects below' => 'Seleccione uno de los siguientes proyectos',
+ 'Select postscript or PDF!' => 'Seleccione Postcript o PDF',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Source' => 'Referencia',
+ 'Standard' => 'Estándar',
+ 'Startdate' => 'Fecha inicial',
+ 'Statement' => 'Estado de cuenta',
+ 'Statement sent to' => 'Estado de cuenta enviado a',
+ 'Statements sent to printer!' => '¡Estado de cuenta enviado a la impresora!',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resumen',
+ 'Tax' => 'Impuesto',
+ 'Tax collected' => 'Impuesto Retenido',
+ 'Tax paid' => 'Impuesto Pagado',
+ 'Till' => 'Hasta',
+ 'To' => 'A',
+ 'Total' => 'Total',
+ 'Trial Balance' => 'Balanza de comprobación',
+ 'Vendor' => 'Proveedor',
+ 'Vendor not on file!' => '¡Proveedor no registrado!',
+ 'Warning!' => '¡Advertencia!',
+ 'Year' => 'Año',
+ 'as at' => 'como a',
+ 'for Period' => 'para el periodo',
+ 'sent' => 'enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuar' => 'continue',
+ 'correo_e' => 'e_mail',
+ 'vista_preliminar' => 'print',
+ 'seleccionar_todo' => 'select_all',
+};
+
+1;
+
diff --git a/locale/nb/COPYING b/locale/nb/COPYING
new file mode 100755
index 00000000..a78eb292
--- /dev/null
+++ b/locale/nb/COPYING
@@ -0,0 +1,27 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2001, 2004
+#
+# Norwegian Bokmål texts:
+#
+# Author: Keld Jørn Simonsen <keld@dkuug.dk>
+# Morten Pedersen <morten@workzone.no>
+# Finn-Arne Johansen <faj@bzz.no>
+# Petter Reinholdtsen <pere@hungry.com>
+# Erik Inge Bolsø <knan@tvilsom.org>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/nb/LANGUAGE b/locale/nb/LANGUAGE
new file mode 100755
index 00000000..d06bc821
--- /dev/null
+++ b/locale/nb/LANGUAGE
@@ -0,0 +1 @@
+Norwegian Bokmål
diff --git a/locale/nb/aa b/locale/nb/aa
new file mode 100755
index 00000000..5aab220e
--- /dev/null
+++ b/locale/nb/aa
@@ -0,0 +1,156 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Ubetalte fakturaer',
+ 'AP Transaction' => 'Kreditorpostering',
+ 'AP Transactions' => 'Kreditorpostering',
+ 'AR Outstanding' => 'Utestående fordringer',
+ 'AR Transaction' => 'Debitorpostering',
+ 'AR Transactions' => 'Debitorposteringer',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Konto-meny',
+ 'Add AP Transaction' => 'Ny kreditorpostering',
+ 'Add AR Transaction' => 'Ny debitorpostering',
+ 'Amount' => 'Beløp',
+ 'Amount Due' => 'Forfalt beløp',
+ 'Apr' => 'apr',
+ 'April' => 'april',
+ 'Are you sure you want to delete Transaction' => 'Er du sikker på at du vil fjerne postering',
+ 'Aug' => 'aug',
+ 'August' => 'august',
+ 'Cannot delete transaction!' => 'Kan ikke slette postering!',
+ 'Cannot post payment for a closed period!' => 'Kan ikke bokføre betaling for en avsluttet periode!',
+ 'Cannot post transaction for a closed period!' => 'Kan ikke bokføre postering for en avsluttet periode!',
+ 'Cannot post transaction!' => 'Kan ikke bokføre postering!',
+ 'Check' => 'Sjekk',
+ 'Closed' => 'Avsluttet',
+ 'Confirm!' => 'Bekreft!',
+ 'Continue' => 'Fortsett',
+ 'Credit' => 'Kredit',
+ 'Credit Limit' => 'Kreditgrense',
+ 'Curr' => 'Val',
+ 'Currency' => 'Valuta',
+ 'Current' => 'Nåværende',
+ 'Customer' => 'Kunde',
+ 'Customer missing!' => 'Kunde mangler!',
+ 'Date' => 'Dato',
+ 'Date Paid' => 'Betalingsdato',
+ 'Debit' => 'Debet',
+ 'Dec' => 'des',
+ 'December' => 'desember',
+ 'Delete' => 'Slett',
+ 'Department' => 'Avdeling',
+ 'Description' => 'Beskrivelse',
+ 'Detail' => 'Detalj',
+ 'Due Date' => 'Forfallsdato',
+ 'Due Date missing!' => 'Forfallsdato mangler!',
+ 'Edit AP Transaction' => 'Endre kreditorpostering',
+ 'Edit AR Transaction' => 'Endre debitorpostering',
+ 'Employee' => 'Ansatt',
+ 'Exch' => 'Vxl',
+ 'Exchange Rate' => 'Vekslingskurs',
+ 'Exchange rate for payment missing!' => 'Vekslingskurs for betaling mangler!',
+ 'Exchange rate missing!' => 'Vekslingskurs mangler!',
+ 'Feb' => 'feb',
+ 'February' => 'februar',
+ 'From' => 'Fra',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Inkludér i rapport',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date' => 'Fakturadato',
+ 'Invoice Date missing!' => 'Fakturadato mangler!',
+ 'Invoice Number' => 'Fakturanummer',
+ 'Jan' => 'jan',
+ 'January' => 'januar',
+ 'Jul' => 'jul',
+ 'July' => 'juli',
+ 'Jun' => 'jun',
+ 'June' => 'juni',
+ 'Manager' => 'Behandler',
+ 'Mar' => 'mar',
+ 'March' => 'mars',
+ 'May' => 'mai',
+ 'May ' => 'mai ',
+ 'Memo' => 'Notat',
+ 'Month' => 'Måned',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Merknader',
+ 'Nov' => 'nov',
+ 'November' => 'november',
+ 'Oct' => 'okt',
+ 'October' => 'oktober',
+ 'Open' => 'Åpne',
+ 'Order' => 'Ordre',
+ 'Order Number' => 'Ordrenummer',
+ 'Paid' => 'Betalt',
+ 'Payment date missing!' => 'Betalingsdato mangler!',
+ 'Payments' => 'Betalinger',
+ 'Period' => 'Periode',
+ 'Post' => 'Bokfør',
+ 'Post as new' => 'Bokfør som ny',
+ 'Print' => 'Skriv ut',
+ 'Print and Post' => 'Skriv ut og bokfør',
+ 'Project' => 'Prosjekt',
+ 'Quarter' => 'Kvartal',
+ 'Receipt' => 'Kvittering',
+ 'Remaining' => 'Resterende',
+ 'Sales Invoice.' => 'Salgsfaktura.',
+ 'Salesperson' => 'Selger',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Ship to' => 'Send til',
+ 'Ship via' => 'Send via',
+ 'Shipping Point' => 'Sendes fra',
+ 'Source' => 'Bilag',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Oppsummert',
+ 'Tax' => 'Avgift/mva',
+ 'Tax Included' => 'Inkl. avgifter og mva',
+ 'Till' => 'Kasse',
+ 'To' => 'Til',
+ 'Total' => 'I alt',
+ 'Transaction' => 'Transaksjon',
+ 'Transaction deleted!' => 'Postering slettet!',
+ 'Transaction posted!' => 'Postering bokført!',
+ 'Update' => 'Oppdatér',
+ 'Vendor' => 'Leverandør',
+ 'Vendor Invoice.' => 'Leverandørfaktura.',
+ 'Vendor missing!' => 'Leverandør mangler!',
+ 'Year' => 'År',
+ 'Yes' => 'Ja',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'kreditorpostering' => 'ap_transaction',
+ 'debitorpostering' => 'ar_transaction',
+ 'fortsett' => 'continue',
+ 'slett' => 'delete',
+ 'bokfør' => 'post',
+ 'bokfør_som_ny' => 'post_as_new',
+ 'skriv_ut' => 'print',
+ 'skriv_ut_og_bokfør' => 'print_and_post',
+ 'salgsfaktura_' => 'sales_invoice_',
+ 'send_til' => 'ship_to',
+ 'oppdatér' => 'update',
+ 'leverandørfaktura_' => 'vendor_invoice_',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/nb/admin b/locale/nb/admin
new file mode 100755
index 00000000..634f1a99
--- /dev/null
+++ b/locale/nb/admin
@@ -0,0 +1,141 @@
+$self{texts} = {
+ 'Access Control' => 'Aksesskontroll',
+ 'Accounting' => 'Bokføring',
+ 'Add User' => 'Ny bruker',
+ 'Address' => 'Adresse',
+ 'Administration' => 'Administrasjon',
+ 'Administrator' => 'Administrator',
+ 'All Datasets up to date!' => 'Alle datasett oppdatert!',
+ 'Cannot create Lock!' => 'Kan ikke opprette lås',
+ 'Change Admin Password' => 'Endre passord for admin',
+ 'Change Password' => 'Endre passord',
+ 'Click on login name to edit!' => 'Klikk på brukernavn for å redigere!',
+ 'Company' => 'Firma',
+ 'Confirm' => 'Bekreft',
+ 'Connect to' => 'Forbind til',
+ 'Continue' => 'Fortsett',
+ 'Create Chart of Accounts' => 'Opprett kontoplan',
+ 'Create Dataset' => 'Opprett datasett',
+ 'DBI not installed!' => 'DBI ikke installert!',
+ 'Database' => 'Database',
+ 'Database Administration' => 'Administrasjon av database',
+ 'Database Driver not checked!' => 'Databasedriver ikke kontrollert!',
+ 'Database User missing!' => 'Bruker av database mangler!',
+ 'Dataset' => 'Datasett',
+ 'Dataset missing!' => 'Datasett mangler!',
+ 'Dataset updated!' => 'Datasett oppdatert!',
+ 'Date Format' => 'Datoformat',
+ 'Delete' => 'Slett',
+ 'Delete Dataset' => 'Fjern datasett',
+ 'Directory' => 'Katalog',
+ 'Driver' => 'Driver',
+ 'Dropdown Limit' => 'Grense for dropdown',
+ 'E-mail' => 'Epost',
+ 'Edit User' => 'Endre bruker',
+ 'Existing Datasets' => 'Eksisterende datasett',
+ 'Fax' => 'Faks',
+ 'Host' => 'Vert',
+ 'Hostname missing!' => 'Vertsnavn mangler!',
+ 'Language' => 'Språk',
+ 'Lock System' => 'Lås systemet',
+ 'Lockfile created!' => 'Låsefil opprettet!',
+ 'Lockfile removed!' => 'Låsefil fjernet!',
+ 'Login' => 'Login',
+ 'Login name missing!' => 'Mangler innloggingsnavn',
+ 'Logout' => 'Logg ut',
+ 'Manager' => 'Behandler',
+ 'Menu Width' => 'Menyvidde',
+ 'Multibyte Encoding' => 'Tegnsett',
+ 'Name' => 'Navn',
+ 'New Templates' => 'Nye maler',
+ 'No Database Drivers available!' => 'Ingen databasedrivere tilgjengelige!',
+ 'No Dataset selected!' => 'Ingen datasett valgt!',
+ 'Nothing to delete!' => 'Ingenting å slette!',
+ 'Number Format' => 'Numerisk format',
+ 'Oracle Database Administration' => 'Administrasjon av database Oracle',
+ 'Password' => 'Passord',
+ 'Password changed!' => 'Passord endret!',
+ 'Passwords do not match!' => 'Passordene er ikke like',
+ 'Pg Database Administration' => 'Administrasjon av database Pg',
+ 'PgPP Database Administration' => 'Administrasjon av database PgPP',
+ 'Phone' => 'Tlf',
+ 'Port' => 'Port',
+ 'Port missing!' => 'Port mangler!',
+ 'Printer' => 'Skriver',
+ 'Save' => 'Lagre',
+ 'Setup Templates' => 'Oppsett av maler',
+ 'Signature' => 'Underskrift',
+ 'Stylesheet' => 'Stílark',
+ 'Supervisor' => 'Overordnet',
+ 'Templates' => 'Maler',
+ 'The following Datasets are not in use and can be deleted' => 'De følgende datasettene er ikke i bruk og kan slettes',
+ 'The following Datasets need to be updated' => 'De følgende datasettene skal oppdateres',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Dette er en innledende kontroll for eksisterende kilder. Ingenting vil bli opprettet eller slettet på dette trinnet!',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'For å tilføye en bruker til en gruppe må du endre et brukernavn og så lagre. Den nye brukeren vil så bli lagret med de samme variablene under det nye loginnavnet.',
+ 'Unlock System' => 'Lås opp systemet',
+ 'Update Dataset' => 'Oppdatér datasett',
+ 'Use Templates' => 'Bruk maler',
+ 'User' => 'Bruker',
+ 'User deleted!' => 'Bruker slettet!',
+ 'User saved!' => 'Bruker lagret!',
+ 'Version' => 'Versjon',
+ 'You are logged out' => 'Du er logget ut',
+ 'does not exist' => 'eksisterer ikke',
+ 'is already a member!' => 'er allerede et medlem!',
+ 'localhost' => 'localhost',
+ 'locked!' => 'Låst!',
+ 'successfully created!' => 'opprettet!',
+ 'successfully deleted!' => 'fjernet!',
+ 'website' => 'nettsted',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'ny_bruker' => 'add_user',
+ 'endre_passord_for_admin' => 'change_admin_password',
+ 'endre_passord' => 'change_password',
+ 'fortsett' => 'continue',
+ 'opprett_datasett' => 'create_dataset',
+ 'slett' => 'delete',
+ 'fjern_datasett' => 'delete_dataset',
+ 'lås_systemet' => 'lock_system',
+ 'login' => 'login',
+ 'logg_ut' => 'logout',
+ 'administrasjon_av_database_oracle' => 'oracle_database_administration',
+ 'administrasjon_av_database_pg' => 'pg_database_administration',
+ 'administrasjon_av_database_pgpp' => 'pgpp_database_administration',
+ 'lagre' => 'save',
+ 'lås_opp_systemet' => 'unlock_system',
+ 'oppdatér_datasett' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/nb/all b/locale/nb/all
new file mode 100755
index 00000000..0a00cfab
--- /dev/null
+++ b/locale/nb/all
@@ -0,0 +1,894 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+
+$self{texts} = {
+ 'A' => 'A',
+ 'AP' => 'Kreditorer',
+ 'AP Aging' => 'Aldersfordeling',
+ 'AP Outstanding' => 'Ubetalte fakturaer',
+ 'AP Transaction' => 'Kreditorpostering',
+ 'AP Transactions' => 'Kreditorpostering',
+ 'AR' => 'Debitorer',
+ 'AR Aging' => 'Aldersfordeling',
+ 'AR Outstanding' => 'Utestående fordringer',
+ 'AR Transaction' => 'Debitorpostering',
+ 'AR Transactions' => 'Debitorposteringer',
+ 'AR/AP' => '',
+ 'About' => 'Om',
+ 'Above' => 'Over',
+ 'Access Control' => 'Aksesskontroll',
+ 'Access Denied!' => '',
+ 'Account' => 'Konto',
+ 'Account Number' => 'Kontonummer',
+ 'Account Number missing!' => 'Kontonummer mangler!',
+ 'Account Type' => 'Kontotype',
+ 'Account Type missing!' => 'Kontotype mangler!',
+ 'Account deleted!' => 'Konto slettet!',
+ 'Account does not exist!' => 'Konto finnes ikke!',
+ 'Account saved!' => 'Konto lagret!',
+ 'Accounting' => 'Bokføring',
+ 'Accounting Menu' => 'Konto-meny',
+ 'Accounts' => 'Kontoer',
+ 'Accrual' => 'Kostnad',
+ 'Activate Audit trail' => 'Aktiviser revisjonssporing',
+ 'Activate Audit trails' => 'Aktiviser revisjonssporing',
+ 'Active' => 'Aktiv',
+ 'Add' => 'Ny',
+ 'Add AP Transaction' => 'Ny kreditorpostering',
+ 'Add AR Transaction' => 'Ny debitorpostering',
+ 'Add Account' => 'Ny konto',
+ 'Add Assembly' => 'Ny sammensetning',
+ 'Add Business' => 'Ny organisasjon',
+ 'Add Cash Transfer Transaction' => 'Nytt kontantsalg',
+ 'Add Customer' => 'Ny kunde',
+ 'Add Deduction' => 'Nytt fradrag',
+ 'Add Department' => 'Ny avdeling',
+ 'Add Employee' => 'Ny ansatt',
+ 'Add Exchange Rate' => 'Ny vekslingskurs',
+ 'Add GIFI' => 'Ny GIFI',
+ 'Add General Ledger Transaction' => 'Ny postering i hovedbok',
+ 'Add Group' => 'Ny gruppe',
+ 'Add Job' => '',
+ 'Add Labor/Overhead' => 'Nytt arbeide/overhead',
+ 'Add Language' => 'Nytt språk',
+ 'Add POS Invoice' => 'Ny kontantfaktura',
+ 'Add Part' => 'Ny vare',
+ 'Add Pricegroup' => 'Ny prisgruppe',
+ 'Add Project' => 'Nytt prosjekt',
+ 'Add Purchase Order' => 'Ny innkjøpsordre',
+ 'Add Quotation' => 'Nytt tilbud',
+ 'Add Request for Quotation' => 'Ny tilbudsforespørsel',
+ 'Add SIC' => 'Ny SIC',
+ 'Add Sales Invoice' => 'Ny salgsfaktura',
+ 'Add Sales Order' => 'Ny salgsordre',
+ 'Add Service' => 'Ny tjeneste',
+ 'Add Timecard' => '',
+ 'Add Transaction' => 'Ny postering',
+ 'Add User' => 'Ny bruker',
+ 'Add Vendor' => 'Ny leverandør',
+ 'Add Vendor Invoice' => 'Ny leverandørfaktura',
+ 'Add Warehouse' => 'Nytt lager',
+ 'Address' => 'Adresse',
+ 'Administration' => 'Administrasjon',
+ 'Administrator' => 'Administrator',
+ 'After Deduction' => 'Etter fradrag',
+ 'All' => 'Alle',
+ 'All Accounts' => 'Alle kontoer',
+ 'All Datasets up to date!' => 'Alle datasett oppdatert!',
+ 'All Items' => 'Alle elementer',
+ 'Allowances' => 'Fradrag',
+ 'Amount' => 'Beløp',
+ 'Amount Due' => 'Forfalt beløp',
+ 'Amount missing!' => 'Konto mangler!',
+ 'Apr' => 'apr',
+ 'April' => 'april',
+ 'Are you sure you want to delete Invoice Number' => 'Er du sikker på at du vil fjerne fakturanummer',
+ 'Are you sure you want to delete Order Number' => 'Er du sikker på at du vil fjerne ordrenummer',
+ 'Are you sure you want to delete Quotation Number' => 'Er du sikker på at du vil fjerne tilbudsnummer',
+ 'Are you sure you want to delete Timecard for' => '',
+ 'Are you sure you want to delete Transaction' => 'Er du sikker på at du vil fjerne postering',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Er du sikker på at du ønsker å fjerne de markerte oppføringene fra køen?',
+ 'Assemblies' => 'Sammensetninger',
+ 'Assemblies restocked!' => 'Sammensetninger omplassert!',
+ 'Assembly' => 'Sammensetning',
+ 'Assembly stocked!' => '',
+ 'Asset' => 'Aktiv',
+ 'Attachment' => 'Vedlegg',
+ 'Audit Control' => 'Revisjonskontroll',
+ 'Audit trail disabled' => 'Revisjonssporing ikke aktivisert',
+ 'Audit trail enabled' => 'Revisjonssporing aktivisert',
+ 'Audit trail removed up to' => 'Revisjonssporing fjernet inntil',
+ 'Audit trails disabled' => 'Revisjonssporing ikke aktivisert',
+ 'Audit trails enabled' => 'Revisjonssporing aktivisert',
+ 'Aug' => 'aug',
+ 'August' => 'august',
+ 'Average Cost' => '',
+ 'Avg Cost' => '',
+ 'BIC' => '',
+ 'BOM' => 'BOM',
+ 'Backup' => 'Sikkerhetskopi',
+ 'Backup sent to' => 'Sikkerhetskopier sendt til',
+ 'Balance' => 'Balanse',
+ 'Balance Sheet' => 'Balanse',
+ 'Based on' => 'Basert på',
+ 'Bcc' => 'Blind kopi',
+ 'Before Deduction' => 'Før fradrag',
+ 'Beginning Balance' => 'Startbalanse',
+ 'Below' => 'Under',
+ 'Billing Address' => 'Fakturaadresse',
+ 'Bin' => 'Boks',
+ 'Bin List' => 'Boksliste',
+ 'Bin Lists' => 'Bokslister',
+ 'Books are open' => 'Bokføringen er åpen for rettelser',
+ 'Break' => '',
+ 'Business' => 'Organisasjon',
+ 'Business Number' => 'Organisasjonsnummer',
+ 'Business deleted!' => 'Organisasjon fjernet!',
+ 'Business saved!' => 'Organisasjon lagret!',
+ 'C' => 'C',
+ 'COGS' => 'Innkjøp',
+ 'COGS account does not exist!' => '',
+ 'Cannot add timecard for a completed job!' => '',
+ 'Cannot change timecard for a completed job!' => '',
+ 'Cannot create Assembly' => '',
+ 'Cannot create Labor' => '',
+ 'Cannot create Lock!' => 'Kan ikke opprette lås',
+ 'Cannot create Part' => '',
+ 'Cannot create Service' => '',
+ 'Cannot delete Timecard!' => '',
+ 'Cannot delete account!' => 'Kan ikke slette konto!',
+ 'Cannot delete customer!' => 'Kan ikke slette kunde!',
+ 'Cannot delete default account!' => 'Kan ikke slette standardkonto!',
+ 'Cannot delete invoice!' => 'Kan ikke slette faktura!',
+ 'Cannot delete item!' => 'Kan ikke slette enkeltdel!',
+ 'Cannot delete order!' => 'Kan ikke slette ordre!',
+ 'Cannot delete quotation!' => 'Kan ikke slette tilbud!',
+ 'Cannot delete transaction!' => 'Kan ikke slette postering!',
+ 'Cannot delete vendor!' => 'Kan ikke slette leverandør!',
+ 'Cannot post Payment!' => 'Kan ikke bokføre betaling',
+ 'Cannot post Receipt!' => 'Kan ikke bokføre kvittering',
+ 'Cannot post invoice for a closed period!' => 'Kan ikke bokføre faktura for en avsluttet periode!',
+ 'Cannot post invoice!' => 'Kan ikke bokføre faktura!',
+ 'Cannot post payment for a closed period!' => 'Kan ikke bokføre betaling for en avsluttet periode!',
+ 'Cannot post transaction for a closed period!' => 'Kan ikke bokføre postering for en avsluttet periode!',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => '',
+ 'Cannot post transaction!' => 'Kan ikke bokføre postering!',
+ 'Cannot remove files!' => 'Kan ikke slette filer!',
+ 'Cannot save account!' => 'Kan ikke lagre konto!',
+ 'Cannot save defaults!' => 'Kan ikke lagre defaults!',
+ 'Cannot save order!' => 'Kan ikke lagre ordre!',
+ 'Cannot save preferences!' => 'Kan ikke lagre preferanser!',
+ 'Cannot save quotation!' => 'Kan ikke lagre tilbud!',
+ 'Cannot save timecard for a closed period!' => '',
+ 'Cannot save timecard!' => '',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Kan ikke sette konto for mer enn en av Kunde, Leverandør eller Intern',
+ 'Cannot set multiple options for' => 'Kan ikke sette flere valg for',
+ 'Cannot set multiple options for Item' => '',
+ 'Cannot stock Assembly!' => '',
+ 'Cannot stock assemblies!' => 'Kan ikke plasere sammensetninger!',
+ 'Cash' => 'Kontant',
+ 'Cc' => 'Kopi til',
+ 'Change' => 'Endre',
+ 'Change Admin Password' => 'Endre passord for admin',
+ 'Change Password' => 'Endre passord',
+ 'Charge' => '',
+ 'Chart of Accounts' => 'Kontoplan',
+ 'Check' => 'Sjekk',
+ 'Check Inventory' => 'Sjekk varebeholdning',
+ 'Checks' => 'Sjekker',
+ 'City' => 'Poststed',
+ 'Cleared' => '',
+ 'Click on login name to edit!' => 'Klikk på brukernavn for å redigere!',
+ 'Clocked' => '',
+ 'Close Books up to' => 'Avslutt bokføring opp til',
+ 'Closed' => 'Avsluttet',
+ 'Code' => 'Kode',
+ 'Code missing!' => 'Mangler kode',
+ 'Company' => 'Firma',
+ 'Company Name' => 'Firmanavn',
+ 'Compare to' => 'Sammenlign med',
+ 'Completed' => '',
+ 'Components' => 'Komponenter',
+ 'Confirm' => 'Bekreft',
+ 'Confirm!' => 'Bekreft!',
+ 'Connect to' => 'Forbind til',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Fortsett',
+ 'Contra' => 'Kontra',
+ 'Copies' => 'Kopier',
+ 'Copy to COA' => 'Kopiér til kontoplan',
+ 'Cost' => 'Kostpris',
+ 'Cost Center' => '',
+ 'Could not save pricelist!' => 'Kunne ikke lagre prisliste!',
+ 'Could not save!' => 'Kunne ikke lagre',
+ 'Could not transfer Inventory!' => 'Kunne ikke overføre varebeholdning!',
+ 'Country' => 'Land',
+ 'Create Chart of Accounts' => 'Opprett kontoplan',
+ 'Create Dataset' => 'Opprett datasett',
+ 'Credit' => 'Kredit',
+ 'Credit Limit' => 'Kreditgrense',
+ 'Curr' => 'Val',
+ 'Currency' => 'Valuta',
+ 'Current' => 'Nåværende',
+ 'Current Earnings' => 'Aktuelle inntekter',
+ 'Customer' => 'Kunde',
+ 'Customer History' => 'Kundehistorikk',
+ 'Customer Number' => 'Kundenummer',
+ 'Customer deleted!' => 'Kunde slettet!',
+ 'Customer missing!' => 'Kunde mangler!',
+ 'Customer not on file!' => 'Kunde mangler i databasen!',
+ 'Customer saved!' => 'Kunde lagret!',
+ 'Customers' => 'Kunder',
+ 'DBI not installed!' => 'DBI ikke installert!',
+ 'DOB' => '',
+ 'Database' => 'Database',
+ 'Database Administration' => 'Administrasjon av database',
+ 'Database Driver not checked!' => 'Databasedriver ikke kontrollert!',
+ 'Database Host' => 'Database-vert',
+ 'Database User missing!' => 'Bruker av database mangler!',
+ 'Dataset' => 'Datasett',
+ 'Dataset is newer than version!' => 'Datasettet er nyere enn versjonen!',
+ 'Dataset missing!' => 'Datasett mangler!',
+ 'Dataset updated!' => 'Datasett oppdatert!',
+ 'Date' => 'Dato',
+ 'Date Format' => 'Datoformat',
+ 'Date Paid' => 'Betalingsdato',
+ 'Date Received' => 'Mottaksdato',
+ 'Date missing!' => 'Dato mangler!',
+ 'Date received missing!' => 'Mangler mottaksdato',
+ 'Date worked' => '',
+ 'Day' => '',
+ 'Day(s)' => '',
+ 'Days' => '',
+ 'Debit' => 'Debet',
+ 'Dec' => 'des',
+ 'December' => 'desember',
+ 'Decimalplaces' => 'Desimalplasser',
+ 'Decrease' => 'Reduksjon',
+ 'Deduct after' => 'Fratrekk etter',
+ 'Deduction deleted!' => 'Slettet fradrag',
+ 'Deduction saved!' => 'Fradrag lagret',
+ 'Deductions' => 'Fradrag',
+ 'Default Template' => '',
+ 'Defaults' => 'Standardinnstillinger',
+ 'Defaults saved!' => 'Standardinnstillinger lagret',
+ 'Delete' => 'Slett',
+ 'Delete Account' => 'Fjern konto',
+ 'Delete Dataset' => 'Fjern datasett',
+ 'Delete Schedule' => '',
+ 'Deleting a language will also delete the templates for the language' => '',
+ 'Delivery Date' => 'Leveringsdato',
+ 'Department' => 'Avdeling',
+ 'Department deleted!' => 'Avdeling slettet!',
+ 'Department saved!' => 'Avdeling lagret',
+ 'Departments' => 'Avdelinger',
+ 'Deposit' => 'Depositum',
+ 'Description' => 'Beskrivelse',
+ 'Description Translations' => 'Beskrivelsesoversettelser',
+ 'Description missing!' => 'Mangler beskrivelse!',
+ 'Detail' => 'Detalj',
+ 'Difference' => 'Forskjell',
+ 'Directory' => 'Katalog',
+ 'Discount' => 'Rabatt',
+ 'Done' => 'Ferdig',
+ 'Drawing' => 'Tegning',
+ 'Driver' => 'Driver',
+ 'Dropdown Limit' => 'Grense for dropdown',
+ 'Due Date' => 'Forfallsdato',
+ 'Due Date missing!' => 'Forfallsdato mangler!',
+ 'E-mail' => 'Epost',
+ 'E-mail Statement to' => 'Send oppgjør til',
+ 'E-mail address missing!' => 'Epost-adresse mangler!',
+ 'E-mail message' => '',
+ 'E-mailed' => 'Epost sendt',
+ 'Edit' => 'Endre',
+ 'Edit AP Transaction' => 'Endre kreditorpostering',
+ 'Edit AR Transaction' => 'Endre debitorpostering',
+ 'Edit Account' => 'Endre konto',
+ 'Edit Assembly' => 'Endre sammensetning',
+ 'Edit Business' => 'Endre organisasjon',
+ 'Edit Cash Transfer Transaction' => 'Endre kontant overførsel',
+ 'Edit Customer' => 'Endre kundeopplysninger',
+ 'Edit Deduction' => 'Endre fradrag',
+ 'Edit Department' => 'Endre avdeling',
+ 'Edit Description Translations' => 'Endre beskrivelsesoversettelser',
+ 'Edit Employee' => 'Endre ansatt',
+ 'Edit GIFI' => 'Endre GIFI',
+ 'Edit General Ledger Transaction' => 'Endre en postering i hovedbok',
+ 'Edit Group' => 'Endre gruppe',
+ 'Edit Job' => '',
+ 'Edit Labor/Overhead' => 'Endre arbeide/overhead',
+ 'Edit Language' => 'Endre språk',
+ 'Edit POS Invoice' => 'Endre kontantfaktura',
+ 'Edit Part' => 'Endre vare',
+ 'Edit Preferences for' => 'Endre innstillinger for',
+ 'Edit Pricegroup' => 'Endre prisgruppe',
+ 'Edit Project' => 'Endre prosjekt',
+ 'Edit Purchase Order' => 'Endre innkjøpsordre',
+ 'Edit Quotation' => 'Endre tilbud',
+ 'Edit Request for Quotation' => 'Endre ønske om tilbud',
+ 'Edit SIC' => 'Endre SIC',
+ 'Edit Sales Invoice' => 'Endre salgsfaktura',
+ 'Edit Sales Order' => 'Endre salgsordre',
+ 'Edit Service' => 'Endre tjeneste',
+ 'Edit Template' => 'Endre mal',
+ 'Edit Timecard' => '',
+ 'Edit User' => 'Endre bruker',
+ 'Edit Vendor' => 'Endre leverandør',
+ 'Edit Vendor Invoice' => 'Endre leverandørfaktura',
+ 'Edit Warehouse' => 'Endre lager',
+ 'Employee' => 'Ansatt',
+ 'Employee Name' => 'Navn på ansatt',
+ 'Employee Number' => 'Ansatt-nummer',
+ 'Employee deleted!' => 'Ansatt slettet',
+ 'Employee pays' => 'Ansatt betaler',
+ 'Employee saved!' => 'Ansatt lagret',
+ 'Employees' => 'Ansatte',
+ 'Employer' => 'Arbeidsgiver',
+ 'Employer pays' => 'Arbeidsgiver betaler',
+ 'Enddate' => 'Sluttdato',
+ 'Ends' => '',
+ 'Enforce transaction reversal for all dates' => 'Tving eksplisitte transaksjonsrettelser for alle datoer',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Angi opp til 3 bokstaver adskilt med kolon (fx NOK:EUR:USD:JPY) for innenlandske og utenlandske valutaer',
+ 'Equity' => 'Egenkapital',
+ 'Every' => '',
+ 'Excempt age <' => '',
+ 'Exch' => 'Vxl',
+ 'Exchange Rate' => 'Vekslingskurs',
+ 'Exchange rate for payment missing!' => 'Vekslingskurs for betaling mangler!',
+ 'Exchange rate missing!' => 'Vekslingskurs mangler!',
+ 'Existing Datasets' => 'Eksisterende datasett',
+ 'Expense' => 'Utgift',
+ 'Expense account does not exist!' => '',
+ 'Expense/Asset' => 'Utgift/Aktiv',
+ 'Extended' => 'Sum',
+ 'FX' => 'Faks',
+ 'Failed to save order!' => '',
+ 'Fax' => 'Faks',
+ 'Feb' => 'feb',
+ 'February' => 'februar',
+ 'For' => '',
+ 'Foreign Exchange Gain' => 'Gevinst på valutahandel',
+ 'Foreign Exchange Loss' => 'Tap på valutahandel',
+ 'Friday' => '',
+ 'From' => 'Fra',
+ 'From Warehouse' => '',
+ 'GIFI' => 'GIFI',
+ 'GIFI deleted!' => 'GIFI slettet!',
+ 'GIFI missing!' => 'GIFI mangler!',
+ 'GIFI saved!' => 'GIFI lagret!',
+ 'GL' => '',
+ 'GL Reference Number' => '',
+ 'GL Transaction' => 'Postering i hovedbok',
+ 'General Ledger' => 'Hovedbok',
+ 'Generate' => '',
+ 'Generate Orders' => '',
+ 'Generate Purchase Orders' => '',
+ 'Generate Purchase Orders from Sales Order' => '',
+ 'Generate Sales Order' => '',
+ 'Generate Sales Order from Purchase Orders' => '',
+ 'Generate Sales Orders' => '',
+ 'Goods & Services' => 'Varer og tjenester',
+ 'Group' => 'Gruppe',
+ 'Group Items' => 'Grupper elementer',
+ 'Group Translations' => 'Grupper oversettelser',
+ 'Group deleted!' => 'Slettet gruppe!',
+ 'Group missing!' => 'Mangler gruppe!',
+ 'Group saved!' => 'Lagret gruppe!',
+ 'Groups' => 'Grupper',
+ 'HR' => 'Personal',
+ 'HTML Templates' => 'HTML-maler',
+ 'Heading' => 'Overskrift',
+ 'History' => 'Historikk',
+ 'Home Phone' => 'Hjemmetelefon',
+ 'Host' => 'Vert',
+ 'Hostname missing!' => 'Vertsnavn mangler!',
+ 'IBAN' => '',
+ 'ID' => 'ID',
+ 'Image' => 'Bilde',
+ 'In-line' => 'Inne i',
+ 'Inactive' => '',
+ 'Include Exchange Rate Difference' => 'Inkluder forskjell i vekslingsrate',
+ 'Include Payment' => '',
+ 'Include in Report' => 'Inkludér i rapport',
+ 'Include in drop-down menus' => 'Inkludér i rullegardin-menyer',
+ 'Income' => 'Inntekt',
+ 'Income Statement' => 'Driftsregnskap',
+ 'Income account does not exist!' => '',
+ 'Incorrect Dataset version!' => 'Gal versjon av datasett!',
+ 'Increase' => 'Økning',
+ 'Individual Items' => 'Individuelle elementer',
+ 'Internal Notes' => 'Interne notater',
+ 'Inventory' => 'Varebeholdning',
+ 'Inventory account does not exist!' => '',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Varebeholdning må være null for at du kan sette denne sammensetningen som foreldet!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Varebeholdning må være null for at du kan sette denne enhet som foreldet!',
+ 'Inventory saved!' => 'Varebeholdning lagret',
+ 'Inventory transferred!' => 'Varebeholdning overført',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date' => 'Fakturadato',
+ 'Invoice Date missing!' => 'Fakturadato mangler!',
+ 'Invoice Number' => 'Fakturanummer',
+ 'Invoice Number missing!' => 'Fakturanummer mangler!',
+ 'Invoice deleted!' => 'Faktura slettet!',
+ 'Invoices' => 'Fakturaer',
+ 'Is this a summary account to record' => 'Samlekonto for',
+ 'Item already on pricelist!' => 'Elementet finnes allerede på prislisten!',
+ 'Item deleted!' => 'Elementet slettet!',
+ 'Item not on file!' => 'Elementet mangler i databasen!',
+ 'Items' => 'Elementer',
+ 'Jan' => 'jan',
+ 'January' => 'januar',
+ 'Job' => '',
+ 'Job Name' => '',
+ 'Job Number' => '',
+ 'Job Number missing!' => '',
+ 'Job deleted!' => '',
+ 'Job saved!' => '',
+ 'Jobs' => '',
+ 'Jul' => 'jul',
+ 'July' => 'juli',
+ 'Jun' => 'jun',
+ 'June' => 'juni',
+ 'LaTeX Templates' => 'LaTeX-maler',
+ 'Labor Code' => '',
+ 'Labor/Overhead' => 'Arbeide/overhead',
+ 'Language' => 'Språk',
+ 'Language deleted!' => 'Språk slettet!',
+ 'Language saved!' => 'Språk lagret!',
+ 'Languages' => 'Språk',
+ 'Languages not defined!' => 'Språkene er ikke definert!',
+ 'Last Cost' => '',
+ 'Last Numbers & Default Accounts' => 'Løpenumre og standardkontoer',
+ 'Lead' => '',
+ 'Leadtime' => 'forsinkelsestid',
+ 'Leave host and port field empty unless you want to make a remote connection.' => 'La vert- og port-felt være tomme med mindre du vil lage en ekstern forbindelse.',
+ 'Liability' => 'Passiv',
+ 'Licensed to' => 'Utført for',
+ 'Line Total' => 'Antall linjer',
+ 'Link' => 'Referanse',
+ 'Link Accounts' => 'Kople kontoer',
+ 'List' => 'List',
+ 'List Accounts' => 'List kontoer',
+ 'List Businesses' => 'Vis organisasjoner',
+ 'List Departments' => 'Vis avdelinger',
+ 'List GIFI' => 'List GIFI',
+ 'List Languages' => 'Vis språk',
+ 'List Price' => 'Listepris',
+ 'List Projects' => 'Vis prosjekter',
+ 'List SIC' => 'List SIC',
+ 'List Transactions' => 'Vis bokføringer',
+ 'List Warehouses' => 'Vis lager',
+ 'Lock System' => 'Lås systemet',
+ 'Lockfile created!' => 'Låsefil opprettet!',
+ 'Lockfile removed!' => 'Låsefil fjernet!',
+ 'Login' => 'Login',
+ 'Login name missing!' => 'Mangler innloggingsnavn',
+ 'Logout' => 'Logg ut',
+ 'Make' => 'Fabrikat',
+ 'Manager' => 'Behandler',
+ 'Mar' => 'mar',
+ 'March' => 'mars',
+ 'Marked entries printed!' => 'Markerte oppføringer er skrevet ut!',
+ 'Markup' => 'Markup',
+ 'Maximum' => 'Maksimum',
+ 'May' => 'mai',
+ 'May ' => 'mai ',
+ 'Memo' => 'Notat',
+ 'Menu Width' => 'Menyvidde',
+ 'Message' => 'Melding',
+ 'Method' => 'Metode',
+ 'Microfiche' => 'Mikrofilm',
+ 'Model' => 'Modell',
+ 'Monday' => '',
+ 'Month' => 'Måned',
+ 'Month(s)' => '',
+ 'Months' => '',
+ 'Multibyte Encoding' => 'Tegnsett',
+ 'N/A' => 'I/T',
+ 'Name' => 'Navn',
+ 'Name missing!' => 'Navn mangler!',
+ 'New Templates' => 'Nye maler',
+ 'New Window' => '',
+ 'Next' => '',
+ 'Next Date' => '',
+ 'Next Number' => '',
+ 'No' => 'Nei',
+ 'No Database Drivers available!' => 'Ingen databasedrivere tilgjengelige!',
+ 'No Dataset selected!' => 'Ingen datasett valgt!',
+ 'No Employees on file!' => '',
+ 'No Labor codes on file!' => '',
+ 'No email address for' => 'Ingen emailadresse for',
+ 'No open Jobs!' => '',
+ 'No open Projects!' => '',
+ 'No.' => 'Nr.',
+ 'Non-taxable' => 'Avgiftsfrie',
+ 'Non-taxable Purchases' => 'Avgiftsfrie kjøp',
+ 'Non-taxable Sales' => 'Avgiftsfrie salg',
+ 'Non-tracking Items' => '',
+ 'Notes' => 'Merknader',
+ 'Nothing entered!' => 'Ingenting lagt inn!',
+ 'Nothing selected!' => 'Ingenting valgt!',
+ 'Nothing to delete!' => 'Ingenting å slette!',
+ 'Nothing to print!' => 'Ingenting å skrive ut!',
+ 'Nothing to transfer!' => 'Ingenting å overføre!',
+ 'Nov' => 'nov',
+ 'November' => 'november',
+ 'Number' => 'Nummer',
+ 'Number Format' => 'Numerisk format',
+ 'Number missing in Row' => 'Tall mangler i rad',
+ 'O' => 'O',
+ 'OH' => '',
+ 'Obsolete' => 'Foreldet',
+ 'Oct' => 'okt',
+ 'October' => 'oktober',
+ 'On Hand' => 'På lager',
+ 'Open' => 'Åpne',
+ 'Oracle Database Administration' => 'Administrasjon av database Oracle',
+ 'Order' => 'Ordre',
+ 'Order Date' => 'Ordredato',
+ 'Order Date missing!' => 'Ordredato mangler!',
+ 'Order Entry' => 'Ordreinngang',
+ 'Order Number' => 'Ordrenummer',
+ 'Order Number missing!' => 'Ordrenummer mangler!',
+ 'Order deleted!' => 'Ordre slettet!',
+ 'Order generation failed!' => '',
+ 'Order saved!' => 'Ordre lagret!',
+ 'Orders generated!' => '',
+ 'Orphaned' => 'Frittstående',
+ 'Out of balance transaction!' => 'Transaksjonen er i ubalanse!',
+ 'Out of balance!' => 'Ute av balanse!',
+ 'Outstanding' => 'Utestående',
+ 'PDF' => 'PDF',
+ 'PO Number' => '',
+ 'POS' => 'Kontantsalg',
+ 'POS Invoice' => 'Kontantsalg faktura',
+ 'Packing List' => 'Følgeseddel',
+ 'Packing List Date missing!' => 'Dato for følgeseddel mangler!',
+ 'Packing List Number missing!' => 'Nummer for følgeseddel mangler!',
+ 'Packing Lists' => 'Følgesedler',
+ 'Paid' => 'Betalt',
+ 'Part' => 'Del',
+ 'Part Number' => '',
+ 'Partnumber' => 'Delenummer',
+ 'Parts' => 'Deler',
+ 'Password' => 'Passord',
+ 'Password changed!' => 'Passord endret!',
+ 'Password does not match!' => 'Passord stemmer ikke!',
+ 'Passwords do not match!' => 'Passordene er ikke like',
+ 'Payables' => 'Utbetalinger',
+ 'Payment' => 'Betaling',
+ 'Payment date missing!' => 'Betalingsdato mangler!',
+ 'Payment posted!' => 'Betaling bokført!',
+ 'Payments' => 'Betalinger',
+ 'Payments posted!' => '',
+ 'Payroll Deduction' => 'Fradrag i lønn',
+ 'Period' => 'Periode',
+ 'Pg Database Administration' => 'Administrasjon av database Pg',
+ 'PgPP Database Administration' => 'Administrasjon av database PgPP',
+ 'Phone' => 'Tlf',
+ 'Pick List' => 'Plukkliste',
+ 'Pick Lists' => 'Plukklister',
+ 'Port' => 'Port',
+ 'Port missing!' => 'Port mangler!',
+ 'Pos' => '',
+ 'Post' => 'Bokfør',
+ 'Post as new' => 'Bokfør som ny',
+ 'Posted!' => 'Bokført!',
+ 'Posting' => '',
+ 'Posting failed!' => '',
+ 'Postscript' => 'Postscript',
+ 'Preferences' => 'Innstillinger',
+ 'Preferences saved!' => 'Innstillinger lagret!',
+ 'Prepayment' => 'Forskuddsbetaling',
+ 'Price' => 'Pris',
+ 'Pricegroup' => 'Prisgruppe',
+ 'Pricegroup deleted!' => 'Prisgruppe slettet!',
+ 'Pricegroup missing!' => 'Prisgruppe mangler!',
+ 'Pricegroup saved!' => 'Prisgruppe langret',
+ 'Pricegroups' => 'Prisgrupper',
+ 'Pricelist' => 'Prisliste',
+ 'Print' => 'Skriv ut',
+ 'Print and Post' => 'Skriv ut og bokfør',
+ 'Print and Post as new' => '',
+ 'Print and Save' => 'Skriv ut og lagre',
+ 'Print and Save as new' => '',
+ 'Print and post as new' => '',
+ 'Print and save as new' => '',
+ 'Printed' => 'Skrevet ut',
+ 'Printer' => 'Skriver',
+ 'Printing' => '',
+ 'Printing ... ' => 'Skriver ut',
+ 'Process Transactions' => '',
+ 'Production' => '',
+ 'Profit Center' => '',
+ 'Project' => 'Prosjekt',
+ 'Project Description Translations' => 'Oversettelser av prosjektbeskrivelser',
+ 'Project Name' => '',
+ 'Project Number' => 'Prosjektnummer',
+ 'Project Number missing!' => 'Prosjektnummer mangler!',
+ 'Project Transactions' => 'Prosjektposteringer',
+ 'Project deleted!' => 'Prosjekt slettet!',
+ 'Project not on file!' => 'Prosjektet mangler i databasen!',
+ 'Project saved!' => 'Prosjekt lagret!',
+ 'Project/Job Name' => '',
+ 'Project/Job Number' => '',
+ 'Projects' => 'Prosjekter',
+ 'Purchase Order' => 'Innkjøpsordre',
+ 'Purchase Order Number' => 'Innkjøpsordrenummer',
+ 'Purchase Orders' => 'Innkjøpsordrer',
+ 'Qty' => 'Antall',
+ 'Quantity exceeds available units to stock!' => 'Antallet overstiger tilgjengelig varebeholdning',
+ 'Quarter' => 'Kvartal',
+ 'Quotation' => 'Tilbud',
+ 'Quotation ' => 'Tilbud ',
+ 'Quotation Date' => 'Tilbudsdato',
+ 'Quotation Date missing!' => 'Mangler tilbudsdato',
+ 'Quotation Number' => 'Tilbudsnummer',
+ 'Quotation Number missing!' => 'Mangler tilbudsnummer',
+ 'Quotation deleted!' => 'Tilbud slettet!',
+ 'Quotations' => 'Tilbud',
+ 'R' => 'R',
+ 'RFQ' => 'Tilbudsforespørsel',
+ 'RFQ ' => 'Tilbudsforespørsel ',
+ 'RFQ Number' => 'Tilbudsforespørslelsnummer',
+ 'RFQs' => 'Tilbudsforespørsler',
+ 'ROP' => 'Etterbestill ved',
+ 'Rate' => 'Rate',
+ 'Rate missing!' => 'Mangler rate!',
+ 'Recd' => 'Mottatt',
+ 'Receipt' => 'Kvittering',
+ 'Receipt posted!' => 'Kvittering bokført',
+ 'Receipts' => 'Kvitteringer',
+ 'Receivables' => 'Innbetalinger',
+ 'Receive' => 'Motta',
+ 'Receive Merchandise' => 'Motta varer',
+ 'Reconciliation' => 'Bankoppgjør',
+ 'Reconciliation Report' => 'Bankoppgjørsrapport',
+ 'Record in' => 'Bokfør på',
+ 'Recurring Transaction' => '',
+ 'Recurring Transactions' => '',
+ 'Reference' => 'Referanse',
+ 'Remaining' => 'Resterende',
+ 'Remove' => 'Fjern',
+ 'Remove Audit trail up to' => 'Fjern revisjonssporing inntil',
+ 'Remove Audit trails up to' => 'Fjern revisjonssporing inntil',
+ 'Removed spoolfiles!' => 'Fjernet køfiler!',
+ 'Removing marked entries from queue ...' => 'Fjernet de markerte oppføringer fra køen...',
+ 'Repeat' => '',
+ 'Report for' => 'Rapport for',
+ 'Reports' => 'Rapporter',
+ 'Req' => '',
+ 'Request for Quotation' => 'Tilbudsforespørsel',
+ 'Request for Quotations' => 'Tilbudsforespørsler',
+ 'Required by' => 'Leveringsdato',
+ 'Retained Earnings' => 'Realisert overskudd',
+ 'Role' => 'Rolle',
+ 'S' => 'S',
+ 'SIC' => '',
+ 'SIC deleted!' => '',
+ 'SIC saved!' => '',
+ 'SKU' => '',
+ 'SSN' => '',
+ 'Sale' => 'Salg',
+ 'Sales' => 'Salg',
+ 'Sales Invoice' => 'Salgsfaktura',
+ 'Sales Invoice ' => 'Salgsfaktura ',
+ 'Sales Invoice.' => 'Salgsfaktura.',
+ 'Sales Invoice/AR Transaction Number' => '',
+ 'Sales Invoices' => 'Salgsfakturaer',
+ 'Sales Order' => 'Salgsordre',
+ 'Sales Order Number' => 'Salgsordrenummer',
+ 'Sales Orders' => 'Salgsordrer',
+ 'Sales Quotation Number' => '',
+ 'Salesperson' => 'Selger',
+ 'Saturday' => '',
+ 'Save' => 'Lagre',
+ 'Save Pricelist' => 'Lagre prisliste',
+ 'Save Schedule' => '',
+ 'Save as new' => 'Lagre som ny',
+ 'Save to File' => 'Lagre i fil',
+ 'Saving' => '',
+ 'Schedule' => '',
+ 'Scheduled' => '',
+ 'Screen' => 'Skjerm',
+ 'Search' => 'Søk',
+ 'Select' => 'Velg',
+ 'Select Customer' => '',
+ 'Select Vendor' => '',
+ 'Select a Printer!' => '',
+ 'Select a printer!' => '',
+ 'Select all' => 'Velg alt',
+ 'Select from one of the items below' => 'Velg en fra listen under, og trykk "Fortsett"',
+ 'Select from one of the names below' => 'Velg ett av navnene under',
+ 'Select from one of the projects below' => 'Velg ett av prosjektene under',
+ 'Select items' => '',
+ 'Select payment' => '',
+ 'Select postscript or PDF!' => 'Velg postscript eller PDF!',
+ 'Select txt, postscript or PDF!' => 'Velg txt, postscript eller PDF!',
+ 'Sell' => 'Selg',
+ 'Sell Price' => 'Salgspris',
+ 'Send by E-Mail' => 'Send per email',
+ 'Sending' => '',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Serial No.' => 'Serienummer',
+ 'Serial Number' => 'Serienummer',
+ 'Service' => 'Tjeneste',
+ 'Service Code' => '',
+ 'Service/Labor Code' => '',
+ 'Services' => 'Tjenester',
+ 'Session Timeout' => '',
+ 'Session expired!' => '',
+ 'Setup Templates' => 'Oppsett av maler',
+ 'Ship' => 'Send',
+ 'Ship Merchandise' => 'Send varer',
+ 'Ship to' => 'Send til',
+ 'Ship via' => 'Send via',
+ 'Shipping' => 'Frakt',
+ 'Shipping Address' => 'Leveringsadresse',
+ 'Shipping Date' => 'Leveringsdato',
+ 'Shipping Date missing!' => 'Mangler leveringsdato',
+ 'Shipping Point' => 'Sendes fra',
+ 'Short' => 'Kort',
+ 'Signature' => 'Underskrift',
+ 'Source' => 'Bilag',
+ 'Spoolfile' => 'Køfil',
+ 'Standard' => 'Standard',
+ 'Standard Industrial Codes' => 'Standard industrikoder (SIC)',
+ 'Startdate' => 'Startdato',
+ 'State' => '',
+ 'State/Province' => 'Delstat/område',
+ 'Statement' => 'Oppgjør',
+ 'Statement Balance' => 'Balanseoppgjør',
+ 'Statement sent to' => 'Oppgjør sendt til',
+ 'Statements sent to printer!' => 'Oppgjør sendt til skriver!',
+ 'Stock' => 'Lager',
+ 'Stock Assembly' => 'Lagersammensetning',
+ 'Stocking Date' => '',
+ 'Stylesheet' => 'Stílark',
+ 'Sub-contract GIFI' => '',
+ 'Subject' => 'Emne',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Oppsummert',
+ 'Sunday' => '',
+ 'Supervisor' => 'Overordnet',
+ 'System' => 'System',
+ 'System Defaults' => 'Systemets standardinnstillinger',
+ 'Tax' => 'Avgift/mva',
+ 'Tax Accounts' => 'Avgift/mva-kontoer',
+ 'Tax Included' => 'Inkl. avgifter og mva',
+ 'Tax Number' => 'Org.nr.',
+ 'Tax Number / SSN' => 'Org.nr.',
+ 'Tax collected' => 'Inngående avgift',
+ 'Tax paid' => 'Betalt avgift',
+ 'Taxable' => 'Avgifts/mvapliktig',
+ 'Template saved!' => 'Mal lagret!',
+ 'Templates' => 'Maler',
+ 'Terms' => 'Vilkår',
+ 'Text' => '',
+ 'Text Templates' => 'Tekstmaler',
+ 'The following Datasets are not in use and can be deleted' => 'De følgende datasettene er ikke i bruk og kan slettes',
+ 'The following Datasets need to be updated' => 'De følgende datasettene skal oppdateres',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Dette er en innledende kontroll for eksisterende kilder. Ingenting vil bli opprettet eller slettet på dette trinnet!',
+ 'Thursday' => '',
+ 'Till' => 'Kasse',
+ 'Time In' => '',
+ 'Time Out' => '',
+ 'Timecard' => '',
+ 'Timecard deleted!' => '',
+ 'Timecard saved!' => '',
+ 'Timecards' => '',
+ 'Times' => '',
+ 'To' => 'Til',
+ 'To Warehouse' => '',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'For å tilføye en bruker til en gruppe må du endre et brukernavn og så lagre. Den nye brukeren vil så bli lagret med de samme variablene under det nye loginnavnet.',
+ 'Top Level' => 'Toppnivå',
+ 'Total' => 'I alt',
+ 'Tracking Items' => '',
+ 'Trade Discount' => 'Handelsrabatt',
+ 'Transaction' => 'Transaksjon',
+ 'Transaction Date missing!' => 'Transaksjonsdato mangler!',
+ 'Transaction Dates' => '',
+ 'Transaction deleted!' => 'Postering slettet!',
+ 'Transaction posted!' => 'Postering bokført!',
+ 'Transaction reversal enforced for all dates' => 'Transaksjonsrettelser skal alltid bokføres eksplisitt',
+ 'Transaction reversal enforced up to' => 'Transaksjonsrettelser skal bokføres eksplisitt inntil',
+ 'Transactions' => 'Posteringer',
+ 'Transfer' => 'Overfør',
+ 'Transfer Inventory' => 'Overfør varebeholdning',
+ 'Transfer from' => '',
+ 'Transfer to' => 'Overfør til',
+ 'Translation' => 'Oversettelse',
+ 'Translation deleted!' => 'Oversettelse slettet',
+ 'Translation not on file!' => 'Oversettelsen mangler i databasen!',
+ 'Translations' => 'Oversettelser',
+ 'Translations saved!' => 'Oversettelser lagret!',
+ 'Trial Balance' => 'Foreløpig balanse',
+ 'Tuesday' => '',
+ 'Type of Business' => 'Organisasjonstype',
+ 'Unit' => 'Enhet',
+ 'Unit of measure' => 'Måleenhet',
+ 'Unlock System' => 'Lås opp systemet',
+ 'Update' => 'Oppdatér',
+ 'Update Dataset' => 'Oppdatér datasett',
+ 'Updated' => 'Oppdatert',
+ 'Upgrading to Version' => 'Oppgrader til version',
+ 'Use Templates' => 'Bruk maler',
+ 'User' => 'Bruker',
+ 'User deleted!' => 'Bruker slettet!',
+ 'User saved!' => 'Bruker lagret!',
+ 'Valid until' => 'Gyldig til',
+ 'Vendor' => 'Leverandør',
+ 'Vendor History' => 'Leverandørhistorikk',
+ 'Vendor Invoice' => 'Leverandørfaktura',
+ 'Vendor Invoice ' => 'Leverandørfaktura ',
+ 'Vendor Invoice.' => 'Leverandørfaktura.',
+ 'Vendor Invoice/AP Transaction Number' => '',
+ 'Vendor Invoices' => 'Leverandørfakturaer',
+ 'Vendor Number' => 'Leverandørnummer',
+ 'Vendor deleted!' => 'Leverandør slettet!',
+ 'Vendor missing!' => 'Leverandør mangler!',
+ 'Vendor not on file!' => 'Leverandør mangler i database!',
+ 'Vendor saved!' => 'Leverandør lagret!',
+ 'Vendors' => 'Leverandører',
+ 'Version' => 'Versjon',
+ 'Warehouse' => 'Lager',
+ 'Warehouse deleted!' => 'Lager slettet!',
+ 'Warehouse saved!' => 'Lager lagret!',
+ 'Warehouses' => 'Lager',
+ 'Warning!' => 'Advarsel',
+ 'Wednesday' => '',
+ 'Week' => '',
+ 'Week(s)' => '',
+ 'Weeks' => '',
+ 'Weight' => 'Vekt',
+ 'Weight Unit' => 'Vektenhet',
+ 'What type of item is this?' => 'Hvilken type ting er dette?',
+ 'Work Order' => 'Arbeidsordre',
+ 'Work Orders' => 'Arbeidsordrer',
+ 'Work Phone' => 'Jobbtelefon',
+ 'Year' => 'År',
+ 'Year(s)' => '',
+ 'Yearend' => 'Årsavslutning',
+ 'Yearend date missing!' => 'Mangler årsavslutningsdato!',
+ 'Yearend posted!' => 'Årsavslutning bokført',
+ 'Yearend posting failed!' => 'Bokføring av årsavslutning feilet!',
+ 'Years' => '',
+ 'Yes' => 'Ja',
+ 'You are logged out' => 'Du er logget ut',
+ 'You are posting an existing transaction!' => '',
+ 'You are printing and posting an existing transaction!' => '',
+ 'You are printing and saving an existing order' => '',
+ 'You are printing and saving an existing quotation' => '',
+ 'You are printing and saving an existing transaction!' => '',
+ 'You are saving an existing order' => '',
+ 'You are saving an existing quotation' => '',
+ 'You are saving an existing transaction!' => '',
+ 'You did not enter a name!' => 'Du gav ikke et navn!',
+ 'You must enter a host and port for local and remote connections!' => 'Du må oppgi en vert og en port for lokale og eksterne forbindelser!',
+ 'Zip/Postal Code' => 'Postnummer',
+ 'account cannot be set to any other type of account' => 'konto kan ikke settes til en annen kontotype',
+ 'as at' => 'som ved',
+ 'days' => 'dager',
+ 'does not exist' => 'eksisterer ikke',
+ 'done' => 'gjort',
+ 'ea' => 'stk',
+ 'failed' => '',
+ 'for' => '',
+ 'for Period' => 'for periode',
+ 'is already a member!' => 'er allerede et medlem!',
+ 'localhost' => 'localhost',
+ 'locked!' => 'Låst!',
+ 'partsgroup' => '',
+ 'posted!' => 'bokført!',
+ 'sent' => 'sent',
+ 'successfully created!' => 'opprettet!',
+ 'successfully deleted!' => 'fjernet!',
+ 'time(s)' => '',
+ 'unexpected error!' => '',
+ 'website' => 'nettsted',
+};
+
+1;
diff --git a/locale/nb/am b/locale/nb/am
new file mode 100755
index 00000000..d04bf04c
--- /dev/null
+++ b/locale/nb/am
@@ -0,0 +1,278 @@
+$self{texts} = {
+ 'AP' => 'Kreditorer',
+ 'AR' => 'Debitorer',
+ 'About' => 'Om',
+ 'Account' => 'Konto',
+ 'Account Number' => 'Kontonummer',
+ 'Account Number missing!' => 'Kontonummer mangler!',
+ 'Account Type' => 'Kontotype',
+ 'Account Type missing!' => 'Kontotype mangler!',
+ 'Account deleted!' => 'Konto slettet!',
+ 'Account does not exist!' => 'Konto finnes ikke!',
+ 'Account saved!' => 'Konto lagret!',
+ 'Accounting Menu' => 'Konto-meny',
+ 'Accrual' => 'Kostnad',
+ 'Activate Audit trail' => 'Aktiviser revisjonssporing',
+ 'Add Account' => 'Ny konto',
+ 'Add Business' => 'Ny organisasjon',
+ 'Add Department' => 'Ny avdeling',
+ 'Add GIFI' => 'Ny GIFI',
+ 'Add Language' => 'Nytt språk',
+ 'Add SIC' => 'Ny SIC',
+ 'Add Warehouse' => 'Nytt lager',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Beløp',
+ 'Asset' => 'Aktiv',
+ 'Audit Control' => 'Revisjonskontroll',
+ 'Audit trail disabled' => 'Revisjonssporing ikke aktivisert',
+ 'Audit trail enabled' => 'Revisjonssporing aktivisert',
+ 'Audit trail removed up to' => 'Revisjonssporing fjernet inntil',
+ 'Backup sent to' => 'Sikkerhetskopier sendt til',
+ 'Bin List' => 'Boksliste',
+ 'Books are open' => 'Bokføringen er åpen for rettelser',
+ 'Business Number' => 'Organisasjonsnummer',
+ 'Business deleted!' => 'Organisasjon fjernet!',
+ 'Business saved!' => 'Organisasjon lagret!',
+ 'COGS' => 'Innkjøp',
+ 'Cannot delete account!' => 'Kan ikke slette konto!',
+ 'Cannot delete default account!' => 'Kan ikke slette standardkonto!',
+ 'Cannot save account!' => 'Kan ikke lagre konto!',
+ 'Cannot save defaults!' => 'Kan ikke lagre defaults!',
+ 'Cannot save preferences!' => 'Kan ikke lagre preferanser!',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Kan ikke sette konto for mer enn en av Kunde, Leverandør eller Intern',
+ 'Cannot set multiple options for' => 'Kan ikke sette flere valg for',
+ 'Cash' => 'Kontant',
+ 'Chart of Accounts' => 'Kontoplan',
+ 'Close Books up to' => 'Avslutt bokføring opp til',
+ 'Code' => 'Kode',
+ 'Code missing!' => 'Mangler kode',
+ 'Company' => 'Firma',
+ 'Confirm' => 'Bekreft',
+ 'Confirm!' => 'Bekreft!',
+ 'Continue' => 'Fortsett',
+ 'Contra' => 'Kontra',
+ 'Copy to COA' => 'Kopiér til kontoplan',
+ 'Credit' => 'Kredit',
+ 'Customer Number' => 'Kundenummer',
+ 'Database Host' => 'Database-vert',
+ 'Dataset' => 'Datasett',
+ 'Date Format' => 'Datoformat',
+ 'Debit' => 'Debet',
+ 'Defaults saved!' => 'Standardinnstillinger lagret',
+ 'Delete' => 'Slett',
+ 'Delete Account' => 'Fjern konto',
+ 'Department deleted!' => 'Avdeling slettet!',
+ 'Department saved!' => 'Avdeling lagret',
+ 'Departments' => 'Avdelinger',
+ 'Description' => 'Beskrivelse',
+ 'Description missing!' => 'Mangler beskrivelse!',
+ 'Discount' => 'Rabatt',
+ 'Dropdown Limit' => 'Grense for dropdown',
+ 'E-mail' => 'Epost',
+ 'E-mail address missing!' => 'Epost-adresse mangler!',
+ 'Edit' => 'Endre',
+ 'Edit Account' => 'Endre konto',
+ 'Edit Business' => 'Endre organisasjon',
+ 'Edit Department' => 'Endre avdeling',
+ 'Edit GIFI' => 'Endre GIFI',
+ 'Edit Language' => 'Endre språk',
+ 'Edit Preferences for' => 'Endre innstillinger for',
+ 'Edit SIC' => 'Endre SIC',
+ 'Edit Template' => 'Endre mal',
+ 'Edit Warehouse' => 'Endre lager',
+ 'Employee Number' => 'Ansatt-nummer',
+ 'Enforce transaction reversal for all dates' => 'Tving eksplisitte transaksjonsrettelser for alle datoer',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Angi opp til 3 bokstaver adskilt med kolon (fx NOK:EUR:USD:JPY) for innenlandske og utenlandske valutaer',
+ 'Equity' => 'Egenkapital',
+ 'Expense' => 'Utgift',
+ 'Expense/Asset' => 'Utgift/Aktiv',
+ 'Fax' => 'Faks',
+ 'Foreign Exchange Gain' => 'Gevinst på valutahandel',
+ 'Foreign Exchange Loss' => 'Tap på valutahandel',
+ 'GIFI' => 'GIFI',
+ 'GIFI deleted!' => 'GIFI slettet!',
+ 'GIFI missing!' => 'GIFI mangler!',
+ 'GIFI saved!' => 'GIFI lagret!',
+ 'GL Transaction' => 'Postering i hovedbok',
+ 'Heading' => 'Overskrift',
+ 'ID' => 'ID',
+ 'Include in drop-down menus' => 'Inkludér i rullegardin-menyer',
+ 'Income' => 'Inntekt',
+ 'Inventory' => 'Varebeholdning',
+ 'Invoice' => 'Faktura',
+ 'Is this a summary account to record' => 'Samlekonto for',
+ 'Language' => 'Språk',
+ 'Language deleted!' => 'Språk slettet!',
+ 'Language saved!' => 'Språk lagret!',
+ 'Languages' => 'Språk',
+ 'Last Numbers & Default Accounts' => 'Løpenumre og standardkontoer',
+ 'Liability' => 'Passiv',
+ 'Licensed to' => 'Utført for',
+ 'Link' => 'Referanse',
+ 'Menu Width' => 'Menyvidde',
+ 'Method' => 'Metode',
+ 'Month' => 'Måned',
+ 'Name' => 'Navn',
+ 'No' => 'Nei',
+ 'No email address for' => 'Ingen emailadresse for',
+ 'Number' => 'Nummer',
+ 'Number Format' => 'Numerisk format',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Følgeseddel',
+ 'Password' => 'Passord',
+ 'Password does not match!' => 'Passord stemmer ikke!',
+ 'Payables' => 'Utbetalinger',
+ 'Payment' => 'Betaling',
+ 'Phone' => 'Tlf',
+ 'Pick List' => 'Plukkliste',
+ 'Postscript' => 'Postscript',
+ 'Preferences saved!' => 'Innstillinger lagret!',
+ 'Print' => 'Skriv ut',
+ 'Printer' => 'Skriver',
+ 'Purchase Order' => 'Innkjøpsordre',
+ 'Purchase Order Number' => 'Innkjøpsordrenummer',
+ 'Purchase Orders' => 'Innkjøpsordrer',
+ 'RFQ Number' => 'Tilbudsforespørslelsnummer',
+ 'Rate' => 'Rate',
+ 'Receivables' => 'Innbetalinger',
+ 'Reference' => 'Referanse',
+ 'Remove Audit trail up to' => 'Fjern revisjonssporing inntil',
+ 'Retained Earnings' => 'Realisert overskudd',
+ 'Sales Invoice' => 'Salgsfaktura',
+ 'Sales Order' => 'Salgsordre',
+ 'Sales Order Number' => 'Salgsordrenummer',
+ 'Sales Orders' => 'Salgsordrer',
+ 'Save' => 'Lagre',
+ 'Save as new' => 'Lagre som ny',
+ 'Signature' => 'Underskrift',
+ 'Standard Industrial Codes' => 'Standard industrikoder (SIC)',
+ 'Stylesheet' => 'Stílark',
+ 'System Defaults' => 'Systemets standardinnstillinger',
+ 'Tax' => 'Avgift/mva',
+ 'Template saved!' => 'Mal lagret!',
+ 'Transaction' => 'Transaksjon',
+ 'Transaction reversal enforced for all dates' => 'Transaksjonsrettelser skal alltid bokføres eksplisitt',
+ 'Transaction reversal enforced up to' => 'Transaksjonsrettelser skal bokføres eksplisitt inntil',
+ 'Type of Business' => 'Organisasjonstype',
+ 'Update' => 'Oppdatér',
+ 'User' => 'Bruker',
+ 'Vendor Invoice' => 'Leverandørfaktura',
+ 'Vendor Number' => 'Leverandørnummer',
+ 'Version' => 'Versjon',
+ 'Warehouse deleted!' => 'Lager slettet!',
+ 'Warehouse saved!' => 'Lager lagret!',
+ 'Warehouses' => 'Lager',
+ 'Weight Unit' => 'Vektenhet',
+ 'Work Order' => 'Arbeidsordre',
+ 'Year' => 'År',
+ 'Yearend' => 'Årsavslutning',
+ 'Yearend date missing!' => 'Mangler årsavslutningsdato!',
+ 'Yearend posted!' => 'Årsavslutning bokført',
+ 'Yearend posting failed!' => 'Bokføring av årsavslutning feilet!',
+ 'Yes' => 'Ja',
+ 'account cannot be set to any other type of account' => 'konto kan ikke settes til en annen kontotype',
+ 'done' => 'gjort',
+ 'localhost' => 'localhost',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'ny_konto' => 'add_account',
+ 'ny_organisasjon' => 'add_business',
+ 'ny_avdeling' => 'add_department',
+ 'nytt_språk' => 'add_language',
+ 'ny_sic' => 'add_sic',
+ 'nytt_lager' => 'add_warehouse',
+ 'fortsett' => 'continue',
+ 'kopiér_til_kontoplan' => 'copy_to_coa',
+ 'slett' => 'delete',
+ 'endre' => 'edit',
+ 'endre_konto' => 'edit_account',
+ 'lagre' => 'save',
+ 'lagre_som_ny' => 'save_as_new',
+ 'oppdatér' => 'update',
+};
+
+1;
+
diff --git a/locale/nb/ap b/locale/nb/ap
new file mode 100755
index 00000000..57cbcdf3
--- /dev/null
+++ b/locale/nb/ap
@@ -0,0 +1,209 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Ubetalte fakturaer',
+ 'AP Transaction' => 'Kreditorpostering',
+ 'AP Transactions' => 'Kreditorpostering',
+ 'AR Outstanding' => 'Utestående fordringer',
+ 'AR Transaction' => 'Debitorpostering',
+ 'AR Transactions' => 'Debitorposteringer',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Konto-meny',
+ 'Add AP Transaction' => 'Ny kreditorpostering',
+ 'Add AR Transaction' => 'Ny debitorpostering',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Beløp',
+ 'Amount Due' => 'Forfalt beløp',
+ 'Apr' => 'apr',
+ 'April' => 'april',
+ 'Are you sure you want to delete Transaction' => 'Er du sikker på at du vil fjerne postering',
+ 'Aug' => 'aug',
+ 'August' => 'august',
+ 'Bcc' => 'Blind kopi',
+ 'Cannot delete transaction!' => 'Kan ikke slette postering!',
+ 'Cannot post payment for a closed period!' => 'Kan ikke bokføre betaling for en avsluttet periode!',
+ 'Cannot post transaction for a closed period!' => 'Kan ikke bokføre postering for en avsluttet periode!',
+ 'Cannot post transaction!' => 'Kan ikke bokføre postering!',
+ 'Cc' => 'Kopi til',
+ 'Check' => 'Sjekk',
+ 'Closed' => 'Avsluttet',
+ 'Confirm!' => 'Bekreft!',
+ 'Continue' => 'Fortsett',
+ 'Credit' => 'Kredit',
+ 'Credit Limit' => 'Kreditgrense',
+ 'Curr' => 'Val',
+ 'Currency' => 'Valuta',
+ 'Current' => 'Nåværende',
+ 'Customer' => 'Kunde',
+ 'Customer missing!' => 'Kunde mangler!',
+ 'Customer not on file!' => 'Kunde mangler i databasen!',
+ 'Date' => 'Dato',
+ 'Date Paid' => 'Betalingsdato',
+ 'Debit' => 'Debet',
+ 'Dec' => 'des',
+ 'December' => 'desember',
+ 'Delete' => 'Slett',
+ 'Department' => 'Avdeling',
+ 'Description' => 'Beskrivelse',
+ 'Detail' => 'Detalj',
+ 'Due Date' => 'Forfallsdato',
+ 'Due Date missing!' => 'Forfallsdato mangler!',
+ 'E-mail' => 'Epost',
+ 'Edit AP Transaction' => 'Endre kreditorpostering',
+ 'Edit AR Transaction' => 'Endre debitorpostering',
+ 'Employee' => 'Ansatt',
+ 'Exch' => 'Vxl',
+ 'Exchange Rate' => 'Vekslingskurs',
+ 'Exchange rate for payment missing!' => 'Vekslingskurs for betaling mangler!',
+ 'Exchange rate missing!' => 'Vekslingskurs mangler!',
+ 'Feb' => 'feb',
+ 'February' => 'februar',
+ 'From' => 'Fra',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Inkludér i rapport',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date' => 'Fakturadato',
+ 'Invoice Date missing!' => 'Fakturadato mangler!',
+ 'Invoice Number' => 'Fakturanummer',
+ 'Jan' => 'jan',
+ 'January' => 'januar',
+ 'Jul' => 'jul',
+ 'July' => 'juli',
+ 'Jun' => 'jun',
+ 'June' => 'juni',
+ 'Manager' => 'Behandler',
+ 'Mar' => 'mar',
+ 'March' => 'mars',
+ 'May' => 'mai',
+ 'May ' => 'mai ',
+ 'Memo' => 'Notat',
+ 'Message' => 'Melding',
+ 'Month' => 'Måned',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Merknader',
+ 'Nothing to print!' => 'Ingenting å skrive ut!',
+ 'Nov' => 'nov',
+ 'November' => 'november',
+ 'Number' => 'Nummer',
+ 'Oct' => 'okt',
+ 'October' => 'oktober',
+ 'Open' => 'Åpne',
+ 'Order' => 'Ordre',
+ 'Order Number' => 'Ordrenummer',
+ 'PDF' => 'PDF',
+ 'Paid' => 'Betalt',
+ 'Payment date missing!' => 'Betalingsdato mangler!',
+ 'Payments' => 'Betalinger',
+ 'Period' => 'Periode',
+ 'Post' => 'Bokfør',
+ 'Post as new' => 'Bokfør som ny',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Skriv ut',
+ 'Print and Post' => 'Skriv ut og bokfør',
+ 'Printed' => 'Skrevet ut',
+ 'Project' => 'Prosjekt',
+ 'Project not on file!' => 'Prosjektet mangler i databasen!',
+ 'Quarter' => 'Kvartal',
+ 'Receipt' => 'Kvittering',
+ 'Reference' => 'Referanse',
+ 'Remaining' => 'Resterende',
+ 'Sales Invoice.' => 'Salgsfaktura.',
+ 'Salesperson' => 'Selger',
+ 'Screen' => 'Skjerm',
+ 'Select from one of the names below' => 'Velg ett av navnene under',
+ 'Select from one of the projects below' => 'Velg ett av prosjektene under',
+ 'Select postscript or PDF!' => 'Velg postscript eller PDF!',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Ship to' => 'Send til',
+ 'Ship via' => 'Send via',
+ 'Shipping Point' => 'Sendes fra',
+ 'Source' => 'Bilag',
+ 'Startdate' => 'Startdato',
+ 'Subject' => 'Emne',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Oppsummert',
+ 'Tax' => 'Avgift/mva',
+ 'Tax Included' => 'Inkl. avgifter og mva',
+ 'Till' => 'Kasse',
+ 'To' => 'Til',
+ 'Total' => 'I alt',
+ 'Transaction' => 'Transaksjon',
+ 'Transaction deleted!' => 'Postering slettet!',
+ 'Transaction posted!' => 'Postering bokført!',
+ 'Update' => 'Oppdatér',
+ 'Vendor' => 'Leverandør',
+ 'Vendor Invoice.' => 'Leverandørfaktura.',
+ 'Vendor missing!' => 'Leverandør mangler!',
+ 'Vendor not on file!' => 'Leverandør mangler i database!',
+ 'Warning!' => 'Advarsel',
+ 'Year' => 'År',
+ 'Yes' => 'Ja',
+ 'sent' => 'sent',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'kreditorpostering' => 'ap_transaction',
+ 'debitorpostering' => 'ar_transaction',
+ 'fortsett' => 'continue',
+ 'slett' => 'delete',
+ 'bokfør' => 'post',
+ 'bokfør_som_ny' => 'post_as_new',
+ 'skriv_ut' => 'print',
+ 'skriv_ut_og_bokfør' => 'print_and_post',
+ 'salgsfaktura_' => 'sales_invoice_',
+ 'send_til' => 'ship_to',
+ 'oppdatér' => 'update',
+ 'leverandørfaktura_' => 'vendor_invoice_',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/nb/ar b/locale/nb/ar
new file mode 100755
index 00000000..57cbcdf3
--- /dev/null
+++ b/locale/nb/ar
@@ -0,0 +1,209 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Ubetalte fakturaer',
+ 'AP Transaction' => 'Kreditorpostering',
+ 'AP Transactions' => 'Kreditorpostering',
+ 'AR Outstanding' => 'Utestående fordringer',
+ 'AR Transaction' => 'Debitorpostering',
+ 'AR Transactions' => 'Debitorposteringer',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Konto-meny',
+ 'Add AP Transaction' => 'Ny kreditorpostering',
+ 'Add AR Transaction' => 'Ny debitorpostering',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Beløp',
+ 'Amount Due' => 'Forfalt beløp',
+ 'Apr' => 'apr',
+ 'April' => 'april',
+ 'Are you sure you want to delete Transaction' => 'Er du sikker på at du vil fjerne postering',
+ 'Aug' => 'aug',
+ 'August' => 'august',
+ 'Bcc' => 'Blind kopi',
+ 'Cannot delete transaction!' => 'Kan ikke slette postering!',
+ 'Cannot post payment for a closed period!' => 'Kan ikke bokføre betaling for en avsluttet periode!',
+ 'Cannot post transaction for a closed period!' => 'Kan ikke bokføre postering for en avsluttet periode!',
+ 'Cannot post transaction!' => 'Kan ikke bokføre postering!',
+ 'Cc' => 'Kopi til',
+ 'Check' => 'Sjekk',
+ 'Closed' => 'Avsluttet',
+ 'Confirm!' => 'Bekreft!',
+ 'Continue' => 'Fortsett',
+ 'Credit' => 'Kredit',
+ 'Credit Limit' => 'Kreditgrense',
+ 'Curr' => 'Val',
+ 'Currency' => 'Valuta',
+ 'Current' => 'Nåværende',
+ 'Customer' => 'Kunde',
+ 'Customer missing!' => 'Kunde mangler!',
+ 'Customer not on file!' => 'Kunde mangler i databasen!',
+ 'Date' => 'Dato',
+ 'Date Paid' => 'Betalingsdato',
+ 'Debit' => 'Debet',
+ 'Dec' => 'des',
+ 'December' => 'desember',
+ 'Delete' => 'Slett',
+ 'Department' => 'Avdeling',
+ 'Description' => 'Beskrivelse',
+ 'Detail' => 'Detalj',
+ 'Due Date' => 'Forfallsdato',
+ 'Due Date missing!' => 'Forfallsdato mangler!',
+ 'E-mail' => 'Epost',
+ 'Edit AP Transaction' => 'Endre kreditorpostering',
+ 'Edit AR Transaction' => 'Endre debitorpostering',
+ 'Employee' => 'Ansatt',
+ 'Exch' => 'Vxl',
+ 'Exchange Rate' => 'Vekslingskurs',
+ 'Exchange rate for payment missing!' => 'Vekslingskurs for betaling mangler!',
+ 'Exchange rate missing!' => 'Vekslingskurs mangler!',
+ 'Feb' => 'feb',
+ 'February' => 'februar',
+ 'From' => 'Fra',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Inkludér i rapport',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date' => 'Fakturadato',
+ 'Invoice Date missing!' => 'Fakturadato mangler!',
+ 'Invoice Number' => 'Fakturanummer',
+ 'Jan' => 'jan',
+ 'January' => 'januar',
+ 'Jul' => 'jul',
+ 'July' => 'juli',
+ 'Jun' => 'jun',
+ 'June' => 'juni',
+ 'Manager' => 'Behandler',
+ 'Mar' => 'mar',
+ 'March' => 'mars',
+ 'May' => 'mai',
+ 'May ' => 'mai ',
+ 'Memo' => 'Notat',
+ 'Message' => 'Melding',
+ 'Month' => 'Måned',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Merknader',
+ 'Nothing to print!' => 'Ingenting å skrive ut!',
+ 'Nov' => 'nov',
+ 'November' => 'november',
+ 'Number' => 'Nummer',
+ 'Oct' => 'okt',
+ 'October' => 'oktober',
+ 'Open' => 'Åpne',
+ 'Order' => 'Ordre',
+ 'Order Number' => 'Ordrenummer',
+ 'PDF' => 'PDF',
+ 'Paid' => 'Betalt',
+ 'Payment date missing!' => 'Betalingsdato mangler!',
+ 'Payments' => 'Betalinger',
+ 'Period' => 'Periode',
+ 'Post' => 'Bokfør',
+ 'Post as new' => 'Bokfør som ny',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Skriv ut',
+ 'Print and Post' => 'Skriv ut og bokfør',
+ 'Printed' => 'Skrevet ut',
+ 'Project' => 'Prosjekt',
+ 'Project not on file!' => 'Prosjektet mangler i databasen!',
+ 'Quarter' => 'Kvartal',
+ 'Receipt' => 'Kvittering',
+ 'Reference' => 'Referanse',
+ 'Remaining' => 'Resterende',
+ 'Sales Invoice.' => 'Salgsfaktura.',
+ 'Salesperson' => 'Selger',
+ 'Screen' => 'Skjerm',
+ 'Select from one of the names below' => 'Velg ett av navnene under',
+ 'Select from one of the projects below' => 'Velg ett av prosjektene under',
+ 'Select postscript or PDF!' => 'Velg postscript eller PDF!',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Ship to' => 'Send til',
+ 'Ship via' => 'Send via',
+ 'Shipping Point' => 'Sendes fra',
+ 'Source' => 'Bilag',
+ 'Startdate' => 'Startdato',
+ 'Subject' => 'Emne',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Oppsummert',
+ 'Tax' => 'Avgift/mva',
+ 'Tax Included' => 'Inkl. avgifter og mva',
+ 'Till' => 'Kasse',
+ 'To' => 'Til',
+ 'Total' => 'I alt',
+ 'Transaction' => 'Transaksjon',
+ 'Transaction deleted!' => 'Postering slettet!',
+ 'Transaction posted!' => 'Postering bokført!',
+ 'Update' => 'Oppdatér',
+ 'Vendor' => 'Leverandør',
+ 'Vendor Invoice.' => 'Leverandørfaktura.',
+ 'Vendor missing!' => 'Leverandør mangler!',
+ 'Vendor not on file!' => 'Leverandør mangler i database!',
+ 'Warning!' => 'Advarsel',
+ 'Year' => 'År',
+ 'Yes' => 'Ja',
+ 'sent' => 'sent',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'kreditorpostering' => 'ap_transaction',
+ 'debitorpostering' => 'ar_transaction',
+ 'fortsett' => 'continue',
+ 'slett' => 'delete',
+ 'bokfør' => 'post',
+ 'bokfør_som_ny' => 'post_as_new',
+ 'skriv_ut' => 'print',
+ 'skriv_ut_og_bokfør' => 'print_and_post',
+ 'salgsfaktura_' => 'sales_invoice_',
+ 'send_til' => 'ship_to',
+ 'oppdatér' => 'update',
+ 'leverandørfaktura_' => 'vendor_invoice_',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/nb/arap b/locale/nb/arap
new file mode 100755
index 00000000..ee12ad49
--- /dev/null
+++ b/locale/nb/arap
@@ -0,0 +1,51 @@
+$self{texts} = {
+ 'Address' => 'Adresse',
+ 'Bcc' => 'Blind kopi',
+ 'Cc' => 'Kopi til',
+ 'Continue' => 'Fortsett',
+ 'Customer not on file!' => 'Kunde mangler i databasen!',
+ 'Date' => 'Dato',
+ 'Description' => 'Beskrivelse',
+ 'E-mail' => 'Epost',
+ 'Message' => 'Melding',
+ 'Number' => 'Nummer',
+ 'Print' => 'Skriv ut',
+ 'Project not on file!' => 'Prosjektet mangler i databasen!',
+ 'Reference' => 'Referanse',
+ 'Select from one of the names below' => 'Velg ett av navnene under',
+ 'Select from one of the projects below' => 'Velg ett av prosjektene under',
+ 'Startdate' => 'Startdato',
+ 'Subject' => 'Emne',
+ 'To' => 'Til',
+ 'Vendor not on file!' => 'Leverandør mangler i database!',
+ 'Warning!' => 'Advarsel',
+ 'sent' => 'sent',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'fortsett' => 'continue',
+};
+
+1;
+
diff --git a/locale/nb/arapprn b/locale/nb/arapprn
new file mode 100755
index 00000000..5d354e7c
--- /dev/null
+++ b/locale/nb/arapprn
@@ -0,0 +1,31 @@
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Amount' => 'Beløp',
+ 'Continue' => 'Fortsett',
+ 'Date' => 'Dato',
+ 'Memo' => 'Notat',
+ 'Nothing to print!' => 'Ingenting å skrive ut!',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'Postscript',
+ 'Printed' => 'Skrevet ut',
+ 'Screen' => 'Skjerm',
+ 'Select postscript or PDF!' => 'Velg postscript eller PDF!',
+ 'Source' => 'Bilag',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'fortsett' => 'continue',
+};
+
+1;
+
diff --git a/locale/nb/bp b/locale/nb/bp
new file mode 100755
index 00000000..1bd90d00
--- /dev/null
+++ b/locale/nb/bp
@@ -0,0 +1,67 @@
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Konto-meny',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Er du sikker på at du ønsker å fjerne de markerte oppføringene fra køen?',
+ 'Bin Lists' => 'Bokslister',
+ 'Cannot remove files!' => 'Kan ikke slette filer!',
+ 'Confirm!' => 'Bekreft!',
+ 'Continue' => 'Fortsett',
+ 'Current' => 'Nåværende',
+ 'Customer' => 'Kunde',
+ 'Date' => 'Dato',
+ 'Employee' => 'Ansatt',
+ 'From' => 'Fra',
+ 'ID' => 'ID',
+ 'Invoice' => 'Faktura',
+ 'Invoice Number' => 'Fakturanummer',
+ 'Marked entries printed!' => 'Markerte oppføringer er skrevet ut!',
+ 'Month' => 'Måned',
+ 'Order' => 'Ordre',
+ 'Order Number' => 'Ordrenummer',
+ 'Packing Lists' => 'Følgesedler',
+ 'Period' => 'Periode',
+ 'Pick Lists' => 'Plukklister',
+ 'Print' => 'Skriv ut',
+ 'Purchase Orders' => 'Innkjøpsordrer',
+ 'Quarter' => 'Kvartal',
+ 'Quotation' => 'Tilbud',
+ 'Quotation Number' => 'Tilbudsnummer',
+ 'Quotations' => 'Tilbud',
+ 'RFQs' => 'Tilbudsforespørsler',
+ 'Remove' => 'Fjern',
+ 'Removed spoolfiles!' => 'Fjernet køfiler!',
+ 'Removing marked entries from queue ...' => 'Fjernet de markerte oppføringer fra køen...',
+ 'Sales Invoices' => 'Salgsfakturaer',
+ 'Sales Orders' => 'Salgsordrer',
+ 'Select all' => 'Velg alt',
+ 'Spoolfile' => 'Køfil',
+ 'To' => 'Til',
+ 'Vendor' => 'Leverandør',
+ 'Work Orders' => 'Arbeidsordrer',
+ 'Year' => 'År',
+ 'Yes' => 'Ja',
+ 'done' => 'gjort',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'fortsett' => 'continue',
+ 'skriv_ut' => 'print',
+ 'fjern' => 'remove',
+ 'velg_alt' => 'select_all',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/nb/ca b/locale/nb/ca
new file mode 100755
index 00000000..c9b6595f
--- /dev/null
+++ b/locale/nb/ca
@@ -0,0 +1,59 @@
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Apr' => 'apr',
+ 'April' => 'april',
+ 'Aug' => 'aug',
+ 'August' => 'august',
+ 'Balance' => 'Balanse',
+ 'Chart of Accounts' => 'Kontoplan',
+ 'Credit' => 'Kredit',
+ 'Current' => 'Nåværende',
+ 'Date' => 'Dato',
+ 'Debit' => 'Debet',
+ 'Dec' => 'des',
+ 'December' => 'desember',
+ 'Department' => 'Avdeling',
+ 'Description' => 'Beskrivelse',
+ 'Feb' => 'feb',
+ 'February' => 'februar',
+ 'From' => 'Fra',
+ 'GIFI' => 'GIFI',
+ 'Include in Report' => 'Inkludér i rapport',
+ 'Jan' => 'jan',
+ 'January' => 'januar',
+ 'Jul' => 'jul',
+ 'July' => 'juli',
+ 'Jun' => 'jun',
+ 'June' => 'juni',
+ 'List Transactions' => 'Vis bokføringer',
+ 'Mar' => 'mar',
+ 'March' => 'mars',
+ 'May' => 'mai',
+ 'May ' => 'mai ',
+ 'Month' => 'Måned',
+ 'Nov' => 'nov',
+ 'November' => 'november',
+ 'Oct' => 'okt',
+ 'October' => 'oktober',
+ 'Period' => 'Periode',
+ 'Project Number' => 'Prosjektnummer',
+ 'Quarter' => 'Kvartal',
+ 'R' => 'R',
+ 'Reference' => 'Referanse',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'Til',
+ 'Year' => 'År',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'vis_bokføringer' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/nb/cp b/locale/nb/cp
new file mode 100755
index 00000000..337e860e
--- /dev/null
+++ b/locale/nb/cp
@@ -0,0 +1,123 @@
+$self{texts} = {
+ 'AP' => 'Kreditorer',
+ 'AR' => 'Debitorer',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Konto-meny',
+ 'Address' => 'Adresse',
+ 'All' => 'Alle',
+ 'Amount' => 'Beløp',
+ 'Amount Due' => 'Forfalt beløp',
+ 'Bcc' => 'Blind kopi',
+ 'Cannot post Payment!' => 'Kan ikke bokføre betaling',
+ 'Cannot post Receipt!' => 'Kan ikke bokføre kvittering',
+ 'Cannot post payment for a closed period!' => 'Kan ikke bokføre betaling for en avsluttet periode!',
+ 'Cc' => 'Kopi til',
+ 'Continue' => 'Fortsett',
+ 'Currency' => 'Valuta',
+ 'Customer' => 'Kunde',
+ 'Customer not on file!' => 'Kunde mangler i databasen!',
+ 'Date' => 'Dato',
+ 'Date missing!' => 'Dato mangler!',
+ 'Department' => 'Avdeling',
+ 'Deposit' => 'Depositum',
+ 'Description' => 'Beskrivelse',
+ 'Due Date' => 'Forfallsdato',
+ 'E-mail' => 'Epost',
+ 'Exchange Rate' => 'Vekslingskurs',
+ 'Exchange rate missing!' => 'Vekslingskurs mangler!',
+ 'From' => 'Fra',
+ 'Invoice' => 'Faktura',
+ 'Invoices' => 'Fakturaer',
+ 'Language' => 'Språk',
+ 'Memo' => 'Notat',
+ 'Message' => 'Melding',
+ 'Number' => 'Nummer',
+ 'PDF' => 'PDF',
+ 'Payment' => 'Betaling',
+ 'Payment posted!' => 'Betaling bokført!',
+ 'Payments' => 'Betalinger',
+ 'Post' => 'Bokfør',
+ 'Postscript' => 'Postscript',
+ 'Prepayment' => 'Forskuddsbetaling',
+ 'Print' => 'Skriv ut',
+ 'Project not on file!' => 'Prosjektet mangler i databasen!',
+ 'Receipt' => 'Kvittering',
+ 'Receipt posted!' => 'Kvittering bokført',
+ 'Receipts' => 'Kvitteringer',
+ 'Reference' => 'Referanse',
+ 'Screen' => 'Skjerm',
+ 'Select' => 'Velg',
+ 'Select all' => 'Velg alt',
+ 'Select from one of the names below' => 'Velg ett av navnene under',
+ 'Select from one of the projects below' => 'Velg ett av prosjektene under',
+ 'Select postscript or PDF!' => 'Velg postscript eller PDF!',
+ 'Source' => 'Bilag',
+ 'Startdate' => 'Startdato',
+ 'Subject' => 'Emne',
+ 'To' => 'Til',
+ 'Update' => 'Oppdatér',
+ 'Vendor' => 'Leverandør',
+ 'Vendor not on file!' => 'Leverandør mangler i database!',
+ 'Warning!' => 'Advarsel',
+ 'sent' => 'sent',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'fortsett' => 'continue',
+ 'bokfør' => 'post',
+ 'skriv_ut' => 'print',
+ 'velg_alt' => 'select_all',
+ 'oppdatér' => 'update',
+};
+
+1;
+
diff --git a/locale/nb/ct b/locale/nb/ct
new file mode 100755
index 00000000..c8034996
--- /dev/null
+++ b/locale/nb/ct
@@ -0,0 +1,179 @@
+$self{texts} = {
+ 'AP Transaction' => 'Kreditorpostering',
+ 'AP Transactions' => 'Kreditorpostering',
+ 'AR Transaction' => 'Debitorpostering',
+ 'AR Transactions' => 'Debitorposteringer',
+ 'Accounting Menu' => 'Konto-meny',
+ 'Active' => 'Aktiv',
+ 'Add Customer' => 'Ny kunde',
+ 'Add Vendor' => 'Ny leverandør',
+ 'Address' => 'Adresse',
+ 'All' => 'Alle',
+ 'Amount' => 'Beløp',
+ 'Bcc' => 'Blind kopi',
+ 'Billing Address' => 'Fakturaadresse',
+ 'Cannot delete customer!' => 'Kan ikke slette kunde!',
+ 'Cannot delete vendor!' => 'Kan ikke slette leverandør!',
+ 'Cc' => 'Kopi til',
+ 'City' => 'Poststed',
+ 'Closed' => 'Avsluttet',
+ 'Company Name' => 'Firmanavn',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Fortsett',
+ 'Cost' => 'Kostpris',
+ 'Could not save pricelist!' => 'Kunne ikke lagre prisliste!',
+ 'Country' => 'Land',
+ 'Credit Limit' => 'Kreditgrense',
+ 'Curr' => 'Val',
+ 'Currency' => 'Valuta',
+ 'Customer History' => 'Kundehistorikk',
+ 'Customer Number' => 'Kundenummer',
+ 'Customer deleted!' => 'Kunde slettet!',
+ 'Customer saved!' => 'Kunde lagret!',
+ 'Customers' => 'Kunder',
+ 'Delete' => 'Slett',
+ 'Delivery Date' => 'Leveringsdato',
+ 'Description' => 'Beskrivelse',
+ 'Detail' => 'Detalj',
+ 'Discount' => 'Rabatt',
+ 'E-mail' => 'Epost',
+ 'Edit Customer' => 'Endre kundeopplysninger',
+ 'Edit Vendor' => 'Endre leverandør',
+ 'Employee' => 'Ansatt',
+ 'Enddate' => 'Sluttdato',
+ 'Fax' => 'Faks',
+ 'From' => 'Fra',
+ 'GIFI' => 'GIFI',
+ 'Group' => 'Gruppe',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Inkludér i rapport',
+ 'Invoice' => 'Faktura',
+ 'Item already on pricelist!' => 'Elementet finnes allerede på prislisten!',
+ 'Item not on file!' => 'Elementet mangler i databasen!',
+ 'Language' => 'Språk',
+ 'Leadtime' => 'forsinkelsestid',
+ 'Manager' => 'Behandler',
+ 'Name' => 'Navn',
+ 'Name missing!' => 'Navn mangler!',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Merknader',
+ 'Number' => 'Nummer',
+ 'Open' => 'Åpne',
+ 'Order' => 'Ordre',
+ 'Orphaned' => 'Frittstående',
+ 'POS' => 'Kontantsalg',
+ 'Phone' => 'Tlf',
+ 'Pricegroup' => 'Prisgruppe',
+ 'Pricelist' => 'Prisliste',
+ 'Project Number' => 'Prosjektnummer',
+ 'Purchase Order' => 'Innkjøpsordre',
+ 'Purchase Orders' => 'Innkjøpsordrer',
+ 'Qty' => 'Antall',
+ 'Quotation' => 'Tilbud',
+ 'Quotations' => 'Tilbud',
+ 'RFQ' => 'Tilbudsforespørsel',
+ 'Request for Quotations' => 'Tilbudsforespørsler',
+ 'Sales Invoice' => 'Salgsfaktura',
+ 'Sales Invoices' => 'Salgsfakturaer',
+ 'Sales Order' => 'Salgsordre',
+ 'Sales Orders' => 'Salgsordrer',
+ 'Salesperson' => 'Selger',
+ 'Save' => 'Lagre',
+ 'Save Pricelist' => 'Lagre prisliste',
+ 'Save as new' => 'Lagre som ny',
+ 'Search' => 'Søk',
+ 'Sell Price' => 'Salgspris',
+ 'Serial Number' => 'Serienummer',
+ 'Shipping Address' => 'Leveringsadresse',
+ 'Startdate' => 'Startdato',
+ 'State/Province' => 'Delstat/område',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Oppsummert',
+ 'Tax' => 'Avgift/mva',
+ 'Tax Included' => 'Inkl. avgifter og mva',
+ 'Tax Number' => 'Org.nr.',
+ 'Tax Number / SSN' => 'Org.nr.',
+ 'Taxable' => 'Avgifts/mvapliktig',
+ 'Terms' => 'Vilkår',
+ 'To' => 'Til',
+ 'Total' => 'I alt',
+ 'Type of Business' => 'Organisasjonstype',
+ 'Unit' => 'Enhet',
+ 'Update' => 'Oppdatér',
+ 'Vendor History' => 'Leverandørhistorikk',
+ 'Vendor Invoice' => 'Leverandørfaktura',
+ 'Vendor Invoices' => 'Leverandørfakturaer',
+ 'Vendor Number' => 'Leverandørnummer',
+ 'Vendor deleted!' => 'Leverandør slettet!',
+ 'Vendor saved!' => 'Leverandør lagret!',
+ 'Vendors' => 'Leverandører',
+ 'Zip/Postal Code' => 'Postnummer',
+ 'days' => 'dager',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'kreditorpostering' => 'ap_transaction',
+ 'debitorpostering' => 'ar_transaction',
+ 'ny_kunde' => 'add_customer',
+ 'ny_leverandør' => 'add_vendor',
+ 'fortsett' => 'continue',
+ 'slett' => 'delete',
+ 'kontantsalg' => 'pos',
+ 'prisliste' => 'pricelist',
+ 'innkjøpsordre' => 'purchase_order',
+ 'tilbud' => 'quotation',
+ 'tilbudsforespørsel' => 'rfq',
+ 'salgsfaktura' => 'sales_invoice',
+ 'salgsordre' => 'sales_order',
+ 'lagre' => 'save',
+ 'lagre_prisliste' => 'save_pricelist',
+ 'lagre_som_ny' => 'save_as_new',
+ 'oppdatér' => 'update',
+ 'leverandørfaktura' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/nb/gl b/locale/nb/gl
new file mode 100755
index 00000000..603be174
--- /dev/null
+++ b/locale/nb/gl
@@ -0,0 +1,158 @@
+$self{texts} = {
+ 'AP Transaction' => 'Kreditorpostering',
+ 'AR Transaction' => 'Debitorpostering',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Konto-meny',
+ 'Add Cash Transfer Transaction' => 'Nytt kontantsalg',
+ 'Add General Ledger Transaction' => 'Ny postering i hovedbok',
+ 'Address' => 'Adresse',
+ 'All' => 'Alle',
+ 'Amount' => 'Beløp',
+ 'Apr' => 'apr',
+ 'April' => 'april',
+ 'Are you sure you want to delete Transaction' => 'Er du sikker på at du vil fjerne postering',
+ 'Asset' => 'Aktiv',
+ 'Aug' => 'aug',
+ 'August' => 'august',
+ 'Balance' => 'Balanse',
+ 'Bcc' => 'Blind kopi',
+ 'Cannot delete transaction!' => 'Kan ikke slette postering!',
+ 'Cannot post transaction for a closed period!' => 'Kan ikke bokføre postering for en avsluttet periode!',
+ 'Cannot post transaction!' => 'Kan ikke bokføre postering!',
+ 'Cc' => 'Kopi til',
+ 'Confirm!' => 'Bekreft!',
+ 'Continue' => 'Fortsett',
+ 'Credit' => 'Kredit',
+ 'Current' => 'Nåværende',
+ 'Customer not on file!' => 'Kunde mangler i databasen!',
+ 'Date' => 'Dato',
+ 'Debit' => 'Debet',
+ 'Dec' => 'des',
+ 'December' => 'desember',
+ 'Delete' => 'Slett',
+ 'Department' => 'Avdeling',
+ 'Description' => 'Beskrivelse',
+ 'E-mail' => 'Epost',
+ 'Edit Cash Transfer Transaction' => 'Endre kontant overførsel',
+ 'Edit General Ledger Transaction' => 'Endre en postering i hovedbok',
+ 'Equity' => 'Egenkapital',
+ 'Expense' => 'Utgift',
+ 'FX' => 'Faks',
+ 'Feb' => 'feb',
+ 'February' => 'februar',
+ 'From' => 'Fra',
+ 'GIFI' => 'GIFI',
+ 'GL Transaction' => 'Postering i hovedbok',
+ 'General Ledger' => 'Hovedbok',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Inkludér i rapport',
+ 'Income' => 'Inntekt',
+ 'Jan' => 'jan',
+ 'January' => 'januar',
+ 'Jul' => 'jul',
+ 'July' => 'juli',
+ 'Jun' => 'jun',
+ 'June' => 'juni',
+ 'Liability' => 'Passiv',
+ 'Mar' => 'mar',
+ 'March' => 'mars',
+ 'May' => 'mai',
+ 'May ' => 'mai ',
+ 'Memo' => 'Notat',
+ 'Message' => 'Melding',
+ 'Month' => 'Måned',
+ 'Notes' => 'Merknader',
+ 'Nov' => 'nov',
+ 'November' => 'november',
+ 'Number' => 'Nummer',
+ 'Oct' => 'okt',
+ 'October' => 'oktober',
+ 'Out of balance transaction!' => 'Transaksjonen er i ubalanse!',
+ 'Period' => 'Periode',
+ 'Post' => 'Bokfør',
+ 'Post as new' => 'Bokfør som ny',
+ 'Print' => 'Skriv ut',
+ 'Project' => 'Prosjekt',
+ 'Project not on file!' => 'Prosjektet mangler i databasen!',
+ 'Quarter' => 'Kvartal',
+ 'R' => 'R',
+ 'Reference' => 'Referanse',
+ 'Reports' => 'Rapporter',
+ 'Sales Invoice ' => 'Salgsfaktura ',
+ 'Select from one of the names below' => 'Velg ett av navnene under',
+ 'Select from one of the projects below' => 'Velg ett av prosjektene under',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Source' => 'Bilag',
+ 'Startdate' => 'Startdato',
+ 'Subject' => 'Emne',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'Til',
+ 'Transaction Date missing!' => 'Transaksjonsdato mangler!',
+ 'Transaction deleted!' => 'Postering slettet!',
+ 'Transaction posted!' => 'Postering bokført!',
+ 'Update' => 'Oppdatér',
+ 'Vendor Invoice ' => 'Leverandørfaktura ',
+ 'Vendor not on file!' => 'Leverandør mangler i database!',
+ 'Warning!' => 'Advarsel',
+ 'Year' => 'År',
+ 'Yes' => 'Ja',
+ 'sent' => 'sent',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'kreditorpostering' => 'ap_transaction',
+ 'debitorpostering' => 'ar_transaction',
+ 'fortsett' => 'continue',
+ 'slett' => 'delete',
+ 'postering_i_hovedbok' => 'gl_transaction',
+ 'bokfør' => 'post',
+ 'bokfør_som_ny' => 'post_as_new',
+ 'salgsfaktura_' => 'sales_invoice_',
+ 'oppdatér' => 'update',
+ 'leverandørfaktura_' => 'vendor_invoice_',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/nb/hr b/locale/nb/hr
new file mode 100755
index 00000000..b77d5101
--- /dev/null
+++ b/locale/nb/hr
@@ -0,0 +1,113 @@
+$self{texts} = {
+ 'AP' => 'Kreditorer',
+ 'Above' => 'Over',
+ 'Accounting Menu' => 'Konto-meny',
+ 'Active' => 'Aktiv',
+ 'Add Deduction' => 'Nytt fradrag',
+ 'Add Employee' => 'Ny ansatt',
+ 'Address' => 'Adresse',
+ 'Administrator' => 'Administrator',
+ 'After Deduction' => 'Etter fradrag',
+ 'All' => 'Alle',
+ 'Allowances' => 'Fradrag',
+ 'Amount' => 'Beløp',
+ 'Amount missing!' => 'Konto mangler!',
+ 'Based on' => 'Basert på',
+ 'Before Deduction' => 'Før fradrag',
+ 'Below' => 'Under',
+ 'City' => 'Poststed',
+ 'Continue' => 'Fortsett',
+ 'Country' => 'Land',
+ 'Deduct after' => 'Fratrekk etter',
+ 'Deduction deleted!' => 'Slettet fradrag',
+ 'Deduction saved!' => 'Fradrag lagret',
+ 'Deductions' => 'Fradrag',
+ 'Delete' => 'Slett',
+ 'Description' => 'Beskrivelse',
+ 'Description missing!' => 'Mangler beskrivelse!',
+ 'E-mail' => 'Epost',
+ 'Edit Deduction' => 'Endre fradrag',
+ 'Edit Employee' => 'Endre ansatt',
+ 'Employee' => 'Ansatt',
+ 'Employee Name' => 'Navn på ansatt',
+ 'Employee Number' => 'Ansatt-nummer',
+ 'Employee deleted!' => 'Ansatt slettet',
+ 'Employee pays' => 'Ansatt betaler',
+ 'Employee saved!' => 'Ansatt lagret',
+ 'Employees' => 'Ansatte',
+ 'Employer' => 'Arbeidsgiver',
+ 'Employer pays' => 'Arbeidsgiver betaler',
+ 'Enddate' => 'Sluttdato',
+ 'Expense' => 'Utgift',
+ 'From' => 'Fra',
+ 'Home Phone' => 'Hjemmetelefon',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Inkludér i rapport',
+ 'Login' => 'Login',
+ 'Manager' => 'Behandler',
+ 'Maximum' => 'Maksimum',
+ 'Name' => 'Navn',
+ 'Name missing!' => 'Navn mangler!',
+ 'Notes' => 'Merknader',
+ 'Number' => 'Nummer',
+ 'Orphaned' => 'Frittstående',
+ 'Payroll Deduction' => 'Fradrag i lønn',
+ 'Rate' => 'Rate',
+ 'Rate missing!' => 'Mangler rate!',
+ 'Role' => 'Rolle',
+ 'S' => 'S',
+ 'Sales' => 'Salg',
+ 'Save' => 'Lagre',
+ 'Save as new' => 'Lagre som ny',
+ 'Startdate' => 'Startdato',
+ 'State/Province' => 'Delstat/område',
+ 'Supervisor' => 'Overordnet',
+ 'To' => 'Til',
+ 'Update' => 'Oppdatér',
+ 'User' => 'Bruker',
+ 'Work Phone' => 'Jobbtelefon',
+ 'Zip/Postal Code' => 'Postnummer',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'nytt_fradrag' => 'add_deduction',
+ 'ny_ansatt' => 'add_employee',
+ 'fortsett' => 'continue',
+ 'slett' => 'delete',
+ 'lagre' => 'save',
+ 'lagre_som_ny' => 'save_as_new',
+ 'oppdatér' => 'update',
+};
+
+1;
+
diff --git a/locale/nb/ic b/locale/nb/ic
new file mode 100755
index 00000000..f4e3cd94
--- /dev/null
+++ b/locale/nb/ic
@@ -0,0 +1,275 @@
+$self{texts} = {
+ 'A' => 'A',
+ 'Accounting Menu' => 'Konto-meny',
+ 'Accounts' => 'Kontoer',
+ 'Accrual' => 'Kostnad',
+ 'Active' => 'Aktiv',
+ 'Add' => 'Ny',
+ 'Add Assembly' => 'Ny sammensetning',
+ 'Add Labor/Overhead' => 'Nytt arbeide/overhead',
+ 'Add Part' => 'Ny vare',
+ 'Add Purchase Order' => 'Ny innkjøpsordre',
+ 'Add Quotation' => 'Nytt tilbud',
+ 'Add Request for Quotation' => 'Ny tilbudsforespørsel',
+ 'Add Sales Order' => 'Ny salgsordre',
+ 'Add Service' => 'Ny tjeneste',
+ 'Address' => 'Adresse',
+ 'Apr' => 'apr',
+ 'April' => 'april',
+ 'Assemblies' => 'Sammensetninger',
+ 'Assemblies restocked!' => 'Sammensetninger omplassert!',
+ 'Assembly' => 'Sammensetning',
+ 'Attachment' => 'Vedlegg',
+ 'Aug' => 'aug',
+ 'August' => 'august',
+ 'BOM' => 'BOM',
+ 'Bcc' => 'Blind kopi',
+ 'Billing Address' => 'Fakturaadresse',
+ 'Bin' => 'Boks',
+ 'Bin List' => 'Boksliste',
+ 'COGS' => 'Innkjøp',
+ 'Cannot delete item!' => 'Kan ikke slette enkeltdel!',
+ 'Cannot stock assemblies!' => 'Kan ikke plasere sammensetninger!',
+ 'Cash' => 'Kontant',
+ 'Cc' => 'Kopi til',
+ 'Check Inventory' => 'Sjekk varebeholdning',
+ 'City' => 'Poststed',
+ 'Closed' => 'Avsluttet',
+ 'Company Name' => 'Firmanavn',
+ 'Components' => 'Komponenter',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Fortsett',
+ 'Copies' => 'Kopier',
+ 'Cost' => 'Kostpris',
+ 'Country' => 'Land',
+ 'Curr' => 'Val',
+ 'Currency' => 'Valuta',
+ 'Customer' => 'Kunde',
+ 'Customer Number' => 'Kundenummer',
+ 'Customer not on file!' => 'Kunde mangler i databasen!',
+ 'Date' => 'Dato',
+ 'Dec' => 'des',
+ 'December' => 'desember',
+ 'Delete' => 'Slett',
+ 'Delivery Date' => 'Leveringsdato',
+ 'Description' => 'Beskrivelse',
+ 'Detail' => 'Detalj',
+ 'Drawing' => 'Tegning',
+ 'E-mail' => 'Epost',
+ 'E-mail address missing!' => 'Epost-adresse mangler!',
+ 'E-mailed' => 'Epost sendt',
+ 'Edit Assembly' => 'Endre sammensetning',
+ 'Edit Labor/Overhead' => 'Endre arbeide/overhead',
+ 'Edit Part' => 'Endre vare',
+ 'Edit Service' => 'Endre tjeneste',
+ 'Employee' => 'Ansatt',
+ 'Expense' => 'Utgift',
+ 'Extended' => 'Sum',
+ 'Fax' => 'Faks',
+ 'Feb' => 'feb',
+ 'February' => 'februar',
+ 'From' => 'Fra',
+ 'Group' => 'Gruppe',
+ 'Image' => 'Bilde',
+ 'In-line' => 'Inne i',
+ 'Include in Report' => 'Inkludér i rapport',
+ 'Income' => 'Inntekt',
+ 'Individual Items' => 'Individuelle elementer',
+ 'Inventory' => 'Varebeholdning',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Varebeholdning må være null for at du kan sette denne sammensetningen som foreldet!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Varebeholdning må være null for at du kan sette denne enhet som foreldet!',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date missing!' => 'Fakturadato mangler!',
+ 'Invoice Number' => 'Fakturanummer',
+ 'Invoice Number missing!' => 'Fakturanummer mangler!',
+ 'Item deleted!' => 'Elementet slettet!',
+ 'Item not on file!' => 'Elementet mangler i databasen!',
+ 'Items' => 'Elementer',
+ 'Jan' => 'jan',
+ 'January' => 'januar',
+ 'Jul' => 'jul',
+ 'July' => 'juli',
+ 'Jun' => 'jun',
+ 'June' => 'juni',
+ 'Labor/Overhead' => 'Arbeide/overhead',
+ 'Leadtime' => 'forsinkelsestid',
+ 'Line Total' => 'Antall linjer',
+ 'Link Accounts' => 'Kople kontoer',
+ 'List' => 'List',
+ 'List Price' => 'Listepris',
+ 'Make' => 'Fabrikat',
+ 'Mar' => 'mar',
+ 'March' => 'mars',
+ 'Markup' => 'Markup',
+ 'May' => 'mai',
+ 'May ' => 'mai ',
+ 'Message' => 'Melding',
+ 'Microfiche' => 'Mikrofilm',
+ 'Model' => 'Modell',
+ 'Name' => 'Navn',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Merknader',
+ 'Nov' => 'nov',
+ 'November' => 'november',
+ 'Number' => 'Nummer',
+ 'Number missing in Row' => 'Tall mangler i rad',
+ 'Obsolete' => 'Foreldet',
+ 'Oct' => 'okt',
+ 'October' => 'oktober',
+ 'On Hand' => 'På lager',
+ 'Open' => 'Åpne',
+ 'Order' => 'Ordre',
+ 'Order Date missing!' => 'Ordredato mangler!',
+ 'Order Number' => 'Ordrenummer',
+ 'Order Number missing!' => 'Ordrenummer mangler!',
+ 'Orphaned' => 'Frittstående',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Følgeseddel',
+ 'Packing List Date missing!' => 'Dato for følgeseddel mangler!',
+ 'Packing List Number missing!' => 'Nummer for følgeseddel mangler!',
+ 'Part' => 'Del',
+ 'Parts' => 'Deler',
+ 'Period' => 'Periode',
+ 'Phone' => 'Tlf',
+ 'Pick List' => 'Plukkliste',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Pris',
+ 'Pricegroup' => 'Prisgruppe',
+ 'Printed' => 'Skrevet ut',
+ 'Project' => 'Prosjekt',
+ 'Purchase Order' => 'Innkjøpsordre',
+ 'Purchase Orders' => 'Innkjøpsordrer',
+ 'Qty' => 'Antall',
+ 'Quantity exceeds available units to stock!' => 'Antallet overstiger tilgjengelig varebeholdning',
+ 'Quotation' => 'Tilbud',
+ 'Quotation Date missing!' => 'Mangler tilbudsdato',
+ 'Quotation Number missing!' => 'Mangler tilbudsnummer',
+ 'Quotations' => 'Tilbud',
+ 'RFQ' => 'Tilbudsforespørsel',
+ 'ROP' => 'Etterbestill ved',
+ 'Recd' => 'Mottatt',
+ 'Required by' => 'Leveringsdato',
+ 'Sales Invoice' => 'Salgsfaktura',
+ 'Sales Invoices' => 'Salgsfakturaer',
+ 'Sales Order' => 'Salgsordre',
+ 'Sales Orders' => 'Salgsordrer',
+ 'Save' => 'Lagre',
+ 'Save as new' => 'Lagre som ny',
+ 'Screen' => 'Skjerm',
+ 'Select from one of the names below' => 'Velg ett av navnene under',
+ 'Select txt, postscript or PDF!' => 'Velg txt, postscript eller PDF!',
+ 'Sell' => 'Selg',
+ 'Sell Price' => 'Salgspris',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Serial No.' => 'Serienummer',
+ 'Serial Number' => 'Serienummer',
+ 'Service' => 'Tjeneste',
+ 'Services' => 'Tjenester',
+ 'Ship' => 'Send',
+ 'Ship to' => 'Send til',
+ 'Shipping Address' => 'Leveringsadresse',
+ 'Short' => 'Kort',
+ 'State/Province' => 'Delstat/område',
+ 'Stock' => 'Lager',
+ 'Stock Assembly' => 'Lagersammensetning',
+ 'Subject' => 'Emne',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Oppsummert',
+ 'Tax' => 'Avgift/mva',
+ 'To' => 'Til',
+ 'Top Level' => 'Toppnivå',
+ 'Translation not on file!' => 'Oversettelsen mangler i databasen!',
+ 'Unit' => 'Enhet',
+ 'Update' => 'Oppdatér',
+ 'Updated' => 'Oppdatert',
+ 'Vendor' => 'Leverandør',
+ 'Vendor Invoice' => 'Leverandørfaktura',
+ 'Vendor Invoices' => 'Leverandørfakturaer',
+ 'Vendor Number' => 'Leverandørnummer',
+ 'Vendor not on file!' => 'Leverandør mangler i database!',
+ 'Warehouse' => 'Lager',
+ 'Weight' => 'Vekt',
+ 'What type of item is this?' => 'Hvilken type ting er dette?',
+ 'Work Order' => 'Arbeidsordre',
+ 'Year' => 'År',
+ 'Zip/Postal Code' => 'Postnummer',
+ 'days' => 'dager',
+ 'sent' => 'sent',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'ny_sammensetning' => 'add_assembly',
+ 'nytt_arbeide_overhead' => 'add_labor_overhead',
+ 'ny_vare' => 'add_part',
+ 'ny_tjeneste' => 'add_service',
+ 'fortsett' => 'continue',
+ 'slett' => 'delete',
+ 'endre_sammensetning' => 'edit_assembly',
+ 'endre_vare' => 'edit_part',
+ 'endre_tjeneste' => 'edit_service',
+ 'lagre' => 'save',
+ 'lagre_som_ny' => 'save_as_new',
+ 'oppdatér' => 'update',
+};
+
+1;
+
diff --git a/locale/nb/io b/locale/nb/io
new file mode 100755
index 00000000..840c0c76
--- /dev/null
+++ b/locale/nb/io
@@ -0,0 +1,129 @@
+$self{texts} = {
+ 'Add Purchase Order' => 'Ny innkjøpsordre',
+ 'Add Quotation' => 'Nytt tilbud',
+ 'Add Request for Quotation' => 'Ny tilbudsforespørsel',
+ 'Add Sales Order' => 'Ny salgsordre',
+ 'Address' => 'Adresse',
+ 'Apr' => 'apr',
+ 'April' => 'april',
+ 'Attachment' => 'Vedlegg',
+ 'Aug' => 'aug',
+ 'August' => 'august',
+ 'Bcc' => 'Blind kopi',
+ 'Billing Address' => 'Fakturaadresse',
+ 'Bin' => 'Boks',
+ 'Bin List' => 'Boksliste',
+ 'Cc' => 'Kopi til',
+ 'City' => 'Poststed',
+ 'Company Name' => 'Firmanavn',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Fortsett',
+ 'Copies' => 'Kopier',
+ 'Country' => 'Land',
+ 'Customer Number' => 'Kundenummer',
+ 'Date' => 'Dato',
+ 'Dec' => 'des',
+ 'December' => 'desember',
+ 'Delivery Date' => 'Leveringsdato',
+ 'Description' => 'Beskrivelse',
+ 'E-mail' => 'Epost',
+ 'E-mail address missing!' => 'Epost-adresse mangler!',
+ 'E-mailed' => 'Epost sendt',
+ 'Extended' => 'Sum',
+ 'Fax' => 'Faks',
+ 'Feb' => 'feb',
+ 'February' => 'februar',
+ 'Group' => 'Gruppe',
+ 'In-line' => 'Inne i',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date missing!' => 'Fakturadato mangler!',
+ 'Invoice Number missing!' => 'Fakturanummer mangler!',
+ 'Item not on file!' => 'Elementet mangler i databasen!',
+ 'Jan' => 'jan',
+ 'January' => 'januar',
+ 'Jul' => 'jul',
+ 'July' => 'juli',
+ 'Jun' => 'jun',
+ 'June' => 'juni',
+ 'Mar' => 'mar',
+ 'March' => 'mars',
+ 'May' => 'mai',
+ 'May ' => 'mai ',
+ 'Message' => 'Melding',
+ 'Nov' => 'nov',
+ 'November' => 'november',
+ 'Number' => 'Nummer',
+ 'Number missing in Row' => 'Tall mangler i rad',
+ 'Oct' => 'okt',
+ 'October' => 'oktober',
+ 'Order Date missing!' => 'Ordredato mangler!',
+ 'Order Number missing!' => 'Ordrenummer mangler!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Følgeseddel',
+ 'Packing List Date missing!' => 'Dato for følgeseddel mangler!',
+ 'Packing List Number missing!' => 'Nummer for følgeseddel mangler!',
+ 'Part' => 'Del',
+ 'Phone' => 'Tlf',
+ 'Pick List' => 'Plukkliste',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Pris',
+ 'Printed' => 'Skrevet ut',
+ 'Project' => 'Prosjekt',
+ 'Purchase Order' => 'Innkjøpsordre',
+ 'Qty' => 'Antall',
+ 'Quotation' => 'Tilbud',
+ 'Quotation Date missing!' => 'Mangler tilbudsdato',
+ 'Quotation Number missing!' => 'Mangler tilbudsnummer',
+ 'Recd' => 'Mottatt',
+ 'Required by' => 'Leveringsdato',
+ 'Sales Order' => 'Salgsordre',
+ 'Screen' => 'Skjerm',
+ 'Select txt, postscript or PDF!' => 'Velg txt, postscript eller PDF!',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Serial No.' => 'Serienummer',
+ 'Service' => 'Tjeneste',
+ 'Ship' => 'Send',
+ 'Ship to' => 'Send til',
+ 'Shipping Address' => 'Leveringsadresse',
+ 'State/Province' => 'Delstat/område',
+ 'Subject' => 'Emne',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'Til',
+ 'Translation not on file!' => 'Oversettelsen mangler i databasen!',
+ 'Unit' => 'Enhet',
+ 'Vendor Number' => 'Leverandørnummer',
+ 'What type of item is this?' => 'Hvilken type ting er dette?',
+ 'Work Order' => 'Arbeidsordre',
+ 'Zip/Postal Code' => 'Postnummer',
+ 'sent' => 'sent',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'fortsett' => 'continue',
+};
+
+1;
+
diff --git a/locale/nb/ir b/locale/nb/ir
new file mode 100755
index 00000000..9c56f49a
--- /dev/null
+++ b/locale/nb/ir
@@ -0,0 +1,223 @@
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Konto-meny',
+ 'Add Purchase Order' => 'Ny innkjøpsordre',
+ 'Add Quotation' => 'Nytt tilbud',
+ 'Add Request for Quotation' => 'Ny tilbudsforespørsel',
+ 'Add Sales Order' => 'Ny salgsordre',
+ 'Add Vendor Invoice' => 'Ny leverandørfaktura',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Beløp',
+ 'Apr' => 'apr',
+ 'April' => 'april',
+ 'Are you sure you want to delete Invoice Number' => 'Er du sikker på at du vil fjerne fakturanummer',
+ 'Attachment' => 'Vedlegg',
+ 'Aug' => 'aug',
+ 'August' => 'august',
+ 'Bcc' => 'Blind kopi',
+ 'Billing Address' => 'Fakturaadresse',
+ 'Bin' => 'Boks',
+ 'Bin List' => 'Boksliste',
+ 'Cannot delete invoice!' => 'Kan ikke slette faktura!',
+ 'Cannot post invoice for a closed period!' => 'Kan ikke bokføre faktura for en avsluttet periode!',
+ 'Cannot post invoice!' => 'Kan ikke bokføre faktura!',
+ 'Cannot post payment for a closed period!' => 'Kan ikke bokføre betaling for en avsluttet periode!',
+ 'Cc' => 'Kopi til',
+ 'City' => 'Poststed',
+ 'Company Name' => 'Firmanavn',
+ 'Confirm!' => 'Bekreft!',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Fortsett',
+ 'Copies' => 'Kopier',
+ 'Country' => 'Land',
+ 'Credit Limit' => 'Kreditgrense',
+ 'Currency' => 'Valuta',
+ 'Customer Number' => 'Kundenummer',
+ 'Customer not on file!' => 'Kunde mangler i databasen!',
+ 'Date' => 'Dato',
+ 'Dec' => 'des',
+ 'December' => 'desember',
+ 'Delete' => 'Slett',
+ 'Delivery Date' => 'Leveringsdato',
+ 'Department' => 'Avdeling',
+ 'Description' => 'Beskrivelse',
+ 'Due Date' => 'Forfallsdato',
+ 'E-mail' => 'Epost',
+ 'E-mail address missing!' => 'Epost-adresse mangler!',
+ 'E-mailed' => 'Epost sendt',
+ 'Edit Vendor Invoice' => 'Endre leverandørfaktura',
+ 'Exch' => 'Vxl',
+ 'Exchange Rate' => 'Vekslingskurs',
+ 'Exchange rate for payment missing!' => 'Vekslingskurs for betaling mangler!',
+ 'Exchange rate missing!' => 'Vekslingskurs mangler!',
+ 'Extended' => 'Sum',
+ 'Fax' => 'Faks',
+ 'Feb' => 'feb',
+ 'February' => 'februar',
+ 'Group' => 'Gruppe',
+ 'In-line' => 'Inne i',
+ 'Internal Notes' => 'Interne notater',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date' => 'Fakturadato',
+ 'Invoice Date missing!' => 'Fakturadato mangler!',
+ 'Invoice Number' => 'Fakturanummer',
+ 'Invoice Number missing!' => 'Fakturanummer mangler!',
+ 'Invoice deleted!' => 'Faktura slettet!',
+ 'Item not on file!' => 'Elementet mangler i databasen!',
+ 'Jan' => 'jan',
+ 'January' => 'januar',
+ 'Jul' => 'jul',
+ 'July' => 'juli',
+ 'Jun' => 'jun',
+ 'June' => 'juni',
+ 'Language' => 'Språk',
+ 'Mar' => 'mar',
+ 'March' => 'mars',
+ 'May' => 'mai',
+ 'May ' => 'mai ',
+ 'Memo' => 'Notat',
+ 'Message' => 'Melding',
+ 'Notes' => 'Merknader',
+ 'Nov' => 'nov',
+ 'November' => 'november',
+ 'Number' => 'Nummer',
+ 'Number missing in Row' => 'Tall mangler i rad',
+ 'Oct' => 'okt',
+ 'October' => 'oktober',
+ 'Order Date missing!' => 'Ordredato mangler!',
+ 'Order Number' => 'Ordrenummer',
+ 'Order Number missing!' => 'Ordrenummer mangler!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Følgeseddel',
+ 'Packing List Date missing!' => 'Dato for følgeseddel mangler!',
+ 'Packing List Number missing!' => 'Nummer for følgeseddel mangler!',
+ 'Part' => 'Del',
+ 'Payment date missing!' => 'Betalingsdato mangler!',
+ 'Payments' => 'Betalinger',
+ 'Phone' => 'Tlf',
+ 'Pick List' => 'Plukkliste',
+ 'Post' => 'Bokfør',
+ 'Post as new' => 'Bokfør som ny',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Pris',
+ 'Print' => 'Skriv ut',
+ 'Printed' => 'Skrevet ut',
+ 'Project' => 'Prosjekt',
+ 'Project not on file!' => 'Prosjektet mangler i databasen!',
+ 'Purchase Order' => 'Innkjøpsordre',
+ 'Qty' => 'Antall',
+ 'Quotation' => 'Tilbud',
+ 'Quotation Date missing!' => 'Mangler tilbudsdato',
+ 'Quotation Number missing!' => 'Mangler tilbudsnummer',
+ 'Recd' => 'Mottatt',
+ 'Record in' => 'Bokfør på',
+ 'Reference' => 'Referanse',
+ 'Remaining' => 'Resterende',
+ 'Required by' => 'Leveringsdato',
+ 'Sales Order' => 'Salgsordre',
+ 'Screen' => 'Skjerm',
+ 'Select from one of the names below' => 'Velg ett av navnene under',
+ 'Select from one of the projects below' => 'Velg ett av prosjektene under',
+ 'Select txt, postscript or PDF!' => 'Velg txt, postscript eller PDF!',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Serial No.' => 'Serienummer',
+ 'Service' => 'Tjeneste',
+ 'Ship' => 'Send',
+ 'Ship to' => 'Send til',
+ 'Shipping Address' => 'Leveringsadresse',
+ 'Source' => 'Bilag',
+ 'Startdate' => 'Startdato',
+ 'State/Province' => 'Delstat/område',
+ 'Subject' => 'Emne',
+ 'Subtotal' => 'Subtotal',
+ 'Tax Included' => 'Inkl. avgifter og mva',
+ 'To' => 'Til',
+ 'Total' => 'I alt',
+ 'Translation not on file!' => 'Oversettelsen mangler i databasen!',
+ 'Unit' => 'Enhet',
+ 'Update' => 'Oppdatér',
+ 'Vendor' => 'Leverandør',
+ 'Vendor Number' => 'Leverandørnummer',
+ 'Vendor missing!' => 'Leverandør mangler!',
+ 'Vendor not on file!' => 'Leverandør mangler i database!',
+ 'Warning!' => 'Advarsel',
+ 'What type of item is this?' => 'Hvilken type ting er dette?',
+ 'Work Order' => 'Arbeidsordre',
+ 'Yes' => 'Ja',
+ 'Zip/Postal Code' => 'Postnummer',
+ 'ea' => 'stk',
+ 'posted!' => 'bokført!',
+ 'sent' => 'sent',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'fortsett' => 'continue',
+ 'slett' => 'delete',
+ 'bokfør' => 'post',
+ 'bokfør_som_ny' => 'post_as_new',
+ 'innkjøpsordre' => 'purchase_order',
+ 'oppdatér' => 'update',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/nb/is b/locale/nb/is
new file mode 100755
index 00000000..562940c7
--- /dev/null
+++ b/locale/nb/is
@@ -0,0 +1,234 @@
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Konto-meny',
+ 'Add Purchase Order' => 'Ny innkjøpsordre',
+ 'Add Quotation' => 'Nytt tilbud',
+ 'Add Request for Quotation' => 'Ny tilbudsforespørsel',
+ 'Add Sales Invoice' => 'Ny salgsfaktura',
+ 'Add Sales Order' => 'Ny salgsordre',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Beløp',
+ 'Apr' => 'apr',
+ 'April' => 'april',
+ 'Are you sure you want to delete Invoice Number' => 'Er du sikker på at du vil fjerne fakturanummer',
+ 'Attachment' => 'Vedlegg',
+ 'Aug' => 'aug',
+ 'August' => 'august',
+ 'Bcc' => 'Blind kopi',
+ 'Billing Address' => 'Fakturaadresse',
+ 'Bin' => 'Boks',
+ 'Bin List' => 'Boksliste',
+ 'Business' => 'Organisasjon',
+ 'Cannot delete invoice!' => 'Kan ikke slette faktura!',
+ 'Cannot post invoice for a closed period!' => 'Kan ikke bokføre faktura for en avsluttet periode!',
+ 'Cannot post invoice!' => 'Kan ikke bokføre faktura!',
+ 'Cannot post payment for a closed period!' => 'Kan ikke bokføre betaling for en avsluttet periode!',
+ 'Cc' => 'Kopi til',
+ 'City' => 'Poststed',
+ 'Company Name' => 'Firmanavn',
+ 'Confirm!' => 'Bekreft!',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Fortsett',
+ 'Copies' => 'Kopier',
+ 'Country' => 'Land',
+ 'Credit Limit' => 'Kreditgrense',
+ 'Currency' => 'Valuta',
+ 'Customer' => 'Kunde',
+ 'Customer Number' => 'Kundenummer',
+ 'Customer missing!' => 'Kunde mangler!',
+ 'Customer not on file!' => 'Kunde mangler i databasen!',
+ 'Date' => 'Dato',
+ 'Dec' => 'des',
+ 'December' => 'desember',
+ 'Delete' => 'Slett',
+ 'Delivery Date' => 'Leveringsdato',
+ 'Department' => 'Avdeling',
+ 'Description' => 'Beskrivelse',
+ 'Due Date' => 'Forfallsdato',
+ 'E-mail' => 'Epost',
+ 'E-mail address missing!' => 'Epost-adresse mangler!',
+ 'E-mailed' => 'Epost sendt',
+ 'Edit Sales Invoice' => 'Endre salgsfaktura',
+ 'Exch' => 'Vxl',
+ 'Exchange Rate' => 'Vekslingskurs',
+ 'Exchange rate for payment missing!' => 'Vekslingskurs for betaling mangler!',
+ 'Exchange rate missing!' => 'Vekslingskurs mangler!',
+ 'Extended' => 'Sum',
+ 'Fax' => 'Faks',
+ 'Feb' => 'feb',
+ 'February' => 'februar',
+ 'Group' => 'Gruppe',
+ 'In-line' => 'Inne i',
+ 'Internal Notes' => 'Interne notater',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date' => 'Fakturadato',
+ 'Invoice Date missing!' => 'Fakturadato mangler!',
+ 'Invoice Number' => 'Fakturanummer',
+ 'Invoice Number missing!' => 'Fakturanummer mangler!',
+ 'Invoice deleted!' => 'Faktura slettet!',
+ 'Item not on file!' => 'Elementet mangler i databasen!',
+ 'Jan' => 'jan',
+ 'January' => 'januar',
+ 'Jul' => 'jul',
+ 'July' => 'juli',
+ 'Jun' => 'jun',
+ 'June' => 'juni',
+ 'Mar' => 'mar',
+ 'March' => 'mars',
+ 'May' => 'mai',
+ 'May ' => 'mai ',
+ 'Memo' => 'Notat',
+ 'Message' => 'Melding',
+ 'Notes' => 'Merknader',
+ 'Nov' => 'nov',
+ 'November' => 'november',
+ 'Number' => 'Nummer',
+ 'Number missing in Row' => 'Tall mangler i rad',
+ 'Oct' => 'okt',
+ 'October' => 'oktober',
+ 'Order Date missing!' => 'Ordredato mangler!',
+ 'Order Number' => 'Ordrenummer',
+ 'Order Number missing!' => 'Ordrenummer mangler!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Følgeseddel',
+ 'Packing List Date missing!' => 'Dato for følgeseddel mangler!',
+ 'Packing List Number missing!' => 'Nummer for følgeseddel mangler!',
+ 'Part' => 'Del',
+ 'Payment date missing!' => 'Betalingsdato mangler!',
+ 'Payments' => 'Betalinger',
+ 'Phone' => 'Tlf',
+ 'Pick List' => 'Plukkliste',
+ 'Post' => 'Bokfør',
+ 'Post as new' => 'Bokfør som ny',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Pris',
+ 'Print' => 'Skriv ut',
+ 'Print and Post' => 'Skriv ut og bokfør',
+ 'Printed' => 'Skrevet ut',
+ 'Project' => 'Prosjekt',
+ 'Project not on file!' => 'Prosjektet mangler i databasen!',
+ 'Purchase Order' => 'Innkjøpsordre',
+ 'Qty' => 'Antall',
+ 'Quotation' => 'Tilbud',
+ 'Quotation Date missing!' => 'Mangler tilbudsdato',
+ 'Quotation Number missing!' => 'Mangler tilbudsnummer',
+ 'Recd' => 'Mottatt',
+ 'Record in' => 'Bokfør på',
+ 'Reference' => 'Referanse',
+ 'Remaining' => 'Resterende',
+ 'Required by' => 'Leveringsdato',
+ 'Sales Order' => 'Salgsordre',
+ 'Salesperson' => 'Selger',
+ 'Screen' => 'Skjerm',
+ 'Select from one of the names below' => 'Velg ett av navnene under',
+ 'Select from one of the projects below' => 'Velg ett av prosjektene under',
+ 'Select postscript or PDF!' => 'Velg postscript eller PDF!',
+ 'Select txt, postscript or PDF!' => 'Velg txt, postscript eller PDF!',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Serial No.' => 'Serienummer',
+ 'Service' => 'Tjeneste',
+ 'Ship' => 'Send',
+ 'Ship to' => 'Send til',
+ 'Ship via' => 'Send via',
+ 'Shipping Address' => 'Leveringsadresse',
+ 'Shipping Point' => 'Sendes fra',
+ 'Source' => 'Bilag',
+ 'Startdate' => 'Startdato',
+ 'State/Province' => 'Delstat/område',
+ 'Subject' => 'Emne',
+ 'Subtotal' => 'Subtotal',
+ 'Tax Included' => 'Inkl. avgifter og mva',
+ 'To' => 'Til',
+ 'Total' => 'I alt',
+ 'Trade Discount' => 'Handelsrabatt',
+ 'Translation not on file!' => 'Oversettelsen mangler i databasen!',
+ 'Unit' => 'Enhet',
+ 'Update' => 'Oppdatér',
+ 'Vendor Number' => 'Leverandørnummer',
+ 'Vendor not on file!' => 'Leverandør mangler i database!',
+ 'Warning!' => 'Advarsel',
+ 'What type of item is this?' => 'Hvilken type ting er dette?',
+ 'Work Order' => 'Arbeidsordre',
+ 'Yes' => 'Ja',
+ 'Zip/Postal Code' => 'Postnummer',
+ 'ea' => 'stk',
+ 'posted!' => 'bokført!',
+ 'sent' => 'sent',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'fortsett' => 'continue',
+ 'slett' => 'delete',
+ 'epost' => 'e_mail',
+ 'bokfør' => 'post',
+ 'bokfør_som_ny' => 'post_as_new',
+ 'skriv_ut' => 'print',
+ 'skriv_ut_og_bokfør' => 'print_and_post',
+ 'salgsordre' => 'sales_order',
+ 'send_til' => 'ship_to',
+ 'oppdatér' => 'update',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/nb/jc b/locale/nb/jc
new file mode 100755
index 00000000..12f2ad2e
--- /dev/null
+++ b/locale/nb/jc
@@ -0,0 +1,92 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Konto-meny',
+ 'Amount' => 'Beløp',
+ 'Closed' => 'Avsluttet',
+ 'Confirm!' => 'Bekreft!',
+ 'Continue' => 'Fortsett',
+ 'Cost' => 'Kostpris',
+ 'Current' => 'Nåværende',
+ 'Date' => 'Dato',
+ 'Date missing!' => 'Dato mangler!',
+ 'Delete' => 'Slett',
+ 'Description' => 'Beskrivelse',
+ 'Employee' => 'Ansatt',
+ 'From' => 'Fra',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Inkludér i rapport',
+ 'Month' => 'Måned',
+ 'Notes' => 'Merknader',
+ 'Open' => 'Åpne',
+ 'PDF' => 'PDF',
+ 'Period' => 'Periode',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Skriv ut',
+ 'Print and Save' => 'Skriv ut og lagre',
+ 'Printed' => 'Skrevet ut',
+ 'Project Number' => 'Prosjektnummer',
+ 'Project Number missing!' => 'Prosjektnummer mangler!',
+ 'Qty' => 'Antall',
+ 'Quarter' => 'Kvartal',
+ 'Save' => 'Lagre',
+ 'Save as new' => 'Lagre som ny',
+ 'Screen' => 'Skjerm',
+ 'Select postscript or PDF!' => 'Velg postscript eller PDF!',
+ 'Startdate' => 'Startdato',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'Til',
+ 'Total' => 'I alt',
+ 'Update' => 'Oppdatér',
+ 'Warning!' => 'Advarsel',
+ 'Year' => 'År',
+ 'Yes' => 'Ja',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'fortsett' => 'continue',
+ 'slett' => 'delete',
+ 'skriv_ut' => 'print',
+ 'skriv_ut_og_lagre' => 'print_and_save',
+ 'lagre' => 'save',
+ 'lagre_som_ny' => 'save_as_new',
+ 'oppdatér' => 'update',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/nb/locales.pl b/locale/nb/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/nb/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/nb/login b/locale/nb/login
new file mode 100755
index 00000000..b022e288
--- /dev/null
+++ b/locale/nb/login
@@ -0,0 +1,24 @@
+$self{texts} = {
+ 'Company' => 'Firma',
+ 'Continue' => 'Fortsett',
+ 'Dataset is newer than version!' => 'Datasettet er nyere enn versjonen!',
+ 'Incorrect Dataset version!' => 'Gal versjon av datasett!',
+ 'Login' => 'Login',
+ 'Name' => 'Navn',
+ 'Password' => 'Passord',
+ 'Upgrading to Version' => 'Oppgrader til version',
+ 'Version' => 'Versjon',
+ 'You did not enter a name!' => 'Du gav ikke et navn!',
+ 'done' => 'gjort',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ 'login' => 'login',
+};
+
+1;
+
diff --git a/locale/nb/menu b/locale/nb/menu
new file mode 100755
index 00000000..b2d7f142
--- /dev/null
+++ b/locale/nb/menu
@@ -0,0 +1,133 @@
+$self{texts} = {
+ 'AP' => 'Kreditorer',
+ 'AP Aging' => 'Aldersfordeling',
+ 'AP Transaction' => 'Kreditorpostering',
+ 'AR' => 'Debitorer',
+ 'AR Aging' => 'Aldersfordeling',
+ 'AR Transaction' => 'Debitorpostering',
+ 'Accounting Menu' => 'Konto-meny',
+ 'Add Account' => 'Ny konto',
+ 'Add Assembly' => 'Ny sammensetning',
+ 'Add Business' => 'Ny organisasjon',
+ 'Add Customer' => 'Ny kunde',
+ 'Add Department' => 'Ny avdeling',
+ 'Add Employee' => 'Ny ansatt',
+ 'Add GIFI' => 'Ny GIFI',
+ 'Add Group' => 'Ny gruppe',
+ 'Add Labor/Overhead' => 'Nytt arbeide/overhead',
+ 'Add Language' => 'Nytt språk',
+ 'Add Part' => 'Ny vare',
+ 'Add Pricegroup' => 'Ny prisgruppe',
+ 'Add Project' => 'Nytt prosjekt',
+ 'Add SIC' => 'Ny SIC',
+ 'Add Service' => 'Ny tjeneste',
+ 'Add Transaction' => 'Ny postering',
+ 'Add Vendor' => 'Ny leverandør',
+ 'Add Warehouse' => 'Nytt lager',
+ 'All Items' => 'Alle elementer',
+ 'Assemblies' => 'Sammensetninger',
+ 'Audit Control' => 'Revisjonskontroll',
+ 'Backup' => 'Sikkerhetskopi',
+ 'Balance Sheet' => 'Balanse',
+ 'Bin List' => 'Boksliste',
+ 'Bin Lists' => 'Bokslister',
+ 'Cash' => 'Kontant',
+ 'Chart of Accounts' => 'Kontoplan',
+ 'Check' => 'Sjekk',
+ 'Components' => 'Komponenter',
+ 'Customers' => 'Kunder',
+ 'Defaults' => 'Standardinnstillinger',
+ 'Departments' => 'Avdelinger',
+ 'Description' => 'Beskrivelse',
+ 'Employees' => 'Ansatte',
+ 'General Ledger' => 'Hovedbok',
+ 'Goods & Services' => 'Varer og tjenester',
+ 'Groups' => 'Grupper',
+ 'HR' => 'Personal',
+ 'HTML Templates' => 'HTML-maler',
+ 'History' => 'Historikk',
+ 'Income Statement' => 'Driftsregnskap',
+ 'Invoice' => 'Faktura',
+ 'LaTeX Templates' => 'LaTeX-maler',
+ 'Labor/Overhead' => 'Arbeide/overhead',
+ 'Language' => 'Språk',
+ 'List Accounts' => 'List kontoer',
+ 'List Businesses' => 'Vis organisasjoner',
+ 'List Departments' => 'Vis avdelinger',
+ 'List GIFI' => 'List GIFI',
+ 'List Languages' => 'Vis språk',
+ 'List Projects' => 'Vis prosjekter',
+ 'List SIC' => 'List SIC',
+ 'List Warehouses' => 'Vis lager',
+ 'Logout' => 'Logg ut',
+ 'Non-taxable' => 'Avgiftsfrie',
+ 'Open' => 'Åpne',
+ 'Order Entry' => 'Ordreinngang',
+ 'Outstanding' => 'Utestående',
+ 'POS' => 'Kontantsalg',
+ 'POS Invoice' => 'Kontantsalg faktura',
+ 'Packing List' => 'Følgeseddel',
+ 'Packing Lists' => 'Følgesedler',
+ 'Parts' => 'Deler',
+ 'Payment' => 'Betaling',
+ 'Payments' => 'Betalinger',
+ 'Pick List' => 'Plukkliste',
+ 'Pick Lists' => 'Plukklister',
+ 'Preferences' => 'Innstillinger',
+ 'Pricegroups' => 'Prisgrupper',
+ 'Print' => 'Skriv ut',
+ 'Projects' => 'Prosjekter',
+ 'Purchase Order' => 'Innkjøpsordre',
+ 'Purchase Orders' => 'Innkjøpsordrer',
+ 'Quotation' => 'Tilbud',
+ 'Quotations' => 'Tilbud',
+ 'RFQ' => 'Tilbudsforespørsel',
+ 'RFQs' => 'Tilbudsforespørsler',
+ 'Receipt' => 'Kvittering',
+ 'Receipts' => 'Kvitteringer',
+ 'Receive' => 'Motta',
+ 'Reconciliation' => 'Bankoppgjør',
+ 'Reports' => 'Rapporter',
+ 'Sale' => 'Salg',
+ 'Sales Invoice' => 'Salgsfaktura',
+ 'Sales Invoices' => 'Salgsfakturaer',
+ 'Sales Order' => 'Salgsordre',
+ 'Sales Orders' => 'Salgsordrer',
+ 'Save to File' => 'Lagre i fil',
+ 'Search' => 'Søk',
+ 'Send by E-Mail' => 'Send per email',
+ 'Services' => 'Tjenester',
+ 'Ship' => 'Send',
+ 'Shipping' => 'Frakt',
+ 'Statement' => 'Oppgjør',
+ 'Stock Assembly' => 'Lagersammensetning',
+ 'Stylesheet' => 'Stílark',
+ 'System' => 'System',
+ 'Tax collected' => 'Inngående avgift',
+ 'Tax paid' => 'Betalt avgift',
+ 'Text Templates' => 'Tekstmaler',
+ 'Transactions' => 'Posteringer',
+ 'Transfer' => 'Overfør',
+ 'Transfer Inventory' => 'Overfør varebeholdning',
+ 'Translations' => 'Oversettelser',
+ 'Trial Balance' => 'Foreløpig balanse',
+ 'Type of Business' => 'Organisasjonstype',
+ 'Vendor Invoice' => 'Leverandørfaktura',
+ 'Vendors' => 'Leverandører',
+ 'Version' => 'Versjon',
+ 'Warehouses' => 'Lager',
+ 'Work Order' => 'Arbeidsordre',
+ 'Work Orders' => 'Arbeidsordrer',
+ 'Yearend' => 'Årsavslutning',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/nb/oe b/locale/nb/oe
new file mode 100755
index 00000000..7fc4290b
--- /dev/null
+++ b/locale/nb/oe
@@ -0,0 +1,320 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Konto-meny',
+ 'Add Exchange Rate' => 'Ny vekslingskurs',
+ 'Add Purchase Order' => 'Ny innkjøpsordre',
+ 'Add Quotation' => 'Nytt tilbud',
+ 'Add Request for Quotation' => 'Ny tilbudsforespørsel',
+ 'Add Sales Invoice' => 'Ny salgsfaktura',
+ 'Add Sales Order' => 'Ny salgsordre',
+ 'Add Vendor Invoice' => 'Ny leverandørfaktura',
+ 'Address' => 'Adresse',
+ 'Amount' => 'Beløp',
+ 'Apr' => 'apr',
+ 'April' => 'april',
+ 'Are you sure you want to delete Order Number' => 'Er du sikker på at du vil fjerne ordrenummer',
+ 'Are you sure you want to delete Quotation Number' => 'Er du sikker på at du vil fjerne tilbudsnummer',
+ 'Attachment' => 'Vedlegg',
+ 'Aug' => 'aug',
+ 'August' => 'august',
+ 'Bcc' => 'Blind kopi',
+ 'Billing Address' => 'Fakturaadresse',
+ 'Bin' => 'Boks',
+ 'Bin List' => 'Boksliste',
+ 'Business' => 'Organisasjon',
+ 'C' => 'C',
+ 'Cannot delete order!' => 'Kan ikke slette ordre!',
+ 'Cannot delete quotation!' => 'Kan ikke slette tilbud!',
+ 'Cannot save order!' => 'Kan ikke lagre ordre!',
+ 'Cannot save quotation!' => 'Kan ikke lagre tilbud!',
+ 'Cc' => 'Kopi til',
+ 'City' => 'Poststed',
+ 'Closed' => 'Avsluttet',
+ 'Company Name' => 'Firmanavn',
+ 'Confirm!' => 'Bekreft!',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Fortsett',
+ 'Copies' => 'Kopier',
+ 'Cost' => 'Kostpris',
+ 'Could not save!' => 'Kunne ikke lagre',
+ 'Could not transfer Inventory!' => 'Kunne ikke overføre varebeholdning!',
+ 'Country' => 'Land',
+ 'Credit Limit' => 'Kreditgrense',
+ 'Curr' => 'Val',
+ 'Currency' => 'Valuta',
+ 'Current' => 'Nåværende',
+ 'Customer' => 'Kunde',
+ 'Customer Number' => 'Kundenummer',
+ 'Customer missing!' => 'Kunde mangler!',
+ 'Customer not on file!' => 'Kunde mangler i databasen!',
+ 'Date' => 'Dato',
+ 'Date Received' => 'Mottaksdato',
+ 'Date received missing!' => 'Mangler mottaksdato',
+ 'Dec' => 'des',
+ 'December' => 'desember',
+ 'Delete' => 'Slett',
+ 'Delivery Date' => 'Leveringsdato',
+ 'Department' => 'Avdeling',
+ 'Description' => 'Beskrivelse',
+ 'Done' => 'Ferdig',
+ 'E-mail' => 'Epost',
+ 'E-mail address missing!' => 'Epost-adresse mangler!',
+ 'E-mailed' => 'Epost sendt',
+ 'Edit Purchase Order' => 'Endre innkjøpsordre',
+ 'Edit Quotation' => 'Endre tilbud',
+ 'Edit Request for Quotation' => 'Endre ønske om tilbud',
+ 'Edit Sales Order' => 'Endre salgsordre',
+ 'Employee' => 'Ansatt',
+ 'Exchange Rate' => 'Vekslingskurs',
+ 'Exchange rate missing!' => 'Vekslingskurs mangler!',
+ 'Extended' => 'Sum',
+ 'Fax' => 'Faks',
+ 'Feb' => 'feb',
+ 'February' => 'februar',
+ 'From' => 'Fra',
+ 'Group' => 'Gruppe',
+ 'ID' => 'ID',
+ 'In-line' => 'Inne i',
+ 'Include in Report' => 'Inkludér i rapport',
+ 'Internal Notes' => 'Interne notater',
+ 'Inventory saved!' => 'Varebeholdning lagret',
+ 'Inventory transferred!' => 'Varebeholdning overført',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date missing!' => 'Fakturadato mangler!',
+ 'Invoice Number missing!' => 'Fakturanummer mangler!',
+ 'Item not on file!' => 'Elementet mangler i databasen!',
+ 'Jan' => 'jan',
+ 'January' => 'januar',
+ 'Jul' => 'jul',
+ 'July' => 'juli',
+ 'Jun' => 'jun',
+ 'June' => 'juni',
+ 'Manager' => 'Behandler',
+ 'Mar' => 'mar',
+ 'March' => 'mars',
+ 'May' => 'mai',
+ 'May ' => 'mai ',
+ 'Message' => 'Melding',
+ 'Month' => 'Måned',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Merknader',
+ 'Nothing entered!' => 'Ingenting lagt inn!',
+ 'Nothing selected!' => 'Ingenting valgt!',
+ 'Nothing to transfer!' => 'Ingenting å overføre!',
+ 'Nov' => 'nov',
+ 'November' => 'november',
+ 'Number' => 'Nummer',
+ 'Number missing in Row' => 'Tall mangler i rad',
+ 'O' => 'O',
+ 'Oct' => 'okt',
+ 'October' => 'oktober',
+ 'Open' => 'Åpne',
+ 'Order' => 'Ordre',
+ 'Order Date' => 'Ordredato',
+ 'Order Date missing!' => 'Ordredato mangler!',
+ 'Order Number' => 'Ordrenummer',
+ 'Order Number missing!' => 'Ordrenummer mangler!',
+ 'Order deleted!' => 'Ordre slettet!',
+ 'Order saved!' => 'Ordre lagret!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Følgeseddel',
+ 'Packing List Date missing!' => 'Dato for følgeseddel mangler!',
+ 'Packing List Number missing!' => 'Nummer for følgeseddel mangler!',
+ 'Part' => 'Del',
+ 'Period' => 'Periode',
+ 'Phone' => 'Tlf',
+ 'Pick List' => 'Plukkliste',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Pris',
+ 'Print' => 'Skriv ut',
+ 'Print and Save' => 'Skriv ut og lagre',
+ 'Printed' => 'Skrevet ut',
+ 'Project' => 'Prosjekt',
+ 'Project not on file!' => 'Prosjektet mangler i databasen!',
+ 'Purchase Order' => 'Innkjøpsordre',
+ 'Purchase Orders' => 'Innkjøpsordrer',
+ 'Qty' => 'Antall',
+ 'Quarter' => 'Kvartal',
+ 'Quotation' => 'Tilbud',
+ 'Quotation ' => 'Tilbud ',
+ 'Quotation Date' => 'Tilbudsdato',
+ 'Quotation Date missing!' => 'Mangler tilbudsdato',
+ 'Quotation Number' => 'Tilbudsnummer',
+ 'Quotation Number missing!' => 'Mangler tilbudsnummer',
+ 'Quotation deleted!' => 'Tilbud slettet!',
+ 'Quotations' => 'Tilbud',
+ 'RFQ' => 'Tilbudsforespørsel',
+ 'RFQ ' => 'Tilbudsforespørsel ',
+ 'RFQ Number' => 'Tilbudsforespørslelsnummer',
+ 'Recd' => 'Mottatt',
+ 'Receive Merchandise' => 'Motta varer',
+ 'Reference' => 'Referanse',
+ 'Remaining' => 'Resterende',
+ 'Request for Quotation' => 'Tilbudsforespørsel',
+ 'Request for Quotations' => 'Tilbudsforespørsler',
+ 'Required by' => 'Leveringsdato',
+ 'Sales Invoice' => 'Salgsfaktura',
+ 'Sales Order' => 'Salgsordre',
+ 'Sales Orders' => 'Salgsordrer',
+ 'Salesperson' => 'Selger',
+ 'Save' => 'Lagre',
+ 'Save as new' => 'Lagre som ny',
+ 'Screen' => 'Skjerm',
+ 'Select from one of the names below' => 'Velg ett av navnene under',
+ 'Select from one of the projects below' => 'Velg ett av prosjektene under',
+ 'Select postscript or PDF!' => 'Velg postscript eller PDF!',
+ 'Select txt, postscript or PDF!' => 'Velg txt, postscript eller PDF!',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Serial No.' => 'Serienummer',
+ 'Service' => 'Tjeneste',
+ 'Ship' => 'Send',
+ 'Ship Merchandise' => 'Send varer',
+ 'Ship to' => 'Send til',
+ 'Ship via' => 'Send via',
+ 'Shipping Address' => 'Leveringsadresse',
+ 'Shipping Date' => 'Leveringsdato',
+ 'Shipping Date missing!' => 'Mangler leveringsdato',
+ 'Shipping Point' => 'Sendes fra',
+ 'Startdate' => 'Startdato',
+ 'State/Province' => 'Delstat/område',
+ 'Subject' => 'Emne',
+ 'Subtotal' => 'Subtotal',
+ 'Tax' => 'Avgift/mva',
+ 'Tax Included' => 'Inkl. avgifter og mva',
+ 'Terms' => 'Vilkår',
+ 'To' => 'Til',
+ 'Total' => 'I alt',
+ 'Trade Discount' => 'Handelsrabatt',
+ 'Transfer' => 'Overfør',
+ 'Transfer Inventory' => 'Overfør varebeholdning',
+ 'Transfer to' => 'Overfør til',
+ 'Translation not on file!' => 'Oversettelsen mangler i databasen!',
+ 'Unit' => 'Enhet',
+ 'Update' => 'Oppdatér',
+ 'Valid until' => 'Gyldig til',
+ 'Vendor' => 'Leverandør',
+ 'Vendor Invoice' => 'Leverandørfaktura',
+ 'Vendor Number' => 'Leverandørnummer',
+ 'Vendor missing!' => 'Leverandør mangler!',
+ 'Vendor not on file!' => 'Leverandør mangler i database!',
+ 'Warehouse' => 'Lager',
+ 'Warning!' => 'Advarsel',
+ 'What type of item is this?' => 'Hvilken type ting er dette?',
+ 'Work Order' => 'Arbeidsordre',
+ 'Year' => 'År',
+ 'Yes' => 'Ja',
+ 'Zip/Postal Code' => 'Postnummer',
+ 'days' => 'dager',
+ 'ea' => 'stk',
+ 'sent' => 'sent',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'fortsett' => 'continue',
+ 'slett' => 'delete',
+ 'ferdig' => 'done',
+ 'epost' => 'e_mail',
+ 'skriv_ut' => 'print',
+ 'skriv_ut_og_lagre' => 'print_and_save',
+ 'innkjøpsordre' => 'purchase_order',
+ 'tilbud' => 'quotation',
+ 'tilbud_' => 'quotation_',
+ 'tilbudsforespørsel' => 'rfq',
+ 'tilbudsforespørsel_' => 'rfq_',
+ 'salgsfaktura' => 'sales_invoice',
+ 'salgsordre' => 'sales_order',
+ 'lagre' => 'save',
+ 'lagre_som_ny' => 'save_as_new',
+ 'send_til' => 'ship_to',
+ 'overfør' => 'transfer',
+ 'oppdatér' => 'update',
+ 'leverandørfaktura' => 'vendor_invoice',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/nb/pe b/locale/nb/pe
new file mode 100755
index 00000000..d332aec6
--- /dev/null
+++ b/locale/nb/pe
@@ -0,0 +1,141 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Konto-meny',
+ 'Active' => 'Aktiv',
+ 'Add' => 'Ny',
+ 'Add Group' => 'Ny gruppe',
+ 'Add Pricegroup' => 'Ny prisgruppe',
+ 'Add Project' => 'Nytt prosjekt',
+ 'Address' => 'Adresse',
+ 'All' => 'Alle',
+ 'Amount' => 'Beløp',
+ 'Assembly' => 'Sammensetning',
+ 'Bin' => 'Boks',
+ 'Continue' => 'Fortsett',
+ 'Current' => 'Nåværende',
+ 'Customer' => 'Kunde',
+ 'Customer missing!' => 'Kunde mangler!',
+ 'Customer not on file!' => 'Kunde mangler i databasen!',
+ 'Date' => 'Dato',
+ 'Delete' => 'Slett',
+ 'Description' => 'Beskrivelse',
+ 'Description Translations' => 'Beskrivelsesoversettelser',
+ 'Detail' => 'Detalj',
+ 'Edit Description Translations' => 'Endre beskrivelsesoversettelser',
+ 'Edit Group' => 'Endre gruppe',
+ 'Edit Pricegroup' => 'Endre prisgruppe',
+ 'Edit Project' => 'Endre prosjekt',
+ 'Employee' => 'Ansatt',
+ 'Enddate' => 'Sluttdato',
+ 'From' => 'Fra',
+ 'Group' => 'Gruppe',
+ 'Group Translations' => 'Grupper oversettelser',
+ 'Group deleted!' => 'Slettet gruppe!',
+ 'Group missing!' => 'Mangler gruppe!',
+ 'Group saved!' => 'Lagret gruppe!',
+ 'Groups' => 'Grupper',
+ 'Income' => 'Inntekt',
+ 'Language' => 'Språk',
+ 'Languages not defined!' => 'Språkene er ikke definert!',
+ 'Link Accounts' => 'Kople kontoer',
+ 'List Price' => 'Listepris',
+ 'Month' => 'Måned',
+ 'Notes' => 'Merknader',
+ 'Nothing selected!' => 'Ingenting valgt!',
+ 'Number' => 'Nummer',
+ 'Orphaned' => 'Frittstående',
+ 'Period' => 'Periode',
+ 'Pricegroup' => 'Prisgruppe',
+ 'Pricegroup deleted!' => 'Prisgruppe slettet!',
+ 'Pricegroup missing!' => 'Prisgruppe mangler!',
+ 'Pricegroup saved!' => 'Prisgruppe langret',
+ 'Pricegroups' => 'Prisgrupper',
+ 'Project' => 'Prosjekt',
+ 'Project Description Translations' => 'Oversettelser av prosjektbeskrivelser',
+ 'Project Number' => 'Prosjektnummer',
+ 'Project deleted!' => 'Prosjekt slettet!',
+ 'Project saved!' => 'Prosjekt lagret!',
+ 'Projects' => 'Prosjekter',
+ 'Qty' => 'Antall',
+ 'Quarter' => 'Kvartal',
+ 'Save' => 'Lagre',
+ 'Select from one of the names below' => 'Velg ett av navnene under',
+ 'Sell Price' => 'Salgspris',
+ 'Startdate' => 'Startdato',
+ 'Summary' => 'Oppsummert',
+ 'Tax' => 'Avgift/mva',
+ 'To' => 'Til',
+ 'Translation' => 'Oversettelse',
+ 'Translation deleted!' => 'Oversettelse slettet',
+ 'Translations saved!' => 'Oversettelser lagret!',
+ 'Unit' => 'Enhet',
+ 'Update' => 'Oppdatér',
+ 'Updated' => 'Oppdatert',
+ 'Vendor' => 'Leverandør',
+ 'Vendor not on file!' => 'Leverandør mangler i database!',
+ 'Weight' => 'Vekt',
+ 'Year' => 'År',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'ny_gruppe' => 'add_group',
+ 'ny_prisgruppe' => 'add_pricegroup',
+ 'nytt_prosjekt' => 'add_project',
+ 'fortsett' => 'continue',
+ 'slett' => 'delete',
+ 'lagre' => 'save',
+ 'oppdatér' => 'update',
+};
+
+1;
+
diff --git a/locale/nb/pos b/locale/nb/pos
new file mode 100755
index 00000000..3cfb475d
--- /dev/null
+++ b/locale/nb/pos
@@ -0,0 +1,80 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Konto-meny',
+ 'Add POS Invoice' => 'Ny kontantfaktura',
+ 'Amount' => 'Beløp',
+ 'Business' => 'Organisasjon',
+ 'Cannot post transaction!' => 'Kan ikke bokføre postering!',
+ 'Change' => 'Endre',
+ 'Continue' => 'Fortsett',
+ 'Credit Limit' => 'Kreditgrense',
+ 'Currency' => 'Valuta',
+ 'Current' => 'Nåværende',
+ 'Customer' => 'Kunde',
+ 'Customer missing!' => 'Kunde mangler!',
+ 'Delete' => 'Slett',
+ 'Department' => 'Avdeling',
+ 'Description' => 'Beskrivelse',
+ 'Edit POS Invoice' => 'Endre kontantfaktura',
+ 'Exchange Rate' => 'Vekslingskurs',
+ 'Exchange rate missing!' => 'Vekslingskurs mangler!',
+ 'Extended' => 'Sum',
+ 'From' => 'Fra',
+ 'Language' => 'Språk',
+ 'Memo' => 'Notat',
+ 'Month' => 'Måned',
+ 'Number' => 'Nummer',
+ 'Open' => 'Åpne',
+ 'Period' => 'Periode',
+ 'Post' => 'Bokfør',
+ 'Posted!' => 'Bokført!',
+ 'Price' => 'Pris',
+ 'Print' => 'Skriv ut',
+ 'Print and Post' => 'Skriv ut og bokfør',
+ 'Printed' => 'Skrevet ut',
+ 'Qty' => 'Antall',
+ 'Quarter' => 'Kvartal',
+ 'Receipts' => 'Kvitteringer',
+ 'Record in' => 'Bokfør på',
+ 'Remaining' => 'Resterende',
+ 'Salesperson' => 'Selger',
+ 'Screen' => 'Skjerm',
+ 'Source' => 'Bilag',
+ 'Subtotal' => 'Subtotal',
+ 'Tax Included' => 'Inkl. avgifter og mva',
+ 'To' => 'Til',
+ 'Total' => 'I alt',
+ 'Trade Discount' => 'Handelsrabatt',
+ 'Unit' => 'Enhet',
+ 'Update' => 'Oppdatér',
+ 'Year' => 'År',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'fortsett' => 'continue',
+ 'slett' => 'delete',
+ 'bokfør' => 'post',
+ 'skriv_ut' => 'print',
+ 'skriv_ut_og_bokfør' => 'print_and_post',
+ 'oppdatér' => 'update',
+};
+
+1;
+
diff --git a/locale/nb/ps b/locale/nb/ps
new file mode 100755
index 00000000..8ef47500
--- /dev/null
+++ b/locale/nb/ps
@@ -0,0 +1,356 @@
+$self{texts} = {
+ 'AP Aging' => 'Aldersfordeling',
+ 'AP Outstanding' => 'Ubetalte fakturaer',
+ 'AP Transaction' => 'Kreditorpostering',
+ 'AP Transactions' => 'Kreditorpostering',
+ 'AR Aging' => 'Aldersfordeling',
+ 'AR Outstanding' => 'Utestående fordringer',
+ 'AR Transaction' => 'Debitorpostering',
+ 'AR Transactions' => 'Debitorposteringer',
+ 'Account' => 'Konto',
+ 'Account Number' => 'Kontonummer',
+ 'Accounting Menu' => 'Konto-meny',
+ 'Accounts' => 'Kontoer',
+ 'Accrual' => 'Kostnad',
+ 'Add AP Transaction' => 'Ny kreditorpostering',
+ 'Add AR Transaction' => 'Ny debitorpostering',
+ 'Add POS Invoice' => 'Ny kontantfaktura',
+ 'Add Purchase Order' => 'Ny innkjøpsordre',
+ 'Add Quotation' => 'Nytt tilbud',
+ 'Add Request for Quotation' => 'Ny tilbudsforespørsel',
+ 'Add Sales Invoice' => 'Ny salgsfaktura',
+ 'Add Sales Order' => 'Ny salgsordre',
+ 'Address' => 'Adresse',
+ 'All Accounts' => 'Alle kontoer',
+ 'Amount' => 'Beløp',
+ 'Amount Due' => 'Forfalt beløp',
+ 'Apr' => 'apr',
+ 'April' => 'april',
+ 'Are you sure you want to delete Invoice Number' => 'Er du sikker på at du vil fjerne fakturanummer',
+ 'Are you sure you want to delete Transaction' => 'Er du sikker på at du vil fjerne postering',
+ 'Attachment' => 'Vedlegg',
+ 'Aug' => 'aug',
+ 'August' => 'august',
+ 'Balance' => 'Balanse',
+ 'Balance Sheet' => 'Balanse',
+ 'Bcc' => 'Blind kopi',
+ 'Billing Address' => 'Fakturaadresse',
+ 'Bin' => 'Boks',
+ 'Bin List' => 'Boksliste',
+ 'Business' => 'Organisasjon',
+ 'Cannot delete invoice!' => 'Kan ikke slette faktura!',
+ 'Cannot delete transaction!' => 'Kan ikke slette postering!',
+ 'Cannot post invoice for a closed period!' => 'Kan ikke bokføre faktura for en avsluttet periode!',
+ 'Cannot post invoice!' => 'Kan ikke bokføre faktura!',
+ 'Cannot post payment for a closed period!' => 'Kan ikke bokføre betaling for en avsluttet periode!',
+ 'Cannot post transaction for a closed period!' => 'Kan ikke bokføre postering for en avsluttet periode!',
+ 'Cannot post transaction!' => 'Kan ikke bokføre postering!',
+ 'Cash' => 'Kontant',
+ 'Cc' => 'Kopi til',
+ 'Change' => 'Endre',
+ 'Check' => 'Sjekk',
+ 'City' => 'Poststed',
+ 'Closed' => 'Avsluttet',
+ 'Company Name' => 'Firmanavn',
+ 'Compare to' => 'Sammenlign med',
+ 'Confirm!' => 'Bekreft!',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Fortsett',
+ 'Copies' => 'Kopier',
+ 'Country' => 'Land',
+ 'Credit' => 'Kredit',
+ 'Credit Limit' => 'Kreditgrense',
+ 'Curr' => 'Val',
+ 'Currency' => 'Valuta',
+ 'Current' => 'Nåværende',
+ 'Current Earnings' => 'Aktuelle inntekter',
+ 'Customer' => 'Kunde',
+ 'Customer Number' => 'Kundenummer',
+ 'Customer missing!' => 'Kunde mangler!',
+ 'Customer not on file!' => 'Kunde mangler i databasen!',
+ 'Date' => 'Dato',
+ 'Date Paid' => 'Betalingsdato',
+ 'Debit' => 'Debet',
+ 'Dec' => 'des',
+ 'December' => 'desember',
+ 'Decimalplaces' => 'Desimalplasser',
+ 'Delete' => 'Slett',
+ 'Delivery Date' => 'Leveringsdato',
+ 'Department' => 'Avdeling',
+ 'Description' => 'Beskrivelse',
+ 'Detail' => 'Detalj',
+ 'Due Date' => 'Forfallsdato',
+ 'Due Date missing!' => 'Forfallsdato mangler!',
+ 'E-mail' => 'Epost',
+ 'E-mail Statement to' => 'Send oppgjør til',
+ 'E-mail address missing!' => 'Epost-adresse mangler!',
+ 'E-mailed' => 'Epost sendt',
+ 'Edit AP Transaction' => 'Endre kreditorpostering',
+ 'Edit AR Transaction' => 'Endre debitorpostering',
+ 'Edit POS Invoice' => 'Endre kontantfaktura',
+ 'Edit Sales Invoice' => 'Endre salgsfaktura',
+ 'Employee' => 'Ansatt',
+ 'Exch' => 'Vxl',
+ 'Exchange Rate' => 'Vekslingskurs',
+ 'Exchange rate for payment missing!' => 'Vekslingskurs for betaling mangler!',
+ 'Exchange rate missing!' => 'Vekslingskurs mangler!',
+ 'Extended' => 'Sum',
+ 'Fax' => 'Faks',
+ 'Feb' => 'feb',
+ 'February' => 'februar',
+ 'From' => 'Fra',
+ 'GIFI' => 'GIFI',
+ 'Group' => 'Gruppe',
+ 'Heading' => 'Overskrift',
+ 'ID' => 'ID',
+ 'In-line' => 'Inne i',
+ 'Include Exchange Rate Difference' => 'Inkluder forskjell i vekslingsrate',
+ 'Include in Report' => 'Inkludér i rapport',
+ 'Income Statement' => 'Driftsregnskap',
+ 'Internal Notes' => 'Interne notater',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date' => 'Fakturadato',
+ 'Invoice Date missing!' => 'Fakturadato mangler!',
+ 'Invoice Number' => 'Fakturanummer',
+ 'Invoice Number missing!' => 'Fakturanummer mangler!',
+ 'Invoice deleted!' => 'Faktura slettet!',
+ 'Item not on file!' => 'Elementet mangler i databasen!',
+ 'Jan' => 'jan',
+ 'January' => 'januar',
+ 'Jul' => 'jul',
+ 'July' => 'juli',
+ 'Jun' => 'jun',
+ 'June' => 'juni',
+ 'Language' => 'Språk',
+ 'Manager' => 'Behandler',
+ 'Mar' => 'mar',
+ 'March' => 'mars',
+ 'May' => 'mai',
+ 'May ' => 'mai ',
+ 'Memo' => 'Notat',
+ 'Message' => 'Melding',
+ 'Method' => 'Metode',
+ 'Month' => 'Måned',
+ 'N/A' => 'I/T',
+ 'No.' => 'Nr.',
+ 'Non-taxable Purchases' => 'Avgiftsfrie kjøp',
+ 'Non-taxable Sales' => 'Avgiftsfrie salg',
+ 'Notes' => 'Merknader',
+ 'Nothing selected!' => 'Ingenting valgt!',
+ 'Nothing to print!' => 'Ingenting å skrive ut!',
+ 'Nov' => 'nov',
+ 'November' => 'november',
+ 'Number' => 'Nummer',
+ 'Number missing in Row' => 'Tall mangler i rad',
+ 'Oct' => 'okt',
+ 'October' => 'oktober',
+ 'Open' => 'Åpne',
+ 'Order' => 'Ordre',
+ 'Order Date missing!' => 'Ordredato mangler!',
+ 'Order Number' => 'Ordrenummer',
+ 'Order Number missing!' => 'Ordrenummer mangler!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Følgeseddel',
+ 'Packing List Date missing!' => 'Dato for følgeseddel mangler!',
+ 'Packing List Number missing!' => 'Nummer for følgeseddel mangler!',
+ 'Paid' => 'Betalt',
+ 'Part' => 'Del',
+ 'Payment date missing!' => 'Betalingsdato mangler!',
+ 'Payments' => 'Betalinger',
+ 'Period' => 'Periode',
+ 'Phone' => 'Tlf',
+ 'Pick List' => 'Plukkliste',
+ 'Post' => 'Bokfør',
+ 'Post as new' => 'Bokfør som ny',
+ 'Posted!' => 'Bokført!',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Pris',
+ 'Print' => 'Skriv ut',
+ 'Print and Post' => 'Skriv ut og bokfør',
+ 'Printed' => 'Skrevet ut',
+ 'Project' => 'Prosjekt',
+ 'Project Number' => 'Prosjektnummer',
+ 'Project Transactions' => 'Prosjektposteringer',
+ 'Project not on file!' => 'Prosjektet mangler i databasen!',
+ 'Purchase Order' => 'Innkjøpsordre',
+ 'Qty' => 'Antall',
+ 'Quarter' => 'Kvartal',
+ 'Quotation' => 'Tilbud',
+ 'Quotation Date missing!' => 'Mangler tilbudsdato',
+ 'Quotation Number missing!' => 'Mangler tilbudsnummer',
+ 'Recd' => 'Mottatt',
+ 'Receipt' => 'Kvittering',
+ 'Receipts' => 'Kvitteringer',
+ 'Record in' => 'Bokfør på',
+ 'Reference' => 'Referanse',
+ 'Remaining' => 'Resterende',
+ 'Report for' => 'Rapport for',
+ 'Required by' => 'Leveringsdato',
+ 'Sales Invoice.' => 'Salgsfaktura.',
+ 'Sales Order' => 'Salgsordre',
+ 'Salesperson' => 'Selger',
+ 'Screen' => 'Skjerm',
+ 'Select all' => 'Velg alt',
+ 'Select from one of the names below' => 'Velg ett av navnene under',
+ 'Select from one of the projects below' => 'Velg ett av prosjektene under',
+ 'Select postscript or PDF!' => 'Velg postscript eller PDF!',
+ 'Select txt, postscript or PDF!' => 'Velg txt, postscript eller PDF!',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Serial No.' => 'Serienummer',
+ 'Service' => 'Tjeneste',
+ 'Ship' => 'Send',
+ 'Ship to' => 'Send til',
+ 'Ship via' => 'Send via',
+ 'Shipping Address' => 'Leveringsadresse',
+ 'Shipping Point' => 'Sendes fra',
+ 'Source' => 'Bilag',
+ 'Standard' => 'Standard',
+ 'Startdate' => 'Startdato',
+ 'State/Province' => 'Delstat/område',
+ 'Statement' => 'Oppgjør',
+ 'Statement sent to' => 'Oppgjør sendt til',
+ 'Statements sent to printer!' => 'Oppgjør sendt til skriver!',
+ 'Subject' => 'Emne',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Oppsummert',
+ 'Tax' => 'Avgift/mva',
+ 'Tax Included' => 'Inkl. avgifter og mva',
+ 'Tax collected' => 'Inngående avgift',
+ 'Tax paid' => 'Betalt avgift',
+ 'Till' => 'Kasse',
+ 'To' => 'Til',
+ 'Total' => 'I alt',
+ 'Trade Discount' => 'Handelsrabatt',
+ 'Transaction' => 'Transaksjon',
+ 'Transaction deleted!' => 'Postering slettet!',
+ 'Transaction posted!' => 'Postering bokført!',
+ 'Translation not on file!' => 'Oversettelsen mangler i databasen!',
+ 'Trial Balance' => 'Foreløpig balanse',
+ 'Unit' => 'Enhet',
+ 'Update' => 'Oppdatér',
+ 'Vendor' => 'Leverandør',
+ 'Vendor Invoice.' => 'Leverandørfaktura.',
+ 'Vendor Number' => 'Leverandørnummer',
+ 'Vendor missing!' => 'Leverandør mangler!',
+ 'Vendor not on file!' => 'Leverandør mangler i database!',
+ 'Warning!' => 'Advarsel',
+ 'What type of item is this?' => 'Hvilken type ting er dette?',
+ 'Work Order' => 'Arbeidsordre',
+ 'Year' => 'År',
+ 'Yes' => 'Ja',
+ 'Zip/Postal Code' => 'Postnummer',
+ 'as at' => 'som ved',
+ 'ea' => 'stk',
+ 'for Period' => 'for periode',
+ 'posted!' => 'bokført!',
+ 'sent' => 'sent',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'kreditorpostering' => 'ap_transaction',
+ 'debitorpostering' => 'ar_transaction',
+ 'fortsett' => 'continue',
+ 'slett' => 'delete',
+ 'epost' => 'e_mail',
+ 'bokfør' => 'post',
+ 'bokfør_som_ny' => 'post_as_new',
+ 'skriv_ut' => 'print',
+ 'skriv_ut_og_bokfør' => 'print_and_post',
+ 'salgsfaktura_' => 'sales_invoice_',
+ 'salgsordre' => 'sales_order',
+ 'velg_alt' => 'select_all',
+ 'send_til' => 'ship_to',
+ 'oppdatér' => 'update',
+ 'leverandørfaktura_' => 'vendor_invoice_',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/nb/pw b/locale/nb/pw
new file mode 100755
index 00000000..b7664c6c
--- /dev/null
+++ b/locale/nb/pw
@@ -0,0 +1,12 @@
+$self{texts} = {
+ 'Continue' => 'Fortsett',
+ 'Password' => 'Passord',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'fortsett' => 'continue',
+};
+
+1;
+
diff --git a/locale/nb/rc b/locale/nb/rc
new file mode 100755
index 00000000..9c471bd9
--- /dev/null
+++ b/locale/nb/rc
@@ -0,0 +1,78 @@
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Konto-meny',
+ 'Apr' => 'apr',
+ 'April' => 'april',
+ 'Aug' => 'aug',
+ 'August' => 'august',
+ 'Balance' => 'Balanse',
+ 'Beginning Balance' => 'Startbalanse',
+ 'Continue' => 'Fortsett',
+ 'Credit' => 'Kredit',
+ 'Current' => 'Nåværende',
+ 'Date' => 'Dato',
+ 'Debit' => 'Debet',
+ 'Dec' => 'des',
+ 'December' => 'desember',
+ 'Description' => 'Beskrivelse',
+ 'Detail' => 'Detalj',
+ 'Difference' => 'Forskjell',
+ 'Done' => 'Ferdig',
+ 'Feb' => 'feb',
+ 'February' => 'februar',
+ 'From' => 'Fra',
+ 'Include Exchange Rate Difference' => 'Inkluder forskjell i vekslingsrate',
+ 'Jan' => 'jan',
+ 'January' => 'januar',
+ 'Jul' => 'jul',
+ 'July' => 'juli',
+ 'Jun' => 'jun',
+ 'June' => 'juni',
+ 'Mar' => 'mar',
+ 'March' => 'mars',
+ 'May' => 'mai',
+ 'May ' => 'mai ',
+ 'Month' => 'Måned',
+ 'Nov' => 'nov',
+ 'November' => 'november',
+ 'Oct' => 'okt',
+ 'October' => 'oktober',
+ 'Out of balance!' => 'Ute av balanse!',
+ 'Outstanding' => 'Utestående',
+ 'Period' => 'Periode',
+ 'Quarter' => 'Kvartal',
+ 'R' => 'R',
+ 'Reconciliation' => 'Bankoppgjør',
+ 'Reconciliation Report' => 'Bankoppgjørsrapport',
+ 'Select all' => 'Velg alt',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Source' => 'Bilag',
+ 'Statement Balance' => 'Balanseoppgjør',
+ 'Summary' => 'Oppsummert',
+ 'To' => 'Til',
+ 'Update' => 'Oppdatér',
+ 'Year' => 'År',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'fortsett' => 'continue',
+ 'ferdig' => 'done',
+ 'velg_alt' => 'select_all',
+ 'oppdatér' => 'update',
+};
+
+1;
+
diff --git a/locale/nb/rp b/locale/nb/rp
new file mode 100755
index 00000000..d5c4e3a8
--- /dev/null
+++ b/locale/nb/rp
@@ -0,0 +1,179 @@
+$self{texts} = {
+ 'AP Aging' => 'Aldersfordeling',
+ 'AR Aging' => 'Aldersfordeling',
+ 'Account' => 'Konto',
+ 'Account Number' => 'Kontonummer',
+ 'Accounting Menu' => 'Konto-meny',
+ 'Accounts' => 'Kontoer',
+ 'Accrual' => 'Kostnad',
+ 'Address' => 'Adresse',
+ 'All Accounts' => 'Alle kontoer',
+ 'Amount' => 'Beløp',
+ 'Apr' => 'apr',
+ 'April' => 'april',
+ 'Attachment' => 'Vedlegg',
+ 'Aug' => 'aug',
+ 'August' => 'august',
+ 'Balance' => 'Balanse',
+ 'Balance Sheet' => 'Balanse',
+ 'Bcc' => 'Blind kopi',
+ 'Cash' => 'Kontant',
+ 'Cc' => 'Kopi til',
+ 'Compare to' => 'Sammenlign med',
+ 'Continue' => 'Fortsett',
+ 'Copies' => 'Kopier',
+ 'Credit' => 'Kredit',
+ 'Curr' => 'Val',
+ 'Current' => 'Nåværende',
+ 'Current Earnings' => 'Aktuelle inntekter',
+ 'Customer' => 'Kunde',
+ 'Customer not on file!' => 'Kunde mangler i databasen!',
+ 'Date' => 'Dato',
+ 'Debit' => 'Debet',
+ 'Dec' => 'des',
+ 'December' => 'desember',
+ 'Decimalplaces' => 'Desimalplasser',
+ 'Department' => 'Avdeling',
+ 'Description' => 'Beskrivelse',
+ 'Detail' => 'Detalj',
+ 'Due Date' => 'Forfallsdato',
+ 'E-mail' => 'Epost',
+ 'E-mail Statement to' => 'Send oppgjør til',
+ 'E-mail address missing!' => 'Epost-adresse mangler!',
+ 'Feb' => 'feb',
+ 'February' => 'februar',
+ 'From' => 'Fra',
+ 'GIFI' => 'GIFI',
+ 'Heading' => 'Overskrift',
+ 'ID' => 'ID',
+ 'In-line' => 'Inne i',
+ 'Include Exchange Rate Difference' => 'Inkluder forskjell i vekslingsrate',
+ 'Include in Report' => 'Inkludér i rapport',
+ 'Income Statement' => 'Driftsregnskap',
+ 'Invoice' => 'Faktura',
+ 'Jan' => 'jan',
+ 'January' => 'januar',
+ 'Jul' => 'jul',
+ 'July' => 'juli',
+ 'Jun' => 'jun',
+ 'June' => 'juni',
+ 'Language' => 'Språk',
+ 'Mar' => 'mar',
+ 'March' => 'mars',
+ 'May' => 'mai',
+ 'May ' => 'mai ',
+ 'Memo' => 'Notat',
+ 'Message' => 'Melding',
+ 'Method' => 'Metode',
+ 'Month' => 'Måned',
+ 'N/A' => 'I/T',
+ 'Non-taxable Purchases' => 'Avgiftsfrie kjøp',
+ 'Non-taxable Sales' => 'Avgiftsfrie salg',
+ 'Nothing selected!' => 'Ingenting valgt!',
+ 'Nov' => 'nov',
+ 'November' => 'november',
+ 'Number' => 'Nummer',
+ 'Oct' => 'okt',
+ 'October' => 'oktober',
+ 'Order' => 'Ordre',
+ 'PDF' => 'PDF',
+ 'Payments' => 'Betalinger',
+ 'Period' => 'Periode',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Skriv ut',
+ 'Project' => 'Prosjekt',
+ 'Project Number' => 'Prosjektnummer',
+ 'Project Transactions' => 'Prosjektposteringer',
+ 'Project not on file!' => 'Prosjektet mangler i databasen!',
+ 'Quarter' => 'Kvartal',
+ 'Receipts' => 'Kvitteringer',
+ 'Reference' => 'Referanse',
+ 'Report for' => 'Rapport for',
+ 'Salesperson' => 'Selger',
+ 'Screen' => 'Skjerm',
+ 'Select all' => 'Velg alt',
+ 'Select from one of the names below' => 'Velg ett av navnene under',
+ 'Select from one of the projects below' => 'Velg ett av prosjektene under',
+ 'Select postscript or PDF!' => 'Velg postscript eller PDF!',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Source' => 'Bilag',
+ 'Standard' => 'Standard',
+ 'Startdate' => 'Startdato',
+ 'Statement' => 'Oppgjør',
+ 'Statement sent to' => 'Oppgjør sendt til',
+ 'Statements sent to printer!' => 'Oppgjør sendt til skriver!',
+ 'Subject' => 'Emne',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Oppsummert',
+ 'Tax' => 'Avgift/mva',
+ 'Tax collected' => 'Inngående avgift',
+ 'Tax paid' => 'Betalt avgift',
+ 'Till' => 'Kasse',
+ 'To' => 'Til',
+ 'Total' => 'I alt',
+ 'Trial Balance' => 'Foreløpig balanse',
+ 'Vendor' => 'Leverandør',
+ 'Vendor not on file!' => 'Leverandør mangler i database!',
+ 'Warning!' => 'Advarsel',
+ 'Year' => 'År',
+ 'as at' => 'som ved',
+ 'for Period' => 'for periode',
+ 'sent' => 'sent',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'fortsett' => 'continue',
+ 'epost' => 'e_mail',
+ 'skriv_ut' => 'print',
+ 'velg_alt' => 'select_all',
+};
+
+1;
+
diff --git a/locale/nl/COPYING b/locale/nl/COPYING
new file mode 100755
index 00000000..4725246e
--- /dev/null
+++ b/locale/nl/COPYING
@@ -0,0 +1,27 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2001
+#
+# Dutch texts:
+#
+# Author: AJ Hettema <Ignite@ecosse.net>
+# Oscar Buijten <oscar@elbie.com>
+# Bert Tijhuis <domino@dse.nl>
+# Paul Tammes <ptammes@home.nl>
+# Arno Peters <a.w.peters@ieee.org>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/nl/LANGUAGE b/locale/nl/LANGUAGE
new file mode 100755
index 00000000..890d7d5c
--- /dev/null
+++ b/locale/nl/LANGUAGE
@@ -0,0 +1 @@
+Dutch
diff --git a/locale/nl/Num2text b/locale/nl/Num2text
new file mode 100755
index 00000000..7bf3208c
--- /dev/null
+++ b/locale/nl/Num2text
@@ -0,0 +1,161 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (C) 2002
+#
+# Author: Dieter Simader
+# Email: dsimader@sql-ledger.org
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+# Contributors: Paul Tammes <finance@bermuda-holding.com>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#======================================================================
+#
+# this is a variation of the Lingua package
+# written for check and receipt printing
+# it returns a properly formatted text string
+# for a number up to 10**12
+
+sub init {
+ my $self = shift;
+
+ %{ $self->{numbername} } =
+ (0 => 'nul',
+ 1 => 'een',
+ 2 => 'twee',
+ 3 => 'drie',
+ 4 => 'vier',
+ 5 => 'vijf',
+ 6 => 'zes',
+ 7 => 'zeven',
+ 8 => 'acht',
+ 9 => 'negen',
+ 10 => 'tien',
+ 11 => 'elf',
+ 12 => 'twalf',
+ 13 => 'dertien',
+ 14 => 'veertien',
+ 15 => 'vijftien',
+ 16 => 'zestien',
+ 17 => 'zeventien',
+ 18 => 'achtien',
+ 19 => 'negentien',
+ 20 => 'twintig',
+ 30 => 'dertig',
+ 40 => 'veertig',
+ 50 => 'vijftig',
+ 60 => 'zestig',
+ 70 => 'zeventig',
+ 80 => 'tachtig',
+ 90 => 'negentig',
+ 10**2 => 'honderd',
+ 10**3 => 'duizend',
+ 10**6 => 'miljoen',
+ 10**9 => 'miljard',
+ 10**12 => 'biljoen'
+ );
+
+}
+
+
+sub num2text {
+ my ($self, $amount) = @_;
+
+ return $self->{numbername}{0} unless $amount;
+
+ my @textnumber = ('**');
+
+ # split amount into chunks of 3
+ my @num = reverse split //, abs($amount);
+ my @numblock = ();
+ my ($i, $appendn);
+ my @a = ();
+
+ while (@num) {
+ @a = ();
+ for (1 .. 3) {
+ push @a, shift @num;
+ }
+ push @numblock, join / /, reverse @a;
+ }
+
+
+ while (@numblock) {
+
+ $i = $#numblock;
+ @num = split //, $numblock[$i];
+
+ $numblock[$i] *= 1;
+
+ if ($numblock[$i] == 0) {
+ pop @numblock;
+ next;
+ }
+
+ if ($numblock[$i] > 99) {
+ # the one from hundreds
+ push @textnumber, $self->{numbername}{$num[0]};
+
+ # add hundred designation
+ push @textnumber, $self->{numbername}{10**2};
+
+ # reduce numblock
+ $numblock[$i] -= $num[0] * 100;
+ }
+
+ if ($numblock[$i] > 9) {
+ # tens
+ push @textnumber, $self->format_ten($numblock[$i]);
+ } else {
+ # ones
+ push @textnumber, $self->{numbername}{$numblock[$i]};
+ }
+
+ # add thousand, million
+ if ($i) {
+ $amount = 10**($i * 3);
+ push @textnumber, $self->{numbername}{$amount};
+ }
+
+ pop @numblock;
+
+ }
+
+ push @textnumber, '**';
+ join '', @textnumber;
+
+}
+
+
+sub format_ten {
+ my ($self, $amount) = @_;
+
+ my $textnumber = "";
+ my @num = split //, $amount;
+
+ if ($amount > 20) {
+ # reverse one and ten and glue together with 'en'
+ $amount = $num[0] * 10;
+ $textnumber = $self->{numbername}{$num[1]}.'en'.$self->{numbername}{$amount};
+ } else {
+ $textnumber = $self->{numbername}{$amount};
+ }
+
+ $textnumber;
+
+}
+
+
+1;
+
diff --git a/locale/nl/aa b/locale/nl/aa
new file mode 100755
index 00000000..30bc54d0
--- /dev/null
+++ b/locale/nl/aa
@@ -0,0 +1,161 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Openstaande Crediteuren',
+ 'AP Transaction' => 'Crediteurenboeking',
+ 'AP Transactions' => 'Crediteurenboekingen',
+ 'AR Outstanding' => 'Openstaande Debiteuren',
+ 'AR Transaction' => 'Debiteurenboeking',
+ 'AR Transactions' => 'Debiteurenboekingen',
+ 'Account' => 'Rekening',
+ 'Accounting Menu' => 'Boekhoudmenu',
+ 'Add AP Transaction' => 'Crediteurenboeking Toevoegen',
+ 'Add AR Transaction' => 'Debiteurenboeking Toevoegen',
+ 'Amount' => 'Bedrag',
+ 'Amount Due' => 'Verschuldigd Bedrag',
+ 'Apr' => 'apr',
+ 'April' => 'april',
+ 'Are you sure you want to delete Transaction' => 'Weet u zeker dat u deze boeking wilt verwijderen?',
+ 'Aug' => 'aug',
+ 'August' => 'augustus',
+ 'Cannot delete transaction!' => 'Kan boeking niet verwijderen!',
+ 'Cannot post payment for a closed period!' => 'Kan geen betaling boeken voor afgesloten periode!',
+ 'Cannot post transaction for a closed period!' => 'Kan geen boeking maken in afgesloten periode',
+ 'Cannot post transaction!' => 'Kan transactie niet boeken!',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Afgesloten',
+ 'Confirm!' => 'Bevestig!',
+ 'Continue' => 'Verder',
+ 'Credit' => 'Credit',
+ 'Credit Limit' => 'Kredietlimiet',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valuta',
+ 'Current' => 'Huidig',
+ 'Customer' => 'Klant',
+ 'Customer missing!' => 'Klant ontbreekt!',
+ 'Date' => 'Datum',
+ 'Date Paid' => 'Betaaldatum',
+ 'Debit' => 'Debet',
+ 'Dec' => 'dec',
+ 'December' => 'december',
+ 'Delete' => 'Verwijder',
+ 'Department' => 'Afdeling',
+ 'Description' => 'Omschrijving',
+ 'Detail' => 'Detail',
+ 'Due Date' => 'Vervaldatum',
+ 'Due Date missing!' => 'Vervaldatum ontbreekt!',
+ 'Edit AP Transaction' => 'Crediteurenboeking Wijzigen',
+ 'Edit AR Transaction' => 'Debiteurenboeking Wijzigen',
+ 'Employee' => 'Werknemer',
+ 'Exch' => 'Wissel',
+ 'Exchange Rate' => 'Wisselkoers',
+ 'Exchange rate for payment missing!' => 'Wisselkoers voor betaling ontbreekt!',
+ 'Exchange rate missing!' => 'Wisselkoers ontbreekt!',
+ 'Feb' => 'feb',
+ 'February' => 'februari',
+ 'From' => 'Van',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Toevoegen aan Uitvoer',
+ 'Invoice' => 'Factuur',
+ 'Invoice Date' => 'Factuurdatum',
+ 'Invoice Date missing!' => 'Factuurdatum ontbreekt!',
+ 'Invoice Number' => 'Factuurcode',
+ 'Jan' => 'jan',
+ 'January' => 'januari',
+ 'Jul' => 'jul',
+ 'July' => 'juli',
+ 'Jun' => 'jun',
+ 'June' => 'juni',
+ 'Manager' => 'Manager',
+ 'Mar' => 'mrt',
+ 'March' => 'maart',
+ 'May' => 'mei',
+ 'May ' => 'mei ',
+ 'Memo' => 'Memo',
+ 'Month' => 'Maand',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Opmerkingen',
+ 'Nov' => 'nov',
+ 'November' => 'november',
+ 'Oct' => 'okt',
+ 'October' => 'oktober',
+ 'Open' => 'Open',
+ 'Order' => 'Bestelling',
+ 'Order Number' => 'Referentie',
+ 'PO Number' => 'PO code',
+ 'Paid' => 'Betaald',
+ 'Payment date missing!' => 'Geen betalingsdatum aanwezig!',
+ 'Payments' => 'Betalingen',
+ 'Period' => 'Periode',
+ 'Post' => 'Inboeken',
+ 'Post as new' => 'Inboeken als nieuw',
+ 'Print' => 'Afdrukken',
+ 'Print and Post' => 'Afdrukken en Inboeken',
+ 'Print and Post as new' => 'Afdrukken en Boek als nieuw',
+ 'Project' => 'Project',
+ 'Quarter' => 'Kwartaal',
+ 'Receipt' => 'Ontvangstbewijs',
+ 'Remaining' => 'Resterend',
+ 'Sales Invoice.' => 'Verkoopfactuur.',
+ 'Salesperson' => 'Verkoper',
+ 'Schedule' => 'Inplannen',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Ship to' => 'Verzenden aan',
+ 'Ship via' => 'Verzenden via',
+ 'Shipping Point' => 'Verzendpunt',
+ 'Source' => 'Herkomst',
+ 'Subtotal' => 'Subtotaal',
+ 'Summary' => 'Overzicht',
+ 'Tax' => 'Belasting',
+ 'Tax Included' => 'Belasting Inbegrepen',
+ 'Till' => 'Kassa',
+ 'To' => 'Tot',
+ 'Total' => 'Totaal',
+ 'Transaction' => 'Boeking',
+ 'Transaction deleted!' => 'Boeking verwijderd!',
+ 'Transaction posted!' => 'Boeking opgeslagen!',
+ 'Update' => 'Bijwerken',
+ 'Vendor' => 'Leverancier',
+ 'Vendor Invoice.' => 'Inkoopfactuur.',
+ 'Vendor missing!' => 'Leverancier ontbreekt!',
+ 'Year' => 'Jaar',
+ 'Yes' => 'Ja',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'crediteurenboeking' => 'ap_transaction',
+ 'debiteurenboeking' => 'ar_transaction',
+ 'verder' => 'continue',
+ 'verwijder' => 'delete',
+ 'inboeken' => 'post',
+ 'inboeken_als_nieuw' => 'post_as_new',
+ 'afdrukken' => 'print',
+ 'afdrukken_en_inboeken' => 'print_and_post',
+ 'afdrukken_en_boek_als_nieuw' => 'print_and_post_as_new',
+ 'verkoopfactuur_' => 'sales_invoice_',
+ 'inplannen' => 'schedule',
+ 'verzenden_aan' => 'ship_to',
+ 'bijwerken' => 'update',
+ 'inkoopfactuur_' => 'vendor_invoice_',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/nl/admin b/locale/nl/admin
new file mode 100755
index 00000000..03c774b1
--- /dev/null
+++ b/locale/nl/admin
@@ -0,0 +1,144 @@
+$self{texts} = {
+ 'Access Control' => 'Toegangsbeheer',
+ 'Accounting' => 'Boekhouding',
+ 'Add User' => 'Gebruiker Toevoegen',
+ 'Address' => 'Adres',
+ 'Administration' => 'Administratie',
+ 'Administrator' => 'Beheerder',
+ 'All Datasets up to date!' => 'Alle Datasets Actueel',
+ 'Cannot create Lock!' => 'Kan geen exclusieve toegang krijgen!',
+ 'Change Admin Password' => 'Wachtwoord Beheerder Veranderen',
+ 'Change Password' => 'Verander Wachtwoord',
+ 'Click on login name to edit!' => 'Klik op gebruikersnaam om deze te bewerken!',
+ 'Company' => 'Bedrijf',
+ 'Confirm' => 'Bevestig',
+ 'Connect to' => 'Verbinden met',
+ 'Continue' => 'Verder',
+ 'Create Chart of Accounts' => 'Maak Rekeningstelsel',
+ 'Create Dataset' => 'Maak Dataset',
+ 'DBA' => 'DBA',
+ 'DBI not installed!' => 'DBI niet geinstalleerd',
+ 'Database' => 'Database',
+ 'Database Administration' => 'Database administratie',
+ 'Database Driver not checked!' => 'Stuurprogramma niet aangevinkt',
+ 'Database User missing!' => 'Databasegebruiker ontbreekt!',
+ 'Dataset' => 'Dataset',
+ 'Dataset missing!' => 'Geen dataset aanwezig',
+ 'Dataset updated!' => 'Dataset aangepast aan nieuwe versie!',
+ 'Date Format' => 'Datumformaat',
+ 'Delete' => 'Verwijder',
+ 'Delete Dataset' => 'Dataset Verwijderen',
+ 'Directory' => 'Directory',
+ 'Driver' => 'Stuurprogramma',
+ 'Dropdown Limit' => 'Maximum in Dropdown-lijst',
+ 'E-mail' => 'E-mail',
+ 'Edit User' => 'Gebruiker Wijzigen',
+ 'Existing Datasets' => 'Bestaande Datasets',
+ 'Fax' => 'Fax',
+ 'Host' => 'Host',
+ 'Hostname missing!' => 'Hostnaam ontbreekt!',
+ 'Language' => 'Taal',
+ 'Lock System' => 'Vergrendel het Systeem',
+ 'Lockfile created!' => 'Blokkeerbestand aangemaakt!',
+ 'Lockfile removed!' => 'Blokkeerbestand verwijderd!',
+ 'Login' => 'Aanmelden',
+ 'Login name missing!' => 'Aanmeldnaam ontbreekt!',
+ 'Logout' => 'Afmelden',
+ 'Manager' => 'Manager',
+ 'Menu Width' => 'Menubreedte',
+ 'Multibyte Encoding' => 'Unicode',
+ 'Name' => 'Naam',
+ 'New Templates' => 'Nieuwe sjablonen',
+ 'No Database Drivers available!' => 'Geen Stuurprogramma voor Database beschikbaar!',
+ 'No Dataset selected!' => 'Geen Dataset geselecteerd',
+ 'Nothing to delete!' => 'Niets te verwijderen!',
+ 'Number Format' => 'Nummeraanduiding',
+ 'Oracle Database Administration' => 'Oracle Database Administratie',
+ 'Password' => 'Wachtwoord',
+ 'Password changed!' => 'Wachtwoord gewijzigd!',
+ 'Passwords do not match!' => 'Wachtwoorden komen niet overeen!',
+ 'Pg Database Administration' => 'Pg Database Administratie',
+ 'PgPP Database Administration' => 'PgPP Database Administratie',
+ 'Phone' => 'Telefoon',
+ 'Port' => 'Poortnummer',
+ 'Port missing!' => 'Geen poortnummer ingevuld!',
+ 'Printer' => 'Printer',
+ 'Save' => 'Opslaan',
+ 'Session Timeout' => 'Tijdsduur Sessie',
+ 'Session expired!' => 'Sessie verlopen!',
+ 'Setup Templates' => 'Basissjablonen',
+ 'Signature' => 'Handtekening',
+ 'Stylesheet' => 'Stylesheet',
+ 'Supervisor' => 'Controleur',
+ 'Templates' => 'Sjablonen',
+ 'The following Datasets are not in use and can be deleted' => 'De volgende Datasets zijn niet in gebruik en kunnen worden verwijderd.',
+ 'The following Datasets need to be updated' => 'De volgende Datasets moeten worden bijgewerkt',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Dit is een eerste controle. Er wordt op dit moment niks bijgewerkt of verwijderd.',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Om een gebruiker aan een groep toe te voegen, een naam te wijzigen, een gebruikersnaam te wijzigen en op te slaan. Een nieuwe gebruiker zal dan worder opgeslagen met dezelfde gegevens onder de nieuwe gebruikersnaam.',
+ 'Unlock System' => 'System Ontgrendelen',
+ 'Update Dataset' => 'Dataset Bijwerken',
+ 'Use Templates' => 'Gebruik Sjablonen',
+ 'User' => 'Gebruiker',
+ 'User deleted!' => 'Gebruiker verwijderd!',
+ 'User saved!' => 'Gebruiker opgeslagen!',
+ 'Version' => 'Versie',
+ 'You are logged out' => 'U bent afgemeld',
+ 'does not exist' => 'bestaat niet',
+ 'is already a member!' => 'is al een gebruiker!',
+ 'localhost' => 'localhost',
+ 'locked!' => 'geblokeerd!',
+ 'successfully created!' => 'met succes aangemaakt!',
+ 'successfully deleted!' => 'met succes verwijderd!',
+ 'website' => 'website',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'gebruiker_toevoegen' => 'add_user',
+ 'wachtwoord_beheerder_veranderen' => 'change_admin_password',
+ 'verander_wachtwoord' => 'change_password',
+ 'verder' => 'continue',
+ 'maak_dataset' => 'create_dataset',
+ 'verwijder' => 'delete',
+ 'dataset_verwijderen' => 'delete_dataset',
+ 'vergrendel_het_systeem' => 'lock_system',
+ 'aanmelden' => 'login',
+ 'afmelden' => 'logout',
+ 'oracle_database_administratie' => 'oracle_database_administration',
+ 'pg_database_administratie' => 'pg_database_administration',
+ 'pgpp_database_administratie' => 'pgpp_database_administration',
+ 'opslaan' => 'save',
+ 'system_ontgrendelen' => 'unlock_system',
+ 'dataset_bijwerken' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/nl/all b/locale/nl/all
new file mode 100755
index 00000000..0fc8c3e6
--- /dev/null
+++ b/locale/nl/all
@@ -0,0 +1,952 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+
+$self{texts} = {
+ '>' => '>',
+ 'A' => 'A',
+ 'AP' => 'Crediteuren',
+ 'AP Aging' => 'Ouderdomsoverzicht Crediteuren',
+ 'AP Outstanding' => 'Openstaande Crediteuren',
+ 'AP Transaction' => 'Crediteurenboeking',
+ 'AP Transactions' => 'Crediteurenboekingen',
+ 'AR' => 'Debiteuren',
+ 'AR Aging' => 'Ouderdomsoverzicht Debiteuren',
+ 'AR Outstanding' => 'Openstaande Debiteuren',
+ 'AR Transaction' => 'Debiteurenboeking',
+ 'AR Transactions' => 'Debiteurenboekingen',
+ 'AR/AP' => 'Deb/Cred',
+ 'About' => 'Over',
+ 'Above' => 'Boven',
+ 'Access Control' => 'Toegangsbeheer',
+ 'Access Denied!' => 'Toegang Geweigerd!',
+ 'Account' => 'Rekening',
+ 'Account Number' => 'Rekeningnummer',
+ 'Account Number missing!' => 'Rekeningnummer Ontbreekt!',
+ 'Account Type' => 'Rekeningtype',
+ 'Account Type missing!' => 'Rekeningtype Ontbreekt!',
+ 'Account deleted!' => 'Rekening Verwijderd',
+ 'Account does not exist!' => 'Rekening Bestaat Niet',
+ 'Account saved!' => 'Rekening Opgeslagen',
+ 'Accounting' => 'Boekhouding',
+ 'Accounting Menu' => 'Boekhoudmenu',
+ 'Accounts' => 'Rekeningen',
+ 'Accrual' => 'Transactie',
+ 'Acquisition Date' => 'Acquisitiedatum',
+ 'Activate Audit trail' => 'Activeer Transactielogboek',
+ 'Activate Audit trails' => 'Activeer Transactielogboek',
+ 'Active' => 'Actief',
+ 'Add' => 'Toevoegen',
+ 'Add AP Transaction' => 'Crediteurenboeking Toevoegen',
+ 'Add AR Transaction' => 'Debiteurenboeking Toevoegen',
+ 'Add Account' => 'Rekening Toevoegen',
+ 'Add Assembly' => 'Assemblage Toevoegen',
+ 'Add Asset' => 'Activa Toevoegen',
+ 'Add Business' => 'Branche Toevoegen',
+ 'Add Cash Transfer Transaction' => 'Geldoverboeking Toevoegen',
+ 'Add Customer' => 'Klant Toevoegen',
+ 'Add Deduction' => 'Korting Toevoegen',
+ 'Add Department' => 'Afdeling Toevoegen',
+ 'Add Depreciation' => 'Afschrijving Toevoegen',
+ 'Add Employee' => 'Werknemer Toevoegen',
+ 'Add Exchange Rate' => 'Wisselkoers Toevoegen',
+ 'Add GIFI' => 'GIFI Toevoegen',
+ 'Add General Ledger Transaction' => 'Journaalpost Toevoegen',
+ 'Add Group' => 'Productgroep Toevoegen',
+ 'Add Job' => 'Job Toevoegen',
+ 'Add Labor/Overhead' => 'Arbeids-/Overheadkosten Toevoegen',
+ 'Add Language' => 'Taal Toevoegen',
+ 'Add POS Invoice' => 'Kassaverkoop Toevoegen',
+ 'Add Part' => 'Artikel Toevoegen',
+ 'Add Pricegroup' => 'Prijsgroep Toevoegen',
+ 'Add Project' => 'Project Toevoegen',
+ 'Add Purchase Order' => 'Inkooporder Toevoegen',
+ 'Add Quotation' => 'Offerte Toevoegen',
+ 'Add Request for Quotation' => 'Prijsaanvraag Toevoegen',
+ 'Add SIC' => 'SIC Toevoegen',
+ 'Add Sales Invoice' => 'Verkoopfactuur Toevoegen',
+ 'Add Sales Order' => 'Verkooporder Toevoegen',
+ 'Add Service' => 'Dienst Toevoegen',
+ 'Add Stores Card' => 'Materiaalkaart Toevoegen',
+ 'Add Time Card' => 'Tijdkaart Toevoegen',
+ 'Add Transaction' => 'Boeking Toevoegen',
+ 'Add User' => 'Gebruiker Toevoegen',
+ 'Add Vendor' => 'Leverancier Toevoegen',
+ 'Add Vendor Invoice' => 'Inkoopfactuur Toevoegen',
+ 'Add Warehouse' => 'Magazijn Toevoegen',
+ 'Address' => 'Adres',
+ 'Administration' => 'Administratie',
+ 'Administrator' => 'Beheerder',
+ 'After Deduction' => 'Na Korting',
+ 'After Depreciation' => 'Na Afschrijving',
+ 'Aged' => 'Ouderdom',
+ 'Aged Overdue' => 'Achterstallig',
+ 'All' => 'Allemaal',
+ 'All Accounts' => 'Alle Rekeningen',
+ 'All Datasets up to date!' => 'Alle Datasets Actueel',
+ 'All Items' => 'Alle Onderdelen',
+ 'Allocated' => 'Toegewezen',
+ 'Allowances' => 'Toelagen',
+ 'Amount' => 'Bedrag',
+ 'Amount Due' => 'Verschuldigd Bedrag',
+ 'Amount missing!' => 'Bedrag Ontbreekt!',
+ 'Apr' => 'apr',
+ 'April' => 'april',
+ 'Are you sure you want to delete Invoice Number' => 'Weet u zeker dat u dit factuurnummer wilt verwijderen?',
+ 'Are you sure you want to delete Order Number' => 'Weet u zeker dat u dit ordernummer wilt verwijderen?',
+ 'Are you sure you want to delete Quotation Number' => 'Weet u zeker dat u dit offertenummer wilt verwijderen?',
+ 'Are you sure you want to delete Transaction' => 'Weet u zeker dat u deze boeking wilt verwijderen?',
+ 'Are you sure you want to delete time card for' => 'Weet u zeker dat u de tijdkaart wil verwijderen voor',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Weet us zeker dat u de gemarkeerde stukken wil verwijderen uit de wachtrij?',
+ 'As of' => 'Vanaf',
+ 'Assemblies' => 'Assemblages',
+ 'Assemblies restocked!' => 'Assemblage Aangevuld!',
+ 'Assembly' => 'Assemblage',
+ 'Assembly stocked!' => 'Assemblage ingeslagen!',
+ 'Asset' => 'Activa',
+ 'Asset Name' => 'Naam Activa',
+ 'Asset Number' => 'Activacode',
+ 'Asset deleted!' => 'Activa verwijderd!',
+ 'Asset saved!' => 'Activa opgeslagen!',
+ 'Assets' => 'Activa',
+ 'Attachment' => 'Bijlage',
+ 'Audit Control' => 'Transactielogboek',
+ 'Audit trail disabled' => 'Transactielogboek Niet Geactiveerd',
+ 'Audit trail enabled' => 'Transactielogboek Geactiveerd',
+ 'Audit trail removed up to' => 'Transactielogboek Verwijderd Tot',
+ 'Audit trails disabled' => 'Transactielogboek Niet Geactiveerd',
+ 'Audit trails enabled' => 'Transactielogboek Geactiveerd',
+ 'Aug' => 'aug',
+ 'August' => 'augustus',
+ 'Average Cost' => 'Gemiddelde Kostprijs',
+ 'Avg Cost' => 'Gem. Kostpr.',
+ 'BIC' => 'BIC',
+ 'BOM' => 'Onderdelenlijst',
+ 'Backup' => 'Backup',
+ 'Backup sent to' => 'Backup gezonden aan',
+ 'Balance' => 'Saldo',
+ 'Balance Sheet' => 'Balans',
+ 'Based on' => 'Gebaseerd op',
+ 'Batch Printing' => 'Gegroepeerd Afdrukken',
+ 'Bcc' => 'Bcc',
+ 'Before Deduction' => 'Voor Korting',
+ 'Before Depreciation' => 'Voor Afschrijving',
+ 'Beginning Balance' => 'Beginsaldo',
+ 'Below' => 'Onder',
+ 'Billing Address' => 'Facturatieadres',
+ 'Bin' => 'Vergaarbak',
+ 'Bin List' => 'Vergaarlijst',
+ 'Bin Lists' => 'Vergaarlijsten',
+ 'Books are open' => 'Boekingsperiode is open',
+ 'Break' => 'Staffel',
+ 'Business' => 'Branche',
+ 'Business Number' => 'KvK-nummer',
+ 'Business deleted!' => 'Branche verwijderd!',
+ 'Business saved!' => 'Branche opgeslagen!',
+ 'C' => 'C',
+ 'COGS' => 'Kostprijs omzet',
+ 'COGS account does not exist!' => 'Kostprijs Omzet rekening bestaat niet!',
+ 'Cannot add stores card for a completed job!' => 'Kan geen materiaalkaart toevoegen aan een afgewerkte job!',
+ 'Cannot add time card for a completed job!' => 'Kan geen tijdkaart toevoegen aan een afgewerkte job!',
+ 'Cannot change stores card for a completed job!' => 'Kan materiaalkaart niet veranderen voor een afgewerkte job!',
+ 'Cannot change time card for a completed job!' => 'Kan tijdkaart niet veranderen voor een afgewerkte job!',
+ 'Cannot create Assembly' => 'Kan Assemblage niet aanmaken',
+ 'Cannot create Labor' => 'Kan Arbeid niet aanmaken',
+ 'Cannot create Lock!' => 'Kan geen exclusieve toegang krijgen!',
+ 'Cannot create Part' => 'Kan Artikel niet aanmaken',
+ 'Cannot create Service' => 'Kan Dienst niet aanmaken',
+ 'Cannot delete account!' => 'Kan rekening niet verwijderen!',
+ 'Cannot delete customer!' => 'Kan klant niet verwijderen!',
+ 'Cannot delete default account!' => 'Kan standaardrekening niet verwijderen!',
+ 'Cannot delete invoice!' => 'Kan factuur niet verwijderen!',
+ 'Cannot delete item!' => 'Kan onderdeel niet verwijderen!',
+ 'Cannot delete order!' => 'Kan order niet verwijderen!',
+ 'Cannot delete quotation!' => 'Kan offerte niet verwijderen!',
+ 'Cannot delete time card!' => 'Kan tijdkaart niet verwijderen!',
+ 'Cannot delete transaction!' => 'Kan boeking niet verwijderen!',
+ 'Cannot delete vendor!' => 'Kan leverancier niet verwijderen!',
+ 'Cannot post Payment!' => 'Kan betaling niet boeken!',
+ 'Cannot post Receipt!' => 'Kan ontvangst niet boeken!',
+ 'Cannot post invoice for a closed period!' => 'Kan geen factuur boeken in afgesloten periode!',
+ 'Cannot post invoice!' => 'Kan factuur niet boeken!',
+ 'Cannot post payment for a closed period!' => 'Kan geen betaling boeken voor afgesloten periode!',
+ 'Cannot post transaction for a closed period!' => 'Kan geen boeking maken in afgesloten periode',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => 'Kan geen transactie boeken met een debit- en creditregel voor dezelfde rekening!',
+ 'Cannot post transaction!' => 'Kan transactie niet boeken!',
+ 'Cannot remove files!' => 'Kan bestanden niet verwijderen!',
+ 'Cannot save account!' => 'Kan rekening niet opslaan!',
+ 'Cannot save defaults!' => 'Kan de standaard niet opslaan!',
+ 'Cannot save order!' => 'Kan order niet opslaan!',
+ 'Cannot save preferences!' => 'Kan voorkeuren niet opslaan!',
+ 'Cannot save quotation!' => 'Kan offerte niet opslaan!',
+ 'Cannot save stores card for a closed period!' => 'Kan materiaalkaart niet opslaan in een afgesloten periode!',
+ 'Cannot save stores card!' => 'Kan materiaalkaart niet opslaan!',
+ 'Cannot save time card for a closed period!' => 'Kan tijdkaart niet opslaan in een afgesloten periode!',
+ 'Cannot save time card!' => 'Kan tijdkaart niet opslaan!',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Kan rekening niet toekennen behalve aan ofwel Debiteuren, Crediteuren of Inventaris',
+ 'Cannot set multiple options for' => 'Kan slechts één menuoptie instellen voor',
+ 'Cannot set multiple options for Item' => 'Kan niet verschillende opties voor Artikel toekennen',
+ 'Cannot stock Assembly!' => 'Kan assemblage niet inslaan',
+ 'Cannot stock assemblies!' => 'Kan assemblages niet in voorraad nemen!',
+ 'Cash' => 'Kas',
+ 'Cc' => 'Cc',
+ 'Change' => 'Wijzig',
+ 'Change Admin Password' => 'Wachtwoord Beheerder Veranderen',
+ 'Change Password' => 'Verander Wachtwoord',
+ 'Chargeable' => 'Doorbelastbaar',
+ 'Chargeout Rate' => 'Doorbelasting',
+ 'Chart of Accounts' => 'Rekeningstelsel',
+ 'Check' => 'Cheque',
+ 'Check Inventory' => 'Inventaris Controleren',
+ 'Checks' => 'Cheques',
+ 'City' => 'Stad',
+ 'Cleared' => 'Opgeschoond',
+ 'Click on login name to edit!' => 'Klik op gebruikersnaam om deze te bewerken!',
+ 'Clocked' => 'Geklokt',
+ 'Close Books up to' => 'Boeken afsluiten tot',
+ 'Closed' => 'Afgesloten',
+ 'Code' => 'Code',
+ 'Code missing!' => 'Code ontbreekt!',
+ 'Company' => 'Bedrijf',
+ 'Company Name' => 'Bedrijfsnaam',
+ 'Compare to' => 'Vergelijk met',
+ 'Completed' => 'Voltooid',
+ 'Components' => 'Componenten',
+ 'Confirm' => 'Bevestig',
+ 'Confirm!' => 'Bevestig!',
+ 'Connect to' => 'Verbinden met',
+ 'Consolidate' => 'Consolideren',
+ 'Consolidate Orders' => 'Samenvoegen Orders',
+ 'Consolidate Purchase Orders' => 'Samenvoegen Inkooporders',
+ 'Consolidate Sales Orders' => 'Samenvoegen Verkooporders',
+ 'Contact' => 'Contact',
+ 'Continue' => 'Verder',
+ 'Contra' => 'Contra',
+ 'Copies' => 'Kopieën',
+ 'Copy to COA' => 'Kopieër naar rekeningstelsel',
+ 'Cost' => 'Kostprijs',
+ 'Cost Center' => 'Kostenpost',
+ 'Could not save pricelist!' => 'Kon prijslijst niet opslaan!',
+ 'Could not save!' => 'Kon niet opslaan!',
+ 'Could not transfer Inventory!' => 'Kon geen Inventaris overboeken!',
+ 'Country' => 'Land',
+ 'Create Chart of Accounts' => 'Maak Rekeningstelsel',
+ 'Create Dataset' => 'Maak Dataset',
+ 'Credit' => 'Credit',
+ 'Credit Invoice' => 'Creditfactuur',
+ 'Credit Limit' => 'Kredietlimiet',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valuta',
+ 'Current' => 'Huidig',
+ 'Current Earnings' => 'Huidige Winst',
+ 'Customer' => 'Klant',
+ 'Customer History' => 'Klanthistorie',
+ 'Customer Number' => 'Klantcode',
+ 'Customer deleted!' => 'Klant verwijderd!',
+ 'Customer missing!' => 'Klant ontbreekt!',
+ 'Customer not on file!' => 'Klant bestaat niet!',
+ 'Customer saved!' => 'Klant opgeslagen!',
+ 'Customers' => 'Klanten',
+ 'DBA' => 'DBA',
+ 'DBI not installed!' => 'DBI niet geinstalleerd',
+ 'DOB' => 'Geb. datum',
+ 'Database' => 'Database',
+ 'Database Administration' => 'Database administratie',
+ 'Database Driver not checked!' => 'Stuurprogramma niet aangevinkt',
+ 'Database Host' => 'Databasecomputer',
+ 'Database User missing!' => 'Databasegebruiker ontbreekt!',
+ 'Dataset' => 'Dataset',
+ 'Dataset is newer than version!' => 'Dataset is nieuwer dan de versie!',
+ 'Dataset missing!' => 'Geen dataset aanwezig',
+ 'Dataset updated!' => 'Dataset aangepast aan nieuwe versie!',
+ 'Date' => 'Datum',
+ 'Date Format' => 'Datumformaat',
+ 'Date Paid' => 'Betaaldatum',
+ 'Date Received' => 'Ontvangstdatum',
+ 'Date missing!' => 'Datum ontbreekt!',
+ 'Date received missing!' => 'Ontvangstdatum ontbreekt!',
+ 'Date worked' => 'Datum gewerkt',
+ 'Day' => 'Dag',
+ 'Day(s)' => 'Dag(en)',
+ 'Days' => 'Dagen',
+ 'Debit' => 'Debet',
+ 'Debit Invoice' => 'Debitfactuur',
+ 'Dec' => 'dec',
+ 'December' => 'december',
+ 'Decimalplaces' => 'Decimalen',
+ 'Decrease' => 'Vermindering',
+ 'Deduct after' => 'Verminder na',
+ 'Deduction deleted!' => 'Korting verwijderd!',
+ 'Deduction saved!' => 'Korting opgeslagen!',
+ 'Deductions' => 'Kortingen',
+ 'Default Template' => 'Standaard Sjabloon',
+ 'Defaults' => 'Standaardinstellingen',
+ 'Defaults saved!' => 'Standaardinstellingen bewaard!',
+ 'Delete' => 'Verwijder',
+ 'Delete Account' => 'Rekening Verwijderen',
+ 'Delete Dataset' => 'Dataset Verwijderen',
+ 'Delete Schedule' => 'Inplanning Verwijderen',
+ 'Deleting a language will also delete the templates for the language' => 'Een taal verwijderen, verwijdert eveneens de sjablonen voor die taal',
+ 'Delivery Date' => 'Leverdatum',
+ 'Department' => 'Afdeling',
+ 'Department deleted!' => 'Afdeling verwijderd!',
+ 'Department saved!' => 'Afdeling opgeslagen!',
+ 'Departments' => 'Afdelingen',
+ 'Deposit' => 'Storting',
+ 'Depreciation deleted!' => 'Afschrijving verwijderd!',
+ 'Depreciation saved!' => 'Afschrijving opgeslagen!',
+ 'Depreciations' => 'Afschrijvingen',
+ 'Description' => 'Omschrijving',
+ 'Description Translations' => 'Vertalingen Omschrijving',
+ 'Description missing!' => 'Omschrijving ontbreekt',
+ 'Detail' => 'Detail',
+ 'Difference' => 'Verschil',
+ 'Directory' => 'Directory',
+ 'Discount' => 'Korting',
+ 'Done' => 'Klaar',
+ 'Drawing' => 'Tekening',
+ 'Driver' => 'Stuurprogramma',
+ 'Dropdown Limit' => 'Maximum in Dropdown-lijst',
+ 'Due Date' => 'Vervaldatum',
+ 'Due Date missing!' => 'Vervaldatum ontbreekt!',
+ 'E-mail' => 'E-mail',
+ 'E-mail Statement to' => 'E-mail Overzicht aan',
+ 'E-mail address missing!' => 'E-mailadres ontbreekt!',
+ 'E-mail message' => 'E-mailbericht',
+ 'E-mailed' => 'Gemaild',
+ 'Edit' => 'Wijzigen',
+ 'Edit AP Transaction' => 'Crediteurenboeking Wijzigen',
+ 'Edit AR Transaction' => 'Debiteurenboeking Wijzigen',
+ 'Edit Account' => 'Rekening Wijzigen',
+ 'Edit Assembly' => 'Assemblage Wijzigen',
+ 'Edit Asset' => 'Activa Wijzigen',
+ 'Edit Business' => 'Branche Wijzigen',
+ 'Edit Cash Transfer Transaction' => 'Kasoverboeking Wijzigen',
+ 'Edit Customer' => 'Klant Wijzigen',
+ 'Edit Deduction' => 'Korting Wijzigen',
+ 'Edit Department' => 'Afdeling Wijzigen',
+ 'Edit Depreciation' => 'Afschrijving Wijzigen',
+ 'Edit Description Translations' => 'Vertalingen Omschrijving Wijzigen',
+ 'Edit Employee' => 'Werknemer Wijzigen',
+ 'Edit GIFI' => 'GIFI Wijzigen',
+ 'Edit General Ledger Transaction' => 'Boeking in grootboek Wijzigen',
+ 'Edit Group' => 'Productgroep Wijzigen',
+ 'Edit Job' => 'Job Wijzigen',
+ 'Edit Labor/Overhead' => 'Arbeids-/Overheadkosten Wijzigen',
+ 'Edit Language' => 'Taal Wijzigen',
+ 'Edit POS Invoice' => 'Kassaorder Wijzigen',
+ 'Edit Part' => 'Artikel Wijzigen',
+ 'Edit Preferences for' => 'Instellingen Wijzigen voor',
+ 'Edit Pricegroup' => 'Prijsgroep Wijzigen ',
+ 'Edit Project' => 'Project Wijzigen',
+ 'Edit Purchase Order' => 'Inkooporder Wijzigen',
+ 'Edit Quotation' => 'Offerte Wijzigen',
+ 'Edit Request for Quotation' => 'Prijsaanvraag Wijzigen',
+ 'Edit SIC' => 'SIC Wijzigen',
+ 'Edit Sales Invoice' => 'Verkoopfactuur Wijzigen',
+ 'Edit Sales Order' => 'Verkooporder Wijzigen',
+ 'Edit Service' => 'Dienst Wijzigen',
+ 'Edit Template' => 'Sjabloon Wijzigen',
+ 'Edit Time Card' => 'Tijdkaart wijzigen',
+ 'Edit User' => 'Gebruiker Wijzigen',
+ 'Edit Vendor' => 'Leverancier Wijzigen',
+ 'Edit Vendor Invoice' => 'Inkoopfactuur Wijzigen',
+ 'Edit Warehouse' => 'Magazijn Wijzigen',
+ 'Employee' => 'Werknemer',
+ 'Employee Name' => 'Naam Werknemer',
+ 'Employee Number' => 'Werknemercode',
+ 'Employee deleted!' => 'Werknemer verwijderd',
+ 'Employee pays' => 'Werknemerbetalingen',
+ 'Employee saved!' => 'Werknemer opgeslagen!',
+ 'Employees' => 'Werknemers',
+ 'Employer' => 'Werkgever',
+ 'Employer pays' => 'Werkgeverbetalingen',
+ 'Enddate' => 'Einddatum',
+ 'Ends' => 'Eindigt',
+ 'Enforce transaction reversal for all dates' => 'Boeking terugdraaien voor alle data',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Vul max drie karakters in, gescheiden door een dubbelepunt (b.v. EUR:USD:GBP:CAD) voor locale en buitenlandse valuta',
+ 'Equity' => 'Actief vermogen',
+ 'Every' => 'Elke',
+ 'Exch' => 'Wissel',
+ 'Exchange Rate' => 'Wisselkoers',
+ 'Exchange rate for payment missing!' => 'Wisselkoers voor betaling ontbreekt!',
+ 'Exchange rate missing!' => 'Wisselkoers ontbreekt!',
+ 'Exempt age <' => 'Uitsluiten leeftijd <',
+ 'Existing Datasets' => 'Bestaande Datasets',
+ 'Expense' => 'Onkosten',
+ 'Expense account does not exist!' => 'Uitgavenrekening bestaat niet!',
+ 'Expense/Asset' => 'Uitgaven/Activa',
+ 'Extended' => 'Totaal',
+ 'FX' => 'FX',
+ 'Failed to save order!' => 'Order opslaan mislukt!',
+ 'Fax' => 'Fax',
+ 'Feb' => 'feb',
+ 'February' => 'februari',
+ 'For' => 'Gedurende',
+ 'Foreign Exchange Gain' => 'Wisselkoerswinst',
+ 'Foreign Exchange Loss' => 'Wisselkoersverlies',
+ 'Friday' => 'vrijdag',
+ 'From' => 'Van',
+ 'From Warehouse' => 'Van Magazijn',
+ 'GIFI' => 'GIFI',
+ 'GIFI deleted!' => 'GIFI verwijderd!',
+ 'GIFI missing!' => 'GIFI ontbreekt!',
+ 'GIFI saved!' => 'GIFI opgeslagen!',
+ 'GL' => 'Memoriaal',
+ 'GL Reference Number' => 'Memoriaal Referentiecode',
+ 'GL Transaction' => 'Grootboekboeking',
+ 'General Ledger' => 'Grootboek',
+ 'Generate' => 'Genereer',
+ 'Generate Orders' => 'Genereer Orders',
+ 'Generate Purchase Orders' => 'Genereer Aankooporders',
+ 'Generate Purchase Orders from Sales Order' => 'Genereer Aankooporders van Verkooporder',
+ 'Generate Sales Order' => 'Genereer Verkooporder',
+ 'Generate Sales Order from Purchase Orders' => 'Genereer Verkooporder van Aankooporders',
+ 'Generate Sales Orders' => 'Genereer Verkooporders',
+ 'Goods & Services' => 'Goederen & Diensten',
+ 'Group' => 'Productgroep',
+ 'Group Items' => 'Groepeer Onderdelen',
+ 'Group Translations' => 'Vertaling Productgroep',
+ 'Group deleted!' => 'Productgroep verwijderd!',
+ 'Group missing!' => 'Productgroep ontbreekt!',
+ 'Group saved!' => 'Productgroep opgeslagen!',
+ 'Groups' => 'Productgroepen',
+ 'HR' => 'Personeel',
+ 'HTML Templates' => 'HTML Sjablonen',
+ 'Heading' => 'Kopregel',
+ 'History' => 'Historie',
+ 'Home Phone' => 'Thuistelefoon',
+ 'Host' => 'Host',
+ 'Hostname missing!' => 'Hostnaam ontbreekt!',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Image' => 'Plaatje',
+ 'In-line' => 'In Lijn',
+ 'Inactive' => 'Inactief',
+ 'Include Exchange Rate Difference' => 'Inclusief Wisselkoersverschil',
+ 'Include Payment' => 'Inclusief Bedrag',
+ 'Include in Report' => 'Toevoegen aan Uitvoer',
+ 'Include in drop-down menus' => 'Toevoegen aan drop-down menu\'s',
+ 'Income' => 'Inkomsten',
+ 'Income Statement' => 'Resultatenrekening',
+ 'Income account does not exist!' => 'Inkomstenrekening bestaat niet!',
+ 'Incorrect Dataset version!' => 'Dataset heeft verkeerde versie!',
+ 'Increase' => 'Toename',
+ 'Individual Items' => 'Afzonderlijke Onderdelen',
+ 'Internal Notes' => 'Interne Opmerkingen',
+ 'Inventory' => 'Voorraad',
+ 'Inventory account does not exist!' => 'Inventarisrekening bestaat niet!',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Aanwezige voorraad moet nul zijn voordat een assemblage als \'niet actief\' kan worden gemarkeerd.',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Aanwezige voorraad moet nul zijn voordat een product als \'niet actief\' kan worden gemarkeerd.',
+ 'Inventory saved!' => 'Voorraad opgeslagen!',
+ 'Inventory transferred!' => 'Voorraad overgeheveld!',
+ 'Invoice' => 'Factuur',
+ 'Invoice Date' => 'Factuurdatum',
+ 'Invoice Date missing!' => 'Factuurdatum ontbreekt!',
+ 'Invoice Number' => 'Factuurcode',
+ 'Invoice Number missing!' => 'Factuurcode ontbreekt!',
+ 'Invoice deleted!' => 'Factuur verwijderd!',
+ 'Invoices' => 'Facturen',
+ 'Is this a summary account to record' => 'Totaalrekening voor',
+ 'Item' => 'Regel',
+ 'Item already on pricelist!' => 'Onderdeel al aanwezig op prijslijst!',
+ 'Item deleted!' => 'Onderdeel verwijderd!',
+ 'Item not on file!' => 'Dit onderdeel is niet in de database gevonden!',
+ 'Items' => 'Onderdelen',
+ 'Jan' => 'jan',
+ 'January' => 'januari',
+ 'Job' => 'Job',
+ 'Job Description' => 'Jobomschrijving',
+ 'Job Name' => 'Jobnaam',
+ 'Job Number' => 'Jobcode',
+ 'Job Number missing!' => 'Jobcode ontbreekt!',
+ 'Job deleted!' => 'Job verwijderd!',
+ 'Job saved!' => 'Job opgeslagen!',
+ 'Job/Project Number' => 'Job-/Projectcode',
+ 'Jobs' => 'Jobs',
+ 'Jul' => 'jul',
+ 'July' => 'juli',
+ 'Jun' => 'jun',
+ 'June' => 'juni',
+ 'LaTeX Templates' => 'LaTeX Sjablonen',
+ 'Labor Code' => 'Werkcode',
+ 'Labor Code missing!' => 'Werkcode ontbreekt!',
+ 'Labor/Overhead' => 'Arbeids-/Overheadkosten',
+ 'Language' => 'Taal',
+ 'Language deleted!' => 'Taal verwijderd!',
+ 'Language saved!' => 'Taal opgeslagen!',
+ 'Languages' => 'Talen',
+ 'Languages not defined!' => 'Talen niet gedefinieerd!',
+ 'Last Cost' => 'Laaste Kostprijs',
+ 'Last Numbers & Default Accounts' => 'Laatst Toegekende Codes & Standaardrekeningen',
+ 'Lead' => 'Doorloop',
+ 'Leadtime' => 'Levertijd',
+ 'Leave host and port field empty unless you want to make a remote connection.' => 'Laat computernaam en poortnummer leeg, tenzij u een netwerkverbinding wilt opzetten.',
+ 'Liability' => 'Passiva',
+ 'Licensed to' => 'Gelicenseerd aan',
+ 'Lifetime' => 'Levensduur',
+ 'Line Total' => 'Totaalregel',
+ 'Link' => 'Verbinding',
+ 'Link Accounts' => 'Rekeningen Verbinden',
+ 'List' => 'Weergeven',
+ 'List Accounts' => 'Rekeningen Weergeven',
+ 'List Businesses' => 'Branches Weergeven',
+ 'List Departments' => 'Afdelingen Weergeven',
+ 'List GIFI' => 'GIFI Weergeven',
+ 'List Languages' => 'Talen Weergeven',
+ 'List Price' => 'Catalogusprijs',
+ 'List Projects' => 'Projecten Weergeven',
+ 'List SIC' => 'SIC Weergeven',
+ 'List Transactions' => 'Boekingen Weergeven',
+ 'List Warehouses' => 'Magazijnen Weergeven',
+ 'Lock System' => 'Vergrendel het Systeem',
+ 'Lockfile created!' => 'Blokkeerbestand aangemaakt!',
+ 'Lockfile removed!' => 'Blokkeerbestand verwijderd!',
+ 'Login' => 'Aanmelden',
+ 'Login name missing!' => 'Aanmeldnaam ontbreekt!',
+ 'Logout' => 'Afmelden',
+ 'Make' => 'Fabrikant',
+ 'Manager' => 'Manager',
+ 'Mar' => 'mrt',
+ 'March' => 'maart',
+ 'Marked entries printed!' => 'Gemarkeerde delen afgedrukt!',
+ 'Markup' => 'Winstmarge',
+ 'Maximum' => 'Maximum',
+ 'May' => 'mei',
+ 'May ' => 'mei ',
+ 'Memo' => 'Memo',
+ 'Menu Width' => 'Menubreedte',
+ 'Message' => 'Boodschap',
+ 'Method' => 'Gebruikt Stelsel',
+ 'Microfiche' => 'Microfiche',
+ 'Model' => 'Type',
+ 'Monday' => 'maandag',
+ 'Month' => 'Maand',
+ 'Month(s)' => 'Maand(en)',
+ 'Months' => 'Maanden',
+ 'Multibyte Encoding' => 'Unicode',
+ 'N/A' => 'N/A',
+ 'Name' => 'Naam',
+ 'Name missing!' => 'Naam ontbreekt!',
+ 'New Templates' => 'Nieuwe sjablonen',
+ 'New Window' => 'Nieuw Venster',
+ 'Next' => 'Volgende',
+ 'Next Date' => 'Volgende Datum',
+ 'Next Number' => 'Volgende Code',
+ 'No' => 'Nee',
+ 'No Database Drivers available!' => 'Geen Stuurprogramma voor Database beschikbaar!',
+ 'No Dataset selected!' => 'Geen Dataset geselecteerd',
+ 'No Employees on file!' => 'Geen Werknemers bekend!',
+ 'No History!' => 'Geen geschiedenis!',
+ 'No Labor codes on file!' => 'Geen Werkcodes bekend!',
+ 'No Parts on file!' => 'Geen Onderdelen bekend!',
+ 'No Services on file!' => 'Geen diensten bekend!',
+ 'No email address for' => 'Geen e-mailadres voor',
+ 'No open Jobs!' => 'Geen open Jobs!',
+ 'No open Projects!' => 'Geen open Projecten!',
+ 'No.' => 'Nr.',
+ 'Non-chargeable' => 'Niet Doorbelastbaar',
+ 'Non-taxable' => 'Onbelast',
+ 'Non-taxable Purchases' => 'Onbelaste Aankopen',
+ 'Non-taxable Sales' => 'Onbelaste Verkopen',
+ 'Non-tracking Items' => 'Inventarisgoederen',
+ 'Notes' => 'Opmerkingen',
+ 'Nothing entered!' => 'Niets ingevuld!',
+ 'Nothing open!' => 'Niets open!',
+ 'Nothing selected!' => 'Niets geselecteerd!',
+ 'Nothing to delete!' => 'Niets te verwijderen!',
+ 'Nothing to print!' => 'Niets af te drukken!',
+ 'Nothing to transfer!' => 'Niets over te boeken!',
+ 'Nov' => 'nov',
+ 'November' => 'november',
+ 'Number' => 'Code',
+ 'Number Format' => 'Nummeraanduiding',
+ 'Number missing in Row' => 'Code ontbreekt in Regel',
+ 'O' => 'O',
+ 'OH' => 'OH',
+ 'Obsolete' => 'Niet actief',
+ 'Oct' => 'okt',
+ 'October' => 'oktober',
+ 'On Hand' => 'Op voorraad',
+ 'Onhand' => 'Beschikbaar',
+ 'Open' => 'Open',
+ 'Oracle Database Administration' => 'Oracle Database Administratie',
+ 'Order' => 'Bestelling',
+ 'Order Date' => 'Orderdatum',
+ 'Order Date missing!' => 'Orderdatum ontbreekt!',
+ 'Order Entry' => 'Orderinvoer',
+ 'Order Number' => 'Referentie',
+ 'Order Number missing!' => 'Ordernummer ontbreekt!',
+ 'Order deleted!' => 'Order verwijderd!',
+ 'Order generation failed!' => 'Genereren order mislukt!',
+ 'Order saved!' => 'Order opgeslagen!',
+ 'Orders generated!' => 'Orders gegenereerd!',
+ 'Orphaned' => 'Wees',
+ 'Out of balance transaction!' => 'Boeking is niet in evenwicht!',
+ 'Out of balance!' => 'Niet in evenwicht!',
+ 'Outstanding' => 'Openstaand',
+ 'Overdue' => 'Achterstallig',
+ 'PDF' => 'PDF',
+ 'PO' => 'PO',
+ 'PO Number' => 'PO code',
+ 'POS' => 'Kassa',
+ 'POS Invoice' => 'Kassabon',
+ 'Packing List' => 'Pakbon',
+ 'Packing List Date missing!' => 'Datum ontbreekt op de pakbon!',
+ 'Packing List Number missing!' => 'Nummer ontbreekt op de pakbon!',
+ 'Packing Lists' => 'Pakbonnen',
+ 'Paid' => 'Betaald',
+ 'Part' => 'Artikel',
+ 'Part Number' => 'Artikelcode',
+ 'Partnumber' => 'Artikelcode',
+ 'Parts' => 'Artikelen',
+ 'Parts Requirements' => 'Benodigde Onderdelen',
+ 'Password' => 'Wachtwoord',
+ 'Password changed!' => 'Wachtwoord gewijzigd!',
+ 'Password does not match!' => 'Wachtwoord komt niet overeen!',
+ 'Passwords do not match!' => 'Wachtwoorden komen niet overeen!',
+ 'Payables' => 'Betalingen',
+ 'Payment' => 'Betaling',
+ 'Payment date missing!' => 'Geen betalingsdatum aanwezig!',
+ 'Payment posted!' => 'Betaling geboekt!',
+ 'Payments' => 'Betalingen',
+ 'Payments posted!' => 'Betalingen ingeboekt!',
+ 'Payroll Deduction' => 'Loonkorting',
+ 'Payroll Depreciation' => 'Loon afwaardering',
+ 'Period' => 'Periode',
+ 'Pg Database Administration' => 'Pg Database Administratie',
+ 'PgPP Database Administration' => 'PgPP Database Administratie',
+ 'Phone' => 'Telefoon',
+ 'Pick List' => 'Uitsorteerbon',
+ 'Pick Lists' => 'Uitsorteerbonnen',
+ 'Port' => 'Poortnummer',
+ 'Port missing!' => 'Geen poortnummer ingevuld!',
+ 'Pos' => 'Pos',
+ 'Post' => 'Inboeken',
+ 'Post as new' => 'Inboeken als nieuw',
+ 'Posted!' => 'Ingeboekt!',
+ 'Posting' => 'Aan Het Inboeken',
+ 'Posting failed!' => 'Inboeken mislukt',
+ 'Postscript' => 'Postscript',
+ 'Preferences' => 'Instellingen',
+ 'Preferences saved!' => 'Instellingen bewaard!',
+ 'Prepayment' => 'Voorschot',
+ 'Price' => 'Prijs',
+ 'Pricegroup' => 'Prijsgroep',
+ 'Pricegroup deleted!' => 'Prijsgroep verwijderd!',
+ 'Pricegroup missing!' => 'Prijsgroep ontbreekt!',
+ 'Pricegroup saved!' => 'Prijsgroep opgeslagen!',
+ 'Pricegroups' => 'Prijsgroepen',
+ 'Pricelist' => 'Prijslijst',
+ 'Print' => 'Afdrukken',
+ 'Print and Post' => 'Afdrukken en Inboeken',
+ 'Print and Post as new' => 'Afdrukken en Boek als nieuw',
+ 'Print and Save' => 'Afdrukken en Opslaan',
+ 'Print and Save as new' => 'Afdrukken en Sla op als nieuw',
+ 'Printed' => 'Afgedrukt',
+ 'Printer' => 'Printer',
+ 'Printing' => 'Afdrukken',
+ 'Printing ... ' => 'Afdrukken ... ',
+ 'Process Transactions' => 'Transacties Verwerken',
+ 'Production' => 'Productie',
+ 'Profit Center' => 'Inkomstenpost',
+ 'Project' => 'Project',
+ 'Project Description Translations' => 'Vertalingen Projectomschrijving',
+ 'Project Name' => 'Projectnaam',
+ 'Project Number' => 'Projectcode',
+ 'Project Number missing!' => 'Projectcode ontbreekt!',
+ 'Project Transactions' => 'Projectboekingen',
+ 'Project deleted!' => 'Project verwijderd!',
+ 'Project not on file!' => 'Onbekend project!',
+ 'Project saved!' => 'Project opgeslagen!',
+ 'Project/Job Name' => 'Project-/Jobnaam',
+ 'Project/Job Number' => 'Project-/Jobcode',
+ 'Projects' => 'Projecten',
+ 'Purchase Order' => 'Inkooporder',
+ 'Purchase Order Number' => 'Inkoopordercode',
+ 'Purchase Orders' => 'Inkooporders',
+ 'Qty' => 'Aantal',
+ 'Quantity exceeds available units to stock!' => 'Aantal is hoger dan de aanwezige voorraad!',
+ 'Quarter' => 'Kwartaal',
+ 'Queue' => 'Wachtrij',
+ 'Queued' => 'In Wachtrij Gezet',
+ 'Quotation' => 'Offerte',
+ 'Quotation ' => 'Offerte ',
+ 'Quotation Date' => 'Offertedatum',
+ 'Quotation Date missing!' => 'Offertedatum ontbreekt!',
+ 'Quotation Number' => 'Offertecode',
+ 'Quotation Number missing!' => 'Offertecode ontbreekt!',
+ 'Quotation deleted!' => 'Offerte verwijderd!',
+ 'Quotations' => 'Offertes',
+ 'R' => 'R',
+ 'RFQ' => 'Prijsaanvraag',
+ 'RFQ ' => 'Prijsaanvraag ',
+ 'RFQ Number' => 'Prijsaanvraagcode',
+ 'RFQs' => 'Prijsaanvragen',
+ 'ROP' => 'Minimum voorraad',
+ 'Rate' => 'Percentage',
+ 'Rate missing!' => 'Percentage ontbreekt!',
+ 'Recd' => 'Ontvangen',
+ 'Receipt' => 'Ontvangstbewijs',
+ 'Receipt posted!' => 'Ontvangstbewijs geboekt',
+ 'Receipts' => 'Ontvangstbewijzen',
+ 'Receivables' => 'Vorderingen',
+ 'Receive' => 'Ontvangen',
+ 'Receive Merchandise' => 'Goederen Ontvangen',
+ 'Reconciliation' => 'Boekingen Verwerken',
+ 'Reconciliation Report' => 'Reconcilidatierapport',
+ 'Record in' => 'Boeken op',
+ 'Recurring Transaction' => 'Geplande Transactie',
+ 'Recurring Transactions' => 'Geplande Transacties',
+ 'Reference' => 'Referentie',
+ 'Remaining' => 'Resterend',
+ 'Remove' => 'Verwijder',
+ 'Remove Audit trail up to' => 'Verwijder Transactielogboek tot',
+ 'Remove Audit trails up to' => 'Verwijder Transactielogboek tot',
+ 'Removed spoolfiles!' => 'Spoolfiles verwijderd!',
+ 'Removing marked entries from queue ...' => 'Verwijderen gemarkeerde stukken uit wachtrij ...',
+ 'Repeat' => 'Herhaal',
+ 'Report for' => 'Rapport voor',
+ 'Reports' => 'Rapporten',
+ 'Req' => 'Gevr',
+ 'Request for Quotation' => 'Prijsaanvraag',
+ 'Request for Quotations' => 'Prijsaanvragen',
+ 'Required by' => 'Nodig voor',
+ 'Requirements' => 'Vereisten',
+ 'Retained Earnings' => 'Winstreserve',
+ 'Role' => 'Rol',
+ 'S' => 'S',
+ 'SIC' => 'SIC',
+ 'SIC deleted!' => 'SIC verwijderd!',
+ 'SIC saved!' => 'SIC opgeslagen!',
+ 'SKU' => 'SKU',
+ 'SO' => 'VO',
+ 'SSN' => 'Pers.nr.',
+ 'Sale' => 'Verkoopfactuur',
+ 'Sales' => 'Verkoop',
+ 'Sales Invoice' => 'Verkoopfactuur',
+ 'Sales Invoice ' => 'Verkoopfactuur ',
+ 'Sales Invoice.' => 'Verkoopfactuur.',
+ 'Sales Invoice/AR Transaction Number' => 'Verkoopfactuur/Transactienummer Debiteuren',
+ 'Sales Invoices' => 'Verkoopfacturen',
+ 'Sales Order' => 'Verkooporder',
+ 'Sales Order Number' => 'Verkoopordercode',
+ 'Sales Orders' => 'Verkooporders',
+ 'Sales Quotation Number' => 'Verkoopoffertecode',
+ 'Salesperson' => 'Verkoper',
+ 'Saturday' => 'zaterdag',
+ 'Save' => 'Opslaan',
+ 'Save Pricelist' => 'Prijslijst Opslaan',
+ 'Save Schedule' => 'Planning Opslaan',
+ 'Save as new' => 'Opslaan als nieuw',
+ 'Save to File' => 'Opslaan naar Bestand',
+ 'Saving' => 'Opslaan',
+ 'Schedule' => 'Inplannen',
+ 'Scheduled' => 'Ingepland',
+ 'Screen' => 'Scherm',
+ 'Search' => 'Zoek',
+ 'Select' => 'Selecteer',
+ 'Select Customer' => 'Selecteer Klant',
+ 'Select Printer or Queue!' => 'Selecteer de Printer of Wachtrij',
+ 'Select Vendor' => 'Selecteer Leverancier',
+ 'Select a Printer!' => 'Selecteer een Printer',
+ 'Select a printer!' => 'Selecteer een printer!',
+ 'Select all' => 'Selecteer alles',
+ 'Select from one of the items below' => 'Kies een van de onderstaande onderdelen',
+ 'Select from one of the names below' => 'Kies een van de onderstaande namen',
+ 'Select from one of the projects below' => 'Kies een van de onderstaande projecten',
+ 'Select items' => 'Selecteer artikelen',
+ 'Select payment' => 'Kies een betaling',
+ 'Select postscript or PDF!' => 'Kies postscript of PDF!',
+ 'Select txt, postscript or PDF!' => 'Kiest txt, postscript of PDF!',
+ 'Sell' => 'Verkopen',
+ 'Sell Price' => 'Verkoopprijs',
+ 'Send by E-Mail' => 'Verzenden per E-mail',
+ 'Sending' => 'Versturen',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Serial No.' => 'Serienr',
+ 'Serial Number' => 'Serienummer',
+ 'Service' => 'Dienst',
+ 'Service Code' => 'Dienstcode',
+ 'Service Code missing!' => 'Dienstcode ontbreekt!',
+ 'Service/Labor Code' => 'Dienst-/Arbeidscode',
+ 'Services' => 'Diensten',
+ 'Session Timeout' => 'Tijdsduur Sessie',
+ 'Session expired!' => 'Sessie verlopen!',
+ 'Setup Templates' => 'Basissjablonen',
+ 'Ship' => 'Verzenden',
+ 'Ship Merchandise' => 'Goederen Verzenden',
+ 'Ship to' => 'Verzenden aan',
+ 'Ship via' => 'Verzenden via',
+ 'Shipping' => 'Zendingen',
+ 'Shipping Address' => 'Verzendadres',
+ 'Shipping Date' => 'Verzenddatum',
+ 'Shipping Date missing!' => 'Verzenddatum ontbreekt!',
+ 'Shipping Point' => 'Verzendpunt',
+ 'Short' => 'Kort',
+ 'Signature' => 'Handtekening',
+ 'Source' => 'Herkomst',
+ 'Spoolfile' => 'Spoolfile',
+ 'Standard' => 'Standaard',
+ 'Standard Industrial Codes' => 'Standaard Industiële Codes',
+ 'Startdate' => 'Begindatum',
+ 'State' => 'Provincie',
+ 'State/Province' => 'Staat/Provincie',
+ 'Statement' => 'Overzicht',
+ 'Statement Balance' => 'Saldo Overzicht',
+ 'Statement sent to' => 'Overzicht verzonden aan',
+ 'Statements sent to printer!' => 'Overzichten naar de printer gestuurd!',
+ 'Stock' => 'Voorraad',
+ 'Stock Assembly' => 'Assemblagevoorraad',
+ 'Stock Finished Goods' => 'Inslaan Afgewerkte Goederen',
+ 'Stores Card' => 'Materiaalkaart',
+ 'Stores Card saved!' => 'Materiaalkaart opgeslagen!',
+ 'Stores Cards' => 'Materiaalkaarten',
+ 'Stylesheet' => 'Stylesheet',
+ 'Sub-contract GIFI' => 'GIFI rubricering',
+ 'Subject' => 'Onderwerp',
+ 'Subtotal' => 'Subtotaal',
+ 'Summary' => 'Overzicht',
+ 'Sunday' => 'zondag',
+ 'Supervisor' => 'Controleur',
+ 'System' => 'Systeem',
+ 'System Defaults' => 'Standaardinstellingen',
+ 'Tax' => 'Belasting',
+ 'Tax Account' => 'Belastingrekening',
+ 'Tax Accounts' => 'Belastingrekeningen',
+ 'Tax Included' => 'Belasting Inbegrepen',
+ 'Tax Number' => 'Belastingnummer',
+ 'Tax Number / SSN' => 'Belastingnummer / Sofinummer',
+ 'Tax collected' => 'Geïnde belasting',
+ 'Tax paid' => 'Betaalde belasting',
+ 'Taxable' => 'Belastbaar percentage',
+ 'Template saved!' => 'Sjabloon opgeslagen!',
+ 'Templates' => 'Sjablonen',
+ 'Terms' => 'Betalingstermijn',
+ 'Text' => 'Tekst',
+ 'Text Templates' => 'Tekstsjablonen',
+ 'The following Datasets are not in use and can be deleted' => 'De volgende Datasets zijn niet in gebruik en kunnen worden verwijderd.',
+ 'The following Datasets need to be updated' => 'De volgende Datasets moeten worden bijgewerkt',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Dit is een eerste controle. Er wordt op dit moment niks bijgewerkt of verwijderd.',
+ 'Thursday' => 'donderdag',
+ 'Till' => 'Kassa',
+ 'Time' => 'Tijd',
+ 'Time Card' => 'Tijdkaart',
+ 'Time Card deleted!' => 'Tijdkaart verwijderd!',
+ 'Time Card saved!' => 'Tijdkaart opgeslagen!',
+ 'Time Cards' => 'Tijdkaarten',
+ 'Time In' => 'Ingeklokt',
+ 'Time Out' => 'Uitgeklokt',
+ 'Times' => 'Keren',
+ 'To' => 'Tot',
+ 'To Warehouse' => 'Naar Magazijn',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Om een gebruiker aan een groep toe te voegen, een naam te wijzigen, een gebruikersnaam te wijzigen en op te slaan. Een nieuwe gebruiker zal dan worder opgeslagen met dezelfde gegevens onder de nieuwe gebruikersnaam.',
+ 'Top Level' => 'Hoogste Niveau',
+ 'Total' => 'Totaal',
+ 'Tracking Items' => 'Niet-inventarisgoederen',
+ 'Trade Discount' => 'Handelskorting',
+ 'Transaction' => 'Boeking',
+ 'Transaction Date missing!' => 'Boekingsdatum ontbreekt!',
+ 'Transaction Dates' => 'Transactiedatums',
+ 'Transaction deleted!' => 'Boeking verwijderd!',
+ 'Transaction posted!' => 'Boeking opgeslagen!',
+ 'Transaction reversal enforced for all dates' => 'Boekingen verplicht terugdraaien voor alle datums',
+ 'Transaction reversal enforced up to' => 'Boekingen verplicht terugdraaien tot aan',
+ 'Transactions' => 'Boekingen',
+ 'Transfer' => 'Overboeking',
+ 'Transfer Inventory' => 'Inventaris overboeken',
+ 'Transfer from' => 'Overdragen van',
+ 'Transfer to' => 'Overboeken naar',
+ 'Translation' => 'Vertaling',
+ 'Translation deleted!' => 'Vertaling verwijderd!',
+ 'Translation not on file!' => 'Vertaling niet beschikbaar!',
+ 'Translations' => 'Vertalingen',
+ 'Translations saved!' => 'Vertalingen opgeslagen!',
+ 'Trial Balance' => 'Proefbalans',
+ 'Tuesday' => 'dinsdag',
+ 'Type of Business' => 'Branche',
+ 'Unit' => 'Eenheid',
+ 'Unit Rate' => 'Eenheidsprijs',
+ 'Unit of measure' => 'Rekeneenheid',
+ 'Unlock System' => 'System Ontgrendelen',
+ 'Update' => 'Bijwerken',
+ 'Update Dataset' => 'Dataset Bijwerken',
+ 'Updated' => 'Bijgewerkt',
+ 'Upgrading to Version' => 'Opwaarderen naar Versie',
+ 'Use Templates' => 'Gebruik Sjablonen',
+ 'User' => 'Gebruiker',
+ 'User deleted!' => 'Gebruiker verwijderd!',
+ 'User saved!' => 'Gebruiker opgeslagen!',
+ 'Valid until' => 'Geldig tot',
+ 'Vendor' => 'Leverancier',
+ 'Vendor History' => 'Leverancierhistorie',
+ 'Vendor Invoice' => 'Inkoopfactuur',
+ 'Vendor Invoice ' => 'Inkoopfactuur ',
+ 'Vendor Invoice.' => 'Inkoopfactuur.',
+ 'Vendor Invoice/AP Transaction Number' => 'Inkoopfactuur/Transactienummer Crediteuren',
+ 'Vendor Invoices' => 'Inkoopfacturen',
+ 'Vendor Number' => 'Leveranciercode',
+ 'Vendor deleted!' => 'Leverancier verwijderd!',
+ 'Vendor missing!' => 'Leverancier ontbreekt!',
+ 'Vendor not on file!' => 'Leverancier bestaat niet!',
+ 'Vendor saved!' => 'Leverancier opgeslagen!',
+ 'Vendors' => 'Leveranciers',
+ 'Version' => 'Versie',
+ 'Warehouse' => 'Magazijn',
+ 'Warehouse deleted!' => 'Magazijn verwijderd!',
+ 'Warehouse saved!' => 'Magazijn opgeslagen!',
+ 'Warehouses' => 'Magazijnen',
+ 'Warning!' => 'Waarschuwing!',
+ 'Wednesday' => 'woensdag',
+ 'Week' => 'Week',
+ 'Week(s)' => 'Week/Weken',
+ 'Weeks' => 'Weken',
+ 'Weight' => 'Gewicht',
+ 'Weight Unit' => 'Gewichtseenheid',
+ 'What type of item is this?' => 'Wat voor soort artikel is dit?',
+ 'Work Order' => 'Werkorder',
+ 'Work Orders' => 'Werkorders',
+ 'Work Phone' => 'Bedrijfstelefoon',
+ 'Year' => 'Jaar',
+ 'Year(s)' => 'Jaar/Jaren',
+ 'Yearend' => 'Jaareinde',
+ 'Yearend date missing!' => 'Jaareinde ontbreekt!',
+ 'Yearend posted!' => 'Jaareinde geboekt!',
+ 'Yearend posting failed!' => 'Boeking jaareinde mislukt!',
+ 'Years' => 'Jaren',
+ 'Yes' => 'Ja',
+ 'You are logged out' => 'U bent afgemeld',
+ 'You are posting an existing transaction!' => 'U boekt een bestaande transactie!',
+ 'You are printing and posting an existing transaction!' => 'U print en boekt een bestaande transactie!',
+ 'You are printing and saving an existing order' => 'U print een bestaande order en slaat deze daarna op',
+ 'You are printing and saving an existing quotation' => 'U print een bestaande offerte en slaat deze daarna op',
+ 'You are printing and saving an existing transaction!' => 'U bent een bestaande transactie aan het printen en opslaan!',
+ 'You are saving an existing order' => 'U slaat een bestaande order op',
+ 'You are saving an existing quotation' => 'U slaat een bestaande offerte op',
+ 'You are saving an existing transaction!' => 'U bent een bestaande transactie aan het opslaan!',
+ 'You did not enter a name!' => 'U heeft geen gebruikersnaam gegeven!',
+ 'You must enter a host and port for local and remote connections!' => 'Vul een computernaam en een poortnummer in voor netwerkverbindingen!',
+ 'Zip/Postal Code' => 'Postcode',
+ 'account cannot be set to any other type of account' => 'Rekening kan niet omgezet worden naar ander type rekening',
+ 'as at' => 'per',
+ 'days' => 'dagen',
+ 'does not exist' => 'bestaat niet',
+ 'done' => 'gebeurd',
+ 'ea' => 'p.st.',
+ 'failed' => 'mislukt',
+ 'for' => 'gedurende',
+ 'for Period' => 'voor Periode',
+ 'is already a member!' => 'is al een gebruiker!',
+ 'localhost' => 'localhost',
+ 'locked!' => 'geblokeerd!',
+ 'posted!' => 'opgeslagen!',
+ 'sent' => 'verzonden',
+ 'successfully created!' => 'met succes aangemaakt!',
+ 'successfully deleted!' => 'met succes verwijderd!',
+ 'time(s)' => 'keer',
+ 'unexpected error!' => 'onverwachte fout!',
+ 'website' => 'website',
+};
+
+1;
diff --git a/locale/nl/am b/locale/nl/am
new file mode 100755
index 00000000..42d1c012
--- /dev/null
+++ b/locale/nl/am
@@ -0,0 +1,315 @@
+$self{texts} = {
+ 'AP' => 'Crediteuren',
+ 'AR' => 'Debiteuren',
+ 'About' => 'Over',
+ 'Account' => 'Rekening',
+ 'Account Number' => 'Rekeningnummer',
+ 'Account Number missing!' => 'Rekeningnummer Ontbreekt!',
+ 'Account Type' => 'Rekeningtype',
+ 'Account Type missing!' => 'Rekeningtype Ontbreekt!',
+ 'Account deleted!' => 'Rekening Verwijderd',
+ 'Account does not exist!' => 'Rekening Bestaat Niet',
+ 'Account saved!' => 'Rekening Opgeslagen',
+ 'Accounting Menu' => 'Boekhoudmenu',
+ 'Accrual' => 'Transactie',
+ 'Activate Audit trail' => 'Activeer Transactielogboek',
+ 'Add Account' => 'Rekening Toevoegen',
+ 'Add Business' => 'Branche Toevoegen',
+ 'Add Department' => 'Afdeling Toevoegen',
+ 'Add GIFI' => 'GIFI Toevoegen',
+ 'Add Language' => 'Taal Toevoegen',
+ 'Add SIC' => 'SIC Toevoegen',
+ 'Add Warehouse' => 'Magazijn Toevoegen',
+ 'Address' => 'Adres',
+ 'Amount' => 'Bedrag',
+ 'Asset' => 'Activa',
+ 'Audit Control' => 'Transactielogboek',
+ 'Audit trail disabled' => 'Transactielogboek Niet Geactiveerd',
+ 'Audit trail enabled' => 'Transactielogboek Geactiveerd',
+ 'Audit trail removed up to' => 'Transactielogboek Verwijderd Tot',
+ 'Backup sent to' => 'Backup gezonden aan',
+ 'Bin List' => 'Vergaarlijst',
+ 'Books are open' => 'Boekingsperiode is open',
+ 'Business Number' => 'KvK-nummer',
+ 'Business deleted!' => 'Branche verwijderd!',
+ 'Business saved!' => 'Branche opgeslagen!',
+ 'COGS' => 'Kostprijs omzet',
+ 'Cannot delete account!' => 'Kan bedrag niet verwijderen!',
+ 'Cannot delete default account!' => 'Kan standaardrekening niet verwijderen!',
+ 'Cannot save account!' => 'Kan rekening niet opslaan!',
+ 'Cannot save defaults!' => 'Kan de standaard niet opslaan!',
+ 'Cannot save preferences!' => 'Kan voorkeuren niet opslaan!',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Kan rekening niet toekennen behalve aan ofwel Debiteuren, Crediteuren of Inventaris',
+ 'Cannot set multiple options for' => 'Kan slechts één menuoptie instellen voor',
+ 'Cash' => 'Kas',
+ 'Chart of Accounts' => 'Rekeningstelsel',
+ 'Close Books up to' => 'Boeken afsluiten tot',
+ 'Code' => 'Code',
+ 'Code missing!' => 'Code ontbreekt!',
+ 'Company' => 'Bedrijf',
+ 'Confirm' => 'Bevestig',
+ 'Confirm!' => 'Bevestig!',
+ 'Continue' => 'Verder',
+ 'Contra' => 'Contra',
+ 'Copy to COA' => 'Kopieër naar rekeningstelsel',
+ 'Cost Center' => 'Kostenpost',
+ 'Credit' => 'Credit',
+ 'Credit Invoice' => 'Creditfactuur',
+ 'Customer Number' => 'Klantcode',
+ 'Database Host' => 'Databasecomputer',
+ 'Dataset' => 'Dataset',
+ 'Date Format' => 'Datumformaat',
+ 'Day' => 'Dag',
+ 'Days' => 'Dagen',
+ 'Debit' => 'Debet',
+ 'Debit Invoice' => 'Debitfactuur',
+ 'Default Template' => 'Standaard Sjabloon',
+ 'Defaults saved!' => 'Standaardinstellingen bewaard!',
+ 'Delete' => 'Verwijder',
+ 'Delete Account' => 'Rekening Verwijderen',
+ 'Deleting a language will also delete the templates for the language' => 'Een taal verwijderen, verwijdert eveneens de sjablonen voor die taal',
+ 'Department deleted!' => 'Afdeling verwijderd!',
+ 'Department saved!' => 'Afdeling opgeslagen!',
+ 'Departments' => 'Afdelingen',
+ 'Description' => 'Omschrijving',
+ 'Description missing!' => 'Omschrijving ontbreekt',
+ 'Discount' => 'Korting',
+ 'Dropdown Limit' => 'Maximum in Dropdown-lijst',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'E-mailadres ontbreekt!',
+ 'Edit' => 'Wijzigen',
+ 'Edit Account' => 'Rekening Wijzigen',
+ 'Edit Business' => 'Branche Wijzigen',
+ 'Edit Department' => 'Afdeling Wijzigen',
+ 'Edit GIFI' => 'GIFI Wijzigen',
+ 'Edit Language' => 'Taal Wijzigen',
+ 'Edit Preferences for' => 'Instellingen Wijzigen voor',
+ 'Edit SIC' => 'SIC Wijzigen',
+ 'Edit Template' => 'Sjabloon Wijzigen',
+ 'Edit Warehouse' => 'Magazijn Wijzigen',
+ 'Employee Number' => 'Werknemercode',
+ 'Ends' => 'Eindigt',
+ 'Enforce transaction reversal for all dates' => 'Boeking terugdraaien voor alle data',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Vul max drie karakters in, gescheiden door een dubbelepunt (b.v. EUR:USD:GBP:CAD) voor locale en buitenlandse valuta',
+ 'Equity' => 'Actief vermogen',
+ 'Every' => 'Elke',
+ 'Expense' => 'Onkosten',
+ 'Expense/Asset' => 'Uitgaven/Activa',
+ 'Fax' => 'Fax',
+ 'Foreign Exchange Gain' => 'Wisselkoerswinst',
+ 'Foreign Exchange Loss' => 'Wisselkoersverlies',
+ 'GIFI' => 'GIFI',
+ 'GIFI deleted!' => 'GIFI verwijderd!',
+ 'GIFI missing!' => 'GIFI ontbreekt!',
+ 'GIFI saved!' => 'GIFI opgeslagen!',
+ 'GL' => 'Memoriaal',
+ 'GL Reference Number' => 'Memoriaal Referentiecode',
+ 'GL Transaction' => 'Grootboekboeking',
+ 'Heading' => 'Kopregel',
+ 'ID' => 'ID',
+ 'Include in drop-down menus' => 'Toevoegen aan drop-down menu\'s',
+ 'Income' => 'Inkomsten',
+ 'Inventory' => 'Voorraad',
+ 'Invoice' => 'Factuur',
+ 'Is this a summary account to record' => 'Totaalrekening voor',
+ 'Job/Project Number' => 'Job-/Projectcode',
+ 'Language' => 'Taal',
+ 'Language deleted!' => 'Taal verwijderd!',
+ 'Language saved!' => 'Taal opgeslagen!',
+ 'Languages' => 'Talen',
+ 'Last Numbers & Default Accounts' => 'Laatst Toegekende Codes & Standaardrekeningen',
+ 'Liability' => 'Passiva',
+ 'Licensed to' => 'Gelicenseerd aan',
+ 'Link' => 'Verbinding',
+ 'Menu Width' => 'Menubreedte',
+ 'Method' => 'Gebruikt Stelsel',
+ 'Month' => 'Maand',
+ 'Months' => 'Maanden',
+ 'Name' => 'Naam',
+ 'Next' => 'Volgende',
+ 'Next Number' => 'Volgende Code',
+ 'No' => 'Nee',
+ 'No email address for' => 'Geen e-mailadres voor',
+ 'Non-tracking Items' => 'Inventarisgoederen',
+ 'Number' => 'Code',
+ 'Number Format' => 'Nummeraanduiding',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Pakbon',
+ 'Part Number' => 'Artikelcode',
+ 'Password' => 'Wachtwoord',
+ 'Password does not match!' => 'Wachtwoord komt niet overeen!',
+ 'Payables' => 'Betalingen',
+ 'Payment' => 'Betaling',
+ 'Phone' => 'Telefoon',
+ 'Pick List' => 'Uitsorteerbon',
+ 'Posting' => 'Aan Het Inboeken',
+ 'Postscript' => 'Postscript',
+ 'Preferences saved!' => 'Instellingen bewaard!',
+ 'Print' => 'Afdrukken',
+ 'Printer' => 'Printer',
+ 'Printing' => 'Afdrukken',
+ 'Process Transactions' => 'Transacties Verwerken',
+ 'Profit Center' => 'Inkomstenpost',
+ 'Purchase Order' => 'Inkooporder',
+ 'Purchase Order Number' => 'Inkoopordercode',
+ 'Purchase Orders' => 'Inkooporders',
+ 'RFQ Number' => 'Prijsaanvraagcode',
+ 'Rate' => 'Percentage',
+ 'Receivables' => 'Vorderingen',
+ 'Recurring Transactions' => 'Geplande Transacties',
+ 'Reference' => 'Referentie',
+ 'Remove Audit trail up to' => 'Verwijder Transactielogboek tot',
+ 'Retained Earnings' => 'Winstreserve',
+ 'SIC deleted!' => 'SIC verwijderd!',
+ 'SIC saved!' => 'SIC opgeslagen!',
+ 'Sales Invoice' => 'Verkoopfactuur',
+ 'Sales Invoice/AR Transaction Number' => 'Verkoopfactuur/Transactienummer Debiteuren',
+ 'Sales Order' => 'Verkooporder',
+ 'Sales Order Number' => 'Verkoopordercode',
+ 'Sales Orders' => 'Verkooporders',
+ 'Sales Quotation Number' => 'Verkoopoffertecode',
+ 'Save' => 'Opslaan',
+ 'Save as new' => 'Opslaan als nieuw',
+ 'Saving' => 'Opslaan',
+ 'Sending' => 'Versturen',
+ 'Session Timeout' => 'Tijdsduur Sessie',
+ 'Signature' => 'Handtekening',
+ 'Standard Industrial Codes' => 'Standaard Industiële Codes',
+ 'Stylesheet' => 'Stylesheet',
+ 'System Defaults' => 'Standaardinstellingen',
+ 'Tax' => 'Belasting',
+ 'Template saved!' => 'Sjabloon opgeslagen!',
+ 'Times' => 'Keren',
+ 'Tracking Items' => 'Niet-inventarisgoederen',
+ 'Transaction' => 'Boeking',
+ 'Transaction reversal enforced for all dates' => 'Boekingen verplicht terugdraaien voor alle datums',
+ 'Transaction reversal enforced up to' => 'Boekingen verplicht terugdraaien tot aan',
+ 'Type of Business' => 'Branche',
+ 'Update' => 'Bijwerken',
+ 'User' => 'Gebruiker',
+ 'Vendor Invoice' => 'Inkoopfactuur',
+ 'Vendor Invoice/AP Transaction Number' => 'Inkoopfactuur/Transactienummer Crediteuren',
+ 'Vendor Number' => 'Leveranciercode',
+ 'Version' => 'Versie',
+ 'Warehouse deleted!' => 'Magazijn verwijderd!',
+ 'Warehouse saved!' => 'Magazijn opgeslagen!',
+ 'Warehouses' => 'Magazijnen',
+ 'Week' => 'Week',
+ 'Weeks' => 'Weken',
+ 'Weight Unit' => 'Gewichtseenheid',
+ 'Work Order' => 'Werkorder',
+ 'Year' => 'Jaar',
+ 'Yearend' => 'Jaareinde',
+ 'Yearend date missing!' => 'Jaareinde ontbreekt!',
+ 'Yearend posted!' => 'Jaareinde geboekt!',
+ 'Yearend posting failed!' => 'Boeking jaareinde mislukt!',
+ 'Years' => 'Jaren',
+ 'Yes' => 'Ja',
+ 'account cannot be set to any other type of account' => 'Rekening kan niet omgezet worden naar ander type rekening',
+ 'done' => 'gebeurd',
+ 'failed' => 'mislukt',
+ 'localhost' => 'localhost',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'rekening_toevoegen' => 'add_account',
+ 'branche_toevoegen' => 'add_business',
+ 'afdeling_toevoegen' => 'add_department',
+ 'taal_toevoegen' => 'add_language',
+ 'sic_toevoegen' => 'add_sic',
+ 'magazijn_toevoegen' => 'add_warehouse',
+ 'verder' => 'continue',
+ 'kopieër_naar_rekeningstelsel' => 'copy_to_coa',
+ 'verwijder' => 'delete',
+ 'wijzigen' => 'edit',
+ 'rekening_wijzigen' => 'edit_account',
+ 'transacties_verwerken' => 'process_transactions',
+ 'opslaan' => 'save',
+ 'opslaan_als_nieuw' => 'save_as_new',
+ 'bijwerken' => 'update',
+};
+
+1;
+
diff --git a/locale/nl/ap b/locale/nl/ap
new file mode 100755
index 00000000..dccefa0f
--- /dev/null
+++ b/locale/nl/ap
@@ -0,0 +1,240 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Openstaande Crediteuren',
+ 'AP Transaction' => 'Crediteurenboeking',
+ 'AP Transactions' => 'Crediteurenboekingen',
+ 'AR Outstanding' => 'Openstaande Debiteuren',
+ 'AR Transaction' => 'Debiteurenboeking',
+ 'AR Transactions' => 'Debiteurenboekingen',
+ 'Account' => 'Rekening',
+ 'Accounting Menu' => 'Boekhoudmenu',
+ 'Add AP Transaction' => 'Crediteurenboeking Toevoegen',
+ 'Add AR Transaction' => 'Debiteurenboeking Toevoegen',
+ 'Address' => 'Adres',
+ 'Amount' => 'Bedrag',
+ 'Amount Due' => 'Verschuldigd Bedrag',
+ 'Apr' => 'apr',
+ 'April' => 'april',
+ 'Are you sure you want to delete Transaction' => 'Weet u zeker dat u deze boeking wilt verwijderen?',
+ 'Aug' => 'aug',
+ 'August' => 'augustus',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'Kan boeking niet verwijderen!',
+ 'Cannot post payment for a closed period!' => 'Kan geen betaling boeken voor afgesloten periode!',
+ 'Cannot post transaction for a closed period!' => 'Kan geen boeking maken in afgesloten periode',
+ 'Cannot post transaction!' => 'Kan transactie niet boeken!',
+ 'Cc' => 'Cc',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Afgesloten',
+ 'Confirm!' => 'Bevestig!',
+ 'Continue' => 'Verder',
+ 'Credit' => 'Credit',
+ 'Credit Limit' => 'Kredietlimiet',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valuta',
+ 'Current' => 'Huidig',
+ 'Customer' => 'Klant',
+ 'Customer missing!' => 'Klant ontbreekt!',
+ 'Customer not on file!' => 'Klant bestaat niet!',
+ 'Date' => 'Datum',
+ 'Date Paid' => 'Betaaldatum',
+ 'Day(s)' => 'Dag(en)',
+ 'Debit' => 'Debet',
+ 'Dec' => 'dec',
+ 'December' => 'december',
+ 'Delete' => 'Verwijder',
+ 'Delete Schedule' => 'Inplanning Verwijderen',
+ 'Department' => 'Afdeling',
+ 'Description' => 'Omschrijving',
+ 'Detail' => 'Detail',
+ 'Due Date' => 'Vervaldatum',
+ 'Due Date missing!' => 'Vervaldatum ontbreekt!',
+ 'E-mail' => 'E-mail',
+ 'E-mail message' => 'E-mailbericht',
+ 'Edit AP Transaction' => 'Crediteurenboeking Wijzigen',
+ 'Edit AR Transaction' => 'Debiteurenboeking Wijzigen',
+ 'Employee' => 'Werknemer',
+ 'Every' => 'Elke',
+ 'Exch' => 'Wissel',
+ 'Exchange Rate' => 'Wisselkoers',
+ 'Exchange rate for payment missing!' => 'Wisselkoers voor betaling ontbreekt!',
+ 'Exchange rate missing!' => 'Wisselkoers ontbreekt!',
+ 'Feb' => 'feb',
+ 'February' => 'februari',
+ 'For' => 'Gedurende',
+ 'From' => 'Van',
+ 'ID' => 'ID',
+ 'Include Payment' => 'Inclusief Bedrag',
+ 'Include in Report' => 'Toevoegen aan Uitvoer',
+ 'Invoice' => 'Factuur',
+ 'Invoice Date' => 'Factuurdatum',
+ 'Invoice Date missing!' => 'Factuurdatum ontbreekt!',
+ 'Invoice Number' => 'Factuurcode',
+ 'Jan' => 'jan',
+ 'January' => 'januari',
+ 'Jul' => 'jul',
+ 'July' => 'juli',
+ 'Jun' => 'jun',
+ 'June' => 'juni',
+ 'Manager' => 'Manager',
+ 'Mar' => 'mrt',
+ 'March' => 'maart',
+ 'May' => 'mei',
+ 'May ' => 'mei ',
+ 'Memo' => 'Memo',
+ 'Message' => 'Boodschap',
+ 'Month' => 'Maand',
+ 'Month(s)' => 'Maand(en)',
+ 'Next Date' => 'Volgende Datum',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Opmerkingen',
+ 'Nothing to print!' => 'Niets af te drukken!',
+ 'Nov' => 'nov',
+ 'November' => 'november',
+ 'Number' => 'Code',
+ 'Oct' => 'okt',
+ 'October' => 'oktober',
+ 'Open' => 'Open',
+ 'Order' => 'Bestelling',
+ 'Order Number' => 'Referentie',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'PO code',
+ 'Paid' => 'Betaald',
+ 'Payment date missing!' => 'Geen betalingsdatum aanwezig!',
+ 'Payments' => 'Betalingen',
+ 'Period' => 'Periode',
+ 'Post' => 'Inboeken',
+ 'Post as new' => 'Inboeken als nieuw',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Afdrukken',
+ 'Print and Post' => 'Afdrukken en Inboeken',
+ 'Print and Post as new' => 'Afdrukken en Boek als nieuw',
+ 'Printed' => 'Afgedrukt',
+ 'Project' => 'Project',
+ 'Project not on file!' => 'Onbekend project!',
+ 'Quarter' => 'Kwartaal',
+ 'Receipt' => 'Ontvangstbewijs',
+ 'Recurring Transaction' => 'Geplande Transactie',
+ 'Reference' => 'Referentie',
+ 'Remaining' => 'Resterend',
+ 'Repeat' => 'Herhaal',
+ 'Sales Invoice.' => 'Verkoopfactuur.',
+ 'Salesperson' => 'Verkoper',
+ 'Save Schedule' => 'Planning Opslaan',
+ 'Schedule' => 'Inplannen',
+ 'Scheduled' => 'Ingepland',
+ 'Screen' => 'Scherm',
+ 'Select a Printer!' => 'Selecteer een Printer',
+ 'Select from one of the names below' => 'Kies een van de onderstaande namen',
+ 'Select from one of the projects below' => 'Kies een van de onderstaande projecten',
+ 'Select payment' => 'Kies een betaling',
+ 'Select postscript or PDF!' => 'Kies postscript of PDF!',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Ship to' => 'Verzenden aan',
+ 'Ship via' => 'Verzenden via',
+ 'Shipping Point' => 'Verzendpunt',
+ 'Source' => 'Herkomst',
+ 'Startdate' => 'Begindatum',
+ 'Subject' => 'Onderwerp',
+ 'Subtotal' => 'Subtotaal',
+ 'Summary' => 'Overzicht',
+ 'Tax' => 'Belasting',
+ 'Tax Included' => 'Belasting Inbegrepen',
+ 'Till' => 'Kassa',
+ 'To' => 'Tot',
+ 'Total' => 'Totaal',
+ 'Transaction' => 'Boeking',
+ 'Transaction deleted!' => 'Boeking verwijderd!',
+ 'Transaction posted!' => 'Boeking opgeslagen!',
+ 'Update' => 'Bijwerken',
+ 'Vendor' => 'Leverancier',
+ 'Vendor Invoice.' => 'Inkoopfactuur.',
+ 'Vendor missing!' => 'Leverancier ontbreekt!',
+ 'Vendor not on file!' => 'Leverancier bestaat niet!',
+ 'Warning!' => 'Waarschuwing!',
+ 'Week(s)' => 'Week/Weken',
+ 'Year' => 'Jaar',
+ 'Year(s)' => 'Jaar/Jaren',
+ 'Yes' => 'Ja',
+ 'You are posting an existing transaction!' => 'U boekt een bestaande transactie!',
+ 'You are printing and posting an existing transaction!' => 'U print en boekt een bestaande transactie!',
+ 'You are printing and saving an existing order' => 'U print een bestaande order en slaat deze daarna op',
+ 'You are printing and saving an existing quotation' => 'U print een bestaande offerte en slaat deze daarna op',
+ 'You are saving an existing order' => 'U slaat een bestaande order op',
+ 'You are saving an existing quotation' => 'U slaat een bestaande offerte op',
+ 'for' => 'gedurende',
+ 'sent' => 'verzonden',
+ 'time(s)' => 'keer',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'crediteurenboeking' => 'ap_transaction',
+ 'debiteurenboeking' => 'ar_transaction',
+ 'verder' => 'continue',
+ 'verwijder' => 'delete',
+ 'inplanning_verwijderen' => 'delete_schedule',
+ 'inboeken' => 'post',
+ 'inboeken_als_nieuw' => 'post_as_new',
+ 'afdrukken' => 'print',
+ 'afdrukken_en_inboeken' => 'print_and_post',
+ 'afdrukken_en_boek_als_nieuw' => 'print_and_post_as_new',
+ 'verkoopfactuur_' => 'sales_invoice_',
+ 'planning_opslaan' => 'save_schedule',
+ 'inplannen' => 'schedule',
+ 'verzenden_aan' => 'ship_to',
+ 'bijwerken' => 'update',
+ 'inkoopfactuur_' => 'vendor_invoice_',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/nl/ar b/locale/nl/ar
new file mode 100755
index 00000000..dccefa0f
--- /dev/null
+++ b/locale/nl/ar
@@ -0,0 +1,240 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Openstaande Crediteuren',
+ 'AP Transaction' => 'Crediteurenboeking',
+ 'AP Transactions' => 'Crediteurenboekingen',
+ 'AR Outstanding' => 'Openstaande Debiteuren',
+ 'AR Transaction' => 'Debiteurenboeking',
+ 'AR Transactions' => 'Debiteurenboekingen',
+ 'Account' => 'Rekening',
+ 'Accounting Menu' => 'Boekhoudmenu',
+ 'Add AP Transaction' => 'Crediteurenboeking Toevoegen',
+ 'Add AR Transaction' => 'Debiteurenboeking Toevoegen',
+ 'Address' => 'Adres',
+ 'Amount' => 'Bedrag',
+ 'Amount Due' => 'Verschuldigd Bedrag',
+ 'Apr' => 'apr',
+ 'April' => 'april',
+ 'Are you sure you want to delete Transaction' => 'Weet u zeker dat u deze boeking wilt verwijderen?',
+ 'Aug' => 'aug',
+ 'August' => 'augustus',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'Kan boeking niet verwijderen!',
+ 'Cannot post payment for a closed period!' => 'Kan geen betaling boeken voor afgesloten periode!',
+ 'Cannot post transaction for a closed period!' => 'Kan geen boeking maken in afgesloten periode',
+ 'Cannot post transaction!' => 'Kan transactie niet boeken!',
+ 'Cc' => 'Cc',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Afgesloten',
+ 'Confirm!' => 'Bevestig!',
+ 'Continue' => 'Verder',
+ 'Credit' => 'Credit',
+ 'Credit Limit' => 'Kredietlimiet',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valuta',
+ 'Current' => 'Huidig',
+ 'Customer' => 'Klant',
+ 'Customer missing!' => 'Klant ontbreekt!',
+ 'Customer not on file!' => 'Klant bestaat niet!',
+ 'Date' => 'Datum',
+ 'Date Paid' => 'Betaaldatum',
+ 'Day(s)' => 'Dag(en)',
+ 'Debit' => 'Debet',
+ 'Dec' => 'dec',
+ 'December' => 'december',
+ 'Delete' => 'Verwijder',
+ 'Delete Schedule' => 'Inplanning Verwijderen',
+ 'Department' => 'Afdeling',
+ 'Description' => 'Omschrijving',
+ 'Detail' => 'Detail',
+ 'Due Date' => 'Vervaldatum',
+ 'Due Date missing!' => 'Vervaldatum ontbreekt!',
+ 'E-mail' => 'E-mail',
+ 'E-mail message' => 'E-mailbericht',
+ 'Edit AP Transaction' => 'Crediteurenboeking Wijzigen',
+ 'Edit AR Transaction' => 'Debiteurenboeking Wijzigen',
+ 'Employee' => 'Werknemer',
+ 'Every' => 'Elke',
+ 'Exch' => 'Wissel',
+ 'Exchange Rate' => 'Wisselkoers',
+ 'Exchange rate for payment missing!' => 'Wisselkoers voor betaling ontbreekt!',
+ 'Exchange rate missing!' => 'Wisselkoers ontbreekt!',
+ 'Feb' => 'feb',
+ 'February' => 'februari',
+ 'For' => 'Gedurende',
+ 'From' => 'Van',
+ 'ID' => 'ID',
+ 'Include Payment' => 'Inclusief Bedrag',
+ 'Include in Report' => 'Toevoegen aan Uitvoer',
+ 'Invoice' => 'Factuur',
+ 'Invoice Date' => 'Factuurdatum',
+ 'Invoice Date missing!' => 'Factuurdatum ontbreekt!',
+ 'Invoice Number' => 'Factuurcode',
+ 'Jan' => 'jan',
+ 'January' => 'januari',
+ 'Jul' => 'jul',
+ 'July' => 'juli',
+ 'Jun' => 'jun',
+ 'June' => 'juni',
+ 'Manager' => 'Manager',
+ 'Mar' => 'mrt',
+ 'March' => 'maart',
+ 'May' => 'mei',
+ 'May ' => 'mei ',
+ 'Memo' => 'Memo',
+ 'Message' => 'Boodschap',
+ 'Month' => 'Maand',
+ 'Month(s)' => 'Maand(en)',
+ 'Next Date' => 'Volgende Datum',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Opmerkingen',
+ 'Nothing to print!' => 'Niets af te drukken!',
+ 'Nov' => 'nov',
+ 'November' => 'november',
+ 'Number' => 'Code',
+ 'Oct' => 'okt',
+ 'October' => 'oktober',
+ 'Open' => 'Open',
+ 'Order' => 'Bestelling',
+ 'Order Number' => 'Referentie',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'PO code',
+ 'Paid' => 'Betaald',
+ 'Payment date missing!' => 'Geen betalingsdatum aanwezig!',
+ 'Payments' => 'Betalingen',
+ 'Period' => 'Periode',
+ 'Post' => 'Inboeken',
+ 'Post as new' => 'Inboeken als nieuw',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Afdrukken',
+ 'Print and Post' => 'Afdrukken en Inboeken',
+ 'Print and Post as new' => 'Afdrukken en Boek als nieuw',
+ 'Printed' => 'Afgedrukt',
+ 'Project' => 'Project',
+ 'Project not on file!' => 'Onbekend project!',
+ 'Quarter' => 'Kwartaal',
+ 'Receipt' => 'Ontvangstbewijs',
+ 'Recurring Transaction' => 'Geplande Transactie',
+ 'Reference' => 'Referentie',
+ 'Remaining' => 'Resterend',
+ 'Repeat' => 'Herhaal',
+ 'Sales Invoice.' => 'Verkoopfactuur.',
+ 'Salesperson' => 'Verkoper',
+ 'Save Schedule' => 'Planning Opslaan',
+ 'Schedule' => 'Inplannen',
+ 'Scheduled' => 'Ingepland',
+ 'Screen' => 'Scherm',
+ 'Select a Printer!' => 'Selecteer een Printer',
+ 'Select from one of the names below' => 'Kies een van de onderstaande namen',
+ 'Select from one of the projects below' => 'Kies een van de onderstaande projecten',
+ 'Select payment' => 'Kies een betaling',
+ 'Select postscript or PDF!' => 'Kies postscript of PDF!',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Ship to' => 'Verzenden aan',
+ 'Ship via' => 'Verzenden via',
+ 'Shipping Point' => 'Verzendpunt',
+ 'Source' => 'Herkomst',
+ 'Startdate' => 'Begindatum',
+ 'Subject' => 'Onderwerp',
+ 'Subtotal' => 'Subtotaal',
+ 'Summary' => 'Overzicht',
+ 'Tax' => 'Belasting',
+ 'Tax Included' => 'Belasting Inbegrepen',
+ 'Till' => 'Kassa',
+ 'To' => 'Tot',
+ 'Total' => 'Totaal',
+ 'Transaction' => 'Boeking',
+ 'Transaction deleted!' => 'Boeking verwijderd!',
+ 'Transaction posted!' => 'Boeking opgeslagen!',
+ 'Update' => 'Bijwerken',
+ 'Vendor' => 'Leverancier',
+ 'Vendor Invoice.' => 'Inkoopfactuur.',
+ 'Vendor missing!' => 'Leverancier ontbreekt!',
+ 'Vendor not on file!' => 'Leverancier bestaat niet!',
+ 'Warning!' => 'Waarschuwing!',
+ 'Week(s)' => 'Week/Weken',
+ 'Year' => 'Jaar',
+ 'Year(s)' => 'Jaar/Jaren',
+ 'Yes' => 'Ja',
+ 'You are posting an existing transaction!' => 'U boekt een bestaande transactie!',
+ 'You are printing and posting an existing transaction!' => 'U print en boekt een bestaande transactie!',
+ 'You are printing and saving an existing order' => 'U print een bestaande order en slaat deze daarna op',
+ 'You are printing and saving an existing quotation' => 'U print een bestaande offerte en slaat deze daarna op',
+ 'You are saving an existing order' => 'U slaat een bestaande order op',
+ 'You are saving an existing quotation' => 'U slaat een bestaande offerte op',
+ 'for' => 'gedurende',
+ 'sent' => 'verzonden',
+ 'time(s)' => 'keer',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'crediteurenboeking' => 'ap_transaction',
+ 'debiteurenboeking' => 'ar_transaction',
+ 'verder' => 'continue',
+ 'verwijder' => 'delete',
+ 'inplanning_verwijderen' => 'delete_schedule',
+ 'inboeken' => 'post',
+ 'inboeken_als_nieuw' => 'post_as_new',
+ 'afdrukken' => 'print',
+ 'afdrukken_en_inboeken' => 'print_and_post',
+ 'afdrukken_en_boek_als_nieuw' => 'print_and_post_as_new',
+ 'verkoopfactuur_' => 'sales_invoice_',
+ 'planning_opslaan' => 'save_schedule',
+ 'inplannen' => 'schedule',
+ 'verzenden_aan' => 'ship_to',
+ 'bijwerken' => 'update',
+ 'inkoopfactuur_' => 'vendor_invoice_',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/nl/arap b/locale/nl/arap
new file mode 100755
index 00000000..88b63856
--- /dev/null
+++ b/locale/nl/arap
@@ -0,0 +1,74 @@
+$self{texts} = {
+ 'Address' => 'Adres',
+ 'Bcc' => 'Bcc',
+ 'Cc' => 'Cc',
+ 'Continue' => 'Verder',
+ 'Customer not on file!' => 'Klant bestaat niet!',
+ 'Date' => 'Datum',
+ 'Day(s)' => 'Dag(en)',
+ 'Delete Schedule' => 'Inplanning Verwijderen',
+ 'Description' => 'Omschrijving',
+ 'E-mail' => 'E-mail',
+ 'E-mail message' => 'E-mailbericht',
+ 'Every' => 'Elke',
+ 'For' => 'Gedurende',
+ 'Include Payment' => 'Inclusief Bedrag',
+ 'Message' => 'Boodschap',
+ 'Month(s)' => 'Maand(en)',
+ 'Next Date' => 'Volgende Datum',
+ 'Number' => 'Code',
+ 'Print' => 'Afdrukken',
+ 'Project not on file!' => 'Onbekend project!',
+ 'Recurring Transaction' => 'Geplande Transactie',
+ 'Reference' => 'Referentie',
+ 'Repeat' => 'Herhaal',
+ 'Save Schedule' => 'Planning Opslaan',
+ 'Select from one of the names below' => 'Kies een van de onderstaande namen',
+ 'Select from one of the projects below' => 'Kies een van de onderstaande projecten',
+ 'Startdate' => 'Begindatum',
+ 'Subject' => 'Onderwerp',
+ 'To' => 'Tot',
+ 'Vendor not on file!' => 'Leverancier bestaat niet!',
+ 'Warning!' => 'Waarschuwing!',
+ 'Week(s)' => 'Week/Weken',
+ 'Year(s)' => 'Jaar/Jaren',
+ 'You are posting an existing transaction!' => 'U boekt een bestaande transactie!',
+ 'You are printing and posting an existing transaction!' => 'U print en boekt een bestaande transactie!',
+ 'You are printing and saving an existing order' => 'U print een bestaande order en slaat deze daarna op',
+ 'You are printing and saving an existing quotation' => 'U print een bestaande offerte en slaat deze daarna op',
+ 'You are saving an existing order' => 'U slaat een bestaande order op',
+ 'You are saving an existing quotation' => 'U slaat een bestaande offerte op',
+ 'for' => 'gedurende',
+ 'sent' => 'verzonden',
+ 'time(s)' => 'keer',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'verder' => 'continue',
+ 'inplanning_verwijderen' => 'delete_schedule',
+ 'planning_opslaan' => 'save_schedule',
+};
+
+1;
+
diff --git a/locale/nl/arapprn b/locale/nl/arapprn
new file mode 100755
index 00000000..5c99f5e9
--- /dev/null
+++ b/locale/nl/arapprn
@@ -0,0 +1,34 @@
+$self{texts} = {
+ 'Account' => 'Rekening',
+ 'Amount' => 'Bedrag',
+ 'Continue' => 'Verder',
+ 'Date' => 'Datum',
+ 'Memo' => 'Memo',
+ 'Nothing to print!' => 'Niets af te drukken!',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'Postscript',
+ 'Printed' => 'Afgedrukt',
+ 'Scheduled' => 'Ingepland',
+ 'Screen' => 'Scherm',
+ 'Select a Printer!' => 'Selecteer een Printer',
+ 'Select payment' => 'Kies een betaling',
+ 'Select postscript or PDF!' => 'Kies postscript of PDF!',
+ 'Source' => 'Herkomst',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'verder' => 'continue',
+};
+
+1;
+
diff --git a/locale/nl/bp b/locale/nl/bp
new file mode 100755
index 00000000..cb2e31cb
--- /dev/null
+++ b/locale/nl/bp
@@ -0,0 +1,69 @@
+$self{texts} = {
+ 'Account' => 'Rekening',
+ 'Accounting Menu' => 'Boekhoudmenu',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Weet us zeker dat u de gemarkeerde stukken wil verwijderen uit de wachtrij?',
+ 'Bin Lists' => 'Vergaarlijsten',
+ 'Cannot remove files!' => 'Kan bestanden niet verwijderen!',
+ 'Confirm!' => 'Bevestig!',
+ 'Continue' => 'Verder',
+ 'Current' => 'Huidig',
+ 'Customer' => 'Klant',
+ 'Date' => 'Datum',
+ 'Employee' => 'Werknemer',
+ 'From' => 'Van',
+ 'ID' => 'ID',
+ 'Invoice' => 'Factuur',
+ 'Invoice Number' => 'Factuurcode',
+ 'Marked entries printed!' => 'Gemarkeerde delen afgedrukt!',
+ 'Month' => 'Maand',
+ 'Order' => 'Bestelling',
+ 'Order Number' => 'Referentie',
+ 'Packing Lists' => 'Pakbonnen',
+ 'Period' => 'Periode',
+ 'Pick Lists' => 'Uitsorteerbonnen',
+ 'Print' => 'Afdrukken',
+ 'Printing' => 'Afdrukken',
+ 'Purchase Orders' => 'Inkooporders',
+ 'Quarter' => 'Kwartaal',
+ 'Quotation' => 'Offerte',
+ 'Quotation Number' => 'Offertecode',
+ 'Quotations' => 'Offertes',
+ 'RFQs' => 'Prijsaanvragen',
+ 'Remove' => 'Verwijder',
+ 'Removed spoolfiles!' => 'Spoolfiles verwijderd!',
+ 'Removing marked entries from queue ...' => 'Verwijderen gemarkeerde stukken uit wachtrij ...',
+ 'Sales Invoices' => 'Verkoopfacturen',
+ 'Sales Orders' => 'Verkooporders',
+ 'Select all' => 'Selecteer alles',
+ 'Spoolfile' => 'Spoolfile',
+ 'Time Cards' => 'Tijdkaarten',
+ 'To' => 'Tot',
+ 'Vendor' => 'Leverancier',
+ 'Work Orders' => 'Werkorders',
+ 'Year' => 'Jaar',
+ 'Yes' => 'Ja',
+ 'done' => 'gebeurd',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'verder' => 'continue',
+ 'afdrukken' => 'print',
+ 'verwijder' => 'remove',
+ 'selecteer_alles' => 'select_all',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/nl/ca b/locale/nl/ca
new file mode 100755
index 00000000..e84e198c
--- /dev/null
+++ b/locale/nl/ca
@@ -0,0 +1,60 @@
+$self{texts} = {
+ 'AR/AP' => 'Deb/Cred',
+ 'Account' => 'Rekening',
+ 'Apr' => 'apr',
+ 'April' => 'april',
+ 'Aug' => 'aug',
+ 'August' => 'augustus',
+ 'Balance' => 'Saldo',
+ 'Chart of Accounts' => 'Rekeningstelsel',
+ 'Credit' => 'Credit',
+ 'Current' => 'Huidig',
+ 'Date' => 'Datum',
+ 'Debit' => 'Debet',
+ 'Dec' => 'dec',
+ 'December' => 'december',
+ 'Department' => 'Afdeling',
+ 'Description' => 'Omschrijving',
+ 'Feb' => 'feb',
+ 'February' => 'februari',
+ 'From' => 'Van',
+ 'GIFI' => 'GIFI',
+ 'Include in Report' => 'Toevoegen aan Uitvoer',
+ 'Jan' => 'jan',
+ 'January' => 'januari',
+ 'Jul' => 'jul',
+ 'July' => 'juli',
+ 'Jun' => 'jun',
+ 'June' => 'juni',
+ 'List Transactions' => 'Boekingen Weergeven',
+ 'Mar' => 'mrt',
+ 'March' => 'maart',
+ 'May' => 'mei',
+ 'May ' => 'mei ',
+ 'Month' => 'Maand',
+ 'Nov' => 'nov',
+ 'November' => 'november',
+ 'Oct' => 'okt',
+ 'October' => 'oktober',
+ 'Period' => 'Periode',
+ 'Project Number' => 'Projectcode',
+ 'Quarter' => 'Kwartaal',
+ 'R' => 'R',
+ 'Reference' => 'Referentie',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Subtotal' => 'Subtotaal',
+ 'To' => 'Tot',
+ 'Year' => 'Jaar',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'boekingen_weergeven' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/nl/cp b/locale/nl/cp
new file mode 100755
index 00000000..3d2d3628
--- /dev/null
+++ b/locale/nl/cp
@@ -0,0 +1,149 @@
+$self{texts} = {
+ 'AP' => 'Crediteuren',
+ 'AR' => 'Debiteuren',
+ 'Account' => 'Rekening',
+ 'Accounting Menu' => 'Boekhoudmenu',
+ 'Address' => 'Adres',
+ 'All' => 'Allemaal',
+ 'Amount' => 'Bedrag',
+ 'Amount Due' => 'Verschuldigd Bedrag',
+ 'Bcc' => 'Bcc',
+ 'Cannot post Payment!' => 'Kan betaling niet boeken!',
+ 'Cannot post Receipt!' => 'Kan ontvangst niet boeken!',
+ 'Cannot post payment for a closed period!' => 'Kan geen betaling boeken voor afgesloten periode!',
+ 'Cc' => 'Cc',
+ 'Continue' => 'Verder',
+ 'Currency' => 'Valuta',
+ 'Customer' => 'Klant',
+ 'Customer not on file!' => 'Klant bestaat niet!',
+ 'Date' => 'Datum',
+ 'Date missing!' => 'Datum ontbreekt!',
+ 'Day(s)' => 'Dag(en)',
+ 'Delete Schedule' => 'Inplanning Verwijderen',
+ 'Department' => 'Afdeling',
+ 'Deposit' => 'Storting',
+ 'Description' => 'Omschrijving',
+ 'Due Date' => 'Vervaldatum',
+ 'E-mail' => 'E-mail',
+ 'E-mail message' => 'E-mailbericht',
+ 'Every' => 'Elke',
+ 'Exchange Rate' => 'Wisselkoers',
+ 'Exchange rate missing!' => 'Wisselkoers ontbreekt!',
+ 'For' => 'Gedurende',
+ 'From' => 'Van',
+ 'Include Payment' => 'Inclusief Bedrag',
+ 'Invoice' => 'Factuur',
+ 'Invoices' => 'Facturen',
+ 'Language' => 'Taal',
+ 'Memo' => 'Memo',
+ 'Message' => 'Boodschap',
+ 'Month(s)' => 'Maand(en)',
+ 'Next Date' => 'Volgende Datum',
+ 'Nothing open!' => 'Niets open!',
+ 'Number' => 'Code',
+ 'PDF' => 'PDF',
+ 'Payment' => 'Betaling',
+ 'Payment posted!' => 'Betaling geboekt!',
+ 'Payments' => 'Betalingen',
+ 'Payments posted!' => 'Betalingen ingeboekt!',
+ 'Post' => 'Inboeken',
+ 'Posting failed!' => 'Inboeken mislukt',
+ 'Postscript' => 'Postscript',
+ 'Prepayment' => 'Voorschot',
+ 'Print' => 'Afdrukken',
+ 'Project not on file!' => 'Onbekend project!',
+ 'Receipt' => 'Ontvangstbewijs',
+ 'Receipt posted!' => 'Ontvangstbewijs geboekt',
+ 'Receipts' => 'Ontvangstbewijzen',
+ 'Recurring Transaction' => 'Geplande Transactie',
+ 'Reference' => 'Referentie',
+ 'Repeat' => 'Herhaal',
+ 'Save Schedule' => 'Planning Opslaan',
+ 'Screen' => 'Scherm',
+ 'Select' => 'Selecteer',
+ 'Select all' => 'Selecteer alles',
+ 'Select from one of the names below' => 'Kies een van de onderstaande namen',
+ 'Select from one of the projects below' => 'Kies een van de onderstaande projecten',
+ 'Select postscript or PDF!' => 'Kies postscript of PDF!',
+ 'Source' => 'Herkomst',
+ 'Startdate' => 'Begindatum',
+ 'Subject' => 'Onderwerp',
+ 'To' => 'Tot',
+ 'Update' => 'Bijwerken',
+ 'Vendor' => 'Leverancier',
+ 'Vendor not on file!' => 'Leverancier bestaat niet!',
+ 'Warning!' => 'Waarschuwing!',
+ 'Week(s)' => 'Week/Weken',
+ 'Year(s)' => 'Jaar/Jaren',
+ 'You are posting an existing transaction!' => 'U boekt een bestaande transactie!',
+ 'You are printing and posting an existing transaction!' => 'U print en boekt een bestaande transactie!',
+ 'You are printing and saving an existing order' => 'U print een bestaande order en slaat deze daarna op',
+ 'You are printing and saving an existing quotation' => 'U print een bestaande offerte en slaat deze daarna op',
+ 'You are saving an existing order' => 'U slaat een bestaande order op',
+ 'You are saving an existing quotation' => 'U slaat een bestaande offerte op',
+ 'for' => 'gedurende',
+ 'sent' => 'verzonden',
+ 'time(s)' => 'keer',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'verder' => 'continue',
+ 'inplanning_verwijderen' => 'delete_schedule',
+ 'inboeken' => 'post',
+ 'afdrukken' => 'print',
+ 'planning_opslaan' => 'save_schedule',
+ 'selecteer_alles' => 'select_all',
+ 'bijwerken' => 'update',
+};
+
+1;
+
diff --git a/locale/nl/ct b/locale/nl/ct
new file mode 100755
index 00000000..91122a84
--- /dev/null
+++ b/locale/nl/ct
@@ -0,0 +1,190 @@
+$self{texts} = {
+ 'AP Transaction' => 'Crediteurenboeking',
+ 'AP Transactions' => 'Crediteurenboekingen',
+ 'AR Transaction' => 'Debiteurenboeking',
+ 'AR Transactions' => 'Debiteurenboekingen',
+ 'Accounting Menu' => 'Boekhoudmenu',
+ 'Active' => 'Actief',
+ 'Add Customer' => 'Klant Toevoegen',
+ 'Add Vendor' => 'Leverancier Toevoegen',
+ 'Address' => 'Adres',
+ 'All' => 'Allemaal',
+ 'Amount' => 'Bedrag',
+ 'BIC' => 'BIC',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Facturatieadres',
+ 'Break' => 'Korting',
+ 'Cannot delete customer!' => 'Kan klant niet verwijderen!',
+ 'Cannot delete vendor!' => 'Kan leverancier niet verwijderen!',
+ 'Cc' => 'Cc',
+ 'City' => 'Stad',
+ 'Closed' => 'Afgesloten',
+ 'Company Name' => 'Bedrijfsnaam',
+ 'Contact' => 'Contact',
+ 'Continue' => 'Verder',
+ 'Cost' => 'Kostprijs',
+ 'Could not save pricelist!' => 'Kon prijslijst niet opslaan!',
+ 'Country' => 'Land',
+ 'Credit Limit' => 'Kredietlimiet',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valuta',
+ 'Customer History' => 'Klanthistorie',
+ 'Customer Number' => 'Klantcode',
+ 'Customer deleted!' => 'Klant verwijderd!',
+ 'Customer saved!' => 'Klant opgeslagen!',
+ 'Customers' => 'Klanten',
+ 'Delete' => 'Verwijder',
+ 'Delivery Date' => 'Leverdatum',
+ 'Description' => 'Omschrijving',
+ 'Detail' => 'Detail',
+ 'Discount' => 'Korting',
+ 'E-mail' => 'E-mail',
+ 'Edit Customer' => 'Klant Wijzigen',
+ 'Edit Vendor' => 'Leverancier Wijzigen',
+ 'Employee' => 'Werknemer',
+ 'Enddate' => 'Einddatum',
+ 'Fax' => 'Fax',
+ 'From' => 'Van',
+ 'GIFI' => 'GIFI',
+ 'Group' => 'Productgroep',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Inactive' => 'Inactief',
+ 'Include in Report' => 'Toevoegen aan Uitvoer',
+ 'Invoice' => 'Factuur',
+ 'Item already on pricelist!' => 'Onderdeel al aanwezig op prijslijst!',
+ 'Item not on file!' => 'Dit onderdeel is niet in de database gevonden!',
+ 'Language' => 'Taal',
+ 'Leadtime' => 'Levertijd',
+ 'Manager' => 'Manager',
+ 'Name' => 'Naam',
+ 'Name missing!' => 'Naam ontbreekt!',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Opmerkingen',
+ 'Number' => 'Code',
+ 'Open' => 'Open',
+ 'Order' => 'Bestelling',
+ 'Orphaned' => 'Wees',
+ 'POS' => 'Kassa',
+ 'Part Number' => 'Artikelcode',
+ 'Phone' => 'Telefoon',
+ 'Pricegroup' => 'Prijsgroep',
+ 'Pricelist' => 'Prijslijst',
+ 'Project Number' => 'Projectcode',
+ 'Purchase Order' => 'Inkooporder',
+ 'Purchase Orders' => 'Inkooporders',
+ 'Qty' => 'Aantal',
+ 'Quotation' => 'Offerte',
+ 'Quotations' => 'Offertes',
+ 'RFQ' => 'Prijsaanvraag',
+ 'Request for Quotations' => 'Prijsaanvragen',
+ 'SIC' => 'SIC',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Verkoopfactuur',
+ 'Sales Invoices' => 'Verkoopfacturen',
+ 'Sales Order' => 'Verkooporder',
+ 'Sales Orders' => 'Verkooporders',
+ 'Salesperson' => 'Verkoper',
+ 'Save' => 'Opslaan',
+ 'Save Pricelist' => 'Prijslijst Opslaan',
+ 'Save as new' => 'Opslaan als nieuw',
+ 'Search' => 'Zoek',
+ 'Select items' => 'Selecteer artikelen',
+ 'Sell Price' => 'Verkoopprijs',
+ 'Serial Number' => 'Serienummer',
+ 'Shipping Address' => 'Verzendadres',
+ 'Startdate' => 'Begindatum',
+ 'State' => 'Provincie',
+ 'State/Province' => 'Staat/Provincie',
+ 'Sub-contract GIFI' => 'GIFI rubricering',
+ 'Subtotal' => 'Subtotaal',
+ 'Summary' => 'Overzicht',
+ 'Tax' => 'Belasting',
+ 'Tax Account' => 'Belastingrekening',
+ 'Tax Included' => 'Belasting Inbegrepen',
+ 'Tax Number' => 'Belastingnummer',
+ 'Tax Number / SSN' => 'Belastingnummer / Sofinummer',
+ 'Taxable' => 'Belastbaar percentage',
+ 'Terms' => 'Betalingstermijn',
+ 'To' => 'Tot',
+ 'Total' => 'Totaal',
+ 'Type of Business' => 'Branche',
+ 'Unit' => 'Eenheid',
+ 'Update' => 'Bijwerken',
+ 'Vendor History' => 'Leverancierhistorie',
+ 'Vendor Invoice' => 'Inkoopfactuur',
+ 'Vendor Invoices' => 'Inkoopfacturen',
+ 'Vendor Number' => 'Leveranciercode',
+ 'Vendor deleted!' => 'Leverancier verwijderd!',
+ 'Vendor saved!' => 'Leverancier opgeslagen!',
+ 'Vendors' => 'Leveranciers',
+ 'Zip/Postal Code' => 'Postcode',
+ 'days' => 'dagen',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'crediteurenboeking' => 'ap_transaction',
+ 'debiteurenboeking' => 'ar_transaction',
+ 'klant_toevoegen' => 'add_customer',
+ 'leverancier_toevoegen' => 'add_vendor',
+ 'verder' => 'continue',
+ 'verwijder' => 'delete',
+ 'kassa' => 'pos',
+ 'prijslijst' => 'pricelist',
+ 'inkooporder' => 'purchase_order',
+ 'offerte' => 'quotation',
+ 'prijsaanvraag' => 'rfq',
+ 'verkoopfactuur' => 'sales_invoice',
+ 'verkooporder' => 'sales_order',
+ 'opslaan' => 'save',
+ 'prijslijst_opslaan' => 'save_pricelist',
+ 'opslaan_als_nieuw' => 'save_as_new',
+ 'bijwerken' => 'update',
+ 'inkoopfactuur' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/nl/gl b/locale/nl/gl
new file mode 100755
index 00000000..a2b1cc98
--- /dev/null
+++ b/locale/nl/gl
@@ -0,0 +1,185 @@
+$self{texts} = {
+ 'AP Transaction' => 'Crediteurenboeking',
+ 'AR Transaction' => 'Debiteurenboeking',
+ 'Account' => 'Rekening',
+ 'Accounting Menu' => 'Boekhoudmenu',
+ 'Add Cash Transfer Transaction' => 'Geldoverboeking Toevoegen',
+ 'Add General Ledger Transaction' => 'Journaalpost Toevoegen',
+ 'Address' => 'Adres',
+ 'All' => 'Allemaal',
+ 'Amount' => 'Bedrag',
+ 'Apr' => 'apr',
+ 'April' => 'april',
+ 'Are you sure you want to delete Transaction' => 'Weet u zeker dat u deze boeking wilt verwijderen?',
+ 'Asset' => 'Activa',
+ 'Aug' => 'aug',
+ 'August' => 'augustus',
+ 'Balance' => 'Saldo',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'Kan boeking niet verwijderen!',
+ 'Cannot post transaction for a closed period!' => 'Kan geen boeking maken in afgesloten periode',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => 'Kan geen transactie boeken met een debit- en creditregel voor dezelfde rekening!',
+ 'Cannot post transaction!' => 'Kan transactie niet boeken!',
+ 'Cc' => 'Cc',
+ 'Confirm!' => 'Bevestig!',
+ 'Continue' => 'Verder',
+ 'Credit' => 'Credit',
+ 'Current' => 'Huidig',
+ 'Customer not on file!' => 'Klant bestaat niet!',
+ 'Date' => 'Datum',
+ 'Day(s)' => 'Dag(en)',
+ 'Debit' => 'Debet',
+ 'Dec' => 'dec',
+ 'December' => 'december',
+ 'Delete' => 'Verwijder',
+ 'Delete Schedule' => 'Inplanning Verwijderen',
+ 'Department' => 'Afdeling',
+ 'Description' => 'Omschrijving',
+ 'E-mail' => 'E-mail',
+ 'E-mail message' => 'E-mailbericht',
+ 'Edit Cash Transfer Transaction' => 'Kasoverboeking Wijzigen',
+ 'Edit General Ledger Transaction' => 'Boeking in grootboek Wijzigen',
+ 'Equity' => 'Actief vermogen',
+ 'Every' => 'Elke',
+ 'Expense' => 'Onkosten',
+ 'FX' => 'FX',
+ 'Feb' => 'feb',
+ 'February' => 'februari',
+ 'For' => 'Gedurende',
+ 'From' => 'Van',
+ 'GIFI' => 'GIFI',
+ 'GL Transaction' => 'Grootboekboeking',
+ 'General Ledger' => 'Grootboek',
+ 'ID' => 'ID',
+ 'Include Payment' => 'Inclusief Bedrag',
+ 'Include in Report' => 'Toevoegen aan Uitvoer',
+ 'Income' => 'Inkomsten',
+ 'Jan' => 'jan',
+ 'January' => 'januari',
+ 'Jul' => 'jul',
+ 'July' => 'juli',
+ 'Jun' => 'jun',
+ 'June' => 'juni',
+ 'Liability' => 'Passiva',
+ 'Mar' => 'mrt',
+ 'March' => 'maart',
+ 'May' => 'mei',
+ 'May ' => 'mei ',
+ 'Memo' => 'Memo',
+ 'Message' => 'Boodschap',
+ 'Month' => 'Maand',
+ 'Month(s)' => 'Maand(en)',
+ 'Next Date' => 'Volgende Datum',
+ 'Notes' => 'Opmerkingen',
+ 'Nov' => 'nov',
+ 'November' => 'november',
+ 'Number' => 'Code',
+ 'Oct' => 'okt',
+ 'October' => 'oktober',
+ 'Out of balance transaction!' => 'Boeking is niet in evenwicht!',
+ 'Period' => 'Periode',
+ 'Post' => 'Inboeken',
+ 'Post as new' => 'Inboeken als nieuw',
+ 'Print' => 'Afdrukken',
+ 'Project' => 'Project',
+ 'Project not on file!' => 'Onbekend project!',
+ 'Quarter' => 'Kwartaal',
+ 'R' => 'R',
+ 'Recurring Transaction' => 'Geplande Transactie',
+ 'Reference' => 'Referentie',
+ 'Repeat' => 'Herhaal',
+ 'Reports' => 'Rapporten',
+ 'Sales Invoice ' => 'Verkoopfactuur ',
+ 'Save Schedule' => 'Planning Opslaan',
+ 'Schedule' => 'Inplannen',
+ 'Scheduled' => 'Ingepland',
+ 'Select from one of the names below' => 'Kies een van de onderstaande namen',
+ 'Select from one of the projects below' => 'Kies een van de onderstaande projecten',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Source' => 'Herkomst',
+ 'Startdate' => 'Begindatum',
+ 'Subject' => 'Onderwerp',
+ 'Subtotal' => 'Subtotaal',
+ 'To' => 'Tot',
+ 'Transaction Date missing!' => 'Boekingsdatum ontbreekt!',
+ 'Transaction deleted!' => 'Boeking verwijderd!',
+ 'Transaction posted!' => 'Boeking opgeslagen!',
+ 'Update' => 'Bijwerken',
+ 'Vendor Invoice ' => 'Inkoopfactuur ',
+ 'Vendor not on file!' => 'Leverancier bestaat niet!',
+ 'Warning!' => 'Waarschuwing!',
+ 'Week(s)' => 'Week/Weken',
+ 'Year' => 'Jaar',
+ 'Year(s)' => 'Jaar/Jaren',
+ 'Yes' => 'Ja',
+ 'You are posting an existing transaction!' => 'U boekt een bestaande transactie!',
+ 'You are printing and posting an existing transaction!' => 'U print en boekt een bestaande transactie!',
+ 'You are printing and saving an existing order' => 'U print een bestaande order en slaat deze daarna op',
+ 'You are printing and saving an existing quotation' => 'U print een bestaande offerte en slaat deze daarna op',
+ 'You are saving an existing order' => 'U slaat een bestaande order op',
+ 'You are saving an existing quotation' => 'U slaat een bestaande offerte op',
+ 'for' => 'gedurende',
+ 'sent' => 'verzonden',
+ 'time(s)' => 'keer',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'crediteurenboeking' => 'ap_transaction',
+ 'debiteurenboeking' => 'ar_transaction',
+ 'verder' => 'continue',
+ 'verwijder' => 'delete',
+ 'inplanning_verwijderen' => 'delete_schedule',
+ 'grootboekboeking' => 'gl_transaction',
+ 'inboeken' => 'post',
+ 'inboeken_als_nieuw' => 'post_as_new',
+ 'verkoopfactuur_' => 'sales_invoice_',
+ 'planning_opslaan' => 'save_schedule',
+ 'inplannen' => 'schedule',
+ 'bijwerken' => 'update',
+ 'inkoopfactuur_' => 'vendor_invoice_',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/nl/hr b/locale/nl/hr
new file mode 100755
index 00000000..a7e4a448
--- /dev/null
+++ b/locale/nl/hr
@@ -0,0 +1,120 @@
+$self{texts} = {
+ 'AP' => 'Crediteuren',
+ 'Above' => 'Boven',
+ 'Accounting Menu' => 'Boekhoudmenu',
+ 'Active' => 'Actief',
+ 'Add Deduction' => 'Korting Toevoegen',
+ 'Add Employee' => 'Werknemer Toevoegen',
+ 'Address' => 'Adres',
+ 'Administrator' => 'Beheerder',
+ 'After Deduction' => 'Na Korting',
+ 'All' => 'Allemaal',
+ 'Allowances' => 'Toelagen',
+ 'Amount' => 'Bedrag',
+ 'Amount missing!' => 'Bedrag Ontbreekt!',
+ 'BIC' => 'BIC',
+ 'Based on' => 'Gebaseerd op',
+ 'Before Deduction' => 'Voor Korting',
+ 'Below' => 'Onder',
+ 'City' => 'Stad',
+ 'Continue' => 'Verder',
+ 'Country' => 'Land',
+ 'DOB' => 'Geboortedatum',
+ 'Deduct after' => 'Verminder na',
+ 'Deduction deleted!' => 'Korting verwijderd!',
+ 'Deduction saved!' => 'Korting opgeslagen!',
+ 'Deductions' => 'Kortingen',
+ 'Delete' => 'Verwijder',
+ 'Description' => 'Omschrijving',
+ 'Description missing!' => 'Omschrijving ontbreekt',
+ 'E-mail' => 'E-mail',
+ 'Edit Deduction' => 'Korting Wijzigen',
+ 'Edit Employee' => 'Werknemer Wijzigen',
+ 'Employee' => 'Werknemer',
+ 'Employee Name' => 'Naam Werknemer',
+ 'Employee Number' => 'Werknemercode',
+ 'Employee deleted!' => 'Werknemer verwijderd',
+ 'Employee pays' => 'Werknemerbetalingen',
+ 'Employee saved!' => 'Werknemer opgeslagen!',
+ 'Employees' => 'Werknemers',
+ 'Employer' => 'Werkgever',
+ 'Employer pays' => 'Werkgeverbetalingen',
+ 'Enddate' => 'Einddatum',
+ 'Exempt age <' => 'Uitsluiten leeftijd <',
+ 'Expense' => 'Onkosten',
+ 'From' => 'Van',
+ 'Home Phone' => 'Thuistelefoon',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Inactive' => 'Inactief',
+ 'Include in Report' => 'Toevoegen aan Uitvoer',
+ 'Login' => 'Aanmelden',
+ 'Manager' => 'Manager',
+ 'Maximum' => 'Maximum',
+ 'Name' => 'Naam',
+ 'Name missing!' => 'Naam ontbreekt!',
+ 'Notes' => 'Opmerkingen',
+ 'Number' => 'Code',
+ 'Orphaned' => 'Wees',
+ 'Payroll Deduction' => 'Loonkorting',
+ 'Pos' => 'Pos',
+ 'Rate' => 'Percentage',
+ 'Rate missing!' => 'Percentage ontbreekt!',
+ 'Role' => 'Rol',
+ 'S' => 'S',
+ 'SSN' => 'Pers.nr.',
+ 'Sales' => 'Verkoop',
+ 'Save' => 'Opslaan',
+ 'Save as new' => 'Opslaan als nieuw',
+ 'Startdate' => 'Begindatum',
+ 'State/Province' => 'Staat/Provincie',
+ 'Supervisor' => 'Controleur',
+ 'To' => 'Tot',
+ 'Update' => 'Bijwerken',
+ 'User' => 'Gebruiker',
+ 'Work Phone' => 'Bedrijfstelefoon',
+ 'Zip/Postal Code' => 'Postcode',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'korting_toevoegen' => 'add_deduction',
+ 'werknemer_toevoegen' => 'add_employee',
+ 'verder' => 'continue',
+ 'verwijder' => 'delete',
+ 'opslaan' => 'save',
+ 'opslaan_als_nieuw' => 'save_as_new',
+ 'bijwerken' => 'update',
+};
+
+1;
+
diff --git a/locale/nl/ic b/locale/nl/ic
new file mode 100755
index 00000000..52584a8e
--- /dev/null
+++ b/locale/nl/ic
@@ -0,0 +1,301 @@
+$self{texts} = {
+ 'A' => 'A',
+ 'Accounting Menu' => 'Boekhoudmenu',
+ 'Accounts' => 'Rekeningen',
+ 'Accrual' => 'Transactie',
+ 'Active' => 'Actief',
+ 'Add' => 'Toevoegen',
+ 'Add Assembly' => 'Assemblage Toevoegen',
+ 'Add Labor/Overhead' => 'Arbeids-/Overheadkosten Toevoegen',
+ 'Add Part' => 'Artikel Toevoegen',
+ 'Add Purchase Order' => 'Inkooporder Toevoegen',
+ 'Add Quotation' => 'Offerte Toevoegen',
+ 'Add Request for Quotation' => 'Prijsaanvraag Toevoegen',
+ 'Add Sales Order' => 'Verkooporder Toevoegen',
+ 'Add Service' => 'Dienst Toevoegen',
+ 'Address' => 'Adres',
+ 'Apr' => 'apr',
+ 'April' => 'april',
+ 'Assemblies' => 'Assemblages',
+ 'Assemblies restocked!' => 'Assemblage Aangevuld!',
+ 'Assembly' => 'Assemblage',
+ 'Attachment' => 'Bijlage',
+ 'Aug' => 'aug',
+ 'August' => 'augustus',
+ 'Average Cost' => 'Gemiddelde Kostprijs',
+ 'Avg Cost' => 'Gem. Kostpr.',
+ 'BOM' => 'Onderdelenlijst',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Facturatieadres',
+ 'Bin' => 'Vergaarbak',
+ 'Bin List' => 'Vergaarlijst',
+ 'Break' => 'Staffel',
+ 'COGS' => 'Kostprijs omzet',
+ 'COGS account does not exist!' => 'Kostprijs Omzet rekening bestaat niet!',
+ 'Cannot create Assembly' => 'Kan Assemblage niet aanmaken',
+ 'Cannot create Labor' => 'Kan Arbeid niet aanmaken',
+ 'Cannot create Part' => 'Kan Artikel niet aanmaken',
+ 'Cannot create Service' => 'Kan Dienst niet aanmaken',
+ 'Cannot delete item!' => 'Kan onderdeel niet verwijderen!',
+ 'Cannot stock assemblies!' => 'Kan assemblages niet in voorraad nemen!',
+ 'Cash' => 'Kas',
+ 'Cc' => 'Cc',
+ 'Check Inventory' => 'Inventaris Controleren',
+ 'City' => 'Stad',
+ 'Closed' => 'Afgesloten',
+ 'Company Name' => 'Bedrijfsnaam',
+ 'Components' => 'Componenten',
+ 'Contact' => 'Contact',
+ 'Continue' => 'Verder',
+ 'Copies' => 'Kopieën',
+ 'Cost' => 'Kostprijs',
+ 'Country' => 'Land',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valuta',
+ 'Customer' => 'Klant',
+ 'Customer Number' => 'Klantcode',
+ 'Customer not on file!' => 'Klant bestaat niet!',
+ 'Date' => 'Datum',
+ 'Dec' => 'dec',
+ 'December' => 'december',
+ 'Delete' => 'Verwijder',
+ 'Delivery Date' => 'Leverdatum',
+ 'Description' => 'Omschrijving',
+ 'Detail' => 'Detail',
+ 'Drawing' => 'Tekening',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'E-mailadres ontbreekt!',
+ 'E-mailed' => 'Gemaild',
+ 'Edit Assembly' => 'Assemblage Wijzigen',
+ 'Edit Labor/Overhead' => 'Arbeids-/Overheadkosten Wijzigen',
+ 'Edit Part' => 'Artikel Wijzigen',
+ 'Edit Service' => 'Dienst Wijzigen',
+ 'Employee' => 'Werknemer',
+ 'Expense' => 'Onkosten',
+ 'Expense account does not exist!' => 'Uitgavenrekening bestaat niet!',
+ 'Extended' => 'Uitgebreid',
+ 'Fax' => 'Fax',
+ 'Feb' => 'feb',
+ 'February' => 'februari',
+ 'From' => 'Van',
+ 'Group' => 'Productgroep',
+ 'Image' => 'Plaatje',
+ 'In-line' => 'In Lijn',
+ 'Include in Report' => 'Toevoegen aan Uitvoer',
+ 'Income' => 'Inkomsten',
+ 'Income account does not exist!' => 'Inkomstenrekening bestaat niet!',
+ 'Individual Items' => 'Afzonderlijke Onderdelen',
+ 'Inventory' => 'Voorraad',
+ 'Inventory account does not exist!' => 'Inventarisrekening bestaat niet!',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Aanwezige voorraad moet nul zijn voordat een assemblage als \'niet actief\' kan worden gemarkeerd.',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Aanwezige voorraad moet nul zijn voordat een product als \'niet actief\' kan worden gemarkeerd.',
+ 'Invoice' => 'Factuur',
+ 'Invoice Date missing!' => 'Factuurdatum ontbreekt!',
+ 'Invoice Number' => 'Factuurcode',
+ 'Invoice Number missing!' => 'Factuurcode ontbreekt!',
+ 'Item' => 'Regel',
+ 'Item deleted!' => 'Onderdeel verwijderd!',
+ 'Item not on file!' => 'Dit onderdeel is niet in de database gevonden!',
+ 'Items' => 'Onderdelen',
+ 'Jan' => 'jan',
+ 'January' => 'januari',
+ 'Jul' => 'jul',
+ 'July' => 'juli',
+ 'Jun' => 'jun',
+ 'June' => 'juni',
+ 'Labor/Overhead' => 'Arbeids-/Overheadkosten',
+ 'Last Cost' => 'Laaste Kostprijs',
+ 'Leadtime' => 'Levertijd',
+ 'Line Total' => 'Totaalregel',
+ 'Link Accounts' => 'Rekeningen Verbinden',
+ 'List' => 'Weergeven',
+ 'List Price' => 'Catalogusprijs',
+ 'Make' => 'Fabrikant',
+ 'Mar' => 'mrt',
+ 'March' => 'maart',
+ 'Markup' => 'Winstmarge',
+ 'May' => 'mei',
+ 'May ' => 'mei ',
+ 'Message' => 'Boodschap',
+ 'Microfiche' => 'Microfiche',
+ 'Model' => 'Type',
+ 'Name' => 'Naam',
+ 'No History!' => 'Geen geschiedenis!',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Opmerkingen',
+ 'Nov' => 'nov',
+ 'November' => 'november',
+ 'Number' => 'Code',
+ 'Number missing in Row' => 'Code ontbreekt in Regel',
+ 'OH' => 'OH',
+ 'Obsolete' => 'Niet actief',
+ 'Oct' => 'okt',
+ 'October' => 'oktober',
+ 'On Hand' => 'Op voorraad',
+ 'Onhand' => 'Beschikbaar',
+ 'Open' => 'Open',
+ 'Order' => 'Bestelling',
+ 'Order Date missing!' => 'Orderdatum ontbreekt!',
+ 'Order Number' => 'Referentie',
+ 'Order Number missing!' => 'Ordernummer ontbreekt!',
+ 'Orphaned' => 'Wees',
+ 'PDF' => 'PDF',
+ 'PO' => 'PO',
+ 'Packing List' => 'Pakbon',
+ 'Packing List Date missing!' => 'Datum ontbreekt op de pakbon!',
+ 'Packing List Number missing!' => 'Nummer ontbreekt op de pakbon!',
+ 'Part' => 'Artikel',
+ 'Parts' => 'Artikelen',
+ 'Parts Requirements' => 'Benodigde Onderdelen',
+ 'Period' => 'Periode',
+ 'Phone' => 'Telefoon',
+ 'Pick List' => 'Uitsorteerbon',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Prijs',
+ 'Pricegroup' => 'Prijsgroep',
+ 'Printed' => 'Afgedrukt',
+ 'Project' => 'Project',
+ 'Purchase Order' => 'Inkooporder',
+ 'Purchase Orders' => 'Inkooporders',
+ 'Qty' => 'Aantal',
+ 'Quantity exceeds available units to stock!' => 'Aantal is hoger dan de aanwezige voorraad!',
+ 'Queue' => 'Wachtrij',
+ 'Queued' => 'In Wachtrij Gezet',
+ 'Quotation' => 'Offerte',
+ 'Quotation Date missing!' => 'Offertedatum ontbreekt!',
+ 'Quotation Number missing!' => 'Offertecode ontbreekt!',
+ 'Quotations' => 'Offertes',
+ 'RFQ' => 'Prijsaanvraag',
+ 'ROP' => 'Minimum voorraad',
+ 'Recd' => 'Ontvangen',
+ 'Required by' => 'Nodig voor',
+ 'SKU' => 'SKU',
+ 'SO' => 'VO',
+ 'Sales Invoice' => 'Verkoopfactuur',
+ 'Sales Invoices' => 'Verkoopfacturen',
+ 'Sales Order' => 'Verkooporder',
+ 'Sales Orders' => 'Verkooporders',
+ 'Save' => 'Opslaan',
+ 'Save as new' => 'Opslaan als nieuw',
+ 'Scheduled' => 'Ingepland',
+ 'Screen' => 'Scherm',
+ 'Select from one of the names below' => 'Kies een van de onderstaande namen',
+ 'Select items' => 'Selecteer artikelen',
+ 'Select txt, postscript or PDF!' => 'Kiest txt, postscript of PDF!',
+ 'Sell' => 'Verkopen',
+ 'Sell Price' => 'Verkoopprijs',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Serial No.' => 'Serienr',
+ 'Serial Number' => 'Serienummer',
+ 'Service' => 'Dienst',
+ 'Services' => 'Diensten',
+ 'Ship' => 'Verzenden',
+ 'Ship to' => 'Verzenden aan',
+ 'Shipping Address' => 'Verzendadres',
+ 'Short' => 'Kort',
+ 'State/Province' => 'Staat/Provincie',
+ 'Stock' => 'Voorraad',
+ 'Stock Assembly' => 'Assemblagevoorraad',
+ 'Subject' => 'Onderwerp',
+ 'Subtotal' => 'Subtotaal',
+ 'Summary' => 'Overzicht',
+ 'Tax' => 'Belasting',
+ 'Text' => 'Tekst',
+ 'To' => 'Tot',
+ 'Top Level' => 'Hoogste Niveau',
+ 'Translation not on file!' => 'Vertaling niet beschikbaar!',
+ 'Unit' => 'Eenheid',
+ 'Update' => 'Bijwerken',
+ 'Updated' => 'Bijgewerkt',
+ 'Vendor' => 'Leverancier',
+ 'Vendor Invoice' => 'Inkoopfactuur',
+ 'Vendor Invoices' => 'Inkoopfacturen',
+ 'Vendor Number' => 'Leveranciercode',
+ 'Vendor not on file!' => 'Leverancier bestaat niet!',
+ 'Warehouse' => 'Magazijn',
+ 'Weight' => 'Gewicht',
+ 'What type of item is this?' => 'Wat voor soort artikel is dit?',
+ 'Work Order' => 'Werkorder',
+ 'Year' => 'Jaar',
+ 'Zip/Postal Code' => 'Postcode',
+ 'days' => 'dagen',
+ 'sent' => 'verzonden',
+ 'unexpected error!' => 'onverwachte fout!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'assemblage_toevoegen' => 'add_assembly',
+ 'arbeids__overheadkosten_toevoegen' => 'add_labor_overhead',
+ 'artikel_toevoegen' => 'add_part',
+ 'dienst_toevoegen' => 'add_service',
+ 'verder' => 'continue',
+ 'verwijder' => 'delete',
+ 'assemblage_wijzigen' => 'edit_assembly',
+ 'artikel_wijzigen' => 'edit_part',
+ 'dienst_wijzigen' => 'edit_service',
+ 'opslaan' => 'save',
+ 'opslaan_als_nieuw' => 'save_as_new',
+ 'bijwerken' => 'update',
+};
+
+1;
+
diff --git a/locale/nl/io b/locale/nl/io
new file mode 100755
index 00000000..1955f6c3
--- /dev/null
+++ b/locale/nl/io
@@ -0,0 +1,137 @@
+$self{texts} = {
+ 'Add Purchase Order' => 'Inkooporder Toevoegen',
+ 'Add Quotation' => 'Offerte Toevoegen',
+ 'Add Request for Quotation' => 'Prijsaanvraag Toevoegen',
+ 'Add Sales Order' => 'Verkooporder Toevoegen',
+ 'Address' => 'Adres',
+ 'Apr' => 'apr',
+ 'April' => 'april',
+ 'Attachment' => 'Bijlage',
+ 'Aug' => 'aug',
+ 'August' => 'augustus',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Facturatieadres',
+ 'Bin' => 'Vergaarbak',
+ 'Bin List' => 'Vergaarlijst',
+ 'Cc' => 'Cc',
+ 'City' => 'Stad',
+ 'Company Name' => 'Bedrijfsnaam',
+ 'Contact' => 'Contact',
+ 'Continue' => 'Verder',
+ 'Copies' => 'Kopieën',
+ 'Country' => 'Land',
+ 'Customer Number' => 'Klantcode',
+ 'Date' => 'Datum',
+ 'Dec' => 'dec',
+ 'December' => 'december',
+ 'Delivery Date' => 'Leverdatum',
+ 'Description' => 'Omschrijving',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'E-mailadres ontbreekt!',
+ 'E-mailed' => 'Gemaild',
+ 'Extended' => 'Uitgebreid',
+ 'Fax' => 'Fax',
+ 'Feb' => 'feb',
+ 'February' => 'februari',
+ 'Group' => 'Productgroep',
+ 'In-line' => 'In Lijn',
+ 'Invoice' => 'Factuur',
+ 'Invoice Date missing!' => 'Factuurdatum ontbreekt!',
+ 'Invoice Number missing!' => 'Factuurcode ontbreekt!',
+ 'Item' => 'Regel',
+ 'Item not on file!' => 'Dit onderdeel is niet in de database gevonden!',
+ 'Jan' => 'jan',
+ 'January' => 'januari',
+ 'Jul' => 'jul',
+ 'July' => 'juli',
+ 'Jun' => 'jun',
+ 'June' => 'juni',
+ 'Mar' => 'mrt',
+ 'March' => 'maart',
+ 'May' => 'mei',
+ 'May ' => 'mei ',
+ 'Message' => 'Boodschap',
+ 'Nov' => 'nov',
+ 'November' => 'november',
+ 'Number' => 'Code',
+ 'Number missing in Row' => 'Code ontbreekt in Regel',
+ 'OH' => 'OH',
+ 'Oct' => 'okt',
+ 'October' => 'oktober',
+ 'Order Date missing!' => 'Orderdatum ontbreekt!',
+ 'Order Number missing!' => 'Ordernummer ontbreekt!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Pakbon',
+ 'Packing List Date missing!' => 'Datum ontbreekt op de pakbon!',
+ 'Packing List Number missing!' => 'Nummer ontbreekt op de pakbon!',
+ 'Part' => 'Artikel',
+ 'Phone' => 'Telefoon',
+ 'Pick List' => 'Uitsorteerbon',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Prijs',
+ 'Printed' => 'Afgedrukt',
+ 'Project' => 'Project',
+ 'Purchase Order' => 'Inkooporder',
+ 'Qty' => 'Aantal',
+ 'Queue' => 'Wachtrij',
+ 'Queued' => 'In Wachtrij Gezet',
+ 'Quotation' => 'Offerte',
+ 'Quotation Date missing!' => 'Offertedatum ontbreekt!',
+ 'Quotation Number missing!' => 'Offertecode ontbreekt!',
+ 'Recd' => 'Ontvangen',
+ 'Required by' => 'Nodig voor',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Verkooporder',
+ 'Scheduled' => 'Ingepland',
+ 'Screen' => 'Scherm',
+ 'Select items' => 'Selecteer artikelen',
+ 'Select txt, postscript or PDF!' => 'Kiest txt, postscript of PDF!',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Serial No.' => 'Serienr',
+ 'Service' => 'Dienst',
+ 'Ship' => 'Verzenden',
+ 'Ship to' => 'Verzenden aan',
+ 'Shipping Address' => 'Verzendadres',
+ 'State/Province' => 'Staat/Provincie',
+ 'Subject' => 'Onderwerp',
+ 'Subtotal' => 'Subtotaal',
+ 'Text' => 'Tekst',
+ 'To' => 'Tot',
+ 'Translation not on file!' => 'Vertaling niet beschikbaar!',
+ 'Unit' => 'Eenheid',
+ 'Vendor Number' => 'Leveranciercode',
+ 'What type of item is this?' => 'Wat voor soort artikel is dit?',
+ 'Work Order' => 'Werkorder',
+ 'Zip/Postal Code' => 'Postcode',
+ 'sent' => 'verzonden',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'verder' => 'continue',
+};
+
+1;
+
diff --git a/locale/nl/ir b/locale/nl/ir
new file mode 100755
index 00000000..84a28181
--- /dev/null
+++ b/locale/nl/ir
@@ -0,0 +1,257 @@
+$self{texts} = {
+ 'Account' => 'Rekening',
+ 'Accounting Menu' => 'Boekhoudmenu',
+ 'Add Purchase Order' => 'Inkooporder Toevoegen',
+ 'Add Quotation' => 'Offerte Toevoegen',
+ 'Add Request for Quotation' => 'Prijsaanvraag Toevoegen',
+ 'Add Sales Order' => 'Verkooporder Toevoegen',
+ 'Add Vendor Invoice' => 'Inkoopfactuur Toevoegen',
+ 'Address' => 'Adres',
+ 'Amount' => 'Bedrag',
+ 'Apr' => 'apr',
+ 'April' => 'april',
+ 'Are you sure you want to delete Invoice Number' => 'Weet u zeker dat u dit factuurnummer wilt verwijderen?',
+ 'Attachment' => 'Bijlage',
+ 'Aug' => 'aug',
+ 'August' => 'augustus',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Facturatieadres',
+ 'Bin' => 'Vergaarbak',
+ 'Bin List' => 'Vergaarlijst',
+ 'Cannot delete invoice!' => 'Kan factuur niet verwijderen!',
+ 'Cannot post invoice for a closed period!' => 'Kan geen factuur boeken in afgesloten periode!',
+ 'Cannot post invoice!' => 'Kan factuur niet boeken!',
+ 'Cannot post payment for a closed period!' => 'Kan geen betaling boeken voor afgesloten periode!',
+ 'Cc' => 'Cc',
+ 'City' => 'Stad',
+ 'Company Name' => 'Bedrijfsnaam',
+ 'Confirm!' => 'Bevestig!',
+ 'Contact' => 'Contact',
+ 'Continue' => 'Verder',
+ 'Copies' => 'Kopieën',
+ 'Country' => 'Land',
+ 'Credit Limit' => 'Kredietlimiet',
+ 'Currency' => 'Valuta',
+ 'Customer Number' => 'Klantcode',
+ 'Customer not on file!' => 'Klant bestaat niet!',
+ 'Date' => 'Datum',
+ 'Day(s)' => 'Dag(en)',
+ 'Dec' => 'dec',
+ 'December' => 'december',
+ 'Delete' => 'Verwijder',
+ 'Delete Schedule' => 'Inplanning Verwijderen',
+ 'Delivery Date' => 'Leverdatum',
+ 'Department' => 'Afdeling',
+ 'Description' => 'Omschrijving',
+ 'Due Date' => 'Vervaldatum',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'E-mailadres ontbreekt!',
+ 'E-mail message' => 'E-mailbericht',
+ 'E-mailed' => 'Gemaild',
+ 'Edit Vendor Invoice' => 'Inkoopfactuur Wijzigen',
+ 'Every' => 'Elke',
+ 'Exch' => 'Wissel',
+ 'Exchange Rate' => 'Wisselkoers',
+ 'Exchange rate for payment missing!' => 'Wisselkoers voor betaling ontbreekt!',
+ 'Exchange rate missing!' => 'Wisselkoers ontbreekt!',
+ 'Extended' => 'Uitgebreid',
+ 'Fax' => 'Fax',
+ 'Feb' => 'feb',
+ 'February' => 'februari',
+ 'For' => 'Gedurende',
+ 'Group' => 'Productgroep',
+ 'In-line' => 'In Lijn',
+ 'Include Payment' => 'Inclusief Bedrag',
+ 'Internal Notes' => 'Interne Opmerkingen',
+ 'Invoice' => 'Factuur',
+ 'Invoice Date' => 'Factuurdatum',
+ 'Invoice Date missing!' => 'Factuurdatum ontbreekt!',
+ 'Invoice Number' => 'Factuurcode',
+ 'Invoice Number missing!' => 'Factuurcode ontbreekt!',
+ 'Invoice deleted!' => 'Factuur verwijderd!',
+ 'Item' => 'Regel',
+ 'Item not on file!' => 'Dit onderdeel is niet in de database gevonden!',
+ 'Jan' => 'jan',
+ 'January' => 'januari',
+ 'Jul' => 'jul',
+ 'July' => 'juli',
+ 'Jun' => 'jun',
+ 'June' => 'juni',
+ 'Language' => 'Taal',
+ 'Mar' => 'mrt',
+ 'March' => 'maart',
+ 'May' => 'mei',
+ 'May ' => 'mei ',
+ 'Memo' => 'Memo',
+ 'Message' => 'Boodschap',
+ 'Month(s)' => 'Maand(en)',
+ 'Next Date' => 'Volgende Datum',
+ 'Notes' => 'Opmerkingen',
+ 'Nov' => 'nov',
+ 'November' => 'november',
+ 'Number' => 'Code',
+ 'Number missing in Row' => 'Code ontbreekt in Regel',
+ 'OH' => 'OH',
+ 'Oct' => 'okt',
+ 'October' => 'oktober',
+ 'Order Date missing!' => 'Orderdatum ontbreekt!',
+ 'Order Number' => 'Referentie',
+ 'Order Number missing!' => 'Ordernummer ontbreekt!',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'PO code',
+ 'Packing List' => 'Pakbon',
+ 'Packing List Date missing!' => 'Datum ontbreekt op de pakbon!',
+ 'Packing List Number missing!' => 'Nummer ontbreekt op de pakbon!',
+ 'Part' => 'Artikel',
+ 'Payment date missing!' => 'Geen betalingsdatum aanwezig!',
+ 'Payments' => 'Betalingen',
+ 'Phone' => 'Telefoon',
+ 'Pick List' => 'Uitsorteerbon',
+ 'Post' => 'Inboeken',
+ 'Post as new' => 'Inboeken als nieuw',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Prijs',
+ 'Print' => 'Afdrukken',
+ 'Printed' => 'Afgedrukt',
+ 'Project' => 'Project',
+ 'Project not on file!' => 'Onbekend project!',
+ 'Purchase Order' => 'Inkooporder',
+ 'Qty' => 'Aantal',
+ 'Queue' => 'Wachtrij',
+ 'Queued' => 'In Wachtrij Gezet',
+ 'Quotation' => 'Offerte',
+ 'Quotation Date missing!' => 'Offertedatum ontbreekt!',
+ 'Quotation Number missing!' => 'Offertecode ontbreekt!',
+ 'Recd' => 'Ontvangen',
+ 'Record in' => 'Boeken op',
+ 'Recurring Transaction' => 'Geplande Transactie',
+ 'Reference' => 'Referentie',
+ 'Remaining' => 'Resterend',
+ 'Repeat' => 'Herhaal',
+ 'Required by' => 'Nodig voor',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Verkooporder',
+ 'Save Schedule' => 'Planning Opslaan',
+ 'Schedule' => 'Inplannen',
+ 'Scheduled' => 'Ingepland',
+ 'Screen' => 'Scherm',
+ 'Select from one of the names below' => 'Kies een van de onderstaande namen',
+ 'Select from one of the projects below' => 'Kies een van de onderstaande projecten',
+ 'Select items' => 'Selecteer artikelen',
+ 'Select txt, postscript or PDF!' => 'Kiest txt, postscript of PDF!',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Serial No.' => 'Serienr',
+ 'Service' => 'Dienst',
+ 'Ship' => 'Verzenden',
+ 'Ship to' => 'Verzenden aan',
+ 'Shipping Address' => 'Verzendadres',
+ 'Source' => 'Herkomst',
+ 'Startdate' => 'Begindatum',
+ 'State/Province' => 'Staat/Provincie',
+ 'Subject' => 'Onderwerp',
+ 'Subtotal' => 'Subtotaal',
+ 'Tax Included' => 'Belasting Inbegrepen',
+ 'Text' => 'Tekst',
+ 'To' => 'Tot',
+ 'Total' => 'Totaal',
+ 'Translation not on file!' => 'Vertaling niet beschikbaar!',
+ 'Unit' => 'Eenheid',
+ 'Update' => 'Bijwerken',
+ 'Vendor' => 'Leverancier',
+ 'Vendor Number' => 'Leveranciercode',
+ 'Vendor missing!' => 'Leverancier ontbreekt!',
+ 'Vendor not on file!' => 'Leverancier bestaat niet!',
+ 'Warning!' => 'Waarschuwing!',
+ 'Week(s)' => 'Week/Weken',
+ 'What type of item is this?' => 'Wat voor soort artikel is dit?',
+ 'Work Order' => 'Werkorder',
+ 'Year(s)' => 'Jaar/Jaren',
+ 'Yes' => 'Ja',
+ 'You are posting an existing transaction!' => 'U boekt een bestaande transactie!',
+ 'You are printing and posting an existing transaction!' => 'U print en boekt een bestaande transactie!',
+ 'You are printing and saving an existing order' => 'U print een bestaande order en slaat deze daarna op',
+ 'You are printing and saving an existing quotation' => 'U print een bestaande offerte en slaat deze daarna op',
+ 'You are saving an existing order' => 'U slaat een bestaande order op',
+ 'You are saving an existing quotation' => 'U slaat een bestaande offerte op',
+ 'Zip/Postal Code' => 'Postcode',
+ 'ea' => 'p.st.',
+ 'for' => 'gedurende',
+ 'posted!' => 'opgeslagen!',
+ 'sent' => 'verzonden',
+ 'time(s)' => 'keer',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'verder' => 'continue',
+ 'verwijder' => 'delete',
+ 'inplanning_verwijderen' => 'delete_schedule',
+ 'inboeken' => 'post',
+ 'inboeken_als_nieuw' => 'post_as_new',
+ 'inkooporder' => 'purchase_order',
+ 'planning_opslaan' => 'save_schedule',
+ 'inplannen' => 'schedule',
+ 'bijwerken' => 'update',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/nl/is b/locale/nl/is
new file mode 100755
index 00000000..ab300f77
--- /dev/null
+++ b/locale/nl/is
@@ -0,0 +1,271 @@
+$self{texts} = {
+ 'Account' => 'Rekening',
+ 'Accounting Menu' => 'Boekhoudmenu',
+ 'Add Purchase Order' => 'Inkooporder Toevoegen',
+ 'Add Quotation' => 'Offerte Toevoegen',
+ 'Add Request for Quotation' => 'Prijsaanvraag Toevoegen',
+ 'Add Sales Invoice' => 'Verkoopfactuur Toevoegen',
+ 'Add Sales Order' => 'Verkooporder Toevoegen',
+ 'Address' => 'Adres',
+ 'Amount' => 'Bedrag',
+ 'Apr' => 'apr',
+ 'April' => 'april',
+ 'Are you sure you want to delete Invoice Number' => 'Weet u zeker dat u dit factuurnummer wilt verwijderen?',
+ 'Attachment' => 'Bijlage',
+ 'Aug' => 'aug',
+ 'August' => 'augustus',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Facturatieadres',
+ 'Bin' => 'Vergaarbak',
+ 'Bin List' => 'Vergaarlijst',
+ 'Business' => 'Branche',
+ 'Cannot delete invoice!' => 'Kan factuur niet verwijderen!',
+ 'Cannot post invoice for a closed period!' => 'Kan geen factuur boeken in afgesloten periode!',
+ 'Cannot post invoice!' => 'Kan factuur niet boeken!',
+ 'Cannot post payment for a closed period!' => 'Kan geen betaling boeken voor afgesloten periode!',
+ 'Cc' => 'Cc',
+ 'City' => 'Stad',
+ 'Company Name' => 'Bedrijfsnaam',
+ 'Confirm!' => 'Bevestig!',
+ 'Contact' => 'Contact',
+ 'Continue' => 'Verder',
+ 'Copies' => 'Kopieën',
+ 'Country' => 'Land',
+ 'Credit Limit' => 'Kredietlimiet',
+ 'Currency' => 'Valuta',
+ 'Customer' => 'Klant',
+ 'Customer Number' => 'Klantcode',
+ 'Customer missing!' => 'Klant ontbreekt!',
+ 'Customer not on file!' => 'Klant bestaat niet!',
+ 'Date' => 'Datum',
+ 'Day(s)' => 'Dag(en)',
+ 'Dec' => 'dec',
+ 'December' => 'december',
+ 'Delete' => 'Verwijder',
+ 'Delete Schedule' => 'Inplanning Verwijderen',
+ 'Delivery Date' => 'Leverdatum',
+ 'Department' => 'Afdeling',
+ 'Description' => 'Omschrijving',
+ 'Due Date' => 'Vervaldatum',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'E-mailadres ontbreekt!',
+ 'E-mail message' => 'E-mailbericht',
+ 'E-mailed' => 'Gemaild',
+ 'Edit Sales Invoice' => 'Verkoopfactuur Wijzigen',
+ 'Every' => 'Elke',
+ 'Exch' => 'Wissel',
+ 'Exchange Rate' => 'Wisselkoers',
+ 'Exchange rate for payment missing!' => 'Wisselkoers voor betaling ontbreekt!',
+ 'Exchange rate missing!' => 'Wisselkoers ontbreekt!',
+ 'Extended' => 'Uitgebreid',
+ 'Fax' => 'Fax',
+ 'Feb' => 'feb',
+ 'February' => 'februari',
+ 'For' => 'Gedurende',
+ 'Group' => 'Productgroep',
+ 'In-line' => 'In Lijn',
+ 'Include Payment' => 'Inclusief Bedrag',
+ 'Internal Notes' => 'Interne Opmerkingen',
+ 'Invoice' => 'Factuur',
+ 'Invoice Date' => 'Factuurdatum',
+ 'Invoice Date missing!' => 'Factuurdatum ontbreekt!',
+ 'Invoice Number' => 'Factuurcode',
+ 'Invoice Number missing!' => 'Factuurcode ontbreekt!',
+ 'Invoice deleted!' => 'Factuur verwijderd!',
+ 'Item' => 'Regel',
+ 'Item not on file!' => 'Dit onderdeel is niet in de database gevonden!',
+ 'Jan' => 'jan',
+ 'January' => 'januari',
+ 'Jul' => 'jul',
+ 'July' => 'juli',
+ 'Jun' => 'jun',
+ 'June' => 'juni',
+ 'Mar' => 'mrt',
+ 'March' => 'maart',
+ 'May' => 'mei',
+ 'May ' => 'mei ',
+ 'Memo' => 'Memo',
+ 'Message' => 'Boodschap',
+ 'Month(s)' => 'Maand(en)',
+ 'Next Date' => 'Volgende Datum',
+ 'Notes' => 'Opmerkingen',
+ 'Nov' => 'nov',
+ 'November' => 'november',
+ 'Number' => 'Code',
+ 'Number missing in Row' => 'Code ontbreekt in Regel',
+ 'OH' => 'OH',
+ 'Oct' => 'okt',
+ 'October' => 'oktober',
+ 'Order Date missing!' => 'Orderdatum ontbreekt!',
+ 'Order Number' => 'Referentie',
+ 'Order Number missing!' => 'Ordernummer ontbreekt!',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'PO code',
+ 'Packing List' => 'Pakbon',
+ 'Packing List Date missing!' => 'Datum ontbreekt op de pakbon!',
+ 'Packing List Number missing!' => 'Nummer ontbreekt op de pakbon!',
+ 'Part' => 'Artikel',
+ 'Payment date missing!' => 'Geen betalingsdatum aanwezig!',
+ 'Payments' => 'Betalingen',
+ 'Phone' => 'Telefoon',
+ 'Pick List' => 'Uitsorteerbon',
+ 'Post' => 'Inboeken',
+ 'Post as new' => 'Inboeken als nieuw',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Prijs',
+ 'Print' => 'Afdrukken',
+ 'Print and Post' => 'Afdrukken en Inboeken',
+ 'Print and Post as new' => 'Afdrukken en Boek als nieuw',
+ 'Printed' => 'Afgedrukt',
+ 'Project' => 'Project',
+ 'Project not on file!' => 'Onbekend project!',
+ 'Purchase Order' => 'Inkooporder',
+ 'Qty' => 'Aantal',
+ 'Queue' => 'Wachtrij',
+ 'Queued' => 'In Wachtrij Gezet',
+ 'Quotation' => 'Offerte',
+ 'Quotation Date missing!' => 'Offertedatum ontbreekt!',
+ 'Quotation Number missing!' => 'Offertecode ontbreekt!',
+ 'Recd' => 'Ontvangen',
+ 'Record in' => 'Boeken op',
+ 'Recurring Transaction' => 'Geplande Transactie',
+ 'Reference' => 'Referentie',
+ 'Remaining' => 'Resterend',
+ 'Repeat' => 'Herhaal',
+ 'Required by' => 'Nodig voor',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Verkooporder',
+ 'Salesperson' => 'Verkoper',
+ 'Save Schedule' => 'Planning Opslaan',
+ 'Schedule' => 'Inplannen',
+ 'Scheduled' => 'Ingepland',
+ 'Screen' => 'Scherm',
+ 'Select a Printer!' => 'Selecteer een Printer',
+ 'Select from one of the names below' => 'Kies een van de onderstaande namen',
+ 'Select from one of the projects below' => 'Kies een van de onderstaande projecten',
+ 'Select items' => 'Selecteer artikelen',
+ 'Select postscript or PDF!' => 'Kies postscript of PDF!',
+ 'Select txt, postscript or PDF!' => 'Kiest txt, postscript of PDF!',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Serial No.' => 'Serienr',
+ 'Service' => 'Dienst',
+ 'Ship' => 'Verzenden',
+ 'Ship to' => 'Verzenden aan',
+ 'Ship via' => 'Verzenden via',
+ 'Shipping Address' => 'Verzendadres',
+ 'Shipping Point' => 'Verzendpunt',
+ 'Source' => 'Herkomst',
+ 'Startdate' => 'Begindatum',
+ 'State/Province' => 'Staat/Provincie',
+ 'Subject' => 'Onderwerp',
+ 'Subtotal' => 'Subtotaal',
+ 'Tax Included' => 'Belasting Inbegrepen',
+ 'Text' => 'Tekst',
+ 'To' => 'Tot',
+ 'Total' => 'Totaal',
+ 'Trade Discount' => 'Handelskorting',
+ 'Translation not on file!' => 'Vertaling niet beschikbaar!',
+ 'Unit' => 'Eenheid',
+ 'Update' => 'Bijwerken',
+ 'Vendor Number' => 'Leveranciercode',
+ 'Vendor not on file!' => 'Leverancier bestaat niet!',
+ 'Warning!' => 'Waarschuwing!',
+ 'Week(s)' => 'Week/Weken',
+ 'What type of item is this?' => 'Wat voor soort artikel is dit?',
+ 'Work Order' => 'Werkorder',
+ 'Year(s)' => 'Jaar/Jaren',
+ 'Yes' => 'Ja',
+ 'You are posting an existing transaction!' => 'U boekt een bestaande transactie!',
+ 'You are printing and posting an existing transaction!' => 'U print en boekt een bestaande transactie!',
+ 'You are printing and saving an existing order' => 'U print een bestaande order en slaat deze daarna op',
+ 'You are printing and saving an existing quotation' => 'U print een bestaande offerte en slaat deze daarna op',
+ 'You are saving an existing order' => 'U slaat een bestaande order op',
+ 'You are saving an existing quotation' => 'U slaat een bestaande offerte op',
+ 'Zip/Postal Code' => 'Postcode',
+ 'ea' => 'p.st.',
+ 'for' => 'gedurende',
+ 'posted!' => 'opgeslagen!',
+ 'sent' => 'verzonden',
+ 'time(s)' => 'keer',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'verder' => 'continue',
+ 'verwijder' => 'delete',
+ 'inplanning_verwijderen' => 'delete_schedule',
+ 'e_mail' => 'e_mail',
+ 'inboeken' => 'post',
+ 'inboeken_als_nieuw' => 'post_as_new',
+ 'afdrukken' => 'print',
+ 'afdrukken_en_inboeken' => 'print_and_post',
+ 'afdrukken_en_boek_als_nieuw' => 'print_and_post_as_new',
+ 'verkooporder' => 'sales_order',
+ 'planning_opslaan' => 'save_schedule',
+ 'inplannen' => 'schedule',
+ 'verzenden_aan' => 'ship_to',
+ 'bijwerken' => 'update',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/nl/jc b/locale/nl/jc
new file mode 100755
index 00000000..26bac293
--- /dev/null
+++ b/locale/nl/jc
@@ -0,0 +1,156 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Boekhoudmenu',
+ 'Add Stores Card' => 'Materiaalkaart Toevoegen',
+ 'Add Time Card' => 'Tijdkaart Toevoegen',
+ 'Allocated' => 'Toegewezen',
+ 'Amount' => 'Bedrag',
+ 'Are you sure you want to delete time card for' => 'Weet u zeker dat u de tijdkaart wil verwijderen voor',
+ 'Cannot add stores card for a completed job!' => 'Kan geen materiaalkaart toevoegen aan een afgewerkte job!',
+ 'Cannot add time card for a completed job!' => 'Kan geen tijdkaart toevoegen aan een afgewerkte job!',
+ 'Cannot change stores card for a completed job!' => 'Kan materiaalkaart niet veranderen voor een afgewerkte job!',
+ 'Cannot change time card for a completed job!' => 'Kan tijdkaart niet veranderen voor een afgewerkte job!',
+ 'Cannot delete time card!' => 'Kan tijdkaart niet verwijderen!',
+ 'Cannot save stores card for a closed period!' => 'Kan materiaalkaart niet opslaan in een afgesloten periode!',
+ 'Cannot save stores card!' => 'Kan materiaalkaart niet opslaan!',
+ 'Cannot save time card for a closed period!' => 'Kan tijdkaart niet opslaan in een afgesloten periode!',
+ 'Cannot save time card!' => 'Kan tijdkaart niet opslaan!',
+ 'Chargeable' => 'Doorbelastbaar',
+ 'Chargeout Rate' => 'Doorbelasting',
+ 'Clocked' => 'Geklokt',
+ 'Closed' => 'Afgesloten',
+ 'Confirm!' => 'Bevestig!',
+ 'Continue' => 'Verder',
+ 'Cost' => 'Kostprijs',
+ 'Current' => 'Huidig',
+ 'Date' => 'Datum',
+ 'Date missing!' => 'Datum ontbreekt!',
+ 'Date worked' => 'Datum gewerkt',
+ 'Delete' => 'Verwijder',
+ 'Description' => 'Omschrijving',
+ 'Edit Time Card' => 'Tijdkaart wijzigen',
+ 'Employee' => 'Werknemer',
+ 'Friday' => 'vrijdag',
+ 'From' => 'Van',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Toevoegen aan Uitvoer',
+ 'Job Description' => 'Jobomschrijving',
+ 'Job Name' => 'Jobnaam',
+ 'Job Number' => 'Jobcode',
+ 'Job Number missing!' => 'Jobcode ontbreekt!',
+ 'Labor Code' => 'Werkcode',
+ 'Labor Code missing!' => 'Werkcode ontbreekt!',
+ 'Monday' => 'maandag',
+ 'Month' => 'Maand',
+ 'No Employees on file!' => 'Geen Werknemers bekend!',
+ 'No Labor codes on file!' => 'Geen Werkcodes bekend!',
+ 'No Parts on file!' => 'Geen Onderdelen bekend!',
+ 'No Services on file!' => 'Geen diensten bekend!',
+ 'No open Jobs!' => 'Geen open Jobs!',
+ 'No open Projects!' => 'Geen open Projecten!',
+ 'Non-chargeable' => 'Niet Doorbelastbaar',
+ 'Notes' => 'Opmerkingen',
+ 'Open' => 'Open',
+ 'PDF' => 'PDF',
+ 'Part Number' => 'Artikelcode',
+ 'Period' => 'Periode',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Afdrukken',
+ 'Print and Save' => 'Afdrukken en Opslaan',
+ 'Print and Save as new' => 'Afdrukken en Sla op als nieuw',
+ 'Printed' => 'Afgedrukt',
+ 'Project Name' => 'Projectnaam',
+ 'Project Number' => 'Projectcode',
+ 'Project Number missing!' => 'Projectcode ontbreekt!',
+ 'Project/Job Name' => 'Project-/Jobnaam',
+ 'Project/Job Number' => 'Project-/Jobcode',
+ 'Qty' => 'Aantal',
+ 'Quarter' => 'Kwartaal',
+ 'Queue' => 'Wachtrij',
+ 'Queued' => 'In Wachtrij Gezet',
+ 'Saturday' => 'zaterdag',
+ 'Save' => 'Opslaan',
+ 'Save as new' => 'Opslaan als nieuw',
+ 'Screen' => 'Scherm',
+ 'Select a Printer!' => 'Selecteer een Printer',
+ 'Select postscript or PDF!' => 'Kies postscript of PDF!',
+ 'Service Code' => 'Dienstcode',
+ 'Service Code missing!' => 'Dienstcode ontbreekt!',
+ 'Service/Labor Code' => 'Dienst-/Arbeidscode',
+ 'Startdate' => 'Begindatum',
+ 'Stores Card' => 'Materiaalkaart',
+ 'Stores Card saved!' => 'Materiaalkaart opgeslagen!',
+ 'Stores Cards' => 'Materiaalkaarten',
+ 'Subtotal' => 'Subtotaal',
+ 'Sunday' => 'zondag',
+ 'Thursday' => 'donderdag',
+ 'Time' => 'Tijd',
+ 'Time Card' => 'Tijdkaart',
+ 'Time Card deleted!' => 'Tijdkaart verwijderd!',
+ 'Time Card saved!' => 'Tijdkaart opgeslagen!',
+ 'Time Cards' => 'Tijdkaarten',
+ 'Time In' => 'Ingeklokt',
+ 'Time Out' => 'Uitgeklokt',
+ 'To' => 'Tot',
+ 'Total' => 'Totaal',
+ 'Tuesday' => 'dinsdag',
+ 'Update' => 'Bijwerken',
+ 'Warning!' => 'Waarschuwing!',
+ 'Wednesday' => 'woensdag',
+ 'Year' => 'Jaar',
+ 'Yes' => 'Ja',
+ 'You are printing and saving an existing transaction!' => 'U bent een bestaande transactie aan het printen en opslaan!',
+ 'You are saving an existing transaction!' => 'U bent een bestaande transactie aan het opslaan!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'materiaalkaart_toevoegen' => 'add_stores_card',
+ 'tijdkaart_toevoegen' => 'add_time_card',
+ 'verder' => 'continue',
+ 'verwijder' => 'delete',
+ 'afdrukken' => 'print',
+ 'afdrukken_en_opslaan' => 'print_and_save',
+ 'afdrukken_en_sla_op_als_nieuw' => 'print_and_save_as_new',
+ 'opslaan' => 'save',
+ 'opslaan_als_nieuw' => 'save_as_new',
+ 'bijwerken' => 'update',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/nl/locales.pl b/locale/nl/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/nl/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/nl/login b/locale/nl/login
new file mode 100755
index 00000000..a906ffd2
--- /dev/null
+++ b/locale/nl/login
@@ -0,0 +1,25 @@
+$self{texts} = {
+ 'Access Denied!' => 'Toegang Geweigerd!',
+ 'Company' => 'Bedrijf',
+ 'Continue' => 'Verder',
+ 'Dataset is newer than version!' => 'Dataset is nieuwer dan de versie!',
+ 'Incorrect Dataset version!' => 'Dataset heeft verkeerde versie!',
+ 'Login' => 'Aanmelden',
+ 'Name' => 'Naam',
+ 'Password' => 'Wachtwoord',
+ 'Upgrading to Version' => 'Opwaarderen naar Versie',
+ 'Version' => 'Versie',
+ 'You did not enter a name!' => 'U heeft geen gebruikersnaam gegeven!',
+ 'done' => 'gebeurd',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ 'aanmelden' => 'login',
+};
+
+1;
+
diff --git a/locale/nl/menu b/locale/nl/menu
new file mode 100755
index 00000000..2812a1b9
--- /dev/null
+++ b/locale/nl/menu
@@ -0,0 +1,143 @@
+$self{texts} = {
+ 'AP' => 'Crediteuren',
+ 'AP Aging' => 'Ouderdomsoverzicht Crediteuren',
+ 'AP Transaction' => 'Crediteurenboeking',
+ 'AR' => 'Debiteuren',
+ 'AR Aging' => 'Ouderdomsoverzicht Debiteuren',
+ 'AR Transaction' => 'Debiteurenboeking',
+ 'Accounting Menu' => 'Boekhoudmenu',
+ 'Add Account' => 'Rekening Toevoegen',
+ 'Add Assembly' => 'Assemblage Toevoegen',
+ 'Add Business' => 'Branche Toevoegen',
+ 'Add Customer' => 'Klant Toevoegen',
+ 'Add Department' => 'Afdeling Toevoegen',
+ 'Add Employee' => 'Werknemer Toevoegen',
+ 'Add GIFI' => 'GIFI Toevoegen',
+ 'Add Group' => 'Productgroep Toevoegen',
+ 'Add Labor/Overhead' => 'Arbeids-/Overheadkosten Toevoegen',
+ 'Add Language' => 'Taal Toevoegen',
+ 'Add Part' => 'Artikel Toevoegen',
+ 'Add Pricegroup' => 'Prijsgroep Toevoegen',
+ 'Add Project' => 'Project Toevoegen',
+ 'Add SIC' => 'SIC Toevoegen',
+ 'Add Service' => 'Dienst Toevoegen',
+ 'Add Time Card' => 'Tijdkaart Toevoegen',
+ 'Add Transaction' => 'Boeking Toevoegen',
+ 'Add Vendor' => 'Leverancier Toevoegen',
+ 'Add Warehouse' => 'Magazijn Toevoegen',
+ 'All Items' => 'Alle Onderdelen',
+ 'Assemblies' => 'Assemblages',
+ 'Audit Control' => 'Transactielogboek',
+ 'Backup' => 'Backup',
+ 'Balance Sheet' => 'Balans',
+ 'Batch Printing' => 'Gegroepeerd Afdrukken',
+ 'Bin List' => 'Vergaarlijst',
+ 'Bin Lists' => 'Vergaarlijsten',
+ 'Cash' => 'Kas',
+ 'Chart of Accounts' => 'Rekeningstelsel',
+ 'Check' => 'Cheque',
+ 'Components' => 'Componenten',
+ 'Consolidate' => 'Consolideren',
+ 'Customers' => 'Klanten',
+ 'Defaults' => 'Standaardinstellingen',
+ 'Departments' => 'Afdelingen',
+ 'Description' => 'Omschrijving',
+ 'Employees' => 'Werknemers',
+ 'General Ledger' => 'Grootboek',
+ 'Generate' => 'Genereer',
+ 'Goods & Services' => 'Goederen & Diensten',
+ 'Groups' => 'Productgroepen',
+ 'HR' => 'Personeel',
+ 'HTML Templates' => 'HTML Sjablonen',
+ 'History' => 'Historie',
+ 'Income Statement' => 'Resultatenrekening',
+ 'Invoice' => 'Factuur',
+ 'LaTeX Templates' => 'LaTeX Sjablonen',
+ 'Labor/Overhead' => 'Arbeids-/Overheadkosten',
+ 'Language' => 'Taal',
+ 'List Accounts' => 'Rekeningen Weergeven',
+ 'List Businesses' => 'Branches Weergeven',
+ 'List Departments' => 'Afdelingen Weergeven',
+ 'List GIFI' => 'GIFI Weergeven',
+ 'List Languages' => 'Talen Weergeven',
+ 'List Projects' => 'Projecten Weergeven',
+ 'List SIC' => 'SIC Weergeven',
+ 'List Warehouses' => 'Magazijnen Weergeven',
+ 'Logout' => 'Afmelden',
+ 'New Window' => 'Nieuw Venster',
+ 'Non-taxable' => 'Onbelast',
+ 'Open' => 'Open',
+ 'Order Entry' => 'Orderinvoer',
+ 'Outstanding' => 'Openstaand',
+ 'POS' => 'Kassa',
+ 'POS Invoice' => 'Kassabon',
+ 'Packing List' => 'Pakbon',
+ 'Packing Lists' => 'Pakbonnen',
+ 'Parts' => 'Artikelen',
+ 'Payment' => 'Betaling',
+ 'Payments' => 'Betalingen',
+ 'Pick List' => 'Uitsorteerbon',
+ 'Pick Lists' => 'Uitsorteerbonnen',
+ 'Preferences' => 'Instellingen',
+ 'Pricegroups' => 'Prijsgroepen',
+ 'Print' => 'Afdrukken',
+ 'Projects' => 'Projecten',
+ 'Purchase Order' => 'Inkooporder',
+ 'Purchase Orders' => 'Inkooporders',
+ 'Quotation' => 'Offerte',
+ 'Quotations' => 'Offertes',
+ 'RFQ' => 'Prijsaanvraag',
+ 'RFQs' => 'Prijsaanvragen',
+ 'Receipt' => 'Ontvangstbewijs',
+ 'Receipts' => 'Ontvangstbewijzen',
+ 'Receive' => 'Ontvangen',
+ 'Reconciliation' => 'Boekingen Verwerken',
+ 'Recurring Transactions' => 'Geplande Transacties',
+ 'Reports' => 'Rapporten',
+ 'Requirements' => 'Vereisten',
+ 'SIC' => 'SIC',
+ 'Sale' => 'Verkoopfactuur',
+ 'Sales Invoice' => 'Verkoopfactuur',
+ 'Sales Invoices' => 'Verkoopfacturen',
+ 'Sales Order' => 'Verkooporder',
+ 'Sales Orders' => 'Verkooporders',
+ 'Save to File' => 'Opslaan naar Bestand',
+ 'Search' => 'Zoek',
+ 'Send by E-Mail' => 'Verzenden per E-mail',
+ 'Services' => 'Diensten',
+ 'Ship' => 'Verzenden',
+ 'Shipping' => 'Zendingen',
+ 'Statement' => 'Overzicht',
+ 'Stock Assembly' => 'Assemblagevoorraad',
+ 'Stylesheet' => 'Stylesheet',
+ 'System' => 'Systeem',
+ 'Tax collected' => 'Geïnde belasting',
+ 'Tax paid' => 'Betaalde belasting',
+ 'Text Templates' => 'Tekstsjablonen',
+ 'Time Card' => 'Tijdkaart',
+ 'Time Cards' => 'Tijdkaarten',
+ 'Transactions' => 'Boekingen',
+ 'Transfer' => 'Overboeking',
+ 'Transfer Inventory' => 'Inventaris overboeken',
+ 'Translations' => 'Vertalingen',
+ 'Trial Balance' => 'Proefbalans',
+ 'Type of Business' => 'Branche',
+ 'Vendor Invoice' => 'Inkoopfactuur',
+ 'Vendors' => 'Leveranciers',
+ 'Version' => 'Versie',
+ 'Warehouses' => 'Magazijnen',
+ 'Work Order' => 'Werkorder',
+ 'Work Orders' => 'Werkorders',
+ 'Yearend' => 'Jaareinde',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/nl/oe b/locale/nl/oe
new file mode 100755
index 00000000..b511f34b
--- /dev/null
+++ b/locale/nl/oe
@@ -0,0 +1,378 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Boekhoudmenu',
+ 'Add Exchange Rate' => 'Wisselkoers Toevoegen',
+ 'Add Purchase Order' => 'Inkooporder Toevoegen',
+ 'Add Quotation' => 'Offerte Toevoegen',
+ 'Add Request for Quotation' => 'Prijsaanvraag Toevoegen',
+ 'Add Sales Invoice' => 'Verkoopfactuur Toevoegen',
+ 'Add Sales Order' => 'Verkooporder Toevoegen',
+ 'Add Vendor Invoice' => 'Inkoopfactuur Toevoegen',
+ 'Address' => 'Adres',
+ 'Amount' => 'Bedrag',
+ 'Apr' => 'apr',
+ 'April' => 'april',
+ 'Are you sure you want to delete Order Number' => 'Weet u zeker dat u dit ordernummer wilt verwijderen?',
+ 'Are you sure you want to delete Quotation Number' => 'Weet u zeker dat u dit offertenummer wilt verwijderen?',
+ 'Attachment' => 'Bijlage',
+ 'Aug' => 'aug',
+ 'August' => 'augustus',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Facturatieadres',
+ 'Bin' => 'Vergaarbak',
+ 'Bin List' => 'Vergaarlijst',
+ 'Business' => 'Branche',
+ 'C' => 'C',
+ 'Cannot delete order!' => 'Kan order niet verwijderen!',
+ 'Cannot delete quotation!' => 'Kan offerte niet verwijderen!',
+ 'Cannot save order!' => 'Kan order niet opslaan!',
+ 'Cannot save quotation!' => 'Kan offerte niet opslaan!',
+ 'Cc' => 'Cc',
+ 'City' => 'Stad',
+ 'Closed' => 'Afgesloten',
+ 'Company Name' => 'Bedrijfsnaam',
+ 'Confirm!' => 'Bevestig!',
+ 'Consolidate Orders' => 'Samenvoegen Orders',
+ 'Consolidate Purchase Orders' => 'Samenvoegen Inkooporders',
+ 'Consolidate Sales Orders' => 'Samenvoegen Verkooporders',
+ 'Contact' => 'Contact',
+ 'Continue' => 'Verder',
+ 'Copies' => 'Kopieën',
+ 'Cost' => 'Kostprijs',
+ 'Could not save!' => 'Kon niet opslaan!',
+ 'Could not transfer Inventory!' => 'Kon geen Inventaris overboeken!',
+ 'Country' => 'Land',
+ 'Credit Limit' => 'Kredietlimiet',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valuta',
+ 'Current' => 'Huidig',
+ 'Customer' => 'Klant',
+ 'Customer Number' => 'Klantcode',
+ 'Customer missing!' => 'Klant ontbreekt!',
+ 'Customer not on file!' => 'Klant bestaat niet!',
+ 'Date' => 'Datum',
+ 'Date Received' => 'Ontvangstdatum',
+ 'Date received missing!' => 'Ontvangstdatum ontbreekt!',
+ 'Day(s)' => 'Dag(en)',
+ 'Dec' => 'dec',
+ 'December' => 'december',
+ 'Delete' => 'Verwijder',
+ 'Delete Schedule' => 'Inplanning Verwijderen',
+ 'Delivery Date' => 'Leverdatum',
+ 'Department' => 'Afdeling',
+ 'Description' => 'Omschrijving',
+ 'Done' => 'Klaar',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'E-mailadres ontbreekt!',
+ 'E-mail message' => 'E-mailbericht',
+ 'E-mailed' => 'Gemaild',
+ 'Edit Purchase Order' => 'Inkooporder Wijzigen',
+ 'Edit Quotation' => 'Offerte Wijzigen',
+ 'Edit Request for Quotation' => 'Prijsaanvraag Wijzigen',
+ 'Edit Sales Order' => 'Verkooporder Wijzigen',
+ 'Employee' => 'Werknemer',
+ 'Every' => 'Elke',
+ 'Exchange Rate' => 'Wisselkoers',
+ 'Exchange rate missing!' => 'Wisselkoers ontbreekt!',
+ 'Extended' => 'Uitgebreid',
+ 'Fax' => 'Fax',
+ 'Feb' => 'feb',
+ 'February' => 'februari',
+ 'For' => 'Gedurende',
+ 'From' => 'Van',
+ 'From Warehouse' => 'Van Magazijn',
+ 'Generate Orders' => 'Genereer Orders',
+ 'Generate Purchase Orders' => 'Genereer Aankooporders',
+ 'Generate Purchase Orders from Sales Order' => 'Genereer Aankooporders van Verkooporder',
+ 'Generate Sales Order' => 'Genereer Verkooporder',
+ 'Generate Sales Order from Purchase Orders' => 'Genereer Verkooporder van Aankooporders',
+ 'Group' => 'Productgroep',
+ 'ID' => 'ID',
+ 'In-line' => 'In Lijn',
+ 'Include Payment' => 'Inclusief Bedrag',
+ 'Include in Report' => 'Toevoegen aan Uitvoer',
+ 'Internal Notes' => 'Interne Opmerkingen',
+ 'Inventory saved!' => 'Voorraad opgeslagen!',
+ 'Inventory transferred!' => 'Voorraad overgeheveld!',
+ 'Invoice' => 'Factuur',
+ 'Invoice Date missing!' => 'Factuurdatum ontbreekt!',
+ 'Invoice Number missing!' => 'Factuurcode ontbreekt!',
+ 'Item' => 'Regel',
+ 'Item not on file!' => 'Dit onderdeel is niet in de database gevonden!',
+ 'Jan' => 'jan',
+ 'January' => 'januari',
+ 'Jul' => 'jul',
+ 'July' => 'juli',
+ 'Jun' => 'jun',
+ 'June' => 'juni',
+ 'Lead' => 'Doorloop',
+ 'Manager' => 'Manager',
+ 'Mar' => 'mrt',
+ 'March' => 'maart',
+ 'May' => 'mei',
+ 'May ' => 'mei ',
+ 'Message' => 'Boodschap',
+ 'Month' => 'Maand',
+ 'Month(s)' => 'Maand(en)',
+ 'Next Date' => 'Volgende Datum',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Opmerkingen',
+ 'Nothing entered!' => 'Niets ingevuld!',
+ 'Nothing selected!' => 'Niets geselecteerd!',
+ 'Nothing to transfer!' => 'Niets over te boeken!',
+ 'Nov' => 'nov',
+ 'November' => 'november',
+ 'Number' => 'Code',
+ 'Number missing in Row' => 'Code ontbreekt in Regel',
+ 'O' => 'O',
+ 'OH' => 'OH',
+ 'Oct' => 'okt',
+ 'October' => 'oktober',
+ 'Open' => 'Open',
+ 'Order' => 'Bestelling',
+ 'Order Date' => 'Orderdatum',
+ 'Order Date missing!' => 'Orderdatum ontbreekt!',
+ 'Order Number' => 'Referentie',
+ 'Order Number missing!' => 'Ordernummer ontbreekt!',
+ 'Order deleted!' => 'Order verwijderd!',
+ 'Order generation failed!' => 'Genereren order mislukt!',
+ 'Order saved!' => 'Order opgeslagen!',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'PO code',
+ 'Packing List' => 'Pakbon',
+ 'Packing List Date missing!' => 'Datum ontbreekt op de pakbon!',
+ 'Packing List Number missing!' => 'Nummer ontbreekt op de pakbon!',
+ 'Part' => 'Artikel',
+ 'Part Number' => 'Artikelcode',
+ 'Period' => 'Periode',
+ 'Phone' => 'Telefoon',
+ 'Pick List' => 'Uitsorteerbon',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Prijs',
+ 'Print' => 'Afdrukken',
+ 'Print and Save' => 'Afdrukken en Opslaan',
+ 'Print and Save as new' => 'Afdrukken en Sla op als nieuw',
+ 'Printed' => 'Afgedrukt',
+ 'Project' => 'Project',
+ 'Project not on file!' => 'Onbekend project!',
+ 'Purchase Order' => 'Inkooporder',
+ 'Purchase Orders' => 'Inkooporders',
+ 'Qty' => 'Aantal',
+ 'Quarter' => 'Kwartaal',
+ 'Queue' => 'Wachtrij',
+ 'Queued' => 'In Wachtrij Gezet',
+ 'Quotation' => 'Offerte',
+ 'Quotation ' => 'Offerte ',
+ 'Quotation Date' => 'Offertedatum',
+ 'Quotation Date missing!' => 'Offertedatum ontbreekt!',
+ 'Quotation Number' => 'Offertecode',
+ 'Quotation Number missing!' => 'Offertecode ontbreekt!',
+ 'Quotation deleted!' => 'Offerte verwijderd!',
+ 'Quotations' => 'Offertes',
+ 'RFQ' => 'Prijsaanvraag',
+ 'RFQ ' => 'Prijsaanvraag ',
+ 'RFQ Number' => 'Prijsaanvraagcode',
+ 'Recd' => 'Ontvangen',
+ 'Receive Merchandise' => 'Goederen Ontvangen',
+ 'Recurring Transaction' => 'Geplande Transactie',
+ 'Reference' => 'Referentie',
+ 'Remaining' => 'Resterend',
+ 'Repeat' => 'Herhaal',
+ 'Req' => 'Gevr',
+ 'Request for Quotation' => 'Prijsaanvraag',
+ 'Request for Quotations' => 'Prijsaanvragen',
+ 'Required by' => 'Nodig voor',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Verkoopfactuur',
+ 'Sales Order' => 'Verkooporder',
+ 'Sales Orders' => 'Verkooporders',
+ 'Salesperson' => 'Verkoper',
+ 'Save' => 'Opslaan',
+ 'Save Schedule' => 'Planning Opslaan',
+ 'Save as new' => 'Opslaan als nieuw',
+ 'Schedule' => 'Inplannen',
+ 'Scheduled' => 'Ingepland',
+ 'Screen' => 'Scherm',
+ 'Select Vendor' => 'Selecteer Leverancier',
+ 'Select a Printer!' => 'Selecteer een Printer',
+ 'Select from one of the names below' => 'Kies een van de onderstaande namen',
+ 'Select from one of the projects below' => 'Kies een van de onderstaande projecten',
+ 'Select items' => 'Selecteer artikelen',
+ 'Select postscript or PDF!' => 'Kies postscript of PDF!',
+ 'Select txt, postscript or PDF!' => 'Kiest txt, postscript of PDF!',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Serial No.' => 'Serienr',
+ 'Service' => 'Dienst',
+ 'Ship' => 'Verzenden',
+ 'Ship Merchandise' => 'Goederen Verzenden',
+ 'Ship to' => 'Verzenden aan',
+ 'Ship via' => 'Verzenden via',
+ 'Shipping Address' => 'Verzendadres',
+ 'Shipping Date' => 'Verzenddatum',
+ 'Shipping Date missing!' => 'Verzenddatum ontbreekt!',
+ 'Shipping Point' => 'Verzendpunt',
+ 'Startdate' => 'Begindatum',
+ 'State/Province' => 'Staat/Provincie',
+ 'Subject' => 'Onderwerp',
+ 'Subtotal' => 'Subtotaal',
+ 'Tax' => 'Belasting',
+ 'Tax Included' => 'Belasting Inbegrepen',
+ 'Terms' => 'Betalingstermijn',
+ 'Text' => 'Tekst',
+ 'To' => 'Tot',
+ 'To Warehouse' => 'Naar Magazijn',
+ 'Total' => 'Totaal',
+ 'Trade Discount' => 'Handelskorting',
+ 'Transfer' => 'Overboeking',
+ 'Transfer Inventory' => 'Inventaris overboeken',
+ 'Transfer from' => 'Overdragen van',
+ 'Transfer to' => 'Overboeken naar',
+ 'Translation not on file!' => 'Vertaling niet beschikbaar!',
+ 'Unit' => 'Eenheid',
+ 'Update' => 'Bijwerken',
+ 'Valid until' => 'Geldig tot',
+ 'Vendor' => 'Leverancier',
+ 'Vendor Invoice' => 'Inkoopfactuur',
+ 'Vendor Number' => 'Leveranciercode',
+ 'Vendor missing!' => 'Leverancier ontbreekt!',
+ 'Vendor not on file!' => 'Leverancier bestaat niet!',
+ 'Warehouse' => 'Magazijn',
+ 'Warning!' => 'Waarschuwing!',
+ 'Week(s)' => 'Week/Weken',
+ 'What type of item is this?' => 'Wat voor soort artikel is dit?',
+ 'Work Order' => 'Werkorder',
+ 'Year' => 'Jaar',
+ 'Year(s)' => 'Jaar/Jaren',
+ 'Yes' => 'Ja',
+ 'You are posting an existing transaction!' => 'U boekt een bestaande transactie!',
+ 'You are printing and posting an existing transaction!' => 'U print en boekt een bestaande transactie!',
+ 'You are printing and saving an existing order' => 'U print een bestaande order en slaat deze daarna op',
+ 'You are printing and saving an existing quotation' => 'U print een bestaande offerte en slaat deze daarna op',
+ 'You are saving an existing order' => 'U slaat een bestaande order op',
+ 'You are saving an existing quotation' => 'U slaat een bestaande offerte op',
+ 'Zip/Postal Code' => 'Postcode',
+ 'days' => 'dagen',
+ 'ea' => 'p.st.',
+ 'for' => 'gedurende',
+ 'sent' => 'verzonden',
+ 'time(s)' => 'keer',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'samenvoegen_orders' => 'consolidate_orders',
+ 'verder' => 'continue',
+ 'verwijder' => 'delete',
+ 'inplanning_verwijderen' => 'delete_schedule',
+ 'klaar' => 'done',
+ 'e_mail' => 'e_mail',
+ 'genereer_orders' => 'generate_orders',
+ 'genereer_aankooporders' => 'generate_purchase_orders',
+ 'genereer_verkooporder' => 'generate_sales_order',
+ 'afdrukken' => 'print',
+ 'afdrukken_en_opslaan' => 'print_and_save',
+ 'afdrukken_en_sla_op_als_nieuw' => 'print_and_save_as_new',
+ 'inkooporder' => 'purchase_order',
+ 'offerte' => 'quotation',
+ 'offerte_' => 'quotation_',
+ 'prijsaanvraag' => 'rfq',
+ 'prijsaanvraag_' => 'rfq_',
+ 'verkoopfactuur' => 'sales_invoice',
+ 'verkooporder' => 'sales_order',
+ 'opslaan' => 'save',
+ 'planning_opslaan' => 'save_schedule',
+ 'opslaan_als_nieuw' => 'save_as_new',
+ 'inplannen' => 'schedule',
+ 'selecteer_leverancier' => 'select_vendor',
+ 'verzenden_aan' => 'ship_to',
+ 'overboeking' => 'transfer',
+ 'bijwerken' => 'update',
+ 'inkoopfactuur' => 'vendor_invoice',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/nl/op b/locale/nl/op
new file mode 100755
index 00000000..35cacd6a
--- /dev/null
+++ b/locale/nl/op
@@ -0,0 +1,149 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Boekhoudmenu',
+ 'Add Exchange Rate' => 'Wisselkoers Toevoegen',
+ 'Add Sales Invoice' => 'Verkoopfactuur Toevoegen',
+ 'Add Vendor Invoice' => 'Inkoopfactuur Toevoegen',
+ 'Amount' => 'Bedrag',
+ 'Are you sure you want to delete Order Number' => 'Weet u zeker dat u dit ordernummer wilt verwijderen?',
+ 'Are you sure you want to delete Quotation Number' => 'Weet u zeker dat u dit offertenummer wilt verwijderen?',
+ 'Bin' => 'Vergaarbak',
+ 'C' => 'C',
+ 'Cannot delete order!' => 'Kan order niet verwijderen!',
+ 'Cannot delete quotation!' => 'Kan offerte niet verwijderen!',
+ 'Cannot save order!' => 'Kan order niet opslaan!',
+ 'Cannot save quotation!' => 'Kan offerte niet opslaan!',
+ 'Closed' => 'Afgesloten',
+ 'Confirm!' => 'Bevestig!',
+ 'Contact' => 'Contact',
+ 'Continue' => 'Verder',
+ 'Could not save!' => 'Kon niet opslaan!',
+ 'Could not transfer Inventory!' => 'Kon geen Inventaris overboeken!',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valuta',
+ 'Current' => 'Huidig',
+ 'Customer' => 'Klant',
+ 'Customer missing!' => 'Klant ontbreekt!',
+ 'Date' => 'Datum',
+ 'Date Received' => 'Ontvangstdatum',
+ 'Date received missing!' => 'Ontvangstdatum ontbreekt!',
+ 'Department' => 'Afdeling',
+ 'Description' => 'Omschrijving',
+ 'Done' => 'Klaar',
+ 'E-mail' => 'E-mail',
+ 'Employee' => 'Werknemer',
+ 'Exchange Rate' => 'Wisselkoers',
+ 'Exchange rate missing!' => 'Wisselkoers ontbreekt!',
+ 'From' => 'Van',
+ 'Group' => 'Productgroep',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Toevoegen aan Uitvoer',
+ 'Inventory saved!' => 'Voorraad opgeslagen!',
+ 'Inventory transferred!' => 'Voorraad overgeheveld!',
+ 'Manager' => 'Manager',
+ 'Month' => 'Maand',
+ 'Nothing entered!' => 'Niets ingevuld!',
+ 'Nothing to transfer!' => 'Niets over te boeken!',
+ 'Number' => 'Code',
+ 'O' => 'O',
+ 'Open' => 'Open',
+ 'Order' => 'Bestelling',
+ 'Order Date' => 'Orderdatum',
+ 'Order Date missing!' => 'Orderdatum ontbreekt!',
+ 'Order Number' => 'Referentie',
+ 'Order Number missing!' => 'Ordernummer ontbreekt!',
+ 'Order deleted!' => 'Order verwijderd!',
+ 'Order saved!' => 'Order opgeslagen!',
+ 'Partnumber' => 'Artikelcode',
+ 'Period' => 'Periode',
+ 'Print' => 'Afdrukken',
+ 'Purchase Order' => 'Inkooporder',
+ 'Purchase Orders' => 'Inkooporders',
+ 'Qty' => 'Aantal',
+ 'Quarter' => 'Kwartaal',
+ 'Quotation' => 'Offerte',
+ 'Quotation ' => 'Offerte ',
+ 'Quotation Date missing!' => 'Offertedatum ontbreekt!',
+ 'Quotation Number missing!' => 'Offertecode ontbreekt!',
+ 'Quotation deleted!' => 'Offerte verwijderd!',
+ 'Quotations' => 'Offertes',
+ 'RFQ ' => 'Prijsaanvraag ',
+ 'Recd' => 'Ontvangen',
+ 'Receive Merchandise' => 'Goederen Ontvangen',
+ 'Request for Quotation' => 'Prijsaanvraag',
+ 'Request for Quotations' => 'Prijsaanvragen',
+ 'Required by' => 'Nodig voor',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Verkooporder',
+ 'Sales Orders' => 'Verkooporders',
+ 'Salesperson' => 'Verkoper',
+ 'Select Printer or Queue!' => 'Selecteer de Printer of Wachtrij',
+ 'Select postscript or PDF!' => 'Kies postscript of PDF!',
+ 'Serial No.' => 'Serienr',
+ 'Ship' => 'Verzenden',
+ 'Ship Merchandise' => 'Goederen Verzenden',
+ 'Ship to' => 'Verzenden aan',
+ 'Ship via' => 'Verzenden via',
+ 'Shipping Date' => 'Verzenddatum',
+ 'Shipping Date missing!' => 'Verzenddatum ontbreekt!',
+ 'Shipping Point' => 'Verzendpunt',
+ 'Subtotal' => 'Subtotaal',
+ 'Tax' => 'Belasting',
+ 'To' => 'Tot',
+ 'Total' => 'Totaal',
+ 'Transfer' => 'Overboeking',
+ 'Transfer Inventory' => 'Inventaris overboeken',
+ 'Transfer to' => 'Overboeken naar',
+ 'Unit' => 'Eenheid',
+ 'Update' => 'Bijwerken',
+ 'Vendor' => 'Leverancier',
+ 'Vendor missing!' => 'Leverancier ontbreekt!',
+ 'Warehouse' => 'Magazijn',
+ 'Year' => 'Jaar',
+ 'Yes' => 'Ja',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'create_backorder' => 'create_backorder',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'invoice' => 'invoice',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'quotation_' => 'quotation_',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'ship_receive' => 'ship_receive',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'yes' => 'yes',
+ 'verder' => 'continue',
+ 'klaar' => 'done',
+ 'e_mail' => 'e_mail',
+ 'afdrukken' => 'print',
+ 'inkooporder' => 'purchase_order',
+ 'offerte_' => 'quotation_',
+ 'prijsaanvraag_' => 'rfq_',
+ 'verkooporder' => 'sales_order',
+ 'verzenden_aan' => 'ship_to',
+ 'overboeking' => 'transfer',
+ 'bijwerken' => 'update',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/nl/pe b/locale/nl/pe
new file mode 100755
index 00000000..0f949961
--- /dev/null
+++ b/locale/nl/pe
@@ -0,0 +1,166 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Boekhoudmenu',
+ 'Active' => 'Actief',
+ 'Add' => 'Toevoegen',
+ 'Add Group' => 'Productgroep Toevoegen',
+ 'Add Job' => 'Job Toevoegen',
+ 'Add Pricegroup' => 'Prijsgroep Toevoegen',
+ 'Add Project' => 'Project Toevoegen',
+ 'Address' => 'Adres',
+ 'All' => 'Allemaal',
+ 'Amount' => 'Bedrag',
+ 'As of' => 'Vanaf',
+ 'Assembly' => 'Assemblage',
+ 'Assembly stocked!' => 'Assemblage ingeslagen!',
+ 'Bin' => 'Vergaarbak',
+ 'Cannot stock Assembly!' => 'Kan assemblage niet inslaan',
+ 'Completed' => 'Voltooid',
+ 'Continue' => 'Verder',
+ 'Current' => 'Huidig',
+ 'Customer' => 'Klant',
+ 'Customer missing!' => 'Klant ontbreekt!',
+ 'Customer not on file!' => 'Klant bestaat niet!',
+ 'Date' => 'Datum',
+ 'Delete' => 'Verwijder',
+ 'Description' => 'Omschrijving',
+ 'Description Translations' => 'Vertalingen Omschrijving',
+ 'Detail' => 'Detail',
+ 'Edit Description Translations' => 'Vertalingen Omschrijving Wijzigen',
+ 'Edit Group' => 'Productgroep Wijzigen',
+ 'Edit Job' => 'Job Wijzigen',
+ 'Edit Pricegroup' => 'Prijsgroep Wijzigen ',
+ 'Edit Project' => 'Project Wijzigen',
+ 'Employee' => 'Werknemer',
+ 'Enddate' => 'Einddatum',
+ 'Failed to save order!' => 'Order opslaan mislukt!',
+ 'From' => 'Van',
+ 'Generate Sales Orders' => 'Genereer Verkooporders',
+ 'Group' => 'Productgroep',
+ 'Group Translations' => 'Vertaling Productgroep',
+ 'Group deleted!' => 'Productgroep verwijderd!',
+ 'Group missing!' => 'Productgroep ontbreekt!',
+ 'Group saved!' => 'Productgroep opgeslagen!',
+ 'Groups' => 'Productgroepen',
+ 'Inactive' => 'Inactief',
+ 'Income' => 'Inkomsten',
+ 'Job' => 'Job',
+ 'Job Number' => 'Jobcode',
+ 'Job deleted!' => 'Job verwijderd!',
+ 'Job saved!' => 'Job opgeslagen!',
+ 'Jobs' => 'Jobs',
+ 'Language' => 'Taal',
+ 'Languages not defined!' => 'Talen niet gedefinieerd!',
+ 'Link Accounts' => 'Rekeningen Verbinden',
+ 'List Price' => 'Catalogusprijs',
+ 'Month' => 'Maand',
+ 'No open Projects!' => 'Geen open Projecten!',
+ 'Notes' => 'Opmerkingen',
+ 'Nothing selected!' => 'Niets geselecteerd!',
+ 'Number' => 'Code',
+ 'Orders generated!' => 'Orders gegenereerd!',
+ 'Orphaned' => 'Wees',
+ 'Part Number' => 'Artikelcode',
+ 'Period' => 'Periode',
+ 'Pricegroup' => 'Prijsgroep',
+ 'Pricegroup deleted!' => 'Prijsgroep verwijderd!',
+ 'Pricegroup missing!' => 'Prijsgroep ontbreekt!',
+ 'Pricegroup saved!' => 'Prijsgroep opgeslagen!',
+ 'Pricegroups' => 'Prijsgroepen',
+ 'Production' => 'Productie',
+ 'Project' => 'Project',
+ 'Project Description Translations' => 'Vertalingen Projectomschrijving',
+ 'Project Number' => 'Projectcode',
+ 'Project deleted!' => 'Project verwijderd!',
+ 'Project saved!' => 'Project opgeslagen!',
+ 'Projects' => 'Projecten',
+ 'Qty' => 'Aantal',
+ 'Quarter' => 'Kwartaal',
+ 'Save' => 'Opslaan',
+ 'Select Customer' => 'Selecteer Klant',
+ 'Select from one of the names below' => 'Kies een van de onderstaande namen',
+ 'Sell Price' => 'Verkoopprijs',
+ 'Service Code' => 'Dienstcode',
+ 'Startdate' => 'Begindatum',
+ 'Stock Finished Goods' => 'Inslaan Afgewerkte Goederen',
+ 'Summary' => 'Overzicht',
+ 'Tax' => 'Belasting',
+ 'To' => 'Tot',
+ 'Transaction Dates' => 'Transactiedatums',
+ 'Translation' => 'Vertaling',
+ 'Translation deleted!' => 'Vertaling verwijderd!',
+ 'Translations saved!' => 'Vertalingen opgeslagen!',
+ 'Unit' => 'Eenheid',
+ 'Update' => 'Bijwerken',
+ 'Updated' => 'Bijgewerkt',
+ 'Vendor' => 'Leverancier',
+ 'Vendor not on file!' => 'Leverancier bestaat niet!',
+ 'Weight' => 'Gewicht',
+ 'Year' => 'Jaar',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'productgroep_toevoegen' => 'add_group',
+ 'job_toevoegen' => 'add_job',
+ 'prijsgroep_toevoegen' => 'add_pricegroup',
+ 'project_toevoegen' => 'add_project',
+ 'verder' => 'continue',
+ 'verwijder' => 'delete',
+ 'genereer_verkooporders' => 'generate_sales_orders',
+ 'opslaan' => 'save',
+ 'selecteer_klant' => 'select_customer',
+ 'bijwerken' => 'update',
+};
+
+1;
+
diff --git a/locale/nl/pos b/locale/nl/pos
new file mode 100755
index 00000000..ee251dbe
--- /dev/null
+++ b/locale/nl/pos
@@ -0,0 +1,81 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Boekhoudmenu',
+ 'Add POS Invoice' => 'Kassaverkoop Toevoegen',
+ 'Amount' => 'Bedrag',
+ 'Business' => 'Branche',
+ 'Cannot post transaction!' => 'Kan transactie niet boeken!',
+ 'Change' => 'Wijzig',
+ 'Continue' => 'Verder',
+ 'Credit Limit' => 'Kredietlimiet',
+ 'Currency' => 'Valuta',
+ 'Current' => 'Huidig',
+ 'Customer' => 'Klant',
+ 'Customer missing!' => 'Klant ontbreekt!',
+ 'Delete' => 'Verwijder',
+ 'Department' => 'Afdeling',
+ 'Description' => 'Omschrijving',
+ 'Edit POS Invoice' => 'Kassaorder Wijzigen',
+ 'Exchange Rate' => 'Wisselkoers',
+ 'Exchange rate missing!' => 'Wisselkoers ontbreekt!',
+ 'Extended' => 'Uitgebreid',
+ 'From' => 'Van',
+ 'Language' => 'Taal',
+ 'Memo' => 'Memo',
+ 'Month' => 'Maand',
+ 'Number' => 'Code',
+ 'Open' => 'Open',
+ 'Period' => 'Periode',
+ 'Post' => 'Inboeken',
+ 'Posted!' => 'Ingeboekt!',
+ 'Price' => 'Prijs',
+ 'Print' => 'Afdrukken',
+ 'Print and Post' => 'Afdrukken en Inboeken',
+ 'Printed' => 'Afgedrukt',
+ 'Qty' => 'Aantal',
+ 'Quarter' => 'Kwartaal',
+ 'Receipts' => 'Ontvangstbewijzen',
+ 'Record in' => 'Boeken op',
+ 'Remaining' => 'Resterend',
+ 'Salesperson' => 'Verkoper',
+ 'Screen' => 'Scherm',
+ 'Select a Printer!' => 'Selecteer een Printer',
+ 'Source' => 'Herkomst',
+ 'Subtotal' => 'Subtotaal',
+ 'Tax Included' => 'Belasting Inbegrepen',
+ 'To' => 'Tot',
+ 'Total' => 'Totaal',
+ 'Trade Discount' => 'Handelskorting',
+ 'Unit' => 'Eenheid',
+ 'Update' => 'Bijwerken',
+ 'Year' => 'Jaar',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'verder' => 'continue',
+ 'verwijder' => 'delete',
+ 'inboeken' => 'post',
+ 'afdrukken' => 'print',
+ 'afdrukken_en_inboeken' => 'print_and_post',
+ 'bijwerken' => 'update',
+};
+
+1;
+
diff --git a/locale/nl/ps b/locale/nl/ps
new file mode 100755
index 00000000..d3936933
--- /dev/null
+++ b/locale/nl/ps
@@ -0,0 +1,397 @@
+$self{texts} = {
+ 'AP Aging' => 'Ouderdomsoverzicht Crediteuren',
+ 'AP Outstanding' => 'Openstaande Crediteuren',
+ 'AP Transaction' => 'Crediteurenboeking',
+ 'AP Transactions' => 'Crediteurenboekingen',
+ 'AR Aging' => 'Ouderdomsoverzicht Debiteuren',
+ 'AR Outstanding' => 'Openstaande Debiteuren',
+ 'AR Transaction' => 'Debiteurenboeking',
+ 'AR Transactions' => 'Debiteurenboekingen',
+ 'Account' => 'Rekening',
+ 'Account Number' => 'Rekeningnummer',
+ 'Accounting Menu' => 'Boekhoudmenu',
+ 'Accounts' => 'Rekeningen',
+ 'Accrual' => 'Transactie',
+ 'Add AP Transaction' => 'Crediteurenboeking Toevoegen',
+ 'Add AR Transaction' => 'Debiteurenboeking Toevoegen',
+ 'Add POS Invoice' => 'Kassaverkoop Toevoegen',
+ 'Add Purchase Order' => 'Inkooporder Toevoegen',
+ 'Add Quotation' => 'Offerte Toevoegen',
+ 'Add Request for Quotation' => 'Prijsaanvraag Toevoegen',
+ 'Add Sales Invoice' => 'Verkoopfactuur Toevoegen',
+ 'Add Sales Order' => 'Verkooporder Toevoegen',
+ 'Address' => 'Adres',
+ 'Aged' => 'Ouderdom',
+ 'Aged Overdue' => 'Achterstallig',
+ 'All Accounts' => 'Alle Rekeningen',
+ 'Amount' => 'Bedrag',
+ 'Amount Due' => 'Verschuldigd Bedrag',
+ 'Apr' => 'apr',
+ 'April' => 'april',
+ 'Are you sure you want to delete Invoice Number' => 'Weet u zeker dat u dit factuurnummer wilt verwijderen?',
+ 'Are you sure you want to delete Transaction' => 'Weet u zeker dat u deze boeking wilt verwijderen?',
+ 'Attachment' => 'Bijlage',
+ 'Aug' => 'aug',
+ 'August' => 'augustus',
+ 'Balance' => 'Saldo',
+ 'Balance Sheet' => 'Balans',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Facturatieadres',
+ 'Bin' => 'Vergaarbak',
+ 'Bin List' => 'Vergaarlijst',
+ 'Business' => 'Branche',
+ 'Cannot delete invoice!' => 'Kan factuur niet verwijderen!',
+ 'Cannot delete transaction!' => 'Kan boeking niet verwijderen!',
+ 'Cannot post invoice for a closed period!' => 'Kan geen factuur boeken in afgesloten periode!',
+ 'Cannot post invoice!' => 'Kan factuur niet boeken!',
+ 'Cannot post payment for a closed period!' => 'Kan geen betaling boeken voor afgesloten periode!',
+ 'Cannot post transaction for a closed period!' => 'Kan geen boeking maken in afgesloten periode',
+ 'Cannot post transaction!' => 'Kan transactie niet boeken!',
+ 'Cash' => 'Kas',
+ 'Cc' => 'Cc',
+ 'Change' => 'Wijzig',
+ 'Check' => 'Cheque',
+ 'City' => 'Stad',
+ 'Closed' => 'Afgesloten',
+ 'Company Name' => 'Bedrijfsnaam',
+ 'Compare to' => 'Vergelijk met',
+ 'Confirm!' => 'Bevestig!',
+ 'Contact' => 'Contact',
+ 'Continue' => 'Verder',
+ 'Copies' => 'Kopieën',
+ 'Country' => 'Land',
+ 'Credit' => 'Credit',
+ 'Credit Limit' => 'Kredietlimiet',
+ 'Curr' => 'Val.',
+ 'Currency' => 'Valuta',
+ 'Current' => 'Huidig',
+ 'Current Earnings' => 'Huidige Winst',
+ 'Customer' => 'Klant',
+ 'Customer Number' => 'Klantcode',
+ 'Customer missing!' => 'Klant ontbreekt!',
+ 'Customer not on file!' => 'Klant bestaat niet!',
+ 'Date' => 'Datum',
+ 'Date Paid' => 'Betaaldatum',
+ 'Day(s)' => 'Dag(en)',
+ 'Debit' => 'Debet',
+ 'Dec' => 'dec',
+ 'December' => 'december',
+ 'Decimalplaces' => 'Decimalen',
+ 'Delete' => 'Verwijder',
+ 'Delete Schedule' => 'Inplanning Verwijderen',
+ 'Delivery Date' => 'Leverdatum',
+ 'Department' => 'Afdeling',
+ 'Description' => 'Omschrijving',
+ 'Detail' => 'Detail',
+ 'Due Date' => 'Vervaldatum',
+ 'Due Date missing!' => 'Vervaldatum ontbreekt!',
+ 'E-mail' => 'E-mail',
+ 'E-mail Statement to' => 'E-mail Overzicht aan',
+ 'E-mail address missing!' => 'E-mailadres ontbreekt!',
+ 'E-mail message' => 'E-mailbericht',
+ 'E-mailed' => 'Gemaild',
+ 'Edit AP Transaction' => 'Crediteurenboeking Wijzigen',
+ 'Edit AR Transaction' => 'Debiteurenboeking Wijzigen',
+ 'Edit POS Invoice' => 'Kassaorder Wijzigen',
+ 'Edit Sales Invoice' => 'Verkoopfactuur Wijzigen',
+ 'Employee' => 'Werknemer',
+ 'Every' => 'Elke',
+ 'Exch' => 'Wissel',
+ 'Exchange Rate' => 'Wisselkoers',
+ 'Exchange rate for payment missing!' => 'Wisselkoers voor betaling ontbreekt!',
+ 'Exchange rate missing!' => 'Wisselkoers ontbreekt!',
+ 'Extended' => 'Uitgebreid',
+ 'Fax' => 'Fax',
+ 'Feb' => 'feb',
+ 'February' => 'februari',
+ 'For' => 'Gedurende',
+ 'From' => 'Van',
+ 'GIFI' => 'GIFI',
+ 'Group' => 'Productgroep',
+ 'Heading' => 'Kopregel',
+ 'ID' => 'ID',
+ 'In-line' => 'In Lijn',
+ 'Include Exchange Rate Difference' => 'Inclusief Wisselkoersverschil',
+ 'Include Payment' => 'Inclusief Bedrag',
+ 'Include in Report' => 'Toevoegen aan Uitvoer',
+ 'Income Statement' => 'Resultatenrekening',
+ 'Internal Notes' => 'Interne Opmerkingen',
+ 'Invoice' => 'Factuur',
+ 'Invoice Date' => 'Factuurdatum',
+ 'Invoice Date missing!' => 'Factuurdatum ontbreekt!',
+ 'Invoice Number' => 'Factuurcode',
+ 'Invoice Number missing!' => 'Factuurcode ontbreekt!',
+ 'Invoice deleted!' => 'Factuur verwijderd!',
+ 'Item' => 'Regel',
+ 'Item not on file!' => 'Dit onderdeel is niet in de database gevonden!',
+ 'Jan' => 'jan',
+ 'January' => 'januari',
+ 'Jul' => 'jul',
+ 'July' => 'juli',
+ 'Jun' => 'jun',
+ 'June' => 'juni',
+ 'Language' => 'Taal',
+ 'Manager' => 'Manager',
+ 'Mar' => 'mrt',
+ 'March' => 'maart',
+ 'May' => 'mei',
+ 'May ' => 'mei ',
+ 'Memo' => 'Memo',
+ 'Message' => 'Boodschap',
+ 'Method' => 'Gebruikt Stelsel',
+ 'Month' => 'Maand',
+ 'Month(s)' => 'Maand(en)',
+ 'N/A' => 'N/A',
+ 'Next Date' => 'Volgende Datum',
+ 'No.' => 'Nr.',
+ 'Non-taxable Purchases' => 'Onbelaste Aankopen',
+ 'Non-taxable Sales' => 'Onbelaste Verkopen',
+ 'Notes' => 'Opmerkingen',
+ 'Nothing selected!' => 'Niets geselecteerd!',
+ 'Nothing to print!' => 'Niets af te drukken!',
+ 'Nov' => 'nov',
+ 'November' => 'november',
+ 'Number' => 'Code',
+ 'Number missing in Row' => 'Code ontbreekt in Regel',
+ 'OH' => 'OH',
+ 'Oct' => 'okt',
+ 'October' => 'oktober',
+ 'Open' => 'Open',
+ 'Order' => 'Bestelling',
+ 'Order Date missing!' => 'Orderdatum ontbreekt!',
+ 'Order Number' => 'Referentie',
+ 'Order Number missing!' => 'Ordernummer ontbreekt!',
+ 'Overdue' => 'Achterstallig',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'PO code',
+ 'Packing List' => 'Pakbon',
+ 'Packing List Date missing!' => 'Datum ontbreekt op de pakbon!',
+ 'Packing List Number missing!' => 'Nummer ontbreekt op de pakbon!',
+ 'Paid' => 'Betaald',
+ 'Part' => 'Artikel',
+ 'Payment date missing!' => 'Geen betalingsdatum aanwezig!',
+ 'Payments' => 'Betalingen',
+ 'Period' => 'Periode',
+ 'Phone' => 'Telefoon',
+ 'Pick List' => 'Uitsorteerbon',
+ 'Post' => 'Inboeken',
+ 'Post as new' => 'Inboeken als nieuw',
+ 'Posted!' => 'Ingeboekt!',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Prijs',
+ 'Print' => 'Afdrukken',
+ 'Print and Post' => 'Afdrukken en Inboeken',
+ 'Print and Post as new' => 'Afdrukken en Boek als nieuw',
+ 'Printed' => 'Afgedrukt',
+ 'Project' => 'Project',
+ 'Project Number' => 'Projectcode',
+ 'Project Transactions' => 'Projectboekingen',
+ 'Project not on file!' => 'Onbekend project!',
+ 'Purchase Order' => 'Inkooporder',
+ 'Qty' => 'Aantal',
+ 'Quarter' => 'Kwartaal',
+ 'Queue' => 'Wachtrij',
+ 'Queued' => 'In Wachtrij Gezet',
+ 'Quotation' => 'Offerte',
+ 'Quotation Date missing!' => 'Offertedatum ontbreekt!',
+ 'Quotation Number missing!' => 'Offertecode ontbreekt!',
+ 'Recd' => 'Ontvangen',
+ 'Receipt' => 'Ontvangstbewijs',
+ 'Receipts' => 'Ontvangstbewijzen',
+ 'Record in' => 'Boeken op',
+ 'Recurring Transaction' => 'Geplande Transactie',
+ 'Reference' => 'Referentie',
+ 'Remaining' => 'Resterend',
+ 'Repeat' => 'Herhaal',
+ 'Report for' => 'Rapport voor',
+ 'Required by' => 'Nodig voor',
+ 'SKU' => 'SKU',
+ 'Sales Invoice.' => 'Verkoopfactuur.',
+ 'Sales Order' => 'Verkooporder',
+ 'Salesperson' => 'Verkoper',
+ 'Save Schedule' => 'Planning Opslaan',
+ 'Schedule' => 'Inplannen',
+ 'Scheduled' => 'Ingepland',
+ 'Screen' => 'Scherm',
+ 'Select a Printer!' => 'Selecteer een Printer',
+ 'Select all' => 'Selecteer alles',
+ 'Select from one of the names below' => 'Kies een van de onderstaande namen',
+ 'Select from one of the projects below' => 'Kies een van de onderstaande projecten',
+ 'Select items' => 'Selecteer artikelen',
+ 'Select payment' => 'Kies een betaling',
+ 'Select postscript or PDF!' => 'Kies postscript of PDF!',
+ 'Select txt, postscript or PDF!' => 'Kiest txt, postscript of PDF!',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Serial No.' => 'Serienr',
+ 'Service' => 'Dienst',
+ 'Ship' => 'Verzenden',
+ 'Ship to' => 'Verzenden aan',
+ 'Ship via' => 'Verzenden via',
+ 'Shipping Address' => 'Verzendadres',
+ 'Shipping Point' => 'Verzendpunt',
+ 'Source' => 'Herkomst',
+ 'Standard' => 'Standaard',
+ 'Startdate' => 'Begindatum',
+ 'State/Province' => 'Staat/Provincie',
+ 'Statement' => 'Overzicht',
+ 'Statement sent to' => 'Overzicht verzonden aan',
+ 'Statements sent to printer!' => 'Overzichten naar de printer gestuurd!',
+ 'Subject' => 'Onderwerp',
+ 'Subtotal' => 'Subtotaal',
+ 'Summary' => 'Overzicht',
+ 'Tax' => 'Belasting',
+ 'Tax Included' => 'Belasting Inbegrepen',
+ 'Tax collected' => 'Geïnde belasting',
+ 'Tax paid' => 'Betaalde belasting',
+ 'Text' => 'Tekst',
+ 'Till' => 'Kassa',
+ 'To' => 'Tot',
+ 'Total' => 'Totaal',
+ 'Trade Discount' => 'Handelskorting',
+ 'Transaction' => 'Boeking',
+ 'Transaction deleted!' => 'Boeking verwijderd!',
+ 'Transaction posted!' => 'Boeking opgeslagen!',
+ 'Translation not on file!' => 'Vertaling niet beschikbaar!',
+ 'Trial Balance' => 'Proefbalans',
+ 'Unit' => 'Eenheid',
+ 'Update' => 'Bijwerken',
+ 'Vendor' => 'Leverancier',
+ 'Vendor Invoice.' => 'Inkoopfactuur.',
+ 'Vendor Number' => 'Leveranciercode',
+ 'Vendor missing!' => 'Leverancier ontbreekt!',
+ 'Vendor not on file!' => 'Leverancier bestaat niet!',
+ 'Warning!' => 'Waarschuwing!',
+ 'Week(s)' => 'Week/Weken',
+ 'What type of item is this?' => 'Wat voor soort artikel is dit?',
+ 'Work Order' => 'Werkorder',
+ 'Year' => 'Jaar',
+ 'Year(s)' => 'Jaar/Jaren',
+ 'Yes' => 'Ja',
+ 'You are posting an existing transaction!' => 'U boekt een bestaande transactie!',
+ 'You are printing and posting an existing transaction!' => 'U print en boekt een bestaande transactie!',
+ 'You are printing and saving an existing order' => 'U print een bestaande order en slaat deze daarna op',
+ 'You are printing and saving an existing quotation' => 'U print een bestaande offerte en slaat deze daarna op',
+ 'You are saving an existing order' => 'U slaat een bestaande order op',
+ 'You are saving an existing quotation' => 'U slaat een bestaande offerte op',
+ 'Zip/Postal Code' => 'Postcode',
+ 'as at' => 'per',
+ 'ea' => 'p.st.',
+ 'for' => 'gedurende',
+ 'for Period' => 'voor Periode',
+ 'posted!' => 'opgeslagen!',
+ 'sent' => 'verzonden',
+ 'time(s)' => 'keer',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'crediteurenboeking' => 'ap_transaction',
+ 'debiteurenboeking' => 'ar_transaction',
+ 'verder' => 'continue',
+ 'verwijder' => 'delete',
+ 'inplanning_verwijderen' => 'delete_schedule',
+ 'e_mail' => 'e_mail',
+ 'inboeken' => 'post',
+ 'inboeken_als_nieuw' => 'post_as_new',
+ 'afdrukken' => 'print',
+ 'afdrukken_en_inboeken' => 'print_and_post',
+ 'afdrukken_en_boek_als_nieuw' => 'print_and_post_as_new',
+ 'verkoopfactuur_' => 'sales_invoice_',
+ 'verkooporder' => 'sales_order',
+ 'planning_opslaan' => 'save_schedule',
+ 'inplannen' => 'schedule',
+ 'selecteer_alles' => 'select_all',
+ 'verzenden_aan' => 'ship_to',
+ 'bijwerken' => 'update',
+ 'inkoopfactuur_' => 'vendor_invoice_',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/nl/pw b/locale/nl/pw
new file mode 100755
index 00000000..4775e6b4
--- /dev/null
+++ b/locale/nl/pw
@@ -0,0 +1,13 @@
+$self{texts} = {
+ 'Continue' => 'Verder',
+ 'Password' => 'Wachtwoord',
+ 'Session expired!' => 'Sessie verlopen!',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'verder' => 'continue',
+};
+
+1;
+
diff --git a/locale/nl/rc b/locale/nl/rc
new file mode 100755
index 00000000..31399023
--- /dev/null
+++ b/locale/nl/rc
@@ -0,0 +1,79 @@
+$self{texts} = {
+ 'Account' => 'Rekening',
+ 'Accounting Menu' => 'Boekhoudmenu',
+ 'Apr' => 'apr',
+ 'April' => 'april',
+ 'Aug' => 'aug',
+ 'August' => 'augustus',
+ 'Balance' => 'Saldo',
+ 'Beginning Balance' => 'Beginsaldo',
+ 'Cleared' => 'Opgeschoond',
+ 'Continue' => 'Verder',
+ 'Credit' => 'Credit',
+ 'Current' => 'Huidig',
+ 'Date' => 'Datum',
+ 'Debit' => 'Debet',
+ 'Dec' => 'dec',
+ 'December' => 'december',
+ 'Description' => 'Omschrijving',
+ 'Detail' => 'Detail',
+ 'Difference' => 'Verschil',
+ 'Done' => 'Klaar',
+ 'Feb' => 'feb',
+ 'February' => 'februari',
+ 'From' => 'Van',
+ 'Include Exchange Rate Difference' => 'Inclusief Wisselkoersverschil',
+ 'Jan' => 'jan',
+ 'January' => 'januari',
+ 'Jul' => 'jul',
+ 'July' => 'juli',
+ 'Jun' => 'jun',
+ 'June' => 'juni',
+ 'Mar' => 'mrt',
+ 'March' => 'maart',
+ 'May' => 'mei',
+ 'May ' => 'mei ',
+ 'Month' => 'Maand',
+ 'Nov' => 'nov',
+ 'November' => 'november',
+ 'Oct' => 'okt',
+ 'October' => 'oktober',
+ 'Out of balance!' => 'Niet in evenwicht!',
+ 'Outstanding' => 'Openstaand',
+ 'Period' => 'Periode',
+ 'Quarter' => 'Kwartaal',
+ 'R' => 'R',
+ 'Reconciliation' => 'Boekingen Verwerken',
+ 'Reconciliation Report' => 'Reconcilidatierapport',
+ 'Select all' => 'Selecteer alles',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Source' => 'Herkomst',
+ 'Statement Balance' => 'Saldo Overzicht',
+ 'Summary' => 'Overzicht',
+ 'To' => 'Tot',
+ 'Update' => 'Bijwerken',
+ 'Year' => 'Jaar',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'verder' => 'continue',
+ 'klaar' => 'done',
+ 'selecteer_alles' => 'select_all',
+ 'bijwerken' => 'update',
+};
+
+1;
+
diff --git a/locale/nl/rp b/locale/nl/rp
new file mode 100755
index 00000000..85d603d0
--- /dev/null
+++ b/locale/nl/rp
@@ -0,0 +1,205 @@
+$self{texts} = {
+ 'AP Aging' => 'Ouderdomsoverzicht Crediteuren',
+ 'AR Aging' => 'Ouderdomsoverzicht Debiteuren',
+ 'Account' => 'Rekening',
+ 'Account Number' => 'Rekeningnummer',
+ 'Accounting Menu' => 'Boekhoudmenu',
+ 'Accounts' => 'Rekeningen',
+ 'Accrual' => 'Transactie',
+ 'Address' => 'Adres',
+ 'Aged' => 'Ouderdom',
+ 'Aged Overdue' => 'Achterstallig',
+ 'All Accounts' => 'Alle Rekeningen',
+ 'Amount' => 'Bedrag',
+ 'Apr' => 'apr',
+ 'April' => 'april',
+ 'Attachment' => 'Bijlage',
+ 'Aug' => 'aug',
+ 'August' => 'augustus',
+ 'Balance' => 'Saldo',
+ 'Balance Sheet' => 'Balans',
+ 'Bcc' => 'Bcc',
+ 'Cash' => 'Kas',
+ 'Cc' => 'Cc',
+ 'Compare to' => 'Vergelijk met',
+ 'Continue' => 'Verder',
+ 'Copies' => 'Kopieën',
+ 'Credit' => 'Credit',
+ 'Curr' => 'Val.',
+ 'Current' => 'Huidig',
+ 'Current Earnings' => 'Huidige Winst',
+ 'Customer' => 'Klant',
+ 'Customer not on file!' => 'Klant bestaat niet!',
+ 'Date' => 'Datum',
+ 'Day(s)' => 'Dag(en)',
+ 'Debit' => 'Debet',
+ 'Dec' => 'dec',
+ 'December' => 'december',
+ 'Decimalplaces' => 'Decimalen',
+ 'Delete Schedule' => 'Inplanning Verwijderen',
+ 'Department' => 'Afdeling',
+ 'Description' => 'Omschrijving',
+ 'Detail' => 'Detail',
+ 'Due Date' => 'Vervaldatum',
+ 'E-mail' => 'E-mail',
+ 'E-mail Statement to' => 'E-mail Overzicht aan',
+ 'E-mail address missing!' => 'E-mailadres ontbreekt!',
+ 'E-mail message' => 'E-mailbericht',
+ 'Every' => 'Elke',
+ 'Feb' => 'feb',
+ 'February' => 'februari',
+ 'For' => 'Gedurende',
+ 'From' => 'Van',
+ 'GIFI' => 'GIFI',
+ 'Heading' => 'Kopregel',
+ 'ID' => 'ID',
+ 'In-line' => 'In Lijn',
+ 'Include Exchange Rate Difference' => 'Inclusief Wisselkoersverschil',
+ 'Include Payment' => 'Inclusief Bedrag',
+ 'Include in Report' => 'Toevoegen aan Uitvoer',
+ 'Income Statement' => 'Resultatenrekening',
+ 'Invoice' => 'Factuur',
+ 'Jan' => 'jan',
+ 'January' => 'januari',
+ 'Jul' => 'jul',
+ 'July' => 'juli',
+ 'Jun' => 'jun',
+ 'June' => 'juni',
+ 'Language' => 'Taal',
+ 'Mar' => 'mrt',
+ 'March' => 'maart',
+ 'May' => 'mei',
+ 'May ' => 'mei ',
+ 'Memo' => 'Memo',
+ 'Message' => 'Boodschap',
+ 'Method' => 'Gebruikt Stelsel',
+ 'Month' => 'Maand',
+ 'Month(s)' => 'Maand(en)',
+ 'N/A' => 'N/A',
+ 'Next Date' => 'Volgende Datum',
+ 'Non-taxable Purchases' => 'Onbelaste Aankopen',
+ 'Non-taxable Sales' => 'Onbelaste Verkopen',
+ 'Nothing selected!' => 'Niets geselecteerd!',
+ 'Nov' => 'nov',
+ 'November' => 'november',
+ 'Number' => 'Code',
+ 'Oct' => 'okt',
+ 'October' => 'oktober',
+ 'Order' => 'Bestelling',
+ 'Overdue' => 'Achterstallig',
+ 'PDF' => 'PDF',
+ 'Payments' => 'Betalingen',
+ 'Period' => 'Periode',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Afdrukken',
+ 'Project' => 'Project',
+ 'Project Number' => 'Projectcode',
+ 'Project Transactions' => 'Projectboekingen',
+ 'Project not on file!' => 'Onbekend project!',
+ 'Quarter' => 'Kwartaal',
+ 'Receipts' => 'Ontvangstbewijzen',
+ 'Recurring Transaction' => 'Geplande Transactie',
+ 'Reference' => 'Referentie',
+ 'Repeat' => 'Herhaal',
+ 'Report for' => 'Rapport voor',
+ 'Salesperson' => 'Verkoper',
+ 'Save Schedule' => 'Planning Opslaan',
+ 'Screen' => 'Scherm',
+ 'Select all' => 'Selecteer alles',
+ 'Select from one of the names below' => 'Kies een van de onderstaande namen',
+ 'Select from one of the projects below' => 'Kies een van de onderstaande projecten',
+ 'Select postscript or PDF!' => 'Kies postscript of PDF!',
+ 'Sep' => 'sep',
+ 'September' => 'september',
+ 'Source' => 'Herkomst',
+ 'Standard' => 'Standaard',
+ 'Startdate' => 'Begindatum',
+ 'Statement' => 'Overzicht',
+ 'Statement sent to' => 'Overzicht verzonden aan',
+ 'Statements sent to printer!' => 'Overzichten naar de printer gestuurd!',
+ 'Subject' => 'Onderwerp',
+ 'Subtotal' => 'Subtotaal',
+ 'Summary' => 'Overzicht',
+ 'Tax' => 'Belasting',
+ 'Tax collected' => 'Geïnde belasting',
+ 'Tax paid' => 'Betaalde belasting',
+ 'Till' => 'Kassa',
+ 'To' => 'Tot',
+ 'Total' => 'Totaal',
+ 'Trial Balance' => 'Proefbalans',
+ 'Vendor' => 'Leverancier',
+ 'Vendor not on file!' => 'Leverancier bestaat niet!',
+ 'Warning!' => 'Waarschuwing!',
+ 'Week(s)' => 'Week/Weken',
+ 'Year' => 'Jaar',
+ 'Year(s)' => 'Jaar/Jaren',
+ 'You are posting an existing transaction!' => 'U boekt een bestaande transactie!',
+ 'You are printing and posting an existing transaction!' => 'U print en boekt een bestaande transactie!',
+ 'You are printing and saving an existing order' => 'U print een bestaande order en slaat deze daarna op',
+ 'You are printing and saving an existing quotation' => 'U print een bestaande offerte en slaat deze daarna op',
+ 'You are saving an existing order' => 'U slaat een bestaande order op',
+ 'You are saving an existing quotation' => 'U slaat een bestaande offerte op',
+ 'as at' => 'per',
+ 'for' => 'gedurende',
+ 'for Period' => 'voor Periode',
+ 'sent' => 'verzonden',
+ 'time(s)' => 'keer',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'verder' => 'continue',
+ 'inplanning_verwijderen' => 'delete_schedule',
+ 'e_mail' => 'e_mail',
+ 'afdrukken' => 'print',
+ 'planning_opslaan' => 'save_schedule',
+ 'selecteer_alles' => 'select_all',
+};
+
+1;
+
diff --git a/locale/pa/COPYING b/locale/pa/COPYING
new file mode 100755
index 00000000..4eddfc8b
--- /dev/null
+++ b/locale/pa/COPYING
@@ -0,0 +1,23 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2001
+#
+# Spanish texts:
+#
+# Author: Maria Gabriela Fong <mgfong@maga.tzo.org>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/pa/LANGUAGE b/locale/pa/LANGUAGE
new file mode 100755
index 00000000..0f633fee
--- /dev/null
+++ b/locale/pa/LANGUAGE
@@ -0,0 +1 @@
+Spanish/Panama
diff --git a/locale/pa/Num2text b/locale/pa/Num2text
new file mode 100755
index 00000000..88ffe737
--- /dev/null
+++ b/locale/pa/Num2text
@@ -0,0 +1,212 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (C) 2002
+#
+# Author: Dieter Simader
+# Email: dsimader@sql-ledger.org
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+# Language: Spanish
+# Contributors: John Christian Stoddart
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#======================================================================
+
+
+sub init {
+ my $self = shift;
+
+ %{ $self->{numbername} } =
+ (0 => 'cero',
+ 1 => 'un',
+ '1o' => 'uno',
+ 2 => 'dos',
+ 3 => 'tres',
+ 4 => 'cuatro',
+ 5 => 'cinco',
+ 6 => 'seis',
+ 7 => 'siete',
+ 8 => 'ocho',
+ 9 => 'nueve',
+ 10 => 'diez',
+ 11 => 'once',
+ '11o' => 'once',
+ 12 => 'doce',
+ 13 => 'trece',
+ 14 => 'catorce',
+ 15 => 'quince',
+ 16 => 'dieciséis',
+ 17 => 'diecisiete',
+ 18 => 'dieciocho',
+ 19 => 'diecinueve',
+ 20 => 'veinte',
+ 21 => 'veintiún',
+ '21o' => 'veintiuno',
+ 22 => 'veintidós',
+ 23 => 'veintitrés',
+ 24 => 'veinticuatro',
+ 25 => 'veinticinco',
+ 26 => 'veintiséis',
+ 27 => 'veintisiete',
+ 28 => 'veintiocho',
+ 29 => 'veintinueve',
+ 30 => 'treinta',
+ 40 => 'cuarenta',
+ 50 => 'cincuenta',
+ 60 => 'sesenta',
+ 70 => 'setenta',
+ 80 => 'ochenta',
+ 90 => 'noventa',
+ 500 => 'quinientos',
+ 700 => 'setecientos',
+ 900 => 'novecientos',
+ 10**2 => 'ciento',
+ 10**3 => 'mil',
+ 10**6 => 'millón',
+ 10**12 => 'billón',
+ );
+
+}
+
+
+sub num2text {
+ my ($self, $amount) = @_;
+
+ return $self->{numbername}{0} unless $amount;
+
+ my @textnumber = ();
+
+ # split amount into chunks of 3
+ my @num = reverse split //, abs($amount);
+ my @numblock = ();
+ my $stripun = 0;
+ my @a = ();
+ my $i;
+
+ while (@num) {
+ @a = ();
+ for (1 .. 3) {
+ push @a, shift @num;
+ }
+ push @numblock, join / /, reverse @a;
+ }
+
+ # special case for 1000
+ if ($numblock[1] eq '1' && $numblock[0] gt '000') {
+ # remove first array element from textnumber
+ $stripun = 1;
+ }
+
+ while (@numblock) {
+
+ $i = $#numblock;
+ @num = split //, $numblock[$i];
+
+ $numblock[$i] *= 1;
+
+ if ($numblock[$i] == 0) {
+ pop @numblock;
+ next;
+ }
+
+ if ($numblock[$i] > 99) {
+ if ($num[0] == 1) {
+ push @textnumber, $self->{numbername}{10**2};
+ } else {
+ # special case for 500, 700, 900
+ if (grep /$num[0]/, (5,7,9)) {
+ push @textnumber, $self->{numbername}{"${num[0]}00"};
+
+ } else {
+
+ # the one from hundreds, append cientos
+ push @textnumber, $self->{numbername}{$num[0]}.$self->{numbername}{10**2}.'s';
+
+ }
+ }
+
+ # reduce numblock
+ $numblock[$i] -= $num[0] * 100;
+ }
+
+ if ($numblock[$i] > 9) {
+ # tens
+ push @textnumber, $self->format_ten($numblock[$i], $i);
+ } elsif ($numblock[$i] > 0) {
+ # ones
+ $num = $numblock[$i];
+ $num .= 'o' if ($num == 1 && $i == 0);
+ push @textnumber, $self->{numbername}{$num};
+ }
+
+ # add thousand, million
+ if ($i) {
+ $num = 10**($i * 3);
+ if ($numblock[$i] > 1) {
+ if ($i == 2 || $i == 4) {
+ $a = $self->{numbername}{$num}."es";
+ $a =~ s/ó/o/;
+ push @textnumber, $a;
+ } elsif ($i == 3) {
+ $num = 10**($i * 2);
+ $a = "$self->{10**3} $self->{numbername}{$num}"."es";
+ $a =~ s/ó/o/;
+ push @textnumber, $a;
+ } else {
+ if ($i == 1) {
+ push @textnumber, $self->{numbername}{$num};
+ } else {
+ push @textnumber, $self->{numbername}{$num}.'s';
+ }
+ }
+ } else {
+ push @textnumber, $self->{numbername}{$num};
+ }
+ }
+
+ pop @numblock;
+
+ }
+
+ shift @textnumber if $stripun;
+
+ join ' ', @textnumber;
+
+}
+
+
+sub format_ten {
+ my ($self, $amount, $i) = @_;
+
+ my $textnumber = "";
+ my @num = split //, $amount;
+
+ if ($amount > 30) {
+ $textnumber = $self->{numbername}{$num[0]*10};
+ $amount = $num[1];
+ } else {
+ $amount .= 'o' if ($num[1] == 1 && $i == 0);
+ $textnumber = $self->{numbername}{$amount};
+ $amount = 0;
+ }
+
+ $textnumber .= " y ".$self->{numbername}{$amount} if $amount;
+
+ $textnumber;
+
+}
+
+
+1;
+
diff --git a/locale/pa/aa b/locale/pa/aa
new file mode 100755
index 00000000..ef009e46
--- /dev/null
+++ b/locale/pa/aa
@@ -0,0 +1,156 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Cuentas por Pagar pendientes',
+ 'AP Transaction' => 'Movimiento de Cuentas por Pagar',
+ 'AP Transactions' => 'Movimientos de Cuentas por Pagar',
+ 'AR Outstanding' => 'Cuentas por Cobrar pendientes',
+ 'AR Transaction' => 'Movimiento de Cuentas por Cobrar',
+ 'AR Transactions' => 'Movimientos de Cuentas por Cobrar',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Add AP Transaction' => 'Agregar Asiento de Cuentas por Pagar',
+ 'Add AR Transaction' => 'Agregar Asiento de Cuentas por Cobrar',
+ 'Amount' => 'Importe',
+ 'Amount Due' => 'Importe Adeudado',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => '¿Seguro que desea borrar el Asiento?',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Cannot delete transaction!' => '¡No se puede borrar el Asiento!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un Pago para un periodo cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar un Asiento para un periodo cerrado!',
+ 'Cannot post transaction!' => '¡No se puede registrar el Asiento!',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Cerrado',
+ 'Confirm!' => '¡Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Límite de Crédito',
+ 'Curr' => 'Div',
+ 'Currency' => 'Divisa',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el Cliente!',
+ 'Date' => 'Fecha',
+ 'Date Paid' => 'Fecha de Pago',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'Due Date missing!' => '¡Falta fecha de vencimiento!',
+ 'Edit AP Transaction' => 'Modificar asiento de Cuentas por Pagar',
+ 'Edit AR Transaction' => 'Modificar asiento de Cuentas por Cobrar',
+ 'Employee' => 'Empleado',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate for payment missing!' => '¡Falta la tasa de cambio para el pago!',
+ 'Exchange rate missing!' => '¡Falta la tasa de cambio!',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => '¡Falta la fecha de la factura!',
+ 'Invoice Number' => 'Número de factura',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Manager' => 'Gerente',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Nota',
+ 'Month' => 'Mes',
+ 'No.' => 'Nº',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Number' => 'Número de la orden',
+ 'Paid' => 'Pagado',
+ 'Payment date missing!' => '¡Falta la fecha del pago!',
+ 'Payments' => 'Pagos',
+ 'Period' => 'Periodo',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Project' => 'Proyecto',
+ 'Quarter' => 'Trimestre',
+ 'Receipt' => 'Recibo',
+ 'Remaining' => 'Remanente',
+ 'Sales Invoice.' => 'Factura (venta).',
+ 'Salesperson' => 'Vendedor',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Ship to' => 'Enviar a',
+ 'Ship via' => 'Enviar por',
+ 'Shipping Point' => 'Punto de envío',
+ 'Source' => 'Origen',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resúmen',
+ 'Tax' => 'Impuestos',
+ 'Tax Included' => 'IVA Incluido',
+ 'Till' => 'Caja Registradora',
+ 'To' => 'Hasta',
+ 'Total' => 'Total',
+ 'Transaction' => 'Asiento',
+ 'Transaction deleted!' => '¡Asiento borrado!',
+ 'Transaction posted!' => '¡Asiento registrado!',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice.' => 'Factura de Proveedor.',
+ 'Vendor missing!' => '¡Falta el Proveedor!',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'movimiento_de_cuentas_por_pagar' => 'ap_transaction',
+ 'movimiento_de_cuentas_por_cobrar' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'imprimir_y_registrar' => 'print_and_post',
+ 'factura_(venta)_' => 'sales_invoice_',
+ 'enviar_a' => 'ship_to',
+ 'actualizar' => 'update',
+ 'factura_de_proveedor_' => 'vendor_invoice_',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/pa/admin b/locale/pa/admin
new file mode 100755
index 00000000..725bbfd6
--- /dev/null
+++ b/locale/pa/admin
@@ -0,0 +1,143 @@
+$self{texts} = {
+ 'Access Control' => 'Control de Acceso',
+ 'Accounting' => 'Contabilidad',
+ 'Add User' => 'Agregar Usuario',
+ 'Address' => 'Dirección',
+ 'Administration' => 'Administración',
+ 'Administrator' => 'Administrador',
+ 'All Datasets up to date!' => '¡Todas las Bases de Datos están actualizadas!',
+ 'Cannot create Lock!' => '¡No se puede crear el archivo de bloqueo!',
+ 'Change Admin Password' => 'Cambiar la contraseña del administrador',
+ 'Change Password' => 'Cambiar contraseña',
+ 'Click on login name to edit!' => '¡Seleccione el nombre del usuario que desea modificar!',
+ 'Company' => 'Empresa',
+ 'Confirm' => 'Confirmar',
+ 'Connect to' => 'Conectar a',
+ 'Continue' => 'Continuar',
+ 'Create Chart of Accounts' => 'Crear Plan de Cuentas',
+ 'Create Dataset' => 'Crear Base de Datos',
+ 'DBI not installed!' => '¡DBI no está instalado!',
+ 'Database' => 'Base de datos',
+ 'Database Administration' => 'Administración de base de datos',
+ 'Database Driver not checked!' => '¡No seleccionó un manejador de bases de datos!',
+ 'Database User missing!' => '¡Falta el usuario de base de datos!',
+ 'Dataset' => 'Base de Datos',
+ 'Dataset missing!' => 'Falta Base de Datos!',
+ 'Dataset updated!' => 'Base de Datos actualizada!',
+ 'Date Format' => 'Formato de Fecha',
+ 'Delete' => 'Borrar',
+ 'Delete Dataset' => 'Borrar base de datos',
+ 'Directory' => 'Directorio',
+ 'Driver' => 'Manejador',
+ 'Dropdown Limit' => 'Limite en listas desplegables',
+ 'E-mail' => 'Correo electrónico',
+ 'Edit User' => 'Modificar Usuario',
+ 'Existing Datasets' => 'Bases de datos existentes',
+ 'Fax' => 'Fax',
+ 'Host' => 'Servidor',
+ 'Hostname missing!' => '¡Falta el nombre del servidor!',
+ 'Language' => 'Idioma',
+ 'Lock System' => 'Bloquear el sistema',
+ 'Lockfile created!' => '¡Archivo de bloqueo creado!',
+ 'Lockfile removed!' => '¡Archivo de bloqueo borrado!',
+ 'Login' => 'Entrada al sistema',
+ 'Login name missing!' => '¡Falta el nombre del usuario!',
+ 'Logout' => 'Salir del Sistema',
+ 'Manager' => 'Gerente',
+ 'Menu Width' => 'Ancho del Menú',
+ 'Multibyte Encoding' => 'Codificación Multibyte',
+ 'Name' => 'Nombre',
+ 'New Templates' => 'Plantillas Nuevas',
+ 'No Database Drivers available!' => '¡No hay manejadores de bases de datos disponibles!',
+ 'No Dataset selected!' => '¡No ha seleccionado una base de datos!',
+ 'Nothing to delete!' => '¡No hay nada para borrar!',
+ 'Number Format' => 'Formato Numérico',
+ 'Oracle Database Administration' => 'Administración de la base de datos Oracle',
+ 'Password' => 'Contraseña',
+ 'Password changed!' => '¡Contraseña cambiada!',
+ 'Passwords do not match!' => '¡Las contraseñas no coinciden!',
+ 'Pg Database Administration' => 'Administración de base de datos Pg',
+ 'PgPP Database Administration' => 'Administración de base de datos PgPP',
+ 'Phone' => 'Teléfono',
+ 'Port' => 'Puerto',
+ 'Port missing!' => '¡Falta el puerto!',
+ 'Printer' => 'Impresora',
+ 'Save' => 'Guardar',
+ 'Session Timeout' => 'Expiración de la sesión',
+ 'Session expired!' => '¡La sesión caducó!',
+ 'Setup Templates' => 'Configurar Plantillas',
+ 'Signature' => 'Firma',
+ 'Stylesheet' => 'Hoja de estilos',
+ 'Supervisor' => 'Supervisor',
+ 'Templates' => 'Plantillas',
+ 'The following Datasets are not in use and can be deleted' => 'Las siguientes bases de datos no están en uso y pueden ser borradas',
+ 'The following Datasets need to be updated' => 'Es necesario actualizar las siguientes bases de datos',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Verificación preliminar. En esta etapa no se creará ni se borrará nada!',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Para agregar un usuario a un grupo, seleccione un nombre, cambie el nombre de usuario (login) y guarde los cambios. Un nuevo usuario con las mismas variables se creará bajo el nuevo nombre de usuario (login).',
+ 'Unlock System' => 'Desbloquear el sistema',
+ 'Update Dataset' => 'Actualizar base de datos',
+ 'Use Templates' => 'Usar Plantillas',
+ 'User' => 'Usuario',
+ 'User deleted!' => '¡Usuario borrado!',
+ 'User saved!' => '¡Usuario guardado!',
+ 'Version' => 'Versión',
+ 'You are logged out' => 'Usted ha salido del sistema',
+ 'does not exist' => 'no existe',
+ 'is already a member!' => '¡ya es miembro!',
+ 'localhost' => 'servidor local',
+ 'locked!' => '¡bloqueado!',
+ 'successfully created!' => '¡creado con éxito!',
+ 'successfully deleted!' => '¡borrado con éxito!',
+ 'website' => 'sitio web',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'agregar_usuario' => 'add_user',
+ 'cambiar_la_contraseña_del_administrador' => 'change_admin_password',
+ 'cambiar_contraseña' => 'change_password',
+ 'continuar' => 'continue',
+ 'crear_base_de_datos' => 'create_dataset',
+ 'borrar' => 'delete',
+ 'borrar_base_de_datos' => 'delete_dataset',
+ 'bloquear_el_sistema' => 'lock_system',
+ 'entrada_al_sistema' => 'login',
+ 'salir_del_sistema' => 'logout',
+ 'administración_de_la_base_de_datos_oracle' => 'oracle_database_administration',
+ 'administración_de_base_de_datos_pg' => 'pg_database_administration',
+ 'administración_de_base_de_datos_pgpp' => 'pgpp_database_administration',
+ 'guardar' => 'save',
+ 'desbloquear_el_sistema' => 'unlock_system',
+ 'actualizar_base_de_datos' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/pa/all b/locale/pa/all
new file mode 100755
index 00000000..a0fbb61c
--- /dev/null
+++ b/locale/pa/all
@@ -0,0 +1,894 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+
+$self{texts} = {
+ 'A' => 'A',
+ 'AP' => 'Cuentas por Pagar',
+ 'AP Aging' => 'Vencimiento de Cuentas por Pagar',
+ 'AP Outstanding' => 'Cuentas por Pagar pendientes',
+ 'AP Transaction' => 'Movimiento de Cuentas por Pagar',
+ 'AP Transactions' => 'Movimientos de Cuentas por Pagar',
+ 'AR' => 'Cuentas por Cobrar',
+ 'AR Aging' => 'Vencimiento Cuentas por Cobrar',
+ 'AR Outstanding' => 'Cuentas por Cobrar pendientes',
+ 'AR Transaction' => 'Movimiento de Cuentas por Cobrar',
+ 'AR Transactions' => 'Movimientos de Cuentas por Cobrar',
+ 'AR/AP' => '',
+ 'About' => 'Acerca de',
+ 'Above' => 'Encima de',
+ 'Access Control' => 'Control de Acceso',
+ 'Access Denied!' => '',
+ 'Account' => 'Cuenta',
+ 'Account Number' => 'Número de Cuenta',
+ 'Account Number missing!' => '¡Falta el Número de Cuenta!',
+ 'Account Type' => 'Tipo de Cuenta',
+ 'Account Type missing!' => '¡Falta el Tipo de Cuenta!',
+ 'Account deleted!' => '¡Cuenta eliminada!',
+ 'Account does not exist!' => '¡Cuenta no existe!',
+ 'Account saved!' => '¡Cuenta guardada!',
+ 'Accounting' => 'Contabilidad',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Accounts' => 'Cuentas',
+ 'Accrual' => 'Acumulado',
+ 'Activate Audit trail' => 'Activar Rastro Auditoría',
+ 'Activate Audit trails' => 'Activar Rastro Auditoría',
+ 'Active' => 'Activo',
+ 'Add' => 'Agregar',
+ 'Add AP Transaction' => 'Agregar Asiento de Cuentas por Pagar',
+ 'Add AR Transaction' => 'Agregar Asiento de Cuentas por Cobrar',
+ 'Add Account' => 'Agregar Cuenta',
+ 'Add Assembly' => 'Agregar Ensamblaje',
+ 'Add Business' => 'Agregar Negocio',
+ 'Add Cash Transfer Transaction' => 'Agregar Transferencia de Efectivo',
+ 'Add Customer' => 'Agregar Cliente',
+ 'Add Deduction' => 'Agregar Descuento',
+ 'Add Department' => 'Agregar Centro de Costos',
+ 'Add Employee' => 'Agregar Empleado',
+ 'Add Exchange Rate' => 'Agregar Cotización de Moneda',
+ 'Add GIFI' => 'Agregar PCF',
+ 'Add General Ledger Transaction' => 'Agregar Asiento al Mayor General',
+ 'Add Group' => 'Agregar Grupo',
+ 'Add Job' => '',
+ 'Add Labor/Overhead' => 'Agregar Mano de Obra',
+ 'Add Language' => 'Agregar Idioma',
+ 'Add POS Invoice' => 'Agregar Factura Punto de Venta',
+ 'Add Part' => 'Agregar Artículo',
+ 'Add Pricegroup' => 'Agregar Grupo de Precios',
+ 'Add Project' => 'Agregar Proyecto',
+ 'Add Purchase Order' => 'Agregar Orden de Compra',
+ 'Add Quotation' => 'Agregar Cotización',
+ 'Add Request for Quotation' => 'Pedir Cotización',
+ 'Add SIC' => 'Agregar CIS',
+ 'Add Sales Invoice' => 'Agregar Factura de Venta',
+ 'Add Sales Order' => 'Agregar Orden de Venta',
+ 'Add Service' => 'Agregar Servicio',
+ 'Add Timecard' => '',
+ 'Add Transaction' => 'Agregar Transacción',
+ 'Add User' => 'Agregar Usuario',
+ 'Add Vendor' => 'Agregar Proveedor',
+ 'Add Vendor Invoice' => 'Agregar Factura de Proveedor',
+ 'Add Warehouse' => 'Agregar Almacén',
+ 'Address' => 'Dirección',
+ 'Administration' => 'Administración',
+ 'Administrator' => 'Administrador',
+ 'After Deduction' => 'Después del Descuento',
+ 'All' => 'Todo',
+ 'All Accounts' => 'Todas las Cuentas',
+ 'All Datasets up to date!' => '¡Todas las Bases de Datos están actualizadas!',
+ 'All Items' => 'Todos los Artículos',
+ 'Allowances' => 'Subsidios',
+ 'Amount' => 'Importe',
+ 'Amount Due' => 'Importe Adeudado',
+ 'Amount missing!' => '¡Falta el Importe!',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => '¿Seguro que desea borrar la Factura?',
+ 'Are you sure you want to delete Order Number' => '¿Seguro que desea borrar la Orden de Compra/Pedido?',
+ 'Are you sure you want to delete Quotation Number' => '¿Seguro que desea borrar la Cotización?',
+ 'Are you sure you want to delete Timecard for' => '',
+ 'Are you sure you want to delete Transaction' => '¿Seguro que desea borrar el Asiento?',
+ 'Are you sure you want to remove the marked entries from the queue?' => '¿Seguro que desea borrar las entradas seleccionadas de la cola?',
+ 'Assemblies' => 'Ensamblajes',
+ 'Assemblies restocked!' => 'Ensamblajes re-inventariados!',
+ 'Assembly' => 'Ensamblaje',
+ 'Assembly stocked!' => '',
+ 'Asset' => 'Activo',
+ 'Attachment' => 'Adjunto',
+ 'Audit Control' => 'Control de Auditoría',
+ 'Audit trail disabled' => 'Rastro de Auditoría desactivado',
+ 'Audit trail enabled' => 'Rastro de Auditoría activado',
+ 'Audit trail removed up to' => 'Rastro de Auditoría eliminado hasta',
+ 'Audit trails disabled' => 'Rastro de Auditoría desactivado',
+ 'Audit trails enabled' => 'Rastro de Auditoría activado',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Average Cost' => '',
+ 'Avg Cost' => '',
+ 'BIC' => 'BIC',
+ 'BOM' => 'Lista de Materiales',
+ 'Backup' => 'Copia de Seguridad de los datos',
+ 'Backup sent to' => 'Copia de Seguridad enviada a',
+ 'Balance' => 'Saldo',
+ 'Balance Sheet' => 'Balance General',
+ 'Based on' => 'Basado en',
+ 'Bcc' => 'B.C.C.',
+ 'Before Deduction' => 'Antes del Descuento',
+ 'Beginning Balance' => 'Saldo Inicial',
+ 'Below' => 'Debajo de',
+ 'Billing Address' => 'Dirección para Facturación',
+ 'Bin' => 'Ubicación',
+ 'Bin List' => 'Lista de Ubicaciones',
+ 'Bin Lists' => 'Listas de Ubicaciones',
+ 'Books are open' => 'Los Libros están abiertos',
+ 'Break' => 'Romper',
+ 'Business' => 'Negocio',
+ 'Business Number' => 'RUC',
+ 'Business deleted!' => '¡Negocio borrado!',
+ 'Business saved!' => '¡Negocio guardado!',
+ 'C' => 'C',
+ 'COGS' => 'Costo de Ventas',
+ 'COGS account does not exist!' => '',
+ 'Cannot add timecard for a completed job!' => '',
+ 'Cannot change timecard for a completed job!' => '',
+ 'Cannot create Assembly' => '',
+ 'Cannot create Labor' => '',
+ 'Cannot create Lock!' => '¡No se puede crear el archivo de bloqueo!',
+ 'Cannot create Part' => '',
+ 'Cannot create Service' => '',
+ 'Cannot delete Timecard!' => '',
+ 'Cannot delete account!' => '¡No se puede borrar la Cuenta!',
+ 'Cannot delete customer!' => '¡No se puede borrar el Cliente!',
+ 'Cannot delete default account!' => '¡No se puede borrar la Cuenta por Defecto!',
+ 'Cannot delete invoice!' => '¡No se puede borrar la Factura!',
+ 'Cannot delete item!' => '¡No se puede borrar el Artículo!',
+ 'Cannot delete order!' => '¡No se puede borrar la Orden!',
+ 'Cannot delete quotation!' => '¡No se puede borrar la Cotización!',
+ 'Cannot delete transaction!' => '¡No se puede borrar el Asiento!',
+ 'Cannot delete vendor!' => '¡No se puede borrar el Proveedor!',
+ 'Cannot post Payment!' => '¡No se puede registrar el Pago!',
+ 'Cannot post Receipt!' => '¡No se puede registrar el Recibo!',
+ 'Cannot post invoice for a closed period!' => '¡No se puede registrar una Factura para un periodo cerrado!',
+ 'Cannot post invoice!' => '¡No se puede registrar la Factura!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un Pago para un periodo cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar un Asiento para un periodo cerrado!',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => '',
+ 'Cannot post transaction!' => '¡No se puede registrar el Asiento!',
+ 'Cannot remove files!' => '¡No se pueden borrar los archivos!',
+ 'Cannot save account!' => '¡No se puede guardar la Cuenta!',
+ 'Cannot save defaults!' => '¡No se puede guardar los Predeterminados!',
+ 'Cannot save order!' => '¡No se puede guardar la Orden!',
+ 'Cannot save preferences!' => '¡No se puede guardar las Preferencias!',
+ 'Cannot save quotation!' => '¡No se puede guardar la Cotización!',
+ 'Cannot save timecard for a closed period!' => '',
+ 'Cannot save timecard!' => '',
+ 'Cannot set account for more than one of AR, AP or IC' => 'No se puede configurar una Cuenta para más de una de las opciones (CxC, CxP o Inventario)',
+ 'Cannot set multiple options for' => 'No se pueden configurar opciones múltiples para',
+ 'Cannot set multiple options for Item' => '',
+ 'Cannot stock Assembly!' => '',
+ 'Cannot stock assemblies!' => '¡No se pueden almacenar los ensamblajes!',
+ 'Cash' => 'Efectivo',
+ 'Cc' => 'C.C.',
+ 'Change' => 'Cambiar',
+ 'Change Admin Password' => 'Cambiar la contraseña del administrador',
+ 'Change Password' => 'Cambiar contraseña',
+ 'Charge' => '',
+ 'Chart of Accounts' => 'Plan de Cuentas',
+ 'Check' => 'Cheque',
+ 'Check Inventory' => 'Verificar existencia',
+ 'Checks' => 'Cheques',
+ 'City' => 'Ciudad',
+ 'Cleared' => 'Reconciliado',
+ 'Click on login name to edit!' => '¡Seleccione el nombre del usuario que desea modificar!',
+ 'Clocked' => '',
+ 'Close Books up to' => 'Cerrar los Libros hasta',
+ 'Closed' => 'Cerrado',
+ 'Code' => 'Código',
+ 'Code missing!' => '¡Falta el Código!',
+ 'Company' => 'Empresa',
+ 'Company Name' => 'Razón Social',
+ 'Compare to' => 'Comparar con',
+ 'Completed' => '',
+ 'Components' => 'Componentes',
+ 'Confirm' => 'Confirmar',
+ 'Confirm!' => '¡Confirmar!',
+ 'Connect to' => 'Conectar a',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Contra' => 'Cuentas del Orden',
+ 'Copies' => 'Copias',
+ 'Copy to COA' => 'Copiar al Plan de Cuentas',
+ 'Cost' => 'Costo',
+ 'Cost Center' => 'Centro de Costos',
+ 'Could not save pricelist!' => '¡No se pudo guardar la Lista de Precios!',
+ 'Could not save!' => '¡No se pudo guardar!',
+ 'Could not transfer Inventory!' => '¡No se pudo transferir existencia!',
+ 'Country' => 'País',
+ 'Create Chart of Accounts' => 'Crear Plan de Cuentas',
+ 'Create Dataset' => 'Crear Base de Datos',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Límite de Crédito',
+ 'Curr' => 'Div',
+ 'Currency' => 'Divisa',
+ 'Current' => 'Actual',
+ 'Current Earnings' => 'Resultado del Período',
+ 'Customer' => 'Cliente',
+ 'Customer History' => 'Historial del Cliente',
+ 'Customer Number' => 'Código del Cliente',
+ 'Customer deleted!' => '¡Cliente borrado!',
+ 'Customer missing!' => '¡Falta el Cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Customer saved!' => '¡Cliente guardado!',
+ 'Customers' => 'Clientes',
+ 'DBI not installed!' => '¡DBI no está instalado!',
+ 'DOB' => 'Fecha de nacimiento',
+ 'Database' => 'Base de datos',
+ 'Database Administration' => 'Administración de base de datos',
+ 'Database Driver not checked!' => '¡No seleccionó un manejador de bases de datos!',
+ 'Database Host' => 'Servidor de Base de Datos',
+ 'Database User missing!' => '¡Falta el usuario de base de datos!',
+ 'Dataset' => 'Base de Datos',
+ 'Dataset is newer than version!' => '¡El Base de Datos es más reciente que la versión del programa!',
+ 'Dataset missing!' => 'Falta Base de Datos!',
+ 'Dataset updated!' => 'Base de Datos actualizada!',
+ 'Date' => 'Fecha',
+ 'Date Format' => 'Formato de Fecha',
+ 'Date Paid' => 'Fecha de Pago',
+ 'Date Received' => 'Fecha de recepción',
+ 'Date missing!' => '¡Falta la fecha!',
+ 'Date received missing!' => '¡Falta la fecha de recepción!',
+ 'Date worked' => '',
+ 'Day' => '',
+ 'Day(s)' => '',
+ 'Days' => '',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Decimalplaces' => 'Posiciones decimales',
+ 'Decrease' => 'Reducir',
+ 'Deduct after' => 'Descontar después',
+ 'Deduction deleted!' => '¡Descuento borrado!',
+ 'Deduction saved!' => '¡Descuento guardado!',
+ 'Deductions' => 'Descuentos',
+ 'Default Template' => '',
+ 'Defaults' => 'Valores predeterminados',
+ 'Defaults saved!' => '¡Valores predeterminados guardados!',
+ 'Delete' => 'Borrar',
+ 'Delete Account' => 'Borrar cuenta',
+ 'Delete Dataset' => 'Borrar base de datos',
+ 'Delete Schedule' => '',
+ 'Deleting a language will also delete the templates for the language' => '',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Department' => 'Departamento',
+ 'Department deleted!' => '¡Departamento borrado!',
+ 'Department saved!' => '¡Departamento guardado!',
+ 'Departments' => 'Departamentos',
+ 'Deposit' => 'Depósito',
+ 'Description' => 'Descripción',
+ 'Description Translations' => 'Traducciones de la descripción',
+ 'Description missing!' => '¡Falta la descripción!',
+ 'Detail' => 'Detalle',
+ 'Difference' => 'Diferencia',
+ 'Directory' => 'Directorio',
+ 'Discount' => 'Descuento',
+ 'Done' => 'Terminado',
+ 'Drawing' => 'Plano',
+ 'Driver' => 'Manejador',
+ 'Dropdown Limit' => 'Limite en listas desplegables',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'Due Date missing!' => '¡Falta fecha de vencimiento!',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail Statement to' => 'Enviar estado de cuenta por E-mail a',
+ 'E-mail address missing!' => '¡Falta dirección E-mail!',
+ 'E-mail message' => '',
+ 'E-mailed' => 'Enviado por e-mail',
+ 'Edit' => 'Modificar',
+ 'Edit AP Transaction' => 'Modificar asiento de Cuentas por Pagar',
+ 'Edit AR Transaction' => 'Modificar asiento de Cuentas por Cobrar',
+ 'Edit Account' => 'Modificar cuenta',
+ 'Edit Assembly' => 'Modificar Ensamblaje',
+ 'Edit Business' => 'Modificar Negocio',
+ 'Edit Cash Transfer Transaction' => 'Modificar Transferencia de Efectivo',
+ 'Edit Customer' => 'Modificar Cliente',
+ 'Edit Deduction' => 'Modificar Descuento',
+ 'Edit Department' => 'Modificar Departamento',
+ 'Edit Description Translations' => 'Modificar Traducciones de Descripción',
+ 'Edit Employee' => 'Modificar Empleado',
+ 'Edit GIFI' => 'Modificar PCF',
+ 'Edit General Ledger Transaction' => 'Modificar Asiento del Libro Mayor General',
+ 'Edit Group' => 'Modificar Grupo',
+ 'Edit Job' => '',
+ 'Edit Labor/Overhead' => 'Modificar Mano de Obra',
+ 'Edit Language' => 'Modificar Idioma',
+ 'Edit POS Invoice' => 'Modificar Ticket',
+ 'Edit Part' => 'Modificar Artículo',
+ 'Edit Preferences for' => 'Modificar Preferencias para',
+ 'Edit Pricegroup' => 'Modificar Grupo de Precios',
+ 'Edit Project' => 'Modificar Proyecto',
+ 'Edit Purchase Order' => 'Modificar Orden de Compra',
+ 'Edit Quotation' => 'Modificar Cotización',
+ 'Edit Request for Quotation' => 'Modificar Solicitud de Cotización',
+ 'Edit SIC' => 'Modificar CIS',
+ 'Edit Sales Invoice' => 'Modificar Factura de Venta',
+ 'Edit Sales Order' => 'Modificar Orden de Venta',
+ 'Edit Service' => 'Modificar Servicio',
+ 'Edit Template' => 'Modificar Plantilla',
+ 'Edit Timecard' => '',
+ 'Edit User' => 'Modificar Usuario',
+ 'Edit Vendor' => 'Modificar Proveedor',
+ 'Edit Vendor Invoice' => 'Modificar Factura de Proveedor',
+ 'Edit Warehouse' => 'Modificar Almacén',
+ 'Employee' => 'Empleado',
+ 'Employee Name' => 'Nombre del empleado',
+ 'Employee Number' => 'Código del empleado',
+ 'Employee deleted!' => '¡Empleado borrado!',
+ 'Employee pays' => 'El empleado paga',
+ 'Employee saved!' => '¡Empleado guardado!',
+ 'Employees' => 'Empleados',
+ 'Employer' => 'Patrón',
+ 'Employer pays' => 'El patrón paga',
+ 'Enddate' => 'Fecha final',
+ 'Ends' => '',
+ 'Enforce transaction reversal for all dates' => 'Forzar reversión de asientos para todas las fechas',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Introduzca hasta 3 letras separadas por dos puntos (ej. PYG:USD:EUR) para las monedas local y extranjeras',
+ 'Equity' => 'Capital',
+ 'Every' => '',
+ 'Excempt age <' => 'Edad de excención <',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate for payment missing!' => '¡Falta la tasa de cambio para el pago!',
+ 'Exchange rate missing!' => '¡Falta la tasa de cambio!',
+ 'Existing Datasets' => 'Bases de datos existentes',
+ 'Expense' => 'Gasto',
+ 'Expense account does not exist!' => '',
+ 'Expense/Asset' => 'Gasto/Activo',
+ 'Extended' => 'Importe',
+ 'FX' => 'Cotización de Monedas',
+ 'Failed to save order!' => '',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'For' => '',
+ 'Foreign Exchange Gain' => 'Ganancia en Moneda Extranjera',
+ 'Foreign Exchange Loss' => 'Pérdida en Moneda Extranjera',
+ 'Friday' => '',
+ 'From' => 'Desde',
+ 'From Warehouse' => '',
+ 'GIFI' => 'Plan de Cuentas Fiscal (PCF)',
+ 'GIFI deleted!' => '¡Borrado el código PCF!',
+ 'GIFI missing!' => '¡Falta el código PCF!',
+ 'GIFI saved!' => '¡Guardado el código PCF!',
+ 'GL' => '',
+ 'GL Reference Number' => '',
+ 'GL Transaction' => 'Asiento en el libro mayor',
+ 'General Ledger' => 'Libro Mayor General',
+ 'Generate' => '',
+ 'Generate Orders' => '',
+ 'Generate Purchase Orders' => '',
+ 'Generate Purchase Orders from Sales Order' => '',
+ 'Generate Sales Order' => '',
+ 'Generate Sales Order from Purchase Orders' => '',
+ 'Generate Sales Orders' => '',
+ 'Goods & Services' => 'Bienes y Servicios',
+ 'Group' => 'Grupo',
+ 'Group Items' => 'Componentes de grupo',
+ 'Group Translations' => 'Traducción de Grupos',
+ 'Group deleted!' => '¡Grupo borrado!',
+ 'Group missing!' => '¡Falta el grupo!',
+ 'Group saved!' => '¡Grupo guardado!',
+ 'Groups' => 'Grupos',
+ 'HR' => 'Recursos Humanos',
+ 'HTML Templates' => 'Plantillas HTML',
+ 'Heading' => 'Encabezado',
+ 'History' => 'Historial',
+ 'Home Phone' => 'Teléfono (particular)',
+ 'Host' => 'Servidor',
+ 'Hostname missing!' => '¡Falta el nombre del servidor!',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Image' => 'Imagen',
+ 'In-line' => 'Incorporado',
+ 'Inactive' => '',
+ 'Include Exchange Rate Difference' => 'Incluir Diferencia por Tasa de Cambio',
+ 'Include Payment' => '',
+ 'Include in Report' => 'Incluir en informe',
+ 'Include in drop-down menus' => 'Incluir en listas desplegables',
+ 'Income' => 'Ingreso',
+ 'Income Statement' => 'Cuadro de Resultados',
+ 'Income account does not exist!' => '',
+ 'Incorrect Dataset version!' => '¡La Versión de la base de datos es incorrecta!',
+ 'Increase' => 'Aumentar',
+ 'Individual Items' => 'Artículos individuales',
+ 'Internal Notes' => 'Notas internas',
+ 'Inventory' => 'Inventario',
+ 'Inventory account does not exist!' => '',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => '¡La existencia debe ser cero antes de poder cambiar el ensamblaje a obsoleto!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => '¡La existencia debe ser cero antes de poder cambiar este artículo a obsoleto!',
+ 'Inventory saved!' => '¡Inventario guardado!',
+ 'Inventory transferred!' => '¡Inventario transferido!',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => '¡Falta la fecha de la factura!',
+ 'Invoice Number' => 'Número de factura',
+ 'Invoice Number missing!' => '¡Falta el Número de Factura!',
+ 'Invoice deleted!' => '¡Factura borrada!',
+ 'Invoices' => 'Facturas',
+ 'Is this a summary account to record' => '¿Es ésta una cuenta de resúmen a registrar?',
+ 'Item already on pricelist!' => '¡El concepto ya está en la lista de precios!',
+ 'Item deleted!' => '¡Concepto borrado!',
+ 'Item not on file!' => '¡El concepto no está registrado!',
+ 'Items' => 'Conceptos',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Job' => '',
+ 'Job Name' => '',
+ 'Job Number' => '',
+ 'Job Number missing!' => '',
+ 'Job deleted!' => '',
+ 'Job saved!' => '',
+ 'Jobs' => '',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'LaTeX Templates' => 'Plantillas LaTeX',
+ 'Labor Code' => '',
+ 'Labor/Overhead' => 'Mano de Obra',
+ 'Language' => 'Idioma',
+ 'Language deleted!' => '¡Idioma borrado!',
+ 'Language saved!' => '¡Idioma guardado!',
+ 'Languages' => 'Idiomas',
+ 'Languages not defined!' => '¡Idiomas no definido!',
+ 'Last Cost' => '',
+ 'Last Numbers & Default Accounts' => 'Últimos números y cuentas por omisión',
+ 'Lead' => '',
+ 'Leadtime' => 'Tiempo de Entrega',
+ 'Leave host and port field empty unless you want to make a remote connection.' => 'Deje los campos de servidor y puerto vacíos a menos que quiera hacer una conección remota',
+ 'Liability' => 'Pasivo',
+ 'Licensed to' => 'Uso autorizado a',
+ 'Line Total' => 'Total de la línea',
+ 'Link' => 'Vínculo',
+ 'Link Accounts' => 'Vincular Cuentas',
+ 'List' => 'Lista',
+ 'List Accounts' => 'Mostrar Plan de Cuentas',
+ 'List Businesses' => 'Mostrar empresas',
+ 'List Departments' => 'Mostrar Centro de Costos',
+ 'List GIFI' => 'Mostrar PCF',
+ 'List Languages' => 'Mostrar Idiomas',
+ 'List Price' => 'Precio de Lista',
+ 'List Projects' => 'Mostrar Projectos',
+ 'List SIC' => 'Mostrar CIS',
+ 'List Transactions' => 'Mostrar Transacciones',
+ 'List Warehouses' => 'Mostar almacenes',
+ 'Lock System' => 'Bloquear el sistema',
+ 'Lockfile created!' => '¡Archivo de bloqueo creado!',
+ 'Lockfile removed!' => '¡Archivo de bloqueo borrado!',
+ 'Login' => 'Entrada al sistema',
+ 'Login name missing!' => '¡Falta el nombre del usuario!',
+ 'Logout' => 'Salir del Sistema',
+ 'Make' => 'Marca',
+ 'Manager' => 'Gerente',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'Marked entries printed!' => '¡Entradas seleccionadas impresas!',
+ 'Markup' => 'Margen',
+ 'Maximum' => 'Máximo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Nota',
+ 'Menu Width' => 'Ancho del Menú',
+ 'Message' => 'Mensaje',
+ 'Method' => 'Método',
+ 'Microfiche' => 'Microficha',
+ 'Model' => 'Modelo',
+ 'Monday' => '',
+ 'Month' => 'Mes',
+ 'Month(s)' => '',
+ 'Months' => '',
+ 'Multibyte Encoding' => 'Codificación Multibyte',
+ 'N/A' => 'N/A',
+ 'Name' => 'Nombre',
+ 'Name missing!' => '¡Falta el Nombre!',
+ 'New Templates' => 'Plantillas Nuevas',
+ 'New Window' => 'Ventana nueva',
+ 'Next' => '',
+ 'Next Date' => '',
+ 'Next Number' => '',
+ 'No' => 'No',
+ 'No Database Drivers available!' => '¡No hay manejadores de bases de datos disponibles!',
+ 'No Dataset selected!' => '¡No ha seleccionado una base de datos!',
+ 'No Employees on file!' => '',
+ 'No Labor codes on file!' => '',
+ 'No email address for' => 'Falta la dirección de correo electrónico de',
+ 'No open Jobs!' => '',
+ 'No open Projects!' => '',
+ 'No.' => 'Nº',
+ 'Non-taxable' => 'Exento',
+ 'Non-taxable Purchases' => 'Compras exentas',
+ 'Non-taxable Sales' => 'Ventas exentas',
+ 'Non-tracking Items' => '',
+ 'Notes' => 'Notas',
+ 'Nothing entered!' => '¡No se suministró nada!',
+ 'Nothing selected!' => '¡No se seleccionó nada!',
+ 'Nothing to delete!' => '¡No hay nada para borrar!',
+ 'Nothing to print!' => '¡No hay nada para imprimir!',
+ 'Nothing to transfer!' => '¡Nada que transferir!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number Format' => 'Formato Numérico',
+ 'Number missing in Row' => 'No se encuentra el número en la fila',
+ 'O' => 'O',
+ 'OH' => '',
+ 'Obsolete' => 'Obsoleto',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'On Hand' => 'Existencia',
+ 'Open' => 'Abierto',
+ 'Oracle Database Administration' => 'Administración de la base de datos Oracle',
+ 'Order' => 'Orden',
+ 'Order Date' => 'Fecha de la orden',
+ 'Order Date missing!' => '¡Falta la fecha de la orden!',
+ 'Order Entry' => 'Carga de Ordenes',
+ 'Order Number' => 'Número de la orden',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'Order deleted!' => '¡Orden borrada!',
+ 'Order generation failed!' => '',
+ 'Order saved!' => '¡Orden guardada!',
+ 'Orders generated!' => '',
+ 'Orphaned' => 'Huérfano',
+ 'Out of balance transaction!' => '¡Asiento desbalanceado!',
+ 'Out of balance!' => '¡Fuera de balance!',
+ 'Outstanding' => 'Pendiente',
+ 'PDF' => 'PDF',
+ 'PO Number' => '',
+ 'POS' => 'Punto de Venta',
+ 'POS Invoice' => 'Factura Punto de Venta',
+ 'Packing List' => 'Lista de Empaque',
+ 'Packing List Date missing!' => '¡Falta la fecha en la lista de empaque!',
+ 'Packing List Number missing!' => '¡Falta el número en la lista de empaque!',
+ 'Packing Lists' => 'Listas de empaque',
+ 'Paid' => 'Pagado',
+ 'Part' => 'Artículo',
+ 'Part Number' => '',
+ 'Partnumber' => 'Número de artículo',
+ 'Parts' => 'Artículos',
+ 'Password' => 'Contraseña',
+ 'Password changed!' => '¡Contraseña cambiada!',
+ 'Password does not match!' => '¡La contraseña no coincide!',
+ 'Passwords do not match!' => '¡Las contraseñas no coinciden!',
+ 'Payables' => 'Cuentas por Pagar',
+ 'Payment' => 'Pago',
+ 'Payment date missing!' => '¡Falta la fecha del pago!',
+ 'Payment posted!' => '¡Pago registrado!',
+ 'Payments' => 'Pagos',
+ 'Payments posted!' => '',
+ 'Payroll Deduction' => 'Descuento Salarial',
+ 'Period' => 'Periodo',
+ 'Pg Database Administration' => 'Administración de base de datos Pg',
+ 'PgPP Database Administration' => 'Administración de base de datos PgPP',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Selección',
+ 'Pick Lists' => 'Listas de Selección',
+ 'Port' => 'Puerto',
+ 'Port missing!' => '¡Falta el puerto!',
+ 'Pos' => '',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Posted!' => '¡Registrado!',
+ 'Posting' => '',
+ 'Posting failed!' => '',
+ 'Postscript' => 'Postscript',
+ 'Preferences' => 'Preferencias',
+ 'Preferences saved!' => '¡Preferencias guardadas!',
+ 'Prepayment' => 'Anticipo',
+ 'Price' => 'Precio',
+ 'Pricegroup' => 'Grupo de precios',
+ 'Pricegroup deleted!' => '¡Grupo de precios borrado!',
+ 'Pricegroup missing!' => '¡Falta el grupo de precios!',
+ 'Pricegroup saved!' => '¡Grupo de precios guardado!',
+ 'Pricegroups' => 'Grupos de precios',
+ 'Pricelist' => 'Lista de Precios',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Print and Post as new' => '',
+ 'Print and Save' => 'Imprimir y guardar',
+ 'Print and Save as new' => '',
+ 'Print and post as new' => '',
+ 'Print and save as new' => '',
+ 'Printed' => 'Impreso',
+ 'Printer' => 'Impresora',
+ 'Printing' => '',
+ 'Printing ... ' => 'Imprimiendo ...',
+ 'Process Transactions' => '',
+ 'Production' => '',
+ 'Profit Center' => 'Centro de Ingresos',
+ 'Project' => 'Proyecto',
+ 'Project Description Translations' => 'Traducciones de descripción de proyecto',
+ 'Project Name' => '',
+ 'Project Number' => 'Número del Proyecto',
+ 'Project Number missing!' => '¡Falta el número de proyecto!',
+ 'Project Transactions' => 'Asientos del Projecto',
+ 'Project deleted!' => '¡Proyecto borrado!',
+ 'Project not on file!' => '¡Proyecto no registrado!',
+ 'Project saved!' => '¡Proyecto guardado!',
+ 'Project/Job Name' => '',
+ 'Project/Job Number' => '',
+ 'Projects' => 'Proyectos',
+ 'Purchase Order' => 'Orden de Compra',
+ 'Purchase Order Number' => 'Número de Orden de Compra',
+ 'Purchase Orders' => 'Ordenes de Compra',
+ 'Qty' => 'Cant.',
+ 'Quantity exceeds available units to stock!' => '¡La cantidad excede al stock disponible!',
+ 'Quarter' => 'Trimestre',
+ 'Quotation' => 'Cotización',
+ 'Quotation ' => 'Cotización ',
+ 'Quotation Date' => 'Fecha de Cotización',
+ 'Quotation Date missing!' => '¡Falta la Fecha de Cotización!',
+ 'Quotation Number' => 'Número de Cotización',
+ 'Quotation Number missing!' => '¡Falta el Número de Cotización!',
+ 'Quotation deleted!' => '¡Cotización borrada!',
+ 'Quotations' => 'Cotizaciones',
+ 'R' => 'R',
+ 'RFQ' => 'Solicitud de cotización',
+ 'RFQ ' => 'Solicitud de cotización ',
+ 'RFQ Number' => 'Número de Solicitud de cotización',
+ 'RFQs' => 'Solicitudes de cotización',
+ 'ROP' => 'Existencia mínima',
+ 'Rate' => 'Tarifa',
+ 'Rate missing!' => '¡Falta la tarifa!',
+ 'Recd' => 'Recb.',
+ 'Receipt' => 'Recibo',
+ 'Receipt posted!' => '¡Recibo registrado!',
+ 'Receipts' => 'Recibos',
+ 'Receivables' => 'Cuentas por Cobrar',
+ 'Receive' => 'Recibir',
+ 'Receive Merchandise' => 'Recibir mercadería',
+ 'Reconciliation' => 'Reconciliación',
+ 'Reconciliation Report' => 'Informe de Reconciliación',
+ 'Record in' => 'Registrar en',
+ 'Recurring Transaction' => '',
+ 'Recurring Transactions' => '',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Remanente',
+ 'Remove' => 'Eliminar',
+ 'Remove Audit trail up to' => 'Remover Rastro de Auditoría hasta',
+ 'Remove Audit trails up to' => 'Remover Rastro de Auditoría hasta',
+ 'Removed spoolfiles!' => '¡Archivos de la cola eliminados!',
+ 'Removing marked entries from queue ...' => 'Eliminado entradas seleccionadas de la cola ...',
+ 'Repeat' => '',
+ 'Report for' => 'Informe de',
+ 'Reports' => 'Informes',
+ 'Req' => '',
+ 'Request for Quotation' => 'Solicitud de cotización',
+ 'Request for Quotations' => 'Solicitudes de cotización',
+ 'Required by' => 'Requerido para el',
+ 'Retained Earnings' => 'Resultado del Periodo',
+ 'Role' => 'Función',
+ 'S' => 'S',
+ 'SIC' => 'CIS',
+ 'SIC deleted!' => '¡CIS borrado!',
+ 'SIC saved!' => '¡CIS guardado!',
+ 'SKU' => 'SKU',
+ 'SSN' => 'C.I.Nº',
+ 'Sale' => 'Venta',
+ 'Sales' => 'Ventas',
+ 'Sales Invoice' => 'Factura (venta)',
+ 'Sales Invoice ' => 'Factura (venta) ',
+ 'Sales Invoice.' => 'Factura (venta).',
+ 'Sales Invoice/AR Transaction Number' => '',
+ 'Sales Invoices' => 'Facturas (venta)',
+ 'Sales Order' => 'Orden de Venta',
+ 'Sales Order Number' => 'Número de Orden de Venta',
+ 'Sales Orders' => 'Ordenes de Venta',
+ 'Sales Quotation Number' => 'Número de Cotización',
+ 'Salesperson' => 'Vendedor',
+ 'Saturday' => '',
+ 'Save' => 'Guardar',
+ 'Save Pricelist' => 'Guardar Lista de Precios',
+ 'Save Schedule' => '',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Save to File' => 'Guardar en un archivo',
+ 'Saving' => '',
+ 'Schedule' => '',
+ 'Scheduled' => '',
+ 'Screen' => 'Pantalla',
+ 'Search' => 'Búsqueda',
+ 'Select' => 'Seleccionar',
+ 'Select Customer' => '',
+ 'Select Vendor' => '',
+ 'Select a Printer!' => '',
+ 'Select a printer!' => '',
+ 'Select all' => 'Seleccionar todo',
+ 'Select from one of the items below' => 'Seleccione uno de los artículos siguientes',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Select items' => '',
+ 'Select payment' => 'Seleccione el pago',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF!',
+ 'Select txt, postscript or PDF!' => '¡Seleccione Texto, Postscript o PDF!',
+ 'Sell' => 'Vender',
+ 'Sell Price' => 'Precio de venta',
+ 'Send by E-Mail' => 'Enviar por correo electrónico',
+ 'Sending' => '',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'Núm. de serie',
+ 'Serial Number' => 'Número de serie',
+ 'Service' => 'Servicio',
+ 'Service Code' => '',
+ 'Service/Labor Code' => '',
+ 'Services' => 'Servicios',
+ 'Session Timeout' => 'Expiración de la sesión',
+ 'Session expired!' => '¡La sesión caducó!',
+ 'Setup Templates' => 'Configurar Plantillas',
+ 'Ship' => 'Enviar',
+ 'Ship Merchandise' => 'Enviar Mercadería',
+ 'Ship to' => 'Enviar a',
+ 'Ship via' => 'Enviar por',
+ 'Shipping' => 'Envío',
+ 'Shipping Address' => 'Dirección de envío',
+ 'Shipping Date' => 'Fecha de envío',
+ 'Shipping Date missing!' => '¡Falta la fecha de envío!',
+ 'Shipping Point' => 'Punto de envío',
+ 'Short' => 'Corto',
+ 'Signature' => 'Firma',
+ 'Source' => 'Origen',
+ 'Spoolfile' => 'Cola de Impresión',
+ 'Standard' => 'Estándard',
+ 'Standard Industrial Codes' => 'Código Industrial Estandardizado (CIS)',
+ 'Startdate' => 'Fecha de inicio',
+ 'State' => 'Departamento',
+ 'State/Province' => 'Departamento',
+ 'Statement' => 'Estado de cuenta',
+ 'Statement Balance' => 'Saldo bancario',
+ 'Statement sent to' => 'Estado de cuenta enviado a',
+ 'Statements sent to printer!' => '¡Estado de cuenta enviado a la impresora!',
+ 'Stock' => 'Inventario',
+ 'Stock Assembly' => 'Reponer ensamblaje',
+ 'Stocking Date' => '',
+ 'Stylesheet' => 'Hoja de estilos',
+ 'Sub-contract GIFI' => 'PCF del subcontrato',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resúmen',
+ 'Sunday' => '',
+ 'Supervisor' => 'Supervisor',
+ 'System' => 'Sistema',
+ 'System Defaults' => 'Predeterminados del Sistema',
+ 'Tax' => 'Impuestos',
+ 'Tax Accounts' => 'Cuentas de Impuestos',
+ 'Tax Included' => 'IVA Incluido',
+ 'Tax Number' => 'RUC',
+ 'Tax Number / SSN' => 'RUC/CIP',
+ 'Tax collected' => 'Impuesto Retenido',
+ 'Tax paid' => 'Impuestos pagados',
+ 'Taxable' => 'Gravado',
+ 'Template saved!' => '¡Plantilla guardada!',
+ 'Templates' => 'Plantillas',
+ 'Terms' => 'Condiciones',
+ 'Text' => '',
+ 'Text Templates' => 'Plantillas de texto',
+ 'The following Datasets are not in use and can be deleted' => 'Las siguientes bases de datos no están en uso y pueden ser borradas',
+ 'The following Datasets need to be updated' => 'Es necesario actualizar las siguientes bases de datos',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Verificación preliminar. En esta etapa no se creará ni se borrará nada!',
+ 'Thursday' => '',
+ 'Till' => 'Caja Registradora',
+ 'Time In' => '',
+ 'Time Out' => '',
+ 'Timecard' => '',
+ 'Timecard deleted!' => '',
+ 'Timecard saved!' => '',
+ 'Timecards' => '',
+ 'Times' => '',
+ 'To' => 'Hasta',
+ 'To Warehouse' => '',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Para agregar un usuario a un grupo, seleccione un nombre, cambie el nombre de usuario (login) y guarde los cambios. Un nuevo usuario con las mismas variables se creará bajo el nuevo nombre de usuario (login).',
+ 'Top Level' => 'Nivel Superior',
+ 'Total' => 'Total',
+ 'Tracking Items' => '',
+ 'Trade Discount' => 'Descuento comercial',
+ 'Transaction' => 'Asiento',
+ 'Transaction Date missing!' => '¡Falta la fecha del Asiento!',
+ 'Transaction Dates' => '',
+ 'Transaction deleted!' => '¡Asiento borrado!',
+ 'Transaction posted!' => '¡Asiento registrado!',
+ 'Transaction reversal enforced for all dates' => 'Reversión de Asientos activado para todas las fechas',
+ 'Transaction reversal enforced up to' => 'Reversión de Asientos activado hasta',
+ 'Transactions' => 'Asientos',
+ 'Transfer' => 'Transferencia',
+ 'Transfer Inventory' => 'Transferir existencia',
+ 'Transfer from' => '',
+ 'Transfer to' => 'Transferir a',
+ 'Translation' => 'Traducción',
+ 'Translation deleted!' => '¡Traducción borrada!',
+ 'Translation not on file!' => 'No hay Traducción',
+ 'Translations' => 'Traducciones',
+ 'Translations saved!' => '¡Traducciones guardadas!',
+ 'Trial Balance' => 'Balance de Prueba',
+ 'Tuesday' => '',
+ 'Type of Business' => 'Clase de Negocio',
+ 'Unit' => 'Unidad',
+ 'Unit of measure' => 'Unidad de medida',
+ 'Unlock System' => 'Desbloquear el sistema',
+ 'Update' => 'Actualizar',
+ 'Update Dataset' => 'Actualizar base de datos',
+ 'Updated' => 'Actualizado',
+ 'Upgrading to Version' => 'Actualizando a versión',
+ 'Use Templates' => 'Usar Plantillas',
+ 'User' => 'Usuario',
+ 'User deleted!' => '¡Usuario borrado!',
+ 'User saved!' => '¡Usuario guardado!',
+ 'Valid until' => 'Válido hasta',
+ 'Vendor' => 'Proveedor',
+ 'Vendor History' => 'Historial del Proveedor',
+ 'Vendor Invoice' => 'Factura de Proveedor',
+ 'Vendor Invoice ' => 'Factura de Proveedor ',
+ 'Vendor Invoice.' => 'Factura de Proveedor.',
+ 'Vendor Invoice/AP Transaction Number' => '',
+ 'Vendor Invoices' => 'Facturas de Proveedor',
+ 'Vendor Number' => 'Código de Proveedor',
+ 'Vendor deleted!' => '¡Proveedor borrado!',
+ 'Vendor missing!' => '¡Falta el Proveedor!',
+ 'Vendor not on file!' => '¡Proveedor no registrado!',
+ 'Vendor saved!' => '¡Proveedor guardado!',
+ 'Vendors' => 'Proveedores',
+ 'Version' => 'Versión',
+ 'Warehouse' => 'Almacén',
+ 'Warehouse deleted!' => '¡Almacén borrado!',
+ 'Warehouse saved!' => '¡Almacén guardado!',
+ 'Warehouses' => 'Almacenes',
+ 'Warning!' => '¡Advertencia!',
+ 'Wednesday' => '',
+ 'Week' => '',
+ 'Week(s)' => '',
+ 'Weeks' => '',
+ 'Weight' => 'Peso',
+ 'Weight Unit' => 'Unidad de peso',
+ 'What type of item is this?' => '¿Que tipo de articulo es este?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Work Orders' => 'Ordenes de Trabajo',
+ 'Work Phone' => 'Teléfono (Oficina)',
+ 'Year' => 'Año',
+ 'Year(s)' => '',
+ 'Yearend' => 'Cierre del Periodo',
+ 'Yearend date missing!' => '¡Falta la Fecha de Cierre del Periodo!',
+ 'Yearend posted!' => '¡Cierre del Periodo registrado!',
+ 'Yearend posting failed!' => '¡Falló el Cierre del Periodo!',
+ 'Years' => '',
+ 'Yes' => 'Si',
+ 'You are logged out' => 'Usted ha salido del sistema',
+ 'You are posting an existing transaction!' => '',
+ 'You are printing and posting an existing transaction!' => '',
+ 'You are printing and saving an existing order' => '',
+ 'You are printing and saving an existing quotation' => '',
+ 'You are printing and saving an existing transaction!' => '',
+ 'You are saving an existing order' => '',
+ 'You are saving an existing quotation' => '',
+ 'You are saving an existing transaction!' => '',
+ 'You did not enter a name!' => '¡No ingresó un Nombre!',
+ 'You must enter a host and port for local and remote connections!' => 'Debe ingresar un servidor y un puerto para conecciones locales y remotas!',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'account cannot be set to any other type of account' => 'No se puede cambiar a otro Tipo de Cuenta',
+ 'as at' => 'como a',
+ 'days' => 'días',
+ 'does not exist' => 'no existe',
+ 'done' => 'Terminado',
+ 'ea' => 'c/u',
+ 'failed' => '',
+ 'for' => '',
+ 'for Period' => 'para el Período',
+ 'is already a member!' => '¡ya es miembro!',
+ 'localhost' => 'servidor local',
+ 'locked!' => '¡bloqueado!',
+ 'partsgroup' => '',
+ 'posted!' => '¡Registrado!',
+ 'sent' => 'Enviado',
+ 'successfully created!' => '¡creado con éxito!',
+ 'successfully deleted!' => '¡borrado con éxito!',
+ 'time(s)' => '',
+ 'unexpected error!' => '',
+ 'website' => 'sitio web',
+};
+
+1;
diff --git a/locale/pa/am b/locale/pa/am
new file mode 100755
index 00000000..52003de6
--- /dev/null
+++ b/locale/pa/am
@@ -0,0 +1,284 @@
+$self{texts} = {
+ 'AP' => 'Cuentas por Pagar',
+ 'AR' => 'Cuentas por Cobrar',
+ 'About' => 'Acerca de',
+ 'Account' => 'Cuenta',
+ 'Account Number' => 'Número de Cuenta',
+ 'Account Number missing!' => '¡Falta el Número de Cuenta!',
+ 'Account Type' => 'Tipo de Cuenta',
+ 'Account Type missing!' => '¡Falta el Tipo de Cuenta!',
+ 'Account deleted!' => '¡Cuenta eliminada!',
+ 'Account does not exist!' => '¡Cuenta no existe!',
+ 'Account saved!' => '¡Cuenta guardada!',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Accrual' => 'Acumulado',
+ 'Activate Audit trail' => 'Activar Rastro Auditoría',
+ 'Add Account' => 'Agregar Cuenta',
+ 'Add Business' => 'Agregar Negocio',
+ 'Add Department' => 'Agregar Centro de Costos',
+ 'Add GIFI' => 'Agregar PCF',
+ 'Add Language' => 'Agregar Idioma',
+ 'Add SIC' => 'Agregar CIS',
+ 'Add Warehouse' => 'Agregar Almacén',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Importe',
+ 'Asset' => 'Activo',
+ 'Audit Control' => 'Control de Auditoría',
+ 'Audit trail disabled' => 'Rastro de Auditoría desactivado',
+ 'Audit trail enabled' => 'Rastro de Auditoría activado',
+ 'Audit trail removed up to' => 'Rastro de Auditoría eliminado hasta',
+ 'Backup sent to' => 'Copia de Seguridad enviada a',
+ 'Bin List' => 'Lista de Ubicaciones',
+ 'Books are open' => 'Los Libros están abiertos',
+ 'Business Number' => 'RUC',
+ 'Business deleted!' => '¡Negocio borrado!',
+ 'Business saved!' => '¡Negocio guardado!',
+ 'COGS' => 'Costo de Ventas',
+ 'Cannot delete account!' => '¡No se puede borrar la Cuenta!',
+ 'Cannot delete default account!' => '¡No se puede borrar la Cuenta por Defecto!',
+ 'Cannot save account!' => '¡No se puede guardar la Cuenta!',
+ 'Cannot save defaults!' => '¡No se puede guardar los Predeterminados!',
+ 'Cannot save preferences!' => '¡No se puede guardar las Preferencias!',
+ 'Cannot set account for more than one of AR, AP or IC' => 'No se puede configurar una Cuenta para más de una de las opciones (CxC, CxP o Inventario)',
+ 'Cannot set multiple options for' => 'No se pueden configurar opciones múltiples para',
+ 'Cash' => 'Efectivo',
+ 'Chart of Accounts' => 'Plan de Cuentas',
+ 'Close Books up to' => 'Cerrar los Libros hasta',
+ 'Code' => 'Código',
+ 'Code missing!' => '¡Falta el Código!',
+ 'Company' => 'Empresa',
+ 'Confirm' => 'Confirmar',
+ 'Confirm!' => '¡Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Contra' => 'Cuentas del Orden',
+ 'Copy to COA' => 'Copiar al Plan de Cuentas',
+ 'Cost Center' => 'Centro de Costos',
+ 'Credit' => 'Crédito',
+ 'Customer Number' => 'Código del Cliente',
+ 'Database Host' => 'Servidor de Base de Datos',
+ 'Dataset' => 'Base de Datos',
+ 'Date Format' => 'Formato de Fecha',
+ 'Debit' => 'Débito',
+ 'Defaults saved!' => '¡Valores predeterminados guardados!',
+ 'Delete' => 'Borrar',
+ 'Delete Account' => 'Borrar cuenta',
+ 'Department deleted!' => '¡Departamento borrado!',
+ 'Department saved!' => '¡Departamento guardado!',
+ 'Departments' => 'Departamentos',
+ 'Description' => 'Descripción',
+ 'Description missing!' => '¡Falta la descripción!',
+ 'Discount' => 'Descuento',
+ 'Dropdown Limit' => 'Limite en listas desplegables',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail address missing!' => '¡Falta dirección E-mail!',
+ 'Edit' => 'Modificar',
+ 'Edit Account' => 'Modificar cuenta',
+ 'Edit Business' => 'Modificar Negocio',
+ 'Edit Department' => 'Modificar Departamento',
+ 'Edit GIFI' => 'Modificar PCF',
+ 'Edit Language' => 'Modificar Idioma',
+ 'Edit Preferences for' => 'Modificar Preferencias para',
+ 'Edit SIC' => 'Modificar CIS',
+ 'Edit Template' => 'Modificar Plantilla',
+ 'Edit Warehouse' => 'Modificar Almacén',
+ 'Employee Number' => 'Código del empleado',
+ 'Enforce transaction reversal for all dates' => 'Forzar reversión de asientos para todas las fechas',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Introduzca hasta 3 letras separadas por dos puntos (ej. PYG:USD:EUR) para las monedas local y extranjeras',
+ 'Equity' => 'Capital',
+ 'Expense' => 'Gasto',
+ 'Expense/Asset' => 'Gasto/Activo',
+ 'Fax' => 'Fax',
+ 'Foreign Exchange Gain' => 'Ganancia en Moneda Extranjera',
+ 'Foreign Exchange Loss' => 'Pérdida en Moneda Extranjera',
+ 'GIFI' => 'Plan de Cuentas Fiscal (PCF)',
+ 'GIFI deleted!' => '¡Borrado el código PCF!',
+ 'GIFI missing!' => '¡Falta el código PCF!',
+ 'GIFI saved!' => '¡Guardado el código PCF!',
+ 'GL Transaction' => 'Asiento en el libro mayor',
+ 'Heading' => 'Encabezado',
+ 'ID' => 'ID',
+ 'Include in drop-down menus' => 'Incluir en listas desplegables',
+ 'Income' => 'Ingreso',
+ 'Inventory' => 'Inventario',
+ 'Invoice' => 'Factura',
+ 'Is this a summary account to record' => '¿Es ésta una cuenta de resúmen a registrar?',
+ 'Language' => 'Idioma',
+ 'Language deleted!' => '¡Idioma borrado!',
+ 'Language saved!' => '¡Idioma guardado!',
+ 'Languages' => 'Idiomas',
+ 'Last Numbers & Default Accounts' => 'Últimos números y cuentas por omisión',
+ 'Liability' => 'Pasivo',
+ 'Licensed to' => 'Uso autorizado a',
+ 'Link' => 'Vínculo',
+ 'Menu Width' => 'Ancho del Menú',
+ 'Method' => 'Método',
+ 'Month' => 'Mes',
+ 'Name' => 'Nombre',
+ 'No' => 'No',
+ 'No email address for' => 'Falta la dirección de correo electrónico de',
+ 'Number' => 'Número',
+ 'Number Format' => 'Formato Numérico',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de Empaque',
+ 'Password' => 'Contraseña',
+ 'Password does not match!' => '¡La contraseña no coincide!',
+ 'Payables' => 'Cuentas por Pagar',
+ 'Payment' => 'Pago',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Selección',
+ 'Postscript' => 'Postscript',
+ 'Preferences saved!' => '¡Preferencias guardadas!',
+ 'Print' => 'Imprimir',
+ 'Printer' => 'Impresora',
+ 'Profit Center' => 'Centro de Ingresos',
+ 'Purchase Order' => 'Orden de Compra',
+ 'Purchase Order Number' => 'Número de Orden de Compra',
+ 'Purchase Orders' => 'Ordenes de Compra',
+ 'RFQ Number' => 'Número de Solicitud de cotización',
+ 'Rate' => 'Tarifa',
+ 'Receivables' => 'Cuentas por Cobrar',
+ 'Reference' => 'Referencia',
+ 'Remove Audit trail up to' => 'Remover Rastro de Auditoría hasta',
+ 'Retained Earnings' => 'Resultado del Periodo',
+ 'SIC deleted!' => '¡CIS borrado!',
+ 'SIC saved!' => '¡CIS guardado!',
+ 'Sales Invoice' => 'Factura (venta)',
+ 'Sales Order' => 'Orden de Venta',
+ 'Sales Order Number' => 'Número de Orden de Venta',
+ 'Sales Orders' => 'Ordenes de Venta',
+ 'Sales Quotation Number' => 'Número de Cotización',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Session Timeout' => 'Expiración de la sesión',
+ 'Signature' => 'Firma',
+ 'Standard Industrial Codes' => 'Código Industrial Estandardizado (CIS)',
+ 'Stylesheet' => 'Hoja de estilos',
+ 'System Defaults' => 'Predeterminados del Sistema',
+ 'Tax' => 'Impuestos',
+ 'Template saved!' => '¡Plantilla guardada!',
+ 'Transaction' => 'Asiento',
+ 'Transaction reversal enforced for all dates' => 'Reversión de Asientos activado para todas las fechas',
+ 'Transaction reversal enforced up to' => 'Reversión de Asientos activado hasta',
+ 'Type of Business' => 'Clase de Negocio',
+ 'Update' => 'Actualizar',
+ 'User' => 'Usuario',
+ 'Vendor Invoice' => 'Factura de Proveedor',
+ 'Vendor Number' => 'Código de Proveedor',
+ 'Version' => 'Versión',
+ 'Warehouse deleted!' => '¡Almacén borrado!',
+ 'Warehouse saved!' => '¡Almacén guardado!',
+ 'Warehouses' => 'Almacenes',
+ 'Weight Unit' => 'Unidad de peso',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Year' => 'Año',
+ 'Yearend' => 'Cierre del Periodo',
+ 'Yearend date missing!' => '¡Falta la Fecha de Cierre del Periodo!',
+ 'Yearend posted!' => '¡Cierre del Periodo registrado!',
+ 'Yearend posting failed!' => '¡Falló el Cierre del Periodo!',
+ 'Yes' => 'Si',
+ 'account cannot be set to any other type of account' => 'No se puede cambiar a otro Tipo de Cuenta',
+ 'done' => 'Terminado',
+ 'localhost' => 'servidor local',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'agregar_cuenta' => 'add_account',
+ 'agregar_negocio' => 'add_business',
+ 'agregar_centro_de_costos' => 'add_department',
+ 'agregar_idioma' => 'add_language',
+ 'agregar_cis' => 'add_sic',
+ 'agregar_almacén' => 'add_warehouse',
+ 'continuar' => 'continue',
+ 'copiar_al_plan_de_cuentas' => 'copy_to_coa',
+ 'borrar' => 'delete',
+ 'modificar' => 'edit',
+ 'modificar_cuenta' => 'edit_account',
+ 'guardar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/pa/ap b/locale/pa/ap
new file mode 100755
index 00000000..e5b86cae
--- /dev/null
+++ b/locale/pa/ap
@@ -0,0 +1,210 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Cuentas por Pagar pendientes',
+ 'AP Transaction' => 'Movimiento de Cuentas por Pagar',
+ 'AP Transactions' => 'Movimientos de Cuentas por Pagar',
+ 'AR Outstanding' => 'Cuentas por Cobrar pendientes',
+ 'AR Transaction' => 'Movimiento de Cuentas por Cobrar',
+ 'AR Transactions' => 'Movimientos de Cuentas por Cobrar',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Add AP Transaction' => 'Agregar Asiento de Cuentas por Pagar',
+ 'Add AR Transaction' => 'Agregar Asiento de Cuentas por Cobrar',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Importe',
+ 'Amount Due' => 'Importe Adeudado',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => '¿Seguro que desea borrar el Asiento?',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'B.C.C.',
+ 'Cannot delete transaction!' => '¡No se puede borrar el Asiento!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un Pago para un periodo cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar un Asiento para un periodo cerrado!',
+ 'Cannot post transaction!' => '¡No se puede registrar el Asiento!',
+ 'Cc' => 'C.C.',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Cerrado',
+ 'Confirm!' => '¡Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Límite de Crédito',
+ 'Curr' => 'Div',
+ 'Currency' => 'Divisa',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el Cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Date Paid' => 'Fecha de Pago',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'Due Date missing!' => '¡Falta fecha de vencimiento!',
+ 'E-mail' => 'Correo electrónico',
+ 'Edit AP Transaction' => 'Modificar asiento de Cuentas por Pagar',
+ 'Edit AR Transaction' => 'Modificar asiento de Cuentas por Cobrar',
+ 'Employee' => 'Empleado',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate for payment missing!' => '¡Falta la tasa de cambio para el pago!',
+ 'Exchange rate missing!' => '¡Falta la tasa de cambio!',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => '¡Falta la fecha de la factura!',
+ 'Invoice Number' => 'Número de factura',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Manager' => 'Gerente',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Nota',
+ 'Message' => 'Mensaje',
+ 'Month' => 'Mes',
+ 'No.' => 'Nº',
+ 'Notes' => 'Notas',
+ 'Nothing to print!' => '¡No hay nada para imprimir!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Number' => 'Número de la orden',
+ 'PDF' => 'PDF',
+ 'Paid' => 'Pagado',
+ 'Payment date missing!' => '¡Falta la fecha del pago!',
+ 'Payments' => 'Pagos',
+ 'Period' => 'Periodo',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => '¡Proyecto no registrado!',
+ 'Quarter' => 'Trimestre',
+ 'Receipt' => 'Recibo',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Remanente',
+ 'Sales Invoice.' => 'Factura (venta).',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Select payment' => 'Seleccione el pago',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Ship to' => 'Enviar a',
+ 'Ship via' => 'Enviar por',
+ 'Shipping Point' => 'Punto de envío',
+ 'Source' => 'Origen',
+ 'Startdate' => 'Fecha de inicio',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resúmen',
+ 'Tax' => 'Impuestos',
+ 'Tax Included' => 'IVA Incluido',
+ 'Till' => 'Caja Registradora',
+ 'To' => 'Hasta',
+ 'Total' => 'Total',
+ 'Transaction' => 'Asiento',
+ 'Transaction deleted!' => '¡Asiento borrado!',
+ 'Transaction posted!' => '¡Asiento registrado!',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice.' => 'Factura de Proveedor.',
+ 'Vendor missing!' => '¡Falta el Proveedor!',
+ 'Vendor not on file!' => '¡Proveedor no registrado!',
+ 'Warning!' => '¡Advertencia!',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'movimiento_de_cuentas_por_pagar' => 'ap_transaction',
+ 'movimiento_de_cuentas_por_cobrar' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'imprimir_y_registrar' => 'print_and_post',
+ 'factura_(venta)_' => 'sales_invoice_',
+ 'enviar_a' => 'ship_to',
+ 'actualizar' => 'update',
+ 'factura_de_proveedor_' => 'vendor_invoice_',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/pa/ar b/locale/pa/ar
new file mode 100755
index 00000000..e5b86cae
--- /dev/null
+++ b/locale/pa/ar
@@ -0,0 +1,210 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Cuentas por Pagar pendientes',
+ 'AP Transaction' => 'Movimiento de Cuentas por Pagar',
+ 'AP Transactions' => 'Movimientos de Cuentas por Pagar',
+ 'AR Outstanding' => 'Cuentas por Cobrar pendientes',
+ 'AR Transaction' => 'Movimiento de Cuentas por Cobrar',
+ 'AR Transactions' => 'Movimientos de Cuentas por Cobrar',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Add AP Transaction' => 'Agregar Asiento de Cuentas por Pagar',
+ 'Add AR Transaction' => 'Agregar Asiento de Cuentas por Cobrar',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Importe',
+ 'Amount Due' => 'Importe Adeudado',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => '¿Seguro que desea borrar el Asiento?',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'B.C.C.',
+ 'Cannot delete transaction!' => '¡No se puede borrar el Asiento!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un Pago para un periodo cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar un Asiento para un periodo cerrado!',
+ 'Cannot post transaction!' => '¡No se puede registrar el Asiento!',
+ 'Cc' => 'C.C.',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Cerrado',
+ 'Confirm!' => '¡Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Límite de Crédito',
+ 'Curr' => 'Div',
+ 'Currency' => 'Divisa',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el Cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Date Paid' => 'Fecha de Pago',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'Due Date missing!' => '¡Falta fecha de vencimiento!',
+ 'E-mail' => 'Correo electrónico',
+ 'Edit AP Transaction' => 'Modificar asiento de Cuentas por Pagar',
+ 'Edit AR Transaction' => 'Modificar asiento de Cuentas por Cobrar',
+ 'Employee' => 'Empleado',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate for payment missing!' => '¡Falta la tasa de cambio para el pago!',
+ 'Exchange rate missing!' => '¡Falta la tasa de cambio!',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => '¡Falta la fecha de la factura!',
+ 'Invoice Number' => 'Número de factura',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Manager' => 'Gerente',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Nota',
+ 'Message' => 'Mensaje',
+ 'Month' => 'Mes',
+ 'No.' => 'Nº',
+ 'Notes' => 'Notas',
+ 'Nothing to print!' => '¡No hay nada para imprimir!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Number' => 'Número de la orden',
+ 'PDF' => 'PDF',
+ 'Paid' => 'Pagado',
+ 'Payment date missing!' => '¡Falta la fecha del pago!',
+ 'Payments' => 'Pagos',
+ 'Period' => 'Periodo',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => '¡Proyecto no registrado!',
+ 'Quarter' => 'Trimestre',
+ 'Receipt' => 'Recibo',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Remanente',
+ 'Sales Invoice.' => 'Factura (venta).',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Select payment' => 'Seleccione el pago',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Ship to' => 'Enviar a',
+ 'Ship via' => 'Enviar por',
+ 'Shipping Point' => 'Punto de envío',
+ 'Source' => 'Origen',
+ 'Startdate' => 'Fecha de inicio',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resúmen',
+ 'Tax' => 'Impuestos',
+ 'Tax Included' => 'IVA Incluido',
+ 'Till' => 'Caja Registradora',
+ 'To' => 'Hasta',
+ 'Total' => 'Total',
+ 'Transaction' => 'Asiento',
+ 'Transaction deleted!' => '¡Asiento borrado!',
+ 'Transaction posted!' => '¡Asiento registrado!',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice.' => 'Factura de Proveedor.',
+ 'Vendor missing!' => '¡Falta el Proveedor!',
+ 'Vendor not on file!' => '¡Proveedor no registrado!',
+ 'Warning!' => '¡Advertencia!',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'movimiento_de_cuentas_por_pagar' => 'ap_transaction',
+ 'movimiento_de_cuentas_por_cobrar' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'imprimir_y_registrar' => 'print_and_post',
+ 'factura_(venta)_' => 'sales_invoice_',
+ 'enviar_a' => 'ship_to',
+ 'actualizar' => 'update',
+ 'factura_de_proveedor_' => 'vendor_invoice_',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/pa/arap b/locale/pa/arap
new file mode 100755
index 00000000..9a89e114
--- /dev/null
+++ b/locale/pa/arap
@@ -0,0 +1,51 @@
+$self{texts} = {
+ 'Address' => 'Dirección',
+ 'Bcc' => 'B.C.C.',
+ 'Cc' => 'C.C.',
+ 'Continue' => 'Continuar',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Description' => 'Descripción',
+ 'E-mail' => 'Correo electrónico',
+ 'Message' => 'Mensaje',
+ 'Number' => 'Número',
+ 'Print' => 'Imprimir',
+ 'Project not on file!' => '¡Proyecto no registrado!',
+ 'Reference' => 'Referencia',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Startdate' => 'Fecha de inicio',
+ 'Subject' => 'Asunto',
+ 'To' => 'Hasta',
+ 'Vendor not on file!' => '¡Proveedor no registrado!',
+ 'Warning!' => '¡Advertencia!',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/pa/arapprn b/locale/pa/arapprn
new file mode 100755
index 00000000..e07e0ba6
--- /dev/null
+++ b/locale/pa/arapprn
@@ -0,0 +1,32 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Amount' => 'Importe',
+ 'Continue' => 'Continuar',
+ 'Date' => 'Fecha',
+ 'Memo' => 'Nota',
+ 'Nothing to print!' => '¡No hay nada para imprimir!',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'Postscript',
+ 'Printed' => 'Impreso',
+ 'Screen' => 'Pantalla',
+ 'Select payment' => 'Seleccione el pago',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF!',
+ 'Source' => 'Origen',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/pa/bp b/locale/pa/bp
new file mode 100755
index 00000000..53e3b82e
--- /dev/null
+++ b/locale/pa/bp
@@ -0,0 +1,67 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Are you sure you want to remove the marked entries from the queue?' => '¿Seguro que desea borrar las entradas seleccionadas de la cola?',
+ 'Bin Lists' => 'Listas de Ubicaciones',
+ 'Cannot remove files!' => '¡No se pueden borrar los archivos!',
+ 'Confirm!' => '¡Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Date' => 'Fecha',
+ 'Employee' => 'Empleado',
+ 'From' => 'Desde',
+ 'ID' => 'ID',
+ 'Invoice' => 'Factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Marked entries printed!' => '¡Entradas seleccionadas impresas!',
+ 'Month' => 'Mes',
+ 'Order' => 'Orden',
+ 'Order Number' => 'Número de la orden',
+ 'Packing Lists' => 'Listas de empaque',
+ 'Period' => 'Periodo',
+ 'Pick Lists' => 'Listas de Selección',
+ 'Print' => 'Imprimir',
+ 'Purchase Orders' => 'Ordenes de Compra',
+ 'Quarter' => 'Trimestre',
+ 'Quotation' => 'Cotización',
+ 'Quotation Number' => 'Número de Cotización',
+ 'Quotations' => 'Cotizaciones',
+ 'RFQs' => 'Solicitudes de cotización',
+ 'Remove' => 'Eliminar',
+ 'Removed spoolfiles!' => '¡Archivos de la cola eliminados!',
+ 'Removing marked entries from queue ...' => 'Eliminado entradas seleccionadas de la cola ...',
+ 'Sales Invoices' => 'Facturas (venta)',
+ 'Sales Orders' => 'Ordenes de Venta',
+ 'Select all' => 'Seleccionar todo',
+ 'Spoolfile' => 'Cola de Impresión',
+ 'To' => 'Hasta',
+ 'Vendor' => 'Proveedor',
+ 'Work Orders' => 'Ordenes de Trabajo',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+ 'done' => 'Terminado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'imprimir' => 'print',
+ 'eliminar' => 'remove',
+ 'seleccionar_todo' => 'select_all',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/pa/ca b/locale/pa/ca
new file mode 100755
index 00000000..baa401a7
--- /dev/null
+++ b/locale/pa/ca
@@ -0,0 +1,59 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Saldo',
+ 'Chart of Accounts' => 'Plan de Cuentas',
+ 'Credit' => 'Crédito',
+ 'Current' => 'Actual',
+ 'Date' => 'Fecha',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descripción',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'GIFI' => 'Plan de Cuentas Fiscal (PCF)',
+ 'Include in Report' => 'Incluir en informe',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'List Transactions' => 'Mostrar Transacciones',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Month' => 'Mes',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Period' => 'Periodo',
+ 'Project Number' => 'Número del Proyecto',
+ 'Quarter' => 'Trimestre',
+ 'R' => 'R',
+ 'Reference' => 'Referencia',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'Hasta',
+ 'Year' => 'Año',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'mostrar_transacciones' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/pa/cp b/locale/pa/cp
new file mode 100755
index 00000000..1f08e2e6
--- /dev/null
+++ b/locale/pa/cp
@@ -0,0 +1,123 @@
+$self{texts} = {
+ 'AP' => 'Cuentas por Pagar',
+ 'AR' => 'Cuentas por Cobrar',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Address' => 'Dirección',
+ 'All' => 'Todo',
+ 'Amount' => 'Importe',
+ 'Amount Due' => 'Importe Adeudado',
+ 'Bcc' => 'B.C.C.',
+ 'Cannot post Payment!' => '¡No se puede registrar el Pago!',
+ 'Cannot post Receipt!' => '¡No se puede registrar el Recibo!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un Pago para un periodo cerrado!',
+ 'Cc' => 'C.C.',
+ 'Continue' => 'Continuar',
+ 'Currency' => 'Divisa',
+ 'Customer' => 'Cliente',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Date missing!' => '¡Falta la fecha!',
+ 'Department' => 'Departamento',
+ 'Deposit' => 'Depósito',
+ 'Description' => 'Descripción',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate missing!' => '¡Falta la tasa de cambio!',
+ 'From' => 'Desde',
+ 'Invoice' => 'Factura',
+ 'Invoices' => 'Facturas',
+ 'Language' => 'Idioma',
+ 'Memo' => 'Nota',
+ 'Message' => 'Mensaje',
+ 'Number' => 'Número',
+ 'PDF' => 'PDF',
+ 'Payment' => 'Pago',
+ 'Payment posted!' => '¡Pago registrado!',
+ 'Payments' => 'Pagos',
+ 'Post' => 'Registrar',
+ 'Postscript' => 'Postscript',
+ 'Prepayment' => 'Anticipo',
+ 'Print' => 'Imprimir',
+ 'Project not on file!' => '¡Proyecto no registrado!',
+ 'Receipt' => 'Recibo',
+ 'Receipt posted!' => '¡Recibo registrado!',
+ 'Receipts' => 'Recibos',
+ 'Reference' => 'Referencia',
+ 'Screen' => 'Pantalla',
+ 'Select' => 'Seleccionar',
+ 'Select all' => 'Seleccionar todo',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF!',
+ 'Source' => 'Origen',
+ 'Startdate' => 'Fecha de inicio',
+ 'Subject' => 'Asunto',
+ 'To' => 'Hasta',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor not on file!' => '¡Proveedor no registrado!',
+ 'Warning!' => '¡Advertencia!',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuar' => 'continue',
+ 'registrar' => 'post',
+ 'imprimir' => 'print',
+ 'seleccionar_todo' => 'select_all',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/pa/ct b/locale/pa/ct
new file mode 100755
index 00000000..872cf475
--- /dev/null
+++ b/locale/pa/ct
@@ -0,0 +1,186 @@
+$self{texts} = {
+ 'AP Transaction' => 'Movimiento de Cuentas por Pagar',
+ 'AP Transactions' => 'Movimientos de Cuentas por Pagar',
+ 'AR Transaction' => 'Movimiento de Cuentas por Cobrar',
+ 'AR Transactions' => 'Movimientos de Cuentas por Cobrar',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Active' => 'Activo',
+ 'Add Customer' => 'Agregar Cliente',
+ 'Add Vendor' => 'Agregar Proveedor',
+ 'Address' => 'Dirección',
+ 'All' => 'Todo',
+ 'Amount' => 'Importe',
+ 'BIC' => 'BIC',
+ 'Bcc' => 'B.C.C.',
+ 'Billing Address' => 'Dirección para Facturación',
+ 'Break' => 'Romper',
+ 'Cannot delete customer!' => '¡No se puede borrar el Cliente!',
+ 'Cannot delete vendor!' => '¡No se puede borrar el Proveedor!',
+ 'Cc' => 'C.C.',
+ 'City' => 'Ciudad',
+ 'Closed' => 'Cerrado',
+ 'Company Name' => 'Razón Social',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Cost' => 'Costo',
+ 'Could not save pricelist!' => '¡No se pudo guardar la Lista de Precios!',
+ 'Country' => 'País',
+ 'Credit Limit' => 'Límite de Crédito',
+ 'Curr' => 'Div',
+ 'Currency' => 'Divisa',
+ 'Customer History' => 'Historial del Cliente',
+ 'Customer Number' => 'Código del Cliente',
+ 'Customer deleted!' => '¡Cliente borrado!',
+ 'Customer saved!' => '¡Cliente guardado!',
+ 'Customers' => 'Clientes',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Discount' => 'Descuento',
+ 'E-mail' => 'Correo electrónico',
+ 'Edit Customer' => 'Modificar Cliente',
+ 'Edit Vendor' => 'Modificar Proveedor',
+ 'Employee' => 'Empleado',
+ 'Enddate' => 'Fecha final',
+ 'Fax' => 'Fax',
+ 'From' => 'Desde',
+ 'GIFI' => 'Plan de Cuentas Fiscal (PCF)',
+ 'Group' => 'Grupo',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Invoice' => 'Factura',
+ 'Item already on pricelist!' => '¡El concepto ya está en la lista de precios!',
+ 'Item not on file!' => '¡El concepto no está registrado!',
+ 'Language' => 'Idioma',
+ 'Leadtime' => 'Tiempo de Entrega',
+ 'Manager' => 'Gerente',
+ 'Name' => 'Nombre',
+ 'Name missing!' => '¡Falta el Nombre!',
+ 'No.' => 'Nº',
+ 'Notes' => 'Notas',
+ 'Number' => 'Número',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Orphaned' => 'Huérfano',
+ 'POS' => 'Punto de Venta',
+ 'Phone' => 'Teléfono',
+ 'Pricegroup' => 'Grupo de precios',
+ 'Pricelist' => 'Lista de Precios',
+ 'Project Number' => 'Número del Proyecto',
+ 'Purchase Order' => 'Orden de Compra',
+ 'Purchase Orders' => 'Ordenes de Compra',
+ 'Qty' => 'Cant.',
+ 'Quotation' => 'Cotización',
+ 'Quotations' => 'Cotizaciones',
+ 'RFQ' => 'Solicitud de cotización',
+ 'Request for Quotations' => 'Solicitudes de cotización',
+ 'SIC' => 'CIS',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Factura (venta)',
+ 'Sales Invoices' => 'Facturas (venta)',
+ 'Sales Order' => 'Orden de Venta',
+ 'Sales Orders' => 'Ordenes de Venta',
+ 'Salesperson' => 'Vendedor',
+ 'Save' => 'Guardar',
+ 'Save Pricelist' => 'Guardar Lista de Precios',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Search' => 'Búsqueda',
+ 'Sell Price' => 'Precio de venta',
+ 'Serial Number' => 'Número de serie',
+ 'Shipping Address' => 'Dirección de envío',
+ 'Startdate' => 'Fecha de inicio',
+ 'State' => 'Departamento',
+ 'State/Province' => 'Departamento',
+ 'Sub-contract GIFI' => 'PCF del subcontrato',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resúmen',
+ 'Tax' => 'Impuestos',
+ 'Tax Included' => 'IVA Incluido',
+ 'Tax Number' => 'RUC',
+ 'Tax Number / SSN' => 'RUC/CIP',
+ 'Taxable' => 'Gravado',
+ 'Terms' => 'Condiciones',
+ 'To' => 'Hasta',
+ 'Total' => 'Total',
+ 'Type of Business' => 'Clase de Negocio',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Vendor History' => 'Historial del Proveedor',
+ 'Vendor Invoice' => 'Factura de Proveedor',
+ 'Vendor Invoices' => 'Facturas de Proveedor',
+ 'Vendor Number' => 'Código de Proveedor',
+ 'Vendor deleted!' => '¡Proveedor borrado!',
+ 'Vendor saved!' => '¡Proveedor guardado!',
+ 'Vendors' => 'Proveedores',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'days' => 'días',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'movimiento_de_cuentas_por_pagar' => 'ap_transaction',
+ 'movimiento_de_cuentas_por_cobrar' => 'ar_transaction',
+ 'agregar_cliente' => 'add_customer',
+ 'agregar_proveedor' => 'add_vendor',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'punto_de_venta' => 'pos',
+ 'lista_de_precios' => 'pricelist',
+ 'orden_de_compra' => 'purchase_order',
+ 'cotización' => 'quotation',
+ 'solicitud_de_cotización' => 'rfq',
+ 'factura_(venta)' => 'sales_invoice',
+ 'orden_de_venta' => 'sales_order',
+ 'guardar' => 'save',
+ 'guardar_lista_de_precios' => 'save_pricelist',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+ 'factura_de_proveedor' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/pa/gl b/locale/pa/gl
new file mode 100755
index 00000000..5b57ee28
--- /dev/null
+++ b/locale/pa/gl
@@ -0,0 +1,158 @@
+$self{texts} = {
+ 'AP Transaction' => 'Movimiento de Cuentas por Pagar',
+ 'AR Transaction' => 'Movimiento de Cuentas por Cobrar',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Add Cash Transfer Transaction' => 'Agregar Transferencia de Efectivo',
+ 'Add General Ledger Transaction' => 'Agregar Asiento al Mayor General',
+ 'Address' => 'Dirección',
+ 'All' => 'Todo',
+ 'Amount' => 'Importe',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => '¿Seguro que desea borrar el Asiento?',
+ 'Asset' => 'Activo',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Saldo',
+ 'Bcc' => 'B.C.C.',
+ 'Cannot delete transaction!' => '¡No se puede borrar el Asiento!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar un Asiento para un periodo cerrado!',
+ 'Cannot post transaction!' => '¡No se puede registrar el Asiento!',
+ 'Cc' => 'C.C.',
+ 'Confirm!' => '¡Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Current' => 'Actual',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descripción',
+ 'E-mail' => 'Correo electrónico',
+ 'Edit Cash Transfer Transaction' => 'Modificar Transferencia de Efectivo',
+ 'Edit General Ledger Transaction' => 'Modificar Asiento del Libro Mayor General',
+ 'Equity' => 'Capital',
+ 'Expense' => 'Gasto',
+ 'FX' => 'Cotización de Monedas',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'GIFI' => 'Plan de Cuentas Fiscal (PCF)',
+ 'GL Transaction' => 'Asiento en el libro mayor',
+ 'General Ledger' => 'Libro Mayor General',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Income' => 'Ingreso',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Liability' => 'Pasivo',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Nota',
+ 'Message' => 'Mensaje',
+ 'Month' => 'Mes',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Out of balance transaction!' => '¡Asiento desbalanceado!',
+ 'Period' => 'Periodo',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Print' => 'Imprimir',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => '¡Proyecto no registrado!',
+ 'Quarter' => 'Trimestre',
+ 'R' => 'R',
+ 'Reference' => 'Referencia',
+ 'Reports' => 'Informes',
+ 'Sales Invoice ' => 'Factura (venta) ',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Source' => 'Origen',
+ 'Startdate' => 'Fecha de inicio',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'Hasta',
+ 'Transaction Date missing!' => '¡Falta la fecha del Asiento!',
+ 'Transaction deleted!' => '¡Asiento borrado!',
+ 'Transaction posted!' => '¡Asiento registrado!',
+ 'Update' => 'Actualizar',
+ 'Vendor Invoice ' => 'Factura de Proveedor ',
+ 'Vendor not on file!' => '¡Proveedor no registrado!',
+ 'Warning!' => '¡Advertencia!',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'movimiento_de_cuentas_por_pagar' => 'ap_transaction',
+ 'movimiento_de_cuentas_por_cobrar' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'asiento_en_el_libro_mayor' => 'gl_transaction',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'factura_(venta)_' => 'sales_invoice_',
+ 'actualizar' => 'update',
+ 'factura_de_proveedor_' => 'vendor_invoice_',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/pa/hr b/locale/pa/hr
new file mode 100755
index 00000000..3444e930
--- /dev/null
+++ b/locale/pa/hr
@@ -0,0 +1,117 @@
+$self{texts} = {
+ 'AP' => 'Cuentas por Pagar',
+ 'Above' => 'Encima de',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Active' => 'Activo',
+ 'Add Deduction' => 'Agregar Descuento',
+ 'Add Employee' => 'Agregar Empleado',
+ 'Address' => 'Dirección',
+ 'Administrator' => 'Administrador',
+ 'After Deduction' => 'Después del Descuento',
+ 'All' => 'Todo',
+ 'Allowances' => 'Subsidios',
+ 'Amount' => 'Importe',
+ 'Amount missing!' => '¡Falta el Importe!',
+ 'BIC' => 'BIC',
+ 'Based on' => 'Basado en',
+ 'Before Deduction' => 'Antes del Descuento',
+ 'Below' => 'Debajo de',
+ 'City' => 'Ciudad',
+ 'Continue' => 'Continuar',
+ 'Country' => 'País',
+ 'DOB' => 'Fecha de nacimiento',
+ 'Deduct after' => 'Descontar después',
+ 'Deduction deleted!' => '¡Descuento borrado!',
+ 'Deduction saved!' => '¡Descuento guardado!',
+ 'Deductions' => 'Descuentos',
+ 'Delete' => 'Borrar',
+ 'Description' => 'Descripción',
+ 'Description missing!' => '¡Falta la descripción!',
+ 'E-mail' => 'Correo electrónico',
+ 'Edit Deduction' => 'Modificar Descuento',
+ 'Edit Employee' => 'Modificar Empleado',
+ 'Employee' => 'Empleado',
+ 'Employee Name' => 'Nombre del empleado',
+ 'Employee Number' => 'Código del empleado',
+ 'Employee deleted!' => '¡Empleado borrado!',
+ 'Employee pays' => 'El empleado paga',
+ 'Employee saved!' => '¡Empleado guardado!',
+ 'Employees' => 'Empleados',
+ 'Employer' => 'Patrón',
+ 'Employer pays' => 'El patrón paga',
+ 'Enddate' => 'Fecha final',
+ 'Expense' => 'Gasto',
+ 'From' => 'Desde',
+ 'Home Phone' => 'Teléfono (particular)',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Login' => 'Entrada al sistema',
+ 'Manager' => 'Gerente',
+ 'Maximum' => 'Máximo',
+ 'Name' => 'Nombre',
+ 'Name missing!' => '¡Falta el Nombre!',
+ 'Notes' => 'Notas',
+ 'Number' => 'Número',
+ 'Orphaned' => 'Huérfano',
+ 'Payroll Deduction' => 'Descuento Salarial',
+ 'Rate' => 'Tarifa',
+ 'Rate missing!' => '¡Falta la tarifa!',
+ 'Role' => 'Función',
+ 'S' => 'S',
+ 'SSN' => 'C.I.Nº',
+ 'Sales' => 'Ventas',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Startdate' => 'Fecha de inicio',
+ 'State/Province' => 'Departamento',
+ 'Supervisor' => 'Supervisor',
+ 'To' => 'Hasta',
+ 'Update' => 'Actualizar',
+ 'User' => 'Usuario',
+ 'Work Phone' => 'Teléfono (Oficina)',
+ 'Zip/Postal Code' => 'Código Postal',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'agregar_descuento' => 'add_deduction',
+ 'agregar_empleado' => 'add_employee',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'guardar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/pa/ic b/locale/pa/ic
new file mode 100755
index 00000000..7bf5bed0
--- /dev/null
+++ b/locale/pa/ic
@@ -0,0 +1,277 @@
+$self{texts} = {
+ 'A' => 'A',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Accounts' => 'Cuentas',
+ 'Accrual' => 'Acumulado',
+ 'Active' => 'Activo',
+ 'Add' => 'Agregar',
+ 'Add Assembly' => 'Agregar Ensamblaje',
+ 'Add Labor/Overhead' => 'Agregar Mano de Obra',
+ 'Add Part' => 'Agregar Artículo',
+ 'Add Purchase Order' => 'Agregar Orden de Compra',
+ 'Add Quotation' => 'Agregar Cotización',
+ 'Add Request for Quotation' => 'Pedir Cotización',
+ 'Add Sales Order' => 'Agregar Orden de Venta',
+ 'Add Service' => 'Agregar Servicio',
+ 'Address' => 'Dirección',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Assemblies' => 'Ensamblajes',
+ 'Assemblies restocked!' => 'Ensamblajes re-inventariados!',
+ 'Assembly' => 'Ensamblaje',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'BOM' => 'Lista de Materiales',
+ 'Bcc' => 'B.C.C.',
+ 'Billing Address' => 'Dirección para Facturación',
+ 'Bin' => 'Ubicación',
+ 'Bin List' => 'Lista de Ubicaciones',
+ 'Break' => 'Romper',
+ 'COGS' => 'Costo de Ventas',
+ 'Cannot delete item!' => '¡No se puede borrar el Artículo!',
+ 'Cannot stock assemblies!' => '¡No se pueden almacenar los ensamblajes!',
+ 'Cash' => 'Efectivo',
+ 'Cc' => 'C.C.',
+ 'Check Inventory' => 'Verificar existencia',
+ 'City' => 'Ciudad',
+ 'Closed' => 'Cerrado',
+ 'Company Name' => 'Razón Social',
+ 'Components' => 'Componentes',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Cost' => 'Costo',
+ 'Country' => 'País',
+ 'Curr' => 'Div',
+ 'Currency' => 'Divisa',
+ 'Customer' => 'Cliente',
+ 'Customer Number' => 'Código del Cliente',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Drawing' => 'Plano',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail address missing!' => '¡Falta dirección E-mail!',
+ 'E-mailed' => 'Enviado por e-mail',
+ 'Edit Assembly' => 'Modificar Ensamblaje',
+ 'Edit Labor/Overhead' => 'Modificar Mano de Obra',
+ 'Edit Part' => 'Modificar Artículo',
+ 'Edit Service' => 'Modificar Servicio',
+ 'Employee' => 'Empleado',
+ 'Expense' => 'Gasto',
+ 'Extended' => 'Importe',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'Group' => 'Grupo',
+ 'Image' => 'Imagen',
+ 'In-line' => 'Incorporado',
+ 'Include in Report' => 'Incluir en informe',
+ 'Income' => 'Ingreso',
+ 'Individual Items' => 'Artículos individuales',
+ 'Inventory' => 'Inventario',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => '¡La existencia debe ser cero antes de poder cambiar el ensamblaje a obsoleto!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => '¡La existencia debe ser cero antes de poder cambiar este artículo a obsoleto!',
+ 'Invoice' => 'Factura',
+ 'Invoice Date missing!' => '¡Falta la fecha de la factura!',
+ 'Invoice Number' => 'Número de factura',
+ 'Invoice Number missing!' => '¡Falta el Número de Factura!',
+ 'Item deleted!' => '¡Concepto borrado!',
+ 'Item not on file!' => '¡El concepto no está registrado!',
+ 'Items' => 'Conceptos',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Labor/Overhead' => 'Mano de Obra',
+ 'Leadtime' => 'Tiempo de Entrega',
+ 'Line Total' => 'Total de la línea',
+ 'Link Accounts' => 'Vincular Cuentas',
+ 'List' => 'Lista',
+ 'List Price' => 'Precio de Lista',
+ 'Make' => 'Marca',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'Markup' => 'Margen',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Message' => 'Mensaje',
+ 'Microfiche' => 'Microficha',
+ 'Model' => 'Modelo',
+ 'Name' => 'Nombre',
+ 'No.' => 'Nº',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se encuentra el número en la fila',
+ 'Obsolete' => 'Obsoleto',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'On Hand' => 'Existencia',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Date missing!' => '¡Falta la fecha de la orden!',
+ 'Order Number' => 'Número de la orden',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'Orphaned' => 'Huérfano',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de Empaque',
+ 'Packing List Date missing!' => '¡Falta la fecha en la lista de empaque!',
+ 'Packing List Number missing!' => '¡Falta el número en la lista de empaque!',
+ 'Part' => 'Artículo',
+ 'Parts' => 'Artículos',
+ 'Period' => 'Periodo',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Selección',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Pricegroup' => 'Grupo de precios',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Purchase Order' => 'Orden de Compra',
+ 'Purchase Orders' => 'Ordenes de Compra',
+ 'Qty' => 'Cant.',
+ 'Quantity exceeds available units to stock!' => '¡La cantidad excede al stock disponible!',
+ 'Quotation' => 'Cotización',
+ 'Quotation Date missing!' => '¡Falta la Fecha de Cotización!',
+ 'Quotation Number missing!' => '¡Falta el Número de Cotización!',
+ 'Quotations' => 'Cotizaciones',
+ 'RFQ' => 'Solicitud de cotización',
+ 'ROP' => 'Existencia mínima',
+ 'Recd' => 'Recb.',
+ 'Required by' => 'Requerido para el',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Factura (venta)',
+ 'Sales Invoices' => 'Facturas (venta)',
+ 'Sales Order' => 'Orden de Venta',
+ 'Sales Orders' => 'Ordenes de Venta',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select txt, postscript or PDF!' => '¡Seleccione Texto, Postscript o PDF!',
+ 'Sell' => 'Vender',
+ 'Sell Price' => 'Precio de venta',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'Núm. de serie',
+ 'Serial Number' => 'Número de serie',
+ 'Service' => 'Servicio',
+ 'Services' => 'Servicios',
+ 'Ship' => 'Enviar',
+ 'Ship to' => 'Enviar a',
+ 'Shipping Address' => 'Dirección de envío',
+ 'Short' => 'Corto',
+ 'State/Province' => 'Departamento',
+ 'Stock' => 'Inventario',
+ 'Stock Assembly' => 'Reponer ensamblaje',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resúmen',
+ 'Tax' => 'Impuestos',
+ 'To' => 'Hasta',
+ 'Top Level' => 'Nivel Superior',
+ 'Translation not on file!' => 'No hay Traducción',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Updated' => 'Actualizado',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice' => 'Factura de Proveedor',
+ 'Vendor Invoices' => 'Facturas de Proveedor',
+ 'Vendor Number' => 'Código de Proveedor',
+ 'Vendor not on file!' => '¡Proveedor no registrado!',
+ 'Warehouse' => 'Almacén',
+ 'Weight' => 'Peso',
+ 'What type of item is this?' => '¿Que tipo de articulo es este?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Year' => 'Año',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'days' => 'días',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'agregar_ensamblaje' => 'add_assembly',
+ 'agregar_mano_de_obra' => 'add_labor_overhead',
+ 'agregar_artículo' => 'add_part',
+ 'agregar_servicio' => 'add_service',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'modificar_ensamblaje' => 'edit_assembly',
+ 'modificar_artículo' => 'edit_part',
+ 'modificar_servicio' => 'edit_service',
+ 'guardar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/pa/io b/locale/pa/io
new file mode 100755
index 00000000..87e82b66
--- /dev/null
+++ b/locale/pa/io
@@ -0,0 +1,130 @@
+$self{texts} = {
+ 'Add Purchase Order' => 'Agregar Orden de Compra',
+ 'Add Quotation' => 'Agregar Cotización',
+ 'Add Request for Quotation' => 'Pedir Cotización',
+ 'Add Sales Order' => 'Agregar Orden de Venta',
+ 'Address' => 'Dirección',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'B.C.C.',
+ 'Billing Address' => 'Dirección para Facturación',
+ 'Bin' => 'Ubicación',
+ 'Bin List' => 'Lista de Ubicaciones',
+ 'Cc' => 'C.C.',
+ 'City' => 'Ciudad',
+ 'Company Name' => 'Razón Social',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Country' => 'País',
+ 'Customer Number' => 'Código del Cliente',
+ 'Date' => 'Fecha',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Description' => 'Descripción',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail address missing!' => '¡Falta dirección E-mail!',
+ 'E-mailed' => 'Enviado por e-mail',
+ 'Extended' => 'Importe',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'Group' => 'Grupo',
+ 'In-line' => 'Incorporado',
+ 'Invoice' => 'Factura',
+ 'Invoice Date missing!' => '¡Falta la fecha de la factura!',
+ 'Invoice Number missing!' => '¡Falta el Número de Factura!',
+ 'Item not on file!' => '¡El concepto no está registrado!',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Message' => 'Mensaje',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se encuentra el número en la fila',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Order Date missing!' => '¡Falta la fecha de la orden!',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de Empaque',
+ 'Packing List Date missing!' => '¡Falta la fecha en la lista de empaque!',
+ 'Packing List Number missing!' => '¡Falta el número en la lista de empaque!',
+ 'Part' => 'Artículo',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Selección',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Purchase Order' => 'Orden de Compra',
+ 'Qty' => 'Cant.',
+ 'Quotation' => 'Cotización',
+ 'Quotation Date missing!' => '¡Falta la Fecha de Cotización!',
+ 'Quotation Number missing!' => '¡Falta el Número de Cotización!',
+ 'Recd' => 'Recb.',
+ 'Required by' => 'Requerido para el',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Orden de Venta',
+ 'Screen' => 'Pantalla',
+ 'Select txt, postscript or PDF!' => '¡Seleccione Texto, Postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'Núm. de serie',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Enviar',
+ 'Ship to' => 'Enviar a',
+ 'Shipping Address' => 'Dirección de envío',
+ 'State/Province' => 'Departamento',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'Hasta',
+ 'Translation not on file!' => 'No hay Traducción',
+ 'Unit' => 'Unidad',
+ 'Vendor Number' => 'Código de Proveedor',
+ 'What type of item is this?' => '¿Que tipo de articulo es este?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/pa/ir b/locale/pa/ir
new file mode 100755
index 00000000..437ea8d9
--- /dev/null
+++ b/locale/pa/ir
@@ -0,0 +1,224 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Add Purchase Order' => 'Agregar Orden de Compra',
+ 'Add Quotation' => 'Agregar Cotización',
+ 'Add Request for Quotation' => 'Pedir Cotización',
+ 'Add Sales Order' => 'Agregar Orden de Venta',
+ 'Add Vendor Invoice' => 'Agregar Factura de Proveedor',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Importe',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => '¿Seguro que desea borrar la Factura?',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'B.C.C.',
+ 'Billing Address' => 'Dirección para Facturación',
+ 'Bin' => 'Ubicación',
+ 'Bin List' => 'Lista de Ubicaciones',
+ 'Cannot delete invoice!' => '¡No se puede borrar la Factura!',
+ 'Cannot post invoice for a closed period!' => '¡No se puede registrar una Factura para un periodo cerrado!',
+ 'Cannot post invoice!' => '¡No se puede registrar la Factura!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un Pago para un periodo cerrado!',
+ 'Cc' => 'C.C.',
+ 'City' => 'Ciudad',
+ 'Company Name' => 'Razón Social',
+ 'Confirm!' => '¡Confirmar!',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Country' => 'País',
+ 'Credit Limit' => 'Límite de Crédito',
+ 'Currency' => 'Divisa',
+ 'Customer Number' => 'Código del Cliente',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descripción',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail address missing!' => '¡Falta dirección E-mail!',
+ 'E-mailed' => 'Enviado por e-mail',
+ 'Edit Vendor Invoice' => 'Modificar Factura de Proveedor',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate for payment missing!' => '¡Falta la tasa de cambio para el pago!',
+ 'Exchange rate missing!' => '¡Falta la tasa de cambio!',
+ 'Extended' => 'Importe',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'Group' => 'Grupo',
+ 'In-line' => 'Incorporado',
+ 'Internal Notes' => 'Notas internas',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => '¡Falta la fecha de la factura!',
+ 'Invoice Number' => 'Número de factura',
+ 'Invoice Number missing!' => '¡Falta el Número de Factura!',
+ 'Invoice deleted!' => '¡Factura borrada!',
+ 'Item not on file!' => '¡El concepto no está registrado!',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Language' => 'Idioma',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Nota',
+ 'Message' => 'Mensaje',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se encuentra el número en la fila',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Order Date missing!' => '¡Falta la fecha de la orden!',
+ 'Order Number' => 'Número de la orden',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de Empaque',
+ 'Packing List Date missing!' => '¡Falta la fecha en la lista de empaque!',
+ 'Packing List Number missing!' => '¡Falta el número en la lista de empaque!',
+ 'Part' => 'Artículo',
+ 'Payment date missing!' => '¡Falta la fecha del pago!',
+ 'Payments' => 'Pagos',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Selección',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => '¡Proyecto no registrado!',
+ 'Purchase Order' => 'Orden de Compra',
+ 'Qty' => 'Cant.',
+ 'Quotation' => 'Cotización',
+ 'Quotation Date missing!' => '¡Falta la Fecha de Cotización!',
+ 'Quotation Number missing!' => '¡Falta el Número de Cotización!',
+ 'Recd' => 'Recb.',
+ 'Record in' => 'Registrar en',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Remanente',
+ 'Required by' => 'Requerido para el',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Orden de Venta',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Select txt, postscript or PDF!' => '¡Seleccione Texto, Postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'Núm. de serie',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Enviar',
+ 'Ship to' => 'Enviar a',
+ 'Shipping Address' => 'Dirección de envío',
+ 'Source' => 'Origen',
+ 'Startdate' => 'Fecha de inicio',
+ 'State/Province' => 'Departamento',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Tax Included' => 'IVA Incluido',
+ 'To' => 'Hasta',
+ 'Total' => 'Total',
+ 'Translation not on file!' => 'No hay Traducción',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Number' => 'Código de Proveedor',
+ 'Vendor missing!' => '¡Falta el Proveedor!',
+ 'Vendor not on file!' => '¡Proveedor no registrado!',
+ 'Warning!' => '¡Advertencia!',
+ 'What type of item is this?' => '¿Que tipo de articulo es este?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Yes' => 'Si',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'ea' => 'c/u',
+ 'posted!' => '¡Registrado!',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'orden_de_compra' => 'purchase_order',
+ 'actualizar' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/pa/is b/locale/pa/is
new file mode 100755
index 00000000..4688f19b
--- /dev/null
+++ b/locale/pa/is
@@ -0,0 +1,235 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Add Purchase Order' => 'Agregar Orden de Compra',
+ 'Add Quotation' => 'Agregar Cotización',
+ 'Add Request for Quotation' => 'Pedir Cotización',
+ 'Add Sales Invoice' => 'Agregar Factura de Venta',
+ 'Add Sales Order' => 'Agregar Orden de Venta',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Importe',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => '¿Seguro que desea borrar la Factura?',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'B.C.C.',
+ 'Billing Address' => 'Dirección para Facturación',
+ 'Bin' => 'Ubicación',
+ 'Bin List' => 'Lista de Ubicaciones',
+ 'Business' => 'Negocio',
+ 'Cannot delete invoice!' => '¡No se puede borrar la Factura!',
+ 'Cannot post invoice for a closed period!' => '¡No se puede registrar una Factura para un periodo cerrado!',
+ 'Cannot post invoice!' => '¡No se puede registrar la Factura!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un Pago para un periodo cerrado!',
+ 'Cc' => 'C.C.',
+ 'City' => 'Ciudad',
+ 'Company Name' => 'Razón Social',
+ 'Confirm!' => '¡Confirmar!',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Country' => 'País',
+ 'Credit Limit' => 'Límite de Crédito',
+ 'Currency' => 'Divisa',
+ 'Customer' => 'Cliente',
+ 'Customer Number' => 'Código del Cliente',
+ 'Customer missing!' => '¡Falta el Cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descripción',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail address missing!' => '¡Falta dirección E-mail!',
+ 'E-mailed' => 'Enviado por e-mail',
+ 'Edit Sales Invoice' => 'Modificar Factura de Venta',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate for payment missing!' => '¡Falta la tasa de cambio para el pago!',
+ 'Exchange rate missing!' => '¡Falta la tasa de cambio!',
+ 'Extended' => 'Importe',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'Group' => 'Grupo',
+ 'In-line' => 'Incorporado',
+ 'Internal Notes' => 'Notas internas',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => '¡Falta la fecha de la factura!',
+ 'Invoice Number' => 'Número de factura',
+ 'Invoice Number missing!' => '¡Falta el Número de Factura!',
+ 'Invoice deleted!' => '¡Factura borrada!',
+ 'Item not on file!' => '¡El concepto no está registrado!',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Nota',
+ 'Message' => 'Mensaje',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se encuentra el número en la fila',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Order Date missing!' => '¡Falta la fecha de la orden!',
+ 'Order Number' => 'Número de la orden',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de Empaque',
+ 'Packing List Date missing!' => '¡Falta la fecha en la lista de empaque!',
+ 'Packing List Number missing!' => '¡Falta el número en la lista de empaque!',
+ 'Part' => 'Artículo',
+ 'Payment date missing!' => '¡Falta la fecha del pago!',
+ 'Payments' => 'Pagos',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Selección',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => '¡Proyecto no registrado!',
+ 'Purchase Order' => 'Orden de Compra',
+ 'Qty' => 'Cant.',
+ 'Quotation' => 'Cotización',
+ 'Quotation Date missing!' => '¡Falta la Fecha de Cotización!',
+ 'Quotation Number missing!' => '¡Falta el Número de Cotización!',
+ 'Recd' => 'Recb.',
+ 'Record in' => 'Registrar en',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Remanente',
+ 'Required by' => 'Requerido para el',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Orden de Venta',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF!',
+ 'Select txt, postscript or PDF!' => '¡Seleccione Texto, Postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'Núm. de serie',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Enviar',
+ 'Ship to' => 'Enviar a',
+ 'Ship via' => 'Enviar por',
+ 'Shipping Address' => 'Dirección de envío',
+ 'Shipping Point' => 'Punto de envío',
+ 'Source' => 'Origen',
+ 'Startdate' => 'Fecha de inicio',
+ 'State/Province' => 'Departamento',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Tax Included' => 'IVA Incluido',
+ 'To' => 'Hasta',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Descuento comercial',
+ 'Translation not on file!' => 'No hay Traducción',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Vendor Number' => 'Código de Proveedor',
+ 'Vendor not on file!' => '¡Proveedor no registrado!',
+ 'Warning!' => '¡Advertencia!',
+ 'What type of item is this?' => '¿Que tipo de articulo es este?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Yes' => 'Si',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'ea' => 'c/u',
+ 'posted!' => '¡Registrado!',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'correo_electrónico' => 'e_mail',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'imprimir_y_registrar' => 'print_and_post',
+ 'orden_de_venta' => 'sales_order',
+ 'enviar_a' => 'ship_to',
+ 'actualizar' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/pa/jc b/locale/pa/jc
new file mode 100755
index 00000000..0678b706
--- /dev/null
+++ b/locale/pa/jc
@@ -0,0 +1,92 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Amount' => 'Importe',
+ 'Closed' => 'Cerrado',
+ 'Confirm!' => '¡Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Cost' => 'Costo',
+ 'Current' => 'Actual',
+ 'Date' => 'Fecha',
+ 'Date missing!' => '¡Falta la fecha!',
+ 'Delete' => 'Borrar',
+ 'Description' => 'Descripción',
+ 'Employee' => 'Empleado',
+ 'From' => 'Desde',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Month' => 'Mes',
+ 'Notes' => 'Notas',
+ 'Open' => 'Abierto',
+ 'PDF' => 'PDF',
+ 'Period' => 'Periodo',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Imprimir',
+ 'Print and Save' => 'Imprimir y guardar',
+ 'Printed' => 'Impreso',
+ 'Project Number' => 'Número del Proyecto',
+ 'Project Number missing!' => '¡Falta el número de proyecto!',
+ 'Qty' => 'Cant.',
+ 'Quarter' => 'Trimestre',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Screen' => 'Pantalla',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF!',
+ 'Startdate' => 'Fecha de inicio',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'Hasta',
+ 'Total' => 'Total',
+ 'Update' => 'Actualizar',
+ 'Warning!' => '¡Advertencia!',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'imprimir' => 'print',
+ 'imprimir_y_guardar' => 'print_and_save',
+ 'guardar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/pa/locales.pl b/locale/pa/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/pa/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/pa/login b/locale/pa/login
new file mode 100755
index 00000000..3938fd16
--- /dev/null
+++ b/locale/pa/login
@@ -0,0 +1,24 @@
+$self{texts} = {
+ 'Company' => 'Empresa',
+ 'Continue' => 'Continuar',
+ 'Dataset is newer than version!' => '¡El Base de Datos es más reciente que la versión del programa!',
+ 'Incorrect Dataset version!' => '¡La Versión de la base de datos es incorrecta!',
+ 'Login' => 'Entrada al sistema',
+ 'Name' => 'Nombre',
+ 'Password' => 'Contraseña',
+ 'Upgrading to Version' => 'Actualizando a versión',
+ 'Version' => 'Versión',
+ 'You did not enter a name!' => '¡No ingresó un Nombre!',
+ 'done' => 'Terminado',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ 'entrada_al_sistema' => 'login',
+};
+
+1;
+
diff --git a/locale/pa/menu b/locale/pa/menu
new file mode 100755
index 00000000..34fc62a1
--- /dev/null
+++ b/locale/pa/menu
@@ -0,0 +1,135 @@
+$self{texts} = {
+ 'AP' => 'Cuentas por Pagar',
+ 'AP Aging' => 'Vencimiento de Cuentas por Pagar',
+ 'AP Transaction' => 'Movimiento de Cuentas por Pagar',
+ 'AR' => 'Cuentas por Cobrar',
+ 'AR Aging' => 'Vencimiento Cuentas por Cobrar',
+ 'AR Transaction' => 'Movimiento de Cuentas por Cobrar',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Add Account' => 'Agregar Cuenta',
+ 'Add Assembly' => 'Agregar Ensamblaje',
+ 'Add Business' => 'Agregar Negocio',
+ 'Add Customer' => 'Agregar Cliente',
+ 'Add Department' => 'Agregar Centro de Costos',
+ 'Add Employee' => 'Agregar Empleado',
+ 'Add GIFI' => 'Agregar PCF',
+ 'Add Group' => 'Agregar Grupo',
+ 'Add Labor/Overhead' => 'Agregar Mano de Obra',
+ 'Add Language' => 'Agregar Idioma',
+ 'Add Part' => 'Agregar Artículo',
+ 'Add Pricegroup' => 'Agregar Grupo de Precios',
+ 'Add Project' => 'Agregar Proyecto',
+ 'Add SIC' => 'Agregar CIS',
+ 'Add Service' => 'Agregar Servicio',
+ 'Add Transaction' => 'Agregar Transacción',
+ 'Add Vendor' => 'Agregar Proveedor',
+ 'Add Warehouse' => 'Agregar Almacén',
+ 'All Items' => 'Todos los Artículos',
+ 'Assemblies' => 'Ensamblajes',
+ 'Audit Control' => 'Control de Auditoría',
+ 'Backup' => 'Copia de Seguridad de los datos',
+ 'Balance Sheet' => 'Balance General',
+ 'Bin List' => 'Lista de Ubicaciones',
+ 'Bin Lists' => 'Listas de Ubicaciones',
+ 'Cash' => 'Efectivo',
+ 'Chart of Accounts' => 'Plan de Cuentas',
+ 'Check' => 'Cheque',
+ 'Components' => 'Componentes',
+ 'Customers' => 'Clientes',
+ 'Defaults' => 'Valores predeterminados',
+ 'Departments' => 'Departamentos',
+ 'Description' => 'Descripción',
+ 'Employees' => 'Empleados',
+ 'General Ledger' => 'Libro Mayor General',
+ 'Goods & Services' => 'Bienes y Servicios',
+ 'Groups' => 'Grupos',
+ 'HR' => 'Recursos Humanos',
+ 'HTML Templates' => 'Plantillas HTML',
+ 'History' => 'Historial',
+ 'Income Statement' => 'Cuadro de Resultados',
+ 'Invoice' => 'Factura',
+ 'LaTeX Templates' => 'Plantillas LaTeX',
+ 'Labor/Overhead' => 'Mano de Obra',
+ 'Language' => 'Idioma',
+ 'List Accounts' => 'Mostrar Plan de Cuentas',
+ 'List Businesses' => 'Mostrar empresas',
+ 'List Departments' => 'Mostrar Centro de Costos',
+ 'List GIFI' => 'Mostrar PCF',
+ 'List Languages' => 'Mostrar Idiomas',
+ 'List Projects' => 'Mostrar Projectos',
+ 'List SIC' => 'Mostrar CIS',
+ 'List Warehouses' => 'Mostar almacenes',
+ 'Logout' => 'Salir del Sistema',
+ 'New Window' => 'Ventana nueva',
+ 'Non-taxable' => 'Exento',
+ 'Open' => 'Abierto',
+ 'Order Entry' => 'Carga de Ordenes',
+ 'Outstanding' => 'Pendiente',
+ 'POS' => 'Punto de Venta',
+ 'POS Invoice' => 'Factura Punto de Venta',
+ 'Packing List' => 'Lista de Empaque',
+ 'Packing Lists' => 'Listas de empaque',
+ 'Parts' => 'Artículos',
+ 'Payment' => 'Pago',
+ 'Payments' => 'Pagos',
+ 'Pick List' => 'Lista de Selección',
+ 'Pick Lists' => 'Listas de Selección',
+ 'Preferences' => 'Preferencias',
+ 'Pricegroups' => 'Grupos de precios',
+ 'Print' => 'Imprimir',
+ 'Projects' => 'Proyectos',
+ 'Purchase Order' => 'Orden de Compra',
+ 'Purchase Orders' => 'Ordenes de Compra',
+ 'Quotation' => 'Cotización',
+ 'Quotations' => 'Cotizaciones',
+ 'RFQ' => 'Solicitud de cotización',
+ 'RFQs' => 'Solicitudes de cotización',
+ 'Receipt' => 'Recibo',
+ 'Receipts' => 'Recibos',
+ 'Receive' => 'Recibir',
+ 'Reconciliation' => 'Reconciliación',
+ 'Reports' => 'Informes',
+ 'SIC' => 'CIS',
+ 'Sale' => 'Venta',
+ 'Sales Invoice' => 'Factura (venta)',
+ 'Sales Invoices' => 'Facturas (venta)',
+ 'Sales Order' => 'Orden de Venta',
+ 'Sales Orders' => 'Ordenes de Venta',
+ 'Save to File' => 'Guardar en un archivo',
+ 'Search' => 'Búsqueda',
+ 'Send by E-Mail' => 'Enviar por correo electrónico',
+ 'Services' => 'Servicios',
+ 'Ship' => 'Enviar',
+ 'Shipping' => 'Envío',
+ 'Statement' => 'Estado de cuenta',
+ 'Stock Assembly' => 'Reponer ensamblaje',
+ 'Stylesheet' => 'Hoja de estilos',
+ 'System' => 'Sistema',
+ 'Tax collected' => 'Impuesto Retenido',
+ 'Tax paid' => 'Impuestos pagados',
+ 'Text Templates' => 'Plantillas de texto',
+ 'Transactions' => 'Asientos',
+ 'Transfer' => 'Transferencia',
+ 'Transfer Inventory' => 'Transferir existencia',
+ 'Translations' => 'Traducciones',
+ 'Trial Balance' => 'Balance de Prueba',
+ 'Type of Business' => 'Clase de Negocio',
+ 'Vendor Invoice' => 'Factura de Proveedor',
+ 'Vendors' => 'Proveedores',
+ 'Version' => 'Versión',
+ 'Warehouses' => 'Almacenes',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Work Orders' => 'Ordenes de Trabajo',
+ 'Yearend' => 'Cierre del Periodo',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/pa/oe b/locale/pa/oe
new file mode 100755
index 00000000..e921e689
--- /dev/null
+++ b/locale/pa/oe
@@ -0,0 +1,321 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Add Exchange Rate' => 'Agregar Cotización de Moneda',
+ 'Add Purchase Order' => 'Agregar Orden de Compra',
+ 'Add Quotation' => 'Agregar Cotización',
+ 'Add Request for Quotation' => 'Pedir Cotización',
+ 'Add Sales Invoice' => 'Agregar Factura de Venta',
+ 'Add Sales Order' => 'Agregar Orden de Venta',
+ 'Add Vendor Invoice' => 'Agregar Factura de Proveedor',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Importe',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Order Number' => '¿Seguro que desea borrar la Orden de Compra/Pedido?',
+ 'Are you sure you want to delete Quotation Number' => '¿Seguro que desea borrar la Cotización?',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'B.C.C.',
+ 'Billing Address' => 'Dirección para Facturación',
+ 'Bin' => 'Ubicación',
+ 'Bin List' => 'Lista de Ubicaciones',
+ 'Business' => 'Negocio',
+ 'C' => 'C',
+ 'Cannot delete order!' => '¡No se puede borrar la Orden!',
+ 'Cannot delete quotation!' => '¡No se puede borrar la Cotización!',
+ 'Cannot save order!' => '¡No se puede guardar la Orden!',
+ 'Cannot save quotation!' => '¡No se puede guardar la Cotización!',
+ 'Cc' => 'C.C.',
+ 'City' => 'Ciudad',
+ 'Closed' => 'Cerrado',
+ 'Company Name' => 'Razón Social',
+ 'Confirm!' => '¡Confirmar!',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Cost' => 'Costo',
+ 'Could not save!' => '¡No se pudo guardar!',
+ 'Could not transfer Inventory!' => '¡No se pudo transferir existencia!',
+ 'Country' => 'País',
+ 'Credit Limit' => 'Límite de Crédito',
+ 'Curr' => 'Div',
+ 'Currency' => 'Divisa',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer Number' => 'Código del Cliente',
+ 'Customer missing!' => '¡Falta el Cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Date Received' => 'Fecha de recepción',
+ 'Date received missing!' => '¡Falta la fecha de recepción!',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descripción',
+ 'Done' => 'Terminado',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail address missing!' => '¡Falta dirección E-mail!',
+ 'E-mailed' => 'Enviado por e-mail',
+ 'Edit Purchase Order' => 'Modificar Orden de Compra',
+ 'Edit Quotation' => 'Modificar Cotización',
+ 'Edit Request for Quotation' => 'Modificar Solicitud de Cotización',
+ 'Edit Sales Order' => 'Modificar Orden de Venta',
+ 'Employee' => 'Empleado',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate missing!' => '¡Falta la tasa de cambio!',
+ 'Extended' => 'Importe',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'Group' => 'Grupo',
+ 'ID' => 'ID',
+ 'In-line' => 'Incorporado',
+ 'Include in Report' => 'Incluir en informe',
+ 'Internal Notes' => 'Notas internas',
+ 'Inventory saved!' => '¡Inventario guardado!',
+ 'Inventory transferred!' => '¡Inventario transferido!',
+ 'Invoice' => 'Factura',
+ 'Invoice Date missing!' => '¡Falta la fecha de la factura!',
+ 'Invoice Number missing!' => '¡Falta el Número de Factura!',
+ 'Item not on file!' => '¡El concepto no está registrado!',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Manager' => 'Gerente',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Message' => 'Mensaje',
+ 'Month' => 'Mes',
+ 'No.' => 'Nº',
+ 'Notes' => 'Notas',
+ 'Nothing entered!' => '¡No se suministró nada!',
+ 'Nothing selected!' => '¡No se seleccionó nada!',
+ 'Nothing to transfer!' => '¡Nada que transferir!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se encuentra el número en la fila',
+ 'O' => 'O',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Date' => 'Fecha de la orden',
+ 'Order Date missing!' => '¡Falta la fecha de la orden!',
+ 'Order Number' => 'Número de la orden',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'Order deleted!' => '¡Orden borrada!',
+ 'Order saved!' => '¡Orden guardada!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de Empaque',
+ 'Packing List Date missing!' => '¡Falta la fecha en la lista de empaque!',
+ 'Packing List Number missing!' => '¡Falta el número en la lista de empaque!',
+ 'Part' => 'Artículo',
+ 'Period' => 'Periodo',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Selección',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Print and Save' => 'Imprimir y guardar',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => '¡Proyecto no registrado!',
+ 'Purchase Order' => 'Orden de Compra',
+ 'Purchase Orders' => 'Ordenes de Compra',
+ 'Qty' => 'Cant.',
+ 'Quarter' => 'Trimestre',
+ 'Quotation' => 'Cotización',
+ 'Quotation ' => 'Cotización ',
+ 'Quotation Date' => 'Fecha de Cotización',
+ 'Quotation Date missing!' => '¡Falta la Fecha de Cotización!',
+ 'Quotation Number' => 'Número de Cotización',
+ 'Quotation Number missing!' => '¡Falta el Número de Cotización!',
+ 'Quotation deleted!' => '¡Cotización borrada!',
+ 'Quotations' => 'Cotizaciones',
+ 'RFQ' => 'Solicitud de cotización',
+ 'RFQ ' => 'Solicitud de cotización ',
+ 'RFQ Number' => 'Número de Solicitud de cotización',
+ 'Recd' => 'Recb.',
+ 'Receive Merchandise' => 'Recibir mercadería',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Remanente',
+ 'Request for Quotation' => 'Solicitud de cotización',
+ 'Request for Quotations' => 'Solicitudes de cotización',
+ 'Required by' => 'Requerido para el',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Factura (venta)',
+ 'Sales Order' => 'Orden de Venta',
+ 'Sales Orders' => 'Ordenes de Venta',
+ 'Salesperson' => 'Vendedor',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF!',
+ 'Select txt, postscript or PDF!' => '¡Seleccione Texto, Postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'Núm. de serie',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Enviar',
+ 'Ship Merchandise' => 'Enviar Mercadería',
+ 'Ship to' => 'Enviar a',
+ 'Ship via' => 'Enviar por',
+ 'Shipping Address' => 'Dirección de envío',
+ 'Shipping Date' => 'Fecha de envío',
+ 'Shipping Date missing!' => '¡Falta la fecha de envío!',
+ 'Shipping Point' => 'Punto de envío',
+ 'Startdate' => 'Fecha de inicio',
+ 'State/Province' => 'Departamento',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Tax' => 'Impuestos',
+ 'Tax Included' => 'IVA Incluido',
+ 'Terms' => 'Condiciones',
+ 'To' => 'Hasta',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Descuento comercial',
+ 'Transfer' => 'Transferencia',
+ 'Transfer Inventory' => 'Transferir existencia',
+ 'Transfer to' => 'Transferir a',
+ 'Translation not on file!' => 'No hay Traducción',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Valid until' => 'Válido hasta',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice' => 'Factura de Proveedor',
+ 'Vendor Number' => 'Código de Proveedor',
+ 'Vendor missing!' => '¡Falta el Proveedor!',
+ 'Vendor not on file!' => '¡Proveedor no registrado!',
+ 'Warehouse' => 'Almacén',
+ 'Warning!' => '¡Advertencia!',
+ 'What type of item is this?' => '¿Que tipo de articulo es este?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'days' => 'días',
+ 'ea' => 'c/u',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'terminado' => 'done',
+ 'correo_electrónico' => 'e_mail',
+ 'imprimir' => 'print',
+ 'imprimir_y_guardar' => 'print_and_save',
+ 'orden_de_compra' => 'purchase_order',
+ 'cotización' => 'quotation',
+ 'cotización_' => 'quotation_',
+ 'solicitud_de_cotización' => 'rfq',
+ 'solicitud_de_cotización_' => 'rfq_',
+ 'factura_(venta)' => 'sales_invoice',
+ 'orden_de_venta' => 'sales_order',
+ 'guardar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'enviar_a' => 'ship_to',
+ 'transferencia' => 'transfer',
+ 'actualizar' => 'update',
+ 'factura_de_proveedor' => 'vendor_invoice',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/pa/pe b/locale/pa/pe
new file mode 100755
index 00000000..71a17d09
--- /dev/null
+++ b/locale/pa/pe
@@ -0,0 +1,141 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Active' => 'Activo',
+ 'Add' => 'Agregar',
+ 'Add Group' => 'Agregar Grupo',
+ 'Add Pricegroup' => 'Agregar Grupo de Precios',
+ 'Add Project' => 'Agregar Proyecto',
+ 'Address' => 'Dirección',
+ 'All' => 'Todo',
+ 'Amount' => 'Importe',
+ 'Assembly' => 'Ensamblaje',
+ 'Bin' => 'Ubicación',
+ 'Continue' => 'Continuar',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el Cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Delete' => 'Borrar',
+ 'Description' => 'Descripción',
+ 'Description Translations' => 'Traducciones de la descripción',
+ 'Detail' => 'Detalle',
+ 'Edit Description Translations' => 'Modificar Traducciones de Descripción',
+ 'Edit Group' => 'Modificar Grupo',
+ 'Edit Pricegroup' => 'Modificar Grupo de Precios',
+ 'Edit Project' => 'Modificar Proyecto',
+ 'Employee' => 'Empleado',
+ 'Enddate' => 'Fecha final',
+ 'From' => 'Desde',
+ 'Group' => 'Grupo',
+ 'Group Translations' => 'Traducción de Grupos',
+ 'Group deleted!' => '¡Grupo borrado!',
+ 'Group missing!' => '¡Falta el grupo!',
+ 'Group saved!' => '¡Grupo guardado!',
+ 'Groups' => 'Grupos',
+ 'Income' => 'Ingreso',
+ 'Language' => 'Idioma',
+ 'Languages not defined!' => '¡Idiomas no definido!',
+ 'Link Accounts' => 'Vincular Cuentas',
+ 'List Price' => 'Precio de Lista',
+ 'Month' => 'Mes',
+ 'Notes' => 'Notas',
+ 'Nothing selected!' => '¡No se seleccionó nada!',
+ 'Number' => 'Número',
+ 'Orphaned' => 'Huérfano',
+ 'Period' => 'Periodo',
+ 'Pricegroup' => 'Grupo de precios',
+ 'Pricegroup deleted!' => '¡Grupo de precios borrado!',
+ 'Pricegroup missing!' => '¡Falta el grupo de precios!',
+ 'Pricegroup saved!' => '¡Grupo de precios guardado!',
+ 'Pricegroups' => 'Grupos de precios',
+ 'Project' => 'Proyecto',
+ 'Project Description Translations' => 'Traducciones de descripción de proyecto',
+ 'Project Number' => 'Número del Proyecto',
+ 'Project deleted!' => '¡Proyecto borrado!',
+ 'Project saved!' => '¡Proyecto guardado!',
+ 'Projects' => 'Proyectos',
+ 'Qty' => 'Cant.',
+ 'Quarter' => 'Trimestre',
+ 'Save' => 'Guardar',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Sell Price' => 'Precio de venta',
+ 'Startdate' => 'Fecha de inicio',
+ 'Summary' => 'Resúmen',
+ 'Tax' => 'Impuestos',
+ 'To' => 'Hasta',
+ 'Translation' => 'Traducción',
+ 'Translation deleted!' => '¡Traducción borrada!',
+ 'Translations saved!' => '¡Traducciones guardadas!',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Updated' => 'Actualizado',
+ 'Vendor' => 'Proveedor',
+ 'Vendor not on file!' => '¡Proveedor no registrado!',
+ 'Weight' => 'Peso',
+ 'Year' => 'Año',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'agregar_grupo' => 'add_group',
+ 'agregar_grupo_de_precios' => 'add_pricegroup',
+ 'agregar_proyecto' => 'add_project',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'guardar' => 'save',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/pa/pos b/locale/pa/pos
new file mode 100755
index 00000000..eb8d8d0a
--- /dev/null
+++ b/locale/pa/pos
@@ -0,0 +1,80 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Add POS Invoice' => 'Agregar Factura Punto de Venta',
+ 'Amount' => 'Importe',
+ 'Business' => 'Negocio',
+ 'Cannot post transaction!' => '¡No se puede registrar el Asiento!',
+ 'Change' => 'Cambiar',
+ 'Continue' => 'Continuar',
+ 'Credit Limit' => 'Límite de Crédito',
+ 'Currency' => 'Divisa',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el Cliente!',
+ 'Delete' => 'Borrar',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descripción',
+ 'Edit POS Invoice' => 'Modificar Ticket',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate missing!' => '¡Falta la tasa de cambio!',
+ 'Extended' => 'Importe',
+ 'From' => 'Desde',
+ 'Language' => 'Idioma',
+ 'Memo' => 'Nota',
+ 'Month' => 'Mes',
+ 'Number' => 'Número',
+ 'Open' => 'Abierto',
+ 'Period' => 'Periodo',
+ 'Post' => 'Registrar',
+ 'Posted!' => '¡Registrado!',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Printed' => 'Impreso',
+ 'Qty' => 'Cant.',
+ 'Quarter' => 'Trimestre',
+ 'Receipts' => 'Recibos',
+ 'Record in' => 'Registrar en',
+ 'Remaining' => 'Remanente',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Pantalla',
+ 'Source' => 'Origen',
+ 'Subtotal' => 'Subtotal',
+ 'Tax Included' => 'IVA Incluido',
+ 'To' => 'Hasta',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Descuento comercial',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Year' => 'Año',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'registrar' => 'post',
+ 'imprimir' => 'print',
+ 'imprimir_y_registrar' => 'print_and_post',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/pa/ps b/locale/pa/ps
new file mode 100755
index 00000000..2519b916
--- /dev/null
+++ b/locale/pa/ps
@@ -0,0 +1,358 @@
+$self{texts} = {
+ 'AP Aging' => 'Vencimiento de Cuentas por Pagar',
+ 'AP Outstanding' => 'Cuentas por Pagar pendientes',
+ 'AP Transaction' => 'Movimiento de Cuentas por Pagar',
+ 'AP Transactions' => 'Movimientos de Cuentas por Pagar',
+ 'AR Aging' => 'Vencimiento Cuentas por Cobrar',
+ 'AR Outstanding' => 'Cuentas por Cobrar pendientes',
+ 'AR Transaction' => 'Movimiento de Cuentas por Cobrar',
+ 'AR Transactions' => 'Movimientos de Cuentas por Cobrar',
+ 'Account' => 'Cuenta',
+ 'Account Number' => 'Número de Cuenta',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Accounts' => 'Cuentas',
+ 'Accrual' => 'Acumulado',
+ 'Add AP Transaction' => 'Agregar Asiento de Cuentas por Pagar',
+ 'Add AR Transaction' => 'Agregar Asiento de Cuentas por Cobrar',
+ 'Add POS Invoice' => 'Agregar Factura Punto de Venta',
+ 'Add Purchase Order' => 'Agregar Orden de Compra',
+ 'Add Quotation' => 'Agregar Cotización',
+ 'Add Request for Quotation' => 'Pedir Cotización',
+ 'Add Sales Invoice' => 'Agregar Factura de Venta',
+ 'Add Sales Order' => 'Agregar Orden de Venta',
+ 'Address' => 'Dirección',
+ 'All Accounts' => 'Todas las Cuentas',
+ 'Amount' => 'Importe',
+ 'Amount Due' => 'Importe Adeudado',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => '¿Seguro que desea borrar la Factura?',
+ 'Are you sure you want to delete Transaction' => '¿Seguro que desea borrar el Asiento?',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Saldo',
+ 'Balance Sheet' => 'Balance General',
+ 'Bcc' => 'B.C.C.',
+ 'Billing Address' => 'Dirección para Facturación',
+ 'Bin' => 'Ubicación',
+ 'Bin List' => 'Lista de Ubicaciones',
+ 'Business' => 'Negocio',
+ 'Cannot delete invoice!' => '¡No se puede borrar la Factura!',
+ 'Cannot delete transaction!' => '¡No se puede borrar el Asiento!',
+ 'Cannot post invoice for a closed period!' => '¡No se puede registrar una Factura para un periodo cerrado!',
+ 'Cannot post invoice!' => '¡No se puede registrar la Factura!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un Pago para un periodo cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar un Asiento para un periodo cerrado!',
+ 'Cannot post transaction!' => '¡No se puede registrar el Asiento!',
+ 'Cash' => 'Efectivo',
+ 'Cc' => 'C.C.',
+ 'Change' => 'Cambiar',
+ 'Check' => 'Cheque',
+ 'City' => 'Ciudad',
+ 'Closed' => 'Cerrado',
+ 'Company Name' => 'Razón Social',
+ 'Compare to' => 'Comparar con',
+ 'Confirm!' => '¡Confirmar!',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Country' => 'País',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Límite de Crédito',
+ 'Curr' => 'Div',
+ 'Currency' => 'Divisa',
+ 'Current' => 'Actual',
+ 'Current Earnings' => 'Resultado del Período',
+ 'Customer' => 'Cliente',
+ 'Customer Number' => 'Código del Cliente',
+ 'Customer missing!' => '¡Falta el Cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Date Paid' => 'Fecha de Pago',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Decimalplaces' => 'Posiciones decimales',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'Due Date missing!' => '¡Falta fecha de vencimiento!',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail Statement to' => 'Enviar estado de cuenta por E-mail a',
+ 'E-mail address missing!' => '¡Falta dirección E-mail!',
+ 'E-mailed' => 'Enviado por e-mail',
+ 'Edit AP Transaction' => 'Modificar asiento de Cuentas por Pagar',
+ 'Edit AR Transaction' => 'Modificar asiento de Cuentas por Cobrar',
+ 'Edit POS Invoice' => 'Modificar Ticket',
+ 'Edit Sales Invoice' => 'Modificar Factura de Venta',
+ 'Employee' => 'Empleado',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate for payment missing!' => '¡Falta la tasa de cambio para el pago!',
+ 'Exchange rate missing!' => '¡Falta la tasa de cambio!',
+ 'Extended' => 'Importe',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'GIFI' => 'Plan de Cuentas Fiscal (PCF)',
+ 'Group' => 'Grupo',
+ 'Heading' => 'Encabezado',
+ 'ID' => 'ID',
+ 'In-line' => 'Incorporado',
+ 'Include Exchange Rate Difference' => 'Incluir Diferencia por Tasa de Cambio',
+ 'Include in Report' => 'Incluir en informe',
+ 'Income Statement' => 'Cuadro de Resultados',
+ 'Internal Notes' => 'Notas internas',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => '¡Falta la fecha de la factura!',
+ 'Invoice Number' => 'Número de factura',
+ 'Invoice Number missing!' => '¡Falta el Número de Factura!',
+ 'Invoice deleted!' => '¡Factura borrada!',
+ 'Item not on file!' => '¡El concepto no está registrado!',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Language' => 'Idioma',
+ 'Manager' => 'Gerente',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Nota',
+ 'Message' => 'Mensaje',
+ 'Method' => 'Método',
+ 'Month' => 'Mes',
+ 'N/A' => 'N/A',
+ 'No.' => 'Nº',
+ 'Non-taxable Purchases' => 'Compras exentas',
+ 'Non-taxable Sales' => 'Ventas exentas',
+ 'Notes' => 'Notas',
+ 'Nothing selected!' => '¡No se seleccionó nada!',
+ 'Nothing to print!' => '¡No hay nada para imprimir!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se encuentra el número en la fila',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Date missing!' => '¡Falta la fecha de la orden!',
+ 'Order Number' => 'Número de la orden',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de Empaque',
+ 'Packing List Date missing!' => '¡Falta la fecha en la lista de empaque!',
+ 'Packing List Number missing!' => '¡Falta el número en la lista de empaque!',
+ 'Paid' => 'Pagado',
+ 'Part' => 'Artículo',
+ 'Payment date missing!' => '¡Falta la fecha del pago!',
+ 'Payments' => 'Pagos',
+ 'Period' => 'Periodo',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Selección',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Posted!' => '¡Registrado!',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project Number' => 'Número del Proyecto',
+ 'Project Transactions' => 'Asientos del Projecto',
+ 'Project not on file!' => '¡Proyecto no registrado!',
+ 'Purchase Order' => 'Orden de Compra',
+ 'Qty' => 'Cant.',
+ 'Quarter' => 'Trimestre',
+ 'Quotation' => 'Cotización',
+ 'Quotation Date missing!' => '¡Falta la Fecha de Cotización!',
+ 'Quotation Number missing!' => '¡Falta el Número de Cotización!',
+ 'Recd' => 'Recb.',
+ 'Receipt' => 'Recibo',
+ 'Receipts' => 'Recibos',
+ 'Record in' => 'Registrar en',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Remanente',
+ 'Report for' => 'Informe de',
+ 'Required by' => 'Requerido para el',
+ 'SKU' => 'SKU',
+ 'Sales Invoice.' => 'Factura (venta).',
+ 'Sales Order' => 'Orden de Venta',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Pantalla',
+ 'Select all' => 'Seleccionar todo',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Select payment' => 'Seleccione el pago',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF!',
+ 'Select txt, postscript or PDF!' => '¡Seleccione Texto, Postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'Núm. de serie',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Enviar',
+ 'Ship to' => 'Enviar a',
+ 'Ship via' => 'Enviar por',
+ 'Shipping Address' => 'Dirección de envío',
+ 'Shipping Point' => 'Punto de envío',
+ 'Source' => 'Origen',
+ 'Standard' => 'Estándard',
+ 'Startdate' => 'Fecha de inicio',
+ 'State/Province' => 'Departamento',
+ 'Statement' => 'Estado de cuenta',
+ 'Statement sent to' => 'Estado de cuenta enviado a',
+ 'Statements sent to printer!' => '¡Estado de cuenta enviado a la impresora!',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resúmen',
+ 'Tax' => 'Impuestos',
+ 'Tax Included' => 'IVA Incluido',
+ 'Tax collected' => 'Impuesto Retenido',
+ 'Tax paid' => 'Impuestos pagados',
+ 'Till' => 'Caja Registradora',
+ 'To' => 'Hasta',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Descuento comercial',
+ 'Transaction' => 'Asiento',
+ 'Transaction deleted!' => '¡Asiento borrado!',
+ 'Transaction posted!' => '¡Asiento registrado!',
+ 'Translation not on file!' => 'No hay Traducción',
+ 'Trial Balance' => 'Balance de Prueba',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice.' => 'Factura de Proveedor.',
+ 'Vendor Number' => 'Código de Proveedor',
+ 'Vendor missing!' => '¡Falta el Proveedor!',
+ 'Vendor not on file!' => '¡Proveedor no registrado!',
+ 'Warning!' => '¡Advertencia!',
+ 'What type of item is this?' => '¿Que tipo de articulo es este?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'as at' => 'como a',
+ 'ea' => 'c/u',
+ 'for Period' => 'para el Período',
+ 'posted!' => '¡Registrado!',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'movimiento_de_cuentas_por_pagar' => 'ap_transaction',
+ 'movimiento_de_cuentas_por_cobrar' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'correo_electrónico' => 'e_mail',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'imprimir_y_registrar' => 'print_and_post',
+ 'factura_(venta)_' => 'sales_invoice_',
+ 'orden_de_venta' => 'sales_order',
+ 'seleccionar_todo' => 'select_all',
+ 'enviar_a' => 'ship_to',
+ 'actualizar' => 'update',
+ 'factura_de_proveedor_' => 'vendor_invoice_',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/pa/pw b/locale/pa/pw
new file mode 100755
index 00000000..61f3c244
--- /dev/null
+++ b/locale/pa/pw
@@ -0,0 +1,13 @@
+$self{texts} = {
+ 'Continue' => 'Continuar',
+ 'Password' => 'Contraseña',
+ 'Session expired!' => '¡La sesión caducó!',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/pa/rc b/locale/pa/rc
new file mode 100755
index 00000000..710b7a09
--- /dev/null
+++ b/locale/pa/rc
@@ -0,0 +1,79 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Saldo',
+ 'Beginning Balance' => 'Saldo Inicial',
+ 'Cleared' => 'Reconciliado',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Current' => 'Actual',
+ 'Date' => 'Fecha',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Difference' => 'Diferencia',
+ 'Done' => 'Terminado',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'Include Exchange Rate Difference' => 'Incluir Diferencia por Tasa de Cambio',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Month' => 'Mes',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Out of balance!' => '¡Fuera de balance!',
+ 'Outstanding' => 'Pendiente',
+ 'Period' => 'Periodo',
+ 'Quarter' => 'Trimestre',
+ 'R' => 'R',
+ 'Reconciliation' => 'Reconciliación',
+ 'Reconciliation Report' => 'Informe de Reconciliación',
+ 'Select all' => 'Seleccionar todo',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Source' => 'Origen',
+ 'Statement Balance' => 'Saldo bancario',
+ 'Summary' => 'Resúmen',
+ 'To' => 'Hasta',
+ 'Update' => 'Actualizar',
+ 'Year' => 'Año',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'continuar' => 'continue',
+ 'terminado' => 'done',
+ 'seleccionar_todo' => 'select_all',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/pa/rp b/locale/pa/rp
new file mode 100755
index 00000000..47f76d9c
--- /dev/null
+++ b/locale/pa/rp
@@ -0,0 +1,179 @@
+$self{texts} = {
+ 'AP Aging' => 'Vencimiento de Cuentas por Pagar',
+ 'AR Aging' => 'Vencimiento Cuentas por Cobrar',
+ 'Account' => 'Cuenta',
+ 'Account Number' => 'Número de Cuenta',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Accounts' => 'Cuentas',
+ 'Accrual' => 'Acumulado',
+ 'Address' => 'Dirección',
+ 'All Accounts' => 'Todas las Cuentas',
+ 'Amount' => 'Importe',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Saldo',
+ 'Balance Sheet' => 'Balance General',
+ 'Bcc' => 'B.C.C.',
+ 'Cash' => 'Efectivo',
+ 'Cc' => 'C.C.',
+ 'Compare to' => 'Comparar con',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Credit' => 'Crédito',
+ 'Curr' => 'Div',
+ 'Current' => 'Actual',
+ 'Current Earnings' => 'Resultado del Período',
+ 'Customer' => 'Cliente',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Decimalplaces' => 'Posiciones decimales',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail Statement to' => 'Enviar estado de cuenta por E-mail a',
+ 'E-mail address missing!' => '¡Falta dirección E-mail!',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'GIFI' => 'Plan de Cuentas Fiscal (PCF)',
+ 'Heading' => 'Encabezado',
+ 'ID' => 'ID',
+ 'In-line' => 'Incorporado',
+ 'Include Exchange Rate Difference' => 'Incluir Diferencia por Tasa de Cambio',
+ 'Include in Report' => 'Incluir en informe',
+ 'Income Statement' => 'Cuadro de Resultados',
+ 'Invoice' => 'Factura',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Language' => 'Idioma',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Nota',
+ 'Message' => 'Mensaje',
+ 'Method' => 'Método',
+ 'Month' => 'Mes',
+ 'N/A' => 'N/A',
+ 'Non-taxable Purchases' => 'Compras exentas',
+ 'Non-taxable Sales' => 'Ventas exentas',
+ 'Nothing selected!' => '¡No se seleccionó nada!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Order' => 'Orden',
+ 'PDF' => 'PDF',
+ 'Payments' => 'Pagos',
+ 'Period' => 'Periodo',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Imprimir',
+ 'Project' => 'Proyecto',
+ 'Project Number' => 'Número del Proyecto',
+ 'Project Transactions' => 'Asientos del Projecto',
+ 'Project not on file!' => '¡Proyecto no registrado!',
+ 'Quarter' => 'Trimestre',
+ 'Receipts' => 'Recibos',
+ 'Reference' => 'Referencia',
+ 'Report for' => 'Informe de',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Pantalla',
+ 'Select all' => 'Seleccionar todo',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Source' => 'Origen',
+ 'Standard' => 'Estándard',
+ 'Startdate' => 'Fecha de inicio',
+ 'Statement' => 'Estado de cuenta',
+ 'Statement sent to' => 'Estado de cuenta enviado a',
+ 'Statements sent to printer!' => '¡Estado de cuenta enviado a la impresora!',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resúmen',
+ 'Tax' => 'Impuestos',
+ 'Tax collected' => 'Impuesto Retenido',
+ 'Tax paid' => 'Impuestos pagados',
+ 'Till' => 'Caja Registradora',
+ 'To' => 'Hasta',
+ 'Total' => 'Total',
+ 'Trial Balance' => 'Balance de Prueba',
+ 'Vendor' => 'Proveedor',
+ 'Vendor not on file!' => '¡Proveedor no registrado!',
+ 'Warning!' => '¡Advertencia!',
+ 'Year' => 'Año',
+ 'as at' => 'como a',
+ 'for Period' => 'para el Período',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuar' => 'continue',
+ 'correo_electrónico' => 'e_mail',
+ 'imprimir' => 'print',
+ 'seleccionar_todo' => 'select_all',
+};
+
+1;
+
diff --git a/locale/pl/COPYING b/locale/pl/COPYING
new file mode 100755
index 00000000..f93e6d62
--- /dev/null
+++ b/locale/pl/COPYING
@@ -0,0 +1,23 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2001
+#
+# Polish texts:
+#
+# Author: Peter Dabrowski <meritage@mail.com>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/pl/LANGUAGE b/locale/pl/LANGUAGE
new file mode 100755
index 00000000..2e80cf41
--- /dev/null
+++ b/locale/pl/LANGUAGE
@@ -0,0 +1 @@
+Polish (ISO-8859-2)
diff --git a/locale/pl/aa b/locale/pl/aa
new file mode 100755
index 00000000..447071dd
--- /dev/null
+++ b/locale/pl/aa
@@ -0,0 +1,158 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'AP Outstanding' => 'Zobowi±zania Nieuregulowane',
+ 'AP Transaction' => 'Transakcja Zobowi±zañ',
+ 'AP Transactions' => 'Transakcje Zobowi±zañ',
+ 'AR Outstanding' => 'Nale¿no¶ci Nieuregulowane',
+ 'AR Transaction' => 'Transakcja Nale¿no¶ci',
+ 'AR Transactions' => 'Transakcje Nale¿no¶ci',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Menu Ksiêgowo¶ci',
+ 'Add AP Transaction' => 'Rejestr w Ksiêdze Zobowi±zañ',
+ 'Add AR Transaction' => 'Rejestr w Ksiêdze Nale¿no¶ci',
+ 'Amount' => 'Kwota',
+ 'Amount Due' => 'Kwota Nale¿na',
+ 'Apr' => 'Kwiecieñ',
+ 'April' => 'Kwiecieñ',
+ 'Are you sure you want to delete Transaction' => 'Czy chcesz usun±æ Transakcjê?',
+ 'Aug' => 'Sierpieñ',
+ 'August' => 'Sierpieñ',
+ 'Cannot delete transaction!' => 'Nie mo¿esz usun±æ transakcji!',
+ 'Cannot post payment for a closed period!' => 'Nie mo¿na zaksiêgowaæ p³atno¶ci po zamkniêciu okresu!',
+ 'Cannot post transaction for a closed period!' => 'Nie mo¿na zaksiêgowaæ transakcji po zamkniêciu okresu!',
+ 'Cannot post transaction!' => 'Nie mo¿esz zatwierdziæ transakcji!',
+ 'Check' => 'Czek',
+ 'Closed' => 'Zamkniêto',
+ 'Confirm!' => 'Potwierd¿!',
+ 'Continue' => 'Kontynuj',
+ 'Credit' => 'Kredyt',
+ 'Credit Limit' => 'Limit Kredytu',
+ 'Curr' => 'Waluta',
+ 'Currency' => 'Waluta',
+ 'Current' => 'Bie¿±cy',
+ 'Customer' => 'Odbiorca',
+ 'Customer missing!' => 'Brak Odbiorcy',
+ 'Date' => 'Data',
+ 'Date Paid' => 'Data Zap³aty',
+ 'Debit' => 'Debet',
+ 'Dec' => 'Grudzieñ',
+ 'December' => 'Grudzieñ',
+ 'Delete' => 'Usuñ',
+ 'Department' => 'Wydzia³',
+ 'Description' => 'Opis',
+ 'Detail' => 'Wyszczególnienie',
+ 'Due Date' => 'Termin P³atno¶ci',
+ 'Due Date missing!' => 'Brak Terminu P³atno¶ci!',
+ 'Edit AP Transaction' => 'Zmiany Transakcji Konta Zobowi±zañ',
+ 'Edit AR Transaction' => 'Zmiany Transakcji Konta Nale¿no¶ci',
+ 'Employee' => 'Pracownik',
+ 'Exch' => 'Kurs Walut',
+ 'Exchange Rate' => 'Kurs Walut',
+ 'Exchange rate for payment missing!' => 'Brakuje Kursu Walut dla p³atno¶ci!',
+ 'Exchange rate missing!' => 'Brakuje Kursu Walut',
+ 'Feb' => 'Luty',
+ 'February' => 'Luty',
+ 'From' => 'Od',
+ 'ID' => 'Identyfikator',
+ 'Include in Report' => 'Do³±cz w Sprawozdaniu',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date' => 'Data Wystawienia',
+ 'Invoice Date missing!' => 'Brak Daty Wystawienia',
+ 'Invoice Number' => 'Numer Faktury',
+ 'Jan' => 'Styczeñ',
+ 'January' => 'Styczeñ',
+ 'Jul' => 'Lipiec',
+ 'July' => 'Lipiec',
+ 'Jun' => 'Czerwiec',
+ 'June' => 'Czerwiec',
+ 'Manager' => 'Kierownik',
+ 'Mar' => 'Marzec',
+ 'March' => 'Marzec',
+ 'May' => 'Maj',
+ 'May ' => 'Maj',
+ 'Memo' => 'Notatka',
+ 'Month' => 'Miesi±c',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Noty',
+ 'Nov' => 'Listopad',
+ 'November' => 'Listopad',
+ 'Oct' => 'Pa¿dziernik',
+ 'October' => 'Pa¿dziernik',
+ 'Open' => 'Otworzono',
+ 'Order' => 'Zlecenie',
+ 'Order Number' => 'Numer ZLecenia',
+ 'Paid' => 'Zap³acono',
+ 'Payment date missing!' => 'Brak Daty Wyp³aty',
+ 'Payments' => 'Wyp³aty',
+ 'Period' => 'Okres',
+ 'Post' => 'Zatwierd¿',
+ 'Post as new' => 'Zatwierd¿ jako nowe',
+ 'Print' => 'Wydrukuj',
+ 'Print and Post' => 'Wydrukuj i Zatwierd¿',
+ 'Project' => 'Projekt',
+ 'Quarter' => 'Kwarta³',
+ 'Receipt' => 'Kasa Przyjmie',
+ 'Remaining' => 'Pozosta³e',
+ 'Sales Invoice.' => 'Faktura VAT Sprzeda¿y.',
+ 'Salesperson' => 'Sprzedawca',
+ 'Sep' => 'Wrzesieñ',
+ 'September' => 'Wrzesieñ',
+ 'Ship to' => 'Wy¶lij do',
+ 'Ship via' => 'Wy¶lij przez',
+ 'Shipping Point' => 'Punkt Dostawy',
+ 'Source' => '¯ród³o',
+ 'Subtotal' => 'Warto¶æ Netto',
+ 'Summary' => 'Skrót',
+ 'Tax' => 'Podatek',
+ 'Tax Included' => 'Podatek Wliczony',
+ 'Till' => 'Kasa',
+ 'To' => 'do',
+ 'Total' => 'Warto¶æ Brutto',
+ 'Transaction' => 'Transakcja',
+ 'Transaction deleted!' => 'Transakcja usuniêta',
+ 'Transaction posted!' => 'Transakcja zatwierdzona',
+ 'Update' => 'Uzupe³nij',
+ 'Vendor' => 'Dostawca',
+ 'Vendor Invoice.' => 'Faktura VAT Zakupu.',
+ 'Vendor missing!' => 'Brak Dostawcy',
+ 'Year' => 'Rok',
+ 'Yes' => 'Tak',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'transakcja_zobowi±zañ' => 'ap_transaction',
+ 'transakcja_nale¿no¶ci' => 'ar_transaction',
+ 'kontynuj' => 'continue',
+ 'usuñ' => 'delete',
+ 'zatwierd¿' => 'post',
+ 'zatwierd¿_jako_nowe' => 'post_as_new',
+ 'wydrukuj' => 'print',
+ 'wydrukuj_i_zatwierd¿' => 'print_and_post',
+ 'faktura_vat_sprzeda¿y_' => 'sales_invoice_',
+ 'wy¶lij_do' => 'ship_to',
+ 'uzupe³nij' => 'update',
+ 'faktura_vat_zakupu_' => 'vendor_invoice_',
+ 'tak' => 'yes',
+};
+
+1;
+
diff --git a/locale/pl/admin b/locale/pl/admin
new file mode 100755
index 00000000..4dbbb621
--- /dev/null
+++ b/locale/pl/admin
@@ -0,0 +1,139 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Access Control' => 'Kontrola Dostêpu',
+ 'Accounting' => 'Ksiêgowo¶æ',
+ 'Add User' => 'Dodaj U¿ytkownika',
+ 'Address' => 'Adres',
+ 'Administration' => 'Administracja',
+ 'Administrator' => 'Administrator',
+ 'All Datasets up to date!' => 'Zbiory Danych uzupe³nione!',
+ 'Cannot create Lock!' => 'Nie mo¿esz stworzyæ pliku blokuj±cego!!',
+ 'Change Admin Password' => 'Zmiana Has³a Administratora',
+ 'Change Password' => 'Zmieñ Has³o',
+ 'Click on login name to edit!' => 'Kliknij nazwê u¿ytkownika ¿eby dokonaæ zmian!',
+ 'Company' => 'Firma',
+ 'Connect to' => 'Pod³±cz do',
+ 'Continue' => 'Kontynuj',
+ 'Create Chart of Accounts' => 'Utwórz Wzór Kont',
+ 'Create Dataset' => 'Utwórz Zbiór Danych',
+ 'DBI not installed!' => 'Nie zainstalowane DBI!',
+ 'Database' => 'Baza Danych',
+ 'Database Administration' => 'Administracja Bazy Danych',
+ 'Database Driver not checked!' => 'Sterownik Bazy Danych nie zaznaczony!',
+ 'Database User missing!' => 'Brak U¿ytkownika Bazy Danych!',
+ 'Dataset' => 'Zbiór Danych',
+ 'Dataset missing!' => 'Brak Zbioru Danych',
+ 'Dataset updated!' => 'Zbiór Danych uzupe³niony!',
+ 'Date Format' => 'Format Daty',
+ 'Delete' => 'Usuñ',
+ 'Delete Dataset' => 'Usuñ Zbior Danych',
+ 'Directory' => 'Katalog',
+ 'Driver' => 'Sterownik',
+ 'Dropdown Limit' => 'Limit Rozwiniêcia',
+ 'E-mail' => 'E-mail',
+ 'Edit User' => 'Zmiany U¿ytkownika',
+ 'Existing Datasets' => 'Istniej±cy Zbiór Danych',
+ 'Fax' => 'Fax',
+ 'Host' => 'Server',
+ 'Hostname missing!' => 'Brak Nazwy Serwera',
+ 'Language' => 'Jêzyk',
+ 'Lock System' => 'Zablokuj System',
+ 'Lockfile created!' => 'Plik blokuj±cy utworzony!',
+ 'Lockfile removed!' => 'Plik blokuj±cy usuniêty!',
+ 'Login' => 'Zarejestrój siê',
+ 'Login name missing!' => 'Brak nazwy!',
+ 'Logout' => 'Wyrejestrój siê',
+ 'Manager' => 'Kierownik',
+ 'Menu Width' => 'Szeroko¶æ Menu',
+ 'Multibyte Encoding' => 'Kodowanie Wielobajtowe',
+ 'Name' => 'Nazwa',
+ 'New Templates' => 'Nowe Szablony',
+ 'No Database Drivers available!' => 'Sterownik Bazy Danych jest niedostêpny',
+ 'No Dataset selected!' => 'Nie jest zaznaczony Zbiór Danych',
+ 'Nothing to delete!' => 'Niema nic do usuniêcia!',
+ 'Number Format' => 'Format Numeru',
+ 'Oracle Database Administration' => 'Administracja Bazy Danych Oracle',
+ 'Password' => 'Has³o',
+ 'Password changed!' => 'Has³o zmienione',
+ 'Pg Database Administration' => 'Administracja Bazy Danych Pg',
+ 'PgPP Database Administration' => 'Administracja Bazy Danych PgPP',
+ 'Phone' => 'Tel.',
+ 'Port' => 'Port',
+ 'Port missing!' => 'Brak Portu',
+ 'Printer' => 'Drukarka',
+ 'Save' => 'Zapisz',
+ 'Setup Templates' => 'Ustaw Szablony',
+ 'Signature' => 'Podpis',
+ 'Stylesheet' => 'Strona Stylowa',
+ 'Templates' => 'Szablony',
+ 'The following Datasets are not in use and can be deleted' => 'Te Zbiory Danych s± nieu¿ywane i mo¿na je usun±æ',
+ 'The following Datasets need to be updated' => 'Zbiory Danych do uzupe³nienia',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Jest to wstêpne sprawdzenie istniej±cych ¿róde³. Narazie nic nie bêdzie utworzone lub usuniête.',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => '¯eby dodaæ do grupy u¿ytkownika zmieñ nazwê, nazwê zarejestrowania i zapisz. Nowy u¿ytkownik z tymi samymi zmiennymi warto¶ciami bêdzie zapisany pod now± nazw± rejestruj±c±',
+ 'Unlock System' => 'Unlock System',
+ 'Update Dataset' => 'Uzupe³nij Zbiór Danych',
+ 'Use Templates' => 'U¿yj Szablony',
+ 'User' => 'U¿ytkownik',
+ 'User deleted!' => 'U¿ytkownik usuniêty',
+ 'User saved!' => 'U¿ytkownik zapisany',
+ 'Version' => 'Wersja',
+ 'does not exist' => 'nie istnieje',
+ 'is already a member!' => 'Jest ju¿ cz³onkiem',
+ 'localhost' => 'serwer lokalny',
+ 'locked!' => 'zablokowane',
+ 'successfully created!' => 'stworzone z powodzeniem',
+ 'successfully deleted!' => 'usuniête z powodzeniem',
+ 'website' => 'witryna WWW',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'dodaj_u¿ytkownika' => 'add_user',
+ 'zmiana_has³a_administratora' => 'change_admin_password',
+ 'zmieñ_has³o' => 'change_password',
+ 'kontynuj' => 'continue',
+ 'utwórz_zbiór_danych' => 'create_dataset',
+ 'usuñ' => 'delete',
+ 'usuñ_zbior_danych' => 'delete_dataset',
+ 'zablokuj_system' => 'lock_system',
+ 'zarejestrój_siê' => 'login',
+ 'wyrejestrój_siê' => 'logout',
+ 'administracja_bazy_danych_oracle' => 'oracle_database_administration',
+ 'administracja_bazy_danych_pg' => 'pg_database_administration',
+ 'administracja_bazy_danych_pgpp' => 'pgpp_database_administration',
+ 'zapisz' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'uzupe³nij_zbiór_danych' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/pl/all b/locale/pl/all
new file mode 100755
index 00000000..e58fd145
--- /dev/null
+++ b/locale/pl/all
@@ -0,0 +1,896 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+$self{charset} = 'ISO-8859-2';
+
+
+$self{texts} = {
+ 'A' => 'A',
+ 'AP' => 'Ksiêga Zobowi±zañ',
+ 'AP Aging' => 'Plan P³atno¶ci Zobowi±zañ',
+ 'AP Outstanding' => 'Zobowi±zania Nieuregulowane',
+ 'AP Transaction' => 'Transakcja Zobowi±zañ',
+ 'AP Transactions' => 'Transakcje Zobowi±zañ',
+ 'AR' => 'Ksiêga Nale¿no¶ci',
+ 'AR Aging' => 'Plan P³atno¶ci Nale¿no¶ci',
+ 'AR Outstanding' => 'Nale¿no¶ci Nieuregulowane',
+ 'AR Transaction' => 'Transakcja Nale¿no¶ci',
+ 'AR Transactions' => 'Transakcje Nale¿no¶ci',
+ 'AR/AP' => '',
+ 'About' => 'Na Temat',
+ 'Above' => 'Powy¿szy',
+ 'Access Control' => 'Kontrola Dostêpu',
+ 'Access Denied!' => '',
+ 'Account' => 'Konto',
+ 'Account Number' => 'Numer Konta',
+ 'Account Number missing!' => 'Brak Numeru Konta!',
+ 'Account Type' => 'Rodzaj Konta',
+ 'Account Type missing!' => 'Brak Rodzaju Konta!',
+ 'Account deleted!' => 'Usuniêto Konto',
+ 'Account does not exist!' => 'Konto nie istnieje!',
+ 'Account saved!' => 'Zapisano Konto',
+ 'Accounting' => 'Ksiêgowo¶æ',
+ 'Accounting Menu' => 'Menu Ksiêgowo¶ci',
+ 'Accounts' => 'Konta',
+ 'Accrual' => 'Memoria³owa',
+ 'Activate Audit trail' => 'Uaktywnij ¶lady Audytu',
+ 'Activate Audit trails' => 'Uaktywnij ¶lady Audytu',
+ 'Active' => 'Aktywne',
+ 'Add' => 'Dodaj',
+ 'Add AP Transaction' => 'Rejestr w Ksiêdze Zobowi±zañ',
+ 'Add AR Transaction' => 'Rejestr w Ksiêdze Nale¿no¶ci',
+ 'Add Account' => 'Dodaj Konto',
+ 'Add Assembly' => 'Dodaj Zestaw',
+ 'Add Business' => 'Dodaj Dzia³alno¶æ',
+ 'Add Cash Transfer Transaction' => 'Dokonaj Przelewu',
+ 'Add Customer' => 'Dodaj Odbiorcê',
+ 'Add Deduction' => 'Dodaj Odliczenie',
+ 'Add Department' => 'Dodaj Wydzia³',
+ 'Add Employee' => 'Dodaj Pracownika',
+ 'Add Exchange Rate' => 'Dodaj Kurs Walut',
+ 'Add GIFI' => 'Dodaj GIFI',
+ 'Add General Ledger Transaction' => 'Dodaj Transakcjê w Ksiêdze G³ównej',
+ 'Add Group' => 'Dodaj Grupê',
+ 'Add Job' => '',
+ 'Add Labor/Overhead' => 'Dodaj wydatki Pracownicze/Administracyjne',
+ 'Add Language' => 'Dodaj Jêzyk',
+ 'Add POS Invoice' => 'Dodaj Fakturê w Punkcie Sprzeda¿y',
+ 'Add Part' => 'Dodaj Produkt',
+ 'Add Pricegroup' => 'Dodaj Grupê Cenow±',
+ 'Add Project' => 'Dodaj Projekt',
+ 'Add Purchase Order' => 'Dodaj Zamówienie Zakupu',
+ 'Add Quotation' => 'Dodaj Ofertê',
+ 'Add Request for Quotation' => 'Dodaj Pro¶bê o Ofertê',
+ 'Add SIC' => 'Dodaj EKD',
+ 'Add Sales Invoice' => 'Zarejestrój Fakturê VAT Sprzeda¿y',
+ 'Add Sales Order' => 'Dodaj Zlecenie Sprzeda¿y',
+ 'Add Service' => 'Dodaj Us³ugi',
+ 'Add Timecard' => '',
+ 'Add Transaction' => 'Dodaj Transakcjê',
+ 'Add User' => 'Dodaj U¿ytkownika',
+ 'Add Vendor' => 'Dodaj Dostawcê',
+ 'Add Vendor Invoice' => 'Zarejestrój Fakturê VAT Zakupu',
+ 'Add Warehouse' => 'Dodaj Magazyn',
+ 'Address' => 'Adres',
+ 'Administration' => 'Administracja',
+ 'Administrator' => 'Administrator',
+ 'After Deduction' => 'Po Odliczeniu',
+ 'All' => 'Wszystko',
+ 'All Accounts' => 'Wszystkie Konta',
+ 'All Datasets up to date!' => 'Zbiory Danych uzupe³nione!',
+ 'All Items' => 'Wszystkie Pozycje',
+ 'Allowances' => 'Dodatki',
+ 'Amount' => 'Kwota',
+ 'Amount Due' => 'Kwota Nale¿na',
+ 'Amount missing!' => 'Brakuje kwoty!',
+ 'Apr' => 'Kwiecieñ',
+ 'April' => 'Kwiecieñ',
+ 'Are you sure you want to delete Invoice Number' => 'Czy chcesz usun±æ Numer Faktury?',
+ 'Are you sure you want to delete Order Number' => 'Czy chcesz usun±æ Numer Zamówienia?',
+ 'Are you sure you want to delete Quotation Number' => 'Czy chcesz usun±æ Numer Oferty?',
+ 'Are you sure you want to delete Timecard for' => '',
+ 'Are you sure you want to delete Transaction' => 'Czy chcesz usun±æ Transakcjê?',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Czy chcesz usun±æ oznaczone wej¶cia z kolejki?',
+ 'Assemblies' => 'Zestawy',
+ 'Assemblies restocked!' => 'Zestawy uzupe³nione',
+ 'Assembly' => 'Zestaw',
+ 'Assembly stocked!' => '',
+ 'Asset' => 'Aktywy',
+ 'Attachment' => 'Za³±cznik',
+ 'Audit Control' => 'Kontrola Audytu',
+ 'Audit trail disabled' => '¦lad Audytu unieruchomiony',
+ 'Audit trail enabled' => '¦lad Audytu umo¿liwiony',
+ 'Audit trail removed up to' => '¦lad Audytu przesuniêty do',
+ 'Audit trails disabled' => '¦lad Audytu unieruchomiony',
+ 'Audit trails enabled' => '¦lad Audytu umo¿liwiony',
+ 'Aug' => 'Sierpieñ',
+ 'August' => 'Sierpieñ',
+ 'Average Cost' => '',
+ 'Avg Cost' => '',
+ 'BIC' => 'SWIFT',
+ 'BOM' => 'Struktura Wyrobu',
+ 'Backup' => 'Kopia Zapasowa',
+ 'Backup sent to' => 'Kopia Zapasowa wys³ana do',
+ 'Balance' => 'Saldo',
+ 'Balance Sheet' => 'Bilans',
+ 'Based on' => 'Bazowany na',
+ 'Bcc' => 'Bcc',
+ 'Before Deduction' => 'Przed Odliczeniem',
+ 'Beginning Balance' => 'Saldo Pocz±tkowe',
+ 'Below' => 'Poni¿ej',
+ 'Billing Address' => 'Adres Korespondencji',
+ 'Bin' => 'Kosz',
+ 'Bin List' => 'Wykaz Kosza',
+ 'Bin Lists' => 'Wykazy Koszy',
+ 'Books are open' => 'Ksiêgi otwarte',
+ 'Break' => 'Próg Rentowno¶ci',
+ 'Business' => 'Dzia³alno¶æ',
+ 'Business Number' => 'NIP',
+ 'Business deleted!' => 'REGON',
+ 'Business saved!' => 'Dzia³alno¶æ zapisana',
+ 'C' => 'C',
+ 'COGS' => 'Koszta Sprzeda¿y',
+ 'COGS account does not exist!' => '',
+ 'Cannot add timecard for a completed job!' => '',
+ 'Cannot change timecard for a completed job!' => '',
+ 'Cannot create Assembly' => '',
+ 'Cannot create Labor' => '',
+ 'Cannot create Lock!' => 'Nie mo¿esz stworzyæ pliku blokuj±cego!!',
+ 'Cannot create Part' => '',
+ 'Cannot create Service' => '',
+ 'Cannot delete Timecard!' => '',
+ 'Cannot delete account!' => 'Nie mo¿esz usun±æ konta!',
+ 'Cannot delete customer!' => 'Nie mo¿esz usun±æ odbiorcy!',
+ 'Cannot delete default account!' => 'Konto Domy¶lne nie mo¿e byæ usuniête!',
+ 'Cannot delete invoice!' => 'Nie mo¿esz usun±æ factury!',
+ 'Cannot delete item!' => 'Nie mo¿esz usun±æ pozycji!',
+ 'Cannot delete order!' => 'Nie mo¿esz usun±æ zamówienia!',
+ 'Cannot delete quotation!' => 'Nie mo¿esz usun±æ oferty',
+ 'Cannot delete transaction!' => 'Nie mo¿esz usun±æ transakcji!',
+ 'Cannot delete vendor!' => 'Nie mo¿esz usun±æ dostawcy!',
+ 'Cannot post Payment!' => 'Nie mo¿esz zatwierdziæ Op³aty!',
+ 'Cannot post Receipt!' => 'Nie mo¿esz zatwierdziæ Wp³aty!',
+ 'Cannot post invoice for a closed period!' => 'Nie mo¿na zksiêgowaæ faktury po zamkniêciu okresu!',
+ 'Cannot post invoice!' => 'Nie mo¿esz zatwierdziæ faktury!',
+ 'Cannot post payment for a closed period!' => 'Nie mo¿na zaksiêgowaæ p³atno¶ci po zamkniêciu okresu!',
+ 'Cannot post transaction for a closed period!' => 'Nie mo¿na zaksiêgowaæ transakcji po zamkniêciu okresu!',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => '',
+ 'Cannot post transaction!' => 'Nie mo¿esz zatwierdziæ transakcji!',
+ 'Cannot remove files!' => 'Nie mo¿esz usun±æ pliku!',
+ 'Cannot save account!' => 'Nie mo¿na zapisaæ konta!',
+ 'Cannot save defaults!' => 'Nie mo¿na zapisa ustawieñ domy¶lnych!',
+ 'Cannot save order!' => 'Nie mo¿na zapisaæ zamowienia!',
+ 'Cannot save preferences!' => 'Nie mo¿na zapisaæ preferencji!',
+ 'Cannot save quotation!' => 'Nie mo¿na zapisaæ oferty!',
+ 'Cannot save timecard for a closed period!' => '',
+ 'Cannot save timecard!' => '',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Nie mo¿na ustawiæ konta na wiêcej ni¿ jeden rodzaj',
+ 'Cannot set multiple options for' => 'Nie mo¿na umieszczaæ wielokrotnego wyboru dla',
+ 'Cannot set multiple options for Item' => '',
+ 'Cannot stock Assembly!' => '',
+ 'Cannot stock assemblies!' => 'Nie mo¿na wstawiæ z³o¿enia',
+ 'Cash' => 'Kasa',
+ 'Cc' => 'Cc',
+ 'Change' => 'Reszta',
+ 'Change Admin Password' => 'Zmiana Has³a Administratora',
+ 'Change Password' => 'Zmieñ Has³o',
+ 'Charge' => '',
+ 'Chart of Accounts' => 'Plan Kont',
+ 'Check' => 'Czek',
+ 'Check Inventory' => 'Kontrola Inwentarza',
+ 'Checks' => 'Czeki',
+ 'City' => 'Miasto',
+ 'Cleared' => 'Rozliczone',
+ 'Click on login name to edit!' => 'Kliknij nazwê u¿ytkownika ¿eby dokonaæ zmian!',
+ 'Clocked' => '',
+ 'Close Books up to' => 'Zamkniêcie Ksi±g do',
+ 'Closed' => 'Zamkniêto',
+ 'Code' => 'Kod',
+ 'Code missing!' => 'Brak Kodu',
+ 'Company' => 'Firma',
+ 'Company Name' => 'Nazwa Firmy',
+ 'Compare to' => 'Porównaj z',
+ 'Completed' => '',
+ 'Components' => 'Sk³adniki',
+ 'Confirm' => '',
+ 'Confirm!' => 'Potwierd¿!',
+ 'Connect to' => 'Pod³±cz do',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Kontynuj',
+ 'Contra' => 'Konto Przeciwstawne',
+ 'Copies' => 'Kopie',
+ 'Copy to COA' => 'Skopiuj do Planu Kont',
+ 'Cost' => 'Koszt',
+ 'Cost Center' => 'Centrum Kosztów',
+ 'Could not save pricelist!' => 'Nie mo¿e zapisaæ cennika!',
+ 'Could not save!' => 'Nie mo¿e zapisaæ!',
+ 'Could not transfer Inventory!' => 'Nie mo¿e przesun±æ Inwentarza',
+ 'Country' => 'Kraj',
+ 'Create Chart of Accounts' => 'Utwórz Wzór Kont',
+ 'Create Dataset' => 'Utwórz Zbiór Danych',
+ 'Credit' => 'Kredyt',
+ 'Credit Limit' => 'Limit Kredytu',
+ 'Curr' => 'Waluta',
+ 'Currency' => 'Waluta',
+ 'Current' => 'Bie¿±cy',
+ 'Current Earnings' => 'Acdtualny Dochód',
+ 'Customer' => 'Odbiorca',
+ 'Customer History' => 'Statystyka Sprzeda¿y',
+ 'Customer Number' => 'Numer Odbiorcy',
+ 'Customer deleted!' => 'Odbiorca usuniêty',
+ 'Customer missing!' => 'Brak Odbiorcy',
+ 'Customer not on file!' => 'Brak Odbiorcy w bazie danych',
+ 'Customer saved!' => 'Odbiorca zapisany!',
+ 'Customers' => 'Odbiorcy',
+ 'DBI not installed!' => 'Nie zainstalowane DBI!',
+ 'DOB' => '',
+ 'Database' => 'Baza Danych',
+ 'Database Administration' => 'Administracja Bazy Danych',
+ 'Database Driver not checked!' => 'Sterownik Bazy Danych nie zaznaczony!',
+ 'Database Host' => 'Serwer Bazy Danych',
+ 'Database User missing!' => 'Brak U¿ytkownika Bazy Danych!',
+ 'Dataset' => 'Zbiór Danych',
+ 'Dataset is newer than version!' => 'Baza Danych jest nowsza ni¿ wersja!',
+ 'Dataset missing!' => 'Brak Zbioru Danych',
+ 'Dataset updated!' => 'Zbiór Danych uzupe³niony!',
+ 'Date' => 'Data',
+ 'Date Format' => 'Format Daty',
+ 'Date Paid' => 'Data Zap³aty',
+ 'Date Received' => 'Data Wp³aty',
+ 'Date missing!' => 'Brak Daty',
+ 'Date received missing!' => 'Brak Daty Wp³aty',
+ 'Date worked' => '',
+ 'Day' => '',
+ 'Day(s)' => '',
+ 'Days' => '',
+ 'Debit' => 'Debet',
+ 'Dec' => 'Grudzieñ',
+ 'December' => 'Grudzieñ',
+ 'Decimalplaces' => 'Miejsca Dziesiêtne',
+ 'Decrease' => 'Zmniejszenie',
+ 'Deduct after' => 'Potr±æ po',
+ 'Deduction deleted!' => 'Potr±cenie usuniête',
+ 'Deduction saved!' => 'Potr±cenie zapisane',
+ 'Deductions' => 'Potr±cenia',
+ 'Default Template' => '',
+ 'Defaults' => 'Ustawienia',
+ 'Defaults saved!' => 'Ustawienia zapisane!',
+ 'Delete' => 'Usuñ',
+ 'Delete Account' => 'Usuñ Konto',
+ 'Delete Dataset' => 'Usuñ Zbior Danych',
+ 'Delete Schedule' => '',
+ 'Deleting a language will also delete the templates for the language' => '',
+ 'Delivery Date' => 'Data Dostawy',
+ 'Department' => 'Wydzia³',
+ 'Department deleted!' => 'Wydzia³ usuniêty',
+ 'Department saved!' => 'Wydzia³ zapisany',
+ 'Departments' => 'Wydzia³y',
+ 'Deposit' => 'Kasa Przyjmie',
+ 'Description' => 'Opis',
+ 'Description Translations' => 'T³umaczenie Opisu',
+ 'Description missing!' => 'Brak Opisu!',
+ 'Detail' => 'Wyszczególnienie',
+ 'Difference' => 'Ró¿nica',
+ 'Directory' => 'Katalog',
+ 'Discount' => 'Rabat',
+ 'Done' => 'Zrobione',
+ 'Drawing' => 'Rysunek',
+ 'Driver' => 'Sterownik',
+ 'Dropdown Limit' => 'Limit Rozwiniêcia',
+ 'Due Date' => 'Termin P³atno¶ci',
+ 'Due Date missing!' => 'Brak Terminu P³atno¶ci!',
+ 'E-mail' => 'E-mail',
+ 'E-mail Statement to' => 'E-mail Wykaz do',
+ 'E-mail address missing!' => 'Brak adresu E-mail!',
+ 'E-mail message' => '',
+ 'E-mailed' => 'Wys³ano',
+ 'Edit' => 'Zmieñ',
+ 'Edit AP Transaction' => 'Zmiany Transakcji Konta Zobowi±zañ',
+ 'Edit AR Transaction' => 'Zmiany Transakcji Konta Nale¿no¶ci',
+ 'Edit Account' => 'Zmiany Konta',
+ 'Edit Assembly' => 'Zmiany Zestawieñ',
+ 'Edit Business' => 'Zmieñ Dzia³alno¶æ',
+ 'Edit Cash Transfer Transaction' => 'Zmiana Transakcji Kasowej',
+ 'Edit Customer' => 'Zmiany Odbiorcy',
+ 'Edit Deduction' => 'Zmieñ Potr±cenie',
+ 'Edit Department' => 'Zmiany Wydzia³u',
+ 'Edit Description Translations' => 'Zmieñ T³umaczenie Opisu',
+ 'Edit Employee' => 'Zmiany Pracownika',
+ 'Edit GIFI' => 'Zmieñ GIFI',
+ 'Edit General Ledger Transaction' => 'Zmiany w Ksiêdze G³ównej',
+ 'Edit Group' => 'Zmieñ Grupê',
+ 'Edit Job' => '',
+ 'Edit Labor/Overhead' => 'Zmieñ wydatki Pracownicze/Administracyjne',
+ 'Edit Language' => 'Zmien Jêzyk',
+ 'Edit POS Invoice' => 'Zmieñ Fakturê Punktu Sprzeda¿y',
+ 'Edit Part' => 'Zmiany Produktu',
+ 'Edit Preferences for' => 'Zmiany Preferencji dla',
+ 'Edit Pricegroup' => 'Zmieñ Grupê Cenow±',
+ 'Edit Project' => 'Zmiany Projektu',
+ 'Edit Purchase Order' => 'Zmiany Zlecenia Zakupu',
+ 'Edit Quotation' => 'Zmieñ Ofertê',
+ 'Edit Request for Quotation' => 'Zmieñ Pro¶bê o Ofertê',
+ 'Edit SIC' => 'Zmieñ SIC',
+ 'Edit Sales Invoice' => 'Zmiany Faktury Sprzeda¿y',
+ 'Edit Sales Order' => 'Zmiany Zlecenia Sprzedazy',
+ 'Edit Service' => 'Zmiany Us³ug',
+ 'Edit Template' => 'Zmiany Wzorca',
+ 'Edit Timecard' => '',
+ 'Edit User' => 'Zmiany U¿ytkownika',
+ 'Edit Vendor' => 'Zmiany Dostawcy',
+ 'Edit Vendor Invoice' => 'Zmiany Faktury Zamówienia',
+ 'Edit Warehouse' => 'Zmiany Magazynu',
+ 'Employee' => 'Pracownik',
+ 'Employee Name' => 'Nazwisko Pracownika',
+ 'Employee Number' => 'Numer Pracownika',
+ 'Employee deleted!' => 'Pracownik usuniêty!',
+ 'Employee pays' => 'Pracownik p³aci',
+ 'Employee saved!' => 'Pracownik zapisany',
+ 'Employees' => 'Pracownicy',
+ 'Employer' => 'Pracodawca',
+ 'Employer pays' => 'Pracodawca p³aci',
+ 'Enddate' => 'Dzieñ Zwolnienia',
+ 'Ends' => '',
+ 'Enforce transaction reversal for all dates' => 'Egzekwój zmiany transakcji dla wszystkich okresów',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Wpisz symbole (nap. PLN:USD:EUR:YEN) krajowych i zagranicznych walut',
+ 'Equity' => 'Kapita³',
+ 'Every' => '',
+ 'Excempt age <' => '',
+ 'Exch' => 'Kurs Walut',
+ 'Exchange Rate' => 'Kurs Walut',
+ 'Exchange rate for payment missing!' => 'Brakuje Kursu Walut dla p³atno¶ci!',
+ 'Exchange rate missing!' => 'Brakuje Kursu Walut',
+ 'Existing Datasets' => 'Istniej±cy Zbiór Danych',
+ 'Expense' => 'Koszt',
+ 'Expense account does not exist!' => '',
+ 'Expense/Asset' => 'Koszt/Aktywy',
+ 'Extended' => 'Warto¶æ Netto',
+ 'FX' => 'Kurs Walut',
+ 'Failed to save order!' => '',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Luty',
+ 'February' => 'Luty',
+ 'For' => '',
+ 'Foreign Exchange Gain' => 'Zysk przy Zamianie Walut',
+ 'Foreign Exchange Loss' => 'Strata przy Zamianie Walut',
+ 'Friday' => '',
+ 'From' => 'Od',
+ 'From Warehouse' => '',
+ 'GIFI' => 'GIFI',
+ 'GIFI deleted!' => 'GIFI usuniête',
+ 'GIFI missing!' => 'Brakuje GIFI',
+ 'GIFI saved!' => 'GIFI zapisane',
+ 'GL' => '',
+ 'GL Reference Number' => '',
+ 'GL Transaction' => 'Transakcja Ksiêgi G³ównej',
+ 'General Ledger' => 'Ksiêga G³ówna',
+ 'Generate' => '',
+ 'Generate Orders' => '',
+ 'Generate Purchase Orders' => '',
+ 'Generate Purchase Orders from Sales Order' => '',
+ 'Generate Sales Order' => '',
+ 'Generate Sales Order from Purchase Orders' => '',
+ 'Generate Sales Orders' => '',
+ 'Goods & Services' => 'Produkty i Us³ugi',
+ 'Group' => 'Grupa',
+ 'Group Items' => 'Grupój pozycje',
+ 'Group Translations' => 'Grupój T³umaczenia',
+ 'Group deleted!' => 'Grupa usuniêta',
+ 'Group missing!' => 'Brakuje Grupy',
+ 'Group saved!' => 'Grupa zapisana',
+ 'Groups' => 'Grupy',
+ 'HR' => 'Kadry',
+ 'HTML Templates' => 'Szablony HTML',
+ 'Heading' => 'Nag³ówek',
+ 'History' => 'Statystyka',
+ 'Home Phone' => 'Telefon domowy',
+ 'Host' => 'Server',
+ 'Hostname missing!' => 'Brak Nazwy Serwera',
+ 'IBAN' => 'IBAN/NRB',
+ 'ID' => 'Identyfikator',
+ 'Image' => 'Grafika',
+ 'In-line' => 'W³±czony',
+ 'Inactive' => '',
+ 'Include Exchange Rate Difference' => 'Za³±cz Ró¿nice Wymiany Walut',
+ 'Include Payment' => '',
+ 'Include in Report' => 'Do³±cz w Sprawozdaniu',
+ 'Include in drop-down menus' => 'Do³±cz w menu rozwijanym',
+ 'Income' => 'Przychód',
+ 'Income Statement' => 'Rachunek Zysków i Strat',
+ 'Income account does not exist!' => '',
+ 'Incorrect Dataset version!' => 'Nieprawid³owa wersja Zbioru Danych',
+ 'Increase' => 'Zwiêkszenie',
+ 'Individual Items' => 'Indywidualne Czê¶ci',
+ 'Internal Notes' => 'Noty Wewnêtrzne',
+ 'Inventory' => 'Inwentarz',
+ 'Inventory account does not exist!' => '',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Ilo¶æ Inventarza musi byæ równa zero zanim bêdzie mozna zdezaktualizowaæ ten zestaw!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Ilo¶æ inventarza musi byæ równa zero zanim bêdzie mo¿na zdezaktualizowaæ t± czê¶æ!',
+ 'Inventory saved!' => 'Inwentarz zapisany!',
+ 'Inventory transferred!' => 'Inwentarz przeniesiony!',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date' => 'Data Wystawienia',
+ 'Invoice Date missing!' => 'Brak Daty Wystawienia',
+ 'Invoice Number' => 'Numer Faktury',
+ 'Invoice Number missing!' => 'Brak Numeru Faktury',
+ 'Invoice deleted!' => 'Faktura usuniêta',
+ 'Invoices' => 'Faktury',
+ 'Is this a summary account to record' => 'Czy jest to konto sumaryczne?',
+ 'Item already on pricelist!' => 'Produkt ju¿ zawarty w cenniku!',
+ 'Item deleted!' => 'Pozycja usuniêta',
+ 'Item not on file!' => 'Produkt nie jest w zbiorze!',
+ 'Items' => 'Pozycje',
+ 'Jan' => 'Styczeñ',
+ 'January' => 'Styczeñ',
+ 'Job' => '',
+ 'Job Name' => '',
+ 'Job Number' => '',
+ 'Job Number missing!' => '',
+ 'Job deleted!' => '',
+ 'Job saved!' => '',
+ 'Jobs' => '',
+ 'Jul' => 'Lipiec',
+ 'July' => 'Lipiec',
+ 'Jun' => 'Czerwiec',
+ 'June' => 'Czerwiec',
+ 'LaTeX Templates' => 'Szablony LaTeX',
+ 'Labor Code' => '',
+ 'Labor/Overhead' => 'Koszty Pracownicze/Administracyjne',
+ 'Language' => 'Jêzyk',
+ 'Language deleted!' => 'Jêzyk usuniêty',
+ 'Language saved!' => 'Jêzyk zapisany',
+ 'Languages' => 'Jêzyki',
+ 'Languages not defined!' => 'Jêzyk nie zdefiniowany!',
+ 'Last Cost' => '',
+ 'Last Numbers & Default Accounts' => 'Ostatnie Numery i Konta Domy¶lne',
+ 'Lead' => '',
+ 'Leadtime' => 'Cykl',
+ 'Leave host and port field empty unless you want to make a remote connection.' => 'Opu¶æ pole serwera i portu, chyba ¿e chcesz mieæ zdalne po³±czenie',
+ 'Liability' => 'Zobowi±zania',
+ 'Licensed to' => 'Licencja nale¿y do:',
+ 'Line Total' => 'Suma ca³kowita',
+ 'Link' => 'Dowi±zanie',
+ 'Link Accounts' => 'Konta dowi±zane',
+ 'List' => 'Spis',
+ 'List Accounts' => 'Spis Kont',
+ 'List Businesses' => 'Wykaz Dzia³alno¶ci',
+ 'List Departments' => 'Wykaz Wydzia³ów',
+ 'List GIFI' => 'Wykaz GIFI',
+ 'List Languages' => 'Wykaz Jêzyków',
+ 'List Price' => 'Cena',
+ 'List Projects' => 'Wykaz Projektów',
+ 'List SIC' => 'Wykaz EKD',
+ 'List Transactions' => 'Wykaz Transakcji',
+ 'List Warehouses' => 'Wykaz Magazynów',
+ 'Lock System' => 'Zablokuj System',
+ 'Lockfile created!' => 'Plik blokuj±cy utworzony!',
+ 'Lockfile removed!' => 'Plik blokuj±cy usuniêty!',
+ 'Login' => 'Zarejestrój siê',
+ 'Login name missing!' => 'Brak nazwy!',
+ 'Logout' => 'Wyrejestrój siê',
+ 'Make' => 'Marka',
+ 'Manager' => 'Kierownik',
+ 'Mar' => 'Marzec',
+ 'March' => 'Marzec',
+ 'Marked entries printed!' => 'Zaznaczone wpisy wydrukowane',
+ 'Markup' => 'Mar¿a',
+ 'Maximum' => 'Maxymalna',
+ 'May' => 'Maj',
+ 'May ' => 'Maj',
+ 'Memo' => 'Notatka',
+ 'Menu Width' => 'Szeroko¶æ Menu',
+ 'Message' => 'Wiadomo¶æ',
+ 'Method' => 'Metoda',
+ 'Microfiche' => 'Mikrofilm',
+ 'Model' => 'Model',
+ 'Monday' => '',
+ 'Month' => 'Miesi±c',
+ 'Month(s)' => '',
+ 'Months' => '',
+ 'Multibyte Encoding' => 'Kodowanie Wielobajtowe',
+ 'N/A' => 'N/A',
+ 'Name' => 'Nazwa',
+ 'Name missing!' => 'Brak Nazwy',
+ 'New Templates' => 'Nowe Szablony',
+ 'New Window' => '',
+ 'Next' => '',
+ 'Next Date' => '',
+ 'Next Number' => '',
+ 'No' => 'Nie',
+ 'No Database Drivers available!' => 'Sterownik Bazy Danych jest niedostêpny',
+ 'No Dataset selected!' => 'Nie jest zaznaczony Zbiór Danych',
+ 'No Employees on file!' => '',
+ 'No Labor codes on file!' => '',
+ 'No email address for' => 'Brak adresu email',
+ 'No open Jobs!' => '',
+ 'No open Projects!' => '',
+ 'No.' => 'Nr.',
+ 'Non-taxable' => 'Rejestr VAT - Nieopodatkowane',
+ 'Non-taxable Purchases' => 'Rejestr VAT - Zakupy',
+ 'Non-taxable Sales' => 'Rejestr VAT - Sprzeda¿',
+ 'Non-tracking Items' => '',
+ 'Notes' => 'Noty',
+ 'Nothing entered!' => 'Nic nie wprowadzono!',
+ 'Nothing selected!' => 'Nic nie zaznaczone!',
+ 'Nothing to delete!' => 'Niema nic do usuniêcia!',
+ 'Nothing to print!' => 'Nic do wydrukowania!',
+ 'Nothing to transfer!' => 'Nie ma nic do przeniesienia!',
+ 'Nov' => 'Listopad',
+ 'November' => 'Listopad',
+ 'Number' => 'Numer Katalogu',
+ 'Number Format' => 'Format Numeru',
+ 'Number missing in Row' => 'Brak Numeru w Rzêdzie',
+ 'O' => 'O',
+ 'OH' => '',
+ 'Obsolete' => 'Przestarza³e',
+ 'Oct' => 'Pa¿dziernik',
+ 'October' => 'Pa¿dziernik',
+ 'On Hand' => 'Stan Zapasu Podrêcznego',
+ 'Open' => 'Otworzono',
+ 'Oracle Database Administration' => 'Administracja Bazy Danych Oracle',
+ 'Order' => 'Zlecenie',
+ 'Order Date' => 'Data Zlecenia',
+ 'Order Date missing!' => 'Brak Daty Zlecenia',
+ 'Order Entry' => 'Wystawianie Zleceñ',
+ 'Order Number' => 'Numer ZLecenia',
+ 'Order Number missing!' => 'Brak Numeru Zlecenia',
+ 'Order deleted!' => 'Zlecenie usuniête',
+ 'Order generation failed!' => '',
+ 'Order saved!' => 'Zlecenie zapisane',
+ 'Orders generated!' => '',
+ 'Orphaned' => 'Zbêdne',
+ 'Out of balance transaction!' => 'Niezgodne Saldo Transakcji!',
+ 'Out of balance!' => 'Niezgodne Saldo',
+ 'Outstanding' => 'Transakcje Nieuregulowane',
+ 'PDF' => 'PDF',
+ 'PO Number' => '',
+ 'POS' => 'Punkt Sprzeda¿y',
+ 'POS Invoice' => 'Faktura Punktu Sprzeda¿y',
+ 'Packing List' => 'Lista Pakunkowa',
+ 'Packing List Date missing!' => 'Brak Daty Listy Pakunkowej',
+ 'Packing List Number missing!' => 'Brak Numeru Listy Pakunkowej',
+ 'Packing Lists' => 'Listy Pakunkowe',
+ 'Paid' => 'Zap³acono',
+ 'Part' => 'Produkt',
+ 'Part Number' => '',
+ 'Partnumber' => 'Symbol',
+ 'Parts' => 'Produkty',
+ 'Password' => 'Has³o',
+ 'Password changed!' => 'Has³o zmienione',
+ 'Password does not match!' => '',
+ 'Passwords do not match!' => '',
+ 'Payables' => 'Zobowi±zania',
+ 'Payment' => 'Kasa Wyp³aci',
+ 'Payment date missing!' => 'Brak Daty Wyp³aty',
+ 'Payment posted!' => 'Wyp³ata zatwierdzona',
+ 'Payments' => 'Wyp³aty',
+ 'Payments posted!' => '',
+ 'Payroll Deduction' => 'Lista P³ac - Potr±cenia',
+ 'Period' => 'Okres',
+ 'Pg Database Administration' => 'Administracja Bazy Danych Pg',
+ 'PgPP Database Administration' => 'Administracja Bazy Danych PgPP',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Lista Pobrania',
+ 'Pick Lists' => 'Listy Pobrania',
+ 'Port' => 'Port',
+ 'Port missing!' => 'Brak Portu',
+ 'Pos' => '',
+ 'Post' => 'Zatwierd¿',
+ 'Post as new' => 'Zatwierd¿ jako nowe',
+ 'Posted!' => 'Zatwierdzone!',
+ 'Posting' => '',
+ 'Posting failed!' => '',
+ 'Postscript' => 'Postscript',
+ 'Preferences' => 'Preferencje',
+ 'Preferences saved!' => 'Preferencje Zapisane!',
+ 'Prepayment' => 'Przedp³ata',
+ 'Price' => 'Cena Netto',
+ 'Pricegroup' => 'Grupa cenowa',
+ 'Pricegroup deleted!' => 'Grupa cenowa usuniêta',
+ 'Pricegroup missing!' => 'Brakuje Grupy cenowej',
+ 'Pricegroup saved!' => 'Grupa cenowa zapisana',
+ 'Pricegroups' => 'Grupy cenowa',
+ 'Pricelist' => 'Cennik',
+ 'Print' => 'Wydrukuj',
+ 'Print and Post' => 'Wydrukuj i Zatwierd¿',
+ 'Print and Post as new' => '',
+ 'Print and Save' => 'Wydrukuj i Zapisz',
+ 'Print and Save as new' => '',
+ 'Print and post as new' => '',
+ 'Print and save as new' => '',
+ 'Printed' => 'Wydrukowane',
+ 'Printer' => 'Drukarka',
+ 'Printing' => '',
+ 'Printing ... ' => 'Drukuje ...',
+ 'Process Transactions' => '',
+ 'Production' => '',
+ 'Profit Center' => 'Centrum Zysków',
+ 'Project' => 'Projekt',
+ 'Project Description Translations' => 'T³umaczenie Opisu Projektu',
+ 'Project Name' => '',
+ 'Project Number' => 'Numer Projektu',
+ 'Project Number missing!' => 'Brak Numeru Projektu',
+ 'Project Transactions' => 'Transakcje Projektów',
+ 'Project deleted!' => 'Projekt usuniêty',
+ 'Project not on file!' => 'Brak Projektu w zbiorze danych!',
+ 'Project saved!' => 'Projekt zapisany',
+ 'Project/Job Name' => '',
+ 'Project/Job Number' => '',
+ 'Projects' => 'Projekty',
+ 'Purchase Order' => 'Zlecenie Zakupu',
+ 'Purchase Order Number' => 'Numer Zlecenia Zakupu',
+ 'Purchase Orders' => 'Zlecenia Zakupu',
+ 'Qty' => 'Ilo¶æ',
+ 'Quantity exceeds available units to stock!' => 'Ilo¶æ przewy¿sza dostêpne jednostki zasobów!',
+ 'Quarter' => 'Kwarta³',
+ 'Quotation' => 'Oferta',
+ 'Quotation ' => 'Oferta',
+ 'Quotation Date' => 'Data Oferty',
+ 'Quotation Date missing!' => 'Brak Daty Oferty',
+ 'Quotation Number' => 'Numer Oferty',
+ 'Quotation Number missing!' => 'Brak Numeru Oferty',
+ 'Quotation deleted!' => 'Oferta usuniêta',
+ 'Quotations' => 'Oferty',
+ 'R' => 'R',
+ 'RFQ' => 'Pro¶ba o Ofertê',
+ 'RFQ ' => 'Prpo¶ba o Ofertê',
+ 'RFQ Number' => 'Numer Pro¶by o Ofertê',
+ 'RFQs' => 'Pro¶by o Ofertê',
+ 'ROP' => 'PPZ',
+ 'Rate' => 'Stawka',
+ 'Rate missing!' => 'Brakuje Stawki',
+ 'Recd' => 'Otrzymano',
+ 'Receipt' => 'Kasa Przyjmie',
+ 'Receipt posted!' => 'Wp³ata zapisana!',
+ 'Receipts' => 'Wp³aty',
+ 'Receivables' => 'Nale¿no¶ci',
+ 'Receive' => 'Dostawy',
+ 'Receive Merchandise' => 'Dostawy Towarów',
+ 'Reconciliation' => 'Zbalansowanie Kont',
+ 'Reconciliation Report' => 'Sprawozdanie Zbalansowania Kont',
+ 'Record in' => 'Zapisz w',
+ 'Recurring Transaction' => '',
+ 'Recurring Transactions' => '',
+ 'Reference' => 'Odno¶nik',
+ 'Remaining' => 'Pozosta³e',
+ 'Remove' => 'Usuñ',
+ 'Remove Audit trail up to' => 'Usuñ ¦lady Audytu do',
+ 'Remove Audit trails up to' => 'Usuñ ¦lady Audytu do',
+ 'Removed spoolfiles!' => 'plik kolejki wydruków',
+ 'Removing marked entries from queue ...' => 'Zaznaczone wpisy usuwane z kolejki ...',
+ 'Repeat' => '',
+ 'Report for' => 'Raport dla',
+ 'Reports' => 'Sprawozdania',
+ 'Req' => '',
+ 'Request for Quotation' => 'Pro¶ba o Ofertê',
+ 'Request for Quotations' => 'Pro¶ba o Oferty',
+ 'Required by' => 'Termin Dostawy',
+ 'Retained Earnings' => 'Zysk',
+ 'Role' => 'Funkcja',
+ 'S' => 'S',
+ 'SIC' => 'EKD',
+ 'SIC deleted!' => 'EKD usuniêty!',
+ 'SIC saved!' => 'EKD zapisany!',
+ 'SKU' => 'SWW',
+ 'SSN' => 'PESEL',
+ 'Sale' => 'Sprzeda¿',
+ 'Sales' => 'Sprzeda¿',
+ 'Sales Invoice' => 'Faktura VAT Sprzeda¿y',
+ 'Sales Invoice ' => 'Faktura VAT Sprzeda¿y',
+ 'Sales Invoice.' => 'Faktura VAT Sprzeda¿y.',
+ 'Sales Invoice/AR Transaction Number' => '',
+ 'Sales Invoices' => 'Faktury VAT Sprzeda¿y',
+ 'Sales Order' => 'Zlecenie Sprzeda¿y',
+ 'Sales Order Number' => 'Numer Zlecenia Sprzeda¿y',
+ 'Sales Orders' => 'Zlecenia Sprzeda¿y',
+ 'Sales Quotation Number' => 'Numer Oferty Sprzeda¿y',
+ 'Salesperson' => 'Sprzedawca',
+ 'Saturday' => '',
+ 'Save' => 'Zapisz',
+ 'Save Pricelist' => 'Zapisz Cennik',
+ 'Save Schedule' => '',
+ 'Save as new' => 'Zapisz jako nowe',
+ 'Save to File' => 'Zapisz w zbiorze',
+ 'Saving' => '',
+ 'Schedule' => '',
+ 'Scheduled' => '',
+ 'Screen' => 'Ekran',
+ 'Search' => 'Znajd¿',
+ 'Select' => 'Wybierz',
+ 'Select Customer' => '',
+ 'Select Vendor' => '',
+ 'Select a Printer!' => '',
+ 'Select a printer!' => '',
+ 'Select all' => 'Wybierz wszystko',
+ 'Select from one of the items below' => 'Wybierz jeden z poni¿szych artyku³ów',
+ 'Select from one of the names below' => 'Wybierz nazwê z poni¿szych',
+ 'Select from one of the projects below' => 'Wybierz z projektów',
+ 'Select items' => '',
+ 'Select payment' => 'Wybierz p³atno¶æ',
+ 'Select postscript or PDF!' => 'Wybierz postscript lub PDF',
+ 'Select txt, postscript or PDF!' => '',
+ 'Sell' => 'Sprzeda¿',
+ 'Sell Price' => 'Cena Sprzeda¿y',
+ 'Send by E-Mail' => 'Wys³ano przez E-Mail',
+ 'Sending' => '',
+ 'Sep' => 'Wrzesieñ',
+ 'September' => 'Wrzesieñ',
+ 'Serial No.' => 'Nr. Sr.',
+ 'Serial Number' => 'Numer Seryjny',
+ 'Service' => 'Us³ugi',
+ 'Service Code' => '',
+ 'Service/Labor Code' => '',
+ 'Services' => 'Us³ugi',
+ 'Session Timeout' => '',
+ 'Session expired!' => '',
+ 'Setup Templates' => 'Ustaw Szablony',
+ 'Ship' => 'Wysy³ka',
+ 'Ship Merchandise' => 'Wysy³ka Produktów',
+ 'Ship to' => 'Wy¶lij do',
+ 'Ship via' => 'Wy¶lij przez',
+ 'Shipping' => 'Spedycja',
+ 'Shipping Address' => 'Adres Dostawy',
+ 'Shipping Date' => 'Dzieñ Dostawy',
+ 'Shipping Date missing!' => 'Brak Dnia Dostawy!',
+ 'Shipping Point' => 'Punkt Dostawy',
+ 'Short' => 'Niedobór',
+ 'Signature' => 'Podpis',
+ 'Source' => '¯ród³o',
+ 'Spoolfile' => 'Plik Kolejki Wydruków',
+ 'Standard' => 'Standartowe',
+ 'Standard Industrial Codes' => 'Europejska Klasyfikacja Dzia³alno¶ci',
+ 'Startdate' => 'Dzieñ Zatrudnienia',
+ 'State' => 'Rejon',
+ 'State/Province' => 'Województwo',
+ 'Statement' => 'Wykaz',
+ 'Statement Balance' => 'Wykaz Salda',
+ 'Statement sent to' => 'Wykaz wys³any do',
+ 'Statements sent to printer!' => 'Wykaz wys³any do drukarki',
+ 'Stock' => 'Zapas',
+ 'Stock Assembly' => 'Wstaw Zestaw',
+ 'Stocking Date' => '',
+ 'Stylesheet' => 'Strona Stylowa',
+ 'Sub-contract GIFI' => 'Subkontrakt GIFI',
+ 'Subject' => 'Tre¶æ',
+ 'Subtotal' => 'Warto¶æ Netto',
+ 'Summary' => 'Skrót',
+ 'Sunday' => '',
+ 'Supervisor' => '',
+ 'System' => 'System',
+ 'System Defaults' => 'Ustawienia Domy¶lne',
+ 'Tax' => 'Podatek',
+ 'Tax Accounts' => 'Konta Podatkowe',
+ 'Tax Included' => 'Podatek Wliczony',
+ 'Tax Number' => 'NIP',
+ 'Tax Number / SSN' => 'NIP / PESEL',
+ 'Tax collected' => 'Rejestr VAT - Sprzeda¿',
+ 'Tax paid' => 'Rejestr VAT - Zakupy',
+ 'Taxable' => 'Opodatkowane',
+ 'Template saved!' => 'Szablon zapisany',
+ 'Templates' => 'Szablony',
+ 'Terms' => 'Warunki: Netto',
+ 'Text' => '',
+ 'Text Templates' => 'Szablony',
+ 'The following Datasets are not in use and can be deleted' => 'Te Zbiory Danych s± nieu¿ywane i mo¿na je usun±æ',
+ 'The following Datasets need to be updated' => 'Zbiory Danych do uzupe³nienia',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Jest to wstêpne sprawdzenie istniej±cych ¿róde³. Narazie nic nie bêdzie utworzone lub usuniête.',
+ 'Thursday' => '',
+ 'Till' => 'Kasa',
+ 'Time In' => '',
+ 'Time Out' => '',
+ 'Timecard' => '',
+ 'Timecard deleted!' => '',
+ 'Timecard saved!' => '',
+ 'Timecards' => '',
+ 'Times' => '',
+ 'To' => 'do',
+ 'To Warehouse' => '',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => '¯eby dodaæ do grupy u¿ytkownika zmieñ nazwê, nazwê zarejestrowania i zapisz. Nowy u¿ytkownik z tymi samymi zmiennymi warto¶ciami bêdzie zapisany pod now± nazw± rejestruj±c±',
+ 'Top Level' => 'Najwy¿szy Poziom',
+ 'Total' => 'Warto¶æ Brutto',
+ 'Tracking Items' => '',
+ 'Trade Discount' => 'Rabat Handlowy',
+ 'Transaction' => 'Transakcja',
+ 'Transaction Date missing!' => 'Brak Daty Transakcji!',
+ 'Transaction Dates' => '',
+ 'Transaction deleted!' => 'Transakcja usuniêta',
+ 'Transaction posted!' => 'Transakcja zatwierdzona',
+ 'Transaction reversal enforced for all dates' => 'Zmiana transakcji narzucona dla wszystkich okresów',
+ 'Transaction reversal enforced up to' => 'Zmiana transakcji narzucona do',
+ 'Transactions' => 'Zestawienia Transakcji',
+ 'Transfer' => 'Przelewy',
+ 'Transfer Inventory' => 'Przeniesienie Inventarza',
+ 'Transfer from' => '',
+ 'Transfer to' => 'Przenie¶ do',
+ 'Translation' => 'T³umaczenie',
+ 'Translation deleted!' => 'T³umaczenie usuniête!',
+ 'Translation not on file!' => 'Brak t³umaczenia w zbiorze',
+ 'Translations' => 'T³umaczenia',
+ 'Translations saved!' => 'T³umaczenia zapisane!',
+ 'Trial Balance' => 'Bilans Porównawczy',
+ 'Tuesday' => '',
+ 'Type of Business' => 'Rodzaj Dzia³alno¶ci',
+ 'Unit' => 'Jednostka',
+ 'Unit of measure' => 'Jednostka miary',
+ 'Unlock System' => 'Unlock System',
+ 'Update' => 'Uzupe³nij',
+ 'Update Dataset' => 'Uzupe³nij Zbiór Danych',
+ 'Updated' => 'Uzupe³nione',
+ 'Upgrading to Version' => 'Uaktualnienie do nowej wersji',
+ 'Use Templates' => 'U¿yj Szablony',
+ 'User' => 'U¿ytkownik',
+ 'User deleted!' => 'U¿ytkownik usuniêty',
+ 'User saved!' => 'U¿ytkownik zapisany',
+ 'Valid until' => 'Wa¿ne do',
+ 'Vendor' => 'Dostawca',
+ 'Vendor History' => 'Statystyka Dostaw',
+ 'Vendor Invoice' => 'Faktura VAT Zakupu',
+ 'Vendor Invoice ' => 'Faktura VAT Zakupu',
+ 'Vendor Invoice.' => 'Faktura VAT Zakupu.',
+ 'Vendor Invoice/AP Transaction Number' => '',
+ 'Vendor Invoices' => 'Faktury VAT Zakupu',
+ 'Vendor Number' => 'Numer Dostawcy',
+ 'Vendor deleted!' => 'Dostawca usuniêty',
+ 'Vendor missing!' => 'Brak Dostawcy',
+ 'Vendor not on file!' => 'Brak Dostawcy w bazie danych',
+ 'Vendor saved!' => 'Dostawca zapisany',
+ 'Vendors' => 'Dostawcy',
+ 'Version' => 'Wersja',
+ 'Warehouse' => 'Magazyn',
+ 'Warehouse deleted!' => 'Magazyn usuniêty',
+ 'Warehouse saved!' => 'Magazyn zapisany!',
+ 'Warehouses' => 'Magazyny',
+ 'Warning!' => 'Ostrze¿enie',
+ 'Wednesday' => '',
+ 'Week' => '',
+ 'Week(s)' => '',
+ 'Weeks' => '',
+ 'Weight' => 'Waga',
+ 'Weight Unit' => 'Jednostka Wagi',
+ 'What type of item is this?' => 'Co to za rodzaj artyku³u',
+ 'Work Order' => 'Zlecenie Robocze',
+ 'Work Orders' => 'Zlecenia Robocze',
+ 'Work Phone' => 'Telefon-praca',
+ 'Year' => 'Rok',
+ 'Year(s)' => '',
+ 'Yearend' => 'Koniec Roku Finansowego',
+ 'Yearend date missing!' => 'Brakuje Dnia Koñca Roku Finansowge!',
+ 'Yearend posted!' => 'Rok Finansowy Zatwierdzony!',
+ 'Yearend posting failed!' => 'Zatwierdzenie Roku Finansowego niedokonane!',
+ 'Years' => '',
+ 'Yes' => 'Tak',
+ 'You are logged out' => '',
+ 'You are posting an existing transaction!' => '',
+ 'You are printing and posting an existing transaction!' => '',
+ 'You are printing and saving an existing order' => '',
+ 'You are printing and saving an existing quotation' => '',
+ 'You are printing and saving an existing transaction!' => '',
+ 'You are saving an existing order' => '',
+ 'You are saving an existing quotation' => '',
+ 'You are saving an existing transaction!' => '',
+ 'You did not enter a name!' => 'Nie wstawiono nazwy!',
+ 'You must enter a host and port for local and remote connections!' => 'Wstaw nazwê serwera i portu dla lokalnego i zdalnego po³±czenia',
+ 'Zip/Postal Code' => '',
+ 'account cannot be set to any other type of account' => 'konto nie mo¿e byæ ustawione do wszelkich innych kont',
+ 'as at' => 'na dzieñ',
+ 'days' => 'dni',
+ 'does not exist' => 'nie istnieje',
+ 'done' => 'wykonane',
+ 'ea' => 'szt',
+ 'failed' => '',
+ 'for' => '',
+ 'for Period' => 'za Okres',
+ 'is already a member!' => 'Jest ju¿ cz³onkiem',
+ 'localhost' => 'serwer lokalny',
+ 'locked!' => 'zablokowane',
+ 'partsgroup' => '',
+ 'posted!' => 'zatwierdzone!',
+ 'sent' => 'wys³ane',
+ 'successfully created!' => 'stworzone z powodzeniem',
+ 'successfully deleted!' => 'usuniête z powodzeniem',
+ 'time(s)' => '',
+ 'unexpected error!' => '',
+ 'website' => 'witryna WWW',
+};
+
+1;
diff --git a/locale/pl/am b/locale/pl/am
new file mode 100755
index 00000000..42a9d11c
--- /dev/null
+++ b/locale/pl/am
@@ -0,0 +1,283 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'AP' => 'Ksiêga Zobowi±zañ',
+ 'AR' => 'Ksiêga Nale¿no¶ci',
+ 'About' => 'Na Temat',
+ 'Account' => 'Konto',
+ 'Account Number' => 'Numer Konta',
+ 'Account Number missing!' => 'Brak Numeru Konta!',
+ 'Account Type' => 'Rodzaj Konta',
+ 'Account Type missing!' => 'Brak Rodzaju Konta!',
+ 'Account deleted!' => 'Usuniêto Konto',
+ 'Account does not exist!' => 'Konto nie istnieje!',
+ 'Account saved!' => 'Zapisano Konto',
+ 'Accounting Menu' => 'Menu Ksiêgowo¶ci',
+ 'Accrual' => 'Memoria³owa',
+ 'Activate Audit trail' => 'Uaktywnij ¶lady Audytu',
+ 'Add Account' => 'Dodaj Konto',
+ 'Add Business' => 'Dodaj Dzia³alno¶æ',
+ 'Add Department' => 'Dodaj Wydzia³',
+ 'Add GIFI' => 'Dodaj GIFI',
+ 'Add Language' => 'Dodaj Jêzyk',
+ 'Add SIC' => 'Dodaj EKD',
+ 'Add Warehouse' => 'Dodaj Magazyn',
+ 'Address' => 'Adres',
+ 'Amount' => 'Kwota',
+ 'Asset' => 'Aktywy',
+ 'Audit Control' => 'Kontrola Audytu',
+ 'Audit trail disabled' => '¦lad Audytu unieruchomiony',
+ 'Audit trail enabled' => '¦lad Audytu umo¿liwiony',
+ 'Audit trail removed up to' => '¦lad Audytu przesuniêty do',
+ 'Backup sent to' => 'Kopia Zapasowa wys³ana do',
+ 'Bin List' => 'Wykaz Kosza',
+ 'Books are open' => 'Ksiêgi otwarte',
+ 'Business Number' => 'NIP',
+ 'Business deleted!' => 'REGON',
+ 'Business saved!' => 'Dzia³alno¶æ zapisana',
+ 'COGS' => 'Koszta Sprzeda¿y',
+ 'Cannot delete account!' => 'Nie mo¿esz usun±æ konta!',
+ 'Cannot delete default account!' => 'Konto Domy¶lne nie mo¿e byæ usuniête!',
+ 'Cannot save account!' => 'Nie mo¿na zapisaæ konta!',
+ 'Cannot save defaults!' => 'Nie mo¿na zapisa ustawieñ domy¶lnych!',
+ 'Cannot save preferences!' => 'Nie mo¿na zapisaæ preferencji!',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Nie mo¿na ustawiæ konta na wiêcej ni¿ jeden rodzaj',
+ 'Cannot set multiple options for' => 'Nie mo¿na umieszczaæ wielokrotnego wyboru dla',
+ 'Cash' => 'Kasa',
+ 'Chart of Accounts' => 'Plan Kont',
+ 'Close Books up to' => 'Zamkniêcie Ksi±g do',
+ 'Code' => 'Kod',
+ 'Code missing!' => 'Brak Kodu',
+ 'Company' => 'Firma',
+ 'Confirm!' => 'Potwierd¿!',
+ 'Continue' => 'Kontynuj',
+ 'Contra' => 'Konto Przeciwstawne',
+ 'Copy to COA' => 'Skopiuj do Planu Kont',
+ 'Cost Center' => 'Centrum Kosztów',
+ 'Credit' => 'Kredyt',
+ 'Customer Number' => 'Numer Odbiorcy',
+ 'Database Host' => 'Serwer Bazy Danych',
+ 'Dataset' => 'Zbiór Danych',
+ 'Date Format' => 'Format Daty',
+ 'Debit' => 'Debet',
+ 'Defaults saved!' => 'Ustawienia zapisane!',
+ 'Delete' => 'Usuñ',
+ 'Delete Account' => 'Usuñ Konto',
+ 'Department deleted!' => 'Wydzia³ usuniêty',
+ 'Department saved!' => 'Wydzia³ zapisany',
+ 'Departments' => 'Wydzia³y',
+ 'Description' => 'Opis',
+ 'Description missing!' => 'Brak Opisu!',
+ 'Discount' => 'Rabat',
+ 'Dropdown Limit' => 'Limit Rozwiniêcia',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Brak adresu E-mail!',
+ 'Edit' => 'Zmieñ',
+ 'Edit Account' => 'Zmiany Konta',
+ 'Edit Business' => 'Zmieñ Dzia³alno¶æ',
+ 'Edit Department' => 'Zmiany Wydzia³u',
+ 'Edit GIFI' => 'Zmieñ GIFI',
+ 'Edit Language' => 'Zmien Jêzyk',
+ 'Edit Preferences for' => 'Zmiany Preferencji dla',
+ 'Edit SIC' => 'Zmieñ SIC',
+ 'Edit Template' => 'Zmiany Wzorca',
+ 'Edit Warehouse' => 'Zmiany Magazynu',
+ 'Employee Number' => 'Numer Pracownika',
+ 'Enforce transaction reversal for all dates' => 'Egzekwój zmiany transakcji dla wszystkich okresów',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Wpisz symbole (nap. PLN:USD:EUR:YEN) krajowych i zagranicznych walut',
+ 'Equity' => 'Kapita³',
+ 'Expense' => 'Koszt',
+ 'Expense/Asset' => 'Koszt/Aktywy',
+ 'Fax' => 'Fax',
+ 'Foreign Exchange Gain' => 'Zysk przy Zamianie Walut',
+ 'Foreign Exchange Loss' => 'Strata przy Zamianie Walut',
+ 'GIFI' => 'GIFI',
+ 'GIFI deleted!' => 'GIFI usuniête',
+ 'GIFI missing!' => 'Brakuje GIFI',
+ 'GIFI saved!' => 'GIFI zapisane',
+ 'GL Transaction' => 'Transakcja Ksiêgi G³ównej',
+ 'Heading' => 'Nag³ówek',
+ 'ID' => 'Identyfikator',
+ 'Include in drop-down menus' => 'Do³±cz w menu rozwijanym',
+ 'Income' => 'Przychód',
+ 'Inventory' => 'Inwentarz',
+ 'Invoice' => 'Faktura',
+ 'Is this a summary account to record' => 'Czy jest to konto sumaryczne?',
+ 'Language' => 'Jêzyk',
+ 'Language deleted!' => 'Jêzyk usuniêty',
+ 'Language saved!' => 'Jêzyk zapisany',
+ 'Languages' => 'Jêzyki',
+ 'Last Numbers & Default Accounts' => 'Ostatnie Numery i Konta Domy¶lne',
+ 'Liability' => 'Zobowi±zania',
+ 'Licensed to' => 'Licencja nale¿y do:',
+ 'Link' => 'Dowi±zanie',
+ 'Menu Width' => 'Szeroko¶æ Menu',
+ 'Method' => 'Metoda',
+ 'Month' => 'Miesi±c',
+ 'Name' => 'Nazwa',
+ 'No' => 'Nie',
+ 'No email address for' => 'Brak adresu email',
+ 'Number' => 'Numer Katalogu',
+ 'Number Format' => 'Format Numeru',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista Pakunkowa',
+ 'Password' => 'Has³o',
+ 'Payables' => 'Zobowi±zania',
+ 'Payment' => 'Kasa Wyp³aci',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Lista Pobrania',
+ 'Postscript' => 'Postscript',
+ 'Preferences saved!' => 'Preferencje Zapisane!',
+ 'Print' => 'Wydrukuj',
+ 'Printer' => 'Drukarka',
+ 'Profit Center' => 'Centrum Zysków',
+ 'Purchase Order' => 'Zlecenie Zakupu',
+ 'Purchase Order Number' => 'Numer Zlecenia Zakupu',
+ 'Purchase Orders' => 'Zlecenia Zakupu',
+ 'RFQ Number' => 'Numer Pro¶by o Ofertê',
+ 'Rate' => 'Stawka',
+ 'Receivables' => 'Nale¿no¶ci',
+ 'Reference' => 'Odno¶nik',
+ 'Remove Audit trail up to' => 'Usuñ ¦lady Audytu do',
+ 'Retained Earnings' => 'Zysk',
+ 'SIC deleted!' => 'EKD usuniêty!',
+ 'SIC saved!' => 'EKD zapisany!',
+ 'Sales Invoice' => 'Faktura VAT Sprzeda¿y',
+ 'Sales Order' => 'Zlecenie Sprzeda¿y',
+ 'Sales Order Number' => 'Numer Zlecenia Sprzeda¿y',
+ 'Sales Orders' => 'Zlecenia Sprzeda¿y',
+ 'Sales Quotation Number' => 'Numer Oferty Sprzeda¿y',
+ 'Save' => 'Zapisz',
+ 'Save as new' => 'Zapisz jako nowe',
+ 'Signature' => 'Podpis',
+ 'Standard Industrial Codes' => 'Europejska Klasyfikacja Dzia³alno¶ci',
+ 'Stylesheet' => 'Strona Stylowa',
+ 'System Defaults' => 'Ustawienia Domy¶lne',
+ 'Tax' => 'Podatek',
+ 'Template saved!' => 'Szablon zapisany',
+ 'Transaction' => 'Transakcja',
+ 'Transaction reversal enforced for all dates' => 'Zmiana transakcji narzucona dla wszystkich okresów',
+ 'Transaction reversal enforced up to' => 'Zmiana transakcji narzucona do',
+ 'Type of Business' => 'Rodzaj Dzia³alno¶ci',
+ 'Update' => 'Uzupe³nij',
+ 'User' => 'U¿ytkownik',
+ 'Vendor Invoice' => 'Faktura VAT Zakupu',
+ 'Vendor Number' => 'Numer Dostawcy',
+ 'Version' => 'Wersja',
+ 'Warehouse deleted!' => 'Magazyn usuniêty',
+ 'Warehouse saved!' => 'Magazyn zapisany!',
+ 'Warehouses' => 'Magazyny',
+ 'Weight Unit' => 'Jednostka Wagi',
+ 'Work Order' => 'Zlecenie Robocze',
+ 'Year' => 'Rok',
+ 'Yearend' => 'Koniec Roku Finansowego',
+ 'Yearend date missing!' => 'Brakuje Dnia Koñca Roku Finansowge!',
+ 'Yearend posted!' => 'Rok Finansowy Zatwierdzony!',
+ 'Yearend posting failed!' => 'Zatwierdzenie Roku Finansowego niedokonane!',
+ 'Yes' => 'Tak',
+ 'account cannot be set to any other type of account' => 'konto nie mo¿e byæ ustawione do wszelkich innych kont',
+ 'done' => 'wykonane',
+ 'localhost' => 'serwer lokalny',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'dodaj_konto' => 'add_account',
+ 'dodaj_dzia³alno¶æ' => 'add_business',
+ 'dodaj_wydzia³' => 'add_department',
+ 'dodaj_jêzyk' => 'add_language',
+ 'dodaj_ekd' => 'add_sic',
+ 'dodaj_magazyn' => 'add_warehouse',
+ 'kontynuj' => 'continue',
+ 'skopiuj_do_planu_kont' => 'copy_to_coa',
+ 'usuñ' => 'delete',
+ 'zmieñ' => 'edit',
+ 'zmiany_konta' => 'edit_account',
+ 'zapisz' => 'save',
+ 'zapisz_jako_nowe' => 'save_as_new',
+ 'uzupe³nij' => 'update',
+};
+
+1;
+
diff --git a/locale/pl/ap b/locale/pl/ap
new file mode 100755
index 00000000..4a711afa
--- /dev/null
+++ b/locale/pl/ap
@@ -0,0 +1,212 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'AP Outstanding' => 'Zobowi±zania Nieuregulowane',
+ 'AP Transaction' => 'Transakcja Zobowi±zañ',
+ 'AP Transactions' => 'Transakcje Zobowi±zañ',
+ 'AR Outstanding' => 'Nale¿no¶ci Nieuregulowane',
+ 'AR Transaction' => 'Transakcja Nale¿no¶ci',
+ 'AR Transactions' => 'Transakcje Nale¿no¶ci',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Menu Ksiêgowo¶ci',
+ 'Add AP Transaction' => 'Rejestr w Ksiêdze Zobowi±zañ',
+ 'Add AR Transaction' => 'Rejestr w Ksiêdze Nale¿no¶ci',
+ 'Address' => 'Adres',
+ 'Amount' => 'Kwota',
+ 'Amount Due' => 'Kwota Nale¿na',
+ 'Apr' => 'Kwiecieñ',
+ 'April' => 'Kwiecieñ',
+ 'Are you sure you want to delete Transaction' => 'Czy chcesz usun±æ Transakcjê?',
+ 'Aug' => 'Sierpieñ',
+ 'August' => 'Sierpieñ',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'Nie mo¿esz usun±æ transakcji!',
+ 'Cannot post payment for a closed period!' => 'Nie mo¿na zaksiêgowaæ p³atno¶ci po zamkniêciu okresu!',
+ 'Cannot post transaction for a closed period!' => 'Nie mo¿na zaksiêgowaæ transakcji po zamkniêciu okresu!',
+ 'Cannot post transaction!' => 'Nie mo¿esz zatwierdziæ transakcji!',
+ 'Cc' => 'Cc',
+ 'Check' => 'Czek',
+ 'Closed' => 'Zamkniêto',
+ 'Confirm!' => 'Potwierd¿!',
+ 'Continue' => 'Kontynuj',
+ 'Credit' => 'Kredyt',
+ 'Credit Limit' => 'Limit Kredytu',
+ 'Curr' => 'Waluta',
+ 'Currency' => 'Waluta',
+ 'Current' => 'Bie¿±cy',
+ 'Customer' => 'Odbiorca',
+ 'Customer missing!' => 'Brak Odbiorcy',
+ 'Customer not on file!' => 'Brak Odbiorcy w bazie danych',
+ 'Date' => 'Data',
+ 'Date Paid' => 'Data Zap³aty',
+ 'Debit' => 'Debet',
+ 'Dec' => 'Grudzieñ',
+ 'December' => 'Grudzieñ',
+ 'Delete' => 'Usuñ',
+ 'Department' => 'Wydzia³',
+ 'Description' => 'Opis',
+ 'Detail' => 'Wyszczególnienie',
+ 'Due Date' => 'Termin P³atno¶ci',
+ 'Due Date missing!' => 'Brak Terminu P³atno¶ci!',
+ 'E-mail' => 'E-mail',
+ 'Edit AP Transaction' => 'Zmiany Transakcji Konta Zobowi±zañ',
+ 'Edit AR Transaction' => 'Zmiany Transakcji Konta Nale¿no¶ci',
+ 'Employee' => 'Pracownik',
+ 'Exch' => 'Kurs Walut',
+ 'Exchange Rate' => 'Kurs Walut',
+ 'Exchange rate for payment missing!' => 'Brakuje Kursu Walut dla p³atno¶ci!',
+ 'Exchange rate missing!' => 'Brakuje Kursu Walut',
+ 'Feb' => 'Luty',
+ 'February' => 'Luty',
+ 'From' => 'Od',
+ 'ID' => 'Identyfikator',
+ 'Include in Report' => 'Do³±cz w Sprawozdaniu',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date' => 'Data Wystawienia',
+ 'Invoice Date missing!' => 'Brak Daty Wystawienia',
+ 'Invoice Number' => 'Numer Faktury',
+ 'Jan' => 'Styczeñ',
+ 'January' => 'Styczeñ',
+ 'Jul' => 'Lipiec',
+ 'July' => 'Lipiec',
+ 'Jun' => 'Czerwiec',
+ 'June' => 'Czerwiec',
+ 'Manager' => 'Kierownik',
+ 'Mar' => 'Marzec',
+ 'March' => 'Marzec',
+ 'May' => 'Maj',
+ 'May ' => 'Maj',
+ 'Memo' => 'Notatka',
+ 'Message' => 'Wiadomo¶æ',
+ 'Month' => 'Miesi±c',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Noty',
+ 'Nothing to print!' => 'Nic do wydrukowania!',
+ 'Nov' => 'Listopad',
+ 'November' => 'Listopad',
+ 'Number' => 'Numer Katalogu',
+ 'Oct' => 'Pa¿dziernik',
+ 'October' => 'Pa¿dziernik',
+ 'Open' => 'Otworzono',
+ 'Order' => 'Zlecenie',
+ 'Order Number' => 'Numer ZLecenia',
+ 'PDF' => 'PDF',
+ 'Paid' => 'Zap³acono',
+ 'Payment date missing!' => 'Brak Daty Wyp³aty',
+ 'Payments' => 'Wyp³aty',
+ 'Period' => 'Okres',
+ 'Post' => 'Zatwierd¿',
+ 'Post as new' => 'Zatwierd¿ jako nowe',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Wydrukuj',
+ 'Print and Post' => 'Wydrukuj i Zatwierd¿',
+ 'Printed' => 'Wydrukowane',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Brak Projektu w zbiorze danych!',
+ 'Quarter' => 'Kwarta³',
+ 'Receipt' => 'Kasa Przyjmie',
+ 'Reference' => 'Odno¶nik',
+ 'Remaining' => 'Pozosta³e',
+ 'Sales Invoice.' => 'Faktura VAT Sprzeda¿y.',
+ 'Salesperson' => 'Sprzedawca',
+ 'Screen' => 'Ekran',
+ 'Select from one of the names below' => 'Wybierz nazwê z poni¿szych',
+ 'Select from one of the projects below' => 'Wybierz z projektów',
+ 'Select payment' => 'Wybierz p³atno¶æ',
+ 'Select postscript or PDF!' => 'Wybierz postscript lub PDF',
+ 'Sep' => 'Wrzesieñ',
+ 'September' => 'Wrzesieñ',
+ 'Ship to' => 'Wy¶lij do',
+ 'Ship via' => 'Wy¶lij przez',
+ 'Shipping Point' => 'Punkt Dostawy',
+ 'Source' => '¯ród³o',
+ 'Startdate' => 'Dzieñ Zatrudnienia',
+ 'Subject' => 'Tre¶æ',
+ 'Subtotal' => 'Warto¶æ Netto',
+ 'Summary' => 'Skrót',
+ 'Tax' => 'Podatek',
+ 'Tax Included' => 'Podatek Wliczony',
+ 'Till' => 'Kasa',
+ 'To' => 'do',
+ 'Total' => 'Warto¶æ Brutto',
+ 'Transaction' => 'Transakcja',
+ 'Transaction deleted!' => 'Transakcja usuniêta',
+ 'Transaction posted!' => 'Transakcja zatwierdzona',
+ 'Update' => 'Uzupe³nij',
+ 'Vendor' => 'Dostawca',
+ 'Vendor Invoice.' => 'Faktura VAT Zakupu.',
+ 'Vendor missing!' => 'Brak Dostawcy',
+ 'Vendor not on file!' => 'Brak Dostawcy w bazie danych',
+ 'Warning!' => 'Ostrze¿enie',
+ 'Year' => 'Rok',
+ 'Yes' => 'Tak',
+ 'sent' => 'wys³ane',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'transakcja_zobowi±zañ' => 'ap_transaction',
+ 'transakcja_nale¿no¶ci' => 'ar_transaction',
+ 'kontynuj' => 'continue',
+ 'usuñ' => 'delete',
+ 'zatwierd¿' => 'post',
+ 'zatwierd¿_jako_nowe' => 'post_as_new',
+ 'wydrukuj' => 'print',
+ 'wydrukuj_i_zatwierd¿' => 'print_and_post',
+ 'faktura_vat_sprzeda¿y_' => 'sales_invoice_',
+ 'wy¶lij_do' => 'ship_to',
+ 'uzupe³nij' => 'update',
+ 'faktura_vat_zakupu_' => 'vendor_invoice_',
+ 'tak' => 'yes',
+};
+
+1;
+
diff --git a/locale/pl/ar b/locale/pl/ar
new file mode 100755
index 00000000..4a711afa
--- /dev/null
+++ b/locale/pl/ar
@@ -0,0 +1,212 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'AP Outstanding' => 'Zobowi±zania Nieuregulowane',
+ 'AP Transaction' => 'Transakcja Zobowi±zañ',
+ 'AP Transactions' => 'Transakcje Zobowi±zañ',
+ 'AR Outstanding' => 'Nale¿no¶ci Nieuregulowane',
+ 'AR Transaction' => 'Transakcja Nale¿no¶ci',
+ 'AR Transactions' => 'Transakcje Nale¿no¶ci',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Menu Ksiêgowo¶ci',
+ 'Add AP Transaction' => 'Rejestr w Ksiêdze Zobowi±zañ',
+ 'Add AR Transaction' => 'Rejestr w Ksiêdze Nale¿no¶ci',
+ 'Address' => 'Adres',
+ 'Amount' => 'Kwota',
+ 'Amount Due' => 'Kwota Nale¿na',
+ 'Apr' => 'Kwiecieñ',
+ 'April' => 'Kwiecieñ',
+ 'Are you sure you want to delete Transaction' => 'Czy chcesz usun±æ Transakcjê?',
+ 'Aug' => 'Sierpieñ',
+ 'August' => 'Sierpieñ',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'Nie mo¿esz usun±æ transakcji!',
+ 'Cannot post payment for a closed period!' => 'Nie mo¿na zaksiêgowaæ p³atno¶ci po zamkniêciu okresu!',
+ 'Cannot post transaction for a closed period!' => 'Nie mo¿na zaksiêgowaæ transakcji po zamkniêciu okresu!',
+ 'Cannot post transaction!' => 'Nie mo¿esz zatwierdziæ transakcji!',
+ 'Cc' => 'Cc',
+ 'Check' => 'Czek',
+ 'Closed' => 'Zamkniêto',
+ 'Confirm!' => 'Potwierd¿!',
+ 'Continue' => 'Kontynuj',
+ 'Credit' => 'Kredyt',
+ 'Credit Limit' => 'Limit Kredytu',
+ 'Curr' => 'Waluta',
+ 'Currency' => 'Waluta',
+ 'Current' => 'Bie¿±cy',
+ 'Customer' => 'Odbiorca',
+ 'Customer missing!' => 'Brak Odbiorcy',
+ 'Customer not on file!' => 'Brak Odbiorcy w bazie danych',
+ 'Date' => 'Data',
+ 'Date Paid' => 'Data Zap³aty',
+ 'Debit' => 'Debet',
+ 'Dec' => 'Grudzieñ',
+ 'December' => 'Grudzieñ',
+ 'Delete' => 'Usuñ',
+ 'Department' => 'Wydzia³',
+ 'Description' => 'Opis',
+ 'Detail' => 'Wyszczególnienie',
+ 'Due Date' => 'Termin P³atno¶ci',
+ 'Due Date missing!' => 'Brak Terminu P³atno¶ci!',
+ 'E-mail' => 'E-mail',
+ 'Edit AP Transaction' => 'Zmiany Transakcji Konta Zobowi±zañ',
+ 'Edit AR Transaction' => 'Zmiany Transakcji Konta Nale¿no¶ci',
+ 'Employee' => 'Pracownik',
+ 'Exch' => 'Kurs Walut',
+ 'Exchange Rate' => 'Kurs Walut',
+ 'Exchange rate for payment missing!' => 'Brakuje Kursu Walut dla p³atno¶ci!',
+ 'Exchange rate missing!' => 'Brakuje Kursu Walut',
+ 'Feb' => 'Luty',
+ 'February' => 'Luty',
+ 'From' => 'Od',
+ 'ID' => 'Identyfikator',
+ 'Include in Report' => 'Do³±cz w Sprawozdaniu',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date' => 'Data Wystawienia',
+ 'Invoice Date missing!' => 'Brak Daty Wystawienia',
+ 'Invoice Number' => 'Numer Faktury',
+ 'Jan' => 'Styczeñ',
+ 'January' => 'Styczeñ',
+ 'Jul' => 'Lipiec',
+ 'July' => 'Lipiec',
+ 'Jun' => 'Czerwiec',
+ 'June' => 'Czerwiec',
+ 'Manager' => 'Kierownik',
+ 'Mar' => 'Marzec',
+ 'March' => 'Marzec',
+ 'May' => 'Maj',
+ 'May ' => 'Maj',
+ 'Memo' => 'Notatka',
+ 'Message' => 'Wiadomo¶æ',
+ 'Month' => 'Miesi±c',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Noty',
+ 'Nothing to print!' => 'Nic do wydrukowania!',
+ 'Nov' => 'Listopad',
+ 'November' => 'Listopad',
+ 'Number' => 'Numer Katalogu',
+ 'Oct' => 'Pa¿dziernik',
+ 'October' => 'Pa¿dziernik',
+ 'Open' => 'Otworzono',
+ 'Order' => 'Zlecenie',
+ 'Order Number' => 'Numer ZLecenia',
+ 'PDF' => 'PDF',
+ 'Paid' => 'Zap³acono',
+ 'Payment date missing!' => 'Brak Daty Wyp³aty',
+ 'Payments' => 'Wyp³aty',
+ 'Period' => 'Okres',
+ 'Post' => 'Zatwierd¿',
+ 'Post as new' => 'Zatwierd¿ jako nowe',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Wydrukuj',
+ 'Print and Post' => 'Wydrukuj i Zatwierd¿',
+ 'Printed' => 'Wydrukowane',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Brak Projektu w zbiorze danych!',
+ 'Quarter' => 'Kwarta³',
+ 'Receipt' => 'Kasa Przyjmie',
+ 'Reference' => 'Odno¶nik',
+ 'Remaining' => 'Pozosta³e',
+ 'Sales Invoice.' => 'Faktura VAT Sprzeda¿y.',
+ 'Salesperson' => 'Sprzedawca',
+ 'Screen' => 'Ekran',
+ 'Select from one of the names below' => 'Wybierz nazwê z poni¿szych',
+ 'Select from one of the projects below' => 'Wybierz z projektów',
+ 'Select payment' => 'Wybierz p³atno¶æ',
+ 'Select postscript or PDF!' => 'Wybierz postscript lub PDF',
+ 'Sep' => 'Wrzesieñ',
+ 'September' => 'Wrzesieñ',
+ 'Ship to' => 'Wy¶lij do',
+ 'Ship via' => 'Wy¶lij przez',
+ 'Shipping Point' => 'Punkt Dostawy',
+ 'Source' => '¯ród³o',
+ 'Startdate' => 'Dzieñ Zatrudnienia',
+ 'Subject' => 'Tre¶æ',
+ 'Subtotal' => 'Warto¶æ Netto',
+ 'Summary' => 'Skrót',
+ 'Tax' => 'Podatek',
+ 'Tax Included' => 'Podatek Wliczony',
+ 'Till' => 'Kasa',
+ 'To' => 'do',
+ 'Total' => 'Warto¶æ Brutto',
+ 'Transaction' => 'Transakcja',
+ 'Transaction deleted!' => 'Transakcja usuniêta',
+ 'Transaction posted!' => 'Transakcja zatwierdzona',
+ 'Update' => 'Uzupe³nij',
+ 'Vendor' => 'Dostawca',
+ 'Vendor Invoice.' => 'Faktura VAT Zakupu.',
+ 'Vendor missing!' => 'Brak Dostawcy',
+ 'Vendor not on file!' => 'Brak Dostawcy w bazie danych',
+ 'Warning!' => 'Ostrze¿enie',
+ 'Year' => 'Rok',
+ 'Yes' => 'Tak',
+ 'sent' => 'wys³ane',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'transakcja_zobowi±zañ' => 'ap_transaction',
+ 'transakcja_nale¿no¶ci' => 'ar_transaction',
+ 'kontynuj' => 'continue',
+ 'usuñ' => 'delete',
+ 'zatwierd¿' => 'post',
+ 'zatwierd¿_jako_nowe' => 'post_as_new',
+ 'wydrukuj' => 'print',
+ 'wydrukuj_i_zatwierd¿' => 'print_and_post',
+ 'faktura_vat_sprzeda¿y_' => 'sales_invoice_',
+ 'wy¶lij_do' => 'ship_to',
+ 'uzupe³nij' => 'update',
+ 'faktura_vat_zakupu_' => 'vendor_invoice_',
+ 'tak' => 'yes',
+};
+
+1;
+
diff --git a/locale/pl/arap b/locale/pl/arap
new file mode 100755
index 00000000..a6e4bbf2
--- /dev/null
+++ b/locale/pl/arap
@@ -0,0 +1,53 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Address' => 'Adres',
+ 'Bcc' => 'Bcc',
+ 'Cc' => 'Cc',
+ 'Continue' => 'Kontynuj',
+ 'Customer not on file!' => 'Brak Odbiorcy w bazie danych',
+ 'Date' => 'Data',
+ 'Description' => 'Opis',
+ 'E-mail' => 'E-mail',
+ 'Message' => 'Wiadomo¶æ',
+ 'Number' => 'Numer Katalogu',
+ 'Print' => 'Wydrukuj',
+ 'Project not on file!' => 'Brak Projektu w zbiorze danych!',
+ 'Reference' => 'Odno¶nik',
+ 'Select from one of the names below' => 'Wybierz nazwê z poni¿szych',
+ 'Select from one of the projects below' => 'Wybierz z projektów',
+ 'Startdate' => 'Dzieñ Zatrudnienia',
+ 'Subject' => 'Tre¶æ',
+ 'To' => 'do',
+ 'Vendor not on file!' => 'Brak Dostawcy w bazie danych',
+ 'Warning!' => 'Ostrze¿enie',
+ 'sent' => 'wys³ane',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'kontynuj' => 'continue',
+};
+
+1;
+
diff --git a/locale/pl/arapprn b/locale/pl/arapprn
new file mode 100755
index 00000000..583e6643
--- /dev/null
+++ b/locale/pl/arapprn
@@ -0,0 +1,34 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Amount' => 'Kwota',
+ 'Continue' => 'Kontynuj',
+ 'Date' => 'Data',
+ 'Memo' => 'Notatka',
+ 'Nothing to print!' => 'Nic do wydrukowania!',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'Postscript',
+ 'Printed' => 'Wydrukowane',
+ 'Screen' => 'Ekran',
+ 'Select payment' => 'Wybierz p³atno¶æ',
+ 'Select postscript or PDF!' => 'Wybierz postscript lub PDF',
+ 'Source' => '¯ród³o',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'kontynuj' => 'continue',
+};
+
+1;
+
diff --git a/locale/pl/bp b/locale/pl/bp
new file mode 100755
index 00000000..c6892201
--- /dev/null
+++ b/locale/pl/bp
@@ -0,0 +1,69 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Menu Ksiêgowo¶ci',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Czy chcesz usun±æ oznaczone wej¶cia z kolejki?',
+ 'Bin Lists' => 'Wykazy Koszy',
+ 'Cannot remove files!' => 'Nie mo¿esz usun±æ pliku!',
+ 'Confirm!' => 'Potwierd¿!',
+ 'Continue' => 'Kontynuj',
+ 'Current' => 'Bie¿±cy',
+ 'Customer' => 'Odbiorca',
+ 'Date' => 'Data',
+ 'Employee' => 'Pracownik',
+ 'From' => 'Od',
+ 'ID' => 'Identyfikator',
+ 'Invoice' => 'Faktura',
+ 'Invoice Number' => 'Numer Faktury',
+ 'Marked entries printed!' => 'Zaznaczone wpisy wydrukowane',
+ 'Month' => 'Miesi±c',
+ 'Order' => 'Zlecenie',
+ 'Order Number' => 'Numer ZLecenia',
+ 'Packing Lists' => 'Listy Pakunkowe',
+ 'Period' => 'Okres',
+ 'Pick Lists' => 'Listy Pobrania',
+ 'Print' => 'Wydrukuj',
+ 'Purchase Orders' => 'Zlecenia Zakupu',
+ 'Quarter' => 'Kwarta³',
+ 'Quotation' => 'Oferta',
+ 'Quotation Number' => 'Numer Oferty',
+ 'Quotations' => 'Oferty',
+ 'RFQs' => 'Pro¶by o Ofertê',
+ 'Remove' => 'Usuñ',
+ 'Removed spoolfiles!' => 'plik kolejki wydruków',
+ 'Removing marked entries from queue ...' => 'Zaznaczone wpisy usuwane z kolejki ...',
+ 'Sales Invoices' => 'Faktury VAT Sprzeda¿y',
+ 'Sales Orders' => 'Zlecenia Sprzeda¿y',
+ 'Select all' => 'Wybierz wszystko',
+ 'Spoolfile' => 'Plik Kolejki Wydruków',
+ 'To' => 'do',
+ 'Vendor' => 'Dostawca',
+ 'Work Orders' => 'Zlecenia Robocze',
+ 'Year' => 'Rok',
+ 'Yes' => 'Tak',
+ 'done' => 'wykonane',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'kontynuj' => 'continue',
+ 'wydrukuj' => 'print',
+ 'usuñ' => 'remove',
+ 'wybierz_wszystko' => 'select_all',
+ 'tak' => 'yes',
+};
+
+1;
+
diff --git a/locale/pl/ca b/locale/pl/ca
new file mode 100755
index 00000000..4435ba8d
--- /dev/null
+++ b/locale/pl/ca
@@ -0,0 +1,61 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Apr' => 'Kwiecieñ',
+ 'April' => 'Kwiecieñ',
+ 'Aug' => 'Sierpieñ',
+ 'August' => 'Sierpieñ',
+ 'Balance' => 'Saldo',
+ 'Chart of Accounts' => 'Plan Kont',
+ 'Credit' => 'Kredyt',
+ 'Current' => 'Bie¿±cy',
+ 'Date' => 'Data',
+ 'Debit' => 'Debet',
+ 'Dec' => 'Grudzieñ',
+ 'December' => 'Grudzieñ',
+ 'Department' => 'Wydzia³',
+ 'Description' => 'Opis',
+ 'Feb' => 'Luty',
+ 'February' => 'Luty',
+ 'From' => 'Od',
+ 'GIFI' => 'GIFI',
+ 'Include in Report' => 'Do³±cz w Sprawozdaniu',
+ 'Jan' => 'Styczeñ',
+ 'January' => 'Styczeñ',
+ 'Jul' => 'Lipiec',
+ 'July' => 'Lipiec',
+ 'Jun' => 'Czerwiec',
+ 'June' => 'Czerwiec',
+ 'List Transactions' => 'Wykaz Transakcji',
+ 'Mar' => 'Marzec',
+ 'March' => 'Marzec',
+ 'May' => 'Maj',
+ 'May ' => 'Maj',
+ 'Month' => 'Miesi±c',
+ 'Nov' => 'Listopad',
+ 'November' => 'Listopad',
+ 'Oct' => 'Pa¿dziernik',
+ 'October' => 'Pa¿dziernik',
+ 'Period' => 'Okres',
+ 'Project Number' => 'Numer Projektu',
+ 'Quarter' => 'Kwarta³',
+ 'R' => 'R',
+ 'Reference' => 'Odno¶nik',
+ 'Sep' => 'Wrzesieñ',
+ 'September' => 'Wrzesieñ',
+ 'Subtotal' => 'Warto¶æ Netto',
+ 'To' => 'do',
+ 'Year' => 'Rok',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'wykaz_transakcji' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/pl/cp b/locale/pl/cp
new file mode 100755
index 00000000..450922a9
--- /dev/null
+++ b/locale/pl/cp
@@ -0,0 +1,125 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'AP' => 'Ksiêga Zobowi±zañ',
+ 'AR' => 'Ksiêga Nale¿no¶ci',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Menu Ksiêgowo¶ci',
+ 'Address' => 'Adres',
+ 'All' => 'Wszystko',
+ 'Amount' => 'Kwota',
+ 'Amount Due' => 'Kwota Nale¿na',
+ 'Bcc' => 'Bcc',
+ 'Cannot post Payment!' => 'Nie mo¿esz zatwierdziæ Op³aty!',
+ 'Cannot post Receipt!' => 'Nie mo¿esz zatwierdziæ Wp³aty!',
+ 'Cannot post payment for a closed period!' => 'Nie mo¿na zaksiêgowaæ p³atno¶ci po zamkniêciu okresu!',
+ 'Cc' => 'Cc',
+ 'Continue' => 'Kontynuj',
+ 'Currency' => 'Waluta',
+ 'Customer' => 'Odbiorca',
+ 'Customer not on file!' => 'Brak Odbiorcy w bazie danych',
+ 'Date' => 'Data',
+ 'Date missing!' => 'Brak Daty',
+ 'Department' => 'Wydzia³',
+ 'Deposit' => 'Kasa Przyjmie',
+ 'Description' => 'Opis',
+ 'Due Date' => 'Termin P³atno¶ci',
+ 'E-mail' => 'E-mail',
+ 'Exchange Rate' => 'Kurs Walut',
+ 'Exchange rate missing!' => 'Brakuje Kursu Walut',
+ 'From' => 'Od',
+ 'Invoice' => 'Faktura',
+ 'Invoices' => 'Faktury',
+ 'Language' => 'Jêzyk',
+ 'Memo' => 'Notatka',
+ 'Message' => 'Wiadomo¶æ',
+ 'Number' => 'Numer Katalogu',
+ 'PDF' => 'PDF',
+ 'Payment' => 'Kasa Wyp³aci',
+ 'Payment posted!' => 'Wyp³ata zatwierdzona',
+ 'Payments' => 'Wyp³aty',
+ 'Post' => 'Zatwierd¿',
+ 'Postscript' => 'Postscript',
+ 'Prepayment' => 'Przedp³ata',
+ 'Print' => 'Wydrukuj',
+ 'Project not on file!' => 'Brak Projektu w zbiorze danych!',
+ 'Receipt' => 'Kasa Przyjmie',
+ 'Receipt posted!' => 'Wp³ata zapisana!',
+ 'Receipts' => 'Wp³aty',
+ 'Reference' => 'Odno¶nik',
+ 'Screen' => 'Ekran',
+ 'Select' => 'Wybierz',
+ 'Select all' => 'Wybierz wszystko',
+ 'Select from one of the names below' => 'Wybierz nazwê z poni¿szych',
+ 'Select from one of the projects below' => 'Wybierz z projektów',
+ 'Select postscript or PDF!' => 'Wybierz postscript lub PDF',
+ 'Source' => '¯ród³o',
+ 'Startdate' => 'Dzieñ Zatrudnienia',
+ 'Subject' => 'Tre¶æ',
+ 'To' => 'do',
+ 'Update' => 'Uzupe³nij',
+ 'Vendor' => 'Dostawca',
+ 'Vendor not on file!' => 'Brak Dostawcy w bazie danych',
+ 'Warning!' => 'Ostrze¿enie',
+ 'sent' => 'wys³ane',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'kontynuj' => 'continue',
+ 'zatwierd¿' => 'post',
+ 'wydrukuj' => 'print',
+ 'wybierz_wszystko' => 'select_all',
+ 'uzupe³nij' => 'update',
+};
+
+1;
+
diff --git a/locale/pl/ct b/locale/pl/ct
new file mode 100755
index 00000000..64f96b3b
--- /dev/null
+++ b/locale/pl/ct
@@ -0,0 +1,187 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'AP Transaction' => 'Transakcja Zobowi±zañ',
+ 'AP Transactions' => 'Transakcje Zobowi±zañ',
+ 'AR Transaction' => 'Transakcja Nale¿no¶ci',
+ 'AR Transactions' => 'Transakcje Nale¿no¶ci',
+ 'Accounting Menu' => 'Menu Ksiêgowo¶ci',
+ 'Active' => 'Aktywne',
+ 'Add Customer' => 'Dodaj Odbiorcê',
+ 'Add Vendor' => 'Dodaj Dostawcê',
+ 'Address' => 'Adres',
+ 'All' => 'Wszystko',
+ 'Amount' => 'Kwota',
+ 'BIC' => 'SWIFT',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Adres Korespondencji',
+ 'Break' => 'Próg Rentowno¶ci',
+ 'Cannot delete customer!' => 'Nie mo¿esz usun±æ odbiorcy!',
+ 'Cannot delete vendor!' => 'Nie mo¿esz usun±æ dostawcy!',
+ 'Cc' => 'Cc',
+ 'City' => 'Miasto',
+ 'Closed' => 'Zamkniêto',
+ 'Company Name' => 'Nazwa Firmy',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Kontynuj',
+ 'Cost' => 'Koszt',
+ 'Could not save pricelist!' => 'Nie mo¿e zapisaæ cennika!',
+ 'Country' => 'Kraj',
+ 'Credit Limit' => 'Limit Kredytu',
+ 'Curr' => 'Waluta',
+ 'Currency' => 'Waluta',
+ 'Customer History' => 'Statystyka Sprzeda¿y',
+ 'Customer Number' => 'Numer Odbiorcy',
+ 'Customer deleted!' => 'Odbiorca usuniêty',
+ 'Customer saved!' => 'Odbiorca zapisany!',
+ 'Customers' => 'Odbiorcy',
+ 'Delete' => 'Usuñ',
+ 'Delivery Date' => 'Data Dostawy',
+ 'Description' => 'Opis',
+ 'Detail' => 'Wyszczególnienie',
+ 'Discount' => 'Rabat',
+ 'E-mail' => 'E-mail',
+ 'Edit Customer' => 'Zmiany Odbiorcy',
+ 'Edit Vendor' => 'Zmiany Dostawcy',
+ 'Employee' => 'Pracownik',
+ 'Enddate' => 'Dzieñ Zwolnienia',
+ 'Fax' => 'Fax',
+ 'From' => 'Od',
+ 'GIFI' => 'GIFI',
+ 'Group' => 'Grupa',
+ 'IBAN' => 'IBAN/NRB',
+ 'ID' => 'Identyfikator',
+ 'Include in Report' => 'Do³±cz w Sprawozdaniu',
+ 'Invoice' => 'Faktura',
+ 'Item already on pricelist!' => 'Produkt ju¿ zawarty w cenniku!',
+ 'Item not on file!' => 'Produkt nie jest w zbiorze!',
+ 'Language' => 'Jêzyk',
+ 'Leadtime' => 'Cykl',
+ 'Manager' => 'Kierownik',
+ 'Name' => 'Nazwa',
+ 'Name missing!' => 'Brak Nazwy',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Noty',
+ 'Number' => 'Numer Katalogu',
+ 'Open' => 'Otworzono',
+ 'Order' => 'Zlecenie',
+ 'Orphaned' => 'Zbêdne',
+ 'POS' => 'Punkt Sprzeda¿y',
+ 'Phone' => 'Tel.',
+ 'Pricegroup' => 'Grupa cenowa',
+ 'Pricelist' => 'Cennik',
+ 'Project Number' => 'Numer Projektu',
+ 'Purchase Order' => 'Zlecenie Zakupu',
+ 'Purchase Orders' => 'Zlecenia Zakupu',
+ 'Qty' => 'Ilo¶æ',
+ 'Quotation' => 'Oferta',
+ 'Quotations' => 'Oferty',
+ 'RFQ' => 'Pro¶ba o Ofertê',
+ 'Request for Quotations' => 'Pro¶ba o Oferty',
+ 'SIC' => 'EKD',
+ 'SKU' => 'SWW',
+ 'Sales Invoice' => 'Faktura VAT Sprzeda¿y',
+ 'Sales Invoices' => 'Faktury VAT Sprzeda¿y',
+ 'Sales Order' => 'Zlecenie Sprzeda¿y',
+ 'Sales Orders' => 'Zlecenia Sprzeda¿y',
+ 'Salesperson' => 'Sprzedawca',
+ 'Save' => 'Zapisz',
+ 'Save Pricelist' => 'Zapisz Cennik',
+ 'Save as new' => 'Zapisz jako nowe',
+ 'Search' => 'Znajd¿',
+ 'Sell Price' => 'Cena Sprzeda¿y',
+ 'Serial Number' => 'Numer Seryjny',
+ 'Shipping Address' => 'Adres Dostawy',
+ 'Startdate' => 'Dzieñ Zatrudnienia',
+ 'State' => 'Rejon',
+ 'State/Province' => 'Województwo',
+ 'Sub-contract GIFI' => 'Subkontrakt GIFI',
+ 'Subtotal' => 'Warto¶æ Netto',
+ 'Summary' => 'Skrót',
+ 'Tax' => 'Podatek',
+ 'Tax Included' => 'Podatek Wliczony',
+ 'Tax Number' => 'NIP',
+ 'Tax Number / SSN' => 'NIP / PESEL',
+ 'Taxable' => 'Opodatkowane',
+ 'Terms' => 'Warunki: Netto',
+ 'To' => 'do',
+ 'Total' => 'Warto¶æ Brutto',
+ 'Type of Business' => 'Rodzaj Dzia³alno¶ci',
+ 'Unit' => 'Jednostka',
+ 'Update' => 'Uzupe³nij',
+ 'Vendor History' => 'Statystyka Dostaw',
+ 'Vendor Invoice' => 'Faktura VAT Zakupu',
+ 'Vendor Invoices' => 'Faktury VAT Zakupu',
+ 'Vendor Number' => 'Numer Dostawcy',
+ 'Vendor deleted!' => 'Dostawca usuniêty',
+ 'Vendor saved!' => 'Dostawca zapisany',
+ 'Vendors' => 'Dostawcy',
+ 'days' => 'dni',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'transakcja_zobowi±zañ' => 'ap_transaction',
+ 'transakcja_nale¿no¶ci' => 'ar_transaction',
+ 'dodaj_odbiorcê' => 'add_customer',
+ 'dodaj_dostawcê' => 'add_vendor',
+ 'kontynuj' => 'continue',
+ 'usuñ' => 'delete',
+ 'punkt_sprzeda¿y' => 'pos',
+ 'cennik' => 'pricelist',
+ 'zlecenie_zakupu' => 'purchase_order',
+ 'oferta' => 'quotation',
+ 'pro¶ba_o_ofertê' => 'rfq',
+ 'faktura_vat_sprzeda¿y' => 'sales_invoice',
+ 'zlecenie_sprzeda¿y' => 'sales_order',
+ 'zapisz' => 'save',
+ 'zapisz_cennik' => 'save_pricelist',
+ 'zapisz_jako_nowe' => 'save_as_new',
+ 'uzupe³nij' => 'update',
+ 'faktura_vat_zakupu' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/pl/gl b/locale/pl/gl
new file mode 100755
index 00000000..8fed3189
--- /dev/null
+++ b/locale/pl/gl
@@ -0,0 +1,160 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'AP Transaction' => 'Transakcja Zobowi±zañ',
+ 'AR Transaction' => 'Transakcja Nale¿no¶ci',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Menu Ksiêgowo¶ci',
+ 'Add Cash Transfer Transaction' => 'Dokonaj Przelewu',
+ 'Add General Ledger Transaction' => 'Dodaj Transakcjê w Ksiêdze G³ównej',
+ 'Address' => 'Adres',
+ 'All' => 'Wszystko',
+ 'Amount' => 'Kwota',
+ 'Apr' => 'Kwiecieñ',
+ 'April' => 'Kwiecieñ',
+ 'Are you sure you want to delete Transaction' => 'Czy chcesz usun±æ Transakcjê?',
+ 'Asset' => 'Aktywy',
+ 'Aug' => 'Sierpieñ',
+ 'August' => 'Sierpieñ',
+ 'Balance' => 'Saldo',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'Nie mo¿esz usun±æ transakcji!',
+ 'Cannot post transaction for a closed period!' => 'Nie mo¿na zaksiêgowaæ transakcji po zamkniêciu okresu!',
+ 'Cannot post transaction!' => 'Nie mo¿esz zatwierdziæ transakcji!',
+ 'Cc' => 'Cc',
+ 'Confirm!' => 'Potwierd¿!',
+ 'Continue' => 'Kontynuj',
+ 'Credit' => 'Kredyt',
+ 'Current' => 'Bie¿±cy',
+ 'Customer not on file!' => 'Brak Odbiorcy w bazie danych',
+ 'Date' => 'Data',
+ 'Debit' => 'Debet',
+ 'Dec' => 'Grudzieñ',
+ 'December' => 'Grudzieñ',
+ 'Delete' => 'Usuñ',
+ 'Department' => 'Wydzia³',
+ 'Description' => 'Opis',
+ 'E-mail' => 'E-mail',
+ 'Edit Cash Transfer Transaction' => 'Zmiana Transakcji Kasowej',
+ 'Edit General Ledger Transaction' => 'Zmiany w Ksiêdze G³ównej',
+ 'Equity' => 'Kapita³',
+ 'Expense' => 'Koszt',
+ 'FX' => 'Kurs Walut',
+ 'Feb' => 'Luty',
+ 'February' => 'Luty',
+ 'From' => 'Od',
+ 'GIFI' => 'GIFI',
+ 'GL Transaction' => 'Transakcja Ksiêgi G³ównej',
+ 'General Ledger' => 'Ksiêga G³ówna',
+ 'ID' => 'Identyfikator',
+ 'Include in Report' => 'Do³±cz w Sprawozdaniu',
+ 'Income' => 'Przychód',
+ 'Jan' => 'Styczeñ',
+ 'January' => 'Styczeñ',
+ 'Jul' => 'Lipiec',
+ 'July' => 'Lipiec',
+ 'Jun' => 'Czerwiec',
+ 'June' => 'Czerwiec',
+ 'Liability' => 'Zobowi±zania',
+ 'Mar' => 'Marzec',
+ 'March' => 'Marzec',
+ 'May' => 'Maj',
+ 'May ' => 'Maj',
+ 'Memo' => 'Notatka',
+ 'Message' => 'Wiadomo¶æ',
+ 'Month' => 'Miesi±c',
+ 'Notes' => 'Noty',
+ 'Nov' => 'Listopad',
+ 'November' => 'Listopad',
+ 'Number' => 'Numer Katalogu',
+ 'Oct' => 'Pa¿dziernik',
+ 'October' => 'Pa¿dziernik',
+ 'Out of balance transaction!' => 'Niezgodne Saldo Transakcji!',
+ 'Period' => 'Okres',
+ 'Post' => 'Zatwierd¿',
+ 'Post as new' => 'Zatwierd¿ jako nowe',
+ 'Print' => 'Wydrukuj',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Brak Projektu w zbiorze danych!',
+ 'Quarter' => 'Kwarta³',
+ 'R' => 'R',
+ 'Reference' => 'Odno¶nik',
+ 'Reports' => 'Sprawozdania',
+ 'Sales Invoice ' => 'Faktura VAT Sprzeda¿y',
+ 'Select from one of the names below' => 'Wybierz nazwê z poni¿szych',
+ 'Select from one of the projects below' => 'Wybierz z projektów',
+ 'Sep' => 'Wrzesieñ',
+ 'September' => 'Wrzesieñ',
+ 'Source' => '¯ród³o',
+ 'Startdate' => 'Dzieñ Zatrudnienia',
+ 'Subject' => 'Tre¶æ',
+ 'Subtotal' => 'Warto¶æ Netto',
+ 'To' => 'do',
+ 'Transaction Date missing!' => 'Brak Daty Transakcji!',
+ 'Transaction deleted!' => 'Transakcja usuniêta',
+ 'Transaction posted!' => 'Transakcja zatwierdzona',
+ 'Update' => 'Uzupe³nij',
+ 'Vendor Invoice ' => 'Faktura VAT Zakupu',
+ 'Vendor not on file!' => 'Brak Dostawcy w bazie danych',
+ 'Warning!' => 'Ostrze¿enie',
+ 'Year' => 'Rok',
+ 'Yes' => 'Tak',
+ 'sent' => 'wys³ane',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'transakcja_zobowi±zañ' => 'ap_transaction',
+ 'transakcja_nale¿no¶ci' => 'ar_transaction',
+ 'kontynuj' => 'continue',
+ 'usuñ' => 'delete',
+ 'transakcja_ksiêgi_g³ównej' => 'gl_transaction',
+ 'zatwierd¿' => 'post',
+ 'zatwierd¿_jako_nowe' => 'post_as_new',
+ 'faktura_vat_sprzeda¿y' => 'sales_invoice_',
+ 'uzupe³nij' => 'update',
+ 'faktura_vat_zakupu' => 'vendor_invoice_',
+ 'tak' => 'yes',
+};
+
+1;
+
diff --git a/locale/pl/hr b/locale/pl/hr
new file mode 100755
index 00000000..aecf4882
--- /dev/null
+++ b/locale/pl/hr
@@ -0,0 +1,116 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'AP' => 'Ksiêga Zobowi±zañ',
+ 'Above' => 'Powy¿szy',
+ 'Accounting Menu' => 'Menu Ksiêgowo¶ci',
+ 'Active' => 'Aktywne',
+ 'Add Deduction' => 'Dodaj Odliczenie',
+ 'Add Employee' => 'Dodaj Pracownika',
+ 'Address' => 'Adres',
+ 'Administrator' => 'Administrator',
+ 'After Deduction' => 'Po Odliczeniu',
+ 'All' => 'Wszystko',
+ 'Allowances' => 'Dodatki',
+ 'Amount' => 'Kwota',
+ 'Amount missing!' => 'Brakuje kwoty!',
+ 'BIC' => 'SWIFT',
+ 'Based on' => 'Bazowany na',
+ 'Before Deduction' => 'Przed Odliczeniem',
+ 'Below' => 'Poni¿ej',
+ 'City' => 'Miasto',
+ 'Continue' => 'Kontynuj',
+ 'Country' => 'Kraj',
+ 'Deduct after' => 'Potr±æ po',
+ 'Deduction deleted!' => 'Potr±cenie usuniête',
+ 'Deduction saved!' => 'Potr±cenie zapisane',
+ 'Deductions' => 'Potr±cenia',
+ 'Delete' => 'Usuñ',
+ 'Description' => 'Opis',
+ 'Description missing!' => 'Brak Opisu!',
+ 'E-mail' => 'E-mail',
+ 'Edit Deduction' => 'Zmieñ Potr±cenie',
+ 'Edit Employee' => 'Zmiany Pracownika',
+ 'Employee' => 'Pracownik',
+ 'Employee Name' => 'Nazwisko Pracownika',
+ 'Employee Number' => 'Numer Pracownika',
+ 'Employee deleted!' => 'Pracownik usuniêty!',
+ 'Employee pays' => 'Pracownik p³aci',
+ 'Employee saved!' => 'Pracownik zapisany',
+ 'Employees' => 'Pracownicy',
+ 'Employer' => 'Pracodawca',
+ 'Employer pays' => 'Pracodawca p³aci',
+ 'Enddate' => 'Dzieñ Zwolnienia',
+ 'Expense' => 'Koszt',
+ 'From' => 'Od',
+ 'Home Phone' => 'Telefon domowy',
+ 'IBAN' => 'IBAN/NRB',
+ 'ID' => 'Identyfikator',
+ 'Include in Report' => 'Do³±cz w Sprawozdaniu',
+ 'Login' => 'Zarejestrój siê',
+ 'Manager' => 'Kierownik',
+ 'Maximum' => 'Maxymalna',
+ 'Name' => 'Nazwa',
+ 'Name missing!' => 'Brak Nazwy',
+ 'Notes' => 'Noty',
+ 'Number' => 'Numer Katalogu',
+ 'Orphaned' => 'Zbêdne',
+ 'Payroll Deduction' => 'Lista P³ac - Potr±cenia',
+ 'Rate' => 'Stawka',
+ 'Rate missing!' => 'Brakuje Stawki',
+ 'Role' => 'Funkcja',
+ 'S' => 'S',
+ 'SSN' => 'PESEL',
+ 'Sales' => 'Sprzeda¿',
+ 'Save' => 'Zapisz',
+ 'Save as new' => 'Zapisz jako nowe',
+ 'Startdate' => 'Dzieñ Zatrudnienia',
+ 'State/Province' => 'Województwo',
+ 'To' => 'do',
+ 'Update' => 'Uzupe³nij',
+ 'User' => 'U¿ytkownik',
+ 'Work Phone' => 'Telefon-praca',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'dodaj_odliczenie' => 'add_deduction',
+ 'dodaj_pracownika' => 'add_employee',
+ 'kontynuj' => 'continue',
+ 'usuñ' => 'delete',
+ 'zapisz' => 'save',
+ 'zapisz_jako_nowe' => 'save_as_new',
+ 'uzupe³nij' => 'update',
+};
+
+1;
+
diff --git a/locale/pl/ic b/locale/pl/ic
new file mode 100755
index 00000000..fac9324e
--- /dev/null
+++ b/locale/pl/ic
@@ -0,0 +1,277 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'A' => 'A',
+ 'Accounting Menu' => 'Menu Ksiêgowo¶ci',
+ 'Accounts' => 'Konta',
+ 'Accrual' => 'Memoria³owa',
+ 'Active' => 'Aktywne',
+ 'Add' => 'Dodaj',
+ 'Add Assembly' => 'Dodaj Zestaw',
+ 'Add Labor/Overhead' => 'Dodaj wydatki Pracownicze/Administracyjne',
+ 'Add Part' => 'Dodaj Produkt',
+ 'Add Purchase Order' => 'Dodaj Zamówienie Zakupu',
+ 'Add Quotation' => 'Dodaj Ofertê',
+ 'Add Request for Quotation' => 'Dodaj Pro¶bê o Ofertê',
+ 'Add Sales Order' => 'Dodaj Zlecenie Sprzeda¿y',
+ 'Add Service' => 'Dodaj Us³ugi',
+ 'Address' => 'Adres',
+ 'Apr' => 'Kwiecieñ',
+ 'April' => 'Kwiecieñ',
+ 'Assemblies' => 'Zestawy',
+ 'Assemblies restocked!' => 'Zestawy uzupe³nione',
+ 'Assembly' => 'Zestaw',
+ 'Attachment' => 'Za³±cznik',
+ 'Aug' => 'Sierpieñ',
+ 'August' => 'Sierpieñ',
+ 'BOM' => 'Struktura Wyrobu',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Adres Korespondencji',
+ 'Bin' => 'Kosz',
+ 'Bin List' => 'Wykaz Kosza',
+ 'Break' => 'Próg Rentowno¶ci',
+ 'COGS' => 'Koszta Sprzeda¿y',
+ 'Cannot delete item!' => 'Nie mo¿esz usun±æ pozycji!',
+ 'Cannot stock assemblies!' => 'Nie mo¿na wstawiæ z³o¿enia',
+ 'Cash' => 'Kasa',
+ 'Cc' => 'Cc',
+ 'Check Inventory' => 'Kontrola Inwentarza',
+ 'City' => 'Miasto',
+ 'Closed' => 'Zamkniêto',
+ 'Company Name' => 'Nazwa Firmy',
+ 'Components' => 'Sk³adniki',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Kontynuj',
+ 'Copies' => 'Kopie',
+ 'Cost' => 'Koszt',
+ 'Country' => 'Kraj',
+ 'Curr' => 'Waluta',
+ 'Currency' => 'Waluta',
+ 'Customer' => 'Odbiorca',
+ 'Customer Number' => 'Numer Odbiorcy',
+ 'Customer not on file!' => 'Brak Odbiorcy w bazie danych',
+ 'Date' => 'Data',
+ 'Dec' => 'Grudzieñ',
+ 'December' => 'Grudzieñ',
+ 'Delete' => 'Usuñ',
+ 'Delivery Date' => 'Data Dostawy',
+ 'Description' => 'Opis',
+ 'Detail' => 'Wyszczególnienie',
+ 'Drawing' => 'Rysunek',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Brak adresu E-mail!',
+ 'E-mailed' => 'Wys³ano',
+ 'Edit Assembly' => 'Zmiany Zestawieñ',
+ 'Edit Labor/Overhead' => 'Zmieñ wydatki Pracownicze/Administracyjne',
+ 'Edit Part' => 'Zmiany Produktu',
+ 'Edit Service' => 'Zmiany Us³ug',
+ 'Employee' => 'Pracownik',
+ 'Expense' => 'Koszt',
+ 'Extended' => 'Warto¶æ Netto',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Luty',
+ 'February' => 'Luty',
+ 'From' => 'Od',
+ 'Group' => 'Grupa',
+ 'Image' => 'Grafika',
+ 'In-line' => 'W³±czony',
+ 'Include in Report' => 'Do³±cz w Sprawozdaniu',
+ 'Income' => 'Przychód',
+ 'Individual Items' => 'Indywidualne Czê¶ci',
+ 'Inventory' => 'Inwentarz',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Ilo¶æ Inventarza musi byæ równa zero zanim bêdzie mozna zdezaktualizowaæ ten zestaw!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Ilo¶æ inventarza musi byæ równa zero zanim bêdzie mo¿na zdezaktualizowaæ t± czê¶æ!',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date missing!' => 'Brak Daty Wystawienia',
+ 'Invoice Number' => 'Numer Faktury',
+ 'Invoice Number missing!' => 'Brak Numeru Faktury',
+ 'Item deleted!' => 'Pozycja usuniêta',
+ 'Item not on file!' => 'Produkt nie jest w zbiorze!',
+ 'Items' => 'Pozycje',
+ 'Jan' => 'Styczeñ',
+ 'January' => 'Styczeñ',
+ 'Jul' => 'Lipiec',
+ 'July' => 'Lipiec',
+ 'Jun' => 'Czerwiec',
+ 'June' => 'Czerwiec',
+ 'Labor/Overhead' => 'Koszty Pracownicze/Administracyjne',
+ 'Leadtime' => 'Cykl',
+ 'Line Total' => 'Suma ca³kowita',
+ 'Link Accounts' => 'Konta dowi±zane',
+ 'List' => 'Spis',
+ 'List Price' => 'Cena',
+ 'Make' => 'Marka',
+ 'Mar' => 'Marzec',
+ 'March' => 'Marzec',
+ 'Markup' => 'Mar¿a',
+ 'May' => 'Maj',
+ 'May ' => 'Maj',
+ 'Message' => 'Wiadomo¶æ',
+ 'Microfiche' => 'Mikrofilm',
+ 'Model' => 'Model',
+ 'Name' => 'Nazwa',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Noty',
+ 'Nov' => 'Listopad',
+ 'November' => 'Listopad',
+ 'Number' => 'Numer Katalogu',
+ 'Number missing in Row' => 'Brak Numeru w Rzêdzie',
+ 'Obsolete' => 'Przestarza³e',
+ 'Oct' => 'Pa¿dziernik',
+ 'October' => 'Pa¿dziernik',
+ 'On Hand' => 'Stan Zapasu Podrêcznego',
+ 'Open' => 'Otworzono',
+ 'Order' => 'Zlecenie',
+ 'Order Date missing!' => 'Brak Daty Zlecenia',
+ 'Order Number' => 'Numer ZLecenia',
+ 'Order Number missing!' => 'Brak Numeru Zlecenia',
+ 'Orphaned' => 'Zbêdne',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista Pakunkowa',
+ 'Packing List Date missing!' => 'Brak Daty Listy Pakunkowej',
+ 'Packing List Number missing!' => 'Brak Numeru Listy Pakunkowej',
+ 'Part' => 'Produkt',
+ 'Parts' => 'Produkty',
+ 'Period' => 'Okres',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Lista Pobrania',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Cena Netto',
+ 'Pricegroup' => 'Grupa cenowa',
+ 'Printed' => 'Wydrukowane',
+ 'Project' => 'Projekt',
+ 'Purchase Order' => 'Zlecenie Zakupu',
+ 'Purchase Orders' => 'Zlecenia Zakupu',
+ 'Qty' => 'Ilo¶æ',
+ 'Quantity exceeds available units to stock!' => 'Ilo¶æ przewy¿sza dostêpne jednostki zasobów!',
+ 'Quotation' => 'Oferta',
+ 'Quotation Date missing!' => 'Brak Daty Oferty',
+ 'Quotation Number missing!' => 'Brak Numeru Oferty',
+ 'Quotations' => 'Oferty',
+ 'RFQ' => 'Pro¶ba o Ofertê',
+ 'ROP' => 'PPZ',
+ 'Recd' => 'Otrzymano',
+ 'Required by' => 'Termin Dostawy',
+ 'SKU' => 'SWW',
+ 'Sales Invoice' => 'Faktura VAT Sprzeda¿y',
+ 'Sales Invoices' => 'Faktury VAT Sprzeda¿y',
+ 'Sales Order' => 'Zlecenie Sprzeda¿y',
+ 'Sales Orders' => 'Zlecenia Sprzeda¿y',
+ 'Save' => 'Zapisz',
+ 'Save as new' => 'Zapisz jako nowe',
+ 'Screen' => 'Ekran',
+ 'Select from one of the names below' => 'Wybierz nazwê z poni¿szych',
+ 'Sell' => 'Sprzeda¿',
+ 'Sell Price' => 'Cena Sprzeda¿y',
+ 'Sep' => 'Wrzesieñ',
+ 'September' => 'Wrzesieñ',
+ 'Serial No.' => 'Nr. Sr.',
+ 'Serial Number' => 'Numer Seryjny',
+ 'Service' => 'Us³ugi',
+ 'Services' => 'Us³ugi',
+ 'Ship' => 'Wysy³ka',
+ 'Ship to' => 'Wy¶lij do',
+ 'Shipping Address' => 'Adres Dostawy',
+ 'Short' => 'Niedobór',
+ 'State/Province' => 'Województwo',
+ 'Stock' => 'Zapas',
+ 'Stock Assembly' => 'Wstaw Zestaw',
+ 'Subject' => 'Tre¶æ',
+ 'Subtotal' => 'Warto¶æ Netto',
+ 'Summary' => 'Skrót',
+ 'Tax' => 'Podatek',
+ 'To' => 'do',
+ 'Top Level' => 'Najwy¿szy Poziom',
+ 'Translation not on file!' => 'Brak t³umaczenia w zbiorze',
+ 'Unit' => 'Jednostka',
+ 'Update' => 'Uzupe³nij',
+ 'Updated' => 'Uzupe³nione',
+ 'Vendor' => 'Dostawca',
+ 'Vendor Invoice' => 'Faktura VAT Zakupu',
+ 'Vendor Invoices' => 'Faktury VAT Zakupu',
+ 'Vendor Number' => 'Numer Dostawcy',
+ 'Vendor not on file!' => 'Brak Dostawcy w bazie danych',
+ 'Warehouse' => 'Magazyn',
+ 'Weight' => 'Waga',
+ 'What type of item is this?' => 'Co to za rodzaj artyku³u',
+ 'Work Order' => 'Zlecenie Robocze',
+ 'Year' => 'Rok',
+ 'days' => 'dni',
+ 'sent' => 'wys³ane',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'dodaj_zestaw' => 'add_assembly',
+ 'dodaj_wydatki_pracownicze_administracyjne' => 'add_labor_overhead',
+ 'dodaj_produkt' => 'add_part',
+ 'dodaj_us³ugi' => 'add_service',
+ 'kontynuj' => 'continue',
+ 'usuñ' => 'delete',
+ 'zmiany_zestawieñ' => 'edit_assembly',
+ 'zmiany_produktu' => 'edit_part',
+ 'zmiany_us³ug' => 'edit_service',
+ 'zapisz' => 'save',
+ 'zapisz_jako_nowe' => 'save_as_new',
+ 'uzupe³nij' => 'update',
+};
+
+1;
+
diff --git a/locale/pl/io b/locale/pl/io
new file mode 100755
index 00000000..656efefb
--- /dev/null
+++ b/locale/pl/io
@@ -0,0 +1,130 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Add Purchase Order' => 'Dodaj Zamówienie Zakupu',
+ 'Add Quotation' => 'Dodaj Ofertê',
+ 'Add Request for Quotation' => 'Dodaj Pro¶bê o Ofertê',
+ 'Add Sales Order' => 'Dodaj Zlecenie Sprzeda¿y',
+ 'Address' => 'Adres',
+ 'Apr' => 'Kwiecieñ',
+ 'April' => 'Kwiecieñ',
+ 'Attachment' => 'Za³±cznik',
+ 'Aug' => 'Sierpieñ',
+ 'August' => 'Sierpieñ',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Adres Korespondencji',
+ 'Bin' => 'Kosz',
+ 'Bin List' => 'Wykaz Kosza',
+ 'Cc' => 'Cc',
+ 'City' => 'Miasto',
+ 'Company Name' => 'Nazwa Firmy',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Kontynuj',
+ 'Copies' => 'Kopie',
+ 'Country' => 'Kraj',
+ 'Customer Number' => 'Numer Odbiorcy',
+ 'Date' => 'Data',
+ 'Dec' => 'Grudzieñ',
+ 'December' => 'Grudzieñ',
+ 'Delivery Date' => 'Data Dostawy',
+ 'Description' => 'Opis',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Brak adresu E-mail!',
+ 'E-mailed' => 'Wys³ano',
+ 'Extended' => 'Warto¶æ Netto',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Luty',
+ 'February' => 'Luty',
+ 'Group' => 'Grupa',
+ 'In-line' => 'W³±czony',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date missing!' => 'Brak Daty Wystawienia',
+ 'Invoice Number missing!' => 'Brak Numeru Faktury',
+ 'Item not on file!' => 'Produkt nie jest w zbiorze!',
+ 'Jan' => 'Styczeñ',
+ 'January' => 'Styczeñ',
+ 'Jul' => 'Lipiec',
+ 'July' => 'Lipiec',
+ 'Jun' => 'Czerwiec',
+ 'June' => 'Czerwiec',
+ 'Mar' => 'Marzec',
+ 'March' => 'Marzec',
+ 'May' => 'Maj',
+ 'May ' => 'Maj',
+ 'Message' => 'Wiadomo¶æ',
+ 'Nov' => 'Listopad',
+ 'November' => 'Listopad',
+ 'Number' => 'Numer Katalogu',
+ 'Number missing in Row' => 'Brak Numeru w Rzêdzie',
+ 'Oct' => 'Pa¿dziernik',
+ 'October' => 'Pa¿dziernik',
+ 'Order Date missing!' => 'Brak Daty Zlecenia',
+ 'Order Number missing!' => 'Brak Numeru Zlecenia',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista Pakunkowa',
+ 'Packing List Date missing!' => 'Brak Daty Listy Pakunkowej',
+ 'Packing List Number missing!' => 'Brak Numeru Listy Pakunkowej',
+ 'Part' => 'Produkt',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Lista Pobrania',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Cena Netto',
+ 'Printed' => 'Wydrukowane',
+ 'Project' => 'Projekt',
+ 'Purchase Order' => 'Zlecenie Zakupu',
+ 'Qty' => 'Ilo¶æ',
+ 'Quotation' => 'Oferta',
+ 'Quotation Date missing!' => 'Brak Daty Oferty',
+ 'Quotation Number missing!' => 'Brak Numeru Oferty',
+ 'Recd' => 'Otrzymano',
+ 'Required by' => 'Termin Dostawy',
+ 'SKU' => 'SWW',
+ 'Sales Order' => 'Zlecenie Sprzeda¿y',
+ 'Screen' => 'Ekran',
+ 'Sep' => 'Wrzesieñ',
+ 'September' => 'Wrzesieñ',
+ 'Serial No.' => 'Nr. Sr.',
+ 'Service' => 'Us³ugi',
+ 'Ship' => 'Wysy³ka',
+ 'Ship to' => 'Wy¶lij do',
+ 'Shipping Address' => 'Adres Dostawy',
+ 'State/Province' => 'Województwo',
+ 'Subject' => 'Tre¶æ',
+ 'Subtotal' => 'Warto¶æ Netto',
+ 'To' => 'do',
+ 'Translation not on file!' => 'Brak t³umaczenia w zbiorze',
+ 'Unit' => 'Jednostka',
+ 'Vendor Number' => 'Numer Dostawcy',
+ 'What type of item is this?' => 'Co to za rodzaj artyku³u',
+ 'Work Order' => 'Zlecenie Robocze',
+ 'sent' => 'wys³ane',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'kontynuj' => 'continue',
+};
+
+1;
+
diff --git a/locale/pl/ir b/locale/pl/ir
new file mode 100755
index 00000000..90a2bbb6
--- /dev/null
+++ b/locale/pl/ir
@@ -0,0 +1,224 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Menu Ksiêgowo¶ci',
+ 'Add Purchase Order' => 'Dodaj Zamówienie Zakupu',
+ 'Add Quotation' => 'Dodaj Ofertê',
+ 'Add Request for Quotation' => 'Dodaj Pro¶bê o Ofertê',
+ 'Add Sales Order' => 'Dodaj Zlecenie Sprzeda¿y',
+ 'Add Vendor Invoice' => 'Zarejestrój Fakturê VAT Zakupu',
+ 'Address' => 'Adres',
+ 'Amount' => 'Kwota',
+ 'Apr' => 'Kwiecieñ',
+ 'April' => 'Kwiecieñ',
+ 'Are you sure you want to delete Invoice Number' => 'Czy chcesz usun±æ Numer Faktury?',
+ 'Attachment' => 'Za³±cznik',
+ 'Aug' => 'Sierpieñ',
+ 'August' => 'Sierpieñ',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Adres Korespondencji',
+ 'Bin' => 'Kosz',
+ 'Bin List' => 'Wykaz Kosza',
+ 'Cannot delete invoice!' => 'Nie mo¿esz usun±æ factury!',
+ 'Cannot post invoice for a closed period!' => 'Nie mo¿na zksiêgowaæ faktury po zamkniêciu okresu!',
+ 'Cannot post invoice!' => 'Nie mo¿esz zatwierdziæ faktury!',
+ 'Cannot post payment for a closed period!' => 'Nie mo¿na zaksiêgowaæ p³atno¶ci po zamkniêciu okresu!',
+ 'Cc' => 'Cc',
+ 'City' => 'Miasto',
+ 'Company Name' => 'Nazwa Firmy',
+ 'Confirm!' => 'Potwierd¿!',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Kontynuj',
+ 'Copies' => 'Kopie',
+ 'Country' => 'Kraj',
+ 'Credit Limit' => 'Limit Kredytu',
+ 'Currency' => 'Waluta',
+ 'Customer Number' => 'Numer Odbiorcy',
+ 'Customer not on file!' => 'Brak Odbiorcy w bazie danych',
+ 'Date' => 'Data',
+ 'Dec' => 'Grudzieñ',
+ 'December' => 'Grudzieñ',
+ 'Delete' => 'Usuñ',
+ 'Delivery Date' => 'Data Dostawy',
+ 'Department' => 'Wydzia³',
+ 'Description' => 'Opis',
+ 'Due Date' => 'Termin P³atno¶ci',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Brak adresu E-mail!',
+ 'E-mailed' => 'Wys³ano',
+ 'Edit Vendor Invoice' => 'Zmiany Faktury Zamówienia',
+ 'Exch' => 'Kurs Walut',
+ 'Exchange Rate' => 'Kurs Walut',
+ 'Exchange rate for payment missing!' => 'Brakuje Kursu Walut dla p³atno¶ci!',
+ 'Exchange rate missing!' => 'Brakuje Kursu Walut',
+ 'Extended' => 'Warto¶æ Netto',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Luty',
+ 'February' => 'Luty',
+ 'Group' => 'Grupa',
+ 'In-line' => 'W³±czony',
+ 'Internal Notes' => 'Noty Wewnêtrzne',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date' => 'Data Wystawienia',
+ 'Invoice Date missing!' => 'Brak Daty Wystawienia',
+ 'Invoice Number' => 'Numer Faktury',
+ 'Invoice Number missing!' => 'Brak Numeru Faktury',
+ 'Invoice deleted!' => 'Faktura usuniêta',
+ 'Item not on file!' => 'Produkt nie jest w zbiorze!',
+ 'Jan' => 'Styczeñ',
+ 'January' => 'Styczeñ',
+ 'Jul' => 'Lipiec',
+ 'July' => 'Lipiec',
+ 'Jun' => 'Czerwiec',
+ 'June' => 'Czerwiec',
+ 'Language' => 'Jêzyk',
+ 'Mar' => 'Marzec',
+ 'March' => 'Marzec',
+ 'May' => 'Maj',
+ 'May ' => 'Maj',
+ 'Memo' => 'Notatka',
+ 'Message' => 'Wiadomo¶æ',
+ 'Notes' => 'Noty',
+ 'Nov' => 'Listopad',
+ 'November' => 'Listopad',
+ 'Number' => 'Numer Katalogu',
+ 'Number missing in Row' => 'Brak Numeru w Rzêdzie',
+ 'Oct' => 'Pa¿dziernik',
+ 'October' => 'Pa¿dziernik',
+ 'Order Date missing!' => 'Brak Daty Zlecenia',
+ 'Order Number' => 'Numer ZLecenia',
+ 'Order Number missing!' => 'Brak Numeru Zlecenia',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista Pakunkowa',
+ 'Packing List Date missing!' => 'Brak Daty Listy Pakunkowej',
+ 'Packing List Number missing!' => 'Brak Numeru Listy Pakunkowej',
+ 'Part' => 'Produkt',
+ 'Payment date missing!' => 'Brak Daty Wyp³aty',
+ 'Payments' => 'Wyp³aty',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Lista Pobrania',
+ 'Post' => 'Zatwierd¿',
+ 'Post as new' => 'Zatwierd¿ jako nowe',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Cena Netto',
+ 'Print' => 'Wydrukuj',
+ 'Printed' => 'Wydrukowane',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Brak Projektu w zbiorze danych!',
+ 'Purchase Order' => 'Zlecenie Zakupu',
+ 'Qty' => 'Ilo¶æ',
+ 'Quotation' => 'Oferta',
+ 'Quotation Date missing!' => 'Brak Daty Oferty',
+ 'Quotation Number missing!' => 'Brak Numeru Oferty',
+ 'Recd' => 'Otrzymano',
+ 'Record in' => 'Zapisz w',
+ 'Reference' => 'Odno¶nik',
+ 'Remaining' => 'Pozosta³e',
+ 'Required by' => 'Termin Dostawy',
+ 'SKU' => 'SWW',
+ 'Sales Order' => 'Zlecenie Sprzeda¿y',
+ 'Screen' => 'Ekran',
+ 'Select from one of the names below' => 'Wybierz nazwê z poni¿szych',
+ 'Select from one of the projects below' => 'Wybierz z projektów',
+ 'Sep' => 'Wrzesieñ',
+ 'September' => 'Wrzesieñ',
+ 'Serial No.' => 'Nr. Sr.',
+ 'Service' => 'Us³ugi',
+ 'Ship' => 'Wysy³ka',
+ 'Ship to' => 'Wy¶lij do',
+ 'Shipping Address' => 'Adres Dostawy',
+ 'Source' => '¯ród³o',
+ 'Startdate' => 'Dzieñ Zatrudnienia',
+ 'State/Province' => 'Województwo',
+ 'Subject' => 'Tre¶æ',
+ 'Subtotal' => 'Warto¶æ Netto',
+ 'Tax Included' => 'Podatek Wliczony',
+ 'To' => 'do',
+ 'Total' => 'Warto¶æ Brutto',
+ 'Translation not on file!' => 'Brak t³umaczenia w zbiorze',
+ 'Unit' => 'Jednostka',
+ 'Update' => 'Uzupe³nij',
+ 'Vendor' => 'Dostawca',
+ 'Vendor Number' => 'Numer Dostawcy',
+ 'Vendor missing!' => 'Brak Dostawcy',
+ 'Vendor not on file!' => 'Brak Dostawcy w bazie danych',
+ 'Warning!' => 'Ostrze¿enie',
+ 'What type of item is this?' => 'Co to za rodzaj artyku³u',
+ 'Work Order' => 'Zlecenie Robocze',
+ 'Yes' => 'Tak',
+ 'ea' => 'szt',
+ 'posted!' => 'zatwierdzone!',
+ 'sent' => 'wys³ane',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'kontynuj' => 'continue',
+ 'usuñ' => 'delete',
+ 'zatwierd¿' => 'post',
+ 'zatwierd¿_jako_nowe' => 'post_as_new',
+ 'zlecenie_zakupu' => 'purchase_order',
+ 'uzupe³nij' => 'update',
+ 'tak' => 'yes',
+};
+
+1;
+
diff --git a/locale/pl/is b/locale/pl/is
new file mode 100755
index 00000000..fba085e6
--- /dev/null
+++ b/locale/pl/is
@@ -0,0 +1,235 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Menu Ksiêgowo¶ci',
+ 'Add Purchase Order' => 'Dodaj Zamówienie Zakupu',
+ 'Add Quotation' => 'Dodaj Ofertê',
+ 'Add Request for Quotation' => 'Dodaj Pro¶bê o Ofertê',
+ 'Add Sales Invoice' => 'Zarejestrój Fakturê VAT Sprzeda¿y',
+ 'Add Sales Order' => 'Dodaj Zlecenie Sprzeda¿y',
+ 'Address' => 'Adres',
+ 'Amount' => 'Kwota',
+ 'Apr' => 'Kwiecieñ',
+ 'April' => 'Kwiecieñ',
+ 'Are you sure you want to delete Invoice Number' => 'Czy chcesz usun±æ Numer Faktury?',
+ 'Attachment' => 'Za³±cznik',
+ 'Aug' => 'Sierpieñ',
+ 'August' => 'Sierpieñ',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Adres Korespondencji',
+ 'Bin' => 'Kosz',
+ 'Bin List' => 'Wykaz Kosza',
+ 'Business' => 'Dzia³alno¶æ',
+ 'Cannot delete invoice!' => 'Nie mo¿esz usun±æ factury!',
+ 'Cannot post invoice for a closed period!' => 'Nie mo¿na zksiêgowaæ faktury po zamkniêciu okresu!',
+ 'Cannot post invoice!' => 'Nie mo¿esz zatwierdziæ faktury!',
+ 'Cannot post payment for a closed period!' => 'Nie mo¿na zaksiêgowaæ p³atno¶ci po zamkniêciu okresu!',
+ 'Cc' => 'Cc',
+ 'City' => 'Miasto',
+ 'Company Name' => 'Nazwa Firmy',
+ 'Confirm!' => 'Potwierd¿!',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Kontynuj',
+ 'Copies' => 'Kopie',
+ 'Country' => 'Kraj',
+ 'Credit Limit' => 'Limit Kredytu',
+ 'Currency' => 'Waluta',
+ 'Customer' => 'Odbiorca',
+ 'Customer Number' => 'Numer Odbiorcy',
+ 'Customer missing!' => 'Brak Odbiorcy',
+ 'Customer not on file!' => 'Brak Odbiorcy w bazie danych',
+ 'Date' => 'Data',
+ 'Dec' => 'Grudzieñ',
+ 'December' => 'Grudzieñ',
+ 'Delete' => 'Usuñ',
+ 'Delivery Date' => 'Data Dostawy',
+ 'Department' => 'Wydzia³',
+ 'Description' => 'Opis',
+ 'Due Date' => 'Termin P³atno¶ci',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Brak adresu E-mail!',
+ 'E-mailed' => 'Wys³ano',
+ 'Edit Sales Invoice' => 'Zmiany Faktury Sprzeda¿y',
+ 'Exch' => 'Kurs Walut',
+ 'Exchange Rate' => 'Kurs Walut',
+ 'Exchange rate for payment missing!' => 'Brakuje Kursu Walut dla p³atno¶ci!',
+ 'Exchange rate missing!' => 'Brakuje Kursu Walut',
+ 'Extended' => 'Warto¶æ Netto',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Luty',
+ 'February' => 'Luty',
+ 'Group' => 'Grupa',
+ 'In-line' => 'W³±czony',
+ 'Internal Notes' => 'Noty Wewnêtrzne',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date' => 'Data Wystawienia',
+ 'Invoice Date missing!' => 'Brak Daty Wystawienia',
+ 'Invoice Number' => 'Numer Faktury',
+ 'Invoice Number missing!' => 'Brak Numeru Faktury',
+ 'Invoice deleted!' => 'Faktura usuniêta',
+ 'Item not on file!' => 'Produkt nie jest w zbiorze!',
+ 'Jan' => 'Styczeñ',
+ 'January' => 'Styczeñ',
+ 'Jul' => 'Lipiec',
+ 'July' => 'Lipiec',
+ 'Jun' => 'Czerwiec',
+ 'June' => 'Czerwiec',
+ 'Mar' => 'Marzec',
+ 'March' => 'Marzec',
+ 'May' => 'Maj',
+ 'May ' => 'Maj',
+ 'Memo' => 'Notatka',
+ 'Message' => 'Wiadomo¶æ',
+ 'Notes' => 'Noty',
+ 'Nov' => 'Listopad',
+ 'November' => 'Listopad',
+ 'Number' => 'Numer Katalogu',
+ 'Number missing in Row' => 'Brak Numeru w Rzêdzie',
+ 'Oct' => 'Pa¿dziernik',
+ 'October' => 'Pa¿dziernik',
+ 'Order Date missing!' => 'Brak Daty Zlecenia',
+ 'Order Number' => 'Numer ZLecenia',
+ 'Order Number missing!' => 'Brak Numeru Zlecenia',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista Pakunkowa',
+ 'Packing List Date missing!' => 'Brak Daty Listy Pakunkowej',
+ 'Packing List Number missing!' => 'Brak Numeru Listy Pakunkowej',
+ 'Part' => 'Produkt',
+ 'Payment date missing!' => 'Brak Daty Wyp³aty',
+ 'Payments' => 'Wyp³aty',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Lista Pobrania',
+ 'Post' => 'Zatwierd¿',
+ 'Post as new' => 'Zatwierd¿ jako nowe',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Cena Netto',
+ 'Print' => 'Wydrukuj',
+ 'Print and Post' => 'Wydrukuj i Zatwierd¿',
+ 'Printed' => 'Wydrukowane',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Brak Projektu w zbiorze danych!',
+ 'Purchase Order' => 'Zlecenie Zakupu',
+ 'Qty' => 'Ilo¶æ',
+ 'Quotation' => 'Oferta',
+ 'Quotation Date missing!' => 'Brak Daty Oferty',
+ 'Quotation Number missing!' => 'Brak Numeru Oferty',
+ 'Recd' => 'Otrzymano',
+ 'Record in' => 'Zapisz w',
+ 'Reference' => 'Odno¶nik',
+ 'Remaining' => 'Pozosta³e',
+ 'Required by' => 'Termin Dostawy',
+ 'SKU' => 'SWW',
+ 'Sales Order' => 'Zlecenie Sprzeda¿y',
+ 'Salesperson' => 'Sprzedawca',
+ 'Screen' => 'Ekran',
+ 'Select from one of the names below' => 'Wybierz nazwê z poni¿szych',
+ 'Select from one of the projects below' => 'Wybierz z projektów',
+ 'Select postscript or PDF!' => 'Wybierz postscript lub PDF',
+ 'Sep' => 'Wrzesieñ',
+ 'September' => 'Wrzesieñ',
+ 'Serial No.' => 'Nr. Sr.',
+ 'Service' => 'Us³ugi',
+ 'Ship' => 'Wysy³ka',
+ 'Ship to' => 'Wy¶lij do',
+ 'Ship via' => 'Wy¶lij przez',
+ 'Shipping Address' => 'Adres Dostawy',
+ 'Shipping Point' => 'Punkt Dostawy',
+ 'Source' => '¯ród³o',
+ 'Startdate' => 'Dzieñ Zatrudnienia',
+ 'State/Province' => 'Województwo',
+ 'Subject' => 'Tre¶æ',
+ 'Subtotal' => 'Warto¶æ Netto',
+ 'Tax Included' => 'Podatek Wliczony',
+ 'To' => 'do',
+ 'Total' => 'Warto¶æ Brutto',
+ 'Trade Discount' => 'Rabat Handlowy',
+ 'Translation not on file!' => 'Brak t³umaczenia w zbiorze',
+ 'Unit' => 'Jednostka',
+ 'Update' => 'Uzupe³nij',
+ 'Vendor Number' => 'Numer Dostawcy',
+ 'Vendor not on file!' => 'Brak Dostawcy w bazie danych',
+ 'Warning!' => 'Ostrze¿enie',
+ 'What type of item is this?' => 'Co to za rodzaj artyku³u',
+ 'Work Order' => 'Zlecenie Robocze',
+ 'Yes' => 'Tak',
+ 'ea' => 'szt',
+ 'posted!' => 'zatwierdzone!',
+ 'sent' => 'wys³ane',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'kontynuj' => 'continue',
+ 'usuñ' => 'delete',
+ 'e_mail' => 'e_mail',
+ 'zatwierd¿' => 'post',
+ 'zatwierd¿_jako_nowe' => 'post_as_new',
+ 'wydrukuj' => 'print',
+ 'wydrukuj_i_zatwierd¿' => 'print_and_post',
+ 'zlecenie_sprzeda¿y' => 'sales_order',
+ 'wy¶lij_do' => 'ship_to',
+ 'uzupe³nij' => 'update',
+ 'tak' => 'yes',
+};
+
+1;
+
diff --git a/locale/pl/jc b/locale/pl/jc
new file mode 100755
index 00000000..59583300
--- /dev/null
+++ b/locale/pl/jc
@@ -0,0 +1,94 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Menu Ksiêgowo¶ci',
+ 'Amount' => 'Kwota',
+ 'Closed' => 'Zamkniêto',
+ 'Confirm!' => 'Potwierd¿!',
+ 'Continue' => 'Kontynuj',
+ 'Cost' => 'Koszt',
+ 'Current' => 'Bie¿±cy',
+ 'Date' => 'Data',
+ 'Date missing!' => 'Brak Daty',
+ 'Delete' => 'Usuñ',
+ 'Description' => 'Opis',
+ 'Employee' => 'Pracownik',
+ 'From' => 'Od',
+ 'ID' => 'Identyfikator',
+ 'Include in Report' => 'Do³±cz w Sprawozdaniu',
+ 'Month' => 'Miesi±c',
+ 'Notes' => 'Noty',
+ 'Open' => 'Otworzono',
+ 'PDF' => 'PDF',
+ 'Period' => 'Okres',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Wydrukuj',
+ 'Print and Save' => 'Wydrukuj i Zapisz',
+ 'Printed' => 'Wydrukowane',
+ 'Project Number' => 'Numer Projektu',
+ 'Project Number missing!' => 'Brak Numeru Projektu',
+ 'Qty' => 'Ilo¶æ',
+ 'Quarter' => 'Kwarta³',
+ 'Save' => 'Zapisz',
+ 'Save as new' => 'Zapisz jako nowe',
+ 'Screen' => 'Ekran',
+ 'Select postscript or PDF!' => 'Wybierz postscript lub PDF',
+ 'Startdate' => 'Dzieñ Zatrudnienia',
+ 'Subtotal' => 'Warto¶æ Netto',
+ 'To' => 'do',
+ 'Total' => 'Warto¶æ Brutto',
+ 'Update' => 'Uzupe³nij',
+ 'Warning!' => 'Ostrze¿enie',
+ 'Year' => 'Rok',
+ 'Yes' => 'Tak',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'kontynuj' => 'continue',
+ 'usuñ' => 'delete',
+ 'wydrukuj' => 'print',
+ 'wydrukuj_i_zapisz' => 'print_and_save',
+ 'zapisz' => 'save',
+ 'zapisz_jako_nowe' => 'save_as_new',
+ 'uzupe³nij' => 'update',
+ 'tak' => 'yes',
+};
+
+1;
+
diff --git a/locale/pl/locales.pl b/locale/pl/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/pl/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/pl/login b/locale/pl/login
new file mode 100755
index 00000000..4497a077
--- /dev/null
+++ b/locale/pl/login
@@ -0,0 +1,26 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Company' => 'Firma',
+ 'Continue' => 'Kontynuj',
+ 'Dataset is newer than version!' => 'Baza Danych jest nowsza ni¿ wersja!',
+ 'Incorrect Dataset version!' => 'Nieprawid³owa wersja Zbioru Danych',
+ 'Login' => 'Zarejestrój siê',
+ 'Name' => 'Nazwa',
+ 'Password' => 'Has³o',
+ 'Upgrading to Version' => 'Uaktualnienie do nowej wersji',
+ 'Version' => 'Wersja',
+ 'You did not enter a name!' => 'Nie wstawiono nazwy!',
+ 'done' => 'wykonane',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ 'zarejestrój_siê' => 'login',
+};
+
+1;
+
diff --git a/locale/pl/menu b/locale/pl/menu
new file mode 100755
index 00000000..a5a25706
--- /dev/null
+++ b/locale/pl/menu
@@ -0,0 +1,136 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'AP' => 'Ksiêga Zobowi±zañ',
+ 'AP Aging' => 'Plan P³atno¶ci Zobowi±zañ',
+ 'AP Transaction' => 'Transakcja Zobowi±zañ',
+ 'AR' => 'Ksiêga Nale¿no¶ci',
+ 'AR Aging' => 'Plan P³atno¶ci Nale¿no¶ci',
+ 'AR Transaction' => 'Transakcja Nale¿no¶ci',
+ 'Accounting Menu' => 'Menu Ksiêgowo¶ci',
+ 'Add Account' => 'Dodaj Konto',
+ 'Add Assembly' => 'Dodaj Zestaw',
+ 'Add Business' => 'Dodaj Dzia³alno¶æ',
+ 'Add Customer' => 'Dodaj Odbiorcê',
+ 'Add Department' => 'Dodaj Wydzia³',
+ 'Add Employee' => 'Dodaj Pracownika',
+ 'Add GIFI' => 'Dodaj GIFI',
+ 'Add Group' => 'Dodaj Grupê',
+ 'Add Labor/Overhead' => 'Dodaj wydatki Pracownicze/Administracyjne',
+ 'Add Language' => 'Dodaj Jêzyk',
+ 'Add Part' => 'Dodaj Produkt',
+ 'Add Pricegroup' => 'Dodaj Grupê Cenow±',
+ 'Add Project' => 'Dodaj Projekt',
+ 'Add SIC' => 'Dodaj EKD',
+ 'Add Service' => 'Dodaj Us³ugi',
+ 'Add Transaction' => 'Dodaj Transakcjê',
+ 'Add Vendor' => 'Dodaj Dostawcê',
+ 'Add Warehouse' => 'Dodaj Magazyn',
+ 'All Items' => 'Wszystkie Pozycje',
+ 'Assemblies' => 'Zestawy',
+ 'Audit Control' => 'Kontrola Audytu',
+ 'Backup' => 'Kopia Zapasowa',
+ 'Balance Sheet' => 'Bilans',
+ 'Bin List' => 'Wykaz Kosza',
+ 'Bin Lists' => 'Wykazy Koszy',
+ 'Cash' => 'Kasa',
+ 'Chart of Accounts' => 'Plan Kont',
+ 'Check' => 'Czek',
+ 'Components' => 'Sk³adniki',
+ 'Customers' => 'Odbiorcy',
+ 'Defaults' => 'Ustawienia',
+ 'Departments' => 'Wydzia³y',
+ 'Description' => 'Opis',
+ 'Employees' => 'Pracownicy',
+ 'General Ledger' => 'Ksiêga G³ówna',
+ 'Goods & Services' => 'Produkty i Us³ugi',
+ 'Groups' => 'Grupy',
+ 'HR' => 'Kadry',
+ 'HTML Templates' => 'Szablony HTML',
+ 'History' => 'Statystyka',
+ 'Income Statement' => 'Rachunek Zysków i Strat',
+ 'Invoice' => 'Faktura',
+ 'LaTeX Templates' => 'Szablony LaTeX',
+ 'Labor/Overhead' => 'Koszty Pracownicze/Administracyjne',
+ 'Language' => 'Jêzyk',
+ 'List Accounts' => 'Spis Kont',
+ 'List Businesses' => 'Wykaz Dzia³alno¶ci',
+ 'List Departments' => 'Wykaz Wydzia³ów',
+ 'List GIFI' => 'Wykaz GIFI',
+ 'List Languages' => 'Wykaz Jêzyków',
+ 'List Projects' => 'Wykaz Projektów',
+ 'List SIC' => 'Wykaz EKD',
+ 'List Warehouses' => 'Wykaz Magazynów',
+ 'Logout' => 'Wyrejestrój siê',
+ 'Non-taxable' => 'Rejestr VAT - Nieopodatkowane',
+ 'Open' => 'Otworzono',
+ 'Order Entry' => 'Wystawianie Zleceñ',
+ 'Outstanding' => 'Transakcje Nieuregulowane',
+ 'POS' => 'Punkt Sprzeda¿y',
+ 'POS Invoice' => 'Faktura Punktu Sprzeda¿y',
+ 'Packing List' => 'Lista Pakunkowa',
+ 'Packing Lists' => 'Listy Pakunkowe',
+ 'Parts' => 'Produkty',
+ 'Payment' => 'Kasa Wyp³aci',
+ 'Payments' => 'Wyp³aty',
+ 'Pick List' => 'Lista Pobrania',
+ 'Pick Lists' => 'Listy Pobrania',
+ 'Preferences' => 'Preferencje',
+ 'Pricegroups' => 'Grupy cenowa',
+ 'Print' => 'Wydrukuj',
+ 'Projects' => 'Projekty',
+ 'Purchase Order' => 'Zlecenie Zakupu',
+ 'Purchase Orders' => 'Zlecenia Zakupu',
+ 'Quotation' => 'Oferta',
+ 'Quotations' => 'Oferty',
+ 'RFQ' => 'Pro¶ba o Ofertê',
+ 'RFQs' => 'Pro¶by o Ofertê',
+ 'Receipt' => 'Kasa Przyjmie',
+ 'Receipts' => 'Wp³aty',
+ 'Receive' => 'Dostawy',
+ 'Reconciliation' => 'Zbalansowanie Kont',
+ 'Reports' => 'Sprawozdania',
+ 'SIC' => 'EKD',
+ 'Sale' => 'Sprzeda¿',
+ 'Sales Invoice' => 'Faktura VAT Sprzeda¿y',
+ 'Sales Invoices' => 'Faktury VAT Sprzeda¿y',
+ 'Sales Order' => 'Zlecenie Sprzeda¿y',
+ 'Sales Orders' => 'Zlecenia Sprzeda¿y',
+ 'Save to File' => 'Zapisz w zbiorze',
+ 'Search' => 'Znajd¿',
+ 'Send by E-Mail' => 'Wys³ano przez E-Mail',
+ 'Services' => 'Us³ugi',
+ 'Ship' => 'Wysy³ka',
+ 'Shipping' => 'Spedycja',
+ 'Statement' => 'Wykaz',
+ 'Stock Assembly' => 'Wstaw Zestaw',
+ 'Stylesheet' => 'Strona Stylowa',
+ 'System' => 'System',
+ 'Tax collected' => 'Rejestr VAT - Sprzeda¿',
+ 'Tax paid' => 'Rejestr VAT - Zakupy',
+ 'Text Templates' => 'Szablony',
+ 'Transactions' => 'Zestawienia Transakcji',
+ 'Transfer' => 'Przelewy',
+ 'Transfer Inventory' => 'Przeniesienie Inventarza',
+ 'Translations' => 'T³umaczenia',
+ 'Trial Balance' => 'Bilans Porównawczy',
+ 'Type of Business' => 'Rodzaj Dzia³alno¶ci',
+ 'Vendor Invoice' => 'Faktura VAT Zakupu',
+ 'Vendors' => 'Dostawcy',
+ 'Version' => 'Wersja',
+ 'Warehouses' => 'Magazyny',
+ 'Work Order' => 'Zlecenie Robocze',
+ 'Work Orders' => 'Zlecenia Robocze',
+ 'Yearend' => 'Koniec Roku Finansowego',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/pl/oe b/locale/pl/oe
new file mode 100755
index 00000000..5edc3015
--- /dev/null
+++ b/locale/pl/oe
@@ -0,0 +1,321 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Menu Ksiêgowo¶ci',
+ 'Add Exchange Rate' => 'Dodaj Kurs Walut',
+ 'Add Purchase Order' => 'Dodaj Zamówienie Zakupu',
+ 'Add Quotation' => 'Dodaj Ofertê',
+ 'Add Request for Quotation' => 'Dodaj Pro¶bê o Ofertê',
+ 'Add Sales Invoice' => 'Zarejestrój Fakturê VAT Sprzeda¿y',
+ 'Add Sales Order' => 'Dodaj Zlecenie Sprzeda¿y',
+ 'Add Vendor Invoice' => 'Zarejestrój Fakturê VAT Zakupu',
+ 'Address' => 'Adres',
+ 'Amount' => 'Kwota',
+ 'Apr' => 'Kwiecieñ',
+ 'April' => 'Kwiecieñ',
+ 'Are you sure you want to delete Order Number' => 'Czy chcesz usun±æ Numer Zamówienia?',
+ 'Are you sure you want to delete Quotation Number' => 'Czy chcesz usun±æ Numer Oferty?',
+ 'Attachment' => 'Za³±cznik',
+ 'Aug' => 'Sierpieñ',
+ 'August' => 'Sierpieñ',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Adres Korespondencji',
+ 'Bin' => 'Kosz',
+ 'Bin List' => 'Wykaz Kosza',
+ 'Business' => 'Dzia³alno¶æ',
+ 'C' => 'C',
+ 'Cannot delete order!' => 'Nie mo¿esz usun±æ zamówienia!',
+ 'Cannot delete quotation!' => 'Nie mo¿esz usun±æ oferty',
+ 'Cannot save order!' => 'Nie mo¿na zapisaæ zamowienia!',
+ 'Cannot save quotation!' => 'Nie mo¿na zapisaæ oferty!',
+ 'Cc' => 'Cc',
+ 'City' => 'Miasto',
+ 'Closed' => 'Zamkniêto',
+ 'Company Name' => 'Nazwa Firmy',
+ 'Confirm!' => 'Potwierd¿!',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Kontynuj',
+ 'Copies' => 'Kopie',
+ 'Cost' => 'Koszt',
+ 'Could not save!' => 'Nie mo¿e zapisaæ!',
+ 'Could not transfer Inventory!' => 'Nie mo¿e przesun±æ Inwentarza',
+ 'Country' => 'Kraj',
+ 'Credit Limit' => 'Limit Kredytu',
+ 'Curr' => 'Waluta',
+ 'Currency' => 'Waluta',
+ 'Current' => 'Bie¿±cy',
+ 'Customer' => 'Odbiorca',
+ 'Customer Number' => 'Numer Odbiorcy',
+ 'Customer missing!' => 'Brak Odbiorcy',
+ 'Customer not on file!' => 'Brak Odbiorcy w bazie danych',
+ 'Date' => 'Data',
+ 'Date Received' => 'Data Wp³aty',
+ 'Date received missing!' => 'Brak Daty Wp³aty',
+ 'Dec' => 'Grudzieñ',
+ 'December' => 'Grudzieñ',
+ 'Delete' => 'Usuñ',
+ 'Delivery Date' => 'Data Dostawy',
+ 'Department' => 'Wydzia³',
+ 'Description' => 'Opis',
+ 'Done' => 'Zrobione',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Brak adresu E-mail!',
+ 'E-mailed' => 'Wys³ano',
+ 'Edit Purchase Order' => 'Zmiany Zlecenia Zakupu',
+ 'Edit Quotation' => 'Zmieñ Ofertê',
+ 'Edit Request for Quotation' => 'Zmieñ Pro¶bê o Ofertê',
+ 'Edit Sales Order' => 'Zmiany Zlecenia Sprzedazy',
+ 'Employee' => 'Pracownik',
+ 'Exchange Rate' => 'Kurs Walut',
+ 'Exchange rate missing!' => 'Brakuje Kursu Walut',
+ 'Extended' => 'Warto¶æ Netto',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Luty',
+ 'February' => 'Luty',
+ 'From' => 'Od',
+ 'Group' => 'Grupa',
+ 'ID' => 'Identyfikator',
+ 'In-line' => 'W³±czony',
+ 'Include in Report' => 'Do³±cz w Sprawozdaniu',
+ 'Internal Notes' => 'Noty Wewnêtrzne',
+ 'Inventory saved!' => 'Inwentarz zapisany!',
+ 'Inventory transferred!' => 'Inwentarz przeniesiony!',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date missing!' => 'Brak Daty Wystawienia',
+ 'Invoice Number missing!' => 'Brak Numeru Faktury',
+ 'Item not on file!' => 'Produkt nie jest w zbiorze!',
+ 'Jan' => 'Styczeñ',
+ 'January' => 'Styczeñ',
+ 'Jul' => 'Lipiec',
+ 'July' => 'Lipiec',
+ 'Jun' => 'Czerwiec',
+ 'June' => 'Czerwiec',
+ 'Manager' => 'Kierownik',
+ 'Mar' => 'Marzec',
+ 'March' => 'Marzec',
+ 'May' => 'Maj',
+ 'May ' => 'Maj',
+ 'Message' => 'Wiadomo¶æ',
+ 'Month' => 'Miesi±c',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Noty',
+ 'Nothing entered!' => 'Nic nie wprowadzono!',
+ 'Nothing selected!' => 'Nic nie zaznaczone!',
+ 'Nothing to transfer!' => 'Nie ma nic do przeniesienia!',
+ 'Nov' => 'Listopad',
+ 'November' => 'Listopad',
+ 'Number' => 'Numer Katalogu',
+ 'Number missing in Row' => 'Brak Numeru w Rzêdzie',
+ 'O' => 'O',
+ 'Oct' => 'Pa¿dziernik',
+ 'October' => 'Pa¿dziernik',
+ 'Open' => 'Otworzono',
+ 'Order' => 'Zlecenie',
+ 'Order Date' => 'Data Zlecenia',
+ 'Order Date missing!' => 'Brak Daty Zlecenia',
+ 'Order Number' => 'Numer ZLecenia',
+ 'Order Number missing!' => 'Brak Numeru Zlecenia',
+ 'Order deleted!' => 'Zlecenie usuniête',
+ 'Order saved!' => 'Zlecenie zapisane',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista Pakunkowa',
+ 'Packing List Date missing!' => 'Brak Daty Listy Pakunkowej',
+ 'Packing List Number missing!' => 'Brak Numeru Listy Pakunkowej',
+ 'Part' => 'Produkt',
+ 'Period' => 'Okres',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Lista Pobrania',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Cena Netto',
+ 'Print' => 'Wydrukuj',
+ 'Print and Save' => 'Wydrukuj i Zapisz',
+ 'Printed' => 'Wydrukowane',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Brak Projektu w zbiorze danych!',
+ 'Purchase Order' => 'Zlecenie Zakupu',
+ 'Purchase Orders' => 'Zlecenia Zakupu',
+ 'Qty' => 'Ilo¶æ',
+ 'Quarter' => 'Kwarta³',
+ 'Quotation' => 'Oferta',
+ 'Quotation ' => 'Oferta',
+ 'Quotation Date' => 'Data Oferty',
+ 'Quotation Date missing!' => 'Brak Daty Oferty',
+ 'Quotation Number' => 'Numer Oferty',
+ 'Quotation Number missing!' => 'Brak Numeru Oferty',
+ 'Quotation deleted!' => 'Oferta usuniêta',
+ 'Quotations' => 'Oferty',
+ 'RFQ' => 'Pro¶ba o Ofertê',
+ 'RFQ ' => 'Prpo¶ba o Ofertê',
+ 'RFQ Number' => 'Numer Pro¶by o Ofertê',
+ 'Recd' => 'Otrzymano',
+ 'Receive Merchandise' => 'Dostawy Towarów',
+ 'Reference' => 'Odno¶nik',
+ 'Remaining' => 'Pozosta³e',
+ 'Request for Quotation' => 'Pro¶ba o Ofertê',
+ 'Request for Quotations' => 'Pro¶ba o Oferty',
+ 'Required by' => 'Termin Dostawy',
+ 'SKU' => 'SWW',
+ 'Sales Invoice' => 'Faktura VAT Sprzeda¿y',
+ 'Sales Order' => 'Zlecenie Sprzeda¿y',
+ 'Sales Orders' => 'Zlecenia Sprzeda¿y',
+ 'Salesperson' => 'Sprzedawca',
+ 'Save' => 'Zapisz',
+ 'Save as new' => 'Zapisz jako nowe',
+ 'Screen' => 'Ekran',
+ 'Select from one of the names below' => 'Wybierz nazwê z poni¿szych',
+ 'Select from one of the projects below' => 'Wybierz z projektów',
+ 'Select postscript or PDF!' => 'Wybierz postscript lub PDF',
+ 'Sep' => 'Wrzesieñ',
+ 'September' => 'Wrzesieñ',
+ 'Serial No.' => 'Nr. Sr.',
+ 'Service' => 'Us³ugi',
+ 'Ship' => 'Wysy³ka',
+ 'Ship Merchandise' => 'Wysy³ka Produktów',
+ 'Ship to' => 'Wy¶lij do',
+ 'Ship via' => 'Wy¶lij przez',
+ 'Shipping Address' => 'Adres Dostawy',
+ 'Shipping Date' => 'Dzieñ Dostawy',
+ 'Shipping Date missing!' => 'Brak Dnia Dostawy!',
+ 'Shipping Point' => 'Punkt Dostawy',
+ 'Startdate' => 'Dzieñ Zatrudnienia',
+ 'State/Province' => 'Województwo',
+ 'Subject' => 'Tre¶æ',
+ 'Subtotal' => 'Warto¶æ Netto',
+ 'Tax' => 'Podatek',
+ 'Tax Included' => 'Podatek Wliczony',
+ 'Terms' => 'Warunki: Netto',
+ 'To' => 'do',
+ 'Total' => 'Warto¶æ Brutto',
+ 'Trade Discount' => 'Rabat Handlowy',
+ 'Transfer' => 'Przelewy',
+ 'Transfer Inventory' => 'Przeniesienie Inventarza',
+ 'Transfer to' => 'Przenie¶ do',
+ 'Translation not on file!' => 'Brak t³umaczenia w zbiorze',
+ 'Unit' => 'Jednostka',
+ 'Update' => 'Uzupe³nij',
+ 'Valid until' => 'Wa¿ne do',
+ 'Vendor' => 'Dostawca',
+ 'Vendor Invoice' => 'Faktura VAT Zakupu',
+ 'Vendor Number' => 'Numer Dostawcy',
+ 'Vendor missing!' => 'Brak Dostawcy',
+ 'Vendor not on file!' => 'Brak Dostawcy w bazie danych',
+ 'Warehouse' => 'Magazyn',
+ 'Warning!' => 'Ostrze¿enie',
+ 'What type of item is this?' => 'Co to za rodzaj artyku³u',
+ 'Work Order' => 'Zlecenie Robocze',
+ 'Year' => 'Rok',
+ 'Yes' => 'Tak',
+ 'days' => 'dni',
+ 'ea' => 'szt',
+ 'sent' => 'wys³ane',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'kontynuj' => 'continue',
+ 'usuñ' => 'delete',
+ 'zrobione' => 'done',
+ 'e_mail' => 'e_mail',
+ 'wydrukuj' => 'print',
+ 'wydrukuj_i_zapisz' => 'print_and_save',
+ 'zlecenie_zakupu' => 'purchase_order',
+ 'oferta' => 'quotation',
+ 'oferta' => 'quotation_',
+ 'pro¶ba_o_ofertê' => 'rfq',
+ 'prpo¶ba_o_ofertê' => 'rfq_',
+ 'faktura_vat_sprzeda¿y' => 'sales_invoice',
+ 'zlecenie_sprzeda¿y' => 'sales_order',
+ 'zapisz' => 'save',
+ 'zapisz_jako_nowe' => 'save_as_new',
+ 'wy¶lij_do' => 'ship_to',
+ 'przelewy' => 'transfer',
+ 'uzupe³nij' => 'update',
+ 'faktura_vat_zakupu' => 'vendor_invoice',
+ 'tak' => 'yes',
+};
+
+1;
+
diff --git a/locale/pl/pe b/locale/pl/pe
new file mode 100755
index 00000000..4cb07673
--- /dev/null
+++ b/locale/pl/pe
@@ -0,0 +1,143 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Menu Ksiêgowo¶ci',
+ 'Active' => 'Aktywne',
+ 'Add' => 'Dodaj',
+ 'Add Group' => 'Dodaj Grupê',
+ 'Add Pricegroup' => 'Dodaj Grupê Cenow±',
+ 'Add Project' => 'Dodaj Projekt',
+ 'Address' => 'Adres',
+ 'All' => 'Wszystko',
+ 'Amount' => 'Kwota',
+ 'Assembly' => 'Zestaw',
+ 'Bin' => 'Kosz',
+ 'Continue' => 'Kontynuj',
+ 'Current' => 'Bie¿±cy',
+ 'Customer' => 'Odbiorca',
+ 'Customer missing!' => 'Brak Odbiorcy',
+ 'Customer not on file!' => 'Brak Odbiorcy w bazie danych',
+ 'Date' => 'Data',
+ 'Delete' => 'Usuñ',
+ 'Description' => 'Opis',
+ 'Description Translations' => 'T³umaczenie Opisu',
+ 'Detail' => 'Wyszczególnienie',
+ 'Edit Description Translations' => 'Zmieñ T³umaczenie Opisu',
+ 'Edit Group' => 'Zmieñ Grupê',
+ 'Edit Pricegroup' => 'Zmieñ Grupê Cenow±',
+ 'Edit Project' => 'Zmiany Projektu',
+ 'Employee' => 'Pracownik',
+ 'Enddate' => 'Dzieñ Zwolnienia',
+ 'From' => 'Od',
+ 'Group' => 'Grupa',
+ 'Group Translations' => 'Grupój T³umaczenia',
+ 'Group deleted!' => 'Grupa usuniêta',
+ 'Group missing!' => 'Brakuje Grupy',
+ 'Group saved!' => 'Grupa zapisana',
+ 'Groups' => 'Grupy',
+ 'Income' => 'Przychód',
+ 'Language' => 'Jêzyk',
+ 'Languages not defined!' => 'Jêzyk nie zdefiniowany!',
+ 'Link Accounts' => 'Konta dowi±zane',
+ 'List Price' => 'Cena',
+ 'Month' => 'Miesi±c',
+ 'Notes' => 'Noty',
+ 'Nothing selected!' => 'Nic nie zaznaczone!',
+ 'Number' => 'Numer Katalogu',
+ 'Orphaned' => 'Zbêdne',
+ 'Period' => 'Okres',
+ 'Pricegroup' => 'Grupa cenowa',
+ 'Pricegroup deleted!' => 'Grupa cenowa usuniêta',
+ 'Pricegroup missing!' => 'Brakuje Grupy cenowej',
+ 'Pricegroup saved!' => 'Grupa cenowa zapisana',
+ 'Pricegroups' => 'Grupy cenowa',
+ 'Project' => 'Projekt',
+ 'Project Description Translations' => 'T³umaczenie Opisu Projektu',
+ 'Project Number' => 'Numer Projektu',
+ 'Project deleted!' => 'Projekt usuniêty',
+ 'Project saved!' => 'Projekt zapisany',
+ 'Projects' => 'Projekty',
+ 'Qty' => 'Ilo¶æ',
+ 'Quarter' => 'Kwarta³',
+ 'Save' => 'Zapisz',
+ 'Select from one of the names below' => 'Wybierz nazwê z poni¿szych',
+ 'Sell Price' => 'Cena Sprzeda¿y',
+ 'Startdate' => 'Dzieñ Zatrudnienia',
+ 'Summary' => 'Skrót',
+ 'Tax' => 'Podatek',
+ 'To' => 'do',
+ 'Translation' => 'T³umaczenie',
+ 'Translation deleted!' => 'T³umaczenie usuniête!',
+ 'Translations saved!' => 'T³umaczenia zapisane!',
+ 'Unit' => 'Jednostka',
+ 'Update' => 'Uzupe³nij',
+ 'Updated' => 'Uzupe³nione',
+ 'Vendor' => 'Dostawca',
+ 'Vendor not on file!' => 'Brak Dostawcy w bazie danych',
+ 'Weight' => 'Waga',
+ 'Year' => 'Rok',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'dodaj_grupê' => 'add_group',
+ 'dodaj_grupê_cenow±' => 'add_pricegroup',
+ 'dodaj_projekt' => 'add_project',
+ 'kontynuj' => 'continue',
+ 'usuñ' => 'delete',
+ 'zapisz' => 'save',
+ 'uzupe³nij' => 'update',
+};
+
+1;
+
diff --git a/locale/pl/pos b/locale/pl/pos
new file mode 100755
index 00000000..5f93da4b
--- /dev/null
+++ b/locale/pl/pos
@@ -0,0 +1,82 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Menu Ksiêgowo¶ci',
+ 'Add POS Invoice' => 'Dodaj Fakturê w Punkcie Sprzeda¿y',
+ 'Amount' => 'Kwota',
+ 'Business' => 'Dzia³alno¶æ',
+ 'Cannot post transaction!' => 'Nie mo¿esz zatwierdziæ transakcji!',
+ 'Change' => 'Reszta',
+ 'Continue' => 'Kontynuj',
+ 'Credit Limit' => 'Limit Kredytu',
+ 'Currency' => 'Waluta',
+ 'Current' => 'Bie¿±cy',
+ 'Customer' => 'Odbiorca',
+ 'Customer missing!' => 'Brak Odbiorcy',
+ 'Delete' => 'Usuñ',
+ 'Department' => 'Wydzia³',
+ 'Description' => 'Opis',
+ 'Edit POS Invoice' => 'Zmieñ Fakturê Punktu Sprzeda¿y',
+ 'Exchange Rate' => 'Kurs Walut',
+ 'Exchange rate missing!' => 'Brakuje Kursu Walut',
+ 'Extended' => 'Warto¶æ Netto',
+ 'From' => 'Od',
+ 'Language' => 'Jêzyk',
+ 'Memo' => 'Notatka',
+ 'Month' => 'Miesi±c',
+ 'Number' => 'Numer Katalogu',
+ 'Open' => 'Otworzono',
+ 'Period' => 'Okres',
+ 'Post' => 'Zatwierd¿',
+ 'Posted!' => 'Zatwierdzone!',
+ 'Price' => 'Cena Netto',
+ 'Print' => 'Wydrukuj',
+ 'Print and Post' => 'Wydrukuj i Zatwierd¿',
+ 'Printed' => 'Wydrukowane',
+ 'Qty' => 'Ilo¶æ',
+ 'Quarter' => 'Kwarta³',
+ 'Receipts' => 'Wp³aty',
+ 'Record in' => 'Zapisz w',
+ 'Remaining' => 'Pozosta³e',
+ 'Salesperson' => 'Sprzedawca',
+ 'Screen' => 'Ekran',
+ 'Source' => '¯ród³o',
+ 'Subtotal' => 'Warto¶æ Netto',
+ 'Tax Included' => 'Podatek Wliczony',
+ 'To' => 'do',
+ 'Total' => 'Warto¶æ Brutto',
+ 'Trade Discount' => 'Rabat Handlowy',
+ 'Unit' => 'Jednostka',
+ 'Update' => 'Uzupe³nij',
+ 'Year' => 'Rok',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'kontynuj' => 'continue',
+ 'usuñ' => 'delete',
+ 'zatwierd¿' => 'post',
+ 'wydrukuj' => 'print',
+ 'wydrukuj_i_zatwierd¿' => 'print_and_post',
+ 'uzupe³nij' => 'update',
+};
+
+1;
+
diff --git a/locale/pl/ps b/locale/pl/ps
new file mode 100755
index 00000000..8f23626e
--- /dev/null
+++ b/locale/pl/ps
@@ -0,0 +1,358 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'AP Aging' => 'Plan P³atno¶ci Zobowi±zañ',
+ 'AP Outstanding' => 'Zobowi±zania Nieuregulowane',
+ 'AP Transaction' => 'Transakcja Zobowi±zañ',
+ 'AP Transactions' => 'Transakcje Zobowi±zañ',
+ 'AR Aging' => 'Plan P³atno¶ci Nale¿no¶ci',
+ 'AR Outstanding' => 'Nale¿no¶ci Nieuregulowane',
+ 'AR Transaction' => 'Transakcja Nale¿no¶ci',
+ 'AR Transactions' => 'Transakcje Nale¿no¶ci',
+ 'Account' => 'Konto',
+ 'Account Number' => 'Numer Konta',
+ 'Accounting Menu' => 'Menu Ksiêgowo¶ci',
+ 'Accounts' => 'Konta',
+ 'Accrual' => 'Memoria³owa',
+ 'Add AP Transaction' => 'Rejestr w Ksiêdze Zobowi±zañ',
+ 'Add AR Transaction' => 'Rejestr w Ksiêdze Nale¿no¶ci',
+ 'Add POS Invoice' => 'Dodaj Fakturê w Punkcie Sprzeda¿y',
+ 'Add Purchase Order' => 'Dodaj Zamówienie Zakupu',
+ 'Add Quotation' => 'Dodaj Ofertê',
+ 'Add Request for Quotation' => 'Dodaj Pro¶bê o Ofertê',
+ 'Add Sales Invoice' => 'Zarejestrój Fakturê VAT Sprzeda¿y',
+ 'Add Sales Order' => 'Dodaj Zlecenie Sprzeda¿y',
+ 'Address' => 'Adres',
+ 'All Accounts' => 'Wszystkie Konta',
+ 'Amount' => 'Kwota',
+ 'Amount Due' => 'Kwota Nale¿na',
+ 'Apr' => 'Kwiecieñ',
+ 'April' => 'Kwiecieñ',
+ 'Are you sure you want to delete Invoice Number' => 'Czy chcesz usun±æ Numer Faktury?',
+ 'Are you sure you want to delete Transaction' => 'Czy chcesz usun±æ Transakcjê?',
+ 'Attachment' => 'Za³±cznik',
+ 'Aug' => 'Sierpieñ',
+ 'August' => 'Sierpieñ',
+ 'Balance' => 'Saldo',
+ 'Balance Sheet' => 'Bilans',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Adres Korespondencji',
+ 'Bin' => 'Kosz',
+ 'Bin List' => 'Wykaz Kosza',
+ 'Business' => 'Dzia³alno¶æ',
+ 'Cannot delete invoice!' => 'Nie mo¿esz usun±æ factury!',
+ 'Cannot delete transaction!' => 'Nie mo¿esz usun±æ transakcji!',
+ 'Cannot post invoice for a closed period!' => 'Nie mo¿na zksiêgowaæ faktury po zamkniêciu okresu!',
+ 'Cannot post invoice!' => 'Nie mo¿esz zatwierdziæ faktury!',
+ 'Cannot post payment for a closed period!' => 'Nie mo¿na zaksiêgowaæ p³atno¶ci po zamkniêciu okresu!',
+ 'Cannot post transaction for a closed period!' => 'Nie mo¿na zaksiêgowaæ transakcji po zamkniêciu okresu!',
+ 'Cannot post transaction!' => 'Nie mo¿esz zatwierdziæ transakcji!',
+ 'Cash' => 'Kasa',
+ 'Cc' => 'Cc',
+ 'Change' => 'Reszta',
+ 'Check' => 'Czek',
+ 'City' => 'Miasto',
+ 'Closed' => 'Zamkniêto',
+ 'Company Name' => 'Nazwa Firmy',
+ 'Compare to' => 'Porównaj z',
+ 'Confirm!' => 'Potwierd¿!',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Kontynuj',
+ 'Copies' => 'Kopie',
+ 'Country' => 'Kraj',
+ 'Credit' => 'Kredyt',
+ 'Credit Limit' => 'Limit Kredytu',
+ 'Curr' => 'Waluta',
+ 'Currency' => 'Waluta',
+ 'Current' => 'Bie¿±cy',
+ 'Current Earnings' => 'Acdtualny Dochód',
+ 'Customer' => 'Odbiorca',
+ 'Customer Number' => 'Numer Odbiorcy',
+ 'Customer missing!' => 'Brak Odbiorcy',
+ 'Customer not on file!' => 'Brak Odbiorcy w bazie danych',
+ 'Date' => 'Data',
+ 'Date Paid' => 'Data Zap³aty',
+ 'Debit' => 'Debet',
+ 'Dec' => 'Grudzieñ',
+ 'December' => 'Grudzieñ',
+ 'Decimalplaces' => 'Miejsca Dziesiêtne',
+ 'Delete' => 'Usuñ',
+ 'Delivery Date' => 'Data Dostawy',
+ 'Department' => 'Wydzia³',
+ 'Description' => 'Opis',
+ 'Detail' => 'Wyszczególnienie',
+ 'Due Date' => 'Termin P³atno¶ci',
+ 'Due Date missing!' => 'Brak Terminu P³atno¶ci!',
+ 'E-mail' => 'E-mail',
+ 'E-mail Statement to' => 'E-mail Wykaz do',
+ 'E-mail address missing!' => 'Brak adresu E-mail!',
+ 'E-mailed' => 'Wys³ano',
+ 'Edit AP Transaction' => 'Zmiany Transakcji Konta Zobowi±zañ',
+ 'Edit AR Transaction' => 'Zmiany Transakcji Konta Nale¿no¶ci',
+ 'Edit POS Invoice' => 'Zmieñ Fakturê Punktu Sprzeda¿y',
+ 'Edit Sales Invoice' => 'Zmiany Faktury Sprzeda¿y',
+ 'Employee' => 'Pracownik',
+ 'Exch' => 'Kurs Walut',
+ 'Exchange Rate' => 'Kurs Walut',
+ 'Exchange rate for payment missing!' => 'Brakuje Kursu Walut dla p³atno¶ci!',
+ 'Exchange rate missing!' => 'Brakuje Kursu Walut',
+ 'Extended' => 'Warto¶æ Netto',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Luty',
+ 'February' => 'Luty',
+ 'From' => 'Od',
+ 'GIFI' => 'GIFI',
+ 'Group' => 'Grupa',
+ 'Heading' => 'Nag³ówek',
+ 'ID' => 'Identyfikator',
+ 'In-line' => 'W³±czony',
+ 'Include Exchange Rate Difference' => 'Za³±cz Ró¿nice Wymiany Walut',
+ 'Include in Report' => 'Do³±cz w Sprawozdaniu',
+ 'Income Statement' => 'Rachunek Zysków i Strat',
+ 'Internal Notes' => 'Noty Wewnêtrzne',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date' => 'Data Wystawienia',
+ 'Invoice Date missing!' => 'Brak Daty Wystawienia',
+ 'Invoice Number' => 'Numer Faktury',
+ 'Invoice Number missing!' => 'Brak Numeru Faktury',
+ 'Invoice deleted!' => 'Faktura usuniêta',
+ 'Item not on file!' => 'Produkt nie jest w zbiorze!',
+ 'Jan' => 'Styczeñ',
+ 'January' => 'Styczeñ',
+ 'Jul' => 'Lipiec',
+ 'July' => 'Lipiec',
+ 'Jun' => 'Czerwiec',
+ 'June' => 'Czerwiec',
+ 'Language' => 'Jêzyk',
+ 'Manager' => 'Kierownik',
+ 'Mar' => 'Marzec',
+ 'March' => 'Marzec',
+ 'May' => 'Maj',
+ 'May ' => 'Maj',
+ 'Memo' => 'Notatka',
+ 'Message' => 'Wiadomo¶æ',
+ 'Method' => 'Metoda',
+ 'Month' => 'Miesi±c',
+ 'N/A' => 'N/A',
+ 'No.' => 'Nr.',
+ 'Non-taxable Purchases' => 'Rejestr VAT - Zakupy',
+ 'Non-taxable Sales' => 'Rejestr VAT - Sprzeda¿',
+ 'Notes' => 'Noty',
+ 'Nothing selected!' => 'Nic nie zaznaczone!',
+ 'Nothing to print!' => 'Nic do wydrukowania!',
+ 'Nov' => 'Listopad',
+ 'November' => 'Listopad',
+ 'Number' => 'Numer Katalogu',
+ 'Number missing in Row' => 'Brak Numeru w Rzêdzie',
+ 'Oct' => 'Pa¿dziernik',
+ 'October' => 'Pa¿dziernik',
+ 'Open' => 'Otworzono',
+ 'Order' => 'Zlecenie',
+ 'Order Date missing!' => 'Brak Daty Zlecenia',
+ 'Order Number' => 'Numer ZLecenia',
+ 'Order Number missing!' => 'Brak Numeru Zlecenia',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista Pakunkowa',
+ 'Packing List Date missing!' => 'Brak Daty Listy Pakunkowej',
+ 'Packing List Number missing!' => 'Brak Numeru Listy Pakunkowej',
+ 'Paid' => 'Zap³acono',
+ 'Part' => 'Produkt',
+ 'Payment date missing!' => 'Brak Daty Wyp³aty',
+ 'Payments' => 'Wyp³aty',
+ 'Period' => 'Okres',
+ 'Phone' => 'Tel.',
+ 'Pick List' => 'Lista Pobrania',
+ 'Post' => 'Zatwierd¿',
+ 'Post as new' => 'Zatwierd¿ jako nowe',
+ 'Posted!' => 'Zatwierdzone!',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Cena Netto',
+ 'Print' => 'Wydrukuj',
+ 'Print and Post' => 'Wydrukuj i Zatwierd¿',
+ 'Printed' => 'Wydrukowane',
+ 'Project' => 'Projekt',
+ 'Project Number' => 'Numer Projektu',
+ 'Project Transactions' => 'Transakcje Projektów',
+ 'Project not on file!' => 'Brak Projektu w zbiorze danych!',
+ 'Purchase Order' => 'Zlecenie Zakupu',
+ 'Qty' => 'Ilo¶æ',
+ 'Quarter' => 'Kwarta³',
+ 'Quotation' => 'Oferta',
+ 'Quotation Date missing!' => 'Brak Daty Oferty',
+ 'Quotation Number missing!' => 'Brak Numeru Oferty',
+ 'Recd' => 'Otrzymano',
+ 'Receipt' => 'Kasa Przyjmie',
+ 'Receipts' => 'Wp³aty',
+ 'Record in' => 'Zapisz w',
+ 'Reference' => 'Odno¶nik',
+ 'Remaining' => 'Pozosta³e',
+ 'Report for' => 'Raport dla',
+ 'Required by' => 'Termin Dostawy',
+ 'SKU' => 'SWW',
+ 'Sales Invoice.' => 'Faktura VAT Sprzeda¿y.',
+ 'Sales Order' => 'Zlecenie Sprzeda¿y',
+ 'Salesperson' => 'Sprzedawca',
+ 'Screen' => 'Ekran',
+ 'Select all' => 'Wybierz wszystko',
+ 'Select from one of the names below' => 'Wybierz nazwê z poni¿szych',
+ 'Select from one of the projects below' => 'Wybierz z projektów',
+ 'Select payment' => 'Wybierz p³atno¶æ',
+ 'Select postscript or PDF!' => 'Wybierz postscript lub PDF',
+ 'Sep' => 'Wrzesieñ',
+ 'September' => 'Wrzesieñ',
+ 'Serial No.' => 'Nr. Sr.',
+ 'Service' => 'Us³ugi',
+ 'Ship' => 'Wysy³ka',
+ 'Ship to' => 'Wy¶lij do',
+ 'Ship via' => 'Wy¶lij przez',
+ 'Shipping Address' => 'Adres Dostawy',
+ 'Shipping Point' => 'Punkt Dostawy',
+ 'Source' => '¯ród³o',
+ 'Standard' => 'Standartowe',
+ 'Startdate' => 'Dzieñ Zatrudnienia',
+ 'State/Province' => 'Województwo',
+ 'Statement' => 'Wykaz',
+ 'Statement sent to' => 'Wykaz wys³any do',
+ 'Statements sent to printer!' => 'Wykaz wys³any do drukarki',
+ 'Subject' => 'Tre¶æ',
+ 'Subtotal' => 'Warto¶æ Netto',
+ 'Summary' => 'Skrót',
+ 'Tax' => 'Podatek',
+ 'Tax Included' => 'Podatek Wliczony',
+ 'Tax collected' => 'Rejestr VAT - Sprzeda¿',
+ 'Tax paid' => 'Rejestr VAT - Zakupy',
+ 'Till' => 'Kasa',
+ 'To' => 'do',
+ 'Total' => 'Warto¶æ Brutto',
+ 'Trade Discount' => 'Rabat Handlowy',
+ 'Transaction' => 'Transakcja',
+ 'Transaction deleted!' => 'Transakcja usuniêta',
+ 'Transaction posted!' => 'Transakcja zatwierdzona',
+ 'Translation not on file!' => 'Brak t³umaczenia w zbiorze',
+ 'Trial Balance' => 'Bilans Porównawczy',
+ 'Unit' => 'Jednostka',
+ 'Update' => 'Uzupe³nij',
+ 'Vendor' => 'Dostawca',
+ 'Vendor Invoice.' => 'Faktura VAT Zakupu.',
+ 'Vendor Number' => 'Numer Dostawcy',
+ 'Vendor missing!' => 'Brak Dostawcy',
+ 'Vendor not on file!' => 'Brak Dostawcy w bazie danych',
+ 'Warning!' => 'Ostrze¿enie',
+ 'What type of item is this?' => 'Co to za rodzaj artyku³u',
+ 'Work Order' => 'Zlecenie Robocze',
+ 'Year' => 'Rok',
+ 'Yes' => 'Tak',
+ 'as at' => 'na dzieñ',
+ 'ea' => 'szt',
+ 'for Period' => 'za Okres',
+ 'posted!' => 'zatwierdzone!',
+ 'sent' => 'wys³ane',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'transakcja_zobowi±zañ' => 'ap_transaction',
+ 'transakcja_nale¿no¶ci' => 'ar_transaction',
+ 'kontynuj' => 'continue',
+ 'usuñ' => 'delete',
+ 'e_mail' => 'e_mail',
+ 'zatwierd¿' => 'post',
+ 'zatwierd¿_jako_nowe' => 'post_as_new',
+ 'wydrukuj' => 'print',
+ 'wydrukuj_i_zatwierd¿' => 'print_and_post',
+ 'faktura_vat_sprzeda¿y_' => 'sales_invoice_',
+ 'zlecenie_sprzeda¿y' => 'sales_order',
+ 'wybierz_wszystko' => 'select_all',
+ 'wy¶lij_do' => 'ship_to',
+ 'uzupe³nij' => 'update',
+ 'faktura_vat_zakupu_' => 'vendor_invoice_',
+ 'tak' => 'yes',
+};
+
+1;
+
diff --git a/locale/pl/pw b/locale/pl/pw
new file mode 100755
index 00000000..e2996e56
--- /dev/null
+++ b/locale/pl/pw
@@ -0,0 +1,14 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Continue' => 'Kontynuj',
+ 'Password' => 'Has³o',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'kontynuj' => 'continue',
+};
+
+1;
+
diff --git a/locale/pl/rc b/locale/pl/rc
new file mode 100755
index 00000000..2116edf0
--- /dev/null
+++ b/locale/pl/rc
@@ -0,0 +1,81 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Menu Ksiêgowo¶ci',
+ 'Apr' => 'Kwiecieñ',
+ 'April' => 'Kwiecieñ',
+ 'Aug' => 'Sierpieñ',
+ 'August' => 'Sierpieñ',
+ 'Balance' => 'Saldo',
+ 'Beginning Balance' => 'Saldo Pocz±tkowe',
+ 'Cleared' => 'Rozliczone',
+ 'Continue' => 'Kontynuj',
+ 'Credit' => 'Kredyt',
+ 'Current' => 'Bie¿±cy',
+ 'Date' => 'Data',
+ 'Debit' => 'Debet',
+ 'Dec' => 'Grudzieñ',
+ 'December' => 'Grudzieñ',
+ 'Description' => 'Opis',
+ 'Detail' => 'Wyszczególnienie',
+ 'Difference' => 'Ró¿nica',
+ 'Done' => 'Zrobione',
+ 'Feb' => 'Luty',
+ 'February' => 'Luty',
+ 'From' => 'Od',
+ 'Include Exchange Rate Difference' => 'Za³±cz Ró¿nice Wymiany Walut',
+ 'Jan' => 'Styczeñ',
+ 'January' => 'Styczeñ',
+ 'Jul' => 'Lipiec',
+ 'July' => 'Lipiec',
+ 'Jun' => 'Czerwiec',
+ 'June' => 'Czerwiec',
+ 'Mar' => 'Marzec',
+ 'March' => 'Marzec',
+ 'May' => 'Maj',
+ 'May ' => 'Maj',
+ 'Month' => 'Miesi±c',
+ 'Nov' => 'Listopad',
+ 'November' => 'Listopad',
+ 'Oct' => 'Pa¿dziernik',
+ 'October' => 'Pa¿dziernik',
+ 'Out of balance!' => 'Niezgodne Saldo',
+ 'Outstanding' => 'Transakcje Nieuregulowane',
+ 'Period' => 'Okres',
+ 'Quarter' => 'Kwarta³',
+ 'R' => 'R',
+ 'Reconciliation' => 'Zbalansowanie Kont',
+ 'Reconciliation Report' => 'Sprawozdanie Zbalansowania Kont',
+ 'Select all' => 'Wybierz wszystko',
+ 'Sep' => 'Wrzesieñ',
+ 'September' => 'Wrzesieñ',
+ 'Source' => '¯ród³o',
+ 'Statement Balance' => 'Wykaz Salda',
+ 'Summary' => 'Skrót',
+ 'To' => 'do',
+ 'Update' => 'Uzupe³nij',
+ 'Year' => 'Rok',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'kontynuj' => 'continue',
+ 'zrobione' => 'done',
+ 'wybierz_wszystko' => 'select_all',
+ 'uzupe³nij' => 'update',
+};
+
+1;
+
diff --git a/locale/pl/rp b/locale/pl/rp
new file mode 100755
index 00000000..80ab8edd
--- /dev/null
+++ b/locale/pl/rp
@@ -0,0 +1,181 @@
+$self{charset} = 'ISO-8859-2';
+
+$self{texts} = {
+ 'AP Aging' => 'Plan P³atno¶ci Zobowi±zañ',
+ 'AR Aging' => 'Plan P³atno¶ci Nale¿no¶ci',
+ 'Account' => 'Konto',
+ 'Account Number' => 'Numer Konta',
+ 'Accounting Menu' => 'Menu Ksiêgowo¶ci',
+ 'Accounts' => 'Konta',
+ 'Accrual' => 'Memoria³owa',
+ 'Address' => 'Adres',
+ 'All Accounts' => 'Wszystkie Konta',
+ 'Amount' => 'Kwota',
+ 'Apr' => 'Kwiecieñ',
+ 'April' => 'Kwiecieñ',
+ 'Attachment' => 'Za³±cznik',
+ 'Aug' => 'Sierpieñ',
+ 'August' => 'Sierpieñ',
+ 'Balance' => 'Saldo',
+ 'Balance Sheet' => 'Bilans',
+ 'Bcc' => 'Bcc',
+ 'Cash' => 'Kasa',
+ 'Cc' => 'Cc',
+ 'Compare to' => 'Porównaj z',
+ 'Continue' => 'Kontynuj',
+ 'Copies' => 'Kopie',
+ 'Credit' => 'Kredyt',
+ 'Curr' => 'Waluta',
+ 'Current' => 'Bie¿±cy',
+ 'Current Earnings' => 'Acdtualny Dochód',
+ 'Customer' => 'Odbiorca',
+ 'Customer not on file!' => 'Brak Odbiorcy w bazie danych',
+ 'Date' => 'Data',
+ 'Debit' => 'Debet',
+ 'Dec' => 'Grudzieñ',
+ 'December' => 'Grudzieñ',
+ 'Decimalplaces' => 'Miejsca Dziesiêtne',
+ 'Department' => 'Wydzia³',
+ 'Description' => 'Opis',
+ 'Detail' => 'Wyszczególnienie',
+ 'Due Date' => 'Termin P³atno¶ci',
+ 'E-mail' => 'E-mail',
+ 'E-mail Statement to' => 'E-mail Wykaz do',
+ 'E-mail address missing!' => 'Brak adresu E-mail!',
+ 'Feb' => 'Luty',
+ 'February' => 'Luty',
+ 'From' => 'Od',
+ 'GIFI' => 'GIFI',
+ 'Heading' => 'Nag³ówek',
+ 'ID' => 'Identyfikator',
+ 'In-line' => 'W³±czony',
+ 'Include Exchange Rate Difference' => 'Za³±cz Ró¿nice Wymiany Walut',
+ 'Include in Report' => 'Do³±cz w Sprawozdaniu',
+ 'Income Statement' => 'Rachunek Zysków i Strat',
+ 'Invoice' => 'Faktura',
+ 'Jan' => 'Styczeñ',
+ 'January' => 'Styczeñ',
+ 'Jul' => 'Lipiec',
+ 'July' => 'Lipiec',
+ 'Jun' => 'Czerwiec',
+ 'June' => 'Czerwiec',
+ 'Language' => 'Jêzyk',
+ 'Mar' => 'Marzec',
+ 'March' => 'Marzec',
+ 'May' => 'Maj',
+ 'May ' => 'Maj',
+ 'Memo' => 'Notatka',
+ 'Message' => 'Wiadomo¶æ',
+ 'Method' => 'Metoda',
+ 'Month' => 'Miesi±c',
+ 'N/A' => 'N/A',
+ 'Non-taxable Purchases' => 'Rejestr VAT - Zakupy',
+ 'Non-taxable Sales' => 'Rejestr VAT - Sprzeda¿',
+ 'Nothing selected!' => 'Nic nie zaznaczone!',
+ 'Nov' => 'Listopad',
+ 'November' => 'Listopad',
+ 'Number' => 'Numer Katalogu',
+ 'Oct' => 'Pa¿dziernik',
+ 'October' => 'Pa¿dziernik',
+ 'Order' => 'Zlecenie',
+ 'PDF' => 'PDF',
+ 'Payments' => 'Wyp³aty',
+ 'Period' => 'Okres',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Wydrukuj',
+ 'Project' => 'Projekt',
+ 'Project Number' => 'Numer Projektu',
+ 'Project Transactions' => 'Transakcje Projektów',
+ 'Project not on file!' => 'Brak Projektu w zbiorze danych!',
+ 'Quarter' => 'Kwarta³',
+ 'Receipts' => 'Wp³aty',
+ 'Reference' => 'Odno¶nik',
+ 'Report for' => 'Raport dla',
+ 'Salesperson' => 'Sprzedawca',
+ 'Screen' => 'Ekran',
+ 'Select all' => 'Wybierz wszystko',
+ 'Select from one of the names below' => 'Wybierz nazwê z poni¿szych',
+ 'Select from one of the projects below' => 'Wybierz z projektów',
+ 'Select postscript or PDF!' => 'Wybierz postscript lub PDF',
+ 'Sep' => 'Wrzesieñ',
+ 'September' => 'Wrzesieñ',
+ 'Source' => '¯ród³o',
+ 'Standard' => 'Standartowe',
+ 'Startdate' => 'Dzieñ Zatrudnienia',
+ 'Statement' => 'Wykaz',
+ 'Statement sent to' => 'Wykaz wys³any do',
+ 'Statements sent to printer!' => 'Wykaz wys³any do drukarki',
+ 'Subject' => 'Tre¶æ',
+ 'Subtotal' => 'Warto¶æ Netto',
+ 'Summary' => 'Skrót',
+ 'Tax' => 'Podatek',
+ 'Tax collected' => 'Rejestr VAT - Sprzeda¿',
+ 'Tax paid' => 'Rejestr VAT - Zakupy',
+ 'Till' => 'Kasa',
+ 'To' => 'do',
+ 'Total' => 'Warto¶æ Brutto',
+ 'Trial Balance' => 'Bilans Porównawczy',
+ 'Vendor' => 'Dostawca',
+ 'Vendor not on file!' => 'Brak Dostawcy w bazie danych',
+ 'Warning!' => 'Ostrze¿enie',
+ 'Year' => 'Rok',
+ 'as at' => 'na dzieñ',
+ 'for Period' => 'za Okres',
+ 'sent' => 'wys³ane',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'kontynuj' => 'continue',
+ 'e_mail' => 'e_mail',
+ 'wydrukuj' => 'print',
+ 'wybierz_wszystko' => 'select_all',
+};
+
+1;
+
diff --git a/locale/pt/COPYING b/locale/pt/COPYING
new file mode 100755
index 00000000..23580cf8
--- /dev/null
+++ b/locale/pt/COPYING
@@ -0,0 +1,23 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2001
+#
+# Portugese texts:
+#
+# Author: Paulo Rodrigues <prodrigues@vianetworks.pt>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/pt/LANGUAGE b/locale/pt/LANGUAGE
new file mode 100755
index 00000000..3d5f0c17
--- /dev/null
+++ b/locale/pt/LANGUAGE
@@ -0,0 +1 @@
+Portuguese
diff --git a/locale/pt/aa b/locale/pt/aa
new file mode 100755
index 00000000..74a8a337
--- /dev/null
+++ b/locale/pt/aa
@@ -0,0 +1,129 @@
+$self{texts} = {
+ 'AP Transaction' => 'Transacção Fornecedores',
+ 'AP Transactions' => 'Transacções Fornecedores',
+ 'AR Transaction' => 'Transacção Clientes',
+ 'AR Transactions' => 'Transacções Clientes',
+ 'Account' => 'Conta',
+ 'Accounting Menu' => 'Menu de Contabilidade',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Total em dívida',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => 'Tem a certeza que quer APAGAR a Transacção',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Cannot delete transaction!' => 'Não é possivel apagar a transacção',
+ 'Cannot post payment for a closed period!' => 'Não pode lançar pagamento em período fechado!',
+ 'Cannot post transaction for a closed period!' => 'Não é possivel lançar transacção para um periodo fechado!',
+ 'Cannot post transaction!' => 'Não é possivel lançar transacção',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Fechado',
+ 'Confirm!' => 'Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Limite de Crédito',
+ 'Curr' => 'Moeda',
+ 'Currency' => 'Moeda',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => 'Falta cliente!',
+ 'Date' => 'Data',
+ 'Date Paid' => 'Data de pagamento',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezembro',
+ 'Delete' => 'Remover',
+ 'Description' => 'Descrição',
+ 'Due Date' => 'Data de Vencimento',
+ 'Due Date missing!' => 'Falta Data de Vencimento!',
+ 'Employee' => 'Funcionário',
+ 'Exch' => 'Câmbio',
+ 'Exchange Rate' => 'Taxa de Câmbio',
+ 'Exchange rate for payment missing!' => 'Falta a taxa de câmbio para o pagamento!',
+ 'Exchange rate missing!' => 'Falta a taxa de câmbio!',
+ 'Feb' => 'Fev',
+ 'February' => 'Fevereiro',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir no Relatório',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Data de Factura',
+ 'Invoice Date missing!' => 'Data de Factura não encontrada!',
+ 'Invoice Number' => 'Número de Factura',
+ 'Jan' => 'Jan',
+ 'January' => 'Janeiro',
+ 'Jul' => 'Jul',
+ 'July' => 'Julho',
+ 'Jun' => 'Jun',
+ 'June' => 'Junho',
+ 'Mar' => 'Mar',
+ 'March' => 'Março',
+ 'May' => 'Mai',
+ 'May ' => 'Maio',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembro',
+ 'Oct' => 'Out',
+ 'October' => 'Outubro',
+ 'Open' => 'Abrir',
+ 'Order' => 'Encomenda',
+ 'Order Number' => 'Encomenda Número',
+ 'Paid' => 'Total Pago',
+ 'Payment date missing!' => 'Falta Data de Pagamento!',
+ 'Payments' => 'Pagamentos',
+ 'Post' => 'Processar',
+ 'Post as new' => 'Processar como novo',
+ 'Print' => 'Imprimir',
+ 'Project' => 'Projecto',
+ 'Receipt' => 'Recibo',
+ 'Remaining' => 'Sobram',
+ 'Sep' => 'Set',
+ 'September' => 'Setembro',
+ 'Ship to' => 'Expedir para',
+ 'Ship via' => 'Expedir via',
+ 'Source' => 'Origem',
+ 'Subtotal' => 'Sub-total',
+ 'Tax' => 'Imposto',
+ 'Tax Included' => 'Impostos incluídos',
+ 'To' => 'Até',
+ 'Total' => 'Total',
+ 'Transaction deleted!' => 'Transacção apagada',
+ 'Transaction posted!' => 'Transacção processada',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Fornecedor',
+ 'Vendor missing!' => 'Falta fornecedor',
+ 'Yes' => 'Sim',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'transacção_fornecedores' => 'ap_transaction',
+ 'transacção_clientes' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'remover' => 'delete',
+ 'processar' => 'post',
+ 'processar_como_novo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'expedir_para' => 'ship_to',
+ 'actualizar' => 'update',
+ 'sim' => 'yes',
+};
+
+1;
+
diff --git a/locale/pt/admin b/locale/pt/admin
new file mode 100755
index 00000000..21b8edd8
--- /dev/null
+++ b/locale/pt/admin
@@ -0,0 +1,133 @@
+$self{texts} = {
+ 'Access Control' => 'Controlo de Acessos',
+ 'Accounting' => 'Contabilidade',
+ 'Add User' => 'Novo Utilizador',
+ 'Address' => 'Endereço',
+ 'Administration' => 'Administração',
+ 'Administrator' => 'Administrador',
+ 'All Datasets up to date!' => 'Todos os Datasets estão Actualizados!',
+ 'Cannot create Lock!' => 'Cannot create Lock!',
+ 'Change Admin Password' => 'Mudar Password Admin',
+ 'Change Password' => 'Mudar Password',
+ 'Click on login name to edit!' => 'Clique no login para editar!',
+ 'Company' => 'Companhia',
+ 'Connect to' => 'Ligar a',
+ 'Continue' => 'Continuar',
+ 'Create Chart of Accounts' => 'Criar Plano de Contas',
+ 'Create Dataset' => 'Criar Dataset',
+ 'DBI not installed!' => 'DBI não está instalado!',
+ 'Database' => 'Base de Dados',
+ 'Database Administration' => 'Administração de Base de Dados',
+ 'Database Driver not checked!' => 'Não seleccionou Driver Base de Dados',
+ 'Database User missing!' => 'Não existe Utilizador de Base de Dados',
+ 'Dataset' => 'Dataset',
+ 'Dataset missing!' => 'Dataset não existe!',
+ 'Dataset updated!' => 'Dataset actualizado!',
+ 'Date Format' => 'Formato de Data',
+ 'Delete' => 'Remover',
+ 'Delete Dataset' => 'Remover Dataset',
+ 'Directory' => 'Directoria',
+ 'Driver' => 'Driver',
+ 'E-mail' => 'E-Mail',
+ 'Edit User' => 'Editar Utilizador',
+ 'Existing Datasets' => 'Datasets Existentes',
+ 'Fax' => 'Fax',
+ 'Host' => 'Host',
+ 'Hostname missing!' => 'Não indicou Hostname!',
+ 'Language' => 'Língua',
+ 'Lock System' => 'Lock System',
+ 'Lockfile created!' => 'Lockfile created!',
+ 'Lockfile removed!' => 'Lockfile removed!',
+ 'Login' => 'Login',
+ 'Login name missing!' => 'Login name missing!',
+ 'Logout' => 'Logout',
+ 'Multibyte Encoding' => 'Multibyte Encoding',
+ 'Name' => 'Nome',
+ 'New Templates' => 'Novos Modelos',
+ 'No Database Drivers available!' => 'Não há Drivers de Base de Dados disponiveis!',
+ 'No Dataset selected!' => 'Não seleccionou Dataset!',
+ 'Nothing to delete!' => 'Nada para remover!',
+ 'Number Format' => 'Formato numérico',
+ 'Oracle Database Administration' => 'Administração Base de Dados Oracle',
+ 'Password' => 'Password',
+ 'Password changed!' => 'Password alterada',
+ 'Pg Database Administration' => 'Administração Base de Dados Postgres',
+ 'PgPP Database Administration' => 'PgPP Database Administration',
+ 'Phone' => 'Tel',
+ 'Port' => 'Port',
+ 'Port missing!' => 'Falta o port!',
+ 'Printer' => 'Impressora',
+ 'Save' => 'Guardar',
+ 'Setup Templates' => 'Configurar Modelos',
+ 'Signature' => 'Assinatura',
+ 'Stylesheet' => 'Stylesheet',
+ 'Templates' => 'Modelos',
+ 'The following Datasets are not in use and can be deleted' => 'Os seguintes Datasets estão em uso e não podem ser removidos',
+ 'The following Datasets need to be updated' => 'Os seguintes Datasets necessitam ser actualizados',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Esta é uma validação preliminar. Nada será criado nem removido neste ponto!',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Para adicionar um utilizador a um grupo, edite um nome, mude o login e guarde. O novo utilizador com as mesmas variáveis será guardado sob o novo login',
+ 'Unlock System' => 'Unlock System',
+ 'Update Dataset' => 'Actualizar Dataset',
+ 'Use Templates' => 'Usar Templates',
+ 'User' => 'Utilizador',
+ 'User deleted!' => 'Utilizador removido',
+ 'User saved!' => 'Utilizador guardado',
+ 'Version' => 'Versão',
+ 'does not exist' => 'não existe',
+ 'is already a member!' => 'já é membro!',
+ 'localhost' => 'localhost',
+ 'successfully created!' => 'criado com sucesso!',
+ 'successfully deleted!' => 'removido com sucesso!',
+ 'website' => 'website',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'novo_utilizador' => 'add_user',
+ 'mudar_password_admin' => 'change_admin_password',
+ 'mudar_password' => 'change_password',
+ 'continuar' => 'continue',
+ 'criar_dataset' => 'create_dataset',
+ 'remover' => 'delete',
+ 'remover_dataset' => 'delete_dataset',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'logout' => 'logout',
+ 'administração_base_de_dados_oracle' => 'oracle_database_administration',
+ 'administração_base_de_dados_postgres' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'guardar' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'actualizar_dataset' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/pt/all b/locale/pt/all
new file mode 100755
index 00000000..90713528
--- /dev/null
+++ b/locale/pt/all
@@ -0,0 +1,890 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+
+$self{texts} = {
+ 'A' => '',
+ 'AP' => 'Fornecedores',
+ 'AP Aging' => 'Idade Saldos Fornecedores',
+ 'AP Outstanding' => '',
+ 'AP Transaction' => 'Transacção Fornecedores',
+ 'AP Transactions' => 'Transacções Fornecedores',
+ 'AR' => 'Clientes',
+ 'AR Aging' => 'Idade Saldos Clientes',
+ 'AR Outstanding' => '',
+ 'AR Transaction' => 'Transacção Clientes',
+ 'AR Transactions' => 'Transacções Clientes',
+ 'AR/AP' => '',
+ 'About' => 'Acerca',
+ 'Above' => '',
+ 'Access Control' => 'Controlo de Acessos',
+ 'Access Denied!' => '',
+ 'Account' => 'Conta',
+ 'Account Number' => 'Número da Conta',
+ 'Account Number missing!' => 'Número da Conta não encontrado!',
+ 'Account Type' => 'Tipo de Conta',
+ 'Account Type missing!' => 'Tipo de Conta não encontrado!',
+ 'Account deleted!' => 'Conta apagada',
+ 'Account does not exist!' => '',
+ 'Account saved!' => 'Conta guardada',
+ 'Accounting' => 'Contabilidade',
+ 'Accounting Menu' => 'Menu de Contabilidade',
+ 'Accounts' => 'Contas',
+ 'Accrual' => '',
+ 'Activate Audit trail' => '',
+ 'Active' => 'Activo',
+ 'Add' => 'Novo',
+ 'Add AP Transaction' => '',
+ 'Add AR Transaction' => '',
+ 'Add Account' => 'Nova Conta',
+ 'Add Assembly' => 'Novo Conjunto',
+ 'Add Business' => '',
+ 'Add Cash Transfer Transaction' => '',
+ 'Add Customer' => 'Novo Cliente',
+ 'Add Deduction' => '',
+ 'Add Department' => '',
+ 'Add Employee' => '',
+ 'Add Exchange Rate' => '',
+ 'Add GIFI' => 'Adicionar CFOP',
+ 'Add General Ledger Transaction' => 'Nova Transacção Livro Razão',
+ 'Add Group' => '',
+ 'Add Job' => '',
+ 'Add Labor/Overhead' => '',
+ 'Add Language' => '',
+ 'Add POS Invoice' => '',
+ 'Add Part' => 'Novo Produto',
+ 'Add Pricegroup' => '',
+ 'Add Project' => 'Novo Projecto',
+ 'Add Purchase Order' => 'Nova Ordem de Compra',
+ 'Add Quotation' => '',
+ 'Add Request for Quotation' => '',
+ 'Add SIC' => '',
+ 'Add Sales Invoice' => 'Nova Factura de Venda',
+ 'Add Sales Order' => 'Nova Encomenda de Cliente',
+ 'Add Service' => 'Novo Serviço',
+ 'Add Timecard' => '',
+ 'Add Transaction' => 'Nova Transacção',
+ 'Add User' => 'Novo Utilizador',
+ 'Add Vendor' => 'Novo Fornecedor',
+ 'Add Vendor Invoice' => 'Nova Factura de Compra',
+ 'Add Warehouse' => '',
+ 'Address' => 'Endereço',
+ 'Administration' => 'Administração',
+ 'Administrator' => 'Administrador',
+ 'After Deduction' => '',
+ 'All' => 'Todos',
+ 'All Accounts' => '',
+ 'All Datasets up to date!' => 'Todos os Datasets estão Actualizados!',
+ 'All Items' => '',
+ 'Allowances' => '',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Total em dívida',
+ 'Amount missing!' => '',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => 'Tem a certeza que quer APAGAR a Factura Número',
+ 'Are you sure you want to delete Order Number' => 'Confirma a remoção da Encomenda?',
+ 'Are you sure you want to delete Quotation Number' => '',
+ 'Are you sure you want to delete Timecard for' => '',
+ 'Are you sure you want to delete Transaction' => 'Tem a certeza que quer APAGAR a Transacção',
+ 'Are you sure you want to remove the marked entries from the queue?' => '',
+ 'Assemblies' => 'Conjuntos',
+ 'Assemblies restocked!' => '',
+ 'Assembly' => '',
+ 'Assembly stocked!' => '',
+ 'Asset' => 'Activo',
+ 'Attachment' => 'Attachment',
+ 'Audit Control' => 'Controlo de Auditoria',
+ 'Audit trail disabled' => '',
+ 'Audit trail enabled' => '',
+ 'Audit trail removed up to' => '',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Average Cost' => '',
+ 'Avg Cost' => '',
+ 'BIC' => '',
+ 'BOM' => 'BOM',
+ 'Backup' => 'Backup',
+ 'Backup sent to' => 'Backup enviado para',
+ 'Balance' => 'Saldo',
+ 'Balance Sheet' => 'Folha de Balanço',
+ 'Based on' => '',
+ 'Bcc' => 'Bcc',
+ 'Before Deduction' => '',
+ 'Beginning Balance' => '',
+ 'Below' => '',
+ 'Billing Address' => '',
+ 'Bin' => 'Bin',
+ 'Bin List' => '',
+ 'Bin Lists' => '',
+ 'Books are open' => 'Livros Abertos',
+ 'Break' => '',
+ 'Business' => '',
+ 'Business Number' => 'Número de negócio',
+ 'Business deleted!' => '',
+ 'Business saved!' => '',
+ 'C' => '',
+ 'COGS' => 'Custo de Vendas',
+ 'COGS account does not exist!' => '',
+ 'Cannot add timecard for a completed job!' => '',
+ 'Cannot change timecard for a completed job!' => '',
+ 'Cannot create Assembly' => '',
+ 'Cannot create Labor' => '',
+ 'Cannot create Lock!' => 'Cannot create Lock!',
+ 'Cannot create Part' => '',
+ 'Cannot create Service' => '',
+ 'Cannot delete Timecard!' => '',
+ 'Cannot delete account!' => 'Não é possivel apagar a conta!',
+ 'Cannot delete customer!' => 'Não é possivel apagar o cliente!',
+ 'Cannot delete default account!' => 'Não é possível apagar a conta por defeito!',
+ 'Cannot delete invoice!' => 'Não é possivel apagar a factura!',
+ 'Cannot delete item!' => 'Não é possivel apagar o item!',
+ 'Cannot delete order!' => 'Não é possivel apagar a encomenda!',
+ 'Cannot delete quotation!' => '',
+ 'Cannot delete transaction!' => 'Não é possivel apagar a transacção',
+ 'Cannot delete vendor!' => 'Não é possivel apagar o fornecedor',
+ 'Cannot post Payment!' => '',
+ 'Cannot post Receipt!' => '',
+ 'Cannot post invoice for a closed period!' => 'Não pode lançar factura em período fechado!',
+ 'Cannot post invoice!' => 'Não é possivel lançar factura!',
+ 'Cannot post payment for a closed period!' => 'Não pode lançar pagamento em período fechado!',
+ 'Cannot post transaction for a closed period!' => 'Não é possivel lançar transacção para um periodo fechado!',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => '',
+ 'Cannot post transaction!' => 'Não é possivel lançar transacção',
+ 'Cannot remove files!' => '',
+ 'Cannot save account!' => 'Não é possível guardar conta!',
+ 'Cannot save defaults!' => '',
+ 'Cannot save order!' => 'Não é possível guardar encomenda!',
+ 'Cannot save preferences!' => 'Não é possível guardar preferências!',
+ 'Cannot save quotation!' => '',
+ 'Cannot save timecard for a closed period!' => '',
+ 'Cannot save timecard!' => '',
+ 'Cannot set account for more than one of AR, AP or IC' => '',
+ 'Cannot set multiple options for' => '',
+ 'Cannot set multiple options for Item' => '',
+ 'Cannot stock Assembly!' => '',
+ 'Cannot stock assemblies!' => '',
+ 'Cash' => 'Dinheiro',
+ 'Cc' => 'Cc',
+ 'Change' => '',
+ 'Change Admin Password' => 'Mudar Password Admin',
+ 'Change Password' => 'Mudar Password',
+ 'Charge' => '',
+ 'Chart of Accounts' => 'Plano de Contas',
+ 'Check' => 'Cheque',
+ 'Check Inventory' => '',
+ 'Checks' => '',
+ 'City' => '',
+ 'Cleared' => '',
+ 'Click on login name to edit!' => 'Clique no login para editar!',
+ 'Clocked' => '',
+ 'Close Books up to' => 'Fechar Livros até',
+ 'Closed' => 'Fechado',
+ 'Code' => '',
+ 'Code missing!' => '',
+ 'Company' => 'Companhia',
+ 'Company Name' => '',
+ 'Compare to' => 'Comparar com',
+ 'Completed' => '',
+ 'Components' => '',
+ 'Confirm' => '',
+ 'Confirm!' => 'Confirmar!',
+ 'Connect to' => 'Ligar a',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Contra' => '',
+ 'Copies' => 'Cópias',
+ 'Copy to COA' => 'Copiar para Plano de Contas',
+ 'Cost' => '',
+ 'Cost Center' => '',
+ 'Could not save pricelist!' => '',
+ 'Could not save!' => '',
+ 'Could not transfer Inventory!' => '',
+ 'Country' => '',
+ 'Create Chart of Accounts' => 'Criar Plano de Contas',
+ 'Create Dataset' => 'Criar Dataset',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Limite de Crédito',
+ 'Curr' => 'Moeda',
+ 'Currency' => 'Moeda',
+ 'Current' => '',
+ 'Current Earnings' => '',
+ 'Customer' => 'Cliente',
+ 'Customer History' => '',
+ 'Customer Number' => '',
+ 'Customer deleted!' => 'Cliente apagado!',
+ 'Customer missing!' => 'Falta cliente!',
+ 'Customer not on file!' => 'Cliente inexistente!',
+ 'Customer saved!' => 'Cliente guardado!',
+ 'Customers' => 'Clientes',
+ 'DBI not installed!' => 'DBI não está instalado!',
+ 'DOB' => '',
+ 'Database' => 'Base de Dados',
+ 'Database Administration' => 'Administração de Base de Dados',
+ 'Database Driver not checked!' => 'Não seleccionou Driver Base de Dados',
+ 'Database Host' => 'Servidor de Base de Dados',
+ 'Database User missing!' => 'Não existe Utilizador de Base de Dados',
+ 'Dataset' => 'Dataset',
+ 'Dataset is newer than version!' => '',
+ 'Dataset missing!' => 'Dataset não existe!',
+ 'Dataset updated!' => 'Dataset actualizado!',
+ 'Date' => 'Data',
+ 'Date Format' => 'Formato de Data',
+ 'Date Paid' => 'Data de pagamento',
+ 'Date Received' => '',
+ 'Date missing!' => 'Falta a data!',
+ 'Date received missing!' => '',
+ 'Date worked' => '',
+ 'Day' => '',
+ 'Day(s)' => '',
+ 'Days' => '',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezembro',
+ 'Decimalplaces' => 'Casas decimais',
+ 'Decrease' => '',
+ 'Deduct after' => '',
+ 'Deduction deleted!' => '',
+ 'Deduction saved!' => '',
+ 'Deductions' => '',
+ 'Default Template' => '',
+ 'Defaults' => '',
+ 'Defaults saved!' => '',
+ 'Delete' => 'Remover',
+ 'Delete Account' => 'Apagar Conta',
+ 'Delete Dataset' => 'Remover Dataset',
+ 'Delete Schedule' => '',
+ 'Deleting a language will also delete the templates for the language' => '',
+ 'Delivery Date' => 'Data de entrega',
+ 'Department' => '',
+ 'Department deleted!' => '',
+ 'Department saved!' => '',
+ 'Departments' => '',
+ 'Deposit' => 'Depósito',
+ 'Description' => 'Descrição',
+ 'Description Translations' => '',
+ 'Description missing!' => '',
+ 'Detail' => '',
+ 'Difference' => 'Diferença',
+ 'Directory' => 'Directoria',
+ 'Discount' => 'Desconto',
+ 'Done' => 'Pronto',
+ 'Drawing' => '',
+ 'Driver' => 'Driver',
+ 'Dropdown Limit' => '',
+ 'Due Date' => 'Data de Vencimento',
+ 'Due Date missing!' => 'Falta Data de Vencimento!',
+ 'E-mail' => 'E-Mail',
+ 'E-mail Statement to' => '',
+ 'E-mail address missing!' => 'Falta Endereço de E-mail!',
+ 'E-mail message' => '',
+ 'E-mailed' => '',
+ 'Edit' => 'Editar',
+ 'Edit AP Transaction' => '',
+ 'Edit AR Transaction' => '',
+ 'Edit Account' => 'Editar Conta',
+ 'Edit Assembly' => 'Editar Conjunto',
+ 'Edit Business' => '',
+ 'Edit Cash Transfer Transaction' => '',
+ 'Edit Customer' => '',
+ 'Edit Deduction' => '',
+ 'Edit Department' => '',
+ 'Edit Description Translations' => '',
+ 'Edit Employee' => '',
+ 'Edit GIFI' => 'Editar CFOP',
+ 'Edit General Ledger Transaction' => 'Editar Transacção Livro Razão',
+ 'Edit Group' => '',
+ 'Edit Job' => '',
+ 'Edit Labor/Overhead' => '',
+ 'Edit Language' => '',
+ 'Edit POS Invoice' => '',
+ 'Edit Part' => 'Editar Produto',
+ 'Edit Preferences for' => 'Editar Preferências para',
+ 'Edit Pricegroup' => '',
+ 'Edit Project' => 'Editar Projecto',
+ 'Edit Purchase Order' => 'Editar Ordem de Compra',
+ 'Edit Quotation' => '',
+ 'Edit Request for Quotation' => '',
+ 'Edit SIC' => '',
+ 'Edit Sales Invoice' => 'Editar Factura de Venda',
+ 'Edit Sales Order' => 'Editar Encomenda',
+ 'Edit Service' => 'Editar Serviço',
+ 'Edit Template' => 'Editar Modelo',
+ 'Edit Timecard' => '',
+ 'Edit User' => 'Editar Utilizador',
+ 'Edit Vendor' => '',
+ 'Edit Vendor Invoice' => 'Editar Factura de Compra',
+ 'Edit Warehouse' => '',
+ 'Employee' => 'Funcionário',
+ 'Employee Name' => '',
+ 'Employee Number' => '',
+ 'Employee deleted!' => '',
+ 'Employee pays' => '',
+ 'Employee saved!' => '',
+ 'Employees' => '',
+ 'Employer' => '',
+ 'Employer pays' => '',
+ 'Enddate' => '',
+ 'Ends' => '',
+ 'Enforce transaction reversal for all dates' => 'Forçar anulação das transacções para todas as datas',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Indique as suas moedas nativa e estrangeiras usando os códigos de 3 letras (p.ex. EUR:USD:CAD)',
+ 'Equity' => 'Capital',
+ 'Every' => '',
+ 'Excempt age <' => '',
+ 'Exch' => 'Câmbio',
+ 'Exchange Rate' => 'Taxa de Câmbio',
+ 'Exchange rate for payment missing!' => 'Falta a taxa de câmbio para o pagamento!',
+ 'Exchange rate missing!' => 'Falta a taxa de câmbio!',
+ 'Existing Datasets' => 'Datasets Existentes',
+ 'Expense' => 'Despesa',
+ 'Expense account does not exist!' => '',
+ 'Expense/Asset' => 'Despesa/Activo',
+ 'Extended' => '',
+ 'FX' => '',
+ 'Failed to save order!' => '',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Fev',
+ 'February' => 'Fevereiro',
+ 'For' => '',
+ 'Foreign Exchange Gain' => 'Diferenças de Câmbio - Proveitos',
+ 'Foreign Exchange Loss' => 'Diferenças de Câmbio - Prejuizos',
+ 'Friday' => '',
+ 'From' => 'De',
+ 'From Warehouse' => '',
+ 'GIFI' => 'CFOP - Código Fiscal da Operação',
+ 'GIFI deleted!' => 'CFOP apagado',
+ 'GIFI missing!' => 'Falta CFOP!',
+ 'GIFI saved!' => 'CFOP guardado',
+ 'GL' => '',
+ 'GL Reference Number' => '',
+ 'GL Transaction' => 'Transacção Livro Razão',
+ 'General Ledger' => 'Livro Razão',
+ 'Generate' => '',
+ 'Generate Orders' => '',
+ 'Generate Purchase Orders' => '',
+ 'Generate Purchase Orders from Sales Order' => '',
+ 'Generate Sales Order' => '',
+ 'Generate Sales Order from Purchase Orders' => '',
+ 'Generate Sales Orders' => '',
+ 'Goods & Services' => 'Bens e Serviços',
+ 'Group' => '',
+ 'Group Items' => '',
+ 'Group Translations' => '',
+ 'Group deleted!' => '',
+ 'Group missing!' => '',
+ 'Group saved!' => '',
+ 'Groups' => '',
+ 'HR' => '',
+ 'HTML Templates' => 'Templates HTML',
+ 'Heading' => 'Cabeçalho',
+ 'History' => '',
+ 'Home Phone' => '',
+ 'Host' => 'Host',
+ 'Hostname missing!' => 'Não indicou Hostname!',
+ 'IBAN' => '',
+ 'ID' => 'ID',
+ 'Image' => 'Imagem',
+ 'In-line' => 'Inline',
+ 'Inactive' => '',
+ 'Include Exchange Rate Difference' => '',
+ 'Include Payment' => '',
+ 'Include in Report' => 'Incluir no Relatório',
+ 'Include in drop-down menus' => 'Incluir nos menus drop-down',
+ 'Income' => '',
+ 'Income Statement' => 'Estado de Receitas',
+ 'Income account does not exist!' => '',
+ 'Incorrect Dataset version!' => 'Versão Dataset incorrecta!',
+ 'Increase' => '',
+ 'Individual Items' => 'Produtos Individuais',
+ 'Internal Notes' => '',
+ 'Inventory' => 'Inventário',
+ 'Inventory account does not exist!' => '',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Quantidade em Stock tem de ser zero para poder declarar este conjunto obsoleto!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Quantidade em Stock tem de ser zero para poder declarar esta peça obsoleta!',
+ 'Inventory saved!' => '',
+ 'Inventory transferred!' => '',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Data de Factura',
+ 'Invoice Date missing!' => 'Data de Factura não encontrada!',
+ 'Invoice Number' => 'Número de Factura',
+ 'Invoice Number missing!' => 'Número de Factura não encontrado!',
+ 'Invoice deleted!' => 'Factura apagada',
+ 'Invoices' => 'Facturas',
+ 'Is this a summary account to record' => 'Esta é uma conta sumária a registar',
+ 'Item already on pricelist!' => '',
+ 'Item deleted!' => 'Item apagado',
+ 'Item not on file!' => 'Item não está no arquivo!',
+ 'Items' => '',
+ 'Jan' => 'Jan',
+ 'January' => 'Janeiro',
+ 'Job' => '',
+ 'Job Name' => '',
+ 'Job Number' => '',
+ 'Job Number missing!' => '',
+ 'Job deleted!' => '',
+ 'Job saved!' => '',
+ 'Jobs' => '',
+ 'Jul' => 'Jul',
+ 'July' => 'Julho',
+ 'Jun' => 'Jun',
+ 'June' => 'Junho',
+ 'LaTeX Templates' => 'Modelos LaTeX',
+ 'Labor Code' => '',
+ 'Labor/Overhead' => '',
+ 'Language' => 'Língua',
+ 'Language deleted!' => '',
+ 'Language saved!' => '',
+ 'Languages' => '',
+ 'Languages not defined!' => '',
+ 'Last Cost' => '',
+ 'Last Numbers & Default Accounts' => 'Últimos números e Contas por defeito',
+ 'Lead' => '',
+ 'Leadtime' => '',
+ 'Leave host and port field empty unless you want to make a remote connection.' => 'Não indique host nem port, a não ser que deseje efectuar uma ligação remota',
+ 'Liability' => 'Passivo',
+ 'Licensed to' => 'Licenciado a',
+ 'Line Total' => 'Total da Linha',
+ 'Link' => 'Ligar',
+ 'Link Accounts' => 'Ligar Contas',
+ 'List' => '',
+ 'List Accounts' => 'Listar Contas',
+ 'List Businesses' => '',
+ 'List Departments' => '',
+ 'List GIFI' => 'Listar CFOP',
+ 'List Languages' => '',
+ 'List Price' => 'Listar Preço',
+ 'List Projects' => '',
+ 'List SIC' => '',
+ 'List Transactions' => 'Listar Transacções',
+ 'List Warehouses' => '',
+ 'Lock System' => 'Lock System',
+ 'Lockfile created!' => 'Lockfile created!',
+ 'Lockfile removed!' => 'Lockfile removed!',
+ 'Login' => 'Login',
+ 'Login name missing!' => 'Login name missing!',
+ 'Logout' => 'Logout',
+ 'Make' => 'Marca',
+ 'Manager' => '',
+ 'Mar' => 'Mar',
+ 'March' => 'Março',
+ 'Marked entries printed!' => '',
+ 'Markup' => '',
+ 'Maximum' => '',
+ 'May' => 'Mai',
+ 'May ' => 'Maio',
+ 'Memo' => '',
+ 'Menu Width' => '',
+ 'Message' => 'Mensagem',
+ 'Method' => '',
+ 'Microfiche' => 'Microficha',
+ 'Model' => 'Modelo',
+ 'Monday' => '',
+ 'Month' => '',
+ 'Month(s)' => '',
+ 'Months' => '',
+ 'Multibyte Encoding' => 'Multibyte Encoding',
+ 'N/A' => 'N/D',
+ 'Name' => 'Nome',
+ 'Name missing!' => 'Falta o nome!',
+ 'New Templates' => 'Novos Modelos',
+ 'New Window' => '',
+ 'Next' => '',
+ 'Next Date' => '',
+ 'Next Number' => '',
+ 'No' => 'Não',
+ 'No Database Drivers available!' => 'Não há Drivers de Base de Dados disponiveis!',
+ 'No Dataset selected!' => 'Não seleccionou Dataset!',
+ 'No Employees on file!' => '',
+ 'No Labor codes on file!' => '',
+ 'No email address for' => 'Não existe endereço de email para',
+ 'No open Jobs!' => '',
+ 'No open Projects!' => '',
+ 'No.' => '',
+ 'Non-taxable' => '',
+ 'Non-taxable Purchases' => '',
+ 'Non-taxable Sales' => '',
+ 'Non-tracking Items' => '',
+ 'Notes' => 'Notas',
+ 'Nothing entered!' => '',
+ 'Nothing selected!' => 'Nada seleccionado',
+ 'Nothing to delete!' => 'Nada para remover!',
+ 'Nothing to print!' => '',
+ 'Nothing to transfer!' => '',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembro',
+ 'Number' => 'Número',
+ 'Number Format' => 'Formato numérico',
+ 'Number missing in Row' => 'Falta numero na Linha',
+ 'O' => '',
+ 'OH' => '',
+ 'Obsolete' => 'Obsoleto',
+ 'Oct' => 'Out',
+ 'October' => 'Outubro',
+ 'On Hand' => 'Em Stock',
+ 'Open' => 'Abrir',
+ 'Oracle Database Administration' => 'Administração Base de Dados Oracle',
+ 'Order' => 'Encomenda',
+ 'Order Date' => 'Data da Encomenda',
+ 'Order Date missing!' => 'Falta data da Encomenda',
+ 'Order Entry' => 'Encomendas de Clientes',
+ 'Order Number' => 'Encomenda Número',
+ 'Order Number missing!' => 'Falta numero da Encomenda!',
+ 'Order deleted!' => 'Encomenda apagada',
+ 'Order generation failed!' => '',
+ 'Order saved!' => 'Encomenda guardada',
+ 'Orders generated!' => '',
+ 'Orphaned' => 'Órfão',
+ 'Out of balance transaction!' => '',
+ 'Out of balance!' => '',
+ 'Outstanding' => '',
+ 'PDF' => 'PDF',
+ 'PO Number' => '',
+ 'POS' => '',
+ 'POS Invoice' => '',
+ 'Packing List' => 'Lista de Expedição',
+ 'Packing List Date missing!' => 'Falta Data da Lista de Expedição',
+ 'Packing List Number missing!' => 'Falta Numero de Lista de Expedição',
+ 'Packing Lists' => '',
+ 'Paid' => 'Total Pago',
+ 'Part' => 'Produto',
+ 'Part Number' => '',
+ 'Partnumber' => '',
+ 'Parts' => 'Produtos',
+ 'Password' => 'Password',
+ 'Password changed!' => 'Password alterada',
+ 'Password does not match!' => '',
+ 'Passwords do not match!' => '',
+ 'Payables' => 'Fornecedores',
+ 'Payment' => 'Pagamento',
+ 'Payment date missing!' => 'Falta Data de Pagamento!',
+ 'Payment posted!' => 'Pagamento processado',
+ 'Payments' => 'Pagamentos',
+ 'Payments posted!' => '',
+ 'Payroll Deduction' => '',
+ 'Period' => '',
+ 'Pg Database Administration' => 'Administração Base de Dados Postgres',
+ 'PgPP Database Administration' => 'PgPP Database Administration',
+ 'Phone' => 'Tel',
+ 'Pick List' => '',
+ 'Pick Lists' => '',
+ 'Port' => 'Port',
+ 'Port missing!' => 'Falta o port!',
+ 'Pos' => '',
+ 'Post' => 'Processar',
+ 'Post as new' => 'Processar como novo',
+ 'Posted!' => '',
+ 'Posting' => '',
+ 'Posting failed!' => '',
+ 'Postscript' => 'PostScript',
+ 'Preferences' => 'Preferências',
+ 'Preferences saved!' => 'Preferências Guardadas!',
+ 'Prepayment' => '',
+ 'Price' => 'Preço',
+ 'Pricegroup' => '',
+ 'Pricegroup deleted!' => '',
+ 'Pricegroup missing!' => '',
+ 'Pricegroup saved!' => '',
+ 'Pricegroups' => '',
+ 'Pricelist' => '',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => '',
+ 'Print and Post as new' => '',
+ 'Print and Save' => '',
+ 'Print and Save as new' => '',
+ 'Print and post as new' => '',
+ 'Print and save as new' => '',
+ 'Printed' => '',
+ 'Printer' => 'Impressora',
+ 'Printing' => '',
+ 'Printing ... ' => '',
+ 'Process Transactions' => '',
+ 'Production' => '',
+ 'Profit Center' => '',
+ 'Project' => 'Projecto',
+ 'Project Description Translations' => '',
+ 'Project Name' => '',
+ 'Project Number' => '',
+ 'Project Number missing!' => 'Falta o número do projecto',
+ 'Project Transactions' => '',
+ 'Project deleted!' => 'Projecto apagado',
+ 'Project not on file!' => 'Projecto não existe',
+ 'Project saved!' => 'Projecto guardado',
+ 'Project/Job Name' => '',
+ 'Project/Job Number' => '',
+ 'Projects' => 'Projectos',
+ 'Purchase Order' => 'Ordem de Compra',
+ 'Purchase Order Number' => '',
+ 'Purchase Orders' => 'Ordens de Compra',
+ 'Qty' => 'Qtd',
+ 'Quantity exceeds available units to stock!' => '',
+ 'Quarter' => '',
+ 'Quotation' => '',
+ 'Quotation ' => '',
+ 'Quotation Date' => '',
+ 'Quotation Date missing!' => '',
+ 'Quotation Number' => '',
+ 'Quotation Number missing!' => '',
+ 'Quotation deleted!' => '',
+ 'Quotations' => '',
+ 'R' => '',
+ 'RFQ' => '',
+ 'RFQ ' => '',
+ 'RFQ Number' => '',
+ 'RFQs' => '',
+ 'ROP' => 'Nível mínimo de stock',
+ 'Rate' => 'Taxa',
+ 'Rate missing!' => '',
+ 'Recd' => 'Recebido',
+ 'Receipt' => 'Recibo',
+ 'Receipt posted!' => '',
+ 'Receipts' => 'Recibos',
+ 'Receivables' => 'Clientes',
+ 'Receive' => '',
+ 'Receive Merchandise' => '',
+ 'Reconciliation' => 'Reconciliação',
+ 'Reconciliation Report' => '',
+ 'Record in' => 'Registar em',
+ 'Recurring Transaction' => '',
+ 'Recurring Transactions' => '',
+ 'Reference' => 'Referência',
+ 'Remaining' => 'Sobram',
+ 'Remove' => '',
+ 'Remove Audit trail up to' => '',
+ 'Removed spoolfiles!' => '',
+ 'Removing marked entries from queue ...' => '',
+ 'Repeat' => '',
+ 'Report for' => 'Relatório para',
+ 'Reports' => 'Relatórios',
+ 'Req' => '',
+ 'Request for Quotation' => '',
+ 'Request for Quotations' => '',
+ 'Required by' => 'Requerido por',
+ 'Retained Earnings' => 'Lucros Retidos',
+ 'Role' => '',
+ 'S' => '',
+ 'SIC' => '',
+ 'SIC deleted!' => '',
+ 'SIC saved!' => '',
+ 'SKU' => '',
+ 'SSN' => '',
+ 'Sale' => '',
+ 'Sales' => 'Vendas',
+ 'Sales Invoice' => 'Factura de Venda',
+ 'Sales Invoice ' => '',
+ 'Sales Invoice.' => '',
+ 'Sales Invoice/AR Transaction Number' => '',
+ 'Sales Invoices' => '',
+ 'Sales Order' => 'Encomenda de Venda',
+ 'Sales Order Number' => '',
+ 'Sales Orders' => 'Encomendas de Venda',
+ 'Sales Quotation Number' => '',
+ 'Salesperson' => '',
+ 'Saturday' => '',
+ 'Save' => 'Guardar',
+ 'Save Pricelist' => '',
+ 'Save Schedule' => '',
+ 'Save as new' => 'Guardar como novo',
+ 'Save to File' => 'Guardar em Ficheiro',
+ 'Saving' => '',
+ 'Schedule' => '',
+ 'Scheduled' => '',
+ 'Screen' => 'Ecran',
+ 'Search' => '',
+ 'Select' => '',
+ 'Select Customer' => '',
+ 'Select Vendor' => '',
+ 'Select a Printer!' => '',
+ 'Select a printer!' => '',
+ 'Select all' => 'Seleccionar todos',
+ 'Select from one of the items below' => 'Seleccione um dos items abaixo',
+ 'Select from one of the names below' => 'Seleccione um dos nomes abaixo',
+ 'Select from one of the projects below' => 'Seleccione um dos projectos abaixo',
+ 'Select items' => '',
+ 'Select payment' => '',
+ 'Select postscript or PDF!' => 'Seleccione PostScript ou PDF',
+ 'Select txt, postscript or PDF!' => '',
+ 'Sell' => '',
+ 'Sell Price' => 'Preço de Venda',
+ 'Send by E-Mail' => 'Enviar por Email',
+ 'Sending' => '',
+ 'Sep' => 'Set',
+ 'September' => 'Setembro',
+ 'Serial No.' => '',
+ 'Serial Number' => '',
+ 'Service' => 'Serviço',
+ 'Service Code' => '',
+ 'Service/Labor Code' => '',
+ 'Services' => 'Serviços',
+ 'Session Timeout' => '',
+ 'Session expired!' => '',
+ 'Setup Templates' => 'Configurar Modelos',
+ 'Ship' => 'Expedir',
+ 'Ship Merchandise' => '',
+ 'Ship to' => 'Expedir para',
+ 'Ship via' => 'Expedir via',
+ 'Shipping' => '',
+ 'Shipping Address' => '',
+ 'Shipping Date' => '',
+ 'Shipping Date missing!' => '',
+ 'Shipping Point' => '',
+ 'Short' => 'Curta',
+ 'Signature' => 'Assinatura',
+ 'Source' => 'Origem',
+ 'Spoolfile' => '',
+ 'Standard' => 'Padrão',
+ 'Standard Industrial Codes' => '',
+ 'Startdate' => '',
+ 'State' => '',
+ 'State/Province' => '',
+ 'Statement' => '',
+ 'Statement Balance' => '',
+ 'Statement sent to' => '',
+ 'Statements sent to printer!' => '',
+ 'Stock' => '',
+ 'Stock Assembly' => 'Conjunto em stock',
+ 'Stocking Date' => '',
+ 'Stylesheet' => 'Stylesheet',
+ 'Sub-contract GIFI' => '',
+ 'Subject' => 'Assunto',
+ 'Subtotal' => 'Sub-total',
+ 'Summary' => '',
+ 'Sunday' => '',
+ 'Supervisor' => '',
+ 'System' => 'Sistema',
+ 'System Defaults' => '',
+ 'Tax' => 'Imposto',
+ 'Tax Accounts' => 'Contas de Impostos',
+ 'Tax Included' => 'Impostos incluídos',
+ 'Tax Number' => '',
+ 'Tax Number / SSN' => '',
+ 'Tax collected' => 'Imposto recolhido',
+ 'Tax paid' => 'Imposto pago',
+ 'Taxable' => 'Sujeito a impostos',
+ 'Template saved!' => 'Modelo guardado',
+ 'Templates' => 'Modelos',
+ 'Terms' => 'Termos: A pronto',
+ 'Text' => '',
+ 'Text Templates' => '',
+ 'The following Datasets are not in use and can be deleted' => 'Os seguintes Datasets estão em uso e não podem ser removidos',
+ 'The following Datasets need to be updated' => 'Os seguintes Datasets necessitam ser actualizados',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Esta é uma validação preliminar. Nada será criado nem removido neste ponto!',
+ 'Thursday' => '',
+ 'Till' => '',
+ 'Time In' => '',
+ 'Time Out' => '',
+ 'Timecard' => '',
+ 'Timecard deleted!' => '',
+ 'Timecard saved!' => '',
+ 'Timecards' => '',
+ 'Times' => '',
+ 'To' => 'Até',
+ 'To Warehouse' => '',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Para adicionar um utilizador a um grupo, edite um nome, mude o login e guarde. O novo utilizador com as mesmas variáveis será guardado sob o novo login',
+ 'Top Level' => 'Nivel de topo',
+ 'Total' => 'Total',
+ 'Tracking Items' => '',
+ 'Trade Discount' => '',
+ 'Transaction' => '',
+ 'Transaction Date missing!' => 'Falta Data de transacção!',
+ 'Transaction Dates' => '',
+ 'Transaction deleted!' => 'Transacção apagada',
+ 'Transaction posted!' => 'Transacção processada',
+ 'Transaction reversal enforced for all dates' => 'Cancelamento de transacção forçado para todas as datas',
+ 'Transaction reversal enforced up to' => 'Cancelamento de transacção forçado até',
+ 'Transactions' => 'Transacções',
+ 'Transfer' => '',
+ 'Transfer Inventory' => '',
+ 'Transfer from' => '',
+ 'Transfer to' => '',
+ 'Translation' => '',
+ 'Translation deleted!' => '',
+ 'Translation not on file!' => '',
+ 'Translations' => '',
+ 'Translations saved!' => '',
+ 'Trial Balance' => 'Balancete',
+ 'Tuesday' => '',
+ 'Type of Business' => '',
+ 'Unit' => 'Unidade',
+ 'Unit of measure' => 'Unidade de medida',
+ 'Unlock System' => 'Unlock System',
+ 'Update' => 'Actualizar',
+ 'Update Dataset' => 'Actualizar Dataset',
+ 'Updated' => 'Actualizado',
+ 'Upgrading to Version' => '',
+ 'Use Templates' => 'Usar Templates',
+ 'User' => 'Utilizador',
+ 'User deleted!' => 'Utilizador removido',
+ 'User saved!' => 'Utilizador guardado',
+ 'Valid until' => '',
+ 'Vendor' => 'Fornecedor',
+ 'Vendor History' => '',
+ 'Vendor Invoice' => 'Factura de Compra',
+ 'Vendor Invoice ' => '',
+ 'Vendor Invoice.' => '',
+ 'Vendor Invoice/AP Transaction Number' => '',
+ 'Vendor Invoices' => '',
+ 'Vendor Number' => '',
+ 'Vendor deleted!' => 'Fornecedor apagado',
+ 'Vendor missing!' => 'Falta fornecedor',
+ 'Vendor not on file!' => 'Fornecedor não existe',
+ 'Vendor saved!' => 'Fornecedor guardado',
+ 'Vendors' => 'Fornecedores',
+ 'Version' => 'Versão',
+ 'Warehouse' => '',
+ 'Warehouse deleted!' => '',
+ 'Warehouse saved!' => '',
+ 'Warehouses' => '',
+ 'Warning!' => '',
+ 'Wednesday' => '',
+ 'Week' => '',
+ 'Week(s)' => '',
+ 'Weeks' => '',
+ 'Weight' => 'Peso',
+ 'Weight Unit' => 'Unidade de Peso',
+ 'What type of item is this?' => 'Que tipo de Item é este?',
+ 'Work Order' => '',
+ 'Work Orders' => '',
+ 'Work Phone' => '',
+ 'Year' => '',
+ 'Year(s)' => '',
+ 'Yearend' => '',
+ 'Yearend date missing!' => '',
+ 'Yearend posted!' => '',
+ 'Yearend posting failed!' => '',
+ 'Years' => '',
+ 'Yes' => 'Sim',
+ 'You are logged out' => '',
+ 'You are posting an existing transaction!' => '',
+ 'You are printing and posting an existing transaction!' => '',
+ 'You are printing and saving an existing order' => '',
+ 'You are printing and saving an existing quotation' => '',
+ 'You are printing and saving an existing transaction!' => '',
+ 'You are saving an existing order' => '',
+ 'You are saving an existing quotation' => '',
+ 'You are saving an existing transaction!' => '',
+ 'You did not enter a name!' => 'Não indicou nome!',
+ 'You must enter a host and port for local and remote connections!' => 'Tem de indicar host e port para ligações locais e remotas!',
+ 'Zip/Postal Code' => '',
+ 'account cannot be set to any other type of account' => '',
+ 'as at' => '',
+ 'days' => 'dias',
+ 'does not exist' => 'não existe',
+ 'done' => '',
+ 'ea' => 'cd',
+ 'failed' => '',
+ 'for' => '',
+ 'for Period' => 'pelo período',
+ 'is already a member!' => 'já é membro!',
+ 'localhost' => 'localhost',
+ 'locked!' => '',
+ 'partsgroup' => '',
+ 'posted!' => '',
+ 'sent' => '',
+ 'successfully created!' => 'criado com sucesso!',
+ 'successfully deleted!' => 'removido com sucesso!',
+ 'time(s)' => '',
+ 'unexpected error!' => '',
+ 'website' => 'website',
+};
+
+1;
diff --git a/locale/pt/am b/locale/pt/am
new file mode 100755
index 00000000..c74f4ff1
--- /dev/null
+++ b/locale/pt/am
@@ -0,0 +1,210 @@
+$self{texts} = {
+ 'AP' => 'Fornecedores',
+ 'AR' => 'Clientes',
+ 'About' => 'Acerca',
+ 'Account' => 'Conta',
+ 'Account Number' => 'Número da Conta',
+ 'Account Number missing!' => 'Número da Conta não encontrado!',
+ 'Account Type' => 'Tipo de Conta',
+ 'Account Type missing!' => 'Tipo de Conta não encontrado!',
+ 'Account deleted!' => 'Conta apagada',
+ 'Account saved!' => 'Conta guardada',
+ 'Accounting Menu' => 'Menu de Contabilidade',
+ 'Add Account' => 'Nova Conta',
+ 'Add GIFI' => 'Adicionar CFOP',
+ 'Address' => 'Endereço',
+ 'Amount' => 'Total',
+ 'Asset' => 'Activo',
+ 'Audit Control' => 'Controlo de Auditoria',
+ 'Backup sent to' => 'Backup enviado para',
+ 'Books are open' => 'Livros Abertos',
+ 'Business Number' => 'Número de negócio',
+ 'COGS' => 'Custo de Vendas',
+ 'Cannot delete account!' => 'Não é possivel apagar a conta!',
+ 'Cannot delete default account!' => 'Não é possível apagar a conta por defeito!',
+ 'Cannot save account!' => 'Não é possível guardar conta!',
+ 'Cannot save preferences!' => 'Não é possível guardar preferências!',
+ 'Cash' => 'Dinheiro',
+ 'Chart of Accounts' => 'Plano de Contas',
+ 'Close Books up to' => 'Fechar Livros até',
+ 'Company' => 'Companhia',
+ 'Confirm!' => 'Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Copy to COA' => 'Copiar para Plano de Contas',
+ 'Credit' => 'Crédito',
+ 'Database Host' => 'Servidor de Base de Dados',
+ 'Dataset' => 'Dataset',
+ 'Date Format' => 'Formato de Data',
+ 'Debit' => 'Débito',
+ 'Delete' => 'Remover',
+ 'Delete Account' => 'Apagar Conta',
+ 'Description' => 'Descrição',
+ 'Discount' => 'Desconto',
+ 'E-mail' => 'E-Mail',
+ 'E-mail address missing!' => 'Falta Endereço de E-mail!',
+ 'Edit' => 'Editar',
+ 'Edit Account' => 'Editar Conta',
+ 'Edit GIFI' => 'Editar CFOP',
+ 'Edit Preferences for' => 'Editar Preferências para',
+ 'Edit Template' => 'Editar Modelo',
+ 'Enforce transaction reversal for all dates' => 'Forçar anulação das transacções para todas as datas',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Indique as suas moedas nativa e estrangeiras usando os códigos de 3 letras (p.ex. EUR:USD:CAD)',
+ 'Equity' => 'Capital',
+ 'Expense' => 'Despesa',
+ 'Expense/Asset' => 'Despesa/Activo',
+ 'Fax' => 'Fax',
+ 'Foreign Exchange Gain' => 'Diferenças de Câmbio - Proveitos',
+ 'Foreign Exchange Loss' => 'Diferenças de Câmbio - Prejuizos',
+ 'GIFI' => 'CFOP - Código Fiscal da Operação',
+ 'GIFI deleted!' => 'CFOP apagado',
+ 'GIFI missing!' => 'Falta CFOP!',
+ 'GIFI saved!' => 'CFOP guardado',
+ 'GL Transaction' => 'Transacção Livro Razão',
+ 'Heading' => 'Cabeçalho',
+ 'ID' => 'ID',
+ 'Include in drop-down menus' => 'Incluir nos menus drop-down',
+ 'Inventory' => 'Inventário',
+ 'Invoice' => 'Factura',
+ 'Is this a summary account to record' => 'Esta é uma conta sumária a registar',
+ 'Language' => 'Língua',
+ 'Last Numbers & Default Accounts' => 'Últimos números e Contas por defeito',
+ 'Liability' => 'Passivo',
+ 'Licensed to' => 'Licenciado a',
+ 'Link' => 'Ligar',
+ 'Name' => 'Nome',
+ 'No' => 'Não',
+ 'No email address for' => 'Não existe endereço de email para',
+ 'Number' => 'Número',
+ 'Number Format' => 'Formato numérico',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de Expedição',
+ 'Password' => 'Password',
+ 'Payables' => 'Fornecedores',
+ 'Payment' => 'Pagamento',
+ 'Phone' => 'Tel',
+ 'Postscript' => 'PostScript',
+ 'Preferences saved!' => 'Preferências Guardadas!',
+ 'Print' => 'Imprimir',
+ 'Printer' => 'Impressora',
+ 'Purchase Order' => 'Ordem de Compra',
+ 'Purchase Orders' => 'Ordens de Compra',
+ 'Rate' => 'Taxa',
+ 'Receivables' => 'Clientes',
+ 'Reference' => 'Referência',
+ 'Retained Earnings' => 'Lucros Retidos',
+ 'Sales Invoice' => 'Factura de Venda',
+ 'Sales Order' => 'Encomenda de Venda',
+ 'Sales Orders' => 'Encomendas de Venda',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como novo',
+ 'Signature' => 'Assinatura',
+ 'Stylesheet' => 'Stylesheet',
+ 'Tax' => 'Imposto',
+ 'Template saved!' => 'Modelo guardado',
+ 'Transaction reversal enforced for all dates' => 'Cancelamento de transacção forçado para todas as datas',
+ 'Transaction reversal enforced up to' => 'Cancelamento de transacção forçado até',
+ 'Update' => 'Actualizar',
+ 'User' => 'Utilizador',
+ 'Vendor Invoice' => 'Factura de Compra',
+ 'Version' => 'Versão',
+ 'Weight Unit' => 'Unidade de Peso',
+ 'Yes' => 'Sim',
+ 'localhost' => 'localhost',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'nova_conta' => 'add_account',
+ 'continuar' => 'continue',
+ 'copiar_para_plano_de_contas' => 'copy_to_coa',
+ 'remover' => 'delete',
+ 'editar' => 'edit',
+ 'editar_conta' => 'edit_account',
+ 'guardar' => 'save',
+ 'guardar_como_novo' => 'save_as_new',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/pt/ap b/locale/pt/ap
new file mode 100755
index 00000000..03c5c0e9
--- /dev/null
+++ b/locale/pt/ap
@@ -0,0 +1,177 @@
+$self{texts} = {
+ 'AP Transaction' => 'Transacção Fornecedores',
+ 'AP Transactions' => 'Transacções Fornecedores',
+ 'AR Transaction' => 'Transacção Clientes',
+ 'AR Transactions' => 'Transacções Clientes',
+ 'Account' => 'Conta',
+ 'Accounting Menu' => 'Menu de Contabilidade',
+ 'Address' => 'Endereço',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Total em dívida',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => 'Tem a certeza que quer APAGAR a Transacção',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'Não é possivel apagar a transacção',
+ 'Cannot post payment for a closed period!' => 'Não pode lançar pagamento em período fechado!',
+ 'Cannot post transaction for a closed period!' => 'Não é possivel lançar transacção para um periodo fechado!',
+ 'Cannot post transaction!' => 'Não é possivel lançar transacção',
+ 'Cc' => 'Cc',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Fechado',
+ 'Confirm!' => 'Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Limite de Crédito',
+ 'Curr' => 'Moeda',
+ 'Currency' => 'Moeda',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => 'Falta cliente!',
+ 'Customer not on file!' => 'Cliente inexistente!',
+ 'Date' => 'Data',
+ 'Date Paid' => 'Data de pagamento',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezembro',
+ 'Delete' => 'Remover',
+ 'Description' => 'Descrição',
+ 'Due Date' => 'Data de Vencimento',
+ 'Due Date missing!' => 'Falta Data de Vencimento!',
+ 'E-mail' => 'E-Mail',
+ 'Employee' => 'Funcionário',
+ 'Exch' => 'Câmbio',
+ 'Exchange Rate' => 'Taxa de Câmbio',
+ 'Exchange rate for payment missing!' => 'Falta a taxa de câmbio para o pagamento!',
+ 'Exchange rate missing!' => 'Falta a taxa de câmbio!',
+ 'Feb' => 'Fev',
+ 'February' => 'Fevereiro',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir no Relatório',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Data de Factura',
+ 'Invoice Date missing!' => 'Data de Factura não encontrada!',
+ 'Invoice Number' => 'Número de Factura',
+ 'Jan' => 'Jan',
+ 'January' => 'Janeiro',
+ 'Jul' => 'Jul',
+ 'July' => 'Julho',
+ 'Jun' => 'Jun',
+ 'June' => 'Junho',
+ 'Mar' => 'Mar',
+ 'March' => 'Março',
+ 'May' => 'Mai',
+ 'May ' => 'Maio',
+ 'Message' => 'Mensagem',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembro',
+ 'Number' => 'Número',
+ 'Oct' => 'Out',
+ 'October' => 'Outubro',
+ 'Open' => 'Abrir',
+ 'Order' => 'Encomenda',
+ 'Order Number' => 'Encomenda Número',
+ 'PDF' => 'PDF',
+ 'Paid' => 'Total Pago',
+ 'Payment date missing!' => 'Falta Data de Pagamento!',
+ 'Payments' => 'Pagamentos',
+ 'Post' => 'Processar',
+ 'Post as new' => 'Processar como novo',
+ 'Postscript' => 'PostScript',
+ 'Print' => 'Imprimir',
+ 'Project' => 'Projecto',
+ 'Project not on file!' => 'Projecto não existe',
+ 'Receipt' => 'Recibo',
+ 'Reference' => 'Referência',
+ 'Remaining' => 'Sobram',
+ 'Screen' => 'Ecran',
+ 'Select from one of the names below' => 'Seleccione um dos nomes abaixo',
+ 'Select from one of the projects below' => 'Seleccione um dos projectos abaixo',
+ 'Select postscript or PDF!' => 'Seleccione PostScript ou PDF',
+ 'Sep' => 'Set',
+ 'September' => 'Setembro',
+ 'Ship to' => 'Expedir para',
+ 'Ship via' => 'Expedir via',
+ 'Source' => 'Origem',
+ 'Subject' => 'Assunto',
+ 'Subtotal' => 'Sub-total',
+ 'Tax' => 'Imposto',
+ 'Tax Included' => 'Impostos incluídos',
+ 'To' => 'Até',
+ 'Total' => 'Total',
+ 'Transaction deleted!' => 'Transacção apagada',
+ 'Transaction posted!' => 'Transacção processada',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Fornecedor',
+ 'Vendor missing!' => 'Falta fornecedor',
+ 'Vendor not on file!' => 'Fornecedor não existe',
+ 'Yes' => 'Sim',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'transacção_fornecedores' => 'ap_transaction',
+ 'transacção_clientes' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'remover' => 'delete',
+ 'processar' => 'post',
+ 'processar_como_novo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'expedir_para' => 'ship_to',
+ 'actualizar' => 'update',
+ 'sim' => 'yes',
+};
+
+1;
+
diff --git a/locale/pt/ar b/locale/pt/ar
new file mode 100755
index 00000000..03c5c0e9
--- /dev/null
+++ b/locale/pt/ar
@@ -0,0 +1,177 @@
+$self{texts} = {
+ 'AP Transaction' => 'Transacção Fornecedores',
+ 'AP Transactions' => 'Transacções Fornecedores',
+ 'AR Transaction' => 'Transacção Clientes',
+ 'AR Transactions' => 'Transacções Clientes',
+ 'Account' => 'Conta',
+ 'Accounting Menu' => 'Menu de Contabilidade',
+ 'Address' => 'Endereço',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Total em dívida',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => 'Tem a certeza que quer APAGAR a Transacção',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'Não é possivel apagar a transacção',
+ 'Cannot post payment for a closed period!' => 'Não pode lançar pagamento em período fechado!',
+ 'Cannot post transaction for a closed period!' => 'Não é possivel lançar transacção para um periodo fechado!',
+ 'Cannot post transaction!' => 'Não é possivel lançar transacção',
+ 'Cc' => 'Cc',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Fechado',
+ 'Confirm!' => 'Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Limite de Crédito',
+ 'Curr' => 'Moeda',
+ 'Currency' => 'Moeda',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => 'Falta cliente!',
+ 'Customer not on file!' => 'Cliente inexistente!',
+ 'Date' => 'Data',
+ 'Date Paid' => 'Data de pagamento',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezembro',
+ 'Delete' => 'Remover',
+ 'Description' => 'Descrição',
+ 'Due Date' => 'Data de Vencimento',
+ 'Due Date missing!' => 'Falta Data de Vencimento!',
+ 'E-mail' => 'E-Mail',
+ 'Employee' => 'Funcionário',
+ 'Exch' => 'Câmbio',
+ 'Exchange Rate' => 'Taxa de Câmbio',
+ 'Exchange rate for payment missing!' => 'Falta a taxa de câmbio para o pagamento!',
+ 'Exchange rate missing!' => 'Falta a taxa de câmbio!',
+ 'Feb' => 'Fev',
+ 'February' => 'Fevereiro',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir no Relatório',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Data de Factura',
+ 'Invoice Date missing!' => 'Data de Factura não encontrada!',
+ 'Invoice Number' => 'Número de Factura',
+ 'Jan' => 'Jan',
+ 'January' => 'Janeiro',
+ 'Jul' => 'Jul',
+ 'July' => 'Julho',
+ 'Jun' => 'Jun',
+ 'June' => 'Junho',
+ 'Mar' => 'Mar',
+ 'March' => 'Março',
+ 'May' => 'Mai',
+ 'May ' => 'Maio',
+ 'Message' => 'Mensagem',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembro',
+ 'Number' => 'Número',
+ 'Oct' => 'Out',
+ 'October' => 'Outubro',
+ 'Open' => 'Abrir',
+ 'Order' => 'Encomenda',
+ 'Order Number' => 'Encomenda Número',
+ 'PDF' => 'PDF',
+ 'Paid' => 'Total Pago',
+ 'Payment date missing!' => 'Falta Data de Pagamento!',
+ 'Payments' => 'Pagamentos',
+ 'Post' => 'Processar',
+ 'Post as new' => 'Processar como novo',
+ 'Postscript' => 'PostScript',
+ 'Print' => 'Imprimir',
+ 'Project' => 'Projecto',
+ 'Project not on file!' => 'Projecto não existe',
+ 'Receipt' => 'Recibo',
+ 'Reference' => 'Referência',
+ 'Remaining' => 'Sobram',
+ 'Screen' => 'Ecran',
+ 'Select from one of the names below' => 'Seleccione um dos nomes abaixo',
+ 'Select from one of the projects below' => 'Seleccione um dos projectos abaixo',
+ 'Select postscript or PDF!' => 'Seleccione PostScript ou PDF',
+ 'Sep' => 'Set',
+ 'September' => 'Setembro',
+ 'Ship to' => 'Expedir para',
+ 'Ship via' => 'Expedir via',
+ 'Source' => 'Origem',
+ 'Subject' => 'Assunto',
+ 'Subtotal' => 'Sub-total',
+ 'Tax' => 'Imposto',
+ 'Tax Included' => 'Impostos incluídos',
+ 'To' => 'Até',
+ 'Total' => 'Total',
+ 'Transaction deleted!' => 'Transacção apagada',
+ 'Transaction posted!' => 'Transacção processada',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Fornecedor',
+ 'Vendor missing!' => 'Falta fornecedor',
+ 'Vendor not on file!' => 'Fornecedor não existe',
+ 'Yes' => 'Sim',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'transacção_fornecedores' => 'ap_transaction',
+ 'transacção_clientes' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'remover' => 'delete',
+ 'processar' => 'post',
+ 'processar_como_novo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'expedir_para' => 'ship_to',
+ 'actualizar' => 'update',
+ 'sim' => 'yes',
+};
+
+1;
+
diff --git a/locale/pt/arap b/locale/pt/arap
new file mode 100755
index 00000000..d556854a
--- /dev/null
+++ b/locale/pt/arap
@@ -0,0 +1,48 @@
+$self{texts} = {
+ 'Address' => 'Endereço',
+ 'Bcc' => 'Bcc',
+ 'Cc' => 'Cc',
+ 'Continue' => 'Continuar',
+ 'Customer not on file!' => 'Cliente inexistente!',
+ 'Date' => 'Data',
+ 'Description' => 'Descrição',
+ 'E-mail' => 'E-Mail',
+ 'Message' => 'Mensagem',
+ 'Number' => 'Número',
+ 'Print' => 'Imprimir',
+ 'Project not on file!' => 'Projecto não existe',
+ 'Reference' => 'Referência',
+ 'Select from one of the names below' => 'Seleccione um dos nomes abaixo',
+ 'Select from one of the projects below' => 'Seleccione um dos projectos abaixo',
+ 'Subject' => 'Assunto',
+ 'To' => 'Até',
+ 'Vendor not on file!' => 'Fornecedor não existe',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/pt/arapprn b/locale/pt/arapprn
new file mode 100755
index 00000000..ae45dacf
--- /dev/null
+++ b/locale/pt/arapprn
@@ -0,0 +1,28 @@
+$self{texts} = {
+ 'Account' => 'Conta',
+ 'Amount' => 'Total',
+ 'Continue' => 'Continuar',
+ 'Date' => 'Data',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'PostScript',
+ 'Screen' => 'Ecran',
+ 'Select postscript or PDF!' => 'Seleccione PostScript ou PDF',
+ 'Source' => 'Origem',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/pt/bp b/locale/pt/bp
new file mode 100755
index 00000000..a82dbf8c
--- /dev/null
+++ b/locale/pt/bp
@@ -0,0 +1,44 @@
+$self{texts} = {
+ 'Account' => 'Conta',
+ 'Accounting Menu' => 'Menu de Contabilidade',
+ 'Confirm!' => 'Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Customer' => 'Cliente',
+ 'Date' => 'Data',
+ 'Employee' => 'Funcionário',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'Invoice' => 'Factura',
+ 'Invoice Number' => 'Número de Factura',
+ 'Order' => 'Encomenda',
+ 'Order Number' => 'Encomenda Número',
+ 'Print' => 'Imprimir',
+ 'Purchase Orders' => 'Ordens de Compra',
+ 'Sales Orders' => 'Encomendas de Venda',
+ 'Select all' => 'Seleccionar todos',
+ 'To' => 'Até',
+ 'Vendor' => 'Fornecedor',
+ 'Yes' => 'Sim',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'imprimir' => 'print',
+ 'seleccionar_todos' => 'select_all',
+ 'sim' => 'yes',
+};
+
+1;
+
diff --git a/locale/pt/ca b/locale/pt/ca
new file mode 100755
index 00000000..7cbe55a2
--- /dev/null
+++ b/locale/pt/ca
@@ -0,0 +1,51 @@
+$self{texts} = {
+ 'Account' => 'Conta',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Saldo',
+ 'Chart of Accounts' => 'Plano de Contas',
+ 'Credit' => 'Crédito',
+ 'Date' => 'Data',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezembro',
+ 'Description' => 'Descrição',
+ 'Feb' => 'Fev',
+ 'February' => 'Fevereiro',
+ 'From' => 'De',
+ 'GIFI' => 'CFOP - Código Fiscal da Operação',
+ 'Include in Report' => 'Incluir no Relatório',
+ 'Jan' => 'Jan',
+ 'January' => 'Janeiro',
+ 'Jul' => 'Jul',
+ 'July' => 'Julho',
+ 'Jun' => 'Jun',
+ 'June' => 'Junho',
+ 'List Transactions' => 'Listar Transacções',
+ 'Mar' => 'Mar',
+ 'March' => 'Março',
+ 'May' => 'Mai',
+ 'May ' => 'Maio',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembro',
+ 'Oct' => 'Out',
+ 'October' => 'Outubro',
+ 'Reference' => 'Referência',
+ 'Sep' => 'Set',
+ 'September' => 'Setembro',
+ 'Subtotal' => 'Sub-total',
+ 'To' => 'Até',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'listar_transacções' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/pt/cp b/locale/pt/cp
new file mode 100755
index 00000000..20bcbce3
--- /dev/null
+++ b/locale/pt/cp
@@ -0,0 +1,113 @@
+$self{texts} = {
+ 'AP' => 'Fornecedores',
+ 'AR' => 'Clientes',
+ 'Account' => 'Conta',
+ 'Accounting Menu' => 'Menu de Contabilidade',
+ 'Address' => 'Endereço',
+ 'All' => 'Todos',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Total em dívida',
+ 'Bcc' => 'Bcc',
+ 'Cannot post payment for a closed period!' => 'Não pode lançar pagamento em período fechado!',
+ 'Cc' => 'Cc',
+ 'Continue' => 'Continuar',
+ 'Currency' => 'Moeda',
+ 'Customer' => 'Cliente',
+ 'Customer not on file!' => 'Cliente inexistente!',
+ 'Date' => 'Data',
+ 'Date missing!' => 'Falta a data!',
+ 'Deposit' => 'Depósito',
+ 'Description' => 'Descrição',
+ 'Due Date' => 'Data de Vencimento',
+ 'E-mail' => 'E-Mail',
+ 'Exchange Rate' => 'Taxa de Câmbio',
+ 'Exchange rate missing!' => 'Falta a taxa de câmbio!',
+ 'From' => 'De',
+ 'Invoice' => 'Factura',
+ 'Invoices' => 'Facturas',
+ 'Language' => 'Língua',
+ 'Message' => 'Mensagem',
+ 'Number' => 'Número',
+ 'PDF' => 'PDF',
+ 'Payment' => 'Pagamento',
+ 'Payment posted!' => 'Pagamento processado',
+ 'Payments' => 'Pagamentos',
+ 'Post' => 'Processar',
+ 'Postscript' => 'PostScript',
+ 'Print' => 'Imprimir',
+ 'Project not on file!' => 'Projecto não existe',
+ 'Receipt' => 'Recibo',
+ 'Receipts' => 'Recibos',
+ 'Reference' => 'Referência',
+ 'Screen' => 'Ecran',
+ 'Select all' => 'Seleccionar todos',
+ 'Select from one of the names below' => 'Seleccione um dos nomes abaixo',
+ 'Select from one of the projects below' => 'Seleccione um dos projectos abaixo',
+ 'Select postscript or PDF!' => 'Seleccione PostScript ou PDF',
+ 'Source' => 'Origem',
+ 'Subject' => 'Assunto',
+ 'To' => 'Até',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Fornecedor',
+ 'Vendor not on file!' => 'Fornecedor não existe',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuar' => 'continue',
+ 'processar' => 'post',
+ 'imprimir' => 'print',
+ 'seleccionar_todos' => 'select_all',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/pt/ct b/locale/pt/ct
new file mode 100755
index 00000000..ce32c67c
--- /dev/null
+++ b/locale/pt/ct
@@ -0,0 +1,133 @@
+$self{texts} = {
+ 'AP Transaction' => 'Transacção Fornecedores',
+ 'AP Transactions' => 'Transacções Fornecedores',
+ 'AR Transaction' => 'Transacção Clientes',
+ 'AR Transactions' => 'Transacções Clientes',
+ 'Accounting Menu' => 'Menu de Contabilidade',
+ 'Active' => 'Activo',
+ 'Add Customer' => 'Novo Cliente',
+ 'Add Vendor' => 'Novo Fornecedor',
+ 'Address' => 'Endereço',
+ 'All' => 'Todos',
+ 'Amount' => 'Total',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete customer!' => 'Não é possivel apagar o cliente!',
+ 'Cannot delete vendor!' => 'Não é possivel apagar o fornecedor',
+ 'Cc' => 'Cc',
+ 'Closed' => 'Fechado',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Credit Limit' => 'Limite de Crédito',
+ 'Curr' => 'Moeda',
+ 'Currency' => 'Moeda',
+ 'Customer deleted!' => 'Cliente apagado!',
+ 'Customer saved!' => 'Cliente guardado!',
+ 'Customers' => 'Clientes',
+ 'Delete' => 'Remover',
+ 'Delivery Date' => 'Data de entrega',
+ 'Description' => 'Descrição',
+ 'Discount' => 'Desconto',
+ 'E-mail' => 'E-Mail',
+ 'Employee' => 'Funcionário',
+ 'Fax' => 'Fax',
+ 'From' => 'De',
+ 'GIFI' => 'CFOP - Código Fiscal da Operação',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir no Relatório',
+ 'Invoice' => 'Factura',
+ 'Item not on file!' => 'Item não está no arquivo!',
+ 'Language' => 'Língua',
+ 'Name' => 'Nome',
+ 'Name missing!' => 'Falta o nome!',
+ 'Notes' => 'Notas',
+ 'Number' => 'Número',
+ 'Open' => 'Abrir',
+ 'Order' => 'Encomenda',
+ 'Orphaned' => 'Órfão',
+ 'Phone' => 'Tel',
+ 'Purchase Order' => 'Ordem de Compra',
+ 'Purchase Orders' => 'Ordens de Compra',
+ 'Qty' => 'Qtd',
+ 'Sales Invoice' => 'Factura de Venda',
+ 'Sales Order' => 'Encomenda de Venda',
+ 'Sales Orders' => 'Encomendas de Venda',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como novo',
+ 'Sell Price' => 'Preço de Venda',
+ 'Subtotal' => 'Sub-total',
+ 'Tax' => 'Imposto',
+ 'Tax Included' => 'Impostos incluídos',
+ 'Taxable' => 'Sujeito a impostos',
+ 'Terms' => 'Termos: A pronto',
+ 'To' => 'Até',
+ 'Total' => 'Total',
+ 'Unit' => 'Unidade',
+ 'Update' => 'Actualizar',
+ 'Vendor Invoice' => 'Factura de Compra',
+ 'Vendor deleted!' => 'Fornecedor apagado',
+ 'Vendor saved!' => 'Fornecedor guardado',
+ 'Vendors' => 'Fornecedores',
+ 'days' => 'dias',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'transacção_fornecedores' => 'ap_transaction',
+ 'transacção_clientes' => 'ar_transaction',
+ 'novo_cliente' => 'add_customer',
+ 'novo_fornecedor' => 'add_vendor',
+ 'continuar' => 'continue',
+ 'remover' => 'delete',
+ 'ordem_de_compra' => 'purchase_order',
+ 'factura_de_venda' => 'sales_invoice',
+ 'encomenda_de_venda' => 'sales_order',
+ 'guardar' => 'save',
+ 'guardar_como_novo' => 'save_as_new',
+ 'actualizar' => 'update',
+ 'factura_de_compra' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/pt/gl b/locale/pt/gl
new file mode 100755
index 00000000..f99741ab
--- /dev/null
+++ b/locale/pt/gl
@@ -0,0 +1,138 @@
+$self{texts} = {
+ 'AP Transaction' => 'Transacção Fornecedores',
+ 'AR Transaction' => 'Transacção Clientes',
+ 'Account' => 'Conta',
+ 'Accounting Menu' => 'Menu de Contabilidade',
+ 'Add General Ledger Transaction' => 'Nova Transacção Livro Razão',
+ 'Address' => 'Endereço',
+ 'All' => 'Todos',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => 'Tem a certeza que quer APAGAR a Transacção',
+ 'Asset' => 'Activo',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Saldo',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'Não é possivel apagar a transacção',
+ 'Cannot post transaction for a closed period!' => 'Não é possivel lançar transacção para um periodo fechado!',
+ 'Cannot post transaction!' => 'Não é possivel lançar transacção',
+ 'Cc' => 'Cc',
+ 'Confirm!' => 'Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Customer not on file!' => 'Cliente inexistente!',
+ 'Date' => 'Data',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezembro',
+ 'Delete' => 'Remover',
+ 'Description' => 'Descrição',
+ 'E-mail' => 'E-Mail',
+ 'Edit General Ledger Transaction' => 'Editar Transacção Livro Razão',
+ 'Equity' => 'Capital',
+ 'Expense' => 'Despesa',
+ 'Feb' => 'Fev',
+ 'February' => 'Fevereiro',
+ 'From' => 'De',
+ 'GIFI' => 'CFOP - Código Fiscal da Operação',
+ 'GL Transaction' => 'Transacção Livro Razão',
+ 'General Ledger' => 'Livro Razão',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir no Relatório',
+ 'Jan' => 'Jan',
+ 'January' => 'Janeiro',
+ 'Jul' => 'Jul',
+ 'July' => 'Julho',
+ 'Jun' => 'Jun',
+ 'June' => 'Junho',
+ 'Liability' => 'Passivo',
+ 'Mar' => 'Mar',
+ 'March' => 'Março',
+ 'May' => 'Mai',
+ 'May ' => 'Maio',
+ 'Message' => 'Mensagem',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembro',
+ 'Number' => 'Número',
+ 'Oct' => 'Out',
+ 'October' => 'Outubro',
+ 'Post' => 'Processar',
+ 'Post as new' => 'Processar como novo',
+ 'Print' => 'Imprimir',
+ 'Project' => 'Projecto',
+ 'Project not on file!' => 'Projecto não existe',
+ 'Reference' => 'Referência',
+ 'Reports' => 'Relatórios',
+ 'Select from one of the names below' => 'Seleccione um dos nomes abaixo',
+ 'Select from one of the projects below' => 'Seleccione um dos projectos abaixo',
+ 'Sep' => 'Set',
+ 'September' => 'Setembro',
+ 'Source' => 'Origem',
+ 'Subject' => 'Assunto',
+ 'Subtotal' => 'Sub-total',
+ 'To' => 'Até',
+ 'Transaction Date missing!' => 'Falta Data de transacção!',
+ 'Transaction deleted!' => 'Transacção apagada',
+ 'Transaction posted!' => 'Transacção processada',
+ 'Update' => 'Actualizar',
+ 'Vendor not on file!' => 'Fornecedor não existe',
+ 'Yes' => 'Sim',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'transacção_fornecedores' => 'ap_transaction',
+ 'transacção_clientes' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'remover' => 'delete',
+ 'transacção_livro_razão' => 'gl_transaction',
+ 'processar' => 'post',
+ 'processar_como_novo' => 'post_as_new',
+ 'actualizar' => 'update',
+ 'sim' => 'yes',
+};
+
+1;
+
diff --git a/locale/pt/hr b/locale/pt/hr
new file mode 100755
index 00000000..55a42006
--- /dev/null
+++ b/locale/pt/hr
@@ -0,0 +1,72 @@
+$self{texts} = {
+ 'AP' => 'Fornecedores',
+ 'Accounting Menu' => 'Menu de Contabilidade',
+ 'Active' => 'Activo',
+ 'Address' => 'Endereço',
+ 'Administrator' => 'Administrador',
+ 'All' => 'Todos',
+ 'Amount' => 'Total',
+ 'Continue' => 'Continuar',
+ 'Delete' => 'Remover',
+ 'Description' => 'Descrição',
+ 'E-mail' => 'E-Mail',
+ 'Employee' => 'Funcionário',
+ 'Expense' => 'Despesa',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir no Relatório',
+ 'Login' => 'Login',
+ 'Name' => 'Nome',
+ 'Name missing!' => 'Falta o nome!',
+ 'Notes' => 'Notas',
+ 'Number' => 'Número',
+ 'Orphaned' => 'Órfão',
+ 'Rate' => 'Taxa',
+ 'Sales' => 'Vendas',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como novo',
+ 'To' => 'Até',
+ 'Update' => 'Actualizar',
+ 'User' => 'Utilizador',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'continuar' => 'continue',
+ 'remover' => 'delete',
+ 'guardar' => 'save',
+ 'guardar_como_novo' => 'save_as_new',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/pt/ic b/locale/pt/ic
new file mode 100755
index 00000000..58a5088a
--- /dev/null
+++ b/locale/pt/ic
@@ -0,0 +1,217 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menu de Contabilidade',
+ 'Accounts' => 'Contas',
+ 'Active' => 'Activo',
+ 'Add' => 'Novo',
+ 'Add Assembly' => 'Novo Conjunto',
+ 'Add Part' => 'Novo Produto',
+ 'Add Purchase Order' => 'Nova Ordem de Compra',
+ 'Add Sales Order' => 'Nova Encomenda de Cliente',
+ 'Add Service' => 'Novo Serviço',
+ 'Address' => 'Endereço',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Assemblies' => 'Conjuntos',
+ 'Attachment' => 'Attachment',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'BOM' => 'BOM',
+ 'Bcc' => 'Bcc',
+ 'Bin' => 'Bin',
+ 'COGS' => 'Custo de Vendas',
+ 'Cannot delete item!' => 'Não é possivel apagar o item!',
+ 'Cash' => 'Dinheiro',
+ 'Cc' => 'Cc',
+ 'Closed' => 'Fechado',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Cópias',
+ 'Curr' => 'Moeda',
+ 'Currency' => 'Moeda',
+ 'Customer' => 'Cliente',
+ 'Customer not on file!' => 'Cliente inexistente!',
+ 'Date' => 'Data',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezembro',
+ 'Delete' => 'Remover',
+ 'Delivery Date' => 'Data de entrega',
+ 'Description' => 'Descrição',
+ 'E-mail' => 'E-Mail',
+ 'E-mail address missing!' => 'Falta Endereço de E-mail!',
+ 'Edit Assembly' => 'Editar Conjunto',
+ 'Edit Part' => 'Editar Produto',
+ 'Edit Service' => 'Editar Serviço',
+ 'Employee' => 'Funcionário',
+ 'Expense' => 'Despesa',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Fev',
+ 'February' => 'Fevereiro',
+ 'From' => 'De',
+ 'Image' => 'Imagem',
+ 'In-line' => 'Inline',
+ 'Include in Report' => 'Incluir no Relatório',
+ 'Individual Items' => 'Produtos Individuais',
+ 'Inventory' => 'Inventário',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Quantidade em Stock tem de ser zero para poder declarar este conjunto obsoleto!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Quantidade em Stock tem de ser zero para poder declarar esta peça obsoleta!',
+ 'Invoice' => 'Factura',
+ 'Invoice Date missing!' => 'Data de Factura não encontrada!',
+ 'Invoice Number' => 'Número de Factura',
+ 'Invoice Number missing!' => 'Número de Factura não encontrado!',
+ 'Item deleted!' => 'Item apagado',
+ 'Item not on file!' => 'Item não está no arquivo!',
+ 'Jan' => 'Jan',
+ 'January' => 'Janeiro',
+ 'Jul' => 'Jul',
+ 'July' => 'Julho',
+ 'Jun' => 'Jun',
+ 'June' => 'Junho',
+ 'Line Total' => 'Total da Linha',
+ 'Link Accounts' => 'Ligar Contas',
+ 'List Price' => 'Listar Preço',
+ 'Make' => 'Marca',
+ 'Mar' => 'Mar',
+ 'March' => 'Março',
+ 'May' => 'Mai',
+ 'May ' => 'Maio',
+ 'Message' => 'Mensagem',
+ 'Microfiche' => 'Microficha',
+ 'Model' => 'Modelo',
+ 'Name' => 'Nome',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembro',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'Falta numero na Linha',
+ 'Obsolete' => 'Obsoleto',
+ 'Oct' => 'Out',
+ 'October' => 'Outubro',
+ 'On Hand' => 'Em Stock',
+ 'Open' => 'Abrir',
+ 'Order' => 'Encomenda',
+ 'Order Date missing!' => 'Falta data da Encomenda',
+ 'Order Number' => 'Encomenda Número',
+ 'Order Number missing!' => 'Falta numero da Encomenda!',
+ 'Orphaned' => 'Órfão',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de Expedição',
+ 'Packing List Date missing!' => 'Falta Data da Lista de Expedição',
+ 'Packing List Number missing!' => 'Falta Numero de Lista de Expedição',
+ 'Part' => 'Produto',
+ 'Parts' => 'Produtos',
+ 'Phone' => 'Tel',
+ 'Postscript' => 'PostScript',
+ 'Price' => 'Preço',
+ 'Project' => 'Projecto',
+ 'Purchase Order' => 'Ordem de Compra',
+ 'Purchase Orders' => 'Ordens de Compra',
+ 'Qty' => 'Qtd',
+ 'ROP' => 'Nível mínimo de stock',
+ 'Recd' => 'Recebido',
+ 'Required by' => 'Requerido por',
+ 'Sales Invoice' => 'Factura de Venda',
+ 'Sales Order' => 'Encomenda de Venda',
+ 'Sales Orders' => 'Encomendas de Venda',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como novo',
+ 'Screen' => 'Ecran',
+ 'Select from one of the names below' => 'Seleccione um dos nomes abaixo',
+ 'Sell Price' => 'Preço de Venda',
+ 'Sep' => 'Set',
+ 'September' => 'Setembro',
+ 'Service' => 'Serviço',
+ 'Services' => 'Serviços',
+ 'Ship' => 'Expedir',
+ 'Ship to' => 'Expedir para',
+ 'Short' => 'Curta',
+ 'Stock Assembly' => 'Conjunto em stock',
+ 'Subject' => 'Assunto',
+ 'Subtotal' => 'Sub-total',
+ 'Tax' => 'Imposto',
+ 'To' => 'Até',
+ 'Top Level' => 'Nivel de topo',
+ 'Unit' => 'Unidade',
+ 'Update' => 'Actualizar',
+ 'Updated' => 'Actualizado',
+ 'Vendor' => 'Fornecedor',
+ 'Vendor Invoice' => 'Factura de Compra',
+ 'Vendor not on file!' => 'Fornecedor não existe',
+ 'Weight' => 'Peso',
+ 'What type of item is this?' => 'Que tipo de Item é este?',
+ 'days' => 'dias',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'novo_conjunto' => 'add_assembly',
+ 'novo_produto' => 'add_part',
+ 'novo_serviço' => 'add_service',
+ 'continuar' => 'continue',
+ 'remover' => 'delete',
+ 'editar_conjunto' => 'edit_assembly',
+ 'editar_produto' => 'edit_part',
+ 'editar_serviço' => 'edit_service',
+ 'guardar' => 'save',
+ 'guardar_como_novo' => 'save_as_new',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/pt/io b/locale/pt/io
new file mode 100755
index 00000000..6f4cc37a
--- /dev/null
+++ b/locale/pt/io
@@ -0,0 +1,104 @@
+$self{texts} = {
+ 'Add Purchase Order' => 'Nova Ordem de Compra',
+ 'Add Sales Order' => 'Nova Encomenda de Cliente',
+ 'Address' => 'Endereço',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Attachment' => 'Attachment',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Bin' => 'Bin',
+ 'Cc' => 'Cc',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Cópias',
+ 'Date' => 'Data',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezembro',
+ 'Delivery Date' => 'Data de entrega',
+ 'Description' => 'Descrição',
+ 'E-mail' => 'E-Mail',
+ 'E-mail address missing!' => 'Falta Endereço de E-mail!',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Fev',
+ 'February' => 'Fevereiro',
+ 'In-line' => 'Inline',
+ 'Invoice' => 'Factura',
+ 'Invoice Date missing!' => 'Data de Factura não encontrada!',
+ 'Invoice Number missing!' => 'Número de Factura não encontrado!',
+ 'Item not on file!' => 'Item não está no arquivo!',
+ 'Jan' => 'Jan',
+ 'January' => 'Janeiro',
+ 'Jul' => 'Jul',
+ 'July' => 'Julho',
+ 'Jun' => 'Jun',
+ 'June' => 'Junho',
+ 'Mar' => 'Mar',
+ 'March' => 'Março',
+ 'May' => 'Mai',
+ 'May ' => 'Maio',
+ 'Message' => 'Mensagem',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembro',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'Falta numero na Linha',
+ 'Oct' => 'Out',
+ 'October' => 'Outubro',
+ 'Order Date missing!' => 'Falta data da Encomenda',
+ 'Order Number missing!' => 'Falta numero da Encomenda!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de Expedição',
+ 'Packing List Date missing!' => 'Falta Data da Lista de Expedição',
+ 'Packing List Number missing!' => 'Falta Numero de Lista de Expedição',
+ 'Part' => 'Produto',
+ 'Phone' => 'Tel',
+ 'Postscript' => 'PostScript',
+ 'Price' => 'Preço',
+ 'Project' => 'Projecto',
+ 'Purchase Order' => 'Ordem de Compra',
+ 'Qty' => 'Qtd',
+ 'Recd' => 'Recebido',
+ 'Required by' => 'Requerido por',
+ 'Sales Order' => 'Encomenda de Venda',
+ 'Screen' => 'Ecran',
+ 'Sep' => 'Set',
+ 'September' => 'Setembro',
+ 'Service' => 'Serviço',
+ 'Ship' => 'Expedir',
+ 'Ship to' => 'Expedir para',
+ 'Subject' => 'Assunto',
+ 'Subtotal' => 'Sub-total',
+ 'To' => 'Até',
+ 'Unit' => 'Unidade',
+ 'What type of item is this?' => 'Que tipo de Item é este?',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/pt/ir b/locale/pt/ir
new file mode 100755
index 00000000..d4cc96f4
--- /dev/null
+++ b/locale/pt/ir
@@ -0,0 +1,192 @@
+$self{texts} = {
+ 'Account' => 'Conta',
+ 'Accounting Menu' => 'Menu de Contabilidade',
+ 'Add Purchase Order' => 'Nova Ordem de Compra',
+ 'Add Sales Order' => 'Nova Encomenda de Cliente',
+ 'Add Vendor Invoice' => 'Nova Factura de Compra',
+ 'Address' => 'Endereço',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => 'Tem a certeza que quer APAGAR a Factura Número',
+ 'Attachment' => 'Attachment',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Bin' => 'Bin',
+ 'Cannot delete invoice!' => 'Não é possivel apagar a factura!',
+ 'Cannot post invoice for a closed period!' => 'Não pode lançar factura em período fechado!',
+ 'Cannot post invoice!' => 'Não é possivel lançar factura!',
+ 'Cannot post payment for a closed period!' => 'Não pode lançar pagamento em período fechado!',
+ 'Cc' => 'Cc',
+ 'Confirm!' => 'Confirmar!',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Cópias',
+ 'Credit Limit' => 'Limite de Crédito',
+ 'Currency' => 'Moeda',
+ 'Customer not on file!' => 'Cliente inexistente!',
+ 'Date' => 'Data',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezembro',
+ 'Delete' => 'Remover',
+ 'Delivery Date' => 'Data de entrega',
+ 'Description' => 'Descrição',
+ 'Due Date' => 'Data de Vencimento',
+ 'E-mail' => 'E-Mail',
+ 'E-mail address missing!' => 'Falta Endereço de E-mail!',
+ 'Edit Vendor Invoice' => 'Editar Factura de Compra',
+ 'Exch' => 'Câmbio',
+ 'Exchange Rate' => 'Taxa de Câmbio',
+ 'Exchange rate for payment missing!' => 'Falta a taxa de câmbio para o pagamento!',
+ 'Exchange rate missing!' => 'Falta a taxa de câmbio!',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Fev',
+ 'February' => 'Fevereiro',
+ 'In-line' => 'Inline',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Data de Factura',
+ 'Invoice Date missing!' => 'Data de Factura não encontrada!',
+ 'Invoice Number' => 'Número de Factura',
+ 'Invoice Number missing!' => 'Número de Factura não encontrado!',
+ 'Invoice deleted!' => 'Factura apagada',
+ 'Item not on file!' => 'Item não está no arquivo!',
+ 'Jan' => 'Jan',
+ 'January' => 'Janeiro',
+ 'Jul' => 'Jul',
+ 'July' => 'Julho',
+ 'Jun' => 'Jun',
+ 'June' => 'Junho',
+ 'Language' => 'Língua',
+ 'Mar' => 'Mar',
+ 'March' => 'Março',
+ 'May' => 'Mai',
+ 'May ' => 'Maio',
+ 'Message' => 'Mensagem',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembro',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'Falta numero na Linha',
+ 'Oct' => 'Out',
+ 'October' => 'Outubro',
+ 'Order Date missing!' => 'Falta data da Encomenda',
+ 'Order Number' => 'Encomenda Número',
+ 'Order Number missing!' => 'Falta numero da Encomenda!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de Expedição',
+ 'Packing List Date missing!' => 'Falta Data da Lista de Expedição',
+ 'Packing List Number missing!' => 'Falta Numero de Lista de Expedição',
+ 'Part' => 'Produto',
+ 'Payment date missing!' => 'Falta Data de Pagamento!',
+ 'Payments' => 'Pagamentos',
+ 'Phone' => 'Tel',
+ 'Post' => 'Processar',
+ 'Post as new' => 'Processar como novo',
+ 'Postscript' => 'PostScript',
+ 'Price' => 'Preço',
+ 'Print' => 'Imprimir',
+ 'Project' => 'Projecto',
+ 'Project not on file!' => 'Projecto não existe',
+ 'Purchase Order' => 'Ordem de Compra',
+ 'Qty' => 'Qtd',
+ 'Recd' => 'Recebido',
+ 'Record in' => 'Registar em',
+ 'Reference' => 'Referência',
+ 'Remaining' => 'Sobram',
+ 'Required by' => 'Requerido por',
+ 'Sales Order' => 'Encomenda de Venda',
+ 'Screen' => 'Ecran',
+ 'Select from one of the names below' => 'Seleccione um dos nomes abaixo',
+ 'Select from one of the projects below' => 'Seleccione um dos projectos abaixo',
+ 'Sep' => 'Set',
+ 'September' => 'Setembro',
+ 'Service' => 'Serviço',
+ 'Ship' => 'Expedir',
+ 'Ship to' => 'Expedir para',
+ 'Source' => 'Origem',
+ 'Subject' => 'Assunto',
+ 'Subtotal' => 'Sub-total',
+ 'Tax Included' => 'Impostos incluídos',
+ 'To' => 'Até',
+ 'Total' => 'Total',
+ 'Unit' => 'Unidade',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Fornecedor',
+ 'Vendor missing!' => 'Falta fornecedor',
+ 'Vendor not on file!' => 'Fornecedor não existe',
+ 'What type of item is this?' => 'Que tipo de Item é este?',
+ 'Yes' => 'Sim',
+ 'ea' => 'cd',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'remover' => 'delete',
+ 'processar' => 'post',
+ 'processar_como_novo' => 'post_as_new',
+ 'ordem_de_compra' => 'purchase_order',
+ 'actualizar' => 'update',
+ 'sim' => 'yes',
+};
+
+1;
+
diff --git a/locale/pt/is b/locale/pt/is
new file mode 100755
index 00000000..67a556d6
--- /dev/null
+++ b/locale/pt/is
@@ -0,0 +1,197 @@
+$self{texts} = {
+ 'Account' => 'Conta',
+ 'Accounting Menu' => 'Menu de Contabilidade',
+ 'Add Purchase Order' => 'Nova Ordem de Compra',
+ 'Add Sales Invoice' => 'Nova Factura de Venda',
+ 'Add Sales Order' => 'Nova Encomenda de Cliente',
+ 'Address' => 'Endereço',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => 'Tem a certeza que quer APAGAR a Factura Número',
+ 'Attachment' => 'Attachment',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Bin' => 'Bin',
+ 'Cannot delete invoice!' => 'Não é possivel apagar a factura!',
+ 'Cannot post invoice for a closed period!' => 'Não pode lançar factura em período fechado!',
+ 'Cannot post invoice!' => 'Não é possivel lançar factura!',
+ 'Cannot post payment for a closed period!' => 'Não pode lançar pagamento em período fechado!',
+ 'Cc' => 'Cc',
+ 'Confirm!' => 'Confirmar!',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Cópias',
+ 'Credit Limit' => 'Limite de Crédito',
+ 'Currency' => 'Moeda',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => 'Falta cliente!',
+ 'Customer not on file!' => 'Cliente inexistente!',
+ 'Date' => 'Data',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezembro',
+ 'Delete' => 'Remover',
+ 'Delivery Date' => 'Data de entrega',
+ 'Description' => 'Descrição',
+ 'Due Date' => 'Data de Vencimento',
+ 'E-mail' => 'E-Mail',
+ 'E-mail address missing!' => 'Falta Endereço de E-mail!',
+ 'Edit Sales Invoice' => 'Editar Factura de Venda',
+ 'Exch' => 'Câmbio',
+ 'Exchange Rate' => 'Taxa de Câmbio',
+ 'Exchange rate for payment missing!' => 'Falta a taxa de câmbio para o pagamento!',
+ 'Exchange rate missing!' => 'Falta a taxa de câmbio!',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Fev',
+ 'February' => 'Fevereiro',
+ 'In-line' => 'Inline',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Data de Factura',
+ 'Invoice Date missing!' => 'Data de Factura não encontrada!',
+ 'Invoice Number' => 'Número de Factura',
+ 'Invoice Number missing!' => 'Número de Factura não encontrado!',
+ 'Invoice deleted!' => 'Factura apagada',
+ 'Item not on file!' => 'Item não está no arquivo!',
+ 'Jan' => 'Jan',
+ 'January' => 'Janeiro',
+ 'Jul' => 'Jul',
+ 'July' => 'Julho',
+ 'Jun' => 'Jun',
+ 'June' => 'Junho',
+ 'Mar' => 'Mar',
+ 'March' => 'Março',
+ 'May' => 'Mai',
+ 'May ' => 'Maio',
+ 'Message' => 'Mensagem',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembro',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'Falta numero na Linha',
+ 'Oct' => 'Out',
+ 'October' => 'Outubro',
+ 'Order Date missing!' => 'Falta data da Encomenda',
+ 'Order Number' => 'Encomenda Número',
+ 'Order Number missing!' => 'Falta numero da Encomenda!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de Expedição',
+ 'Packing List Date missing!' => 'Falta Data da Lista de Expedição',
+ 'Packing List Number missing!' => 'Falta Numero de Lista de Expedição',
+ 'Part' => 'Produto',
+ 'Payment date missing!' => 'Falta Data de Pagamento!',
+ 'Payments' => 'Pagamentos',
+ 'Phone' => 'Tel',
+ 'Post' => 'Processar',
+ 'Post as new' => 'Processar como novo',
+ 'Postscript' => 'PostScript',
+ 'Price' => 'Preço',
+ 'Print' => 'Imprimir',
+ 'Project' => 'Projecto',
+ 'Project not on file!' => 'Projecto não existe',
+ 'Purchase Order' => 'Ordem de Compra',
+ 'Qty' => 'Qtd',
+ 'Recd' => 'Recebido',
+ 'Record in' => 'Registar em',
+ 'Reference' => 'Referência',
+ 'Remaining' => 'Sobram',
+ 'Required by' => 'Requerido por',
+ 'Sales Order' => 'Encomenda de Venda',
+ 'Screen' => 'Ecran',
+ 'Select from one of the names below' => 'Seleccione um dos nomes abaixo',
+ 'Select from one of the projects below' => 'Seleccione um dos projectos abaixo',
+ 'Select postscript or PDF!' => 'Seleccione PostScript ou PDF',
+ 'Sep' => 'Set',
+ 'September' => 'Setembro',
+ 'Service' => 'Serviço',
+ 'Ship' => 'Expedir',
+ 'Ship to' => 'Expedir para',
+ 'Ship via' => 'Expedir via',
+ 'Source' => 'Origem',
+ 'Subject' => 'Assunto',
+ 'Subtotal' => 'Sub-total',
+ 'Tax Included' => 'Impostos incluídos',
+ 'To' => 'Até',
+ 'Total' => 'Total',
+ 'Unit' => 'Unidade',
+ 'Update' => 'Actualizar',
+ 'Vendor not on file!' => 'Fornecedor não existe',
+ 'What type of item is this?' => 'Que tipo de Item é este?',
+ 'Yes' => 'Sim',
+ 'ea' => 'cd',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'remover' => 'delete',
+ 'e_mail' => 'e_mail',
+ 'processar' => 'post',
+ 'processar_como_novo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'encomenda_de_venda' => 'sales_order',
+ 'expedir_para' => 'ship_to',
+ 'actualizar' => 'update',
+ 'sim' => 'yes',
+};
+
+1;
+
diff --git a/locale/pt/jc b/locale/pt/jc
new file mode 100755
index 00000000..135695f3
--- /dev/null
+++ b/locale/pt/jc
@@ -0,0 +1,80 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menu de Contabilidade',
+ 'Amount' => 'Total',
+ 'Closed' => 'Fechado',
+ 'Confirm!' => 'Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Date' => 'Data',
+ 'Date missing!' => 'Falta a data!',
+ 'Delete' => 'Remover',
+ 'Description' => 'Descrição',
+ 'Employee' => 'Funcionário',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir no Relatório',
+ 'Notes' => 'Notas',
+ 'Open' => 'Abrir',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'PostScript',
+ 'Print' => 'Imprimir',
+ 'Project Number missing!' => 'Falta o número do projecto',
+ 'Qty' => 'Qtd',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como novo',
+ 'Screen' => 'Ecran',
+ 'Select postscript or PDF!' => 'Seleccione PostScript ou PDF',
+ 'Subtotal' => 'Sub-total',
+ 'To' => 'Até',
+ 'Total' => 'Total',
+ 'Update' => 'Actualizar',
+ 'Yes' => 'Sim',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'continuar' => 'continue',
+ 'remover' => 'delete',
+ 'imprimir' => 'print',
+ 'guardar' => 'save',
+ 'guardar_como_novo' => 'save_as_new',
+ 'actualizar' => 'update',
+ 'sim' => 'yes',
+};
+
+1;
+
diff --git a/locale/pt/locales.pl b/locale/pt/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/pt/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/pt/login b/locale/pt/login
new file mode 100755
index 00000000..c873065e
--- /dev/null
+++ b/locale/pt/login
@@ -0,0 +1,21 @@
+$self{texts} = {
+ 'Company' => 'Companhia',
+ 'Continue' => 'Continuar',
+ 'Incorrect Dataset version!' => 'Versão Dataset incorrecta!',
+ 'Login' => 'Login',
+ 'Name' => 'Nome',
+ 'Password' => 'Password',
+ 'Version' => 'Versão',
+ 'You did not enter a name!' => 'Não indicou nome!',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ 'login' => 'login',
+};
+
+1;
+
diff --git a/locale/pt/menu b/locale/pt/menu
new file mode 100755
index 00000000..f43a8851
--- /dev/null
+++ b/locale/pt/menu
@@ -0,0 +1,80 @@
+$self{texts} = {
+ 'AP' => 'Fornecedores',
+ 'AP Aging' => 'Idade Saldos Fornecedores',
+ 'AP Transaction' => 'Transacção Fornecedores',
+ 'AR' => 'Clientes',
+ 'AR Aging' => 'Idade Saldos Clientes',
+ 'AR Transaction' => 'Transacção Clientes',
+ 'Accounting Menu' => 'Menu de Contabilidade',
+ 'Add Account' => 'Nova Conta',
+ 'Add Assembly' => 'Novo Conjunto',
+ 'Add Customer' => 'Novo Cliente',
+ 'Add GIFI' => 'Adicionar CFOP',
+ 'Add Part' => 'Novo Produto',
+ 'Add Project' => 'Novo Projecto',
+ 'Add Service' => 'Novo Serviço',
+ 'Add Transaction' => 'Nova Transacção',
+ 'Add Vendor' => 'Novo Fornecedor',
+ 'Assemblies' => 'Conjuntos',
+ 'Audit Control' => 'Controlo de Auditoria',
+ 'Backup' => 'Backup',
+ 'Balance Sheet' => 'Folha de Balanço',
+ 'Cash' => 'Dinheiro',
+ 'Chart of Accounts' => 'Plano de Contas',
+ 'Check' => 'Cheque',
+ 'Customers' => 'Clientes',
+ 'Description' => 'Descrição',
+ 'General Ledger' => 'Livro Razão',
+ 'Goods & Services' => 'Bens e Serviços',
+ 'HTML Templates' => 'Templates HTML',
+ 'Income Statement' => 'Estado de Receitas',
+ 'Invoice' => 'Factura',
+ 'LaTeX Templates' => 'Modelos LaTeX',
+ 'Language' => 'Língua',
+ 'List Accounts' => 'Listar Contas',
+ 'List GIFI' => 'Listar CFOP',
+ 'Logout' => 'Logout',
+ 'Open' => 'Abrir',
+ 'Order Entry' => 'Encomendas de Clientes',
+ 'Packing List' => 'Lista de Expedição',
+ 'Parts' => 'Produtos',
+ 'Payment' => 'Pagamento',
+ 'Payments' => 'Pagamentos',
+ 'Preferences' => 'Preferências',
+ 'Print' => 'Imprimir',
+ 'Projects' => 'Projectos',
+ 'Purchase Order' => 'Ordem de Compra',
+ 'Purchase Orders' => 'Ordens de Compra',
+ 'Receipt' => 'Recibo',
+ 'Receipts' => 'Recibos',
+ 'Reconciliation' => 'Reconciliação',
+ 'Reports' => 'Relatórios',
+ 'Sales Invoice' => 'Factura de Venda',
+ 'Sales Order' => 'Encomenda de Venda',
+ 'Sales Orders' => 'Encomendas de Venda',
+ 'Save to File' => 'Guardar em Ficheiro',
+ 'Send by E-Mail' => 'Enviar por Email',
+ 'Services' => 'Serviços',
+ 'Ship' => 'Expedir',
+ 'Stock Assembly' => 'Conjunto em stock',
+ 'Stylesheet' => 'Stylesheet',
+ 'System' => 'Sistema',
+ 'Tax collected' => 'Imposto recolhido',
+ 'Tax paid' => 'Imposto pago',
+ 'Transactions' => 'Transacções',
+ 'Trial Balance' => 'Balancete',
+ 'Vendor Invoice' => 'Factura de Compra',
+ 'Vendors' => 'Fornecedores',
+ 'Version' => 'Versão',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/pt/oe b/locale/pt/oe
new file mode 100755
index 00000000..bab0c841
--- /dev/null
+++ b/locale/pt/oe
@@ -0,0 +1,237 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menu de Contabilidade',
+ 'Add Purchase Order' => 'Nova Ordem de Compra',
+ 'Add Sales Invoice' => 'Nova Factura de Venda',
+ 'Add Sales Order' => 'Nova Encomenda de Cliente',
+ 'Add Vendor Invoice' => 'Nova Factura de Compra',
+ 'Address' => 'Endereço',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Order Number' => 'Confirma a remoção da Encomenda?',
+ 'Attachment' => 'Attachment',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Bin' => 'Bin',
+ 'Cannot delete order!' => 'Não é possivel apagar a encomenda!',
+ 'Cannot save order!' => 'Não é possível guardar encomenda!',
+ 'Cc' => 'Cc',
+ 'Closed' => 'Fechado',
+ 'Confirm!' => 'Confirmar!',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Cópias',
+ 'Credit Limit' => 'Limite de Crédito',
+ 'Curr' => 'Moeda',
+ 'Currency' => 'Moeda',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => 'Falta cliente!',
+ 'Customer not on file!' => 'Cliente inexistente!',
+ 'Date' => 'Data',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezembro',
+ 'Delete' => 'Remover',
+ 'Delivery Date' => 'Data de entrega',
+ 'Description' => 'Descrição',
+ 'Done' => 'Pronto',
+ 'E-mail' => 'E-Mail',
+ 'E-mail address missing!' => 'Falta Endereço de E-mail!',
+ 'Edit Purchase Order' => 'Editar Ordem de Compra',
+ 'Edit Sales Order' => 'Editar Encomenda',
+ 'Employee' => 'Funcionário',
+ 'Exchange Rate' => 'Taxa de Câmbio',
+ 'Exchange rate missing!' => 'Falta a taxa de câmbio!',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Fev',
+ 'February' => 'Fevereiro',
+ 'From' => 'De',
+ 'ID' => 'ID',
+ 'In-line' => 'Inline',
+ 'Include in Report' => 'Incluir no Relatório',
+ 'Invoice' => 'Factura',
+ 'Invoice Date missing!' => 'Data de Factura não encontrada!',
+ 'Invoice Number missing!' => 'Número de Factura não encontrado!',
+ 'Item not on file!' => 'Item não está no arquivo!',
+ 'Jan' => 'Jan',
+ 'January' => 'Janeiro',
+ 'Jul' => 'Jul',
+ 'July' => 'Julho',
+ 'Jun' => 'Jun',
+ 'June' => 'Junho',
+ 'Mar' => 'Mar',
+ 'March' => 'Março',
+ 'May' => 'Mai',
+ 'May ' => 'Maio',
+ 'Message' => 'Mensagem',
+ 'Notes' => 'Notas',
+ 'Nothing selected!' => 'Nada seleccionado',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembro',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'Falta numero na Linha',
+ 'Oct' => 'Out',
+ 'October' => 'Outubro',
+ 'Open' => 'Abrir',
+ 'Order' => 'Encomenda',
+ 'Order Date' => 'Data da Encomenda',
+ 'Order Date missing!' => 'Falta data da Encomenda',
+ 'Order Number' => 'Encomenda Número',
+ 'Order Number missing!' => 'Falta numero da Encomenda!',
+ 'Order deleted!' => 'Encomenda apagada',
+ 'Order saved!' => 'Encomenda guardada',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de Expedição',
+ 'Packing List Date missing!' => 'Falta Data da Lista de Expedição',
+ 'Packing List Number missing!' => 'Falta Numero de Lista de Expedição',
+ 'Part' => 'Produto',
+ 'Phone' => 'Tel',
+ 'Postscript' => 'PostScript',
+ 'Price' => 'Preço',
+ 'Print' => 'Imprimir',
+ 'Project' => 'Projecto',
+ 'Project not on file!' => 'Projecto não existe',
+ 'Purchase Order' => 'Ordem de Compra',
+ 'Purchase Orders' => 'Ordens de Compra',
+ 'Qty' => 'Qtd',
+ 'Recd' => 'Recebido',
+ 'Reference' => 'Referência',
+ 'Remaining' => 'Sobram',
+ 'Required by' => 'Requerido por',
+ 'Sales Invoice' => 'Factura de Venda',
+ 'Sales Order' => 'Encomenda de Venda',
+ 'Sales Orders' => 'Encomendas de Venda',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como novo',
+ 'Screen' => 'Ecran',
+ 'Select from one of the names below' => 'Seleccione um dos nomes abaixo',
+ 'Select from one of the projects below' => 'Seleccione um dos projectos abaixo',
+ 'Select postscript or PDF!' => 'Seleccione PostScript ou PDF',
+ 'Sep' => 'Set',
+ 'September' => 'Setembro',
+ 'Service' => 'Serviço',
+ 'Ship' => 'Expedir',
+ 'Ship to' => 'Expedir para',
+ 'Ship via' => 'Expedir via',
+ 'Subject' => 'Assunto',
+ 'Subtotal' => 'Sub-total',
+ 'Tax' => 'Imposto',
+ 'Tax Included' => 'Impostos incluídos',
+ 'Terms' => 'Termos: A pronto',
+ 'To' => 'Até',
+ 'Total' => 'Total',
+ 'Unit' => 'Unidade',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Fornecedor',
+ 'Vendor Invoice' => 'Factura de Compra',
+ 'Vendor missing!' => 'Falta fornecedor',
+ 'Vendor not on file!' => 'Fornecedor não existe',
+ 'What type of item is this?' => 'Que tipo de Item é este?',
+ 'Yes' => 'Sim',
+ 'days' => 'dias',
+ 'ea' => 'cd',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'remover' => 'delete',
+ 'pronto' => 'done',
+ 'e_mail' => 'e_mail',
+ 'imprimir' => 'print',
+ 'ordem_de_compra' => 'purchase_order',
+ 'factura_de_venda' => 'sales_invoice',
+ 'encomenda_de_venda' => 'sales_order',
+ 'guardar' => 'save',
+ 'guardar_como_novo' => 'save_as_new',
+ 'expedir_para' => 'ship_to',
+ 'actualizar' => 'update',
+ 'factura_de_compra' => 'vendor_invoice',
+ 'sim' => 'yes',
+};
+
+1;
+
diff --git a/locale/pt/pe b/locale/pt/pe
new file mode 100755
index 00000000..e969b198
--- /dev/null
+++ b/locale/pt/pe
@@ -0,0 +1,105 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menu de Contabilidade',
+ 'Active' => 'Activo',
+ 'Add' => 'Novo',
+ 'Add Project' => 'Novo Projecto',
+ 'Address' => 'Endereço',
+ 'All' => 'Todos',
+ 'Amount' => 'Total',
+ 'Bin' => 'Bin',
+ 'Continue' => 'Continuar',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => 'Falta cliente!',
+ 'Customer not on file!' => 'Cliente inexistente!',
+ 'Date' => 'Data',
+ 'Delete' => 'Remover',
+ 'Description' => 'Descrição',
+ 'Edit Project' => 'Editar Projecto',
+ 'Employee' => 'Funcionário',
+ 'From' => 'De',
+ 'Language' => 'Língua',
+ 'Link Accounts' => 'Ligar Contas',
+ 'List Price' => 'Listar Preço',
+ 'Notes' => 'Notas',
+ 'Nothing selected!' => 'Nada seleccionado',
+ 'Number' => 'Número',
+ 'Orphaned' => 'Órfão',
+ 'Project' => 'Projecto',
+ 'Project deleted!' => 'Projecto apagado',
+ 'Project saved!' => 'Projecto guardado',
+ 'Projects' => 'Projectos',
+ 'Qty' => 'Qtd',
+ 'Save' => 'Guardar',
+ 'Select from one of the names below' => 'Seleccione um dos nomes abaixo',
+ 'Sell Price' => 'Preço de Venda',
+ 'Tax' => 'Imposto',
+ 'To' => 'Até',
+ 'Unit' => 'Unidade',
+ 'Update' => 'Actualizar',
+ 'Updated' => 'Actualizado',
+ 'Vendor' => 'Fornecedor',
+ 'Vendor not on file!' => 'Fornecedor não existe',
+ 'Weight' => 'Peso',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'novo_projecto' => 'add_project',
+ 'continuar' => 'continue',
+ 'remover' => 'delete',
+ 'guardar' => 'save',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/pt/pos b/locale/pt/pos
new file mode 100755
index 00000000..4b811b01
--- /dev/null
+++ b/locale/pt/pos
@@ -0,0 +1,62 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menu de Contabilidade',
+ 'Amount' => 'Total',
+ 'Cannot post transaction!' => 'Não é possivel lançar transacção',
+ 'Continue' => 'Continuar',
+ 'Credit Limit' => 'Limite de Crédito',
+ 'Currency' => 'Moeda',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => 'Falta cliente!',
+ 'Delete' => 'Remover',
+ 'Description' => 'Descrição',
+ 'Exchange Rate' => 'Taxa de Câmbio',
+ 'Exchange rate missing!' => 'Falta a taxa de câmbio!',
+ 'From' => 'De',
+ 'Language' => 'Língua',
+ 'Number' => 'Número',
+ 'Open' => 'Abrir',
+ 'Post' => 'Processar',
+ 'Price' => 'Preço',
+ 'Print' => 'Imprimir',
+ 'Qty' => 'Qtd',
+ 'Receipts' => 'Recibos',
+ 'Record in' => 'Registar em',
+ 'Remaining' => 'Sobram',
+ 'Screen' => 'Ecran',
+ 'Source' => 'Origem',
+ 'Subtotal' => 'Sub-total',
+ 'Tax Included' => 'Impostos incluídos',
+ 'To' => 'Até',
+ 'Total' => 'Total',
+ 'Unit' => 'Unidade',
+ 'Update' => 'Actualizar',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'continuar' => 'continue',
+ 'remover' => 'delete',
+ 'processar' => 'post',
+ 'imprimir' => 'print',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/pt/ps b/locale/pt/ps
new file mode 100755
index 00000000..06757fb7
--- /dev/null
+++ b/locale/pt/ps
@@ -0,0 +1,279 @@
+$self{texts} = {
+ 'AP Aging' => 'Idade Saldos Fornecedores',
+ 'AP Transaction' => 'Transacção Fornecedores',
+ 'AP Transactions' => 'Transacções Fornecedores',
+ 'AR Aging' => 'Idade Saldos Clientes',
+ 'AR Transaction' => 'Transacção Clientes',
+ 'AR Transactions' => 'Transacções Clientes',
+ 'Account' => 'Conta',
+ 'Account Number' => 'Número da Conta',
+ 'Accounting Menu' => 'Menu de Contabilidade',
+ 'Accounts' => 'Contas',
+ 'Add Purchase Order' => 'Nova Ordem de Compra',
+ 'Add Sales Invoice' => 'Nova Factura de Venda',
+ 'Add Sales Order' => 'Nova Encomenda de Cliente',
+ 'Address' => 'Endereço',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Total em dívida',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => 'Tem a certeza que quer APAGAR a Factura Número',
+ 'Are you sure you want to delete Transaction' => 'Tem a certeza que quer APAGAR a Transacção',
+ 'Attachment' => 'Attachment',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Saldo',
+ 'Balance Sheet' => 'Folha de Balanço',
+ 'Bcc' => 'Bcc',
+ 'Bin' => 'Bin',
+ 'Cannot delete invoice!' => 'Não é possivel apagar a factura!',
+ 'Cannot delete transaction!' => 'Não é possivel apagar a transacção',
+ 'Cannot post invoice for a closed period!' => 'Não pode lançar factura em período fechado!',
+ 'Cannot post invoice!' => 'Não é possivel lançar factura!',
+ 'Cannot post payment for a closed period!' => 'Não pode lançar pagamento em período fechado!',
+ 'Cannot post transaction for a closed period!' => 'Não é possivel lançar transacção para um periodo fechado!',
+ 'Cannot post transaction!' => 'Não é possivel lançar transacção',
+ 'Cash' => 'Dinheiro',
+ 'Cc' => 'Cc',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Fechado',
+ 'Compare to' => 'Comparar com',
+ 'Confirm!' => 'Confirmar!',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Cópias',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Limite de Crédito',
+ 'Curr' => 'Moeda',
+ 'Currency' => 'Moeda',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => 'Falta cliente!',
+ 'Customer not on file!' => 'Cliente inexistente!',
+ 'Date' => 'Data',
+ 'Date Paid' => 'Data de pagamento',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezembro',
+ 'Decimalplaces' => 'Casas decimais',
+ 'Delete' => 'Remover',
+ 'Delivery Date' => 'Data de entrega',
+ 'Description' => 'Descrição',
+ 'Due Date' => 'Data de Vencimento',
+ 'Due Date missing!' => 'Falta Data de Vencimento!',
+ 'E-mail' => 'E-Mail',
+ 'E-mail address missing!' => 'Falta Endereço de E-mail!',
+ 'Edit Sales Invoice' => 'Editar Factura de Venda',
+ 'Employee' => 'Funcionário',
+ 'Exch' => 'Câmbio',
+ 'Exchange Rate' => 'Taxa de Câmbio',
+ 'Exchange rate for payment missing!' => 'Falta a taxa de câmbio para o pagamento!',
+ 'Exchange rate missing!' => 'Falta a taxa de câmbio!',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Fev',
+ 'February' => 'Fevereiro',
+ 'From' => 'De',
+ 'GIFI' => 'CFOP - Código Fiscal da Operação',
+ 'Heading' => 'Cabeçalho',
+ 'ID' => 'ID',
+ 'In-line' => 'Inline',
+ 'Include in Report' => 'Incluir no Relatório',
+ 'Income Statement' => 'Estado de Receitas',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Data de Factura',
+ 'Invoice Date missing!' => 'Data de Factura não encontrada!',
+ 'Invoice Number' => 'Número de Factura',
+ 'Invoice Number missing!' => 'Número de Factura não encontrado!',
+ 'Invoice deleted!' => 'Factura apagada',
+ 'Item not on file!' => 'Item não está no arquivo!',
+ 'Jan' => 'Jan',
+ 'January' => 'Janeiro',
+ 'Jul' => 'Jul',
+ 'July' => 'Julho',
+ 'Jun' => 'Jun',
+ 'June' => 'Junho',
+ 'Language' => 'Língua',
+ 'Mar' => 'Mar',
+ 'March' => 'Março',
+ 'May' => 'Mai',
+ 'May ' => 'Maio',
+ 'Message' => 'Mensagem',
+ 'N/A' => 'N/D',
+ 'Notes' => 'Notas',
+ 'Nothing selected!' => 'Nada seleccionado',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembro',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'Falta numero na Linha',
+ 'Oct' => 'Out',
+ 'October' => 'Outubro',
+ 'Open' => 'Abrir',
+ 'Order' => 'Encomenda',
+ 'Order Date missing!' => 'Falta data da Encomenda',
+ 'Order Number' => 'Encomenda Número',
+ 'Order Number missing!' => 'Falta numero da Encomenda!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de Expedição',
+ 'Packing List Date missing!' => 'Falta Data da Lista de Expedição',
+ 'Packing List Number missing!' => 'Falta Numero de Lista de Expedição',
+ 'Paid' => 'Total Pago',
+ 'Part' => 'Produto',
+ 'Payment date missing!' => 'Falta Data de Pagamento!',
+ 'Payments' => 'Pagamentos',
+ 'Phone' => 'Tel',
+ 'Post' => 'Processar',
+ 'Post as new' => 'Processar como novo',
+ 'Postscript' => 'PostScript',
+ 'Price' => 'Preço',
+ 'Print' => 'Imprimir',
+ 'Project' => 'Projecto',
+ 'Project not on file!' => 'Projecto não existe',
+ 'Purchase Order' => 'Ordem de Compra',
+ 'Qty' => 'Qtd',
+ 'Recd' => 'Recebido',
+ 'Receipt' => 'Recibo',
+ 'Receipts' => 'Recibos',
+ 'Record in' => 'Registar em',
+ 'Reference' => 'Referência',
+ 'Remaining' => 'Sobram',
+ 'Report for' => 'Relatório para',
+ 'Required by' => 'Requerido por',
+ 'Sales Order' => 'Encomenda de Venda',
+ 'Screen' => 'Ecran',
+ 'Select all' => 'Seleccionar todos',
+ 'Select from one of the names below' => 'Seleccione um dos nomes abaixo',
+ 'Select from one of the projects below' => 'Seleccione um dos projectos abaixo',
+ 'Select postscript or PDF!' => 'Seleccione PostScript ou PDF',
+ 'Sep' => 'Set',
+ 'September' => 'Setembro',
+ 'Service' => 'Serviço',
+ 'Ship' => 'Expedir',
+ 'Ship to' => 'Expedir para',
+ 'Ship via' => 'Expedir via',
+ 'Source' => 'Origem',
+ 'Standard' => 'Padrão',
+ 'Subject' => 'Assunto',
+ 'Subtotal' => 'Sub-total',
+ 'Tax' => 'Imposto',
+ 'Tax Included' => 'Impostos incluídos',
+ 'Tax collected' => 'Imposto recolhido',
+ 'Tax paid' => 'Imposto pago',
+ 'To' => 'Até',
+ 'Total' => 'Total',
+ 'Transaction deleted!' => 'Transacção apagada',
+ 'Transaction posted!' => 'Transacção processada',
+ 'Trial Balance' => 'Balancete',
+ 'Unit' => 'Unidade',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Fornecedor',
+ 'Vendor missing!' => 'Falta fornecedor',
+ 'Vendor not on file!' => 'Fornecedor não existe',
+ 'What type of item is this?' => 'Que tipo de Item é este?',
+ 'Yes' => 'Sim',
+ 'ea' => 'cd',
+ 'for Period' => 'pelo período',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'transacção_fornecedores' => 'ap_transaction',
+ 'transacção_clientes' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'remover' => 'delete',
+ 'e_mail' => 'e_mail',
+ 'processar' => 'post',
+ 'processar_como_novo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'encomenda_de_venda' => 'sales_order',
+ 'seleccionar_todos' => 'select_all',
+ 'expedir_para' => 'ship_to',
+ 'actualizar' => 'update',
+ 'sim' => 'yes',
+};
+
+1;
+
diff --git a/locale/pt/pw b/locale/pt/pw
new file mode 100755
index 00000000..32c8a6be
--- /dev/null
+++ b/locale/pt/pw
@@ -0,0 +1,12 @@
+$self{texts} = {
+ 'Continue' => 'Continuar',
+ 'Password' => 'Password',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/pt/rc b/locale/pt/rc
new file mode 100755
index 00000000..d36e444a
--- /dev/null
+++ b/locale/pt/rc
@@ -0,0 +1,64 @@
+$self{texts} = {
+ 'Account' => 'Conta',
+ 'Accounting Menu' => 'Menu de Contabilidade',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Saldo',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Date' => 'Data',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezembro',
+ 'Description' => 'Descrição',
+ 'Difference' => 'Diferença',
+ 'Done' => 'Pronto',
+ 'Feb' => 'Fev',
+ 'February' => 'Fevereiro',
+ 'From' => 'De',
+ 'Jan' => 'Jan',
+ 'January' => 'Janeiro',
+ 'Jul' => 'Jul',
+ 'July' => 'Julho',
+ 'Jun' => 'Jun',
+ 'June' => 'Junho',
+ 'Mar' => 'Mar',
+ 'March' => 'Março',
+ 'May' => 'Mai',
+ 'May ' => 'Maio',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembro',
+ 'Oct' => 'Out',
+ 'October' => 'Outubro',
+ 'Reconciliation' => 'Reconciliação',
+ 'Select all' => 'Seleccionar todos',
+ 'Sep' => 'Set',
+ 'September' => 'Setembro',
+ 'Source' => 'Origem',
+ 'To' => 'Até',
+ 'Update' => 'Actualizar',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'continuar' => 'continue',
+ 'pronto' => 'done',
+ 'seleccionar_todos' => 'select_all',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/pt/rp b/locale/pt/rp
new file mode 100755
index 00000000..37b6310c
--- /dev/null
+++ b/locale/pt/rp
@@ -0,0 +1,151 @@
+$self{texts} = {
+ 'AP Aging' => 'Idade Saldos Fornecedores',
+ 'AR Aging' => 'Idade Saldos Clientes',
+ 'Account' => 'Conta',
+ 'Account Number' => 'Número da Conta',
+ 'Accounting Menu' => 'Menu de Contabilidade',
+ 'Accounts' => 'Contas',
+ 'Address' => 'Endereço',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Attachment' => 'Attachment',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Saldo',
+ 'Balance Sheet' => 'Folha de Balanço',
+ 'Bcc' => 'Bcc',
+ 'Cash' => 'Dinheiro',
+ 'Cc' => 'Cc',
+ 'Compare to' => 'Comparar com',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Cópias',
+ 'Credit' => 'Crédito',
+ 'Curr' => 'Moeda',
+ 'Customer' => 'Cliente',
+ 'Customer not on file!' => 'Cliente inexistente!',
+ 'Date' => 'Data',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dez',
+ 'December' => 'Dezembro',
+ 'Decimalplaces' => 'Casas decimais',
+ 'Description' => 'Descrição',
+ 'Due Date' => 'Data de Vencimento',
+ 'E-mail' => 'E-Mail',
+ 'E-mail address missing!' => 'Falta Endereço de E-mail!',
+ 'Feb' => 'Fev',
+ 'February' => 'Fevereiro',
+ 'From' => 'De',
+ 'GIFI' => 'CFOP - Código Fiscal da Operação',
+ 'Heading' => 'Cabeçalho',
+ 'ID' => 'ID',
+ 'In-line' => 'Inline',
+ 'Include in Report' => 'Incluir no Relatório',
+ 'Income Statement' => 'Estado de Receitas',
+ 'Invoice' => 'Factura',
+ 'Jan' => 'Jan',
+ 'January' => 'Janeiro',
+ 'Jul' => 'Jul',
+ 'July' => 'Julho',
+ 'Jun' => 'Jun',
+ 'June' => 'Junho',
+ 'Language' => 'Língua',
+ 'Mar' => 'Mar',
+ 'March' => 'Março',
+ 'May' => 'Mai',
+ 'May ' => 'Maio',
+ 'Message' => 'Mensagem',
+ 'N/A' => 'N/D',
+ 'Nothing selected!' => 'Nada seleccionado',
+ 'Nov' => 'Nov',
+ 'November' => 'Novembro',
+ 'Number' => 'Número',
+ 'Oct' => 'Out',
+ 'October' => 'Outubro',
+ 'Order' => 'Encomenda',
+ 'PDF' => 'PDF',
+ 'Payments' => 'Pagamentos',
+ 'Postscript' => 'PostScript',
+ 'Print' => 'Imprimir',
+ 'Project' => 'Projecto',
+ 'Project not on file!' => 'Projecto não existe',
+ 'Receipts' => 'Recibos',
+ 'Reference' => 'Referência',
+ 'Report for' => 'Relatório para',
+ 'Screen' => 'Ecran',
+ 'Select all' => 'Seleccionar todos',
+ 'Select from one of the names below' => 'Seleccione um dos nomes abaixo',
+ 'Select from one of the projects below' => 'Seleccione um dos projectos abaixo',
+ 'Select postscript or PDF!' => 'Seleccione PostScript ou PDF',
+ 'Sep' => 'Set',
+ 'September' => 'Setembro',
+ 'Source' => 'Origem',
+ 'Standard' => 'Padrão',
+ 'Subject' => 'Assunto',
+ 'Subtotal' => 'Sub-total',
+ 'Tax' => 'Imposto',
+ 'Tax collected' => 'Imposto recolhido',
+ 'Tax paid' => 'Imposto pago',
+ 'To' => 'Até',
+ 'Total' => 'Total',
+ 'Trial Balance' => 'Balancete',
+ 'Vendor' => 'Fornecedor',
+ 'Vendor not on file!' => 'Fornecedor não existe',
+ 'for Period' => 'pelo período',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuar' => 'continue',
+ 'e_mail' => 'e_mail',
+ 'imprimir' => 'print',
+ 'seleccionar_todos' => 'select_all',
+};
+
+1;
+
diff --git a/locale/py/COPYING b/locale/py/COPYING
new file mode 100755
index 00000000..74e9462d
--- /dev/null
+++ b/locale/py/COPYING
@@ -0,0 +1,27 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2002-2004
+#
+# Spanish texts:
+#
+# Author: Maria Gabriela Fong <mgfong@maga.tzo.org>
+# John Stoddart <jstypo@imagencolor.com.ve>
+# Federico Montesino Pouzols <fedemp@arrok.com>
+# Tomás Pereira <topec@percar.com>
+# Mario L. Epp <cosanzo@epp.name>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/py/LANGUAGE b/locale/py/LANGUAGE
new file mode 100755
index 00000000..0eef9d8e
--- /dev/null
+++ b/locale/py/LANGUAGE
@@ -0,0 +1 @@
+Spanish/Paraguay
diff --git a/locale/py/Num2text b/locale/py/Num2text
new file mode 100755
index 00000000..88ffe737
--- /dev/null
+++ b/locale/py/Num2text
@@ -0,0 +1,212 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (C) 2002
+#
+# Author: Dieter Simader
+# Email: dsimader@sql-ledger.org
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+# Language: Spanish
+# Contributors: John Christian Stoddart
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#======================================================================
+
+
+sub init {
+ my $self = shift;
+
+ %{ $self->{numbername} } =
+ (0 => 'cero',
+ 1 => 'un',
+ '1o' => 'uno',
+ 2 => 'dos',
+ 3 => 'tres',
+ 4 => 'cuatro',
+ 5 => 'cinco',
+ 6 => 'seis',
+ 7 => 'siete',
+ 8 => 'ocho',
+ 9 => 'nueve',
+ 10 => 'diez',
+ 11 => 'once',
+ '11o' => 'once',
+ 12 => 'doce',
+ 13 => 'trece',
+ 14 => 'catorce',
+ 15 => 'quince',
+ 16 => 'dieciséis',
+ 17 => 'diecisiete',
+ 18 => 'dieciocho',
+ 19 => 'diecinueve',
+ 20 => 'veinte',
+ 21 => 'veintiún',
+ '21o' => 'veintiuno',
+ 22 => 'veintidós',
+ 23 => 'veintitrés',
+ 24 => 'veinticuatro',
+ 25 => 'veinticinco',
+ 26 => 'veintiséis',
+ 27 => 'veintisiete',
+ 28 => 'veintiocho',
+ 29 => 'veintinueve',
+ 30 => 'treinta',
+ 40 => 'cuarenta',
+ 50 => 'cincuenta',
+ 60 => 'sesenta',
+ 70 => 'setenta',
+ 80 => 'ochenta',
+ 90 => 'noventa',
+ 500 => 'quinientos',
+ 700 => 'setecientos',
+ 900 => 'novecientos',
+ 10**2 => 'ciento',
+ 10**3 => 'mil',
+ 10**6 => 'millón',
+ 10**12 => 'billón',
+ );
+
+}
+
+
+sub num2text {
+ my ($self, $amount) = @_;
+
+ return $self->{numbername}{0} unless $amount;
+
+ my @textnumber = ();
+
+ # split amount into chunks of 3
+ my @num = reverse split //, abs($amount);
+ my @numblock = ();
+ my $stripun = 0;
+ my @a = ();
+ my $i;
+
+ while (@num) {
+ @a = ();
+ for (1 .. 3) {
+ push @a, shift @num;
+ }
+ push @numblock, join / /, reverse @a;
+ }
+
+ # special case for 1000
+ if ($numblock[1] eq '1' && $numblock[0] gt '000') {
+ # remove first array element from textnumber
+ $stripun = 1;
+ }
+
+ while (@numblock) {
+
+ $i = $#numblock;
+ @num = split //, $numblock[$i];
+
+ $numblock[$i] *= 1;
+
+ if ($numblock[$i] == 0) {
+ pop @numblock;
+ next;
+ }
+
+ if ($numblock[$i] > 99) {
+ if ($num[0] == 1) {
+ push @textnumber, $self->{numbername}{10**2};
+ } else {
+ # special case for 500, 700, 900
+ if (grep /$num[0]/, (5,7,9)) {
+ push @textnumber, $self->{numbername}{"${num[0]}00"};
+
+ } else {
+
+ # the one from hundreds, append cientos
+ push @textnumber, $self->{numbername}{$num[0]}.$self->{numbername}{10**2}.'s';
+
+ }
+ }
+
+ # reduce numblock
+ $numblock[$i] -= $num[0] * 100;
+ }
+
+ if ($numblock[$i] > 9) {
+ # tens
+ push @textnumber, $self->format_ten($numblock[$i], $i);
+ } elsif ($numblock[$i] > 0) {
+ # ones
+ $num = $numblock[$i];
+ $num .= 'o' if ($num == 1 && $i == 0);
+ push @textnumber, $self->{numbername}{$num};
+ }
+
+ # add thousand, million
+ if ($i) {
+ $num = 10**($i * 3);
+ if ($numblock[$i] > 1) {
+ if ($i == 2 || $i == 4) {
+ $a = $self->{numbername}{$num}."es";
+ $a =~ s/ó/o/;
+ push @textnumber, $a;
+ } elsif ($i == 3) {
+ $num = 10**($i * 2);
+ $a = "$self->{10**3} $self->{numbername}{$num}"."es";
+ $a =~ s/ó/o/;
+ push @textnumber, $a;
+ } else {
+ if ($i == 1) {
+ push @textnumber, $self->{numbername}{$num};
+ } else {
+ push @textnumber, $self->{numbername}{$num}.'s';
+ }
+ }
+ } else {
+ push @textnumber, $self->{numbername}{$num};
+ }
+ }
+
+ pop @numblock;
+
+ }
+
+ shift @textnumber if $stripun;
+
+ join ' ', @textnumber;
+
+}
+
+
+sub format_ten {
+ my ($self, $amount, $i) = @_;
+
+ my $textnumber = "";
+ my @num = split //, $amount;
+
+ if ($amount > 30) {
+ $textnumber = $self->{numbername}{$num[0]*10};
+ $amount = $num[1];
+ } else {
+ $amount .= 'o' if ($num[1] == 1 && $i == 0);
+ $textnumber = $self->{numbername}{$amount};
+ $amount = 0;
+ }
+
+ $textnumber .= " y ".$self->{numbername}{$amount} if $amount;
+
+ $textnumber;
+
+}
+
+
+1;
+
diff --git a/locale/py/aa b/locale/py/aa
new file mode 100755
index 00000000..25886947
--- /dev/null
+++ b/locale/py/aa
@@ -0,0 +1,156 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Cuentas a Pagar pendientes',
+ 'AP Transaction' => 'Movimiento de Cuentas a Pagar',
+ 'AP Transactions' => 'Movimientos de Cuentas a Pagar',
+ 'AR Outstanding' => 'Cuentas a Cobrar pendientes',
+ 'AR Transaction' => 'Movimiento de Cuentas a Cobrar',
+ 'AR Transactions' => 'Movimientos de Cuentas a Cobrar',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Add AP Transaction' => 'Agregar Asiento de Cuentas a Pagar',
+ 'Add AR Transaction' => 'Agregar Asiento de Cuentas a Cobrar',
+ 'Amount' => 'Importe',
+ 'Amount Due' => 'Importe Adeudado',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => '¿Seguro que desea borrar el Asiento?',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Cannot delete transaction!' => '¡No se puede borrar el Asiento!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un Pago para un periodo cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar un Asiento para un periodo cerrado!',
+ 'Cannot post transaction!' => '¡No se puede registrar el Asiento!',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Cerrado',
+ 'Confirm!' => '¡Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Límite de Crédito',
+ 'Curr' => 'Div',
+ 'Currency' => 'Divisa',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el Cliente!',
+ 'Date' => 'Fecha',
+ 'Date Paid' => 'Fecha de Pago',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'Due Date missing!' => '¡Falta fecha de vencimiento!',
+ 'Edit AP Transaction' => 'Modificar asiento de Cuentas a Pagar',
+ 'Edit AR Transaction' => 'Modificar asiento de Cuentas a Cobrar',
+ 'Employee' => 'Empleado',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate for payment missing!' => '¡Falta la tasa de cambio para el pago!',
+ 'Exchange rate missing!' => '¡Falta la tasa de cambio!',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => '¡Falta la fecha de la factura!',
+ 'Invoice Number' => 'Número de factura',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Manager' => 'Gerente',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Nota',
+ 'Month' => 'Mes',
+ 'No.' => 'Nº',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Number' => 'Número de la orden',
+ 'Paid' => 'Pagado',
+ 'Payment date missing!' => '¡Falta la fecha del pago!',
+ 'Payments' => 'Pagos',
+ 'Period' => 'Periodo',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Project' => 'Proyecto',
+ 'Quarter' => 'Trimestre',
+ 'Receipt' => 'Recibo',
+ 'Remaining' => 'Remanente',
+ 'Sales Invoice.' => 'Factura (venta).',
+ 'Salesperson' => 'Vendedor',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Ship to' => 'Enviar a',
+ 'Ship via' => 'Enviar por',
+ 'Shipping Point' => 'Punto de envío',
+ 'Source' => 'Origen',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resúmen',
+ 'Tax' => 'Impuestos',
+ 'Tax Included' => 'IVA Incluido',
+ 'Till' => 'Caja Registradora',
+ 'To' => 'Hasta',
+ 'Total' => 'Total',
+ 'Transaction' => 'Asiento',
+ 'Transaction deleted!' => '¡Asiento borrado!',
+ 'Transaction posted!' => '¡Asiento registrado!',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice.' => 'Factura de Proveedor.',
+ 'Vendor missing!' => '¡Falta el Proveedor!',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'movimiento_de_cuentas_a_pagar' => 'ap_transaction',
+ 'movimiento_de_cuentas_a_cobrar' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'imprimir_y_registrar' => 'print_and_post',
+ 'factura_(venta)_' => 'sales_invoice_',
+ 'enviar_a' => 'ship_to',
+ 'actualizar' => 'update',
+ 'factura_de_proveedor_' => 'vendor_invoice_',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/py/admin b/locale/py/admin
new file mode 100755
index 00000000..725bbfd6
--- /dev/null
+++ b/locale/py/admin
@@ -0,0 +1,143 @@
+$self{texts} = {
+ 'Access Control' => 'Control de Acceso',
+ 'Accounting' => 'Contabilidad',
+ 'Add User' => 'Agregar Usuario',
+ 'Address' => 'Dirección',
+ 'Administration' => 'Administración',
+ 'Administrator' => 'Administrador',
+ 'All Datasets up to date!' => '¡Todas las Bases de Datos están actualizadas!',
+ 'Cannot create Lock!' => '¡No se puede crear el archivo de bloqueo!',
+ 'Change Admin Password' => 'Cambiar la contraseña del administrador',
+ 'Change Password' => 'Cambiar contraseña',
+ 'Click on login name to edit!' => '¡Seleccione el nombre del usuario que desea modificar!',
+ 'Company' => 'Empresa',
+ 'Confirm' => 'Confirmar',
+ 'Connect to' => 'Conectar a',
+ 'Continue' => 'Continuar',
+ 'Create Chart of Accounts' => 'Crear Plan de Cuentas',
+ 'Create Dataset' => 'Crear Base de Datos',
+ 'DBI not installed!' => '¡DBI no está instalado!',
+ 'Database' => 'Base de datos',
+ 'Database Administration' => 'Administración de base de datos',
+ 'Database Driver not checked!' => '¡No seleccionó un manejador de bases de datos!',
+ 'Database User missing!' => '¡Falta el usuario de base de datos!',
+ 'Dataset' => 'Base de Datos',
+ 'Dataset missing!' => 'Falta Base de Datos!',
+ 'Dataset updated!' => 'Base de Datos actualizada!',
+ 'Date Format' => 'Formato de Fecha',
+ 'Delete' => 'Borrar',
+ 'Delete Dataset' => 'Borrar base de datos',
+ 'Directory' => 'Directorio',
+ 'Driver' => 'Manejador',
+ 'Dropdown Limit' => 'Limite en listas desplegables',
+ 'E-mail' => 'Correo electrónico',
+ 'Edit User' => 'Modificar Usuario',
+ 'Existing Datasets' => 'Bases de datos existentes',
+ 'Fax' => 'Fax',
+ 'Host' => 'Servidor',
+ 'Hostname missing!' => '¡Falta el nombre del servidor!',
+ 'Language' => 'Idioma',
+ 'Lock System' => 'Bloquear el sistema',
+ 'Lockfile created!' => '¡Archivo de bloqueo creado!',
+ 'Lockfile removed!' => '¡Archivo de bloqueo borrado!',
+ 'Login' => 'Entrada al sistema',
+ 'Login name missing!' => '¡Falta el nombre del usuario!',
+ 'Logout' => 'Salir del Sistema',
+ 'Manager' => 'Gerente',
+ 'Menu Width' => 'Ancho del Menú',
+ 'Multibyte Encoding' => 'Codificación Multibyte',
+ 'Name' => 'Nombre',
+ 'New Templates' => 'Plantillas Nuevas',
+ 'No Database Drivers available!' => '¡No hay manejadores de bases de datos disponibles!',
+ 'No Dataset selected!' => '¡No ha seleccionado una base de datos!',
+ 'Nothing to delete!' => '¡No hay nada para borrar!',
+ 'Number Format' => 'Formato Numérico',
+ 'Oracle Database Administration' => 'Administración de la base de datos Oracle',
+ 'Password' => 'Contraseña',
+ 'Password changed!' => '¡Contraseña cambiada!',
+ 'Passwords do not match!' => '¡Las contraseñas no coinciden!',
+ 'Pg Database Administration' => 'Administración de base de datos Pg',
+ 'PgPP Database Administration' => 'Administración de base de datos PgPP',
+ 'Phone' => 'Teléfono',
+ 'Port' => 'Puerto',
+ 'Port missing!' => '¡Falta el puerto!',
+ 'Printer' => 'Impresora',
+ 'Save' => 'Guardar',
+ 'Session Timeout' => 'Expiración de la sesión',
+ 'Session expired!' => '¡La sesión caducó!',
+ 'Setup Templates' => 'Configurar Plantillas',
+ 'Signature' => 'Firma',
+ 'Stylesheet' => 'Hoja de estilos',
+ 'Supervisor' => 'Supervisor',
+ 'Templates' => 'Plantillas',
+ 'The following Datasets are not in use and can be deleted' => 'Las siguientes bases de datos no están en uso y pueden ser borradas',
+ 'The following Datasets need to be updated' => 'Es necesario actualizar las siguientes bases de datos',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Verificación preliminar. En esta etapa no se creará ni se borrará nada!',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Para agregar un usuario a un grupo, seleccione un nombre, cambie el nombre de usuario (login) y guarde los cambios. Un nuevo usuario con las mismas variables se creará bajo el nuevo nombre de usuario (login).',
+ 'Unlock System' => 'Desbloquear el sistema',
+ 'Update Dataset' => 'Actualizar base de datos',
+ 'Use Templates' => 'Usar Plantillas',
+ 'User' => 'Usuario',
+ 'User deleted!' => '¡Usuario borrado!',
+ 'User saved!' => '¡Usuario guardado!',
+ 'Version' => 'Versión',
+ 'You are logged out' => 'Usted ha salido del sistema',
+ 'does not exist' => 'no existe',
+ 'is already a member!' => '¡ya es miembro!',
+ 'localhost' => 'servidor local',
+ 'locked!' => '¡bloqueado!',
+ 'successfully created!' => '¡creado con éxito!',
+ 'successfully deleted!' => '¡borrado con éxito!',
+ 'website' => 'sitio web',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'agregar_usuario' => 'add_user',
+ 'cambiar_la_contraseña_del_administrador' => 'change_admin_password',
+ 'cambiar_contraseña' => 'change_password',
+ 'continuar' => 'continue',
+ 'crear_base_de_datos' => 'create_dataset',
+ 'borrar' => 'delete',
+ 'borrar_base_de_datos' => 'delete_dataset',
+ 'bloquear_el_sistema' => 'lock_system',
+ 'entrada_al_sistema' => 'login',
+ 'salir_del_sistema' => 'logout',
+ 'administración_de_la_base_de_datos_oracle' => 'oracle_database_administration',
+ 'administración_de_base_de_datos_pg' => 'pg_database_administration',
+ 'administración_de_base_de_datos_pgpp' => 'pgpp_database_administration',
+ 'guardar' => 'save',
+ 'desbloquear_el_sistema' => 'unlock_system',
+ 'actualizar_base_de_datos' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/py/all b/locale/py/all
new file mode 100755
index 00000000..b99e8691
--- /dev/null
+++ b/locale/py/all
@@ -0,0 +1,894 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+
+$self{texts} = {
+ 'A' => 'A',
+ 'AP' => 'Cuentas a Pagar',
+ 'AP Aging' => 'Vencimiento de Cuentas a Pagar',
+ 'AP Outstanding' => 'Cuentas a Pagar pendientes',
+ 'AP Transaction' => 'Movimiento de Cuentas a Pagar',
+ 'AP Transactions' => 'Movimientos de Cuentas a Pagar',
+ 'AR' => 'Cuentas a Cobrar',
+ 'AR Aging' => 'Vencimiento Cuentas a Cobrar',
+ 'AR Outstanding' => 'Cuentas a Cobrar pendientes',
+ 'AR Transaction' => 'Movimiento de Cuentas a Cobrar',
+ 'AR Transactions' => 'Movimientos de Cuentas a Cobrar',
+ 'AR/AP' => '',
+ 'About' => 'Acerca de',
+ 'Above' => 'Encima de',
+ 'Access Control' => 'Control de Acceso',
+ 'Access Denied!' => '',
+ 'Account' => 'Cuenta',
+ 'Account Number' => 'Número de Cuenta',
+ 'Account Number missing!' => '¡Falta el Número de Cuenta!',
+ 'Account Type' => 'Tipo de Cuenta',
+ 'Account Type missing!' => '¡Falta el Tipo de Cuenta!',
+ 'Account deleted!' => '¡Cuenta eliminada!',
+ 'Account does not exist!' => '¡Cuenta no existe!',
+ 'Account saved!' => '¡Cuenta guardada!',
+ 'Accounting' => 'Contabilidad',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Accounts' => 'Cuentas',
+ 'Accrual' => 'Acumulado',
+ 'Activate Audit trail' => 'Activar Rastro Auditoría',
+ 'Activate Audit trails' => 'Activar Rastro Auditoría',
+ 'Active' => 'Activo',
+ 'Add' => 'Agregar',
+ 'Add AP Transaction' => 'Agregar Asiento de Cuentas a Pagar',
+ 'Add AR Transaction' => 'Agregar Asiento de Cuentas a Cobrar',
+ 'Add Account' => 'Agregar Cuenta',
+ 'Add Assembly' => 'Agregar Ensamblaje',
+ 'Add Business' => 'Agregar Negocio',
+ 'Add Cash Transfer Transaction' => 'Agregar Transferencia de Efectivo',
+ 'Add Customer' => 'Agregar Cliente',
+ 'Add Deduction' => 'Agregar Descuento',
+ 'Add Department' => 'Agregar Centro de Costos',
+ 'Add Employee' => 'Agregar Empleado',
+ 'Add Exchange Rate' => 'Agregar Cotización de Moneda',
+ 'Add GIFI' => 'Agregar PCF',
+ 'Add General Ledger Transaction' => 'Agregar Asiento al Mayor General',
+ 'Add Group' => 'Agregar Grupo',
+ 'Add Job' => '',
+ 'Add Labor/Overhead' => 'Agregar Mano de Obra',
+ 'Add Language' => 'Agregar Idioma',
+ 'Add POS Invoice' => 'Agregar Factura Punto de Venta',
+ 'Add Part' => 'Agregar Artículo',
+ 'Add Pricegroup' => 'Agregar Grupo de Precios',
+ 'Add Project' => 'Agregar Proyecto',
+ 'Add Purchase Order' => 'Agregar Orden de Compra',
+ 'Add Quotation' => 'Agregar Cotización',
+ 'Add Request for Quotation' => 'Pedir Cotización',
+ 'Add SIC' => 'Agregar CIS',
+ 'Add Sales Invoice' => 'Agregar Factura de Venta',
+ 'Add Sales Order' => 'Agregar Orden de Venta',
+ 'Add Service' => 'Agregar Servicio',
+ 'Add Timecard' => '',
+ 'Add Transaction' => 'Agregar Transacción',
+ 'Add User' => 'Agregar Usuario',
+ 'Add Vendor' => 'Agregar Proveedor',
+ 'Add Vendor Invoice' => 'Agregar Factura de Proveedor',
+ 'Add Warehouse' => 'Agregar Almacén',
+ 'Address' => 'Dirección',
+ 'Administration' => 'Administración',
+ 'Administrator' => 'Administrador',
+ 'After Deduction' => 'Después del Descuento',
+ 'All' => 'Todo',
+ 'All Accounts' => 'Todas las Cuentas',
+ 'All Datasets up to date!' => '¡Todas las Bases de Datos están actualizadas!',
+ 'All Items' => 'Todos los Artículos',
+ 'Allowances' => 'Subsidios',
+ 'Amount' => 'Importe',
+ 'Amount Due' => 'Importe Adeudado',
+ 'Amount missing!' => '¡Falta el Importe!',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => '¿Seguro que desea borrar la Factura?',
+ 'Are you sure you want to delete Order Number' => '¿Seguro que desea borrar la Orden de Compra/Pedido?',
+ 'Are you sure you want to delete Quotation Number' => '¿Seguro que desea borrar la Cotización?',
+ 'Are you sure you want to delete Timecard for' => '',
+ 'Are you sure you want to delete Transaction' => '¿Seguro que desea borrar el Asiento?',
+ 'Are you sure you want to remove the marked entries from the queue?' => '¿Seguro que desea borrar las entradas seleccionadas de la cola?',
+ 'Assemblies' => 'Ensamblajes',
+ 'Assemblies restocked!' => 'Ensamblajes re-inventariados!',
+ 'Assembly' => 'Ensamblaje',
+ 'Assembly stocked!' => '',
+ 'Asset' => 'Activo',
+ 'Attachment' => 'Adjunto',
+ 'Audit Control' => 'Control de Auditoría',
+ 'Audit trail disabled' => 'Rastro de Auditoría desactivado',
+ 'Audit trail enabled' => 'Rastro de Auditoría activado',
+ 'Audit trail removed up to' => 'Rastro de Auditoría eliminado hasta',
+ 'Audit trails disabled' => 'Rastro de Auditoría desactivado',
+ 'Audit trails enabled' => 'Rastro de Auditoría activado',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Average Cost' => '',
+ 'Avg Cost' => '',
+ 'BIC' => 'BIC',
+ 'BOM' => 'Lista de Materiales',
+ 'Backup' => 'Copia de Seguridad de los datos',
+ 'Backup sent to' => 'Copia de Seguridad enviada a',
+ 'Balance' => 'Saldo',
+ 'Balance Sheet' => 'Balance General',
+ 'Based on' => 'Basado en',
+ 'Bcc' => 'B.C.C.',
+ 'Before Deduction' => 'Antes del Descuento',
+ 'Beginning Balance' => 'Saldo Inicial',
+ 'Below' => 'Debajo de',
+ 'Billing Address' => 'Dirección para Facturación',
+ 'Bin' => 'Ubicación',
+ 'Bin List' => 'Lista de Ubicaciones',
+ 'Bin Lists' => 'Listas de Ubicaciones',
+ 'Books are open' => 'Los Libros están abiertos',
+ 'Break' => 'Romper',
+ 'Business' => 'Negocio',
+ 'Business Number' => 'RUC',
+ 'Business deleted!' => '¡Negocio borrado!',
+ 'Business saved!' => '¡Negocio guardado!',
+ 'C' => 'C',
+ 'COGS' => 'Costo de Artículos Vendidos',
+ 'COGS account does not exist!' => '',
+ 'Cannot add timecard for a completed job!' => '',
+ 'Cannot change timecard for a completed job!' => '',
+ 'Cannot create Assembly' => '',
+ 'Cannot create Labor' => '',
+ 'Cannot create Lock!' => '¡No se puede crear el archivo de bloqueo!',
+ 'Cannot create Part' => '',
+ 'Cannot create Service' => '',
+ 'Cannot delete Timecard!' => '',
+ 'Cannot delete account!' => '¡No se puede borrar la Cuenta!',
+ 'Cannot delete customer!' => '¡No se puede borrar el Cliente!',
+ 'Cannot delete default account!' => '¡No se puede borrar la Cuenta por Defecto!',
+ 'Cannot delete invoice!' => '¡No se puede borrar la Factura!',
+ 'Cannot delete item!' => '¡No se puede borrar el Artículo!',
+ 'Cannot delete order!' => '¡No se puede borrar la Orden!',
+ 'Cannot delete quotation!' => '¡No se puede borrar la Cotización!',
+ 'Cannot delete transaction!' => '¡No se puede borrar el Asiento!',
+ 'Cannot delete vendor!' => '¡No se puede borrar el Proveedor!',
+ 'Cannot post Payment!' => '¡No se puede registrar el Pago!',
+ 'Cannot post Receipt!' => '¡No se puede registrar el Recibo!',
+ 'Cannot post invoice for a closed period!' => '¡No se puede registrar una Factura para un periodo cerrado!',
+ 'Cannot post invoice!' => '¡No se puede registrar la Factura!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un Pago para un periodo cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar un Asiento para un periodo cerrado!',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => '',
+ 'Cannot post transaction!' => '¡No se puede registrar el Asiento!',
+ 'Cannot remove files!' => '¡No se pueden borrar los archivos!',
+ 'Cannot save account!' => '¡No se puede guardar la Cuenta!',
+ 'Cannot save defaults!' => '¡No se puede guardar los Predeterminados!',
+ 'Cannot save order!' => '¡No se puede guardar la Orden!',
+ 'Cannot save preferences!' => '¡No se puede guardar las Preferencias!',
+ 'Cannot save quotation!' => '¡No se puede guardar la Cotización!',
+ 'Cannot save timecard for a closed period!' => '',
+ 'Cannot save timecard!' => '',
+ 'Cannot set account for more than one of AR, AP or IC' => 'No se puede configurar una Cuenta para más de una de las opciones (AR, AP o IC)',
+ 'Cannot set multiple options for' => 'No se pueden configurar opciones múltiples para',
+ 'Cannot set multiple options for Item' => '',
+ 'Cannot stock Assembly!' => '',
+ 'Cannot stock assemblies!' => '¡No se pueden almacenar los ensamblajes!',
+ 'Cash' => 'Efectivo',
+ 'Cc' => 'C.C.',
+ 'Change' => 'Cambiar',
+ 'Change Admin Password' => 'Cambiar la contraseña del administrador',
+ 'Change Password' => 'Cambiar contraseña',
+ 'Charge' => '',
+ 'Chart of Accounts' => 'Plan de Cuentas',
+ 'Check' => 'Cheque',
+ 'Check Inventory' => 'Verificar existencia',
+ 'Checks' => 'Cheques',
+ 'City' => 'Ciudad',
+ 'Cleared' => 'Reconciliado',
+ 'Click on login name to edit!' => '¡Seleccione el nombre del usuario que desea modificar!',
+ 'Clocked' => '',
+ 'Close Books up to' => 'Cerrar los Libros hasta',
+ 'Closed' => 'Cerrado',
+ 'Code' => 'Código',
+ 'Code missing!' => '¡Falta el Código!',
+ 'Company' => 'Empresa',
+ 'Company Name' => 'Razón Social',
+ 'Compare to' => 'Comparar con',
+ 'Completed' => '',
+ 'Components' => 'Componentes',
+ 'Confirm' => 'Confirmar',
+ 'Confirm!' => '¡Confirmar!',
+ 'Connect to' => 'Conectar a',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Contra' => 'Cuentas del Orden',
+ 'Copies' => 'Copias',
+ 'Copy to COA' => 'Copiar al Plan de Cuentas',
+ 'Cost' => 'Costo',
+ 'Cost Center' => 'Centro de Costos',
+ 'Could not save pricelist!' => '¡No se pudo guardar la Lista de Precios!',
+ 'Could not save!' => '¡No se pudo guardar!',
+ 'Could not transfer Inventory!' => '¡No se pudo transferir existencia!',
+ 'Country' => 'País',
+ 'Create Chart of Accounts' => 'Crear Plan de Cuentas',
+ 'Create Dataset' => 'Crear Base de Datos',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Límite de Crédito',
+ 'Curr' => 'Div',
+ 'Currency' => 'Divisa',
+ 'Current' => 'Actual',
+ 'Current Earnings' => 'Resultado del Período',
+ 'Customer' => 'Cliente',
+ 'Customer History' => 'Historial del Cliente',
+ 'Customer Number' => 'Código del Cliente',
+ 'Customer deleted!' => '¡Cliente borrado!',
+ 'Customer missing!' => '¡Falta el Cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Customer saved!' => '¡Cliente guardado!',
+ 'Customers' => 'Clientes',
+ 'DBI not installed!' => '¡DBI no está instalado!',
+ 'DOB' => 'Fecha de nacimiento',
+ 'Database' => 'Base de datos',
+ 'Database Administration' => 'Administración de base de datos',
+ 'Database Driver not checked!' => '¡No seleccionó un manejador de bases de datos!',
+ 'Database Host' => 'Servidor de Base de Datos',
+ 'Database User missing!' => '¡Falta el usuario de base de datos!',
+ 'Dataset' => 'Base de Datos',
+ 'Dataset is newer than version!' => '¡El Base de Datos es más reciente que la versión del programa!',
+ 'Dataset missing!' => 'Falta Base de Datos!',
+ 'Dataset updated!' => 'Base de Datos actualizada!',
+ 'Date' => 'Fecha',
+ 'Date Format' => 'Formato de Fecha',
+ 'Date Paid' => 'Fecha de Pago',
+ 'Date Received' => 'Fecha de recepción',
+ 'Date missing!' => '¡Falta la fecha!',
+ 'Date received missing!' => '¡Falta la fecha de recepción!',
+ 'Date worked' => '',
+ 'Day' => '',
+ 'Day(s)' => '',
+ 'Days' => '',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Decimalplaces' => 'Posiciones decimales',
+ 'Decrease' => 'Reducir',
+ 'Deduct after' => 'Descontar después',
+ 'Deduction deleted!' => '¡Descuento borrado!',
+ 'Deduction saved!' => '¡Descuento guardado!',
+ 'Deductions' => 'Descuentos',
+ 'Default Template' => '',
+ 'Defaults' => 'Valores predeterminados',
+ 'Defaults saved!' => '¡Valores predeterminados guardados!',
+ 'Delete' => 'Borrar',
+ 'Delete Account' => 'Borrar cuenta',
+ 'Delete Dataset' => 'Borrar base de datos',
+ 'Delete Schedule' => '',
+ 'Deleting a language will also delete the templates for the language' => '',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Department' => 'Departamento',
+ 'Department deleted!' => '¡Departamento borrado!',
+ 'Department saved!' => '¡Departamento guardado!',
+ 'Departments' => 'Departamentos',
+ 'Deposit' => 'Depósito',
+ 'Description' => 'Descripción',
+ 'Description Translations' => 'Traducciones de la descripción',
+ 'Description missing!' => '¡Falta la descripción!',
+ 'Detail' => 'Detalle',
+ 'Difference' => 'Diferencia',
+ 'Directory' => 'Directorio',
+ 'Discount' => 'Descuento',
+ 'Done' => 'Terminado',
+ 'Drawing' => 'Plano',
+ 'Driver' => 'Manejador',
+ 'Dropdown Limit' => 'Limite en listas desplegables',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'Due Date missing!' => '¡Falta fecha de vencimiento!',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail Statement to' => 'Enviar estado de cuenta por E-mail a',
+ 'E-mail address missing!' => '¡Falta dirección E-mail!',
+ 'E-mail message' => '',
+ 'E-mailed' => 'Enviado por e-mail',
+ 'Edit' => 'Modificar',
+ 'Edit AP Transaction' => 'Modificar asiento de Cuentas a Pagar',
+ 'Edit AR Transaction' => 'Modificar asiento de Cuentas a Cobrar',
+ 'Edit Account' => 'Modificar cuenta',
+ 'Edit Assembly' => 'Modificar Ensamblaje',
+ 'Edit Business' => 'Modificar Negocio',
+ 'Edit Cash Transfer Transaction' => 'Modificar Transferencia de Efectivo',
+ 'Edit Customer' => 'Modificar Cliente',
+ 'Edit Deduction' => 'Modificar Descuento',
+ 'Edit Department' => 'Modificar Departamento',
+ 'Edit Description Translations' => 'Modificar Traducciones de Descripción',
+ 'Edit Employee' => 'Modificar Empleado',
+ 'Edit GIFI' => 'Modificar PCF',
+ 'Edit General Ledger Transaction' => 'Modificar Asiento del Libro Mayor General',
+ 'Edit Group' => 'Modificar Grupo',
+ 'Edit Job' => '',
+ 'Edit Labor/Overhead' => 'Modificar Mano de Obra',
+ 'Edit Language' => 'Modificar Idioma',
+ 'Edit POS Invoice' => 'Modificar Ticket',
+ 'Edit Part' => 'Modificar Artículo',
+ 'Edit Preferences for' => 'Modificar Preferencias para',
+ 'Edit Pricegroup' => 'Modificar Grupo de Precios',
+ 'Edit Project' => 'Modificar Proyecto',
+ 'Edit Purchase Order' => 'Modificar Orden de Compra',
+ 'Edit Quotation' => 'Modificar Cotización',
+ 'Edit Request for Quotation' => 'Modificar Solicitud de Cotización',
+ 'Edit SIC' => 'Modificar CIS',
+ 'Edit Sales Invoice' => 'Modificar Factura de Venta',
+ 'Edit Sales Order' => 'Modificar Orden de Venta',
+ 'Edit Service' => 'Modificar Servicio',
+ 'Edit Template' => 'Modificar Plantilla',
+ 'Edit Timecard' => '',
+ 'Edit User' => 'Modificar Usuario',
+ 'Edit Vendor' => 'Modificar Proveedor',
+ 'Edit Vendor Invoice' => 'Modificar Factura de Proveedor',
+ 'Edit Warehouse' => 'Modificar Almacén',
+ 'Employee' => 'Empleado',
+ 'Employee Name' => 'Nombre del empleado',
+ 'Employee Number' => 'Código del empleado',
+ 'Employee deleted!' => '¡Empleado borrado!',
+ 'Employee pays' => 'El empleado paga',
+ 'Employee saved!' => '¡Empleado guardado!',
+ 'Employees' => 'Empleados',
+ 'Employer' => 'Patrón',
+ 'Employer pays' => 'El patrón paga',
+ 'Enddate' => 'Fecha final',
+ 'Ends' => '',
+ 'Enforce transaction reversal for all dates' => 'Forzar reversión de asientos para todas las fechas',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Introduzca hasta 3 letras separadas por dos puntos (ej. PYG:USD:EUR) para las monedas local y extranjeras',
+ 'Equity' => 'Patrimonio',
+ 'Every' => '',
+ 'Excempt age <' => 'Edad de excención <',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate for payment missing!' => '¡Falta la tasa de cambio para el pago!',
+ 'Exchange rate missing!' => '¡Falta la tasa de cambio!',
+ 'Existing Datasets' => 'Bases de datos existentes',
+ 'Expense' => 'Egreso',
+ 'Expense account does not exist!' => '',
+ 'Expense/Asset' => 'Egreso/Activo',
+ 'Extended' => 'Importe',
+ 'FX' => 'Cotización de Monedas',
+ 'Failed to save order!' => '',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'For' => '',
+ 'Foreign Exchange Gain' => 'Ganancia en Moneda Extranjera',
+ 'Foreign Exchange Loss' => 'Pérdida en Moneda Extranjera',
+ 'Friday' => '',
+ 'From' => 'Desde',
+ 'From Warehouse' => '',
+ 'GIFI' => 'Plan de Cuentas Fiscal (PCF)',
+ 'GIFI deleted!' => '¡Borrado el código PCF!',
+ 'GIFI missing!' => '¡Falta el código PCF!',
+ 'GIFI saved!' => '¡Guardado el código PCF!',
+ 'GL' => '',
+ 'GL Reference Number' => '',
+ 'GL Transaction' => 'Asiento en el libro mayor',
+ 'General Ledger' => 'Libro Mayor General',
+ 'Generate' => '',
+ 'Generate Orders' => '',
+ 'Generate Purchase Orders' => '',
+ 'Generate Purchase Orders from Sales Order' => '',
+ 'Generate Sales Order' => '',
+ 'Generate Sales Order from Purchase Orders' => '',
+ 'Generate Sales Orders' => '',
+ 'Goods & Services' => 'Bienes y Servicios',
+ 'Group' => 'Grupo',
+ 'Group Items' => 'Componentes de grupo',
+ 'Group Translations' => 'Traducción de Grupos',
+ 'Group deleted!' => '¡Grupo borrado!',
+ 'Group missing!' => '¡Falta el grupo!',
+ 'Group saved!' => '¡Grupo guardado!',
+ 'Groups' => 'Grupos',
+ 'HR' => 'Recursos Humanos',
+ 'HTML Templates' => 'Plantillas HTML',
+ 'Heading' => 'Encabezado',
+ 'History' => 'Historial',
+ 'Home Phone' => 'Teléfono (particular)',
+ 'Host' => 'Servidor',
+ 'Hostname missing!' => '¡Falta el nombre del servidor!',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Image' => 'Imagen',
+ 'In-line' => 'Incorporado',
+ 'Inactive' => '',
+ 'Include Exchange Rate Difference' => 'Incluir Diferencia por Tasa de Cambio',
+ 'Include Payment' => '',
+ 'Include in Report' => 'Incluir en informe',
+ 'Include in drop-down menus' => 'Incluir en listas desplegables',
+ 'Income' => 'Ingreso',
+ 'Income Statement' => 'Cuadro de Resultados',
+ 'Income account does not exist!' => '',
+ 'Incorrect Dataset version!' => '¡La Versión de la base de datos es incorrecta!',
+ 'Increase' => 'Aumentar',
+ 'Individual Items' => 'Artículos individuales',
+ 'Internal Notes' => 'Notas internas',
+ 'Inventory' => 'Existencia',
+ 'Inventory account does not exist!' => '',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => '¡La existencia debe ser cero antes de poder cambiar el ensamblaje a obsoleto!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => '¡La existencia debe ser cero antes de poder cambiar este artículo a obsoleto!',
+ 'Inventory saved!' => '¡Existencias guardadas!',
+ 'Inventory transferred!' => '¡Existencias transferidas!',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => '¡Falta la fecha de la factura!',
+ 'Invoice Number' => 'Número de factura',
+ 'Invoice Number missing!' => '¡Falta el Número de Factura!',
+ 'Invoice deleted!' => '¡Factura borrada!',
+ 'Invoices' => 'Facturas',
+ 'Is this a summary account to record' => '¿Es ésta una cuenta de resúmen a registrar?',
+ 'Item already on pricelist!' => '¡El concepto ya está en la lista de precios!',
+ 'Item deleted!' => '¡Concepto borrado!',
+ 'Item not on file!' => '¡El concepto no está registrado!',
+ 'Items' => 'Conceptos',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Job' => '',
+ 'Job Name' => '',
+ 'Job Number' => '',
+ 'Job Number missing!' => '',
+ 'Job deleted!' => '',
+ 'Job saved!' => '',
+ 'Jobs' => '',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'LaTeX Templates' => 'Plantillas LaTeX',
+ 'Labor Code' => '',
+ 'Labor/Overhead' => 'Mano de Obra',
+ 'Language' => 'Idioma',
+ 'Language deleted!' => '¡Idioma borrado!',
+ 'Language saved!' => '¡Idioma guardado!',
+ 'Languages' => 'Idiomas',
+ 'Languages not defined!' => '¡Idiomas no definido!',
+ 'Last Cost' => '',
+ 'Last Numbers & Default Accounts' => 'Últimos números y cuentas por omisión',
+ 'Lead' => '',
+ 'Leadtime' => 'Tiempo de Entrega',
+ 'Leave host and port field empty unless you want to make a remote connection.' => 'Deje los campos de servidor y puerto vacíos a menos que quiera hacer una conección remota',
+ 'Liability' => 'Pasivo',
+ 'Licensed to' => 'Uso autorizado a',
+ 'Line Total' => 'Total de la línea',
+ 'Link' => 'Vínculo',
+ 'Link Accounts' => 'Vincular Cuentas',
+ 'List' => 'Lista',
+ 'List Accounts' => 'Mostrar Plan de Cuentas',
+ 'List Businesses' => 'Mostrar empresas',
+ 'List Departments' => 'Mostrar Centro de Costos',
+ 'List GIFI' => 'Mostrar PCF',
+ 'List Languages' => 'Mostrar Idiomas',
+ 'List Price' => 'Precio de Lista',
+ 'List Projects' => 'Mostrar Projectos',
+ 'List SIC' => 'Mostrar CIS',
+ 'List Transactions' => 'Mostrar Transacciones',
+ 'List Warehouses' => 'Mostar almacenes',
+ 'Lock System' => 'Bloquear el sistema',
+ 'Lockfile created!' => '¡Archivo de bloqueo creado!',
+ 'Lockfile removed!' => '¡Archivo de bloqueo borrado!',
+ 'Login' => 'Entrada al sistema',
+ 'Login name missing!' => '¡Falta el nombre del usuario!',
+ 'Logout' => 'Salir del Sistema',
+ 'Make' => 'Marca',
+ 'Manager' => 'Gerente',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'Marked entries printed!' => '¡Entradas seleccionadas impresas!',
+ 'Markup' => 'Margen',
+ 'Maximum' => 'Máximo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Nota',
+ 'Menu Width' => 'Ancho del Menú',
+ 'Message' => 'Mensaje',
+ 'Method' => 'Método',
+ 'Microfiche' => 'Microficha',
+ 'Model' => 'Modelo',
+ 'Monday' => '',
+ 'Month' => 'Mes',
+ 'Month(s)' => '',
+ 'Months' => '',
+ 'Multibyte Encoding' => 'Codificación Multibyte',
+ 'N/A' => 'N/A',
+ 'Name' => 'Nombre',
+ 'Name missing!' => '¡Falta el Nombre!',
+ 'New Templates' => 'Plantillas Nuevas',
+ 'New Window' => 'Ventana nueva',
+ 'Next' => '',
+ 'Next Date' => '',
+ 'Next Number' => '',
+ 'No' => 'No',
+ 'No Database Drivers available!' => '¡No hay manejadores de bases de datos disponibles!',
+ 'No Dataset selected!' => '¡No ha seleccionado una base de datos!',
+ 'No Employees on file!' => '',
+ 'No Labor codes on file!' => '',
+ 'No email address for' => 'Falta la dirección de correo electrónico de',
+ 'No open Jobs!' => '',
+ 'No open Projects!' => '',
+ 'No.' => 'Nº',
+ 'Non-taxable' => 'Exento',
+ 'Non-taxable Purchases' => 'Compras exentas',
+ 'Non-taxable Sales' => 'Ventas exentas',
+ 'Non-tracking Items' => '',
+ 'Notes' => 'Notas',
+ 'Nothing entered!' => '¡No se suministró nada!',
+ 'Nothing selected!' => '¡No se seleccionó nada!',
+ 'Nothing to delete!' => '¡No hay nada para borrar!',
+ 'Nothing to print!' => '¡No hay nada para imprimir!',
+ 'Nothing to transfer!' => '¡Nada que transferir!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number Format' => 'Formato Numérico',
+ 'Number missing in Row' => 'No se encuentra el número en la fila',
+ 'O' => 'O',
+ 'OH' => '',
+ 'Obsolete' => 'Obsoleto',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'On Hand' => 'Existencia',
+ 'Open' => 'Abierto',
+ 'Oracle Database Administration' => 'Administración de la base de datos Oracle',
+ 'Order' => 'Orden',
+ 'Order Date' => 'Fecha de la orden',
+ 'Order Date missing!' => '¡Falta la fecha de la orden!',
+ 'Order Entry' => 'Carga de Ordenes',
+ 'Order Number' => 'Número de la orden',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'Order deleted!' => '¡Orden borrada!',
+ 'Order generation failed!' => '',
+ 'Order saved!' => '¡Orden guardada!',
+ 'Orders generated!' => '',
+ 'Orphaned' => 'Huérfano',
+ 'Out of balance transaction!' => '¡Asiento desbalanceado!',
+ 'Out of balance!' => '¡Fuera de balance!',
+ 'Outstanding' => 'Pendiente',
+ 'PDF' => 'PDF',
+ 'PO Number' => '',
+ 'POS' => 'Punto de Venta',
+ 'POS Invoice' => 'Factura Punto de Venta',
+ 'Packing List' => 'Lista de Empaque',
+ 'Packing List Date missing!' => '¡Falta la fecha en la lista de empaque!',
+ 'Packing List Number missing!' => '¡Falta el número en la lista de empaque!',
+ 'Packing Lists' => 'Listas de empaque',
+ 'Paid' => 'Pagado',
+ 'Part' => 'Artículo',
+ 'Part Number' => '',
+ 'Partnumber' => 'Número de artículo',
+ 'Parts' => 'Artículos',
+ 'Password' => 'Contraseña',
+ 'Password changed!' => '¡Contraseña cambiada!',
+ 'Password does not match!' => '¡La contraseña no coincide!',
+ 'Passwords do not match!' => '¡Las contraseñas no coinciden!',
+ 'Payables' => 'Cuentas a Pagar',
+ 'Payment' => 'Pago',
+ 'Payment date missing!' => '¡Falta la fecha del pago!',
+ 'Payment posted!' => '¡Pago registrado!',
+ 'Payments' => 'Pagos',
+ 'Payments posted!' => '',
+ 'Payroll Deduction' => 'Descuento Salarial',
+ 'Period' => 'Periodo',
+ 'Pg Database Administration' => 'Administración de base de datos Pg',
+ 'PgPP Database Administration' => 'Administración de base de datos PgPP',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Selección',
+ 'Pick Lists' => 'Listas de Selección',
+ 'Port' => 'Puerto',
+ 'Port missing!' => '¡Falta el puerto!',
+ 'Pos' => '',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Posted!' => '¡Registrado!',
+ 'Posting' => '',
+ 'Posting failed!' => '',
+ 'Postscript' => 'Postscript',
+ 'Preferences' => 'Preferencias',
+ 'Preferences saved!' => '¡Preferencias guardadas!',
+ 'Prepayment' => 'Anticipo',
+ 'Price' => 'Precio',
+ 'Pricegroup' => 'Grupo de precios',
+ 'Pricegroup deleted!' => '¡Grupo de precios borrado!',
+ 'Pricegroup missing!' => '¡Falta el grupo de precios!',
+ 'Pricegroup saved!' => '¡Grupo de precios guardado!',
+ 'Pricegroups' => 'Grupos de precios',
+ 'Pricelist' => 'Lista de Precios',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Print and Post as new' => '',
+ 'Print and Save' => 'Imprimir y guardar',
+ 'Print and Save as new' => '',
+ 'Print and post as new' => '',
+ 'Print and save as new' => '',
+ 'Printed' => 'Impreso',
+ 'Printer' => 'Impresora',
+ 'Printing' => '',
+ 'Printing ... ' => 'Imprimiendo ...',
+ 'Process Transactions' => '',
+ 'Production' => '',
+ 'Profit Center' => 'Centro de Ingresos',
+ 'Project' => 'Proyecto',
+ 'Project Description Translations' => 'Traducciones de descripción de proyecto',
+ 'Project Name' => '',
+ 'Project Number' => 'Número del Proyecto',
+ 'Project Number missing!' => '¡Falta el número de proyecto!',
+ 'Project Transactions' => 'Asientos del Projecto',
+ 'Project deleted!' => '¡Proyecto borrado!',
+ 'Project not on file!' => '¡Proyecto no registrado!',
+ 'Project saved!' => '¡Proyecto guardado!',
+ 'Project/Job Name' => '',
+ 'Project/Job Number' => '',
+ 'Projects' => 'Proyectos',
+ 'Purchase Order' => 'Orden de Compra',
+ 'Purchase Order Number' => 'Número de Orden de Compra',
+ 'Purchase Orders' => 'Ordenes de Compra',
+ 'Qty' => 'Cant.',
+ 'Quantity exceeds available units to stock!' => '¡La cantidad excede al stock disponible!',
+ 'Quarter' => 'Trimestre',
+ 'Quotation' => 'Cotización',
+ 'Quotation ' => 'Cotización ',
+ 'Quotation Date' => 'Fecha de Cotización',
+ 'Quotation Date missing!' => '¡Falta la Fecha de Cotización!',
+ 'Quotation Number' => 'Número de Cotización',
+ 'Quotation Number missing!' => '¡Falta el Número de Cotización!',
+ 'Quotation deleted!' => '¡Cotización borrada!',
+ 'Quotations' => 'Cotizaciones',
+ 'R' => 'R',
+ 'RFQ' => 'Solicitud de cotización',
+ 'RFQ ' => 'Solicitud de cotización ',
+ 'RFQ Number' => 'Número de Solicitud de cotización',
+ 'RFQs' => 'Solicitudes de cotización',
+ 'ROP' => 'Existencia mínima',
+ 'Rate' => 'Tarifa',
+ 'Rate missing!' => '¡Falta la tarifa!',
+ 'Recd' => 'Recb.',
+ 'Receipt' => 'Recibo',
+ 'Receipt posted!' => '¡Recibo registrado!',
+ 'Receipts' => 'Recibos',
+ 'Receivables' => 'Cuentas a Cobrar',
+ 'Receive' => 'Recibir',
+ 'Receive Merchandise' => 'Recibir mercadería',
+ 'Reconciliation' => 'Reconciliación',
+ 'Reconciliation Report' => 'Informe de Reconciliación',
+ 'Record in' => 'Registrar en',
+ 'Recurring Transaction' => '',
+ 'Recurring Transactions' => '',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Remanente',
+ 'Remove' => 'Eliminar',
+ 'Remove Audit trail up to' => 'Remover Rastro de Auditoría hasta',
+ 'Remove Audit trails up to' => 'Remover Rastro de Auditoría hasta',
+ 'Removed spoolfiles!' => '¡Archivos de la cola eliminados!',
+ 'Removing marked entries from queue ...' => 'Eliminado entradas seleccionadas de la cola ...',
+ 'Repeat' => '',
+ 'Report for' => 'Informe de',
+ 'Reports' => 'Informes',
+ 'Req' => '',
+ 'Request for Quotation' => 'Solicitud de cotización',
+ 'Request for Quotations' => 'Solicitudes de cotización',
+ 'Required by' => 'Requerido para el',
+ 'Retained Earnings' => 'Resultado del Ejercicio',
+ 'Role' => 'Función',
+ 'S' => 'S',
+ 'SIC' => 'CIS',
+ 'SIC deleted!' => '¡CIS borrado!',
+ 'SIC saved!' => '¡CIS guardado!',
+ 'SKU' => 'SKU',
+ 'SSN' => 'C.I.Nº',
+ 'Sale' => 'Venta',
+ 'Sales' => 'Ventas',
+ 'Sales Invoice' => 'Factura (venta)',
+ 'Sales Invoice ' => 'Factura (venta) ',
+ 'Sales Invoice.' => 'Factura (venta).',
+ 'Sales Invoice/AR Transaction Number' => '',
+ 'Sales Invoices' => 'Facturas (venta)',
+ 'Sales Order' => 'Orden de Venta',
+ 'Sales Order Number' => 'Número de Orden de Venta',
+ 'Sales Orders' => 'Ordenes de Venta',
+ 'Sales Quotation Number' => 'Número de Cotización',
+ 'Salesperson' => 'Vendedor',
+ 'Saturday' => '',
+ 'Save' => 'Guardar',
+ 'Save Pricelist' => 'Guardar Lista de Precios',
+ 'Save Schedule' => '',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Save to File' => 'Guardar en un archivo',
+ 'Saving' => '',
+ 'Schedule' => '',
+ 'Scheduled' => '',
+ 'Screen' => 'Pantalla',
+ 'Search' => 'Búsqueda',
+ 'Select' => 'Seleccionar',
+ 'Select Customer' => '',
+ 'Select Vendor' => '',
+ 'Select a Printer!' => '',
+ 'Select a printer!' => '',
+ 'Select all' => 'Seleccionar todo',
+ 'Select from one of the items below' => 'Seleccione uno de los artículos siguientes',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Select items' => '',
+ 'Select payment' => 'Seleccione el pago',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF!',
+ 'Select txt, postscript or PDF!' => '¡Seleccione Texto, Postscript o PDF!',
+ 'Sell' => 'Vender',
+ 'Sell Price' => 'Precio de venta',
+ 'Send by E-Mail' => 'Enviar por correo electrónico',
+ 'Sending' => '',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'Núm. de serie',
+ 'Serial Number' => 'Número de serie',
+ 'Service' => 'Servicio',
+ 'Service Code' => '',
+ 'Service/Labor Code' => '',
+ 'Services' => 'Servicios',
+ 'Session Timeout' => 'Expiración de la sesión',
+ 'Session expired!' => '¡La sesión caducó!',
+ 'Setup Templates' => 'Configurar Plantillas',
+ 'Ship' => 'Enviar',
+ 'Ship Merchandise' => 'Enviar Mercadería',
+ 'Ship to' => 'Enviar a',
+ 'Ship via' => 'Enviar por',
+ 'Shipping' => 'Envío',
+ 'Shipping Address' => 'Dirección de envío',
+ 'Shipping Date' => 'Fecha de envío',
+ 'Shipping Date missing!' => '¡Falta la fecha de envío!',
+ 'Shipping Point' => 'Punto de envío',
+ 'Short' => 'Corto',
+ 'Signature' => 'Firma',
+ 'Source' => 'Origen',
+ 'Spoolfile' => 'Cola de Impresión',
+ 'Standard' => 'Estándard',
+ 'Standard Industrial Codes' => 'Código Industrial Estandardizado (CIS)',
+ 'Startdate' => 'Fecha de inicio',
+ 'State' => 'Departamento',
+ 'State/Province' => 'Departamento',
+ 'Statement' => 'Estado de cuenta',
+ 'Statement Balance' => 'Saldo bancario',
+ 'Statement sent to' => 'Estado de cuenta enviado a',
+ 'Statements sent to printer!' => '¡Estado de cuenta enviado a la impresora!',
+ 'Stock' => 'Existencia',
+ 'Stock Assembly' => 'Reponer ensamblaje',
+ 'Stocking Date' => '',
+ 'Stylesheet' => 'Hoja de estilos',
+ 'Sub-contract GIFI' => 'PCF del subcontrato',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resúmen',
+ 'Sunday' => '',
+ 'Supervisor' => 'Supervisor',
+ 'System' => 'Sistema',
+ 'System Defaults' => 'Predeterminados del Sistema',
+ 'Tax' => 'Impuestos',
+ 'Tax Accounts' => 'Cuentas de Impuestos',
+ 'Tax Included' => 'IVA Incluido',
+ 'Tax Number' => 'RUC',
+ 'Tax Number / SSN' => 'RUC/CIP',
+ 'Tax collected' => 'Impuesto Retenido',
+ 'Tax paid' => 'Impuestos pagados',
+ 'Taxable' => 'Gravado',
+ 'Template saved!' => '¡Plantilla guardada!',
+ 'Templates' => 'Plantillas',
+ 'Terms' => 'Condiciones',
+ 'Text' => '',
+ 'Text Templates' => 'Plantillas de texto',
+ 'The following Datasets are not in use and can be deleted' => 'Las siguientes bases de datos no están en uso y pueden ser borradas',
+ 'The following Datasets need to be updated' => 'Es necesario actualizar las siguientes bases de datos',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Verificación preliminar. En esta etapa no se creará ni se borrará nada!',
+ 'Thursday' => '',
+ 'Till' => 'Caja Registradora',
+ 'Time In' => '',
+ 'Time Out' => '',
+ 'Timecard' => '',
+ 'Timecard deleted!' => '',
+ 'Timecard saved!' => '',
+ 'Timecards' => '',
+ 'Times' => '',
+ 'To' => 'Hasta',
+ 'To Warehouse' => '',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Para agregar un usuario a un grupo, seleccione un nombre, cambie el nombre de usuario (login) y guarde los cambios. Un nuevo usuario con las mismas variables se creará bajo el nuevo nombre de usuario (login).',
+ 'Top Level' => 'Nivel Superior',
+ 'Total' => 'Total',
+ 'Tracking Items' => '',
+ 'Trade Discount' => 'Descuento comercial',
+ 'Transaction' => 'Asiento',
+ 'Transaction Date missing!' => '¡Falta la fecha del Asiento!',
+ 'Transaction Dates' => '',
+ 'Transaction deleted!' => '¡Asiento borrado!',
+ 'Transaction posted!' => '¡Asiento registrado!',
+ 'Transaction reversal enforced for all dates' => 'Reversión de Asientos activado para todas las fechas',
+ 'Transaction reversal enforced up to' => 'Reversión de Asientos activado hasta',
+ 'Transactions' => 'Asientos',
+ 'Transfer' => 'Transferencia',
+ 'Transfer Inventory' => 'Transferir existencia',
+ 'Transfer from' => '',
+ 'Transfer to' => 'Transferir a',
+ 'Translation' => 'Traducción',
+ 'Translation deleted!' => '¡Traducción borrada!',
+ 'Translation not on file!' => 'No hay Traducción',
+ 'Translations' => 'Traducciones',
+ 'Translations saved!' => '¡Traducciones guardadas!',
+ 'Trial Balance' => 'Balance de Sumas y Saldos',
+ 'Tuesday' => '',
+ 'Type of Business' => 'Clase de Negocio',
+ 'Unit' => 'Unidad',
+ 'Unit of measure' => 'Unidad de medida',
+ 'Unlock System' => 'Desbloquear el sistema',
+ 'Update' => 'Actualizar',
+ 'Update Dataset' => 'Actualizar base de datos',
+ 'Updated' => 'Actualizado',
+ 'Upgrading to Version' => 'Actualizando a versión',
+ 'Use Templates' => 'Usar Plantillas',
+ 'User' => 'Usuario',
+ 'User deleted!' => '¡Usuario borrado!',
+ 'User saved!' => '¡Usuario guardado!',
+ 'Valid until' => 'Válido hasta',
+ 'Vendor' => 'Proveedor',
+ 'Vendor History' => 'Historial del Proveedor',
+ 'Vendor Invoice' => 'Factura de Proveedor',
+ 'Vendor Invoice ' => 'Factura de Proveedor ',
+ 'Vendor Invoice.' => 'Factura de Proveedor.',
+ 'Vendor Invoice/AP Transaction Number' => '',
+ 'Vendor Invoices' => 'Facturas de Proveedor',
+ 'Vendor Number' => 'Código de Proveedor',
+ 'Vendor deleted!' => '¡Proveedor borrado!',
+ 'Vendor missing!' => '¡Falta el Proveedor!',
+ 'Vendor not on file!' => '¡Proveedor no registrado!',
+ 'Vendor saved!' => '¡Proveedor guardado!',
+ 'Vendors' => 'Proveedores',
+ 'Version' => 'Versión',
+ 'Warehouse' => 'Almacén',
+ 'Warehouse deleted!' => '¡Almacén borrado!',
+ 'Warehouse saved!' => '¡Almacén guardado!',
+ 'Warehouses' => 'Almacenes',
+ 'Warning!' => '¡Advertencia!',
+ 'Wednesday' => '',
+ 'Week' => '',
+ 'Week(s)' => '',
+ 'Weeks' => '',
+ 'Weight' => 'Peso',
+ 'Weight Unit' => 'Unidad de peso',
+ 'What type of item is this?' => '¿Que tipo de articulo es este?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Work Orders' => 'Ordenes de Trabajo',
+ 'Work Phone' => 'Teléfono (Oficina)',
+ 'Year' => 'Año',
+ 'Year(s)' => '',
+ 'Yearend' => 'Cierre del Ejercicio',
+ 'Yearend date missing!' => '¡Falta la Fecha de Cierre del Ejercicio!',
+ 'Yearend posted!' => '¡Cierre del Ejercicio registrado!',
+ 'Yearend posting failed!' => '¡Falló el Cierre del Ejercicio!',
+ 'Years' => '',
+ 'Yes' => 'Si',
+ 'You are logged out' => 'Usted ha salido del sistema',
+ 'You are posting an existing transaction!' => '',
+ 'You are printing and posting an existing transaction!' => '',
+ 'You are printing and saving an existing order' => '',
+ 'You are printing and saving an existing quotation' => '',
+ 'You are printing and saving an existing transaction!' => '',
+ 'You are saving an existing order' => '',
+ 'You are saving an existing quotation' => '',
+ 'You are saving an existing transaction!' => '',
+ 'You did not enter a name!' => '¡No ingresó un Nombre!',
+ 'You must enter a host and port for local and remote connections!' => 'Debe ingresar un servidor y un puerto para conecciones locales y remotas!',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'account cannot be set to any other type of account' => 'No se puede cambiar a otro Tipo de Cuenta',
+ 'as at' => 'como a',
+ 'days' => 'días',
+ 'does not exist' => 'no existe',
+ 'done' => 'Terminado',
+ 'ea' => 'c/u',
+ 'failed' => '',
+ 'for' => '',
+ 'for Period' => 'para el Período',
+ 'is already a member!' => '¡ya es miembro!',
+ 'localhost' => 'servidor local',
+ 'locked!' => '¡bloqueado!',
+ 'partsgroup' => '',
+ 'posted!' => '¡Registrado!',
+ 'sent' => 'Enviado',
+ 'successfully created!' => '¡creado con éxito!',
+ 'successfully deleted!' => '¡borrado con éxito!',
+ 'time(s)' => '',
+ 'unexpected error!' => '',
+ 'website' => 'sitio web',
+};
+
+1;
diff --git a/locale/py/am b/locale/py/am
new file mode 100755
index 00000000..d5457708
--- /dev/null
+++ b/locale/py/am
@@ -0,0 +1,284 @@
+$self{texts} = {
+ 'AP' => 'Cuentas a Pagar',
+ 'AR' => 'Cuentas a Cobrar',
+ 'About' => 'Acerca de',
+ 'Account' => 'Cuenta',
+ 'Account Number' => 'Número de Cuenta',
+ 'Account Number missing!' => '¡Falta el Número de Cuenta!',
+ 'Account Type' => 'Tipo de Cuenta',
+ 'Account Type missing!' => '¡Falta el Tipo de Cuenta!',
+ 'Account deleted!' => '¡Cuenta eliminada!',
+ 'Account does not exist!' => '¡Cuenta no existe!',
+ 'Account saved!' => '¡Cuenta guardada!',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Accrual' => 'Acumulado',
+ 'Activate Audit trail' => 'Activar Rastro Auditoría',
+ 'Add Account' => 'Agregar Cuenta',
+ 'Add Business' => 'Agregar Negocio',
+ 'Add Department' => 'Agregar Centro de Costos',
+ 'Add GIFI' => 'Agregar PCF',
+ 'Add Language' => 'Agregar Idioma',
+ 'Add SIC' => 'Agregar CIS',
+ 'Add Warehouse' => 'Agregar Almacén',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Importe',
+ 'Asset' => 'Activo',
+ 'Audit Control' => 'Control de Auditoría',
+ 'Audit trail disabled' => 'Rastro de Auditoría desactivado',
+ 'Audit trail enabled' => 'Rastro de Auditoría activado',
+ 'Audit trail removed up to' => 'Rastro de Auditoría eliminado hasta',
+ 'Backup sent to' => 'Copia de Seguridad enviada a',
+ 'Bin List' => 'Lista de Ubicaciones',
+ 'Books are open' => 'Los Libros están abiertos',
+ 'Business Number' => 'RUC',
+ 'Business deleted!' => '¡Negocio borrado!',
+ 'Business saved!' => '¡Negocio guardado!',
+ 'COGS' => 'Costo de Artículos Vendidos',
+ 'Cannot delete account!' => '¡No se puede borrar la Cuenta!',
+ 'Cannot delete default account!' => '¡No se puede borrar la Cuenta por Defecto!',
+ 'Cannot save account!' => '¡No se puede guardar la Cuenta!',
+ 'Cannot save defaults!' => '¡No se puede guardar los Predeterminados!',
+ 'Cannot save preferences!' => '¡No se puede guardar las Preferencias!',
+ 'Cannot set account for more than one of AR, AP or IC' => 'No se puede configurar una Cuenta para más de una de las opciones (AR, AP o IC)',
+ 'Cannot set multiple options for' => 'No se pueden configurar opciones múltiples para',
+ 'Cash' => 'Efectivo',
+ 'Chart of Accounts' => 'Plan de Cuentas',
+ 'Close Books up to' => 'Cerrar los Libros hasta',
+ 'Code' => 'Código',
+ 'Code missing!' => '¡Falta el Código!',
+ 'Company' => 'Empresa',
+ 'Confirm' => 'Confirmar',
+ 'Confirm!' => '¡Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Contra' => 'Cuentas del Orden',
+ 'Copy to COA' => 'Copiar al Plan de Cuentas',
+ 'Cost Center' => 'Centro de Costos',
+ 'Credit' => 'Crédito',
+ 'Customer Number' => 'Código del Cliente',
+ 'Database Host' => 'Servidor de Base de Datos',
+ 'Dataset' => 'Base de Datos',
+ 'Date Format' => 'Formato de Fecha',
+ 'Debit' => 'Débito',
+ 'Defaults saved!' => '¡Valores predeterminados guardados!',
+ 'Delete' => 'Borrar',
+ 'Delete Account' => 'Borrar cuenta',
+ 'Department deleted!' => '¡Departamento borrado!',
+ 'Department saved!' => '¡Departamento guardado!',
+ 'Departments' => 'Departamentos',
+ 'Description' => 'Descripción',
+ 'Description missing!' => '¡Falta la descripción!',
+ 'Discount' => 'Descuento',
+ 'Dropdown Limit' => 'Limite en listas desplegables',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail address missing!' => '¡Falta dirección E-mail!',
+ 'Edit' => 'Modificar',
+ 'Edit Account' => 'Modificar cuenta',
+ 'Edit Business' => 'Modificar Negocio',
+ 'Edit Department' => 'Modificar Departamento',
+ 'Edit GIFI' => 'Modificar PCF',
+ 'Edit Language' => 'Modificar Idioma',
+ 'Edit Preferences for' => 'Modificar Preferencias para',
+ 'Edit SIC' => 'Modificar CIS',
+ 'Edit Template' => 'Modificar Plantilla',
+ 'Edit Warehouse' => 'Modificar Almacén',
+ 'Employee Number' => 'Código del empleado',
+ 'Enforce transaction reversal for all dates' => 'Forzar reversión de asientos para todas las fechas',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Introduzca hasta 3 letras separadas por dos puntos (ej. PYG:USD:EUR) para las monedas local y extranjeras',
+ 'Equity' => 'Patrimonio',
+ 'Expense' => 'Egreso',
+ 'Expense/Asset' => 'Egreso/Activo',
+ 'Fax' => 'Fax',
+ 'Foreign Exchange Gain' => 'Ganancia en Moneda Extranjera',
+ 'Foreign Exchange Loss' => 'Pérdida en Moneda Extranjera',
+ 'GIFI' => 'Plan de Cuentas Fiscal (PCF)',
+ 'GIFI deleted!' => '¡Borrado el código PCF!',
+ 'GIFI missing!' => '¡Falta el código PCF!',
+ 'GIFI saved!' => '¡Guardado el código PCF!',
+ 'GL Transaction' => 'Asiento en el libro mayor',
+ 'Heading' => 'Encabezado',
+ 'ID' => 'ID',
+ 'Include in drop-down menus' => 'Incluir en listas desplegables',
+ 'Income' => 'Ingreso',
+ 'Inventory' => 'Existencia',
+ 'Invoice' => 'Factura',
+ 'Is this a summary account to record' => '¿Es ésta una cuenta de resúmen a registrar?',
+ 'Language' => 'Idioma',
+ 'Language deleted!' => '¡Idioma borrado!',
+ 'Language saved!' => '¡Idioma guardado!',
+ 'Languages' => 'Idiomas',
+ 'Last Numbers & Default Accounts' => 'Últimos números y cuentas por omisión',
+ 'Liability' => 'Pasivo',
+ 'Licensed to' => 'Uso autorizado a',
+ 'Link' => 'Vínculo',
+ 'Menu Width' => 'Ancho del Menú',
+ 'Method' => 'Método',
+ 'Month' => 'Mes',
+ 'Name' => 'Nombre',
+ 'No' => 'No',
+ 'No email address for' => 'Falta la dirección de correo electrónico de',
+ 'Number' => 'Número',
+ 'Number Format' => 'Formato Numérico',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de Empaque',
+ 'Password' => 'Contraseña',
+ 'Password does not match!' => '¡La contraseña no coincide!',
+ 'Payables' => 'Cuentas a Pagar',
+ 'Payment' => 'Pago',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Selección',
+ 'Postscript' => 'Postscript',
+ 'Preferences saved!' => '¡Preferencias guardadas!',
+ 'Print' => 'Imprimir',
+ 'Printer' => 'Impresora',
+ 'Profit Center' => 'Centro de Ingresos',
+ 'Purchase Order' => 'Orden de Compra',
+ 'Purchase Order Number' => 'Número de Orden de Compra',
+ 'Purchase Orders' => 'Ordenes de Compra',
+ 'RFQ Number' => 'Número de Solicitud de cotización',
+ 'Rate' => 'Tarifa',
+ 'Receivables' => 'Cuentas a Cobrar',
+ 'Reference' => 'Referencia',
+ 'Remove Audit trail up to' => 'Remover Rastro de Auditoría hasta',
+ 'Retained Earnings' => 'Resultado del Ejercicio',
+ 'SIC deleted!' => '¡CIS borrado!',
+ 'SIC saved!' => '¡CIS guardado!',
+ 'Sales Invoice' => 'Factura (venta)',
+ 'Sales Order' => 'Orden de Venta',
+ 'Sales Order Number' => 'Número de Orden de Venta',
+ 'Sales Orders' => 'Ordenes de Venta',
+ 'Sales Quotation Number' => 'Número de Cotización',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Session Timeout' => 'Expiración de la sesión',
+ 'Signature' => 'Firma',
+ 'Standard Industrial Codes' => 'Código Industrial Estandardizado (CIS)',
+ 'Stylesheet' => 'Hoja de estilos',
+ 'System Defaults' => 'Predeterminados del Sistema',
+ 'Tax' => 'Impuestos',
+ 'Template saved!' => '¡Plantilla guardada!',
+ 'Transaction' => 'Asiento',
+ 'Transaction reversal enforced for all dates' => 'Reversión de Asientos activado para todas las fechas',
+ 'Transaction reversal enforced up to' => 'Reversión de Asientos activado hasta',
+ 'Type of Business' => 'Clase de Negocio',
+ 'Update' => 'Actualizar',
+ 'User' => 'Usuario',
+ 'Vendor Invoice' => 'Factura de Proveedor',
+ 'Vendor Number' => 'Código de Proveedor',
+ 'Version' => 'Versión',
+ 'Warehouse deleted!' => '¡Almacén borrado!',
+ 'Warehouse saved!' => '¡Almacén guardado!',
+ 'Warehouses' => 'Almacenes',
+ 'Weight Unit' => 'Unidad de peso',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Year' => 'Año',
+ 'Yearend' => 'Cierre del Ejercicio',
+ 'Yearend date missing!' => '¡Falta la Fecha de Cierre del Ejercicio!',
+ 'Yearend posted!' => '¡Cierre del Ejercicio registrado!',
+ 'Yearend posting failed!' => '¡Falló el Cierre del Ejercicio!',
+ 'Yes' => 'Si',
+ 'account cannot be set to any other type of account' => 'No se puede cambiar a otro Tipo de Cuenta',
+ 'done' => 'Terminado',
+ 'localhost' => 'servidor local',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'agregar_cuenta' => 'add_account',
+ 'agregar_negocio' => 'add_business',
+ 'agregar_centro_de_costos' => 'add_department',
+ 'agregar_idioma' => 'add_language',
+ 'agregar_cis' => 'add_sic',
+ 'agregar_almacén' => 'add_warehouse',
+ 'continuar' => 'continue',
+ 'copiar_al_plan_de_cuentas' => 'copy_to_coa',
+ 'borrar' => 'delete',
+ 'modificar' => 'edit',
+ 'modificar_cuenta' => 'edit_account',
+ 'guardar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/py/ap b/locale/py/ap
new file mode 100755
index 00000000..5bb27bcb
--- /dev/null
+++ b/locale/py/ap
@@ -0,0 +1,210 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Cuentas a Pagar pendientes',
+ 'AP Transaction' => 'Movimiento de Cuentas a Pagar',
+ 'AP Transactions' => 'Movimientos de Cuentas a Pagar',
+ 'AR Outstanding' => 'Cuentas a Cobrar pendientes',
+ 'AR Transaction' => 'Movimiento de Cuentas a Cobrar',
+ 'AR Transactions' => 'Movimientos de Cuentas a Cobrar',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Add AP Transaction' => 'Agregar Asiento de Cuentas a Pagar',
+ 'Add AR Transaction' => 'Agregar Asiento de Cuentas a Cobrar',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Importe',
+ 'Amount Due' => 'Importe Adeudado',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => '¿Seguro que desea borrar el Asiento?',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'B.C.C.',
+ 'Cannot delete transaction!' => '¡No se puede borrar el Asiento!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un Pago para un periodo cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar un Asiento para un periodo cerrado!',
+ 'Cannot post transaction!' => '¡No se puede registrar el Asiento!',
+ 'Cc' => 'C.C.',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Cerrado',
+ 'Confirm!' => '¡Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Límite de Crédito',
+ 'Curr' => 'Div',
+ 'Currency' => 'Divisa',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el Cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Date Paid' => 'Fecha de Pago',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'Due Date missing!' => '¡Falta fecha de vencimiento!',
+ 'E-mail' => 'Correo electrónico',
+ 'Edit AP Transaction' => 'Modificar asiento de Cuentas a Pagar',
+ 'Edit AR Transaction' => 'Modificar asiento de Cuentas a Cobrar',
+ 'Employee' => 'Empleado',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate for payment missing!' => '¡Falta la tasa de cambio para el pago!',
+ 'Exchange rate missing!' => '¡Falta la tasa de cambio!',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => '¡Falta la fecha de la factura!',
+ 'Invoice Number' => 'Número de factura',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Manager' => 'Gerente',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Nota',
+ 'Message' => 'Mensaje',
+ 'Month' => 'Mes',
+ 'No.' => 'Nº',
+ 'Notes' => 'Notas',
+ 'Nothing to print!' => '¡No hay nada para imprimir!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Number' => 'Número de la orden',
+ 'PDF' => 'PDF',
+ 'Paid' => 'Pagado',
+ 'Payment date missing!' => '¡Falta la fecha del pago!',
+ 'Payments' => 'Pagos',
+ 'Period' => 'Periodo',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => '¡Proyecto no registrado!',
+ 'Quarter' => 'Trimestre',
+ 'Receipt' => 'Recibo',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Remanente',
+ 'Sales Invoice.' => 'Factura (venta).',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Select payment' => 'Seleccione el pago',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Ship to' => 'Enviar a',
+ 'Ship via' => 'Enviar por',
+ 'Shipping Point' => 'Punto de envío',
+ 'Source' => 'Origen',
+ 'Startdate' => 'Fecha de inicio',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resúmen',
+ 'Tax' => 'Impuestos',
+ 'Tax Included' => 'IVA Incluido',
+ 'Till' => 'Caja Registradora',
+ 'To' => 'Hasta',
+ 'Total' => 'Total',
+ 'Transaction' => 'Asiento',
+ 'Transaction deleted!' => '¡Asiento borrado!',
+ 'Transaction posted!' => '¡Asiento registrado!',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice.' => 'Factura de Proveedor.',
+ 'Vendor missing!' => '¡Falta el Proveedor!',
+ 'Vendor not on file!' => '¡Proveedor no registrado!',
+ 'Warning!' => '¡Advertencia!',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'movimiento_de_cuentas_a_pagar' => 'ap_transaction',
+ 'movimiento_de_cuentas_a_cobrar' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'imprimir_y_registrar' => 'print_and_post',
+ 'factura_(venta)_' => 'sales_invoice_',
+ 'enviar_a' => 'ship_to',
+ 'actualizar' => 'update',
+ 'factura_de_proveedor_' => 'vendor_invoice_',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/py/ar b/locale/py/ar
new file mode 100755
index 00000000..5bb27bcb
--- /dev/null
+++ b/locale/py/ar
@@ -0,0 +1,210 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Cuentas a Pagar pendientes',
+ 'AP Transaction' => 'Movimiento de Cuentas a Pagar',
+ 'AP Transactions' => 'Movimientos de Cuentas a Pagar',
+ 'AR Outstanding' => 'Cuentas a Cobrar pendientes',
+ 'AR Transaction' => 'Movimiento de Cuentas a Cobrar',
+ 'AR Transactions' => 'Movimientos de Cuentas a Cobrar',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Add AP Transaction' => 'Agregar Asiento de Cuentas a Pagar',
+ 'Add AR Transaction' => 'Agregar Asiento de Cuentas a Cobrar',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Importe',
+ 'Amount Due' => 'Importe Adeudado',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => '¿Seguro que desea borrar el Asiento?',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'B.C.C.',
+ 'Cannot delete transaction!' => '¡No se puede borrar el Asiento!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un Pago para un periodo cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar un Asiento para un periodo cerrado!',
+ 'Cannot post transaction!' => '¡No se puede registrar el Asiento!',
+ 'Cc' => 'C.C.',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Cerrado',
+ 'Confirm!' => '¡Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Límite de Crédito',
+ 'Curr' => 'Div',
+ 'Currency' => 'Divisa',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el Cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Date Paid' => 'Fecha de Pago',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'Due Date missing!' => '¡Falta fecha de vencimiento!',
+ 'E-mail' => 'Correo electrónico',
+ 'Edit AP Transaction' => 'Modificar asiento de Cuentas a Pagar',
+ 'Edit AR Transaction' => 'Modificar asiento de Cuentas a Cobrar',
+ 'Employee' => 'Empleado',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate for payment missing!' => '¡Falta la tasa de cambio para el pago!',
+ 'Exchange rate missing!' => '¡Falta la tasa de cambio!',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => '¡Falta la fecha de la factura!',
+ 'Invoice Number' => 'Número de factura',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Manager' => 'Gerente',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Nota',
+ 'Message' => 'Mensaje',
+ 'Month' => 'Mes',
+ 'No.' => 'Nº',
+ 'Notes' => 'Notas',
+ 'Nothing to print!' => '¡No hay nada para imprimir!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Number' => 'Número de la orden',
+ 'PDF' => 'PDF',
+ 'Paid' => 'Pagado',
+ 'Payment date missing!' => '¡Falta la fecha del pago!',
+ 'Payments' => 'Pagos',
+ 'Period' => 'Periodo',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => '¡Proyecto no registrado!',
+ 'Quarter' => 'Trimestre',
+ 'Receipt' => 'Recibo',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Remanente',
+ 'Sales Invoice.' => 'Factura (venta).',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Select payment' => 'Seleccione el pago',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Ship to' => 'Enviar a',
+ 'Ship via' => 'Enviar por',
+ 'Shipping Point' => 'Punto de envío',
+ 'Source' => 'Origen',
+ 'Startdate' => 'Fecha de inicio',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resúmen',
+ 'Tax' => 'Impuestos',
+ 'Tax Included' => 'IVA Incluido',
+ 'Till' => 'Caja Registradora',
+ 'To' => 'Hasta',
+ 'Total' => 'Total',
+ 'Transaction' => 'Asiento',
+ 'Transaction deleted!' => '¡Asiento borrado!',
+ 'Transaction posted!' => '¡Asiento registrado!',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice.' => 'Factura de Proveedor.',
+ 'Vendor missing!' => '¡Falta el Proveedor!',
+ 'Vendor not on file!' => '¡Proveedor no registrado!',
+ 'Warning!' => '¡Advertencia!',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'movimiento_de_cuentas_a_pagar' => 'ap_transaction',
+ 'movimiento_de_cuentas_a_cobrar' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'imprimir_y_registrar' => 'print_and_post',
+ 'factura_(venta)_' => 'sales_invoice_',
+ 'enviar_a' => 'ship_to',
+ 'actualizar' => 'update',
+ 'factura_de_proveedor_' => 'vendor_invoice_',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/py/arap b/locale/py/arap
new file mode 100755
index 00000000..9a89e114
--- /dev/null
+++ b/locale/py/arap
@@ -0,0 +1,51 @@
+$self{texts} = {
+ 'Address' => 'Dirección',
+ 'Bcc' => 'B.C.C.',
+ 'Cc' => 'C.C.',
+ 'Continue' => 'Continuar',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Description' => 'Descripción',
+ 'E-mail' => 'Correo electrónico',
+ 'Message' => 'Mensaje',
+ 'Number' => 'Número',
+ 'Print' => 'Imprimir',
+ 'Project not on file!' => '¡Proyecto no registrado!',
+ 'Reference' => 'Referencia',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Startdate' => 'Fecha de inicio',
+ 'Subject' => 'Asunto',
+ 'To' => 'Hasta',
+ 'Vendor not on file!' => '¡Proveedor no registrado!',
+ 'Warning!' => '¡Advertencia!',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/py/arapprn b/locale/py/arapprn
new file mode 100755
index 00000000..e07e0ba6
--- /dev/null
+++ b/locale/py/arapprn
@@ -0,0 +1,32 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Amount' => 'Importe',
+ 'Continue' => 'Continuar',
+ 'Date' => 'Fecha',
+ 'Memo' => 'Nota',
+ 'Nothing to print!' => '¡No hay nada para imprimir!',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'Postscript',
+ 'Printed' => 'Impreso',
+ 'Screen' => 'Pantalla',
+ 'Select payment' => 'Seleccione el pago',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF!',
+ 'Source' => 'Origen',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/py/bp b/locale/py/bp
new file mode 100755
index 00000000..53e3b82e
--- /dev/null
+++ b/locale/py/bp
@@ -0,0 +1,67 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Are you sure you want to remove the marked entries from the queue?' => '¿Seguro que desea borrar las entradas seleccionadas de la cola?',
+ 'Bin Lists' => 'Listas de Ubicaciones',
+ 'Cannot remove files!' => '¡No se pueden borrar los archivos!',
+ 'Confirm!' => '¡Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Date' => 'Fecha',
+ 'Employee' => 'Empleado',
+ 'From' => 'Desde',
+ 'ID' => 'ID',
+ 'Invoice' => 'Factura',
+ 'Invoice Number' => 'Número de factura',
+ 'Marked entries printed!' => '¡Entradas seleccionadas impresas!',
+ 'Month' => 'Mes',
+ 'Order' => 'Orden',
+ 'Order Number' => 'Número de la orden',
+ 'Packing Lists' => 'Listas de empaque',
+ 'Period' => 'Periodo',
+ 'Pick Lists' => 'Listas de Selección',
+ 'Print' => 'Imprimir',
+ 'Purchase Orders' => 'Ordenes de Compra',
+ 'Quarter' => 'Trimestre',
+ 'Quotation' => 'Cotización',
+ 'Quotation Number' => 'Número de Cotización',
+ 'Quotations' => 'Cotizaciones',
+ 'RFQs' => 'Solicitudes de cotización',
+ 'Remove' => 'Eliminar',
+ 'Removed spoolfiles!' => '¡Archivos de la cola eliminados!',
+ 'Removing marked entries from queue ...' => 'Eliminado entradas seleccionadas de la cola ...',
+ 'Sales Invoices' => 'Facturas (venta)',
+ 'Sales Orders' => 'Ordenes de Venta',
+ 'Select all' => 'Seleccionar todo',
+ 'Spoolfile' => 'Cola de Impresión',
+ 'To' => 'Hasta',
+ 'Vendor' => 'Proveedor',
+ 'Work Orders' => 'Ordenes de Trabajo',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+ 'done' => 'Terminado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'imprimir' => 'print',
+ 'eliminar' => 'remove',
+ 'seleccionar_todo' => 'select_all',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/py/ca b/locale/py/ca
new file mode 100755
index 00000000..baa401a7
--- /dev/null
+++ b/locale/py/ca
@@ -0,0 +1,59 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Saldo',
+ 'Chart of Accounts' => 'Plan de Cuentas',
+ 'Credit' => 'Crédito',
+ 'Current' => 'Actual',
+ 'Date' => 'Fecha',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descripción',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'GIFI' => 'Plan de Cuentas Fiscal (PCF)',
+ 'Include in Report' => 'Incluir en informe',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'List Transactions' => 'Mostrar Transacciones',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Month' => 'Mes',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Period' => 'Periodo',
+ 'Project Number' => 'Número del Proyecto',
+ 'Quarter' => 'Trimestre',
+ 'R' => 'R',
+ 'Reference' => 'Referencia',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'Hasta',
+ 'Year' => 'Año',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'mostrar_transacciones' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/py/cp b/locale/py/cp
new file mode 100755
index 00000000..6c81774b
--- /dev/null
+++ b/locale/py/cp
@@ -0,0 +1,123 @@
+$self{texts} = {
+ 'AP' => 'Cuentas a Pagar',
+ 'AR' => 'Cuentas a Cobrar',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Address' => 'Dirección',
+ 'All' => 'Todo',
+ 'Amount' => 'Importe',
+ 'Amount Due' => 'Importe Adeudado',
+ 'Bcc' => 'B.C.C.',
+ 'Cannot post Payment!' => '¡No se puede registrar el Pago!',
+ 'Cannot post Receipt!' => '¡No se puede registrar el Recibo!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un Pago para un periodo cerrado!',
+ 'Cc' => 'C.C.',
+ 'Continue' => 'Continuar',
+ 'Currency' => 'Divisa',
+ 'Customer' => 'Cliente',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Date missing!' => '¡Falta la fecha!',
+ 'Department' => 'Departamento',
+ 'Deposit' => 'Depósito',
+ 'Description' => 'Descripción',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate missing!' => '¡Falta la tasa de cambio!',
+ 'From' => 'Desde',
+ 'Invoice' => 'Factura',
+ 'Invoices' => 'Facturas',
+ 'Language' => 'Idioma',
+ 'Memo' => 'Nota',
+ 'Message' => 'Mensaje',
+ 'Number' => 'Número',
+ 'PDF' => 'PDF',
+ 'Payment' => 'Pago',
+ 'Payment posted!' => '¡Pago registrado!',
+ 'Payments' => 'Pagos',
+ 'Post' => 'Registrar',
+ 'Postscript' => 'Postscript',
+ 'Prepayment' => 'Anticipo',
+ 'Print' => 'Imprimir',
+ 'Project not on file!' => '¡Proyecto no registrado!',
+ 'Receipt' => 'Recibo',
+ 'Receipt posted!' => '¡Recibo registrado!',
+ 'Receipts' => 'Recibos',
+ 'Reference' => 'Referencia',
+ 'Screen' => 'Pantalla',
+ 'Select' => 'Seleccionar',
+ 'Select all' => 'Seleccionar todo',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF!',
+ 'Source' => 'Origen',
+ 'Startdate' => 'Fecha de inicio',
+ 'Subject' => 'Asunto',
+ 'To' => 'Hasta',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor not on file!' => '¡Proveedor no registrado!',
+ 'Warning!' => '¡Advertencia!',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuar' => 'continue',
+ 'registrar' => 'post',
+ 'imprimir' => 'print',
+ 'seleccionar_todo' => 'select_all',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/py/ct b/locale/py/ct
new file mode 100755
index 00000000..a46f65da
--- /dev/null
+++ b/locale/py/ct
@@ -0,0 +1,186 @@
+$self{texts} = {
+ 'AP Transaction' => 'Movimiento de Cuentas a Pagar',
+ 'AP Transactions' => 'Movimientos de Cuentas a Pagar',
+ 'AR Transaction' => 'Movimiento de Cuentas a Cobrar',
+ 'AR Transactions' => 'Movimientos de Cuentas a Cobrar',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Active' => 'Activo',
+ 'Add Customer' => 'Agregar Cliente',
+ 'Add Vendor' => 'Agregar Proveedor',
+ 'Address' => 'Dirección',
+ 'All' => 'Todo',
+ 'Amount' => 'Importe',
+ 'BIC' => 'BIC',
+ 'Bcc' => 'B.C.C.',
+ 'Billing Address' => 'Dirección para Facturación',
+ 'Break' => 'Romper',
+ 'Cannot delete customer!' => '¡No se puede borrar el Cliente!',
+ 'Cannot delete vendor!' => '¡No se puede borrar el Proveedor!',
+ 'Cc' => 'C.C.',
+ 'City' => 'Ciudad',
+ 'Closed' => 'Cerrado',
+ 'Company Name' => 'Razón Social',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Cost' => 'Costo',
+ 'Could not save pricelist!' => '¡No se pudo guardar la Lista de Precios!',
+ 'Country' => 'País',
+ 'Credit Limit' => 'Límite de Crédito',
+ 'Curr' => 'Div',
+ 'Currency' => 'Divisa',
+ 'Customer History' => 'Historial del Cliente',
+ 'Customer Number' => 'Código del Cliente',
+ 'Customer deleted!' => '¡Cliente borrado!',
+ 'Customer saved!' => '¡Cliente guardado!',
+ 'Customers' => 'Clientes',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Discount' => 'Descuento',
+ 'E-mail' => 'Correo electrónico',
+ 'Edit Customer' => 'Modificar Cliente',
+ 'Edit Vendor' => 'Modificar Proveedor',
+ 'Employee' => 'Empleado',
+ 'Enddate' => 'Fecha final',
+ 'Fax' => 'Fax',
+ 'From' => 'Desde',
+ 'GIFI' => 'Plan de Cuentas Fiscal (PCF)',
+ 'Group' => 'Grupo',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Invoice' => 'Factura',
+ 'Item already on pricelist!' => '¡El concepto ya está en la lista de precios!',
+ 'Item not on file!' => '¡El concepto no está registrado!',
+ 'Language' => 'Idioma',
+ 'Leadtime' => 'Tiempo de Entrega',
+ 'Manager' => 'Gerente',
+ 'Name' => 'Nombre',
+ 'Name missing!' => '¡Falta el Nombre!',
+ 'No.' => 'Nº',
+ 'Notes' => 'Notas',
+ 'Number' => 'Número',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Orphaned' => 'Huérfano',
+ 'POS' => 'Punto de Venta',
+ 'Phone' => 'Teléfono',
+ 'Pricegroup' => 'Grupo de precios',
+ 'Pricelist' => 'Lista de Precios',
+ 'Project Number' => 'Número del Proyecto',
+ 'Purchase Order' => 'Orden de Compra',
+ 'Purchase Orders' => 'Ordenes de Compra',
+ 'Qty' => 'Cant.',
+ 'Quotation' => 'Cotización',
+ 'Quotations' => 'Cotizaciones',
+ 'RFQ' => 'Solicitud de cotización',
+ 'Request for Quotations' => 'Solicitudes de cotización',
+ 'SIC' => 'CIS',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Factura (venta)',
+ 'Sales Invoices' => 'Facturas (venta)',
+ 'Sales Order' => 'Orden de Venta',
+ 'Sales Orders' => 'Ordenes de Venta',
+ 'Salesperson' => 'Vendedor',
+ 'Save' => 'Guardar',
+ 'Save Pricelist' => 'Guardar Lista de Precios',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Search' => 'Búsqueda',
+ 'Sell Price' => 'Precio de venta',
+ 'Serial Number' => 'Número de serie',
+ 'Shipping Address' => 'Dirección de envío',
+ 'Startdate' => 'Fecha de inicio',
+ 'State' => 'Departamento',
+ 'State/Province' => 'Departamento',
+ 'Sub-contract GIFI' => 'PCF del subcontrato',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resúmen',
+ 'Tax' => 'Impuestos',
+ 'Tax Included' => 'IVA Incluido',
+ 'Tax Number' => 'RUC',
+ 'Tax Number / SSN' => 'RUC/CIP',
+ 'Taxable' => 'Gravado',
+ 'Terms' => 'Condiciones',
+ 'To' => 'Hasta',
+ 'Total' => 'Total',
+ 'Type of Business' => 'Clase de Negocio',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Vendor History' => 'Historial del Proveedor',
+ 'Vendor Invoice' => 'Factura de Proveedor',
+ 'Vendor Invoices' => 'Facturas de Proveedor',
+ 'Vendor Number' => 'Código de Proveedor',
+ 'Vendor deleted!' => '¡Proveedor borrado!',
+ 'Vendor saved!' => '¡Proveedor guardado!',
+ 'Vendors' => 'Proveedores',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'days' => 'días',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'movimiento_de_cuentas_a_pagar' => 'ap_transaction',
+ 'movimiento_de_cuentas_a_cobrar' => 'ar_transaction',
+ 'agregar_cliente' => 'add_customer',
+ 'agregar_proveedor' => 'add_vendor',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'punto_de_venta' => 'pos',
+ 'lista_de_precios' => 'pricelist',
+ 'orden_de_compra' => 'purchase_order',
+ 'cotización' => 'quotation',
+ 'solicitud_de_cotización' => 'rfq',
+ 'factura_(venta)' => 'sales_invoice',
+ 'orden_de_venta' => 'sales_order',
+ 'guardar' => 'save',
+ 'guardar_lista_de_precios' => 'save_pricelist',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+ 'factura_de_proveedor' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/py/gl b/locale/py/gl
new file mode 100755
index 00000000..04766343
--- /dev/null
+++ b/locale/py/gl
@@ -0,0 +1,158 @@
+$self{texts} = {
+ 'AP Transaction' => 'Movimiento de Cuentas a Pagar',
+ 'AR Transaction' => 'Movimiento de Cuentas a Cobrar',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Add Cash Transfer Transaction' => 'Agregar Transferencia de Efectivo',
+ 'Add General Ledger Transaction' => 'Agregar Asiento al Mayor General',
+ 'Address' => 'Dirección',
+ 'All' => 'Todo',
+ 'Amount' => 'Importe',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => '¿Seguro que desea borrar el Asiento?',
+ 'Asset' => 'Activo',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Saldo',
+ 'Bcc' => 'B.C.C.',
+ 'Cannot delete transaction!' => '¡No se puede borrar el Asiento!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar un Asiento para un periodo cerrado!',
+ 'Cannot post transaction!' => '¡No se puede registrar el Asiento!',
+ 'Cc' => 'C.C.',
+ 'Confirm!' => '¡Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Current' => 'Actual',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descripción',
+ 'E-mail' => 'Correo electrónico',
+ 'Edit Cash Transfer Transaction' => 'Modificar Transferencia de Efectivo',
+ 'Edit General Ledger Transaction' => 'Modificar Asiento del Libro Mayor General',
+ 'Equity' => 'Patrimonio',
+ 'Expense' => 'Egreso',
+ 'FX' => 'Cotización de Monedas',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'GIFI' => 'Plan de Cuentas Fiscal (PCF)',
+ 'GL Transaction' => 'Asiento en el libro mayor',
+ 'General Ledger' => 'Libro Mayor General',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Income' => 'Ingreso',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Liability' => 'Pasivo',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Nota',
+ 'Message' => 'Mensaje',
+ 'Month' => 'Mes',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Out of balance transaction!' => '¡Asiento desbalanceado!',
+ 'Period' => 'Periodo',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Print' => 'Imprimir',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => '¡Proyecto no registrado!',
+ 'Quarter' => 'Trimestre',
+ 'R' => 'R',
+ 'Reference' => 'Referencia',
+ 'Reports' => 'Informes',
+ 'Sales Invoice ' => 'Factura (venta) ',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Source' => 'Origen',
+ 'Startdate' => 'Fecha de inicio',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'Hasta',
+ 'Transaction Date missing!' => '¡Falta la fecha del Asiento!',
+ 'Transaction deleted!' => '¡Asiento borrado!',
+ 'Transaction posted!' => '¡Asiento registrado!',
+ 'Update' => 'Actualizar',
+ 'Vendor Invoice ' => 'Factura de Proveedor ',
+ 'Vendor not on file!' => '¡Proveedor no registrado!',
+ 'Warning!' => '¡Advertencia!',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'movimiento_de_cuentas_a_pagar' => 'ap_transaction',
+ 'movimiento_de_cuentas_a_cobrar' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'asiento_en_el_libro_mayor' => 'gl_transaction',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'factura_(venta)_' => 'sales_invoice_',
+ 'actualizar' => 'update',
+ 'factura_de_proveedor_' => 'vendor_invoice_',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/py/hr b/locale/py/hr
new file mode 100755
index 00000000..b48fbf18
--- /dev/null
+++ b/locale/py/hr
@@ -0,0 +1,117 @@
+$self{texts} = {
+ 'AP' => 'Cuentas a Pagar',
+ 'Above' => 'Encima de',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Active' => 'Activo',
+ 'Add Deduction' => 'Agregar Descuento',
+ 'Add Employee' => 'Agregar Empleado',
+ 'Address' => 'Dirección',
+ 'Administrator' => 'Administrador',
+ 'After Deduction' => 'Después del Descuento',
+ 'All' => 'Todo',
+ 'Allowances' => 'Subsidios',
+ 'Amount' => 'Importe',
+ 'Amount missing!' => '¡Falta el Importe!',
+ 'BIC' => 'BIC',
+ 'Based on' => 'Basado en',
+ 'Before Deduction' => 'Antes del Descuento',
+ 'Below' => 'Debajo de',
+ 'City' => 'Ciudad',
+ 'Continue' => 'Continuar',
+ 'Country' => 'País',
+ 'DOB' => 'Fecha de nacimiento',
+ 'Deduct after' => 'Descontar después',
+ 'Deduction deleted!' => '¡Descuento borrado!',
+ 'Deduction saved!' => '¡Descuento guardado!',
+ 'Deductions' => 'Descuentos',
+ 'Delete' => 'Borrar',
+ 'Description' => 'Descripción',
+ 'Description missing!' => '¡Falta la descripción!',
+ 'E-mail' => 'Correo electrónico',
+ 'Edit Deduction' => 'Modificar Descuento',
+ 'Edit Employee' => 'Modificar Empleado',
+ 'Employee' => 'Empleado',
+ 'Employee Name' => 'Nombre del empleado',
+ 'Employee Number' => 'Código del empleado',
+ 'Employee deleted!' => '¡Empleado borrado!',
+ 'Employee pays' => 'El empleado paga',
+ 'Employee saved!' => '¡Empleado guardado!',
+ 'Employees' => 'Empleados',
+ 'Employer' => 'Patrón',
+ 'Employer pays' => 'El patrón paga',
+ 'Enddate' => 'Fecha final',
+ 'Expense' => 'Egreso',
+ 'From' => 'Desde',
+ 'Home Phone' => 'Teléfono (particular)',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Login' => 'Entrada al sistema',
+ 'Manager' => 'Gerente',
+ 'Maximum' => 'Máximo',
+ 'Name' => 'Nombre',
+ 'Name missing!' => '¡Falta el Nombre!',
+ 'Notes' => 'Notas',
+ 'Number' => 'Número',
+ 'Orphaned' => 'Huérfano',
+ 'Payroll Deduction' => 'Descuento Salarial',
+ 'Rate' => 'Tarifa',
+ 'Rate missing!' => '¡Falta la tarifa!',
+ 'Role' => 'Función',
+ 'S' => 'S',
+ 'SSN' => 'C.I.Nº',
+ 'Sales' => 'Ventas',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Startdate' => 'Fecha de inicio',
+ 'State/Province' => 'Departamento',
+ 'Supervisor' => 'Supervisor',
+ 'To' => 'Hasta',
+ 'Update' => 'Actualizar',
+ 'User' => 'Usuario',
+ 'Work Phone' => 'Teléfono (Oficina)',
+ 'Zip/Postal Code' => 'Código Postal',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'agregar_descuento' => 'add_deduction',
+ 'agregar_empleado' => 'add_employee',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'guardar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/py/ic b/locale/py/ic
new file mode 100755
index 00000000..f4c5996e
--- /dev/null
+++ b/locale/py/ic
@@ -0,0 +1,277 @@
+$self{texts} = {
+ 'A' => 'A',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Accounts' => 'Cuentas',
+ 'Accrual' => 'Acumulado',
+ 'Active' => 'Activo',
+ 'Add' => 'Agregar',
+ 'Add Assembly' => 'Agregar Ensamblaje',
+ 'Add Labor/Overhead' => 'Agregar Mano de Obra',
+ 'Add Part' => 'Agregar Artículo',
+ 'Add Purchase Order' => 'Agregar Orden de Compra',
+ 'Add Quotation' => 'Agregar Cotización',
+ 'Add Request for Quotation' => 'Pedir Cotización',
+ 'Add Sales Order' => 'Agregar Orden de Venta',
+ 'Add Service' => 'Agregar Servicio',
+ 'Address' => 'Dirección',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Assemblies' => 'Ensamblajes',
+ 'Assemblies restocked!' => 'Ensamblajes re-inventariados!',
+ 'Assembly' => 'Ensamblaje',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'BOM' => 'Lista de Materiales',
+ 'Bcc' => 'B.C.C.',
+ 'Billing Address' => 'Dirección para Facturación',
+ 'Bin' => 'Ubicación',
+ 'Bin List' => 'Lista de Ubicaciones',
+ 'Break' => 'Romper',
+ 'COGS' => 'Costo de Artículos Vendidos',
+ 'Cannot delete item!' => '¡No se puede borrar el Artículo!',
+ 'Cannot stock assemblies!' => '¡No se pueden almacenar los ensamblajes!',
+ 'Cash' => 'Efectivo',
+ 'Cc' => 'C.C.',
+ 'Check Inventory' => 'Verificar existencia',
+ 'City' => 'Ciudad',
+ 'Closed' => 'Cerrado',
+ 'Company Name' => 'Razón Social',
+ 'Components' => 'Componentes',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Cost' => 'Costo',
+ 'Country' => 'País',
+ 'Curr' => 'Div',
+ 'Currency' => 'Divisa',
+ 'Customer' => 'Cliente',
+ 'Customer Number' => 'Código del Cliente',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Drawing' => 'Plano',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail address missing!' => '¡Falta dirección E-mail!',
+ 'E-mailed' => 'Enviado por e-mail',
+ 'Edit Assembly' => 'Modificar Ensamblaje',
+ 'Edit Labor/Overhead' => 'Modificar Mano de Obra',
+ 'Edit Part' => 'Modificar Artículo',
+ 'Edit Service' => 'Modificar Servicio',
+ 'Employee' => 'Empleado',
+ 'Expense' => 'Egreso',
+ 'Extended' => 'Importe',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'Group' => 'Grupo',
+ 'Image' => 'Imagen',
+ 'In-line' => 'Incorporado',
+ 'Include in Report' => 'Incluir en informe',
+ 'Income' => 'Ingreso',
+ 'Individual Items' => 'Artículos individuales',
+ 'Inventory' => 'Existencia',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => '¡La existencia debe ser cero antes de poder cambiar el ensamblaje a obsoleto!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => '¡La existencia debe ser cero antes de poder cambiar este artículo a obsoleto!',
+ 'Invoice' => 'Factura',
+ 'Invoice Date missing!' => '¡Falta la fecha de la factura!',
+ 'Invoice Number' => 'Número de factura',
+ 'Invoice Number missing!' => '¡Falta el Número de Factura!',
+ 'Item deleted!' => '¡Concepto borrado!',
+ 'Item not on file!' => '¡El concepto no está registrado!',
+ 'Items' => 'Conceptos',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Labor/Overhead' => 'Mano de Obra',
+ 'Leadtime' => 'Tiempo de Entrega',
+ 'Line Total' => 'Total de la línea',
+ 'Link Accounts' => 'Vincular Cuentas',
+ 'List' => 'Lista',
+ 'List Price' => 'Precio de Lista',
+ 'Make' => 'Marca',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'Markup' => 'Margen',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Message' => 'Mensaje',
+ 'Microfiche' => 'Microficha',
+ 'Model' => 'Modelo',
+ 'Name' => 'Nombre',
+ 'No.' => 'Nº',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se encuentra el número en la fila',
+ 'Obsolete' => 'Obsoleto',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'On Hand' => 'Existencia',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Date missing!' => '¡Falta la fecha de la orden!',
+ 'Order Number' => 'Número de la orden',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'Orphaned' => 'Huérfano',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de Empaque',
+ 'Packing List Date missing!' => '¡Falta la fecha en la lista de empaque!',
+ 'Packing List Number missing!' => '¡Falta el número en la lista de empaque!',
+ 'Part' => 'Artículo',
+ 'Parts' => 'Artículos',
+ 'Period' => 'Periodo',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Selección',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Pricegroup' => 'Grupo de precios',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Purchase Order' => 'Orden de Compra',
+ 'Purchase Orders' => 'Ordenes de Compra',
+ 'Qty' => 'Cant.',
+ 'Quantity exceeds available units to stock!' => '¡La cantidad excede al stock disponible!',
+ 'Quotation' => 'Cotización',
+ 'Quotation Date missing!' => '¡Falta la Fecha de Cotización!',
+ 'Quotation Number missing!' => '¡Falta el Número de Cotización!',
+ 'Quotations' => 'Cotizaciones',
+ 'RFQ' => 'Solicitud de cotización',
+ 'ROP' => 'Existencia mínima',
+ 'Recd' => 'Recb.',
+ 'Required by' => 'Requerido para el',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Factura (venta)',
+ 'Sales Invoices' => 'Facturas (venta)',
+ 'Sales Order' => 'Orden de Venta',
+ 'Sales Orders' => 'Ordenes de Venta',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select txt, postscript or PDF!' => '¡Seleccione Texto, Postscript o PDF!',
+ 'Sell' => 'Vender',
+ 'Sell Price' => 'Precio de venta',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'Núm. de serie',
+ 'Serial Number' => 'Número de serie',
+ 'Service' => 'Servicio',
+ 'Services' => 'Servicios',
+ 'Ship' => 'Enviar',
+ 'Ship to' => 'Enviar a',
+ 'Shipping Address' => 'Dirección de envío',
+ 'Short' => 'Corto',
+ 'State/Province' => 'Departamento',
+ 'Stock' => 'Existencia',
+ 'Stock Assembly' => 'Reponer ensamblaje',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resúmen',
+ 'Tax' => 'Impuestos',
+ 'To' => 'Hasta',
+ 'Top Level' => 'Nivel Superior',
+ 'Translation not on file!' => 'No hay Traducción',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Updated' => 'Actualizado',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice' => 'Factura de Proveedor',
+ 'Vendor Invoices' => 'Facturas de Proveedor',
+ 'Vendor Number' => 'Código de Proveedor',
+ 'Vendor not on file!' => '¡Proveedor no registrado!',
+ 'Warehouse' => 'Almacén',
+ 'Weight' => 'Peso',
+ 'What type of item is this?' => '¿Que tipo de articulo es este?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Year' => 'Año',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'days' => 'días',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'agregar_ensamblaje' => 'add_assembly',
+ 'agregar_mano_de_obra' => 'add_labor_overhead',
+ 'agregar_artículo' => 'add_part',
+ 'agregar_servicio' => 'add_service',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'modificar_ensamblaje' => 'edit_assembly',
+ 'modificar_artículo' => 'edit_part',
+ 'modificar_servicio' => 'edit_service',
+ 'guardar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/py/io b/locale/py/io
new file mode 100755
index 00000000..87e82b66
--- /dev/null
+++ b/locale/py/io
@@ -0,0 +1,130 @@
+$self{texts} = {
+ 'Add Purchase Order' => 'Agregar Orden de Compra',
+ 'Add Quotation' => 'Agregar Cotización',
+ 'Add Request for Quotation' => 'Pedir Cotización',
+ 'Add Sales Order' => 'Agregar Orden de Venta',
+ 'Address' => 'Dirección',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'B.C.C.',
+ 'Billing Address' => 'Dirección para Facturación',
+ 'Bin' => 'Ubicación',
+ 'Bin List' => 'Lista de Ubicaciones',
+ 'Cc' => 'C.C.',
+ 'City' => 'Ciudad',
+ 'Company Name' => 'Razón Social',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Country' => 'País',
+ 'Customer Number' => 'Código del Cliente',
+ 'Date' => 'Fecha',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Description' => 'Descripción',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail address missing!' => '¡Falta dirección E-mail!',
+ 'E-mailed' => 'Enviado por e-mail',
+ 'Extended' => 'Importe',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'Group' => 'Grupo',
+ 'In-line' => 'Incorporado',
+ 'Invoice' => 'Factura',
+ 'Invoice Date missing!' => '¡Falta la fecha de la factura!',
+ 'Invoice Number missing!' => '¡Falta el Número de Factura!',
+ 'Item not on file!' => '¡El concepto no está registrado!',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Message' => 'Mensaje',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se encuentra el número en la fila',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Order Date missing!' => '¡Falta la fecha de la orden!',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de Empaque',
+ 'Packing List Date missing!' => '¡Falta la fecha en la lista de empaque!',
+ 'Packing List Number missing!' => '¡Falta el número en la lista de empaque!',
+ 'Part' => 'Artículo',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Selección',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Purchase Order' => 'Orden de Compra',
+ 'Qty' => 'Cant.',
+ 'Quotation' => 'Cotización',
+ 'Quotation Date missing!' => '¡Falta la Fecha de Cotización!',
+ 'Quotation Number missing!' => '¡Falta el Número de Cotización!',
+ 'Recd' => 'Recb.',
+ 'Required by' => 'Requerido para el',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Orden de Venta',
+ 'Screen' => 'Pantalla',
+ 'Select txt, postscript or PDF!' => '¡Seleccione Texto, Postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'Núm. de serie',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Enviar',
+ 'Ship to' => 'Enviar a',
+ 'Shipping Address' => 'Dirección de envío',
+ 'State/Province' => 'Departamento',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'Hasta',
+ 'Translation not on file!' => 'No hay Traducción',
+ 'Unit' => 'Unidad',
+ 'Vendor Number' => 'Código de Proveedor',
+ 'What type of item is this?' => '¿Que tipo de articulo es este?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/py/ir b/locale/py/ir
new file mode 100755
index 00000000..437ea8d9
--- /dev/null
+++ b/locale/py/ir
@@ -0,0 +1,224 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Add Purchase Order' => 'Agregar Orden de Compra',
+ 'Add Quotation' => 'Agregar Cotización',
+ 'Add Request for Quotation' => 'Pedir Cotización',
+ 'Add Sales Order' => 'Agregar Orden de Venta',
+ 'Add Vendor Invoice' => 'Agregar Factura de Proveedor',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Importe',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => '¿Seguro que desea borrar la Factura?',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'B.C.C.',
+ 'Billing Address' => 'Dirección para Facturación',
+ 'Bin' => 'Ubicación',
+ 'Bin List' => 'Lista de Ubicaciones',
+ 'Cannot delete invoice!' => '¡No se puede borrar la Factura!',
+ 'Cannot post invoice for a closed period!' => '¡No se puede registrar una Factura para un periodo cerrado!',
+ 'Cannot post invoice!' => '¡No se puede registrar la Factura!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un Pago para un periodo cerrado!',
+ 'Cc' => 'C.C.',
+ 'City' => 'Ciudad',
+ 'Company Name' => 'Razón Social',
+ 'Confirm!' => '¡Confirmar!',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Country' => 'País',
+ 'Credit Limit' => 'Límite de Crédito',
+ 'Currency' => 'Divisa',
+ 'Customer Number' => 'Código del Cliente',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descripción',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail address missing!' => '¡Falta dirección E-mail!',
+ 'E-mailed' => 'Enviado por e-mail',
+ 'Edit Vendor Invoice' => 'Modificar Factura de Proveedor',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate for payment missing!' => '¡Falta la tasa de cambio para el pago!',
+ 'Exchange rate missing!' => '¡Falta la tasa de cambio!',
+ 'Extended' => 'Importe',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'Group' => 'Grupo',
+ 'In-line' => 'Incorporado',
+ 'Internal Notes' => 'Notas internas',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => '¡Falta la fecha de la factura!',
+ 'Invoice Number' => 'Número de factura',
+ 'Invoice Number missing!' => '¡Falta el Número de Factura!',
+ 'Invoice deleted!' => '¡Factura borrada!',
+ 'Item not on file!' => '¡El concepto no está registrado!',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Language' => 'Idioma',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Nota',
+ 'Message' => 'Mensaje',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se encuentra el número en la fila',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Order Date missing!' => '¡Falta la fecha de la orden!',
+ 'Order Number' => 'Número de la orden',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de Empaque',
+ 'Packing List Date missing!' => '¡Falta la fecha en la lista de empaque!',
+ 'Packing List Number missing!' => '¡Falta el número en la lista de empaque!',
+ 'Part' => 'Artículo',
+ 'Payment date missing!' => '¡Falta la fecha del pago!',
+ 'Payments' => 'Pagos',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Selección',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => '¡Proyecto no registrado!',
+ 'Purchase Order' => 'Orden de Compra',
+ 'Qty' => 'Cant.',
+ 'Quotation' => 'Cotización',
+ 'Quotation Date missing!' => '¡Falta la Fecha de Cotización!',
+ 'Quotation Number missing!' => '¡Falta el Número de Cotización!',
+ 'Recd' => 'Recb.',
+ 'Record in' => 'Registrar en',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Remanente',
+ 'Required by' => 'Requerido para el',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Orden de Venta',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Select txt, postscript or PDF!' => '¡Seleccione Texto, Postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'Núm. de serie',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Enviar',
+ 'Ship to' => 'Enviar a',
+ 'Shipping Address' => 'Dirección de envío',
+ 'Source' => 'Origen',
+ 'Startdate' => 'Fecha de inicio',
+ 'State/Province' => 'Departamento',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Tax Included' => 'IVA Incluido',
+ 'To' => 'Hasta',
+ 'Total' => 'Total',
+ 'Translation not on file!' => 'No hay Traducción',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Number' => 'Código de Proveedor',
+ 'Vendor missing!' => '¡Falta el Proveedor!',
+ 'Vendor not on file!' => '¡Proveedor no registrado!',
+ 'Warning!' => '¡Advertencia!',
+ 'What type of item is this?' => '¿Que tipo de articulo es este?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Yes' => 'Si',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'ea' => 'c/u',
+ 'posted!' => '¡Registrado!',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'orden_de_compra' => 'purchase_order',
+ 'actualizar' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/py/is b/locale/py/is
new file mode 100755
index 00000000..4688f19b
--- /dev/null
+++ b/locale/py/is
@@ -0,0 +1,235 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Add Purchase Order' => 'Agregar Orden de Compra',
+ 'Add Quotation' => 'Agregar Cotización',
+ 'Add Request for Quotation' => 'Pedir Cotización',
+ 'Add Sales Invoice' => 'Agregar Factura de Venta',
+ 'Add Sales Order' => 'Agregar Orden de Venta',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Importe',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => '¿Seguro que desea borrar la Factura?',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'B.C.C.',
+ 'Billing Address' => 'Dirección para Facturación',
+ 'Bin' => 'Ubicación',
+ 'Bin List' => 'Lista de Ubicaciones',
+ 'Business' => 'Negocio',
+ 'Cannot delete invoice!' => '¡No se puede borrar la Factura!',
+ 'Cannot post invoice for a closed period!' => '¡No se puede registrar una Factura para un periodo cerrado!',
+ 'Cannot post invoice!' => '¡No se puede registrar la Factura!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un Pago para un periodo cerrado!',
+ 'Cc' => 'C.C.',
+ 'City' => 'Ciudad',
+ 'Company Name' => 'Razón Social',
+ 'Confirm!' => '¡Confirmar!',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Country' => 'País',
+ 'Credit Limit' => 'Límite de Crédito',
+ 'Currency' => 'Divisa',
+ 'Customer' => 'Cliente',
+ 'Customer Number' => 'Código del Cliente',
+ 'Customer missing!' => '¡Falta el Cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descripción',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail address missing!' => '¡Falta dirección E-mail!',
+ 'E-mailed' => 'Enviado por e-mail',
+ 'Edit Sales Invoice' => 'Modificar Factura de Venta',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate for payment missing!' => '¡Falta la tasa de cambio para el pago!',
+ 'Exchange rate missing!' => '¡Falta la tasa de cambio!',
+ 'Extended' => 'Importe',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'Group' => 'Grupo',
+ 'In-line' => 'Incorporado',
+ 'Internal Notes' => 'Notas internas',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => '¡Falta la fecha de la factura!',
+ 'Invoice Number' => 'Número de factura',
+ 'Invoice Number missing!' => '¡Falta el Número de Factura!',
+ 'Invoice deleted!' => '¡Factura borrada!',
+ 'Item not on file!' => '¡El concepto no está registrado!',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Nota',
+ 'Message' => 'Mensaje',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se encuentra el número en la fila',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Order Date missing!' => '¡Falta la fecha de la orden!',
+ 'Order Number' => 'Número de la orden',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de Empaque',
+ 'Packing List Date missing!' => '¡Falta la fecha en la lista de empaque!',
+ 'Packing List Number missing!' => '¡Falta el número en la lista de empaque!',
+ 'Part' => 'Artículo',
+ 'Payment date missing!' => '¡Falta la fecha del pago!',
+ 'Payments' => 'Pagos',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Selección',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => '¡Proyecto no registrado!',
+ 'Purchase Order' => 'Orden de Compra',
+ 'Qty' => 'Cant.',
+ 'Quotation' => 'Cotización',
+ 'Quotation Date missing!' => '¡Falta la Fecha de Cotización!',
+ 'Quotation Number missing!' => '¡Falta el Número de Cotización!',
+ 'Recd' => 'Recb.',
+ 'Record in' => 'Registrar en',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Remanente',
+ 'Required by' => 'Requerido para el',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Orden de Venta',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF!',
+ 'Select txt, postscript or PDF!' => '¡Seleccione Texto, Postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'Núm. de serie',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Enviar',
+ 'Ship to' => 'Enviar a',
+ 'Ship via' => 'Enviar por',
+ 'Shipping Address' => 'Dirección de envío',
+ 'Shipping Point' => 'Punto de envío',
+ 'Source' => 'Origen',
+ 'Startdate' => 'Fecha de inicio',
+ 'State/Province' => 'Departamento',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Tax Included' => 'IVA Incluido',
+ 'To' => 'Hasta',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Descuento comercial',
+ 'Translation not on file!' => 'No hay Traducción',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Vendor Number' => 'Código de Proveedor',
+ 'Vendor not on file!' => '¡Proveedor no registrado!',
+ 'Warning!' => '¡Advertencia!',
+ 'What type of item is this?' => '¿Que tipo de articulo es este?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Yes' => 'Si',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'ea' => 'c/u',
+ 'posted!' => '¡Registrado!',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'correo_electrónico' => 'e_mail',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'imprimir_y_registrar' => 'print_and_post',
+ 'orden_de_venta' => 'sales_order',
+ 'enviar_a' => 'ship_to',
+ 'actualizar' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/py/jc b/locale/py/jc
new file mode 100755
index 00000000..0678b706
--- /dev/null
+++ b/locale/py/jc
@@ -0,0 +1,92 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Amount' => 'Importe',
+ 'Closed' => 'Cerrado',
+ 'Confirm!' => '¡Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Cost' => 'Costo',
+ 'Current' => 'Actual',
+ 'Date' => 'Fecha',
+ 'Date missing!' => '¡Falta la fecha!',
+ 'Delete' => 'Borrar',
+ 'Description' => 'Descripción',
+ 'Employee' => 'Empleado',
+ 'From' => 'Desde',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluir en informe',
+ 'Month' => 'Mes',
+ 'Notes' => 'Notas',
+ 'Open' => 'Abierto',
+ 'PDF' => 'PDF',
+ 'Period' => 'Periodo',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Imprimir',
+ 'Print and Save' => 'Imprimir y guardar',
+ 'Printed' => 'Impreso',
+ 'Project Number' => 'Número del Proyecto',
+ 'Project Number missing!' => '¡Falta el número de proyecto!',
+ 'Qty' => 'Cant.',
+ 'Quarter' => 'Trimestre',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Screen' => 'Pantalla',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF!',
+ 'Startdate' => 'Fecha de inicio',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'Hasta',
+ 'Total' => 'Total',
+ 'Update' => 'Actualizar',
+ 'Warning!' => '¡Advertencia!',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'imprimir' => 'print',
+ 'imprimir_y_guardar' => 'print_and_save',
+ 'guardar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/py/locales.pl b/locale/py/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/py/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/py/login b/locale/py/login
new file mode 100755
index 00000000..3938fd16
--- /dev/null
+++ b/locale/py/login
@@ -0,0 +1,24 @@
+$self{texts} = {
+ 'Company' => 'Empresa',
+ 'Continue' => 'Continuar',
+ 'Dataset is newer than version!' => '¡El Base de Datos es más reciente que la versión del programa!',
+ 'Incorrect Dataset version!' => '¡La Versión de la base de datos es incorrecta!',
+ 'Login' => 'Entrada al sistema',
+ 'Name' => 'Nombre',
+ 'Password' => 'Contraseña',
+ 'Upgrading to Version' => 'Actualizando a versión',
+ 'Version' => 'Versión',
+ 'You did not enter a name!' => '¡No ingresó un Nombre!',
+ 'done' => 'Terminado',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ 'entrada_al_sistema' => 'login',
+};
+
+1;
+
diff --git a/locale/py/menu b/locale/py/menu
new file mode 100755
index 00000000..f31f5bfe
--- /dev/null
+++ b/locale/py/menu
@@ -0,0 +1,135 @@
+$self{texts} = {
+ 'AP' => 'Cuentas a Pagar',
+ 'AP Aging' => 'Vencimiento de Cuentas a Pagar',
+ 'AP Transaction' => 'Movimiento de Cuentas a Pagar',
+ 'AR' => 'Cuentas a Cobrar',
+ 'AR Aging' => 'Vencimiento Cuentas a Cobrar',
+ 'AR Transaction' => 'Movimiento de Cuentas a Cobrar',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Add Account' => 'Agregar Cuenta',
+ 'Add Assembly' => 'Agregar Ensamblaje',
+ 'Add Business' => 'Agregar Negocio',
+ 'Add Customer' => 'Agregar Cliente',
+ 'Add Department' => 'Agregar Centro de Costos',
+ 'Add Employee' => 'Agregar Empleado',
+ 'Add GIFI' => 'Agregar PCF',
+ 'Add Group' => 'Agregar Grupo',
+ 'Add Labor/Overhead' => 'Agregar Mano de Obra',
+ 'Add Language' => 'Agregar Idioma',
+ 'Add Part' => 'Agregar Artículo',
+ 'Add Pricegroup' => 'Agregar Grupo de Precios',
+ 'Add Project' => 'Agregar Proyecto',
+ 'Add SIC' => 'Agregar CIS',
+ 'Add Service' => 'Agregar Servicio',
+ 'Add Transaction' => 'Agregar Transacción',
+ 'Add Vendor' => 'Agregar Proveedor',
+ 'Add Warehouse' => 'Agregar Almacén',
+ 'All Items' => 'Todos los Artículos',
+ 'Assemblies' => 'Ensamblajes',
+ 'Audit Control' => 'Control de Auditoría',
+ 'Backup' => 'Copia de Seguridad de los datos',
+ 'Balance Sheet' => 'Balance General',
+ 'Bin List' => 'Lista de Ubicaciones',
+ 'Bin Lists' => 'Listas de Ubicaciones',
+ 'Cash' => 'Efectivo',
+ 'Chart of Accounts' => 'Plan de Cuentas',
+ 'Check' => 'Cheque',
+ 'Components' => 'Componentes',
+ 'Customers' => 'Clientes',
+ 'Defaults' => 'Valores predeterminados',
+ 'Departments' => 'Departamentos',
+ 'Description' => 'Descripción',
+ 'Employees' => 'Empleados',
+ 'General Ledger' => 'Libro Mayor General',
+ 'Goods & Services' => 'Bienes y Servicios',
+ 'Groups' => 'Grupos',
+ 'HR' => 'Recursos Humanos',
+ 'HTML Templates' => 'Plantillas HTML',
+ 'History' => 'Historial',
+ 'Income Statement' => 'Cuadro de Resultados',
+ 'Invoice' => 'Factura',
+ 'LaTeX Templates' => 'Plantillas LaTeX',
+ 'Labor/Overhead' => 'Mano de Obra',
+ 'Language' => 'Idioma',
+ 'List Accounts' => 'Mostrar Plan de Cuentas',
+ 'List Businesses' => 'Mostrar empresas',
+ 'List Departments' => 'Mostrar Centro de Costos',
+ 'List GIFI' => 'Mostrar PCF',
+ 'List Languages' => 'Mostrar Idiomas',
+ 'List Projects' => 'Mostrar Projectos',
+ 'List SIC' => 'Mostrar CIS',
+ 'List Warehouses' => 'Mostar almacenes',
+ 'Logout' => 'Salir del Sistema',
+ 'New Window' => 'Ventana nueva',
+ 'Non-taxable' => 'Exento',
+ 'Open' => 'Abierto',
+ 'Order Entry' => 'Carga de Ordenes',
+ 'Outstanding' => 'Pendiente',
+ 'POS' => 'Punto de Venta',
+ 'POS Invoice' => 'Factura Punto de Venta',
+ 'Packing List' => 'Lista de Empaque',
+ 'Packing Lists' => 'Listas de empaque',
+ 'Parts' => 'Artículos',
+ 'Payment' => 'Pago',
+ 'Payments' => 'Pagos',
+ 'Pick List' => 'Lista de Selección',
+ 'Pick Lists' => 'Listas de Selección',
+ 'Preferences' => 'Preferencias',
+ 'Pricegroups' => 'Grupos de precios',
+ 'Print' => 'Imprimir',
+ 'Projects' => 'Proyectos',
+ 'Purchase Order' => 'Orden de Compra',
+ 'Purchase Orders' => 'Ordenes de Compra',
+ 'Quotation' => 'Cotización',
+ 'Quotations' => 'Cotizaciones',
+ 'RFQ' => 'Solicitud de cotización',
+ 'RFQs' => 'Solicitudes de cotización',
+ 'Receipt' => 'Recibo',
+ 'Receipts' => 'Recibos',
+ 'Receive' => 'Recibir',
+ 'Reconciliation' => 'Reconciliación',
+ 'Reports' => 'Informes',
+ 'SIC' => 'CIS',
+ 'Sale' => 'Venta',
+ 'Sales Invoice' => 'Factura (venta)',
+ 'Sales Invoices' => 'Facturas (venta)',
+ 'Sales Order' => 'Orden de Venta',
+ 'Sales Orders' => 'Ordenes de Venta',
+ 'Save to File' => 'Guardar en un archivo',
+ 'Search' => 'Búsqueda',
+ 'Send by E-Mail' => 'Enviar por correo electrónico',
+ 'Services' => 'Servicios',
+ 'Ship' => 'Enviar',
+ 'Shipping' => 'Envío',
+ 'Statement' => 'Estado de cuenta',
+ 'Stock Assembly' => 'Reponer ensamblaje',
+ 'Stylesheet' => 'Hoja de estilos',
+ 'System' => 'Sistema',
+ 'Tax collected' => 'Impuesto Retenido',
+ 'Tax paid' => 'Impuestos pagados',
+ 'Text Templates' => 'Plantillas de texto',
+ 'Transactions' => 'Asientos',
+ 'Transfer' => 'Transferencia',
+ 'Transfer Inventory' => 'Transferir existencia',
+ 'Translations' => 'Traducciones',
+ 'Trial Balance' => 'Balance de Sumas y Saldos',
+ 'Type of Business' => 'Clase de Negocio',
+ 'Vendor Invoice' => 'Factura de Proveedor',
+ 'Vendors' => 'Proveedores',
+ 'Version' => 'Versión',
+ 'Warehouses' => 'Almacenes',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Work Orders' => 'Ordenes de Trabajo',
+ 'Yearend' => 'Cierre del Ejercicio',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/py/oe b/locale/py/oe
new file mode 100755
index 00000000..7d8b9612
--- /dev/null
+++ b/locale/py/oe
@@ -0,0 +1,321 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Add Exchange Rate' => 'Agregar Cotización de Moneda',
+ 'Add Purchase Order' => 'Agregar Orden de Compra',
+ 'Add Quotation' => 'Agregar Cotización',
+ 'Add Request for Quotation' => 'Pedir Cotización',
+ 'Add Sales Invoice' => 'Agregar Factura de Venta',
+ 'Add Sales Order' => 'Agregar Orden de Venta',
+ 'Add Vendor Invoice' => 'Agregar Factura de Proveedor',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Importe',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Order Number' => '¿Seguro que desea borrar la Orden de Compra/Pedido?',
+ 'Are you sure you want to delete Quotation Number' => '¿Seguro que desea borrar la Cotización?',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'B.C.C.',
+ 'Billing Address' => 'Dirección para Facturación',
+ 'Bin' => 'Ubicación',
+ 'Bin List' => 'Lista de Ubicaciones',
+ 'Business' => 'Negocio',
+ 'C' => 'C',
+ 'Cannot delete order!' => '¡No se puede borrar la Orden!',
+ 'Cannot delete quotation!' => '¡No se puede borrar la Cotización!',
+ 'Cannot save order!' => '¡No se puede guardar la Orden!',
+ 'Cannot save quotation!' => '¡No se puede guardar la Cotización!',
+ 'Cc' => 'C.C.',
+ 'City' => 'Ciudad',
+ 'Closed' => 'Cerrado',
+ 'Company Name' => 'Razón Social',
+ 'Confirm!' => '¡Confirmar!',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Cost' => 'Costo',
+ 'Could not save!' => '¡No se pudo guardar!',
+ 'Could not transfer Inventory!' => '¡No se pudo transferir existencia!',
+ 'Country' => 'País',
+ 'Credit Limit' => 'Límite de Crédito',
+ 'Curr' => 'Div',
+ 'Currency' => 'Divisa',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer Number' => 'Código del Cliente',
+ 'Customer missing!' => '¡Falta el Cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Date Received' => 'Fecha de recepción',
+ 'Date received missing!' => '¡Falta la fecha de recepción!',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descripción',
+ 'Done' => 'Terminado',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail address missing!' => '¡Falta dirección E-mail!',
+ 'E-mailed' => 'Enviado por e-mail',
+ 'Edit Purchase Order' => 'Modificar Orden de Compra',
+ 'Edit Quotation' => 'Modificar Cotización',
+ 'Edit Request for Quotation' => 'Modificar Solicitud de Cotización',
+ 'Edit Sales Order' => 'Modificar Orden de Venta',
+ 'Employee' => 'Empleado',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate missing!' => '¡Falta la tasa de cambio!',
+ 'Extended' => 'Importe',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'Group' => 'Grupo',
+ 'ID' => 'ID',
+ 'In-line' => 'Incorporado',
+ 'Include in Report' => 'Incluir en informe',
+ 'Internal Notes' => 'Notas internas',
+ 'Inventory saved!' => '¡Existencias guardadas!',
+ 'Inventory transferred!' => '¡Existencias transferidas!',
+ 'Invoice' => 'Factura',
+ 'Invoice Date missing!' => '¡Falta la fecha de la factura!',
+ 'Invoice Number missing!' => '¡Falta el Número de Factura!',
+ 'Item not on file!' => '¡El concepto no está registrado!',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Manager' => 'Gerente',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Message' => 'Mensaje',
+ 'Month' => 'Mes',
+ 'No.' => 'Nº',
+ 'Notes' => 'Notas',
+ 'Nothing entered!' => '¡No se suministró nada!',
+ 'Nothing selected!' => '¡No se seleccionó nada!',
+ 'Nothing to transfer!' => '¡Nada que transferir!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se encuentra el número en la fila',
+ 'O' => 'O',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Date' => 'Fecha de la orden',
+ 'Order Date missing!' => '¡Falta la fecha de la orden!',
+ 'Order Number' => 'Número de la orden',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'Order deleted!' => '¡Orden borrada!',
+ 'Order saved!' => '¡Orden guardada!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de Empaque',
+ 'Packing List Date missing!' => '¡Falta la fecha en la lista de empaque!',
+ 'Packing List Number missing!' => '¡Falta el número en la lista de empaque!',
+ 'Part' => 'Artículo',
+ 'Period' => 'Periodo',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Selección',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Print and Save' => 'Imprimir y guardar',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => '¡Proyecto no registrado!',
+ 'Purchase Order' => 'Orden de Compra',
+ 'Purchase Orders' => 'Ordenes de Compra',
+ 'Qty' => 'Cant.',
+ 'Quarter' => 'Trimestre',
+ 'Quotation' => 'Cotización',
+ 'Quotation ' => 'Cotización ',
+ 'Quotation Date' => 'Fecha de Cotización',
+ 'Quotation Date missing!' => '¡Falta la Fecha de Cotización!',
+ 'Quotation Number' => 'Número de Cotización',
+ 'Quotation Number missing!' => '¡Falta el Número de Cotización!',
+ 'Quotation deleted!' => '¡Cotización borrada!',
+ 'Quotations' => 'Cotizaciones',
+ 'RFQ' => 'Solicitud de cotización',
+ 'RFQ ' => 'Solicitud de cotización ',
+ 'RFQ Number' => 'Número de Solicitud de cotización',
+ 'Recd' => 'Recb.',
+ 'Receive Merchandise' => 'Recibir mercadería',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Remanente',
+ 'Request for Quotation' => 'Solicitud de cotización',
+ 'Request for Quotations' => 'Solicitudes de cotización',
+ 'Required by' => 'Requerido para el',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Factura (venta)',
+ 'Sales Order' => 'Orden de Venta',
+ 'Sales Orders' => 'Ordenes de Venta',
+ 'Salesperson' => 'Vendedor',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF!',
+ 'Select txt, postscript or PDF!' => '¡Seleccione Texto, Postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'Núm. de serie',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Enviar',
+ 'Ship Merchandise' => 'Enviar Mercadería',
+ 'Ship to' => 'Enviar a',
+ 'Ship via' => 'Enviar por',
+ 'Shipping Address' => 'Dirección de envío',
+ 'Shipping Date' => 'Fecha de envío',
+ 'Shipping Date missing!' => '¡Falta la fecha de envío!',
+ 'Shipping Point' => 'Punto de envío',
+ 'Startdate' => 'Fecha de inicio',
+ 'State/Province' => 'Departamento',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Tax' => 'Impuestos',
+ 'Tax Included' => 'IVA Incluido',
+ 'Terms' => 'Condiciones',
+ 'To' => 'Hasta',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Descuento comercial',
+ 'Transfer' => 'Transferencia',
+ 'Transfer Inventory' => 'Transferir existencia',
+ 'Transfer to' => 'Transferir a',
+ 'Translation not on file!' => 'No hay Traducción',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Valid until' => 'Válido hasta',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice' => 'Factura de Proveedor',
+ 'Vendor Number' => 'Código de Proveedor',
+ 'Vendor missing!' => '¡Falta el Proveedor!',
+ 'Vendor not on file!' => '¡Proveedor no registrado!',
+ 'Warehouse' => 'Almacén',
+ 'Warning!' => '¡Advertencia!',
+ 'What type of item is this?' => '¿Que tipo de articulo es este?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'days' => 'días',
+ 'ea' => 'c/u',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'terminado' => 'done',
+ 'correo_electrónico' => 'e_mail',
+ 'imprimir' => 'print',
+ 'imprimir_y_guardar' => 'print_and_save',
+ 'orden_de_compra' => 'purchase_order',
+ 'cotización' => 'quotation',
+ 'cotización_' => 'quotation_',
+ 'solicitud_de_cotización' => 'rfq',
+ 'solicitud_de_cotización_' => 'rfq_',
+ 'factura_(venta)' => 'sales_invoice',
+ 'orden_de_venta' => 'sales_order',
+ 'guardar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'enviar_a' => 'ship_to',
+ 'transferencia' => 'transfer',
+ 'actualizar' => 'update',
+ 'factura_de_proveedor' => 'vendor_invoice',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/py/pe b/locale/py/pe
new file mode 100755
index 00000000..71a17d09
--- /dev/null
+++ b/locale/py/pe
@@ -0,0 +1,141 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Active' => 'Activo',
+ 'Add' => 'Agregar',
+ 'Add Group' => 'Agregar Grupo',
+ 'Add Pricegroup' => 'Agregar Grupo de Precios',
+ 'Add Project' => 'Agregar Proyecto',
+ 'Address' => 'Dirección',
+ 'All' => 'Todo',
+ 'Amount' => 'Importe',
+ 'Assembly' => 'Ensamblaje',
+ 'Bin' => 'Ubicación',
+ 'Continue' => 'Continuar',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el Cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Delete' => 'Borrar',
+ 'Description' => 'Descripción',
+ 'Description Translations' => 'Traducciones de la descripción',
+ 'Detail' => 'Detalle',
+ 'Edit Description Translations' => 'Modificar Traducciones de Descripción',
+ 'Edit Group' => 'Modificar Grupo',
+ 'Edit Pricegroup' => 'Modificar Grupo de Precios',
+ 'Edit Project' => 'Modificar Proyecto',
+ 'Employee' => 'Empleado',
+ 'Enddate' => 'Fecha final',
+ 'From' => 'Desde',
+ 'Group' => 'Grupo',
+ 'Group Translations' => 'Traducción de Grupos',
+ 'Group deleted!' => '¡Grupo borrado!',
+ 'Group missing!' => '¡Falta el grupo!',
+ 'Group saved!' => '¡Grupo guardado!',
+ 'Groups' => 'Grupos',
+ 'Income' => 'Ingreso',
+ 'Language' => 'Idioma',
+ 'Languages not defined!' => '¡Idiomas no definido!',
+ 'Link Accounts' => 'Vincular Cuentas',
+ 'List Price' => 'Precio de Lista',
+ 'Month' => 'Mes',
+ 'Notes' => 'Notas',
+ 'Nothing selected!' => '¡No se seleccionó nada!',
+ 'Number' => 'Número',
+ 'Orphaned' => 'Huérfano',
+ 'Period' => 'Periodo',
+ 'Pricegroup' => 'Grupo de precios',
+ 'Pricegroup deleted!' => '¡Grupo de precios borrado!',
+ 'Pricegroup missing!' => '¡Falta el grupo de precios!',
+ 'Pricegroup saved!' => '¡Grupo de precios guardado!',
+ 'Pricegroups' => 'Grupos de precios',
+ 'Project' => 'Proyecto',
+ 'Project Description Translations' => 'Traducciones de descripción de proyecto',
+ 'Project Number' => 'Número del Proyecto',
+ 'Project deleted!' => '¡Proyecto borrado!',
+ 'Project saved!' => '¡Proyecto guardado!',
+ 'Projects' => 'Proyectos',
+ 'Qty' => 'Cant.',
+ 'Quarter' => 'Trimestre',
+ 'Save' => 'Guardar',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Sell Price' => 'Precio de venta',
+ 'Startdate' => 'Fecha de inicio',
+ 'Summary' => 'Resúmen',
+ 'Tax' => 'Impuestos',
+ 'To' => 'Hasta',
+ 'Translation' => 'Traducción',
+ 'Translation deleted!' => '¡Traducción borrada!',
+ 'Translations saved!' => '¡Traducciones guardadas!',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Updated' => 'Actualizado',
+ 'Vendor' => 'Proveedor',
+ 'Vendor not on file!' => '¡Proveedor no registrado!',
+ 'Weight' => 'Peso',
+ 'Year' => 'Año',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'agregar_grupo' => 'add_group',
+ 'agregar_grupo_de_precios' => 'add_pricegroup',
+ 'agregar_proyecto' => 'add_project',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'guardar' => 'save',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/py/pos b/locale/py/pos
new file mode 100755
index 00000000..eb8d8d0a
--- /dev/null
+++ b/locale/py/pos
@@ -0,0 +1,80 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Add POS Invoice' => 'Agregar Factura Punto de Venta',
+ 'Amount' => 'Importe',
+ 'Business' => 'Negocio',
+ 'Cannot post transaction!' => '¡No se puede registrar el Asiento!',
+ 'Change' => 'Cambiar',
+ 'Continue' => 'Continuar',
+ 'Credit Limit' => 'Límite de Crédito',
+ 'Currency' => 'Divisa',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el Cliente!',
+ 'Delete' => 'Borrar',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descripción',
+ 'Edit POS Invoice' => 'Modificar Ticket',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate missing!' => '¡Falta la tasa de cambio!',
+ 'Extended' => 'Importe',
+ 'From' => 'Desde',
+ 'Language' => 'Idioma',
+ 'Memo' => 'Nota',
+ 'Month' => 'Mes',
+ 'Number' => 'Número',
+ 'Open' => 'Abierto',
+ 'Period' => 'Periodo',
+ 'Post' => 'Registrar',
+ 'Posted!' => '¡Registrado!',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Printed' => 'Impreso',
+ 'Qty' => 'Cant.',
+ 'Quarter' => 'Trimestre',
+ 'Receipts' => 'Recibos',
+ 'Record in' => 'Registrar en',
+ 'Remaining' => 'Remanente',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Pantalla',
+ 'Source' => 'Origen',
+ 'Subtotal' => 'Subtotal',
+ 'Tax Included' => 'IVA Incluido',
+ 'To' => 'Hasta',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Descuento comercial',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Year' => 'Año',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'registrar' => 'post',
+ 'imprimir' => 'print',
+ 'imprimir_y_registrar' => 'print_and_post',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/py/ps b/locale/py/ps
new file mode 100755
index 00000000..bbaa0870
--- /dev/null
+++ b/locale/py/ps
@@ -0,0 +1,358 @@
+$self{texts} = {
+ 'AP Aging' => 'Vencimiento de Cuentas a Pagar',
+ 'AP Outstanding' => 'Cuentas a Pagar pendientes',
+ 'AP Transaction' => 'Movimiento de Cuentas a Pagar',
+ 'AP Transactions' => 'Movimientos de Cuentas a Pagar',
+ 'AR Aging' => 'Vencimiento Cuentas a Cobrar',
+ 'AR Outstanding' => 'Cuentas a Cobrar pendientes',
+ 'AR Transaction' => 'Movimiento de Cuentas a Cobrar',
+ 'AR Transactions' => 'Movimientos de Cuentas a Cobrar',
+ 'Account' => 'Cuenta',
+ 'Account Number' => 'Número de Cuenta',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Accounts' => 'Cuentas',
+ 'Accrual' => 'Acumulado',
+ 'Add AP Transaction' => 'Agregar Asiento de Cuentas a Pagar',
+ 'Add AR Transaction' => 'Agregar Asiento de Cuentas a Cobrar',
+ 'Add POS Invoice' => 'Agregar Factura Punto de Venta',
+ 'Add Purchase Order' => 'Agregar Orden de Compra',
+ 'Add Quotation' => 'Agregar Cotización',
+ 'Add Request for Quotation' => 'Pedir Cotización',
+ 'Add Sales Invoice' => 'Agregar Factura de Venta',
+ 'Add Sales Order' => 'Agregar Orden de Venta',
+ 'Address' => 'Dirección',
+ 'All Accounts' => 'Todas las Cuentas',
+ 'Amount' => 'Importe',
+ 'Amount Due' => 'Importe Adeudado',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => '¿Seguro que desea borrar la Factura?',
+ 'Are you sure you want to delete Transaction' => '¿Seguro que desea borrar el Asiento?',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Saldo',
+ 'Balance Sheet' => 'Balance General',
+ 'Bcc' => 'B.C.C.',
+ 'Billing Address' => 'Dirección para Facturación',
+ 'Bin' => 'Ubicación',
+ 'Bin List' => 'Lista de Ubicaciones',
+ 'Business' => 'Negocio',
+ 'Cannot delete invoice!' => '¡No se puede borrar la Factura!',
+ 'Cannot delete transaction!' => '¡No se puede borrar el Asiento!',
+ 'Cannot post invoice for a closed period!' => '¡No se puede registrar una Factura para un periodo cerrado!',
+ 'Cannot post invoice!' => '¡No se puede registrar la Factura!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un Pago para un periodo cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar un Asiento para un periodo cerrado!',
+ 'Cannot post transaction!' => '¡No se puede registrar el Asiento!',
+ 'Cash' => 'Efectivo',
+ 'Cc' => 'C.C.',
+ 'Change' => 'Cambiar',
+ 'Check' => 'Cheque',
+ 'City' => 'Ciudad',
+ 'Closed' => 'Cerrado',
+ 'Company Name' => 'Razón Social',
+ 'Compare to' => 'Comparar con',
+ 'Confirm!' => '¡Confirmar!',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Country' => 'País',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Límite de Crédito',
+ 'Curr' => 'Div',
+ 'Currency' => 'Divisa',
+ 'Current' => 'Actual',
+ 'Current Earnings' => 'Resultado del Período',
+ 'Customer' => 'Cliente',
+ 'Customer Number' => 'Código del Cliente',
+ 'Customer missing!' => '¡Falta el Cliente!',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Date Paid' => 'Fecha de Pago',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Decimalplaces' => 'Posiciones decimales',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'Due Date missing!' => '¡Falta fecha de vencimiento!',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail Statement to' => 'Enviar estado de cuenta por E-mail a',
+ 'E-mail address missing!' => '¡Falta dirección E-mail!',
+ 'E-mailed' => 'Enviado por e-mail',
+ 'Edit AP Transaction' => 'Modificar asiento de Cuentas a Pagar',
+ 'Edit AR Transaction' => 'Modificar asiento de Cuentas a Cobrar',
+ 'Edit POS Invoice' => 'Modificar Ticket',
+ 'Edit Sales Invoice' => 'Modificar Factura de Venta',
+ 'Employee' => 'Empleado',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate for payment missing!' => '¡Falta la tasa de cambio para el pago!',
+ 'Exchange rate missing!' => '¡Falta la tasa de cambio!',
+ 'Extended' => 'Importe',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'GIFI' => 'Plan de Cuentas Fiscal (PCF)',
+ 'Group' => 'Grupo',
+ 'Heading' => 'Encabezado',
+ 'ID' => 'ID',
+ 'In-line' => 'Incorporado',
+ 'Include Exchange Rate Difference' => 'Incluir Diferencia por Tasa de Cambio',
+ 'Include in Report' => 'Incluir en informe',
+ 'Income Statement' => 'Cuadro de Resultados',
+ 'Internal Notes' => 'Notas internas',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de factura',
+ 'Invoice Date missing!' => '¡Falta la fecha de la factura!',
+ 'Invoice Number' => 'Número de factura',
+ 'Invoice Number missing!' => '¡Falta el Número de Factura!',
+ 'Invoice deleted!' => '¡Factura borrada!',
+ 'Item not on file!' => '¡El concepto no está registrado!',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Language' => 'Idioma',
+ 'Manager' => 'Gerente',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Nota',
+ 'Message' => 'Mensaje',
+ 'Method' => 'Método',
+ 'Month' => 'Mes',
+ 'N/A' => 'N/A',
+ 'No.' => 'Nº',
+ 'Non-taxable Purchases' => 'Compras exentas',
+ 'Non-taxable Sales' => 'Ventas exentas',
+ 'Notes' => 'Notas',
+ 'Nothing selected!' => '¡No se seleccionó nada!',
+ 'Nothing to print!' => '¡No hay nada para imprimir!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se encuentra el número en la fila',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Date missing!' => '¡Falta la fecha de la orden!',
+ 'Order Number' => 'Número de la orden',
+ 'Order Number missing!' => 'No se ha definido el número de la orden',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de Empaque',
+ 'Packing List Date missing!' => '¡Falta la fecha en la lista de empaque!',
+ 'Packing List Number missing!' => '¡Falta el número en la lista de empaque!',
+ 'Paid' => 'Pagado',
+ 'Part' => 'Artículo',
+ 'Payment date missing!' => '¡Falta la fecha del pago!',
+ 'Payments' => 'Pagos',
+ 'Period' => 'Periodo',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Selección',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Posted!' => '¡Registrado!',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project Number' => 'Número del Proyecto',
+ 'Project Transactions' => 'Asientos del Projecto',
+ 'Project not on file!' => '¡Proyecto no registrado!',
+ 'Purchase Order' => 'Orden de Compra',
+ 'Qty' => 'Cant.',
+ 'Quarter' => 'Trimestre',
+ 'Quotation' => 'Cotización',
+ 'Quotation Date missing!' => '¡Falta la Fecha de Cotización!',
+ 'Quotation Number missing!' => '¡Falta el Número de Cotización!',
+ 'Recd' => 'Recb.',
+ 'Receipt' => 'Recibo',
+ 'Receipts' => 'Recibos',
+ 'Record in' => 'Registrar en',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Remanente',
+ 'Report for' => 'Informe de',
+ 'Required by' => 'Requerido para el',
+ 'SKU' => 'SKU',
+ 'Sales Invoice.' => 'Factura (venta).',
+ 'Sales Order' => 'Orden de Venta',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Pantalla',
+ 'Select all' => 'Seleccionar todo',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Select payment' => 'Seleccione el pago',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF!',
+ 'Select txt, postscript or PDF!' => '¡Seleccione Texto, Postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'Núm. de serie',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Enviar',
+ 'Ship to' => 'Enviar a',
+ 'Ship via' => 'Enviar por',
+ 'Shipping Address' => 'Dirección de envío',
+ 'Shipping Point' => 'Punto de envío',
+ 'Source' => 'Origen',
+ 'Standard' => 'Estándard',
+ 'Startdate' => 'Fecha de inicio',
+ 'State/Province' => 'Departamento',
+ 'Statement' => 'Estado de cuenta',
+ 'Statement sent to' => 'Estado de cuenta enviado a',
+ 'Statements sent to printer!' => '¡Estado de cuenta enviado a la impresora!',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resúmen',
+ 'Tax' => 'Impuestos',
+ 'Tax Included' => 'IVA Incluido',
+ 'Tax collected' => 'Impuesto Retenido',
+ 'Tax paid' => 'Impuestos pagados',
+ 'Till' => 'Caja Registradora',
+ 'To' => 'Hasta',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Descuento comercial',
+ 'Transaction' => 'Asiento',
+ 'Transaction deleted!' => '¡Asiento borrado!',
+ 'Transaction posted!' => '¡Asiento registrado!',
+ 'Translation not on file!' => 'No hay Traducción',
+ 'Trial Balance' => 'Balance de Sumas y Saldos',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice.' => 'Factura de Proveedor.',
+ 'Vendor Number' => 'Código de Proveedor',
+ 'Vendor missing!' => '¡Falta el Proveedor!',
+ 'Vendor not on file!' => '¡Proveedor no registrado!',
+ 'Warning!' => '¡Advertencia!',
+ 'What type of item is this?' => '¿Que tipo de articulo es este?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Year' => 'Año',
+ 'Yes' => 'Si',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'as at' => 'como a',
+ 'ea' => 'c/u',
+ 'for Period' => 'para el Período',
+ 'posted!' => '¡Registrado!',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'movimiento_de_cuentas_a_pagar' => 'ap_transaction',
+ 'movimiento_de_cuentas_a_cobrar' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'correo_electrónico' => 'e_mail',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'imprimir_y_registrar' => 'print_and_post',
+ 'factura_(venta)_' => 'sales_invoice_',
+ 'orden_de_venta' => 'sales_order',
+ 'seleccionar_todo' => 'select_all',
+ 'enviar_a' => 'ship_to',
+ 'actualizar' => 'update',
+ 'factura_de_proveedor_' => 'vendor_invoice_',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/py/pw b/locale/py/pw
new file mode 100755
index 00000000..61f3c244
--- /dev/null
+++ b/locale/py/pw
@@ -0,0 +1,13 @@
+$self{texts} = {
+ 'Continue' => 'Continuar',
+ 'Password' => 'Contraseña',
+ 'Session expired!' => '¡La sesión caducó!',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/py/rc b/locale/py/rc
new file mode 100755
index 00000000..710b7a09
--- /dev/null
+++ b/locale/py/rc
@@ -0,0 +1,79 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Saldo',
+ 'Beginning Balance' => 'Saldo Inicial',
+ 'Cleared' => 'Reconciliado',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Current' => 'Actual',
+ 'Date' => 'Fecha',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Difference' => 'Diferencia',
+ 'Done' => 'Terminado',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'Include Exchange Rate Difference' => 'Incluir Diferencia por Tasa de Cambio',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Month' => 'Mes',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Out of balance!' => '¡Fuera de balance!',
+ 'Outstanding' => 'Pendiente',
+ 'Period' => 'Periodo',
+ 'Quarter' => 'Trimestre',
+ 'R' => 'R',
+ 'Reconciliation' => 'Reconciliación',
+ 'Reconciliation Report' => 'Informe de Reconciliación',
+ 'Select all' => 'Seleccionar todo',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Source' => 'Origen',
+ 'Statement Balance' => 'Saldo bancario',
+ 'Summary' => 'Resúmen',
+ 'To' => 'Hasta',
+ 'Update' => 'Actualizar',
+ 'Year' => 'Año',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'continuar' => 'continue',
+ 'terminado' => 'done',
+ 'seleccionar_todo' => 'select_all',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/py/rp b/locale/py/rp
new file mode 100755
index 00000000..216012bd
--- /dev/null
+++ b/locale/py/rp
@@ -0,0 +1,179 @@
+$self{texts} = {
+ 'AP Aging' => 'Vencimiento de Cuentas a Pagar',
+ 'AR Aging' => 'Vencimiento Cuentas a Cobrar',
+ 'Account' => 'Cuenta',
+ 'Account Number' => 'Número de Cuenta',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Accounts' => 'Cuentas',
+ 'Accrual' => 'Acumulado',
+ 'Address' => 'Dirección',
+ 'All Accounts' => 'Todas las Cuentas',
+ 'Amount' => 'Importe',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Saldo',
+ 'Balance Sheet' => 'Balance General',
+ 'Bcc' => 'B.C.C.',
+ 'Cash' => 'Efectivo',
+ 'Cc' => 'C.C.',
+ 'Compare to' => 'Comparar con',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Credit' => 'Crédito',
+ 'Curr' => 'Div',
+ 'Current' => 'Actual',
+ 'Current Earnings' => 'Resultado del Período',
+ 'Customer' => 'Cliente',
+ 'Customer not on file!' => '¡El cliente no existe!',
+ 'Date' => 'Fecha',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Decimalplaces' => 'Posiciones decimales',
+ 'Department' => 'Departamento',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de vencimiento',
+ 'E-mail' => 'Correo electrónico',
+ 'E-mail Statement to' => 'Enviar estado de cuenta por E-mail a',
+ 'E-mail address missing!' => '¡Falta dirección E-mail!',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'GIFI' => 'Plan de Cuentas Fiscal (PCF)',
+ 'Heading' => 'Encabezado',
+ 'ID' => 'ID',
+ 'In-line' => 'Incorporado',
+ 'Include Exchange Rate Difference' => 'Incluir Diferencia por Tasa de Cambio',
+ 'Include in Report' => 'Incluir en informe',
+ 'Income Statement' => 'Cuadro de Resultados',
+ 'Invoice' => 'Factura',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Language' => 'Idioma',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'Mayo',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Nota',
+ 'Message' => 'Mensaje',
+ 'Method' => 'Método',
+ 'Month' => 'Mes',
+ 'N/A' => 'N/A',
+ 'Non-taxable Purchases' => 'Compras exentas',
+ 'Non-taxable Sales' => 'Ventas exentas',
+ 'Nothing selected!' => '¡No se seleccionó nada!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Order' => 'Orden',
+ 'PDF' => 'PDF',
+ 'Payments' => 'Pagos',
+ 'Period' => 'Periodo',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Imprimir',
+ 'Project' => 'Proyecto',
+ 'Project Number' => 'Número del Proyecto',
+ 'Project Transactions' => 'Asientos del Projecto',
+ 'Project not on file!' => '¡Proyecto no registrado!',
+ 'Quarter' => 'Trimestre',
+ 'Receipts' => 'Recibos',
+ 'Reference' => 'Referencia',
+ 'Report for' => 'Informe de',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Pantalla',
+ 'Select all' => 'Seleccionar todo',
+ 'Select from one of the names below' => 'Seleccione uno de los nombres de la lista',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Source' => 'Origen',
+ 'Standard' => 'Estándard',
+ 'Startdate' => 'Fecha de inicio',
+ 'Statement' => 'Estado de cuenta',
+ 'Statement sent to' => 'Estado de cuenta enviado a',
+ 'Statements sent to printer!' => '¡Estado de cuenta enviado a la impresora!',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resúmen',
+ 'Tax' => 'Impuestos',
+ 'Tax collected' => 'Impuesto Retenido',
+ 'Tax paid' => 'Impuestos pagados',
+ 'Till' => 'Caja Registradora',
+ 'To' => 'Hasta',
+ 'Total' => 'Total',
+ 'Trial Balance' => 'Balance de Sumas y Saldos',
+ 'Vendor' => 'Proveedor',
+ 'Vendor not on file!' => '¡Proveedor no registrado!',
+ 'Warning!' => '¡Advertencia!',
+ 'Year' => 'Año',
+ 'as at' => 'como a',
+ 'for Period' => 'para el Período',
+ 'sent' => 'Enviado',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuar' => 'continue',
+ 'correo_electrónico' => 'e_mail',
+ 'imprimir' => 'print',
+ 'seleccionar_todo' => 'select_all',
+};
+
+1;
+
diff --git a/locale/ru/COPYING b/locale/ru/COPYING
new file mode 100755
index 00000000..7403c562
--- /dev/null
+++ b/locale/ru/COPYING
@@ -0,0 +1,23 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2002
+#
+# Russian texts:
+#
+# Author: Khaimin Vladimir
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/ru/LANGUAGE b/locale/ru/LANGUAGE
new file mode 100755
index 00000000..03c30118
--- /dev/null
+++ b/locale/ru/LANGUAGE
@@ -0,0 +1 @@
+Russian (ISO-8859-5)
diff --git a/locale/ru/Num2text b/locale/ru/Num2text
new file mode 100755
index 00000000..733cd462
--- /dev/null
+++ b/locale/ru/Num2text
@@ -0,0 +1,184 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (C) 2005
+#
+# Author: Dieter Simader
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+# Contributors: Vladimir Khaimin <vkhai@yandex.ru>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#======================================================================
+#
+# this is a variation of the Lingua package
+# written for check and receipt printing
+# it returns a properly formatted text string
+# for a number up to 10**12
+
+sub init {
+ my $self = shift;
+
+ %{ $self->{numbername} } =
+ (0 => 'ÎÏÌØ',
+ 1 => 'ÏÄÉÎ',
+ 2 => 'Ä×Á',
+ 3 => 'ÔÒÉ',
+ 4 => 'ÞÅÔÙÒÅ',
+ 5 => 'ÐÑÔØ',
+ 6 => 'ÛÅÓÔØ',
+ 7 => 'ÓÅÍØ',
+ 8 => '×ÏÓÅÍØ',
+ 9 => 'ÄÅ×ÑÔØ',
+ 10 => 'ÄÅÓÑÔØ',
+ 11 => 'ÏÄÉÎÁÄÃÁÔØ',
+ 12 => 'Ä×ÅÎÁÄÃÁÔØ',
+ 13 => 'ÔÒÉÎÁÄÃÁÔØ',
+ 14 => 'ÞÅÔÙÒÎÁÄÃÁÔØ',
+ 15 => 'ÐÑÔÎÁÄÃÁÔØ',
+ 16 => 'ÛÅÓÔÎÁÄÃÁÔØ',
+ 17 => 'ÓÅÍÎÁÄÃÁÔØ',
+ 18 => '×ÏÓÅÍÎÁÄÃÁÔØ',
+ 19 => 'ÄÅ×ÑÔÎÁÄÃÁÔØ',
+ 20 => 'Ä×ÁÄÃÁÔØ',
+ 30 => 'ÔÒÉÄÃÁÔØ',
+ 40 => 'ÓÏÒÏË',
+ 50 => 'ÐÑÔØÄÅÓÑÔ',
+ 60 => 'ÛÅÓÔØÄÅÓÑÔ',
+ 70 => 'ÓÅÍØÄÅÓÑÔ',
+ 80 => '×ÏÓÅÍØÄÅÓÑÔ',
+ 90 => 'ÄÅ×ÑÎÏÓÔÏ',
+ 10**2 => 'ÓÔÏ',
+ 10**3 => 'ÔÙÓÑÞÁ',
+ 10**6 => 'ÍÉÌÌÉÏÎ',
+ 10**9 => 'ÍÉÌÌÉÁÒÄ',
+ 10**12 => 'ÔÒÉÌÌÉÏÎ'
+ );
+
+}
+
+
+sub num2text {
+ my ($self, $amount) = @_;
+
+ return $self->{numbername}{0} unless $amount;
+
+ my @textnumber = ();
+
+ # split amount into chunks of 3
+ my @num = reverse split //, abs($amount);
+ my @numblock = ();
+ my ($i, $appendn);
+ my @a = ();
+
+ while (@num) {
+ @a = ();
+ for (1 .. 3) {
+ push @a, shift @num;
+ }
+ push @numblock, join / /, reverse @a;
+ }
+
+ my $belowhundred = !$#numblock;
+
+ while (@numblock) {
+
+ $i = $#numblock;
+ @num = split //, $numblock[$i];
+ $appendn = "";
+
+ $numblock[$i] *= 1;
+
+ if ($numblock[$i] == 0) {
+ pop @numblock;
+ next;
+ }
+
+ if ($numblock[$i] > 99) {
+ # the one from hundreds
+ push @textnumber, $self->{numbername}{$num[0]};
+
+ # add hundred designation
+ push @textnumber, $self->{numbername}{10**2};
+
+ # reduce numblock
+ $numblock[$i] -= $num[0] * 100;
+ }
+
+ $appendn = 'en' if ($i == 2);
+ $appendn = 'n' if ($i > 2);
+
+ if ($numblock[$i] > 9) {
+ # tens
+ push @textnumber, $self->format_ten($numblock[$i], $belowhundred);
+ } elsif ($numblock[$i] > 1) {
+ # ones
+ push @textnumber, $self->{numbername}{$numblock[$i]};
+ } elsif ($numblock[$i] == 1) {
+ if ($i == 0) {
+ push @textnumber, $self->{numbername}{$numblock[$i]}.'s';
+ } else {
+ if ($i >= 2) {
+ push @textnumber, $self->{numbername}{$numblock[$i]}.'e';
+ } else {
+ push @textnumber, $self->{numbername}{$numblock[$i]};
+ }
+ }
+ $appendn = "";
+ }
+
+ # add thousand, million
+ if ($i) {
+ $amount = 10**($i * 3);
+ push @textnumber, $self->{numbername}{$amount}.$appendn;
+ }
+
+ pop @numblock;
+
+ }
+
+ join '', @textnumber;
+
+}
+
+
+sub format_ten {
+ my ($self, $amount, $belowhundred) = @_;
+
+ my $textnumber = "";
+ my @num = split //, $amount;
+
+ if ($amount > 20) {
+ if ($num[1] == 0) {
+ $textnumber = $self->{numbername}{$amount};
+ } else {
+ if ($belowhundred) {
+ $amount = $num[0] * 10;
+ $textnumber = $self->{numbername}{$num[1]}.'und'.$self->{numbername}{$amount};
+ } else {
+ $amount = $num[0] * 10;
+ $textnumber = $self->{numbername}{$amount}.$self->{numbername}{$num[1]};
+ $textnumber .= 's' if ($num[1] == 1);
+ }
+ }
+ } else {
+ $textnumber = $self->{numbername}{$amount};
+ }
+
+ $textnumber;
+
+}
+
+
+1;
+
diff --git a/locale/ru/aa b/locale/ru/aa
new file mode 100755
index 00000000..d713e072
--- /dev/null
+++ b/locale/ru/aa
@@ -0,0 +1,158 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'AP Outstanding' => 'úÁÄÏÌÖÅÎÏÓÔØ ÐÏÓÔÁ×ÝÉËÏ×',
+ 'AP Transaction' => 'ðÒÏ×ÏÄËÁ ÚÁËÕÐËÉ',
+ 'AP Transactions' => 'ðÒÏ×ÏÄËÉ ÚÁËÕÐËÉ',
+ 'AR Outstanding' => 'úÁÄÏÌÖÅÎÏÓÔØ ËÌÉÅÎÔÏ×',
+ 'AR Transaction' => 'ðÒÏ×ÏÄËÁ ÐÒÏÄÁÖ',
+ 'AR Transactions' => 'ðÒÏ×ÏÄËÉ ÐÒÏÄÁÖ',
+ 'Account' => 'óÞÅÔ',
+ 'Accounting Menu' => 'âÕÈÇÁÌÔÅÒÓËÏÅ ÍÅÎÀ',
+ 'Add AP Transaction' => 'îÏ×ÁÑ ÐÒÏ×ÏÄËÁ ÐÏÓÔÕÐÌÅÎÉÊ',
+ 'Add AR Transaction' => 'îÏ×ÁÑ ÐÒÏ×ÏÄËÁ ÐÒÏÄÁÖ',
+ 'Amount' => 'óÕÍÍÁ',
+ 'Amount Due' => 'óÕÍÍÁ Ë ÐÏÌÕÞÅÎÉÀ',
+ 'Apr' => 'ÁÐÒ',
+ 'April' => 'ÁÐÒÅÌØ',
+ 'Are you sure you want to delete Transaction' => '÷Ù Õ×ÅÒÅÎÙ, ÓÔÏ ÈÏÔÉÔÅ ÕÄÁÌÉÔØ ÄÁÎÎÕÀ ÐÒÏ×ÏÄËÕ?',
+ 'Aug' => 'Á×Ç',
+ 'August' => 'Á×ÇÕÓÔ',
+ 'Cannot delete transaction!' => 'îÅ×ÏÚÍÏÖÎÏ ÕÄÁÌÉÔØ ÐÒÏ×ÏÄËÕ!',
+ 'Cannot post payment for a closed period!' => 'îÅ×ÏÚÍÏÖÎÏ ÐÒÏ×ÅÓÔÉ ÏÐÌÁÔÕ ÄÌÑ ÚÁËÒÙÔÏÇÏ ÐÅÒÉÏÄÁ!',
+ 'Cannot post transaction for a closed period!' => 'îÅ×ÏÚÍÏÖÎÏ ÐÒÏ×ÅÓÔÉ ÐÒÏ×ÏÄËÕ × ÚÁËÒÙÔÏÍ ÐÅÒÉÏÄÅ!',
+ 'Cannot post transaction!' => 'îÅ×ÏÚÍÏÖÎÏ ÐÒÏ×ÅÓÔÉ ÐÒÏ×ÏÄËÕ!',
+ 'Check' => 'ðÒÏ×ÅÒÉÔØ',
+ 'Closed' => 'úÁËÒÙÔ',
+ 'Confirm!' => 'ðÏÄÔ×ÅÒÄÉÔØ!',
+ 'Continue' => 'ðÒÏÄÏÌÖÉÔØ',
+ 'Credit' => 'ëÒÅÄÉÔ',
+ 'Credit Limit' => 'ìÉÍÉÔ ËÒÅÄÉÔÁ',
+ 'Curr' => '÷ÁÌÀÔÁ',
+ 'Currency' => '÷ÁÌÀÔÁ',
+ 'Current' => 'ôÅËÕÝÉÊ',
+ 'Customer' => 'ëÌÉÅÎÔ',
+ 'Customer missing!' => 'ðÒÏÐÕÝÅÎ ËÌÉÅÎÔ!',
+ 'Date' => 'äÁÔÁ',
+ 'Date Paid' => 'äÁÔÁ ÏÐÌÁÔÙ',
+ 'Debit' => 'äÅÂÅÔ',
+ 'Dec' => 'ÄÅË',
+ 'December' => 'ÄÅËÁÂÒØ',
+ 'Delete' => 'õÄÁÌÉÔØ',
+ 'Department' => 'ïÔÄÅÌ',
+ 'Description' => 'ïÐÉÓÁÎÉÅ',
+ 'Detail' => 'äÅÔÁÌÉÚÉÒÏ×ÁÔØ',
+ 'Due Date' => 'ïÐÌÁÔÉÔØ ÄÏ',
+ 'Due Date missing!' => 'îÅ ÕËÁÚÁÎ ÓÒÏË ÏÐÌÁÔÙ!',
+ 'Edit AP Transaction' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ÐÒÏ×ÏÄËÕ ðÏÓÔÕÐÌÅÎÉÑ',
+ 'Edit AR Transaction' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ÐÒÏ×ÏÄËÕ ðÒÏÄÁÖ',
+ 'Employee' => 'óÏÔÒÕÄÎÉË',
+ 'Exch' => 'ëÕÒÓ',
+ 'Exchange Rate' => 'ëÕÒÓ ×ÁÌÀÔÙ',
+ 'Exchange rate for payment missing!' => 'ðÒÏÐÕÝÅÎ ËÕÒÓ ÏÐÌÁÔÙ!',
+ 'Exchange rate missing!' => 'ðÒÏÐÕÝÅÎ ËÕÒÓ!',
+ 'Feb' => 'ÆÅ×',
+ 'February' => 'ÆÅ×ÒÁÌØ',
+ 'From' => 'Ó',
+ 'ID' => 'éÄÅÎÔÉÆÉËÁÔÏÒ',
+ 'Include in Report' => '÷ËÌÀÞÉÔØ × ÏÔÞÅÔ',
+ 'Invoice' => 'óÞÅÔ-ÆÁËÔÕÒÁ',
+ 'Invoice Date' => 'äÁÔÁ ×ÙÓÔÁ×ÌÅÎÉÑ',
+ 'Invoice Date missing!' => 'îÅ ÕËÁÚÁÎÁ ÄÁÔÁ ×ÙÓÔÁ×ÌÅÎÉÑ ÓÞÅÔÁ-ÆÁËÔÕÒÙ',
+ 'Invoice Number' => 'îÏÍÅÒ ÓÞÅÔÁ-ÆÁËÔÕÒÙ',
+ 'Jan' => 'ÑÎ×',
+ 'January' => 'ÑÎ×ÁÒØ',
+ 'Jul' => 'ÉÀÌ',
+ 'July' => 'ÉÀÌØ',
+ 'Jun' => 'ÉÀÎ',
+ 'June' => 'ÉÀÎØ',
+ 'Manager' => 'íÅÎÅÄÖÅÒ',
+ 'Mar' => 'ÍÁÒÔ',
+ 'March' => 'ÍÁÒÔ',
+ 'May' => 'ÍÁÊ',
+ 'May ' => 'ÍÁÊ',
+ 'Memo' => 'ëÏÍÍÅÎÔÁÒÉÊ',
+ 'Month' => 'ÍÅÓÑÃ',
+ 'No.' => 'îÏÍ.',
+ 'Notes' => 'ëÏÍÍÅÎÔÁÒÉÉ',
+ 'Nov' => 'ÎÏÑ',
+ 'November' => 'ÎÏÑÂÒØ',
+ 'Oct' => 'ÏËÔ',
+ 'October' => 'ÏËÔÑÂÒØ',
+ 'Open' => 'ïÔËÒÙÔØ',
+ 'Order' => 'úÁËÁÚ ËÌÉÅÎÔÁ',
+ 'Order Number' => 'îÏÍÅÒ ÚÁËÁÚÁ',
+ 'Paid' => 'ïÐÌÁÞÅÎÏ',
+ 'Payment date missing!' => 'ðÒÏÐÕÝÅÎÁ ÄÁÔÁ ÏÐÌÁÔÙ!',
+ 'Payments' => 'ïÐÌÁÔÙ',
+ 'Period' => 'ðÅÒÉÏÄ',
+ 'Post' => 'óÏÈÒÁÎÉÔØ',
+ 'Post as new' => 'óÏÈÒÁÎÉÔØ ËÁË ÎÏ×ÙÊ',
+ 'Print' => 'ðÅÞÁÔØ',
+ 'Print and Post' => 'îÁÐÅÞÁÔÁÔØ É ÏÔÐÒÁ×ÉÔØ',
+ 'Project' => 'ðÒÏÅËÔ',
+ 'Quarter' => 'ë×ÁÒÔÁÌ',
+ 'Receipt' => 'ðÏÌÕÞÅÎÉÅ',
+ 'Remaining' => 'ïÓÔÁÔÏË',
+ 'Sales Invoice.' => 'æÁËÔÕÒÁ ËÌÉÅÎÔÁ',
+ 'Salesperson' => 'ðÒÏÄÁ×ÅÃ',
+ 'Sep' => 'ÓÅÎ',
+ 'September' => 'ÓÅÎÔÑÂÒØ',
+ 'Ship to' => 'ÄÏÓÔÁ×ÉÔØ ÄÌÑ',
+ 'Ship via' => 'ÄÏÓÔÁ×ÉÔØ ÞÅÒÅÚ',
+ 'Shipping Point' => 'íÅÓÔÏ ÄÏÓÔÁ×ËÉ',
+ 'Source' => 'éÓÔÏÞÎÉË',
+ 'Subtotal' => 'éÔÏÇÏ ÐÏ ÒÁÚÄÅÌÕ',
+ 'Summary' => 'óÕÍÍÁÒÎÏ',
+ 'Tax' => 'îÁÌÏÇ',
+ 'Tax Included' => 'îÁÌÏÇÉ ×ËÌÀÞÅÎÙ × ÓÕÍÍÕ',
+ 'Till' => 'ÄÏ',
+ 'To' => 'ÐÏ',
+ 'Total' => '÷ÓÅÇÏ',
+ 'Transaction' => 'ðÒÏ×ÏÄËÁ',
+ 'Transaction deleted!' => 'ðÒÏ×ÏÄËÁ ÕÄÁÌÅÎÁ!',
+ 'Transaction posted!' => 'ðÒÏ×ÏÄËÁ ÓÏÈÒÁÎÅÎÁ!',
+ 'Update' => 'ïÂÎÏ×ÉÔØ',
+ 'Vendor' => 'ðÏÓÔÁ×ÝÉË',
+ 'Vendor Invoice.' => 'æÁËÔÕÒÁ ÐÏÓÔÁ×ÝÉËÁ.',
+ 'Vendor missing!' => 'ðÒÏÐÕÝÅÎ ÐÏÓÔÁ×ÝÉË!',
+ 'Year' => 'çÏÄ',
+ 'Yes' => 'äÁ',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'ðÒÏ×ÏÄËÁ_ÚÁËÕÐËÉ' => 'ap_transaction',
+ 'ðÒÏ×ÏÄËÁ_ÐÒÏÄÁÖ' => 'ar_transaction',
+ 'ðÒÏÄÏÌÖÉÔØ' => 'continue',
+ 'õÄÁÌÉÔØ' => 'delete',
+ 'óÏÈÒÁÎÉÔØ' => 'post',
+ 'óÏÈÒÁÎÉÔØ_ËÁË_ÎÏ×ÙÊ' => 'post_as_new',
+ 'ðÅÞÁÔØ' => 'print',
+ 'îÁÐÅÞÁÔÁÔØ_É_ÏÔÐÒÁ×ÉÔØ' => 'print_and_post',
+ 'æÁËÔÕÒÁ_ËÌÉÅÎÔÁ' => 'sales_invoice_',
+ 'ÄÏÓÔÁ×ÉÔØ_ÄÌÑ' => 'ship_to',
+ 'ïÂÎÏ×ÉÔØ' => 'update',
+ 'æÁËÔÕÒÁ_ÐÏÓÔÁ×ÝÉËÁ_' => 'vendor_invoice_',
+ 'äÁ' => 'yes',
+};
+
+1;
+
diff --git a/locale/ru/admin b/locale/ru/admin
new file mode 100755
index 00000000..e2d50d2e
--- /dev/null
+++ b/locale/ru/admin
@@ -0,0 +1,145 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'Access Control' => 'ëÏÎÔÒÏÌØ ÄÏÓÔÕÐÁ',
+ 'Accounting' => 'âÕÈÇÁÌÔÅÒÉÑ',
+ 'Add User' => 'îÏ×ÙÊ ÐÏÌØÚÏ×ÁÔÅÌØ',
+ 'Address' => 'áÄÒÅÓ',
+ 'Administration' => 'áÄÍÉÎÉÓÔÒÉÒÏ×ÁÎÉÅ',
+ 'Administrator' => 'áÄÍÉÎÉÓÔÒÁÔÏÒ',
+ 'All Datasets up to date!' => 'All Datasets up to date!',
+ 'Cannot create Lock!' => 'îÅ×ÏÚÍÏÖÎÏ ÚÁÂÌÏËÉÒÏ×ÁÔØ!',
+ 'Change Admin Password' => 'éÚÍÅÎÉÔØ ÐÁÒÏÌØ áÄÍÉÎÉÓÔÒÁÔÏÒÁ',
+ 'Change Password' => 'éÚÍÅÎÉÔØ ÐÁÒÏÌØ',
+ 'Click on login name to edit!' => 'äÌÑ ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ ËÌÉËÎÉÔÅ ÎÁ ÉÍÑ ÐÏÌØÚÏ×ÁÔÅÌÑ.',
+ 'Company' => 'ïÒÇÁÎÉÚÁÃÉÑ',
+ 'Confirm' => 'ÐÏÄÔ×ÅÒÄÉÔØ',
+ 'Connect to' => 'ðÏÄËÌÀÞÉÔØÓÑ Ë',
+ 'Continue' => 'ðÒÏÄÏÌÖÉÔØ',
+ 'Create Chart of Accounts' => 'óÏÚÄÁÔØ ôÁÂÌÉÃÕ ÐÌÁÎÁ ÓÞÅÔÏ×',
+ 'Create Dataset' => 'óÏÚÄÁÔØ ÂÁÚÕ ÄÁÎÎÙÈ',
+ 'DBI not installed!' => 'îÅ ÕÓÔÁÎÏ×ÌÅÎ ÄÒÁÊ×ÅÒ DBI!',
+ 'Database' => 'âÁÚÁ ÄÁÎÎÙÈ',
+ 'Database Administration' => 'áÄÍÉÎÉÓÔÒÉÒÏ×ÁÎÉÅ ÂÁÚÙ ÄÁÎÎÙÈ',
+ 'Database Driver not checked!' => 'îÅ ÐÒÏ×ÅÒÅÎ ÄÒÁÊ×ÅÒ ÂÁÚÙ ÄÁÎÎÙÈ!',
+ 'Database User missing!' => 'ðÒÏÐÕÝÅÎ ÐÏÌØÚÏ×ÁÔÅÌØ ÂÁÚÙ ÄÁÎÎÙÈ!',
+ 'Dataset' => 'âÁÚÁ ÄÁÎÎÙÈ',
+ 'Dataset missing!' => 'ðÒÏÐÕÝÅÎÁ ÂÁÚÁ ÄÁÎÎÙÈ',
+ 'Dataset updated!' => 'âÁÚÁ ÄÁÎÎÙÈ ÏÂÎÏ×ÌÅÎÁ!',
+ 'Date Format' => 'æÏÒÍÁÔ ÄÁÔÙ',
+ 'Delete' => 'õÄÁÌÉÔØ',
+ 'Delete Dataset' => 'õÄÁÌÉÔØ ÂÁÚÕ ÄÁÎÎÙÈ',
+ 'Directory' => 'ëÁÔÁÌÏÇ',
+ 'Driver' => 'äÒÁÊ×ÅÒ',
+ 'Dropdown Limit' => 'ïÇÒÁÎÉÞÅÎÉÅ ÐÁÄÁÀÝÅÇÏ ÍÅÎÀ',
+ 'E-mail' => 'E-mail',
+ 'Edit User' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ÓÏÔÒÕÄÎÉËÁ',
+ 'Existing Datasets' => 'óÕÝÅÓÔ×ÕÀÝÉÅ ÂÁÚÙ ÄÁÎÎÙÈ',
+ 'Fax' => 'æÁËÓ',
+ 'Host' => 'óÅÒ×ÅÒ',
+ 'Hostname missing!' => 'ðÒÏÐÕÝÅÎÏ ÉÍÑ ÓÅÒ×ÅÒÁ',
+ 'Language' => 'ñÚÙË',
+ 'Lock System' => 'úÁÂÌÏËÉÒÏ×ÁÔØ ÓÉÓÔÅÍÕ',
+ 'Lockfile created!' => 'æÁÊÌ ÂÌÏËÉÒÏ×ÁÎÉÑ ÓÏÚÄÁÎ!',
+ 'Lockfile removed!' => 'æÁÊÌ ÂÌÏËÉÒÏ×ÁÎÉÑ ÕÄÁÌÅÎ!!',
+ 'Login' => 'ðÏÌØÚÏ×ÁÔÅÌØ',
+ 'Login name missing!' => 'ðÒÏÐÕÛÅÎÏ ÉÍÑ ÐÏÌØÚÏ×ÁÔÅÌÑ!',
+ 'Logout' => '÷ÙÈÏÄ',
+ 'Manager' => 'íÅÎÅÄÖÅÒ',
+ 'Menu Width' => 'ûÉÒÉÎÁ ÍÅÎÀ',
+ 'Multibyte Encoding' => 'íÎÏÇÏÂÁÊÔÏ×ÁÑ ËÏÄÉÒÏ×ËÁ',
+ 'Name' => 'îÁÉÍÅÎÏ×ÁÎÉÅ',
+ 'New Templates' => 'îÏ×ÙÊ ÛÁÂÌÏÎ',
+ 'No Database Drivers available!' => 'îÅÄÏÓÔÕÐÅÎ ÄÒÁÊ×ÅÒ ÂÁÚÙ ÄÁÎÎÙÈ!',
+ 'No Dataset selected!' => 'îÅ ×ÙÂÒÁÎÁ ÂÁÚÁ ÄÁÎÎÙÈ',
+ 'Nothing to delete!' => 'îÉÞÅÇÏ ÎÅ ÕÄÁÌÅÎÏ!',
+ 'Number Format' => 'þÉÓÌÏ×ÏÊ ÆÏÒÍÁÔ',
+ 'Oracle Database Administration' => 'áÄÍÉÎÉÓÔÒÉÒÏ×ÁÎÉÅ ÂÁÚÙ ÄÁÎÎÙÈ Oracle',
+ 'Password' => 'ðÁÒÏÌØ',
+ 'Password changed!' => 'ðÁÒÏÌØ ÉÚÍÅÎÅÎ!',
+ 'Passwords do not match!' => 'îÅ×ÅÒÎÙÊ ÐÁÒÏÌØ!',
+ 'Pg Database Administration' => 'áÄÍÉÎÉÓÔÒÉÒÏ×ÁÎÉÅ ÂÁÚÙ ÄÁÎÎÙÈ PostgreSQL (Pg)',
+ 'PgPP Database Administration' => 'áÄÍÉÎÉÓÔÒÉÒÏ×ÁÎÉÅ ÂÁÚÙ ÄÁÎÎÙÈ PostgreSQL (PgPP)',
+ 'Phone' => 'ôÅÌ.',
+ 'Port' => 'ðÏÒÔ',
+ 'Port missing!' => 'ðÒÏÐÕÝÅÎ ÎÏÍÅÒ ÐÏÒÔÁ!',
+ 'Printer' => 'ðÒÉÎÔÅÒ',
+ 'Save' => 'óÏÈÒÁÎÉÔØ',
+ 'Session Timeout' => '÷ÒÅÍÑ ÚÁÄÅÒÖËÉ ÓÅÓÓÉÉ',
+ 'Session expired!' => 'ðÒÅ×ÙÛÅÎÏ ×ÒÅÍÑ ÚÁÄÅÒÖËÉ ÓÅÓÓÉÉ',
+ 'Setup Templates' => 'õÓÔÁÎÏ×ÉÔØ ÛÁÂÌÏÎÙ',
+ 'Signature' => 'ðÏÄÐÉÓØ',
+ 'Stylesheet' => 'ïÆÏÒÍÌÅÎÉÅ',
+ 'Supervisor' => 'ëÏÎÔÒÏÌÅÒ',
+ 'Templates' => 'ûÁÂÌÏÎÙ',
+ 'The following Datasets are not in use and can be deleted' => 'óÄÅÄÕÀÝÉÅ ÂÁÚÙ ÄÁÎÎÙÈ ÎÅ ÉÓÐÏÌØÚÕÀÔÓÑ É ÍÏÇÕÔ ÂÙÔØ ÕÄÁÌÅÎÙ',
+ 'The following Datasets need to be updated' => 'óÌÅÄÕÀÝÉÅ ÂÁÚÙ ÄÁÎÎÙÈ ÎÅÏÂÈÏÄÉÍÏ ÏÂÎÏ×ÉÔØ',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'ÜÔÏ ÐÒÅÄ×ÁÒÉÔÅÌØÎÁÑ ÐÒÏ×ÅÒËÁ ÓÕÝÅÓÔ×ÕÀÝÉÈ ÉÓÔÏÞÎÉËÏ×. ÷ ÜÔÏÍ ÓÏÓÔÏÑÎÉÉ ÎÉ ÞÔÏ ÎÅ ÂÕÄÅÔ ÓÏÚÄÁÎÏ É ÕÄÁÌÅÎÏ!',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'äÌÑ ÄÏÂÁ×ÌÅÎÉÑ ÐÏÌØÚÏ×ÁÔÅÌÑ × ÇÒÕÐÐÕ, ÏÔÒÅÄÁËÔÉÒÕÊÔÅ ÅÇÏ ÉÍÑ (ÌÏÇÉÎ) É ÓÏÈÒÁÎÉÔÅ. äÌÑ ÓÏÚÄÁÎÉÑ ÎÏ×ÏÇÏ ÐÏÌØÚÏ×ÁÔÅÌÑ Ó ÔÅÍÉ ÖÅ ÎÁÓÔÒÏÊËÁÍÉ - ÓÏÈÒÁÎÉÔÅ Ó ÎÏ×ÙÍ ÉÍÅÎÅÍ ÐÏÌØÚÏ×ÁÔÅÌÑ.',
+ 'Unlock System' => 'òÁÚÂÌÏËÉÒÏ×ÁÔØ ÓÉÓÔÅÍÕ',
+ 'Update Dataset' => 'ïÂÎÏ×ÉÔØ ÂÁÚÕ ÄÁÎÎÙÈ',
+ 'Use Templates' => 'éÓÐÏÌØÚÏ×ÁÔØ ÛÁÂÌÏÎÙ',
+ 'User' => 'óÏÔÒÕÄÎÉË',
+ 'User deleted!' => 'óÏÔÒÕÄÎÉË ÕÄÁÌ£Î!',
+ 'User saved!' => 'óÏÔÒÕÄÎÉË ÓÏÈÒÁÎÅÎ!',
+ 'Version' => '÷ÅÒÓÉÑ',
+ 'You are logged out' => '÷Ù ×ÙÛÌÉ ÉÚ ÓÉÓÔÅÍÙ',
+ 'does not exist' => 'ÎÅ ÓÕÝÅÓÔ×ÕÅÔ!',
+ 'is already a member!' => 'ÕÖÅ ÚÁÒÅÇÉÓÔÒÉÒÏ×ÁÎ',
+ 'localhost' => 'localhost',
+ 'locked!' => 'ÚÁÂÌÏËÉÒÏ×ÁÎÁ!',
+ 'successfully created!' => 'ÕÓÐÅÛÎÏ ÓÏÚÄÁÎÁ!',
+ 'successfully deleted!' => 'ÕÓÐÅÛÎÏ ÕÄÁÌÅÎÁ!',
+ 'website' => 'ÓÁÊÔ WWW',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'îÏ×ÙÊ_ÐÏÌØÚÏ×ÁÔÅÌØ' => 'add_user',
+ 'éÚÍÅÎÉÔØ_ÐÁÒÏÌØ_áÄÍÉÎÉÓÔÒÁÔÏÒÁ' => 'change_admin_password',
+ 'éÚÍÅÎÉÔØ_ÐÁÒÏÌØ' => 'change_password',
+ 'ðÒÏÄÏÌÖÉÔØ' => 'continue',
+ 'óÏÚÄÁÔØ_ÂÁÚÕ_ÄÁÎÎÙÈ' => 'create_dataset',
+ 'õÄÁÌÉÔØ' => 'delete',
+ 'õÄÁÌÉÔØ_ÂÁÚÕ_ÄÁÎÎÙÈ' => 'delete_dataset',
+ 'úÁÂÌÏËÉÒÏ×ÁÔØ_ÓÉÓÔÅÍÕ' => 'lock_system',
+ 'ðÏÌØÚÏ×ÁÔÅÌØ' => 'login',
+ '÷ÙÈÏÄ' => 'logout',
+ 'áÄÍÉÎÉÓÔÒÉÒÏ×ÁÎÉÅ_ÂÁÚÙ_ÄÁÎÎÙÈ_oracle' => 'oracle_database_administration',
+ 'áÄÍÉÎÉÓÔÒÉÒÏ×ÁÎÉÅ_ÂÁÚÙ_ÄÁÎÎÙÈ_postgresql_(pg)' => 'pg_database_administration',
+ 'áÄÍÉÎÉÓÔÒÉÒÏ×ÁÎÉÅ_ÂÁÚÙ_ÄÁÎÎÙÈ_postgresql_(pgpp)' => 'pgpp_database_administration',
+ 'óÏÈÒÁÎÉÔØ' => 'save',
+ 'òÁÚÂÌÏËÉÒÏ×ÁÔØ_ÓÉÓÔÅÍÕ' => 'unlock_system',
+ 'ïÂÎÏ×ÉÔØ_ÂÁÚÕ_ÄÁÎÎÙÈ' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/ru/all b/locale/ru/all
new file mode 100755
index 00000000..3032113f
--- /dev/null
+++ b/locale/ru/all
@@ -0,0 +1,896 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+$self{charset} = 'ISO-8859-5';
+
+
+$self{texts} = {
+ 'A' => 'A',
+ 'AP' => 'ðÏÓÔÕÐÌÅÎÉÑ',
+ 'AP Aging' => '÷ÚÁÉÍÏÒÁÓÞÅÔÙ Ó ÐÏÓÔÁ×ÝÉËÁÍÉ',
+ 'AP Outstanding' => 'úÁÄÏÌÖÅÎÏÓÔØ ÐÏÓÔÁ×ÝÉËÏ×',
+ 'AP Transaction' => 'ðÒÏ×ÏÄËÁ ÚÁËÕÐËÉ',
+ 'AP Transactions' => 'ðÒÏ×ÏÄËÉ ÚÁËÕÐËÉ',
+ 'AR' => 'ðÒÏÄÁÖÉ',
+ 'AR Aging' => '÷ÚÁÉÍÏÒÁÓÞÅÔÙ Ó ËÌÉÅÎÔÁÍÉ',
+ 'AR Outstanding' => 'úÁÄÏÌÖÅÎÏÓÔØ ËÌÉÅÎÔÏ×',
+ 'AR Transaction' => 'ðÒÏ×ÏÄËÁ ÐÒÏÄÁÖ',
+ 'AR Transactions' => 'ðÒÏ×ÏÄËÉ ÐÒÏÄÁÖ',
+ 'AR/AP' => '',
+ 'About' => 'ï ÐÒÏÇÒÁÍÍÅ',
+ 'Above' => 'âÏÌØÛÅ',
+ 'Access Control' => 'ëÏÎÔÒÏÌØ ÄÏÓÔÕÐÁ',
+ 'Access Denied!' => '',
+ 'Account' => 'óÞÅÔ',
+ 'Account Number' => 'ëÏÄ ÓÞÅÔÁ',
+ 'Account Number missing!' => 'îÅ ÕËÁÚÁÎ ÎÏÍÅÒ ÓÞÅÔÁ!',
+ 'Account Type' => 'ôÉÐ ÓÞÅÔÁ',
+ 'Account Type missing!' => 'îÅ ÕËÁÚÁÎ ÔÉÐ ÓÞÅÔÁ!',
+ 'Account deleted!' => 'óÞÅÔ ÕÄÁÌÅÎ',
+ 'Account does not exist!' => 'óÞÅÔ ÎÅ ÓÕÝÅÓÔ×ÕÅÔ!',
+ 'Account saved!' => 'óÞÅÔ ÚÁÐÉÓÁÎ',
+ 'Accounting' => 'âÕÈÇÁÌÔÅÒÉÑ',
+ 'Accounting Menu' => 'âÕÈÇÁÌÔÅÒÓËÏÅ ÍÅÎÀ',
+ 'Accounts' => 'óÞÅÔÁ',
+ 'Accrual' => 'îÁËÏÐÌÅÎÉÅ',
+ 'Activate Audit trail' => 'áËÔÉ×ÉÒÏ×ÁÔØ ÐÒÏÂÎÕÀ ÐÒÏ×ÅÒËÕ ÂÁÌÌÁÎÓÁ',
+ 'Activate Audit trails' => 'áËÔÉ×ÉÒÏ×ÁÔØ ÐÒÏÂÎÕÀ ÐÒÏ×ÅÒËÕ ÂÁÌÌÁÎÓÁ',
+ 'Active' => 'áËÔÉ×ÎÙÊ',
+ 'Add' => 'îÏ×ÙÊ',
+ 'Add AP Transaction' => 'îÏ×ÁÑ ÐÒÏ×ÏÄËÁ ÐÏÓÔÕÐÌÅÎÉÊ',
+ 'Add AR Transaction' => 'îÏ×ÁÑ ÐÒÏ×ÏÄËÁ ÐÒÏÄÁÖ',
+ 'Add Account' => 'îÏ×ÙÊ ÓÞÅÔ',
+ 'Add Assembly' => 'îÏ×ÙÊ ËÏÍÐÌÅËÔ',
+ 'Add Business' => 'îÏ×ÙÊ ÂÉÚÎÅÓ',
+ 'Add Cash Transfer Transaction' => 'îÏ×ÁÑ ÐÒÏ×ÏÄËÁ ËÁÓÓÏ×ÏÇÏ ÐÅÒÅÍÅÝÅÎÉÑ',
+ 'Add Customer' => 'îÏ×ÙÊ ËÌÉÅÎÔ',
+ 'Add Deduction' => 'îÏ×ÏÅ õÄÅÒÖÁÎÉÅ',
+ 'Add Department' => 'îÏ×ÙÊ ÏÔÄÅÌ',
+ 'Add Employee' => 'îÏ×ÙÊ ÓÏÔÒÕÄÎÉË',
+ 'Add Exchange Rate' => 'îÏ×ÙÊ ËÕÒÓ',
+ 'Add GIFI' => 'îÏ×ÙÊ GIFI',
+ 'Add General Ledger Transaction' => 'îÏ×ÁÑ ÐÒÏ×ÏÄËÁ',
+ 'Add Group' => 'îÏ×ÁÑ ÇÒÕÐÐÁ',
+ 'Add Job' => '',
+ 'Add Labor/Overhead' => 'îÏ×ÁÑ ÒÁÂÏÔÁ/ÎÁËÌÁÄÎÙÅ ÒÁÓÈÏÄÙ',
+ 'Add Language' => 'îÏ×ÙÊ ÑÚÙË',
+ 'Add POS Invoice' => 'îÏ×ÙÁÑ ÆÁËÔÕÒÁ ëëí',
+ 'Add Part' => 'îÏ×ÙÊ ÐÒÏÄÕËÔ',
+ 'Add Pricegroup' => 'îÏ×ÙÊ ÔÉÐ ÃÅÎ',
+ 'Add Project' => 'îÏ×ÙÊ ÐÒÏÅËÔ',
+ 'Add Purchase Order' => 'îÏ×ÙÊ ÚÁËÁÚ ÐÏÓÔÁ×ÝÉËÁ',
+ 'Add Quotation' => 'îÏ×ÏÅ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'Add Request for Quotation' => 'îÏ×ÙÊ ÚÁÐÒÏÓ ÎÁ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'Add SIC' => 'îÏ×ÙÊ SIC',
+ 'Add Sales Invoice' => 'îÏ×ÁÑ ÆÁËÔÕÒÁ ÐÒÏÄÁÖÉ',
+ 'Add Sales Order' => 'îÏ×ÙÊ ÚÁËÁÚ ËÌÉÅÎÔÁ',
+ 'Add Service' => 'îÏ×ÁÑ ÕÓÌÕÇÁ',
+ 'Add Timecard' => '',
+ 'Add Transaction' => 'îÏ×ÁÑ ÐÒÏ×ÏÄËÁ',
+ 'Add User' => 'îÏ×ÙÊ ÐÏÌØÚÏ×ÁÔÅÌØ',
+ 'Add Vendor' => 'îÏ×ÙÊ ÐÏÓÔÁ×ÝÉË',
+ 'Add Vendor Invoice' => 'îÏ×ÁÑ ÆÁËÔÕÒÁ ÐÏÓÔÕÐÌÅÎÉÑ',
+ 'Add Warehouse' => 'îÏ×ÙÊ ÓËÌÁÄ',
+ 'Address' => 'áÄÒÅÓ',
+ 'Administration' => 'áÄÍÉÎÉÓÔÒÉÒÏ×ÁÎÉÅ',
+ 'Administrator' => 'áÄÍÉÎÉÓÔÒÁÔÏÒ',
+ 'After Deduction' => 'ðÏÓÌÅ õÄÅÒÖÁÎÉÑ',
+ 'All' => '÷ÓÅ',
+ 'All Accounts' => '÷ÓÅ ÓÞÅÔÁ',
+ 'All Datasets up to date!' => 'All Datasets up to date!',
+ 'All Items' => '÷ÓÑ ÎÏÍÅËÌÁÔÕÒÁ',
+ 'Allowances' => 'óÐÉÓÁÎÉÑ',
+ 'Amount' => 'óÕÍÍÁ',
+ 'Amount Due' => 'óÕÍÍÁ Ë ÐÏÌÕÞÅÎÉÀ',
+ 'Amount missing!' => 'ðÒÏÐÕÝÅÎÁ ÓÕÍÍÁ',
+ 'Apr' => 'ÁÐÒ',
+ 'April' => 'ÁÐÒÅÌØ',
+ 'Are you sure you want to delete Invoice Number' => '÷Ù Õ×ÅÒÅÎÙ, ÞÔÏ ÈÏÔÉÔÅ ÕÄÁÌÉÔØ ÄÁÎÎÕÀ ÆÁËÔÕÒÕ?',
+ 'Are you sure you want to delete Order Number' => '÷Ù Õ×ÅÒÅÎÙ, ÞÔÏ ÈÏÔÉÔÅ ÕÄÁÌÉÔØ ÄÁÎÎÙÊ ÚÁËÁÚ?',
+ 'Are you sure you want to delete Quotation Number' => '÷Ù Õ×ÅÒÅÎÙ, ÞÔÏ ÈÏÔÉÔÅ ÕÄÁÌÉÔØ ÒÅÚÅÒ×?',
+ 'Are you sure you want to delete Timecard for' => '',
+ 'Are you sure you want to delete Transaction' => '÷Ù Õ×ÅÒÅÎÙ, ÓÔÏ ÈÏÔÉÔÅ ÕÄÁÌÉÔØ ÄÁÎÎÕÀ ÐÒÏ×ÏÄËÕ?',
+ 'Are you sure you want to remove the marked entries from the queue?' => '÷Ù ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÈÏÔÉÔÅ ÏÔÍÅÎÉÔØ ÏÞÅÒÅÄØ ÄÌÑ ÏÔÍÅÞÅÎÎÙÈ ÐÏÚÉÃÉÊ?',
+ 'Assemblies' => 'ëÏÍÐÌÅËÔÙ',
+ 'Assemblies restocked!' => 'ëÏÍÐÌÅËÔ ÚÁÐÏÌÎÅÎ!',
+ 'Assembly' => 'ëÏÍÌÅËÔ',
+ 'Assembly stocked!' => '',
+ 'Asset' => 'áËÔÉ×',
+ 'Attachment' => '÷ÌÏÖÅÎÉÅ',
+ 'Audit Control' => 'ëÏÎÔÒÏÌØ',
+ 'Audit trail disabled' => 'ðÒÏÂÎÁÑ ÐÒÏ×ÅÒËÁ ÂÁÌÌÁÎÓÁ ÚÁÂÌÏËÉÒÏ×ÁÎÁ',
+ 'Audit trail enabled' => 'ðÒÏÂÎÁÑ ÐÒÏ×ÅÒËÁ ÂÁÌÌÁÎÓÁ ÄÏÓÔÕÐÎÁ',
+ 'Audit trail removed up to' => 'ðÒÏÂÎÁÑ ÐÒÏ×ÅÒËÁ ÂÁÌÌÁÎÓÁ ÏÔÍÅÎÅÎÁ ÄÏ',
+ 'Audit trails disabled' => 'ðÒÏÂÎÁÑ ÐÒÏ×ÅÒËÁ ÂÁÌÌÁÎÓÁ ÚÁÂÌÏËÉÒÏ×ÁÎÁ',
+ 'Audit trails enabled' => 'ðÒÏÂÎÁÑ ÐÒÏ×ÅÒËÁ ÂÁÌÌÁÎÓÁ ÄÏÓÔÕÐÎÁ',
+ 'Aug' => 'Á×Ç',
+ 'August' => 'Á×ÇÕÓÔ',
+ 'Average Cost' => '',
+ 'Avg Cost' => '',
+ 'BIC' => 'BIC',
+ 'BOM' => '÷ÅÄÏÍÏÓÔØ ÍÁÔÅÒÉÁÌÏ×',
+ 'Backup' => 'òÅÚÅÒ×ÎÁÑ ËÏÐÉÑ',
+ 'Backup sent to' => 'òÅÚÅÒ×ÎÁÑ ËÏÐÉÑ ÏÔÏÓÌÁÎÁ ÎÁ',
+ 'Balance' => 'âÁÌÁÎÓ',
+ 'Balance Sheet' => 'âÁÌÁÎÓ',
+ 'Based on' => 'ïÓÎÏ×ÁÎ ÎÁ',
+ 'Bcc' => 'Bcc',
+ 'Before Deduction' => 'äÏ õÄÅÒÖÁÎÉÑ',
+ 'Beginning Balance' => 'îÁÞÁÌØÎÙÊ ÂÁÌÁÎÓ',
+ 'Below' => 'îÉÖÅ',
+ 'Billing Address' => 'áÄÒÅÓ ÄÏÓÔÁ×ËÉ ÓÞÅÔÁ',
+ 'Bin' => 'Bin',
+ 'Bin List' => 'óÐÉÓÏË Bin',
+ 'Bin Lists' => 'óÐÉÓËÉ Bin',
+ 'Books are open' => 'ëÎÉÇÁ ÏÔËÒÙÔÁ',
+ 'Break' => 'ðÒÅÒ×ÁÔØ',
+ 'Business' => 'âÉÚÎÅÓ',
+ 'Business Number' => 'âÉÚÎÅÓ-ËÏÄ',
+ 'Business deleted!' => 'âÉÚÎÅÓ ÕÄÁÌÅÎ',
+ 'Business saved!' => 'âÉÚÎÅÓ ÓÏÈÒÁÎÅÎ',
+ 'C' => 'C',
+ 'COGS' => 'COGS',
+ 'COGS account does not exist!' => '',
+ 'Cannot add timecard for a completed job!' => '',
+ 'Cannot change timecard for a completed job!' => '',
+ 'Cannot create Assembly' => '',
+ 'Cannot create Labor' => '',
+ 'Cannot create Lock!' => 'îÅ×ÏÚÍÏÖÎÏ ÚÁÂÌÏËÉÒÏ×ÁÔØ!',
+ 'Cannot create Part' => '',
+ 'Cannot create Service' => '',
+ 'Cannot delete Timecard!' => '',
+ 'Cannot delete account!' => 'îÅ×ÏÚÍÏÖÎÏ ÕÄÁÌÉÔØ ÓÞÅÔ!',
+ 'Cannot delete customer!' => 'îÅ×ÏÚÍÏÖÎÏ ÕÄÁÌÉÔØ ÐÏËÕÐÁÔÅÌÑ',
+ 'Cannot delete default account!' => 'îÅ×ÏÚÍÏÖÎÏ ÕÄÁÌÉÔØ ÏÓÎÏ×ÎÏÊ ÓÞÅÔ!',
+ 'Cannot delete invoice!' => 'îÅ×ÏÚÍÏÖÎÏ ÕÄÁÌÉÔØ ÆÁËÔÕÒÕ!',
+ 'Cannot delete item!' => 'îÅ×ÏÚÍÏÖÎÏ ÕÄÁÌÉÔØ ÎÏÍÅÎËÌÁÔÕÒÕ!',
+ 'Cannot delete order!' => 'îÅ×ÏÚÍÏÖÎÏ ÕÄÁÌÉÔØ ÚÁËÁÚ!',
+ 'Cannot delete quotation!' => 'îÅ×ÏÚÍÏÖÎÏ ÕÄÁÌÉÔØ ÒÅÚÅÒ×!',
+ 'Cannot delete transaction!' => 'îÅ×ÏÚÍÏÖÎÏ ÕÄÁÌÉÔØ ÐÒÏ×ÏÄËÕ!',
+ 'Cannot delete vendor!' => 'îÅ×ÏÚÍÏÖÎÏ ÕÄÁÌÉÔØ ÐÏÓÔÁ×ÝÉËÁ!',
+ 'Cannot post Payment!' => 'îÅ×ÏÚÍÏÖÎÏ ÐÒÏ×ÅÓÔÉ ÏÐÌÁÔÕ!',
+ 'Cannot post Receipt!' => 'îÅ×ÏÚÍÏÖÎÏ ÐÒÏ×ÅÓÔÉ ÐÏÌÕÞÅÎÉÅ!',
+ 'Cannot post invoice for a closed period!' => 'îÅ×ÏÚÍÏÖÎÏ ÐÒÏ×ÅÓÔÉ ÆÁËÔÕÒÕ × ÚÁËÒÙÔÏÍ ÐÅÒÉÏÄÅ!',
+ 'Cannot post invoice!' => 'îÅ×ÏÚÍÏÖÎÏ ÐÒÏ×ÅÓÔÉ ÆÁËÔÕÒÕ!',
+ 'Cannot post payment for a closed period!' => 'îÅ×ÏÚÍÏÖÎÏ ÐÒÏ×ÅÓÔÉ ÏÐÌÁÔÕ ÄÌÑ ÚÁËÒÙÔÏÇÏ ÐÅÒÉÏÄÁ!',
+ 'Cannot post transaction for a closed period!' => 'îÅ×ÏÚÍÏÖÎÏ ÐÒÏ×ÅÓÔÉ ÐÒÏ×ÏÄËÕ × ÚÁËÒÙÔÏÍ ÐÅÒÉÏÄÅ!',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => 'îÅ×ÏÚÍÏÖÎÏ ÐÒÏ×ÅÓÔÉ ÐÒÏ×ÏÄËÕ Ó ÄÅÂÅÔÏÍ É ËÒÅÄÉÔÏÍ ÄÌÑ ÏÂÎÏÇÏ É ÔÏÇÏ ÖÅ ÓÞÅÔÁ!',
+ 'Cannot post transaction!' => 'îÅ×ÏÚÍÏÖÎÏ ÐÒÏ×ÅÓÔÉ ÐÒÏ×ÏÄËÕ!',
+ 'Cannot remove files!' => 'îÅ×ÏÚÍÏÖÎÏ ÐÅÒÅÍÅÓÔÉÔØ ÆÁÊÌÙ!',
+ 'Cannot save account!' => 'îÅ×ÏÚÍÏÖÎÏ ÓÏÈÒÁÎÉÔØ ÓÞÅÔ!',
+ 'Cannot save defaults!' => 'îÅ×ÏÚÍÏÖÎÏ ÓÏÈÒÁÎÉÔØ ÎÁÓÔÒÏÊËÉ ÐÏ ÕÍÏÌÞÁÎÉÉ!',
+ 'Cannot save order!' => 'îÅ×ÏÚÍÏÖÎÏ ÓÏÈÒÁÎÉÔØ ÚÁËÁÚ!',
+ 'Cannot save preferences!' => 'îÅ×ÏÚÍÏÖÎÏ ÓÏÈÒÁÎÉÔØ ÎÁÓÔÒÏÊËÉ!',
+ 'Cannot save quotation!' => 'îÅ×ÏÚÍÏÖÎÏ ÓÏÈÒÁÎÉÔØ ÒÅÚÅÒ×',
+ 'Cannot save timecard for a closed period!' => '',
+ 'Cannot save timecard!' => '',
+ 'Cannot set account for more than one of AR, AP or IC' => 'îÅ×ÏÚÍÏÖÎÏ ÕÓÔÁÎÏ×ÉÔØ × ÓÞÅÔÅ ÂÏÌÅÅ ÞÅÍ ÏÄÎÏ ÚÎÁÞÅÎÉÅ ÉÚ AR, AP ÉÌÉ IC',
+ 'Cannot set multiple options for' => 'îÅ×ÏÚÍÏÖÎÏ ÕÓÔÁÎÏ×ÉÔØ ÍÎÏÇÏ ÏÐÃÉÊ ÄÌÑ',
+ 'Cannot set multiple options for Item' => '',
+ 'Cannot stock Assembly!' => '',
+ 'Cannot stock assemblies!' => 'îÅ×ÏÚÍÏÖÎÏ ÓÆÏÒÍÉÒÏ×ÁÔØ ËÏÍÐÌÅËÔ!',
+ 'Cash' => 'ëÁÓÓÁ',
+ 'Cc' => 'Cc',
+ 'Change' => 'éÚÍÅÎÉÔØ',
+ 'Change Admin Password' => 'éÚÍÅÎÉÔØ ÐÁÒÏÌØ áÄÍÉÎÉÓÔÒÁÔÏÒÁ',
+ 'Change Password' => 'éÚÍÅÎÉÔØ ÐÁÒÏÌØ',
+ 'Charge' => '',
+ 'Chart of Accounts' => 'ðÌÁÎ ÓÞÅÔÏ×',
+ 'Check' => 'ðÒÏ×ÅÒÉÔØ',
+ 'Check Inventory' => 'ðÒÏ×ÅÒÉÔØ ÉÎ×ÅÎÔÁÒØ',
+ 'Checks' => 'ðÒÏ×ÅÒËÉ',
+ 'City' => 'çÏÒÏÄ',
+ 'Cleared' => 'ïÞÉÝÅÎÏ',
+ 'Click on login name to edit!' => 'äÌÑ ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ ËÌÉËÎÉÔÅ ÎÁ ÉÍÑ ÐÏÌØÚÏ×ÁÔÅÌÑ.',
+ 'Clocked' => '',
+ 'Close Books up to' => 'úÁËÒÙÔØ ËÎÉÇÕ ÐÏ',
+ 'Closed' => 'úÁËÒÙÔ',
+ 'Code' => 'ëÏÄ',
+ 'Code missing!' => 'ðÒÏÐÕÝÅÎ ËÏÄ',
+ 'Company' => 'ïÒÇÁÎÉÚÁÃÉÑ',
+ 'Company Name' => 'îÁÉÍÅÎÏ×ÁÎÉÅ ÏÒÇÁÎÉÚÁÃÉÉ',
+ 'Compare to' => 'óÒÁ×ÎÉÔØ Ó',
+ 'Completed' => '',
+ 'Components' => 'ëÏÍÐÏÎÅÎÔÙ',
+ 'Confirm' => 'ÐÏÄÔ×ÅÒÄÉÔØ',
+ 'Confirm!' => 'ðÏÄÔ×ÅÒÄÉÔØ!',
+ 'Connect to' => 'ðÏÄËÌÀÞÉÔØÓÑ Ë',
+ 'Contact' => 'ëÏÎÔÁËÔÎÏÅ ÌÉÃÏ',
+ 'Continue' => 'ðÒÏÄÏÌÖÉÔØ',
+ 'Contra' => 'ðÒÏÔÉ×',
+ 'Copies' => 'ëÏÐÉÊ',
+ 'Copy to COA' => 'ëÏÐÉÒÏ×ÁÔØ × çðó',
+ 'Cost' => 'ãÅÎÁ',
+ 'Cost Center' => 'õÞÅÔÎÙÊ ÏÔÄÅÌ',
+ 'Could not save pricelist!' => 'îÅ×ÏÚÍÏÖÎÏ ÓÏÈÒÁÎÉÔØ ÐÒÁÊÓ!',
+ 'Could not save!' => 'îÅ×ÏÚÍÏÖÎÏ ÓÏÈÒÁÎÉÔØ!',
+ 'Could not transfer Inventory!' => 'îÅ×ÏÚÍÏÖÎÏ ÐÅÒÅÓÅÓÔÉÔØ ÉÎ×ÅÎÔÁÒØ',
+ 'Country' => 'óÔÒÁÎÁ',
+ 'Create Chart of Accounts' => 'óÏÚÄÁÔØ ôÁÂÌÉÃÕ ÐÌÁÎÁ ÓÞÅÔÏ×',
+ 'Create Dataset' => 'óÏÚÄÁÔØ ÂÁÚÕ ÄÁÎÎÙÈ',
+ 'Credit' => 'ëÒÅÄÉÔ',
+ 'Credit Limit' => 'ìÉÍÉÔ ËÒÅÄÉÔÁ',
+ 'Curr' => '÷ÁÌÀÔÁ',
+ 'Currency' => '÷ÁÌÀÔÁ',
+ 'Current' => 'ôÅËÕÝÉÊ',
+ 'Current Earnings' => 'ôÅËÕÝÁÑ ÐÒÉÂÙÌØ',
+ 'Customer' => 'ëÌÉÅÎÔ',
+ 'Customer History' => 'éÓÔÏÒÉÑ',
+ 'Customer Number' => 'ëÏÄ ËÌÉÅÎÔÁ',
+ 'Customer deleted!' => 'ëÌÉÅÎÔ ÕÄÁÌÅÎ!',
+ 'Customer missing!' => 'ðÒÏÐÕÝÅÎ ËÌÉÅÎÔ!',
+ 'Customer not on file!' => 'ëÌÉÅÎÔ ÏÔÓÕÔÓÔ×ÕÅÔ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Customer saved!' => 'ëÌÉÅÎÔ ÓÏÈÒÁÎÅÎ',
+ 'Customers' => 'ëÌÉÅÎÔÙ',
+ 'DBI not installed!' => 'îÅ ÕÓÔÁÎÏ×ÌÅÎ ÄÒÁÊ×ÅÒ DBI!',
+ 'DOB' => 'äÁÔÁ ÒÏÖÄÅÎÉÑ',
+ 'Database' => 'âÁÚÁ ÄÁÎÎÙÈ',
+ 'Database Administration' => 'áÄÍÉÎÉÓÔÒÉÒÏ×ÁÎÉÅ ÂÁÚÙ ÄÁÎÎÙÈ',
+ 'Database Driver not checked!' => 'îÅ ÐÒÏ×ÅÒÅÎ ÄÒÁÊ×ÅÒ ÂÁÚÙ ÄÁÎÎÙÈ!',
+ 'Database Host' => 'óÅÒ×ÅÒ ÂÁÚÙ ÄÁÎÎÙÈ',
+ 'Database User missing!' => 'ðÒÏÐÕÝÅÎ ÐÏÌØÚÏ×ÁÔÅÌØ ÂÁÚÙ ÄÁÎÎÙÈ!',
+ 'Dataset' => 'âÁÚÁ ÄÁÎÎÙÈ',
+ 'Dataset is newer than version!' => 'âÁÚÁ ÄÁÎÎÙÈ ÎÏ×ÅÅ, ÞÅÍ ÔÅËÕÝÁÑ ×ÅÒÓÉÑ!',
+ 'Dataset missing!' => 'ðÒÏÐÕÝÅÎÁ ÂÁÚÁ ÄÁÎÎÙÈ',
+ 'Dataset updated!' => 'âÁÚÁ ÄÁÎÎÙÈ ÏÂÎÏ×ÌÅÎÁ!',
+ 'Date' => 'äÁÔÁ',
+ 'Date Format' => 'æÏÒÍÁÔ ÄÁÔÙ',
+ 'Date Paid' => 'äÁÔÁ ÏÐÌÁÔÙ',
+ 'Date Received' => 'äÁÔÁ ÐÏÌÕÞÅÎÁ',
+ 'Date missing!' => 'ðÒÏÐÕÝÅÎÁ ÄÁÔÁ',
+ 'Date received missing!' => 'ðÒÏÐÕÝÅÎÁ ÄÁÔÁ',
+ 'Date worked' => '',
+ 'Day' => '',
+ 'Day(s)' => '',
+ 'Days' => '',
+ 'Debit' => 'äÅÂÅÔ',
+ 'Dec' => 'ÄÅË',
+ 'December' => 'ÄÅËÁÂÒØ',
+ 'Decimalplaces' => 'ÄÅÓÑÔÉÞÎÁÑ ÔÏÞËÁ',
+ 'Decrease' => 'ÕÍÅÎØÛÅÎÉÅ',
+ 'Deduct after' => 'õÄÅÒÖÁÔØ ÐÏÓÌÅ',
+ 'Deduction deleted!' => 'õÄÅÒÖÁÎÉÅ ÕÄÁÌÅÎÏ!',
+ 'Deduction saved!' => 'õÄÅÒÖÁÎÉÅ ÓÏÈÒÁÎÅÎÏ!',
+ 'Deductions' => 'õÄÅÒÖÁÎÉÑ',
+ 'Default Template' => '',
+ 'Defaults' => 'îÁÓÔÒÏÊËÉ ÐÏ ÕÍÏÌÞÁÎÉÉ',
+ 'Defaults saved!' => 'îÁÓÔÒÏÊËÉ ÐÏ ÕÍÏÌÞÁÎÉÉ ÓÏÈÒÁÎÅÎÙ!',
+ 'Delete' => 'õÄÁÌÉÔØ',
+ 'Delete Account' => 'õÄÁÌÍÔØ ÓÞÅÔ',
+ 'Delete Dataset' => 'õÄÁÌÉÔØ ÂÁÚÕ ÄÁÎÎÙÈ',
+ 'Delete Schedule' => '',
+ 'Deleting a language will also delete the templates for the language' => '',
+ 'Delivery Date' => 'äÁÔÁ ÐÏÌÕÞÅÎÉÑ',
+ 'Department' => 'ïÔÄÅÌ',
+ 'Department deleted!' => 'ïÔÄÅÌ ÕÄÁÌÅÎ!',
+ 'Department saved!' => 'ïÔÄÅÌ ÓÏÈÒÁÎÅÎ!',
+ 'Departments' => 'ïÔÄÅÌÙ',
+ 'Deposit' => 'äÅÐÏÚÉÔ',
+ 'Description' => 'ïÐÉÓÁÎÉÅ',
+ 'Description Translations' => 'ïÐÉÓÁÎÉÅ ÐÒÏ×ÏÄÏË',
+ 'Description missing!' => 'ðÒÏ×ÕÝÅÎÏ ïÐÉÓÁÎÉÅ!',
+ 'Detail' => 'äÅÔÁÌÉÚÉÒÏ×ÁÔØ',
+ 'Difference' => 'òÁÚÎÉÃÁ',
+ 'Directory' => 'ëÁÔÁÌÏÇ',
+ 'Discount' => 'óËÉÄËÁ',
+ 'Done' => '÷ÙÐÏÌÎÅÎÏ',
+ 'Drawing' => 'éÚÏÂÒÁÖÅÎÉÅ',
+ 'Driver' => 'äÒÁÊ×ÅÒ',
+ 'Dropdown Limit' => 'ïÇÒÁÎÉÞÅÎÉÅ ÐÁÄÁÀÝÅÇÏ ÍÅÎÀ',
+ 'Due Date' => 'ïÐÌÁÔÉÔØ ÄÏ',
+ 'Due Date missing!' => 'îÅ ÕËÁÚÁÎ ÓÒÏË ÏÐÌÁÔÙ!',
+ 'E-mail' => 'E-mail',
+ 'E-mail Statement to' => 'óÏÓÔÏÑÎÉÅ E-mail ÄÌÑ',
+ 'E-mail address missing!' => 'îÅ ÕËÁÚÁÎ ÁÄÒÅÓ E-mail!',
+ 'E-mail message' => '',
+ 'E-mailed' => 'ïÔÐÒÁ×ÌÅÎÏ ÐÏ e-mail',
+ 'Edit' => 'òÅÄÁËÔÉÒÏ×ÁÔØ',
+ 'Edit AP Transaction' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ÐÒÏ×ÏÄËÕ ðÏÓÔÕÐÌÅÎÉÑ',
+ 'Edit AR Transaction' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ÐÒÏ×ÏÄËÕ ðÒÏÄÁÖ',
+ 'Edit Account' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ÓÞÅÔ',
+ 'Edit Assembly' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ËÏÍÐÌÅËÔ',
+ 'Edit Business' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ÂÉÚÎÅÓ',
+ 'Edit Cash Transfer Transaction' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ÐÒÏ×ÏÄËÕ ëÁÓÓÏ×ÏÇÏ ðÅÒÅÍÅÝÅÎÉÑ',
+ 'Edit Customer' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ëÌÉÅÎÔÁ',
+ 'Edit Deduction' => 'òÅÄÁËÔÉÒÏ×ÁÔØ õÄÅÒÖÁÎÉÅ',
+ 'Edit Department' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ïÔÄÅÌ',
+ 'Edit Description Translations' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ÏÐÉÓÁÎÉÅ ÐÒÏ×ÏÄÏË',
+ 'Edit Employee' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ÓÏÔÒÕÄÎÉËÁ',
+ 'Edit GIFI' => 'òÅÄÁËÔÉÒÏ×ÁÔØ GIFI',
+ 'Edit General Ledger Transaction' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ÐÒÏ×ÏÄËÕ ÇÌÁ×ÎÏÊ ËÎÉÇÉ',
+ 'Edit Group' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ÇÒÕÐÐÕ',
+ 'Edit Job' => '',
+ 'Edit Labor/Overhead' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ÒÁÂÏÔÙ/ÎÁËÌÁÄÎÙÅ ÒÁÓÈÏÄÙ',
+ 'Edit Language' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ñÚÙË',
+ 'Edit POS Invoice' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ëëí-ÆÁËÔÕÒÕ',
+ 'Edit Part' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ÔÏ×ÁÒ',
+ 'Edit Preferences for' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ÎÁÓÔÒÏÊËÉ ÄÌÑ',
+ 'Edit Pricegroup' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ÔÉÐ ÃÅÎ',
+ 'Edit Project' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ðÒÏÅËÔ',
+ 'Edit Purchase Order' => 'òÅÄÁËÔÉÒÏ×ÁÔØ æÁËÔÕÒÕ ÐÏÓÔÁ×ÝÉËÁ',
+ 'Edit Quotation' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'Edit Request for Quotation' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ÚÁÐÒÏÓ ÎÁ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'Edit SIC' => 'òÅÄÁËÔÉÒÏ×ÁÔØ SIC',
+ 'Edit Sales Invoice' => 'òÅÄÁËÔÉÒÏ×ÁÔØ æÁËÔÕÒÕ ËÌÉÅÎÔÁ',
+ 'Edit Sales Order' => 'òÅÄÁËÔÉÒÏ×ÁÔØ úÁËÁÚ ËÌÉÅÎÔÁ',
+ 'Edit Service' => 'òÅÄÁËÔÉÒÏ×ÁÔØ õÓÌÕÇÕ',
+ 'Edit Template' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ûÁÂÌÏÎ',
+ 'Edit Timecard' => '',
+ 'Edit User' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ÓÏÔÒÕÄÎÉËÁ',
+ 'Edit Vendor' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ÐÏÓÔÁ×ÝÉËÁ',
+ 'Edit Vendor Invoice' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ÆÁËÔÕÒÕ ÐÏÓÔÁ×ÝÉËÕ',
+ 'Edit Warehouse' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ÓËÌÁÄ',
+ 'Employee' => 'óÏÔÒÕÄÎÉË',
+ 'Employee Name' => 'éÍÑ ÓÏÔÒÕÄÎÉËÁ',
+ 'Employee Number' => 'ëÏÄ ÓÏÔÒÕÄÎÉËÁ',
+ 'Employee deleted!' => 'óÏÔÒÕÄÎÉË ÕÄÁÌÅÎ!',
+ 'Employee pays' => 'úÁÒÐÌÁÔÁ ÓÏÔÒÕÄÎÉËÁ',
+ 'Employee saved!' => 'óÏÔÒÕÄÎÉË ÓÏÈÒÁÎÅÎ!',
+ 'Employees' => 'óÏÔÒÕÄÎÉËÉ',
+ 'Employer' => 'òÁÂÏÔÏÄÁÔÅÌØ',
+ 'Employer pays' => 'ðÌÁÔÅÖÉ ÒÁÂÏÔÏÄÁÔÅÌÑ',
+ 'Enddate' => 'ëÏÎÞÎÁÑ ÄÁÔÁ',
+ 'Ends' => '',
+ 'Enforce transaction reversal for all dates' => 'ðÅÒÅÓÞÉÔÁÄØ ÐÒÏ×ÏÄËÉ ÐÏÌÎÏÓÔØÀ',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'äÌÑ ÏÂÏÚÎÁÞÅÎÉÑ ×ÁÌÀÔÙ ××ÅÄÉÔÅ ÄÏ ÔÒÅÈ ÂÕË×, ÒÁÚÄÅÌ£ÎÎÙÈ Ä×ÏÅÔÏÞÉÅÍ, (ÎÁÐÒ. CAD:USD:EUR)',
+ 'Equity' => 'ëÁÐÉÔÁÌ',
+ 'Every' => '',
+ 'Excempt age <' => 'ïÓ×ÏÂÏÖÄÅÎÉÅ ÏÔ ÎÁÌÏÇÏ× <',
+ 'Exch' => 'ëÕÒÓ',
+ 'Exchange Rate' => 'ëÕÒÓ ×ÁÌÀÔÙ',
+ 'Exchange rate for payment missing!' => 'ðÒÏÐÕÝÅÎ ËÕÒÓ ÏÐÌÁÔÙ!',
+ 'Exchange rate missing!' => 'ðÒÏÐÕÝÅÎ ËÕÒÓ!',
+ 'Existing Datasets' => 'óÕÝÅÓÔ×ÕÀÝÉÅ ÂÁÚÙ ÄÁÎÎÙÈ',
+ 'Expense' => 'òÁÓÈÏÄ',
+ 'Expense account does not exist!' => '',
+ 'Expense/Asset' => 'òÁÓÈÏÄ/ÁËÔÉ×Ù',
+ 'Extended' => 'óÕÍÍÁ',
+ 'FX' => 'FX',
+ 'Failed to save order!' => '',
+ 'Fax' => 'æÁËÓ',
+ 'Feb' => 'ÆÅ×',
+ 'February' => 'ÆÅ×ÒÁÌØ',
+ 'For' => '',
+ 'Foreign Exchange Gain' => 'ëÕÒÓÏ×ÁÑ ÐÒÉÂÙÌØ',
+ 'Foreign Exchange Loss' => 'ëÕÒÓÏ×ÙÅ ÐÏÔÅÒÉ',
+ 'Friday' => '',
+ 'From' => 'Ó',
+ 'From Warehouse' => '',
+ 'GIFI' => 'GIFI',
+ 'GIFI deleted!' => 'GIFI ÕÄÁÌÅÎ',
+ 'GIFI missing!' => 'ðÒÏÐÕÝÅÎ GIFI',
+ 'GIFI saved!' => 'GIFI ÓÏÈÒÁÎÅÎ!',
+ 'GL' => '',
+ 'GL Reference Number' => '',
+ 'GL Transaction' => 'ðÒÏ×ÏÄËÉ çÌÁ×ÎÏÊ ËÎÉÇÉ',
+ 'General Ledger' => 'çÌÁ×ÎÁÑ ËÎÉÇÁ',
+ 'Generate' => '',
+ 'Generate Orders' => '',
+ 'Generate Purchase Orders' => '',
+ 'Generate Purchase Orders from Sales Order' => '',
+ 'Generate Sales Order' => '',
+ 'Generate Sales Order from Purchase Orders' => '',
+ 'Generate Sales Orders' => '',
+ 'Goods & Services' => 'ôÏ×ÁÒÙ É ÕÓÌÕÇÉ',
+ 'Group' => 'çÒÕÐÐÁ',
+ 'Group Items' => 'çÒÕÐÐÁ ÎÏÍÅÎËÌÁÔÕÒÙ',
+ 'Group Translations' => 'çÒÕÐÐÁ ÐÒÏ×ÏÄÏË',
+ 'Group deleted!' => 'çÒÕÐÐÁ ÕÄÁÌÅÎÁ!',
+ 'Group missing!' => 'ðÒÏÐÕÝÅÎÁ ÇÒÕÐÐÁ!',
+ 'Group saved!' => 'çÒÕÐÐÁ ÓÏÈÒÁÎÅÎÁ!',
+ 'Groups' => 'çÒÕÐÐÙ',
+ 'HR' => 'óÏÔÒÕÄÎÉËÉ',
+ 'HTML Templates' => 'ûÁÂÌÏÎÙ HTML',
+ 'Heading' => 'òÁÚÄÅÌ',
+ 'History' => 'éÓÔÏÒÉÑ',
+ 'Home Phone' => 'äÏÍÁÛÎÉÊ ÔÅÌÅÆÏÎ',
+ 'Host' => 'óÅÒ×ÅÒ',
+ 'Hostname missing!' => 'ðÒÏÐÕÝÅÎÏ ÉÍÑ ÓÅÒ×ÅÒÁ',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'éÄÅÎÔÉÆÉËÁÔÏÒ',
+ 'Image' => 'ëÁÒÔÉÎËÁ',
+ 'In-line' => '×ÎÕÔÒÉÓÔÒÏÞÎÙÊ',
+ 'Inactive' => '',
+ 'Include Exchange Rate Difference' => '÷ËÌÀÞÉÔØ ËÕÒÓÏ×ÕÀ ÒÁÚÎÏÓÔØ',
+ 'Include Payment' => '',
+ 'Include in Report' => '÷ËÌÀÞÉÔØ × ÏÔÞÅÔ',
+ 'Include in drop-down menus' => '÷ËÌÀÞÉÔØ × ÐÁÄÁÀÝÅÅ ÍÅÎÀ',
+ 'Income' => 'ðÏÓÔÕÐÌÅÎÉÅ',
+ 'Income Statement' => 'ïÔÞÅÔ Ï ÐÒÉÂÙÌÉ/ÕÂÙÔËÁÈ',
+ 'Income account does not exist!' => '',
+ 'Incorrect Dataset version!' => 'îÅ×ÅÒÎÁÑ ×ÅÒÓÉÑ ÂÁÚÙ ÄÁÎÎÙÈ!',
+ 'Increase' => 'òÏÓÔ(Õ×ÅÌÉÞÅÎÉÅ)',
+ 'Individual Items' => 'îÏÍÅËÌÁÔÕÒÎÙÅ ÐÏÚÉÃÉÉ',
+ 'Internal Notes' => '÷ÎÕÔÒÅÎÎÉÅ ÚÁÍÅÔËÉ',
+ 'Inventory' => 'éÎ×ÅÎÔÁÒÎÙÊ',
+ 'Inventory account does not exist!' => '',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'ðÒÅÖÄÅ ÞÅÍ ËÏÍÐÌÅËÔ ÓÞÉÔÁÔØ ÕÓÁÒÅ×ÛÉÍ, ÉÎ×ÅÎÔÁÒÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÄÏÌÖÎÏ ÂÙÔØ ÎÕÌÅ×ÙÍ!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'ðÒÅÖÄÅ ÞÅÍ ÔÏ×ÁÒ ÓÞÉÔÁÔØ ÕÓÁÒÅ×ÛÉÍ, ÉÎ×ÅÎÔÁÒÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÄÏÌÖÎÏ ÂÙÔØ ÎÕÌÅ×ÙÍ!',
+ 'Inventory saved!' => 'éÎ×ÅÎÔÁÒØ ÓÏÈÒÁÎÅÎ!',
+ 'Inventory transferred!' => 'éÎ×ÅÎÔÁÒØ ÐÅÒÅÍÅÝÅÎ!',
+ 'Invoice' => 'óÞÅÔ-ÆÁËÔÕÒÁ',
+ 'Invoice Date' => 'äÁÔÁ ×ÙÓÔÁ×ÌÅÎÉÑ',
+ 'Invoice Date missing!' => 'îÅ ÕËÁÚÁÎÁ ÄÁÔÁ ×ÙÓÔÁ×ÌÅÎÉÑ ÓÞÅÔÁ-ÆÁËÔÕÒÙ',
+ 'Invoice Number' => 'îÏÍÅÒ ÓÞÅÔÁ-ÆÁËÔÕÒÙ',
+ 'Invoice Number missing!' => 'îÅ ÕËÁÚÁÎ ÎÏÍÅÒ ÓÞÅÔÁ-ÆÁËÔÕÒÙ',
+ 'Invoice deleted!' => 'óÞÅÔ-ÆÁËÔÕÒÁ ÕÄÁÌÅÎÁ!',
+ 'Invoices' => 'óÞÅÔ-ÆÁËÔÕÒÙ',
+ 'Is this a summary account to record' => 'üÔÏ ÉÔÏÇÏ×ÙÊ ÓÞÅÔ ÄÌÑ ÚÁÐÉÓÉ',
+ 'Item already on pricelist!' => 'îÏÍÅÎËÌÁÔÕÒÁ ÕÖÅ ÅÓÔØ × ÐÒÁÊÓ-ÌÉÓÔÅ!',
+ 'Item deleted!' => 'îÏÍÅÎËÌÁÔÕÒÁ ÕÄÁÌÅÎÁ!',
+ 'Item not on file!' => 'îÅÔ ÎÏÍÅÎËÌÁÔÕÒÙ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Items' => 'îÏÍÅÎËÌÁÔÕÒÁ',
+ 'Jan' => 'ÑÎ×',
+ 'January' => 'ÑÎ×ÁÒØ',
+ 'Job' => '',
+ 'Job Name' => '',
+ 'Job Number' => '',
+ 'Job Number missing!' => '',
+ 'Job deleted!' => '',
+ 'Job saved!' => '',
+ 'Jobs' => '',
+ 'Jul' => 'ÉÀÌ',
+ 'July' => 'ÉÀÌØ',
+ 'Jun' => 'ÉÀÎ',
+ 'June' => 'ÉÀÎØ',
+ 'LaTeX Templates' => 'ûÁÂÌÏÎÙ LaTeX',
+ 'Labor Code' => '',
+ 'Labor/Overhead' => 'òÁÂÏÔÁ/ÎÁËÌÁÄÎÙÅ ÒÁÓÈÏÄÙ',
+ 'Language' => 'ñÚÙË',
+ 'Language deleted!' => 'ñÚÙË ÕÄÁÌÅÎ',
+ 'Language saved!' => 'ñÚÙË ÓÏÈÒÁÎÅÎ',
+ 'Languages' => 'ñÚÙËÉ',
+ 'Languages not defined!' => 'ñÚÙËÉ ÎÅ ÏÐÒÅÄÅÌÅÎÙ!',
+ 'Last Cost' => '',
+ 'Last Numbers & Default Accounts' => 'ðÏÓÌÅÄÎÉÅ ÎÏÍÅÒÁ ÄÏËÕÍÅÎÔÏ× É ÓÞÅÔÁ ÐÏ-ÕÍÏÌÞÁÎÉÉ',
+ 'Lead' => '',
+ 'Leadtime' => 'ïÓÎÏ×ÎÏÅ ×ÒÅÍÑ',
+ 'Leave host and port field empty unless you want to make a remote connection.' => 'ïÓÔÁ×ÔÅ ÐÏÌÅ ÓÅÒ×ÅÒÁ É ÐÏÒÔÁ ÐÕÓÔÙÍ ÄÏ ÔÅÈ ÐÏÒ, ÐÏËÁ ×Ù ÎÅ ÚÁÈÏÔÉÔÅ ÓÄÅÌÁÔØ ÕÄÁÌ£ÎÎÏÇÏ ÓÏÅÄÉÎÅÎÉÑ.',
+ 'Liability' => 'ðÁÓÓÉ×',
+ 'Licensed to' => 'ìÉÃÅÎÚÉÅÊ ÏÂÌÁÄÁÅÔ:',
+ 'Line Total' => 'éÔÏÇÏ×ÁÑ ÌÉÎÉÑ',
+ 'Link' => 'óÓÙÌËÁ',
+ 'Link Accounts' => 'óÓÙÌËÉ ÓÞÅÔÏ×',
+ 'List' => 'óÐÉÓÏË',
+ 'List Accounts' => 'óÐÉÓÏË ÓÞÅÔÏ×',
+ 'List Businesses' => 'óÐÉÓÏË ÂÉÚÎÅÓÏ×',
+ 'List Departments' => 'óÐÉÓÏË ÏÔÄÅÌÏ×',
+ 'List GIFI' => 'óÐÉÓÏË GIFI',
+ 'List Languages' => 'óÐÉÓÏË ÑÚÙËÏ×',
+ 'List Price' => 'óÐÉÓÏË ÃÅÎ',
+ 'List Projects' => 'óÐÉÓÏË ÐÒÏÅËÔÏ×',
+ 'List SIC' => 'óÐÉÓÏË SIC',
+ 'List Transactions' => 'óÐÉÓÏË ÐÒÏ×ÏÄÏË',
+ 'List Warehouses' => 'óÐÉÓÏË ÓËÌÁÄÏ×',
+ 'Lock System' => 'úÁÂÌÏËÉÒÏ×ÁÔØ ÓÉÓÔÅÍÕ',
+ 'Lockfile created!' => 'æÁÊÌ ÂÌÏËÉÒÏ×ÁÎÉÑ ÓÏÚÄÁÎ!',
+ 'Lockfile removed!' => 'æÁÊÌ ÂÌÏËÉÒÏ×ÁÎÉÑ ÕÄÁÌÅÎ!!',
+ 'Login' => 'ðÏÌØÚÏ×ÁÔÅÌØ',
+ 'Login name missing!' => 'ðÒÏÐÕÛÅÎÏ ÉÍÑ ÐÏÌØÚÏ×ÁÔÅÌÑ!',
+ 'Logout' => '÷ÙÈÏÄ',
+ 'Make' => 'óÏÚÄÁÔØ',
+ 'Manager' => 'íÅÎÅÄÖÅÒ',
+ 'Mar' => 'ÍÁÒÔ',
+ 'March' => 'ÍÁÒÔ',
+ 'Marked entries printed!' => 'ïÔÍÅÞÅÎÎÙÅ ÐÏÚÉÃÉÉ ÎÁÐÅÞÁÔÁÎÙ!',
+ 'Markup' => 'îÁÃÅÎËÁ',
+ 'Maximum' => 'íÁËÓÉÍÕÍ',
+ 'May' => 'ÍÁÊ',
+ 'May ' => 'ÍÁÊ',
+ 'Memo' => 'ëÏÍÍÅÎÔÁÒÉÊ',
+ 'Menu Width' => 'ûÉÒÉÎÁ ÍÅÎÀ',
+ 'Message' => 'óÏÏÂÝÅÎÉÅ',
+ 'Method' => 'íÅÔÏÄ',
+ 'Microfiche' => 'íÏËÒÏÆÉÛÁ',
+ 'Model' => 'íÏÄÅÌØ',
+ 'Monday' => '',
+ 'Month' => 'ÍÅÓÑÃ',
+ 'Month(s)' => '',
+ 'Months' => '',
+ 'Multibyte Encoding' => 'íÎÏÇÏÂÁÊÔÏ×ÁÑ ËÏÄÉÒÏ×ËÁ',
+ 'N/A' => 'N/A',
+ 'Name' => 'îÁÉÍÅÎÏ×ÁÎÉÅ',
+ 'Name missing!' => 'ðÒÏÐÕÝÅÎÏ ÎÁÉÍÅÎÏ×ÁÎÉÅ!',
+ 'New Templates' => 'îÏ×ÙÊ ÛÁÂÌÏÎ',
+ 'New Window' => 'îÏ×ÏÅ ÏËÎÏ',
+ 'Next' => '',
+ 'Next Date' => '',
+ 'Next Number' => '',
+ 'No' => 'îÅÔ',
+ 'No Database Drivers available!' => 'îÅÄÏÓÔÕÐÅÎ ÄÒÁÊ×ÅÒ ÂÁÚÙ ÄÁÎÎÙÈ!',
+ 'No Dataset selected!' => 'îÅ ×ÙÂÒÁÎÁ ÂÁÚÁ ÄÁÎÎÙÈ',
+ 'No Employees on file!' => '',
+ 'No Labor codes on file!' => '',
+ 'No email address for' => 'îÅÔ ÁÄÒÅÓÁ e-mail ÄÌÑ',
+ 'No open Jobs!' => '',
+ 'No open Projects!' => '',
+ 'No.' => 'îÏÍ.',
+ 'Non-taxable' => 'îÅ ÐÏÄÌÅÖÁÝÉÅ ÎÁÌÏÇÏÏÂÌÏÖÅÎÉÀ',
+ 'Non-taxable Purchases' => 'úÁËÕÐËÉ, ÎÅ ÐÏÄÌÅÖÁÝÉÅ ÎÁÌÏÇÏÏÂÌÏÖÅÎÉÀ',
+ 'Non-taxable Sales' => 'ðÒÏÄÁÖÉ, ÎÅ ÐÏÄÌÅÖÁÝÉÅ ÎÁÌÏÇÏÏÂÌÏÖÅÎÉÀ',
+ 'Non-tracking Items' => '',
+ 'Notes' => 'ëÏÍÍÅÎÔÁÒÉÉ',
+ 'Nothing entered!' => 'îÉÞÅÇÏ ÎÅ ××ÅÄÅÎÏ!',
+ 'Nothing selected!' => 'îÉÞÅÇÏ ÎÅ ×ÙÂÒÁÎÏ!',
+ 'Nothing to delete!' => 'îÉÞÅÇÏ ÎÅ ÕÄÁÌÅÎÏ!',
+ 'Nothing to print!' => 'îÉÞÅÇÏ ÎÅ ÎÁÐÅÞÁÔÁÎÏ!',
+ 'Nothing to transfer!' => 'îÉÞÅÇÏ ÎÅ ÐÅÒÅÍÅÝÅÎÏ!',
+ 'Nov' => 'ÎÏÑ',
+ 'November' => 'ÎÏÑÂÒØ',
+ 'Number' => 'ËÏÄ',
+ 'Number Format' => 'þÉÓÌÏ×ÏÊ ÆÏÒÍÁÔ',
+ 'Number missing in Row' => 'ðÒÏÐÕÝÅÎ ËÏÄ × ÓÔÒÏËÅ',
+ 'O' => 'O',
+ 'OH' => '',
+ 'Obsolete' => 'õÓÔÁÒÅ×ÛÉÊ',
+ 'Oct' => 'ÏËÔ',
+ 'October' => 'ÏËÔÑÂÒØ',
+ 'On Hand' => '÷ÎÁÌÉÞÉÉ',
+ 'Open' => 'ïÔËÒÙÔØ',
+ 'Oracle Database Administration' => 'áÄÍÉÎÉÓÔÒÉÒÏ×ÁÎÉÅ ÂÁÚÙ ÄÁÎÎÙÈ Oracle',
+ 'Order' => 'úÁËÁÚ ËÌÉÅÎÔÁ',
+ 'Order Date' => 'äÁÔÁ ÚÁËÁÚÁ ËÌÉÅÎÔÁ',
+ 'Order Date missing!' => 'ðÒÏÐÕÝÅÎÁ ÄÁÔÁ ÚÁËÁÚÁ',
+ 'Order Entry' => 'úÁËÁÚÙ',
+ 'Order Number' => 'îÏÍÅÒ ÚÁËÁÚÁ',
+ 'Order Number missing!' => 'ðÒÏÐÕÝÅÎ ÎÏÍÅÒ ÚÁËÁÚÁ',
+ 'Order deleted!' => 'úÁËÁÚ ÕÄÁÌÅÎ!',
+ 'Order generation failed!' => '',
+ 'Order saved!' => 'úÁËÁÚ ÓÏÈÒÁÎÅÎ!',
+ 'Orders generated!' => '',
+ 'Orphaned' => 'âÅÚ ÐÒÏ×ÏÄÏË',
+ 'Out of balance transaction!' => '÷ÎÅ ÂÁÌÌÁÎÓÁ ÐÒÏ×ÏÄÏË!',
+ 'Out of balance!' => '÷ÎÅ ÂÁÌÌÁÎÓÁ!',
+ 'Outstanding' => 'úÁÄÏÌÖÅÎÏÓÔØ',
+ 'PDF' => 'PDF',
+ 'PO Number' => '',
+ 'POS' => 'ëëí',
+ 'POS Invoice' => 'ëëí æÁËÔÕÒÁ',
+ 'Packing List' => 'õÐÁËÏ×ÏÞÎÙÊ ÓÐÉÓÏË',
+ 'Packing List Date missing!' => 'ðÒÏÐÕÝÅÎÁ ÄÁÔÁ ÕÐÁËÏ×ÏÞÎÏÇÏ ÓÐÉÓÏËÁ!',
+ 'Packing List Number missing!' => 'ðÒÏÐÕÝÅÎ ÎÏÍÅÒ ÕÐÁËÏ×ÏÞÎÏÇÏ ÓÐÉÓÏËÁ!',
+ 'Packing Lists' => 'õÐÁËÏ×ÏÞÎÙÅ ÓÐÉÓÏËÉ',
+ 'Paid' => 'ïÐÌÁÞÅÎÏ',
+ 'Part' => 'ôÏ×ÁÒ',
+ 'Part Number' => 'ëÏÄ ÔÏ×ÁÒÁ',
+ 'Partnumber' => 'ëÏÄ',
+ 'Parts' => 'ôÏ×ÁÒÙ',
+ 'Password' => 'ðÁÒÏÌØ',
+ 'Password changed!' => 'ðÁÒÏÌØ ÉÚÍÅÎÅÎ!',
+ 'Password does not match!' => 'îÅ×ÅÒÎÙÊ ÐÁÒÏÌØ!',
+ 'Passwords do not match!' => 'îÅ×ÅÒÎÙÊ ÐÁÒÏÌØ!',
+ 'Payables' => 'ðÏÄÌÅÖÁÝÉÊ ÏÐÌÁÔÅ',
+ 'Payment' => 'ïÐÌÁÔÁ',
+ 'Payment date missing!' => 'ðÒÏÐÕÝÅÎÁ ÄÁÔÁ ÏÐÌÁÔÙ!',
+ 'Payment posted!' => 'ïÐÌÁÔÁ ÐÒÏ×ÅÄÅÎÁ!',
+ 'Payments' => 'ïÐÌÁÔÙ',
+ 'Payments posted!' => '',
+ 'Payroll Deduction' => 'õÄÅÒÖÁÎÉÅ ÐÏ ×ÅÄÏÍÏÓÔÉ',
+ 'Period' => 'ðÅÒÉÏÄ',
+ 'Pg Database Administration' => 'áÄÍÉÎÉÓÔÒÉÒÏ×ÁÎÉÅ ÂÁÚÙ ÄÁÎÎÙÈ PostgreSQL (Pg)',
+ 'PgPP Database Administration' => 'áÄÍÉÎÉÓÔÒÉÒÏ×ÁÎÉÅ ÂÁÚÙ ÄÁÎÎÙÈ PostgreSQL (PgPP)',
+ 'Phone' => 'ôÅÌ.',
+ 'Pick List' => 'óÐÉÓÏË ÄÌÑ ×ÙÂÏÒÁ',
+ 'Pick Lists' => 'óÐÉÓËÉ ÄÌÑ ×ÙÂÏÒÁ',
+ 'Port' => 'ðÏÒÔ',
+ 'Port missing!' => 'ðÒÏÐÕÝÅÎ ÎÏÍÅÒ ÐÏÒÔÁ!',
+ 'Pos' => '',
+ 'Post' => 'óÏÈÒÁÎÉÔØ',
+ 'Post as new' => 'óÏÈÒÁÎÉÔØ ËÁË ÎÏ×ÙÊ',
+ 'Posted!' => 'óÏÈÒÁÎÅÎÏ!',
+ 'Posting' => '',
+ 'Posting failed!' => '',
+ 'Postscript' => 'Postscript',
+ 'Preferences' => 'îÁÓÔÒÏÊËÉ',
+ 'Preferences saved!' => 'îÁÓÔÒÏÊËÉ ÓÏÈÒÁÎÅÎÙ!',
+ 'Prepayment' => 'ðÒÅÄ×ÁÒÉÔÅÌØÎÁÑ ÏÐÌÁÔÁ',
+ 'Price' => 'ãÅÎÁ',
+ 'Pricegroup' => 'ôÉÐ ÃÅÎ',
+ 'Pricegroup deleted!' => 'õÄÁÌÅÎ ÔÉÐ ÃÅÎ',
+ 'Pricegroup missing!' => 'ðÒÏÐÕÝÅÎ ÔÉÐ ÃÅÎ',
+ 'Pricegroup saved!' => 'úÁÐÉÓÁÎ ÔÉÐ ÃÅÎ',
+ 'Pricegroups' => 'ôÉÐÙ ÃÅÎ',
+ 'Pricelist' => 'ðÒÁÊÓÌÉÓÔ',
+ 'Print' => 'ðÅÞÁÔØ',
+ 'Print and Post' => 'îÁÐÅÞÁÔÁÔØ É ÏÔÐÒÁ×ÉÔØ',
+ 'Print and Post as new' => '',
+ 'Print and Save' => 'îÁÐÅÞÁÔÁÔØ É ÓÏÈÒÁÎÉÔØ',
+ 'Print and Save as new' => '',
+ 'Print and post as new' => '',
+ 'Print and save as new' => '',
+ 'Printed' => 'îÁÐÅÞÁÔÁÎÏ',
+ 'Printer' => 'ðÒÉÎÔÅÒ',
+ 'Printing' => '',
+ 'Printing ... ' => 'ðÅÞÁÔØ...',
+ 'Process Transactions' => '',
+ 'Production' => '',
+ 'Profit Center' => 'ðÒÏÆÉÔ-ÃÅÎÔÒ',
+ 'Project' => 'ðÒÏÅËÔ',
+ 'Project Description Translations' => 'ðÅÒÅ×ÏÄÙ ÏÐÉÓÁÎÉÑ ÐÒÏÅËÔÏ×',
+ 'Project Name' => '',
+ 'Project Number' => 'ëÏÄ ÐÒÏÅËÔÁ',
+ 'Project Number missing!' => 'ðÒÏÐÕÝÅÎ ËÏÄ ÐÒÏÅËÔÁ',
+ 'Project Transactions' => 'ðÒÏ×ÏÄËÉ ÐÒÏÅËÔÁ',
+ 'Project deleted!' => 'ðÒÏÅËÔ ÕÄÁÌÅÎ',
+ 'Project not on file!' => 'ðÒÏÅËÔ ÏÔÓÕÔÓÔ×ÕÅÔ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Project saved!' => 'ðÒÏÅËÔ ÓÏÈÒÁÎÅÎ!',
+ 'Project/Job Name' => '',
+ 'Project/Job Number' => '',
+ 'Projects' => 'ðÒÏÅËÔÙ',
+ 'Purchase Order' => 'úÁËÁÚ ÐÏÓÔÁ×ÝÉËÕ',
+ 'Purchase Order Number' => 'îÏÍÅÒ ÚÁËÁÚÁ ÐÏÓÔÁ×ÝÉËÕ',
+ 'Purchase Orders' => 'úÁËÁÚÙ ÐÏÓÔÁ×ÝÉËÕ',
+ 'Qty' => 'ëÏÌÉÞÅÓÔ×Ï',
+ 'Quantity exceeds available units to stock!' => 'ðÒÅ×ÙÛÅÎÏ ËÏÌÉÞÅÓÔ×Ï ÅÄÉÎÉà ÎÏÍÅÎËÌÁÔÕÒÙ ÎÁ ÓËÁÄÅ',
+ 'Quarter' => 'ë×ÁÒÔÁÌ',
+ 'Quotation' => 'òÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'Quotation ' => 'òÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'Quotation Date' => 'äÁÔÁ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÑ',
+ 'Quotation Date missing!' => 'ðÒÏÐÕÝÅÎÁ ÄÁÔÁ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÑ!',
+ 'Quotation Number' => 'îÏÍÅÒ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÑ',
+ 'Quotation Number missing!' => 'ðÒÏÐÕÝÅÎ ÎÏÍÅÒ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÑ!',
+ 'Quotation deleted!' => 'òÅÚÅÒ×ÉÒÏ×ÁÎÉÅ ÕÄÁÌÅÎÏ',
+ 'Quotations' => 'òÅÚÅÒ×Ù',
+ 'R' => 'R',
+ 'RFQ' => 'úÁÐÒÏÓ ÎÁ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'RFQ ' => 'úÁÐÒÏÓ ÎÁ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'RFQ Number' => 'îÏÍÅÒ ÚÁÐÒÏÓÁ ÎÁ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'RFQs' => 'úÁÐÒÏÓÙ ÎÁ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'ROP' => 'ROP',
+ 'Rate' => 'ëÕÒÓ',
+ 'Rate missing!' => 'ðÒÏÐÕÝÅÎ ËÕÒÓ',
+ 'Recd' => 'Recd',
+ 'Receipt' => 'ðÏÌÕÞÅÎÉÅ',
+ 'Receipt posted!' => 'ðÏÌÕÞÅÎÉÅ ÐÒÏ×ÅÄÅÎÏ!',
+ 'Receipts' => 'ðÏÌÕÞÅÎÉÑ',
+ 'Receivables' => 'ðÏÄÌÅÖÁÝÉÊ ÐÏÌÕÞÅÎÉÀ',
+ 'Receive' => 'ðÏÌÕÞÉÔØ',
+ 'Receive Merchandise' => 'ðÏÌÕÞÉÔØ ÔÏ×ÁÒÙ',
+ 'Reconciliation' => 'óÏÇÌÁÓÏ×ÁÎÎÏÓÔØ',
+ 'Reconciliation Report' => 'ïÔÞÅÔ Ï ÓÏÇÌÁÓÏ×ÁÎÎÏÓÔÉ',
+ 'Record in' => 'ïÔÎÅÓÔÉ ÎÁ ÓÞÅÔ',
+ 'Recurring Transaction' => '',
+ 'Recurring Transactions' => '',
+ 'Reference' => 'óÓÙÌËÁ',
+ 'Remaining' => 'ïÓÔÁÔÏË',
+ 'Remove' => 'õÄÁÌÉÔØ',
+ 'Remove Audit trail up to' => 'õÄÁÌÉÔØ ÐÒÏÂÎÕÀ ÐÒÏ×ÅÒËÕ ÂÁÌÌÁÎÓÁ ÄÏ',
+ 'Remove Audit trails up to' => 'õÄÁÌÉÔØ ÐÒÏÂÎÕÀ ÐÒÏ×ÅÒËÕ ÂÁÌÌÁÎÓÁ ÄÏ',
+ 'Removed spoolfiles!' => 'õÄÁÌÉÔØ ÆÁÊÌ ÏÞÅÒÅÄÉ!',
+ 'Removing marked entries from queue ...' => 'õÄÁÌÉÔØ ÏÔÍÅÞÅÎÎÙÅ ÐÏÚÉÃÉÉ ÉÚ ÏÞÅÒÅÄÉ?',
+ 'Repeat' => '',
+ 'Report for' => 'ïÔÞÅÔ ÄÌÑ',
+ 'Reports' => 'ïÔÞÅÔÙ',
+ 'Req' => '',
+ 'Request for Quotation' => 'úÁÐÒÏÓ ÎÁ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'Request for Quotations' => 'úÁÐÒÏÓÙ ÎÁ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'Required by' => 'úÁÐÒÏÛÅÎ',
+ 'Retained Earnings' => 'îÅÒÁÓÐÒÅÄÅÌÅÎÎÁÑ ÐÒÉÂÙÌØ',
+ 'Role' => 'òÏÌØ',
+ 'S' => 'S',
+ 'SIC' => 'SIC',
+ 'SIC deleted!' => 'SIC ÕÄÁÌÅÎ',
+ 'SIC saved!' => 'SIC ÓÏÈÒÁÎÅÎ',
+ 'SKU' => 'SKU',
+ 'SSN' => 'SSN',
+ 'Sale' => 'ðÒÏÄÁÖÁ',
+ 'Sales' => 'ðÒÏÄÁÖÉ',
+ 'Sales Invoice' => 'æÁËÔÕÒÁ ËÌÉÅÎÔÁ',
+ 'Sales Invoice ' => 'æÁËÔÕÒÁ ËÌÉÅÎÔÁ',
+ 'Sales Invoice.' => 'æÁËÔÕÒÁ ËÌÉÅÎÔÁ',
+ 'Sales Invoice/AR Transaction Number' => '',
+ 'Sales Invoices' => 'æÁËÔÕÒÙ ËÌÉÅÎÔÁ',
+ 'Sales Order' => 'úÁËÁÚ ËÌÉÅÎÔÁ',
+ 'Sales Order Number' => 'îÏÍÅÒ ÚÁËÁÚÁ ËÌÉÅÎÔÁ',
+ 'Sales Orders' => 'úÁËÁÚÙ ËÌÉÅÎÔÁ',
+ 'Sales Quotation Number' => 'îÏÍÅÒ ÐÒÏÄÁÖÉ ÒÅÚÅÒ×Á',
+ 'Salesperson' => 'ðÒÏÄÁ×ÅÃ',
+ 'Saturday' => '',
+ 'Save' => 'óÏÈÒÁÎÉÔØ',
+ 'Save Pricelist' => 'óÏÈÒÁÎÉÔØ ÐÒÁÊÓÌÉÓÔ',
+ 'Save Schedule' => '',
+ 'Save as new' => 'óÏÈÒÁÎÉÔØ ËÁË ÎÏ×ÙÊ',
+ 'Save to File' => 'óÏÈÒÁÎÉÔØ × ÆÁÊÌ',
+ 'Saving' => '',
+ 'Schedule' => '',
+ 'Scheduled' => '',
+ 'Screen' => 'üËÒÁÎ',
+ 'Search' => 'ðÏÉÓË',
+ 'Select' => '÷ÙÂÒÁÔØ',
+ 'Select Customer' => '',
+ 'Select Vendor' => '',
+ 'Select a Printer!' => '',
+ 'Select a printer!' => '',
+ 'Select all' => '÷ÙÂÒÁÔØ ×ÓÅ',
+ 'Select from one of the items below' => '÷ÙÂÅÒÉÔÅ ÏÄÎÕ ÉÚ ÐÏÚÉÃÉÊ ÎÏÍÅÎËÌÁÔÕÒÙ ÉÚ ÓÐÉÓËÁ',
+ 'Select from one of the names below' => '÷ÙÂÅÒÉÔÅ ÏÄÎÏ ÉÚ ÎÁÉÍÅÎÏ×ÁÎÉÊ ÉÚ ÓÐÉÓËÁ',
+ 'Select from one of the projects below' => '÷ÙÂÅÒÉÔÅ ÏÄÉÎ ÉÚ ÐÒÏÅËÔÏ× ÉÚ ÓÐÉÓËÁ',
+ 'Select items' => '',
+ 'Select payment' => '÷ÙÂÅÒÉÔÅ ÏÐÌÁÔÕ',
+ 'Select postscript or PDF!' => '÷ÙÂÅÒÉÔÅ postscript ÉÌÉ PDF!',
+ 'Select txt, postscript or PDF!' => '÷ÙÂÅÒÉÔÅ txt, postscript ÉÌÉ PDF!',
+ 'Sell' => 'ðÒÏÄÁÖÁ',
+ 'Sell Price' => 'ðÒÏÄÁÖÎÁÑ ÃÅÎÁ',
+ 'Send by E-Mail' => 'ïÔÐÒÁ×ÉÔØ ÐÏ E-Mail',
+ 'Sending' => '',
+ 'Sep' => 'ÓÅÎ',
+ 'September' => 'ÓÅÎÔÑÂÒØ',
+ 'Serial No.' => 'óÅÒÉÊÎÙÊ ÎÏÍ.',
+ 'Serial Number' => 'óÅÒÉÊÎÙÊ ÎÏÍÅÒ',
+ 'Service' => 'õÓÌÕÇÁ',
+ 'Service Code' => '',
+ 'Service/Labor Code' => '',
+ 'Services' => 'õÓÌÕÇÉ',
+ 'Session Timeout' => '÷ÒÅÍÑ ÚÁÄÅÒÖËÉ ÓÅÓÓÉÉ',
+ 'Session expired!' => 'ðÒÅ×ÙÛÅÎÏ ×ÒÅÍÑ ÚÁÄÅÒÖËÉ ÓÅÓÓÉÉ',
+ 'Setup Templates' => 'õÓÔÁÎÏ×ÉÔØ ÛÁÂÌÏÎÙ',
+ 'Ship' => 'äÏÓÔÁ×ÉÔØ',
+ 'Ship Merchandise' => 'ðÏÇÒÕÚÉÔØ ÔÏ×ÁÒÙ',
+ 'Ship to' => 'ÄÏÓÔÁ×ÉÔØ ÄÌÑ',
+ 'Ship via' => 'ÄÏÓÔÁ×ÉÔØ ÞÅÒÅÚ',
+ 'Shipping' => 'äÏÓÔÁ×ËÁ',
+ 'Shipping Address' => 'áÄÒÅÓ ÄÏÓÔÁ×ËÉ',
+ 'Shipping Date' => 'äÁÔÁ ÄÏÓÔÁ×ËÉ',
+ 'Shipping Date missing!' => 'ðÒÏÐÕÝÅÎÁ ÄÁÔÁ ÄÏÓÔÁ×ËÉ',
+ 'Shipping Point' => 'íÅÓÔÏ ÄÏÓÔÁ×ËÉ',
+ 'Short' => 'ëÒÁÔËÏÓÒÏÞÎÙÊ',
+ 'Signature' => 'ðÏÄÐÉÓØ',
+ 'Source' => 'éÓÔÏÞÎÉË',
+ 'Spoolfile' => 'æÁÊÌ ÏÞÅÒÅÄÉ ÐÅÞÁÔÉ',
+ 'Standard' => 'óÔÁÎÄÁÒÔÎÙÅ',
+ 'Standard Industrial Codes' => 'óÔÁÎÄÁÒÔÎÙÊ ÐÒÏÍÙÛÌÅÎÎÙÊ ËÏÄ',
+ 'Startdate' => 'îÁÞÁÌØÎÁÑ ÄÁÔÁ',
+ 'State' => 'óÏÓÔÏÑÎÉÅ',
+ 'State/Province' => 'ûÔÁÔ/ðÒÏ×ÉÎÃÉÑ',
+ 'Statement' => '÷ÅÄÏÍÏÓÔØ',
+ 'Statement Balance' => 'âÁÌÁÎÓÏ×ÁÑ ×ÅÄÏÍÏÓÔØ',
+ 'Statement sent to' => '÷ÅÄÏÍÏÓÔØ ÏÔÐÒÁ×ÌÅÎÁ ÄÌÑ',
+ 'Statements sent to printer!' => '÷ÅÄÏÍÏÓÔØ ÏÔÐÒÁ×ÌÅÎÁ ÎÁ ÐÒÉÎÔÅÒ!',
+ 'Stock' => 'óÆÏÒÍÉÒÏ×ÁÔØ',
+ 'Stock Assembly' => 'óÆÏÒÍÉÒÏ×ÁÔØ ËÏÍÐÌÅËÔ',
+ 'Stocking Date' => '',
+ 'Stylesheet' => 'ïÆÏÒÍÌÅÎÉÅ',
+ 'Sub-contract GIFI' => 'ðÅÒÅÄÏ×ÅÒÅÎÎÙÊ GIFI',
+ 'Subject' => 'ôÅÍÁ',
+ 'Subtotal' => 'éÔÏÇÏ ÐÏ ÒÁÚÄÅÌÕ',
+ 'Summary' => 'óÕÍÍÁÒÎÏ',
+ 'Sunday' => '',
+ 'Supervisor' => 'ëÏÎÔÒÏÌÅÒ',
+ 'System' => 'óÉÓÔÅÍÁ',
+ 'System Defaults' => 'îÁÓÔÒÏÊËÉ ÓÉÓÔÅÍÙ ÐÏÕÍÏÌÞÁÎÉÉ.',
+ 'Tax' => 'îÁÌÏÇ',
+ 'Tax Accounts' => 'îÁÌÏÇÏ×ÙÅ ÓÞÅÔÁ',
+ 'Tax Included' => 'îÁÌÏÇÉ ×ËÌÀÞÅÎÙ × ÓÕÍÍÕ',
+ 'Tax Number' => 'ëÏÄ ÎÁÌÏÇÁ',
+ 'Tax Number / SSN' => 'ëÏÄ ÎÁÌÏÇÁ/SSN',
+ 'Tax collected' => 'óÏÂÒÁÎÎÙÅ ÎÁÌÏÇÉ',
+ 'Tax paid' => 'ïÐÌÁÞÅÎÎÙÅ ÎÁÌÏÇÉ',
+ 'Taxable' => 'ðÏÄÌÅÖÉÔ ÎÁÌÏÇÏÏÂÌÏÖÅÎÉÀ',
+ 'Template saved!' => 'ûÁÂÌÏÎ ÓÏÈÒÁÎÅÎ!',
+ 'Templates' => 'ûÁÂÌÏÎÙ',
+ 'Terms' => 'óÒÏË ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÑ',
+ 'Text' => '',
+ 'Text Templates' => 'ûÁÂÌÏÎÙ TXT',
+ 'The following Datasets are not in use and can be deleted' => 'óÄÅÄÕÀÝÉÅ ÂÁÚÙ ÄÁÎÎÙÈ ÎÅ ÉÓÐÏÌØÚÕÀÔÓÑ É ÍÏÇÕÔ ÂÙÔØ ÕÄÁÌÅÎÙ',
+ 'The following Datasets need to be updated' => 'óÌÅÄÕÀÝÉÅ ÂÁÚÙ ÄÁÎÎÙÈ ÎÅÏÂÈÏÄÉÍÏ ÏÂÎÏ×ÉÔØ',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'ÜÔÏ ÐÒÅÄ×ÁÒÉÔÅÌØÎÁÑ ÐÒÏ×ÅÒËÁ ÓÕÝÅÓÔ×ÕÀÝÉÈ ÉÓÔÏÞÎÉËÏ×. ÷ ÜÔÏÍ ÓÏÓÔÏÑÎÉÉ ÎÉ ÞÔÏ ÎÅ ÂÕÄÅÔ ÓÏÚÄÁÎÏ É ÕÄÁÌÅÎÏ!',
+ 'Thursday' => '',
+ 'Till' => 'ÄÏ',
+ 'Time In' => '',
+ 'Time Out' => '',
+ 'Timecard' => '',
+ 'Timecard deleted!' => '',
+ 'Timecard saved!' => '',
+ 'Timecards' => '',
+ 'Times' => '',
+ 'To' => 'ÐÏ',
+ 'To Warehouse' => '',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'äÌÑ ÄÏÂÁ×ÌÅÎÉÑ ÐÏÌØÚÏ×ÁÔÅÌÑ × ÇÒÕÐÐÕ, ÏÔÒÅÄÁËÔÉÒÕÊÔÅ ÅÇÏ ÉÍÑ (ÌÏÇÉÎ) É ÓÏÈÒÁÎÉÔÅ. äÌÑ ÓÏÚÄÁÎÉÑ ÎÏ×ÏÇÏ ÐÏÌØÚÏ×ÁÔÅÌÑ Ó ÔÅÍÉ ÖÅ ÎÁÓÔÒÏÊËÁÍÉ - ÓÏÈÒÁÎÉÔÅ Ó ÎÏ×ÙÍ ÉÍÅÎÅÍ ÐÏÌØÚÏ×ÁÔÅÌÑ.',
+ 'Top Level' => '÷ÅÒÈ',
+ 'Total' => '÷ÓÅÇÏ',
+ 'Tracking Items' => '',
+ 'Trade Discount' => 'ôÏÒÇÏ×ÁÑ ÓËÉÄËÁ',
+ 'Transaction' => 'ðÒÏ×ÏÄËÁ',
+ 'Transaction Date missing!' => 'ðÒÏÐÕÝÅÎÁ äÁÔÁ ÐÒÏ×ÏÄËÉ!',
+ 'Transaction Dates' => '',
+ 'Transaction deleted!' => 'ðÒÏ×ÏÄËÁ ÕÄÁÌÅÎÁ!',
+ 'Transaction posted!' => 'ðÒÏ×ÏÄËÁ ÓÏÈÒÁÎÅÎÁ!',
+ 'Transaction reversal enforced for all dates' => 'ðÒÏ×ÏÄËÉ ÐÅÒÅÓÞÉÔÁÎÙ ÐÏÌÎÏÓÔØÀ',
+ 'Transaction reversal enforced up to' => 'ðÒÏ×ÏÄËÉ ÐÅÒÅÓÞÉÔÁÎÙ ÄÏ',
+ 'Transactions' => 'ðÒÏ×ÏÄËÉ',
+ 'Transfer' => 'ðÅÒÅÍÅÝÅÎÉÅ',
+ 'Transfer Inventory' => 'ðÅÒÅÍÅÝÅÎÉÅ ÉÎ×ÅÎÔÁÒÑ',
+ 'Transfer from' => '',
+ 'Transfer to' => 'ðÅÒÅÍÅÓÔÉÔØ Ë',
+ 'Translation' => 'ðÅÒÅ×ÏÄ',
+ 'Translation deleted!' => 'ðÅÒÅ×ÏÄ ÕÄÁÌÅÎ!',
+ 'Translation not on file!' => 'îÅÔ ÐÅÒÅ×ÏÄÁ Ó ÓÐÉÓËÅ!',
+ 'Translations' => 'ðÅÒÅ×ÏÄÙ',
+ 'Translations saved!' => 'ðÅÒÅ×ÏÄÙ ÓÏÈÒÁÎÅÎÙ!',
+ 'Trial Balance' => 'ðÒÅÄ×ÁÒÉÔÅÌØÎÙÊ ÂÁÌÁÎÓ',
+ 'Tuesday' => '',
+ 'Type of Business' => 'ôÉÐ ÂÉÚÎÅÓÁ',
+ 'Unit' => 'åÄÉÎÉÃÁ',
+ 'Unit of measure' => 'åÄÉÎÉÃÁ ÉÚÍÅÒÅÎÉÑ',
+ 'Unlock System' => 'òÁÚÂÌÏËÉÒÏ×ÁÔØ ÓÉÓÔÅÍÕ',
+ 'Update' => 'ïÂÎÏ×ÉÔØ',
+ 'Update Dataset' => 'ïÂÎÏ×ÉÔØ ÂÁÚÕ ÄÁÎÎÙÈ',
+ 'Updated' => 'ïÂÎÏ×ÌÅÎÏ',
+ 'Upgrading to Version' => 'ïÂÎÏ×ÌÅÎÉÅ ÄÏ ×ÅÒÓÉÉ',
+ 'Use Templates' => 'éÓÐÏÌØÚÏ×ÁÔØ ÛÁÂÌÏÎÙ',
+ 'User' => 'óÏÔÒÕÄÎÉË',
+ 'User deleted!' => 'óÏÔÒÕÄÎÉË ÕÄÁÌ£Î!',
+ 'User saved!' => 'óÏÔÒÕÄÎÉË ÓÏÈÒÁÎÅÎ!',
+ 'Valid until' => 'äÅÊÓÔ×ÉÔÅÌØÎÏ ÄÏ',
+ 'Vendor' => 'ðÏÓÔÁ×ÝÉË',
+ 'Vendor History' => 'éÓÔÏÒÉÑ',
+ 'Vendor Invoice' => 'æÁËÔÕÒÁ ÐÏÓÔÁ×ÝÉËÁ',
+ 'Vendor Invoice ' => 'æÁËÔÕÒÁ ÐÏÓÔÁ×ÝÉËÁ',
+ 'Vendor Invoice.' => 'æÁËÔÕÒÁ ÐÏÓÔÁ×ÝÉËÁ.',
+ 'Vendor Invoice/AP Transaction Number' => '',
+ 'Vendor Invoices' => 'æÁËÔÕÒÙ ÐÏÓÔÁ×ÝÉËÁ',
+ 'Vendor Number' => 'ëÏÄ ÐÏÓÔÁ×ÝÉËÁ',
+ 'Vendor deleted!' => 'ðÏÓÔÁ×ÝÉË ÕÄÁÌÅÎ!',
+ 'Vendor missing!' => 'ðÒÏÐÕÝÅÎ ÐÏÓÔÁ×ÝÉË!',
+ 'Vendor not on file!' => 'ðÏÓÔÁ×ÝÉËÁ ÎÅÔ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Vendor saved!' => 'ðÏÓÔÁ×ÝÉË ÓÏÈÒÁÎÅÎ!',
+ 'Vendors' => 'ðÏÓÔÁ×ÝÉËÉ',
+ 'Version' => '÷ÅÒÓÉÑ',
+ 'Warehouse' => 'óËÌÁÄ',
+ 'Warehouse deleted!' => 'óËÌÁÄ ÕÄÁÌÅÎ!',
+ 'Warehouse saved!' => 'óËÌÁÄ ÓÏÈÒÁÎÅÎ!',
+ 'Warehouses' => 'óËÌÁÄÙ',
+ 'Warning!' => '÷ÎÉÍÁÎÉÅ!',
+ 'Wednesday' => '',
+ 'Week' => '',
+ 'Week(s)' => '',
+ 'Weeks' => '',
+ 'Weight' => '÷ÅÓ',
+ 'Weight Unit' => 'åÄÉÎÉÃÁ ×ÅÓÁ',
+ 'What type of item is this?' => 'ëÁÏÊ ÜÔÏ ÔÉÐ ÎÏÍÅËÌÁÔÕÒÙ?',
+ 'Work Order' => 'òÁÂÏÞÉÊ ÚÁËÁÚ',
+ 'Work Orders' => 'òÁÂÏÞÉÅ ÚÁËÁÚÙ',
+ 'Work Phone' => 'òÁÂÏÞÉÊ ÔÅÌÅÆÏÎ',
+ 'Year' => 'çÏÄ',
+ 'Year(s)' => '',
+ 'Yearend' => 'úÁ×ÅÒÛÅÎÉÅ ÇÏÄÁ',
+ 'Yearend date missing!' => 'ðÒÏÐÕÝÅÎÁ ÄÁÔÁ ÚÁ×ÅÒÛÅÎÉÑ ÇÏÄÁ!',
+ 'Yearend posted!' => 'úÁ×ÅÒÛÅÎÉÅ ÇÏÄÁ ×ÙÐÏÌÎÅÎÏ!',
+ 'Yearend posting failed!' => 'ïÛÉÂËÁ ÚÁ×ÅÒÛÅÎÉÅ ÇÏÄÁ!',
+ 'Years' => '',
+ 'Yes' => 'äÁ',
+ 'You are logged out' => '÷Ù ×ÙÛÌÉ ÉÚ ÓÉÓÔÅÍÙ',
+ 'You are posting an existing transaction!' => '',
+ 'You are printing and posting an existing transaction!' => '',
+ 'You are printing and saving an existing order' => '',
+ 'You are printing and saving an existing quotation' => '',
+ 'You are printing and saving an existing transaction!' => '',
+ 'You are saving an existing order' => '',
+ 'You are saving an existing quotation' => '',
+ 'You are saving an existing transaction!' => '',
+ 'You did not enter a name!' => '÷Ù ÎÅ ××ÅÌÉ (ÉÍÑ)ÎÁÉÍÅÎÏ×ÁÎÉÅ!',
+ 'You must enter a host and port for local and remote connections!' => '÷Ù ÄÏÌÖÎÙ ÚÁÐÏÌÎÉÔØ ÐÏÌÅ ÓÅÒ×ÅÒÁ É ÐÏÒÔÁ ÄÌÑ ÌÏËÁÌØÎÏÇÏ É ÕÄÁÌ£ÎÎÏÇÏ ÓÏÅÄÉÎÅÎÉÊ!',
+ 'Zip/Postal Code' => 'éÎÄÅËÓ',
+ 'account cannot be set to any other type of account' => 'ÓÞÅÔÕ ÎÅ ÍÏÖÅÔ ÂÙÔØ ÐÒÉÓ×ÏÅÎ ÄÒÕÇÏÊ ÔÉÐ',
+ 'as at' => 'ËÁË ×',
+ 'days' => 'ÄÎÅÊ',
+ 'does not exist' => 'ÎÅ ÓÕÝÅÓÔ×ÕÅÔ!',
+ 'done' => '×ÙÐÏÌÎÅÎÏ',
+ 'ea' => 'ÛÔ.',
+ 'failed' => '',
+ 'for' => '',
+ 'for Period' => 'ÚÁ ÐÅÒÉÏÄ',
+ 'is already a member!' => 'ÕÖÅ ÚÁÒÅÇÉÓÔÒÉÒÏ×ÁÎ',
+ 'localhost' => 'localhost',
+ 'locked!' => 'ÚÁÂÌÏËÉÒÏ×ÁÎÁ!',
+ 'partsgroup' => '',
+ 'posted!' => 'ÏÔÐÒÁ×ÌÅÎÏ',
+ 'sent' => 'ÏÔÐÒÁ×ÌÅÎÏ',
+ 'successfully created!' => 'ÕÓÐÅÛÎÏ ÓÏÚÄÁÎÁ!',
+ 'successfully deleted!' => 'ÕÓÐÅÛÎÏ ÕÄÁÌÅÎÁ!',
+ 'time(s)' => '',
+ 'unexpected error!' => '',
+ 'website' => 'ÓÁÊÔ WWW',
+};
+
+1;
diff --git a/locale/ru/am b/locale/ru/am
new file mode 100755
index 00000000..d2f64879
--- /dev/null
+++ b/locale/ru/am
@@ -0,0 +1,287 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'AP' => 'ðÏÓÔÕÐÌÅÎÉÑ',
+ 'AR' => 'ðÒÏÄÁÖÉ',
+ 'About' => 'ï ÐÒÏÇÒÁÍÍÅ',
+ 'Account' => 'óÞÅÔ',
+ 'Account Number' => 'ëÏÄ ÓÞÅÔÁ',
+ 'Account Number missing!' => 'îÅ ÕËÁÚÁÎ ÎÏÍÅÒ ÓÞÅÔÁ!',
+ 'Account Type' => 'ôÉÐ ÓÞÅÔÁ',
+ 'Account Type missing!' => 'îÅ ÕËÁÚÁÎ ÔÉÐ ÓÞÅÔÁ!',
+ 'Account deleted!' => 'óÞÅÔ ÕÄÁÌÅÎ',
+ 'Account does not exist!' => 'óÞÅÔ ÎÅ ÓÕÝÅÓÔ×ÕÅÔ!',
+ 'Account saved!' => 'óÞÅÔ ÚÁÐÉÓÁÎ',
+ 'Accounting Menu' => 'âÕÈÇÁÌÔÅÒÓËÏÅ ÍÅÎÀ',
+ 'Accrual' => 'îÁËÏÐÌÅÎÉÅ',
+ 'Activate Audit trail' => 'áËÔÉ×ÉÒÏ×ÁÔØ ÐÒÏÂÎÕÀ ÐÒÏ×ÅÒËÕ ÂÁÌÌÁÎÓÁ',
+ 'Add Account' => 'îÏ×ÙÊ ÓÞÅÔ',
+ 'Add Business' => 'îÏ×ÙÊ ÂÉÚÎÅÓ',
+ 'Add Department' => 'îÏ×ÙÊ ÏÔÄÅÌ',
+ 'Add GIFI' => 'îÏ×ÙÊ GIFI',
+ 'Add Language' => 'îÏ×ÙÊ ÑÚÙË',
+ 'Add SIC' => 'îÏ×ÙÊ SIC',
+ 'Add Warehouse' => 'îÏ×ÙÊ ÓËÌÁÄ',
+ 'Address' => 'áÄÒÅÓ',
+ 'Amount' => 'óÕÍÍÁ',
+ 'Asset' => 'áËÔÉ×',
+ 'Audit Control' => 'ëÏÎÔÒÏÌØ',
+ 'Audit trail disabled' => 'ðÒÏÂÎÁÑ ÐÒÏ×ÅÒËÁ ÂÁÌÌÁÎÓÁ ÚÁÂÌÏËÉÒÏ×ÁÎÁ',
+ 'Audit trail enabled' => 'ðÒÏÂÎÁÑ ÐÒÏ×ÅÒËÁ ÂÁÌÌÁÎÓÁ ÄÏÓÔÕÐÎÁ',
+ 'Audit trail removed up to' => 'ðÒÏÂÎÁÑ ÐÒÏ×ÅÒËÁ ÂÁÌÌÁÎÓÁ ÏÔÍÅÎÅÎÁ ÄÏ',
+ 'Backup sent to' => 'òÅÚÅÒ×ÎÁÑ ËÏÐÉÑ ÏÔÏÓÌÁÎÁ ÎÁ',
+ 'Bin List' => 'óÐÉÓÏË Bin',
+ 'Books are open' => 'ëÎÉÇÁ ÏÔËÒÙÔÁ',
+ 'Business Number' => 'âÉÚÎÅÓ-ËÏÄ',
+ 'Business deleted!' => 'âÉÚÎÅÓ ÕÄÁÌÅÎ',
+ 'Business saved!' => 'âÉÚÎÅÓ ÓÏÈÒÁÎÅÎ',
+ 'COGS' => 'COGS',
+ 'Cannot delete account!' => 'îÅ×ÏÚÍÏÖÎÏ ÕÄÁÌÉÔØ ÓÞÅÔ!',
+ 'Cannot delete default account!' => 'îÅ×ÏÚÍÏÖÎÏ ÕÄÁÌÉÔØ ÏÓÎÏ×ÎÏÊ ÓÞÅÔ!',
+ 'Cannot save account!' => 'îÅ×ÏÚÍÏÖÎÏ ÓÏÈÒÁÎÉÔØ ÓÞÅÔ!',
+ 'Cannot save defaults!' => 'îÅ×ÏÚÍÏÖÎÏ ÓÏÈÒÁÎÉÔØ ÎÁÓÔÒÏÊËÉ ÐÏ ÕÍÏÌÞÁÎÉÉ!',
+ 'Cannot save preferences!' => 'îÅ×ÏÚÍÏÖÎÏ ÓÏÈÒÁÎÉÔØ ÎÁÓÔÒÏÊËÉ!',
+ 'Cannot set account for more than one of AR, AP or IC' => 'îÅ×ÏÚÍÏÖÎÏ ÕÓÔÁÎÏ×ÉÔØ × ÓÞÅÔÅ ÂÏÌÅÅ ÞÅÍ ÏÄÎÏ ÚÎÁÞÅÎÉÅ ÉÚ AR, AP ÉÌÉ IC',
+ 'Cannot set multiple options for' => 'îÅ×ÏÚÍÏÖÎÏ ÕÓÔÁÎÏ×ÉÔØ ÍÎÏÇÏ ÏÐÃÉÊ ÄÌÑ',
+ 'Cash' => 'ëÁÓÓÁ',
+ 'Chart of Accounts' => 'ðÌÁÎ ÓÞÅÔÏ×',
+ 'Close Books up to' => 'úÁËÒÙÔØ ËÎÉÇÕ ÐÏ',
+ 'Code' => 'ëÏÄ',
+ 'Code missing!' => 'ðÒÏÐÕÝÅÎ ËÏÄ',
+ 'Company' => 'ïÒÇÁÎÉÚÁÃÉÑ',
+ 'Confirm' => 'ÐÏÄÔ×ÅÒÄÉÔØ',
+ 'Confirm!' => 'ðÏÄÔ×ÅÒÄÉÔØ!',
+ 'Continue' => 'ðÒÏÄÏÌÖÉÔØ',
+ 'Contra' => 'ðÒÏÔÉ×',
+ 'Copy to COA' => 'ëÏÐÉÒÏ×ÁÔØ × çðó',
+ 'Cost Center' => 'õÞÅÔÎÙÊ ÏÔÄÅÌ',
+ 'Credit' => 'ëÒÅÄÉÔ',
+ 'Customer Number' => 'ëÏÄ ËÌÉÅÎÔÁ',
+ 'Database Host' => 'óÅÒ×ÅÒ ÂÁÚÙ ÄÁÎÎÙÈ',
+ 'Dataset' => 'âÁÚÁ ÄÁÎÎÙÈ',
+ 'Date Format' => 'æÏÒÍÁÔ ÄÁÔÙ',
+ 'Debit' => 'äÅÂÅÔ',
+ 'Defaults saved!' => 'îÁÓÔÒÏÊËÉ ÐÏ ÕÍÏÌÞÁÎÉÉ ÓÏÈÒÁÎÅÎÙ!',
+ 'Delete' => 'õÄÁÌÉÔØ',
+ 'Delete Account' => 'õÄÁÌÍÔØ ÓÞÅÔ',
+ 'Department deleted!' => 'ïÔÄÅÌ ÕÄÁÌÅÎ!',
+ 'Department saved!' => 'ïÔÄÅÌ ÓÏÈÒÁÎÅÎ!',
+ 'Departments' => 'ïÔÄÅÌÙ',
+ 'Description' => 'ïÐÉÓÁÎÉÅ',
+ 'Description missing!' => 'ðÒÏ×ÕÝÅÎÏ ïÐÉÓÁÎÉÅ!',
+ 'Discount' => 'óËÉÄËÁ',
+ 'Dropdown Limit' => 'ïÇÒÁÎÉÞÅÎÉÅ ÐÁÄÁÀÝÅÇÏ ÍÅÎÀ',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'îÅ ÕËÁÚÁÎ ÁÄÒÅÓ E-mail!',
+ 'Edit' => 'òÅÄÁËÔÉÒÏ×ÁÔØ',
+ 'Edit Account' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ÓÞÅÔ',
+ 'Edit Business' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ÂÉÚÎÅÓ',
+ 'Edit Department' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ïÔÄÅÌ',
+ 'Edit GIFI' => 'òÅÄÁËÔÉÒÏ×ÁÔØ GIFI',
+ 'Edit Language' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ñÚÙË',
+ 'Edit Preferences for' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ÎÁÓÔÒÏÊËÉ ÄÌÑ',
+ 'Edit SIC' => 'òÅÄÁËÔÉÒÏ×ÁÔØ SIC',
+ 'Edit Template' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ûÁÂÌÏÎ',
+ 'Edit Warehouse' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ÓËÌÁÄ',
+ 'Employee Number' => 'ëÏÄ ÓÏÔÒÕÄÎÉËÁ',
+ 'Enforce transaction reversal for all dates' => 'ðÅÒÅÓÞÉÔÁÄØ ÐÒÏ×ÏÄËÉ ÐÏÌÎÏÓÔØÀ',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'äÌÑ ÏÂÏÚÎÁÞÅÎÉÑ ×ÁÌÀÔÙ ××ÅÄÉÔÅ ÄÏ ÔÒÅÈ ÂÕË×, ÒÁÚÄÅÌ£ÎÎÙÈ Ä×ÏÅÔÏÞÉÅÍ, (ÎÁÐÒ. CAD:USD:EUR)',
+ 'Equity' => 'ëÁÐÉÔÁÌ',
+ 'Expense' => 'òÁÓÈÏÄ',
+ 'Expense/Asset' => 'òÁÓÈÏÄ/ÁËÔÉ×Ù',
+ 'Fax' => 'æÁËÓ',
+ 'Foreign Exchange Gain' => 'ëÕÒÓÏ×ÁÑ ÐÒÉÂÙÌØ',
+ 'Foreign Exchange Loss' => 'ëÕÒÓÏ×ÙÅ ÐÏÔÅÒÉ',
+ 'GIFI' => 'GIFI',
+ 'GIFI deleted!' => 'GIFI ÕÄÁÌÅÎ',
+ 'GIFI missing!' => 'ðÒÏÐÕÝÅÎ GIFI',
+ 'GIFI saved!' => 'GIFI ÓÏÈÒÁÎÅÎ!',
+ 'GL Transaction' => 'ðÒÏ×ÏÄËÉ çÌÁ×ÎÏÊ ËÎÉÇÉ',
+ 'Heading' => 'òÁÚÄÅÌ',
+ 'ID' => 'éÄÅÎÔÉÆÉËÁÔÏÒ',
+ 'Include in drop-down menus' => '÷ËÌÀÞÉÔØ × ÐÁÄÁÀÝÅÅ ÍÅÎÀ',
+ 'Income' => 'ðÏÓÔÕÐÌÅÎÉÅ',
+ 'Inventory' => 'éÎ×ÅÎÔÁÒÎÙÊ',
+ 'Invoice' => 'óÞÅÔ-ÆÁËÔÕÒÁ',
+ 'Is this a summary account to record' => 'üÔÏ ÉÔÏÇÏ×ÙÊ ÓÞÅÔ ÄÌÑ ÚÁÐÉÓÉ',
+ 'Language' => 'ñÚÙË',
+ 'Language deleted!' => 'ñÚÙË ÕÄÁÌÅÎ',
+ 'Language saved!' => 'ñÚÙË ÓÏÈÒÁÎÅÎ',
+ 'Languages' => 'ñÚÙËÉ',
+ 'Last Numbers & Default Accounts' => 'ðÏÓÌÅÄÎÉÅ ÎÏÍÅÒÁ ÄÏËÕÍÅÎÔÏ× É ÓÞÅÔÁ ÐÏ-ÕÍÏÌÞÁÎÉÉ',
+ 'Liability' => 'ðÁÓÓÉ×',
+ 'Licensed to' => 'ìÉÃÅÎÚÉÅÊ ÏÂÌÁÄÁÅÔ:',
+ 'Link' => 'óÓÙÌËÁ',
+ 'Menu Width' => 'ûÉÒÉÎÁ ÍÅÎÀ',
+ 'Method' => 'íÅÔÏÄ',
+ 'Month' => 'ÍÅÓÑÃ',
+ 'Name' => 'îÁÉÍÅÎÏ×ÁÎÉÅ',
+ 'No' => 'îÅÔ',
+ 'No email address for' => 'îÅÔ ÁÄÒÅÓÁ e-mail ÄÌÑ',
+ 'Number' => 'ËÏÄ',
+ 'Number Format' => 'þÉÓÌÏ×ÏÊ ÆÏÒÍÁÔ',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'õÐÁËÏ×ÏÞÎÙÊ ÓÐÉÓÏË',
+ 'Part Number' => 'ëÏÄ ÔÏ×ÁÒÁ',
+ 'Password' => 'ðÁÒÏÌØ',
+ 'Password does not match!' => 'îÅ×ÅÒÎÙÊ ÐÁÒÏÌØ!',
+ 'Payables' => 'ðÏÄÌÅÖÁÝÉÊ ÏÐÌÁÔÅ',
+ 'Payment' => 'ïÐÌÁÔÁ',
+ 'Phone' => 'ôÅÌ.',
+ 'Pick List' => 'óÐÉÓÏË ÄÌÑ ×ÙÂÏÒÁ',
+ 'Postscript' => 'Postscript',
+ 'Preferences saved!' => 'îÁÓÔÒÏÊËÉ ÓÏÈÒÁÎÅÎÙ!',
+ 'Print' => 'ðÅÞÁÔØ',
+ 'Printer' => 'ðÒÉÎÔÅÒ',
+ 'Profit Center' => 'ðÒÏÆÉÔ-ÃÅÎÔÒ',
+ 'Purchase Order' => 'úÁËÁÚ ÐÏÓÔÁ×ÝÉËÕ',
+ 'Purchase Order Number' => 'îÏÍÅÒ ÚÁËÁÚÁ ÐÏÓÔÁ×ÝÉËÕ',
+ 'Purchase Orders' => 'úÁËÁÚÙ ÐÏÓÔÁ×ÝÉËÕ',
+ 'RFQ Number' => 'îÏÍÅÒ ÚÁÐÒÏÓÁ ÎÁ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'Rate' => 'ëÕÒÓ',
+ 'Receivables' => 'ðÏÄÌÅÖÁÝÉÊ ÐÏÌÕÞÅÎÉÀ',
+ 'Reference' => 'óÓÙÌËÁ',
+ 'Remove Audit trail up to' => 'õÄÁÌÉÔØ ÐÒÏÂÎÕÀ ÐÒÏ×ÅÒËÕ ÂÁÌÌÁÎÓÁ ÄÏ',
+ 'Retained Earnings' => 'îÅÒÁÓÐÒÅÄÅÌÅÎÎÁÑ ÐÒÉÂÙÌØ',
+ 'SIC deleted!' => 'SIC ÕÄÁÌÅÎ',
+ 'SIC saved!' => 'SIC ÓÏÈÒÁÎÅÎ',
+ 'Sales Invoice' => 'æÁËÔÕÒÁ ËÌÉÅÎÔÁ',
+ 'Sales Order' => 'úÁËÁÚ ËÌÉÅÎÔÁ',
+ 'Sales Order Number' => 'îÏÍÅÒ ÚÁËÁÚÁ ËÌÉÅÎÔÁ',
+ 'Sales Orders' => 'úÁËÁÚÙ ËÌÉÅÎÔÁ',
+ 'Sales Quotation Number' => 'îÏÍÅÒ ÐÒÏÄÁÖÉ ÒÅÚÅÒ×Á',
+ 'Save' => 'óÏÈÒÁÎÉÔØ',
+ 'Save as new' => 'óÏÈÒÁÎÉÔØ ËÁË ÎÏ×ÙÊ',
+ 'Session Timeout' => '÷ÒÅÍÑ ÚÁÄÅÒÖËÉ ÓÅÓÓÉÉ',
+ 'Signature' => 'ðÏÄÐÉÓØ',
+ 'Standard Industrial Codes' => 'óÔÁÎÄÁÒÔÎÙÊ ÐÒÏÍÙÛÌÅÎÎÙÊ ËÏÄ',
+ 'Stylesheet' => 'ïÆÏÒÍÌÅÎÉÅ',
+ 'System Defaults' => 'îÁÓÔÒÏÊËÉ ÓÉÓÔÅÍÙ ÐÏÕÍÏÌÞÁÎÉÉ.',
+ 'Tax' => 'îÁÌÏÇ',
+ 'Template saved!' => 'ûÁÂÌÏÎ ÓÏÈÒÁÎÅÎ!',
+ 'Transaction' => 'ðÒÏ×ÏÄËÁ',
+ 'Transaction reversal enforced for all dates' => 'ðÒÏ×ÏÄËÉ ÐÅÒÅÓÞÉÔÁÎÙ ÐÏÌÎÏÓÔØÀ',
+ 'Transaction reversal enforced up to' => 'ðÒÏ×ÏÄËÉ ÐÅÒÅÓÞÉÔÁÎÙ ÄÏ',
+ 'Type of Business' => 'ôÉÐ ÂÉÚÎÅÓÁ',
+ 'Update' => 'ïÂÎÏ×ÉÔØ',
+ 'User' => 'óÏÔÒÕÄÎÉË',
+ 'Vendor Invoice' => 'æÁËÔÕÒÁ ÐÏÓÔÁ×ÝÉËÁ',
+ 'Vendor Number' => 'ëÏÄ ÐÏÓÔÁ×ÝÉËÁ',
+ 'Version' => '÷ÅÒÓÉÑ',
+ 'Warehouse deleted!' => 'óËÌÁÄ ÕÄÁÌÅÎ!',
+ 'Warehouse saved!' => 'óËÌÁÄ ÓÏÈÒÁÎÅÎ!',
+ 'Warehouses' => 'óËÌÁÄÙ',
+ 'Weight Unit' => 'åÄÉÎÉÃÁ ×ÅÓÁ',
+ 'Work Order' => 'òÁÂÏÞÉÊ ÚÁËÁÚ',
+ 'Year' => 'çÏÄ',
+ 'Yearend' => 'úÁ×ÅÒÛÅÎÉÅ ÇÏÄÁ',
+ 'Yearend date missing!' => 'ðÒÏÐÕÝÅÎÁ ÄÁÔÁ ÚÁ×ÅÒÛÅÎÉÑ ÇÏÄÁ!',
+ 'Yearend posted!' => 'úÁ×ÅÒÛÅÎÉÅ ÇÏÄÁ ×ÙÐÏÌÎÅÎÏ!',
+ 'Yearend posting failed!' => 'ïÛÉÂËÁ ÚÁ×ÅÒÛÅÎÉÅ ÇÏÄÁ!',
+ 'Yes' => 'äÁ',
+ 'account cannot be set to any other type of account' => 'ÓÞÅÔÕ ÎÅ ÍÏÖÅÔ ÂÙÔØ ÐÒÉÓ×ÏÅÎ ÄÒÕÇÏÊ ÔÉÐ',
+ 'done' => '×ÙÐÏÌÎÅÎÏ',
+ 'localhost' => 'localhost',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'îÏ×ÙÊ_ÓÞÅÔ' => 'add_account',
+ 'îÏ×ÙÊ_ÂÉÚÎÅÓ' => 'add_business',
+ 'îÏ×ÙÊ_ÏÔÄÅÌ' => 'add_department',
+ 'îÏ×ÙÊ_ÑÚÙË' => 'add_language',
+ 'îÏ×ÙÊ_sic' => 'add_sic',
+ 'îÏ×ÙÊ_ÓËÌÁÄ' => 'add_warehouse',
+ 'ðÒÏÄÏÌÖÉÔØ' => 'continue',
+ 'ëÏÐÉÒÏ×ÁÔØ_×_çðó' => 'copy_to_coa',
+ 'õÄÁÌÉÔØ' => 'delete',
+ 'òÅÄÁËÔÉÒÏ×ÁÔØ' => 'edit',
+ 'òÅÄÁËÔÉÒÏ×ÁÔØ_ÓÞÅÔ' => 'edit_account',
+ 'óÏÈÒÁÎÉÔØ' => 'save',
+ 'óÏÈÒÁÎÉÔØ_ËÁË_ÎÏ×ÙÊ' => 'save_as_new',
+ 'ïÂÎÏ×ÉÔØ' => 'update',
+};
+
+1;
+
diff --git a/locale/ru/ap b/locale/ru/ap
new file mode 100755
index 00000000..fdee675c
--- /dev/null
+++ b/locale/ru/ap
@@ -0,0 +1,212 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'AP Outstanding' => 'úÁÄÏÌÖÅÎÏÓÔØ ÐÏÓÔÁ×ÝÉËÏ×',
+ 'AP Transaction' => 'ðÒÏ×ÏÄËÁ ÚÁËÕÐËÉ',
+ 'AP Transactions' => 'ðÒÏ×ÏÄËÉ ÚÁËÕÐËÉ',
+ 'AR Outstanding' => 'úÁÄÏÌÖÅÎÏÓÔØ ËÌÉÅÎÔÏ×',
+ 'AR Transaction' => 'ðÒÏ×ÏÄËÁ ÐÒÏÄÁÖ',
+ 'AR Transactions' => 'ðÒÏ×ÏÄËÉ ÐÒÏÄÁÖ',
+ 'Account' => 'óÞÅÔ',
+ 'Accounting Menu' => 'âÕÈÇÁÌÔÅÒÓËÏÅ ÍÅÎÀ',
+ 'Add AP Transaction' => 'îÏ×ÁÑ ÐÒÏ×ÏÄËÁ ÐÏÓÔÕÐÌÅÎÉÊ',
+ 'Add AR Transaction' => 'îÏ×ÁÑ ÐÒÏ×ÏÄËÁ ÐÒÏÄÁÖ',
+ 'Address' => 'áÄÒÅÓ',
+ 'Amount' => 'óÕÍÍÁ',
+ 'Amount Due' => 'óÕÍÍÁ Ë ÐÏÌÕÞÅÎÉÀ',
+ 'Apr' => 'ÁÐÒ',
+ 'April' => 'ÁÐÒÅÌØ',
+ 'Are you sure you want to delete Transaction' => '÷Ù Õ×ÅÒÅÎÙ, ÓÔÏ ÈÏÔÉÔÅ ÕÄÁÌÉÔØ ÄÁÎÎÕÀ ÐÒÏ×ÏÄËÕ?',
+ 'Aug' => 'Á×Ç',
+ 'August' => 'Á×ÇÕÓÔ',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'îÅ×ÏÚÍÏÖÎÏ ÕÄÁÌÉÔØ ÐÒÏ×ÏÄËÕ!',
+ 'Cannot post payment for a closed period!' => 'îÅ×ÏÚÍÏÖÎÏ ÐÒÏ×ÅÓÔÉ ÏÐÌÁÔÕ ÄÌÑ ÚÁËÒÙÔÏÇÏ ÐÅÒÉÏÄÁ!',
+ 'Cannot post transaction for a closed period!' => 'îÅ×ÏÚÍÏÖÎÏ ÐÒÏ×ÅÓÔÉ ÐÒÏ×ÏÄËÕ × ÚÁËÒÙÔÏÍ ÐÅÒÉÏÄÅ!',
+ 'Cannot post transaction!' => 'îÅ×ÏÚÍÏÖÎÏ ÐÒÏ×ÅÓÔÉ ÐÒÏ×ÏÄËÕ!',
+ 'Cc' => 'Cc',
+ 'Check' => 'ðÒÏ×ÅÒÉÔØ',
+ 'Closed' => 'úÁËÒÙÔ',
+ 'Confirm!' => 'ðÏÄÔ×ÅÒÄÉÔØ!',
+ 'Continue' => 'ðÒÏÄÏÌÖÉÔØ',
+ 'Credit' => 'ëÒÅÄÉÔ',
+ 'Credit Limit' => 'ìÉÍÉÔ ËÒÅÄÉÔÁ',
+ 'Curr' => '÷ÁÌÀÔÁ',
+ 'Currency' => '÷ÁÌÀÔÁ',
+ 'Current' => 'ôÅËÕÝÉÊ',
+ 'Customer' => 'ëÌÉÅÎÔ',
+ 'Customer missing!' => 'ðÒÏÐÕÝÅÎ ËÌÉÅÎÔ!',
+ 'Customer not on file!' => 'ëÌÉÅÎÔ ÏÔÓÕÔÓÔ×ÕÅÔ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Date' => 'äÁÔÁ',
+ 'Date Paid' => 'äÁÔÁ ÏÐÌÁÔÙ',
+ 'Debit' => 'äÅÂÅÔ',
+ 'Dec' => 'ÄÅË',
+ 'December' => 'ÄÅËÁÂÒØ',
+ 'Delete' => 'õÄÁÌÉÔØ',
+ 'Department' => 'ïÔÄÅÌ',
+ 'Description' => 'ïÐÉÓÁÎÉÅ',
+ 'Detail' => 'äÅÔÁÌÉÚÉÒÏ×ÁÔØ',
+ 'Due Date' => 'ïÐÌÁÔÉÔØ ÄÏ',
+ 'Due Date missing!' => 'îÅ ÕËÁÚÁÎ ÓÒÏË ÏÐÌÁÔÙ!',
+ 'E-mail' => 'E-mail',
+ 'Edit AP Transaction' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ÐÒÏ×ÏÄËÕ ðÏÓÔÕÐÌÅÎÉÑ',
+ 'Edit AR Transaction' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ÐÒÏ×ÏÄËÕ ðÒÏÄÁÖ',
+ 'Employee' => 'óÏÔÒÕÄÎÉË',
+ 'Exch' => 'ëÕÒÓ',
+ 'Exchange Rate' => 'ëÕÒÓ ×ÁÌÀÔÙ',
+ 'Exchange rate for payment missing!' => 'ðÒÏÐÕÝÅÎ ËÕÒÓ ÏÐÌÁÔÙ!',
+ 'Exchange rate missing!' => 'ðÒÏÐÕÝÅÎ ËÕÒÓ!',
+ 'Feb' => 'ÆÅ×',
+ 'February' => 'ÆÅ×ÒÁÌØ',
+ 'From' => 'Ó',
+ 'ID' => 'éÄÅÎÔÉÆÉËÁÔÏÒ',
+ 'Include in Report' => '÷ËÌÀÞÉÔØ × ÏÔÞÅÔ',
+ 'Invoice' => 'óÞÅÔ-ÆÁËÔÕÒÁ',
+ 'Invoice Date' => 'äÁÔÁ ×ÙÓÔÁ×ÌÅÎÉÑ',
+ 'Invoice Date missing!' => 'îÅ ÕËÁÚÁÎÁ ÄÁÔÁ ×ÙÓÔÁ×ÌÅÎÉÑ ÓÞÅÔÁ-ÆÁËÔÕÒÙ',
+ 'Invoice Number' => 'îÏÍÅÒ ÓÞÅÔÁ-ÆÁËÔÕÒÙ',
+ 'Jan' => 'ÑÎ×',
+ 'January' => 'ÑÎ×ÁÒØ',
+ 'Jul' => 'ÉÀÌ',
+ 'July' => 'ÉÀÌØ',
+ 'Jun' => 'ÉÀÎ',
+ 'June' => 'ÉÀÎØ',
+ 'Manager' => 'íÅÎÅÄÖÅÒ',
+ 'Mar' => 'ÍÁÒÔ',
+ 'March' => 'ÍÁÒÔ',
+ 'May' => 'ÍÁÊ',
+ 'May ' => 'ÍÁÊ',
+ 'Memo' => 'ëÏÍÍÅÎÔÁÒÉÊ',
+ 'Message' => 'óÏÏÂÝÅÎÉÅ',
+ 'Month' => 'ÍÅÓÑÃ',
+ 'No.' => 'îÏÍ.',
+ 'Notes' => 'ëÏÍÍÅÎÔÁÒÉÉ',
+ 'Nothing to print!' => 'îÉÞÅÇÏ ÎÅ ÎÁÐÅÞÁÔÁÎÏ!',
+ 'Nov' => 'ÎÏÑ',
+ 'November' => 'ÎÏÑÂÒØ',
+ 'Number' => 'ËÏÄ',
+ 'Oct' => 'ÏËÔ',
+ 'October' => 'ÏËÔÑÂÒØ',
+ 'Open' => 'ïÔËÒÙÔØ',
+ 'Order' => 'úÁËÁÚ ËÌÉÅÎÔÁ',
+ 'Order Number' => 'îÏÍÅÒ ÚÁËÁÚÁ',
+ 'PDF' => 'PDF',
+ 'Paid' => 'ïÐÌÁÞÅÎÏ',
+ 'Payment date missing!' => 'ðÒÏÐÕÝÅÎÁ ÄÁÔÁ ÏÐÌÁÔÙ!',
+ 'Payments' => 'ïÐÌÁÔÙ',
+ 'Period' => 'ðÅÒÉÏÄ',
+ 'Post' => 'óÏÈÒÁÎÉÔØ',
+ 'Post as new' => 'óÏÈÒÁÎÉÔØ ËÁË ÎÏ×ÙÊ',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'ðÅÞÁÔØ',
+ 'Print and Post' => 'îÁÐÅÞÁÔÁÔØ É ÏÔÐÒÁ×ÉÔØ',
+ 'Printed' => 'îÁÐÅÞÁÔÁÎÏ',
+ 'Project' => 'ðÒÏÅËÔ',
+ 'Project not on file!' => 'ðÒÏÅËÔ ÏÔÓÕÔÓÔ×ÕÅÔ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Quarter' => 'ë×ÁÒÔÁÌ',
+ 'Receipt' => 'ðÏÌÕÞÅÎÉÅ',
+ 'Reference' => 'óÓÙÌËÁ',
+ 'Remaining' => 'ïÓÔÁÔÏË',
+ 'Sales Invoice.' => 'æÁËÔÕÒÁ ËÌÉÅÎÔÁ',
+ 'Salesperson' => 'ðÒÏÄÁ×ÅÃ',
+ 'Screen' => 'üËÒÁÎ',
+ 'Select from one of the names below' => '÷ÙÂÅÒÉÔÅ ÏÄÎÏ ÉÚ ÎÁÉÍÅÎÏ×ÁÎÉÊ ÉÚ ÓÐÉÓËÁ',
+ 'Select from one of the projects below' => '÷ÙÂÅÒÉÔÅ ÏÄÉÎ ÉÚ ÐÒÏÅËÔÏ× ÉÚ ÓÐÉÓËÁ',
+ 'Select payment' => '÷ÙÂÅÒÉÔÅ ÏÐÌÁÔÕ',
+ 'Select postscript or PDF!' => '÷ÙÂÅÒÉÔÅ postscript ÉÌÉ PDF!',
+ 'Sep' => 'ÓÅÎ',
+ 'September' => 'ÓÅÎÔÑÂÒØ',
+ 'Ship to' => 'ÄÏÓÔÁ×ÉÔØ ÄÌÑ',
+ 'Ship via' => 'ÄÏÓÔÁ×ÉÔØ ÞÅÒÅÚ',
+ 'Shipping Point' => 'íÅÓÔÏ ÄÏÓÔÁ×ËÉ',
+ 'Source' => 'éÓÔÏÞÎÉË',
+ 'Startdate' => 'îÁÞÁÌØÎÁÑ ÄÁÔÁ',
+ 'Subject' => 'ôÅÍÁ',
+ 'Subtotal' => 'éÔÏÇÏ ÐÏ ÒÁÚÄÅÌÕ',
+ 'Summary' => 'óÕÍÍÁÒÎÏ',
+ 'Tax' => 'îÁÌÏÇ',
+ 'Tax Included' => 'îÁÌÏÇÉ ×ËÌÀÞÅÎÙ × ÓÕÍÍÕ',
+ 'Till' => 'ÄÏ',
+ 'To' => 'ÐÏ',
+ 'Total' => '÷ÓÅÇÏ',
+ 'Transaction' => 'ðÒÏ×ÏÄËÁ',
+ 'Transaction deleted!' => 'ðÒÏ×ÏÄËÁ ÕÄÁÌÅÎÁ!',
+ 'Transaction posted!' => 'ðÒÏ×ÏÄËÁ ÓÏÈÒÁÎÅÎÁ!',
+ 'Update' => 'ïÂÎÏ×ÉÔØ',
+ 'Vendor' => 'ðÏÓÔÁ×ÝÉË',
+ 'Vendor Invoice.' => 'æÁËÔÕÒÁ ÐÏÓÔÁ×ÝÉËÁ.',
+ 'Vendor missing!' => 'ðÒÏÐÕÝÅÎ ÐÏÓÔÁ×ÝÉË!',
+ 'Vendor not on file!' => 'ðÏÓÔÁ×ÝÉËÁ ÎÅÔ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Warning!' => '÷ÎÉÍÁÎÉÅ!',
+ 'Year' => 'çÏÄ',
+ 'Yes' => 'äÁ',
+ 'sent' => 'ÏÔÐÒÁ×ÌÅÎÏ',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'ðÒÏ×ÏÄËÁ_ÚÁËÕÐËÉ' => 'ap_transaction',
+ 'ðÒÏ×ÏÄËÁ_ÐÒÏÄÁÖ' => 'ar_transaction',
+ 'ðÒÏÄÏÌÖÉÔØ' => 'continue',
+ 'õÄÁÌÉÔØ' => 'delete',
+ 'óÏÈÒÁÎÉÔØ' => 'post',
+ 'óÏÈÒÁÎÉÔØ_ËÁË_ÎÏ×ÙÊ' => 'post_as_new',
+ 'ðÅÞÁÔØ' => 'print',
+ 'îÁÐÅÞÁÔÁÔØ_É_ÏÔÐÒÁ×ÉÔØ' => 'print_and_post',
+ 'æÁËÔÕÒÁ_ËÌÉÅÎÔÁ' => 'sales_invoice_',
+ 'ÄÏÓÔÁ×ÉÔØ_ÄÌÑ' => 'ship_to',
+ 'ïÂÎÏ×ÉÔØ' => 'update',
+ 'æÁËÔÕÒÁ_ÐÏÓÔÁ×ÝÉËÁ_' => 'vendor_invoice_',
+ 'äÁ' => 'yes',
+};
+
+1;
+
diff --git a/locale/ru/ar b/locale/ru/ar
new file mode 100755
index 00000000..fdee675c
--- /dev/null
+++ b/locale/ru/ar
@@ -0,0 +1,212 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'AP Outstanding' => 'úÁÄÏÌÖÅÎÏÓÔØ ÐÏÓÔÁ×ÝÉËÏ×',
+ 'AP Transaction' => 'ðÒÏ×ÏÄËÁ ÚÁËÕÐËÉ',
+ 'AP Transactions' => 'ðÒÏ×ÏÄËÉ ÚÁËÕÐËÉ',
+ 'AR Outstanding' => 'úÁÄÏÌÖÅÎÏÓÔØ ËÌÉÅÎÔÏ×',
+ 'AR Transaction' => 'ðÒÏ×ÏÄËÁ ÐÒÏÄÁÖ',
+ 'AR Transactions' => 'ðÒÏ×ÏÄËÉ ÐÒÏÄÁÖ',
+ 'Account' => 'óÞÅÔ',
+ 'Accounting Menu' => 'âÕÈÇÁÌÔÅÒÓËÏÅ ÍÅÎÀ',
+ 'Add AP Transaction' => 'îÏ×ÁÑ ÐÒÏ×ÏÄËÁ ÐÏÓÔÕÐÌÅÎÉÊ',
+ 'Add AR Transaction' => 'îÏ×ÁÑ ÐÒÏ×ÏÄËÁ ÐÒÏÄÁÖ',
+ 'Address' => 'áÄÒÅÓ',
+ 'Amount' => 'óÕÍÍÁ',
+ 'Amount Due' => 'óÕÍÍÁ Ë ÐÏÌÕÞÅÎÉÀ',
+ 'Apr' => 'ÁÐÒ',
+ 'April' => 'ÁÐÒÅÌØ',
+ 'Are you sure you want to delete Transaction' => '÷Ù Õ×ÅÒÅÎÙ, ÓÔÏ ÈÏÔÉÔÅ ÕÄÁÌÉÔØ ÄÁÎÎÕÀ ÐÒÏ×ÏÄËÕ?',
+ 'Aug' => 'Á×Ç',
+ 'August' => 'Á×ÇÕÓÔ',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'îÅ×ÏÚÍÏÖÎÏ ÕÄÁÌÉÔØ ÐÒÏ×ÏÄËÕ!',
+ 'Cannot post payment for a closed period!' => 'îÅ×ÏÚÍÏÖÎÏ ÐÒÏ×ÅÓÔÉ ÏÐÌÁÔÕ ÄÌÑ ÚÁËÒÙÔÏÇÏ ÐÅÒÉÏÄÁ!',
+ 'Cannot post transaction for a closed period!' => 'îÅ×ÏÚÍÏÖÎÏ ÐÒÏ×ÅÓÔÉ ÐÒÏ×ÏÄËÕ × ÚÁËÒÙÔÏÍ ÐÅÒÉÏÄÅ!',
+ 'Cannot post transaction!' => 'îÅ×ÏÚÍÏÖÎÏ ÐÒÏ×ÅÓÔÉ ÐÒÏ×ÏÄËÕ!',
+ 'Cc' => 'Cc',
+ 'Check' => 'ðÒÏ×ÅÒÉÔØ',
+ 'Closed' => 'úÁËÒÙÔ',
+ 'Confirm!' => 'ðÏÄÔ×ÅÒÄÉÔØ!',
+ 'Continue' => 'ðÒÏÄÏÌÖÉÔØ',
+ 'Credit' => 'ëÒÅÄÉÔ',
+ 'Credit Limit' => 'ìÉÍÉÔ ËÒÅÄÉÔÁ',
+ 'Curr' => '÷ÁÌÀÔÁ',
+ 'Currency' => '÷ÁÌÀÔÁ',
+ 'Current' => 'ôÅËÕÝÉÊ',
+ 'Customer' => 'ëÌÉÅÎÔ',
+ 'Customer missing!' => 'ðÒÏÐÕÝÅÎ ËÌÉÅÎÔ!',
+ 'Customer not on file!' => 'ëÌÉÅÎÔ ÏÔÓÕÔÓÔ×ÕÅÔ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Date' => 'äÁÔÁ',
+ 'Date Paid' => 'äÁÔÁ ÏÐÌÁÔÙ',
+ 'Debit' => 'äÅÂÅÔ',
+ 'Dec' => 'ÄÅË',
+ 'December' => 'ÄÅËÁÂÒØ',
+ 'Delete' => 'õÄÁÌÉÔØ',
+ 'Department' => 'ïÔÄÅÌ',
+ 'Description' => 'ïÐÉÓÁÎÉÅ',
+ 'Detail' => 'äÅÔÁÌÉÚÉÒÏ×ÁÔØ',
+ 'Due Date' => 'ïÐÌÁÔÉÔØ ÄÏ',
+ 'Due Date missing!' => 'îÅ ÕËÁÚÁÎ ÓÒÏË ÏÐÌÁÔÙ!',
+ 'E-mail' => 'E-mail',
+ 'Edit AP Transaction' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ÐÒÏ×ÏÄËÕ ðÏÓÔÕÐÌÅÎÉÑ',
+ 'Edit AR Transaction' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ÐÒÏ×ÏÄËÕ ðÒÏÄÁÖ',
+ 'Employee' => 'óÏÔÒÕÄÎÉË',
+ 'Exch' => 'ëÕÒÓ',
+ 'Exchange Rate' => 'ëÕÒÓ ×ÁÌÀÔÙ',
+ 'Exchange rate for payment missing!' => 'ðÒÏÐÕÝÅÎ ËÕÒÓ ÏÐÌÁÔÙ!',
+ 'Exchange rate missing!' => 'ðÒÏÐÕÝÅÎ ËÕÒÓ!',
+ 'Feb' => 'ÆÅ×',
+ 'February' => 'ÆÅ×ÒÁÌØ',
+ 'From' => 'Ó',
+ 'ID' => 'éÄÅÎÔÉÆÉËÁÔÏÒ',
+ 'Include in Report' => '÷ËÌÀÞÉÔØ × ÏÔÞÅÔ',
+ 'Invoice' => 'óÞÅÔ-ÆÁËÔÕÒÁ',
+ 'Invoice Date' => 'äÁÔÁ ×ÙÓÔÁ×ÌÅÎÉÑ',
+ 'Invoice Date missing!' => 'îÅ ÕËÁÚÁÎÁ ÄÁÔÁ ×ÙÓÔÁ×ÌÅÎÉÑ ÓÞÅÔÁ-ÆÁËÔÕÒÙ',
+ 'Invoice Number' => 'îÏÍÅÒ ÓÞÅÔÁ-ÆÁËÔÕÒÙ',
+ 'Jan' => 'ÑÎ×',
+ 'January' => 'ÑÎ×ÁÒØ',
+ 'Jul' => 'ÉÀÌ',
+ 'July' => 'ÉÀÌØ',
+ 'Jun' => 'ÉÀÎ',
+ 'June' => 'ÉÀÎØ',
+ 'Manager' => 'íÅÎÅÄÖÅÒ',
+ 'Mar' => 'ÍÁÒÔ',
+ 'March' => 'ÍÁÒÔ',
+ 'May' => 'ÍÁÊ',
+ 'May ' => 'ÍÁÊ',
+ 'Memo' => 'ëÏÍÍÅÎÔÁÒÉÊ',
+ 'Message' => 'óÏÏÂÝÅÎÉÅ',
+ 'Month' => 'ÍÅÓÑÃ',
+ 'No.' => 'îÏÍ.',
+ 'Notes' => 'ëÏÍÍÅÎÔÁÒÉÉ',
+ 'Nothing to print!' => 'îÉÞÅÇÏ ÎÅ ÎÁÐÅÞÁÔÁÎÏ!',
+ 'Nov' => 'ÎÏÑ',
+ 'November' => 'ÎÏÑÂÒØ',
+ 'Number' => 'ËÏÄ',
+ 'Oct' => 'ÏËÔ',
+ 'October' => 'ÏËÔÑÂÒØ',
+ 'Open' => 'ïÔËÒÙÔØ',
+ 'Order' => 'úÁËÁÚ ËÌÉÅÎÔÁ',
+ 'Order Number' => 'îÏÍÅÒ ÚÁËÁÚÁ',
+ 'PDF' => 'PDF',
+ 'Paid' => 'ïÐÌÁÞÅÎÏ',
+ 'Payment date missing!' => 'ðÒÏÐÕÝÅÎÁ ÄÁÔÁ ÏÐÌÁÔÙ!',
+ 'Payments' => 'ïÐÌÁÔÙ',
+ 'Period' => 'ðÅÒÉÏÄ',
+ 'Post' => 'óÏÈÒÁÎÉÔØ',
+ 'Post as new' => 'óÏÈÒÁÎÉÔØ ËÁË ÎÏ×ÙÊ',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'ðÅÞÁÔØ',
+ 'Print and Post' => 'îÁÐÅÞÁÔÁÔØ É ÏÔÐÒÁ×ÉÔØ',
+ 'Printed' => 'îÁÐÅÞÁÔÁÎÏ',
+ 'Project' => 'ðÒÏÅËÔ',
+ 'Project not on file!' => 'ðÒÏÅËÔ ÏÔÓÕÔÓÔ×ÕÅÔ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Quarter' => 'ë×ÁÒÔÁÌ',
+ 'Receipt' => 'ðÏÌÕÞÅÎÉÅ',
+ 'Reference' => 'óÓÙÌËÁ',
+ 'Remaining' => 'ïÓÔÁÔÏË',
+ 'Sales Invoice.' => 'æÁËÔÕÒÁ ËÌÉÅÎÔÁ',
+ 'Salesperson' => 'ðÒÏÄÁ×ÅÃ',
+ 'Screen' => 'üËÒÁÎ',
+ 'Select from one of the names below' => '÷ÙÂÅÒÉÔÅ ÏÄÎÏ ÉÚ ÎÁÉÍÅÎÏ×ÁÎÉÊ ÉÚ ÓÐÉÓËÁ',
+ 'Select from one of the projects below' => '÷ÙÂÅÒÉÔÅ ÏÄÉÎ ÉÚ ÐÒÏÅËÔÏ× ÉÚ ÓÐÉÓËÁ',
+ 'Select payment' => '÷ÙÂÅÒÉÔÅ ÏÐÌÁÔÕ',
+ 'Select postscript or PDF!' => '÷ÙÂÅÒÉÔÅ postscript ÉÌÉ PDF!',
+ 'Sep' => 'ÓÅÎ',
+ 'September' => 'ÓÅÎÔÑÂÒØ',
+ 'Ship to' => 'ÄÏÓÔÁ×ÉÔØ ÄÌÑ',
+ 'Ship via' => 'ÄÏÓÔÁ×ÉÔØ ÞÅÒÅÚ',
+ 'Shipping Point' => 'íÅÓÔÏ ÄÏÓÔÁ×ËÉ',
+ 'Source' => 'éÓÔÏÞÎÉË',
+ 'Startdate' => 'îÁÞÁÌØÎÁÑ ÄÁÔÁ',
+ 'Subject' => 'ôÅÍÁ',
+ 'Subtotal' => 'éÔÏÇÏ ÐÏ ÒÁÚÄÅÌÕ',
+ 'Summary' => 'óÕÍÍÁÒÎÏ',
+ 'Tax' => 'îÁÌÏÇ',
+ 'Tax Included' => 'îÁÌÏÇÉ ×ËÌÀÞÅÎÙ × ÓÕÍÍÕ',
+ 'Till' => 'ÄÏ',
+ 'To' => 'ÐÏ',
+ 'Total' => '÷ÓÅÇÏ',
+ 'Transaction' => 'ðÒÏ×ÏÄËÁ',
+ 'Transaction deleted!' => 'ðÒÏ×ÏÄËÁ ÕÄÁÌÅÎÁ!',
+ 'Transaction posted!' => 'ðÒÏ×ÏÄËÁ ÓÏÈÒÁÎÅÎÁ!',
+ 'Update' => 'ïÂÎÏ×ÉÔØ',
+ 'Vendor' => 'ðÏÓÔÁ×ÝÉË',
+ 'Vendor Invoice.' => 'æÁËÔÕÒÁ ÐÏÓÔÁ×ÝÉËÁ.',
+ 'Vendor missing!' => 'ðÒÏÐÕÝÅÎ ÐÏÓÔÁ×ÝÉË!',
+ 'Vendor not on file!' => 'ðÏÓÔÁ×ÝÉËÁ ÎÅÔ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Warning!' => '÷ÎÉÍÁÎÉÅ!',
+ 'Year' => 'çÏÄ',
+ 'Yes' => 'äÁ',
+ 'sent' => 'ÏÔÐÒÁ×ÌÅÎÏ',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'ðÒÏ×ÏÄËÁ_ÚÁËÕÐËÉ' => 'ap_transaction',
+ 'ðÒÏ×ÏÄËÁ_ÐÒÏÄÁÖ' => 'ar_transaction',
+ 'ðÒÏÄÏÌÖÉÔØ' => 'continue',
+ 'õÄÁÌÉÔØ' => 'delete',
+ 'óÏÈÒÁÎÉÔØ' => 'post',
+ 'óÏÈÒÁÎÉÔØ_ËÁË_ÎÏ×ÙÊ' => 'post_as_new',
+ 'ðÅÞÁÔØ' => 'print',
+ 'îÁÐÅÞÁÔÁÔØ_É_ÏÔÐÒÁ×ÉÔØ' => 'print_and_post',
+ 'æÁËÔÕÒÁ_ËÌÉÅÎÔÁ' => 'sales_invoice_',
+ 'ÄÏÓÔÁ×ÉÔØ_ÄÌÑ' => 'ship_to',
+ 'ïÂÎÏ×ÉÔØ' => 'update',
+ 'æÁËÔÕÒÁ_ÐÏÓÔÁ×ÝÉËÁ_' => 'vendor_invoice_',
+ 'äÁ' => 'yes',
+};
+
+1;
+
diff --git a/locale/ru/arap b/locale/ru/arap
new file mode 100755
index 00000000..1bed49fc
--- /dev/null
+++ b/locale/ru/arap
@@ -0,0 +1,53 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'Address' => 'áÄÒÅÓ',
+ 'Bcc' => 'Bcc',
+ 'Cc' => 'Cc',
+ 'Continue' => 'ðÒÏÄÏÌÖÉÔØ',
+ 'Customer not on file!' => 'ëÌÉÅÎÔ ÏÔÓÕÔÓÔ×ÕÅÔ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Date' => 'äÁÔÁ',
+ 'Description' => 'ïÐÉÓÁÎÉÅ',
+ 'E-mail' => 'E-mail',
+ 'Message' => 'óÏÏÂÝÅÎÉÅ',
+ 'Number' => 'ËÏÄ',
+ 'Print' => 'ðÅÞÁÔØ',
+ 'Project not on file!' => 'ðÒÏÅËÔ ÏÔÓÕÔÓÔ×ÕÅÔ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Reference' => 'óÓÙÌËÁ',
+ 'Select from one of the names below' => '÷ÙÂÅÒÉÔÅ ÏÄÎÏ ÉÚ ÎÁÉÍÅÎÏ×ÁÎÉÊ ÉÚ ÓÐÉÓËÁ',
+ 'Select from one of the projects below' => '÷ÙÂÅÒÉÔÅ ÏÄÉÎ ÉÚ ÐÒÏÅËÔÏ× ÉÚ ÓÐÉÓËÁ',
+ 'Startdate' => 'îÁÞÁÌØÎÁÑ ÄÁÔÁ',
+ 'Subject' => 'ôÅÍÁ',
+ 'To' => 'ÐÏ',
+ 'Vendor not on file!' => 'ðÏÓÔÁ×ÝÉËÁ ÎÅÔ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Warning!' => '÷ÎÉÍÁÎÉÅ!',
+ 'sent' => 'ÏÔÐÒÁ×ÌÅÎÏ',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'ðÒÏÄÏÌÖÉÔØ' => 'continue',
+};
+
+1;
+
diff --git a/locale/ru/arapprn b/locale/ru/arapprn
new file mode 100755
index 00000000..11dbcd1d
--- /dev/null
+++ b/locale/ru/arapprn
@@ -0,0 +1,34 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'Account' => 'óÞÅÔ',
+ 'Amount' => 'óÕÍÍÁ',
+ 'Continue' => 'ðÒÏÄÏÌÖÉÔØ',
+ 'Date' => 'äÁÔÁ',
+ 'Memo' => 'ëÏÍÍÅÎÔÁÒÉÊ',
+ 'Nothing to print!' => 'îÉÞÅÇÏ ÎÅ ÎÁÐÅÞÁÔÁÎÏ!',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'Postscript',
+ 'Printed' => 'îÁÐÅÞÁÔÁÎÏ',
+ 'Screen' => 'üËÒÁÎ',
+ 'Select payment' => '÷ÙÂÅÒÉÔÅ ÏÐÌÁÔÕ',
+ 'Select postscript or PDF!' => '÷ÙÂÅÒÉÔÅ postscript ÉÌÉ PDF!',
+ 'Source' => 'éÓÔÏÞÎÉË',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'ðÒÏÄÏÌÖÉÔØ' => 'continue',
+};
+
+1;
+
diff --git a/locale/ru/bp b/locale/ru/bp
new file mode 100755
index 00000000..a6b350ac
--- /dev/null
+++ b/locale/ru/bp
@@ -0,0 +1,69 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'Account' => 'óÞÅÔ',
+ 'Accounting Menu' => 'âÕÈÇÁÌÔÅÒÓËÏÅ ÍÅÎÀ',
+ 'Are you sure you want to remove the marked entries from the queue?' => '÷Ù ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÈÏÔÉÔÅ ÏÔÍÅÎÉÔØ ÏÞÅÒÅÄØ ÄÌÑ ÏÔÍÅÞÅÎÎÙÈ ÐÏÚÉÃÉÊ?',
+ 'Bin Lists' => 'óÐÉÓËÉ Bin',
+ 'Cannot remove files!' => 'îÅ×ÏÚÍÏÖÎÏ ÐÅÒÅÍÅÓÔÉÔØ ÆÁÊÌÙ!',
+ 'Confirm!' => 'ðÏÄÔ×ÅÒÄÉÔØ!',
+ 'Continue' => 'ðÒÏÄÏÌÖÉÔØ',
+ 'Current' => 'ôÅËÕÝÉÊ',
+ 'Customer' => 'ëÌÉÅÎÔ',
+ 'Date' => 'äÁÔÁ',
+ 'Employee' => 'óÏÔÒÕÄÎÉË',
+ 'From' => 'Ó',
+ 'ID' => 'éÄÅÎÔÉÆÉËÁÔÏÒ',
+ 'Invoice' => 'óÞÅÔ-ÆÁËÔÕÒÁ',
+ 'Invoice Number' => 'îÏÍÅÒ ÓÞÅÔÁ-ÆÁËÔÕÒÙ',
+ 'Marked entries printed!' => 'ïÔÍÅÞÅÎÎÙÅ ÐÏÚÉÃÉÉ ÎÁÐÅÞÁÔÁÎÙ!',
+ 'Month' => 'ÍÅÓÑÃ',
+ 'Order' => 'úÁËÁÚ ËÌÉÅÎÔÁ',
+ 'Order Number' => 'îÏÍÅÒ ÚÁËÁÚÁ',
+ 'Packing Lists' => 'õÐÁËÏ×ÏÞÎÙÅ ÓÐÉÓÏËÉ',
+ 'Period' => 'ðÅÒÉÏÄ',
+ 'Pick Lists' => 'óÐÉÓËÉ ÄÌÑ ×ÙÂÏÒÁ',
+ 'Print' => 'ðÅÞÁÔØ',
+ 'Purchase Orders' => 'úÁËÁÚÙ ÐÏÓÔÁ×ÝÉËÕ',
+ 'Quarter' => 'ë×ÁÒÔÁÌ',
+ 'Quotation' => 'òÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'Quotation Number' => 'îÏÍÅÒ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÑ',
+ 'Quotations' => 'òÅÚÅÒ×Ù',
+ 'RFQs' => 'úÁÐÒÏÓÙ ÎÁ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'Remove' => 'õÄÁÌÉÔØ',
+ 'Removed spoolfiles!' => 'õÄÁÌÉÔØ ÆÁÊÌ ÏÞÅÒÅÄÉ!',
+ 'Removing marked entries from queue ...' => 'õÄÁÌÉÔØ ÏÔÍÅÞÅÎÎÙÅ ÐÏÚÉÃÉÉ ÉÚ ÏÞÅÒÅÄÉ?',
+ 'Sales Invoices' => 'æÁËÔÕÒÙ ËÌÉÅÎÔÁ',
+ 'Sales Orders' => 'úÁËÁÚÙ ËÌÉÅÎÔÁ',
+ 'Select all' => '÷ÙÂÒÁÔØ ×ÓÅ',
+ 'Spoolfile' => 'æÁÊÌ ÏÞÅÒÅÄÉ ÐÅÞÁÔÉ',
+ 'To' => 'ÐÏ',
+ 'Vendor' => 'ðÏÓÔÁ×ÝÉË',
+ 'Work Orders' => 'òÁÂÏÞÉÅ ÚÁËÁÚÙ',
+ 'Year' => 'çÏÄ',
+ 'Yes' => 'äÁ',
+ 'done' => '×ÙÐÏÌÎÅÎÏ',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'ðÒÏÄÏÌÖÉÔØ' => 'continue',
+ 'ðÅÞÁÔØ' => 'print',
+ 'õÄÁÌÉÔØ' => 'remove',
+ '÷ÙÂÒÁÔØ_×ÓÅ' => 'select_all',
+ 'äÁ' => 'yes',
+};
+
+1;
+
diff --git a/locale/ru/ca b/locale/ru/ca
new file mode 100755
index 00000000..c4b21418
--- /dev/null
+++ b/locale/ru/ca
@@ -0,0 +1,61 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'Account' => 'óÞÅÔ',
+ 'Apr' => 'ÁÐÒ',
+ 'April' => 'ÁÐÒÅÌØ',
+ 'Aug' => 'Á×Ç',
+ 'August' => 'Á×ÇÕÓÔ',
+ 'Balance' => 'âÁÌÁÎÓ',
+ 'Chart of Accounts' => 'ðÌÁÎ ÓÞÅÔÏ×',
+ 'Credit' => 'ëÒÅÄÉÔ',
+ 'Current' => 'ôÅËÕÝÉÊ',
+ 'Date' => 'äÁÔÁ',
+ 'Debit' => 'äÅÂÅÔ',
+ 'Dec' => 'ÄÅË',
+ 'December' => 'ÄÅËÁÂÒØ',
+ 'Department' => 'ïÔÄÅÌ',
+ 'Description' => 'ïÐÉÓÁÎÉÅ',
+ 'Feb' => 'ÆÅ×',
+ 'February' => 'ÆÅ×ÒÁÌØ',
+ 'From' => 'Ó',
+ 'GIFI' => 'GIFI',
+ 'Include in Report' => '÷ËÌÀÞÉÔØ × ÏÔÞÅÔ',
+ 'Jan' => 'ÑÎ×',
+ 'January' => 'ÑÎ×ÁÒØ',
+ 'Jul' => 'ÉÀÌ',
+ 'July' => 'ÉÀÌØ',
+ 'Jun' => 'ÉÀÎ',
+ 'June' => 'ÉÀÎØ',
+ 'List Transactions' => 'óÐÉÓÏË ÐÒÏ×ÏÄÏË',
+ 'Mar' => 'ÍÁÒÔ',
+ 'March' => 'ÍÁÒÔ',
+ 'May' => 'ÍÁÊ',
+ 'May ' => 'ÍÁÊ',
+ 'Month' => 'ÍÅÓÑÃ',
+ 'Nov' => 'ÎÏÑ',
+ 'November' => 'ÎÏÑÂÒØ',
+ 'Oct' => 'ÏËÔ',
+ 'October' => 'ÏËÔÑÂÒØ',
+ 'Period' => 'ðÅÒÉÏÄ',
+ 'Project Number' => 'ëÏÄ ÐÒÏÅËÔÁ',
+ 'Quarter' => 'ë×ÁÒÔÁÌ',
+ 'R' => 'R',
+ 'Reference' => 'óÓÙÌËÁ',
+ 'Sep' => 'ÓÅÎ',
+ 'September' => 'ÓÅÎÔÑÂÒØ',
+ 'Subtotal' => 'éÔÏÇÏ ÐÏ ÒÁÚÄÅÌÕ',
+ 'To' => 'ÐÏ',
+ 'Year' => 'çÏÄ',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'óÐÉÓÏË_ÐÒÏ×ÏÄÏË' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/ru/cp b/locale/ru/cp
new file mode 100755
index 00000000..2e2dd724
--- /dev/null
+++ b/locale/ru/cp
@@ -0,0 +1,125 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'AP' => 'ðÏÓÔÕÐÌÅÎÉÑ',
+ 'AR' => 'ðÒÏÄÁÖÉ',
+ 'Account' => 'óÞÅÔ',
+ 'Accounting Menu' => 'âÕÈÇÁÌÔÅÒÓËÏÅ ÍÅÎÀ',
+ 'Address' => 'áÄÒÅÓ',
+ 'All' => '÷ÓÅ',
+ 'Amount' => 'óÕÍÍÁ',
+ 'Amount Due' => 'óÕÍÍÁ Ë ÐÏÌÕÞÅÎÉÀ',
+ 'Bcc' => 'Bcc',
+ 'Cannot post Payment!' => 'îÅ×ÏÚÍÏÖÎÏ ÐÒÏ×ÅÓÔÉ ÏÐÌÁÔÕ!',
+ 'Cannot post Receipt!' => 'îÅ×ÏÚÍÏÖÎÏ ÐÒÏ×ÅÓÔÉ ÐÏÌÕÞÅÎÉÅ!',
+ 'Cannot post payment for a closed period!' => 'îÅ×ÏÚÍÏÖÎÏ ÐÒÏ×ÅÓÔÉ ÏÐÌÁÔÕ ÄÌÑ ÚÁËÒÙÔÏÇÏ ÐÅÒÉÏÄÁ!',
+ 'Cc' => 'Cc',
+ 'Continue' => 'ðÒÏÄÏÌÖÉÔØ',
+ 'Currency' => '÷ÁÌÀÔÁ',
+ 'Customer' => 'ëÌÉÅÎÔ',
+ 'Customer not on file!' => 'ëÌÉÅÎÔ ÏÔÓÕÔÓÔ×ÕÅÔ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Date' => 'äÁÔÁ',
+ 'Date missing!' => 'ðÒÏÐÕÝÅÎÁ ÄÁÔÁ',
+ 'Department' => 'ïÔÄÅÌ',
+ 'Deposit' => 'äÅÐÏÚÉÔ',
+ 'Description' => 'ïÐÉÓÁÎÉÅ',
+ 'Due Date' => 'ïÐÌÁÔÉÔØ ÄÏ',
+ 'E-mail' => 'E-mail',
+ 'Exchange Rate' => 'ëÕÒÓ ×ÁÌÀÔÙ',
+ 'Exchange rate missing!' => 'ðÒÏÐÕÝÅÎ ËÕÒÓ!',
+ 'From' => 'Ó',
+ 'Invoice' => 'óÞÅÔ-ÆÁËÔÕÒÁ',
+ 'Invoices' => 'óÞÅÔ-ÆÁËÔÕÒÙ',
+ 'Language' => 'ñÚÙË',
+ 'Memo' => 'ëÏÍÍÅÎÔÁÒÉÊ',
+ 'Message' => 'óÏÏÂÝÅÎÉÅ',
+ 'Number' => 'ËÏÄ',
+ 'PDF' => 'PDF',
+ 'Payment' => 'ïÐÌÁÔÁ',
+ 'Payment posted!' => 'ïÐÌÁÔÁ ÐÒÏ×ÅÄÅÎÁ!',
+ 'Payments' => 'ïÐÌÁÔÙ',
+ 'Post' => 'óÏÈÒÁÎÉÔØ',
+ 'Postscript' => 'Postscript',
+ 'Prepayment' => 'ðÒÅÄ×ÁÒÉÔÅÌØÎÁÑ ÏÐÌÁÔÁ',
+ 'Print' => 'ðÅÞÁÔØ',
+ 'Project not on file!' => 'ðÒÏÅËÔ ÏÔÓÕÔÓÔ×ÕÅÔ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Receipt' => 'ðÏÌÕÞÅÎÉÅ',
+ 'Receipt posted!' => 'ðÏÌÕÞÅÎÉÅ ÐÒÏ×ÅÄÅÎÏ!',
+ 'Receipts' => 'ðÏÌÕÞÅÎÉÑ',
+ 'Reference' => 'óÓÙÌËÁ',
+ 'Screen' => 'üËÒÁÎ',
+ 'Select' => '÷ÙÂÒÁÔØ',
+ 'Select all' => '÷ÙÂÒÁÔØ ×ÓÅ',
+ 'Select from one of the names below' => '÷ÙÂÅÒÉÔÅ ÏÄÎÏ ÉÚ ÎÁÉÍÅÎÏ×ÁÎÉÊ ÉÚ ÓÐÉÓËÁ',
+ 'Select from one of the projects below' => '÷ÙÂÅÒÉÔÅ ÏÄÉÎ ÉÚ ÐÒÏÅËÔÏ× ÉÚ ÓÐÉÓËÁ',
+ 'Select postscript or PDF!' => '÷ÙÂÅÒÉÔÅ postscript ÉÌÉ PDF!',
+ 'Source' => 'éÓÔÏÞÎÉË',
+ 'Startdate' => 'îÁÞÁÌØÎÁÑ ÄÁÔÁ',
+ 'Subject' => 'ôÅÍÁ',
+ 'To' => 'ÐÏ',
+ 'Update' => 'ïÂÎÏ×ÉÔØ',
+ 'Vendor' => 'ðÏÓÔÁ×ÝÉË',
+ 'Vendor not on file!' => 'ðÏÓÔÁ×ÝÉËÁ ÎÅÔ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Warning!' => '÷ÎÉÍÁÎÉÅ!',
+ 'sent' => 'ÏÔÐÒÁ×ÌÅÎÏ',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'ðÒÏÄÏÌÖÉÔØ' => 'continue',
+ 'óÏÈÒÁÎÉÔØ' => 'post',
+ 'ðÅÞÁÔØ' => 'print',
+ '÷ÙÂÒÁÔØ_×ÓÅ' => 'select_all',
+ 'ïÂÎÏ×ÉÔØ' => 'update',
+};
+
+1;
+
diff --git a/locale/ru/ct b/locale/ru/ct
new file mode 100755
index 00000000..16fa7f4e
--- /dev/null
+++ b/locale/ru/ct
@@ -0,0 +1,189 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'AP Transaction' => 'ðÒÏ×ÏÄËÁ ÚÁËÕÐËÉ',
+ 'AP Transactions' => 'ðÒÏ×ÏÄËÉ ÚÁËÕÐËÉ',
+ 'AR Transaction' => 'ðÒÏ×ÏÄËÁ ÐÒÏÄÁÖ',
+ 'AR Transactions' => 'ðÒÏ×ÏÄËÉ ÐÒÏÄÁÖ',
+ 'Accounting Menu' => 'âÕÈÇÁÌÔÅÒÓËÏÅ ÍÅÎÀ',
+ 'Active' => 'áËÔÉ×ÎÙÊ',
+ 'Add Customer' => 'îÏ×ÙÊ ËÌÉÅÎÔ',
+ 'Add Vendor' => 'îÏ×ÙÊ ÐÏÓÔÁ×ÝÉË',
+ 'Address' => 'áÄÒÅÓ',
+ 'All' => '÷ÓÅ',
+ 'Amount' => 'óÕÍÍÁ',
+ 'BIC' => 'BIC',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'áÄÒÅÓ ÄÏÓÔÁ×ËÉ ÓÞÅÔÁ',
+ 'Break' => 'ðÒÅÒ×ÁÔØ',
+ 'Cannot delete customer!' => 'îÅ×ÏÚÍÏÖÎÏ ÕÄÁÌÉÔØ ÐÏËÕÐÁÔÅÌÑ',
+ 'Cannot delete vendor!' => 'îÅ×ÏÚÍÏÖÎÏ ÕÄÁÌÉÔØ ÐÏÓÔÁ×ÝÉËÁ!',
+ 'Cc' => 'Cc',
+ 'City' => 'çÏÒÏÄ',
+ 'Closed' => 'úÁËÒÙÔ',
+ 'Company Name' => 'îÁÉÍÅÎÏ×ÁÎÉÅ ÏÒÇÁÎÉÚÁÃÉÉ',
+ 'Contact' => 'ëÏÎÔÁËÔÎÏÅ ÌÉÃÏ',
+ 'Continue' => 'ðÒÏÄÏÌÖÉÔØ',
+ 'Cost' => 'ãÅÎÁ',
+ 'Could not save pricelist!' => 'îÅ×ÏÚÍÏÖÎÏ ÓÏÈÒÁÎÉÔØ ÐÒÁÊÓ!',
+ 'Country' => 'óÔÒÁÎÁ',
+ 'Credit Limit' => 'ìÉÍÉÔ ËÒÅÄÉÔÁ',
+ 'Curr' => '÷ÁÌÀÔÁ',
+ 'Currency' => '÷ÁÌÀÔÁ',
+ 'Customer History' => 'éÓÔÏÒÉÑ',
+ 'Customer Number' => 'ëÏÄ ËÌÉÅÎÔÁ',
+ 'Customer deleted!' => 'ëÌÉÅÎÔ ÕÄÁÌÅÎ!',
+ 'Customer saved!' => 'ëÌÉÅÎÔ ÓÏÈÒÁÎÅÎ',
+ 'Customers' => 'ëÌÉÅÎÔÙ',
+ 'Delete' => 'õÄÁÌÉÔØ',
+ 'Delivery Date' => 'äÁÔÁ ÐÏÌÕÞÅÎÉÑ',
+ 'Description' => 'ïÐÉÓÁÎÉÅ',
+ 'Detail' => 'äÅÔÁÌÉÚÉÒÏ×ÁÔØ',
+ 'Discount' => 'óËÉÄËÁ',
+ 'E-mail' => 'E-mail',
+ 'Edit Customer' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ëÌÉÅÎÔÁ',
+ 'Edit Vendor' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ÐÏÓÔÁ×ÝÉËÁ',
+ 'Employee' => 'óÏÔÒÕÄÎÉË',
+ 'Enddate' => 'ëÏÎÞÎÁÑ ÄÁÔÁ',
+ 'Fax' => 'æÁËÓ',
+ 'From' => 'Ó',
+ 'GIFI' => 'GIFI',
+ 'Group' => 'çÒÕÐÐÁ',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'éÄÅÎÔÉÆÉËÁÔÏÒ',
+ 'Include in Report' => '÷ËÌÀÞÉÔØ × ÏÔÞÅÔ',
+ 'Invoice' => 'óÞÅÔ-ÆÁËÔÕÒÁ',
+ 'Item already on pricelist!' => 'îÏÍÅÎËÌÁÔÕÒÁ ÕÖÅ ÅÓÔØ × ÐÒÁÊÓ-ÌÉÓÔÅ!',
+ 'Item not on file!' => 'îÅÔ ÎÏÍÅÎËÌÁÔÕÒÙ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Language' => 'ñÚÙË',
+ 'Leadtime' => 'ïÓÎÏ×ÎÏÅ ×ÒÅÍÑ',
+ 'Manager' => 'íÅÎÅÄÖÅÒ',
+ 'Name' => 'îÁÉÍÅÎÏ×ÁÎÉÅ',
+ 'Name missing!' => 'ðÒÏÐÕÝÅÎÏ ÎÁÉÍÅÎÏ×ÁÎÉÅ!',
+ 'No.' => 'îÏÍ.',
+ 'Notes' => 'ëÏÍÍÅÎÔÁÒÉÉ',
+ 'Number' => 'ËÏÄ',
+ 'Open' => 'ïÔËÒÙÔØ',
+ 'Order' => 'úÁËÁÚ ËÌÉÅÎÔÁ',
+ 'Orphaned' => 'âÅÚ ÐÒÏ×ÏÄÏË',
+ 'POS' => 'ëëí',
+ 'Part Number' => 'ëÏÄ ÔÏ×ÁÒÁ',
+ 'Phone' => 'ôÅÌ.',
+ 'Pricegroup' => 'ôÉÐ ÃÅÎ',
+ 'Pricelist' => 'ðÒÁÊÓÌÉÓÔ',
+ 'Project Number' => 'ëÏÄ ÐÒÏÅËÔÁ',
+ 'Purchase Order' => 'úÁËÁÚ ÐÏÓÔÁ×ÝÉËÕ',
+ 'Purchase Orders' => 'úÁËÁÚÙ ÐÏÓÔÁ×ÝÉËÕ',
+ 'Qty' => 'ëÏÌÉÞÅÓÔ×Ï',
+ 'Quotation' => 'òÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'Quotations' => 'òÅÚÅÒ×Ù',
+ 'RFQ' => 'úÁÐÒÏÓ ÎÁ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'Request for Quotations' => 'úÁÐÒÏÓÙ ÎÁ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'SIC' => 'SIC',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'æÁËÔÕÒÁ ËÌÉÅÎÔÁ',
+ 'Sales Invoices' => 'æÁËÔÕÒÙ ËÌÉÅÎÔÁ',
+ 'Sales Order' => 'úÁËÁÚ ËÌÉÅÎÔÁ',
+ 'Sales Orders' => 'úÁËÁÚÙ ËÌÉÅÎÔÁ',
+ 'Salesperson' => 'ðÒÏÄÁ×ÅÃ',
+ 'Save' => 'óÏÈÒÁÎÉÔØ',
+ 'Save Pricelist' => 'óÏÈÒÁÎÉÔØ ÐÒÁÊÓÌÉÓÔ',
+ 'Save as new' => 'óÏÈÒÁÎÉÔØ ËÁË ÎÏ×ÙÊ',
+ 'Search' => 'ðÏÉÓË',
+ 'Sell Price' => 'ðÒÏÄÁÖÎÁÑ ÃÅÎÁ',
+ 'Serial Number' => 'óÅÒÉÊÎÙÊ ÎÏÍÅÒ',
+ 'Shipping Address' => 'áÄÒÅÓ ÄÏÓÔÁ×ËÉ',
+ 'Startdate' => 'îÁÞÁÌØÎÁÑ ÄÁÔÁ',
+ 'State' => 'óÏÓÔÏÑÎÉÅ',
+ 'State/Province' => 'ûÔÁÔ/ðÒÏ×ÉÎÃÉÑ',
+ 'Sub-contract GIFI' => 'ðÅÒÅÄÏ×ÅÒÅÎÎÙÊ GIFI',
+ 'Subtotal' => 'éÔÏÇÏ ÐÏ ÒÁÚÄÅÌÕ',
+ 'Summary' => 'óÕÍÍÁÒÎÏ',
+ 'Tax' => 'îÁÌÏÇ',
+ 'Tax Included' => 'îÁÌÏÇÉ ×ËÌÀÞÅÎÙ × ÓÕÍÍÕ',
+ 'Tax Number' => 'ëÏÄ ÎÁÌÏÇÁ',
+ 'Tax Number / SSN' => 'ëÏÄ ÎÁÌÏÇÁ/SSN',
+ 'Taxable' => 'ðÏÄÌÅÖÉÔ ÎÁÌÏÇÏÏÂÌÏÖÅÎÉÀ',
+ 'Terms' => 'óÒÏË ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÑ',
+ 'To' => 'ÐÏ',
+ 'Total' => '÷ÓÅÇÏ',
+ 'Type of Business' => 'ôÉÐ ÂÉÚÎÅÓÁ',
+ 'Unit' => 'åÄÉÎÉÃÁ',
+ 'Update' => 'ïÂÎÏ×ÉÔØ',
+ 'Vendor History' => 'éÓÔÏÒÉÑ',
+ 'Vendor Invoice' => 'æÁËÔÕÒÁ ÐÏÓÔÁ×ÝÉËÁ',
+ 'Vendor Invoices' => 'æÁËÔÕÒÙ ÐÏÓÔÁ×ÝÉËÁ',
+ 'Vendor Number' => 'ëÏÄ ÐÏÓÔÁ×ÝÉËÁ',
+ 'Vendor deleted!' => 'ðÏÓÔÁ×ÝÉË ÕÄÁÌÅÎ!',
+ 'Vendor saved!' => 'ðÏÓÔÁ×ÝÉË ÓÏÈÒÁÎÅÎ!',
+ 'Vendors' => 'ðÏÓÔÁ×ÝÉËÉ',
+ 'Zip/Postal Code' => 'éÎÄÅËÓ',
+ 'days' => 'ÄÎÅÊ',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'ðÒÏ×ÏÄËÁ_ÚÁËÕÐËÉ' => 'ap_transaction',
+ 'ðÒÏ×ÏÄËÁ_ÐÒÏÄÁÖ' => 'ar_transaction',
+ 'îÏ×ÙÊ_ËÌÉÅÎÔ' => 'add_customer',
+ 'îÏ×ÙÊ_ÐÏÓÔÁ×ÝÉË' => 'add_vendor',
+ 'ðÒÏÄÏÌÖÉÔØ' => 'continue',
+ 'õÄÁÌÉÔØ' => 'delete',
+ 'ëëí' => 'pos',
+ 'ðÒÁÊÓÌÉÓÔ' => 'pricelist',
+ 'úÁËÁÚ_ÐÏÓÔÁ×ÝÉËÕ' => 'purchase_order',
+ 'òÅÚÅÒ×ÉÒÏ×ÁÎÉÅ' => 'quotation',
+ 'úÁÐÒÏÓ_ÎÁ_ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÅ' => 'rfq',
+ 'æÁËÔÕÒÁ_ËÌÉÅÎÔÁ' => 'sales_invoice',
+ 'úÁËÁÚ_ËÌÉÅÎÔÁ' => 'sales_order',
+ 'óÏÈÒÁÎÉÔØ' => 'save',
+ 'óÏÈÒÁÎÉÔØ_ÐÒÁÊÓÌÉÓÔ' => 'save_pricelist',
+ 'óÏÈÒÁÎÉÔØ_ËÁË_ÎÏ×ÙÊ' => 'save_as_new',
+ 'ïÂÎÏ×ÉÔØ' => 'update',
+ 'æÁËÔÕÒÁ_ÐÏÓÔÁ×ÝÉËÁ' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/ru/gl b/locale/ru/gl
new file mode 100755
index 00000000..be86198d
--- /dev/null
+++ b/locale/ru/gl
@@ -0,0 +1,161 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'AP Transaction' => 'ðÒÏ×ÏÄËÁ ÚÁËÕÐËÉ',
+ 'AR Transaction' => 'ðÒÏ×ÏÄËÁ ÐÒÏÄÁÖ',
+ 'Account' => 'óÞÅÔ',
+ 'Accounting Menu' => 'âÕÈÇÁÌÔÅÒÓËÏÅ ÍÅÎÀ',
+ 'Add Cash Transfer Transaction' => 'îÏ×ÁÑ ÐÒÏ×ÏÄËÁ ËÁÓÓÏ×ÏÇÏ ÐÅÒÅÍÅÝÅÎÉÑ',
+ 'Add General Ledger Transaction' => 'îÏ×ÁÑ ÐÒÏ×ÏÄËÁ',
+ 'Address' => 'áÄÒÅÓ',
+ 'All' => '÷ÓÅ',
+ 'Amount' => 'óÕÍÍÁ',
+ 'Apr' => 'ÁÐÒ',
+ 'April' => 'ÁÐÒÅÌØ',
+ 'Are you sure you want to delete Transaction' => '÷Ù Õ×ÅÒÅÎÙ, ÓÔÏ ÈÏÔÉÔÅ ÕÄÁÌÉÔØ ÄÁÎÎÕÀ ÐÒÏ×ÏÄËÕ?',
+ 'Asset' => 'áËÔÉ×',
+ 'Aug' => 'Á×Ç',
+ 'August' => 'Á×ÇÕÓÔ',
+ 'Balance' => 'âÁÌÁÎÓ',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'îÅ×ÏÚÍÏÖÎÏ ÕÄÁÌÉÔØ ÐÒÏ×ÏÄËÕ!',
+ 'Cannot post transaction for a closed period!' => 'îÅ×ÏÚÍÏÖÎÏ ÐÒÏ×ÅÓÔÉ ÐÒÏ×ÏÄËÕ × ÚÁËÒÙÔÏÍ ÐÅÒÉÏÄÅ!',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => 'îÅ×ÏÚÍÏÖÎÏ ÐÒÏ×ÅÓÔÉ ÐÒÏ×ÏÄËÕ Ó ÄÅÂÅÔÏÍ É ËÒÅÄÉÔÏÍ ÄÌÑ ÏÂÎÏÇÏ É ÔÏÇÏ ÖÅ ÓÞÅÔÁ!',
+ 'Cannot post transaction!' => 'îÅ×ÏÚÍÏÖÎÏ ÐÒÏ×ÅÓÔÉ ÐÒÏ×ÏÄËÕ!',
+ 'Cc' => 'Cc',
+ 'Confirm!' => 'ðÏÄÔ×ÅÒÄÉÔØ!',
+ 'Continue' => 'ðÒÏÄÏÌÖÉÔØ',
+ 'Credit' => 'ëÒÅÄÉÔ',
+ 'Current' => 'ôÅËÕÝÉÊ',
+ 'Customer not on file!' => 'ëÌÉÅÎÔ ÏÔÓÕÔÓÔ×ÕÅÔ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Date' => 'äÁÔÁ',
+ 'Debit' => 'äÅÂÅÔ',
+ 'Dec' => 'ÄÅË',
+ 'December' => 'ÄÅËÁÂÒØ',
+ 'Delete' => 'õÄÁÌÉÔØ',
+ 'Department' => 'ïÔÄÅÌ',
+ 'Description' => 'ïÐÉÓÁÎÉÅ',
+ 'E-mail' => 'E-mail',
+ 'Edit Cash Transfer Transaction' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ÐÒÏ×ÏÄËÕ ëÁÓÓÏ×ÏÇÏ ðÅÒÅÍÅÝÅÎÉÑ',
+ 'Edit General Ledger Transaction' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ÐÒÏ×ÏÄËÕ ÇÌÁ×ÎÏÊ ËÎÉÇÉ',
+ 'Equity' => 'ëÁÐÉÔÁÌ',
+ 'Expense' => 'òÁÓÈÏÄ',
+ 'FX' => 'FX',
+ 'Feb' => 'ÆÅ×',
+ 'February' => 'ÆÅ×ÒÁÌØ',
+ 'From' => 'Ó',
+ 'GIFI' => 'GIFI',
+ 'GL Transaction' => 'ðÒÏ×ÏÄËÉ çÌÁ×ÎÏÊ ËÎÉÇÉ',
+ 'General Ledger' => 'çÌÁ×ÎÁÑ ËÎÉÇÁ',
+ 'ID' => 'éÄÅÎÔÉÆÉËÁÔÏÒ',
+ 'Include in Report' => '÷ËÌÀÞÉÔØ × ÏÔÞÅÔ',
+ 'Income' => 'ðÏÓÔÕÐÌÅÎÉÅ',
+ 'Jan' => 'ÑÎ×',
+ 'January' => 'ÑÎ×ÁÒØ',
+ 'Jul' => 'ÉÀÌ',
+ 'July' => 'ÉÀÌØ',
+ 'Jun' => 'ÉÀÎ',
+ 'June' => 'ÉÀÎØ',
+ 'Liability' => 'ðÁÓÓÉ×',
+ 'Mar' => 'ÍÁÒÔ',
+ 'March' => 'ÍÁÒÔ',
+ 'May' => 'ÍÁÊ',
+ 'May ' => 'ÍÁÊ',
+ 'Memo' => 'ëÏÍÍÅÎÔÁÒÉÊ',
+ 'Message' => 'óÏÏÂÝÅÎÉÅ',
+ 'Month' => 'ÍÅÓÑÃ',
+ 'Notes' => 'ëÏÍÍÅÎÔÁÒÉÉ',
+ 'Nov' => 'ÎÏÑ',
+ 'November' => 'ÎÏÑÂÒØ',
+ 'Number' => 'ËÏÄ',
+ 'Oct' => 'ÏËÔ',
+ 'October' => 'ÏËÔÑÂÒØ',
+ 'Out of balance transaction!' => '÷ÎÅ ÂÁÌÌÁÎÓÁ ÐÒÏ×ÏÄÏË!',
+ 'Period' => 'ðÅÒÉÏÄ',
+ 'Post' => 'óÏÈÒÁÎÉÔØ',
+ 'Post as new' => 'óÏÈÒÁÎÉÔØ ËÁË ÎÏ×ÙÊ',
+ 'Print' => 'ðÅÞÁÔØ',
+ 'Project' => 'ðÒÏÅËÔ',
+ 'Project not on file!' => 'ðÒÏÅËÔ ÏÔÓÕÔÓÔ×ÕÅÔ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Quarter' => 'ë×ÁÒÔÁÌ',
+ 'R' => 'R',
+ 'Reference' => 'óÓÙÌËÁ',
+ 'Reports' => 'ïÔÞÅÔÙ',
+ 'Sales Invoice ' => 'æÁËÔÕÒÁ ËÌÉÅÎÔÁ',
+ 'Select from one of the names below' => '÷ÙÂÅÒÉÔÅ ÏÄÎÏ ÉÚ ÎÁÉÍÅÎÏ×ÁÎÉÊ ÉÚ ÓÐÉÓËÁ',
+ 'Select from one of the projects below' => '÷ÙÂÅÒÉÔÅ ÏÄÉÎ ÉÚ ÐÒÏÅËÔÏ× ÉÚ ÓÐÉÓËÁ',
+ 'Sep' => 'ÓÅÎ',
+ 'September' => 'ÓÅÎÔÑÂÒØ',
+ 'Source' => 'éÓÔÏÞÎÉË',
+ 'Startdate' => 'îÁÞÁÌØÎÁÑ ÄÁÔÁ',
+ 'Subject' => 'ôÅÍÁ',
+ 'Subtotal' => 'éÔÏÇÏ ÐÏ ÒÁÚÄÅÌÕ',
+ 'To' => 'ÐÏ',
+ 'Transaction Date missing!' => 'ðÒÏÐÕÝÅÎÁ äÁÔÁ ÐÒÏ×ÏÄËÉ!',
+ 'Transaction deleted!' => 'ðÒÏ×ÏÄËÁ ÕÄÁÌÅÎÁ!',
+ 'Transaction posted!' => 'ðÒÏ×ÏÄËÁ ÓÏÈÒÁÎÅÎÁ!',
+ 'Update' => 'ïÂÎÏ×ÉÔØ',
+ 'Vendor Invoice ' => 'æÁËÔÕÒÁ ÐÏÓÔÁ×ÝÉËÁ',
+ 'Vendor not on file!' => 'ðÏÓÔÁ×ÝÉËÁ ÎÅÔ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Warning!' => '÷ÎÉÍÁÎÉÅ!',
+ 'Year' => 'çÏÄ',
+ 'Yes' => 'äÁ',
+ 'sent' => 'ÏÔÐÒÁ×ÌÅÎÏ',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'ðÒÏ×ÏÄËÁ_ÚÁËÕÐËÉ' => 'ap_transaction',
+ 'ðÒÏ×ÏÄËÁ_ÐÒÏÄÁÖ' => 'ar_transaction',
+ 'ðÒÏÄÏÌÖÉÔØ' => 'continue',
+ 'õÄÁÌÉÔØ' => 'delete',
+ 'ðÒÏ×ÏÄËÉ_çÌÁ×ÎÏÊ_ËÎÉÇÉ' => 'gl_transaction',
+ 'óÏÈÒÁÎÉÔØ' => 'post',
+ 'óÏÈÒÁÎÉÔØ_ËÁË_ÎÏ×ÙÊ' => 'post_as_new',
+ 'æÁËÔÕÒÁ_ËÌÉÅÎÔÁ' => 'sales_invoice_',
+ 'ïÂÎÏ×ÉÔØ' => 'update',
+ 'æÁËÔÕÒÁ_ÐÏÓÔÁ×ÝÉËÁ' => 'vendor_invoice_',
+ 'äÁ' => 'yes',
+};
+
+1;
+
diff --git a/locale/ru/hr b/locale/ru/hr
new file mode 100755
index 00000000..2dabcaa0
--- /dev/null
+++ b/locale/ru/hr
@@ -0,0 +1,119 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'AP' => 'ðÏÓÔÕÐÌÅÎÉÑ',
+ 'Above' => 'âÏÌØÛÅ',
+ 'Accounting Menu' => 'âÕÈÇÁÌÔÅÒÓËÏÅ ÍÅÎÀ',
+ 'Active' => 'áËÔÉ×ÎÙÊ',
+ 'Add Deduction' => 'îÏ×ÏÅ õÄÅÒÖÁÎÉÅ',
+ 'Add Employee' => 'îÏ×ÙÊ ÓÏÔÒÕÄÎÉË',
+ 'Address' => 'áÄÒÅÓ',
+ 'Administrator' => 'áÄÍÉÎÉÓÔÒÁÔÏÒ',
+ 'After Deduction' => 'ðÏÓÌÅ õÄÅÒÖÁÎÉÑ',
+ 'All' => '÷ÓÅ',
+ 'Allowances' => 'óÐÉÓÁÎÉÑ',
+ 'Amount' => 'óÕÍÍÁ',
+ 'Amount missing!' => 'ðÒÏÐÕÝÅÎÁ ÓÕÍÍÁ',
+ 'BIC' => 'BIC',
+ 'Based on' => 'ïÓÎÏ×ÁÎ ÎÁ',
+ 'Before Deduction' => 'äÏ õÄÅÒÖÁÎÉÑ',
+ 'Below' => 'îÉÖÅ',
+ 'City' => 'çÏÒÏÄ',
+ 'Continue' => 'ðÒÏÄÏÌÖÉÔØ',
+ 'Country' => 'óÔÒÁÎÁ',
+ 'DOB' => 'äÁÔÁ ÒÏÖÄÅÎÉÑ',
+ 'Deduct after' => 'õÄÅÒÖÁÔØ ÐÏÓÌÅ',
+ 'Deduction deleted!' => 'õÄÅÒÖÁÎÉÅ ÕÄÁÌÅÎÏ!',
+ 'Deduction saved!' => 'õÄÅÒÖÁÎÉÅ ÓÏÈÒÁÎÅÎÏ!',
+ 'Deductions' => 'õÄÅÒÖÁÎÉÑ',
+ 'Delete' => 'õÄÁÌÉÔØ',
+ 'Description' => 'ïÐÉÓÁÎÉÅ',
+ 'Description missing!' => 'ðÒÏ×ÕÝÅÎÏ ïÐÉÓÁÎÉÅ!',
+ 'E-mail' => 'E-mail',
+ 'Edit Deduction' => 'òÅÄÁËÔÉÒÏ×ÁÔØ õÄÅÒÖÁÎÉÅ',
+ 'Edit Employee' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ÓÏÔÒÕÄÎÉËÁ',
+ 'Employee' => 'óÏÔÒÕÄÎÉË',
+ 'Employee Name' => 'éÍÑ ÓÏÔÒÕÄÎÉËÁ',
+ 'Employee Number' => 'ëÏÄ ÓÏÔÒÕÄÎÉËÁ',
+ 'Employee deleted!' => 'óÏÔÒÕÄÎÉË ÕÄÁÌÅÎ!',
+ 'Employee pays' => 'úÁÒÐÌÁÔÁ ÓÏÔÒÕÄÎÉËÁ',
+ 'Employee saved!' => 'óÏÔÒÕÄÎÉË ÓÏÈÒÁÎÅÎ!',
+ 'Employees' => 'óÏÔÒÕÄÎÉËÉ',
+ 'Employer' => 'òÁÂÏÔÏÄÁÔÅÌØ',
+ 'Employer pays' => 'ðÌÁÔÅÖÉ ÒÁÂÏÔÏÄÁÔÅÌÑ',
+ 'Enddate' => 'ëÏÎÞÎÁÑ ÄÁÔÁ',
+ 'Expense' => 'òÁÓÈÏÄ',
+ 'From' => 'Ó',
+ 'Home Phone' => 'äÏÍÁÛÎÉÊ ÔÅÌÅÆÏÎ',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'éÄÅÎÔÉÆÉËÁÔÏÒ',
+ 'Include in Report' => '÷ËÌÀÞÉÔØ × ÏÔÞÅÔ',
+ 'Login' => 'ðÏÌØÚÏ×ÁÔÅÌØ',
+ 'Manager' => 'íÅÎÅÄÖÅÒ',
+ 'Maximum' => 'íÁËÓÉÍÕÍ',
+ 'Name' => 'îÁÉÍÅÎÏ×ÁÎÉÅ',
+ 'Name missing!' => 'ðÒÏÐÕÝÅÎÏ ÎÁÉÍÅÎÏ×ÁÎÉÅ!',
+ 'Notes' => 'ëÏÍÍÅÎÔÁÒÉÉ',
+ 'Number' => 'ËÏÄ',
+ 'Orphaned' => 'âÅÚ ÐÒÏ×ÏÄÏË',
+ 'Payroll Deduction' => 'õÄÅÒÖÁÎÉÅ ÐÏ ×ÅÄÏÍÏÓÔÉ',
+ 'Rate' => 'ëÕÒÓ',
+ 'Rate missing!' => 'ðÒÏÐÕÝÅÎ ËÕÒÓ',
+ 'Role' => 'òÏÌØ',
+ 'S' => 'S',
+ 'SSN' => 'SSN',
+ 'Sales' => 'ðÒÏÄÁÖÉ',
+ 'Save' => 'óÏÈÒÁÎÉÔØ',
+ 'Save as new' => 'óÏÈÒÁÎÉÔØ ËÁË ÎÏ×ÙÊ',
+ 'Startdate' => 'îÁÞÁÌØÎÁÑ ÄÁÔÁ',
+ 'State/Province' => 'ûÔÁÔ/ðÒÏ×ÉÎÃÉÑ',
+ 'Supervisor' => 'ëÏÎÔÒÏÌÅÒ',
+ 'To' => 'ÐÏ',
+ 'Update' => 'ïÂÎÏ×ÉÔØ',
+ 'User' => 'óÏÔÒÕÄÎÉË',
+ 'Work Phone' => 'òÁÂÏÞÉÊ ÔÅÌÅÆÏÎ',
+ 'Zip/Postal Code' => 'éÎÄÅËÓ',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'îÏ×ÏÅ_õÄÅÒÖÁÎÉÅ' => 'add_deduction',
+ 'îÏ×ÙÊ_ÓÏÔÒÕÄÎÉË' => 'add_employee',
+ 'ðÒÏÄÏÌÖÉÔØ' => 'continue',
+ 'õÄÁÌÉÔØ' => 'delete',
+ 'óÏÈÒÁÎÉÔØ' => 'save',
+ 'óÏÈÒÁÎÉÔØ_ËÁË_ÎÏ×ÙÊ' => 'save_as_new',
+ 'ïÂÎÏ×ÉÔØ' => 'update',
+};
+
+1;
+
diff --git a/locale/ru/ic b/locale/ru/ic
new file mode 100755
index 00000000..05dd5d7c
--- /dev/null
+++ b/locale/ru/ic
@@ -0,0 +1,279 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'A' => 'A',
+ 'Accounting Menu' => 'âÕÈÇÁÌÔÅÒÓËÏÅ ÍÅÎÀ',
+ 'Accounts' => 'óÞÅÔÁ',
+ 'Accrual' => 'îÁËÏÐÌÅÎÉÅ',
+ 'Active' => 'áËÔÉ×ÎÙÊ',
+ 'Add' => 'îÏ×ÙÊ',
+ 'Add Assembly' => 'îÏ×ÙÊ ËÏÍÐÌÅËÔ',
+ 'Add Labor/Overhead' => 'îÏ×ÁÑ ÒÁÂÏÔÁ/ÎÁËÌÁÄÎÙÅ ÒÁÓÈÏÄÙ',
+ 'Add Part' => 'îÏ×ÙÊ ÐÒÏÄÕËÔ',
+ 'Add Purchase Order' => 'îÏ×ÙÊ ÚÁËÁÚ ÐÏÓÔÁ×ÝÉËÁ',
+ 'Add Quotation' => 'îÏ×ÏÅ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'Add Request for Quotation' => 'îÏ×ÙÊ ÚÁÐÒÏÓ ÎÁ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'Add Sales Order' => 'îÏ×ÙÊ ÚÁËÁÚ ËÌÉÅÎÔÁ',
+ 'Add Service' => 'îÏ×ÁÑ ÕÓÌÕÇÁ',
+ 'Address' => 'áÄÒÅÓ',
+ 'Apr' => 'ÁÐÒ',
+ 'April' => 'ÁÐÒÅÌØ',
+ 'Assemblies' => 'ëÏÍÐÌÅËÔÙ',
+ 'Assemblies restocked!' => 'ëÏÍÐÌÅËÔ ÚÁÐÏÌÎÅÎ!',
+ 'Assembly' => 'ëÏÍÌÅËÔ',
+ 'Attachment' => '÷ÌÏÖÅÎÉÅ',
+ 'Aug' => 'Á×Ç',
+ 'August' => 'Á×ÇÕÓÔ',
+ 'BOM' => '÷ÅÄÏÍÏÓÔØ ÍÁÔÅÒÉÁÌÏ×',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'áÄÒÅÓ ÄÏÓÔÁ×ËÉ ÓÞÅÔÁ',
+ 'Bin' => 'Bin',
+ 'Bin List' => 'óÐÉÓÏË Bin',
+ 'Break' => 'ðÒÅÒ×ÁÔØ',
+ 'COGS' => 'COGS',
+ 'Cannot delete item!' => 'îÅ×ÏÚÍÏÖÎÏ ÕÄÁÌÉÔØ ÎÏÍÅÎËÌÁÔÕÒÕ!',
+ 'Cannot stock assemblies!' => 'îÅ×ÏÚÍÏÖÎÏ ÓÆÏÒÍÉÒÏ×ÁÔØ ËÏÍÐÌÅËÔ!',
+ 'Cash' => 'ëÁÓÓÁ',
+ 'Cc' => 'Cc',
+ 'Check Inventory' => 'ðÒÏ×ÅÒÉÔØ ÉÎ×ÅÎÔÁÒØ',
+ 'City' => 'çÏÒÏÄ',
+ 'Closed' => 'úÁËÒÙÔ',
+ 'Company Name' => 'îÁÉÍÅÎÏ×ÁÎÉÅ ÏÒÇÁÎÉÚÁÃÉÉ',
+ 'Components' => 'ëÏÍÐÏÎÅÎÔÙ',
+ 'Contact' => 'ëÏÎÔÁËÔÎÏÅ ÌÉÃÏ',
+ 'Continue' => 'ðÒÏÄÏÌÖÉÔØ',
+ 'Copies' => 'ëÏÐÉÊ',
+ 'Cost' => 'ãÅÎÁ',
+ 'Country' => 'óÔÒÁÎÁ',
+ 'Curr' => '÷ÁÌÀÔÁ',
+ 'Currency' => '÷ÁÌÀÔÁ',
+ 'Customer' => 'ëÌÉÅÎÔ',
+ 'Customer Number' => 'ëÏÄ ËÌÉÅÎÔÁ',
+ 'Customer not on file!' => 'ëÌÉÅÎÔ ÏÔÓÕÔÓÔ×ÕÅÔ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Date' => 'äÁÔÁ',
+ 'Dec' => 'ÄÅË',
+ 'December' => 'ÄÅËÁÂÒØ',
+ 'Delete' => 'õÄÁÌÉÔØ',
+ 'Delivery Date' => 'äÁÔÁ ÐÏÌÕÞÅÎÉÑ',
+ 'Description' => 'ïÐÉÓÁÎÉÅ',
+ 'Detail' => 'äÅÔÁÌÉÚÉÒÏ×ÁÔØ',
+ 'Drawing' => 'éÚÏÂÒÁÖÅÎÉÅ',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'îÅ ÕËÁÚÁÎ ÁÄÒÅÓ E-mail!',
+ 'E-mailed' => 'ïÔÐÒÁ×ÌÅÎÏ ÐÏ e-mail',
+ 'Edit Assembly' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ËÏÍÐÌÅËÔ',
+ 'Edit Labor/Overhead' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ÒÁÂÏÔÙ/ÎÁËÌÁÄÎÙÅ ÒÁÓÈÏÄÙ',
+ 'Edit Part' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ÔÏ×ÁÒ',
+ 'Edit Service' => 'òÅÄÁËÔÉÒÏ×ÁÔØ õÓÌÕÇÕ',
+ 'Employee' => 'óÏÔÒÕÄÎÉË',
+ 'Expense' => 'òÁÓÈÏÄ',
+ 'Extended' => 'óÕÍÍÁ',
+ 'Fax' => 'æÁËÓ',
+ 'Feb' => 'ÆÅ×',
+ 'February' => 'ÆÅ×ÒÁÌØ',
+ 'From' => 'Ó',
+ 'Group' => 'çÒÕÐÐÁ',
+ 'Image' => 'ëÁÒÔÉÎËÁ',
+ 'In-line' => '×ÎÕÔÒÉÓÔÒÏÞÎÙÊ',
+ 'Include in Report' => '÷ËÌÀÞÉÔØ × ÏÔÞÅÔ',
+ 'Income' => 'ðÏÓÔÕÐÌÅÎÉÅ',
+ 'Individual Items' => 'îÏÍÅËÌÁÔÕÒÎÙÅ ÐÏÚÉÃÉÉ',
+ 'Inventory' => 'éÎ×ÅÎÔÁÒÎÙÊ',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'ðÒÅÖÄÅ ÞÅÍ ËÏÍÐÌÅËÔ ÓÞÉÔÁÔØ ÕÓÁÒÅ×ÛÉÍ, ÉÎ×ÅÎÔÁÒÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÄÏÌÖÎÏ ÂÙÔØ ÎÕÌÅ×ÙÍ!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'ðÒÅÖÄÅ ÞÅÍ ÔÏ×ÁÒ ÓÞÉÔÁÔØ ÕÓÁÒÅ×ÛÉÍ, ÉÎ×ÅÎÔÁÒÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÄÏÌÖÎÏ ÂÙÔØ ÎÕÌÅ×ÙÍ!',
+ 'Invoice' => 'óÞÅÔ-ÆÁËÔÕÒÁ',
+ 'Invoice Date missing!' => 'îÅ ÕËÁÚÁÎÁ ÄÁÔÁ ×ÙÓÔÁ×ÌÅÎÉÑ ÓÞÅÔÁ-ÆÁËÔÕÒÙ',
+ 'Invoice Number' => 'îÏÍÅÒ ÓÞÅÔÁ-ÆÁËÔÕÒÙ',
+ 'Invoice Number missing!' => 'îÅ ÕËÁÚÁÎ ÎÏÍÅÒ ÓÞÅÔÁ-ÆÁËÔÕÒÙ',
+ 'Item deleted!' => 'îÏÍÅÎËÌÁÔÕÒÁ ÕÄÁÌÅÎÁ!',
+ 'Item not on file!' => 'îÅÔ ÎÏÍÅÎËÌÁÔÕÒÙ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Items' => 'îÏÍÅÎËÌÁÔÕÒÁ',
+ 'Jan' => 'ÑÎ×',
+ 'January' => 'ÑÎ×ÁÒØ',
+ 'Jul' => 'ÉÀÌ',
+ 'July' => 'ÉÀÌØ',
+ 'Jun' => 'ÉÀÎ',
+ 'June' => 'ÉÀÎØ',
+ 'Labor/Overhead' => 'òÁÂÏÔÁ/ÎÁËÌÁÄÎÙÅ ÒÁÓÈÏÄÙ',
+ 'Leadtime' => 'ïÓÎÏ×ÎÏÅ ×ÒÅÍÑ',
+ 'Line Total' => 'éÔÏÇÏ×ÁÑ ÌÉÎÉÑ',
+ 'Link Accounts' => 'óÓÙÌËÉ ÓÞÅÔÏ×',
+ 'List' => 'óÐÉÓÏË',
+ 'List Price' => 'óÐÉÓÏË ÃÅÎ',
+ 'Make' => 'óÏÚÄÁÔØ',
+ 'Mar' => 'ÍÁÒÔ',
+ 'March' => 'ÍÁÒÔ',
+ 'Markup' => 'îÁÃÅÎËÁ',
+ 'May' => 'ÍÁÊ',
+ 'May ' => 'ÍÁÊ',
+ 'Message' => 'óÏÏÂÝÅÎÉÅ',
+ 'Microfiche' => 'íÏËÒÏÆÉÛÁ',
+ 'Model' => 'íÏÄÅÌØ',
+ 'Name' => 'îÁÉÍÅÎÏ×ÁÎÉÅ',
+ 'No.' => 'îÏÍ.',
+ 'Notes' => 'ëÏÍÍÅÎÔÁÒÉÉ',
+ 'Nov' => 'ÎÏÑ',
+ 'November' => 'ÎÏÑÂÒØ',
+ 'Number' => 'ËÏÄ',
+ 'Number missing in Row' => 'ðÒÏÐÕÝÅÎ ËÏÄ × ÓÔÒÏËÅ',
+ 'Obsolete' => 'õÓÔÁÒÅ×ÛÉÊ',
+ 'Oct' => 'ÏËÔ',
+ 'October' => 'ÏËÔÑÂÒØ',
+ 'On Hand' => '÷ÎÁÌÉÞÉÉ',
+ 'Open' => 'ïÔËÒÙÔØ',
+ 'Order' => 'úÁËÁÚ ËÌÉÅÎÔÁ',
+ 'Order Date missing!' => 'ðÒÏÐÕÝÅÎÁ ÄÁÔÁ ÚÁËÁÚÁ',
+ 'Order Number' => 'îÏÍÅÒ ÚÁËÁÚÁ',
+ 'Order Number missing!' => 'ðÒÏÐÕÝÅÎ ÎÏÍÅÒ ÚÁËÁÚÁ',
+ 'Orphaned' => 'âÅÚ ÐÒÏ×ÏÄÏË',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'õÐÁËÏ×ÏÞÎÙÊ ÓÐÉÓÏË',
+ 'Packing List Date missing!' => 'ðÒÏÐÕÝÅÎÁ ÄÁÔÁ ÕÐÁËÏ×ÏÞÎÏÇÏ ÓÐÉÓÏËÁ!',
+ 'Packing List Number missing!' => 'ðÒÏÐÕÝÅÎ ÎÏÍÅÒ ÕÐÁËÏ×ÏÞÎÏÇÏ ÓÐÉÓÏËÁ!',
+ 'Part' => 'ôÏ×ÁÒ',
+ 'Parts' => 'ôÏ×ÁÒÙ',
+ 'Period' => 'ðÅÒÉÏÄ',
+ 'Phone' => 'ôÅÌ.',
+ 'Pick List' => 'óÐÉÓÏË ÄÌÑ ×ÙÂÏÒÁ',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'ãÅÎÁ',
+ 'Pricegroup' => 'ôÉÐ ÃÅÎ',
+ 'Printed' => 'îÁÐÅÞÁÔÁÎÏ',
+ 'Project' => 'ðÒÏÅËÔ',
+ 'Purchase Order' => 'úÁËÁÚ ÐÏÓÔÁ×ÝÉËÕ',
+ 'Purchase Orders' => 'úÁËÁÚÙ ÐÏÓÔÁ×ÝÉËÕ',
+ 'Qty' => 'ëÏÌÉÞÅÓÔ×Ï',
+ 'Quantity exceeds available units to stock!' => 'ðÒÅ×ÙÛÅÎÏ ËÏÌÉÞÅÓÔ×Ï ÅÄÉÎÉà ÎÏÍÅÎËÌÁÔÕÒÙ ÎÁ ÓËÁÄÅ',
+ 'Quotation' => 'òÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'Quotation Date missing!' => 'ðÒÏÐÕÝÅÎÁ ÄÁÔÁ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÑ!',
+ 'Quotation Number missing!' => 'ðÒÏÐÕÝÅÎ ÎÏÍÅÒ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÑ!',
+ 'Quotations' => 'òÅÚÅÒ×Ù',
+ 'RFQ' => 'úÁÐÒÏÓ ÎÁ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'ROP' => 'ROP',
+ 'Recd' => 'Recd',
+ 'Required by' => 'úÁÐÒÏÛÅÎ',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'æÁËÔÕÒÁ ËÌÉÅÎÔÁ',
+ 'Sales Invoices' => 'æÁËÔÕÒÙ ËÌÉÅÎÔÁ',
+ 'Sales Order' => 'úÁËÁÚ ËÌÉÅÎÔÁ',
+ 'Sales Orders' => 'úÁËÁÚÙ ËÌÉÅÎÔÁ',
+ 'Save' => 'óÏÈÒÁÎÉÔØ',
+ 'Save as new' => 'óÏÈÒÁÎÉÔØ ËÁË ÎÏ×ÙÊ',
+ 'Screen' => 'üËÒÁÎ',
+ 'Select from one of the names below' => '÷ÙÂÅÒÉÔÅ ÏÄÎÏ ÉÚ ÎÁÉÍÅÎÏ×ÁÎÉÊ ÉÚ ÓÐÉÓËÁ',
+ 'Select txt, postscript or PDF!' => '÷ÙÂÅÒÉÔÅ txt, postscript ÉÌÉ PDF!',
+ 'Sell' => 'ðÒÏÄÁÖÁ',
+ 'Sell Price' => 'ðÒÏÄÁÖÎÁÑ ÃÅÎÁ',
+ 'Sep' => 'ÓÅÎ',
+ 'September' => 'ÓÅÎÔÑÂÒØ',
+ 'Serial No.' => 'óÅÒÉÊÎÙÊ ÎÏÍ.',
+ 'Serial Number' => 'óÅÒÉÊÎÙÊ ÎÏÍÅÒ',
+ 'Service' => 'õÓÌÕÇÁ',
+ 'Services' => 'õÓÌÕÇÉ',
+ 'Ship' => 'äÏÓÔÁ×ÉÔØ',
+ 'Ship to' => 'ÄÏÓÔÁ×ÉÔØ ÄÌÑ',
+ 'Shipping Address' => 'áÄÒÅÓ ÄÏÓÔÁ×ËÉ',
+ 'Short' => 'ëÒÁÔËÏÓÒÏÞÎÙÊ',
+ 'State/Province' => 'ûÔÁÔ/ðÒÏ×ÉÎÃÉÑ',
+ 'Stock' => 'óÆÏÒÍÉÒÏ×ÁÔØ',
+ 'Stock Assembly' => 'óÆÏÒÍÉÒÏ×ÁÔØ ËÏÍÐÌÅËÔ',
+ 'Subject' => 'ôÅÍÁ',
+ 'Subtotal' => 'éÔÏÇÏ ÐÏ ÒÁÚÄÅÌÕ',
+ 'Summary' => 'óÕÍÍÁÒÎÏ',
+ 'Tax' => 'îÁÌÏÇ',
+ 'To' => 'ÐÏ',
+ 'Top Level' => '÷ÅÒÈ',
+ 'Translation not on file!' => 'îÅÔ ÐÅÒÅ×ÏÄÁ Ó ÓÐÉÓËÅ!',
+ 'Unit' => 'åÄÉÎÉÃÁ',
+ 'Update' => 'ïÂÎÏ×ÉÔØ',
+ 'Updated' => 'ïÂÎÏ×ÌÅÎÏ',
+ 'Vendor' => 'ðÏÓÔÁ×ÝÉË',
+ 'Vendor Invoice' => 'æÁËÔÕÒÁ ÐÏÓÔÁ×ÝÉËÁ',
+ 'Vendor Invoices' => 'æÁËÔÕÒÙ ÐÏÓÔÁ×ÝÉËÁ',
+ 'Vendor Number' => 'ëÏÄ ÐÏÓÔÁ×ÝÉËÁ',
+ 'Vendor not on file!' => 'ðÏÓÔÁ×ÝÉËÁ ÎÅÔ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Warehouse' => 'óËÌÁÄ',
+ 'Weight' => '÷ÅÓ',
+ 'What type of item is this?' => 'ëÁÏÊ ÜÔÏ ÔÉÐ ÎÏÍÅËÌÁÔÕÒÙ?',
+ 'Work Order' => 'òÁÂÏÞÉÊ ÚÁËÁÚ',
+ 'Year' => 'çÏÄ',
+ 'Zip/Postal Code' => 'éÎÄÅËÓ',
+ 'days' => 'ÄÎÅÊ',
+ 'sent' => 'ÏÔÐÒÁ×ÌÅÎÏ',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'îÏ×ÙÊ_ËÏÍÐÌÅËÔ' => 'add_assembly',
+ 'îÏ×ÁÑ_ÒÁÂÏÔÁ_ÎÁËÌÁÄÎÙÅ_ÒÁÓÈÏÄÙ' => 'add_labor_overhead',
+ 'îÏ×ÙÊ_ÐÒÏÄÕËÔ' => 'add_part',
+ 'îÏ×ÁÑ_ÕÓÌÕÇÁ' => 'add_service',
+ 'ðÒÏÄÏÌÖÉÔØ' => 'continue',
+ 'õÄÁÌÉÔØ' => 'delete',
+ 'òÅÄÁËÔÉÒÏ×ÁÔØ_ËÏÍÐÌÅËÔ' => 'edit_assembly',
+ 'òÅÄÁËÔÉÒÏ×ÁÔØ_ÔÏ×ÁÒ' => 'edit_part',
+ 'òÅÄÁËÔÉÒÏ×ÁÔØ_õÓÌÕÇÕ' => 'edit_service',
+ 'óÏÈÒÁÎÉÔØ' => 'save',
+ 'óÏÈÒÁÎÉÔØ_ËÁË_ÎÏ×ÙÊ' => 'save_as_new',
+ 'ïÂÎÏ×ÉÔØ' => 'update',
+};
+
+1;
+
diff --git a/locale/ru/io b/locale/ru/io
new file mode 100755
index 00000000..b8b13ef8
--- /dev/null
+++ b/locale/ru/io
@@ -0,0 +1,132 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'Add Purchase Order' => 'îÏ×ÙÊ ÚÁËÁÚ ÐÏÓÔÁ×ÝÉËÁ',
+ 'Add Quotation' => 'îÏ×ÏÅ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'Add Request for Quotation' => 'îÏ×ÙÊ ÚÁÐÒÏÓ ÎÁ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'Add Sales Order' => 'îÏ×ÙÊ ÚÁËÁÚ ËÌÉÅÎÔÁ',
+ 'Address' => 'áÄÒÅÓ',
+ 'Apr' => 'ÁÐÒ',
+ 'April' => 'ÁÐÒÅÌØ',
+ 'Attachment' => '÷ÌÏÖÅÎÉÅ',
+ 'Aug' => 'Á×Ç',
+ 'August' => 'Á×ÇÕÓÔ',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'áÄÒÅÓ ÄÏÓÔÁ×ËÉ ÓÞÅÔÁ',
+ 'Bin' => 'Bin',
+ 'Bin List' => 'óÐÉÓÏË Bin',
+ 'Cc' => 'Cc',
+ 'City' => 'çÏÒÏÄ',
+ 'Company Name' => 'îÁÉÍÅÎÏ×ÁÎÉÅ ÏÒÇÁÎÉÚÁÃÉÉ',
+ 'Contact' => 'ëÏÎÔÁËÔÎÏÅ ÌÉÃÏ',
+ 'Continue' => 'ðÒÏÄÏÌÖÉÔØ',
+ 'Copies' => 'ëÏÐÉÊ',
+ 'Country' => 'óÔÒÁÎÁ',
+ 'Customer Number' => 'ëÏÄ ËÌÉÅÎÔÁ',
+ 'Date' => 'äÁÔÁ',
+ 'Dec' => 'ÄÅË',
+ 'December' => 'ÄÅËÁÂÒØ',
+ 'Delivery Date' => 'äÁÔÁ ÐÏÌÕÞÅÎÉÑ',
+ 'Description' => 'ïÐÉÓÁÎÉÅ',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'îÅ ÕËÁÚÁÎ ÁÄÒÅÓ E-mail!',
+ 'E-mailed' => 'ïÔÐÒÁ×ÌÅÎÏ ÐÏ e-mail',
+ 'Extended' => 'óÕÍÍÁ',
+ 'Fax' => 'æÁËÓ',
+ 'Feb' => 'ÆÅ×',
+ 'February' => 'ÆÅ×ÒÁÌØ',
+ 'Group' => 'çÒÕÐÐÁ',
+ 'In-line' => '×ÎÕÔÒÉÓÔÒÏÞÎÙÊ',
+ 'Invoice' => 'óÞÅÔ-ÆÁËÔÕÒÁ',
+ 'Invoice Date missing!' => 'îÅ ÕËÁÚÁÎÁ ÄÁÔÁ ×ÙÓÔÁ×ÌÅÎÉÑ ÓÞÅÔÁ-ÆÁËÔÕÒÙ',
+ 'Invoice Number missing!' => 'îÅ ÕËÁÚÁÎ ÎÏÍÅÒ ÓÞÅÔÁ-ÆÁËÔÕÒÙ',
+ 'Item not on file!' => 'îÅÔ ÎÏÍÅÎËÌÁÔÕÒÙ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Jan' => 'ÑÎ×',
+ 'January' => 'ÑÎ×ÁÒØ',
+ 'Jul' => 'ÉÀÌ',
+ 'July' => 'ÉÀÌØ',
+ 'Jun' => 'ÉÀÎ',
+ 'June' => 'ÉÀÎØ',
+ 'Mar' => 'ÍÁÒÔ',
+ 'March' => 'ÍÁÒÔ',
+ 'May' => 'ÍÁÊ',
+ 'May ' => 'ÍÁÊ',
+ 'Message' => 'óÏÏÂÝÅÎÉÅ',
+ 'Nov' => 'ÎÏÑ',
+ 'November' => 'ÎÏÑÂÒØ',
+ 'Number' => 'ËÏÄ',
+ 'Number missing in Row' => 'ðÒÏÐÕÝÅÎ ËÏÄ × ÓÔÒÏËÅ',
+ 'Oct' => 'ÏËÔ',
+ 'October' => 'ÏËÔÑÂÒØ',
+ 'Order Date missing!' => 'ðÒÏÐÕÝÅÎÁ ÄÁÔÁ ÚÁËÁÚÁ',
+ 'Order Number missing!' => 'ðÒÏÐÕÝÅÎ ÎÏÍÅÒ ÚÁËÁÚÁ',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'õÐÁËÏ×ÏÞÎÙÊ ÓÐÉÓÏË',
+ 'Packing List Date missing!' => 'ðÒÏÐÕÝÅÎÁ ÄÁÔÁ ÕÐÁËÏ×ÏÞÎÏÇÏ ÓÐÉÓÏËÁ!',
+ 'Packing List Number missing!' => 'ðÒÏÐÕÝÅÎ ÎÏÍÅÒ ÕÐÁËÏ×ÏÞÎÏÇÏ ÓÐÉÓÏËÁ!',
+ 'Part' => 'ôÏ×ÁÒ',
+ 'Phone' => 'ôÅÌ.',
+ 'Pick List' => 'óÐÉÓÏË ÄÌÑ ×ÙÂÏÒÁ',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'ãÅÎÁ',
+ 'Printed' => 'îÁÐÅÞÁÔÁÎÏ',
+ 'Project' => 'ðÒÏÅËÔ',
+ 'Purchase Order' => 'úÁËÁÚ ÐÏÓÔÁ×ÝÉËÕ',
+ 'Qty' => 'ëÏÌÉÞÅÓÔ×Ï',
+ 'Quotation' => 'òÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'Quotation Date missing!' => 'ðÒÏÐÕÝÅÎÁ ÄÁÔÁ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÑ!',
+ 'Quotation Number missing!' => 'ðÒÏÐÕÝÅÎ ÎÏÍÅÒ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÑ!',
+ 'Recd' => 'Recd',
+ 'Required by' => 'úÁÐÒÏÛÅÎ',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'úÁËÁÚ ËÌÉÅÎÔÁ',
+ 'Screen' => 'üËÒÁÎ',
+ 'Select txt, postscript or PDF!' => '÷ÙÂÅÒÉÔÅ txt, postscript ÉÌÉ PDF!',
+ 'Sep' => 'ÓÅÎ',
+ 'September' => 'ÓÅÎÔÑÂÒØ',
+ 'Serial No.' => 'óÅÒÉÊÎÙÊ ÎÏÍ.',
+ 'Service' => 'õÓÌÕÇÁ',
+ 'Ship' => 'äÏÓÔÁ×ÉÔØ',
+ 'Ship to' => 'ÄÏÓÔÁ×ÉÔØ ÄÌÑ',
+ 'Shipping Address' => 'áÄÒÅÓ ÄÏÓÔÁ×ËÉ',
+ 'State/Province' => 'ûÔÁÔ/ðÒÏ×ÉÎÃÉÑ',
+ 'Subject' => 'ôÅÍÁ',
+ 'Subtotal' => 'éÔÏÇÏ ÐÏ ÒÁÚÄÅÌÕ',
+ 'To' => 'ÐÏ',
+ 'Translation not on file!' => 'îÅÔ ÐÅÒÅ×ÏÄÁ Ó ÓÐÉÓËÅ!',
+ 'Unit' => 'åÄÉÎÉÃÁ',
+ 'Vendor Number' => 'ëÏÄ ÐÏÓÔÁ×ÝÉËÁ',
+ 'What type of item is this?' => 'ëÁÏÊ ÜÔÏ ÔÉÐ ÎÏÍÅËÌÁÔÕÒÙ?',
+ 'Work Order' => 'òÁÂÏÞÉÊ ÚÁËÁÚ',
+ 'Zip/Postal Code' => 'éÎÄÅËÓ',
+ 'sent' => 'ÏÔÐÒÁ×ÌÅÎÏ',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'ðÒÏÄÏÌÖÉÔØ' => 'continue',
+};
+
+1;
+
diff --git a/locale/ru/ir b/locale/ru/ir
new file mode 100755
index 00000000..a1b62810
--- /dev/null
+++ b/locale/ru/ir
@@ -0,0 +1,226 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'Account' => 'óÞÅÔ',
+ 'Accounting Menu' => 'âÕÈÇÁÌÔÅÒÓËÏÅ ÍÅÎÀ',
+ 'Add Purchase Order' => 'îÏ×ÙÊ ÚÁËÁÚ ÐÏÓÔÁ×ÝÉËÁ',
+ 'Add Quotation' => 'îÏ×ÏÅ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'Add Request for Quotation' => 'îÏ×ÙÊ ÚÁÐÒÏÓ ÎÁ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'Add Sales Order' => 'îÏ×ÙÊ ÚÁËÁÚ ËÌÉÅÎÔÁ',
+ 'Add Vendor Invoice' => 'îÏ×ÁÑ ÆÁËÔÕÒÁ ÐÏÓÔÕÐÌÅÎÉÑ',
+ 'Address' => 'áÄÒÅÓ',
+ 'Amount' => 'óÕÍÍÁ',
+ 'Apr' => 'ÁÐÒ',
+ 'April' => 'ÁÐÒÅÌØ',
+ 'Are you sure you want to delete Invoice Number' => '÷Ù Õ×ÅÒÅÎÙ, ÞÔÏ ÈÏÔÉÔÅ ÕÄÁÌÉÔØ ÄÁÎÎÕÀ ÆÁËÔÕÒÕ?',
+ 'Attachment' => '÷ÌÏÖÅÎÉÅ',
+ 'Aug' => 'Á×Ç',
+ 'August' => 'Á×ÇÕÓÔ',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'áÄÒÅÓ ÄÏÓÔÁ×ËÉ ÓÞÅÔÁ',
+ 'Bin' => 'Bin',
+ 'Bin List' => 'óÐÉÓÏË Bin',
+ 'Cannot delete invoice!' => 'îÅ×ÏÚÍÏÖÎÏ ÕÄÁÌÉÔØ ÆÁËÔÕÒÕ!',
+ 'Cannot post invoice for a closed period!' => 'îÅ×ÏÚÍÏÖÎÏ ÐÒÏ×ÅÓÔÉ ÆÁËÔÕÒÕ × ÚÁËÒÙÔÏÍ ÐÅÒÉÏÄÅ!',
+ 'Cannot post invoice!' => 'îÅ×ÏÚÍÏÖÎÏ ÐÒÏ×ÅÓÔÉ ÆÁËÔÕÒÕ!',
+ 'Cannot post payment for a closed period!' => 'îÅ×ÏÚÍÏÖÎÏ ÐÒÏ×ÅÓÔÉ ÏÐÌÁÔÕ ÄÌÑ ÚÁËÒÙÔÏÇÏ ÐÅÒÉÏÄÁ!',
+ 'Cc' => 'Cc',
+ 'City' => 'çÏÒÏÄ',
+ 'Company Name' => 'îÁÉÍÅÎÏ×ÁÎÉÅ ÏÒÇÁÎÉÚÁÃÉÉ',
+ 'Confirm!' => 'ðÏÄÔ×ÅÒÄÉÔØ!',
+ 'Contact' => 'ëÏÎÔÁËÔÎÏÅ ÌÉÃÏ',
+ 'Continue' => 'ðÒÏÄÏÌÖÉÔØ',
+ 'Copies' => 'ëÏÐÉÊ',
+ 'Country' => 'óÔÒÁÎÁ',
+ 'Credit Limit' => 'ìÉÍÉÔ ËÒÅÄÉÔÁ',
+ 'Currency' => '÷ÁÌÀÔÁ',
+ 'Customer Number' => 'ëÏÄ ËÌÉÅÎÔÁ',
+ 'Customer not on file!' => 'ëÌÉÅÎÔ ÏÔÓÕÔÓÔ×ÕÅÔ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Date' => 'äÁÔÁ',
+ 'Dec' => 'ÄÅË',
+ 'December' => 'ÄÅËÁÂÒØ',
+ 'Delete' => 'õÄÁÌÉÔØ',
+ 'Delivery Date' => 'äÁÔÁ ÐÏÌÕÞÅÎÉÑ',
+ 'Department' => 'ïÔÄÅÌ',
+ 'Description' => 'ïÐÉÓÁÎÉÅ',
+ 'Due Date' => 'ïÐÌÁÔÉÔØ ÄÏ',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'îÅ ÕËÁÚÁÎ ÁÄÒÅÓ E-mail!',
+ 'E-mailed' => 'ïÔÐÒÁ×ÌÅÎÏ ÐÏ e-mail',
+ 'Edit Vendor Invoice' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ÆÁËÔÕÒÕ ÐÏÓÔÁ×ÝÉËÕ',
+ 'Exch' => 'ëÕÒÓ',
+ 'Exchange Rate' => 'ëÕÒÓ ×ÁÌÀÔÙ',
+ 'Exchange rate for payment missing!' => 'ðÒÏÐÕÝÅÎ ËÕÒÓ ÏÐÌÁÔÙ!',
+ 'Exchange rate missing!' => 'ðÒÏÐÕÝÅÎ ËÕÒÓ!',
+ 'Extended' => 'óÕÍÍÁ',
+ 'Fax' => 'æÁËÓ',
+ 'Feb' => 'ÆÅ×',
+ 'February' => 'ÆÅ×ÒÁÌØ',
+ 'Group' => 'çÒÕÐÐÁ',
+ 'In-line' => '×ÎÕÔÒÉÓÔÒÏÞÎÙÊ',
+ 'Internal Notes' => '÷ÎÕÔÒÅÎÎÉÅ ÚÁÍÅÔËÉ',
+ 'Invoice' => 'óÞÅÔ-ÆÁËÔÕÒÁ',
+ 'Invoice Date' => 'äÁÔÁ ×ÙÓÔÁ×ÌÅÎÉÑ',
+ 'Invoice Date missing!' => 'îÅ ÕËÁÚÁÎÁ ÄÁÔÁ ×ÙÓÔÁ×ÌÅÎÉÑ ÓÞÅÔÁ-ÆÁËÔÕÒÙ',
+ 'Invoice Number' => 'îÏÍÅÒ ÓÞÅÔÁ-ÆÁËÔÕÒÙ',
+ 'Invoice Number missing!' => 'îÅ ÕËÁÚÁÎ ÎÏÍÅÒ ÓÞÅÔÁ-ÆÁËÔÕÒÙ',
+ 'Invoice deleted!' => 'óÞÅÔ-ÆÁËÔÕÒÁ ÕÄÁÌÅÎÁ!',
+ 'Item not on file!' => 'îÅÔ ÎÏÍÅÎËÌÁÔÕÒÙ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Jan' => 'ÑÎ×',
+ 'January' => 'ÑÎ×ÁÒØ',
+ 'Jul' => 'ÉÀÌ',
+ 'July' => 'ÉÀÌØ',
+ 'Jun' => 'ÉÀÎ',
+ 'June' => 'ÉÀÎØ',
+ 'Language' => 'ñÚÙË',
+ 'Mar' => 'ÍÁÒÔ',
+ 'March' => 'ÍÁÒÔ',
+ 'May' => 'ÍÁÊ',
+ 'May ' => 'ÍÁÊ',
+ 'Memo' => 'ëÏÍÍÅÎÔÁÒÉÊ',
+ 'Message' => 'óÏÏÂÝÅÎÉÅ',
+ 'Notes' => 'ëÏÍÍÅÎÔÁÒÉÉ',
+ 'Nov' => 'ÎÏÑ',
+ 'November' => 'ÎÏÑÂÒØ',
+ 'Number' => 'ËÏÄ',
+ 'Number missing in Row' => 'ðÒÏÐÕÝÅÎ ËÏÄ × ÓÔÒÏËÅ',
+ 'Oct' => 'ÏËÔ',
+ 'October' => 'ÏËÔÑÂÒØ',
+ 'Order Date missing!' => 'ðÒÏÐÕÝÅÎÁ ÄÁÔÁ ÚÁËÁÚÁ',
+ 'Order Number' => 'îÏÍÅÒ ÚÁËÁÚÁ',
+ 'Order Number missing!' => 'ðÒÏÐÕÝÅÎ ÎÏÍÅÒ ÚÁËÁÚÁ',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'õÐÁËÏ×ÏÞÎÙÊ ÓÐÉÓÏË',
+ 'Packing List Date missing!' => 'ðÒÏÐÕÝÅÎÁ ÄÁÔÁ ÕÐÁËÏ×ÏÞÎÏÇÏ ÓÐÉÓÏËÁ!',
+ 'Packing List Number missing!' => 'ðÒÏÐÕÝÅÎ ÎÏÍÅÒ ÕÐÁËÏ×ÏÞÎÏÇÏ ÓÐÉÓÏËÁ!',
+ 'Part' => 'ôÏ×ÁÒ',
+ 'Payment date missing!' => 'ðÒÏÐÕÝÅÎÁ ÄÁÔÁ ÏÐÌÁÔÙ!',
+ 'Payments' => 'ïÐÌÁÔÙ',
+ 'Phone' => 'ôÅÌ.',
+ 'Pick List' => 'óÐÉÓÏË ÄÌÑ ×ÙÂÏÒÁ',
+ 'Post' => 'óÏÈÒÁÎÉÔØ',
+ 'Post as new' => 'óÏÈÒÁÎÉÔØ ËÁË ÎÏ×ÙÊ',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'ãÅÎÁ',
+ 'Print' => 'ðÅÞÁÔØ',
+ 'Printed' => 'îÁÐÅÞÁÔÁÎÏ',
+ 'Project' => 'ðÒÏÅËÔ',
+ 'Project not on file!' => 'ðÒÏÅËÔ ÏÔÓÕÔÓÔ×ÕÅÔ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Purchase Order' => 'úÁËÁÚ ÐÏÓÔÁ×ÝÉËÕ',
+ 'Qty' => 'ëÏÌÉÞÅÓÔ×Ï',
+ 'Quotation' => 'òÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'Quotation Date missing!' => 'ðÒÏÐÕÝÅÎÁ ÄÁÔÁ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÑ!',
+ 'Quotation Number missing!' => 'ðÒÏÐÕÝÅÎ ÎÏÍÅÒ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÑ!',
+ 'Recd' => 'Recd',
+ 'Record in' => 'ïÔÎÅÓÔÉ ÎÁ ÓÞÅÔ',
+ 'Reference' => 'óÓÙÌËÁ',
+ 'Remaining' => 'ïÓÔÁÔÏË',
+ 'Required by' => 'úÁÐÒÏÛÅÎ',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'úÁËÁÚ ËÌÉÅÎÔÁ',
+ 'Screen' => 'üËÒÁÎ',
+ 'Select from one of the names below' => '÷ÙÂÅÒÉÔÅ ÏÄÎÏ ÉÚ ÎÁÉÍÅÎÏ×ÁÎÉÊ ÉÚ ÓÐÉÓËÁ',
+ 'Select from one of the projects below' => '÷ÙÂÅÒÉÔÅ ÏÄÉÎ ÉÚ ÐÒÏÅËÔÏ× ÉÚ ÓÐÉÓËÁ',
+ 'Select txt, postscript or PDF!' => '÷ÙÂÅÒÉÔÅ txt, postscript ÉÌÉ PDF!',
+ 'Sep' => 'ÓÅÎ',
+ 'September' => 'ÓÅÎÔÑÂÒØ',
+ 'Serial No.' => 'óÅÒÉÊÎÙÊ ÎÏÍ.',
+ 'Service' => 'õÓÌÕÇÁ',
+ 'Ship' => 'äÏÓÔÁ×ÉÔØ',
+ 'Ship to' => 'ÄÏÓÔÁ×ÉÔØ ÄÌÑ',
+ 'Shipping Address' => 'áÄÒÅÓ ÄÏÓÔÁ×ËÉ',
+ 'Source' => 'éÓÔÏÞÎÉË',
+ 'Startdate' => 'îÁÞÁÌØÎÁÑ ÄÁÔÁ',
+ 'State/Province' => 'ûÔÁÔ/ðÒÏ×ÉÎÃÉÑ',
+ 'Subject' => 'ôÅÍÁ',
+ 'Subtotal' => 'éÔÏÇÏ ÐÏ ÒÁÚÄÅÌÕ',
+ 'Tax Included' => 'îÁÌÏÇÉ ×ËÌÀÞÅÎÙ × ÓÕÍÍÕ',
+ 'To' => 'ÐÏ',
+ 'Total' => '÷ÓÅÇÏ',
+ 'Translation not on file!' => 'îÅÔ ÐÅÒÅ×ÏÄÁ Ó ÓÐÉÓËÅ!',
+ 'Unit' => 'åÄÉÎÉÃÁ',
+ 'Update' => 'ïÂÎÏ×ÉÔØ',
+ 'Vendor' => 'ðÏÓÔÁ×ÝÉË',
+ 'Vendor Number' => 'ëÏÄ ÐÏÓÔÁ×ÝÉËÁ',
+ 'Vendor missing!' => 'ðÒÏÐÕÝÅÎ ÐÏÓÔÁ×ÝÉË!',
+ 'Vendor not on file!' => 'ðÏÓÔÁ×ÝÉËÁ ÎÅÔ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Warning!' => '÷ÎÉÍÁÎÉÅ!',
+ 'What type of item is this?' => 'ëÁÏÊ ÜÔÏ ÔÉÐ ÎÏÍÅËÌÁÔÕÒÙ?',
+ 'Work Order' => 'òÁÂÏÞÉÊ ÚÁËÁÚ',
+ 'Yes' => 'äÁ',
+ 'Zip/Postal Code' => 'éÎÄÅËÓ',
+ 'ea' => 'ÛÔ.',
+ 'posted!' => 'ÏÔÐÒÁ×ÌÅÎÏ',
+ 'sent' => 'ÏÔÐÒÁ×ÌÅÎÏ',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'ðÒÏÄÏÌÖÉÔØ' => 'continue',
+ 'õÄÁÌÉÔØ' => 'delete',
+ 'óÏÈÒÁÎÉÔØ' => 'post',
+ 'óÏÈÒÁÎÉÔØ_ËÁË_ÎÏ×ÙÊ' => 'post_as_new',
+ 'úÁËÁÚ_ÐÏÓÔÁ×ÝÉËÕ' => 'purchase_order',
+ 'ïÂÎÏ×ÉÔØ' => 'update',
+ 'äÁ' => 'yes',
+};
+
+1;
+
diff --git a/locale/ru/is b/locale/ru/is
new file mode 100755
index 00000000..4e96ef40
--- /dev/null
+++ b/locale/ru/is
@@ -0,0 +1,237 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'Account' => 'óÞÅÔ',
+ 'Accounting Menu' => 'âÕÈÇÁÌÔÅÒÓËÏÅ ÍÅÎÀ',
+ 'Add Purchase Order' => 'îÏ×ÙÊ ÚÁËÁÚ ÐÏÓÔÁ×ÝÉËÁ',
+ 'Add Quotation' => 'îÏ×ÏÅ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'Add Request for Quotation' => 'îÏ×ÙÊ ÚÁÐÒÏÓ ÎÁ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'Add Sales Invoice' => 'îÏ×ÁÑ ÆÁËÔÕÒÁ ÐÒÏÄÁÖÉ',
+ 'Add Sales Order' => 'îÏ×ÙÊ ÚÁËÁÚ ËÌÉÅÎÔÁ',
+ 'Address' => 'áÄÒÅÓ',
+ 'Amount' => 'óÕÍÍÁ',
+ 'Apr' => 'ÁÐÒ',
+ 'April' => 'ÁÐÒÅÌØ',
+ 'Are you sure you want to delete Invoice Number' => '÷Ù Õ×ÅÒÅÎÙ, ÞÔÏ ÈÏÔÉÔÅ ÕÄÁÌÉÔØ ÄÁÎÎÕÀ ÆÁËÔÕÒÕ?',
+ 'Attachment' => '÷ÌÏÖÅÎÉÅ',
+ 'Aug' => 'Á×Ç',
+ 'August' => 'Á×ÇÕÓÔ',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'áÄÒÅÓ ÄÏÓÔÁ×ËÉ ÓÞÅÔÁ',
+ 'Bin' => 'Bin',
+ 'Bin List' => 'óÐÉÓÏË Bin',
+ 'Business' => 'âÉÚÎÅÓ',
+ 'Cannot delete invoice!' => 'îÅ×ÏÚÍÏÖÎÏ ÕÄÁÌÉÔØ ÆÁËÔÕÒÕ!',
+ 'Cannot post invoice for a closed period!' => 'îÅ×ÏÚÍÏÖÎÏ ÐÒÏ×ÅÓÔÉ ÆÁËÔÕÒÕ × ÚÁËÒÙÔÏÍ ÐÅÒÉÏÄÅ!',
+ 'Cannot post invoice!' => 'îÅ×ÏÚÍÏÖÎÏ ÐÒÏ×ÅÓÔÉ ÆÁËÔÕÒÕ!',
+ 'Cannot post payment for a closed period!' => 'îÅ×ÏÚÍÏÖÎÏ ÐÒÏ×ÅÓÔÉ ÏÐÌÁÔÕ ÄÌÑ ÚÁËÒÙÔÏÇÏ ÐÅÒÉÏÄÁ!',
+ 'Cc' => 'Cc',
+ 'City' => 'çÏÒÏÄ',
+ 'Company Name' => 'îÁÉÍÅÎÏ×ÁÎÉÅ ÏÒÇÁÎÉÚÁÃÉÉ',
+ 'Confirm!' => 'ðÏÄÔ×ÅÒÄÉÔØ!',
+ 'Contact' => 'ëÏÎÔÁËÔÎÏÅ ÌÉÃÏ',
+ 'Continue' => 'ðÒÏÄÏÌÖÉÔØ',
+ 'Copies' => 'ëÏÐÉÊ',
+ 'Country' => 'óÔÒÁÎÁ',
+ 'Credit Limit' => 'ìÉÍÉÔ ËÒÅÄÉÔÁ',
+ 'Currency' => '÷ÁÌÀÔÁ',
+ 'Customer' => 'ëÌÉÅÎÔ',
+ 'Customer Number' => 'ëÏÄ ËÌÉÅÎÔÁ',
+ 'Customer missing!' => 'ðÒÏÐÕÝÅÎ ËÌÉÅÎÔ!',
+ 'Customer not on file!' => 'ëÌÉÅÎÔ ÏÔÓÕÔÓÔ×ÕÅÔ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Date' => 'äÁÔÁ',
+ 'Dec' => 'ÄÅË',
+ 'December' => 'ÄÅËÁÂÒØ',
+ 'Delete' => 'õÄÁÌÉÔØ',
+ 'Delivery Date' => 'äÁÔÁ ÐÏÌÕÞÅÎÉÑ',
+ 'Department' => 'ïÔÄÅÌ',
+ 'Description' => 'ïÐÉÓÁÎÉÅ',
+ 'Due Date' => 'ïÐÌÁÔÉÔØ ÄÏ',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'îÅ ÕËÁÚÁÎ ÁÄÒÅÓ E-mail!',
+ 'E-mailed' => 'ïÔÐÒÁ×ÌÅÎÏ ÐÏ e-mail',
+ 'Edit Sales Invoice' => 'òÅÄÁËÔÉÒÏ×ÁÔØ æÁËÔÕÒÕ ËÌÉÅÎÔÁ',
+ 'Exch' => 'ëÕÒÓ',
+ 'Exchange Rate' => 'ëÕÒÓ ×ÁÌÀÔÙ',
+ 'Exchange rate for payment missing!' => 'ðÒÏÐÕÝÅÎ ËÕÒÓ ÏÐÌÁÔÙ!',
+ 'Exchange rate missing!' => 'ðÒÏÐÕÝÅÎ ËÕÒÓ!',
+ 'Extended' => 'óÕÍÍÁ',
+ 'Fax' => 'æÁËÓ',
+ 'Feb' => 'ÆÅ×',
+ 'February' => 'ÆÅ×ÒÁÌØ',
+ 'Group' => 'çÒÕÐÐÁ',
+ 'In-line' => '×ÎÕÔÒÉÓÔÒÏÞÎÙÊ',
+ 'Internal Notes' => '÷ÎÕÔÒÅÎÎÉÅ ÚÁÍÅÔËÉ',
+ 'Invoice' => 'óÞÅÔ-ÆÁËÔÕÒÁ',
+ 'Invoice Date' => 'äÁÔÁ ×ÙÓÔÁ×ÌÅÎÉÑ',
+ 'Invoice Date missing!' => 'îÅ ÕËÁÚÁÎÁ ÄÁÔÁ ×ÙÓÔÁ×ÌÅÎÉÑ ÓÞÅÔÁ-ÆÁËÔÕÒÙ',
+ 'Invoice Number' => 'îÏÍÅÒ ÓÞÅÔÁ-ÆÁËÔÕÒÙ',
+ 'Invoice Number missing!' => 'îÅ ÕËÁÚÁÎ ÎÏÍÅÒ ÓÞÅÔÁ-ÆÁËÔÕÒÙ',
+ 'Invoice deleted!' => 'óÞÅÔ-ÆÁËÔÕÒÁ ÕÄÁÌÅÎÁ!',
+ 'Item not on file!' => 'îÅÔ ÎÏÍÅÎËÌÁÔÕÒÙ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Jan' => 'ÑÎ×',
+ 'January' => 'ÑÎ×ÁÒØ',
+ 'Jul' => 'ÉÀÌ',
+ 'July' => 'ÉÀÌØ',
+ 'Jun' => 'ÉÀÎ',
+ 'June' => 'ÉÀÎØ',
+ 'Mar' => 'ÍÁÒÔ',
+ 'March' => 'ÍÁÒÔ',
+ 'May' => 'ÍÁÊ',
+ 'May ' => 'ÍÁÊ',
+ 'Memo' => 'ëÏÍÍÅÎÔÁÒÉÊ',
+ 'Message' => 'óÏÏÂÝÅÎÉÅ',
+ 'Notes' => 'ëÏÍÍÅÎÔÁÒÉÉ',
+ 'Nov' => 'ÎÏÑ',
+ 'November' => 'ÎÏÑÂÒØ',
+ 'Number' => 'ËÏÄ',
+ 'Number missing in Row' => 'ðÒÏÐÕÝÅÎ ËÏÄ × ÓÔÒÏËÅ',
+ 'Oct' => 'ÏËÔ',
+ 'October' => 'ÏËÔÑÂÒØ',
+ 'Order Date missing!' => 'ðÒÏÐÕÝÅÎÁ ÄÁÔÁ ÚÁËÁÚÁ',
+ 'Order Number' => 'îÏÍÅÒ ÚÁËÁÚÁ',
+ 'Order Number missing!' => 'ðÒÏÐÕÝÅÎ ÎÏÍÅÒ ÚÁËÁÚÁ',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'õÐÁËÏ×ÏÞÎÙÊ ÓÐÉÓÏË',
+ 'Packing List Date missing!' => 'ðÒÏÐÕÝÅÎÁ ÄÁÔÁ ÕÐÁËÏ×ÏÞÎÏÇÏ ÓÐÉÓÏËÁ!',
+ 'Packing List Number missing!' => 'ðÒÏÐÕÝÅÎ ÎÏÍÅÒ ÕÐÁËÏ×ÏÞÎÏÇÏ ÓÐÉÓÏËÁ!',
+ 'Part' => 'ôÏ×ÁÒ',
+ 'Payment date missing!' => 'ðÒÏÐÕÝÅÎÁ ÄÁÔÁ ÏÐÌÁÔÙ!',
+ 'Payments' => 'ïÐÌÁÔÙ',
+ 'Phone' => 'ôÅÌ.',
+ 'Pick List' => 'óÐÉÓÏË ÄÌÑ ×ÙÂÏÒÁ',
+ 'Post' => 'óÏÈÒÁÎÉÔØ',
+ 'Post as new' => 'óÏÈÒÁÎÉÔØ ËÁË ÎÏ×ÙÊ',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'ãÅÎÁ',
+ 'Print' => 'ðÅÞÁÔØ',
+ 'Print and Post' => 'îÁÐÅÞÁÔÁÔØ É ÏÔÐÒÁ×ÉÔØ',
+ 'Printed' => 'îÁÐÅÞÁÔÁÎÏ',
+ 'Project' => 'ðÒÏÅËÔ',
+ 'Project not on file!' => 'ðÒÏÅËÔ ÏÔÓÕÔÓÔ×ÕÅÔ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Purchase Order' => 'úÁËÁÚ ÐÏÓÔÁ×ÝÉËÕ',
+ 'Qty' => 'ëÏÌÉÞÅÓÔ×Ï',
+ 'Quotation' => 'òÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'Quotation Date missing!' => 'ðÒÏÐÕÝÅÎÁ ÄÁÔÁ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÑ!',
+ 'Quotation Number missing!' => 'ðÒÏÐÕÝÅÎ ÎÏÍÅÒ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÑ!',
+ 'Recd' => 'Recd',
+ 'Record in' => 'ïÔÎÅÓÔÉ ÎÁ ÓÞÅÔ',
+ 'Reference' => 'óÓÙÌËÁ',
+ 'Remaining' => 'ïÓÔÁÔÏË',
+ 'Required by' => 'úÁÐÒÏÛÅÎ',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'úÁËÁÚ ËÌÉÅÎÔÁ',
+ 'Salesperson' => 'ðÒÏÄÁ×ÅÃ',
+ 'Screen' => 'üËÒÁÎ',
+ 'Select from one of the names below' => '÷ÙÂÅÒÉÔÅ ÏÄÎÏ ÉÚ ÎÁÉÍÅÎÏ×ÁÎÉÊ ÉÚ ÓÐÉÓËÁ',
+ 'Select from one of the projects below' => '÷ÙÂÅÒÉÔÅ ÏÄÉÎ ÉÚ ÐÒÏÅËÔÏ× ÉÚ ÓÐÉÓËÁ',
+ 'Select postscript or PDF!' => '÷ÙÂÅÒÉÔÅ postscript ÉÌÉ PDF!',
+ 'Select txt, postscript or PDF!' => '÷ÙÂÅÒÉÔÅ txt, postscript ÉÌÉ PDF!',
+ 'Sep' => 'ÓÅÎ',
+ 'September' => 'ÓÅÎÔÑÂÒØ',
+ 'Serial No.' => 'óÅÒÉÊÎÙÊ ÎÏÍ.',
+ 'Service' => 'õÓÌÕÇÁ',
+ 'Ship' => 'äÏÓÔÁ×ÉÔØ',
+ 'Ship to' => 'ÄÏÓÔÁ×ÉÔØ ÄÌÑ',
+ 'Ship via' => 'ÄÏÓÔÁ×ÉÔØ ÞÅÒÅÚ',
+ 'Shipping Address' => 'áÄÒÅÓ ÄÏÓÔÁ×ËÉ',
+ 'Shipping Point' => 'íÅÓÔÏ ÄÏÓÔÁ×ËÉ',
+ 'Source' => 'éÓÔÏÞÎÉË',
+ 'Startdate' => 'îÁÞÁÌØÎÁÑ ÄÁÔÁ',
+ 'State/Province' => 'ûÔÁÔ/ðÒÏ×ÉÎÃÉÑ',
+ 'Subject' => 'ôÅÍÁ',
+ 'Subtotal' => 'éÔÏÇÏ ÐÏ ÒÁÚÄÅÌÕ',
+ 'Tax Included' => 'îÁÌÏÇÉ ×ËÌÀÞÅÎÙ × ÓÕÍÍÕ',
+ 'To' => 'ÐÏ',
+ 'Total' => '÷ÓÅÇÏ',
+ 'Trade Discount' => 'ôÏÒÇÏ×ÁÑ ÓËÉÄËÁ',
+ 'Translation not on file!' => 'îÅÔ ÐÅÒÅ×ÏÄÁ Ó ÓÐÉÓËÅ!',
+ 'Unit' => 'åÄÉÎÉÃÁ',
+ 'Update' => 'ïÂÎÏ×ÉÔØ',
+ 'Vendor Number' => 'ëÏÄ ÐÏÓÔÁ×ÝÉËÁ',
+ 'Vendor not on file!' => 'ðÏÓÔÁ×ÝÉËÁ ÎÅÔ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Warning!' => '÷ÎÉÍÁÎÉÅ!',
+ 'What type of item is this?' => 'ëÁÏÊ ÜÔÏ ÔÉÐ ÎÏÍÅËÌÁÔÕÒÙ?',
+ 'Work Order' => 'òÁÂÏÞÉÊ ÚÁËÁÚ',
+ 'Yes' => 'äÁ',
+ 'Zip/Postal Code' => 'éÎÄÅËÓ',
+ 'ea' => 'ÛÔ.',
+ 'posted!' => 'ÏÔÐÒÁ×ÌÅÎÏ',
+ 'sent' => 'ÏÔÐÒÁ×ÌÅÎÏ',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'ðÒÏÄÏÌÖÉÔØ' => 'continue',
+ 'õÄÁÌÉÔØ' => 'delete',
+ 'e_mail' => 'e_mail',
+ 'óÏÈÒÁÎÉÔØ' => 'post',
+ 'óÏÈÒÁÎÉÔØ_ËÁË_ÎÏ×ÙÊ' => 'post_as_new',
+ 'ðÅÞÁÔØ' => 'print',
+ 'îÁÐÅÞÁÔÁÔØ_É_ÏÔÐÒÁ×ÉÔØ' => 'print_and_post',
+ 'úÁËÁÚ_ËÌÉÅÎÔÁ' => 'sales_order',
+ 'ÄÏÓÔÁ×ÉÔØ_ÄÌÑ' => 'ship_to',
+ 'ïÂÎÏ×ÉÔØ' => 'update',
+ 'äÁ' => 'yes',
+};
+
+1;
+
diff --git a/locale/ru/jc b/locale/ru/jc
new file mode 100755
index 00000000..fe8628c0
--- /dev/null
+++ b/locale/ru/jc
@@ -0,0 +1,95 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'Accounting Menu' => 'âÕÈÇÁÌÔÅÒÓËÏÅ ÍÅÎÀ',
+ 'Amount' => 'óÕÍÍÁ',
+ 'Closed' => 'úÁËÒÙÔ',
+ 'Confirm!' => 'ðÏÄÔ×ÅÒÄÉÔØ!',
+ 'Continue' => 'ðÒÏÄÏÌÖÉÔØ',
+ 'Cost' => 'ãÅÎÁ',
+ 'Current' => 'ôÅËÕÝÉÊ',
+ 'Date' => 'äÁÔÁ',
+ 'Date missing!' => 'ðÒÏÐÕÝÅÎÁ ÄÁÔÁ',
+ 'Delete' => 'õÄÁÌÉÔØ',
+ 'Description' => 'ïÐÉÓÁÎÉÅ',
+ 'Employee' => 'óÏÔÒÕÄÎÉË',
+ 'From' => 'Ó',
+ 'ID' => 'éÄÅÎÔÉÆÉËÁÔÏÒ',
+ 'Include in Report' => '÷ËÌÀÞÉÔØ × ÏÔÞÅÔ',
+ 'Month' => 'ÍÅÓÑÃ',
+ 'Notes' => 'ëÏÍÍÅÎÔÁÒÉÉ',
+ 'Open' => 'ïÔËÒÙÔØ',
+ 'PDF' => 'PDF',
+ 'Part Number' => 'ëÏÄ ÔÏ×ÁÒÁ',
+ 'Period' => 'ðÅÒÉÏÄ',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'ðÅÞÁÔØ',
+ 'Print and Save' => 'îÁÐÅÞÁÔÁÔØ É ÓÏÈÒÁÎÉÔØ',
+ 'Printed' => 'îÁÐÅÞÁÔÁÎÏ',
+ 'Project Number' => 'ëÏÄ ÐÒÏÅËÔÁ',
+ 'Project Number missing!' => 'ðÒÏÐÕÝÅÎ ËÏÄ ÐÒÏÅËÔÁ',
+ 'Qty' => 'ëÏÌÉÞÅÓÔ×Ï',
+ 'Quarter' => 'ë×ÁÒÔÁÌ',
+ 'Save' => 'óÏÈÒÁÎÉÔØ',
+ 'Save as new' => 'óÏÈÒÁÎÉÔØ ËÁË ÎÏ×ÙÊ',
+ 'Screen' => 'üËÒÁÎ',
+ 'Select postscript or PDF!' => '÷ÙÂÅÒÉÔÅ postscript ÉÌÉ PDF!',
+ 'Startdate' => 'îÁÞÁÌØÎÁÑ ÄÁÔÁ',
+ 'Subtotal' => 'éÔÏÇÏ ÐÏ ÒÁÚÄÅÌÕ',
+ 'To' => 'ÐÏ',
+ 'Total' => '÷ÓÅÇÏ',
+ 'Update' => 'ïÂÎÏ×ÉÔØ',
+ 'Warning!' => '÷ÎÉÍÁÎÉÅ!',
+ 'Year' => 'çÏÄ',
+ 'Yes' => 'äÁ',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'ðÒÏÄÏÌÖÉÔØ' => 'continue',
+ 'õÄÁÌÉÔØ' => 'delete',
+ 'ðÅÞÁÔØ' => 'print',
+ 'îÁÐÅÞÁÔÁÔØ_É_ÓÏÈÒÁÎÉÔØ' => 'print_and_save',
+ 'óÏÈÒÁÎÉÔØ' => 'save',
+ 'óÏÈÒÁÎÉÔØ_ËÁË_ÎÏ×ÙÊ' => 'save_as_new',
+ 'ïÂÎÏ×ÉÔØ' => 'update',
+ 'äÁ' => 'yes',
+};
+
+1;
+
diff --git a/locale/ru/locales.pl b/locale/ru/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/ru/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/ru/login b/locale/ru/login
new file mode 100755
index 00000000..d9c7f223
--- /dev/null
+++ b/locale/ru/login
@@ -0,0 +1,26 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'Company' => 'ïÒÇÁÎÉÚÁÃÉÑ',
+ 'Continue' => 'ðÒÏÄÏÌÖÉÔØ',
+ 'Dataset is newer than version!' => 'âÁÚÁ ÄÁÎÎÙÈ ÎÏ×ÅÅ, ÞÅÍ ÔÅËÕÝÁÑ ×ÅÒÓÉÑ!',
+ 'Incorrect Dataset version!' => 'îÅ×ÅÒÎÁÑ ×ÅÒÓÉÑ ÂÁÚÙ ÄÁÎÎÙÈ!',
+ 'Login' => 'ðÏÌØÚÏ×ÁÔÅÌØ',
+ 'Name' => 'îÁÉÍÅÎÏ×ÁÎÉÅ',
+ 'Password' => 'ðÁÒÏÌØ',
+ 'Upgrading to Version' => 'ïÂÎÏ×ÌÅÎÉÅ ÄÏ ×ÅÒÓÉÉ',
+ 'Version' => '÷ÅÒÓÉÑ',
+ 'You did not enter a name!' => '÷Ù ÎÅ ××ÅÌÉ (ÉÍÑ)ÎÁÉÍÅÎÏ×ÁÎÉÅ!',
+ 'done' => '×ÙÐÏÌÎÅÎÏ',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ 'ðÏÌØÚÏ×ÁÔÅÌØ' => 'login',
+};
+
+1;
+
diff --git a/locale/ru/menu b/locale/ru/menu
new file mode 100755
index 00000000..ebf3505a
--- /dev/null
+++ b/locale/ru/menu
@@ -0,0 +1,137 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'AP' => 'ðÏÓÔÕÐÌÅÎÉÑ',
+ 'AP Aging' => '÷ÚÁÉÍÏÒÁÓÞÅÔÙ Ó ÐÏÓÔÁ×ÝÉËÁÍÉ',
+ 'AP Transaction' => 'ðÒÏ×ÏÄËÁ ÚÁËÕÐËÉ',
+ 'AR' => 'ðÒÏÄÁÖÉ',
+ 'AR Aging' => '÷ÚÁÉÍÏÒÁÓÞÅÔÙ Ó ËÌÉÅÎÔÁÍÉ',
+ 'AR Transaction' => 'ðÒÏ×ÏÄËÁ ÐÒÏÄÁÖ',
+ 'Accounting Menu' => 'âÕÈÇÁÌÔÅÒÓËÏÅ ÍÅÎÀ',
+ 'Add Account' => 'îÏ×ÙÊ ÓÞÅÔ',
+ 'Add Assembly' => 'îÏ×ÙÊ ËÏÍÐÌÅËÔ',
+ 'Add Business' => 'îÏ×ÙÊ ÂÉÚÎÅÓ',
+ 'Add Customer' => 'îÏ×ÙÊ ËÌÉÅÎÔ',
+ 'Add Department' => 'îÏ×ÙÊ ÏÔÄÅÌ',
+ 'Add Employee' => 'îÏ×ÙÊ ÓÏÔÒÕÄÎÉË',
+ 'Add GIFI' => 'îÏ×ÙÊ GIFI',
+ 'Add Group' => 'îÏ×ÁÑ ÇÒÕÐÐÁ',
+ 'Add Labor/Overhead' => 'îÏ×ÁÑ ÒÁÂÏÔÁ/ÎÁËÌÁÄÎÙÅ ÒÁÓÈÏÄÙ',
+ 'Add Language' => 'îÏ×ÙÊ ÑÚÙË',
+ 'Add Part' => 'îÏ×ÙÊ ÐÒÏÄÕËÔ',
+ 'Add Pricegroup' => 'îÏ×ÙÊ ÔÉÐ ÃÅÎ',
+ 'Add Project' => 'îÏ×ÙÊ ÐÒÏÅËÔ',
+ 'Add SIC' => 'îÏ×ÙÊ SIC',
+ 'Add Service' => 'îÏ×ÁÑ ÕÓÌÕÇÁ',
+ 'Add Transaction' => 'îÏ×ÁÑ ÐÒÏ×ÏÄËÁ',
+ 'Add Vendor' => 'îÏ×ÙÊ ÐÏÓÔÁ×ÝÉË',
+ 'Add Warehouse' => 'îÏ×ÙÊ ÓËÌÁÄ',
+ 'All Items' => '÷ÓÑ ÎÏÍÅËÌÁÔÕÒÁ',
+ 'Assemblies' => 'ëÏÍÐÌÅËÔÙ',
+ 'Audit Control' => 'ëÏÎÔÒÏÌØ',
+ 'Backup' => 'òÅÚÅÒ×ÎÁÑ ËÏÐÉÑ',
+ 'Balance Sheet' => 'âÁÌÁÎÓ',
+ 'Bin List' => 'óÐÉÓÏË Bin',
+ 'Bin Lists' => 'óÐÉÓËÉ Bin',
+ 'Cash' => 'ëÁÓÓÁ',
+ 'Chart of Accounts' => 'ðÌÁÎ ÓÞÅÔÏ×',
+ 'Check' => 'ðÒÏ×ÅÒÉÔØ',
+ 'Components' => 'ëÏÍÐÏÎÅÎÔÙ',
+ 'Customers' => 'ëÌÉÅÎÔÙ',
+ 'Defaults' => 'îÁÓÔÒÏÊËÉ ÐÏ ÕÍÏÌÞÁÎÉÉ',
+ 'Departments' => 'ïÔÄÅÌÙ',
+ 'Description' => 'ïÐÉÓÁÎÉÅ',
+ 'Employees' => 'óÏÔÒÕÄÎÉËÉ',
+ 'General Ledger' => 'çÌÁ×ÎÁÑ ËÎÉÇÁ',
+ 'Goods & Services' => 'ôÏ×ÁÒÙ É ÕÓÌÕÇÉ',
+ 'Groups' => 'çÒÕÐÐÙ',
+ 'HR' => 'óÏÔÒÕÄÎÉËÉ',
+ 'HTML Templates' => 'ûÁÂÌÏÎÙ HTML',
+ 'History' => 'éÓÔÏÒÉÑ',
+ 'Income Statement' => 'ïÔÞÅÔ Ï ÐÒÉÂÙÌÉ/ÕÂÙÔËÁÈ',
+ 'Invoice' => 'óÞÅÔ-ÆÁËÔÕÒÁ',
+ 'LaTeX Templates' => 'ûÁÂÌÏÎÙ LaTeX',
+ 'Labor/Overhead' => 'òÁÂÏÔÁ/ÎÁËÌÁÄÎÙÅ ÒÁÓÈÏÄÙ',
+ 'Language' => 'ñÚÙË',
+ 'List Accounts' => 'óÐÉÓÏË ÓÞÅÔÏ×',
+ 'List Businesses' => 'óÐÉÓÏË ÂÉÚÎÅÓÏ×',
+ 'List Departments' => 'óÐÉÓÏË ÏÔÄÅÌÏ×',
+ 'List GIFI' => 'óÐÉÓÏË GIFI',
+ 'List Languages' => 'óÐÉÓÏË ÑÚÙËÏ×',
+ 'List Projects' => 'óÐÉÓÏË ÐÒÏÅËÔÏ×',
+ 'List SIC' => 'óÐÉÓÏË SIC',
+ 'List Warehouses' => 'óÐÉÓÏË ÓËÌÁÄÏ×',
+ 'Logout' => '÷ÙÈÏÄ',
+ 'New Window' => 'îÏ×ÏÅ ÏËÎÏ',
+ 'Non-taxable' => 'îÅ ÐÏÄÌÅÖÁÝÉÅ ÎÁÌÏÇÏÏÂÌÏÖÅÎÉÀ',
+ 'Open' => 'ïÔËÒÙÔØ',
+ 'Order Entry' => 'úÁËÁÚÙ',
+ 'Outstanding' => 'úÁÄÏÌÖÅÎÏÓÔØ',
+ 'POS' => 'ëëí',
+ 'POS Invoice' => 'ëëí æÁËÔÕÒÁ',
+ 'Packing List' => 'õÐÁËÏ×ÏÞÎÙÊ ÓÐÉÓÏË',
+ 'Packing Lists' => 'õÐÁËÏ×ÏÞÎÙÅ ÓÐÉÓÏËÉ',
+ 'Parts' => 'ôÏ×ÁÒÙ',
+ 'Payment' => 'ïÐÌÁÔÁ',
+ 'Payments' => 'ïÐÌÁÔÙ',
+ 'Pick List' => 'óÐÉÓÏË ÄÌÑ ×ÙÂÏÒÁ',
+ 'Pick Lists' => 'óÐÉÓËÉ ÄÌÑ ×ÙÂÏÒÁ',
+ 'Preferences' => 'îÁÓÔÒÏÊËÉ',
+ 'Pricegroups' => 'ôÉÐÙ ÃÅÎ',
+ 'Print' => 'ðÅÞÁÔØ',
+ 'Projects' => 'ðÒÏÅËÔÙ',
+ 'Purchase Order' => 'úÁËÁÚ ÐÏÓÔÁ×ÝÉËÕ',
+ 'Purchase Orders' => 'úÁËÁÚÙ ÐÏÓÔÁ×ÝÉËÕ',
+ 'Quotation' => 'òÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'Quotations' => 'òÅÚÅÒ×Ù',
+ 'RFQ' => 'úÁÐÒÏÓ ÎÁ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'RFQs' => 'úÁÐÒÏÓÙ ÎÁ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'Receipt' => 'ðÏÌÕÞÅÎÉÅ',
+ 'Receipts' => 'ðÏÌÕÞÅÎÉÑ',
+ 'Receive' => 'ðÏÌÕÞÉÔØ',
+ 'Reconciliation' => 'óÏÇÌÁÓÏ×ÁÎÎÏÓÔØ',
+ 'Reports' => 'ïÔÞÅÔÙ',
+ 'SIC' => 'SIC',
+ 'Sale' => 'ðÒÏÄÁÖÁ',
+ 'Sales Invoice' => 'æÁËÔÕÒÁ ËÌÉÅÎÔÁ',
+ 'Sales Invoices' => 'æÁËÔÕÒÙ ËÌÉÅÎÔÁ',
+ 'Sales Order' => 'úÁËÁÚ ËÌÉÅÎÔÁ',
+ 'Sales Orders' => 'úÁËÁÚÙ ËÌÉÅÎÔÁ',
+ 'Save to File' => 'óÏÈÒÁÎÉÔØ × ÆÁÊÌ',
+ 'Search' => 'ðÏÉÓË',
+ 'Send by E-Mail' => 'ïÔÐÒÁ×ÉÔØ ÐÏ E-Mail',
+ 'Services' => 'õÓÌÕÇÉ',
+ 'Ship' => 'äÏÓÔÁ×ÉÔØ',
+ 'Shipping' => 'äÏÓÔÁ×ËÁ',
+ 'Statement' => '÷ÅÄÏÍÏÓÔØ',
+ 'Stock Assembly' => 'óÆÏÒÍÉÒÏ×ÁÔØ ËÏÍÐÌÅËÔ',
+ 'Stylesheet' => 'ïÆÏÒÍÌÅÎÉÅ',
+ 'System' => 'óÉÓÔÅÍÁ',
+ 'Tax collected' => 'óÏÂÒÁÎÎÙÅ ÎÁÌÏÇÉ',
+ 'Tax paid' => 'ïÐÌÁÞÅÎÎÙÅ ÎÁÌÏÇÉ',
+ 'Text Templates' => 'ûÁÂÌÏÎÙ TXT',
+ 'Transactions' => 'ðÒÏ×ÏÄËÉ',
+ 'Transfer' => 'ðÅÒÅÍÅÝÅÎÉÅ',
+ 'Transfer Inventory' => 'ðÅÒÅÍÅÝÅÎÉÅ ÉÎ×ÅÎÔÁÒÑ',
+ 'Translations' => 'ðÅÒÅ×ÏÄÙ',
+ 'Trial Balance' => 'ðÒÅÄ×ÁÒÉÔÅÌØÎÙÊ ÂÁÌÁÎÓ',
+ 'Type of Business' => 'ôÉÐ ÂÉÚÎÅÓÁ',
+ 'Vendor Invoice' => 'æÁËÔÕÒÁ ÐÏÓÔÁ×ÝÉËÁ',
+ 'Vendors' => 'ðÏÓÔÁ×ÝÉËÉ',
+ 'Version' => '÷ÅÒÓÉÑ',
+ 'Warehouses' => 'óËÌÁÄÙ',
+ 'Work Order' => 'òÁÂÏÞÉÊ ÚÁËÁÚ',
+ 'Work Orders' => 'òÁÂÏÞÉÅ ÚÁËÁÚÙ',
+ 'Yearend' => 'úÁ×ÅÒÛÅÎÉÅ ÇÏÄÁ',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/ru/oe b/locale/ru/oe
new file mode 100755
index 00000000..3731380c
--- /dev/null
+++ b/locale/ru/oe
@@ -0,0 +1,324 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'Accounting Menu' => 'âÕÈÇÁÌÔÅÒÓËÏÅ ÍÅÎÀ',
+ 'Add Exchange Rate' => 'îÏ×ÙÊ ËÕÒÓ',
+ 'Add Purchase Order' => 'îÏ×ÙÊ ÚÁËÁÚ ÐÏÓÔÁ×ÝÉËÁ',
+ 'Add Quotation' => 'îÏ×ÏÅ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'Add Request for Quotation' => 'îÏ×ÙÊ ÚÁÐÒÏÓ ÎÁ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'Add Sales Invoice' => 'îÏ×ÁÑ ÆÁËÔÕÒÁ ÐÒÏÄÁÖÉ',
+ 'Add Sales Order' => 'îÏ×ÙÊ ÚÁËÁÚ ËÌÉÅÎÔÁ',
+ 'Add Vendor Invoice' => 'îÏ×ÁÑ ÆÁËÔÕÒÁ ÐÏÓÔÕÐÌÅÎÉÑ',
+ 'Address' => 'áÄÒÅÓ',
+ 'Amount' => 'óÕÍÍÁ',
+ 'Apr' => 'ÁÐÒ',
+ 'April' => 'ÁÐÒÅÌØ',
+ 'Are you sure you want to delete Order Number' => '÷Ù Õ×ÅÒÅÎÙ, ÞÔÏ ÈÏÔÉÔÅ ÕÄÁÌÉÔØ ÄÁÎÎÙÊ ÚÁËÁÚ?',
+ 'Are you sure you want to delete Quotation Number' => '÷Ù Õ×ÅÒÅÎÙ, ÞÔÏ ÈÏÔÉÔÅ ÕÄÁÌÉÔØ ÒÅÚÅÒ×?',
+ 'Attachment' => '÷ÌÏÖÅÎÉÅ',
+ 'Aug' => 'Á×Ç',
+ 'August' => 'Á×ÇÕÓÔ',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'áÄÒÅÓ ÄÏÓÔÁ×ËÉ ÓÞÅÔÁ',
+ 'Bin' => 'Bin',
+ 'Bin List' => 'óÐÉÓÏË Bin',
+ 'Business' => 'âÉÚÎÅÓ',
+ 'C' => 'C',
+ 'Cannot delete order!' => 'îÅ×ÏÚÍÏÖÎÏ ÕÄÁÌÉÔØ ÚÁËÁÚ!',
+ 'Cannot delete quotation!' => 'îÅ×ÏÚÍÏÖÎÏ ÕÄÁÌÉÔØ ÒÅÚÅÒ×!',
+ 'Cannot save order!' => 'îÅ×ÏÚÍÏÖÎÏ ÓÏÈÒÁÎÉÔØ ÚÁËÁÚ!',
+ 'Cannot save quotation!' => 'îÅ×ÏÚÍÏÖÎÏ ÓÏÈÒÁÎÉÔØ ÒÅÚÅÒ×',
+ 'Cc' => 'Cc',
+ 'City' => 'çÏÒÏÄ',
+ 'Closed' => 'úÁËÒÙÔ',
+ 'Company Name' => 'îÁÉÍÅÎÏ×ÁÎÉÅ ÏÒÇÁÎÉÚÁÃÉÉ',
+ 'Confirm!' => 'ðÏÄÔ×ÅÒÄÉÔØ!',
+ 'Contact' => 'ëÏÎÔÁËÔÎÏÅ ÌÉÃÏ',
+ 'Continue' => 'ðÒÏÄÏÌÖÉÔØ',
+ 'Copies' => 'ëÏÐÉÊ',
+ 'Cost' => 'ãÅÎÁ',
+ 'Could not save!' => 'îÅ×ÏÚÍÏÖÎÏ ÓÏÈÒÁÎÉÔØ!',
+ 'Could not transfer Inventory!' => 'îÅ×ÏÚÍÏÖÎÏ ÐÅÒÅÓÅÓÔÉÔØ ÉÎ×ÅÎÔÁÒØ',
+ 'Country' => 'óÔÒÁÎÁ',
+ 'Credit Limit' => 'ìÉÍÉÔ ËÒÅÄÉÔÁ',
+ 'Curr' => '÷ÁÌÀÔÁ',
+ 'Currency' => '÷ÁÌÀÔÁ',
+ 'Current' => 'ôÅËÕÝÉÊ',
+ 'Customer' => 'ëÌÉÅÎÔ',
+ 'Customer Number' => 'ëÏÄ ËÌÉÅÎÔÁ',
+ 'Customer missing!' => 'ðÒÏÐÕÝÅÎ ËÌÉÅÎÔ!',
+ 'Customer not on file!' => 'ëÌÉÅÎÔ ÏÔÓÕÔÓÔ×ÕÅÔ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Date' => 'äÁÔÁ',
+ 'Date Received' => 'äÁÔÁ ÐÏÌÕÞÅÎÁ',
+ 'Date received missing!' => 'ðÒÏÐÕÝÅÎÁ ÄÁÔÁ',
+ 'Dec' => 'ÄÅË',
+ 'December' => 'ÄÅËÁÂÒØ',
+ 'Delete' => 'õÄÁÌÉÔØ',
+ 'Delivery Date' => 'äÁÔÁ ÐÏÌÕÞÅÎÉÑ',
+ 'Department' => 'ïÔÄÅÌ',
+ 'Description' => 'ïÐÉÓÁÎÉÅ',
+ 'Done' => '÷ÙÐÏÌÎÅÎÏ',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'îÅ ÕËÁÚÁÎ ÁÄÒÅÓ E-mail!',
+ 'E-mailed' => 'ïÔÐÒÁ×ÌÅÎÏ ÐÏ e-mail',
+ 'Edit Purchase Order' => 'òÅÄÁËÔÉÒÏ×ÁÔØ æÁËÔÕÒÕ ÐÏÓÔÁ×ÝÉËÁ',
+ 'Edit Quotation' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'Edit Request for Quotation' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ÚÁÐÒÏÓ ÎÁ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'Edit Sales Order' => 'òÅÄÁËÔÉÒÏ×ÁÔØ úÁËÁÚ ËÌÉÅÎÔÁ',
+ 'Employee' => 'óÏÔÒÕÄÎÉË',
+ 'Exchange Rate' => 'ëÕÒÓ ×ÁÌÀÔÙ',
+ 'Exchange rate missing!' => 'ðÒÏÐÕÝÅÎ ËÕÒÓ!',
+ 'Extended' => 'óÕÍÍÁ',
+ 'Fax' => 'æÁËÓ',
+ 'Feb' => 'ÆÅ×',
+ 'February' => 'ÆÅ×ÒÁÌØ',
+ 'From' => 'Ó',
+ 'Group' => 'çÒÕÐÐÁ',
+ 'ID' => 'éÄÅÎÔÉÆÉËÁÔÏÒ',
+ 'In-line' => '×ÎÕÔÒÉÓÔÒÏÞÎÙÊ',
+ 'Include in Report' => '÷ËÌÀÞÉÔØ × ÏÔÞÅÔ',
+ 'Internal Notes' => '÷ÎÕÔÒÅÎÎÉÅ ÚÁÍÅÔËÉ',
+ 'Inventory saved!' => 'éÎ×ÅÎÔÁÒØ ÓÏÈÒÁÎÅÎ!',
+ 'Inventory transferred!' => 'éÎ×ÅÎÔÁÒØ ÐÅÒÅÍÅÝÅÎ!',
+ 'Invoice' => 'óÞÅÔ-ÆÁËÔÕÒÁ',
+ 'Invoice Date missing!' => 'îÅ ÕËÁÚÁÎÁ ÄÁÔÁ ×ÙÓÔÁ×ÌÅÎÉÑ ÓÞÅÔÁ-ÆÁËÔÕÒÙ',
+ 'Invoice Number missing!' => 'îÅ ÕËÁÚÁÎ ÎÏÍÅÒ ÓÞÅÔÁ-ÆÁËÔÕÒÙ',
+ 'Item not on file!' => 'îÅÔ ÎÏÍÅÎËÌÁÔÕÒÙ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Jan' => 'ÑÎ×',
+ 'January' => 'ÑÎ×ÁÒØ',
+ 'Jul' => 'ÉÀÌ',
+ 'July' => 'ÉÀÌØ',
+ 'Jun' => 'ÉÀÎ',
+ 'June' => 'ÉÀÎØ',
+ 'Manager' => 'íÅÎÅÄÖÅÒ',
+ 'Mar' => 'ÍÁÒÔ',
+ 'March' => 'ÍÁÒÔ',
+ 'May' => 'ÍÁÊ',
+ 'May ' => 'ÍÁÊ',
+ 'Message' => 'óÏÏÂÝÅÎÉÅ',
+ 'Month' => 'ÍÅÓÑÃ',
+ 'No.' => 'îÏÍ.',
+ 'Notes' => 'ëÏÍÍÅÎÔÁÒÉÉ',
+ 'Nothing entered!' => 'îÉÞÅÇÏ ÎÅ ××ÅÄÅÎÏ!',
+ 'Nothing selected!' => 'îÉÞÅÇÏ ÎÅ ×ÙÂÒÁÎÏ!',
+ 'Nothing to transfer!' => 'îÉÞÅÇÏ ÎÅ ÐÅÒÅÍÅÝÅÎÏ!',
+ 'Nov' => 'ÎÏÑ',
+ 'November' => 'ÎÏÑÂÒØ',
+ 'Number' => 'ËÏÄ',
+ 'Number missing in Row' => 'ðÒÏÐÕÝÅÎ ËÏÄ × ÓÔÒÏËÅ',
+ 'O' => 'O',
+ 'Oct' => 'ÏËÔ',
+ 'October' => 'ÏËÔÑÂÒØ',
+ 'Open' => 'ïÔËÒÙÔØ',
+ 'Order' => 'úÁËÁÚ ËÌÉÅÎÔÁ',
+ 'Order Date' => 'äÁÔÁ ÚÁËÁÚÁ ËÌÉÅÎÔÁ',
+ 'Order Date missing!' => 'ðÒÏÐÕÝÅÎÁ ÄÁÔÁ ÚÁËÁÚÁ',
+ 'Order Number' => 'îÏÍÅÒ ÚÁËÁÚÁ',
+ 'Order Number missing!' => 'ðÒÏÐÕÝÅÎ ÎÏÍÅÒ ÚÁËÁÚÁ',
+ 'Order deleted!' => 'úÁËÁÚ ÕÄÁÌÅÎ!',
+ 'Order saved!' => 'úÁËÁÚ ÓÏÈÒÁÎÅÎ!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'õÐÁËÏ×ÏÞÎÙÊ ÓÐÉÓÏË',
+ 'Packing List Date missing!' => 'ðÒÏÐÕÝÅÎÁ ÄÁÔÁ ÕÐÁËÏ×ÏÞÎÏÇÏ ÓÐÉÓÏËÁ!',
+ 'Packing List Number missing!' => 'ðÒÏÐÕÝÅÎ ÎÏÍÅÒ ÕÐÁËÏ×ÏÞÎÏÇÏ ÓÐÉÓÏËÁ!',
+ 'Part' => 'ôÏ×ÁÒ',
+ 'Part Number' => 'ëÏÄ ÔÏ×ÁÒÁ',
+ 'Period' => 'ðÅÒÉÏÄ',
+ 'Phone' => 'ôÅÌ.',
+ 'Pick List' => 'óÐÉÓÏË ÄÌÑ ×ÙÂÏÒÁ',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'ãÅÎÁ',
+ 'Print' => 'ðÅÞÁÔØ',
+ 'Print and Save' => 'îÁÐÅÞÁÔÁÔØ É ÓÏÈÒÁÎÉÔØ',
+ 'Printed' => 'îÁÐÅÞÁÔÁÎÏ',
+ 'Project' => 'ðÒÏÅËÔ',
+ 'Project not on file!' => 'ðÒÏÅËÔ ÏÔÓÕÔÓÔ×ÕÅÔ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Purchase Order' => 'úÁËÁÚ ÐÏÓÔÁ×ÝÉËÕ',
+ 'Purchase Orders' => 'úÁËÁÚÙ ÐÏÓÔÁ×ÝÉËÕ',
+ 'Qty' => 'ëÏÌÉÞÅÓÔ×Ï',
+ 'Quarter' => 'ë×ÁÒÔÁÌ',
+ 'Quotation' => 'òÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'Quotation ' => 'òÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'Quotation Date' => 'äÁÔÁ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÑ',
+ 'Quotation Date missing!' => 'ðÒÏÐÕÝÅÎÁ ÄÁÔÁ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÑ!',
+ 'Quotation Number' => 'îÏÍÅÒ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÑ',
+ 'Quotation Number missing!' => 'ðÒÏÐÕÝÅÎ ÎÏÍÅÒ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÑ!',
+ 'Quotation deleted!' => 'òÅÚÅÒ×ÉÒÏ×ÁÎÉÅ ÕÄÁÌÅÎÏ',
+ 'Quotations' => 'òÅÚÅÒ×Ù',
+ 'RFQ' => 'úÁÐÒÏÓ ÎÁ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'RFQ ' => 'úÁÐÒÏÓ ÎÁ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'RFQ Number' => 'îÏÍÅÒ ÚÁÐÒÏÓÁ ÎÁ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'Recd' => 'Recd',
+ 'Receive Merchandise' => 'ðÏÌÕÞÉÔØ ÔÏ×ÁÒÙ',
+ 'Reference' => 'óÓÙÌËÁ',
+ 'Remaining' => 'ïÓÔÁÔÏË',
+ 'Request for Quotation' => 'úÁÐÒÏÓ ÎÁ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'Request for Quotations' => 'úÁÐÒÏÓÙ ÎÁ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'Required by' => 'úÁÐÒÏÛÅÎ',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'æÁËÔÕÒÁ ËÌÉÅÎÔÁ',
+ 'Sales Order' => 'úÁËÁÚ ËÌÉÅÎÔÁ',
+ 'Sales Orders' => 'úÁËÁÚÙ ËÌÉÅÎÔÁ',
+ 'Salesperson' => 'ðÒÏÄÁ×ÅÃ',
+ 'Save' => 'óÏÈÒÁÎÉÔØ',
+ 'Save as new' => 'óÏÈÒÁÎÉÔØ ËÁË ÎÏ×ÙÊ',
+ 'Screen' => 'üËÒÁÎ',
+ 'Select from one of the names below' => '÷ÙÂÅÒÉÔÅ ÏÄÎÏ ÉÚ ÎÁÉÍÅÎÏ×ÁÎÉÊ ÉÚ ÓÐÉÓËÁ',
+ 'Select from one of the projects below' => '÷ÙÂÅÒÉÔÅ ÏÄÉÎ ÉÚ ÐÒÏÅËÔÏ× ÉÚ ÓÐÉÓËÁ',
+ 'Select postscript or PDF!' => '÷ÙÂÅÒÉÔÅ postscript ÉÌÉ PDF!',
+ 'Select txt, postscript or PDF!' => '÷ÙÂÅÒÉÔÅ txt, postscript ÉÌÉ PDF!',
+ 'Sep' => 'ÓÅÎ',
+ 'September' => 'ÓÅÎÔÑÂÒØ',
+ 'Serial No.' => 'óÅÒÉÊÎÙÊ ÎÏÍ.',
+ 'Service' => 'õÓÌÕÇÁ',
+ 'Ship' => 'äÏÓÔÁ×ÉÔØ',
+ 'Ship Merchandise' => 'ðÏÇÒÕÚÉÔØ ÔÏ×ÁÒÙ',
+ 'Ship to' => 'ÄÏÓÔÁ×ÉÔØ ÄÌÑ',
+ 'Ship via' => 'ÄÏÓÔÁ×ÉÔØ ÞÅÒÅÚ',
+ 'Shipping Address' => 'áÄÒÅÓ ÄÏÓÔÁ×ËÉ',
+ 'Shipping Date' => 'äÁÔÁ ÄÏÓÔÁ×ËÉ',
+ 'Shipping Date missing!' => 'ðÒÏÐÕÝÅÎÁ ÄÁÔÁ ÄÏÓÔÁ×ËÉ',
+ 'Shipping Point' => 'íÅÓÔÏ ÄÏÓÔÁ×ËÉ',
+ 'Startdate' => 'îÁÞÁÌØÎÁÑ ÄÁÔÁ',
+ 'State/Province' => 'ûÔÁÔ/ðÒÏ×ÉÎÃÉÑ',
+ 'Subject' => 'ôÅÍÁ',
+ 'Subtotal' => 'éÔÏÇÏ ÐÏ ÒÁÚÄÅÌÕ',
+ 'Tax' => 'îÁÌÏÇ',
+ 'Tax Included' => 'îÁÌÏÇÉ ×ËÌÀÞÅÎÙ × ÓÕÍÍÕ',
+ 'Terms' => 'óÒÏË ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÑ',
+ 'To' => 'ÐÏ',
+ 'Total' => '÷ÓÅÇÏ',
+ 'Trade Discount' => 'ôÏÒÇÏ×ÁÑ ÓËÉÄËÁ',
+ 'Transfer' => 'ðÅÒÅÍÅÝÅÎÉÅ',
+ 'Transfer Inventory' => 'ðÅÒÅÍÅÝÅÎÉÅ ÉÎ×ÅÎÔÁÒÑ',
+ 'Transfer to' => 'ðÅÒÅÍÅÓÔÉÔØ Ë',
+ 'Translation not on file!' => 'îÅÔ ÐÅÒÅ×ÏÄÁ Ó ÓÐÉÓËÅ!',
+ 'Unit' => 'åÄÉÎÉÃÁ',
+ 'Update' => 'ïÂÎÏ×ÉÔØ',
+ 'Valid until' => 'äÅÊÓÔ×ÉÔÅÌØÎÏ ÄÏ',
+ 'Vendor' => 'ðÏÓÔÁ×ÝÉË',
+ 'Vendor Invoice' => 'æÁËÔÕÒÁ ÐÏÓÔÁ×ÝÉËÁ',
+ 'Vendor Number' => 'ëÏÄ ÐÏÓÔÁ×ÝÉËÁ',
+ 'Vendor missing!' => 'ðÒÏÐÕÝÅÎ ÐÏÓÔÁ×ÝÉË!',
+ 'Vendor not on file!' => 'ðÏÓÔÁ×ÝÉËÁ ÎÅÔ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Warehouse' => 'óËÌÁÄ',
+ 'Warning!' => '÷ÎÉÍÁÎÉÅ!',
+ 'What type of item is this?' => 'ëÁÏÊ ÜÔÏ ÔÉÐ ÎÏÍÅËÌÁÔÕÒÙ?',
+ 'Work Order' => 'òÁÂÏÞÉÊ ÚÁËÁÚ',
+ 'Year' => 'çÏÄ',
+ 'Yes' => 'äÁ',
+ 'Zip/Postal Code' => 'éÎÄÅËÓ',
+ 'days' => 'ÄÎÅÊ',
+ 'ea' => 'ÛÔ.',
+ 'sent' => 'ÏÔÐÒÁ×ÌÅÎÏ',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'ðÒÏÄÏÌÖÉÔØ' => 'continue',
+ 'õÄÁÌÉÔØ' => 'delete',
+ '÷ÙÐÏÌÎÅÎÏ' => 'done',
+ 'e_mail' => 'e_mail',
+ 'ðÅÞÁÔØ' => 'print',
+ 'îÁÐÅÞÁÔÁÔØ_É_ÓÏÈÒÁÎÉÔØ' => 'print_and_save',
+ 'úÁËÁÚ_ÐÏÓÔÁ×ÝÉËÕ' => 'purchase_order',
+ 'òÅÚÅÒ×ÉÒÏ×ÁÎÉÅ' => 'quotation',
+ 'òÅÚÅÒ×ÉÒÏ×ÁÎÉÅ' => 'quotation_',
+ 'úÁÐÒÏÓ_ÎÁ_ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÅ' => 'rfq',
+ 'úÁÐÒÏÓ_ÎÁ_ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÅ' => 'rfq_',
+ 'æÁËÔÕÒÁ_ËÌÉÅÎÔÁ' => 'sales_invoice',
+ 'úÁËÁÚ_ËÌÉÅÎÔÁ' => 'sales_order',
+ 'óÏÈÒÁÎÉÔØ' => 'save',
+ 'óÏÈÒÁÎÉÔØ_ËÁË_ÎÏ×ÙÊ' => 'save_as_new',
+ 'ÄÏÓÔÁ×ÉÔØ_ÄÌÑ' => 'ship_to',
+ 'ðÅÒÅÍÅÝÅÎÉÅ' => 'transfer',
+ 'ïÂÎÏ×ÉÔØ' => 'update',
+ 'æÁËÔÕÒÁ_ÐÏÓÔÁ×ÝÉËÁ' => 'vendor_invoice',
+ 'äÁ' => 'yes',
+};
+
+1;
+
diff --git a/locale/ru/pe b/locale/ru/pe
new file mode 100755
index 00000000..719d3073
--- /dev/null
+++ b/locale/ru/pe
@@ -0,0 +1,144 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'Accounting Menu' => 'âÕÈÇÁÌÔÅÒÓËÏÅ ÍÅÎÀ',
+ 'Active' => 'áËÔÉ×ÎÙÊ',
+ 'Add' => 'îÏ×ÙÊ',
+ 'Add Group' => 'îÏ×ÁÑ ÇÒÕÐÐÁ',
+ 'Add Pricegroup' => 'îÏ×ÙÊ ÔÉÐ ÃÅÎ',
+ 'Add Project' => 'îÏ×ÙÊ ÐÒÏÅËÔ',
+ 'Address' => 'áÄÒÅÓ',
+ 'All' => '÷ÓÅ',
+ 'Amount' => 'óÕÍÍÁ',
+ 'Assembly' => 'ëÏÍÌÅËÔ',
+ 'Bin' => 'Bin',
+ 'Continue' => 'ðÒÏÄÏÌÖÉÔØ',
+ 'Current' => 'ôÅËÕÝÉÊ',
+ 'Customer' => 'ëÌÉÅÎÔ',
+ 'Customer missing!' => 'ðÒÏÐÕÝÅÎ ËÌÉÅÎÔ!',
+ 'Customer not on file!' => 'ëÌÉÅÎÔ ÏÔÓÕÔÓÔ×ÕÅÔ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Date' => 'äÁÔÁ',
+ 'Delete' => 'õÄÁÌÉÔØ',
+ 'Description' => 'ïÐÉÓÁÎÉÅ',
+ 'Description Translations' => 'ïÐÉÓÁÎÉÅ ÐÒÏ×ÏÄÏË',
+ 'Detail' => 'äÅÔÁÌÉÚÉÒÏ×ÁÔØ',
+ 'Edit Description Translations' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ÏÐÉÓÁÎÉÅ ÐÒÏ×ÏÄÏË',
+ 'Edit Group' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ÇÒÕÐÐÕ',
+ 'Edit Pricegroup' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ÔÉÐ ÃÅÎ',
+ 'Edit Project' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ðÒÏÅËÔ',
+ 'Employee' => 'óÏÔÒÕÄÎÉË',
+ 'Enddate' => 'ëÏÎÞÎÁÑ ÄÁÔÁ',
+ 'From' => 'Ó',
+ 'Group' => 'çÒÕÐÐÁ',
+ 'Group Translations' => 'çÒÕÐÐÁ ÐÒÏ×ÏÄÏË',
+ 'Group deleted!' => 'çÒÕÐÐÁ ÕÄÁÌÅÎÁ!',
+ 'Group missing!' => 'ðÒÏÐÕÝÅÎÁ ÇÒÕÐÐÁ!',
+ 'Group saved!' => 'çÒÕÐÐÁ ÓÏÈÒÁÎÅÎÁ!',
+ 'Groups' => 'çÒÕÐÐÙ',
+ 'Income' => 'ðÏÓÔÕÐÌÅÎÉÅ',
+ 'Language' => 'ñÚÙË',
+ 'Languages not defined!' => 'ñÚÙËÉ ÎÅ ÏÐÒÅÄÅÌÅÎÙ!',
+ 'Link Accounts' => 'óÓÙÌËÉ ÓÞÅÔÏ×',
+ 'List Price' => 'óÐÉÓÏË ÃÅÎ',
+ 'Month' => 'ÍÅÓÑÃ',
+ 'Notes' => 'ëÏÍÍÅÎÔÁÒÉÉ',
+ 'Nothing selected!' => 'îÉÞÅÇÏ ÎÅ ×ÙÂÒÁÎÏ!',
+ 'Number' => 'ËÏÄ',
+ 'Orphaned' => 'âÅÚ ÐÒÏ×ÏÄÏË',
+ 'Part Number' => 'ëÏÄ ÔÏ×ÁÒÁ',
+ 'Period' => 'ðÅÒÉÏÄ',
+ 'Pricegroup' => 'ôÉÐ ÃÅÎ',
+ 'Pricegroup deleted!' => 'õÄÁÌÅÎ ÔÉÐ ÃÅÎ',
+ 'Pricegroup missing!' => 'ðÒÏÐÕÝÅÎ ÔÉÐ ÃÅÎ',
+ 'Pricegroup saved!' => 'úÁÐÉÓÁÎ ÔÉÐ ÃÅÎ',
+ 'Pricegroups' => 'ôÉÐÙ ÃÅÎ',
+ 'Project' => 'ðÒÏÅËÔ',
+ 'Project Description Translations' => 'ðÅÒÅ×ÏÄÙ ÏÐÉÓÁÎÉÑ ÐÒÏÅËÔÏ×',
+ 'Project Number' => 'ëÏÄ ÐÒÏÅËÔÁ',
+ 'Project deleted!' => 'ðÒÏÅËÔ ÕÄÁÌÅÎ',
+ 'Project saved!' => 'ðÒÏÅËÔ ÓÏÈÒÁÎÅÎ!',
+ 'Projects' => 'ðÒÏÅËÔÙ',
+ 'Qty' => 'ëÏÌÉÞÅÓÔ×Ï',
+ 'Quarter' => 'ë×ÁÒÔÁÌ',
+ 'Save' => 'óÏÈÒÁÎÉÔØ',
+ 'Select from one of the names below' => '÷ÙÂÅÒÉÔÅ ÏÄÎÏ ÉÚ ÎÁÉÍÅÎÏ×ÁÎÉÊ ÉÚ ÓÐÉÓËÁ',
+ 'Sell Price' => 'ðÒÏÄÁÖÎÁÑ ÃÅÎÁ',
+ 'Startdate' => 'îÁÞÁÌØÎÁÑ ÄÁÔÁ',
+ 'Summary' => 'óÕÍÍÁÒÎÏ',
+ 'Tax' => 'îÁÌÏÇ',
+ 'To' => 'ÐÏ',
+ 'Translation' => 'ðÅÒÅ×ÏÄ',
+ 'Translation deleted!' => 'ðÅÒÅ×ÏÄ ÕÄÁÌÅÎ!',
+ 'Translations saved!' => 'ðÅÒÅ×ÏÄÙ ÓÏÈÒÁÎÅÎÙ!',
+ 'Unit' => 'åÄÉÎÉÃÁ',
+ 'Update' => 'ïÂÎÏ×ÉÔØ',
+ 'Updated' => 'ïÂÎÏ×ÌÅÎÏ',
+ 'Vendor' => 'ðÏÓÔÁ×ÝÉË',
+ 'Vendor not on file!' => 'ðÏÓÔÁ×ÝÉËÁ ÎÅÔ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Weight' => '÷ÅÓ',
+ 'Year' => 'çÏÄ',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'îÏ×ÁÑ_ÇÒÕÐÐÁ' => 'add_group',
+ 'îÏ×ÙÊ_ÔÉÐ_ÃÅÎ' => 'add_pricegroup',
+ 'îÏ×ÙÊ_ÐÒÏÅËÔ' => 'add_project',
+ 'ðÒÏÄÏÌÖÉÔØ' => 'continue',
+ 'õÄÁÌÉÔØ' => 'delete',
+ 'óÏÈÒÁÎÉÔØ' => 'save',
+ 'ïÂÎÏ×ÉÔØ' => 'update',
+};
+
+1;
+
diff --git a/locale/ru/pos b/locale/ru/pos
new file mode 100755
index 00000000..14e0b54d
--- /dev/null
+++ b/locale/ru/pos
@@ -0,0 +1,82 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'Accounting Menu' => 'âÕÈÇÁÌÔÅÒÓËÏÅ ÍÅÎÀ',
+ 'Add POS Invoice' => 'îÏ×ÙÁÑ ÆÁËÔÕÒÁ ëëí',
+ 'Amount' => 'óÕÍÍÁ',
+ 'Business' => 'âÉÚÎÅÓ',
+ 'Cannot post transaction!' => 'îÅ×ÏÚÍÏÖÎÏ ÐÒÏ×ÅÓÔÉ ÐÒÏ×ÏÄËÕ!',
+ 'Change' => 'éÚÍÅÎÉÔØ',
+ 'Continue' => 'ðÒÏÄÏÌÖÉÔØ',
+ 'Credit Limit' => 'ìÉÍÉÔ ËÒÅÄÉÔÁ',
+ 'Currency' => '÷ÁÌÀÔÁ',
+ 'Current' => 'ôÅËÕÝÉÊ',
+ 'Customer' => 'ëÌÉÅÎÔ',
+ 'Customer missing!' => 'ðÒÏÐÕÝÅÎ ËÌÉÅÎÔ!',
+ 'Delete' => 'õÄÁÌÉÔØ',
+ 'Department' => 'ïÔÄÅÌ',
+ 'Description' => 'ïÐÉÓÁÎÉÅ',
+ 'Edit POS Invoice' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ëëí-ÆÁËÔÕÒÕ',
+ 'Exchange Rate' => 'ëÕÒÓ ×ÁÌÀÔÙ',
+ 'Exchange rate missing!' => 'ðÒÏÐÕÝÅÎ ËÕÒÓ!',
+ 'Extended' => 'óÕÍÍÁ',
+ 'From' => 'Ó',
+ 'Language' => 'ñÚÙË',
+ 'Memo' => 'ëÏÍÍÅÎÔÁÒÉÊ',
+ 'Month' => 'ÍÅÓÑÃ',
+ 'Number' => 'ËÏÄ',
+ 'Open' => 'ïÔËÒÙÔØ',
+ 'Period' => 'ðÅÒÉÏÄ',
+ 'Post' => 'óÏÈÒÁÎÉÔØ',
+ 'Posted!' => 'óÏÈÒÁÎÅÎÏ!',
+ 'Price' => 'ãÅÎÁ',
+ 'Print' => 'ðÅÞÁÔØ',
+ 'Print and Post' => 'îÁÐÅÞÁÔÁÔØ É ÏÔÐÒÁ×ÉÔØ',
+ 'Printed' => 'îÁÐÅÞÁÔÁÎÏ',
+ 'Qty' => 'ëÏÌÉÞÅÓÔ×Ï',
+ 'Quarter' => 'ë×ÁÒÔÁÌ',
+ 'Receipts' => 'ðÏÌÕÞÅÎÉÑ',
+ 'Record in' => 'ïÔÎÅÓÔÉ ÎÁ ÓÞÅÔ',
+ 'Remaining' => 'ïÓÔÁÔÏË',
+ 'Salesperson' => 'ðÒÏÄÁ×ÅÃ',
+ 'Screen' => 'üËÒÁÎ',
+ 'Source' => 'éÓÔÏÞÎÉË',
+ 'Subtotal' => 'éÔÏÇÏ ÐÏ ÒÁÚÄÅÌÕ',
+ 'Tax Included' => 'îÁÌÏÇÉ ×ËÌÀÞÅÎÙ × ÓÕÍÍÕ',
+ 'To' => 'ÐÏ',
+ 'Total' => '÷ÓÅÇÏ',
+ 'Trade Discount' => 'ôÏÒÇÏ×ÁÑ ÓËÉÄËÁ',
+ 'Unit' => 'åÄÉÎÉÃÁ',
+ 'Update' => 'ïÂÎÏ×ÉÔØ',
+ 'Year' => 'çÏÄ',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'ðÒÏÄÏÌÖÉÔØ' => 'continue',
+ 'õÄÁÌÉÔØ' => 'delete',
+ 'óÏÈÒÁÎÉÔØ' => 'post',
+ 'ðÅÞÁÔØ' => 'print',
+ 'îÁÐÅÞÁÔÁÔØ_É_ÏÔÐÒÁ×ÉÔØ' => 'print_and_post',
+ 'ïÂÎÏ×ÉÔØ' => 'update',
+};
+
+1;
+
diff --git a/locale/ru/ps b/locale/ru/ps
new file mode 100755
index 00000000..d2343fcd
--- /dev/null
+++ b/locale/ru/ps
@@ -0,0 +1,360 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'AP Aging' => '÷ÚÁÉÍÏÒÁÓÞÅÔÙ Ó ÐÏÓÔÁ×ÝÉËÁÍÉ',
+ 'AP Outstanding' => 'úÁÄÏÌÖÅÎÏÓÔØ ÐÏÓÔÁ×ÝÉËÏ×',
+ 'AP Transaction' => 'ðÒÏ×ÏÄËÁ ÚÁËÕÐËÉ',
+ 'AP Transactions' => 'ðÒÏ×ÏÄËÉ ÚÁËÕÐËÉ',
+ 'AR Aging' => '÷ÚÁÉÍÏÒÁÓÞÅÔÙ Ó ËÌÉÅÎÔÁÍÉ',
+ 'AR Outstanding' => 'úÁÄÏÌÖÅÎÏÓÔØ ËÌÉÅÎÔÏ×',
+ 'AR Transaction' => 'ðÒÏ×ÏÄËÁ ÐÒÏÄÁÖ',
+ 'AR Transactions' => 'ðÒÏ×ÏÄËÉ ÐÒÏÄÁÖ',
+ 'Account' => 'óÞÅÔ',
+ 'Account Number' => 'ëÏÄ ÓÞÅÔÁ',
+ 'Accounting Menu' => 'âÕÈÇÁÌÔÅÒÓËÏÅ ÍÅÎÀ',
+ 'Accounts' => 'óÞÅÔÁ',
+ 'Accrual' => 'îÁËÏÐÌÅÎÉÅ',
+ 'Add AP Transaction' => 'îÏ×ÁÑ ÐÒÏ×ÏÄËÁ ÐÏÓÔÕÐÌÅÎÉÊ',
+ 'Add AR Transaction' => 'îÏ×ÁÑ ÐÒÏ×ÏÄËÁ ÐÒÏÄÁÖ',
+ 'Add POS Invoice' => 'îÏ×ÙÁÑ ÆÁËÔÕÒÁ ëëí',
+ 'Add Purchase Order' => 'îÏ×ÙÊ ÚÁËÁÚ ÐÏÓÔÁ×ÝÉËÁ',
+ 'Add Quotation' => 'îÏ×ÏÅ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'Add Request for Quotation' => 'îÏ×ÙÊ ÚÁÐÒÏÓ ÎÁ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'Add Sales Invoice' => 'îÏ×ÁÑ ÆÁËÔÕÒÁ ÐÒÏÄÁÖÉ',
+ 'Add Sales Order' => 'îÏ×ÙÊ ÚÁËÁÚ ËÌÉÅÎÔÁ',
+ 'Address' => 'áÄÒÅÓ',
+ 'All Accounts' => '÷ÓÅ ÓÞÅÔÁ',
+ 'Amount' => 'óÕÍÍÁ',
+ 'Amount Due' => 'óÕÍÍÁ Ë ÐÏÌÕÞÅÎÉÀ',
+ 'Apr' => 'ÁÐÒ',
+ 'April' => 'ÁÐÒÅÌØ',
+ 'Are you sure you want to delete Invoice Number' => '÷Ù Õ×ÅÒÅÎÙ, ÞÔÏ ÈÏÔÉÔÅ ÕÄÁÌÉÔØ ÄÁÎÎÕÀ ÆÁËÔÕÒÕ?',
+ 'Are you sure you want to delete Transaction' => '÷Ù Õ×ÅÒÅÎÙ, ÓÔÏ ÈÏÔÉÔÅ ÕÄÁÌÉÔØ ÄÁÎÎÕÀ ÐÒÏ×ÏÄËÕ?',
+ 'Attachment' => '÷ÌÏÖÅÎÉÅ',
+ 'Aug' => 'Á×Ç',
+ 'August' => 'Á×ÇÕÓÔ',
+ 'Balance' => 'âÁÌÁÎÓ',
+ 'Balance Sheet' => 'âÁÌÁÎÓ',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'áÄÒÅÓ ÄÏÓÔÁ×ËÉ ÓÞÅÔÁ',
+ 'Bin' => 'Bin',
+ 'Bin List' => 'óÐÉÓÏË Bin',
+ 'Business' => 'âÉÚÎÅÓ',
+ 'Cannot delete invoice!' => 'îÅ×ÏÚÍÏÖÎÏ ÕÄÁÌÉÔØ ÆÁËÔÕÒÕ!',
+ 'Cannot delete transaction!' => 'îÅ×ÏÚÍÏÖÎÏ ÕÄÁÌÉÔØ ÐÒÏ×ÏÄËÕ!',
+ 'Cannot post invoice for a closed period!' => 'îÅ×ÏÚÍÏÖÎÏ ÐÒÏ×ÅÓÔÉ ÆÁËÔÕÒÕ × ÚÁËÒÙÔÏÍ ÐÅÒÉÏÄÅ!',
+ 'Cannot post invoice!' => 'îÅ×ÏÚÍÏÖÎÏ ÐÒÏ×ÅÓÔÉ ÆÁËÔÕÒÕ!',
+ 'Cannot post payment for a closed period!' => 'îÅ×ÏÚÍÏÖÎÏ ÐÒÏ×ÅÓÔÉ ÏÐÌÁÔÕ ÄÌÑ ÚÁËÒÙÔÏÇÏ ÐÅÒÉÏÄÁ!',
+ 'Cannot post transaction for a closed period!' => 'îÅ×ÏÚÍÏÖÎÏ ÐÒÏ×ÅÓÔÉ ÐÒÏ×ÏÄËÕ × ÚÁËÒÙÔÏÍ ÐÅÒÉÏÄÅ!',
+ 'Cannot post transaction!' => 'îÅ×ÏÚÍÏÖÎÏ ÐÒÏ×ÅÓÔÉ ÐÒÏ×ÏÄËÕ!',
+ 'Cash' => 'ëÁÓÓÁ',
+ 'Cc' => 'Cc',
+ 'Change' => 'éÚÍÅÎÉÔØ',
+ 'Check' => 'ðÒÏ×ÅÒÉÔØ',
+ 'City' => 'çÏÒÏÄ',
+ 'Closed' => 'úÁËÒÙÔ',
+ 'Company Name' => 'îÁÉÍÅÎÏ×ÁÎÉÅ ÏÒÇÁÎÉÚÁÃÉÉ',
+ 'Compare to' => 'óÒÁ×ÎÉÔØ Ó',
+ 'Confirm!' => 'ðÏÄÔ×ÅÒÄÉÔØ!',
+ 'Contact' => 'ëÏÎÔÁËÔÎÏÅ ÌÉÃÏ',
+ 'Continue' => 'ðÒÏÄÏÌÖÉÔØ',
+ 'Copies' => 'ëÏÐÉÊ',
+ 'Country' => 'óÔÒÁÎÁ',
+ 'Credit' => 'ëÒÅÄÉÔ',
+ 'Credit Limit' => 'ìÉÍÉÔ ËÒÅÄÉÔÁ',
+ 'Curr' => '÷ÁÌÀÔÁ',
+ 'Currency' => '÷ÁÌÀÔÁ',
+ 'Current' => 'ôÅËÕÝÉÊ',
+ 'Current Earnings' => 'ôÅËÕÝÁÑ ÐÒÉÂÙÌØ',
+ 'Customer' => 'ëÌÉÅÎÔ',
+ 'Customer Number' => 'ëÏÄ ËÌÉÅÎÔÁ',
+ 'Customer missing!' => 'ðÒÏÐÕÝÅÎ ËÌÉÅÎÔ!',
+ 'Customer not on file!' => 'ëÌÉÅÎÔ ÏÔÓÕÔÓÔ×ÕÅÔ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Date' => 'äÁÔÁ',
+ 'Date Paid' => 'äÁÔÁ ÏÐÌÁÔÙ',
+ 'Debit' => 'äÅÂÅÔ',
+ 'Dec' => 'ÄÅË',
+ 'December' => 'ÄÅËÁÂÒØ',
+ 'Decimalplaces' => 'ÄÅÓÑÔÉÞÎÁÑ ÔÏÞËÁ',
+ 'Delete' => 'õÄÁÌÉÔØ',
+ 'Delivery Date' => 'äÁÔÁ ÐÏÌÕÞÅÎÉÑ',
+ 'Department' => 'ïÔÄÅÌ',
+ 'Description' => 'ïÐÉÓÁÎÉÅ',
+ 'Detail' => 'äÅÔÁÌÉÚÉÒÏ×ÁÔØ',
+ 'Due Date' => 'ïÐÌÁÔÉÔØ ÄÏ',
+ 'Due Date missing!' => 'îÅ ÕËÁÚÁÎ ÓÒÏË ÏÐÌÁÔÙ!',
+ 'E-mail' => 'E-mail',
+ 'E-mail Statement to' => 'óÏÓÔÏÑÎÉÅ E-mail ÄÌÑ',
+ 'E-mail address missing!' => 'îÅ ÕËÁÚÁÎ ÁÄÒÅÓ E-mail!',
+ 'E-mailed' => 'ïÔÐÒÁ×ÌÅÎÏ ÐÏ e-mail',
+ 'Edit AP Transaction' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ÐÒÏ×ÏÄËÕ ðÏÓÔÕÐÌÅÎÉÑ',
+ 'Edit AR Transaction' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ÐÒÏ×ÏÄËÕ ðÒÏÄÁÖ',
+ 'Edit POS Invoice' => 'òÅÄÁËÔÉÒÏ×ÁÔØ ëëí-ÆÁËÔÕÒÕ',
+ 'Edit Sales Invoice' => 'òÅÄÁËÔÉÒÏ×ÁÔØ æÁËÔÕÒÕ ËÌÉÅÎÔÁ',
+ 'Employee' => 'óÏÔÒÕÄÎÉË',
+ 'Exch' => 'ëÕÒÓ',
+ 'Exchange Rate' => 'ëÕÒÓ ×ÁÌÀÔÙ',
+ 'Exchange rate for payment missing!' => 'ðÒÏÐÕÝÅÎ ËÕÒÓ ÏÐÌÁÔÙ!',
+ 'Exchange rate missing!' => 'ðÒÏÐÕÝÅÎ ËÕÒÓ!',
+ 'Extended' => 'óÕÍÍÁ',
+ 'Fax' => 'æÁËÓ',
+ 'Feb' => 'ÆÅ×',
+ 'February' => 'ÆÅ×ÒÁÌØ',
+ 'From' => 'Ó',
+ 'GIFI' => 'GIFI',
+ 'Group' => 'çÒÕÐÐÁ',
+ 'Heading' => 'òÁÚÄÅÌ',
+ 'ID' => 'éÄÅÎÔÉÆÉËÁÔÏÒ',
+ 'In-line' => '×ÎÕÔÒÉÓÔÒÏÞÎÙÊ',
+ 'Include Exchange Rate Difference' => '÷ËÌÀÞÉÔØ ËÕÒÓÏ×ÕÀ ÒÁÚÎÏÓÔØ',
+ 'Include in Report' => '÷ËÌÀÞÉÔØ × ÏÔÞÅÔ',
+ 'Income Statement' => 'ïÔÞÅÔ Ï ÐÒÉÂÙÌÉ/ÕÂÙÔËÁÈ',
+ 'Internal Notes' => '÷ÎÕÔÒÅÎÎÉÅ ÚÁÍÅÔËÉ',
+ 'Invoice' => 'óÞÅÔ-ÆÁËÔÕÒÁ',
+ 'Invoice Date' => 'äÁÔÁ ×ÙÓÔÁ×ÌÅÎÉÑ',
+ 'Invoice Date missing!' => 'îÅ ÕËÁÚÁÎÁ ÄÁÔÁ ×ÙÓÔÁ×ÌÅÎÉÑ ÓÞÅÔÁ-ÆÁËÔÕÒÙ',
+ 'Invoice Number' => 'îÏÍÅÒ ÓÞÅÔÁ-ÆÁËÔÕÒÙ',
+ 'Invoice Number missing!' => 'îÅ ÕËÁÚÁÎ ÎÏÍÅÒ ÓÞÅÔÁ-ÆÁËÔÕÒÙ',
+ 'Invoice deleted!' => 'óÞÅÔ-ÆÁËÔÕÒÁ ÕÄÁÌÅÎÁ!',
+ 'Item not on file!' => 'îÅÔ ÎÏÍÅÎËÌÁÔÕÒÙ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Jan' => 'ÑÎ×',
+ 'January' => 'ÑÎ×ÁÒØ',
+ 'Jul' => 'ÉÀÌ',
+ 'July' => 'ÉÀÌØ',
+ 'Jun' => 'ÉÀÎ',
+ 'June' => 'ÉÀÎØ',
+ 'Language' => 'ñÚÙË',
+ 'Manager' => 'íÅÎÅÄÖÅÒ',
+ 'Mar' => 'ÍÁÒÔ',
+ 'March' => 'ÍÁÒÔ',
+ 'May' => 'ÍÁÊ',
+ 'May ' => 'ÍÁÊ',
+ 'Memo' => 'ëÏÍÍÅÎÔÁÒÉÊ',
+ 'Message' => 'óÏÏÂÝÅÎÉÅ',
+ 'Method' => 'íÅÔÏÄ',
+ 'Month' => 'ÍÅÓÑÃ',
+ 'N/A' => 'N/A',
+ 'No.' => 'îÏÍ.',
+ 'Non-taxable Purchases' => 'úÁËÕÐËÉ, ÎÅ ÐÏÄÌÅÖÁÝÉÅ ÎÁÌÏÇÏÏÂÌÏÖÅÎÉÀ',
+ 'Non-taxable Sales' => 'ðÒÏÄÁÖÉ, ÎÅ ÐÏÄÌÅÖÁÝÉÅ ÎÁÌÏÇÏÏÂÌÏÖÅÎÉÀ',
+ 'Notes' => 'ëÏÍÍÅÎÔÁÒÉÉ',
+ 'Nothing selected!' => 'îÉÞÅÇÏ ÎÅ ×ÙÂÒÁÎÏ!',
+ 'Nothing to print!' => 'îÉÞÅÇÏ ÎÅ ÎÁÐÅÞÁÔÁÎÏ!',
+ 'Nov' => 'ÎÏÑ',
+ 'November' => 'ÎÏÑÂÒØ',
+ 'Number' => 'ËÏÄ',
+ 'Number missing in Row' => 'ðÒÏÐÕÝÅÎ ËÏÄ × ÓÔÒÏËÅ',
+ 'Oct' => 'ÏËÔ',
+ 'October' => 'ÏËÔÑÂÒØ',
+ 'Open' => 'ïÔËÒÙÔØ',
+ 'Order' => 'úÁËÁÚ ËÌÉÅÎÔÁ',
+ 'Order Date missing!' => 'ðÒÏÐÕÝÅÎÁ ÄÁÔÁ ÚÁËÁÚÁ',
+ 'Order Number' => 'îÏÍÅÒ ÚÁËÁÚÁ',
+ 'Order Number missing!' => 'ðÒÏÐÕÝÅÎ ÎÏÍÅÒ ÚÁËÁÚÁ',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'õÐÁËÏ×ÏÞÎÙÊ ÓÐÉÓÏË',
+ 'Packing List Date missing!' => 'ðÒÏÐÕÝÅÎÁ ÄÁÔÁ ÕÐÁËÏ×ÏÞÎÏÇÏ ÓÐÉÓÏËÁ!',
+ 'Packing List Number missing!' => 'ðÒÏÐÕÝÅÎ ÎÏÍÅÒ ÕÐÁËÏ×ÏÞÎÏÇÏ ÓÐÉÓÏËÁ!',
+ 'Paid' => 'ïÐÌÁÞÅÎÏ',
+ 'Part' => 'ôÏ×ÁÒ',
+ 'Payment date missing!' => 'ðÒÏÐÕÝÅÎÁ ÄÁÔÁ ÏÐÌÁÔÙ!',
+ 'Payments' => 'ïÐÌÁÔÙ',
+ 'Period' => 'ðÅÒÉÏÄ',
+ 'Phone' => 'ôÅÌ.',
+ 'Pick List' => 'óÐÉÓÏË ÄÌÑ ×ÙÂÏÒÁ',
+ 'Post' => 'óÏÈÒÁÎÉÔØ',
+ 'Post as new' => 'óÏÈÒÁÎÉÔØ ËÁË ÎÏ×ÙÊ',
+ 'Posted!' => 'óÏÈÒÁÎÅÎÏ!',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'ãÅÎÁ',
+ 'Print' => 'ðÅÞÁÔØ',
+ 'Print and Post' => 'îÁÐÅÞÁÔÁÔØ É ÏÔÐÒÁ×ÉÔØ',
+ 'Printed' => 'îÁÐÅÞÁÔÁÎÏ',
+ 'Project' => 'ðÒÏÅËÔ',
+ 'Project Number' => 'ëÏÄ ÐÒÏÅËÔÁ',
+ 'Project Transactions' => 'ðÒÏ×ÏÄËÉ ÐÒÏÅËÔÁ',
+ 'Project not on file!' => 'ðÒÏÅËÔ ÏÔÓÕÔÓÔ×ÕÅÔ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Purchase Order' => 'úÁËÁÚ ÐÏÓÔÁ×ÝÉËÕ',
+ 'Qty' => 'ëÏÌÉÞÅÓÔ×Ï',
+ 'Quarter' => 'ë×ÁÒÔÁÌ',
+ 'Quotation' => 'òÅÚÅÒ×ÉÒÏ×ÁÎÉÅ',
+ 'Quotation Date missing!' => 'ðÒÏÐÕÝÅÎÁ ÄÁÔÁ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÑ!',
+ 'Quotation Number missing!' => 'ðÒÏÐÕÝÅÎ ÎÏÍÅÒ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÑ!',
+ 'Recd' => 'Recd',
+ 'Receipt' => 'ðÏÌÕÞÅÎÉÅ',
+ 'Receipts' => 'ðÏÌÕÞÅÎÉÑ',
+ 'Record in' => 'ïÔÎÅÓÔÉ ÎÁ ÓÞÅÔ',
+ 'Reference' => 'óÓÙÌËÁ',
+ 'Remaining' => 'ïÓÔÁÔÏË',
+ 'Report for' => 'ïÔÞÅÔ ÄÌÑ',
+ 'Required by' => 'úÁÐÒÏÛÅÎ',
+ 'SKU' => 'SKU',
+ 'Sales Invoice.' => 'æÁËÔÕÒÁ ËÌÉÅÎÔÁ',
+ 'Sales Order' => 'úÁËÁÚ ËÌÉÅÎÔÁ',
+ 'Salesperson' => 'ðÒÏÄÁ×ÅÃ',
+ 'Screen' => 'üËÒÁÎ',
+ 'Select all' => '÷ÙÂÒÁÔØ ×ÓÅ',
+ 'Select from one of the names below' => '÷ÙÂÅÒÉÔÅ ÏÄÎÏ ÉÚ ÎÁÉÍÅÎÏ×ÁÎÉÊ ÉÚ ÓÐÉÓËÁ',
+ 'Select from one of the projects below' => '÷ÙÂÅÒÉÔÅ ÏÄÉÎ ÉÚ ÐÒÏÅËÔÏ× ÉÚ ÓÐÉÓËÁ',
+ 'Select payment' => '÷ÙÂÅÒÉÔÅ ÏÐÌÁÔÕ',
+ 'Select postscript or PDF!' => '÷ÙÂÅÒÉÔÅ postscript ÉÌÉ PDF!',
+ 'Select txt, postscript or PDF!' => '÷ÙÂÅÒÉÔÅ txt, postscript ÉÌÉ PDF!',
+ 'Sep' => 'ÓÅÎ',
+ 'September' => 'ÓÅÎÔÑÂÒØ',
+ 'Serial No.' => 'óÅÒÉÊÎÙÊ ÎÏÍ.',
+ 'Service' => 'õÓÌÕÇÁ',
+ 'Ship' => 'äÏÓÔÁ×ÉÔØ',
+ 'Ship to' => 'ÄÏÓÔÁ×ÉÔØ ÄÌÑ',
+ 'Ship via' => 'ÄÏÓÔÁ×ÉÔØ ÞÅÒÅÚ',
+ 'Shipping Address' => 'áÄÒÅÓ ÄÏÓÔÁ×ËÉ',
+ 'Shipping Point' => 'íÅÓÔÏ ÄÏÓÔÁ×ËÉ',
+ 'Source' => 'éÓÔÏÞÎÉË',
+ 'Standard' => 'óÔÁÎÄÁÒÔÎÙÅ',
+ 'Startdate' => 'îÁÞÁÌØÎÁÑ ÄÁÔÁ',
+ 'State/Province' => 'ûÔÁÔ/ðÒÏ×ÉÎÃÉÑ',
+ 'Statement' => '÷ÅÄÏÍÏÓÔØ',
+ 'Statement sent to' => '÷ÅÄÏÍÏÓÔØ ÏÔÐÒÁ×ÌÅÎÁ ÄÌÑ',
+ 'Statements sent to printer!' => '÷ÅÄÏÍÏÓÔØ ÏÔÐÒÁ×ÌÅÎÁ ÎÁ ÐÒÉÎÔÅÒ!',
+ 'Subject' => 'ôÅÍÁ',
+ 'Subtotal' => 'éÔÏÇÏ ÐÏ ÒÁÚÄÅÌÕ',
+ 'Summary' => 'óÕÍÍÁÒÎÏ',
+ 'Tax' => 'îÁÌÏÇ',
+ 'Tax Included' => 'îÁÌÏÇÉ ×ËÌÀÞÅÎÙ × ÓÕÍÍÕ',
+ 'Tax collected' => 'óÏÂÒÁÎÎÙÅ ÎÁÌÏÇÉ',
+ 'Tax paid' => 'ïÐÌÁÞÅÎÎÙÅ ÎÁÌÏÇÉ',
+ 'Till' => 'ÄÏ',
+ 'To' => 'ÐÏ',
+ 'Total' => '÷ÓÅÇÏ',
+ 'Trade Discount' => 'ôÏÒÇÏ×ÁÑ ÓËÉÄËÁ',
+ 'Transaction' => 'ðÒÏ×ÏÄËÁ',
+ 'Transaction deleted!' => 'ðÒÏ×ÏÄËÁ ÕÄÁÌÅÎÁ!',
+ 'Transaction posted!' => 'ðÒÏ×ÏÄËÁ ÓÏÈÒÁÎÅÎÁ!',
+ 'Translation not on file!' => 'îÅÔ ÐÅÒÅ×ÏÄÁ Ó ÓÐÉÓËÅ!',
+ 'Trial Balance' => 'ðÒÅÄ×ÁÒÉÔÅÌØÎÙÊ ÂÁÌÁÎÓ',
+ 'Unit' => 'åÄÉÎÉÃÁ',
+ 'Update' => 'ïÂÎÏ×ÉÔØ',
+ 'Vendor' => 'ðÏÓÔÁ×ÝÉË',
+ 'Vendor Invoice.' => 'æÁËÔÕÒÁ ÐÏÓÔÁ×ÝÉËÁ.',
+ 'Vendor Number' => 'ëÏÄ ÐÏÓÔÁ×ÝÉËÁ',
+ 'Vendor missing!' => 'ðÒÏÐÕÝÅÎ ÐÏÓÔÁ×ÝÉË!',
+ 'Vendor not on file!' => 'ðÏÓÔÁ×ÝÉËÁ ÎÅÔ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Warning!' => '÷ÎÉÍÁÎÉÅ!',
+ 'What type of item is this?' => 'ëÁÏÊ ÜÔÏ ÔÉÐ ÎÏÍÅËÌÁÔÕÒÙ?',
+ 'Work Order' => 'òÁÂÏÞÉÊ ÚÁËÁÚ',
+ 'Year' => 'çÏÄ',
+ 'Yes' => 'äÁ',
+ 'Zip/Postal Code' => 'éÎÄÅËÓ',
+ 'as at' => 'ËÁË ×',
+ 'ea' => 'ÛÔ.',
+ 'for Period' => 'ÚÁ ÐÅÒÉÏÄ',
+ 'posted!' => 'ÏÔÐÒÁ×ÌÅÎÏ',
+ 'sent' => 'ÏÔÐÒÁ×ÌÅÎÏ',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'ðÒÏ×ÏÄËÁ_ÚÁËÕÐËÉ' => 'ap_transaction',
+ 'ðÒÏ×ÏÄËÁ_ÐÒÏÄÁÖ' => 'ar_transaction',
+ 'ðÒÏÄÏÌÖÉÔØ' => 'continue',
+ 'õÄÁÌÉÔØ' => 'delete',
+ 'e_mail' => 'e_mail',
+ 'óÏÈÒÁÎÉÔØ' => 'post',
+ 'óÏÈÒÁÎÉÔØ_ËÁË_ÎÏ×ÙÊ' => 'post_as_new',
+ 'ðÅÞÁÔØ' => 'print',
+ 'îÁÐÅÞÁÔÁÔØ_É_ÏÔÐÒÁ×ÉÔØ' => 'print_and_post',
+ 'æÁËÔÕÒÁ_ËÌÉÅÎÔÁ' => 'sales_invoice_',
+ 'úÁËÁÚ_ËÌÉÅÎÔÁ' => 'sales_order',
+ '÷ÙÂÒÁÔØ_×ÓÅ' => 'select_all',
+ 'ÄÏÓÔÁ×ÉÔØ_ÄÌÑ' => 'ship_to',
+ 'ïÂÎÏ×ÉÔØ' => 'update',
+ 'æÁËÔÕÒÁ_ÐÏÓÔÁ×ÝÉËÁ_' => 'vendor_invoice_',
+ 'äÁ' => 'yes',
+};
+
+1;
+
diff --git a/locale/ru/pw b/locale/ru/pw
new file mode 100755
index 00000000..be433e08
--- /dev/null
+++ b/locale/ru/pw
@@ -0,0 +1,15 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'Continue' => 'ðÒÏÄÏÌÖÉÔØ',
+ 'Password' => 'ðÁÒÏÌØ',
+ 'Session expired!' => 'ðÒÅ×ÙÛÅÎÏ ×ÒÅÍÑ ÚÁÄÅÒÖËÉ ÓÅÓÓÉÉ',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'ðÒÏÄÏÌÖÉÔØ' => 'continue',
+};
+
+1;
+
diff --git a/locale/ru/rc b/locale/ru/rc
new file mode 100755
index 00000000..3d020597
--- /dev/null
+++ b/locale/ru/rc
@@ -0,0 +1,81 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'Account' => 'óÞÅÔ',
+ 'Accounting Menu' => 'âÕÈÇÁÌÔÅÒÓËÏÅ ÍÅÎÀ',
+ 'Apr' => 'ÁÐÒ',
+ 'April' => 'ÁÐÒÅÌØ',
+ 'Aug' => 'Á×Ç',
+ 'August' => 'Á×ÇÕÓÔ',
+ 'Balance' => 'âÁÌÁÎÓ',
+ 'Beginning Balance' => 'îÁÞÁÌØÎÙÊ ÂÁÌÁÎÓ',
+ 'Cleared' => 'ïÞÉÝÅÎÏ',
+ 'Continue' => 'ðÒÏÄÏÌÖÉÔØ',
+ 'Credit' => 'ëÒÅÄÉÔ',
+ 'Current' => 'ôÅËÕÝÉÊ',
+ 'Date' => 'äÁÔÁ',
+ 'Debit' => 'äÅÂÅÔ',
+ 'Dec' => 'ÄÅË',
+ 'December' => 'ÄÅËÁÂÒØ',
+ 'Description' => 'ïÐÉÓÁÎÉÅ',
+ 'Detail' => 'äÅÔÁÌÉÚÉÒÏ×ÁÔØ',
+ 'Difference' => 'òÁÚÎÉÃÁ',
+ 'Done' => '÷ÙÐÏÌÎÅÎÏ',
+ 'Feb' => 'ÆÅ×',
+ 'February' => 'ÆÅ×ÒÁÌØ',
+ 'From' => 'Ó',
+ 'Include Exchange Rate Difference' => '÷ËÌÀÞÉÔØ ËÕÒÓÏ×ÕÀ ÒÁÚÎÏÓÔØ',
+ 'Jan' => 'ÑÎ×',
+ 'January' => 'ÑÎ×ÁÒØ',
+ 'Jul' => 'ÉÀÌ',
+ 'July' => 'ÉÀÌØ',
+ 'Jun' => 'ÉÀÎ',
+ 'June' => 'ÉÀÎØ',
+ 'Mar' => 'ÍÁÒÔ',
+ 'March' => 'ÍÁÒÔ',
+ 'May' => 'ÍÁÊ',
+ 'May ' => 'ÍÁÊ',
+ 'Month' => 'ÍÅÓÑÃ',
+ 'Nov' => 'ÎÏÑ',
+ 'November' => 'ÎÏÑÂÒØ',
+ 'Oct' => 'ÏËÔ',
+ 'October' => 'ÏËÔÑÂÒØ',
+ 'Out of balance!' => '÷ÎÅ ÂÁÌÌÁÎÓÁ!',
+ 'Outstanding' => 'úÁÄÏÌÖÅÎÏÓÔØ',
+ 'Period' => 'ðÅÒÉÏÄ',
+ 'Quarter' => 'ë×ÁÒÔÁÌ',
+ 'R' => 'R',
+ 'Reconciliation' => 'óÏÇÌÁÓÏ×ÁÎÎÏÓÔØ',
+ 'Reconciliation Report' => 'ïÔÞÅÔ Ï ÓÏÇÌÁÓÏ×ÁÎÎÏÓÔÉ',
+ 'Select all' => '÷ÙÂÒÁÔØ ×ÓÅ',
+ 'Sep' => 'ÓÅÎ',
+ 'September' => 'ÓÅÎÔÑÂÒØ',
+ 'Source' => 'éÓÔÏÞÎÉË',
+ 'Statement Balance' => 'âÁÌÁÎÓÏ×ÁÑ ×ÅÄÏÍÏÓÔØ',
+ 'Summary' => 'óÕÍÍÁÒÎÏ',
+ 'To' => 'ÐÏ',
+ 'Update' => 'ïÂÎÏ×ÉÔØ',
+ 'Year' => 'çÏÄ',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'ðÒÏÄÏÌÖÉÔØ' => 'continue',
+ '÷ÙÐÏÌÎÅÎÏ' => 'done',
+ '÷ÙÂÒÁÔØ_×ÓÅ' => 'select_all',
+ 'ïÂÎÏ×ÉÔØ' => 'update',
+};
+
+1;
+
diff --git a/locale/ru/rp b/locale/ru/rp
new file mode 100755
index 00000000..4c9c2949
--- /dev/null
+++ b/locale/ru/rp
@@ -0,0 +1,181 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'AP Aging' => '÷ÚÁÉÍÏÒÁÓÞÅÔÙ Ó ÐÏÓÔÁ×ÝÉËÁÍÉ',
+ 'AR Aging' => '÷ÚÁÉÍÏÒÁÓÞÅÔÙ Ó ËÌÉÅÎÔÁÍÉ',
+ 'Account' => 'óÞÅÔ',
+ 'Account Number' => 'ëÏÄ ÓÞÅÔÁ',
+ 'Accounting Menu' => 'âÕÈÇÁÌÔÅÒÓËÏÅ ÍÅÎÀ',
+ 'Accounts' => 'óÞÅÔÁ',
+ 'Accrual' => 'îÁËÏÐÌÅÎÉÅ',
+ 'Address' => 'áÄÒÅÓ',
+ 'All Accounts' => '÷ÓÅ ÓÞÅÔÁ',
+ 'Amount' => 'óÕÍÍÁ',
+ 'Apr' => 'ÁÐÒ',
+ 'April' => 'ÁÐÒÅÌØ',
+ 'Attachment' => '÷ÌÏÖÅÎÉÅ',
+ 'Aug' => 'Á×Ç',
+ 'August' => 'Á×ÇÕÓÔ',
+ 'Balance' => 'âÁÌÁÎÓ',
+ 'Balance Sheet' => 'âÁÌÁÎÓ',
+ 'Bcc' => 'Bcc',
+ 'Cash' => 'ëÁÓÓÁ',
+ 'Cc' => 'Cc',
+ 'Compare to' => 'óÒÁ×ÎÉÔØ Ó',
+ 'Continue' => 'ðÒÏÄÏÌÖÉÔØ',
+ 'Copies' => 'ëÏÐÉÊ',
+ 'Credit' => 'ëÒÅÄÉÔ',
+ 'Curr' => '÷ÁÌÀÔÁ',
+ 'Current' => 'ôÅËÕÝÉÊ',
+ 'Current Earnings' => 'ôÅËÕÝÁÑ ÐÒÉÂÙÌØ',
+ 'Customer' => 'ëÌÉÅÎÔ',
+ 'Customer not on file!' => 'ëÌÉÅÎÔ ÏÔÓÕÔÓÔ×ÕÅÔ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Date' => 'äÁÔÁ',
+ 'Debit' => 'äÅÂÅÔ',
+ 'Dec' => 'ÄÅË',
+ 'December' => 'ÄÅËÁÂÒØ',
+ 'Decimalplaces' => 'ÄÅÓÑÔÉÞÎÁÑ ÔÏÞËÁ',
+ 'Department' => 'ïÔÄÅÌ',
+ 'Description' => 'ïÐÉÓÁÎÉÅ',
+ 'Detail' => 'äÅÔÁÌÉÚÉÒÏ×ÁÔØ',
+ 'Due Date' => 'ïÐÌÁÔÉÔØ ÄÏ',
+ 'E-mail' => 'E-mail',
+ 'E-mail Statement to' => 'óÏÓÔÏÑÎÉÅ E-mail ÄÌÑ',
+ 'E-mail address missing!' => 'îÅ ÕËÁÚÁÎ ÁÄÒÅÓ E-mail!',
+ 'Feb' => 'ÆÅ×',
+ 'February' => 'ÆÅ×ÒÁÌØ',
+ 'From' => 'Ó',
+ 'GIFI' => 'GIFI',
+ 'Heading' => 'òÁÚÄÅÌ',
+ 'ID' => 'éÄÅÎÔÉÆÉËÁÔÏÒ',
+ 'In-line' => '×ÎÕÔÒÉÓÔÒÏÞÎÙÊ',
+ 'Include Exchange Rate Difference' => '÷ËÌÀÞÉÔØ ËÕÒÓÏ×ÕÀ ÒÁÚÎÏÓÔØ',
+ 'Include in Report' => '÷ËÌÀÞÉÔØ × ÏÔÞÅÔ',
+ 'Income Statement' => 'ïÔÞÅÔ Ï ÐÒÉÂÙÌÉ/ÕÂÙÔËÁÈ',
+ 'Invoice' => 'óÞÅÔ-ÆÁËÔÕÒÁ',
+ 'Jan' => 'ÑÎ×',
+ 'January' => 'ÑÎ×ÁÒØ',
+ 'Jul' => 'ÉÀÌ',
+ 'July' => 'ÉÀÌØ',
+ 'Jun' => 'ÉÀÎ',
+ 'June' => 'ÉÀÎØ',
+ 'Language' => 'ñÚÙË',
+ 'Mar' => 'ÍÁÒÔ',
+ 'March' => 'ÍÁÒÔ',
+ 'May' => 'ÍÁÊ',
+ 'May ' => 'ÍÁÊ',
+ 'Memo' => 'ëÏÍÍÅÎÔÁÒÉÊ',
+ 'Message' => 'óÏÏÂÝÅÎÉÅ',
+ 'Method' => 'íÅÔÏÄ',
+ 'Month' => 'ÍÅÓÑÃ',
+ 'N/A' => 'N/A',
+ 'Non-taxable Purchases' => 'úÁËÕÐËÉ, ÎÅ ÐÏÄÌÅÖÁÝÉÅ ÎÁÌÏÇÏÏÂÌÏÖÅÎÉÀ',
+ 'Non-taxable Sales' => 'ðÒÏÄÁÖÉ, ÎÅ ÐÏÄÌÅÖÁÝÉÅ ÎÁÌÏÇÏÏÂÌÏÖÅÎÉÀ',
+ 'Nothing selected!' => 'îÉÞÅÇÏ ÎÅ ×ÙÂÒÁÎÏ!',
+ 'Nov' => 'ÎÏÑ',
+ 'November' => 'ÎÏÑÂÒØ',
+ 'Number' => 'ËÏÄ',
+ 'Oct' => 'ÏËÔ',
+ 'October' => 'ÏËÔÑÂÒØ',
+ 'Order' => 'úÁËÁÚ ËÌÉÅÎÔÁ',
+ 'PDF' => 'PDF',
+ 'Payments' => 'ïÐÌÁÔÙ',
+ 'Period' => 'ðÅÒÉÏÄ',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'ðÅÞÁÔØ',
+ 'Project' => 'ðÒÏÅËÔ',
+ 'Project Number' => 'ëÏÄ ÐÒÏÅËÔÁ',
+ 'Project Transactions' => 'ðÒÏ×ÏÄËÉ ÐÒÏÅËÔÁ',
+ 'Project not on file!' => 'ðÒÏÅËÔ ÏÔÓÕÔÓÔ×ÕÅÔ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Quarter' => 'ë×ÁÒÔÁÌ',
+ 'Receipts' => 'ðÏÌÕÞÅÎÉÑ',
+ 'Reference' => 'óÓÙÌËÁ',
+ 'Report for' => 'ïÔÞÅÔ ÄÌÑ',
+ 'Salesperson' => 'ðÒÏÄÁ×ÅÃ',
+ 'Screen' => 'üËÒÁÎ',
+ 'Select all' => '÷ÙÂÒÁÔØ ×ÓÅ',
+ 'Select from one of the names below' => '÷ÙÂÅÒÉÔÅ ÏÄÎÏ ÉÚ ÎÁÉÍÅÎÏ×ÁÎÉÊ ÉÚ ÓÐÉÓËÁ',
+ 'Select from one of the projects below' => '÷ÙÂÅÒÉÔÅ ÏÄÉÎ ÉÚ ÐÒÏÅËÔÏ× ÉÚ ÓÐÉÓËÁ',
+ 'Select postscript or PDF!' => '÷ÙÂÅÒÉÔÅ postscript ÉÌÉ PDF!',
+ 'Sep' => 'ÓÅÎ',
+ 'September' => 'ÓÅÎÔÑÂÒØ',
+ 'Source' => 'éÓÔÏÞÎÉË',
+ 'Standard' => 'óÔÁÎÄÁÒÔÎÙÅ',
+ 'Startdate' => 'îÁÞÁÌØÎÁÑ ÄÁÔÁ',
+ 'Statement' => '÷ÅÄÏÍÏÓÔØ',
+ 'Statement sent to' => '÷ÅÄÏÍÏÓÔØ ÏÔÐÒÁ×ÌÅÎÁ ÄÌÑ',
+ 'Statements sent to printer!' => '÷ÅÄÏÍÏÓÔØ ÏÔÐÒÁ×ÌÅÎÁ ÎÁ ÐÒÉÎÔÅÒ!',
+ 'Subject' => 'ôÅÍÁ',
+ 'Subtotal' => 'éÔÏÇÏ ÐÏ ÒÁÚÄÅÌÕ',
+ 'Summary' => 'óÕÍÍÁÒÎÏ',
+ 'Tax' => 'îÁÌÏÇ',
+ 'Tax collected' => 'óÏÂÒÁÎÎÙÅ ÎÁÌÏÇÉ',
+ 'Tax paid' => 'ïÐÌÁÞÅÎÎÙÅ ÎÁÌÏÇÉ',
+ 'Till' => 'ÄÏ',
+ 'To' => 'ÐÏ',
+ 'Total' => '÷ÓÅÇÏ',
+ 'Trial Balance' => 'ðÒÅÄ×ÁÒÉÔÅÌØÎÙÊ ÂÁÌÁÎÓ',
+ 'Vendor' => 'ðÏÓÔÁ×ÝÉË',
+ 'Vendor not on file!' => 'ðÏÓÔÁ×ÝÉËÁ ÎÅÔ × ÓÐÒÁ×ÏÞÎÉËÅ!',
+ 'Warning!' => '÷ÎÉÍÁÎÉÅ!',
+ 'Year' => 'çÏÄ',
+ 'as at' => 'ËÁË ×',
+ 'for Period' => 'ÚÁ ÐÅÒÉÏÄ',
+ 'sent' => 'ÏÔÐÒÁ×ÌÅÎÏ',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'ðÒÏÄÏÌÖÉÔØ' => 'continue',
+ 'e_mail' => 'e_mail',
+ 'ðÅÞÁÔØ' => 'print',
+ '÷ÙÂÒÁÔØ_×ÓÅ' => 'select_all',
+};
+
+1;
+
diff --git a/locale/ru_utf/COPYING b/locale/ru_utf/COPYING
new file mode 100755
index 00000000..0d4e16a3
--- /dev/null
+++ b/locale/ru_utf/COPYING
@@ -0,0 +1,25 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2005
+#
+# Russian texts:
+#
+# Author: Alexey Cherepanov
+# E-mail: alx@rdm.com.ru
+# This localisation based on Khaimin Vladimir's KOI8-R localisation.
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/ru_utf/LANGUAGE b/locale/ru_utf/LANGUAGE
new file mode 100755
index 00000000..0771c163
--- /dev/null
+++ b/locale/ru_utf/LANGUAGE
@@ -0,0 +1 @@
+Russian (UTF-8)
diff --git a/locale/ru_utf/Num2text b/locale/ru_utf/Num2text
new file mode 100755
index 00000000..86dd855c
--- /dev/null
+++ b/locale/ru_utf/Num2text
@@ -0,0 +1,184 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (C) 2005
+#
+# Author: Dieter Simader
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+# Contributors: Vladimir Khaimin <vkhai@yandex.ru>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#======================================================================
+#
+# this is a variation of the Lingua package
+# written for check and receipt printing
+# it returns a properly formatted text string
+# for a number up to 10**12
+
+sub init {
+ my $self = shift;
+
+ %{ $self->{numbername} } =
+ (0 => 'ноль',
+ 1 => 'один',
+ 2 => 'два',
+ 3 => 'три',
+ 4 => 'четыре',
+ 5 => 'пÑÑ‚ÑŒ',
+ 6 => 'шеÑÑ‚ÑŒ',
+ 7 => 'Ñемь',
+ 8 => 'воÑемь',
+ 9 => 'девÑÑ‚ÑŒ',
+ 10 => 'деÑÑÑ‚ÑŒ',
+ 11 => 'одинадцать',
+ 12 => 'двенадцать',
+ 13 => 'тринадцать',
+ 14 => 'четырнадцать',
+ 15 => 'пÑтнадцать',
+ 16 => 'шеÑтнадцать',
+ 17 => 'Ñемнадцать',
+ 18 => 'воÑемнадцать',
+ 19 => 'девÑтнадцать',
+ 20 => 'двадцать',
+ 30 => 'тридцать',
+ 40 => 'Ñорок',
+ 50 => 'пÑтьдеÑÑÑ‚',
+ 60 => 'шеÑтьдеÑÑÑ‚',
+ 70 => 'ÑемьдеÑÑÑ‚',
+ 80 => 'воÑемьдеÑÑÑ‚',
+ 90 => 'девÑноÑто',
+ 10**2 => 'Ñто',
+ 10**3 => 'Ñ‚Ñ‹ÑÑча',
+ 10**6 => 'миллион',
+ 10**9 => 'миллиард',
+ 10**12 => 'триллион'
+ );
+
+}
+
+
+sub num2text {
+ my ($self, $amount) = @_;
+
+ return $self->{numbername}{0} unless $amount;
+
+ my @textnumber = ();
+
+ # split amount into chunks of 3
+ my @num = reverse split //, abs($amount);
+ my @numblock = ();
+ my ($i, $appendn);
+ my @a = ();
+
+ while (@num) {
+ @a = ();
+ for (1 .. 3) {
+ push @a, shift @num;
+ }
+ push @numblock, join / /, reverse @a;
+ }
+
+ my $belowhundred = !$#numblock;
+
+ while (@numblock) {
+
+ $i = $#numblock;
+ @num = split //, $numblock[$i];
+ $appendn = "";
+
+ $numblock[$i] *= 1;
+
+ if ($numblock[$i] == 0) {
+ pop @numblock;
+ next;
+ }
+
+ if ($numblock[$i] > 99) {
+ # the one from hundreds
+ push @textnumber, $self->{numbername}{$num[0]};
+
+ # add hundred designation
+ push @textnumber, $self->{numbername}{10**2};
+
+ # reduce numblock
+ $numblock[$i] -= $num[0] * 100;
+ }
+
+ $appendn = 'en' if ($i == 2);
+ $appendn = 'n' if ($i > 2);
+
+ if ($numblock[$i] > 9) {
+ # tens
+ push @textnumber, $self->format_ten($numblock[$i], $belowhundred);
+ } elsif ($numblock[$i] > 1) {
+ # ones
+ push @textnumber, $self->{numbername}{$numblock[$i]};
+ } elsif ($numblock[$i] == 1) {
+ if ($i == 0) {
+ push @textnumber, $self->{numbername}{$numblock[$i]}.'s';
+ } else {
+ if ($i >= 2) {
+ push @textnumber, $self->{numbername}{$numblock[$i]}.'e';
+ } else {
+ push @textnumber, $self->{numbername}{$numblock[$i]};
+ }
+ }
+ $appendn = "";
+ }
+
+ # add thousand, million
+ if ($i) {
+ $amount = 10**($i * 3);
+ push @textnumber, $self->{numbername}{$amount}.$appendn;
+ }
+
+ pop @numblock;
+
+ }
+
+ join '', @textnumber;
+
+}
+
+
+sub format_ten {
+ my ($self, $amount, $belowhundred) = @_;
+
+ my $textnumber = "";
+ my @num = split //, $amount;
+
+ if ($amount > 20) {
+ if ($num[1] == 0) {
+ $textnumber = $self->{numbername}{$amount};
+ } else {
+ if ($belowhundred) {
+ $amount = $num[0] * 10;
+ $textnumber = $self->{numbername}{$num[1]}.'und'.$self->{numbername}{$amount};
+ } else {
+ $amount = $num[0] * 10;
+ $textnumber = $self->{numbername}{$amount}.$self->{numbername}{$num[1]};
+ $textnumber .= 's' if ($num[1] == 1);
+ }
+ }
+ } else {
+ $textnumber = $self->{numbername}{$amount};
+ }
+
+ $textnumber;
+
+}
+
+
+1;
+
diff --git a/locale/ru_utf/aa b/locale/ru_utf/aa
new file mode 100755
index 00000000..cdfc20e1
--- /dev/null
+++ b/locale/ru_utf/aa
@@ -0,0 +1,163 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Outstanding' => 'ЗадолженоÑÑ‚ÑŒ поÑтавщиков',
+ 'AP Transaction' => 'Проводка закупки',
+ 'AP Transactions' => 'Проводки закупки',
+ 'AR Outstanding' => 'ЗадолженоÑÑ‚ÑŒ клиентов',
+ 'AR Transaction' => 'Проводка продаж',
+ 'AR Transactions' => 'Проводки продаж',
+ 'Account' => 'Счет',
+ 'Accounting Menu' => 'БухгалтерÑкое меню',
+ 'Add AP Transaction' => 'ÐÐ¾Ð²Ð°Ñ Ð¿Ñ€Ð¾Ð²Ð¾Ð´ÐºÐ° поÑтуплений',
+ 'Add AR Transaction' => 'ÐÐ¾Ð²Ð°Ñ Ð¿Ñ€Ð¾Ð²Ð¾Ð´ÐºÐ° продаж',
+ 'Amount' => 'Сумма',
+ 'Amount Due' => 'Сумма к получению',
+ 'Apr' => 'апр',
+ 'April' => 'апрель',
+ 'Are you sure you want to delete Transaction' => 'Вы уверены, что хотите удалить данную проводку?',
+ 'Aug' => 'авг',
+ 'August' => 'авгуÑÑ‚',
+ 'Cannot delete transaction!' => 'Ðевозможно удалить проводку!',
+ 'Cannot post payment for a closed period!' => 'Ðевозможно провеÑти оплату Ð´Ð»Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð¾Ð³Ð¾ периода!',
+ 'Cannot post transaction for a closed period!' => 'Ðевозможно провеÑти проводку в закрытом периоде!',
+ 'Cannot post transaction!' => 'Ðевозможно провеÑти проводку!',
+ 'Check' => 'Проверить',
+ 'Closed' => 'Закрыт',
+ 'Confirm!' => 'Подтвердить!',
+ 'Continue' => 'Продолжить',
+ 'Credit' => 'Кредит',
+ 'Credit Limit' => 'Лимит кредита',
+ 'Curr' => 'Валюта',
+ 'Currency' => 'Валюта',
+ 'Current' => 'Текущий',
+ 'Customer' => 'Клиент',
+ 'Customer missing!' => 'Пропущен клиент!',
+ 'Date' => 'Дата',
+ 'Date Paid' => 'Дата оплаты',
+ 'Debit' => 'Дебет',
+ 'Dec' => 'дек',
+ 'December' => 'декабрь',
+ 'Delete' => 'Удалить',
+ 'Department' => 'Отдел',
+ 'Description' => 'ОпиÑание',
+ 'Detail' => 'Детализировать',
+ 'Due Date' => 'Оплатить до',
+ 'Due Date missing!' => 'Ðе указан Ñрок оплаты!',
+ 'Edit AP Transaction' => 'Редактировать проводку ПоÑтуплениÑ',
+ 'Edit AR Transaction' => 'Редактировать проводку Продаж',
+ 'Employee' => 'Сотрудник',
+ 'Exch' => 'КурÑ',
+ 'Exchange Rate' => 'ÐšÑƒÑ€Ñ Ð²Ð°Ð»ÑŽÑ‚Ñ‹',
+ 'Exchange rate for payment missing!' => 'Пропущен ÐºÑƒÑ€Ñ Ð¾Ð¿Ð»Ð°Ñ‚Ñ‹!',
+ 'Exchange rate missing!' => 'Пропущен курÑ!',
+ 'Feb' => 'фев',
+ 'February' => 'февраль',
+ 'From' => 'Ñ',
+ 'ID' => 'Идентификатор',
+ 'Include in Report' => 'Включить в отчет',
+ 'Invoice' => 'Счет-фактура',
+ 'Invoice Date' => 'Дата выÑтавлениÑ',
+ 'Invoice Date missing!' => 'Ðе указана дата выÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñчета-фактуры',
+ 'Invoice Number' => 'Ðомер Ñчета-фактуры',
+ 'Jan' => 'Ñнв',
+ 'January' => 'Ñнварь',
+ 'Jul' => 'июл',
+ 'July' => 'июль',
+ 'Jun' => 'июн',
+ 'June' => 'июнь',
+ 'Manager' => 'Менеджер',
+ 'Mar' => 'март',
+ 'March' => 'март',
+ 'May' => 'май',
+ 'May ' => 'май',
+ 'Memo' => 'Комментарий',
+ 'Month' => 'меÑÑц',
+ 'No.' => 'Ðом.',
+ 'Notes' => 'Комментарии',
+ 'Nov' => 'ноÑ',
+ 'November' => 'ноÑбрь',
+ 'Oct' => 'окт',
+ 'October' => 'октÑбрь',
+ 'Open' => 'Открыть',
+ 'Order' => 'Заказ клиента',
+ 'Order Number' => 'Ðомер заказа',
+ 'PO Number' => 'Ðомер ордера покупки',
+ 'Paid' => 'Оплачено',
+ 'Payment date missing!' => 'Пропущена дата оплаты!',
+ 'Payments' => 'Оплаты',
+ 'Period' => 'Период',
+ 'Post' => 'Сохранить',
+ 'Post as new' => 'Сохранить как новый',
+ 'Print' => 'Печать',
+ 'Print and Post' => 'Ðапечатать и отправить',
+ 'Print and Post as new' => 'Ðапечатать и отправить как новый',
+ 'Project' => 'Проект',
+ 'Quarter' => 'Квартал',
+ 'Receipt' => 'Получение',
+ 'Remaining' => 'ОÑтаток',
+ 'Sales Invoice.' => 'Фактура клиента',
+ 'Salesperson' => 'Продавец',
+ 'Schedule' => 'РаÑпиÑание',
+ 'Sep' => 'Ñен',
+ 'September' => 'ÑентÑбрь',
+ 'Ship to' => 'доÑтавить длÑ',
+ 'Ship via' => 'доÑтавить через',
+ 'Shipping Point' => 'МеÑто доÑтавки',
+ 'Source' => 'ИÑточник',
+ 'Subtotal' => 'Итого по разделу',
+ 'Summary' => 'Суммарно',
+ 'Tax' => 'Ðалог',
+ 'Tax Included' => 'Ðалоги включены в Ñумму',
+ 'Till' => 'до',
+ 'To' => 'по',
+ 'Total' => 'Ð’Ñего',
+ 'Transaction' => 'Проводка',
+ 'Transaction deleted!' => 'Проводка удалена!',
+ 'Transaction posted!' => 'Проводка Ñохранена!',
+ 'Update' => 'Обновить',
+ 'Vendor' => 'ПоÑтавщик',
+ 'Vendor Invoice.' => 'Фактура поÑтавщика.',
+ 'Vendor missing!' => 'Пропущен поÑтавщик!',
+ 'Year' => 'Год',
+ 'Yes' => 'Да',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'Проводка_закупки' => 'ap_transaction',
+ 'Проводка_продаж' => 'ar_transaction',
+ 'Продолжить' => 'continue',
+ 'Удалить' => 'delete',
+ 'Сохранить' => 'post',
+ 'Сохранить_как_новый' => 'post_as_new',
+ 'Печать' => 'print',
+ 'Ðапечатать_и_отправить' => 'print_and_post',
+ 'Ðапечатать_и_отправить_как_новый' => 'print_and_post_as_new',
+ 'Фактура_клиента' => 'sales_invoice_',
+ 'РаÑпиÑание' => 'schedule',
+ 'доÑтавить_длÑ' => 'ship_to',
+ 'Обновить' => 'update',
+ 'Фактура_поÑтавщика_' => 'vendor_invoice_',
+ 'Да' => 'yes',
+};
+
+1;
+
diff --git a/locale/ru_utf/admin b/locale/ru_utf/admin
new file mode 100755
index 00000000..6598e341
--- /dev/null
+++ b/locale/ru_utf/admin
@@ -0,0 +1,146 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Access Control' => 'Контроль доÑтупа',
+ 'Accounting' => 'БухгалтериÑ',
+ 'Add User' => 'Ðовый пользователь',
+ 'Address' => 'ÐдреÑ',
+ 'Administration' => 'ÐдминиÑтрирование',
+ 'Administrator' => 'ÐдминиÑтратор',
+ 'All Datasets up to date!' => 'All Datasets up to date!',
+ 'Cannot create Lock!' => 'Ðевозможно заблокировать!',
+ 'Change Admin Password' => 'Изменить пароль ÐдминиÑтратора',
+ 'Change Password' => 'Изменить пароль',
+ 'Click on login name to edit!' => 'Ð”Ð»Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ»Ð¸ÐºÐ½Ð¸Ñ‚Ðµ на Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ.',
+ 'Company' => 'ОрганизациÑ',
+ 'Confirm' => 'подтвердить',
+ 'Connect to' => 'ПодключитьÑÑ Ðº',
+ 'Continue' => 'Продолжить',
+ 'Create Chart of Accounts' => 'Создать Таблицу плана Ñчетов',
+ 'Create Dataset' => 'Создать базу данных',
+ 'DBA' => 'DBA',
+ 'DBI not installed!' => 'Ðе уÑтановлен драйвер DBI!',
+ 'Database' => 'База данных',
+ 'Database Administration' => 'ÐдминиÑтрирование базы данных',
+ 'Database Driver not checked!' => 'Ðе проверен драйвер базы данных!',
+ 'Database User missing!' => 'Пропущен пользователь базы данных!',
+ 'Dataset' => 'База данных',
+ 'Dataset missing!' => 'Пропущена база данных',
+ 'Dataset updated!' => 'База данных обновлена!',
+ 'Date Format' => 'Формат даты',
+ 'Delete' => 'Удалить',
+ 'Delete Dataset' => 'Удалить базу данных',
+ 'Directory' => 'Каталог',
+ 'Driver' => 'Драйвер',
+ 'Dropdown Limit' => 'Ограничение падающего меню',
+ 'E-mail' => 'E-mail',
+ 'Edit User' => 'Редактировать Ñотрудника',
+ 'Existing Datasets' => 'СущеÑтвующие базы данных',
+ 'Fax' => 'ФакÑ',
+ 'Host' => 'Сервер',
+ 'Hostname missing!' => 'Пропущено Ð¸Ð¼Ñ Ñервера',
+ 'Language' => 'Язык',
+ 'Lock System' => 'Заблокировать ÑиÑтему',
+ 'Lockfile created!' => 'Файл Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñоздан!',
+ 'Lockfile removed!' => 'Файл Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÑƒÐ´Ð°Ð»ÐµÐ½!!',
+ 'Login' => 'Пользователь',
+ 'Login name missing!' => 'Пропушено Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ!',
+ 'Logout' => 'Выход',
+ 'Manager' => 'Менеджер',
+ 'Menu Width' => 'Ширина меню',
+ 'Multibyte Encoding' => 'ÐœÐ½Ð¾Ð³Ð¾Ð±Ð°Ð¹Ñ‚Ð¾Ð²Ð°Ñ ÐºÐ¾Ð´Ð¸Ñ€Ð¾Ð²ÐºÐ°',
+ 'Name' => 'Ðаименование',
+ 'New Templates' => 'Ðовый шаблон',
+ 'No Database Drivers available!' => 'ÐедоÑтупен драйвер базы данных!',
+ 'No Dataset selected!' => 'Ðе выбрана база данных',
+ 'Nothing to delete!' => 'Ðичего не удалено!',
+ 'Number Format' => 'ЧиÑловой формат',
+ 'Oracle Database Administration' => 'ÐдминиÑтрирование базы данных Oracle',
+ 'Password' => 'Пароль',
+ 'Password changed!' => 'Пароль изменен!',
+ 'Passwords do not match!' => 'Ðеверный пароль!',
+ 'Pg Database Administration' => 'ÐдминиÑтрирование базы данных PostgreSQL (Pg)',
+ 'PgPP Database Administration' => 'ÐдминиÑтрирование базы данных PostgreSQL (PgPP)',
+ 'Phone' => 'Тел.',
+ 'Port' => 'Порт',
+ 'Port missing!' => 'Пропущен номер порта!',
+ 'Printer' => 'Принтер',
+ 'Save' => 'Сохранить',
+ 'Session Timeout' => 'Ð’Ñ€ÐµÐ¼Ñ Ð·Ð°Ð´ÐµÑ€Ð¶ÐºÐ¸ ÑеÑÑии',
+ 'Session expired!' => 'Превышено Ð²Ñ€ÐµÐ¼Ñ Ð·Ð°Ð´ÐµÑ€Ð¶ÐºÐ¸ ÑеÑÑии',
+ 'Setup Templates' => 'УÑтановить шаблоны',
+ 'Signature' => 'ПодпиÑÑŒ',
+ 'Stylesheet' => 'Оформление',
+ 'Supervisor' => 'Контролер',
+ 'Templates' => 'Шаблоны',
+ 'The following Datasets are not in use and can be deleted' => 'Сдедующие базы данных не иÑпользуютÑÑ Ð¸ могут быть удалены',
+ 'The following Datasets need to be updated' => 'Следующие базы данных необходимо обновить',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Ñто Ð¿Ñ€ÐµÐ´Ð²Ð°Ñ€Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ° ÑущеÑтвующих иÑточников. Ð’ Ñтом ÑоÑтоÑнии ни что не будет Ñоздано и удалено!',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Ð”Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð² группу, отредактируйте его Ð¸Ð¼Ñ (логин) и Ñохраните. Ð”Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ñ Ñ‚ÐµÐ¼Ð¸ же наÑтройками - Ñохраните Ñ Ð½Ð¾Ð²Ñ‹Ð¼ именем пользователÑ.',
+ 'Unlock System' => 'Разблокировать ÑиÑтему',
+ 'Update Dataset' => 'Обновить базу данных',
+ 'Use Templates' => 'ИÑпользовать шаблоны',
+ 'User' => 'Сотрудник',
+ 'User deleted!' => 'Сотрудник удалён!',
+ 'User saved!' => 'Сотрудник Ñохранен!',
+ 'Version' => 'ВерÑиÑ',
+ 'You are logged out' => 'Ð’Ñ‹ вышли из ÑиÑтемы',
+ 'does not exist' => 'не ÑущеÑтвует!',
+ 'is already a member!' => 'уже зарегиÑтрирован',
+ 'localhost' => 'localhost',
+ 'locked!' => 'заблокирована!',
+ 'successfully created!' => 'уÑпешно Ñоздана!',
+ 'successfully deleted!' => 'уÑпешно удалена!',
+ 'website' => 'Ñайт WWW',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'Ðовый_пользователь' => 'add_user',
+ 'Изменить_пароль_ÐдминиÑтратора' => 'change_admin_password',
+ 'Изменить_пароль' => 'change_password',
+ 'Продолжить' => 'continue',
+ 'Создать_базу_данных' => 'create_dataset',
+ 'Удалить' => 'delete',
+ 'Удалить_базу_данных' => 'delete_dataset',
+ 'Заблокировать_ÑиÑтему' => 'lock_system',
+ 'Пользователь' => 'login',
+ 'Выход' => 'logout',
+ 'ÐдминиÑтрирование_базы_данных_oracle' => 'oracle_database_administration',
+ 'ÐдминиÑтрирование_базы_данных_postgresql_(pg)' => 'pg_database_administration',
+ 'ÐдминиÑтрирование_базы_данных_postgresql_(pgpp)' => 'pgpp_database_administration',
+ 'Сохранить' => 'save',
+ 'Разблокировать_ÑиÑтему' => 'unlock_system',
+ 'Обновить_базу_данных' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/ru_utf/all b/locale/ru_utf/all
new file mode 100755
index 00000000..d3953d35
--- /dev/null
+++ b/locale/ru_utf/all
@@ -0,0 +1,908 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+$self{charset} = 'UTF-8';
+
+
+$self{texts} = {
+ 'A' => 'A',
+ 'AP' => 'ПоÑтуплениÑ',
+ 'AP Aging' => 'ВзаимораÑчеты Ñ Ð¿Ð¾Ñтавщиками',
+ 'AP Outstanding' => 'ЗадолженоÑÑ‚ÑŒ поÑтавщиков',
+ 'AP Transaction' => 'Проводка закупки',
+ 'AP Transactions' => 'Проводки закупки',
+ 'AR' => 'Продажи',
+ 'AR Aging' => 'ВзаимораÑчеты Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ð°Ð¼Ð¸',
+ 'AR Outstanding' => 'ЗадолженоÑÑ‚ÑŒ клиентов',
+ 'AR Transaction' => 'Проводка продаж',
+ 'AR Transactions' => 'Проводки продаж',
+ 'AR/AP' => 'Продажа/Покупка',
+ 'About' => 'О программе',
+ 'Above' => 'Больше',
+ 'Access Control' => 'Контроль доÑтупа',
+ 'Access Denied!' => 'ДоÑтуп запрещен',
+ 'Account' => 'Счет',
+ 'Account Number' => 'Код Ñчета',
+ 'Account Number missing!' => 'Ðе указан номер Ñчета!',
+ 'Account Type' => 'Тип Ñчета',
+ 'Account Type missing!' => 'Ðе указан тип Ñчета!',
+ 'Account deleted!' => 'Счет удален',
+ 'Account does not exist!' => 'Счет не ÑущеÑтвует!',
+ 'Account saved!' => 'Счет запиÑан',
+ 'Accounting' => 'БухгалтериÑ',
+ 'Accounting Menu' => 'БухгалтерÑкое меню',
+ 'Accounts' => 'Счета',
+ 'Accrual' => 'Ðакопление',
+ 'Activate Audit trail' => 'Ðктивировать пробную проверку балланÑа',
+ 'Activate Audit trails' => 'Ðктивировать пробную проверку балланÑа',
+ 'Active' => 'Ðктивный',
+ 'Add' => 'Ðовый',
+ 'Add AP Transaction' => 'ÐÐ¾Ð²Ð°Ñ Ð¿Ñ€Ð¾Ð²Ð¾Ð´ÐºÐ° поÑтуплений',
+ 'Add AR Transaction' => 'ÐÐ¾Ð²Ð°Ñ Ð¿Ñ€Ð¾Ð²Ð¾Ð´ÐºÐ° продаж',
+ 'Add Account' => 'Ðовый Ñчет',
+ 'Add Assembly' => 'Ðовый комплект',
+ 'Add Business' => 'Ðовый бизнеÑ',
+ 'Add Cash Transfer Transaction' => 'ÐÐ¾Ð²Ð°Ñ Ð¿Ñ€Ð¾Ð²Ð¾Ð´ÐºÐ° каÑÑового перемещениÑ',
+ 'Add Customer' => 'Ðовый клиент',
+ 'Add Deduction' => 'Ðовое Удержание',
+ 'Add Department' => 'Ðовый отдел',
+ 'Add Employee' => 'Ðовый Ñотрудник',
+ 'Add Exchange Rate' => 'Ðовый курÑ',
+ 'Add GIFI' => 'Ðовый GIFI',
+ 'Add General Ledger Transaction' => 'ÐÐ¾Ð²Ð°Ñ Ð¿Ñ€Ð¾Ð²Ð¾Ð´ÐºÐ°',
+ 'Add Group' => 'ÐÐ¾Ð²Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð°',
+ 'Add Job' => 'Добавить работу',
+ 'Add Labor/Overhead' => 'ÐÐ¾Ð²Ð°Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð°/накладные раÑходы',
+ 'Add Language' => 'Ðовый Ñзык',
+ 'Add POS Invoice' => 'ÐÐ¾Ð²Ñ‹Ð°Ñ Ñ„Ð°ÐºÑ‚ÑƒÑ€Ð° ККМ',
+ 'Add Part' => 'Ðовый продукт',
+ 'Add Pricegroup' => 'Ðовый тип цен',
+ 'Add Project' => 'Ðовый проект',
+ 'Add Purchase Order' => 'Ðовый заказ поÑтавщика',
+ 'Add Quotation' => 'Ðовое резервирование',
+ 'Add Request for Quotation' => 'Ðовый Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° резервирование',
+ 'Add SIC' => 'Ðовый SIC',
+ 'Add Sales Invoice' => 'ÐÐ¾Ð²Ð°Ñ Ñ„Ð°ÐºÑ‚ÑƒÑ€Ð° продажи',
+ 'Add Sales Order' => 'Ðовый заказ клиента',
+ 'Add Service' => 'ÐÐ¾Ð²Ð°Ñ ÑƒÑлуга',
+ 'Add Stores Card' => 'Добавить карту хранениÑ',
+ 'Add Time Card' => 'Добавить карту времени',
+ 'Add Transaction' => 'ÐÐ¾Ð²Ð°Ñ Ð¿Ñ€Ð¾Ð²Ð¾Ð´ÐºÐ°',
+ 'Add User' => 'Ðовый пользователь',
+ 'Add Vendor' => 'Ðовый поÑтавщик',
+ 'Add Vendor Invoice' => 'ÐÐ¾Ð²Ð°Ñ Ñ„Ð°ÐºÑ‚ÑƒÑ€Ð° поÑтуплениÑ',
+ 'Add Warehouse' => 'Ðовый Ñклад',
+ 'Address' => 'ÐдреÑ',
+ 'Administration' => 'ÐдминиÑтрирование',
+ 'Administrator' => 'ÐдминиÑтратор',
+ 'After Deduction' => 'ПоÑле УдержаниÑ',
+ 'All' => 'Ð’Ñе',
+ 'All Accounts' => 'Ð’Ñе Ñчета',
+ 'All Datasets up to date!' => 'All Datasets up to date!',
+ 'All Items' => 'Ð’ÑÑ Ð½Ð¾Ð¼ÐµÐºÐ»Ð°Ñ‚ÑƒÑ€Ð°',
+ 'Allocated' => 'Размещено',
+ 'Allowances' => 'СпиÑаниÑ',
+ 'Amount' => 'Сумма',
+ 'Amount Due' => 'Сумма к получению',
+ 'Amount missing!' => 'Пропущена Ñумма',
+ 'Apr' => 'апр',
+ 'April' => 'апрель',
+ 'Are you sure you want to delete Invoice Number' => 'Вы уверены, что хотите удалить данную фактуру?',
+ 'Are you sure you want to delete Order Number' => 'Вы уверены, что хотите удалить данный заказ?',
+ 'Are you sure you want to delete Quotation Number' => 'Вы уверены, что хотите удалить резерв?',
+ 'Are you sure you want to delete Transaction' => 'Вы уверены, что хотите удалить данную проводку?',
+ 'Are you sure you want to delete time card for' => 'Ð’Ñ‹ уверены, что хотите удалить time card длÑ',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Ð’Ñ‹ дейÑтвительно хотите отменить очередь Ð´Ð»Ñ Ð¾Ñ‚Ð¼ÐµÑ‡ÐµÐ½Ð½Ñ‹Ñ… позиций?',
+ 'As of' => 'как',
+ 'Assemblies' => 'Комплекты',
+ 'Assemblies restocked!' => 'Комплект заполнен!',
+ 'Assembly' => 'Комлект',
+ 'Assembly stocked!' => 'Сборка помещена!',
+ 'Asset' => 'Ðктив',
+ 'Attachment' => 'Вложение',
+ 'Audit Control' => 'Контроль',
+ 'Audit trail disabled' => 'ÐŸÑ€Ð¾Ð±Ð½Ð°Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ° балланÑа заблокирована',
+ 'Audit trail enabled' => 'ÐŸÑ€Ð¾Ð±Ð½Ð°Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ° балланÑа доÑтупна',
+ 'Audit trail removed up to' => 'ÐŸÑ€Ð¾Ð±Ð½Ð°Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ° балланÑа отменена до',
+ 'Audit trails disabled' => 'ÐŸÑ€Ð¾Ð±Ð½Ð°Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ° балланÑа заблокирована',
+ 'Audit trails enabled' => 'ÐŸÑ€Ð¾Ð±Ð½Ð°Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ° балланÑа доÑтупна',
+ 'Aug' => 'авг',
+ 'August' => 'авгуÑÑ‚',
+ 'Average Cost' => 'СреднÑÑ Ñ†ÐµÐ½Ð°',
+ 'Avg Cost' => 'СреднÑÑ Ñ†ÐµÐ½Ð°',
+ 'BIC' => 'BIC',
+ 'BOM' => 'ВедомоÑÑ‚ÑŒ материалов',
+ 'Backup' => 'Ð ÐµÐ·ÐµÑ€Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ',
+ 'Backup sent to' => 'Ð ÐµÐ·ÐµÑ€Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð¾Ñ‚Ð¾Ñлана на',
+ 'Balance' => 'БаланÑ',
+ 'Balance Sheet' => 'БаланÑ',
+ 'Based on' => 'ОÑнован на',
+ 'Bcc' => 'Bcc',
+ 'Before Deduction' => 'До УдержаниÑ',
+ 'Beginning Balance' => 'Ðачальный баланÑ',
+ 'Below' => 'Ðиже',
+ 'Billing Address' => 'ÐÐ´Ñ€ÐµÑ Ð´Ð¾Ñтавки Ñчета',
+ 'Bin' => 'Bin',
+ 'Bin List' => 'СпиÑок Bin',
+ 'Bin Lists' => 'СпиÑки Bin',
+ 'Books are open' => 'Книга открыта',
+ 'Break' => 'Прервать',
+ 'Business' => 'БизнеÑ',
+ 'Business Number' => 'БизнеÑ-код',
+ 'Business deleted!' => 'Ð‘Ð¸Ð·Ð½ÐµÑ ÑƒÐ´Ð°Ð»ÐµÐ½',
+ 'Business saved!' => 'Ð‘Ð¸Ð·Ð½ÐµÑ Ñохранен',
+ 'C' => 'C',
+ 'COGS' => 'COGS',
+ 'COGS account does not exist!' => 'ОтÑутÑтвует Ñчет проданных товаров',
+ 'Cannot add stores card for a completed job!' => 'Ðевозможно добавить к завершенному заданию',
+ 'Cannot add time card for a completed job!' => 'Ðевозможно добавить к завершенному заданию',
+ 'Cannot change stores card for a completed job!' => 'Ðевозможно изменить завершенное задание',
+ 'Cannot change time card for a completed job!' => 'Ðевозможно изменить завершенное задание',
+ 'Cannot create Assembly' => 'Ðевозможно Ñоздать Ñборку',
+ 'Cannot create Labor' => 'Ðевозможно Ñоздать работу',
+ 'Cannot create Lock!' => 'Ðевозможно заблокировать!',
+ 'Cannot create Part' => 'Ðевозможно Ñоздать чаÑÑ‚ÑŒ',
+ 'Cannot create Service' => 'Ðевозможно ÑоздатьуÑлугу',
+ 'Cannot delete account!' => 'Ðевозможно удалить Ñчет!',
+ 'Cannot delete customer!' => 'Ðевозможно удалить покупателÑ',
+ 'Cannot delete default account!' => 'Ðевозможно удалить оÑновной Ñчет!',
+ 'Cannot delete invoice!' => 'Ðевозможно удалить фактуру!',
+ 'Cannot delete item!' => 'Ðевозможно удалить номенклатуру!',
+ 'Cannot delete order!' => 'Ðевозможно удалить заказ!',
+ 'Cannot delete quotation!' => 'Ðевозможно удалить резерв!',
+ 'Cannot delete time card!' => 'Ðевозможно удалить карту времени',
+ 'Cannot delete transaction!' => 'Ðевозможно удалить проводку!',
+ 'Cannot delete vendor!' => 'Ðевозможно удалить поÑтавщика!',
+ 'Cannot post Payment!' => 'Ðевозможно провеÑти оплату!',
+ 'Cannot post Receipt!' => 'Ðевозможно провеÑти получение!',
+ 'Cannot post invoice for a closed period!' => 'Ðевозможно провеÑти фактуру в закрытом периоде!',
+ 'Cannot post invoice!' => 'Ðевозможно провеÑти фактуру!',
+ 'Cannot post payment for a closed period!' => 'Ðевозможно провеÑти оплату Ð´Ð»Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð¾Ð³Ð¾ периода!',
+ 'Cannot post transaction for a closed period!' => 'Ðевозможно провеÑти проводку в закрытом периоде!',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => 'Ðевозможно провеÑти проводку Ñ Ð´ÐµÐ±ÐµÑ‚Ð¾Ð¼ и кредитом Ð´Ð»Ñ Ð¾Ð±Ð½Ð¾Ð³Ð¾ и того же Ñчета!',
+ 'Cannot post transaction!' => 'Ðевозможно провеÑти проводку!',
+ 'Cannot remove files!' => 'Ðевозможно перемеÑтить файлы!',
+ 'Cannot save account!' => 'Ðевозможно Ñохранить Ñчет!',
+ 'Cannot save defaults!' => 'Ðевозможно Ñохранить наÑтройки по умолчании!',
+ 'Cannot save order!' => 'Ðевозможно Ñохранить заказ!',
+ 'Cannot save preferences!' => 'Ðевозможно Ñохранить наÑтройки!',
+ 'Cannot save quotation!' => 'Ðевозможно Ñохранить резерв',
+ 'Cannot save stores card for a closed period!' => 'Ðевозможно Ñохранить карту Ð´Ð»Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð¾Ð³Ð¾ периода',
+ 'Cannot save stores card!' => 'Ðевозможно Ñохранить карту',
+ 'Cannot save time card for a closed period!' => 'Ðевозможно Ñохранить карту времени Ð´Ð»Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð¾Ð³Ð¾ периода',
+ 'Cannot save time card!' => 'Ðевозможно Ñохранить карту времени',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Ðевозможно уÑтановить в Ñчете более чем одно значение из AR, AP или IC',
+ 'Cannot set multiple options for' => 'Ðевозможно уÑтановить много опций длÑ',
+ 'Cannot set multiple options for Item' => 'Ðевозможно уÑтановить много опций Ð´Ð»Ñ Ñлемента',
+ 'Cannot stock Assembly!' => 'Ðевозможно Ñформировать комплект!',
+ 'Cannot stock assemblies!' => 'Ðевозможно Ñформировать комплект!',
+ 'Cash' => 'КаÑÑа',
+ 'Cc' => 'Cc',
+ 'Change' => 'Изменить',
+ 'Change Admin Password' => 'Изменить пароль ÐдминиÑтратора',
+ 'Change Password' => 'Изменить пароль',
+ 'Chargeable' => 'Возмещаемый',
+ 'Chart of Accounts' => 'План Ñчетов',
+ 'Check' => 'Проверить',
+ 'Check Inventory' => 'Проверить инвентарь',
+ 'Checks' => 'Проверки',
+ 'City' => 'Город',
+ 'Cleared' => 'Очищено',
+ 'Click on login name to edit!' => 'Ð”Ð»Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ»Ð¸ÐºÐ½Ð¸Ñ‚Ðµ на Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ.',
+ 'Clocked' => 'Clocked',
+ 'Close Books up to' => 'Закрыть книгу по',
+ 'Closed' => 'Закрыт',
+ 'Code' => 'Код',
+ 'Code missing!' => 'Пропущен код',
+ 'Company' => 'ОрганизациÑ',
+ 'Company Name' => 'Ðаименование организации',
+ 'Compare to' => 'Сравнить Ñ',
+ 'Completed' => 'Завершен',
+ 'Components' => 'Компоненты',
+ 'Confirm' => 'подтвердить',
+ 'Confirm!' => 'Подтвердить!',
+ 'Connect to' => 'ПодключитьÑÑ Ðº',
+ 'Contact' => 'Контактное лицо',
+ 'Continue' => 'Продолжить',
+ 'Contra' => 'Против',
+ 'Copies' => 'Копий',
+ 'Copy to COA' => 'Копировать в ГПС',
+ 'Cost' => 'Цена',
+ 'Cost Center' => 'Учетный отдел',
+ 'Could not save pricelist!' => 'Ðевозможно Ñохранить прайÑ!',
+ 'Could not save!' => 'Ðевозможно Ñохранить!',
+ 'Could not transfer Inventory!' => 'Ðевозможно переÑеÑтить инвентарь',
+ 'Country' => 'Страна',
+ 'Create Chart of Accounts' => 'Создать Таблицу плана Ñчетов',
+ 'Create Dataset' => 'Создать базу данных',
+ 'Credit' => 'Кредит',
+ 'Credit Limit' => 'Лимит кредита',
+ 'Curr' => 'Валюта',
+ 'Currency' => 'Валюта',
+ 'Current' => 'Текущий',
+ 'Current Earnings' => 'Ð¢ÐµÐºÑƒÑ‰Ð°Ñ Ð¿Ñ€Ð¸Ð±Ñ‹Ð»ÑŒ',
+ 'Customer' => 'Клиент',
+ 'Customer History' => 'ИÑториÑ',
+ 'Customer Number' => 'Код клиента',
+ 'Customer deleted!' => 'Клиент удален!',
+ 'Customer missing!' => 'Пропущен клиент!',
+ 'Customer not on file!' => 'Клиент отÑутÑтвует в Ñправочнике!',
+ 'Customer saved!' => 'Клиент Ñохранен',
+ 'Customers' => 'Клиенты',
+ 'DBA' => 'DBA',
+ 'DBI not installed!' => 'Ðе уÑтановлен драйвер DBI!',
+ 'DOB' => 'Дата рождениÑ',
+ 'Database' => 'База данных',
+ 'Database Administration' => 'ÐдминиÑтрирование базы данных',
+ 'Database Driver not checked!' => 'Ðе проверен драйвер базы данных!',
+ 'Database Host' => 'Сервер базы данных',
+ 'Database User missing!' => 'Пропущен пользователь базы данных!',
+ 'Dataset' => 'База данных',
+ 'Dataset is newer than version!' => 'База данных новее, чем Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ Ð²ÐµÑ€ÑиÑ!',
+ 'Dataset missing!' => 'Пропущена база данных',
+ 'Dataset updated!' => 'База данных обновлена!',
+ 'Date' => 'Дата',
+ 'Date Format' => 'Формат даты',
+ 'Date Paid' => 'Дата оплаты',
+ 'Date Received' => 'Дата получена',
+ 'Date missing!' => 'Пропущена дата',
+ 'Date received missing!' => 'Пропущена дата',
+ 'Date worked' => 'Дата работ',
+ 'Day' => 'День',
+ 'Day(s)' => 'День',
+ 'Days' => 'Дней',
+ 'Debit' => 'Дебет',
+ 'Dec' => 'дек',
+ 'December' => 'декабрь',
+ 'Decimalplaces' => 'деÑÑÑ‚Ð¸Ñ‡Ð½Ð°Ñ Ñ‚Ð¾Ñ‡ÐºÐ°',
+ 'Decrease' => 'уменьшение',
+ 'Deduct after' => 'Удержать поÑле',
+ 'Deduction deleted!' => 'Удержание удалено!',
+ 'Deduction saved!' => 'Удержание Ñохранено!',
+ 'Deductions' => 'УдержаниÑ',
+ 'Default Template' => 'Шаблон по умолчанию',
+ 'Defaults' => 'ÐаÑтройки по умолчании',
+ 'Defaults saved!' => 'ÐаÑтройки по умолчании Ñохранены!',
+ 'Delete' => 'Удалить',
+ 'Delete Account' => 'Удалмть Ñчет',
+ 'Delete Dataset' => 'Удалить базу данных',
+ 'Delete Schedule' => 'Удалить раÑпиÑание',
+ 'Deleting a language will also delete the templates for the language' => 'Удаление Ñзыка приведет к удалению шаблонов',
+ 'Delivery Date' => 'Дата получениÑ',
+ 'Department' => 'Отдел',
+ 'Department deleted!' => 'Отдел удален!',
+ 'Department saved!' => 'Отдел Ñохранен!',
+ 'Departments' => 'Отделы',
+ 'Deposit' => 'Депозит',
+ 'Description' => 'ОпиÑание',
+ 'Description Translations' => 'ОпиÑание проводок',
+ 'Description missing!' => 'Провущено ОпиÑание!',
+ 'Detail' => 'Детализировать',
+ 'Difference' => 'Разница',
+ 'Directory' => 'Каталог',
+ 'Discount' => 'Скидка',
+ 'Done' => 'Выполнено',
+ 'Drawing' => 'Изображение',
+ 'Driver' => 'Драйвер',
+ 'Dropdown Limit' => 'Ограничение падающего меню',
+ 'Due Date' => 'Оплатить до',
+ 'Due Date missing!' => 'Ðе указан Ñрок оплаты!',
+ 'E-mail' => 'E-mail',
+ 'E-mail Statement to' => 'СоÑтоÑние E-mail длÑ',
+ 'E-mail address missing!' => 'Ðе указан Ð°Ð´Ñ€ÐµÑ E-mail!',
+ 'E-mail message' => 'E-mail Ñообщение',
+ 'E-mailed' => 'Отправлено по e-mail',
+ 'Edit' => 'Редактировать',
+ 'Edit AP Transaction' => 'Редактировать проводку ПоÑтуплениÑ',
+ 'Edit AR Transaction' => 'Редактировать проводку Продаж',
+ 'Edit Account' => 'Редактировать Ñчет',
+ 'Edit Assembly' => 'Редактировать комплект',
+ 'Edit Business' => 'Редактировать бизнеÑ',
+ 'Edit Cash Transfer Transaction' => 'Редактировать проводку КаÑÑового ПеремещениÑ',
+ 'Edit Customer' => 'Редактировать Клиента',
+ 'Edit Deduction' => 'Редактировать Удержание',
+ 'Edit Department' => 'Редактировать Отдел',
+ 'Edit Description Translations' => 'Редактировать опиÑание проводок',
+ 'Edit Employee' => 'Редактировать Ñотрудника',
+ 'Edit GIFI' => 'Редактировать GIFI',
+ 'Edit General Ledger Transaction' => 'Редактировать проводку главной книги',
+ 'Edit Group' => 'Редактировать группу',
+ 'Edit Job' => 'Редактировать задание',
+ 'Edit Labor/Overhead' => 'Редактировать работы/накладные раÑходы',
+ 'Edit Language' => 'Редактировать Язык',
+ 'Edit POS Invoice' => 'Редактировать ККМ-фактуру',
+ 'Edit Part' => 'Редактировать товар',
+ 'Edit Preferences for' => 'Редактировать наÑтройки длÑ',
+ 'Edit Pricegroup' => 'Редактировать тип цен',
+ 'Edit Project' => 'Редактировать Проект',
+ 'Edit Purchase Order' => 'Редактировать Фактуру поÑтавщика',
+ 'Edit Quotation' => 'Редактировать резервирование',
+ 'Edit Request for Quotation' => 'Редактировать Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° резервирование',
+ 'Edit SIC' => 'Редактировать SIC',
+ 'Edit Sales Invoice' => 'Редактировать Фактуру клиента',
+ 'Edit Sales Order' => 'Редактировать Заказ клиента',
+ 'Edit Service' => 'Редактировать УÑлугу',
+ 'Edit Template' => 'Редактировать Шаблон',
+ 'Edit Time Card' => 'Редактировать карту времени',
+ 'Edit User' => 'Редактировать Ñотрудника',
+ 'Edit Vendor' => 'Редактировать поÑтавщика',
+ 'Edit Vendor Invoice' => 'Редактировать фактуру поÑтавщику',
+ 'Edit Warehouse' => 'Редактировать Ñклад',
+ 'Employee' => 'Сотрудник',
+ 'Employee Name' => 'Ð˜Ð¼Ñ Ñотрудника',
+ 'Employee Number' => 'Код Ñотрудника',
+ 'Employee deleted!' => 'Сотрудник удален!',
+ 'Employee pays' => 'Зарплата Ñотрудника',
+ 'Employee saved!' => 'Сотрудник Ñохранен!',
+ 'Employees' => 'Сотрудники',
+ 'Employer' => 'Работодатель',
+ 'Employer pays' => 'Платежи работодателÑ',
+ 'Enddate' => 'Дата окончаниÑ',
+ 'Ends' => 'окончание',
+ 'Enforce transaction reversal for all dates' => 'ПереÑчитадь проводки полноÑтью',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Ð”Ð»Ñ Ð¾Ð±Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð²Ð°Ð»ÑŽÑ‚Ñ‹ введите до трех букв, разделённых двоеточием, (напр. CAD:USD:EUR)',
+ 'Equity' => 'Капитал',
+ 'Every' => 'каждый',
+ 'Exch' => 'КурÑ',
+ 'Exchange Rate' => 'ÐšÑƒÑ€Ñ Ð²Ð°Ð»ÑŽÑ‚Ñ‹',
+ 'Exchange rate for payment missing!' => 'Пропущен ÐºÑƒÑ€Ñ Ð¾Ð¿Ð»Ð°Ñ‚Ñ‹!',
+ 'Exchange rate missing!' => 'Пропущен курÑ!',
+ 'Exempt age <' => 'ВозраÑÑ‚ <',
+ 'Existing Datasets' => 'СущеÑтвующие базы данных',
+ 'Expense' => 'РаÑход',
+ 'Expense account does not exist!' => 'Счет раÑхода отÑутÑтвует',
+ 'Expense/Asset' => 'РаÑход/активы',
+ 'Extended' => 'Сумма',
+ 'FX' => 'FX',
+ 'Failed to save order!' => 'Ошибка ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð¾Ñ€Ð´ÐµÑ€Ð°',
+ 'Fax' => 'ФакÑ',
+ 'Feb' => 'фев',
+ 'February' => 'февраль',
+ 'For' => 'длÑ',
+ 'Foreign Exchange Gain' => 'КурÑÐ¾Ð²Ð°Ñ Ð¿Ñ€Ð¸Ð±Ñ‹Ð»ÑŒ',
+ 'Foreign Exchange Loss' => 'КурÑовые потери',
+ 'Friday' => 'пÑтница',
+ 'From' => 'Ñ',
+ 'From Warehouse' => 'Ñо Ñклада',
+ 'GIFI' => 'GIFI',
+ 'GIFI deleted!' => 'GIFI удален',
+ 'GIFI missing!' => 'Пропущен GIFI',
+ 'GIFI saved!' => 'GIFI Ñохранен!',
+ 'GL' => 'Ð“Ð»Ð°Ð²Ð½Ð°Ñ ÐºÐ½Ð¸Ð³Ð°',
+ 'GL Reference Number' => 'Ðомер Ñправочника Главной книги',
+ 'GL Transaction' => 'Проводки Главной книги',
+ 'General Ledger' => 'Ð“Ð»Ð°Ð²Ð½Ð°Ñ ÐºÐ½Ð¸Ð³Ð°',
+ 'Generate' => 'Создать',
+ 'Generate Orders' => 'Создать ордеры',
+ 'Generate Purchase Orders' => 'Создать ордеры покупки',
+ 'Generate Purchase Orders from Sales Order' => 'Создать ордеры покупки из ордеров продажи',
+ 'Generate Sales Order' => 'Создать ордеры продажи',
+ 'Generate Sales Order from Purchase Orders' => 'Создать ордеры продажи из ордеров покупки',
+ 'Generate Sales Orders' => 'Создать ордеры продажи',
+ 'Goods & Services' => 'Товары и уÑлуги',
+ 'Group' => 'Группа',
+ 'Group Items' => 'Группа номенклатуры',
+ 'Group Translations' => 'Группа проводок',
+ 'Group deleted!' => 'Группа удалена!',
+ 'Group missing!' => 'Пропущена группа!',
+ 'Group saved!' => 'Группа Ñохранена!',
+ 'Groups' => 'Группы',
+ 'HR' => 'Сотрудники',
+ 'HTML Templates' => 'Шаблоны HTML',
+ 'Heading' => 'Раздел',
+ 'History' => 'ИÑториÑ',
+ 'Home Phone' => 'Домашний телефон',
+ 'Host' => 'Сервер',
+ 'Hostname missing!' => 'Пропущено Ð¸Ð¼Ñ Ñервера',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'Идентификатор',
+ 'Image' => 'Картинка',
+ 'In-line' => 'внутриÑтрочный',
+ 'Inactive' => 'Ðеактивный',
+ 'Include Exchange Rate Difference' => 'Включить курÑовую разноÑÑ‚ÑŒ',
+ 'Include Payment' => 'Ð’ÐºÐ»ÑŽÑ‡Ð°Ñ Ð¾Ð¿Ð»Ð°Ñ‚Ñƒ',
+ 'Include in Report' => 'Включить в отчет',
+ 'Include in drop-down menus' => 'Включить в падающее меню',
+ 'Income' => 'ПоÑтупление',
+ 'Income Statement' => 'Отчет о прибыли/убытках',
+ 'Income account does not exist!' => 'Счет поÑÑ‚ÑƒÐ¿Ð»ÐµÐ½Ð¸Ñ Ð¾Ñ‚ÑутÑтвует',
+ 'Incorrect Dataset version!' => 'ÐÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð±Ð°Ð·Ñ‹ данных!',
+ 'Increase' => 'РоÑÑ‚(увеличение)',
+ 'Individual Items' => 'Ðомеклатурные позиции',
+ 'Internal Notes' => 'Внутренние заметки',
+ 'Inventory' => 'Инвентарный',
+ 'Inventory account does not exist!' => 'Инвентарный Ñчет отÑутÑтвует',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Прежде чем комплект Ñчитать уÑаревшим, инвентарное количеÑтво должно быть нулевым!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Прежде чем товар Ñчитать уÑаревшим, инвентарное количеÑтво должно быть нулевым!',
+ 'Inventory saved!' => 'Инвентарь Ñохранен!',
+ 'Inventory transferred!' => 'Инвентарь перемещен!',
+ 'Invoice' => 'Счет-фактура',
+ 'Invoice Date' => 'Дата выÑтавлениÑ',
+ 'Invoice Date missing!' => 'Ðе указана дата выÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñчета-фактуры',
+ 'Invoice Number' => 'Ðомер Ñчета-фактуры',
+ 'Invoice Number missing!' => 'Ðе указан номер Ñчета-фактуры',
+ 'Invoice deleted!' => 'Счет-фактура удалена!',
+ 'Invoices' => 'Счет-фактуры',
+ 'Is this a summary account to record' => 'Это итоговый Ñчет Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи',
+ 'Item already on pricelist!' => 'Ðоменклатура уже еÑÑ‚ÑŒ в прайÑ-лиÑте!',
+ 'Item deleted!' => 'Ðоменклатура удалена!',
+ 'Item not on file!' => 'Ðет номенклатуры в Ñправочнике!',
+ 'Items' => 'Ðоменклатура',
+ 'Jan' => 'Ñнв',
+ 'January' => 'Ñнварь',
+ 'Job' => 'Задание',
+ 'Job Description' => 'ОпиÑание заданиÑ',
+ 'Job Name' => 'Ðаименование заданиÑ',
+ 'Job Number' => 'Ðомер заданÑ',
+ 'Job Number missing!' => 'Пропущен номер заданиÑ!',
+ 'Job deleted!' => 'Задание удалено!',
+ 'Job saved!' => 'Задание Ñохранено',
+ 'Jobs' => 'ЗаданиÑ',
+ 'Jul' => 'июл',
+ 'July' => 'июль',
+ 'Jun' => 'июн',
+ 'June' => 'июнь',
+ 'LaTeX Templates' => 'Шаблоны LaTeX',
+ 'Labor Code' => 'Код работы',
+ 'Labor Code missing!' => 'Пропущен Код работы',
+ 'Labor/Overhead' => 'Работа/накладные раÑходы',
+ 'Language' => 'Язык',
+ 'Language deleted!' => 'Язык удален',
+ 'Language saved!' => 'Язык Ñохранен',
+ 'Languages' => 'Языки',
+ 'Languages not defined!' => 'Языки не определены!',
+ 'Last Cost' => 'ПоÑледнÑÑ Ñ†ÐµÐ½Ð°',
+ 'Last Numbers & Default Accounts' => 'ПоÑледние номера документов и Ñчета по-умолчании',
+ 'Lead' => 'Lead',
+ 'Leadtime' => 'ОÑновное времÑ',
+ 'Leave host and port field empty unless you want to make a remote connection.' => 'ОÑтавте поле Ñервера и порта пуÑтым до тех пор, пока вы не захотите Ñделать удалённого ÑоединениÑ.',
+ 'Liability' => 'ПаÑÑив',
+ 'Licensed to' => 'Лицензией обладает:',
+ 'Line Total' => 'Ð˜Ñ‚Ð¾Ð³Ð¾Ð²Ð°Ñ Ð»Ð¸Ð½Ð¸Ñ',
+ 'Link' => 'СÑылка',
+ 'Link Accounts' => 'СÑылки Ñчетов',
+ 'List' => 'СпиÑок',
+ 'List Accounts' => 'СпиÑок Ñчетов',
+ 'List Businesses' => 'СпиÑок бизнеÑов',
+ 'List Departments' => 'СпиÑок отделов',
+ 'List GIFI' => 'СпиÑок GIFI',
+ 'List Languages' => 'СпиÑок Ñзыков',
+ 'List Price' => 'СпиÑок цен',
+ 'List Projects' => 'СпиÑок проектов',
+ 'List SIC' => 'СпиÑок SIC',
+ 'List Transactions' => 'СпиÑок проводок',
+ 'List Warehouses' => 'СпиÑок Ñкладов',
+ 'Lock System' => 'Заблокировать ÑиÑтему',
+ 'Lockfile created!' => 'Файл Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñоздан!',
+ 'Lockfile removed!' => 'Файл Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÑƒÐ´Ð°Ð»ÐµÐ½!!',
+ 'Login' => 'Пользователь',
+ 'Login name missing!' => 'Пропушено Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ!',
+ 'Logout' => 'Выход',
+ 'Make' => 'Создать',
+ 'Manager' => 'Менеджер',
+ 'Mar' => 'март',
+ 'March' => 'март',
+ 'Marked entries printed!' => 'Отмеченные позиции напечатаны!',
+ 'Markup' => 'Ðаценка',
+ 'Maximum' => 'МакÑимум',
+ 'May' => 'май',
+ 'May ' => 'май',
+ 'Memo' => 'Комментарий',
+ 'Menu Width' => 'Ширина меню',
+ 'Message' => 'Сообщение',
+ 'Method' => 'Метод',
+ 'Microfiche' => 'Микрофиша',
+ 'Model' => 'Модель',
+ 'Monday' => 'Понедельник',
+ 'Month' => 'меÑÑц',
+ 'Month(s)' => 'меÑÑц',
+ 'Months' => 'меÑÑцы',
+ 'Multibyte Encoding' => 'ÐœÐ½Ð¾Ð³Ð¾Ð±Ð°Ð¹Ñ‚Ð¾Ð²Ð°Ñ ÐºÐ¾Ð´Ð¸Ñ€Ð¾Ð²ÐºÐ°',
+ 'N/A' => 'N/A',
+ 'Name' => 'Ðаименование',
+ 'Name missing!' => 'Пропущено наименование!',
+ 'New Templates' => 'Ðовый шаблон',
+ 'New Window' => 'Ðовое окно',
+ 'Next' => 'Следующий',
+ 'Next Date' => 'Ð¡Ð»ÐµÐ´ÑƒÑŽÑ‰Ð°Ñ Ð´Ð°Ñ‚Ð°',
+ 'Next Number' => 'Следующий номер',
+ 'No' => 'Ðет',
+ 'No Database Drivers available!' => 'ÐедоÑтупен драйвер базы данных!',
+ 'No Dataset selected!' => 'Ðе выбрана база данных',
+ 'No Employees on file!' => 'No Employees on file!',
+ 'No Labor codes on file!' => 'No Labor codes on file!',
+ 'No Parts on file!' => 'No Parts on file!',
+ 'No email address for' => 'Ðет адреÑа e-mail длÑ',
+ 'No open Jobs!' => 'Ðет открытых заданий',
+ 'No open Projects!' => 'Ðет открытых проектов',
+ 'No.' => 'Ðом.',
+ 'Non-chargeable' => 'Ðевозмещаемые',
+ 'Non-taxable' => 'Ðе подлежащие налогообложению',
+ 'Non-taxable Purchases' => 'Закупки, не подлежащие налогообложению',
+ 'Non-taxable Sales' => 'Продажи, не подлежащие налогообложению',
+ 'Non-tracking Items' => 'ÐетраÑÑируемые Ñлементы',
+ 'Notes' => 'Комментарии',
+ 'Nothing entered!' => 'Ðичего не введено!',
+ 'Nothing selected!' => 'Ðичего не выбрано!',
+ 'Nothing to delete!' => 'Ðичего не удалено!',
+ 'Nothing to print!' => 'Ðичего не напечатано!',
+ 'Nothing to transfer!' => 'Ðичего не перемещено!',
+ 'Nov' => 'ноÑ',
+ 'November' => 'ноÑбрь',
+ 'Number' => 'код',
+ 'Number Format' => 'ЧиÑловой формат',
+ 'Number missing in Row' => 'Пропущен код в Ñтроке',
+ 'O' => 'O',
+ 'OH' => 'OH',
+ 'Obsolete' => 'УÑтаревший',
+ 'Oct' => 'окт',
+ 'October' => 'октÑбрь',
+ 'On Hand' => 'Вналичии',
+ 'Open' => 'Открыть',
+ 'Oracle Database Administration' => 'ÐдминиÑтрирование базы данных Oracle',
+ 'Order' => 'Заказ клиента',
+ 'Order Date' => 'Дата заказа клиента',
+ 'Order Date missing!' => 'Пропущена дата заказа',
+ 'Order Entry' => 'Заказы',
+ 'Order Number' => 'Ðомер заказа',
+ 'Order Number missing!' => 'Пропущен номер заказа',
+ 'Order deleted!' => 'Заказ удален!',
+ 'Order generation failed!' => 'Ошибка ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¾Ñ€Ð´ÐµÑ€Ð°',
+ 'Order saved!' => 'Заказ Ñохранен!',
+ 'Orders generated!' => 'Ордеры Ñозданы',
+ 'Orphaned' => 'Без проводок',
+ 'Out of balance transaction!' => 'Вне балланÑа проводок!',
+ 'Out of balance!' => 'Вне балланÑа!',
+ 'Outstanding' => 'ЗадолженоÑÑ‚ÑŒ',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ðомер ордера покупки',
+ 'POS' => 'ККМ',
+ 'POS Invoice' => 'ККМ Фактура',
+ 'Packing List' => 'Упаковочный ÑпиÑок',
+ 'Packing List Date missing!' => 'Пропущена дата упаковочного ÑпиÑока!',
+ 'Packing List Number missing!' => 'Пропущен номер упаковочного ÑпиÑока!',
+ 'Packing Lists' => 'Упаковочные ÑпиÑоки',
+ 'Paid' => 'Оплачено',
+ 'Part' => 'Товар',
+ 'Part Number' => 'Part Number',
+ 'Partnumber' => 'Код',
+ 'Parts' => 'Товары',
+ 'Password' => 'Пароль',
+ 'Password changed!' => 'Пароль изменен!',
+ 'Password does not match!' => 'Ðеверный пароль!',
+ 'Passwords do not match!' => 'Ðеверный пароль!',
+ 'Payables' => 'Подлежащий оплате',
+ 'Payment' => 'Оплата',
+ 'Payment date missing!' => 'Пропущена дата оплаты!',
+ 'Payment posted!' => 'Оплата проведена!',
+ 'Payments' => 'Оплаты',
+ 'Payments posted!' => 'Оплаты проведены!',
+ 'Payroll Deduction' => 'Удержание по ведомоÑти',
+ 'Period' => 'Период',
+ 'Pg Database Administration' => 'ÐдминиÑтрирование базы данных PostgreSQL (Pg)',
+ 'PgPP Database Administration' => 'ÐдминиÑтрирование базы данных PostgreSQL (PgPP)',
+ 'Phone' => 'Тел.',
+ 'Pick List' => 'СпиÑок Ð´Ð»Ñ Ð²Ñ‹Ð±Ð¾Ñ€Ð°',
+ 'Pick Lists' => 'СпиÑки Ð´Ð»Ñ Ð²Ñ‹Ð±Ð¾Ñ€Ð°',
+ 'Port' => 'Порт',
+ 'Port missing!' => 'Пропущен номер порта!',
+ 'Pos' => 'ККМ',
+ 'Post' => 'Сохранить',
+ 'Post as new' => 'Сохранить как новый',
+ 'Posted!' => 'Сохранено!',
+ 'Posting' => 'Сохранение',
+ 'Posting failed!' => 'Ошибка ÑохранениÑ',
+ 'Postscript' => 'Postscript',
+ 'Preferences' => 'ÐаÑтройки',
+ 'Preferences saved!' => 'ÐаÑтройки Ñохранены!',
+ 'Prepayment' => 'ÐŸÑ€ÐµÐ´Ð²Ð°Ñ€Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð¾Ð¿Ð»Ð°Ñ‚Ð°',
+ 'Price' => 'Цена',
+ 'Pricegroup' => 'Тип цен',
+ 'Pricegroup deleted!' => 'Удален тип цен',
+ 'Pricegroup missing!' => 'Пропущен тип цен',
+ 'Pricegroup saved!' => 'ЗапиÑан тип цен',
+ 'Pricegroups' => 'Типы цен',
+ 'Pricelist' => 'ПрайÑлиÑÑ‚',
+ 'Print' => 'Печать',
+ 'Print and Post' => 'Ðапечатать и отправить',
+ 'Print and Post as new' => 'Ðапечатать и отправить как новый',
+ 'Print and Save' => 'Ðапечатать и Ñохранить',
+ 'Print and Save as new' => 'Ðапечатать и Ñохранить как новый',
+ 'Printed' => 'Ðапечатано',
+ 'Printer' => 'Принтер',
+ 'Printing' => 'Печать',
+ 'Printing ... ' => 'Печать...',
+ 'Process Transactions' => 'Обработка проводок',
+ 'Production' => 'ПродукциÑ',
+ 'Profit Center' => 'Профит-центр',
+ 'Project' => 'Проект',
+ 'Project Description Translations' => 'Переводы опиÑÐ°Ð½Ð¸Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚Ð¾Ð²',
+ 'Project Name' => 'Ðазвание проекта',
+ 'Project Number' => 'Код проекта',
+ 'Project Number missing!' => 'Пропущен код проекта',
+ 'Project Transactions' => 'Проводки проекта',
+ 'Project deleted!' => 'Проект удален',
+ 'Project not on file!' => 'Проект отÑутÑтвует в Ñправочнике!',
+ 'Project saved!' => 'Проект Ñохранен!',
+ 'Project/Job Name' => 'Ðазвание Проекта/ЗаданиÑ',
+ 'Project/Job Number' => 'Ðомер Проекта/ЗаданиÑ',
+ 'Projects' => 'Проекты',
+ 'Purchase Order' => 'Заказ поÑтавщику',
+ 'Purchase Order Number' => 'Ðомер заказа поÑтавщику',
+ 'Purchase Orders' => 'Заказы поÑтавщику',
+ 'Qty' => 'КоличеÑтво',
+ 'Quantity exceeds available units to stock!' => 'Превышено количеÑтво единиц номенклатуры на Ñкаде',
+ 'Quarter' => 'Квартал',
+ 'Quotation' => 'Резервирование',
+ 'Quotation ' => 'Резервирование',
+ 'Quotation Date' => 'Дата резервированиÑ',
+ 'Quotation Date missing!' => 'Пропущена дата резервированиÑ!',
+ 'Quotation Number' => 'Ðомер резервированиÑ',
+ 'Quotation Number missing!' => 'Пропущен номер резервированиÑ!',
+ 'Quotation deleted!' => 'Резервирование удалено',
+ 'Quotations' => 'Резервы',
+ 'R' => 'R',
+ 'RFQ' => 'Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° резервирование',
+ 'RFQ ' => 'Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° резервирование',
+ 'RFQ Number' => 'Ðомер запроÑа на резервирование',
+ 'RFQs' => 'ЗапроÑÑ‹ на резервирование',
+ 'ROP' => 'ROP',
+ 'Rate' => 'КурÑ',
+ 'Rate missing!' => 'Пропущен курÑ',
+ 'Recd' => 'Recd',
+ 'Receipt' => 'Получение',
+ 'Receipt posted!' => 'Получение проведено!',
+ 'Receipts' => 'ПолучениÑ',
+ 'Receivables' => 'Подлежащий получению',
+ 'Receive' => 'Получить',
+ 'Receive Merchandise' => 'Получить товары',
+ 'Reconciliation' => 'СоглаÑованноÑÑ‚ÑŒ',
+ 'Reconciliation Report' => 'Отчет о ÑоглаÑованноÑти',
+ 'Record in' => 'ОтнеÑти на Ñчет',
+ 'Recurring Transaction' => 'ПовторÑющаÑÑÑ Ð¿Ñ€Ð¾Ð²Ð¾Ð´ÐºÐ°',
+ 'Recurring Transactions' => 'ПовторÑющиеÑÑ Ð¿Ñ€Ð¾Ð²Ð¾Ð´ÐºÐ¸',
+ 'Reference' => 'СÑылка',
+ 'Remaining' => 'ОÑтаток',
+ 'Remove' => 'Удалить',
+ 'Remove Audit trail up to' => 'Удалить пробную проверку балланÑа до',
+ 'Remove Audit trails up to' => 'Удалить пробную проверку балланÑа до',
+ 'Removed spoolfiles!' => 'Удалить файл очереди!',
+ 'Removing marked entries from queue ...' => 'Удалить отмеченные позиции из очереди?',
+ 'Repeat' => 'Повторить',
+ 'Report for' => 'Отчет длÑ',
+ 'Reports' => 'Отчеты',
+ 'Req' => 'Req',
+ 'Request for Quotation' => 'Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° резервирование',
+ 'Request for Quotations' => 'ЗапроÑÑ‹ на резервирование',
+ 'Required by' => 'Запрошен',
+ 'Retained Earnings' => 'ÐераÑÐ¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð½Ð°Ñ Ð¿Ñ€Ð¸Ð±Ñ‹Ð»ÑŒ',
+ 'Role' => 'Роль',
+ 'S' => 'S',
+ 'SIC' => 'SIC',
+ 'SIC deleted!' => 'SIC удален',
+ 'SIC saved!' => 'SIC Ñохранен',
+ 'SKU' => 'SKU',
+ 'SSN' => 'SSN',
+ 'Sale' => 'Продажа',
+ 'Sales' => 'Продажи',
+ 'Sales Invoice' => 'Фактура клиента',
+ 'Sales Invoice ' => 'Фактура клиента',
+ 'Sales Invoice.' => 'Фактура клиента',
+ 'Sales Invoice/AR Transaction Number' => 'Ðомер проводки Фактуры клиента',
+ 'Sales Invoices' => 'Фактуры клиента',
+ 'Sales Order' => 'Заказ клиента',
+ 'Sales Order Number' => 'Ðомер заказа клиента',
+ 'Sales Orders' => 'Заказы клиента',
+ 'Sales Quotation Number' => 'Ðомер продажи резерва',
+ 'Salesperson' => 'Продавец',
+ 'Saturday' => 'Суббота',
+ 'Save' => 'Сохранить',
+ 'Save Pricelist' => 'Сохранить прайÑлиÑÑ‚',
+ 'Save Schedule' => 'Сохранить раÑпиÑание',
+ 'Save as new' => 'Сохранить как новый',
+ 'Save to File' => 'Сохранить в файл',
+ 'Saving' => 'Сохранение',
+ 'Schedule' => 'РаÑпиÑание',
+ 'Scheduled' => 'Ðазначено раÑпиÑание',
+ 'Screen' => 'Экран',
+ 'Search' => 'ПоиÑк',
+ 'Select' => 'Выбрать',
+ 'Select Customer' => 'Выбрать покупателÑ',
+ 'Select Vendor' => 'Выбрать поÑтавщика',
+ 'Select a Printer!' => 'Выбрать принтер',
+ 'Select a printer!' => 'Выберите Принтер',
+ 'Select all' => 'Выбрать вÑе',
+ 'Select from one of the names below' => 'Выберите одно из наименований из ÑпиÑка',
+ 'Select from one of the projects below' => 'Выберите один из проектов из ÑпиÑка',
+ 'Select items' => 'Выберите Ñлементы',
+ 'Select payment' => 'Выберите оплату',
+ 'Select postscript or PDF!' => 'Выберите postscript или PDF!',
+ 'Select txt, postscript or PDF!' => 'Выберите txt, postscript или PDF!',
+ 'Sell' => 'Продажа',
+ 'Sell Price' => 'ÐŸÑ€Ð¾Ð´Ð°Ð¶Ð½Ð°Ñ Ñ†ÐµÐ½Ð°',
+ 'Send by E-Mail' => 'Отправить по E-Mail',
+ 'Sending' => 'Отправка',
+ 'Sep' => 'Ñен',
+ 'September' => 'ÑентÑбрь',
+ 'Serial No.' => 'Серийный ном.',
+ 'Serial Number' => 'Серийный номер',
+ 'Service' => 'УÑлуга',
+ 'Service Code' => 'Код уÑлуги',
+ 'Service Code missing!' => 'Пропущен Код уÑлуги!',
+ 'Service/Labor Code' => 'Код уÑлуги/работы',
+ 'Services' => 'УÑлуги',
+ 'Session Timeout' => 'Ð’Ñ€ÐµÐ¼Ñ Ð·Ð°Ð´ÐµÑ€Ð¶ÐºÐ¸ ÑеÑÑии',
+ 'Session expired!' => 'Превышено Ð²Ñ€ÐµÐ¼Ñ Ð·Ð°Ð´ÐµÑ€Ð¶ÐºÐ¸ ÑеÑÑии',
+ 'Setup Templates' => 'УÑтановить шаблоны',
+ 'Ship' => 'ДоÑтавить',
+ 'Ship Merchandise' => 'Погрузить товары',
+ 'Ship to' => 'доÑтавить длÑ',
+ 'Ship via' => 'доÑтавить через',
+ 'Shipping' => 'ДоÑтавка',
+ 'Shipping Address' => 'ÐÐ´Ñ€ÐµÑ Ð´Ð¾Ñтавки',
+ 'Shipping Date' => 'Дата доÑтавки',
+ 'Shipping Date missing!' => 'Пропущена дата доÑтавки',
+ 'Shipping Point' => 'МеÑто доÑтавки',
+ 'Short' => 'КраткоÑрочный',
+ 'Signature' => 'ПодпиÑÑŒ',
+ 'Source' => 'ИÑточник',
+ 'Spoolfile' => 'Файл очереди печати',
+ 'Standard' => 'Стандартные',
+ 'Standard Industrial Codes' => 'Стандартный промышленный код',
+ 'Startdate' => 'ÐÐ°Ñ‡Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð°Ñ‚Ð°',
+ 'State' => 'СоÑтоÑние',
+ 'State/Province' => 'Штат/ПровинциÑ',
+ 'Statement' => 'ВедомоÑÑ‚ÑŒ',
+ 'Statement Balance' => 'БаланÑÐ¾Ð²Ð°Ñ Ð²ÐµÐ´Ð¾Ð¼Ð¾ÑÑ‚ÑŒ',
+ 'Statement sent to' => 'ВедомоÑÑ‚ÑŒ отправлена длÑ',
+ 'Statements sent to printer!' => 'ВедомоÑÑ‚ÑŒ отправлена на принтер!',
+ 'Stock' => 'Сформировать',
+ 'Stock Assembly' => 'Сформировать комплект',
+ 'Stock Finished Goods' => 'Сформировать завершенную продукцию',
+ 'Stores Card' => 'Stores Card',
+ 'Stores Card saved!' => 'Stores Card saved!',
+ 'Stores Cards' => 'Stores Cards',
+ 'Stylesheet' => 'Оформление',
+ 'Sub-contract GIFI' => 'Передоверенный GIFI',
+ 'Subject' => 'Тема',
+ 'Subtotal' => 'Итого по разделу',
+ 'Summary' => 'Суммарно',
+ 'Sunday' => 'ВоÑкреÑенье',
+ 'Supervisor' => 'Контролер',
+ 'System' => 'СиÑтема',
+ 'System Defaults' => 'ÐаÑтройки ÑиÑтемы поумолчании.',
+ 'Tax' => 'Ðалог',
+ 'Tax Accounts' => 'Ðалоговые Ñчета',
+ 'Tax Included' => 'Ðалоги включены в Ñумму',
+ 'Tax Number' => 'Код налога',
+ 'Tax Number / SSN' => 'Код налога/SSN',
+ 'Tax collected' => 'Собранные налоги',
+ 'Tax paid' => 'Оплаченные налоги',
+ 'Taxable' => 'Подлежит налогообложению',
+ 'Template saved!' => 'Шаблон Ñохранен!',
+ 'Templates' => 'Шаблоны',
+ 'Terms' => 'Срок резервированиÑ',
+ 'Text' => 'ТекÑÑ‚',
+ 'Text Templates' => 'Шаблоны TXT',
+ 'The following Datasets are not in use and can be deleted' => 'Сдедующие базы данных не иÑпользуютÑÑ Ð¸ могут быть удалены',
+ 'The following Datasets need to be updated' => 'Следующие базы данных необходимо обновить',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Ñто Ð¿Ñ€ÐµÐ´Ð²Ð°Ñ€Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ° ÑущеÑтвующих иÑточников. Ð’ Ñтом ÑоÑтоÑнии ни что не будет Ñоздано и удалено!',
+ 'Thursday' => 'Четверг',
+ 'Till' => 'до',
+ 'Time Card' => 'Time Card',
+ 'Time Card deleted!' => 'Time Card deleted!',
+ 'Time Card saved!' => 'Time Card saved!',
+ 'Time Cards' => 'Time Cards',
+ 'Time In' => 'Ð’Ñ€ÐµÐ¼Ñ Ð²Ñ…Ð¾Ð´Ð°',
+ 'Time Out' => 'Ð’Ñ€ÐµÐ¼Ñ Ð²Ñ‹Ñ…Ð¾Ð´Ð°',
+ 'Times' => 'раз',
+ 'To' => 'по',
+ 'To Warehouse' => 'на Ñклад',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Ð”Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð² группу, отредактируйте его Ð¸Ð¼Ñ (логин) и Ñохраните. Ð”Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ñ Ñ‚ÐµÐ¼Ð¸ же наÑтройками - Ñохраните Ñ Ð½Ð¾Ð²Ñ‹Ð¼ именем пользователÑ.',
+ 'Top Level' => 'Верх',
+ 'Total' => 'Ð’Ñего',
+ 'Tracking Items' => 'Tracking Items',
+ 'Trade Discount' => 'Ð¢Ð¾Ñ€Ð³Ð¾Ð²Ð°Ñ Ñкидка',
+ 'Transaction' => 'Проводка',
+ 'Transaction Date missing!' => 'Пропущена Дата проводки!',
+ 'Transaction Dates' => 'Дата проводки',
+ 'Transaction deleted!' => 'Проводка удалена!',
+ 'Transaction posted!' => 'Проводка Ñохранена!',
+ 'Transaction reversal enforced for all dates' => 'Проводки переÑчитаны полноÑтью',
+ 'Transaction reversal enforced up to' => 'Проводки переÑчитаны до',
+ 'Transactions' => 'Проводки',
+ 'Transfer' => 'Перемещение',
+ 'Transfer Inventory' => 'Перемещение инвентарÑ',
+ 'Transfer from' => 'ПеремеÑтить от',
+ 'Transfer to' => 'ПеремеÑтить к',
+ 'Translation' => 'Перевод',
+ 'Translation deleted!' => 'Перевод удален!',
+ 'Translation not on file!' => 'Ðет перевода Ñ ÑпиÑке!',
+ 'Translations' => 'Переводы',
+ 'Translations saved!' => 'Переводы Ñохранены!',
+ 'Trial Balance' => 'Предварительный баланÑ',
+ 'Tuesday' => 'Вторник',
+ 'Type of Business' => 'Тип бизнеÑа',
+ 'Unit' => 'Единица',
+ 'Unit of measure' => 'Единица измерениÑ',
+ 'Unlock System' => 'Разблокировать ÑиÑтему',
+ 'Update' => 'Обновить',
+ 'Update Dataset' => 'Обновить базу данных',
+ 'Updated' => 'Обновлено',
+ 'Upgrading to Version' => 'Обновление до верÑии',
+ 'Use Templates' => 'ИÑпользовать шаблоны',
+ 'User' => 'Сотрудник',
+ 'User deleted!' => 'Сотрудник удалён!',
+ 'User saved!' => 'Сотрудник Ñохранен!',
+ 'Valid until' => 'ДейÑтвительно до',
+ 'Vendor' => 'ПоÑтавщик',
+ 'Vendor History' => 'ИÑториÑ',
+ 'Vendor Invoice' => 'Фактура поÑтавщика',
+ 'Vendor Invoice ' => 'Фактура поÑтавщика',
+ 'Vendor Invoice.' => 'Фактура поÑтавщика.',
+ 'Vendor Invoice/AP Transaction Number' => 'Ðомер проводки фактуры поÑтавщика',
+ 'Vendor Invoices' => 'Фактуры поÑтавщика',
+ 'Vendor Number' => 'Код поÑтавщика',
+ 'Vendor deleted!' => 'ПоÑтавщик удален!',
+ 'Vendor missing!' => 'Пропущен поÑтавщик!',
+ 'Vendor not on file!' => 'ПоÑтавщика нет в Ñправочнике!',
+ 'Vendor saved!' => 'ПоÑтавщик Ñохранен!',
+ 'Vendors' => 'ПоÑтавщики',
+ 'Version' => 'ВерÑиÑ',
+ 'Warehouse' => 'Склад',
+ 'Warehouse deleted!' => 'Склад удален!',
+ 'Warehouse saved!' => 'Склад Ñохранен!',
+ 'Warehouses' => 'Склады',
+ 'Warning!' => 'Внимание!',
+ 'Wednesday' => 'Среда',
+ 'Week' => 'ÐеделÑ',
+ 'Week(s)' => 'Ðедели',
+ 'Weeks' => 'Ðедели',
+ 'Weight' => 'ВеÑ',
+ 'Weight Unit' => 'Единица веÑа',
+ 'What type of item is this?' => 'Какой Ñто тип номеклатуры?',
+ 'Work Order' => 'Рабочий заказ',
+ 'Work Orders' => 'Рабочие заказы',
+ 'Work Phone' => 'Рабочий телефон',
+ 'Year' => 'Год',
+ 'Year(s)' => 'Год',
+ 'Yearend' => 'Завершение года',
+ 'Yearend date missing!' => 'Пропущена дата Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ð³Ð¾Ð´Ð°!',
+ 'Yearend posted!' => 'Завершение года выполнено!',
+ 'Yearend posting failed!' => 'Ошибка завершение года!',
+ 'Years' => 'Годы',
+ 'Yes' => 'Да',
+ 'You are logged out' => 'Ð’Ñ‹ вышли из ÑиÑтемы',
+ 'You are posting an existing transaction!' => 'Выполнение ÑущеÑтвующей проводки!',
+ 'You are printing and posting an existing transaction!' => 'Печать и выполнение ÑущеÑтвующей проводки!',
+ 'You are printing and saving an existing order' => 'Печать и Ñохранение ÑущеÑтвующего ордера',
+ 'You are printing and saving an existing quotation' => 'Печать и Ñохранение ÑущеÑтвующего резервированиÑ',
+ 'You are printing and saving an existing transaction!' => 'Печать и Ñохранение ÑущеÑтвующей проводки!',
+ 'You are saving an existing order' => 'Сохранение ÑущеÑтвующего ордера',
+ 'You are saving an existing quotation' => 'Сохранение ÑущеÑтвующего резервированиÑ',
+ 'You are saving an existing transaction!' => 'Сохранение ÑущеÑтвующей проводки!',
+ 'You did not enter a name!' => 'Ð’Ñ‹ не ввели (имÑ)наименование!',
+ 'You must enter a host and port for local and remote connections!' => 'Ð’Ñ‹ должны заполнить поле Ñервера и порта Ð´Ð»Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ и удалённого Ñоединений!',
+ 'Zip/Postal Code' => 'ИндекÑ',
+ 'account cannot be set to any other type of account' => 'Ñчету не может быть приÑвоен другой тип',
+ 'as at' => 'как в',
+ 'days' => 'дней',
+ 'does not exist' => 'не ÑущеÑтвует!',
+ 'done' => 'выполнено',
+ 'ea' => 'шт.',
+ 'failed' => 'ошибка',
+ 'for' => 'длÑ',
+ 'for Period' => 'за период',
+ 'is already a member!' => 'уже зарегиÑтрирован',
+ 'localhost' => 'localhost',
+ 'locked!' => 'заблокирована!',
+ 'posted!' => 'отправлено',
+ 'sent' => 'отправлено',
+ 'successfully created!' => 'уÑпешно Ñоздана!',
+ 'successfully deleted!' => 'уÑпешно удалена!',
+ 'time(s)' => 'раз',
+ 'unexpected error!' => 'Ð½ÐµÐ¾Ð¶Ð¸Ð´Ð°Ð½Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°',
+ 'website' => 'Ñайт WWW',
+};
+
+1;
diff --git a/locale/ru_utf/am b/locale/ru_utf/am
new file mode 100755
index 00000000..8837ea59
--- /dev/null
+++ b/locale/ru_utf/am
@@ -0,0 +1,314 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP' => 'ПоÑтуплениÑ',
+ 'AR' => 'Продажи',
+ 'About' => 'О программе',
+ 'Account' => 'Счет',
+ 'Account Number' => 'Код Ñчета',
+ 'Account Number missing!' => 'Ðе указан номер Ñчета!',
+ 'Account Type' => 'Тип Ñчета',
+ 'Account Type missing!' => 'Ðе указан тип Ñчета!',
+ 'Account deleted!' => 'Счет удален',
+ 'Account does not exist!' => 'Счет не ÑущеÑтвует!',
+ 'Account saved!' => 'Счет запиÑан',
+ 'Accounting Menu' => 'БухгалтерÑкое меню',
+ 'Accrual' => 'Ðакопление',
+ 'Activate Audit trail' => 'Ðктивировать пробную проверку балланÑа',
+ 'Add Account' => 'Ðовый Ñчет',
+ 'Add Business' => 'Ðовый бизнеÑ',
+ 'Add Department' => 'Ðовый отдел',
+ 'Add GIFI' => 'Ðовый GIFI',
+ 'Add Language' => 'Ðовый Ñзык',
+ 'Add SIC' => 'Ðовый SIC',
+ 'Add Warehouse' => 'Ðовый Ñклад',
+ 'Address' => 'ÐдреÑ',
+ 'Amount' => 'Сумма',
+ 'Asset' => 'Ðктив',
+ 'Audit Control' => 'Контроль',
+ 'Audit trail disabled' => 'ÐŸÑ€Ð¾Ð±Ð½Ð°Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ° балланÑа заблокирована',
+ 'Audit trail enabled' => 'ÐŸÑ€Ð¾Ð±Ð½Ð°Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ° балланÑа доÑтупна',
+ 'Audit trail removed up to' => 'ÐŸÑ€Ð¾Ð±Ð½Ð°Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ° балланÑа отменена до',
+ 'Backup sent to' => 'Ð ÐµÐ·ÐµÑ€Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð¾Ñ‚Ð¾Ñлана на',
+ 'Bin List' => 'СпиÑок Bin',
+ 'Books are open' => 'Книга открыта',
+ 'Business Number' => 'БизнеÑ-код',
+ 'Business deleted!' => 'Ð‘Ð¸Ð·Ð½ÐµÑ ÑƒÐ´Ð°Ð»ÐµÐ½',
+ 'Business saved!' => 'Ð‘Ð¸Ð·Ð½ÐµÑ Ñохранен',
+ 'COGS' => 'COGS',
+ 'Cannot delete account!' => 'Ðевозможно удалить Ñчет!',
+ 'Cannot delete default account!' => 'Ðевозможно удалить оÑновной Ñчет!',
+ 'Cannot save account!' => 'Ðевозможно Ñохранить Ñчет!',
+ 'Cannot save defaults!' => 'Ðевозможно Ñохранить наÑтройки по умолчании!',
+ 'Cannot save preferences!' => 'Ðевозможно Ñохранить наÑтройки!',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Ðевозможно уÑтановить в Ñчете более чем одно значение из AR, AP или IC',
+ 'Cannot set multiple options for' => 'Ðевозможно уÑтановить много опций длÑ',
+ 'Cash' => 'КаÑÑа',
+ 'Chart of Accounts' => 'План Ñчетов',
+ 'Close Books up to' => 'Закрыть книгу по',
+ 'Code' => 'Код',
+ 'Code missing!' => 'Пропущен код',
+ 'Company' => 'ОрганизациÑ',
+ 'Confirm' => 'подтвердить',
+ 'Confirm!' => 'Подтвердить!',
+ 'Continue' => 'Продолжить',
+ 'Contra' => 'Против',
+ 'Copy to COA' => 'Копировать в ГПС',
+ 'Cost Center' => 'Учетный отдел',
+ 'Credit' => 'Кредит',
+ 'Customer Number' => 'Код клиента',
+ 'Database Host' => 'Сервер базы данных',
+ 'Dataset' => 'База данных',
+ 'Date Format' => 'Формат даты',
+ 'Day' => 'День',
+ 'Days' => 'Дней',
+ 'Debit' => 'Дебет',
+ 'Default Template' => 'Шаблон по умолчанию',
+ 'Defaults saved!' => 'ÐаÑтройки по умолчании Ñохранены!',
+ 'Delete' => 'Удалить',
+ 'Delete Account' => 'Удалмть Ñчет',
+ 'Deleting a language will also delete the templates for the language' => 'Удаление Ñзыка приведет к удалению шаблонов',
+ 'Department deleted!' => 'Отдел удален!',
+ 'Department saved!' => 'Отдел Ñохранен!',
+ 'Departments' => 'Отделы',
+ 'Description' => 'ОпиÑание',
+ 'Description missing!' => 'Провущено ОпиÑание!',
+ 'Discount' => 'Скидка',
+ 'Dropdown Limit' => 'Ограничение падающего меню',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Ðе указан Ð°Ð´Ñ€ÐµÑ E-mail!',
+ 'Edit' => 'Редактировать',
+ 'Edit Account' => 'Редактировать Ñчет',
+ 'Edit Business' => 'Редактировать бизнеÑ',
+ 'Edit Department' => 'Редактировать Отдел',
+ 'Edit GIFI' => 'Редактировать GIFI',
+ 'Edit Language' => 'Редактировать Язык',
+ 'Edit Preferences for' => 'Редактировать наÑтройки длÑ',
+ 'Edit SIC' => 'Редактировать SIC',
+ 'Edit Template' => 'Редактировать Шаблон',
+ 'Edit Warehouse' => 'Редактировать Ñклад',
+ 'Employee Number' => 'Код Ñотрудника',
+ 'Ends' => 'окончание',
+ 'Enforce transaction reversal for all dates' => 'ПереÑчитадь проводки полноÑтью',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Ð”Ð»Ñ Ð¾Ð±Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð²Ð°Ð»ÑŽÑ‚Ñ‹ введите до трех букв, разделённых двоеточием, (напр. CAD:USD:EUR)',
+ 'Equity' => 'Капитал',
+ 'Every' => 'каждый',
+ 'Expense' => 'РаÑход',
+ 'Expense/Asset' => 'РаÑход/активы',
+ 'Fax' => 'ФакÑ',
+ 'Foreign Exchange Gain' => 'КурÑÐ¾Ð²Ð°Ñ Ð¿Ñ€Ð¸Ð±Ñ‹Ð»ÑŒ',
+ 'Foreign Exchange Loss' => 'КурÑовые потери',
+ 'GIFI' => 'GIFI',
+ 'GIFI deleted!' => 'GIFI удален',
+ 'GIFI missing!' => 'Пропущен GIFI',
+ 'GIFI saved!' => 'GIFI Ñохранен!',
+ 'GL' => 'Ð“Ð»Ð°Ð²Ð½Ð°Ñ ÐºÐ½Ð¸Ð³Ð°',
+ 'GL Reference Number' => 'Ðомер Ñправочника Главной книги',
+ 'GL Transaction' => 'Проводки Главной книги',
+ 'Heading' => 'Раздел',
+ 'ID' => 'Идентификатор',
+ 'Include in drop-down menus' => 'Включить в падающее меню',
+ 'Income' => 'ПоÑтупление',
+ 'Inventory' => 'Инвентарный',
+ 'Invoice' => 'Счет-фактура',
+ 'Is this a summary account to record' => 'Это итоговый Ñчет Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи',
+ 'Language' => 'Язык',
+ 'Language deleted!' => 'Язык удален',
+ 'Language saved!' => 'Язык Ñохранен',
+ 'Languages' => 'Языки',
+ 'Last Numbers & Default Accounts' => 'ПоÑледние номера документов и Ñчета по-умолчании',
+ 'Liability' => 'ПаÑÑив',
+ 'Licensed to' => 'Лицензией обладает:',
+ 'Link' => 'СÑылка',
+ 'Menu Width' => 'Ширина меню',
+ 'Method' => 'Метод',
+ 'Month' => 'меÑÑц',
+ 'Months' => 'меÑÑцы',
+ 'Name' => 'Ðаименование',
+ 'Next' => 'Следующий',
+ 'Next Number' => 'Следующий номер',
+ 'No' => 'Ðет',
+ 'No email address for' => 'Ðет адреÑа e-mail длÑ',
+ 'Non-tracking Items' => 'ÐетраÑÑируемые Ñлементы',
+ 'Number' => 'код',
+ 'Number Format' => 'ЧиÑловой формат',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Упаковочный ÑпиÑок',
+ 'Part Number' => 'Part Number',
+ 'Password' => 'Пароль',
+ 'Password does not match!' => 'Ðеверный пароль!',
+ 'Payables' => 'Подлежащий оплате',
+ 'Payment' => 'Оплата',
+ 'Phone' => 'Тел.',
+ 'Pick List' => 'СпиÑок Ð´Ð»Ñ Ð²Ñ‹Ð±Ð¾Ñ€Ð°',
+ 'Posting' => 'Сохранение',
+ 'Postscript' => 'Postscript',
+ 'Preferences saved!' => 'ÐаÑтройки Ñохранены!',
+ 'Print' => 'Печать',
+ 'Printer' => 'Принтер',
+ 'Printing' => 'Печать',
+ 'Process Transactions' => 'Обработка проводок',
+ 'Profit Center' => 'Профит-центр',
+ 'Purchase Order' => 'Заказ поÑтавщику',
+ 'Purchase Order Number' => 'Ðомер заказа поÑтавщику',
+ 'Purchase Orders' => 'Заказы поÑтавщику',
+ 'RFQ Number' => 'Ðомер запроÑа на резервирование',
+ 'Rate' => 'КурÑ',
+ 'Receivables' => 'Подлежащий получению',
+ 'Recurring Transactions' => 'ПовторÑющиеÑÑ Ð¿Ñ€Ð¾Ð²Ð¾Ð´ÐºÐ¸',
+ 'Reference' => 'СÑылка',
+ 'Remove Audit trail up to' => 'Удалить пробную проверку балланÑа до',
+ 'Retained Earnings' => 'ÐераÑÐ¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð½Ð°Ñ Ð¿Ñ€Ð¸Ð±Ñ‹Ð»ÑŒ',
+ 'SIC deleted!' => 'SIC удален',
+ 'SIC saved!' => 'SIC Ñохранен',
+ 'Sales Invoice' => 'Фактура клиента',
+ 'Sales Invoice/AR Transaction Number' => 'Ðомер проводки Фактуры клиента',
+ 'Sales Order' => 'Заказ клиента',
+ 'Sales Order Number' => 'Ðомер заказа клиента',
+ 'Sales Orders' => 'Заказы клиента',
+ 'Sales Quotation Number' => 'Ðомер продажи резерва',
+ 'Save' => 'Сохранить',
+ 'Save as new' => 'Сохранить как новый',
+ 'Saving' => 'Сохранение',
+ 'Sending' => 'Отправка',
+ 'Session Timeout' => 'Ð’Ñ€ÐµÐ¼Ñ Ð·Ð°Ð´ÐµÑ€Ð¶ÐºÐ¸ ÑеÑÑии',
+ 'Signature' => 'ПодпиÑÑŒ',
+ 'Standard Industrial Codes' => 'Стандартный промышленный код',
+ 'Stylesheet' => 'Оформление',
+ 'System Defaults' => 'ÐаÑтройки ÑиÑтемы поумолчании.',
+ 'Tax' => 'Ðалог',
+ 'Template saved!' => 'Шаблон Ñохранен!',
+ 'Times' => 'раз',
+ 'Tracking Items' => 'Tracking Items',
+ 'Transaction' => 'Проводка',
+ 'Transaction reversal enforced for all dates' => 'Проводки переÑчитаны полноÑтью',
+ 'Transaction reversal enforced up to' => 'Проводки переÑчитаны до',
+ 'Type of Business' => 'Тип бизнеÑа',
+ 'Update' => 'Обновить',
+ 'User' => 'Сотрудник',
+ 'Vendor Invoice' => 'Фактура поÑтавщика',
+ 'Vendor Invoice/AP Transaction Number' => 'Ðомер проводки фактуры поÑтавщика',
+ 'Vendor Number' => 'Код поÑтавщика',
+ 'Version' => 'ВерÑиÑ',
+ 'Warehouse deleted!' => 'Склад удален!',
+ 'Warehouse saved!' => 'Склад Ñохранен!',
+ 'Warehouses' => 'Склады',
+ 'Week' => 'ÐеделÑ',
+ 'Weeks' => 'Ðедели',
+ 'Weight Unit' => 'Единица веÑа',
+ 'Work Order' => 'Рабочий заказ',
+ 'Year' => 'Год',
+ 'Yearend' => 'Завершение года',
+ 'Yearend date missing!' => 'Пропущена дата Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ð³Ð¾Ð´Ð°!',
+ 'Yearend posted!' => 'Завершение года выполнено!',
+ 'Yearend posting failed!' => 'Ошибка завершение года!',
+ 'Years' => 'Годы',
+ 'Yes' => 'Да',
+ 'account cannot be set to any other type of account' => 'Ñчету не может быть приÑвоен другой тип',
+ 'done' => 'выполнено',
+ 'failed' => 'ошибка',
+ 'localhost' => 'localhost',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'Ðовый_Ñчет' => 'add_account',
+ 'Ðовый_бизнеÑ' => 'add_business',
+ 'Ðовый_отдел' => 'add_department',
+ 'Ðовый_Ñзык' => 'add_language',
+ 'Ðовый_sic' => 'add_sic',
+ 'Ðовый_Ñклад' => 'add_warehouse',
+ 'Продолжить' => 'continue',
+ 'Копировать_в_ГПС' => 'copy_to_coa',
+ 'Удалить' => 'delete',
+ 'Редактировать' => 'edit',
+ 'Редактировать_Ñчет' => 'edit_account',
+ 'Обработка_проводок' => 'process_transactions',
+ 'Сохранить' => 'save',
+ 'Сохранить_как_новый' => 'save_as_new',
+ 'Обновить' => 'update',
+};
+
+1;
+
diff --git a/locale/ru_utf/ap b/locale/ru_utf/ap
new file mode 100755
index 00000000..dc03d015
--- /dev/null
+++ b/locale/ru_utf/ap
@@ -0,0 +1,242 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Outstanding' => 'ЗадолженоÑÑ‚ÑŒ поÑтавщиков',
+ 'AP Transaction' => 'Проводка закупки',
+ 'AP Transactions' => 'Проводки закупки',
+ 'AR Outstanding' => 'ЗадолженоÑÑ‚ÑŒ клиентов',
+ 'AR Transaction' => 'Проводка продаж',
+ 'AR Transactions' => 'Проводки продаж',
+ 'Account' => 'Счет',
+ 'Accounting Menu' => 'БухгалтерÑкое меню',
+ 'Add AP Transaction' => 'ÐÐ¾Ð²Ð°Ñ Ð¿Ñ€Ð¾Ð²Ð¾Ð´ÐºÐ° поÑтуплений',
+ 'Add AR Transaction' => 'ÐÐ¾Ð²Ð°Ñ Ð¿Ñ€Ð¾Ð²Ð¾Ð´ÐºÐ° продаж',
+ 'Address' => 'ÐдреÑ',
+ 'Amount' => 'Сумма',
+ 'Amount Due' => 'Сумма к получению',
+ 'Apr' => 'апр',
+ 'April' => 'апрель',
+ 'Are you sure you want to delete Transaction' => 'Вы уверены, что хотите удалить данную проводку?',
+ 'Aug' => 'авг',
+ 'August' => 'авгуÑÑ‚',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'Ðевозможно удалить проводку!',
+ 'Cannot post payment for a closed period!' => 'Ðевозможно провеÑти оплату Ð´Ð»Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð¾Ð³Ð¾ периода!',
+ 'Cannot post transaction for a closed period!' => 'Ðевозможно провеÑти проводку в закрытом периоде!',
+ 'Cannot post transaction!' => 'Ðевозможно провеÑти проводку!',
+ 'Cc' => 'Cc',
+ 'Check' => 'Проверить',
+ 'Closed' => 'Закрыт',
+ 'Confirm!' => 'Подтвердить!',
+ 'Continue' => 'Продолжить',
+ 'Credit' => 'Кредит',
+ 'Credit Limit' => 'Лимит кредита',
+ 'Curr' => 'Валюта',
+ 'Currency' => 'Валюта',
+ 'Current' => 'Текущий',
+ 'Customer' => 'Клиент',
+ 'Customer missing!' => 'Пропущен клиент!',
+ 'Customer not on file!' => 'Клиент отÑутÑтвует в Ñправочнике!',
+ 'Date' => 'Дата',
+ 'Date Paid' => 'Дата оплаты',
+ 'Day(s)' => 'День',
+ 'Debit' => 'Дебет',
+ 'Dec' => 'дек',
+ 'December' => 'декабрь',
+ 'Delete' => 'Удалить',
+ 'Delete Schedule' => 'Удалить раÑпиÑание',
+ 'Department' => 'Отдел',
+ 'Description' => 'ОпиÑание',
+ 'Detail' => 'Детализировать',
+ 'Due Date' => 'Оплатить до',
+ 'Due Date missing!' => 'Ðе указан Ñрок оплаты!',
+ 'E-mail' => 'E-mail',
+ 'E-mail message' => 'E-mail Ñообщение',
+ 'Edit AP Transaction' => 'Редактировать проводку ПоÑтуплениÑ',
+ 'Edit AR Transaction' => 'Редактировать проводку Продаж',
+ 'Employee' => 'Сотрудник',
+ 'Every' => 'каждый',
+ 'Exch' => 'КурÑ',
+ 'Exchange Rate' => 'ÐšÑƒÑ€Ñ Ð²Ð°Ð»ÑŽÑ‚Ñ‹',
+ 'Exchange rate for payment missing!' => 'Пропущен ÐºÑƒÑ€Ñ Ð¾Ð¿Ð»Ð°Ñ‚Ñ‹!',
+ 'Exchange rate missing!' => 'Пропущен курÑ!',
+ 'Feb' => 'фев',
+ 'February' => 'февраль',
+ 'For' => 'длÑ',
+ 'From' => 'Ñ',
+ 'ID' => 'Идентификатор',
+ 'Include Payment' => 'Ð’ÐºÐ»ÑŽÑ‡Ð°Ñ Ð¾Ð¿Ð»Ð°Ñ‚Ñƒ',
+ 'Include in Report' => 'Включить в отчет',
+ 'Invoice' => 'Счет-фактура',
+ 'Invoice Date' => 'Дата выÑтавлениÑ',
+ 'Invoice Date missing!' => 'Ðе указана дата выÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñчета-фактуры',
+ 'Invoice Number' => 'Ðомер Ñчета-фактуры',
+ 'Jan' => 'Ñнв',
+ 'January' => 'Ñнварь',
+ 'Jul' => 'июл',
+ 'July' => 'июль',
+ 'Jun' => 'июн',
+ 'June' => 'июнь',
+ 'Manager' => 'Менеджер',
+ 'Mar' => 'март',
+ 'March' => 'март',
+ 'May' => 'май',
+ 'May ' => 'май',
+ 'Memo' => 'Комментарий',
+ 'Message' => 'Сообщение',
+ 'Month' => 'меÑÑц',
+ 'Month(s)' => 'меÑÑц',
+ 'Next Date' => 'Ð¡Ð»ÐµÐ´ÑƒÑŽÑ‰Ð°Ñ Ð´Ð°Ñ‚Ð°',
+ 'No.' => 'Ðом.',
+ 'Notes' => 'Комментарии',
+ 'Nothing to print!' => 'Ðичего не напечатано!',
+ 'Nov' => 'ноÑ',
+ 'November' => 'ноÑбрь',
+ 'Number' => 'код',
+ 'Oct' => 'окт',
+ 'October' => 'октÑбрь',
+ 'Open' => 'Открыть',
+ 'Order' => 'Заказ клиента',
+ 'Order Number' => 'Ðомер заказа',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ðомер ордера покупки',
+ 'Paid' => 'Оплачено',
+ 'Payment date missing!' => 'Пропущена дата оплаты!',
+ 'Payments' => 'Оплаты',
+ 'Period' => 'Период',
+ 'Post' => 'Сохранить',
+ 'Post as new' => 'Сохранить как новый',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Печать',
+ 'Print and Post' => 'Ðапечатать и отправить',
+ 'Print and Post as new' => 'Ðапечатать и отправить как новый',
+ 'Printed' => 'Ðапечатано',
+ 'Project' => 'Проект',
+ 'Project not on file!' => 'Проект отÑутÑтвует в Ñправочнике!',
+ 'Quarter' => 'Квартал',
+ 'Receipt' => 'Получение',
+ 'Recurring Transaction' => 'ПовторÑющаÑÑÑ Ð¿Ñ€Ð¾Ð²Ð¾Ð´ÐºÐ°',
+ 'Reference' => 'СÑылка',
+ 'Remaining' => 'ОÑтаток',
+ 'Repeat' => 'Повторить',
+ 'Sales Invoice.' => 'Фактура клиента',
+ 'Salesperson' => 'Продавец',
+ 'Save Schedule' => 'Сохранить раÑпиÑание',
+ 'Schedule' => 'РаÑпиÑание',
+ 'Scheduled' => 'Ðазначено раÑпиÑание',
+ 'Screen' => 'Экран',
+ 'Select a Printer!' => 'Выбрать принтер',
+ 'Select from one of the names below' => 'Выберите одно из наименований из ÑпиÑка',
+ 'Select from one of the projects below' => 'Выберите один из проектов из ÑпиÑка',
+ 'Select payment' => 'Выберите оплату',
+ 'Select postscript or PDF!' => 'Выберите postscript или PDF!',
+ 'Sep' => 'Ñен',
+ 'September' => 'ÑентÑбрь',
+ 'Ship to' => 'доÑтавить длÑ',
+ 'Ship via' => 'доÑтавить через',
+ 'Shipping Point' => 'МеÑто доÑтавки',
+ 'Source' => 'ИÑточник',
+ 'Startdate' => 'ÐÐ°Ñ‡Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð°Ñ‚Ð°',
+ 'Subject' => 'Тема',
+ 'Subtotal' => 'Итого по разделу',
+ 'Summary' => 'Суммарно',
+ 'Tax' => 'Ðалог',
+ 'Tax Included' => 'Ðалоги включены в Ñумму',
+ 'Till' => 'до',
+ 'To' => 'по',
+ 'Total' => 'Ð’Ñего',
+ 'Transaction' => 'Проводка',
+ 'Transaction deleted!' => 'Проводка удалена!',
+ 'Transaction posted!' => 'Проводка Ñохранена!',
+ 'Update' => 'Обновить',
+ 'Vendor' => 'ПоÑтавщик',
+ 'Vendor Invoice.' => 'Фактура поÑтавщика.',
+ 'Vendor missing!' => 'Пропущен поÑтавщик!',
+ 'Vendor not on file!' => 'ПоÑтавщика нет в Ñправочнике!',
+ 'Warning!' => 'Внимание!',
+ 'Week(s)' => 'Ðедели',
+ 'Year' => 'Год',
+ 'Year(s)' => 'Год',
+ 'Yes' => 'Да',
+ 'You are posting an existing transaction!' => 'Выполнение ÑущеÑтвующей проводки!',
+ 'You are printing and posting an existing transaction!' => 'Печать и выполнение ÑущеÑтвующей проводки!',
+ 'You are printing and saving an existing order' => 'Печать и Ñохранение ÑущеÑтвующего ордера',
+ 'You are printing and saving an existing quotation' => 'Печать и Ñохранение ÑущеÑтвующего резервированиÑ',
+ 'You are saving an existing order' => 'Сохранение ÑущеÑтвующего ордера',
+ 'You are saving an existing quotation' => 'Сохранение ÑущеÑтвующего резервированиÑ',
+ 'for' => 'длÑ',
+ 'sent' => 'отправлено',
+ 'time(s)' => 'раз',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'Проводка_закупки' => 'ap_transaction',
+ 'Проводка_продаж' => 'ar_transaction',
+ 'Продолжить' => 'continue',
+ 'Удалить' => 'delete',
+ 'Удалить_раÑпиÑание' => 'delete_schedule',
+ 'Сохранить' => 'post',
+ 'Сохранить_как_новый' => 'post_as_new',
+ 'Печать' => 'print',
+ 'Ðапечатать_и_отправить' => 'print_and_post',
+ 'Ðапечатать_и_отправить_как_новый' => 'print_and_post_as_new',
+ 'Фактура_клиента' => 'sales_invoice_',
+ 'Сохранить_раÑпиÑание' => 'save_schedule',
+ 'РаÑпиÑание' => 'schedule',
+ 'доÑтавить_длÑ' => 'ship_to',
+ 'Обновить' => 'update',
+ 'Фактура_поÑтавщика_' => 'vendor_invoice_',
+ 'Да' => 'yes',
+};
+
+1;
+
diff --git a/locale/ru_utf/ar b/locale/ru_utf/ar
new file mode 100755
index 00000000..dc03d015
--- /dev/null
+++ b/locale/ru_utf/ar
@@ -0,0 +1,242 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Outstanding' => 'ЗадолженоÑÑ‚ÑŒ поÑтавщиков',
+ 'AP Transaction' => 'Проводка закупки',
+ 'AP Transactions' => 'Проводки закупки',
+ 'AR Outstanding' => 'ЗадолженоÑÑ‚ÑŒ клиентов',
+ 'AR Transaction' => 'Проводка продаж',
+ 'AR Transactions' => 'Проводки продаж',
+ 'Account' => 'Счет',
+ 'Accounting Menu' => 'БухгалтерÑкое меню',
+ 'Add AP Transaction' => 'ÐÐ¾Ð²Ð°Ñ Ð¿Ñ€Ð¾Ð²Ð¾Ð´ÐºÐ° поÑтуплений',
+ 'Add AR Transaction' => 'ÐÐ¾Ð²Ð°Ñ Ð¿Ñ€Ð¾Ð²Ð¾Ð´ÐºÐ° продаж',
+ 'Address' => 'ÐдреÑ',
+ 'Amount' => 'Сумма',
+ 'Amount Due' => 'Сумма к получению',
+ 'Apr' => 'апр',
+ 'April' => 'апрель',
+ 'Are you sure you want to delete Transaction' => 'Вы уверены, что хотите удалить данную проводку?',
+ 'Aug' => 'авг',
+ 'August' => 'авгуÑÑ‚',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'Ðевозможно удалить проводку!',
+ 'Cannot post payment for a closed period!' => 'Ðевозможно провеÑти оплату Ð´Ð»Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð¾Ð³Ð¾ периода!',
+ 'Cannot post transaction for a closed period!' => 'Ðевозможно провеÑти проводку в закрытом периоде!',
+ 'Cannot post transaction!' => 'Ðевозможно провеÑти проводку!',
+ 'Cc' => 'Cc',
+ 'Check' => 'Проверить',
+ 'Closed' => 'Закрыт',
+ 'Confirm!' => 'Подтвердить!',
+ 'Continue' => 'Продолжить',
+ 'Credit' => 'Кредит',
+ 'Credit Limit' => 'Лимит кредита',
+ 'Curr' => 'Валюта',
+ 'Currency' => 'Валюта',
+ 'Current' => 'Текущий',
+ 'Customer' => 'Клиент',
+ 'Customer missing!' => 'Пропущен клиент!',
+ 'Customer not on file!' => 'Клиент отÑутÑтвует в Ñправочнике!',
+ 'Date' => 'Дата',
+ 'Date Paid' => 'Дата оплаты',
+ 'Day(s)' => 'День',
+ 'Debit' => 'Дебет',
+ 'Dec' => 'дек',
+ 'December' => 'декабрь',
+ 'Delete' => 'Удалить',
+ 'Delete Schedule' => 'Удалить раÑпиÑание',
+ 'Department' => 'Отдел',
+ 'Description' => 'ОпиÑание',
+ 'Detail' => 'Детализировать',
+ 'Due Date' => 'Оплатить до',
+ 'Due Date missing!' => 'Ðе указан Ñрок оплаты!',
+ 'E-mail' => 'E-mail',
+ 'E-mail message' => 'E-mail Ñообщение',
+ 'Edit AP Transaction' => 'Редактировать проводку ПоÑтуплениÑ',
+ 'Edit AR Transaction' => 'Редактировать проводку Продаж',
+ 'Employee' => 'Сотрудник',
+ 'Every' => 'каждый',
+ 'Exch' => 'КурÑ',
+ 'Exchange Rate' => 'ÐšÑƒÑ€Ñ Ð²Ð°Ð»ÑŽÑ‚Ñ‹',
+ 'Exchange rate for payment missing!' => 'Пропущен ÐºÑƒÑ€Ñ Ð¾Ð¿Ð»Ð°Ñ‚Ñ‹!',
+ 'Exchange rate missing!' => 'Пропущен курÑ!',
+ 'Feb' => 'фев',
+ 'February' => 'февраль',
+ 'For' => 'длÑ',
+ 'From' => 'Ñ',
+ 'ID' => 'Идентификатор',
+ 'Include Payment' => 'Ð’ÐºÐ»ÑŽÑ‡Ð°Ñ Ð¾Ð¿Ð»Ð°Ñ‚Ñƒ',
+ 'Include in Report' => 'Включить в отчет',
+ 'Invoice' => 'Счет-фактура',
+ 'Invoice Date' => 'Дата выÑтавлениÑ',
+ 'Invoice Date missing!' => 'Ðе указана дата выÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñчета-фактуры',
+ 'Invoice Number' => 'Ðомер Ñчета-фактуры',
+ 'Jan' => 'Ñнв',
+ 'January' => 'Ñнварь',
+ 'Jul' => 'июл',
+ 'July' => 'июль',
+ 'Jun' => 'июн',
+ 'June' => 'июнь',
+ 'Manager' => 'Менеджер',
+ 'Mar' => 'март',
+ 'March' => 'март',
+ 'May' => 'май',
+ 'May ' => 'май',
+ 'Memo' => 'Комментарий',
+ 'Message' => 'Сообщение',
+ 'Month' => 'меÑÑц',
+ 'Month(s)' => 'меÑÑц',
+ 'Next Date' => 'Ð¡Ð»ÐµÐ´ÑƒÑŽÑ‰Ð°Ñ Ð´Ð°Ñ‚Ð°',
+ 'No.' => 'Ðом.',
+ 'Notes' => 'Комментарии',
+ 'Nothing to print!' => 'Ðичего не напечатано!',
+ 'Nov' => 'ноÑ',
+ 'November' => 'ноÑбрь',
+ 'Number' => 'код',
+ 'Oct' => 'окт',
+ 'October' => 'октÑбрь',
+ 'Open' => 'Открыть',
+ 'Order' => 'Заказ клиента',
+ 'Order Number' => 'Ðомер заказа',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ðомер ордера покупки',
+ 'Paid' => 'Оплачено',
+ 'Payment date missing!' => 'Пропущена дата оплаты!',
+ 'Payments' => 'Оплаты',
+ 'Period' => 'Период',
+ 'Post' => 'Сохранить',
+ 'Post as new' => 'Сохранить как новый',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Печать',
+ 'Print and Post' => 'Ðапечатать и отправить',
+ 'Print and Post as new' => 'Ðапечатать и отправить как новый',
+ 'Printed' => 'Ðапечатано',
+ 'Project' => 'Проект',
+ 'Project not on file!' => 'Проект отÑутÑтвует в Ñправочнике!',
+ 'Quarter' => 'Квартал',
+ 'Receipt' => 'Получение',
+ 'Recurring Transaction' => 'ПовторÑющаÑÑÑ Ð¿Ñ€Ð¾Ð²Ð¾Ð´ÐºÐ°',
+ 'Reference' => 'СÑылка',
+ 'Remaining' => 'ОÑтаток',
+ 'Repeat' => 'Повторить',
+ 'Sales Invoice.' => 'Фактура клиента',
+ 'Salesperson' => 'Продавец',
+ 'Save Schedule' => 'Сохранить раÑпиÑание',
+ 'Schedule' => 'РаÑпиÑание',
+ 'Scheduled' => 'Ðазначено раÑпиÑание',
+ 'Screen' => 'Экран',
+ 'Select a Printer!' => 'Выбрать принтер',
+ 'Select from one of the names below' => 'Выберите одно из наименований из ÑпиÑка',
+ 'Select from one of the projects below' => 'Выберите один из проектов из ÑпиÑка',
+ 'Select payment' => 'Выберите оплату',
+ 'Select postscript or PDF!' => 'Выберите postscript или PDF!',
+ 'Sep' => 'Ñен',
+ 'September' => 'ÑентÑбрь',
+ 'Ship to' => 'доÑтавить длÑ',
+ 'Ship via' => 'доÑтавить через',
+ 'Shipping Point' => 'МеÑто доÑтавки',
+ 'Source' => 'ИÑточник',
+ 'Startdate' => 'ÐÐ°Ñ‡Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð°Ñ‚Ð°',
+ 'Subject' => 'Тема',
+ 'Subtotal' => 'Итого по разделу',
+ 'Summary' => 'Суммарно',
+ 'Tax' => 'Ðалог',
+ 'Tax Included' => 'Ðалоги включены в Ñумму',
+ 'Till' => 'до',
+ 'To' => 'по',
+ 'Total' => 'Ð’Ñего',
+ 'Transaction' => 'Проводка',
+ 'Transaction deleted!' => 'Проводка удалена!',
+ 'Transaction posted!' => 'Проводка Ñохранена!',
+ 'Update' => 'Обновить',
+ 'Vendor' => 'ПоÑтавщик',
+ 'Vendor Invoice.' => 'Фактура поÑтавщика.',
+ 'Vendor missing!' => 'Пропущен поÑтавщик!',
+ 'Vendor not on file!' => 'ПоÑтавщика нет в Ñправочнике!',
+ 'Warning!' => 'Внимание!',
+ 'Week(s)' => 'Ðедели',
+ 'Year' => 'Год',
+ 'Year(s)' => 'Год',
+ 'Yes' => 'Да',
+ 'You are posting an existing transaction!' => 'Выполнение ÑущеÑтвующей проводки!',
+ 'You are printing and posting an existing transaction!' => 'Печать и выполнение ÑущеÑтвующей проводки!',
+ 'You are printing and saving an existing order' => 'Печать и Ñохранение ÑущеÑтвующего ордера',
+ 'You are printing and saving an existing quotation' => 'Печать и Ñохранение ÑущеÑтвующего резервированиÑ',
+ 'You are saving an existing order' => 'Сохранение ÑущеÑтвующего ордера',
+ 'You are saving an existing quotation' => 'Сохранение ÑущеÑтвующего резервированиÑ',
+ 'for' => 'длÑ',
+ 'sent' => 'отправлено',
+ 'time(s)' => 'раз',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'Проводка_закупки' => 'ap_transaction',
+ 'Проводка_продаж' => 'ar_transaction',
+ 'Продолжить' => 'continue',
+ 'Удалить' => 'delete',
+ 'Удалить_раÑпиÑание' => 'delete_schedule',
+ 'Сохранить' => 'post',
+ 'Сохранить_как_новый' => 'post_as_new',
+ 'Печать' => 'print',
+ 'Ðапечатать_и_отправить' => 'print_and_post',
+ 'Ðапечатать_и_отправить_как_новый' => 'print_and_post_as_new',
+ 'Фактура_клиента' => 'sales_invoice_',
+ 'Сохранить_раÑпиÑание' => 'save_schedule',
+ 'РаÑпиÑание' => 'schedule',
+ 'доÑтавить_длÑ' => 'ship_to',
+ 'Обновить' => 'update',
+ 'Фактура_поÑтавщика_' => 'vendor_invoice_',
+ 'Да' => 'yes',
+};
+
+1;
+
diff --git a/locale/ru_utf/arap b/locale/ru_utf/arap
new file mode 100755
index 00000000..65eb1781
--- /dev/null
+++ b/locale/ru_utf/arap
@@ -0,0 +1,76 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Address' => 'ÐдреÑ',
+ 'Bcc' => 'Bcc',
+ 'Cc' => 'Cc',
+ 'Continue' => 'Продолжить',
+ 'Customer not on file!' => 'Клиент отÑутÑтвует в Ñправочнике!',
+ 'Date' => 'Дата',
+ 'Day(s)' => 'День',
+ 'Delete Schedule' => 'Удалить раÑпиÑание',
+ 'Description' => 'ОпиÑание',
+ 'E-mail' => 'E-mail',
+ 'E-mail message' => 'E-mail Ñообщение',
+ 'Every' => 'каждый',
+ 'For' => 'длÑ',
+ 'Include Payment' => 'Ð’ÐºÐ»ÑŽÑ‡Ð°Ñ Ð¾Ð¿Ð»Ð°Ñ‚Ñƒ',
+ 'Message' => 'Сообщение',
+ 'Month(s)' => 'меÑÑц',
+ 'Next Date' => 'Ð¡Ð»ÐµÐ´ÑƒÑŽÑ‰Ð°Ñ Ð´Ð°Ñ‚Ð°',
+ 'Number' => 'код',
+ 'Print' => 'Печать',
+ 'Project not on file!' => 'Проект отÑутÑтвует в Ñправочнике!',
+ 'Recurring Transaction' => 'ПовторÑющаÑÑÑ Ð¿Ñ€Ð¾Ð²Ð¾Ð´ÐºÐ°',
+ 'Reference' => 'СÑылка',
+ 'Repeat' => 'Повторить',
+ 'Save Schedule' => 'Сохранить раÑпиÑание',
+ 'Select from one of the names below' => 'Выберите одно из наименований из ÑпиÑка',
+ 'Select from one of the projects below' => 'Выберите один из проектов из ÑпиÑка',
+ 'Startdate' => 'ÐÐ°Ñ‡Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð°Ñ‚Ð°',
+ 'Subject' => 'Тема',
+ 'To' => 'по',
+ 'Vendor not on file!' => 'ПоÑтавщика нет в Ñправочнике!',
+ 'Warning!' => 'Внимание!',
+ 'Week(s)' => 'Ðедели',
+ 'Year(s)' => 'Год',
+ 'You are posting an existing transaction!' => 'Выполнение ÑущеÑтвующей проводки!',
+ 'You are printing and posting an existing transaction!' => 'Печать и выполнение ÑущеÑтвующей проводки!',
+ 'You are printing and saving an existing order' => 'Печать и Ñохранение ÑущеÑтвующего ордера',
+ 'You are printing and saving an existing quotation' => 'Печать и Ñохранение ÑущеÑтвующего резервированиÑ',
+ 'You are saving an existing order' => 'Сохранение ÑущеÑтвующего ордера',
+ 'You are saving an existing quotation' => 'Сохранение ÑущеÑтвующего резервированиÑ',
+ 'for' => 'длÑ',
+ 'sent' => 'отправлено',
+ 'time(s)' => 'раз',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'Продолжить' => 'continue',
+ 'Удалить_раÑпиÑание' => 'delete_schedule',
+ 'Сохранить_раÑпиÑание' => 'save_schedule',
+};
+
+1;
+
diff --git a/locale/ru_utf/arapprn b/locale/ru_utf/arapprn
new file mode 100755
index 00000000..8631960e
--- /dev/null
+++ b/locale/ru_utf/arapprn
@@ -0,0 +1,36 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'Счет',
+ 'Amount' => 'Сумма',
+ 'Continue' => 'Продолжить',
+ 'Date' => 'Дата',
+ 'Memo' => 'Комментарий',
+ 'Nothing to print!' => 'Ðичего не напечатано!',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'Postscript',
+ 'Printed' => 'Ðапечатано',
+ 'Scheduled' => 'Ðазначено раÑпиÑание',
+ 'Screen' => 'Экран',
+ 'Select a Printer!' => 'Выбрать принтер',
+ 'Select payment' => 'Выберите оплату',
+ 'Select postscript or PDF!' => 'Выберите postscript или PDF!',
+ 'Source' => 'ИÑточник',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'Продолжить' => 'continue',
+};
+
+1;
+
diff --git a/locale/ru_utf/bp b/locale/ru_utf/bp
new file mode 100755
index 00000000..73ba5b12
--- /dev/null
+++ b/locale/ru_utf/bp
@@ -0,0 +1,71 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'Счет',
+ 'Accounting Menu' => 'БухгалтерÑкое меню',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Ð’Ñ‹ дейÑтвительно хотите отменить очередь Ð´Ð»Ñ Ð¾Ñ‚Ð¼ÐµÑ‡ÐµÐ½Ð½Ñ‹Ñ… позиций?',
+ 'Bin Lists' => 'СпиÑки Bin',
+ 'Cannot remove files!' => 'Ðевозможно перемеÑтить файлы!',
+ 'Confirm!' => 'Подтвердить!',
+ 'Continue' => 'Продолжить',
+ 'Current' => 'Текущий',
+ 'Customer' => 'Клиент',
+ 'Date' => 'Дата',
+ 'Employee' => 'Сотрудник',
+ 'From' => 'Ñ',
+ 'ID' => 'Идентификатор',
+ 'Invoice' => 'Счет-фактура',
+ 'Invoice Number' => 'Ðомер Ñчета-фактуры',
+ 'Marked entries printed!' => 'Отмеченные позиции напечатаны!',
+ 'Month' => 'меÑÑц',
+ 'Order' => 'Заказ клиента',
+ 'Order Number' => 'Ðомер заказа',
+ 'Packing Lists' => 'Упаковочные ÑпиÑоки',
+ 'Period' => 'Период',
+ 'Pick Lists' => 'СпиÑки Ð´Ð»Ñ Ð²Ñ‹Ð±Ð¾Ñ€Ð°',
+ 'Print' => 'Печать',
+ 'Printing' => 'Печать',
+ 'Purchase Orders' => 'Заказы поÑтавщику',
+ 'Quarter' => 'Квартал',
+ 'Quotation' => 'Резервирование',
+ 'Quotation Number' => 'Ðомер резервированиÑ',
+ 'Quotations' => 'Резервы',
+ 'RFQs' => 'ЗапроÑÑ‹ на резервирование',
+ 'Remove' => 'Удалить',
+ 'Removed spoolfiles!' => 'Удалить файл очереди!',
+ 'Removing marked entries from queue ...' => 'Удалить отмеченные позиции из очереди?',
+ 'Sales Invoices' => 'Фактуры клиента',
+ 'Sales Orders' => 'Заказы клиента',
+ 'Select all' => 'Выбрать вÑе',
+ 'Spoolfile' => 'Файл очереди печати',
+ 'Time Cards' => 'Time Cards',
+ 'To' => 'по',
+ 'Vendor' => 'ПоÑтавщик',
+ 'Work Orders' => 'Рабочие заказы',
+ 'Year' => 'Год',
+ 'Yes' => 'Да',
+ 'done' => 'выполнено',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'Продолжить' => 'continue',
+ 'Печать' => 'print',
+ 'Удалить' => 'remove',
+ 'Выбрать_вÑе' => 'select_all',
+ 'Да' => 'yes',
+};
+
+1;
+
diff --git a/locale/ru_utf/ca b/locale/ru_utf/ca
new file mode 100755
index 00000000..de97fad0
--- /dev/null
+++ b/locale/ru_utf/ca
@@ -0,0 +1,62 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AR/AP' => 'Продажа/Покупка',
+ 'Account' => 'Счет',
+ 'Apr' => 'апр',
+ 'April' => 'апрель',
+ 'Aug' => 'авг',
+ 'August' => 'авгуÑÑ‚',
+ 'Balance' => 'БаланÑ',
+ 'Chart of Accounts' => 'План Ñчетов',
+ 'Credit' => 'Кредит',
+ 'Current' => 'Текущий',
+ 'Date' => 'Дата',
+ 'Debit' => 'Дебет',
+ 'Dec' => 'дек',
+ 'December' => 'декабрь',
+ 'Department' => 'Отдел',
+ 'Description' => 'ОпиÑание',
+ 'Feb' => 'фев',
+ 'February' => 'февраль',
+ 'From' => 'Ñ',
+ 'GIFI' => 'GIFI',
+ 'Include in Report' => 'Включить в отчет',
+ 'Jan' => 'Ñнв',
+ 'January' => 'Ñнварь',
+ 'Jul' => 'июл',
+ 'July' => 'июль',
+ 'Jun' => 'июн',
+ 'June' => 'июнь',
+ 'List Transactions' => 'СпиÑок проводок',
+ 'Mar' => 'март',
+ 'March' => 'март',
+ 'May' => 'май',
+ 'May ' => 'май',
+ 'Month' => 'меÑÑц',
+ 'Nov' => 'ноÑ',
+ 'November' => 'ноÑбрь',
+ 'Oct' => 'окт',
+ 'October' => 'октÑбрь',
+ 'Period' => 'Период',
+ 'Project Number' => 'Код проекта',
+ 'Quarter' => 'Квартал',
+ 'R' => 'R',
+ 'Reference' => 'СÑылка',
+ 'Sep' => 'Ñен',
+ 'September' => 'ÑентÑбрь',
+ 'Subtotal' => 'Итого по разделу',
+ 'To' => 'по',
+ 'Year' => 'Год',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'СпиÑок_проводок' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/ru_utf/cp b/locale/ru_utf/cp
new file mode 100755
index 00000000..21ffd248
--- /dev/null
+++ b/locale/ru_utf/cp
@@ -0,0 +1,150 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP' => 'ПоÑтуплениÑ',
+ 'AR' => 'Продажи',
+ 'Account' => 'Счет',
+ 'Accounting Menu' => 'БухгалтерÑкое меню',
+ 'Address' => 'ÐдреÑ',
+ 'All' => 'Ð’Ñе',
+ 'Amount' => 'Сумма',
+ 'Amount Due' => 'Сумма к получению',
+ 'Bcc' => 'Bcc',
+ 'Cannot post Payment!' => 'Ðевозможно провеÑти оплату!',
+ 'Cannot post Receipt!' => 'Ðевозможно провеÑти получение!',
+ 'Cannot post payment for a closed period!' => 'Ðевозможно провеÑти оплату Ð´Ð»Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð¾Ð³Ð¾ периода!',
+ 'Cc' => 'Cc',
+ 'Continue' => 'Продолжить',
+ 'Currency' => 'Валюта',
+ 'Customer' => 'Клиент',
+ 'Customer not on file!' => 'Клиент отÑутÑтвует в Ñправочнике!',
+ 'Date' => 'Дата',
+ 'Date missing!' => 'Пропущена дата',
+ 'Day(s)' => 'День',
+ 'Delete Schedule' => 'Удалить раÑпиÑание',
+ 'Department' => 'Отдел',
+ 'Deposit' => 'Депозит',
+ 'Description' => 'ОпиÑание',
+ 'Due Date' => 'Оплатить до',
+ 'E-mail' => 'E-mail',
+ 'E-mail message' => 'E-mail Ñообщение',
+ 'Every' => 'каждый',
+ 'Exchange Rate' => 'ÐšÑƒÑ€Ñ Ð²Ð°Ð»ÑŽÑ‚Ñ‹',
+ 'Exchange rate missing!' => 'Пропущен курÑ!',
+ 'For' => 'длÑ',
+ 'From' => 'Ñ',
+ 'Include Payment' => 'Ð’ÐºÐ»ÑŽÑ‡Ð°Ñ Ð¾Ð¿Ð»Ð°Ñ‚Ñƒ',
+ 'Invoice' => 'Счет-фактура',
+ 'Invoices' => 'Счет-фактуры',
+ 'Language' => 'Язык',
+ 'Memo' => 'Комментарий',
+ 'Message' => 'Сообщение',
+ 'Month(s)' => 'меÑÑц',
+ 'Next Date' => 'Ð¡Ð»ÐµÐ´ÑƒÑŽÑ‰Ð°Ñ Ð´Ð°Ñ‚Ð°',
+ 'Number' => 'код',
+ 'PDF' => 'PDF',
+ 'Payment' => 'Оплата',
+ 'Payment posted!' => 'Оплата проведена!',
+ 'Payments' => 'Оплаты',
+ 'Payments posted!' => 'Оплаты проведены!',
+ 'Post' => 'Сохранить',
+ 'Posting failed!' => 'Ошибка ÑохранениÑ',
+ 'Postscript' => 'Postscript',
+ 'Prepayment' => 'ÐŸÑ€ÐµÐ´Ð²Ð°Ñ€Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð¾Ð¿Ð»Ð°Ñ‚Ð°',
+ 'Print' => 'Печать',
+ 'Project not on file!' => 'Проект отÑутÑтвует в Ñправочнике!',
+ 'Receipt' => 'Получение',
+ 'Receipt posted!' => 'Получение проведено!',
+ 'Receipts' => 'ПолучениÑ',
+ 'Recurring Transaction' => 'ПовторÑющаÑÑÑ Ð¿Ñ€Ð¾Ð²Ð¾Ð´ÐºÐ°',
+ 'Reference' => 'СÑылка',
+ 'Repeat' => 'Повторить',
+ 'Save Schedule' => 'Сохранить раÑпиÑание',
+ 'Screen' => 'Экран',
+ 'Select' => 'Выбрать',
+ 'Select all' => 'Выбрать вÑе',
+ 'Select from one of the names below' => 'Выберите одно из наименований из ÑпиÑка',
+ 'Select from one of the projects below' => 'Выберите один из проектов из ÑпиÑка',
+ 'Select postscript or PDF!' => 'Выберите postscript или PDF!',
+ 'Source' => 'ИÑточник',
+ 'Startdate' => 'ÐÐ°Ñ‡Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð°Ñ‚Ð°',
+ 'Subject' => 'Тема',
+ 'To' => 'по',
+ 'Update' => 'Обновить',
+ 'Vendor' => 'ПоÑтавщик',
+ 'Vendor not on file!' => 'ПоÑтавщика нет в Ñправочнике!',
+ 'Warning!' => 'Внимание!',
+ 'Week(s)' => 'Ðедели',
+ 'Year(s)' => 'Год',
+ 'You are posting an existing transaction!' => 'Выполнение ÑущеÑтвующей проводки!',
+ 'You are printing and posting an existing transaction!' => 'Печать и выполнение ÑущеÑтвующей проводки!',
+ 'You are printing and saving an existing order' => 'Печать и Ñохранение ÑущеÑтвующего ордера',
+ 'You are printing and saving an existing quotation' => 'Печать и Ñохранение ÑущеÑтвующего резервированиÑ',
+ 'You are saving an existing order' => 'Сохранение ÑущеÑтвующего ордера',
+ 'You are saving an existing quotation' => 'Сохранение ÑущеÑтвующего резервированиÑ',
+ 'for' => 'длÑ',
+ 'sent' => 'отправлено',
+ 'time(s)' => 'раз',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'Продолжить' => 'continue',
+ 'Удалить_раÑпиÑание' => 'delete_schedule',
+ 'Сохранить' => 'post',
+ 'Печать' => 'print',
+ 'Сохранить_раÑпиÑание' => 'save_schedule',
+ 'Выбрать_вÑе' => 'select_all',
+ 'Обновить' => 'update',
+};
+
+1;
+
diff --git a/locale/ru_utf/ct b/locale/ru_utf/ct
new file mode 100755
index 00000000..5ff91f1a
--- /dev/null
+++ b/locale/ru_utf/ct
@@ -0,0 +1,191 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Transaction' => 'Проводка закупки',
+ 'AP Transactions' => 'Проводки закупки',
+ 'AR Transaction' => 'Проводка продаж',
+ 'AR Transactions' => 'Проводки продаж',
+ 'Accounting Menu' => 'БухгалтерÑкое меню',
+ 'Active' => 'Ðктивный',
+ 'Add Customer' => 'Ðовый клиент',
+ 'Add Vendor' => 'Ðовый поÑтавщик',
+ 'Address' => 'ÐдреÑ',
+ 'All' => 'Ð’Ñе',
+ 'Amount' => 'Сумма',
+ 'BIC' => 'BIC',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'ÐÐ´Ñ€ÐµÑ Ð´Ð¾Ñтавки Ñчета',
+ 'Break' => 'Прервать',
+ 'Cannot delete customer!' => 'Ðевозможно удалить покупателÑ',
+ 'Cannot delete vendor!' => 'Ðевозможно удалить поÑтавщика!',
+ 'Cc' => 'Cc',
+ 'City' => 'Город',
+ 'Closed' => 'Закрыт',
+ 'Company Name' => 'Ðаименование организации',
+ 'Contact' => 'Контактное лицо',
+ 'Continue' => 'Продолжить',
+ 'Cost' => 'Цена',
+ 'Could not save pricelist!' => 'Ðевозможно Ñохранить прайÑ!',
+ 'Country' => 'Страна',
+ 'Credit Limit' => 'Лимит кредита',
+ 'Curr' => 'Валюта',
+ 'Currency' => 'Валюта',
+ 'Customer History' => 'ИÑториÑ',
+ 'Customer Number' => 'Код клиента',
+ 'Customer deleted!' => 'Клиент удален!',
+ 'Customer saved!' => 'Клиент Ñохранен',
+ 'Customers' => 'Клиенты',
+ 'Delete' => 'Удалить',
+ 'Delivery Date' => 'Дата получениÑ',
+ 'Description' => 'ОпиÑание',
+ 'Detail' => 'Детализировать',
+ 'Discount' => 'Скидка',
+ 'E-mail' => 'E-mail',
+ 'Edit Customer' => 'Редактировать Клиента',
+ 'Edit Vendor' => 'Редактировать поÑтавщика',
+ 'Employee' => 'Сотрудник',
+ 'Enddate' => 'Дата окончаниÑ',
+ 'Fax' => 'ФакÑ',
+ 'From' => 'Ñ',
+ 'GIFI' => 'GIFI',
+ 'Group' => 'Группа',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'Идентификатор',
+ 'Inactive' => 'Ðеактивный',
+ 'Include in Report' => 'Включить в отчет',
+ 'Invoice' => 'Счет-фактура',
+ 'Item already on pricelist!' => 'Ðоменклатура уже еÑÑ‚ÑŒ в прайÑ-лиÑте!',
+ 'Item not on file!' => 'Ðет номенклатуры в Ñправочнике!',
+ 'Language' => 'Язык',
+ 'Leadtime' => 'ОÑновное времÑ',
+ 'Manager' => 'Менеджер',
+ 'Name' => 'Ðаименование',
+ 'Name missing!' => 'Пропущено наименование!',
+ 'No.' => 'Ðом.',
+ 'Notes' => 'Комментарии',
+ 'Number' => 'код',
+ 'Open' => 'Открыть',
+ 'Order' => 'Заказ клиента',
+ 'Orphaned' => 'Без проводок',
+ 'POS' => 'ККМ',
+ 'Part Number' => 'Part Number',
+ 'Phone' => 'Тел.',
+ 'Pricegroup' => 'Тип цен',
+ 'Pricelist' => 'ПрайÑлиÑÑ‚',
+ 'Project Number' => 'Код проекта',
+ 'Purchase Order' => 'Заказ поÑтавщику',
+ 'Purchase Orders' => 'Заказы поÑтавщику',
+ 'Qty' => 'КоличеÑтво',
+ 'Quotation' => 'Резервирование',
+ 'Quotations' => 'Резервы',
+ 'RFQ' => 'Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° резервирование',
+ 'Request for Quotations' => 'ЗапроÑÑ‹ на резервирование',
+ 'SIC' => 'SIC',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Фактура клиента',
+ 'Sales Invoices' => 'Фактуры клиента',
+ 'Sales Order' => 'Заказ клиента',
+ 'Sales Orders' => 'Заказы клиента',
+ 'Salesperson' => 'Продавец',
+ 'Save' => 'Сохранить',
+ 'Save Pricelist' => 'Сохранить прайÑлиÑÑ‚',
+ 'Save as new' => 'Сохранить как новый',
+ 'Search' => 'ПоиÑк',
+ 'Select items' => 'Выберите Ñлементы',
+ 'Sell Price' => 'ÐŸÑ€Ð¾Ð´Ð°Ð¶Ð½Ð°Ñ Ñ†ÐµÐ½Ð°',
+ 'Serial Number' => 'Серийный номер',
+ 'Shipping Address' => 'ÐÐ´Ñ€ÐµÑ Ð´Ð¾Ñтавки',
+ 'Startdate' => 'ÐÐ°Ñ‡Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð°Ñ‚Ð°',
+ 'State' => 'СоÑтоÑние',
+ 'State/Province' => 'Штат/ПровинциÑ',
+ 'Sub-contract GIFI' => 'Передоверенный GIFI',
+ 'Subtotal' => 'Итого по разделу',
+ 'Summary' => 'Суммарно',
+ 'Tax' => 'Ðалог',
+ 'Tax Included' => 'Ðалоги включены в Ñумму',
+ 'Tax Number' => 'Код налога',
+ 'Tax Number / SSN' => 'Код налога/SSN',
+ 'Taxable' => 'Подлежит налогообложению',
+ 'Terms' => 'Срок резервированиÑ',
+ 'To' => 'по',
+ 'Total' => 'Ð’Ñего',
+ 'Type of Business' => 'Тип бизнеÑа',
+ 'Unit' => 'Единица',
+ 'Update' => 'Обновить',
+ 'Vendor History' => 'ИÑториÑ',
+ 'Vendor Invoice' => 'Фактура поÑтавщика',
+ 'Vendor Invoices' => 'Фактуры поÑтавщика',
+ 'Vendor Number' => 'Код поÑтавщика',
+ 'Vendor deleted!' => 'ПоÑтавщик удален!',
+ 'Vendor saved!' => 'ПоÑтавщик Ñохранен!',
+ 'Vendors' => 'ПоÑтавщики',
+ 'Zip/Postal Code' => 'ИндекÑ',
+ 'days' => 'дней',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'Проводка_закупки' => 'ap_transaction',
+ 'Проводка_продаж' => 'ar_transaction',
+ 'Ðовый_клиент' => 'add_customer',
+ 'Ðовый_поÑтавщик' => 'add_vendor',
+ 'Продолжить' => 'continue',
+ 'Удалить' => 'delete',
+ 'ККМ' => 'pos',
+ 'ПрайÑлиÑÑ‚' => 'pricelist',
+ 'Заказ_поÑтавщику' => 'purchase_order',
+ 'Резервирование' => 'quotation',
+ 'ЗапроÑ_на_резервирование' => 'rfq',
+ 'Фактура_клиента' => 'sales_invoice',
+ 'Заказ_клиента' => 'sales_order',
+ 'Сохранить' => 'save',
+ 'Сохранить_прайÑлиÑÑ‚' => 'save_pricelist',
+ 'Сохранить_как_новый' => 'save_as_new',
+ 'Обновить' => 'update',
+ 'Фактура_поÑтавщика' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/ru_utf/gl b/locale/ru_utf/gl
new file mode 100755
index 00000000..fb98b9aa
--- /dev/null
+++ b/locale/ru_utf/gl
@@ -0,0 +1,187 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Transaction' => 'Проводка закупки',
+ 'AR Transaction' => 'Проводка продаж',
+ 'Account' => 'Счет',
+ 'Accounting Menu' => 'БухгалтерÑкое меню',
+ 'Add Cash Transfer Transaction' => 'ÐÐ¾Ð²Ð°Ñ Ð¿Ñ€Ð¾Ð²Ð¾Ð´ÐºÐ° каÑÑового перемещениÑ',
+ 'Add General Ledger Transaction' => 'ÐÐ¾Ð²Ð°Ñ Ð¿Ñ€Ð¾Ð²Ð¾Ð´ÐºÐ°',
+ 'Address' => 'ÐдреÑ',
+ 'All' => 'Ð’Ñе',
+ 'Amount' => 'Сумма',
+ 'Apr' => 'апр',
+ 'April' => 'апрель',
+ 'Are you sure you want to delete Transaction' => 'Вы уверены, что хотите удалить данную проводку?',
+ 'Asset' => 'Ðктив',
+ 'Aug' => 'авг',
+ 'August' => 'авгуÑÑ‚',
+ 'Balance' => 'БаланÑ',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'Ðевозможно удалить проводку!',
+ 'Cannot post transaction for a closed period!' => 'Ðевозможно провеÑти проводку в закрытом периоде!',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => 'Ðевозможно провеÑти проводку Ñ Ð´ÐµÐ±ÐµÑ‚Ð¾Ð¼ и кредитом Ð´Ð»Ñ Ð¾Ð±Ð½Ð¾Ð³Ð¾ и того же Ñчета!',
+ 'Cannot post transaction!' => 'Ðевозможно провеÑти проводку!',
+ 'Cc' => 'Cc',
+ 'Confirm!' => 'Подтвердить!',
+ 'Continue' => 'Продолжить',
+ 'Credit' => 'Кредит',
+ 'Current' => 'Текущий',
+ 'Customer not on file!' => 'Клиент отÑутÑтвует в Ñправочнике!',
+ 'Date' => 'Дата',
+ 'Day(s)' => 'День',
+ 'Debit' => 'Дебет',
+ 'Dec' => 'дек',
+ 'December' => 'декабрь',
+ 'Delete' => 'Удалить',
+ 'Delete Schedule' => 'Удалить раÑпиÑание',
+ 'Department' => 'Отдел',
+ 'Description' => 'ОпиÑание',
+ 'E-mail' => 'E-mail',
+ 'E-mail message' => 'E-mail Ñообщение',
+ 'Edit Cash Transfer Transaction' => 'Редактировать проводку КаÑÑового ПеремещениÑ',
+ 'Edit General Ledger Transaction' => 'Редактировать проводку главной книги',
+ 'Equity' => 'Капитал',
+ 'Every' => 'каждый',
+ 'Expense' => 'РаÑход',
+ 'FX' => 'FX',
+ 'Feb' => 'фев',
+ 'February' => 'февраль',
+ 'For' => 'длÑ',
+ 'From' => 'Ñ',
+ 'GIFI' => 'GIFI',
+ 'GL Transaction' => 'Проводки Главной книги',
+ 'General Ledger' => 'Ð“Ð»Ð°Ð²Ð½Ð°Ñ ÐºÐ½Ð¸Ð³Ð°',
+ 'ID' => 'Идентификатор',
+ 'Include Payment' => 'Ð’ÐºÐ»ÑŽÑ‡Ð°Ñ Ð¾Ð¿Ð»Ð°Ñ‚Ñƒ',
+ 'Include in Report' => 'Включить в отчет',
+ 'Income' => 'ПоÑтупление',
+ 'Jan' => 'Ñнв',
+ 'January' => 'Ñнварь',
+ 'Jul' => 'июл',
+ 'July' => 'июль',
+ 'Jun' => 'июн',
+ 'June' => 'июнь',
+ 'Liability' => 'ПаÑÑив',
+ 'Mar' => 'март',
+ 'March' => 'март',
+ 'May' => 'май',
+ 'May ' => 'май',
+ 'Memo' => 'Комментарий',
+ 'Message' => 'Сообщение',
+ 'Month' => 'меÑÑц',
+ 'Month(s)' => 'меÑÑц',
+ 'Next Date' => 'Ð¡Ð»ÐµÐ´ÑƒÑŽÑ‰Ð°Ñ Ð´Ð°Ñ‚Ð°',
+ 'Notes' => 'Комментарии',
+ 'Nov' => 'ноÑ',
+ 'November' => 'ноÑбрь',
+ 'Number' => 'код',
+ 'Oct' => 'окт',
+ 'October' => 'октÑбрь',
+ 'Out of balance transaction!' => 'Вне балланÑа проводок!',
+ 'Period' => 'Период',
+ 'Post' => 'Сохранить',
+ 'Post as new' => 'Сохранить как новый',
+ 'Print' => 'Печать',
+ 'Project' => 'Проект',
+ 'Project not on file!' => 'Проект отÑутÑтвует в Ñправочнике!',
+ 'Quarter' => 'Квартал',
+ 'R' => 'R',
+ 'Recurring Transaction' => 'ПовторÑющаÑÑÑ Ð¿Ñ€Ð¾Ð²Ð¾Ð´ÐºÐ°',
+ 'Reference' => 'СÑылка',
+ 'Repeat' => 'Повторить',
+ 'Reports' => 'Отчеты',
+ 'Sales Invoice ' => 'Фактура клиента',
+ 'Save Schedule' => 'Сохранить раÑпиÑание',
+ 'Schedule' => 'РаÑпиÑание',
+ 'Scheduled' => 'Ðазначено раÑпиÑание',
+ 'Select from one of the names below' => 'Выберите одно из наименований из ÑпиÑка',
+ 'Select from one of the projects below' => 'Выберите один из проектов из ÑпиÑка',
+ 'Sep' => 'Ñен',
+ 'September' => 'ÑентÑбрь',
+ 'Source' => 'ИÑточник',
+ 'Startdate' => 'ÐÐ°Ñ‡Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð°Ñ‚Ð°',
+ 'Subject' => 'Тема',
+ 'Subtotal' => 'Итого по разделу',
+ 'To' => 'по',
+ 'Transaction Date missing!' => 'Пропущена Дата проводки!',
+ 'Transaction deleted!' => 'Проводка удалена!',
+ 'Transaction posted!' => 'Проводка Ñохранена!',
+ 'Update' => 'Обновить',
+ 'Vendor Invoice ' => 'Фактура поÑтавщика',
+ 'Vendor not on file!' => 'ПоÑтавщика нет в Ñправочнике!',
+ 'Warning!' => 'Внимание!',
+ 'Week(s)' => 'Ðедели',
+ 'Year' => 'Год',
+ 'Year(s)' => 'Год',
+ 'Yes' => 'Да',
+ 'You are posting an existing transaction!' => 'Выполнение ÑущеÑтвующей проводки!',
+ 'You are printing and posting an existing transaction!' => 'Печать и выполнение ÑущеÑтвующей проводки!',
+ 'You are printing and saving an existing order' => 'Печать и Ñохранение ÑущеÑтвующего ордера',
+ 'You are printing and saving an existing quotation' => 'Печать и Ñохранение ÑущеÑтвующего резервированиÑ',
+ 'You are saving an existing order' => 'Сохранение ÑущеÑтвующего ордера',
+ 'You are saving an existing quotation' => 'Сохранение ÑущеÑтвующего резервированиÑ',
+ 'for' => 'длÑ',
+ 'sent' => 'отправлено',
+ 'time(s)' => 'раз',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'Проводка_закупки' => 'ap_transaction',
+ 'Проводка_продаж' => 'ar_transaction',
+ 'Продолжить' => 'continue',
+ 'Удалить' => 'delete',
+ 'Удалить_раÑпиÑание' => 'delete_schedule',
+ 'Проводки_Главной_книги' => 'gl_transaction',
+ 'Сохранить' => 'post',
+ 'Сохранить_как_новый' => 'post_as_new',
+ 'Фактура_клиента' => 'sales_invoice_',
+ 'Сохранить_раÑпиÑание' => 'save_schedule',
+ 'РаÑпиÑание' => 'schedule',
+ 'Обновить' => 'update',
+ 'Фактура_поÑтавщика' => 'vendor_invoice_',
+ 'Да' => 'yes',
+};
+
+1;
+
diff --git a/locale/ru_utf/hr b/locale/ru_utf/hr
new file mode 100755
index 00000000..06a12057
--- /dev/null
+++ b/locale/ru_utf/hr
@@ -0,0 +1,122 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP' => 'ПоÑтуплениÑ',
+ 'Above' => 'Больше',
+ 'Accounting Menu' => 'БухгалтерÑкое меню',
+ 'Active' => 'Ðктивный',
+ 'Add Deduction' => 'Ðовое Удержание',
+ 'Add Employee' => 'Ðовый Ñотрудник',
+ 'Address' => 'ÐдреÑ',
+ 'Administrator' => 'ÐдминиÑтратор',
+ 'After Deduction' => 'ПоÑле УдержаниÑ',
+ 'All' => 'Ð’Ñе',
+ 'Allowances' => 'СпиÑаниÑ',
+ 'Amount' => 'Сумма',
+ 'Amount missing!' => 'Пропущена Ñумма',
+ 'BIC' => 'BIC',
+ 'Based on' => 'ОÑнован на',
+ 'Before Deduction' => 'До УдержаниÑ',
+ 'Below' => 'Ðиже',
+ 'City' => 'Город',
+ 'Continue' => 'Продолжить',
+ 'Country' => 'Страна',
+ 'DOB' => 'Дата рождениÑ',
+ 'Deduct after' => 'Удержать поÑле',
+ 'Deduction deleted!' => 'Удержание удалено!',
+ 'Deduction saved!' => 'Удержание Ñохранено!',
+ 'Deductions' => 'УдержаниÑ',
+ 'Delete' => 'Удалить',
+ 'Description' => 'ОпиÑание',
+ 'Description missing!' => 'Провущено ОпиÑание!',
+ 'E-mail' => 'E-mail',
+ 'Edit Deduction' => 'Редактировать Удержание',
+ 'Edit Employee' => 'Редактировать Ñотрудника',
+ 'Employee' => 'Сотрудник',
+ 'Employee Name' => 'Ð˜Ð¼Ñ Ñотрудника',
+ 'Employee Number' => 'Код Ñотрудника',
+ 'Employee deleted!' => 'Сотрудник удален!',
+ 'Employee pays' => 'Зарплата Ñотрудника',
+ 'Employee saved!' => 'Сотрудник Ñохранен!',
+ 'Employees' => 'Сотрудники',
+ 'Employer' => 'Работодатель',
+ 'Employer pays' => 'Платежи работодателÑ',
+ 'Enddate' => 'Дата окончаниÑ',
+ 'Exempt age <' => 'ВозраÑÑ‚ <',
+ 'Expense' => 'РаÑход',
+ 'From' => 'Ñ',
+ 'Home Phone' => 'Домашний телефон',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'Идентификатор',
+ 'Inactive' => 'Ðеактивный',
+ 'Include in Report' => 'Включить в отчет',
+ 'Login' => 'Пользователь',
+ 'Manager' => 'Менеджер',
+ 'Maximum' => 'МакÑимум',
+ 'Name' => 'Ðаименование',
+ 'Name missing!' => 'Пропущено наименование!',
+ 'Notes' => 'Комментарии',
+ 'Number' => 'код',
+ 'Orphaned' => 'Без проводок',
+ 'Payroll Deduction' => 'Удержание по ведомоÑти',
+ 'Pos' => 'ККМ',
+ 'Rate' => 'КурÑ',
+ 'Rate missing!' => 'Пропущен курÑ',
+ 'Role' => 'Роль',
+ 'S' => 'S',
+ 'SSN' => 'SSN',
+ 'Sales' => 'Продажи',
+ 'Save' => 'Сохранить',
+ 'Save as new' => 'Сохранить как новый',
+ 'Startdate' => 'ÐÐ°Ñ‡Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð°Ñ‚Ð°',
+ 'State/Province' => 'Штат/ПровинциÑ',
+ 'Supervisor' => 'Контролер',
+ 'To' => 'по',
+ 'Update' => 'Обновить',
+ 'User' => 'Сотрудник',
+ 'Work Phone' => 'Рабочий телефон',
+ 'Zip/Postal Code' => 'ИндекÑ',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'Ðовое_Удержание' => 'add_deduction',
+ 'Ðовый_Ñотрудник' => 'add_employee',
+ 'Продолжить' => 'continue',
+ 'Удалить' => 'delete',
+ 'Сохранить' => 'save',
+ 'Сохранить_как_новый' => 'save_as_new',
+ 'Обновить' => 'update',
+};
+
+1;
+
diff --git a/locale/ru_utf/ic b/locale/ru_utf/ic
new file mode 100755
index 00000000..aaf721ba
--- /dev/null
+++ b/locale/ru_utf/ic
@@ -0,0 +1,295 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'A' => 'A',
+ 'Accounting Menu' => 'БухгалтерÑкое меню',
+ 'Accounts' => 'Счета',
+ 'Accrual' => 'Ðакопление',
+ 'Active' => 'Ðктивный',
+ 'Add' => 'Ðовый',
+ 'Add Assembly' => 'Ðовый комплект',
+ 'Add Labor/Overhead' => 'ÐÐ¾Ð²Ð°Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð°/накладные раÑходы',
+ 'Add Part' => 'Ðовый продукт',
+ 'Add Purchase Order' => 'Ðовый заказ поÑтавщика',
+ 'Add Quotation' => 'Ðовое резервирование',
+ 'Add Request for Quotation' => 'Ðовый Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° резервирование',
+ 'Add Sales Order' => 'Ðовый заказ клиента',
+ 'Add Service' => 'ÐÐ¾Ð²Ð°Ñ ÑƒÑлуга',
+ 'Address' => 'ÐдреÑ',
+ 'Apr' => 'апр',
+ 'April' => 'апрель',
+ 'Assemblies' => 'Комплекты',
+ 'Assemblies restocked!' => 'Комплект заполнен!',
+ 'Assembly' => 'Комлект',
+ 'Attachment' => 'Вложение',
+ 'Aug' => 'авг',
+ 'August' => 'авгуÑÑ‚',
+ 'Average Cost' => 'СреднÑÑ Ñ†ÐµÐ½Ð°',
+ 'Avg Cost' => 'СреднÑÑ Ñ†ÐµÐ½Ð°',
+ 'BOM' => 'ВедомоÑÑ‚ÑŒ материалов',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'ÐÐ´Ñ€ÐµÑ Ð´Ð¾Ñтавки Ñчета',
+ 'Bin' => 'Bin',
+ 'Bin List' => 'СпиÑок Bin',
+ 'Break' => 'Прервать',
+ 'COGS' => 'COGS',
+ 'COGS account does not exist!' => 'ОтÑутÑтвует Ñчет проданных товаров',
+ 'Cannot create Assembly' => 'Ðевозможно Ñоздать Ñборку',
+ 'Cannot create Labor' => 'Ðевозможно Ñоздать работу',
+ 'Cannot create Part' => 'Ðевозможно Ñоздать чаÑÑ‚ÑŒ',
+ 'Cannot create Service' => 'Ðевозможно ÑоздатьуÑлугу',
+ 'Cannot delete item!' => 'Ðевозможно удалить номенклатуру!',
+ 'Cannot stock assemblies!' => 'Ðевозможно Ñформировать комплект!',
+ 'Cash' => 'КаÑÑа',
+ 'Cc' => 'Cc',
+ 'Check Inventory' => 'Проверить инвентарь',
+ 'City' => 'Город',
+ 'Closed' => 'Закрыт',
+ 'Company Name' => 'Ðаименование организации',
+ 'Components' => 'Компоненты',
+ 'Contact' => 'Контактное лицо',
+ 'Continue' => 'Продолжить',
+ 'Copies' => 'Копий',
+ 'Cost' => 'Цена',
+ 'Country' => 'Страна',
+ 'Curr' => 'Валюта',
+ 'Currency' => 'Валюта',
+ 'Customer' => 'Клиент',
+ 'Customer Number' => 'Код клиента',
+ 'Customer not on file!' => 'Клиент отÑутÑтвует в Ñправочнике!',
+ 'Date' => 'Дата',
+ 'Dec' => 'дек',
+ 'December' => 'декабрь',
+ 'Delete' => 'Удалить',
+ 'Delivery Date' => 'Дата получениÑ',
+ 'Description' => 'ОпиÑание',
+ 'Detail' => 'Детализировать',
+ 'Drawing' => 'Изображение',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Ðе указан Ð°Ð´Ñ€ÐµÑ E-mail!',
+ 'E-mailed' => 'Отправлено по e-mail',
+ 'Edit Assembly' => 'Редактировать комплект',
+ 'Edit Labor/Overhead' => 'Редактировать работы/накладные раÑходы',
+ 'Edit Part' => 'Редактировать товар',
+ 'Edit Service' => 'Редактировать УÑлугу',
+ 'Employee' => 'Сотрудник',
+ 'Expense' => 'РаÑход',
+ 'Expense account does not exist!' => 'Счет раÑхода отÑутÑтвует',
+ 'Extended' => 'Сумма',
+ 'Fax' => 'ФакÑ',
+ 'Feb' => 'фев',
+ 'February' => 'февраль',
+ 'From' => 'Ñ',
+ 'Group' => 'Группа',
+ 'Image' => 'Картинка',
+ 'In-line' => 'внутриÑтрочный',
+ 'Include in Report' => 'Включить в отчет',
+ 'Income' => 'ПоÑтупление',
+ 'Income account does not exist!' => 'Счет поÑÑ‚ÑƒÐ¿Ð»ÐµÐ½Ð¸Ñ Ð¾Ñ‚ÑутÑтвует',
+ 'Individual Items' => 'Ðомеклатурные позиции',
+ 'Inventory' => 'Инвентарный',
+ 'Inventory account does not exist!' => 'Инвентарный Ñчет отÑутÑтвует',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Прежде чем комплект Ñчитать уÑаревшим, инвентарное количеÑтво должно быть нулевым!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Прежде чем товар Ñчитать уÑаревшим, инвентарное количеÑтво должно быть нулевым!',
+ 'Invoice' => 'Счет-фактура',
+ 'Invoice Date missing!' => 'Ðе указана дата выÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñчета-фактуры',
+ 'Invoice Number' => 'Ðомер Ñчета-фактуры',
+ 'Invoice Number missing!' => 'Ðе указан номер Ñчета-фактуры',
+ 'Item deleted!' => 'Ðоменклатура удалена!',
+ 'Item not on file!' => 'Ðет номенклатуры в Ñправочнике!',
+ 'Items' => 'Ðоменклатура',
+ 'Jan' => 'Ñнв',
+ 'January' => 'Ñнварь',
+ 'Jul' => 'июл',
+ 'July' => 'июль',
+ 'Jun' => 'июн',
+ 'June' => 'июнь',
+ 'Labor/Overhead' => 'Работа/накладные раÑходы',
+ 'Last Cost' => 'ПоÑледнÑÑ Ñ†ÐµÐ½Ð°',
+ 'Leadtime' => 'ОÑновное времÑ',
+ 'Line Total' => 'Ð˜Ñ‚Ð¾Ð³Ð¾Ð²Ð°Ñ Ð»Ð¸Ð½Ð¸Ñ',
+ 'Link Accounts' => 'СÑылки Ñчетов',
+ 'List' => 'СпиÑок',
+ 'List Price' => 'СпиÑок цен',
+ 'Make' => 'Создать',
+ 'Mar' => 'март',
+ 'March' => 'март',
+ 'Markup' => 'Ðаценка',
+ 'May' => 'май',
+ 'May ' => 'май',
+ 'Message' => 'Сообщение',
+ 'Microfiche' => 'Микрофиша',
+ 'Model' => 'Модель',
+ 'Name' => 'Ðаименование',
+ 'No.' => 'Ðом.',
+ 'Notes' => 'Комментарии',
+ 'Nov' => 'ноÑ',
+ 'November' => 'ноÑбрь',
+ 'Number' => 'код',
+ 'Number missing in Row' => 'Пропущен код в Ñтроке',
+ 'OH' => 'OH',
+ 'Obsolete' => 'УÑтаревший',
+ 'Oct' => 'окт',
+ 'October' => 'октÑбрь',
+ 'On Hand' => 'Вналичии',
+ 'Open' => 'Открыть',
+ 'Order' => 'Заказ клиента',
+ 'Order Date missing!' => 'Пропущена дата заказа',
+ 'Order Number' => 'Ðомер заказа',
+ 'Order Number missing!' => 'Пропущен номер заказа',
+ 'Orphaned' => 'Без проводок',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Упаковочный ÑпиÑок',
+ 'Packing List Date missing!' => 'Пропущена дата упаковочного ÑпиÑока!',
+ 'Packing List Number missing!' => 'Пропущен номер упаковочного ÑпиÑока!',
+ 'Part' => 'Товар',
+ 'Parts' => 'Товары',
+ 'Period' => 'Период',
+ 'Phone' => 'Тел.',
+ 'Pick List' => 'СпиÑок Ð´Ð»Ñ Ð²Ñ‹Ð±Ð¾Ñ€Ð°',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Цена',
+ 'Pricegroup' => 'Тип цен',
+ 'Printed' => 'Ðапечатано',
+ 'Project' => 'Проект',
+ 'Purchase Order' => 'Заказ поÑтавщику',
+ 'Purchase Orders' => 'Заказы поÑтавщику',
+ 'Qty' => 'КоличеÑтво',
+ 'Quantity exceeds available units to stock!' => 'Превышено количеÑтво единиц номенклатуры на Ñкаде',
+ 'Quotation' => 'Резервирование',
+ 'Quotation Date missing!' => 'Пропущена дата резервированиÑ!',
+ 'Quotation Number missing!' => 'Пропущен номер резервированиÑ!',
+ 'Quotations' => 'Резервы',
+ 'RFQ' => 'Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° резервирование',
+ 'ROP' => 'ROP',
+ 'Recd' => 'Recd',
+ 'Required by' => 'Запрошен',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Фактура клиента',
+ 'Sales Invoices' => 'Фактуры клиента',
+ 'Sales Order' => 'Заказ клиента',
+ 'Sales Orders' => 'Заказы клиента',
+ 'Save' => 'Сохранить',
+ 'Save as new' => 'Сохранить как новый',
+ 'Scheduled' => 'Ðазначено раÑпиÑание',
+ 'Screen' => 'Экран',
+ 'Select from one of the names below' => 'Выберите одно из наименований из ÑпиÑка',
+ 'Select items' => 'Выберите Ñлементы',
+ 'Select txt, postscript or PDF!' => 'Выберите txt, postscript или PDF!',
+ 'Sell' => 'Продажа',
+ 'Sell Price' => 'ÐŸÑ€Ð¾Ð´Ð°Ð¶Ð½Ð°Ñ Ñ†ÐµÐ½Ð°',
+ 'Sep' => 'Ñен',
+ 'September' => 'ÑентÑбрь',
+ 'Serial No.' => 'Серийный ном.',
+ 'Serial Number' => 'Серийный номер',
+ 'Service' => 'УÑлуга',
+ 'Services' => 'УÑлуги',
+ 'Ship' => 'ДоÑтавить',
+ 'Ship to' => 'доÑтавить длÑ',
+ 'Shipping Address' => 'ÐÐ´Ñ€ÐµÑ Ð´Ð¾Ñтавки',
+ 'Short' => 'КраткоÑрочный',
+ 'State/Province' => 'Штат/ПровинциÑ',
+ 'Stock' => 'Сформировать',
+ 'Stock Assembly' => 'Сформировать комплект',
+ 'Subject' => 'Тема',
+ 'Subtotal' => 'Итого по разделу',
+ 'Summary' => 'Суммарно',
+ 'Tax' => 'Ðалог',
+ 'Text' => 'ТекÑÑ‚',
+ 'To' => 'по',
+ 'Top Level' => 'Верх',
+ 'Translation not on file!' => 'Ðет перевода Ñ ÑпиÑке!',
+ 'Unit' => 'Единица',
+ 'Update' => 'Обновить',
+ 'Updated' => 'Обновлено',
+ 'Vendor' => 'ПоÑтавщик',
+ 'Vendor Invoice' => 'Фактура поÑтавщика',
+ 'Vendor Invoices' => 'Фактуры поÑтавщика',
+ 'Vendor Number' => 'Код поÑтавщика',
+ 'Vendor not on file!' => 'ПоÑтавщика нет в Ñправочнике!',
+ 'Warehouse' => 'Склад',
+ 'Weight' => 'ВеÑ',
+ 'What type of item is this?' => 'Какой Ñто тип номеклатуры?',
+ 'Work Order' => 'Рабочий заказ',
+ 'Year' => 'Год',
+ 'Zip/Postal Code' => 'ИндекÑ',
+ 'days' => 'дней',
+ 'sent' => 'отправлено',
+ 'unexpected error!' => 'Ð½ÐµÐ¾Ð¶Ð¸Ð´Ð°Ð½Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'Ðовый_комплект' => 'add_assembly',
+ 'ÐоваÑ_работа_накладные_раÑходы' => 'add_labor_overhead',
+ 'Ðовый_продукт' => 'add_part',
+ 'ÐоваÑ_уÑлуга' => 'add_service',
+ 'Продолжить' => 'continue',
+ 'Удалить' => 'delete',
+ 'Редактировать_комплект' => 'edit_assembly',
+ 'Редактировать_товар' => 'edit_part',
+ 'Редактировать_УÑлугу' => 'edit_service',
+ 'Сохранить' => 'save',
+ 'Сохранить_как_новый' => 'save_as_new',
+ 'Обновить' => 'update',
+};
+
+1;
+
diff --git a/locale/ru_utf/io b/locale/ru_utf/io
new file mode 100755
index 00000000..518235d6
--- /dev/null
+++ b/locale/ru_utf/io
@@ -0,0 +1,136 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Add Purchase Order' => 'Ðовый заказ поÑтавщика',
+ 'Add Quotation' => 'Ðовое резервирование',
+ 'Add Request for Quotation' => 'Ðовый Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° резервирование',
+ 'Add Sales Order' => 'Ðовый заказ клиента',
+ 'Address' => 'ÐдреÑ',
+ 'Apr' => 'апр',
+ 'April' => 'апрель',
+ 'Attachment' => 'Вложение',
+ 'Aug' => 'авг',
+ 'August' => 'авгуÑÑ‚',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'ÐÐ´Ñ€ÐµÑ Ð´Ð¾Ñтавки Ñчета',
+ 'Bin' => 'Bin',
+ 'Bin List' => 'СпиÑок Bin',
+ 'Cc' => 'Cc',
+ 'City' => 'Город',
+ 'Company Name' => 'Ðаименование организации',
+ 'Contact' => 'Контактное лицо',
+ 'Continue' => 'Продолжить',
+ 'Copies' => 'Копий',
+ 'Country' => 'Страна',
+ 'Customer Number' => 'Код клиента',
+ 'Date' => 'Дата',
+ 'Dec' => 'дек',
+ 'December' => 'декабрь',
+ 'Delivery Date' => 'Дата получениÑ',
+ 'Description' => 'ОпиÑание',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Ðе указан Ð°Ð´Ñ€ÐµÑ E-mail!',
+ 'E-mailed' => 'Отправлено по e-mail',
+ 'Extended' => 'Сумма',
+ 'Fax' => 'ФакÑ',
+ 'Feb' => 'фев',
+ 'February' => 'февраль',
+ 'Group' => 'Группа',
+ 'In-line' => 'внутриÑтрочный',
+ 'Invoice' => 'Счет-фактура',
+ 'Invoice Date missing!' => 'Ðе указана дата выÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñчета-фактуры',
+ 'Invoice Number missing!' => 'Ðе указан номер Ñчета-фактуры',
+ 'Item not on file!' => 'Ðет номенклатуры в Ñправочнике!',
+ 'Jan' => 'Ñнв',
+ 'January' => 'Ñнварь',
+ 'Jul' => 'июл',
+ 'July' => 'июль',
+ 'Jun' => 'июн',
+ 'June' => 'июнь',
+ 'Mar' => 'март',
+ 'March' => 'март',
+ 'May' => 'май',
+ 'May ' => 'май',
+ 'Message' => 'Сообщение',
+ 'Nov' => 'ноÑ',
+ 'November' => 'ноÑбрь',
+ 'Number' => 'код',
+ 'Number missing in Row' => 'Пропущен код в Ñтроке',
+ 'OH' => 'OH',
+ 'Oct' => 'окт',
+ 'October' => 'октÑбрь',
+ 'Order Date missing!' => 'Пропущена дата заказа',
+ 'Order Number missing!' => 'Пропущен номер заказа',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Упаковочный ÑпиÑок',
+ 'Packing List Date missing!' => 'Пропущена дата упаковочного ÑпиÑока!',
+ 'Packing List Number missing!' => 'Пропущен номер упаковочного ÑпиÑока!',
+ 'Part' => 'Товар',
+ 'Phone' => 'Тел.',
+ 'Pick List' => 'СпиÑок Ð´Ð»Ñ Ð²Ñ‹Ð±Ð¾Ñ€Ð°',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Цена',
+ 'Printed' => 'Ðапечатано',
+ 'Project' => 'Проект',
+ 'Purchase Order' => 'Заказ поÑтавщику',
+ 'Qty' => 'КоличеÑтво',
+ 'Quotation' => 'Резервирование',
+ 'Quotation Date missing!' => 'Пропущена дата резервированиÑ!',
+ 'Quotation Number missing!' => 'Пропущен номер резервированиÑ!',
+ 'Recd' => 'Recd',
+ 'Required by' => 'Запрошен',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Заказ клиента',
+ 'Scheduled' => 'Ðазначено раÑпиÑание',
+ 'Screen' => 'Экран',
+ 'Select items' => 'Выберите Ñлементы',
+ 'Select txt, postscript or PDF!' => 'Выберите txt, postscript или PDF!',
+ 'Sep' => 'Ñен',
+ 'September' => 'ÑентÑбрь',
+ 'Serial No.' => 'Серийный ном.',
+ 'Service' => 'УÑлуга',
+ 'Ship' => 'ДоÑтавить',
+ 'Ship to' => 'доÑтавить длÑ',
+ 'Shipping Address' => 'ÐÐ´Ñ€ÐµÑ Ð´Ð¾Ñтавки',
+ 'State/Province' => 'Штат/ПровинциÑ',
+ 'Subject' => 'Тема',
+ 'Subtotal' => 'Итого по разделу',
+ 'Text' => 'ТекÑÑ‚',
+ 'To' => 'по',
+ 'Translation not on file!' => 'Ðет перевода Ñ ÑпиÑке!',
+ 'Unit' => 'Единица',
+ 'Vendor Number' => 'Код поÑтавщика',
+ 'What type of item is this?' => 'Какой Ñто тип номеклатуры?',
+ 'Work Order' => 'Рабочий заказ',
+ 'Zip/Postal Code' => 'ИндекÑ',
+ 'sent' => 'отправлено',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'Продолжить' => 'continue',
+};
+
+1;
+
diff --git a/locale/ru_utf/ir b/locale/ru_utf/ir
new file mode 100755
index 00000000..b6fa5f78
--- /dev/null
+++ b/locale/ru_utf/ir
@@ -0,0 +1,256 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'Счет',
+ 'Accounting Menu' => 'БухгалтерÑкое меню',
+ 'Add Purchase Order' => 'Ðовый заказ поÑтавщика',
+ 'Add Quotation' => 'Ðовое резервирование',
+ 'Add Request for Quotation' => 'Ðовый Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° резервирование',
+ 'Add Sales Order' => 'Ðовый заказ клиента',
+ 'Add Vendor Invoice' => 'ÐÐ¾Ð²Ð°Ñ Ñ„Ð°ÐºÑ‚ÑƒÑ€Ð° поÑтуплениÑ',
+ 'Address' => 'ÐдреÑ',
+ 'Amount' => 'Сумма',
+ 'Apr' => 'апр',
+ 'April' => 'апрель',
+ 'Are you sure you want to delete Invoice Number' => 'Вы уверены, что хотите удалить данную фактуру?',
+ 'Attachment' => 'Вложение',
+ 'Aug' => 'авг',
+ 'August' => 'авгуÑÑ‚',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'ÐÐ´Ñ€ÐµÑ Ð´Ð¾Ñтавки Ñчета',
+ 'Bin' => 'Bin',
+ 'Bin List' => 'СпиÑок Bin',
+ 'Cannot delete invoice!' => 'Ðевозможно удалить фактуру!',
+ 'Cannot post invoice for a closed period!' => 'Ðевозможно провеÑти фактуру в закрытом периоде!',
+ 'Cannot post invoice!' => 'Ðевозможно провеÑти фактуру!',
+ 'Cannot post payment for a closed period!' => 'Ðевозможно провеÑти оплату Ð´Ð»Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð¾Ð³Ð¾ периода!',
+ 'Cc' => 'Cc',
+ 'City' => 'Город',
+ 'Company Name' => 'Ðаименование организации',
+ 'Confirm!' => 'Подтвердить!',
+ 'Contact' => 'Контактное лицо',
+ 'Continue' => 'Продолжить',
+ 'Copies' => 'Копий',
+ 'Country' => 'Страна',
+ 'Credit Limit' => 'Лимит кредита',
+ 'Currency' => 'Валюта',
+ 'Customer Number' => 'Код клиента',
+ 'Customer not on file!' => 'Клиент отÑутÑтвует в Ñправочнике!',
+ 'Date' => 'Дата',
+ 'Day(s)' => 'День',
+ 'Dec' => 'дек',
+ 'December' => 'декабрь',
+ 'Delete' => 'Удалить',
+ 'Delete Schedule' => 'Удалить раÑпиÑание',
+ 'Delivery Date' => 'Дата получениÑ',
+ 'Department' => 'Отдел',
+ 'Description' => 'ОпиÑание',
+ 'Due Date' => 'Оплатить до',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Ðе указан Ð°Ð´Ñ€ÐµÑ E-mail!',
+ 'E-mail message' => 'E-mail Ñообщение',
+ 'E-mailed' => 'Отправлено по e-mail',
+ 'Edit Vendor Invoice' => 'Редактировать фактуру поÑтавщику',
+ 'Every' => 'каждый',
+ 'Exch' => 'КурÑ',
+ 'Exchange Rate' => 'ÐšÑƒÑ€Ñ Ð²Ð°Ð»ÑŽÑ‚Ñ‹',
+ 'Exchange rate for payment missing!' => 'Пропущен ÐºÑƒÑ€Ñ Ð¾Ð¿Ð»Ð°Ñ‚Ñ‹!',
+ 'Exchange rate missing!' => 'Пропущен курÑ!',
+ 'Extended' => 'Сумма',
+ 'Fax' => 'ФакÑ',
+ 'Feb' => 'фев',
+ 'February' => 'февраль',
+ 'For' => 'длÑ',
+ 'Group' => 'Группа',
+ 'In-line' => 'внутриÑтрочный',
+ 'Include Payment' => 'Ð’ÐºÐ»ÑŽÑ‡Ð°Ñ Ð¾Ð¿Ð»Ð°Ñ‚Ñƒ',
+ 'Internal Notes' => 'Внутренние заметки',
+ 'Invoice' => 'Счет-фактура',
+ 'Invoice Date' => 'Дата выÑтавлениÑ',
+ 'Invoice Date missing!' => 'Ðе указана дата выÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñчета-фактуры',
+ 'Invoice Number' => 'Ðомер Ñчета-фактуры',
+ 'Invoice Number missing!' => 'Ðе указан номер Ñчета-фактуры',
+ 'Invoice deleted!' => 'Счет-фактура удалена!',
+ 'Item not on file!' => 'Ðет номенклатуры в Ñправочнике!',
+ 'Jan' => 'Ñнв',
+ 'January' => 'Ñнварь',
+ 'Jul' => 'июл',
+ 'July' => 'июль',
+ 'Jun' => 'июн',
+ 'June' => 'июнь',
+ 'Language' => 'Язык',
+ 'Mar' => 'март',
+ 'March' => 'март',
+ 'May' => 'май',
+ 'May ' => 'май',
+ 'Memo' => 'Комментарий',
+ 'Message' => 'Сообщение',
+ 'Month(s)' => 'меÑÑц',
+ 'Next Date' => 'Ð¡Ð»ÐµÐ´ÑƒÑŽÑ‰Ð°Ñ Ð´Ð°Ñ‚Ð°',
+ 'Notes' => 'Комментарии',
+ 'Nov' => 'ноÑ',
+ 'November' => 'ноÑбрь',
+ 'Number' => 'код',
+ 'Number missing in Row' => 'Пропущен код в Ñтроке',
+ 'OH' => 'OH',
+ 'Oct' => 'окт',
+ 'October' => 'октÑбрь',
+ 'Order Date missing!' => 'Пропущена дата заказа',
+ 'Order Number' => 'Ðомер заказа',
+ 'Order Number missing!' => 'Пропущен номер заказа',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ðомер ордера покупки',
+ 'Packing List' => 'Упаковочный ÑпиÑок',
+ 'Packing List Date missing!' => 'Пропущена дата упаковочного ÑпиÑока!',
+ 'Packing List Number missing!' => 'Пропущен номер упаковочного ÑпиÑока!',
+ 'Part' => 'Товар',
+ 'Payment date missing!' => 'Пропущена дата оплаты!',
+ 'Payments' => 'Оплаты',
+ 'Phone' => 'Тел.',
+ 'Pick List' => 'СпиÑок Ð´Ð»Ñ Ð²Ñ‹Ð±Ð¾Ñ€Ð°',
+ 'Post' => 'Сохранить',
+ 'Post as new' => 'Сохранить как новый',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Цена',
+ 'Print' => 'Печать',
+ 'Printed' => 'Ðапечатано',
+ 'Project' => 'Проект',
+ 'Project not on file!' => 'Проект отÑутÑтвует в Ñправочнике!',
+ 'Purchase Order' => 'Заказ поÑтавщику',
+ 'Qty' => 'КоличеÑтво',
+ 'Quotation' => 'Резервирование',
+ 'Quotation Date missing!' => 'Пропущена дата резервированиÑ!',
+ 'Quotation Number missing!' => 'Пропущен номер резервированиÑ!',
+ 'Recd' => 'Recd',
+ 'Record in' => 'ОтнеÑти на Ñчет',
+ 'Recurring Transaction' => 'ПовторÑющаÑÑÑ Ð¿Ñ€Ð¾Ð²Ð¾Ð´ÐºÐ°',
+ 'Reference' => 'СÑылка',
+ 'Remaining' => 'ОÑтаток',
+ 'Repeat' => 'Повторить',
+ 'Required by' => 'Запрошен',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Заказ клиента',
+ 'Save Schedule' => 'Сохранить раÑпиÑание',
+ 'Schedule' => 'РаÑпиÑание',
+ 'Scheduled' => 'Ðазначено раÑпиÑание',
+ 'Screen' => 'Экран',
+ 'Select from one of the names below' => 'Выберите одно из наименований из ÑпиÑка',
+ 'Select from one of the projects below' => 'Выберите один из проектов из ÑпиÑка',
+ 'Select items' => 'Выберите Ñлементы',
+ 'Select txt, postscript or PDF!' => 'Выберите txt, postscript или PDF!',
+ 'Sep' => 'Ñен',
+ 'September' => 'ÑентÑбрь',
+ 'Serial No.' => 'Серийный ном.',
+ 'Service' => 'УÑлуга',
+ 'Ship' => 'ДоÑтавить',
+ 'Ship to' => 'доÑтавить длÑ',
+ 'Shipping Address' => 'ÐÐ´Ñ€ÐµÑ Ð´Ð¾Ñтавки',
+ 'Source' => 'ИÑточник',
+ 'Startdate' => 'ÐÐ°Ñ‡Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð°Ñ‚Ð°',
+ 'State/Province' => 'Штат/ПровинциÑ',
+ 'Subject' => 'Тема',
+ 'Subtotal' => 'Итого по разделу',
+ 'Tax Included' => 'Ðалоги включены в Ñумму',
+ 'Text' => 'ТекÑÑ‚',
+ 'To' => 'по',
+ 'Total' => 'Ð’Ñего',
+ 'Translation not on file!' => 'Ðет перевода Ñ ÑпиÑке!',
+ 'Unit' => 'Единица',
+ 'Update' => 'Обновить',
+ 'Vendor' => 'ПоÑтавщик',
+ 'Vendor Number' => 'Код поÑтавщика',
+ 'Vendor missing!' => 'Пропущен поÑтавщик!',
+ 'Vendor not on file!' => 'ПоÑтавщика нет в Ñправочнике!',
+ 'Warning!' => 'Внимание!',
+ 'Week(s)' => 'Ðедели',
+ 'What type of item is this?' => 'Какой Ñто тип номеклатуры?',
+ 'Work Order' => 'Рабочий заказ',
+ 'Year(s)' => 'Год',
+ 'Yes' => 'Да',
+ 'You are posting an existing transaction!' => 'Выполнение ÑущеÑтвующей проводки!',
+ 'You are printing and posting an existing transaction!' => 'Печать и выполнение ÑущеÑтвующей проводки!',
+ 'You are printing and saving an existing order' => 'Печать и Ñохранение ÑущеÑтвующего ордера',
+ 'You are printing and saving an existing quotation' => 'Печать и Ñохранение ÑущеÑтвующего резервированиÑ',
+ 'You are saving an existing order' => 'Сохранение ÑущеÑтвующего ордера',
+ 'You are saving an existing quotation' => 'Сохранение ÑущеÑтвующего резервированиÑ',
+ 'Zip/Postal Code' => 'ИндекÑ',
+ 'ea' => 'шт.',
+ 'for' => 'длÑ',
+ 'posted!' => 'отправлено',
+ 'sent' => 'отправлено',
+ 'time(s)' => 'раз',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'Продолжить' => 'continue',
+ 'Удалить' => 'delete',
+ 'Удалить_раÑпиÑание' => 'delete_schedule',
+ 'Сохранить' => 'post',
+ 'Сохранить_как_новый' => 'post_as_new',
+ 'Заказ_поÑтавщику' => 'purchase_order',
+ 'Сохранить_раÑпиÑание' => 'save_schedule',
+ 'РаÑпиÑание' => 'schedule',
+ 'Обновить' => 'update',
+ 'Да' => 'yes',
+};
+
+1;
+
diff --git a/locale/ru_utf/is b/locale/ru_utf/is
new file mode 100755
index 00000000..ddbcdf36
--- /dev/null
+++ b/locale/ru_utf/is
@@ -0,0 +1,270 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'Счет',
+ 'Accounting Menu' => 'БухгалтерÑкое меню',
+ 'Add Purchase Order' => 'Ðовый заказ поÑтавщика',
+ 'Add Quotation' => 'Ðовое резервирование',
+ 'Add Request for Quotation' => 'Ðовый Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° резервирование',
+ 'Add Sales Invoice' => 'ÐÐ¾Ð²Ð°Ñ Ñ„Ð°ÐºÑ‚ÑƒÑ€Ð° продажи',
+ 'Add Sales Order' => 'Ðовый заказ клиента',
+ 'Address' => 'ÐдреÑ',
+ 'Amount' => 'Сумма',
+ 'Apr' => 'апр',
+ 'April' => 'апрель',
+ 'Are you sure you want to delete Invoice Number' => 'Вы уверены, что хотите удалить данную фактуру?',
+ 'Attachment' => 'Вложение',
+ 'Aug' => 'авг',
+ 'August' => 'авгуÑÑ‚',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'ÐÐ´Ñ€ÐµÑ Ð´Ð¾Ñтавки Ñчета',
+ 'Bin' => 'Bin',
+ 'Bin List' => 'СпиÑок Bin',
+ 'Business' => 'БизнеÑ',
+ 'Cannot delete invoice!' => 'Ðевозможно удалить фактуру!',
+ 'Cannot post invoice for a closed period!' => 'Ðевозможно провеÑти фактуру в закрытом периоде!',
+ 'Cannot post invoice!' => 'Ðевозможно провеÑти фактуру!',
+ 'Cannot post payment for a closed period!' => 'Ðевозможно провеÑти оплату Ð´Ð»Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð¾Ð³Ð¾ периода!',
+ 'Cc' => 'Cc',
+ 'City' => 'Город',
+ 'Company Name' => 'Ðаименование организации',
+ 'Confirm!' => 'Подтвердить!',
+ 'Contact' => 'Контактное лицо',
+ 'Continue' => 'Продолжить',
+ 'Copies' => 'Копий',
+ 'Country' => 'Страна',
+ 'Credit Limit' => 'Лимит кредита',
+ 'Currency' => 'Валюта',
+ 'Customer' => 'Клиент',
+ 'Customer Number' => 'Код клиента',
+ 'Customer missing!' => 'Пропущен клиент!',
+ 'Customer not on file!' => 'Клиент отÑутÑтвует в Ñправочнике!',
+ 'Date' => 'Дата',
+ 'Day(s)' => 'День',
+ 'Dec' => 'дек',
+ 'December' => 'декабрь',
+ 'Delete' => 'Удалить',
+ 'Delete Schedule' => 'Удалить раÑпиÑание',
+ 'Delivery Date' => 'Дата получениÑ',
+ 'Department' => 'Отдел',
+ 'Description' => 'ОпиÑание',
+ 'Due Date' => 'Оплатить до',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Ðе указан Ð°Ð´Ñ€ÐµÑ E-mail!',
+ 'E-mail message' => 'E-mail Ñообщение',
+ 'E-mailed' => 'Отправлено по e-mail',
+ 'Edit Sales Invoice' => 'Редактировать Фактуру клиента',
+ 'Every' => 'каждый',
+ 'Exch' => 'КурÑ',
+ 'Exchange Rate' => 'ÐšÑƒÑ€Ñ Ð²Ð°Ð»ÑŽÑ‚Ñ‹',
+ 'Exchange rate for payment missing!' => 'Пропущен ÐºÑƒÑ€Ñ Ð¾Ð¿Ð»Ð°Ñ‚Ñ‹!',
+ 'Exchange rate missing!' => 'Пропущен курÑ!',
+ 'Extended' => 'Сумма',
+ 'Fax' => 'ФакÑ',
+ 'Feb' => 'фев',
+ 'February' => 'февраль',
+ 'For' => 'длÑ',
+ 'Group' => 'Группа',
+ 'In-line' => 'внутриÑтрочный',
+ 'Include Payment' => 'Ð’ÐºÐ»ÑŽÑ‡Ð°Ñ Ð¾Ð¿Ð»Ð°Ñ‚Ñƒ',
+ 'Internal Notes' => 'Внутренние заметки',
+ 'Invoice' => 'Счет-фактура',
+ 'Invoice Date' => 'Дата выÑтавлениÑ',
+ 'Invoice Date missing!' => 'Ðе указана дата выÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñчета-фактуры',
+ 'Invoice Number' => 'Ðомер Ñчета-фактуры',
+ 'Invoice Number missing!' => 'Ðе указан номер Ñчета-фактуры',
+ 'Invoice deleted!' => 'Счет-фактура удалена!',
+ 'Item not on file!' => 'Ðет номенклатуры в Ñправочнике!',
+ 'Jan' => 'Ñнв',
+ 'January' => 'Ñнварь',
+ 'Jul' => 'июл',
+ 'July' => 'июль',
+ 'Jun' => 'июн',
+ 'June' => 'июнь',
+ 'Mar' => 'март',
+ 'March' => 'март',
+ 'May' => 'май',
+ 'May ' => 'май',
+ 'Memo' => 'Комментарий',
+ 'Message' => 'Сообщение',
+ 'Month(s)' => 'меÑÑц',
+ 'Next Date' => 'Ð¡Ð»ÐµÐ´ÑƒÑŽÑ‰Ð°Ñ Ð´Ð°Ñ‚Ð°',
+ 'Notes' => 'Комментарии',
+ 'Nov' => 'ноÑ',
+ 'November' => 'ноÑбрь',
+ 'Number' => 'код',
+ 'Number missing in Row' => 'Пропущен код в Ñтроке',
+ 'OH' => 'OH',
+ 'Oct' => 'окт',
+ 'October' => 'октÑбрь',
+ 'Order Date missing!' => 'Пропущена дата заказа',
+ 'Order Number' => 'Ðомер заказа',
+ 'Order Number missing!' => 'Пропущен номер заказа',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ðомер ордера покупки',
+ 'Packing List' => 'Упаковочный ÑпиÑок',
+ 'Packing List Date missing!' => 'Пропущена дата упаковочного ÑпиÑока!',
+ 'Packing List Number missing!' => 'Пропущен номер упаковочного ÑпиÑока!',
+ 'Part' => 'Товар',
+ 'Payment date missing!' => 'Пропущена дата оплаты!',
+ 'Payments' => 'Оплаты',
+ 'Phone' => 'Тел.',
+ 'Pick List' => 'СпиÑок Ð´Ð»Ñ Ð²Ñ‹Ð±Ð¾Ñ€Ð°',
+ 'Post' => 'Сохранить',
+ 'Post as new' => 'Сохранить как новый',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Цена',
+ 'Print' => 'Печать',
+ 'Print and Post' => 'Ðапечатать и отправить',
+ 'Print and Post as new' => 'Ðапечатать и отправить как новый',
+ 'Printed' => 'Ðапечатано',
+ 'Project' => 'Проект',
+ 'Project not on file!' => 'Проект отÑутÑтвует в Ñправочнике!',
+ 'Purchase Order' => 'Заказ поÑтавщику',
+ 'Qty' => 'КоличеÑтво',
+ 'Quotation' => 'Резервирование',
+ 'Quotation Date missing!' => 'Пропущена дата резервированиÑ!',
+ 'Quotation Number missing!' => 'Пропущен номер резервированиÑ!',
+ 'Recd' => 'Recd',
+ 'Record in' => 'ОтнеÑти на Ñчет',
+ 'Recurring Transaction' => 'ПовторÑющаÑÑÑ Ð¿Ñ€Ð¾Ð²Ð¾Ð´ÐºÐ°',
+ 'Reference' => 'СÑылка',
+ 'Remaining' => 'ОÑтаток',
+ 'Repeat' => 'Повторить',
+ 'Required by' => 'Запрошен',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Заказ клиента',
+ 'Salesperson' => 'Продавец',
+ 'Save Schedule' => 'Сохранить раÑпиÑание',
+ 'Schedule' => 'РаÑпиÑание',
+ 'Scheduled' => 'Ðазначено раÑпиÑание',
+ 'Screen' => 'Экран',
+ 'Select a Printer!' => 'Выбрать принтер',
+ 'Select from one of the names below' => 'Выберите одно из наименований из ÑпиÑка',
+ 'Select from one of the projects below' => 'Выберите один из проектов из ÑпиÑка',
+ 'Select items' => 'Выберите Ñлементы',
+ 'Select postscript or PDF!' => 'Выберите postscript или PDF!',
+ 'Select txt, postscript or PDF!' => 'Выберите txt, postscript или PDF!',
+ 'Sep' => 'Ñен',
+ 'September' => 'ÑентÑбрь',
+ 'Serial No.' => 'Серийный ном.',
+ 'Service' => 'УÑлуга',
+ 'Ship' => 'ДоÑтавить',
+ 'Ship to' => 'доÑтавить длÑ',
+ 'Ship via' => 'доÑтавить через',
+ 'Shipping Address' => 'ÐÐ´Ñ€ÐµÑ Ð´Ð¾Ñтавки',
+ 'Shipping Point' => 'МеÑто доÑтавки',
+ 'Source' => 'ИÑточник',
+ 'Startdate' => 'ÐÐ°Ñ‡Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð°Ñ‚Ð°',
+ 'State/Province' => 'Штат/ПровинциÑ',
+ 'Subject' => 'Тема',
+ 'Subtotal' => 'Итого по разделу',
+ 'Tax Included' => 'Ðалоги включены в Ñумму',
+ 'Text' => 'ТекÑÑ‚',
+ 'To' => 'по',
+ 'Total' => 'Ð’Ñего',
+ 'Trade Discount' => 'Ð¢Ð¾Ñ€Ð³Ð¾Ð²Ð°Ñ Ñкидка',
+ 'Translation not on file!' => 'Ðет перевода Ñ ÑпиÑке!',
+ 'Unit' => 'Единица',
+ 'Update' => 'Обновить',
+ 'Vendor Number' => 'Код поÑтавщика',
+ 'Vendor not on file!' => 'ПоÑтавщика нет в Ñправочнике!',
+ 'Warning!' => 'Внимание!',
+ 'Week(s)' => 'Ðедели',
+ 'What type of item is this?' => 'Какой Ñто тип номеклатуры?',
+ 'Work Order' => 'Рабочий заказ',
+ 'Year(s)' => 'Год',
+ 'Yes' => 'Да',
+ 'You are posting an existing transaction!' => 'Выполнение ÑущеÑтвующей проводки!',
+ 'You are printing and posting an existing transaction!' => 'Печать и выполнение ÑущеÑтвующей проводки!',
+ 'You are printing and saving an existing order' => 'Печать и Ñохранение ÑущеÑтвующего ордера',
+ 'You are printing and saving an existing quotation' => 'Печать и Ñохранение ÑущеÑтвующего резервированиÑ',
+ 'You are saving an existing order' => 'Сохранение ÑущеÑтвующего ордера',
+ 'You are saving an existing quotation' => 'Сохранение ÑущеÑтвующего резервированиÑ',
+ 'Zip/Postal Code' => 'ИндекÑ',
+ 'ea' => 'шт.',
+ 'for' => 'длÑ',
+ 'posted!' => 'отправлено',
+ 'sent' => 'отправлено',
+ 'time(s)' => 'раз',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'Продолжить' => 'continue',
+ 'Удалить' => 'delete',
+ 'Удалить_раÑпиÑание' => 'delete_schedule',
+ 'e_mail' => 'e_mail',
+ 'Сохранить' => 'post',
+ 'Сохранить_как_новый' => 'post_as_new',
+ 'Печать' => 'print',
+ 'Ðапечатать_и_отправить' => 'print_and_post',
+ 'Ðапечатать_и_отправить_как_новый' => 'print_and_post_as_new',
+ 'Заказ_клиента' => 'sales_order',
+ 'Сохранить_раÑпиÑание' => 'save_schedule',
+ 'РаÑпиÑание' => 'schedule',
+ 'доÑтавить_длÑ' => 'ship_to',
+ 'Обновить' => 'update',
+ 'Да' => 'yes',
+};
+
+1;
+
diff --git a/locale/ru_utf/jc b/locale/ru_utf/jc
new file mode 100755
index 00000000..286053b4
--- /dev/null
+++ b/locale/ru_utf/jc
@@ -0,0 +1,153 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => 'БухгалтерÑкое меню',
+ 'Add Stores Card' => 'Добавить карту хранениÑ',
+ 'Add Time Card' => 'Добавить карту времени',
+ 'Allocated' => 'Размещено',
+ 'Amount' => 'Сумма',
+ 'Are you sure you want to delete time card for' => 'Ð’Ñ‹ уверены, что хотите удалить time card длÑ',
+ 'Cannot add stores card for a completed job!' => 'Ðевозможно добавить к завершенному заданию',
+ 'Cannot add time card for a completed job!' => 'Ðевозможно добавить к завершенному заданию',
+ 'Cannot change stores card for a completed job!' => 'Ðевозможно изменить завершенное задание',
+ 'Cannot change time card for a completed job!' => 'Ðевозможно изменить завершенное задание',
+ 'Cannot delete time card!' => 'Ðевозможно удалить карту времени',
+ 'Cannot save stores card for a closed period!' => 'Ðевозможно Ñохранить карту Ð´Ð»Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð¾Ð³Ð¾ периода',
+ 'Cannot save stores card!' => 'Ðевозможно Ñохранить карту',
+ 'Cannot save time card for a closed period!' => 'Ðевозможно Ñохранить карту времени Ð´Ð»Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð¾Ð³Ð¾ периода',
+ 'Cannot save time card!' => 'Ðевозможно Ñохранить карту времени',
+ 'Chargeable' => 'Возмещаемый',
+ 'Clocked' => 'Clocked',
+ 'Closed' => 'Закрыт',
+ 'Confirm!' => 'Подтвердить!',
+ 'Continue' => 'Продолжить',
+ 'Cost' => 'Цена',
+ 'Current' => 'Текущий',
+ 'Date' => 'Дата',
+ 'Date missing!' => 'Пропущена дата',
+ 'Date worked' => 'Дата работ',
+ 'Delete' => 'Удалить',
+ 'Description' => 'ОпиÑание',
+ 'Edit Time Card' => 'Редактировать карту времени',
+ 'Employee' => 'Сотрудник',
+ 'Friday' => 'пÑтница',
+ 'From' => 'Ñ',
+ 'ID' => 'Идентификатор',
+ 'Include in Report' => 'Включить в отчет',
+ 'Job Description' => 'ОпиÑание заданиÑ',
+ 'Job Name' => 'Ðаименование заданиÑ',
+ 'Job Number' => 'Ðомер заданÑ',
+ 'Job Number missing!' => 'Пропущен номер заданиÑ!',
+ 'Labor Code' => 'Код работы',
+ 'Labor Code missing!' => 'Пропущен Код работы',
+ 'Monday' => 'Понедельник',
+ 'Month' => 'меÑÑц',
+ 'No Employees on file!' => 'No Employees on file!',
+ 'No Labor codes on file!' => 'No Labor codes on file!',
+ 'No Parts on file!' => 'No Parts on file!',
+ 'No open Jobs!' => 'Ðет открытых заданий',
+ 'No open Projects!' => 'Ðет открытых проектов',
+ 'Non-chargeable' => 'Ðевозмещаемые',
+ 'Notes' => 'Комментарии',
+ 'Open' => 'Открыть',
+ 'PDF' => 'PDF',
+ 'Part Number' => 'Part Number',
+ 'Period' => 'Период',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Печать',
+ 'Print and Save' => 'Ðапечатать и Ñохранить',
+ 'Print and Save as new' => 'Ðапечатать и Ñохранить как новый',
+ 'Printed' => 'Ðапечатано',
+ 'Project Name' => 'Ðазвание проекта',
+ 'Project Number' => 'Код проекта',
+ 'Project Number missing!' => 'Пропущен код проекта',
+ 'Project/Job Name' => 'Ðазвание Проекта/ЗаданиÑ',
+ 'Project/Job Number' => 'Ðомер Проекта/ЗаданиÑ',
+ 'Qty' => 'КоличеÑтво',
+ 'Quarter' => 'Квартал',
+ 'Saturday' => 'Суббота',
+ 'Save' => 'Сохранить',
+ 'Save as new' => 'Сохранить как новый',
+ 'Screen' => 'Экран',
+ 'Select a Printer!' => 'Выбрать принтер',
+ 'Select postscript or PDF!' => 'Выберите postscript или PDF!',
+ 'Service Code' => 'Код уÑлуги',
+ 'Service Code missing!' => 'Пропущен Код уÑлуги!',
+ 'Service/Labor Code' => 'Код уÑлуги/работы',
+ 'Startdate' => 'ÐÐ°Ñ‡Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð°Ñ‚Ð°',
+ 'Stores Card' => 'Stores Card',
+ 'Stores Card saved!' => 'Stores Card saved!',
+ 'Stores Cards' => 'Stores Cards',
+ 'Subtotal' => 'Итого по разделу',
+ 'Sunday' => 'ВоÑкреÑенье',
+ 'Thursday' => 'Четверг',
+ 'Time Card' => 'Time Card',
+ 'Time Card deleted!' => 'Time Card deleted!',
+ 'Time Card saved!' => 'Time Card saved!',
+ 'Time Cards' => 'Time Cards',
+ 'Time In' => 'Ð’Ñ€ÐµÐ¼Ñ Ð²Ñ…Ð¾Ð´Ð°',
+ 'Time Out' => 'Ð’Ñ€ÐµÐ¼Ñ Ð²Ñ‹Ñ…Ð¾Ð´Ð°',
+ 'To' => 'по',
+ 'Total' => 'Ð’Ñего',
+ 'Tuesday' => 'Вторник',
+ 'Update' => 'Обновить',
+ 'Warning!' => 'Внимание!',
+ 'Wednesday' => 'Среда',
+ 'Year' => 'Год',
+ 'Yes' => 'Да',
+ 'You are printing and saving an existing transaction!' => 'Печать и Ñохранение ÑущеÑтвующей проводки!',
+ 'You are saving an existing transaction!' => 'Сохранение ÑущеÑтвующей проводки!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'Добавить_карту_хранениÑ' => 'add_stores_card',
+ 'Добавить_карту_времени' => 'add_time_card',
+ 'Продолжить' => 'continue',
+ 'Удалить' => 'delete',
+ 'Печать' => 'print',
+ 'Ðапечатать_и_Ñохранить' => 'print_and_save',
+ 'Ðапечатать_и_Ñохранить_как_новый' => 'print_and_save_as_new',
+ 'Сохранить' => 'save',
+ 'Сохранить_как_новый' => 'save_as_new',
+ 'Обновить' => 'update',
+ 'Да' => 'yes',
+};
+
+1;
+
diff --git a/locale/ru_utf/locales.pl b/locale/ru_utf/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/ru_utf/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/ru_utf/login b/locale/ru_utf/login
new file mode 100755
index 00000000..bf685a89
--- /dev/null
+++ b/locale/ru_utf/login
@@ -0,0 +1,27 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Access Denied!' => 'ДоÑтуп запрещен',
+ 'Company' => 'ОрганизациÑ',
+ 'Continue' => 'Продолжить',
+ 'Dataset is newer than version!' => 'База данных новее, чем Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ Ð²ÐµÑ€ÑиÑ!',
+ 'Incorrect Dataset version!' => 'ÐÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð±Ð°Ð·Ñ‹ данных!',
+ 'Login' => 'Пользователь',
+ 'Name' => 'Ðаименование',
+ 'Password' => 'Пароль',
+ 'Upgrading to Version' => 'Обновление до верÑии',
+ 'Version' => 'ВерÑиÑ',
+ 'You did not enter a name!' => 'Ð’Ñ‹ не ввели (имÑ)наименование!',
+ 'done' => 'выполнено',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ 'Пользователь' => 'login',
+};
+
+1;
+
diff --git a/locale/ru_utf/menu b/locale/ru_utf/menu
new file mode 100755
index 00000000..eda3b1ee
--- /dev/null
+++ b/locale/ru_utf/menu
@@ -0,0 +1,142 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP' => 'ПоÑтуплениÑ',
+ 'AP Aging' => 'ВзаимораÑчеты Ñ Ð¿Ð¾Ñтавщиками',
+ 'AP Transaction' => 'Проводка закупки',
+ 'AR' => 'Продажи',
+ 'AR Aging' => 'ВзаимораÑчеты Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ð°Ð¼Ð¸',
+ 'AR Transaction' => 'Проводка продаж',
+ 'Accounting Menu' => 'БухгалтерÑкое меню',
+ 'Add Account' => 'Ðовый Ñчет',
+ 'Add Assembly' => 'Ðовый комплект',
+ 'Add Business' => 'Ðовый бизнеÑ',
+ 'Add Customer' => 'Ðовый клиент',
+ 'Add Department' => 'Ðовый отдел',
+ 'Add Employee' => 'Ðовый Ñотрудник',
+ 'Add GIFI' => 'Ðовый GIFI',
+ 'Add Group' => 'ÐÐ¾Ð²Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð°',
+ 'Add Labor/Overhead' => 'ÐÐ¾Ð²Ð°Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð°/накладные раÑходы',
+ 'Add Language' => 'Ðовый Ñзык',
+ 'Add Part' => 'Ðовый продукт',
+ 'Add Pricegroup' => 'Ðовый тип цен',
+ 'Add Project' => 'Ðовый проект',
+ 'Add SIC' => 'Ðовый SIC',
+ 'Add Service' => 'ÐÐ¾Ð²Ð°Ñ ÑƒÑлуга',
+ 'Add Time Card' => 'Добавить карту времени',
+ 'Add Transaction' => 'ÐÐ¾Ð²Ð°Ñ Ð¿Ñ€Ð¾Ð²Ð¾Ð´ÐºÐ°',
+ 'Add Vendor' => 'Ðовый поÑтавщик',
+ 'Add Warehouse' => 'Ðовый Ñклад',
+ 'All Items' => 'Ð’ÑÑ Ð½Ð¾Ð¼ÐµÐºÐ»Ð°Ñ‚ÑƒÑ€Ð°',
+ 'Assemblies' => 'Комплекты',
+ 'Audit Control' => 'Контроль',
+ 'Backup' => 'Ð ÐµÐ·ÐµÑ€Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ',
+ 'Balance Sheet' => 'БаланÑ',
+ 'Bin List' => 'СпиÑок Bin',
+ 'Bin Lists' => 'СпиÑки Bin',
+ 'Cash' => 'КаÑÑа',
+ 'Chart of Accounts' => 'План Ñчетов',
+ 'Check' => 'Проверить',
+ 'Components' => 'Компоненты',
+ 'Customers' => 'Клиенты',
+ 'Defaults' => 'ÐаÑтройки по умолчании',
+ 'Departments' => 'Отделы',
+ 'Description' => 'ОпиÑание',
+ 'Employees' => 'Сотрудники',
+ 'General Ledger' => 'Ð“Ð»Ð°Ð²Ð½Ð°Ñ ÐºÐ½Ð¸Ð³Ð°',
+ 'Generate' => 'Создать',
+ 'Goods & Services' => 'Товары и уÑлуги',
+ 'Groups' => 'Группы',
+ 'HR' => 'Сотрудники',
+ 'HTML Templates' => 'Шаблоны HTML',
+ 'History' => 'ИÑториÑ',
+ 'Income Statement' => 'Отчет о прибыли/убытках',
+ 'Invoice' => 'Счет-фактура',
+ 'LaTeX Templates' => 'Шаблоны LaTeX',
+ 'Labor/Overhead' => 'Работа/накладные раÑходы',
+ 'Language' => 'Язык',
+ 'List Accounts' => 'СпиÑок Ñчетов',
+ 'List Businesses' => 'СпиÑок бизнеÑов',
+ 'List Departments' => 'СпиÑок отделов',
+ 'List GIFI' => 'СпиÑок GIFI',
+ 'List Languages' => 'СпиÑок Ñзыков',
+ 'List Projects' => 'СпиÑок проектов',
+ 'List SIC' => 'СпиÑок SIC',
+ 'List Warehouses' => 'СпиÑок Ñкладов',
+ 'Logout' => 'Выход',
+ 'New Window' => 'Ðовое окно',
+ 'Non-taxable' => 'Ðе подлежащие налогообложению',
+ 'Open' => 'Открыть',
+ 'Order Entry' => 'Заказы',
+ 'Outstanding' => 'ЗадолженоÑÑ‚ÑŒ',
+ 'POS' => 'ККМ',
+ 'POS Invoice' => 'ККМ Фактура',
+ 'Packing List' => 'Упаковочный ÑпиÑок',
+ 'Packing Lists' => 'Упаковочные ÑпиÑоки',
+ 'Parts' => 'Товары',
+ 'Payment' => 'Оплата',
+ 'Payments' => 'Оплаты',
+ 'Pick List' => 'СпиÑок Ð´Ð»Ñ Ð²Ñ‹Ð±Ð¾Ñ€Ð°',
+ 'Pick Lists' => 'СпиÑки Ð´Ð»Ñ Ð²Ñ‹Ð±Ð¾Ñ€Ð°',
+ 'Preferences' => 'ÐаÑтройки',
+ 'Pricegroups' => 'Типы цен',
+ 'Print' => 'Печать',
+ 'Projects' => 'Проекты',
+ 'Purchase Order' => 'Заказ поÑтавщику',
+ 'Purchase Orders' => 'Заказы поÑтавщику',
+ 'Quotation' => 'Резервирование',
+ 'Quotations' => 'Резервы',
+ 'RFQ' => 'Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° резервирование',
+ 'RFQs' => 'ЗапроÑÑ‹ на резервирование',
+ 'Receipt' => 'Получение',
+ 'Receipts' => 'ПолучениÑ',
+ 'Receive' => 'Получить',
+ 'Reconciliation' => 'СоглаÑованноÑÑ‚ÑŒ',
+ 'Recurring Transactions' => 'ПовторÑющиеÑÑ Ð¿Ñ€Ð¾Ð²Ð¾Ð´ÐºÐ¸',
+ 'Reports' => 'Отчеты',
+ 'SIC' => 'SIC',
+ 'Sale' => 'Продажа',
+ 'Sales Invoice' => 'Фактура клиента',
+ 'Sales Invoices' => 'Фактуры клиента',
+ 'Sales Order' => 'Заказ клиента',
+ 'Sales Orders' => 'Заказы клиента',
+ 'Save to File' => 'Сохранить в файл',
+ 'Search' => 'ПоиÑк',
+ 'Send by E-Mail' => 'Отправить по E-Mail',
+ 'Services' => 'УÑлуги',
+ 'Ship' => 'ДоÑтавить',
+ 'Shipping' => 'ДоÑтавка',
+ 'Statement' => 'ВедомоÑÑ‚ÑŒ',
+ 'Stock Assembly' => 'Сформировать комплект',
+ 'Stylesheet' => 'Оформление',
+ 'System' => 'СиÑтема',
+ 'Tax collected' => 'Собранные налоги',
+ 'Tax paid' => 'Оплаченные налоги',
+ 'Text Templates' => 'Шаблоны TXT',
+ 'Time Card' => 'Time Card',
+ 'Time Cards' => 'Time Cards',
+ 'Transactions' => 'Проводки',
+ 'Transfer' => 'Перемещение',
+ 'Transfer Inventory' => 'Перемещение инвентарÑ',
+ 'Translations' => 'Переводы',
+ 'Trial Balance' => 'Предварительный баланÑ',
+ 'Type of Business' => 'Тип бизнеÑа',
+ 'Vendor Invoice' => 'Фактура поÑтавщика',
+ 'Vendors' => 'ПоÑтавщики',
+ 'Version' => 'ВерÑиÑ',
+ 'Warehouses' => 'Склады',
+ 'Work Order' => 'Рабочий заказ',
+ 'Work Orders' => 'Рабочие заказы',
+ 'Yearend' => 'Завершение года',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/ru_utf/oe b/locale/ru_utf/oe
new file mode 100755
index 00000000..fef63751
--- /dev/null
+++ b/locale/ru_utf/oe
@@ -0,0 +1,373 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => 'БухгалтерÑкое меню',
+ 'Add Exchange Rate' => 'Ðовый курÑ',
+ 'Add Purchase Order' => 'Ðовый заказ поÑтавщика',
+ 'Add Quotation' => 'Ðовое резервирование',
+ 'Add Request for Quotation' => 'Ðовый Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° резервирование',
+ 'Add Sales Invoice' => 'ÐÐ¾Ð²Ð°Ñ Ñ„Ð°ÐºÑ‚ÑƒÑ€Ð° продажи',
+ 'Add Sales Order' => 'Ðовый заказ клиента',
+ 'Add Vendor Invoice' => 'ÐÐ¾Ð²Ð°Ñ Ñ„Ð°ÐºÑ‚ÑƒÑ€Ð° поÑтуплениÑ',
+ 'Address' => 'ÐдреÑ',
+ 'Amount' => 'Сумма',
+ 'Apr' => 'апр',
+ 'April' => 'апрель',
+ 'Are you sure you want to delete Order Number' => 'Вы уверены, что хотите удалить данный заказ?',
+ 'Are you sure you want to delete Quotation Number' => 'Вы уверены, что хотите удалить резерв?',
+ 'Attachment' => 'Вложение',
+ 'Aug' => 'авг',
+ 'August' => 'авгуÑÑ‚',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'ÐÐ´Ñ€ÐµÑ Ð´Ð¾Ñтавки Ñчета',
+ 'Bin' => 'Bin',
+ 'Bin List' => 'СпиÑок Bin',
+ 'Business' => 'БизнеÑ',
+ 'C' => 'C',
+ 'Cannot delete order!' => 'Ðевозможно удалить заказ!',
+ 'Cannot delete quotation!' => 'Ðевозможно удалить резерв!',
+ 'Cannot save order!' => 'Ðевозможно Ñохранить заказ!',
+ 'Cannot save quotation!' => 'Ðевозможно Ñохранить резерв',
+ 'Cc' => 'Cc',
+ 'City' => 'Город',
+ 'Closed' => 'Закрыт',
+ 'Company Name' => 'Ðаименование организации',
+ 'Confirm!' => 'Подтвердить!',
+ 'Contact' => 'Контактное лицо',
+ 'Continue' => 'Продолжить',
+ 'Copies' => 'Копий',
+ 'Cost' => 'Цена',
+ 'Could not save!' => 'Ðевозможно Ñохранить!',
+ 'Could not transfer Inventory!' => 'Ðевозможно переÑеÑтить инвентарь',
+ 'Country' => 'Страна',
+ 'Credit Limit' => 'Лимит кредита',
+ 'Curr' => 'Валюта',
+ 'Currency' => 'Валюта',
+ 'Current' => 'Текущий',
+ 'Customer' => 'Клиент',
+ 'Customer Number' => 'Код клиента',
+ 'Customer missing!' => 'Пропущен клиент!',
+ 'Customer not on file!' => 'Клиент отÑутÑтвует в Ñправочнике!',
+ 'Date' => 'Дата',
+ 'Date Received' => 'Дата получена',
+ 'Date received missing!' => 'Пропущена дата',
+ 'Day(s)' => 'День',
+ 'Dec' => 'дек',
+ 'December' => 'декабрь',
+ 'Delete' => 'Удалить',
+ 'Delete Schedule' => 'Удалить раÑпиÑание',
+ 'Delivery Date' => 'Дата получениÑ',
+ 'Department' => 'Отдел',
+ 'Description' => 'ОпиÑание',
+ 'Done' => 'Выполнено',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Ðе указан Ð°Ð´Ñ€ÐµÑ E-mail!',
+ 'E-mail message' => 'E-mail Ñообщение',
+ 'E-mailed' => 'Отправлено по e-mail',
+ 'Edit Purchase Order' => 'Редактировать Фактуру поÑтавщика',
+ 'Edit Quotation' => 'Редактировать резервирование',
+ 'Edit Request for Quotation' => 'Редактировать Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° резервирование',
+ 'Edit Sales Order' => 'Редактировать Заказ клиента',
+ 'Employee' => 'Сотрудник',
+ 'Every' => 'каждый',
+ 'Exchange Rate' => 'ÐšÑƒÑ€Ñ Ð²Ð°Ð»ÑŽÑ‚Ñ‹',
+ 'Exchange rate missing!' => 'Пропущен курÑ!',
+ 'Extended' => 'Сумма',
+ 'Fax' => 'ФакÑ',
+ 'Feb' => 'фев',
+ 'February' => 'февраль',
+ 'For' => 'длÑ',
+ 'From' => 'Ñ',
+ 'From Warehouse' => 'Ñо Ñклада',
+ 'Generate Orders' => 'Создать ордеры',
+ 'Generate Purchase Orders' => 'Создать ордеры покупки',
+ 'Generate Purchase Orders from Sales Order' => 'Создать ордеры покупки из ордеров продажи',
+ 'Generate Sales Order' => 'Создать ордеры продажи',
+ 'Generate Sales Order from Purchase Orders' => 'Создать ордеры продажи из ордеров покупки',
+ 'Group' => 'Группа',
+ 'ID' => 'Идентификатор',
+ 'In-line' => 'внутриÑтрочный',
+ 'Include Payment' => 'Ð’ÐºÐ»ÑŽÑ‡Ð°Ñ Ð¾Ð¿Ð»Ð°Ñ‚Ñƒ',
+ 'Include in Report' => 'Включить в отчет',
+ 'Internal Notes' => 'Внутренние заметки',
+ 'Inventory saved!' => 'Инвентарь Ñохранен!',
+ 'Inventory transferred!' => 'Инвентарь перемещен!',
+ 'Invoice' => 'Счет-фактура',
+ 'Invoice Date missing!' => 'Ðе указана дата выÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñчета-фактуры',
+ 'Invoice Number missing!' => 'Ðе указан номер Ñчета-фактуры',
+ 'Item not on file!' => 'Ðет номенклатуры в Ñправочнике!',
+ 'Jan' => 'Ñнв',
+ 'January' => 'Ñнварь',
+ 'Jul' => 'июл',
+ 'July' => 'июль',
+ 'Jun' => 'июн',
+ 'June' => 'июнь',
+ 'Lead' => 'Lead',
+ 'Manager' => 'Менеджер',
+ 'Mar' => 'март',
+ 'March' => 'март',
+ 'May' => 'май',
+ 'May ' => 'май',
+ 'Message' => 'Сообщение',
+ 'Month' => 'меÑÑц',
+ 'Month(s)' => 'меÑÑц',
+ 'Next Date' => 'Ð¡Ð»ÐµÐ´ÑƒÑŽÑ‰Ð°Ñ Ð´Ð°Ñ‚Ð°',
+ 'No.' => 'Ðом.',
+ 'Notes' => 'Комментарии',
+ 'Nothing entered!' => 'Ðичего не введено!',
+ 'Nothing selected!' => 'Ðичего не выбрано!',
+ 'Nothing to transfer!' => 'Ðичего не перемещено!',
+ 'Nov' => 'ноÑ',
+ 'November' => 'ноÑбрь',
+ 'Number' => 'код',
+ 'Number missing in Row' => 'Пропущен код в Ñтроке',
+ 'O' => 'O',
+ 'OH' => 'OH',
+ 'Oct' => 'окт',
+ 'October' => 'октÑбрь',
+ 'Open' => 'Открыть',
+ 'Order' => 'Заказ клиента',
+ 'Order Date' => 'Дата заказа клиента',
+ 'Order Date missing!' => 'Пропущена дата заказа',
+ 'Order Number' => 'Ðомер заказа',
+ 'Order Number missing!' => 'Пропущен номер заказа',
+ 'Order deleted!' => 'Заказ удален!',
+ 'Order generation failed!' => 'Ошибка ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¾Ñ€Ð´ÐµÑ€Ð°',
+ 'Order saved!' => 'Заказ Ñохранен!',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ðомер ордера покупки',
+ 'Packing List' => 'Упаковочный ÑпиÑок',
+ 'Packing List Date missing!' => 'Пропущена дата упаковочного ÑпиÑока!',
+ 'Packing List Number missing!' => 'Пропущен номер упаковочного ÑпиÑока!',
+ 'Part' => 'Товар',
+ 'Part Number' => 'Part Number',
+ 'Period' => 'Период',
+ 'Phone' => 'Тел.',
+ 'Pick List' => 'СпиÑок Ð´Ð»Ñ Ð²Ñ‹Ð±Ð¾Ñ€Ð°',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Цена',
+ 'Print' => 'Печать',
+ 'Print and Save' => 'Ðапечатать и Ñохранить',
+ 'Print and Save as new' => 'Ðапечатать и Ñохранить как новый',
+ 'Printed' => 'Ðапечатано',
+ 'Project' => 'Проект',
+ 'Project not on file!' => 'Проект отÑутÑтвует в Ñправочнике!',
+ 'Purchase Order' => 'Заказ поÑтавщику',
+ 'Purchase Orders' => 'Заказы поÑтавщику',
+ 'Qty' => 'КоличеÑтво',
+ 'Quarter' => 'Квартал',
+ 'Quotation' => 'Резервирование',
+ 'Quotation ' => 'Резервирование',
+ 'Quotation Date' => 'Дата резервированиÑ',
+ 'Quotation Date missing!' => 'Пропущена дата резервированиÑ!',
+ 'Quotation Number' => 'Ðомер резервированиÑ',
+ 'Quotation Number missing!' => 'Пропущен номер резервированиÑ!',
+ 'Quotation deleted!' => 'Резервирование удалено',
+ 'Quotations' => 'Резервы',
+ 'RFQ' => 'Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° резервирование',
+ 'RFQ ' => 'Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° резервирование',
+ 'RFQ Number' => 'Ðомер запроÑа на резервирование',
+ 'Recd' => 'Recd',
+ 'Receive Merchandise' => 'Получить товары',
+ 'Recurring Transaction' => 'ПовторÑющаÑÑÑ Ð¿Ñ€Ð¾Ð²Ð¾Ð´ÐºÐ°',
+ 'Reference' => 'СÑылка',
+ 'Remaining' => 'ОÑтаток',
+ 'Repeat' => 'Повторить',
+ 'Req' => 'Req',
+ 'Request for Quotation' => 'Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° резервирование',
+ 'Request for Quotations' => 'ЗапроÑÑ‹ на резервирование',
+ 'Required by' => 'Запрошен',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Фактура клиента',
+ 'Sales Order' => 'Заказ клиента',
+ 'Sales Orders' => 'Заказы клиента',
+ 'Salesperson' => 'Продавец',
+ 'Save' => 'Сохранить',
+ 'Save Schedule' => 'Сохранить раÑпиÑание',
+ 'Save as new' => 'Сохранить как новый',
+ 'Schedule' => 'РаÑпиÑание',
+ 'Scheduled' => 'Ðазначено раÑпиÑание',
+ 'Screen' => 'Экран',
+ 'Select Vendor' => 'Выбрать поÑтавщика',
+ 'Select a Printer!' => 'Выбрать принтер',
+ 'Select from one of the names below' => 'Выберите одно из наименований из ÑпиÑка',
+ 'Select from one of the projects below' => 'Выберите один из проектов из ÑпиÑка',
+ 'Select items' => 'Выберите Ñлементы',
+ 'Select postscript or PDF!' => 'Выберите postscript или PDF!',
+ 'Select txt, postscript or PDF!' => 'Выберите txt, postscript или PDF!',
+ 'Sep' => 'Ñен',
+ 'September' => 'ÑентÑбрь',
+ 'Serial No.' => 'Серийный ном.',
+ 'Service' => 'УÑлуга',
+ 'Ship' => 'ДоÑтавить',
+ 'Ship Merchandise' => 'Погрузить товары',
+ 'Ship to' => 'доÑтавить длÑ',
+ 'Ship via' => 'доÑтавить через',
+ 'Shipping Address' => 'ÐÐ´Ñ€ÐµÑ Ð´Ð¾Ñтавки',
+ 'Shipping Date' => 'Дата доÑтавки',
+ 'Shipping Date missing!' => 'Пропущена дата доÑтавки',
+ 'Shipping Point' => 'МеÑто доÑтавки',
+ 'Startdate' => 'ÐÐ°Ñ‡Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð°Ñ‚Ð°',
+ 'State/Province' => 'Штат/ПровинциÑ',
+ 'Subject' => 'Тема',
+ 'Subtotal' => 'Итого по разделу',
+ 'Tax' => 'Ðалог',
+ 'Tax Included' => 'Ðалоги включены в Ñумму',
+ 'Terms' => 'Срок резервированиÑ',
+ 'Text' => 'ТекÑÑ‚',
+ 'To' => 'по',
+ 'To Warehouse' => 'на Ñклад',
+ 'Total' => 'Ð’Ñего',
+ 'Trade Discount' => 'Ð¢Ð¾Ñ€Ð³Ð¾Ð²Ð°Ñ Ñкидка',
+ 'Transfer' => 'Перемещение',
+ 'Transfer Inventory' => 'Перемещение инвентарÑ',
+ 'Transfer from' => 'ПеремеÑтить от',
+ 'Transfer to' => 'ПеремеÑтить к',
+ 'Translation not on file!' => 'Ðет перевода Ñ ÑпиÑке!',
+ 'Unit' => 'Единица',
+ 'Update' => 'Обновить',
+ 'Valid until' => 'ДейÑтвительно до',
+ 'Vendor' => 'ПоÑтавщик',
+ 'Vendor Invoice' => 'Фактура поÑтавщика',
+ 'Vendor Number' => 'Код поÑтавщика',
+ 'Vendor missing!' => 'Пропущен поÑтавщик!',
+ 'Vendor not on file!' => 'ПоÑтавщика нет в Ñправочнике!',
+ 'Warehouse' => 'Склад',
+ 'Warning!' => 'Внимание!',
+ 'Week(s)' => 'Ðедели',
+ 'What type of item is this?' => 'Какой Ñто тип номеклатуры?',
+ 'Work Order' => 'Рабочий заказ',
+ 'Year' => 'Год',
+ 'Year(s)' => 'Год',
+ 'Yes' => 'Да',
+ 'You are posting an existing transaction!' => 'Выполнение ÑущеÑтвующей проводки!',
+ 'You are printing and posting an existing transaction!' => 'Печать и выполнение ÑущеÑтвующей проводки!',
+ 'You are printing and saving an existing order' => 'Печать и Ñохранение ÑущеÑтвующего ордера',
+ 'You are printing and saving an existing quotation' => 'Печать и Ñохранение ÑущеÑтвующего резервированиÑ',
+ 'You are saving an existing order' => 'Сохранение ÑущеÑтвующего ордера',
+ 'You are saving an existing quotation' => 'Сохранение ÑущеÑтвующего резервированиÑ',
+ 'Zip/Postal Code' => 'ИндекÑ',
+ 'days' => 'дней',
+ 'ea' => 'шт.',
+ 'for' => 'длÑ',
+ 'sent' => 'отправлено',
+ 'time(s)' => 'раз',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'Продолжить' => 'continue',
+ 'Удалить' => 'delete',
+ 'Удалить_раÑпиÑание' => 'delete_schedule',
+ 'Выполнено' => 'done',
+ 'e_mail' => 'e_mail',
+ 'Создать_ордеры' => 'generate_orders',
+ 'Создать_ордеры_покупки' => 'generate_purchase_orders',
+ 'Создать_ордеры_продажи' => 'generate_sales_order',
+ 'Печать' => 'print',
+ 'Ðапечатать_и_Ñохранить' => 'print_and_save',
+ 'Ðапечатать_и_Ñохранить_как_новый' => 'print_and_save_as_new',
+ 'Заказ_поÑтавщику' => 'purchase_order',
+ 'Резервирование' => 'quotation',
+ 'Резервирование' => 'quotation_',
+ 'ЗапроÑ_на_резервирование' => 'rfq',
+ 'ЗапроÑ_на_резервирование' => 'rfq_',
+ 'Фактура_клиента' => 'sales_invoice',
+ 'Заказ_клиента' => 'sales_order',
+ 'Сохранить' => 'save',
+ 'Сохранить_раÑпиÑание' => 'save_schedule',
+ 'Сохранить_как_новый' => 'save_as_new',
+ 'РаÑпиÑание' => 'schedule',
+ 'Выбрать_поÑтавщика' => 'select_vendor',
+ 'доÑтавить_длÑ' => 'ship_to',
+ 'Перемещение' => 'transfer',
+ 'Обновить' => 'update',
+ 'Фактура_поÑтавщика' => 'vendor_invoice',
+ 'Да' => 'yes',
+};
+
+1;
+
diff --git a/locale/ru_utf/pe b/locale/ru_utf/pe
new file mode 100755
index 00000000..f0026d78
--- /dev/null
+++ b/locale/ru_utf/pe
@@ -0,0 +1,168 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => 'БухгалтерÑкое меню',
+ 'Active' => 'Ðктивный',
+ 'Add' => 'Ðовый',
+ 'Add Group' => 'ÐÐ¾Ð²Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð°',
+ 'Add Job' => 'Добавить работу',
+ 'Add Pricegroup' => 'Ðовый тип цен',
+ 'Add Project' => 'Ðовый проект',
+ 'Address' => 'ÐдреÑ',
+ 'All' => 'Ð’Ñе',
+ 'Amount' => 'Сумма',
+ 'As of' => 'как',
+ 'Assembly' => 'Комлект',
+ 'Assembly stocked!' => 'Сборка помещена!',
+ 'Bin' => 'Bin',
+ 'Cannot stock Assembly!' => 'Ðевозможно Ñформировать комплект!',
+ 'Completed' => 'Завершен',
+ 'Continue' => 'Продолжить',
+ 'Current' => 'Текущий',
+ 'Customer' => 'Клиент',
+ 'Customer missing!' => 'Пропущен клиент!',
+ 'Customer not on file!' => 'Клиент отÑутÑтвует в Ñправочнике!',
+ 'Date' => 'Дата',
+ 'Delete' => 'Удалить',
+ 'Description' => 'ОпиÑание',
+ 'Description Translations' => 'ОпиÑание проводок',
+ 'Detail' => 'Детализировать',
+ 'Edit Description Translations' => 'Редактировать опиÑание проводок',
+ 'Edit Group' => 'Редактировать группу',
+ 'Edit Job' => 'Редактировать задание',
+ 'Edit Pricegroup' => 'Редактировать тип цен',
+ 'Edit Project' => 'Редактировать Проект',
+ 'Employee' => 'Сотрудник',
+ 'Enddate' => 'Дата окончаниÑ',
+ 'Failed to save order!' => 'Ошибка ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð¾Ñ€Ð´ÐµÑ€Ð°',
+ 'From' => 'Ñ',
+ 'Generate Sales Orders' => 'Создать ордеры продажи',
+ 'Group' => 'Группа',
+ 'Group Translations' => 'Группа проводок',
+ 'Group deleted!' => 'Группа удалена!',
+ 'Group missing!' => 'Пропущена группа!',
+ 'Group saved!' => 'Группа Ñохранена!',
+ 'Groups' => 'Группы',
+ 'Inactive' => 'Ðеактивный',
+ 'Income' => 'ПоÑтупление',
+ 'Job' => 'Задание',
+ 'Job Number' => 'Ðомер заданÑ',
+ 'Job deleted!' => 'Задание удалено!',
+ 'Job saved!' => 'Задание Ñохранено',
+ 'Jobs' => 'ЗаданиÑ',
+ 'Language' => 'Язык',
+ 'Languages not defined!' => 'Языки не определены!',
+ 'Link Accounts' => 'СÑылки Ñчетов',
+ 'List Price' => 'СпиÑок цен',
+ 'Month' => 'меÑÑц',
+ 'No open Projects!' => 'Ðет открытых проектов',
+ 'Notes' => 'Комментарии',
+ 'Nothing selected!' => 'Ðичего не выбрано!',
+ 'Number' => 'код',
+ 'Orders generated!' => 'Ордеры Ñозданы',
+ 'Orphaned' => 'Без проводок',
+ 'Part Number' => 'Part Number',
+ 'Period' => 'Период',
+ 'Pricegroup' => 'Тип цен',
+ 'Pricegroup deleted!' => 'Удален тип цен',
+ 'Pricegroup missing!' => 'Пропущен тип цен',
+ 'Pricegroup saved!' => 'ЗапиÑан тип цен',
+ 'Pricegroups' => 'Типы цен',
+ 'Production' => 'ПродукциÑ',
+ 'Project' => 'Проект',
+ 'Project Description Translations' => 'Переводы опиÑÐ°Ð½Ð¸Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚Ð¾Ð²',
+ 'Project Number' => 'Код проекта',
+ 'Project deleted!' => 'Проект удален',
+ 'Project saved!' => 'Проект Ñохранен!',
+ 'Projects' => 'Проекты',
+ 'Qty' => 'КоличеÑтво',
+ 'Quarter' => 'Квартал',
+ 'Save' => 'Сохранить',
+ 'Select Customer' => 'Выбрать покупателÑ',
+ 'Select from one of the names below' => 'Выберите одно из наименований из ÑпиÑка',
+ 'Sell Price' => 'ÐŸÑ€Ð¾Ð´Ð°Ð¶Ð½Ð°Ñ Ñ†ÐµÐ½Ð°',
+ 'Service Code' => 'Код уÑлуги',
+ 'Startdate' => 'ÐÐ°Ñ‡Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð°Ñ‚Ð°',
+ 'Stock Finished Goods' => 'Сформировать завершенную продукцию',
+ 'Summary' => 'Суммарно',
+ 'Tax' => 'Ðалог',
+ 'To' => 'по',
+ 'Transaction Dates' => 'Дата проводки',
+ 'Translation' => 'Перевод',
+ 'Translation deleted!' => 'Перевод удален!',
+ 'Translations saved!' => 'Переводы Ñохранены!',
+ 'Unit' => 'Единица',
+ 'Update' => 'Обновить',
+ 'Updated' => 'Обновлено',
+ 'Vendor' => 'ПоÑтавщик',
+ 'Vendor not on file!' => 'ПоÑтавщика нет в Ñправочнике!',
+ 'Weight' => 'ВеÑ',
+ 'Year' => 'Год',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'ÐоваÑ_группа' => 'add_group',
+ 'Добавить_работу' => 'add_job',
+ 'Ðовый_тип_цен' => 'add_pricegroup',
+ 'Ðовый_проект' => 'add_project',
+ 'Продолжить' => 'continue',
+ 'Удалить' => 'delete',
+ 'Создать_ордеры_продажи' => 'generate_sales_orders',
+ 'Сохранить' => 'save',
+ 'Выбрать_покупателÑ' => 'select_customer',
+ 'Обновить' => 'update',
+};
+
+1;
+
diff --git a/locale/ru_utf/pos b/locale/ru_utf/pos
new file mode 100755
index 00000000..3c2786f1
--- /dev/null
+++ b/locale/ru_utf/pos
@@ -0,0 +1,83 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => 'БухгалтерÑкое меню',
+ 'Add POS Invoice' => 'ÐÐ¾Ð²Ñ‹Ð°Ñ Ñ„Ð°ÐºÑ‚ÑƒÑ€Ð° ККМ',
+ 'Amount' => 'Сумма',
+ 'Business' => 'БизнеÑ',
+ 'Cannot post transaction!' => 'Ðевозможно провеÑти проводку!',
+ 'Change' => 'Изменить',
+ 'Continue' => 'Продолжить',
+ 'Credit Limit' => 'Лимит кредита',
+ 'Currency' => 'Валюта',
+ 'Current' => 'Текущий',
+ 'Customer' => 'Клиент',
+ 'Customer missing!' => 'Пропущен клиент!',
+ 'Delete' => 'Удалить',
+ 'Department' => 'Отдел',
+ 'Description' => 'ОпиÑание',
+ 'Edit POS Invoice' => 'Редактировать ККМ-фактуру',
+ 'Exchange Rate' => 'ÐšÑƒÑ€Ñ Ð²Ð°Ð»ÑŽÑ‚Ñ‹',
+ 'Exchange rate missing!' => 'Пропущен курÑ!',
+ 'Extended' => 'Сумма',
+ 'From' => 'Ñ',
+ 'Language' => 'Язык',
+ 'Memo' => 'Комментарий',
+ 'Month' => 'меÑÑц',
+ 'Number' => 'код',
+ 'Open' => 'Открыть',
+ 'Period' => 'Период',
+ 'Post' => 'Сохранить',
+ 'Posted!' => 'Сохранено!',
+ 'Price' => 'Цена',
+ 'Print' => 'Печать',
+ 'Print and Post' => 'Ðапечатать и отправить',
+ 'Printed' => 'Ðапечатано',
+ 'Qty' => 'КоличеÑтво',
+ 'Quarter' => 'Квартал',
+ 'Receipts' => 'ПолучениÑ',
+ 'Record in' => 'ОтнеÑти на Ñчет',
+ 'Remaining' => 'ОÑтаток',
+ 'Salesperson' => 'Продавец',
+ 'Screen' => 'Экран',
+ 'Select a Printer!' => 'Выбрать принтер',
+ 'Source' => 'ИÑточник',
+ 'Subtotal' => 'Итого по разделу',
+ 'Tax Included' => 'Ðалоги включены в Ñумму',
+ 'To' => 'по',
+ 'Total' => 'Ð’Ñего',
+ 'Trade Discount' => 'Ð¢Ð¾Ñ€Ð³Ð¾Ð²Ð°Ñ Ñкидка',
+ 'Unit' => 'Единица',
+ 'Update' => 'Обновить',
+ 'Year' => 'Год',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'Продолжить' => 'continue',
+ 'Удалить' => 'delete',
+ 'Сохранить' => 'post',
+ 'Печать' => 'print',
+ 'Ðапечатать_и_отправить' => 'print_and_post',
+ 'Обновить' => 'update',
+};
+
+1;
+
diff --git a/locale/ru_utf/ps b/locale/ru_utf/ps
new file mode 100755
index 00000000..73a19eab
--- /dev/null
+++ b/locale/ru_utf/ps
@@ -0,0 +1,393 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Aging' => 'ВзаимораÑчеты Ñ Ð¿Ð¾Ñтавщиками',
+ 'AP Outstanding' => 'ЗадолженоÑÑ‚ÑŒ поÑтавщиков',
+ 'AP Transaction' => 'Проводка закупки',
+ 'AP Transactions' => 'Проводки закупки',
+ 'AR Aging' => 'ВзаимораÑчеты Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ð°Ð¼Ð¸',
+ 'AR Outstanding' => 'ЗадолженоÑÑ‚ÑŒ клиентов',
+ 'AR Transaction' => 'Проводка продаж',
+ 'AR Transactions' => 'Проводки продаж',
+ 'Account' => 'Счет',
+ 'Account Number' => 'Код Ñчета',
+ 'Accounting Menu' => 'БухгалтерÑкое меню',
+ 'Accounts' => 'Счета',
+ 'Accrual' => 'Ðакопление',
+ 'Add AP Transaction' => 'ÐÐ¾Ð²Ð°Ñ Ð¿Ñ€Ð¾Ð²Ð¾Ð´ÐºÐ° поÑтуплений',
+ 'Add AR Transaction' => 'ÐÐ¾Ð²Ð°Ñ Ð¿Ñ€Ð¾Ð²Ð¾Ð´ÐºÐ° продаж',
+ 'Add POS Invoice' => 'ÐÐ¾Ð²Ñ‹Ð°Ñ Ñ„Ð°ÐºÑ‚ÑƒÑ€Ð° ККМ',
+ 'Add Purchase Order' => 'Ðовый заказ поÑтавщика',
+ 'Add Quotation' => 'Ðовое резервирование',
+ 'Add Request for Quotation' => 'Ðовый Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° резервирование',
+ 'Add Sales Invoice' => 'ÐÐ¾Ð²Ð°Ñ Ñ„Ð°ÐºÑ‚ÑƒÑ€Ð° продажи',
+ 'Add Sales Order' => 'Ðовый заказ клиента',
+ 'Address' => 'ÐдреÑ',
+ 'All Accounts' => 'Ð’Ñе Ñчета',
+ 'Amount' => 'Сумма',
+ 'Amount Due' => 'Сумма к получению',
+ 'Apr' => 'апр',
+ 'April' => 'апрель',
+ 'Are you sure you want to delete Invoice Number' => 'Вы уверены, что хотите удалить данную фактуру?',
+ 'Are you sure you want to delete Transaction' => 'Вы уверены, что хотите удалить данную проводку?',
+ 'Attachment' => 'Вложение',
+ 'Aug' => 'авг',
+ 'August' => 'авгуÑÑ‚',
+ 'Balance' => 'БаланÑ',
+ 'Balance Sheet' => 'БаланÑ',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'ÐÐ´Ñ€ÐµÑ Ð´Ð¾Ñтавки Ñчета',
+ 'Bin' => 'Bin',
+ 'Bin List' => 'СпиÑок Bin',
+ 'Business' => 'БизнеÑ',
+ 'Cannot delete invoice!' => 'Ðевозможно удалить фактуру!',
+ 'Cannot delete transaction!' => 'Ðевозможно удалить проводку!',
+ 'Cannot post invoice for a closed period!' => 'Ðевозможно провеÑти фактуру в закрытом периоде!',
+ 'Cannot post invoice!' => 'Ðевозможно провеÑти фактуру!',
+ 'Cannot post payment for a closed period!' => 'Ðевозможно провеÑти оплату Ð´Ð»Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð¾Ð³Ð¾ периода!',
+ 'Cannot post transaction for a closed period!' => 'Ðевозможно провеÑти проводку в закрытом периоде!',
+ 'Cannot post transaction!' => 'Ðевозможно провеÑти проводку!',
+ 'Cash' => 'КаÑÑа',
+ 'Cc' => 'Cc',
+ 'Change' => 'Изменить',
+ 'Check' => 'Проверить',
+ 'City' => 'Город',
+ 'Closed' => 'Закрыт',
+ 'Company Name' => 'Ðаименование организации',
+ 'Compare to' => 'Сравнить Ñ',
+ 'Confirm!' => 'Подтвердить!',
+ 'Contact' => 'Контактное лицо',
+ 'Continue' => 'Продолжить',
+ 'Copies' => 'Копий',
+ 'Country' => 'Страна',
+ 'Credit' => 'Кредит',
+ 'Credit Limit' => 'Лимит кредита',
+ 'Curr' => 'Валюта',
+ 'Currency' => 'Валюта',
+ 'Current' => 'Текущий',
+ 'Current Earnings' => 'Ð¢ÐµÐºÑƒÑ‰Ð°Ñ Ð¿Ñ€Ð¸Ð±Ñ‹Ð»ÑŒ',
+ 'Customer' => 'Клиент',
+ 'Customer Number' => 'Код клиента',
+ 'Customer missing!' => 'Пропущен клиент!',
+ 'Customer not on file!' => 'Клиент отÑутÑтвует в Ñправочнике!',
+ 'Date' => 'Дата',
+ 'Date Paid' => 'Дата оплаты',
+ 'Day(s)' => 'День',
+ 'Debit' => 'Дебет',
+ 'Dec' => 'дек',
+ 'December' => 'декабрь',
+ 'Decimalplaces' => 'деÑÑÑ‚Ð¸Ñ‡Ð½Ð°Ñ Ñ‚Ð¾Ñ‡ÐºÐ°',
+ 'Delete' => 'Удалить',
+ 'Delete Schedule' => 'Удалить раÑпиÑание',
+ 'Delivery Date' => 'Дата получениÑ',
+ 'Department' => 'Отдел',
+ 'Description' => 'ОпиÑание',
+ 'Detail' => 'Детализировать',
+ 'Due Date' => 'Оплатить до',
+ 'Due Date missing!' => 'Ðе указан Ñрок оплаты!',
+ 'E-mail' => 'E-mail',
+ 'E-mail Statement to' => 'СоÑтоÑние E-mail длÑ',
+ 'E-mail address missing!' => 'Ðе указан Ð°Ð´Ñ€ÐµÑ E-mail!',
+ 'E-mail message' => 'E-mail Ñообщение',
+ 'E-mailed' => 'Отправлено по e-mail',
+ 'Edit AP Transaction' => 'Редактировать проводку ПоÑтуплениÑ',
+ 'Edit AR Transaction' => 'Редактировать проводку Продаж',
+ 'Edit POS Invoice' => 'Редактировать ККМ-фактуру',
+ 'Edit Sales Invoice' => 'Редактировать Фактуру клиента',
+ 'Employee' => 'Сотрудник',
+ 'Every' => 'каждый',
+ 'Exch' => 'КурÑ',
+ 'Exchange Rate' => 'ÐšÑƒÑ€Ñ Ð²Ð°Ð»ÑŽÑ‚Ñ‹',
+ 'Exchange rate for payment missing!' => 'Пропущен ÐºÑƒÑ€Ñ Ð¾Ð¿Ð»Ð°Ñ‚Ñ‹!',
+ 'Exchange rate missing!' => 'Пропущен курÑ!',
+ 'Extended' => 'Сумма',
+ 'Fax' => 'ФакÑ',
+ 'Feb' => 'фев',
+ 'February' => 'февраль',
+ 'For' => 'длÑ',
+ 'From' => 'Ñ',
+ 'GIFI' => 'GIFI',
+ 'Group' => 'Группа',
+ 'Heading' => 'Раздел',
+ 'ID' => 'Идентификатор',
+ 'In-line' => 'внутриÑтрочный',
+ 'Include Exchange Rate Difference' => 'Включить курÑовую разноÑÑ‚ÑŒ',
+ 'Include Payment' => 'Ð’ÐºÐ»ÑŽÑ‡Ð°Ñ Ð¾Ð¿Ð»Ð°Ñ‚Ñƒ',
+ 'Include in Report' => 'Включить в отчет',
+ 'Income Statement' => 'Отчет о прибыли/убытках',
+ 'Internal Notes' => 'Внутренние заметки',
+ 'Invoice' => 'Счет-фактура',
+ 'Invoice Date' => 'Дата выÑтавлениÑ',
+ 'Invoice Date missing!' => 'Ðе указана дата выÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñчета-фактуры',
+ 'Invoice Number' => 'Ðомер Ñчета-фактуры',
+ 'Invoice Number missing!' => 'Ðе указан номер Ñчета-фактуры',
+ 'Invoice deleted!' => 'Счет-фактура удалена!',
+ 'Item not on file!' => 'Ðет номенклатуры в Ñправочнике!',
+ 'Jan' => 'Ñнв',
+ 'January' => 'Ñнварь',
+ 'Jul' => 'июл',
+ 'July' => 'июль',
+ 'Jun' => 'июн',
+ 'June' => 'июнь',
+ 'Language' => 'Язык',
+ 'Manager' => 'Менеджер',
+ 'Mar' => 'март',
+ 'March' => 'март',
+ 'May' => 'май',
+ 'May ' => 'май',
+ 'Memo' => 'Комментарий',
+ 'Message' => 'Сообщение',
+ 'Method' => 'Метод',
+ 'Month' => 'меÑÑц',
+ 'Month(s)' => 'меÑÑц',
+ 'N/A' => 'N/A',
+ 'Next Date' => 'Ð¡Ð»ÐµÐ´ÑƒÑŽÑ‰Ð°Ñ Ð´Ð°Ñ‚Ð°',
+ 'No.' => 'Ðом.',
+ 'Non-taxable Purchases' => 'Закупки, не подлежащие налогообложению',
+ 'Non-taxable Sales' => 'Продажи, не подлежащие налогообложению',
+ 'Notes' => 'Комментарии',
+ 'Nothing selected!' => 'Ðичего не выбрано!',
+ 'Nothing to print!' => 'Ðичего не напечатано!',
+ 'Nov' => 'ноÑ',
+ 'November' => 'ноÑбрь',
+ 'Number' => 'код',
+ 'Number missing in Row' => 'Пропущен код в Ñтроке',
+ 'OH' => 'OH',
+ 'Oct' => 'окт',
+ 'October' => 'октÑбрь',
+ 'Open' => 'Открыть',
+ 'Order' => 'Заказ клиента',
+ 'Order Date missing!' => 'Пропущена дата заказа',
+ 'Order Number' => 'Ðомер заказа',
+ 'Order Number missing!' => 'Пропущен номер заказа',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ðомер ордера покупки',
+ 'Packing List' => 'Упаковочный ÑпиÑок',
+ 'Packing List Date missing!' => 'Пропущена дата упаковочного ÑпиÑока!',
+ 'Packing List Number missing!' => 'Пропущен номер упаковочного ÑпиÑока!',
+ 'Paid' => 'Оплачено',
+ 'Part' => 'Товар',
+ 'Payment date missing!' => 'Пропущена дата оплаты!',
+ 'Payments' => 'Оплаты',
+ 'Period' => 'Период',
+ 'Phone' => 'Тел.',
+ 'Pick List' => 'СпиÑок Ð´Ð»Ñ Ð²Ñ‹Ð±Ð¾Ñ€Ð°',
+ 'Post' => 'Сохранить',
+ 'Post as new' => 'Сохранить как новый',
+ 'Posted!' => 'Сохранено!',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Цена',
+ 'Print' => 'Печать',
+ 'Print and Post' => 'Ðапечатать и отправить',
+ 'Print and Post as new' => 'Ðапечатать и отправить как новый',
+ 'Printed' => 'Ðапечатано',
+ 'Project' => 'Проект',
+ 'Project Number' => 'Код проекта',
+ 'Project Transactions' => 'Проводки проекта',
+ 'Project not on file!' => 'Проект отÑутÑтвует в Ñправочнике!',
+ 'Purchase Order' => 'Заказ поÑтавщику',
+ 'Qty' => 'КоличеÑтво',
+ 'Quarter' => 'Квартал',
+ 'Quotation' => 'Резервирование',
+ 'Quotation Date missing!' => 'Пропущена дата резервированиÑ!',
+ 'Quotation Number missing!' => 'Пропущен номер резервированиÑ!',
+ 'Recd' => 'Recd',
+ 'Receipt' => 'Получение',
+ 'Receipts' => 'ПолучениÑ',
+ 'Record in' => 'ОтнеÑти на Ñчет',
+ 'Recurring Transaction' => 'ПовторÑющаÑÑÑ Ð¿Ñ€Ð¾Ð²Ð¾Ð´ÐºÐ°',
+ 'Reference' => 'СÑылка',
+ 'Remaining' => 'ОÑтаток',
+ 'Repeat' => 'Повторить',
+ 'Report for' => 'Отчет длÑ',
+ 'Required by' => 'Запрошен',
+ 'SKU' => 'SKU',
+ 'Sales Invoice.' => 'Фактура клиента',
+ 'Sales Order' => 'Заказ клиента',
+ 'Salesperson' => 'Продавец',
+ 'Save Schedule' => 'Сохранить раÑпиÑание',
+ 'Schedule' => 'РаÑпиÑание',
+ 'Scheduled' => 'Ðазначено раÑпиÑание',
+ 'Screen' => 'Экран',
+ 'Select a Printer!' => 'Выбрать принтер',
+ 'Select all' => 'Выбрать вÑе',
+ 'Select from one of the names below' => 'Выберите одно из наименований из ÑпиÑка',
+ 'Select from one of the projects below' => 'Выберите один из проектов из ÑпиÑка',
+ 'Select items' => 'Выберите Ñлементы',
+ 'Select payment' => 'Выберите оплату',
+ 'Select postscript or PDF!' => 'Выберите postscript или PDF!',
+ 'Select txt, postscript or PDF!' => 'Выберите txt, postscript или PDF!',
+ 'Sep' => 'Ñен',
+ 'September' => 'ÑентÑбрь',
+ 'Serial No.' => 'Серийный ном.',
+ 'Service' => 'УÑлуга',
+ 'Ship' => 'ДоÑтавить',
+ 'Ship to' => 'доÑтавить длÑ',
+ 'Ship via' => 'доÑтавить через',
+ 'Shipping Address' => 'ÐÐ´Ñ€ÐµÑ Ð´Ð¾Ñтавки',
+ 'Shipping Point' => 'МеÑто доÑтавки',
+ 'Source' => 'ИÑточник',
+ 'Standard' => 'Стандартные',
+ 'Startdate' => 'ÐÐ°Ñ‡Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð°Ñ‚Ð°',
+ 'State/Province' => 'Штат/ПровинциÑ',
+ 'Statement' => 'ВедомоÑÑ‚ÑŒ',
+ 'Statement sent to' => 'ВедомоÑÑ‚ÑŒ отправлена длÑ',
+ 'Statements sent to printer!' => 'ВедомоÑÑ‚ÑŒ отправлена на принтер!',
+ 'Subject' => 'Тема',
+ 'Subtotal' => 'Итого по разделу',
+ 'Summary' => 'Суммарно',
+ 'Tax' => 'Ðалог',
+ 'Tax Included' => 'Ðалоги включены в Ñумму',
+ 'Tax collected' => 'Собранные налоги',
+ 'Tax paid' => 'Оплаченные налоги',
+ 'Text' => 'ТекÑÑ‚',
+ 'Till' => 'до',
+ 'To' => 'по',
+ 'Total' => 'Ð’Ñего',
+ 'Trade Discount' => 'Ð¢Ð¾Ñ€Ð³Ð¾Ð²Ð°Ñ Ñкидка',
+ 'Transaction' => 'Проводка',
+ 'Transaction deleted!' => 'Проводка удалена!',
+ 'Transaction posted!' => 'Проводка Ñохранена!',
+ 'Translation not on file!' => 'Ðет перевода Ñ ÑпиÑке!',
+ 'Trial Balance' => 'Предварительный баланÑ',
+ 'Unit' => 'Единица',
+ 'Update' => 'Обновить',
+ 'Vendor' => 'ПоÑтавщик',
+ 'Vendor Invoice.' => 'Фактура поÑтавщика.',
+ 'Vendor Number' => 'Код поÑтавщика',
+ 'Vendor missing!' => 'Пропущен поÑтавщик!',
+ 'Vendor not on file!' => 'ПоÑтавщика нет в Ñправочнике!',
+ 'Warning!' => 'Внимание!',
+ 'Week(s)' => 'Ðедели',
+ 'What type of item is this?' => 'Какой Ñто тип номеклатуры?',
+ 'Work Order' => 'Рабочий заказ',
+ 'Year' => 'Год',
+ 'Year(s)' => 'Год',
+ 'Yes' => 'Да',
+ 'You are posting an existing transaction!' => 'Выполнение ÑущеÑтвующей проводки!',
+ 'You are printing and posting an existing transaction!' => 'Печать и выполнение ÑущеÑтвующей проводки!',
+ 'You are printing and saving an existing order' => 'Печать и Ñохранение ÑущеÑтвующего ордера',
+ 'You are printing and saving an existing quotation' => 'Печать и Ñохранение ÑущеÑтвующего резервированиÑ',
+ 'You are saving an existing order' => 'Сохранение ÑущеÑтвующего ордера',
+ 'You are saving an existing quotation' => 'Сохранение ÑущеÑтвующего резервированиÑ',
+ 'Zip/Postal Code' => 'ИндекÑ',
+ 'as at' => 'как в',
+ 'ea' => 'шт.',
+ 'for' => 'длÑ',
+ 'for Period' => 'за период',
+ 'posted!' => 'отправлено',
+ 'sent' => 'отправлено',
+ 'time(s)' => 'раз',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'Проводка_закупки' => 'ap_transaction',
+ 'Проводка_продаж' => 'ar_transaction',
+ 'Продолжить' => 'continue',
+ 'Удалить' => 'delete',
+ 'Удалить_раÑпиÑание' => 'delete_schedule',
+ 'e_mail' => 'e_mail',
+ 'Сохранить' => 'post',
+ 'Сохранить_как_новый' => 'post_as_new',
+ 'Печать' => 'print',
+ 'Ðапечатать_и_отправить' => 'print_and_post',
+ 'Ðапечатать_и_отправить_как_новый' => 'print_and_post_as_new',
+ 'Фактура_клиента' => 'sales_invoice_',
+ 'Заказ_клиента' => 'sales_order',
+ 'Сохранить_раÑпиÑание' => 'save_schedule',
+ 'РаÑпиÑание' => 'schedule',
+ 'Выбрать_вÑе' => 'select_all',
+ 'доÑтавить_длÑ' => 'ship_to',
+ 'Обновить' => 'update',
+ 'Фактура_поÑтавщика_' => 'vendor_invoice_',
+ 'Да' => 'yes',
+};
+
+1;
+
diff --git a/locale/ru_utf/pw b/locale/ru_utf/pw
new file mode 100755
index 00000000..a19cd9ad
--- /dev/null
+++ b/locale/ru_utf/pw
@@ -0,0 +1,15 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Continue' => 'Продолжить',
+ 'Password' => 'Пароль',
+ 'Session expired!' => 'Превышено Ð²Ñ€ÐµÐ¼Ñ Ð·Ð°Ð´ÐµÑ€Ð¶ÐºÐ¸ ÑеÑÑии',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'Продолжить' => 'continue',
+};
+
+1;
+
diff --git a/locale/ru_utf/rc b/locale/ru_utf/rc
new file mode 100755
index 00000000..a6477823
--- /dev/null
+++ b/locale/ru_utf/rc
@@ -0,0 +1,81 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'Счет',
+ 'Accounting Menu' => 'БухгалтерÑкое меню',
+ 'Apr' => 'апр',
+ 'April' => 'апрель',
+ 'Aug' => 'авг',
+ 'August' => 'авгуÑÑ‚',
+ 'Balance' => 'БаланÑ',
+ 'Beginning Balance' => 'Ðачальный баланÑ',
+ 'Cleared' => 'Очищено',
+ 'Continue' => 'Продолжить',
+ 'Credit' => 'Кредит',
+ 'Current' => 'Текущий',
+ 'Date' => 'Дата',
+ 'Debit' => 'Дебет',
+ 'Dec' => 'дек',
+ 'December' => 'декабрь',
+ 'Description' => 'ОпиÑание',
+ 'Detail' => 'Детализировать',
+ 'Difference' => 'Разница',
+ 'Done' => 'Выполнено',
+ 'Feb' => 'фев',
+ 'February' => 'февраль',
+ 'From' => 'Ñ',
+ 'Include Exchange Rate Difference' => 'Включить курÑовую разноÑÑ‚ÑŒ',
+ 'Jan' => 'Ñнв',
+ 'January' => 'Ñнварь',
+ 'Jul' => 'июл',
+ 'July' => 'июль',
+ 'Jun' => 'июн',
+ 'June' => 'июнь',
+ 'Mar' => 'март',
+ 'March' => 'март',
+ 'May' => 'май',
+ 'May ' => 'май',
+ 'Month' => 'меÑÑц',
+ 'Nov' => 'ноÑ',
+ 'November' => 'ноÑбрь',
+ 'Oct' => 'окт',
+ 'October' => 'октÑбрь',
+ 'Out of balance!' => 'Вне балланÑа!',
+ 'Outstanding' => 'ЗадолженоÑÑ‚ÑŒ',
+ 'Period' => 'Период',
+ 'Quarter' => 'Квартал',
+ 'R' => 'R',
+ 'Reconciliation' => 'СоглаÑованноÑÑ‚ÑŒ',
+ 'Reconciliation Report' => 'Отчет о ÑоглаÑованноÑти',
+ 'Select all' => 'Выбрать вÑе',
+ 'Sep' => 'Ñен',
+ 'September' => 'ÑентÑбрь',
+ 'Source' => 'ИÑточник',
+ 'Statement Balance' => 'БаланÑÐ¾Ð²Ð°Ñ Ð²ÐµÐ´Ð¾Ð¼Ð¾ÑÑ‚ÑŒ',
+ 'Summary' => 'Суммарно',
+ 'To' => 'по',
+ 'Update' => 'Обновить',
+ 'Year' => 'Год',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'Продолжить' => 'continue',
+ 'Выполнено' => 'done',
+ 'Выбрать_вÑе' => 'select_all',
+ 'Обновить' => 'update',
+};
+
+1;
+
diff --git a/locale/ru_utf/rp b/locale/ru_utf/rp
new file mode 100755
index 00000000..e8653784
--- /dev/null
+++ b/locale/ru_utf/rp
@@ -0,0 +1,204 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Aging' => 'ВзаимораÑчеты Ñ Ð¿Ð¾Ñтавщиками',
+ 'AR Aging' => 'ВзаимораÑчеты Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ð°Ð¼Ð¸',
+ 'Account' => 'Счет',
+ 'Account Number' => 'Код Ñчета',
+ 'Accounting Menu' => 'БухгалтерÑкое меню',
+ 'Accounts' => 'Счета',
+ 'Accrual' => 'Ðакопление',
+ 'Address' => 'ÐдреÑ',
+ 'All Accounts' => 'Ð’Ñе Ñчета',
+ 'Amount' => 'Сумма',
+ 'Apr' => 'апр',
+ 'April' => 'апрель',
+ 'Attachment' => 'Вложение',
+ 'Aug' => 'авг',
+ 'August' => 'авгуÑÑ‚',
+ 'Balance' => 'БаланÑ',
+ 'Balance Sheet' => 'БаланÑ',
+ 'Bcc' => 'Bcc',
+ 'Cash' => 'КаÑÑа',
+ 'Cc' => 'Cc',
+ 'Compare to' => 'Сравнить Ñ',
+ 'Continue' => 'Продолжить',
+ 'Copies' => 'Копий',
+ 'Credit' => 'Кредит',
+ 'Curr' => 'Валюта',
+ 'Current' => 'Текущий',
+ 'Current Earnings' => 'Ð¢ÐµÐºÑƒÑ‰Ð°Ñ Ð¿Ñ€Ð¸Ð±Ñ‹Ð»ÑŒ',
+ 'Customer' => 'Клиент',
+ 'Customer not on file!' => 'Клиент отÑутÑтвует в Ñправочнике!',
+ 'Date' => 'Дата',
+ 'Day(s)' => 'День',
+ 'Debit' => 'Дебет',
+ 'Dec' => 'дек',
+ 'December' => 'декабрь',
+ 'Decimalplaces' => 'деÑÑÑ‚Ð¸Ñ‡Ð½Ð°Ñ Ñ‚Ð¾Ñ‡ÐºÐ°',
+ 'Delete Schedule' => 'Удалить раÑпиÑание',
+ 'Department' => 'Отдел',
+ 'Description' => 'ОпиÑание',
+ 'Detail' => 'Детализировать',
+ 'Due Date' => 'Оплатить до',
+ 'E-mail' => 'E-mail',
+ 'E-mail Statement to' => 'СоÑтоÑние E-mail длÑ',
+ 'E-mail address missing!' => 'Ðе указан Ð°Ð´Ñ€ÐµÑ E-mail!',
+ 'E-mail message' => 'E-mail Ñообщение',
+ 'Every' => 'каждый',
+ 'Feb' => 'фев',
+ 'February' => 'февраль',
+ 'For' => 'длÑ',
+ 'From' => 'Ñ',
+ 'GIFI' => 'GIFI',
+ 'Heading' => 'Раздел',
+ 'ID' => 'Идентификатор',
+ 'In-line' => 'внутриÑтрочный',
+ 'Include Exchange Rate Difference' => 'Включить курÑовую разноÑÑ‚ÑŒ',
+ 'Include Payment' => 'Ð’ÐºÐ»ÑŽÑ‡Ð°Ñ Ð¾Ð¿Ð»Ð°Ñ‚Ñƒ',
+ 'Include in Report' => 'Включить в отчет',
+ 'Income Statement' => 'Отчет о прибыли/убытках',
+ 'Invoice' => 'Счет-фактура',
+ 'Jan' => 'Ñнв',
+ 'January' => 'Ñнварь',
+ 'Jul' => 'июл',
+ 'July' => 'июль',
+ 'Jun' => 'июн',
+ 'June' => 'июнь',
+ 'Language' => 'Язык',
+ 'Mar' => 'март',
+ 'March' => 'март',
+ 'May' => 'май',
+ 'May ' => 'май',
+ 'Memo' => 'Комментарий',
+ 'Message' => 'Сообщение',
+ 'Method' => 'Метод',
+ 'Month' => 'меÑÑц',
+ 'Month(s)' => 'меÑÑц',
+ 'N/A' => 'N/A',
+ 'Next Date' => 'Ð¡Ð»ÐµÐ´ÑƒÑŽÑ‰Ð°Ñ Ð´Ð°Ñ‚Ð°',
+ 'Non-taxable Purchases' => 'Закупки, не подлежащие налогообложению',
+ 'Non-taxable Sales' => 'Продажи, не подлежащие налогообложению',
+ 'Nothing selected!' => 'Ðичего не выбрано!',
+ 'Nov' => 'ноÑ',
+ 'November' => 'ноÑбрь',
+ 'Number' => 'код',
+ 'Oct' => 'окт',
+ 'October' => 'октÑбрь',
+ 'Order' => 'Заказ клиента',
+ 'PDF' => 'PDF',
+ 'Payments' => 'Оплаты',
+ 'Period' => 'Период',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Печать',
+ 'Project' => 'Проект',
+ 'Project Number' => 'Код проекта',
+ 'Project Transactions' => 'Проводки проекта',
+ 'Project not on file!' => 'Проект отÑутÑтвует в Ñправочнике!',
+ 'Quarter' => 'Квартал',
+ 'Receipts' => 'ПолучениÑ',
+ 'Recurring Transaction' => 'ПовторÑющаÑÑÑ Ð¿Ñ€Ð¾Ð²Ð¾Ð´ÐºÐ°',
+ 'Reference' => 'СÑылка',
+ 'Repeat' => 'Повторить',
+ 'Report for' => 'Отчет длÑ',
+ 'Salesperson' => 'Продавец',
+ 'Save Schedule' => 'Сохранить раÑпиÑание',
+ 'Screen' => 'Экран',
+ 'Select all' => 'Выбрать вÑе',
+ 'Select from one of the names below' => 'Выберите одно из наименований из ÑпиÑка',
+ 'Select from one of the projects below' => 'Выберите один из проектов из ÑпиÑка',
+ 'Select postscript or PDF!' => 'Выберите postscript или PDF!',
+ 'Sep' => 'Ñен',
+ 'September' => 'ÑентÑбрь',
+ 'Source' => 'ИÑточник',
+ 'Standard' => 'Стандартные',
+ 'Startdate' => 'ÐÐ°Ñ‡Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð°Ñ‚Ð°',
+ 'Statement' => 'ВедомоÑÑ‚ÑŒ',
+ 'Statement sent to' => 'ВедомоÑÑ‚ÑŒ отправлена длÑ',
+ 'Statements sent to printer!' => 'ВедомоÑÑ‚ÑŒ отправлена на принтер!',
+ 'Subject' => 'Тема',
+ 'Subtotal' => 'Итого по разделу',
+ 'Summary' => 'Суммарно',
+ 'Tax' => 'Ðалог',
+ 'Tax collected' => 'Собранные налоги',
+ 'Tax paid' => 'Оплаченные налоги',
+ 'Till' => 'до',
+ 'To' => 'по',
+ 'Total' => 'Ð’Ñего',
+ 'Trial Balance' => 'Предварительный баланÑ',
+ 'Vendor' => 'ПоÑтавщик',
+ 'Vendor not on file!' => 'ПоÑтавщика нет в Ñправочнике!',
+ 'Warning!' => 'Внимание!',
+ 'Week(s)' => 'Ðедели',
+ 'Year' => 'Год',
+ 'Year(s)' => 'Год',
+ 'You are posting an existing transaction!' => 'Выполнение ÑущеÑтвующей проводки!',
+ 'You are printing and posting an existing transaction!' => 'Печать и выполнение ÑущеÑтвующей проводки!',
+ 'You are printing and saving an existing order' => 'Печать и Ñохранение ÑущеÑтвующего ордера',
+ 'You are printing and saving an existing quotation' => 'Печать и Ñохранение ÑущеÑтвующего резервированиÑ',
+ 'You are saving an existing order' => 'Сохранение ÑущеÑтвующего ордера',
+ 'You are saving an existing quotation' => 'Сохранение ÑущеÑтвующего резервированиÑ',
+ 'as at' => 'как в',
+ 'for' => 'длÑ',
+ 'for Period' => 'за период',
+ 'sent' => 'отправлено',
+ 'time(s)' => 'раз',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'Продолжить' => 'continue',
+ 'Удалить_раÑпиÑание' => 'delete_schedule',
+ 'e_mail' => 'e_mail',
+ 'Печать' => 'print',
+ 'Сохранить_раÑпиÑание' => 'save_schedule',
+ 'Выбрать_вÑе' => 'select_all',
+};
+
+1;
+
diff --git a/locale/se/COPYING b/locale/se/COPYING
new file mode 100755
index 00000000..54ddcabc
--- /dev/null
+++ b/locale/se/COPYING
@@ -0,0 +1,25 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2003
+#
+# Swedish texts:
+#
+# Author: Jonny Larsson <jonny@lernbo.com>
+# Daniel Andersson <daniel@addelei.nu>
+# Johan Hambraeus <nahoj1976@users.sourceforge.net>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/se/LANGUAGE b/locale/se/LANGUAGE
new file mode 100755
index 00000000..e3753939
--- /dev/null
+++ b/locale/se/LANGUAGE
@@ -0,0 +1 @@
+Swedish
diff --git a/locale/se/aa b/locale/se/aa
new file mode 100755
index 00000000..29c62ebc
--- /dev/null
+++ b/locale/se/aa
@@ -0,0 +1,161 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Leverantörsskulder',
+ 'AP Transaction' => 'Betald skuld',
+ 'AP Transactions' => 'Leverantörsfakturor',
+ 'AR Outstanding' => 'Kundfordringar',
+ 'AR Transaction' => 'Betald Fodran',
+ 'AR Transactions' => 'Kundfakturor',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Bokförings-meny',
+ 'Add AP Transaction' => 'Lägg till utgift',
+ 'Add AR Transaction' => 'Lägg till intäkt',
+ 'Amount' => 'Belopp',
+ 'Amount Due' => 'Förfallet belopp',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Transaction' => 'Är du säker på att du vill radera Transaktionen',
+ 'Aug' => 'Aug',
+ 'August' => 'Augusti',
+ 'Cannot delete transaction!' => 'Kan inte radera händelse',
+ 'Cannot post payment for a closed period!' => 'Kan inte bokföra en betalning för en stängd period',
+ 'Cannot post transaction for a closed period!' => 'Kan inte bokföra under en stängd period',
+ 'Cannot post transaction!' => 'Kan inte bokföra transaktion',
+ 'Check' => 'Check-betalning',
+ 'Closed' => 'Avslutad',
+ 'Confirm!' => 'Bekräfta!',
+ 'Continue' => 'Fortsätt',
+ 'Credit' => 'Kredit',
+ 'Credit Limit' => 'Kreditgräns',
+ 'Curr' => 'Valuta',
+ 'Currency' => 'Valuta',
+ 'Current' => 'Nuvarande',
+ 'Customer' => 'Kund',
+ 'Customer missing!' => 'Kund saknas',
+ 'Date' => 'Datum',
+ 'Date Paid' => 'Betalningsdatum',
+ 'Debit' => 'Debet',
+ 'Dec' => 'Dec',
+ 'December' => 'December',
+ 'Delete' => 'Radera',
+ 'Department' => 'Kostnadsställe/resultatenhet',
+ 'Description' => 'Beskrivning',
+ 'Detail' => 'Detalj',
+ 'Due Date' => 'Förfallodatum',
+ 'Due Date missing!' => 'Förfallodatum saknas',
+ 'Edit AP Transaction' => 'Redigera utgifter',
+ 'Edit AR Transaction' => 'Redigera intäkter',
+ 'Employee' => 'Anställd',
+ 'Exch' => 'Vxl',
+ 'Exchange Rate' => 'Växlingskurs',
+ 'Exchange rate for payment missing!' => 'Växlingskurs för saknad betalning',
+ 'Exchange rate missing!' => 'Växelkurs saknas',
+ 'Feb' => 'Feb',
+ 'February' => 'Februari',
+ 'From' => 'Från',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Inkludera i rapport',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date' => 'Fakturadatum',
+ 'Invoice Date missing!' => 'Fakturadatum saknas',
+ 'Invoice Number' => 'Fakturanummer',
+ 'Jan' => 'Jan',
+ 'January' => 'Januari',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Manager' => 'Direktör',
+ 'Mar' => 'Mar',
+ 'March' => 'Mars',
+ 'May' => 'Maj',
+ 'May ' => 'Maj',
+ 'Memo' => 'Anteckning',
+ 'Month' => 'Månad',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Anmärkningar',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Open' => 'Aktuell',
+ 'Order' => 'Order',
+ 'Order Number' => 'Ordernummer',
+ 'PO Number' => 'Inköps order nr',
+ 'Paid' => 'Betalt',
+ 'Payment date missing!' => 'Betalningsdatum saknas',
+ 'Payments' => 'Betalningar',
+ 'Period' => 'Period',
+ 'Post' => 'Bokför',
+ 'Post as new' => 'Bokför som ny',
+ 'Print' => 'Skriv ut',
+ 'Print and Post' => 'Skriv och bokför',
+ 'Print and Post as new' => 'Skriv ut och bokför som ny',
+ 'Project' => 'Projekt',
+ 'Quarter' => 'Kvartal',
+ 'Receipt' => 'Kvitto',
+ 'Remaining' => 'Resterar',
+ 'Sales Invoice.' => 'Kundfaktura.',
+ 'Salesperson' => 'Försäljare',
+ 'Schedule' => 'Schemalägg',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Ship to' => 'Skicka till',
+ 'Ship via' => 'Skicka med',
+ 'Shipping Point' => 'Skickad',
+ 'Source' => 'Källa',
+ 'Subtotal' => 'Delsummera',
+ 'Summary' => 'Summa',
+ 'Tax' => 'Moms',
+ 'Tax Included' => 'Moms ingår',
+ 'Till' => 'Till',
+ 'To' => 'Till',
+ 'Total' => 'Total',
+ 'Transaction' => 'Transaktion',
+ 'Transaction deleted!' => 'Transaktion raderad',
+ 'Transaction posted!' => 'Transaktion bokförd',
+ 'Update' => 'Uppdatera',
+ 'Vendor' => 'Leverantör',
+ 'Vendor Invoice.' => 'Leverantörsfaktura. ',
+ 'Vendor missing!' => 'Leverantör saknas',
+ 'Year' => 'År',
+ 'Yes' => 'Ja',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'betald_skuld' => 'ap_transaction',
+ 'betald_fodran' => 'ar_transaction',
+ 'fortsätt' => 'continue',
+ 'radera' => 'delete',
+ 'bokför' => 'post',
+ 'bokför_som_ny' => 'post_as_new',
+ 'skriv_ut' => 'print',
+ 'skriv_och_bokför' => 'print_and_post',
+ 'skriv_ut_och_bokför_som_ny' => 'print_and_post_as_new',
+ 'kundfaktura_' => 'sales_invoice_',
+ 'schemalägg' => 'schedule',
+ 'skicka_till' => 'ship_to',
+ 'uppdatera' => 'update',
+ 'leverantörsfaktura._' => 'vendor_invoice_',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/se/admin b/locale/se/admin
new file mode 100755
index 00000000..75e080bc
--- /dev/null
+++ b/locale/se/admin
@@ -0,0 +1,144 @@
+$self{texts} = {
+ 'Access Control' => 'Accesskontroll',
+ 'Accounting' => 'Bokföring',
+ 'Add User' => 'Ny användare',
+ 'Address' => 'Adress',
+ 'Administration' => 'Administration',
+ 'Administrator' => 'Administratör',
+ 'All Datasets up to date!' => 'Alla dataset uppdaterade',
+ 'Cannot create Lock!' => 'Kan inte låsa!',
+ 'Change Admin Password' => 'Ändra lösenord för admin',
+ 'Change Password' => 'Ändra lösenord',
+ 'Click on login name to edit!' => 'Klicka på användarnamn för att redigera!',
+ 'Company' => 'Företag',
+ 'Confirm' => 'Bekräfta',
+ 'Connect to' => 'Anslut till',
+ 'Continue' => 'Fortsätt',
+ 'Create Chart of Accounts' => 'Skapa kontoplan',
+ 'Create Dataset' => 'Skapa dataset',
+ 'DBA' => 'DBA',
+ 'DBI not installed!' => 'DBI inte installerad',
+ 'Database' => 'Databas',
+ 'Database Administration' => 'Administration av databas',
+ 'Database Driver not checked!' => 'Databasedriver icke kontrollerad',
+ 'Database User missing!' => 'Databasanvändare saknas',
+ 'Dataset' => 'Dataset',
+ 'Dataset missing!' => 'Dataset saknas',
+ 'Dataset updated!' => 'Dataset uppdaterat',
+ 'Date Format' => 'Datumformat',
+ 'Delete' => 'Radera',
+ 'Delete Dataset' => 'Radera dataset',
+ 'Directory' => 'Katalog',
+ 'Driver' => 'Driver',
+ 'Dropdown Limit' => 'Brytpunkts gräns',
+ 'E-mail' => 'E-Post',
+ 'Edit User' => 'Redigera användare',
+ 'Existing Datasets' => 'Existerande Dataset',
+ 'Fax' => 'Fax',
+ 'Host' => 'Värd',
+ 'Hostname missing!' => 'Värdnamn saknas',
+ 'Language' => 'Språk',
+ 'Lock System' => 'Lås Systemet',
+ 'Lockfile created!' => 'Låsfil skapad!',
+ 'Lockfile removed!' => 'Låsfil borttagen!',
+ 'Login' => 'Logga in',
+ 'Login name missing!' => 'inloggningsnamn saknas!',
+ 'Logout' => 'Logga ut',
+ 'Manager' => 'Direktör',
+ 'Menu Width' => 'Meny vidd',
+ 'Multibyte Encoding' => 'Multibytekodning',
+ 'Name' => 'Namn',
+ 'New Templates' => 'Nya mallar',
+ 'No Database Drivers available!' => 'Inga databasdrivers tillgängliga',
+ 'No Dataset selected!' => 'Inget Dataset valt',
+ 'Nothing to delete!' => 'Inget att radera',
+ 'Number Format' => 'Nummerformat',
+ 'Oracle Database Administration' => 'Oracle Databasadministration',
+ 'Password' => 'Lösenord',
+ 'Password changed!' => 'Lösenord ändrat',
+ 'Passwords do not match!' => 'Lösenord skiljer sig',
+ 'Pg Database Administration' => 'Administration av databas PG',
+ 'PgPP Database Administration' => 'PgPP Database Administration',
+ 'Phone' => 'Telefon',
+ 'Port' => 'Port',
+ 'Port missing!' => 'Port saknas',
+ 'Printer' => 'Skrivare',
+ 'Save' => 'Spara',
+ 'Session Timeout' => 'Sessionen avslutad pga tid',
+ 'Session expired!' => 'Sessionen avslutad',
+ 'Setup Templates' => 'Sätt upp mallar',
+ 'Signature' => 'Signatur',
+ 'Stylesheet' => 'Stilmall',
+ 'Supervisor' => 'Ansvarig',
+ 'Templates' => 'Mallar',
+ 'The following Datasets are not in use and can be deleted' => 'Följande Dataset är inte i bruk och kan raderas',
+ 'The following Datasets need to be updated' => 'Följande Dataset behöver uppdateras',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Det här är en preliminär kontroll av existerande källor. Ingenting kommer att sparas eller raderas vid detta tillfälle',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'För att lägga till en användare till en grupp, editera namnet, ändra login namnet och spara. En ny användare med samma variabler sparas då under det nya namnet.',
+ 'Unlock System' => 'Lås upp System',
+ 'Update Dataset' => 'Uppdatera dataset',
+ 'Use Templates' => 'Använd mallar',
+ 'User' => 'Användare',
+ 'User deleted!' => 'Användare raderad',
+ 'User saved!' => 'Användare sparad',
+ 'Version' => 'Version',
+ 'You are logged out' => 'Du är utloggad',
+ 'does not exist' => 'finns inte',
+ 'is already a member!' => 'är redan medlem!',
+ 'localhost' => 'localhost',
+ 'locked!' => 'Låst!',
+ 'successfully created!' => 'skapades!',
+ 'successfully deleted!' => 'raderades!',
+ 'website' => 'websida',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'ny_användare' => 'add_user',
+ 'Ändra_lösenord_för_admin' => 'change_admin_password',
+ 'Ändra_lösenord' => 'change_password',
+ 'fortsätt' => 'continue',
+ 'skapa_dataset' => 'create_dataset',
+ 'radera' => 'delete',
+ 'radera_dataset' => 'delete_dataset',
+ 'lås_systemet' => 'lock_system',
+ 'logga_in' => 'login',
+ 'logga_ut' => 'logout',
+ 'oracle_databasadministration' => 'oracle_database_administration',
+ 'administration_av_databas_pg' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'spara' => 'save',
+ 'lås_upp_system' => 'unlock_system',
+ 'uppdatera_dataset' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/se/all b/locale/se/all
new file mode 100755
index 00000000..a66bd03d
--- /dev/null
+++ b/locale/se/all
@@ -0,0 +1,949 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+
+$self{texts} = {
+ 'A' => 'Tillgångar',
+ 'AP' => 'Utgifter',
+ 'AP Aging' => 'Förfallna lev.fakturor',
+ 'AP Outstanding' => 'Leverantörsskulder',
+ 'AP Transaction' => 'Betald kostnad',
+ 'AP Transactions' => 'Leverantörsfakturor',
+ 'AR' => 'Intäkter',
+ 'AR Aging' => 'Förfallna kundfordringar',
+ 'AR Outstanding' => 'Kundfordringar',
+ 'AR Transaction' => 'Betald fodran',
+ 'AR Transactions' => 'Kundfakturor',
+ 'AR/AP' => 'Intäkter/utgifter',
+ 'About' => 'Om',
+ 'Above' => 'Över',
+ 'Access Control' => 'Accesskontroll',
+ 'Access Denied!' => 'Fel kod eller användarnamn!',
+ 'Account' => 'Konto',
+ 'Account Number' => 'Kontonummer',
+ 'Account Number missing!' => 'Kontonummer saknas',
+ 'Account Type' => 'Kontotyp',
+ 'Account Type missing!' => 'Kontotyp saknas!',
+ 'Account deleted!' => 'Konto raderat!',
+ 'Account does not exist!' => 'Kontot finns ej!',
+ 'Account saved!' => 'Konto sparat!',
+ 'Accounting' => 'Bokföring',
+ 'Accounting Menu' => 'Bokförings-meny',
+ 'Accounts' => 'Konton',
+ 'Accrual' => 'Bokföringsmässig',
+ 'Activate Audit trail' => 'Aktivera ändringskontroll',
+ 'Activate Audit trails' => 'Aktivera ändringskontroll',
+ 'Active' => 'Aktiv',
+ 'Add' => 'Lägg till',
+ 'Add AP Transaction' => 'Lägg till utgift',
+ 'Add AR Transaction' => 'Lägg till intäkt',
+ 'Add Account' => 'Nytt konto',
+ 'Add Assembly' => 'Ny produkt',
+ 'Add Business' => 'Lägg till verksamhet',
+ 'Add Cash Transfer Transaction' => 'Lägg till betalning',
+ 'Add Customer' => 'Ny kund',
+ 'Add Deduction' => 'Lägg till avdrag',
+ 'Add Department' => 'Nytt kst/res.enh',
+ 'Add Employee' => 'Ny anställd',
+ 'Add Exchange Rate' => 'Ny växelkurs',
+ 'Add GIFI' => 'Ny SRU-kod',
+ 'Add General Ledger Transaction' => 'Nytt verifikat',
+ 'Add Group' => 'Ny grupp',
+ 'Add Job' => 'Lägg till jobb',
+ 'Add Labor/Overhead' => 'Lägg till arbetskostnader',
+ 'Add Language' => 'Lägg till språk',
+ 'Add POS Invoice' => 'Ny försäljning',
+ 'Add Part' => 'Ny vara',
+ 'Add Pricegroup' => 'Ny prisgrupp',
+ 'Add Project' => 'Nytt projekt',
+ 'Add Purchase Order' => 'Ny inköpsorder',
+ 'Add Quotation' => 'Ny offert',
+ 'Add Request for Quotation' => 'Ny begäran om offert',
+ 'Add SIC' => 'Ny sni-kod (industrikod)',
+ 'Add Sales Invoice' => 'Ny kundfaktura',
+ 'Add Sales Order' => 'Ny säljorder',
+ 'Add Service' => 'Lägg till tjänst',
+ 'Add Stores Card' => 'Lägg till butikskort',
+ 'Add Time Card' => 'Lägg till tidkort',
+ 'Add Transaction' => 'Ny faktura',
+ 'Add User' => 'Ny användare',
+ 'Add Vendor' => 'Ny leverantör',
+ 'Add Vendor Invoice' => 'Ny leverantörsfaktura',
+ 'Add Warehouse' => 'Lägg till lager',
+ 'Address' => 'Adress',
+ 'Administration' => 'Administration',
+ 'Administrator' => 'Administratör',
+ 'After Deduction' => 'Efter avdrag',
+ 'Aged' => 'Utgången',
+ 'Aged Overdue' => 'Utgångsdatum överskridit',
+ 'All' => 'Alla',
+ 'All Accounts' => 'Alla konton',
+ 'All Datasets up to date!' => 'Alla dataset uppdaterade',
+ 'All Items' => 'Alla varor',
+ 'Allocated' => 'Kopplad',
+ 'Allowances' => 'Bidrag/rabatt',
+ 'Amount' => 'Belopp',
+ 'Amount Due' => 'Förfallet belopp',
+ 'Amount missing!' => 'Belopp saknas',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Invoice Number' => 'Är du säker på att du vill radera Faktura Nummer',
+ 'Are you sure you want to delete Order Number' => 'Är du säker på att du vill radera Order Nummer',
+ 'Are you sure you want to delete Quotation Number' => 'Är du säker på att du vill radera Offert Nummer',
+ 'Are you sure you want to delete Transaction' => 'Är du säker på att du vill radera Transaktionen',
+ 'Are you sure you want to delete time card for' => 'Är du säker du vill ta bort tidkort för',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Är du säker på att du vill radera markerade poster?',
+ 'As of' => 'Som för',
+ 'Assemblies' => 'Produkter',
+ 'Assemblies restocked!' => 'Produkt åter i lager',
+ 'Assembly' => 'Produkt',
+ 'Assembly stocked!' => 'Produkt lagrad',
+ 'Asset' => 'Tillgång',
+ 'Attachment' => 'Bilaga',
+ 'Audit Control' => 'Revisionskontroll',
+ 'Audit trail disabled' => 'Ändringskontroll avstängd',
+ 'Audit trail enabled' => 'Ändringskontroll påslagen',
+ 'Audit trail removed up to' => 'Log för ändrings-kontroll borttaget fram till ',
+ 'Audit trails disabled' => 'Ändringskontroll avstängd',
+ 'Audit trails enabled' => 'Ändringskontroll påslagen',
+ 'Aug' => 'Aug',
+ 'August' => 'Augusti',
+ 'Average Cost' => 'Medelvärdeskostnad',
+ 'Avg Cost' => 'Medel kostn',
+ 'BIC' => 'Bank identitets kod',
+ 'BOM' => 'Materialkostnad',
+ 'Backup' => 'Säkerhetkopia',
+ 'Backup sent to' => 'Säkerhetskopia har sänts till',
+ 'Balance' => 'Balans',
+ 'Balance Sheet' => 'Balansräkning',
+ 'Bank Giro Number' => 'Bankgiro Nr ',
+ 'Bank Giro account' => 'Bankgiro nr',
+ 'Bankgiro' => 'Bankgiro',
+ 'Based on' => 'Baserad på',
+ 'Batch Printing' => 'Utskrift av grupp',
+ 'Bcc' => 'Dold kopia till',
+ 'Before Deduction' => 'Före avdrag',
+ 'Beginning Balance' => 'Ingående balans',
+ 'Below' => 'Under',
+ 'Billing Address' => 'Faktura adress',
+ 'Bin' => 'Antal i lager',
+ 'Bin List' => 'Lager lista',
+ 'Bin Lists' => 'Lager listor',
+ 'Books are open' => 'Bokföringen är öppen för rättning',
+ 'Break' => 'Brytpunkt',
+ 'Business' => 'Verksamhet',
+ 'Business Number' => 'Organisationsnummer',
+ 'Business deleted!' => 'Verksamhet borttaget',
+ 'Business saved!' => 'Verksamhet sparad',
+ 'C' => 'Avskrivningar',
+ 'COGS' => 'Inköpskostnader',
+ 'COGS account does not exist!' => 'Konto för inköpskostnader ej angivet',
+ 'Cannot add stores card for a completed job!' => 'Kan inte lägga till butikskort för ett avslutat arbete!',
+ 'Cannot add time card for a completed job!' => 'Kan inte lägga till tidkort för ett avslutat arbete!',
+ 'Cannot change stores card for a completed job!' => 'Kan inte byta butikskort för ett avslutat arbete!',
+ 'Cannot change time card for a completed job!' => 'Kan inte byta tidkort för ett avslutat arbete!',
+ 'Cannot create Assembly' => 'Kan inte lagra produkt',
+ 'Cannot create Labor' => 'Kan inte lagra arbetskostnad',
+ 'Cannot create Lock!' => 'Kan inte låsa!',
+ 'Cannot create Part' => 'Kan inte lagra vara',
+ 'Cannot create Service' => 'Kan inte lagra tjänst',
+ 'Cannot delete account!' => 'Kan inte radera konto',
+ 'Cannot delete customer!' => 'Kan inte radera kund',
+ 'Cannot delete default account!' => 'Kan inte radera standardkonto',
+ 'Cannot delete invoice!' => 'Kan inte radera faktura',
+ 'Cannot delete item!' => 'Kan inte radera vara',
+ 'Cannot delete order!' => 'Kan inte radera order',
+ 'Cannot delete quotation!' => 'Kan inte radera offert',
+ 'Cannot delete time card!' => 'Kan inte ta bort tidkort!',
+ 'Cannot delete transaction!' => 'Kan inte radera händelse',
+ 'Cannot delete vendor!' => 'Kan inte radera Leverantör',
+ 'Cannot post Payment!' => 'Kan inte bokföra betalning',
+ 'Cannot post Receipt!' => 'Kan inte bokföra kvitto!',
+ 'Cannot post invoice for a closed period!' => 'Kan inte bokföra en faktura för en avslutad period',
+ 'Cannot post invoice!' => 'Kan inte bokföra fakturan!',
+ 'Cannot post payment for a closed period!' => 'Kan inte bokföra en betalning för en stängd period',
+ 'Cannot post transaction for a closed period!' => 'Kan inte bokföra under en stängd period',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => 'Kan inte bokföra transaktion med debitering och kreditering på samma kontonummer!',
+ 'Cannot post transaction!' => 'Kan inte bokföra transaktion',
+ 'Cannot process payment for a closed period!' => 'Kan inte utföra betalning för en avslutad period',
+ 'Cannot remove files!' => 'Kan inte ta bort filer!',
+ 'Cannot save account!' => 'Kan inte spara konto',
+ 'Cannot save defaults!' => 'Kan inte spara inställningar!',
+ 'Cannot save order!' => 'Kan inte spara order',
+ 'Cannot save preferences!' => 'Kan inte spara preferenser',
+ 'Cannot save quotation!' => 'Kan inte spara offert!',
+ 'Cannot save stores card for a closed period!' => 'Kan inte spara tidkort för en avslutad period!',
+ 'Cannot save stores card!' => 'Kan inte spara tidkort!',
+ 'Cannot save time card for a closed period!' => 'Kan inte spara tidkort för en avslutad periode!',
+ 'Cannot save time card!' => 'Kan inte spara tidkort!',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Måste välja om kontot används för leverantörsskulder, kundfordringar eller lager',
+ 'Cannot set multiple options for' => 'Kan inte ange flera val för',
+ 'Cannot set multiple options for Item' => 'Kan inte ange flera alternativ för varan',
+ 'Cannot set multiple options for Parts Inventory' => 'Kan inte ange flera alternativ för varu-artiklar',
+ 'Cannot set multiple options for Service Items' => 'Kan inte ange flera alternativ för tjänste-artiklar',
+ 'Cannot stock Assembly!' => 'Kan inte lagra produkt',
+ 'Cannot stock assemblies!' => 'Kan inte lagerföra produkter',
+ 'Cash' => 'Betalningar',
+ 'Cc' => 'Kopia',
+ 'Change' => 'Ändra',
+ 'Change Admin Password' => 'Ändra lösenord för admin',
+ 'Change Password' => 'Ändra lösenord',
+ 'Character Set' => 'Teckenuppsättning',
+ 'Chargeable' => 'Debiterbar',
+ 'Chart of Accounts' => 'Kontoplan',
+ 'Check' => 'Kontroll',
+ 'Check Inventory' => 'Inventarielista',
+ 'Checks' => 'Checker',
+ 'City' => 'Stad',
+ 'Cleared' => 'Rensad',
+ 'Click on login name to edit!' => 'Klicka på användarnamn för att redigera!',
+ 'Clocked' => 'Tidmätt',
+ 'Close Books up to' => 'Avsluta bokföring fram till och med',
+ 'Closed' => 'Avslutad',
+ 'Code' => 'Kod',
+ 'Code missing!' => 'Kod saknas',
+ 'Company' => 'Företag',
+ 'Company Name' => 'Företags namn',
+ 'Compare to' => 'Jämför med',
+ 'Completed' => 'Utförd',
+ 'Components' => 'Komponenter',
+ 'Confirm' => 'Bekräfta',
+ 'Confirm!' => 'Bekräfta!',
+ 'Connect to' => 'Anslut till',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Fortsätt',
+ 'Contra' => 'Avdrag',
+ 'Copies' => 'Kopior',
+ 'Copy to COA' => 'Kopiera till kontoplanen',
+ 'Cost' => 'Kostnader',
+ 'Cost Center' => 'Kostnadsställe',
+ 'Could not save pricelist!' => 'Kan inte spara prislista',
+ 'Could not save!' => 'Kan inte spara',
+ 'Could not transfer Inventory!' => 'Kan inte överföra inventarier!',
+ 'Country' => 'Land',
+ 'Create Chart of Accounts' => 'Skapa kontoplan',
+ 'Create Dataset' => 'Skapa dataset',
+ 'Credit' => 'Kredit',
+ 'Credit Limit' => 'Kreditgräns',
+ 'Curr' => 'Valuta',
+ 'Currency' => 'Valuta',
+ 'Current' => 'Nuvarande',
+ 'Current Earnings' => 'Nuvarande inkomst',
+ 'Customer' => 'Kund',
+ 'Customer History' => 'Kund historik',
+ 'Customer Number' => 'Kund nr',
+ 'Customer deleted!' => 'Kund raderad',
+ 'Customer missing!' => 'Kund saknas',
+ 'Customer not on file!' => 'Kund finns ej',
+ 'Customer saved!' => 'Kund sparad',
+ 'Customers' => 'Kunder',
+ 'DBA' => 'DBA',
+ 'DBI not installed!' => 'DBI inte installerad',
+ 'DOB' => 'Födelsedatum',
+ 'Database' => 'Databas',
+ 'Database Administration' => 'Administration av databas',
+ 'Database Driver not checked!' => 'Databasedriver icke kontrollerad',
+ 'Database Host' => 'Databasvärd',
+ 'Database User missing!' => 'Databasanvändare saknas',
+ 'Dataset' => 'Dataset',
+ 'Dataset is newer than version!' => 'Dataset är nyare än programversionen',
+ 'Dataset missing!' => 'Dataset saknas',
+ 'Dataset updated!' => 'Dataset uppdaterat',
+ 'Date' => 'Datum',
+ 'Date Format' => 'Datumformat',
+ 'Date Paid' => 'Betalningsdatum',
+ 'Date Received' => 'Datum mottaget',
+ 'Date missing!' => 'Datum saknas',
+ 'Date received missing!' => 'Mottagningsdatum saknas',
+ 'Date worked' => 'Datum arbetat',
+ 'Day' => 'Dag',
+ 'Day(s)' => 'Dag(ar',
+ 'Days' => 'Dagar',
+ 'Debit' => 'Debet',
+ 'Dec' => 'Dec',
+ 'December' => 'December',
+ 'Decimalplaces' => 'Decimaler',
+ 'Decrease' => 'Minska',
+ 'Deduct after' => 'Avdrag efter',
+ 'Deduction deleted!' => 'Avdrag borttaget',
+ 'Deduction saved!' => 'Avdrag sparat',
+ 'Deductions' => 'Avdrag',
+ 'Default Template' => 'Förvald mall',
+ 'Defaults' => 'Standard inställningar',
+ 'Defaults saved!' => 'Inställningar sparade',
+ 'Delete' => 'Radera',
+ 'Delete Account' => 'Radera konto',
+ 'Delete Dataset' => 'Radera dataset',
+ 'Delete Schedule' => 'Ta bort schemaläggning',
+ 'Deleting a language will also delete the templates for the language' => 'Tar man bort ett språk kommer även mallarna för språket tas bort',
+ 'Delivery Date' => 'Leveransdatum',
+ 'Department' => 'Kostnadsställe/resultatenhet',
+ 'Department deleted!' => 'Kst/res.enh. borttagen',
+ 'Department saved!' => 'Kst/res.enh. sparad',
+ 'Departments' => 'Kostnadsställen / Resultatenheter',
+ 'Deposit' => 'Insättning',
+ 'Description' => 'Beskrivning',
+ 'Description Translations' => 'Beskrivning av översättningar',
+ 'Description missing!' => 'Beskrivning saknas',
+ 'Detail' => 'Detalj',
+ 'Difference' => 'Differens',
+ 'Directory' => 'Katalog',
+ 'Discount' => 'Rabatt',
+ 'Done' => 'Klart',
+ 'Drawing' => 'Ritning',
+ 'Driver' => 'Driver',
+ 'Dropdown Limit' => 'Brytpunkt gräns',
+ 'Due Date' => 'Förfallodatum',
+ 'Due Date missing!' => 'Förfallodatum saknas',
+ 'E-mail' => 'E-Post',
+ 'E-mail Statement to' => 'E-Posta rapport till',
+ 'E-mail address missing!' => 'E-Postadress saknas',
+ 'E-mail message' => 'E-post meddelande',
+ 'E-mailed' => 'Skickad med e-post',
+ 'Edit' => 'Redigera',
+ 'Edit AP Transaction' => 'Redigera utgifter',
+ 'Edit AR Transaction' => 'Redigera intäkter',
+ 'Edit Account' => 'Redigera konto',
+ 'Edit Assembly' => 'Redigera produkt',
+ 'Edit Business' => 'Redigera verksamhet',
+ 'Edit Cash Transfer Transaction' => 'Redigera betalningar',
+ 'Edit Customer' => 'Redigera kund',
+ 'Edit Deduction' => 'Redigera avdrag',
+ 'Edit Department' => 'Redigera avdelning',
+ 'Edit Description Translations' => 'Redigera översättning av beskrivning',
+ 'Edit Employee' => 'Redigera anställd',
+ 'Edit GIFI' => 'Redigera SRU-koder',
+ 'Edit General Ledger Transaction' => 'Redigera verifikat i huvudbok',
+ 'Edit Group' => 'Redigera grupp',
+ 'Edit Job' => 'Ändra jobb',
+ 'Edit Labor/Overhead' => 'Redigera arbetskostnader',
+ 'Edit Language' => 'Redigera språk',
+ 'Edit POS Invoice' => 'Redigera försäljningsfakturor',
+ 'Edit Part' => 'Redigera vara',
+ 'Edit Preferences for' => 'Redigera inställningar för',
+ 'Edit Pricegroup' => 'Redgigera prisgrupp',
+ 'Edit Project' => 'Redigera projekt',
+ 'Edit Purchase Order' => 'Redigera inköpsorder',
+ 'Edit Quotation' => 'Redigera offert',
+ 'Edit Request for Quotation' => 'Redigera begäran om offert',
+ 'Edit SIC' => 'Redigera sni-koder',
+ 'Edit Sales Invoice' => 'Redigera kundfakturor',
+ 'Edit Sales Order' => 'Redigera säljorder',
+ 'Edit Service' => 'Redigera tjänster',
+ 'Edit Template' => 'Redigera utskriftsmall',
+ 'Edit Time Card' => 'Ändra tidkort',
+ 'Edit User' => 'Redigera användare',
+ 'Edit Vendor' => 'Redigera Leverantör',
+ 'Edit Vendor Invoice' => 'Redigera leverantörsfakturor',
+ 'Edit Warehouse' => 'Redigera lager',
+ 'Employee' => 'Anställd',
+ 'Employee Name' => 'Anställd namn',
+ 'Employee Number' => 'Anställd nr',
+ 'Employee deleted!' => 'Anställd borttagen',
+ 'Employee pays' => 'Anställd utbetalt',
+ 'Employee saved!' => 'Anställd sparad',
+ 'Employees' => 'Anställda',
+ 'Employer' => 'Arbetsgivare',
+ 'Employer pays' => 'Arbetsgivare utbetalt',
+ 'Enddate' => 'Slut datum',
+ 'Ends' => 'Slutdatum',
+ 'Enforce transaction reversal for all dates' => 'Kräv rättningsverifikat för alla datum',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Ange upp till 3 bokstäver (SEK:EUR:USD) för egen och utländsk valuta',
+ 'Equity' => 'Eget kapital',
+ 'Every' => 'Varje',
+ 'Excempt age <' => 'Uteslut vid ålder <',
+ 'Exch' => 'Vxl',
+ 'Exchange Rate' => 'Växlingskurs',
+ 'Exchange rate for payment missing!' => 'Växlingskurs för saknad betalning',
+ 'Exchange rate missing!' => 'Växelkurs saknas',
+ 'Exempt age <' => 'Utgångsdatum',
+ 'Existing Datasets' => 'Existerande Dataset',
+ 'Expense' => 'Utgift',
+ 'Expense Account' => 'Utgiftskonto',
+ 'Expense account does not exist!' => 'Konto för kostnader ej angivet',
+ 'Expense/Asset' => 'Utgift/Tillgång',
+ 'Extended' => 'Summa',
+ 'FX' => 'Valutakurs',
+ 'Failed to save order!' => 'Kunde ej spara order',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Februari',
+ 'For' => 'under',
+ 'Foreign Exchange Gain' => 'Växelkurs vinst',
+ 'Foreign Exchange Loss' => 'Växelkurs förlust',
+ 'Friday' => 'Fredag',
+ 'From' => 'Från',
+ 'From Warehouse' => 'Från lager',
+ 'GIFI' => 'SRU-kod',
+ 'GIFI deleted!' => 'SRU-kod raderad',
+ 'GIFI missing!' => 'SRU-kod saknas',
+ 'GIFI saved!' => 'SRU-kod sparad',
+ 'GL' => 'Huvudbok',
+ 'GL Reference Number' => 'Huvudboks verifikat nr',
+ 'GL Transaction' => 'Verifikat',
+ 'General Ledger' => 'Huvudbok',
+ 'Generate' => 'Skapa',
+ 'Generate Orders' => 'Skapa order',
+ 'Generate Purchase Orders' => 'Skapa inköpsorder',
+ 'Generate Purchase Orders from Sales Order' => 'Skapa inköpsorder från försäljningsorder',
+ 'Generate Sales Order' => 'Skapa försäljningsorder',
+ 'Generate Sales Order from Purchase Orders' => 'Skapa försäljningsorder från inköpsorder',
+ 'Generate Sales Orders' => 'Skapa försäljningsorder',
+ 'Goods & Services' => 'Varor och Tjänster',
+ 'Group' => 'Grupp',
+ 'Group Items' => 'Grupp varor',
+ 'Group Translations' => 'Grupp översättningar',
+ 'Group deleted!' => 'Grupp borttagen!',
+ 'Group missing!' => 'Grupp saknas!',
+ 'Group saved!' => 'Grupp sparad!',
+ 'Groups' => 'Grupper',
+ 'HR' => 'Mänskligt kapital',
+ 'HTML Templates' => 'HTML mallar',
+ 'Heading' => 'Överskrift',
+ 'History' => 'Historik',
+ 'Home Phone' => 'Hem telefon',
+ 'Host' => 'Värd',
+ 'Hostname missing!' => 'Värdnamn saknas',
+ 'IBAN' => 'IBAN - bankkontonr',
+ 'ID' => 'ID',
+ 'Image' => 'Bild',
+ 'In-line' => 'På väg',
+ 'Inactive' => 'Inaktiv',
+ 'Include Exchange Rate Difference' => 'Inkludera växelkurs differens',
+ 'Include Payment' => 'Inkudera betalning',
+ 'Include in Report' => 'Inkludera i rapport',
+ 'Include in drop-down menus' => 'Inkludera i rullgardinsmenyer',
+ 'Include this account on the customer/vendor forms to flag customer/vendor as taxable?' => 'Inkludera det här kontot för kund/leverantör för att markera kund/leverantör som momspliktig',
+ 'Income' => 'Vinst',
+ 'Income Account' => 'Intäktskonto',
+ 'Income Statement' => 'Resultaträkning',
+ 'Income account does not exist!' => 'Intäktskonto ej angivet',
+ 'Incorrect Dataset version!' => 'Felaktig databasversion',
+ 'Incorrect Password!' => 'Felaktigt lösenord',
+ 'Increase' => 'Öka',
+ 'Individual Items' => 'Individuella varor',
+ 'Internal Notes' => 'Egna anteckningar',
+ 'Inventory' => 'Lager',
+ 'Inventory Account' => 'Lagerkonto',
+ 'Inventory account does not exist!' => 'Lagerkonto ej angivet',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Lagerkvantitet måste vara noll innan du kan sätta produkten som utgången!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Lagerkvantitet måste vara noll innan du kan sätta varan som utgången!',
+ 'Inventory saved!' => 'Lager sparat',
+ 'Inventory transferred!' => 'Lager överfört',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date' => 'Fakturadatum',
+ 'Invoice Date missing!' => 'Fakturadatum saknas',
+ 'Invoice Number' => 'Fakturanummer',
+ 'Invoice Number missing!' => 'Fakturanummer saknas',
+ 'Invoice deleted!' => 'Faktura raderad',
+ 'Invoice posted!' => 'Faktura bokförd',
+ 'Invoice processed!' => 'Faktura behandlad',
+ 'Invoices' => 'Fakturor',
+ 'Is this a summary account to record' => 'Är detta ett samlingskonto för att lagra',
+ 'Item already on pricelist!' => 'Varan redan i prislistan',
+ 'Item deleted!' => 'Vara raderad',
+ 'Item not on file!' => 'Varan finns inte i databasen',
+ 'Items' => 'Varor',
+ 'Jan' => 'Jan',
+ 'January' => 'Januari',
+ 'Job' => 'Jobb',
+ 'Job Description' => 'Arbetsbeskrivning',
+ 'Job Name' => 'Arbetsnamn',
+ 'Job Number' => 'Jobb nr',
+ 'Job Number missing!' => 'Jobb nr saknas',
+ 'Job deleted!' => 'Jobb borttaget',
+ 'Job saved!' => 'Jobb sparat!',
+ 'Jobs' => 'Jobb',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'LaTeX Templates' => 'LaTeX Mallar',
+ 'Labor Code' => 'Arbetarkod',
+ 'Labor Code missing!' => 'Arbetarkod saknas',
+ 'Labor/Overhead' => 'Arbetskostnader',
+ 'Language' => 'Språk',
+ 'Language deleted!' => 'Språk borttaget',
+ 'Language saved!' => 'Språk sparat',
+ 'Languages' => 'Språk',
+ 'Languages not defined!' => 'Språk ej valt',
+ 'Last Cost' => 'Senaste kostnad',
+ 'Last Numbers & Default Accounts' => 'Senaste nummer och standardkonto',
+ 'Lead' => 'Leveranstid',
+ 'Leadtime' => 'Leveranstid',
+ 'Leave host and port field empty unless you want to make a remote connection.' => 'Lämna värd och port fälten tomma om du inte vill göra en fjärranslutning',
+ 'Liability' => 'Skulder',
+ 'Licensed to' => 'Licensierad till',
+ 'Line Total' => 'Antal rader',
+ 'Link' => 'Referens',
+ 'Link Accounts' => 'Koppla konton',
+ 'List' => 'Lista',
+ 'List Accounts' => 'Lista konton',
+ 'List Businesses' => 'Lista verksamheter',
+ 'List Departments' => 'Lista avdelningar',
+ 'List GIFI' => 'Lista SRU-koder',
+ 'List Languages' => 'Lista språk',
+ 'List Price' => 'Nettopris',
+ 'List Projects' => 'Lista projekt',
+ 'List SIC' => 'Lista SNI-koder',
+ 'List Transactions' => 'Lista transaktioner',
+ 'List Warehouses' => 'Lista lager',
+ 'Lock System' => 'Lås Systemet',
+ 'Lockfile created!' => 'Låsfil skapad!',
+ 'Lockfile removed!' => 'Låsfil borttagen!',
+ 'Login' => 'Logga in',
+ 'Login name missing!' => 'inloggningsnamn saknas!',
+ 'Logout' => 'Logga ut',
+ 'Make' => 'Produkt',
+ 'Manager' => 'Direktör',
+ 'Mar' => 'Mar',
+ 'March' => 'Mars',
+ 'Marked entries printed!' => 'Markerade poster utskrivna!',
+ 'Markup' => 'Prishöjning',
+ 'Maximum' => 'Max',
+ 'May' => 'Maj',
+ 'May ' => 'Maj',
+ 'Memo' => 'Anteckning',
+ 'Menu Width' => 'Meny vidd',
+ 'Message' => 'Meddelande',
+ 'Method' => 'Metod',
+ 'Microfiche' => 'Microfiche',
+ 'Mobile' => 'Mobiltelefon',
+ 'Model' => 'Modell',
+ 'Monday' => 'Måndag',
+ 'Month' => 'Månad',
+ 'Month(s)' => 'Månad(er)',
+ 'Months' => 'Månader',
+ 'Multibyte Encoding' => 'Multibytekodning',
+ 'N/A' => 'ej aktuell',
+ 'Name' => 'Namn',
+ 'Name missing!' => 'Namn saknas',
+ 'New Templates' => 'Nya mallar',
+ 'New Window' => 'Nytt fönster',
+ 'Next' => 'Nästa',
+ 'Next Date' => 'Nästa datum',
+ 'Next Number' => 'Nästa nummer',
+ 'No' => 'Inga',
+ 'No Database Drivers available!' => 'Inga databasdrivers tillgängliga',
+ 'No Dataset selected!' => 'Inget Dataset valt',
+ 'No Employees on file!' => 'Inga anställda lagrade!',
+ 'No Labor codes on file!' => 'Inen arbetarkod sparad!',
+ 'No Parts on file!' => 'Inga delar sparade!',
+ 'No email address for' => 'Ingen E-Postadress för',
+ 'No open Jobs!' => 'Inga pågående arbeten!',
+ 'No open Projects!' => 'Inga pågående projekt!',
+ 'No.' => 'Nr.',
+ 'Non-chargeable' => 'Icke debiterbar',
+ 'Non-taxable' => 'Momsfri',
+ 'Non-taxable Purchases' => 'Momsfria inköp',
+ 'Non-taxable Sales' => 'Momsfria försäljningar',
+ 'Non-tracking Items' => 'Icke-spårbara varor',
+ 'Notes' => 'Anmärkningar',
+ 'Nothing entered!' => 'Inget inskrivet',
+ 'Nothing open!' => 'Ingenting öppnat',
+ 'Nothing outstanding for ' => 'Ingenting som väntar för ',
+ 'Nothing selected!' => 'Ingenting valt',
+ 'Nothing to delete!' => 'Inget att radera',
+ 'Nothing to print!' => 'Inget att skriva',
+ 'Nothing to transfer!' => 'Inget att överföra',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Nummer',
+ 'Number Format' => 'Nummerformat',
+ 'Number missing in Row' => 'Nummer saknas i rad',
+ 'O' => 'O',
+ 'OH' => 'På lager',
+ 'Obsolete' => 'Utgången',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'On Hand' => 'I lager',
+ 'Open' => 'Aktuell',
+ 'Oracle Database Administration' => 'Oracle Databasadministration',
+ 'Order' => 'Order',
+ 'Order Date' => 'Orderdatum',
+ 'Order Date missing!' => 'Orderdatum saknas',
+ 'Order Entry' => 'Beställningar',
+ 'Order Number' => 'Ordernummer',
+ 'Order Number missing!' => 'Ordernummer saknas',
+ 'Order deleted!' => 'Order raderad',
+ 'Order generation failed!' => 'Skapande av order misslyckades!',
+ 'Order processed!' => 'Order behandlad',
+ 'Order saved!' => 'Order sparad',
+ 'Orders generated!' => 'Order skapad!',
+ 'Org.Number' => 'Organisationsnr',
+ 'Org.no' => 'Org.nr',
+ 'Org.nr' => 'Org.nr',
+ 'Orphaned' => 'Fristående',
+ 'Out of balance transaction!' => 'Transaktion ej i balans',
+ 'Out of balance!' => 'Ej i balans',
+ 'Outstanding' => 'Obetalda fakturor',
+ 'Overdue' => 'Överskriden',
+ 'PDF' => 'Förtryckt blankett',
+ 'PO Number' => 'Inköps order nr',
+ 'POS' => 'Försäljning',
+ 'POS Invoice' => 'Kreditförsäljning',
+ 'Packing List' => 'Packsedel',
+ 'Packing List Date missing!' => 'Packsedelsdatum saknas',
+ 'Packing List Number missing!' => 'Packsedelsnummer saknas',
+ 'Packing Lists' => 'Packsedlar',
+ 'Paid' => 'Betalt',
+ 'Part' => 'Artikel',
+ 'Part Number' => 'Artikel nr',
+ 'Partnumber' => 'Artikel nr',
+ 'Parts' => 'Artiklar',
+ 'Parts Inventory' => 'Artikellista',
+ 'Password' => 'Lösenord',
+ 'Password changed!' => 'Lösenord ändrat',
+ 'Password does not match!' => 'Felaktigt lösenord!',
+ 'Passwords do not match!' => 'Lösenord skiljer sig',
+ 'Payables' => 'Utbetalningar',
+ 'Payment' => 'Bocka av utförd betalning',
+ 'Payment date missing!' => 'Betalningsdatum saknas',
+ 'Payment posted!' => 'Betalning bokförd',
+ 'Payments' => 'Utbetalningar',
+ 'Payments posted!' => 'Betalningar bokförda',
+ 'Payroll Deduction' => 'Avdrag vid betalning',
+ 'Period' => 'Period',
+ 'Pg Database Administration' => 'Administration av databas PG',
+ 'PgPP Database Administration' => 'PgPP Database Administration',
+ 'Phone' => 'Telefon',
+ 'Pick List' => 'Plocklista',
+ 'Pick Lists' => 'Plocklistor',
+ 'Plusgiro' => 'Plusgiro',
+ 'Port' => 'Port',
+ 'Port missing!' => 'Port saknas',
+ 'Pos' => 'Kassa',
+ 'Post' => 'Bokför',
+ 'Post Giro Number' => 'Plusgiro nr',
+ 'Post Giro account' => 'Plusgiro nr',
+ 'Post as new' => 'Bokför som ny',
+ 'Posted!' => 'Bokförd!',
+ 'Postgiro' => 'Plusgiro',
+ 'Posting' => 'Bokför',
+ 'Posting failed!' => 'Bokföring misslyckats!',
+ 'Postscript' => 'Blankt papper',
+ 'Preferences' => 'Inställningar',
+ 'Preferences saved!' => 'Inställningar sparade',
+ 'Prepayment' => 'Förskottsbetald',
+ 'Price' => 'Pris',
+ 'Pricegroup' => 'Prisgrupp',
+ 'Pricegroup deleted!' => 'Prisgrupp borttagen',
+ 'Pricegroup missing!' => 'Prisgrupp saknas',
+ 'Pricegroup saved!' => 'Prisgrupp sparad',
+ 'Pricegroups' => 'Prisgrupper',
+ 'Pricelist' => 'Prislista',
+ 'Print' => 'Skriv ut',
+ 'Print and Post' => 'Skriv och bokför',
+ 'Print and Post as new' => 'Skriv ut och bokför som ny',
+ 'Print and Save' => 'Skriv och spara',
+ 'Print and Save as new' => 'Skriv ut och spara som ny',
+ 'Printed' => 'Utskriven',
+ 'Printer' => 'Skrivare',
+ 'Printing' => 'Skriver ut',
+ 'Printing ... ' => 'Skriver . . .',
+ 'Process Transactions' => 'Utför transaktion',
+ 'Production' => 'Produktion',
+ 'Profit Center' => 'Resultatenhet',
+ 'Project' => 'Projekt',
+ 'Project Description Translations' => 'Översättning av projekt beskrivning',
+ 'Project Name' => 'Projekt namn',
+ 'Project Number' => 'Projekt nr',
+ 'Project Number missing!' => 'Projektnummer saknas',
+ 'Project Transactions' => 'Projekt transaktioner',
+ 'Project deleted!' => 'Projekt raderat',
+ 'Project not on file!' => 'Projekt finns ej',
+ 'Project saved!' => 'Projekt sparat',
+ 'Project/Job Name' => 'Projekt/arbete namn',
+ 'Project/Job Number' => 'Projekt/arbete nr',
+ 'Projects' => 'Projekt',
+ 'Purchase Order' => 'Inköpsorder',
+ 'Purchase Order Number' => 'Inköpsorder nr',
+ 'Purchase Orders' => 'Inköpsordrar',
+ 'Qty' => 'Antal',
+ 'Quantity exceeds available units to stock!' => 'Kvantitet överskrider tillgängliga enheter i lager',
+ 'Quarter' => 'Kvartal',
+ 'Queue' => 'Kö',
+ 'Queued' => 'Köad',
+ 'Quotation' => 'Offert',
+ 'Quotation ' => 'Offert ',
+ 'Quotation Date' => 'Offert datum',
+ 'Quotation Date missing!' => 'Offert datum saknas',
+ 'Quotation Number' => 'Offert nummer',
+ 'Quotation Number missing!' => 'Offert nummer saknas',
+ 'Quotation deleted!' => 'Offert borttagen',
+ 'Quotations' => 'Offerter',
+ 'R' => 'Utförd',
+ 'RFQ' => 'Begäran om offert',
+ 'RFQ ' => 'Begäran om offert',
+ 'RFQ Number' => 'Begäran om offert nr',
+ 'RFQs' => 'Begäran om offert',
+ 'ROP' => 'Beställ vid',
+ 'Rate' => 'Ränta',
+ 'Rate missing!' => 'Ränta saknas',
+ 'Recd' => 'Mottagen',
+ 'Receipt' => 'Bocka av ink.betalning',
+ 'Receipt posted!' => 'Kvitto bokfört!',
+ 'Receipts' => 'Inbetalningar',
+ 'Receivables' => 'Inbetalningar',
+ 'Receive' => 'Ta emot',
+ 'Receive Merchandise' => 'Varumottagning',
+ 'Reconciliation' => 'In/ut betalningar',
+ 'Reconciliation Report' => 'Kontoanalys',
+ 'Record in' => 'Bokför på',
+ 'Recurring Transaction' => 'Återkommande transaktioner',
+ 'Recurring Transactions' => 'Återkommande transaktion',
+ 'Reference' => 'Referens',
+ 'Reference missing!' => 'Referens saknas',
+ 'Remaining' => 'Resterar',
+ 'Remove' => 'Ta bort',
+ 'Remove Audit trail up to' => 'Ta bort log med förändringskontroll fram till',
+ 'Remove Audit trails up to' => 'Ta bort log med förändringskontroll fram till',
+ 'Removed spoolfiles!' => 'Spool-filer borttagna',
+ 'Removing marked entries from queue ...' => 'Tar bort markerade poster från kön . . .',
+ 'Repeat' => 'Upprepa',
+ 'Report for' => 'Rapport för',
+ 'Reports' => 'Rapporter',
+ 'Req' => 'Best',
+ 'Request for Quotation' => 'Begäran om offert',
+ 'Request for Quotations' => 'Begäran om offerter',
+ 'Required by' => 'Beställt den',
+ 'Retained Earnings' => 'Realiserat överskott',
+ 'Role' => 'Tjänst',
+ 'S' => 'S',
+ 'SIC' => 'SNI-kod',
+ 'SIC deleted!' => 'SNI-kod borttagen',
+ 'SIC saved!' => 'SNI-kod sparad',
+ 'SKU' => 'Lagernr',
+ 'SSN' => 'Personnr',
+ 'Sale' => 'Försäljning',
+ 'Sales' => 'Försäljning',
+ 'Sales Invoice' => 'Kundfaktura',
+ 'Sales Invoice ' => 'Kundfaktura ',
+ 'Sales Invoice Number' => 'Kundfaktura nr',
+ 'Sales Invoice.' => 'Kundfaktura.',
+ 'Sales Invoice/AR Transaction Number' => 'Kundfaktura / Intäktsverifikat nr',
+ 'Sales Invoices' => 'Kundfakturor',
+ 'Sales Order' => 'Säljorder',
+ 'Sales Order Number' => 'Säljorder nr',
+ 'Sales Orders' => 'Säljordrar',
+ 'Sales Quotation Number' => 'Säljoffert nr',
+ 'Salesperson' => 'Försäljare',
+ 'Saturday' => 'Lördag',
+ 'Save' => 'Spara',
+ 'Save Pricelist' => 'Spara prislista',
+ 'Save Schedule' => 'Spara schemaläggning',
+ 'Save as new' => 'Spara som ny',
+ 'Save to File' => 'Spara till fil',
+ 'Saving' => 'Sparar',
+ 'Schedule' => 'Schemalägg',
+ 'Scheduled' => 'Schemalagd',
+ 'Screen' => 'Skärm',
+ 'Search' => 'Sök',
+ 'Select' => 'Välj',
+ 'Select Customer' => 'Välj kund',
+ 'Select Printer or Queue!' => 'Välj skrivare eller kö',
+ 'Select Vendor' => 'Välj leverantör',
+ 'Select a Printer!' => 'Välj skrivare',
+ 'Select a printer!' => 'Välj skrivare',
+ 'Select all' => 'Välj alla',
+ 'Select from one of the items below' => 'Välj en artikel nedan',
+ 'Select from one of the names below' => 'Välj ett av namnen nedan',
+ 'Select from one of the projects below' => 'Välj ett av projekten nedan',
+ 'Select items' => 'Välj vara',
+ 'Select payment' => 'Välj betalningssätt',
+ 'Select postscript or PDF!' => 'Välj Postscript eller PDF',
+ 'Select txt, postscript or PDF!' => 'Välj text, postsript eller PDF!',
+ 'Sell' => 'Sälj',
+ 'Sell Price' => 'Försäljningspris',
+ 'Send by E-Mail' => 'Skicka via E-Post',
+ 'Sending' => 'Skickar',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Serial No.' => 'Serie nr.',
+ 'Serial Number' => 'Serie nr.',
+ 'Service' => 'Tjänster',
+ 'Service Code' => 'Servicekod',
+ 'Service Code missing!' => 'Servicekod saknas',
+ 'Service Items' => 'Tjänsteartiklar',
+ 'Service/Labor Code' => 'Service/arbetarkod ',
+ 'Services' => 'Tjänster',
+ 'Session Timeout' => 'Sessionen avslutad pga tid',
+ 'Session expired!' => 'Sessionen avslutad',
+ 'Setup Templates' => 'Sätt upp mallar',
+ 'Ship' => 'Skicka',
+ 'Ship Merchandise' => 'Skicka varor',
+ 'Ship to' => 'Skicka till',
+ 'Ship via' => 'Skicka med',
+ 'Shipping' => 'Leveranser',
+ 'Shipping Address' => 'Mottagar adress',
+ 'Shipping Date' => 'Skickat datum',
+ 'Shipping Date missing!' => 'Leveransdatum saknas',
+ 'Shipping Point' => 'Skickad',
+ 'Short' => 'Kort',
+ 'Signature' => 'Signatur',
+ 'Source' => 'Källa',
+ 'Spoolfile' => 'Spoolfil',
+ 'Standard' => 'Standard',
+ 'Standard Industrial Codes' => 'Standard industrikoder',
+ 'Startdate' => 'Startdatum',
+ 'State' => 'Stat',
+ 'State/Province' => 'Stat/provins',
+ 'Statement' => 'Redovisning',
+ 'Statement Balance' => 'Verkligt saldo',
+ 'Statement sent to' => 'Redovisning skickad till',
+ 'Statements sent to printer!' => 'Redovisning skickade till skrivare',
+ 'Stock' => 'Lager',
+ 'Stock Assembly' => 'Lager produkter',
+ 'Stock Finished Goods' => 'Lagra färdiga varor',
+ 'Stores Card' => 'Butikskort',
+ 'Stores Card saved!' => 'Butikskort sparad',
+ 'Stores Cards' => 'Butikskort',
+ 'Stylesheet' => 'Stilmall',
+ 'Sub-contract GIFI' => 'SRU-kod underrubrik',
+ 'Subject' => 'Ämne',
+ 'Subtotal' => 'Delsummera',
+ 'Summary' => 'Summa',
+ 'Sunday' => 'Söndag',
+ 'Supervisor' => 'Ansvarig',
+ 'System' => 'System',
+ 'System Defaults' => 'Systeminställningar',
+ 'Tax' => 'Moms',
+ 'Tax Account' => 'Momskonto',
+ 'Tax Accounts' => 'Momskonton',
+ 'Tax Included' => 'Moms ingår',
+ 'Tax Number' => 'Momsredovisnings nr',
+ 'Tax Number / SSN' => 'Momsredovisningsnr / personnummer',
+ 'Tax collected' => 'Ingående Moms',
+ 'Tax paid' => 'Utgående Moms',
+ 'Taxable' => 'Momspliktigt',
+ 'Template saved!' => 'Mall sparad',
+ 'Templates' => 'Mallar',
+ 'Terms' => 'Netto',
+ 'Text' => 'Text',
+ 'Text Templates' => 'Text mallar',
+ 'The following Datasets are not in use and can be deleted' => 'Följande Dataset är inte i bruk och kan raderas',
+ 'The following Datasets need to be updated' => 'Följande Dataset behöver uppdateras',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Det här är en preliminär kontroll av existerande källor. Ingenting kommer att sparas eller raderas vid detta tillfälle',
+ 'Thursday' => 'Torsdag',
+ 'Till' => 'Till',
+ 'Time Card' => 'Tidkort',
+ 'Time Card deleted!' => 'Tidkort borttaget',
+ 'Time Card saved!' => 'Tidkort sparat',
+ 'Time Cards' => 'Tidkort',
+ 'Time In' => 'Tid in',
+ 'Time Out' => 'Tid ut',
+ 'Times' => 'Gånger',
+ 'To' => 'Till',
+ 'To Warehouse' => 'Till lager',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'För att lägga till en användare till en grupp, editera namnet, ändra login namnet och spara. En ny användare med samma variabler sparas då under det nya namnet.',
+ 'Top Level' => 'Toppnivå',
+ 'Total' => 'Total',
+ 'Tracking Items' => 'Spårbara varor',
+ 'Trade Discount' => 'Handelsrabatt',
+ 'Transaction' => 'Transaktion',
+ 'Transaction Date missing!' => 'Transaktionsdatum saknas',
+ 'Transaction Dates' => 'Överföringsdatum',
+ 'Transaction deleted!' => 'Transaktion raderad',
+ 'Transaction posted!' => 'Transaktion bokförd',
+ 'Transaction reversal enforced for all dates' => 'Ändringsverifikat krävs för alla datum',
+ 'Transaction reversal enforced up to' => 'Ändringsverifikat krävs fram till',
+ 'Transactions' => 'Samtliga',
+ 'Transfer' => 'Överför',
+ 'Transfer Inventory' => 'ÖVerför varor',
+ 'Transfer from' => 'Överför från',
+ 'Transfer to' => 'Överför till',
+ 'Translation' => 'Översättning',
+ 'Translation deleted!' => 'Översättning borttagen',
+ 'Translation not on file!' => 'Översättning finns inte',
+ 'Translations' => 'Översättningar',
+ 'Translations saved!' => 'Översättning sparad',
+ 'Trial Balance' => 'Saldo-beräkning',
+ 'Tuesday' => 'Tisdag',
+ 'Type of Business' => 'Typ av verksamhet',
+ 'Unit' => 'Enhet',
+ 'Unit Rate' => 'Kostnad/timme',
+ 'Unit of measure' => 'Måttenhet',
+ 'Unlock System' => 'Lås upp System',
+ 'Update' => 'Uppdatera',
+ 'Update Dataset' => 'Uppdatera dataset',
+ 'Updated' => 'Uppdaterad',
+ 'Upgrading to Version' => 'Uppgradera till version',
+ 'Use Templates' => 'Använd mallar',
+ 'User' => 'Användare',
+ 'User deleted!' => 'Användare raderad',
+ 'User saved!' => 'Användare sparad',
+ 'Valid until' => 'Giltig till',
+ 'Vendor' => 'Leverantör',
+ 'Vendor History' => 'Leverantörshistorik',
+ 'Vendor Invoice' => 'Kredit inköp',
+ 'Vendor Invoice ' => 'Leverantörsfaktura ',
+ 'Vendor Invoice Number' => 'Leverantörsfaktura nr',
+ 'Vendor Invoice.' => 'Leverantörsfaktura. ',
+ 'Vendor Invoice/AP Transaction Number' => 'Leverantörsfaktura / Utgiftsverifikat nr',
+ 'Vendor Invoices' => 'Leverantörsfakturor',
+ 'Vendor Number' => 'Leverantör nr',
+ 'Vendor deleted!' => 'Leverantör raderad',
+ 'Vendor missing!' => 'Leverantör saknas',
+ 'Vendor not on file!' => 'Leverantör finns ej',
+ 'Vendor saved!' => 'Leverantör sparad',
+ 'Vendors' => 'Leverantörer',
+ 'Version' => 'Version',
+ 'Warehouse' => 'Lager',
+ 'Warehouse deleted!' => 'Lager borttaget',
+ 'Warehouse saved!' => 'Lager sparat',
+ 'Warehouses' => 'Lager',
+ 'Warning!' => 'Varning!',
+ 'Wednesday' => 'Onsdag',
+ 'Week' => 'Vecka',
+ 'Week(s)' => 'Vecka(or)',
+ 'Weeks' => 'Veckor',
+ 'Weight' => 'Vikt',
+ 'Weight Unit' => 'Viktenhet',
+ 'What type of item is this?' => 'Vilken typ av artikel är detta?',
+ 'Work Order' => 'Arbetsorder',
+ 'Work Orders' => 'Arbetsordrar',
+ 'Work Phone' => 'Arbetstelefon',
+ 'Year' => 'År',
+ 'Year(s)' => 'År',
+ 'Yearend' => 'Årsavslut',
+ 'Yearend date missing!' => 'Datum för årsavslut saknas',
+ 'Yearend posted!' => 'Årsavslut genomfört',
+ 'Yearend posting failed!' => 'Årsavslut kunde ej genomföras',
+ 'Years' => 'År',
+ 'Yes' => 'Ja',
+ 'You are logged out' => 'Du är utloggad',
+ 'You are posting an existing transaction!' => 'Du bokför en redan bokförd transaktion',
+ 'You are printing and posting an existing transaction!' => 'Du skriver ut och bokför en redan bokförd transaktion',
+ 'You are printing and saving an existing order' => 'Du skriver ut och sparar en redan sparad order',
+ 'You are printing and saving an existing quotation' => 'Du skriver ut och sparar en redan sparad offert',
+ 'You are printing and saving an existing transaction!' => 'Du skriver ut och sparar en redan lagrad transaktion!',
+ 'You are saving an existing order' => 'Du sparar en redan sparad order',
+ 'You are saving an existing quotation' => 'Du sparar en redan sparad offert',
+ 'You are saving an existing transaction!' => 'Du sparar en redan lagrad transaktion!',
+ 'You did not enter a name!' => 'Du skrev inte in något namn',
+ 'You must enter a host and port for local and remote connections!' => 'Du måste ange en värd och en port för att göra en fjärrasnslutning',
+ 'Zip/Postal Code' => 'Postnr',
+ 'account cannot be set to any other type of account' => 'kontot kan ej ändras till någon annan typ av konto',
+ 'as at' => 'som vid',
+ 'days' => 'dagar',
+ 'does not exist' => 'finns inte',
+ 'done' => 'Färdigt',
+ 'ea' => 'st',
+ 'failed' => 'misslyckats',
+ 'for' => 'under',
+ 'for Period' => 'för perioden',
+ 'is already a member!' => 'är redan medlem!',
+ 'is not a member!' => 'är inte medlem!',
+ 'localhost' => 'localhost',
+ 'locked!' => 'Låst!',
+ 'partsgroup' => 'artikelgrupp',
+ 'posted!' => 'Bokförd!',
+ 'sent' => 'Skickad',
+ 'successfully created!' => 'skapades!',
+ 'successfully deleted!' => 'raderades!',
+ 'time(s)' => 'gång(er)',
+ 'unexpected error!' => 'oförberett fel!',
+ 'website' => 'websida',
+};
+
+1;
diff --git a/locale/se/am b/locale/se/am
new file mode 100755
index 00000000..b24490fe
--- /dev/null
+++ b/locale/se/am
@@ -0,0 +1,312 @@
+$self{texts} = {
+ 'AP' => 'Leverantörsfakturor',
+ 'AR' => 'Kundfakturor',
+ 'About' => 'Om',
+ 'Account' => 'Konto',
+ 'Account Number' => 'Kontonummer',
+ 'Account Number missing!' => 'Kontonummer saknas',
+ 'Account Type' => 'Kontotyp',
+ 'Account Type missing!' => 'Kontotyp saknas!',
+ 'Account deleted!' => 'Konto raderat!',
+ 'Account does not exist!' => 'Kontot finns ej!',
+ 'Account saved!' => 'Konto sparat!',
+ 'Accounting Menu' => 'Bokförings-meny',
+ 'Accrual' => 'Bokföringsmässig',
+ 'Activate Audit trail' => 'Aktivera ändringskontroll',
+ 'Add Account' => 'Nytt konto',
+ 'Add Business' => 'Lägg till verksamhet',
+ 'Add Department' => 'Ny avdelning',
+ 'Add GIFI' => 'Ny SRU-kod',
+ 'Add Language' => 'Lägg till språk',
+ 'Add SIC' => 'Ny sni-kod (industrikod)',
+ 'Add Warehouse' => 'Lägg till lager',
+ 'Address' => 'Adress',
+ 'Amount' => 'Belopp',
+ 'Asset' => 'Tillgång',
+ 'Audit Control' => 'Revisionskontroll',
+ 'Audit trail disabled' => 'Ändringskontroll avstängd',
+ 'Audit trail enabled' => 'Ändringskontroll påslagen',
+ 'Audit trail removed up to' => 'Log för ändrings-kontroll borttaget fram till ',
+ 'Backup sent to' => 'Säkerhetskopia har sänts till',
+ 'Bin List' => 'Lager lista',
+ 'Books are open' => 'Bokföringen är öppen för rättning',
+ 'Business Number' => 'Organisationsnummer',
+ 'Business deleted!' => 'Verksamhet borttaget',
+ 'Business saved!' => 'Verksamhet sparad',
+ 'COGS' => 'Inköpskostnader',
+ 'Cannot delete account!' => 'Kan inte radera konto',
+ 'Cannot delete default account!' => 'Kan inte radera standardkonto',
+ 'Cannot save account!' => 'Kan inte spara konto',
+ 'Cannot save defaults!' => 'Kan inte spara inställningar!',
+ 'Cannot save preferences!' => 'Kan inte spara preferenser',
+ 'Cannot set account for more than one of AR, AP or IC' => 'Måste välja om kontot används för leverantörsskulder, kundfordringar eller lager',
+ 'Cannot set multiple options for' => 'Kan inte ange flera val för',
+ 'Cash' => 'Betalningar',
+ 'Chart of Accounts' => 'Kontoplan',
+ 'Close Books up to' => 'Avsluta bokföring fram till och med',
+ 'Code' => 'Kod',
+ 'Code missing!' => 'Kod saknas',
+ 'Company' => 'Företag',
+ 'Confirm' => 'Bekräfta',
+ 'Confirm!' => 'Bekräfta!',
+ 'Continue' => 'Fortsätt',
+ 'Contra' => 'Avdrag',
+ 'Copy to COA' => 'Kopiera till kontoplanen',
+ 'Cost Center' => 'Kostnadsställe',
+ 'Credit' => 'Kredit',
+ 'Customer Number' => 'Kund nr',
+ 'Database Host' => 'Databasvärd',
+ 'Dataset' => 'Dataset',
+ 'Date Format' => 'Datumformat',
+ 'Day' => 'Dag',
+ 'Days' => 'Dagar',
+ 'Debit' => 'Debet',
+ 'Default Template' => 'Förvald mall',
+ 'Defaults saved!' => 'Inställningar sparade',
+ 'Delete' => 'Radera',
+ 'Delete Account' => 'Radera konto',
+ 'Deleting a language will also delete the templates for the language' => 'Tar man bort ett språk kommer även mallarna för språket tas bort',
+ 'Department deleted!' => 'Kst/res.enh. borttagen',
+ 'Department saved!' => 'Kst/res.enh. sparad',
+ 'Departments' => 'Kostn.ställen/res.enheter',
+ 'Description' => 'Beskrivning',
+ 'Description missing!' => 'Beskrivning saknas',
+ 'Discount' => 'Rabatt',
+ 'Dropdown Limit' => 'Brytpunkts gräns',
+ 'E-mail' => 'E-Post',
+ 'E-mail address missing!' => 'E-Postadress saknas',
+ 'Edit' => 'Redigera',
+ 'Edit Account' => 'Redigera konto',
+ 'Edit Business' => 'Redigera verksamhet',
+ 'Edit Department' => 'Redigera avdelning',
+ 'Edit GIFI' => 'Redigera SRU-koder',
+ 'Edit Language' => 'Redigera språk',
+ 'Edit Preferences for' => 'Redigera inställningar för',
+ 'Edit SIC' => 'Redigera sni-koder',
+ 'Edit Template' => 'Redigera utskriftsmall',
+ 'Edit Warehouse' => 'Redigera lager',
+ 'Employee Number' => 'Anställd nr',
+ 'Ends' => 'Slutdatum',
+ 'Enforce transaction reversal for all dates' => 'Kräv rättningsverifikat för alla datum',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Ange upp till 3 bokstäver (SEK:EUR:USD) för egen och utländsk valuta',
+ 'Equity' => 'Eget kapital',
+ 'Every' => 'Varje',
+ 'Expense' => 'Utgift',
+ 'Expense/Asset' => 'Utgift/Tillgång',
+ 'Fax' => 'Fax',
+ 'Foreign Exchange Gain' => 'Växelkurs vinst',
+ 'Foreign Exchange Loss' => 'Växelkurs förlust',
+ 'GIFI' => 'SRU-kod',
+ 'GIFI deleted!' => 'SRU-kod raderad',
+ 'GIFI missing!' => 'SRU-kod saknas',
+ 'GIFI saved!' => 'SRU-kod sparad',
+ 'GL' => 'Huvudbok',
+ 'GL Reference Number' => 'Huvudboks verifikat nr',
+ 'GL Transaction' => 'Verifikat',
+ 'Heading' => 'Överskrift',
+ 'ID' => 'ID',
+ 'Include in drop-down menus' => 'Inkludera i rullgardinsmenyer',
+ 'Income' => 'Vinst',
+ 'Inventory' => 'Lager',
+ 'Invoice' => 'Faktura',
+ 'Is this a summary account to record' => 'Är detta ett samlingskonto för att lagra',
+ 'Language' => 'Språk',
+ 'Language deleted!' => 'Språk borttaget',
+ 'Language saved!' => 'Språk sparat',
+ 'Languages' => 'Språk',
+ 'Last Numbers & Default Accounts' => 'Senaste nummer och standardkonto',
+ 'Liability' => 'Skulder',
+ 'Licensed to' => 'Licensierad till',
+ 'Link' => 'Referens',
+ 'Menu Width' => 'Meny vidd',
+ 'Method' => 'Metod',
+ 'Month' => 'Månad',
+ 'Months' => 'Månader',
+ 'Name' => 'Namn',
+ 'Next' => 'Nästa',
+ 'Next Number' => 'Nästa nummer',
+ 'No' => 'Inga',
+ 'No email address for' => 'Ingen E-Postadress för',
+ 'Non-tracking Items' => 'Icke-spårbara varor',
+ 'Number' => 'Nummer',
+ 'Number Format' => 'Nummerformat',
+ 'PDF' => 'Förtryckt blankett',
+ 'Packing List' => 'Packsedel',
+ 'Part Number' => 'Artikel nr',
+ 'Password' => 'Lösenord',
+ 'Password does not match!' => 'Felaktigt lösenord!',
+ 'Payables' => 'Utbetalningar',
+ 'Payment' => 'Betalning',
+ 'Phone' => 'Telefon',
+ 'Pick List' => 'Plocklista',
+ 'Posting' => 'Bokför',
+ 'Postscript' => 'Blankt papper',
+ 'Preferences saved!' => 'Inställningar sparade',
+ 'Print' => 'Skriv ut',
+ 'Printer' => 'Skrivare',
+ 'Printing' => 'Skriver ut',
+ 'Process Transactions' => 'Utför transaktion',
+ 'Profit Center' => 'Resultatenhet',
+ 'Purchase Order' => 'Inköpsorder',
+ 'Purchase Order Number' => 'Inköpsorder nr',
+ 'Purchase Orders' => 'Inköpsordrar',
+ 'RFQ Number' => 'Begäran om offert nr',
+ 'Rate' => 'Ränta',
+ 'Receivables' => 'Inbetalningar',
+ 'Recurring Transactions' => 'Återkommande transaktion',
+ 'Reference' => 'Referens',
+ 'Remove Audit trail up to' => 'Ta bort log med förändringskontroll fram till',
+ 'Retained Earnings' => 'Realiserat överskott',
+ 'SIC deleted!' => 'SNI-kod borttagen',
+ 'SIC saved!' => 'SNI-kod sparad',
+ 'Sales Invoice' => 'Kundfaktura',
+ 'Sales Invoice/AR Transaction Number' => 'Kundfaktura / Intäktsverifikat nr',
+ 'Sales Order' => 'Säljorder',
+ 'Sales Order Number' => 'Säljorder nr',
+ 'Sales Orders' => 'Säljordrar',
+ 'Sales Quotation Number' => 'Säljoffert nr',
+ 'Save' => 'Spara',
+ 'Save as new' => 'Spara som ny',
+ 'Saving' => 'Sparar',
+ 'Sending' => 'Skickar',
+ 'Session Timeout' => 'Sessionen avslutad pga tid',
+ 'Signature' => 'Signatur',
+ 'Standard Industrial Codes' => 'Standard industrikoder (sni)',
+ 'Stylesheet' => 'Stilmall',
+ 'System Defaults' => 'Systeminställningar',
+ 'Tax' => 'Moms',
+ 'Template saved!' => 'Mall sparad',
+ 'Times' => 'Gånger',
+ 'Tracking Items' => 'Spårbara varor',
+ 'Transaction' => 'Transaktion',
+ 'Transaction reversal enforced for all dates' => 'Ändringsverifikat krävs för alla datum',
+ 'Transaction reversal enforced up to' => 'Ändringsverifikat krävs fram till',
+ 'Type of Business' => 'Typ av verksamhet',
+ 'Update' => 'Uppdatera',
+ 'User' => 'Användare',
+ 'Vendor Invoice' => 'Leverantörsfaktura',
+ 'Vendor Invoice/AP Transaction Number' => 'Leverantörsfaktura / Utgiftsverifikat nr',
+ 'Vendor Number' => 'Leverantör nr',
+ 'Version' => 'Version',
+ 'Warehouse deleted!' => 'Lager borttaget',
+ 'Warehouse saved!' => 'Lager sparat',
+ 'Warehouses' => 'Lager',
+ 'Week' => 'Vecka',
+ 'Weeks' => 'Veckor',
+ 'Weight Unit' => 'Viktenhet',
+ 'Work Order' => 'Arbetsorder',
+ 'Year' => 'År',
+ 'Yearend' => 'Årsavslut',
+ 'Yearend date missing!' => 'Datum för årsavslut saknas',
+ 'Yearend posted!' => 'Årsavslut genomfört',
+ 'Yearend posting failed!' => 'Årsavslut kunde ej genomföras',
+ 'Years' => 'År',
+ 'Yes' => 'Ja',
+ 'account cannot be set to any other type of account' => 'kontot kan ej ändras till någon annan typ av konto',
+ 'done' => 'Färdigt',
+ 'failed' => 'misslyckats',
+ 'localhost' => 'localhost',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'nytt_konto' => 'add_account',
+ 'lägg_till_verksamhet' => 'add_business',
+ 'ny_avdelning' => 'add_department',
+ 'lägg_till_språk' => 'add_language',
+ 'ny_sni_kod_(industrikod)' => 'add_sic',
+ 'lägg_till_lager' => 'add_warehouse',
+ 'fortsätt' => 'continue',
+ 'kopiera_till_kontoplanen' => 'copy_to_coa',
+ 'radera' => 'delete',
+ 'redigera' => 'edit',
+ 'redigera_konto' => 'edit_account',
+ 'utför_transaktion' => 'process_transactions',
+ 'spara' => 'save',
+ 'spara_som_ny' => 'save_as_new',
+ 'uppdatera' => 'update',
+};
+
+1;
+
diff --git a/locale/se/ap b/locale/se/ap
new file mode 100755
index 00000000..f343c4f5
--- /dev/null
+++ b/locale/se/ap
@@ -0,0 +1,240 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Leverantörsskulder',
+ 'AP Transaction' => 'Betald skuld',
+ 'AP Transactions' => 'Leverantörsfakturor',
+ 'AR Outstanding' => 'Kundfordringar',
+ 'AR Transaction' => 'Betald Fodran',
+ 'AR Transactions' => 'Kundfakturor',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Bokförings-meny',
+ 'Add AP Transaction' => 'Lägg till utgift',
+ 'Add AR Transaction' => 'Lägg till intäkt',
+ 'Address' => 'Adress',
+ 'Amount' => 'Belopp',
+ 'Amount Due' => 'Förfallet belopp',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Transaction' => 'Är du säker på att du vill radera Transaktionen',
+ 'Aug' => 'Aug',
+ 'August' => 'Augusti',
+ 'Bcc' => 'Dold kopia till',
+ 'Cannot delete transaction!' => 'Kan inte radera händelse',
+ 'Cannot post payment for a closed period!' => 'Kan inte bokföra en betalning för en stängd period',
+ 'Cannot post transaction for a closed period!' => 'Kan inte bokföra under en stängd period',
+ 'Cannot post transaction!' => 'Kan inte bokföra transaktion',
+ 'Cc' => 'Kopia',
+ 'Check' => 'Kontroll',
+ 'Closed' => 'Avslutad',
+ 'Confirm!' => 'Bekräfta!',
+ 'Continue' => 'Fortsätt',
+ 'Credit' => 'Kredit',
+ 'Credit Limit' => 'Kreditgräns',
+ 'Curr' => 'Valuta',
+ 'Currency' => 'Valuta',
+ 'Current' => 'Nuvarande',
+ 'Customer' => 'Kund',
+ 'Customer missing!' => 'Kund saknas',
+ 'Customer not on file!' => 'Kund finns ej',
+ 'Date' => 'Datum',
+ 'Date Paid' => 'Betalningsdatum',
+ 'Day(s)' => 'Dag(ar',
+ 'Debit' => 'Debet',
+ 'Dec' => 'Dec',
+ 'December' => 'December',
+ 'Delete' => 'Radera',
+ 'Delete Schedule' => 'Ta bort schemaläggning',
+ 'Department' => 'Kostnadsställe/resultatenhet',
+ 'Description' => 'Beskrivning',
+ 'Detail' => 'Detalj',
+ 'Due Date' => 'Förfallodatum',
+ 'Due Date missing!' => 'Förfallodatum saknas',
+ 'E-mail' => 'E-Post',
+ 'E-mail message' => 'E-post meddelande',
+ 'Edit AP Transaction' => 'Redigera utgifter',
+ 'Edit AR Transaction' => 'Redigera intäkter',
+ 'Employee' => 'Anställd',
+ 'Every' => 'Varje',
+ 'Exch' => 'Vxl',
+ 'Exchange Rate' => 'Växlingskurs',
+ 'Exchange rate for payment missing!' => 'Växlingskurs för saknad betalning',
+ 'Exchange rate missing!' => 'Växelkurs saknas',
+ 'Feb' => 'Feb',
+ 'February' => 'Februari',
+ 'For' => 'under',
+ 'From' => 'Från',
+ 'ID' => 'ID',
+ 'Include Payment' => 'Inkudera betalning',
+ 'Include in Report' => 'Inkludera i rapport',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date' => 'Fakturadatum',
+ 'Invoice Date missing!' => 'Fakturadatum saknas',
+ 'Invoice Number' => 'Fakturanummer',
+ 'Jan' => 'Jan',
+ 'January' => 'Januari',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Manager' => 'Direktör',
+ 'Mar' => 'Mar',
+ 'March' => 'Mars',
+ 'May' => 'Maj',
+ 'May ' => 'Maj',
+ 'Memo' => 'Anteckning',
+ 'Message' => 'Meddelande',
+ 'Month' => 'Månad',
+ 'Month(s)' => 'Månad(er)',
+ 'Next Date' => 'Nästa datum',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Anmärkningar',
+ 'Nothing to print!' => 'Inget att skriva',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Nummer',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Open' => 'Aktuell',
+ 'Order' => 'Order',
+ 'Order Number' => 'Ordernummer',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Inköps order nr',
+ 'Paid' => 'Betalt',
+ 'Payment date missing!' => 'Betalningsdatum saknas',
+ 'Payments' => 'Betalningar',
+ 'Period' => 'Period',
+ 'Post' => 'Bokför',
+ 'Post as new' => 'Bokför som ny',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Skriv ut',
+ 'Print and Post' => 'Skriv och bokför',
+ 'Print and Post as new' => 'Skriv ut och bokför som ny',
+ 'Printed' => 'Utskriven',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Projekt finns ej',
+ 'Quarter' => 'Kvartal',
+ 'Receipt' => 'Kvitto',
+ 'Recurring Transaction' => 'Återkommande transaktioner',
+ 'Reference' => 'Referens',
+ 'Remaining' => 'Resterar',
+ 'Repeat' => 'Upprepa',
+ 'Sales Invoice.' => 'Kundfaktura.',
+ 'Salesperson' => 'Försäljare',
+ 'Save Schedule' => 'Spara schemaläggning',
+ 'Schedule' => 'Schemalägg',
+ 'Scheduled' => 'Schemalagd',
+ 'Screen' => 'Skärm',
+ 'Select a Printer!' => 'Välj skrivare',
+ 'Select from one of the names below' => 'Välj ett av namnen nedan',
+ 'Select from one of the projects below' => 'Välj ett av projekten nedan',
+ 'Select payment' => 'Välj betalningssätt',
+ 'Select postscript or PDF!' => 'Välj Postscript eller PDF',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Ship to' => 'Skicka till',
+ 'Ship via' => 'Skicka med',
+ 'Shipping Point' => 'Skickad',
+ 'Source' => 'Källa',
+ 'Startdate' => 'Startdatum',
+ 'Subject' => 'Ämne',
+ 'Subtotal' => 'Delsummera',
+ 'Summary' => 'Summa',
+ 'Tax' => 'Moms',
+ 'Tax Included' => 'Moms ingår',
+ 'Till' => 'Till',
+ 'To' => 'Till',
+ 'Total' => 'Total',
+ 'Transaction' => 'Transaktion',
+ 'Transaction deleted!' => 'Transaktion raderad',
+ 'Transaction posted!' => 'Transaktion bokförd',
+ 'Update' => 'Uppdatera',
+ 'Vendor' => 'Leverantör',
+ 'Vendor Invoice.' => 'Leverantörsfaktura. ',
+ 'Vendor missing!' => 'Leverantör saknas',
+ 'Vendor not on file!' => 'Leverantör finns ej',
+ 'Warning!' => 'Varning!',
+ 'Week(s)' => 'Vecka(or)',
+ 'Year' => 'År',
+ 'Year(s)' => 'År',
+ 'Yes' => 'Ja',
+ 'You are posting an existing transaction!' => 'Du bokför en redan bokförd transaktion',
+ 'You are printing and posting an existing transaction!' => 'Du skriver ut och bokför en redan bokförd transaktion',
+ 'You are printing and saving an existing order' => 'Du skriver ut och sparar en redan sparad order',
+ 'You are printing and saving an existing quotation' => 'Du skriver ut och sparar en redan sparad offert',
+ 'You are saving an existing order' => 'Du sparar en redan sparad order',
+ 'You are saving an existing quotation' => 'Du sparar en redan sparad offert',
+ 'for' => 'under',
+ 'sent' => 'Skickad',
+ 'time(s)' => 'gång(er)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'betald_skuld' => 'ap_transaction',
+ 'betald_fodran' => 'ar_transaction',
+ 'fortsätt' => 'continue',
+ 'radera' => 'delete',
+ 'ta_bort_schemaläggning' => 'delete_schedule',
+ 'bokför' => 'post',
+ 'bokför_som_ny' => 'post_as_new',
+ 'skriv_ut' => 'print',
+ 'skriv_och_bokför' => 'print_and_post',
+ 'skriv_ut_och_bokför_som_ny' => 'print_and_post_as_new',
+ 'kundfaktura_' => 'sales_invoice_',
+ 'spara_schemaläggning' => 'save_schedule',
+ 'schemalägg' => 'schedule',
+ 'skicka_till' => 'ship_to',
+ 'uppdatera' => 'update',
+ 'leverantörsfaktura._' => 'vendor_invoice_',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/se/ar b/locale/se/ar
new file mode 100755
index 00000000..f343c4f5
--- /dev/null
+++ b/locale/se/ar
@@ -0,0 +1,240 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Leverantörsskulder',
+ 'AP Transaction' => 'Betald skuld',
+ 'AP Transactions' => 'Leverantörsfakturor',
+ 'AR Outstanding' => 'Kundfordringar',
+ 'AR Transaction' => 'Betald Fodran',
+ 'AR Transactions' => 'Kundfakturor',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Bokförings-meny',
+ 'Add AP Transaction' => 'Lägg till utgift',
+ 'Add AR Transaction' => 'Lägg till intäkt',
+ 'Address' => 'Adress',
+ 'Amount' => 'Belopp',
+ 'Amount Due' => 'Förfallet belopp',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Transaction' => 'Är du säker på att du vill radera Transaktionen',
+ 'Aug' => 'Aug',
+ 'August' => 'Augusti',
+ 'Bcc' => 'Dold kopia till',
+ 'Cannot delete transaction!' => 'Kan inte radera händelse',
+ 'Cannot post payment for a closed period!' => 'Kan inte bokföra en betalning för en stängd period',
+ 'Cannot post transaction for a closed period!' => 'Kan inte bokföra under en stängd period',
+ 'Cannot post transaction!' => 'Kan inte bokföra transaktion',
+ 'Cc' => 'Kopia',
+ 'Check' => 'Kontroll',
+ 'Closed' => 'Avslutad',
+ 'Confirm!' => 'Bekräfta!',
+ 'Continue' => 'Fortsätt',
+ 'Credit' => 'Kredit',
+ 'Credit Limit' => 'Kreditgräns',
+ 'Curr' => 'Valuta',
+ 'Currency' => 'Valuta',
+ 'Current' => 'Nuvarande',
+ 'Customer' => 'Kund',
+ 'Customer missing!' => 'Kund saknas',
+ 'Customer not on file!' => 'Kund finns ej',
+ 'Date' => 'Datum',
+ 'Date Paid' => 'Betalningsdatum',
+ 'Day(s)' => 'Dag(ar',
+ 'Debit' => 'Debet',
+ 'Dec' => 'Dec',
+ 'December' => 'December',
+ 'Delete' => 'Radera',
+ 'Delete Schedule' => 'Ta bort schemaläggning',
+ 'Department' => 'Kostnadsställe/resultatenhet',
+ 'Description' => 'Beskrivning',
+ 'Detail' => 'Detalj',
+ 'Due Date' => 'Förfallodatum',
+ 'Due Date missing!' => 'Förfallodatum saknas',
+ 'E-mail' => 'E-Post',
+ 'E-mail message' => 'E-post meddelande',
+ 'Edit AP Transaction' => 'Redigera utgifter',
+ 'Edit AR Transaction' => 'Redigera intäkter',
+ 'Employee' => 'Anställd',
+ 'Every' => 'Varje',
+ 'Exch' => 'Vxl',
+ 'Exchange Rate' => 'Växlingskurs',
+ 'Exchange rate for payment missing!' => 'Växlingskurs för saknad betalning',
+ 'Exchange rate missing!' => 'Växelkurs saknas',
+ 'Feb' => 'Feb',
+ 'February' => 'Februari',
+ 'For' => 'under',
+ 'From' => 'Från',
+ 'ID' => 'ID',
+ 'Include Payment' => 'Inkudera betalning',
+ 'Include in Report' => 'Inkludera i rapport',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date' => 'Fakturadatum',
+ 'Invoice Date missing!' => 'Fakturadatum saknas',
+ 'Invoice Number' => 'Fakturanummer',
+ 'Jan' => 'Jan',
+ 'January' => 'Januari',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Manager' => 'Direktör',
+ 'Mar' => 'Mar',
+ 'March' => 'Mars',
+ 'May' => 'Maj',
+ 'May ' => 'Maj',
+ 'Memo' => 'Anteckning',
+ 'Message' => 'Meddelande',
+ 'Month' => 'Månad',
+ 'Month(s)' => 'Månad(er)',
+ 'Next Date' => 'Nästa datum',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Anmärkningar',
+ 'Nothing to print!' => 'Inget att skriva',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Nummer',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Open' => 'Aktuell',
+ 'Order' => 'Order',
+ 'Order Number' => 'Ordernummer',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Inköps order nr',
+ 'Paid' => 'Betalt',
+ 'Payment date missing!' => 'Betalningsdatum saknas',
+ 'Payments' => 'Betalningar',
+ 'Period' => 'Period',
+ 'Post' => 'Bokför',
+ 'Post as new' => 'Bokför som ny',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Skriv ut',
+ 'Print and Post' => 'Skriv och bokför',
+ 'Print and Post as new' => 'Skriv ut och bokför som ny',
+ 'Printed' => 'Utskriven',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Projekt finns ej',
+ 'Quarter' => 'Kvartal',
+ 'Receipt' => 'Kvitto',
+ 'Recurring Transaction' => 'Återkommande transaktioner',
+ 'Reference' => 'Referens',
+ 'Remaining' => 'Resterar',
+ 'Repeat' => 'Upprepa',
+ 'Sales Invoice.' => 'Kundfaktura.',
+ 'Salesperson' => 'Försäljare',
+ 'Save Schedule' => 'Spara schemaläggning',
+ 'Schedule' => 'Schemalägg',
+ 'Scheduled' => 'Schemalagd',
+ 'Screen' => 'Skärm',
+ 'Select a Printer!' => 'Välj skrivare',
+ 'Select from one of the names below' => 'Välj ett av namnen nedan',
+ 'Select from one of the projects below' => 'Välj ett av projekten nedan',
+ 'Select payment' => 'Välj betalningssätt',
+ 'Select postscript or PDF!' => 'Välj Postscript eller PDF',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Ship to' => 'Skicka till',
+ 'Ship via' => 'Skicka med',
+ 'Shipping Point' => 'Skickad',
+ 'Source' => 'Källa',
+ 'Startdate' => 'Startdatum',
+ 'Subject' => 'Ämne',
+ 'Subtotal' => 'Delsummera',
+ 'Summary' => 'Summa',
+ 'Tax' => 'Moms',
+ 'Tax Included' => 'Moms ingår',
+ 'Till' => 'Till',
+ 'To' => 'Till',
+ 'Total' => 'Total',
+ 'Transaction' => 'Transaktion',
+ 'Transaction deleted!' => 'Transaktion raderad',
+ 'Transaction posted!' => 'Transaktion bokförd',
+ 'Update' => 'Uppdatera',
+ 'Vendor' => 'Leverantör',
+ 'Vendor Invoice.' => 'Leverantörsfaktura. ',
+ 'Vendor missing!' => 'Leverantör saknas',
+ 'Vendor not on file!' => 'Leverantör finns ej',
+ 'Warning!' => 'Varning!',
+ 'Week(s)' => 'Vecka(or)',
+ 'Year' => 'År',
+ 'Year(s)' => 'År',
+ 'Yes' => 'Ja',
+ 'You are posting an existing transaction!' => 'Du bokför en redan bokförd transaktion',
+ 'You are printing and posting an existing transaction!' => 'Du skriver ut och bokför en redan bokförd transaktion',
+ 'You are printing and saving an existing order' => 'Du skriver ut och sparar en redan sparad order',
+ 'You are printing and saving an existing quotation' => 'Du skriver ut och sparar en redan sparad offert',
+ 'You are saving an existing order' => 'Du sparar en redan sparad order',
+ 'You are saving an existing quotation' => 'Du sparar en redan sparad offert',
+ 'for' => 'under',
+ 'sent' => 'Skickad',
+ 'time(s)' => 'gång(er)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'betald_skuld' => 'ap_transaction',
+ 'betald_fodran' => 'ar_transaction',
+ 'fortsätt' => 'continue',
+ 'radera' => 'delete',
+ 'ta_bort_schemaläggning' => 'delete_schedule',
+ 'bokför' => 'post',
+ 'bokför_som_ny' => 'post_as_new',
+ 'skriv_ut' => 'print',
+ 'skriv_och_bokför' => 'print_and_post',
+ 'skriv_ut_och_bokför_som_ny' => 'print_and_post_as_new',
+ 'kundfaktura_' => 'sales_invoice_',
+ 'spara_schemaläggning' => 'save_schedule',
+ 'schemalägg' => 'schedule',
+ 'skicka_till' => 'ship_to',
+ 'uppdatera' => 'update',
+ 'leverantörsfaktura._' => 'vendor_invoice_',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/se/arap b/locale/se/arap
new file mode 100755
index 00000000..83b0ac44
--- /dev/null
+++ b/locale/se/arap
@@ -0,0 +1,74 @@
+$self{texts} = {
+ 'Address' => 'Adress',
+ 'Bcc' => 'Dold kopia',
+ 'Cc' => 'Kopia',
+ 'Continue' => 'Fortsätt',
+ 'Customer not on file!' => 'Kund finns ej',
+ 'Date' => 'Datum',
+ 'Day(s)' => 'Dag(ar',
+ 'Delete Schedule' => 'Ta bort schemaläggning',
+ 'Description' => 'Beskrivning',
+ 'E-mail' => 'E-Post',
+ 'E-mail message' => 'E-post meddelande',
+ 'Every' => 'Varje',
+ 'For' => 'under',
+ 'Include Payment' => 'Inkludera betalning',
+ 'Message' => 'Meddelande',
+ 'Month(s)' => 'Månad(er)',
+ 'Next Date' => 'Nästa datum',
+ 'Number' => 'Nummer',
+ 'Print' => 'Skriv ut',
+ 'Project not on file!' => 'Projekt finns ej',
+ 'Recurring Transaction' => 'Återkommande transaktioner',
+ 'Reference' => 'Referens',
+ 'Repeat' => 'Upprepa',
+ 'Save Schedule' => 'Spara schemaläggning',
+ 'Select from one of the names below' => 'Välj ett av namnen nedan',
+ 'Select from one of the projects below' => 'Välj ett av projekten nedan',
+ 'Startdate' => 'Startdatum',
+ 'Subject' => 'Ämne',
+ 'To' => 'Till',
+ 'Vendor not on file!' => 'Leverantör finns ej',
+ 'Warning!' => 'Varning!',
+ 'Week(s)' => 'Vecka(or)',
+ 'Year(s)' => 'År',
+ 'You are posting an existing transaction!' => 'Du bokför en redan bokförd transaktion',
+ 'You are printing and posting an existing transaction!' => 'Du skriver ut och bokför en redan bokförd transaktion',
+ 'You are printing and saving an existing order' => 'Du skriver ut och sparar en redan sparad order',
+ 'You are printing and saving an existing quotation' => 'Du skriver ut och sparar en redan sparad offert',
+ 'You are saving an existing order' => 'Du sparar en redan sparad order',
+ 'You are saving an existing quotation' => 'Du sparar en redan sparad offert',
+ 'for' => 'under',
+ 'sent' => 'Skickad',
+ 'time(s)' => 'gång(er)',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'fortsätt' => 'continue',
+ 'ta_bort_schemaläggning' => 'delete_schedule',
+ 'spara_schemaläggning' => 'save_schedule',
+};
+
+1;
+
diff --git a/locale/se/arapprn b/locale/se/arapprn
new file mode 100755
index 00000000..aa8ccbb2
--- /dev/null
+++ b/locale/se/arapprn
@@ -0,0 +1,34 @@
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Amount' => 'Belopp',
+ 'Continue' => 'Fortsätt',
+ 'Date' => 'Datum',
+ 'Memo' => 'Anteckning',
+ 'Nothing to print!' => 'Inget att skriva',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'Postscript',
+ 'Printed' => 'Utskriven',
+ 'Scheduled' => 'Schemalagd',
+ 'Screen' => 'Skärm',
+ 'Select a Printer!' => 'Välj skrivare',
+ 'Select payment' => 'Välj betalningssätt',
+ 'Select postscript or PDF!' => 'Välj Postscript eller PDF',
+ 'Source' => 'Källa',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'fortsätt' => 'continue',
+};
+
+1;
+
diff --git a/locale/se/bp b/locale/se/bp
new file mode 100755
index 00000000..61f400fe
--- /dev/null
+++ b/locale/se/bp
@@ -0,0 +1,69 @@
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Bokförings-meny',
+ 'Are you sure you want to remove the marked entries from the queue?' => 'Är du säker på att du vill radera markerade poster?',
+ 'Bin Lists' => 'Lager listor',
+ 'Cannot remove files!' => 'Kan inte ta bort filer!',
+ 'Confirm!' => 'Bekräfta!',
+ 'Continue' => 'Fortsätt',
+ 'Current' => 'Nuvarande',
+ 'Customer' => 'Kund',
+ 'Date' => 'Datum',
+ 'Employee' => 'Anställd',
+ 'From' => 'Från',
+ 'ID' => 'ID',
+ 'Invoice' => 'Faktura',
+ 'Invoice Number' => 'Fakturanummer',
+ 'Marked entries printed!' => 'Markerade poster utskrivna!',
+ 'Month' => 'Månad',
+ 'Order' => 'Order',
+ 'Order Number' => 'Ordernummer',
+ 'Packing Lists' => 'Packsedlar',
+ 'Period' => 'Period',
+ 'Pick Lists' => 'Plocklistor',
+ 'Print' => 'Skriv ut',
+ 'Printing' => 'Skriver ut',
+ 'Purchase Orders' => 'Inköpsordrar',
+ 'Quarter' => 'Kvartal',
+ 'Quotation' => 'Offert',
+ 'Quotation Number' => 'Offert nummer',
+ 'Quotations' => 'Offerter',
+ 'RFQs' => 'Begäran om offert',
+ 'Remove' => 'Ta bort',
+ 'Removed spoolfiles!' => 'Spool-filer borttagna',
+ 'Removing marked entries from queue ...' => 'Tar bort markerade poster från kön . . .',
+ 'Sales Invoices' => 'Kundfakturor',
+ 'Sales Orders' => 'Säljordrar',
+ 'Select all' => 'Välj alla',
+ 'Spoolfile' => 'Spoolfil',
+ 'Time Cards' => 'Tidkort',
+ 'To' => 'Till',
+ 'Vendor' => 'Leverantör',
+ 'Work Orders' => 'Arbetsordrar',
+ 'Year' => 'År',
+ 'Yes' => 'Ja',
+ 'done' => 'Färdigt',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'fortsätt' => 'continue',
+ 'skriv_ut' => 'print',
+ 'ta_bort' => 'remove',
+ 'välj_alla' => 'select_all',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/se/ca b/locale/se/ca
new file mode 100755
index 00000000..47c66afd
--- /dev/null
+++ b/locale/se/ca
@@ -0,0 +1,60 @@
+$self{texts} = {
+ 'AR/AP' => 'Intäkter/utgifter',
+ 'Account' => 'Konto',
+ 'Apr' => 'apr',
+ 'April' => 'april',
+ 'Aug' => 'aug',
+ 'August' => 'augusti',
+ 'Balance' => 'Balans',
+ 'Chart of Accounts' => 'Kontoplan',
+ 'Credit' => 'Kredit',
+ 'Current' => 'Nuvarande',
+ 'Date' => 'Datum',
+ 'Debit' => 'Debet',
+ 'Dec' => 'dec',
+ 'December' => 'december',
+ 'Department' => 'Avdelning',
+ 'Description' => 'Beskrivning',
+ 'Feb' => 'Feb',
+ 'February' => 'Februari',
+ 'From' => 'Från',
+ 'GIFI' => 'SRU-kod',
+ 'Include in Report' => 'Inkludera i rapport',
+ 'Jan' => 'Jan',
+ 'January' => 'Januari',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'List Transactions' => 'Lista transaktioner',
+ 'Mar' => 'Mar',
+ 'March' => 'Mars',
+ 'May' => 'Maj',
+ 'May ' => 'Maj',
+ 'Month' => 'Månad',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Period' => 'Period',
+ 'Project Number' => 'Projekt nr',
+ 'Quarter' => 'Kvartal',
+ 'R' => 'R',
+ 'Reference' => 'Referens',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'Till',
+ 'Year' => 'År',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'lista_transaktioner' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/se/cp b/locale/se/cp
new file mode 100755
index 00000000..5cb7d353
--- /dev/null
+++ b/locale/se/cp
@@ -0,0 +1,149 @@
+$self{texts} = {
+ 'AP' => 'Leverantörsfakturor',
+ 'AR' => 'Kundfakturor',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Bokförings-meny',
+ 'Address' => 'Adress',
+ 'All' => 'Alla',
+ 'Amount' => 'Belopp',
+ 'Amount Due' => 'Förfallet belopp',
+ 'Bcc' => 'Dold kopia till',
+ 'Cannot post Payment!' => 'Kan inte bokföra betalning',
+ 'Cannot post Receipt!' => 'Kan inte bokföra kvitto!',
+ 'Cannot post payment for a closed period!' => 'Kan inte bokföra en betalning för en stängd period',
+ 'Cc' => 'Kopia',
+ 'Continue' => 'Fortsätt',
+ 'Currency' => 'Valuta',
+ 'Customer' => 'Kund',
+ 'Customer not on file!' => 'Kund finns ej',
+ 'Date' => 'Datum',
+ 'Date missing!' => 'Datum saknas',
+ 'Day(s)' => 'Dag(ar',
+ 'Delete Schedule' => 'Ta bort schemaläggning',
+ 'Department' => 'Kostnadsställe/resultatenhet',
+ 'Deposit' => 'Insättning',
+ 'Description' => 'Beskrivning',
+ 'Due Date' => 'Förfallodatum',
+ 'E-mail' => 'E-Post',
+ 'E-mail message' => 'E-post meddelande',
+ 'Every' => 'Varje',
+ 'Exchange Rate' => 'Växlingskurs',
+ 'Exchange rate missing!' => 'Växelkurs saknas',
+ 'For' => 'under',
+ 'From' => 'Från',
+ 'Include Payment' => 'Inkudera betalning',
+ 'Invoice' => 'Faktura',
+ 'Invoices' => 'Fakturor',
+ 'Language' => 'Språk',
+ 'Memo' => 'Anteckning',
+ 'Message' => 'Meddelande',
+ 'Month(s)' => 'Månad(er)',
+ 'Next Date' => 'Nästa datum',
+ 'Nothing open!' => 'Ingenting öppnat',
+ 'Number' => 'Nummer',
+ 'PDF' => 'PDF',
+ 'Payment' => 'Betalning',
+ 'Payment posted!' => 'Betalning bokförd',
+ 'Payments' => 'Betalningar',
+ 'Payments posted!' => 'Betalningar bokförda',
+ 'Post' => 'Bokför',
+ 'Posting failed!' => 'Bokföring misslyckats!',
+ 'Postscript' => 'Postscript',
+ 'Prepayment' => 'Förskottsbetald',
+ 'Print' => 'Skriv ut',
+ 'Project not on file!' => 'Projekt finns ej',
+ 'Receipt' => 'Kvitto',
+ 'Receipt posted!' => 'Kvitto bokfört!',
+ 'Receipts' => 'Kvitton',
+ 'Recurring Transaction' => 'Återkommande transaktioner',
+ 'Reference' => 'Referens',
+ 'Repeat' => 'Upprepa',
+ 'Save Schedule' => 'Spara schemaläggning',
+ 'Screen' => 'Skärm',
+ 'Select' => 'Välj',
+ 'Select all' => 'Välj alla',
+ 'Select from one of the names below' => 'Välj ett av namnen nedan',
+ 'Select from one of the projects below' => 'Välj ett av projekten nedan',
+ 'Select postscript or PDF!' => 'Välj Postscript eller PDF',
+ 'Source' => 'Källa',
+ 'Startdate' => 'Startdatum',
+ 'Subject' => 'Ämne',
+ 'To' => 'Till',
+ 'Update' => 'Uppdatera',
+ 'Vendor' => 'Leverantör',
+ 'Vendor not on file!' => 'Leverantör finns ej',
+ 'Warning!' => 'Varning!',
+ 'Week(s)' => 'Vecka(or)',
+ 'Year(s)' => 'År',
+ 'You are posting an existing transaction!' => 'Du bokför en redan bokförd transaktion',
+ 'You are printing and posting an existing transaction!' => 'Du skriver ut och bokför en redan bokförd transaktion',
+ 'You are printing and saving an existing order' => 'Du skriver ut och sparar en redan sparad order',
+ 'You are printing and saving an existing quotation' => 'Du skriver ut och sparar en redan sparad offert',
+ 'You are saving an existing order' => 'Du sparar en redan sparad order',
+ 'You are saving an existing quotation' => 'Du sparar en redan sparad offert',
+ 'for' => 'under',
+ 'sent' => 'Skickad',
+ 'time(s)' => 'gång(er)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'fortsätt' => 'continue',
+ 'ta_bort_schemaläggning' => 'delete_schedule',
+ 'bokför' => 'post',
+ 'skriv_ut' => 'print',
+ 'spara_schemaläggning' => 'save_schedule',
+ 'välj_alla' => 'select_all',
+ 'uppdatera' => 'update',
+};
+
+1;
+
diff --git a/locale/se/ct b/locale/se/ct
new file mode 100755
index 00000000..7fe592ce
--- /dev/null
+++ b/locale/se/ct
@@ -0,0 +1,190 @@
+$self{texts} = {
+ 'AP Transaction' => 'Betald skuld',
+ 'AP Transactions' => 'Leverantörsfakturor',
+ 'AR Transaction' => 'Betald Fodran',
+ 'AR Transactions' => 'Kundfakturor',
+ 'Accounting Menu' => 'Bokförings-meny',
+ 'Active' => 'Aktiv',
+ 'Add Customer' => 'Ny kund',
+ 'Add Vendor' => 'Ny leverantör',
+ 'Address' => 'Adress',
+ 'All' => 'Alla',
+ 'Amount' => 'Belopp',
+ 'BIC' => 'Bank identitets kod',
+ 'Bcc' => 'Dold kopia till',
+ 'Billing Address' => 'Faktura adress',
+ 'Break' => 'Brytpunkt',
+ 'Cannot delete customer!' => 'Kan inte radera kund',
+ 'Cannot delete vendor!' => 'Kan inte radera Leverantör',
+ 'Cc' => 'Kopia',
+ 'City' => 'Stad',
+ 'Closed' => 'Avslutad',
+ 'Company Name' => 'Företags namn',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Fortsätt',
+ 'Cost' => 'Kostnader',
+ 'Could not save pricelist!' => 'Kan inte spara prislista',
+ 'Country' => 'Land',
+ 'Credit Limit' => 'Kreditgräns',
+ 'Curr' => 'Valuta',
+ 'Currency' => 'Valuta',
+ 'Customer History' => 'Kund historik',
+ 'Customer Number' => 'Kund nr',
+ 'Customer deleted!' => 'Kund raderad',
+ 'Customer saved!' => 'Kund sparad',
+ 'Customers' => 'Kunder',
+ 'Delete' => 'Radera',
+ 'Delivery Date' => 'Leveransdatum',
+ 'Description' => 'Beskrivning',
+ 'Detail' => 'Detalj',
+ 'Discount' => 'Rabatt',
+ 'E-mail' => 'E-Post',
+ 'Edit Customer' => 'Redigera kund',
+ 'Edit Vendor' => 'Redigera Leverantör',
+ 'Employee' => 'Anställd',
+ 'Enddate' => 'Slut datum',
+ 'Fax' => 'Fax',
+ 'From' => 'Från',
+ 'GIFI' => 'SRU-kod',
+ 'Group' => 'Grupp',
+ 'IBAN' => 'IBAN - bankkontonr',
+ 'ID' => 'ID',
+ 'Inactive' => 'Inaktiv',
+ 'Include in Report' => 'Inkludera i rapport',
+ 'Invoice' => 'Faktura',
+ 'Item already on pricelist!' => 'Varan redan i prislistan',
+ 'Item not on file!' => 'Varan finns inte i databasen',
+ 'Language' => 'Språk',
+ 'Leadtime' => 'Leveranstid',
+ 'Manager' => 'Direktör',
+ 'Name' => 'Namn',
+ 'Name missing!' => 'Namn saknas',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Anmärkningar',
+ 'Number' => 'Nummer',
+ 'Open' => 'Aktuell',
+ 'Order' => 'Order',
+ 'Orphaned' => 'Fristående',
+ 'POS' => 'Försäljning',
+ 'Part Number' => 'Artikel nr',
+ 'Phone' => 'Telefon',
+ 'Pricegroup' => 'Prisgrupp',
+ 'Pricelist' => 'Prislista',
+ 'Project Number' => 'Projekt nr',
+ 'Purchase Order' => 'Inköpsorder',
+ 'Purchase Orders' => 'Inköpsordrar',
+ 'Qty' => 'Antal',
+ 'Quotation' => 'Offert',
+ 'Quotations' => 'Offerter',
+ 'RFQ' => 'Begäran om offert',
+ 'Request for Quotations' => 'Begäran om offerter',
+ 'SIC' => 'SNI-kod',
+ 'SKU' => 'Lagernr',
+ 'Sales Invoice' => 'Kundfaktura',
+ 'Sales Invoices' => 'Kundfakturor',
+ 'Sales Order' => 'Säljorder',
+ 'Sales Orders' => 'Säljordrar',
+ 'Salesperson' => 'Försäljare',
+ 'Save' => 'Spara',
+ 'Save Pricelist' => 'Spara prislista',
+ 'Save as new' => 'Spara som ny',
+ 'Search' => 'Sök',
+ 'Select items' => 'Välj vara',
+ 'Sell Price' => 'Försäljningspris',
+ 'Serial Number' => 'Serie nr.',
+ 'Shipping Address' => 'Mottagar adress',
+ 'Startdate' => 'Startdatum',
+ 'State' => 'Stat',
+ 'State/Province' => 'Stat/provins',
+ 'Sub-contract GIFI' => 'SRU-kod underrubrik',
+ 'Subtotal' => 'Delsummera',
+ 'Summary' => 'Summa',
+ 'Tax' => 'Moms',
+ 'Tax Account' => 'Momskonto',
+ 'Tax Included' => 'Moms ingår',
+ 'Tax Number' => 'Momsredovisnings nr',
+ 'Tax Number / SSN' => 'Momsredovisningsnr / personnummer',
+ 'Taxable' => 'Momspliktigt',
+ 'Terms' => 'Netto',
+ 'To' => 'Till',
+ 'Total' => 'Total',
+ 'Type of Business' => 'Typ av verksamhet',
+ 'Unit' => 'Enhet',
+ 'Update' => 'Uppdatera',
+ 'Vendor History' => 'Leverantörshistorik',
+ 'Vendor Invoice' => 'Leverantörsfaktura',
+ 'Vendor Invoices' => 'Leverantörsfakturor',
+ 'Vendor Number' => 'Leverantör nr',
+ 'Vendor deleted!' => 'Leverantör raderad',
+ 'Vendor saved!' => 'Leverantör sparad',
+ 'Vendors' => 'Leverantörer',
+ 'Zip/Postal Code' => 'Postnr',
+ 'days' => 'dagar',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'betald_skuld' => 'ap_transaction',
+ 'betald_fodran' => 'ar_transaction',
+ 'ny_kund' => 'add_customer',
+ 'ny_leverantör' => 'add_vendor',
+ 'fortsätt' => 'continue',
+ 'radera' => 'delete',
+ 'försäljning' => 'pos',
+ 'prislista' => 'pricelist',
+ 'inköpsorder' => 'purchase_order',
+ 'offert' => 'quotation',
+ 'begäran_om_offert' => 'rfq',
+ 'kundfaktura' => 'sales_invoice',
+ 'säljorder' => 'sales_order',
+ 'spara' => 'save',
+ 'spara_prislista' => 'save_pricelist',
+ 'spara_som_ny' => 'save_as_new',
+ 'uppdatera' => 'update',
+ 'leverantörsfaktura' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/se/gl b/locale/se/gl
new file mode 100755
index 00000000..df7fc13e
--- /dev/null
+++ b/locale/se/gl
@@ -0,0 +1,185 @@
+$self{texts} = {
+ 'AP Transaction' => 'Betald skuld',
+ 'AR Transaction' => 'Betald Fodran',
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Bokförings-meny',
+ 'Add Cash Transfer Transaction' => 'Lägg till betalning',
+ 'Add General Ledger Transaction' => 'Nytt verifikat',
+ 'Address' => 'Adress',
+ 'All' => 'Alla',
+ 'Amount' => 'Belopp',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Transaction' => 'Är du säker på att du vill radera Transaktionen',
+ 'Asset' => 'Tillgång',
+ 'Aug' => 'Aug',
+ 'August' => 'Augusti',
+ 'Balance' => 'Balans',
+ 'Bcc' => 'Dold kopia till',
+ 'Cannot delete transaction!' => 'Kan inte radera händelse',
+ 'Cannot post transaction for a closed period!' => 'Kan inte bokföra under en stängd period',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => 'Kan inte bokföra transaktion med debitering och kreditering på samma kontonummer!',
+ 'Cannot post transaction!' => 'Kan inte bokföra transaktion',
+ 'Cc' => 'Kopia',
+ 'Confirm!' => 'Bekräfta!',
+ 'Continue' => 'Fortsätt',
+ 'Credit' => 'Kredit',
+ 'Current' => 'Nuvarande',
+ 'Customer not on file!' => 'Kund finns ej',
+ 'Date' => 'Datum',
+ 'Day(s)' => 'Dag(ar',
+ 'Debit' => 'Debet',
+ 'Dec' => 'Dec',
+ 'December' => 'December',
+ 'Delete' => 'Radera',
+ 'Delete Schedule' => 'Ta bort schemaläggning',
+ 'Department' => 'Kostnadsställe/resultatenhet',
+ 'Description' => 'Beskrivning',
+ 'E-mail' => 'E-Post',
+ 'E-mail message' => 'E-post meddelande',
+ 'Edit Cash Transfer Transaction' => 'Redigera betalningar',
+ 'Edit General Ledger Transaction' => 'Redigera verifikat i huvudbok',
+ 'Equity' => 'Eget kapital',
+ 'Every' => 'Varje',
+ 'Expense' => 'Utgift',
+ 'FX' => 'Valutakurs',
+ 'Feb' => 'Feb',
+ 'February' => 'Februari',
+ 'For' => 'under',
+ 'From' => 'Från',
+ 'GIFI' => 'SRU-kod',
+ 'GL Transaction' => 'Verifikat',
+ 'General Ledger' => 'Bokföring',
+ 'ID' => 'ID',
+ 'Include Payment' => 'Inkudera betalning',
+ 'Include in Report' => 'Inkludera i rapport',
+ 'Income' => 'Vinst',
+ 'Jan' => 'Jan',
+ 'January' => 'Januari',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Liability' => 'Skulder',
+ 'Mar' => 'Mar',
+ 'March' => 'Mars',
+ 'May' => 'Maj',
+ 'May ' => 'Maj',
+ 'Memo' => 'Anteckning',
+ 'Message' => 'Meddelande',
+ 'Month' => 'Månad',
+ 'Month(s)' => 'Månad(er)',
+ 'Next Date' => 'Nästa datum',
+ 'Notes' => 'Anmärkningar',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Nummer',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Out of balance transaction!' => 'Transaktion ej i balans',
+ 'Period' => 'Period',
+ 'Post' => 'Bokför',
+ 'Post as new' => 'Bokför som ny',
+ 'Print' => 'Skriv ut',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Projekt finns ej',
+ 'Quarter' => 'Kvartal',
+ 'R' => 'Utförd',
+ 'Recurring Transaction' => 'Återkommande transaktioner',
+ 'Reference' => 'Referens',
+ 'Repeat' => 'Upprepa',
+ 'Reports' => 'Rapporter',
+ 'Sales Invoice ' => 'Kundfaktura ',
+ 'Save Schedule' => 'Spara schemaläggning',
+ 'Schedule' => 'Schemalägg',
+ 'Scheduled' => 'Schemalagd',
+ 'Select from one of the names below' => 'Välj ett av namnen nedan',
+ 'Select from one of the projects below' => 'Välj ett av projekten nedan',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Source' => 'Källa',
+ 'Startdate' => 'Startdatum',
+ 'Subject' => 'Ämne',
+ 'Subtotal' => 'Delsummera',
+ 'To' => 'Till',
+ 'Transaction Date missing!' => 'Transaktionsdatum saknas',
+ 'Transaction deleted!' => 'Transaktion raderad',
+ 'Transaction posted!' => 'Transaktion bokförd',
+ 'Update' => 'Uppdatera',
+ 'Vendor Invoice ' => 'Leverantörsfaktura ',
+ 'Vendor not on file!' => 'Leverantör finns ej',
+ 'Warning!' => 'Varning!',
+ 'Week(s)' => 'Vecka(or)',
+ 'Year' => 'År',
+ 'Year(s)' => 'År',
+ 'Yes' => 'Ja',
+ 'You are posting an existing transaction!' => 'Du bokför en redan bokförd transaktion',
+ 'You are printing and posting an existing transaction!' => 'Du skriver ut och bokför en redan bokförd transaktion',
+ 'You are printing and saving an existing order' => 'Du skriver ut och sparar en redan sparad order',
+ 'You are printing and saving an existing quotation' => 'Du skriver ut och sparar en redan sparad offert',
+ 'You are saving an existing order' => 'Du sparar en redan sparad order',
+ 'You are saving an existing quotation' => 'Du sparar en redan sparad offert',
+ 'for' => 'under',
+ 'sent' => 'Skickad',
+ 'time(s)' => 'gång(er)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'betald_skuld' => 'ap_transaction',
+ 'betald_fodran' => 'ar_transaction',
+ 'fortsätt' => 'continue',
+ 'radera' => 'delete',
+ 'ta_bort_schemaläggning' => 'delete_schedule',
+ 'verifikat' => 'gl_transaction',
+ 'bokför' => 'post',
+ 'bokför_som_ny' => 'post_as_new',
+ 'kundfaktura_' => 'sales_invoice_',
+ 'spara_schemaläggning' => 'save_schedule',
+ 'schemalägg' => 'schedule',
+ 'uppdatera' => 'update',
+ 'leverantörsfaktura_' => 'vendor_invoice_',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/se/hr b/locale/se/hr
new file mode 100755
index 00000000..adaf3b87
--- /dev/null
+++ b/locale/se/hr
@@ -0,0 +1,120 @@
+$self{texts} = {
+ 'AP' => 'Leverantörsfakturor',
+ 'Above' => 'Över',
+ 'Accounting Menu' => 'Bokförings-meny',
+ 'Active' => 'Aktiv',
+ 'Add Deduction' => 'Lägg till avdrag',
+ 'Add Employee' => 'Ny anställd',
+ 'Address' => 'Adress',
+ 'Administrator' => 'Administratör',
+ 'After Deduction' => 'Efter avdrag',
+ 'All' => 'Alla',
+ 'Allowances' => 'Bidrag/rabatt',
+ 'Amount' => 'Belopp',
+ 'Amount missing!' => 'Belopp saknas',
+ 'BIC' => 'Bank identitets kod',
+ 'Based on' => 'Baserad på',
+ 'Before Deduction' => 'Före avdrag',
+ 'Below' => 'Under',
+ 'City' => 'Stad',
+ 'Continue' => 'Fortsätt',
+ 'Country' => 'Land',
+ 'DOB' => 'Födelsedatum',
+ 'Deduct after' => 'Avdrag efter',
+ 'Deduction deleted!' => 'Avdrag borttaget',
+ 'Deduction saved!' => 'Avdrag sparat',
+ 'Deductions' => 'Avdrag',
+ 'Delete' => 'Radera',
+ 'Description' => 'Beskrivning',
+ 'Description missing!' => 'Beskrivning saknas',
+ 'E-mail' => 'E-Post',
+ 'Edit Deduction' => 'Redigera avdrag',
+ 'Edit Employee' => 'Redigera anställd',
+ 'Employee' => 'Anställd',
+ 'Employee Name' => 'Anställd namn',
+ 'Employee Number' => 'Anställd nr',
+ 'Employee deleted!' => 'Anställd borttagen',
+ 'Employee pays' => 'Anställd utbetalt',
+ 'Employee saved!' => 'Anställd sparad',
+ 'Employees' => 'Anställda',
+ 'Employer' => 'Arbetsgivare',
+ 'Employer pays' => 'Arbetsgivare utbetalt',
+ 'Enddate' => 'Slut datum',
+ 'Exempt age <' => 'Utgångsdatum',
+ 'Expense' => 'Utgift',
+ 'From' => 'Från',
+ 'Home Phone' => 'Hem telefon',
+ 'IBAN' => 'IBAN - bankkontonr',
+ 'ID' => 'ID',
+ 'Inactive' => 'Inaktiv',
+ 'Include in Report' => 'Inkludera i rapport',
+ 'Login' => 'Logga in',
+ 'Manager' => 'Direktör',
+ 'Maximum' => 'Max',
+ 'Name' => 'Namn',
+ 'Name missing!' => 'Namn saknas',
+ 'Notes' => 'Anmärkningar',
+ 'Number' => 'Nummer',
+ 'Orphaned' => 'Fristående',
+ 'Payroll Deduction' => 'Avdrag vid betalning',
+ 'Pos' => 'Kassa',
+ 'Rate' => 'Ränta',
+ 'Rate missing!' => 'Ränta saknas',
+ 'Role' => 'Tjänst',
+ 'S' => 'S',
+ 'SSN' => 'Personnr',
+ 'Sales' => 'Försäljning',
+ 'Save' => 'Spara',
+ 'Save as new' => 'Spara som ny',
+ 'Startdate' => 'Startdatum',
+ 'State/Province' => 'Stat/provins',
+ 'Supervisor' => 'Ansvarig',
+ 'To' => 'Till',
+ 'Update' => 'Uppdatera',
+ 'User' => 'Användare',
+ 'Work Phone' => 'Arbetstelefon',
+ 'Zip/Postal Code' => 'Postnr',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'lägg_till_avdrag' => 'add_deduction',
+ 'ny_anställd' => 'add_employee',
+ 'fortsätt' => 'continue',
+ 'radera' => 'delete',
+ 'spara' => 'save',
+ 'spara_som_ny' => 'save_as_new',
+ 'uppdatera' => 'update',
+};
+
+1;
+
diff --git a/locale/se/ic b/locale/se/ic
new file mode 100755
index 00000000..1adf2625
--- /dev/null
+++ b/locale/se/ic
@@ -0,0 +1,295 @@
+$self{texts} = {
+ 'A' => 'Tillgångar',
+ 'Accounting Menu' => 'Bokförings-meny',
+ 'Accounts' => 'Konton',
+ 'Accrual' => 'Bokföringsmässig',
+ 'Active' => 'Aktiv',
+ 'Add' => 'Lägg till',
+ 'Add Assembly' => 'Ny sammansättning',
+ 'Add Labor/Overhead' => 'Lägg till arbete/omkostnader',
+ 'Add Part' => 'Ny vara',
+ 'Add Purchase Order' => 'Ny inköpsorder',
+ 'Add Quotation' => 'Ny offert',
+ 'Add Request for Quotation' => 'Ny begäran om offert',
+ 'Add Sales Order' => 'Ny säljorder',
+ 'Add Service' => 'Lägg till tjänst',
+ 'Address' => 'Adress',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Assemblies' => 'Sammansättningar',
+ 'Assemblies restocked!' => 'Produkt åter i lager',
+ 'Assembly' => 'Produkt',
+ 'Attachment' => 'Bilaga',
+ 'Aug' => 'Aug',
+ 'August' => 'Augusti',
+ 'Average Cost' => 'Medelvärdeskostnad',
+ 'Avg Cost' => 'Medel kostn',
+ 'BOM' => 'Materialkostnad',
+ 'Bcc' => 'Dold kopia till',
+ 'Billing Address' => 'Faktura adress',
+ 'Bin' => 'Antal i lager',
+ 'Bin List' => 'Lager lista',
+ 'Break' => 'Brytpunkt',
+ 'COGS' => 'Inköpskostnader',
+ 'COGS account does not exist!' => 'Konto för inköpskostnader ej angivet',
+ 'Cannot create Assembly' => 'Kan inte lagra produkt',
+ 'Cannot create Labor' => 'Kan inte lagra arbetskostnad',
+ 'Cannot create Part' => 'Kan inte lagra vara',
+ 'Cannot create Service' => 'Kan inte lagra tjänst',
+ 'Cannot delete item!' => 'Kan inte radera vara',
+ 'Cannot stock assemblies!' => 'Kan inte lagerföra produkter',
+ 'Cash' => 'Betalningar',
+ 'Cc' => 'Kopia',
+ 'Check Inventory' => 'Inventarielista',
+ 'City' => 'Stad',
+ 'Closed' => 'Avslutad',
+ 'Company Name' => 'Företags namn',
+ 'Components' => 'Komponenter',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Fortsätt',
+ 'Copies' => 'Kopior',
+ 'Cost' => 'Kostnader',
+ 'Country' => 'Land',
+ 'Curr' => 'Valuta',
+ 'Currency' => 'Valuta',
+ 'Customer' => 'Kund',
+ 'Customer Number' => 'Kund nr',
+ 'Customer not on file!' => 'Kund finns ej',
+ 'Date' => 'Datum',
+ 'Dec' => 'Dec',
+ 'December' => 'December',
+ 'Delete' => 'Radera',
+ 'Delivery Date' => 'Leveransdatum',
+ 'Description' => 'Beskrivning',
+ 'Detail' => 'Detalj',
+ 'Drawing' => 'Ritning',
+ 'E-mail' => 'E-Post',
+ 'E-mail address missing!' => 'E-Postadress saknas',
+ 'E-mailed' => 'Skickad med e-post',
+ 'Edit Assembly' => 'Redigera produkt',
+ 'Edit Labor/Overhead' => 'Redigera arbetskostnader',
+ 'Edit Part' => 'Redigera vara',
+ 'Edit Service' => 'Redigera tjänster',
+ 'Employee' => 'Anställd',
+ 'Expense' => 'Utgift',
+ 'Expense account does not exist!' => 'Konto för kostnader ej angivet',
+ 'Extended' => 'Summa',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Februari',
+ 'From' => 'Från',
+ 'Group' => 'Grupp',
+ 'Image' => 'Bild',
+ 'In-line' => 'På väg',
+ 'Include in Report' => 'Inkludera i rapport',
+ 'Income' => 'Vinst',
+ 'Income account does not exist!' => 'Intäktskonto ej angivet',
+ 'Individual Items' => 'Individuella varor',
+ 'Inventory' => 'Lager',
+ 'Inventory account does not exist!' => 'Lagerkonto ej angivet',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Lagerkvantitet måste vara noll innan du kan sätta produkten som utgången!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Lagerkvantitet måste vara noll innan du kan sätta varan som utgången!',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date missing!' => 'Fakturadatum saknas',
+ 'Invoice Number' => 'Fakturanummer',
+ 'Invoice Number missing!' => 'Fakturanummer saknas',
+ 'Item deleted!' => 'Vara raderad',
+ 'Item not on file!' => 'Varan finns inte i databasen',
+ 'Items' => 'Varor',
+ 'Jan' => 'Jan',
+ 'January' => 'Januari',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Labor/Overhead' => 'Arbete/omkostnader',
+ 'Last Cost' => 'Senaste kostnad',
+ 'Leadtime' => 'Leveranstid',
+ 'Line Total' => 'Antal rader',
+ 'Link Accounts' => 'Koppla konton',
+ 'List' => 'Lista',
+ 'List Price' => 'Nettopris',
+ 'Make' => 'Produkt',
+ 'Mar' => 'Mar',
+ 'March' => 'Mars',
+ 'Markup' => 'Prishöjning',
+ 'May' => 'Maj',
+ 'May ' => 'Maj',
+ 'Message' => 'Meddelande',
+ 'Microfiche' => 'Microfiche',
+ 'Model' => 'Modell',
+ 'Name' => 'Namn',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Anmärkningar',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Nummer',
+ 'Number missing in Row' => 'Nummer saknas i rad',
+ 'OH' => 'På lager',
+ 'Obsolete' => 'Utgången',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'On Hand' => 'I lager',
+ 'Open' => 'Aktuell',
+ 'Order' => 'Order',
+ 'Order Date missing!' => 'Orderdatum saknas',
+ 'Order Number' => 'Ordernummer',
+ 'Order Number missing!' => 'Ordernummer saknas',
+ 'Orphaned' => 'Fristående',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Packsedel',
+ 'Packing List Date missing!' => 'Packsedelsdatum saknas',
+ 'Packing List Number missing!' => 'Packsedelsnummer saknas',
+ 'Part' => 'Artikel',
+ 'Parts' => 'Artiklar',
+ 'Period' => 'Period',
+ 'Phone' => 'Telefon',
+ 'Pick List' => 'Plocklista',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Pris',
+ 'Pricegroup' => 'Prisgrupp',
+ 'Printed' => 'Utskriven',
+ 'Project' => 'Projekt',
+ 'Purchase Order' => 'Inköpsorder',
+ 'Purchase Orders' => 'Inköpsordrar',
+ 'Qty' => 'Antal',
+ 'Quantity exceeds available units to stock!' => 'Kvantitet överskrider tillgängliga enheter i lager',
+ 'Queue' => 'Kö',
+ 'Queued' => 'Köad',
+ 'Quotation' => 'Offert',
+ 'Quotation Date missing!' => 'Offert datum saknas',
+ 'Quotation Number missing!' => 'Offert nummer saknas',
+ 'Quotations' => 'Offerter',
+ 'RFQ' => 'Begäran om offert',
+ 'ROP' => 'Beställ vid',
+ 'Recd' => 'Mottagen',
+ 'Required by' => 'Beställt den',
+ 'SKU' => 'Lagernr',
+ 'Sales Invoice' => 'Kundfaktura',
+ 'Sales Invoices' => 'Kundfakturor',
+ 'Sales Order' => 'Säljorder',
+ 'Sales Orders' => 'Säljordrar',
+ 'Save' => 'Spara',
+ 'Save as new' => 'Spara som ny',
+ 'Scheduled' => 'Schemalagd',
+ 'Screen' => 'Skärm',
+ 'Select from one of the names below' => 'Välj ett av namnen nedan',
+ 'Select items' => 'Välj vara',
+ 'Select txt, postscript or PDF!' => 'Välj text, postsript eller PDF!',
+ 'Sell' => 'Sälj',
+ 'Sell Price' => 'Försäljningspris',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Serial No.' => 'Serie nr.',
+ 'Serial Number' => 'Serie nr.',
+ 'Service' => 'Tjänster',
+ 'Services' => 'Tjänster',
+ 'Ship' => 'Skicka',
+ 'Ship to' => 'Skicka till',
+ 'Shipping Address' => 'Mottagar adress',
+ 'Short' => 'Kort',
+ 'State/Province' => 'Stat/provins',
+ 'Stock' => 'Lager',
+ 'Stock Assembly' => 'Lager produkter',
+ 'Subject' => 'Ämne',
+ 'Subtotal' => 'Delsummera',
+ 'Summary' => 'Summa',
+ 'Tax' => 'Moms',
+ 'Text' => 'Text',
+ 'To' => 'Till',
+ 'Top Level' => 'Toppnivå',
+ 'Translation not on file!' => 'Översättning finns inte',
+ 'Unit' => 'Enhet',
+ 'Update' => 'Uppdatera',
+ 'Updated' => 'Uppdaterad',
+ 'Vendor' => 'Leverantör',
+ 'Vendor Invoice' => 'Leverantörsfaktura',
+ 'Vendor Invoices' => 'Leverantörsfakturor',
+ 'Vendor Number' => 'Leverantör nr',
+ 'Vendor not on file!' => 'Leverantör finns ej',
+ 'Warehouse' => 'Lager',
+ 'Weight' => 'Vikt',
+ 'What type of item is this?' => 'Vilken typ av artikel är detta?',
+ 'Work Order' => 'Arbetsorder',
+ 'Year' => 'År',
+ 'Zip/Postal Code' => 'Postnr',
+ 'days' => 'dagar',
+ 'sent' => 'Skickad',
+ 'unexpected error!' => 'oförberett fel!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'ny_sammansättning' => 'add_assembly',
+ 'lägg_till_arbete_omkostnader' => 'add_labor_overhead',
+ 'ny_vara' => 'add_part',
+ 'lägg_till_tjänst' => 'add_service',
+ 'fortsätt' => 'continue',
+ 'radera' => 'delete',
+ 'redigera_produkt' => 'edit_assembly',
+ 'redigera_vara' => 'edit_part',
+ 'redigera_tjänster' => 'edit_service',
+ 'spara' => 'save',
+ 'spara_som_ny' => 'save_as_new',
+ 'uppdatera' => 'update',
+};
+
+1;
+
diff --git a/locale/se/io b/locale/se/io
new file mode 100755
index 00000000..7424121c
--- /dev/null
+++ b/locale/se/io
@@ -0,0 +1,136 @@
+$self{texts} = {
+ 'Add Purchase Order' => 'Ny inköpsorder',
+ 'Add Quotation' => 'Ny offert',
+ 'Add Request for Quotation' => 'Ny begäran om offert',
+ 'Add Sales Order' => 'Ny säljorder',
+ 'Address' => 'Adress',
+ 'Apr' => 'apr',
+ 'April' => 'april',
+ 'Attachment' => 'Bilaga',
+ 'Aug' => 'aug',
+ 'August' => 'augusti',
+ 'Bcc' => 'Bankgiro',
+ 'Billing Address' => 'Faktura adress',
+ 'Bin' => 'Antal i lager',
+ 'Bin List' => 'Lager lista',
+ 'Cc' => 'Kopia',
+ 'City' => 'Stad',
+ 'Company Name' => 'Företags namn',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Fortsätt',
+ 'Copies' => 'Kopior',
+ 'Country' => 'Land',
+ 'Customer Number' => 'Kund nr',
+ 'Date' => 'Datum',
+ 'Dec' => 'dec',
+ 'December' => 'december',
+ 'Delivery Date' => 'Leveransdatum',
+ 'Description' => 'Beskrivning',
+ 'E-mail' => 'E-Post',
+ 'E-mail address missing!' => 'E-Postadress saknas',
+ 'E-mailed' => 'Skickad med e-post',
+ 'Extended' => 'Utökad',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Februari',
+ 'Group' => 'Grupp',
+ 'In-line' => 'In-line',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date missing!' => 'Fakturadatum saknas',
+ 'Invoice Number missing!' => 'Fakturanummer saknas',
+ 'Item not on file!' => 'Varan finns inte i databasen',
+ 'Jan' => 'Jan',
+ 'January' => 'Januari',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Mar' => 'Mar',
+ 'March' => 'Mars',
+ 'May' => 'Maj',
+ 'May ' => 'Maj',
+ 'Message' => 'Meddelande',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Nummer',
+ 'Number missing in Row' => 'Nummer saknas i rad',
+ 'OH' => 'På lager',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Order Date missing!' => 'Orderdatum saknas',
+ 'Order Number missing!' => 'Ordernummer saknas',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Packsedel',
+ 'Packing List Date missing!' => 'Packsedelsdatum saknas',
+ 'Packing List Number missing!' => 'Packsedelsnummer saknas',
+ 'Part' => 'artikel',
+ 'Phone' => 'Telefon',
+ 'Pick List' => 'Plocklista',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Pris',
+ 'Printed' => 'Utskriven',
+ 'Project' => 'Projekt',
+ 'Purchase Order' => 'Inköpsorder',
+ 'Qty' => 'Antal',
+ 'Queue' => 'Kö',
+ 'Queued' => 'Köad',
+ 'Quotation' => 'Offert',
+ 'Quotation Date missing!' => 'Offert datum saknas',
+ 'Quotation Number missing!' => 'Offert nummer saknas',
+ 'Recd' => 'Mottagen',
+ 'Required by' => 'Beställt den',
+ 'SKU' => 'Lagernr',
+ 'Sales Order' => 'Säljorder',
+ 'Scheduled' => 'Schemalagd',
+ 'Screen' => 'Skärm',
+ 'Select items' => 'Välj vara',
+ 'Select txt, postscript or PDF!' => 'Välj txt, postscript eller PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Serial No.' => 'Serie nr.',
+ 'Service' => 'Tjänster',
+ 'Ship' => 'Skicka',
+ 'Ship to' => 'Skicka till',
+ 'Shipping Address' => 'Mottagar adress',
+ 'State/Province' => 'Stat/provins',
+ 'Subject' => 'Ämne',
+ 'Subtotal' => 'Subtotal',
+ 'Text' => 'Text',
+ 'To' => 'Till',
+ 'Translation not on file!' => 'Översättning finns inte',
+ 'Unit' => 'Enhet',
+ 'Vendor Number' => 'Leverantör nr',
+ 'What type of item is this?' => 'Vilken typ av artikel är detta?',
+ 'Work Order' => 'Arbetsorder',
+ 'Zip/Postal Code' => 'Postnr',
+ 'sent' => 'Skickad',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'fortsätt' => 'continue',
+};
+
+1;
+
diff --git a/locale/se/ir b/locale/se/ir
new file mode 100755
index 00000000..a3638373
--- /dev/null
+++ b/locale/se/ir
@@ -0,0 +1,256 @@
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Bokförings-meny',
+ 'Add Purchase Order' => 'Ny inköpsorder',
+ 'Add Quotation' => 'Ny offert',
+ 'Add Request for Quotation' => 'Ny begäran om offert',
+ 'Add Sales Order' => 'Ny säljorder',
+ 'Add Vendor Invoice' => 'Ny leverantörsfaktura',
+ 'Address' => 'Adress',
+ 'Amount' => 'Belopp',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Invoice Number' => 'Är du säker på att du vill radera Faktura Nummer',
+ 'Attachment' => 'Bilaga',
+ 'Aug' => 'Aug',
+ 'August' => 'Augusti',
+ 'Bcc' => 'Dold kopia till',
+ 'Billing Address' => 'Faktura adress',
+ 'Bin' => 'Antal i lager',
+ 'Bin List' => 'Lager lista',
+ 'Cannot delete invoice!' => 'Kan inte radera faktura',
+ 'Cannot post invoice for a closed period!' => 'Kan inte bokföra en faktura för en avslutad period',
+ 'Cannot post invoice!' => 'Kan inte bokföra fakturan!',
+ 'Cannot post payment for a closed period!' => 'Kan inte bokföra en betalning för en stängd period',
+ 'Cc' => 'Kopia',
+ 'City' => 'Stad',
+ 'Company Name' => 'Företags namn',
+ 'Confirm!' => 'Bekräfta!',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Fortsätt',
+ 'Copies' => 'Kopior',
+ 'Country' => 'Land',
+ 'Credit Limit' => 'Kreditgräns',
+ 'Currency' => 'Valuta',
+ 'Customer Number' => 'Kund nr',
+ 'Customer not on file!' => 'Kund finns ej',
+ 'Date' => 'Datum',
+ 'Day(s)' => 'Dag(ar',
+ 'Dec' => 'Dec',
+ 'December' => 'December',
+ 'Delete' => 'Radera',
+ 'Delete Schedule' => 'Ta bort schemaläggning',
+ 'Delivery Date' => 'Leveransdatum',
+ 'Department' => 'Kostnadsställe/resultatenhet',
+ 'Description' => 'Beskrivning',
+ 'Due Date' => 'Förfallodatum',
+ 'E-mail' => 'E-Post',
+ 'E-mail address missing!' => 'E-Postadress saknas',
+ 'E-mail message' => 'E-post meddelande',
+ 'E-mailed' => 'Skickad med e-post',
+ 'Edit Vendor Invoice' => 'Redigera leverantörsfakturor',
+ 'Every' => 'Varje',
+ 'Exch' => 'Vxl',
+ 'Exchange Rate' => 'Växlingskurs',
+ 'Exchange rate for payment missing!' => 'Växlingskurs för saknad betalning',
+ 'Exchange rate missing!' => 'Växelkurs saknas',
+ 'Extended' => 'Summa',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Februari',
+ 'For' => 'under',
+ 'Group' => 'Grupp',
+ 'In-line' => 'På väg',
+ 'Include Payment' => 'Inkudera betalning',
+ 'Internal Notes' => 'Egna anteckningar',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date' => 'Fakturadatum',
+ 'Invoice Date missing!' => 'Fakturadatum saknas',
+ 'Invoice Number' => 'Fakturanummer',
+ 'Invoice Number missing!' => 'Fakturanummer saknas',
+ 'Invoice deleted!' => 'Faktura raderad',
+ 'Item not on file!' => 'Varan finns inte i databasen',
+ 'Jan' => 'Jan',
+ 'January' => 'Januari',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Language' => 'Språk',
+ 'Mar' => 'Mar',
+ 'March' => 'Mars',
+ 'May' => 'Maj',
+ 'May ' => 'Maj',
+ 'Memo' => 'Anteckning',
+ 'Message' => 'Meddelande',
+ 'Month(s)' => 'Månad(er)',
+ 'Next Date' => 'Nästa datum',
+ 'Notes' => 'Anmärkningar',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Nummer',
+ 'Number missing in Row' => 'Nummer saknas i rad',
+ 'OH' => 'På lager',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Order Date missing!' => 'Orderdatum saknas',
+ 'Order Number' => 'Ordernummer',
+ 'Order Number missing!' => 'Ordernummer saknas',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Inköps order nr',
+ 'Packing List' => 'Packsedel',
+ 'Packing List Date missing!' => 'Packsedelsdatum saknas',
+ 'Packing List Number missing!' => 'Packsedelsnummer saknas',
+ 'Part' => 'Artikel',
+ 'Payment date missing!' => 'Betalningsdatum saknas',
+ 'Payments' => 'Betalningar',
+ 'Phone' => 'Telefon',
+ 'Pick List' => 'Plocklista',
+ 'Post' => 'Bokför',
+ 'Post as new' => 'Bokför som ny',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Pris',
+ 'Print' => 'Skriv ut',
+ 'Printed' => 'Utskriven',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Projekt finns ej',
+ 'Purchase Order' => 'Inköpsorder',
+ 'Qty' => 'Antal',
+ 'Queue' => 'Kö',
+ 'Queued' => 'Köad',
+ 'Quotation' => 'Offert',
+ 'Quotation Date missing!' => 'Offert datum saknas',
+ 'Quotation Number missing!' => 'Offert nummer saknas',
+ 'Recd' => 'Mottagen',
+ 'Record in' => 'Bokför på',
+ 'Recurring Transaction' => 'Återkommande transaktioner',
+ 'Reference' => 'Referens',
+ 'Remaining' => 'Resterar',
+ 'Repeat' => 'Upprepa',
+ 'Required by' => 'Beställt den',
+ 'SKU' => 'Lagernr',
+ 'Sales Order' => 'Säljorder',
+ 'Save Schedule' => 'Spara schemaläggning',
+ 'Schedule' => 'Schemalägg',
+ 'Scheduled' => 'Schemalagd',
+ 'Screen' => 'Skärm',
+ 'Select from one of the names below' => 'Välj ett av namnen nedan',
+ 'Select from one of the projects below' => 'Välj ett av projekten nedan',
+ 'Select items' => 'Välj vara',
+ 'Select txt, postscript or PDF!' => 'Välj text, postsript eller PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Serial No.' => 'Serie nr.',
+ 'Service' => 'Tjänster',
+ 'Ship' => 'Skicka',
+ 'Ship to' => 'Skicka till',
+ 'Shipping Address' => 'Mottagar adress',
+ 'Source' => 'Källa',
+ 'Startdate' => 'Startdatum',
+ 'State/Province' => 'Stat/provins',
+ 'Subject' => 'Ämne',
+ 'Subtotal' => 'Delsummera',
+ 'Tax Included' => 'Moms ingår',
+ 'Text' => 'Text',
+ 'To' => 'Till',
+ 'Total' => 'Total',
+ 'Translation not on file!' => 'Översättning finns inte',
+ 'Unit' => 'Enhet',
+ 'Update' => 'Uppdatera',
+ 'Vendor' => 'Leverantör',
+ 'Vendor Number' => 'Leverantör nr',
+ 'Vendor missing!' => 'Leverantör saknas',
+ 'Vendor not on file!' => 'Leverantör finns ej',
+ 'Warning!' => 'Varning!',
+ 'Week(s)' => 'Vecka(or)',
+ 'What type of item is this?' => 'Vilken typ av artikel är detta?',
+ 'Work Order' => 'Arbetsorder',
+ 'Year(s)' => 'År',
+ 'Yes' => 'Ja',
+ 'You are posting an existing transaction!' => 'Du bokför en redan bokförd transaktion',
+ 'You are printing and posting an existing transaction!' => 'Du skriver ut och bokför en redan bokförd transaktion',
+ 'You are printing and saving an existing order' => 'Du skriver ut och sparar en redan sparad order',
+ 'You are printing and saving an existing quotation' => 'Du skriver ut och sparar en redan sparad offert',
+ 'You are saving an existing order' => 'Du sparar en redan sparad order',
+ 'You are saving an existing quotation' => 'Du sparar en redan sparad offert',
+ 'Zip/Postal Code' => 'Postnr',
+ 'ea' => 'st',
+ 'for' => 'under',
+ 'posted!' => 'Bokförd!',
+ 'sent' => 'Skickad',
+ 'time(s)' => 'gång(er)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'fortsätt' => 'continue',
+ 'radera' => 'delete',
+ 'ta_bort_schemaläggning' => 'delete_schedule',
+ 'bokför' => 'post',
+ 'bokför_som_ny' => 'post_as_new',
+ 'inköpsorder' => 'purchase_order',
+ 'spara_schemaläggning' => 'save_schedule',
+ 'schemalägg' => 'schedule',
+ 'uppdatera' => 'update',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/se/is b/locale/se/is
new file mode 100755
index 00000000..1fe6951d
--- /dev/null
+++ b/locale/se/is
@@ -0,0 +1,270 @@
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Bokförings-meny',
+ 'Add Purchase Order' => 'Ny inköpsorder',
+ 'Add Quotation' => 'Ny offert',
+ 'Add Request for Quotation' => 'Ny begäran om offert',
+ 'Add Sales Invoice' => 'Ny kundfaktura',
+ 'Add Sales Order' => 'Ny säljorder',
+ 'Address' => 'Adress',
+ 'Amount' => 'Belopp',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Invoice Number' => 'Är du säker på att du vill radera Faktura Nummer',
+ 'Attachment' => 'Bilaga',
+ 'Aug' => 'Aug',
+ 'August' => 'Augusti',
+ 'Bcc' => 'Dold kopia till',
+ 'Billing Address' => 'Faktura adress',
+ 'Bin' => 'Antal i lager',
+ 'Bin List' => 'Lager lista',
+ 'Business' => 'Verksamhet',
+ 'Cannot delete invoice!' => 'Kan inte radera faktura',
+ 'Cannot post invoice for a closed period!' => 'Kan inte bokföra en faktura för en avslutad period',
+ 'Cannot post invoice!' => 'Kan inte bokföra fakturan!',
+ 'Cannot post payment for a closed period!' => 'Kan inte bokföra en betalning för en stängd period',
+ 'Cc' => 'Kopia',
+ 'City' => 'Stad',
+ 'Company Name' => 'Företags namn',
+ 'Confirm!' => 'Bekräfta!',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Fortsätt',
+ 'Copies' => 'Kopior',
+ 'Country' => 'Land',
+ 'Credit Limit' => 'Kreditgräns',
+ 'Currency' => 'Valuta',
+ 'Customer' => 'Kund',
+ 'Customer Number' => 'Kund nr',
+ 'Customer missing!' => 'Kund saknas',
+ 'Customer not on file!' => 'Kund finns ej',
+ 'Date' => 'Datum',
+ 'Day(s)' => 'Dag(ar',
+ 'Dec' => 'Dec',
+ 'December' => 'December',
+ 'Delete' => 'Radera',
+ 'Delete Schedule' => 'Ta bort schemaläggning',
+ 'Delivery Date' => 'Leveransdatum',
+ 'Department' => 'Kostnadsställe/resultatenhet',
+ 'Description' => 'Beskrivning',
+ 'Due Date' => 'Förfallodatum',
+ 'E-mail' => 'E-Post',
+ 'E-mail address missing!' => 'E-Postadress saknas',
+ 'E-mail message' => 'E-post meddelande',
+ 'E-mailed' => 'Skickad med e-post',
+ 'Edit Sales Invoice' => 'Redigera kundfakturor',
+ 'Every' => 'Varje',
+ 'Exch' => 'Vxl',
+ 'Exchange Rate' => 'Växlingskurs',
+ 'Exchange rate for payment missing!' => 'Växlingskurs för saknad betalning',
+ 'Exchange rate missing!' => 'Växelkurs saknas',
+ 'Extended' => 'Summa',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Februari',
+ 'For' => 'under',
+ 'Group' => 'Grupp',
+ 'In-line' => 'På väg',
+ 'Include Payment' => 'Inkudera betalning',
+ 'Internal Notes' => 'Egna anteckningar',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date' => 'Fakturadatum',
+ 'Invoice Date missing!' => 'Fakturadatum saknas',
+ 'Invoice Number' => 'Fakturanummer',
+ 'Invoice Number missing!' => 'Fakturanummer saknas',
+ 'Invoice deleted!' => 'Faktura raderad',
+ 'Item not on file!' => 'Varan finns inte i databasen',
+ 'Jan' => 'Jan',
+ 'January' => 'Januari',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Mar' => 'Mar',
+ 'March' => 'Mars',
+ 'May' => 'Maj',
+ 'May ' => 'Maj',
+ 'Memo' => 'Anteckning',
+ 'Message' => 'Meddelande',
+ 'Month(s)' => 'Månad(er)',
+ 'Next Date' => 'Nästa datum',
+ 'Notes' => 'Anmärkningar',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Nummer',
+ 'Number missing in Row' => 'Nummer saknas i rad',
+ 'OH' => 'På lager',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Order Date missing!' => 'Orderdatum saknas',
+ 'Order Number' => 'Ordernummer',
+ 'Order Number missing!' => 'Ordernummer saknas',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Inköps order nr',
+ 'Packing List' => 'Packsedel',
+ 'Packing List Date missing!' => 'Packsedelsdatum saknas',
+ 'Packing List Number missing!' => 'Packsedelsnummer saknas',
+ 'Part' => 'Artikel',
+ 'Payment date missing!' => 'Betalningsdatum saknas',
+ 'Payments' => 'Betalningar',
+ 'Phone' => 'Telefon',
+ 'Pick List' => 'Plocklista',
+ 'Post' => 'Bokför',
+ 'Post as new' => 'Bokför som ny',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Pris',
+ 'Print' => 'Skriv ut',
+ 'Print and Post' => 'Skriv och bokför',
+ 'Print and Post as new' => 'Skriv ut och bokför som ny',
+ 'Printed' => 'Utskriven',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Projekt finns ej',
+ 'Purchase Order' => 'Inköpsorder',
+ 'Qty' => 'Antal',
+ 'Queue' => 'Kö',
+ 'Queued' => 'Köad',
+ 'Quotation' => 'Offert',
+ 'Quotation Date missing!' => 'Offert datum saknas',
+ 'Quotation Number missing!' => 'Offert nummer saknas',
+ 'Recd' => 'Mottagen',
+ 'Record in' => 'Bokför på',
+ 'Recurring Transaction' => 'Återkommande transaktioner',
+ 'Reference' => 'Referens',
+ 'Remaining' => 'Resterar',
+ 'Repeat' => 'Upprepa',
+ 'Required by' => 'Beställt den',
+ 'SKU' => 'Lagernr',
+ 'Sales Order' => 'Säljorder',
+ 'Salesperson' => 'Försäljare',
+ 'Save Schedule' => 'Spara schemaläggning',
+ 'Schedule' => 'Schemalägg',
+ 'Scheduled' => 'Schemalagd',
+ 'Screen' => 'Skärm',
+ 'Select a Printer!' => 'Välj skrivare',
+ 'Select from one of the names below' => 'Välj ett av namnen nedan',
+ 'Select from one of the projects below' => 'Välj ett av projekten nedan',
+ 'Select items' => 'Välj vara',
+ 'Select postscript or PDF!' => 'Välj Postscript eller PDF',
+ 'Select txt, postscript or PDF!' => 'Välj text, postsript eller PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Serial No.' => 'Serie nr.',
+ 'Service' => 'Tjänster',
+ 'Ship' => 'Skicka',
+ 'Ship to' => 'Skicka till',
+ 'Ship via' => 'Skicka med',
+ 'Shipping Address' => 'Mottagar adress',
+ 'Shipping Point' => 'Skickad',
+ 'Source' => 'Källa',
+ 'Startdate' => 'Startdatum',
+ 'State/Province' => 'Stat/provins',
+ 'Subject' => 'Ämne',
+ 'Subtotal' => 'Delsummera',
+ 'Tax Included' => 'Moms ingår',
+ 'Text' => 'Text',
+ 'To' => 'Till',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Handelsrabatt',
+ 'Translation not on file!' => 'Översättning finns inte',
+ 'Unit' => 'Enhet',
+ 'Update' => 'Uppdatera',
+ 'Vendor Number' => 'Leverantör nr',
+ 'Vendor not on file!' => 'Leverantör finns ej',
+ 'Warning!' => 'Varning!',
+ 'Week(s)' => 'Vecka(or)',
+ 'What type of item is this?' => 'Vilken typ av artikel är detta?',
+ 'Work Order' => 'Arbetsorder',
+ 'Year(s)' => 'År',
+ 'Yes' => 'Ja',
+ 'You are posting an existing transaction!' => 'Du bokför en redan bokförd transaktion',
+ 'You are printing and posting an existing transaction!' => 'Du skriver ut och bokför en redan bokförd transaktion',
+ 'You are printing and saving an existing order' => 'Du skriver ut och sparar en redan sparad order',
+ 'You are printing and saving an existing quotation' => 'Du skriver ut och sparar en redan sparad offert',
+ 'You are saving an existing order' => 'Du sparar en redan sparad order',
+ 'You are saving an existing quotation' => 'Du sparar en redan sparad offert',
+ 'Zip/Postal Code' => 'Postnr',
+ 'ea' => 'st',
+ 'for' => 'under',
+ 'posted!' => 'Bokförd!',
+ 'sent' => 'Skickad',
+ 'time(s)' => 'gång(er)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'fortsätt' => 'continue',
+ 'radera' => 'delete',
+ 'ta_bort_schemaläggning' => 'delete_schedule',
+ 'e_post' => 'e_mail',
+ 'bokför' => 'post',
+ 'bokför_som_ny' => 'post_as_new',
+ 'skriv_ut' => 'print',
+ 'skriv_och_bokför' => 'print_and_post',
+ 'skriv_ut_och_bokför_som_ny' => 'print_and_post_as_new',
+ 'säljorder' => 'sales_order',
+ 'spara_schemaläggning' => 'save_schedule',
+ 'schemalägg' => 'schedule',
+ 'skicka_till' => 'ship_to',
+ 'uppdatera' => 'update',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/se/jc b/locale/se/jc
new file mode 100755
index 00000000..0c55cef1
--- /dev/null
+++ b/locale/se/jc
@@ -0,0 +1,153 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Bokförings-meny',
+ 'Add Stores Card' => 'Lägg till butikskort',
+ 'Add Time Card' => 'Lägg till tidkort',
+ 'Allocated' => 'Kopplad',
+ 'Amount' => 'Belopp',
+ 'Are you sure you want to delete time card for' => 'Är du säker du vill ta bort tidkort för',
+ 'Cannot add stores card for a completed job!' => 'Kan inte lägga till butikskort för ett avslutat arbete!',
+ 'Cannot add time card for a completed job!' => 'Kan inte lägga till tidkort för ett avslutat arbete!',
+ 'Cannot change stores card for a completed job!' => 'Kan inte byta butikskort för ett avslutat arbete!',
+ 'Cannot change time card for a completed job!' => 'Kan inte byta tidkort för ett avslutat arbete!',
+ 'Cannot delete time card!' => 'Kan inte ta bort tidkort!',
+ 'Cannot save stores card for a closed period!' => 'Kan inte spara tidkort för en avslutad period!',
+ 'Cannot save stores card!' => 'Kan inte spara tidkort!',
+ 'Cannot save time card for a closed period!' => 'Kan inte spara tidkort för en avslutad periode!',
+ 'Cannot save time card!' => 'Kan inte spara tidkort!',
+ 'Chargeable' => 'Debiterbar',
+ 'Clocked' => 'Tidmätt',
+ 'Closed' => 'Avslutad',
+ 'Confirm!' => 'Bekräfta!',
+ 'Continue' => 'Fortsätt',
+ 'Cost' => 'Kostnader',
+ 'Current' => 'Nuvarande',
+ 'Date' => 'Datum',
+ 'Date missing!' => 'Datum saknas',
+ 'Date worked' => 'Datum arbetat',
+ 'Delete' => 'Radera',
+ 'Description' => 'Beskrivning',
+ 'Edit Time Card' => 'Ändra tidkort',
+ 'Employee' => 'Anställd',
+ 'Friday' => 'Fredag',
+ 'From' => 'Från',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Inkludera i rapport',
+ 'Job Description' => 'Arbetsbeskrivning',
+ 'Job Name' => 'Arbetsnamn',
+ 'Job Number' => 'Jobb nr',
+ 'Job Number missing!' => 'Jobb nr saknas',
+ 'Labor Code' => 'Arbetarkod',
+ 'Labor Code missing!' => 'Arbetarkod saknas',
+ 'Monday' => 'Måndag',
+ 'Month' => 'Månad',
+ 'No Employees on file!' => 'Inga anställda lagrade!',
+ 'No Labor codes on file!' => 'Inen arbetarkod sparad!',
+ 'No Parts on file!' => 'Inga delar sparade!',
+ 'No open Jobs!' => 'Inga pågående arbeten!',
+ 'No open Projects!' => 'Inga pågående projekt!',
+ 'Non-chargeable' => 'Icke debiterbar',
+ 'Notes' => 'Anmärkningar',
+ 'Open' => 'Aktuell',
+ 'PDF' => 'PDF',
+ 'Part Number' => 'Artikel nr',
+ 'Period' => 'Period',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Skriv ut',
+ 'Print and Save' => 'Skriv och spara',
+ 'Print and Save as new' => 'Skriv ut och spara som ny',
+ 'Printed' => 'Utskriven',
+ 'Project Name' => 'Projekt namn',
+ 'Project Number' => 'Projekt nr',
+ 'Project Number missing!' => 'Projektnummer saknas',
+ 'Project/Job Name' => 'Projekt/arbete namn',
+ 'Project/Job Number' => 'Projekt/arbete nr',
+ 'Qty' => 'Antal',
+ 'Quarter' => 'Kvartal',
+ 'Queue' => 'Kö',
+ 'Queued' => 'Köad',
+ 'Saturday' => 'Lördag',
+ 'Save' => 'Spara',
+ 'Save as new' => 'Spara som ny',
+ 'Screen' => 'Skärm',
+ 'Select a Printer!' => 'Välj skrivare',
+ 'Select postscript or PDF!' => 'Välj Postscript eller PDF',
+ 'Service Code' => 'Servicekod',
+ 'Service Code missing!' => 'Servicekod saknas',
+ 'Service/Labor Code' => 'Service/arbetarkod ',
+ 'Startdate' => 'Startdatum',
+ 'Stores Card' => 'Butikskort',
+ 'Stores Card saved!' => 'Butikskort sparad',
+ 'Stores Cards' => 'Butikskort',
+ 'Subtotal' => 'Delsummera',
+ 'Sunday' => 'Söndag',
+ 'Thursday' => 'Torsdag',
+ 'Time Card' => 'Tidkort',
+ 'Time Card deleted!' => 'Tidkort borttaget',
+ 'Time Card saved!' => 'Tidkort sparat',
+ 'Time Cards' => 'Tidkort',
+ 'Time In' => 'Tid in',
+ 'Time Out' => 'Tid ut',
+ 'To' => 'Till',
+ 'Total' => 'Total',
+ 'Tuesday' => 'Tisdag',
+ 'Update' => 'Uppdatera',
+ 'Warning!' => 'Varning!',
+ 'Wednesday' => 'Onsdag',
+ 'Year' => 'År',
+ 'Yes' => 'Ja',
+ 'You are printing and saving an existing transaction!' => 'Du skriver ut och sparar en redan lagrad transaktion!',
+ 'You are saving an existing transaction!' => 'Du sparar en redan lagrad transaktion!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'lägg_till_butikskort' => 'add_stores_card',
+ 'lägg_till_tidkort' => 'add_time_card',
+ 'fortsätt' => 'continue',
+ 'radera' => 'delete',
+ 'skriv_ut' => 'print',
+ 'skriv_och_spara' => 'print_and_save',
+ 'skriv_ut_och_spara_som_ny' => 'print_and_save_as_new',
+ 'spara' => 'save',
+ 'spara_som_ny' => 'save_as_new',
+ 'uppdatera' => 'update',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/se/locales.pl b/locale/se/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/se/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/se/login b/locale/se/login
new file mode 100755
index 00000000..45a57d4b
--- /dev/null
+++ b/locale/se/login
@@ -0,0 +1,25 @@
+$self{texts} = {
+ 'Access Denied!' => 'Fel kod eller användarnamn!',
+ 'Company' => 'Företag',
+ 'Continue' => 'Fortsätt',
+ 'Dataset is newer than version!' => 'Dataset är nyare än programversionen',
+ 'Incorrect Dataset version!' => 'Felaktig databasversion',
+ 'Login' => 'Logga in',
+ 'Name' => 'Namn',
+ 'Password' => 'Lösenord',
+ 'Upgrading to Version' => 'Uppgradera till version',
+ 'Version' => 'Version',
+ 'You did not enter a name!' => 'Du skrev inte in något namn',
+ 'done' => 'Färdigt',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ 'logga_in' => 'login',
+};
+
+1;
+
diff --git a/locale/se/menu b/locale/se/menu
new file mode 100755
index 00000000..c2c5b150
--- /dev/null
+++ b/locale/se/menu
@@ -0,0 +1,141 @@
+$self{texts} = {
+ 'AP' => 'Leverantörsfakturor',
+ 'AP Aging' => 'Förfallna fakturor',
+ 'AP Transaction' => 'Betald skuld',
+ 'AR' => 'Kundfakturor',
+ 'AR Aging' => 'Förfallna fordringar',
+ 'AR Transaction' => 'Betald Fodran',
+ 'Accounting Menu' => 'Bokförings-meny',
+ 'Add Account' => 'Nytt konto',
+ 'Add Assembly' => 'Ny sammansättning',
+ 'Add Business' => 'Lägg till verksamhet',
+ 'Add Customer' => 'Ny kund',
+ 'Add Department' => 'Ny avdelning',
+ 'Add Employee' => 'Ny anställd',
+ 'Add GIFI' => 'Ny SRU-kod',
+ 'Add Group' => 'Ny grupp',
+ 'Add Labor/Overhead' => 'Lägg till arbete/omkostnader',
+ 'Add Language' => 'Lägg till språk',
+ 'Add Part' => 'Ny vara',
+ 'Add Pricegroup' => 'Ny prisgrupp',
+ 'Add Project' => 'Nytt projekt',
+ 'Add SIC' => 'Ny sni-kod (industrikod)',
+ 'Add Service' => 'Lägg till tjänst',
+ 'Add Time Card' => 'Lägg till tidkort',
+ 'Add Transaction' => 'Nytt verifikat',
+ 'Add Vendor' => 'Ny leverantör',
+ 'Add Warehouse' => 'Lägg till lager',
+ 'All Items' => 'Alla varor',
+ 'Assemblies' => 'Sammansättningar',
+ 'Audit Control' => 'Revisionskontroll',
+ 'Backup' => 'Säkerhetkopia',
+ 'Balance Sheet' => 'Balansräkning',
+ 'Batch Printing' => 'Utskrift av grupp',
+ 'Bin List' => 'Lager lista',
+ 'Bin Lists' => 'Lager listor',
+ 'Cash' => 'Betalningar',
+ 'Chart of Accounts' => 'Kontoplan',
+ 'Check' => 'Kontroll',
+ 'Components' => 'Komponenter',
+ 'Customers' => 'Kunder',
+ 'Defaults' => 'Inställningar',
+ 'Departments' => 'Avdelningar',
+ 'Description' => 'Beskrivning',
+ 'Employees' => 'Anställda',
+ 'General Ledger' => 'Bokföring',
+ 'Generate' => 'Skapa',
+ 'Goods & Services' => 'Varor och Tjänster',
+ 'Groups' => 'Grupper',
+ 'HR' => 'Mänskligt kapital',
+ 'HTML Templates' => 'HTML mallar',
+ 'History' => 'Historik',
+ 'Income Statement' => 'Resultaträkning',
+ 'Invoice' => 'Faktura',
+ 'LaTeX Templates' => 'LaTeX Mallar',
+ 'Labor/Overhead' => 'Arbete/omkostnader',
+ 'Language' => 'Språk',
+ 'List Accounts' => 'Lista konton',
+ 'List Businesses' => 'Lista verksamheter',
+ 'List Departments' => 'Lista avdelningar',
+ 'List GIFI' => 'Lista SRU-koder',
+ 'List Languages' => 'Lista språk',
+ 'List Projects' => 'Lista projekt',
+ 'List SIC' => 'Lista SNI-koder',
+ 'List Warehouses' => 'Lista lager',
+ 'Logout' => 'Logga ut',
+ 'New Window' => 'Nytt fönster',
+ 'Non-taxable' => 'Momsfri',
+ 'Open' => 'Aktuell',
+ 'Order Entry' => 'Beställningar',
+ 'Outstanding' => 'Förfallen',
+ 'POS' => 'Försäljning',
+ 'POS Invoice' => 'Kundfaktura',
+ 'Packing List' => 'Packsedel',
+ 'Packing Lists' => 'Packsedlar',
+ 'Parts' => 'Artiklar',
+ 'Payment' => 'Betalning',
+ 'Payments' => 'Betalningar',
+ 'Pick List' => 'Plocklista',
+ 'Pick Lists' => 'Plocklistor',
+ 'Preferences' => 'Inställningar',
+ 'Pricegroups' => 'Prisgrupper',
+ 'Print' => 'Skriv ut',
+ 'Projects' => 'Projekt',
+ 'Purchase Order' => 'Inköpsorder',
+ 'Purchase Orders' => 'Inköpsordrar',
+ 'Quotation' => 'Offert',
+ 'Quotations' => 'Offerter',
+ 'RFQ' => 'Begäran om offert',
+ 'RFQs' => 'Begäran om offert',
+ 'Receipt' => 'Kvitto',
+ 'Receipts' => 'Kvitton',
+ 'Receive' => 'Ta emot',
+ 'Reconciliation' => 'Justering mot kontoutdrag',
+ 'Recurring Transactions' => 'Återkommande transaktion',
+ 'Reports' => 'Rapporter',
+ 'SIC' => 'SNI-kod',
+ 'Sale' => 'Försäljning',
+ 'Sales Invoice' => 'Kundfaktura',
+ 'Sales Invoices' => 'Kundfakturor',
+ 'Sales Order' => 'Säljorder',
+ 'Sales Orders' => 'Säljordrar',
+ 'Save to File' => 'Spara till fil',
+ 'Search' => 'Sök',
+ 'Send by E-Mail' => 'Skicka via E-Post',
+ 'Services' => 'Tjänster',
+ 'Ship' => 'Skicka',
+ 'Shipping' => 'Leveranser',
+ 'Statement' => 'Redovisning',
+ 'Stock Assembly' => 'Lager produkter',
+ 'Stylesheet' => 'Stilmall',
+ 'System' => 'System',
+ 'Tax collected' => 'Moms total',
+ 'Tax paid' => 'Moms betalad',
+ 'Text Templates' => 'Text mallar',
+ 'Time Card' => 'Tidkort',
+ 'Time Cards' => 'Tidkort',
+ 'Transactions' => 'Transaktioner',
+ 'Transfer' => 'Överför',
+ 'Transfer Inventory' => 'ÖVerför varor',
+ 'Translations' => 'Översättningar',
+ 'Trial Balance' => 'Provbalans',
+ 'Type of Business' => 'Typ av verksamhet',
+ 'Vendor Invoice' => 'Leverantörsfaktura',
+ 'Vendors' => 'Leverantörer',
+ 'Version' => 'Version',
+ 'Warehouses' => 'Lager',
+ 'Work Order' => 'Arbetsorder',
+ 'Work Orders' => 'Arbetsordrar',
+ 'Yearend' => 'Årsavslut',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/se/oe b/locale/se/oe
new file mode 100755
index 00000000..49d2256a
--- /dev/null
+++ b/locale/se/oe
@@ -0,0 +1,373 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Bokförings-meny',
+ 'Add Exchange Rate' => 'Ny växelkurs',
+ 'Add Purchase Order' => 'Ny inköpsorder',
+ 'Add Quotation' => 'Ny offert',
+ 'Add Request for Quotation' => 'Ny begäran om offert',
+ 'Add Sales Invoice' => 'Ny kundfaktura',
+ 'Add Sales Order' => 'Ny säljorder',
+ 'Add Vendor Invoice' => 'Ny leverantörsfaktura',
+ 'Address' => 'Adress',
+ 'Amount' => 'Belopp',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Order Number' => 'Är du säker på att du vill radera Order Nummer',
+ 'Are you sure you want to delete Quotation Number' => 'Är du säker på att du vill radera Offert Nummer',
+ 'Attachment' => 'Bilaga',
+ 'Aug' => 'Aug',
+ 'August' => 'Augusti',
+ 'Bcc' => 'Dold kopia till',
+ 'Billing Address' => 'Faktura adress',
+ 'Bin' => 'Antal i lager',
+ 'Bin List' => 'Lager lista',
+ 'Business' => 'Verksamhet',
+ 'C' => 'Avskrivningar',
+ 'Cannot delete order!' => 'Kan inte radera order',
+ 'Cannot delete quotation!' => 'Kan inte radera offert',
+ 'Cannot save order!' => 'Kan inte spara order',
+ 'Cannot save quotation!' => 'Kan inte spara offert!',
+ 'Cc' => 'Kopia',
+ 'City' => 'Stad',
+ 'Closed' => 'Avslutad',
+ 'Company Name' => 'Företags namn',
+ 'Confirm!' => 'Bekräfta!',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Fortsätt',
+ 'Copies' => 'Kopior',
+ 'Cost' => 'Kostnader',
+ 'Could not save!' => 'Kan inte spara',
+ 'Could not transfer Inventory!' => 'Kan inte överföra inventarier!',
+ 'Country' => 'Land',
+ 'Credit Limit' => 'Kreditgräns',
+ 'Curr' => 'Valuta',
+ 'Currency' => 'Valuta',
+ 'Current' => 'Nuvarande',
+ 'Customer' => 'Kund',
+ 'Customer Number' => 'Kund nr',
+ 'Customer missing!' => 'Kund saknas',
+ 'Customer not on file!' => 'Kund finns ej',
+ 'Date' => 'Datum',
+ 'Date Received' => 'Datum mottaget',
+ 'Date received missing!' => 'Mottagningsdatum saknas',
+ 'Day(s)' => 'Dag(ar',
+ 'Dec' => 'Dec',
+ 'December' => 'December',
+ 'Delete' => 'Radera',
+ 'Delete Schedule' => 'Ta bort schemaläggning',
+ 'Delivery Date' => 'Leveransdatum',
+ 'Department' => 'Kostnadsställe/resultatenhet',
+ 'Description' => 'Beskrivning',
+ 'Done' => 'Klart',
+ 'E-mail' => 'E-Post',
+ 'E-mail address missing!' => 'E-Postadress saknas',
+ 'E-mail message' => 'E-post meddelande',
+ 'E-mailed' => 'Skickad med e-post',
+ 'Edit Purchase Order' => 'Redigera inköpsorder',
+ 'Edit Quotation' => 'Redigera offert',
+ 'Edit Request for Quotation' => 'Redigera begäran om offert',
+ 'Edit Sales Order' => 'Redigera säljorder',
+ 'Employee' => 'Anställd',
+ 'Every' => 'Varje',
+ 'Exchange Rate' => 'Växlingskurs',
+ 'Exchange rate missing!' => 'Växelkurs saknas',
+ 'Extended' => 'Summa',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Februari',
+ 'For' => 'under',
+ 'From' => 'Från',
+ 'From Warehouse' => 'Från lager',
+ 'Generate Orders' => 'Skapa order',
+ 'Generate Purchase Orders' => 'Skapa inköpsorder',
+ 'Generate Purchase Orders from Sales Order' => 'Skapa inköpsorder från försäljningsorder',
+ 'Generate Sales Order' => 'Skapa försäljningsorder',
+ 'Generate Sales Order from Purchase Orders' => 'Skapa försäljningsorder från inköpsorder',
+ 'Group' => 'Grupp',
+ 'ID' => 'ID',
+ 'In-line' => 'På väg',
+ 'Include Payment' => 'Inkudera betalning',
+ 'Include in Report' => 'Inkludera i rapport',
+ 'Internal Notes' => 'Egna anteckningar',
+ 'Inventory saved!' => 'Lager sparat',
+ 'Inventory transferred!' => 'Lager överfört',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date missing!' => 'Fakturadatum saknas',
+ 'Invoice Number missing!' => 'Fakturanummer saknas',
+ 'Item not on file!' => 'Varan finns inte i databasen',
+ 'Jan' => 'Jan',
+ 'January' => 'Januari',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Lead' => 'Leveranstid',
+ 'Manager' => 'Direktör',
+ 'Mar' => 'Mar',
+ 'March' => 'Mars',
+ 'May' => 'Maj',
+ 'May ' => 'Maj',
+ 'Message' => 'Meddelande',
+ 'Month' => 'Månad',
+ 'Month(s)' => 'Månad(er)',
+ 'Next Date' => 'Nästa datum',
+ 'No.' => 'Nr.',
+ 'Notes' => 'Anmärkningar',
+ 'Nothing entered!' => 'Inget inskrivet',
+ 'Nothing selected!' => 'Ingenting valt',
+ 'Nothing to transfer!' => 'Inget att överföra',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Nummer',
+ 'Number missing in Row' => 'Nummer saknas i rad',
+ 'O' => 'O',
+ 'OH' => 'På lager',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Open' => 'Aktuell',
+ 'Order' => 'Order',
+ 'Order Date' => 'Orderdatum',
+ 'Order Date missing!' => 'Orderdatum saknas',
+ 'Order Number' => 'Ordernummer',
+ 'Order Number missing!' => 'Ordernummer saknas',
+ 'Order deleted!' => 'Order raderad',
+ 'Order generation failed!' => 'Skapande av order misslyckades!',
+ 'Order saved!' => 'Order sparad',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Inköps order nr',
+ 'Packing List' => 'Packsedel',
+ 'Packing List Date missing!' => 'Packsedelsdatum saknas',
+ 'Packing List Number missing!' => 'Packsedelsnummer saknas',
+ 'Part' => 'Artikel',
+ 'Part Number' => 'Artikel nr',
+ 'Period' => 'Period',
+ 'Phone' => 'Telefon',
+ 'Pick List' => 'Plocklista',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Pris',
+ 'Print' => 'Skriv ut',
+ 'Print and Save' => 'Skriv och spara',
+ 'Print and Save as new' => 'Skriv ut och spara som ny',
+ 'Printed' => 'Utskriven',
+ 'Project' => 'Projekt',
+ 'Project not on file!' => 'Projekt finns ej',
+ 'Purchase Order' => 'Inköpsorder',
+ 'Purchase Orders' => 'Inköpsordrar',
+ 'Qty' => 'Antal',
+ 'Quarter' => 'Kvartal',
+ 'Queue' => 'Kö',
+ 'Queued' => 'Köad',
+ 'Quotation' => 'Offert',
+ 'Quotation ' => 'Offert ',
+ 'Quotation Date' => 'Offert datum',
+ 'Quotation Date missing!' => 'Offert datum saknas',
+ 'Quotation Number' => 'Offert nummer',
+ 'Quotation Number missing!' => 'Offert nummer saknas',
+ 'Quotation deleted!' => 'Offert borttagen',
+ 'Quotations' => 'Offerter',
+ 'RFQ' => 'Begäran om offert',
+ 'RFQ ' => 'Begäran om offert',
+ 'RFQ Number' => 'Begäran om offert nr',
+ 'Recd' => 'Mottagen',
+ 'Receive Merchandise' => 'Varumottagning',
+ 'Recurring Transaction' => 'Återkommande transaktioner',
+ 'Reference' => 'Referens',
+ 'Remaining' => 'Resterar',
+ 'Repeat' => 'Upprepa',
+ 'Req' => 'Best',
+ 'Request for Quotation' => 'Begäran om offert',
+ 'Request for Quotations' => 'Begäran om offerter',
+ 'Required by' => 'Beställt den',
+ 'SKU' => 'Lagernr',
+ 'Sales Invoice' => 'Kundfaktura',
+ 'Sales Order' => 'Säljorder',
+ 'Sales Orders' => 'Säljordrar',
+ 'Salesperson' => 'Försäljare',
+ 'Save' => 'Spara',
+ 'Save Schedule' => 'Spara schemaläggning',
+ 'Save as new' => 'Spara som ny',
+ 'Schedule' => 'Schemalägg',
+ 'Scheduled' => 'Schemalagd',
+ 'Screen' => 'Skärm',
+ 'Select Vendor' => 'Välj leverantör',
+ 'Select a Printer!' => 'Välj skrivare',
+ 'Select from one of the names below' => 'Välj ett av namnen nedan',
+ 'Select from one of the projects below' => 'Välj ett av projekten nedan',
+ 'Select items' => 'Välj vara',
+ 'Select postscript or PDF!' => 'Välj Postscript eller PDF',
+ 'Select txt, postscript or PDF!' => 'Välj text, postsript eller PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Serial No.' => 'Serie nr.',
+ 'Service' => 'Tjänster',
+ 'Ship' => 'Skicka',
+ 'Ship Merchandise' => 'Skicka varor',
+ 'Ship to' => 'Skicka till',
+ 'Ship via' => 'Skicka med',
+ 'Shipping Address' => 'Mottagar adress',
+ 'Shipping Date' => 'Skickat datum',
+ 'Shipping Date missing!' => 'Leveransdatum saknas',
+ 'Shipping Point' => 'Skickad',
+ 'Startdate' => 'Startdatum',
+ 'State/Province' => 'Stat/provins',
+ 'Subject' => 'Ämne',
+ 'Subtotal' => 'Delsummera',
+ 'Tax' => 'Moms',
+ 'Tax Included' => 'Moms ingår',
+ 'Terms' => 'Netto',
+ 'Text' => 'Text',
+ 'To' => 'Till',
+ 'To Warehouse' => 'Till lager',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Handelsrabatt',
+ 'Transfer' => 'Överför',
+ 'Transfer Inventory' => 'ÖVerför varor',
+ 'Transfer from' => 'Överför från',
+ 'Transfer to' => 'Överför till',
+ 'Translation not on file!' => 'Översättning finns inte',
+ 'Unit' => 'Enhet',
+ 'Update' => 'Uppdatera',
+ 'Valid until' => 'Giltig till',
+ 'Vendor' => 'Leverantör',
+ 'Vendor Invoice' => 'Leverantörsfaktura',
+ 'Vendor Number' => 'Leverantör nr',
+ 'Vendor missing!' => 'Leverantör saknas',
+ 'Vendor not on file!' => 'Leverantör finns ej',
+ 'Warehouse' => 'Lager',
+ 'Warning!' => 'Varning!',
+ 'Week(s)' => 'Vecka(or)',
+ 'What type of item is this?' => 'Vilken typ av artikel är detta?',
+ 'Work Order' => 'Arbetsorder',
+ 'Year' => 'År',
+ 'Year(s)' => 'År',
+ 'Yes' => 'Ja',
+ 'You are posting an existing transaction!' => 'Du bokför en redan bokförd transaktion',
+ 'You are printing and posting an existing transaction!' => 'Du skriver ut och bokför en redan bokförd transaktion',
+ 'You are printing and saving an existing order' => 'Du skriver ut och sparar en redan sparad order',
+ 'You are printing and saving an existing quotation' => 'Du skriver ut och sparar en redan sparad offert',
+ 'You are saving an existing order' => 'Du sparar en redan sparad order',
+ 'You are saving an existing quotation' => 'Du sparar en redan sparad offert',
+ 'Zip/Postal Code' => 'Postnr',
+ 'days' => 'dagar',
+ 'ea' => 'st',
+ 'for' => 'under',
+ 'sent' => 'Skickad',
+ 'time(s)' => 'gång(er)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'fortsätt' => 'continue',
+ 'radera' => 'delete',
+ 'ta_bort_schemaläggning' => 'delete_schedule',
+ 'klart' => 'done',
+ 'e_post' => 'e_mail',
+ 'skapa_order' => 'generate_orders',
+ 'skapa_inköpsorder' => 'generate_purchase_orders',
+ 'skapa_försäljningsorder' => 'generate_sales_order',
+ 'skriv_ut' => 'print',
+ 'skriv_och_spara' => 'print_and_save',
+ 'skriv_ut_och_spara_som_ny' => 'print_and_save_as_new',
+ 'inköpsorder' => 'purchase_order',
+ 'offert' => 'quotation',
+ 'offert_' => 'quotation_',
+ 'begäran_om_offert' => 'rfq',
+ 'begäran_om_offert' => 'rfq_',
+ 'kundfaktura' => 'sales_invoice',
+ 'säljorder' => 'sales_order',
+ 'spara' => 'save',
+ 'spara_schemaläggning' => 'save_schedule',
+ 'spara_som_ny' => 'save_as_new',
+ 'schemalägg' => 'schedule',
+ 'välj_leverantör' => 'select_vendor',
+ 'skicka_till' => 'ship_to',
+ 'Överför' => 'transfer',
+ 'uppdatera' => 'update',
+ 'leverantörsfaktura' => 'vendor_invoice',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/se/pe b/locale/se/pe
new file mode 100755
index 00000000..a1fa5c46
--- /dev/null
+++ b/locale/se/pe
@@ -0,0 +1,166 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Bokförings-meny',
+ 'Active' => 'Aktiv',
+ 'Add' => 'Lägg till',
+ 'Add Group' => 'Ny grupp',
+ 'Add Job' => 'Lägg till jobb',
+ 'Add Pricegroup' => 'Ny prisgrupp',
+ 'Add Project' => 'Nytt projekt',
+ 'Address' => 'Adress',
+ 'All' => 'Alla',
+ 'Amount' => 'Belopp',
+ 'As of' => 'Som för',
+ 'Assembly' => 'Produkt',
+ 'Assembly stocked!' => 'Produkt lagrad',
+ 'Bin' => 'Antal i lager',
+ 'Cannot stock Assembly!' => 'Kan inte lagra produkt',
+ 'Completed' => 'Utförd',
+ 'Continue' => 'Fortsätt',
+ 'Current' => 'Nuvarande',
+ 'Customer' => 'Kund',
+ 'Customer missing!' => 'Kund saknas',
+ 'Customer not on file!' => 'Kund finns ej',
+ 'Date' => 'Datum',
+ 'Delete' => 'Radera',
+ 'Description' => 'Beskrivning',
+ 'Description Translations' => 'Beskrivning av översättningar',
+ 'Detail' => 'Detalj',
+ 'Edit Description Translations' => 'Redigera översättning av beskrivning',
+ 'Edit Group' => 'Redigera grupp',
+ 'Edit Job' => 'Ändra jobb',
+ 'Edit Pricegroup' => 'Redgigera prisgrupp',
+ 'Edit Project' => 'Redigera projekt',
+ 'Employee' => 'Anställd',
+ 'Enddate' => 'Slut datum',
+ 'Failed to save order!' => 'Kunde ej spara order',
+ 'From' => 'Från',
+ 'Generate Sales Orders' => 'Skapa försäljningsorder',
+ 'Group' => 'Grupp',
+ 'Group Translations' => 'Grupp översättningar',
+ 'Group deleted!' => 'Grupp borttagen!',
+ 'Group missing!' => 'Grupp saknas!',
+ 'Group saved!' => 'Grupp sparad!',
+ 'Groups' => 'Grupper',
+ 'Inactive' => 'Inaktiv',
+ 'Income' => 'Vinst',
+ 'Job' => 'Jobb',
+ 'Job Number' => 'Jobb nr',
+ 'Job deleted!' => 'Jobb borttaget',
+ 'Job saved!' => 'Jobb sparat!',
+ 'Jobs' => 'Jobb',
+ 'Language' => 'Språk',
+ 'Languages not defined!' => 'Språk ej valt',
+ 'Link Accounts' => 'Koppla konton',
+ 'List Price' => 'Nettopris',
+ 'Month' => 'Månad',
+ 'No open Projects!' => 'Inga pågående projekt!',
+ 'Notes' => 'Anmärkningar',
+ 'Nothing selected!' => 'Ingenting valt',
+ 'Number' => 'Nummer',
+ 'Orders generated!' => 'Order skapad!',
+ 'Orphaned' => 'Fristående',
+ 'Part Number' => 'Artikel nr',
+ 'Period' => 'Period',
+ 'Pricegroup' => 'Prisgrupp',
+ 'Pricegroup deleted!' => 'Prisgrupp borttagen',
+ 'Pricegroup missing!' => 'Prisgrupp saknas',
+ 'Pricegroup saved!' => 'Prisgrupp sparad',
+ 'Pricegroups' => 'Prisgrupper',
+ 'Production' => 'Produktion',
+ 'Project' => 'Projekt',
+ 'Project Description Translations' => 'Översättning av projekt beskrivning',
+ 'Project Number' => 'Projekt nr',
+ 'Project deleted!' => 'Projekt raderat',
+ 'Project saved!' => 'Projekt sparat',
+ 'Projects' => 'Projekt',
+ 'Qty' => 'Antal',
+ 'Quarter' => 'Kvartal',
+ 'Save' => 'Spara',
+ 'Select Customer' => 'Välj kund',
+ 'Select from one of the names below' => 'Välj ett av namnen nedan',
+ 'Sell Price' => 'Försäljningspris',
+ 'Service Code' => 'Servicekod',
+ 'Startdate' => 'Startdatum',
+ 'Stock Finished Goods' => 'Lagra färdiga varor',
+ 'Summary' => 'Summa',
+ 'Tax' => 'Moms',
+ 'To' => 'Till',
+ 'Transaction Dates' => 'Överföringsdatum',
+ 'Translation' => 'Översättning',
+ 'Translation deleted!' => 'Översättning borttagen',
+ 'Translations saved!' => 'Översättning sparad',
+ 'Unit' => 'Enhet',
+ 'Update' => 'Uppdatera',
+ 'Updated' => 'Uppdaterad',
+ 'Vendor' => 'Leverantör',
+ 'Vendor not on file!' => 'Leverantör finns ej',
+ 'Weight' => 'Vikt',
+ 'Year' => 'År',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'ny_grupp' => 'add_group',
+ 'lägg_till_jobb' => 'add_job',
+ 'ny_prisgrupp' => 'add_pricegroup',
+ 'nytt_projekt' => 'add_project',
+ 'fortsätt' => 'continue',
+ 'radera' => 'delete',
+ 'skapa_försäljningsorder' => 'generate_sales_orders',
+ 'spara' => 'save',
+ 'välj_kund' => 'select_customer',
+ 'uppdatera' => 'update',
+};
+
+1;
+
diff --git a/locale/se/pos b/locale/se/pos
new file mode 100755
index 00000000..72a12dcd
--- /dev/null
+++ b/locale/se/pos
@@ -0,0 +1,81 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Bokförings-meny',
+ 'Add POS Invoice' => 'Ny försäljning',
+ 'Amount' => 'Belopp',
+ 'Business' => 'Verksamhet',
+ 'Cannot post transaction!' => 'Kan inte bokföra transaktion',
+ 'Change' => 'Ändra',
+ 'Continue' => 'Fortsätt',
+ 'Credit Limit' => 'Kreditgräns',
+ 'Currency' => 'Valuta',
+ 'Current' => 'Nuvarande',
+ 'Customer' => 'Kund',
+ 'Customer missing!' => 'Kund saknas',
+ 'Delete' => 'Radera',
+ 'Department' => 'Kostnadsställe/resultatenhet',
+ 'Description' => 'Beskrivning',
+ 'Edit POS Invoice' => 'Redigera försäljningsfakturor',
+ 'Exchange Rate' => 'Växlingskurs',
+ 'Exchange rate missing!' => 'Växelkurs saknas',
+ 'Extended' => 'Summa',
+ 'From' => 'Från',
+ 'Language' => 'Språk',
+ 'Memo' => 'Anteckning',
+ 'Month' => 'Månad',
+ 'Number' => 'Nummer',
+ 'Open' => 'Aktuell',
+ 'Period' => 'Period',
+ 'Post' => 'Bokför',
+ 'Posted!' => 'Bokförd!',
+ 'Price' => 'Pris',
+ 'Print' => 'Skriv ut',
+ 'Print and Post' => 'Skriv och bokför',
+ 'Printed' => 'Utskriven',
+ 'Qty' => 'Antal',
+ 'Quarter' => 'Kvartal',
+ 'Receipts' => 'Kvitton',
+ 'Record in' => 'Bokför på',
+ 'Remaining' => 'Resterar',
+ 'Salesperson' => 'Försäljare',
+ 'Screen' => 'Skärm',
+ 'Select a Printer!' => 'Välj skrivare',
+ 'Source' => 'Källa',
+ 'Subtotal' => 'Delsummera',
+ 'Tax Included' => 'Moms ingår',
+ 'To' => 'Till',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Handelsrabatt',
+ 'Unit' => 'Enhet',
+ 'Update' => 'Uppdatera',
+ 'Year' => 'År',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'fortsätt' => 'continue',
+ 'radera' => 'delete',
+ 'bokför' => 'post',
+ 'skriv_ut' => 'print',
+ 'skriv_och_bokför' => 'print_and_post',
+ 'uppdatera' => 'update',
+};
+
+1;
+
diff --git a/locale/se/ps b/locale/se/ps
new file mode 100755
index 00000000..ea0d2d82
--- /dev/null
+++ b/locale/se/ps
@@ -0,0 +1,396 @@
+$self{texts} = {
+ 'AP Aging' => 'Förfallna fakturor',
+ 'AP Outstanding' => 'Leverantörsskulder',
+ 'AP Transaction' => 'Betald skuld',
+ 'AP Transactions' => 'Leverantörsfakturor',
+ 'AR Aging' => 'Förfallna fordringar',
+ 'AR Outstanding' => 'Kundfordringar',
+ 'AR Transaction' => 'Betald Fodran',
+ 'AR Transactions' => 'Kundfakturor',
+ 'Account' => 'Konto',
+ 'Account Number' => 'Kontonummer',
+ 'Accounting Menu' => 'Bokförings-meny',
+ 'Accounts' => 'Konton',
+ 'Accrual' => 'Bokföringsmässig',
+ 'Add AP Transaction' => 'Lägg till utgift',
+ 'Add AR Transaction' => 'Lägg till intäkt',
+ 'Add POS Invoice' => 'Ny försäljning',
+ 'Add Purchase Order' => 'Ny inköpsorder',
+ 'Add Quotation' => 'Ny offert',
+ 'Add Request for Quotation' => 'Ny begäran om offert',
+ 'Add Sales Invoice' => 'Ny kundfaktura',
+ 'Add Sales Order' => 'Ny säljorder',
+ 'Address' => 'Adress',
+ 'Aged' => 'Utgången',
+ 'Aged Overdue' => 'Utgångsdatum överskridit',
+ 'All Accounts' => 'Alla konton',
+ 'Amount' => 'Belopp',
+ 'Amount Due' => 'Förfallet belopp',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Are you sure you want to delete Invoice Number' => 'Är du säker på att du vill radera Faktura Nummer',
+ 'Are you sure you want to delete Transaction' => 'Är du säker på att du vill radera Transaktionen',
+ 'Attachment' => 'Bilaga',
+ 'Aug' => 'Aug',
+ 'August' => 'Augusti',
+ 'Balance' => 'Balans',
+ 'Balance Sheet' => 'Balansräkning',
+ 'Bcc' => 'Dold kopia till',
+ 'Billing Address' => 'Faktura adress',
+ 'Bin' => 'Antal i lager',
+ 'Bin List' => 'Lager lista',
+ 'Business' => 'Verksamhet',
+ 'Cannot delete invoice!' => 'Kan inte radera faktura',
+ 'Cannot delete transaction!' => 'Kan inte radera händelse',
+ 'Cannot post invoice for a closed period!' => 'Kan inte bokföra en faktura för en avslutad period',
+ 'Cannot post invoice!' => 'Kan inte bokföra fakturan!',
+ 'Cannot post payment for a closed period!' => 'Kan inte bokföra en betalning för en stängd period',
+ 'Cannot post transaction for a closed period!' => 'Kan inte bokföra under en stängd period',
+ 'Cannot post transaction!' => 'Kan inte bokföra transaktion',
+ 'Cash' => 'Betalningar',
+ 'Cc' => 'Kopia',
+ 'Change' => 'Ändra',
+ 'Check' => 'Kontroll',
+ 'City' => 'Stad',
+ 'Closed' => 'Avslutad',
+ 'Company Name' => 'Företags namn',
+ 'Compare to' => 'Jämför med',
+ 'Confirm!' => 'Bekräfta!',
+ 'Contact' => 'Kontakt',
+ 'Continue' => 'Fortsätt',
+ 'Copies' => 'Kopior',
+ 'Country' => 'Land',
+ 'Credit' => 'Kredit',
+ 'Credit Limit' => 'Kreditgräns',
+ 'Curr' => 'Valuta',
+ 'Currency' => 'Valuta',
+ 'Current' => 'Nuvarande',
+ 'Current Earnings' => 'Nuvarande inkomst',
+ 'Customer' => 'Kund',
+ 'Customer Number' => 'Kund nr',
+ 'Customer missing!' => 'Kund saknas',
+ 'Customer not on file!' => 'Kund finns ej',
+ 'Date' => 'Datum',
+ 'Date Paid' => 'Betalningsdatum',
+ 'Day(s)' => 'Dag(ar',
+ 'Debit' => 'Debet',
+ 'Dec' => 'Dec',
+ 'December' => 'December',
+ 'Decimalplaces' => 'Decimaler',
+ 'Delete' => 'Radera',
+ 'Delete Schedule' => 'Ta bort schemaläggning',
+ 'Delivery Date' => 'Leveransdatum',
+ 'Department' => 'Kostnadsställe/resultatenhet',
+ 'Description' => 'Beskrivning',
+ 'Detail' => 'Detalj',
+ 'Due Date' => 'Förfallodatum',
+ 'Due Date missing!' => 'Förfallodatum saknas',
+ 'E-mail' => 'E-Post',
+ 'E-mail Statement to' => 'E-Posta rapport till',
+ 'E-mail address missing!' => 'E-Postadress saknas',
+ 'E-mail message' => 'E-post meddelande',
+ 'E-mailed' => 'Skickad med e-post',
+ 'Edit AP Transaction' => 'Redigera utgifter',
+ 'Edit AR Transaction' => 'Redigera intäkter',
+ 'Edit POS Invoice' => 'Redigera försäljningsfakturor',
+ 'Edit Sales Invoice' => 'Redigera kundfakturor',
+ 'Employee' => 'Anställd',
+ 'Every' => 'Varje',
+ 'Exch' => 'Vxl',
+ 'Exchange Rate' => 'Växlingskurs',
+ 'Exchange rate for payment missing!' => 'Växlingskurs för saknad betalning',
+ 'Exchange rate missing!' => 'Växelkurs saknas',
+ 'Extended' => 'Summa',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Februari',
+ 'For' => 'under',
+ 'From' => 'Från',
+ 'GIFI' => 'SRU-kod',
+ 'Group' => 'Grupp',
+ 'Heading' => 'Överskrift',
+ 'ID' => 'ID',
+ 'In-line' => 'På väg',
+ 'Include Exchange Rate Difference' => 'Inkludera växelkurs differens',
+ 'Include Payment' => 'Inkudera betalning',
+ 'Include in Report' => 'Inkludera i rapport',
+ 'Income Statement' => 'Resultaträkning',
+ 'Internal Notes' => 'Egna anteckningar',
+ 'Invoice' => 'Faktura',
+ 'Invoice Date' => 'Fakturadatum',
+ 'Invoice Date missing!' => 'Fakturadatum saknas',
+ 'Invoice Number' => 'Fakturanummer',
+ 'Invoice Number missing!' => 'Fakturanummer saknas',
+ 'Invoice deleted!' => 'Faktura raderad',
+ 'Item not on file!' => 'Varan finns inte i databasen',
+ 'Jan' => 'Jan',
+ 'January' => 'Januari',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Language' => 'Språk',
+ 'Manager' => 'Direktör',
+ 'Mar' => 'Mar',
+ 'March' => 'Mars',
+ 'May' => 'Maj',
+ 'May ' => 'Maj',
+ 'Memo' => 'Anteckning',
+ 'Message' => 'Meddelande',
+ 'Method' => 'Metod',
+ 'Month' => 'Månad',
+ 'Month(s)' => 'Månad(er)',
+ 'N/A' => 'ej aktuell',
+ 'Next Date' => 'Nästa datum',
+ 'No.' => 'Nr.',
+ 'Non-taxable Purchases' => 'Momsfria inköp',
+ 'Non-taxable Sales' => 'Momsfria försäljningar',
+ 'Notes' => 'Anmärkningar',
+ 'Nothing selected!' => 'Ingenting valt',
+ 'Nothing to print!' => 'Inget att skriva',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Nummer',
+ 'Number missing in Row' => 'Nummer saknas i rad',
+ 'OH' => 'På lager',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Open' => 'Aktuell',
+ 'Order' => 'Order',
+ 'Order Date missing!' => 'Orderdatum saknas',
+ 'Order Number' => 'Ordernummer',
+ 'Order Number missing!' => 'Ordernummer saknas',
+ 'Overdue' => 'Överskriden',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Inköps order nr',
+ 'Packing List' => 'Packsedel',
+ 'Packing List Date missing!' => 'Packsedelsdatum saknas',
+ 'Packing List Number missing!' => 'Packsedelsnummer saknas',
+ 'Paid' => 'Betalt',
+ 'Part' => 'Artikel',
+ 'Payment date missing!' => 'Betalningsdatum saknas',
+ 'Payments' => 'Betalningar',
+ 'Period' => 'Period',
+ 'Phone' => 'Telefon',
+ 'Pick List' => 'Plocklista',
+ 'Post' => 'Bokför',
+ 'Post as new' => 'Bokför som ny',
+ 'Posted!' => 'Bokförd!',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Pris',
+ 'Print' => 'Skriv ut',
+ 'Print and Post' => 'Skriv och bokför',
+ 'Print and Post as new' => 'Skriv ut och bokför som ny',
+ 'Printed' => 'Utskriven',
+ 'Project' => 'Projekt',
+ 'Project Number' => 'Projekt nr',
+ 'Project Transactions' => 'Projekt transaktioner',
+ 'Project not on file!' => 'Projekt finns ej',
+ 'Purchase Order' => 'Inköpsorder',
+ 'Qty' => 'Antal',
+ 'Quarter' => 'Kvartal',
+ 'Queue' => 'Kö',
+ 'Queued' => 'Köad',
+ 'Quotation' => 'Offert',
+ 'Quotation Date missing!' => 'Offert datum saknas',
+ 'Quotation Number missing!' => 'Offert nummer saknas',
+ 'Recd' => 'Mottagen',
+ 'Receipt' => 'Kvitto',
+ 'Receipts' => 'Kvitton',
+ 'Record in' => 'Bokför på',
+ 'Recurring Transaction' => 'Återkommande transaktioner',
+ 'Reference' => 'Referens',
+ 'Remaining' => 'Resterar',
+ 'Repeat' => 'Upprepa',
+ 'Report for' => 'Rapport för',
+ 'Required by' => 'Beställt den',
+ 'SKU' => 'Lagernr',
+ 'Sales Invoice.' => 'Kundfaktura.',
+ 'Sales Order' => 'Säljorder',
+ 'Salesperson' => 'Försäljare',
+ 'Save Schedule' => 'Spara schemaläggning',
+ 'Schedule' => 'Schemalägg',
+ 'Scheduled' => 'Schemalagd',
+ 'Screen' => 'Skärm',
+ 'Select a Printer!' => 'Välj skrivare',
+ 'Select all' => 'Välj alla',
+ 'Select from one of the names below' => 'Välj ett av namnen nedan',
+ 'Select from one of the projects below' => 'Välj ett av projekten nedan',
+ 'Select items' => 'Välj vara',
+ 'Select payment' => 'Välj betalningssätt',
+ 'Select postscript or PDF!' => 'Välj Postscript eller PDF',
+ 'Select txt, postscript or PDF!' => 'Välj text, postsript eller PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Serial No.' => 'Serie nr.',
+ 'Service' => 'Tjänster',
+ 'Ship' => 'Skicka',
+ 'Ship to' => 'Skicka till',
+ 'Ship via' => 'Skicka med',
+ 'Shipping Address' => 'Mottagar adress',
+ 'Shipping Point' => 'Skickad',
+ 'Source' => 'Källa',
+ 'Standard' => 'Standard',
+ 'Startdate' => 'Startdatum',
+ 'State/Province' => 'Stat/provins',
+ 'Statement' => 'Redovisning',
+ 'Statement sent to' => 'Redovisning skickad till',
+ 'Statements sent to printer!' => 'Redovisning skickade till skrivare',
+ 'Subject' => 'Ämne',
+ 'Subtotal' => 'Delsummera',
+ 'Summary' => 'Summa',
+ 'Tax' => 'Moms',
+ 'Tax Included' => 'Moms ingår',
+ 'Tax collected' => 'Moms total',
+ 'Tax paid' => 'Moms betalad',
+ 'Text' => 'Text',
+ 'Till' => 'Till',
+ 'To' => 'Till',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Handelsrabatt',
+ 'Transaction' => 'Transaktion',
+ 'Transaction deleted!' => 'Transaktion raderad',
+ 'Transaction posted!' => 'Transaktion bokförd',
+ 'Translation not on file!' => 'Översättning finns inte',
+ 'Trial Balance' => 'Provbalans',
+ 'Unit' => 'Enhet',
+ 'Update' => 'Uppdatera',
+ 'Vendor' => 'Leverantör',
+ 'Vendor Invoice.' => 'Leverantörsfaktura. ',
+ 'Vendor Number' => 'Leverantör nr',
+ 'Vendor missing!' => 'Leverantör saknas',
+ 'Vendor not on file!' => 'Leverantör finns ej',
+ 'Warning!' => 'Varning!',
+ 'Week(s)' => 'Vecka(or)',
+ 'What type of item is this?' => 'Vilken typ av artikel är detta?',
+ 'Work Order' => 'Arbetsorder',
+ 'Year' => 'År',
+ 'Year(s)' => 'År',
+ 'Yes' => 'Ja',
+ 'You are posting an existing transaction!' => 'Du bokför en redan bokförd transaktion',
+ 'You are printing and posting an existing transaction!' => 'Du skriver ut och bokför en redan bokförd transaktion',
+ 'You are printing and saving an existing order' => 'Du skriver ut och sparar en redan sparad order',
+ 'You are printing and saving an existing quotation' => 'Du skriver ut och sparar en redan sparad offert',
+ 'You are saving an existing order' => 'Du sparar en redan sparad order',
+ 'You are saving an existing quotation' => 'Du sparar en redan sparad offert',
+ 'Zip/Postal Code' => 'Postnr',
+ 'as at' => 'som vid',
+ 'ea' => 'st',
+ 'for' => 'under',
+ 'for Period' => 'för perioden',
+ 'posted!' => 'Bokförd!',
+ 'sent' => 'Skickad',
+ 'time(s)' => 'gång(er)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'betald_skuld' => 'ap_transaction',
+ 'betald_fodran' => 'ar_transaction',
+ 'fortsätt' => 'continue',
+ 'radera' => 'delete',
+ 'ta_bort_schemaläggning' => 'delete_schedule',
+ 'e_post' => 'e_mail',
+ 'bokför' => 'post',
+ 'bokför_som_ny' => 'post_as_new',
+ 'skriv_ut' => 'print',
+ 'skriv_och_bokför' => 'print_and_post',
+ 'skriv_ut_och_bokför_som_ny' => 'print_and_post_as_new',
+ 'kundfaktura_' => 'sales_invoice_',
+ 'säljorder' => 'sales_order',
+ 'spara_schemaläggning' => 'save_schedule',
+ 'schemalägg' => 'schedule',
+ 'välj_alla' => 'select_all',
+ 'skicka_till' => 'ship_to',
+ 'uppdatera' => 'update',
+ 'leverantörsfaktura._' => 'vendor_invoice_',
+ 'ja' => 'yes',
+};
+
+1;
+
diff --git a/locale/se/pw b/locale/se/pw
new file mode 100755
index 00000000..0d69e34a
--- /dev/null
+++ b/locale/se/pw
@@ -0,0 +1,13 @@
+$self{texts} = {
+ 'Continue' => 'Fortsätt',
+ 'Password' => 'Lösenord',
+ 'Session expired!' => 'Sessionen avslutad',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'fortsätt' => 'continue',
+};
+
+1;
+
diff --git a/locale/se/rc b/locale/se/rc
new file mode 100755
index 00000000..5b6a243e
--- /dev/null
+++ b/locale/se/rc
@@ -0,0 +1,79 @@
+$self{texts} = {
+ 'Account' => 'Konto',
+ 'Accounting Menu' => 'Bokförings-meny',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Aug' => 'Aug',
+ 'August' => 'Augusti',
+ 'Balance' => 'Balans',
+ 'Beginning Balance' => 'Ingående balans',
+ 'Cleared' => 'Rensad',
+ 'Continue' => 'Fortsätt',
+ 'Credit' => 'Kredit',
+ 'Current' => 'Nuvarande',
+ 'Date' => 'Datum',
+ 'Debit' => 'Debet',
+ 'Dec' => 'Dec',
+ 'December' => 'December',
+ 'Description' => 'Beskrivning',
+ 'Detail' => 'Detalj',
+ 'Difference' => 'Differens',
+ 'Done' => 'Klart',
+ 'Feb' => 'Feb',
+ 'February' => 'Februari',
+ 'From' => 'Från',
+ 'Include Exchange Rate Difference' => 'Inkludera växelkurs differens',
+ 'Jan' => 'Jan',
+ 'January' => 'Januari',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Mar' => 'Mar',
+ 'March' => 'Mars',
+ 'May' => 'Maj',
+ 'May ' => 'Maj',
+ 'Month' => 'Månad',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Out of balance!' => 'Ej i balans',
+ 'Outstanding' => 'Förfallen',
+ 'Period' => 'Period',
+ 'Quarter' => 'Kvartal',
+ 'R' => 'Utförd',
+ 'Reconciliation' => 'Bankuppgörelse',
+ 'Reconciliation Report' => 'Kontoanalys',
+ 'Select all' => 'Välj alla',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Source' => 'Källa',
+ 'Statement Balance' => 'Verkligt saldo',
+ 'Summary' => 'Summa',
+ 'To' => 'Till',
+ 'Update' => 'Uppdatera',
+ 'Year' => 'År',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'fortsätt' => 'continue',
+ 'klart' => 'done',
+ 'välj_alla' => 'select_all',
+ 'uppdatera' => 'update',
+};
+
+1;
+
diff --git a/locale/se/rp b/locale/se/rp
new file mode 100755
index 00000000..a15930d5
--- /dev/null
+++ b/locale/se/rp
@@ -0,0 +1,205 @@
+$self{texts} = {
+ 'AP Aging' => 'Förfallna fakturor',
+ 'AR Aging' => 'Förfallna fordringar',
+ 'Account' => 'Konto',
+ 'Account Number' => 'Kontonummer',
+ 'Accounting Menu' => 'Bokförings-meny',
+ 'Accounts' => 'Konton',
+ 'Accrual' => 'Bokföringsmässig',
+ 'Address' => 'Adress',
+ 'Aged' => 'Utgången',
+ 'Aged Overdue' => 'Utgångsdatum överskridit',
+ 'All Accounts' => 'Alla konton',
+ 'Amount' => 'Belopp',
+ 'Apr' => 'Apr',
+ 'April' => 'April',
+ 'Attachment' => 'Bilaga',
+ 'Aug' => 'Aug',
+ 'August' => 'Augusti',
+ 'Balance' => 'Balans',
+ 'Balance Sheet' => 'Balansräkning',
+ 'Bcc' => 'Dold kopia till',
+ 'Cash' => 'Betalningar',
+ 'Cc' => 'Kopia',
+ 'Compare to' => 'Jämför med',
+ 'Continue' => 'Fortsätt',
+ 'Copies' => 'Kopior',
+ 'Credit' => 'Kredit',
+ 'Curr' => 'Valuta',
+ 'Current' => 'Nuvarande',
+ 'Current Earnings' => 'Nuvarande inkomst',
+ 'Customer' => 'Kund',
+ 'Customer not on file!' => 'Kund finns ej',
+ 'Date' => 'Datum',
+ 'Day(s)' => 'Dag(ar',
+ 'Debit' => 'Debet',
+ 'Dec' => 'Dec',
+ 'December' => 'December',
+ 'Decimalplaces' => 'Decimaler',
+ 'Delete Schedule' => 'Ta bort schemaläggning',
+ 'Department' => 'Kostnadsställe/resultatenhet',
+ 'Description' => 'Beskrivning',
+ 'Detail' => 'Detalj',
+ 'Due Date' => 'Förfallodatum',
+ 'E-mail' => 'E-Post',
+ 'E-mail Statement to' => 'E-Posta rapport till',
+ 'E-mail address missing!' => 'E-Postadress saknas',
+ 'E-mail message' => 'E-post meddelande',
+ 'Every' => 'Varje',
+ 'Feb' => 'Feb',
+ 'February' => 'Februari',
+ 'For' => 'under',
+ 'From' => 'Från',
+ 'GIFI' => 'SRU-kod',
+ 'Heading' => 'Överskrift',
+ 'ID' => 'ID',
+ 'In-line' => 'På väg',
+ 'Include Exchange Rate Difference' => 'Inkludera växelkurs differens',
+ 'Include Payment' => 'Inkudera betalning',
+ 'Include in Report' => 'Inkludera i rapport',
+ 'Income Statement' => 'Resultaträkning',
+ 'Invoice' => 'Faktura',
+ 'Jan' => 'Jan',
+ 'January' => 'Januari',
+ 'Jul' => 'Jul',
+ 'July' => 'Juli',
+ 'Jun' => 'Jun',
+ 'June' => 'Juni',
+ 'Language' => 'Språk',
+ 'Mar' => 'Mar',
+ 'March' => 'Mars',
+ 'May' => 'Maj',
+ 'May ' => 'Maj',
+ 'Memo' => 'Anteckning',
+ 'Message' => 'Meddelande',
+ 'Method' => 'Metod',
+ 'Month' => 'Månad',
+ 'Month(s)' => 'Månad(er)',
+ 'N/A' => 'ej aktuell',
+ 'Next Date' => 'Nästa datum',
+ 'Non-taxable Purchases' => 'Momsfria inköp',
+ 'Non-taxable Sales' => 'Momsfria försäljningar',
+ 'Nothing selected!' => 'Ingenting valt',
+ 'Nov' => 'Nov',
+ 'November' => 'November',
+ 'Number' => 'Nummer',
+ 'Oct' => 'Okt',
+ 'October' => 'Oktober',
+ 'Order' => 'Order',
+ 'Overdue' => 'Överskriden',
+ 'PDF' => 'Förtryckt blankett',
+ 'Payments' => 'Betalningar',
+ 'Period' => 'Period',
+ 'Postscript' => 'Blankt papper',
+ 'Print' => 'Skriv ut',
+ 'Project' => 'Projekt',
+ 'Project Number' => 'Projekt nr',
+ 'Project Transactions' => 'Projekt transaktioner',
+ 'Project not on file!' => 'Projekt finns ej',
+ 'Quarter' => 'Kvartal',
+ 'Receipts' => 'Kvitton',
+ 'Recurring Transaction' => 'Återkommande transaktioner',
+ 'Reference' => 'Referens',
+ 'Repeat' => 'Upprepa',
+ 'Report for' => 'Rapport för',
+ 'Salesperson' => 'Försäljare',
+ 'Save Schedule' => 'Spara schemaläggning',
+ 'Screen' => 'Skärm',
+ 'Select all' => 'Välj alla',
+ 'Select from one of the names below' => 'Välj ett av namnen nedan',
+ 'Select from one of the projects below' => 'Välj ett av projekten nedan',
+ 'Select postscript or PDF!' => 'Välj Postscript eller PDF',
+ 'Sep' => 'Sep',
+ 'September' => 'September',
+ 'Source' => 'Källa',
+ 'Standard' => 'Standard',
+ 'Startdate' => 'Startdatum',
+ 'Statement' => 'Redovisning',
+ 'Statement sent to' => 'Redovisning skickad till',
+ 'Statements sent to printer!' => 'Redovisning skickade till skrivare',
+ 'Subject' => 'Ämne',
+ 'Subtotal' => 'Delsummera',
+ 'Summary' => 'Summa',
+ 'Tax' => 'Moms',
+ 'Tax collected' => 'Moms total',
+ 'Tax paid' => 'Moms betalad',
+ 'Till' => 'Till',
+ 'To' => 'Till',
+ 'Total' => 'Total',
+ 'Trial Balance' => 'Provbalans',
+ 'Vendor' => 'Leverantör',
+ 'Vendor not on file!' => 'Leverantör finns ej',
+ 'Warning!' => 'Varning!',
+ 'Week(s)' => 'Vecka(or)',
+ 'Year' => 'År',
+ 'Year(s)' => 'År',
+ 'You are posting an existing transaction!' => 'Du bokför en redan bokförd transaktion',
+ 'You are printing and posting an existing transaction!' => 'Du skriver ut och bokför en redan bokförd transaktion',
+ 'You are printing and saving an existing order' => 'Du skriver ut och sparar en redan sparad order',
+ 'You are printing and saving an existing quotation' => 'Du skriver ut och sparar en redan sparad offert',
+ 'You are saving an existing order' => 'Du sparar en redan sparad order',
+ 'You are saving an existing quotation' => 'Du sparar en redan sparad offert',
+ 'as at' => 'som vid',
+ 'for' => 'under',
+ 'for Period' => 'för perioden',
+ 'sent' => 'Skickad',
+ 'time(s)' => 'gång(er)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'fortsätt' => 'continue',
+ 'ta_bort_schemaläggning' => 'delete_schedule',
+ 'e_post' => 'e_mail',
+ 'skriv_ut' => 'print',
+ 'spara_schemaläggning' => 'save_schedule',
+ 'välj_alla' => 'select_all',
+};
+
+1;
+
diff --git a/locale/sv/COPYING b/locale/sv/COPYING
new file mode 100755
index 00000000..6197e361
--- /dev/null
+++ b/locale/sv/COPYING
@@ -0,0 +1,23 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2004
+#
+# Spanish texts:
+#
+# Author: Carlos López Linares <chlopezl@yahoo.com>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/sv/LANGUAGE b/locale/sv/LANGUAGE
new file mode 100755
index 00000000..6183b2c4
--- /dev/null
+++ b/locale/sv/LANGUAGE
@@ -0,0 +1 @@
+Spanish/El Salvador
diff --git a/locale/sv/Num2text b/locale/sv/Num2text
new file mode 100755
index 00000000..88ffe737
--- /dev/null
+++ b/locale/sv/Num2text
@@ -0,0 +1,212 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (C) 2002
+#
+# Author: Dieter Simader
+# Email: dsimader@sql-ledger.org
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+# Language: Spanish
+# Contributors: John Christian Stoddart
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#======================================================================
+
+
+sub init {
+ my $self = shift;
+
+ %{ $self->{numbername} } =
+ (0 => 'cero',
+ 1 => 'un',
+ '1o' => 'uno',
+ 2 => 'dos',
+ 3 => 'tres',
+ 4 => 'cuatro',
+ 5 => 'cinco',
+ 6 => 'seis',
+ 7 => 'siete',
+ 8 => 'ocho',
+ 9 => 'nueve',
+ 10 => 'diez',
+ 11 => 'once',
+ '11o' => 'once',
+ 12 => 'doce',
+ 13 => 'trece',
+ 14 => 'catorce',
+ 15 => 'quince',
+ 16 => 'dieciséis',
+ 17 => 'diecisiete',
+ 18 => 'dieciocho',
+ 19 => 'diecinueve',
+ 20 => 'veinte',
+ 21 => 'veintiún',
+ '21o' => 'veintiuno',
+ 22 => 'veintidós',
+ 23 => 'veintitrés',
+ 24 => 'veinticuatro',
+ 25 => 'veinticinco',
+ 26 => 'veintiséis',
+ 27 => 'veintisiete',
+ 28 => 'veintiocho',
+ 29 => 'veintinueve',
+ 30 => 'treinta',
+ 40 => 'cuarenta',
+ 50 => 'cincuenta',
+ 60 => 'sesenta',
+ 70 => 'setenta',
+ 80 => 'ochenta',
+ 90 => 'noventa',
+ 500 => 'quinientos',
+ 700 => 'setecientos',
+ 900 => 'novecientos',
+ 10**2 => 'ciento',
+ 10**3 => 'mil',
+ 10**6 => 'millón',
+ 10**12 => 'billón',
+ );
+
+}
+
+
+sub num2text {
+ my ($self, $amount) = @_;
+
+ return $self->{numbername}{0} unless $amount;
+
+ my @textnumber = ();
+
+ # split amount into chunks of 3
+ my @num = reverse split //, abs($amount);
+ my @numblock = ();
+ my $stripun = 0;
+ my @a = ();
+ my $i;
+
+ while (@num) {
+ @a = ();
+ for (1 .. 3) {
+ push @a, shift @num;
+ }
+ push @numblock, join / /, reverse @a;
+ }
+
+ # special case for 1000
+ if ($numblock[1] eq '1' && $numblock[0] gt '000') {
+ # remove first array element from textnumber
+ $stripun = 1;
+ }
+
+ while (@numblock) {
+
+ $i = $#numblock;
+ @num = split //, $numblock[$i];
+
+ $numblock[$i] *= 1;
+
+ if ($numblock[$i] == 0) {
+ pop @numblock;
+ next;
+ }
+
+ if ($numblock[$i] > 99) {
+ if ($num[0] == 1) {
+ push @textnumber, $self->{numbername}{10**2};
+ } else {
+ # special case for 500, 700, 900
+ if (grep /$num[0]/, (5,7,9)) {
+ push @textnumber, $self->{numbername}{"${num[0]}00"};
+
+ } else {
+
+ # the one from hundreds, append cientos
+ push @textnumber, $self->{numbername}{$num[0]}.$self->{numbername}{10**2}.'s';
+
+ }
+ }
+
+ # reduce numblock
+ $numblock[$i] -= $num[0] * 100;
+ }
+
+ if ($numblock[$i] > 9) {
+ # tens
+ push @textnumber, $self->format_ten($numblock[$i], $i);
+ } elsif ($numblock[$i] > 0) {
+ # ones
+ $num = $numblock[$i];
+ $num .= 'o' if ($num == 1 && $i == 0);
+ push @textnumber, $self->{numbername}{$num};
+ }
+
+ # add thousand, million
+ if ($i) {
+ $num = 10**($i * 3);
+ if ($numblock[$i] > 1) {
+ if ($i == 2 || $i == 4) {
+ $a = $self->{numbername}{$num}."es";
+ $a =~ s/ó/o/;
+ push @textnumber, $a;
+ } elsif ($i == 3) {
+ $num = 10**($i * 2);
+ $a = "$self->{10**3} $self->{numbername}{$num}"."es";
+ $a =~ s/ó/o/;
+ push @textnumber, $a;
+ } else {
+ if ($i == 1) {
+ push @textnumber, $self->{numbername}{$num};
+ } else {
+ push @textnumber, $self->{numbername}{$num}.'s';
+ }
+ }
+ } else {
+ push @textnumber, $self->{numbername}{$num};
+ }
+ }
+
+ pop @numblock;
+
+ }
+
+ shift @textnumber if $stripun;
+
+ join ' ', @textnumber;
+
+}
+
+
+sub format_ten {
+ my ($self, $amount, $i) = @_;
+
+ my $textnumber = "";
+ my @num = split //, $amount;
+
+ if ($amount > 30) {
+ $textnumber = $self->{numbername}{$num[0]*10};
+ $amount = $num[1];
+ } else {
+ $amount .= 'o' if ($num[1] == 1 && $i == 0);
+ $textnumber = $self->{numbername}{$amount};
+ $amount = 0;
+ }
+
+ $textnumber .= " y ".$self->{numbername}{$amount} if $amount;
+
+ $textnumber;
+
+}
+
+
+1;
+
diff --git a/locale/sv/aa b/locale/sv/aa
new file mode 100755
index 00000000..69dd15e3
--- /dev/null
+++ b/locale/sv/aa
@@ -0,0 +1,137 @@
+$self{texts} = {
+ 'AP Outstanding' => 'CxP Extraordinarias',
+ 'AP Transaction' => 'Transaccion - CxP',
+ 'AP Transactions' => 'Transacciones - Cuentas por Pagar',
+ 'AR Outstanding' => 'CxC Extraordinarias',
+ 'AR Transaction' => 'Transaccion - CxC',
+ 'AR Transactions' => 'Transacciones - CxC',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Monto Vencido',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => '¿Está usted seguro de que desea suprimir la transacción?',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Cannot delete transaction!' => 'No puede borrar transacción!',
+ 'Cannot post payment for a closed period!' => 'No se puede registrar pago para un periodo cerrado',
+ 'Cannot post transaction for a closed period!' => 'No se puede registrar una transacción para un periodo cerrado',
+ 'Cannot post transaction!' => 'No puede registrar transacción!',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Cerrado',
+ 'Confirm!' => 'Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Limite de Credito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => 'Falta cliente!',
+ 'Date' => 'Fecha',
+ 'Date Paid' => 'Fecha de pago',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de Vencimiento',
+ 'Due Date missing!' => 'Falta Fecha de Vencimiento!',
+ 'Employee' => 'Empleado',
+ 'Exch' => 'Interc.',
+ 'Exchange Rate' => 'Tasa de Intercambio',
+ 'Exchange rate for payment missing!' => 'No se encuentra pago por cambio de moneda',
+ 'Exchange rate missing!' => 'No se encuentra cambio de moneda',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluya en informe',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de Factura',
+ 'Invoice Date missing!' => 'Falta la Fecha de la Factura!',
+ 'Invoice Number' => 'Número de Factura',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'No.' => ' No ',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Number' => 'Orden Número',
+ 'Paid' => 'Total Pagado',
+ 'Payment date missing!' => 'No se encuentra la fecha de Pago!',
+ 'Payments' => 'Pagos',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Print' => 'Imprimir',
+ 'Project' => 'Proyecto',
+ 'Receipt' => 'Recibo',
+ 'Remaining' => 'Faltan',
+ 'Salesperson' => 'Vendedor',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Ship to' => 'Envíe a',
+ 'Ship via' => 'Envía vía',
+ 'Source' => 'Fuente',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resumen',
+ 'Tax' => 'Impuesto',
+ 'Tax Included' => 'Impuesto Incluido',
+ 'Till' => 'Hasta',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Transaction deleted!' => 'Transacción borrada!',
+ 'Transaction posted!' => 'Transacción registrada!',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor missing!' => 'Falta proveedor!',
+ 'Yes' => 'Si',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'transaccion___cxp' => 'ap_transaction',
+ 'transaccion___cxc' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'envíe_a' => 'ship_to',
+ 'actualizar' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/sv/admin b/locale/sv/admin
new file mode 100755
index 00000000..08578a01
--- /dev/null
+++ b/locale/sv/admin
@@ -0,0 +1,136 @@
+$self{texts} = {
+ 'Access Control' => 'Control de Acceso',
+ 'Accounting' => 'Contabilidad',
+ 'Add User' => 'Agregar Usuario',
+ 'Address' => 'Dirección',
+ 'Administration' => 'Administración',
+ 'Administrator' => 'Administrador',
+ 'All Datasets up to date!' => '! Todos los conjuntos de datos estan actualizados !',
+ 'Change Admin Password' => 'Cambiar Contraseña de Administrador',
+ 'Change Password' => 'Cambiar Contraseña',
+ 'Click on login name to edit!' => 'Haga clic en el nombre de acceso a
+editar',
+ 'Company' => 'Compañía',
+ 'Connect to' => 'Conectar a',
+ 'Continue' => 'Continuar',
+ 'Create Chart of Accounts' => 'Crear catálogo de cuentas',
+ 'Create Dataset' => 'Crear set de datos',
+ 'DBI not installed!' => 'DBI no instalado!',
+ 'Database' => 'Base de datos',
+ 'Database Administration' => 'Administración de base de datos',
+ 'Database Driver not checked!' => '!No selecciono driver de base de datos!',
+ 'Database User missing!' => 'No se encuentra usuario de base de datos',
+ 'Dataset' => 'Set de datos',
+ 'Dataset missing!' => 'No se encuentra Set de datos!',
+ 'Dataset updated!' => 'Base de datos actualizada!',
+ 'Date Format' => 'Formato de Fecha',
+ 'Delete' => 'Borrar',
+ 'Delete Dataset' => 'Borrar Set de Datos',
+ 'Directory' => 'Directorio',
+ 'Driver' => 'Manejador',
+ 'Dropdown Limit' => 'Límite menu dropdown',
+ 'E-mail' => 'Correo Electrónico',
+ 'Edit User' => 'Editar Usuario',
+ 'Existing Datasets' => 'Sets de dato existentes',
+ 'Fax' => 'Fax',
+ 'Host' => 'Servidor base de datos',
+ 'Hostname missing!' => 'No se encuentra servidor de base de datos',
+ 'Lock System' => 'Enllavar Sistema',
+ 'Lockfile created!' => 'Archivo de Enllavado Creado',
+ 'Lockfile removed!' => 'Archivo de enllavado borrado',
+ 'Login' => 'Nombre de Acceso',
+ 'Login name missing!' => 'Falta nombre de acceso!',
+ 'Logout' => 'Salir',
+ 'Multibyte Encoding' => 'Codificación conjunto de caracteres',
+ 'Name' => 'Nombre',
+ 'New Templates' => 'Nuevas Plantillas',
+ 'No Database Drivers available!' => 'No hay manejador de base de datos
+disponible!',
+ 'No Dataset selected!' => 'No se ha seleccionado el set de datos',
+ 'Nothing to delete!' => '!Nada para borrar!',
+ 'Number Format' => 'Formato de Numero',
+ 'Oracle Database Administration' => 'Oracle Administración de base de datos',
+ 'Password' => 'Contraseña',
+ 'Password changed!' => 'Contraseña cambiada!',
+ 'Pg Database Administration' => 'Pg Administración de base de datos',
+ 'PgPP Database Administration' => 'Adminsitracion de base de datos PgPP',
+ 'Phone' => 'Teléfono',
+ 'Port' => 'Puerto',
+ 'Port missing!' => 'No se encuentra el Puerto!',
+ 'Printer' => 'Impresora',
+ 'Save' => 'Salvar',
+ 'Setup Templates' => 'Configurar Plantillas',
+ 'Signature' => 'Firma',
+ 'Stylesheet' => 'Estilo de hoja',
+ 'Templates' => 'Plantillas',
+ 'The following Datasets are not in use and can be deleted' => 'Los
+siguientes conjuntos de datos no estan en uso y pueden ser borrados',
+ 'The following Datasets need to be updated' => 'Es necesario actualizar las siguientes bases de datos',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Esta es una verificacion preliminar de fuentes existentes. Nada será creado o borrado en esta etapa!',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Para agregar un usuario a un grupo, edite un nombre, cambie el nombre de entrada (login) y guarde los cambios. Un nuevo usuario, con las mismas variables será guardado bajo el nuevo nombre de entrada. (login)',
+ 'Unlock System' => 'Desenllavar sistema',
+ 'Update Dataset' => 'Actualizar conjunto de datos',
+ 'Use Templates' => 'Plantillas de Usuarios',
+ 'User' => 'Usuario',
+ 'User deleted!' => 'Usuario borrado!',
+ 'User saved!' => 'Usuario guardado!',
+ 'Version' => 'Versión',
+ 'does not exist' => 'No existe',
+ 'is already a member!' => 'ya es miembro!',
+ 'localhost' => 'servidor local',
+ 'locked!' => 'asegurado!',
+ 'successfully created!' => 'creado con éxito!',
+ 'successfully deleted!' => 'creado con éxito!',
+ 'website' => 'sitio web',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'agregar_usuario' => 'add_user',
+ 'cambiar_contraseña_de_administrador' => 'change_admin_password',
+ 'cambiar_contraseña' => 'change_password',
+ 'continuar' => 'continue',
+ 'crear_set_de_datos' => 'create_dataset',
+ 'borrar' => 'delete',
+ 'borrar_set_de_datos' => 'delete_dataset',
+ 'enllavar_sistema' => 'lock_system',
+ 'nombre_de_acceso' => 'login',
+ 'salir' => 'logout',
+ 'oracle_administración_de_base_de_datos' => 'oracle_database_administration',
+ 'pg_administración_de_base_de_datos' => 'pg_database_administration',
+ 'adminsitracion_de_base_de_datos_pgpp' => 'pgpp_database_administration',
+ 'salvar' => 'save',
+ 'desenllavar_sistema' => 'unlock_system',
+ 'actualizar_conjunto_de_datos' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/sv/all b/locale/sv/all
new file mode 100755
index 00000000..f02e648f
--- /dev/null
+++ b/locale/sv/all
@@ -0,0 +1,896 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+
+$self{texts} = {
+ 'A' => '',
+ 'AP' => 'Ctas X Pagar',
+ 'AP Aging' => 'Antiguedad de Saldos - CxP',
+ 'AP Outstanding' => 'CxP Extraordinarias',
+ 'AP Transaction' => 'Transaccion - CxP',
+ 'AP Transactions' => 'Transacciones - Cuentas por Pagar',
+ 'AR' => 'Ctas X Cobrar',
+ 'AR Aging' => 'Antiguedad de Saldos - CxC ',
+ 'AR Outstanding' => 'CxC Extraordinarias',
+ 'AR Transaction' => 'Transaccion - CxC',
+ 'AR Transactions' => 'Transacciones - CxC',
+ 'AR/AP' => '',
+ 'About' => 'Acerca',
+ 'Above' => '',
+ 'Access Control' => 'Control de Acceso',
+ 'Access Denied!' => '',
+ 'Account' => 'Cuenta',
+ 'Account Number' => 'Número de Cuenta',
+ 'Account Number missing!' => 'No existe el número de cuenta!',
+ 'Account Type' => 'Tipo de Cuenta',
+ 'Account Type missing!' => 'No existe el tipo de la cuenta!',
+ 'Account deleted!' => 'Cuenta borrada!',
+ 'Account does not exist!' => '',
+ 'Account saved!' => 'Cuenta guardada!',
+ 'Accounting' => 'Contabilidad',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Accounts' => 'Cuentas',
+ 'Accrual' => '',
+ 'Activate Audit trail' => '',
+ 'Active' => 'Activa',
+ 'Add' => 'Agregar',
+ 'Add AP Transaction' => '',
+ 'Add AR Transaction' => '',
+ 'Add Account' => 'Agregar Cuenta',
+ 'Add Assembly' => 'Agregar Ensamble',
+ 'Add Business' => '',
+ 'Add Cash Transfer Transaction' => 'Agregar Trans. de Transferencia de efectivo',
+ 'Add Customer' => 'Agregar Cliente',
+ 'Add Deduction' => '',
+ 'Add Department' => '',
+ 'Add Employee' => '',
+ 'Add Exchange Rate' => '',
+ 'Add GIFI' => 'Añadir código G GIFI',
+ 'Add General Ledger Transaction' => 'Agregar Transacción - Mayor General',
+ 'Add Group' => 'Agregar Grupo',
+ 'Add Job' => '',
+ 'Add Labor/Overhead' => '',
+ 'Add Language' => '',
+ 'Add POS Invoice' => 'Agregar Factura POS',
+ 'Add Part' => 'Agregar Parte',
+ 'Add Pricegroup' => '',
+ 'Add Project' => 'Agregar Proyecto',
+ 'Add Purchase Order' => 'Agregar Orden de Compra',
+ 'Add Quotation' => '',
+ 'Add Request for Quotation' => '',
+ 'Add SIC' => '',
+ 'Add Sales Invoice' => 'Agregar Factura de Venta',
+ 'Add Sales Order' => 'Agregar Nota de Remisión',
+ 'Add Service' => 'Agregar Servicio',
+ 'Add Timecard' => '',
+ 'Add Transaction' => 'Agregar Transaccion',
+ 'Add User' => 'Agregar Usuario',
+ 'Add Vendor' => 'Agregar Proveedor',
+ 'Add Vendor Invoice' => 'Agregar Factura Proveedor',
+ 'Add Warehouse' => '',
+ 'Address' => 'Dirección',
+ 'Administration' => 'Administración',
+ 'Administrator' => 'Administrador',
+ 'After Deduction' => '',
+ 'All' => 'Todos',
+ 'All Accounts' => '',
+ 'All Datasets up to date!' => '! Todos los conjuntos de datos estan actualizados !',
+ 'All Items' => '',
+ 'Allowances' => '',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Monto Vencido',
+ 'Amount missing!' => 'Falta monto!',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => '¿Esta seguro de que desea borrar la Factura No.:',
+ 'Are you sure you want to delete Order Number' => '¿Esta seguro de que desea
+borrar la Orden No.:?',
+ 'Are you sure you want to delete Quotation Number' => '',
+ 'Are you sure you want to delete Timecard for' => '',
+ 'Are you sure you want to delete Transaction' => '¿Está usted seguro de que desea suprimir la transacción?',
+ 'Are you sure you want to remove the marked entries from the queue?' => '',
+ 'Assemblies' => 'Ensamblajes',
+ 'Assemblies restocked!' => 'Conjuntos re-inventariados',
+ 'Assembly' => '',
+ 'Assembly stocked!' => '',
+ 'Asset' => 'Activo',
+ 'Attachment' => 'Adjunto',
+ 'Audit Control' => 'Control de auditoria',
+ 'Audit trail disabled' => '',
+ 'Audit trail enabled' => '',
+ 'Audit trail removed up to' => '',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Average Cost' => '',
+ 'Avg Cost' => '',
+ 'BIC' => '',
+ 'BOM' => 'Lista de Materiales',
+ 'Backup' => 'Respaldo',
+ 'Backup sent to' => 'Respaldo enviado a',
+ 'Balance' => 'Balance',
+ 'Balance Sheet' => 'Hoja de Balance',
+ 'Based on' => '',
+ 'Bcc' => 'Bcc',
+ 'Before Deduction' => '',
+ 'Beginning Balance' => 'Inicio de balance',
+ 'Below' => '',
+ 'Billing Address' => '',
+ 'Bin' => 'Bin',
+ 'Bin List' => '',
+ 'Bin Lists' => '',
+ 'Books are open' => 'Los libros estan abiertos',
+ 'Break' => '',
+ 'Business' => '',
+ 'Business Number' => 'Numero de Negocio',
+ 'Business deleted!' => '',
+ 'Business saved!' => '',
+ 'C' => 'C',
+ 'COGS' => 'Costo de Ventas',
+ 'COGS account does not exist!' => '',
+ 'Cannot add timecard for a completed job!' => '',
+ 'Cannot change timecard for a completed job!' => '',
+ 'Cannot create Assembly' => '',
+ 'Cannot create Labor' => '',
+ 'Cannot create Lock!' => '',
+ 'Cannot create Part' => '',
+ 'Cannot create Service' => '',
+ 'Cannot delete Timecard!' => '',
+ 'Cannot delete account!' => 'No puede borrar cuenta!',
+ 'Cannot delete customer!' => 'No puede borrar cliente!',
+ 'Cannot delete default account!' => 'No se puede borrar cuenta por defecto!',
+ 'Cannot delete invoice!' => 'No puede borraar factura!',
+ 'Cannot delete item!' => 'No puede borrar ítem!',
+ 'Cannot delete order!' => 'No puede borrar pedido!',
+ 'Cannot delete quotation!' => '',
+ 'Cannot delete transaction!' => 'No puede borrar transacción!',
+ 'Cannot delete vendor!' => 'No puede borrar proveedor!',
+ 'Cannot post Payment!' => '',
+ 'Cannot post Receipt!' => '',
+ 'Cannot post invoice for a closed period!' => 'No se puede registrar factura para un periodo cerrado!',
+ 'Cannot post invoice!' => 'No puede registrar factura!',
+ 'Cannot post payment for a closed period!' => 'No se puede registrar pago para un periodo cerrado',
+ 'Cannot post transaction for a closed period!' => 'No se puede registrar una transacción para un periodo cerrado',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => '',
+ 'Cannot post transaction!' => 'No puede registrar transacción!',
+ 'Cannot remove files!' => '',
+ 'Cannot save account!' => 'No puede guardar cuenta!',
+ 'Cannot save defaults!' => '',
+ 'Cannot save order!' => 'No puede guardar órden!',
+ 'Cannot save preferences!' => 'No puede guardar preferencias!',
+ 'Cannot save quotation!' => '',
+ 'Cannot save timecard for a closed period!' => '',
+ 'Cannot save timecard!' => '',
+ 'Cannot set account for more than one of AR, AP or IC' => '',
+ 'Cannot set multiple options for' => '',
+ 'Cannot set multiple options for Item' => '',
+ 'Cannot stock Assembly!' => '',
+ 'Cannot stock assemblies!' => 'No puede inventariar conjuntos!',
+ 'Cash' => 'Caja',
+ 'Cc' => 'Cc',
+ 'Change' => 'Cambio',
+ 'Change Admin Password' => 'Cambiar Contraseña de Administrador',
+ 'Change Password' => 'Cambiar Contraseña',
+ 'Charge' => '',
+ 'Chart of Accounts' => 'Catálogo Contable',
+ 'Check' => 'Cheque',
+ 'Check Inventory' => '',
+ 'Checks' => '',
+ 'City' => '',
+ 'Cleared' => '',
+ 'Click on login name to edit!' => 'Haga clic en el nombre de acceso a
+editar',
+ 'Clocked' => '',
+ 'Close Books up to' => 'Se cerraron los libros hasta',
+ 'Closed' => 'Cerrado',
+ 'Code' => '',
+ 'Code missing!' => '',
+ 'Company' => 'Compañía',
+ 'Company Name' => '',
+ 'Compare to' => 'Comparar a',
+ 'Completed' => '',
+ 'Components' => '',
+ 'Confirm' => '',
+ 'Confirm!' => 'Confirmar!',
+ 'Connect to' => 'Conectar a',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Contra' => '',
+ 'Copies' => 'Copias',
+ 'Copy to COA' => 'Copiar al catálogo de cuentas',
+ 'Cost' => '',
+ 'Cost Center' => '',
+ 'Could not save pricelist!' => '',
+ 'Could not save!' => '',
+ 'Could not transfer Inventory!' => '',
+ 'Country' => '',
+ 'Create Chart of Accounts' => 'Crear catálogo de cuentas',
+ 'Create Dataset' => 'Crear set de datos',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Limite de Credito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Current Earnings' => '',
+ 'Customer' => 'Cliente',
+ 'Customer History' => '',
+ 'Customer Number' => '',
+ 'Customer deleted!' => 'Cliente borrado!',
+ 'Customer missing!' => 'Falta cliente!',
+ 'Customer not on file!' => 'Cliente no existe en archivo!',
+ 'Customer saved!' => 'Cliente guardado!',
+ 'Customers' => 'Clientes',
+ 'DBI not installed!' => 'DBI no instalado!',
+ 'DOB' => '',
+ 'Database' => 'Base de datos',
+ 'Database Administration' => 'Administración de base de datos',
+ 'Database Driver not checked!' => '!No selecciono driver de base de datos!',
+ 'Database Host' => 'Servidor de Base de Datos',
+ 'Database User missing!' => 'No se encuentra usuario de base de datos',
+ 'Dataset' => 'Set de datos',
+ 'Dataset is newer than version!' => 'El conjunto de datos es mas nuevo que la version!!',
+ 'Dataset missing!' => 'No se encuentra Set de datos!',
+ 'Dataset updated!' => 'Base de datos actualizada!',
+ 'Date' => 'Fecha',
+ 'Date Format' => 'Formato de Fecha',
+ 'Date Paid' => 'Fecha de pago',
+ 'Date Received' => '',
+ 'Date missing!' => 'Falta fecha!',
+ 'Date received missing!' => '',
+ 'Date worked' => '',
+ 'Day' => '',
+ 'Day(s)' => '',
+ 'Days' => '',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Decimalplaces' => 'Posiciones decimales',
+ 'Decrease' => 'Decrementa',
+ 'Deduct after' => '',
+ 'Deduction deleted!' => '',
+ 'Deduction saved!' => '',
+ 'Deductions' => '',
+ 'Default Template' => '',
+ 'Defaults' => '',
+ 'Defaults saved!' => '',
+ 'Delete' => 'Borrar',
+ 'Delete Account' => 'Borrar Cuenta',
+ 'Delete Dataset' => 'Borrar Set de Datos',
+ 'Delete Schedule' => '',
+ 'Deleting a language will also delete the templates for the language' => '',
+ 'Delivery Date' => 'Fecha de Entrega',
+ 'Department' => '',
+ 'Department deleted!' => '',
+ 'Department saved!' => '',
+ 'Departments' => '',
+ 'Deposit' => 'Deposit',
+ 'Description' => 'Descripción',
+ 'Description Translations' => '',
+ 'Description missing!' => '',
+ 'Detail' => 'Detalle',
+ 'Difference' => 'Diferencia',
+ 'Directory' => 'Directorio',
+ 'Discount' => 'Descuento',
+ 'Done' => 'Listo',
+ 'Drawing' => 'Retiro',
+ 'Driver' => 'Manejador',
+ 'Dropdown Limit' => 'Límite menu dropdown',
+ 'Due Date' => 'Fecha de Vencimiento',
+ 'Due Date missing!' => 'Falta Fecha de Vencimiento!',
+ 'E-mail' => 'Correo Electrónico',
+ 'E-mail Statement to' => 'Enviar estado de cuenta por E-mail a',
+ 'E-mail address missing!' => 'Falta E-mail!',
+ 'E-mail message' => '',
+ 'E-mailed' => '',
+ 'Edit' => 'Editar',
+ 'Edit AP Transaction' => '',
+ 'Edit AR Transaction' => '',
+ 'Edit Account' => 'Editar Cuenta',
+ 'Edit Assembly' => 'Editar Ensamblaje',
+ 'Edit Business' => '',
+ 'Edit Cash Transfer Transaction' => 'Editar Transaccion de Transferencia de Efectivo',
+ 'Edit Customer' => 'Editar Cliente',
+ 'Edit Deduction' => '',
+ 'Edit Department' => '',
+ 'Edit Description Translations' => '',
+ 'Edit Employee' => '',
+ 'Edit GIFI' => 'Editar GIFI',
+ 'Edit General Ledger Transaction' => 'Editar Transacción de Mayor General',
+ 'Edit Group' => 'Editar Grupo',
+ 'Edit Job' => '',
+ 'Edit Labor/Overhead' => '',
+ 'Edit Language' => '',
+ 'Edit POS Invoice' => 'Editar Factura POS',
+ 'Edit Part' => 'Editar Parte',
+ 'Edit Preferences for' => 'Editar Preferencias para',
+ 'Edit Pricegroup' => '',
+ 'Edit Project' => 'Editar Proyecto',
+ 'Edit Purchase Order' => 'Editar Orden de Compra',
+ 'Edit Quotation' => '',
+ 'Edit Request for Quotation' => '',
+ 'Edit SIC' => '',
+ 'Edit Sales Invoice' => 'Editar Factura de Venta',
+ 'Edit Sales Order' => 'Editar Remisión',
+ 'Edit Service' => 'Editar Servicio',
+ 'Edit Template' => 'Editar Plantilla',
+ 'Edit Timecard' => '',
+ 'Edit User' => 'Editar Usuario',
+ 'Edit Vendor' => 'Editar Proveedor',
+ 'Edit Vendor Invoice' => 'Editar Factura Proveedor',
+ 'Edit Warehouse' => '',
+ 'Employee' => 'Empleado',
+ 'Employee Name' => '',
+ 'Employee Number' => '',
+ 'Employee deleted!' => '',
+ 'Employee pays' => '',
+ 'Employee saved!' => '',
+ 'Employees' => '',
+ 'Employer' => '',
+ 'Employer pays' => '',
+ 'Enddate' => '',
+ 'Ends' => '',
+ 'Enforce transaction reversal for all dates' => 'Forzar la anulación de las transacciones para todas las fechas',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Ingrese símbolo de hasta 3 letras para divisas nativa y extranjeras (USD:EUR)',
+ 'Equity' => 'Capital',
+ 'Every' => '',
+ 'Excempt age <' => '',
+ 'Exch' => 'Interc.',
+ 'Exchange Rate' => 'Tasa de Intercambio',
+ 'Exchange rate for payment missing!' => 'No se encuentra pago por cambio de moneda',
+ 'Exchange rate missing!' => 'No se encuentra cambio de moneda',
+ 'Existing Datasets' => 'Sets de dato existentes',
+ 'Expense' => 'Egreso',
+ 'Expense account does not exist!' => '',
+ 'Expense/Asset' => 'Egreso/Activo',
+ 'Extended' => 'Extendido',
+ 'FX' => 'FX',
+ 'Failed to save order!' => '',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'For' => '',
+ 'Foreign Exchange Gain' => 'Ganancia en Moneda Extranjera',
+ 'Foreign Exchange Loss' => 'Pérdida en Moneda Extranjera',
+ 'Friday' => '',
+ 'From' => 'Desde',
+ 'From Warehouse' => '',
+ 'GIFI' => 'Código GIFI',
+ 'GIFI deleted!' => 'GIFI borrado!',
+ 'GIFI missing!' => 'No se ha definido el código GIFI',
+ 'GIFI saved!' => 'GIFI guardado!',
+ 'GL' => '',
+ 'GL Reference Number' => '',
+ 'GL Transaction' => 'Transacción de mayor',
+ 'General Ledger' => 'Mayor General',
+ 'Generate' => '',
+ 'Generate Orders' => '',
+ 'Generate Purchase Orders' => '',
+ 'Generate Purchase Orders from Sales Order' => '',
+ 'Generate Sales Order' => '',
+ 'Generate Sales Order from Purchase Orders' => '',
+ 'Generate Sales Orders' => '',
+ 'Goods & Services' => 'Bienes y servicios',
+ 'Group' => 'Grupo',
+ 'Group Items' => 'Elementos de Grupo',
+ 'Group Translations' => '',
+ 'Group deleted!' => 'Grupo borrado!',
+ 'Group missing!' => 'Falta Grupo!',
+ 'Group saved!' => 'Grupo guardado!',
+ 'Groups' => 'Grupos',
+ 'HR' => '',
+ 'HTML Templates' => 'Plantillas HTML',
+ 'Heading' => 'Encabezado',
+ 'History' => 'Historico',
+ 'Home Phone' => '',
+ 'Host' => 'Servidor base de datos',
+ 'Hostname missing!' => 'No se encuentra servidor de base de datos',
+ 'IBAN' => '',
+ 'ID' => 'ID',
+ 'Image' => 'Imagen',
+ 'In-line' => 'En linea',
+ 'Inactive' => '',
+ 'Include Exchange Rate Difference' => 'Incluya diferencia de tasa de cambio',
+ 'Include Payment' => '',
+ 'Include in Report' => 'Incluya en informe',
+ 'Include in drop-down menus' => 'Incluya en menús desplegables',
+ 'Income' => 'Ingreso',
+ 'Income Statement' => 'Estado de Cuentas',
+ 'Income account does not exist!' => '',
+ 'Incorrect Dataset version!' => '!Version incorrecta de conjunto de datos!',
+ 'Increase' => 'Incrementa',
+ 'Individual Items' => 'Items Individuales',
+ 'Internal Notes' => '',
+ 'Inventory' => 'Inventario',
+ 'Inventory account does not exist!' => '',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'La cantidad en inventario debe ser cero antes de cambiar este ensamblaje a obsoleto!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'La cantidad en inventario debe ser cero antes de cambiar esta parte a obsoleto',
+ 'Inventory saved!' => '',
+ 'Inventory transferred!' => '',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de Factura',
+ 'Invoice Date missing!' => 'Falta la Fecha de la Factura!',
+ 'Invoice Number' => 'Número de Factura',
+ 'Invoice Number missing!' => 'Falta el Número de Factura!',
+ 'Invoice deleted!' => 'Factura borrada!',
+ 'Invoices' => 'Facturas',
+ 'Is this a summary account to record' => 'Es esta una cuenta de resumen a registrar?',
+ 'Item already on pricelist!' => '',
+ 'Item deleted!' => 'Item borrado!',
+ 'Item not on file!' => '¡El artículo no se encuentra en archivo!',
+ 'Items' => '',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Job' => '',
+ 'Job Name' => '',
+ 'Job Number' => '',
+ 'Job Number missing!' => '',
+ 'Job deleted!' => '',
+ 'Job saved!' => '',
+ 'Jobs' => '',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'LaTeX Templates' => 'Plantillas de LaTeX',
+ 'Labor Code' => '',
+ 'Labor/Overhead' => '',
+ 'Language' => '',
+ 'Language deleted!' => '',
+ 'Language saved!' => '',
+ 'Languages' => '',
+ 'Languages not defined!' => '',
+ 'Last Cost' => '',
+ 'Last Numbers & Default Accounts' => '',
+ 'Lead' => '',
+ 'Leadtime' => '',
+ 'Leave host and port field empty unless you want to make a remote connection.' => '',
+ 'Liability' => 'Pasivo',
+ 'Licensed to' => 'Licenciado a Moran Mendez y Asociados',
+ 'Line Total' => 'Total de la linea',
+ 'Link' => 'Enlaces',
+ 'Link Accounts' => 'Enlazar Cuentas',
+ 'List' => '',
+ 'List Accounts' => 'Listar Cuentas',
+ 'List Businesses' => '',
+ 'List Departments' => '',
+ 'List GIFI' => 'Listar código GIFI',
+ 'List Languages' => '',
+ 'List Price' => 'Precio de Lista',
+ 'List Projects' => '',
+ 'List SIC' => '',
+ 'List Transactions' => 'Listar Transacciones',
+ 'List Warehouses' => '',
+ 'Lock System' => 'Enllavar Sistema',
+ 'Lockfile created!' => 'Archivo de Enllavado Creado',
+ 'Lockfile removed!' => 'Archivo de enllavado borrado',
+ 'Login' => 'Nombre de Acceso',
+ 'Login name missing!' => 'Falta nombre de acceso!',
+ 'Logout' => 'Salir',
+ 'Make' => 'Marca',
+ 'Manager' => '',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'Marked entries printed!' => '',
+ 'Markup' => '',
+ 'Maximum' => '',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Memo' => '',
+ 'Menu Width' => '',
+ 'Message' => 'Mensaje',
+ 'Method' => '',
+ 'Microfiche' => 'Microficha',
+ 'Model' => 'Modelo',
+ 'Monday' => '',
+ 'Month' => '',
+ 'Month(s)' => '',
+ 'Months' => '',
+ 'Multibyte Encoding' => 'Codificación conjunto de caracteres',
+ 'N/A' => 'N/A',
+ 'Name' => 'Nombre',
+ 'Name missing!' => 'Falta nombre!',
+ 'New Templates' => 'Nuevas Plantillas',
+ 'New Window' => '',
+ 'Next' => '',
+ 'Next Date' => '',
+ 'Next Number' => '',
+ 'No' => 'No',
+ 'No Database Drivers available!' => 'No hay manejador de base de datos
+disponible!',
+ 'No Dataset selected!' => 'No se ha seleccionado el set de datos',
+ 'No Employees on file!' => '',
+ 'No Labor codes on file!' => '',
+ 'No email address for' => 'Falta email para',
+ 'No open Jobs!' => '',
+ 'No open Projects!' => '',
+ 'No.' => ' No ',
+ 'Non-taxable' => '',
+ 'Non-taxable Purchases' => '',
+ 'Non-taxable Sales' => '',
+ 'Non-tracking Items' => '',
+ 'Notes' => 'Notas',
+ 'Nothing entered!' => '',
+ 'Nothing selected!' => 'Nada seleccionado!',
+ 'Nothing to delete!' => '!Nada para borrar!',
+ 'Nothing to print!' => '',
+ 'Nothing to transfer!' => '',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number Format' => 'Formato de Numero',
+ 'Number missing in Row' => 'No se encuentra el número en la fila',
+ 'O' => 'O',
+ 'OH' => '',
+ 'Obsolete' => 'Obsoleto',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'On Hand' => 'En Existencia',
+ 'Open' => 'Abierto',
+ 'Oracle Database Administration' => 'Oracle Administración de base de datos',
+ 'Order' => 'Orden',
+ 'Order Date' => 'Fecha de Orden',
+ 'Order Date missing!' => 'No se encuentra la fecha de orden!',
+ 'Order Entry' => 'Orden de Entrada',
+ 'Order Number' => 'Orden Número',
+ 'Order Number missing!' => 'No se encuentra el número de orden!',
+ 'Order deleted!' => 'Orden borrada!',
+ 'Order generation failed!' => '',
+ 'Order saved!' => 'Orden guardada!',
+ 'Orders generated!' => '',
+ 'Orphaned' => 'Huerfano',
+ 'Out of balance transaction!' => '',
+ 'Out of balance!' => 'Fuera de balance!',
+ 'Outstanding' => 'Extraordinario',
+ 'PDF' => 'PDF',
+ 'PO Number' => '',
+ 'POS' => 'POS',
+ 'POS Invoice' => 'Factura POS',
+ 'Packing List' => 'Lista de Empaque',
+ 'Packing List Date missing!' => '!Falta fecha en lista de empaque!',
+ 'Packing List Number missing!' => '!Falta nzmero en lista de empaque!',
+ 'Packing Lists' => '',
+ 'Paid' => 'Total Pagado',
+ 'Part' => 'Partes',
+ 'Part Number' => '',
+ 'Partnumber' => '',
+ 'Parts' => 'Partes',
+ 'Password' => 'Contraseña',
+ 'Password changed!' => 'Contraseña cambiada!',
+ 'Password does not match!' => '',
+ 'Passwords do not match!' => '',
+ 'Payables' => 'Por Pagar',
+ 'Payment' => 'Pago',
+ 'Payment date missing!' => 'No se encuentra la fecha de Pago!',
+ 'Payment posted!' => 'Pago registrado!',
+ 'Payments' => 'Pagos',
+ 'Payments posted!' => '',
+ 'Payroll Deduction' => '',
+ 'Period' => '',
+ 'Pg Database Administration' => 'Pg Administración de base de datos',
+ 'PgPP Database Administration' => 'Adminsitracion de base de datos PgPP',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => '',
+ 'Pick Lists' => '',
+ 'Port' => 'Puerto',
+ 'Port missing!' => 'No se encuentra el Puerto!',
+ 'Pos' => '',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Posted!' => 'Enviado!',
+ 'Posting' => '',
+ 'Posting failed!' => '',
+ 'Postscript' => 'Postscript',
+ 'Preferences' => 'Preferencias',
+ 'Preferences saved!' => 'Preferencias guardadas!',
+ 'Prepayment' => '',
+ 'Price' => 'Precio',
+ 'Pricegroup' => '',
+ 'Pricegroup deleted!' => '',
+ 'Pricegroup missing!' => '',
+ 'Pricegroup saved!' => '',
+ 'Pricegroups' => '',
+ 'Pricelist' => '',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => '',
+ 'Print and Post as new' => '',
+ 'Print and Save' => '',
+ 'Print and Save as new' => '',
+ 'Print and post as new' => '',
+ 'Print and save as new' => '',
+ 'Printed' => '',
+ 'Printer' => 'Impresora',
+ 'Printing' => '',
+ 'Printing ... ' => '',
+ 'Process Transactions' => '',
+ 'Production' => '',
+ 'Profit Center' => '',
+ 'Project' => 'Proyecto',
+ 'Project Description Translations' => '',
+ 'Project Name' => '',
+ 'Project Number' => 'Número de Proyecto',
+ 'Project Number missing!' => 'Falta número de proyecto!',
+ 'Project Transactions' => '',
+ 'Project deleted!' => 'Proyecto borrado!',
+ 'Project not on file!' => '',
+ 'Project saved!' => 'Proyecto guardado!',
+ 'Project/Job Name' => '',
+ 'Project/Job Number' => '',
+ 'Projects' => 'Proyectos',
+ 'Purchase Order' => 'Orden de Compra',
+ 'Purchase Order Number' => '',
+ 'Purchase Orders' => 'Ordenes de Compra',
+ 'Qty' => 'Cant.',
+ 'Quantity exceeds available units to stock!' => '',
+ 'Quarter' => '',
+ 'Quotation' => '',
+ 'Quotation ' => '',
+ 'Quotation Date' => '',
+ 'Quotation Date missing!' => '',
+ 'Quotation Number' => '',
+ 'Quotation Number missing!' => '',
+ 'Quotation deleted!' => '',
+ 'Quotations' => '',
+ 'R' => 'R',
+ 'RFQ' => '',
+ 'RFQ ' => '',
+ 'RFQ Number' => '',
+ 'RFQs' => '',
+ 'ROP' => 'ROP',
+ 'Rate' => 'Tarifa',
+ 'Rate missing!' => '',
+ 'Recd' => 'Rec',
+ 'Receipt' => 'Recibo',
+ 'Receipt posted!' => '',
+ 'Receipts' => 'Ingresos',
+ 'Receivables' => 'Por Cobrar',
+ 'Receive' => '',
+ 'Receive Merchandise' => '',
+ 'Reconciliation' => 'Conciliación',
+ 'Reconciliation Report' => '',
+ 'Record in' => 'Registrar en',
+ 'Recurring Transaction' => '',
+ 'Recurring Transactions' => '',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Faltan',
+ 'Remove' => '',
+ 'Remove Audit trail up to' => '',
+ 'Removed spoolfiles!' => '',
+ 'Removing marked entries from queue ...' => '',
+ 'Repeat' => '',
+ 'Report for' => 'Informe para',
+ 'Reports' => 'Reportes',
+ 'Req' => '',
+ 'Request for Quotation' => '',
+ 'Request for Quotations' => '',
+ 'Required by' => 'Requerido por',
+ 'Retained Earnings' => 'Ganacias Retenidas',
+ 'Role' => '',
+ 'S' => '',
+ 'SIC' => '',
+ 'SIC deleted!' => '',
+ 'SIC saved!' => '',
+ 'SKU' => '',
+ 'SSN' => '',
+ 'Sale' => 'Venta',
+ 'Sales' => 'Ventas',
+ 'Sales Invoice' => 'Factura de Venta',
+ 'Sales Invoice ' => '',
+ 'Sales Invoice.' => '',
+ 'Sales Invoice/AR Transaction Number' => '',
+ 'Sales Invoices' => 'Facturas de Venta',
+ 'Sales Order' => 'Orden de venta',
+ 'Sales Order Number' => '',
+ 'Sales Orders' => 'Ordenes de venta',
+ 'Sales Quotation Number' => '',
+ 'Salesperson' => 'Vendedor',
+ 'Saturday' => '',
+ 'Save' => 'Salvar',
+ 'Save Pricelist' => '',
+ 'Save Schedule' => '',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Save to File' => 'Guardar en archivo',
+ 'Saving' => '',
+ 'Schedule' => '',
+ 'Scheduled' => '',
+ 'Screen' => 'Pantalla',
+ 'Search' => 'Buscar',
+ 'Select' => '',
+ 'Select Customer' => '',
+ 'Select Vendor' => '',
+ 'Select a Printer!' => '',
+ 'Select a printer!' => '',
+ 'Select all' => 'Seleccione todos',
+ 'Select from one of the items below' => 'Seleccione uno de los elementos',
+ 'Select from one of the names below' => 'Seleccione uno de los elementos listados',
+ 'Select from one of the projects below' => '',
+ 'Select items' => '',
+ 'Select payment' => '',
+ 'Select postscript or PDF!' => 'Seleccione postscript o PDF',
+ 'Select txt, postscript or PDF!' => '',
+ 'Sell' => '',
+ 'Sell Price' => 'Precio de Venta',
+ 'Send by E-Mail' => 'Enviar por E-Mail',
+ 'Sending' => '',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => '',
+ 'Serial Number' => '',
+ 'Service' => 'Servicio',
+ 'Service Code' => '',
+ 'Service/Labor Code' => '',
+ 'Services' => 'Servicios',
+ 'Session Timeout' => '',
+ 'Session expired!' => '',
+ 'Setup Templates' => 'Configurar Plantillas',
+ 'Ship' => 'Envíe',
+ 'Ship Merchandise' => '',
+ 'Ship to' => 'Envíe a',
+ 'Ship via' => 'Envía vía',
+ 'Shipping' => '',
+ 'Shipping Address' => '',
+ 'Shipping Date' => '',
+ 'Shipping Date missing!' => '',
+ 'Shipping Point' => '',
+ 'Short' => 'Corto',
+ 'Signature' => 'Firma',
+ 'Source' => 'Fuente',
+ 'Spoolfile' => '',
+ 'Standard' => 'Estandar',
+ 'Standard Industrial Codes' => '',
+ 'Startdate' => '',
+ 'State' => '',
+ 'State/Province' => '',
+ 'Statement' => 'Estado de Cuenta',
+ 'Statement Balance' => 'Balance Estado de Cuenta',
+ 'Statement sent to' => 'Estado de Cuenta enviado a',
+ 'Statements sent to printer!' => 'Estados de Cuenta enviados a impresora!',
+ 'Stock' => 'Existencia',
+ 'Stock Assembly' => 'Inventariar Ensamblaje?',
+ 'Stocking Date' => '',
+ 'Stylesheet' => 'Estilo de hoja',
+ 'Sub-contract GIFI' => '',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resumen',
+ 'Sunday' => '',
+ 'Supervisor' => '',
+ 'System' => 'Sistema',
+ 'System Defaults' => '',
+ 'Tax' => 'Impuesto',
+ 'Tax Accounts' => 'Cuentas De Impuesto',
+ 'Tax Included' => 'Impuesto Incluido',
+ 'Tax Number' => '',
+ 'Tax Number / SSN' => '',
+ 'Tax collected' => 'Impuesto recaudado',
+ 'Tax paid' => 'Impuesto pagado',
+ 'Taxable' => 'Gravable de Impuesto',
+ 'Template saved!' => 'Plantilla guardada!',
+ 'Templates' => 'Plantillas',
+ 'Terms' => '',
+ 'Text' => '',
+ 'Text Templates' => 'Plantillas de Texto',
+ 'The following Datasets are not in use and can be deleted' => 'Los
+siguientes conjuntos de datos no estan en uso y pueden ser borrados',
+ 'The following Datasets need to be updated' => 'Es necesario actualizar las siguientes bases de datos',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Esta es una verificacion preliminar de fuentes existentes. Nada será creado o borrado en esta etapa!',
+ 'Thursday' => '',
+ 'Till' => 'Hasta',
+ 'Time In' => '',
+ 'Time Out' => '',
+ 'Timecard' => '',
+ 'Timecard deleted!' => '',
+ 'Timecard saved!' => '',
+ 'Timecards' => '',
+ 'Times' => '',
+ 'To' => 'Hasta ',
+ 'To Warehouse' => '',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Para agregar un usuario a un grupo, edite un nombre, cambie el nombre de entrada (login) y guarde los cambios. Un nuevo usuario, con las mismas variables será guardado bajo el nuevo nombre de entrada. (login)',
+ 'Top Level' => 'Nivel superior',
+ 'Total' => 'Total',
+ 'Tracking Items' => '',
+ 'Trade Discount' => '',
+ 'Transaction' => '',
+ 'Transaction Date missing!' => 'Falta la fecha de la transacción!',
+ 'Transaction Dates' => '',
+ 'Transaction deleted!' => 'Transacción borrada!',
+ 'Transaction posted!' => 'Transacción registrada!',
+ 'Transaction reversal enforced for all dates' => 'Se ha forzado la anulación de las transacciones para todas las fechas',
+ 'Transaction reversal enforced up to' => 'Se ha forzado la anulación de las transacciones hasta',
+ 'Transactions' => 'Transacciones',
+ 'Transfer' => 'Transferencia',
+ 'Transfer Inventory' => '',
+ 'Transfer from' => '',
+ 'Transfer to' => '',
+ 'Translation' => '',
+ 'Translation deleted!' => '',
+ 'Translation not on file!' => '',
+ 'Translations' => '',
+ 'Translations saved!' => '',
+ 'Trial Balance' => 'Balance De Comprobación',
+ 'Tuesday' => '',
+ 'Type of Business' => '',
+ 'Unit' => 'Unidad',
+ 'Unit of measure' => 'Unidad de medida',
+ 'Unlock System' => 'Desenllavar sistema',
+ 'Update' => 'Actualizar',
+ 'Update Dataset' => 'Actualizar conjunto de datos',
+ 'Updated' => 'Actalizado',
+ 'Upgrading to Version' => '',
+ 'Use Templates' => 'Plantillas de Usuarios',
+ 'User' => 'Usuario',
+ 'User deleted!' => 'Usuario borrado!',
+ 'User saved!' => 'Usuario guardado!',
+ 'Valid until' => '',
+ 'Vendor' => 'Proveedor',
+ 'Vendor History' => '',
+ 'Vendor Invoice' => 'Factura de Proveedor',
+ 'Vendor Invoice ' => '',
+ 'Vendor Invoice.' => '',
+ 'Vendor Invoice/AP Transaction Number' => '',
+ 'Vendor Invoices' => 'Factura de Proveedor',
+ 'Vendor Number' => '',
+ 'Vendor deleted!' => 'Proveedor borrado!',
+ 'Vendor missing!' => 'Falta proveedor!',
+ 'Vendor not on file!' => 'Proveedor no está en archivo!',
+ 'Vendor saved!' => 'Proveedor guardado!',
+ 'Vendors' => 'Proveedores',
+ 'Version' => 'Versión',
+ 'Warehouse' => '',
+ 'Warehouse deleted!' => '',
+ 'Warehouse saved!' => '',
+ 'Warehouses' => '',
+ 'Warning!' => '',
+ 'Wednesday' => '',
+ 'Week' => '',
+ 'Week(s)' => '',
+ 'Weeks' => '',
+ 'Weight' => 'Peso',
+ 'Weight Unit' => 'Unidad de Peso',
+ 'What type of item is this?' => '¿Que tipo de Item es este?',
+ 'Work Order' => '',
+ 'Work Orders' => '',
+ 'Work Phone' => '',
+ 'Year' => '',
+ 'Year(s)' => '',
+ 'Yearend' => '',
+ 'Yearend date missing!' => '',
+ 'Yearend posted!' => '',
+ 'Yearend posting failed!' => '',
+ 'Years' => '',
+ 'Yes' => 'Si',
+ 'You are logged out' => '',
+ 'You are posting an existing transaction!' => '',
+ 'You are printing and posting an existing transaction!' => '',
+ 'You are printing and saving an existing order' => '',
+ 'You are printing and saving an existing quotation' => '',
+ 'You are printing and saving an existing transaction!' => '',
+ 'You are saving an existing order' => '',
+ 'You are saving an existing quotation' => '',
+ 'You are saving an existing transaction!' => '',
+ 'You did not enter a name!' => 'No introdujo un nombre!',
+ 'You must enter a host and port for local and remote connections!' => 'Debe
+introducir un servidor de base de datos y un puerto para conexiones locales y
+remotas!',
+ 'Zip/Postal Code' => '',
+ 'account cannot be set to any other type of account' => 'Cuenta no puede ser establecida a ningun otro tipo',
+ 'as at' => 'Al',
+ 'days' => 'Días',
+ 'does not exist' => 'No existe',
+ 'done' => 'Hecho',
+ 'ea' => 'c/u',
+ 'failed' => '',
+ 'for' => '',
+ 'for Period' => 'para el período',
+ 'is already a member!' => 'ya es miembro!',
+ 'localhost' => 'servidor local',
+ 'locked!' => 'asegurado!',
+ 'partsgroup' => '',
+ 'posted!' => '',
+ 'sent' => '',
+ 'successfully created!' => 'creado con éxito!',
+ 'successfully deleted!' => 'creado con éxito!',
+ 'time(s)' => '',
+ 'unexpected error!' => '',
+ 'website' => 'sitio web',
+};
+
+1;
diff --git a/locale/sv/am b/locale/sv/am
new file mode 100755
index 00000000..647b5d14
--- /dev/null
+++ b/locale/sv/am
@@ -0,0 +1,212 @@
+$self{texts} = {
+ 'AP' => 'Ctas X Pagar',
+ 'AR' => 'Ctas X Cobrar',
+ 'About' => 'Acerca',
+ 'Account' => 'Cuenta',
+ 'Account Number' => 'Número de Cuenta',
+ 'Account Number missing!' => 'No existe el número de cuenta!',
+ 'Account Type' => 'Tipo de Cuenta',
+ 'Account Type missing!' => 'No existe el tipo de la cuenta!',
+ 'Account deleted!' => 'Cuenta borrada!',
+ 'Account saved!' => 'Cuenta guardada!',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Add Account' => 'Agregar Cuenta',
+ 'Add GIFI' => 'Añadir código G GIFI',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Total',
+ 'Asset' => 'Activo',
+ 'Audit Control' => 'Control de auditoria',
+ 'Backup sent to' => 'Respaldo enviado a',
+ 'Books are open' => 'Los libros estan abiertos',
+ 'Business Number' => 'Numero de Negocio',
+ 'COGS' => 'Costo de Ventas',
+ 'Cannot delete account!' => 'No puede borrar cuenta!',
+ 'Cannot delete default account!' => 'No se puede borrar cuenta por defecto!',
+ 'Cannot save account!' => 'No puede guardar cuenta!',
+ 'Cannot save preferences!' => 'No puede guardar preferencias!',
+ 'Cash' => 'Caja',
+ 'Chart of Accounts' => 'Catálogo Contable',
+ 'Close Books up to' => 'Se cerraron los libros hasta',
+ 'Company' => 'Compañía',
+ 'Confirm!' => 'Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Copy to COA' => 'Copiar al catálogo de cuentas',
+ 'Credit' => 'Crédito',
+ 'Database Host' => 'Servidor de Base de Datos',
+ 'Dataset' => 'Set de datos',
+ 'Date Format' => 'Formato de Fecha',
+ 'Debit' => 'Débito',
+ 'Delete' => 'Borrar',
+ 'Delete Account' => 'Borrar Cuenta',
+ 'Description' => 'Descripción',
+ 'Discount' => 'Descuento',
+ 'Dropdown Limit' => 'Límite menu dropdown',
+ 'E-mail' => 'Correo Electrónico',
+ 'E-mail address missing!' => 'Falta E-mail!',
+ 'Edit' => 'Editar',
+ 'Edit Account' => 'Editar Cuenta',
+ 'Edit GIFI' => 'Editar GIFI',
+ 'Edit Preferences for' => 'Editar Preferencias para',
+ 'Edit Template' => 'Editar Plantilla',
+ 'Enforce transaction reversal for all dates' => 'Forzar la anulación de las transacciones para todas las fechas',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Ingrese símbolo de hasta 3 letras para divisas nativa y extranjeras (USD:EUR)',
+ 'Equity' => 'Capital',
+ 'Expense' => 'Egreso',
+ 'Expense/Asset' => 'Egreso/Activo',
+ 'Fax' => 'Fax',
+ 'Foreign Exchange Gain' => 'Ganancia en Moneda Extranjera',
+ 'Foreign Exchange Loss' => 'Pérdida en Moneda Extranjera',
+ 'GIFI' => 'Código GIFI',
+ 'GIFI deleted!' => 'GIFI borrado!',
+ 'GIFI missing!' => 'No se ha definido el código GIFI',
+ 'GIFI saved!' => 'GIFI guardado!',
+ 'GL Transaction' => 'Transacción de mayor',
+ 'Heading' => 'Encabezado',
+ 'ID' => 'ID',
+ 'Include in drop-down menus' => 'Incluya en menús desplegables',
+ 'Income' => 'Ingreso',
+ 'Inventory' => 'Inventario',
+ 'Invoice' => 'Factura',
+ 'Is this a summary account to record' => 'Es esta una cuenta de resumen a registrar?',
+ 'Liability' => 'Pasivo',
+ 'Licensed to' => 'Licenciado a Moran Mendez y Asociados',
+ 'Link' => 'Enlaces',
+ 'Name' => 'Nombre',
+ 'No' => 'No',
+ 'No email address for' => 'Falta email para',
+ 'Number' => 'Número',
+ 'Number Format' => 'Formato de Numero',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de Empaque',
+ 'Password' => 'Contraseña',
+ 'Payables' => 'Por Pagar',
+ 'Payment' => 'Pago',
+ 'Phone' => 'Teléfono',
+ 'Postscript' => 'Postscript',
+ 'Preferences saved!' => 'Preferencias guardadas!',
+ 'Print' => 'Imprimir',
+ 'Printer' => 'Impresora',
+ 'Purchase Order' => 'Orden de Compra',
+ 'Purchase Orders' => 'Ordenes de Compra',
+ 'Rate' => 'Tarifa',
+ 'Receivables' => 'Por Cobrar',
+ 'Reference' => 'Referencia',
+ 'Retained Earnings' => 'Ganacias Retenidas',
+ 'Sales Invoice' => 'Factura de Venta',
+ 'Sales Order' => 'Orden de venta',
+ 'Sales Orders' => 'Ordenes de venta',
+ 'Save' => 'Salvar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Signature' => 'Firma',
+ 'Stylesheet' => 'Estilo de hoja',
+ 'Tax' => 'Impuesto',
+ 'Template saved!' => 'Plantilla guardada!',
+ 'Transaction reversal enforced for all dates' => 'Se ha forzado la anulación de las transacciones para todas las fechas',
+ 'Transaction reversal enforced up to' => 'Se ha forzado la anulación de las transacciones hasta',
+ 'Update' => 'Actualizar',
+ 'User' => 'Usuario',
+ 'Vendor Invoice' => 'Factura de Proveedor',
+ 'Version' => 'Versión',
+ 'Weight Unit' => 'Unidad de Peso',
+ 'Yes' => 'Si',
+ 'account cannot be set to any other type of account' => 'Cuenta no puede ser establecida a ningun otro tipo',
+ 'done' => 'Hecho',
+ 'localhost' => 'servidor local',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'agregar_cuenta' => 'add_account',
+ 'continuar' => 'continue',
+ 'copiar_al_catálogo_de_cuentas' => 'copy_to_coa',
+ 'borrar' => 'delete',
+ 'editar' => 'edit',
+ 'editar_cuenta' => 'edit_account',
+ 'salvar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/sv/ap b/locale/sv/ap
new file mode 100755
index 00000000..239daa1d
--- /dev/null
+++ b/locale/sv/ap
@@ -0,0 +1,183 @@
+$self{texts} = {
+ 'AP Outstanding' => 'CxP Extraordinarias',
+ 'AP Transaction' => 'Transaccion - CxP',
+ 'AP Transactions' => 'Transacciones - Cuentas por Pagar',
+ 'AR Outstanding' => 'CxC Extraordinarias',
+ 'AR Transaction' => 'Transaccion - CxC',
+ 'AR Transactions' => 'Transacciones - CxC',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Monto Vencido',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => '¿Está usted seguro de que desea suprimir la transacción?',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'No puede borrar transacción!',
+ 'Cannot post payment for a closed period!' => 'No se puede registrar pago para un periodo cerrado',
+ 'Cannot post transaction for a closed period!' => 'No se puede registrar una transacción para un periodo cerrado',
+ 'Cannot post transaction!' => 'No puede registrar transacción!',
+ 'Cc' => 'Cc',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Cerrado',
+ 'Confirm!' => 'Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Limite de Credito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => 'Falta cliente!',
+ 'Customer not on file!' => 'Cliente no existe en archivo!',
+ 'Date' => 'Fecha',
+ 'Date Paid' => 'Fecha de pago',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de Vencimiento',
+ 'Due Date missing!' => 'Falta Fecha de Vencimiento!',
+ 'E-mail' => 'Correo Electrónico',
+ 'Employee' => 'Empleado',
+ 'Exch' => 'Interc.',
+ 'Exchange Rate' => 'Tasa de Intercambio',
+ 'Exchange rate for payment missing!' => 'No se encuentra pago por cambio de moneda',
+ 'Exchange rate missing!' => 'No se encuentra cambio de moneda',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluya en informe',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de Factura',
+ 'Invoice Date missing!' => 'Falta la Fecha de la Factura!',
+ 'Invoice Number' => 'Número de Factura',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Message' => 'Mensaje',
+ 'No.' => ' No ',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Number' => 'Orden Número',
+ 'PDF' => 'PDF',
+ 'Paid' => 'Total Pagado',
+ 'Payment date missing!' => 'No se encuentra la fecha de Pago!',
+ 'Payments' => 'Pagos',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Imprimir',
+ 'Project' => 'Proyecto',
+ 'Receipt' => 'Recibo',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Faltan',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los elementos listados',
+ 'Select postscript or PDF!' => 'Seleccione postscript o PDF',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Ship to' => 'Envíe a',
+ 'Ship via' => 'Envía vía',
+ 'Source' => 'Fuente',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resumen',
+ 'Tax' => 'Impuesto',
+ 'Tax Included' => 'Impuesto Incluido',
+ 'Till' => 'Hasta',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Transaction deleted!' => 'Transacción borrada!',
+ 'Transaction posted!' => 'Transacción registrada!',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor missing!' => 'Falta proveedor!',
+ 'Vendor not on file!' => 'Proveedor no está en archivo!',
+ 'Yes' => 'Si',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'transaccion___cxp' => 'ap_transaction',
+ 'transaccion___cxc' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'envíe_a' => 'ship_to',
+ 'actualizar' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/sv/ar b/locale/sv/ar
new file mode 100755
index 00000000..239daa1d
--- /dev/null
+++ b/locale/sv/ar
@@ -0,0 +1,183 @@
+$self{texts} = {
+ 'AP Outstanding' => 'CxP Extraordinarias',
+ 'AP Transaction' => 'Transaccion - CxP',
+ 'AP Transactions' => 'Transacciones - Cuentas por Pagar',
+ 'AR Outstanding' => 'CxC Extraordinarias',
+ 'AR Transaction' => 'Transaccion - CxC',
+ 'AR Transactions' => 'Transacciones - CxC',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Monto Vencido',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => '¿Está usted seguro de que desea suprimir la transacción?',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'No puede borrar transacción!',
+ 'Cannot post payment for a closed period!' => 'No se puede registrar pago para un periodo cerrado',
+ 'Cannot post transaction for a closed period!' => 'No se puede registrar una transacción para un periodo cerrado',
+ 'Cannot post transaction!' => 'No puede registrar transacción!',
+ 'Cc' => 'Cc',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Cerrado',
+ 'Confirm!' => 'Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Limite de Credito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => 'Falta cliente!',
+ 'Customer not on file!' => 'Cliente no existe en archivo!',
+ 'Date' => 'Fecha',
+ 'Date Paid' => 'Fecha de pago',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de Vencimiento',
+ 'Due Date missing!' => 'Falta Fecha de Vencimiento!',
+ 'E-mail' => 'Correo Electrónico',
+ 'Employee' => 'Empleado',
+ 'Exch' => 'Interc.',
+ 'Exchange Rate' => 'Tasa de Intercambio',
+ 'Exchange rate for payment missing!' => 'No se encuentra pago por cambio de moneda',
+ 'Exchange rate missing!' => 'No se encuentra cambio de moneda',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluya en informe',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de Factura',
+ 'Invoice Date missing!' => 'Falta la Fecha de la Factura!',
+ 'Invoice Number' => 'Número de Factura',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Message' => 'Mensaje',
+ 'No.' => ' No ',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Number' => 'Orden Número',
+ 'PDF' => 'PDF',
+ 'Paid' => 'Total Pagado',
+ 'Payment date missing!' => 'No se encuentra la fecha de Pago!',
+ 'Payments' => 'Pagos',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Imprimir',
+ 'Project' => 'Proyecto',
+ 'Receipt' => 'Recibo',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Faltan',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los elementos listados',
+ 'Select postscript or PDF!' => 'Seleccione postscript o PDF',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Ship to' => 'Envíe a',
+ 'Ship via' => 'Envía vía',
+ 'Source' => 'Fuente',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resumen',
+ 'Tax' => 'Impuesto',
+ 'Tax Included' => 'Impuesto Incluido',
+ 'Till' => 'Hasta',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Transaction deleted!' => 'Transacción borrada!',
+ 'Transaction posted!' => 'Transacción registrada!',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor missing!' => 'Falta proveedor!',
+ 'Vendor not on file!' => 'Proveedor no está en archivo!',
+ 'Yes' => 'Si',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'transaccion___cxp' => 'ap_transaction',
+ 'transaccion___cxc' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'envíe_a' => 'ship_to',
+ 'actualizar' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/sv/arap b/locale/sv/arap
new file mode 100755
index 00000000..02c0fd7b
--- /dev/null
+++ b/locale/sv/arap
@@ -0,0 +1,46 @@
+$self{texts} = {
+ 'Address' => 'Dirección',
+ 'Bcc' => 'Bcc',
+ 'Cc' => 'Cc',
+ 'Continue' => 'Continuar',
+ 'Customer not on file!' => 'Cliente no existe en archivo!',
+ 'Date' => 'Fecha',
+ 'Description' => 'Descripción',
+ 'E-mail' => 'Correo Electrónico',
+ 'Message' => 'Mensaje',
+ 'Number' => 'Número',
+ 'Print' => 'Imprimir',
+ 'Reference' => 'Referencia',
+ 'Select from one of the names below' => 'Seleccione uno de los elementos listados',
+ 'Subject' => 'Asunto',
+ 'To' => 'Hasta ',
+ 'Vendor not on file!' => 'Proveedor no está en archivo!',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/sv/arapprn b/locale/sv/arapprn
new file mode 100755
index 00000000..2af45a2b
--- /dev/null
+++ b/locale/sv/arapprn
@@ -0,0 +1,28 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Amount' => 'Total',
+ 'Continue' => 'Continuar',
+ 'Date' => 'Fecha',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'Postscript',
+ 'Screen' => 'Pantalla',
+ 'Select postscript or PDF!' => 'Seleccione postscript o PDF',
+ 'Source' => 'Fuente',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/sv/bp b/locale/sv/bp
new file mode 100755
index 00000000..5c5684e0
--- /dev/null
+++ b/locale/sv/bp
@@ -0,0 +1,47 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Confirm!' => 'Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Date' => 'Fecha',
+ 'Employee' => 'Empleado',
+ 'From' => 'Desde',
+ 'ID' => 'ID',
+ 'Invoice' => 'Factura',
+ 'Invoice Number' => 'Número de Factura',
+ 'Order' => 'Orden',
+ 'Order Number' => 'Orden Número',
+ 'Print' => 'Imprimir',
+ 'Purchase Orders' => 'Ordenes de Compra',
+ 'Sales Invoices' => 'Facturas de Venta',
+ 'Sales Orders' => 'Ordenes de venta',
+ 'Select all' => 'Seleccione todos',
+ 'To' => 'Hasta ',
+ 'Vendor' => 'Proveedor',
+ 'Yes' => 'Si',
+ 'done' => 'Hecho',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'imprimir' => 'print',
+ 'seleccione_todos' => 'select_all',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/sv/ca b/locale/sv/ca
new file mode 100755
index 00000000..68b4619a
--- /dev/null
+++ b/locale/sv/ca
@@ -0,0 +1,54 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Balance',
+ 'Chart of Accounts' => 'Catálogo Contable',
+ 'Credit' => 'Crédito',
+ 'Current' => 'Actual',
+ 'Date' => 'Fecha',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Description' => 'Descripción',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'GIFI' => 'Código GIFI',
+ 'Include in Report' => 'Incluya en informe',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'List Transactions' => 'Listar Transacciones',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Project Number' => 'Número de Proyecto',
+ 'R' => 'R',
+ 'Reference' => 'Referencia',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'Hasta ',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'listar_transacciones' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/sv/cp b/locale/sv/cp
new file mode 100755
index 00000000..95a1f9e6
--- /dev/null
+++ b/locale/sv/cp
@@ -0,0 +1,110 @@
+$self{texts} = {
+ 'AP' => 'Ctas X Pagar',
+ 'AR' => 'Ctas X Cobrar',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Address' => 'Dirección',
+ 'All' => 'Todos',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Monto Vencido',
+ 'Bcc' => 'Bcc',
+ 'Cannot post payment for a closed period!' => 'No se puede registrar pago para un periodo cerrado',
+ 'Cc' => 'Cc',
+ 'Continue' => 'Continuar',
+ 'Currency' => 'Moneda',
+ 'Customer' => 'Cliente',
+ 'Customer not on file!' => 'Cliente no existe en archivo!',
+ 'Date' => 'Fecha',
+ 'Date missing!' => 'Falta fecha!',
+ 'Deposit' => 'Deposit',
+ 'Description' => 'Descripción',
+ 'Due Date' => 'Fecha de Vencimiento',
+ 'E-mail' => 'Correo Electrónico',
+ 'Exchange Rate' => 'Tasa de Intercambio',
+ 'Exchange rate missing!' => 'No se encuentra cambio de moneda',
+ 'From' => 'Desde',
+ 'Invoice' => 'Factura',
+ 'Invoices' => 'Facturas',
+ 'Message' => 'Mensaje',
+ 'Number' => 'Número',
+ 'PDF' => 'PDF',
+ 'Payment' => 'Pago',
+ 'Payment posted!' => 'Pago registrado!',
+ 'Payments' => 'Pagos',
+ 'Post' => 'Registrar',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Imprimir',
+ 'Receipt' => 'Recibo',
+ 'Receipts' => 'Ingresos',
+ 'Reference' => 'Referencia',
+ 'Screen' => 'Pantalla',
+ 'Select all' => 'Seleccione todos',
+ 'Select from one of the names below' => 'Seleccione uno de los elementos listados',
+ 'Select postscript or PDF!' => 'Seleccione postscript o PDF',
+ 'Source' => 'Fuente',
+ 'Subject' => 'Asunto',
+ 'To' => 'Hasta ',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor not on file!' => 'Proveedor no está en archivo!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuar' => 'continue',
+ 'registrar' => 'post',
+ 'imprimir' => 'print',
+ 'seleccione_todos' => 'select_all',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/sv/ct b/locale/sv/ct
new file mode 100755
index 00000000..569551b1
--- /dev/null
+++ b/locale/sv/ct
@@ -0,0 +1,144 @@
+$self{texts} = {
+ 'AP Transaction' => 'Transaccion - CxP',
+ 'AP Transactions' => 'Transacciones - Cuentas por Pagar',
+ 'AR Transaction' => 'Transaccion - CxC',
+ 'AR Transactions' => 'Transacciones - CxC',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Active' => 'Activa',
+ 'Add Customer' => 'Agregar Cliente',
+ 'Add Vendor' => 'Agregar Proveedor',
+ 'Address' => 'Dirección',
+ 'All' => 'Todos',
+ 'Amount' => 'Total',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete customer!' => 'No puede borrar cliente!',
+ 'Cannot delete vendor!' => 'No puede borrar proveedor!',
+ 'Cc' => 'Cc',
+ 'Closed' => 'Cerrado',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Credit Limit' => 'Limite de Credito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Customer deleted!' => 'Cliente borrado!',
+ 'Customer saved!' => 'Cliente guardado!',
+ 'Customers' => 'Clientes',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de Entrega',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Discount' => 'Descuento',
+ 'E-mail' => 'Correo Electrónico',
+ 'Edit Customer' => 'Editar Cliente',
+ 'Edit Vendor' => 'Editar Proveedor',
+ 'Employee' => 'Empleado',
+ 'Fax' => 'Fax',
+ 'From' => 'Desde',
+ 'GIFI' => 'Código GIFI',
+ 'Group' => 'Grupo',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluya en informe',
+ 'Invoice' => 'Factura',
+ 'Item not on file!' => '¡El artículo no se encuentra en archivo!',
+ 'Name' => 'Nombre',
+ 'Name missing!' => 'Falta nombre!',
+ 'No.' => ' No ',
+ 'Notes' => 'Notas',
+ 'Number' => 'Número',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Orphaned' => 'Huerfano',
+ 'POS' => 'POS',
+ 'Phone' => 'Teléfono',
+ 'Project Number' => 'Número de Proyecto',
+ 'Purchase Order' => 'Orden de Compra',
+ 'Purchase Orders' => 'Ordenes de Compra',
+ 'Qty' => 'Cant.',
+ 'Sales Invoice' => 'Factura de Venta',
+ 'Sales Invoices' => 'Facturas de Venta',
+ 'Sales Order' => 'Orden de venta',
+ 'Sales Orders' => 'Ordenes de venta',
+ 'Salesperson' => 'Vendedor',
+ 'Save' => 'Salvar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Search' => 'Buscar',
+ 'Sell Price' => 'Precio de Venta',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resumen',
+ 'Tax' => 'Impuesto',
+ 'Tax Included' => 'Impuesto Incluido',
+ 'Taxable' => 'Gravable de Impuesto',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Vendor Invoice' => 'Factura de Proveedor',
+ 'Vendor Invoices' => 'Factura de Proveedor',
+ 'Vendor deleted!' => 'Proveedor borrado!',
+ 'Vendor saved!' => 'Proveedor guardado!',
+ 'Vendors' => 'Proveedores',
+ 'days' => 'Días',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'transaccion___cxp' => 'ap_transaction',
+ 'transaccion___cxc' => 'ar_transaction',
+ 'agregar_cliente' => 'add_customer',
+ 'agregar_proveedor' => 'add_vendor',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'pos' => 'pos',
+ 'orden_de_compra' => 'purchase_order',
+ 'factura_de_venta' => 'sales_invoice',
+ 'orden_de_venta' => 'sales_order',
+ 'salvar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+ 'factura_de_proveedor' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/sv/gl b/locale/sv/gl
new file mode 100755
index 00000000..cdd586cd
--- /dev/null
+++ b/locale/sv/gl
@@ -0,0 +1,142 @@
+$self{texts} = {
+ 'AP Transaction' => 'Transaccion - CxP',
+ 'AR Transaction' => 'Transaccion - CxC',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Add Cash Transfer Transaction' => 'Agregar Trans. de Transferencia de efectivo',
+ 'Add General Ledger Transaction' => 'Agregar Transacción - Mayor General',
+ 'Address' => 'Dirección',
+ 'All' => 'Todos',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => '¿Está usted seguro de que desea suprimir la transacción?',
+ 'Asset' => 'Activo',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Balance',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => 'No puede borrar transacción!',
+ 'Cannot post transaction for a closed period!' => 'No se puede registrar una transacción para un periodo cerrado',
+ 'Cannot post transaction!' => 'No puede registrar transacción!',
+ 'Cc' => 'Cc',
+ 'Confirm!' => 'Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Current' => 'Actual',
+ 'Customer not on file!' => 'Cliente no existe en archivo!',
+ 'Date' => 'Fecha',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Description' => 'Descripción',
+ 'E-mail' => 'Correo Electrónico',
+ 'Edit Cash Transfer Transaction' => 'Editar Transaccion de Transferencia de Efectivo',
+ 'Edit General Ledger Transaction' => 'Editar Transacción de Mayor General',
+ 'Equity' => 'Capital',
+ 'Expense' => 'Egreso',
+ 'FX' => 'FX',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'GIFI' => 'Código GIFI',
+ 'GL Transaction' => 'Transacción de mayor',
+ 'General Ledger' => 'Mayor General',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluya en informe',
+ 'Income' => 'Ingreso',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Liability' => 'Pasivo',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Message' => 'Mensaje',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Print' => 'Imprimir',
+ 'Project' => 'Proyecto',
+ 'R' => 'R',
+ 'Reference' => 'Referencia',
+ 'Reports' => 'Reportes',
+ 'Select from one of the names below' => 'Seleccione uno de los elementos listados',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Source' => 'Fuente',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'Hasta ',
+ 'Transaction Date missing!' => 'Falta la fecha de la transacción!',
+ 'Transaction deleted!' => 'Transacción borrada!',
+ 'Transaction posted!' => 'Transacción registrada!',
+ 'Update' => 'Actualizar',
+ 'Vendor not on file!' => 'Proveedor no está en archivo!',
+ 'Yes' => 'Si',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'transaccion___cxp' => 'ap_transaction',
+ 'transaccion___cxc' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'transacción_de_mayor' => 'gl_transaction',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'actualizar' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/sv/hr b/locale/sv/hr
new file mode 100755
index 00000000..ebf33e58
--- /dev/null
+++ b/locale/sv/hr
@@ -0,0 +1,73 @@
+$self{texts} = {
+ 'AP' => 'Ctas X Pagar',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Active' => 'Activa',
+ 'Address' => 'Dirección',
+ 'Administrator' => 'Administrador',
+ 'All' => 'Todos',
+ 'Amount' => 'Total',
+ 'Amount missing!' => 'Falta monto!',
+ 'Continue' => 'Continuar',
+ 'Delete' => 'Borrar',
+ 'Description' => 'Descripción',
+ 'E-mail' => 'Correo Electrónico',
+ 'Employee' => 'Empleado',
+ 'Expense' => 'Egreso',
+ 'From' => 'Desde',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluya en informe',
+ 'Login' => 'Nombre de Acceso',
+ 'Name' => 'Nombre',
+ 'Name missing!' => 'Falta nombre!',
+ 'Notes' => 'Notas',
+ 'Number' => 'Número',
+ 'Orphaned' => 'Huerfano',
+ 'Rate' => 'Tarifa',
+ 'Sales' => 'Ventas',
+ 'Save' => 'Salvar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'To' => 'Hasta ',
+ 'Update' => 'Actualizar',
+ 'User' => 'Usuario',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'salvar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/sv/ic b/locale/sv/ic
new file mode 100755
index 00000000..66bcddad
--- /dev/null
+++ b/locale/sv/ic
@@ -0,0 +1,229 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Accounts' => 'Cuentas',
+ 'Active' => 'Activa',
+ 'Add' => 'Agregar',
+ 'Add Assembly' => 'Agregar Ensamble',
+ 'Add Part' => 'Agregar Parte',
+ 'Add Purchase Order' => 'Agregar Orden de Compra',
+ 'Add Sales Order' => 'Agregar Nota de Remisión',
+ 'Add Service' => 'Agregar Servicio',
+ 'Address' => 'Dirección',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Assemblies' => 'Ensamblajes',
+ 'Assemblies restocked!' => 'Conjuntos re-inventariados',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'BOM' => 'Lista de Materiales',
+ 'Bcc' => 'Bcc',
+ 'Bin' => 'Bin',
+ 'COGS' => 'Costo de Ventas',
+ 'Cannot delete item!' => 'No puede borrar ítem!',
+ 'Cannot stock assemblies!' => 'No puede inventariar conjuntos!',
+ 'Cash' => 'Caja',
+ 'Cc' => 'Cc',
+ 'Closed' => 'Cerrado',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Customer' => 'Cliente',
+ 'Customer not on file!' => 'Cliente no existe en archivo!',
+ 'Date' => 'Fecha',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de Entrega',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Drawing' => 'Retiro',
+ 'E-mail' => 'Correo Electrónico',
+ 'E-mail address missing!' => 'Falta E-mail!',
+ 'Edit Assembly' => 'Editar Ensamblaje',
+ 'Edit Part' => 'Editar Parte',
+ 'Edit Service' => 'Editar Servicio',
+ 'Employee' => 'Empleado',
+ 'Expense' => 'Egreso',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'Group' => 'Grupo',
+ 'Image' => 'Imagen',
+ 'In-line' => 'En linea',
+ 'Include in Report' => 'Incluya en informe',
+ 'Income' => 'Ingreso',
+ 'Individual Items' => 'Items Individuales',
+ 'Inventory' => 'Inventario',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'La cantidad en inventario debe ser cero antes de cambiar este ensamblaje a obsoleto!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'La cantidad en inventario debe ser cero antes de cambiar esta parte a obsoleto',
+ 'Invoice' => 'Factura',
+ 'Invoice Date missing!' => 'Falta la Fecha de la Factura!',
+ 'Invoice Number' => 'Número de Factura',
+ 'Invoice Number missing!' => 'Falta el Número de Factura!',
+ 'Item deleted!' => 'Item borrado!',
+ 'Item not on file!' => '¡El artículo no se encuentra en archivo!',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Line Total' => 'Total de la linea',
+ 'Link Accounts' => 'Enlazar Cuentas',
+ 'List Price' => 'Precio de Lista',
+ 'Make' => 'Marca',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Message' => 'Mensaje',
+ 'Microfiche' => 'Microficha',
+ 'Model' => 'Modelo',
+ 'Name' => 'Nombre',
+ 'No.' => ' No ',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se encuentra el número en la fila',
+ 'Obsolete' => 'Obsoleto',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'On Hand' => 'En Existencia',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Date missing!' => 'No se encuentra la fecha de orden!',
+ 'Order Number' => 'Orden Número',
+ 'Order Number missing!' => 'No se encuentra el número de orden!',
+ 'Orphaned' => 'Huerfano',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de Empaque',
+ 'Packing List Date missing!' => '!Falta fecha en lista de empaque!',
+ 'Packing List Number missing!' => '!Falta nzmero en lista de empaque!',
+ 'Part' => 'Partes',
+ 'Parts' => 'Partes',
+ 'Phone' => 'Teléfono',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Project' => 'Proyecto',
+ 'Purchase Order' => 'Orden de Compra',
+ 'Purchase Orders' => 'Ordenes de Compra',
+ 'Qty' => 'Cant.',
+ 'ROP' => 'ROP',
+ 'Recd' => 'Rec',
+ 'Required by' => 'Requerido por',
+ 'Sales Invoice' => 'Factura de Venta',
+ 'Sales Invoices' => 'Facturas de Venta',
+ 'Sales Order' => 'Orden de venta',
+ 'Sales Orders' => 'Ordenes de venta',
+ 'Save' => 'Salvar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los elementos listados',
+ 'Sell Price' => 'Precio de Venta',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Service' => 'Servicio',
+ 'Services' => 'Servicios',
+ 'Ship' => 'Envíe',
+ 'Ship to' => 'Envíe a',
+ 'Short' => 'Corto',
+ 'Stock' => 'Existencia',
+ 'Stock Assembly' => 'Inventariar Ensamblaje?',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resumen',
+ 'Tax' => 'Impuesto',
+ 'To' => 'Hasta ',
+ 'Top Level' => 'Nivel superior',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Updated' => 'Actalizado',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice' => 'Factura de Proveedor',
+ 'Vendor Invoices' => 'Factura de Proveedor',
+ 'Vendor not on file!' => 'Proveedor no está en archivo!',
+ 'Weight' => 'Peso',
+ 'What type of item is this?' => '¿Que tipo de Item es este?',
+ 'days' => 'Días',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'agregar_ensamble' => 'add_assembly',
+ 'agregar_parte' => 'add_part',
+ 'agregar_servicio' => 'add_service',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'editar_ensamblaje' => 'edit_assembly',
+ 'editar_parte' => 'edit_part',
+ 'editar_servicio' => 'edit_service',
+ 'salvar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/sv/io b/locale/sv/io
new file mode 100755
index 00000000..71bb13fd
--- /dev/null
+++ b/locale/sv/io
@@ -0,0 +1,106 @@
+$self{texts} = {
+ 'Add Purchase Order' => 'Agregar Orden de Compra',
+ 'Add Sales Order' => 'Agregar Nota de Remisión',
+ 'Address' => 'Dirección',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Bin' => 'Bin',
+ 'Cc' => 'Cc',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Date' => 'Fecha',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delivery Date' => 'Fecha de Entrega',
+ 'Description' => 'Descripción',
+ 'E-mail' => 'Correo Electrónico',
+ 'E-mail address missing!' => 'Falta E-mail!',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'Group' => 'Grupo',
+ 'In-line' => 'En linea',
+ 'Invoice' => 'Factura',
+ 'Invoice Date missing!' => 'Falta la Fecha de la Factura!',
+ 'Invoice Number missing!' => 'Falta el Número de Factura!',
+ 'Item not on file!' => '¡El artículo no se encuentra en archivo!',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Message' => 'Mensaje',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se encuentra el número en la fila',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Order Date missing!' => 'No se encuentra la fecha de orden!',
+ 'Order Number missing!' => 'No se encuentra el número de orden!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de Empaque',
+ 'Packing List Date missing!' => '!Falta fecha en lista de empaque!',
+ 'Packing List Number missing!' => '!Falta nzmero en lista de empaque!',
+ 'Part' => 'Partes',
+ 'Phone' => 'Teléfono',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Project' => 'Proyecto',
+ 'Purchase Order' => 'Orden de Compra',
+ 'Qty' => 'Cant.',
+ 'Recd' => 'Rec',
+ 'Required by' => 'Requerido por',
+ 'Sales Order' => 'Orden de venta',
+ 'Screen' => 'Pantalla',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Envíe',
+ 'Ship to' => 'Envíe a',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'Hasta ',
+ 'Unit' => 'Unidad',
+ 'What type of item is this?' => '¿Que tipo de Item es este?',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/sv/ir b/locale/sv/ir
new file mode 100755
index 00000000..d76524eb
--- /dev/null
+++ b/locale/sv/ir
@@ -0,0 +1,191 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Add Purchase Order' => 'Agregar Orden de Compra',
+ 'Add Sales Order' => 'Agregar Nota de Remisión',
+ 'Add Vendor Invoice' => 'Agregar Factura Proveedor',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => '¿Esta seguro de que desea borrar la Factura No.:',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Bin' => 'Bin',
+ 'Cannot delete invoice!' => 'No puede borraar factura!',
+ 'Cannot post invoice for a closed period!' => 'No se puede registrar factura para un periodo cerrado!',
+ 'Cannot post invoice!' => 'No puede registrar factura!',
+ 'Cannot post payment for a closed period!' => 'No se puede registrar pago para un periodo cerrado',
+ 'Cc' => 'Cc',
+ 'Confirm!' => 'Confirmar!',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Credit Limit' => 'Limite de Credito',
+ 'Currency' => 'Moneda',
+ 'Customer not on file!' => 'Cliente no existe en archivo!',
+ 'Date' => 'Fecha',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de Entrega',
+ 'Description' => 'Descripción',
+ 'Due Date' => 'Fecha de Vencimiento',
+ 'E-mail' => 'Correo Electrónico',
+ 'E-mail address missing!' => 'Falta E-mail!',
+ 'Edit Vendor Invoice' => 'Editar Factura Proveedor',
+ 'Exch' => 'Interc.',
+ 'Exchange Rate' => 'Tasa de Intercambio',
+ 'Exchange rate for payment missing!' => 'No se encuentra pago por cambio de moneda',
+ 'Exchange rate missing!' => 'No se encuentra cambio de moneda',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'Group' => 'Grupo',
+ 'In-line' => 'En linea',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de Factura',
+ 'Invoice Date missing!' => 'Falta la Fecha de la Factura!',
+ 'Invoice Number' => 'Número de Factura',
+ 'Invoice Number missing!' => 'Falta el Número de Factura!',
+ 'Invoice deleted!' => 'Factura borrada!',
+ 'Item not on file!' => '¡El artículo no se encuentra en archivo!',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Message' => 'Mensaje',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se encuentra el número en la fila',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Order Date missing!' => 'No se encuentra la fecha de orden!',
+ 'Order Number' => 'Orden Número',
+ 'Order Number missing!' => 'No se encuentra el número de orden!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de Empaque',
+ 'Packing List Date missing!' => '!Falta fecha en lista de empaque!',
+ 'Packing List Number missing!' => '!Falta nzmero en lista de empaque!',
+ 'Part' => 'Partes',
+ 'Payment date missing!' => 'No se encuentra la fecha de Pago!',
+ 'Payments' => 'Pagos',
+ 'Phone' => 'Teléfono',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Project' => 'Proyecto',
+ 'Purchase Order' => 'Orden de Compra',
+ 'Qty' => 'Cant.',
+ 'Recd' => 'Rec',
+ 'Record in' => 'Registrar en',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Faltan',
+ 'Required by' => 'Requerido por',
+ 'Sales Order' => 'Orden de venta',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los elementos listados',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Envíe',
+ 'Ship to' => 'Envíe a',
+ 'Source' => 'Fuente',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Tax Included' => 'Impuesto Incluido',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor missing!' => 'Falta proveedor!',
+ 'Vendor not on file!' => 'Proveedor no está en archivo!',
+ 'What type of item is this?' => '¿Que tipo de Item es este?',
+ 'Yes' => 'Si',
+ 'ea' => 'c/u',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'orden_de_compra' => 'purchase_order',
+ 'actualizar' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/sv/is b/locale/sv/is
new file mode 100755
index 00000000..80c7a2a7
--- /dev/null
+++ b/locale/sv/is
@@ -0,0 +1,198 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Add Purchase Order' => 'Agregar Orden de Compra',
+ 'Add Sales Invoice' => 'Agregar Factura de Venta',
+ 'Add Sales Order' => 'Agregar Nota de Remisión',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => '¿Esta seguro de que desea borrar la Factura No.:',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Bin' => 'Bin',
+ 'Cannot delete invoice!' => 'No puede borraar factura!',
+ 'Cannot post invoice for a closed period!' => 'No se puede registrar factura para un periodo cerrado!',
+ 'Cannot post invoice!' => 'No puede registrar factura!',
+ 'Cannot post payment for a closed period!' => 'No se puede registrar pago para un periodo cerrado',
+ 'Cc' => 'Cc',
+ 'Confirm!' => 'Confirmar!',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Credit Limit' => 'Limite de Credito',
+ 'Currency' => 'Moneda',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => 'Falta cliente!',
+ 'Customer not on file!' => 'Cliente no existe en archivo!',
+ 'Date' => 'Fecha',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de Entrega',
+ 'Description' => 'Descripción',
+ 'Due Date' => 'Fecha de Vencimiento',
+ 'E-mail' => 'Correo Electrónico',
+ 'E-mail address missing!' => 'Falta E-mail!',
+ 'Edit Sales Invoice' => 'Editar Factura de Venta',
+ 'Exch' => 'Interc.',
+ 'Exchange Rate' => 'Tasa de Intercambio',
+ 'Exchange rate for payment missing!' => 'No se encuentra pago por cambio de moneda',
+ 'Exchange rate missing!' => 'No se encuentra cambio de moneda',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'Group' => 'Grupo',
+ 'In-line' => 'En linea',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de Factura',
+ 'Invoice Date missing!' => 'Falta la Fecha de la Factura!',
+ 'Invoice Number' => 'Número de Factura',
+ 'Invoice Number missing!' => 'Falta el Número de Factura!',
+ 'Invoice deleted!' => 'Factura borrada!',
+ 'Item not on file!' => '¡El artículo no se encuentra en archivo!',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Message' => 'Mensaje',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se encuentra el número en la fila',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Order Date missing!' => 'No se encuentra la fecha de orden!',
+ 'Order Number' => 'Orden Número',
+ 'Order Number missing!' => 'No se encuentra el número de orden!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de Empaque',
+ 'Packing List Date missing!' => '!Falta fecha en lista de empaque!',
+ 'Packing List Number missing!' => '!Falta nzmero en lista de empaque!',
+ 'Part' => 'Partes',
+ 'Payment date missing!' => 'No se encuentra la fecha de Pago!',
+ 'Payments' => 'Pagos',
+ 'Phone' => 'Teléfono',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Project' => 'Proyecto',
+ 'Purchase Order' => 'Orden de Compra',
+ 'Qty' => 'Cant.',
+ 'Recd' => 'Rec',
+ 'Record in' => 'Registrar en',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Faltan',
+ 'Required by' => 'Requerido por',
+ 'Sales Order' => 'Orden de venta',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los elementos listados',
+ 'Select postscript or PDF!' => 'Seleccione postscript o PDF',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Envíe',
+ 'Ship to' => 'Envíe a',
+ 'Ship via' => 'Envía vía',
+ 'Source' => 'Fuente',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Tax Included' => 'Impuesto Incluido',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Vendor not on file!' => 'Proveedor no está en archivo!',
+ 'What type of item is this?' => '¿Que tipo de Item es este?',
+ 'Yes' => 'Si',
+ 'ea' => 'c/u',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'correo_electrónico' => 'e_mail',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'orden_de_venta' => 'sales_order',
+ 'envíe_a' => 'ship_to',
+ 'actualizar' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/sv/jc b/locale/sv/jc
new file mode 100755
index 00000000..b75d0e06
--- /dev/null
+++ b/locale/sv/jc
@@ -0,0 +1,82 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Amount' => 'Total',
+ 'Closed' => 'Cerrado',
+ 'Confirm!' => 'Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Current' => 'Actual',
+ 'Date' => 'Fecha',
+ 'Date missing!' => 'Falta fecha!',
+ 'Delete' => 'Borrar',
+ 'Description' => 'Descripción',
+ 'Employee' => 'Empleado',
+ 'From' => 'Desde',
+ 'ID' => 'ID',
+ 'Include in Report' => 'Incluya en informe',
+ 'Notes' => 'Notas',
+ 'Open' => 'Abierto',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Imprimir',
+ 'Project Number' => 'Número de Proyecto',
+ 'Project Number missing!' => 'Falta número de proyecto!',
+ 'Qty' => 'Cant.',
+ 'Save' => 'Salvar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Screen' => 'Pantalla',
+ 'Select postscript or PDF!' => 'Seleccione postscript o PDF',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Update' => 'Actualizar',
+ 'Yes' => 'Si',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'imprimir' => 'print',
+ 'salvar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/sv/locales.pl b/locale/sv/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/sv/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/sv/login b/locale/sv/login
new file mode 100755
index 00000000..ee2149a4
--- /dev/null
+++ b/locale/sv/login
@@ -0,0 +1,23 @@
+$self{texts} = {
+ 'Company' => 'Compañía',
+ 'Continue' => 'Continuar',
+ 'Dataset is newer than version!' => 'El conjunto de datos es mas nuevo que la version!!',
+ 'Incorrect Dataset version!' => '!Version incorrecta de conjunto de datos!',
+ 'Login' => 'Nombre de Acceso',
+ 'Name' => 'Nombre',
+ 'Password' => 'Contraseña',
+ 'Version' => 'Versión',
+ 'You did not enter a name!' => 'No introdujo un nombre!',
+ 'done' => 'Hecho',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ 'nombre_de_acceso' => 'login',
+};
+
+1;
+
diff --git a/locale/sv/menu b/locale/sv/menu
new file mode 100755
index 00000000..9be69feb
--- /dev/null
+++ b/locale/sv/menu
@@ -0,0 +1,91 @@
+$self{texts} = {
+ 'AP' => 'Ctas X Pagar',
+ 'AP Aging' => 'Antiguedad de Saldos - CxP',
+ 'AP Transaction' => 'Transaccion - CxP',
+ 'AR' => 'Ctas X Cobrar',
+ 'AR Aging' => 'Antiguedad de Saldos - CxC ',
+ 'AR Transaction' => 'Transaccion - CxC',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Add Account' => 'Agregar Cuenta',
+ 'Add Assembly' => 'Agregar Ensamble',
+ 'Add Customer' => 'Agregar Cliente',
+ 'Add GIFI' => 'Añadir código G GIFI',
+ 'Add Group' => 'Agregar Grupo',
+ 'Add Part' => 'Agregar Parte',
+ 'Add Project' => 'Agregar Proyecto',
+ 'Add Service' => 'Agregar Servicio',
+ 'Add Transaction' => 'Agregar Transaccion',
+ 'Add Vendor' => 'Agregar Proveedor',
+ 'Assemblies' => 'Ensamblajes',
+ 'Audit Control' => 'Control de auditoria',
+ 'Backup' => 'Respaldo',
+ 'Balance Sheet' => 'Hoja de Balance',
+ 'Cash' => 'Caja',
+ 'Chart of Accounts' => 'Catálogo Contable',
+ 'Check' => 'Cheque',
+ 'Customers' => 'Clientes',
+ 'Description' => 'Descripción',
+ 'General Ledger' => 'Mayor General',
+ 'Goods & Services' => 'Bienes y servicios',
+ 'Groups' => 'Grupos',
+ 'HTML Templates' => 'Plantillas HTML',
+ 'History' => 'Historico',
+ 'Income Statement' => 'Estado de Cuentas',
+ 'Invoice' => 'Factura',
+ 'LaTeX Templates' => 'Plantillas de LaTeX',
+ 'List Accounts' => 'Listar Cuentas',
+ 'List GIFI' => 'Listar código GIFI',
+ 'Logout' => 'Salir',
+ 'Open' => 'Abierto',
+ 'Order Entry' => 'Orden de Entrada',
+ 'Outstanding' => 'Extraordinario',
+ 'POS' => 'POS',
+ 'POS Invoice' => 'Factura POS',
+ 'Packing List' => 'Lista de Empaque',
+ 'Parts' => 'Partes',
+ 'Payment' => 'Pago',
+ 'Payments' => 'Pagos',
+ 'Preferences' => 'Preferencias',
+ 'Print' => 'Imprimir',
+ 'Projects' => 'Proyectos',
+ 'Purchase Order' => 'Orden de Compra',
+ 'Purchase Orders' => 'Ordenes de Compra',
+ 'Receipt' => 'Recibo',
+ 'Receipts' => 'Ingresos',
+ 'Reconciliation' => 'Conciliación',
+ 'Reports' => 'Reportes',
+ 'Sale' => 'Venta',
+ 'Sales Invoice' => 'Factura de Venta',
+ 'Sales Invoices' => 'Facturas de Venta',
+ 'Sales Order' => 'Orden de venta',
+ 'Sales Orders' => 'Ordenes de venta',
+ 'Save to File' => 'Guardar en archivo',
+ 'Search' => 'Buscar',
+ 'Send by E-Mail' => 'Enviar por E-Mail',
+ 'Services' => 'Servicios',
+ 'Ship' => 'Envíe',
+ 'Statement' => 'Estado de Cuenta',
+ 'Stock Assembly' => 'Inventariar Ensamblaje?',
+ 'Stylesheet' => 'Estilo de hoja',
+ 'System' => 'Sistema',
+ 'Tax collected' => 'Impuesto recaudado',
+ 'Tax paid' => 'Impuesto pagado',
+ 'Text Templates' => 'Plantillas de Texto',
+ 'Transactions' => 'Transacciones',
+ 'Transfer' => 'Transferencia',
+ 'Trial Balance' => 'Balance De Comprobación',
+ 'Vendor Invoice' => 'Factura de Proveedor',
+ 'Vendors' => 'Proveedores',
+ 'Version' => 'Versión',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/sv/oe b/locale/sv/oe
new file mode 100755
index 00000000..62a4e7cd
--- /dev/null
+++ b/locale/sv/oe
@@ -0,0 +1,244 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Add Purchase Order' => 'Agregar Orden de Compra',
+ 'Add Sales Invoice' => 'Agregar Factura de Venta',
+ 'Add Sales Order' => 'Agregar Nota de Remisión',
+ 'Add Vendor Invoice' => 'Agregar Factura Proveedor',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Order Number' => '¿Esta seguro de que desea
+borrar la Orden No.:?',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Bin' => 'Bin',
+ 'C' => 'C',
+ 'Cannot delete order!' => 'No puede borrar pedido!',
+ 'Cannot save order!' => 'No puede guardar órden!',
+ 'Cc' => 'Cc',
+ 'Closed' => 'Cerrado',
+ 'Confirm!' => 'Confirmar!',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Credit Limit' => 'Limite de Credito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => 'Falta cliente!',
+ 'Customer not on file!' => 'Cliente no existe en archivo!',
+ 'Date' => 'Fecha',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de Entrega',
+ 'Description' => 'Descripción',
+ 'Done' => 'Listo',
+ 'E-mail' => 'Correo Electrónico',
+ 'E-mail address missing!' => 'Falta E-mail!',
+ 'Edit Purchase Order' => 'Editar Orden de Compra',
+ 'Edit Sales Order' => 'Editar Remisión',
+ 'Employee' => 'Empleado',
+ 'Exchange Rate' => 'Tasa de Intercambio',
+ 'Exchange rate missing!' => 'No se encuentra cambio de moneda',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'Group' => 'Grupo',
+ 'ID' => 'ID',
+ 'In-line' => 'En linea',
+ 'Include in Report' => 'Incluya en informe',
+ 'Invoice' => 'Factura',
+ 'Invoice Date missing!' => 'Falta la Fecha de la Factura!',
+ 'Invoice Number missing!' => 'Falta el Número de Factura!',
+ 'Item not on file!' => '¡El artículo no se encuentra en archivo!',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Message' => 'Mensaje',
+ 'No.' => ' No ',
+ 'Notes' => 'Notas',
+ 'Nothing selected!' => 'Nada seleccionado!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se encuentra el número en la fila',
+ 'O' => 'O',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Date' => 'Fecha de Orden',
+ 'Order Date missing!' => 'No se encuentra la fecha de orden!',
+ 'Order Number' => 'Orden Número',
+ 'Order Number missing!' => 'No se encuentra el número de orden!',
+ 'Order deleted!' => 'Orden borrada!',
+ 'Order saved!' => 'Orden guardada!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de Empaque',
+ 'Packing List Date missing!' => '!Falta fecha en lista de empaque!',
+ 'Packing List Number missing!' => '!Falta nzmero en lista de empaque!',
+ 'Part' => 'Partes',
+ 'Phone' => 'Teléfono',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Project' => 'Proyecto',
+ 'Purchase Order' => 'Orden de Compra',
+ 'Purchase Orders' => 'Ordenes de Compra',
+ 'Qty' => 'Cant.',
+ 'Recd' => 'Rec',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Faltan',
+ 'Required by' => 'Requerido por',
+ 'Sales Invoice' => 'Factura de Venta',
+ 'Sales Order' => 'Orden de venta',
+ 'Sales Orders' => 'Ordenes de venta',
+ 'Salesperson' => 'Vendedor',
+ 'Save' => 'Salvar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione uno de los elementos listados',
+ 'Select postscript or PDF!' => 'Seleccione postscript o PDF',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Envíe',
+ 'Ship to' => 'Envíe a',
+ 'Ship via' => 'Envía vía',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Tax' => 'Impuesto',
+ 'Tax Included' => 'Impuesto Incluido',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Transfer' => 'Transferencia',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice' => 'Factura de Proveedor',
+ 'Vendor missing!' => 'Falta proveedor!',
+ 'Vendor not on file!' => 'Proveedor no está en archivo!',
+ 'What type of item is this?' => '¿Que tipo de Item es este?',
+ 'Yes' => 'Si',
+ 'days' => 'Días',
+ 'ea' => 'c/u',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'listo' => 'done',
+ 'correo_electrónico' => 'e_mail',
+ 'imprimir' => 'print',
+ 'orden_de_compra' => 'purchase_order',
+ 'factura_de_venta' => 'sales_invoice',
+ 'orden_de_venta' => 'sales_order',
+ 'salvar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'envíe_a' => 'ship_to',
+ 'transferencia' => 'transfer',
+ 'actualizar' => 'update',
+ 'factura_de_proveedor' => 'vendor_invoice',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/sv/pe b/locale/sv/pe
new file mode 100755
index 00000000..5dcdd374
--- /dev/null
+++ b/locale/sv/pe
@@ -0,0 +1,117 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Active' => 'Activa',
+ 'Add' => 'Agregar',
+ 'Add Group' => 'Agregar Grupo',
+ 'Add Project' => 'Agregar Proyecto',
+ 'Address' => 'Dirección',
+ 'All' => 'Todos',
+ 'Amount' => 'Total',
+ 'Bin' => 'Bin',
+ 'Continue' => 'Continuar',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => 'Falta cliente!',
+ 'Customer not on file!' => 'Cliente no existe en archivo!',
+ 'Date' => 'Fecha',
+ 'Delete' => 'Borrar',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Edit Group' => 'Editar Grupo',
+ 'Edit Project' => 'Editar Proyecto',
+ 'Employee' => 'Empleado',
+ 'From' => 'Desde',
+ 'Group' => 'Grupo',
+ 'Group deleted!' => 'Grupo borrado!',
+ 'Group missing!' => 'Falta Grupo!',
+ 'Group saved!' => 'Grupo guardado!',
+ 'Groups' => 'Grupos',
+ 'Income' => 'Ingreso',
+ 'Link Accounts' => 'Enlazar Cuentas',
+ 'List Price' => 'Precio de Lista',
+ 'Notes' => 'Notas',
+ 'Nothing selected!' => 'Nada seleccionado!',
+ 'Number' => 'Número',
+ 'Orphaned' => 'Huerfano',
+ 'Project' => 'Proyecto',
+ 'Project Number' => 'Número de Proyecto',
+ 'Project deleted!' => 'Proyecto borrado!',
+ 'Project saved!' => 'Proyecto guardado!',
+ 'Projects' => 'Proyectos',
+ 'Qty' => 'Cant.',
+ 'Save' => 'Salvar',
+ 'Select from one of the names below' => 'Seleccione uno de los elementos listados',
+ 'Sell Price' => 'Precio de Venta',
+ 'Summary' => 'Resumen',
+ 'Tax' => 'Impuesto',
+ 'To' => 'Hasta ',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Updated' => 'Actalizado',
+ 'Vendor' => 'Proveedor',
+ 'Vendor not on file!' => 'Proveedor no está en archivo!',
+ 'Weight' => 'Peso',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'agregar_grupo' => 'add_group',
+ 'agregar_proyecto' => 'add_project',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'salvar' => 'save',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/sv/pos b/locale/sv/pos
new file mode 100755
index 00000000..f2c9ed73
--- /dev/null
+++ b/locale/sv/pos
@@ -0,0 +1,68 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Add POS Invoice' => 'Agregar Factura POS',
+ 'Amount' => 'Total',
+ 'Cannot post transaction!' => 'No puede registrar transacción!',
+ 'Change' => 'Cambio',
+ 'Continue' => 'Continuar',
+ 'Credit Limit' => 'Limite de Credito',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => 'Falta cliente!',
+ 'Delete' => 'Borrar',
+ 'Description' => 'Descripción',
+ 'Edit POS Invoice' => 'Editar Factura POS',
+ 'Exchange Rate' => 'Tasa de Intercambio',
+ 'Exchange rate missing!' => 'No se encuentra cambio de moneda',
+ 'Extended' => 'Extendido',
+ 'From' => 'Desde',
+ 'Number' => 'Número',
+ 'Open' => 'Abierto',
+ 'Post' => 'Registrar',
+ 'Posted!' => 'Enviado!',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Qty' => 'Cant.',
+ 'Receipts' => 'Ingresos',
+ 'Record in' => 'Registrar en',
+ 'Remaining' => 'Faltan',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Pantalla',
+ 'Source' => 'Fuente',
+ 'Subtotal' => 'Subtotal',
+ 'Tax Included' => 'Impuesto Incluido',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'registrar' => 'post',
+ 'imprimir' => 'print',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/sv/ps b/locale/sv/ps
new file mode 100755
index 00000000..c68337ea
--- /dev/null
+++ b/locale/sv/ps
@@ -0,0 +1,297 @@
+$self{texts} = {
+ 'AP Aging' => 'Antiguedad de Saldos - CxP',
+ 'AP Outstanding' => 'CxP Extraordinarias',
+ 'AP Transaction' => 'Transaccion - CxP',
+ 'AP Transactions' => 'Transacciones - Cuentas por Pagar',
+ 'AR Aging' => 'Antiguedad de Saldos - CxC ',
+ 'AR Outstanding' => 'CxC Extraordinarias',
+ 'AR Transaction' => 'Transaccion - CxC',
+ 'AR Transactions' => 'Transacciones - CxC',
+ 'Account' => 'Cuenta',
+ 'Account Number' => 'Número de Cuenta',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Accounts' => 'Cuentas',
+ 'Add POS Invoice' => 'Agregar Factura POS',
+ 'Add Purchase Order' => 'Agregar Orden de Compra',
+ 'Add Sales Invoice' => 'Agregar Factura de Venta',
+ 'Add Sales Order' => 'Agregar Nota de Remisión',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Total',
+ 'Amount Due' => 'Monto Vencido',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => '¿Esta seguro de que desea borrar la Factura No.:',
+ 'Are you sure you want to delete Transaction' => '¿Está usted seguro de que desea suprimir la transacción?',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Balance',
+ 'Balance Sheet' => 'Hoja de Balance',
+ 'Bcc' => 'Bcc',
+ 'Bin' => 'Bin',
+ 'Cannot delete invoice!' => 'No puede borraar factura!',
+ 'Cannot delete transaction!' => 'No puede borrar transacción!',
+ 'Cannot post invoice for a closed period!' => 'No se puede registrar factura para un periodo cerrado!',
+ 'Cannot post invoice!' => 'No puede registrar factura!',
+ 'Cannot post payment for a closed period!' => 'No se puede registrar pago para un periodo cerrado',
+ 'Cannot post transaction for a closed period!' => 'No se puede registrar una transacción para un periodo cerrado',
+ 'Cannot post transaction!' => 'No puede registrar transacción!',
+ 'Cash' => 'Caja',
+ 'Cc' => 'Cc',
+ 'Change' => 'Cambio',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Cerrado',
+ 'Compare to' => 'Comparar a',
+ 'Confirm!' => 'Confirmar!',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Limite de Credito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => 'Falta cliente!',
+ 'Customer not on file!' => 'Cliente no existe en archivo!',
+ 'Date' => 'Fecha',
+ 'Date Paid' => 'Fecha de pago',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Decimalplaces' => 'Posiciones decimales',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de Entrega',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de Vencimiento',
+ 'Due Date missing!' => 'Falta Fecha de Vencimiento!',
+ 'E-mail' => 'Correo Electrónico',
+ 'E-mail Statement to' => 'Enviar estado de cuenta por E-mail a',
+ 'E-mail address missing!' => 'Falta E-mail!',
+ 'Edit POS Invoice' => 'Editar Factura POS',
+ 'Edit Sales Invoice' => 'Editar Factura de Venta',
+ 'Employee' => 'Empleado',
+ 'Exch' => 'Interc.',
+ 'Exchange Rate' => 'Tasa de Intercambio',
+ 'Exchange rate for payment missing!' => 'No se encuentra pago por cambio de moneda',
+ 'Exchange rate missing!' => 'No se encuentra cambio de moneda',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'GIFI' => 'Código GIFI',
+ 'Group' => 'Grupo',
+ 'Heading' => 'Encabezado',
+ 'ID' => 'ID',
+ 'In-line' => 'En linea',
+ 'Include Exchange Rate Difference' => 'Incluya diferencia de tasa de cambio',
+ 'Include in Report' => 'Incluya en informe',
+ 'Income Statement' => 'Estado de Cuentas',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de Factura',
+ 'Invoice Date missing!' => 'Falta la Fecha de la Factura!',
+ 'Invoice Number' => 'Número de Factura',
+ 'Invoice Number missing!' => 'Falta el Número de Factura!',
+ 'Invoice deleted!' => 'Factura borrada!',
+ 'Item not on file!' => '¡El artículo no se encuentra en archivo!',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Message' => 'Mensaje',
+ 'N/A' => 'N/A',
+ 'No.' => ' No ',
+ 'Notes' => 'Notas',
+ 'Nothing selected!' => 'Nada seleccionado!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Number missing in Row' => 'No se encuentra el número en la fila',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Date missing!' => 'No se encuentra la fecha de orden!',
+ 'Order Number' => 'Orden Número',
+ 'Order Number missing!' => 'No se encuentra el número de orden!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de Empaque',
+ 'Packing List Date missing!' => '!Falta fecha en lista de empaque!',
+ 'Packing List Number missing!' => '!Falta nzmero en lista de empaque!',
+ 'Paid' => 'Total Pagado',
+ 'Part' => 'Partes',
+ 'Payment date missing!' => 'No se encuentra la fecha de Pago!',
+ 'Payments' => 'Pagos',
+ 'Phone' => 'Teléfono',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Posted!' => 'Enviado!',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Project' => 'Proyecto',
+ 'Project Number' => 'Número de Proyecto',
+ 'Purchase Order' => 'Orden de Compra',
+ 'Qty' => 'Cant.',
+ 'Recd' => 'Rec',
+ 'Receipt' => 'Recibo',
+ 'Receipts' => 'Ingresos',
+ 'Record in' => 'Registrar en',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Faltan',
+ 'Report for' => 'Informe para',
+ 'Required by' => 'Requerido por',
+ 'Sales Order' => 'Orden de venta',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Pantalla',
+ 'Select all' => 'Seleccione todos',
+ 'Select from one of the names below' => 'Seleccione uno de los elementos listados',
+ 'Select postscript or PDF!' => 'Seleccione postscript o PDF',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Envíe',
+ 'Ship to' => 'Envíe a',
+ 'Ship via' => 'Envía vía',
+ 'Source' => 'Fuente',
+ 'Standard' => 'Estandar',
+ 'Statement' => 'Estado de Cuenta',
+ 'Statement sent to' => 'Estado de Cuenta enviado a',
+ 'Statements sent to printer!' => 'Estados de Cuenta enviados a impresora!',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resumen',
+ 'Tax' => 'Impuesto',
+ 'Tax Included' => 'Impuesto Incluido',
+ 'Tax collected' => 'Impuesto recaudado',
+ 'Tax paid' => 'Impuesto pagado',
+ 'Till' => 'Hasta',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Transaction deleted!' => 'Transacción borrada!',
+ 'Transaction posted!' => 'Transacción registrada!',
+ 'Trial Balance' => 'Balance De Comprobación',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor missing!' => 'Falta proveedor!',
+ 'Vendor not on file!' => 'Proveedor no está en archivo!',
+ 'What type of item is this?' => '¿Que tipo de Item es este?',
+ 'Yes' => 'Si',
+ 'as at' => 'Al',
+ 'ea' => 'c/u',
+ 'for Period' => 'para el período',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'transaccion___cxp' => 'ap_transaction',
+ 'transaccion___cxc' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'correo_electrónico' => 'e_mail',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'orden_de_venta' => 'sales_order',
+ 'seleccione_todos' => 'select_all',
+ 'envíe_a' => 'ship_to',
+ 'actualizar' => 'update',
+ 'si' => 'yes',
+};
+
+1;
+
diff --git a/locale/sv/pw b/locale/sv/pw
new file mode 100755
index 00000000..1f93b832
--- /dev/null
+++ b/locale/sv/pw
@@ -0,0 +1,12 @@
+$self{texts} = {
+ 'Continue' => 'Continuar',
+ 'Password' => 'Contraseña',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/sv/rc b/locale/sv/rc
new file mode 100755
index 00000000..2038c041
--- /dev/null
+++ b/locale/sv/rc
@@ -0,0 +1,73 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Balance',
+ 'Beginning Balance' => 'Inicio de balance',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Current' => 'Actual',
+ 'Date' => 'Fecha',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Difference' => 'Diferencia',
+ 'Done' => 'Listo',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'Include Exchange Rate Difference' => 'Incluya diferencia de tasa de cambio',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Out of balance!' => 'Fuera de balance!',
+ 'Outstanding' => 'Extraordinario',
+ 'R' => 'R',
+ 'Reconciliation' => 'Conciliación',
+ 'Select all' => 'Seleccione todos',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Source' => 'Fuente',
+ 'Statement Balance' => 'Balance Estado de Cuenta',
+ 'Summary' => 'Resumen',
+ 'To' => 'Hasta ',
+ 'Update' => 'Actualizar',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'continuar' => 'continue',
+ 'listo' => 'done',
+ 'seleccione_todos' => 'select_all',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/sv/rp b/locale/sv/rp
new file mode 100755
index 00000000..ceb35d7a
--- /dev/null
+++ b/locale/sv/rp
@@ -0,0 +1,160 @@
+$self{texts} = {
+ 'AP Aging' => 'Antiguedad de Saldos - CxP',
+ 'AR Aging' => 'Antiguedad de Saldos - CxC ',
+ 'Account' => 'Cuenta',
+ 'Account Number' => 'Número de Cuenta',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Accounts' => 'Cuentas',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Total',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Balance',
+ 'Balance Sheet' => 'Hoja de Balance',
+ 'Bcc' => 'Bcc',
+ 'Cash' => 'Caja',
+ 'Cc' => 'Cc',
+ 'Compare to' => 'Comparar a',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Credit' => 'Crédito',
+ 'Curr' => 'Mon.',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer not on file!' => 'Cliente no existe en archivo!',
+ 'Date' => 'Fecha',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Decimalplaces' => 'Posiciones decimales',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de Vencimiento',
+ 'E-mail' => 'Correo Electrónico',
+ 'E-mail Statement to' => 'Enviar estado de cuenta por E-mail a',
+ 'E-mail address missing!' => 'Falta E-mail!',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'GIFI' => 'Código GIFI',
+ 'Heading' => 'Encabezado',
+ 'ID' => 'ID',
+ 'In-line' => 'En linea',
+ 'Include Exchange Rate Difference' => 'Incluya diferencia de tasa de cambio',
+ 'Include in Report' => 'Incluya en informe',
+ 'Income Statement' => 'Estado de Cuentas',
+ 'Invoice' => 'Factura',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Message' => 'Mensaje',
+ 'N/A' => 'N/A',
+ 'Nothing selected!' => 'Nada seleccionado!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Número',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Order' => 'Orden',
+ 'PDF' => 'PDF',
+ 'Payments' => 'Pagos',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Imprimir',
+ 'Project' => 'Proyecto',
+ 'Project Number' => 'Número de Proyecto',
+ 'Receipts' => 'Ingresos',
+ 'Reference' => 'Referencia',
+ 'Report for' => 'Informe para',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Pantalla',
+ 'Select all' => 'Seleccione todos',
+ 'Select from one of the names below' => 'Seleccione uno de los elementos listados',
+ 'Select postscript or PDF!' => 'Seleccione postscript o PDF',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Source' => 'Fuente',
+ 'Standard' => 'Estandar',
+ 'Statement' => 'Estado de Cuenta',
+ 'Statement sent to' => 'Estado de Cuenta enviado a',
+ 'Statements sent to printer!' => 'Estados de Cuenta enviados a impresora!',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resumen',
+ 'Tax' => 'Impuesto',
+ 'Tax collected' => 'Impuesto recaudado',
+ 'Tax paid' => 'Impuesto pagado',
+ 'Till' => 'Hasta',
+ 'To' => 'Hasta ',
+ 'Total' => 'Total',
+ 'Trial Balance' => 'Balance De Comprobación',
+ 'Vendor' => 'Proveedor',
+ 'Vendor not on file!' => 'Proveedor no está en archivo!',
+ 'as at' => 'Al',
+ 'for Period' => 'para el período',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuar' => 'continue',
+ 'correo_electrónico' => 'e_mail',
+ 'imprimir' => 'print',
+ 'seleccione_todos' => 'select_all',
+};
+
+1;
+
diff --git a/locale/tr/COPYING b/locale/tr/COPYING
new file mode 100755
index 00000000..4401e156
--- /dev/null
+++ b/locale/tr/COPYING
@@ -0,0 +1,23 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2001
+#
+# Turkish texts:
+#
+# Author: Mufit Eribol <meribol@deltagrup.com.tr>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/tr/LANGUAGE b/locale/tr/LANGUAGE
new file mode 100755
index 00000000..52f70904
--- /dev/null
+++ b/locale/tr/LANGUAGE
@@ -0,0 +1 @@
+Turkish (ISO-8859-9)
diff --git a/locale/tr/aa b/locale/tr/aa
new file mode 100755
index 00000000..4fb0c7ba
--- /dev/null
+++ b/locale/tr/aa
@@ -0,0 +1,96 @@
+$self{charset} = 'ISO-8859-9';
+
+$self{texts} = {
+ 'AP Transactions' => 'Borç Ýþlemleri',
+ 'AR Transactions' => 'Alacak Ýþlemleri',
+ 'Account' => 'Hesap',
+ 'Accounting Menu' => 'Muhasebe Menüsü',
+ 'Amount' => 'Miktar',
+ 'Apr' => 'Nis',
+ 'April' => 'Nisan',
+ 'Are you sure you want to delete Transaction' => 'Ýþlemi silmek istediðinizden emin misiniz? Fiþ: ',
+ 'Aug' => 'Aðu',
+ 'August' => 'Aðustos',
+ 'Confirm!' => 'Onayla!',
+ 'Continue' => 'Devam',
+ 'Credit' => 'Alacak',
+ 'Credit Limit' => 'Kredi Limiti',
+ 'Currency' => 'Para Birimi',
+ 'Customer' => 'Alýcý',
+ 'Date' => 'Tarih',
+ 'Date Paid' => 'Ödendiði Tarih',
+ 'Debit' => 'Borç',
+ 'Dec' => 'Ara',
+ 'December' => 'Aralýk',
+ 'Delete' => 'Sil',
+ 'Description' => 'Açýklama',
+ 'Due Date' => 'Vade Tarihi',
+ 'Due Date missing!' => 'Vade Tarihi yok!',
+ 'Exch' => 'D.Kuru',
+ 'Exchange Rate' => 'Döviz Kuru',
+ 'Feb' => 'Þub',
+ 'February' => 'Þubat',
+ 'From' => 'Baþlangýç',
+ 'Include in Report' => 'Raporla',
+ 'Invoice' => 'Fatura',
+ 'Invoice Date' => 'Fatura Tarihi',
+ 'Invoice Date missing!' => 'Fatura Tarihi yok!',
+ 'Invoice Number' => 'Fatura No',
+ 'Jan' => 'Oca',
+ 'January' => 'Ocak',
+ 'Jul' => 'Tem',
+ 'July' => 'Temmuz',
+ 'Jun' => 'Haz',
+ 'June' => 'Haziran',
+ 'Mar' => 'Mar',
+ 'March' => 'Mart',
+ 'May' => 'May',
+ 'May ' => 'Mayýs',
+ 'Notes' => 'Notlar:',
+ 'Nov' => 'Kas',
+ 'November' => 'Kasým',
+ 'Oct' => 'Eki',
+ 'October' => 'Ekim',
+ 'Order' => 'Sipariþ',
+ 'Order Number' => 'Sipariþ No',
+ 'Paid' => 'Ödendi',
+ 'Payment date missing!' => 'Ödeme Tarihi yok',
+ 'Payments' => 'Ödemeler',
+ 'Sep' => 'Eyl',
+ 'September' => 'Eylül',
+ 'Source' => 'Kaynak',
+ 'Subtotal' => 'Aratoplam',
+ 'Tax' => 'Vergi',
+ 'Tax Included' => 'Vergi Dahil',
+ 'To' => 'Bitiþ',
+ 'Total' => 'Toplam',
+ 'Vendor' => 'Satýcý',
+ 'Yes' => 'Evet',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'devam' => 'continue',
+ 'sil' => 'delete',
+ 'evet' => 'yes',
+};
+
+1;
+
diff --git a/locale/tr/admin b/locale/tr/admin
new file mode 100755
index 00000000..d8fa1b5b
--- /dev/null
+++ b/locale/tr/admin
@@ -0,0 +1,133 @@
+$self{charset} = 'ISO-8859-9';
+
+$self{texts} = {
+ 'Access Control' => 'Giriþ Kontrol',
+ 'Accounting' => 'Muhasebe',
+ 'Add User' => 'Kullanýcý Ekle',
+ 'Address' => 'Adres',
+ 'Administration' => 'Yönetim',
+ 'Administrator' => 'Administrator',
+ 'All Datasets up to date!' => 'All Datasets up to date!',
+ 'Cannot create Lock!' => 'Cannot create Lock!',
+ 'Change Admin Password' => 'Yönetici Þifresini Deðiþtir',
+ 'Change Password' => 'Þifre Deðiþtir',
+ 'Click on login name to edit!' => 'Düzenlemek için giriþ ismini týklayýn.',
+ 'Company' => 'Þirket',
+ 'Connect to' => 'Baðlan',
+ 'Continue' => 'Devam',
+ 'Create Chart of Accounts' => 'Hesap Planý Oluþtur',
+ 'Create Dataset' => 'Veriseti Oluþtur',
+ 'DBI not installed!' => 'DBJ kurulu deðil',
+ 'Database' => 'Veritabaný',
+ 'Database Administration' => 'Veritabani Yonetimi',
+ 'Database Driver not checked!' => 'Database Driver not checked!',
+ 'Database User missing!' => 'Veritabaný Kullanýcýsý yok!',
+ 'Dataset' => 'Veriseti',
+ 'Dataset missing!' => 'Veriseti Yok!',
+ 'Dataset updated!' => 'Dataset updated!',
+ 'Date Format' => 'Tarih Formatý',
+ 'Delete' => 'Sil',
+ 'Delete Dataset' => 'Verisetini Sil',
+ 'Directory' => 'Dizin',
+ 'Driver' => 'Sürücü',
+ 'E-mail' => 'Posta',
+ 'Edit User' => 'Kullanýcý Bilgilerini Düzenle',
+ 'Existing Datasets' => 'Verisetleri',
+ 'Fax' => 'Faks',
+ 'Host' => 'Host',
+ 'Hostname missing!' => 'Host yok!',
+ 'Language' => 'Dil',
+ 'Lock System' => 'Lock System',
+ 'Lockfile created!' => 'Lockfile created!',
+ 'Lockfile removed!' => 'Lockfile removed!',
+ 'Login' => 'Giriþ',
+ 'Login name missing!' => 'Login name missing!',
+ 'Multibyte Encoding' => 'Multibyte Encoding',
+ 'Name' => 'Ýsim',
+ 'New Templates' => 'Yeni Þablonlar',
+ 'No Database Drivers available!' => 'Veritabaný Sürücüsü yok!',
+ 'No Dataset selected!' => 'Veriseti seçilmedi!',
+ 'Nothing to delete!' => 'Nothing to delete!',
+ 'Number Format' => 'Rakam Formatý',
+ 'Oracle Database Administration' => 'Oracle Veritabaný Yönetimi',
+ 'Password' => 'Þifre',
+ 'Password changed!' => 'Password changed!',
+ 'Pg Database Administration' => 'Pg Veritabaný Yönetimi',
+ 'PgPP Database Administration' => 'PgPP Database Administration',
+ 'Phone' => 'Telefon',
+ 'Port' => 'Port',
+ 'Port missing!' => 'Port yok!',
+ 'Printer' => 'Yazýcý',
+ 'Save' => 'Kaydet',
+ 'Setup Templates' => 'Þablon Kur',
+ 'Signature' => 'Ýmza',
+ 'Stylesheet' => 'Düzen Sayfasý',
+ 'Templates' => 'Þablonlar',
+ 'The following Datasets are not in use and can be deleted' => 'Aþaðýdaki Verisetleri kullanýlmamaktadýr ve silinebilir',
+ 'The following Datasets need to be updated' => 'The following Datasets need to be updated',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Mevcut fiþ bilgileri için bu bir ön kontroldür. Bu aþamada hiçbirþey oluþturulmaz ve silinemez',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Gruba yeni kullanýcý eklemek için, giriþ ismini deðiþtirin ve kaydedin. Yeni kullanýcý yeni giriþ altýnda ayný parametrelerle kaydedilecektir.',
+ 'Unlock System' => 'Unlock System',
+ 'Update Dataset' => 'Update Dataset',
+ 'Use Templates' => 'Þablon Kullan',
+ 'User' => 'Kullanýcý',
+ 'User deleted!' => 'User deleted!',
+ 'User saved!' => 'User saved!',
+ 'Version' => 'Versiyon',
+ 'does not exist' => 'mevcut deðil',
+ 'is already a member!' => 'üyedir!',
+ 'localhost' => 'Yerelhost',
+ 'successfully created!' => 'baþarýyla oluþturuldu!',
+ 'successfully deleted!' => 'baþarýyla silindi!',
+ 'website' => 'Websitesi',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'kullanýcý_ekle' => 'add_user',
+ 'yönetici_Þifresini_deðiþtir' => 'change_admin_password',
+ 'Þifre_deðiþtir' => 'change_password',
+ 'devam' => 'continue',
+ 'veriseti_oluþtur' => 'create_dataset',
+ 'sil' => 'delete',
+ 'verisetini_sil' => 'delete_dataset',
+ 'lock_system' => 'lock_system',
+ 'giriþ' => 'login',
+ 'oracle_veritabaný_yönetimi' => 'oracle_database_administration',
+ 'pg_veritabaný_yönetimi' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'kaydet' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/tr/all b/locale/tr/all
new file mode 100755
index 00000000..1b88a47a
--- /dev/null
+++ b/locale/tr/all
@@ -0,0 +1,892 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+$self{charset} = 'ISO-8859-9';
+
+
+$self{texts} = {
+ 'A' => '',
+ 'AP' => 'Borçlar',
+ 'AP Aging' => 'Gecikmiþ Borçlar',
+ 'AP Outstanding' => '',
+ 'AP Transaction' => '',
+ 'AP Transactions' => 'Borç Ýþlemleri',
+ 'AR' => 'Alacaklar',
+ 'AR Aging' => 'Gecikmiþ Alacaklar',
+ 'AR Outstanding' => '',
+ 'AR Transaction' => '',
+ 'AR Transactions' => 'Alacak Ýþlemleri',
+ 'AR/AP' => '',
+ 'About' => 'Program bilgileri',
+ 'Above' => '',
+ 'Access Control' => 'Giriþ Kontrol',
+ 'Access Denied!' => '',
+ 'Account' => 'Hesap',
+ 'Account Number' => 'Hesap Numarasý',
+ 'Account Number missing!' => 'Hesap Numarasý yok!',
+ 'Account Type' => 'Hesap Türü',
+ 'Account Type missing!' => 'Hesap Türü yok!',
+ 'Account deleted!' => '',
+ 'Account does not exist!' => '',
+ 'Account saved!' => '',
+ 'Accounting' => 'Muhasebe',
+ 'Accounting Menu' => 'Muhasebe Menüsü',
+ 'Accounts' => '',
+ 'Accrual' => '',
+ 'Activate Audit trail' => '',
+ 'Active' => '',
+ 'Add' => 'Ekle',
+ 'Add AP Transaction' => '',
+ 'Add AR Transaction' => '',
+ 'Add Account' => 'Hesap Ekle',
+ 'Add Assembly' => 'Grup Ekle',
+ 'Add Business' => '',
+ 'Add Cash Transfer Transaction' => '',
+ 'Add Customer' => 'Alýcý Ekle',
+ 'Add Deduction' => '',
+ 'Add Department' => '',
+ 'Add Employee' => '',
+ 'Add Exchange Rate' => '',
+ 'Add GIFI' => '',
+ 'Add General Ledger Transaction' => 'Defteri Kebire Ýþlem Ekle',
+ 'Add Group' => '',
+ 'Add Job' => '',
+ 'Add Labor/Overhead' => '',
+ 'Add Language' => '',
+ 'Add POS Invoice' => '',
+ 'Add Part' => 'Parça Ekle',
+ 'Add Pricegroup' => '',
+ 'Add Project' => '',
+ 'Add Purchase Order' => 'Satýnalma Sip. Ekle',
+ 'Add Quotation' => '',
+ 'Add Request for Quotation' => '',
+ 'Add SIC' => '',
+ 'Add Sales Invoice' => '',
+ 'Add Sales Order' => 'Satýþ Sipariþi Ekle',
+ 'Add Service' => 'Hizmet Ekle',
+ 'Add Timecard' => '',
+ 'Add Transaction' => 'Ýþlem Ekle',
+ 'Add User' => 'Kullanýcý Ekle',
+ 'Add Vendor' => 'Satýcý Ekle',
+ 'Add Vendor Invoice' => '',
+ 'Add Warehouse' => '',
+ 'Address' => 'Adres',
+ 'Administration' => 'Yönetim',
+ 'Administrator' => 'Administrator',
+ 'After Deduction' => '',
+ 'All' => 'Hepsi',
+ 'All Accounts' => '',
+ 'All Datasets up to date!' => 'All Datasets up to date!',
+ 'All Items' => '',
+ 'Allowances' => '',
+ 'Amount' => 'Miktar',
+ 'Amount Due' => '',
+ 'Amount missing!' => '',
+ 'Apr' => 'Nis',
+ 'April' => 'Nisan',
+ 'Are you sure you want to delete Invoice Number' => 'Fatura Numarasýný silmek istediðinizden emin misiniz? Fiþ: ',
+ 'Are you sure you want to delete Order Number' => 'Sipariþ Numarasýný silmek istediðinizden emin misiniz? Fiþ: ',
+ 'Are you sure you want to delete Quotation Number' => '',
+ 'Are you sure you want to delete Timecard for' => '',
+ 'Are you sure you want to delete Transaction' => 'Ýþlemi silmek istediðinizden emin misiniz? Fiþ: ',
+ 'Are you sure you want to remove the marked entries from the queue?' => '',
+ 'Assemblies' => 'Gruplar',
+ 'Assemblies restocked!' => '',
+ 'Assembly' => '',
+ 'Assembly stocked!' => '',
+ 'Asset' => 'Aktif',
+ 'Attachment' => '',
+ 'Audit Control' => '',
+ 'Audit trail disabled' => '',
+ 'Audit trail enabled' => '',
+ 'Audit trail removed up to' => '',
+ 'Aug' => 'Aðu',
+ 'August' => 'Aðustos',
+ 'Average Cost' => '',
+ 'Avg Cost' => '',
+ 'BIC' => '',
+ 'BOM' => '',
+ 'Backup' => 'Yedekleme',
+ 'Backup sent to' => '',
+ 'Balance' => '',
+ 'Balance Sheet' => 'Bilanço',
+ 'Based on' => '',
+ 'Bcc' => '',
+ 'Before Deduction' => '',
+ 'Beginning Balance' => '',
+ 'Below' => '',
+ 'Billing Address' => '',
+ 'Bin' => '',
+ 'Bin List' => '',
+ 'Bin Lists' => '',
+ 'Books are open' => '',
+ 'Break' => '',
+ 'Business' => '',
+ 'Business Number' => 'ÞirketNo',
+ 'Business deleted!' => '',
+ 'Business saved!' => '',
+ 'C' => '',
+ 'COGS' => 'SMM',
+ 'COGS account does not exist!' => '',
+ 'Cannot add timecard for a completed job!' => '',
+ 'Cannot change timecard for a completed job!' => '',
+ 'Cannot create Assembly' => '',
+ 'Cannot create Labor' => '',
+ 'Cannot create Lock!' => 'Cannot create Lock!',
+ 'Cannot create Part' => '',
+ 'Cannot create Service' => '',
+ 'Cannot delete Timecard!' => '',
+ 'Cannot delete account!' => '',
+ 'Cannot delete customer!' => '',
+ 'Cannot delete default account!' => 'Öntanýmlý hesap silinmez!',
+ 'Cannot delete invoice!' => '',
+ 'Cannot delete item!' => '',
+ 'Cannot delete order!' => '',
+ 'Cannot delete quotation!' => '',
+ 'Cannot delete transaction!' => '',
+ 'Cannot delete vendor!' => '',
+ 'Cannot post Payment!' => '',
+ 'Cannot post Receipt!' => '',
+ 'Cannot post invoice for a closed period!' => '',
+ 'Cannot post invoice!' => '',
+ 'Cannot post payment for a closed period!' => '',
+ 'Cannot post transaction for a closed period!' => '',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => '',
+ 'Cannot post transaction!' => '',
+ 'Cannot remove files!' => '',
+ 'Cannot save account!' => '',
+ 'Cannot save defaults!' => '',
+ 'Cannot save order!' => '',
+ 'Cannot save preferences!' => '',
+ 'Cannot save quotation!' => '',
+ 'Cannot save timecard for a closed period!' => '',
+ 'Cannot save timecard!' => '',
+ 'Cannot set account for more than one of AR, AP or IC' => '',
+ 'Cannot set multiple options for' => '',
+ 'Cannot set multiple options for Item' => '',
+ 'Cannot stock Assembly!' => '',
+ 'Cannot stock assemblies!' => '',
+ 'Cash' => '',
+ 'Cc' => '',
+ 'Change' => '',
+ 'Change Admin Password' => 'Yönetici Þifresini Deðiþtir',
+ 'Change Password' => 'Þifre Deðiþtir',
+ 'Charge' => '',
+ 'Chart of Accounts' => 'Hesap Planý',
+ 'Check' => '',
+ 'Check Inventory' => '',
+ 'Checks' => '',
+ 'City' => '',
+ 'Cleared' => '',
+ 'Click on login name to edit!' => 'Düzenlemek için giriþ ismini týklayýn.',
+ 'Clocked' => '',
+ 'Close Books up to' => '',
+ 'Closed' => '',
+ 'Code' => '',
+ 'Code missing!' => '',
+ 'Company' => 'Þirket',
+ 'Company Name' => '',
+ 'Compare to' => '...kýyasla',
+ 'Completed' => '',
+ 'Components' => '',
+ 'Confirm' => '',
+ 'Confirm!' => 'Onayla!',
+ 'Connect to' => 'Baðlan',
+ 'Contact' => 'Kontak',
+ 'Continue' => 'Devam',
+ 'Contra' => '',
+ 'Copies' => '',
+ 'Copy to COA' => '',
+ 'Cost' => '',
+ 'Cost Center' => '',
+ 'Could not save pricelist!' => '',
+ 'Could not save!' => '',
+ 'Could not transfer Inventory!' => '',
+ 'Country' => '',
+ 'Create Chart of Accounts' => 'Hesap Planý Oluþtur',
+ 'Create Dataset' => 'Veriseti Oluþtur',
+ 'Credit' => 'Alacak',
+ 'Credit Limit' => 'Kredi Limiti',
+ 'Curr' => '',
+ 'Currency' => 'Para Birimi',
+ 'Current' => '',
+ 'Current Earnings' => '',
+ 'Customer' => 'Alýcý',
+ 'Customer History' => '',
+ 'Customer Number' => '',
+ 'Customer deleted!' => '',
+ 'Customer missing!' => '',
+ 'Customer not on file!' => '',
+ 'Customer saved!' => '',
+ 'Customers' => '',
+ 'DBI not installed!' => 'DBJ kurulu deðil',
+ 'DOB' => '',
+ 'Database' => 'Veritabaný',
+ 'Database Administration' => 'Veritabani Yonetimi',
+ 'Database Driver not checked!' => 'Database Driver not checked!',
+ 'Database Host' => 'Veritabaný Hostu',
+ 'Database User missing!' => 'Veritabaný Kullanýcýsý yok!',
+ 'Dataset' => 'Veriseti',
+ 'Dataset is newer than version!' => '',
+ 'Dataset missing!' => 'Veriseti Yok!',
+ 'Dataset updated!' => 'Dataset updated!',
+ 'Date' => 'Tarih',
+ 'Date Format' => 'Tarih Formatý',
+ 'Date Paid' => 'Ödendiði Tarih',
+ 'Date Received' => '',
+ 'Date missing!' => '',
+ 'Date received missing!' => '',
+ 'Date worked' => '',
+ 'Day' => '',
+ 'Day(s)' => '',
+ 'Days' => '',
+ 'Debit' => 'Borç',
+ 'Dec' => 'Ara',
+ 'December' => 'Aralýk',
+ 'Decimalplaces' => '',
+ 'Decrease' => '',
+ 'Deduct after' => '',
+ 'Deduction deleted!' => '',
+ 'Deduction saved!' => '',
+ 'Deductions' => '',
+ 'Default Template' => '',
+ 'Defaults' => '',
+ 'Defaults saved!' => '',
+ 'Delete' => 'Sil',
+ 'Delete Account' => 'Hesabý Sil',
+ 'Delete Dataset' => 'Verisetini Sil',
+ 'Delete Schedule' => '',
+ 'Deleting a language will also delete the templates for the language' => '',
+ 'Delivery Date' => '',
+ 'Department' => '',
+ 'Department deleted!' => '',
+ 'Department saved!' => '',
+ 'Departments' => '',
+ 'Deposit' => '',
+ 'Description' => 'Açýklama',
+ 'Description Translations' => '',
+ 'Description missing!' => '',
+ 'Detail' => '',
+ 'Difference' => '',
+ 'Directory' => 'Dizin',
+ 'Discount' => 'Ýndirim',
+ 'Done' => '',
+ 'Drawing' => '',
+ 'Driver' => 'Sürücü',
+ 'Dropdown Limit' => '',
+ 'Due Date' => 'Vade Tarihi',
+ 'Due Date missing!' => 'Vade Tarihi yok!',
+ 'E-mail' => 'Posta',
+ 'E-mail Statement to' => '',
+ 'E-mail address missing!' => 'Posta adresi yok!',
+ 'E-mail message' => '',
+ 'E-mailed' => '',
+ 'Edit' => '',
+ 'Edit AP Transaction' => '',
+ 'Edit AR Transaction' => '',
+ 'Edit Account' => 'Hesabý Düzenle',
+ 'Edit Assembly' => 'Grubu Düzenle',
+ 'Edit Business' => '',
+ 'Edit Cash Transfer Transaction' => '',
+ 'Edit Customer' => '',
+ 'Edit Deduction' => '',
+ 'Edit Department' => '',
+ 'Edit Description Translations' => '',
+ 'Edit Employee' => '',
+ 'Edit GIFI' => '',
+ 'Edit General Ledger Transaction' => 'Defteri Kebir Ýþlemini Düzenle',
+ 'Edit Group' => '',
+ 'Edit Job' => '',
+ 'Edit Labor/Overhead' => '',
+ 'Edit Language' => '',
+ 'Edit POS Invoice' => '',
+ 'Edit Part' => 'Parçayý Düzenle',
+ 'Edit Preferences for' => 'Tercihleri Düzenle: ',
+ 'Edit Pricegroup' => '',
+ 'Edit Project' => '',
+ 'Edit Purchase Order' => 'Alýþ Sipariþini Düzenle',
+ 'Edit Quotation' => '',
+ 'Edit Request for Quotation' => '',
+ 'Edit SIC' => '',
+ 'Edit Sales Invoice' => '',
+ 'Edit Sales Order' => 'Satýþ Sipariþini Düzenle',
+ 'Edit Service' => 'Hizmeti Düzenle',
+ 'Edit Template' => 'Þablonu Düzenle',
+ 'Edit Timecard' => '',
+ 'Edit User' => 'Kullanýcý Bilgilerini Düzenle',
+ 'Edit Vendor' => '',
+ 'Edit Vendor Invoice' => '',
+ 'Edit Warehouse' => '',
+ 'Employee' => '',
+ 'Employee Name' => '',
+ 'Employee Number' => '',
+ 'Employee deleted!' => '',
+ 'Employee pays' => '',
+ 'Employee saved!' => '',
+ 'Employees' => '',
+ 'Employer' => '',
+ 'Employer pays' => '',
+ 'Enddate' => '',
+ 'Ends' => '',
+ 'Enforce transaction reversal for all dates' => '',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Yerel ve yabancý para birimleri için 3 harfli tanýmlama giriniz yi týklayýnýz (USD:TRL:EUR)',
+ 'Equity' => 'Sermaye',
+ 'Every' => '',
+ 'Excempt age <' => '',
+ 'Exch' => 'D.Kuru',
+ 'Exchange Rate' => 'Döviz Kuru',
+ 'Exchange rate for payment missing!' => '',
+ 'Exchange rate missing!' => '',
+ 'Existing Datasets' => 'Verisetleri',
+ 'Expense' => 'Gider',
+ 'Expense account does not exist!' => '',
+ 'Expense/Asset' => 'Gider/Varlýklar',
+ 'Extended' => '',
+ 'FX' => '',
+ 'Failed to save order!' => '',
+ 'Fax' => 'Faks',
+ 'Feb' => 'Þub',
+ 'February' => 'Þubat',
+ 'For' => '',
+ 'Foreign Exchange Gain' => 'Kur Kazancý',
+ 'Foreign Exchange Loss' => 'Kur Kaybý',
+ 'Friday' => '',
+ 'From' => 'Baþlangýç',
+ 'From Warehouse' => '',
+ 'GIFI' => '',
+ 'GIFI deleted!' => '',
+ 'GIFI missing!' => '',
+ 'GIFI saved!' => '',
+ 'GL' => '',
+ 'GL Reference Number' => '',
+ 'GL Transaction' => '',
+ 'General Ledger' => 'Defteri Kebir',
+ 'Generate' => '',
+ 'Generate Orders' => '',
+ 'Generate Purchase Orders' => '',
+ 'Generate Purchase Orders from Sales Order' => '',
+ 'Generate Sales Order' => '',
+ 'Generate Sales Order from Purchase Orders' => '',
+ 'Generate Sales Orders' => '',
+ 'Goods & Services' => '',
+ 'Group' => '',
+ 'Group Items' => '',
+ 'Group Translations' => '',
+ 'Group deleted!' => '',
+ 'Group missing!' => '',
+ 'Group saved!' => '',
+ 'Groups' => '',
+ 'HR' => '',
+ 'HTML Templates' => '',
+ 'Heading' => 'Baþlýk',
+ 'History' => '',
+ 'Home Phone' => '',
+ 'Host' => 'Host',
+ 'Hostname missing!' => 'Host yok!',
+ 'IBAN' => '',
+ 'ID' => '',
+ 'Image' => '',
+ 'In-line' => '',
+ 'Inactive' => '',
+ 'Include Exchange Rate Difference' => '',
+ 'Include Payment' => '',
+ 'Include in Report' => 'Raporla',
+ 'Include in drop-down menus' => 'Seçmeli Menüye dahil et',
+ 'Income' => '',
+ 'Income Statement' => 'Gelir Tablosu',
+ 'Income account does not exist!' => '',
+ 'Incorrect Dataset version!' => '',
+ 'Increase' => '',
+ 'Individual Items' => 'Farklý Kalemler',
+ 'Internal Notes' => '',
+ 'Inventory' => 'Stok',
+ 'Inventory account does not exist!' => '',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Bu grubu çýkarmadan önce stok miktarý sýfýr olmalýdýr',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Bu Parçayý çýkarmadan önce stok miktarý sýfýr olmalýdýr',
+ 'Inventory saved!' => '',
+ 'Inventory transferred!' => '',
+ 'Invoice' => 'Fatura',
+ 'Invoice Date' => 'Fatura Tarihi',
+ 'Invoice Date missing!' => 'Fatura Tarihi yok!',
+ 'Invoice Number' => 'Fatura No',
+ 'Invoice Number missing!' => 'Fatura Numarasý yok!',
+ 'Invoice deleted!' => '',
+ 'Invoices' => '',
+ 'Is this a summary account to record' => 'Bu kaydedilecek hesap özeti mi',
+ 'Item already on pricelist!' => '',
+ 'Item deleted!' => '',
+ 'Item not on file!' => 'Bu kalem dosyada yok!',
+ 'Items' => '',
+ 'Jan' => 'Oca',
+ 'January' => 'Ocak',
+ 'Job' => '',
+ 'Job Name' => '',
+ 'Job Number' => '',
+ 'Job Number missing!' => '',
+ 'Job deleted!' => '',
+ 'Job saved!' => '',
+ 'Jobs' => '',
+ 'Jul' => 'Tem',
+ 'July' => 'Temmuz',
+ 'Jun' => 'Haz',
+ 'June' => 'Haziran',
+ 'LaTeX Templates' => '',
+ 'Labor Code' => '',
+ 'Labor/Overhead' => '',
+ 'Language' => 'Dil',
+ 'Language deleted!' => '',
+ 'Language saved!' => '',
+ 'Languages' => '',
+ 'Languages not defined!' => '',
+ 'Last Cost' => '',
+ 'Last Numbers & Default Accounts' => 'Son Numaralar ve Öntanýmlý Hesaplar',
+ 'Lead' => '',
+ 'Leadtime' => '',
+ 'Leave host and port field empty unless you want to make a remote connection.' => 'Uzakta baglantý yapmak istemiyorsanýz host ve port alanlarýný boþ býrakýnýz.',
+ 'Liability' => 'Pasif',
+ 'Licensed to' => 'Lisans Sahibi:',
+ 'Line Total' => '',
+ 'Link' => 'Baðla',
+ 'Link Accounts' => 'Baðlý Hesaplar',
+ 'List' => '',
+ 'List Accounts' => '',
+ 'List Businesses' => '',
+ 'List Departments' => '',
+ 'List GIFI' => '',
+ 'List Languages' => '',
+ 'List Price' => 'Liste Fiyatý',
+ 'List Projects' => '',
+ 'List SIC' => '',
+ 'List Transactions' => 'Ýþlemleri Listele',
+ 'List Warehouses' => '',
+ 'Lock System' => 'Lock System',
+ 'Lockfile created!' => 'Lockfile created!',
+ 'Lockfile removed!' => 'Lockfile removed!',
+ 'Login' => 'Giriþ',
+ 'Login name missing!' => 'Login name missing!',
+ 'Logout' => '',
+ 'Make' => 'Marka',
+ 'Manager' => '',
+ 'Mar' => 'Mar',
+ 'March' => 'Mart',
+ 'Marked entries printed!' => '',
+ 'Markup' => '',
+ 'Maximum' => '',
+ 'May' => 'May',
+ 'May ' => 'Mayýs',
+ 'Memo' => '',
+ 'Menu Width' => '',
+ 'Message' => '',
+ 'Method' => '',
+ 'Microfiche' => '',
+ 'Model' => 'Model',
+ 'Monday' => '',
+ 'Month' => '',
+ 'Month(s)' => '',
+ 'Months' => '',
+ 'Multibyte Encoding' => 'Multibyte Encoding',
+ 'N/A' => '',
+ 'Name' => 'Ýsim',
+ 'Name missing!' => '',
+ 'New Templates' => 'Yeni Þablonlar',
+ 'New Window' => '',
+ 'Next' => '',
+ 'Next Date' => '',
+ 'Next Number' => '',
+ 'No' => 'Hayýr',
+ 'No Database Drivers available!' => 'Veritabaný Sürücüsü yok!',
+ 'No Dataset selected!' => 'Veriseti seçilmedi!',
+ 'No Employees on file!' => '',
+ 'No Labor codes on file!' => '',
+ 'No email address for' => 'E-posta adresi yok: ',
+ 'No open Jobs!' => '',
+ 'No open Projects!' => '',
+ 'No.' => '',
+ 'Non-taxable' => '',
+ 'Non-taxable Purchases' => '',
+ 'Non-taxable Sales' => '',
+ 'Non-tracking Items' => '',
+ 'Notes' => 'Notlar:',
+ 'Nothing entered!' => '',
+ 'Nothing selected!' => '',
+ 'Nothing to delete!' => 'Nothing to delete!',
+ 'Nothing to print!' => '',
+ 'Nothing to transfer!' => '',
+ 'Nov' => 'Kas',
+ 'November' => 'Kasým',
+ 'Number' => 'Numara',
+ 'Number Format' => 'Rakam Formatý',
+ 'Number missing in Row' => 'Sýrada Numara yok!',
+ 'O' => '',
+ 'OH' => '',
+ 'Obsolete' => 'Eski',
+ 'Oct' => 'Eki',
+ 'October' => 'Ekim',
+ 'On Hand' => 'Stok:',
+ 'Open' => '',
+ 'Oracle Database Administration' => 'Oracle Veritabaný Yönetimi',
+ 'Order' => 'Sipariþ',
+ 'Order Date' => 'Sipariþ Tarihi',
+ 'Order Date missing!' => 'Sipariþ Tarihi yok!',
+ 'Order Entry' => 'Sipariþ Giriþi',
+ 'Order Number' => 'Sipariþ No',
+ 'Order Number missing!' => 'Sipariþ Numarasý yok!',
+ 'Order deleted!' => '',
+ 'Order generation failed!' => '',
+ 'Order saved!' => '',
+ 'Orders generated!' => '',
+ 'Orphaned' => '',
+ 'Out of balance transaction!' => '',
+ 'Out of balance!' => '',
+ 'Outstanding' => '',
+ 'PDF' => '',
+ 'PO Number' => '',
+ 'POS' => '',
+ 'POS Invoice' => '',
+ 'Packing List' => 'Paketleme Listesi',
+ 'Packing List Date missing!' => '',
+ 'Packing List Number missing!' => '',
+ 'Packing Lists' => '',
+ 'Paid' => 'Ödendi',
+ 'Part' => 'Parça',
+ 'Part Number' => '',
+ 'Partnumber' => '',
+ 'Parts' => 'Parçalar',
+ 'Password' => 'Þifre',
+ 'Password changed!' => 'Password changed!',
+ 'Password does not match!' => '',
+ 'Passwords do not match!' => '',
+ 'Payables' => 'Borçlar',
+ 'Payment' => 'Ödeme',
+ 'Payment date missing!' => 'Ödeme Tarihi yok',
+ 'Payment posted!' => '',
+ 'Payments' => 'Ödemeler',
+ 'Payments posted!' => '',
+ 'Payroll Deduction' => '',
+ 'Period' => '',
+ 'Pg Database Administration' => 'Pg Veritabaný Yönetimi',
+ 'PgPP Database Administration' => 'PgPP Database Administration',
+ 'Phone' => 'Telefon',
+ 'Pick List' => '',
+ 'Pick Lists' => '',
+ 'Port' => 'Port',
+ 'Port missing!' => 'Port yok!',
+ 'Pos' => '',
+ 'Post' => '',
+ 'Post as new' => '',
+ 'Posted!' => '',
+ 'Posting' => '',
+ 'Posting failed!' => '',
+ 'Postscript' => '',
+ 'Preferences' => 'Tercihler',
+ 'Preferences saved!' => 'Tercihler kaydedildi!',
+ 'Prepayment' => '',
+ 'Price' => 'Fiyat',
+ 'Pricegroup' => '',
+ 'Pricegroup deleted!' => '',
+ 'Pricegroup missing!' => '',
+ 'Pricegroup saved!' => '',
+ 'Pricegroups' => '',
+ 'Pricelist' => '',
+ 'Print' => '',
+ 'Print and Post' => '',
+ 'Print and Post as new' => '',
+ 'Print and Save' => '',
+ 'Print and Save as new' => '',
+ 'Print and post as new' => '',
+ 'Print and save as new' => '',
+ 'Printed' => '',
+ 'Printer' => 'Yazýcý',
+ 'Printing' => '',
+ 'Printing ... ' => '',
+ 'Process Transactions' => '',
+ 'Production' => '',
+ 'Profit Center' => '',
+ 'Project' => '',
+ 'Project Description Translations' => '',
+ 'Project Name' => '',
+ 'Project Number' => '',
+ 'Project Number missing!' => '',
+ 'Project Transactions' => '',
+ 'Project deleted!' => '',
+ 'Project not on file!' => '',
+ 'Project saved!' => '',
+ 'Project/Job Name' => '',
+ 'Project/Job Number' => '',
+ 'Projects' => '',
+ 'Purchase Order' => 'Satýnalma Sipariþi',
+ 'Purchase Order Number' => '',
+ 'Purchase Orders' => 'Satýnalma Sipariþleri',
+ 'Qty' => 'Adet',
+ 'Quantity exceeds available units to stock!' => '',
+ 'Quarter' => '',
+ 'Quotation' => '',
+ 'Quotation ' => '',
+ 'Quotation Date' => '',
+ 'Quotation Date missing!' => '',
+ 'Quotation Number' => '',
+ 'Quotation Number missing!' => '',
+ 'Quotation deleted!' => '',
+ 'Quotations' => '',
+ 'R' => '',
+ 'RFQ' => '',
+ 'RFQ ' => '',
+ 'RFQ Number' => '',
+ 'RFQs' => '',
+ 'ROP' => '',
+ 'Rate' => 'Oran',
+ 'Rate missing!' => '',
+ 'Recd' => '',
+ 'Receipt' => '',
+ 'Receipt posted!' => '',
+ 'Receipts' => '',
+ 'Receivables' => 'Alacaklar',
+ 'Receive' => '',
+ 'Receive Merchandise' => '',
+ 'Reconciliation' => '',
+ 'Reconciliation Report' => '',
+ 'Record in' => 'Kaydet',
+ 'Recurring Transaction' => '',
+ 'Recurring Transactions' => '',
+ 'Reference' => '',
+ 'Remaining' => '',
+ 'Remove' => '',
+ 'Remove Audit trail up to' => '',
+ 'Removed spoolfiles!' => '',
+ 'Removing marked entries from queue ...' => '',
+ 'Repeat' => '',
+ 'Report for' => '',
+ 'Reports' => 'Raporlar',
+ 'Req' => '',
+ 'Request for Quotation' => '',
+ 'Request for Quotations' => '',
+ 'Required by' => 'Talep tarihi:',
+ 'Retained Earnings' => 'Net Dönem Karý (Zararý)',
+ 'Role' => '',
+ 'S' => '',
+ 'SIC' => '',
+ 'SIC deleted!' => '',
+ 'SIC saved!' => '',
+ 'SKU' => '',
+ 'SSN' => '',
+ 'Sale' => '',
+ 'Sales' => 'Satýþlar',
+ 'Sales Invoice' => '',
+ 'Sales Invoice ' => '',
+ 'Sales Invoice.' => '',
+ 'Sales Invoice/AR Transaction Number' => '',
+ 'Sales Invoices' => '',
+ 'Sales Order' => 'Satýþ Sipariþi',
+ 'Sales Order Number' => '',
+ 'Sales Orders' => 'Satýþ Sipariþleri',
+ 'Sales Quotation Number' => '',
+ 'Salesperson' => '',
+ 'Saturday' => '',
+ 'Save' => 'Kaydet',
+ 'Save Pricelist' => '',
+ 'Save Schedule' => '',
+ 'Save as new' => '',
+ 'Save to File' => 'Dosyaya Kaydet',
+ 'Saving' => '',
+ 'Schedule' => '',
+ 'Scheduled' => '',
+ 'Screen' => '',
+ 'Search' => '',
+ 'Select' => '',
+ 'Select Customer' => '',
+ 'Select Vendor' => '',
+ 'Select a Printer!' => '',
+ 'Select a printer!' => '',
+ 'Select all' => '',
+ 'Select from one of the items below' => 'Aþaðýdaki kalemlerden birini seç',
+ 'Select from one of the names below' => '',
+ 'Select from one of the projects below' => '',
+ 'Select items' => '',
+ 'Select payment' => '',
+ 'Select postscript or PDF!' => '',
+ 'Select txt, postscript or PDF!' => '',
+ 'Sell' => '',
+ 'Sell Price' => 'Satýþ Fiyatý',
+ 'Send by E-Mail' => 'E-postayla gönder',
+ 'Sending' => '',
+ 'Sep' => 'Eyl',
+ 'September' => 'Eylül',
+ 'Serial No.' => '',
+ 'Serial Number' => '',
+ 'Service' => 'servis',
+ 'Service Code' => '',
+ 'Service/Labor Code' => '',
+ 'Services' => 'Servisler',
+ 'Session Timeout' => '',
+ 'Session expired!' => '',
+ 'Setup Templates' => 'Þablon Kur',
+ 'Ship' => '',
+ 'Ship Merchandise' => '',
+ 'Ship to' => '',
+ 'Ship via' => '',
+ 'Shipping' => '',
+ 'Shipping Address' => '',
+ 'Shipping Date' => '',
+ 'Shipping Date missing!' => '',
+ 'Shipping Point' => '',
+ 'Short' => 'Kýsa',
+ 'Signature' => 'Ýmza',
+ 'Source' => 'Kaynak',
+ 'Spoolfile' => '',
+ 'Standard' => '',
+ 'Standard Industrial Codes' => '',
+ 'Startdate' => '',
+ 'State' => '',
+ 'State/Province' => '',
+ 'Statement' => '',
+ 'Statement Balance' => '',
+ 'Statement sent to' => '',
+ 'Statements sent to printer!' => '',
+ 'Stock' => '',
+ 'Stock Assembly' => 'Grubu Stokla',
+ 'Stocking Date' => '',
+ 'Stylesheet' => 'Düzen Sayfasý',
+ 'Sub-contract GIFI' => '',
+ 'Subject' => '',
+ 'Subtotal' => 'Aratoplam',
+ 'Summary' => '',
+ 'Sunday' => '',
+ 'Supervisor' => '',
+ 'System' => '',
+ 'System Defaults' => '',
+ 'Tax' => 'Vergi',
+ 'Tax Accounts' => 'Vergi Hesaplarý',
+ 'Tax Included' => 'Vergi Dahil',
+ 'Tax Number' => '',
+ 'Tax Number / SSN' => '',
+ 'Tax collected' => '',
+ 'Tax paid' => '',
+ 'Taxable' => 'Vergiye tabi',
+ 'Template saved!' => '',
+ 'Templates' => 'Þablonlar',
+ 'Terms' => 'Þartlar',
+ 'Text' => '',
+ 'Text Templates' => '',
+ 'The following Datasets are not in use and can be deleted' => 'Aþaðýdaki Verisetleri kullanýlmamaktadýr ve silinebilir',
+ 'The following Datasets need to be updated' => 'The following Datasets need to be updated',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Mevcut fiþ bilgileri için bu bir ön kontroldür. Bu aþamada hiçbirþey oluþturulmaz ve silinemez',
+ 'Thursday' => '',
+ 'Till' => '',
+ 'Time In' => '',
+ 'Time Out' => '',
+ 'Timecard' => '',
+ 'Timecard deleted!' => '',
+ 'Timecard saved!' => '',
+ 'Timecards' => '',
+ 'Times' => '',
+ 'To' => 'Bitiþ',
+ 'To Warehouse' => '',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Gruba yeni kullanýcý eklemek için, giriþ ismini deðiþtirin ve kaydedin. Yeni kullanýcý yeni giriþ altýnda ayný parametrelerle kaydedilecektir.',
+ 'Top Level' => '',
+ 'Total' => 'Toplam',
+ 'Tracking Items' => '',
+ 'Trade Discount' => '',
+ 'Transaction' => '',
+ 'Transaction Date missing!' => 'Ýþlem Tarihi yok!',
+ 'Transaction Dates' => '',
+ 'Transaction deleted!' => '',
+ 'Transaction posted!' => '',
+ 'Transaction reversal enforced for all dates' => '',
+ 'Transaction reversal enforced up to' => '',
+ 'Transactions' => 'Ýþlemler',
+ 'Transfer' => '',
+ 'Transfer Inventory' => '',
+ 'Transfer from' => '',
+ 'Transfer to' => '',
+ 'Translation' => '',
+ 'Translation deleted!' => '',
+ 'Translation not on file!' => '',
+ 'Translations' => '',
+ 'Translations saved!' => '',
+ 'Trial Balance' => 'Proforma Bilanço',
+ 'Tuesday' => '',
+ 'Type of Business' => '',
+ 'Unit' => 'Birim',
+ 'Unit of measure' => 'Ölçme Birimi',
+ 'Unlock System' => 'Unlock System',
+ 'Update' => '',
+ 'Update Dataset' => 'Update Dataset',
+ 'Updated' => '',
+ 'Upgrading to Version' => '',
+ 'Use Templates' => 'Þablon Kullan',
+ 'User' => 'Kullanýcý',
+ 'User deleted!' => 'User deleted!',
+ 'User saved!' => 'User saved!',
+ 'Valid until' => '',
+ 'Vendor' => 'Satýcý',
+ 'Vendor History' => '',
+ 'Vendor Invoice' => '',
+ 'Vendor Invoice ' => '',
+ 'Vendor Invoice.' => '',
+ 'Vendor Invoice/AP Transaction Number' => '',
+ 'Vendor Invoices' => '',
+ 'Vendor Number' => '',
+ 'Vendor deleted!' => '',
+ 'Vendor missing!' => '',
+ 'Vendor not on file!' => '',
+ 'Vendor saved!' => '',
+ 'Vendors' => '',
+ 'Version' => 'Versiyon',
+ 'Warehouse' => '',
+ 'Warehouse deleted!' => '',
+ 'Warehouse saved!' => '',
+ 'Warehouses' => '',
+ 'Warning!' => '',
+ 'Wednesday' => '',
+ 'Week' => '',
+ 'Week(s)' => '',
+ 'Weeks' => '',
+ 'Weight' => 'Aðýrlýk',
+ 'Weight Unit' => 'Aðýrlýk Birimi',
+ 'What type of item is this?' => 'Bu ne çeþit bir kalemdir?',
+ 'Work Order' => '',
+ 'Work Orders' => '',
+ 'Work Phone' => '',
+ 'Year' => '',
+ 'Year(s)' => '',
+ 'Yearend' => '',
+ 'Yearend date missing!' => '',
+ 'Yearend posted!' => '',
+ 'Yearend posting failed!' => '',
+ 'Years' => '',
+ 'Yes' => 'Evet',
+ 'You are logged out' => '',
+ 'You are posting an existing transaction!' => '',
+ 'You are printing and posting an existing transaction!' => '',
+ 'You are printing and saving an existing order' => '',
+ 'You are printing and saving an existing quotation' => '',
+ 'You are printing and saving an existing transaction!' => '',
+ 'You are saving an existing order' => '',
+ 'You are saving an existing quotation' => '',
+ 'You are saving an existing transaction!' => '',
+ 'You did not enter a name!' => 'Ýsim girmediniz!',
+ 'You must enter a host and port for local and remote connections!' => 'Yerel ve uzak baðlantýlar için bir host ve port girmek zorundasýnýz!',
+ 'Zip/Postal Code' => '',
+ 'account cannot be set to any other type of account' => '',
+ 'as at' => '',
+ 'days' => 'gün. ',
+ 'does not exist' => 'mevcut deðil',
+ 'done' => '',
+ 'ea' => 'ad',
+ 'failed' => '',
+ 'for' => '',
+ 'for Period' => 'Dönem:',
+ 'is already a member!' => 'üyedir!',
+ 'localhost' => 'Yerelhost',
+ 'locked!' => '',
+ 'partsgroup' => '',
+ 'posted!' => '',
+ 'sent' => '',
+ 'successfully created!' => 'baþarýyla oluþturuldu!',
+ 'successfully deleted!' => 'baþarýyla silindi!',
+ 'time(s)' => '',
+ 'unexpected error!' => '',
+ 'website' => 'Websitesi',
+};
+
+1;
diff --git a/locale/tr/am b/locale/tr/am
new file mode 100755
index 00000000..2e9f003b
--- /dev/null
+++ b/locale/tr/am
@@ -0,0 +1,176 @@
+$self{charset} = 'ISO-8859-9';
+
+$self{texts} = {
+ 'AP' => 'Borçlar',
+ 'AR' => 'Alacaklar',
+ 'About' => 'Program bilgileri',
+ 'Account' => 'Hesap',
+ 'Account Number' => 'Hesap Numarasý',
+ 'Account Number missing!' => 'Hesap Numarasý yok!',
+ 'Account Type' => 'Hesap Türü',
+ 'Account Type missing!' => 'Hesap Türü yok!',
+ 'Accounting Menu' => 'Muhasebe Menüsü',
+ 'Add Account' => 'Hesap Ekle',
+ 'Address' => 'Adres',
+ 'Amount' => 'Miktar',
+ 'Asset' => 'Aktif',
+ 'Business Number' => 'ÞirketNo',
+ 'COGS' => 'SMM',
+ 'Cannot delete default account!' => 'Öntanýmlý hesap silinmez!',
+ 'Chart of Accounts' => 'Hesap Planý',
+ 'Company' => 'Þirket',
+ 'Confirm!' => 'Onayla!',
+ 'Continue' => 'Devam',
+ 'Credit' => 'Alacak',
+ 'Database Host' => 'Veritabaný Hostu',
+ 'Dataset' => 'Veriseti',
+ 'Date Format' => 'Tarih Formatý',
+ 'Debit' => 'Borç',
+ 'Delete' => 'Sil',
+ 'Delete Account' => 'Hesabý Sil',
+ 'Description' => 'Açýklama',
+ 'Discount' => 'Ýndirim',
+ 'E-mail' => 'Posta',
+ 'E-mail address missing!' => 'Posta adresi yok!',
+ 'Edit Account' => 'Hesabý Düzenle',
+ 'Edit Preferences for' => 'Tercihleri Düzenle: ',
+ 'Edit Template' => 'Þablonu Düzenle',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Yerel ve yabancý para birimleri için 3 harfli tanýmlama giriniz yi týklayýnýz (USD:TRL:EUR)',
+ 'Equity' => 'Sermaye',
+ 'Expense' => 'Gider',
+ 'Expense/Asset' => 'Gider/Varlýklar',
+ 'Fax' => 'Faks',
+ 'Foreign Exchange Gain' => 'Kur Kazancý',
+ 'Foreign Exchange Loss' => 'Kur Kaybý',
+ 'Heading' => 'Baþlýk',
+ 'Include in drop-down menus' => 'Seçmeli Menüye dahil et',
+ 'Inventory' => 'Stok',
+ 'Invoice' => 'Fatura',
+ 'Is this a summary account to record' => 'Bu kaydedilecek hesap özeti mi',
+ 'Language' => 'Dil',
+ 'Last Numbers & Default Accounts' => 'Son Numaralar ve Öntanýmlý Hesaplar',
+ 'Liability' => 'Pasif',
+ 'Licensed to' => 'Lisans Sahibi:',
+ 'Link' => 'Baðla',
+ 'Name' => 'Ýsim',
+ 'No' => 'Hayýr',
+ 'No email address for' => 'E-posta adresi yok: ',
+ 'Number' => 'Numara',
+ 'Number Format' => 'Rakam Formatý',
+ 'Packing List' => 'Paketleme Listesi',
+ 'Password' => 'Þifre',
+ 'Payables' => 'Borçlar',
+ 'Payment' => 'Ödeme',
+ 'Phone' => 'Telefon',
+ 'Preferences saved!' => 'Tercihler kaydedildi!',
+ 'Printer' => 'Yazýcý',
+ 'Purchase Order' => 'Satýnalma Sipariþi',
+ 'Purchase Orders' => 'Satýnalma Sipariþleri',
+ 'Rate' => 'Oran',
+ 'Receivables' => 'Alacaklar',
+ 'Retained Earnings' => 'Net Dönem Karý (Zararý)',
+ 'Sales Order' => 'Satýþ Sipariþi',
+ 'Sales Orders' => 'Satýþ Sipariþleri',
+ 'Save' => 'Kaydet',
+ 'Signature' => 'Ýmza',
+ 'Stylesheet' => 'Düzen Sayfasý',
+ 'Tax' => 'Vergi',
+ 'User' => 'Kullanýcý',
+ 'Version' => 'Versiyon',
+ 'Weight Unit' => 'Aðýrlýk Birimi',
+ 'Yes' => 'Evet',
+ 'localhost' => 'Yerelhost',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'hesap_ekle' => 'add_account',
+ 'devam' => 'continue',
+ 'sil' => 'delete',
+ 'hesabý_düzenle' => 'edit_account',
+ 'kaydet' => 'save',
+};
+
+1;
+
diff --git a/locale/tr/ap b/locale/tr/ap
new file mode 100755
index 00000000..5d05ed72
--- /dev/null
+++ b/locale/tr/ap
@@ -0,0 +1,130 @@
+$self{charset} = 'ISO-8859-9';
+
+$self{texts} = {
+ 'AP Transactions' => 'Borç Ýþlemleri',
+ 'AR Transactions' => 'Alacak Ýþlemleri',
+ 'Account' => 'Hesap',
+ 'Accounting Menu' => 'Muhasebe Menüsü',
+ 'Address' => 'Adres',
+ 'Amount' => 'Miktar',
+ 'Apr' => 'Nis',
+ 'April' => 'Nisan',
+ 'Are you sure you want to delete Transaction' => 'Ýþlemi silmek istediðinizden emin misiniz? Fiþ: ',
+ 'Aug' => 'Aðu',
+ 'August' => 'Aðustos',
+ 'Confirm!' => 'Onayla!',
+ 'Continue' => 'Devam',
+ 'Credit' => 'Alacak',
+ 'Credit Limit' => 'Kredi Limiti',
+ 'Currency' => 'Para Birimi',
+ 'Customer' => 'Alýcý',
+ 'Date' => 'Tarih',
+ 'Date Paid' => 'Ödendiði Tarih',
+ 'Debit' => 'Borç',
+ 'Dec' => 'Ara',
+ 'December' => 'Aralýk',
+ 'Delete' => 'Sil',
+ 'Description' => 'Açýklama',
+ 'Due Date' => 'Vade Tarihi',
+ 'Due Date missing!' => 'Vade Tarihi yok!',
+ 'E-mail' => 'Posta',
+ 'Exch' => 'D.Kuru',
+ 'Exchange Rate' => 'Döviz Kuru',
+ 'Feb' => 'Þub',
+ 'February' => 'Þubat',
+ 'From' => 'Baþlangýç',
+ 'Include in Report' => 'Raporla',
+ 'Invoice' => 'Fatura',
+ 'Invoice Date' => 'Fatura Tarihi',
+ 'Invoice Date missing!' => 'Fatura Tarihi yok!',
+ 'Invoice Number' => 'Fatura No',
+ 'Jan' => 'Oca',
+ 'January' => 'Ocak',
+ 'Jul' => 'Tem',
+ 'July' => 'Temmuz',
+ 'Jun' => 'Haz',
+ 'June' => 'Haziran',
+ 'Mar' => 'Mar',
+ 'March' => 'Mart',
+ 'May' => 'May',
+ 'May ' => 'Mayýs',
+ 'Notes' => 'Notlar:',
+ 'Nov' => 'Kas',
+ 'November' => 'Kasým',
+ 'Number' => 'Numara',
+ 'Oct' => 'Eki',
+ 'October' => 'Ekim',
+ 'Order' => 'Sipariþ',
+ 'Order Number' => 'Sipariþ No',
+ 'Paid' => 'Ödendi',
+ 'Payment date missing!' => 'Ödeme Tarihi yok',
+ 'Payments' => 'Ödemeler',
+ 'Sep' => 'Eyl',
+ 'September' => 'Eylül',
+ 'Source' => 'Kaynak',
+ 'Subtotal' => 'Aratoplam',
+ 'Tax' => 'Vergi',
+ 'Tax Included' => 'Vergi Dahil',
+ 'To' => 'Bitiþ',
+ 'Total' => 'Toplam',
+ 'Vendor' => 'Satýcý',
+ 'Yes' => 'Evet',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'devam' => 'continue',
+ 'sil' => 'delete',
+ 'evet' => 'yes',
+};
+
+1;
+
diff --git a/locale/tr/ar b/locale/tr/ar
new file mode 100755
index 00000000..5d05ed72
--- /dev/null
+++ b/locale/tr/ar
@@ -0,0 +1,130 @@
+$self{charset} = 'ISO-8859-9';
+
+$self{texts} = {
+ 'AP Transactions' => 'Borç Ýþlemleri',
+ 'AR Transactions' => 'Alacak Ýþlemleri',
+ 'Account' => 'Hesap',
+ 'Accounting Menu' => 'Muhasebe Menüsü',
+ 'Address' => 'Adres',
+ 'Amount' => 'Miktar',
+ 'Apr' => 'Nis',
+ 'April' => 'Nisan',
+ 'Are you sure you want to delete Transaction' => 'Ýþlemi silmek istediðinizden emin misiniz? Fiþ: ',
+ 'Aug' => 'Aðu',
+ 'August' => 'Aðustos',
+ 'Confirm!' => 'Onayla!',
+ 'Continue' => 'Devam',
+ 'Credit' => 'Alacak',
+ 'Credit Limit' => 'Kredi Limiti',
+ 'Currency' => 'Para Birimi',
+ 'Customer' => 'Alýcý',
+ 'Date' => 'Tarih',
+ 'Date Paid' => 'Ödendiði Tarih',
+ 'Debit' => 'Borç',
+ 'Dec' => 'Ara',
+ 'December' => 'Aralýk',
+ 'Delete' => 'Sil',
+ 'Description' => 'Açýklama',
+ 'Due Date' => 'Vade Tarihi',
+ 'Due Date missing!' => 'Vade Tarihi yok!',
+ 'E-mail' => 'Posta',
+ 'Exch' => 'D.Kuru',
+ 'Exchange Rate' => 'Döviz Kuru',
+ 'Feb' => 'Þub',
+ 'February' => 'Þubat',
+ 'From' => 'Baþlangýç',
+ 'Include in Report' => 'Raporla',
+ 'Invoice' => 'Fatura',
+ 'Invoice Date' => 'Fatura Tarihi',
+ 'Invoice Date missing!' => 'Fatura Tarihi yok!',
+ 'Invoice Number' => 'Fatura No',
+ 'Jan' => 'Oca',
+ 'January' => 'Ocak',
+ 'Jul' => 'Tem',
+ 'July' => 'Temmuz',
+ 'Jun' => 'Haz',
+ 'June' => 'Haziran',
+ 'Mar' => 'Mar',
+ 'March' => 'Mart',
+ 'May' => 'May',
+ 'May ' => 'Mayýs',
+ 'Notes' => 'Notlar:',
+ 'Nov' => 'Kas',
+ 'November' => 'Kasým',
+ 'Number' => 'Numara',
+ 'Oct' => 'Eki',
+ 'October' => 'Ekim',
+ 'Order' => 'Sipariþ',
+ 'Order Number' => 'Sipariþ No',
+ 'Paid' => 'Ödendi',
+ 'Payment date missing!' => 'Ödeme Tarihi yok',
+ 'Payments' => 'Ödemeler',
+ 'Sep' => 'Eyl',
+ 'September' => 'Eylül',
+ 'Source' => 'Kaynak',
+ 'Subtotal' => 'Aratoplam',
+ 'Tax' => 'Vergi',
+ 'Tax Included' => 'Vergi Dahil',
+ 'To' => 'Bitiþ',
+ 'Total' => 'Toplam',
+ 'Vendor' => 'Satýcý',
+ 'Yes' => 'Evet',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'devam' => 'continue',
+ 'sil' => 'delete',
+ 'evet' => 'yes',
+};
+
+1;
+
diff --git a/locale/tr/arap b/locale/tr/arap
new file mode 100755
index 00000000..1cb549cd
--- /dev/null
+++ b/locale/tr/arap
@@ -0,0 +1,39 @@
+$self{charset} = 'ISO-8859-9';
+
+$self{texts} = {
+ 'Address' => 'Adres',
+ 'Continue' => 'Devam',
+ 'Date' => 'Tarih',
+ 'Description' => 'Açýklama',
+ 'E-mail' => 'Posta',
+ 'Number' => 'Numara',
+ 'To' => 'Bitiþ',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'devam' => 'continue',
+};
+
+1;
+
diff --git a/locale/tr/arapprn b/locale/tr/arapprn
new file mode 100755
index 00000000..5fdcf683
--- /dev/null
+++ b/locale/tr/arapprn
@@ -0,0 +1,26 @@
+$self{charset} = 'ISO-8859-9';
+
+$self{texts} = {
+ 'Account' => 'Hesap',
+ 'Amount' => 'Miktar',
+ 'Continue' => 'Devam',
+ 'Date' => 'Tarih',
+ 'Source' => 'Kaynak',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'devam' => 'continue',
+};
+
+1;
+
diff --git a/locale/tr/bp b/locale/tr/bp
new file mode 100755
index 00000000..def42b0d
--- /dev/null
+++ b/locale/tr/bp
@@ -0,0 +1,40 @@
+$self{charset} = 'ISO-8859-9';
+
+$self{texts} = {
+ 'Account' => 'Hesap',
+ 'Accounting Menu' => 'Muhasebe Menüsü',
+ 'Confirm!' => 'Onayla!',
+ 'Continue' => 'Devam',
+ 'Customer' => 'Alýcý',
+ 'Date' => 'Tarih',
+ 'From' => 'Baþlangýç',
+ 'Invoice' => 'Fatura',
+ 'Invoice Number' => 'Fatura No',
+ 'Order' => 'Sipariþ',
+ 'Order Number' => 'Sipariþ No',
+ 'Purchase Orders' => 'Satýnalma Sipariþleri',
+ 'Sales Orders' => 'Satýþ Sipariþleri',
+ 'To' => 'Bitiþ',
+ 'Vendor' => 'Satýcý',
+ 'Yes' => 'Evet',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'devam' => 'continue',
+ 'evet' => 'yes',
+};
+
+1;
+
diff --git a/locale/tr/ca b/locale/tr/ca
new file mode 100755
index 00000000..3b077bf6
--- /dev/null
+++ b/locale/tr/ca
@@ -0,0 +1,50 @@
+$self{charset} = 'ISO-8859-9';
+
+$self{texts} = {
+ 'Account' => 'Hesap',
+ 'Apr' => 'Nis',
+ 'April' => 'Nisan',
+ 'Aug' => 'Aðu',
+ 'August' => 'Aðustos',
+ 'Chart of Accounts' => 'Hesap Planý',
+ 'Credit' => 'Alacak',
+ 'Date' => 'Tarih',
+ 'Debit' => 'Borç',
+ 'Dec' => 'Ara',
+ 'December' => 'Aralýk',
+ 'Description' => 'Açýklama',
+ 'Feb' => 'Þub',
+ 'February' => 'Þubat',
+ 'From' => 'Baþlangýç',
+ 'Include in Report' => 'Raporla',
+ 'Jan' => 'Oca',
+ 'January' => 'Ocak',
+ 'Jul' => 'Tem',
+ 'July' => 'Temmuz',
+ 'Jun' => 'Haz',
+ 'June' => 'Haziran',
+ 'List Transactions' => 'Ýþlemleri Listele',
+ 'Mar' => 'Mar',
+ 'March' => 'Mart',
+ 'May' => 'May',
+ 'May ' => 'Mayýs',
+ 'Nov' => 'Kas',
+ 'November' => 'Kasým',
+ 'Oct' => 'Eki',
+ 'October' => 'Ekim',
+ 'Sep' => 'Eyl',
+ 'September' => 'Eylül',
+ 'Subtotal' => 'Aratoplam',
+ 'To' => 'Bitiþ',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'Ýþlemleri_listele' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/tr/cp b/locale/tr/cp
new file mode 100755
index 00000000..5e2b5aa6
--- /dev/null
+++ b/locale/tr/cp
@@ -0,0 +1,84 @@
+$self{charset} = 'ISO-8859-9';
+
+$self{texts} = {
+ 'AP' => 'Borçlar',
+ 'AR' => 'Alacaklar',
+ 'Account' => 'Hesap',
+ 'Accounting Menu' => 'Muhasebe Menüsü',
+ 'Address' => 'Adres',
+ 'All' => 'Hepsi',
+ 'Amount' => 'Miktar',
+ 'Continue' => 'Devam',
+ 'Currency' => 'Para Birimi',
+ 'Customer' => 'Alýcý',
+ 'Date' => 'Tarih',
+ 'Description' => 'Açýklama',
+ 'Due Date' => 'Vade Tarihi',
+ 'E-mail' => 'Posta',
+ 'Exchange Rate' => 'Döviz Kuru',
+ 'From' => 'Baþlangýç',
+ 'Invoice' => 'Fatura',
+ 'Language' => 'Dil',
+ 'Number' => 'Numara',
+ 'Payment' => 'Ödeme',
+ 'Payments' => 'Ödemeler',
+ 'Source' => 'Kaynak',
+ 'To' => 'Bitiþ',
+ 'Vendor' => 'Satýcý',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'devam' => 'continue',
+};
+
+1;
+
diff --git a/locale/tr/ct b/locale/tr/ct
new file mode 100755
index 00000000..e90864ce
--- /dev/null
+++ b/locale/tr/ct
@@ -0,0 +1,103 @@
+$self{charset} = 'ISO-8859-9';
+
+$self{texts} = {
+ 'AP Transactions' => 'Borç Ýþlemleri',
+ 'AR Transactions' => 'Alacak Ýþlemleri',
+ 'Accounting Menu' => 'Muhasebe Menüsü',
+ 'Add Customer' => 'Alýcý Ekle',
+ 'Add Vendor' => 'Satýcý Ekle',
+ 'Address' => 'Adres',
+ 'All' => 'Hepsi',
+ 'Amount' => 'Miktar',
+ 'Contact' => 'Kontak',
+ 'Continue' => 'Devam',
+ 'Credit Limit' => 'Kredi Limiti',
+ 'Currency' => 'Para Birimi',
+ 'Delete' => 'Sil',
+ 'Description' => 'Açýklama',
+ 'Discount' => 'Ýndirim',
+ 'E-mail' => 'Posta',
+ 'Fax' => 'Faks',
+ 'From' => 'Baþlangýç',
+ 'Include in Report' => 'Raporla',
+ 'Invoice' => 'Fatura',
+ 'Item not on file!' => 'Bu kalem dosyada yok!',
+ 'Language' => 'Dil',
+ 'Name' => 'Ýsim',
+ 'Notes' => 'Notlar:',
+ 'Number' => 'Numara',
+ 'Order' => 'Sipariþ',
+ 'Phone' => 'Telefon',
+ 'Purchase Order' => 'Satýnalma Sipariþi',
+ 'Purchase Orders' => 'Satýnalma Sipariþleri',
+ 'Qty' => 'Adet',
+ 'Sales Order' => 'Satýþ Sipariþi',
+ 'Sales Orders' => 'Satýþ Sipariþleri',
+ 'Save' => 'Kaydet',
+ 'Sell Price' => 'Satýþ Fiyatý',
+ 'Subtotal' => 'Aratoplam',
+ 'Tax' => 'Vergi',
+ 'Tax Included' => 'Vergi Dahil',
+ 'Taxable' => 'Vergiye tabi',
+ 'Terms' => 'Þartlar',
+ 'To' => 'Bitiþ',
+ 'Total' => 'Toplam',
+ 'Unit' => 'Birim',
+ 'days' => 'gün. ',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'alýcý_ekle' => 'add_customer',
+ 'satýcý_ekle' => 'add_vendor',
+ 'devam' => 'continue',
+ 'sil' => 'delete',
+ 'satýnalma_sipariþi' => 'purchase_order',
+ 'satýþ_sipariþi' => 'sales_order',
+ 'kaydet' => 'save',
+};
+
+1;
+
diff --git a/locale/tr/gl b/locale/tr/gl
new file mode 100755
index 00000000..e108c52c
--- /dev/null
+++ b/locale/tr/gl
@@ -0,0 +1,108 @@
+$self{charset} = 'ISO-8859-9';
+
+$self{texts} = {
+ 'Account' => 'Hesap',
+ 'Accounting Menu' => 'Muhasebe Menüsü',
+ 'Add General Ledger Transaction' => 'Defteri Kebire Ýþlem Ekle',
+ 'Address' => 'Adres',
+ 'All' => 'Hepsi',
+ 'Amount' => 'Miktar',
+ 'Apr' => 'Nis',
+ 'April' => 'Nisan',
+ 'Are you sure you want to delete Transaction' => 'Ýþlemi silmek istediðinizden emin misiniz? Fiþ: ',
+ 'Asset' => 'Aktif',
+ 'Aug' => 'Aðu',
+ 'August' => 'Aðustos',
+ 'Confirm!' => 'Onayla!',
+ 'Continue' => 'Devam',
+ 'Credit' => 'Alacak',
+ 'Date' => 'Tarih',
+ 'Debit' => 'Borç',
+ 'Dec' => 'Ara',
+ 'December' => 'Aralýk',
+ 'Delete' => 'Sil',
+ 'Description' => 'Açýklama',
+ 'E-mail' => 'Posta',
+ 'Edit General Ledger Transaction' => 'Defteri Kebir Ýþlemini Düzenle',
+ 'Equity' => 'Sermaye',
+ 'Expense' => 'Gider',
+ 'Feb' => 'Þub',
+ 'February' => 'Þubat',
+ 'From' => 'Baþlangýç',
+ 'General Ledger' => 'Defteri Kebir',
+ 'Include in Report' => 'Raporla',
+ 'Jan' => 'Oca',
+ 'January' => 'Ocak',
+ 'Jul' => 'Tem',
+ 'July' => 'Temmuz',
+ 'Jun' => 'Haz',
+ 'June' => 'Haziran',
+ 'Liability' => 'Pasif',
+ 'Mar' => 'Mar',
+ 'March' => 'Mart',
+ 'May' => 'May',
+ 'May ' => 'Mayýs',
+ 'Notes' => 'Notlar:',
+ 'Nov' => 'Kas',
+ 'November' => 'Kasým',
+ 'Number' => 'Numara',
+ 'Oct' => 'Eki',
+ 'October' => 'Ekim',
+ 'Reports' => 'Raporlar',
+ 'Sep' => 'Eyl',
+ 'September' => 'Eylül',
+ 'Source' => 'Kaynak',
+ 'Subtotal' => 'Aratoplam',
+ 'To' => 'Bitiþ',
+ 'Transaction Date missing!' => 'Ýþlem Tarihi yok!',
+ 'Yes' => 'Evet',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'devam' => 'continue',
+ 'sil' => 'delete',
+ 'evet' => 'yes',
+};
+
+1;
+
diff --git a/locale/tr/hr b/locale/tr/hr
new file mode 100755
index 00000000..ae988b97
--- /dev/null
+++ b/locale/tr/hr
@@ -0,0 +1,65 @@
+$self{charset} = 'ISO-8859-9';
+
+$self{texts} = {
+ 'AP' => 'Borçlar',
+ 'Accounting Menu' => 'Muhasebe Menüsü',
+ 'Address' => 'Adres',
+ 'Administrator' => 'Administrator',
+ 'All' => 'Hepsi',
+ 'Amount' => 'Miktar',
+ 'Continue' => 'Devam',
+ 'Delete' => 'Sil',
+ 'Description' => 'Açýklama',
+ 'E-mail' => 'Posta',
+ 'Expense' => 'Gider',
+ 'From' => 'Baþlangýç',
+ 'Include in Report' => 'Raporla',
+ 'Login' => 'Giriþ',
+ 'Name' => 'Ýsim',
+ 'Notes' => 'Notlar:',
+ 'Number' => 'Numara',
+ 'Rate' => 'Oran',
+ 'Sales' => 'Satýþlar',
+ 'Save' => 'Kaydet',
+ 'To' => 'Bitiþ',
+ 'User' => 'Kullanýcý',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'devam' => 'continue',
+ 'sil' => 'delete',
+ 'kaydet' => 'save',
+};
+
+1;
+
diff --git a/locale/tr/ic b/locale/tr/ic
new file mode 100755
index 00000000..a629d907
--- /dev/null
+++ b/locale/tr/ic
@@ -0,0 +1,175 @@
+$self{charset} = 'ISO-8859-9';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Muhasebe Menüsü',
+ 'Add' => 'Ekle',
+ 'Add Assembly' => 'Grup Ekle',
+ 'Add Part' => 'Parça Ekle',
+ 'Add Purchase Order' => 'Satýnalma Sip. Ekle',
+ 'Add Sales Order' => 'Satýþ Sipariþi Ekle',
+ 'Add Service' => 'Hizmet Ekle',
+ 'Address' => 'Adres',
+ 'Apr' => 'Nis',
+ 'April' => 'Nisan',
+ 'Assemblies' => 'Gruplar',
+ 'Aug' => 'Aðu',
+ 'August' => 'Aðustos',
+ 'COGS' => 'SMM',
+ 'Contact' => 'Kontak',
+ 'Continue' => 'Devam',
+ 'Currency' => 'Para Birimi',
+ 'Customer' => 'Alýcý',
+ 'Date' => 'Tarih',
+ 'Dec' => 'Ara',
+ 'December' => 'Aralýk',
+ 'Delete' => 'Sil',
+ 'Description' => 'Açýklama',
+ 'E-mail' => 'Posta',
+ 'E-mail address missing!' => 'Posta adresi yok!',
+ 'Edit Assembly' => 'Grubu Düzenle',
+ 'Edit Part' => 'Parçayý Düzenle',
+ 'Edit Service' => 'Hizmeti Düzenle',
+ 'Expense' => 'Gider',
+ 'Fax' => 'Faks',
+ 'Feb' => 'Þub',
+ 'February' => 'Þubat',
+ 'From' => 'Baþlangýç',
+ 'Include in Report' => 'Raporla',
+ 'Individual Items' => 'Farklý Kalemler',
+ 'Inventory' => 'Stok',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'Bu grubu çýkarmadan önce stok miktarý sýfýr olmalýdýr',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'Bu Parçayý çýkarmadan önce stok miktarý sýfýr olmalýdýr',
+ 'Invoice' => 'Fatura',
+ 'Invoice Date missing!' => 'Fatura Tarihi yok!',
+ 'Invoice Number' => 'Fatura No',
+ 'Invoice Number missing!' => 'Fatura Numarasý yok!',
+ 'Item not on file!' => 'Bu kalem dosyada yok!',
+ 'Jan' => 'Oca',
+ 'January' => 'Ocak',
+ 'Jul' => 'Tem',
+ 'July' => 'Temmuz',
+ 'Jun' => 'Haz',
+ 'June' => 'Haziran',
+ 'Link Accounts' => 'Baðlý Hesaplar',
+ 'List Price' => 'Liste Fiyatý',
+ 'Make' => 'Marka',
+ 'Mar' => 'Mar',
+ 'March' => 'Mart',
+ 'May' => 'May',
+ 'May ' => 'Mayýs',
+ 'Model' => 'Model',
+ 'Name' => 'Ýsim',
+ 'Notes' => 'Notlar:',
+ 'Nov' => 'Kas',
+ 'November' => 'Kasým',
+ 'Number' => 'Numara',
+ 'Number missing in Row' => 'Sýrada Numara yok!',
+ 'Obsolete' => 'Eski',
+ 'Oct' => 'Eki',
+ 'October' => 'Ekim',
+ 'On Hand' => 'Stok:',
+ 'Order' => 'Sipariþ',
+ 'Order Date missing!' => 'Sipariþ Tarihi yok!',
+ 'Order Number' => 'Sipariþ No',
+ 'Order Number missing!' => 'Sipariþ Numarasý yok!',
+ 'Packing List' => 'Paketleme Listesi',
+ 'Part' => 'Parça',
+ 'Parts' => 'Parçalar',
+ 'Phone' => 'Telefon',
+ 'Price' => 'Fiyat',
+ 'Purchase Order' => 'Satýnalma Sipariþi',
+ 'Purchase Orders' => 'Satýnalma Sipariþleri',
+ 'Qty' => 'Adet',
+ 'Required by' => 'Talep tarihi:',
+ 'Sales Order' => 'Satýþ Sipariþi',
+ 'Sales Orders' => 'Satýþ Sipariþleri',
+ 'Save' => 'Kaydet',
+ 'Sell Price' => 'Satýþ Fiyatý',
+ 'Sep' => 'Eyl',
+ 'September' => 'Eylül',
+ 'Service' => 'servis',
+ 'Services' => 'Servisler',
+ 'Short' => 'Kýsa',
+ 'Stock Assembly' => 'Grubu Stokla',
+ 'Subtotal' => 'Aratoplam',
+ 'Tax' => 'Vergi',
+ 'To' => 'Bitiþ',
+ 'Unit' => 'Birim',
+ 'Vendor' => 'Satýcý',
+ 'Weight' => 'Aðýrlýk',
+ 'What type of item is this?' => 'Bu ne çeþit bir kalemdir?',
+ 'days' => 'gün. ',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'grup_ekle' => 'add_assembly',
+ 'parça_ekle' => 'add_part',
+ 'hizmet_ekle' => 'add_service',
+ 'devam' => 'continue',
+ 'sil' => 'delete',
+ 'grubu_düzenle' => 'edit_assembly',
+ 'parçayý_düzenle' => 'edit_part',
+ 'hizmeti_düzenle' => 'edit_service',
+ 'kaydet' => 'save',
+};
+
+1;
+
diff --git a/locale/tr/io b/locale/tr/io
new file mode 100755
index 00000000..44634a48
--- /dev/null
+++ b/locale/tr/io
@@ -0,0 +1,88 @@
+$self{charset} = 'ISO-8859-9';
+
+$self{texts} = {
+ 'Add Purchase Order' => 'Satýnalma Sip. Ekle',
+ 'Add Sales Order' => 'Satýþ Sipariþi Ekle',
+ 'Address' => 'Adres',
+ 'Apr' => 'Nis',
+ 'April' => 'Nisan',
+ 'Aug' => 'Aðu',
+ 'August' => 'Aðustos',
+ 'Contact' => 'Kontak',
+ 'Continue' => 'Devam',
+ 'Date' => 'Tarih',
+ 'Dec' => 'Ara',
+ 'December' => 'Aralýk',
+ 'Description' => 'Açýklama',
+ 'E-mail' => 'Posta',
+ 'E-mail address missing!' => 'Posta adresi yok!',
+ 'Fax' => 'Faks',
+ 'Feb' => 'Þub',
+ 'February' => 'Þubat',
+ 'Invoice' => 'Fatura',
+ 'Invoice Date missing!' => 'Fatura Tarihi yok!',
+ 'Invoice Number missing!' => 'Fatura Numarasý yok!',
+ 'Item not on file!' => 'Bu kalem dosyada yok!',
+ 'Jan' => 'Oca',
+ 'January' => 'Ocak',
+ 'Jul' => 'Tem',
+ 'July' => 'Temmuz',
+ 'Jun' => 'Haz',
+ 'June' => 'Haziran',
+ 'Mar' => 'Mar',
+ 'March' => 'Mart',
+ 'May' => 'May',
+ 'May ' => 'Mayýs',
+ 'Nov' => 'Kas',
+ 'November' => 'Kasým',
+ 'Number' => 'Numara',
+ 'Number missing in Row' => 'Sýrada Numara yok!',
+ 'Oct' => 'Eki',
+ 'October' => 'Ekim',
+ 'Order Date missing!' => 'Sipariþ Tarihi yok!',
+ 'Order Number missing!' => 'Sipariþ Numarasý yok!',
+ 'Packing List' => 'Paketleme Listesi',
+ 'Part' => 'Parça',
+ 'Phone' => 'Telefon',
+ 'Price' => 'Fiyat',
+ 'Purchase Order' => 'Satýnalma Sipariþi',
+ 'Qty' => 'Adet',
+ 'Required by' => 'Talep tarihi:',
+ 'Sales Order' => 'Satýþ Sipariþi',
+ 'Sep' => 'Eyl',
+ 'September' => 'Eylül',
+ 'Service' => 'servis',
+ 'Subtotal' => 'Aratoplam',
+ 'To' => 'Bitiþ',
+ 'Unit' => 'Birim',
+ 'What type of item is this?' => 'Bu ne çeþit bir kalemdir?',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'devam' => 'continue',
+};
+
+1;
+
diff --git a/locale/tr/ir b/locale/tr/ir
new file mode 100755
index 00000000..658aa4f4
--- /dev/null
+++ b/locale/tr/ir
@@ -0,0 +1,152 @@
+$self{charset} = 'ISO-8859-9';
+
+$self{texts} = {
+ 'Account' => 'Hesap',
+ 'Accounting Menu' => 'Muhasebe Menüsü',
+ 'Add Purchase Order' => 'Satýnalma Sip. Ekle',
+ 'Add Sales Order' => 'Satýþ Sipariþi Ekle',
+ 'Address' => 'Adres',
+ 'Amount' => 'Miktar',
+ 'Apr' => 'Nis',
+ 'April' => 'Nisan',
+ 'Are you sure you want to delete Invoice Number' => 'Fatura Numarasýný silmek istediðinizden emin misiniz? Fiþ: ',
+ 'Aug' => 'Aðu',
+ 'August' => 'Aðustos',
+ 'Confirm!' => 'Onayla!',
+ 'Contact' => 'Kontak',
+ 'Continue' => 'Devam',
+ 'Credit Limit' => 'Kredi Limiti',
+ 'Currency' => 'Para Birimi',
+ 'Date' => 'Tarih',
+ 'Dec' => 'Ara',
+ 'December' => 'Aralýk',
+ 'Delete' => 'Sil',
+ 'Description' => 'Açýklama',
+ 'Due Date' => 'Vade Tarihi',
+ 'E-mail' => 'Posta',
+ 'E-mail address missing!' => 'Posta adresi yok!',
+ 'Exch' => 'D.Kuru',
+ 'Exchange Rate' => 'Döviz Kuru',
+ 'Fax' => 'Faks',
+ 'Feb' => 'Þub',
+ 'February' => 'Þubat',
+ 'Invoice' => 'Fatura',
+ 'Invoice Date' => 'Fatura Tarihi',
+ 'Invoice Date missing!' => 'Fatura Tarihi yok!',
+ 'Invoice Number' => 'Fatura No',
+ 'Invoice Number missing!' => 'Fatura Numarasý yok!',
+ 'Item not on file!' => 'Bu kalem dosyada yok!',
+ 'Jan' => 'Oca',
+ 'January' => 'Ocak',
+ 'Jul' => 'Tem',
+ 'July' => 'Temmuz',
+ 'Jun' => 'Haz',
+ 'June' => 'Haziran',
+ 'Language' => 'Dil',
+ 'Mar' => 'Mar',
+ 'March' => 'Mart',
+ 'May' => 'May',
+ 'May ' => 'Mayýs',
+ 'Notes' => 'Notlar:',
+ 'Nov' => 'Kas',
+ 'November' => 'Kasým',
+ 'Number' => 'Numara',
+ 'Number missing in Row' => 'Sýrada Numara yok!',
+ 'Oct' => 'Eki',
+ 'October' => 'Ekim',
+ 'Order Date missing!' => 'Sipariþ Tarihi yok!',
+ 'Order Number' => 'Sipariþ No',
+ 'Order Number missing!' => 'Sipariþ Numarasý yok!',
+ 'Packing List' => 'Paketleme Listesi',
+ 'Part' => 'Parça',
+ 'Payment date missing!' => 'Ödeme Tarihi yok',
+ 'Payments' => 'Ödemeler',
+ 'Phone' => 'Telefon',
+ 'Price' => 'Fiyat',
+ 'Purchase Order' => 'Satýnalma Sipariþi',
+ 'Qty' => 'Adet',
+ 'Record in' => 'Kaydet',
+ 'Required by' => 'Talep tarihi:',
+ 'Sales Order' => 'Satýþ Sipariþi',
+ 'Sep' => 'Eyl',
+ 'September' => 'Eylül',
+ 'Service' => 'servis',
+ 'Source' => 'Kaynak',
+ 'Subtotal' => 'Aratoplam',
+ 'Tax Included' => 'Vergi Dahil',
+ 'To' => 'Bitiþ',
+ 'Total' => 'Toplam',
+ 'Unit' => 'Birim',
+ 'Vendor' => 'Satýcý',
+ 'What type of item is this?' => 'Bu ne çeþit bir kalemdir?',
+ 'Yes' => 'Evet',
+ 'ea' => 'ad',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'devam' => 'continue',
+ 'sil' => 'delete',
+ 'satýnalma_sipariþi' => 'purchase_order',
+ 'evet' => 'yes',
+};
+
+1;
+
diff --git a/locale/tr/is b/locale/tr/is
new file mode 100755
index 00000000..d343da68
--- /dev/null
+++ b/locale/tr/is
@@ -0,0 +1,153 @@
+$self{charset} = 'ISO-8859-9';
+
+$self{texts} = {
+ 'Account' => 'Hesap',
+ 'Accounting Menu' => 'Muhasebe Menüsü',
+ 'Add Purchase Order' => 'Satýnalma Sip. Ekle',
+ 'Add Sales Order' => 'Satýþ Sipariþi Ekle',
+ 'Address' => 'Adres',
+ 'Amount' => 'Miktar',
+ 'Apr' => 'Nis',
+ 'April' => 'Nisan',
+ 'Are you sure you want to delete Invoice Number' => 'Fatura Numarasýný silmek istediðinizden emin misiniz? Fiþ: ',
+ 'Aug' => 'Aðu',
+ 'August' => 'Aðustos',
+ 'Confirm!' => 'Onayla!',
+ 'Contact' => 'Kontak',
+ 'Continue' => 'Devam',
+ 'Credit Limit' => 'Kredi Limiti',
+ 'Currency' => 'Para Birimi',
+ 'Customer' => 'Alýcý',
+ 'Date' => 'Tarih',
+ 'Dec' => 'Ara',
+ 'December' => 'Aralýk',
+ 'Delete' => 'Sil',
+ 'Description' => 'Açýklama',
+ 'Due Date' => 'Vade Tarihi',
+ 'E-mail' => 'Posta',
+ 'E-mail address missing!' => 'Posta adresi yok!',
+ 'Exch' => 'D.Kuru',
+ 'Exchange Rate' => 'Döviz Kuru',
+ 'Fax' => 'Faks',
+ 'Feb' => 'Þub',
+ 'February' => 'Þubat',
+ 'Invoice' => 'Fatura',
+ 'Invoice Date' => 'Fatura Tarihi',
+ 'Invoice Date missing!' => 'Fatura Tarihi yok!',
+ 'Invoice Number' => 'Fatura No',
+ 'Invoice Number missing!' => 'Fatura Numarasý yok!',
+ 'Item not on file!' => 'Bu kalem dosyada yok!',
+ 'Jan' => 'Oca',
+ 'January' => 'Ocak',
+ 'Jul' => 'Tem',
+ 'July' => 'Temmuz',
+ 'Jun' => 'Haz',
+ 'June' => 'Haziran',
+ 'Mar' => 'Mar',
+ 'March' => 'Mart',
+ 'May' => 'May',
+ 'May ' => 'Mayýs',
+ 'Notes' => 'Notlar:',
+ 'Nov' => 'Kas',
+ 'November' => 'Kasým',
+ 'Number' => 'Numara',
+ 'Number missing in Row' => 'Sýrada Numara yok!',
+ 'Oct' => 'Eki',
+ 'October' => 'Ekim',
+ 'Order Date missing!' => 'Sipariþ Tarihi yok!',
+ 'Order Number' => 'Sipariþ No',
+ 'Order Number missing!' => 'Sipariþ Numarasý yok!',
+ 'Packing List' => 'Paketleme Listesi',
+ 'Part' => 'Parça',
+ 'Payment date missing!' => 'Ödeme Tarihi yok',
+ 'Payments' => 'Ödemeler',
+ 'Phone' => 'Telefon',
+ 'Price' => 'Fiyat',
+ 'Purchase Order' => 'Satýnalma Sipariþi',
+ 'Qty' => 'Adet',
+ 'Record in' => 'Kaydet',
+ 'Required by' => 'Talep tarihi:',
+ 'Sales Order' => 'Satýþ Sipariþi',
+ 'Sep' => 'Eyl',
+ 'September' => 'Eylül',
+ 'Service' => 'servis',
+ 'Source' => 'Kaynak',
+ 'Subtotal' => 'Aratoplam',
+ 'Tax Included' => 'Vergi Dahil',
+ 'To' => 'Bitiþ',
+ 'Total' => 'Toplam',
+ 'Unit' => 'Birim',
+ 'What type of item is this?' => 'Bu ne çeþit bir kalemdir?',
+ 'Yes' => 'Evet',
+ 'ea' => 'ad',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'devam' => 'continue',
+ 'sil' => 'delete',
+ 'posta' => 'e_mail',
+ 'satýþ_sipariþi' => 'sales_order',
+ 'evet' => 'yes',
+};
+
+1;
+
diff --git a/locale/tr/jc b/locale/tr/jc
new file mode 100755
index 00000000..1d212e57
--- /dev/null
+++ b/locale/tr/jc
@@ -0,0 +1,66 @@
+$self{charset} = 'ISO-8859-9';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Muhasebe Menüsü',
+ 'Amount' => 'Miktar',
+ 'Confirm!' => 'Onayla!',
+ 'Continue' => 'Devam',
+ 'Date' => 'Tarih',
+ 'Delete' => 'Sil',
+ 'Description' => 'Açýklama',
+ 'From' => 'Baþlangýç',
+ 'Include in Report' => 'Raporla',
+ 'Notes' => 'Notlar:',
+ 'Qty' => 'Adet',
+ 'Save' => 'Kaydet',
+ 'Subtotal' => 'Aratoplam',
+ 'To' => 'Bitiþ',
+ 'Total' => 'Toplam',
+ 'Yes' => 'Evet',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'devam' => 'continue',
+ 'sil' => 'delete',
+ 'kaydet' => 'save',
+ 'evet' => 'yes',
+};
+
+1;
+
diff --git a/locale/tr/locales.pl b/locale/tr/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/tr/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/tr/login b/locale/tr/login
new file mode 100755
index 00000000..46b163c1
--- /dev/null
+++ b/locale/tr/login
@@ -0,0 +1,22 @@
+$self{charset} = 'ISO-8859-9';
+
+$self{texts} = {
+ 'Company' => 'Þirket',
+ 'Continue' => 'Devam',
+ 'Login' => 'Giriþ',
+ 'Name' => 'Ýsim',
+ 'Password' => 'Þifre',
+ 'Version' => 'Versiyon',
+ 'You did not enter a name!' => 'Ýsim girmediniz!',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ 'giriþ' => 'login',
+};
+
+1;
+
diff --git a/locale/tr/menu b/locale/tr/menu
new file mode 100755
index 00000000..a1edc896
--- /dev/null
+++ b/locale/tr/menu
@@ -0,0 +1,55 @@
+$self{charset} = 'ISO-8859-9';
+
+$self{texts} = {
+ 'AP' => 'Borçlar',
+ 'AP Aging' => 'Gecikmiþ Borçlar',
+ 'AR' => 'Alacaklar',
+ 'AR Aging' => 'Gecikmiþ Alacaklar',
+ 'Accounting Menu' => 'Muhasebe Menüsü',
+ 'Add Account' => 'Hesap Ekle',
+ 'Add Assembly' => 'Grup Ekle',
+ 'Add Customer' => 'Alýcý Ekle',
+ 'Add Part' => 'Parça Ekle',
+ 'Add Service' => 'Hizmet Ekle',
+ 'Add Transaction' => 'Ýþlem Ekle',
+ 'Add Vendor' => 'Satýcý Ekle',
+ 'Assemblies' => 'Gruplar',
+ 'Backup' => 'Yedekleme',
+ 'Balance Sheet' => 'Bilanço',
+ 'Chart of Accounts' => 'Hesap Planý',
+ 'Description' => 'Açýklama',
+ 'General Ledger' => 'Defteri Kebir',
+ 'Income Statement' => 'Gelir Tablosu',
+ 'Invoice' => 'Fatura',
+ 'Language' => 'Dil',
+ 'Order Entry' => 'Sipariþ Giriþi',
+ 'Packing List' => 'Paketleme Listesi',
+ 'Parts' => 'Parçalar',
+ 'Payment' => 'Ödeme',
+ 'Payments' => 'Ödemeler',
+ 'Preferences' => 'Tercihler',
+ 'Purchase Order' => 'Satýnalma Sipariþi',
+ 'Purchase Orders' => 'Satýnalma Sipariþleri',
+ 'Reports' => 'Raporlar',
+ 'Sales Order' => 'Satýþ Sipariþi',
+ 'Sales Orders' => 'Satýþ Sipariþleri',
+ 'Save to File' => 'Dosyaya Kaydet',
+ 'Send by E-Mail' => 'E-postayla gönder',
+ 'Services' => 'Servisler',
+ 'Stock Assembly' => 'Grubu Stokla',
+ 'Stylesheet' => 'Düzen Sayfasý',
+ 'Transactions' => 'Ýþlemler',
+ 'Trial Balance' => 'Proforma Bilanço',
+ 'Version' => 'Versiyon',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/tr/oe b/locale/tr/oe
new file mode 100755
index 00000000..c7aef25e
--- /dev/null
+++ b/locale/tr/oe
@@ -0,0 +1,184 @@
+$self{charset} = 'ISO-8859-9';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Muhasebe Menüsü',
+ 'Add Purchase Order' => 'Satýnalma Sip. Ekle',
+ 'Add Sales Order' => 'Satýþ Sipariþi Ekle',
+ 'Address' => 'Adres',
+ 'Amount' => 'Miktar',
+ 'Apr' => 'Nis',
+ 'April' => 'Nisan',
+ 'Are you sure you want to delete Order Number' => 'Sipariþ Numarasýný silmek istediðinizden emin misiniz? Fiþ: ',
+ 'Aug' => 'Aðu',
+ 'August' => 'Aðustos',
+ 'Confirm!' => 'Onayla!',
+ 'Contact' => 'Kontak',
+ 'Continue' => 'Devam',
+ 'Credit Limit' => 'Kredi Limiti',
+ 'Currency' => 'Para Birimi',
+ 'Customer' => 'Alýcý',
+ 'Date' => 'Tarih',
+ 'Dec' => 'Ara',
+ 'December' => 'Aralýk',
+ 'Delete' => 'Sil',
+ 'Description' => 'Açýklama',
+ 'E-mail' => 'Posta',
+ 'E-mail address missing!' => 'Posta adresi yok!',
+ 'Edit Purchase Order' => 'Alýþ Sipariþini Düzenle',
+ 'Edit Sales Order' => 'Satýþ Sipariþini Düzenle',
+ 'Exchange Rate' => 'Döviz Kuru',
+ 'Fax' => 'Faks',
+ 'Feb' => 'Þub',
+ 'February' => 'Þubat',
+ 'From' => 'Baþlangýç',
+ 'Include in Report' => 'Raporla',
+ 'Invoice' => 'Fatura',
+ 'Invoice Date missing!' => 'Fatura Tarihi yok!',
+ 'Invoice Number missing!' => 'Fatura Numarasý yok!',
+ 'Item not on file!' => 'Bu kalem dosyada yok!',
+ 'Jan' => 'Oca',
+ 'January' => 'Ocak',
+ 'Jul' => 'Tem',
+ 'July' => 'Temmuz',
+ 'Jun' => 'Haz',
+ 'June' => 'Haziran',
+ 'Mar' => 'Mar',
+ 'March' => 'Mart',
+ 'May' => 'May',
+ 'May ' => 'Mayýs',
+ 'Notes' => 'Notlar:',
+ 'Nov' => 'Kas',
+ 'November' => 'Kasým',
+ 'Number' => 'Numara',
+ 'Number missing in Row' => 'Sýrada Numara yok!',
+ 'Oct' => 'Eki',
+ 'October' => 'Ekim',
+ 'Order' => 'Sipariþ',
+ 'Order Date' => 'Sipariþ Tarihi',
+ 'Order Date missing!' => 'Sipariþ Tarihi yok!',
+ 'Order Number' => 'Sipariþ No',
+ 'Order Number missing!' => 'Sipariþ Numarasý yok!',
+ 'Packing List' => 'Paketleme Listesi',
+ 'Part' => 'Parça',
+ 'Phone' => 'Telefon',
+ 'Price' => 'Fiyat',
+ 'Purchase Order' => 'Satýnalma Sipariþi',
+ 'Purchase Orders' => 'Satýnalma Sipariþleri',
+ 'Qty' => 'Adet',
+ 'Required by' => 'Talep tarihi:',
+ 'Sales Order' => 'Satýþ Sipariþi',
+ 'Sales Orders' => 'Satýþ Sipariþleri',
+ 'Save' => 'Kaydet',
+ 'Sep' => 'Eyl',
+ 'September' => 'Eylül',
+ 'Service' => 'servis',
+ 'Subtotal' => 'Aratoplam',
+ 'Tax' => 'Vergi',
+ 'Tax Included' => 'Vergi Dahil',
+ 'Terms' => 'Þartlar',
+ 'To' => 'Bitiþ',
+ 'Total' => 'Toplam',
+ 'Unit' => 'Birim',
+ 'Vendor' => 'Satýcý',
+ 'What type of item is this?' => 'Bu ne çeþit bir kalemdir?',
+ 'Yes' => 'Evet',
+ 'days' => 'gün. ',
+ 'ea' => 'ad',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'devam' => 'continue',
+ 'sil' => 'delete',
+ 'posta' => 'e_mail',
+ 'satýnalma_sipariþi' => 'purchase_order',
+ 'satýþ_sipariþi' => 'sales_order',
+ 'kaydet' => 'save',
+ 'evet' => 'yes',
+};
+
+1;
+
diff --git a/locale/tr/pe b/locale/tr/pe
new file mode 100755
index 00000000..2debd7e6
--- /dev/null
+++ b/locale/tr/pe
@@ -0,0 +1,88 @@
+$self{charset} = 'ISO-8859-9';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Muhasebe Menüsü',
+ 'Add' => 'Ekle',
+ 'Address' => 'Adres',
+ 'All' => 'Hepsi',
+ 'Amount' => 'Miktar',
+ 'Continue' => 'Devam',
+ 'Customer' => 'Alýcý',
+ 'Date' => 'Tarih',
+ 'Delete' => 'Sil',
+ 'Description' => 'Açýklama',
+ 'From' => 'Baþlangýç',
+ 'Language' => 'Dil',
+ 'Link Accounts' => 'Baðlý Hesaplar',
+ 'List Price' => 'Liste Fiyatý',
+ 'Notes' => 'Notlar:',
+ 'Number' => 'Numara',
+ 'Qty' => 'Adet',
+ 'Save' => 'Kaydet',
+ 'Sell Price' => 'Satýþ Fiyatý',
+ 'Tax' => 'Vergi',
+ 'To' => 'Bitiþ',
+ 'Unit' => 'Birim',
+ 'Vendor' => 'Satýcý',
+ 'Weight' => 'Aðýrlýk',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'devam' => 'continue',
+ 'sil' => 'delete',
+ 'kaydet' => 'save',
+};
+
+1;
+
diff --git a/locale/tr/pos b/locale/tr/pos
new file mode 100755
index 00000000..f8ff3b1b
--- /dev/null
+++ b/locale/tr/pos
@@ -0,0 +1,51 @@
+$self{charset} = 'ISO-8859-9';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Muhasebe Menüsü',
+ 'Amount' => 'Miktar',
+ 'Continue' => 'Devam',
+ 'Credit Limit' => 'Kredi Limiti',
+ 'Currency' => 'Para Birimi',
+ 'Customer' => 'Alýcý',
+ 'Delete' => 'Sil',
+ 'Description' => 'Açýklama',
+ 'Exchange Rate' => 'Döviz Kuru',
+ 'From' => 'Baþlangýç',
+ 'Language' => 'Dil',
+ 'Number' => 'Numara',
+ 'Price' => 'Fiyat',
+ 'Qty' => 'Adet',
+ 'Record in' => 'Kaydet',
+ 'Source' => 'Kaynak',
+ 'Subtotal' => 'Aratoplam',
+ 'Tax Included' => 'Vergi Dahil',
+ 'To' => 'Bitiþ',
+ 'Total' => 'Toplam',
+ 'Unit' => 'Birim',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'devam' => 'continue',
+ 'sil' => 'delete',
+};
+
+1;
+
diff --git a/locale/tr/ps b/locale/tr/ps
new file mode 100755
index 00000000..6715ef3a
--- /dev/null
+++ b/locale/tr/ps
@@ -0,0 +1,203 @@
+$self{charset} = 'ISO-8859-9';
+
+$self{texts} = {
+ 'AP Aging' => 'Gecikmiþ Borçlar',
+ 'AP Transactions' => 'Borç Ýþlemleri',
+ 'AR Aging' => 'Gecikmiþ Alacaklar',
+ 'AR Transactions' => 'Alacak Ýþlemleri',
+ 'Account' => 'Hesap',
+ 'Account Number' => 'Hesap Numarasý',
+ 'Accounting Menu' => 'Muhasebe Menüsü',
+ 'Add Purchase Order' => 'Satýnalma Sip. Ekle',
+ 'Add Sales Order' => 'Satýþ Sipariþi Ekle',
+ 'Address' => 'Adres',
+ 'Amount' => 'Miktar',
+ 'Apr' => 'Nis',
+ 'April' => 'Nisan',
+ 'Are you sure you want to delete Invoice Number' => 'Fatura Numarasýný silmek istediðinizden emin misiniz? Fiþ: ',
+ 'Are you sure you want to delete Transaction' => 'Ýþlemi silmek istediðinizden emin misiniz? Fiþ: ',
+ 'Aug' => 'Aðu',
+ 'August' => 'Aðustos',
+ 'Balance Sheet' => 'Bilanço',
+ 'Compare to' => '...kýyasla',
+ 'Confirm!' => 'Onayla!',
+ 'Contact' => 'Kontak',
+ 'Continue' => 'Devam',
+ 'Credit' => 'Alacak',
+ 'Credit Limit' => 'Kredi Limiti',
+ 'Currency' => 'Para Birimi',
+ 'Customer' => 'Alýcý',
+ 'Date' => 'Tarih',
+ 'Date Paid' => 'Ödendiði Tarih',
+ 'Debit' => 'Borç',
+ 'Dec' => 'Ara',
+ 'December' => 'Aralýk',
+ 'Delete' => 'Sil',
+ 'Description' => 'Açýklama',
+ 'Due Date' => 'Vade Tarihi',
+ 'Due Date missing!' => 'Vade Tarihi yok!',
+ 'E-mail' => 'Posta',
+ 'E-mail address missing!' => 'Posta adresi yok!',
+ 'Exch' => 'D.Kuru',
+ 'Exchange Rate' => 'Döviz Kuru',
+ 'Fax' => 'Faks',
+ 'Feb' => 'Þub',
+ 'February' => 'Þubat',
+ 'From' => 'Baþlangýç',
+ 'Heading' => 'Baþlýk',
+ 'Include in Report' => 'Raporla',
+ 'Income Statement' => 'Gelir Tablosu',
+ 'Invoice' => 'Fatura',
+ 'Invoice Date' => 'Fatura Tarihi',
+ 'Invoice Date missing!' => 'Fatura Tarihi yok!',
+ 'Invoice Number' => 'Fatura No',
+ 'Invoice Number missing!' => 'Fatura Numarasý yok!',
+ 'Item not on file!' => 'Bu kalem dosyada yok!',
+ 'Jan' => 'Oca',
+ 'January' => 'Ocak',
+ 'Jul' => 'Tem',
+ 'July' => 'Temmuz',
+ 'Jun' => 'Haz',
+ 'June' => 'Haziran',
+ 'Language' => 'Dil',
+ 'Mar' => 'Mar',
+ 'March' => 'Mart',
+ 'May' => 'May',
+ 'May ' => 'Mayýs',
+ 'Notes' => 'Notlar:',
+ 'Nov' => 'Kas',
+ 'November' => 'Kasým',
+ 'Number' => 'Numara',
+ 'Number missing in Row' => 'Sýrada Numara yok!',
+ 'Oct' => 'Eki',
+ 'October' => 'Ekim',
+ 'Order' => 'Sipariþ',
+ 'Order Date missing!' => 'Sipariþ Tarihi yok!',
+ 'Order Number' => 'Sipariþ No',
+ 'Order Number missing!' => 'Sipariþ Numarasý yok!',
+ 'Packing List' => 'Paketleme Listesi',
+ 'Paid' => 'Ödendi',
+ 'Part' => 'Parça',
+ 'Payment date missing!' => 'Ödeme Tarihi yok',
+ 'Payments' => 'Ödemeler',
+ 'Phone' => 'Telefon',
+ 'Price' => 'Fiyat',
+ 'Purchase Order' => 'Satýnalma Sipariþi',
+ 'Qty' => 'Adet',
+ 'Record in' => 'Kaydet',
+ 'Required by' => 'Talep tarihi:',
+ 'Sales Order' => 'Satýþ Sipariþi',
+ 'Sep' => 'Eyl',
+ 'September' => 'Eylül',
+ 'Service' => 'servis',
+ 'Source' => 'Kaynak',
+ 'Subtotal' => 'Aratoplam',
+ 'Tax' => 'Vergi',
+ 'Tax Included' => 'Vergi Dahil',
+ 'To' => 'Bitiþ',
+ 'Total' => 'Toplam',
+ 'Trial Balance' => 'Proforma Bilanço',
+ 'Unit' => 'Birim',
+ 'Vendor' => 'Satýcý',
+ 'What type of item is this?' => 'Bu ne çeþit bir kalemdir?',
+ 'Yes' => 'Evet',
+ 'ea' => 'ad',
+ 'for Period' => 'Dönem:',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'devam' => 'continue',
+ 'sil' => 'delete',
+ 'posta' => 'e_mail',
+ 'satýþ_sipariþi' => 'sales_order',
+ 'evet' => 'yes',
+};
+
+1;
+
diff --git a/locale/tr/pw b/locale/tr/pw
new file mode 100755
index 00000000..326452fd
--- /dev/null
+++ b/locale/tr/pw
@@ -0,0 +1,14 @@
+$self{charset} = 'ISO-8859-9';
+
+$self{texts} = {
+ 'Continue' => 'Devam',
+ 'Password' => 'Þifre',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'devam' => 'continue',
+};
+
+1;
+
diff --git a/locale/tr/rc b/locale/tr/rc
new file mode 100755
index 00000000..08be543a
--- /dev/null
+++ b/locale/tr/rc
@@ -0,0 +1,57 @@
+$self{charset} = 'ISO-8859-9';
+
+$self{texts} = {
+ 'Account' => 'Hesap',
+ 'Accounting Menu' => 'Muhasebe Menüsü',
+ 'Apr' => 'Nis',
+ 'April' => 'Nisan',
+ 'Aug' => 'Aðu',
+ 'August' => 'Aðustos',
+ 'Continue' => 'Devam',
+ 'Credit' => 'Alacak',
+ 'Date' => 'Tarih',
+ 'Debit' => 'Borç',
+ 'Dec' => 'Ara',
+ 'December' => 'Aralýk',
+ 'Description' => 'Açýklama',
+ 'Feb' => 'Þub',
+ 'February' => 'Þubat',
+ 'From' => 'Baþlangýç',
+ 'Jan' => 'Oca',
+ 'January' => 'Ocak',
+ 'Jul' => 'Tem',
+ 'July' => 'Temmuz',
+ 'Jun' => 'Haz',
+ 'June' => 'Haziran',
+ 'Mar' => 'Mar',
+ 'March' => 'Mart',
+ 'May' => 'May',
+ 'May ' => 'Mayýs',
+ 'Nov' => 'Kas',
+ 'November' => 'Kasým',
+ 'Oct' => 'Eki',
+ 'October' => 'Ekim',
+ 'Sep' => 'Eyl',
+ 'September' => 'Eylül',
+ 'Source' => 'Kaynak',
+ 'To' => 'Bitiþ',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'devam' => 'continue',
+};
+
+1;
+
diff --git a/locale/tr/rp b/locale/tr/rp
new file mode 100755
index 00000000..343e73ee
--- /dev/null
+++ b/locale/tr/rp
@@ -0,0 +1,117 @@
+$self{charset} = 'ISO-8859-9';
+
+$self{texts} = {
+ 'AP Aging' => 'Gecikmiþ Borçlar',
+ 'AR Aging' => 'Gecikmiþ Alacaklar',
+ 'Account' => 'Hesap',
+ 'Account Number' => 'Hesap Numarasý',
+ 'Accounting Menu' => 'Muhasebe Menüsü',
+ 'Address' => 'Adres',
+ 'Amount' => 'Miktar',
+ 'Apr' => 'Nis',
+ 'April' => 'Nisan',
+ 'Aug' => 'Aðu',
+ 'August' => 'Aðustos',
+ 'Balance Sheet' => 'Bilanço',
+ 'Compare to' => '...kýyasla',
+ 'Continue' => 'Devam',
+ 'Credit' => 'Alacak',
+ 'Customer' => 'Alýcý',
+ 'Date' => 'Tarih',
+ 'Debit' => 'Borç',
+ 'Dec' => 'Ara',
+ 'December' => 'Aralýk',
+ 'Description' => 'Açýklama',
+ 'Due Date' => 'Vade Tarihi',
+ 'E-mail' => 'Posta',
+ 'E-mail address missing!' => 'Posta adresi yok!',
+ 'Feb' => 'Þub',
+ 'February' => 'Þubat',
+ 'From' => 'Baþlangýç',
+ 'Heading' => 'Baþlýk',
+ 'Include in Report' => 'Raporla',
+ 'Income Statement' => 'Gelir Tablosu',
+ 'Invoice' => 'Fatura',
+ 'Jan' => 'Oca',
+ 'January' => 'Ocak',
+ 'Jul' => 'Tem',
+ 'July' => 'Temmuz',
+ 'Jun' => 'Haz',
+ 'June' => 'Haziran',
+ 'Language' => 'Dil',
+ 'Mar' => 'Mar',
+ 'March' => 'Mart',
+ 'May' => 'May',
+ 'May ' => 'Mayýs',
+ 'Nov' => 'Kas',
+ 'November' => 'Kasým',
+ 'Number' => 'Numara',
+ 'Oct' => 'Eki',
+ 'October' => 'Ekim',
+ 'Order' => 'Sipariþ',
+ 'Payments' => 'Ödemeler',
+ 'Sep' => 'Eyl',
+ 'September' => 'Eylül',
+ 'Source' => 'Kaynak',
+ 'Subtotal' => 'Aratoplam',
+ 'Tax' => 'Vergi',
+ 'To' => 'Bitiþ',
+ 'Total' => 'Toplam',
+ 'Trial Balance' => 'Proforma Bilanço',
+ 'Vendor' => 'Satýcý',
+ 'for Period' => 'Dönem:',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'devam' => 'continue',
+ 'posta' => 'e_mail',
+};
+
+1;
+
diff --git a/locale/tw_big5/COPYING b/locale/tw_big5/COPYING
new file mode 100755
index 00000000..935093b0
--- /dev/null
+++ b/locale/tw_big5/COPYING
@@ -0,0 +1,25 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2004
+#
+# Traditional Chinese (Big5) texts:
+#
+# Author: Carfield Yim <carfield@carfield.com.hk>
+# Kent Tong <kent@cpttm.org.mo>
+#
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/tw_big5/LANGUAGE b/locale/tw_big5/LANGUAGE
new file mode 100755
index 00000000..c874d6c7
--- /dev/null
+++ b/locale/tw_big5/LANGUAGE
@@ -0,0 +1 @@
+Traditional Chinese (BIG5)
diff --git a/locale/tw_big5/aa b/locale/tw_big5/aa
new file mode 100755
index 00000000..53063849
--- /dev/null
+++ b/locale/tw_big5/aa
@@ -0,0 +1,163 @@
+$self{charset} = 'BIG5';
+
+$self{texts} = {
+ 'AP Outstanding' => 'À³¥I¥¼¥I',
+ 'AP Transaction' => 'À³¥I¥æ©ö',
+ 'AP Transactions' => 'À³¥I¥æ©ö',
+ 'AR Outstanding' => 'À³¦¬¥¼¦¬',
+ 'AR Transaction' => 'À³¦¬¥æ©ö',
+ 'AR Transactions' => 'À³¦¬¥æ©ö',
+ 'Account' => '±b¤á',
+ 'Accounting Menu' => '·|­p¿ï³æ',
+ 'Add AP Transaction' => '·s¼WÀ³¥I¥æ©ö',
+ 'Add AR Transaction' => '·s¼WÀ³¦¬¥æ©ö',
+ 'Amount' => 'ª÷ÃB',
+ 'Amount Due' => '¨ì´Áª÷ÃB',
+ 'Apr' => '¥|¤ë',
+ 'April' => '¥|¤ë',
+ 'Are you sure you want to delete Transaction' => '±z¬O§_½T©w­n§R°£¥æ©ö',
+ 'Aug' => '¤K¤ë',
+ 'August' => '¤K¤ë',
+ 'Cannot delete transaction!' => '¤£¯à§R°£¥æ©ö¡I',
+ 'Cannot post payment for a closed period!' => '¤£¯à¦b¤wÃö³¬ªº®É¬q¤º¥[¤J´Ú¶µ¡I',
+ 'Cannot post transaction for a closed period!' => '¤£¯à¦b¤wÃö³¬ªº®É¬q¤º¥[¤J¥æ©ö¡I',
+ 'Cannot post transaction!' => '¤£¯à¥[¤J¥æ©ö¡I',
+ 'Check' => 'Àˬd',
+ 'Closed' => '¤wÃö³¬',
+ 'Confirm!' => '¤J±b¦¨¥\¡I',
+ 'Continue' => 'Ä~Äò',
+ 'Credit' => '¶U¤è',
+ 'Credit Limit' => '«H¥ÎÃB«×',
+ 'Curr' => '¥Ø«e',
+ 'Currency' => '¹ô§O',
+ 'Current' => '²{¦³',
+ 'Customer' => '«È¤á',
+ 'Customer missing!' => '¥¼«ü©ú«È¤á¡I',
+ 'Date' => '¤é´Á',
+ 'Date Paid' => '¥I´Ú¤é´Á',
+ 'Debit' => '­É¤è',
+ 'Dec' => '¤Q¤G¤ë',
+ 'December' => '¤Q¤G¤ë',
+ 'Delete' => '§R°£',
+ 'Department' => '³¡ªù',
+ 'Description' => '»¡©ú',
+ 'Detail' => '¸Ô±¡',
+ 'Due Date' => '¨ì´Á¤é',
+ 'Due Date missing!' => '¥¼«ü©ú¨ì´Á¤é¡I',
+ 'Edit AP Transaction' => '½s¿èÀ³¥I¥æ©ö',
+ 'Edit AR Transaction' => '½s¿èÀ³¦¬¥æ©ö',
+ 'Employee' => '¾­û',
+ 'Exch' => '¶×²v',
+ 'Exchange Rate' => '¶×²v',
+ 'Exchange rate for payment missing!' => '¥¼«ü©ú¥I´Úªº¶×²v¡I',
+ 'Exchange rate missing!' => '¥¼«ü©ú¶×²v¡I',
+ 'Feb' => '¤G¤ë',
+ 'February' => '¤G¤ë',
+ 'From' => '±q',
+ 'ID' => 'ÃѧO½s¸¹',
+ 'Include in Report' => '¤@¨ÖÅã¥Ü',
+ 'Invoice' => 'µo²¼',
+ 'Invoice Date' => 'µo²¼¤é´Á',
+ 'Invoice Date missing!' => '¥¼«ü©úµo²¼¤é´Á¡I',
+ 'Invoice Number' => 'µo²¼½s¸¹',
+ 'Jan' => '¤@¤ë',
+ 'January' => '¤@¤ë',
+ 'Jul' => '¤C¤ë',
+ 'July' => '¤C¤ë',
+ 'Jun' => '¤»¤ë',
+ 'June' => '¤»¤ë',
+ 'Manager' => '¸g²z',
+ 'Mar' => '¤T¤ë',
+ 'March' => '¤T¤ë',
+ 'May' => '¤­¤ë',
+ 'May ' => '¤­¤ë',
+ 'Memo' => '³Æ§Ñ¿ý',
+ 'Month' => '¤ë',
+ 'No.' => '½s¸¹',
+ 'Notes' => '³Æµù',
+ 'Nov' => '¤Q¤@¤ë',
+ 'November' => '¤Q¤@¤ë',
+ 'Oct' => '¤Q¤ë',
+ 'October' => '¤Q¤ë',
+ 'Open' => '¶}±Ò',
+ 'Order' => '­q³æ',
+ 'Order Number' => '­q³æ½s¸¹',
+ 'PO Number' => '±ÄÁʳæ½s¸¹',
+ 'Paid' => '¤w¥I',
+ 'Payment date missing!' => '¥¼«ü©ú¥I´Ú¤é´Á¡I',
+ 'Payments' => '¥I´Ú',
+ 'Period' => '´Á¶¡',
+ 'Post' => '¥[¤J',
+ 'Post as new' => '·í·sªº¥[¤J',
+ 'Print' => '¦C¦L',
+ 'Print and Post' => '¦C¦L¨Ã¥[¤J',
+ 'Print and Post as new' => '¦C¦L¨Ã¥[¤J§@¬°·sªº',
+ 'Project' => '¶µ¥Ø',
+ 'Quarter' => '©u',
+ 'Receipt' => '¦¬¾Ú',
+ 'Remaining' => '©|¾l',
+ 'Sales Invoice.' => '¾P°âµo²¼¡C',
+ 'Salesperson' => '¾P°â¤H­û',
+ 'Schedule' => '®É¶¡ªí',
+ 'Sep' => '¤E¤ë',
+ 'September' => '¤E¤ë',
+ 'Ship to' => '¥I¹B¦Ü',
+ 'Ship via' => '¥I¹B¤½¥q',
+ 'Shipping Point' => '¥I¹B¦aÂI',
+ 'Source' => '¨Ó·½',
+ 'Subtotal' => '¤p­p',
+ 'Summary' => 'ºK­n',
+ 'Tax' => 'µ|ª÷',
+ 'Tax Included' => '¤w§tµ|ª÷',
+ 'Till' => 'ª½¨ì',
+ 'To' => '¦Ü',
+ 'Total' => 'Á`­p',
+ 'Transaction' => '¥æ©ö',
+ 'Transaction deleted!' => '¤w§R°£¥æ©ö¡I',
+ 'Transaction posted!' => '¤w¥[¤J¥æ©ö¡I',
+ 'Update' => '§ó·s',
+ 'Vendor' => '¨ÑÀ³°Ó',
+ 'Vendor Invoice.' => '¨ÑÀ³°Óµo²¼¡C',
+ 'Vendor missing!' => '¥¼«ü©ú¨ÑÀ³°Ó¡I',
+ 'Year' => '¦~',
+ 'Yes' => '¬O',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'À³¥i¥æ©ö' => 'ap_transaction',
+ 'À³¦¬¥æ©ö' => 'ar_transaction',
+ 'Ä~Äò' => 'continue',
+ '§r°£' => 'delete',
+ '¥[¤j' => 'post',
+ '·í·sªº¥[¤j' => 'post_as_new',
+ '¦c¦l' => 'print',
+ '¦c¦l¨Ã¥[¤j' => 'print_and_post',
+ '¦c¦l¨Ã¥[¤j§@¬°·sªº' => 'print_and_post_as_new',
+ '¾p°âµo²¼¡c' => 'sales_invoice_',
+ '®É¶¡ªí' => 'schedule',
+ '¥i¹b¦Ü' => 'ship_to',
+ '§ó·s' => 'update',
+ '¨ÑÀ³°Óµo²¼¡c' => 'vendor_invoice_',
+ '¬o' => 'yes',
+};
+
+1;
+
diff --git a/locale/tw_big5/admin b/locale/tw_big5/admin
new file mode 100755
index 00000000..73ba7978
--- /dev/null
+++ b/locale/tw_big5/admin
@@ -0,0 +1,145 @@
+$self{charset} = 'BIG5';
+
+$self{texts} = {
+ 'Access Control' => 'Åv­­±±¨î',
+ 'Accounting' => '·|­p',
+ 'Add User' => '·s¼W¨Ï¥ÎªÌ',
+ 'Address' => '¦a§}',
+ 'Administration' => '¨t²ÎºÞ²z',
+ 'Administrator' => 'ºÞ²z­û',
+ 'All Datasets up to date!' => '©Ò¦³¸ê®Æ¬Ò¤w§ó·s¡I',
+ 'Cannot create Lock!' => '¤£¯à«Ø¥ßÂê¡I',
+ 'Change Admin Password' => '§ó§ïºÞ²z­û±K½X',
+ 'Change Password' => '§ó§ï±K½X',
+ 'Click on login name to edit!' => '½Ð«öµn¤J¦WºÙ¥H¶i¦æ­×§ï¡I',
+ 'Company' => '¤½¥q',
+ 'Confirm' => '½T»{',
+ 'Connect to' => '³sµ²¨ì',
+ 'Continue' => 'Ä~Äò',
+ 'Create Chart of Accounts' => '«Ø¥ß±b¤á¹Ïªí',
+ 'Create Dataset' => '«Ø¥ß¸ê®Æ¶°',
+ 'DBI not installed!' => '¥¼¦w¸Ë DBI ¼Ò²Õ¡I',
+ 'Database' => '¸ê®Æ®w',
+ 'Database Administration' => '¸ê®Æ®wºÞ²z',
+ 'Database Driver not checked!' => '¥¼¿ï©w¸ê®Æ®wÅX°Êµ{¦¡¡I',
+ 'Database User missing!' => '¥¼«ü©ú¸ê®Æ®w¨Ï¥ÎªÌ¡I',
+ 'Dataset' => '¸ê®Æ¶°',
+ 'Dataset missing!' => '¥¼«ü©ú¸ê®Æ¶°¡I',
+ 'Dataset updated!' => '¤w§ó·s¸ê®Æ¶°¡I',
+ 'Date Format' => '¤é´Á®æ¦¡',
+ 'Delete' => '§R°£',
+ 'Delete Dataset' => '§R°£¸ê®Æ¶°',
+ 'Directory' => '¥Ø¿ý',
+ 'Driver' => 'ÅX°Êµ{¦¡',
+ 'Dropdown Limit' => '­­¨î',
+ 'E-mail' => '¹q¤l¶l¥ó',
+ 'Edit User' => '½s¿è¨Ï¥ÎªÌ',
+ 'Existing Datasets' => '¬J¦³ªº¸ê®Æ¶°',
+ 'Fax' => '¶Ç¯u',
+ 'Host' => '¥D¾÷',
+ 'Hostname missing!' => '¥¼«ü©ú¥D¾÷¦WºÙ¡I',
+ 'Language' => '»y¨¥',
+ 'Lock System' => '¨t²ÎÂê¤W',
+ 'Lockfile created!' => '¤w«Ø¥ß¤WÂêÀɮסI',
+ 'Lockfile removed!' => '¤w²¾°£¤WÂêÀɮסI',
+ 'Login' => 'µn¤J',
+ 'Login name missing!' => '¥¼«ü©úµn¤J¦W¦r¡I',
+ 'Logout' => 'µn¥X',
+ 'Manager' => '¸g²z',
+ 'Menu Width' => '¿ï¾Ü³æ¼e«×',
+ 'Multibyte Encoding' => '¦h¦r¤¸½s½X',
+ 'Name' => '¦WºÙ',
+ 'New Templates' => '·s¼W¼Òª©',
+ 'No Database Drivers available!' => '¨S¦³¥i¥Îªº¸ê®Æ®wÅX°Êµ{¦¡¡I',
+ 'No Dataset selected!' => '¥¼¿ï©w¸ê®Æ¶°¡I',
+ 'Nothing to delete!' => '¨S¦³¥i§R°£ªº¶µ¥Ø¡I',
+ 'Number Format' => '¼Æ¦r®æ¦¡',
+ 'Oracle Database Administration' => 'Oracle¸ê®Æ®wºÞ²z',
+ 'Password' => '±K½X',
+ 'Password changed!' => '±K½X¤w§ï¡I',
+ 'Passwords do not match!' => '±K½X¤£²Å¡I',
+ 'Pg Database Administration' => 'Pg¸ê®Æ®wºÞ²z',
+ 'PgPP Database Administration' => 'PgPP¸ê®Æ®wºÞ²z',
+ 'Phone' => '¹q¸Ü¸¹½X',
+ 'Port' => '°ð¸¹',
+ 'Port missing!' => '¥¼«ü©ú°ð¸¹¡I',
+ 'Printer' => '¦Lªí¾÷',
+ 'Save' => 'Àx¦s',
+ 'Session Timeout' => '¨Ï¥Î´Á(Session)ªøµu',
+ 'Session expired!' => '¨Ï¥Î´Á(Session)¤w¹L¡I',
+ 'Setup Templates' => '³]©w¼Òª©',
+ 'Signature' => 'ñ¦W',
+ 'Stylesheet' => '¼Ë¦¡ªí',
+ 'Supervisor' => '¥DºÞ',
+ 'Templates' => '¼Òª©',
+ 'The following Datasets are not in use and can be deleted' => '¤U¦C¸ê®Æ¶°¨Ã¥¼¨Ï¥Î¡A¥i¥H§R°£',
+ 'The following Datasets need to be updated' => '¤U¦C¸ê®Æ¶°»Ý­n§ó·s',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => '³o¬O¹ï¬J¦s¸ê®Æ¨Ó·½ªºªì¨BÀˬd¡C¦b¦¹¶¥¬q¡A¤£·|§R°£©Î·s¼W¥ô¦ó¸ê®Æ¡I',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => '­Y­n·s¼W¸s²Õ¤ºªº¨Ï¥ÎªÌ¡A½Ð½s¿è¦WºÙ¡A§ó§ïµn¤J¦W¡AµM«áÀx¦s¡C³o¼Ë¤@¨Ó, ·s¨Ï¥ÎªÌ·|«O¯d¬Û¦PªºÅܼơA¨Ã¥H·sªºµn¤J¦W¦s¤J¡C',
+ 'Unlock System' => '¨t²Î¸Ñ«Ê',
+ 'Update Dataset' => '§ó·s¸ê®Æ¶°',
+ 'Use Templates' => '¨Ï¥Î¼Òª©',
+ 'User' => '¨Ï¥ÎªÌ',
+ 'User deleted!' => '¤w§R°£¨Ï¥ÎªÌ¡I',
+ 'User saved!' => '¤wÀx¦s¨Ï¥ÎªÌ¡I',
+ 'Version' => 'ª©¥»',
+ 'You are logged out' => '§A¤wµn¥X',
+ 'does not exist' => '¤£¦s¦b',
+ 'is already a member!' => '¤w¸g¬O¦¨­û¤F¡I',
+ 'localhost' => '¥»¦a±H¥D',
+ 'locked!' => '¤wÂê¤W¡I',
+ 'successfully created!' => '¦¨¥\«Ø¥ß¡I',
+ 'successfully deleted!' => '¦¨¥\§R°£¡I',
+ 'website' => 'ºô¯¸',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ '·s¼w¨Ï¥ÎªÌ' => 'add_user',
+ '§ó§ïºÞ²z­û±k½x' => 'change_admin_password',
+ '§ó§ï±k½x' => 'change_password',
+ 'Ä~Äò' => 'continue',
+ '«Ø¥ß¸ê®Æ¶°' => 'create_dataset',
+ '§r°£' => 'delete',
+ '§r°£¸ê®Æ¶°' => 'delete_dataset',
+ '¨t²ÎÂê¤w' => 'lock_system',
+ 'µn¤j' => 'login',
+ 'µn¥x' => 'logout',
+ 'oracle¸ê®Æ®wºÞ²z' => 'oracle_database_administration',
+ 'pg¸ê®Æ®wºÞ²z' => 'pg_database_administration',
+ 'pgpp¸ê®Æ®wºÞ²z' => 'pgpp_database_administration',
+ 'Àx¦s' => 'save',
+ '¨t²Î¸Ñ«Ê' => 'unlock_system',
+ '§ó·s¸ê®Æ¶°' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/tw_big5/all b/locale/tw_big5/all
new file mode 100755
index 00000000..44418872
--- /dev/null
+++ b/locale/tw_big5/all
@@ -0,0 +1,892 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+$self{charset} = 'BIG5';
+
+
+$self{texts} = {
+ 'A' => '',
+ 'AP' => 'À³¥I±b´Ú',
+ 'AP Aging' => 'À³¥I±bÄÖ¤ÀªR',
+ 'AP Outstanding' => 'À³¥I¥¼¥I',
+ 'AP Transaction' => 'À³¥I¥æ©ö',
+ 'AP Transactions' => 'À³¥I¥æ©ö',
+ 'AR' => 'À³¦¬±b´Ú',
+ 'AR Aging' => 'À³¦¬±bÄÖ¤ÀªR',
+ 'AR Outstanding' => 'À³¦¬¥¼¦¬',
+ 'AR Transaction' => 'À³¦¬¥æ©ö',
+ 'AR Transactions' => 'À³¦¬¥æ©ö',
+ 'AR/AP' => 'À³¦¬/À³¥I ',
+ 'About' => 'Ãö©ó',
+ 'Above' => '¤W¤å',
+ 'Access Control' => 'Åv­­±±¨î',
+ 'Access Denied!' => '©Úµ´¦s¨ú¡I',
+ 'Account' => '±b¤á',
+ 'Account Number' => '±b¤á½s¸¹',
+ 'Account Number missing!' => '¥¼«ü©ú±b¤á½s¸¹¡I',
+ 'Account Type' => '±b¤áÃþ§O',
+ 'Account Type missing!' => '¥¼«ü©ú±b¤áÃþ§O¡I',
+ 'Account deleted!' => '¤w§R°£±b¤á¡I',
+ 'Account does not exist!' => '¤£¦s¦b±b¤á¡I',
+ 'Account saved!' => '¤wÀx¦s±b¤á¡I',
+ 'Accounting' => '·|­p',
+ 'Accounting Menu' => '·|­p¿ï³æ',
+ 'Accounts' => '±b¤á',
+ 'Accrual' => 'À³­p°ò¦',
+ 'Activate Audit trails' => '±Ò°Ê¼f®Ö½u¯Á',
+ 'Active' => '¥Í®Äªº',
+ 'Add' => '·s¼W',
+ 'Add AP Transaction' => '·s¼WÀ³¥I¥æ©ö',
+ 'Add AR Transaction' => '·s¼WÀ³¦¬¥æ©ö',
+ 'Add Account' => '·s¼W±b¤á',
+ 'Add Assembly' => '·s¼W»s¦¨«~',
+ 'Add Business' => '·s¼W·~°È',
+ 'Add Cash Transfer Transaction' => '·s¼W²{ª÷Âಾ±b¥Ø',
+ 'Add Customer' => '·s¼W«È¤á',
+ 'Add Deduction' => '·s¼W¦©°£',
+ 'Add Department' => '·s¼W³¡ªù',
+ 'Add Employee' => '·s¼W¾­û',
+ 'Add Exchange Rate' => '·s¼W¥~¶×²v',
+ 'Add GIFI' => '·s¼WGIFI',
+ 'Add General Ledger Transaction' => '·s¼WÁ`±b¥æ©ö',
+ 'Add Group' => '·s¼W²Õ§O',
+ 'Add Job' => '·s¼W¤u§@',
+ 'Add Labor/Overhead' => '·s¼Wª½±µ¤H¤u/¸g±`¶O¥Î',
+ 'Add Language' => '·s¼W»y¨¥',
+ 'Add POS Invoice' => '·s¼WPOSµo²¼',
+ 'Add Part' => '·s¼W¹s¥ó',
+ 'Add Pricegroup' => '·s¼W»ù®æ²Õ§O',
+ 'Add Project' => '·s¼W¶µ¥Ø',
+ 'Add Purchase Order' => '·s¼W±ÄÁʳæ',
+ 'Add Quotation' => '·s¼W³ø»ù³æ',
+ 'Add Request for Quotation' => '·s¼W³ø»ù³æ­n¨D',
+ 'Add SIC' => '·s¼W¼Ð·Ç¤u·~¤ÀÃþ¥N½X',
+ 'Add Sales Invoice' => '·s¼W¾P°âµo²¼',
+ 'Add Sales Order' => '·s¼W¾P³f³æ',
+ 'Add Service' => '·s¼WªA°È',
+ 'Add Timecard' => '·s¼W¤u®É¥d',
+ 'Add Transaction' => '·s¼W¥æ©ö',
+ 'Add User' => '·s¼W¨Ï¥ÎªÌ',
+ 'Add Vendor' => '·s¼W¨ÑÀ³°Ó',
+ 'Add Vendor Invoice' => '·s¼W¨ÑÀ³°Óµo²¼',
+ 'Add Warehouse' => '·s¼W­Ü®w',
+ 'Address' => '¦a§}',
+ 'Administration' => '¨t²ÎºÞ²z',
+ 'Administrator' => 'ºÞ²z­û',
+ 'After Deduction' => '¦©°£¥H«á',
+ 'All' => '¥þ³¡',
+ 'All Accounts' => '¥þ³¡±b¤á',
+ 'All Datasets up to date!' => '©Ò¦³¸ê®Æ¬Ò¤w§ó·s¡I',
+ 'All Items' => '¥þ³¡¶µ¥Ø',
+ 'Allowances' => '¬z¶K',
+ 'Amount' => 'ª÷ÃB',
+ 'Amount Due' => '¨ì´Áª÷ÃB',
+ 'Amount missing!' => '¨S¦³«ü©wª÷ÃB¡I',
+ 'Apr' => '¥|¤ë',
+ 'April' => '¥|¤ë',
+ 'Are you sure you want to delete Invoice Number' => '±z¬O§_½T©w­n§R°£µo²¼½s¸¹',
+ 'Are you sure you want to delete Order Number' => '±z¬O§_½T©w­n§R°£­q³æ½s¸¹',
+ 'Are you sure you want to delete Quotation Number' => '±z¬O§_½T©w­n§R°£³ø»ù³æ½s¸¹',
+ 'Are you sure you want to delete Timecard for' => '±z¬O§_½T©w­n§R°£¨ä¤u®É¥d¡G',
+ 'Are you sure you want to delete Transaction' => '±z¬O§_½T©w­n§R°£¥æ©ö',
+ 'Are you sure you want to remove the marked entries from the queue?' => '±z¬O§_½T©w­n®ø°£¦³°O¸¹ªº±ø¥Ø¡H',
+ 'Assemblies' => '»s¦¨«~',
+ 'Assemblies restocked!' => '»s¦¨«~¤w­«·s¶i³f',
+ 'Assembly' => '»s¦¨«~',
+ 'Assembly stocked!' => '»s¦¨«~¤w¶i³f',
+ 'Asset' => '¸ê²£',
+ 'Attachment' => 'ªþ¥ó',
+ 'Audit Control' => '¼f®Ö±±¨î',
+ 'Audit trail removed up to' => '²¾°£¨ì¦¹¬°¤îªº¼f®Ö½u¯Á',
+ 'Audit trails disabled' => '¼f®Ö½u¯Á¤w¶}°Ê',
+ 'Audit trails enabled' => '¼f®Ö½u¯Á¤wÃö³¬',
+ 'Aug' => '¤K¤ë',
+ 'August' => '¤K¤ë',
+ 'Average Cost' => '¥­§¡¦¨¥»',
+ 'Avg Cost' => '¥­§¡¦¨¥»',
+ 'BIC' => '»È¦æÃѧO½s¸¹(BIC)',
+ 'BOM' => '§÷®Æ²M³æ',
+ 'Backup' => '³Æ¥÷',
+ 'Backup sent to' => '³Æ¥÷±H°e¨ì',
+ 'Balance' => '¾lÃB',
+ 'Balance Sheet' => '¸ê²£­t¶Åªí',
+ 'Based on' => '°ò©ó',
+ 'Bcc' => '¤£Åã¥Ü§Û°e',
+ 'Before Deduction' => '¦©°£¤§«e',
+ 'Beginning Balance' => '°_©l¾lÃB',
+ 'Below' => '¥H¤U',
+ 'Billing Address' => '±b³æ¦a§}',
+ 'Bin' => '½c',
+ 'Bin List' => '½cªº©ú²Óªí',
+ 'Bin Lists' => '½cªº©ú²Óªí',
+ 'Books are open' => '±bï¤w¶}±Ò',
+ 'Break' => '¥ð®§',
+ 'Business' => '·~°È',
+ 'Business Number' => '·~°È½s¸¹',
+ 'Business deleted!' => '¤w§R°£·~°È¡I',
+ 'Business saved!' => '¤wÀx¦s·~°È¡I',
+ 'C' => '',
+ 'COGS' => '³f¾P¦¨¥»',
+ 'COGS account does not exist!' => '³f¾P¦¨¥»±b¤á¤£¦s¦b¡I',
+ 'Cannot add timecard for a completed job!' => '¤u§@¤w§¹¦¨¡A¤£¯à¦A¥[¤u®É¥d¡I',
+ 'Cannot change timecard for a completed job!' => '¤u§@¤w§¹¦¨¡A¤£¯à¦A§ï¤u®É¥d¡I',
+ 'Cannot create Assembly' => '¤£¯à«Ø¥ß»s¦¨«~',
+ 'Cannot create Labor' => '¤£¯à«Ø¥ßª½±µ¤H¤u',
+ 'Cannot create Lock!' => '¤£¯à«Ø¥ßÂê¡I',
+ 'Cannot create Part' => '¤£¯à«Ø¥ß¹s¥ó',
+ 'Cannot create Service' => '¤£¯à«Ø¥ßªA°È',
+ 'Cannot delete Timecard!' => '¤£¯à«Ø¥ß¤u®É¥d',
+ 'Cannot delete account!' => '¤£¯à§R°£±b¤á¡I',
+ 'Cannot delete customer!' => '¤£¯à§R°£«È¤á¡I',
+ 'Cannot delete default account!' => '¤£¯à§R°£¹w³]±b¤á¡I',
+ 'Cannot delete invoice!' => '¤£¯à§R°£µo²¼¡I',
+ 'Cannot delete item!' => '¤£¯à§R°£¶µ¥Ø¡I',
+ 'Cannot delete order!' => '¤£¯à§R°£©w³æ¡I',
+ 'Cannot delete quotation!' => '¤£¯à§R°£³ø»ù³æ¡I',
+ 'Cannot delete transaction!' => '¤£¯à§R°£¥æ©ö¡I',
+ 'Cannot delete vendor!' => '¤£¯à§R°£¨ÑÀ³°Ó¡I',
+ 'Cannot post Payment!' => '¤£¯à¥[¤J´Ú¶µ¡I',
+ 'Cannot post Receipt!' => '¤£¯à¥[¤J¦¬¾Ú¡I',
+ 'Cannot post invoice for a closed period!' => '¤£¯à¦b¤wÃö³¬ªº®É¬q¤º¥[¤Jµo²¼¡I',
+ 'Cannot post invoice!' => '¤£¯à¥[¤Jµo²¼¡I',
+ 'Cannot post payment for a closed period!' => '¤£¯à¦b¤wÃö³¬ªº®É¬q¤º¥[¤J´Ú¶µ¡I',
+ 'Cannot post transaction for a closed period!' => '¤£¯à¦b¤wÃö³¬ªº®É¬q¤º¥[¤J¥æ©ö¡I',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => '¦b¥æ©ö¦P¤@±b¤á¤£¯à¤S¥X²{¦b­É¤è¤S¥X²{¦b¶U¤è¡I',
+ 'Cannot post transaction!' => '¤£¯à¥[¤J¥æ©ö¡I',
+ 'Cannot remove files!' => '¤£¯à²¾°£ÀɮסI',
+ 'Cannot save account!' => '¤£¯àÀx¦s±b¤á¡I',
+ 'Cannot save defaults!' => '¤£¯àÀx¦s¹w³]¡I',
+ 'Cannot save order!' => '¤£¯àÀx¦s©w³æ¡I',
+ 'Cannot save preferences!' => '¤£¯àÀx¦sÀu¥ý¿ï¾Ü¡I',
+ 'Cannot save quotation!' => '¤£¯àÀx¦s³ø»ù³æ¡I',
+ 'Cannot save timecard for a closed period!' => '¤£¯à¦b¤wÃö³¬ªº®É¬q¤ºÀx¦s¤u®É¥d¡I',
+ 'Cannot save timecard!' => '¤£¯àÀx¦s¤u®É¥d¡I',
+ 'Cannot set account for more than one of AR, AP or IC' => '¤£¯à³]¸m¦h©ó¤@­ÓÀ³¦¬±b´Ú, À³¥I±b´Ú©ÎIC',
+ 'Cannot set multiple options for' => '¤£¯à¹ï¥H¤Uª«¥ó³]©w¦h­Ó¿ï¶µ¡G',
+ 'Cannot set multiple options for Item' => '¤£¯à¹ï¥Hª«¥ó³]©w¦h­Ó¿ï¶µ',
+ 'Cannot stock Assembly!' => '¤£¯à§â»s¦¨«~¤J³f¡I',
+ 'Cannot stock assemblies!' => '¤£¯à§â»s¦¨«~¤J³f¡I',
+ 'Cash' => '²{ª÷',
+ 'Cc' => '§Û°e',
+ 'Change' => '§ó§ï',
+ 'Change Admin Password' => '§ó§ïºÞ²z­û±K½X',
+ 'Change Password' => '§ó§ï±K½X',
+ 'Charge' => '¦¬¶O',
+ 'Chart of Accounts' => '·|­p¬ì¥Øªí',
+ 'Check' => 'Àˬd',
+ 'Check Inventory' => 'Àˬd¦s³f²M³æ',
+ 'Checks' => 'Àˬd',
+ 'City' => '«°¥«',
+ 'Cleared' => '¤w²M°£',
+ 'Click on login name to edit!' => '½Ð«öµn¤J¦WºÙ¥H¶i¦æ­×§ï¡I',
+ 'Clocked' => '­pºâ¥Xªº®É¶¡',
+ 'Close Books up to' => 'Ãö³¬¨ì¦¹¬°¤îªº±bï¡G',
+ 'Closed' => '¤wÃö³¬',
+ 'Code' => '½s½X',
+ 'Code missing!' => '¥¼«ü©ú½s½X¡I',
+ 'Company' => '¤½¥q',
+ 'Company Name' => '¤½¥q¦WºÙ',
+ 'Compare to' => '¹ï·Ó',
+ 'Completed' => '§¹¦¨¤F',
+ 'Components' => '¹s¥ó',
+ 'Confirm' => '½T»{',
+ 'Confirm!' => '¤J±b¦¨¥\¡I',
+ 'Connect to' => '³sµ²¨ì',
+ 'Contact' => '³sµ¸¤H',
+ 'Continue' => 'Ä~Äò',
+ 'Contra' => '¬Û¤Ï',
+ 'Copies' => '°Æ¥»',
+ 'Copy to COA' => '½Æ»s¨ì COA',
+ 'Cost' => '¦¨¥»',
+ 'Cost Center' => '¦¨¥»¤¤¤ß',
+ 'Could not save pricelist!' => '¤£¯àÀx¦s»ù®æ²M³æ¡I',
+ 'Could not save!' => '¤£¯àÀx¦s¡I',
+ 'Could not transfer Inventory!' => '¦s³f²M³æ¤£¯àÂಾ¡I',
+ 'Country' => '°ê®a',
+ 'Create Chart of Accounts' => '«Ø¥ß±b¤á¹Ïªí',
+ 'Create Dataset' => '«Ø¥ß¸ê®Æ¶°',
+ 'Credit' => '¶U¤è',
+ 'Credit Limit' => '«H¥ÎÃB«×',
+ 'Curr' => '¥Ø«e',
+ 'Currency' => '¹ô§O',
+ 'Current' => '²{¦³',
+ 'Current Earnings' => '²{¦³¦¬¯q',
+ 'Customer' => '«È¤á',
+ 'Customer History' => '«È¤á¾ú¥v',
+ 'Customer Number' => '«È¤á½s¸¹',
+ 'Customer deleted!' => '¤w§R°£«È¤á¡I',
+ 'Customer missing!' => '¥¼«ü©ú«È¤á¡I',
+ 'Customer not on file!' => '¨S¦³¦¹«È¤áªº°O¿ý¡I',
+ 'Customer saved!' => '¤wÀx¦s«È¤á¡I',
+ 'Customers' => '«È¤á',
+ 'DBI not installed!' => '¥¼¦w¸Ë DBI ¼Ò²Õ¡I',
+ 'DOB' => '¥X¥Í¤é´Á',
+ 'Database' => '¸ê®Æ®w',
+ 'Database Administration' => '¸ê®Æ®wºÞ²z',
+ 'Database Driver not checked!' => '¥¼¿ï©w¸ê®Æ®wÅX°Êµ{¦¡¡I',
+ 'Database Host' => '¸ê®Æ®w¥D¾÷',
+ 'Database User missing!' => '¥¼«ü©ú¸ê®Æ®w¨Ï¥ÎªÌ¡I',
+ 'Dataset' => '¸ê®Æ¶°',
+ 'Dataset is newer than version!' => '¸û·s¸ê®Æ¶°¡I',
+ 'Dataset missing!' => '¥¼«ü©ú¸ê®Æ¶°¡I',
+ 'Dataset updated!' => '¤w§ó·s¸ê®Æ¶°¡I',
+ 'Date' => '¤é´Á',
+ 'Date Format' => '¤é´Á®æ¦¡',
+ 'Date Paid' => '¥I´Ú¤é´Á',
+ 'Date Received' => '¦¬´Ú¤é´Á',
+ 'Date missing!' => '¥¼«ü©ú¤é´Á¡I',
+ 'Date received missing!' => '¥¼«ü©ú¦¬´Ú¤é´Á¡I',
+ 'Date worked' => '¤u§@¤é´Á',
+ 'Day' => '¤é',
+ 'Day(s)' => '¤é',
+ 'Days' => '¤é',
+ 'Debit' => '­É¤è',
+ 'Dec' => '¤Q¤G¤ë',
+ 'December' => '¤Q¤G¤ë',
+ 'Decimalplaces' => '¤p¼Æªº¦ì¸m',
+ 'Decrease' => '´î¤Ö',
+ 'Deduct after' => '´î¤Ö¥H«á',
+ 'Deduction deleted!' => '¤w§R°£´î¤Ö¡I',
+ 'Deduction saved!' => '¤wÀx¦s´î¤Ö¡I',
+ 'Deductions' => '´î°£ÃB',
+ 'Default Template' => '¹w³]¼Òª©',
+ 'Defaults' => '¹w³]',
+ 'Defaults saved!' => '¤wÀx¦s¹w³]¡I',
+ 'Delete' => '§R°£',
+ 'Delete Account' => '§R°£±b¤á',
+ 'Delete Dataset' => '§R°£¸ê®Æ¶°',
+ 'Delete Schedule' => '§R°£®É¶¡ªí',
+ 'Deleting a language will also delete the templates for the language' => '§R°£»y¨¥±N·|§R°£¥¦ªº¼Òª©',
+ 'Delivery Date' => '¨ì´Á¤é',
+ 'Department' => '³¡ªù',
+ 'Department deleted!' => '¤w§R°£³¡ªù¡I',
+ 'Department saved!' => '¤wÀx¦s³¡ªù¡I',
+ 'Departments' => '³¡ªù',
+ 'Deposit' => '¦s´Ú',
+ 'Description' => '»¡©ú',
+ 'Description Translations' => '½Ķ´y­z',
+ 'Description missing!' => '¥¼«ü©ú´y­z¡I',
+ 'Detail' => '¸Ô±¡',
+ 'Difference' => '®t²§',
+ 'Directory' => '¥Ø¿ý',
+ 'Discount' => '§é¦©',
+ 'Done' => '¤w§¹¦¨',
+ 'Drawing' => '¹Ïµe',
+ 'Driver' => 'ÅX°Êµ{¦¡',
+ 'Dropdown Limit' => '­­¨î',
+ 'Due Date' => '¨ì´Á¤é',
+ 'Due Date missing!' => '¥¼«ü©ú¨ì´Á¤é¡I',
+ 'E-mail' => '¹q¤l¶l¥ó',
+ 'E-mail Statement to' => '¹q¶l·|­p½ã¨ì',
+ 'E-mail address missing!' => '¥¼«ü©ú¹q¤l¶l¥ó¦ì§}¡I',
+ 'E-mail message' => '¹q¤l¶l¥ó°T®§',
+ 'E-mailed' => '¤w¹q¶l',
+ 'Edit' => '½s¿è',
+ 'Edit AP Transaction' => '½s¿èÀ³¥I¥æ©ö',
+ 'Edit AR Transaction' => '½s¿èÀ³¦¬¥æ©ö',
+ 'Edit Account' => '½s¿è±b¤á',
+ 'Edit Assembly' => '½s¿è»s¦¨«~',
+ 'Edit Business' => '½s¿è·~°È',
+ 'Edit Cash Transfer Transaction' => '½s¿è²{ª÷Âಾ',
+ 'Edit Customer' => '½s¿è«È¤á',
+ 'Edit Deduction' => '½s¿è´î°£ÃB',
+ 'Edit Department' => '½s¿è³¡ªù',
+ 'Edit Description Translations' => '½s¿è½Ķ´y­z',
+ 'Edit Employee' => '½s¿è¾­û',
+ 'Edit GIFI' => '½s¿èGIFI',
+ 'Edit General Ledger Transaction' => '½s¿èÁ`±b',
+ 'Edit Group' => '½s¿è²Õ§O',
+ 'Edit Job' => '½s¿è¤u§@',
+ 'Edit Labor/Overhead' => '½s¿èª½±µ¤H¤u/¸g±`¶O¥Î',
+ 'Edit Language' => '½s¿è»y¨¥',
+ 'Edit POS Invoice' => '½s¿èPOS',
+ 'Edit Part' => '½s¿è¹s¥ó',
+ 'Edit Preferences for' => '³]©w¨Ï¥ÎªÌ',
+ 'Edit Pricegroup' => '½s¿è»ù®æ²Õ§O',
+ 'Edit Project' => '½s¿è¶µ¥Ø',
+ 'Edit Purchase Order' => '½s¿è±ÄÁʳæ',
+ 'Edit Quotation' => '½s¿è³ø»ù³æ',
+ 'Edit Request for Quotation' => '½s¿è³ø»ù³æ­n¨D',
+ 'Edit SIC' => '½s¿è¼Ð·Ç¤u·~¤ÀÃþ¥N½X',
+ 'Edit Sales Invoice' => '½s¿è¾P°âµo²¼',
+ 'Edit Sales Order' => '½s¿è¾P³f³æ',
+ 'Edit Service' => '½s¿èªA°È',
+ 'Edit Template' => '½s¿è¼Òª©',
+ 'Edit Timecard' => '½s¿è¤u®É¥d',
+ 'Edit User' => '½s¿è¨Ï¥ÎªÌ',
+ 'Edit Vendor' => '½s¿è¨ÑÀ³°Ó',
+ 'Edit Vendor Invoice' => '½s¿è¨ÑÀ³°Óµo²¼',
+ 'Edit Warehouse' => '½s¿è­Ü®w',
+ 'Employee' => '¾­û',
+ 'Employee Name' => '¾­û©m¦W',
+ 'Employee Number' => '¾­û½s¸¹',
+ 'Employee deleted!' => '¤w§R°£Â¾­û¡I',
+ 'Employee pays' => '¥I´Úµ¹Â¾­û',
+ 'Employee saved!' => '¤wÀx¦s¾­û¡I',
+ 'Employees' => '¾­û',
+ 'Employer' => '¶±¥D',
+ 'Employer pays' => '¥I´Úµ¹¶±¥D',
+ 'Enddate' => 'µ²§ô¤é',
+ 'Ends' => '§¹µ²',
+ 'Enforce transaction reversal for all dates' => '±j¨î©Ò¦³¤é´Áªº¥æ©ö¦^´_',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => '½ÐÁä¤J¥H«_¸¹¤À¹jªº­^¤å¦r¥À, ¨C¶µ¤£¶W¹L¤T­Ó¦r (¦p CAD:USD:EUR), §@¬°±zªº¥»°ê¤Î¥~°ê³f¹ô',
+ 'Equity' => 'ªÑÅv',
+ 'Every' => '¨C',
+ 'Excempt age <' => '¤£¥]¬A¦~ÄÖ <',
+ 'Exch' => '¶×²v',
+ 'Exchange Rate' => '¶×²v',
+ 'Exchange rate for payment missing!' => '¥¼«ü©ú¥I´Úªº¶×²v¡I',
+ 'Exchange rate missing!' => '¥¼«ü©ú¶×²v¡I',
+ 'Existing Datasets' => '¬J¦³ªº¸ê®Æ¶°',
+ 'Expense' => '¶O¥Î',
+ 'Expense account does not exist!' => '¶O¥Î±b¤á¤£¦s¦b¡I',
+ 'Expense/Asset' => '¶O¥Î/¸ê²£',
+ 'Extended' => 'Á`»ù',
+ 'FX' => '¥~¹ô§I´«',
+ 'Failed to save order!' => 'Àx¦s­q³æ®É¥X¿ù¡I',
+ 'Fax' => '¶Ç¯u',
+ 'Feb' => '¤G¤ë',
+ 'February' => '¤G¤ë',
+ 'For' => '­«ÂÐ',
+ 'Foreign Exchange Gain' => '¥~¶×¦¬¯q',
+ 'Foreign Exchange Loss' => '¥~¶×·l¥¢',
+ 'Friday' => '¬P´Á¤­',
+ 'From' => '±q',
+ 'From Warehouse' => '±q³f­Ü',
+ 'GIFI' => '°]°È°T®§³q¥Î¯Á¤Þ(GIFI)',
+ 'GIFI deleted!' => 'GIFI¤w§R°£¡I',
+ 'GIFI missing!' => '¥¼«ü©ú GIFI¡I',
+ 'GIFI saved!' => '¤wÀx¦s¡I',
+ 'GL' => 'Á`±b',
+ 'GL Reference Number' => 'Á`±b¯Á¤Þ½s¸¹',
+ 'GL Transaction' => 'Á`±b¥æ©ö',
+ 'General Ledger' => 'Á`±b',
+ 'Generate' => '¥Í¦¨',
+ 'Generate Orders' => '¥Í¦¨­q³æ',
+ 'Generate Purchase Orders' => '¥Í¦¨±ÄÁʳæ',
+ 'Generate Purchase Orders from Sales Order' => '¥Ñ¾P³f³æ¥Í¦¨±ÄÁʳæ',
+ 'Generate Sales Order' => '¥Í¦¨¾P³f³æ',
+ 'Generate Sales Order from Purchase Orders' => '¥Ñ±ÄÁʳæ¥Í¦¨¾P³f³æ',
+ 'Generate Sales Orders' => '¥Í¦¨¾P³f³æ',
+ 'Goods & Services' => '³fª«¤ÎªA°È',
+ 'Group' => '²Õ§O',
+ 'Group Items' => '²Õ§Oªº¶µ¥Ø',
+ 'Group Translations' => '²Õ§OªºÂ½Ä¶',
+ 'Group deleted!' => '²Õ§O¤w³Q§R°£¡I',
+ 'Group missing!' => '¥¼«ü©ú²Õ§O¡I',
+ 'Group saved!' => '²Õ§O¤w³QÀx¦s¡I',
+ 'Groups' => '©Ò¦³²Õ§O',
+ 'HR' => '¤H¨ÆºÞ²z',
+ 'HTML Templates' => 'HTML ¼Òª©',
+ 'Heading' => '¼ÐÃD',
+ 'History' => '¾ú¥v',
+ 'Home Phone' => '¦í¦v¹q¸Ü',
+ 'Host' => '¥D¾÷',
+ 'Hostname missing!' => '¥¼«ü©ú¥D¾÷¦WºÙ¡I',
+ 'IBAN' => '°ê»Ú»È¦æ±b¸¹(IBAN)',
+ 'ID' => 'ÃѧO½s¸¹',
+ 'Image' => '¼v¹³',
+ 'In-line' => '¦æ¤º',
+ 'Inactive' => '«D¬¡ÅDªº',
+ 'Include Exchange Rate Difference' => '¥]§t¥~¶×®t¶Z',
+ 'Include Payment' => '¥]¬A¥I´Ú',
+ 'Include in Report' => '¤@¨ÖÅã¥Ü',
+ 'Include in drop-down menus' => '¥]§t¦b¤U©Ô¦¡¿ï³æ¤¤',
+ 'Income' => '¦¬¤J',
+ 'Income Statement' => '·l¯qªí',
+ 'Income account does not exist!' => '¦¬¤J±b¤á¤£¦s¦b¡I',
+ 'Incorrect Dataset version!' => '¸ê®Æ¶°ª©¥»¿ù»~¡I',
+ 'Increase' => '¼W¥[',
+ 'Individual Items' => '­Ó§Oªº¶µ¥Ø',
+ 'Internal Notes' => '¤º³¡³Æ§Ñ¿ý',
+ 'Inventory' => '®w¦s',
+ 'Inventory account does not exist!' => '®w¦s¼Æ±b¤á¤£¦s¦b¡I',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => '¦b°±¥Î¦¹»s¦¨«~¤§«e, ¦s³f¼Æ¶q¥²»Ý¬°¹s¡I',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => '°±¥Î¦¹¶µ¹s¥ó¤§«e, ¦s³f¼Æ¶q¥²»Ý¬°¹s¡I',
+ 'Inventory saved!' => '¤wÀx¦s¦s³f¡I',
+ 'Inventory transferred!' => 'Âಾªº¦s³f¡I',
+ 'Invoice' => 'µo²¼',
+ 'Invoice Date' => 'µo²¼¤é´Á',
+ 'Invoice Date missing!' => '¥¼«ü©úµo²¼¤é´Á¡I',
+ 'Invoice Number' => 'µo²¼½s¸¹',
+ 'Invoice Number missing!' => '¥¼«ü©úµo²¼½s¸¹¡I',
+ 'Invoice deleted!' => '¤w§R°£µo²¼¡I',
+ 'Invoices' => 'µo²¼',
+ 'Is this a summary account to record' => '¦¹¬°Á`µ²¬ì¥Ø¶Ü?',
+ 'Item already on pricelist!' => '¶µ¥Ø¤v¸g¦b»ù®æ²M³æ¤º¡I',
+ 'Item deleted!' => '¤w§R°£¶µ¥Ø¡I',
+ 'Item not on file!' => '¨S¦³¦¹¶µ¥Øªº°O¿ý¡I',
+ 'Items' => '¶µ¥Ø',
+ 'Jan' => '¤@¤ë',
+ 'January' => '¤@¤ë',
+ 'Job' => '¤u§@',
+ 'Job Name' => '¤u§@¦WºÙ',
+ 'Job Number' => '¤u§@½s¸¹',
+ 'Job Number missing!' => '¥¼«ü©ú¤u§@½s¸¹¡I',
+ 'Job deleted!' => '¤u§@¤w³Q§R°£¡I',
+ 'Job saved!' => '¤u§@¤w³QÀx¦s¡I',
+ 'Jobs' => '¤u§@',
+ 'Jul' => '¤C¤ë',
+ 'July' => '¤C¤ë',
+ 'Jun' => '¤»¤ë',
+ 'June' => '¤»¤ë',
+ 'LaTeX Templates' => 'LaTex ¼Òª©',
+ 'Labor Code' => 'ª½±µ¤H¤u¥N½X',
+ 'Labor/Overhead' => 'ª½±µ¤H¤u/¸g±`¶O¥Î',
+ 'Language' => '»y¨¥',
+ 'Language deleted!' => '¤w§R°£»y¨¥¡I',
+ 'Language saved!' => '¤wÀx¦s»y¨¥¡I',
+ 'Languages' => '»y¨¥',
+ 'Languages not defined!' => '¤£¯à¿ë»{»y¨¥¡I',
+ 'Last Cost' => '¤W¦¸ªº¦¨¥»',
+ 'Last Numbers & Default Accounts' => '¤W¤@µ§½s¸¹¤Î¹w³]±b¤á',
+ 'Lead' => '¥æ¥I®É¶¡',
+ 'Leadtime' => 'Á`»Ý®É',
+ 'Leave host and port field empty unless you want to make a remote connection.' => '°£«D±z·Q­n¶i¦æ»·ºÝ³s½u¡A§_«h½Ð±N¥D¾÷¤Î°ð¸¹¯d¥Õ¡C',
+ 'Liability' => '­t¶Å',
+ 'Licensed to' => '±ÂÅv¤©',
+ 'Line Total' => 'Á`¦C¼Æ',
+ 'Link' => '³sµ²',
+ 'Link Accounts' => '³sµ²±b¤á',
+ 'List' => '¦Cªí',
+ 'List Accounts' => '¦C¥X±b¸¹',
+ 'List Businesses' => '¦C¥X·~°È',
+ 'List Departments' => '¦C¥X³¡ªù',
+ 'List GIFI' => '¦C¥X GIFI',
+ 'List Languages' => '¦C¥X»y¨¥',
+ 'List Price' => '¦C¥X»ù',
+ 'List Projects' => '¦C¥X¶µ¥Ø',
+ 'List SIC' => '¦C¥X¼Ð·Ç¤u·~¤ÀÃþ¥N½X',
+ 'List Transactions' => '¦C¥X©Ò¦³¥æ©ö',
+ 'List Warehouses' => '¦C¥X­Ü®w',
+ 'Lock System' => '¨t²ÎÂê¤W',
+ 'Lockfile created!' => '¤w«Ø¥ß¤WÂêÀɮסI',
+ 'Lockfile removed!' => '¤w²¾°£¤WÂêÀɮסI',
+ 'Login' => 'µn¤J',
+ 'Login name missing!' => '¥¼«ü©úµn¤J¦W¦r¡I',
+ 'Logout' => 'µn¥X',
+ 'Make' => '¥Í²£°Ó',
+ 'Manager' => '¸g²z',
+ 'Mar' => '¤T¤ë',
+ 'March' => '¤T¤ë',
+ 'Marked entries printed!' => '¤w¦C¦L¦³°O¸¹ªº·|­p¶µ¥Ø¡I',
+ 'Markup' => 'º¦»ù',
+ 'Maximum' => '³Ì¤j',
+ 'May' => '¤­¤ë',
+ 'May ' => '¤­¤ë',
+ 'Memo' => '³Æ§Ñ¿ý',
+ 'Menu Width' => '¿ï¾Ü³æ¼e«×',
+ 'Message' => '°T®§',
+ 'Method' => '¤èªk',
+ 'Microfiche' => '³æ¤ùÁY¼v½¦¤ù',
+ 'Model' => '«¬¸¹',
+ 'Monday' => '¬P´Á¤@',
+ 'Month' => '¤ë',
+ 'Month(s)' => '¤ë',
+ 'Months' => '¤ë',
+ 'Multibyte Encoding' => '¦h¦r¤¸½s½X',
+ 'N/A' => '¤£¾A¥Î',
+ 'Name' => '¦WºÙ',
+ 'Name missing!' => '¥¼«ü©ú¦W¦r¡I',
+ 'New Templates' => '·s¼W¼Òª©',
+ 'New Window' => '·sµøµ¡',
+ 'Next' => '¤U¤@­Ó',
+ 'Next Date' => '¤U¤@¤é',
+ 'Next Number' => '¤U¤@­Ó¸¹½X',
+ 'No' => '§_',
+ 'No Database Drivers available!' => '¨S¦³¥i¥Îªº¸ê®Æ®wÅX°Êµ{¦¡¡I',
+ 'No Dataset selected!' => '¥¼¿ï©w¸ê®Æ¶°¡I',
+ 'No Employees on file!' => '¨S¦³¥ô¦ó¹µ­ûªº°O¿ý¡I',
+ 'No Labor codes on file!' => '¨S¦³¥ô¦óª½±µ¤H¤u¥N½Xªº°O¿ý¡I',
+ 'No email address for' => '¥¼«ü©ú¹q¤l¶l¥ó¦a§}',
+ 'No open Jobs!' => '¨S¦³¤w¶}±Òªº¤u§@',
+ 'No open Projects!' => '¨S¦³¤w¶}±Òªº¶µ¥Ø',
+ 'No.' => '½s¸¹',
+ 'Non-taxable' => '¤£À³½Òµ|',
+ 'Non-taxable Purchases' => '¤£À³½Òµ|ªº±ÄÁÊ',
+ 'Non-taxable Sales' => '¤£À³½Òµ|ªº¾P°â',
+ 'Non-tracking Items' => '¤£¥Î°lÂܪº¶µ¥Ø',
+ 'Notes' => '³Æµù',
+ 'Nothing entered!' => '¨S¦³¥ô¦ó¿é¤J¡I',
+ 'Nothing selected!' => '¨S¦³¿ï¾Ü¥ô¦óªF¦è¡I',
+ 'Nothing to delete!' => '¨S¦³¥i§R°£ªº¶µ¥Ø¡I',
+ 'Nothing to print!' => '¨S¦³¥i¦C¦Lªº¶µ¥Ø¡I',
+ 'Nothing to transfer!' => '¨S¦³¥iÂಾªº¶µ¥Ø¡I',
+ 'Nov' => '¤Q¤@¤ë',
+ 'November' => '¤Q¤@¤ë',
+ 'Number' => '½s¸¹',
+ 'Number Format' => '¼Æ¦r®æ¦¡',
+ 'Number missing in Row' => '¦¹¦C¤¤¯Ê¤Ö¼Æ­È',
+ 'O' => '',
+ 'OH' => '¤w¦³¦s¶q',
+ 'Obsolete' => '°±¥Î',
+ 'Oct' => '¤Q¤ë',
+ 'October' => '¤Q¤ë',
+ 'On Hand' => '¤w¦³¦s¶q',
+ 'Open' => '¶}±Ò',
+ 'Oracle Database Administration' => 'Oracle¸ê®Æ®wºÞ²z',
+ 'Order' => '­q³æ',
+ 'Order Date' => '¤U³æ¤é´Á',
+ 'Order Date missing!' => '¥¼«ü©ú¤U³æ¤é´Á¡I',
+ 'Order Entry' => '¤U³æ¶µ¥Ø',
+ 'Order Number' => '­q³æ½s¸¹',
+ 'Order Number missing!' => '¥¼«ü©ú­q³æ½s¸¹¡I',
+ 'Order deleted!' => '¤w§R°£­q³æ¡I',
+ 'Order generation failed!' => '¥Í¦¨­q³æ¥¢±Ñ¡I',
+ 'Order saved!' => '¤wÀx¦s­q³æ¡I',
+ 'Orders generated!' => '¤w¥Í¦¨­q³æ¡I',
+ 'Orphaned' => 'µL¥D',
+ 'Out of balance transaction!' => '¤£¨ó½Õ¥æ©ö¡I',
+ 'Out of balance!' => '¤£¥­¿Å¡I',
+ 'Outstanding' => '¥¼¦¬´Ú¥æ©ö',
+ 'PDF' => 'PDF',
+ 'PO Number' => '±ÄÁʳæ½s¸¹',
+ 'POS' => '¾P°âÂI(POS)',
+ 'POS Invoice' => 'POSµo²¼',
+ 'Packing List' => '¥X³f³æ',
+ 'Packing List Date missing!' => '¥¼«ü©ú¥X³f³æ¤é´Á¡I',
+ 'Packing List Number missing!' => '¥¼«ü©ú¥X³f³æ½s¸¹¡I',
+ 'Packing Lists' => '¥X³f³æ',
+ 'Paid' => '¤w¥I',
+ 'Part' => '¹s¥ó',
+ 'Part Number' => '¹s¥ó½s¸¹',
+ 'Partnumber' => '¹s¥ó½s¸¹',
+ 'Parts' => '¹s¥ó',
+ 'Password' => '±K½X',
+ 'Password changed!' => '±K½X¤w§ï¡I',
+ 'Password does not match!' => '±K½X¤£²Å¡I',
+ 'Passwords do not match!' => '±K½X¤£²Å¡I',
+ 'Payables' => 'À³¥I¬ì¥Ø',
+ 'Payment' => '¥I´Ú',
+ 'Payment date missing!' => '¥¼«ü©ú¥I´Ú¤é´Á¡I',
+ 'Payment posted!' => '¤w¥[¤J¥I´Ú¡I',
+ 'Payments' => '¥I´Ú',
+ 'Payments posted!' => '¤w¥[¤J¥I´Ú¡I',
+ 'Payroll Deduction' => 'Á~ª÷´î°£ÃB',
+ 'Period' => '´Á¶¡',
+ 'Pg Database Administration' => 'Pg¸ê®Æ®wºÞ²z',
+ 'PgPP Database Administration' => 'PgPP¸ê®Æ®wºÞ²z',
+ 'Phone' => '¹q¸Ü¸¹½X',
+ 'Pick List' => '´z³f²M³æ',
+ 'Pick Lists' => '´z³f²M³æ',
+ 'Port' => '°ð¸¹',
+ 'Port missing!' => '¥¼«ü©ú°ð¸¹¡I',
+ 'Pos' => '§Ç¸¹',
+ 'Post' => '¥[¤J',
+ 'Post as new' => '·í·sªº¥[¤J',
+ 'Posted!' => '¤w¥[¤J¡I',
+ 'Posting' => '¥¿¥[¤J',
+ 'Posting failed!' => '¥[¤J¥¢±Ñ¡I',
+ 'Postscript' => 'Postscript',
+ 'Preferences' => '­Ó¤H³]©w',
+ 'Preferences saved!' => '­Ó¤H³]©w¤wÀx¦s¡I',
+ 'Prepayment' => '¹wú',
+ 'Price' => '»ù®æ',
+ 'Pricegroup' => '»ù®æ²Õ§O',
+ 'Pricegroup deleted!' => '¤w§R°£»ù®æ²Õ§O¡I',
+ 'Pricegroup missing!' => '¥¼«ü©ú»ù®æ²Õ§O¡I',
+ 'Pricegroup saved!' => '¤wÀx¦s»ù®æ²Õ§O¡I',
+ 'Pricegroups' => '©Ò¦³»ù®æ²Õ§O',
+ 'Pricelist' => '»ù®æ²M³æ',
+ 'Print' => '¦C¦L',
+ 'Print and Post' => '¦C¦L¨Ã¥[¤J',
+ 'Print and Post as new' => '¦C¦L¨Ã¥[¤J§@¬°·sªº',
+ 'Print and Save' => '¦C¦L¨ÃÀx¦s',
+ 'Print and Save as new' => '¦C¦L¨ÃÀx¦s§@¬°·sªº',
+ 'Print and post as new' => '¦C¦L¨Ã¥[¤J§@¬°·sªº',
+ 'Print and save as new' => '¦C¦L¨ÃÀx¦s§@¬°·sªº',
+ 'Printed' => '¤w¦C¦L',
+ 'Printer' => '¦Lªí¾÷',
+ 'Printing' => '¥¿¦C¦L',
+ 'Printing ... ' => '¥¿¦C¦L¡E¡E¡E',
+ 'Process Transactions' => '³B²z©Ò¦³¥æ©ö',
+ 'Production' => '¥Í²£',
+ 'Profit Center' => '§Q¼í¤¤¤ß',
+ 'Project' => '¶µ¥Ø',
+ 'Project Description Translations' => '¶µ¥Ø´y­zªºÂ½Ä¶',
+ 'Project Name' => '¶µ¥Ø¦WºÙ',
+ 'Project Number' => '¶µ¥Ø¸¹½X',
+ 'Project Number missing!' => '¥¼«ü©ú¶µ¥Ø¸¹½X¡I',
+ 'Project Transactions' => '¶µ¥Ø¥æ©ö',
+ 'Project deleted!' => '¤w§R°£¶µ¥Ø¡I',
+ 'Project not on file!' => '¨S¦³¦¹¶µ¥Øªº°O¿ý¡I',
+ 'Project saved!' => '¤wÀx¦s¶µ¥Ø¡I',
+ 'Project/Job Name' => '¶µ¥Ø/¤u§@¦WºÙ',
+ 'Project/Job Number' => '¶µ¥Ø/¤u§@¸¹½X',
+ 'Projects' => '¶µ¥Ø',
+ 'Purchase Order' => '±ÄÁʳæ',
+ 'Purchase Order Number' => '±ÄÁʳæ½s¸¹',
+ 'Purchase Orders' => '±ÄÁʳæ',
+ 'Qty' => '¼Æ¶q',
+ 'Quantity exceeds available units to stock!' => '¼Æ¶q¶W¹L¥i®w¦sªº¼Æ¶q¡I',
+ 'Quarter' => '©u',
+ 'Quotation' => '³ø»ù³æ',
+ 'Quotation ' => '³ø»ù³æ ',
+ 'Quotation Date' => '³ø»ù³æ¤é´Á',
+ 'Quotation Date missing!' => '¥¼«ü©ú³ø»ù³æ¤é´Á¡I',
+ 'Quotation Number' => '³ø»ù³æ¸¹½X',
+ 'Quotation Number missing!' => '¥¼«ü©ú³ø»ù³æ¸¹½X¡I',
+ 'Quotation deleted!' => '¤w§R°£³ø»ù³æ¡I',
+ 'Quotations' => '³ø»ù³æ',
+ 'R' => '',
+ 'RFQ' => '³ø»ù½Ð¨D(RFQ) ',
+ 'RFQ ' => '³ø»ù½Ð¨D(RFQ) ',
+ 'RFQ Number' => '³ø»ù½Ð¨D¸¹½X',
+ 'RFQs' => '³ø»ù½Ð¨D',
+ 'ROP' => '¦A­qÂI',
+ 'Rate' => 'µ|²v',
+ 'Rate missing!' => '¥¼«ü©úµ|²v¡I',
+ 'Recd' => '¤w¦¬¨ì',
+ 'Receipt' => '¦¬¾Ú',
+ 'Receipt posted!' => '¤w¥[¤J¦¬¾Ú¡I',
+ 'Receipts' => '¦¬¾Ú',
+ 'Receivables' => 'À³¦¬±b¤á',
+ 'Receive' => '¦¬¨ì',
+ 'Receive Merchandise' => '¦¬¨ì³fª«',
+ 'Reconciliation' => '½Õ¸`',
+ 'Reconciliation Report' => '½Õ¸`³ø§i',
+ 'Record in' => '°O¿ý©ó',
+ 'Recurring Transaction' => '­«ÂÐ¥X²{ªº¥æ©ö',
+ 'Recurring Transactions' => '­«ÂÐ¥X²{ªº¥æ©ö',
+ 'Reference' => '°Ñ¦Ò¸ê®Æ',
+ 'Remaining' => '©|¾l',
+ 'Remove' => '²¾°£',
+ 'Remove Audit trails up to' => '²¾°£¼f®Ö½u¯Áª½¦Ü',
+ 'Removed spoolfiles!' => '²¾°£¦C¦L¼È¦sÀÉ®×',
+ 'Removing marked entries from queue ...' => '¥¿±q¶¤¦C¤¤²¾°£¦³°O¸¹ªº·|­p¶µ¥Ø',
+ 'Repeat' => '­«ÂÐ',
+ 'Report for' => '³øªí¨Ó·½',
+ 'Reports' => '³øªí',
+ 'Req' => '»Ý­n',
+ 'Request for Quotation' => '­n¨D³ø»ù³æ',
+ 'Request for Quotations' => '­n¨D³ø»ù³æ',
+ 'Required by' => '­n¨D¥æ¥I¤é´Á',
+ 'Retained Earnings' => '«O¯d¬Õ¾l',
+ 'Role' => '¥ô°È',
+ 'S' => '',
+ 'SIC' => '¼Ð·Ç¤u·~¤ÀÃþ¥N½X',
+ 'SIC deleted!' => '¤w§R°£¼Ð·Ç¤u·~¤ÀÃþ¥N½X¡I',
+ 'SIC saved!' => '¤wÀx¦s¼Ð·Ç¤u·~¤ÀÃþ¥N½X¡I',
+ 'SKU' => '®w¦s³æ¦ì',
+ 'SSN' => 'ªÀ·|«O»Ù½s¸¹',
+ 'Sale' => '¾P°â',
+ 'Sales' => '¾P°â',
+ 'Sales Invoice' => '¾P°âµo²¼',
+ 'Sales Invoice ' => '¾P°âµo²¼ ',
+ 'Sales Invoice.' => '¾P°âµo²¼¡C',
+ 'Sales Invoice/AR Transaction Number' => '¾P°âµo²¼/À³¦¬±b¥æ©ö½s¸¹',
+ 'Sales Invoices' => '¾P°âµo²¼',
+ 'Sales Order' => '¾P³f³æ',
+ 'Sales Order Number' => '¾P³f³æ½s¸¹',
+ 'Sales Orders' => '¾P³f³æ',
+ 'Sales Quotation Number' => '¾P°â³ø»ù³æ½s¸¹',
+ 'Salesperson' => '¾P°â¤H­û',
+ 'Saturday' => '¬P´Á¤»',
+ 'Save' => 'Àx¦s',
+ 'Save Pricelist' => 'Àx¦s»ù®æ²M³æ',
+ 'Save Schedule' => 'Àx¦s®É¶¡ªí',
+ 'Save as new' => '·í·sªºÀx¦s',
+ 'Save to File' => 'Àx¦s¦ÜÀÉ®×',
+ 'Saving' => '¥¿¦bÀx¦s',
+ 'Schedule' => '®É¶¡ªí',
+ 'Scheduled' => '½s±Æ¤F®É¶¡',
+ 'Screen' => '¿Ã¹õ',
+ 'Search' => '·j´M',
+ 'Select' => '¿ï¾Ü',
+ 'Select Customer' => '¿ï¾Ü«È¤á',
+ 'Select Vendor' => '¿ï¾Ü¨ÑÀ³°Ó',
+ 'Select a Printer!' => '¿ï¾Ü¦Lªí¾÷¡I',
+ 'Select a printer!' => '¿ï¾Ü¦Lªí¾÷¡I',
+ 'Select all' => '¥þ¿ï',
+ 'Select from one of the items below' => '©ó¤U¦C¶µ¥Ø¤¤¿ï¾Ü¤@¶µ',
+ 'Select from one of the names below' => '©ó¤U¦C©m¦W¤¤¿ï¾Ü¤@­Ó',
+ 'Select from one of the projects below' => '©ó¤U¦C¶µ¥Ø¤¤¿ï¾Ü¤@­Ó',
+ 'Select items' => '¿ï¾Ü¶µ¥Ø',
+ 'Select payment' => '¿ï¾Ü¥I´Ú',
+ 'Select postscript or PDF!' => '¿ï¾Üpostscript©ÎPDF¡I',
+ 'Select txt, postscript or PDF!' => '¿ï¾Ü¤å¦r¡Bpostscript©ÎPDF¡I',
+ 'Sell' => '°â½æ',
+ 'Sell Price' => '°â»ù',
+ 'Send by E-Mail' => '¥H¹q¤l¶l¥ó±H°e',
+ 'Sending' => '¥¿¦bµo°e',
+ 'Sep' => '¤E¤ë',
+ 'September' => '¤E¤ë',
+ 'Serial No.' => '§Ç¸¹',
+ 'Serial Number' => '§Ç¸¹',
+ 'Service' => 'ªA°È',
+ 'Service Code' => 'ªA°È½s¸¹',
+ 'Service/Labor Code' => 'ªA°È/ª½±µ¤H¤u½s¸¹',
+ 'Services' => 'ªA°È',
+ 'Session Timeout' => '¨Ï¥Î´Á(Session)ªøµu',
+ 'Session expired!' => '¨Ï¥Î´Á(Session)¤w¹L¡I',
+ 'Setup Templates' => '³]©w¼Òª©',
+ 'Ship' => '¥I¹B',
+ 'Ship Merchandise' => '¥I¹B³fª«',
+ 'Ship to' => '¥I¹B¦Ü',
+ 'Ship via' => '¥I¹B¤½¥q',
+ 'Shipping' => '¥I¹B',
+ 'Shipping Address' => '¥I¹B¦a§}',
+ 'Shipping Date' => '¥I¹B¤é´Á',
+ 'Shipping Date missing!' => '¥¼«ü©ú¥I¹B¤é´Á¡I',
+ 'Shipping Point' => '¥I¹B¦aÂI',
+ 'Short' => 'µu',
+ 'Signature' => 'ñ¦W',
+ 'Source' => '¨Ó·½',
+ 'Spoolfile' => '¦C¦L¼È¦s(spool)ÀÉ®×',
+ 'Standard' => '¼Ð·Ç',
+ 'Standard Industrial Codes' => '¼Ð·Ç¤u·~½s½X',
+ 'Startdate' => '¶}©l¤é´Á',
+ 'State' => '¦{',
+ 'State/Province' => '¬Ù',
+ 'Statement' => '·|­p±b',
+ 'Statement Balance' => '·|­p±b¾lÃB',
+ 'Statement sent to' => '·|­p±b¤w°e¦Ü',
+ 'Statements sent to printer!' => '·|­p±b¤w°e¦Ü¦Lªí¾÷¡I',
+ 'Stock' => '®w¦s',
+ 'Stock Assembly' => '§â»s¦¨«~¤J³f',
+ 'Stocking Date' => '¤J³f¤é´Á',
+ 'Stylesheet' => '¼Ë¦¡ªí',
+ 'Sub-contract GIFI' => 'Âà¥]¦X¦PGIFI',
+ 'Subject' => '¼ÐÃD',
+ 'Subtotal' => '¤p­p',
+ 'Summary' => 'ºK­n',
+ 'Sunday' => '¬P´Á¤é',
+ 'Supervisor' => '¥DºÞ',
+ 'System' => '¨t²Î',
+ 'System Defaults' => '¨t²Î¹w³]­È',
+ 'Tax' => 'µ|ª÷',
+ 'Tax Accounts' => 'µ|ª÷¬ì¥Ø',
+ 'Tax Included' => '¤w§tµ|ª÷',
+ 'Tax Number' => 'µ|¸¹',
+ 'Tax Number / SSN' => 'µ|¸¹/ªÀ·|«O»Ù½s¸¹',
+ 'Tax collected' => '¤w¦¬µ|ª÷',
+ 'Tax paid' => '¤w¥Iµ|ª÷',
+ 'Taxable' => 'À³µ|',
+ 'Template saved!' => '¤wÀx¦s¼Òª©¡I',
+ 'Templates' => '¼Òª©',
+ 'Terms' => '²¼´Á²b­p',
+ 'Text' => '¤å¦r',
+ 'Text Templates' => '¤å¦r¼Òª©',
+ 'The following Datasets are not in use and can be deleted' => '¤U¦C¸ê®Æ¶°¨Ã¥¼¨Ï¥Î¡A¥i¥H§R°£',
+ 'The following Datasets need to be updated' => '¤U¦C¸ê®Æ¶°»Ý­n§ó·s',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => '³o¬O¹ï¬J¦s¸ê®Æ¨Ó·½ªºªì¨BÀˬd¡C¦b¦¹¶¥¬q¡A¤£·|§R°£©Î·s¼W¥ô¦ó¸ê®Æ¡I',
+ 'Thursday' => '¬P´Á¥|',
+ 'Till' => 'ª½¨ì',
+ 'Time In' => '¤W¯Z®É¶¡',
+ 'Time Out' => '¤U¯Z®É¶¡',
+ 'Timecard' => '¤u®É¥d',
+ 'Timecard deleted!' => '¤u®É¥d¤w³Q§R°£¡I',
+ 'Timecard saved!' => '¤u®É¥d¤w³QÀx¦s¡I',
+ 'Timecards' => '¤u®É¥d',
+ 'Times' => '¦¸',
+ 'To' => '¦Ü',
+ 'To Warehouse' => '¨ì­Ü®w',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => '­Y­n·s¼W¸s²Õ¤ºªº¨Ï¥ÎªÌ¡A½Ð½s¿è¦WºÙ¡A§ó§ïµn¤J¦W¡AµM«áÀx¦s¡C³o¼Ë¤@¨Ó, ·s¨Ï¥ÎªÌ·|«O¯d¬Û¦PªºÅܼơA¨Ã¥H·sªºµn¤J¦W¦s¤J¡C',
+ 'Top Level' => '³»¼h',
+ 'Total' => 'Á`­p',
+ 'Tracking Items' => '»Ý­n°lÂܪº¶µ¥Ø',
+ 'Trade Discount' => '¶T©ö§é¦©',
+ 'Transaction' => '¥æ©ö',
+ 'Transaction Date missing!' => '¥¼«ü©ú¥æ©ö¤é´Á¡I',
+ 'Transaction Dates' => '¥æ©ö¤é´Á',
+ 'Transaction deleted!' => '¤w§R°£¥æ©ö¡I',
+ 'Transaction posted!' => '¤w¥[¤J¥æ©ö¡I',
+ 'Transaction reversal enforced for all dates' => '±j¨î¦^´_©Ò¦³¤é´Áªº¥æ©ö',
+ 'Transaction reversal enforced up to' => '±j¨î¦^´_¥æ©öª½¨ì',
+ 'Transactions' => '©Ò¦³¥æ©ö',
+ 'Transfer' => 'Âಾ',
+ 'Transfer Inventory' => 'Âಾ¦s³f',
+ 'Transfer from' => '¥Ñ³o¸Ì¨ú³f',
+ 'Transfer to' => '¦s³f¦Ü',
+ 'Translation' => '½Ķ',
+ 'Translation deleted!' => '¤w§R°£Â½Ä¶¡I',
+ 'Translation not on file!' => '¨S¦³¦¹Â½Ä¶ªº°O¿ý¡I',
+ 'Translations' => '½Ķ',
+ 'Translations saved!' => '¤wÀx¦s½Ķ¡I',
+ 'Trial Balance' => '¸Õºâªí',
+ 'Tuesday' => '¬P´Á¤G',
+ 'Type of Business' => '·~°ÈºØÃþ',
+ 'Unit' => '³æ¦ì',
+ 'Unit of measure' => '«×¶q³æ¦ì',
+ 'Unlock System' => '¨t²Î¸Ñ«Ê',
+ 'Update' => '§ó·s',
+ 'Update Dataset' => '§ó·s¸ê®Æ¶°',
+ 'Updated' => '¤w§ó·s',
+ 'Upgrading to Version' => '¥¿¤É¯Å¦Ü·sª©',
+ 'Use Templates' => '¨Ï¥Î¼Òª©',
+ 'User' => '¨Ï¥ÎªÌ',
+ 'User deleted!' => '¤w§R°£¨Ï¥ÎªÌ¡I',
+ 'User saved!' => '¤wÀx¦s¨Ï¥ÎªÌ¡I',
+ 'Valid until' => '¦³®Ä¦Ü',
+ 'Vendor' => '¨ÑÀ³°Ó',
+ 'Vendor History' => '¨ÑÀ³°Ó¾ú¥v',
+ 'Vendor Invoice' => '¨ÑÀ³°Óµo²¼',
+ 'Vendor Invoice ' => '¨ÑÀ³°Óµo²¼ ',
+ 'Vendor Invoice.' => '¨ÑÀ³°Óµo²¼¡C',
+ 'Vendor Invoice/AP Transaction Number' => '¨ÑÀ³°Óµo²¼/À³¥I±b¥æ©ö½s¸¹',
+ 'Vendor Invoices' => '¨ÑÀ³°Óµo²¼',
+ 'Vendor Number' => '¨ÑÀ³°Ó¸¹½X',
+ 'Vendor deleted!' => '¤w§R°£¨ÑÀ³°Ó¡I',
+ 'Vendor missing!' => '¥¼«ü©ú¨ÑÀ³°Ó¡I',
+ 'Vendor not on file!' => '¨S¦³¦¹¨ÑÀ³°Óªº°O¿ý¡I',
+ 'Vendor saved!' => '¤wÀx¦s¨ÑÀ³°Ó¡I',
+ 'Vendors' => '¨ÑÀ³°Ó',
+ 'Version' => 'ª©¥»',
+ 'Warehouse' => '­Ü®w',
+ 'Warehouse deleted!' => '¤w§R°£­Ü®w¡I',
+ 'Warehouse saved!' => '¤wÀx¦s­Ü®w¡I',
+ 'Warehouses' => '­Ü®w',
+ 'Warning!' => 'ĵ§i¡I',
+ 'Wednesday' => '¬P´Á¤T',
+ 'Week' => '¬P´Á',
+ 'Week(s)' => '¬P´Á',
+ 'Weeks' => '¬P´Á',
+ 'Weight' => '­«¶q',
+ 'Weight Unit' => '­«¶q³æ¦ì',
+ 'What type of item is this?' => '¦¹¶µ¥ØÄÝ©ó¬Æ»òÃþ§O¡H',
+ 'Work Order' => '¤u§@³æ',
+ 'Work Orders' => '¤u§@³æ',
+ 'Work Phone' => '¤u§@¹q¸Ü',
+ 'Year' => '¦~',
+ 'Year(s)' => '¦~',
+ 'Yearend' => '¦~µ²',
+ 'Yearend date missing!' => '¥¼«ü©ú¦~µ²¤é´Á¡I',
+ 'Yearend posted!' => '¤w¥[¤J¦~µ²¡I',
+ 'Yearend posting failed!' => '¦~µ²¥[¤J¥¢±Ñ¡I',
+ 'Years' => '¦~',
+ 'Yes' => '¬O',
+ 'You are logged out' => '§A¤wµn¥X',
+ 'You are posting an existing transaction!' => '±z¥¿¦b¥[¤J¤@­Ó²{¦sªº¥æ©ö¡I',
+ 'You are printing and posting an existing transaction!' => '±z¥¿¦b¦C¦L¤Î¥[¤J¤@­Ó²{¦sªº¥æ©ö¡I',
+ 'You are printing and saving an existing order' => '±z¥¿¦b¦C¦L¤ÎÀx¦s¤@±i²{¦sªº­q³æ¡I',
+ 'You are printing and saving an existing quotation' => '±z¥¿¦b¦C¦L¤ÎÀx¦s¤@±i²{¦sªº³ø»ù³æ¡I',
+ 'You are printing and saving an existing transaction!' => '±z¥¿¦b¦C¦L¤ÎÀx¦s¤@­Ó²{¦sªº¥æ©ö¡I',
+ 'You are saving an existing order' => '±z¥¿¦bÀx¦s¤@±i²{¦sªº­q³æ¡I',
+ 'You are saving an existing quotation' => '±z¥¿¦bÀx¦s¤@±i²{¦sªº³ø»ù³æ¡I',
+ 'You are saving an existing transaction!' => '±z¥¿¦bÀx¦s¤@­Ó²{¦sªº¥æ©ö¡I',
+ 'You did not enter a name!' => '§A¨Ã¥¼Áä¤J¦WºÙ¡I',
+ 'You must enter a host and port for local and remote connections!' => '±z¥²»ÝÁä¤J¥D¾÷¤Î°ð¸¹¡A¥H¶i¦æ¥»¾÷©Î»·ºÝ³s½u¡I',
+ 'Zip/Postal Code' => '¶l¬F½s½X',
+ 'account cannot be set to any other type of account' => '±b¤á¤£¯à³Q³]¸m¬°¨ä¥LÃþ«¬±b¤á',
+ 'as at' => 'ºI¦Ü',
+ 'days' => '¤é',
+ 'does not exist' => '¤£¦s¦b',
+ 'done' => '§¹¦¨',
+ 'ea' => '­Ó',
+ 'failed' => '¥¢±Ñ',
+ 'for' => '¬°¤F',
+ 'for Period' => '´Á¶¡',
+ 'is already a member!' => '¤w¸g¬O¦¨­û¤F¡I',
+ 'localhost' => '¥»¦a±H¥D',
+ 'locked!' => '¤wÂê¤W¡I',
+ 'partsgroup' => '¹s¥ó²Õ',
+ 'posted!' => '¤w¥[¤J¡I',
+ 'sent' => '¤w°e¥X',
+ 'successfully created!' => '¦¨¥\«Ø¥ß¡I',
+ 'successfully deleted!' => '¦¨¥\§R°£¡I',
+ 'time(s)' => '¦¸',
+ 'unexpected error!' => '¨S¦³¹w´Áªº¿ù»~¡I',
+ 'website' => 'ºô¯¸',
+};
+
+1;
diff --git a/locale/tw_big5/am b/locale/tw_big5/am
new file mode 100755
index 00000000..8986b3d6
--- /dev/null
+++ b/locale/tw_big5/am
@@ -0,0 +1,310 @@
+$self{charset} = 'BIG5';
+
+$self{texts} = {
+ 'AP' => 'À³¥I±b´Ú',
+ 'AR' => 'À³¦¬±b´Ú',
+ 'About' => 'Ãö©ó',
+ 'Account' => '±b¤á',
+ 'Account Number' => '±b¤á½s¸¹',
+ 'Account Number missing!' => '¥¼«ü©ú±b¤á½s¸¹¡I',
+ 'Account Type' => '±b¤áÃþ§O',
+ 'Account Type missing!' => '¥¼«ü©ú±b¤áÃþ§O¡I',
+ 'Account deleted!' => '¤w§R°£±b¤á¡I',
+ 'Account does not exist!' => '¤£¦s¦b±b¤á¡I',
+ 'Account saved!' => '¤wÀx¦s±b¤á¡I',
+ 'Accounting Menu' => '·|­p¿ï³æ',
+ 'Accrual' => 'À³­p°ò¦',
+ 'Add Account' => '·s¼W±b¤á',
+ 'Add Business' => '·s¼W·~°È',
+ 'Add Department' => '·s¼W³¡ªù',
+ 'Add GIFI' => '·s¼WGIFI',
+ 'Add Language' => '·s¼W»y¨¥',
+ 'Add SIC' => '·s¼W¼Ð·Ç¤u·~¤ÀÃþ¥N½X',
+ 'Add Warehouse' => '·s¼W­Ü®w',
+ 'Address' => '¦a§}',
+ 'Amount' => 'ª÷ÃB',
+ 'Asset' => '¸ê²£',
+ 'Audit Control' => '¼f®Ö±±¨î',
+ 'Audit trail removed up to' => '²¾°£¨ì¦¹¬°¤îªº¼f®Ö½u¯Á',
+ 'Backup sent to' => '³Æ¥÷±H°e¨ì',
+ 'Bin List' => '½cªº©ú²Óªí',
+ 'Books are open' => '±bï¤w¶}±Ò',
+ 'Business Number' => '·~°È½s¸¹',
+ 'Business deleted!' => '¤w§R°£·~°È¡I',
+ 'Business saved!' => '¤wÀx¦s·~°È¡I',
+ 'COGS' => '³f¾P¦¨¥»',
+ 'Cannot delete account!' => '¤£¯à§R°£±b¤á¡I',
+ 'Cannot delete default account!' => '¤£¯à§R°£¹w³]±b¤á¡I',
+ 'Cannot save account!' => '¤£¯àÀx¦s±b¤á¡I',
+ 'Cannot save defaults!' => '¤£¯àÀx¦s¹w³]¡I',
+ 'Cannot save preferences!' => '¤£¯àÀx¦sÀu¥ý¿ï¾Ü¡I',
+ 'Cannot set account for more than one of AR, AP or IC' => '¤£¯à³]¸m¦h©ó¤@­ÓÀ³¦¬±b´Ú, À³¥I±b´Ú©ÎIC',
+ 'Cannot set multiple options for' => '¤£¯à¹ï¥H¤Uª«¥ó³]©w¦h­Ó¿ï¶µ¡G',
+ 'Cash' => '²{ª÷',
+ 'Chart of Accounts' => '·|­p¬ì¥Øªí',
+ 'Close Books up to' => 'Ãö³¬¨ì¦¹¬°¤îªº±bï¡G',
+ 'Code' => '½s½X',
+ 'Code missing!' => '¥¼«ü©ú½s½X¡I',
+ 'Company' => '¤½¥q',
+ 'Confirm' => '½T»{',
+ 'Confirm!' => '¤J±b¦¨¥\¡I',
+ 'Continue' => 'Ä~Äò',
+ 'Contra' => '¬Û¤Ï',
+ 'Copy to COA' => '½Æ»s¨ì COA',
+ 'Cost Center' => '¦¨¥»¤¤¤ß',
+ 'Credit' => '¶U¤è',
+ 'Customer Number' => '«È¤á½s¸¹',
+ 'Database Host' => '¸ê®Æ®w¥D¾÷',
+ 'Dataset' => '¸ê®Æ¶°',
+ 'Date Format' => '¤é´Á®æ¦¡',
+ 'Day' => '¤é',
+ 'Days' => '¤é',
+ 'Debit' => '­É¤è',
+ 'Default Template' => '¹w³]¼Òª©',
+ 'Defaults saved!' => '¤wÀx¦s¹w³]¡I',
+ 'Delete' => '§R°£',
+ 'Delete Account' => '§R°£±b¤á',
+ 'Deleting a language will also delete the templates for the language' => '§R°£»y¨¥±N·|§R°£¥¦ªº¼Òª©',
+ 'Department deleted!' => '¤w§R°£³¡ªù¡I',
+ 'Department saved!' => '¤wÀx¦s³¡ªù¡I',
+ 'Departments' => '³¡ªù',
+ 'Description' => '»¡©ú',
+ 'Description missing!' => '¥¼«ü©ú´y­z¡I',
+ 'Discount' => '§é¦©',
+ 'Dropdown Limit' => '­­¨î',
+ 'E-mail' => '¹q¤l¶l¥ó',
+ 'E-mail address missing!' => '¥¼«ü©ú¹q¤l¶l¥ó¦ì§}¡I',
+ 'Edit' => '½s¿è',
+ 'Edit Account' => '½s¿è±b¤á',
+ 'Edit Business' => '½s¿è·~°È',
+ 'Edit Department' => '½s¿è³¡ªù',
+ 'Edit GIFI' => '½s¿èGIFI',
+ 'Edit Language' => '½s¿è»y¨¥',
+ 'Edit Preferences for' => '³]©w¨Ï¥ÎªÌ',
+ 'Edit SIC' => '½s¿è¼Ð·Ç¤u·~¤ÀÃþ¥N½X',
+ 'Edit Template' => '½s¿è¼Òª©',
+ 'Edit Warehouse' => '½s¿è­Ü®w',
+ 'Employee Number' => '¾­û½s¸¹',
+ 'Ends' => '§¹µ²',
+ 'Enforce transaction reversal for all dates' => '±j¨î©Ò¦³¤é´Áªº¥æ©ö¦^´_',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => '½ÐÁä¤J¥H«_¸¹¤À¹jªº­^¤å¦r¥À, ¨C¶µ¤£¶W¹L¤T­Ó¦r (¦p CAD:USD:EUR), §@¬°±zªº¥»°ê¤Î¥~°ê³f¹ô',
+ 'Equity' => 'ªÑÅv',
+ 'Every' => '¨C',
+ 'Expense' => '¶O¥Î',
+ 'Expense/Asset' => '¶O¥Î/¸ê²£',
+ 'Fax' => '¶Ç¯u',
+ 'Foreign Exchange Gain' => '¥~¶×¦¬¯q',
+ 'Foreign Exchange Loss' => '¥~¶×·l¥¢',
+ 'GIFI' => '°]°È°T®§³q¥Î¯Á¤Þ(GIFI)',
+ 'GIFI deleted!' => 'GIFI¤w§R°£¡I',
+ 'GIFI missing!' => '¥¼«ü©ú GIFI¡I',
+ 'GIFI saved!' => '¤wÀx¦s¡I',
+ 'GL' => 'Á`±b',
+ 'GL Reference Number' => 'Á`±b¯Á¤Þ½s¸¹',
+ 'GL Transaction' => 'Á`±b¥æ©ö',
+ 'Heading' => '¼ÐÃD',
+ 'ID' => 'ÃѧO½s¸¹',
+ 'Include in drop-down menus' => '¥]§t¦b¤U©Ô¦¡¿ï³æ¤¤',
+ 'Income' => '¦¬¤J',
+ 'Inventory' => '®w¦s',
+ 'Invoice' => 'µo²¼',
+ 'Is this a summary account to record' => '¦¹¬°Á`µ²¬ì¥Ø¶Ü?',
+ 'Language' => '»y¨¥',
+ 'Language deleted!' => '¤w§R°£»y¨¥¡I',
+ 'Language saved!' => '¤wÀx¦s»y¨¥¡I',
+ 'Languages' => '»y¨¥',
+ 'Last Numbers & Default Accounts' => '¤W¤@µ§½s¸¹¤Î¹w³]±b¤á',
+ 'Liability' => '­t¶Å',
+ 'Licensed to' => '±ÂÅv¤©',
+ 'Link' => '³sµ²',
+ 'Menu Width' => '¿ï¾Ü³æ¼e«×',
+ 'Method' => '¤èªk',
+ 'Month' => '¤ë',
+ 'Months' => '¤ë',
+ 'Name' => '¦WºÙ',
+ 'Next' => '¤U¤@­Ó',
+ 'Next Number' => '¤U¤@­Ó¸¹½X',
+ 'No' => '§_',
+ 'No email address for' => '¥¼«ü©ú¹q¤l¶l¥ó¦a§}',
+ 'Non-tracking Items' => '¤£¥Î°lÂܪº¶µ¥Ø',
+ 'Number' => '½s¸¹',
+ 'Number Format' => '¼Æ¦r®æ¦¡',
+ 'PDF' => 'PDF',
+ 'Packing List' => '¥X³f³æ',
+ 'Part Number' => '¹s¥ó½s¸¹',
+ 'Password' => '±K½X',
+ 'Password does not match!' => '±K½X¤£²Å¡I',
+ 'Payables' => 'À³¥I¬ì¥Ø',
+ 'Payment' => '¥I´Ú',
+ 'Phone' => '¹q¸Ü¸¹½X',
+ 'Pick List' => '´z³f²M³æ',
+ 'Posting' => '¥¿¥[¤J',
+ 'Postscript' => 'Postscript',
+ 'Preferences saved!' => '­Ó¤H³]©w¤wÀx¦s¡I',
+ 'Print' => '¦C¦L',
+ 'Printer' => '¦Lªí¾÷',
+ 'Printing' => '¥¿¦C¦L',
+ 'Process Transactions' => '³B²z©Ò¦³¥æ©ö',
+ 'Profit Center' => '§Q¼í¤¤¤ß',
+ 'Purchase Order' => '±ÄÁʳæ',
+ 'Purchase Order Number' => '±ÄÁʳæ½s¸¹',
+ 'Purchase Orders' => '±ÄÁʳæ',
+ 'RFQ Number' => '³ø»ù½Ð¨D¸¹½X',
+ 'Rate' => 'µ|²v',
+ 'Receivables' => 'À³¦¬±b¤á',
+ 'Recurring Transactions' => '­«ÂÐ¥X²{ªº¥æ©ö',
+ 'Reference' => '°Ñ¦Ò¸ê®Æ',
+ 'Retained Earnings' => '«O¯d¬Õ¾l',
+ 'SIC deleted!' => '¤w§R°£¼Ð·Ç¤u·~¤ÀÃþ¥N½X¡I',
+ 'SIC saved!' => '¤wÀx¦s¼Ð·Ç¤u·~¤ÀÃþ¥N½X¡I',
+ 'Sales Invoice' => '¾P°âµo²¼',
+ 'Sales Invoice/AR Transaction Number' => '¾P°âµo²¼/À³¦¬±b¥æ©ö½s¸¹',
+ 'Sales Order' => '¾P³f³æ',
+ 'Sales Order Number' => '¾P³f³æ½s¸¹',
+ 'Sales Orders' => '¾P³f³æ',
+ 'Sales Quotation Number' => '¾P°â³ø»ù³æ½s¸¹',
+ 'Save' => 'Àx¦s',
+ 'Save as new' => '·í·sªºÀx¦s',
+ 'Saving' => '¥¿¦bÀx¦s',
+ 'Sending' => '¥¿¦bµo°e',
+ 'Session Timeout' => '¨Ï¥Î´Á(Session)ªøµu',
+ 'Signature' => 'ñ¦W',
+ 'Standard Industrial Codes' => '¼Ð·Ç¤u·~½s½X',
+ 'Stylesheet' => '¼Ë¦¡ªí',
+ 'System Defaults' => '¨t²Î¹w³]­È',
+ 'Tax' => 'µ|ª÷',
+ 'Template saved!' => '¤wÀx¦s¼Òª©¡I',
+ 'Times' => '¦¸',
+ 'Tracking Items' => '»Ý­n°lÂܪº¶µ¥Ø',
+ 'Transaction' => '¥æ©ö',
+ 'Transaction reversal enforced for all dates' => '±j¨î¦^´_©Ò¦³¤é´Áªº¥æ©ö',
+ 'Transaction reversal enforced up to' => '±j¨î¦^´_¥æ©öª½¨ì',
+ 'Type of Business' => '·~°ÈºØÃþ',
+ 'Update' => '§ó·s',
+ 'User' => '¨Ï¥ÎªÌ',
+ 'Vendor Invoice' => '¨ÑÀ³°Óµo²¼',
+ 'Vendor Invoice/AP Transaction Number' => '¨ÑÀ³°Óµo²¼/À³¥I±b¥æ©ö½s¸¹',
+ 'Vendor Number' => '¨ÑÀ³°Ó¸¹½X',
+ 'Version' => 'ª©¥»',
+ 'Warehouse deleted!' => '¤w§R°£­Ü®w¡I',
+ 'Warehouse saved!' => '¤wÀx¦s­Ü®w¡I',
+ 'Warehouses' => '­Ü®w',
+ 'Week' => '¬P´Á',
+ 'Weeks' => '¬P´Á',
+ 'Weight Unit' => '­«¶q³æ¦ì',
+ 'Work Order' => '¤u§@³æ',
+ 'Year' => '¦~',
+ 'Yearend' => '¦~µ²',
+ 'Yearend date missing!' => '¥¼«ü©ú¦~µ²¤é´Á¡I',
+ 'Yearend posted!' => '¤w¥[¤J¦~µ²¡I',
+ 'Yearend posting failed!' => '¦~µ²¥[¤J¥¢±Ñ¡I',
+ 'Years' => '¦~',
+ 'Yes' => '¬O',
+ 'account cannot be set to any other type of account' => '±b¤á¤£¯à³Q³]¸m¬°¨ä¥LÃþ«¬±b¤á',
+ 'done' => '§¹¦¨',
+ 'failed' => '¥¢±Ñ',
+ 'localhost' => '¥»¦a±H¥D',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ '·s¼w±b¤á' => 'add_account',
+ '·s¼w·~°È' => 'add_business',
+ '·s¼w³¡ªù' => 'add_department',
+ '·s¼w»y¨¥' => 'add_language',
+ '·s¼w¼Ð·Ç¤u·~¤ÀÃþ¥n½x' => 'add_sic',
+ '·s¼w­Ü®w' => 'add_warehouse',
+ 'Ä~Äò' => 'continue',
+ '½Æ»s¨ì_coa' => 'copy_to_coa',
+ '§r°£' => 'delete',
+ '½s¿è' => 'edit',
+ '½s¿è±b¤á' => 'edit_account',
+ '³b²z©Ò¦³¥æ©ö' => 'process_transactions',
+ 'Àx¦s' => 'save',
+ '·í·sªºÀx¦s' => 'save_as_new',
+ '§ó·s' => 'update',
+};
+
+1;
+
diff --git a/locale/tw_big5/ap b/locale/tw_big5/ap
new file mode 100755
index 00000000..b7ac8c42
--- /dev/null
+++ b/locale/tw_big5/ap
@@ -0,0 +1,242 @@
+$self{charset} = 'BIG5';
+
+$self{texts} = {
+ 'AP Outstanding' => 'À³¥I¥¼¥I',
+ 'AP Transaction' => 'À³¥I¥æ©ö',
+ 'AP Transactions' => 'À³¥I¥æ©ö',
+ 'AR Outstanding' => 'À³¦¬¥¼¦¬',
+ 'AR Transaction' => 'À³¦¬¥æ©ö',
+ 'AR Transactions' => 'À³¦¬¥æ©ö',
+ 'Account' => '±b¤á',
+ 'Accounting Menu' => '·|­p¿ï³æ',
+ 'Add AP Transaction' => '·s¼WÀ³¥I¥æ©ö',
+ 'Add AR Transaction' => '·s¼WÀ³¦¬¥æ©ö',
+ 'Address' => '¦a§}',
+ 'Amount' => 'ª÷ÃB',
+ 'Amount Due' => '¨ì´Áª÷ÃB',
+ 'Apr' => '¥|¤ë',
+ 'April' => '¥|¤ë',
+ 'Are you sure you want to delete Transaction' => '±z¬O§_½T©w­n§R°£¥æ©ö',
+ 'Aug' => '¤K¤ë',
+ 'August' => '¤K¤ë',
+ 'Bcc' => '¤£Åã¥Ü§Û°e',
+ 'Cannot delete transaction!' => '¤£¯à§R°£¥æ©ö¡I',
+ 'Cannot post payment for a closed period!' => '¤£¯à¦b¤wÃö³¬ªº®É¬q¤º¥[¤J´Ú¶µ¡I',
+ 'Cannot post transaction for a closed period!' => '¤£¯à¦b¤wÃö³¬ªº®É¬q¤º¥[¤J¥æ©ö¡I',
+ 'Cannot post transaction!' => '¤£¯à¥[¤J¥æ©ö¡I',
+ 'Cc' => '§Û°e',
+ 'Check' => 'Àˬd',
+ 'Closed' => '¤wÃö³¬',
+ 'Confirm!' => '¤J±b¦¨¥\¡I',
+ 'Continue' => 'Ä~Äò',
+ 'Credit' => '¶U¤è',
+ 'Credit Limit' => '«H¥ÎÃB«×',
+ 'Curr' => '¥Ø«e',
+ 'Currency' => '¹ô§O',
+ 'Current' => '²{¦³',
+ 'Customer' => '«È¤á',
+ 'Customer missing!' => '¥¼«ü©ú«È¤á¡I',
+ 'Customer not on file!' => '¨S¦³¦¹«È¤áªº°O¿ý¡I',
+ 'Date' => '¤é´Á',
+ 'Date Paid' => '¥I´Ú¤é´Á',
+ 'Day(s)' => '¤é',
+ 'Debit' => '­É¤è',
+ 'Dec' => '¤Q¤G¤ë',
+ 'December' => '¤Q¤G¤ë',
+ 'Delete' => '§R°£',
+ 'Delete Schedule' => '§R°£®É¶¡ªí',
+ 'Department' => '³¡ªù',
+ 'Description' => '»¡©ú',
+ 'Detail' => '¸Ô±¡',
+ 'Due Date' => '¨ì´Á¤é',
+ 'Due Date missing!' => '¥¼«ü©ú¨ì´Á¤é¡I',
+ 'E-mail' => '¹q¤l¶l¥ó',
+ 'E-mail message' => '¹q¤l¶l¥ó°T®§',
+ 'Edit AP Transaction' => '½s¿èÀ³¥I¥æ©ö',
+ 'Edit AR Transaction' => '½s¿èÀ³¦¬¥æ©ö',
+ 'Employee' => '¾­û',
+ 'Every' => '¨C',
+ 'Exch' => '¶×²v',
+ 'Exchange Rate' => '¶×²v',
+ 'Exchange rate for payment missing!' => '¥¼«ü©ú¥I´Úªº¶×²v¡I',
+ 'Exchange rate missing!' => '¥¼«ü©ú¶×²v¡I',
+ 'Feb' => '¤G¤ë',
+ 'February' => '¤G¤ë',
+ 'For' => '­«ÂÐ',
+ 'From' => '±q',
+ 'ID' => 'ÃѧO½s¸¹',
+ 'Include Payment' => '¥]¬A¥I´Ú',
+ 'Include in Report' => '¤@¨ÖÅã¥Ü',
+ 'Invoice' => 'µo²¼',
+ 'Invoice Date' => 'µo²¼¤é´Á',
+ 'Invoice Date missing!' => '¥¼«ü©úµo²¼¤é´Á¡I',
+ 'Invoice Number' => 'µo²¼½s¸¹',
+ 'Jan' => '¤@¤ë',
+ 'January' => '¤@¤ë',
+ 'Jul' => '¤C¤ë',
+ 'July' => '¤C¤ë',
+ 'Jun' => '¤»¤ë',
+ 'June' => '¤»¤ë',
+ 'Manager' => '¸g²z',
+ 'Mar' => '¤T¤ë',
+ 'March' => '¤T¤ë',
+ 'May' => '¤­¤ë',
+ 'May ' => '¤­¤ë',
+ 'Memo' => '³Æ§Ñ¿ý',
+ 'Message' => '°T®§',
+ 'Month' => '¤ë',
+ 'Month(s)' => '¤ë',
+ 'Next Date' => '¤U¤@¤é',
+ 'No.' => '½s¸¹',
+ 'Notes' => '³Æµù',
+ 'Nothing to print!' => '¨S¦³¥i¦C¦Lªº¶µ¥Ø¡I',
+ 'Nov' => '¤Q¤@¤ë',
+ 'November' => '¤Q¤@¤ë',
+ 'Number' => '½s¸¹',
+ 'Oct' => '¤Q¤ë',
+ 'October' => '¤Q¤ë',
+ 'Open' => '¶}±Ò',
+ 'Order' => '­q³æ',
+ 'Order Number' => '­q³æ½s¸¹',
+ 'PDF' => 'PDF',
+ 'PO Number' => '±ÄÁʳæ½s¸¹',
+ 'Paid' => '¤w¥I',
+ 'Payment date missing!' => '¥¼«ü©ú¥I´Ú¤é´Á¡I',
+ 'Payments' => '¥I´Ú',
+ 'Period' => '´Á¶¡',
+ 'Post' => '¥[¤J',
+ 'Post as new' => '·í·sªº¥[¤J',
+ 'Postscript' => 'Postscript',
+ 'Print' => '¦C¦L',
+ 'Print and Post' => '¦C¦L¨Ã¥[¤J',
+ 'Print and Post as new' => '¦C¦L¨Ã¥[¤J§@¬°·sªº',
+ 'Printed' => '¤w¦C¦L',
+ 'Project' => '¶µ¥Ø',
+ 'Project not on file!' => '¨S¦³¦¹¶µ¥Øªº°O¿ý¡I',
+ 'Quarter' => '©u',
+ 'Receipt' => '¦¬¾Ú',
+ 'Recurring Transaction' => '­«ÂÐ¥X²{ªº¥æ©ö',
+ 'Reference' => '°Ñ¦Ò¸ê®Æ',
+ 'Remaining' => '©|¾l',
+ 'Repeat' => '­«ÂÐ',
+ 'Sales Invoice.' => '¾P°âµo²¼¡C',
+ 'Salesperson' => '¾P°â¤H­û',
+ 'Save Schedule' => 'Àx¦s®É¶¡ªí',
+ 'Schedule' => '®É¶¡ªí',
+ 'Scheduled' => '½s±Æ¤F®É¶¡',
+ 'Screen' => '¿Ã¹õ',
+ 'Select a Printer!' => '¿ï¾Ü¦Lªí¾÷¡I',
+ 'Select from one of the names below' => '©ó¤U¦C©m¦W¤¤¿ï¾Ü¤@­Ó',
+ 'Select from one of the projects below' => '©ó¤U¦C¶µ¥Ø¤¤¿ï¾Ü¤@­Ó',
+ 'Select payment' => '¿ï¾Ü¥I´Ú',
+ 'Select postscript or PDF!' => '¿ï¾Üpostscript©ÎPDF¡I',
+ 'Sep' => '¤E¤ë',
+ 'September' => '¤E¤ë',
+ 'Ship to' => '¥I¹B¦Ü',
+ 'Ship via' => '¥I¹B¤½¥q',
+ 'Shipping Point' => '¥I¹B¦aÂI',
+ 'Source' => '¨Ó·½',
+ 'Startdate' => '¶}©l¤é´Á',
+ 'Subject' => '¼ÐÃD',
+ 'Subtotal' => '¤p­p',
+ 'Summary' => 'ºK­n',
+ 'Tax' => 'µ|ª÷',
+ 'Tax Included' => '¤w§tµ|ª÷',
+ 'Till' => 'ª½¨ì',
+ 'To' => '¦Ü',
+ 'Total' => 'Á`­p',
+ 'Transaction' => '¥æ©ö',
+ 'Transaction deleted!' => '¤w§R°£¥æ©ö¡I',
+ 'Transaction posted!' => '¤w¥[¤J¥æ©ö¡I',
+ 'Update' => '§ó·s',
+ 'Vendor' => '¨ÑÀ³°Ó',
+ 'Vendor Invoice.' => '¨ÑÀ³°Óµo²¼¡C',
+ 'Vendor missing!' => '¥¼«ü©ú¨ÑÀ³°Ó¡I',
+ 'Vendor not on file!' => '¨S¦³¦¹¨ÑÀ³°Óªº°O¿ý¡I',
+ 'Warning!' => 'ĵ§i¡I',
+ 'Week(s)' => '¬P´Á',
+ 'Year' => '¦~',
+ 'Year(s)' => '¦~',
+ 'Yes' => '¬O',
+ 'You are posting an existing transaction!' => '±z¥¿¦b¥[¤J¤@­Ó²{¦sªº¥æ©ö¡I',
+ 'You are printing and posting an existing transaction!' => '±z¥¿¦b¦C¦L¤Î¥[¤J¤@­Ó²{¦sªº¥æ©ö¡I',
+ 'You are printing and saving an existing order' => '±z¥¿¦b¦C¦L¤ÎÀx¦s¤@±i²{¦sªº­q³æ¡I',
+ 'You are printing and saving an existing quotation' => '±z¥¿¦b¦C¦L¤ÎÀx¦s¤@±i²{¦sªº³ø»ù³æ¡I',
+ 'You are saving an existing order' => '±z¥¿¦bÀx¦s¤@±i²{¦sªº­q³æ¡I',
+ 'You are saving an existing quotation' => '±z¥¿¦bÀx¦s¤@±i²{¦sªº³ø»ù³æ¡I',
+ 'for' => '¬°¤F',
+ 'sent' => '¤w°e¥X',
+ 'time(s)' => '¦¸',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'À³¥i¥æ©ö' => 'ap_transaction',
+ 'À³¦¬¥æ©ö' => 'ar_transaction',
+ 'Ä~Äò' => 'continue',
+ '§r°£' => 'delete',
+ '§r°£®É¶¡ªí' => 'delete_schedule',
+ '¥[¤j' => 'post',
+ '·í·sªº¥[¤j' => 'post_as_new',
+ '¦c¦l' => 'print',
+ '¦c¦l¨Ã¥[¤j' => 'print_and_post',
+ '¦c¦l¨Ã¥[¤j§@¬°·sªº' => 'print_and_post_as_new',
+ '¾p°âµo²¼¡c' => 'sales_invoice_',
+ 'Àx¦s®É¶¡ªí' => 'save_schedule',
+ '®É¶¡ªí' => 'schedule',
+ '¥i¹b¦Ü' => 'ship_to',
+ '§ó·s' => 'update',
+ '¨ÑÀ³°Óµo²¼¡c' => 'vendor_invoice_',
+ '¬o' => 'yes',
+};
+
+1;
+
diff --git a/locale/tw_big5/ar b/locale/tw_big5/ar
new file mode 100755
index 00000000..b7ac8c42
--- /dev/null
+++ b/locale/tw_big5/ar
@@ -0,0 +1,242 @@
+$self{charset} = 'BIG5';
+
+$self{texts} = {
+ 'AP Outstanding' => 'À³¥I¥¼¥I',
+ 'AP Transaction' => 'À³¥I¥æ©ö',
+ 'AP Transactions' => 'À³¥I¥æ©ö',
+ 'AR Outstanding' => 'À³¦¬¥¼¦¬',
+ 'AR Transaction' => 'À³¦¬¥æ©ö',
+ 'AR Transactions' => 'À³¦¬¥æ©ö',
+ 'Account' => '±b¤á',
+ 'Accounting Menu' => '·|­p¿ï³æ',
+ 'Add AP Transaction' => '·s¼WÀ³¥I¥æ©ö',
+ 'Add AR Transaction' => '·s¼WÀ³¦¬¥æ©ö',
+ 'Address' => '¦a§}',
+ 'Amount' => 'ª÷ÃB',
+ 'Amount Due' => '¨ì´Áª÷ÃB',
+ 'Apr' => '¥|¤ë',
+ 'April' => '¥|¤ë',
+ 'Are you sure you want to delete Transaction' => '±z¬O§_½T©w­n§R°£¥æ©ö',
+ 'Aug' => '¤K¤ë',
+ 'August' => '¤K¤ë',
+ 'Bcc' => '¤£Åã¥Ü§Û°e',
+ 'Cannot delete transaction!' => '¤£¯à§R°£¥æ©ö¡I',
+ 'Cannot post payment for a closed period!' => '¤£¯à¦b¤wÃö³¬ªº®É¬q¤º¥[¤J´Ú¶µ¡I',
+ 'Cannot post transaction for a closed period!' => '¤£¯à¦b¤wÃö³¬ªº®É¬q¤º¥[¤J¥æ©ö¡I',
+ 'Cannot post transaction!' => '¤£¯à¥[¤J¥æ©ö¡I',
+ 'Cc' => '§Û°e',
+ 'Check' => 'Àˬd',
+ 'Closed' => '¤wÃö³¬',
+ 'Confirm!' => '¤J±b¦¨¥\¡I',
+ 'Continue' => 'Ä~Äò',
+ 'Credit' => '¶U¤è',
+ 'Credit Limit' => '«H¥ÎÃB«×',
+ 'Curr' => '¥Ø«e',
+ 'Currency' => '¹ô§O',
+ 'Current' => '²{¦³',
+ 'Customer' => '«È¤á',
+ 'Customer missing!' => '¥¼«ü©ú«È¤á¡I',
+ 'Customer not on file!' => '¨S¦³¦¹«È¤áªº°O¿ý¡I',
+ 'Date' => '¤é´Á',
+ 'Date Paid' => '¥I´Ú¤é´Á',
+ 'Day(s)' => '¤é',
+ 'Debit' => '­É¤è',
+ 'Dec' => '¤Q¤G¤ë',
+ 'December' => '¤Q¤G¤ë',
+ 'Delete' => '§R°£',
+ 'Delete Schedule' => '§R°£®É¶¡ªí',
+ 'Department' => '³¡ªù',
+ 'Description' => '»¡©ú',
+ 'Detail' => '¸Ô±¡',
+ 'Due Date' => '¨ì´Á¤é',
+ 'Due Date missing!' => '¥¼«ü©ú¨ì´Á¤é¡I',
+ 'E-mail' => '¹q¤l¶l¥ó',
+ 'E-mail message' => '¹q¤l¶l¥ó°T®§',
+ 'Edit AP Transaction' => '½s¿èÀ³¥I¥æ©ö',
+ 'Edit AR Transaction' => '½s¿èÀ³¦¬¥æ©ö',
+ 'Employee' => '¾­û',
+ 'Every' => '¨C',
+ 'Exch' => '¶×²v',
+ 'Exchange Rate' => '¶×²v',
+ 'Exchange rate for payment missing!' => '¥¼«ü©ú¥I´Úªº¶×²v¡I',
+ 'Exchange rate missing!' => '¥¼«ü©ú¶×²v¡I',
+ 'Feb' => '¤G¤ë',
+ 'February' => '¤G¤ë',
+ 'For' => '­«ÂÐ',
+ 'From' => '±q',
+ 'ID' => 'ÃѧO½s¸¹',
+ 'Include Payment' => '¥]¬A¥I´Ú',
+ 'Include in Report' => '¤@¨ÖÅã¥Ü',
+ 'Invoice' => 'µo²¼',
+ 'Invoice Date' => 'µo²¼¤é´Á',
+ 'Invoice Date missing!' => '¥¼«ü©úµo²¼¤é´Á¡I',
+ 'Invoice Number' => 'µo²¼½s¸¹',
+ 'Jan' => '¤@¤ë',
+ 'January' => '¤@¤ë',
+ 'Jul' => '¤C¤ë',
+ 'July' => '¤C¤ë',
+ 'Jun' => '¤»¤ë',
+ 'June' => '¤»¤ë',
+ 'Manager' => '¸g²z',
+ 'Mar' => '¤T¤ë',
+ 'March' => '¤T¤ë',
+ 'May' => '¤­¤ë',
+ 'May ' => '¤­¤ë',
+ 'Memo' => '³Æ§Ñ¿ý',
+ 'Message' => '°T®§',
+ 'Month' => '¤ë',
+ 'Month(s)' => '¤ë',
+ 'Next Date' => '¤U¤@¤é',
+ 'No.' => '½s¸¹',
+ 'Notes' => '³Æµù',
+ 'Nothing to print!' => '¨S¦³¥i¦C¦Lªº¶µ¥Ø¡I',
+ 'Nov' => '¤Q¤@¤ë',
+ 'November' => '¤Q¤@¤ë',
+ 'Number' => '½s¸¹',
+ 'Oct' => '¤Q¤ë',
+ 'October' => '¤Q¤ë',
+ 'Open' => '¶}±Ò',
+ 'Order' => '­q³æ',
+ 'Order Number' => '­q³æ½s¸¹',
+ 'PDF' => 'PDF',
+ 'PO Number' => '±ÄÁʳæ½s¸¹',
+ 'Paid' => '¤w¥I',
+ 'Payment date missing!' => '¥¼«ü©ú¥I´Ú¤é´Á¡I',
+ 'Payments' => '¥I´Ú',
+ 'Period' => '´Á¶¡',
+ 'Post' => '¥[¤J',
+ 'Post as new' => '·í·sªº¥[¤J',
+ 'Postscript' => 'Postscript',
+ 'Print' => '¦C¦L',
+ 'Print and Post' => '¦C¦L¨Ã¥[¤J',
+ 'Print and Post as new' => '¦C¦L¨Ã¥[¤J§@¬°·sªº',
+ 'Printed' => '¤w¦C¦L',
+ 'Project' => '¶µ¥Ø',
+ 'Project not on file!' => '¨S¦³¦¹¶µ¥Øªº°O¿ý¡I',
+ 'Quarter' => '©u',
+ 'Receipt' => '¦¬¾Ú',
+ 'Recurring Transaction' => '­«ÂÐ¥X²{ªº¥æ©ö',
+ 'Reference' => '°Ñ¦Ò¸ê®Æ',
+ 'Remaining' => '©|¾l',
+ 'Repeat' => '­«ÂÐ',
+ 'Sales Invoice.' => '¾P°âµo²¼¡C',
+ 'Salesperson' => '¾P°â¤H­û',
+ 'Save Schedule' => 'Àx¦s®É¶¡ªí',
+ 'Schedule' => '®É¶¡ªí',
+ 'Scheduled' => '½s±Æ¤F®É¶¡',
+ 'Screen' => '¿Ã¹õ',
+ 'Select a Printer!' => '¿ï¾Ü¦Lªí¾÷¡I',
+ 'Select from one of the names below' => '©ó¤U¦C©m¦W¤¤¿ï¾Ü¤@­Ó',
+ 'Select from one of the projects below' => '©ó¤U¦C¶µ¥Ø¤¤¿ï¾Ü¤@­Ó',
+ 'Select payment' => '¿ï¾Ü¥I´Ú',
+ 'Select postscript or PDF!' => '¿ï¾Üpostscript©ÎPDF¡I',
+ 'Sep' => '¤E¤ë',
+ 'September' => '¤E¤ë',
+ 'Ship to' => '¥I¹B¦Ü',
+ 'Ship via' => '¥I¹B¤½¥q',
+ 'Shipping Point' => '¥I¹B¦aÂI',
+ 'Source' => '¨Ó·½',
+ 'Startdate' => '¶}©l¤é´Á',
+ 'Subject' => '¼ÐÃD',
+ 'Subtotal' => '¤p­p',
+ 'Summary' => 'ºK­n',
+ 'Tax' => 'µ|ª÷',
+ 'Tax Included' => '¤w§tµ|ª÷',
+ 'Till' => 'ª½¨ì',
+ 'To' => '¦Ü',
+ 'Total' => 'Á`­p',
+ 'Transaction' => '¥æ©ö',
+ 'Transaction deleted!' => '¤w§R°£¥æ©ö¡I',
+ 'Transaction posted!' => '¤w¥[¤J¥æ©ö¡I',
+ 'Update' => '§ó·s',
+ 'Vendor' => '¨ÑÀ³°Ó',
+ 'Vendor Invoice.' => '¨ÑÀ³°Óµo²¼¡C',
+ 'Vendor missing!' => '¥¼«ü©ú¨ÑÀ³°Ó¡I',
+ 'Vendor not on file!' => '¨S¦³¦¹¨ÑÀ³°Óªº°O¿ý¡I',
+ 'Warning!' => 'ĵ§i¡I',
+ 'Week(s)' => '¬P´Á',
+ 'Year' => '¦~',
+ 'Year(s)' => '¦~',
+ 'Yes' => '¬O',
+ 'You are posting an existing transaction!' => '±z¥¿¦b¥[¤J¤@­Ó²{¦sªº¥æ©ö¡I',
+ 'You are printing and posting an existing transaction!' => '±z¥¿¦b¦C¦L¤Î¥[¤J¤@­Ó²{¦sªº¥æ©ö¡I',
+ 'You are printing and saving an existing order' => '±z¥¿¦b¦C¦L¤ÎÀx¦s¤@±i²{¦sªº­q³æ¡I',
+ 'You are printing and saving an existing quotation' => '±z¥¿¦b¦C¦L¤ÎÀx¦s¤@±i²{¦sªº³ø»ù³æ¡I',
+ 'You are saving an existing order' => '±z¥¿¦bÀx¦s¤@±i²{¦sªº­q³æ¡I',
+ 'You are saving an existing quotation' => '±z¥¿¦bÀx¦s¤@±i²{¦sªº³ø»ù³æ¡I',
+ 'for' => '¬°¤F',
+ 'sent' => '¤w°e¥X',
+ 'time(s)' => '¦¸',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'À³¥i¥æ©ö' => 'ap_transaction',
+ 'À³¦¬¥æ©ö' => 'ar_transaction',
+ 'Ä~Äò' => 'continue',
+ '§r°£' => 'delete',
+ '§r°£®É¶¡ªí' => 'delete_schedule',
+ '¥[¤j' => 'post',
+ '·í·sªº¥[¤j' => 'post_as_new',
+ '¦c¦l' => 'print',
+ '¦c¦l¨Ã¥[¤j' => 'print_and_post',
+ '¦c¦l¨Ã¥[¤j§@¬°·sªº' => 'print_and_post_as_new',
+ '¾p°âµo²¼¡c' => 'sales_invoice_',
+ 'Àx¦s®É¶¡ªí' => 'save_schedule',
+ '®É¶¡ªí' => 'schedule',
+ '¥i¹b¦Ü' => 'ship_to',
+ '§ó·s' => 'update',
+ '¨ÑÀ³°Óµo²¼¡c' => 'vendor_invoice_',
+ '¬o' => 'yes',
+};
+
+1;
+
diff --git a/locale/tw_big5/arap b/locale/tw_big5/arap
new file mode 100755
index 00000000..eabd268e
--- /dev/null
+++ b/locale/tw_big5/arap
@@ -0,0 +1,76 @@
+$self{charset} = 'BIG5';
+
+$self{texts} = {
+ 'Address' => '¦a§}',
+ 'Bcc' => '¤£Åã¥Ü§Û°e',
+ 'Cc' => '§Û°e',
+ 'Continue' => 'Ä~Äò',
+ 'Customer not on file!' => '¨S¦³¦¹«È¤áªº°O¿ý¡I',
+ 'Date' => '¤é´Á',
+ 'Day(s)' => '¤é',
+ 'Delete Schedule' => '§R°£®É¶¡ªí',
+ 'Description' => '»¡©ú',
+ 'E-mail' => '¹q¤l¶l¥ó',
+ 'E-mail message' => '¹q¤l¶l¥ó°T®§',
+ 'Every' => '¨C',
+ 'For' => '­«ÂÐ',
+ 'Include Payment' => '¥]¬A¥I´Ú',
+ 'Message' => '°T®§',
+ 'Month(s)' => '¤ë',
+ 'Next Date' => '¤U¤@¤é',
+ 'Number' => '½s¸¹',
+ 'Print' => '¦C¦L',
+ 'Project not on file!' => '¨S¦³¦¹¶µ¥Øªº°O¿ý¡I',
+ 'Recurring Transaction' => '­«ÂÐ¥X²{ªº¥æ©ö',
+ 'Reference' => '°Ñ¦Ò¸ê®Æ',
+ 'Repeat' => '­«ÂÐ',
+ 'Save Schedule' => 'Àx¦s®É¶¡ªí',
+ 'Select from one of the names below' => '©ó¤U¦C©m¦W¤¤¿ï¾Ü¤@­Ó',
+ 'Select from one of the projects below' => '©ó¤U¦C¶µ¥Ø¤¤¿ï¾Ü¤@­Ó',
+ 'Startdate' => '¶}©l¤é´Á',
+ 'Subject' => '¼ÐÃD',
+ 'To' => '¦Ü',
+ 'Vendor not on file!' => '¨S¦³¦¹¨ÑÀ³°Óªº°O¿ý¡I',
+ 'Warning!' => 'ĵ§i¡I',
+ 'Week(s)' => '¬P´Á',
+ 'Year(s)' => '¦~',
+ 'You are posting an existing transaction!' => '±z¥¿¦b¥[¤J¤@­Ó²{¦sªº¥æ©ö¡I',
+ 'You are printing and posting an existing transaction!' => '±z¥¿¦b¦C¦L¤Î¥[¤J¤@­Ó²{¦sªº¥æ©ö¡I',
+ 'You are printing and saving an existing order' => '±z¥¿¦b¦C¦L¤ÎÀx¦s¤@±i²{¦sªº­q³æ¡I',
+ 'You are printing and saving an existing quotation' => '±z¥¿¦b¦C¦L¤ÎÀx¦s¤@±i²{¦sªº³ø»ù³æ¡I',
+ 'You are saving an existing order' => '±z¥¿¦bÀx¦s¤@±i²{¦sªº­q³æ¡I',
+ 'You are saving an existing quotation' => '±z¥¿¦bÀx¦s¤@±i²{¦sªº³ø»ù³æ¡I',
+ 'for' => '¬°¤F',
+ 'sent' => '¤w°e¥X',
+ 'time(s)' => '¦¸',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'Ä~Äò' => 'continue',
+ '§r°£®É¶¡ªí' => 'delete_schedule',
+ 'Àx¦s®É¶¡ªí' => 'save_schedule',
+};
+
+1;
+
diff --git a/locale/tw_big5/arapprn b/locale/tw_big5/arapprn
new file mode 100755
index 00000000..3414ca7d
--- /dev/null
+++ b/locale/tw_big5/arapprn
@@ -0,0 +1,36 @@
+$self{charset} = 'BIG5';
+
+$self{texts} = {
+ 'Account' => '±b¤á',
+ 'Amount' => 'ª÷ÃB',
+ 'Continue' => 'Ä~Äò',
+ 'Date' => '¤é´Á',
+ 'Memo' => '³Æ§Ñ¿ý',
+ 'Nothing to print!' => '¨S¦³¥i¦C¦Lªº¶µ¥Ø¡I',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'Postscript',
+ 'Printed' => '¤w¦C¦L',
+ 'Scheduled' => '½s±Æ¤F®É¶¡',
+ 'Screen' => '¿Ã¹õ',
+ 'Select a Printer!' => '¿ï¾Ü¦Lªí¾÷¡I',
+ 'Select payment' => '¿ï¾Ü¥I´Ú',
+ 'Select postscript or PDF!' => '¿ï¾Üpostscript©ÎPDF¡I',
+ 'Source' => '¨Ó·½',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'Ä~Äò' => 'continue',
+};
+
+1;
+
diff --git a/locale/tw_big5/bp b/locale/tw_big5/bp
new file mode 100755
index 00000000..a95ed2b6
--- /dev/null
+++ b/locale/tw_big5/bp
@@ -0,0 +1,70 @@
+$self{charset} = 'BIG5';
+
+$self{texts} = {
+ 'Account' => '±b¤á',
+ 'Accounting Menu' => '·|­p¿ï³æ',
+ 'Are you sure you want to remove the marked entries from the queue?' => '±z¬O§_½T©w­n®ø°£¦³°O¸¹ªº±ø¥Ø¡H',
+ 'Bin Lists' => '½cªº©ú²Óªí',
+ 'Cannot remove files!' => '¤£¯à²¾°£ÀɮסI',
+ 'Confirm!' => '¤J±b¦¨¥\¡I',
+ 'Continue' => 'Ä~Äò',
+ 'Current' => '²{¦³',
+ 'Customer' => '«È¤á',
+ 'Date' => '¤é´Á',
+ 'Employee' => '¾­û',
+ 'From' => '±q',
+ 'ID' => 'ÃѧO½s¸¹',
+ 'Invoice' => 'µo²¼',
+ 'Invoice Number' => 'µo²¼½s¸¹',
+ 'Marked entries printed!' => '¤w¦C¦L¦³°O¸¹ªº·|­p¶µ¥Ø¡I',
+ 'Month' => '¤ë',
+ 'Order' => '­q³æ',
+ 'Order Number' => '­q³æ½s¸¹',
+ 'Packing Lists' => '¥X³f³æ',
+ 'Period' => '´Á¶¡',
+ 'Pick Lists' => '´z³f²M³æ',
+ 'Print' => '¦C¦L',
+ 'Printing' => '¥¿¦C¦L',
+ 'Purchase Orders' => '±ÄÁʳæ',
+ 'Quarter' => '©u',
+ 'Quotation' => '³ø»ù³æ',
+ 'Quotation Number' => '³ø»ù³æ¸¹½X',
+ 'Quotations' => '³ø»ù³æ',
+ 'RFQs' => '³ø»ù½Ð¨D',
+ 'Remove' => '²¾°£',
+ 'Removed spoolfiles!' => '²¾°£¦C¦L¼È¦sÀÉ®×',
+ 'Removing marked entries from queue ...' => '¥¿±q¶¤¦C¤¤²¾°£¦³°O¸¹ªº·|­p¶µ¥Ø',
+ 'Sales Invoices' => '¾P°âµo²¼',
+ 'Sales Orders' => '¾P³f³æ',
+ 'Select all' => '¥þ¿ï',
+ 'Spoolfile' => '¦C¦L¼È¦s(spool)ÀÉ®×',
+ 'To' => '¦Ü',
+ 'Vendor' => '¨ÑÀ³°Ó',
+ 'Work Orders' => '¤u§@³æ',
+ 'Year' => '¦~',
+ 'Yes' => '¬O',
+ 'done' => '§¹¦¨',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'Ä~Äò' => 'continue',
+ '¦c¦l' => 'print',
+ '²¾°£' => 'remove',
+ '¥þ¿ï' => 'select_all',
+ '¬o' => 'yes',
+};
+
+1;
+
diff --git a/locale/tw_big5/ca b/locale/tw_big5/ca
new file mode 100755
index 00000000..d4b7b640
--- /dev/null
+++ b/locale/tw_big5/ca
@@ -0,0 +1,61 @@
+$self{charset} = 'BIG5';
+
+$self{texts} = {
+ 'AR/AP' => 'À³¦¬/À³¥I ',
+ 'Account' => '±b¤á',
+ 'Apr' => '¥|¤ë',
+ 'April' => '¥|¤ë',
+ 'Aug' => '¤K¤ë',
+ 'August' => '¤K¤ë',
+ 'Balance' => '¾lÃB',
+ 'Chart of Accounts' => '·|­p¬ì¥Øªí',
+ 'Credit' => '¶U¤è',
+ 'Current' => '²{¦³',
+ 'Date' => '¤é´Á',
+ 'Debit' => '­É¤è',
+ 'Dec' => '¤Q¤G¤ë',
+ 'December' => '¤Q¤G¤ë',
+ 'Department' => '³¡ªù',
+ 'Description' => '»¡©ú',
+ 'Feb' => '¤G¤ë',
+ 'February' => '¤G¤ë',
+ 'From' => '±q',
+ 'GIFI' => '°]°È°T®§³q¥Î¯Á¤Þ(GIFI)',
+ 'Include in Report' => '¤@¨ÖÅã¥Ü',
+ 'Jan' => '¤@¤ë',
+ 'January' => '¤@¤ë',
+ 'Jul' => '¤C¤ë',
+ 'July' => '¤C¤ë',
+ 'Jun' => '¤»¤ë',
+ 'June' => '¤»¤ë',
+ 'List Transactions' => '¦C¥X©Ò¦³¥æ©ö',
+ 'Mar' => '¤T¤ë',
+ 'March' => '¤T¤ë',
+ 'May' => '¤­¤ë',
+ 'May ' => '¤­¤ë',
+ 'Month' => '¤ë',
+ 'Nov' => '¤Q¤@¤ë',
+ 'November' => '¤Q¤@¤ë',
+ 'Oct' => '¤Q¤ë',
+ 'October' => '¤Q¤ë',
+ 'Period' => '´Á¶¡',
+ 'Project Number' => '¶µ¥Ø¸¹½X',
+ 'Quarter' => '©u',
+ 'Reference' => '°Ñ¦Ò¸ê®Æ',
+ 'Sep' => '¤E¤ë',
+ 'September' => '¤E¤ë',
+ 'Subtotal' => '¤p­p',
+ 'To' => '¦Ü',
+ 'Year' => '¦~',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ '¦c¥x©Ò¦³¥æ©ö' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/tw_big5/cp b/locale/tw_big5/cp
new file mode 100755
index 00000000..d1f03c8b
--- /dev/null
+++ b/locale/tw_big5/cp
@@ -0,0 +1,150 @@
+$self{charset} = 'BIG5';
+
+$self{texts} = {
+ 'AP' => 'À³¥I±b´Ú',
+ 'AR' => 'À³¦¬±b´Ú',
+ 'Account' => '±b¤á',
+ 'Accounting Menu' => '·|­p¿ï³æ',
+ 'Address' => '¦a§}',
+ 'All' => '¥þ³¡',
+ 'Amount' => 'ª÷ÃB',
+ 'Amount Due' => '¨ì´Áª÷ÃB',
+ 'Bcc' => '¤£Åã¥Ü§Û°e',
+ 'Cannot post Payment!' => '¤£¯à¥[¤J´Ú¶µ¡I',
+ 'Cannot post Receipt!' => '¤£¯à¥[¤J¦¬¾Ú¡I',
+ 'Cannot post payment for a closed period!' => '¤£¯à¦b¤wÃö³¬ªº®É¬q¤º¥[¤J´Ú¶µ¡I',
+ 'Cc' => '§Û°e',
+ 'Continue' => 'Ä~Äò',
+ 'Currency' => '¹ô§O',
+ 'Customer' => '«È¤á',
+ 'Customer not on file!' => '¨S¦³¦¹«È¤áªº°O¿ý¡I',
+ 'Date' => '¤é´Á',
+ 'Date missing!' => '¥¼«ü©ú¤é´Á¡I',
+ 'Day(s)' => '¤é',
+ 'Delete Schedule' => '§R°£®É¶¡ªí',
+ 'Department' => '³¡ªù',
+ 'Deposit' => '¦s´Ú',
+ 'Description' => '»¡©ú',
+ 'Due Date' => '¨ì´Á¤é',
+ 'E-mail' => '¹q¤l¶l¥ó',
+ 'E-mail message' => '¹q¤l¶l¥ó°T®§',
+ 'Every' => '¨C',
+ 'Exchange Rate' => '¶×²v',
+ 'Exchange rate missing!' => '¥¼«ü©ú¶×²v¡I',
+ 'For' => '­«ÂÐ',
+ 'From' => '±q',
+ 'Include Payment' => '¥]¬A¥I´Ú',
+ 'Invoice' => 'µo²¼',
+ 'Invoices' => 'µo²¼',
+ 'Language' => '»y¨¥',
+ 'Memo' => '³Æ§Ñ¿ý',
+ 'Message' => '°T®§',
+ 'Month(s)' => '¤ë',
+ 'Next Date' => '¤U¤@¤é',
+ 'Number' => '½s¸¹',
+ 'PDF' => 'PDF',
+ 'Payment' => '¥I´Ú',
+ 'Payment posted!' => '¤w¥[¤J¥I´Ú¡I',
+ 'Payments' => '¥I´Ú',
+ 'Payments posted!' => '¤w¥[¤J¥I´Ú¡I',
+ 'Post' => '¥[¤J',
+ 'Posting failed!' => '¥[¤J¥¢±Ñ¡I',
+ 'Postscript' => 'Postscript',
+ 'Prepayment' => '¹wú',
+ 'Print' => '¦C¦L',
+ 'Project not on file!' => '¨S¦³¦¹¶µ¥Øªº°O¿ý¡I',
+ 'Receipt' => '¦¬¾Ú',
+ 'Receipt posted!' => '¤w¥[¤J¦¬¾Ú¡I',
+ 'Receipts' => '¦¬¾Ú',
+ 'Recurring Transaction' => '­«ÂÐ¥X²{ªº¥æ©ö',
+ 'Reference' => '°Ñ¦Ò¸ê®Æ',
+ 'Repeat' => '­«ÂÐ',
+ 'Save Schedule' => 'Àx¦s®É¶¡ªí',
+ 'Screen' => '¿Ã¹õ',
+ 'Select' => '¿ï¾Ü',
+ 'Select all' => '¥þ¿ï',
+ 'Select from one of the names below' => '©ó¤U¦C©m¦W¤¤¿ï¾Ü¤@­Ó',
+ 'Select from one of the projects below' => '©ó¤U¦C¶µ¥Ø¤¤¿ï¾Ü¤@­Ó',
+ 'Select postscript or PDF!' => '¿ï¾Üpostscript©ÎPDF¡I',
+ 'Source' => '¨Ó·½',
+ 'Startdate' => '¶}©l¤é´Á',
+ 'Subject' => '¼ÐÃD',
+ 'To' => '¦Ü',
+ 'Update' => '§ó·s',
+ 'Vendor' => '¨ÑÀ³°Ó',
+ 'Vendor not on file!' => '¨S¦³¦¹¨ÑÀ³°Óªº°O¿ý¡I',
+ 'Warning!' => 'ĵ§i¡I',
+ 'Week(s)' => '¬P´Á',
+ 'Year(s)' => '¦~',
+ 'You are posting an existing transaction!' => '±z¥¿¦b¥[¤J¤@­Ó²{¦sªº¥æ©ö¡I',
+ 'You are printing and posting an existing transaction!' => '±z¥¿¦b¦C¦L¤Î¥[¤J¤@­Ó²{¦sªº¥æ©ö¡I',
+ 'You are printing and saving an existing order' => '±z¥¿¦b¦C¦L¤ÎÀx¦s¤@±i²{¦sªº­q³æ¡I',
+ 'You are printing and saving an existing quotation' => '±z¥¿¦b¦C¦L¤ÎÀx¦s¤@±i²{¦sªº³ø»ù³æ¡I',
+ 'You are saving an existing order' => '±z¥¿¦bÀx¦s¤@±i²{¦sªº­q³æ¡I',
+ 'You are saving an existing quotation' => '±z¥¿¦bÀx¦s¤@±i²{¦sªº³ø»ù³æ¡I',
+ 'for' => '¬°¤F',
+ 'sent' => '¤w°e¥X',
+ 'time(s)' => '¦¸',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'Ä~Äò' => 'continue',
+ '§r°£®É¶¡ªí' => 'delete_schedule',
+ '¥[¤j' => 'post',
+ '¦c¦l' => 'print',
+ 'Àx¦s®É¶¡ªí' => 'save_schedule',
+ '¥þ¿ï' => 'select_all',
+ '§ó·s' => 'update',
+};
+
+1;
+
diff --git a/locale/tw_big5/ct b/locale/tw_big5/ct
new file mode 100755
index 00000000..5868a4ad
--- /dev/null
+++ b/locale/tw_big5/ct
@@ -0,0 +1,191 @@
+$self{charset} = 'BIG5';
+
+$self{texts} = {
+ 'AP Transaction' => 'À³¥I¥æ©ö',
+ 'AP Transactions' => 'À³¥I¥æ©ö',
+ 'AR Transaction' => 'À³¦¬¥æ©ö',
+ 'AR Transactions' => 'À³¦¬¥æ©ö',
+ 'Accounting Menu' => '·|­p¿ï³æ',
+ 'Active' => '¥Í®Äªº',
+ 'Add Customer' => '·s¼W«È¤á',
+ 'Add Vendor' => '·s¼W¨ÑÀ³°Ó',
+ 'Address' => '¦a§}',
+ 'All' => '¥þ³¡',
+ 'Amount' => 'ª÷ÃB',
+ 'BIC' => '»È¦æÃѧO½s¸¹(BIC)',
+ 'Bcc' => '¤£Åã¥Ü§Û°e',
+ 'Billing Address' => '±b³æ¦a§}',
+ 'Break' => '¥ð®§',
+ 'Cannot delete customer!' => '¤£¯à§R°£«È¤á¡I',
+ 'Cannot delete vendor!' => '¤£¯à§R°£¨ÑÀ³°Ó¡I',
+ 'Cc' => '§Û°e',
+ 'City' => '«°¥«',
+ 'Closed' => '¤wÃö³¬',
+ 'Company Name' => '¤½¥q¦WºÙ',
+ 'Contact' => '³sµ¸¤H',
+ 'Continue' => 'Ä~Äò',
+ 'Cost' => '¦¨¥»',
+ 'Could not save pricelist!' => '¤£¯àÀx¦s»ù®æ²M³æ¡I',
+ 'Country' => '°ê®a',
+ 'Credit Limit' => '«H¥ÎÃB«×',
+ 'Curr' => '¥Ø«e',
+ 'Currency' => '¹ô§O',
+ 'Customer History' => '«È¤á¾ú¥v',
+ 'Customer Number' => '«È¤á½s¸¹',
+ 'Customer deleted!' => '¤w§R°£«È¤á¡I',
+ 'Customer saved!' => '¤wÀx¦s«È¤á¡I',
+ 'Customers' => '«È¤á',
+ 'Delete' => '§R°£',
+ 'Delivery Date' => '¨ì´Á¤é',
+ 'Description' => '»¡©ú',
+ 'Detail' => '¸Ô±¡',
+ 'Discount' => '§é¦©',
+ 'E-mail' => '¹q¤l¶l¥ó',
+ 'Edit Customer' => '½s¿è«È¤á',
+ 'Edit Vendor' => '½s¿è¨ÑÀ³°Ó',
+ 'Employee' => '¾­û',
+ 'Enddate' => 'µ²§ô¤é',
+ 'Fax' => '¶Ç¯u',
+ 'From' => '±q',
+ 'GIFI' => '°]°È°T®§³q¥Î¯Á¤Þ(GIFI)',
+ 'Group' => '²Õ§O',
+ 'IBAN' => '°ê»Ú»È¦æ±b¸¹(IBAN)',
+ 'ID' => 'ÃѧO½s¸¹',
+ 'Inactive' => '«D¬¡ÅDªº',
+ 'Include in Report' => '¤@¨ÖÅã¥Ü',
+ 'Invoice' => 'µo²¼',
+ 'Item already on pricelist!' => '¶µ¥Ø¤v¸g¦b»ù®æ²M³æ¤º¡I',
+ 'Item not on file!' => '¨S¦³¦¹¶µ¥Øªº°O¿ý¡I',
+ 'Language' => '»y¨¥',
+ 'Leadtime' => 'Á`»Ý®É',
+ 'Manager' => '¸g²z',
+ 'Name' => '¦WºÙ',
+ 'Name missing!' => '¥¼«ü©ú¦W¦r¡I',
+ 'No.' => '½s¸¹',
+ 'Notes' => '³Æµù',
+ 'Number' => '½s¸¹',
+ 'Open' => '¶}±Ò',
+ 'Order' => '­q³æ',
+ 'Orphaned' => 'µL¥D',
+ 'POS' => '¾P°âÂI(POS)',
+ 'Part Number' => '¹s¥ó½s¸¹',
+ 'Phone' => '¹q¸Ü¸¹½X',
+ 'Pricegroup' => '»ù®æ²Õ§O',
+ 'Pricelist' => '»ù®æ²M³æ',
+ 'Project Number' => '¶µ¥Ø¸¹½X',
+ 'Purchase Order' => '±ÄÁʳæ',
+ 'Purchase Orders' => '±ÄÁʳæ',
+ 'Qty' => '¼Æ¶q',
+ 'Quotation' => '³ø»ù³æ',
+ 'Quotations' => '³ø»ù³æ',
+ 'RFQ' => '³ø»ù½Ð¨D(RFQ) ',
+ 'Request for Quotations' => '­n¨D³ø»ù³æ',
+ 'SIC' => '¼Ð·Ç¤u·~¤ÀÃþ¥N½X',
+ 'SKU' => '®w¦s³æ¦ì',
+ 'Sales Invoice' => '¾P°âµo²¼',
+ 'Sales Invoices' => '¾P°âµo²¼',
+ 'Sales Order' => '¾P³f³æ',
+ 'Sales Orders' => '¾P³f³æ',
+ 'Salesperson' => '¾P°â¤H­û',
+ 'Save' => 'Àx¦s',
+ 'Save Pricelist' => 'Àx¦s»ù®æ²M³æ',
+ 'Save as new' => '·í·sªºÀx¦s',
+ 'Search' => '·j´M',
+ 'Select items' => '¿ï¾Ü¶µ¥Ø',
+ 'Sell Price' => '°â»ù',
+ 'Serial Number' => '§Ç¸¹',
+ 'Shipping Address' => '¥I¹B¦a§}',
+ 'Startdate' => '¶}©l¤é´Á',
+ 'State' => '¦{',
+ 'State/Province' => '¬Ù',
+ 'Sub-contract GIFI' => 'Âà¥]¦X¦PGIFI',
+ 'Subtotal' => '¤p­p',
+ 'Summary' => 'ºK­n',
+ 'Tax' => 'µ|ª÷',
+ 'Tax Included' => '¤w§tµ|ª÷',
+ 'Tax Number' => 'µ|¸¹',
+ 'Tax Number / SSN' => 'µ|¸¹/ªÀ·|«O»Ù½s¸¹',
+ 'Taxable' => 'À³µ|',
+ 'Terms' => '²¼´Á²b­p',
+ 'To' => '¦Ü',
+ 'Total' => 'Á`­p',
+ 'Type of Business' => '·~°ÈºØÃþ',
+ 'Unit' => '³æ¦ì',
+ 'Update' => '§ó·s',
+ 'Vendor History' => '¨ÑÀ³°Ó¾ú¥v',
+ 'Vendor Invoice' => '¨ÑÀ³°Óµo²¼',
+ 'Vendor Invoices' => '¨ÑÀ³°Óµo²¼',
+ 'Vendor Number' => '¨ÑÀ³°Ó¸¹½X',
+ 'Vendor deleted!' => '¤w§R°£¨ÑÀ³°Ó¡I',
+ 'Vendor saved!' => '¤wÀx¦s¨ÑÀ³°Ó¡I',
+ 'Vendors' => '¨ÑÀ³°Ó',
+ 'Zip/Postal Code' => '¶l¬F½s½X',
+ 'days' => '¤é',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'À³¥i¥æ©ö' => 'ap_transaction',
+ 'À³¦¬¥æ©ö' => 'ar_transaction',
+ '·s¼w«È¤á' => 'add_customer',
+ '·s¼w¨ÑÀ³°Ó' => 'add_vendor',
+ 'Ä~Äò' => 'continue',
+ '§r°£' => 'delete',
+ '¾p°âÂi(pos)' => 'pos',
+ '»ù®æ²m³æ' => 'pricelist',
+ '±ÄÁʳæ' => 'purchase_order',
+ '³ø»ù³æ' => 'quotation',
+ '³ø»ù½Ð¨d(rfq)_' => 'rfq',
+ '¾p°âµo²¼' => 'sales_invoice',
+ '¾p³f³æ' => 'sales_order',
+ 'Àx¦s' => 'save',
+ 'Àx¦s»ù®æ²m³æ' => 'save_pricelist',
+ '·í·sªºÀx¦s' => 'save_as_new',
+ '§ó·s' => 'update',
+ '¨ÑÀ³°Óµo²¼' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/tw_big5/gl b/locale/tw_big5/gl
new file mode 100755
index 00000000..dd695502
--- /dev/null
+++ b/locale/tw_big5/gl
@@ -0,0 +1,186 @@
+$self{charset} = 'BIG5';
+
+$self{texts} = {
+ 'AP Transaction' => 'À³¥I¥æ©ö',
+ 'AR Transaction' => 'À³¦¬¥æ©ö',
+ 'Account' => '±b¤á',
+ 'Accounting Menu' => '·|­p¿ï³æ',
+ 'Add Cash Transfer Transaction' => '·s¼W²{ª÷Âಾ±b¥Ø',
+ 'Add General Ledger Transaction' => '·s¼WÁ`±b¥æ©ö',
+ 'Address' => '¦a§}',
+ 'All' => '¥þ³¡',
+ 'Amount' => 'ª÷ÃB',
+ 'Apr' => '¥|¤ë',
+ 'April' => '¥|¤ë',
+ 'Are you sure you want to delete Transaction' => '±z¬O§_½T©w­n§R°£¥æ©ö',
+ 'Asset' => '¸ê²£',
+ 'Aug' => '¤K¤ë',
+ 'August' => '¤K¤ë',
+ 'Balance' => '¾lÃB',
+ 'Bcc' => '¤£Åã¥Ü§Û°e',
+ 'Cannot delete transaction!' => '¤£¯à§R°£¥æ©ö¡I',
+ 'Cannot post transaction for a closed period!' => '¤£¯à¦b¤wÃö³¬ªº®É¬q¤º¥[¤J¥æ©ö¡I',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => '¦b¥æ©ö¦P¤@±b¤á¤£¯à¤S¥X²{¦b­É¤è¤S¥X²{¦b¶U¤è¡I',
+ 'Cannot post transaction!' => '¤£¯à¥[¤J¥æ©ö¡I',
+ 'Cc' => '§Û°e',
+ 'Confirm!' => '¤J±b¦¨¥\¡I',
+ 'Continue' => 'Ä~Äò',
+ 'Credit' => '¶U¤è',
+ 'Current' => '²{¦³',
+ 'Customer not on file!' => '¨S¦³¦¹«È¤áªº°O¿ý¡I',
+ 'Date' => '¤é´Á',
+ 'Day(s)' => '¤é',
+ 'Debit' => '­É¤è',
+ 'Dec' => '¤Q¤G¤ë',
+ 'December' => '¤Q¤G¤ë',
+ 'Delete' => '§R°£',
+ 'Delete Schedule' => '§R°£®É¶¡ªí',
+ 'Department' => '³¡ªù',
+ 'Description' => '»¡©ú',
+ 'E-mail' => '¹q¤l¶l¥ó',
+ 'E-mail message' => '¹q¤l¶l¥ó°T®§',
+ 'Edit Cash Transfer Transaction' => '½s¿è²{ª÷Âಾ',
+ 'Edit General Ledger Transaction' => '½s¿èÁ`±b',
+ 'Equity' => 'ªÑÅv',
+ 'Every' => '¨C',
+ 'Expense' => '¶O¥Î',
+ 'FX' => '¥~¹ô§I´«',
+ 'Feb' => '¤G¤ë',
+ 'February' => '¤G¤ë',
+ 'For' => '­«ÂÐ',
+ 'From' => '±q',
+ 'GIFI' => '°]°È°T®§³q¥Î¯Á¤Þ(GIFI)',
+ 'GL Transaction' => 'Á`±b¥æ©ö',
+ 'General Ledger' => 'Á`±b',
+ 'ID' => 'ÃѧO½s¸¹',
+ 'Include Payment' => '¥]¬A¥I´Ú',
+ 'Include in Report' => '¤@¨ÖÅã¥Ü',
+ 'Income' => '¦¬¤J',
+ 'Jan' => '¤@¤ë',
+ 'January' => '¤@¤ë',
+ 'Jul' => '¤C¤ë',
+ 'July' => '¤C¤ë',
+ 'Jun' => '¤»¤ë',
+ 'June' => '¤»¤ë',
+ 'Liability' => '­t¶Å',
+ 'Mar' => '¤T¤ë',
+ 'March' => '¤T¤ë',
+ 'May' => '¤­¤ë',
+ 'May ' => '¤­¤ë',
+ 'Memo' => '³Æ§Ñ¿ý',
+ 'Message' => '°T®§',
+ 'Month' => '¤ë',
+ 'Month(s)' => '¤ë',
+ 'Next Date' => '¤U¤@¤é',
+ 'Notes' => '³Æµù',
+ 'Nov' => '¤Q¤@¤ë',
+ 'November' => '¤Q¤@¤ë',
+ 'Number' => '½s¸¹',
+ 'Oct' => '¤Q¤ë',
+ 'October' => '¤Q¤ë',
+ 'Out of balance transaction!' => '¤£¨ó½Õ¥æ©ö¡I',
+ 'Period' => '´Á¶¡',
+ 'Post' => '¥[¤J',
+ 'Post as new' => '·í·sªº¥[¤J',
+ 'Print' => '¦C¦L',
+ 'Project' => '¶µ¥Ø',
+ 'Project not on file!' => '¨S¦³¦¹¶µ¥Øªº°O¿ý¡I',
+ 'Quarter' => '©u',
+ 'Recurring Transaction' => '­«ÂÐ¥X²{ªº¥æ©ö',
+ 'Reference' => '°Ñ¦Ò¸ê®Æ',
+ 'Repeat' => '­«ÂÐ',
+ 'Reports' => '³øªí',
+ 'Sales Invoice ' => '¾P°âµo²¼ ',
+ 'Save Schedule' => 'Àx¦s®É¶¡ªí',
+ 'Schedule' => '®É¶¡ªí',
+ 'Scheduled' => '½s±Æ¤F®É¶¡',
+ 'Select from one of the names below' => '©ó¤U¦C©m¦W¤¤¿ï¾Ü¤@­Ó',
+ 'Select from one of the projects below' => '©ó¤U¦C¶µ¥Ø¤¤¿ï¾Ü¤@­Ó',
+ 'Sep' => '¤E¤ë',
+ 'September' => '¤E¤ë',
+ 'Source' => '¨Ó·½',
+ 'Startdate' => '¶}©l¤é´Á',
+ 'Subject' => '¼ÐÃD',
+ 'Subtotal' => '¤p­p',
+ 'To' => '¦Ü',
+ 'Transaction Date missing!' => '¥¼«ü©ú¥æ©ö¤é´Á¡I',
+ 'Transaction deleted!' => '¤w§R°£¥æ©ö¡I',
+ 'Transaction posted!' => '¤w¥[¤J¥æ©ö¡I',
+ 'Update' => '§ó·s',
+ 'Vendor Invoice ' => '¨ÑÀ³°Óµo²¼ ',
+ 'Vendor not on file!' => '¨S¦³¦¹¨ÑÀ³°Óªº°O¿ý¡I',
+ 'Warning!' => 'ĵ§i¡I',
+ 'Week(s)' => '¬P´Á',
+ 'Year' => '¦~',
+ 'Year(s)' => '¦~',
+ 'Yes' => '¬O',
+ 'You are posting an existing transaction!' => '±z¥¿¦b¥[¤J¤@­Ó²{¦sªº¥æ©ö¡I',
+ 'You are printing and posting an existing transaction!' => '±z¥¿¦b¦C¦L¤Î¥[¤J¤@­Ó²{¦sªº¥æ©ö¡I',
+ 'You are printing and saving an existing order' => '±z¥¿¦b¦C¦L¤ÎÀx¦s¤@±i²{¦sªº­q³æ¡I',
+ 'You are printing and saving an existing quotation' => '±z¥¿¦b¦C¦L¤ÎÀx¦s¤@±i²{¦sªº³ø»ù³æ¡I',
+ 'You are saving an existing order' => '±z¥¿¦bÀx¦s¤@±i²{¦sªº­q³æ¡I',
+ 'You are saving an existing quotation' => '±z¥¿¦bÀx¦s¤@±i²{¦sªº³ø»ù³æ¡I',
+ 'for' => '¬°¤F',
+ 'sent' => '¤w°e¥X',
+ 'time(s)' => '¦¸',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'À³¥i¥æ©ö' => 'ap_transaction',
+ 'À³¦¬¥æ©ö' => 'ar_transaction',
+ 'Ä~Äò' => 'continue',
+ '§r°£' => 'delete',
+ '§r°£®É¶¡ªí' => 'delete_schedule',
+ 'Á`±b¥æ©ö' => 'gl_transaction',
+ '¥[¤j' => 'post',
+ '·í·sªº¥[¤j' => 'post_as_new',
+ '¾p°âµo²¼_' => 'sales_invoice_',
+ 'Àx¦s®É¶¡ªí' => 'save_schedule',
+ '®É¶¡ªí' => 'schedule',
+ '§ó·s' => 'update',
+ '¨ÑÀ³°Óµo²¼_' => 'vendor_invoice_',
+ '¬o' => 'yes',
+};
+
+1;
+
diff --git a/locale/tw_big5/hr b/locale/tw_big5/hr
new file mode 100755
index 00000000..7e5bb909
--- /dev/null
+++ b/locale/tw_big5/hr
@@ -0,0 +1,120 @@
+$self{charset} = 'BIG5';
+
+$self{texts} = {
+ 'AP' => 'À³¥I±b´Ú',
+ 'Above' => '¤W¤å',
+ 'Accounting Menu' => '·|­p¿ï³æ',
+ 'Active' => '¥Í®Äªº',
+ 'Add Deduction' => '·s¼W¦©°£',
+ 'Add Employee' => '·s¼W¾­û',
+ 'Address' => '¦a§}',
+ 'Administrator' => 'ºÞ²z­û',
+ 'After Deduction' => '¦©°£¥H«á',
+ 'All' => '¥þ³¡',
+ 'Allowances' => '¬z¶K',
+ 'Amount' => 'ª÷ÃB',
+ 'Amount missing!' => '¨S¦³«ü©wª÷ÃB¡I',
+ 'BIC' => '»È¦æÃѧO½s¸¹(BIC)',
+ 'Based on' => '°ò©ó',
+ 'Before Deduction' => '¦©°£¤§«e',
+ 'Below' => '¥H¤U',
+ 'City' => '«°¥«',
+ 'Continue' => 'Ä~Äò',
+ 'Country' => '°ê®a',
+ 'DOB' => '¥X¥Í¤é´Á',
+ 'Deduct after' => '´î¤Ö¥H«á',
+ 'Deduction deleted!' => '¤w§R°£´î¤Ö¡I',
+ 'Deduction saved!' => '¤wÀx¦s´î¤Ö¡I',
+ 'Deductions' => '´î°£ÃB',
+ 'Delete' => '§R°£',
+ 'Description' => '»¡©ú',
+ 'Description missing!' => '¥¼«ü©ú´y­z¡I',
+ 'E-mail' => '¹q¤l¶l¥ó',
+ 'Edit Deduction' => '½s¿è´î°£ÃB',
+ 'Edit Employee' => '½s¿è¾­û',
+ 'Employee' => '¾­û',
+ 'Employee Name' => '¾­û©m¦W',
+ 'Employee Number' => '¾­û½s¸¹',
+ 'Employee deleted!' => '¤w§R°£Â¾­û¡I',
+ 'Employee pays' => '¥I´Úµ¹Â¾­û',
+ 'Employee saved!' => '¤wÀx¦s¾­û¡I',
+ 'Employees' => '¾­û',
+ 'Employer' => '¶±¥D',
+ 'Employer pays' => '¥I´Úµ¹¶±¥D',
+ 'Enddate' => 'µ²§ô¤é',
+ 'Expense' => '¶O¥Î',
+ 'From' => '±q',
+ 'Home Phone' => '¦í¦v¹q¸Ü',
+ 'IBAN' => '°ê»Ú»È¦æ±b¸¹(IBAN)',
+ 'ID' => 'ÃѧO½s¸¹',
+ 'Inactive' => '«D¬¡ÅDªº',
+ 'Include in Report' => '¤@¨ÖÅã¥Ü',
+ 'Login' => 'µn¤J',
+ 'Manager' => '¸g²z',
+ 'Maximum' => '³Ì¤j',
+ 'Name' => '¦WºÙ',
+ 'Name missing!' => '¥¼«ü©ú¦W¦r¡I',
+ 'Notes' => '³Æµù',
+ 'Number' => '½s¸¹',
+ 'Orphaned' => 'µL¥D',
+ 'Payroll Deduction' => 'Á~ª÷´î°£ÃB',
+ 'Pos' => '§Ç¸¹',
+ 'Rate' => 'µ|²v',
+ 'Rate missing!' => '¥¼«ü©úµ|²v¡I',
+ 'Role' => '¥ô°È',
+ 'SSN' => 'ªÀ·|«O»Ù½s¸¹',
+ 'Sales' => '¾P°â',
+ 'Save' => 'Àx¦s',
+ 'Save as new' => '·í·sªºÀx¦s',
+ 'Startdate' => '¶}©l¤é´Á',
+ 'State/Province' => '¬Ù',
+ 'Supervisor' => '¥DºÞ',
+ 'To' => '¦Ü',
+ 'Update' => '§ó·s',
+ 'User' => '¨Ï¥ÎªÌ',
+ 'Work Phone' => '¤u§@¹q¸Ü',
+ 'Zip/Postal Code' => '¶l¬F½s½X',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ '·s¼w¦©°£' => 'add_deduction',
+ '·s¼w¾­û' => 'add_employee',
+ 'Ä~Äò' => 'continue',
+ '§r°£' => 'delete',
+ 'Àx¦s' => 'save',
+ '·í·sªºÀx¦s' => 'save_as_new',
+ '§ó·s' => 'update',
+};
+
+1;
+
diff --git a/locale/tw_big5/ic b/locale/tw_big5/ic
new file mode 100755
index 00000000..e88b8f1d
--- /dev/null
+++ b/locale/tw_big5/ic
@@ -0,0 +1,294 @@
+$self{charset} = 'BIG5';
+
+$self{texts} = {
+ 'Accounting Menu' => '·|­p¿ï³æ',
+ 'Accounts' => '±b¤á',
+ 'Accrual' => 'À³­p°ò¦',
+ 'Active' => '¥Í®Äªº',
+ 'Add' => '·s¼W',
+ 'Add Assembly' => '·s¼W»s¦¨«~',
+ 'Add Labor/Overhead' => '·s¼Wª½±µ¤H¤u/¸g±`¶O¥Î',
+ 'Add Part' => '·s¼W¹s¥ó',
+ 'Add Purchase Order' => '·s¼W±ÄÁʳæ',
+ 'Add Quotation' => '·s¼W³ø»ù³æ',
+ 'Add Request for Quotation' => '·s¼W³ø»ù³æ­n¨D',
+ 'Add Sales Order' => '·s¼W¾P³f³æ',
+ 'Add Service' => '·s¼WªA°È',
+ 'Address' => '¦a§}',
+ 'Apr' => '¥|¤ë',
+ 'April' => '¥|¤ë',
+ 'Assemblies' => '»s¦¨«~',
+ 'Assemblies restocked!' => '»s¦¨«~¤w­«·s¶i³f',
+ 'Assembly' => '»s¦¨«~',
+ 'Attachment' => 'ªþ¥ó',
+ 'Aug' => '¤K¤ë',
+ 'August' => '¤K¤ë',
+ 'Average Cost' => '¥­§¡¦¨¥»',
+ 'Avg Cost' => '¥­§¡¦¨¥»',
+ 'BOM' => '§÷®Æ²M³æ',
+ 'Bcc' => '¤£Åã¥Ü§Û°e',
+ 'Billing Address' => '±b³æ¦a§}',
+ 'Bin' => '½c',
+ 'Bin List' => '½cªº©ú²Óªí',
+ 'Break' => '¥ð®§',
+ 'COGS' => '³f¾P¦¨¥»',
+ 'COGS account does not exist!' => '³f¾P¦¨¥»±b¤á¤£¦s¦b¡I',
+ 'Cannot create Assembly' => '¤£¯à«Ø¥ß»s¦¨«~',
+ 'Cannot create Labor' => '¤£¯à«Ø¥ßª½±µ¤H¤u',
+ 'Cannot create Part' => '¤£¯à«Ø¥ß¹s¥ó',
+ 'Cannot create Service' => '¤£¯à«Ø¥ßªA°È',
+ 'Cannot delete item!' => '¤£¯à§R°£¶µ¥Ø¡I',
+ 'Cannot stock assemblies!' => '¤£¯à§â»s¦¨«~¤J³f¡I',
+ 'Cash' => '²{ª÷',
+ 'Cc' => '§Û°e',
+ 'Check Inventory' => 'Àˬd¦s³f²M³æ',
+ 'City' => '«°¥«',
+ 'Closed' => '¤wÃö³¬',
+ 'Company Name' => '¤½¥q¦WºÙ',
+ 'Components' => '¹s¥ó',
+ 'Contact' => '³sµ¸¤H',
+ 'Continue' => 'Ä~Äò',
+ 'Copies' => '°Æ¥»',
+ 'Cost' => '¦¨¥»',
+ 'Country' => '°ê®a',
+ 'Curr' => '¥Ø«e',
+ 'Currency' => '¹ô§O',
+ 'Customer' => '«È¤á',
+ 'Customer Number' => '«È¤á½s¸¹',
+ 'Customer not on file!' => '¨S¦³¦¹«È¤áªº°O¿ý¡I',
+ 'Date' => '¤é´Á',
+ 'Dec' => '¤Q¤G¤ë',
+ 'December' => '¤Q¤G¤ë',
+ 'Delete' => '§R°£',
+ 'Delivery Date' => '¨ì´Á¤é',
+ 'Description' => '»¡©ú',
+ 'Detail' => '¸Ô±¡',
+ 'Drawing' => '¹Ïµe',
+ 'E-mail' => '¹q¤l¶l¥ó',
+ 'E-mail address missing!' => '¥¼«ü©ú¹q¤l¶l¥ó¦ì§}¡I',
+ 'E-mailed' => '¤w¹q¶l',
+ 'Edit Assembly' => '½s¿è»s¦¨«~',
+ 'Edit Labor/Overhead' => '½s¿èª½±µ¤H¤u/¸g±`¶O¥Î',
+ 'Edit Part' => '½s¿è¹s¥ó',
+ 'Edit Service' => '½s¿èªA°È',
+ 'Employee' => '¾­û',
+ 'Expense' => '¶O¥Î',
+ 'Expense account does not exist!' => '¶O¥Î±b¤á¤£¦s¦b¡I',
+ 'Extended' => 'Á`»ù',
+ 'Fax' => '¶Ç¯u',
+ 'Feb' => '¤G¤ë',
+ 'February' => '¤G¤ë',
+ 'From' => '±q',
+ 'Group' => '²Õ§O',
+ 'Image' => '¼v¹³',
+ 'In-line' => '¦æ¤º',
+ 'Include in Report' => '¤@¨ÖÅã¥Ü',
+ 'Income' => '¦¬¤J',
+ 'Income account does not exist!' => '¦¬¤J±b¤á¤£¦s¦b¡I',
+ 'Individual Items' => '­Ó§Oªº¶µ¥Ø',
+ 'Inventory' => '®w¦s',
+ 'Inventory account does not exist!' => '®w¦s¼Æ±b¤á¤£¦s¦b¡I',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => '¦b°±¥Î¦¹»s¦¨«~¤§«e, ¦s³f¼Æ¶q¥²»Ý¬°¹s¡I',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => '°±¥Î¦¹¶µ¹s¥ó¤§«e, ¦s³f¼Æ¶q¥²»Ý¬°¹s¡I',
+ 'Invoice' => 'µo²¼',
+ 'Invoice Date missing!' => '¥¼«ü©úµo²¼¤é´Á¡I',
+ 'Invoice Number' => 'µo²¼½s¸¹',
+ 'Invoice Number missing!' => '¥¼«ü©úµo²¼½s¸¹¡I',
+ 'Item deleted!' => '¤w§R°£¶µ¥Ø¡I',
+ 'Item not on file!' => '¨S¦³¦¹¶µ¥Øªº°O¿ý¡I',
+ 'Items' => '¶µ¥Ø',
+ 'Jan' => '¤@¤ë',
+ 'January' => '¤@¤ë',
+ 'Jul' => '¤C¤ë',
+ 'July' => '¤C¤ë',
+ 'Jun' => '¤»¤ë',
+ 'June' => '¤»¤ë',
+ 'Labor/Overhead' => 'ª½±µ¤H¤u/¸g±`¶O¥Î',
+ 'Last Cost' => '¤W¦¸ªº¦¨¥»',
+ 'Leadtime' => 'Á`»Ý®É',
+ 'Line Total' => 'Á`¦C¼Æ',
+ 'Link Accounts' => '³sµ²±b¤á',
+ 'List' => '¦Cªí',
+ 'List Price' => '¦C¥X»ù',
+ 'Make' => '¥Í²£°Ó',
+ 'Mar' => '¤T¤ë',
+ 'March' => '¤T¤ë',
+ 'Markup' => 'º¦»ù',
+ 'May' => '¤­¤ë',
+ 'May ' => '¤­¤ë',
+ 'Message' => '°T®§',
+ 'Microfiche' => '³æ¤ùÁY¼v½¦¤ù',
+ 'Model' => '«¬¸¹',
+ 'Name' => '¦WºÙ',
+ 'No.' => '½s¸¹',
+ 'Notes' => '³Æµù',
+ 'Nov' => '¤Q¤@¤ë',
+ 'November' => '¤Q¤@¤ë',
+ 'Number' => '½s¸¹',
+ 'Number missing in Row' => '¦¹¦C¤¤¯Ê¤Ö¼Æ­È',
+ 'OH' => '¤w¦³¦s¶q',
+ 'Obsolete' => '°±¥Î',
+ 'Oct' => '¤Q¤ë',
+ 'October' => '¤Q¤ë',
+ 'On Hand' => '¤w¦³¦s¶q',
+ 'Open' => '¶}±Ò',
+ 'Order' => '­q³æ',
+ 'Order Date missing!' => '¥¼«ü©ú¤U³æ¤é´Á¡I',
+ 'Order Number' => '­q³æ½s¸¹',
+ 'Order Number missing!' => '¥¼«ü©ú­q³æ½s¸¹¡I',
+ 'Orphaned' => 'µL¥D',
+ 'PDF' => 'PDF',
+ 'Packing List' => '¥X³f³æ',
+ 'Packing List Date missing!' => '¥¼«ü©ú¥X³f³æ¤é´Á¡I',
+ 'Packing List Number missing!' => '¥¼«ü©ú¥X³f³æ½s¸¹¡I',
+ 'Part' => '¹s¥ó',
+ 'Parts' => '¹s¥ó',
+ 'Period' => '´Á¶¡',
+ 'Phone' => '¹q¸Ü¸¹½X',
+ 'Pick List' => '´z³f²M³æ',
+ 'Postscript' => 'Postscript',
+ 'Price' => '»ù®æ',
+ 'Pricegroup' => '»ù®æ²Õ§O',
+ 'Printed' => '¤w¦C¦L',
+ 'Project' => '¶µ¥Ø',
+ 'Purchase Order' => '±ÄÁʳæ',
+ 'Purchase Orders' => '±ÄÁʳæ',
+ 'Qty' => '¼Æ¶q',
+ 'Quantity exceeds available units to stock!' => '¼Æ¶q¶W¹L¥i®w¦sªº¼Æ¶q¡I',
+ 'Quotation' => '³ø»ù³æ',
+ 'Quotation Date missing!' => '¥¼«ü©ú³ø»ù³æ¤é´Á¡I',
+ 'Quotation Number missing!' => '¥¼«ü©ú³ø»ù³æ¸¹½X¡I',
+ 'Quotations' => '³ø»ù³æ',
+ 'RFQ' => '³ø»ù½Ð¨D(RFQ) ',
+ 'ROP' => '¦A­qÂI',
+ 'Recd' => '¤w¦¬¨ì',
+ 'Required by' => '­n¨D¥æ¥I¤é´Á',
+ 'SKU' => '®w¦s³æ¦ì',
+ 'Sales Invoice' => '¾P°âµo²¼',
+ 'Sales Invoices' => '¾P°âµo²¼',
+ 'Sales Order' => '¾P³f³æ',
+ 'Sales Orders' => '¾P³f³æ',
+ 'Save' => 'Àx¦s',
+ 'Save as new' => '·í·sªºÀx¦s',
+ 'Scheduled' => '½s±Æ¤F®É¶¡',
+ 'Screen' => '¿Ã¹õ',
+ 'Select from one of the names below' => '©ó¤U¦C©m¦W¤¤¿ï¾Ü¤@­Ó',
+ 'Select items' => '¿ï¾Ü¶µ¥Ø',
+ 'Select txt, postscript or PDF!' => '¿ï¾Ü¤å¦r¡Bpostscript©ÎPDF¡I',
+ 'Sell' => '°â½æ',
+ 'Sell Price' => '°â»ù',
+ 'Sep' => '¤E¤ë',
+ 'September' => '¤E¤ë',
+ 'Serial No.' => '§Ç¸¹',
+ 'Serial Number' => '§Ç¸¹',
+ 'Service' => 'ªA°È',
+ 'Services' => 'ªA°È',
+ 'Ship' => '¥I¹B',
+ 'Ship to' => '¥I¹B¦Ü',
+ 'Shipping Address' => '¥I¹B¦a§}',
+ 'Short' => 'µu',
+ 'State/Province' => '¬Ù',
+ 'Stock' => '®w¦s',
+ 'Stock Assembly' => '§â»s¦¨«~¤J³f',
+ 'Subject' => '¼ÐÃD',
+ 'Subtotal' => '¤p­p',
+ 'Summary' => 'ºK­n',
+ 'Tax' => 'µ|ª÷',
+ 'Text' => '¤å¦r',
+ 'To' => '¦Ü',
+ 'Top Level' => '³»¼h',
+ 'Translation not on file!' => '¨S¦³¦¹Â½Ä¶ªº°O¿ý¡I',
+ 'Unit' => '³æ¦ì',
+ 'Update' => '§ó·s',
+ 'Updated' => '¤w§ó·s',
+ 'Vendor' => '¨ÑÀ³°Ó',
+ 'Vendor Invoice' => '¨ÑÀ³°Óµo²¼',
+ 'Vendor Invoices' => '¨ÑÀ³°Óµo²¼',
+ 'Vendor Number' => '¨ÑÀ³°Ó¸¹½X',
+ 'Vendor not on file!' => '¨S¦³¦¹¨ÑÀ³°Óªº°O¿ý¡I',
+ 'Warehouse' => '­Ü®w',
+ 'Weight' => '­«¶q',
+ 'What type of item is this?' => '¦¹¶µ¥ØÄÝ©ó¬Æ»òÃþ§O¡H',
+ 'Work Order' => '¤u§@³æ',
+ 'Year' => '¦~',
+ 'Zip/Postal Code' => '¶l¬F½s½X',
+ 'days' => '¤é',
+ 'sent' => '¤w°e¥X',
+ 'unexpected error!' => '¨S¦³¹w´Áªº¿ù»~¡I',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ '·s¼w»s¦¨«~' => 'add_assembly',
+ '·s¼wª½±µ¤h¤u_¸g±`¶o¥Î' => 'add_labor_overhead',
+ '·s¼w¹s¥ó' => 'add_part',
+ '·s¼wªa°È' => 'add_service',
+ 'Ä~Äò' => 'continue',
+ '§r°£' => 'delete',
+ '½s¿è»s¦¨«~' => 'edit_assembly',
+ '½s¿è¹s¥ó' => 'edit_part',
+ '½s¿èªa°È' => 'edit_service',
+ 'Àx¦s' => 'save',
+ '·í·sªºÀx¦s' => 'save_as_new',
+ '§ó·s' => 'update',
+};
+
+1;
+
diff --git a/locale/tw_big5/io b/locale/tw_big5/io
new file mode 100755
index 00000000..08efc3b1
--- /dev/null
+++ b/locale/tw_big5/io
@@ -0,0 +1,136 @@
+$self{charset} = 'BIG5';
+
+$self{texts} = {
+ 'Add Purchase Order' => '·s¼W±ÄÁʳæ',
+ 'Add Quotation' => '·s¼W³ø»ù³æ',
+ 'Add Request for Quotation' => '·s¼W³ø»ù³æ­n¨D',
+ 'Add Sales Order' => '·s¼W¾P³f³æ',
+ 'Address' => '¦a§}',
+ 'Apr' => '¥|¤ë',
+ 'April' => '¥|¤ë',
+ 'Attachment' => 'ªþ¥ó',
+ 'Aug' => '¤K¤ë',
+ 'August' => '¤K¤ë',
+ 'Bcc' => '¤£Åã¥Ü§Û°e',
+ 'Billing Address' => '±b³æ¦a§}',
+ 'Bin' => '½c',
+ 'Bin List' => '½cªº©ú²Óªí',
+ 'Cc' => '§Û°e',
+ 'City' => '«°¥«',
+ 'Company Name' => '¤½¥q¦WºÙ',
+ 'Contact' => '³sµ¸¤H',
+ 'Continue' => 'Ä~Äò',
+ 'Copies' => '°Æ¥»',
+ 'Country' => '°ê®a',
+ 'Customer Number' => '«È¤á½s¸¹',
+ 'Date' => '¤é´Á',
+ 'Dec' => '¤Q¤G¤ë',
+ 'December' => '¤Q¤G¤ë',
+ 'Delivery Date' => '¨ì´Á¤é',
+ 'Description' => '»¡©ú',
+ 'E-mail' => '¹q¤l¶l¥ó',
+ 'E-mail address missing!' => '¥¼«ü©ú¹q¤l¶l¥ó¦ì§}¡I',
+ 'E-mailed' => '¤w¹q¶l',
+ 'Extended' => 'Á`»ù',
+ 'Fax' => '¶Ç¯u',
+ 'Feb' => '¤G¤ë',
+ 'February' => '¤G¤ë',
+ 'Group' => '²Õ§O',
+ 'In-line' => '¦æ¤º',
+ 'Invoice' => 'µo²¼',
+ 'Invoice Date missing!' => '¥¼«ü©úµo²¼¤é´Á¡I',
+ 'Invoice Number missing!' => '¥¼«ü©úµo²¼½s¸¹¡I',
+ 'Item not on file!' => '¨S¦³¦¹¶µ¥Øªº°O¿ý¡I',
+ 'Jan' => '¤@¤ë',
+ 'January' => '¤@¤ë',
+ 'Jul' => '¤C¤ë',
+ 'July' => '¤C¤ë',
+ 'Jun' => '¤»¤ë',
+ 'June' => '¤»¤ë',
+ 'Mar' => '¤T¤ë',
+ 'March' => '¤T¤ë',
+ 'May' => '¤­¤ë',
+ 'May ' => '¤­¤ë',
+ 'Message' => '°T®§',
+ 'Nov' => '¤Q¤@¤ë',
+ 'November' => '¤Q¤@¤ë',
+ 'Number' => '½s¸¹',
+ 'Number missing in Row' => '¦¹¦C¤¤¯Ê¤Ö¼Æ­È',
+ 'OH' => '¤w¦³¦s¶q',
+ 'Oct' => '¤Q¤ë',
+ 'October' => '¤Q¤ë',
+ 'Order Date missing!' => '¥¼«ü©ú¤U³æ¤é´Á¡I',
+ 'Order Number missing!' => '¥¼«ü©ú­q³æ½s¸¹¡I',
+ 'PDF' => 'PDF',
+ 'Packing List' => '¥X³f³æ',
+ 'Packing List Date missing!' => '¥¼«ü©ú¥X³f³æ¤é´Á¡I',
+ 'Packing List Number missing!' => '¥¼«ü©ú¥X³f³æ½s¸¹¡I',
+ 'Part' => '¹s¥ó',
+ 'Phone' => '¹q¸Ü¸¹½X',
+ 'Pick List' => '´z³f²M³æ',
+ 'Postscript' => 'Postscript',
+ 'Price' => '»ù®æ',
+ 'Printed' => '¤w¦C¦L',
+ 'Project' => '¶µ¥Ø',
+ 'Purchase Order' => '±ÄÁʳæ',
+ 'Qty' => '¼Æ¶q',
+ 'Quotation' => '³ø»ù³æ',
+ 'Quotation Date missing!' => '¥¼«ü©ú³ø»ù³æ¤é´Á¡I',
+ 'Quotation Number missing!' => '¥¼«ü©ú³ø»ù³æ¸¹½X¡I',
+ 'Recd' => '¤w¦¬¨ì',
+ 'Required by' => '­n¨D¥æ¥I¤é´Á',
+ 'SKU' => '®w¦s³æ¦ì',
+ 'Sales Order' => '¾P³f³æ',
+ 'Scheduled' => '½s±Æ¤F®É¶¡',
+ 'Screen' => '¿Ã¹õ',
+ 'Select items' => '¿ï¾Ü¶µ¥Ø',
+ 'Select txt, postscript or PDF!' => '¿ï¾Ü¤å¦r¡Bpostscript©ÎPDF¡I',
+ 'Sep' => '¤E¤ë',
+ 'September' => '¤E¤ë',
+ 'Serial No.' => '§Ç¸¹',
+ 'Service' => 'ªA°È',
+ 'Ship' => '¥I¹B',
+ 'Ship to' => '¥I¹B¦Ü',
+ 'Shipping Address' => '¥I¹B¦a§}',
+ 'State/Province' => '¬Ù',
+ 'Subject' => '¼ÐÃD',
+ 'Subtotal' => '¤p­p',
+ 'Text' => '¤å¦r',
+ 'To' => '¦Ü',
+ 'Translation not on file!' => '¨S¦³¦¹Â½Ä¶ªº°O¿ý¡I',
+ 'Unit' => '³æ¦ì',
+ 'Vendor Number' => '¨ÑÀ³°Ó¸¹½X',
+ 'What type of item is this?' => '¦¹¶µ¥ØÄÝ©ó¬Æ»òÃþ§O¡H',
+ 'Work Order' => '¤u§@³æ',
+ 'Zip/Postal Code' => '¶l¬F½s½X',
+ 'sent' => '¤w°e¥X',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'Ä~Äò' => 'continue',
+};
+
+1;
+
diff --git a/locale/tw_big5/ir b/locale/tw_big5/ir
new file mode 100755
index 00000000..ab887bfa
--- /dev/null
+++ b/locale/tw_big5/ir
@@ -0,0 +1,256 @@
+$self{charset} = 'BIG5';
+
+$self{texts} = {
+ 'Account' => '±b¤á',
+ 'Accounting Menu' => '·|­p¿ï³æ',
+ 'Add Purchase Order' => '·s¼W±ÄÁʳæ',
+ 'Add Quotation' => '·s¼W³ø»ù³æ',
+ 'Add Request for Quotation' => '·s¼W³ø»ù³æ­n¨D',
+ 'Add Sales Order' => '·s¼W¾P³f³æ',
+ 'Add Vendor Invoice' => '·s¼W¨ÑÀ³°Óµo²¼',
+ 'Address' => '¦a§}',
+ 'Amount' => 'ª÷ÃB',
+ 'Apr' => '¥|¤ë',
+ 'April' => '¥|¤ë',
+ 'Are you sure you want to delete Invoice Number' => '±z¬O§_½T©w­n§R°£µo²¼½s¸¹',
+ 'Attachment' => 'ªþ¥ó',
+ 'Aug' => '¤K¤ë',
+ 'August' => '¤K¤ë',
+ 'Bcc' => '¤£Åã¥Ü§Û°e',
+ 'Billing Address' => '±b³æ¦a§}',
+ 'Bin' => '½c',
+ 'Bin List' => '½cªº©ú²Óªí',
+ 'Cannot delete invoice!' => '¤£¯à§R°£µo²¼¡I',
+ 'Cannot post invoice for a closed period!' => '¤£¯à¦b¤wÃö³¬ªº®É¬q¤º¥[¤Jµo²¼¡I',
+ 'Cannot post invoice!' => '¤£¯à¥[¤Jµo²¼¡I',
+ 'Cannot post payment for a closed period!' => '¤£¯à¦b¤wÃö³¬ªº®É¬q¤º¥[¤J´Ú¶µ¡I',
+ 'Cc' => '§Û°e',
+ 'City' => '«°¥«',
+ 'Company Name' => '¤½¥q¦WºÙ',
+ 'Confirm!' => '¤J±b¦¨¥\¡I',
+ 'Contact' => '³sµ¸¤H',
+ 'Continue' => 'Ä~Äò',
+ 'Copies' => '°Æ¥»',
+ 'Country' => '°ê®a',
+ 'Credit Limit' => '«H¥ÎÃB«×',
+ 'Currency' => '¹ô§O',
+ 'Customer Number' => '«È¤á½s¸¹',
+ 'Customer not on file!' => '¨S¦³¦¹«È¤áªº°O¿ý¡I',
+ 'Date' => '¤é´Á',
+ 'Day(s)' => '¤é',
+ 'Dec' => '¤Q¤G¤ë',
+ 'December' => '¤Q¤G¤ë',
+ 'Delete' => '§R°£',
+ 'Delete Schedule' => '§R°£®É¶¡ªí',
+ 'Delivery Date' => '¨ì´Á¤é',
+ 'Department' => '³¡ªù',
+ 'Description' => '»¡©ú',
+ 'Due Date' => '¨ì´Á¤é',
+ 'E-mail' => '¹q¤l¶l¥ó',
+ 'E-mail address missing!' => '¥¼«ü©ú¹q¤l¶l¥ó¦ì§}¡I',
+ 'E-mail message' => '¹q¤l¶l¥ó°T®§',
+ 'E-mailed' => '¤w¹q¶l',
+ 'Edit Vendor Invoice' => '½s¿è¨ÑÀ³°Óµo²¼',
+ 'Every' => '¨C',
+ 'Exch' => '¶×²v',
+ 'Exchange Rate' => '¶×²v',
+ 'Exchange rate for payment missing!' => '¥¼«ü©ú¥I´Úªº¶×²v¡I',
+ 'Exchange rate missing!' => '¥¼«ü©ú¶×²v¡I',
+ 'Extended' => 'Á`»ù',
+ 'Fax' => '¶Ç¯u',
+ 'Feb' => '¤G¤ë',
+ 'February' => '¤G¤ë',
+ 'For' => '­«ÂÐ',
+ 'Group' => '²Õ§O',
+ 'In-line' => '¦æ¤º',
+ 'Include Payment' => '¥]¬A¥I´Ú',
+ 'Internal Notes' => '¤º³¡³Æ§Ñ¿ý',
+ 'Invoice' => 'µo²¼',
+ 'Invoice Date' => 'µo²¼¤é´Á',
+ 'Invoice Date missing!' => '¥¼«ü©úµo²¼¤é´Á¡I',
+ 'Invoice Number' => 'µo²¼½s¸¹',
+ 'Invoice Number missing!' => '¥¼«ü©úµo²¼½s¸¹¡I',
+ 'Invoice deleted!' => '¤w§R°£µo²¼¡I',
+ 'Item not on file!' => '¨S¦³¦¹¶µ¥Øªº°O¿ý¡I',
+ 'Jan' => '¤@¤ë',
+ 'January' => '¤@¤ë',
+ 'Jul' => '¤C¤ë',
+ 'July' => '¤C¤ë',
+ 'Jun' => '¤»¤ë',
+ 'June' => '¤»¤ë',
+ 'Language' => '»y¨¥',
+ 'Mar' => '¤T¤ë',
+ 'March' => '¤T¤ë',
+ 'May' => '¤­¤ë',
+ 'May ' => '¤­¤ë',
+ 'Memo' => '³Æ§Ñ¿ý',
+ 'Message' => '°T®§',
+ 'Month(s)' => '¤ë',
+ 'Next Date' => '¤U¤@¤é',
+ 'Notes' => '³Æµù',
+ 'Nov' => '¤Q¤@¤ë',
+ 'November' => '¤Q¤@¤ë',
+ 'Number' => '½s¸¹',
+ 'Number missing in Row' => '¦¹¦C¤¤¯Ê¤Ö¼Æ­È',
+ 'OH' => '¤w¦³¦s¶q',
+ 'Oct' => '¤Q¤ë',
+ 'October' => '¤Q¤ë',
+ 'Order Date missing!' => '¥¼«ü©ú¤U³æ¤é´Á¡I',
+ 'Order Number' => '­q³æ½s¸¹',
+ 'Order Number missing!' => '¥¼«ü©ú­q³æ½s¸¹¡I',
+ 'PDF' => 'PDF',
+ 'PO Number' => '±ÄÁʳæ½s¸¹',
+ 'Packing List' => '¥X³f³æ',
+ 'Packing List Date missing!' => '¥¼«ü©ú¥X³f³æ¤é´Á¡I',
+ 'Packing List Number missing!' => '¥¼«ü©ú¥X³f³æ½s¸¹¡I',
+ 'Part' => '¹s¥ó',
+ 'Payment date missing!' => '¥¼«ü©ú¥I´Ú¤é´Á¡I',
+ 'Payments' => '¥I´Ú',
+ 'Phone' => '¹q¸Ü¸¹½X',
+ 'Pick List' => '´z³f²M³æ',
+ 'Post' => '¥[¤J',
+ 'Post as new' => '·í·sªº¥[¤J',
+ 'Postscript' => 'Postscript',
+ 'Price' => '»ù®æ',
+ 'Print' => '¦C¦L',
+ 'Printed' => '¤w¦C¦L',
+ 'Project' => '¶µ¥Ø',
+ 'Project not on file!' => '¨S¦³¦¹¶µ¥Øªº°O¿ý¡I',
+ 'Purchase Order' => '±ÄÁʳæ',
+ 'Qty' => '¼Æ¶q',
+ 'Quotation' => '³ø»ù³æ',
+ 'Quotation Date missing!' => '¥¼«ü©ú³ø»ù³æ¤é´Á¡I',
+ 'Quotation Number missing!' => '¥¼«ü©ú³ø»ù³æ¸¹½X¡I',
+ 'Recd' => '¤w¦¬¨ì',
+ 'Record in' => '°O¿ý©ó',
+ 'Recurring Transaction' => '­«ÂÐ¥X²{ªº¥æ©ö',
+ 'Reference' => '°Ñ¦Ò¸ê®Æ',
+ 'Remaining' => '©|¾l',
+ 'Repeat' => '­«ÂÐ',
+ 'Required by' => '­n¨D¥æ¥I¤é´Á',
+ 'SKU' => '®w¦s³æ¦ì',
+ 'Sales Order' => '¾P³f³æ',
+ 'Save Schedule' => 'Àx¦s®É¶¡ªí',
+ 'Schedule' => '®É¶¡ªí',
+ 'Scheduled' => '½s±Æ¤F®É¶¡',
+ 'Screen' => '¿Ã¹õ',
+ 'Select from one of the names below' => '©ó¤U¦C©m¦W¤¤¿ï¾Ü¤@­Ó',
+ 'Select from one of the projects below' => '©ó¤U¦C¶µ¥Ø¤¤¿ï¾Ü¤@­Ó',
+ 'Select items' => '¿ï¾Ü¶µ¥Ø',
+ 'Select txt, postscript or PDF!' => '¿ï¾Ü¤å¦r¡Bpostscript©ÎPDF¡I',
+ 'Sep' => '¤E¤ë',
+ 'September' => '¤E¤ë',
+ 'Serial No.' => '§Ç¸¹',
+ 'Service' => 'ªA°È',
+ 'Ship' => '¥I¹B',
+ 'Ship to' => '¥I¹B¦Ü',
+ 'Shipping Address' => '¥I¹B¦a§}',
+ 'Source' => '¨Ó·½',
+ 'Startdate' => '¶}©l¤é´Á',
+ 'State/Province' => '¬Ù',
+ 'Subject' => '¼ÐÃD',
+ 'Subtotal' => '¤p­p',
+ 'Tax Included' => '¤w§tµ|ª÷',
+ 'Text' => '¤å¦r',
+ 'To' => '¦Ü',
+ 'Total' => 'Á`­p',
+ 'Translation not on file!' => '¨S¦³¦¹Â½Ä¶ªº°O¿ý¡I',
+ 'Unit' => '³æ¦ì',
+ 'Update' => '§ó·s',
+ 'Vendor' => '¨ÑÀ³°Ó',
+ 'Vendor Number' => '¨ÑÀ³°Ó¸¹½X',
+ 'Vendor missing!' => '¥¼«ü©ú¨ÑÀ³°Ó¡I',
+ 'Vendor not on file!' => '¨S¦³¦¹¨ÑÀ³°Óªº°O¿ý¡I',
+ 'Warning!' => 'ĵ§i¡I',
+ 'Week(s)' => '¬P´Á',
+ 'What type of item is this?' => '¦¹¶µ¥ØÄÝ©ó¬Æ»òÃþ§O¡H',
+ 'Work Order' => '¤u§@³æ',
+ 'Year(s)' => '¦~',
+ 'Yes' => '¬O',
+ 'You are posting an existing transaction!' => '±z¥¿¦b¥[¤J¤@­Ó²{¦sªº¥æ©ö¡I',
+ 'You are printing and posting an existing transaction!' => '±z¥¿¦b¦C¦L¤Î¥[¤J¤@­Ó²{¦sªº¥æ©ö¡I',
+ 'You are printing and saving an existing order' => '±z¥¿¦b¦C¦L¤ÎÀx¦s¤@±i²{¦sªº­q³æ¡I',
+ 'You are printing and saving an existing quotation' => '±z¥¿¦b¦C¦L¤ÎÀx¦s¤@±i²{¦sªº³ø»ù³æ¡I',
+ 'You are saving an existing order' => '±z¥¿¦bÀx¦s¤@±i²{¦sªº­q³æ¡I',
+ 'You are saving an existing quotation' => '±z¥¿¦bÀx¦s¤@±i²{¦sªº³ø»ù³æ¡I',
+ 'Zip/Postal Code' => '¶l¬F½s½X',
+ 'ea' => '­Ó',
+ 'for' => '¬°¤F',
+ 'posted!' => '¤w¥[¤J¡I',
+ 'sent' => '¤w°e¥X',
+ 'time(s)' => '¦¸',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'Ä~Äò' => 'continue',
+ '§r°£' => 'delete',
+ '§r°£®É¶¡ªí' => 'delete_schedule',
+ '¥[¤j' => 'post',
+ '·í·sªº¥[¤j' => 'post_as_new',
+ '±ÄÁʳæ' => 'purchase_order',
+ 'Àx¦s®É¶¡ªí' => 'save_schedule',
+ '®É¶¡ªí' => 'schedule',
+ '§ó·s' => 'update',
+ '¬o' => 'yes',
+};
+
+1;
+
diff --git a/locale/tw_big5/is b/locale/tw_big5/is
new file mode 100755
index 00000000..0cb6568f
--- /dev/null
+++ b/locale/tw_big5/is
@@ -0,0 +1,270 @@
+$self{charset} = 'BIG5';
+
+$self{texts} = {
+ 'Account' => '±b¤á',
+ 'Accounting Menu' => '·|­p¿ï³æ',
+ 'Add Purchase Order' => '·s¼W±ÄÁʳæ',
+ 'Add Quotation' => '·s¼W³ø»ù³æ',
+ 'Add Request for Quotation' => '·s¼W³ø»ù³æ­n¨D',
+ 'Add Sales Invoice' => '·s¼W¾P°âµo²¼',
+ 'Add Sales Order' => '·s¼W¾P³f³æ',
+ 'Address' => '¦a§}',
+ 'Amount' => 'ª÷ÃB',
+ 'Apr' => '¥|¤ë',
+ 'April' => '¥|¤ë',
+ 'Are you sure you want to delete Invoice Number' => '±z¬O§_½T©w­n§R°£µo²¼½s¸¹',
+ 'Attachment' => 'ªþ¥ó',
+ 'Aug' => '¤K¤ë',
+ 'August' => '¤K¤ë',
+ 'Bcc' => '¤£Åã¥Ü§Û°e',
+ 'Billing Address' => '±b³æ¦a§}',
+ 'Bin' => '½c',
+ 'Bin List' => '½cªº©ú²Óªí',
+ 'Business' => '·~°È',
+ 'Cannot delete invoice!' => '¤£¯à§R°£µo²¼¡I',
+ 'Cannot post invoice for a closed period!' => '¤£¯à¦b¤wÃö³¬ªº®É¬q¤º¥[¤Jµo²¼¡I',
+ 'Cannot post invoice!' => '¤£¯à¥[¤Jµo²¼¡I',
+ 'Cannot post payment for a closed period!' => '¤£¯à¦b¤wÃö³¬ªº®É¬q¤º¥[¤J´Ú¶µ¡I',
+ 'Cc' => '§Û°e',
+ 'City' => '«°¥«',
+ 'Company Name' => '¤½¥q¦WºÙ',
+ 'Confirm!' => '¤J±b¦¨¥\¡I',
+ 'Contact' => '³sµ¸¤H',
+ 'Continue' => 'Ä~Äò',
+ 'Copies' => '°Æ¥»',
+ 'Country' => '°ê®a',
+ 'Credit Limit' => '«H¥ÎÃB«×',
+ 'Currency' => '¹ô§O',
+ 'Customer' => '«È¤á',
+ 'Customer Number' => '«È¤á½s¸¹',
+ 'Customer missing!' => '¥¼«ü©ú«È¤á¡I',
+ 'Customer not on file!' => '¨S¦³¦¹«È¤áªº°O¿ý¡I',
+ 'Date' => '¤é´Á',
+ 'Day(s)' => '¤é',
+ 'Dec' => '¤Q¤G¤ë',
+ 'December' => '¤Q¤G¤ë',
+ 'Delete' => '§R°£',
+ 'Delete Schedule' => '§R°£®É¶¡ªí',
+ 'Delivery Date' => '¨ì´Á¤é',
+ 'Department' => '³¡ªù',
+ 'Description' => '»¡©ú',
+ 'Due Date' => '¨ì´Á¤é',
+ 'E-mail' => '¹q¤l¶l¥ó',
+ 'E-mail address missing!' => '¥¼«ü©ú¹q¤l¶l¥ó¦ì§}¡I',
+ 'E-mail message' => '¹q¤l¶l¥ó°T®§',
+ 'E-mailed' => '¤w¹q¶l',
+ 'Edit Sales Invoice' => '½s¿è¾P°âµo²¼',
+ 'Every' => '¨C',
+ 'Exch' => '¶×²v',
+ 'Exchange Rate' => '¶×²v',
+ 'Exchange rate for payment missing!' => '¥¼«ü©ú¥I´Úªº¶×²v¡I',
+ 'Exchange rate missing!' => '¥¼«ü©ú¶×²v¡I',
+ 'Extended' => 'Á`»ù',
+ 'Fax' => '¶Ç¯u',
+ 'Feb' => '¤G¤ë',
+ 'February' => '¤G¤ë',
+ 'For' => '­«ÂÐ',
+ 'Group' => '²Õ§O',
+ 'In-line' => '¦æ¤º',
+ 'Include Payment' => '¥]¬A¥I´Ú',
+ 'Internal Notes' => '¤º³¡³Æ§Ñ¿ý',
+ 'Invoice' => 'µo²¼',
+ 'Invoice Date' => 'µo²¼¤é´Á',
+ 'Invoice Date missing!' => '¥¼«ü©úµo²¼¤é´Á¡I',
+ 'Invoice Number' => 'µo²¼½s¸¹',
+ 'Invoice Number missing!' => '¥¼«ü©úµo²¼½s¸¹¡I',
+ 'Invoice deleted!' => '¤w§R°£µo²¼¡I',
+ 'Item not on file!' => '¨S¦³¦¹¶µ¥Øªº°O¿ý¡I',
+ 'Jan' => '¤@¤ë',
+ 'January' => '¤@¤ë',
+ 'Jul' => '¤C¤ë',
+ 'July' => '¤C¤ë',
+ 'Jun' => '¤»¤ë',
+ 'June' => '¤»¤ë',
+ 'Mar' => '¤T¤ë',
+ 'March' => '¤T¤ë',
+ 'May' => '¤­¤ë',
+ 'May ' => '¤­¤ë',
+ 'Memo' => '³Æ§Ñ¿ý',
+ 'Message' => '°T®§',
+ 'Month(s)' => '¤ë',
+ 'Next Date' => '¤U¤@¤é',
+ 'Notes' => '³Æµù',
+ 'Nov' => '¤Q¤@¤ë',
+ 'November' => '¤Q¤@¤ë',
+ 'Number' => '½s¸¹',
+ 'Number missing in Row' => '¦¹¦C¤¤¯Ê¤Ö¼Æ­È',
+ 'OH' => '¤w¦³¦s¶q',
+ 'Oct' => '¤Q¤ë',
+ 'October' => '¤Q¤ë',
+ 'Order Date missing!' => '¥¼«ü©ú¤U³æ¤é´Á¡I',
+ 'Order Number' => '­q³æ½s¸¹',
+ 'Order Number missing!' => '¥¼«ü©ú­q³æ½s¸¹¡I',
+ 'PDF' => 'PDF',
+ 'PO Number' => '±ÄÁʳæ½s¸¹',
+ 'Packing List' => '¥X³f³æ',
+ 'Packing List Date missing!' => '¥¼«ü©ú¥X³f³æ¤é´Á¡I',
+ 'Packing List Number missing!' => '¥¼«ü©ú¥X³f³æ½s¸¹¡I',
+ 'Part' => '¹s¥ó',
+ 'Payment date missing!' => '¥¼«ü©ú¥I´Ú¤é´Á¡I',
+ 'Payments' => '¥I´Ú',
+ 'Phone' => '¹q¸Ü¸¹½X',
+ 'Pick List' => '´z³f²M³æ',
+ 'Post' => '¥[¤J',
+ 'Post as new' => '·í·sªº¥[¤J',
+ 'Postscript' => 'Postscript',
+ 'Price' => '»ù®æ',
+ 'Print' => '¦C¦L',
+ 'Print and Post' => '¦C¦L¨Ã¥[¤J',
+ 'Print and Post as new' => '¦C¦L¨Ã¥[¤J§@¬°·sªº',
+ 'Printed' => '¤w¦C¦L',
+ 'Project' => '¶µ¥Ø',
+ 'Project not on file!' => '¨S¦³¦¹¶µ¥Øªº°O¿ý¡I',
+ 'Purchase Order' => '±ÄÁʳæ',
+ 'Qty' => '¼Æ¶q',
+ 'Quotation' => '³ø»ù³æ',
+ 'Quotation Date missing!' => '¥¼«ü©ú³ø»ù³æ¤é´Á¡I',
+ 'Quotation Number missing!' => '¥¼«ü©ú³ø»ù³æ¸¹½X¡I',
+ 'Recd' => '¤w¦¬¨ì',
+ 'Record in' => '°O¿ý©ó',
+ 'Recurring Transaction' => '­«ÂÐ¥X²{ªº¥æ©ö',
+ 'Reference' => '°Ñ¦Ò¸ê®Æ',
+ 'Remaining' => '©|¾l',
+ 'Repeat' => '­«ÂÐ',
+ 'Required by' => '­n¨D¥æ¥I¤é´Á',
+ 'SKU' => '®w¦s³æ¦ì',
+ 'Sales Order' => '¾P³f³æ',
+ 'Salesperson' => '¾P°â¤H­û',
+ 'Save Schedule' => 'Àx¦s®É¶¡ªí',
+ 'Schedule' => '®É¶¡ªí',
+ 'Scheduled' => '½s±Æ¤F®É¶¡',
+ 'Screen' => '¿Ã¹õ',
+ 'Select a Printer!' => '¿ï¾Ü¦Lªí¾÷¡I',
+ 'Select from one of the names below' => '©ó¤U¦C©m¦W¤¤¿ï¾Ü¤@­Ó',
+ 'Select from one of the projects below' => '©ó¤U¦C¶µ¥Ø¤¤¿ï¾Ü¤@­Ó',
+ 'Select items' => '¿ï¾Ü¶µ¥Ø',
+ 'Select postscript or PDF!' => '¿ï¾Üpostscript©ÎPDF¡I',
+ 'Select txt, postscript or PDF!' => '¿ï¾Ü¤å¦r¡Bpostscript©ÎPDF¡I',
+ 'Sep' => '¤E¤ë',
+ 'September' => '¤E¤ë',
+ 'Serial No.' => '§Ç¸¹',
+ 'Service' => 'ªA°È',
+ 'Ship' => '¥I¹B',
+ 'Ship to' => '¥I¹B¦Ü',
+ 'Ship via' => '¥I¹B¤½¥q',
+ 'Shipping Address' => '¥I¹B¦a§}',
+ 'Shipping Point' => '¥I¹B¦aÂI',
+ 'Source' => '¨Ó·½',
+ 'Startdate' => '¶}©l¤é´Á',
+ 'State/Province' => '¬Ù',
+ 'Subject' => '¼ÐÃD',
+ 'Subtotal' => '¤p­p',
+ 'Tax Included' => '¤w§tµ|ª÷',
+ 'Text' => '¤å¦r',
+ 'To' => '¦Ü',
+ 'Total' => 'Á`­p',
+ 'Trade Discount' => '¶T©ö§é¦©',
+ 'Translation not on file!' => '¨S¦³¦¹Â½Ä¶ªº°O¿ý¡I',
+ 'Unit' => '³æ¦ì',
+ 'Update' => '§ó·s',
+ 'Vendor Number' => '¨ÑÀ³°Ó¸¹½X',
+ 'Vendor not on file!' => '¨S¦³¦¹¨ÑÀ³°Óªº°O¿ý¡I',
+ 'Warning!' => 'ĵ§i¡I',
+ 'Week(s)' => '¬P´Á',
+ 'What type of item is this?' => '¦¹¶µ¥ØÄÝ©ó¬Æ»òÃþ§O¡H',
+ 'Work Order' => '¤u§@³æ',
+ 'Year(s)' => '¦~',
+ 'Yes' => '¬O',
+ 'You are posting an existing transaction!' => '±z¥¿¦b¥[¤J¤@­Ó²{¦sªº¥æ©ö¡I',
+ 'You are printing and posting an existing transaction!' => '±z¥¿¦b¦C¦L¤Î¥[¤J¤@­Ó²{¦sªº¥æ©ö¡I',
+ 'You are printing and saving an existing order' => '±z¥¿¦b¦C¦L¤ÎÀx¦s¤@±i²{¦sªº­q³æ¡I',
+ 'You are printing and saving an existing quotation' => '±z¥¿¦b¦C¦L¤ÎÀx¦s¤@±i²{¦sªº³ø»ù³æ¡I',
+ 'You are saving an existing order' => '±z¥¿¦bÀx¦s¤@±i²{¦sªº­q³æ¡I',
+ 'You are saving an existing quotation' => '±z¥¿¦bÀx¦s¤@±i²{¦sªº³ø»ù³æ¡I',
+ 'Zip/Postal Code' => '¶l¬F½s½X',
+ 'ea' => '­Ó',
+ 'for' => '¬°¤F',
+ 'posted!' => '¤w¥[¤J¡I',
+ 'sent' => '¤w°e¥X',
+ 'time(s)' => '¦¸',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'Ä~Äò' => 'continue',
+ '§r°£' => 'delete',
+ '§r°£®É¶¡ªí' => 'delete_schedule',
+ '¹q¤l¶l¥ó' => 'e_mail',
+ '¥[¤j' => 'post',
+ '·í·sªº¥[¤j' => 'post_as_new',
+ '¦c¦l' => 'print',
+ '¦c¦l¨Ã¥[¤j' => 'print_and_post',
+ '¦c¦l¨Ã¥[¤j§@¬°·sªº' => 'print_and_post_as_new',
+ '¾p³f³æ' => 'sales_order',
+ 'Àx¦s®É¶¡ªí' => 'save_schedule',
+ '®É¶¡ªí' => 'schedule',
+ '¥i¹b¦Ü' => 'ship_to',
+ '§ó·s' => 'update',
+ '¬o' => 'yes',
+};
+
+1;
+
diff --git a/locale/tw_big5/jc b/locale/tw_big5/jc
new file mode 100755
index 00000000..163c1628
--- /dev/null
+++ b/locale/tw_big5/jc
@@ -0,0 +1,124 @@
+$self{charset} = 'BIG5';
+
+$self{texts} = {
+ 'Accounting Menu' => '·|­p¿ï³æ',
+ 'Amount' => 'ª÷ÃB',
+ 'Clocked' => '­pºâ¥Xªº®É¶¡',
+ 'Closed' => '¤wÃö³¬',
+ 'Confirm!' => '¤J±b¦¨¥\¡I',
+ 'Continue' => 'Ä~Äò',
+ 'Cost' => '¦¨¥»',
+ 'Current' => '²{¦³',
+ 'Date' => '¤é´Á',
+ 'Date missing!' => '¥¼«ü©ú¤é´Á¡I',
+ 'Date worked' => '¤u§@¤é´Á',
+ 'Delete' => '§R°£',
+ 'Description' => '»¡©ú',
+ 'Employee' => '¾­û',
+ 'Friday' => '¬P´Á¤­',
+ 'From' => '±q',
+ 'ID' => 'ÃѧO½s¸¹',
+ 'Include in Report' => '¤@¨ÖÅã¥Ü',
+ 'Job Name' => '¤u§@¦WºÙ',
+ 'Job Number' => '¤u§@½s¸¹',
+ 'Job Number missing!' => '¥¼«ü©ú¤u§@½s¸¹¡I',
+ 'Labor Code' => 'ª½±µ¤H¤u¥N½X',
+ 'Monday' => '¬P´Á¤@',
+ 'Month' => '¤ë',
+ 'No Employees on file!' => '¨S¦³¥ô¦ó¹µ­ûªº°O¿ý¡I',
+ 'No Labor codes on file!' => '¨S¦³¥ô¦óª½±µ¤H¤u¥N½Xªº°O¿ý¡I',
+ 'No open Jobs!' => '¨S¦³¤w¶}±Òªº¤u§@',
+ 'No open Projects!' => '¨S¦³¤w¶}±Òªº¶µ¥Ø',
+ 'Notes' => '³Æµù',
+ 'Open' => '¶}±Ò',
+ 'PDF' => 'PDF',
+ 'Part Number' => '¹s¥ó½s¸¹',
+ 'Period' => '´Á¶¡',
+ 'Postscript' => 'Postscript',
+ 'Print' => '¦C¦L',
+ 'Print and Save' => '¦C¦L¨ÃÀx¦s',
+ 'Print and Save as new' => '¦C¦L¨ÃÀx¦s§@¬°·sªº',
+ 'Printed' => '¤w¦C¦L',
+ 'Project Name' => '¶µ¥Ø¦WºÙ',
+ 'Project Number' => '¶µ¥Ø¸¹½X',
+ 'Project Number missing!' => '¥¼«ü©ú¶µ¥Ø¸¹½X¡I',
+ 'Project/Job Name' => '¶µ¥Ø/¤u§@¦WºÙ',
+ 'Project/Job Number' => '¶µ¥Ø/¤u§@¸¹½X',
+ 'Qty' => '¼Æ¶q',
+ 'Quarter' => '©u',
+ 'Saturday' => '¬P´Á¤»',
+ 'Save' => 'Àx¦s',
+ 'Save as new' => '·í·sªºÀx¦s',
+ 'Screen' => '¿Ã¹õ',
+ 'Select a Printer!' => '¿ï¾Ü¦Lªí¾÷¡I',
+ 'Select postscript or PDF!' => '¿ï¾Üpostscript©ÎPDF¡I',
+ 'Service Code' => 'ªA°È½s¸¹',
+ 'Service/Labor Code' => 'ªA°È/ª½±µ¤H¤u½s¸¹',
+ 'Startdate' => '¶}©l¤é´Á',
+ 'Subtotal' => '¤p­p',
+ 'Sunday' => '¬P´Á¤é',
+ 'Thursday' => '¬P´Á¥|',
+ 'Time In' => '¤W¯Z®É¶¡',
+ 'Time Out' => '¤U¯Z®É¶¡',
+ 'To' => '¦Ü',
+ 'Total' => 'Á`­p',
+ 'Tuesday' => '¬P´Á¤G',
+ 'Update' => '§ó·s',
+ 'Warning!' => 'ĵ§i¡I',
+ 'Wednesday' => '¬P´Á¤T',
+ 'Year' => '¦~',
+ 'Yes' => '¬O',
+ 'You are printing and saving an existing transaction!' => '±z¥¿¦b¦C¦L¤ÎÀx¦s¤@­Ó²{¦sªº¥æ©ö¡I',
+ 'You are saving an existing transaction!' => '±z¥¿¦bÀx¦s¤@­Ó²{¦sªº¥æ©ö¡I',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'Ä~Äò' => 'continue',
+ '§r°£' => 'delete',
+ '¦c¦l' => 'print',
+ '¦c¦l¨ÃÀx¦s' => 'print_and_save',
+ '¦c¦l¨ÃÀx¦s§@¬°·sªº' => 'print_and_save_as_new',
+ 'Àx¦s' => 'save',
+ '·í·sªºÀx¦s' => 'save_as_new',
+ '§ó·s' => 'update',
+ '¬o' => 'yes',
+};
+
+1;
+
diff --git a/locale/tw_big5/locales.pl b/locale/tw_big5/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/tw_big5/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/tw_big5/login b/locale/tw_big5/login
new file mode 100755
index 00000000..0f39169b
--- /dev/null
+++ b/locale/tw_big5/login
@@ -0,0 +1,27 @@
+$self{charset} = 'BIG5';
+
+$self{texts} = {
+ 'Access Denied!' => '©Úµ´¦s¨ú¡I',
+ 'Company' => '¤½¥q',
+ 'Continue' => 'Ä~Äò',
+ 'Dataset is newer than version!' => '¸û·s¸ê®Æ¶°¡I',
+ 'Incorrect Dataset version!' => '¸ê®Æ¶°ª©¥»¿ù»~¡I',
+ 'Login' => 'µn¤J',
+ 'Name' => '¦WºÙ',
+ 'Password' => '±K½X',
+ 'Upgrading to Version' => '¥¿¤É¯Å¦Ü·sª©',
+ 'Version' => 'ª©¥»',
+ 'You did not enter a name!' => '§A¨Ã¥¼Áä¤J¦WºÙ¡I',
+ 'done' => '§¹¦¨',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ 'µn¤j' => 'login',
+};
+
+1;
+
diff --git a/locale/tw_big5/menu b/locale/tw_big5/menu
new file mode 100755
index 00000000..f9900ee0
--- /dev/null
+++ b/locale/tw_big5/menu
@@ -0,0 +1,139 @@
+$self{charset} = 'BIG5';
+
+$self{texts} = {
+ 'AP' => 'À³¥I±b´Ú',
+ 'AP Aging' => 'À³¥I±bÄÖ¤ÀªR',
+ 'AP Transaction' => 'À³¥I¥æ©ö',
+ 'AR' => 'À³¦¬±b´Ú',
+ 'AR Aging' => 'À³¦¬±bÄÖ¤ÀªR',
+ 'AR Transaction' => 'À³¦¬¥æ©ö',
+ 'Accounting Menu' => '·|­p¿ï³æ',
+ 'Add Account' => '·s¼W±b¤á',
+ 'Add Assembly' => '·s¼W»s¦¨«~',
+ 'Add Business' => '·s¼W·~°È',
+ 'Add Customer' => '·s¼W«È¤á',
+ 'Add Department' => '·s¼W³¡ªù',
+ 'Add Employee' => '·s¼W¾­û',
+ 'Add GIFI' => '·s¼WGIFI',
+ 'Add Group' => '·s¼W²Õ§O',
+ 'Add Labor/Overhead' => '·s¼Wª½±µ¤H¤u/¸g±`¶O¥Î',
+ 'Add Language' => '·s¼W»y¨¥',
+ 'Add Part' => '·s¼W¹s¥ó',
+ 'Add Pricegroup' => '·s¼W»ù®æ²Õ§O',
+ 'Add Project' => '·s¼W¶µ¥Ø',
+ 'Add SIC' => '·s¼W¼Ð·Ç¤u·~¤ÀÃþ¥N½X',
+ 'Add Service' => '·s¼WªA°È',
+ 'Add Transaction' => '·s¼W¥æ©ö',
+ 'Add Vendor' => '·s¼W¨ÑÀ³°Ó',
+ 'Add Warehouse' => '·s¼W­Ü®w',
+ 'All Items' => '¥þ³¡¶µ¥Ø',
+ 'Assemblies' => '»s¦¨«~',
+ 'Audit Control' => '¼f®Ö±±¨î',
+ 'Backup' => '³Æ¥÷',
+ 'Balance Sheet' => '¸ê²£­t¶Åªí',
+ 'Bin List' => '½cªº©ú²Óªí',
+ 'Bin Lists' => '½cªº©ú²Óªí',
+ 'Cash' => '²{ª÷',
+ 'Chart of Accounts' => '·|­p¬ì¥Øªí',
+ 'Check' => 'Àˬd',
+ 'Components' => '¹s¥ó',
+ 'Customers' => '«È¤á',
+ 'Defaults' => '¹w³]',
+ 'Departments' => '³¡ªù',
+ 'Description' => '»¡©ú',
+ 'Employees' => '¾­û',
+ 'General Ledger' => 'Á`±b',
+ 'Generate' => '¥Í¦¨',
+ 'Goods & Services' => '³fª«¤ÎªA°È',
+ 'Groups' => '©Ò¦³²Õ§O',
+ 'HR' => '¤H¨ÆºÞ²z',
+ 'HTML Templates' => 'HTML ¼Òª©',
+ 'History' => '¾ú¥v',
+ 'Income Statement' => '·l¯qªí',
+ 'Invoice' => 'µo²¼',
+ 'LaTeX Templates' => 'LaTex ¼Òª©',
+ 'Labor/Overhead' => 'ª½±µ¤H¤u/¸g±`¶O¥Î',
+ 'Language' => '»y¨¥',
+ 'List Accounts' => '¦C¥X±b¸¹',
+ 'List Businesses' => '¦C¥X·~°È',
+ 'List Departments' => '¦C¥X³¡ªù',
+ 'List GIFI' => '¦C¥X GIFI',
+ 'List Languages' => '¦C¥X»y¨¥',
+ 'List Projects' => '¦C¥X¶µ¥Ø',
+ 'List SIC' => '¦C¥X¼Ð·Ç¤u·~¤ÀÃþ¥N½X',
+ 'List Warehouses' => '¦C¥X­Ü®w',
+ 'Logout' => 'µn¥X',
+ 'New Window' => '·sµøµ¡',
+ 'Non-taxable' => '¤£À³½Òµ|',
+ 'Open' => '¶}±Ò',
+ 'Order Entry' => '¤U³æ¶µ¥Ø',
+ 'Outstanding' => '¥¼¦¬´Ú¥æ©ö',
+ 'POS' => '¾P°âÂI(POS)',
+ 'POS Invoice' => 'POSµo²¼',
+ 'Packing List' => '¥X³f³æ',
+ 'Packing Lists' => '¥X³f³æ',
+ 'Parts' => '¹s¥ó',
+ 'Payment' => '¥I´Ú',
+ 'Payments' => '¥I´Ú',
+ 'Pick List' => '´z³f²M³æ',
+ 'Pick Lists' => '´z³f²M³æ',
+ 'Preferences' => '­Ó¤H³]©w',
+ 'Pricegroups' => '©Ò¦³»ù®æ²Õ§O',
+ 'Print' => '¦C¦L',
+ 'Projects' => '¶µ¥Ø',
+ 'Purchase Order' => '±ÄÁʳæ',
+ 'Purchase Orders' => '±ÄÁʳæ',
+ 'Quotation' => '³ø»ù³æ',
+ 'Quotations' => '³ø»ù³æ',
+ 'RFQ' => '³ø»ù½Ð¨D(RFQ) ',
+ 'RFQs' => '³ø»ù½Ð¨D',
+ 'Receipt' => '¦¬¾Ú',
+ 'Receipts' => '¦¬¾Ú',
+ 'Receive' => '¦¬¨ì',
+ 'Reconciliation' => '½Õ¸`',
+ 'Recurring Transactions' => '­«ÂÐ¥X²{ªº¥æ©ö',
+ 'Reports' => '³øªí',
+ 'SIC' => '¼Ð·Ç¤u·~¤ÀÃþ¥N½X',
+ 'Sale' => '¾P°â',
+ 'Sales Invoice' => '¾P°âµo²¼',
+ 'Sales Invoices' => '¾P°âµo²¼',
+ 'Sales Order' => '¾P³f³æ',
+ 'Sales Orders' => '¾P³f³æ',
+ 'Save to File' => 'Àx¦s¦ÜÀÉ®×',
+ 'Search' => '·j´M',
+ 'Send by E-Mail' => '¥H¹q¤l¶l¥ó±H°e',
+ 'Services' => 'ªA°È',
+ 'Ship' => '¥I¹B',
+ 'Shipping' => '¥I¹B',
+ 'Statement' => '·|­p±b',
+ 'Stock Assembly' => '§â»s¦¨«~¤J³f',
+ 'Stylesheet' => '¼Ë¦¡ªí',
+ 'System' => '¨t²Î',
+ 'Tax collected' => '¤w¦¬µ|ª÷',
+ 'Tax paid' => '¤w¥Iµ|ª÷',
+ 'Text Templates' => '¤å¦r¼Òª©',
+ 'Transactions' => '©Ò¦³¥æ©ö',
+ 'Transfer' => 'Âಾ',
+ 'Transfer Inventory' => 'Âಾ¦s³f',
+ 'Translations' => '½Ķ',
+ 'Trial Balance' => '¸Õºâªí',
+ 'Type of Business' => '·~°ÈºØÃþ',
+ 'Vendor Invoice' => '¨ÑÀ³°Óµo²¼',
+ 'Vendors' => '¨ÑÀ³°Ó',
+ 'Version' => 'ª©¥»',
+ 'Warehouses' => '­Ü®w',
+ 'Work Order' => '¤u§@³æ',
+ 'Work Orders' => '¤u§@³æ',
+ 'Yearend' => '¦~µ²',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/tw_big5/oe b/locale/tw_big5/oe
new file mode 100755
index 00000000..d3ddc0e7
--- /dev/null
+++ b/locale/tw_big5/oe
@@ -0,0 +1,371 @@
+$self{charset} = 'BIG5';
+
+$self{texts} = {
+ 'Accounting Menu' => '·|­p¿ï³æ',
+ 'Add Exchange Rate' => '·s¼W¥~¶×²v',
+ 'Add Purchase Order' => '·s¼W±ÄÁʳæ',
+ 'Add Quotation' => '·s¼W³ø»ù³æ',
+ 'Add Request for Quotation' => '·s¼W³ø»ù³æ­n¨D',
+ 'Add Sales Invoice' => '·s¼W¾P°âµo²¼',
+ 'Add Sales Order' => '·s¼W¾P³f³æ',
+ 'Add Vendor Invoice' => '·s¼W¨ÑÀ³°Óµo²¼',
+ 'Address' => '¦a§}',
+ 'Amount' => 'ª÷ÃB',
+ 'Apr' => '¥|¤ë',
+ 'April' => '¥|¤ë',
+ 'Are you sure you want to delete Order Number' => '±z¬O§_½T©w­n§R°£­q³æ½s¸¹',
+ 'Are you sure you want to delete Quotation Number' => '±z¬O§_½T©w­n§R°£³ø»ù³æ½s¸¹',
+ 'Attachment' => 'ªþ¥ó',
+ 'Aug' => '¤K¤ë',
+ 'August' => '¤K¤ë',
+ 'Bcc' => '¤£Åã¥Ü§Û°e',
+ 'Billing Address' => '±b³æ¦a§}',
+ 'Bin' => '½c',
+ 'Bin List' => '½cªº©ú²Óªí',
+ 'Business' => '·~°È',
+ 'Cannot delete order!' => '¤£¯à§R°£©w³æ¡I',
+ 'Cannot delete quotation!' => '¤£¯à§R°£³ø»ù³æ¡I',
+ 'Cannot save order!' => '¤£¯àÀx¦s©w³æ¡I',
+ 'Cannot save quotation!' => '¤£¯àÀx¦s³ø»ù³æ¡I',
+ 'Cc' => '§Û°e',
+ 'City' => '«°¥«',
+ 'Closed' => '¤wÃö³¬',
+ 'Company Name' => '¤½¥q¦WºÙ',
+ 'Confirm!' => '¤J±b¦¨¥\¡I',
+ 'Contact' => '³sµ¸¤H',
+ 'Continue' => 'Ä~Äò',
+ 'Copies' => '°Æ¥»',
+ 'Cost' => '¦¨¥»',
+ 'Could not save!' => '¤£¯àÀx¦s¡I',
+ 'Could not transfer Inventory!' => '¦s³f²M³æ¤£¯àÂಾ¡I',
+ 'Country' => '°ê®a',
+ 'Credit Limit' => '«H¥ÎÃB«×',
+ 'Curr' => '¥Ø«e',
+ 'Currency' => '¹ô§O',
+ 'Current' => '²{¦³',
+ 'Customer' => '«È¤á',
+ 'Customer Number' => '«È¤á½s¸¹',
+ 'Customer missing!' => '¥¼«ü©ú«È¤á¡I',
+ 'Customer not on file!' => '¨S¦³¦¹«È¤áªº°O¿ý¡I',
+ 'Date' => '¤é´Á',
+ 'Date Received' => '¦¬´Ú¤é´Á',
+ 'Date received missing!' => '¥¼«ü©ú¦¬´Ú¤é´Á¡I',
+ 'Day(s)' => '¤é',
+ 'Dec' => '¤Q¤G¤ë',
+ 'December' => '¤Q¤G¤ë',
+ 'Delete' => '§R°£',
+ 'Delete Schedule' => '§R°£®É¶¡ªí',
+ 'Delivery Date' => '¨ì´Á¤é',
+ 'Department' => '³¡ªù',
+ 'Description' => '»¡©ú',
+ 'Done' => '¤w§¹¦¨',
+ 'E-mail' => '¹q¤l¶l¥ó',
+ 'E-mail address missing!' => '¥¼«ü©ú¹q¤l¶l¥ó¦ì§}¡I',
+ 'E-mail message' => '¹q¤l¶l¥ó°T®§',
+ 'E-mailed' => '¤w¹q¶l',
+ 'Edit Purchase Order' => '½s¿è±ÄÁʳæ',
+ 'Edit Quotation' => '½s¿è³ø»ù³æ',
+ 'Edit Request for Quotation' => '½s¿è³ø»ù³æ­n¨D',
+ 'Edit Sales Order' => '½s¿è¾P³f³æ',
+ 'Employee' => '¾­û',
+ 'Every' => '¨C',
+ 'Exchange Rate' => '¶×²v',
+ 'Exchange rate missing!' => '¥¼«ü©ú¶×²v¡I',
+ 'Extended' => 'Á`»ù',
+ 'Fax' => '¶Ç¯u',
+ 'Feb' => '¤G¤ë',
+ 'February' => '¤G¤ë',
+ 'For' => '­«ÂÐ',
+ 'From' => '±q',
+ 'From Warehouse' => '±q³f­Ü',
+ 'Generate Orders' => '¥Í¦¨­q³æ',
+ 'Generate Purchase Orders' => '¥Í¦¨±ÄÁʳæ',
+ 'Generate Purchase Orders from Sales Order' => '¥Ñ¾P³f³æ¥Í¦¨±ÄÁʳæ',
+ 'Generate Sales Order' => '¥Í¦¨¾P³f³æ',
+ 'Generate Sales Order from Purchase Orders' => '¥Ñ±ÄÁʳæ¥Í¦¨¾P³f³æ',
+ 'Group' => '²Õ§O',
+ 'ID' => 'ÃѧO½s¸¹',
+ 'In-line' => '¦æ¤º',
+ 'Include Payment' => '¥]¬A¥I´Ú',
+ 'Include in Report' => '¤@¨ÖÅã¥Ü',
+ 'Internal Notes' => '¤º³¡³Æ§Ñ¿ý',
+ 'Inventory saved!' => '¤wÀx¦s¦s³f¡I',
+ 'Inventory transferred!' => 'Âಾªº¦s³f¡I',
+ 'Invoice' => 'µo²¼',
+ 'Invoice Date missing!' => '¥¼«ü©úµo²¼¤é´Á¡I',
+ 'Invoice Number missing!' => '¥¼«ü©úµo²¼½s¸¹¡I',
+ 'Item not on file!' => '¨S¦³¦¹¶µ¥Øªº°O¿ý¡I',
+ 'Jan' => '¤@¤ë',
+ 'January' => '¤@¤ë',
+ 'Jul' => '¤C¤ë',
+ 'July' => '¤C¤ë',
+ 'Jun' => '¤»¤ë',
+ 'June' => '¤»¤ë',
+ 'Lead' => '¥æ¥I®É¶¡',
+ 'Manager' => '¸g²z',
+ 'Mar' => '¤T¤ë',
+ 'March' => '¤T¤ë',
+ 'May' => '¤­¤ë',
+ 'May ' => '¤­¤ë',
+ 'Message' => '°T®§',
+ 'Month' => '¤ë',
+ 'Month(s)' => '¤ë',
+ 'Next Date' => '¤U¤@¤é',
+ 'No.' => '½s¸¹',
+ 'Notes' => '³Æµù',
+ 'Nothing entered!' => '¨S¦³¥ô¦ó¿é¤J¡I',
+ 'Nothing selected!' => '¨S¦³¿ï¾Ü¥ô¦óªF¦è¡I',
+ 'Nothing to transfer!' => '¨S¦³¥iÂಾªº¶µ¥Ø¡I',
+ 'Nov' => '¤Q¤@¤ë',
+ 'November' => '¤Q¤@¤ë',
+ 'Number' => '½s¸¹',
+ 'Number missing in Row' => '¦¹¦C¤¤¯Ê¤Ö¼Æ­È',
+ 'OH' => '¤w¦³¦s¶q',
+ 'Oct' => '¤Q¤ë',
+ 'October' => '¤Q¤ë',
+ 'Open' => '¶}±Ò',
+ 'Order' => '­q³æ',
+ 'Order Date' => '¤U³æ¤é´Á',
+ 'Order Date missing!' => '¥¼«ü©ú¤U³æ¤é´Á¡I',
+ 'Order Number' => '­q³æ½s¸¹',
+ 'Order Number missing!' => '¥¼«ü©ú­q³æ½s¸¹¡I',
+ 'Order deleted!' => '¤w§R°£­q³æ¡I',
+ 'Order generation failed!' => '¥Í¦¨­q³æ¥¢±Ñ¡I',
+ 'Order saved!' => '¤wÀx¦s­q³æ¡I',
+ 'PDF' => 'PDF',
+ 'PO Number' => '±ÄÁʳæ½s¸¹',
+ 'Packing List' => '¥X³f³æ',
+ 'Packing List Date missing!' => '¥¼«ü©ú¥X³f³æ¤é´Á¡I',
+ 'Packing List Number missing!' => '¥¼«ü©ú¥X³f³æ½s¸¹¡I',
+ 'Part' => '¹s¥ó',
+ 'Part Number' => '¹s¥ó½s¸¹',
+ 'Period' => '´Á¶¡',
+ 'Phone' => '¹q¸Ü¸¹½X',
+ 'Pick List' => '´z³f²M³æ',
+ 'Postscript' => 'Postscript',
+ 'Price' => '»ù®æ',
+ 'Print' => '¦C¦L',
+ 'Print and Save' => '¦C¦L¨ÃÀx¦s',
+ 'Print and Save as new' => '¦C¦L¨ÃÀx¦s§@¬°·sªº',
+ 'Printed' => '¤w¦C¦L',
+ 'Project' => '¶µ¥Ø',
+ 'Project not on file!' => '¨S¦³¦¹¶µ¥Øªº°O¿ý¡I',
+ 'Purchase Order' => '±ÄÁʳæ',
+ 'Purchase Orders' => '±ÄÁʳæ',
+ 'Qty' => '¼Æ¶q',
+ 'Quarter' => '©u',
+ 'Quotation' => '³ø»ù³æ',
+ 'Quotation ' => '³ø»ù³æ ',
+ 'Quotation Date' => '³ø»ù³æ¤é´Á',
+ 'Quotation Date missing!' => '¥¼«ü©ú³ø»ù³æ¤é´Á¡I',
+ 'Quotation Number' => '³ø»ù³æ¸¹½X',
+ 'Quotation Number missing!' => '¥¼«ü©ú³ø»ù³æ¸¹½X¡I',
+ 'Quotation deleted!' => '¤w§R°£³ø»ù³æ¡I',
+ 'Quotations' => '³ø»ù³æ',
+ 'RFQ' => '³ø»ù½Ð¨D(RFQ) ',
+ 'RFQ ' => '³ø»ù½Ð¨D(RFQ) ',
+ 'RFQ Number' => '³ø»ù½Ð¨D¸¹½X',
+ 'Recd' => '¤w¦¬¨ì',
+ 'Receive Merchandise' => '¦¬¨ì³fª«',
+ 'Recurring Transaction' => '­«ÂÐ¥X²{ªº¥æ©ö',
+ 'Reference' => '°Ñ¦Ò¸ê®Æ',
+ 'Remaining' => '©|¾l',
+ 'Repeat' => '­«ÂÐ',
+ 'Req' => '»Ý­n',
+ 'Request for Quotation' => '­n¨D³ø»ù³æ',
+ 'Request for Quotations' => '­n¨D³ø»ù³æ',
+ 'Required by' => '­n¨D¥æ¥I¤é´Á',
+ 'SKU' => '®w¦s³æ¦ì',
+ 'Sales Invoice' => '¾P°âµo²¼',
+ 'Sales Order' => '¾P³f³æ',
+ 'Sales Orders' => '¾P³f³æ',
+ 'Salesperson' => '¾P°â¤H­û',
+ 'Save' => 'Àx¦s',
+ 'Save Schedule' => 'Àx¦s®É¶¡ªí',
+ 'Save as new' => '·í·sªºÀx¦s',
+ 'Schedule' => '®É¶¡ªí',
+ 'Scheduled' => '½s±Æ¤F®É¶¡',
+ 'Screen' => '¿Ã¹õ',
+ 'Select Vendor' => '¿ï¾Ü¨ÑÀ³°Ó',
+ 'Select a Printer!' => '¿ï¾Ü¦Lªí¾÷¡I',
+ 'Select from one of the names below' => '©ó¤U¦C©m¦W¤¤¿ï¾Ü¤@­Ó',
+ 'Select from one of the projects below' => '©ó¤U¦C¶µ¥Ø¤¤¿ï¾Ü¤@­Ó',
+ 'Select items' => '¿ï¾Ü¶µ¥Ø',
+ 'Select postscript or PDF!' => '¿ï¾Üpostscript©ÎPDF¡I',
+ 'Select txt, postscript or PDF!' => '¿ï¾Ü¤å¦r¡Bpostscript©ÎPDF¡I',
+ 'Sep' => '¤E¤ë',
+ 'September' => '¤E¤ë',
+ 'Serial No.' => '§Ç¸¹',
+ 'Service' => 'ªA°È',
+ 'Ship' => '¥I¹B',
+ 'Ship Merchandise' => '¥I¹B³fª«',
+ 'Ship to' => '¥I¹B¦Ü',
+ 'Ship via' => '¥I¹B¤½¥q',
+ 'Shipping Address' => '¥I¹B¦a§}',
+ 'Shipping Date' => '¥I¹B¤é´Á',
+ 'Shipping Date missing!' => '¥¼«ü©ú¥I¹B¤é´Á¡I',
+ 'Shipping Point' => '¥I¹B¦aÂI',
+ 'Startdate' => '¶}©l¤é´Á',
+ 'State/Province' => '¬Ù',
+ 'Subject' => '¼ÐÃD',
+ 'Subtotal' => '¤p­p',
+ 'Tax' => 'µ|ª÷',
+ 'Tax Included' => '¤w§tµ|ª÷',
+ 'Terms' => '²¼´Á²b­p',
+ 'Text' => '¤å¦r',
+ 'To' => '¦Ü',
+ 'To Warehouse' => '¨ì­Ü®w',
+ 'Total' => 'Á`­p',
+ 'Trade Discount' => '¶T©ö§é¦©',
+ 'Transfer' => 'Âಾ',
+ 'Transfer Inventory' => 'Âಾ¦s³f',
+ 'Transfer from' => '¥Ñ³o¸Ì¨ú³f',
+ 'Transfer to' => '¦s³f¦Ü',
+ 'Translation not on file!' => '¨S¦³¦¹Â½Ä¶ªº°O¿ý¡I',
+ 'Unit' => '³æ¦ì',
+ 'Update' => '§ó·s',
+ 'Valid until' => '¦³®Ä¦Ü',
+ 'Vendor' => '¨ÑÀ³°Ó',
+ 'Vendor Invoice' => '¨ÑÀ³°Óµo²¼',
+ 'Vendor Number' => '¨ÑÀ³°Ó¸¹½X',
+ 'Vendor missing!' => '¥¼«ü©ú¨ÑÀ³°Ó¡I',
+ 'Vendor not on file!' => '¨S¦³¦¹¨ÑÀ³°Óªº°O¿ý¡I',
+ 'Warehouse' => '­Ü®w',
+ 'Warning!' => 'ĵ§i¡I',
+ 'Week(s)' => '¬P´Á',
+ 'What type of item is this?' => '¦¹¶µ¥ØÄÝ©ó¬Æ»òÃþ§O¡H',
+ 'Work Order' => '¤u§@³æ',
+ 'Year' => '¦~',
+ 'Year(s)' => '¦~',
+ 'Yes' => '¬O',
+ 'You are posting an existing transaction!' => '±z¥¿¦b¥[¤J¤@­Ó²{¦sªº¥æ©ö¡I',
+ 'You are printing and posting an existing transaction!' => '±z¥¿¦b¦C¦L¤Î¥[¤J¤@­Ó²{¦sªº¥æ©ö¡I',
+ 'You are printing and saving an existing order' => '±z¥¿¦b¦C¦L¤ÎÀx¦s¤@±i²{¦sªº­q³æ¡I',
+ 'You are printing and saving an existing quotation' => '±z¥¿¦b¦C¦L¤ÎÀx¦s¤@±i²{¦sªº³ø»ù³æ¡I',
+ 'You are saving an existing order' => '±z¥¿¦bÀx¦s¤@±i²{¦sªº­q³æ¡I',
+ 'You are saving an existing quotation' => '±z¥¿¦bÀx¦s¤@±i²{¦sªº³ø»ù³æ¡I',
+ 'Zip/Postal Code' => '¶l¬F½s½X',
+ 'days' => '¤é',
+ 'ea' => '­Ó',
+ 'for' => '¬°¤F',
+ 'sent' => '¤w°e¥X',
+ 'time(s)' => '¦¸',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'Ä~Äò' => 'continue',
+ '§r°£' => 'delete',
+ '§r°£®É¶¡ªí' => 'delete_schedule',
+ '¤w§¹¦¨' => 'done',
+ '¹q¤l¶l¥ó' => 'e_mail',
+ '¥Í¦¨­q³æ' => 'generate_orders',
+ '¥Í¦¨±ÄÁʳæ' => 'generate_purchase_orders',
+ '¥Í¦¨¾p³f³æ' => 'generate_sales_order',
+ '¦c¦l' => 'print',
+ '¦c¦l¨ÃÀx¦s' => 'print_and_save',
+ '¦c¦l¨ÃÀx¦s§@¬°·sªº' => 'print_and_save_as_new',
+ '±ÄÁʳæ' => 'purchase_order',
+ '³ø»ù³æ' => 'quotation',
+ '³ø»ù³æ_' => 'quotation_',
+ '³ø»ù½Ð¨d(rfq)_' => 'rfq',
+ '³ø»ù½Ð¨d(rfq)__' => 'rfq_',
+ '¾p°âµo²¼' => 'sales_invoice',
+ '¾p³f³æ' => 'sales_order',
+ 'Àx¦s' => 'save',
+ 'Àx¦s®É¶¡ªí' => 'save_schedule',
+ '·í·sªºÀx¦s' => 'save_as_new',
+ '®É¶¡ªí' => 'schedule',
+ '¿ï¾Ü¨ÑÀ³°Ó' => 'select_vendor',
+ '¥i¹b¦Ü' => 'ship_to',
+ 'Âಾ' => 'transfer',
+ '§ó·s' => 'update',
+ '¨ÑÀ³°Óµo²¼' => 'vendor_invoice',
+ '¬o' => 'yes',
+};
+
+1;
+
diff --git a/locale/tw_big5/pe b/locale/tw_big5/pe
new file mode 100755
index 00000000..f703c2fe
--- /dev/null
+++ b/locale/tw_big5/pe
@@ -0,0 +1,166 @@
+$self{charset} = 'BIG5';
+
+$self{texts} = {
+ 'Accounting Menu' => '·|­p¿ï³æ',
+ 'Active' => '¥Í®Äªº',
+ 'Add' => '·s¼W',
+ 'Add Group' => '·s¼W²Õ§O',
+ 'Add Job' => '·s¼W¤u§@',
+ 'Add Pricegroup' => '·s¼W»ù®æ²Õ§O',
+ 'Add Project' => '·s¼W¶µ¥Ø',
+ 'Address' => '¦a§}',
+ 'All' => '¥þ³¡',
+ 'Amount' => 'ª÷ÃB',
+ 'Assembly' => '»s¦¨«~',
+ 'Assembly stocked!' => '»s¦¨«~¤w¶i³f',
+ 'Bin' => '½c',
+ 'Cannot stock Assembly!' => '¤£¯à§â»s¦¨«~¤J³f¡I',
+ 'Completed' => '§¹¦¨¤F',
+ 'Continue' => 'Ä~Äò',
+ 'Current' => '²{¦³',
+ 'Customer' => '«È¤á',
+ 'Customer missing!' => '¥¼«ü©ú«È¤á¡I',
+ 'Customer not on file!' => '¨S¦³¦¹«È¤áªº°O¿ý¡I',
+ 'Date' => '¤é´Á',
+ 'Delete' => '§R°£',
+ 'Description' => '»¡©ú',
+ 'Description Translations' => '½Ķ´y­z',
+ 'Detail' => '¸Ô±¡',
+ 'Edit Description Translations' => '½s¿è½Ķ´y­z',
+ 'Edit Group' => '½s¿è²Õ§O',
+ 'Edit Job' => '½s¿è¤u§@',
+ 'Edit Pricegroup' => '½s¿è»ù®æ²Õ§O',
+ 'Edit Project' => '½s¿è¶µ¥Ø',
+ 'Employee' => '¾­û',
+ 'Enddate' => 'µ²§ô¤é',
+ 'Failed to save order!' => 'Àx¦s­q³æ®É¥X¿ù¡I',
+ 'From' => '±q',
+ 'Generate Sales Orders' => '¥Í¦¨¾P³f³æ',
+ 'Group' => '²Õ§O',
+ 'Group Translations' => '²Õ§OªºÂ½Ä¶',
+ 'Group deleted!' => '²Õ§O¤w³Q§R°£¡I',
+ 'Group missing!' => '¥¼«ü©ú²Õ§O¡I',
+ 'Group saved!' => '²Õ§O¤w³QÀx¦s¡I',
+ 'Groups' => '©Ò¦³²Õ§O',
+ 'Inactive' => '«D¬¡ÅDªº',
+ 'Income' => '¦¬¤J',
+ 'Job' => '¤u§@',
+ 'Job Number' => '¤u§@½s¸¹',
+ 'Job deleted!' => '¤u§@¤w³Q§R°£¡I',
+ 'Job saved!' => '¤u§@¤w³QÀx¦s¡I',
+ 'Jobs' => '¤u§@',
+ 'Language' => '»y¨¥',
+ 'Languages not defined!' => '¤£¯à¿ë»{»y¨¥¡I',
+ 'Link Accounts' => '³sµ²±b¤á',
+ 'List Price' => '¦C¥X»ù',
+ 'Month' => '¤ë',
+ 'No open Projects!' => '¨S¦³¤w¶}±Òªº¶µ¥Ø',
+ 'Notes' => '³Æµù',
+ 'Nothing selected!' => '¨S¦³¿ï¾Ü¥ô¦óªF¦è¡I',
+ 'Number' => '½s¸¹',
+ 'Orders generated!' => '¤w¥Í¦¨­q³æ¡I',
+ 'Orphaned' => 'µL¥D',
+ 'Part Number' => '¹s¥ó½s¸¹',
+ 'Period' => '´Á¶¡',
+ 'Pricegroup' => '»ù®æ²Õ§O',
+ 'Pricegroup deleted!' => '¤w§R°£»ù®æ²Õ§O¡I',
+ 'Pricegroup missing!' => '¥¼«ü©ú»ù®æ²Õ§O¡I',
+ 'Pricegroup saved!' => '¤wÀx¦s»ù®æ²Õ§O¡I',
+ 'Pricegroups' => '©Ò¦³»ù®æ²Õ§O',
+ 'Production' => '¥Í²£',
+ 'Project' => '¶µ¥Ø',
+ 'Project Description Translations' => '¶µ¥Ø´y­zªºÂ½Ä¶',
+ 'Project Number' => '¶µ¥Ø¸¹½X',
+ 'Project deleted!' => '¤w§R°£¶µ¥Ø¡I',
+ 'Project saved!' => '¤wÀx¦s¶µ¥Ø¡I',
+ 'Projects' => '¶µ¥Ø',
+ 'Qty' => '¼Æ¶q',
+ 'Quarter' => '©u',
+ 'Save' => 'Àx¦s',
+ 'Select Customer' => '¿ï¾Ü«È¤á',
+ 'Select from one of the names below' => '©ó¤U¦C©m¦W¤¤¿ï¾Ü¤@­Ó',
+ 'Sell Price' => '°â»ù',
+ 'Service Code' => 'ªA°È½s¸¹',
+ 'Startdate' => '¶}©l¤é´Á',
+ 'Summary' => 'ºK­n',
+ 'Tax' => 'µ|ª÷',
+ 'To' => '¦Ü',
+ 'Transaction Dates' => '¥æ©ö¤é´Á',
+ 'Translation' => '½Ķ',
+ 'Translation deleted!' => '¤w§R°£Â½Ä¶¡I',
+ 'Translations saved!' => '¤wÀx¦s½Ķ¡I',
+ 'Unit' => '³æ¦ì',
+ 'Update' => '§ó·s',
+ 'Updated' => '¤w§ó·s',
+ 'Vendor' => '¨ÑÀ³°Ó',
+ 'Vendor not on file!' => '¨S¦³¦¹¨ÑÀ³°Óªº°O¿ý¡I',
+ 'Weight' => '­«¶q',
+ 'Year' => '¦~',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ '·s¼w²Õ§o' => 'add_group',
+ '·s¼w¤u§@' => 'add_job',
+ '·s¼w»ù®æ²Õ§o' => 'add_pricegroup',
+ '·s¼w¶µ¥Ø' => 'add_project',
+ 'Ä~Äò' => 'continue',
+ '§r°£' => 'delete',
+ '¥Í¦¨¾p³f³æ' => 'generate_sales_orders',
+ 'Àx¦s' => 'save',
+ '¿ï¾Ü«È¤á' => 'select_customer',
+ '§ó·s' => 'update',
+};
+
+1;
+
diff --git a/locale/tw_big5/pos b/locale/tw_big5/pos
new file mode 100755
index 00000000..fb0ed15d
--- /dev/null
+++ b/locale/tw_big5/pos
@@ -0,0 +1,83 @@
+$self{charset} = 'BIG5';
+
+$self{texts} = {
+ 'Accounting Menu' => '·|­p¿ï³æ',
+ 'Add POS Invoice' => '·s¼WPOSµo²¼',
+ 'Amount' => 'ª÷ÃB',
+ 'Business' => '·~°È',
+ 'Cannot post transaction!' => '¤£¯à¥[¤J¥æ©ö¡I',
+ 'Change' => '§ó§ï',
+ 'Continue' => 'Ä~Äò',
+ 'Credit Limit' => '«H¥ÎÃB«×',
+ 'Currency' => '¹ô§O',
+ 'Current' => '²{¦³',
+ 'Customer' => '«È¤á',
+ 'Customer missing!' => '¥¼«ü©ú«È¤á¡I',
+ 'Delete' => '§R°£',
+ 'Department' => '³¡ªù',
+ 'Description' => '»¡©ú',
+ 'Edit POS Invoice' => '½s¿èPOS',
+ 'Exchange Rate' => '¶×²v',
+ 'Exchange rate missing!' => '¥¼«ü©ú¶×²v¡I',
+ 'Extended' => 'Á`»ù',
+ 'From' => '±q',
+ 'Language' => '»y¨¥',
+ 'Memo' => '³Æ§Ñ¿ý',
+ 'Month' => '¤ë',
+ 'Number' => '½s¸¹',
+ 'Open' => '¶}±Ò',
+ 'Period' => '´Á¶¡',
+ 'Post' => '¥[¤J',
+ 'Posted!' => '¤w¥[¤J¡I',
+ 'Price' => '»ù®æ',
+ 'Print' => '¦C¦L',
+ 'Print and Post' => '¦C¦L¨Ã¥[¤J',
+ 'Printed' => '¤w¦C¦L',
+ 'Qty' => '¼Æ¶q',
+ 'Quarter' => '©u',
+ 'Receipts' => '¦¬¾Ú',
+ 'Record in' => '°O¿ý©ó',
+ 'Remaining' => '©|¾l',
+ 'Salesperson' => '¾P°â¤H­û',
+ 'Screen' => '¿Ã¹õ',
+ 'Select a Printer!' => '¿ï¾Ü¦Lªí¾÷¡I',
+ 'Source' => '¨Ó·½',
+ 'Subtotal' => '¤p­p',
+ 'Tax Included' => '¤w§tµ|ª÷',
+ 'To' => '¦Ü',
+ 'Total' => 'Á`­p',
+ 'Trade Discount' => '¶T©ö§é¦©',
+ 'Unit' => '³æ¦ì',
+ 'Update' => '§ó·s',
+ 'Year' => '¦~',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'Ä~Äò' => 'continue',
+ '§r°£' => 'delete',
+ '¥[¤j' => 'post',
+ '¦c¦l' => 'print',
+ '¦c¦l¨Ã¥[¤j' => 'print_and_post',
+ '§ó·s' => 'update',
+};
+
+1;
+
diff --git a/locale/tw_big5/ps b/locale/tw_big5/ps
new file mode 100755
index 00000000..d26ccc6a
--- /dev/null
+++ b/locale/tw_big5/ps
@@ -0,0 +1,393 @@
+$self{charset} = 'BIG5';
+
+$self{texts} = {
+ 'AP Aging' => 'À³¥I±bÄÖ¤ÀªR',
+ 'AP Outstanding' => 'À³¥I¥¼¥I',
+ 'AP Transaction' => 'À³¥I¥æ©ö',
+ 'AP Transactions' => 'À³¥I¥æ©ö',
+ 'AR Aging' => 'À³¦¬±bÄÖ¤ÀªR',
+ 'AR Outstanding' => 'À³¦¬¥¼¦¬',
+ 'AR Transaction' => 'À³¦¬¥æ©ö',
+ 'AR Transactions' => 'À³¦¬¥æ©ö',
+ 'Account' => '±b¤á',
+ 'Account Number' => '±b¤á½s¸¹',
+ 'Accounting Menu' => '·|­p¿ï³æ',
+ 'Accounts' => '±b¤á',
+ 'Accrual' => 'À³­p°ò¦',
+ 'Add AP Transaction' => '·s¼WÀ³¥I¥æ©ö',
+ 'Add AR Transaction' => '·s¼WÀ³¦¬¥æ©ö',
+ 'Add POS Invoice' => '·s¼WPOSµo²¼',
+ 'Add Purchase Order' => '·s¼W±ÄÁʳæ',
+ 'Add Quotation' => '·s¼W³ø»ù³æ',
+ 'Add Request for Quotation' => '·s¼W³ø»ù³æ­n¨D',
+ 'Add Sales Invoice' => '·s¼W¾P°âµo²¼',
+ 'Add Sales Order' => '·s¼W¾P³f³æ',
+ 'Address' => '¦a§}',
+ 'All Accounts' => '¥þ³¡±b¤á',
+ 'Amount' => 'ª÷ÃB',
+ 'Amount Due' => '¨ì´Áª÷ÃB',
+ 'Apr' => '¥|¤ë',
+ 'April' => '¥|¤ë',
+ 'Are you sure you want to delete Invoice Number' => '±z¬O§_½T©w­n§R°£µo²¼½s¸¹',
+ 'Are you sure you want to delete Transaction' => '±z¬O§_½T©w­n§R°£¥æ©ö',
+ 'Attachment' => 'ªþ¥ó',
+ 'Aug' => '¤K¤ë',
+ 'August' => '¤K¤ë',
+ 'Balance' => '¾lÃB',
+ 'Balance Sheet' => '¸ê²£­t¶Åªí',
+ 'Bcc' => '¤£Åã¥Ü§Û°e',
+ 'Billing Address' => '±b³æ¦a§}',
+ 'Bin' => '½c',
+ 'Bin List' => '½cªº©ú²Óªí',
+ 'Business' => '·~°È',
+ 'Cannot delete invoice!' => '¤£¯à§R°£µo²¼¡I',
+ 'Cannot delete transaction!' => '¤£¯à§R°£¥æ©ö¡I',
+ 'Cannot post invoice for a closed period!' => '¤£¯à¦b¤wÃö³¬ªº®É¬q¤º¥[¤Jµo²¼¡I',
+ 'Cannot post invoice!' => '¤£¯à¥[¤Jµo²¼¡I',
+ 'Cannot post payment for a closed period!' => '¤£¯à¦b¤wÃö³¬ªº®É¬q¤º¥[¤J´Ú¶µ¡I',
+ 'Cannot post transaction for a closed period!' => '¤£¯à¦b¤wÃö³¬ªº®É¬q¤º¥[¤J¥æ©ö¡I',
+ 'Cannot post transaction!' => '¤£¯à¥[¤J¥æ©ö¡I',
+ 'Cash' => '²{ª÷',
+ 'Cc' => '§Û°e',
+ 'Change' => '§ó§ï',
+ 'Check' => 'Àˬd',
+ 'City' => '«°¥«',
+ 'Closed' => '¤wÃö³¬',
+ 'Company Name' => '¤½¥q¦WºÙ',
+ 'Compare to' => '¹ï·Ó',
+ 'Confirm!' => '¤J±b¦¨¥\¡I',
+ 'Contact' => '³sµ¸¤H',
+ 'Continue' => 'Ä~Äò',
+ 'Copies' => '°Æ¥»',
+ 'Country' => '°ê®a',
+ 'Credit' => '¶U¤è',
+ 'Credit Limit' => '«H¥ÎÃB«×',
+ 'Curr' => '¥Ø«e',
+ 'Currency' => '¹ô§O',
+ 'Current' => '²{¦³',
+ 'Current Earnings' => '²{¦³¦¬¯q',
+ 'Customer' => '«È¤á',
+ 'Customer Number' => '«È¤á½s¸¹',
+ 'Customer missing!' => '¥¼«ü©ú«È¤á¡I',
+ 'Customer not on file!' => '¨S¦³¦¹«È¤áªº°O¿ý¡I',
+ 'Date' => '¤é´Á',
+ 'Date Paid' => '¥I´Ú¤é´Á',
+ 'Day(s)' => '¤é',
+ 'Debit' => '­É¤è',
+ 'Dec' => '¤Q¤G¤ë',
+ 'December' => '¤Q¤G¤ë',
+ 'Decimalplaces' => '¤p¼Æªº¦ì¸m',
+ 'Delete' => '§R°£',
+ 'Delete Schedule' => '§R°£®É¶¡ªí',
+ 'Delivery Date' => '¨ì´Á¤é',
+ 'Department' => '³¡ªù',
+ 'Description' => '»¡©ú',
+ 'Detail' => '¸Ô±¡',
+ 'Due Date' => '¨ì´Á¤é',
+ 'Due Date missing!' => '¥¼«ü©ú¨ì´Á¤é¡I',
+ 'E-mail' => '¹q¤l¶l¥ó',
+ 'E-mail Statement to' => '¹q¶l·|­p½ã¨ì',
+ 'E-mail address missing!' => '¥¼«ü©ú¹q¤l¶l¥ó¦ì§}¡I',
+ 'E-mail message' => '¹q¤l¶l¥ó°T®§',
+ 'E-mailed' => '¤w¹q¶l',
+ 'Edit AP Transaction' => '½s¿èÀ³¥I¥æ©ö',
+ 'Edit AR Transaction' => '½s¿èÀ³¦¬¥æ©ö',
+ 'Edit POS Invoice' => '½s¿èPOS',
+ 'Edit Sales Invoice' => '½s¿è¾P°âµo²¼',
+ 'Employee' => '¾­û',
+ 'Every' => '¨C',
+ 'Exch' => '¶×²v',
+ 'Exchange Rate' => '¶×²v',
+ 'Exchange rate for payment missing!' => '¥¼«ü©ú¥I´Úªº¶×²v¡I',
+ 'Exchange rate missing!' => '¥¼«ü©ú¶×²v¡I',
+ 'Extended' => 'Á`»ù',
+ 'Fax' => '¶Ç¯u',
+ 'Feb' => '¤G¤ë',
+ 'February' => '¤G¤ë',
+ 'For' => '­«ÂÐ',
+ 'From' => '±q',
+ 'GIFI' => '°]°È°T®§³q¥Î¯Á¤Þ(GIFI)',
+ 'Group' => '²Õ§O',
+ 'Heading' => '¼ÐÃD',
+ 'ID' => 'ÃѧO½s¸¹',
+ 'In-line' => '¦æ¤º',
+ 'Include Exchange Rate Difference' => '¥]§t¥~¶×®t¶Z',
+ 'Include Payment' => '¥]¬A¥I´Ú',
+ 'Include in Report' => '¤@¨ÖÅã¥Ü',
+ 'Income Statement' => '·l¯qªí',
+ 'Internal Notes' => '¤º³¡³Æ§Ñ¿ý',
+ 'Invoice' => 'µo²¼',
+ 'Invoice Date' => 'µo²¼¤é´Á',
+ 'Invoice Date missing!' => '¥¼«ü©úµo²¼¤é´Á¡I',
+ 'Invoice Number' => 'µo²¼½s¸¹',
+ 'Invoice Number missing!' => '¥¼«ü©úµo²¼½s¸¹¡I',
+ 'Invoice deleted!' => '¤w§R°£µo²¼¡I',
+ 'Item not on file!' => '¨S¦³¦¹¶µ¥Øªº°O¿ý¡I',
+ 'Jan' => '¤@¤ë',
+ 'January' => '¤@¤ë',
+ 'Jul' => '¤C¤ë',
+ 'July' => '¤C¤ë',
+ 'Jun' => '¤»¤ë',
+ 'June' => '¤»¤ë',
+ 'Language' => '»y¨¥',
+ 'Manager' => '¸g²z',
+ 'Mar' => '¤T¤ë',
+ 'March' => '¤T¤ë',
+ 'May' => '¤­¤ë',
+ 'May ' => '¤­¤ë',
+ 'Memo' => '³Æ§Ñ¿ý',
+ 'Message' => '°T®§',
+ 'Method' => '¤èªk',
+ 'Month' => '¤ë',
+ 'Month(s)' => '¤ë',
+ 'N/A' => '¤£¾A¥Î',
+ 'Next Date' => '¤U¤@¤é',
+ 'No.' => '½s¸¹',
+ 'Non-taxable Purchases' => '¤£À³½Òµ|ªº±ÄÁÊ',
+ 'Non-taxable Sales' => '¤£À³½Òµ|ªº¾P°â',
+ 'Notes' => '³Æµù',
+ 'Nothing selected!' => '¨S¦³¿ï¾Ü¥ô¦óªF¦è¡I',
+ 'Nothing to print!' => '¨S¦³¥i¦C¦Lªº¶µ¥Ø¡I',
+ 'Nov' => '¤Q¤@¤ë',
+ 'November' => '¤Q¤@¤ë',
+ 'Number' => '½s¸¹',
+ 'Number missing in Row' => '¦¹¦C¤¤¯Ê¤Ö¼Æ­È',
+ 'OH' => '¤w¦³¦s¶q',
+ 'Oct' => '¤Q¤ë',
+ 'October' => '¤Q¤ë',
+ 'Open' => '¶}±Ò',
+ 'Order' => '­q³æ',
+ 'Order Date missing!' => '¥¼«ü©ú¤U³æ¤é´Á¡I',
+ 'Order Number' => '­q³æ½s¸¹',
+ 'Order Number missing!' => '¥¼«ü©ú­q³æ½s¸¹¡I',
+ 'PDF' => 'PDF',
+ 'PO Number' => '±ÄÁʳæ½s¸¹',
+ 'Packing List' => '¥X³f³æ',
+ 'Packing List Date missing!' => '¥¼«ü©ú¥X³f³æ¤é´Á¡I',
+ 'Packing List Number missing!' => '¥¼«ü©ú¥X³f³æ½s¸¹¡I',
+ 'Paid' => '¤w¥I',
+ 'Part' => '¹s¥ó',
+ 'Payment date missing!' => '¥¼«ü©ú¥I´Ú¤é´Á¡I',
+ 'Payments' => '¥I´Ú',
+ 'Period' => '´Á¶¡',
+ 'Phone' => '¹q¸Ü¸¹½X',
+ 'Pick List' => '´z³f²M³æ',
+ 'Post' => '¥[¤J',
+ 'Post as new' => '·í·sªº¥[¤J',
+ 'Posted!' => '¤w¥[¤J¡I',
+ 'Postscript' => 'Postscript',
+ 'Price' => '»ù®æ',
+ 'Print' => '¦C¦L',
+ 'Print and Post' => '¦C¦L¨Ã¥[¤J',
+ 'Print and Post as new' => '¦C¦L¨Ã¥[¤J§@¬°·sªº',
+ 'Printed' => '¤w¦C¦L',
+ 'Project' => '¶µ¥Ø',
+ 'Project Number' => '¶µ¥Ø¸¹½X',
+ 'Project Transactions' => '¶µ¥Ø¥æ©ö',
+ 'Project not on file!' => '¨S¦³¦¹¶µ¥Øªº°O¿ý¡I',
+ 'Purchase Order' => '±ÄÁʳæ',
+ 'Qty' => '¼Æ¶q',
+ 'Quarter' => '©u',
+ 'Quotation' => '³ø»ù³æ',
+ 'Quotation Date missing!' => '¥¼«ü©ú³ø»ù³æ¤é´Á¡I',
+ 'Quotation Number missing!' => '¥¼«ü©ú³ø»ù³æ¸¹½X¡I',
+ 'Recd' => '¤w¦¬¨ì',
+ 'Receipt' => '¦¬¾Ú',
+ 'Receipts' => '¦¬¾Ú',
+ 'Record in' => '°O¿ý©ó',
+ 'Recurring Transaction' => '­«ÂÐ¥X²{ªº¥æ©ö',
+ 'Reference' => '°Ñ¦Ò¸ê®Æ',
+ 'Remaining' => '©|¾l',
+ 'Repeat' => '­«ÂÐ',
+ 'Report for' => '³øªí¨Ó·½',
+ 'Required by' => '­n¨D¥æ¥I¤é´Á',
+ 'SKU' => '®w¦s³æ¦ì',
+ 'Sales Invoice.' => '¾P°âµo²¼¡C',
+ 'Sales Order' => '¾P³f³æ',
+ 'Salesperson' => '¾P°â¤H­û',
+ 'Save Schedule' => 'Àx¦s®É¶¡ªí',
+ 'Schedule' => '®É¶¡ªí',
+ 'Scheduled' => '½s±Æ¤F®É¶¡',
+ 'Screen' => '¿Ã¹õ',
+ 'Select a Printer!' => '¿ï¾Ü¦Lªí¾÷¡I',
+ 'Select all' => '¥þ¿ï',
+ 'Select from one of the names below' => '©ó¤U¦C©m¦W¤¤¿ï¾Ü¤@­Ó',
+ 'Select from one of the projects below' => '©ó¤U¦C¶µ¥Ø¤¤¿ï¾Ü¤@­Ó',
+ 'Select items' => '¿ï¾Ü¶µ¥Ø',
+ 'Select payment' => '¿ï¾Ü¥I´Ú',
+ 'Select postscript or PDF!' => '¿ï¾Üpostscript©ÎPDF¡I',
+ 'Select txt, postscript or PDF!' => '¿ï¾Ü¤å¦r¡Bpostscript©ÎPDF¡I',
+ 'Sep' => '¤E¤ë',
+ 'September' => '¤E¤ë',
+ 'Serial No.' => '§Ç¸¹',
+ 'Service' => 'ªA°È',
+ 'Ship' => '¥I¹B',
+ 'Ship to' => '¥I¹B¦Ü',
+ 'Ship via' => '¥I¹B¤½¥q',
+ 'Shipping Address' => '¥I¹B¦a§}',
+ 'Shipping Point' => '¥I¹B¦aÂI',
+ 'Source' => '¨Ó·½',
+ 'Standard' => '¼Ð·Ç',
+ 'Startdate' => '¶}©l¤é´Á',
+ 'State/Province' => '¬Ù',
+ 'Statement' => '·|­p±b',
+ 'Statement sent to' => '·|­p±b¤w°e¦Ü',
+ 'Statements sent to printer!' => '·|­p±b¤w°e¦Ü¦Lªí¾÷¡I',
+ 'Subject' => '¼ÐÃD',
+ 'Subtotal' => '¤p­p',
+ 'Summary' => 'ºK­n',
+ 'Tax' => 'µ|ª÷',
+ 'Tax Included' => '¤w§tµ|ª÷',
+ 'Tax collected' => '¤w¦¬µ|ª÷',
+ 'Tax paid' => '¤w¥Iµ|ª÷',
+ 'Text' => '¤å¦r',
+ 'Till' => 'ª½¨ì',
+ 'To' => '¦Ü',
+ 'Total' => 'Á`­p',
+ 'Trade Discount' => '¶T©ö§é¦©',
+ 'Transaction' => '¥æ©ö',
+ 'Transaction deleted!' => '¤w§R°£¥æ©ö¡I',
+ 'Transaction posted!' => '¤w¥[¤J¥æ©ö¡I',
+ 'Translation not on file!' => '¨S¦³¦¹Â½Ä¶ªº°O¿ý¡I',
+ 'Trial Balance' => '¸Õºâªí',
+ 'Unit' => '³æ¦ì',
+ 'Update' => '§ó·s',
+ 'Vendor' => '¨ÑÀ³°Ó',
+ 'Vendor Invoice.' => '¨ÑÀ³°Óµo²¼¡C',
+ 'Vendor Number' => '¨ÑÀ³°Ó¸¹½X',
+ 'Vendor missing!' => '¥¼«ü©ú¨ÑÀ³°Ó¡I',
+ 'Vendor not on file!' => '¨S¦³¦¹¨ÑÀ³°Óªº°O¿ý¡I',
+ 'Warning!' => 'ĵ§i¡I',
+ 'Week(s)' => '¬P´Á',
+ 'What type of item is this?' => '¦¹¶µ¥ØÄÝ©ó¬Æ»òÃþ§O¡H',
+ 'Work Order' => '¤u§@³æ',
+ 'Year' => '¦~',
+ 'Year(s)' => '¦~',
+ 'Yes' => '¬O',
+ 'You are posting an existing transaction!' => '±z¥¿¦b¥[¤J¤@­Ó²{¦sªº¥æ©ö¡I',
+ 'You are printing and posting an existing transaction!' => '±z¥¿¦b¦C¦L¤Î¥[¤J¤@­Ó²{¦sªº¥æ©ö¡I',
+ 'You are printing and saving an existing order' => '±z¥¿¦b¦C¦L¤ÎÀx¦s¤@±i²{¦sªº­q³æ¡I',
+ 'You are printing and saving an existing quotation' => '±z¥¿¦b¦C¦L¤ÎÀx¦s¤@±i²{¦sªº³ø»ù³æ¡I',
+ 'You are saving an existing order' => '±z¥¿¦bÀx¦s¤@±i²{¦sªº­q³æ¡I',
+ 'You are saving an existing quotation' => '±z¥¿¦bÀx¦s¤@±i²{¦sªº³ø»ù³æ¡I',
+ 'Zip/Postal Code' => '¶l¬F½s½X',
+ 'as at' => 'ºI¦Ü',
+ 'ea' => '­Ó',
+ 'for' => '¬°¤F',
+ 'for Period' => '´Á¶¡',
+ 'posted!' => '¤w¥[¤J¡I',
+ 'sent' => '¤w°e¥X',
+ 'time(s)' => '¦¸',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'À³¥i¥æ©ö' => 'ap_transaction',
+ 'À³¦¬¥æ©ö' => 'ar_transaction',
+ 'Ä~Äò' => 'continue',
+ '§r°£' => 'delete',
+ '§r°£®É¶¡ªí' => 'delete_schedule',
+ '¹q¤l¶l¥ó' => 'e_mail',
+ '¥[¤j' => 'post',
+ '·í·sªº¥[¤j' => 'post_as_new',
+ '¦c¦l' => 'print',
+ '¦c¦l¨Ã¥[¤j' => 'print_and_post',
+ '¦c¦l¨Ã¥[¤j§@¬°·sªº' => 'print_and_post_as_new',
+ '¾p°âµo²¼¡c' => 'sales_invoice_',
+ '¾p³f³æ' => 'sales_order',
+ 'Àx¦s®É¶¡ªí' => 'save_schedule',
+ '®É¶¡ªí' => 'schedule',
+ '¥þ¿ï' => 'select_all',
+ '¥i¹b¦Ü' => 'ship_to',
+ '§ó·s' => 'update',
+ '¨ÑÀ³°Óµo²¼¡c' => 'vendor_invoice_',
+ '¬o' => 'yes',
+};
+
+1;
+
diff --git a/locale/tw_big5/pw b/locale/tw_big5/pw
new file mode 100755
index 00000000..951795a1
--- /dev/null
+++ b/locale/tw_big5/pw
@@ -0,0 +1,15 @@
+$self{charset} = 'BIG5';
+
+$self{texts} = {
+ 'Continue' => 'Ä~Äò',
+ 'Password' => '±K½X',
+ 'Session expired!' => '¨Ï¥Î´Á(Session)¤w¹L¡I',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'Ä~Äò' => 'continue',
+};
+
+1;
+
diff --git a/locale/tw_big5/rc b/locale/tw_big5/rc
new file mode 100755
index 00000000..10c91348
--- /dev/null
+++ b/locale/tw_big5/rc
@@ -0,0 +1,80 @@
+$self{charset} = 'BIG5';
+
+$self{texts} = {
+ 'Account' => '±b¤á',
+ 'Accounting Menu' => '·|­p¿ï³æ',
+ 'Apr' => '¥|¤ë',
+ 'April' => '¥|¤ë',
+ 'Aug' => '¤K¤ë',
+ 'August' => '¤K¤ë',
+ 'Balance' => '¾lÃB',
+ 'Beginning Balance' => '°_©l¾lÃB',
+ 'Cleared' => '¤w²M°£',
+ 'Continue' => 'Ä~Äò',
+ 'Credit' => '¶U¤è',
+ 'Current' => '²{¦³',
+ 'Date' => '¤é´Á',
+ 'Debit' => '­É¤è',
+ 'Dec' => '¤Q¤G¤ë',
+ 'December' => '¤Q¤G¤ë',
+ 'Description' => '»¡©ú',
+ 'Detail' => '¸Ô±¡',
+ 'Difference' => '®t²§',
+ 'Done' => '¤w§¹¦¨',
+ 'Feb' => '¤G¤ë',
+ 'February' => '¤G¤ë',
+ 'From' => '±q',
+ 'Include Exchange Rate Difference' => '¥]§t¥~¶×®t¶Z',
+ 'Jan' => '¤@¤ë',
+ 'January' => '¤@¤ë',
+ 'Jul' => '¤C¤ë',
+ 'July' => '¤C¤ë',
+ 'Jun' => '¤»¤ë',
+ 'June' => '¤»¤ë',
+ 'Mar' => '¤T¤ë',
+ 'March' => '¤T¤ë',
+ 'May' => '¤­¤ë',
+ 'May ' => '¤­¤ë',
+ 'Month' => '¤ë',
+ 'Nov' => '¤Q¤@¤ë',
+ 'November' => '¤Q¤@¤ë',
+ 'Oct' => '¤Q¤ë',
+ 'October' => '¤Q¤ë',
+ 'Out of balance!' => '¤£¥­¿Å¡I',
+ 'Outstanding' => '¥¼¦¬´Ú¥æ©ö',
+ 'Period' => '´Á¶¡',
+ 'Quarter' => '©u',
+ 'Reconciliation' => '½Õ¸`',
+ 'Reconciliation Report' => '½Õ¸`³ø§i',
+ 'Select all' => '¥þ¿ï',
+ 'Sep' => '¤E¤ë',
+ 'September' => '¤E¤ë',
+ 'Source' => '¨Ó·½',
+ 'Statement Balance' => '·|­p±b¾lÃB',
+ 'Summary' => 'ºK­n',
+ 'To' => '¦Ü',
+ 'Update' => '§ó·s',
+ 'Year' => '¦~',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'Ä~Äò' => 'continue',
+ '¤w§¹¦¨' => 'done',
+ '¥þ¿ï' => 'select_all',
+ '§ó·s' => 'update',
+};
+
+1;
+
diff --git a/locale/tw_big5/rp b/locale/tw_big5/rp
new file mode 100755
index 00000000..654f7d89
--- /dev/null
+++ b/locale/tw_big5/rp
@@ -0,0 +1,204 @@
+$self{charset} = 'BIG5';
+
+$self{texts} = {
+ 'AP Aging' => 'À³¥I±bÄÖ¤ÀªR',
+ 'AR Aging' => 'À³¦¬±bÄÖ¤ÀªR',
+ 'Account' => '±b¤á',
+ 'Account Number' => '±b¤á½s¸¹',
+ 'Accounting Menu' => '·|­p¿ï³æ',
+ 'Accounts' => '±b¤á',
+ 'Accrual' => 'À³­p°ò¦',
+ 'Address' => '¦a§}',
+ 'All Accounts' => '¥þ³¡±b¤á',
+ 'Amount' => 'ª÷ÃB',
+ 'Apr' => '¥|¤ë',
+ 'April' => '¥|¤ë',
+ 'Attachment' => 'ªþ¥ó',
+ 'Aug' => '¤K¤ë',
+ 'August' => '¤K¤ë',
+ 'Balance' => '¾lÃB',
+ 'Balance Sheet' => '¸ê²£­t¶Åªí',
+ 'Bcc' => '¤£Åã¥Ü§Û°e',
+ 'Cash' => '²{ª÷',
+ 'Cc' => '§Û°e',
+ 'Compare to' => '¹ï·Ó',
+ 'Continue' => 'Ä~Äò',
+ 'Copies' => '°Æ¥»',
+ 'Credit' => '¶U¤è',
+ 'Curr' => '¥Ø«e',
+ 'Current' => '²{¦³',
+ 'Current Earnings' => '²{¦³¦¬¯q',
+ 'Customer' => '«È¤á',
+ 'Customer not on file!' => '¨S¦³¦¹«È¤áªº°O¿ý¡I',
+ 'Date' => '¤é´Á',
+ 'Day(s)' => '¤é',
+ 'Debit' => '­É¤è',
+ 'Dec' => '¤Q¤G¤ë',
+ 'December' => '¤Q¤G¤ë',
+ 'Decimalplaces' => '¤p¼Æªº¦ì¸m',
+ 'Delete Schedule' => '§R°£®É¶¡ªí',
+ 'Department' => '³¡ªù',
+ 'Description' => '»¡©ú',
+ 'Detail' => '¸Ô±¡',
+ 'Due Date' => '¨ì´Á¤é',
+ 'E-mail' => '¹q¤l¶l¥ó',
+ 'E-mail Statement to' => '¹q¶l·|­p½ã¨ì',
+ 'E-mail address missing!' => '¥¼«ü©ú¹q¤l¶l¥ó¦ì§}¡I',
+ 'E-mail message' => '¹q¤l¶l¥ó°T®§',
+ 'Every' => '¨C',
+ 'Feb' => '¤G¤ë',
+ 'February' => '¤G¤ë',
+ 'For' => '­«ÂÐ',
+ 'From' => '±q',
+ 'GIFI' => '°]°È°T®§³q¥Î¯Á¤Þ(GIFI)',
+ 'Heading' => '¼ÐÃD',
+ 'ID' => 'ÃѧO½s¸¹',
+ 'In-line' => '¦æ¤º',
+ 'Include Exchange Rate Difference' => '¥]§t¥~¶×®t¶Z',
+ 'Include Payment' => '¥]¬A¥I´Ú',
+ 'Include in Report' => '¤@¨ÖÅã¥Ü',
+ 'Income Statement' => '·l¯qªí',
+ 'Invoice' => 'µo²¼',
+ 'Jan' => '¤@¤ë',
+ 'January' => '¤@¤ë',
+ 'Jul' => '¤C¤ë',
+ 'July' => '¤C¤ë',
+ 'Jun' => '¤»¤ë',
+ 'June' => '¤»¤ë',
+ 'Language' => '»y¨¥',
+ 'Mar' => '¤T¤ë',
+ 'March' => '¤T¤ë',
+ 'May' => '¤­¤ë',
+ 'May ' => '¤­¤ë',
+ 'Memo' => '³Æ§Ñ¿ý',
+ 'Message' => '°T®§',
+ 'Method' => '¤èªk',
+ 'Month' => '¤ë',
+ 'Month(s)' => '¤ë',
+ 'N/A' => '¤£¾A¥Î',
+ 'Next Date' => '¤U¤@¤é',
+ 'Non-taxable Purchases' => '¤£À³½Òµ|ªº±ÄÁÊ',
+ 'Non-taxable Sales' => '¤£À³½Òµ|ªº¾P°â',
+ 'Nothing selected!' => '¨S¦³¿ï¾Ü¥ô¦óªF¦è¡I',
+ 'Nov' => '¤Q¤@¤ë',
+ 'November' => '¤Q¤@¤ë',
+ 'Number' => '½s¸¹',
+ 'Oct' => '¤Q¤ë',
+ 'October' => '¤Q¤ë',
+ 'Order' => '­q³æ',
+ 'PDF' => 'PDF',
+ 'Payments' => '¥I´Ú',
+ 'Period' => '´Á¶¡',
+ 'Postscript' => 'Postscript',
+ 'Print' => '¦C¦L',
+ 'Project' => '¶µ¥Ø',
+ 'Project Number' => '¶µ¥Ø¸¹½X',
+ 'Project Transactions' => '¶µ¥Ø¥æ©ö',
+ 'Project not on file!' => '¨S¦³¦¹¶µ¥Øªº°O¿ý¡I',
+ 'Quarter' => '©u',
+ 'Receipts' => '¦¬¾Ú',
+ 'Recurring Transaction' => '­«ÂÐ¥X²{ªº¥æ©ö',
+ 'Reference' => '°Ñ¦Ò¸ê®Æ',
+ 'Repeat' => '­«ÂÐ',
+ 'Report for' => '³øªí¨Ó·½',
+ 'Salesperson' => '¾P°â¤H­û',
+ 'Save Schedule' => 'Àx¦s®É¶¡ªí',
+ 'Screen' => '¿Ã¹õ',
+ 'Select all' => '¥þ¿ï',
+ 'Select from one of the names below' => '©ó¤U¦C©m¦W¤¤¿ï¾Ü¤@­Ó',
+ 'Select from one of the projects below' => '©ó¤U¦C¶µ¥Ø¤¤¿ï¾Ü¤@­Ó',
+ 'Select postscript or PDF!' => '¿ï¾Üpostscript©ÎPDF¡I',
+ 'Sep' => '¤E¤ë',
+ 'September' => '¤E¤ë',
+ 'Source' => '¨Ó·½',
+ 'Standard' => '¼Ð·Ç',
+ 'Startdate' => '¶}©l¤é´Á',
+ 'Statement' => '·|­p±b',
+ 'Statement sent to' => '·|­p±b¤w°e¦Ü',
+ 'Statements sent to printer!' => '·|­p±b¤w°e¦Ü¦Lªí¾÷¡I',
+ 'Subject' => '¼ÐÃD',
+ 'Subtotal' => '¤p­p',
+ 'Summary' => 'ºK­n',
+ 'Tax' => 'µ|ª÷',
+ 'Tax collected' => '¤w¦¬µ|ª÷',
+ 'Tax paid' => '¤w¥Iµ|ª÷',
+ 'Till' => 'ª½¨ì',
+ 'To' => '¦Ü',
+ 'Total' => 'Á`­p',
+ 'Trial Balance' => '¸Õºâªí',
+ 'Vendor' => '¨ÑÀ³°Ó',
+ 'Vendor not on file!' => '¨S¦³¦¹¨ÑÀ³°Óªº°O¿ý¡I',
+ 'Warning!' => 'ĵ§i¡I',
+ 'Week(s)' => '¬P´Á',
+ 'Year' => '¦~',
+ 'Year(s)' => '¦~',
+ 'You are posting an existing transaction!' => '±z¥¿¦b¥[¤J¤@­Ó²{¦sªº¥æ©ö¡I',
+ 'You are printing and posting an existing transaction!' => '±z¥¿¦b¦C¦L¤Î¥[¤J¤@­Ó²{¦sªº¥æ©ö¡I',
+ 'You are printing and saving an existing order' => '±z¥¿¦b¦C¦L¤ÎÀx¦s¤@±i²{¦sªº­q³æ¡I',
+ 'You are printing and saving an existing quotation' => '±z¥¿¦b¦C¦L¤ÎÀx¦s¤@±i²{¦sªº³ø»ù³æ¡I',
+ 'You are saving an existing order' => '±z¥¿¦bÀx¦s¤@±i²{¦sªº­q³æ¡I',
+ 'You are saving an existing quotation' => '±z¥¿¦bÀx¦s¤@±i²{¦sªº³ø»ù³æ¡I',
+ 'as at' => 'ºI¦Ü',
+ 'for' => '¬°¤F',
+ 'for Period' => '´Á¶¡',
+ 'sent' => '¤w°e¥X',
+ 'time(s)' => '¦¸',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'Ä~Äò' => 'continue',
+ '§r°£®É¶¡ªí' => 'delete_schedule',
+ '¹q¤l¶l¥ó' => 'e_mail',
+ '¦c¦l' => 'print',
+ 'Àx¦s®É¶¡ªí' => 'save_schedule',
+ '¥þ¿ï' => 'select_all',
+};
+
+1;
+
diff --git a/locale/tw_big5/temp b/locale/tw_big5/temp
new file mode 100755
index 00000000..5e2037cd
--- /dev/null
+++ b/locale/tw_big5/temp
@@ -0,0 +1,7 @@
+$self{texts} = {
+};
+
+$self{subs} = {
+};
+
+1;
diff --git a/locale/tw_utf/COPYING b/locale/tw_utf/COPYING
new file mode 100755
index 00000000..482b44b4
--- /dev/null
+++ b/locale/tw_utf/COPYING
@@ -0,0 +1,25 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2004
+#
+# Traditional Chinese texts:
+#
+# Author: Edmund Lian <elian@inbrief.net>
+# Kent Tong <kent@cpttm.org.mo>
+#
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/tw_utf/LANGUAGE b/locale/tw_utf/LANGUAGE
new file mode 100755
index 00000000..fe984da7
--- /dev/null
+++ b/locale/tw_utf/LANGUAGE
@@ -0,0 +1 @@
+Traditional Chinese (UTF-8)
diff --git a/locale/tw_utf/aa b/locale/tw_utf/aa
new file mode 100755
index 00000000..b0e2d64d
--- /dev/null
+++ b/locale/tw_utf/aa
@@ -0,0 +1,163 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Outstanding' => '應付未付',
+ 'AP Transaction' => '應付交易',
+ 'AP Transactions' => '應付交易',
+ 'AR Outstanding' => '應收未收',
+ 'AR Transaction' => '應收交易',
+ 'AR Transactions' => '應收交易',
+ 'Account' => '帳戶',
+ 'Accounting Menu' => '會計é¸å–®',
+ 'Add AP Transaction' => '新增應付交易',
+ 'Add AR Transaction' => '新增應收交易',
+ 'Amount' => '金é¡',
+ 'Amount Due' => '到期金é¡',
+ 'Apr' => '四月',
+ 'April' => '四月',
+ 'Are you sure you want to delete Transaction' => '您是å¦ç¢ºå®šè¦åˆªé™¤äº¤æ˜“',
+ 'Aug' => '八月',
+ 'August' => '八月',
+ 'Cannot delete transaction!' => 'ä¸èƒ½åˆªé™¤äº¤æ˜“ï¼',
+ 'Cannot post payment for a closed period!' => 'ä¸èƒ½åœ¨å·²é—œé–‰çš„時段內加入款項ï¼',
+ 'Cannot post transaction for a closed period!' => 'ä¸èƒ½åœ¨å·²é—œé–‰çš„時段內加入交易ï¼',
+ 'Cannot post transaction!' => 'ä¸èƒ½åŠ å…¥äº¤æ˜“ï¼',
+ 'Check' => '檢查',
+ 'Closed' => '已關閉',
+ 'Confirm!' => '入帳æˆåŠŸï¼',
+ 'Continue' => '繼續',
+ 'Credit' => '貸方',
+ 'Credit Limit' => '信用é¡åº¦',
+ 'Curr' => 'ç›®å‰',
+ 'Currency' => '幣別',
+ 'Current' => 'ç¾æœ‰',
+ 'Customer' => '客戶',
+ 'Customer missing!' => '未指明客戶ï¼',
+ 'Date' => '日期',
+ 'Date Paid' => '付款日期',
+ 'Debit' => '借方',
+ 'Dec' => 'å二月',
+ 'December' => 'å二月',
+ 'Delete' => '刪除',
+ 'Department' => '部門',
+ 'Description' => '說明',
+ 'Detail' => '詳情',
+ 'Due Date' => '到期日',
+ 'Due Date missing!' => '未指明到期日ï¼',
+ 'Edit AP Transaction' => '編輯應付交易',
+ 'Edit AR Transaction' => '編輯應收交易',
+ 'Employee' => 'è·å“¡',
+ 'Exch' => '匯率',
+ 'Exchange Rate' => '匯率',
+ 'Exchange rate for payment missing!' => '未指明付款的匯率ï¼',
+ 'Exchange rate missing!' => '未指明匯率ï¼',
+ 'Feb' => '二月',
+ 'February' => '二月',
+ 'From' => '從',
+ 'ID' => '識別編號',
+ 'Include in Report' => '一併顯示',
+ 'Invoice' => '發票',
+ 'Invoice Date' => '發票日期',
+ 'Invoice Date missing!' => '未指明發票日期ï¼',
+ 'Invoice Number' => '發票編號',
+ 'Jan' => '一月',
+ 'January' => '一月',
+ 'Jul' => '七月',
+ 'July' => '七月',
+ 'Jun' => '六月',
+ 'June' => '六月',
+ 'Manager' => '經ç†',
+ 'Mar' => '三月',
+ 'March' => '三月',
+ 'May' => '五月',
+ 'May ' => '五月',
+ 'Memo' => '備忘錄',
+ 'Month' => '月',
+ 'No.' => '編號',
+ 'Notes' => '備註',
+ 'Nov' => 'å一月',
+ 'November' => 'å一月',
+ 'Oct' => 'å月',
+ 'October' => 'å月',
+ 'Open' => 'é–‹å•Ÿ',
+ 'Order' => '訂單',
+ 'Order Number' => '訂單編號',
+ 'PO Number' => '採購單編號',
+ 'Paid' => '已付',
+ 'Payment date missing!' => '未指明付款日期ï¼',
+ 'Payments' => '付款',
+ 'Period' => '期間',
+ 'Post' => '加入',
+ 'Post as new' => '當新的加入',
+ 'Print' => '列å°',
+ 'Print and Post' => '列å°ä¸¦åŠ å…¥',
+ 'Print and Post as new' => '列å°ä¸¦åŠ å…¥ä½œç‚ºæ–°çš„',
+ 'Project' => 'é …ç›®',
+ 'Quarter' => 'å­£',
+ 'Receipt' => '收據',
+ 'Remaining' => '尚餘',
+ 'Sales Invoice.' => '銷售發票。',
+ 'Salesperson' => '銷售人員',
+ 'Schedule' => '時間表',
+ 'Sep' => 'ä¹æœˆ',
+ 'September' => 'ä¹æœˆ',
+ 'Ship to' => '付é‹è‡³',
+ 'Ship via' => '付é‹å…¬å¸',
+ 'Shipping Point' => '付é‹åœ°é»ž',
+ 'Source' => '來æº',
+ 'Subtotal' => 'å°è¨ˆ',
+ 'Summary' => '摘è¦',
+ 'Tax' => '稅金',
+ 'Tax Included' => 'å·²å«ç¨…金',
+ 'Till' => '直到',
+ 'To' => '至',
+ 'Total' => '總計',
+ 'Transaction' => '交易',
+ 'Transaction deleted!' => '已刪除交易ï¼',
+ 'Transaction posted!' => '已加入交易ï¼',
+ 'Update' => 'æ›´æ–°',
+ 'Vendor' => '供應商',
+ 'Vendor Invoice.' => '供應商發票。',
+ 'Vendor missing!' => '未指明供應商ï¼',
+ 'Year' => 'å¹´',
+ 'Yes' => '是',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ '應付交易' => 'ap_transaction',
+ '應收交易' => 'ar_transaction',
+ '繼續' => 'continue',
+ '刪除' => 'delete',
+ '加入' => 'post',
+ '當新的加入' => 'post_as_new',
+ '列å°' => 'print',
+ '列å°ä¸¦åŠ å…¥' => 'print_and_post',
+ '列å°ä¸¦åŠ å…¥ä½œç‚ºæ–°çš„' => 'print_and_post_as_new',
+ '銷售發票。' => 'sales_invoice_',
+ '時間表' => 'schedule',
+ '付é‹è‡³' => 'ship_to',
+ 'æ›´æ–°' => 'update',
+ '供應商發票。' => 'vendor_invoice_',
+ '是' => 'yes',
+};
+
+1;
+
diff --git a/locale/tw_utf/admin b/locale/tw_utf/admin
new file mode 100755
index 00000000..8ef9054a
--- /dev/null
+++ b/locale/tw_utf/admin
@@ -0,0 +1,145 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Access Control' => '權é™æŽ§åˆ¶',
+ 'Accounting' => '會計',
+ 'Add User' => '新增使用者',
+ 'Address' => '地å€',
+ 'Administration' => '系統管ç†',
+ 'Administrator' => '管ç†å“¡',
+ 'All Datasets up to date!' => '所有資料皆已更新ï¼',
+ 'Cannot create Lock!' => 'ä¸èƒ½å»ºç«‹éŽ–ï¼',
+ 'Change Admin Password' => '更改管ç†å“¡å¯†ç¢¼',
+ 'Change Password' => '更改密碼',
+ 'Click on login name to edit!' => '請按登入å稱以進行修改ï¼',
+ 'Company' => 'å…¬å¸',
+ 'Confirm' => '確èª',
+ 'Connect to' => '連çµåˆ°',
+ 'Continue' => '繼續',
+ 'Create Chart of Accounts' => '建立帳戶圖表',
+ 'Create Dataset' => '建立資料集',
+ 'DBI not installed!' => 'æœªå®‰è£ DBI 模組ï¼',
+ 'Database' => '資料庫',
+ 'Database Administration' => '資料庫管ç†',
+ 'Database Driver not checked!' => '未é¸å®šè³‡æ–™åº«é©…動程å¼ï¼',
+ 'Database User missing!' => '未指明資料庫使用者ï¼',
+ 'Dataset' => '資料集',
+ 'Dataset missing!' => '未指明資料集ï¼',
+ 'Dataset updated!' => '已更新資料集ï¼',
+ 'Date Format' => '日期格å¼',
+ 'Delete' => '刪除',
+ 'Delete Dataset' => '刪除資料集',
+ 'Directory' => '目錄',
+ 'Driver' => '驅動程å¼',
+ 'Dropdown Limit' => 'é™åˆ¶',
+ 'E-mail' => 'é›»å­éƒµä»¶',
+ 'Edit User' => '編輯使用者',
+ 'Existing Datasets' => '既有的資料集',
+ 'Fax' => '傳真',
+ 'Host' => '主機',
+ 'Hostname missing!' => '未指明主機å稱ï¼',
+ 'Language' => '語言',
+ 'Lock System' => '系統鎖上',
+ 'Lockfile created!' => '已建立上鎖檔案ï¼',
+ 'Lockfile removed!' => '已移除上鎖檔案ï¼',
+ 'Login' => '登入',
+ 'Login name missing!' => '未指明登入åå­—ï¼',
+ 'Logout' => '登出',
+ 'Manager' => '經ç†',
+ 'Menu Width' => 'é¸æ“‡å–®å¯¬åº¦',
+ 'Multibyte Encoding' => '多字元編碼',
+ 'Name' => 'å稱',
+ 'New Templates' => '新增模版',
+ 'No Database Drivers available!' => '沒有å¯ç”¨çš„資料庫驅動程å¼ï¼',
+ 'No Dataset selected!' => '未é¸å®šè³‡æ–™é›†ï¼',
+ 'Nothing to delete!' => '沒有å¯åˆªé™¤çš„é …ç›®ï¼',
+ 'Number Format' => '數字格å¼',
+ 'Oracle Database Administration' => 'Oracle資料庫管ç†',
+ 'Password' => '密碼',
+ 'Password changed!' => '密碼已改ï¼',
+ 'Passwords do not match!' => '密碼ä¸ç¬¦ï¼',
+ 'Pg Database Administration' => 'Pg資料庫管ç†',
+ 'PgPP Database Administration' => 'PgPP資料庫管ç†',
+ 'Phone' => '電話號碼',
+ 'Port' => '埠號',
+ 'Port missing!' => '未指明埠號ï¼',
+ 'Printer' => 'å°è¡¨æ©Ÿ',
+ 'Save' => '儲存',
+ 'Session Timeout' => '使用期(Session)長短',
+ 'Session expired!' => '使用期(Session)å·²éŽï¼',
+ 'Setup Templates' => '設定模版',
+ 'Signature' => 'ç°½å',
+ 'Stylesheet' => '樣å¼è¡¨',
+ 'Supervisor' => '主管',
+ 'Templates' => '模版',
+ 'The following Datasets are not in use and can be deleted' => '下列資料集並未使用,å¯ä»¥åˆªé™¤',
+ 'The following Datasets need to be updated' => '下列資料集需è¦æ›´æ–°',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => '這是å°æ—¢å­˜è³‡æ–™ä¾†æºçš„åˆæ­¥æª¢æŸ¥ã€‚在此階段,ä¸æœƒåˆªé™¤æˆ–新增任何資料ï¼',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'è‹¥è¦æ–°å¢žç¾¤çµ„內的使用者,請編輯å稱,更改登入å,然後儲存。這樣一來, 新使用者會ä¿ç•™ç›¸åŒçš„變數,並以新的登入å存入。',
+ 'Unlock System' => '系統解å°',
+ 'Update Dataset' => '更新資料集',
+ 'Use Templates' => '使用模版',
+ 'User' => '使用者',
+ 'User deleted!' => '已刪除使用者ï¼',
+ 'User saved!' => '已儲存使用者ï¼',
+ 'Version' => '版本',
+ 'You are logged out' => '你已登出',
+ 'does not exist' => 'ä¸å­˜åœ¨',
+ 'is already a member!' => '已經是æˆå“¡äº†ï¼',
+ 'localhost' => '本地寄主',
+ 'locked!' => '已鎖上ï¼',
+ 'successfully created!' => 'æˆåŠŸå»ºç«‹ï¼',
+ 'successfully deleted!' => 'æˆåŠŸåˆªé™¤ï¼',
+ 'website' => '網站',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ '新增使用者' => 'add_user',
+ '更改管ç†å“¡å¯†ç¢¼' => 'change_admin_password',
+ '更改密碼' => 'change_password',
+ '繼續' => 'continue',
+ '建立資料集' => 'create_dataset',
+ '刪除' => 'delete',
+ '刪除資料集' => 'delete_dataset',
+ '系統鎖上' => 'lock_system',
+ '登入' => 'login',
+ '登出' => 'logout',
+ 'oracle資料庫管ç†' => 'oracle_database_administration',
+ 'pg資料庫管ç†' => 'pg_database_administration',
+ 'pgpp資料庫管ç†' => 'pgpp_database_administration',
+ '儲存' => 'save',
+ '系統解å°' => 'unlock_system',
+ '更新資料集' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/tw_utf/all b/locale/tw_utf/all
new file mode 100755
index 00000000..efee0384
--- /dev/null
+++ b/locale/tw_utf/all
@@ -0,0 +1,892 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+$self{charset} = 'UTF-8';
+
+
+$self{texts} = {
+ 'A' => '',
+ 'AP' => '應付帳款',
+ 'AP Aging' => '應付帳齡分æž',
+ 'AP Outstanding' => '應付未付',
+ 'AP Transaction' => '應付交易',
+ 'AP Transactions' => '應付交易',
+ 'AR' => '應收帳款',
+ 'AR Aging' => '應收帳齡分æž',
+ 'AR Outstanding' => '應收未收',
+ 'AR Transaction' => '應收交易',
+ 'AR Transactions' => '應收交易',
+ 'AR/AP' => '應收/應付 ',
+ 'About' => '關於',
+ 'Above' => '上文',
+ 'Access Control' => '權é™æŽ§åˆ¶',
+ 'Access Denied!' => '拒絕存å–ï¼',
+ 'Account' => '帳戶',
+ 'Account Number' => '帳戶編號',
+ 'Account Number missing!' => '未指明帳戶編號ï¼',
+ 'Account Type' => '帳戶類別',
+ 'Account Type missing!' => '未指明帳戶類別ï¼',
+ 'Account deleted!' => '已刪除帳戶ï¼',
+ 'Account does not exist!' => 'ä¸å­˜åœ¨å¸³æˆ¶ï¼',
+ 'Account saved!' => '已儲存帳戶ï¼',
+ 'Accounting' => '會計',
+ 'Accounting Menu' => '會計é¸å–®',
+ 'Accounts' => '帳戶',
+ 'Accrual' => '應計基礎',
+ 'Activate Audit trails' => '啟動審核線索',
+ 'Active' => '生效的',
+ 'Add' => '新增',
+ 'Add AP Transaction' => '新增應付交易',
+ 'Add AR Transaction' => '新增應收交易',
+ 'Add Account' => '新增帳戶',
+ 'Add Assembly' => '新增製æˆå“',
+ 'Add Business' => '新增業務',
+ 'Add Cash Transfer Transaction' => '新增ç¾é‡‘轉移帳目',
+ 'Add Customer' => '新增客戶',
+ 'Add Deduction' => '新增扣除',
+ 'Add Department' => '新增部門',
+ 'Add Employee' => '新增è·å“¡',
+ 'Add Exchange Rate' => '新增外匯率',
+ 'Add GIFI' => '新增GIFI',
+ 'Add General Ledger Transaction' => '新增總帳交易',
+ 'Add Group' => '新增組別',
+ 'Add Job' => '新增工作',
+ 'Add Labor/Overhead' => '新增直接人工/經常費用',
+ 'Add Language' => '新增語言',
+ 'Add POS Invoice' => '新增POS發票',
+ 'Add Part' => '新增零件',
+ 'Add Pricegroup' => '新增價格組別',
+ 'Add Project' => '新增項目',
+ 'Add Purchase Order' => '新增採購單',
+ 'Add Quotation' => '新增報價單',
+ 'Add Request for Quotation' => '新增報價單è¦æ±‚',
+ 'Add SIC' => '新增標準工業分類代碼',
+ 'Add Sales Invoice' => '新增銷售發票',
+ 'Add Sales Order' => '新增銷貨單',
+ 'Add Service' => '新增æœå‹™',
+ 'Add Timecard' => '新增工時å¡',
+ 'Add Transaction' => '新增交易',
+ 'Add User' => '新增使用者',
+ 'Add Vendor' => '新增供應商',
+ 'Add Vendor Invoice' => '新增供應商發票',
+ 'Add Warehouse' => '新增倉庫',
+ 'Address' => '地å€',
+ 'Administration' => '系統管ç†',
+ 'Administrator' => '管ç†å“¡',
+ 'After Deduction' => '扣除以後',
+ 'All' => '全部',
+ 'All Accounts' => '全部帳戶',
+ 'All Datasets up to date!' => '所有資料皆已更新ï¼',
+ 'All Items' => '全部項目',
+ 'Allowances' => '津貼',
+ 'Amount' => '金é¡',
+ 'Amount Due' => '到期金é¡',
+ 'Amount missing!' => '沒有指定金é¡ï¼',
+ 'Apr' => '四月',
+ 'April' => '四月',
+ 'Are you sure you want to delete Invoice Number' => '您是å¦ç¢ºå®šè¦åˆªé™¤ç™¼ç¥¨ç·¨è™Ÿ',
+ 'Are you sure you want to delete Order Number' => '您是å¦ç¢ºå®šè¦åˆªé™¤è¨‚單編號',
+ 'Are you sure you want to delete Quotation Number' => '您是å¦ç¢ºå®šè¦åˆªé™¤å ±åƒ¹å–®ç·¨è™Ÿ',
+ 'Are you sure you want to delete Timecard for' => '您是å¦ç¢ºå®šè¦åˆªé™¤å…¶å·¥æ™‚å¡ï¼š',
+ 'Are you sure you want to delete Transaction' => '您是å¦ç¢ºå®šè¦åˆªé™¤äº¤æ˜“',
+ 'Are you sure you want to remove the marked entries from the queue?' => '您是å¦ç¢ºå®šè¦æ¶ˆé™¤æœ‰è¨˜è™Ÿçš„æ¢ç›®ï¼Ÿ',
+ 'Assemblies' => '製æˆå“',
+ 'Assemblies restocked!' => '製æˆå“å·²é‡æ–°é€²è²¨',
+ 'Assembly' => '製æˆå“',
+ 'Assembly stocked!' => '製æˆå“已進貨',
+ 'Asset' => '資產',
+ 'Attachment' => '附件',
+ 'Audit Control' => '審核控制',
+ 'Audit trail removed up to' => '移除到此為止的審核線索',
+ 'Audit trails disabled' => '審核線索已開動',
+ 'Audit trails enabled' => '審核線索已關閉',
+ 'Aug' => '八月',
+ 'August' => '八月',
+ 'Average Cost' => 'å¹³å‡æˆæœ¬',
+ 'Avg Cost' => 'å¹³å‡æˆæœ¬',
+ 'BIC' => '銀行識別編號(BIC)',
+ 'BOM' => 'æ料清單',
+ 'Backup' => '備份',
+ 'Backup sent to' => '備份寄é€åˆ°',
+ 'Balance' => '餘é¡',
+ 'Balance Sheet' => '資產負債表',
+ 'Based on' => '基於',
+ 'Bcc' => 'ä¸é¡¯ç¤ºæŠ„é€',
+ 'Before Deduction' => '扣除之å‰',
+ 'Beginning Balance' => '起始餘é¡',
+ 'Below' => '以下',
+ 'Billing Address' => '帳單地å€',
+ 'Bin' => 'ç®±',
+ 'Bin List' => '箱的明細表',
+ 'Bin Lists' => '箱的明細表',
+ 'Books are open' => '帳簿已開啟',
+ 'Break' => '休æ¯',
+ 'Business' => '業務',
+ 'Business Number' => '業務編號',
+ 'Business deleted!' => '已刪除業務ï¼',
+ 'Business saved!' => '已儲存業務ï¼',
+ 'C' => '',
+ 'COGS' => '貨銷æˆæœ¬',
+ 'COGS account does not exist!' => '貨銷æˆæœ¬å¸³æˆ¶ä¸å­˜åœ¨ï¼',
+ 'Cannot add timecard for a completed job!' => '工作已完æˆï¼Œä¸èƒ½å†åŠ å·¥æ™‚å¡ï¼',
+ 'Cannot change timecard for a completed job!' => '工作已完æˆï¼Œä¸èƒ½å†æ”¹å·¥æ™‚å¡ï¼',
+ 'Cannot create Assembly' => 'ä¸èƒ½å»ºç«‹è£½æˆå“',
+ 'Cannot create Labor' => 'ä¸èƒ½å»ºç«‹ç›´æŽ¥äººå·¥',
+ 'Cannot create Lock!' => 'ä¸èƒ½å»ºç«‹éŽ–ï¼',
+ 'Cannot create Part' => 'ä¸èƒ½å»ºç«‹é›¶ä»¶',
+ 'Cannot create Service' => 'ä¸èƒ½å»ºç«‹æœå‹™',
+ 'Cannot delete Timecard!' => 'ä¸èƒ½å»ºç«‹å·¥æ™‚å¡',
+ 'Cannot delete account!' => 'ä¸èƒ½åˆªé™¤å¸³æˆ¶ï¼',
+ 'Cannot delete customer!' => 'ä¸èƒ½åˆªé™¤å®¢æˆ¶ï¼',
+ 'Cannot delete default account!' => 'ä¸èƒ½åˆªé™¤é è¨­å¸³æˆ¶ï¼',
+ 'Cannot delete invoice!' => 'ä¸èƒ½åˆªé™¤ç™¼ç¥¨ï¼',
+ 'Cannot delete item!' => 'ä¸èƒ½åˆªé™¤é …ç›®ï¼',
+ 'Cannot delete order!' => 'ä¸èƒ½åˆªé™¤å®šå–®ï¼',
+ 'Cannot delete quotation!' => 'ä¸èƒ½åˆªé™¤å ±åƒ¹å–®ï¼',
+ 'Cannot delete transaction!' => 'ä¸èƒ½åˆªé™¤äº¤æ˜“ï¼',
+ 'Cannot delete vendor!' => 'ä¸èƒ½åˆªé™¤ä¾›æ‡‰å•†ï¼',
+ 'Cannot post Payment!' => 'ä¸èƒ½åŠ å…¥æ¬¾é …ï¼',
+ 'Cannot post Receipt!' => 'ä¸èƒ½åŠ å…¥æ”¶æ“šï¼',
+ 'Cannot post invoice for a closed period!' => 'ä¸èƒ½åœ¨å·²é—œé–‰çš„時段內加入發票ï¼',
+ 'Cannot post invoice!' => 'ä¸èƒ½åŠ å…¥ç™¼ç¥¨ï¼',
+ 'Cannot post payment for a closed period!' => 'ä¸èƒ½åœ¨å·²é—œé–‰çš„時段內加入款項ï¼',
+ 'Cannot post transaction for a closed period!' => 'ä¸èƒ½åœ¨å·²é—œé–‰çš„時段內加入交易ï¼',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => '在交易åŒä¸€å¸³æˆ¶ä¸èƒ½åˆå‡ºç¾åœ¨å€Ÿæ–¹åˆå‡ºç¾åœ¨è²¸æ–¹ï¼',
+ 'Cannot post transaction!' => 'ä¸èƒ½åŠ å…¥äº¤æ˜“ï¼',
+ 'Cannot remove files!' => 'ä¸èƒ½ç§»é™¤æª”案ï¼',
+ 'Cannot save account!' => 'ä¸èƒ½å„²å­˜å¸³æˆ¶ï¼',
+ 'Cannot save defaults!' => 'ä¸èƒ½å„²å­˜é è¨­ï¼',
+ 'Cannot save order!' => 'ä¸èƒ½å„²å­˜å®šå–®ï¼',
+ 'Cannot save preferences!' => 'ä¸èƒ½å„²å­˜å„ªå…ˆé¸æ“‡ï¼',
+ 'Cannot save quotation!' => 'ä¸èƒ½å„²å­˜å ±åƒ¹å–®ï¼',
+ 'Cannot save timecard for a closed period!' => 'ä¸èƒ½åœ¨å·²é—œé–‰çš„時段內儲存工時å¡ï¼',
+ 'Cannot save timecard!' => 'ä¸èƒ½å„²å­˜å·¥æ™‚å¡ï¼',
+ 'Cannot set account for more than one of AR, AP or IC' => 'ä¸èƒ½è¨­ç½®å¤šæ–¼ä¸€å€‹æ‡‰æ”¶å¸³æ¬¾, 應付帳款或IC',
+ 'Cannot set multiple options for' => 'ä¸èƒ½å°ä»¥ä¸‹ç‰©ä»¶è¨­å®šå¤šå€‹é¸é …:',
+ 'Cannot set multiple options for Item' => 'ä¸èƒ½å°ä»¥ç‰©ä»¶è¨­å®šå¤šå€‹é¸é …',
+ 'Cannot stock Assembly!' => 'ä¸èƒ½æŠŠè£½æˆå“入貨ï¼',
+ 'Cannot stock assemblies!' => 'ä¸èƒ½æŠŠè£½æˆå“入貨ï¼',
+ 'Cash' => 'ç¾é‡‘',
+ 'Cc' => '抄é€',
+ 'Change' => '更改',
+ 'Change Admin Password' => '更改管ç†å“¡å¯†ç¢¼',
+ 'Change Password' => '更改密碼',
+ 'Charge' => '收費',
+ 'Chart of Accounts' => '會計科目表',
+ 'Check' => '檢查',
+ 'Check Inventory' => '檢查存貨清單',
+ 'Checks' => '檢查',
+ 'City' => '城市',
+ 'Cleared' => '已清除',
+ 'Click on login name to edit!' => '請按登入å稱以進行修改ï¼',
+ 'Clocked' => '計算出的時間',
+ 'Close Books up to' => '關閉到此為止的帳簿:',
+ 'Closed' => '已關閉',
+ 'Code' => '編碼',
+ 'Code missing!' => '未指明編碼ï¼',
+ 'Company' => 'å…¬å¸',
+ 'Company Name' => 'å…¬å¸å稱',
+ 'Compare to' => 'å°ç…§',
+ 'Completed' => '完æˆäº†',
+ 'Components' => '零件',
+ 'Confirm' => '確èª',
+ 'Confirm!' => '入帳æˆåŠŸï¼',
+ 'Connect to' => '連çµåˆ°',
+ 'Contact' => '連絡人',
+ 'Continue' => '繼續',
+ 'Contra' => '相å',
+ 'Copies' => '副本',
+ 'Copy to COA' => '複製到 COA',
+ 'Cost' => 'æˆæœ¬',
+ 'Cost Center' => 'æˆæœ¬ä¸­å¿ƒ',
+ 'Could not save pricelist!' => 'ä¸èƒ½å„²å­˜åƒ¹æ ¼æ¸…å–®ï¼',
+ 'Could not save!' => 'ä¸èƒ½å„²å­˜ï¼',
+ 'Could not transfer Inventory!' => '存貨清單ä¸èƒ½è½‰ç§»ï¼',
+ 'Country' => '國家',
+ 'Create Chart of Accounts' => '建立帳戶圖表',
+ 'Create Dataset' => '建立資料集',
+ 'Credit' => '貸方',
+ 'Credit Limit' => '信用é¡åº¦',
+ 'Curr' => 'ç›®å‰',
+ 'Currency' => '幣別',
+ 'Current' => 'ç¾æœ‰',
+ 'Current Earnings' => 'ç¾æœ‰æ”¶ç›Š',
+ 'Customer' => '客戶',
+ 'Customer History' => '客戶歷å²',
+ 'Customer Number' => '客戶編號',
+ 'Customer deleted!' => '已刪除客戶ï¼',
+ 'Customer missing!' => '未指明客戶ï¼',
+ 'Customer not on file!' => '沒有此客戶的記錄ï¼',
+ 'Customer saved!' => '已儲存客戶ï¼',
+ 'Customers' => '客戶',
+ 'DBI not installed!' => 'æœªå®‰è£ DBI 模組ï¼',
+ 'DOB' => '出生日期',
+ 'Database' => '資料庫',
+ 'Database Administration' => '資料庫管ç†',
+ 'Database Driver not checked!' => '未é¸å®šè³‡æ–™åº«é©…動程å¼ï¼',
+ 'Database Host' => '資料庫主機',
+ 'Database User missing!' => '未指明資料庫使用者ï¼',
+ 'Dataset' => '資料集',
+ 'Dataset is newer than version!' => '較新資料集ï¼',
+ 'Dataset missing!' => '未指明資料集ï¼',
+ 'Dataset updated!' => '已更新資料集ï¼',
+ 'Date' => '日期',
+ 'Date Format' => '日期格å¼',
+ 'Date Paid' => '付款日期',
+ 'Date Received' => '收款日期',
+ 'Date missing!' => '未指明日期ï¼',
+ 'Date received missing!' => '未指明收款日期ï¼',
+ 'Date worked' => '工作日期',
+ 'Day' => 'æ—¥',
+ 'Day(s)' => 'æ—¥',
+ 'Days' => 'æ—¥',
+ 'Debit' => '借方',
+ 'Dec' => 'å二月',
+ 'December' => 'å二月',
+ 'Decimalplaces' => 'å°æ•¸çš„ä½ç½®',
+ 'Decrease' => '減少',
+ 'Deduct after' => '減少以後',
+ 'Deduction deleted!' => '已刪除減少ï¼',
+ 'Deduction saved!' => '已儲存減少ï¼',
+ 'Deductions' => '減除é¡',
+ 'Default Template' => 'é è¨­æ¨¡ç‰ˆ',
+ 'Defaults' => 'é è¨­',
+ 'Defaults saved!' => '已儲存é è¨­ï¼',
+ 'Delete' => '刪除',
+ 'Delete Account' => '刪除帳戶',
+ 'Delete Dataset' => '刪除資料集',
+ 'Delete Schedule' => '刪除時間表',
+ 'Deleting a language will also delete the templates for the language' => '刪除語言將會刪除它的模版',
+ 'Delivery Date' => '到期日',
+ 'Department' => '部門',
+ 'Department deleted!' => '已刪除部門ï¼',
+ 'Department saved!' => '已儲存部門ï¼',
+ 'Departments' => '部門',
+ 'Deposit' => '存款',
+ 'Description' => '說明',
+ 'Description Translations' => '翻譯æè¿°',
+ 'Description missing!' => '未指明æè¿°ï¼',
+ 'Detail' => '詳情',
+ 'Difference' => '差異',
+ 'Directory' => '目錄',
+ 'Discount' => '折扣',
+ 'Done' => '已完æˆ',
+ 'Drawing' => '圖畫',
+ 'Driver' => '驅動程å¼',
+ 'Dropdown Limit' => 'é™åˆ¶',
+ 'Due Date' => '到期日',
+ 'Due Date missing!' => '未指明到期日ï¼',
+ 'E-mail' => 'é›»å­éƒµä»¶',
+ 'E-mail Statement to' => '電郵會計賬到',
+ 'E-mail address missing!' => '未指明電å­éƒµä»¶ä½å€ï¼',
+ 'E-mail message' => 'é›»å­éƒµä»¶è¨Šæ¯',
+ 'E-mailed' => '已電郵',
+ 'Edit' => '編輯',
+ 'Edit AP Transaction' => '編輯應付交易',
+ 'Edit AR Transaction' => '編輯應收交易',
+ 'Edit Account' => '編輯帳戶',
+ 'Edit Assembly' => '編輯製æˆå“',
+ 'Edit Business' => '編輯業務',
+ 'Edit Cash Transfer Transaction' => '編輯ç¾é‡‘轉移',
+ 'Edit Customer' => '編輯客戶',
+ 'Edit Deduction' => '編輯減除é¡',
+ 'Edit Department' => '編輯部門',
+ 'Edit Description Translations' => '編輯翻譯æè¿°',
+ 'Edit Employee' => '編輯è·å“¡',
+ 'Edit GIFI' => '編輯GIFI',
+ 'Edit General Ledger Transaction' => '編輯總帳',
+ 'Edit Group' => '編輯組別',
+ 'Edit Job' => '編輯工作',
+ 'Edit Labor/Overhead' => '編輯直接人工/經常費用',
+ 'Edit Language' => '編輯語言',
+ 'Edit POS Invoice' => '編輯POS',
+ 'Edit Part' => '編輯零件',
+ 'Edit Preferences for' => '設定使用者',
+ 'Edit Pricegroup' => '編輯價格組別',
+ 'Edit Project' => '編輯項目',
+ 'Edit Purchase Order' => '編輯採購單',
+ 'Edit Quotation' => '編輯報價單',
+ 'Edit Request for Quotation' => '編輯報價單è¦æ±‚',
+ 'Edit SIC' => '編輯標準工業分類代碼',
+ 'Edit Sales Invoice' => '編輯銷售發票',
+ 'Edit Sales Order' => '編輯銷貨單',
+ 'Edit Service' => '編輯æœå‹™',
+ 'Edit Template' => '編輯模版',
+ 'Edit Timecard' => '編輯工時å¡',
+ 'Edit User' => '編輯使用者',
+ 'Edit Vendor' => '編輯供應商',
+ 'Edit Vendor Invoice' => '編輯供應商發票',
+ 'Edit Warehouse' => '編輯倉庫',
+ 'Employee' => 'è·å“¡',
+ 'Employee Name' => 'è·å“¡å§“å',
+ 'Employee Number' => 'è·å“¡ç·¨è™Ÿ',
+ 'Employee deleted!' => '已刪除è·å“¡ï¼',
+ 'Employee pays' => '付款給è·å“¡',
+ 'Employee saved!' => '已儲存è·å“¡ï¼',
+ 'Employees' => 'è·å“¡',
+ 'Employer' => '雇主',
+ 'Employer pays' => '付款給雇主',
+ 'Enddate' => 'çµæŸæ—¥',
+ 'Ends' => '完çµ',
+ 'Enforce transaction reversal for all dates' => '強制所有日期的交易回復',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'è«‹éµå…¥ä»¥å†’號分隔的英文字æ¯, æ¯é …ä¸è¶…éŽä¸‰å€‹å­— (如 CAD:USD:EUR), 作為您的本國åŠå¤–國貨幣',
+ 'Equity' => '股權',
+ 'Every' => 'æ¯',
+ 'Excempt age <' => 'ä¸åŒ…括年齡 <',
+ 'Exch' => '匯率',
+ 'Exchange Rate' => '匯率',
+ 'Exchange rate for payment missing!' => '未指明付款的匯率ï¼',
+ 'Exchange rate missing!' => '未指明匯率ï¼',
+ 'Existing Datasets' => '既有的資料集',
+ 'Expense' => '費用',
+ 'Expense account does not exist!' => '費用帳戶ä¸å­˜åœ¨ï¼',
+ 'Expense/Asset' => '費用/資產',
+ 'Extended' => '總價',
+ 'FX' => '外幣兌æ›',
+ 'Failed to save order!' => '儲存訂單時出錯ï¼',
+ 'Fax' => '傳真',
+ 'Feb' => '二月',
+ 'February' => '二月',
+ 'For' => 'é‡è¦†',
+ 'Foreign Exchange Gain' => '外匯收益',
+ 'Foreign Exchange Loss' => '外匯æ失',
+ 'Friday' => '星期五',
+ 'From' => '從',
+ 'From Warehouse' => '從貨倉',
+ 'GIFI' => '財務訊æ¯é€šç”¨ç´¢å¼•(GIFI)',
+ 'GIFI deleted!' => 'GIFI已刪除ï¼',
+ 'GIFI missing!' => '未指明 GIFIï¼',
+ 'GIFI saved!' => '已儲存ï¼',
+ 'GL' => '總帳',
+ 'GL Reference Number' => '總帳索引編號',
+ 'GL Transaction' => '總帳交易',
+ 'General Ledger' => '總帳',
+ 'Generate' => '生æˆ',
+ 'Generate Orders' => '生æˆè¨‚å–®',
+ 'Generate Purchase Orders' => '生æˆæŽ¡è³¼å–®',
+ 'Generate Purchase Orders from Sales Order' => '由銷貨單生æˆæŽ¡è³¼å–®',
+ 'Generate Sales Order' => '生æˆéŠ·è²¨å–®',
+ 'Generate Sales Order from Purchase Orders' => '由採購單生æˆéŠ·è²¨å–®',
+ 'Generate Sales Orders' => '生æˆéŠ·è²¨å–®',
+ 'Goods & Services' => '貨物åŠæœå‹™',
+ 'Group' => '組別',
+ 'Group Items' => '組別的項目',
+ 'Group Translations' => '組別的翻譯',
+ 'Group deleted!' => '組別已被刪除ï¼',
+ 'Group missing!' => '未指明組別ï¼',
+ 'Group saved!' => '組別已被儲存ï¼',
+ 'Groups' => '所有組別',
+ 'HR' => '人事管ç†',
+ 'HTML Templates' => 'HTML 模版',
+ 'Heading' => '標題',
+ 'History' => 'æ­·å²',
+ 'Home Phone' => 'ä½å®…電話',
+ 'Host' => '主機',
+ 'Hostname missing!' => '未指明主機å稱ï¼',
+ 'IBAN' => '國際銀行帳號(IBAN)',
+ 'ID' => '識別編號',
+ 'Image' => 'å½±åƒ',
+ 'In-line' => '行內',
+ 'Inactive' => 'éžæ´»èºçš„',
+ 'Include Exchange Rate Difference' => '包å«å¤–匯差è·',
+ 'Include Payment' => '包括付款',
+ 'Include in Report' => '一併顯示',
+ 'Include in drop-down menus' => '包å«åœ¨ä¸‹æ‹‰å¼é¸å–®ä¸­',
+ 'Income' => '收入',
+ 'Income Statement' => 'æ益表',
+ 'Income account does not exist!' => '收入帳戶ä¸å­˜åœ¨ï¼',
+ 'Incorrect Dataset version!' => '資料集版本錯誤ï¼',
+ 'Increase' => '增加',
+ 'Individual Items' => '個別的項目',
+ 'Internal Notes' => '內部備忘錄',
+ 'Inventory' => '庫存',
+ 'Inventory account does not exist!' => '庫存數帳戶ä¸å­˜åœ¨ï¼',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => '在åœç”¨æ­¤è£½æˆå“之å‰, 存貨數é‡å¿…需為零ï¼',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'åœç”¨æ­¤é …零件之å‰, 存貨數é‡å¿…需為零ï¼',
+ 'Inventory saved!' => '已儲存存貨ï¼',
+ 'Inventory transferred!' => '轉移的存貨ï¼',
+ 'Invoice' => '發票',
+ 'Invoice Date' => '發票日期',
+ 'Invoice Date missing!' => '未指明發票日期ï¼',
+ 'Invoice Number' => '發票編號',
+ 'Invoice Number missing!' => '未指明發票編號ï¼',
+ 'Invoice deleted!' => '已刪除發票ï¼',
+ 'Invoices' => '發票',
+ 'Is this a summary account to record' => '此為總çµç§‘目嗎?',
+ 'Item already on pricelist!' => '項目己經在價格清單內ï¼',
+ 'Item deleted!' => '已刪除項目ï¼',
+ 'Item not on file!' => '沒有此項目的記錄ï¼',
+ 'Items' => 'é …ç›®',
+ 'Jan' => '一月',
+ 'January' => '一月',
+ 'Job' => '工作',
+ 'Job Name' => '工作å稱',
+ 'Job Number' => '工作編號',
+ 'Job Number missing!' => '未指明工作編號ï¼',
+ 'Job deleted!' => '工作已被刪除ï¼',
+ 'Job saved!' => '工作已被儲存ï¼',
+ 'Jobs' => '工作',
+ 'Jul' => '七月',
+ 'July' => '七月',
+ 'Jun' => '六月',
+ 'June' => '六月',
+ 'LaTeX Templates' => 'LaTex 模版',
+ 'Labor Code' => '直接人工代碼',
+ 'Labor/Overhead' => '直接人工/經常費用',
+ 'Language' => '語言',
+ 'Language deleted!' => '已刪除語言ï¼',
+ 'Language saved!' => '已儲存語言ï¼',
+ 'Languages' => '語言',
+ 'Languages not defined!' => 'ä¸èƒ½è¾¨èªèªžè¨€ï¼',
+ 'Last Cost' => '上次的æˆæœ¬',
+ 'Last Numbers & Default Accounts' => '上一筆編號åŠé è¨­å¸³æˆ¶',
+ 'Lead' => '交付時間',
+ 'Leadtime' => '總需時',
+ 'Leave host and port field empty unless you want to make a remote connection.' => '除éžæ‚¨æƒ³è¦é€²è¡Œé ç«¯é€£ç·šï¼Œå¦å‰‡è«‹å°‡ä¸»æ©ŸåŠåŸ è™Ÿç•™ç™½ã€‚',
+ 'Liability' => '負債',
+ 'Licensed to' => '授權予',
+ 'Line Total' => '總列數',
+ 'Link' => '連çµ',
+ 'Link Accounts' => '連çµå¸³æˆ¶',
+ 'List' => '列表',
+ 'List Accounts' => '列出帳號',
+ 'List Businesses' => '列出業務',
+ 'List Departments' => '列出部門',
+ 'List GIFI' => '列出 GIFI',
+ 'List Languages' => '列出語言',
+ 'List Price' => '列出價',
+ 'List Projects' => '列出項目',
+ 'List SIC' => '列出標準工業分類代碼',
+ 'List Transactions' => '列出所有交易',
+ 'List Warehouses' => '列出倉庫',
+ 'Lock System' => '系統鎖上',
+ 'Lockfile created!' => '已建立上鎖檔案ï¼',
+ 'Lockfile removed!' => '已移除上鎖檔案ï¼',
+ 'Login' => '登入',
+ 'Login name missing!' => '未指明登入åå­—ï¼',
+ 'Logout' => '登出',
+ 'Make' => '生產商',
+ 'Manager' => '經ç†',
+ 'Mar' => '三月',
+ 'March' => '三月',
+ 'Marked entries printed!' => '已列å°æœ‰è¨˜è™Ÿçš„會計項目ï¼',
+ 'Markup' => '漲價',
+ 'Maximum' => '最大',
+ 'May' => '五月',
+ 'May ' => '五月',
+ 'Memo' => '備忘錄',
+ 'Menu Width' => 'é¸æ“‡å–®å¯¬åº¦',
+ 'Message' => '訊æ¯',
+ 'Method' => '方法',
+ 'Microfiche' => '單片縮影膠片',
+ 'Model' => '型號',
+ 'Monday' => '星期一',
+ 'Month' => '月',
+ 'Month(s)' => '月',
+ 'Months' => '月',
+ 'Multibyte Encoding' => '多字元編碼',
+ 'N/A' => 'ä¸é©ç”¨',
+ 'Name' => 'å稱',
+ 'Name missing!' => '未指明åå­—ï¼',
+ 'New Templates' => '新增模版',
+ 'New Window' => '新視窗',
+ 'Next' => '下一個',
+ 'Next Date' => '下一日',
+ 'Next Number' => '下一個號碼',
+ 'No' => 'å¦',
+ 'No Database Drivers available!' => '沒有å¯ç”¨çš„資料庫驅動程å¼ï¼',
+ 'No Dataset selected!' => '未é¸å®šè³‡æ–™é›†ï¼',
+ 'No Employees on file!' => '沒有任何僱員的記錄ï¼',
+ 'No Labor codes on file!' => '沒有任何直接人工代碼的記錄ï¼',
+ 'No email address for' => '未指明電å­éƒµä»¶åœ°å€',
+ 'No open Jobs!' => '沒有已開啟的工作',
+ 'No open Projects!' => '沒有已開啟的項目',
+ 'No.' => '編號',
+ 'Non-taxable' => 'ä¸æ‡‰èª²ç¨…',
+ 'Non-taxable Purchases' => 'ä¸æ‡‰èª²ç¨…的採購',
+ 'Non-taxable Sales' => 'ä¸æ‡‰èª²ç¨…的銷售',
+ 'Non-tracking Items' => 'ä¸ç”¨è¿½è¹¤çš„é …ç›®',
+ 'Notes' => '備註',
+ 'Nothing entered!' => '沒有任何輸入ï¼',
+ 'Nothing selected!' => '沒有é¸æ“‡ä»»ä½•æ±è¥¿ï¼',
+ 'Nothing to delete!' => '沒有å¯åˆªé™¤çš„é …ç›®ï¼',
+ 'Nothing to print!' => '沒有å¯åˆ—å°çš„é …ç›®ï¼',
+ 'Nothing to transfer!' => '沒有å¯è½‰ç§»çš„é …ç›®ï¼',
+ 'Nov' => 'å一月',
+ 'November' => 'å一月',
+ 'Number' => '編號',
+ 'Number Format' => '數字格å¼',
+ 'Number missing in Row' => '此列中缺少數值',
+ 'O' => '',
+ 'OH' => '已有存é‡',
+ 'Obsolete' => 'åœç”¨',
+ 'Oct' => 'å月',
+ 'October' => 'å月',
+ 'On Hand' => '已有存é‡',
+ 'Open' => 'é–‹å•Ÿ',
+ 'Oracle Database Administration' => 'Oracle資料庫管ç†',
+ 'Order' => '訂單',
+ 'Order Date' => '下單日期',
+ 'Order Date missing!' => '未指明下單日期ï¼',
+ 'Order Entry' => '下單項目',
+ 'Order Number' => '訂單編號',
+ 'Order Number missing!' => '未指明訂單編號ï¼',
+ 'Order deleted!' => '已刪除訂單ï¼',
+ 'Order generation failed!' => '生æˆè¨‚單失敗ï¼',
+ 'Order saved!' => '已儲存訂單ï¼',
+ 'Orders generated!' => '已生æˆè¨‚å–®ï¼',
+ 'Orphaned' => '無主',
+ 'Out of balance transaction!' => 'ä¸å”調交易ï¼',
+ 'Out of balance!' => 'ä¸å¹³è¡¡ï¼',
+ 'Outstanding' => '未收款交易',
+ 'PDF' => 'PDF',
+ 'PO Number' => '採購單編號',
+ 'POS' => '銷售點(POS)',
+ 'POS Invoice' => 'POS發票',
+ 'Packing List' => '出貨單',
+ 'Packing List Date missing!' => '未指明出貨單日期ï¼',
+ 'Packing List Number missing!' => '未指明出貨單編號ï¼',
+ 'Packing Lists' => '出貨單',
+ 'Paid' => '已付',
+ 'Part' => '零件',
+ 'Part Number' => '零件編號',
+ 'Partnumber' => '零件編號',
+ 'Parts' => '零件',
+ 'Password' => '密碼',
+ 'Password changed!' => '密碼已改ï¼',
+ 'Password does not match!' => '密碼ä¸ç¬¦ï¼',
+ 'Passwords do not match!' => '密碼ä¸ç¬¦ï¼',
+ 'Payables' => '應付科目',
+ 'Payment' => '付款',
+ 'Payment date missing!' => '未指明付款日期ï¼',
+ 'Payment posted!' => '已加入付款ï¼',
+ 'Payments' => '付款',
+ 'Payments posted!' => '已加入付款ï¼',
+ 'Payroll Deduction' => '薪金減除é¡',
+ 'Period' => '期間',
+ 'Pg Database Administration' => 'Pg資料庫管ç†',
+ 'PgPP Database Administration' => 'PgPP資料庫管ç†',
+ 'Phone' => '電話號碼',
+ 'Pick List' => 'æ€è²¨æ¸…å–®',
+ 'Pick Lists' => 'æ€è²¨æ¸…å–®',
+ 'Port' => '埠號',
+ 'Port missing!' => '未指明埠號ï¼',
+ 'Pos' => 'åºè™Ÿ',
+ 'Post' => '加入',
+ 'Post as new' => '當新的加入',
+ 'Posted!' => '已加入ï¼',
+ 'Posting' => '正加入',
+ 'Posting failed!' => '加入失敗ï¼',
+ 'Postscript' => 'Postscript',
+ 'Preferences' => '個人設定',
+ 'Preferences saved!' => '個人設定已儲存ï¼',
+ 'Prepayment' => 'é ç¹³',
+ 'Price' => '價格',
+ 'Pricegroup' => '價格組別',
+ 'Pricegroup deleted!' => '已刪除價格組別ï¼',
+ 'Pricegroup missing!' => '未指明價格組別ï¼',
+ 'Pricegroup saved!' => '已儲存價格組別ï¼',
+ 'Pricegroups' => '所有價格組別',
+ 'Pricelist' => '價格清單',
+ 'Print' => '列å°',
+ 'Print and Post' => '列å°ä¸¦åŠ å…¥',
+ 'Print and Post as new' => '列å°ä¸¦åŠ å…¥ä½œç‚ºæ–°çš„',
+ 'Print and Save' => '列å°ä¸¦å„²å­˜',
+ 'Print and Save as new' => '列å°ä¸¦å„²å­˜ä½œç‚ºæ–°çš„',
+ 'Print and post as new' => '列å°ä¸¦åŠ å…¥ä½œç‚ºæ–°çš„',
+ 'Print and save as new' => '列å°ä¸¦å„²å­˜ä½œç‚ºæ–°çš„',
+ 'Printed' => '已列å°',
+ 'Printer' => 'å°è¡¨æ©Ÿ',
+ 'Printing' => '正列å°',
+ 'Printing ... ' => '正列å°â€§â€§â€§',
+ 'Process Transactions' => '處ç†æ‰€æœ‰äº¤æ˜“',
+ 'Production' => '生產',
+ 'Profit Center' => '利潤中心',
+ 'Project' => 'é …ç›®',
+ 'Project Description Translations' => 'é …ç›®æ述的翻譯',
+ 'Project Name' => 'é …ç›®å稱',
+ 'Project Number' => '項目號碼',
+ 'Project Number missing!' => '未指明項目號碼ï¼',
+ 'Project Transactions' => '項目交易',
+ 'Project deleted!' => '已刪除項目ï¼',
+ 'Project not on file!' => '沒有此項目的記錄ï¼',
+ 'Project saved!' => '已儲存項目ï¼',
+ 'Project/Job Name' => 'é …ç›®/工作å稱',
+ 'Project/Job Number' => '項目/工作號碼',
+ 'Projects' => 'é …ç›®',
+ 'Purchase Order' => '採購單',
+ 'Purchase Order Number' => '採購單編號',
+ 'Purchase Orders' => '採購單',
+ 'Qty' => '數é‡',
+ 'Quantity exceeds available units to stock!' => '數é‡è¶…éŽå¯åº«å­˜çš„數é‡ï¼',
+ 'Quarter' => 'å­£',
+ 'Quotation' => '報價單',
+ 'Quotation ' => '報價單 ',
+ 'Quotation Date' => '報價單日期',
+ 'Quotation Date missing!' => '未指明報價單日期ï¼',
+ 'Quotation Number' => '報價單號碼',
+ 'Quotation Number missing!' => '未指明報價單號碼ï¼',
+ 'Quotation deleted!' => '已刪除報價單ï¼',
+ 'Quotations' => '報價單',
+ 'R' => '',
+ 'RFQ' => '報價請求(RFQ) ',
+ 'RFQ ' => '報價請求(RFQ) ',
+ 'RFQ Number' => '報價請求號碼',
+ 'RFQs' => '報價請求',
+ 'ROP' => 'å†è¨‚點',
+ 'Rate' => '稅率',
+ 'Rate missing!' => '未指明稅率ï¼',
+ 'Recd' => '已收到',
+ 'Receipt' => '收據',
+ 'Receipt posted!' => '已加入收據ï¼',
+ 'Receipts' => '收據',
+ 'Receivables' => '應收帳戶',
+ 'Receive' => '收到',
+ 'Receive Merchandise' => '收到貨物',
+ 'Reconciliation' => '調節',
+ 'Reconciliation Report' => '調節報告',
+ 'Record in' => '記錄於',
+ 'Recurring Transaction' => 'é‡è¦†å‡ºç¾çš„交易',
+ 'Recurring Transactions' => 'é‡è¦†å‡ºç¾çš„交易',
+ 'Reference' => 'åƒè€ƒè³‡æ–™',
+ 'Remaining' => '尚餘',
+ 'Remove' => '移除',
+ 'Remove Audit trails up to' => '移除審核線索直至',
+ 'Removed spoolfiles!' => '移除列å°æš«å­˜æª”案',
+ 'Removing marked entries from queue ...' => '正從隊列中移除有記號的會計項目',
+ 'Repeat' => 'é‡è¦†',
+ 'Report for' => '報表來æº',
+ 'Reports' => '報表',
+ 'Req' => '需è¦',
+ 'Request for Quotation' => 'è¦æ±‚報價單',
+ 'Request for Quotations' => 'è¦æ±‚報價單',
+ 'Required by' => 'è¦æ±‚交付日期',
+ 'Retained Earnings' => 'ä¿ç•™ç›ˆé¤˜',
+ 'Role' => '任務',
+ 'S' => '',
+ 'SIC' => '標準工業分類代碼',
+ 'SIC deleted!' => '已刪除標準工業分類代碼ï¼',
+ 'SIC saved!' => '已儲存標準工業分類代碼ï¼',
+ 'SKU' => '庫存單ä½',
+ 'SSN' => '社會ä¿éšœç·¨è™Ÿ',
+ 'Sale' => '銷售',
+ 'Sales' => '銷售',
+ 'Sales Invoice' => '銷售發票',
+ 'Sales Invoice ' => '銷售發票 ',
+ 'Sales Invoice.' => '銷售發票。',
+ 'Sales Invoice/AR Transaction Number' => '銷售發票/應收帳交易編號',
+ 'Sales Invoices' => '銷售發票',
+ 'Sales Order' => '銷貨單',
+ 'Sales Order Number' => '銷貨單編號',
+ 'Sales Orders' => '銷貨單',
+ 'Sales Quotation Number' => '銷售報價單編號',
+ 'Salesperson' => '銷售人員',
+ 'Saturday' => '星期六',
+ 'Save' => '儲存',
+ 'Save Pricelist' => '儲存價格清單',
+ 'Save Schedule' => '儲存時間表',
+ 'Save as new' => '當新的儲存',
+ 'Save to File' => '儲存至檔案',
+ 'Saving' => '正在儲存',
+ 'Schedule' => '時間表',
+ 'Scheduled' => '編排了時間',
+ 'Screen' => '螢幕',
+ 'Search' => 'æœå°‹',
+ 'Select' => 'é¸æ“‡',
+ 'Select Customer' => 'é¸æ“‡å®¢æˆ¶',
+ 'Select Vendor' => 'é¸æ“‡ä¾›æ‡‰å•†',
+ 'Select a Printer!' => 'é¸æ“‡å°è¡¨æ©Ÿï¼',
+ 'Select a printer!' => 'é¸æ“‡å°è¡¨æ©Ÿï¼',
+ 'Select all' => 'å…¨é¸',
+ 'Select from one of the items below' => '於下列項目中é¸æ“‡ä¸€é …',
+ 'Select from one of the names below' => '於下列姓å中é¸æ“‡ä¸€å€‹',
+ 'Select from one of the projects below' => '於下列項目中é¸æ“‡ä¸€å€‹',
+ 'Select items' => 'é¸æ“‡é …ç›®',
+ 'Select payment' => 'é¸æ“‡ä»˜æ¬¾',
+ 'Select postscript or PDF!' => 'é¸æ“‡postscript或PDFï¼',
+ 'Select txt, postscript or PDF!' => 'é¸æ“‡æ–‡å­—ã€postscript或PDFï¼',
+ 'Sell' => '售賣',
+ 'Sell Price' => '售價',
+ 'Send by E-Mail' => '以電å­éƒµä»¶å¯„é€',
+ 'Sending' => '正在發é€',
+ 'Sep' => 'ä¹æœˆ',
+ 'September' => 'ä¹æœˆ',
+ 'Serial No.' => 'åºè™Ÿ',
+ 'Serial Number' => 'åºè™Ÿ',
+ 'Service' => 'æœå‹™',
+ 'Service Code' => 'æœå‹™ç·¨è™Ÿ',
+ 'Service/Labor Code' => 'æœå‹™/直接人工編號',
+ 'Services' => 'æœå‹™',
+ 'Session Timeout' => '使用期(Session)長短',
+ 'Session expired!' => '使用期(Session)å·²éŽï¼',
+ 'Setup Templates' => '設定模版',
+ 'Ship' => '付é‹',
+ 'Ship Merchandise' => '付é‹è²¨ç‰©',
+ 'Ship to' => '付é‹è‡³',
+ 'Ship via' => '付é‹å…¬å¸',
+ 'Shipping' => '付é‹',
+ 'Shipping Address' => '付é‹åœ°å€',
+ 'Shipping Date' => '付é‹æ—¥æœŸ',
+ 'Shipping Date missing!' => '未指明付é‹æ—¥æœŸï¼',
+ 'Shipping Point' => '付é‹åœ°é»ž',
+ 'Short' => '短',
+ 'Signature' => 'ç°½å',
+ 'Source' => '來æº',
+ 'Spoolfile' => '列å°æš«å­˜(spool)檔案',
+ 'Standard' => '標準',
+ 'Standard Industrial Codes' => '標準工業編碼',
+ 'Startdate' => '開始日期',
+ 'State' => 'å·ž',
+ 'State/Province' => 'çœ',
+ 'Statement' => '會計帳',
+ 'Statement Balance' => '會計帳餘é¡',
+ 'Statement sent to' => '會計帳已é€è‡³',
+ 'Statements sent to printer!' => '會計帳已é€è‡³å°è¡¨æ©Ÿï¼',
+ 'Stock' => '庫存',
+ 'Stock Assembly' => '把製æˆå“入貨',
+ 'Stocking Date' => '入貨日期',
+ 'Stylesheet' => '樣å¼è¡¨',
+ 'Sub-contract GIFI' => '轉包åˆåŒGIFI',
+ 'Subject' => '標題',
+ 'Subtotal' => 'å°è¨ˆ',
+ 'Summary' => '摘è¦',
+ 'Sunday' => '星期日',
+ 'Supervisor' => '主管',
+ 'System' => '系統',
+ 'System Defaults' => '系統é è¨­å€¼',
+ 'Tax' => '稅金',
+ 'Tax Accounts' => '稅金科目',
+ 'Tax Included' => 'å·²å«ç¨…金',
+ 'Tax Number' => '稅號',
+ 'Tax Number / SSN' => '稅號/社會ä¿éšœç·¨è™Ÿ',
+ 'Tax collected' => '已收稅金',
+ 'Tax paid' => '已付稅金',
+ 'Taxable' => '應稅',
+ 'Template saved!' => '已儲存模版ï¼',
+ 'Templates' => '模版',
+ 'Terms' => '票期淨計',
+ 'Text' => '文字',
+ 'Text Templates' => '文字模版',
+ 'The following Datasets are not in use and can be deleted' => '下列資料集並未使用,å¯ä»¥åˆªé™¤',
+ 'The following Datasets need to be updated' => '下列資料集需è¦æ›´æ–°',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => '這是å°æ—¢å­˜è³‡æ–™ä¾†æºçš„åˆæ­¥æª¢æŸ¥ã€‚在此階段,ä¸æœƒåˆªé™¤æˆ–新增任何資料ï¼',
+ 'Thursday' => '星期四',
+ 'Till' => '直到',
+ 'Time In' => '上ç­æ™‚é–“',
+ 'Time Out' => '下ç­æ™‚é–“',
+ 'Timecard' => '工時å¡',
+ 'Timecard deleted!' => '工時å¡å·²è¢«åˆªé™¤ï¼',
+ 'Timecard saved!' => '工時å¡å·²è¢«å„²å­˜ï¼',
+ 'Timecards' => '工時å¡',
+ 'Times' => '次',
+ 'To' => '至',
+ 'To Warehouse' => '到倉庫',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'è‹¥è¦æ–°å¢žç¾¤çµ„內的使用者,請編輯å稱,更改登入å,然後儲存。這樣一來, 新使用者會ä¿ç•™ç›¸åŒçš„變數,並以新的登入å存入。',
+ 'Top Level' => '頂層',
+ 'Total' => '總計',
+ 'Tracking Items' => '需è¦è¿½è¹¤çš„é …ç›®',
+ 'Trade Discount' => '貿易折扣',
+ 'Transaction' => '交易',
+ 'Transaction Date missing!' => '未指明交易日期ï¼',
+ 'Transaction Dates' => '交易日期',
+ 'Transaction deleted!' => '已刪除交易ï¼',
+ 'Transaction posted!' => '已加入交易ï¼',
+ 'Transaction reversal enforced for all dates' => '強制回復所有日期的交易',
+ 'Transaction reversal enforced up to' => '強制回復交易直到',
+ 'Transactions' => '所有交易',
+ 'Transfer' => '轉移',
+ 'Transfer Inventory' => '轉移存貨',
+ 'Transfer from' => '由這裡å–貨',
+ 'Transfer to' => '存貨至',
+ 'Translation' => '翻譯',
+ 'Translation deleted!' => '已刪除翻譯ï¼',
+ 'Translation not on file!' => '沒有此翻譯的記錄ï¼',
+ 'Translations' => '翻譯',
+ 'Translations saved!' => '已儲存翻譯ï¼',
+ 'Trial Balance' => '試算表',
+ 'Tuesday' => '星期二',
+ 'Type of Business' => '業務種類',
+ 'Unit' => 'å–®ä½',
+ 'Unit of measure' => '度é‡å–®ä½',
+ 'Unlock System' => '系統解å°',
+ 'Update' => 'æ›´æ–°',
+ 'Update Dataset' => '更新資料集',
+ 'Updated' => '已更新',
+ 'Upgrading to Version' => 'æ­£å‡ç´šè‡³æ–°ç‰ˆ',
+ 'Use Templates' => '使用模版',
+ 'User' => '使用者',
+ 'User deleted!' => '已刪除使用者ï¼',
+ 'User saved!' => '已儲存使用者ï¼',
+ 'Valid until' => '有效至',
+ 'Vendor' => '供應商',
+ 'Vendor History' => '供應商歷å²',
+ 'Vendor Invoice' => '供應商發票',
+ 'Vendor Invoice ' => '供應商發票 ',
+ 'Vendor Invoice.' => '供應商發票。',
+ 'Vendor Invoice/AP Transaction Number' => '供應商發票/應付帳交易編號',
+ 'Vendor Invoices' => '供應商發票',
+ 'Vendor Number' => '供應商號碼',
+ 'Vendor deleted!' => '已刪除供應商ï¼',
+ 'Vendor missing!' => '未指明供應商ï¼',
+ 'Vendor not on file!' => '沒有此供應商的記錄ï¼',
+ 'Vendor saved!' => '已儲存供應商ï¼',
+ 'Vendors' => '供應商',
+ 'Version' => '版本',
+ 'Warehouse' => '倉庫',
+ 'Warehouse deleted!' => '已刪除倉庫ï¼',
+ 'Warehouse saved!' => '已儲存倉庫ï¼',
+ 'Warehouses' => '倉庫',
+ 'Warning!' => '警告ï¼',
+ 'Wednesday' => '星期三',
+ 'Week' => '星期',
+ 'Week(s)' => '星期',
+ 'Weeks' => '星期',
+ 'Weight' => 'é‡é‡',
+ 'Weight Unit' => 'é‡é‡å–®ä½',
+ 'What type of item is this?' => '此項目屬於甚麼類別?',
+ 'Work Order' => '工作單',
+ 'Work Orders' => '工作單',
+ 'Work Phone' => '工作電話',
+ 'Year' => 'å¹´',
+ 'Year(s)' => 'å¹´',
+ 'Yearend' => 'å¹´çµ',
+ 'Yearend date missing!' => '未指明年çµæ—¥æœŸï¼',
+ 'Yearend posted!' => '已加入年çµï¼',
+ 'Yearend posting failed!' => 'å¹´çµåŠ å…¥å¤±æ•—ï¼',
+ 'Years' => 'å¹´',
+ 'Yes' => '是',
+ 'You are logged out' => '你已登出',
+ 'You are posting an existing transaction!' => '您正在加入一個ç¾å­˜çš„交易ï¼',
+ 'You are printing and posting an existing transaction!' => '您正在列å°åŠåŠ å…¥ä¸€å€‹ç¾å­˜çš„交易ï¼',
+ 'You are printing and saving an existing order' => '您正在列å°åŠå„²å­˜ä¸€å¼µç¾å­˜çš„訂單ï¼',
+ 'You are printing and saving an existing quotation' => '您正在列å°åŠå„²å­˜ä¸€å¼µç¾å­˜çš„報價單ï¼',
+ 'You are printing and saving an existing transaction!' => '您正在列å°åŠå„²å­˜ä¸€å€‹ç¾å­˜çš„交易ï¼',
+ 'You are saving an existing order' => '您正在儲存一張ç¾å­˜çš„訂單ï¼',
+ 'You are saving an existing quotation' => '您正在儲存一張ç¾å­˜çš„報價單ï¼',
+ 'You are saving an existing transaction!' => '您正在儲存一個ç¾å­˜çš„交易ï¼',
+ 'You did not enter a name!' => '你並未éµå…¥å稱ï¼',
+ 'You must enter a host and port for local and remote connections!' => '您必需éµå…¥ä¸»æ©ŸåŠåŸ è™Ÿï¼Œä»¥é€²è¡Œæœ¬æ©Ÿæˆ–é ç«¯é€£ç·šï¼',
+ 'Zip/Postal Code' => '郵政編碼',
+ 'account cannot be set to any other type of account' => '帳戶ä¸èƒ½è¢«è¨­ç½®ç‚ºå…¶ä»–類型帳戶',
+ 'as at' => '截至',
+ 'days' => 'æ—¥',
+ 'does not exist' => 'ä¸å­˜åœ¨',
+ 'done' => '完æˆ',
+ 'ea' => '個',
+ 'failed' => '失敗',
+ 'for' => '為了',
+ 'for Period' => '期間',
+ 'is already a member!' => '已經是æˆå“¡äº†ï¼',
+ 'localhost' => '本地寄主',
+ 'locked!' => '已鎖上ï¼',
+ 'partsgroup' => '零件組',
+ 'posted!' => '已加入ï¼',
+ 'sent' => 'å·²é€å‡º',
+ 'successfully created!' => 'æˆåŠŸå»ºç«‹ï¼',
+ 'successfully deleted!' => 'æˆåŠŸåˆªé™¤ï¼',
+ 'time(s)' => '次',
+ 'unexpected error!' => '沒有é æœŸçš„錯誤ï¼',
+ 'website' => '網站',
+};
+
+1;
diff --git a/locale/tw_utf/am b/locale/tw_utf/am
new file mode 100755
index 00000000..f5e4dd21
--- /dev/null
+++ b/locale/tw_utf/am
@@ -0,0 +1,310 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP' => '應付帳款',
+ 'AR' => '應收帳款',
+ 'About' => '關於',
+ 'Account' => '帳戶',
+ 'Account Number' => '帳戶編號',
+ 'Account Number missing!' => '未指明帳戶編號ï¼',
+ 'Account Type' => '帳戶類別',
+ 'Account Type missing!' => '未指明帳戶類別ï¼',
+ 'Account deleted!' => '已刪除帳戶ï¼',
+ 'Account does not exist!' => 'ä¸å­˜åœ¨å¸³æˆ¶ï¼',
+ 'Account saved!' => '已儲存帳戶ï¼',
+ 'Accounting Menu' => '會計é¸å–®',
+ 'Accrual' => '應計基礎',
+ 'Add Account' => '新增帳戶',
+ 'Add Business' => '新增業務',
+ 'Add Department' => '新增部門',
+ 'Add GIFI' => '新增GIFI',
+ 'Add Language' => '新增語言',
+ 'Add SIC' => '新增標準工業分類代碼',
+ 'Add Warehouse' => '新增倉庫',
+ 'Address' => '地å€',
+ 'Amount' => '金é¡',
+ 'Asset' => '資產',
+ 'Audit Control' => '審核控制',
+ 'Audit trail removed up to' => '移除到此為止的審核線索',
+ 'Backup sent to' => '備份寄é€åˆ°',
+ 'Bin List' => '箱的明細表',
+ 'Books are open' => '帳簿已開啟',
+ 'Business Number' => '業務編號',
+ 'Business deleted!' => '已刪除業務ï¼',
+ 'Business saved!' => '已儲存業務ï¼',
+ 'COGS' => '貨銷æˆæœ¬',
+ 'Cannot delete account!' => 'ä¸èƒ½åˆªé™¤å¸³æˆ¶ï¼',
+ 'Cannot delete default account!' => 'ä¸èƒ½åˆªé™¤é è¨­å¸³æˆ¶ï¼',
+ 'Cannot save account!' => 'ä¸èƒ½å„²å­˜å¸³æˆ¶ï¼',
+ 'Cannot save defaults!' => 'ä¸èƒ½å„²å­˜é è¨­ï¼',
+ 'Cannot save preferences!' => 'ä¸èƒ½å„²å­˜å„ªå…ˆé¸æ“‡ï¼',
+ 'Cannot set account for more than one of AR, AP or IC' => 'ä¸èƒ½è¨­ç½®å¤šæ–¼ä¸€å€‹æ‡‰æ”¶å¸³æ¬¾, 應付帳款或IC',
+ 'Cannot set multiple options for' => 'ä¸èƒ½å°ä»¥ä¸‹ç‰©ä»¶è¨­å®šå¤šå€‹é¸é …:',
+ 'Cash' => 'ç¾é‡‘',
+ 'Chart of Accounts' => '會計科目表',
+ 'Close Books up to' => '關閉到此為止的帳簿:',
+ 'Code' => '編碼',
+ 'Code missing!' => '未指明編碼ï¼',
+ 'Company' => 'å…¬å¸',
+ 'Confirm' => '確èª',
+ 'Confirm!' => '入帳æˆåŠŸï¼',
+ 'Continue' => '繼續',
+ 'Contra' => '相å',
+ 'Copy to COA' => '複製到 COA',
+ 'Cost Center' => 'æˆæœ¬ä¸­å¿ƒ',
+ 'Credit' => '貸方',
+ 'Customer Number' => '客戶編號',
+ 'Database Host' => '資料庫主機',
+ 'Dataset' => '資料集',
+ 'Date Format' => '日期格å¼',
+ 'Day' => 'æ—¥',
+ 'Days' => 'æ—¥',
+ 'Debit' => '借方',
+ 'Default Template' => 'é è¨­æ¨¡ç‰ˆ',
+ 'Defaults saved!' => '已儲存é è¨­ï¼',
+ 'Delete' => '刪除',
+ 'Delete Account' => '刪除帳戶',
+ 'Deleting a language will also delete the templates for the language' => '刪除語言將會刪除它的模版',
+ 'Department deleted!' => '已刪除部門ï¼',
+ 'Department saved!' => '已儲存部門ï¼',
+ 'Departments' => '部門',
+ 'Description' => '說明',
+ 'Description missing!' => '未指明æè¿°ï¼',
+ 'Discount' => '折扣',
+ 'Dropdown Limit' => 'é™åˆ¶',
+ 'E-mail' => 'é›»å­éƒµä»¶',
+ 'E-mail address missing!' => '未指明電å­éƒµä»¶ä½å€ï¼',
+ 'Edit' => '編輯',
+ 'Edit Account' => '編輯帳戶',
+ 'Edit Business' => '編輯業務',
+ 'Edit Department' => '編輯部門',
+ 'Edit GIFI' => '編輯GIFI',
+ 'Edit Language' => '編輯語言',
+ 'Edit Preferences for' => '設定使用者',
+ 'Edit SIC' => '編輯標準工業分類代碼',
+ 'Edit Template' => '編輯模版',
+ 'Edit Warehouse' => '編輯倉庫',
+ 'Employee Number' => 'è·å“¡ç·¨è™Ÿ',
+ 'Ends' => '完çµ',
+ 'Enforce transaction reversal for all dates' => '強制所有日期的交易回復',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'è«‹éµå…¥ä»¥å†’號分隔的英文字æ¯, æ¯é …ä¸è¶…éŽä¸‰å€‹å­— (如 CAD:USD:EUR), 作為您的本國åŠå¤–國貨幣',
+ 'Equity' => '股權',
+ 'Every' => 'æ¯',
+ 'Expense' => '費用',
+ 'Expense/Asset' => '費用/資產',
+ 'Fax' => '傳真',
+ 'Foreign Exchange Gain' => '外匯收益',
+ 'Foreign Exchange Loss' => '外匯æ失',
+ 'GIFI' => '財務訊æ¯é€šç”¨ç´¢å¼•(GIFI)',
+ 'GIFI deleted!' => 'GIFI已刪除ï¼',
+ 'GIFI missing!' => '未指明 GIFIï¼',
+ 'GIFI saved!' => '已儲存ï¼',
+ 'GL' => '總帳',
+ 'GL Reference Number' => '總帳索引編號',
+ 'GL Transaction' => '總帳交易',
+ 'Heading' => '標題',
+ 'ID' => '識別編號',
+ 'Include in drop-down menus' => '包å«åœ¨ä¸‹æ‹‰å¼é¸å–®ä¸­',
+ 'Income' => '收入',
+ 'Inventory' => '庫存',
+ 'Invoice' => '發票',
+ 'Is this a summary account to record' => '此為總çµç§‘目嗎?',
+ 'Language' => '語言',
+ 'Language deleted!' => '已刪除語言ï¼',
+ 'Language saved!' => '已儲存語言ï¼',
+ 'Languages' => '語言',
+ 'Last Numbers & Default Accounts' => '上一筆編號åŠé è¨­å¸³æˆ¶',
+ 'Liability' => '負債',
+ 'Licensed to' => '授權予',
+ 'Link' => '連çµ',
+ 'Menu Width' => 'é¸æ“‡å–®å¯¬åº¦',
+ 'Method' => '方法',
+ 'Month' => '月',
+ 'Months' => '月',
+ 'Name' => 'å稱',
+ 'Next' => '下一個',
+ 'Next Number' => '下一個號碼',
+ 'No' => 'å¦',
+ 'No email address for' => '未指明電å­éƒµä»¶åœ°å€',
+ 'Non-tracking Items' => 'ä¸ç”¨è¿½è¹¤çš„é …ç›®',
+ 'Number' => '編號',
+ 'Number Format' => '數字格å¼',
+ 'PDF' => 'PDF',
+ 'Packing List' => '出貨單',
+ 'Part Number' => '零件編號',
+ 'Password' => '密碼',
+ 'Password does not match!' => '密碼ä¸ç¬¦ï¼',
+ 'Payables' => '應付科目',
+ 'Payment' => '付款',
+ 'Phone' => '電話號碼',
+ 'Pick List' => 'æ€è²¨æ¸…å–®',
+ 'Posting' => '正加入',
+ 'Postscript' => 'Postscript',
+ 'Preferences saved!' => '個人設定已儲存ï¼',
+ 'Print' => '列å°',
+ 'Printer' => 'å°è¡¨æ©Ÿ',
+ 'Printing' => '正列å°',
+ 'Process Transactions' => '處ç†æ‰€æœ‰äº¤æ˜“',
+ 'Profit Center' => '利潤中心',
+ 'Purchase Order' => '採購單',
+ 'Purchase Order Number' => '採購單編號',
+ 'Purchase Orders' => '採購單',
+ 'RFQ Number' => '報價請求號碼',
+ 'Rate' => '稅率',
+ 'Receivables' => '應收帳戶',
+ 'Recurring Transactions' => 'é‡è¦†å‡ºç¾çš„交易',
+ 'Reference' => 'åƒè€ƒè³‡æ–™',
+ 'Retained Earnings' => 'ä¿ç•™ç›ˆé¤˜',
+ 'SIC deleted!' => '已刪除標準工業分類代碼ï¼',
+ 'SIC saved!' => '已儲存標準工業分類代碼ï¼',
+ 'Sales Invoice' => '銷售發票',
+ 'Sales Invoice/AR Transaction Number' => '銷售發票/應收帳交易編號',
+ 'Sales Order' => '銷貨單',
+ 'Sales Order Number' => '銷貨單編號',
+ 'Sales Orders' => '銷貨單',
+ 'Sales Quotation Number' => '銷售報價單編號',
+ 'Save' => '儲存',
+ 'Save as new' => '當新的儲存',
+ 'Saving' => '正在儲存',
+ 'Sending' => '正在發é€',
+ 'Session Timeout' => '使用期(Session)長短',
+ 'Signature' => 'ç°½å',
+ 'Standard Industrial Codes' => '標準工業編碼',
+ 'Stylesheet' => '樣å¼è¡¨',
+ 'System Defaults' => '系統é è¨­å€¼',
+ 'Tax' => '稅金',
+ 'Template saved!' => '已儲存模版ï¼',
+ 'Times' => '次',
+ 'Tracking Items' => '需è¦è¿½è¹¤çš„é …ç›®',
+ 'Transaction' => '交易',
+ 'Transaction reversal enforced for all dates' => '強制回復所有日期的交易',
+ 'Transaction reversal enforced up to' => '強制回復交易直到',
+ 'Type of Business' => '業務種類',
+ 'Update' => 'æ›´æ–°',
+ 'User' => '使用者',
+ 'Vendor Invoice' => '供應商發票',
+ 'Vendor Invoice/AP Transaction Number' => '供應商發票/應付帳交易編號',
+ 'Vendor Number' => '供應商號碼',
+ 'Version' => '版本',
+ 'Warehouse deleted!' => '已刪除倉庫ï¼',
+ 'Warehouse saved!' => '已儲存倉庫ï¼',
+ 'Warehouses' => '倉庫',
+ 'Week' => '星期',
+ 'Weeks' => '星期',
+ 'Weight Unit' => 'é‡é‡å–®ä½',
+ 'Work Order' => '工作單',
+ 'Year' => 'å¹´',
+ 'Yearend' => 'å¹´çµ',
+ 'Yearend date missing!' => '未指明年çµæ—¥æœŸï¼',
+ 'Yearend posted!' => '已加入年çµï¼',
+ 'Yearend posting failed!' => 'å¹´çµåŠ å…¥å¤±æ•—ï¼',
+ 'Years' => 'å¹´',
+ 'Yes' => '是',
+ 'account cannot be set to any other type of account' => '帳戶ä¸èƒ½è¢«è¨­ç½®ç‚ºå…¶ä»–類型帳戶',
+ 'done' => '完æˆ',
+ 'failed' => '失敗',
+ 'localhost' => '本地寄主',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ '新增帳戶' => 'add_account',
+ '新增業務' => 'add_business',
+ '新增部門' => 'add_department',
+ '新增語言' => 'add_language',
+ '新增標準工業分類代碼' => 'add_sic',
+ '新增倉庫' => 'add_warehouse',
+ '繼續' => 'continue',
+ '複製到_coa' => 'copy_to_coa',
+ '刪除' => 'delete',
+ '編輯' => 'edit',
+ '編輯帳戶' => 'edit_account',
+ '處ç†æ‰€æœ‰äº¤æ˜“' => 'process_transactions',
+ '儲存' => 'save',
+ '當新的儲存' => 'save_as_new',
+ 'æ›´æ–°' => 'update',
+};
+
+1;
+
diff --git a/locale/tw_utf/ap b/locale/tw_utf/ap
new file mode 100755
index 00000000..747203b9
--- /dev/null
+++ b/locale/tw_utf/ap
@@ -0,0 +1,242 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Outstanding' => '應付未付',
+ 'AP Transaction' => '應付交易',
+ 'AP Transactions' => '應付交易',
+ 'AR Outstanding' => '應收未收',
+ 'AR Transaction' => '應收交易',
+ 'AR Transactions' => '應收交易',
+ 'Account' => '帳戶',
+ 'Accounting Menu' => '會計é¸å–®',
+ 'Add AP Transaction' => '新增應付交易',
+ 'Add AR Transaction' => '新增應收交易',
+ 'Address' => '地å€',
+ 'Amount' => '金é¡',
+ 'Amount Due' => '到期金é¡',
+ 'Apr' => '四月',
+ 'April' => '四月',
+ 'Are you sure you want to delete Transaction' => '您是å¦ç¢ºå®šè¦åˆªé™¤äº¤æ˜“',
+ 'Aug' => '八月',
+ 'August' => '八月',
+ 'Bcc' => 'ä¸é¡¯ç¤ºæŠ„é€',
+ 'Cannot delete transaction!' => 'ä¸èƒ½åˆªé™¤äº¤æ˜“ï¼',
+ 'Cannot post payment for a closed period!' => 'ä¸èƒ½åœ¨å·²é—œé–‰çš„時段內加入款項ï¼',
+ 'Cannot post transaction for a closed period!' => 'ä¸èƒ½åœ¨å·²é—œé–‰çš„時段內加入交易ï¼',
+ 'Cannot post transaction!' => 'ä¸èƒ½åŠ å…¥äº¤æ˜“ï¼',
+ 'Cc' => '抄é€',
+ 'Check' => '檢查',
+ 'Closed' => '已關閉',
+ 'Confirm!' => '入帳æˆåŠŸï¼',
+ 'Continue' => '繼續',
+ 'Credit' => '貸方',
+ 'Credit Limit' => '信用é¡åº¦',
+ 'Curr' => 'ç›®å‰',
+ 'Currency' => '幣別',
+ 'Current' => 'ç¾æœ‰',
+ 'Customer' => '客戶',
+ 'Customer missing!' => '未指明客戶ï¼',
+ 'Customer not on file!' => '沒有此客戶的記錄ï¼',
+ 'Date' => '日期',
+ 'Date Paid' => '付款日期',
+ 'Day(s)' => 'æ—¥',
+ 'Debit' => '借方',
+ 'Dec' => 'å二月',
+ 'December' => 'å二月',
+ 'Delete' => '刪除',
+ 'Delete Schedule' => '刪除時間表',
+ 'Department' => '部門',
+ 'Description' => '說明',
+ 'Detail' => '詳情',
+ 'Due Date' => '到期日',
+ 'Due Date missing!' => '未指明到期日ï¼',
+ 'E-mail' => 'é›»å­éƒµä»¶',
+ 'E-mail message' => 'é›»å­éƒµä»¶è¨Šæ¯',
+ 'Edit AP Transaction' => '編輯應付交易',
+ 'Edit AR Transaction' => '編輯應收交易',
+ 'Employee' => 'è·å“¡',
+ 'Every' => 'æ¯',
+ 'Exch' => '匯率',
+ 'Exchange Rate' => '匯率',
+ 'Exchange rate for payment missing!' => '未指明付款的匯率ï¼',
+ 'Exchange rate missing!' => '未指明匯率ï¼',
+ 'Feb' => '二月',
+ 'February' => '二月',
+ 'For' => 'é‡è¦†',
+ 'From' => '從',
+ 'ID' => '識別編號',
+ 'Include Payment' => '包括付款',
+ 'Include in Report' => '一併顯示',
+ 'Invoice' => '發票',
+ 'Invoice Date' => '發票日期',
+ 'Invoice Date missing!' => '未指明發票日期ï¼',
+ 'Invoice Number' => '發票編號',
+ 'Jan' => '一月',
+ 'January' => '一月',
+ 'Jul' => '七月',
+ 'July' => '七月',
+ 'Jun' => '六月',
+ 'June' => '六月',
+ 'Manager' => '經ç†',
+ 'Mar' => '三月',
+ 'March' => '三月',
+ 'May' => '五月',
+ 'May ' => '五月',
+ 'Memo' => '備忘錄',
+ 'Message' => '訊æ¯',
+ 'Month' => '月',
+ 'Month(s)' => '月',
+ 'Next Date' => '下一日',
+ 'No.' => '編號',
+ 'Notes' => '備註',
+ 'Nothing to print!' => '沒有å¯åˆ—å°çš„é …ç›®ï¼',
+ 'Nov' => 'å一月',
+ 'November' => 'å一月',
+ 'Number' => '編號',
+ 'Oct' => 'å月',
+ 'October' => 'å月',
+ 'Open' => 'é–‹å•Ÿ',
+ 'Order' => '訂單',
+ 'Order Number' => '訂單編號',
+ 'PDF' => 'PDF',
+ 'PO Number' => '採購單編號',
+ 'Paid' => '已付',
+ 'Payment date missing!' => '未指明付款日期ï¼',
+ 'Payments' => '付款',
+ 'Period' => '期間',
+ 'Post' => '加入',
+ 'Post as new' => '當新的加入',
+ 'Postscript' => 'Postscript',
+ 'Print' => '列å°',
+ 'Print and Post' => '列å°ä¸¦åŠ å…¥',
+ 'Print and Post as new' => '列å°ä¸¦åŠ å…¥ä½œç‚ºæ–°çš„',
+ 'Printed' => '已列å°',
+ 'Project' => 'é …ç›®',
+ 'Project not on file!' => '沒有此項目的記錄ï¼',
+ 'Quarter' => 'å­£',
+ 'Receipt' => '收據',
+ 'Recurring Transaction' => 'é‡è¦†å‡ºç¾çš„交易',
+ 'Reference' => 'åƒè€ƒè³‡æ–™',
+ 'Remaining' => '尚餘',
+ 'Repeat' => 'é‡è¦†',
+ 'Sales Invoice.' => '銷售發票。',
+ 'Salesperson' => '銷售人員',
+ 'Save Schedule' => '儲存時間表',
+ 'Schedule' => '時間表',
+ 'Scheduled' => '編排了時間',
+ 'Screen' => '螢幕',
+ 'Select a Printer!' => 'é¸æ“‡å°è¡¨æ©Ÿï¼',
+ 'Select from one of the names below' => '於下列姓å中é¸æ“‡ä¸€å€‹',
+ 'Select from one of the projects below' => '於下列項目中é¸æ“‡ä¸€å€‹',
+ 'Select payment' => 'é¸æ“‡ä»˜æ¬¾',
+ 'Select postscript or PDF!' => 'é¸æ“‡postscript或PDFï¼',
+ 'Sep' => 'ä¹æœˆ',
+ 'September' => 'ä¹æœˆ',
+ 'Ship to' => '付é‹è‡³',
+ 'Ship via' => '付é‹å…¬å¸',
+ 'Shipping Point' => '付é‹åœ°é»ž',
+ 'Source' => '來æº',
+ 'Startdate' => '開始日期',
+ 'Subject' => '標題',
+ 'Subtotal' => 'å°è¨ˆ',
+ 'Summary' => '摘è¦',
+ 'Tax' => '稅金',
+ 'Tax Included' => 'å·²å«ç¨…金',
+ 'Till' => '直到',
+ 'To' => '至',
+ 'Total' => '總計',
+ 'Transaction' => '交易',
+ 'Transaction deleted!' => '已刪除交易ï¼',
+ 'Transaction posted!' => '已加入交易ï¼',
+ 'Update' => 'æ›´æ–°',
+ 'Vendor' => '供應商',
+ 'Vendor Invoice.' => '供應商發票。',
+ 'Vendor missing!' => '未指明供應商ï¼',
+ 'Vendor not on file!' => '沒有此供應商的記錄ï¼',
+ 'Warning!' => '警告ï¼',
+ 'Week(s)' => '星期',
+ 'Year' => 'å¹´',
+ 'Year(s)' => 'å¹´',
+ 'Yes' => '是',
+ 'You are posting an existing transaction!' => '您正在加入一個ç¾å­˜çš„交易ï¼',
+ 'You are printing and posting an existing transaction!' => '您正在列å°åŠåŠ å…¥ä¸€å€‹ç¾å­˜çš„交易ï¼',
+ 'You are printing and saving an existing order' => '您正在列å°åŠå„²å­˜ä¸€å¼µç¾å­˜çš„訂單ï¼',
+ 'You are printing and saving an existing quotation' => '您正在列å°åŠå„²å­˜ä¸€å¼µç¾å­˜çš„報價單ï¼',
+ 'You are saving an existing order' => '您正在儲存一張ç¾å­˜çš„訂單ï¼',
+ 'You are saving an existing quotation' => '您正在儲存一張ç¾å­˜çš„報價單ï¼',
+ 'for' => '為了',
+ 'sent' => 'å·²é€å‡º',
+ 'time(s)' => '次',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ '應付交易' => 'ap_transaction',
+ '應收交易' => 'ar_transaction',
+ '繼續' => 'continue',
+ '刪除' => 'delete',
+ '刪除時間表' => 'delete_schedule',
+ '加入' => 'post',
+ '當新的加入' => 'post_as_new',
+ '列å°' => 'print',
+ '列å°ä¸¦åŠ å…¥' => 'print_and_post',
+ '列å°ä¸¦åŠ å…¥ä½œç‚ºæ–°çš„' => 'print_and_post_as_new',
+ '銷售發票。' => 'sales_invoice_',
+ '儲存時間表' => 'save_schedule',
+ '時間表' => 'schedule',
+ '付é‹è‡³' => 'ship_to',
+ 'æ›´æ–°' => 'update',
+ '供應商發票。' => 'vendor_invoice_',
+ '是' => 'yes',
+};
+
+1;
+
diff --git a/locale/tw_utf/ar b/locale/tw_utf/ar
new file mode 100755
index 00000000..747203b9
--- /dev/null
+++ b/locale/tw_utf/ar
@@ -0,0 +1,242 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Outstanding' => '應付未付',
+ 'AP Transaction' => '應付交易',
+ 'AP Transactions' => '應付交易',
+ 'AR Outstanding' => '應收未收',
+ 'AR Transaction' => '應收交易',
+ 'AR Transactions' => '應收交易',
+ 'Account' => '帳戶',
+ 'Accounting Menu' => '會計é¸å–®',
+ 'Add AP Transaction' => '新增應付交易',
+ 'Add AR Transaction' => '新增應收交易',
+ 'Address' => '地å€',
+ 'Amount' => '金é¡',
+ 'Amount Due' => '到期金é¡',
+ 'Apr' => '四月',
+ 'April' => '四月',
+ 'Are you sure you want to delete Transaction' => '您是å¦ç¢ºå®šè¦åˆªé™¤äº¤æ˜“',
+ 'Aug' => '八月',
+ 'August' => '八月',
+ 'Bcc' => 'ä¸é¡¯ç¤ºæŠ„é€',
+ 'Cannot delete transaction!' => 'ä¸èƒ½åˆªé™¤äº¤æ˜“ï¼',
+ 'Cannot post payment for a closed period!' => 'ä¸èƒ½åœ¨å·²é—œé–‰çš„時段內加入款項ï¼',
+ 'Cannot post transaction for a closed period!' => 'ä¸èƒ½åœ¨å·²é—œé–‰çš„時段內加入交易ï¼',
+ 'Cannot post transaction!' => 'ä¸èƒ½åŠ å…¥äº¤æ˜“ï¼',
+ 'Cc' => '抄é€',
+ 'Check' => '檢查',
+ 'Closed' => '已關閉',
+ 'Confirm!' => '入帳æˆåŠŸï¼',
+ 'Continue' => '繼續',
+ 'Credit' => '貸方',
+ 'Credit Limit' => '信用é¡åº¦',
+ 'Curr' => 'ç›®å‰',
+ 'Currency' => '幣別',
+ 'Current' => 'ç¾æœ‰',
+ 'Customer' => '客戶',
+ 'Customer missing!' => '未指明客戶ï¼',
+ 'Customer not on file!' => '沒有此客戶的記錄ï¼',
+ 'Date' => '日期',
+ 'Date Paid' => '付款日期',
+ 'Day(s)' => 'æ—¥',
+ 'Debit' => '借方',
+ 'Dec' => 'å二月',
+ 'December' => 'å二月',
+ 'Delete' => '刪除',
+ 'Delete Schedule' => '刪除時間表',
+ 'Department' => '部門',
+ 'Description' => '說明',
+ 'Detail' => '詳情',
+ 'Due Date' => '到期日',
+ 'Due Date missing!' => '未指明到期日ï¼',
+ 'E-mail' => 'é›»å­éƒµä»¶',
+ 'E-mail message' => 'é›»å­éƒµä»¶è¨Šæ¯',
+ 'Edit AP Transaction' => '編輯應付交易',
+ 'Edit AR Transaction' => '編輯應收交易',
+ 'Employee' => 'è·å“¡',
+ 'Every' => 'æ¯',
+ 'Exch' => '匯率',
+ 'Exchange Rate' => '匯率',
+ 'Exchange rate for payment missing!' => '未指明付款的匯率ï¼',
+ 'Exchange rate missing!' => '未指明匯率ï¼',
+ 'Feb' => '二月',
+ 'February' => '二月',
+ 'For' => 'é‡è¦†',
+ 'From' => '從',
+ 'ID' => '識別編號',
+ 'Include Payment' => '包括付款',
+ 'Include in Report' => '一併顯示',
+ 'Invoice' => '發票',
+ 'Invoice Date' => '發票日期',
+ 'Invoice Date missing!' => '未指明發票日期ï¼',
+ 'Invoice Number' => '發票編號',
+ 'Jan' => '一月',
+ 'January' => '一月',
+ 'Jul' => '七月',
+ 'July' => '七月',
+ 'Jun' => '六月',
+ 'June' => '六月',
+ 'Manager' => '經ç†',
+ 'Mar' => '三月',
+ 'March' => '三月',
+ 'May' => '五月',
+ 'May ' => '五月',
+ 'Memo' => '備忘錄',
+ 'Message' => '訊æ¯',
+ 'Month' => '月',
+ 'Month(s)' => '月',
+ 'Next Date' => '下一日',
+ 'No.' => '編號',
+ 'Notes' => '備註',
+ 'Nothing to print!' => '沒有å¯åˆ—å°çš„é …ç›®ï¼',
+ 'Nov' => 'å一月',
+ 'November' => 'å一月',
+ 'Number' => '編號',
+ 'Oct' => 'å月',
+ 'October' => 'å月',
+ 'Open' => 'é–‹å•Ÿ',
+ 'Order' => '訂單',
+ 'Order Number' => '訂單編號',
+ 'PDF' => 'PDF',
+ 'PO Number' => '採購單編號',
+ 'Paid' => '已付',
+ 'Payment date missing!' => '未指明付款日期ï¼',
+ 'Payments' => '付款',
+ 'Period' => '期間',
+ 'Post' => '加入',
+ 'Post as new' => '當新的加入',
+ 'Postscript' => 'Postscript',
+ 'Print' => '列å°',
+ 'Print and Post' => '列å°ä¸¦åŠ å…¥',
+ 'Print and Post as new' => '列å°ä¸¦åŠ å…¥ä½œç‚ºæ–°çš„',
+ 'Printed' => '已列å°',
+ 'Project' => 'é …ç›®',
+ 'Project not on file!' => '沒有此項目的記錄ï¼',
+ 'Quarter' => 'å­£',
+ 'Receipt' => '收據',
+ 'Recurring Transaction' => 'é‡è¦†å‡ºç¾çš„交易',
+ 'Reference' => 'åƒè€ƒè³‡æ–™',
+ 'Remaining' => '尚餘',
+ 'Repeat' => 'é‡è¦†',
+ 'Sales Invoice.' => '銷售發票。',
+ 'Salesperson' => '銷售人員',
+ 'Save Schedule' => '儲存時間表',
+ 'Schedule' => '時間表',
+ 'Scheduled' => '編排了時間',
+ 'Screen' => '螢幕',
+ 'Select a Printer!' => 'é¸æ“‡å°è¡¨æ©Ÿï¼',
+ 'Select from one of the names below' => '於下列姓å中é¸æ“‡ä¸€å€‹',
+ 'Select from one of the projects below' => '於下列項目中é¸æ“‡ä¸€å€‹',
+ 'Select payment' => 'é¸æ“‡ä»˜æ¬¾',
+ 'Select postscript or PDF!' => 'é¸æ“‡postscript或PDFï¼',
+ 'Sep' => 'ä¹æœˆ',
+ 'September' => 'ä¹æœˆ',
+ 'Ship to' => '付é‹è‡³',
+ 'Ship via' => '付é‹å…¬å¸',
+ 'Shipping Point' => '付é‹åœ°é»ž',
+ 'Source' => '來æº',
+ 'Startdate' => '開始日期',
+ 'Subject' => '標題',
+ 'Subtotal' => 'å°è¨ˆ',
+ 'Summary' => '摘è¦',
+ 'Tax' => '稅金',
+ 'Tax Included' => 'å·²å«ç¨…金',
+ 'Till' => '直到',
+ 'To' => '至',
+ 'Total' => '總計',
+ 'Transaction' => '交易',
+ 'Transaction deleted!' => '已刪除交易ï¼',
+ 'Transaction posted!' => '已加入交易ï¼',
+ 'Update' => 'æ›´æ–°',
+ 'Vendor' => '供應商',
+ 'Vendor Invoice.' => '供應商發票。',
+ 'Vendor missing!' => '未指明供應商ï¼',
+ 'Vendor not on file!' => '沒有此供應商的記錄ï¼',
+ 'Warning!' => '警告ï¼',
+ 'Week(s)' => '星期',
+ 'Year' => 'å¹´',
+ 'Year(s)' => 'å¹´',
+ 'Yes' => '是',
+ 'You are posting an existing transaction!' => '您正在加入一個ç¾å­˜çš„交易ï¼',
+ 'You are printing and posting an existing transaction!' => '您正在列å°åŠåŠ å…¥ä¸€å€‹ç¾å­˜çš„交易ï¼',
+ 'You are printing and saving an existing order' => '您正在列å°åŠå„²å­˜ä¸€å¼µç¾å­˜çš„訂單ï¼',
+ 'You are printing and saving an existing quotation' => '您正在列å°åŠå„²å­˜ä¸€å¼µç¾å­˜çš„報價單ï¼',
+ 'You are saving an existing order' => '您正在儲存一張ç¾å­˜çš„訂單ï¼',
+ 'You are saving an existing quotation' => '您正在儲存一張ç¾å­˜çš„報價單ï¼',
+ 'for' => '為了',
+ 'sent' => 'å·²é€å‡º',
+ 'time(s)' => '次',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ '應付交易' => 'ap_transaction',
+ '應收交易' => 'ar_transaction',
+ '繼續' => 'continue',
+ '刪除' => 'delete',
+ '刪除時間表' => 'delete_schedule',
+ '加入' => 'post',
+ '當新的加入' => 'post_as_new',
+ '列å°' => 'print',
+ '列å°ä¸¦åŠ å…¥' => 'print_and_post',
+ '列å°ä¸¦åŠ å…¥ä½œç‚ºæ–°çš„' => 'print_and_post_as_new',
+ '銷售發票。' => 'sales_invoice_',
+ '儲存時間表' => 'save_schedule',
+ '時間表' => 'schedule',
+ '付é‹è‡³' => 'ship_to',
+ 'æ›´æ–°' => 'update',
+ '供應商發票。' => 'vendor_invoice_',
+ '是' => 'yes',
+};
+
+1;
+
diff --git a/locale/tw_utf/arap b/locale/tw_utf/arap
new file mode 100755
index 00000000..2b088dec
--- /dev/null
+++ b/locale/tw_utf/arap
@@ -0,0 +1,76 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Address' => '地å€',
+ 'Bcc' => 'ä¸é¡¯ç¤ºæŠ„é€',
+ 'Cc' => '抄é€',
+ 'Continue' => '繼續',
+ 'Customer not on file!' => '沒有此客戶的記錄ï¼',
+ 'Date' => '日期',
+ 'Day(s)' => 'æ—¥',
+ 'Delete Schedule' => '刪除時間表',
+ 'Description' => '說明',
+ 'E-mail' => 'é›»å­éƒµä»¶',
+ 'E-mail message' => 'é›»å­éƒµä»¶è¨Šæ¯',
+ 'Every' => 'æ¯',
+ 'For' => 'é‡è¦†',
+ 'Include Payment' => '包括付款',
+ 'Message' => '訊æ¯',
+ 'Month(s)' => '月',
+ 'Next Date' => '下一日',
+ 'Number' => '編號',
+ 'Print' => '列å°',
+ 'Project not on file!' => '沒有此項目的記錄ï¼',
+ 'Recurring Transaction' => 'é‡è¦†å‡ºç¾çš„交易',
+ 'Reference' => 'åƒè€ƒè³‡æ–™',
+ 'Repeat' => 'é‡è¦†',
+ 'Save Schedule' => '儲存時間表',
+ 'Select from one of the names below' => '於下列姓å中é¸æ“‡ä¸€å€‹',
+ 'Select from one of the projects below' => '於下列項目中é¸æ“‡ä¸€å€‹',
+ 'Startdate' => '開始日期',
+ 'Subject' => '標題',
+ 'To' => '至',
+ 'Vendor not on file!' => '沒有此供應商的記錄ï¼',
+ 'Warning!' => '警告ï¼',
+ 'Week(s)' => '星期',
+ 'Year(s)' => 'å¹´',
+ 'You are posting an existing transaction!' => '您正在加入一個ç¾å­˜çš„交易ï¼',
+ 'You are printing and posting an existing transaction!' => '您正在列å°åŠåŠ å…¥ä¸€å€‹ç¾å­˜çš„交易ï¼',
+ 'You are printing and saving an existing order' => '您正在列å°åŠå„²å­˜ä¸€å¼µç¾å­˜çš„訂單ï¼',
+ 'You are printing and saving an existing quotation' => '您正在列å°åŠå„²å­˜ä¸€å¼µç¾å­˜çš„報價單ï¼',
+ 'You are saving an existing order' => '您正在儲存一張ç¾å­˜çš„訂單ï¼',
+ 'You are saving an existing quotation' => '您正在儲存一張ç¾å­˜çš„報價單ï¼',
+ 'for' => '為了',
+ 'sent' => 'å·²é€å‡º',
+ 'time(s)' => '次',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ '繼續' => 'continue',
+ '刪除時間表' => 'delete_schedule',
+ '儲存時間表' => 'save_schedule',
+};
+
+1;
+
diff --git a/locale/tw_utf/arapprn b/locale/tw_utf/arapprn
new file mode 100755
index 00000000..e632aa1d
--- /dev/null
+++ b/locale/tw_utf/arapprn
@@ -0,0 +1,36 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => '帳戶',
+ 'Amount' => '金é¡',
+ 'Continue' => '繼續',
+ 'Date' => '日期',
+ 'Memo' => '備忘錄',
+ 'Nothing to print!' => '沒有å¯åˆ—å°çš„é …ç›®ï¼',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'Postscript',
+ 'Printed' => '已列å°',
+ 'Scheduled' => '編排了時間',
+ 'Screen' => '螢幕',
+ 'Select a Printer!' => 'é¸æ“‡å°è¡¨æ©Ÿï¼',
+ 'Select payment' => 'é¸æ“‡ä»˜æ¬¾',
+ 'Select postscript or PDF!' => 'é¸æ“‡postscript或PDFï¼',
+ 'Source' => '來æº',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ '繼續' => 'continue',
+};
+
+1;
+
diff --git a/locale/tw_utf/bp b/locale/tw_utf/bp
new file mode 100755
index 00000000..8dc19de4
--- /dev/null
+++ b/locale/tw_utf/bp
@@ -0,0 +1,70 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => '帳戶',
+ 'Accounting Menu' => '會計é¸å–®',
+ 'Are you sure you want to remove the marked entries from the queue?' => '您是å¦ç¢ºå®šè¦æ¶ˆé™¤æœ‰è¨˜è™Ÿçš„æ¢ç›®ï¼Ÿ',
+ 'Bin Lists' => '箱的明細表',
+ 'Cannot remove files!' => 'ä¸èƒ½ç§»é™¤æª”案ï¼',
+ 'Confirm!' => '入帳æˆåŠŸï¼',
+ 'Continue' => '繼續',
+ 'Current' => 'ç¾æœ‰',
+ 'Customer' => '客戶',
+ 'Date' => '日期',
+ 'Employee' => 'è·å“¡',
+ 'From' => '從',
+ 'ID' => '識別編號',
+ 'Invoice' => '發票',
+ 'Invoice Number' => '發票編號',
+ 'Marked entries printed!' => '已列å°æœ‰è¨˜è™Ÿçš„會計項目ï¼',
+ 'Month' => '月',
+ 'Order' => '訂單',
+ 'Order Number' => '訂單編號',
+ 'Packing Lists' => '出貨單',
+ 'Period' => '期間',
+ 'Pick Lists' => 'æ€è²¨æ¸…å–®',
+ 'Print' => '列å°',
+ 'Printing' => '正列å°',
+ 'Purchase Orders' => '採購單',
+ 'Quarter' => 'å­£',
+ 'Quotation' => '報價單',
+ 'Quotation Number' => '報價單號碼',
+ 'Quotations' => '報價單',
+ 'RFQs' => '報價請求',
+ 'Remove' => '移除',
+ 'Removed spoolfiles!' => '移除列å°æš«å­˜æª”案',
+ 'Removing marked entries from queue ...' => '正從隊列中移除有記號的會計項目',
+ 'Sales Invoices' => '銷售發票',
+ 'Sales Orders' => '銷貨單',
+ 'Select all' => 'å…¨é¸',
+ 'Spoolfile' => '列å°æš«å­˜(spool)檔案',
+ 'To' => '至',
+ 'Vendor' => '供應商',
+ 'Work Orders' => '工作單',
+ 'Year' => 'å¹´',
+ 'Yes' => '是',
+ 'done' => '完æˆ',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ '繼續' => 'continue',
+ '列å°' => 'print',
+ '移除' => 'remove',
+ 'å…¨é¸' => 'select_all',
+ '是' => 'yes',
+};
+
+1;
+
diff --git a/locale/tw_utf/ca b/locale/tw_utf/ca
new file mode 100755
index 00000000..8368b211
--- /dev/null
+++ b/locale/tw_utf/ca
@@ -0,0 +1,61 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AR/AP' => '應收/應付 ',
+ 'Account' => '帳戶',
+ 'Apr' => '四月',
+ 'April' => '四月',
+ 'Aug' => '八月',
+ 'August' => '八月',
+ 'Balance' => '餘é¡',
+ 'Chart of Accounts' => '會計科目表',
+ 'Credit' => '貸方',
+ 'Current' => 'ç¾æœ‰',
+ 'Date' => '日期',
+ 'Debit' => '借方',
+ 'Dec' => 'å二月',
+ 'December' => 'å二月',
+ 'Department' => '部門',
+ 'Description' => '說明',
+ 'Feb' => '二月',
+ 'February' => '二月',
+ 'From' => '從',
+ 'GIFI' => '財務訊æ¯é€šç”¨ç´¢å¼•(GIFI)',
+ 'Include in Report' => '一併顯示',
+ 'Jan' => '一月',
+ 'January' => '一月',
+ 'Jul' => '七月',
+ 'July' => '七月',
+ 'Jun' => '六月',
+ 'June' => '六月',
+ 'List Transactions' => '列出所有交易',
+ 'Mar' => '三月',
+ 'March' => '三月',
+ 'May' => '五月',
+ 'May ' => '五月',
+ 'Month' => '月',
+ 'Nov' => 'å一月',
+ 'November' => 'å一月',
+ 'Oct' => 'å月',
+ 'October' => 'å月',
+ 'Period' => '期間',
+ 'Project Number' => '項目號碼',
+ 'Quarter' => 'å­£',
+ 'Reference' => 'åƒè€ƒè³‡æ–™',
+ 'Sep' => 'ä¹æœˆ',
+ 'September' => 'ä¹æœˆ',
+ 'Subtotal' => 'å°è¨ˆ',
+ 'To' => '至',
+ 'Year' => 'å¹´',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ '列出所有交易' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/tw_utf/cp b/locale/tw_utf/cp
new file mode 100755
index 00000000..4f3fd072
--- /dev/null
+++ b/locale/tw_utf/cp
@@ -0,0 +1,150 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP' => '應付帳款',
+ 'AR' => '應收帳款',
+ 'Account' => '帳戶',
+ 'Accounting Menu' => '會計é¸å–®',
+ 'Address' => '地å€',
+ 'All' => '全部',
+ 'Amount' => '金é¡',
+ 'Amount Due' => '到期金é¡',
+ 'Bcc' => 'ä¸é¡¯ç¤ºæŠ„é€',
+ 'Cannot post Payment!' => 'ä¸èƒ½åŠ å…¥æ¬¾é …ï¼',
+ 'Cannot post Receipt!' => 'ä¸èƒ½åŠ å…¥æ”¶æ“šï¼',
+ 'Cannot post payment for a closed period!' => 'ä¸èƒ½åœ¨å·²é—œé–‰çš„時段內加入款項ï¼',
+ 'Cc' => '抄é€',
+ 'Continue' => '繼續',
+ 'Currency' => '幣別',
+ 'Customer' => '客戶',
+ 'Customer not on file!' => '沒有此客戶的記錄ï¼',
+ 'Date' => '日期',
+ 'Date missing!' => '未指明日期ï¼',
+ 'Day(s)' => 'æ—¥',
+ 'Delete Schedule' => '刪除時間表',
+ 'Department' => '部門',
+ 'Deposit' => '存款',
+ 'Description' => '說明',
+ 'Due Date' => '到期日',
+ 'E-mail' => 'é›»å­éƒµä»¶',
+ 'E-mail message' => 'é›»å­éƒµä»¶è¨Šæ¯',
+ 'Every' => 'æ¯',
+ 'Exchange Rate' => '匯率',
+ 'Exchange rate missing!' => '未指明匯率ï¼',
+ 'For' => 'é‡è¦†',
+ 'From' => '從',
+ 'Include Payment' => '包括付款',
+ 'Invoice' => '發票',
+ 'Invoices' => '發票',
+ 'Language' => '語言',
+ 'Memo' => '備忘錄',
+ 'Message' => '訊æ¯',
+ 'Month(s)' => '月',
+ 'Next Date' => '下一日',
+ 'Number' => '編號',
+ 'PDF' => 'PDF',
+ 'Payment' => '付款',
+ 'Payment posted!' => '已加入付款ï¼',
+ 'Payments' => '付款',
+ 'Payments posted!' => '已加入付款ï¼',
+ 'Post' => '加入',
+ 'Posting failed!' => '加入失敗ï¼',
+ 'Postscript' => 'Postscript',
+ 'Prepayment' => 'é ç¹³',
+ 'Print' => '列å°',
+ 'Project not on file!' => '沒有此項目的記錄ï¼',
+ 'Receipt' => '收據',
+ 'Receipt posted!' => '已加入收據ï¼',
+ 'Receipts' => '收據',
+ 'Recurring Transaction' => 'é‡è¦†å‡ºç¾çš„交易',
+ 'Reference' => 'åƒè€ƒè³‡æ–™',
+ 'Repeat' => 'é‡è¦†',
+ 'Save Schedule' => '儲存時間表',
+ 'Screen' => '螢幕',
+ 'Select' => 'é¸æ“‡',
+ 'Select all' => 'å…¨é¸',
+ 'Select from one of the names below' => '於下列姓å中é¸æ“‡ä¸€å€‹',
+ 'Select from one of the projects below' => '於下列項目中é¸æ“‡ä¸€å€‹',
+ 'Select postscript or PDF!' => 'é¸æ“‡postscript或PDFï¼',
+ 'Source' => '來æº',
+ 'Startdate' => '開始日期',
+ 'Subject' => '標題',
+ 'To' => '至',
+ 'Update' => 'æ›´æ–°',
+ 'Vendor' => '供應商',
+ 'Vendor not on file!' => '沒有此供應商的記錄ï¼',
+ 'Warning!' => '警告ï¼',
+ 'Week(s)' => '星期',
+ 'Year(s)' => 'å¹´',
+ 'You are posting an existing transaction!' => '您正在加入一個ç¾å­˜çš„交易ï¼',
+ 'You are printing and posting an existing transaction!' => '您正在列å°åŠåŠ å…¥ä¸€å€‹ç¾å­˜çš„交易ï¼',
+ 'You are printing and saving an existing order' => '您正在列å°åŠå„²å­˜ä¸€å¼µç¾å­˜çš„訂單ï¼',
+ 'You are printing and saving an existing quotation' => '您正在列å°åŠå„²å­˜ä¸€å¼µç¾å­˜çš„報價單ï¼',
+ 'You are saving an existing order' => '您正在儲存一張ç¾å­˜çš„訂單ï¼',
+ 'You are saving an existing quotation' => '您正在儲存一張ç¾å­˜çš„報價單ï¼',
+ 'for' => '為了',
+ 'sent' => 'å·²é€å‡º',
+ 'time(s)' => '次',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ '繼續' => 'continue',
+ '刪除時間表' => 'delete_schedule',
+ '加入' => 'post',
+ '列å°' => 'print',
+ '儲存時間表' => 'save_schedule',
+ 'å…¨é¸' => 'select_all',
+ 'æ›´æ–°' => 'update',
+};
+
+1;
+
diff --git a/locale/tw_utf/ct b/locale/tw_utf/ct
new file mode 100755
index 00000000..41b07501
--- /dev/null
+++ b/locale/tw_utf/ct
@@ -0,0 +1,191 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Transaction' => '應付交易',
+ 'AP Transactions' => '應付交易',
+ 'AR Transaction' => '應收交易',
+ 'AR Transactions' => '應收交易',
+ 'Accounting Menu' => '會計é¸å–®',
+ 'Active' => '生效的',
+ 'Add Customer' => '新增客戶',
+ 'Add Vendor' => '新增供應商',
+ 'Address' => '地å€',
+ 'All' => '全部',
+ 'Amount' => '金é¡',
+ 'BIC' => '銀行識別編號(BIC)',
+ 'Bcc' => 'ä¸é¡¯ç¤ºæŠ„é€',
+ 'Billing Address' => '帳單地å€',
+ 'Break' => '休æ¯',
+ 'Cannot delete customer!' => 'ä¸èƒ½åˆªé™¤å®¢æˆ¶ï¼',
+ 'Cannot delete vendor!' => 'ä¸èƒ½åˆªé™¤ä¾›æ‡‰å•†ï¼',
+ 'Cc' => '抄é€',
+ 'City' => '城市',
+ 'Closed' => '已關閉',
+ 'Company Name' => 'å…¬å¸å稱',
+ 'Contact' => '連絡人',
+ 'Continue' => '繼續',
+ 'Cost' => 'æˆæœ¬',
+ 'Could not save pricelist!' => 'ä¸èƒ½å„²å­˜åƒ¹æ ¼æ¸…å–®ï¼',
+ 'Country' => '國家',
+ 'Credit Limit' => '信用é¡åº¦',
+ 'Curr' => 'ç›®å‰',
+ 'Currency' => '幣別',
+ 'Customer History' => '客戶歷å²',
+ 'Customer Number' => '客戶編號',
+ 'Customer deleted!' => '已刪除客戶ï¼',
+ 'Customer saved!' => '已儲存客戶ï¼',
+ 'Customers' => '客戶',
+ 'Delete' => '刪除',
+ 'Delivery Date' => '到期日',
+ 'Description' => '說明',
+ 'Detail' => '詳情',
+ 'Discount' => '折扣',
+ 'E-mail' => 'é›»å­éƒµä»¶',
+ 'Edit Customer' => '編輯客戶',
+ 'Edit Vendor' => '編輯供應商',
+ 'Employee' => 'è·å“¡',
+ 'Enddate' => 'çµæŸæ—¥',
+ 'Fax' => '傳真',
+ 'From' => '從',
+ 'GIFI' => '財務訊æ¯é€šç”¨ç´¢å¼•(GIFI)',
+ 'Group' => '組別',
+ 'IBAN' => '國際銀行帳號(IBAN)',
+ 'ID' => '識別編號',
+ 'Inactive' => 'éžæ´»èºçš„',
+ 'Include in Report' => '一併顯示',
+ 'Invoice' => '發票',
+ 'Item already on pricelist!' => '項目己經在價格清單內ï¼',
+ 'Item not on file!' => '沒有此項目的記錄ï¼',
+ 'Language' => '語言',
+ 'Leadtime' => '總需時',
+ 'Manager' => '經ç†',
+ 'Name' => 'å稱',
+ 'Name missing!' => '未指明åå­—ï¼',
+ 'No.' => '編號',
+ 'Notes' => '備註',
+ 'Number' => '編號',
+ 'Open' => 'é–‹å•Ÿ',
+ 'Order' => '訂單',
+ 'Orphaned' => '無主',
+ 'POS' => '銷售點(POS)',
+ 'Part Number' => '零件編號',
+ 'Phone' => '電話號碼',
+ 'Pricegroup' => '價格組別',
+ 'Pricelist' => '價格清單',
+ 'Project Number' => '項目號碼',
+ 'Purchase Order' => '採購單',
+ 'Purchase Orders' => '採購單',
+ 'Qty' => '數é‡',
+ 'Quotation' => '報價單',
+ 'Quotations' => '報價單',
+ 'RFQ' => '報價請求(RFQ) ',
+ 'Request for Quotations' => 'è¦æ±‚報價單',
+ 'SIC' => '標準工業分類代碼',
+ 'SKU' => '庫存單ä½',
+ 'Sales Invoice' => '銷售發票',
+ 'Sales Invoices' => '銷售發票',
+ 'Sales Order' => '銷貨單',
+ 'Sales Orders' => '銷貨單',
+ 'Salesperson' => '銷售人員',
+ 'Save' => '儲存',
+ 'Save Pricelist' => '儲存價格清單',
+ 'Save as new' => '當新的儲存',
+ 'Search' => 'æœå°‹',
+ 'Select items' => 'é¸æ“‡é …ç›®',
+ 'Sell Price' => '售價',
+ 'Serial Number' => 'åºè™Ÿ',
+ 'Shipping Address' => '付é‹åœ°å€',
+ 'Startdate' => '開始日期',
+ 'State' => 'å·ž',
+ 'State/Province' => 'çœ',
+ 'Sub-contract GIFI' => '轉包åˆåŒGIFI',
+ 'Subtotal' => 'å°è¨ˆ',
+ 'Summary' => '摘è¦',
+ 'Tax' => '稅金',
+ 'Tax Included' => 'å·²å«ç¨…金',
+ 'Tax Number' => '稅號',
+ 'Tax Number / SSN' => '稅號/社會ä¿éšœç·¨è™Ÿ',
+ 'Taxable' => '應稅',
+ 'Terms' => '票期淨計',
+ 'To' => '至',
+ 'Total' => '總計',
+ 'Type of Business' => '業務種類',
+ 'Unit' => 'å–®ä½',
+ 'Update' => 'æ›´æ–°',
+ 'Vendor History' => '供應商歷å²',
+ 'Vendor Invoice' => '供應商發票',
+ 'Vendor Invoices' => '供應商發票',
+ 'Vendor Number' => '供應商號碼',
+ 'Vendor deleted!' => '已刪除供應商ï¼',
+ 'Vendor saved!' => '已儲存供應商ï¼',
+ 'Vendors' => '供應商',
+ 'Zip/Postal Code' => '郵政編碼',
+ 'days' => 'æ—¥',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ '應付交易' => 'ap_transaction',
+ '應收交易' => 'ar_transaction',
+ '新增客戶' => 'add_customer',
+ '新增供應商' => 'add_vendor',
+ '繼續' => 'continue',
+ '刪除' => 'delete',
+ '銷售點(pos)' => 'pos',
+ '價格清單' => 'pricelist',
+ '採購單' => 'purchase_order',
+ '報價單' => 'quotation',
+ '報價請求(rfq)_' => 'rfq',
+ '銷售發票' => 'sales_invoice',
+ '銷貨單' => 'sales_order',
+ '儲存' => 'save',
+ '儲存價格清單' => 'save_pricelist',
+ '當新的儲存' => 'save_as_new',
+ 'æ›´æ–°' => 'update',
+ '供應商發票' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/tw_utf/gl b/locale/tw_utf/gl
new file mode 100755
index 00000000..6b03f25b
--- /dev/null
+++ b/locale/tw_utf/gl
@@ -0,0 +1,186 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Transaction' => '應付交易',
+ 'AR Transaction' => '應收交易',
+ 'Account' => '帳戶',
+ 'Accounting Menu' => '會計é¸å–®',
+ 'Add Cash Transfer Transaction' => '新增ç¾é‡‘轉移帳目',
+ 'Add General Ledger Transaction' => '新增總帳交易',
+ 'Address' => '地å€',
+ 'All' => '全部',
+ 'Amount' => '金é¡',
+ 'Apr' => '四月',
+ 'April' => '四月',
+ 'Are you sure you want to delete Transaction' => '您是å¦ç¢ºå®šè¦åˆªé™¤äº¤æ˜“',
+ 'Asset' => '資產',
+ 'Aug' => '八月',
+ 'August' => '八月',
+ 'Balance' => '餘é¡',
+ 'Bcc' => 'ä¸é¡¯ç¤ºæŠ„é€',
+ 'Cannot delete transaction!' => 'ä¸èƒ½åˆªé™¤äº¤æ˜“ï¼',
+ 'Cannot post transaction for a closed period!' => 'ä¸èƒ½åœ¨å·²é—œé–‰çš„時段內加入交易ï¼',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => '在交易åŒä¸€å¸³æˆ¶ä¸èƒ½åˆå‡ºç¾åœ¨å€Ÿæ–¹åˆå‡ºç¾åœ¨è²¸æ–¹ï¼',
+ 'Cannot post transaction!' => 'ä¸èƒ½åŠ å…¥äº¤æ˜“ï¼',
+ 'Cc' => '抄é€',
+ 'Confirm!' => '入帳æˆåŠŸï¼',
+ 'Continue' => '繼續',
+ 'Credit' => '貸方',
+ 'Current' => 'ç¾æœ‰',
+ 'Customer not on file!' => '沒有此客戶的記錄ï¼',
+ 'Date' => '日期',
+ 'Day(s)' => 'æ—¥',
+ 'Debit' => '借方',
+ 'Dec' => 'å二月',
+ 'December' => 'å二月',
+ 'Delete' => '刪除',
+ 'Delete Schedule' => '刪除時間表',
+ 'Department' => '部門',
+ 'Description' => '說明',
+ 'E-mail' => 'é›»å­éƒµä»¶',
+ 'E-mail message' => 'é›»å­éƒµä»¶è¨Šæ¯',
+ 'Edit Cash Transfer Transaction' => '編輯ç¾é‡‘轉移',
+ 'Edit General Ledger Transaction' => '編輯總帳',
+ 'Equity' => '股權',
+ 'Every' => 'æ¯',
+ 'Expense' => '費用',
+ 'FX' => '外幣兌æ›',
+ 'Feb' => '二月',
+ 'February' => '二月',
+ 'For' => 'é‡è¦†',
+ 'From' => '從',
+ 'GIFI' => '財務訊æ¯é€šç”¨ç´¢å¼•(GIFI)',
+ 'GL Transaction' => '總帳交易',
+ 'General Ledger' => '總帳',
+ 'ID' => '識別編號',
+ 'Include Payment' => '包括付款',
+ 'Include in Report' => '一併顯示',
+ 'Income' => '收入',
+ 'Jan' => '一月',
+ 'January' => '一月',
+ 'Jul' => '七月',
+ 'July' => '七月',
+ 'Jun' => '六月',
+ 'June' => '六月',
+ 'Liability' => '負債',
+ 'Mar' => '三月',
+ 'March' => '三月',
+ 'May' => '五月',
+ 'May ' => '五月',
+ 'Memo' => '備忘錄',
+ 'Message' => '訊æ¯',
+ 'Month' => '月',
+ 'Month(s)' => '月',
+ 'Next Date' => '下一日',
+ 'Notes' => '備註',
+ 'Nov' => 'å一月',
+ 'November' => 'å一月',
+ 'Number' => '編號',
+ 'Oct' => 'å月',
+ 'October' => 'å月',
+ 'Out of balance transaction!' => 'ä¸å”調交易ï¼',
+ 'Period' => '期間',
+ 'Post' => '加入',
+ 'Post as new' => '當新的加入',
+ 'Print' => '列å°',
+ 'Project' => 'é …ç›®',
+ 'Project not on file!' => '沒有此項目的記錄ï¼',
+ 'Quarter' => 'å­£',
+ 'Recurring Transaction' => 'é‡è¦†å‡ºç¾çš„交易',
+ 'Reference' => 'åƒè€ƒè³‡æ–™',
+ 'Repeat' => 'é‡è¦†',
+ 'Reports' => '報表',
+ 'Sales Invoice ' => '銷售發票 ',
+ 'Save Schedule' => '儲存時間表',
+ 'Schedule' => '時間表',
+ 'Scheduled' => '編排了時間',
+ 'Select from one of the names below' => '於下列姓å中é¸æ“‡ä¸€å€‹',
+ 'Select from one of the projects below' => '於下列項目中é¸æ“‡ä¸€å€‹',
+ 'Sep' => 'ä¹æœˆ',
+ 'September' => 'ä¹æœˆ',
+ 'Source' => '來æº',
+ 'Startdate' => '開始日期',
+ 'Subject' => '標題',
+ 'Subtotal' => 'å°è¨ˆ',
+ 'To' => '至',
+ 'Transaction Date missing!' => '未指明交易日期ï¼',
+ 'Transaction deleted!' => '已刪除交易ï¼',
+ 'Transaction posted!' => '已加入交易ï¼',
+ 'Update' => 'æ›´æ–°',
+ 'Vendor Invoice ' => '供應商發票 ',
+ 'Vendor not on file!' => '沒有此供應商的記錄ï¼',
+ 'Warning!' => '警告ï¼',
+ 'Week(s)' => '星期',
+ 'Year' => 'å¹´',
+ 'Year(s)' => 'å¹´',
+ 'Yes' => '是',
+ 'You are posting an existing transaction!' => '您正在加入一個ç¾å­˜çš„交易ï¼',
+ 'You are printing and posting an existing transaction!' => '您正在列å°åŠåŠ å…¥ä¸€å€‹ç¾å­˜çš„交易ï¼',
+ 'You are printing and saving an existing order' => '您正在列å°åŠå„²å­˜ä¸€å¼µç¾å­˜çš„訂單ï¼',
+ 'You are printing and saving an existing quotation' => '您正在列å°åŠå„²å­˜ä¸€å¼µç¾å­˜çš„報價單ï¼',
+ 'You are saving an existing order' => '您正在儲存一張ç¾å­˜çš„訂單ï¼',
+ 'You are saving an existing quotation' => '您正在儲存一張ç¾å­˜çš„報價單ï¼',
+ 'for' => '為了',
+ 'sent' => 'å·²é€å‡º',
+ 'time(s)' => '次',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ '應付交易' => 'ap_transaction',
+ '應收交易' => 'ar_transaction',
+ '繼續' => 'continue',
+ '刪除' => 'delete',
+ '刪除時間表' => 'delete_schedule',
+ '總帳交易' => 'gl_transaction',
+ '加入' => 'post',
+ '當新的加入' => 'post_as_new',
+ '銷售發票_' => 'sales_invoice_',
+ '儲存時間表' => 'save_schedule',
+ '時間表' => 'schedule',
+ 'æ›´æ–°' => 'update',
+ '供應商發票_' => 'vendor_invoice_',
+ '是' => 'yes',
+};
+
+1;
+
diff --git a/locale/tw_utf/hr b/locale/tw_utf/hr
new file mode 100755
index 00000000..72205f02
--- /dev/null
+++ b/locale/tw_utf/hr
@@ -0,0 +1,120 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP' => '應付帳款',
+ 'Above' => '上文',
+ 'Accounting Menu' => '會計é¸å–®',
+ 'Active' => '生效的',
+ 'Add Deduction' => '新增扣除',
+ 'Add Employee' => '新增è·å“¡',
+ 'Address' => '地å€',
+ 'Administrator' => '管ç†å“¡',
+ 'After Deduction' => '扣除以後',
+ 'All' => '全部',
+ 'Allowances' => '津貼',
+ 'Amount' => '金é¡',
+ 'Amount missing!' => '沒有指定金é¡ï¼',
+ 'BIC' => '銀行識別編號(BIC)',
+ 'Based on' => '基於',
+ 'Before Deduction' => '扣除之å‰',
+ 'Below' => '以下',
+ 'City' => '城市',
+ 'Continue' => '繼續',
+ 'Country' => '國家',
+ 'DOB' => '出生日期',
+ 'Deduct after' => '減少以後',
+ 'Deduction deleted!' => '已刪除減少ï¼',
+ 'Deduction saved!' => '已儲存減少ï¼',
+ 'Deductions' => '減除é¡',
+ 'Delete' => '刪除',
+ 'Description' => '說明',
+ 'Description missing!' => '未指明æè¿°ï¼',
+ 'E-mail' => 'é›»å­éƒµä»¶',
+ 'Edit Deduction' => '編輯減除é¡',
+ 'Edit Employee' => '編輯è·å“¡',
+ 'Employee' => 'è·å“¡',
+ 'Employee Name' => 'è·å“¡å§“å',
+ 'Employee Number' => 'è·å“¡ç·¨è™Ÿ',
+ 'Employee deleted!' => '已刪除è·å“¡ï¼',
+ 'Employee pays' => '付款給è·å“¡',
+ 'Employee saved!' => '已儲存è·å“¡ï¼',
+ 'Employees' => 'è·å“¡',
+ 'Employer' => '雇主',
+ 'Employer pays' => '付款給雇主',
+ 'Enddate' => 'çµæŸæ—¥',
+ 'Expense' => '費用',
+ 'From' => '從',
+ 'Home Phone' => 'ä½å®…電話',
+ 'IBAN' => '國際銀行帳號(IBAN)',
+ 'ID' => '識別編號',
+ 'Inactive' => 'éžæ´»èºçš„',
+ 'Include in Report' => '一併顯示',
+ 'Login' => '登入',
+ 'Manager' => '經ç†',
+ 'Maximum' => '最大',
+ 'Name' => 'å稱',
+ 'Name missing!' => '未指明åå­—ï¼',
+ 'Notes' => '備註',
+ 'Number' => '編號',
+ 'Orphaned' => '無主',
+ 'Payroll Deduction' => '薪金減除é¡',
+ 'Pos' => 'åºè™Ÿ',
+ 'Rate' => '稅率',
+ 'Rate missing!' => '未指明稅率ï¼',
+ 'Role' => '任務',
+ 'SSN' => '社會ä¿éšœç·¨è™Ÿ',
+ 'Sales' => '銷售',
+ 'Save' => '儲存',
+ 'Save as new' => '當新的儲存',
+ 'Startdate' => '開始日期',
+ 'State/Province' => 'çœ',
+ 'Supervisor' => '主管',
+ 'To' => '至',
+ 'Update' => 'æ›´æ–°',
+ 'User' => '使用者',
+ 'Work Phone' => '工作電話',
+ 'Zip/Postal Code' => '郵政編碼',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ '新增扣除' => 'add_deduction',
+ '新增è·å“¡' => 'add_employee',
+ '繼續' => 'continue',
+ '刪除' => 'delete',
+ '儲存' => 'save',
+ '當新的儲存' => 'save_as_new',
+ 'æ›´æ–°' => 'update',
+};
+
+1;
+
diff --git a/locale/tw_utf/ic b/locale/tw_utf/ic
new file mode 100755
index 00000000..abc8528f
--- /dev/null
+++ b/locale/tw_utf/ic
@@ -0,0 +1,294 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => '會計é¸å–®',
+ 'Accounts' => '帳戶',
+ 'Accrual' => '應計基礎',
+ 'Active' => '生效的',
+ 'Add' => '新增',
+ 'Add Assembly' => '新增製æˆå“',
+ 'Add Labor/Overhead' => '新增直接人工/經常費用',
+ 'Add Part' => '新增零件',
+ 'Add Purchase Order' => '新增採購單',
+ 'Add Quotation' => '新增報價單',
+ 'Add Request for Quotation' => '新增報價單è¦æ±‚',
+ 'Add Sales Order' => '新增銷貨單',
+ 'Add Service' => '新增æœå‹™',
+ 'Address' => '地å€',
+ 'Apr' => '四月',
+ 'April' => '四月',
+ 'Assemblies' => '製æˆå“',
+ 'Assemblies restocked!' => '製æˆå“å·²é‡æ–°é€²è²¨',
+ 'Assembly' => '製æˆå“',
+ 'Attachment' => '附件',
+ 'Aug' => '八月',
+ 'August' => '八月',
+ 'Average Cost' => 'å¹³å‡æˆæœ¬',
+ 'Avg Cost' => 'å¹³å‡æˆæœ¬',
+ 'BOM' => 'æ料清單',
+ 'Bcc' => 'ä¸é¡¯ç¤ºæŠ„é€',
+ 'Billing Address' => '帳單地å€',
+ 'Bin' => 'ç®±',
+ 'Bin List' => '箱的明細表',
+ 'Break' => '休æ¯',
+ 'COGS' => '貨銷æˆæœ¬',
+ 'COGS account does not exist!' => '貨銷æˆæœ¬å¸³æˆ¶ä¸å­˜åœ¨ï¼',
+ 'Cannot create Assembly' => 'ä¸èƒ½å»ºç«‹è£½æˆå“',
+ 'Cannot create Labor' => 'ä¸èƒ½å»ºç«‹ç›´æŽ¥äººå·¥',
+ 'Cannot create Part' => 'ä¸èƒ½å»ºç«‹é›¶ä»¶',
+ 'Cannot create Service' => 'ä¸èƒ½å»ºç«‹æœå‹™',
+ 'Cannot delete item!' => 'ä¸èƒ½åˆªé™¤é …ç›®ï¼',
+ 'Cannot stock assemblies!' => 'ä¸èƒ½æŠŠè£½æˆå“入貨ï¼',
+ 'Cash' => 'ç¾é‡‘',
+ 'Cc' => '抄é€',
+ 'Check Inventory' => '檢查存貨清單',
+ 'City' => '城市',
+ 'Closed' => '已關閉',
+ 'Company Name' => 'å…¬å¸å稱',
+ 'Components' => '零件',
+ 'Contact' => '連絡人',
+ 'Continue' => '繼續',
+ 'Copies' => '副本',
+ 'Cost' => 'æˆæœ¬',
+ 'Country' => '國家',
+ 'Curr' => 'ç›®å‰',
+ 'Currency' => '幣別',
+ 'Customer' => '客戶',
+ 'Customer Number' => '客戶編號',
+ 'Customer not on file!' => '沒有此客戶的記錄ï¼',
+ 'Date' => '日期',
+ 'Dec' => 'å二月',
+ 'December' => 'å二月',
+ 'Delete' => '刪除',
+ 'Delivery Date' => '到期日',
+ 'Description' => '說明',
+ 'Detail' => '詳情',
+ 'Drawing' => '圖畫',
+ 'E-mail' => 'é›»å­éƒµä»¶',
+ 'E-mail address missing!' => '未指明電å­éƒµä»¶ä½å€ï¼',
+ 'E-mailed' => '已電郵',
+ 'Edit Assembly' => '編輯製æˆå“',
+ 'Edit Labor/Overhead' => '編輯直接人工/經常費用',
+ 'Edit Part' => '編輯零件',
+ 'Edit Service' => '編輯æœå‹™',
+ 'Employee' => 'è·å“¡',
+ 'Expense' => '費用',
+ 'Expense account does not exist!' => '費用帳戶ä¸å­˜åœ¨ï¼',
+ 'Extended' => '總價',
+ 'Fax' => '傳真',
+ 'Feb' => '二月',
+ 'February' => '二月',
+ 'From' => '從',
+ 'Group' => '組別',
+ 'Image' => 'å½±åƒ',
+ 'In-line' => '行內',
+ 'Include in Report' => '一併顯示',
+ 'Income' => '收入',
+ 'Income account does not exist!' => '收入帳戶ä¸å­˜åœ¨ï¼',
+ 'Individual Items' => '個別的項目',
+ 'Inventory' => '庫存',
+ 'Inventory account does not exist!' => '庫存數帳戶ä¸å­˜åœ¨ï¼',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => '在åœç”¨æ­¤è£½æˆå“之å‰, 存貨數é‡å¿…需為零ï¼',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'åœç”¨æ­¤é …零件之å‰, 存貨數é‡å¿…需為零ï¼',
+ 'Invoice' => '發票',
+ 'Invoice Date missing!' => '未指明發票日期ï¼',
+ 'Invoice Number' => '發票編號',
+ 'Invoice Number missing!' => '未指明發票編號ï¼',
+ 'Item deleted!' => '已刪除項目ï¼',
+ 'Item not on file!' => '沒有此項目的記錄ï¼',
+ 'Items' => 'é …ç›®',
+ 'Jan' => '一月',
+ 'January' => '一月',
+ 'Jul' => '七月',
+ 'July' => '七月',
+ 'Jun' => '六月',
+ 'June' => '六月',
+ 'Labor/Overhead' => '直接人工/經常費用',
+ 'Last Cost' => '上次的æˆæœ¬',
+ 'Leadtime' => '總需時',
+ 'Line Total' => '總列數',
+ 'Link Accounts' => '連çµå¸³æˆ¶',
+ 'List' => '列表',
+ 'List Price' => '列出價',
+ 'Make' => '生產商',
+ 'Mar' => '三月',
+ 'March' => '三月',
+ 'Markup' => '漲價',
+ 'May' => '五月',
+ 'May ' => '五月',
+ 'Message' => '訊æ¯',
+ 'Microfiche' => '單片縮影膠片',
+ 'Model' => '型號',
+ 'Name' => 'å稱',
+ 'No.' => '編號',
+ 'Notes' => '備註',
+ 'Nov' => 'å一月',
+ 'November' => 'å一月',
+ 'Number' => '編號',
+ 'Number missing in Row' => '此列中缺少數值',
+ 'OH' => '已有存é‡',
+ 'Obsolete' => 'åœç”¨',
+ 'Oct' => 'å月',
+ 'October' => 'å月',
+ 'On Hand' => '已有存é‡',
+ 'Open' => 'é–‹å•Ÿ',
+ 'Order' => '訂單',
+ 'Order Date missing!' => '未指明下單日期ï¼',
+ 'Order Number' => '訂單編號',
+ 'Order Number missing!' => '未指明訂單編號ï¼',
+ 'Orphaned' => '無主',
+ 'PDF' => 'PDF',
+ 'Packing List' => '出貨單',
+ 'Packing List Date missing!' => '未指明出貨單日期ï¼',
+ 'Packing List Number missing!' => '未指明出貨單編號ï¼',
+ 'Part' => '零件',
+ 'Parts' => '零件',
+ 'Period' => '期間',
+ 'Phone' => '電話號碼',
+ 'Pick List' => 'æ€è²¨æ¸…å–®',
+ 'Postscript' => 'Postscript',
+ 'Price' => '價格',
+ 'Pricegroup' => '價格組別',
+ 'Printed' => '已列å°',
+ 'Project' => 'é …ç›®',
+ 'Purchase Order' => '採購單',
+ 'Purchase Orders' => '採購單',
+ 'Qty' => '數é‡',
+ 'Quantity exceeds available units to stock!' => '數é‡è¶…éŽå¯åº«å­˜çš„數é‡ï¼',
+ 'Quotation' => '報價單',
+ 'Quotation Date missing!' => '未指明報價單日期ï¼',
+ 'Quotation Number missing!' => '未指明報價單號碼ï¼',
+ 'Quotations' => '報價單',
+ 'RFQ' => '報價請求(RFQ) ',
+ 'ROP' => 'å†è¨‚點',
+ 'Recd' => '已收到',
+ 'Required by' => 'è¦æ±‚交付日期',
+ 'SKU' => '庫存單ä½',
+ 'Sales Invoice' => '銷售發票',
+ 'Sales Invoices' => '銷售發票',
+ 'Sales Order' => '銷貨單',
+ 'Sales Orders' => '銷貨單',
+ 'Save' => '儲存',
+ 'Save as new' => '當新的儲存',
+ 'Scheduled' => '編排了時間',
+ 'Screen' => '螢幕',
+ 'Select from one of the names below' => '於下列姓å中é¸æ“‡ä¸€å€‹',
+ 'Select items' => 'é¸æ“‡é …ç›®',
+ 'Select txt, postscript or PDF!' => 'é¸æ“‡æ–‡å­—ã€postscript或PDFï¼',
+ 'Sell' => '售賣',
+ 'Sell Price' => '售價',
+ 'Sep' => 'ä¹æœˆ',
+ 'September' => 'ä¹æœˆ',
+ 'Serial No.' => 'åºè™Ÿ',
+ 'Serial Number' => 'åºè™Ÿ',
+ 'Service' => 'æœå‹™',
+ 'Services' => 'æœå‹™',
+ 'Ship' => '付é‹',
+ 'Ship to' => '付é‹è‡³',
+ 'Shipping Address' => '付é‹åœ°å€',
+ 'Short' => '短',
+ 'State/Province' => 'çœ',
+ 'Stock' => '庫存',
+ 'Stock Assembly' => '把製æˆå“入貨',
+ 'Subject' => '標題',
+ 'Subtotal' => 'å°è¨ˆ',
+ 'Summary' => '摘è¦',
+ 'Tax' => '稅金',
+ 'Text' => '文字',
+ 'To' => '至',
+ 'Top Level' => '頂層',
+ 'Translation not on file!' => '沒有此翻譯的記錄ï¼',
+ 'Unit' => 'å–®ä½',
+ 'Update' => 'æ›´æ–°',
+ 'Updated' => '已更新',
+ 'Vendor' => '供應商',
+ 'Vendor Invoice' => '供應商發票',
+ 'Vendor Invoices' => '供應商發票',
+ 'Vendor Number' => '供應商號碼',
+ 'Vendor not on file!' => '沒有此供應商的記錄ï¼',
+ 'Warehouse' => '倉庫',
+ 'Weight' => 'é‡é‡',
+ 'What type of item is this?' => '此項目屬於甚麼類別?',
+ 'Work Order' => '工作單',
+ 'Year' => 'å¹´',
+ 'Zip/Postal Code' => '郵政編碼',
+ 'days' => 'æ—¥',
+ 'sent' => 'å·²é€å‡º',
+ 'unexpected error!' => '沒有é æœŸçš„錯誤ï¼',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ '新增製æˆå“' => 'add_assembly',
+ '新增直接人工_經常費用' => 'add_labor_overhead',
+ '新增零件' => 'add_part',
+ '新增æœå‹™' => 'add_service',
+ '繼續' => 'continue',
+ '刪除' => 'delete',
+ '編輯製æˆå“' => 'edit_assembly',
+ '編輯零件' => 'edit_part',
+ '編輯æœå‹™' => 'edit_service',
+ '儲存' => 'save',
+ '當新的儲存' => 'save_as_new',
+ 'æ›´æ–°' => 'update',
+};
+
+1;
+
diff --git a/locale/tw_utf/io b/locale/tw_utf/io
new file mode 100755
index 00000000..f25fa558
--- /dev/null
+++ b/locale/tw_utf/io
@@ -0,0 +1,136 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Add Purchase Order' => '新增採購單',
+ 'Add Quotation' => '新增報價單',
+ 'Add Request for Quotation' => '新增報價單è¦æ±‚',
+ 'Add Sales Order' => '新增銷貨單',
+ 'Address' => '地å€',
+ 'Apr' => '四月',
+ 'April' => '四月',
+ 'Attachment' => '附件',
+ 'Aug' => '八月',
+ 'August' => '八月',
+ 'Bcc' => 'ä¸é¡¯ç¤ºæŠ„é€',
+ 'Billing Address' => '帳單地å€',
+ 'Bin' => 'ç®±',
+ 'Bin List' => '箱的明細表',
+ 'Cc' => '抄é€',
+ 'City' => '城市',
+ 'Company Name' => 'å…¬å¸å稱',
+ 'Contact' => '連絡人',
+ 'Continue' => '繼續',
+ 'Copies' => '副本',
+ 'Country' => '國家',
+ 'Customer Number' => '客戶編號',
+ 'Date' => '日期',
+ 'Dec' => 'å二月',
+ 'December' => 'å二月',
+ 'Delivery Date' => '到期日',
+ 'Description' => '說明',
+ 'E-mail' => 'é›»å­éƒµä»¶',
+ 'E-mail address missing!' => '未指明電å­éƒµä»¶ä½å€ï¼',
+ 'E-mailed' => '已電郵',
+ 'Extended' => '總價',
+ 'Fax' => '傳真',
+ 'Feb' => '二月',
+ 'February' => '二月',
+ 'Group' => '組別',
+ 'In-line' => '行內',
+ 'Invoice' => '發票',
+ 'Invoice Date missing!' => '未指明發票日期ï¼',
+ 'Invoice Number missing!' => '未指明發票編號ï¼',
+ 'Item not on file!' => '沒有此項目的記錄ï¼',
+ 'Jan' => '一月',
+ 'January' => '一月',
+ 'Jul' => '七月',
+ 'July' => '七月',
+ 'Jun' => '六月',
+ 'June' => '六月',
+ 'Mar' => '三月',
+ 'March' => '三月',
+ 'May' => '五月',
+ 'May ' => '五月',
+ 'Message' => '訊æ¯',
+ 'Nov' => 'å一月',
+ 'November' => 'å一月',
+ 'Number' => '編號',
+ 'Number missing in Row' => '此列中缺少數值',
+ 'OH' => '已有存é‡',
+ 'Oct' => 'å月',
+ 'October' => 'å月',
+ 'Order Date missing!' => '未指明下單日期ï¼',
+ 'Order Number missing!' => '未指明訂單編號ï¼',
+ 'PDF' => 'PDF',
+ 'Packing List' => '出貨單',
+ 'Packing List Date missing!' => '未指明出貨單日期ï¼',
+ 'Packing List Number missing!' => '未指明出貨單編號ï¼',
+ 'Part' => '零件',
+ 'Phone' => '電話號碼',
+ 'Pick List' => 'æ€è²¨æ¸…å–®',
+ 'Postscript' => 'Postscript',
+ 'Price' => '價格',
+ 'Printed' => '已列å°',
+ 'Project' => 'é …ç›®',
+ 'Purchase Order' => '採購單',
+ 'Qty' => '數é‡',
+ 'Quotation' => '報價單',
+ 'Quotation Date missing!' => '未指明報價單日期ï¼',
+ 'Quotation Number missing!' => '未指明報價單號碼ï¼',
+ 'Recd' => '已收到',
+ 'Required by' => 'è¦æ±‚交付日期',
+ 'SKU' => '庫存單ä½',
+ 'Sales Order' => '銷貨單',
+ 'Scheduled' => '編排了時間',
+ 'Screen' => '螢幕',
+ 'Select items' => 'é¸æ“‡é …ç›®',
+ 'Select txt, postscript or PDF!' => 'é¸æ“‡æ–‡å­—ã€postscript或PDFï¼',
+ 'Sep' => 'ä¹æœˆ',
+ 'September' => 'ä¹æœˆ',
+ 'Serial No.' => 'åºè™Ÿ',
+ 'Service' => 'æœå‹™',
+ 'Ship' => '付é‹',
+ 'Ship to' => '付é‹è‡³',
+ 'Shipping Address' => '付é‹åœ°å€',
+ 'State/Province' => 'çœ',
+ 'Subject' => '標題',
+ 'Subtotal' => 'å°è¨ˆ',
+ 'Text' => '文字',
+ 'To' => '至',
+ 'Translation not on file!' => '沒有此翻譯的記錄ï¼',
+ 'Unit' => 'å–®ä½',
+ 'Vendor Number' => '供應商號碼',
+ 'What type of item is this?' => '此項目屬於甚麼類別?',
+ 'Work Order' => '工作單',
+ 'Zip/Postal Code' => '郵政編碼',
+ 'sent' => 'å·²é€å‡º',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ '繼續' => 'continue',
+};
+
+1;
+
diff --git a/locale/tw_utf/ir b/locale/tw_utf/ir
new file mode 100755
index 00000000..d9322473
--- /dev/null
+++ b/locale/tw_utf/ir
@@ -0,0 +1,256 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => '帳戶',
+ 'Accounting Menu' => '會計é¸å–®',
+ 'Add Purchase Order' => '新增採購單',
+ 'Add Quotation' => '新增報價單',
+ 'Add Request for Quotation' => '新增報價單è¦æ±‚',
+ 'Add Sales Order' => '新增銷貨單',
+ 'Add Vendor Invoice' => '新增供應商發票',
+ 'Address' => '地å€',
+ 'Amount' => '金é¡',
+ 'Apr' => '四月',
+ 'April' => '四月',
+ 'Are you sure you want to delete Invoice Number' => '您是å¦ç¢ºå®šè¦åˆªé™¤ç™¼ç¥¨ç·¨è™Ÿ',
+ 'Attachment' => '附件',
+ 'Aug' => '八月',
+ 'August' => '八月',
+ 'Bcc' => 'ä¸é¡¯ç¤ºæŠ„é€',
+ 'Billing Address' => '帳單地å€',
+ 'Bin' => 'ç®±',
+ 'Bin List' => '箱的明細表',
+ 'Cannot delete invoice!' => 'ä¸èƒ½åˆªé™¤ç™¼ç¥¨ï¼',
+ 'Cannot post invoice for a closed period!' => 'ä¸èƒ½åœ¨å·²é—œé–‰çš„時段內加入發票ï¼',
+ 'Cannot post invoice!' => 'ä¸èƒ½åŠ å…¥ç™¼ç¥¨ï¼',
+ 'Cannot post payment for a closed period!' => 'ä¸èƒ½åœ¨å·²é—œé–‰çš„時段內加入款項ï¼',
+ 'Cc' => '抄é€',
+ 'City' => '城市',
+ 'Company Name' => 'å…¬å¸å稱',
+ 'Confirm!' => '入帳æˆåŠŸï¼',
+ 'Contact' => '連絡人',
+ 'Continue' => '繼續',
+ 'Copies' => '副本',
+ 'Country' => '國家',
+ 'Credit Limit' => '信用é¡åº¦',
+ 'Currency' => '幣別',
+ 'Customer Number' => '客戶編號',
+ 'Customer not on file!' => '沒有此客戶的記錄ï¼',
+ 'Date' => '日期',
+ 'Day(s)' => 'æ—¥',
+ 'Dec' => 'å二月',
+ 'December' => 'å二月',
+ 'Delete' => '刪除',
+ 'Delete Schedule' => '刪除時間表',
+ 'Delivery Date' => '到期日',
+ 'Department' => '部門',
+ 'Description' => '說明',
+ 'Due Date' => '到期日',
+ 'E-mail' => 'é›»å­éƒµä»¶',
+ 'E-mail address missing!' => '未指明電å­éƒµä»¶ä½å€ï¼',
+ 'E-mail message' => 'é›»å­éƒµä»¶è¨Šæ¯',
+ 'E-mailed' => '已電郵',
+ 'Edit Vendor Invoice' => '編輯供應商發票',
+ 'Every' => 'æ¯',
+ 'Exch' => '匯率',
+ 'Exchange Rate' => '匯率',
+ 'Exchange rate for payment missing!' => '未指明付款的匯率ï¼',
+ 'Exchange rate missing!' => '未指明匯率ï¼',
+ 'Extended' => '總價',
+ 'Fax' => '傳真',
+ 'Feb' => '二月',
+ 'February' => '二月',
+ 'For' => 'é‡è¦†',
+ 'Group' => '組別',
+ 'In-line' => '行內',
+ 'Include Payment' => '包括付款',
+ 'Internal Notes' => '內部備忘錄',
+ 'Invoice' => '發票',
+ 'Invoice Date' => '發票日期',
+ 'Invoice Date missing!' => '未指明發票日期ï¼',
+ 'Invoice Number' => '發票編號',
+ 'Invoice Number missing!' => '未指明發票編號ï¼',
+ 'Invoice deleted!' => '已刪除發票ï¼',
+ 'Item not on file!' => '沒有此項目的記錄ï¼',
+ 'Jan' => '一月',
+ 'January' => '一月',
+ 'Jul' => '七月',
+ 'July' => '七月',
+ 'Jun' => '六月',
+ 'June' => '六月',
+ 'Language' => '語言',
+ 'Mar' => '三月',
+ 'March' => '三月',
+ 'May' => '五月',
+ 'May ' => '五月',
+ 'Memo' => '備忘錄',
+ 'Message' => '訊æ¯',
+ 'Month(s)' => '月',
+ 'Next Date' => '下一日',
+ 'Notes' => '備註',
+ 'Nov' => 'å一月',
+ 'November' => 'å一月',
+ 'Number' => '編號',
+ 'Number missing in Row' => '此列中缺少數值',
+ 'OH' => '已有存é‡',
+ 'Oct' => 'å月',
+ 'October' => 'å月',
+ 'Order Date missing!' => '未指明下單日期ï¼',
+ 'Order Number' => '訂單編號',
+ 'Order Number missing!' => '未指明訂單編號ï¼',
+ 'PDF' => 'PDF',
+ 'PO Number' => '採購單編號',
+ 'Packing List' => '出貨單',
+ 'Packing List Date missing!' => '未指明出貨單日期ï¼',
+ 'Packing List Number missing!' => '未指明出貨單編號ï¼',
+ 'Part' => '零件',
+ 'Payment date missing!' => '未指明付款日期ï¼',
+ 'Payments' => '付款',
+ 'Phone' => '電話號碼',
+ 'Pick List' => 'æ€è²¨æ¸…å–®',
+ 'Post' => '加入',
+ 'Post as new' => '當新的加入',
+ 'Postscript' => 'Postscript',
+ 'Price' => '價格',
+ 'Print' => '列å°',
+ 'Printed' => '已列å°',
+ 'Project' => 'é …ç›®',
+ 'Project not on file!' => '沒有此項目的記錄ï¼',
+ 'Purchase Order' => '採購單',
+ 'Qty' => '數é‡',
+ 'Quotation' => '報價單',
+ 'Quotation Date missing!' => '未指明報價單日期ï¼',
+ 'Quotation Number missing!' => '未指明報價單號碼ï¼',
+ 'Recd' => '已收到',
+ 'Record in' => '記錄於',
+ 'Recurring Transaction' => 'é‡è¦†å‡ºç¾çš„交易',
+ 'Reference' => 'åƒè€ƒè³‡æ–™',
+ 'Remaining' => '尚餘',
+ 'Repeat' => 'é‡è¦†',
+ 'Required by' => 'è¦æ±‚交付日期',
+ 'SKU' => '庫存單ä½',
+ 'Sales Order' => '銷貨單',
+ 'Save Schedule' => '儲存時間表',
+ 'Schedule' => '時間表',
+ 'Scheduled' => '編排了時間',
+ 'Screen' => '螢幕',
+ 'Select from one of the names below' => '於下列姓å中é¸æ“‡ä¸€å€‹',
+ 'Select from one of the projects below' => '於下列項目中é¸æ“‡ä¸€å€‹',
+ 'Select items' => 'é¸æ“‡é …ç›®',
+ 'Select txt, postscript or PDF!' => 'é¸æ“‡æ–‡å­—ã€postscript或PDFï¼',
+ 'Sep' => 'ä¹æœˆ',
+ 'September' => 'ä¹æœˆ',
+ 'Serial No.' => 'åºè™Ÿ',
+ 'Service' => 'æœå‹™',
+ 'Ship' => '付é‹',
+ 'Ship to' => '付é‹è‡³',
+ 'Shipping Address' => '付é‹åœ°å€',
+ 'Source' => '來æº',
+ 'Startdate' => '開始日期',
+ 'State/Province' => 'çœ',
+ 'Subject' => '標題',
+ 'Subtotal' => 'å°è¨ˆ',
+ 'Tax Included' => 'å·²å«ç¨…金',
+ 'Text' => '文字',
+ 'To' => '至',
+ 'Total' => '總計',
+ 'Translation not on file!' => '沒有此翻譯的記錄ï¼',
+ 'Unit' => 'å–®ä½',
+ 'Update' => 'æ›´æ–°',
+ 'Vendor' => '供應商',
+ 'Vendor Number' => '供應商號碼',
+ 'Vendor missing!' => '未指明供應商ï¼',
+ 'Vendor not on file!' => '沒有此供應商的記錄ï¼',
+ 'Warning!' => '警告ï¼',
+ 'Week(s)' => '星期',
+ 'What type of item is this?' => '此項目屬於甚麼類別?',
+ 'Work Order' => '工作單',
+ 'Year(s)' => 'å¹´',
+ 'Yes' => '是',
+ 'You are posting an existing transaction!' => '您正在加入一個ç¾å­˜çš„交易ï¼',
+ 'You are printing and posting an existing transaction!' => '您正在列å°åŠåŠ å…¥ä¸€å€‹ç¾å­˜çš„交易ï¼',
+ 'You are printing and saving an existing order' => '您正在列å°åŠå„²å­˜ä¸€å¼µç¾å­˜çš„訂單ï¼',
+ 'You are printing and saving an existing quotation' => '您正在列å°åŠå„²å­˜ä¸€å¼µç¾å­˜çš„報價單ï¼',
+ 'You are saving an existing order' => '您正在儲存一張ç¾å­˜çš„訂單ï¼',
+ 'You are saving an existing quotation' => '您正在儲存一張ç¾å­˜çš„報價單ï¼',
+ 'Zip/Postal Code' => '郵政編碼',
+ 'ea' => '個',
+ 'for' => '為了',
+ 'posted!' => '已加入ï¼',
+ 'sent' => 'å·²é€å‡º',
+ 'time(s)' => '次',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ '繼續' => 'continue',
+ '刪除' => 'delete',
+ '刪除時間表' => 'delete_schedule',
+ '加入' => 'post',
+ '當新的加入' => 'post_as_new',
+ '採購單' => 'purchase_order',
+ '儲存時間表' => 'save_schedule',
+ '時間表' => 'schedule',
+ 'æ›´æ–°' => 'update',
+ '是' => 'yes',
+};
+
+1;
+
diff --git a/locale/tw_utf/is b/locale/tw_utf/is
new file mode 100755
index 00000000..981aa06b
--- /dev/null
+++ b/locale/tw_utf/is
@@ -0,0 +1,270 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => '帳戶',
+ 'Accounting Menu' => '會計é¸å–®',
+ 'Add Purchase Order' => '新增採購單',
+ 'Add Quotation' => '新增報價單',
+ 'Add Request for Quotation' => '新增報價單è¦æ±‚',
+ 'Add Sales Invoice' => '新增銷售發票',
+ 'Add Sales Order' => '新增銷貨單',
+ 'Address' => '地å€',
+ 'Amount' => '金é¡',
+ 'Apr' => '四月',
+ 'April' => '四月',
+ 'Are you sure you want to delete Invoice Number' => '您是å¦ç¢ºå®šè¦åˆªé™¤ç™¼ç¥¨ç·¨è™Ÿ',
+ 'Attachment' => '附件',
+ 'Aug' => '八月',
+ 'August' => '八月',
+ 'Bcc' => 'ä¸é¡¯ç¤ºæŠ„é€',
+ 'Billing Address' => '帳單地å€',
+ 'Bin' => 'ç®±',
+ 'Bin List' => '箱的明細表',
+ 'Business' => '業務',
+ 'Cannot delete invoice!' => 'ä¸èƒ½åˆªé™¤ç™¼ç¥¨ï¼',
+ 'Cannot post invoice for a closed period!' => 'ä¸èƒ½åœ¨å·²é—œé–‰çš„時段內加入發票ï¼',
+ 'Cannot post invoice!' => 'ä¸èƒ½åŠ å…¥ç™¼ç¥¨ï¼',
+ 'Cannot post payment for a closed period!' => 'ä¸èƒ½åœ¨å·²é—œé–‰çš„時段內加入款項ï¼',
+ 'Cc' => '抄é€',
+ 'City' => '城市',
+ 'Company Name' => 'å…¬å¸å稱',
+ 'Confirm!' => '入帳æˆåŠŸï¼',
+ 'Contact' => '連絡人',
+ 'Continue' => '繼續',
+ 'Copies' => '副本',
+ 'Country' => '國家',
+ 'Credit Limit' => '信用é¡åº¦',
+ 'Currency' => '幣別',
+ 'Customer' => '客戶',
+ 'Customer Number' => '客戶編號',
+ 'Customer missing!' => '未指明客戶ï¼',
+ 'Customer not on file!' => '沒有此客戶的記錄ï¼',
+ 'Date' => '日期',
+ 'Day(s)' => 'æ—¥',
+ 'Dec' => 'å二月',
+ 'December' => 'å二月',
+ 'Delete' => '刪除',
+ 'Delete Schedule' => '刪除時間表',
+ 'Delivery Date' => '到期日',
+ 'Department' => '部門',
+ 'Description' => '說明',
+ 'Due Date' => '到期日',
+ 'E-mail' => 'é›»å­éƒµä»¶',
+ 'E-mail address missing!' => '未指明電å­éƒµä»¶ä½å€ï¼',
+ 'E-mail message' => 'é›»å­éƒµä»¶è¨Šæ¯',
+ 'E-mailed' => '已電郵',
+ 'Edit Sales Invoice' => '編輯銷售發票',
+ 'Every' => 'æ¯',
+ 'Exch' => '匯率',
+ 'Exchange Rate' => '匯率',
+ 'Exchange rate for payment missing!' => '未指明付款的匯率ï¼',
+ 'Exchange rate missing!' => '未指明匯率ï¼',
+ 'Extended' => '總價',
+ 'Fax' => '傳真',
+ 'Feb' => '二月',
+ 'February' => '二月',
+ 'For' => 'é‡è¦†',
+ 'Group' => '組別',
+ 'In-line' => '行內',
+ 'Include Payment' => '包括付款',
+ 'Internal Notes' => '內部備忘錄',
+ 'Invoice' => '發票',
+ 'Invoice Date' => '發票日期',
+ 'Invoice Date missing!' => '未指明發票日期ï¼',
+ 'Invoice Number' => '發票編號',
+ 'Invoice Number missing!' => '未指明發票編號ï¼',
+ 'Invoice deleted!' => '已刪除發票ï¼',
+ 'Item not on file!' => '沒有此項目的記錄ï¼',
+ 'Jan' => '一月',
+ 'January' => '一月',
+ 'Jul' => '七月',
+ 'July' => '七月',
+ 'Jun' => '六月',
+ 'June' => '六月',
+ 'Mar' => '三月',
+ 'March' => '三月',
+ 'May' => '五月',
+ 'May ' => '五月',
+ 'Memo' => '備忘錄',
+ 'Message' => '訊æ¯',
+ 'Month(s)' => '月',
+ 'Next Date' => '下一日',
+ 'Notes' => '備註',
+ 'Nov' => 'å一月',
+ 'November' => 'å一月',
+ 'Number' => '編號',
+ 'Number missing in Row' => '此列中缺少數值',
+ 'OH' => '已有存é‡',
+ 'Oct' => 'å月',
+ 'October' => 'å月',
+ 'Order Date missing!' => '未指明下單日期ï¼',
+ 'Order Number' => '訂單編號',
+ 'Order Number missing!' => '未指明訂單編號ï¼',
+ 'PDF' => 'PDF',
+ 'PO Number' => '採購單編號',
+ 'Packing List' => '出貨單',
+ 'Packing List Date missing!' => '未指明出貨單日期ï¼',
+ 'Packing List Number missing!' => '未指明出貨單編號ï¼',
+ 'Part' => '零件',
+ 'Payment date missing!' => '未指明付款日期ï¼',
+ 'Payments' => '付款',
+ 'Phone' => '電話號碼',
+ 'Pick List' => 'æ€è²¨æ¸…å–®',
+ 'Post' => '加入',
+ 'Post as new' => '當新的加入',
+ 'Postscript' => 'Postscript',
+ 'Price' => '價格',
+ 'Print' => '列å°',
+ 'Print and Post' => '列å°ä¸¦åŠ å…¥',
+ 'Print and Post as new' => '列å°ä¸¦åŠ å…¥ä½œç‚ºæ–°çš„',
+ 'Printed' => '已列å°',
+ 'Project' => 'é …ç›®',
+ 'Project not on file!' => '沒有此項目的記錄ï¼',
+ 'Purchase Order' => '採購單',
+ 'Qty' => '數é‡',
+ 'Quotation' => '報價單',
+ 'Quotation Date missing!' => '未指明報價單日期ï¼',
+ 'Quotation Number missing!' => '未指明報價單號碼ï¼',
+ 'Recd' => '已收到',
+ 'Record in' => '記錄於',
+ 'Recurring Transaction' => 'é‡è¦†å‡ºç¾çš„交易',
+ 'Reference' => 'åƒè€ƒè³‡æ–™',
+ 'Remaining' => '尚餘',
+ 'Repeat' => 'é‡è¦†',
+ 'Required by' => 'è¦æ±‚交付日期',
+ 'SKU' => '庫存單ä½',
+ 'Sales Order' => '銷貨單',
+ 'Salesperson' => '銷售人員',
+ 'Save Schedule' => '儲存時間表',
+ 'Schedule' => '時間表',
+ 'Scheduled' => '編排了時間',
+ 'Screen' => '螢幕',
+ 'Select a Printer!' => 'é¸æ“‡å°è¡¨æ©Ÿï¼',
+ 'Select from one of the names below' => '於下列姓å中é¸æ“‡ä¸€å€‹',
+ 'Select from one of the projects below' => '於下列項目中é¸æ“‡ä¸€å€‹',
+ 'Select items' => 'é¸æ“‡é …ç›®',
+ 'Select postscript or PDF!' => 'é¸æ“‡postscript或PDFï¼',
+ 'Select txt, postscript or PDF!' => 'é¸æ“‡æ–‡å­—ã€postscript或PDFï¼',
+ 'Sep' => 'ä¹æœˆ',
+ 'September' => 'ä¹æœˆ',
+ 'Serial No.' => 'åºè™Ÿ',
+ 'Service' => 'æœå‹™',
+ 'Ship' => '付é‹',
+ 'Ship to' => '付é‹è‡³',
+ 'Ship via' => '付é‹å…¬å¸',
+ 'Shipping Address' => '付é‹åœ°å€',
+ 'Shipping Point' => '付é‹åœ°é»ž',
+ 'Source' => '來æº',
+ 'Startdate' => '開始日期',
+ 'State/Province' => 'çœ',
+ 'Subject' => '標題',
+ 'Subtotal' => 'å°è¨ˆ',
+ 'Tax Included' => 'å·²å«ç¨…金',
+ 'Text' => '文字',
+ 'To' => '至',
+ 'Total' => '總計',
+ 'Trade Discount' => '貿易折扣',
+ 'Translation not on file!' => '沒有此翻譯的記錄ï¼',
+ 'Unit' => 'å–®ä½',
+ 'Update' => 'æ›´æ–°',
+ 'Vendor Number' => '供應商號碼',
+ 'Vendor not on file!' => '沒有此供應商的記錄ï¼',
+ 'Warning!' => '警告ï¼',
+ 'Week(s)' => '星期',
+ 'What type of item is this?' => '此項目屬於甚麼類別?',
+ 'Work Order' => '工作單',
+ 'Year(s)' => 'å¹´',
+ 'Yes' => '是',
+ 'You are posting an existing transaction!' => '您正在加入一個ç¾å­˜çš„交易ï¼',
+ 'You are printing and posting an existing transaction!' => '您正在列å°åŠåŠ å…¥ä¸€å€‹ç¾å­˜çš„交易ï¼',
+ 'You are printing and saving an existing order' => '您正在列å°åŠå„²å­˜ä¸€å¼µç¾å­˜çš„訂單ï¼',
+ 'You are printing and saving an existing quotation' => '您正在列å°åŠå„²å­˜ä¸€å¼µç¾å­˜çš„報價單ï¼',
+ 'You are saving an existing order' => '您正在儲存一張ç¾å­˜çš„訂單ï¼',
+ 'You are saving an existing quotation' => '您正在儲存一張ç¾å­˜çš„報價單ï¼',
+ 'Zip/Postal Code' => '郵政編碼',
+ 'ea' => '個',
+ 'for' => '為了',
+ 'posted!' => '已加入ï¼',
+ 'sent' => 'å·²é€å‡º',
+ 'time(s)' => '次',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ '繼續' => 'continue',
+ '刪除' => 'delete',
+ '刪除時間表' => 'delete_schedule',
+ 'é›»å­éƒµä»¶' => 'e_mail',
+ '加入' => 'post',
+ '當新的加入' => 'post_as_new',
+ '列å°' => 'print',
+ '列å°ä¸¦åŠ å…¥' => 'print_and_post',
+ '列å°ä¸¦åŠ å…¥ä½œç‚ºæ–°çš„' => 'print_and_post_as_new',
+ '銷貨單' => 'sales_order',
+ '儲存時間表' => 'save_schedule',
+ '時間表' => 'schedule',
+ '付é‹è‡³' => 'ship_to',
+ 'æ›´æ–°' => 'update',
+ '是' => 'yes',
+};
+
+1;
+
diff --git a/locale/tw_utf/jc b/locale/tw_utf/jc
new file mode 100755
index 00000000..6c8aa388
--- /dev/null
+++ b/locale/tw_utf/jc
@@ -0,0 +1,124 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => '會計é¸å–®',
+ 'Amount' => '金é¡',
+ 'Clocked' => '計算出的時間',
+ 'Closed' => '已關閉',
+ 'Confirm!' => '入帳æˆåŠŸï¼',
+ 'Continue' => '繼續',
+ 'Cost' => 'æˆæœ¬',
+ 'Current' => 'ç¾æœ‰',
+ 'Date' => '日期',
+ 'Date missing!' => '未指明日期ï¼',
+ 'Date worked' => '工作日期',
+ 'Delete' => '刪除',
+ 'Description' => '說明',
+ 'Employee' => 'è·å“¡',
+ 'Friday' => '星期五',
+ 'From' => '從',
+ 'ID' => '識別編號',
+ 'Include in Report' => '一併顯示',
+ 'Job Name' => '工作å稱',
+ 'Job Number' => '工作編號',
+ 'Job Number missing!' => '未指明工作編號ï¼',
+ 'Labor Code' => '直接人工代碼',
+ 'Monday' => '星期一',
+ 'Month' => '月',
+ 'No Employees on file!' => '沒有任何僱員的記錄ï¼',
+ 'No Labor codes on file!' => '沒有任何直接人工代碼的記錄ï¼',
+ 'No open Jobs!' => '沒有已開啟的工作',
+ 'No open Projects!' => '沒有已開啟的項目',
+ 'Notes' => '備註',
+ 'Open' => 'é–‹å•Ÿ',
+ 'PDF' => 'PDF',
+ 'Part Number' => '零件編號',
+ 'Period' => '期間',
+ 'Postscript' => 'Postscript',
+ 'Print' => '列å°',
+ 'Print and Save' => '列å°ä¸¦å„²å­˜',
+ 'Print and Save as new' => '列å°ä¸¦å„²å­˜ä½œç‚ºæ–°çš„',
+ 'Printed' => '已列å°',
+ 'Project Name' => 'é …ç›®å稱',
+ 'Project Number' => '項目號碼',
+ 'Project Number missing!' => '未指明項目號碼ï¼',
+ 'Project/Job Name' => 'é …ç›®/工作å稱',
+ 'Project/Job Number' => '項目/工作號碼',
+ 'Qty' => '數é‡',
+ 'Quarter' => 'å­£',
+ 'Saturday' => '星期六',
+ 'Save' => '儲存',
+ 'Save as new' => '當新的儲存',
+ 'Screen' => '螢幕',
+ 'Select a Printer!' => 'é¸æ“‡å°è¡¨æ©Ÿï¼',
+ 'Select postscript or PDF!' => 'é¸æ“‡postscript或PDFï¼',
+ 'Service Code' => 'æœå‹™ç·¨è™Ÿ',
+ 'Service/Labor Code' => 'æœå‹™/直接人工編號',
+ 'Startdate' => '開始日期',
+ 'Subtotal' => 'å°è¨ˆ',
+ 'Sunday' => '星期日',
+ 'Thursday' => '星期四',
+ 'Time In' => '上ç­æ™‚é–“',
+ 'Time Out' => '下ç­æ™‚é–“',
+ 'To' => '至',
+ 'Total' => '總計',
+ 'Tuesday' => '星期二',
+ 'Update' => 'æ›´æ–°',
+ 'Warning!' => '警告ï¼',
+ 'Wednesday' => '星期三',
+ 'Year' => 'å¹´',
+ 'Yes' => '是',
+ 'You are printing and saving an existing transaction!' => '您正在列å°åŠå„²å­˜ä¸€å€‹ç¾å­˜çš„交易ï¼',
+ 'You are saving an existing transaction!' => '您正在儲存一個ç¾å­˜çš„交易ï¼',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ '繼續' => 'continue',
+ '刪除' => 'delete',
+ '列å°' => 'print',
+ '列å°ä¸¦å„²å­˜' => 'print_and_save',
+ '列å°ä¸¦å„²å­˜ä½œç‚ºæ–°çš„' => 'print_and_save_as_new',
+ '儲存' => 'save',
+ '當新的儲存' => 'save_as_new',
+ 'æ›´æ–°' => 'update',
+ '是' => 'yes',
+};
+
+1;
+
diff --git a/locale/tw_utf/locales.pl b/locale/tw_utf/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/tw_utf/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/tw_utf/login b/locale/tw_utf/login
new file mode 100755
index 00000000..4b7a05e6
--- /dev/null
+++ b/locale/tw_utf/login
@@ -0,0 +1,27 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Access Denied!' => '拒絕存å–ï¼',
+ 'Company' => 'å…¬å¸',
+ 'Continue' => '繼續',
+ 'Dataset is newer than version!' => '較新資料集ï¼',
+ 'Incorrect Dataset version!' => '資料集版本錯誤ï¼',
+ 'Login' => '登入',
+ 'Name' => 'å稱',
+ 'Password' => '密碼',
+ 'Upgrading to Version' => 'æ­£å‡ç´šè‡³æ–°ç‰ˆ',
+ 'Version' => '版本',
+ 'You did not enter a name!' => '你並未éµå…¥å稱ï¼',
+ 'done' => '完æˆ',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ '登入' => 'login',
+};
+
+1;
+
diff --git a/locale/tw_utf/menu b/locale/tw_utf/menu
new file mode 100755
index 00000000..80b06a1d
--- /dev/null
+++ b/locale/tw_utf/menu
@@ -0,0 +1,139 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP' => '應付帳款',
+ 'AP Aging' => '應付帳齡分æž',
+ 'AP Transaction' => '應付交易',
+ 'AR' => '應收帳款',
+ 'AR Aging' => '應收帳齡分æž',
+ 'AR Transaction' => '應收交易',
+ 'Accounting Menu' => '會計é¸å–®',
+ 'Add Account' => '新增帳戶',
+ 'Add Assembly' => '新增製æˆå“',
+ 'Add Business' => '新增業務',
+ 'Add Customer' => '新增客戶',
+ 'Add Department' => '新增部門',
+ 'Add Employee' => '新增è·å“¡',
+ 'Add GIFI' => '新增GIFI',
+ 'Add Group' => '新增組別',
+ 'Add Labor/Overhead' => '新增直接人工/經常費用',
+ 'Add Language' => '新增語言',
+ 'Add Part' => '新增零件',
+ 'Add Pricegroup' => '新增價格組別',
+ 'Add Project' => '新增項目',
+ 'Add SIC' => '新增標準工業分類代碼',
+ 'Add Service' => '新增æœå‹™',
+ 'Add Transaction' => '新增交易',
+ 'Add Vendor' => '新增供應商',
+ 'Add Warehouse' => '新增倉庫',
+ 'All Items' => '全部項目',
+ 'Assemblies' => '製æˆå“',
+ 'Audit Control' => '審核控制',
+ 'Backup' => '備份',
+ 'Balance Sheet' => '資產負債表',
+ 'Bin List' => '箱的明細表',
+ 'Bin Lists' => '箱的明細表',
+ 'Cash' => 'ç¾é‡‘',
+ 'Chart of Accounts' => '會計科目表',
+ 'Check' => '檢查',
+ 'Components' => '零件',
+ 'Customers' => '客戶',
+ 'Defaults' => 'é è¨­',
+ 'Departments' => '部門',
+ 'Description' => '說明',
+ 'Employees' => 'è·å“¡',
+ 'General Ledger' => '總帳',
+ 'Generate' => '生æˆ',
+ 'Goods & Services' => '貨物åŠæœå‹™',
+ 'Groups' => '所有組別',
+ 'HR' => '人事管ç†',
+ 'HTML Templates' => 'HTML 模版',
+ 'History' => 'æ­·å²',
+ 'Income Statement' => 'æ益表',
+ 'Invoice' => '發票',
+ 'LaTeX Templates' => 'LaTex 模版',
+ 'Labor/Overhead' => '直接人工/經常費用',
+ 'Language' => '語言',
+ 'List Accounts' => '列出帳號',
+ 'List Businesses' => '列出業務',
+ 'List Departments' => '列出部門',
+ 'List GIFI' => '列出 GIFI',
+ 'List Languages' => '列出語言',
+ 'List Projects' => '列出項目',
+ 'List SIC' => '列出標準工業分類代碼',
+ 'List Warehouses' => '列出倉庫',
+ 'Logout' => '登出',
+ 'New Window' => '新視窗',
+ 'Non-taxable' => 'ä¸æ‡‰èª²ç¨…',
+ 'Open' => 'é–‹å•Ÿ',
+ 'Order Entry' => '下單項目',
+ 'Outstanding' => '未收款交易',
+ 'POS' => '銷售點(POS)',
+ 'POS Invoice' => 'POS發票',
+ 'Packing List' => '出貨單',
+ 'Packing Lists' => '出貨單',
+ 'Parts' => '零件',
+ 'Payment' => '付款',
+ 'Payments' => '付款',
+ 'Pick List' => 'æ€è²¨æ¸…å–®',
+ 'Pick Lists' => 'æ€è²¨æ¸…å–®',
+ 'Preferences' => '個人設定',
+ 'Pricegroups' => '所有價格組別',
+ 'Print' => '列å°',
+ 'Projects' => 'é …ç›®',
+ 'Purchase Order' => '採購單',
+ 'Purchase Orders' => '採購單',
+ 'Quotation' => '報價單',
+ 'Quotations' => '報價單',
+ 'RFQ' => '報價請求(RFQ) ',
+ 'RFQs' => '報價請求',
+ 'Receipt' => '收據',
+ 'Receipts' => '收據',
+ 'Receive' => '收到',
+ 'Reconciliation' => '調節',
+ 'Recurring Transactions' => 'é‡è¦†å‡ºç¾çš„交易',
+ 'Reports' => '報表',
+ 'SIC' => '標準工業分類代碼',
+ 'Sale' => '銷售',
+ 'Sales Invoice' => '銷售發票',
+ 'Sales Invoices' => '銷售發票',
+ 'Sales Order' => '銷貨單',
+ 'Sales Orders' => '銷貨單',
+ 'Save to File' => '儲存至檔案',
+ 'Search' => 'æœå°‹',
+ 'Send by E-Mail' => '以電å­éƒµä»¶å¯„é€',
+ 'Services' => 'æœå‹™',
+ 'Ship' => '付é‹',
+ 'Shipping' => '付é‹',
+ 'Statement' => '會計帳',
+ 'Stock Assembly' => '把製æˆå“入貨',
+ 'Stylesheet' => '樣å¼è¡¨',
+ 'System' => '系統',
+ 'Tax collected' => '已收稅金',
+ 'Tax paid' => '已付稅金',
+ 'Text Templates' => '文字模版',
+ 'Transactions' => '所有交易',
+ 'Transfer' => '轉移',
+ 'Transfer Inventory' => '轉移存貨',
+ 'Translations' => '翻譯',
+ 'Trial Balance' => '試算表',
+ 'Type of Business' => '業務種類',
+ 'Vendor Invoice' => '供應商發票',
+ 'Vendors' => '供應商',
+ 'Version' => '版本',
+ 'Warehouses' => '倉庫',
+ 'Work Order' => '工作單',
+ 'Work Orders' => '工作單',
+ 'Yearend' => 'å¹´çµ',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/tw_utf/oe b/locale/tw_utf/oe
new file mode 100755
index 00000000..890512c9
--- /dev/null
+++ b/locale/tw_utf/oe
@@ -0,0 +1,371 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => '會計é¸å–®',
+ 'Add Exchange Rate' => '新增外匯率',
+ 'Add Purchase Order' => '新增採購單',
+ 'Add Quotation' => '新增報價單',
+ 'Add Request for Quotation' => '新增報價單è¦æ±‚',
+ 'Add Sales Invoice' => '新增銷售發票',
+ 'Add Sales Order' => '新增銷貨單',
+ 'Add Vendor Invoice' => '新增供應商發票',
+ 'Address' => '地å€',
+ 'Amount' => '金é¡',
+ 'Apr' => '四月',
+ 'April' => '四月',
+ 'Are you sure you want to delete Order Number' => '您是å¦ç¢ºå®šè¦åˆªé™¤è¨‚單編號',
+ 'Are you sure you want to delete Quotation Number' => '您是å¦ç¢ºå®šè¦åˆªé™¤å ±åƒ¹å–®ç·¨è™Ÿ',
+ 'Attachment' => '附件',
+ 'Aug' => '八月',
+ 'August' => '八月',
+ 'Bcc' => 'ä¸é¡¯ç¤ºæŠ„é€',
+ 'Billing Address' => '帳單地å€',
+ 'Bin' => 'ç®±',
+ 'Bin List' => '箱的明細表',
+ 'Business' => '業務',
+ 'Cannot delete order!' => 'ä¸èƒ½åˆªé™¤å®šå–®ï¼',
+ 'Cannot delete quotation!' => 'ä¸èƒ½åˆªé™¤å ±åƒ¹å–®ï¼',
+ 'Cannot save order!' => 'ä¸èƒ½å„²å­˜å®šå–®ï¼',
+ 'Cannot save quotation!' => 'ä¸èƒ½å„²å­˜å ±åƒ¹å–®ï¼',
+ 'Cc' => '抄é€',
+ 'City' => '城市',
+ 'Closed' => '已關閉',
+ 'Company Name' => 'å…¬å¸å稱',
+ 'Confirm!' => '入帳æˆåŠŸï¼',
+ 'Contact' => '連絡人',
+ 'Continue' => '繼續',
+ 'Copies' => '副本',
+ 'Cost' => 'æˆæœ¬',
+ 'Could not save!' => 'ä¸èƒ½å„²å­˜ï¼',
+ 'Could not transfer Inventory!' => '存貨清單ä¸èƒ½è½‰ç§»ï¼',
+ 'Country' => '國家',
+ 'Credit Limit' => '信用é¡åº¦',
+ 'Curr' => 'ç›®å‰',
+ 'Currency' => '幣別',
+ 'Current' => 'ç¾æœ‰',
+ 'Customer' => '客戶',
+ 'Customer Number' => '客戶編號',
+ 'Customer missing!' => '未指明客戶ï¼',
+ 'Customer not on file!' => '沒有此客戶的記錄ï¼',
+ 'Date' => '日期',
+ 'Date Received' => '收款日期',
+ 'Date received missing!' => '未指明收款日期ï¼',
+ 'Day(s)' => 'æ—¥',
+ 'Dec' => 'å二月',
+ 'December' => 'å二月',
+ 'Delete' => '刪除',
+ 'Delete Schedule' => '刪除時間表',
+ 'Delivery Date' => '到期日',
+ 'Department' => '部門',
+ 'Description' => '說明',
+ 'Done' => '已完æˆ',
+ 'E-mail' => 'é›»å­éƒµä»¶',
+ 'E-mail address missing!' => '未指明電å­éƒµä»¶ä½å€ï¼',
+ 'E-mail message' => 'é›»å­éƒµä»¶è¨Šæ¯',
+ 'E-mailed' => '已電郵',
+ 'Edit Purchase Order' => '編輯採購單',
+ 'Edit Quotation' => '編輯報價單',
+ 'Edit Request for Quotation' => '編輯報價單è¦æ±‚',
+ 'Edit Sales Order' => '編輯銷貨單',
+ 'Employee' => 'è·å“¡',
+ 'Every' => 'æ¯',
+ 'Exchange Rate' => '匯率',
+ 'Exchange rate missing!' => '未指明匯率ï¼',
+ 'Extended' => '總價',
+ 'Fax' => '傳真',
+ 'Feb' => '二月',
+ 'February' => '二月',
+ 'For' => 'é‡è¦†',
+ 'From' => '從',
+ 'From Warehouse' => '從貨倉',
+ 'Generate Orders' => '生æˆè¨‚å–®',
+ 'Generate Purchase Orders' => '生æˆæŽ¡è³¼å–®',
+ 'Generate Purchase Orders from Sales Order' => '由銷貨單生æˆæŽ¡è³¼å–®',
+ 'Generate Sales Order' => '生æˆéŠ·è²¨å–®',
+ 'Generate Sales Order from Purchase Orders' => '由採購單生æˆéŠ·è²¨å–®',
+ 'Group' => '組別',
+ 'ID' => '識別編號',
+ 'In-line' => '行內',
+ 'Include Payment' => '包括付款',
+ 'Include in Report' => '一併顯示',
+ 'Internal Notes' => '內部備忘錄',
+ 'Inventory saved!' => '已儲存存貨ï¼',
+ 'Inventory transferred!' => '轉移的存貨ï¼',
+ 'Invoice' => '發票',
+ 'Invoice Date missing!' => '未指明發票日期ï¼',
+ 'Invoice Number missing!' => '未指明發票編號ï¼',
+ 'Item not on file!' => '沒有此項目的記錄ï¼',
+ 'Jan' => '一月',
+ 'January' => '一月',
+ 'Jul' => '七月',
+ 'July' => '七月',
+ 'Jun' => '六月',
+ 'June' => '六月',
+ 'Lead' => '交付時間',
+ 'Manager' => '經ç†',
+ 'Mar' => '三月',
+ 'March' => '三月',
+ 'May' => '五月',
+ 'May ' => '五月',
+ 'Message' => '訊æ¯',
+ 'Month' => '月',
+ 'Month(s)' => '月',
+ 'Next Date' => '下一日',
+ 'No.' => '編號',
+ 'Notes' => '備註',
+ 'Nothing entered!' => '沒有任何輸入ï¼',
+ 'Nothing selected!' => '沒有é¸æ“‡ä»»ä½•æ±è¥¿ï¼',
+ 'Nothing to transfer!' => '沒有å¯è½‰ç§»çš„é …ç›®ï¼',
+ 'Nov' => 'å一月',
+ 'November' => 'å一月',
+ 'Number' => '編號',
+ 'Number missing in Row' => '此列中缺少數值',
+ 'OH' => '已有存é‡',
+ 'Oct' => 'å月',
+ 'October' => 'å月',
+ 'Open' => 'é–‹å•Ÿ',
+ 'Order' => '訂單',
+ 'Order Date' => '下單日期',
+ 'Order Date missing!' => '未指明下單日期ï¼',
+ 'Order Number' => '訂單編號',
+ 'Order Number missing!' => '未指明訂單編號ï¼',
+ 'Order deleted!' => '已刪除訂單ï¼',
+ 'Order generation failed!' => '生æˆè¨‚單失敗ï¼',
+ 'Order saved!' => '已儲存訂單ï¼',
+ 'PDF' => 'PDF',
+ 'PO Number' => '採購單編號',
+ 'Packing List' => '出貨單',
+ 'Packing List Date missing!' => '未指明出貨單日期ï¼',
+ 'Packing List Number missing!' => '未指明出貨單編號ï¼',
+ 'Part' => '零件',
+ 'Part Number' => '零件編號',
+ 'Period' => '期間',
+ 'Phone' => '電話號碼',
+ 'Pick List' => 'æ€è²¨æ¸…å–®',
+ 'Postscript' => 'Postscript',
+ 'Price' => '價格',
+ 'Print' => '列å°',
+ 'Print and Save' => '列å°ä¸¦å„²å­˜',
+ 'Print and Save as new' => '列å°ä¸¦å„²å­˜ä½œç‚ºæ–°çš„',
+ 'Printed' => '已列å°',
+ 'Project' => 'é …ç›®',
+ 'Project not on file!' => '沒有此項目的記錄ï¼',
+ 'Purchase Order' => '採購單',
+ 'Purchase Orders' => '採購單',
+ 'Qty' => '數é‡',
+ 'Quarter' => 'å­£',
+ 'Quotation' => '報價單',
+ 'Quotation ' => '報價單 ',
+ 'Quotation Date' => '報價單日期',
+ 'Quotation Date missing!' => '未指明報價單日期ï¼',
+ 'Quotation Number' => '報價單號碼',
+ 'Quotation Number missing!' => '未指明報價單號碼ï¼',
+ 'Quotation deleted!' => '已刪除報價單ï¼',
+ 'Quotations' => '報價單',
+ 'RFQ' => '報價請求(RFQ) ',
+ 'RFQ ' => '報價請求(RFQ) ',
+ 'RFQ Number' => '報價請求號碼',
+ 'Recd' => '已收到',
+ 'Receive Merchandise' => '收到貨物',
+ 'Recurring Transaction' => 'é‡è¦†å‡ºç¾çš„交易',
+ 'Reference' => 'åƒè€ƒè³‡æ–™',
+ 'Remaining' => '尚餘',
+ 'Repeat' => 'é‡è¦†',
+ 'Req' => '需è¦',
+ 'Request for Quotation' => 'è¦æ±‚報價單',
+ 'Request for Quotations' => 'è¦æ±‚報價單',
+ 'Required by' => 'è¦æ±‚交付日期',
+ 'SKU' => '庫存單ä½',
+ 'Sales Invoice' => '銷售發票',
+ 'Sales Order' => '銷貨單',
+ 'Sales Orders' => '銷貨單',
+ 'Salesperson' => '銷售人員',
+ 'Save' => '儲存',
+ 'Save Schedule' => '儲存時間表',
+ 'Save as new' => '當新的儲存',
+ 'Schedule' => '時間表',
+ 'Scheduled' => '編排了時間',
+ 'Screen' => '螢幕',
+ 'Select Vendor' => 'é¸æ“‡ä¾›æ‡‰å•†',
+ 'Select a Printer!' => 'é¸æ“‡å°è¡¨æ©Ÿï¼',
+ 'Select from one of the names below' => '於下列姓å中é¸æ“‡ä¸€å€‹',
+ 'Select from one of the projects below' => '於下列項目中é¸æ“‡ä¸€å€‹',
+ 'Select items' => 'é¸æ“‡é …ç›®',
+ 'Select postscript or PDF!' => 'é¸æ“‡postscript或PDFï¼',
+ 'Select txt, postscript or PDF!' => 'é¸æ“‡æ–‡å­—ã€postscript或PDFï¼',
+ 'Sep' => 'ä¹æœˆ',
+ 'September' => 'ä¹æœˆ',
+ 'Serial No.' => 'åºè™Ÿ',
+ 'Service' => 'æœå‹™',
+ 'Ship' => '付é‹',
+ 'Ship Merchandise' => '付é‹è²¨ç‰©',
+ 'Ship to' => '付é‹è‡³',
+ 'Ship via' => '付é‹å…¬å¸',
+ 'Shipping Address' => '付é‹åœ°å€',
+ 'Shipping Date' => '付é‹æ—¥æœŸ',
+ 'Shipping Date missing!' => '未指明付é‹æ—¥æœŸï¼',
+ 'Shipping Point' => '付é‹åœ°é»ž',
+ 'Startdate' => '開始日期',
+ 'State/Province' => 'çœ',
+ 'Subject' => '標題',
+ 'Subtotal' => 'å°è¨ˆ',
+ 'Tax' => '稅金',
+ 'Tax Included' => 'å·²å«ç¨…金',
+ 'Terms' => '票期淨計',
+ 'Text' => '文字',
+ 'To' => '至',
+ 'To Warehouse' => '到倉庫',
+ 'Total' => '總計',
+ 'Trade Discount' => '貿易折扣',
+ 'Transfer' => '轉移',
+ 'Transfer Inventory' => '轉移存貨',
+ 'Transfer from' => '由這裡å–貨',
+ 'Transfer to' => '存貨至',
+ 'Translation not on file!' => '沒有此翻譯的記錄ï¼',
+ 'Unit' => 'å–®ä½',
+ 'Update' => 'æ›´æ–°',
+ 'Valid until' => '有效至',
+ 'Vendor' => '供應商',
+ 'Vendor Invoice' => '供應商發票',
+ 'Vendor Number' => '供應商號碼',
+ 'Vendor missing!' => '未指明供應商ï¼',
+ 'Vendor not on file!' => '沒有此供應商的記錄ï¼',
+ 'Warehouse' => '倉庫',
+ 'Warning!' => '警告ï¼',
+ 'Week(s)' => '星期',
+ 'What type of item is this?' => '此項目屬於甚麼類別?',
+ 'Work Order' => '工作單',
+ 'Year' => 'å¹´',
+ 'Year(s)' => 'å¹´',
+ 'Yes' => '是',
+ 'You are posting an existing transaction!' => '您正在加入一個ç¾å­˜çš„交易ï¼',
+ 'You are printing and posting an existing transaction!' => '您正在列å°åŠåŠ å…¥ä¸€å€‹ç¾å­˜çš„交易ï¼',
+ 'You are printing and saving an existing order' => '您正在列å°åŠå„²å­˜ä¸€å¼µç¾å­˜çš„訂單ï¼',
+ 'You are printing and saving an existing quotation' => '您正在列å°åŠå„²å­˜ä¸€å¼µç¾å­˜çš„報價單ï¼',
+ 'You are saving an existing order' => '您正在儲存一張ç¾å­˜çš„訂單ï¼',
+ 'You are saving an existing quotation' => '您正在儲存一張ç¾å­˜çš„報價單ï¼',
+ 'Zip/Postal Code' => '郵政編碼',
+ 'days' => 'æ—¥',
+ 'ea' => '個',
+ 'for' => '為了',
+ 'sent' => 'å·²é€å‡º',
+ 'time(s)' => '次',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ '繼續' => 'continue',
+ '刪除' => 'delete',
+ '刪除時間表' => 'delete_schedule',
+ '已完æˆ' => 'done',
+ 'é›»å­éƒµä»¶' => 'e_mail',
+ '生æˆè¨‚å–®' => 'generate_orders',
+ '生æˆæŽ¡è³¼å–®' => 'generate_purchase_orders',
+ '生æˆéŠ·è²¨å–®' => 'generate_sales_order',
+ '列å°' => 'print',
+ '列å°ä¸¦å„²å­˜' => 'print_and_save',
+ '列å°ä¸¦å„²å­˜ä½œç‚ºæ–°çš„' => 'print_and_save_as_new',
+ '採購單' => 'purchase_order',
+ '報價單' => 'quotation',
+ '報價單_' => 'quotation_',
+ '報價請求(rfq)_' => 'rfq',
+ '報價請求(rfq)__' => 'rfq_',
+ '銷售發票' => 'sales_invoice',
+ '銷貨單' => 'sales_order',
+ '儲存' => 'save',
+ '儲存時間表' => 'save_schedule',
+ '當新的儲存' => 'save_as_new',
+ '時間表' => 'schedule',
+ 'é¸æ“‡ä¾›æ‡‰å•†' => 'select_vendor',
+ '付é‹è‡³' => 'ship_to',
+ '轉移' => 'transfer',
+ 'æ›´æ–°' => 'update',
+ '供應商發票' => 'vendor_invoice',
+ '是' => 'yes',
+};
+
+1;
+
diff --git a/locale/tw_utf/op b/locale/tw_utf/op
new file mode 100755
index 00000000..fd2fd244
--- /dev/null
+++ b/locale/tw_utf/op
@@ -0,0 +1,149 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => '會計é¸å–®',
+ 'Add Exchange Rate' => '新增外匯率',
+ 'Add Sales Invoice' => '新增銷售發票',
+ 'Add Vendor Invoice' => '新增供應商發票',
+ 'Amount' => '總計',
+ 'Are you sure you want to delete Order Number' => '您是å¦ç¢ºå®šè¦åˆªé™¤è¨‚單編號',
+ 'Are you sure you want to delete Quotation Number' => '您是å¦ç¢ºå®šè¦åˆªé™¤å ±åƒ¹å–®ç·¨è™Ÿ',
+ 'Bin' => 'BIN',
+ 'C' => 'C',
+ 'Cannot delete order!' => 'ä¸èƒ½åˆªé™¤å®šå–®',
+ 'Cannot delete quotation!' => 'ä¸èƒ½åˆªé™¤å ±åƒ¹å–®',
+ 'Cannot save order!' => 'ä¸èƒ½å„²å­˜å®šå–®',
+ 'Cannot save quotation!' => 'ä¸èƒ½å„²å­˜å ±åƒ¹å–®',
+ 'Closed' => '已關閉',
+ 'Confirm!' => '入帳æˆåŠŸ!',
+ 'Contact' => '連絡人',
+ 'Continue' => '繼續',
+ 'Could not save!' => '無法儲存!',
+ 'Could not transfer Inventory!' => '存貨無法轉移!',
+ 'Curr' => '幣別',
+ 'Currency' => '幣別',
+ 'Current' => 'ç›®å‰',
+ 'Customer' => '客戶',
+ 'Customer missing!' => '未指明客戶',
+ 'Date' => '日期',
+ 'Date Received' => '收訖日期',
+ 'Date received missing!' => '未指明收訖日期',
+ 'Department' => '部門',
+ 'Description' => '說明',
+ 'Done' => '巳完æˆ',
+ 'E-mail' => 'é›»å­éƒµä»¶',
+ 'Employee' => 'è·å“¡',
+ 'Exchange Rate' => '匯率',
+ 'Exchange rate missing!' => '未指明匯率',
+ 'From' => '從',
+ 'Group' => '組',
+ 'ID' => '身分編號',
+ 'Include in Report' => '一併顯示',
+ 'Inventory saved!' => '存貨巳儲存',
+ 'Inventory transferred!' => '存貨已轉移',
+ 'Manager' => '經ç†',
+ 'Month' => '月',
+ 'Nothing entered!' => '無資料輸入',
+ 'Nothing to transfer!' => 'ç„¡é …ç›®å¯è½‰ç§»',
+ 'Number' => '料號',
+ 'O' => 'O',
+ 'Open' => 'é–‹å•Ÿ',
+ 'Order' => '訂單',
+ 'Order Date' => '下單日期',
+ 'Order Date missing!' => '未指明下單日期!',
+ 'Order Number' => '訂單編號',
+ 'Order Number missing!' => '未指明訂單編號!',
+ 'Order deleted!' => '巳刪除訂單',
+ 'Order saved!' => '巳儲存訂單',
+ 'Partnumber' => '料號',
+ 'Period' => '期間',
+ 'Print' => '列å°',
+ 'Purchase Order' => '採購單',
+ 'Purchase Orders' => '許多採購單',
+ 'Qty' => '數é‡',
+ 'Quarter' => 'å­£',
+ 'Quotation' => '報價單',
+ 'Quotation ' => '許多報價單',
+ 'Quotation Date missing!' => '未指明報價單日期',
+ 'Quotation Number missing!' => '未指明報價單號碼',
+ 'Quotation deleted!' => '巳刪除報價單',
+ 'Quotations' => '報價單',
+ 'RFQ ' => '報價è¦æ±‚',
+ 'Recd' => '收訖',
+ 'Receive Merchandise' => '收到貨物',
+ 'Request for Quotation' => 'è¦æ±‚報價單',
+ 'Request for Quotations' => 'è¦æ±‚許多報價單',
+ 'Required by' => '需è¦æ—¥',
+ 'SKU' => '供應商料號',
+ 'Sales Order' => '銷貨單',
+ 'Sales Orders' => '許多銷貨單',
+ 'Salesperson' => '業務員',
+ 'Select Printer or Queue!' => 'é¸æ“‡åˆ—表機或等待',
+ 'Select postscript or PDF!' => 'æ–¼PostScript或PDF中é¸ä¸€',
+ 'Serial No.' => '編號',
+ 'Ship' => '出貨數é‡',
+ 'Ship Merchandise' => 'é‹é€è²¨ç‰©',
+ 'Ship to' => 'é‹é€è‡³',
+ 'Ship via' => 'é‹é€æ–¹å¼',
+ 'Shipping Date' => 'é‹é€æ—¥æœŸ',
+ 'Shipping Date missing!' => '未指明é‹é€æ—¥æœŸ',
+ 'Shipping Point' => 'é‹é€èµ·é»ž',
+ 'Subtotal' => 'å°è¨ˆ',
+ 'Tax' => '稅金',
+ 'To' => '至',
+ 'Total' => '總計',
+ 'Transfer' => '轉移',
+ 'Transfer Inventory' => '轉移存貨',
+ 'Transfer to' => '轉移至',
+ 'Unit' => 'å–®ä½',
+ 'Update' => 'æ›´æ–°',
+ 'Vendor' => '供應商',
+ 'Vendor missing!' => '未指明供應商',
+ 'Warehouse' => '倉庫',
+ 'Year' => 'å¹´',
+ 'Yes' => '是',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'create_backorder' => 'create_backorder',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'invoice' => 'invoice',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'quotation_' => 'quotation_',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'ship_receive' => 'ship_receive',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'yes' => 'yes',
+ '繼續' => 'continue',
+ '巳完æˆ' => 'done',
+ 'é›»å­éƒµä»¶' => 'e_mail',
+ '列å°' => 'print',
+ '採購單' => 'purchase_order',
+ '報價單' => 'quotation_',
+ '報價è¦æ±‚' => 'rfq_',
+ '銷貨單' => 'sales_order',
+ 'é‹é€è‡³' => 'ship_to',
+ '轉移' => 'transfer',
+ 'æ›´æ–°' => 'update',
+ '是' => 'yes',
+};
+
+1;
diff --git a/locale/tw_utf/pe b/locale/tw_utf/pe
new file mode 100755
index 00000000..fdb98694
--- /dev/null
+++ b/locale/tw_utf/pe
@@ -0,0 +1,166 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => '會計é¸å–®',
+ 'Active' => '生效的',
+ 'Add' => '新增',
+ 'Add Group' => '新增組別',
+ 'Add Job' => '新增工作',
+ 'Add Pricegroup' => '新增價格組別',
+ 'Add Project' => '新增項目',
+ 'Address' => '地å€',
+ 'All' => '全部',
+ 'Amount' => '金é¡',
+ 'Assembly' => '製æˆå“',
+ 'Assembly stocked!' => '製æˆå“已進貨',
+ 'Bin' => 'ç®±',
+ 'Cannot stock Assembly!' => 'ä¸èƒ½æŠŠè£½æˆå“入貨ï¼',
+ 'Completed' => '完æˆäº†',
+ 'Continue' => '繼續',
+ 'Current' => 'ç¾æœ‰',
+ 'Customer' => '客戶',
+ 'Customer missing!' => '未指明客戶ï¼',
+ 'Customer not on file!' => '沒有此客戶的記錄ï¼',
+ 'Date' => '日期',
+ 'Delete' => '刪除',
+ 'Description' => '說明',
+ 'Description Translations' => '翻譯æè¿°',
+ 'Detail' => '詳情',
+ 'Edit Description Translations' => '編輯翻譯æè¿°',
+ 'Edit Group' => '編輯組別',
+ 'Edit Job' => '編輯工作',
+ 'Edit Pricegroup' => '編輯價格組別',
+ 'Edit Project' => '編輯項目',
+ 'Employee' => 'è·å“¡',
+ 'Enddate' => 'çµæŸæ—¥',
+ 'Failed to save order!' => '儲存訂單時出錯ï¼',
+ 'From' => '從',
+ 'Generate Sales Orders' => '生æˆéŠ·è²¨å–®',
+ 'Group' => '組別',
+ 'Group Translations' => '組別的翻譯',
+ 'Group deleted!' => '組別已被刪除ï¼',
+ 'Group missing!' => '未指明組別ï¼',
+ 'Group saved!' => '組別已被儲存ï¼',
+ 'Groups' => '所有組別',
+ 'Inactive' => 'éžæ´»èºçš„',
+ 'Income' => '收入',
+ 'Job' => '工作',
+ 'Job Number' => '工作編號',
+ 'Job deleted!' => '工作已被刪除ï¼',
+ 'Job saved!' => '工作已被儲存ï¼',
+ 'Jobs' => '工作',
+ 'Language' => '語言',
+ 'Languages not defined!' => 'ä¸èƒ½è¾¨èªèªžè¨€ï¼',
+ 'Link Accounts' => '連çµå¸³æˆ¶',
+ 'List Price' => '列出價',
+ 'Month' => '月',
+ 'No open Projects!' => '沒有已開啟的項目',
+ 'Notes' => '備註',
+ 'Nothing selected!' => '沒有é¸æ“‡ä»»ä½•æ±è¥¿ï¼',
+ 'Number' => '編號',
+ 'Orders generated!' => '已生æˆè¨‚å–®ï¼',
+ 'Orphaned' => '無主',
+ 'Part Number' => '零件編號',
+ 'Period' => '期間',
+ 'Pricegroup' => '價格組別',
+ 'Pricegroup deleted!' => '已刪除價格組別ï¼',
+ 'Pricegroup missing!' => '未指明價格組別ï¼',
+ 'Pricegroup saved!' => '已儲存價格組別ï¼',
+ 'Pricegroups' => '所有價格組別',
+ 'Production' => '生產',
+ 'Project' => 'é …ç›®',
+ 'Project Description Translations' => 'é …ç›®æ述的翻譯',
+ 'Project Number' => '項目號碼',
+ 'Project deleted!' => '已刪除項目ï¼',
+ 'Project saved!' => '已儲存項目ï¼',
+ 'Projects' => 'é …ç›®',
+ 'Qty' => '數é‡',
+ 'Quarter' => 'å­£',
+ 'Save' => '儲存',
+ 'Select Customer' => 'é¸æ“‡å®¢æˆ¶',
+ 'Select from one of the names below' => '於下列姓å中é¸æ“‡ä¸€å€‹',
+ 'Sell Price' => '售價',
+ 'Service Code' => 'æœå‹™ç·¨è™Ÿ',
+ 'Startdate' => '開始日期',
+ 'Summary' => '摘è¦',
+ 'Tax' => '稅金',
+ 'To' => '至',
+ 'Transaction Dates' => '交易日期',
+ 'Translation' => '翻譯',
+ 'Translation deleted!' => '已刪除翻譯ï¼',
+ 'Translations saved!' => '已儲存翻譯ï¼',
+ 'Unit' => 'å–®ä½',
+ 'Update' => 'æ›´æ–°',
+ 'Updated' => '已更新',
+ 'Vendor' => '供應商',
+ 'Vendor not on file!' => '沒有此供應商的記錄ï¼',
+ 'Weight' => 'é‡é‡',
+ 'Year' => 'å¹´',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ '新增組別' => 'add_group',
+ '新增工作' => 'add_job',
+ '新增價格組別' => 'add_pricegroup',
+ '新增項目' => 'add_project',
+ '繼續' => 'continue',
+ '刪除' => 'delete',
+ '生æˆéŠ·è²¨å–®' => 'generate_sales_orders',
+ '儲存' => 'save',
+ 'é¸æ“‡å®¢æˆ¶' => 'select_customer',
+ 'æ›´æ–°' => 'update',
+};
+
+1;
+
diff --git a/locale/tw_utf/pos b/locale/tw_utf/pos
new file mode 100755
index 00000000..a66fa777
--- /dev/null
+++ b/locale/tw_utf/pos
@@ -0,0 +1,83 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => '會計é¸å–®',
+ 'Add POS Invoice' => '新增POS發票',
+ 'Amount' => '金é¡',
+ 'Business' => '業務',
+ 'Cannot post transaction!' => 'ä¸èƒ½åŠ å…¥äº¤æ˜“ï¼',
+ 'Change' => '更改',
+ 'Continue' => '繼續',
+ 'Credit Limit' => '信用é¡åº¦',
+ 'Currency' => '幣別',
+ 'Current' => 'ç¾æœ‰',
+ 'Customer' => '客戶',
+ 'Customer missing!' => '未指明客戶ï¼',
+ 'Delete' => '刪除',
+ 'Department' => '部門',
+ 'Description' => '說明',
+ 'Edit POS Invoice' => '編輯POS',
+ 'Exchange Rate' => '匯率',
+ 'Exchange rate missing!' => '未指明匯率ï¼',
+ 'Extended' => '總價',
+ 'From' => '從',
+ 'Language' => '語言',
+ 'Memo' => '備忘錄',
+ 'Month' => '月',
+ 'Number' => '編號',
+ 'Open' => 'é–‹å•Ÿ',
+ 'Period' => '期間',
+ 'Post' => '加入',
+ 'Posted!' => '已加入ï¼',
+ 'Price' => '價格',
+ 'Print' => '列å°',
+ 'Print and Post' => '列å°ä¸¦åŠ å…¥',
+ 'Printed' => '已列å°',
+ 'Qty' => '數é‡',
+ 'Quarter' => 'å­£',
+ 'Receipts' => '收據',
+ 'Record in' => '記錄於',
+ 'Remaining' => '尚餘',
+ 'Salesperson' => '銷售人員',
+ 'Screen' => '螢幕',
+ 'Select a Printer!' => 'é¸æ“‡å°è¡¨æ©Ÿï¼',
+ 'Source' => '來æº',
+ 'Subtotal' => 'å°è¨ˆ',
+ 'Tax Included' => 'å·²å«ç¨…金',
+ 'To' => '至',
+ 'Total' => '總計',
+ 'Trade Discount' => '貿易折扣',
+ 'Unit' => 'å–®ä½',
+ 'Update' => 'æ›´æ–°',
+ 'Year' => 'å¹´',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ '繼續' => 'continue',
+ '刪除' => 'delete',
+ '加入' => 'post',
+ '列å°' => 'print',
+ '列å°ä¸¦åŠ å…¥' => 'print_and_post',
+ 'æ›´æ–°' => 'update',
+};
+
+1;
+
diff --git a/locale/tw_utf/ps b/locale/tw_utf/ps
new file mode 100755
index 00000000..01b55c81
--- /dev/null
+++ b/locale/tw_utf/ps
@@ -0,0 +1,393 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Aging' => '應付帳齡分æž',
+ 'AP Outstanding' => '應付未付',
+ 'AP Transaction' => '應付交易',
+ 'AP Transactions' => '應付交易',
+ 'AR Aging' => '應收帳齡分æž',
+ 'AR Outstanding' => '應收未收',
+ 'AR Transaction' => '應收交易',
+ 'AR Transactions' => '應收交易',
+ 'Account' => '帳戶',
+ 'Account Number' => '帳戶編號',
+ 'Accounting Menu' => '會計é¸å–®',
+ 'Accounts' => '帳戶',
+ 'Accrual' => '應計基礎',
+ 'Add AP Transaction' => '新增應付交易',
+ 'Add AR Transaction' => '新增應收交易',
+ 'Add POS Invoice' => '新增POS發票',
+ 'Add Purchase Order' => '新增採購單',
+ 'Add Quotation' => '新增報價單',
+ 'Add Request for Quotation' => '新增報價單è¦æ±‚',
+ 'Add Sales Invoice' => '新增銷售發票',
+ 'Add Sales Order' => '新增銷貨單',
+ 'Address' => '地å€',
+ 'All Accounts' => '全部帳戶',
+ 'Amount' => '金é¡',
+ 'Amount Due' => '到期金é¡',
+ 'Apr' => '四月',
+ 'April' => '四月',
+ 'Are you sure you want to delete Invoice Number' => '您是å¦ç¢ºå®šè¦åˆªé™¤ç™¼ç¥¨ç·¨è™Ÿ',
+ 'Are you sure you want to delete Transaction' => '您是å¦ç¢ºå®šè¦åˆªé™¤äº¤æ˜“',
+ 'Attachment' => '附件',
+ 'Aug' => '八月',
+ 'August' => '八月',
+ 'Balance' => '餘é¡',
+ 'Balance Sheet' => '資產負債表',
+ 'Bcc' => 'ä¸é¡¯ç¤ºæŠ„é€',
+ 'Billing Address' => '帳單地å€',
+ 'Bin' => 'ç®±',
+ 'Bin List' => '箱的明細表',
+ 'Business' => '業務',
+ 'Cannot delete invoice!' => 'ä¸èƒ½åˆªé™¤ç™¼ç¥¨ï¼',
+ 'Cannot delete transaction!' => 'ä¸èƒ½åˆªé™¤äº¤æ˜“ï¼',
+ 'Cannot post invoice for a closed period!' => 'ä¸èƒ½åœ¨å·²é—œé–‰çš„時段內加入發票ï¼',
+ 'Cannot post invoice!' => 'ä¸èƒ½åŠ å…¥ç™¼ç¥¨ï¼',
+ 'Cannot post payment for a closed period!' => 'ä¸èƒ½åœ¨å·²é—œé–‰çš„時段內加入款項ï¼',
+ 'Cannot post transaction for a closed period!' => 'ä¸èƒ½åœ¨å·²é—œé–‰çš„時段內加入交易ï¼',
+ 'Cannot post transaction!' => 'ä¸èƒ½åŠ å…¥äº¤æ˜“ï¼',
+ 'Cash' => 'ç¾é‡‘',
+ 'Cc' => '抄é€',
+ 'Change' => '更改',
+ 'Check' => '檢查',
+ 'City' => '城市',
+ 'Closed' => '已關閉',
+ 'Company Name' => 'å…¬å¸å稱',
+ 'Compare to' => 'å°ç…§',
+ 'Confirm!' => '入帳æˆåŠŸï¼',
+ 'Contact' => '連絡人',
+ 'Continue' => '繼續',
+ 'Copies' => '副本',
+ 'Country' => '國家',
+ 'Credit' => '貸方',
+ 'Credit Limit' => '信用é¡åº¦',
+ 'Curr' => 'ç›®å‰',
+ 'Currency' => '幣別',
+ 'Current' => 'ç¾æœ‰',
+ 'Current Earnings' => 'ç¾æœ‰æ”¶ç›Š',
+ 'Customer' => '客戶',
+ 'Customer Number' => '客戶編號',
+ 'Customer missing!' => '未指明客戶ï¼',
+ 'Customer not on file!' => '沒有此客戶的記錄ï¼',
+ 'Date' => '日期',
+ 'Date Paid' => '付款日期',
+ 'Day(s)' => 'æ—¥',
+ 'Debit' => '借方',
+ 'Dec' => 'å二月',
+ 'December' => 'å二月',
+ 'Decimalplaces' => 'å°æ•¸çš„ä½ç½®',
+ 'Delete' => '刪除',
+ 'Delete Schedule' => '刪除時間表',
+ 'Delivery Date' => '到期日',
+ 'Department' => '部門',
+ 'Description' => '說明',
+ 'Detail' => '詳情',
+ 'Due Date' => '到期日',
+ 'Due Date missing!' => '未指明到期日ï¼',
+ 'E-mail' => 'é›»å­éƒµä»¶',
+ 'E-mail Statement to' => '電郵會計賬到',
+ 'E-mail address missing!' => '未指明電å­éƒµä»¶ä½å€ï¼',
+ 'E-mail message' => 'é›»å­éƒµä»¶è¨Šæ¯',
+ 'E-mailed' => '已電郵',
+ 'Edit AP Transaction' => '編輯應付交易',
+ 'Edit AR Transaction' => '編輯應收交易',
+ 'Edit POS Invoice' => '編輯POS',
+ 'Edit Sales Invoice' => '編輯銷售發票',
+ 'Employee' => 'è·å“¡',
+ 'Every' => 'æ¯',
+ 'Exch' => '匯率',
+ 'Exchange Rate' => '匯率',
+ 'Exchange rate for payment missing!' => '未指明付款的匯率ï¼',
+ 'Exchange rate missing!' => '未指明匯率ï¼',
+ 'Extended' => '總價',
+ 'Fax' => '傳真',
+ 'Feb' => '二月',
+ 'February' => '二月',
+ 'For' => 'é‡è¦†',
+ 'From' => '從',
+ 'GIFI' => '財務訊æ¯é€šç”¨ç´¢å¼•(GIFI)',
+ 'Group' => '組別',
+ 'Heading' => '標題',
+ 'ID' => '識別編號',
+ 'In-line' => '行內',
+ 'Include Exchange Rate Difference' => '包å«å¤–匯差è·',
+ 'Include Payment' => '包括付款',
+ 'Include in Report' => '一併顯示',
+ 'Income Statement' => 'æ益表',
+ 'Internal Notes' => '內部備忘錄',
+ 'Invoice' => '發票',
+ 'Invoice Date' => '發票日期',
+ 'Invoice Date missing!' => '未指明發票日期ï¼',
+ 'Invoice Number' => '發票編號',
+ 'Invoice Number missing!' => '未指明發票編號ï¼',
+ 'Invoice deleted!' => '已刪除發票ï¼',
+ 'Item not on file!' => '沒有此項目的記錄ï¼',
+ 'Jan' => '一月',
+ 'January' => '一月',
+ 'Jul' => '七月',
+ 'July' => '七月',
+ 'Jun' => '六月',
+ 'June' => '六月',
+ 'Language' => '語言',
+ 'Manager' => '經ç†',
+ 'Mar' => '三月',
+ 'March' => '三月',
+ 'May' => '五月',
+ 'May ' => '五月',
+ 'Memo' => '備忘錄',
+ 'Message' => '訊æ¯',
+ 'Method' => '方法',
+ 'Month' => '月',
+ 'Month(s)' => '月',
+ 'N/A' => 'ä¸é©ç”¨',
+ 'Next Date' => '下一日',
+ 'No.' => '編號',
+ 'Non-taxable Purchases' => 'ä¸æ‡‰èª²ç¨…的採購',
+ 'Non-taxable Sales' => 'ä¸æ‡‰èª²ç¨…的銷售',
+ 'Notes' => '備註',
+ 'Nothing selected!' => '沒有é¸æ“‡ä»»ä½•æ±è¥¿ï¼',
+ 'Nothing to print!' => '沒有å¯åˆ—å°çš„é …ç›®ï¼',
+ 'Nov' => 'å一月',
+ 'November' => 'å一月',
+ 'Number' => '編號',
+ 'Number missing in Row' => '此列中缺少數值',
+ 'OH' => '已有存é‡',
+ 'Oct' => 'å月',
+ 'October' => 'å月',
+ 'Open' => 'é–‹å•Ÿ',
+ 'Order' => '訂單',
+ 'Order Date missing!' => '未指明下單日期ï¼',
+ 'Order Number' => '訂單編號',
+ 'Order Number missing!' => '未指明訂單編號ï¼',
+ 'PDF' => 'PDF',
+ 'PO Number' => '採購單編號',
+ 'Packing List' => '出貨單',
+ 'Packing List Date missing!' => '未指明出貨單日期ï¼',
+ 'Packing List Number missing!' => '未指明出貨單編號ï¼',
+ 'Paid' => '已付',
+ 'Part' => '零件',
+ 'Payment date missing!' => '未指明付款日期ï¼',
+ 'Payments' => '付款',
+ 'Period' => '期間',
+ 'Phone' => '電話號碼',
+ 'Pick List' => 'æ€è²¨æ¸…å–®',
+ 'Post' => '加入',
+ 'Post as new' => '當新的加入',
+ 'Posted!' => '已加入ï¼',
+ 'Postscript' => 'Postscript',
+ 'Price' => '價格',
+ 'Print' => '列å°',
+ 'Print and Post' => '列å°ä¸¦åŠ å…¥',
+ 'Print and Post as new' => '列å°ä¸¦åŠ å…¥ä½œç‚ºæ–°çš„',
+ 'Printed' => '已列å°',
+ 'Project' => 'é …ç›®',
+ 'Project Number' => '項目號碼',
+ 'Project Transactions' => '項目交易',
+ 'Project not on file!' => '沒有此項目的記錄ï¼',
+ 'Purchase Order' => '採購單',
+ 'Qty' => '數é‡',
+ 'Quarter' => 'å­£',
+ 'Quotation' => '報價單',
+ 'Quotation Date missing!' => '未指明報價單日期ï¼',
+ 'Quotation Number missing!' => '未指明報價單號碼ï¼',
+ 'Recd' => '已收到',
+ 'Receipt' => '收據',
+ 'Receipts' => '收據',
+ 'Record in' => '記錄於',
+ 'Recurring Transaction' => 'é‡è¦†å‡ºç¾çš„交易',
+ 'Reference' => 'åƒè€ƒè³‡æ–™',
+ 'Remaining' => '尚餘',
+ 'Repeat' => 'é‡è¦†',
+ 'Report for' => '報表來æº',
+ 'Required by' => 'è¦æ±‚交付日期',
+ 'SKU' => '庫存單ä½',
+ 'Sales Invoice.' => '銷售發票。',
+ 'Sales Order' => '銷貨單',
+ 'Salesperson' => '銷售人員',
+ 'Save Schedule' => '儲存時間表',
+ 'Schedule' => '時間表',
+ 'Scheduled' => '編排了時間',
+ 'Screen' => '螢幕',
+ 'Select a Printer!' => 'é¸æ“‡å°è¡¨æ©Ÿï¼',
+ 'Select all' => 'å…¨é¸',
+ 'Select from one of the names below' => '於下列姓å中é¸æ“‡ä¸€å€‹',
+ 'Select from one of the projects below' => '於下列項目中é¸æ“‡ä¸€å€‹',
+ 'Select items' => 'é¸æ“‡é …ç›®',
+ 'Select payment' => 'é¸æ“‡ä»˜æ¬¾',
+ 'Select postscript or PDF!' => 'é¸æ“‡postscript或PDFï¼',
+ 'Select txt, postscript or PDF!' => 'é¸æ“‡æ–‡å­—ã€postscript或PDFï¼',
+ 'Sep' => 'ä¹æœˆ',
+ 'September' => 'ä¹æœˆ',
+ 'Serial No.' => 'åºè™Ÿ',
+ 'Service' => 'æœå‹™',
+ 'Ship' => '付é‹',
+ 'Ship to' => '付é‹è‡³',
+ 'Ship via' => '付é‹å…¬å¸',
+ 'Shipping Address' => '付é‹åœ°å€',
+ 'Shipping Point' => '付é‹åœ°é»ž',
+ 'Source' => '來æº',
+ 'Standard' => '標準',
+ 'Startdate' => '開始日期',
+ 'State/Province' => 'çœ',
+ 'Statement' => '會計帳',
+ 'Statement sent to' => '會計帳已é€è‡³',
+ 'Statements sent to printer!' => '會計帳已é€è‡³å°è¡¨æ©Ÿï¼',
+ 'Subject' => '標題',
+ 'Subtotal' => 'å°è¨ˆ',
+ 'Summary' => '摘è¦',
+ 'Tax' => '稅金',
+ 'Tax Included' => 'å·²å«ç¨…金',
+ 'Tax collected' => '已收稅金',
+ 'Tax paid' => '已付稅金',
+ 'Text' => '文字',
+ 'Till' => '直到',
+ 'To' => '至',
+ 'Total' => '總計',
+ 'Trade Discount' => '貿易折扣',
+ 'Transaction' => '交易',
+ 'Transaction deleted!' => '已刪除交易ï¼',
+ 'Transaction posted!' => '已加入交易ï¼',
+ 'Translation not on file!' => '沒有此翻譯的記錄ï¼',
+ 'Trial Balance' => '試算表',
+ 'Unit' => 'å–®ä½',
+ 'Update' => 'æ›´æ–°',
+ 'Vendor' => '供應商',
+ 'Vendor Invoice.' => '供應商發票。',
+ 'Vendor Number' => '供應商號碼',
+ 'Vendor missing!' => '未指明供應商ï¼',
+ 'Vendor not on file!' => '沒有此供應商的記錄ï¼',
+ 'Warning!' => '警告ï¼',
+ 'Week(s)' => '星期',
+ 'What type of item is this?' => '此項目屬於甚麼類別?',
+ 'Work Order' => '工作單',
+ 'Year' => 'å¹´',
+ 'Year(s)' => 'å¹´',
+ 'Yes' => '是',
+ 'You are posting an existing transaction!' => '您正在加入一個ç¾å­˜çš„交易ï¼',
+ 'You are printing and posting an existing transaction!' => '您正在列å°åŠåŠ å…¥ä¸€å€‹ç¾å­˜çš„交易ï¼',
+ 'You are printing and saving an existing order' => '您正在列å°åŠå„²å­˜ä¸€å¼µç¾å­˜çš„訂單ï¼',
+ 'You are printing and saving an existing quotation' => '您正在列å°åŠå„²å­˜ä¸€å¼µç¾å­˜çš„報價單ï¼',
+ 'You are saving an existing order' => '您正在儲存一張ç¾å­˜çš„訂單ï¼',
+ 'You are saving an existing quotation' => '您正在儲存一張ç¾å­˜çš„報價單ï¼',
+ 'Zip/Postal Code' => '郵政編碼',
+ 'as at' => '截至',
+ 'ea' => '個',
+ 'for' => '為了',
+ 'for Period' => '期間',
+ 'posted!' => '已加入ï¼',
+ 'sent' => 'å·²é€å‡º',
+ 'time(s)' => '次',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ '應付交易' => 'ap_transaction',
+ '應收交易' => 'ar_transaction',
+ '繼續' => 'continue',
+ '刪除' => 'delete',
+ '刪除時間表' => 'delete_schedule',
+ 'é›»å­éƒµä»¶' => 'e_mail',
+ '加入' => 'post',
+ '當新的加入' => 'post_as_new',
+ '列å°' => 'print',
+ '列å°ä¸¦åŠ å…¥' => 'print_and_post',
+ '列å°ä¸¦åŠ å…¥ä½œç‚ºæ–°çš„' => 'print_and_post_as_new',
+ '銷售發票。' => 'sales_invoice_',
+ '銷貨單' => 'sales_order',
+ '儲存時間表' => 'save_schedule',
+ '時間表' => 'schedule',
+ 'å…¨é¸' => 'select_all',
+ '付é‹è‡³' => 'ship_to',
+ 'æ›´æ–°' => 'update',
+ '供應商發票。' => 'vendor_invoice_',
+ '是' => 'yes',
+};
+
+1;
+
diff --git a/locale/tw_utf/pw b/locale/tw_utf/pw
new file mode 100755
index 00000000..16ab032c
--- /dev/null
+++ b/locale/tw_utf/pw
@@ -0,0 +1,15 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Continue' => '繼續',
+ 'Password' => '密碼',
+ 'Session expired!' => '使用期(Session)å·²éŽï¼',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ '繼續' => 'continue',
+};
+
+1;
+
diff --git a/locale/tw_utf/rc b/locale/tw_utf/rc
new file mode 100755
index 00000000..3af1bb59
--- /dev/null
+++ b/locale/tw_utf/rc
@@ -0,0 +1,80 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => '帳戶',
+ 'Accounting Menu' => '會計é¸å–®',
+ 'Apr' => '四月',
+ 'April' => '四月',
+ 'Aug' => '八月',
+ 'August' => '八月',
+ 'Balance' => '餘é¡',
+ 'Beginning Balance' => '起始餘é¡',
+ 'Cleared' => '已清除',
+ 'Continue' => '繼續',
+ 'Credit' => '貸方',
+ 'Current' => 'ç¾æœ‰',
+ 'Date' => '日期',
+ 'Debit' => '借方',
+ 'Dec' => 'å二月',
+ 'December' => 'å二月',
+ 'Description' => '說明',
+ 'Detail' => '詳情',
+ 'Difference' => '差異',
+ 'Done' => '已完æˆ',
+ 'Feb' => '二月',
+ 'February' => '二月',
+ 'From' => '從',
+ 'Include Exchange Rate Difference' => '包å«å¤–匯差è·',
+ 'Jan' => '一月',
+ 'January' => '一月',
+ 'Jul' => '七月',
+ 'July' => '七月',
+ 'Jun' => '六月',
+ 'June' => '六月',
+ 'Mar' => '三月',
+ 'March' => '三月',
+ 'May' => '五月',
+ 'May ' => '五月',
+ 'Month' => '月',
+ 'Nov' => 'å一月',
+ 'November' => 'å一月',
+ 'Oct' => 'å月',
+ 'October' => 'å月',
+ 'Out of balance!' => 'ä¸å¹³è¡¡ï¼',
+ 'Outstanding' => '未收款交易',
+ 'Period' => '期間',
+ 'Quarter' => 'å­£',
+ 'Reconciliation' => '調節',
+ 'Reconciliation Report' => '調節報告',
+ 'Select all' => 'å…¨é¸',
+ 'Sep' => 'ä¹æœˆ',
+ 'September' => 'ä¹æœˆ',
+ 'Source' => '來æº',
+ 'Statement Balance' => '會計帳餘é¡',
+ 'Summary' => '摘è¦',
+ 'To' => '至',
+ 'Update' => 'æ›´æ–°',
+ 'Year' => 'å¹´',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ '繼續' => 'continue',
+ '已完æˆ' => 'done',
+ 'å…¨é¸' => 'select_all',
+ 'æ›´æ–°' => 'update',
+};
+
+1;
+
diff --git a/locale/tw_utf/rp b/locale/tw_utf/rp
new file mode 100755
index 00000000..23519c29
--- /dev/null
+++ b/locale/tw_utf/rp
@@ -0,0 +1,204 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Aging' => '應付帳齡分æž',
+ 'AR Aging' => '應收帳齡分æž',
+ 'Account' => '帳戶',
+ 'Account Number' => '帳戶編號',
+ 'Accounting Menu' => '會計é¸å–®',
+ 'Accounts' => '帳戶',
+ 'Accrual' => '應計基礎',
+ 'Address' => '地å€',
+ 'All Accounts' => '全部帳戶',
+ 'Amount' => '金é¡',
+ 'Apr' => '四月',
+ 'April' => '四月',
+ 'Attachment' => '附件',
+ 'Aug' => '八月',
+ 'August' => '八月',
+ 'Balance' => '餘é¡',
+ 'Balance Sheet' => '資產負債表',
+ 'Bcc' => 'ä¸é¡¯ç¤ºæŠ„é€',
+ 'Cash' => 'ç¾é‡‘',
+ 'Cc' => '抄é€',
+ 'Compare to' => 'å°ç…§',
+ 'Continue' => '繼續',
+ 'Copies' => '副本',
+ 'Credit' => '貸方',
+ 'Curr' => 'ç›®å‰',
+ 'Current' => 'ç¾æœ‰',
+ 'Current Earnings' => 'ç¾æœ‰æ”¶ç›Š',
+ 'Customer' => '客戶',
+ 'Customer not on file!' => '沒有此客戶的記錄ï¼',
+ 'Date' => '日期',
+ 'Day(s)' => 'æ—¥',
+ 'Debit' => '借方',
+ 'Dec' => 'å二月',
+ 'December' => 'å二月',
+ 'Decimalplaces' => 'å°æ•¸çš„ä½ç½®',
+ 'Delete Schedule' => '刪除時間表',
+ 'Department' => '部門',
+ 'Description' => '說明',
+ 'Detail' => '詳情',
+ 'Due Date' => '到期日',
+ 'E-mail' => 'é›»å­éƒµä»¶',
+ 'E-mail Statement to' => '電郵會計賬到',
+ 'E-mail address missing!' => '未指明電å­éƒµä»¶ä½å€ï¼',
+ 'E-mail message' => 'é›»å­éƒµä»¶è¨Šæ¯',
+ 'Every' => 'æ¯',
+ 'Feb' => '二月',
+ 'February' => '二月',
+ 'For' => 'é‡è¦†',
+ 'From' => '從',
+ 'GIFI' => '財務訊æ¯é€šç”¨ç´¢å¼•(GIFI)',
+ 'Heading' => '標題',
+ 'ID' => '識別編號',
+ 'In-line' => '行內',
+ 'Include Exchange Rate Difference' => '包å«å¤–匯差è·',
+ 'Include Payment' => '包括付款',
+ 'Include in Report' => '一併顯示',
+ 'Income Statement' => 'æ益表',
+ 'Invoice' => '發票',
+ 'Jan' => '一月',
+ 'January' => '一月',
+ 'Jul' => '七月',
+ 'July' => '七月',
+ 'Jun' => '六月',
+ 'June' => '六月',
+ 'Language' => '語言',
+ 'Mar' => '三月',
+ 'March' => '三月',
+ 'May' => '五月',
+ 'May ' => '五月',
+ 'Memo' => '備忘錄',
+ 'Message' => '訊æ¯',
+ 'Method' => '方法',
+ 'Month' => '月',
+ 'Month(s)' => '月',
+ 'N/A' => 'ä¸é©ç”¨',
+ 'Next Date' => '下一日',
+ 'Non-taxable Purchases' => 'ä¸æ‡‰èª²ç¨…的採購',
+ 'Non-taxable Sales' => 'ä¸æ‡‰èª²ç¨…的銷售',
+ 'Nothing selected!' => '沒有é¸æ“‡ä»»ä½•æ±è¥¿ï¼',
+ 'Nov' => 'å一月',
+ 'November' => 'å一月',
+ 'Number' => '編號',
+ 'Oct' => 'å月',
+ 'October' => 'å月',
+ 'Order' => '訂單',
+ 'PDF' => 'PDF',
+ 'Payments' => '付款',
+ 'Period' => '期間',
+ 'Postscript' => 'Postscript',
+ 'Print' => '列å°',
+ 'Project' => 'é …ç›®',
+ 'Project Number' => '項目號碼',
+ 'Project Transactions' => '項目交易',
+ 'Project not on file!' => '沒有此項目的記錄ï¼',
+ 'Quarter' => 'å­£',
+ 'Receipts' => '收據',
+ 'Recurring Transaction' => 'é‡è¦†å‡ºç¾çš„交易',
+ 'Reference' => 'åƒè€ƒè³‡æ–™',
+ 'Repeat' => 'é‡è¦†',
+ 'Report for' => '報表來æº',
+ 'Salesperson' => '銷售人員',
+ 'Save Schedule' => '儲存時間表',
+ 'Screen' => '螢幕',
+ 'Select all' => 'å…¨é¸',
+ 'Select from one of the names below' => '於下列姓å中é¸æ“‡ä¸€å€‹',
+ 'Select from one of the projects below' => '於下列項目中é¸æ“‡ä¸€å€‹',
+ 'Select postscript or PDF!' => 'é¸æ“‡postscript或PDFï¼',
+ 'Sep' => 'ä¹æœˆ',
+ 'September' => 'ä¹æœˆ',
+ 'Source' => '來æº',
+ 'Standard' => '標準',
+ 'Startdate' => '開始日期',
+ 'Statement' => '會計帳',
+ 'Statement sent to' => '會計帳已é€è‡³',
+ 'Statements sent to printer!' => '會計帳已é€è‡³å°è¡¨æ©Ÿï¼',
+ 'Subject' => '標題',
+ 'Subtotal' => 'å°è¨ˆ',
+ 'Summary' => '摘è¦',
+ 'Tax' => '稅金',
+ 'Tax collected' => '已收稅金',
+ 'Tax paid' => '已付稅金',
+ 'Till' => '直到',
+ 'To' => '至',
+ 'Total' => '總計',
+ 'Trial Balance' => '試算表',
+ 'Vendor' => '供應商',
+ 'Vendor not on file!' => '沒有此供應商的記錄ï¼',
+ 'Warning!' => '警告ï¼',
+ 'Week(s)' => '星期',
+ 'Year' => 'å¹´',
+ 'Year(s)' => 'å¹´',
+ 'You are posting an existing transaction!' => '您正在加入一個ç¾å­˜çš„交易ï¼',
+ 'You are printing and posting an existing transaction!' => '您正在列å°åŠåŠ å…¥ä¸€å€‹ç¾å­˜çš„交易ï¼',
+ 'You are printing and saving an existing order' => '您正在列å°åŠå„²å­˜ä¸€å¼µç¾å­˜çš„訂單ï¼',
+ 'You are printing and saving an existing quotation' => '您正在列å°åŠå„²å­˜ä¸€å¼µç¾å­˜çš„報價單ï¼',
+ 'You are saving an existing order' => '您正在儲存一張ç¾å­˜çš„訂單ï¼',
+ 'You are saving an existing quotation' => '您正在儲存一張ç¾å­˜çš„報價單ï¼',
+ 'as at' => '截至',
+ 'for' => '為了',
+ 'for Period' => '期間',
+ 'sent' => 'å·²é€å‡º',
+ 'time(s)' => '次',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ '繼續' => 'continue',
+ '刪除時間表' => 'delete_schedule',
+ 'é›»å­éƒµä»¶' => 'e_mail',
+ '列å°' => 'print',
+ '儲存時間表' => 'save_schedule',
+ 'å…¨é¸' => 'select_all',
+};
+
+1;
+
diff --git a/locale/ua/COPYING b/locale/ua/COPYING
new file mode 100755
index 00000000..e0879d88
--- /dev/null
+++ b/locale/ua/COPYING
@@ -0,0 +1,23 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2003
+#
+# Ukrainian texts:
+#
+# Author: Ivan Petrouchtchak <impe@telus.net>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/ua/LANGUAGE b/locale/ua/LANGUAGE
new file mode 100755
index 00000000..6105a5d6
--- /dev/null
+++ b/locale/ua/LANGUAGE
@@ -0,0 +1 @@
+Ukrainian (ISO-8859-5)
diff --git a/locale/ua/aa b/locale/ua/aa
new file mode 100755
index 00000000..977c2e5d
--- /dev/null
+++ b/locale/ua/aa
@@ -0,0 +1,133 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'AP Transaction' => 'ðÒÏ×ÏÄËÁ ÷ÉÔÒÁÔ',
+ 'AP Transactions' => 'ðÒÏ×ÏÄËÉ ÷ÉÔÒÁÔ',
+ 'AR Transaction' => 'ðÒÏ×ÏÄËÁ äÏÈÏĦ×',
+ 'AR Transactions' => 'ðÒÏ×ÏÄËÉ äÏÈÏĦ×',
+ 'Account' => 'òÁÈÕÎÏË',
+ 'Accounting Menu' => 'íÅÎÀ ïÂ̦ËÕ',
+ 'Amount' => 'óÕÍÁ',
+ 'Amount Due' => 'úÁÐÌÁÔÉÔÉ óÕÍÕ',
+ 'Apr' => 'ËצÔÎÑ',
+ 'April' => 'ëצÔÅÎØ',
+ 'Are you sure you want to delete Transaction' => '÷É ÐÅ×Φ, ÝÏ ÈÏÞÅÔÅ ×ÉÄÁÌÉÔÉ ÄÁÎÕ ÐÒÏ×ÏÄËÕ?',
+ 'Aug' => 'ÓÅÒÐÎÑ',
+ 'August' => 'óÅÒÐÅÎØ',
+ 'Cannot delete transaction!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÄÁÌÉÔÉ ÐÒÏ×ÏÄËÕ!',
+ 'Cannot post payment for a closed period!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÓÔÁ×ÉÔÉ ÐÌÁÔ¦Ö ÄÌÑ ÚÁËÒÉÔÏÇÏ ÐÅÒ¦ÏÄÕ!',
+ 'Cannot post transaction for a closed period!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÓÔÁ×ÉÔÉ ÐÒÏ×ÏÄËÕ ÄÌÑ ÚÁËÒÉÔÏÇÏ ÐÅÒ¦ÏÄÕ!',
+ 'Cannot post transaction!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÓÔÁ×ÉÔÉ ÐÒÏ×ÏÄËÕ!',
+ 'Check' => 'þÅË',
+ 'Closed' => 'úÁËÒÉÔÏ',
+ 'Confirm!' => 'ð¦ÄÔ×ÅÒĦÔØ!',
+ 'Continue' => 'ðÒÏÄÏ×ÖÉÔÉ',
+ 'Credit' => 'ëÒÅÄÉÔ',
+ 'Credit Limit' => 'ì¦Í¦Ô ËÒÅÄÉÔÕ',
+ 'Curr' => '÷ÁÌÀÔÁ',
+ 'Currency' => '÷ÁÌÀÔÁ',
+ 'Current' => 'ðÏÔÏÞÎÉÊ',
+ 'Customer' => 'ë̦¤ÎÔ',
+ 'Customer missing!' => 'îÅ ×ËÁÚÁÎÉÊ Ë̦¤ÎÔ!',
+ 'Date' => 'äÁÔÁ',
+ 'Date Paid' => 'äÁÔÁ ÏÐÌÁÔÉ',
+ 'Debit' => 'äÅÂÉÔ',
+ 'Dec' => 'ÇÒÕÄÎÑ',
+ 'December' => 'çÒÕÄÅÎØ',
+ 'Delete' => '÷ÉÄÁÌÉÔÉ',
+ 'Description' => 'ïÐÉÓ',
+ 'Due Date' => 'úÁÐÌÁÔÉÔÉ ÄÏ',
+ 'Due Date missing!' => 'îÅ ×ËÁÚÁÎÉÊ ÔÅÒͦΠÏÐÌÁÔÉ!',
+ 'Employee' => 'ðÒÁæ×ÎÉË',
+ 'Exch' => 'ëÕÒÓ',
+ 'Exchange Rate' => 'ëÕÒÓ ×ÁÌÀÔÉ',
+ 'Exchange rate for payment missing!' => 'îÅ ×ËÁÚÁÎÉÊ ËÕÒÓ ×ÁÌÀÔÉ ÄÌÑ ÐÌÁÔÅÖÕ!',
+ 'Exchange rate missing!' => 'îÅ ×ËÁÚÁÎÉÊ ËÕÒÓ ×ÁÌÀÔÉ!',
+ 'Feb' => 'ÌÀÔÏÇÏ',
+ 'February' => 'ìÀÔÉÊ',
+ 'From' => '÷¦Ä/ú',
+ 'ID' => '¶ÄÅÎÔÉƦËÁæÊÎÉÊ ÎÏÍÅÒ',
+ 'Include in Report' => 'äÏÄÁÔÉ ÄÏ úצÔÕ',
+ 'Invoice' => 'òÁÈÕÎÏË-ÆÁËÔÕÒÁ',
+ 'Invoice Date' => 'äÁÔÁ ×ÉÓÔÁ×ÌÅÎÎÑ',
+ 'Invoice Date missing!' => 'îÅ ×ËÁÚÁÎÁ ÄÁÔÁ ×ÉÓÔÁ×ÌÅÎÎÑ ÒÁÈÕÎËÁ-ÆÁËÔÕÒÉ',
+ 'Invoice Number' => 'îÏÍÅÒ ÒÁÈÕÎËÁ-ÆÁËÔÕÒÉ',
+ 'Jan' => 'Ó¦ÞÎÑ',
+ 'January' => 'Ó¦ÞÅÎØ',
+ 'Jul' => 'ÌÉÐÎÑ',
+ 'July' => 'ìÉÐÅÎØ',
+ 'Jun' => 'ÞÅÒ×ÎÑ',
+ 'June' => 'þÅÒ×ÅÎØ',
+ 'Mar' => 'ÂÅÒÅÚÎÑ',
+ 'March' => 'âÅÒÅÚÅÎØ',
+ 'May' => 'ÔÒÁ×ÎÑ',
+ 'May ' => 'ôÒÁ×ÅÎØ',
+ 'No.' => 'No.',
+ 'Notes' => 'ðÒÉͦÔËÉ',
+ 'Nov' => 'ÌÉÓÔÏÐÁÄÁ',
+ 'November' => 'ìÉÓÔÏÐÁÄ',
+ 'Oct' => 'ÖÏ×ÔÎÑ',
+ 'October' => 'öÏ×ÔÅÎØ',
+ 'Open' => '÷¦ÄËÒÉÔÏ',
+ 'Order' => 'úÁÍÏ×ÌÅÎÎÑ',
+ 'Order Number' => 'îÏÍÅÒ úÁÍÏ×ÌÅÎÎÑ',
+ 'Paid' => 'úÁÐÌÁÞÅÎÏ',
+ 'Payment date missing!' => 'îÅ ×ËÁÚÁÎÏ ÄÁÔÕ ðÌÁÔÅÖÕ!',
+ 'Payments' => 'ðÌÁÔÅÖ¦',
+ 'Post' => '÷ÉÓÔÁ×ÉÔÉ',
+ 'Post as new' => '÷ÉÓÔÁ×ÉÔÉ ÑË ÎÏ×ÉÊ',
+ 'Print' => 'îÁÄÒÕËÕ×ÁÔÉ',
+ 'Project' => 'ðÒÏÅËÔ',
+ 'Receipt' => 'ë×ÉÔÁÎæÑ',
+ 'Remaining' => 'úÁÌÉÛÉÌÏÓØ',
+ 'Sep' => '×ÅÒÅÓÎÑ',
+ 'September' => '÷ÅÒÅÓÅÎØ',
+ 'Ship to' => 'ðÏÓÌÁÔÉ ÄÏ',
+ 'Ship via' => 'ðÏÓÌÁÔÉ ÞÅÒÅÚ',
+ 'Source' => 'äÖÅÒÅÌÏ',
+ 'Subtotal' => 'ð¦ÄÓÕÍÏË ÐÏ ÒÏÚĦÌÕ',
+ 'Tax' => 'ðÏÄÁÔÏË',
+ 'Tax Included' => 'ðÏÄÁÔÏË ×ËÌÀÞÅÎÏ',
+ 'To' => 'äÏ',
+ 'Total' => 'úÁÇÁÌØÎÁ óÕÍÁ',
+ 'Transaction deleted!' => 'ðÒÏ×ÏÄËÁ ×ÉÄÁÌÅÎÁ',
+ 'Transaction posted!' => 'ðÒÏ×ÏÄËÁ ÚĦÊÓÎÅÎÁ',
+ 'Update' => 'ðÏÎÏ×ÉÔÉ',
+ 'Vendor' => 'ðÏÓÔÁÞÁÌØÎÉË',
+ 'Vendor missing!' => 'ðÏÓÔÁÞÁÌØÎÉË ÎÅ ¦ÓÎÕ¤',
+ 'Yes' => 'Tak',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'ðÒÏ×ÏÄËÁ_÷ÉÔÒÁÔ' => 'ap_transaction',
+ 'ðÒÏ×ÏÄËÁ_äÏÈÏĦ×' => 'ar_transaction',
+ 'ðÒÏÄÏ×ÖÉÔÉ' => 'continue',
+ '÷ÉÄÁÌÉÔÉ' => 'delete',
+ '÷ÉÓÔÁ×ÉÔÉ' => 'post',
+ '÷ÉÓÔÁ×ÉÔÉ_ÑË_ÎÏ×ÉÊ' => 'post_as_new',
+ 'îÁÄÒÕËÕ×ÁÔÉ' => 'print',
+ 'ðÏÓÌÁÔÉ_ÄÏ' => 'ship_to',
+ 'ðÏÎÏ×ÉÔÉ' => 'update',
+ 'tak' => 'yes',
+};
+
+1;
+
diff --git a/locale/ua/admin b/locale/ua/admin
new file mode 100755
index 00000000..7324eef3
--- /dev/null
+++ b/locale/ua/admin
@@ -0,0 +1,136 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'Access Control' => 'ëÏÎÔÒÏÌØ äÏÓÔÕÐÕ',
+ 'Accounting' => 'ïÂ̦Ë',
+ 'Add User' => 'îÏ×ÉÊ ËÏÒÉÓÔÕ×ÁÞ',
+ 'Address' => 'áÄÒÅÓÁ',
+ 'Administration' => 'áÄͦΦÓÔÒÕ×ÁÎÎÑ',
+ 'Administrator' => 'áÄͦΦÓÔÒÁÔÏÒ',
+ 'All Datasets up to date!' => 'âÁÚÉ äÁÎÉÈ ÎÅ ÐÏÔÒÅÂÕÀÔØ ÐÏÎÏ×ÌÅÎÎÑ!',
+ 'Cannot create Lock!' => 'Cannot create Lock!',
+ 'Change Admin Password' => 'úͦÎÉÔÉ ÐÁÒÏÌØ áÄͦΦÓÔÒÁÔÏÒÁ',
+ 'Change Password' => 'úͦÎÉÔÉ ÐÁÒÏÌØ',
+ 'Click on login name to edit!' => 'îÁÔÉÓΦÔØ ÎÁ ÎÁÚ×Õ ËÏÒÉÓÔÕ×ÁÞÁ, ÝÏ ÚÒÏÂÉÔÉ ÚͦÎÉ!',
+ 'Company' => 'ð¦ÄÐÒɤÍÓÔ×Ï',
+ 'Connect to' => 'ð¦ÄËÌÀÞÉÔÉÓØ ÄÏ',
+ 'Continue' => 'ðÒÏÄÏ×ÖÉÔÉ',
+ 'Create Chart of Accounts' => 'óÔ×ÏÒÉÔÉ ðÌÁÎ òÁÈÕÎ˦×',
+ 'Create Dataset' => 'óÔ×ÏÒÉÔÉ âÁÚÕ äÁÎÉÈ',
+ 'DBI not installed!' => 'îÅ ×ÓÔÁÎÏ×ÌÅÎÉÊ ÄÒÁÊ×ÅÒ DBI!',
+ 'Database' => 'âÁÚÁ äÁÎÉÈ',
+ 'Database Administration' => 'áÄͦΦÓÔÒÕ×ÁÎÎÑ ÂÁÚÉ ÄÁÎÉÈ',
+ 'Database Driver not checked!' => 'îÅ ÚÁÚÎÁÞÅÎÉÊ ÄÒÁÊ×ÅÒ âÁÚÉ äÁÎÉÈ (Pg)!',
+ 'Database User missing!' => 'îÅ ×ËÁÚÁÎÉÊ ëÏÒÉÓÔÕ×ÁÞ âÁÚÉ äÁÎÉÈ!',
+ 'Dataset' => 'âÁÚÁ äÁÎÉÈ',
+ 'Dataset missing!' => 'îÅ ×ËÁÚÁÎÁ âÁÚÁ äÁÎÉÈ!',
+ 'Dataset updated!' => 'âÁÚÁ äÁÎÉÈ ÐÏÎÏ×ÌÅÎÁ!',
+ 'Date Format' => 'æÏÒÍÁÔ ÄÁÔÉ',
+ 'Delete' => '÷ÉÄÁÌÉÔÉ',
+ 'Delete Dataset' => '÷ÉÄÁÌÉÔÉ âÁÚÕ äÁÎÉÈ',
+ 'Directory' => 'ëÁÔÁÌÏÇ',
+ 'Driver' => 'äÒÁÊ×ÅÒ',
+ 'Dropdown Limit' => 'ïÂÍÅÖÅÎÎÑ ÌÉÓÔÏ×ÏÇÏ ÍÅÎÀ',
+ 'E-mail' => 'åÌ. ÐÏÛÔÁ',
+ 'Edit User' => '÷¦ÄÒÅÄÁÇÕ×ÁÔÉ ëÏÒÉÓÔÕ×ÁÞÁ',
+ 'Existing Datasets' => '¶ÓÎÕÀÞ¦ âÁÚÉ äÁÎÉÈ',
+ 'Fax' => 'æÁÈ',
+ 'Host' => 'íÁÛÉÎÁ/Host',
+ 'Hostname missing!' => 'îÅ ×ËÁÚÁÎÁ ÎÁÚ×Á ÍÁÛÉÎÉ!',
+ 'Language' => 'íÏ×Á',
+ 'Lock System' => 'Lock System',
+ 'Lockfile created!' => 'Lockfile created!',
+ 'Lockfile removed!' => 'Lockfile removed!',
+ 'Login' => 'ðÏÞÁÔÏË óÅÁÎÓÕ',
+ 'Login name missing!' => 'Login name missing!',
+ 'Logout' => 'ë¦ÎÅÃØ óÅÁÎÓÕ',
+ 'Multibyte Encoding' => 'íÕÌØÔÉÂÉÔÎÅ ëÏÄÕ×ÁÎÎÑ',
+ 'Name' => 'îÁÚ×Á',
+ 'New Templates' => 'îÏצ ûÁÂÌÏÎÉ',
+ 'No Database Drivers available!' => 'îÅÄÏÓÔÕÐÎÉÊ ÄÒÁÊ×ÅÒ âÁÚÉ äÁÎÉÈ!',
+ 'No Dataset selected!' => 'îÅ ÐÏÚÎÁÞÅÎÏ ×ÉÂÒÁÎÕ âÁÚÕ äÁÎÉÈ!',
+ 'Nothing to delete!' => 'îÅÍÁ ÝÏ ×ÉÄÁÌÉÔÉ!',
+ 'Number Format' => 'æÏÒÍÁÔ þÉÓÌÁ',
+ 'Oracle Database Administration' => 'áÄͦΦÓÔÒÁÃ¦Ñ âÁÚÉ äÁÎÉÈ Oracle',
+ 'Password' => 'ðÁÒÏÌØ',
+ 'Password changed!' => 'ðÁÒÏÌØ ÚͦÎÅÎÏ!',
+ 'Pg Database Administration' => 'áÄͦΦÓÔÒÁÃ¦Ñ âÁÚÉ äÁÎÉÈ Pg',
+ 'PgPP Database Administration' => 'PgPP Database Administration',
+ 'Phone' => 'ôÅÌ.',
+ 'Port' => 'ðÏÒÔ',
+ 'Port missing!' => 'ðÏÒÔ ÎÅ ×ËÁÚÁÎÏ!',
+ 'Printer' => 'ðÒÉÎÔÅÒ',
+ 'Save' => 'úÂÅÒÅÇÔÉ',
+ 'Setup Templates' => 'îÁÌÁÛÔÕ×ÁÔÉ ûÁÂÌÏÎÉ',
+ 'Signature' => 'ð¦ÄÐÉÓ',
+ 'Stylesheet' => 'ïÆÏÒÍÌÅÎÎÎÑ',
+ 'Templates' => 'ûÁÂÌÏÎÉ',
+ 'The following Datasets are not in use and can be deleted' => 'îÁÓÔÕÐΦ âÁÚÉ äÁÎÉÈ ÎÅ ×ÉËÏÒÉÓÔÏ×ÕÀÔØÓÑ ¦ ÍÏÖÕÔØ ÂÕÔÉ ×ÉÄÁÌÅΦ',
+ 'The following Datasets need to be updated' => 'îÁÓÔÕÐΦ âÁÚÉ äÁÎÉÈ ÐÏ×ÉÎΦ ÂÕÔÉ ÐÏÎÏ×ÌÅΦ',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'ðÏÐÅÒÅÄÎÑ ÐÅÒÅצÒËÁ ¦ÓÎÕÀÞÉÈ ÄÖÅÒÅÌ. ðÏËÉ ÝÏ Î¦ÞÏÇÏ ÎÅ ÂÕÄÅ ÓÔ×ÏÒÅÎÏ ÁÂÏ ×ÉÄÁÌÅÎÏ!',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'ýÏ ÄÏÄÁÔÉ ËÏÒÉÓÔÕ×ÁÞÁ ÄÏ ÇÒÕÐÉ, ÔÒÅÂÁ ÐÏͦÎÑÔÉ ¦ÍÑ, login/××ÏÄÎÅ ¦ÍÑ ¦ ÚÂÅÒÅÇÔÉ. îÏ×ÉÊ ËÏÒÉÓÔÕ×ÁÞÁ ¦Ú ÏÄÎÁËÏ×ÉÍÉ ÐÁÒÁÍÅÔÒÁÍÉ ÂÕÄÅ ÚÂÅÒÅÖÅÎÏ Ð¦Ä ÎÏ×ÉÍ login/××ÏÄÎÉÍ ¦ÍÑÍ.',
+ 'Unlock System' => 'Unlock System',
+ 'Update Dataset' => 'ðÏÎÏ×ÉÔÉ âÁÚÕ äÁÎÉÈ',
+ 'Use Templates' => '÷ÉËÏÒÉÓÔÏ×Õ×ÁÔÉ ûÁÂÌÏÎÉ',
+ 'User' => 'ëÏÒÉÓÔÕ×ÁÞ',
+ 'User deleted!' => 'ëÏÒÉÓÔÕ×ÁÞ ÷ÉÄÁÌÅÎÉÊ',
+ 'User saved!' => 'ëÏÒÉÓÔÕ×ÁÞ ÚÂÅÒÅÖÅÎÉÊ',
+ 'Version' => '÷ÅÒÓ¦Ñ',
+ 'does not exist' => 'ÎÅ ¦ÓÎÕ¤',
+ 'is already a member!' => '×ÖÅ ¤ ÞÌÅÎÏÍ',
+ 'localhost' => 'localhost',
+ 'successfully created!' => 'ÕÓЦÛÎÏ ÓÔ×ÏÒÅÎÏ',
+ 'successfully deleted!' => 'ÕÓЦÛÎÏ ×ÉÄÁÌÅÎÏ',
+ 'website' => '×ÅÂ-ÓÔÏÒ¦ÎËÁ',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'îÏ×ÉÊ_ËÏÒÉÓÔÕ×ÁÞ' => 'add_user',
+ 'úͦÎÉÔÉ_ÐÁÒÏÌØ_áÄͦΦÓÔÒÁÔÏÒÁ' => 'change_admin_password',
+ 'úͦÎÉÔÉ_ÐÁÒÏÌØ' => 'change_password',
+ 'ðÒÏÄÏ×ÖÉÔÉ' => 'continue',
+ 'óÔ×ÏÒÉÔÉ_âÁÚÕ_äÁÎÉÈ' => 'create_dataset',
+ '÷ÉÄÁÌÉÔÉ' => 'delete',
+ '÷ÉÄÁÌÉÔÉ_âÁÚÕ_äÁÎÉÈ' => 'delete_dataset',
+ 'lock_system' => 'lock_system',
+ 'ðÏÞÁÔÏË_óÅÁÎÓÕ' => 'login',
+ 'ë¦ÎÅÃØ_óÅÁÎÓÕ' => 'logout',
+ 'áÄͦΦÓÔÒÁæÑ_âÁÚÉ_äÁÎÉÈ_oracle' => 'oracle_database_administration',
+ 'áÄͦΦÓÔÒÁæÑ_âÁÚÉ_äÁÎÉÈ_pg' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'úÂÅÒÅÇÔÉ' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'ðÏÎÏ×ÉÔÉ_âÁÚÕ_äÁÎÉÈ' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/ua/all b/locale/ua/all
new file mode 100755
index 00000000..ecd2ec55
--- /dev/null
+++ b/locale/ua/all
@@ -0,0 +1,892 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+$self{charset} = 'ISO-8859-5';
+
+
+$self{texts} = {
+ 'A' => '',
+ 'AP' => '÷ÉÔÒÁÔÉ',
+ 'AP Aging' => 'AP Aging (×ÉÔÒÁÔÉ)',
+ 'AP Outstanding' => '',
+ 'AP Transaction' => 'ðÒÏ×ÏÄËÁ ÷ÉÔÒÁÔ',
+ 'AP Transactions' => 'ðÒÏ×ÏÄËÉ ÷ÉÔÒÁÔ',
+ 'AR' => 'äÏÈÏÄÉ',
+ 'AR Aging' => 'AR Aging (ÄÏÈÏÄÉ)',
+ 'AR Outstanding' => '',
+ 'AR Transaction' => 'ðÒÏ×ÏÄËÁ äÏÈÏĦ×',
+ 'AR Transactions' => 'ðÒÏ×ÏÄËÉ äÏÈÏĦ×',
+ 'AR/AP' => '',
+ 'About' => 'ðÒÏ ÐÒÏÇÒÁÍÕ',
+ 'Above' => '',
+ 'Access Control' => 'ëÏÎÔÒÏÌØ äÏÓÔÕÐÕ',
+ 'Access Denied!' => '',
+ 'Account' => 'òÁÈÕÎÏË',
+ 'Account Number' => 'îÏÍÅÒ òÁÈÕÎËÕ',
+ 'Account Number missing!' => 'îÅ ×ËÁÚÁÎÉÊ ÎÏÍÅÒ ÒÁÈÕÎËÕ!',
+ 'Account Type' => '÷ÉÄ ÒÁÈÕÎËÕ',
+ 'Account Type missing!' => 'îÅ ×ËÁÚÁÎÉÊ ×ÉÄ ÒÁÈÕÎËÕ!',
+ 'Account deleted!' => 'òÁÈÕÎÏË ×ÉÄÁÌÅÎÉÊ',
+ 'Account does not exist!' => '',
+ 'Account saved!' => 'òÁÈÕÎÏË ÚÂÅÒÅÖÅÎÏ',
+ 'Accounting' => 'ïÂ̦Ë',
+ 'Accounting Menu' => 'íÅÎÀ ïÂ̦ËÕ',
+ 'Accounts' => 'òÁÈÕÎËÉ',
+ 'Accrual' => '',
+ 'Activate Audit trail' => '',
+ 'Active' => 'áËÔÉ×ÎÉÊ',
+ 'Add' => 'îÏ×ÉÊ',
+ 'Add AP Transaction' => '',
+ 'Add AR Transaction' => '',
+ 'Add Account' => 'îÏ×ÉÊ ÒÁÈÕÎÏË',
+ 'Add Assembly' => 'îÏ×ÙÊ ËÏÍÐÌÅËÔ',
+ 'Add Business' => '',
+ 'Add Cash Transfer Transaction' => '',
+ 'Add Customer' => 'îÏ×ÉÊ Ë̦¤ÎÔ',
+ 'Add Deduction' => '',
+ 'Add Department' => '',
+ 'Add Employee' => '',
+ 'Add Exchange Rate' => '',
+ 'Add GIFI' => 'îÏ×ÉÊ GIFI',
+ 'Add General Ledger Transaction' => 'îÏ×Á ÐÒÏ×ÏÄËÁ',
+ 'Add Group' => '',
+ 'Add Job' => '',
+ 'Add Labor/Overhead' => '',
+ 'Add Language' => '',
+ 'Add POS Invoice' => '',
+ 'Add Part' => 'îÏ×ÉÊ ôÏ×ÁÒ',
+ 'Add Pricegroup' => '',
+ 'Add Project' => 'îÏ×ÉÊ ðÒÏÅËÔ',
+ 'Add Purchase Order' => 'îÏ×Å ÚÁÍÏ×ÌÅÎÎÑ ÎÁ ËÕЦ×ÌÀ',
+ 'Add Quotation' => '',
+ 'Add Request for Quotation' => '',
+ 'Add SIC' => '',
+ 'Add Sales Invoice' => 'îÏ×ÉÊ òÁÈÕÎÏ-ÆÁËÔÕÒÁ',
+ 'Add Sales Order' => 'îÏ×Å ÚÁÍÏ×ÌÅÎÎÑ ÎÁ ÐÒÏÄÁÖ',
+ 'Add Service' => 'îÏ×Á ÐÏÓÌÕÇÁ',
+ 'Add Timecard' => '',
+ 'Add Transaction' => 'îÏ×Á ÐÒÏ×ÏÄËÁ',
+ 'Add User' => 'îÏ×ÉÊ ËÏÒÉÓÔÕ×ÁÞ',
+ 'Add Vendor' => 'îÏ×ÉÊ ÐÏÓÔÁÞÁÌØÎÉË',
+ 'Add Vendor Invoice' => 'îÏ×ÉÊ ëÕЦ×ÅÌØÎÉÊ òÁÈÕÎÏË-ÆÁËÔÕÒÁ',
+ 'Add Warehouse' => '',
+ 'Address' => 'áÄÒÅÓÁ',
+ 'Administration' => 'áÄͦΦÓÔÒÕ×ÁÎÎÑ',
+ 'Administrator' => 'áÄͦΦÓÔÒÁÔÏÒ',
+ 'After Deduction' => '',
+ 'All' => '÷Ó¦',
+ 'All Accounts' => '',
+ 'All Datasets up to date!' => 'âÁÚÉ äÁÎÉÈ ÎÅ ÐÏÔÒÅÂÕÀÔØ ÐÏÎÏ×ÌÅÎÎÑ!',
+ 'All Items' => '',
+ 'Allowances' => '',
+ 'Amount' => 'óÕÍÁ',
+ 'Amount Due' => 'úÁÐÌÁÔÉÔÉ óÕÍÕ',
+ 'Amount missing!' => '',
+ 'Apr' => 'ËצÔÎÑ',
+ 'April' => 'ëצÔÅÎØ',
+ 'Are you sure you want to delete Invoice Number' => '÷É ÐÅ×Φ, ÝÏ ÈÏÞÅÔÅ ×ÉÄÁÌÉÔÉ ÄÁÎÉÊ ÒÁÈÕÎÏË?',
+ 'Are you sure you want to delete Order Number' => '÷É ÐÅ×Φ, ÝÏ ÈÏÞÅÔÅ ×ÉÄÁÌÉÔÉ ÄÁÎÅ ÚÁÍÏ×ÌÅÎÎÑ?',
+ 'Are you sure you want to delete Quotation Number' => '',
+ 'Are you sure you want to delete Timecard for' => '',
+ 'Are you sure you want to delete Transaction' => '÷É ÐÅ×Φ, ÝÏ ÈÏÞÅÔÅ ×ÉÄÁÌÉÔÉ ÄÁÎÕ ÐÒÏ×ÏÄËÕ?',
+ 'Are you sure you want to remove the marked entries from the queue?' => '',
+ 'Assemblies' => 'ëÏÍÐÌÅËÔÉ',
+ 'Assemblies restocked!' => 'ëÏÍÐÌÅËÔÉ ¦Î×ÅÎÔÁÒÉÚÏ×ÁΦ!',
+ 'Assembly' => '',
+ 'Assembly stocked!' => '',
+ 'Asset' => 'áËÔÉ×',
+ 'Attachment' => 'äÏÄÁÔÏË',
+ 'Audit Control' => 'ëÏÎÔÒÏÌØ',
+ 'Audit trail disabled' => '',
+ 'Audit trail enabled' => '',
+ 'Audit trail removed up to' => '',
+ 'Aug' => 'ÓÅÒÐÎÑ',
+ 'August' => 'óÅÒÐÅÎØ',
+ 'Average Cost' => '',
+ 'Avg Cost' => '',
+ 'BIC' => '',
+ 'BOM' => 'BOM',
+ 'Backup' => 'òÅÚÅÒ×ÎÁ ËÏЦÑ',
+ 'Backup sent to' => 'òÅÚÅÒ×ÎÁ ËÏÐ¦Ñ ÐÏÓÌÁÎÁ ÄÏ',
+ 'Balance' => 'âÁÌÁÎÓ',
+ 'Balance Sheet' => 'âÁÌÁÎÓ',
+ 'Based on' => '',
+ 'Bcc' => 'ðÒÉ×ÁÔÎÁ ËÏÐ¦Ñ ÄÏ',
+ 'Before Deduction' => '',
+ 'Beginning Balance' => '',
+ 'Below' => '',
+ 'Billing Address' => '',
+ 'Bin' => 'Bin',
+ 'Bin List' => '',
+ 'Bin Lists' => '',
+ 'Books are open' => 'ëÎÉÇÁ צÄËÒÉÔÁ',
+ 'Break' => '',
+ 'Business' => '',
+ 'Business Number' => 'â¦ÚÎÅÓ-ÎÏÍÅÒ',
+ 'Business deleted!' => '',
+ 'Business saved!' => '',
+ 'C' => 'ó',
+ 'COGS' => 'COGS',
+ 'COGS account does not exist!' => '',
+ 'Cannot add timecard for a completed job!' => '',
+ 'Cannot change timecard for a completed job!' => '',
+ 'Cannot create Assembly' => '',
+ 'Cannot create Labor' => '',
+ 'Cannot create Lock!' => 'Cannot create Lock!',
+ 'Cannot create Part' => '',
+ 'Cannot create Service' => '',
+ 'Cannot delete Timecard!' => '',
+ 'Cannot delete account!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÄÁÌÉÔÉ ÒÁÈÕÎÏË',
+ 'Cannot delete customer!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÄÁÌÉÔÉ Ë̦¤ÎÔÁ',
+ 'Cannot delete default account!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÄÁÌÉÔÉ ÏÓÎÏ×ÎÉÊ ÒÁÈÕÎÏË!',
+ 'Cannot delete invoice!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÄÁÌÉÔÉ ÒÁÈÕÎÏË-ÆÁËÔÕÒÕ',
+ 'Cannot delete item!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÄÁÌÉÔÉ ÃÅÊ ÅÌÅÍÅÎÔ',
+ 'Cannot delete order!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÄÁÌÉÔÉ ÚÁÍÏ×ÌÅÎÎÑ!',
+ 'Cannot delete quotation!' => '',
+ 'Cannot delete transaction!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÄÁÌÉÔÉ ÐÒÏ×ÏÄËÕ!',
+ 'Cannot delete vendor!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÄÁÌÉÔÉ ÐÏÓÔÁÞÁÌØÎÉËÁ!',
+ 'Cannot post Payment!' => '',
+ 'Cannot post Receipt!' => '',
+ 'Cannot post invoice for a closed period!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÓÔÁ×ÉÔÉ ÒÁÈÕÎÏË-ÆÁËÔÕÒÕ ÄÌÑ ÚÁËÒÉÔÏÇÏ ÐÅÒ¦ÏÄÕ!',
+ 'Cannot post invoice!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÓÔÁ×ÉÔÉ ÒÁÈÕÎÏË-ÆÁËÔÕÒÕ!',
+ 'Cannot post payment for a closed period!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÓÔÁ×ÉÔÉ ÐÌÁÔ¦Ö ÄÌÑ ÚÁËÒÉÔÏÇÏ ÐÅÒ¦ÏÄÕ!',
+ 'Cannot post transaction for a closed period!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÓÔÁ×ÉÔÉ ÐÒÏ×ÏÄËÕ ÄÌÑ ÚÁËÒÉÔÏÇÏ ÐÅÒ¦ÏÄÕ!',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => '',
+ 'Cannot post transaction!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÓÔÁ×ÉÔÉ ÐÒÏ×ÏÄËÕ!',
+ 'Cannot remove files!' => '',
+ 'Cannot save account!' => 'îÅ ÍÏÖÌÉ×Ï ÚÂÅÒÅÇÔÉ ÒÁÈÕÎÏË!',
+ 'Cannot save defaults!' => '',
+ 'Cannot save order!' => 'îÅ ÍÏÖÌÉ×Ï ÚÂÅÒÅÇÔÉ ÚÁÍÏ×ÌÅÎÎÑ!',
+ 'Cannot save preferences!' => 'îÅ ÍÏÖÌÉ×Ï ÚÂÅÒÅÇÔÉ ÎÁÓÔÒÏÊËÉ!',
+ 'Cannot save quotation!' => '',
+ 'Cannot save timecard for a closed period!' => '',
+ 'Cannot save timecard!' => '',
+ 'Cannot set account for more than one of AR, AP or IC' => '',
+ 'Cannot set multiple options for' => '',
+ 'Cannot set multiple options for Item' => '',
+ 'Cannot stock Assembly!' => '',
+ 'Cannot stock assemblies!' => 'îÅ ÍÏÖÌÉ×Ï ¦Î×ÅÎÔÁÒÉÚÕ×ÁÔÉ ËÏÍÐÌÅËÔÉ!',
+ 'Cash' => 'çÏÔ¦×ËÁ',
+ 'Cc' => 'ëÏÐ¦Ñ ÄÏ',
+ 'Change' => '',
+ 'Change Admin Password' => 'úͦÎÉÔÉ ÐÁÒÏÌØ áÄͦΦÓÔÒÁÔÏÒÁ',
+ 'Change Password' => 'úͦÎÉÔÉ ÐÁÒÏÌØ',
+ 'Charge' => '',
+ 'Chart of Accounts' => 'ðÌÁÎ òÁÈÕÎ˦×',
+ 'Check' => 'þÅË',
+ 'Check Inventory' => '',
+ 'Checks' => '',
+ 'City' => '',
+ 'Cleared' => '',
+ 'Click on login name to edit!' => 'îÁÔÉÓΦÔØ ÎÁ ÎÁÚ×Õ ËÏÒÉÓÔÕ×ÁÞÁ, ÝÏ ÚÒÏÂÉÔÉ ÚͦÎÉ!',
+ 'Clocked' => '',
+ 'Close Books up to' => 'úÁËÒÉÔÉ ëÎÉÇÉ ÄÏ',
+ 'Closed' => 'úÁËÒÉÔÏ',
+ 'Code' => '',
+ 'Code missing!' => '',
+ 'Company' => 'ð¦ÄÐÒɤÍÓÔ×Ï',
+ 'Company Name' => '',
+ 'Compare to' => 'ðÏÒ¦×ÎÑÔÉ Ú',
+ 'Completed' => '',
+ 'Components' => '',
+ 'Confirm' => '',
+ 'Confirm!' => 'ð¦ÄÔ×ÅÒĦÔØ!',
+ 'Connect to' => 'ð¦ÄËÌÀÞÉÔÉÓØ ÄÏ',
+ 'Contact' => 'ëÏÎÔÁËÔÎÁ ÏÓÏÂÁ',
+ 'Continue' => 'ðÒÏÄÏ×ÖÉÔÉ',
+ 'Contra' => '',
+ 'Copies' => 'ëÏЦÊ',
+ 'Copy to COA' => 'óËÏЦÀ×ÁÔÉ ÄÏ ðÌÁÎÕ òÁÈÕÎ˦×',
+ 'Cost' => '',
+ 'Cost Center' => '',
+ 'Could not save pricelist!' => '',
+ 'Could not save!' => '',
+ 'Could not transfer Inventory!' => '',
+ 'Country' => '',
+ 'Create Chart of Accounts' => 'óÔ×ÏÒÉÔÉ ðÌÁÎ òÁÈÕÎ˦×',
+ 'Create Dataset' => 'óÔ×ÏÒÉÔÉ âÁÚÕ äÁÎÉÈ',
+ 'Credit' => 'ëÒÅÄÉÔ',
+ 'Credit Limit' => 'ì¦Í¦Ô ËÒÅÄÉÔÕ',
+ 'Curr' => '÷ÁÌÀÔÁ',
+ 'Currency' => '÷ÁÌÀÔÁ',
+ 'Current' => 'ðÏÔÏÞÎÉÊ',
+ 'Current Earnings' => '',
+ 'Customer' => 'ë̦¤ÎÔ',
+ 'Customer History' => '',
+ 'Customer Number' => '',
+ 'Customer deleted!' => 'ë̦¤ÎÔÁ ×ÉÄÁÌÅÎÏ!',
+ 'Customer missing!' => 'îÅ ×ËÁÚÁÎÉÊ Ë̦¤ÎÔ!',
+ 'Customer not on file!' => 'ë̦¤ÎÔÁ ÎÅÍÁ × ÓÐÉÓËÕ!',
+ 'Customer saved!' => 'ë̦¤ÎÔÁ ÚÂÅÒÅÖÅÎÏ!',
+ 'Customers' => 'ë̦¤ÎÔÉ',
+ 'DBI not installed!' => 'îÅ ×ÓÔÁÎÏ×ÌÅÎÉÊ ÄÒÁÊ×ÅÒ DBI!',
+ 'DOB' => '',
+ 'Database' => 'âÁÚÁ äÁÎÉÈ',
+ 'Database Administration' => 'áÄͦΦÓÔÒÕ×ÁÎÎÑ ÂÁÚÉ ÄÁÎÉÈ',
+ 'Database Driver not checked!' => 'îÅ ÚÁÚÎÁÞÅÎÉÊ ÄÒÁÊ×ÅÒ âÁÚÉ äÁÎÉÈ (Pg)!',
+ 'Database Host' => 'íÁÛÉÎÁ âÁÚÉ äÁÎÉÈ',
+ 'Database User missing!' => 'îÅ ×ËÁÚÁÎÉÊ ëÏÒÉÓÔÕ×ÁÞ âÁÚÉ äÁÎÉÈ!',
+ 'Dataset' => 'âÁÚÁ äÁÎÉÈ',
+ 'Dataset is newer than version!' => '',
+ 'Dataset missing!' => 'îÅ ×ËÁÚÁÎÁ âÁÚÁ äÁÎÉÈ!',
+ 'Dataset updated!' => 'âÁÚÁ äÁÎÉÈ ÐÏÎÏ×ÌÅÎÁ!',
+ 'Date' => 'äÁÔÁ',
+ 'Date Format' => 'æÏÒÍÁÔ ÄÁÔÉ',
+ 'Date Paid' => 'äÁÔÁ ÏÐÌÁÔÉ',
+ 'Date Received' => '',
+ 'Date missing!' => 'îÅ ×ËÁÚÁÎÁ ÄÁÔÁ!',
+ 'Date received missing!' => '',
+ 'Date worked' => '',
+ 'Day' => '',
+ 'Day(s)' => '',
+ 'Days' => '',
+ 'Debit' => 'äÅÂÉÔ',
+ 'Dec' => 'ÇÒÕÄÎÑ',
+ 'December' => 'çÒÕÄÅÎØ',
+ 'Decimalplaces' => 'äÅÓÑÔÉÞΦ ͦÓÃÑ',
+ 'Decrease' => '',
+ 'Deduct after' => '',
+ 'Deduction deleted!' => '',
+ 'Deduction saved!' => '',
+ 'Deductions' => '',
+ 'Default Template' => '',
+ 'Defaults' => '',
+ 'Defaults saved!' => '',
+ 'Delete' => '÷ÉÄÁÌÉÔÉ',
+ 'Delete Account' => '÷ÉÄÁÌÉÔÉ ÒÁÈÕÎÏË',
+ 'Delete Dataset' => '÷ÉÄÁÌÉÔÉ âÁÚÕ äÁÎÉÈ',
+ 'Delete Schedule' => '',
+ 'Deleting a language will also delete the templates for the language' => '',
+ 'Delivery Date' => 'äÁÔÁ ÄÏÓÔÁ×ËÉ',
+ 'Department' => '',
+ 'Department deleted!' => '',
+ 'Department saved!' => '',
+ 'Departments' => '',
+ 'Deposit' => 'äÅÐÏÚÉÔ/÷ËÌÁÄ',
+ 'Description' => 'ïÐÉÓ',
+ 'Description Translations' => '',
+ 'Description missing!' => '',
+ 'Detail' => '',
+ 'Difference' => 'ò¦ÚÎÉÃÑ',
+ 'Directory' => 'ëÁÔÁÌÏÇ',
+ 'Discount' => 'óËÉÄËÁ',
+ 'Done' => 'úÒÏÂÌÅÎÏ',
+ 'Drawing' => 'íÁÌÀÎÏË',
+ 'Driver' => 'äÒÁÊ×ÅÒ',
+ 'Dropdown Limit' => 'ïÂÍÅÖÅÎÎÑ ÌÉÓÔÏ×ÏÇÏ ÍÅÎÀ',
+ 'Due Date' => 'úÁÐÌÁÔÉÔÉ ÄÏ',
+ 'Due Date missing!' => 'îÅ ×ËÁÚÁÎÉÊ ÔÅÒͦΠÏÐÌÁÔÉ!',
+ 'E-mail' => 'åÌ. ÐÏÛÔÁ',
+ 'E-mail Statement to' => 'ðÏÓÌÁÔÉ ÐÏ ÅÌ. ÐÏÛÔ¦ ÄÏ',
+ 'E-mail address missing!' => 'îÅ ×ËÁÚÁÎÁ ÁÄÒÅÓÁ ÅÌ. ÐÏÛÔÉ!',
+ 'E-mail message' => '',
+ 'E-mailed' => '',
+ 'Edit' => '÷¦ÄÒÅÄÁÇÕ×ÁÔÉ',
+ 'Edit AP Transaction' => '',
+ 'Edit AR Transaction' => '',
+ 'Edit Account' => '÷¦ÄÒÅÄÁÇÕ×ÁÔÉ òÁÈÕÎÏË',
+ 'Edit Assembly' => '÷¦ÄÒÅÄÁÇÕ×ÁÔÉ ËÏÍÐÌÅËÔ',
+ 'Edit Business' => '',
+ 'Edit Cash Transfer Transaction' => '',
+ 'Edit Customer' => '÷¦ÄÒÅÄÁÇÕ×ÁÔÉ ë̦¤ÎÔÁ',
+ 'Edit Deduction' => '',
+ 'Edit Department' => '',
+ 'Edit Description Translations' => '',
+ 'Edit Employee' => '',
+ 'Edit GIFI' => '÷¦ÄÒÅÄÁÇÕ×ÁÔÉ GIFI',
+ 'Edit General Ledger Transaction' => '÷¦ÄÒÅÄÁÇÕ×ÁÔÉ ðÒÏ×ÏÄËÕ çÏÌÏ×Îϧ ëÎÉÇÉ',
+ 'Edit Group' => '',
+ 'Edit Job' => '',
+ 'Edit Labor/Overhead' => '',
+ 'Edit Language' => '',
+ 'Edit POS Invoice' => '',
+ 'Edit Part' => '÷¦ÄÒÅÄÁÇÕ×ÁÔÉ ôÏ×ÁÒ',
+ 'Edit Preferences for' => '÷¦ÄÒÅÄÁÇÕ×ÁÔÉ îÁÓÔÒÏÊËÉ',
+ 'Edit Pricegroup' => '',
+ 'Edit Project' => '÷¦ÄÒÅÄÁÇÕ×ÁÔÉ ðÒÏÅËÔ',
+ 'Edit Purchase Order' => '÷¦ÄÒÅÄÁÇÕ×ÁÔÉ ëÕЦ×ÅÌØÎÅ úÁÍÏ×ÌÅÎÎÑ',
+ 'Edit Quotation' => '',
+ 'Edit Request for Quotation' => '',
+ 'Edit SIC' => '',
+ 'Edit Sales Invoice' => '÷¦ÄÒÅÄÁÇÕ×ÁÔÉ òÁÈÕÎÏË-ÆÁËÔÕÒÕ',
+ 'Edit Sales Order' => '÷¦ÄÒÅÄÁÇÕ×ÁÔÉ ðÒÏÄÁÖÎÕ îÁËÌÁÄÎÕ',
+ 'Edit Service' => '÷¦ÄÒÅÄÁÇÕ×ÁÔÉ ÐÏÓÌÕÇÕ',
+ 'Edit Template' => '÷¦ÄÒÅÄÁÇÕ×ÁÔÉ ûÁÂÌÏÎ',
+ 'Edit Timecard' => '',
+ 'Edit User' => '÷¦ÄÒÅÄÁÇÕ×ÁÔÉ ëÏÒÉÓÔÕ×ÁÞÁ',
+ 'Edit Vendor' => '÷¦ÄÒÅÄÁÇÕ×ÁÔÉ ðÏÓÔÁÞÁÌØÎÉËÁ',
+ 'Edit Vendor Invoice' => '÷¦ÄÒÅÄÁÇÕ×ÁÔÉ ëÕЦ×ÅÌØÎÉÊ òÁÈÕÎÏË-ÆÁËÔÕÒÕ',
+ 'Edit Warehouse' => '',
+ 'Employee' => 'ðÒÁæ×ÎÉË',
+ 'Employee Name' => '',
+ 'Employee Number' => '',
+ 'Employee deleted!' => '',
+ 'Employee pays' => '',
+ 'Employee saved!' => '',
+ 'Employees' => '',
+ 'Employer' => '',
+ 'Employer pays' => '',
+ 'Enddate' => '',
+ 'Ends' => '',
+ 'Enforce transaction reversal for all dates' => 'úÁÓÔÁ×ÉÔÉ Ú×ÏÒÏÔÎÕ ÚͦÎÕ ÐÒÏ×ÏÄÏË ÄÌÑ ×Ó¦È ÄÁÔ',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => '÷×ÅĦÔØ ÄÏ 3 ̦ÔÅÒ ÒÏÚĦÌÅÎÉÈ Ä×ÏËÒÁÐËÁÍÉ (i.e CAD:USD:EUR) ÄÌÑ ÐÏÚÎÁÞÅÎÎÑ Í¦ÓÃÅ×ϧ ¦ ¦ÎÏÚÅÍÎÉÈ ÇÒÏÛÏ×ÉÈ ÏÄÉÎÉÃØ',
+ 'Equity' => 'ëÁЦÔÁÌ',
+ 'Every' => '',
+ 'Excempt age <' => '',
+ 'Exch' => 'ëÕÒÓ',
+ 'Exchange Rate' => 'ëÕÒÓ ×ÁÌÀÔÉ',
+ 'Exchange rate for payment missing!' => 'îÅ ×ËÁÚÁÎÉÊ ËÕÒÓ ×ÁÌÀÔÉ ÄÌÑ ÐÌÁÔÅÖÕ!',
+ 'Exchange rate missing!' => 'îÅ ×ËÁÚÁÎÉÊ ËÕÒÓ ×ÁÌÀÔÉ!',
+ 'Existing Datasets' => '¶ÓÎÕÀÞ¦ âÁÚÉ äÁÎÉÈ',
+ 'Expense' => '÷ÉÄÁÔËÉ',
+ 'Expense account does not exist!' => '',
+ 'Expense/Asset' => '÷ÉÄÁÔÏË/áËÔÉ×',
+ 'Extended' => 'ðÒÏÄÏ×ÖÅÎÏ',
+ 'FX' => '',
+ 'Failed to save order!' => '',
+ 'Fax' => 'æÁÈ',
+ 'Feb' => 'ÌÀÔÏÇÏ',
+ 'February' => 'ìÀÔÉÊ',
+ 'For' => '',
+ 'Foreign Exchange Gain' => 'ðÒÉÂÕÔÏË Ú ïÂͦÎÕ ÷ÁÌÀÔÉ',
+ 'Foreign Exchange Loss' => '÷ÔÒÁÔÁ ÎÁ ïÂͦΦ ÷ÁÌÀÔÉ',
+ 'Friday' => '',
+ 'From' => '÷¦Ä/ú',
+ 'From Warehouse' => '',
+ 'GIFI' => 'GIFI',
+ 'GIFI deleted!' => 'GIFI ×ÉÄÁÌÅÎÏ!',
+ 'GIFI missing!' => 'îÅ ×ËÁÚÁÎÏ GIFI!',
+ 'GIFI saved!' => 'GIFI ÚÂÅÒÅÖÅÎÏ!',
+ 'GL' => '',
+ 'GL Reference Number' => '',
+ 'GL Transaction' => 'çëðÒÏ×ÏÄËÁ',
+ 'General Ledger' => 'çÏÌÏ×ÎÁ ëÎÉÇÁ',
+ 'Generate' => '',
+ 'Generate Orders' => '',
+ 'Generate Purchase Orders' => '',
+ 'Generate Purchase Orders from Sales Order' => '',
+ 'Generate Sales Order' => '',
+ 'Generate Sales Order from Purchase Orders' => '',
+ 'Generate Sales Orders' => '',
+ 'Goods & Services' => 'ôÏ×ÁÒÉ ¦ ðÏÓÌÕÇÉ',
+ 'Group' => '',
+ 'Group Items' => '',
+ 'Group Translations' => '',
+ 'Group deleted!' => '',
+ 'Group missing!' => '',
+ 'Group saved!' => '',
+ 'Groups' => '',
+ 'HR' => '',
+ 'HTML Templates' => 'HTML ûÁÂÌÏÎÉ ',
+ 'Heading' => 'òÏÚĦÌ',
+ 'History' => '',
+ 'Home Phone' => '',
+ 'Host' => 'íÁÛÉÎÁ/Host',
+ 'Hostname missing!' => 'îÅ ×ËÁÚÁÎÁ ÎÁÚ×Á ÍÁÛÉÎÉ!',
+ 'IBAN' => '',
+ 'ID' => '¶ÄÅÎÔÉƦËÁæÊÎÉÊ ÎÏÍÅÒ',
+ 'Image' => 'úÏÂÒÁÖÅÎÎÑ',
+ 'In-line' => '÷ËÌÀÞÅÎÏ (In-line)',
+ 'Inactive' => '',
+ 'Include Exchange Rate Difference' => '',
+ 'Include Payment' => '',
+ 'Include in Report' => 'äÏÄÁÔÉ ÄÏ úצÔÕ',
+ 'Include in drop-down menus' => 'äÏÄÁÔÉ ÄÏ ÌÉÓÔÏ×ÉÈ ÍÅÎÀ',
+ 'Income' => '',
+ 'Income Statement' => 'ú×¦Ô ÐÒÏ ÄÏÈÏÄÉ ¦ ×ÉÄÁÔËÉ',
+ 'Income account does not exist!' => '',
+ 'Incorrect Dataset version!' => 'îÅצÒÎÁ ×ÅÒÓ¦Ñ âÁÚÉ äÁÎÉÈ!',
+ 'Increase' => '',
+ 'Individual Items' => '¶ÎÄÉצÄÕÁÌØΦ þÁÓÔÉÎÉ',
+ 'Internal Notes' => '',
+ 'Inventory' => '¶Î×ÅÎÔÁÒ',
+ 'Inventory account does not exist!' => '',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'ë¦ÌØ˦ÓÔØ × ¦Î×ÅÎÔÁÒ¦ ÐÏ×ÉÎÎÁ ÂÕÔÉ ÎÕÌØ, ÐÅÒÛ Î¦Ö ÍÏÖÎÁ ÐÏÚÎÁÞÉÔÉ ËÏÍÐÌÅËÔ ÚÁÓÔÁÒ¦ÌÉÍ!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'ë¦ÌØ˦ÓÔØ × ¦Î×ÅÎÔÁÒ¦ ÐÏ×ÉÎÎÁ ÂÕÔÉ ÎÕÌØ, ÐÅÒÛ Î¦Ö ÍÏÖÎÁ ÐÏÚÎÁÞÉÔÉ ÃÉÊ ÔÏ×ÁÒ ÚÁÓÔÁÒ¦ÌÉÍ!',
+ 'Inventory saved!' => '',
+ 'Inventory transferred!' => '',
+ 'Invoice' => 'òÁÈÕÎÏË-ÆÁËÔÕÒÁ',
+ 'Invoice Date' => 'äÁÔÁ ×ÉÓÔÁ×ÌÅÎÎÑ',
+ 'Invoice Date missing!' => 'îÅ ×ËÁÚÁÎÁ ÄÁÔÁ ×ÉÓÔÁ×ÌÅÎÎÑ ÒÁÈÕÎËÁ-ÆÁËÔÕÒÉ',
+ 'Invoice Number' => 'îÏÍÅÒ ÒÁÈÕÎËÁ-ÆÁËÔÕÒÉ',
+ 'Invoice Number missing!' => 'îÅ ×ËÁÚÁÎÉÊ ÎÏÍÅÒ ÒÁÈÕÎËÁ-ÆÁËÔÕÒÉ',
+ 'Invoice deleted!' => 'òÁÈÕÎÏË-ÆÁËÔÕÒÁ ×ÉÄÁÌÅÎÉÊ!',
+ 'Invoices' => 'òÁÈÕÎËÉ-ÆÁËÔÕÒÉ',
+ 'Is this a summary account to record' => 'þÉ ÃŠЦÄÓÕÍËÏ×ÉÊ ÒÁÈÕÎÏË ÄÌÑ ÚÁÐÉÓÕ?',
+ 'Item already on pricelist!' => '',
+ 'Item deleted!' => 'ò¦Þ ×ÉÄÁÌÅÎÏ!',
+ 'Item not on file!' => 'òÅÞ¦ ÎÅÍÁ × ÓÐÉÓËÕ!',
+ 'Items' => '',
+ 'Jan' => 'Ó¦ÞÎÑ',
+ 'January' => 'Ó¦ÞÅÎØ',
+ 'Job' => '',
+ 'Job Name' => '',
+ 'Job Number' => '',
+ 'Job Number missing!' => '',
+ 'Job deleted!' => '',
+ 'Job saved!' => '',
+ 'Jobs' => '',
+ 'Jul' => 'ÌÉÐÎÑ',
+ 'July' => 'ìÉÐÅÎØ',
+ 'Jun' => 'ÞÅÒ×ÎÑ',
+ 'June' => 'þÅÒ×ÅÎØ',
+ 'LaTeX Templates' => 'LaTeX ûÁÂÌÏÎÉ',
+ 'Labor Code' => '',
+ 'Labor/Overhead' => '',
+ 'Language' => 'íÏ×Á',
+ 'Language deleted!' => '',
+ 'Language saved!' => '',
+ 'Languages' => '',
+ 'Languages not defined!' => '',
+ 'Last Cost' => '',
+ 'Last Numbers & Default Accounts' => 'ïÓÔÁÎΦ îÏÍÅÒÉ ¦ ôÉÐÏצ òÁÈÕÎËÉ',
+ 'Lead' => '',
+ 'Leadtime' => '',
+ 'Leave host and port field empty unless you want to make a remote connection.' => 'ñËÝÏ ×É ÎÅ ÂÁÖÁ¤ÔÅ ×ÓÔÁÎÏ×ÉÔÉ ×¦ÄÄÁÌÅÎÉÊ Ú×ÑÚÏË, ÎÅ ÚÁÐÏ×ÎÀÊÔÅ ÐÏÌÑ ÍÁÛÉÎÉ ¦ ÐÏÒÔÕ.',
+ 'Liability' => 'ðÁÓÓÉ×',
+ 'Licensed to' => 'ì¦ÃÅÎÚ¦¤À ×ÏÌÏĦ¤:',
+ 'Line Total' => 'úÁÇÁÌØÎÁ óÕÍÁ',
+ 'Link' => 'ðÏÓÉÌÁÎÎÑ',
+ 'Link Accounts' => 'ðÏ×ÑÚÁÔÉ òÁÈÕÎËÉ',
+ 'List' => '',
+ 'List Accounts' => 'óÐÉÓÏË òÁÈÕÎ˦×',
+ 'List Businesses' => '',
+ 'List Departments' => '',
+ 'List GIFI' => 'óÐÉÓÏË GIFI',
+ 'List Languages' => '',
+ 'List Price' => 'ã¦ÎÁ',
+ 'List Projects' => '',
+ 'List SIC' => '',
+ 'List Transactions' => 'óÐÉÓÏË ðÒÏ×ÏÄÏË',
+ 'List Warehouses' => '',
+ 'Lock System' => 'Lock System',
+ 'Lockfile created!' => 'Lockfile created!',
+ 'Lockfile removed!' => 'Lockfile removed!',
+ 'Login' => 'ðÏÞÁÔÏË óÅÁÎÓÕ',
+ 'Login name missing!' => 'Login name missing!',
+ 'Logout' => 'ë¦ÎÅÃØ óÅÁÎÓÕ',
+ 'Make' => '÷ÉÒÏÂÎÉÃÔ×Ï',
+ 'Manager' => '',
+ 'Mar' => 'ÂÅÒÅÚÎÑ',
+ 'March' => 'âÅÒÅÚÅÎØ',
+ 'Marked entries printed!' => '',
+ 'Markup' => '',
+ 'Maximum' => '',
+ 'May' => 'ÔÒÁ×ÎÑ',
+ 'May ' => 'ôÒÁ×ÅÎØ',
+ 'Memo' => '',
+ 'Menu Width' => '',
+ 'Message' => 'ðÏצÄÏÍÌÅÎÎÑ',
+ 'Method' => '',
+ 'Microfiche' => 'í¦ËÒÏƦÛÁ',
+ 'Model' => 'íÏÄÅÌØ',
+ 'Monday' => '',
+ 'Month' => '',
+ 'Month(s)' => '',
+ 'Months' => '',
+ 'Multibyte Encoding' => 'íÕÌØÔÉÂÉÔÎÅ ëÏÄÕ×ÁÎÎÑ',
+ 'N/A' => 'îÅ óÔÏÓÕ¤ÔØÓÑ',
+ 'Name' => 'îÁÚ×Á',
+ 'Name missing!' => 'îÅ ×ËÁÚÁÎÁ ÎÁÚ×Á!',
+ 'New Templates' => 'îÏצ ûÁÂÌÏÎÉ',
+ 'New Window' => '',
+ 'Next' => '',
+ 'Next Date' => '',
+ 'Next Number' => '',
+ 'No' => 'î¦',
+ 'No Database Drivers available!' => 'îÅÄÏÓÔÕÐÎÉÊ ÄÒÁÊ×ÅÒ âÁÚÉ äÁÎÉÈ!',
+ 'No Dataset selected!' => 'îÅ ÐÏÚÎÁÞÅÎÏ ×ÉÂÒÁÎÕ âÁÚÕ äÁÎÉÈ!',
+ 'No Employees on file!' => '',
+ 'No Labor codes on file!' => '',
+ 'No email address for' => 'îÅ ×ËÁÚÁÎÁ ÁÄÒÅÓÁ ÅÌ. ÐÏÛÔÉ ÄÌÑ',
+ 'No open Jobs!' => '',
+ 'No open Projects!' => '',
+ 'No.' => 'No.',
+ 'Non-taxable' => '',
+ 'Non-taxable Purchases' => '',
+ 'Non-taxable Sales' => '',
+ 'Non-tracking Items' => '',
+ 'Notes' => 'ðÒÉͦÔËÉ',
+ 'Nothing entered!' => '',
+ 'Nothing selected!' => 'î¦ÞÏÇÏ ÎÅ ×ÉÂÒÁÎÏ!',
+ 'Nothing to delete!' => 'îÅÍÁ ÝÏ ×ÉÄÁÌÉÔÉ!',
+ 'Nothing to print!' => '',
+ 'Nothing to transfer!' => '',
+ 'Nov' => 'ÌÉÓÔÏÐÁÄÁ',
+ 'November' => 'ìÉÓÔÏÐÁÄ',
+ 'Number' => 'îÏÍÅÒ',
+ 'Number Format' => 'æÏÒÍÁÔ þÉÓÌÁ',
+ 'Number missing in Row' => 'îÅ ×ËÁÚÁÎÉÊ ÎÏÍÅÒ Õ ÒÑÄËÕ',
+ 'O' => 'ï',
+ 'OH' => '',
+ 'Obsolete' => 'úÁÓÔÁÒ¦ÌÅ',
+ 'Oct' => 'ÖÏ×ÔÎÑ',
+ 'October' => 'öÏ×ÔÅÎØ',
+ 'On Hand' => 'îÁ òÕËÁÈ',
+ 'Open' => '÷¦ÄËÒÉÔÏ',
+ 'Oracle Database Administration' => 'áÄͦΦÓÔÒÁÃ¦Ñ âÁÚÉ äÁÎÉÈ Oracle',
+ 'Order' => 'úÁÍÏ×ÌÅÎÎÑ',
+ 'Order Date' => 'äÁÔÁ úÁÍÏ×ÌÅÎÎÑ',
+ 'Order Date missing!' => 'îÅ ×ËÁÚÁÎÁ äÁÔÁ úÁÍÏ×ÌÅÎÎÑ!',
+ 'Order Entry' => '÷ÉÓÔÁ×ÌÅÎÎÑ úÁÍÏ×ÌÅÎÎÑ',
+ 'Order Number' => 'îÏÍÅÒ úÁÍÏ×ÌÅÎÎÑ',
+ 'Order Number missing!' => 'îÅ ×ËÁÚÁÎÏ îÏÍÅÒ úÁÍÏ×ÌÅÎÎÑ',
+ 'Order deleted!' => 'úÁÍÏ×ÌÅÎÎÑ ×ÉÄÁÌÅÎÏ!',
+ 'Order generation failed!' => '',
+ 'Order saved!' => 'úÁÍÏ×ÌÅÎÎÑ ÚÂÅÒÅÖÅÎÏ!',
+ 'Orders generated!' => '',
+ 'Orphaned' => '÷¦ÄÏËÒÅÍÌÅÎÉÊ/ïÓÉÒÏÔ¦ÌÉÊ',
+ 'Out of balance transaction!' => '',
+ 'Out of balance!' => 'îÅ ÚÂÁÌÁÎÓÏ×ÁÎÏ!',
+ 'Outstanding' => '',
+ 'PDF' => 'PDF ÆÁÊÌ ÆÏÒÍÁÔ',
+ 'PO Number' => '',
+ 'POS' => '',
+ 'POS Invoice' => '',
+ 'Packing List' => 'ðÁËÕ×ÁÌØÎÉÊ óÐÉÓÏË',
+ 'Packing List Date missing!' => 'îÅ ×ËÁÚÁÎÁ äÁÔÁ ðÁËÕ×ÁÌØÎÏÇÏ óÐÉÓÏËÕ',
+ 'Packing List Number missing!' => 'îÅ ×ËÁÚÁÎÉÊ îÏÍÅÒ ðÁËÕ×ÁÌØÎÏÇÏ óÐÉÓÏËÕ',
+ 'Packing Lists' => '',
+ 'Paid' => 'úÁÐÌÁÞÅÎÏ',
+ 'Part' => 'ôÏ×ÁÒ',
+ 'Part Number' => '',
+ 'Partnumber' => '',
+ 'Parts' => 'ÔÏ×ÁÒÉ',
+ 'Password' => 'ðÁÒÏÌØ',
+ 'Password changed!' => 'ðÁÒÏÌØ ÚͦÎÅÎÏ!',
+ 'Password does not match!' => '',
+ 'Passwords do not match!' => '',
+ 'Payables' => 'úÏÂÏ×ÑÚÁÎÎÑ (ÐÌÁÔ¦ÖΦ)',
+ 'Payment' => 'ðÌÁÔ¦Ö',
+ 'Payment date missing!' => 'îÅ ×ËÁÚÁÎÏ ÄÁÔÕ ðÌÁÔÅÖÕ!',
+ 'Payment posted!' => 'ðÌÁÔ¦Ö ×ÉÓÔÁ×ÌÅÎÏ!',
+ 'Payments' => 'ðÌÁÔÅÖ¦',
+ 'Payments posted!' => '',
+ 'Payroll Deduction' => '',
+ 'Period' => '',
+ 'Pg Database Administration' => 'áÄͦΦÓÔÒÁÃ¦Ñ âÁÚÉ äÁÎÉÈ Pg',
+ 'PgPP Database Administration' => 'PgPP Database Administration',
+ 'Phone' => 'ôÅÌ.',
+ 'Pick List' => '',
+ 'Pick Lists' => '',
+ 'Port' => 'ðÏÒÔ',
+ 'Port missing!' => 'ðÏÒÔ ÎÅ ×ËÁÚÁÎÏ!',
+ 'Pos' => '',
+ 'Post' => '÷ÉÓÔÁ×ÉÔÉ',
+ 'Post as new' => '÷ÉÓÔÁ×ÉÔÉ ÑË ÎÏ×ÉÊ',
+ 'Posted!' => '',
+ 'Posting' => '',
+ 'Posting failed!' => '',
+ 'Postscript' => 'Postscript',
+ 'Preferences' => 'îÁÓÔÒÏÊËÉ',
+ 'Preferences saved!' => 'îÁÓÔÒÏÊËÉ ÚÂÅÒÅÖÅÎÏ!',
+ 'Prepayment' => '',
+ 'Price' => 'ã¦ÎÁ',
+ 'Pricegroup' => '',
+ 'Pricegroup deleted!' => '',
+ 'Pricegroup missing!' => '',
+ 'Pricegroup saved!' => '',
+ 'Pricegroups' => '',
+ 'Pricelist' => '',
+ 'Print' => 'îÁÄÒÕËÕ×ÁÔÉ',
+ 'Print and Post' => '',
+ 'Print and Post as new' => '',
+ 'Print and Save' => '',
+ 'Print and Save as new' => '',
+ 'Print and post as new' => '',
+ 'Print and save as new' => '',
+ 'Printed' => '',
+ 'Printer' => 'ðÒÉÎÔÅÒ',
+ 'Printing' => '',
+ 'Printing ... ' => '',
+ 'Process Transactions' => '',
+ 'Production' => '',
+ 'Profit Center' => '',
+ 'Project' => 'ðÒÏÅËÔ',
+ 'Project Description Translations' => '',
+ 'Project Name' => '',
+ 'Project Number' => '',
+ 'Project Number missing!' => 'îÅ ×ËÁÚÁÎÉÊ ÎÏÍÅÒ ÐÒÏÅËÔÕ!',
+ 'Project Transactions' => '',
+ 'Project deleted!' => 'ðÒÏÅËÔ ×ÉÄÁÌÅÎÏ!',
+ 'Project not on file!' => 'ðÒÏÅËÔÕ ÎÅÍÁ × ÓÐÉÓËÕ!',
+ 'Project saved!' => 'ðÒÏÅËÔ ÚÂÅÒÅÖÅÎÏ!',
+ 'Project/Job Name' => '',
+ 'Project/Job Number' => '',
+ 'Projects' => 'ðÒÏÅËÔÉ',
+ 'Purchase Order' => 'ëÕЦ×ÅÌØÎÅ úÁÍÏ×ÌÅÎÎÑ',
+ 'Purchase Order Number' => '',
+ 'Purchase Orders' => 'ëÕЦ×ÅÌØΦ úÁÍÏ×ÌÅÎÎÑ',
+ 'Qty' => 'ë¦ÌØ˦ÓÔØ',
+ 'Quantity exceeds available units to stock!' => '',
+ 'Quarter' => '',
+ 'Quotation' => '',
+ 'Quotation ' => '',
+ 'Quotation Date' => '',
+ 'Quotation Date missing!' => '',
+ 'Quotation Number' => '',
+ 'Quotation Number missing!' => '',
+ 'Quotation deleted!' => '',
+ 'Quotations' => '',
+ 'R' => '',
+ 'RFQ' => '',
+ 'RFQ ' => '',
+ 'RFQ Number' => '',
+ 'RFQs' => '',
+ 'ROP' => 'ROP',
+ 'Rate' => 'òÏÚæÎËÁ',
+ 'Rate missing!' => '',
+ 'Recd' => 'ïÔÒÉÍÁÎÏ',
+ 'Receipt' => 'ë×ÉÔÁÎæÑ',
+ 'Receipt posted!' => '',
+ 'Receipts' => 'ë×ÉÔÁÎæ§',
+ 'Receivables' => 'îÁÌÅÖÎÏÓÔ¦ (ÄÅÂÉÔÉ)',
+ 'Receive' => '',
+ 'Receive Merchandise' => '',
+ 'Reconciliation' => 'õÚÇÏÄÖÅÎÎÑ',
+ 'Reconciliation Report' => '',
+ 'Record in' => '÷ÎÅÓÔÉ ×',
+ 'Recurring Transaction' => '',
+ 'Recurring Transactions' => '',
+ 'Reference' => 'úÓÉÌËÁ',
+ 'Remaining' => 'úÁÌÉÛÉÌÏÓØ',
+ 'Remove' => '',
+ 'Remove Audit trail up to' => '',
+ 'Removed spoolfiles!' => '',
+ 'Removing marked entries from queue ...' => '',
+ 'Repeat' => '',
+ 'Report for' => 'ú×¦Ô ÄÌÑ',
+ 'Reports' => 'úצÔÉ',
+ 'Req' => '',
+ 'Request for Quotation' => '',
+ 'Request for Quotations' => '',
+ 'Required by' => 'ôÅÒͦΠÄÏÓÔÁ×ËÉ',
+ 'Retained Earnings' => 'ðÒÉÂÕÔÏË (ÎÅÒÏÚÐÏĦÌÅÎÉÊ)',
+ 'Role' => '',
+ 'S' => '',
+ 'SIC' => '',
+ 'SIC deleted!' => '',
+ 'SIC saved!' => '',
+ 'SKU' => '',
+ 'SSN' => '',
+ 'Sale' => '',
+ 'Sales' => 'úÂÕÔ',
+ 'Sales Invoice' => 'òÁÈÕÎÏË-ÆÁËÔÕÒÁ',
+ 'Sales Invoice ' => '',
+ 'Sales Invoice.' => '',
+ 'Sales Invoice/AR Transaction Number' => '',
+ 'Sales Invoices' => '',
+ 'Sales Order' => 'ðÒÏÄÁÖÎÁ îÁËÌÁÄÎÁ',
+ 'Sales Order Number' => '',
+ 'Sales Orders' => 'ðÒÏÄÁÖΦ îÁËÌÁÄΦ',
+ 'Sales Quotation Number' => '',
+ 'Salesperson' => '',
+ 'Saturday' => '',
+ 'Save' => 'úÂÅÒÅÇÔÉ',
+ 'Save Pricelist' => '',
+ 'Save Schedule' => '',
+ 'Save as new' => 'úÂÅÒÅÇÔÉ ÑË ÎÏ×Å',
+ 'Save to File' => 'úÂÅÒÅÇÔÉ Õ æÁÊ̦',
+ 'Saving' => '',
+ 'Schedule' => '',
+ 'Scheduled' => '',
+ 'Screen' => 'åËÒÁÎ',
+ 'Search' => '',
+ 'Select' => '',
+ 'Select Customer' => '',
+ 'Select Vendor' => '',
+ 'Select a Printer!' => '',
+ 'Select a printer!' => '',
+ 'Select all' => '÷ÉÂÒÁÔÉ ×ÓÅ',
+ 'Select from one of the items below' => '÷ÉÂÅÒ¦ÔØ ÏÄÎÕ ¦Ú ÎÁÓÔÕÐÎÉÈ ÒÅÞÅÊ',
+ 'Select from one of the names below' => '÷ÉÂÅÒ¦ÔØ ÏÄÎÕ ¦Ú ÎÁÓÔÕÐÎÉÈ ÎÁÚ×',
+ 'Select from one of the projects below' => '÷ÉÂÅÒ¦ÔØ ÏÄÉÎ ¦Ú ÎÁÓÔÕÐÎÉÈ ÐÒÏÅËÔ¦×',
+ 'Select items' => '',
+ 'Select payment' => '',
+ 'Select postscript or PDF!' => '÷ÉÂÅÒ¦ÔØ postscript ÁÂÏ PDF',
+ 'Select txt, postscript or PDF!' => '',
+ 'Sell' => '',
+ 'Sell Price' => '÷¦ÄÐÕÓËÎÁ ã¦ÎÁ',
+ 'Send by E-Mail' => '÷ÉÓÌÁÔÉ ÐÏ ÅÌ. ÐÏÛÔ¦',
+ 'Sending' => '',
+ 'Sep' => '×ÅÒÅÓÎÑ',
+ 'September' => '÷ÅÒÅÓÅÎØ',
+ 'Serial No.' => '',
+ 'Serial Number' => '',
+ 'Service' => 'ðÏÓÌÕÇÁ',
+ 'Service Code' => '',
+ 'Service/Labor Code' => '',
+ 'Services' => 'ðÏÓÌÕÇÉ',
+ 'Session Timeout' => '',
+ 'Session expired!' => '',
+ 'Setup Templates' => 'îÁÌÁÛÔÕ×ÁÔÉ ûÁÂÌÏÎÉ',
+ 'Ship' => 'ðÏÓÌÁÔÉ',
+ 'Ship Merchandise' => '',
+ 'Ship to' => 'ðÏÓÌÁÔÉ ÄÏ',
+ 'Ship via' => 'ðÏÓÌÁÔÉ ÞÅÒÅÚ',
+ 'Shipping' => '',
+ 'Shipping Address' => '',
+ 'Shipping Date' => '',
+ 'Shipping Date missing!' => '',
+ 'Shipping Point' => '',
+ 'Short' => 'óËÏÒÏÞÅÎÏ',
+ 'Signature' => 'ð¦ÄÐÉÓ',
+ 'Source' => 'äÖÅÒÅÌÏ',
+ 'Spoolfile' => '',
+ 'Standard' => 'óÔÁÎÄÁÒÔΦ',
+ 'Standard Industrial Codes' => '',
+ 'Startdate' => '',
+ 'State' => '',
+ 'State/Province' => '',
+ 'Statement' => 'úצÔ',
+ 'Statement Balance' => 'âÁÌÁÎÓÏ×ÉÊ úצÔ',
+ 'Statement sent to' => 'ú×¦Ô ÐÏÓÌÁÎÏ ÄÏ',
+ 'Statements sent to printer!' => 'ú×¦Ô ÐÏÓÌÁÎÏ ÄÏ ðÒÉÎÔÅÒÁ!',
+ 'Stock' => '',
+ 'Stock Assembly' => '¶Î×ÅÎÔÁÒ ëÏÍÐÌÅËÔÕ',
+ 'Stocking Date' => '',
+ 'Stylesheet' => 'ïÆÏÒÍÌÅÎÎÎÑ',
+ 'Sub-contract GIFI' => '',
+ 'Subject' => 'ôÅÍÁ',
+ 'Subtotal' => 'ð¦ÄÓÕÍÏË ÐÏ ÒÏÚĦÌÕ',
+ 'Summary' => '',
+ 'Sunday' => '',
+ 'Supervisor' => '',
+ 'System' => 'óÉÓÔÅÍÁ',
+ 'System Defaults' => '',
+ 'Tax' => 'ðÏÄÁÔÏË',
+ 'Tax Accounts' => 'ðÏÄÁÔËÏצ òÁÈÕÎËÉ',
+ 'Tax Included' => 'ðÏÄÁÔÏË ×ËÌÀÞÅÎÏ',
+ 'Tax Number' => '',
+ 'Tax Number / SSN' => '',
+ 'Tax collected' => 'ðÏÄÁÔÏË Ú¦ÂÒÁÎÏ',
+ 'Tax paid' => 'ðÏÄÁÔÏË ÚÁÐÌÁÞÅÎÏ',
+ 'Taxable' => 'ïÐÏÄÁÔËÏ×Õ¤ÔØÓÑ',
+ 'Template saved!' => 'ûÁÂÌÏÎ ÚÂÅÒÅÖÅÎÏ',
+ 'Templates' => 'ûÁÂÌÏÎÉ',
+ 'Terms' => 'õÍÏ×É: ',
+ 'Text' => '',
+ 'Text Templates' => '',
+ 'The following Datasets are not in use and can be deleted' => 'îÁÓÔÕÐΦ âÁÚÉ äÁÎÉÈ ÎÅ ×ÉËÏÒÉÓÔÏ×ÕÀÔØÓÑ ¦ ÍÏÖÕÔØ ÂÕÔÉ ×ÉÄÁÌÅΦ',
+ 'The following Datasets need to be updated' => 'îÁÓÔÕÐΦ âÁÚÉ äÁÎÉÈ ÐÏ×ÉÎΦ ÂÕÔÉ ÐÏÎÏ×ÌÅΦ',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'ðÏÐÅÒÅÄÎÑ ÐÅÒÅצÒËÁ ¦ÓÎÕÀÞÉÈ ÄÖÅÒÅÌ. ðÏËÉ ÝÏ Î¦ÞÏÇÏ ÎÅ ÂÕÄÅ ÓÔ×ÏÒÅÎÏ ÁÂÏ ×ÉÄÁÌÅÎÏ!',
+ 'Thursday' => '',
+ 'Till' => '',
+ 'Time In' => '',
+ 'Time Out' => '',
+ 'Timecard' => '',
+ 'Timecard deleted!' => '',
+ 'Timecard saved!' => '',
+ 'Timecards' => '',
+ 'Times' => '',
+ 'To' => 'äÏ',
+ 'To Warehouse' => '',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'ýÏ ÄÏÄÁÔÉ ËÏÒÉÓÔÕ×ÁÞÁ ÄÏ ÇÒÕÐÉ, ÔÒÅÂÁ ÐÏͦÎÑÔÉ ¦ÍÑ, login/××ÏÄÎÅ ¦ÍÑ ¦ ÚÂÅÒÅÇÔÉ. îÏ×ÉÊ ËÏÒÉÓÔÕ×ÁÞÁ ¦Ú ÏÄÎÁËÏ×ÉÍÉ ÐÁÒÁÍÅÔÒÁÍÉ ÂÕÄÅ ÚÂÅÒÅÖÅÎÏ Ð¦Ä ÎÏ×ÉÍ login/××ÏÄÎÉÍ ¦ÍÑÍ.',
+ 'Top Level' => '÷ÅÒÈÎ¦Ê ò¦×ÅÎØ',
+ 'Total' => 'úÁÇÁÌØÎÁ óÕÍÁ',
+ 'Tracking Items' => '',
+ 'Trade Discount' => '',
+ 'Transaction' => '',
+ 'Transaction Date missing!' => 'îÅ ×ËÁÚÁÎÁ ÄÁÔÁ ÐÒÏ×ÏÄËÉ',
+ 'Transaction Dates' => '',
+ 'Transaction deleted!' => 'ðÒÏ×ÏÄËÁ ×ÉÄÁÌÅÎÁ',
+ 'Transaction posted!' => 'ðÒÏ×ÏÄËÁ ÚĦÊÓÎÅÎÁ',
+ 'Transaction reversal enforced for all dates' => 'úÒÏÂÌÅÎÁ ÒÅ×ÅÓÉ×ÎÕ ÚͦÎÁ ÐÒÏ×ÏÄÏË ÄÌÑ ×Ó¦È ÄÁÔ',
+ 'Transaction reversal enforced up to' => 'úÒÏÂÌÅÎÁ ÒÅ×ÅÓÉ×ÎÕ ÚͦÎÁ ÐÒÏ×ÏÄÏË ÁÖ ÄÏ',
+ 'Transactions' => 'ðÒÏ×ÏÄËÉ',
+ 'Transfer' => '',
+ 'Transfer Inventory' => '',
+ 'Transfer from' => '',
+ 'Transfer to' => '',
+ 'Translation' => '',
+ 'Translation deleted!' => '',
+ 'Translation not on file!' => '',
+ 'Translations' => '',
+ 'Translations saved!' => '',
+ 'Trial Balance' => 'ðÒÏÂÎÉÊ âÁÌÁÎÓ',
+ 'Tuesday' => '',
+ 'Type of Business' => '',
+ 'Unit' => 'ïÄÉÎÉÃÑ',
+ 'Unit of measure' => 'ïÄÉÎÉÃÑ ×ÉͦÒÕ',
+ 'Unlock System' => 'Unlock System',
+ 'Update' => 'ðÏÎÏ×ÉÔÉ',
+ 'Update Dataset' => 'ðÏÎÏ×ÉÔÉ âÁÚÕ äÁÎÉÈ',
+ 'Updated' => 'ðÏÎÏ×ÌÅÎÏ',
+ 'Upgrading to Version' => '',
+ 'Use Templates' => '÷ÉËÏÒÉÓÔÏ×Õ×ÁÔÉ ûÁÂÌÏÎÉ',
+ 'User' => 'ëÏÒÉÓÔÕ×ÁÞ',
+ 'User deleted!' => 'ëÏÒÉÓÔÕ×ÁÞ ÷ÉÄÁÌÅÎÉÊ',
+ 'User saved!' => 'ëÏÒÉÓÔÕ×ÁÞ ÚÂÅÒÅÖÅÎÉÊ',
+ 'Valid until' => '',
+ 'Vendor' => 'ðÏÓÔÁÞÁÌØÎÉË',
+ 'Vendor History' => '',
+ 'Vendor Invoice' => 'òÁÈÕÎÏË-ÆÁËÔÕÒÁ',
+ 'Vendor Invoice ' => '',
+ 'Vendor Invoice.' => '',
+ 'Vendor Invoice/AP Transaction Number' => '',
+ 'Vendor Invoices' => '',
+ 'Vendor Number' => '',
+ 'Vendor deleted!' => 'ðÏÓÔÁÞÁÌØÎÉË ×ÉÄÁÌÅÎÉÊ',
+ 'Vendor missing!' => 'ðÏÓÔÁÞÁÌØÎÉË ÎÅ ¦ÓÎÕ¤',
+ 'Vendor not on file!' => 'ðÏÔÁÞÁÌØÎÉËÁ ÎÅÍÁ Õ ÓÐÉÓËÕ ',
+ 'Vendor saved!' => 'ðÏÓÔÁÞÁÌØÎÉËÁ ÚÂÅÒÅÖÅÎÏ',
+ 'Vendors' => 'ðÏÓÔÁÞÁÌØÎÉËÉ',
+ 'Version' => '÷ÅÒÓ¦Ñ',
+ 'Warehouse' => '',
+ 'Warehouse deleted!' => '',
+ 'Warehouse saved!' => '',
+ 'Warehouses' => '',
+ 'Warning!' => '',
+ 'Wednesday' => '',
+ 'Week' => '',
+ 'Week(s)' => '',
+ 'Weeks' => '',
+ 'Weight' => '÷ÁÇÁ',
+ 'Weight Unit' => 'ïÄÉÎÉÃÑ ÷ÁÇÉ',
+ 'What type of item is this?' => 'ñËÉÊ ÃÅ ×ÉÄ/ÔÉÐ ÔÏ×ÁÒÕ',
+ 'Work Order' => '',
+ 'Work Orders' => '',
+ 'Work Phone' => '',
+ 'Year' => '',
+ 'Year(s)' => '',
+ 'Yearend' => '',
+ 'Yearend date missing!' => '',
+ 'Yearend posted!' => '',
+ 'Yearend posting failed!' => '',
+ 'Years' => '',
+ 'Yes' => 'Tak',
+ 'You are logged out' => '',
+ 'You are posting an existing transaction!' => '',
+ 'You are printing and posting an existing transaction!' => '',
+ 'You are printing and saving an existing order' => '',
+ 'You are printing and saving an existing quotation' => '',
+ 'You are printing and saving an existing transaction!' => '',
+ 'You are saving an existing order' => '',
+ 'You are saving an existing quotation' => '',
+ 'You are saving an existing transaction!' => '',
+ 'You did not enter a name!' => 'îÅ ××ÅÄÅÎÏ ÎÁÚ×Õ',
+ 'You must enter a host and port for local and remote connections!' => 'íÕÓÉÔÅ ××ÅÓÔÉ ÎÁÚ×Õ ÍÁÛÉÎÉ ¦ ÐÏÒÔÁ ÄÌÑ Í¦ÓÃÅ×ÏÇÏ ¦ צÄÄÁÌÅÎÏÇÏ Ú×ÑÚËÕ!',
+ 'Zip/Postal Code' => '',
+ 'account cannot be set to any other type of account' => '',
+ 'as at' => 'ÑË ×',
+ 'days' => 'ÄΦ×',
+ 'does not exist' => 'ÎÅ ¦ÓÎÕ¤',
+ 'done' => '',
+ 'ea' => 'ÛÔ.',
+ 'failed' => '',
+ 'for' => '',
+ 'for Period' => 'ÚÁ ðÅÒ¦ÏÄ',
+ 'is already a member!' => '×ÖÅ ¤ ÞÌÅÎÏÍ',
+ 'localhost' => 'localhost',
+ 'locked!' => '',
+ 'partsgroup' => '',
+ 'posted!' => '',
+ 'sent' => '',
+ 'successfully created!' => 'ÕÓЦÛÎÏ ÓÔ×ÏÒÅÎÏ',
+ 'successfully deleted!' => 'ÕÓЦÛÎÏ ×ÉÄÁÌÅÎÏ',
+ 'time(s)' => '',
+ 'unexpected error!' => '',
+ 'website' => '×ÅÂ-ÓÔÏÒ¦ÎËÁ',
+};
+
+1;
diff --git a/locale/ua/am b/locale/ua/am
new file mode 100755
index 00000000..0408e401
--- /dev/null
+++ b/locale/ua/am
@@ -0,0 +1,213 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'AP' => '÷ÉÔÒÁÔÉ',
+ 'AR' => 'äÏÈÏÄÉ',
+ 'About' => 'ðÒÏ ÐÒÏÇÒÁÍÕ',
+ 'Account' => 'òÁÈÕÎÏË',
+ 'Account Number' => 'îÏÍÅÒ òÁÈÕÎËÕ',
+ 'Account Number missing!' => 'îÅ ×ËÁÚÁÎÉÊ ÎÏÍÅÒ ÒÁÈÕÎËÕ!',
+ 'Account Type' => '÷ÉÄ ÒÁÈÕÎËÕ',
+ 'Account Type missing!' => 'îÅ ×ËÁÚÁÎÉÊ ×ÉÄ ÒÁÈÕÎËÕ!',
+ 'Account deleted!' => 'òÁÈÕÎÏË ×ÉÄÁÌÅÎÉÊ',
+ 'Account saved!' => 'òÁÈÕÎÏË ÚÂÅÒÅÖÅÎÏ',
+ 'Accounting Menu' => 'íÅÎÀ ïÂ̦ËÕ',
+ 'Add Account' => 'îÏ×ÉÊ ÒÁÈÕÎÏË',
+ 'Add GIFI' => 'îÏ×ÉÊ GIFI',
+ 'Address' => 'áÄÒÅÓÁ',
+ 'Amount' => 'óÕÍÁ',
+ 'Asset' => 'áËÔÉ×',
+ 'Audit Control' => 'ëÏÎÔÒÏÌØ',
+ 'Backup sent to' => 'òÅÚÅÒ×ÎÁ ËÏÐ¦Ñ ÐÏÓÌÁÎÁ ÄÏ',
+ 'Books are open' => 'ëÎÉÇÁ צÄËÒÉÔÁ',
+ 'Business Number' => 'â¦ÚÎÅÓ-ÎÏÍÅÒ',
+ 'COGS' => 'COGS',
+ 'Cannot delete account!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÄÁÌÉÔÉ ÒÁÈÕÎÏË',
+ 'Cannot delete default account!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÄÁÌÉÔÉ ÏÓÎÏ×ÎÉÊ ÒÁÈÕÎÏË!',
+ 'Cannot save account!' => 'îÅ ÍÏÖÌÉ×Ï ÚÂÅÒÅÇÔÉ ÒÁÈÕÎÏË!',
+ 'Cannot save preferences!' => 'îÅ ÍÏÖÌÉ×Ï ÚÂÅÒÅÇÔÉ ÎÁÓÔÒÏÊËÉ!',
+ 'Cash' => 'çÏÔ¦×ËÁ',
+ 'Chart of Accounts' => 'ðÌÁÎ òÁÈÕÎ˦×',
+ 'Close Books up to' => 'úÁËÒÉÔÉ ëÎÉÇÉ ÄÏ',
+ 'Company' => 'ð¦ÄÐÒɤÍÓÔ×Ï',
+ 'Confirm!' => 'ð¦ÄÔ×ÅÒĦÔØ!',
+ 'Continue' => 'ðÒÏÄÏ×ÖÉÔÉ',
+ 'Copy to COA' => 'óËÏЦÀ×ÁÔÉ ÄÏ ðÌÁÎÕ òÁÈÕÎ˦×',
+ 'Credit' => 'ëÒÅÄÉÔ',
+ 'Database Host' => 'íÁÛÉÎÁ âÁÚÉ äÁÎÉÈ',
+ 'Dataset' => 'âÁÚÁ äÁÎÉÈ',
+ 'Date Format' => 'æÏÒÍÁÔ ÄÁÔÉ',
+ 'Debit' => 'äÅÂÉÔ',
+ 'Delete' => '÷ÉÄÁÌÉÔÉ',
+ 'Delete Account' => '÷ÉÄÁÌÉÔÉ ÒÁÈÕÎÏË',
+ 'Description' => 'ïÐÉÓ',
+ 'Discount' => 'óËÉÄËÁ',
+ 'Dropdown Limit' => 'ïÂÍÅÖÅÎÎÑ ÌÉÓÔÏ×ÏÇÏ ÍÅÎÀ',
+ 'E-mail' => 'åÌ. ÐÏÛÔÁ',
+ 'E-mail address missing!' => 'îÅ ×ËÁÚÁÎÁ ÁÄÒÅÓÁ ÅÌ. ÐÏÛÔÉ!',
+ 'Edit' => '÷¦ÄÒÅÄÁÇÕ×ÁÔÉ',
+ 'Edit Account' => '÷¦ÄÒÅÄÁÇÕ×ÁÔÉ òÁÈÕÎÏË',
+ 'Edit GIFI' => '÷¦ÄÒÅÄÁÇÕ×ÁÔÉ GIFI',
+ 'Edit Preferences for' => '÷¦ÄÒÅÄÁÇÕ×ÁÔÉ îÁÓÔÒÏÊËÉ',
+ 'Edit Template' => '÷¦ÄÒÅÄÁÇÕ×ÁÔÉ ûÁÂÌÏÎ',
+ 'Enforce transaction reversal for all dates' => 'úÁÓÔÁ×ÉÔÉ Ú×ÏÒÏÔÎÕ ÚͦÎÕ ÐÒÏ×ÏÄÏË ÄÌÑ ×Ó¦È ÄÁÔ',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => '÷×ÅĦÔØ ÄÏ 3 ̦ÔÅÒ ÒÏÚĦÌÅÎÉÈ Ä×ÏËÒÁÐËÁÍÉ (i.e CAD:USD:EUR) ÄÌÑ ÐÏÚÎÁÞÅÎÎÑ Í¦ÓÃÅ×ϧ ¦ ¦ÎÏÚÅÍÎÉÈ ÇÒÏÛÏ×ÉÈ ÏÄÉÎÉÃØ',
+ 'Equity' => 'ëÁЦÔÁÌ',
+ 'Expense' => '÷ÉÄÁÔËÉ',
+ 'Expense/Asset' => '÷ÉÄÁÔÏË/áËÔÉ×',
+ 'Fax' => 'æÁÈ',
+ 'Foreign Exchange Gain' => 'ðÒÉÂÕÔÏË Ú ïÂͦÎÕ ÷ÁÌÀÔÉ',
+ 'Foreign Exchange Loss' => '÷ÔÒÁÔÁ ÎÁ ïÂͦΦ ÷ÁÌÀÔÉ',
+ 'GIFI' => 'GIFI',
+ 'GIFI deleted!' => 'GIFI ×ÉÄÁÌÅÎÏ!',
+ 'GIFI missing!' => 'îÅ ×ËÁÚÁÎÏ GIFI!',
+ 'GIFI saved!' => 'GIFI ÚÂÅÒÅÖÅÎÏ!',
+ 'GL Transaction' => 'çëðÒÏ×ÏÄËÁ',
+ 'Heading' => 'òÏÚĦÌ',
+ 'ID' => '¶ÄÅÎÔÉƦËÁæÊÎÉÊ ÎÏÍÅÒ',
+ 'Include in drop-down menus' => 'äÏÄÁÔÉ ÄÏ ÌÉÓÔÏ×ÉÈ ÍÅÎÀ',
+ 'Inventory' => '¶Î×ÅÎÔÁÒ',
+ 'Invoice' => 'òÁÈÕÎÏË-ÆÁËÔÕÒÁ',
+ 'Is this a summary account to record' => 'þÉ ÃŠЦÄÓÕÍËÏ×ÉÊ ÒÁÈÕÎÏË ÄÌÑ ÚÁÐÉÓÕ?',
+ 'Language' => 'íÏ×Á',
+ 'Last Numbers & Default Accounts' => 'ïÓÔÁÎΦ îÏÍÅÒÉ ¦ ôÉÐÏצ òÁÈÕÎËÉ',
+ 'Liability' => 'ðÁÓÓÉ×',
+ 'Licensed to' => 'ì¦ÃÅÎÚ¦¤À ×ÏÌÏĦ¤:',
+ 'Link' => 'ðÏÓÉÌÁÎÎÑ',
+ 'Name' => 'îÁÚ×Á',
+ 'No' => 'î¦',
+ 'No email address for' => 'îÅ ×ËÁÚÁÎÁ ÁÄÒÅÓÁ ÅÌ. ÐÏÛÔÉ ÄÌÑ',
+ 'Number' => 'îÏÍÅÒ',
+ 'Number Format' => 'æÏÒÍÁÔ þÉÓÌÁ',
+ 'PDF' => 'PDF ÆÁÊÌ ÆÏÒÍÁÔ',
+ 'Packing List' => 'ðÁËÕ×ÁÌØÎÉÊ óÐÉÓÏË',
+ 'Password' => 'ðÁÒÏÌØ',
+ 'Payables' => 'úÏÂÏ×ÑÚÁÎÎÑ (ÐÌÁÔ¦ÖΦ)',
+ 'Payment' => 'ðÌÁÔ¦Ö',
+ 'Phone' => 'ôÅÌ.',
+ 'Postscript' => 'Postscript',
+ 'Preferences saved!' => 'îÁÓÔÒÏÊËÉ ÚÂÅÒÅÖÅÎÏ!',
+ 'Print' => 'îÁÄÒÕËÕ×ÁÔÉ',
+ 'Printer' => 'ðÒÉÎÔÅÒ',
+ 'Purchase Order' => 'ëÕЦ×ÅÌØÎÅ úÁÍÏ×ÌÅÎÎÑ',
+ 'Purchase Orders' => 'ëÕЦ×ÅÌØΦ úÁÍÏ×ÌÅÎÎÑ',
+ 'Rate' => 'òÏÚæÎËÁ',
+ 'Receivables' => 'îÁÌÅÖÎÏÓÔ¦ (ÄÅÂÉÔÉ)',
+ 'Reference' => 'úÓÉÌËÁ',
+ 'Retained Earnings' => 'ðÒÉÂÕÔÏË (ÎÅÒÏÚÐÏĦÌÅÎÉÊ)',
+ 'Sales Invoice' => 'òÁÈÕÎÏË-ÆÁËÔÕÒÁ',
+ 'Sales Order' => 'ðÒÏÄÁÖÎÁ îÁËÌÁÄÎÁ',
+ 'Sales Orders' => 'ðÒÏÄÁÖΦ îÁËÌÁÄΦ',
+ 'Save' => 'úÂÅÒÅÇÔÉ',
+ 'Save as new' => 'úÂÅÒÅÇÔÉ ÑË ÎÏ×Å',
+ 'Signature' => 'ð¦ÄÐÉÓ',
+ 'Stylesheet' => 'ïÆÏÒÍÌÅÎÎÎÑ',
+ 'Tax' => 'ðÏÄÁÔÏË',
+ 'Template saved!' => 'ûÁÂÌÏÎ ÚÂÅÒÅÖÅÎÏ',
+ 'Transaction reversal enforced for all dates' => 'úÒÏÂÌÅÎÁ ÒÅ×ÅÓÉ×ÎÕ ÚͦÎÁ ÐÒÏ×ÏÄÏË ÄÌÑ ×Ó¦È ÄÁÔ',
+ 'Transaction reversal enforced up to' => 'úÒÏÂÌÅÎÁ ÒÅ×ÅÓÉ×ÎÕ ÚͦÎÁ ÐÒÏ×ÏÄÏË ÁÖ ÄÏ',
+ 'Update' => 'ðÏÎÏ×ÉÔÉ',
+ 'User' => 'ëÏÒÉÓÔÕ×ÁÞ',
+ 'Vendor Invoice' => 'òÁÈÕÎÏË-ÆÁËÔÕÒÁ',
+ 'Version' => '÷ÅÒÓ¦Ñ',
+ 'Weight Unit' => 'ïÄÉÎÉÃÑ ÷ÁÇÉ',
+ 'Yes' => 'Tak',
+ 'localhost' => 'localhost',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'îÏ×ÉÊ_ÒÁÈÕÎÏË' => 'add_account',
+ 'ðÒÏÄÏ×ÖÉÔÉ' => 'continue',
+ 'óËÏЦÀ×ÁÔÉ_ÄÏ_ðÌÁÎÕ_òÁÈÕÎ˦×' => 'copy_to_coa',
+ '÷ÉÄÁÌÉÔÉ' => 'delete',
+ '÷¦ÄÒÅÄÁÇÕ×ÁÔÉ' => 'edit',
+ '÷¦ÄÒÅÄÁÇÕ×ÁÔÉ_òÁÈÕÎÏË' => 'edit_account',
+ 'úÂÅÒÅÇÔÉ' => 'save',
+ 'úÂÅÒÅÇÔÉ_ÑË_ÎÏ×Å' => 'save_as_new',
+ 'ðÏÎÏ×ÉÔÉ' => 'update',
+};
+
+1;
+
diff --git a/locale/ua/ap b/locale/ua/ap
new file mode 100755
index 00000000..666adffe
--- /dev/null
+++ b/locale/ua/ap
@@ -0,0 +1,181 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'AP Transaction' => 'ðÒÏ×ÏÄËÁ ÷ÉÔÒÁÔ',
+ 'AP Transactions' => 'ðÒÏ×ÏÄËÉ ÷ÉÔÒÁÔ',
+ 'AR Transaction' => 'ðÒÏ×ÏÄËÁ äÏÈÏĦ×',
+ 'AR Transactions' => 'ðÒÏ×ÏÄËÉ äÏÈÏĦ×',
+ 'Account' => 'òÁÈÕÎÏË',
+ 'Accounting Menu' => 'íÅÎÀ ïÂ̦ËÕ',
+ 'Address' => 'áÄÒÅÓÁ',
+ 'Amount' => 'óÕÍÁ',
+ 'Amount Due' => 'úÁÐÌÁÔÉÔÉ óÕÍÕ',
+ 'Apr' => 'ËצÔÎÑ',
+ 'April' => 'ëצÔÅÎØ',
+ 'Are you sure you want to delete Transaction' => '÷É ÐÅ×Φ, ÝÏ ÈÏÞÅÔÅ ×ÉÄÁÌÉÔÉ ÄÁÎÕ ÐÒÏ×ÏÄËÕ?',
+ 'Aug' => 'ÓÅÒÐÎÑ',
+ 'August' => 'óÅÒÐÅÎØ',
+ 'Bcc' => 'ðÒÉ×ÁÔÎÁ ËÏÐ¦Ñ ÄÏ',
+ 'Cannot delete transaction!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÄÁÌÉÔÉ ÐÒÏ×ÏÄËÕ!',
+ 'Cannot post payment for a closed period!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÓÔÁ×ÉÔÉ ÐÌÁÔ¦Ö ÄÌÑ ÚÁËÒÉÔÏÇÏ ÐÅÒ¦ÏÄÕ!',
+ 'Cannot post transaction for a closed period!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÓÔÁ×ÉÔÉ ÐÒÏ×ÏÄËÕ ÄÌÑ ÚÁËÒÉÔÏÇÏ ÐÅÒ¦ÏÄÕ!',
+ 'Cannot post transaction!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÓÔÁ×ÉÔÉ ÐÒÏ×ÏÄËÕ!',
+ 'Cc' => 'ëÏÐ¦Ñ ÄÏ',
+ 'Check' => 'þÅË',
+ 'Closed' => 'úÁËÒÉÔÏ',
+ 'Confirm!' => 'ð¦ÄÔ×ÅÒĦÔØ!',
+ 'Continue' => 'ðÒÏÄÏ×ÖÉÔÉ',
+ 'Credit' => 'ëÒÅÄÉÔ',
+ 'Credit Limit' => 'ì¦Í¦Ô ËÒÅÄÉÔÕ',
+ 'Curr' => '÷ÁÌÀÔÁ',
+ 'Currency' => '÷ÁÌÀÔÁ',
+ 'Current' => 'ðÏÔÏÞÎÉÊ',
+ 'Customer' => 'ë̦¤ÎÔ',
+ 'Customer missing!' => 'îÅ ×ËÁÚÁÎÉÊ Ë̦¤ÎÔ!',
+ 'Customer not on file!' => 'ë̦¤ÎÔÁ ÎÅÍÁ × ÓÐÉÓËÕ!',
+ 'Date' => 'äÁÔÁ',
+ 'Date Paid' => 'äÁÔÁ ÏÐÌÁÔÉ',
+ 'Debit' => 'äÅÂÉÔ',
+ 'Dec' => 'ÇÒÕÄÎÑ',
+ 'December' => 'çÒÕÄÅÎØ',
+ 'Delete' => '÷ÉÄÁÌÉÔÉ',
+ 'Description' => 'ïÐÉÓ',
+ 'Due Date' => 'úÁÐÌÁÔÉÔÉ ÄÏ',
+ 'Due Date missing!' => 'îÅ ×ËÁÚÁÎÉÊ ÔÅÒͦΠÏÐÌÁÔÉ!',
+ 'E-mail' => 'åÌ. ÐÏÛÔÁ',
+ 'Employee' => 'ðÒÁæ×ÎÉË',
+ 'Exch' => 'ëÕÒÓ',
+ 'Exchange Rate' => 'ëÕÒÓ ×ÁÌÀÔÉ',
+ 'Exchange rate for payment missing!' => 'îÅ ×ËÁÚÁÎÉÊ ËÕÒÓ ×ÁÌÀÔÉ ÄÌÑ ÐÌÁÔÅÖÕ!',
+ 'Exchange rate missing!' => 'îÅ ×ËÁÚÁÎÉÊ ËÕÒÓ ×ÁÌÀÔÉ!',
+ 'Feb' => 'ÌÀÔÏÇÏ',
+ 'February' => 'ìÀÔÉÊ',
+ 'From' => '÷¦Ä/ú',
+ 'ID' => '¶ÄÅÎÔÉƦËÁæÊÎÉÊ ÎÏÍÅÒ',
+ 'Include in Report' => 'äÏÄÁÔÉ ÄÏ úצÔÕ',
+ 'Invoice' => 'òÁÈÕÎÏË-ÆÁËÔÕÒÁ',
+ 'Invoice Date' => 'äÁÔÁ ×ÉÓÔÁ×ÌÅÎÎÑ',
+ 'Invoice Date missing!' => 'îÅ ×ËÁÚÁÎÁ ÄÁÔÁ ×ÉÓÔÁ×ÌÅÎÎÑ ÒÁÈÕÎËÁ-ÆÁËÔÕÒÉ',
+ 'Invoice Number' => 'îÏÍÅÒ ÒÁÈÕÎËÁ-ÆÁËÔÕÒÉ',
+ 'Jan' => 'Ó¦ÞÎÑ',
+ 'January' => 'Ó¦ÞÅÎØ',
+ 'Jul' => 'ÌÉÐÎÑ',
+ 'July' => 'ìÉÐÅÎØ',
+ 'Jun' => 'ÞÅÒ×ÎÑ',
+ 'June' => 'þÅÒ×ÅÎØ',
+ 'Mar' => 'ÂÅÒÅÚÎÑ',
+ 'March' => 'âÅÒÅÚÅÎØ',
+ 'May' => 'ÔÒÁ×ÎÑ',
+ 'May ' => 'ôÒÁ×ÅÎØ',
+ 'Message' => 'ðÏצÄÏÍÌÅÎÎÑ',
+ 'No.' => 'No.',
+ 'Notes' => 'ðÒÉͦÔËÉ',
+ 'Nov' => 'ÌÉÓÔÏÐÁÄÁ',
+ 'November' => 'ìÉÓÔÏÐÁÄ',
+ 'Number' => 'îÏÍÅÒ',
+ 'Oct' => 'ÖÏ×ÔÎÑ',
+ 'October' => 'öÏ×ÔÅÎØ',
+ 'Open' => '÷¦ÄËÒÉÔÏ',
+ 'Order' => 'úÁÍÏ×ÌÅÎÎÑ',
+ 'Order Number' => 'îÏÍÅÒ úÁÍÏ×ÌÅÎÎÑ',
+ 'PDF' => 'PDF ÆÁÊÌ ÆÏÒÍÁÔ',
+ 'Paid' => 'úÁÐÌÁÞÅÎÏ',
+ 'Payment date missing!' => 'îÅ ×ËÁÚÁÎÏ ÄÁÔÕ ðÌÁÔÅÖÕ!',
+ 'Payments' => 'ðÌÁÔÅÖ¦',
+ 'Post' => '÷ÉÓÔÁ×ÉÔÉ',
+ 'Post as new' => '÷ÉÓÔÁ×ÉÔÉ ÑË ÎÏ×ÉÊ',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'îÁÄÒÕËÕ×ÁÔÉ',
+ 'Project' => 'ðÒÏÅËÔ',
+ 'Project not on file!' => 'ðÒÏÅËÔÕ ÎÅÍÁ × ÓÐÉÓËÕ!',
+ 'Receipt' => 'ë×ÉÔÁÎæÑ',
+ 'Reference' => 'úÓÉÌËÁ',
+ 'Remaining' => 'úÁÌÉÛÉÌÏÓØ',
+ 'Screen' => 'åËÒÁÎ',
+ 'Select from one of the names below' => '÷ÉÂÅÒ¦ÔØ ÏÄÎÕ ¦Ú ÎÁÓÔÕÐÎÉÈ ÎÁÚ×',
+ 'Select from one of the projects below' => '÷ÉÂÅÒ¦ÔØ ÏÄÉÎ ¦Ú ÎÁÓÔÕÐÎÉÈ ÐÒÏÅËÔ¦×',
+ 'Select postscript or PDF!' => '÷ÉÂÅÒ¦ÔØ postscript ÁÂÏ PDF',
+ 'Sep' => '×ÅÒÅÓÎÑ',
+ 'September' => '÷ÅÒÅÓÅÎØ',
+ 'Ship to' => 'ðÏÓÌÁÔÉ ÄÏ',
+ 'Ship via' => 'ðÏÓÌÁÔÉ ÞÅÒÅÚ',
+ 'Source' => 'äÖÅÒÅÌÏ',
+ 'Subject' => 'ôÅÍÁ',
+ 'Subtotal' => 'ð¦ÄÓÕÍÏË ÐÏ ÒÏÚĦÌÕ',
+ 'Tax' => 'ðÏÄÁÔÏË',
+ 'Tax Included' => 'ðÏÄÁÔÏË ×ËÌÀÞÅÎÏ',
+ 'To' => 'äÏ',
+ 'Total' => 'úÁÇÁÌØÎÁ óÕÍÁ',
+ 'Transaction deleted!' => 'ðÒÏ×ÏÄËÁ ×ÉÄÁÌÅÎÁ',
+ 'Transaction posted!' => 'ðÒÏ×ÏÄËÁ ÚĦÊÓÎÅÎÁ',
+ 'Update' => 'ðÏÎÏ×ÉÔÉ',
+ 'Vendor' => 'ðÏÓÔÁÞÁÌØÎÉË',
+ 'Vendor missing!' => 'ðÏÓÔÁÞÁÌØÎÉË ÎÅ ¦ÓÎÕ¤',
+ 'Vendor not on file!' => 'ðÏÔÁÞÁÌØÎÉËÁ ÎÅÍÁ Õ ÓÐÉÓËÕ ',
+ 'Yes' => 'Tak',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'ðÒÏ×ÏÄËÁ_÷ÉÔÒÁÔ' => 'ap_transaction',
+ 'ðÒÏ×ÏÄËÁ_äÏÈÏĦ×' => 'ar_transaction',
+ 'ðÒÏÄÏ×ÖÉÔÉ' => 'continue',
+ '÷ÉÄÁÌÉÔÉ' => 'delete',
+ '÷ÉÓÔÁ×ÉÔÉ' => 'post',
+ '÷ÉÓÔÁ×ÉÔÉ_ÑË_ÎÏ×ÉÊ' => 'post_as_new',
+ 'îÁÄÒÕËÕ×ÁÔÉ' => 'print',
+ 'ðÏÓÌÁÔÉ_ÄÏ' => 'ship_to',
+ 'ðÏÎÏ×ÉÔÉ' => 'update',
+ 'tak' => 'yes',
+};
+
+1;
+
diff --git a/locale/ua/ar b/locale/ua/ar
new file mode 100755
index 00000000..666adffe
--- /dev/null
+++ b/locale/ua/ar
@@ -0,0 +1,181 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'AP Transaction' => 'ðÒÏ×ÏÄËÁ ÷ÉÔÒÁÔ',
+ 'AP Transactions' => 'ðÒÏ×ÏÄËÉ ÷ÉÔÒÁÔ',
+ 'AR Transaction' => 'ðÒÏ×ÏÄËÁ äÏÈÏĦ×',
+ 'AR Transactions' => 'ðÒÏ×ÏÄËÉ äÏÈÏĦ×',
+ 'Account' => 'òÁÈÕÎÏË',
+ 'Accounting Menu' => 'íÅÎÀ ïÂ̦ËÕ',
+ 'Address' => 'áÄÒÅÓÁ',
+ 'Amount' => 'óÕÍÁ',
+ 'Amount Due' => 'úÁÐÌÁÔÉÔÉ óÕÍÕ',
+ 'Apr' => 'ËצÔÎÑ',
+ 'April' => 'ëצÔÅÎØ',
+ 'Are you sure you want to delete Transaction' => '÷É ÐÅ×Φ, ÝÏ ÈÏÞÅÔÅ ×ÉÄÁÌÉÔÉ ÄÁÎÕ ÐÒÏ×ÏÄËÕ?',
+ 'Aug' => 'ÓÅÒÐÎÑ',
+ 'August' => 'óÅÒÐÅÎØ',
+ 'Bcc' => 'ðÒÉ×ÁÔÎÁ ËÏÐ¦Ñ ÄÏ',
+ 'Cannot delete transaction!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÄÁÌÉÔÉ ÐÒÏ×ÏÄËÕ!',
+ 'Cannot post payment for a closed period!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÓÔÁ×ÉÔÉ ÐÌÁÔ¦Ö ÄÌÑ ÚÁËÒÉÔÏÇÏ ÐÅÒ¦ÏÄÕ!',
+ 'Cannot post transaction for a closed period!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÓÔÁ×ÉÔÉ ÐÒÏ×ÏÄËÕ ÄÌÑ ÚÁËÒÉÔÏÇÏ ÐÅÒ¦ÏÄÕ!',
+ 'Cannot post transaction!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÓÔÁ×ÉÔÉ ÐÒÏ×ÏÄËÕ!',
+ 'Cc' => 'ëÏÐ¦Ñ ÄÏ',
+ 'Check' => 'þÅË',
+ 'Closed' => 'úÁËÒÉÔÏ',
+ 'Confirm!' => 'ð¦ÄÔ×ÅÒĦÔØ!',
+ 'Continue' => 'ðÒÏÄÏ×ÖÉÔÉ',
+ 'Credit' => 'ëÒÅÄÉÔ',
+ 'Credit Limit' => 'ì¦Í¦Ô ËÒÅÄÉÔÕ',
+ 'Curr' => '÷ÁÌÀÔÁ',
+ 'Currency' => '÷ÁÌÀÔÁ',
+ 'Current' => 'ðÏÔÏÞÎÉÊ',
+ 'Customer' => 'ë̦¤ÎÔ',
+ 'Customer missing!' => 'îÅ ×ËÁÚÁÎÉÊ Ë̦¤ÎÔ!',
+ 'Customer not on file!' => 'ë̦¤ÎÔÁ ÎÅÍÁ × ÓÐÉÓËÕ!',
+ 'Date' => 'äÁÔÁ',
+ 'Date Paid' => 'äÁÔÁ ÏÐÌÁÔÉ',
+ 'Debit' => 'äÅÂÉÔ',
+ 'Dec' => 'ÇÒÕÄÎÑ',
+ 'December' => 'çÒÕÄÅÎØ',
+ 'Delete' => '÷ÉÄÁÌÉÔÉ',
+ 'Description' => 'ïÐÉÓ',
+ 'Due Date' => 'úÁÐÌÁÔÉÔÉ ÄÏ',
+ 'Due Date missing!' => 'îÅ ×ËÁÚÁÎÉÊ ÔÅÒͦΠÏÐÌÁÔÉ!',
+ 'E-mail' => 'åÌ. ÐÏÛÔÁ',
+ 'Employee' => 'ðÒÁæ×ÎÉË',
+ 'Exch' => 'ëÕÒÓ',
+ 'Exchange Rate' => 'ëÕÒÓ ×ÁÌÀÔÉ',
+ 'Exchange rate for payment missing!' => 'îÅ ×ËÁÚÁÎÉÊ ËÕÒÓ ×ÁÌÀÔÉ ÄÌÑ ÐÌÁÔÅÖÕ!',
+ 'Exchange rate missing!' => 'îÅ ×ËÁÚÁÎÉÊ ËÕÒÓ ×ÁÌÀÔÉ!',
+ 'Feb' => 'ÌÀÔÏÇÏ',
+ 'February' => 'ìÀÔÉÊ',
+ 'From' => '÷¦Ä/ú',
+ 'ID' => '¶ÄÅÎÔÉƦËÁæÊÎÉÊ ÎÏÍÅÒ',
+ 'Include in Report' => 'äÏÄÁÔÉ ÄÏ úצÔÕ',
+ 'Invoice' => 'òÁÈÕÎÏË-ÆÁËÔÕÒÁ',
+ 'Invoice Date' => 'äÁÔÁ ×ÉÓÔÁ×ÌÅÎÎÑ',
+ 'Invoice Date missing!' => 'îÅ ×ËÁÚÁÎÁ ÄÁÔÁ ×ÉÓÔÁ×ÌÅÎÎÑ ÒÁÈÕÎËÁ-ÆÁËÔÕÒÉ',
+ 'Invoice Number' => 'îÏÍÅÒ ÒÁÈÕÎËÁ-ÆÁËÔÕÒÉ',
+ 'Jan' => 'Ó¦ÞÎÑ',
+ 'January' => 'Ó¦ÞÅÎØ',
+ 'Jul' => 'ÌÉÐÎÑ',
+ 'July' => 'ìÉÐÅÎØ',
+ 'Jun' => 'ÞÅÒ×ÎÑ',
+ 'June' => 'þÅÒ×ÅÎØ',
+ 'Mar' => 'ÂÅÒÅÚÎÑ',
+ 'March' => 'âÅÒÅÚÅÎØ',
+ 'May' => 'ÔÒÁ×ÎÑ',
+ 'May ' => 'ôÒÁ×ÅÎØ',
+ 'Message' => 'ðÏצÄÏÍÌÅÎÎÑ',
+ 'No.' => 'No.',
+ 'Notes' => 'ðÒÉͦÔËÉ',
+ 'Nov' => 'ÌÉÓÔÏÐÁÄÁ',
+ 'November' => 'ìÉÓÔÏÐÁÄ',
+ 'Number' => 'îÏÍÅÒ',
+ 'Oct' => 'ÖÏ×ÔÎÑ',
+ 'October' => 'öÏ×ÔÅÎØ',
+ 'Open' => '÷¦ÄËÒÉÔÏ',
+ 'Order' => 'úÁÍÏ×ÌÅÎÎÑ',
+ 'Order Number' => 'îÏÍÅÒ úÁÍÏ×ÌÅÎÎÑ',
+ 'PDF' => 'PDF ÆÁÊÌ ÆÏÒÍÁÔ',
+ 'Paid' => 'úÁÐÌÁÞÅÎÏ',
+ 'Payment date missing!' => 'îÅ ×ËÁÚÁÎÏ ÄÁÔÕ ðÌÁÔÅÖÕ!',
+ 'Payments' => 'ðÌÁÔÅÖ¦',
+ 'Post' => '÷ÉÓÔÁ×ÉÔÉ',
+ 'Post as new' => '÷ÉÓÔÁ×ÉÔÉ ÑË ÎÏ×ÉÊ',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'îÁÄÒÕËÕ×ÁÔÉ',
+ 'Project' => 'ðÒÏÅËÔ',
+ 'Project not on file!' => 'ðÒÏÅËÔÕ ÎÅÍÁ × ÓÐÉÓËÕ!',
+ 'Receipt' => 'ë×ÉÔÁÎæÑ',
+ 'Reference' => 'úÓÉÌËÁ',
+ 'Remaining' => 'úÁÌÉÛÉÌÏÓØ',
+ 'Screen' => 'åËÒÁÎ',
+ 'Select from one of the names below' => '÷ÉÂÅÒ¦ÔØ ÏÄÎÕ ¦Ú ÎÁÓÔÕÐÎÉÈ ÎÁÚ×',
+ 'Select from one of the projects below' => '÷ÉÂÅÒ¦ÔØ ÏÄÉÎ ¦Ú ÎÁÓÔÕÐÎÉÈ ÐÒÏÅËÔ¦×',
+ 'Select postscript or PDF!' => '÷ÉÂÅÒ¦ÔØ postscript ÁÂÏ PDF',
+ 'Sep' => '×ÅÒÅÓÎÑ',
+ 'September' => '÷ÅÒÅÓÅÎØ',
+ 'Ship to' => 'ðÏÓÌÁÔÉ ÄÏ',
+ 'Ship via' => 'ðÏÓÌÁÔÉ ÞÅÒÅÚ',
+ 'Source' => 'äÖÅÒÅÌÏ',
+ 'Subject' => 'ôÅÍÁ',
+ 'Subtotal' => 'ð¦ÄÓÕÍÏË ÐÏ ÒÏÚĦÌÕ',
+ 'Tax' => 'ðÏÄÁÔÏË',
+ 'Tax Included' => 'ðÏÄÁÔÏË ×ËÌÀÞÅÎÏ',
+ 'To' => 'äÏ',
+ 'Total' => 'úÁÇÁÌØÎÁ óÕÍÁ',
+ 'Transaction deleted!' => 'ðÒÏ×ÏÄËÁ ×ÉÄÁÌÅÎÁ',
+ 'Transaction posted!' => 'ðÒÏ×ÏÄËÁ ÚĦÊÓÎÅÎÁ',
+ 'Update' => 'ðÏÎÏ×ÉÔÉ',
+ 'Vendor' => 'ðÏÓÔÁÞÁÌØÎÉË',
+ 'Vendor missing!' => 'ðÏÓÔÁÞÁÌØÎÉË ÎÅ ¦ÓÎÕ¤',
+ 'Vendor not on file!' => 'ðÏÔÁÞÁÌØÎÉËÁ ÎÅÍÁ Õ ÓÐÉÓËÕ ',
+ 'Yes' => 'Tak',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'ðÒÏ×ÏÄËÁ_÷ÉÔÒÁÔ' => 'ap_transaction',
+ 'ðÒÏ×ÏÄËÁ_äÏÈÏĦ×' => 'ar_transaction',
+ 'ðÒÏÄÏ×ÖÉÔÉ' => 'continue',
+ '÷ÉÄÁÌÉÔÉ' => 'delete',
+ '÷ÉÓÔÁ×ÉÔÉ' => 'post',
+ '÷ÉÓÔÁ×ÉÔÉ_ÑË_ÎÏ×ÉÊ' => 'post_as_new',
+ 'îÁÄÒÕËÕ×ÁÔÉ' => 'print',
+ 'ðÏÓÌÁÔÉ_ÄÏ' => 'ship_to',
+ 'ðÏÎÏ×ÉÔÉ' => 'update',
+ 'tak' => 'yes',
+};
+
+1;
+
diff --git a/locale/ua/arap b/locale/ua/arap
new file mode 100755
index 00000000..4f723e6a
--- /dev/null
+++ b/locale/ua/arap
@@ -0,0 +1,50 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'Address' => 'áÄÒÅÓÁ',
+ 'Bcc' => 'ðÒÉ×ÁÔÎÁ ËÏÐ¦Ñ ÄÏ',
+ 'Cc' => 'ëÏÐ¦Ñ ÄÏ',
+ 'Continue' => 'ðÒÏÄÏ×ÖÉÔÉ',
+ 'Customer not on file!' => 'ë̦¤ÎÔÁ ÎÅÍÁ × ÓÐÉÓËÕ!',
+ 'Date' => 'äÁÔÁ',
+ 'Description' => 'ïÐÉÓ',
+ 'E-mail' => 'åÌ. ÐÏÛÔÁ',
+ 'Message' => 'ðÏצÄÏÍÌÅÎÎÑ',
+ 'Number' => 'îÏÍÅÒ',
+ 'Print' => 'îÁÄÒÕËÕ×ÁÔÉ',
+ 'Project not on file!' => 'ðÒÏÅËÔÕ ÎÅÍÁ × ÓÐÉÓËÕ!',
+ 'Reference' => 'úÓÉÌËÁ',
+ 'Select from one of the names below' => '÷ÉÂÅÒ¦ÔØ ÏÄÎÕ ¦Ú ÎÁÓÔÕÐÎÉÈ ÎÁÚ×',
+ 'Select from one of the projects below' => '÷ÉÂÅÒ¦ÔØ ÏÄÉÎ ¦Ú ÎÁÓÔÕÐÎÉÈ ÐÒÏÅËÔ¦×',
+ 'Subject' => 'ôÅÍÁ',
+ 'To' => 'äÏ',
+ 'Vendor not on file!' => 'ðÏÔÁÞÁÌØÎÉËÁ ÎÅÍÁ Õ ÓÐÉÓËÕ ',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'ðÒÏÄÏ×ÖÉÔÉ' => 'continue',
+};
+
+1;
+
diff --git a/locale/ua/arapprn b/locale/ua/arapprn
new file mode 100755
index 00000000..39a8d707
--- /dev/null
+++ b/locale/ua/arapprn
@@ -0,0 +1,30 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'Account' => 'òÁÈÕÎÏË',
+ 'Amount' => 'óÕÍÁ',
+ 'Continue' => 'ðÒÏÄÏ×ÖÉÔÉ',
+ 'Date' => 'äÁÔÁ',
+ 'PDF' => 'PDF ÆÁÊÌ ÆÏÒÍÁÔ',
+ 'Postscript' => 'Postscript',
+ 'Screen' => 'åËÒÁÎ',
+ 'Select postscript or PDF!' => '÷ÉÂÅÒ¦ÔØ postscript ÁÂÏ PDF',
+ 'Source' => 'äÖÅÒÅÌÏ',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'ðÒÏÄÏ×ÖÉÔÉ' => 'continue',
+};
+
+1;
+
diff --git a/locale/ua/bp b/locale/ua/bp
new file mode 100755
index 00000000..e21719ff
--- /dev/null
+++ b/locale/ua/bp
@@ -0,0 +1,47 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'Account' => 'òÁÈÕÎÏË',
+ 'Accounting Menu' => 'íÅÎÀ ïÂ̦ËÕ',
+ 'Confirm!' => 'ð¦ÄÔ×ÅÒĦÔØ!',
+ 'Continue' => 'ðÒÏÄÏ×ÖÉÔÉ',
+ 'Current' => 'ðÏÔÏÞÎÉÊ',
+ 'Customer' => 'ë̦¤ÎÔ',
+ 'Date' => 'äÁÔÁ',
+ 'Employee' => 'ðÒÁæ×ÎÉË',
+ 'From' => '÷¦Ä/ú',
+ 'ID' => '¶ÄÅÎÔÉƦËÁæÊÎÉÊ ÎÏÍÅÒ',
+ 'Invoice' => 'òÁÈÕÎÏË-ÆÁËÔÕÒÁ',
+ 'Invoice Number' => 'îÏÍÅÒ ÒÁÈÕÎËÁ-ÆÁËÔÕÒÉ',
+ 'Order' => 'úÁÍÏ×ÌÅÎÎÑ',
+ 'Order Number' => 'îÏÍÅÒ úÁÍÏ×ÌÅÎÎÑ',
+ 'Print' => 'îÁÄÒÕËÕ×ÁÔÉ',
+ 'Purchase Orders' => 'ëÕЦ×ÅÌØΦ úÁÍÏ×ÌÅÎÎÑ',
+ 'Sales Orders' => 'ðÒÏÄÁÖΦ îÁËÌÁÄΦ',
+ 'Select all' => '÷ÉÂÒÁÔÉ ×ÓÅ',
+ 'To' => 'äÏ',
+ 'Vendor' => 'ðÏÓÔÁÞÁÌØÎÉË',
+ 'Yes' => 'Tak',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'ðÒÏÄÏ×ÖÉÔÉ' => 'continue',
+ 'îÁÄÒÕËÕ×ÁÔÉ' => 'print',
+ '÷ÉÂÒÁÔÉ_×ÓÅ' => 'select_all',
+ 'tak' => 'yes',
+};
+
+1;
+
diff --git a/locale/ua/ca b/locale/ua/ca
new file mode 100755
index 00000000..894a30a4
--- /dev/null
+++ b/locale/ua/ca
@@ -0,0 +1,54 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'Account' => 'òÁÈÕÎÏË',
+ 'Apr' => 'ËצÔÎÑ',
+ 'April' => 'ëצÔÅÎØ',
+ 'Aug' => 'ÓÅÒÐÎÑ',
+ 'August' => 'óÅÒÐÅÎØ',
+ 'Balance' => 'âÁÌÁÎÓ',
+ 'Chart of Accounts' => 'ðÌÁÎ òÁÈÕÎ˦×',
+ 'Credit' => 'ëÒÅÄÉÔ',
+ 'Current' => 'ðÏÔÏÞÎÉÊ',
+ 'Date' => 'äÁÔÁ',
+ 'Debit' => 'äÅÂÉÔ',
+ 'Dec' => 'ÇÒÕÄÎÑ',
+ 'December' => 'çÒÕÄÅÎØ',
+ 'Description' => 'ïÐÉÓ',
+ 'Feb' => 'ÌÀÔÏÇÏ',
+ 'February' => 'ìÀÔÉÊ',
+ 'From' => '÷¦Ä/ú',
+ 'GIFI' => 'GIFI',
+ 'Include in Report' => 'äÏÄÁÔÉ ÄÏ úצÔÕ',
+ 'Jan' => 'Ó¦ÞÎÑ',
+ 'January' => 'Ó¦ÞÅÎØ',
+ 'Jul' => 'ÌÉÐÎÑ',
+ 'July' => 'ìÉÐÅÎØ',
+ 'Jun' => 'ÞÅÒ×ÎÑ',
+ 'June' => 'þÅÒ×ÅÎØ',
+ 'List Transactions' => 'óÐÉÓÏË ðÒÏ×ÏÄÏË',
+ 'Mar' => 'ÂÅÒÅÚÎÑ',
+ 'March' => 'âÅÒÅÚÅÎØ',
+ 'May' => 'ÔÒÁ×ÎÑ',
+ 'May ' => 'ôÒÁ×ÅÎØ',
+ 'Nov' => 'ÌÉÓÔÏÐÁÄÁ',
+ 'November' => 'ìÉÓÔÏÐÁÄ',
+ 'Oct' => 'ÖÏ×ÔÎÑ',
+ 'October' => 'öÏ×ÔÅÎØ',
+ 'Reference' => 'úÓÉÌËÁ',
+ 'Sep' => '×ÅÒÅÓÎÑ',
+ 'September' => '÷ÅÒÅÓÅÎØ',
+ 'Subtotal' => 'ð¦ÄÓÕÍÏË ÐÏ ÒÏÚĦÌÕ',
+ 'To' => 'äÏ',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'óÐÉÓÏË_ðÒÏ×ÏÄÏË' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/ua/cp b/locale/ua/cp
new file mode 100755
index 00000000..a1aafe5c
--- /dev/null
+++ b/locale/ua/cp
@@ -0,0 +1,115 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'AP' => '÷ÉÔÒÁÔÉ',
+ 'AR' => 'äÏÈÏÄÉ',
+ 'Account' => 'òÁÈÕÎÏË',
+ 'Accounting Menu' => 'íÅÎÀ ïÂ̦ËÕ',
+ 'Address' => 'áÄÒÅÓÁ',
+ 'All' => '÷Ó¦',
+ 'Amount' => 'óÕÍÁ',
+ 'Amount Due' => 'úÁÐÌÁÔÉÔÉ óÕÍÕ',
+ 'Bcc' => 'ðÒÉ×ÁÔÎÁ ËÏÐ¦Ñ ÄÏ',
+ 'Cannot post payment for a closed period!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÓÔÁ×ÉÔÉ ÐÌÁÔ¦Ö ÄÌÑ ÚÁËÒÉÔÏÇÏ ÐÅÒ¦ÏÄÕ!',
+ 'Cc' => 'ëÏÐ¦Ñ ÄÏ',
+ 'Continue' => 'ðÒÏÄÏ×ÖÉÔÉ',
+ 'Currency' => '÷ÁÌÀÔÁ',
+ 'Customer' => 'ë̦¤ÎÔ',
+ 'Customer not on file!' => 'ë̦¤ÎÔÁ ÎÅÍÁ × ÓÐÉÓËÕ!',
+ 'Date' => 'äÁÔÁ',
+ 'Date missing!' => 'îÅ ×ËÁÚÁÎÁ ÄÁÔÁ!',
+ 'Deposit' => 'äÅÐÏÚÉÔ/÷ËÌÁÄ',
+ 'Description' => 'ïÐÉÓ',
+ 'Due Date' => 'úÁÐÌÁÔÉÔÉ ÄÏ',
+ 'E-mail' => 'åÌ. ÐÏÛÔÁ',
+ 'Exchange Rate' => 'ëÕÒÓ ×ÁÌÀÔÉ',
+ 'Exchange rate missing!' => 'îÅ ×ËÁÚÁÎÉÊ ËÕÒÓ ×ÁÌÀÔÉ!',
+ 'From' => '÷¦Ä/ú',
+ 'Invoice' => 'òÁÈÕÎÏË-ÆÁËÔÕÒÁ',
+ 'Invoices' => 'òÁÈÕÎËÉ-ÆÁËÔÕÒÉ',
+ 'Language' => 'íÏ×Á',
+ 'Message' => 'ðÏצÄÏÍÌÅÎÎÑ',
+ 'Number' => 'îÏÍÅÒ',
+ 'PDF' => 'PDF ÆÁÊÌ ÆÏÒÍÁÔ',
+ 'Payment' => 'ðÌÁÔ¦Ö',
+ 'Payment posted!' => 'ðÌÁÔ¦Ö ×ÉÓÔÁ×ÌÅÎÏ!',
+ 'Payments' => 'ðÌÁÔÅÖ¦',
+ 'Post' => '÷ÉÓÔÁ×ÉÔÉ',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'îÁÄÒÕËÕ×ÁÔÉ',
+ 'Project not on file!' => 'ðÒÏÅËÔÕ ÎÅÍÁ × ÓÐÉÓËÕ!',
+ 'Receipt' => 'ë×ÉÔÁÎæÑ',
+ 'Receipts' => 'ë×ÉÔÁÎæ§',
+ 'Reference' => 'úÓÉÌËÁ',
+ 'Screen' => 'åËÒÁÎ',
+ 'Select all' => '÷ÉÂÒÁÔÉ ×ÓÅ',
+ 'Select from one of the names below' => '÷ÉÂÅÒ¦ÔØ ÏÄÎÕ ¦Ú ÎÁÓÔÕÐÎÉÈ ÎÁÚ×',
+ 'Select from one of the projects below' => '÷ÉÂÅÒ¦ÔØ ÏÄÉÎ ¦Ú ÎÁÓÔÕÐÎÉÈ ÐÒÏÅËÔ¦×',
+ 'Select postscript or PDF!' => '÷ÉÂÅÒ¦ÔØ postscript ÁÂÏ PDF',
+ 'Source' => 'äÖÅÒÅÌÏ',
+ 'Subject' => 'ôÅÍÁ',
+ 'To' => 'äÏ',
+ 'Update' => 'ðÏÎÏ×ÉÔÉ',
+ 'Vendor' => 'ðÏÓÔÁÞÁÌØÎÉË',
+ 'Vendor not on file!' => 'ðÏÔÁÞÁÌØÎÉËÁ ÎÅÍÁ Õ ÓÐÉÓËÕ ',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'ðÒÏÄÏ×ÖÉÔÉ' => 'continue',
+ '÷ÉÓÔÁ×ÉÔÉ' => 'post',
+ 'îÁÄÒÕËÕ×ÁÔÉ' => 'print',
+ '÷ÉÂÒÁÔÉ_×ÓÅ' => 'select_all',
+ 'ðÏÎÏ×ÉÔÉ' => 'update',
+};
+
+1;
+
diff --git a/locale/ua/ct b/locale/ua/ct
new file mode 100755
index 00000000..9952aebf
--- /dev/null
+++ b/locale/ua/ct
@@ -0,0 +1,138 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'AP Transaction' => 'ðÒÏ×ÏÄËÁ ÷ÉÔÒÁÔ',
+ 'AP Transactions' => 'ðÒÏ×ÏÄËÉ ÷ÉÔÒÁÔ',
+ 'AR Transaction' => 'ðÒÏ×ÏÄËÁ äÏÈÏĦ×',
+ 'AR Transactions' => 'ðÒÏ×ÏÄËÉ äÏÈÏĦ×',
+ 'Accounting Menu' => 'íÅÎÀ ïÂ̦ËÕ',
+ 'Active' => 'áËÔÉ×ÎÉÊ',
+ 'Add Customer' => 'îÏ×ÉÊ Ë̦¤ÎÔ',
+ 'Add Vendor' => 'îÏ×ÉÊ ÐÏÓÔÁÞÁÌØÎÉË',
+ 'Address' => 'áÄÒÅÓÁ',
+ 'All' => '÷Ó¦',
+ 'Amount' => 'óÕÍÁ',
+ 'Bcc' => 'ðÒÉ×ÁÔÎÁ ËÏÐ¦Ñ ÄÏ',
+ 'Cannot delete customer!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÄÁÌÉÔÉ Ë̦¤ÎÔÁ',
+ 'Cannot delete vendor!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÄÁÌÉÔÉ ÐÏÓÔÁÞÁÌØÎÉËÁ!',
+ 'Cc' => 'ëÏÐ¦Ñ ÄÏ',
+ 'Closed' => 'úÁËÒÉÔÏ',
+ 'Contact' => 'ëÏÎÔÁËÔÎÁ ÏÓÏÂÁ',
+ 'Continue' => 'ðÒÏÄÏ×ÖÉÔÉ',
+ 'Credit Limit' => 'ì¦Í¦Ô ËÒÅÄÉÔÕ',
+ 'Curr' => '÷ÁÌÀÔÁ',
+ 'Currency' => '÷ÁÌÀÔÁ',
+ 'Customer deleted!' => 'ë̦¤ÎÔÁ ×ÉÄÁÌÅÎÏ!',
+ 'Customer saved!' => 'ë̦¤ÎÔÁ ÚÂÅÒÅÖÅÎÏ!',
+ 'Customers' => 'ë̦¤ÎÔÉ',
+ 'Delete' => '÷ÉÄÁÌÉÔÉ',
+ 'Delivery Date' => 'äÁÔÁ ÄÏÓÔÁ×ËÉ',
+ 'Description' => 'ïÐÉÓ',
+ 'Discount' => 'óËÉÄËÁ',
+ 'E-mail' => 'åÌ. ÐÏÛÔÁ',
+ 'Edit Customer' => '÷¦ÄÒÅÄÁÇÕ×ÁÔÉ ë̦¤ÎÔÁ',
+ 'Edit Vendor' => '÷¦ÄÒÅÄÁÇÕ×ÁÔÉ ðÏÓÔÁÞÁÌØÎÉËÁ',
+ 'Employee' => 'ðÒÁæ×ÎÉË',
+ 'Fax' => 'æÁÈ',
+ 'From' => '÷¦Ä/ú',
+ 'GIFI' => 'GIFI',
+ 'ID' => '¶ÄÅÎÔÉƦËÁæÊÎÉÊ ÎÏÍÅÒ',
+ 'Include in Report' => 'äÏÄÁÔÉ ÄÏ úצÔÕ',
+ 'Invoice' => 'òÁÈÕÎÏË-ÆÁËÔÕÒÁ',
+ 'Item not on file!' => 'òÅÞ¦ ÎÅÍÁ × ÓÐÉÓËÕ!',
+ 'Language' => 'íÏ×Á',
+ 'Name' => 'îÁÚ×Á',
+ 'Name missing!' => 'îÅ ×ËÁÚÁÎÁ ÎÁÚ×Á!',
+ 'No.' => 'No.',
+ 'Notes' => 'ðÒÉͦÔËÉ',
+ 'Number' => 'îÏÍÅÒ',
+ 'Open' => '÷¦ÄËÒÉÔÏ',
+ 'Order' => 'úÁÍÏ×ÌÅÎÎÑ',
+ 'Orphaned' => '÷¦ÄÏËÒÅÍÌÅÎÉÊ/ïÓÉÒÏÔ¦ÌÉÊ',
+ 'Phone' => 'ôÅÌ.',
+ 'Purchase Order' => 'ëÕЦ×ÅÌØÎÅ úÁÍÏ×ÌÅÎÎÑ',
+ 'Purchase Orders' => 'ëÕЦ×ÅÌØΦ úÁÍÏ×ÌÅÎÎÑ',
+ 'Qty' => 'ë¦ÌØ˦ÓÔØ',
+ 'Sales Invoice' => 'òÁÈÕÎÏË-ÆÁËÔÕÒÁ',
+ 'Sales Order' => 'ðÒÏÄÁÖÎÁ îÁËÌÁÄÎÁ',
+ 'Sales Orders' => 'ðÒÏÄÁÖΦ îÁËÌÁÄΦ',
+ 'Save' => 'úÂÅÒÅÇÔÉ',
+ 'Save as new' => 'úÂÅÒÅÇÔÉ ÑË ÎÏ×Å',
+ 'Sell Price' => '÷¦ÄÐÕÓËÎÁ ã¦ÎÁ',
+ 'Subtotal' => 'ð¦ÄÓÕÍÏË ÐÏ ÒÏÚĦÌÕ',
+ 'Tax' => 'ðÏÄÁÔÏË',
+ 'Tax Included' => 'ðÏÄÁÔÏË ×ËÌÀÞÅÎÏ',
+ 'Taxable' => 'ïÐÏÄÁÔËÏ×Õ¤ÔØÓÑ',
+ 'Terms' => 'õÍÏ×É: ',
+ 'To' => 'äÏ',
+ 'Total' => 'úÁÇÁÌØÎÁ óÕÍÁ',
+ 'Unit' => 'ïÄÉÎÉÃÑ',
+ 'Update' => 'ðÏÎÏ×ÉÔÉ',
+ 'Vendor Invoice' => 'òÁÈÕÎÏË-ÆÁËÔÕÒÁ',
+ 'Vendor deleted!' => 'ðÏÓÔÁÞÁÌØÎÉË ×ÉÄÁÌÅÎÉÊ',
+ 'Vendor saved!' => 'ðÏÓÔÁÞÁÌØÎÉËÁ ÚÂÅÒÅÖÅÎÏ',
+ 'Vendors' => 'ðÏÓÔÁÞÁÌØÎÉËÉ',
+ 'days' => 'ÄΦ×',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'ðÒÏ×ÏÄËÁ_÷ÉÔÒÁÔ' => 'ap_transaction',
+ 'ðÒÏ×ÏÄËÁ_äÏÈÏĦ×' => 'ar_transaction',
+ 'îÏ×ÉÊ_Ë̦¤ÎÔ' => 'add_customer',
+ 'îÏ×ÉÊ_ÐÏÓÔÁÞÁÌØÎÉË' => 'add_vendor',
+ 'ðÒÏÄÏ×ÖÉÔÉ' => 'continue',
+ '÷ÉÄÁÌÉÔÉ' => 'delete',
+ 'ëÕЦ×ÅÌØÎÅ_úÁÍÏ×ÌÅÎÎÑ' => 'purchase_order',
+ 'òÁÈÕÎÏË_ÆÁËÔÕÒÁ' => 'sales_invoice',
+ 'ðÒÏÄÁÖÎÁ_îÁËÌÁÄÎÁ' => 'sales_order',
+ 'úÂÅÒÅÇÔÉ' => 'save',
+ 'úÂÅÒÅÇÔÉ_ÑË_ÎÏ×Å' => 'save_as_new',
+ 'ðÏÎÏ×ÉÔÉ' => 'update',
+ 'òÁÈÕÎÏË_ÆÁËÔÕÒÁ' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/ua/gl b/locale/ua/gl
new file mode 100755
index 00000000..7bfe27b8
--- /dev/null
+++ b/locale/ua/gl
@@ -0,0 +1,141 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'AP Transaction' => 'ðÒÏ×ÏÄËÁ ÷ÉÔÒÁÔ',
+ 'AR Transaction' => 'ðÒÏ×ÏÄËÁ äÏÈÏĦ×',
+ 'Account' => 'òÁÈÕÎÏË',
+ 'Accounting Menu' => 'íÅÎÀ ïÂ̦ËÕ',
+ 'Add General Ledger Transaction' => 'îÏ×Á ÐÒÏ×ÏÄËÁ',
+ 'Address' => 'áÄÒÅÓÁ',
+ 'All' => '÷Ó¦',
+ 'Amount' => 'óÕÍÁ',
+ 'Apr' => 'ËצÔÎÑ',
+ 'April' => 'ëצÔÅÎØ',
+ 'Are you sure you want to delete Transaction' => '÷É ÐÅ×Φ, ÝÏ ÈÏÞÅÔÅ ×ÉÄÁÌÉÔÉ ÄÁÎÕ ÐÒÏ×ÏÄËÕ?',
+ 'Asset' => 'áËÔÉ×',
+ 'Aug' => 'ÓÅÒÐÎÑ',
+ 'August' => 'óÅÒÐÅÎØ',
+ 'Balance' => 'âÁÌÁÎÓ',
+ 'Bcc' => 'ðÒÉ×ÁÔÎÁ ËÏÐ¦Ñ ÄÏ',
+ 'Cannot delete transaction!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÄÁÌÉÔÉ ÐÒÏ×ÏÄËÕ!',
+ 'Cannot post transaction for a closed period!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÓÔÁ×ÉÔÉ ÐÒÏ×ÏÄËÕ ÄÌÑ ÚÁËÒÉÔÏÇÏ ÐÅÒ¦ÏÄÕ!',
+ 'Cannot post transaction!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÓÔÁ×ÉÔÉ ÐÒÏ×ÏÄËÕ!',
+ 'Cc' => 'ëÏÐ¦Ñ ÄÏ',
+ 'Confirm!' => 'ð¦ÄÔ×ÅÒĦÔØ!',
+ 'Continue' => 'ðÒÏÄÏ×ÖÉÔÉ',
+ 'Credit' => 'ëÒÅÄÉÔ',
+ 'Current' => 'ðÏÔÏÞÎÉÊ',
+ 'Customer not on file!' => 'ë̦¤ÎÔÁ ÎÅÍÁ × ÓÐÉÓËÕ!',
+ 'Date' => 'äÁÔÁ',
+ 'Debit' => 'äÅÂÉÔ',
+ 'Dec' => 'ÇÒÕÄÎÑ',
+ 'December' => 'çÒÕÄÅÎØ',
+ 'Delete' => '÷ÉÄÁÌÉÔÉ',
+ 'Description' => 'ïÐÉÓ',
+ 'E-mail' => 'åÌ. ÐÏÛÔÁ',
+ 'Edit General Ledger Transaction' => '÷¦ÄÒÅÄÁÇÕ×ÁÔÉ ðÒÏ×ÏÄËÕ çÏÌÏ×Îϧ ëÎÉÇÉ',
+ 'Equity' => 'ëÁЦÔÁÌ',
+ 'Expense' => '÷ÉÄÁÔËÉ',
+ 'Feb' => 'ÌÀÔÏÇÏ',
+ 'February' => 'ìÀÔÉÊ',
+ 'From' => '÷¦Ä/ú',
+ 'GIFI' => 'GIFI',
+ 'GL Transaction' => 'çëðÒÏ×ÏÄËÁ',
+ 'General Ledger' => 'çÏÌÏ×ÎÁ ëÎÉÇÁ',
+ 'ID' => '¶ÄÅÎÔÉƦËÁæÊÎÉÊ ÎÏÍÅÒ',
+ 'Include in Report' => 'äÏÄÁÔÉ ÄÏ úצÔÕ',
+ 'Jan' => 'Ó¦ÞÎÑ',
+ 'January' => 'Ó¦ÞÅÎØ',
+ 'Jul' => 'ÌÉÐÎÑ',
+ 'July' => 'ìÉÐÅÎØ',
+ 'Jun' => 'ÞÅÒ×ÎÑ',
+ 'June' => 'þÅÒ×ÅÎØ',
+ 'Liability' => 'ðÁÓÓÉ×',
+ 'Mar' => 'ÂÅÒÅÚÎÑ',
+ 'March' => 'âÅÒÅÚÅÎØ',
+ 'May' => 'ÔÒÁ×ÎÑ',
+ 'May ' => 'ôÒÁ×ÅÎØ',
+ 'Message' => 'ðÏצÄÏÍÌÅÎÎÑ',
+ 'Notes' => 'ðÒÉͦÔËÉ',
+ 'Nov' => 'ÌÉÓÔÏÐÁÄÁ',
+ 'November' => 'ìÉÓÔÏÐÁÄ',
+ 'Number' => 'îÏÍÅÒ',
+ 'Oct' => 'ÖÏ×ÔÎÑ',
+ 'October' => 'öÏ×ÔÅÎØ',
+ 'Post' => '÷ÉÓÔÁ×ÉÔÉ',
+ 'Post as new' => '÷ÉÓÔÁ×ÉÔÉ ÑË ÎÏ×ÉÊ',
+ 'Print' => 'îÁÄÒÕËÕ×ÁÔÉ',
+ 'Project' => 'ðÒÏÅËÔ',
+ 'Project not on file!' => 'ðÒÏÅËÔÕ ÎÅÍÁ × ÓÐÉÓËÕ!',
+ 'Reference' => 'úÓÉÌËÁ',
+ 'Reports' => 'úצÔÉ',
+ 'Select from one of the names below' => '÷ÉÂÅÒ¦ÔØ ÏÄÎÕ ¦Ú ÎÁÓÔÕÐÎÉÈ ÎÁÚ×',
+ 'Select from one of the projects below' => '÷ÉÂÅÒ¦ÔØ ÏÄÉÎ ¦Ú ÎÁÓÔÕÐÎÉÈ ÐÒÏÅËÔ¦×',
+ 'Sep' => '×ÅÒÅÓÎÑ',
+ 'September' => '÷ÅÒÅÓÅÎØ',
+ 'Source' => 'äÖÅÒÅÌÏ',
+ 'Subject' => 'ôÅÍÁ',
+ 'Subtotal' => 'ð¦ÄÓÕÍÏË ÐÏ ÒÏÚĦÌÕ',
+ 'To' => 'äÏ',
+ 'Transaction Date missing!' => 'îÅ ×ËÁÚÁÎÁ ÄÁÔÁ ÐÒÏ×ÏÄËÉ',
+ 'Transaction deleted!' => 'ðÒÏ×ÏÄËÁ ×ÉÄÁÌÅÎÁ',
+ 'Transaction posted!' => 'ðÒÏ×ÏÄËÁ ÚĦÊÓÎÅÎÁ',
+ 'Update' => 'ðÏÎÏ×ÉÔÉ',
+ 'Vendor not on file!' => 'ðÏÔÁÞÁÌØÎÉËÁ ÎÅÍÁ Õ ÓÐÉÓËÕ ',
+ 'Yes' => 'Tak',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'ðÒÏ×ÏÄËÁ_÷ÉÔÒÁÔ' => 'ap_transaction',
+ 'ðÒÏ×ÏÄËÁ_äÏÈÏĦ×' => 'ar_transaction',
+ 'ðÒÏÄÏ×ÖÉÔÉ' => 'continue',
+ '÷ÉÄÁÌÉÔÉ' => 'delete',
+ 'çëðÒÏ×ÏÄËÁ' => 'gl_transaction',
+ '÷ÉÓÔÁ×ÉÔÉ' => 'post',
+ '÷ÉÓÔÁ×ÉÔÉ_ÑË_ÎÏ×ÉÊ' => 'post_as_new',
+ 'ðÏÎÏ×ÉÔÉ' => 'update',
+ 'tak' => 'yes',
+};
+
+1;
+
diff --git a/locale/ua/hr b/locale/ua/hr
new file mode 100755
index 00000000..f81ea298
--- /dev/null
+++ b/locale/ua/hr
@@ -0,0 +1,74 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'AP' => '÷ÉÔÒÁÔÉ',
+ 'Accounting Menu' => 'íÅÎÀ ïÂ̦ËÕ',
+ 'Active' => 'áËÔÉ×ÎÉÊ',
+ 'Address' => 'áÄÒÅÓÁ',
+ 'Administrator' => 'áÄͦΦÓÔÒÁÔÏÒ',
+ 'All' => '÷Ó¦',
+ 'Amount' => 'óÕÍÁ',
+ 'Continue' => 'ðÒÏÄÏ×ÖÉÔÉ',
+ 'Delete' => '÷ÉÄÁÌÉÔÉ',
+ 'Description' => 'ïÐÉÓ',
+ 'E-mail' => 'åÌ. ÐÏÛÔÁ',
+ 'Employee' => 'ðÒÁæ×ÎÉË',
+ 'Expense' => '÷ÉÄÁÔËÉ',
+ 'From' => '÷¦Ä/ú',
+ 'ID' => '¶ÄÅÎÔÉƦËÁæÊÎÉÊ ÎÏÍÅÒ',
+ 'Include in Report' => 'äÏÄÁÔÉ ÄÏ úצÔÕ',
+ 'Login' => 'ðÏÞÁÔÏË óÅÁÎÓÕ',
+ 'Name' => 'îÁÚ×Á',
+ 'Name missing!' => 'îÅ ×ËÁÚÁÎÁ ÎÁÚ×Á!',
+ 'Notes' => 'ðÒÉͦÔËÉ',
+ 'Number' => 'îÏÍÅÒ',
+ 'Orphaned' => '÷¦ÄÏËÒÅÍÌÅÎÉÊ/ïÓÉÒÏÔ¦ÌÉÊ',
+ 'Rate' => 'òÏÚæÎËÁ',
+ 'Sales' => 'úÂÕÔ',
+ 'Save' => 'úÂÅÒÅÇÔÉ',
+ 'Save as new' => 'úÂÅÒÅÇÔÉ ÑË ÎÏ×Å',
+ 'To' => 'äÏ',
+ 'Update' => 'ðÏÎÏ×ÉÔÉ',
+ 'User' => 'ëÏÒÉÓÔÕ×ÁÞ',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'ðÒÏÄÏ×ÖÉÔÉ' => 'continue',
+ '÷ÉÄÁÌÉÔÉ' => 'delete',
+ 'úÂÅÒÅÇÔÉ' => 'save',
+ 'úÂÅÒÅÇÔÉ_ÑË_ÎÏ×Å' => 'save_as_new',
+ 'ðÏÎÏ×ÉÔÉ' => 'update',
+};
+
+1;
+
diff --git a/locale/ua/ic b/locale/ua/ic
new file mode 100755
index 00000000..600b7a28
--- /dev/null
+++ b/locale/ua/ic
@@ -0,0 +1,224 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'Accounting Menu' => 'íÅÎÀ ïÂ̦ËÕ',
+ 'Accounts' => 'òÁÈÕÎËÉ',
+ 'Active' => 'áËÔÉ×ÎÉÊ',
+ 'Add' => 'îÏ×ÉÊ',
+ 'Add Assembly' => 'îÏ×ÙÊ ËÏÍÐÌÅËÔ',
+ 'Add Part' => 'îÏ×ÉÊ ôÏ×ÁÒ',
+ 'Add Purchase Order' => 'îÏ×Å ÚÁÍÏ×ÌÅÎÎÑ ÎÁ ËÕЦ×ÌÀ',
+ 'Add Sales Order' => 'îÏ×Å ÚÁÍÏ×ÌÅÎÎÑ ÎÁ ÐÒÏÄÁÖ',
+ 'Add Service' => 'îÏ×Á ÐÏÓÌÕÇÁ',
+ 'Address' => 'áÄÒÅÓÁ',
+ 'Apr' => 'ËצÔÎÑ',
+ 'April' => 'ëצÔÅÎØ',
+ 'Assemblies' => 'ëÏÍÐÌÅËÔÉ',
+ 'Assemblies restocked!' => 'ëÏÍÐÌÅËÔÉ ¦Î×ÅÎÔÁÒÉÚÏ×ÁΦ!',
+ 'Attachment' => 'äÏÄÁÔÏË',
+ 'Aug' => 'ÓÅÒÐÎÑ',
+ 'August' => 'óÅÒÐÅÎØ',
+ 'BOM' => 'BOM',
+ 'Bcc' => 'ðÒÉ×ÁÔÎÁ ËÏÐ¦Ñ ÄÏ',
+ 'Bin' => 'Bin',
+ 'COGS' => 'COGS',
+ 'Cannot delete item!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÄÁÌÉÔÉ ÃÅÊ ÅÌÅÍÅÎÔ',
+ 'Cannot stock assemblies!' => 'îÅ ÍÏÖÌÉ×Ï ¦Î×ÅÎÔÁÒÉÚÕ×ÁÔÉ ËÏÍÐÌÅËÔÉ!',
+ 'Cash' => 'çÏÔ¦×ËÁ',
+ 'Cc' => 'ëÏÐ¦Ñ ÄÏ',
+ 'Closed' => 'úÁËÒÉÔÏ',
+ 'Contact' => 'ëÏÎÔÁËÔÎÁ ÏÓÏÂÁ',
+ 'Continue' => 'ðÒÏÄÏ×ÖÉÔÉ',
+ 'Copies' => 'ëÏЦÊ',
+ 'Curr' => '÷ÁÌÀÔÁ',
+ 'Currency' => '÷ÁÌÀÔÁ',
+ 'Customer' => 'ë̦¤ÎÔ',
+ 'Customer not on file!' => 'ë̦¤ÎÔÁ ÎÅÍÁ × ÓÐÉÓËÕ!',
+ 'Date' => 'äÁÔÁ',
+ 'Dec' => 'ÇÒÕÄÎÑ',
+ 'December' => 'çÒÕÄÅÎØ',
+ 'Delete' => '÷ÉÄÁÌÉÔÉ',
+ 'Delivery Date' => 'äÁÔÁ ÄÏÓÔÁ×ËÉ',
+ 'Description' => 'ïÐÉÓ',
+ 'Drawing' => 'íÁÌÀÎÏË',
+ 'E-mail' => 'åÌ. ÐÏÛÔÁ',
+ 'E-mail address missing!' => 'îÅ ×ËÁÚÁÎÁ ÁÄÒÅÓÁ ÅÌ. ÐÏÛÔÉ!',
+ 'Edit Assembly' => '÷¦ÄÒÅÄÁÇÕ×ÁÔÉ ËÏÍÐÌÅËÔ',
+ 'Edit Part' => '÷¦ÄÒÅÄÁÇÕ×ÁÔÉ ôÏ×ÁÒ',
+ 'Edit Service' => '÷¦ÄÒÅÄÁÇÕ×ÁÔÉ ÐÏÓÌÕÇÕ',
+ 'Employee' => 'ðÒÁæ×ÎÉË',
+ 'Expense' => '÷ÉÄÁÔËÉ',
+ 'Extended' => 'ðÒÏÄÏ×ÖÅÎÏ',
+ 'Fax' => 'æÁÈ',
+ 'Feb' => 'ÌÀÔÏÇÏ',
+ 'February' => 'ìÀÔÉÊ',
+ 'From' => '÷¦Ä/ú',
+ 'Image' => 'úÏÂÒÁÖÅÎÎÑ',
+ 'In-line' => '÷ËÌÀÞÅÎÏ (In-line)',
+ 'Include in Report' => 'äÏÄÁÔÉ ÄÏ úצÔÕ',
+ 'Individual Items' => '¶ÎÄÉצÄÕÁÌØΦ þÁÓÔÉÎÉ',
+ 'Inventory' => '¶Î×ÅÎÔÁÒ',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'ë¦ÌØ˦ÓÔØ × ¦Î×ÅÎÔÁÒ¦ ÐÏ×ÉÎÎÁ ÂÕÔÉ ÎÕÌØ, ÐÅÒÛ Î¦Ö ÍÏÖÎÁ ÐÏÚÎÁÞÉÔÉ ËÏÍÐÌÅËÔ ÚÁÓÔÁÒ¦ÌÉÍ!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'ë¦ÌØ˦ÓÔØ × ¦Î×ÅÎÔÁÒ¦ ÐÏ×ÉÎÎÁ ÂÕÔÉ ÎÕÌØ, ÐÅÒÛ Î¦Ö ÍÏÖÎÁ ÐÏÚÎÁÞÉÔÉ ÃÉÊ ÔÏ×ÁÒ ÚÁÓÔÁÒ¦ÌÉÍ!',
+ 'Invoice' => 'òÁÈÕÎÏË-ÆÁËÔÕÒÁ',
+ 'Invoice Date missing!' => 'îÅ ×ËÁÚÁÎÁ ÄÁÔÁ ×ÉÓÔÁ×ÌÅÎÎÑ ÒÁÈÕÎËÁ-ÆÁËÔÕÒÉ',
+ 'Invoice Number' => 'îÏÍÅÒ ÒÁÈÕÎËÁ-ÆÁËÔÕÒÉ',
+ 'Invoice Number missing!' => 'îÅ ×ËÁÚÁÎÉÊ ÎÏÍÅÒ ÒÁÈÕÎËÁ-ÆÁËÔÕÒÉ',
+ 'Item deleted!' => 'ò¦Þ ×ÉÄÁÌÅÎÏ!',
+ 'Item not on file!' => 'òÅÞ¦ ÎÅÍÁ × ÓÐÉÓËÕ!',
+ 'Jan' => 'Ó¦ÞÎÑ',
+ 'January' => 'Ó¦ÞÅÎØ',
+ 'Jul' => 'ÌÉÐÎÑ',
+ 'July' => 'ìÉÐÅÎØ',
+ 'Jun' => 'ÞÅÒ×ÎÑ',
+ 'June' => 'þÅÒ×ÅÎØ',
+ 'Line Total' => 'úÁÇÁÌØÎÁ óÕÍÁ',
+ 'Link Accounts' => 'ðÏ×ÑÚÁÔÉ òÁÈÕÎËÉ',
+ 'List Price' => 'ã¦ÎÁ',
+ 'Make' => '÷ÉÒÏÂÎÉÃÔ×Ï',
+ 'Mar' => 'ÂÅÒÅÚÎÑ',
+ 'March' => 'âÅÒÅÚÅÎØ',
+ 'May' => 'ÔÒÁ×ÎÑ',
+ 'May ' => 'ôÒÁ×ÅÎØ',
+ 'Message' => 'ðÏצÄÏÍÌÅÎÎÑ',
+ 'Microfiche' => 'í¦ËÒÏƦÛÁ',
+ 'Model' => 'íÏÄÅÌØ',
+ 'Name' => 'îÁÚ×Á',
+ 'No.' => 'No.',
+ 'Notes' => 'ðÒÉͦÔËÉ',
+ 'Nov' => 'ÌÉÓÔÏÐÁÄÁ',
+ 'November' => 'ìÉÓÔÏÐÁÄ',
+ 'Number' => 'îÏÍÅÒ',
+ 'Number missing in Row' => 'îÅ ×ËÁÚÁÎÉÊ ÎÏÍÅÒ Õ ÒÑÄËÕ',
+ 'Obsolete' => 'úÁÓÔÁÒ¦ÌÅ',
+ 'Oct' => 'ÖÏ×ÔÎÑ',
+ 'October' => 'öÏ×ÔÅÎØ',
+ 'On Hand' => 'îÁ òÕËÁÈ',
+ 'Open' => '÷¦ÄËÒÉÔÏ',
+ 'Order' => 'úÁÍÏ×ÌÅÎÎÑ',
+ 'Order Date missing!' => 'îÅ ×ËÁÚÁÎÁ äÁÔÁ úÁÍÏ×ÌÅÎÎÑ!',
+ 'Order Number' => 'îÏÍÅÒ úÁÍÏ×ÌÅÎÎÑ',
+ 'Order Number missing!' => 'îÅ ×ËÁÚÁÎÏ îÏÍÅÒ úÁÍÏ×ÌÅÎÎÑ',
+ 'Orphaned' => '÷¦ÄÏËÒÅÍÌÅÎÉÊ/ïÓÉÒÏÔ¦ÌÉÊ',
+ 'PDF' => 'PDF ÆÁÊÌ ÆÏÒÍÁÔ',
+ 'Packing List' => 'ðÁËÕ×ÁÌØÎÉÊ óÐÉÓÏË',
+ 'Packing List Date missing!' => 'îÅ ×ËÁÚÁÎÁ äÁÔÁ ðÁËÕ×ÁÌØÎÏÇÏ óÐÉÓÏËÕ',
+ 'Packing List Number missing!' => 'îÅ ×ËÁÚÁÎÉÊ îÏÍÅÒ ðÁËÕ×ÁÌØÎÏÇÏ óÐÉÓÏËÕ',
+ 'Part' => 'ôÏ×ÁÒ',
+ 'Parts' => 'ÔÏ×ÁÒÉ',
+ 'Phone' => 'ôÅÌ.',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'ã¦ÎÁ',
+ 'Project' => 'ðÒÏÅËÔ',
+ 'Purchase Order' => 'ëÕЦ×ÅÌØÎÅ úÁÍÏ×ÌÅÎÎÑ',
+ 'Purchase Orders' => 'ëÕЦ×ÅÌØΦ úÁÍÏ×ÌÅÎÎÑ',
+ 'Qty' => 'ë¦ÌØ˦ÓÔØ',
+ 'ROP' => 'ROP',
+ 'Recd' => 'ïÔÒÉÍÁÎÏ',
+ 'Required by' => 'ôÅÒͦΠÄÏÓÔÁ×ËÉ',
+ 'Sales Invoice' => 'òÁÈÕÎÏË-ÆÁËÔÕÒÁ',
+ 'Sales Order' => 'ðÒÏÄÁÖÎÁ îÁËÌÁÄÎÁ',
+ 'Sales Orders' => 'ðÒÏÄÁÖΦ îÁËÌÁÄΦ',
+ 'Save' => 'úÂÅÒÅÇÔÉ',
+ 'Save as new' => 'úÂÅÒÅÇÔÉ ÑË ÎÏ×Å',
+ 'Screen' => 'åËÒÁÎ',
+ 'Select from one of the names below' => '÷ÉÂÅÒ¦ÔØ ÏÄÎÕ ¦Ú ÎÁÓÔÕÐÎÉÈ ÎÁÚ×',
+ 'Sell Price' => '÷¦ÄÐÕÓËÎÁ ã¦ÎÁ',
+ 'Sep' => '×ÅÒÅÓÎÑ',
+ 'September' => '÷ÅÒÅÓÅÎØ',
+ 'Service' => 'ðÏÓÌÕÇÁ',
+ 'Services' => 'ðÏÓÌÕÇÉ',
+ 'Ship' => 'ðÏÓÌÁÔÉ',
+ 'Ship to' => 'ðÏÓÌÁÔÉ ÄÏ',
+ 'Short' => 'óËÏÒÏÞÅÎÏ',
+ 'Stock Assembly' => '¶Î×ÅÎÔÁÒ ëÏÍÐÌÅËÔÕ',
+ 'Subject' => 'ôÅÍÁ',
+ 'Subtotal' => 'ð¦ÄÓÕÍÏË ÐÏ ÒÏÚĦÌÕ',
+ 'Tax' => 'ðÏÄÁÔÏË',
+ 'To' => 'äÏ',
+ 'Top Level' => '÷ÅÒÈÎ¦Ê ò¦×ÅÎØ',
+ 'Unit' => 'ïÄÉÎÉÃÑ',
+ 'Update' => 'ðÏÎÏ×ÉÔÉ',
+ 'Updated' => 'ðÏÎÏ×ÌÅÎÏ',
+ 'Vendor' => 'ðÏÓÔÁÞÁÌØÎÉË',
+ 'Vendor Invoice' => 'òÁÈÕÎÏË-ÆÁËÔÕÒÁ',
+ 'Vendor not on file!' => 'ðÏÔÁÞÁÌØÎÉËÁ ÎÅÍÁ Õ ÓÐÉÓËÕ ',
+ 'Weight' => '÷ÁÇÁ',
+ 'What type of item is this?' => 'ñËÉÊ ÃÅ ×ÉÄ/ÔÉÐ ÔÏ×ÁÒÕ',
+ 'days' => 'ÄΦ×',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'îÏ×ÙÊ_ËÏÍÐÌÅËÔ' => 'add_assembly',
+ 'îÏ×ÉÊ_ôÏ×ÁÒ' => 'add_part',
+ 'îÏ×Á_ÐÏÓÌÕÇÁ' => 'add_service',
+ 'ðÒÏÄÏ×ÖÉÔÉ' => 'continue',
+ '÷ÉÄÁÌÉÔÉ' => 'delete',
+ '÷¦ÄÒÅÄÁÇÕ×ÁÔÉ_ËÏÍÐÌÅËÔ' => 'edit_assembly',
+ '÷¦ÄÒÅÄÁÇÕ×ÁÔÉ_ôÏ×ÁÒ' => 'edit_part',
+ '÷¦ÄÒÅÄÁÇÕ×ÁÔÉ_ÐÏÓÌÕÇÕ' => 'edit_service',
+ 'úÂÅÒÅÇÔÉ' => 'save',
+ 'úÂÅÒÅÇÔÉ_ÑË_ÎÏ×Å' => 'save_as_new',
+ 'ðÏÎÏ×ÉÔÉ' => 'update',
+};
+
+1;
+
diff --git a/locale/ua/io b/locale/ua/io
new file mode 100755
index 00000000..c58aeb11
--- /dev/null
+++ b/locale/ua/io
@@ -0,0 +1,107 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'Add Purchase Order' => 'îÏ×Å ÚÁÍÏ×ÌÅÎÎÑ ÎÁ ËÕЦ×ÌÀ',
+ 'Add Sales Order' => 'îÏ×Å ÚÁÍÏ×ÌÅÎÎÑ ÎÁ ÐÒÏÄÁÖ',
+ 'Address' => 'áÄÒÅÓÁ',
+ 'Apr' => 'ËצÔÎÑ',
+ 'April' => 'ëצÔÅÎØ',
+ 'Attachment' => 'äÏÄÁÔÏË',
+ 'Aug' => 'ÓÅÒÐÎÑ',
+ 'August' => 'óÅÒÐÅÎØ',
+ 'Bcc' => 'ðÒÉ×ÁÔÎÁ ËÏÐ¦Ñ ÄÏ',
+ 'Bin' => 'Bin',
+ 'Cc' => 'ëÏÐ¦Ñ ÄÏ',
+ 'Contact' => 'ëÏÎÔÁËÔÎÁ ÏÓÏÂÁ',
+ 'Continue' => 'ðÒÏÄÏ×ÖÉÔÉ',
+ 'Copies' => 'ëÏЦÊ',
+ 'Date' => 'äÁÔÁ',
+ 'Dec' => 'ÇÒÕÄÎÑ',
+ 'December' => 'çÒÕÄÅÎØ',
+ 'Delivery Date' => 'äÁÔÁ ÄÏÓÔÁ×ËÉ',
+ 'Description' => 'ïÐÉÓ',
+ 'E-mail' => 'åÌ. ÐÏÛÔÁ',
+ 'E-mail address missing!' => 'îÅ ×ËÁÚÁÎÁ ÁÄÒÅÓÁ ÅÌ. ÐÏÛÔÉ!',
+ 'Extended' => 'ðÒÏÄÏ×ÖÅÎÏ',
+ 'Fax' => 'æÁÈ',
+ 'Feb' => 'ÌÀÔÏÇÏ',
+ 'February' => 'ìÀÔÉÊ',
+ 'In-line' => '÷ËÌÀÞÅÎÏ (In-line)',
+ 'Invoice' => 'òÁÈÕÎÏË-ÆÁËÔÕÒÁ',
+ 'Invoice Date missing!' => 'îÅ ×ËÁÚÁÎÁ ÄÁÔÁ ×ÉÓÔÁ×ÌÅÎÎÑ ÒÁÈÕÎËÁ-ÆÁËÔÕÒÉ',
+ 'Invoice Number missing!' => 'îÅ ×ËÁÚÁÎÉÊ ÎÏÍÅÒ ÒÁÈÕÎËÁ-ÆÁËÔÕÒÉ',
+ 'Item not on file!' => 'òÅÞ¦ ÎÅÍÁ × ÓÐÉÓËÕ!',
+ 'Jan' => 'Ó¦ÞÎÑ',
+ 'January' => 'Ó¦ÞÅÎØ',
+ 'Jul' => 'ÌÉÐÎÑ',
+ 'July' => 'ìÉÐÅÎØ',
+ 'Jun' => 'ÞÅÒ×ÎÑ',
+ 'June' => 'þÅÒ×ÅÎØ',
+ 'Mar' => 'ÂÅÒÅÚÎÑ',
+ 'March' => 'âÅÒÅÚÅÎØ',
+ 'May' => 'ÔÒÁ×ÎÑ',
+ 'May ' => 'ôÒÁ×ÅÎØ',
+ 'Message' => 'ðÏצÄÏÍÌÅÎÎÑ',
+ 'Nov' => 'ÌÉÓÔÏÐÁÄÁ',
+ 'November' => 'ìÉÓÔÏÐÁÄ',
+ 'Number' => 'îÏÍÅÒ',
+ 'Number missing in Row' => 'îÅ ×ËÁÚÁÎÉÊ ÎÏÍÅÒ Õ ÒÑÄËÕ',
+ 'Oct' => 'ÖÏ×ÔÎÑ',
+ 'October' => 'öÏ×ÔÅÎØ',
+ 'Order Date missing!' => 'îÅ ×ËÁÚÁÎÁ äÁÔÁ úÁÍÏ×ÌÅÎÎÑ!',
+ 'Order Number missing!' => 'îÅ ×ËÁÚÁÎÏ îÏÍÅÒ úÁÍÏ×ÌÅÎÎÑ',
+ 'PDF' => 'PDF ÆÁÊÌ ÆÏÒÍÁÔ',
+ 'Packing List' => 'ðÁËÕ×ÁÌØÎÉÊ óÐÉÓÏË',
+ 'Packing List Date missing!' => 'îÅ ×ËÁÚÁÎÁ äÁÔÁ ðÁËÕ×ÁÌØÎÏÇÏ óÐÉÓÏËÕ',
+ 'Packing List Number missing!' => 'îÅ ×ËÁÚÁÎÉÊ îÏÍÅÒ ðÁËÕ×ÁÌØÎÏÇÏ óÐÉÓÏËÕ',
+ 'Part' => 'ôÏ×ÁÒ',
+ 'Phone' => 'ôÅÌ.',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'ã¦ÎÁ',
+ 'Project' => 'ðÒÏÅËÔ',
+ 'Purchase Order' => 'ëÕЦ×ÅÌØÎÅ úÁÍÏ×ÌÅÎÎÑ',
+ 'Qty' => 'ë¦ÌØ˦ÓÔØ',
+ 'Recd' => 'ïÔÒÉÍÁÎÏ',
+ 'Required by' => 'ôÅÒͦΠÄÏÓÔÁ×ËÉ',
+ 'Sales Order' => 'ðÒÏÄÁÖÎÁ îÁËÌÁÄÎÁ',
+ 'Screen' => 'åËÒÁÎ',
+ 'Sep' => '×ÅÒÅÓÎÑ',
+ 'September' => '÷ÅÒÅÓÅÎØ',
+ 'Service' => 'ðÏÓÌÕÇÁ',
+ 'Ship' => 'ðÏÓÌÁÔÉ',
+ 'Ship to' => 'ðÏÓÌÁÔÉ ÄÏ',
+ 'Subject' => 'ôÅÍÁ',
+ 'Subtotal' => 'ð¦ÄÓÕÍÏË ÐÏ ÒÏÚĦÌÕ',
+ 'To' => 'äÏ',
+ 'Unit' => 'ïÄÉÎÉÃÑ',
+ 'What type of item is this?' => 'ñËÉÊ ÃÅ ×ÉÄ/ÔÉÐ ÔÏ×ÁÒÕ',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'ðÒÏÄÏ×ÖÉÔÉ' => 'continue',
+};
+
+1;
+
diff --git a/locale/ua/ir b/locale/ua/ir
new file mode 100755
index 00000000..303ac928
--- /dev/null
+++ b/locale/ua/ir
@@ -0,0 +1,195 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'Account' => 'òÁÈÕÎÏË',
+ 'Accounting Menu' => 'íÅÎÀ ïÂ̦ËÕ',
+ 'Add Purchase Order' => 'îÏ×Å ÚÁÍÏ×ÌÅÎÎÑ ÎÁ ËÕЦ×ÌÀ',
+ 'Add Sales Order' => 'îÏ×Å ÚÁÍÏ×ÌÅÎÎÑ ÎÁ ÐÒÏÄÁÖ',
+ 'Add Vendor Invoice' => 'îÏ×ÉÊ ëÕЦ×ÅÌØÎÉÊ òÁÈÕÎÏË-ÆÁËÔÕÒÁ',
+ 'Address' => 'áÄÒÅÓÁ',
+ 'Amount' => 'óÕÍÁ',
+ 'Apr' => 'ËצÔÎÑ',
+ 'April' => 'ëצÔÅÎØ',
+ 'Are you sure you want to delete Invoice Number' => '÷É ÐÅ×Φ, ÝÏ ÈÏÞÅÔÅ ×ÉÄÁÌÉÔÉ ÄÁÎÉÊ ÒÁÈÕÎÏË?',
+ 'Attachment' => 'äÏÄÁÔÏË',
+ 'Aug' => 'ÓÅÒÐÎÑ',
+ 'August' => 'óÅÒÐÅÎØ',
+ 'Bcc' => 'ðÒÉ×ÁÔÎÁ ËÏÐ¦Ñ ÄÏ',
+ 'Bin' => 'Bin',
+ 'Cannot delete invoice!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÄÁÌÉÔÉ ÒÁÈÕÎÏË-ÆÁËÔÕÒÕ',
+ 'Cannot post invoice for a closed period!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÓÔÁ×ÉÔÉ ÒÁÈÕÎÏË-ÆÁËÔÕÒÕ ÄÌÑ ÚÁËÒÉÔÏÇÏ ÐÅÒ¦ÏÄÕ!',
+ 'Cannot post invoice!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÓÔÁ×ÉÔÉ ÒÁÈÕÎÏË-ÆÁËÔÕÒÕ!',
+ 'Cannot post payment for a closed period!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÓÔÁ×ÉÔÉ ÐÌÁÔ¦Ö ÄÌÑ ÚÁËÒÉÔÏÇÏ ÐÅÒ¦ÏÄÕ!',
+ 'Cc' => 'ëÏÐ¦Ñ ÄÏ',
+ 'Confirm!' => 'ð¦ÄÔ×ÅÒĦÔØ!',
+ 'Contact' => 'ëÏÎÔÁËÔÎÁ ÏÓÏÂÁ',
+ 'Continue' => 'ðÒÏÄÏ×ÖÉÔÉ',
+ 'Copies' => 'ëÏЦÊ',
+ 'Credit Limit' => 'ì¦Í¦Ô ËÒÅÄÉÔÕ',
+ 'Currency' => '÷ÁÌÀÔÁ',
+ 'Customer not on file!' => 'ë̦¤ÎÔÁ ÎÅÍÁ × ÓÐÉÓËÕ!',
+ 'Date' => 'äÁÔÁ',
+ 'Dec' => 'ÇÒÕÄÎÑ',
+ 'December' => 'çÒÕÄÅÎØ',
+ 'Delete' => '÷ÉÄÁÌÉÔÉ',
+ 'Delivery Date' => 'äÁÔÁ ÄÏÓÔÁ×ËÉ',
+ 'Description' => 'ïÐÉÓ',
+ 'Due Date' => 'úÁÐÌÁÔÉÔÉ ÄÏ',
+ 'E-mail' => 'åÌ. ÐÏÛÔÁ',
+ 'E-mail address missing!' => 'îÅ ×ËÁÚÁÎÁ ÁÄÒÅÓÁ ÅÌ. ÐÏÛÔÉ!',
+ 'Edit Vendor Invoice' => '÷¦ÄÒÅÄÁÇÕ×ÁÔÉ ëÕЦ×ÅÌØÎÉÊ òÁÈÕÎÏË-ÆÁËÔÕÒÕ',
+ 'Exch' => 'ëÕÒÓ',
+ 'Exchange Rate' => 'ëÕÒÓ ×ÁÌÀÔÉ',
+ 'Exchange rate for payment missing!' => 'îÅ ×ËÁÚÁÎÉÊ ËÕÒÓ ×ÁÌÀÔÉ ÄÌÑ ÐÌÁÔÅÖÕ!',
+ 'Exchange rate missing!' => 'îÅ ×ËÁÚÁÎÉÊ ËÕÒÓ ×ÁÌÀÔÉ!',
+ 'Extended' => 'ðÒÏÄÏ×ÖÅÎÏ',
+ 'Fax' => 'æÁÈ',
+ 'Feb' => 'ÌÀÔÏÇÏ',
+ 'February' => 'ìÀÔÉÊ',
+ 'In-line' => '÷ËÌÀÞÅÎÏ (In-line)',
+ 'Invoice' => 'òÁÈÕÎÏË-ÆÁËÔÕÒÁ',
+ 'Invoice Date' => 'äÁÔÁ ×ÉÓÔÁ×ÌÅÎÎÑ',
+ 'Invoice Date missing!' => 'îÅ ×ËÁÚÁÎÁ ÄÁÔÁ ×ÉÓÔÁ×ÌÅÎÎÑ ÒÁÈÕÎËÁ-ÆÁËÔÕÒÉ',
+ 'Invoice Number' => 'îÏÍÅÒ ÒÁÈÕÎËÁ-ÆÁËÔÕÒÉ',
+ 'Invoice Number missing!' => 'îÅ ×ËÁÚÁÎÉÊ ÎÏÍÅÒ ÒÁÈÕÎËÁ-ÆÁËÔÕÒÉ',
+ 'Invoice deleted!' => 'òÁÈÕÎÏË-ÆÁËÔÕÒÁ ×ÉÄÁÌÅÎÉÊ!',
+ 'Item not on file!' => 'òÅÞ¦ ÎÅÍÁ × ÓÐÉÓËÕ!',
+ 'Jan' => 'Ó¦ÞÎÑ',
+ 'January' => 'Ó¦ÞÅÎØ',
+ 'Jul' => 'ÌÉÐÎÑ',
+ 'July' => 'ìÉÐÅÎØ',
+ 'Jun' => 'ÞÅÒ×ÎÑ',
+ 'June' => 'þÅÒ×ÅÎØ',
+ 'Language' => 'íÏ×Á',
+ 'Mar' => 'ÂÅÒÅÚÎÑ',
+ 'March' => 'âÅÒÅÚÅÎØ',
+ 'May' => 'ÔÒÁ×ÎÑ',
+ 'May ' => 'ôÒÁ×ÅÎØ',
+ 'Message' => 'ðÏצÄÏÍÌÅÎÎÑ',
+ 'Notes' => 'ðÒÉͦÔËÉ',
+ 'Nov' => 'ÌÉÓÔÏÐÁÄÁ',
+ 'November' => 'ìÉÓÔÏÐÁÄ',
+ 'Number' => 'îÏÍÅÒ',
+ 'Number missing in Row' => 'îÅ ×ËÁÚÁÎÉÊ ÎÏÍÅÒ Õ ÒÑÄËÕ',
+ 'Oct' => 'ÖÏ×ÔÎÑ',
+ 'October' => 'öÏ×ÔÅÎØ',
+ 'Order Date missing!' => 'îÅ ×ËÁÚÁÎÁ äÁÔÁ úÁÍÏ×ÌÅÎÎÑ!',
+ 'Order Number' => 'îÏÍÅÒ úÁÍÏ×ÌÅÎÎÑ',
+ 'Order Number missing!' => 'îÅ ×ËÁÚÁÎÏ îÏÍÅÒ úÁÍÏ×ÌÅÎÎÑ',
+ 'PDF' => 'PDF ÆÁÊÌ ÆÏÒÍÁÔ',
+ 'Packing List' => 'ðÁËÕ×ÁÌØÎÉÊ óÐÉÓÏË',
+ 'Packing List Date missing!' => 'îÅ ×ËÁÚÁÎÁ äÁÔÁ ðÁËÕ×ÁÌØÎÏÇÏ óÐÉÓÏËÕ',
+ 'Packing List Number missing!' => 'îÅ ×ËÁÚÁÎÉÊ îÏÍÅÒ ðÁËÕ×ÁÌØÎÏÇÏ óÐÉÓÏËÕ',
+ 'Part' => 'ôÏ×ÁÒ',
+ 'Payment date missing!' => 'îÅ ×ËÁÚÁÎÏ ÄÁÔÕ ðÌÁÔÅÖÕ!',
+ 'Payments' => 'ðÌÁÔÅÖ¦',
+ 'Phone' => 'ôÅÌ.',
+ 'Post' => '÷ÉÓÔÁ×ÉÔÉ',
+ 'Post as new' => '÷ÉÓÔÁ×ÉÔÉ ÑË ÎÏ×ÉÊ',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'ã¦ÎÁ',
+ 'Print' => 'îÁÄÒÕËÕ×ÁÔÉ',
+ 'Project' => 'ðÒÏÅËÔ',
+ 'Project not on file!' => 'ðÒÏÅËÔÕ ÎÅÍÁ × ÓÐÉÓËÕ!',
+ 'Purchase Order' => 'ëÕЦ×ÅÌØÎÅ úÁÍÏ×ÌÅÎÎÑ',
+ 'Qty' => 'ë¦ÌØ˦ÓÔØ',
+ 'Recd' => 'ïÔÒÉÍÁÎÏ',
+ 'Record in' => '÷ÎÅÓÔÉ ×',
+ 'Reference' => 'úÓÉÌËÁ',
+ 'Remaining' => 'úÁÌÉÛÉÌÏÓØ',
+ 'Required by' => 'ôÅÒͦΠÄÏÓÔÁ×ËÉ',
+ 'Sales Order' => 'ðÒÏÄÁÖÎÁ îÁËÌÁÄÎÁ',
+ 'Screen' => 'åËÒÁÎ',
+ 'Select from one of the names below' => '÷ÉÂÅÒ¦ÔØ ÏÄÎÕ ¦Ú ÎÁÓÔÕÐÎÉÈ ÎÁÚ×',
+ 'Select from one of the projects below' => '÷ÉÂÅÒ¦ÔØ ÏÄÉÎ ¦Ú ÎÁÓÔÕÐÎÉÈ ÐÒÏÅËÔ¦×',
+ 'Sep' => '×ÅÒÅÓÎÑ',
+ 'September' => '÷ÅÒÅÓÅÎØ',
+ 'Service' => 'ðÏÓÌÕÇÁ',
+ 'Ship' => 'ðÏÓÌÁÔÉ',
+ 'Ship to' => 'ðÏÓÌÁÔÉ ÄÏ',
+ 'Source' => 'äÖÅÒÅÌÏ',
+ 'Subject' => 'ôÅÍÁ',
+ 'Subtotal' => 'ð¦ÄÓÕÍÏË ÐÏ ÒÏÚĦÌÕ',
+ 'Tax Included' => 'ðÏÄÁÔÏË ×ËÌÀÞÅÎÏ',
+ 'To' => 'äÏ',
+ 'Total' => 'úÁÇÁÌØÎÁ óÕÍÁ',
+ 'Unit' => 'ïÄÉÎÉÃÑ',
+ 'Update' => 'ðÏÎÏ×ÉÔÉ',
+ 'Vendor' => 'ðÏÓÔÁÞÁÌØÎÉË',
+ 'Vendor missing!' => 'ðÏÓÔÁÞÁÌØÎÉË ÎÅ ¦ÓÎÕ¤',
+ 'Vendor not on file!' => 'ðÏÔÁÞÁÌØÎÉËÁ ÎÅÍÁ Õ ÓÐÉÓËÕ ',
+ 'What type of item is this?' => 'ñËÉÊ ÃÅ ×ÉÄ/ÔÉÐ ÔÏ×ÁÒÕ',
+ 'Yes' => 'Tak',
+ 'ea' => 'ÛÔ.',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'ðÒÏÄÏ×ÖÉÔÉ' => 'continue',
+ '÷ÉÄÁÌÉÔÉ' => 'delete',
+ '÷ÉÓÔÁ×ÉÔÉ' => 'post',
+ '÷ÉÓÔÁ×ÉÔÉ_ÑË_ÎÏ×ÉÊ' => 'post_as_new',
+ 'ëÕЦ×ÅÌØÎÅ_úÁÍÏ×ÌÅÎÎÑ' => 'purchase_order',
+ 'ðÏÎÏ×ÉÔÉ' => 'update',
+ 'tak' => 'yes',
+};
+
+1;
+
diff --git a/locale/ua/is b/locale/ua/is
new file mode 100755
index 00000000..b4a056b1
--- /dev/null
+++ b/locale/ua/is
@@ -0,0 +1,200 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'Account' => 'òÁÈÕÎÏË',
+ 'Accounting Menu' => 'íÅÎÀ ïÂ̦ËÕ',
+ 'Add Purchase Order' => 'îÏ×Å ÚÁÍÏ×ÌÅÎÎÑ ÎÁ ËÕЦ×ÌÀ',
+ 'Add Sales Invoice' => 'îÏ×ÉÊ òÁÈÕÎÏ-ÆÁËÔÕÒÁ',
+ 'Add Sales Order' => 'îÏ×Å ÚÁÍÏ×ÌÅÎÎÑ ÎÁ ÐÒÏÄÁÖ',
+ 'Address' => 'áÄÒÅÓÁ',
+ 'Amount' => 'óÕÍÁ',
+ 'Apr' => 'ËצÔÎÑ',
+ 'April' => 'ëצÔÅÎØ',
+ 'Are you sure you want to delete Invoice Number' => '÷É ÐÅ×Φ, ÝÏ ÈÏÞÅÔÅ ×ÉÄÁÌÉÔÉ ÄÁÎÉÊ ÒÁÈÕÎÏË?',
+ 'Attachment' => 'äÏÄÁÔÏË',
+ 'Aug' => 'ÓÅÒÐÎÑ',
+ 'August' => 'óÅÒÐÅÎØ',
+ 'Bcc' => 'ðÒÉ×ÁÔÎÁ ËÏÐ¦Ñ ÄÏ',
+ 'Bin' => 'Bin',
+ 'Cannot delete invoice!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÄÁÌÉÔÉ ÒÁÈÕÎÏË-ÆÁËÔÕÒÕ',
+ 'Cannot post invoice for a closed period!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÓÔÁ×ÉÔÉ ÒÁÈÕÎÏË-ÆÁËÔÕÒÕ ÄÌÑ ÚÁËÒÉÔÏÇÏ ÐÅÒ¦ÏÄÕ!',
+ 'Cannot post invoice!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÓÔÁ×ÉÔÉ ÒÁÈÕÎÏË-ÆÁËÔÕÒÕ!',
+ 'Cannot post payment for a closed period!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÓÔÁ×ÉÔÉ ÐÌÁÔ¦Ö ÄÌÑ ÚÁËÒÉÔÏÇÏ ÐÅÒ¦ÏÄÕ!',
+ 'Cc' => 'ëÏÐ¦Ñ ÄÏ',
+ 'Confirm!' => 'ð¦ÄÔ×ÅÒĦÔØ!',
+ 'Contact' => 'ëÏÎÔÁËÔÎÁ ÏÓÏÂÁ',
+ 'Continue' => 'ðÒÏÄÏ×ÖÉÔÉ',
+ 'Copies' => 'ëÏЦÊ',
+ 'Credit Limit' => 'ì¦Í¦Ô ËÒÅÄÉÔÕ',
+ 'Currency' => '÷ÁÌÀÔÁ',
+ 'Customer' => 'ë̦¤ÎÔ',
+ 'Customer missing!' => 'îÅ ×ËÁÚÁÎÉÊ Ë̦¤ÎÔ!',
+ 'Customer not on file!' => 'ë̦¤ÎÔÁ ÎÅÍÁ × ÓÐÉÓËÕ!',
+ 'Date' => 'äÁÔÁ',
+ 'Dec' => 'ÇÒÕÄÎÑ',
+ 'December' => 'çÒÕÄÅÎØ',
+ 'Delete' => '÷ÉÄÁÌÉÔÉ',
+ 'Delivery Date' => 'äÁÔÁ ÄÏÓÔÁ×ËÉ',
+ 'Description' => 'ïÐÉÓ',
+ 'Due Date' => 'úÁÐÌÁÔÉÔÉ ÄÏ',
+ 'E-mail' => 'åÌ. ÐÏÛÔÁ',
+ 'E-mail address missing!' => 'îÅ ×ËÁÚÁÎÁ ÁÄÒÅÓÁ ÅÌ. ÐÏÛÔÉ!',
+ 'Edit Sales Invoice' => '÷¦ÄÒÅÄÁÇÕ×ÁÔÉ òÁÈÕÎÏË-ÆÁËÔÕÒÕ',
+ 'Exch' => 'ëÕÒÓ',
+ 'Exchange Rate' => 'ëÕÒÓ ×ÁÌÀÔÉ',
+ 'Exchange rate for payment missing!' => 'îÅ ×ËÁÚÁÎÉÊ ËÕÒÓ ×ÁÌÀÔÉ ÄÌÑ ÐÌÁÔÅÖÕ!',
+ 'Exchange rate missing!' => 'îÅ ×ËÁÚÁÎÉÊ ËÕÒÓ ×ÁÌÀÔÉ!',
+ 'Extended' => 'ðÒÏÄÏ×ÖÅÎÏ',
+ 'Fax' => 'æÁÈ',
+ 'Feb' => 'ÌÀÔÏÇÏ',
+ 'February' => 'ìÀÔÉÊ',
+ 'In-line' => '÷ËÌÀÞÅÎÏ (In-line)',
+ 'Invoice' => 'òÁÈÕÎÏË-ÆÁËÔÕÒÁ',
+ 'Invoice Date' => 'äÁÔÁ ×ÉÓÔÁ×ÌÅÎÎÑ',
+ 'Invoice Date missing!' => 'îÅ ×ËÁÚÁÎÁ ÄÁÔÁ ×ÉÓÔÁ×ÌÅÎÎÑ ÒÁÈÕÎËÁ-ÆÁËÔÕÒÉ',
+ 'Invoice Number' => 'îÏÍÅÒ ÒÁÈÕÎËÁ-ÆÁËÔÕÒÉ',
+ 'Invoice Number missing!' => 'îÅ ×ËÁÚÁÎÉÊ ÎÏÍÅÒ ÒÁÈÕÎËÁ-ÆÁËÔÕÒÉ',
+ 'Invoice deleted!' => 'òÁÈÕÎÏË-ÆÁËÔÕÒÁ ×ÉÄÁÌÅÎÉÊ!',
+ 'Item not on file!' => 'òÅÞ¦ ÎÅÍÁ × ÓÐÉÓËÕ!',
+ 'Jan' => 'Ó¦ÞÎÑ',
+ 'January' => 'Ó¦ÞÅÎØ',
+ 'Jul' => 'ÌÉÐÎÑ',
+ 'July' => 'ìÉÐÅÎØ',
+ 'Jun' => 'ÞÅÒ×ÎÑ',
+ 'June' => 'þÅÒ×ÅÎØ',
+ 'Mar' => 'ÂÅÒÅÚÎÑ',
+ 'March' => 'âÅÒÅÚÅÎØ',
+ 'May' => 'ÔÒÁ×ÎÑ',
+ 'May ' => 'ôÒÁ×ÅÎØ',
+ 'Message' => 'ðÏצÄÏÍÌÅÎÎÑ',
+ 'Notes' => 'ðÒÉͦÔËÉ',
+ 'Nov' => 'ÌÉÓÔÏÐÁÄÁ',
+ 'November' => 'ìÉÓÔÏÐÁÄ',
+ 'Number' => 'îÏÍÅÒ',
+ 'Number missing in Row' => 'îÅ ×ËÁÚÁÎÉÊ ÎÏÍÅÒ Õ ÒÑÄËÕ',
+ 'Oct' => 'ÖÏ×ÔÎÑ',
+ 'October' => 'öÏ×ÔÅÎØ',
+ 'Order Date missing!' => 'îÅ ×ËÁÚÁÎÁ äÁÔÁ úÁÍÏ×ÌÅÎÎÑ!',
+ 'Order Number' => 'îÏÍÅÒ úÁÍÏ×ÌÅÎÎÑ',
+ 'Order Number missing!' => 'îÅ ×ËÁÚÁÎÏ îÏÍÅÒ úÁÍÏ×ÌÅÎÎÑ',
+ 'PDF' => 'PDF ÆÁÊÌ ÆÏÒÍÁÔ',
+ 'Packing List' => 'ðÁËÕ×ÁÌØÎÉÊ óÐÉÓÏË',
+ 'Packing List Date missing!' => 'îÅ ×ËÁÚÁÎÁ äÁÔÁ ðÁËÕ×ÁÌØÎÏÇÏ óÐÉÓÏËÕ',
+ 'Packing List Number missing!' => 'îÅ ×ËÁÚÁÎÉÊ îÏÍÅÒ ðÁËÕ×ÁÌØÎÏÇÏ óÐÉÓÏËÕ',
+ 'Part' => 'ôÏ×ÁÒ',
+ 'Payment date missing!' => 'îÅ ×ËÁÚÁÎÏ ÄÁÔÕ ðÌÁÔÅÖÕ!',
+ 'Payments' => 'ðÌÁÔÅÖ¦',
+ 'Phone' => 'ôÅÌ.',
+ 'Post' => '÷ÉÓÔÁ×ÉÔÉ',
+ 'Post as new' => '÷ÉÓÔÁ×ÉÔÉ ÑË ÎÏ×ÉÊ',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'ã¦ÎÁ',
+ 'Print' => 'îÁÄÒÕËÕ×ÁÔÉ',
+ 'Project' => 'ðÒÏÅËÔ',
+ 'Project not on file!' => 'ðÒÏÅËÔÕ ÎÅÍÁ × ÓÐÉÓËÕ!',
+ 'Purchase Order' => 'ëÕЦ×ÅÌØÎÅ úÁÍÏ×ÌÅÎÎÑ',
+ 'Qty' => 'ë¦ÌØ˦ÓÔØ',
+ 'Recd' => 'ïÔÒÉÍÁÎÏ',
+ 'Record in' => '÷ÎÅÓÔÉ ×',
+ 'Reference' => 'úÓÉÌËÁ',
+ 'Remaining' => 'úÁÌÉÛÉÌÏÓØ',
+ 'Required by' => 'ôÅÒͦΠÄÏÓÔÁ×ËÉ',
+ 'Sales Order' => 'ðÒÏÄÁÖÎÁ îÁËÌÁÄÎÁ',
+ 'Screen' => 'åËÒÁÎ',
+ 'Select from one of the names below' => '÷ÉÂÅÒ¦ÔØ ÏÄÎÕ ¦Ú ÎÁÓÔÕÐÎÉÈ ÎÁÚ×',
+ 'Select from one of the projects below' => '÷ÉÂÅÒ¦ÔØ ÏÄÉÎ ¦Ú ÎÁÓÔÕÐÎÉÈ ÐÒÏÅËÔ¦×',
+ 'Select postscript or PDF!' => '÷ÉÂÅÒ¦ÔØ postscript ÁÂÏ PDF',
+ 'Sep' => '×ÅÒÅÓÎÑ',
+ 'September' => '÷ÅÒÅÓÅÎØ',
+ 'Service' => 'ðÏÓÌÕÇÁ',
+ 'Ship' => 'ðÏÓÌÁÔÉ',
+ 'Ship to' => 'ðÏÓÌÁÔÉ ÄÏ',
+ 'Ship via' => 'ðÏÓÌÁÔÉ ÞÅÒÅÚ',
+ 'Source' => 'äÖÅÒÅÌÏ',
+ 'Subject' => 'ôÅÍÁ',
+ 'Subtotal' => 'ð¦ÄÓÕÍÏË ÐÏ ÒÏÚĦÌÕ',
+ 'Tax Included' => 'ðÏÄÁÔÏË ×ËÌÀÞÅÎÏ',
+ 'To' => 'äÏ',
+ 'Total' => 'úÁÇÁÌØÎÁ óÕÍÁ',
+ 'Unit' => 'ïÄÉÎÉÃÑ',
+ 'Update' => 'ðÏÎÏ×ÉÔÉ',
+ 'Vendor not on file!' => 'ðÏÔÁÞÁÌØÎÉËÁ ÎÅÍÁ Õ ÓÐÉÓËÕ ',
+ 'What type of item is this?' => 'ñËÉÊ ÃÅ ×ÉÄ/ÔÉÐ ÔÏ×ÁÒÕ',
+ 'Yes' => 'Tak',
+ 'ea' => 'ÛÔ.',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'ðÒÏÄÏ×ÖÉÔÉ' => 'continue',
+ '÷ÉÄÁÌÉÔÉ' => 'delete',
+ 'åÌ._ÐÏÛÔÁ' => 'e_mail',
+ '÷ÉÓÔÁ×ÉÔÉ' => 'post',
+ '÷ÉÓÔÁ×ÉÔÉ_ÑË_ÎÏ×ÉÊ' => 'post_as_new',
+ 'îÁÄÒÕËÕ×ÁÔÉ' => 'print',
+ 'ðÒÏÄÁÖÎÁ_îÁËÌÁÄÎÁ' => 'sales_order',
+ 'ðÏÓÌÁÔÉ_ÄÏ' => 'ship_to',
+ 'ðÏÎÏ×ÉÔÉ' => 'update',
+ 'tak' => 'yes',
+};
+
+1;
+
diff --git a/locale/ua/jc b/locale/ua/jc
new file mode 100755
index 00000000..b640214b
--- /dev/null
+++ b/locale/ua/jc
@@ -0,0 +1,83 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'Accounting Menu' => 'íÅÎÀ ïÂ̦ËÕ',
+ 'Amount' => 'óÕÍÁ',
+ 'Closed' => 'úÁËÒÉÔÏ',
+ 'Confirm!' => 'ð¦ÄÔ×ÅÒĦÔØ!',
+ 'Continue' => 'ðÒÏÄÏ×ÖÉÔÉ',
+ 'Current' => 'ðÏÔÏÞÎÉÊ',
+ 'Date' => 'äÁÔÁ',
+ 'Date missing!' => 'îÅ ×ËÁÚÁÎÁ ÄÁÔÁ!',
+ 'Delete' => '÷ÉÄÁÌÉÔÉ',
+ 'Description' => 'ïÐÉÓ',
+ 'Employee' => 'ðÒÁæ×ÎÉË',
+ 'From' => '÷¦Ä/ú',
+ 'ID' => '¶ÄÅÎÔÉƦËÁæÊÎÉÊ ÎÏÍÅÒ',
+ 'Include in Report' => 'äÏÄÁÔÉ ÄÏ úצÔÕ',
+ 'Notes' => 'ðÒÉͦÔËÉ',
+ 'Open' => '÷¦ÄËÒÉÔÏ',
+ 'PDF' => 'PDF ÆÁÊÌ ÆÏÒÍÁÔ',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'îÁÄÒÕËÕ×ÁÔÉ',
+ 'Project Number missing!' => 'îÅ ×ËÁÚÁÎÉÊ ÎÏÍÅÒ ÐÒÏÅËÔÕ!',
+ 'Qty' => 'ë¦ÌØ˦ÓÔØ',
+ 'Save' => 'úÂÅÒÅÇÔÉ',
+ 'Save as new' => 'úÂÅÒÅÇÔÉ ÑË ÎÏ×Å',
+ 'Screen' => 'åËÒÁÎ',
+ 'Select postscript or PDF!' => '÷ÉÂÅÒ¦ÔØ postscript ÁÂÏ PDF',
+ 'Subtotal' => 'ð¦ÄÓÕÍÏË ÐÏ ÒÏÚĦÌÕ',
+ 'To' => 'äÏ',
+ 'Total' => 'úÁÇÁÌØÎÁ óÕÍÁ',
+ 'Update' => 'ðÏÎÏ×ÉÔÉ',
+ 'Yes' => 'Tak',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'ðÒÏÄÏ×ÖÉÔÉ' => 'continue',
+ '÷ÉÄÁÌÉÔÉ' => 'delete',
+ 'îÁÄÒÕËÕ×ÁÔÉ' => 'print',
+ 'úÂÅÒÅÇÔÉ' => 'save',
+ 'úÂÅÒÅÇÔÉ_ÑË_ÎÏ×Å' => 'save_as_new',
+ 'ðÏÎÏ×ÉÔÉ' => 'update',
+ 'tak' => 'yes',
+};
+
+1;
+
diff --git a/locale/ua/locales.pl b/locale/ua/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/ua/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/ua/login b/locale/ua/login
new file mode 100755
index 00000000..8949fe8c
--- /dev/null
+++ b/locale/ua/login
@@ -0,0 +1,23 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'Company' => 'ð¦ÄÐÒɤÍÓÔ×Ï',
+ 'Continue' => 'ðÒÏÄÏ×ÖÉÔÉ',
+ 'Incorrect Dataset version!' => 'îÅצÒÎÁ ×ÅÒÓ¦Ñ âÁÚÉ äÁÎÉÈ!',
+ 'Login' => 'ðÏÞÁÔÏË óÅÁÎÓÕ',
+ 'Name' => 'îÁÚ×Á',
+ 'Password' => 'ðÁÒÏÌØ',
+ 'Version' => '÷ÅÒÓ¦Ñ',
+ 'You did not enter a name!' => 'îÅ ××ÅÄÅÎÏ ÎÁÚ×Õ',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ 'ðÏÞÁÔÏË_óÅÁÎÓÕ' => 'login',
+};
+
+1;
+
diff --git a/locale/ua/menu b/locale/ua/menu
new file mode 100755
index 00000000..e32d25ec
--- /dev/null
+++ b/locale/ua/menu
@@ -0,0 +1,83 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'AP' => '÷ÉÔÒÁÔÉ',
+ 'AP Aging' => 'AP Aging (×ÉÔÒÁÔÉ)',
+ 'AP Transaction' => 'ðÒÏ×ÏÄËÁ ÷ÉÔÒÁÔ',
+ 'AR' => 'äÏÈÏÄÉ',
+ 'AR Aging' => 'AR Aging (ÄÏÈÏÄÉ)',
+ 'AR Transaction' => 'ðÒÏ×ÏÄËÁ äÏÈÏĦ×',
+ 'Accounting Menu' => 'íÅÎÀ ïÂ̦ËÕ',
+ 'Add Account' => 'îÏ×ÉÊ ÒÁÈÕÎÏË',
+ 'Add Assembly' => 'îÏ×ÙÊ ËÏÍÐÌÅËÔ',
+ 'Add Customer' => 'îÏ×ÉÊ Ë̦¤ÎÔ',
+ 'Add GIFI' => 'îÏ×ÉÊ GIFI',
+ 'Add Part' => 'îÏ×ÉÊ ôÏ×ÁÒ',
+ 'Add Project' => 'îÏ×ÉÊ ðÒÏÅËÔ',
+ 'Add Service' => 'îÏ×Á ÐÏÓÌÕÇÁ',
+ 'Add Transaction' => 'îÏ×Á ÐÒÏ×ÏÄËÁ',
+ 'Add Vendor' => 'îÏ×ÉÊ ÐÏÓÔÁÞÁÌØÎÉË',
+ 'Assemblies' => 'ëÏÍÐÌÅËÔÉ',
+ 'Audit Control' => 'ëÏÎÔÒÏÌØ',
+ 'Backup' => 'òÅÚÅÒ×ÎÁ ËÏЦÑ',
+ 'Balance Sheet' => 'âÁÌÁÎÓ',
+ 'Cash' => 'çÏÔ¦×ËÁ',
+ 'Chart of Accounts' => 'ðÌÁÎ òÁÈÕÎ˦×',
+ 'Check' => 'þÅË',
+ 'Customers' => 'ë̦¤ÎÔÉ',
+ 'Description' => 'ïÐÉÓ',
+ 'General Ledger' => 'çÏÌÏ×ÎÁ ëÎÉÇÁ',
+ 'Goods & Services' => 'ôÏ×ÁÒÉ ¦ ðÏÓÌÕÇÉ',
+ 'HTML Templates' => 'HTML ûÁÂÌÏÎÉ ',
+ 'Income Statement' => 'ú×¦Ô ÐÒÏ ÄÏÈÏÄÉ ¦ ×ÉÄÁÔËÉ',
+ 'Invoice' => 'òÁÈÕÎÏË-ÆÁËÔÕÒÁ',
+ 'LaTeX Templates' => 'LaTeX ûÁÂÌÏÎÉ',
+ 'Language' => 'íÏ×Á',
+ 'List Accounts' => 'óÐÉÓÏË òÁÈÕÎ˦×',
+ 'List GIFI' => 'óÐÉÓÏË GIFI',
+ 'Logout' => 'ë¦ÎÅÃØ óÅÁÎÓÕ',
+ 'Open' => '÷¦ÄËÒÉÔÏ',
+ 'Order Entry' => '÷ÉÓÔÁ×ÌÅÎÎÑ úÁÍÏ×ÌÅÎÎÑ',
+ 'Packing List' => 'ðÁËÕ×ÁÌØÎÉÊ óÐÉÓÏË',
+ 'Parts' => 'ÔÏ×ÁÒÉ',
+ 'Payment' => 'ðÌÁÔ¦Ö',
+ 'Payments' => 'ðÌÁÔÅÖ¦',
+ 'Preferences' => 'îÁÓÔÒÏÊËÉ',
+ 'Print' => 'îÁÄÒÕËÕ×ÁÔÉ',
+ 'Projects' => 'ðÒÏÅËÔÉ',
+ 'Purchase Order' => 'ëÕЦ×ÅÌØÎÅ úÁÍÏ×ÌÅÎÎÑ',
+ 'Purchase Orders' => 'ëÕЦ×ÅÌØΦ úÁÍÏ×ÌÅÎÎÑ',
+ 'Receipt' => 'ë×ÉÔÁÎæÑ',
+ 'Receipts' => 'ë×ÉÔÁÎæ§',
+ 'Reconciliation' => 'õÚÇÏÄÖÅÎÎÑ',
+ 'Reports' => 'úצÔÉ',
+ 'Sales Invoice' => 'òÁÈÕÎÏË-ÆÁËÔÕÒÁ',
+ 'Sales Order' => 'ðÒÏÄÁÖÎÁ îÁËÌÁÄÎÁ',
+ 'Sales Orders' => 'ðÒÏÄÁÖΦ îÁËÌÁÄΦ',
+ 'Save to File' => 'úÂÅÒÅÇÔÉ Õ æÁÊ̦',
+ 'Send by E-Mail' => '÷ÉÓÌÁÔÉ ÐÏ ÅÌ. ÐÏÛÔ¦',
+ 'Services' => 'ðÏÓÌÕÇÉ',
+ 'Ship' => 'ðÏÓÌÁÔÉ',
+ 'Statement' => 'úצÔ',
+ 'Stock Assembly' => '¶Î×ÅÎÔÁÒ ëÏÍÐÌÅËÔÕ',
+ 'Stylesheet' => 'ïÆÏÒÍÌÅÎÎÎÑ',
+ 'System' => 'óÉÓÔÅÍÁ',
+ 'Tax collected' => 'ðÏÄÁÔÏË Ú¦ÂÒÁÎÏ',
+ 'Tax paid' => 'ðÏÄÁÔÏË ÚÁÐÌÁÞÅÎÏ',
+ 'Transactions' => 'ðÒÏ×ÏÄËÉ',
+ 'Trial Balance' => 'ðÒÏÂÎÉÊ âÁÌÁÎÓ',
+ 'Vendor Invoice' => 'òÁÈÕÎÏË-ÆÁËÔÕÒÁ',
+ 'Vendors' => 'ðÏÓÔÁÞÁÌØÎÉËÉ',
+ 'Version' => '÷ÅÒÓ¦Ñ',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/ua/oe b/locale/ua/oe
new file mode 100755
index 00000000..2c646c83
--- /dev/null
+++ b/locale/ua/oe
@@ -0,0 +1,244 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'Accounting Menu' => 'íÅÎÀ ïÂ̦ËÕ',
+ 'Add Purchase Order' => 'îÏ×Å ÚÁÍÏ×ÌÅÎÎÑ ÎÁ ËÕЦ×ÌÀ',
+ 'Add Sales Invoice' => 'îÏ×ÉÊ òÁÈÕÎÏ-ÆÁËÔÕÒÁ',
+ 'Add Sales Order' => 'îÏ×Å ÚÁÍÏ×ÌÅÎÎÑ ÎÁ ÐÒÏÄÁÖ',
+ 'Add Vendor Invoice' => 'îÏ×ÉÊ ëÕЦ×ÅÌØÎÉÊ òÁÈÕÎÏË-ÆÁËÔÕÒÁ',
+ 'Address' => 'áÄÒÅÓÁ',
+ 'Amount' => 'óÕÍÁ',
+ 'Apr' => 'ËצÔÎÑ',
+ 'April' => 'ëצÔÅÎØ',
+ 'Are you sure you want to delete Order Number' => '÷É ÐÅ×Φ, ÝÏ ÈÏÞÅÔÅ ×ÉÄÁÌÉÔÉ ÄÁÎÅ ÚÁÍÏ×ÌÅÎÎÑ?',
+ 'Attachment' => 'äÏÄÁÔÏË',
+ 'Aug' => 'ÓÅÒÐÎÑ',
+ 'August' => 'óÅÒÐÅÎØ',
+ 'Bcc' => 'ðÒÉ×ÁÔÎÁ ËÏÐ¦Ñ ÄÏ',
+ 'Bin' => 'Bin',
+ 'C' => 'ó',
+ 'Cannot delete order!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÄÁÌÉÔÉ ÚÁÍÏ×ÌÅÎÎÑ!',
+ 'Cannot save order!' => 'îÅ ÍÏÖÌÉ×Ï ÚÂÅÒÅÇÔÉ ÚÁÍÏ×ÌÅÎÎÑ!',
+ 'Cc' => 'ëÏÐ¦Ñ ÄÏ',
+ 'Closed' => 'úÁËÒÉÔÏ',
+ 'Confirm!' => 'ð¦ÄÔ×ÅÒĦÔØ!',
+ 'Contact' => 'ëÏÎÔÁËÔÎÁ ÏÓÏÂÁ',
+ 'Continue' => 'ðÒÏÄÏ×ÖÉÔÉ',
+ 'Copies' => 'ëÏЦÊ',
+ 'Credit Limit' => 'ì¦Í¦Ô ËÒÅÄÉÔÕ',
+ 'Curr' => '÷ÁÌÀÔÁ',
+ 'Currency' => '÷ÁÌÀÔÁ',
+ 'Current' => 'ðÏÔÏÞÎÉÊ',
+ 'Customer' => 'ë̦¤ÎÔ',
+ 'Customer missing!' => 'îÅ ×ËÁÚÁÎÉÊ Ë̦¤ÎÔ!',
+ 'Customer not on file!' => 'ë̦¤ÎÔÁ ÎÅÍÁ × ÓÐÉÓËÕ!',
+ 'Date' => 'äÁÔÁ',
+ 'Dec' => 'ÇÒÕÄÎÑ',
+ 'December' => 'çÒÕÄÅÎØ',
+ 'Delete' => '÷ÉÄÁÌÉÔÉ',
+ 'Delivery Date' => 'äÁÔÁ ÄÏÓÔÁ×ËÉ',
+ 'Description' => 'ïÐÉÓ',
+ 'Done' => 'úÒÏÂÌÅÎÏ',
+ 'E-mail' => 'åÌ. ÐÏÛÔÁ',
+ 'E-mail address missing!' => 'îÅ ×ËÁÚÁÎÁ ÁÄÒÅÓÁ ÅÌ. ÐÏÛÔÉ!',
+ 'Edit Purchase Order' => '÷¦ÄÒÅÄÁÇÕ×ÁÔÉ ëÕЦ×ÅÌØÎÅ úÁÍÏ×ÌÅÎÎÑ',
+ 'Edit Sales Order' => '÷¦ÄÒÅÄÁÇÕ×ÁÔÉ ðÒÏÄÁÖÎÕ îÁËÌÁÄÎÕ',
+ 'Employee' => 'ðÒÁæ×ÎÉË',
+ 'Exchange Rate' => 'ëÕÒÓ ×ÁÌÀÔÉ',
+ 'Exchange rate missing!' => 'îÅ ×ËÁÚÁÎÉÊ ËÕÒÓ ×ÁÌÀÔÉ!',
+ 'Extended' => 'ðÒÏÄÏ×ÖÅÎÏ',
+ 'Fax' => 'æÁÈ',
+ 'Feb' => 'ÌÀÔÏÇÏ',
+ 'February' => 'ìÀÔÉÊ',
+ 'From' => '÷¦Ä/ú',
+ 'ID' => '¶ÄÅÎÔÉƦËÁæÊÎÉÊ ÎÏÍÅÒ',
+ 'In-line' => '÷ËÌÀÞÅÎÏ (In-line)',
+ 'Include in Report' => 'äÏÄÁÔÉ ÄÏ úצÔÕ',
+ 'Invoice' => 'òÁÈÕÎÏË-ÆÁËÔÕÒÁ',
+ 'Invoice Date missing!' => 'îÅ ×ËÁÚÁÎÁ ÄÁÔÁ ×ÉÓÔÁ×ÌÅÎÎÑ ÒÁÈÕÎËÁ-ÆÁËÔÕÒÉ',
+ 'Invoice Number missing!' => 'îÅ ×ËÁÚÁÎÉÊ ÎÏÍÅÒ ÒÁÈÕÎËÁ-ÆÁËÔÕÒÉ',
+ 'Item not on file!' => 'òÅÞ¦ ÎÅÍÁ × ÓÐÉÓËÕ!',
+ 'Jan' => 'Ó¦ÞÎÑ',
+ 'January' => 'Ó¦ÞÅÎØ',
+ 'Jul' => 'ÌÉÐÎÑ',
+ 'July' => 'ìÉÐÅÎØ',
+ 'Jun' => 'ÞÅÒ×ÎÑ',
+ 'June' => 'þÅÒ×ÅÎØ',
+ 'Mar' => 'ÂÅÒÅÚÎÑ',
+ 'March' => 'âÅÒÅÚÅÎØ',
+ 'May' => 'ÔÒÁ×ÎÑ',
+ 'May ' => 'ôÒÁ×ÅÎØ',
+ 'Message' => 'ðÏצÄÏÍÌÅÎÎÑ',
+ 'No.' => 'No.',
+ 'Notes' => 'ðÒÉͦÔËÉ',
+ 'Nothing selected!' => 'î¦ÞÏÇÏ ÎÅ ×ÉÂÒÁÎÏ!',
+ 'Nov' => 'ÌÉÓÔÏÐÁÄÁ',
+ 'November' => 'ìÉÓÔÏÐÁÄ',
+ 'Number' => 'îÏÍÅÒ',
+ 'Number missing in Row' => 'îÅ ×ËÁÚÁÎÉÊ ÎÏÍÅÒ Õ ÒÑÄËÕ',
+ 'O' => 'ï',
+ 'Oct' => 'ÖÏ×ÔÎÑ',
+ 'October' => 'öÏ×ÔÅÎØ',
+ 'Open' => '÷¦ÄËÒÉÔÏ',
+ 'Order' => 'úÁÍÏ×ÌÅÎÎÑ',
+ 'Order Date' => 'äÁÔÁ úÁÍÏ×ÌÅÎÎÑ',
+ 'Order Date missing!' => 'îÅ ×ËÁÚÁÎÁ äÁÔÁ úÁÍÏ×ÌÅÎÎÑ!',
+ 'Order Number' => 'îÏÍÅÒ úÁÍÏ×ÌÅÎÎÑ',
+ 'Order Number missing!' => 'îÅ ×ËÁÚÁÎÏ îÏÍÅÒ úÁÍÏ×ÌÅÎÎÑ',
+ 'Order deleted!' => 'úÁÍÏ×ÌÅÎÎÑ ×ÉÄÁÌÅÎÏ!',
+ 'Order saved!' => 'úÁÍÏ×ÌÅÎÎÑ ÚÂÅÒÅÖÅÎÏ!',
+ 'PDF' => 'PDF ÆÁÊÌ ÆÏÒÍÁÔ',
+ 'Packing List' => 'ðÁËÕ×ÁÌØÎÉÊ óÐÉÓÏË',
+ 'Packing List Date missing!' => 'îÅ ×ËÁÚÁÎÁ äÁÔÁ ðÁËÕ×ÁÌØÎÏÇÏ óÐÉÓÏËÕ',
+ 'Packing List Number missing!' => 'îÅ ×ËÁÚÁÎÉÊ îÏÍÅÒ ðÁËÕ×ÁÌØÎÏÇÏ óÐÉÓÏËÕ',
+ 'Part' => 'ôÏ×ÁÒ',
+ 'Phone' => 'ôÅÌ.',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'ã¦ÎÁ',
+ 'Print' => 'îÁÄÒÕËÕ×ÁÔÉ',
+ 'Project' => 'ðÒÏÅËÔ',
+ 'Project not on file!' => 'ðÒÏÅËÔÕ ÎÅÍÁ × ÓÐÉÓËÕ!',
+ 'Purchase Order' => 'ëÕЦ×ÅÌØÎÅ úÁÍÏ×ÌÅÎÎÑ',
+ 'Purchase Orders' => 'ëÕЦ×ÅÌØΦ úÁÍÏ×ÌÅÎÎÑ',
+ 'Qty' => 'ë¦ÌØ˦ÓÔØ',
+ 'Recd' => 'ïÔÒÉÍÁÎÏ',
+ 'Reference' => 'úÓÉÌËÁ',
+ 'Remaining' => 'úÁÌÉÛÉÌÏÓØ',
+ 'Required by' => 'ôÅÒͦΠÄÏÓÔÁ×ËÉ',
+ 'Sales Invoice' => 'òÁÈÕÎÏË-ÆÁËÔÕÒÁ',
+ 'Sales Order' => 'ðÒÏÄÁÖÎÁ îÁËÌÁÄÎÁ',
+ 'Sales Orders' => 'ðÒÏÄÁÖΦ îÁËÌÁÄΦ',
+ 'Save' => 'úÂÅÒÅÇÔÉ',
+ 'Save as new' => 'úÂÅÒÅÇÔÉ ÑË ÎÏ×Å',
+ 'Screen' => 'åËÒÁÎ',
+ 'Select from one of the names below' => '÷ÉÂÅÒ¦ÔØ ÏÄÎÕ ¦Ú ÎÁÓÔÕÐÎÉÈ ÎÁÚ×',
+ 'Select from one of the projects below' => '÷ÉÂÅÒ¦ÔØ ÏÄÉÎ ¦Ú ÎÁÓÔÕÐÎÉÈ ÐÒÏÅËÔ¦×',
+ 'Select postscript or PDF!' => '÷ÉÂÅÒ¦ÔØ postscript ÁÂÏ PDF',
+ 'Sep' => '×ÅÒÅÓÎÑ',
+ 'September' => '÷ÅÒÅÓÅÎØ',
+ 'Service' => 'ðÏÓÌÕÇÁ',
+ 'Ship' => 'ðÏÓÌÁÔÉ',
+ 'Ship to' => 'ðÏÓÌÁÔÉ ÄÏ',
+ 'Ship via' => 'ðÏÓÌÁÔÉ ÞÅÒÅÚ',
+ 'Subject' => 'ôÅÍÁ',
+ 'Subtotal' => 'ð¦ÄÓÕÍÏË ÐÏ ÒÏÚĦÌÕ',
+ 'Tax' => 'ðÏÄÁÔÏË',
+ 'Tax Included' => 'ðÏÄÁÔÏË ×ËÌÀÞÅÎÏ',
+ 'Terms' => 'õÍÏ×É: ',
+ 'To' => 'äÏ',
+ 'Total' => 'úÁÇÁÌØÎÁ óÕÍÁ',
+ 'Unit' => 'ïÄÉÎÉÃÑ',
+ 'Update' => 'ðÏÎÏ×ÉÔÉ',
+ 'Vendor' => 'ðÏÓÔÁÞÁÌØÎÉË',
+ 'Vendor Invoice' => 'òÁÈÕÎÏË-ÆÁËÔÕÒÁ',
+ 'Vendor missing!' => 'ðÏÓÔÁÞÁÌØÎÉË ÎÅ ¦ÓÎÕ¤',
+ 'Vendor not on file!' => 'ðÏÔÁÞÁÌØÎÉËÁ ÎÅÍÁ Õ ÓÐÉÓËÕ ',
+ 'What type of item is this?' => 'ñËÉÊ ÃÅ ×ÉÄ/ÔÉÐ ÔÏ×ÁÒÕ',
+ 'Yes' => 'Tak',
+ 'days' => 'ÄΦ×',
+ 'ea' => 'ÛÔ.',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'ðÒÏÄÏ×ÖÉÔÉ' => 'continue',
+ '÷ÉÄÁÌÉÔÉ' => 'delete',
+ 'úÒÏÂÌÅÎÏ' => 'done',
+ 'åÌ._ÐÏÛÔÁ' => 'e_mail',
+ 'îÁÄÒÕËÕ×ÁÔÉ' => 'print',
+ 'ëÕЦ×ÅÌØÎÅ_úÁÍÏ×ÌÅÎÎÑ' => 'purchase_order',
+ 'òÁÈÕÎÏË_ÆÁËÔÕÒÁ' => 'sales_invoice',
+ 'ðÒÏÄÁÖÎÁ_îÁËÌÁÄÎÁ' => 'sales_order',
+ 'úÂÅÒÅÇÔÉ' => 'save',
+ 'úÂÅÒÅÇÔÉ_ÑË_ÎÏ×Å' => 'save_as_new',
+ 'ðÏÓÌÁÔÉ_ÄÏ' => 'ship_to',
+ 'ðÏÎÏ×ÉÔÉ' => 'update',
+ 'òÁÈÕÎÏË_ÆÁËÔÕÒÁ' => 'vendor_invoice',
+ 'tak' => 'yes',
+};
+
+1;
+
diff --git a/locale/ua/pe b/locale/ua/pe
new file mode 100755
index 00000000..9e0f6354
--- /dev/null
+++ b/locale/ua/pe
@@ -0,0 +1,108 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'Accounting Menu' => 'íÅÎÀ ïÂ̦ËÕ',
+ 'Active' => 'áËÔÉ×ÎÉÊ',
+ 'Add' => 'îÏ×ÉÊ',
+ 'Add Project' => 'îÏ×ÉÊ ðÒÏÅËÔ',
+ 'Address' => 'áÄÒÅÓÁ',
+ 'All' => '÷Ó¦',
+ 'Amount' => 'óÕÍÁ',
+ 'Bin' => 'Bin',
+ 'Continue' => 'ðÒÏÄÏ×ÖÉÔÉ',
+ 'Current' => 'ðÏÔÏÞÎÉÊ',
+ 'Customer' => 'ë̦¤ÎÔ',
+ 'Customer missing!' => 'îÅ ×ËÁÚÁÎÉÊ Ë̦¤ÎÔ!',
+ 'Customer not on file!' => 'ë̦¤ÎÔÁ ÎÅÍÁ × ÓÐÉÓËÕ!',
+ 'Date' => 'äÁÔÁ',
+ 'Delete' => '÷ÉÄÁÌÉÔÉ',
+ 'Description' => 'ïÐÉÓ',
+ 'Edit Project' => '÷¦ÄÒÅÄÁÇÕ×ÁÔÉ ðÒÏÅËÔ',
+ 'Employee' => 'ðÒÁæ×ÎÉË',
+ 'From' => '÷¦Ä/ú',
+ 'Language' => 'íÏ×Á',
+ 'Link Accounts' => 'ðÏ×ÑÚÁÔÉ òÁÈÕÎËÉ',
+ 'List Price' => 'ã¦ÎÁ',
+ 'Notes' => 'ðÒÉͦÔËÉ',
+ 'Nothing selected!' => 'î¦ÞÏÇÏ ÎÅ ×ÉÂÒÁÎÏ!',
+ 'Number' => 'îÏÍÅÒ',
+ 'Orphaned' => '÷¦ÄÏËÒÅÍÌÅÎÉÊ/ïÓÉÒÏÔ¦ÌÉÊ',
+ 'Project' => 'ðÒÏÅËÔ',
+ 'Project deleted!' => 'ðÒÏÅËÔ ×ÉÄÁÌÅÎÏ!',
+ 'Project saved!' => 'ðÒÏÅËÔ ÚÂÅÒÅÖÅÎÏ!',
+ 'Projects' => 'ðÒÏÅËÔÉ',
+ 'Qty' => 'ë¦ÌØ˦ÓÔØ',
+ 'Save' => 'úÂÅÒÅÇÔÉ',
+ 'Select from one of the names below' => '÷ÉÂÅÒ¦ÔØ ÏÄÎÕ ¦Ú ÎÁÓÔÕÐÎÉÈ ÎÁÚ×',
+ 'Sell Price' => '÷¦ÄÐÕÓËÎÁ ã¦ÎÁ',
+ 'Tax' => 'ðÏÄÁÔÏË',
+ 'To' => 'äÏ',
+ 'Unit' => 'ïÄÉÎÉÃÑ',
+ 'Update' => 'ðÏÎÏ×ÉÔÉ',
+ 'Updated' => 'ðÏÎÏ×ÌÅÎÏ',
+ 'Vendor' => 'ðÏÓÔÁÞÁÌØÎÉË',
+ 'Vendor not on file!' => 'ðÏÔÁÞÁÌØÎÉËÁ ÎÅÍÁ Õ ÓÐÉÓËÕ ',
+ 'Weight' => '÷ÁÇÁ',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'îÏ×ÉÊ_ðÒÏÅËÔ' => 'add_project',
+ 'ðÒÏÄÏ×ÖÉÔÉ' => 'continue',
+ '÷ÉÄÁÌÉÔÉ' => 'delete',
+ 'úÂÅÒÅÇÔÉ' => 'save',
+ 'ðÏÎÏ×ÉÔÉ' => 'update',
+};
+
+1;
+
diff --git a/locale/ua/pos b/locale/ua/pos
new file mode 100755
index 00000000..bda35190
--- /dev/null
+++ b/locale/ua/pos
@@ -0,0 +1,66 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'Accounting Menu' => 'íÅÎÀ ïÂ̦ËÕ',
+ 'Amount' => 'óÕÍÁ',
+ 'Cannot post transaction!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÓÔÁ×ÉÔÉ ÐÒÏ×ÏÄËÕ!',
+ 'Continue' => 'ðÒÏÄÏ×ÖÉÔÉ',
+ 'Credit Limit' => 'ì¦Í¦Ô ËÒÅÄÉÔÕ',
+ 'Currency' => '÷ÁÌÀÔÁ',
+ 'Current' => 'ðÏÔÏÞÎÉÊ',
+ 'Customer' => 'ë̦¤ÎÔ',
+ 'Customer missing!' => 'îÅ ×ËÁÚÁÎÉÊ Ë̦¤ÎÔ!',
+ 'Delete' => '÷ÉÄÁÌÉÔÉ',
+ 'Description' => 'ïÐÉÓ',
+ 'Exchange Rate' => 'ëÕÒÓ ×ÁÌÀÔÉ',
+ 'Exchange rate missing!' => 'îÅ ×ËÁÚÁÎÉÊ ËÕÒÓ ×ÁÌÀÔÉ!',
+ 'Extended' => 'ðÒÏÄÏ×ÖÅÎÏ',
+ 'From' => '÷¦Ä/ú',
+ 'Language' => 'íÏ×Á',
+ 'Number' => 'îÏÍÅÒ',
+ 'Open' => '÷¦ÄËÒÉÔÏ',
+ 'Post' => '÷ÉÓÔÁ×ÉÔÉ',
+ 'Price' => 'ã¦ÎÁ',
+ 'Print' => 'îÁÄÒÕËÕ×ÁÔÉ',
+ 'Qty' => 'ë¦ÌØ˦ÓÔØ',
+ 'Receipts' => 'ë×ÉÔÁÎæ§',
+ 'Record in' => '÷ÎÅÓÔÉ ×',
+ 'Remaining' => 'úÁÌÉÛÉÌÏÓØ',
+ 'Screen' => 'åËÒÁÎ',
+ 'Source' => 'äÖÅÒÅÌÏ',
+ 'Subtotal' => 'ð¦ÄÓÕÍÏË ÐÏ ÒÏÚĦÌÕ',
+ 'Tax Included' => 'ðÏÄÁÔÏË ×ËÌÀÞÅÎÏ',
+ 'To' => 'äÏ',
+ 'Total' => 'úÁÇÁÌØÎÁ óÕÍÁ',
+ 'Unit' => 'ïÄÉÎÉÃÑ',
+ 'Update' => 'ðÏÎÏ×ÉÔÉ',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'ðÒÏÄÏ×ÖÉÔÉ' => 'continue',
+ '÷ÉÄÁÌÉÔÉ' => 'delete',
+ '÷ÉÓÔÁ×ÉÔÉ' => 'post',
+ 'îÁÄÒÕËÕ×ÁÔÉ' => 'print',
+ 'ðÏÎÏ×ÉÔÉ' => 'update',
+};
+
+1;
+
diff --git a/locale/ua/ps b/locale/ua/ps
new file mode 100755
index 00000000..ddebf7db
--- /dev/null
+++ b/locale/ua/ps
@@ -0,0 +1,289 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'AP Aging' => 'AP Aging (×ÉÔÒÁÔÉ)',
+ 'AP Transaction' => 'ðÒÏ×ÏÄËÁ ÷ÉÔÒÁÔ',
+ 'AP Transactions' => 'ðÒÏ×ÏÄËÉ ÷ÉÔÒÁÔ',
+ 'AR Aging' => 'AR Aging (ÄÏÈÏÄÉ)',
+ 'AR Transaction' => 'ðÒÏ×ÏÄËÁ äÏÈÏĦ×',
+ 'AR Transactions' => 'ðÒÏ×ÏÄËÉ äÏÈÏĦ×',
+ 'Account' => 'òÁÈÕÎÏË',
+ 'Account Number' => 'îÏÍÅÒ òÁÈÕÎËÕ',
+ 'Accounting Menu' => 'íÅÎÀ ïÂ̦ËÕ',
+ 'Accounts' => 'òÁÈÕÎËÉ',
+ 'Add Purchase Order' => 'îÏ×Å ÚÁÍÏ×ÌÅÎÎÑ ÎÁ ËÕЦ×ÌÀ',
+ 'Add Sales Invoice' => 'îÏ×ÉÊ òÁÈÕÎÏ-ÆÁËÔÕÒÁ',
+ 'Add Sales Order' => 'îÏ×Å ÚÁÍÏ×ÌÅÎÎÑ ÎÁ ÐÒÏÄÁÖ',
+ 'Address' => 'áÄÒÅÓÁ',
+ 'Amount' => 'óÕÍÁ',
+ 'Amount Due' => 'úÁÐÌÁÔÉÔÉ óÕÍÕ',
+ 'Apr' => 'ËצÔÎÑ',
+ 'April' => 'ëצÔÅÎØ',
+ 'Are you sure you want to delete Invoice Number' => '÷É ÐÅ×Φ, ÝÏ ÈÏÞÅÔÅ ×ÉÄÁÌÉÔÉ ÄÁÎÉÊ ÒÁÈÕÎÏË?',
+ 'Are you sure you want to delete Transaction' => '÷É ÐÅ×Φ, ÝÏ ÈÏÞÅÔÅ ×ÉÄÁÌÉÔÉ ÄÁÎÕ ÐÒÏ×ÏÄËÕ?',
+ 'Attachment' => 'äÏÄÁÔÏË',
+ 'Aug' => 'ÓÅÒÐÎÑ',
+ 'August' => 'óÅÒÐÅÎØ',
+ 'Balance' => 'âÁÌÁÎÓ',
+ 'Balance Sheet' => 'âÁÌÁÎÓ',
+ 'Bcc' => 'ðÒÉ×ÁÔÎÁ ËÏÐ¦Ñ ÄÏ',
+ 'Bin' => 'Bin',
+ 'Cannot delete invoice!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÄÁÌÉÔÉ ÒÁÈÕÎÏË-ÆÁËÔÕÒÕ',
+ 'Cannot delete transaction!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÄÁÌÉÔÉ ÐÒÏ×ÏÄËÕ!',
+ 'Cannot post invoice for a closed period!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÓÔÁ×ÉÔÉ ÒÁÈÕÎÏË-ÆÁËÔÕÒÕ ÄÌÑ ÚÁËÒÉÔÏÇÏ ÐÅÒ¦ÏÄÕ!',
+ 'Cannot post invoice!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÓÔÁ×ÉÔÉ ÒÁÈÕÎÏË-ÆÁËÔÕÒÕ!',
+ 'Cannot post payment for a closed period!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÓÔÁ×ÉÔÉ ÐÌÁÔ¦Ö ÄÌÑ ÚÁËÒÉÔÏÇÏ ÐÅÒ¦ÏÄÕ!',
+ 'Cannot post transaction for a closed period!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÓÔÁ×ÉÔÉ ÐÒÏ×ÏÄËÕ ÄÌÑ ÚÁËÒÉÔÏÇÏ ÐÅÒ¦ÏÄÕ!',
+ 'Cannot post transaction!' => 'îÅ ÍÏÖÌÉ×Ï ×ÉÓÔÁ×ÉÔÉ ÐÒÏ×ÏÄËÕ!',
+ 'Cash' => 'çÏÔ¦×ËÁ',
+ 'Cc' => 'ëÏÐ¦Ñ ÄÏ',
+ 'Check' => 'þÅË',
+ 'Closed' => 'úÁËÒÉÔÏ',
+ 'Compare to' => 'ðÏÒ¦×ÎÑÔÉ Ú',
+ 'Confirm!' => 'ð¦ÄÔ×ÅÒĦÔØ!',
+ 'Contact' => 'ëÏÎÔÁËÔÎÁ ÏÓÏÂÁ',
+ 'Continue' => 'ðÒÏÄÏ×ÖÉÔÉ',
+ 'Copies' => 'ëÏЦÊ',
+ 'Credit' => 'ëÒÅÄÉÔ',
+ 'Credit Limit' => 'ì¦Í¦Ô ËÒÅÄÉÔÕ',
+ 'Curr' => '÷ÁÌÀÔÁ',
+ 'Currency' => '÷ÁÌÀÔÁ',
+ 'Current' => 'ðÏÔÏÞÎÉÊ',
+ 'Customer' => 'ë̦¤ÎÔ',
+ 'Customer missing!' => 'îÅ ×ËÁÚÁÎÉÊ Ë̦¤ÎÔ!',
+ 'Customer not on file!' => 'ë̦¤ÎÔÁ ÎÅÍÁ × ÓÐÉÓËÕ!',
+ 'Date' => 'äÁÔÁ',
+ 'Date Paid' => 'äÁÔÁ ÏÐÌÁÔÉ',
+ 'Debit' => 'äÅÂÉÔ',
+ 'Dec' => 'ÇÒÕÄÎÑ',
+ 'December' => 'çÒÕÄÅÎØ',
+ 'Decimalplaces' => 'äÅÓÑÔÉÞΦ ͦÓÃÑ',
+ 'Delete' => '÷ÉÄÁÌÉÔÉ',
+ 'Delivery Date' => 'äÁÔÁ ÄÏÓÔÁ×ËÉ',
+ 'Description' => 'ïÐÉÓ',
+ 'Due Date' => 'úÁÐÌÁÔÉÔÉ ÄÏ',
+ 'Due Date missing!' => 'îÅ ×ËÁÚÁÎÉÊ ÔÅÒͦΠÏÐÌÁÔÉ!',
+ 'E-mail' => 'åÌ. ÐÏÛÔÁ',
+ 'E-mail Statement to' => 'ðÏÓÌÁÔÉ ÐÏ ÅÌ. ÐÏÛÔ¦ ÄÏ',
+ 'E-mail address missing!' => 'îÅ ×ËÁÚÁÎÁ ÁÄÒÅÓÁ ÅÌ. ÐÏÛÔÉ!',
+ 'Edit Sales Invoice' => '÷¦ÄÒÅÄÁÇÕ×ÁÔÉ òÁÈÕÎÏË-ÆÁËÔÕÒÕ',
+ 'Employee' => 'ðÒÁæ×ÎÉË',
+ 'Exch' => 'ëÕÒÓ',
+ 'Exchange Rate' => 'ëÕÒÓ ×ÁÌÀÔÉ',
+ 'Exchange rate for payment missing!' => 'îÅ ×ËÁÚÁÎÉÊ ËÕÒÓ ×ÁÌÀÔÉ ÄÌÑ ÐÌÁÔÅÖÕ!',
+ 'Exchange rate missing!' => 'îÅ ×ËÁÚÁÎÉÊ ËÕÒÓ ×ÁÌÀÔÉ!',
+ 'Extended' => 'ðÒÏÄÏ×ÖÅÎÏ',
+ 'Fax' => 'æÁÈ',
+ 'Feb' => 'ÌÀÔÏÇÏ',
+ 'February' => 'ìÀÔÉÊ',
+ 'From' => '÷¦Ä/ú',
+ 'GIFI' => 'GIFI',
+ 'Heading' => 'òÏÚĦÌ',
+ 'ID' => '¶ÄÅÎÔÉƦËÁæÊÎÉÊ ÎÏÍÅÒ',
+ 'In-line' => '÷ËÌÀÞÅÎÏ (In-line)',
+ 'Include in Report' => 'äÏÄÁÔÉ ÄÏ úצÔÕ',
+ 'Income Statement' => 'ú×¦Ô ÐÒÏ ÄÏÈÏÄÉ ¦ ×ÉÄÁÔËÉ',
+ 'Invoice' => 'òÁÈÕÎÏË-ÆÁËÔÕÒÁ',
+ 'Invoice Date' => 'äÁÔÁ ×ÉÓÔÁ×ÌÅÎÎÑ',
+ 'Invoice Date missing!' => 'îÅ ×ËÁÚÁÎÁ ÄÁÔÁ ×ÉÓÔÁ×ÌÅÎÎÑ ÒÁÈÕÎËÁ-ÆÁËÔÕÒÉ',
+ 'Invoice Number' => 'îÏÍÅÒ ÒÁÈÕÎËÁ-ÆÁËÔÕÒÉ',
+ 'Invoice Number missing!' => 'îÅ ×ËÁÚÁÎÉÊ ÎÏÍÅÒ ÒÁÈÕÎËÁ-ÆÁËÔÕÒÉ',
+ 'Invoice deleted!' => 'òÁÈÕÎÏË-ÆÁËÔÕÒÁ ×ÉÄÁÌÅÎÉÊ!',
+ 'Item not on file!' => 'òÅÞ¦ ÎÅÍÁ × ÓÐÉÓËÕ!',
+ 'Jan' => 'Ó¦ÞÎÑ',
+ 'January' => 'Ó¦ÞÅÎØ',
+ 'Jul' => 'ÌÉÐÎÑ',
+ 'July' => 'ìÉÐÅÎØ',
+ 'Jun' => 'ÞÅÒ×ÎÑ',
+ 'June' => 'þÅÒ×ÅÎØ',
+ 'Language' => 'íÏ×Á',
+ 'Mar' => 'ÂÅÒÅÚÎÑ',
+ 'March' => 'âÅÒÅÚÅÎØ',
+ 'May' => 'ÔÒÁ×ÎÑ',
+ 'May ' => 'ôÒÁ×ÅÎØ',
+ 'Message' => 'ðÏצÄÏÍÌÅÎÎÑ',
+ 'N/A' => 'îÅ óÔÏÓÕ¤ÔØÓÑ',
+ 'No.' => 'No.',
+ 'Notes' => 'ðÒÉͦÔËÉ',
+ 'Nothing selected!' => 'î¦ÞÏÇÏ ÎÅ ×ÉÂÒÁÎÏ!',
+ 'Nov' => 'ÌÉÓÔÏÐÁÄÁ',
+ 'November' => 'ìÉÓÔÏÐÁÄ',
+ 'Number' => 'îÏÍÅÒ',
+ 'Number missing in Row' => 'îÅ ×ËÁÚÁÎÉÊ ÎÏÍÅÒ Õ ÒÑÄËÕ',
+ 'Oct' => 'ÖÏ×ÔÎÑ',
+ 'October' => 'öÏ×ÔÅÎØ',
+ 'Open' => '÷¦ÄËÒÉÔÏ',
+ 'Order' => 'úÁÍÏ×ÌÅÎÎÑ',
+ 'Order Date missing!' => 'îÅ ×ËÁÚÁÎÁ äÁÔÁ úÁÍÏ×ÌÅÎÎÑ!',
+ 'Order Number' => 'îÏÍÅÒ úÁÍÏ×ÌÅÎÎÑ',
+ 'Order Number missing!' => 'îÅ ×ËÁÚÁÎÏ îÏÍÅÒ úÁÍÏ×ÌÅÎÎÑ',
+ 'PDF' => 'PDF ÆÁÊÌ ÆÏÒÍÁÔ',
+ 'Packing List' => 'ðÁËÕ×ÁÌØÎÉÊ óÐÉÓÏË',
+ 'Packing List Date missing!' => 'îÅ ×ËÁÚÁÎÁ äÁÔÁ ðÁËÕ×ÁÌØÎÏÇÏ óÐÉÓÏËÕ',
+ 'Packing List Number missing!' => 'îÅ ×ËÁÚÁÎÉÊ îÏÍÅÒ ðÁËÕ×ÁÌØÎÏÇÏ óÐÉÓÏËÕ',
+ 'Paid' => 'úÁÐÌÁÞÅÎÏ',
+ 'Part' => 'ôÏ×ÁÒ',
+ 'Payment date missing!' => 'îÅ ×ËÁÚÁÎÏ ÄÁÔÕ ðÌÁÔÅÖÕ!',
+ 'Payments' => 'ðÌÁÔÅÖ¦',
+ 'Phone' => 'ôÅÌ.',
+ 'Post' => '÷ÉÓÔÁ×ÉÔÉ',
+ 'Post as new' => '÷ÉÓÔÁ×ÉÔÉ ÑË ÎÏ×ÉÊ',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'ã¦ÎÁ',
+ 'Print' => 'îÁÄÒÕËÕ×ÁÔÉ',
+ 'Project' => 'ðÒÏÅËÔ',
+ 'Project not on file!' => 'ðÒÏÅËÔÕ ÎÅÍÁ × ÓÐÉÓËÕ!',
+ 'Purchase Order' => 'ëÕЦ×ÅÌØÎÅ úÁÍÏ×ÌÅÎÎÑ',
+ 'Qty' => 'ë¦ÌØ˦ÓÔØ',
+ 'Recd' => 'ïÔÒÉÍÁÎÏ',
+ 'Receipt' => 'ë×ÉÔÁÎæÑ',
+ 'Receipts' => 'ë×ÉÔÁÎæ§',
+ 'Record in' => '÷ÎÅÓÔÉ ×',
+ 'Reference' => 'úÓÉÌËÁ',
+ 'Remaining' => 'úÁÌÉÛÉÌÏÓØ',
+ 'Report for' => 'ú×¦Ô ÄÌÑ',
+ 'Required by' => 'ôÅÒͦΠÄÏÓÔÁ×ËÉ',
+ 'Sales Order' => 'ðÒÏÄÁÖÎÁ îÁËÌÁÄÎÁ',
+ 'Screen' => 'åËÒÁÎ',
+ 'Select all' => '÷ÉÂÒÁÔÉ ×ÓÅ',
+ 'Select from one of the names below' => '÷ÉÂÅÒ¦ÔØ ÏÄÎÕ ¦Ú ÎÁÓÔÕÐÎÉÈ ÎÁÚ×',
+ 'Select from one of the projects below' => '÷ÉÂÅÒ¦ÔØ ÏÄÉÎ ¦Ú ÎÁÓÔÕÐÎÉÈ ÐÒÏÅËÔ¦×',
+ 'Select postscript or PDF!' => '÷ÉÂÅÒ¦ÔØ postscript ÁÂÏ PDF',
+ 'Sep' => '×ÅÒÅÓÎÑ',
+ 'September' => '÷ÅÒÅÓÅÎØ',
+ 'Service' => 'ðÏÓÌÕÇÁ',
+ 'Ship' => 'ðÏÓÌÁÔÉ',
+ 'Ship to' => 'ðÏÓÌÁÔÉ ÄÏ',
+ 'Ship via' => 'ðÏÓÌÁÔÉ ÞÅÒÅÚ',
+ 'Source' => 'äÖÅÒÅÌÏ',
+ 'Standard' => 'óÔÁÎÄÁÒÔΦ',
+ 'Statement' => 'úצÔ',
+ 'Statement sent to' => 'ú×¦Ô ÐÏÓÌÁÎÏ ÄÏ',
+ 'Statements sent to printer!' => 'ú×¦Ô ÐÏÓÌÁÎÏ ÄÏ ðÒÉÎÔÅÒÁ!',
+ 'Subject' => 'ôÅÍÁ',
+ 'Subtotal' => 'ð¦ÄÓÕÍÏË ÐÏ ÒÏÚĦÌÕ',
+ 'Tax' => 'ðÏÄÁÔÏË',
+ 'Tax Included' => 'ðÏÄÁÔÏË ×ËÌÀÞÅÎÏ',
+ 'Tax collected' => 'ðÏÄÁÔÏË Ú¦ÂÒÁÎÏ',
+ 'Tax paid' => 'ðÏÄÁÔÏË ÚÁÐÌÁÞÅÎÏ',
+ 'To' => 'äÏ',
+ 'Total' => 'úÁÇÁÌØÎÁ óÕÍÁ',
+ 'Transaction deleted!' => 'ðÒÏ×ÏÄËÁ ×ÉÄÁÌÅÎÁ',
+ 'Transaction posted!' => 'ðÒÏ×ÏÄËÁ ÚĦÊÓÎÅÎÁ',
+ 'Trial Balance' => 'ðÒÏÂÎÉÊ âÁÌÁÎÓ',
+ 'Unit' => 'ïÄÉÎÉÃÑ',
+ 'Update' => 'ðÏÎÏ×ÉÔÉ',
+ 'Vendor' => 'ðÏÓÔÁÞÁÌØÎÉË',
+ 'Vendor missing!' => 'ðÏÓÔÁÞÁÌØÎÉË ÎÅ ¦ÓÎÕ¤',
+ 'Vendor not on file!' => 'ðÏÔÁÞÁÌØÎÉËÁ ÎÅÍÁ Õ ÓÐÉÓËÕ ',
+ 'What type of item is this?' => 'ñËÉÊ ÃÅ ×ÉÄ/ÔÉÐ ÔÏ×ÁÒÕ',
+ 'Yes' => 'Tak',
+ 'as at' => 'ÑË ×',
+ 'ea' => 'ÛÔ.',
+ 'for Period' => 'ÚÁ ðÅÒ¦ÏÄ',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'ðÒÏ×ÏÄËÁ_÷ÉÔÒÁÔ' => 'ap_transaction',
+ 'ðÒÏ×ÏÄËÁ_äÏÈÏĦ×' => 'ar_transaction',
+ 'ðÒÏÄÏ×ÖÉÔÉ' => 'continue',
+ '÷ÉÄÁÌÉÔÉ' => 'delete',
+ 'åÌ._ÐÏÛÔÁ' => 'e_mail',
+ '÷ÉÓÔÁ×ÉÔÉ' => 'post',
+ '÷ÉÓÔÁ×ÉÔÉ_ÑË_ÎÏ×ÉÊ' => 'post_as_new',
+ 'îÁÄÒÕËÕ×ÁÔÉ' => 'print',
+ 'ðÒÏÄÁÖÎÁ_îÁËÌÁÄÎÁ' => 'sales_order',
+ '÷ÉÂÒÁÔÉ_×ÓÅ' => 'select_all',
+ 'ðÏÓÌÁÔÉ_ÄÏ' => 'ship_to',
+ 'ðÏÎÏ×ÉÔÉ' => 'update',
+ 'tak' => 'yes',
+};
+
+1;
+
diff --git a/locale/ua/pw b/locale/ua/pw
new file mode 100755
index 00000000..1613a807
--- /dev/null
+++ b/locale/ua/pw
@@ -0,0 +1,14 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'Continue' => 'ðÒÏÄÏ×ÖÉÔÉ',
+ 'Password' => 'ðÁÒÏÌØ',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'ðÒÏÄÏ×ÖÉÔÉ' => 'continue',
+};
+
+1;
+
diff --git a/locale/ua/rc b/locale/ua/rc
new file mode 100755
index 00000000..6b8c6170
--- /dev/null
+++ b/locale/ua/rc
@@ -0,0 +1,69 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'Account' => 'òÁÈÕÎÏË',
+ 'Accounting Menu' => 'íÅÎÀ ïÂ̦ËÕ',
+ 'Apr' => 'ËצÔÎÑ',
+ 'April' => 'ëצÔÅÎØ',
+ 'Aug' => 'ÓÅÒÐÎÑ',
+ 'August' => 'óÅÒÐÅÎØ',
+ 'Balance' => 'âÁÌÁÎÓ',
+ 'Continue' => 'ðÒÏÄÏ×ÖÉÔÉ',
+ 'Credit' => 'ëÒÅÄÉÔ',
+ 'Current' => 'ðÏÔÏÞÎÉÊ',
+ 'Date' => 'äÁÔÁ',
+ 'Debit' => 'äÅÂÉÔ',
+ 'Dec' => 'ÇÒÕÄÎÑ',
+ 'December' => 'çÒÕÄÅÎØ',
+ 'Description' => 'ïÐÉÓ',
+ 'Difference' => 'ò¦ÚÎÉÃÑ',
+ 'Done' => 'úÒÏÂÌÅÎÏ',
+ 'Feb' => 'ÌÀÔÏÇÏ',
+ 'February' => 'ìÀÔÉÊ',
+ 'From' => '÷¦Ä/ú',
+ 'Jan' => 'Ó¦ÞÎÑ',
+ 'January' => 'Ó¦ÞÅÎØ',
+ 'Jul' => 'ÌÉÐÎÑ',
+ 'July' => 'ìÉÐÅÎØ',
+ 'Jun' => 'ÞÅÒ×ÎÑ',
+ 'June' => 'þÅÒ×ÅÎØ',
+ 'Mar' => 'ÂÅÒÅÚÎÑ',
+ 'March' => 'âÅÒÅÚÅÎØ',
+ 'May' => 'ÔÒÁ×ÎÑ',
+ 'May ' => 'ôÒÁ×ÅÎØ',
+ 'Nov' => 'ÌÉÓÔÏÐÁÄÁ',
+ 'November' => 'ìÉÓÔÏÐÁÄ',
+ 'Oct' => 'ÖÏ×ÔÎÑ',
+ 'October' => 'öÏ×ÔÅÎØ',
+ 'Out of balance!' => 'îÅ ÚÂÁÌÁÎÓÏ×ÁÎÏ!',
+ 'Reconciliation' => 'õÚÇÏÄÖÅÎÎÑ',
+ 'Select all' => '÷ÉÂÒÁÔÉ ×ÓÅ',
+ 'Sep' => '×ÅÒÅÓÎÑ',
+ 'September' => '÷ÅÒÅÓÅÎØ',
+ 'Source' => 'äÖÅÒÅÌÏ',
+ 'Statement Balance' => 'âÁÌÁÎÓÏ×ÉÊ úצÔ',
+ 'To' => 'äÏ',
+ 'Update' => 'ðÏÎÏ×ÉÔÉ',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'ðÒÏÄÏ×ÖÉÔÉ' => 'continue',
+ 'úÒÏÂÌÅÎÏ' => 'done',
+ '÷ÉÂÒÁÔÉ_×ÓÅ' => 'select_all',
+ 'ðÏÎÏ×ÉÔÉ' => 'update',
+};
+
+1;
+
diff --git a/locale/ua/rp b/locale/ua/rp
new file mode 100755
index 00000000..e90b1e16
--- /dev/null
+++ b/locale/ua/rp
@@ -0,0 +1,159 @@
+$self{charset} = 'ISO-8859-5';
+
+$self{texts} = {
+ 'AP Aging' => 'AP Aging (×ÉÔÒÁÔÉ)',
+ 'AR Aging' => 'AR Aging (ÄÏÈÏÄÉ)',
+ 'Account' => 'òÁÈÕÎÏË',
+ 'Account Number' => 'îÏÍÅÒ òÁÈÕÎËÕ',
+ 'Accounting Menu' => 'íÅÎÀ ïÂ̦ËÕ',
+ 'Accounts' => 'òÁÈÕÎËÉ',
+ 'Address' => 'áÄÒÅÓÁ',
+ 'Amount' => 'óÕÍÁ',
+ 'Apr' => 'ËצÔÎÑ',
+ 'April' => 'ëצÔÅÎØ',
+ 'Attachment' => 'äÏÄÁÔÏË',
+ 'Aug' => 'ÓÅÒÐÎÑ',
+ 'August' => 'óÅÒÐÅÎØ',
+ 'Balance' => 'âÁÌÁÎÓ',
+ 'Balance Sheet' => 'âÁÌÁÎÓ',
+ 'Bcc' => 'ðÒÉ×ÁÔÎÁ ËÏÐ¦Ñ ÄÏ',
+ 'Cash' => 'çÏÔ¦×ËÁ',
+ 'Cc' => 'ëÏÐ¦Ñ ÄÏ',
+ 'Compare to' => 'ðÏÒ¦×ÎÑÔÉ Ú',
+ 'Continue' => 'ðÒÏÄÏ×ÖÉÔÉ',
+ 'Copies' => 'ëÏЦÊ',
+ 'Credit' => 'ëÒÅÄÉÔ',
+ 'Curr' => '÷ÁÌÀÔÁ',
+ 'Current' => 'ðÏÔÏÞÎÉÊ',
+ 'Customer' => 'ë̦¤ÎÔ',
+ 'Customer not on file!' => 'ë̦¤ÎÔÁ ÎÅÍÁ × ÓÐÉÓËÕ!',
+ 'Date' => 'äÁÔÁ',
+ 'Debit' => 'äÅÂÉÔ',
+ 'Dec' => 'ÇÒÕÄÎÑ',
+ 'December' => 'çÒÕÄÅÎØ',
+ 'Decimalplaces' => 'äÅÓÑÔÉÞΦ ͦÓÃÑ',
+ 'Description' => 'ïÐÉÓ',
+ 'Due Date' => 'úÁÐÌÁÔÉÔÉ ÄÏ',
+ 'E-mail' => 'åÌ. ÐÏÛÔÁ',
+ 'E-mail Statement to' => 'ðÏÓÌÁÔÉ ÐÏ ÅÌ. ÐÏÛÔ¦ ÄÏ',
+ 'E-mail address missing!' => 'îÅ ×ËÁÚÁÎÁ ÁÄÒÅÓÁ ÅÌ. ÐÏÛÔÉ!',
+ 'Feb' => 'ÌÀÔÏÇÏ',
+ 'February' => 'ìÀÔÉÊ',
+ 'From' => '÷¦Ä/ú',
+ 'GIFI' => 'GIFI',
+ 'Heading' => 'òÏÚĦÌ',
+ 'ID' => '¶ÄÅÎÔÉƦËÁæÊÎÉÊ ÎÏÍÅÒ',
+ 'In-line' => '÷ËÌÀÞÅÎÏ (In-line)',
+ 'Include in Report' => 'äÏÄÁÔÉ ÄÏ úצÔÕ',
+ 'Income Statement' => 'ú×¦Ô ÐÒÏ ÄÏÈÏÄÉ ¦ ×ÉÄÁÔËÉ',
+ 'Invoice' => 'òÁÈÕÎÏË-ÆÁËÔÕÒÁ',
+ 'Jan' => 'Ó¦ÞÎÑ',
+ 'January' => 'Ó¦ÞÅÎØ',
+ 'Jul' => 'ÌÉÐÎÑ',
+ 'July' => 'ìÉÐÅÎØ',
+ 'Jun' => 'ÞÅÒ×ÎÑ',
+ 'June' => 'þÅÒ×ÅÎØ',
+ 'Language' => 'íÏ×Á',
+ 'Mar' => 'ÂÅÒÅÚÎÑ',
+ 'March' => 'âÅÒÅÚÅÎØ',
+ 'May' => 'ÔÒÁ×ÎÑ',
+ 'May ' => 'ôÒÁ×ÅÎØ',
+ 'Message' => 'ðÏצÄÏÍÌÅÎÎÑ',
+ 'N/A' => 'îÅ óÔÏÓÕ¤ÔØÓÑ',
+ 'Nothing selected!' => 'î¦ÞÏÇÏ ÎÅ ×ÉÂÒÁÎÏ!',
+ 'Nov' => 'ÌÉÓÔÏÐÁÄÁ',
+ 'November' => 'ìÉÓÔÏÐÁÄ',
+ 'Number' => 'îÏÍÅÒ',
+ 'Oct' => 'ÖÏ×ÔÎÑ',
+ 'October' => 'öÏ×ÔÅÎØ',
+ 'Order' => 'úÁÍÏ×ÌÅÎÎÑ',
+ 'PDF' => 'PDF ÆÁÊÌ ÆÏÒÍÁÔ',
+ 'Payments' => 'ðÌÁÔÅÖ¦',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'îÁÄÒÕËÕ×ÁÔÉ',
+ 'Project' => 'ðÒÏÅËÔ',
+ 'Project not on file!' => 'ðÒÏÅËÔÕ ÎÅÍÁ × ÓÐÉÓËÕ!',
+ 'Receipts' => 'ë×ÉÔÁÎæ§',
+ 'Reference' => 'úÓÉÌËÁ',
+ 'Report for' => 'ú×¦Ô ÄÌÑ',
+ 'Screen' => 'åËÒÁÎ',
+ 'Select all' => '÷ÉÂÒÁÔÉ ×ÓÅ',
+ 'Select from one of the names below' => '÷ÉÂÅÒ¦ÔØ ÏÄÎÕ ¦Ú ÎÁÓÔÕÐÎÉÈ ÎÁÚ×',
+ 'Select from one of the projects below' => '÷ÉÂÅÒ¦ÔØ ÏÄÉÎ ¦Ú ÎÁÓÔÕÐÎÉÈ ÐÒÏÅËÔ¦×',
+ 'Select postscript or PDF!' => '÷ÉÂÅÒ¦ÔØ postscript ÁÂÏ PDF',
+ 'Sep' => '×ÅÒÅÓÎÑ',
+ 'September' => '÷ÅÒÅÓÅÎØ',
+ 'Source' => 'äÖÅÒÅÌÏ',
+ 'Standard' => 'óÔÁÎÄÁÒÔΦ',
+ 'Statement' => 'úצÔ',
+ 'Statement sent to' => 'ú×¦Ô ÐÏÓÌÁÎÏ ÄÏ',
+ 'Statements sent to printer!' => 'ú×¦Ô ÐÏÓÌÁÎÏ ÄÏ ðÒÉÎÔÅÒÁ!',
+ 'Subject' => 'ôÅÍÁ',
+ 'Subtotal' => 'ð¦ÄÓÕÍÏË ÐÏ ÒÏÚĦÌÕ',
+ 'Tax' => 'ðÏÄÁÔÏË',
+ 'Tax collected' => 'ðÏÄÁÔÏË Ú¦ÂÒÁÎÏ',
+ 'Tax paid' => 'ðÏÄÁÔÏË ÚÁÐÌÁÞÅÎÏ',
+ 'To' => 'äÏ',
+ 'Total' => 'úÁÇÁÌØÎÁ óÕÍÁ',
+ 'Trial Balance' => 'ðÒÏÂÎÉÊ âÁÌÁÎÓ',
+ 'Vendor' => 'ðÏÓÔÁÞÁÌØÎÉË',
+ 'Vendor not on file!' => 'ðÏÔÁÞÁÌØÎÉËÁ ÎÅÍÁ Õ ÓÐÉÓËÕ ',
+ 'as at' => 'ÑË ×',
+ 'for Period' => 'ÚÁ ðÅÒ¦ÏÄ',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'ðÒÏÄÏ×ÖÉÔÉ' => 'continue',
+ 'åÌ._ÐÏÛÔÁ' => 'e_mail',
+ 'îÁÄÒÕËÕ×ÁÔÉ' => 'print',
+ '÷ÉÂÒÁÔÉ_×ÓÅ' => 'select_all',
+};
+
+1;
+
diff --git a/locale/ua_utf/COPYING b/locale/ua_utf/COPYING
new file mode 100755
index 00000000..4a238660
--- /dev/null
+++ b/locale/ua_utf/COPYING
@@ -0,0 +1,23 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting
+# Copyright (c) 2003-2005
+#
+# Ukrainian texts:
+#
+# Author: Ivan Petrouchtchak <iip@telus.net>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/ua_utf/LANGUAGE b/locale/ua_utf/LANGUAGE
new file mode 100755
index 00000000..f5a114ff
--- /dev/null
+++ b/locale/ua_utf/LANGUAGE
@@ -0,0 +1 @@
+Ukrainian (UTF-8)
diff --git a/locale/ua_utf/aa b/locale/ua_utf/aa
new file mode 100755
index 00000000..5de90c6e
--- /dev/null
+++ b/locale/ua_utf/aa
@@ -0,0 +1,161 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Outstanding' => 'ÐеÑплачені рахунки витрат',
+ 'AP Transaction' => 'Проводка витрат',
+ 'AP Transactions' => 'Проводки витрат',
+ 'AR Outstanding' => 'ÐеÑплачені рахунки доходів',
+ 'AR Transaction' => 'Проводка доходів',
+ 'AR Transactions' => 'Проводки доходів',
+ 'Account' => 'Рахунок',
+ 'Accounting Menu' => 'Меню обліку',
+ 'Add AP Transaction' => 'Додати проводку витрат',
+ 'Add AR Transaction' => 'Додати проводку доходів',
+ 'Amount' => 'Сума',
+ 'Amount Due' => 'Заплатити Ñуму',
+ 'Apr' => 'квітнÑ',
+ 'April' => 'Квітень',
+ 'Are you sure you want to delete Transaction' => 'Ви певні, що хочете видалити дану проводку?',
+ 'Aug' => 'ÑерпнÑ',
+ 'August' => 'Серпень',
+ 'Cannot delete transaction!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ проводку!',
+ 'Cannot post payment for a closed period!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ñтавити платіж Ð´Ð»Ñ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ð¾Ð³Ð¾ періоду!',
+ 'Cannot post transaction for a closed period!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ñтавити проводку Ð´Ð»Ñ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ð¾Ð³Ð¾ періоду!',
+ 'Cannot post transaction!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ñтавити проводку!',
+ 'Check' => 'Чек',
+ 'Closed' => 'Закрито',
+ 'Confirm!' => 'Підтвердіть!',
+ 'Continue' => 'Продовжити',
+ 'Credit' => 'Кредит',
+ 'Credit Limit' => 'Ліміт кредиту',
+ 'Curr' => 'Валюта',
+ 'Currency' => 'Валюта',
+ 'Current' => 'Поточний',
+ 'Customer' => 'Клієнт',
+ 'Customer missing!' => 'Ðе вказаний клієнт!',
+ 'Date' => 'Дата',
+ 'Date Paid' => 'Дата оплати',
+ 'Debit' => 'Дебит',
+ 'Dec' => 'груднÑ',
+ 'December' => 'Грудень',
+ 'Delete' => 'Видалити',
+ 'Department' => 'Відділ',
+ 'Description' => 'ОпиÑ',
+ 'Detail' => 'Подробиці',
+ 'Due Date' => 'Заплатити до',
+ 'Due Date missing!' => 'Ðе вказаний термін оплати!',
+ 'Edit AP Transaction' => 'Редагувати проводку витрат',
+ 'Edit AR Transaction' => 'Редагувати проводку доходів',
+ 'Employee' => 'Працівник',
+ 'Exch' => 'КурÑ',
+ 'Exchange Rate' => 'ÐšÑƒÑ€Ñ Ð²Ð°Ð»ÑŽÑ‚Ð¸',
+ 'Exchange rate for payment missing!' => 'Ðе вказаний ÐºÑƒÑ€Ñ Ð²Ð°Ð»ÑŽÑ‚Ð¸ Ð´Ð»Ñ Ð¿Ð»Ð°Ñ‚ÐµÐ¶Ñƒ!',
+ 'Exchange rate missing!' => 'Ðе вказаний ÐºÑƒÑ€Ñ Ð²Ð°Ð»ÑŽÑ‚Ð¸!',
+ 'Feb' => 'лютого',
+ 'February' => 'Лютий',
+ 'From' => 'Від/З',
+ 'ID' => 'Ідентифікаційний номер',
+ 'Include in Report' => 'Додати до звіту',
+ 'Invoice' => 'Рахунок-фактура',
+ 'Invoice Date' => 'Дата виÑтавленнÑ',
+ 'Invoice Date missing!' => 'Ðе вказана дата виÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ñ€Ð°Ñ…ÑƒÐ½ÐºÐ°-фактури',
+ 'Invoice Number' => 'Ðомер рахунка-фактури',
+ 'Jan' => 'ÑічнÑ',
+ 'January' => 'Ñічень',
+ 'Jul' => 'липнÑ',
+ 'July' => 'Липень',
+ 'Jun' => 'червнÑ',
+ 'June' => 'Червень',
+ 'Manager' => 'Менеджер',
+ 'Mar' => 'березнÑ',
+ 'March' => 'Березень',
+ 'May' => 'травнÑ',
+ 'May ' => 'Травень',
+ 'Memo' => 'Ðотатка',
+ 'Month' => 'МіÑÑць',
+ 'No.' => 'No.',
+ 'Notes' => 'Примітки',
+ 'Nov' => 'лиÑтопада',
+ 'November' => 'ЛиÑтопад',
+ 'Oct' => 'жовтнÑ',
+ 'October' => 'Жовтень',
+ 'Open' => 'Відкрито',
+ 'Order' => 'ЗамовленнÑ',
+ 'Order Number' => 'Ðомер замовленнÑ',
+ 'PO Number' => 'Ðомер купівельного замовленнÑ',
+ 'Paid' => 'Заплачено',
+ 'Payment date missing!' => 'Ðе вказано дату Платежу!',
+ 'Payments' => 'Платежі',
+ 'Period' => 'Період',
+ 'Post' => 'ВиÑтавити',
+ 'Post as new' => 'ВиÑтавити Ñк новий',
+ 'Print' => 'Ðадрукувати',
+ 'Print and Post' => 'Ðадрукувати Ñ– виÑтавити',
+ 'Project' => 'Проект',
+ 'Quarter' => 'Квартал',
+ 'Receipt' => 'КвитанціÑ',
+ 'Remaining' => 'ЗалишилоÑÑŒ',
+ 'Sales Invoice.' => 'Рахунок-фактура.',
+ 'Salesperson' => 'Торговець/предÑтавник',
+ 'Schedule' => 'Розклад',
+ 'Sep' => 'вереÑнÑ',
+ 'September' => 'ВереÑень',
+ 'Ship to' => 'ВідіÑлати до',
+ 'Ship via' => 'ВідіÑлати через',
+ 'Shipping Point' => 'Пункт відÑиланнÑ',
+ 'Source' => 'Джерело',
+ 'Subtotal' => 'ПідÑумок по розділу',
+ 'Summary' => 'ЗведеннÑ',
+ 'Tax' => 'Податок',
+ 'Tax Included' => 'Податок включено',
+ 'Till' => 'КаÑа',
+ 'To' => 'До',
+ 'Total' => 'Загальна Сума',
+ 'Transaction' => 'Проводка',
+ 'Transaction deleted!' => 'Проводка видалена',
+ 'Transaction posted!' => 'Проводка здійÑнена',
+ 'Update' => 'Оновити',
+ 'Vendor' => 'ПоÑтачальник',
+ 'Vendor Invoice.' => 'Рахунок-фактура.',
+ 'Vendor missing!' => 'ПоÑтачальник не Ñ–Ñнує',
+ 'Year' => 'Рік',
+ 'Yes' => 'Tak',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'Проводка_витрат' => 'ap_transaction',
+ 'Проводка_доходів' => 'ar_transaction',
+ 'Продовжити' => 'continue',
+ 'Видалити' => 'delete',
+ 'ВиÑтавити' => 'post',
+ 'ВиÑтавити_Ñк_новий' => 'post_as_new',
+ 'Ðадрукувати' => 'print',
+ 'Ðадрукувати_Ñ–_виÑтавити' => 'print_and_post',
+ 'Рахунок_фактура_' => 'sales_invoice_',
+ 'Розклад' => 'schedule',
+ 'ВідіÑлати_до' => 'ship_to',
+ 'Оновити' => 'update',
+ 'Рахунок_фактура_' => 'vendor_invoice_',
+ 'tak' => 'yes',
+};
+
+1;
+
diff --git a/locale/ua_utf/admin b/locale/ua_utf/admin
new file mode 100755
index 00000000..0a9f5ebd
--- /dev/null
+++ b/locale/ua_utf/admin
@@ -0,0 +1,145 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Access Control' => 'Контроль доÑтупу',
+ 'Accounting' => 'Облік',
+ 'Add User' => 'Ðовий кориÑтувач',
+ 'Address' => 'ÐдреÑа',
+ 'Administration' => 'ÐдмініÑтруваннÑ',
+ 'Administrator' => 'ÐдмініÑтратор',
+ 'All Datasets up to date!' => 'Бази Даних не потребують поновленнÑ!',
+ 'Cannot create Lock!' => 'Ðе вдаєтьÑÑ Ñтворити замок!',
+ 'Change Admin Password' => 'Змінити пароль ÐдмініÑтратора',
+ 'Change Password' => 'Змінити пароль',
+ 'Click on login name to edit!' => 'ÐатиÑніть на ім\'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача, щоб редагувати!',
+ 'Company' => 'ПідприємÑтво',
+ 'Confirm' => 'Підтвердити',
+ 'Connect to' => 'ПідключитиÑÑŒ до',
+ 'Continue' => 'Продовжити',
+ 'Create Chart of Accounts' => 'Створити план рахунків',
+ 'Create Dataset' => 'Створити базу даних',
+ 'DBI not installed!' => 'Ðе вÑтановлено драйвер DBI!',
+ 'Database' => 'База даних',
+ 'Database Administration' => 'ÐдмініÑÑ‚Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ð°Ð·Ð¸ даних',
+ 'Database Driver not checked!' => 'Ðе увімкнено драйвер бази даних!',
+ 'Database User missing!' => 'ВідÑутній кориÑтувач бази даних!',
+ 'Dataset' => 'База даних',
+ 'Dataset missing!' => 'ВідÑÑƒÑ‚Ð½Ñ Ð±Ð°Ð·Ð° даних!',
+ 'Dataset updated!' => 'Базу даних оновлено!',
+ 'Date Format' => 'Формат дати',
+ 'Delete' => 'Видалити',
+ 'Delete Dataset' => 'Видалити Базу Даних',
+ 'Directory' => 'Каталог',
+ 'Driver' => 'Драйвер',
+ 'Dropdown Limit' => 'ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð»Ð¸Ñтового меню',
+ 'E-mail' => 'Ел. пошта',
+ 'Edit User' => 'Редагувати кориÑтувача',
+ 'Existing Datasets' => 'ІÑнуючі бази даних',
+ 'Fax' => 'Фах',
+ 'Host' => 'Машина/Host',
+ 'Hostname missing!' => 'Ðе вказана назва машини!',
+ 'Language' => 'Мова',
+ 'Lock System' => 'Замкнути ÑиÑтему',
+ 'Lockfile created!' => 'Замковий файл Ñтворено!',
+ 'Lockfile removed!' => 'Замковий файл вилучено!',
+ 'Login' => 'Вхід',
+ 'Login name missing!' => 'ВідÑутнє ім\'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача!',
+ 'Logout' => 'Вихід',
+ 'Manager' => 'Менеджер',
+ 'Menu Width' => 'Ширина меню',
+ 'Multibyte Encoding' => 'Мультибитне кодуваннÑ',
+ 'Name' => 'Ðазва',
+ 'New Templates' => 'Ðові шаблони',
+ 'No Database Drivers available!' => 'ÐедоÑтупний драйвер Бази Даних!',
+ 'No Dataset selected!' => 'Ðе позначено вибрану Базу Даних!',
+ 'Nothing to delete!' => 'Ðема що видалити!',
+ 'Number Format' => 'Формат ЧиÑла',
+ 'Oracle Database Administration' => 'ÐдмініÑÑ‚Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ð°Ð·Ð¸ даних Oracle',
+ 'Password' => 'Пароль',
+ 'Password changed!' => 'Пароль змінено!',
+ 'Passwords do not match!' => 'Паролі не Ñпівпадають!',
+ 'Pg Database Administration' => 'ÐдмініÑÑ‚Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ð°Ð·Ð¸ даних Pg',
+ 'PgPP Database Administration' => 'ÐдмініÑÑ‚Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ð°Ð·Ð¸ даних PgPP',
+ 'Phone' => 'Тел.',
+ 'Port' => 'Порт',
+ 'Port missing!' => 'Порт не вказано!',
+ 'Printer' => 'Принтер',
+ 'Save' => 'Зберегти',
+ 'Session Timeout' => 'Таймаут ÑеанÑу',
+ 'Session expired!' => 'Ð¡ÐµÐ°Ð½Ñ Ð·Ð°Ñтарів!',
+ 'Setup Templates' => 'Ðалаштувати шаблони',
+ 'Signature' => 'ПідпиÑ',
+ 'Stylesheet' => 'ОформленннÑ',
+ 'Supervisor' => 'Ðачальник',
+ 'Templates' => 'Шаблони',
+ 'The following Datasets are not in use and can be deleted' => 'ÐаÑтупні бази даних не викориÑтовуютьÑÑ Ñ– можуть бути видалені',
+ 'The following Datasets need to be updated' => 'ÐаÑтупні бази даних необхідно оновити',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ° Ñ–Ñнуючих джерел. Поки що нічого не буде Ñтворено або видалено!',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Щоб додати кориÑтувача до групи, змініть ім\'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача та ім\'Ñ Ð²Ñ…Ð¾Ð´Ñƒ й збережіть Ñ—Ñ…. Ðовий кориÑтувач із однаковими параметрами буде збережено під новим іменем входу.',
+ 'Unlock System' => 'Відімкнути ÑиÑтему',
+ 'Update Dataset' => 'Оновити базу даних',
+ 'Use Templates' => 'ВикориÑтовувати шаблони',
+ 'User' => 'КориÑтувач',
+ 'User deleted!' => 'КориÑтувач Видалений',
+ 'User saved!' => 'КориÑтувач збережений',
+ 'Version' => 'ВерÑÑ–Ñ',
+ 'You are logged out' => 'Ви вийшли з ÑиÑтеми',
+ 'does not exist' => 'не Ñ–Ñнує',
+ 'is already a member!' => 'вже є членом!',
+ 'localhost' => 'localhost',
+ 'locked!' => 'замкнено!',
+ 'successfully created!' => 'уÑпішно Ñтворено',
+ 'successfully deleted!' => 'уÑпішно видалено',
+ 'website' => 'веб-майданчик',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'Ðовий_кориÑтувач' => 'add_user',
+ 'Змінити_пароль_ÐдмініÑтратора' => 'change_admin_password',
+ 'Змінити_пароль' => 'change_password',
+ 'Продовжити' => 'continue',
+ 'Створити_базу_даних' => 'create_dataset',
+ 'Видалити' => 'delete',
+ 'Видалити_Базу_Даних' => 'delete_dataset',
+ 'Замкнути_ÑиÑтему' => 'lock_system',
+ 'Вхід' => 'login',
+ 'Вихід' => 'logout',
+ 'ÐдмініÑтруваннÑ_бази_даних_oracle' => 'oracle_database_administration',
+ 'ÐдмініÑтруваннÑ_бази_даних_pg' => 'pg_database_administration',
+ 'ÐдмініÑтруваннÑ_бази_даних_pgpp' => 'pgpp_database_administration',
+ 'Зберегти' => 'save',
+ 'Відімкнути_ÑиÑтему' => 'unlock_system',
+ 'Оновити_базу_даних' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/ua_utf/all b/locale/ua_utf/all
new file mode 100755
index 00000000..5a4aef56
--- /dev/null
+++ b/locale/ua_utf/all
@@ -0,0 +1,767 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+$self{charset} = 'UTF-8';
+
+
+$self{texts} = {
+ 'A' => 'Ð',
+ 'AP' => 'Витрати',
+ 'AP Aging' => 'Ð¡Ñ‚Ð°Ñ€Ñ–Ð½Ð½Ñ Ñ€Ð°Ñ…ÑƒÐ½ÐºÑ–Ð² витрат',
+ 'AP Outstanding' => 'ÐеÑплачені рахунки витрат',
+ 'AP Transaction' => 'Проводка витрат',
+ 'AP Transactions' => 'Проводки витрат',
+ 'AR' => 'Доходи',
+ 'AR Aging' => 'Ð¡Ñ‚Ð°Ñ€Ñ–Ð½Ð½Ñ Ñ€Ð°Ñ…ÑƒÐ½ÐºÑ–Ð² доходів',
+ 'AR Outstanding' => 'ÐеÑплачені рахунки доходів',
+ 'AR Transaction' => 'Проводка доходів',
+ 'AR Transactions' => 'Проводки доходів',
+ 'About' => 'Про програму',
+ 'Above' => 'Вище',
+ 'Access Control' => 'Контроль доÑтупу',
+ 'Account' => 'Рахунок',
+ 'Account Number' => 'Ðомер рахунку',
+ 'Account Number missing!' => 'Ðе вказаний номер рахунку!',
+ 'Account Type' => 'Вид рахунку',
+ 'Account Type missing!' => 'Ðе вказаний вид рахунку!',
+ 'Account deleted!' => 'Рахунок видалений',
+ 'Account does not exist!' => 'Рахунок не Ñ–Ñнує',
+ 'Account saved!' => 'Рахунок збережено',
+ 'Accounting' => 'Облік',
+ 'Accounting Menu' => 'Меню обліку',
+ 'Accounts' => 'Рахунки',
+ 'Activate Audit trail' => 'Ðктивувати Ñліди Ð´Ð»Ñ Ð°ÑƒÐ´Ð¸Ñ‚Ñƒ',
+ 'Activate Audit trails' => 'Ðктивувати Ñліди Ð´Ð»Ñ Ð°ÑƒÐ´Ð¸Ñ‚Ñƒ',
+ 'Active' => 'Ðктивний',
+ 'Add' => 'Додати',
+ 'Add AP Transaction' => 'Додати проводку витрат',
+ 'Add AR Transaction' => 'Додати проводку доходів',
+ 'Add Account' => 'Додати рахунок',
+ 'Add Assembly' => 'Додати комплект',
+ 'Add Business' => 'Додати бізнеÑ',
+ 'Add Cash Transfer Transaction' => 'Додати проводку Ð¿ÐµÑ€ÐµÐ²ÐµÐ´ÐµÐ½Ð½Ñ Ð³Ð¾Ñ‚Ñ–Ð²ÐºÐ¸',
+ 'Add Customer' => 'Ðовий клієнт',
+ 'Add Deduction' => 'Додати відрахуваннÑ',
+ 'Add Department' => 'Додати відділ',
+ 'Add Employee' => 'Додати працівника',
+ 'Add Exchange Rate' => 'Додати курÑ',
+ 'Add GIFI' => 'Ðовий GIFI',
+ 'Add General Ledger Transaction' => 'Ðова проводка',
+ 'Add Group' => 'Додати групу',
+ 'Add Labor/Overhead' => 'Додати роботу/додаткові витрати',
+ 'Add Language' => 'Додати мову',
+ 'Add Part' => 'Ðовий Товар',
+ 'Add Pricegroup' => 'Додати цінову групу',
+ 'Add Project' => 'Ðовий Проект',
+ 'Add Purchase Order' => 'Ðове Ð·Ð°Ð¼Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð½Ð° купівлю',
+ 'Add Quotation' => 'КотируваннÑ',
+ 'Add Request for Quotation' => 'Додати запит на котируваннÑ',
+ 'Add SIC' => 'Додати SIC',
+ 'Add Sales Invoice' => 'Ðовий Рахуно-фактура',
+ 'Add Sales Order' => 'Ðове Ð·Ð°Ð¼Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð½Ð° продаж',
+ 'Add Service' => 'Ðова поÑлуга',
+ 'Add Transaction' => 'Ðова проводка',
+ 'Add User' => 'Ðовий кориÑтувач',
+ 'Add Vendor' => 'Ðовий поÑтачальник',
+ 'Add Vendor Invoice' => 'Ðовий купівельний рахунок-фактура',
+ 'Add Warehouse' => 'Додати Ñклад',
+ 'Address' => 'ÐдреÑа',
+ 'Administration' => 'ÐдмініÑтруваннÑ',
+ 'Administrator' => 'ÐдмініÑтратор',
+ 'After Deduction' => 'ПіÑÐ»Ñ Ð²Ñ–Ð´Ñ€Ð°Ñ…ÑƒÐ²Ð°Ð½Ð½Ñ',
+ 'All' => 'Ð’ÑÑ–',
+ 'All Accounts' => 'Ð’ÑÑ– рахунки',
+ 'All Datasets up to date!' => 'Бази Даних не потребують поновленнÑ!',
+ 'All Items' => 'Ð’ÑÑ– елементи',
+ 'Amount' => 'Сума',
+ 'Amount Due' => 'Заплатити Ñуму',
+ 'Amount missing!' => 'Сума відÑутнÑ!',
+ 'Apr' => 'квітнÑ',
+ 'April' => 'Квітень',
+ 'Are you sure you want to delete Invoice Number' => 'Ви певні, що хочете видалити даний рахунок?',
+ 'Are you sure you want to delete Order Number' => 'Ви певні, що хочете видалити дане замовленнÑ?',
+ 'Are you sure you want to delete Quotation Number' => 'Ви певні, що хочете видалити номер котируваннÑ?',
+ 'Are you sure you want to delete Transaction' => 'Ви певні, що хочете видалити дану проводку?',
+ 'Assemblies' => 'Комплекти',
+ 'Assemblies restocked!' => 'Комплекти інвентаризовані!',
+ 'Assembly' => 'Комплект',
+ 'Asset' => 'Ðктив',
+ 'Attachment' => 'Додаток',
+ 'Audit Control' => 'Контроль',
+ 'Audit trail disabled' => 'Вимкнено Ñліди Ð´Ð»Ñ Ð°ÑƒÐ´Ð¸Ñ‚Ñƒ',
+ 'Audit trail enabled' => 'Увімкнено Ñліди Ð´Ð»Ñ Ð°ÑƒÐ´Ð¸Ñ‚Ñƒ',
+ 'Audit trail removed up to' => 'Слід Ð´Ð»Ñ Ð°ÑƒÐ´Ð¸Ñ‚Ñƒ вилучено до',
+ 'Audit trails disabled' => 'Вимкнено Ñліди Ð´Ð»Ñ Ð°ÑƒÐ´Ð¸Ñ‚Ñƒ',
+ 'Audit trails enabled' => 'Увімкнено Ñліди Ð´Ð»Ñ Ð°ÑƒÐ´Ð¸Ñ‚Ñƒ',
+ 'Aug' => 'ÑерпнÑ',
+ 'August' => 'Серпень',
+ 'BIC' => 'BIC',
+ 'BOM' => 'BOM',
+ 'Backup' => 'Резервна копіÑ',
+ 'Backup sent to' => 'Резервна ÐºÐ¾Ð¿Ñ–Ñ Ð¿Ð¾Ñлана до',
+ 'Balance' => 'БаланÑ',
+ 'Balance Sheet' => 'БаланÑ-зведеннÑ',
+ 'Based on' => 'ОÑновано на',
+ 'Bcc' => 'Прих.копіÑ',
+ 'Before Deduction' => 'Перед відрахуваннÑм',
+ 'Beginning Balance' => 'Початковий баланÑ',
+ 'Below' => 'Ðижче',
+ 'Billing Address' => 'ÐдреÑа Ð´Ð»Ñ Ð½Ð°Ð´ÑÐ¸Ð»Ð°Ð½Ð½Ñ Ñ€Ð°Ñ…ÑƒÐ½ÐºÑƒ',
+ 'Bin' => 'Корзина',
+ 'Bin List' => 'СпиÑок корзин',
+ 'Bin Lists' => 'СпиÑки корзин',
+ 'Books are open' => 'Книга відкрита',
+ 'Business' => 'БізнеÑ',
+ 'Business Number' => 'БізнеÑ-номер',
+ 'Business deleted!' => 'Ð‘Ñ–Ð·Ð½ÐµÑ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð¾!',
+ 'Business saved!' => 'Ð‘Ñ–Ð·Ð½ÐµÑ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð¾',
+ 'C' => 'С',
+ 'COGS' => 'COGS',
+ 'Cannot create Lock!' => 'Ðе вдаєтьÑÑ Ñтворити замок!',
+ 'Cannot delete account!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ рахунок!',
+ 'Cannot delete customer!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ клієнта!',
+ 'Cannot delete default account!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ типовий рахунок!',
+ 'Cannot delete invoice!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ рахунок-фактуру!',
+ 'Cannot delete item!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ цей елемент!',
+ 'Cannot delete order!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ замовленнÑ!',
+ 'Cannot delete quotation!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ котируваннÑ!',
+ 'Cannot delete transaction!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ проводку!',
+ 'Cannot delete vendor!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ поÑтачальника!',
+ 'Cannot post Payment!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ñтавити платіж!',
+ 'Cannot post Receipt!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ñтавити квитанцію!',
+ 'Cannot post invoice for a closed period!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ñтавити рахунок-фактуру Ð´Ð»Ñ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ð¾Ð³Ð¾ періоду!',
+ 'Cannot post invoice!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ñтавити рахунок-фактуру!',
+ 'Cannot post payment for a closed period!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ñтавити платіж Ð´Ð»Ñ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ð¾Ð³Ð¾ періоду!',
+ 'Cannot post transaction for a closed period!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ñтавити проводку Ð´Ð»Ñ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ð¾Ð³Ð¾ періоду!',
+ 'Cannot post transaction!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ñтавити проводку!',
+ 'Cannot remove files!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ файли!',
+ 'Cannot save account!' => 'Ðе вдаєтьÑÑ Ð·Ð±ÐµÑ€ÐµÐ³Ñ‚Ð¸ рахунок!',
+ 'Cannot save defaults!' => 'Ðе вдаєтьÑÑ Ð·Ð±ÐµÑ€ÐµÐ³Ñ‚Ð¸ типові значеннÑ!',
+ 'Cannot save order!' => 'Ðе вдаєтьÑÑ Ð·Ð±ÐµÑ€ÐµÐ³Ñ‚Ð¸ замовленнÑ!',
+ 'Cannot save preferences!' => 'Ðе вдаєтьÑÑ Ð·Ð±ÐµÑ€ÐµÐ³Ñ‚Ð¸ вподобаннÑ!',
+ 'Cannot save quotation!' => 'Ðе вдаєтьÑÑ Ð·Ð±ÐµÑ€ÐµÐ³Ñ‚Ð¸ котируваннÑ!',
+ 'Cannot set multiple options for' => 'Ðе вдаєтьÑÑ Ð½Ð°Ñтавити декілька параметрів длÑ',
+ 'Cannot stock assemblies!' => 'Ðе вдаєтьÑÑ Ñ–Ð½Ð²ÐµÐ½Ñ‚Ð°Ñ€Ð¸Ð·ÑƒÐ²Ð°Ñ‚Ð¸ комплекти!',
+ 'Cash' => 'Готівка',
+ 'Cc' => 'ÐšÐ¾Ð¿Ñ–Ñ Ð´Ð¾',
+ 'Change' => 'Змінити',
+ 'Change Admin Password' => 'Змінити пароль ÐдмініÑтратора',
+ 'Change Password' => 'Змінити пароль',
+ 'Chart of Accounts' => 'План Рахунків',
+ 'Check' => 'Чек',
+ 'Check Inventory' => 'Перевірити інвентар',
+ 'Checks' => 'Чеки',
+ 'City' => 'МіÑто',
+ 'Cleared' => 'Проведено',
+ 'Click on login name to edit!' => 'ÐатиÑніть на ім\'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача, щоб редагувати!',
+ 'Close Books up to' => 'Закрити книги до',
+ 'Closed' => 'Закрито',
+ 'Code' => 'Код',
+ 'Code missing!' => 'ВідÑутній код',
+ 'Company' => 'ПідприємÑтво',
+ 'Company Name' => 'Ðазва підприємÑтва',
+ 'Compare to' => 'ПорівнÑти з',
+ 'Components' => 'Компоненти',
+ 'Confirm' => 'Підтвердити',
+ 'Confirm!' => 'Підтвердіть!',
+ 'Connect to' => 'ПідключитиÑÑŒ до',
+ 'Contact' => 'Контактна оÑоба',
+ 'Continue' => 'Продовжити',
+ 'Copies' => 'Копій',
+ 'Copy to COA' => 'Скопіювати до плану рахунків',
+ 'Cost' => 'Затрати',
+ 'Cost Center' => 'Центр затрат',
+ 'Could not save pricelist!' => 'Ðе вдалоÑÑŒ зберегти ціновий ÑпиÑок!',
+ 'Could not save!' => 'Ðе вдалоÑÑŒ зберегти!',
+ 'Could not transfer Inventory!' => 'Ðе вдалоÑÑŒ перевеÑти інвентар!',
+ 'Country' => 'Країна',
+ 'Create Chart of Accounts' => 'Створити план рахунків',
+ 'Create Dataset' => 'Створити базу даних',
+ 'Credit' => 'Кредит',
+ 'Credit Limit' => 'Ліміт кредиту',
+ 'Curr' => 'Валюта',
+ 'Currency' => 'Валюта',
+ 'Current' => 'Поточний',
+ 'Current Earnings' => 'Поточний заробіток',
+ 'Customer' => 'Клієнт',
+ 'Customer History' => 'ІÑÑ‚Ð¾Ñ€Ñ–Ñ ÐºÐ»Ñ–Ñ”Ð½Ñ‚Ð°',
+ 'Customer Number' => 'Ðомер клієнта',
+ 'Customer deleted!' => 'Клієнта видалено!',
+ 'Customer missing!' => 'Ðе вказаний клієнт!',
+ 'Customer not on file!' => 'Клієнта нема в ÑпиÑку!',
+ 'Customer saved!' => 'Клієнта збережено!',
+ 'Customers' => 'Клієнти',
+ 'DBI not installed!' => 'Ðе вÑтановлено драйвер DBI!',
+ 'DOB' => 'DOB',
+ 'Database' => 'База даних',
+ 'Database Administration' => 'ÐдмініÑÑ‚Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ð°Ð·Ð¸ даних',
+ 'Database Driver not checked!' => 'Ðе увімкнено драйвер бази даних!',
+ 'Database Host' => 'Вузол бази даних',
+ 'Database User missing!' => 'ВідÑутній кориÑтувач бази даних!',
+ 'Dataset' => 'База даних',
+ 'Dataset is newer than version!' => 'База даних новіша ніж верÑÑ–Ñ!',
+ 'Dataset missing!' => 'ВідÑÑƒÑ‚Ð½Ñ Ð±Ð°Ð·Ð° даних!',
+ 'Dataset updated!' => 'Базу даних оновлено!',
+ 'Date' => 'Дата',
+ 'Date Format' => 'Формат дати',
+ 'Date Paid' => 'Дата оплати',
+ 'Date Received' => 'Дата отриманнÑ',
+ 'Date missing!' => 'Ðе вказана дата!',
+ 'Date received missing!' => 'ВідÑÑƒÑ‚Ð½Ñ Ð´Ð°Ñ‚Ð° отриманнÑ!',
+ 'Day' => 'День',
+ 'Days' => 'Дні(в)',
+ 'Debit' => 'Дебит',
+ 'Dec' => 'груднÑ',
+ 'December' => 'Грудень',
+ 'Decimalplaces' => 'ДеÑÑтичні міÑцÑ',
+ 'Decrease' => 'Зменшити',
+ 'Deduct after' => 'Відрахувати піÑлÑ',
+ 'Deduction deleted!' => 'Ð’Ñ–Ð´Ñ€Ð°Ñ…ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð¾!',
+ 'Deduction saved!' => 'Ð’Ñ–Ð´Ñ€Ð°Ñ…ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð¾!',
+ 'Deductions' => 'ВідрахуваннÑ',
+ 'Default Template' => 'Типовий шаблон',
+ 'Defaults' => 'Типові значеннÑ',
+ 'Defaults saved!' => 'Типові Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð¾!',
+ 'Delete' => 'Видалити',
+ 'Delete Account' => 'Видалити рахунок',
+ 'Delete Dataset' => 'Видалити Базу Даних',
+ 'Delete Schedule' => 'Видалити розклад',
+ 'Deleting a language will also delete the templates for the language' => 'Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð¼Ð¾Ð²Ð¸ призведе також до Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ñ–Ð² Ð´Ð»Ñ Ð¼Ð¾Ð²Ð¸',
+ 'Delivery Date' => 'Дата доÑтавки',
+ 'Department' => 'Відділ',
+ 'Department deleted!' => 'Відділ видалено!',
+ 'Department saved!' => 'Відділ збережено!',
+ 'Departments' => 'Відділи',
+ 'Deposit' => 'Депозит/вклад',
+ 'Description' => 'ОпиÑ',
+ 'Description Translations' => 'Переклади опиÑу',
+ 'Description missing!' => 'ÐžÐ¿Ð¸Ñ Ð²Ñ–Ð´Ñутній!',
+ 'Detail' => 'Подробиці',
+ 'Difference' => 'РізницÑ',
+ 'Directory' => 'Каталог',
+ 'Discount' => 'Знижка',
+ 'Done' => 'Зроблено',
+ 'Drawing' => 'Малюнок',
+ 'Driver' => 'Драйвер',
+ 'Dropdown Limit' => 'ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð»Ð¸Ñтового меню',
+ 'Due Date' => 'Заплатити до',
+ 'Due Date missing!' => 'Ðе вказаний термін оплати!',
+ 'E-mail' => 'Ел. пошта',
+ 'E-mail Statement to' => 'ПоÑлати по ел. пошті до',
+ 'E-mail address missing!' => 'Ðе вказана адреÑа ел. пошти!',
+ 'E-mail message' => 'ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ ÐµÐ». пошти',
+ 'E-mailed' => 'Ел. пошту відіÑлано',
+ 'Edit' => 'Редагувати',
+ 'Edit AP Transaction' => 'Редагувати проводку витрат',
+ 'Edit AR Transaction' => 'Редагувати проводку доходів',
+ 'Edit Account' => 'Редагувати рахунок',
+ 'Edit Assembly' => 'Редагувати комплект',
+ 'Edit Business' => 'Редагувати бізнеÑ',
+ 'Edit Customer' => 'Редагувати Клієнта',
+ 'Edit Deduction' => 'Редагувати відрахуваннÑ',
+ 'Edit Department' => 'Редагувати відділ',
+ 'Edit Employee' => 'Редагувати працівника',
+ 'Edit GIFI' => 'Редагувати GIFI',
+ 'Edit General Ledger Transaction' => 'Редагувати проводку головної книги',
+ 'Edit Group' => 'Редагувати групу',
+ 'Edit Labor/Overhead' => 'Редагувати роботу/додаткові витрати',
+ 'Edit Language' => 'Змінити мову',
+ 'Edit Part' => 'Редагувати товар',
+ 'Edit Preferences for' => 'Редагувати параметри длÑ',
+ 'Edit Pricegroup' => 'Редагувати цінову групу',
+ 'Edit Project' => 'Редагувати проект',
+ 'Edit Purchase Order' => 'Редагувати купівельне замовленнÑ',
+ 'Edit Quotation' => 'Редагувати котируваннÑ',
+ 'Edit Request for Quotation' => 'Редагувати запит на котируваннÑ',
+ 'Edit SIC' => 'Редагувати SIC',
+ 'Edit Sales Invoice' => 'Редагувати рахунок-фактуру',
+ 'Edit Sales Order' => 'Редагувати продажну накладну',
+ 'Edit Service' => 'Редагувати поÑлугу',
+ 'Edit Template' => 'Редагувати шаблон',
+ 'Edit User' => 'Редагувати кориÑтувача',
+ 'Edit Vendor' => 'Редагувати поÑтачальника',
+ 'Edit Vendor Invoice' => 'Редагувати купівельний рахунок-фактуру',
+ 'Edit Warehouse' => 'Редагувати Ñклад',
+ 'Employee' => 'Працівник',
+ 'Employee Name' => 'Ім\'Ñ Ð¿Ñ€Ð°Ñ†Ñ–Ð²Ð½Ð¸ÐºÐ°',
+ 'Employee Number' => 'Ðомер працівника',
+ 'Employee deleted!' => 'Працівника видалено',
+ 'Employee saved!' => 'Працівника збережено',
+ 'Employees' => 'Працівники',
+ 'Employer' => 'Роботодавець',
+ 'Enddate' => 'Дата закінченнÑ',
+ 'Enforce transaction reversal for all dates' => 'ЗаÑтавити зворотну зміну проводок Ð´Ð»Ñ Ð²ÑÑ–Ñ… дат',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Введіть до 3 літер розділених двокрапками (i.e CAD:USD:EUR) Ð´Ð»Ñ Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ñ–Ñцевої Ñ– іноземних грошових одиниць',
+ 'Equity' => 'Капітал',
+ 'Every' => 'Кожні',
+ 'Exch' => 'КурÑ',
+ 'Exchange Rate' => 'ÐšÑƒÑ€Ñ Ð²Ð°Ð»ÑŽÑ‚Ð¸',
+ 'Exchange rate for payment missing!' => 'Ðе вказаний ÐºÑƒÑ€Ñ Ð²Ð°Ð»ÑŽÑ‚Ð¸ Ð´Ð»Ñ Ð¿Ð»Ð°Ñ‚ÐµÐ¶Ñƒ!',
+ 'Exchange rate missing!' => 'Ðе вказаний ÐºÑƒÑ€Ñ Ð²Ð°Ð»ÑŽÑ‚Ð¸!',
+ 'Existing Datasets' => 'ІÑнуючі бази даних',
+ 'Expense' => 'Видатки',
+ 'Expense/Asset' => 'Видаток/Ðктив',
+ 'Extended' => 'Продовжено',
+ 'FX' => 'FX',
+ 'Fax' => 'Фах',
+ 'Feb' => 'лютого',
+ 'February' => 'Лютий',
+ 'For' => 'ДлÑ',
+ 'Foreign Exchange Gain' => 'Прибуток з Обміну Валюти',
+ 'Foreign Exchange Loss' => 'Втрата на Обміні Валюти',
+ 'From' => 'Від/З',
+ 'GIFI' => 'GIFI',
+ 'GIFI deleted!' => 'GIFI видалено!',
+ 'GIFI missing!' => 'Ðе вказано GIFI!',
+ 'GIFI saved!' => 'GIFI збережено!',
+ 'GL' => 'ГК',
+ 'GL Transaction' => 'Проводка ГК',
+ 'General Ledger' => 'Головна книга',
+ 'Generate' => 'Створити',
+ 'Generate Orders' => 'Створити замовленнÑ',
+ 'Generate Purchase Orders' => 'Створити купівельні замовленнÑ',
+ 'Goods & Services' => 'Товари Ñ– ПоÑлуги',
+ 'Group' => 'Група',
+ 'Group Items' => 'Зрупувати елементи',
+ 'Group Translations' => 'Згрупувати переклади',
+ 'Group deleted!' => 'Групу видалено!',
+ 'Group missing!' => 'ВідÑÑƒÑ‚Ð½Ñ Ð³Ñ€ÑƒÐ¿Ð°!',
+ 'Group saved!' => 'Групу збережено!',
+ 'Groups' => 'Групи',
+ 'HR' => 'HR',
+ 'HTML Templates' => 'HTML Шаблони ',
+ 'Heading' => 'Розділ',
+ 'History' => 'ІÑторіÑ',
+ 'Home Phone' => 'Домашній телефон',
+ 'Host' => 'Машина/Host',
+ 'Hostname missing!' => 'Ðе вказана назва машини!',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'Ідентифікаційний номер',
+ 'Image' => 'ЗображеннÑ',
+ 'In-line' => 'Включено (In-line)',
+ 'Include Exchange Rate Difference' => 'Вкючити різницю курÑів',
+ 'Include Payment' => 'Включити плтіж',
+ 'Include in Report' => 'Додати до звіту',
+ 'Include in drop-down menus' => 'Додати до лиÑтових меню',
+ 'Income' => 'Прибуток',
+ 'Income Statement' => 'Звіт про доходи і видатки',
+ 'Incorrect Dataset version!' => 'Ðевірна верÑÑ–Ñ Ð‘Ð°Ð·Ð¸ Даних!',
+ 'Increase' => 'Збільшити',
+ 'Individual Items' => 'Індивідуальні елементи',
+ 'Internal Notes' => 'Внутрішні примітки',
+ 'Inventory' => 'Інвентар',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'КількіÑÑ‚ÑŒ в інвентарі повинна бути нуль, перш ніж можна позначити комплект заÑтарілим!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'КількіÑÑ‚ÑŒ в інвентарі повинна бути нуль, перш ніж можна позначити ций товар заÑтарілим!',
+ 'Inventory saved!' => 'Інвентар збережено!',
+ 'Inventory transferred!' => 'Інвентар перенеÑено!',
+ 'Invoice' => 'Рахунок-фактура',
+ 'Invoice Date' => 'Дата виÑтавленнÑ',
+ 'Invoice Date missing!' => 'Ðе вказана дата виÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ñ€Ð°Ñ…ÑƒÐ½ÐºÐ°-фактури',
+ 'Invoice Number' => 'Ðомер рахунка-фактури',
+ 'Invoice Number missing!' => 'Ðе вказаний номер рахунка-фактури',
+ 'Invoice deleted!' => 'Рахунок-фактура видалений!',
+ 'Invoices' => 'Рахунки-фактури',
+ 'Is this a summary account to record' => 'Чи це підÑумковий рахунок Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу?',
+ 'Item already on pricelist!' => 'Елемент вже Ñ” в ціновому ÑпиÑку!',
+ 'Item deleted!' => 'Річ видалено!',
+ 'Item not on file!' => 'Речі нема в ÑпиÑку!',
+ 'Items' => 'Елементи',
+ 'Jan' => 'ÑічнÑ',
+ 'January' => 'Ñічень',
+ 'Jul' => 'липнÑ',
+ 'July' => 'Липень',
+ 'Jun' => 'червнÑ',
+ 'June' => 'Червень',
+ 'LaTeX Templates' => 'Шаблони LaTeX',
+ 'Labor/Overhead' => 'Робота/додаткові витрати',
+ 'Language' => 'Мова',
+ 'Language deleted!' => 'Мову видалено!',
+ 'Language saved!' => 'Мову збережено!',
+ 'Languages' => 'Мови',
+ 'Languages not defined!' => 'Мови не визначено!',
+ 'Last Numbers & Default Accounts' => 'ОÑтанні номери Ñ– типові рахунки',
+ 'Leave host and port field empty unless you want to make a remote connection.' => 'Якщо ви не бажаєте вÑтановити віддалений звÑзок, не заповнюйте Ð¿Ð¾Ð»Ñ Ð¼Ð°ÑˆÐ¸Ð½Ð¸ Ñ– порту.',
+ 'Liability' => 'ПаÑÑив',
+ 'Licensed to' => 'Ліцензовано длÑ',
+ 'Line Total' => 'Загальна Сума',
+ 'Link' => 'ПоÑиланнÑ',
+ 'Link Accounts' => 'ПовÑзати Рахунки',
+ 'List' => 'СпиÑок',
+ 'List Accounts' => 'СпиÑок Рахунків',
+ 'List Businesses' => 'СпиÑок бізнеÑів',
+ 'List Departments' => 'СпиÑок відділів',
+ 'List GIFI' => 'СпиÑок GIFI',
+ 'List Languages' => 'СпиÑок мов',
+ 'List Price' => 'Ціна',
+ 'List Projects' => 'СпиÑок проектів',
+ 'List SIC' => 'СпиÑок SIC',
+ 'List Transactions' => 'СпиÑок проводок',
+ 'List Warehouses' => 'СпиÑок Ñкладів',
+ 'Lock System' => 'Замкнути ÑиÑтему',
+ 'Lockfile created!' => 'Замковий файл Ñтворено!',
+ 'Lockfile removed!' => 'Замковий файл вилучено!',
+ 'Login' => 'Вхід',
+ 'Login name missing!' => 'ВідÑутнє ім\'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача!',
+ 'Logout' => 'Вихід',
+ 'Make' => 'Виробництво',
+ 'Manager' => 'Менеджер',
+ 'Mar' => 'березнÑ',
+ 'March' => 'Березень',
+ 'Marked entries printed!' => 'Позначені запиÑи надруковано!',
+ 'Markup' => 'Ðацінка',
+ 'Maximum' => 'МакÑимум',
+ 'May' => 'травнÑ',
+ 'May ' => 'Травень',
+ 'Memo' => 'Ðотатка',
+ 'Menu Width' => 'Ширина меню',
+ 'Message' => 'ПовідомленнÑ',
+ 'Method' => 'Метод',
+ 'Microfiche' => 'Мікрофіша',
+ 'Model' => 'Модель',
+ 'Month' => 'МіÑÑць',
+ 'Months' => 'МіÑÑці',
+ 'Multibyte Encoding' => 'Мультибитне кодуваннÑ',
+ 'N/A' => 'Ð/Д',
+ 'Name' => 'Ðазва',
+ 'Name missing!' => 'Ðе вказано назву!',
+ 'New Templates' => 'Ðові шаблони',
+ 'New Window' => 'Ðове вікно',
+ 'Next' => 'Далі',
+ 'Next Date' => 'ÐаÑтупна дата',
+ 'No' => 'ÐÑ–',
+ 'No Database Drivers available!' => 'ÐедоÑтупний драйвер Бази Даних!',
+ 'No Dataset selected!' => 'Ðе позначено вибрану Базу Даних!',
+ 'No email address for' => 'Ðе вказана адреÑа ел. пошти длÑ',
+ 'No.' => 'No.',
+ 'Non-taxable' => 'Ðе оподатковуєтьÑÑ',
+ 'Notes' => 'Примітки',
+ 'Nothing entered!' => 'Ðічого не введено!',
+ 'Nothing selected!' => 'Ðічого не вибрано!',
+ 'Nothing to delete!' => 'Ðема що видалити!',
+ 'Nothing to print!' => 'Ðема що дркувати!',
+ 'Nothing to transfer!' => 'Ðема що перенеÑти',
+ 'Nov' => 'лиÑтопада',
+ 'November' => 'ЛиÑтопад',
+ 'Number' => 'Ðомер',
+ 'Number Format' => 'Формат ЧиÑла',
+ 'Number missing in Row' => 'Ðе вказаний номер у Ñ€Ñдку',
+ 'O' => 'О',
+ 'Obsolete' => 'ЗаÑтаріле',
+ 'Oct' => 'жовтнÑ',
+ 'October' => 'Жовтень',
+ 'On Hand' => 'Ðа руках',
+ 'Open' => 'Відкрито',
+ 'Oracle Database Administration' => 'ÐдмініÑÑ‚Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ð°Ð·Ð¸ даних Oracle',
+ 'Order' => 'ЗамовленнÑ',
+ 'Order Date' => 'Дата замовленнÑ',
+ 'Order Date missing!' => 'Ðе вказано дату замовленнÑ!',
+ 'Order Entry' => 'ВиÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð·Ð°Ð¼Ð¾Ð²Ð»ÐµÐ½Ð½Ñ',
+ 'Order Number' => 'Ðомер замовленнÑ',
+ 'Order Number missing!' => 'ВідÑутній номер замовленнÑ',
+ 'Order deleted!' => 'Ð—Ð°Ð¼Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð¾!',
+ 'Order generation failed!' => 'Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð¼Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð·Ð°Ð·Ð½Ð°Ð»Ð¾ невдачі!',
+ 'Order saved!' => 'Ð—Ð°Ð¼Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð¾!',
+ 'Orphaned' => 'Відокремлений/ОÑиротілий',
+ 'Out of balance transaction!' => 'ÐезбаланÑована проводка',
+ 'Out of balance!' => 'Ðе збаланÑовано!',
+ 'Outstanding' => 'Ðе Ñплачено',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ðомер купівельного замовленнÑ',
+ 'Packing List' => 'Пакувальний ÑпиÑок',
+ 'Packing List Date missing!' => 'Ðе вказано дату пакувального ÑпиÑку',
+ 'Packing List Number missing!' => 'Ðе вказано номер пакувального ÑпиÑку',
+ 'Packing Lists' => 'Пакувальні ÑпиÑки',
+ 'Paid' => 'Заплачено',
+ 'Part' => 'ЧаÑтина',
+ 'Partnumber' => 'Ðомер чаÑтини',
+ 'Parts' => 'товари',
+ 'Password' => 'Пароль',
+ 'Password changed!' => 'Пароль змінено!',
+ 'Password does not match!' => 'Пароль не Ñпівпадає!',
+ 'Passwords do not match!' => 'Паролі не Ñпівпадають!',
+ 'Payables' => 'ЗобовÑÐ·Ð°Ð½Ð½Ñ (платіжні)',
+ 'Payment' => 'Платіж',
+ 'Payment date missing!' => 'Ðе вказано дату Платежу!',
+ 'Payment posted!' => 'Платіж виÑтавлено!',
+ 'Payments' => 'Платежі',
+ 'Payroll Deduction' => 'Ð’Ñ–Ð´Ñ€Ð°Ñ…ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñ–Ð´ зарплати',
+ 'Period' => 'Період',
+ 'Pg Database Administration' => 'ÐдмініÑÑ‚Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ð°Ð·Ð¸ даних Pg',
+ 'PgPP Database Administration' => 'ÐдмініÑÑ‚Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ð°Ð·Ð¸ даних PgPP',
+ 'Phone' => 'Тел.',
+ 'Pick List' => 'СпиÑок комплектуваннÑ',
+ 'Pick Lists' => 'СпиÑки комплектуваннÑ',
+ 'Port' => 'Порт',
+ 'Port missing!' => 'Порт не вказано!',
+ 'Post' => 'ВиÑтавити',
+ 'Post as new' => 'ВиÑтавити Ñк новий',
+ 'Posted!' => 'ВиÑтавлено!',
+ 'Postscript' => 'Postscript',
+ 'Preferences' => 'Параметри',
+ 'Preferences saved!' => 'Параметри збережено!',
+ 'Prepayment' => 'Передплата',
+ 'Price' => 'Ціна',
+ 'Pricegroup' => 'Цінова група',
+ 'Pricegroup deleted!' => 'Цінову групу видалено!',
+ 'Pricegroup missing!' => 'ВідÑÑƒÑ‚Ð½Ñ Ñ†Ñ–Ð½Ð¾Ð²Ð° група!',
+ 'Pricegroup saved!' => 'Цінову групу збережено!',
+ 'Pricegroups' => 'Цінові групи',
+ 'Pricelist' => 'Ціновий ÑпиÑок',
+ 'Print' => 'Ðадрукувати',
+ 'Print and Post' => 'Ðадрукувати Ñ– виÑтавити',
+ 'Print and Save' => 'Ðадрукувати Ñ– зберегти',
+ 'Printed' => 'Ðадруковано',
+ 'Printer' => 'Принтер',
+ 'Printing' => 'ДрукуєтьÑÑ',
+ 'Printing ... ' => 'ДрукуєтьÑÑ ...',
+ 'Process Transactions' => 'Опрацювати проводки',
+ 'Profit Center' => 'Центр прибутку',
+ 'Project' => 'Проект',
+ 'Project Number' => 'Ðомер проекту',
+ 'Project Number missing!' => 'Ðе вказаний номер проекту!',
+ 'Project Transactions' => 'Проводки проекту',
+ 'Project deleted!' => 'Проект видалено!',
+ 'Project not on file!' => 'Проекту нема в ÑпиÑку!',
+ 'Project saved!' => 'Проект збережено!',
+ 'Projects' => 'Проекти',
+ 'Purchase Order' => 'Купівельне замовленнÑ',
+ 'Purchase Order Number' => 'Ðомер купівельного замовленнÑ',
+ 'Purchase Orders' => 'Купівельні замовленнÑ',
+ 'Qty' => 'КількіÑÑ‚ÑŒ',
+ 'Quarter' => 'Квартал',
+ 'Quotation' => 'КотируваннÑ',
+ 'Quotation ' => 'ÐšÐ¾Ñ‚Ð¸Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ ',
+ 'Quotation Date' => 'Дата котируваннÑ',
+ 'Quotation Date missing!' => 'ВідÑÑƒÑ‚Ð½Ñ Ð´Ð°Ñ‚Ð° котируваннÑ!',
+ 'Quotation Number' => 'Ðомер котируваннÑ',
+ 'Quotation Number missing!' => 'ВідÑутній номер котируваннÑ!',
+ 'Quotation deleted!' => 'ÐšÐ¾Ñ‚Ð¸Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð¾!',
+ 'Quotations' => 'КотируваннÑ',
+ 'R' => 'R',
+ 'RFQ' => 'RFQ',
+ 'RFQ ' => 'RFQ ',
+ 'RFQ Number' => 'RFQ номер',
+ 'RFQs' => 'RFQs',
+ 'ROP' => 'ROP',
+ 'Rate' => 'Розцінка',
+ 'Rate missing!' => 'ВідÑÑƒÑ‚Ð½Ñ Ñ€Ð¾Ð·Ñ†Ñ–Ð½ÐºÐ°!',
+ 'Recd' => 'Отримано',
+ 'Receipt' => 'КвитанціÑ',
+ 'Receipt posted!' => 'Квитанцію виÑтавлено!',
+ 'Receipts' => 'Квитанції',
+ 'Receivables' => 'ÐалежноÑÑ‚Ñ– (дебити)',
+ 'Receive' => 'Отримати',
+ 'Receive Merchandise' => 'Отримати товари',
+ 'Reconciliation' => 'УзгодженнÑ',
+ 'Record in' => 'ВнеÑти в',
+ 'Recurring Transaction' => 'Періодична проводка',
+ 'Recurring Transactions' => 'Періодичні проводки',
+ 'Reference' => 'ПоÑиланнÑ',
+ 'Remaining' => 'ЗалишилоÑÑŒ',
+ 'Remove' => 'Вилучити',
+ 'Remove Audit trail up to' => 'Вилучити Ñліди Ð´Ð»Ñ Ð°ÑƒÐ´Ð¸Ñ‚Ñƒ до',
+ 'Remove Audit trails up to' => 'Вилучити Ñліди Ð´Ð»Ñ Ð°ÑƒÐ´Ð¸Ñ‚Ñƒ до',
+ 'Removed spoolfiles!' => 'Спул-файли видалено!',
+ 'Repeat' => 'Повторити',
+ 'Report for' => 'Звіт длÑ',
+ 'Reports' => 'Звіти',
+ 'Req' => 'Запит',
+ 'Request for Quotation' => 'Запит на котируваннÑ',
+ 'Request for Quotations' => 'Запит на котируваннÑ',
+ 'Required by' => 'Термін доÑтавки',
+ 'Retained Earnings' => 'Прибуток (нерозподілений)',
+ 'Role' => 'Роль',
+ 'S' => 'S',
+ 'SIC' => 'SIC',
+ 'SIC deleted!' => 'SIC видалено!',
+ 'SIC saved!' => 'SIC збережено!',
+ 'SKU' => 'SKU',
+ 'SSN' => 'ПерÑональний номер',
+ 'Sale' => 'Продаж',
+ 'Sales' => 'Продаж',
+ 'Sales Invoice' => 'Рахунок-фактура',
+ 'Sales Invoice ' => 'Рахунок-фактура ',
+ 'Sales Invoice.' => 'Рахунок-фактура.',
+ 'Sales Invoices' => 'Рахунки-фактури',
+ 'Sales Order' => 'Ðакладна продажу',
+ 'Sales Order Number' => 'Ðомер накладної продажу',
+ 'Sales Orders' => 'Ðакладні продажу',
+ 'Salesperson' => 'Торговець/предÑтавник',
+ 'Save' => 'Зберегти',
+ 'Save Pricelist' => 'Зберегти ціновий ÑпиÑок',
+ 'Save Schedule' => 'Зберегти розклад',
+ 'Save as new' => 'Зберегти Ñк нове',
+ 'Save to File' => 'Зберегти у Файлі',
+ 'Saving' => 'ЗбереженнÑ',
+ 'Schedule' => 'Розклад',
+ 'Scheduled' => 'В розкладі',
+ 'Screen' => 'Екран',
+ 'Search' => 'Пошук',
+ 'Select' => 'Вибрати',
+ 'Select Vendor' => 'Виберіть поÑтачальника',
+ 'Select all' => 'Вибрати вÑе',
+ 'Select from one of the items below' => 'Виберіть одну із наÑтупних речей',
+ 'Select from one of the names below' => 'Виберіть одну із наÑтупних назв',
+ 'Select from one of the projects below' => 'Виберіть один із наÑтупних проектів',
+ 'Select items' => 'Виберіть елементи',
+ 'Select payment' => 'Виберіть платіж',
+ 'Select postscript or PDF!' => 'Виберіть postscript або PDF',
+ 'Select txt, postscript or PDF!' => 'Виберіть txt, postscript або PDF!',
+ 'Sell' => 'Продати',
+ 'Sell Price' => 'ВідпуÑкна Ціна',
+ 'Send by E-Mail' => 'ВиÑлати по ел. пошті',
+ 'Sending' => 'ВідÑилаєтьÑÑ',
+ 'Sep' => 'вереÑнÑ',
+ 'September' => 'ВереÑень',
+ 'Serial No.' => 'Серійний No.',
+ 'Serial Number' => 'Серійний номер',
+ 'Service' => 'ПоÑлуга',
+ 'Services' => 'ПоÑлуги',
+ 'Session Timeout' => 'Таймаут ÑеанÑу',
+ 'Session expired!' => 'Ð¡ÐµÐ°Ð½Ñ Ð·Ð°Ñтарів!',
+ 'Setup Templates' => 'Ðалаштувати шаблони',
+ 'Ship' => 'ВідіÑлати',
+ 'Ship Merchandise' => 'ВідіÑлати товари',
+ 'Ship to' => 'ВідіÑлати до',
+ 'Ship via' => 'ВідіÑлати через',
+ 'Shipping' => 'ВідіÑиланнÑ',
+ 'Shipping Address' => 'ÐдреÑа Ð´Ð»Ñ Ð²Ñ–Ð´ÑиланнÑ',
+ 'Shipping Date' => 'Дата відÑиланнÑ',
+ 'Shipping Date missing!' => 'ВідÑÑƒÑ‚Ð½Ñ Ð´Ð°Ñ‚Ð° відÑиланнÑ!',
+ 'Shipping Point' => 'Пункт відÑиланнÑ',
+ 'Short' => 'Скорочено',
+ 'Signature' => 'ПідпиÑ',
+ 'Source' => 'Джерело',
+ 'Standard' => 'Стандартні',
+ 'Standard Industrial Codes' => 'Стандартні індуÑтріальні коди',
+ 'Startdate' => 'Дата початку',
+ 'State' => 'Штат',
+ 'State/Province' => 'Штат/облаÑÑ‚ÑŒ',
+ 'Statement' => 'Звіт',
+ 'Statement Balance' => 'БаланÑовий Звіт',
+ 'Statement sent to' => 'Звіт поÑлано до',
+ 'Statements sent to printer!' => 'Звіт поÑлано до принтера!',
+ 'Stock' => 'Інвентар',
+ 'Stock Assembly' => 'Інвентар комплекту',
+ 'Stylesheet' => 'ОформленннÑ',
+ 'Subject' => 'Тема',
+ 'Subtotal' => 'ПідÑумок по розділу',
+ 'Summary' => 'ЗведеннÑ',
+ 'Supervisor' => 'Ðачальник',
+ 'System' => 'СиÑтема',
+ 'System Defaults' => 'Типові ÑиÑтемні значеннÑ',
+ 'Tax' => 'Податок',
+ 'Tax Accounts' => 'Податкові рахунки',
+ 'Tax Included' => 'Податок включено',
+ 'Tax Number' => 'Податковий номер',
+ 'Tax Number / SSN' => 'Податковий номер / перÑональний номер',
+ 'Tax collected' => 'Податок зібрано',
+ 'Tax paid' => 'Податок заплачено',
+ 'Taxable' => 'ОподатковуєтьÑÑ',
+ 'Template saved!' => 'Шаблон збережено',
+ 'Templates' => 'Шаблони',
+ 'Terms' => 'Умови: ',
+ 'Text' => 'ТекÑÑ‚',
+ 'Text Templates' => 'ТекÑтові шаблони',
+ 'The following Datasets are not in use and can be deleted' => 'ÐаÑтупні бази даних не викориÑтовуютьÑÑ Ñ– можуть бути видалені',
+ 'The following Datasets need to be updated' => 'ÐаÑтупні бази даних необхідно оновити',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ° Ñ–Ñнуючих джерел. Поки що нічого не буде Ñтворено або видалено!',
+ 'Till' => 'КаÑа',
+ 'Times' => 'Разів',
+ 'To' => 'До',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Щоб додати кориÑтувача до групи, змініть ім\'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача та ім\'Ñ Ð²Ñ…Ð¾Ð´Ñƒ й збережіть Ñ—Ñ…. Ðовий кориÑтувач із однаковими параметрами буде збережено під новим іменем входу.',
+ 'Top Level' => 'Верхній Рівень',
+ 'Total' => 'Загальна Сума',
+ 'Trade Discount' => 'Торгова знижка',
+ 'Transaction' => 'Проводка',
+ 'Transaction Date missing!' => 'Ðе вказана дата проводки',
+ 'Transaction deleted!' => 'Проводка видалена',
+ 'Transaction posted!' => 'Проводка здійÑнена',
+ 'Transaction reversal enforced for all dates' => 'Зроблена ревеÑивну зміна проводок Ð´Ð»Ñ Ð²ÑÑ–Ñ… дат',
+ 'Transaction reversal enforced up to' => 'Зроблена ревеÑивну зміна проводок аж до',
+ 'Transactions' => 'Проводки',
+ 'Transfer' => 'ПеренеÑеннÑ',
+ 'Transfer Inventory' => 'ПеренеÑти інвентар',
+ 'Transfer to' => 'ПеренеÑти до',
+ 'Translation' => 'Переклад',
+ 'Translation deleted!' => 'Переклад видалено!',
+ 'Translation not on file!' => 'Переклад немає в файлі!',
+ 'Translations' => 'Переклади',
+ 'Translations saved!' => 'Переклади збережено!',
+ 'Trial Balance' => 'Пробний баланÑ',
+ 'Type of Business' => 'Тип бізнеÑу',
+ 'Unit' => 'ОдиницÑ',
+ 'Unit of measure' => 'ÐžÐ´Ð¸Ð½Ð¸Ñ†Ñ Ð²Ð¸Ð¼Ñ–Ñ€Ñƒ',
+ 'Unlock System' => 'Відімкнути ÑиÑтему',
+ 'Update' => 'Оновити',
+ 'Update Dataset' => 'Оновити базу даних',
+ 'Updated' => 'Оновлено',
+ 'Upgrading to Version' => 'ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð¾ верÑÑ–Ñ—',
+ 'Use Templates' => 'ВикориÑтовувати шаблони',
+ 'User' => 'КориÑтувач',
+ 'User deleted!' => 'КориÑтувач Видалений',
+ 'User saved!' => 'КориÑтувач збережений',
+ 'Valid until' => 'ДійÑний до',
+ 'Vendor' => 'ПоÑтачальник',
+ 'Vendor History' => 'ІÑÑ‚Ð¾Ñ€Ñ–Ñ Ð¿Ð¾Ñтачальника',
+ 'Vendor Invoice' => 'Рахунок-фактура',
+ 'Vendor Invoice ' => 'Рахунок-фактура ',
+ 'Vendor Invoice.' => 'Рахунок-фактура.',
+ 'Vendor Invoices' => 'Рахунки-фактури',
+ 'Vendor Number' => 'Ðомер поÑтачальника',
+ 'Vendor deleted!' => 'ПоÑтачальник видалений',
+ 'Vendor missing!' => 'ПоÑтачальник не Ñ–Ñнує',
+ 'Vendor not on file!' => 'Потачальника нема у ÑпиÑку ',
+ 'Vendor saved!' => 'ПоÑтачальника збережено',
+ 'Vendors' => 'ПоÑтачальники',
+ 'Version' => 'ВерÑÑ–Ñ',
+ 'Warehouse' => 'Склад',
+ 'Warehouse deleted!' => 'Склад видалено!',
+ 'Warehouse saved!' => 'Склад збережено!',
+ 'Warehouses' => 'Склади',
+ 'Warning!' => 'ПопередженнÑ!',
+ 'Week' => 'Тиждень',
+ 'Weeks' => 'Тижні',
+ 'Weight' => 'Вага',
+ 'Weight Unit' => 'ÐžÐ´Ð¸Ð½Ð¸Ñ†Ñ Ð²Ð°Ð³Ð¸',
+ 'What type of item is this?' => 'Який це вид/тип елемента',
+ 'Work Order' => 'ÐарÑд',
+ 'Work Orders' => 'ÐарÑди',
+ 'Work Phone' => 'Робочий телефон',
+ 'Year' => 'Рік',
+ 'Yearend' => 'Кінець року',
+ 'Yearend date missing!' => 'ВідÑÑƒÑ‚Ð½Ñ Ð´Ð°Ñ‚Ð° ÐºÑ–Ð½Ñ†Ñ Ñ€Ð¾ÐºÑƒ!',
+ 'Yearend posted!' => 'Кінець року виÑтавлено!',
+ 'Yearend posting failed!' => 'ВиÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð½Ñ ÐºÑ–Ð½Ñ†Ñ Ñ€Ð¾ÐºÑƒ зазнало невдачі!',
+ 'Years' => 'Роки',
+ 'Yes' => 'Tak',
+ 'You are logged out' => 'Ви вийшли з ÑиÑтеми',
+ 'You are posting an existing transaction!' => 'Ви виÑтавлÑєте проводку, Ñка вже Ñ–Ñнує!',
+ 'You are printing and posting an existing transaction!' => 'Ви друкуєте Ñ– зберігаєте проводку, Ñка вже Ñ–Ñнує!',
+ 'You are printing and saving an existing order' => 'Ви друкуєте Ñ– зберігаєте замовленнÑ, Ñке вже Ñ–Ñнує!',
+ 'You are printing and saving an existing quotation' => 'Ви друкуєте Ñ– зберігаєте котировку, Ñка вже Ñ–Ñнує!',
+ 'You are saving an existing order' => 'Ви зберігаєте замовленнÑ, Ñке вже Ñ–Ñнує!',
+ 'You are saving an existing quotation' => 'Ви зберігаєте котировку, Ñка вже Ñ–Ñнує!',
+ 'You did not enter a name!' => 'Ðе введено назву!',
+ 'You must enter a host and port for local and remote connections!' => 'Ðеобхідно ввеÑти вузол Ñ– порт Ð´Ð»Ñ Ð¼Ñ–Ñцевого Ñ– віддаленого з\'єднаннÑ!',
+ 'Zip/Postal Code' => 'Поштовий код',
+ 'as at' => 'Ñк в',
+ 'days' => 'днів',
+ 'does not exist' => 'не Ñ–Ñнує',
+ 'done' => 'завершено',
+ 'ea' => 'шт.',
+ 'failed' => 'зазнало невдачі',
+ 'for' => 'длÑ',
+ 'for Period' => 'за період',
+ 'is already a member!' => 'вже є членом!',
+ 'localhost' => 'localhost',
+ 'locked!' => 'замкнено!',
+ 'posted!' => 'виÑтавлено!',
+ 'sent' => 'нідіÑлано',
+ 'successfully created!' => 'уÑпішно Ñтворено',
+ 'successfully deleted!' => 'уÑпішно видалено',
+ 'time(s)' => 'раз(ів)',
+ 'website' => 'веб-майданчик',
+};
+
+1;
diff --git a/locale/ua_utf/am b/locale/ua_utf/am
new file mode 100755
index 00000000..912781b9
--- /dev/null
+++ b/locale/ua_utf/am
@@ -0,0 +1,300 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP' => 'Витрати',
+ 'AR' => 'Доходи',
+ 'About' => 'Про програму',
+ 'Account' => 'Рахунок',
+ 'Account Number' => 'Ðомер рахунку',
+ 'Account Number missing!' => 'Ðе вказаний номер рахунку!',
+ 'Account Type' => 'Вид рахунку',
+ 'Account Type missing!' => 'Ðе вказаний вид рахунку!',
+ 'Account deleted!' => 'Рахунок видалений',
+ 'Account does not exist!' => 'Рахунок не Ñ–Ñнує',
+ 'Account saved!' => 'Рахунок збережено',
+ 'Accounting Menu' => 'Меню обліку',
+ 'Activate Audit trail' => 'Ðктивувати Ñліди Ð´Ð»Ñ Ð°ÑƒÐ´Ð¸Ñ‚Ñƒ',
+ 'Add Account' => 'Додати рахунок',
+ 'Add Business' => 'Додати бізнеÑ',
+ 'Add Department' => 'Додати відділ',
+ 'Add GIFI' => 'Ðовий GIFI',
+ 'Add Language' => 'Додати мову',
+ 'Add SIC' => 'Додати SIC',
+ 'Add Warehouse' => 'Додати Ñклад',
+ 'Address' => 'ÐдреÑа',
+ 'Amount' => 'Сума',
+ 'Asset' => 'Ðктив',
+ 'Audit Control' => 'Контроль',
+ 'Audit trail disabled' => 'Вимкнено Ñліди Ð´Ð»Ñ Ð°ÑƒÐ´Ð¸Ñ‚Ñƒ',
+ 'Audit trail enabled' => 'Увімкнено Ñліди Ð´Ð»Ñ Ð°ÑƒÐ´Ð¸Ñ‚Ñƒ',
+ 'Audit trail removed up to' => 'Слід Ð´Ð»Ñ Ð°ÑƒÐ´Ð¸Ñ‚Ñƒ вилучено до',
+ 'Backup sent to' => 'Резервна ÐºÐ¾Ð¿Ñ–Ñ Ð¿Ð¾Ñлана до',
+ 'Bin List' => 'СпиÑок корзин',
+ 'Books are open' => 'Книга відкрита',
+ 'Business Number' => 'БізнеÑ-номер',
+ 'Business deleted!' => 'Ð‘Ñ–Ð·Ð½ÐµÑ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð¾!',
+ 'Business saved!' => 'Ð‘Ñ–Ð·Ð½ÐµÑ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð¾',
+ 'COGS' => 'COGS',
+ 'Cannot delete account!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ рахунок!',
+ 'Cannot delete default account!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ типовий рахунок!',
+ 'Cannot save account!' => 'Ðе вдаєтьÑÑ Ð·Ð±ÐµÑ€ÐµÐ³Ñ‚Ð¸ рахунок!',
+ 'Cannot save defaults!' => 'Ðе вдаєтьÑÑ Ð·Ð±ÐµÑ€ÐµÐ³Ñ‚Ð¸ типові значеннÑ!',
+ 'Cannot save preferences!' => 'Ðе вдаєтьÑÑ Ð·Ð±ÐµÑ€ÐµÐ³Ñ‚Ð¸ вподобаннÑ!',
+ 'Cannot set multiple options for' => 'Ðе вдаєтьÑÑ Ð½Ð°Ñтавити декілька параметрів длÑ',
+ 'Cash' => 'Готівка',
+ 'Chart of Accounts' => 'План Рахунків',
+ 'Close Books up to' => 'Закрити книги до',
+ 'Code' => 'Код',
+ 'Code missing!' => 'ВідÑутній код',
+ 'Company' => 'ПідприємÑтво',
+ 'Confirm' => 'Підтвердити',
+ 'Confirm!' => 'Підтвердіть!',
+ 'Continue' => 'Продовжити',
+ 'Copy to COA' => 'Скопіювати до плану рахунків',
+ 'Cost Center' => 'Центр затрат',
+ 'Credit' => 'Кредит',
+ 'Customer Number' => 'Ðомер клієнта',
+ 'Database Host' => 'Вузол бази даних',
+ 'Dataset' => 'База даних',
+ 'Date Format' => 'Формат дати',
+ 'Day' => 'День',
+ 'Days' => 'Дні(в)',
+ 'Debit' => 'Дебит',
+ 'Default Template' => 'Типовий шаблон',
+ 'Defaults saved!' => 'Типові Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð¾!',
+ 'Delete' => 'Видалити',
+ 'Delete Account' => 'Видалити рахунок',
+ 'Deleting a language will also delete the templates for the language' => 'Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð¼Ð¾Ð²Ð¸ призведе також до Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ñ–Ð² Ð´Ð»Ñ Ð¼Ð¾Ð²Ð¸',
+ 'Department deleted!' => 'Відділ видалено!',
+ 'Department saved!' => 'Відділ збережено!',
+ 'Departments' => 'Відділи',
+ 'Description' => 'ОпиÑ',
+ 'Description missing!' => 'ÐžÐ¿Ð¸Ñ Ð²Ñ–Ð´Ñутній!',
+ 'Discount' => 'Знижка',
+ 'Dropdown Limit' => 'ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð»Ð¸Ñтового меню',
+ 'E-mail' => 'Ел. пошта',
+ 'E-mail address missing!' => 'Ðе вказана адреÑа ел. пошти!',
+ 'Edit' => 'Редагувати',
+ 'Edit Account' => 'Редагувати рахунок',
+ 'Edit Business' => 'Редагувати бізнеÑ',
+ 'Edit Department' => 'Редагувати відділ',
+ 'Edit GIFI' => 'Редагувати GIFI',
+ 'Edit Language' => 'Змінити мову',
+ 'Edit Preferences for' => 'Редагувати параметри длÑ',
+ 'Edit SIC' => 'Редагувати SIC',
+ 'Edit Template' => 'Редагувати шаблон',
+ 'Edit Warehouse' => 'Редагувати Ñклад',
+ 'Employee Number' => 'Ðомер працівника',
+ 'Enforce transaction reversal for all dates' => 'ЗаÑтавити зворотну зміну проводок Ð´Ð»Ñ Ð²ÑÑ–Ñ… дат',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Введіть до 3 літер розділених двокрапками (i.e CAD:USD:EUR) Ð´Ð»Ñ Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ñ–Ñцевої Ñ– іноземних грошових одиниць',
+ 'Equity' => 'Капітал',
+ 'Every' => 'Кожні',
+ 'Expense' => 'Видатки',
+ 'Expense/Asset' => 'Видаток/Ðктив',
+ 'Fax' => 'Фах',
+ 'Foreign Exchange Gain' => 'Прибуток з Обміну Валюти',
+ 'Foreign Exchange Loss' => 'Втрата на Обміні Валюти',
+ 'GIFI' => 'GIFI',
+ 'GIFI deleted!' => 'GIFI видалено!',
+ 'GIFI missing!' => 'Ðе вказано GIFI!',
+ 'GIFI saved!' => 'GIFI збережено!',
+ 'GL' => 'ГК',
+ 'GL Transaction' => 'Проводка ГК',
+ 'Heading' => 'Розділ',
+ 'ID' => 'Ідентифікаційний номер',
+ 'Include in drop-down menus' => 'Додати до лиÑтових меню',
+ 'Income' => 'Прибуток',
+ 'Inventory' => 'Інвентар',
+ 'Invoice' => 'Рахунок-фактура',
+ 'Is this a summary account to record' => 'Чи це підÑумковий рахунок Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу?',
+ 'Language' => 'Мова',
+ 'Language deleted!' => 'Мову видалено!',
+ 'Language saved!' => 'Мову збережено!',
+ 'Languages' => 'Мови',
+ 'Last Numbers & Default Accounts' => 'ОÑтанні номери Ñ– типові рахунки',
+ 'Liability' => 'ПаÑÑив',
+ 'Licensed to' => 'Ліцензовано длÑ',
+ 'Link' => 'ПоÑиланнÑ',
+ 'Menu Width' => 'Ширина меню',
+ 'Method' => 'Метод',
+ 'Month' => 'МіÑÑць',
+ 'Months' => 'МіÑÑці',
+ 'Name' => 'Ðазва',
+ 'Next' => 'Далі',
+ 'No' => 'ÐÑ–',
+ 'No email address for' => 'Ðе вказана адреÑа ел. пошти длÑ',
+ 'Number' => 'Ðомер',
+ 'Number Format' => 'Формат ЧиÑла',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Пакувальний ÑпиÑок',
+ 'Password' => 'Пароль',
+ 'Password does not match!' => 'Пароль не Ñпівпадає!',
+ 'Payables' => 'ЗобовÑÐ·Ð°Ð½Ð½Ñ (платіжні)',
+ 'Payment' => 'Платіж',
+ 'Phone' => 'Тел.',
+ 'Pick List' => 'СпиÑок комплектуваннÑ',
+ 'Postscript' => 'Postscript',
+ 'Preferences saved!' => 'Параметри збережено!',
+ 'Print' => 'Ðадрукувати',
+ 'Printer' => 'Принтер',
+ 'Printing' => 'ДрукуєтьÑÑ',
+ 'Process Transactions' => 'Опрацювати проводки',
+ 'Profit Center' => 'Центр прибутку',
+ 'Purchase Order' => 'Купівельне замовленнÑ',
+ 'Purchase Order Number' => 'Ðомер купівельного замовленнÑ',
+ 'Purchase Orders' => 'Купівельні замовленнÑ',
+ 'RFQ Number' => 'RFQ номер',
+ 'Rate' => 'Розцінка',
+ 'Receivables' => 'ÐалежноÑÑ‚Ñ– (дебити)',
+ 'Recurring Transactions' => 'Періодичні проводки',
+ 'Reference' => 'ПоÑиланнÑ',
+ 'Remove Audit trail up to' => 'Вилучити Ñліди Ð´Ð»Ñ Ð°ÑƒÐ´Ð¸Ñ‚Ñƒ до',
+ 'Retained Earnings' => 'Прибуток (нерозподілений)',
+ 'SIC deleted!' => 'SIC видалено!',
+ 'SIC saved!' => 'SIC збережено!',
+ 'Sales Invoice' => 'Рахунок-фактура',
+ 'Sales Order' => 'Ðакладна продажу',
+ 'Sales Order Number' => 'Ðомер накладної продажу',
+ 'Sales Orders' => 'Ðакладні продажу',
+ 'Save' => 'Зберегти',
+ 'Save as new' => 'Зберегти Ñк нове',
+ 'Saving' => 'ЗбереженнÑ',
+ 'Sending' => 'ВідÑилаєтьÑÑ',
+ 'Session Timeout' => 'Таймаут ÑеанÑу',
+ 'Signature' => 'ПідпиÑ',
+ 'Standard Industrial Codes' => 'Стандартні індуÑтріальні коди',
+ 'Stylesheet' => 'ОформленннÑ',
+ 'System Defaults' => 'Типові ÑиÑтемні значеннÑ',
+ 'Tax' => 'Податок',
+ 'Template saved!' => 'Шаблон збережено',
+ 'Times' => 'Разів',
+ 'Transaction' => 'Проводка',
+ 'Transaction reversal enforced for all dates' => 'Зроблена ревеÑивну зміна проводок Ð´Ð»Ñ Ð²ÑÑ–Ñ… дат',
+ 'Transaction reversal enforced up to' => 'Зроблена ревеÑивну зміна проводок аж до',
+ 'Type of Business' => 'Тип бізнеÑу',
+ 'Update' => 'Оновити',
+ 'User' => 'КориÑтувач',
+ 'Vendor Invoice' => 'Рахунок-фактура',
+ 'Vendor Number' => 'Ðомер поÑтачальника',
+ 'Version' => 'ВерÑÑ–Ñ',
+ 'Warehouse deleted!' => 'Склад видалено!',
+ 'Warehouse saved!' => 'Склад збережено!',
+ 'Warehouses' => 'Склади',
+ 'Week' => 'Тиждень',
+ 'Weeks' => 'Тижні',
+ 'Weight Unit' => 'ÐžÐ´Ð¸Ð½Ð¸Ñ†Ñ Ð²Ð°Ð³Ð¸',
+ 'Work Order' => 'ÐарÑд',
+ 'Year' => 'Рік',
+ 'Yearend' => 'Кінець року',
+ 'Yearend date missing!' => 'ВідÑÑƒÑ‚Ð½Ñ Ð´Ð°Ñ‚Ð° ÐºÑ–Ð½Ñ†Ñ Ñ€Ð¾ÐºÑƒ!',
+ 'Yearend posted!' => 'Кінець року виÑтавлено!',
+ 'Yearend posting failed!' => 'ВиÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð½Ñ ÐºÑ–Ð½Ñ†Ñ Ñ€Ð¾ÐºÑƒ зазнало невдачі!',
+ 'Years' => 'Роки',
+ 'Yes' => 'Tak',
+ 'done' => 'завершено',
+ 'failed' => 'зазнало невдачі',
+ 'localhost' => 'localhost',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'Додати_рахунок' => 'add_account',
+ 'Додати_бізнеÑ' => 'add_business',
+ 'Додати_відділ' => 'add_department',
+ 'Додати_мову' => 'add_language',
+ 'Додати_sic' => 'add_sic',
+ 'Додати_Ñклад' => 'add_warehouse',
+ 'Продовжити' => 'continue',
+ 'Скопіювати_до_плану_рахунків' => 'copy_to_coa',
+ 'Видалити' => 'delete',
+ 'Редагувати' => 'edit',
+ 'Редагувати_рахунок' => 'edit_account',
+ 'Опрацювати_проводки' => 'process_transactions',
+ 'Зберегти' => 'save',
+ 'Зберегти_Ñк_нове' => 'save_as_new',
+ 'Оновити' => 'update',
+};
+
+1;
+
diff --git a/locale/ua_utf/ap b/locale/ua_utf/ap
new file mode 100755
index 00000000..118f0014
--- /dev/null
+++ b/locale/ua_utf/ap
@@ -0,0 +1,235 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Outstanding' => 'ÐеÑплачені рахунки витрат',
+ 'AP Transaction' => 'Проводка витрат',
+ 'AP Transactions' => 'Проводки витрат',
+ 'AR Outstanding' => 'ÐеÑплачені рахунки доходів',
+ 'AR Transaction' => 'Проводка доходів',
+ 'AR Transactions' => 'Проводки доходів',
+ 'Account' => 'Рахунок',
+ 'Accounting Menu' => 'Меню обліку',
+ 'Add AP Transaction' => 'Додати проводку витрат',
+ 'Add AR Transaction' => 'Додати проводку доходів',
+ 'Address' => 'ÐдреÑа',
+ 'Amount' => 'Сума',
+ 'Amount Due' => 'Заплатити Ñуму',
+ 'Apr' => 'квітнÑ',
+ 'April' => 'Квітень',
+ 'Are you sure you want to delete Transaction' => 'Ви певні, що хочете видалити дану проводку?',
+ 'Aug' => 'ÑерпнÑ',
+ 'August' => 'Серпень',
+ 'Bcc' => 'Прих.копіÑ',
+ 'Cannot delete transaction!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ проводку!',
+ 'Cannot post payment for a closed period!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ñтавити платіж Ð´Ð»Ñ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ð¾Ð³Ð¾ періоду!',
+ 'Cannot post transaction for a closed period!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ñтавити проводку Ð´Ð»Ñ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ð¾Ð³Ð¾ періоду!',
+ 'Cannot post transaction!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ñтавити проводку!',
+ 'Cc' => 'ÐšÐ¾Ð¿Ñ–Ñ Ð´Ð¾',
+ 'Check' => 'Чек',
+ 'Closed' => 'Закрито',
+ 'Confirm!' => 'Підтвердіть!',
+ 'Continue' => 'Продовжити',
+ 'Credit' => 'Кредит',
+ 'Credit Limit' => 'Ліміт кредиту',
+ 'Curr' => 'Валюта',
+ 'Currency' => 'Валюта',
+ 'Current' => 'Поточний',
+ 'Customer' => 'Клієнт',
+ 'Customer missing!' => 'Ðе вказаний клієнт!',
+ 'Customer not on file!' => 'Клієнта нема в ÑпиÑку!',
+ 'Date' => 'Дата',
+ 'Date Paid' => 'Дата оплати',
+ 'Debit' => 'Дебит',
+ 'Dec' => 'груднÑ',
+ 'December' => 'Грудень',
+ 'Delete' => 'Видалити',
+ 'Delete Schedule' => 'Видалити розклад',
+ 'Department' => 'Відділ',
+ 'Description' => 'ОпиÑ',
+ 'Detail' => 'Подробиці',
+ 'Due Date' => 'Заплатити до',
+ 'Due Date missing!' => 'Ðе вказаний термін оплати!',
+ 'E-mail' => 'Ел. пошта',
+ 'E-mail message' => 'ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ ÐµÐ». пошти',
+ 'Edit AP Transaction' => 'Редагувати проводку витрат',
+ 'Edit AR Transaction' => 'Редагувати проводку доходів',
+ 'Employee' => 'Працівник',
+ 'Every' => 'Кожні',
+ 'Exch' => 'КурÑ',
+ 'Exchange Rate' => 'ÐšÑƒÑ€Ñ Ð²Ð°Ð»ÑŽÑ‚Ð¸',
+ 'Exchange rate for payment missing!' => 'Ðе вказаний ÐºÑƒÑ€Ñ Ð²Ð°Ð»ÑŽÑ‚Ð¸ Ð´Ð»Ñ Ð¿Ð»Ð°Ñ‚ÐµÐ¶Ñƒ!',
+ 'Exchange rate missing!' => 'Ðе вказаний ÐºÑƒÑ€Ñ Ð²Ð°Ð»ÑŽÑ‚Ð¸!',
+ 'Feb' => 'лютого',
+ 'February' => 'Лютий',
+ 'For' => 'ДлÑ',
+ 'From' => 'Від/З',
+ 'ID' => 'Ідентифікаційний номер',
+ 'Include Payment' => 'Включити плтіж',
+ 'Include in Report' => 'Додати до звіту',
+ 'Invoice' => 'Рахунок-фактура',
+ 'Invoice Date' => 'Дата виÑтавленнÑ',
+ 'Invoice Date missing!' => 'Ðе вказана дата виÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ñ€Ð°Ñ…ÑƒÐ½ÐºÐ°-фактури',
+ 'Invoice Number' => 'Ðомер рахунка-фактури',
+ 'Jan' => 'ÑічнÑ',
+ 'January' => 'Ñічень',
+ 'Jul' => 'липнÑ',
+ 'July' => 'Липень',
+ 'Jun' => 'червнÑ',
+ 'June' => 'Червень',
+ 'Manager' => 'Менеджер',
+ 'Mar' => 'березнÑ',
+ 'March' => 'Березень',
+ 'May' => 'травнÑ',
+ 'May ' => 'Травень',
+ 'Memo' => 'Ðотатка',
+ 'Message' => 'ПовідомленнÑ',
+ 'Month' => 'МіÑÑць',
+ 'Next Date' => 'ÐаÑтупна дата',
+ 'No.' => 'No.',
+ 'Notes' => 'Примітки',
+ 'Nothing to print!' => 'Ðема що дркувати!',
+ 'Nov' => 'лиÑтопада',
+ 'November' => 'ЛиÑтопад',
+ 'Number' => 'Ðомер',
+ 'Oct' => 'жовтнÑ',
+ 'October' => 'Жовтень',
+ 'Open' => 'Відкрито',
+ 'Order' => 'ЗамовленнÑ',
+ 'Order Number' => 'Ðомер замовленнÑ',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ðомер купівельного замовленнÑ',
+ 'Paid' => 'Заплачено',
+ 'Payment date missing!' => 'Ðе вказано дату Платежу!',
+ 'Payments' => 'Платежі',
+ 'Period' => 'Період',
+ 'Post' => 'ВиÑтавити',
+ 'Post as new' => 'ВиÑтавити Ñк новий',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Ðадрукувати',
+ 'Print and Post' => 'Ðадрукувати Ñ– виÑтавити',
+ 'Printed' => 'Ðадруковано',
+ 'Project' => 'Проект',
+ 'Project not on file!' => 'Проекту нема в ÑпиÑку!',
+ 'Quarter' => 'Квартал',
+ 'Receipt' => 'КвитанціÑ',
+ 'Recurring Transaction' => 'Періодична проводка',
+ 'Reference' => 'ПоÑиланнÑ',
+ 'Remaining' => 'ЗалишилоÑÑŒ',
+ 'Repeat' => 'Повторити',
+ 'Sales Invoice.' => 'Рахунок-фактура.',
+ 'Salesperson' => 'Торговець/предÑтавник',
+ 'Save Schedule' => 'Зберегти розклад',
+ 'Schedule' => 'Розклад',
+ 'Scheduled' => 'В розкладі',
+ 'Screen' => 'Екран',
+ 'Select from one of the names below' => 'Виберіть одну із наÑтупних назв',
+ 'Select from one of the projects below' => 'Виберіть один із наÑтупних проектів',
+ 'Select payment' => 'Виберіть платіж',
+ 'Select postscript or PDF!' => 'Виберіть postscript або PDF',
+ 'Sep' => 'вереÑнÑ',
+ 'September' => 'ВереÑень',
+ 'Ship to' => 'ВідіÑлати до',
+ 'Ship via' => 'ВідіÑлати через',
+ 'Shipping Point' => 'Пункт відÑиланнÑ',
+ 'Source' => 'Джерело',
+ 'Startdate' => 'Дата початку',
+ 'Subject' => 'Тема',
+ 'Subtotal' => 'ПідÑумок по розділу',
+ 'Summary' => 'ЗведеннÑ',
+ 'Tax' => 'Податок',
+ 'Tax Included' => 'Податок включено',
+ 'Till' => 'КаÑа',
+ 'To' => 'До',
+ 'Total' => 'Загальна Сума',
+ 'Transaction' => 'Проводка',
+ 'Transaction deleted!' => 'Проводка видалена',
+ 'Transaction posted!' => 'Проводка здійÑнена',
+ 'Update' => 'Оновити',
+ 'Vendor' => 'ПоÑтачальник',
+ 'Vendor Invoice.' => 'Рахунок-фактура.',
+ 'Vendor missing!' => 'ПоÑтачальник не Ñ–Ñнує',
+ 'Vendor not on file!' => 'Потачальника нема у ÑпиÑку ',
+ 'Warning!' => 'ПопередженнÑ!',
+ 'Year' => 'Рік',
+ 'Yes' => 'Tak',
+ 'You are posting an existing transaction!' => 'Ви виÑтавлÑєте проводку, Ñка вже Ñ–Ñнує!',
+ 'You are printing and posting an existing transaction!' => 'Ви друкуєте Ñ– зберігаєте проводку, Ñка вже Ñ–Ñнує!',
+ 'You are printing and saving an existing order' => 'Ви друкуєте Ñ– зберігаєте замовленнÑ, Ñке вже Ñ–Ñнує!',
+ 'You are printing and saving an existing quotation' => 'Ви друкуєте Ñ– зберігаєте котировку, Ñка вже Ñ–Ñнує!',
+ 'You are saving an existing order' => 'Ви зберігаєте замовленнÑ, Ñке вже Ñ–Ñнує!',
+ 'You are saving an existing quotation' => 'Ви зберігаєте котировку, Ñка вже Ñ–Ñнує!',
+ 'for' => 'длÑ',
+ 'sent' => 'нідіÑлано',
+ 'time(s)' => 'раз(ів)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'Проводка_витрат' => 'ap_transaction',
+ 'Проводка_доходів' => 'ar_transaction',
+ 'Продовжити' => 'continue',
+ 'Видалити' => 'delete',
+ 'Видалити_розклад' => 'delete_schedule',
+ 'ВиÑтавити' => 'post',
+ 'ВиÑтавити_Ñк_новий' => 'post_as_new',
+ 'Ðадрукувати' => 'print',
+ 'Ðадрукувати_Ñ–_виÑтавити' => 'print_and_post',
+ 'Рахунок_фактура_' => 'sales_invoice_',
+ 'Зберегти_розклад' => 'save_schedule',
+ 'Розклад' => 'schedule',
+ 'ВідіÑлати_до' => 'ship_to',
+ 'Оновити' => 'update',
+ 'Рахунок_фактура_' => 'vendor_invoice_',
+ 'tak' => 'yes',
+};
+
+1;
+
diff --git a/locale/ua_utf/ar b/locale/ua_utf/ar
new file mode 100755
index 00000000..118f0014
--- /dev/null
+++ b/locale/ua_utf/ar
@@ -0,0 +1,235 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Outstanding' => 'ÐеÑплачені рахунки витрат',
+ 'AP Transaction' => 'Проводка витрат',
+ 'AP Transactions' => 'Проводки витрат',
+ 'AR Outstanding' => 'ÐеÑплачені рахунки доходів',
+ 'AR Transaction' => 'Проводка доходів',
+ 'AR Transactions' => 'Проводки доходів',
+ 'Account' => 'Рахунок',
+ 'Accounting Menu' => 'Меню обліку',
+ 'Add AP Transaction' => 'Додати проводку витрат',
+ 'Add AR Transaction' => 'Додати проводку доходів',
+ 'Address' => 'ÐдреÑа',
+ 'Amount' => 'Сума',
+ 'Amount Due' => 'Заплатити Ñуму',
+ 'Apr' => 'квітнÑ',
+ 'April' => 'Квітень',
+ 'Are you sure you want to delete Transaction' => 'Ви певні, що хочете видалити дану проводку?',
+ 'Aug' => 'ÑерпнÑ',
+ 'August' => 'Серпень',
+ 'Bcc' => 'Прих.копіÑ',
+ 'Cannot delete transaction!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ проводку!',
+ 'Cannot post payment for a closed period!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ñтавити платіж Ð´Ð»Ñ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ð¾Ð³Ð¾ періоду!',
+ 'Cannot post transaction for a closed period!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ñтавити проводку Ð´Ð»Ñ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ð¾Ð³Ð¾ періоду!',
+ 'Cannot post transaction!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ñтавити проводку!',
+ 'Cc' => 'ÐšÐ¾Ð¿Ñ–Ñ Ð´Ð¾',
+ 'Check' => 'Чек',
+ 'Closed' => 'Закрито',
+ 'Confirm!' => 'Підтвердіть!',
+ 'Continue' => 'Продовжити',
+ 'Credit' => 'Кредит',
+ 'Credit Limit' => 'Ліміт кредиту',
+ 'Curr' => 'Валюта',
+ 'Currency' => 'Валюта',
+ 'Current' => 'Поточний',
+ 'Customer' => 'Клієнт',
+ 'Customer missing!' => 'Ðе вказаний клієнт!',
+ 'Customer not on file!' => 'Клієнта нема в ÑпиÑку!',
+ 'Date' => 'Дата',
+ 'Date Paid' => 'Дата оплати',
+ 'Debit' => 'Дебит',
+ 'Dec' => 'груднÑ',
+ 'December' => 'Грудень',
+ 'Delete' => 'Видалити',
+ 'Delete Schedule' => 'Видалити розклад',
+ 'Department' => 'Відділ',
+ 'Description' => 'ОпиÑ',
+ 'Detail' => 'Подробиці',
+ 'Due Date' => 'Заплатити до',
+ 'Due Date missing!' => 'Ðе вказаний термін оплати!',
+ 'E-mail' => 'Ел. пошта',
+ 'E-mail message' => 'ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ ÐµÐ». пошти',
+ 'Edit AP Transaction' => 'Редагувати проводку витрат',
+ 'Edit AR Transaction' => 'Редагувати проводку доходів',
+ 'Employee' => 'Працівник',
+ 'Every' => 'Кожні',
+ 'Exch' => 'КурÑ',
+ 'Exchange Rate' => 'ÐšÑƒÑ€Ñ Ð²Ð°Ð»ÑŽÑ‚Ð¸',
+ 'Exchange rate for payment missing!' => 'Ðе вказаний ÐºÑƒÑ€Ñ Ð²Ð°Ð»ÑŽÑ‚Ð¸ Ð´Ð»Ñ Ð¿Ð»Ð°Ñ‚ÐµÐ¶Ñƒ!',
+ 'Exchange rate missing!' => 'Ðе вказаний ÐºÑƒÑ€Ñ Ð²Ð°Ð»ÑŽÑ‚Ð¸!',
+ 'Feb' => 'лютого',
+ 'February' => 'Лютий',
+ 'For' => 'ДлÑ',
+ 'From' => 'Від/З',
+ 'ID' => 'Ідентифікаційний номер',
+ 'Include Payment' => 'Включити плтіж',
+ 'Include in Report' => 'Додати до звіту',
+ 'Invoice' => 'Рахунок-фактура',
+ 'Invoice Date' => 'Дата виÑтавленнÑ',
+ 'Invoice Date missing!' => 'Ðе вказана дата виÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ñ€Ð°Ñ…ÑƒÐ½ÐºÐ°-фактури',
+ 'Invoice Number' => 'Ðомер рахунка-фактури',
+ 'Jan' => 'ÑічнÑ',
+ 'January' => 'Ñічень',
+ 'Jul' => 'липнÑ',
+ 'July' => 'Липень',
+ 'Jun' => 'червнÑ',
+ 'June' => 'Червень',
+ 'Manager' => 'Менеджер',
+ 'Mar' => 'березнÑ',
+ 'March' => 'Березень',
+ 'May' => 'травнÑ',
+ 'May ' => 'Травень',
+ 'Memo' => 'Ðотатка',
+ 'Message' => 'ПовідомленнÑ',
+ 'Month' => 'МіÑÑць',
+ 'Next Date' => 'ÐаÑтупна дата',
+ 'No.' => 'No.',
+ 'Notes' => 'Примітки',
+ 'Nothing to print!' => 'Ðема що дркувати!',
+ 'Nov' => 'лиÑтопада',
+ 'November' => 'ЛиÑтопад',
+ 'Number' => 'Ðомер',
+ 'Oct' => 'жовтнÑ',
+ 'October' => 'Жовтень',
+ 'Open' => 'Відкрито',
+ 'Order' => 'ЗамовленнÑ',
+ 'Order Number' => 'Ðомер замовленнÑ',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ðомер купівельного замовленнÑ',
+ 'Paid' => 'Заплачено',
+ 'Payment date missing!' => 'Ðе вказано дату Платежу!',
+ 'Payments' => 'Платежі',
+ 'Period' => 'Період',
+ 'Post' => 'ВиÑтавити',
+ 'Post as new' => 'ВиÑтавити Ñк новий',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Ðадрукувати',
+ 'Print and Post' => 'Ðадрукувати Ñ– виÑтавити',
+ 'Printed' => 'Ðадруковано',
+ 'Project' => 'Проект',
+ 'Project not on file!' => 'Проекту нема в ÑпиÑку!',
+ 'Quarter' => 'Квартал',
+ 'Receipt' => 'КвитанціÑ',
+ 'Recurring Transaction' => 'Періодична проводка',
+ 'Reference' => 'ПоÑиланнÑ',
+ 'Remaining' => 'ЗалишилоÑÑŒ',
+ 'Repeat' => 'Повторити',
+ 'Sales Invoice.' => 'Рахунок-фактура.',
+ 'Salesperson' => 'Торговець/предÑтавник',
+ 'Save Schedule' => 'Зберегти розклад',
+ 'Schedule' => 'Розклад',
+ 'Scheduled' => 'В розкладі',
+ 'Screen' => 'Екран',
+ 'Select from one of the names below' => 'Виберіть одну із наÑтупних назв',
+ 'Select from one of the projects below' => 'Виберіть один із наÑтупних проектів',
+ 'Select payment' => 'Виберіть платіж',
+ 'Select postscript or PDF!' => 'Виберіть postscript або PDF',
+ 'Sep' => 'вереÑнÑ',
+ 'September' => 'ВереÑень',
+ 'Ship to' => 'ВідіÑлати до',
+ 'Ship via' => 'ВідіÑлати через',
+ 'Shipping Point' => 'Пункт відÑиланнÑ',
+ 'Source' => 'Джерело',
+ 'Startdate' => 'Дата початку',
+ 'Subject' => 'Тема',
+ 'Subtotal' => 'ПідÑумок по розділу',
+ 'Summary' => 'ЗведеннÑ',
+ 'Tax' => 'Податок',
+ 'Tax Included' => 'Податок включено',
+ 'Till' => 'КаÑа',
+ 'To' => 'До',
+ 'Total' => 'Загальна Сума',
+ 'Transaction' => 'Проводка',
+ 'Transaction deleted!' => 'Проводка видалена',
+ 'Transaction posted!' => 'Проводка здійÑнена',
+ 'Update' => 'Оновити',
+ 'Vendor' => 'ПоÑтачальник',
+ 'Vendor Invoice.' => 'Рахунок-фактура.',
+ 'Vendor missing!' => 'ПоÑтачальник не Ñ–Ñнує',
+ 'Vendor not on file!' => 'Потачальника нема у ÑпиÑку ',
+ 'Warning!' => 'ПопередженнÑ!',
+ 'Year' => 'Рік',
+ 'Yes' => 'Tak',
+ 'You are posting an existing transaction!' => 'Ви виÑтавлÑєте проводку, Ñка вже Ñ–Ñнує!',
+ 'You are printing and posting an existing transaction!' => 'Ви друкуєте Ñ– зберігаєте проводку, Ñка вже Ñ–Ñнує!',
+ 'You are printing and saving an existing order' => 'Ви друкуєте Ñ– зберігаєте замовленнÑ, Ñке вже Ñ–Ñнує!',
+ 'You are printing and saving an existing quotation' => 'Ви друкуєте Ñ– зберігаєте котировку, Ñка вже Ñ–Ñнує!',
+ 'You are saving an existing order' => 'Ви зберігаєте замовленнÑ, Ñке вже Ñ–Ñнує!',
+ 'You are saving an existing quotation' => 'Ви зберігаєте котировку, Ñка вже Ñ–Ñнує!',
+ 'for' => 'длÑ',
+ 'sent' => 'нідіÑлано',
+ 'time(s)' => 'раз(ів)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'Проводка_витрат' => 'ap_transaction',
+ 'Проводка_доходів' => 'ar_transaction',
+ 'Продовжити' => 'continue',
+ 'Видалити' => 'delete',
+ 'Видалити_розклад' => 'delete_schedule',
+ 'ВиÑтавити' => 'post',
+ 'ВиÑтавити_Ñк_новий' => 'post_as_new',
+ 'Ðадрукувати' => 'print',
+ 'Ðадрукувати_Ñ–_виÑтавити' => 'print_and_post',
+ 'Рахунок_фактура_' => 'sales_invoice_',
+ 'Зберегти_розклад' => 'save_schedule',
+ 'Розклад' => 'schedule',
+ 'ВідіÑлати_до' => 'ship_to',
+ 'Оновити' => 'update',
+ 'Рахунок_фактура_' => 'vendor_invoice_',
+ 'tak' => 'yes',
+};
+
+1;
+
diff --git a/locale/ua_utf/arap b/locale/ua_utf/arap
new file mode 100755
index 00000000..5d11d5ab
--- /dev/null
+++ b/locale/ua_utf/arap
@@ -0,0 +1,72 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Address' => 'ÐдреÑа',
+ 'Bcc' => 'Прих.копіÑ',
+ 'Cc' => 'ÐšÐ¾Ð¿Ñ–Ñ Ð´Ð¾',
+ 'Continue' => 'Продовжити',
+ 'Customer not on file!' => 'Клієнта нема в ÑпиÑку!',
+ 'Date' => 'Дата',
+ 'Delete Schedule' => 'Видалити розклад',
+ 'Description' => 'ОпиÑ',
+ 'E-mail' => 'Ел. пошта',
+ 'E-mail message' => 'ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ ÐµÐ». пошти',
+ 'Every' => 'Кожні',
+ 'For' => 'ДлÑ',
+ 'Include Payment' => 'Включити плтіж',
+ 'Message' => 'ПовідомленнÑ',
+ 'Next Date' => 'ÐаÑтупна дата',
+ 'Number' => 'Ðомер',
+ 'Print' => 'Ðадрукувати',
+ 'Project not on file!' => 'Проекту нема в ÑпиÑку!',
+ 'Recurring Transaction' => 'Періодична проводка',
+ 'Reference' => 'ПоÑиланнÑ',
+ 'Repeat' => 'Повторити',
+ 'Save Schedule' => 'Зберегти розклад',
+ 'Select from one of the names below' => 'Виберіть одну із наÑтупних назв',
+ 'Select from one of the projects below' => 'Виберіть один із наÑтупних проектів',
+ 'Startdate' => 'Дата початку',
+ 'Subject' => 'Тема',
+ 'To' => 'До',
+ 'Vendor not on file!' => 'Потачальника нема у ÑпиÑку ',
+ 'Warning!' => 'ПопередженнÑ!',
+ 'You are posting an existing transaction!' => 'Ви виÑтавлÑєте проводку, Ñка вже Ñ–Ñнує!',
+ 'You are printing and posting an existing transaction!' => 'Ви друкуєте Ñ– зберігаєте проводку, Ñка вже Ñ–Ñнує!',
+ 'You are printing and saving an existing order' => 'Ви друкуєте Ñ– зберігаєте замовленнÑ, Ñке вже Ñ–Ñнує!',
+ 'You are printing and saving an existing quotation' => 'Ви друкуєте Ñ– зберігаєте котировку, Ñка вже Ñ–Ñнує!',
+ 'You are saving an existing order' => 'Ви зберігаєте замовленнÑ, Ñке вже Ñ–Ñнує!',
+ 'You are saving an existing quotation' => 'Ви зберігаєте котировку, Ñка вже Ñ–Ñнує!',
+ 'for' => 'длÑ',
+ 'sent' => 'нідіÑлано',
+ 'time(s)' => 'раз(ів)',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'Продовжити' => 'continue',
+ 'Видалити_розклад' => 'delete_schedule',
+ 'Зберегти_розклад' => 'save_schedule',
+};
+
+1;
+
diff --git a/locale/ua_utf/arapprn b/locale/ua_utf/arapprn
new file mode 100755
index 00000000..121086c0
--- /dev/null
+++ b/locale/ua_utf/arapprn
@@ -0,0 +1,35 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'Рахунок',
+ 'Amount' => 'Сума',
+ 'Continue' => 'Продовжити',
+ 'Date' => 'Дата',
+ 'Memo' => 'Ðотатка',
+ 'Nothing to print!' => 'Ðема що дркувати!',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'Postscript',
+ 'Printed' => 'Ðадруковано',
+ 'Scheduled' => 'В розкладі',
+ 'Screen' => 'Екран',
+ 'Select payment' => 'Виберіть платіж',
+ 'Select postscript or PDF!' => 'Виберіть postscript або PDF',
+ 'Source' => 'Джерело',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'Продовжити' => 'continue',
+};
+
+1;
+
diff --git a/locale/ua_utf/bp b/locale/ua_utf/bp
new file mode 100755
index 00000000..16509308
--- /dev/null
+++ b/locale/ua_utf/bp
@@ -0,0 +1,67 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'Рахунок',
+ 'Accounting Menu' => 'Меню обліку',
+ 'Bin Lists' => 'СпиÑки корзин',
+ 'Cannot remove files!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ файли!',
+ 'Confirm!' => 'Підтвердіть!',
+ 'Continue' => 'Продовжити',
+ 'Current' => 'Поточний',
+ 'Customer' => 'Клієнт',
+ 'Date' => 'Дата',
+ 'Employee' => 'Працівник',
+ 'From' => 'Від/З',
+ 'ID' => 'Ідентифікаційний номер',
+ 'Invoice' => 'Рахунок-фактура',
+ 'Invoice Number' => 'Ðомер рахунка-фактури',
+ 'Marked entries printed!' => 'Позначені запиÑи надруковано!',
+ 'Month' => 'МіÑÑць',
+ 'Order' => 'ЗамовленнÑ',
+ 'Order Number' => 'Ðомер замовленнÑ',
+ 'Packing Lists' => 'Пакувальні ÑпиÑки',
+ 'Period' => 'Період',
+ 'Pick Lists' => 'СпиÑки комплектуваннÑ',
+ 'Print' => 'Ðадрукувати',
+ 'Printing' => 'ДрукуєтьÑÑ',
+ 'Purchase Orders' => 'Купівельні замовленнÑ',
+ 'Quarter' => 'Квартал',
+ 'Quotation' => 'КотируваннÑ',
+ 'Quotation Number' => 'Ðомер котируваннÑ',
+ 'Quotations' => 'КотируваннÑ',
+ 'RFQs' => 'RFQs',
+ 'Remove' => 'Вилучити',
+ 'Removed spoolfiles!' => 'Спул-файли видалено!',
+ 'Sales Invoices' => 'Рахунки-фактури',
+ 'Sales Orders' => 'Ðакладні продажу',
+ 'Select all' => 'Вибрати вÑе',
+ 'To' => 'До',
+ 'Vendor' => 'ПоÑтачальник',
+ 'Work Orders' => 'ÐарÑди',
+ 'Year' => 'Рік',
+ 'Yes' => 'Tak',
+ 'done' => 'завершено',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'Продовжити' => 'continue',
+ 'Ðадрукувати' => 'print',
+ 'Вилучити' => 'remove',
+ 'Вибрати_вÑе' => 'select_all',
+ 'tak' => 'yes',
+};
+
+1;
+
diff --git a/locale/ua_utf/ca b/locale/ua_utf/ca
new file mode 100755
index 00000000..66009056
--- /dev/null
+++ b/locale/ua_utf/ca
@@ -0,0 +1,61 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'Рахунок',
+ 'Apr' => 'квітнÑ',
+ 'April' => 'Квітень',
+ 'Aug' => 'ÑерпнÑ',
+ 'August' => 'Серпень',
+ 'Balance' => 'БаланÑ',
+ 'Chart of Accounts' => 'План Рахунків',
+ 'Credit' => 'Кредит',
+ 'Current' => 'Поточний',
+ 'Date' => 'Дата',
+ 'Debit' => 'Дебит',
+ 'Dec' => 'груднÑ',
+ 'December' => 'Грудень',
+ 'Department' => 'Відділ',
+ 'Description' => 'ОпиÑ',
+ 'Feb' => 'лютого',
+ 'February' => 'Лютий',
+ 'From' => 'Від/З',
+ 'GIFI' => 'GIFI',
+ 'Include in Report' => 'Додати до звіту',
+ 'Jan' => 'ÑічнÑ',
+ 'January' => 'Ñічень',
+ 'Jul' => 'липнÑ',
+ 'July' => 'Липень',
+ 'Jun' => 'червнÑ',
+ 'June' => 'Червень',
+ 'List Transactions' => 'СпиÑок проводок',
+ 'Mar' => 'березнÑ',
+ 'March' => 'Березень',
+ 'May' => 'травнÑ',
+ 'May ' => 'Травень',
+ 'Month' => 'МіÑÑць',
+ 'Nov' => 'лиÑтопада',
+ 'November' => 'ЛиÑтопад',
+ 'Oct' => 'жовтнÑ',
+ 'October' => 'Жовтень',
+ 'Period' => 'Період',
+ 'Project Number' => 'Ðомер проекту',
+ 'Quarter' => 'Квартал',
+ 'R' => 'R',
+ 'Reference' => 'ПоÑиланнÑ',
+ 'Sep' => 'вереÑнÑ',
+ 'September' => 'ВереÑень',
+ 'Subtotal' => 'ПідÑумок по розділу',
+ 'To' => 'До',
+ 'Year' => 'Рік',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'СпиÑок_проводок' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/ua_utf/cp b/locale/ua_utf/cp
new file mode 100755
index 00000000..11e87387
--- /dev/null
+++ b/locale/ua_utf/cp
@@ -0,0 +1,144 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP' => 'Витрати',
+ 'AR' => 'Доходи',
+ 'Account' => 'Рахунок',
+ 'Accounting Menu' => 'Меню обліку',
+ 'Address' => 'ÐдреÑа',
+ 'All' => 'Ð’ÑÑ–',
+ 'Amount' => 'Сума',
+ 'Amount Due' => 'Заплатити Ñуму',
+ 'Bcc' => 'Прих.копіÑ',
+ 'Cannot post Payment!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ñтавити платіж!',
+ 'Cannot post Receipt!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ñтавити квитанцію!',
+ 'Cannot post payment for a closed period!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ñтавити платіж Ð´Ð»Ñ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ð¾Ð³Ð¾ періоду!',
+ 'Cc' => 'ÐšÐ¾Ð¿Ñ–Ñ Ð´Ð¾',
+ 'Continue' => 'Продовжити',
+ 'Currency' => 'Валюта',
+ 'Customer' => 'Клієнт',
+ 'Customer not on file!' => 'Клієнта нема в ÑпиÑку!',
+ 'Date' => 'Дата',
+ 'Date missing!' => 'Ðе вказана дата!',
+ 'Delete Schedule' => 'Видалити розклад',
+ 'Department' => 'Відділ',
+ 'Deposit' => 'Депозит/вклад',
+ 'Description' => 'ОпиÑ',
+ 'Due Date' => 'Заплатити до',
+ 'E-mail' => 'Ел. пошта',
+ 'E-mail message' => 'ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ ÐµÐ». пошти',
+ 'Every' => 'Кожні',
+ 'Exchange Rate' => 'ÐšÑƒÑ€Ñ Ð²Ð°Ð»ÑŽÑ‚Ð¸',
+ 'Exchange rate missing!' => 'Ðе вказаний ÐºÑƒÑ€Ñ Ð²Ð°Ð»ÑŽÑ‚Ð¸!',
+ 'For' => 'ДлÑ',
+ 'From' => 'Від/З',
+ 'Include Payment' => 'Включити плтіж',
+ 'Invoice' => 'Рахунок-фактура',
+ 'Invoices' => 'Рахунки-фактури',
+ 'Language' => 'Мова',
+ 'Memo' => 'Ðотатка',
+ 'Message' => 'ПовідомленнÑ',
+ 'Next Date' => 'ÐаÑтупна дата',
+ 'Number' => 'Ðомер',
+ 'PDF' => 'PDF',
+ 'Payment' => 'Платіж',
+ 'Payment posted!' => 'Платіж виÑтавлено!',
+ 'Payments' => 'Платежі',
+ 'Post' => 'ВиÑтавити',
+ 'Postscript' => 'Postscript',
+ 'Prepayment' => 'Передплата',
+ 'Print' => 'Ðадрукувати',
+ 'Project not on file!' => 'Проекту нема в ÑпиÑку!',
+ 'Receipt' => 'КвитанціÑ',
+ 'Receipt posted!' => 'Квитанцію виÑтавлено!',
+ 'Receipts' => 'Квитанції',
+ 'Recurring Transaction' => 'Періодична проводка',
+ 'Reference' => 'ПоÑиланнÑ',
+ 'Repeat' => 'Повторити',
+ 'Save Schedule' => 'Зберегти розклад',
+ 'Screen' => 'Екран',
+ 'Select' => 'Вибрати',
+ 'Select all' => 'Вибрати вÑе',
+ 'Select from one of the names below' => 'Виберіть одну із наÑтупних назв',
+ 'Select from one of the projects below' => 'Виберіть один із наÑтупних проектів',
+ 'Select postscript or PDF!' => 'Виберіть postscript або PDF',
+ 'Source' => 'Джерело',
+ 'Startdate' => 'Дата початку',
+ 'Subject' => 'Тема',
+ 'To' => 'До',
+ 'Update' => 'Оновити',
+ 'Vendor' => 'ПоÑтачальник',
+ 'Vendor not on file!' => 'Потачальника нема у ÑпиÑку ',
+ 'Warning!' => 'ПопередженнÑ!',
+ 'You are posting an existing transaction!' => 'Ви виÑтавлÑєте проводку, Ñка вже Ñ–Ñнує!',
+ 'You are printing and posting an existing transaction!' => 'Ви друкуєте Ñ– зберігаєте проводку, Ñка вже Ñ–Ñнує!',
+ 'You are printing and saving an existing order' => 'Ви друкуєте Ñ– зберігаєте замовленнÑ, Ñке вже Ñ–Ñнує!',
+ 'You are printing and saving an existing quotation' => 'Ви друкуєте Ñ– зберігаєте котировку, Ñка вже Ñ–Ñнує!',
+ 'You are saving an existing order' => 'Ви зберігаєте замовленнÑ, Ñке вже Ñ–Ñнує!',
+ 'You are saving an existing quotation' => 'Ви зберігаєте котировку, Ñка вже Ñ–Ñнує!',
+ 'for' => 'длÑ',
+ 'sent' => 'нідіÑлано',
+ 'time(s)' => 'раз(ів)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'Продовжити' => 'continue',
+ 'Видалити_розклад' => 'delete_schedule',
+ 'ВиÑтавити' => 'post',
+ 'Ðадрукувати' => 'print',
+ 'Зберегти_розклад' => 'save_schedule',
+ 'Вибрати_вÑе' => 'select_all',
+ 'Оновити' => 'update',
+};
+
+1;
+
diff --git a/locale/ua_utf/ct b/locale/ua_utf/ct
new file mode 100755
index 00000000..11dc9a33
--- /dev/null
+++ b/locale/ua_utf/ct
@@ -0,0 +1,184 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Transaction' => 'Проводка витрат',
+ 'AP Transactions' => 'Проводки витрат',
+ 'AR Transaction' => 'Проводка доходів',
+ 'AR Transactions' => 'Проводки доходів',
+ 'Accounting Menu' => 'Меню обліку',
+ 'Active' => 'Ðктивний',
+ 'Add Customer' => 'Ðовий клієнт',
+ 'Add Vendor' => 'Ðовий поÑтачальник',
+ 'Address' => 'ÐдреÑа',
+ 'All' => 'Ð’ÑÑ–',
+ 'Amount' => 'Сума',
+ 'BIC' => 'BIC',
+ 'Bcc' => 'Прих.копіÑ',
+ 'Billing Address' => 'ÐдреÑа Ð´Ð»Ñ Ð½Ð°Ð´ÑÐ¸Ð»Ð°Ð½Ð½Ñ Ñ€Ð°Ñ…ÑƒÐ½ÐºÑƒ',
+ 'Cannot delete customer!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ клієнта!',
+ 'Cannot delete vendor!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ поÑтачальника!',
+ 'Cc' => 'ÐšÐ¾Ð¿Ñ–Ñ Ð´Ð¾',
+ 'City' => 'МіÑто',
+ 'Closed' => 'Закрито',
+ 'Company Name' => 'Ðазва підприємÑтва',
+ 'Contact' => 'Контактна оÑоба',
+ 'Continue' => 'Продовжити',
+ 'Cost' => 'Затрати',
+ 'Could not save pricelist!' => 'Ðе вдалоÑÑŒ зберегти ціновий ÑпиÑок!',
+ 'Country' => 'Країна',
+ 'Credit Limit' => 'Ліміт кредиту',
+ 'Curr' => 'Валюта',
+ 'Currency' => 'Валюта',
+ 'Customer History' => 'ІÑÑ‚Ð¾Ñ€Ñ–Ñ ÐºÐ»Ñ–Ñ”Ð½Ñ‚Ð°',
+ 'Customer Number' => 'Ðомер клієнта',
+ 'Customer deleted!' => 'Клієнта видалено!',
+ 'Customer saved!' => 'Клієнта збережено!',
+ 'Customers' => 'Клієнти',
+ 'Delete' => 'Видалити',
+ 'Delivery Date' => 'Дата доÑтавки',
+ 'Description' => 'ОпиÑ',
+ 'Detail' => 'Подробиці',
+ 'Discount' => 'Знижка',
+ 'E-mail' => 'Ел. пошта',
+ 'Edit Customer' => 'Редагувати Клієнта',
+ 'Edit Vendor' => 'Редагувати поÑтачальника',
+ 'Employee' => 'Працівник',
+ 'Enddate' => 'Дата закінченнÑ',
+ 'Fax' => 'Фах',
+ 'From' => 'Від/З',
+ 'GIFI' => 'GIFI',
+ 'Group' => 'Група',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'Ідентифікаційний номер',
+ 'Include in Report' => 'Додати до звіту',
+ 'Invoice' => 'Рахунок-фактура',
+ 'Item already on pricelist!' => 'Елемент вже Ñ” в ціновому ÑпиÑку!',
+ 'Item not on file!' => 'Речі нема в ÑпиÑку!',
+ 'Language' => 'Мова',
+ 'Manager' => 'Менеджер',
+ 'Name' => 'Ðазва',
+ 'Name missing!' => 'Ðе вказано назву!',
+ 'No.' => 'No.',
+ 'Notes' => 'Примітки',
+ 'Number' => 'Ðомер',
+ 'Open' => 'Відкрито',
+ 'Order' => 'ЗамовленнÑ',
+ 'Orphaned' => 'Відокремлений/ОÑиротілий',
+ 'Phone' => 'Тел.',
+ 'Pricegroup' => 'Цінова група',
+ 'Pricelist' => 'Ціновий ÑпиÑок',
+ 'Project Number' => 'Ðомер проекту',
+ 'Purchase Order' => 'Купівельне замовленнÑ',
+ 'Purchase Orders' => 'Купівельні замовленнÑ',
+ 'Qty' => 'КількіÑÑ‚ÑŒ',
+ 'Quotation' => 'КотируваннÑ',
+ 'Quotations' => 'КотируваннÑ',
+ 'RFQ' => 'RFQ',
+ 'Request for Quotations' => 'Запит на котируваннÑ',
+ 'SIC' => 'SIC',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Рахунок-фактура',
+ 'Sales Invoices' => 'Рахунки-фактури',
+ 'Sales Order' => 'Ðакладна продажу',
+ 'Sales Orders' => 'Ðакладні продажу',
+ 'Salesperson' => 'Торговець/предÑтавник',
+ 'Save' => 'Зберегти',
+ 'Save Pricelist' => 'Зберегти ціновий ÑпиÑок',
+ 'Save as new' => 'Зберегти Ñк нове',
+ 'Search' => 'Пошук',
+ 'Select items' => 'Виберіть елементи',
+ 'Sell Price' => 'ВідпуÑкна Ціна',
+ 'Serial Number' => 'Серійний номер',
+ 'Shipping Address' => 'ÐдреÑа Ð´Ð»Ñ Ð²Ñ–Ð´ÑиланнÑ',
+ 'Startdate' => 'Дата початку',
+ 'State' => 'Штат',
+ 'State/Province' => 'Штат/облаÑÑ‚ÑŒ',
+ 'Subtotal' => 'ПідÑумок по розділу',
+ 'Summary' => 'ЗведеннÑ',
+ 'Tax' => 'Податок',
+ 'Tax Included' => 'Податок включено',
+ 'Tax Number' => 'Податковий номер',
+ 'Tax Number / SSN' => 'Податковий номер / перÑональний номер',
+ 'Taxable' => 'ОподатковуєтьÑÑ',
+ 'Terms' => 'Умови: ',
+ 'To' => 'До',
+ 'Total' => 'Загальна Сума',
+ 'Type of Business' => 'Тип бізнеÑу',
+ 'Unit' => 'ОдиницÑ',
+ 'Update' => 'Оновити',
+ 'Vendor History' => 'ІÑÑ‚Ð¾Ñ€Ñ–Ñ Ð¿Ð¾Ñтачальника',
+ 'Vendor Invoice' => 'Рахунок-фактура',
+ 'Vendor Invoices' => 'Рахунки-фактури',
+ 'Vendor Number' => 'Ðомер поÑтачальника',
+ 'Vendor deleted!' => 'ПоÑтачальник видалений',
+ 'Vendor saved!' => 'ПоÑтачальника збережено',
+ 'Vendors' => 'ПоÑтачальники',
+ 'Zip/Postal Code' => 'Поштовий код',
+ 'days' => 'днів',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'Проводка_витрат' => 'ap_transaction',
+ 'Проводка_доходів' => 'ar_transaction',
+ 'Ðовий_клієнт' => 'add_customer',
+ 'Ðовий_поÑтачальник' => 'add_vendor',
+ 'Продовжити' => 'continue',
+ 'Видалити' => 'delete',
+ 'Ціновий_ÑпиÑок' => 'pricelist',
+ 'Купівельне_замовленнÑ' => 'purchase_order',
+ 'КотируваннÑ' => 'quotation',
+ 'rfq' => 'rfq',
+ 'Рахунок_фактура' => 'sales_invoice',
+ 'Ðакладна_продажу' => 'sales_order',
+ 'Зберегти' => 'save',
+ 'Зберегти_ціновий_ÑпиÑок' => 'save_pricelist',
+ 'Зберегти_Ñк_нове' => 'save_as_new',
+ 'Оновити' => 'update',
+ 'Рахунок_фактура' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/ua_utf/gl b/locale/ua_utf/gl
new file mode 100755
index 00000000..1a4161cf
--- /dev/null
+++ b/locale/ua_utf/gl
@@ -0,0 +1,181 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Transaction' => 'Проводка витрат',
+ 'AR Transaction' => 'Проводка доходів',
+ 'Account' => 'Рахунок',
+ 'Accounting Menu' => 'Меню обліку',
+ 'Add Cash Transfer Transaction' => 'Додати проводку Ð¿ÐµÑ€ÐµÐ²ÐµÐ´ÐµÐ½Ð½Ñ Ð³Ð¾Ñ‚Ñ–Ð²ÐºÐ¸',
+ 'Add General Ledger Transaction' => 'Ðова проводка',
+ 'Address' => 'ÐдреÑа',
+ 'All' => 'Ð’ÑÑ–',
+ 'Amount' => 'Сума',
+ 'Apr' => 'квітнÑ',
+ 'April' => 'Квітень',
+ 'Are you sure you want to delete Transaction' => 'Ви певні, що хочете видалити дану проводку?',
+ 'Asset' => 'Ðктив',
+ 'Aug' => 'ÑерпнÑ',
+ 'August' => 'Серпень',
+ 'Balance' => 'БаланÑ',
+ 'Bcc' => 'Прих.копіÑ',
+ 'Cannot delete transaction!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ проводку!',
+ 'Cannot post transaction for a closed period!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ñтавити проводку Ð´Ð»Ñ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ð¾Ð³Ð¾ періоду!',
+ 'Cannot post transaction!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ñтавити проводку!',
+ 'Cc' => 'ÐšÐ¾Ð¿Ñ–Ñ Ð´Ð¾',
+ 'Confirm!' => 'Підтвердіть!',
+ 'Continue' => 'Продовжити',
+ 'Credit' => 'Кредит',
+ 'Current' => 'Поточний',
+ 'Customer not on file!' => 'Клієнта нема в ÑпиÑку!',
+ 'Date' => 'Дата',
+ 'Debit' => 'Дебит',
+ 'Dec' => 'груднÑ',
+ 'December' => 'Грудень',
+ 'Delete' => 'Видалити',
+ 'Delete Schedule' => 'Видалити розклад',
+ 'Department' => 'Відділ',
+ 'Description' => 'ОпиÑ',
+ 'E-mail' => 'Ел. пошта',
+ 'E-mail message' => 'ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ ÐµÐ». пошти',
+ 'Edit General Ledger Transaction' => 'Редагувати проводку головної книги',
+ 'Equity' => 'Капітал',
+ 'Every' => 'Кожні',
+ 'Expense' => 'Видатки',
+ 'FX' => 'FX',
+ 'Feb' => 'лютого',
+ 'February' => 'Лютий',
+ 'For' => 'ДлÑ',
+ 'From' => 'Від/З',
+ 'GIFI' => 'GIFI',
+ 'GL Transaction' => 'Проводка ГК',
+ 'General Ledger' => 'Головна книга',
+ 'ID' => 'Ідентифікаційний номер',
+ 'Include Payment' => 'Включити плтіж',
+ 'Include in Report' => 'Додати до звіту',
+ 'Income' => 'Прибуток',
+ 'Jan' => 'ÑічнÑ',
+ 'January' => 'Ñічень',
+ 'Jul' => 'липнÑ',
+ 'July' => 'Липень',
+ 'Jun' => 'червнÑ',
+ 'June' => 'Червень',
+ 'Liability' => 'ПаÑÑив',
+ 'Mar' => 'березнÑ',
+ 'March' => 'Березень',
+ 'May' => 'травнÑ',
+ 'May ' => 'Травень',
+ 'Memo' => 'Ðотатка',
+ 'Message' => 'ПовідомленнÑ',
+ 'Month' => 'МіÑÑць',
+ 'Next Date' => 'ÐаÑтупна дата',
+ 'Notes' => 'Примітки',
+ 'Nov' => 'лиÑтопада',
+ 'November' => 'ЛиÑтопад',
+ 'Number' => 'Ðомер',
+ 'Oct' => 'жовтнÑ',
+ 'October' => 'Жовтень',
+ 'Out of balance transaction!' => 'ÐезбаланÑована проводка',
+ 'Period' => 'Період',
+ 'Post' => 'ВиÑтавити',
+ 'Post as new' => 'ВиÑтавити Ñк новий',
+ 'Print' => 'Ðадрукувати',
+ 'Project' => 'Проект',
+ 'Project not on file!' => 'Проекту нема в ÑпиÑку!',
+ 'Quarter' => 'Квартал',
+ 'R' => 'R',
+ 'Recurring Transaction' => 'Періодична проводка',
+ 'Reference' => 'ПоÑиланнÑ',
+ 'Repeat' => 'Повторити',
+ 'Reports' => 'Звіти',
+ 'Sales Invoice ' => 'Рахунок-фактура ',
+ 'Save Schedule' => 'Зберегти розклад',
+ 'Schedule' => 'Розклад',
+ 'Scheduled' => 'В розкладі',
+ 'Select from one of the names below' => 'Виберіть одну із наÑтупних назв',
+ 'Select from one of the projects below' => 'Виберіть один із наÑтупних проектів',
+ 'Sep' => 'вереÑнÑ',
+ 'September' => 'ВереÑень',
+ 'Source' => 'Джерело',
+ 'Startdate' => 'Дата початку',
+ 'Subject' => 'Тема',
+ 'Subtotal' => 'ПідÑумок по розділу',
+ 'To' => 'До',
+ 'Transaction Date missing!' => 'Ðе вказана дата проводки',
+ 'Transaction deleted!' => 'Проводка видалена',
+ 'Transaction posted!' => 'Проводка здійÑнена',
+ 'Update' => 'Оновити',
+ 'Vendor Invoice ' => 'Рахунок-фактура ',
+ 'Vendor not on file!' => 'Потачальника нема у ÑпиÑку ',
+ 'Warning!' => 'ПопередженнÑ!',
+ 'Year' => 'Рік',
+ 'Yes' => 'Tak',
+ 'You are posting an existing transaction!' => 'Ви виÑтавлÑєте проводку, Ñка вже Ñ–Ñнує!',
+ 'You are printing and posting an existing transaction!' => 'Ви друкуєте Ñ– зберігаєте проводку, Ñка вже Ñ–Ñнує!',
+ 'You are printing and saving an existing order' => 'Ви друкуєте Ñ– зберігаєте замовленнÑ, Ñке вже Ñ–Ñнує!',
+ 'You are printing and saving an existing quotation' => 'Ви друкуєте Ñ– зберігаєте котировку, Ñка вже Ñ–Ñнує!',
+ 'You are saving an existing order' => 'Ви зберігаєте замовленнÑ, Ñке вже Ñ–Ñнує!',
+ 'You are saving an existing quotation' => 'Ви зберігаєте котировку, Ñка вже Ñ–Ñнує!',
+ 'for' => 'длÑ',
+ 'sent' => 'нідіÑлано',
+ 'time(s)' => 'раз(ів)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'Проводка_витрат' => 'ap_transaction',
+ 'Проводка_доходів' => 'ar_transaction',
+ 'Продовжити' => 'continue',
+ 'Видалити' => 'delete',
+ 'Видалити_розклад' => 'delete_schedule',
+ 'Проводка_ГК' => 'gl_transaction',
+ 'ВиÑтавити' => 'post',
+ 'ВиÑтавити_Ñк_новий' => 'post_as_new',
+ 'Рахунок_фактура_' => 'sales_invoice_',
+ 'Зберегти_розклад' => 'save_schedule',
+ 'Розклад' => 'schedule',
+ 'Оновити' => 'update',
+ 'Рахунок_фактура_' => 'vendor_invoice_',
+ 'tak' => 'yes',
+};
+
+1;
+
diff --git a/locale/ua_utf/hr b/locale/ua_utf/hr
new file mode 100755
index 00000000..32cb780a
--- /dev/null
+++ b/locale/ua_utf/hr
@@ -0,0 +1,116 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP' => 'Витрати',
+ 'Above' => 'Вище',
+ 'Accounting Menu' => 'Меню обліку',
+ 'Active' => 'Ðктивний',
+ 'Add Deduction' => 'Додати відрахуваннÑ',
+ 'Add Employee' => 'Додати працівника',
+ 'Address' => 'ÐдреÑа',
+ 'Administrator' => 'ÐдмініÑтратор',
+ 'After Deduction' => 'ПіÑÐ»Ñ Ð²Ñ–Ð´Ñ€Ð°Ñ…ÑƒÐ²Ð°Ð½Ð½Ñ',
+ 'All' => 'Ð’ÑÑ–',
+ 'Amount' => 'Сума',
+ 'Amount missing!' => 'Сума відÑутнÑ!',
+ 'BIC' => 'BIC',
+ 'Based on' => 'ОÑновано на',
+ 'Before Deduction' => 'Перед відрахуваннÑм',
+ 'Below' => 'Ðижче',
+ 'City' => 'МіÑто',
+ 'Continue' => 'Продовжити',
+ 'Country' => 'Країна',
+ 'DOB' => 'DOB',
+ 'Deduct after' => 'Відрахувати піÑлÑ',
+ 'Deduction deleted!' => 'Ð’Ñ–Ð´Ñ€Ð°Ñ…ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð¾!',
+ 'Deduction saved!' => 'Ð’Ñ–Ð´Ñ€Ð°Ñ…ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð¾!',
+ 'Deductions' => 'ВідрахуваннÑ',
+ 'Delete' => 'Видалити',
+ 'Description' => 'ОпиÑ',
+ 'Description missing!' => 'ÐžÐ¿Ð¸Ñ Ð²Ñ–Ð´Ñутній!',
+ 'E-mail' => 'Ел. пошта',
+ 'Edit Deduction' => 'Редагувати відрахуваннÑ',
+ 'Edit Employee' => 'Редагувати працівника',
+ 'Employee' => 'Працівник',
+ 'Employee Name' => 'Ім\'Ñ Ð¿Ñ€Ð°Ñ†Ñ–Ð²Ð½Ð¸ÐºÐ°',
+ 'Employee Number' => 'Ðомер працівника',
+ 'Employee deleted!' => 'Працівника видалено',
+ 'Employee saved!' => 'Працівника збережено',
+ 'Employees' => 'Працівники',
+ 'Employer' => 'Роботодавець',
+ 'Enddate' => 'Дата закінченнÑ',
+ 'Expense' => 'Видатки',
+ 'From' => 'Від/З',
+ 'Home Phone' => 'Домашній телефон',
+ 'IBAN' => 'IBAN',
+ 'ID' => 'Ідентифікаційний номер',
+ 'Include in Report' => 'Додати до звіту',
+ 'Login' => 'Вхід',
+ 'Manager' => 'Менеджер',
+ 'Maximum' => 'МакÑимум',
+ 'Name' => 'Ðазва',
+ 'Name missing!' => 'Ðе вказано назву!',
+ 'Notes' => 'Примітки',
+ 'Number' => 'Ðомер',
+ 'Orphaned' => 'Відокремлений/ОÑиротілий',
+ 'Payroll Deduction' => 'Ð’Ñ–Ð´Ñ€Ð°Ñ…ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñ–Ð´ зарплати',
+ 'Rate' => 'Розцінка',
+ 'Rate missing!' => 'ВідÑÑƒÑ‚Ð½Ñ Ñ€Ð¾Ð·Ñ†Ñ–Ð½ÐºÐ°!',
+ 'Role' => 'Роль',
+ 'S' => 'S',
+ 'SSN' => 'ПерÑональний номер',
+ 'Sales' => 'Продаж',
+ 'Save' => 'Зберегти',
+ 'Save as new' => 'Зберегти Ñк нове',
+ 'Startdate' => 'Дата початку',
+ 'State/Province' => 'Штат/облаÑÑ‚ÑŒ',
+ 'Supervisor' => 'Ðачальник',
+ 'To' => 'До',
+ 'Update' => 'Оновити',
+ 'User' => 'КориÑтувач',
+ 'Work Phone' => 'Робочий телефон',
+ 'Zip/Postal Code' => 'Поштовий код',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'Додати_відрахуваннÑ' => 'add_deduction',
+ 'Додати_працівника' => 'add_employee',
+ 'Продовжити' => 'continue',
+ 'Видалити' => 'delete',
+ 'Зберегти' => 'save',
+ 'Зберегти_Ñк_нове' => 'save_as_new',
+ 'Оновити' => 'update',
+};
+
+1;
+
diff --git a/locale/ua_utf/ic b/locale/ua_utf/ic
new file mode 100755
index 00000000..3641214f
--- /dev/null
+++ b/locale/ua_utf/ic
@@ -0,0 +1,278 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'A' => 'Ð',
+ 'Accounting Menu' => 'Меню обліку',
+ 'Accounts' => 'Рахунки',
+ 'Active' => 'Ðктивний',
+ 'Add' => 'Додати',
+ 'Add Assembly' => 'Додати комплект',
+ 'Add Labor/Overhead' => 'Додати роботу/додаткові витрати',
+ 'Add Part' => 'Ðовий Товар',
+ 'Add Purchase Order' => 'Ðове Ð·Ð°Ð¼Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð½Ð° купівлю',
+ 'Add Quotation' => 'КотируваннÑ',
+ 'Add Request for Quotation' => 'Додати запит на котируваннÑ',
+ 'Add Sales Order' => 'Ðове Ð·Ð°Ð¼Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð½Ð° продаж',
+ 'Add Service' => 'Ðова поÑлуга',
+ 'Address' => 'ÐдреÑа',
+ 'Apr' => 'квітнÑ',
+ 'April' => 'Квітень',
+ 'Assemblies' => 'Комплекти',
+ 'Assemblies restocked!' => 'Комплекти інвентаризовані!',
+ 'Assembly' => 'Комплект',
+ 'Attachment' => 'Додаток',
+ 'Aug' => 'ÑерпнÑ',
+ 'August' => 'Серпень',
+ 'BOM' => 'BOM',
+ 'Bcc' => 'Прих.копіÑ',
+ 'Billing Address' => 'ÐдреÑа Ð´Ð»Ñ Ð½Ð°Ð´ÑÐ¸Ð»Ð°Ð½Ð½Ñ Ñ€Ð°Ñ…ÑƒÐ½ÐºÑƒ',
+ 'Bin' => 'Корзина',
+ 'Bin List' => 'СпиÑок корзин',
+ 'COGS' => 'COGS',
+ 'Cannot delete item!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ цей елемент!',
+ 'Cannot stock assemblies!' => 'Ðе вдаєтьÑÑ Ñ–Ð½Ð²ÐµÐ½Ñ‚Ð°Ñ€Ð¸Ð·ÑƒÐ²Ð°Ñ‚Ð¸ комплекти!',
+ 'Cash' => 'Готівка',
+ 'Cc' => 'ÐšÐ¾Ð¿Ñ–Ñ Ð´Ð¾',
+ 'Check Inventory' => 'Перевірити інвентар',
+ 'City' => 'МіÑто',
+ 'Closed' => 'Закрито',
+ 'Company Name' => 'Ðазва підприємÑтва',
+ 'Components' => 'Компоненти',
+ 'Contact' => 'Контактна оÑоба',
+ 'Continue' => 'Продовжити',
+ 'Copies' => 'Копій',
+ 'Cost' => 'Затрати',
+ 'Country' => 'Країна',
+ 'Curr' => 'Валюта',
+ 'Currency' => 'Валюта',
+ 'Customer' => 'Клієнт',
+ 'Customer Number' => 'Ðомер клієнта',
+ 'Customer not on file!' => 'Клієнта нема в ÑпиÑку!',
+ 'Date' => 'Дата',
+ 'Dec' => 'груднÑ',
+ 'December' => 'Грудень',
+ 'Delete' => 'Видалити',
+ 'Delivery Date' => 'Дата доÑтавки',
+ 'Description' => 'ОпиÑ',
+ 'Detail' => 'Подробиці',
+ 'Drawing' => 'Малюнок',
+ 'E-mail' => 'Ел. пошта',
+ 'E-mail address missing!' => 'Ðе вказана адреÑа ел. пошти!',
+ 'E-mailed' => 'Ел. пошту відіÑлано',
+ 'Edit Assembly' => 'Редагувати комплект',
+ 'Edit Labor/Overhead' => 'Редагувати роботу/додаткові витрати',
+ 'Edit Part' => 'Редагувати товар',
+ 'Edit Service' => 'Редагувати поÑлугу',
+ 'Employee' => 'Працівник',
+ 'Expense' => 'Видатки',
+ 'Extended' => 'Продовжено',
+ 'Fax' => 'Фах',
+ 'Feb' => 'лютого',
+ 'February' => 'Лютий',
+ 'From' => 'Від/З',
+ 'Group' => 'Група',
+ 'Image' => 'ЗображеннÑ',
+ 'In-line' => 'Включено (In-line)',
+ 'Include in Report' => 'Додати до звіту',
+ 'Income' => 'Прибуток',
+ 'Individual Items' => 'Індивідуальні елементи',
+ 'Inventory' => 'Інвентар',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => 'КількіÑÑ‚ÑŒ в інвентарі повинна бути нуль, перш ніж можна позначити комплект заÑтарілим!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => 'КількіÑÑ‚ÑŒ в інвентарі повинна бути нуль, перш ніж можна позначити ций товар заÑтарілим!',
+ 'Invoice' => 'Рахунок-фактура',
+ 'Invoice Date missing!' => 'Ðе вказана дата виÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ñ€Ð°Ñ…ÑƒÐ½ÐºÐ°-фактури',
+ 'Invoice Number' => 'Ðомер рахунка-фактури',
+ 'Invoice Number missing!' => 'Ðе вказаний номер рахунка-фактури',
+ 'Item deleted!' => 'Річ видалено!',
+ 'Item not on file!' => 'Речі нема в ÑпиÑку!',
+ 'Items' => 'Елементи',
+ 'Jan' => 'ÑічнÑ',
+ 'January' => 'Ñічень',
+ 'Jul' => 'липнÑ',
+ 'July' => 'Липень',
+ 'Jun' => 'червнÑ',
+ 'June' => 'Червень',
+ 'Labor/Overhead' => 'Робота/додаткові витрати',
+ 'Line Total' => 'Загальна Сума',
+ 'Link Accounts' => 'ПовÑзати Рахунки',
+ 'List' => 'СпиÑок',
+ 'List Price' => 'Ціна',
+ 'Make' => 'Виробництво',
+ 'Mar' => 'березнÑ',
+ 'March' => 'Березень',
+ 'Markup' => 'Ðацінка',
+ 'May' => 'травнÑ',
+ 'May ' => 'Травень',
+ 'Message' => 'ПовідомленнÑ',
+ 'Microfiche' => 'Мікрофіша',
+ 'Model' => 'Модель',
+ 'Name' => 'Ðазва',
+ 'No.' => 'No.',
+ 'Notes' => 'Примітки',
+ 'Nov' => 'лиÑтопада',
+ 'November' => 'ЛиÑтопад',
+ 'Number' => 'Ðомер',
+ 'Number missing in Row' => 'Ðе вказаний номер у Ñ€Ñдку',
+ 'Obsolete' => 'ЗаÑтаріле',
+ 'Oct' => 'жовтнÑ',
+ 'October' => 'Жовтень',
+ 'On Hand' => 'Ðа руках',
+ 'Open' => 'Відкрито',
+ 'Order' => 'ЗамовленнÑ',
+ 'Order Date missing!' => 'Ðе вказано дату замовленнÑ!',
+ 'Order Number' => 'Ðомер замовленнÑ',
+ 'Order Number missing!' => 'ВідÑутній номер замовленнÑ',
+ 'Orphaned' => 'Відокремлений/ОÑиротілий',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Пакувальний ÑпиÑок',
+ 'Packing List Date missing!' => 'Ðе вказано дату пакувального ÑпиÑку',
+ 'Packing List Number missing!' => 'Ðе вказано номер пакувального ÑпиÑку',
+ 'Part' => 'ЧаÑтина',
+ 'Parts' => 'товари',
+ 'Period' => 'Період',
+ 'Phone' => 'Тел.',
+ 'Pick List' => 'СпиÑок комплектуваннÑ',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Ціна',
+ 'Pricegroup' => 'Цінова група',
+ 'Printed' => 'Ðадруковано',
+ 'Project' => 'Проект',
+ 'Purchase Order' => 'Купівельне замовленнÑ',
+ 'Purchase Orders' => 'Купівельні замовленнÑ',
+ 'Qty' => 'КількіÑÑ‚ÑŒ',
+ 'Quotation' => 'КотируваннÑ',
+ 'Quotation Date missing!' => 'ВідÑÑƒÑ‚Ð½Ñ Ð´Ð°Ñ‚Ð° котируваннÑ!',
+ 'Quotation Number missing!' => 'ВідÑутній номер котируваннÑ!',
+ 'Quotations' => 'КотируваннÑ',
+ 'RFQ' => 'RFQ',
+ 'ROP' => 'ROP',
+ 'Recd' => 'Отримано',
+ 'Required by' => 'Термін доÑтавки',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Рахунок-фактура',
+ 'Sales Invoices' => 'Рахунки-фактури',
+ 'Sales Order' => 'Ðакладна продажу',
+ 'Sales Orders' => 'Ðакладні продажу',
+ 'Save' => 'Зберегти',
+ 'Save as new' => 'Зберегти Ñк нове',
+ 'Scheduled' => 'В розкладі',
+ 'Screen' => 'Екран',
+ 'Select from one of the names below' => 'Виберіть одну із наÑтупних назв',
+ 'Select items' => 'Виберіть елементи',
+ 'Select txt, postscript or PDF!' => 'Виберіть txt, postscript або PDF!',
+ 'Sell' => 'Продати',
+ 'Sell Price' => 'ВідпуÑкна Ціна',
+ 'Sep' => 'вереÑнÑ',
+ 'September' => 'ВереÑень',
+ 'Serial No.' => 'Серійний No.',
+ 'Serial Number' => 'Серійний номер',
+ 'Service' => 'ПоÑлуга',
+ 'Services' => 'ПоÑлуги',
+ 'Ship' => 'ВідіÑлати',
+ 'Ship to' => 'ВідіÑлати до',
+ 'Shipping Address' => 'ÐдреÑа Ð´Ð»Ñ Ð²Ñ–Ð´ÑиланнÑ',
+ 'Short' => 'Скорочено',
+ 'State/Province' => 'Штат/облаÑÑ‚ÑŒ',
+ 'Stock' => 'Інвентар',
+ 'Stock Assembly' => 'Інвентар комплекту',
+ 'Subject' => 'Тема',
+ 'Subtotal' => 'ПідÑумок по розділу',
+ 'Summary' => 'ЗведеннÑ',
+ 'Tax' => 'Податок',
+ 'Text' => 'ТекÑÑ‚',
+ 'To' => 'До',
+ 'Top Level' => 'Верхній Рівень',
+ 'Translation not on file!' => 'Переклад немає в файлі!',
+ 'Unit' => 'ОдиницÑ',
+ 'Update' => 'Оновити',
+ 'Updated' => 'Оновлено',
+ 'Vendor' => 'ПоÑтачальник',
+ 'Vendor Invoice' => 'Рахунок-фактура',
+ 'Vendor Invoices' => 'Рахунки-фактури',
+ 'Vendor Number' => 'Ðомер поÑтачальника',
+ 'Vendor not on file!' => 'Потачальника нема у ÑпиÑку ',
+ 'Warehouse' => 'Склад',
+ 'Weight' => 'Вага',
+ 'What type of item is this?' => 'Який це вид/тип елемента',
+ 'Work Order' => 'ÐарÑд',
+ 'Year' => 'Рік',
+ 'Zip/Postal Code' => 'Поштовий код',
+ 'days' => 'днів',
+ 'sent' => 'нідіÑлано',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'Додати_комплект' => 'add_assembly',
+ 'Додати_роботу_додаткові_витрати' => 'add_labor_overhead',
+ 'Ðовий_Товар' => 'add_part',
+ 'Ðова_поÑлуга' => 'add_service',
+ 'Продовжити' => 'continue',
+ 'Видалити' => 'delete',
+ 'Редагувати_комплект' => 'edit_assembly',
+ 'Редагувати_товар' => 'edit_part',
+ 'Редагувати_поÑлугу' => 'edit_service',
+ 'Зберегти' => 'save',
+ 'Зберегти_Ñк_нове' => 'save_as_new',
+ 'Оновити' => 'update',
+};
+
+1;
+
diff --git a/locale/ua_utf/io b/locale/ua_utf/io
new file mode 100755
index 00000000..aa0492fa
--- /dev/null
+++ b/locale/ua_utf/io
@@ -0,0 +1,135 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Add Purchase Order' => 'Ðове Ð·Ð°Ð¼Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð½Ð° купівлю',
+ 'Add Quotation' => 'КотируваннÑ',
+ 'Add Request for Quotation' => 'Додати запит на котируваннÑ',
+ 'Add Sales Order' => 'Ðове Ð·Ð°Ð¼Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð½Ð° продаж',
+ 'Address' => 'ÐдреÑа',
+ 'Apr' => 'квітнÑ',
+ 'April' => 'Квітень',
+ 'Attachment' => 'Додаток',
+ 'Aug' => 'ÑерпнÑ',
+ 'August' => 'Серпень',
+ 'Bcc' => 'Прих.копіÑ',
+ 'Billing Address' => 'ÐдреÑа Ð´Ð»Ñ Ð½Ð°Ð´ÑÐ¸Ð»Ð°Ð½Ð½Ñ Ñ€Ð°Ñ…ÑƒÐ½ÐºÑƒ',
+ 'Bin' => 'Корзина',
+ 'Bin List' => 'СпиÑок корзин',
+ 'Cc' => 'ÐšÐ¾Ð¿Ñ–Ñ Ð´Ð¾',
+ 'City' => 'МіÑто',
+ 'Company Name' => 'Ðазва підприємÑтва',
+ 'Contact' => 'Контактна оÑоба',
+ 'Continue' => 'Продовжити',
+ 'Copies' => 'Копій',
+ 'Country' => 'Країна',
+ 'Customer Number' => 'Ðомер клієнта',
+ 'Date' => 'Дата',
+ 'Dec' => 'груднÑ',
+ 'December' => 'Грудень',
+ 'Delivery Date' => 'Дата доÑтавки',
+ 'Description' => 'ОпиÑ',
+ 'E-mail' => 'Ел. пошта',
+ 'E-mail address missing!' => 'Ðе вказана адреÑа ел. пошти!',
+ 'E-mailed' => 'Ел. пошту відіÑлано',
+ 'Extended' => 'Продовжено',
+ 'Fax' => 'Фах',
+ 'Feb' => 'лютого',
+ 'February' => 'Лютий',
+ 'Group' => 'Група',
+ 'In-line' => 'Включено (In-line)',
+ 'Invoice' => 'Рахунок-фактура',
+ 'Invoice Date missing!' => 'Ðе вказана дата виÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ñ€Ð°Ñ…ÑƒÐ½ÐºÐ°-фактури',
+ 'Invoice Number missing!' => 'Ðе вказаний номер рахунка-фактури',
+ 'Item not on file!' => 'Речі нема в ÑпиÑку!',
+ 'Jan' => 'ÑічнÑ',
+ 'January' => 'Ñічень',
+ 'Jul' => 'липнÑ',
+ 'July' => 'Липень',
+ 'Jun' => 'червнÑ',
+ 'June' => 'Червень',
+ 'Mar' => 'березнÑ',
+ 'March' => 'Березень',
+ 'May' => 'травнÑ',
+ 'May ' => 'Травень',
+ 'Message' => 'ПовідомленнÑ',
+ 'Nov' => 'лиÑтопада',
+ 'November' => 'ЛиÑтопад',
+ 'Number' => 'Ðомер',
+ 'Number missing in Row' => 'Ðе вказаний номер у Ñ€Ñдку',
+ 'Oct' => 'жовтнÑ',
+ 'October' => 'Жовтень',
+ 'Order Date missing!' => 'Ðе вказано дату замовленнÑ!',
+ 'Order Number missing!' => 'ВідÑутній номер замовленнÑ',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Пакувальний ÑпиÑок',
+ 'Packing List Date missing!' => 'Ðе вказано дату пакувального ÑпиÑку',
+ 'Packing List Number missing!' => 'Ðе вказано номер пакувального ÑпиÑку',
+ 'Part' => 'ЧаÑтина',
+ 'Phone' => 'Тел.',
+ 'Pick List' => 'СпиÑок комплектуваннÑ',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Ціна',
+ 'Printed' => 'Ðадруковано',
+ 'Project' => 'Проект',
+ 'Purchase Order' => 'Купівельне замовленнÑ',
+ 'Qty' => 'КількіÑÑ‚ÑŒ',
+ 'Quotation' => 'КотируваннÑ',
+ 'Quotation Date missing!' => 'ВідÑÑƒÑ‚Ð½Ñ Ð´Ð°Ñ‚Ð° котируваннÑ!',
+ 'Quotation Number missing!' => 'ВідÑутній номер котируваннÑ!',
+ 'Recd' => 'Отримано',
+ 'Required by' => 'Термін доÑтавки',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Ðакладна продажу',
+ 'Scheduled' => 'В розкладі',
+ 'Screen' => 'Екран',
+ 'Select items' => 'Виберіть елементи',
+ 'Select txt, postscript or PDF!' => 'Виберіть txt, postscript або PDF!',
+ 'Sep' => 'вереÑнÑ',
+ 'September' => 'ВереÑень',
+ 'Serial No.' => 'Серійний No.',
+ 'Service' => 'ПоÑлуга',
+ 'Ship' => 'ВідіÑлати',
+ 'Ship to' => 'ВідіÑлати до',
+ 'Shipping Address' => 'ÐдреÑа Ð´Ð»Ñ Ð²Ñ–Ð´ÑиланнÑ',
+ 'State/Province' => 'Штат/облаÑÑ‚ÑŒ',
+ 'Subject' => 'Тема',
+ 'Subtotal' => 'ПідÑумок по розділу',
+ 'Text' => 'ТекÑÑ‚',
+ 'To' => 'До',
+ 'Translation not on file!' => 'Переклад немає в файлі!',
+ 'Unit' => 'ОдиницÑ',
+ 'Vendor Number' => 'Ðомер поÑтачальника',
+ 'What type of item is this?' => 'Який це вид/тип елемента',
+ 'Work Order' => 'ÐарÑд',
+ 'Zip/Postal Code' => 'Поштовий код',
+ 'sent' => 'нідіÑлано',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'Продовжити' => 'continue',
+};
+
+1;
+
diff --git a/locale/ua_utf/ir b/locale/ua_utf/ir
new file mode 100755
index 00000000..d54d1a69
--- /dev/null
+++ b/locale/ua_utf/ir
@@ -0,0 +1,251 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'Рахунок',
+ 'Accounting Menu' => 'Меню обліку',
+ 'Add Purchase Order' => 'Ðове Ð·Ð°Ð¼Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð½Ð° купівлю',
+ 'Add Quotation' => 'КотируваннÑ',
+ 'Add Request for Quotation' => 'Додати запит на котируваннÑ',
+ 'Add Sales Order' => 'Ðове Ð·Ð°Ð¼Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð½Ð° продаж',
+ 'Add Vendor Invoice' => 'Ðовий купівельний рахунок-фактура',
+ 'Address' => 'ÐдреÑа',
+ 'Amount' => 'Сума',
+ 'Apr' => 'квітнÑ',
+ 'April' => 'Квітень',
+ 'Are you sure you want to delete Invoice Number' => 'Ви певні, що хочете видалити даний рахунок?',
+ 'Attachment' => 'Додаток',
+ 'Aug' => 'ÑерпнÑ',
+ 'August' => 'Серпень',
+ 'Bcc' => 'Прих.копіÑ',
+ 'Billing Address' => 'ÐдреÑа Ð´Ð»Ñ Ð½Ð°Ð´ÑÐ¸Ð»Ð°Ð½Ð½Ñ Ñ€Ð°Ñ…ÑƒÐ½ÐºÑƒ',
+ 'Bin' => 'Корзина',
+ 'Bin List' => 'СпиÑок корзин',
+ 'Cannot delete invoice!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ рахунок-фактуру!',
+ 'Cannot post invoice for a closed period!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ñтавити рахунок-фактуру Ð´Ð»Ñ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ð¾Ð³Ð¾ періоду!',
+ 'Cannot post invoice!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ñтавити рахунок-фактуру!',
+ 'Cannot post payment for a closed period!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ñтавити платіж Ð´Ð»Ñ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ð¾Ð³Ð¾ періоду!',
+ 'Cc' => 'ÐšÐ¾Ð¿Ñ–Ñ Ð´Ð¾',
+ 'City' => 'МіÑто',
+ 'Company Name' => 'Ðазва підприємÑтва',
+ 'Confirm!' => 'Підтвердіть!',
+ 'Contact' => 'Контактна оÑоба',
+ 'Continue' => 'Продовжити',
+ 'Copies' => 'Копій',
+ 'Country' => 'Країна',
+ 'Credit Limit' => 'Ліміт кредиту',
+ 'Currency' => 'Валюта',
+ 'Customer Number' => 'Ðомер клієнта',
+ 'Customer not on file!' => 'Клієнта нема в ÑпиÑку!',
+ 'Date' => 'Дата',
+ 'Dec' => 'груднÑ',
+ 'December' => 'Грудень',
+ 'Delete' => 'Видалити',
+ 'Delete Schedule' => 'Видалити розклад',
+ 'Delivery Date' => 'Дата доÑтавки',
+ 'Department' => 'Відділ',
+ 'Description' => 'ОпиÑ',
+ 'Due Date' => 'Заплатити до',
+ 'E-mail' => 'Ел. пошта',
+ 'E-mail address missing!' => 'Ðе вказана адреÑа ел. пошти!',
+ 'E-mail message' => 'ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ ÐµÐ». пошти',
+ 'E-mailed' => 'Ел. пошту відіÑлано',
+ 'Edit Vendor Invoice' => 'Редагувати купівельний рахунок-фактуру',
+ 'Every' => 'Кожні',
+ 'Exch' => 'КурÑ',
+ 'Exchange Rate' => 'ÐšÑƒÑ€Ñ Ð²Ð°Ð»ÑŽÑ‚Ð¸',
+ 'Exchange rate for payment missing!' => 'Ðе вказаний ÐºÑƒÑ€Ñ Ð²Ð°Ð»ÑŽÑ‚Ð¸ Ð´Ð»Ñ Ð¿Ð»Ð°Ñ‚ÐµÐ¶Ñƒ!',
+ 'Exchange rate missing!' => 'Ðе вказаний ÐºÑƒÑ€Ñ Ð²Ð°Ð»ÑŽÑ‚Ð¸!',
+ 'Extended' => 'Продовжено',
+ 'Fax' => 'Фах',
+ 'Feb' => 'лютого',
+ 'February' => 'Лютий',
+ 'For' => 'ДлÑ',
+ 'Group' => 'Група',
+ 'In-line' => 'Включено (In-line)',
+ 'Include Payment' => 'Включити плтіж',
+ 'Internal Notes' => 'Внутрішні примітки',
+ 'Invoice' => 'Рахунок-фактура',
+ 'Invoice Date' => 'Дата виÑтавленнÑ',
+ 'Invoice Date missing!' => 'Ðе вказана дата виÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ñ€Ð°Ñ…ÑƒÐ½ÐºÐ°-фактури',
+ 'Invoice Number' => 'Ðомер рахунка-фактури',
+ 'Invoice Number missing!' => 'Ðе вказаний номер рахунка-фактури',
+ 'Invoice deleted!' => 'Рахунок-фактура видалений!',
+ 'Item not on file!' => 'Речі нема в ÑпиÑку!',
+ 'Jan' => 'ÑічнÑ',
+ 'January' => 'Ñічень',
+ 'Jul' => 'липнÑ',
+ 'July' => 'Липень',
+ 'Jun' => 'червнÑ',
+ 'June' => 'Червень',
+ 'Language' => 'Мова',
+ 'Mar' => 'березнÑ',
+ 'March' => 'Березень',
+ 'May' => 'травнÑ',
+ 'May ' => 'Травень',
+ 'Memo' => 'Ðотатка',
+ 'Message' => 'ПовідомленнÑ',
+ 'Next Date' => 'ÐаÑтупна дата',
+ 'Notes' => 'Примітки',
+ 'Nov' => 'лиÑтопада',
+ 'November' => 'ЛиÑтопад',
+ 'Number' => 'Ðомер',
+ 'Number missing in Row' => 'Ðе вказаний номер у Ñ€Ñдку',
+ 'Oct' => 'жовтнÑ',
+ 'October' => 'Жовтень',
+ 'Order Date missing!' => 'Ðе вказано дату замовленнÑ!',
+ 'Order Number' => 'Ðомер замовленнÑ',
+ 'Order Number missing!' => 'ВідÑутній номер замовленнÑ',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ðомер купівельного замовленнÑ',
+ 'Packing List' => 'Пакувальний ÑпиÑок',
+ 'Packing List Date missing!' => 'Ðе вказано дату пакувального ÑпиÑку',
+ 'Packing List Number missing!' => 'Ðе вказано номер пакувального ÑпиÑку',
+ 'Part' => 'ЧаÑтина',
+ 'Payment date missing!' => 'Ðе вказано дату Платежу!',
+ 'Payments' => 'Платежі',
+ 'Phone' => 'Тел.',
+ 'Pick List' => 'СпиÑок комплектуваннÑ',
+ 'Post' => 'ВиÑтавити',
+ 'Post as new' => 'ВиÑтавити Ñк новий',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Ціна',
+ 'Print' => 'Ðадрукувати',
+ 'Printed' => 'Ðадруковано',
+ 'Project' => 'Проект',
+ 'Project not on file!' => 'Проекту нема в ÑпиÑку!',
+ 'Purchase Order' => 'Купівельне замовленнÑ',
+ 'Qty' => 'КількіÑÑ‚ÑŒ',
+ 'Quotation' => 'КотируваннÑ',
+ 'Quotation Date missing!' => 'ВідÑÑƒÑ‚Ð½Ñ Ð´Ð°Ñ‚Ð° котируваннÑ!',
+ 'Quotation Number missing!' => 'ВідÑутній номер котируваннÑ!',
+ 'Recd' => 'Отримано',
+ 'Record in' => 'ВнеÑти в',
+ 'Recurring Transaction' => 'Періодична проводка',
+ 'Reference' => 'ПоÑиланнÑ',
+ 'Remaining' => 'ЗалишилоÑÑŒ',
+ 'Repeat' => 'Повторити',
+ 'Required by' => 'Термін доÑтавки',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Ðакладна продажу',
+ 'Save Schedule' => 'Зберегти розклад',
+ 'Schedule' => 'Розклад',
+ 'Scheduled' => 'В розкладі',
+ 'Screen' => 'Екран',
+ 'Select from one of the names below' => 'Виберіть одну із наÑтупних назв',
+ 'Select from one of the projects below' => 'Виберіть один із наÑтупних проектів',
+ 'Select items' => 'Виберіть елементи',
+ 'Select txt, postscript or PDF!' => 'Виберіть txt, postscript або PDF!',
+ 'Sep' => 'вереÑнÑ',
+ 'September' => 'ВереÑень',
+ 'Serial No.' => 'Серійний No.',
+ 'Service' => 'ПоÑлуга',
+ 'Ship' => 'ВідіÑлати',
+ 'Ship to' => 'ВідіÑлати до',
+ 'Shipping Address' => 'ÐдреÑа Ð´Ð»Ñ Ð²Ñ–Ð´ÑиланнÑ',
+ 'Source' => 'Джерело',
+ 'Startdate' => 'Дата початку',
+ 'State/Province' => 'Штат/облаÑÑ‚ÑŒ',
+ 'Subject' => 'Тема',
+ 'Subtotal' => 'ПідÑумок по розділу',
+ 'Tax Included' => 'Податок включено',
+ 'Text' => 'ТекÑÑ‚',
+ 'To' => 'До',
+ 'Total' => 'Загальна Сума',
+ 'Translation not on file!' => 'Переклад немає в файлі!',
+ 'Unit' => 'ОдиницÑ',
+ 'Update' => 'Оновити',
+ 'Vendor' => 'ПоÑтачальник',
+ 'Vendor Number' => 'Ðомер поÑтачальника',
+ 'Vendor missing!' => 'ПоÑтачальник не Ñ–Ñнує',
+ 'Vendor not on file!' => 'Потачальника нема у ÑпиÑку ',
+ 'Warning!' => 'ПопередженнÑ!',
+ 'What type of item is this?' => 'Який це вид/тип елемента',
+ 'Work Order' => 'ÐарÑд',
+ 'Yes' => 'Tak',
+ 'You are posting an existing transaction!' => 'Ви виÑтавлÑєте проводку, Ñка вже Ñ–Ñнує!',
+ 'You are printing and posting an existing transaction!' => 'Ви друкуєте Ñ– зберігаєте проводку, Ñка вже Ñ–Ñнує!',
+ 'You are printing and saving an existing order' => 'Ви друкуєте Ñ– зберігаєте замовленнÑ, Ñке вже Ñ–Ñнує!',
+ 'You are printing and saving an existing quotation' => 'Ви друкуєте Ñ– зберігаєте котировку, Ñка вже Ñ–Ñнує!',
+ 'You are saving an existing order' => 'Ви зберігаєте замовленнÑ, Ñке вже Ñ–Ñнує!',
+ 'You are saving an existing quotation' => 'Ви зберігаєте котировку, Ñка вже Ñ–Ñнує!',
+ 'Zip/Postal Code' => 'Поштовий код',
+ 'ea' => 'шт.',
+ 'for' => 'длÑ',
+ 'posted!' => 'виÑтавлено!',
+ 'sent' => 'нідіÑлано',
+ 'time(s)' => 'раз(ів)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'Продовжити' => 'continue',
+ 'Видалити' => 'delete',
+ 'Видалити_розклад' => 'delete_schedule',
+ 'ВиÑтавити' => 'post',
+ 'ВиÑтавити_Ñк_новий' => 'post_as_new',
+ 'Купівельне_замовленнÑ' => 'purchase_order',
+ 'Зберегти_розклад' => 'save_schedule',
+ 'Розклад' => 'schedule',
+ 'Оновити' => 'update',
+ 'tak' => 'yes',
+};
+
+1;
+
diff --git a/locale/ua_utf/is b/locale/ua_utf/is
new file mode 100755
index 00000000..b5df468e
--- /dev/null
+++ b/locale/ua_utf/is
@@ -0,0 +1,262 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'Рахунок',
+ 'Accounting Menu' => 'Меню обліку',
+ 'Add Purchase Order' => 'Ðове Ð·Ð°Ð¼Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð½Ð° купівлю',
+ 'Add Quotation' => 'КотируваннÑ',
+ 'Add Request for Quotation' => 'Додати запит на котируваннÑ',
+ 'Add Sales Invoice' => 'Ðовий Рахуно-фактура',
+ 'Add Sales Order' => 'Ðове Ð·Ð°Ð¼Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð½Ð° продаж',
+ 'Address' => 'ÐдреÑа',
+ 'Amount' => 'Сума',
+ 'Apr' => 'квітнÑ',
+ 'April' => 'Квітень',
+ 'Are you sure you want to delete Invoice Number' => 'Ви певні, що хочете видалити даний рахунок?',
+ 'Attachment' => 'Додаток',
+ 'Aug' => 'ÑерпнÑ',
+ 'August' => 'Серпень',
+ 'Bcc' => 'Прих.копіÑ',
+ 'Billing Address' => 'ÐдреÑа Ð´Ð»Ñ Ð½Ð°Ð´ÑÐ¸Ð»Ð°Ð½Ð½Ñ Ñ€Ð°Ñ…ÑƒÐ½ÐºÑƒ',
+ 'Bin' => 'Корзина',
+ 'Bin List' => 'СпиÑок корзин',
+ 'Business' => 'БізнеÑ',
+ 'Cannot delete invoice!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ рахунок-фактуру!',
+ 'Cannot post invoice for a closed period!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ñтавити рахунок-фактуру Ð´Ð»Ñ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ð¾Ð³Ð¾ періоду!',
+ 'Cannot post invoice!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ñтавити рахунок-фактуру!',
+ 'Cannot post payment for a closed period!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ñтавити платіж Ð´Ð»Ñ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ð¾Ð³Ð¾ періоду!',
+ 'Cc' => 'ÐšÐ¾Ð¿Ñ–Ñ Ð´Ð¾',
+ 'City' => 'МіÑто',
+ 'Company Name' => 'Ðазва підприємÑтва',
+ 'Confirm!' => 'Підтвердіть!',
+ 'Contact' => 'Контактна оÑоба',
+ 'Continue' => 'Продовжити',
+ 'Copies' => 'Копій',
+ 'Country' => 'Країна',
+ 'Credit Limit' => 'Ліміт кредиту',
+ 'Currency' => 'Валюта',
+ 'Customer' => 'Клієнт',
+ 'Customer Number' => 'Ðомер клієнта',
+ 'Customer missing!' => 'Ðе вказаний клієнт!',
+ 'Customer not on file!' => 'Клієнта нема в ÑпиÑку!',
+ 'Date' => 'Дата',
+ 'Dec' => 'груднÑ',
+ 'December' => 'Грудень',
+ 'Delete' => 'Видалити',
+ 'Delete Schedule' => 'Видалити розклад',
+ 'Delivery Date' => 'Дата доÑтавки',
+ 'Department' => 'Відділ',
+ 'Description' => 'ОпиÑ',
+ 'Due Date' => 'Заплатити до',
+ 'E-mail' => 'Ел. пошта',
+ 'E-mail address missing!' => 'Ðе вказана адреÑа ел. пошти!',
+ 'E-mail message' => 'ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ ÐµÐ». пошти',
+ 'E-mailed' => 'Ел. пошту відіÑлано',
+ 'Edit Sales Invoice' => 'Редагувати рахунок-фактуру',
+ 'Every' => 'Кожні',
+ 'Exch' => 'КурÑ',
+ 'Exchange Rate' => 'ÐšÑƒÑ€Ñ Ð²Ð°Ð»ÑŽÑ‚Ð¸',
+ 'Exchange rate for payment missing!' => 'Ðе вказаний ÐºÑƒÑ€Ñ Ð²Ð°Ð»ÑŽÑ‚Ð¸ Ð´Ð»Ñ Ð¿Ð»Ð°Ñ‚ÐµÐ¶Ñƒ!',
+ 'Exchange rate missing!' => 'Ðе вказаний ÐºÑƒÑ€Ñ Ð²Ð°Ð»ÑŽÑ‚Ð¸!',
+ 'Extended' => 'Продовжено',
+ 'Fax' => 'Фах',
+ 'Feb' => 'лютого',
+ 'February' => 'Лютий',
+ 'For' => 'ДлÑ',
+ 'Group' => 'Група',
+ 'In-line' => 'Включено (In-line)',
+ 'Include Payment' => 'Включити плтіж',
+ 'Internal Notes' => 'Внутрішні примітки',
+ 'Invoice' => 'Рахунок-фактура',
+ 'Invoice Date' => 'Дата виÑтавленнÑ',
+ 'Invoice Date missing!' => 'Ðе вказана дата виÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ñ€Ð°Ñ…ÑƒÐ½ÐºÐ°-фактури',
+ 'Invoice Number' => 'Ðомер рахунка-фактури',
+ 'Invoice Number missing!' => 'Ðе вказаний номер рахунка-фактури',
+ 'Invoice deleted!' => 'Рахунок-фактура видалений!',
+ 'Item not on file!' => 'Речі нема в ÑпиÑку!',
+ 'Jan' => 'ÑічнÑ',
+ 'January' => 'Ñічень',
+ 'Jul' => 'липнÑ',
+ 'July' => 'Липень',
+ 'Jun' => 'червнÑ',
+ 'June' => 'Червень',
+ 'Mar' => 'березнÑ',
+ 'March' => 'Березень',
+ 'May' => 'травнÑ',
+ 'May ' => 'Травень',
+ 'Memo' => 'Ðотатка',
+ 'Message' => 'ПовідомленнÑ',
+ 'Next Date' => 'ÐаÑтупна дата',
+ 'Notes' => 'Примітки',
+ 'Nov' => 'лиÑтопада',
+ 'November' => 'ЛиÑтопад',
+ 'Number' => 'Ðомер',
+ 'Number missing in Row' => 'Ðе вказаний номер у Ñ€Ñдку',
+ 'Oct' => 'жовтнÑ',
+ 'October' => 'Жовтень',
+ 'Order Date missing!' => 'Ðе вказано дату замовленнÑ!',
+ 'Order Number' => 'Ðомер замовленнÑ',
+ 'Order Number missing!' => 'ВідÑутній номер замовленнÑ',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ðомер купівельного замовленнÑ',
+ 'Packing List' => 'Пакувальний ÑпиÑок',
+ 'Packing List Date missing!' => 'Ðе вказано дату пакувального ÑпиÑку',
+ 'Packing List Number missing!' => 'Ðе вказано номер пакувального ÑпиÑку',
+ 'Part' => 'ЧаÑтина',
+ 'Payment date missing!' => 'Ðе вказано дату Платежу!',
+ 'Payments' => 'Платежі',
+ 'Phone' => 'Тел.',
+ 'Pick List' => 'СпиÑок комплектуваннÑ',
+ 'Post' => 'ВиÑтавити',
+ 'Post as new' => 'ВиÑтавити Ñк новий',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Ціна',
+ 'Print' => 'Ðадрукувати',
+ 'Print and Post' => 'Ðадрукувати Ñ– виÑтавити',
+ 'Printed' => 'Ðадруковано',
+ 'Project' => 'Проект',
+ 'Project not on file!' => 'Проекту нема в ÑпиÑку!',
+ 'Purchase Order' => 'Купівельне замовленнÑ',
+ 'Qty' => 'КількіÑÑ‚ÑŒ',
+ 'Quotation' => 'КотируваннÑ',
+ 'Quotation Date missing!' => 'ВідÑÑƒÑ‚Ð½Ñ Ð´Ð°Ñ‚Ð° котируваннÑ!',
+ 'Quotation Number missing!' => 'ВідÑутній номер котируваннÑ!',
+ 'Recd' => 'Отримано',
+ 'Record in' => 'ВнеÑти в',
+ 'Recurring Transaction' => 'Періодична проводка',
+ 'Reference' => 'ПоÑиланнÑ',
+ 'Remaining' => 'ЗалишилоÑÑŒ',
+ 'Repeat' => 'Повторити',
+ 'Required by' => 'Термін доÑтавки',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Ðакладна продажу',
+ 'Salesperson' => 'Торговець/предÑтавник',
+ 'Save Schedule' => 'Зберегти розклад',
+ 'Schedule' => 'Розклад',
+ 'Scheduled' => 'В розкладі',
+ 'Screen' => 'Екран',
+ 'Select from one of the names below' => 'Виберіть одну із наÑтупних назв',
+ 'Select from one of the projects below' => 'Виберіть один із наÑтупних проектів',
+ 'Select items' => 'Виберіть елементи',
+ 'Select postscript or PDF!' => 'Виберіть postscript або PDF',
+ 'Select txt, postscript or PDF!' => 'Виберіть txt, postscript або PDF!',
+ 'Sep' => 'вереÑнÑ',
+ 'September' => 'ВереÑень',
+ 'Serial No.' => 'Серійний No.',
+ 'Service' => 'ПоÑлуга',
+ 'Ship' => 'ВідіÑлати',
+ 'Ship to' => 'ВідіÑлати до',
+ 'Ship via' => 'ВідіÑлати через',
+ 'Shipping Address' => 'ÐдреÑа Ð´Ð»Ñ Ð²Ñ–Ð´ÑиланнÑ',
+ 'Shipping Point' => 'Пункт відÑиланнÑ',
+ 'Source' => 'Джерело',
+ 'Startdate' => 'Дата початку',
+ 'State/Province' => 'Штат/облаÑÑ‚ÑŒ',
+ 'Subject' => 'Тема',
+ 'Subtotal' => 'ПідÑумок по розділу',
+ 'Tax Included' => 'Податок включено',
+ 'Text' => 'ТекÑÑ‚',
+ 'To' => 'До',
+ 'Total' => 'Загальна Сума',
+ 'Trade Discount' => 'Торгова знижка',
+ 'Translation not on file!' => 'Переклад немає в файлі!',
+ 'Unit' => 'ОдиницÑ',
+ 'Update' => 'Оновити',
+ 'Vendor Number' => 'Ðомер поÑтачальника',
+ 'Vendor not on file!' => 'Потачальника нема у ÑпиÑку ',
+ 'Warning!' => 'ПопередженнÑ!',
+ 'What type of item is this?' => 'Який це вид/тип елемента',
+ 'Work Order' => 'ÐарÑд',
+ 'Yes' => 'Tak',
+ 'You are posting an existing transaction!' => 'Ви виÑтавлÑєте проводку, Ñка вже Ñ–Ñнує!',
+ 'You are printing and posting an existing transaction!' => 'Ви друкуєте Ñ– зберігаєте проводку, Ñка вже Ñ–Ñнує!',
+ 'You are printing and saving an existing order' => 'Ви друкуєте Ñ– зберігаєте замовленнÑ, Ñке вже Ñ–Ñнує!',
+ 'You are printing and saving an existing quotation' => 'Ви друкуєте Ñ– зберігаєте котировку, Ñка вже Ñ–Ñнує!',
+ 'You are saving an existing order' => 'Ви зберігаєте замовленнÑ, Ñке вже Ñ–Ñнує!',
+ 'You are saving an existing quotation' => 'Ви зберігаєте котировку, Ñка вже Ñ–Ñнує!',
+ 'Zip/Postal Code' => 'Поштовий код',
+ 'ea' => 'шт.',
+ 'for' => 'длÑ',
+ 'posted!' => 'виÑтавлено!',
+ 'sent' => 'нідіÑлано',
+ 'time(s)' => 'раз(ів)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'Продовжити' => 'continue',
+ 'Видалити' => 'delete',
+ 'Видалити_розклад' => 'delete_schedule',
+ 'Ел._пошта' => 'e_mail',
+ 'ВиÑтавити' => 'post',
+ 'ВиÑтавити_Ñк_новий' => 'post_as_new',
+ 'Ðадрукувати' => 'print',
+ 'Ðадрукувати_Ñ–_виÑтавити' => 'print_and_post',
+ 'Ðакладна_продажу' => 'sales_order',
+ 'Зберегти_розклад' => 'save_schedule',
+ 'Розклад' => 'schedule',
+ 'ВідіÑлати_до' => 'ship_to',
+ 'Оновити' => 'update',
+ 'tak' => 'yes',
+};
+
+1;
+
diff --git a/locale/ua_utf/jc b/locale/ua_utf/jc
new file mode 100755
index 00000000..93be1cab
--- /dev/null
+++ b/locale/ua_utf/jc
@@ -0,0 +1,94 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Меню обліку',
+ 'Amount' => 'Сума',
+ 'Closed' => 'Закрито',
+ 'Confirm!' => 'Підтвердіть!',
+ 'Continue' => 'Продовжити',
+ 'Cost' => 'Затрати',
+ 'Current' => 'Поточний',
+ 'Date' => 'Дата',
+ 'Date missing!' => 'Ðе вказана дата!',
+ 'Delete' => 'Видалити',
+ 'Description' => 'ОпиÑ',
+ 'Employee' => 'Працівник',
+ 'From' => 'Від/З',
+ 'ID' => 'Ідентифікаційний номер',
+ 'Include in Report' => 'Додати до звіту',
+ 'Month' => 'МіÑÑць',
+ 'Notes' => 'Примітки',
+ 'Open' => 'Відкрито',
+ 'PDF' => 'PDF',
+ 'Period' => 'Період',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Ðадрукувати',
+ 'Print and Save' => 'Ðадрукувати Ñ– зберегти',
+ 'Printed' => 'Ðадруковано',
+ 'Project Number' => 'Ðомер проекту',
+ 'Project Number missing!' => 'Ðе вказаний номер проекту!',
+ 'Qty' => 'КількіÑÑ‚ÑŒ',
+ 'Quarter' => 'Квартал',
+ 'Save' => 'Зберегти',
+ 'Save as new' => 'Зберегти Ñк нове',
+ 'Screen' => 'Екран',
+ 'Select postscript or PDF!' => 'Виберіть postscript або PDF',
+ 'Startdate' => 'Дата початку',
+ 'Subtotal' => 'ПідÑумок по розділу',
+ 'To' => 'До',
+ 'Total' => 'Загальна Сума',
+ 'Update' => 'Оновити',
+ 'Warning!' => 'ПопередженнÑ!',
+ 'Year' => 'Рік',
+ 'Yes' => 'Tak',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'Продовжити' => 'continue',
+ 'Видалити' => 'delete',
+ 'Ðадрукувати' => 'print',
+ 'Ðадрукувати_Ñ–_зберегти' => 'print_and_save',
+ 'Зберегти' => 'save',
+ 'Зберегти_Ñк_нове' => 'save_as_new',
+ 'Оновити' => 'update',
+ 'tak' => 'yes',
+};
+
+1;
+
diff --git a/locale/ua_utf/locales.pl b/locale/ua_utf/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/ua_utf/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/ua_utf/login b/locale/ua_utf/login
new file mode 100755
index 00000000..453f835b
--- /dev/null
+++ b/locale/ua_utf/login
@@ -0,0 +1,26 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Company' => 'ПідприємÑтво',
+ 'Continue' => 'Продовжити',
+ 'Dataset is newer than version!' => 'База даних новіша ніж верÑÑ–Ñ!',
+ 'Incorrect Dataset version!' => 'Ðевірна верÑÑ–Ñ Ð‘Ð°Ð·Ð¸ Даних!',
+ 'Login' => 'Вхід',
+ 'Name' => 'Ðазва',
+ 'Password' => 'Пароль',
+ 'Upgrading to Version' => 'ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð¾ верÑÑ–Ñ—',
+ 'Version' => 'ВерÑÑ–Ñ',
+ 'You did not enter a name!' => 'Ðе введено назву!',
+ 'done' => 'завершено',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ 'Вхід' => 'login',
+};
+
+1;
+
diff --git a/locale/ua_utf/menu b/locale/ua_utf/menu
new file mode 100755
index 00000000..80fb6359
--- /dev/null
+++ b/locale/ua_utf/menu
@@ -0,0 +1,137 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP' => 'Витрати',
+ 'AP Aging' => 'Ð¡Ñ‚Ð°Ñ€Ñ–Ð½Ð½Ñ Ñ€Ð°Ñ…ÑƒÐ½ÐºÑ–Ð² витрат',
+ 'AP Transaction' => 'Проводка витрат',
+ 'AR' => 'Доходи',
+ 'AR Aging' => 'Ð¡Ñ‚Ð°Ñ€Ñ–Ð½Ð½Ñ Ñ€Ð°Ñ…ÑƒÐ½ÐºÑ–Ð² доходів',
+ 'AR Transaction' => 'Проводка доходів',
+ 'Accounting Menu' => 'Меню обліку',
+ 'Add Account' => 'Додати рахунок',
+ 'Add Assembly' => 'Додати комплект',
+ 'Add Business' => 'Додати бізнеÑ',
+ 'Add Customer' => 'Ðовий клієнт',
+ 'Add Department' => 'Додати відділ',
+ 'Add Employee' => 'Додати працівника',
+ 'Add GIFI' => 'Ðовий GIFI',
+ 'Add Group' => 'Додати групу',
+ 'Add Labor/Overhead' => 'Додати роботу/додаткові витрати',
+ 'Add Language' => 'Додати мову',
+ 'Add Part' => 'Ðовий Товар',
+ 'Add Pricegroup' => 'Додати цінову групу',
+ 'Add Project' => 'Ðовий Проект',
+ 'Add SIC' => 'Додати SIC',
+ 'Add Service' => 'Ðова поÑлуга',
+ 'Add Transaction' => 'Ðова проводка',
+ 'Add Vendor' => 'Ðовий поÑтачальник',
+ 'Add Warehouse' => 'Додати Ñклад',
+ 'All Items' => 'Ð’ÑÑ– елементи',
+ 'Assemblies' => 'Комплекти',
+ 'Audit Control' => 'Контроль',
+ 'Backup' => 'Резервна копіÑ',
+ 'Balance Sheet' => 'БаланÑ-зведеннÑ',
+ 'Bin List' => 'СпиÑок корзин',
+ 'Bin Lists' => 'СпиÑки корзин',
+ 'Cash' => 'Готівка',
+ 'Chart of Accounts' => 'План Рахунків',
+ 'Check' => 'Чек',
+ 'Components' => 'Компоненти',
+ 'Customers' => 'Клієнти',
+ 'Defaults' => 'Типові значеннÑ',
+ 'Departments' => 'Відділи',
+ 'Description' => 'ОпиÑ',
+ 'Employees' => 'Працівники',
+ 'General Ledger' => 'Головна книга',
+ 'Generate' => 'Створити',
+ 'Goods & Services' => 'Товари Ñ– ПоÑлуги',
+ 'Groups' => 'Групи',
+ 'HR' => 'HR',
+ 'HTML Templates' => 'HTML Шаблони ',
+ 'History' => 'ІÑторіÑ',
+ 'Income Statement' => 'Звіт про доходи і видатки',
+ 'Invoice' => 'Рахунок-фактура',
+ 'LaTeX Templates' => 'Шаблони LaTeX',
+ 'Labor/Overhead' => 'Робота/додаткові витрати',
+ 'Language' => 'Мова',
+ 'List Accounts' => 'СпиÑок Рахунків',
+ 'List Businesses' => 'СпиÑок бізнеÑів',
+ 'List Departments' => 'СпиÑок відділів',
+ 'List GIFI' => 'СпиÑок GIFI',
+ 'List Languages' => 'СпиÑок мов',
+ 'List Projects' => 'СпиÑок проектів',
+ 'List SIC' => 'СпиÑок SIC',
+ 'List Warehouses' => 'СпиÑок Ñкладів',
+ 'Logout' => 'Вихід',
+ 'New Window' => 'Ðове вікно',
+ 'Non-taxable' => 'Ðе оподатковуєтьÑÑ',
+ 'Open' => 'Відкрито',
+ 'Order Entry' => 'ВиÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð·Ð°Ð¼Ð¾Ð²Ð»ÐµÐ½Ð½Ñ',
+ 'Outstanding' => 'Ðе Ñплачено',
+ 'Packing List' => 'Пакувальний ÑпиÑок',
+ 'Packing Lists' => 'Пакувальні ÑпиÑки',
+ 'Parts' => 'товари',
+ 'Payment' => 'Платіж',
+ 'Payments' => 'Платежі',
+ 'Pick List' => 'СпиÑок комплектуваннÑ',
+ 'Pick Lists' => 'СпиÑки комплектуваннÑ',
+ 'Preferences' => 'Параметри',
+ 'Pricegroups' => 'Цінові групи',
+ 'Print' => 'Ðадрукувати',
+ 'Projects' => 'Проекти',
+ 'Purchase Order' => 'Купівельне замовленнÑ',
+ 'Purchase Orders' => 'Купівельні замовленнÑ',
+ 'Quotation' => 'КотируваннÑ',
+ 'Quotations' => 'КотируваннÑ',
+ 'RFQ' => 'RFQ',
+ 'RFQs' => 'RFQs',
+ 'Receipt' => 'КвитанціÑ',
+ 'Receipts' => 'Квитанції',
+ 'Receive' => 'Отримати',
+ 'Reconciliation' => 'УзгодженнÑ',
+ 'Recurring Transactions' => 'Періодичні проводки',
+ 'Reports' => 'Звіти',
+ 'SIC' => 'SIC',
+ 'Sale' => 'Продаж',
+ 'Sales Invoice' => 'Рахунок-фактура',
+ 'Sales Invoices' => 'Рахунки-фактури',
+ 'Sales Order' => 'Ðакладна продажу',
+ 'Sales Orders' => 'Ðакладні продажу',
+ 'Save to File' => 'Зберегти у Файлі',
+ 'Search' => 'Пошук',
+ 'Send by E-Mail' => 'ВиÑлати по ел. пошті',
+ 'Services' => 'ПоÑлуги',
+ 'Ship' => 'ВідіÑлати',
+ 'Shipping' => 'ВідіÑиланнÑ',
+ 'Statement' => 'Звіт',
+ 'Stock Assembly' => 'Інвентар комплекту',
+ 'Stylesheet' => 'ОформленннÑ',
+ 'System' => 'СиÑтема',
+ 'Tax collected' => 'Податок зібрано',
+ 'Tax paid' => 'Податок заплачено',
+ 'Text Templates' => 'ТекÑтові шаблони',
+ 'Transactions' => 'Проводки',
+ 'Transfer' => 'ПеренеÑеннÑ',
+ 'Transfer Inventory' => 'ПеренеÑти інвентар',
+ 'Translations' => 'Переклади',
+ 'Trial Balance' => 'Пробний баланÑ',
+ 'Type of Business' => 'Тип бізнеÑу',
+ 'Vendor Invoice' => 'Рахунок-фактура',
+ 'Vendors' => 'ПоÑтачальники',
+ 'Version' => 'ВерÑÑ–Ñ',
+ 'Warehouses' => 'Склади',
+ 'Work Order' => 'ÐарÑд',
+ 'Work Orders' => 'ÐарÑди',
+ 'Yearend' => 'Кінець року',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/ua_utf/oe b/locale/ua_utf/oe
new file mode 100755
index 00000000..55b941a0
--- /dev/null
+++ b/locale/ua_utf/oe
@@ -0,0 +1,356 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Меню обліку',
+ 'Add Exchange Rate' => 'Додати курÑ',
+ 'Add Purchase Order' => 'Ðове Ð·Ð°Ð¼Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð½Ð° купівлю',
+ 'Add Quotation' => 'КотируваннÑ',
+ 'Add Request for Quotation' => 'Додати запит на котируваннÑ',
+ 'Add Sales Invoice' => 'Ðовий Рахуно-фактура',
+ 'Add Sales Order' => 'Ðове Ð·Ð°Ð¼Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð½Ð° продаж',
+ 'Add Vendor Invoice' => 'Ðовий купівельний рахунок-фактура',
+ 'Address' => 'ÐдреÑа',
+ 'Amount' => 'Сума',
+ 'Apr' => 'квітнÑ',
+ 'April' => 'Квітень',
+ 'Are you sure you want to delete Order Number' => 'Ви певні, що хочете видалити дане замовленнÑ?',
+ 'Are you sure you want to delete Quotation Number' => 'Ви певні, що хочете видалити номер котируваннÑ?',
+ 'Attachment' => 'Додаток',
+ 'Aug' => 'ÑерпнÑ',
+ 'August' => 'Серпень',
+ 'Bcc' => 'Прих.копіÑ',
+ 'Billing Address' => 'ÐдреÑа Ð´Ð»Ñ Ð½Ð°Ð´ÑÐ¸Ð»Ð°Ð½Ð½Ñ Ñ€Ð°Ñ…ÑƒÐ½ÐºÑƒ',
+ 'Bin' => 'Корзина',
+ 'Bin List' => 'СпиÑок корзин',
+ 'Business' => 'БізнеÑ',
+ 'C' => 'С',
+ 'Cannot delete order!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ замовленнÑ!',
+ 'Cannot delete quotation!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ котируваннÑ!',
+ 'Cannot save order!' => 'Ðе вдаєтьÑÑ Ð·Ð±ÐµÑ€ÐµÐ³Ñ‚Ð¸ замовленнÑ!',
+ 'Cannot save quotation!' => 'Ðе вдаєтьÑÑ Ð·Ð±ÐµÑ€ÐµÐ³Ñ‚Ð¸ котируваннÑ!',
+ 'Cc' => 'ÐšÐ¾Ð¿Ñ–Ñ Ð´Ð¾',
+ 'City' => 'МіÑто',
+ 'Closed' => 'Закрито',
+ 'Company Name' => 'Ðазва підприємÑтва',
+ 'Confirm!' => 'Підтвердіть!',
+ 'Contact' => 'Контактна оÑоба',
+ 'Continue' => 'Продовжити',
+ 'Copies' => 'Копій',
+ 'Cost' => 'Затрати',
+ 'Could not save!' => 'Ðе вдалоÑÑŒ зберегти!',
+ 'Could not transfer Inventory!' => 'Ðе вдалоÑÑŒ перевеÑти інвентар!',
+ 'Country' => 'Країна',
+ 'Credit Limit' => 'Ліміт кредиту',
+ 'Curr' => 'Валюта',
+ 'Currency' => 'Валюта',
+ 'Current' => 'Поточний',
+ 'Customer' => 'Клієнт',
+ 'Customer Number' => 'Ðомер клієнта',
+ 'Customer missing!' => 'Ðе вказаний клієнт!',
+ 'Customer not on file!' => 'Клієнта нема в ÑпиÑку!',
+ 'Date' => 'Дата',
+ 'Date Received' => 'Дата отриманнÑ',
+ 'Date received missing!' => 'ВідÑÑƒÑ‚Ð½Ñ Ð´Ð°Ñ‚Ð° отриманнÑ!',
+ 'Dec' => 'груднÑ',
+ 'December' => 'Грудень',
+ 'Delete' => 'Видалити',
+ 'Delete Schedule' => 'Видалити розклад',
+ 'Delivery Date' => 'Дата доÑтавки',
+ 'Department' => 'Відділ',
+ 'Description' => 'ОпиÑ',
+ 'Done' => 'Зроблено',
+ 'E-mail' => 'Ел. пошта',
+ 'E-mail address missing!' => 'Ðе вказана адреÑа ел. пошти!',
+ 'E-mail message' => 'ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ ÐµÐ». пошти',
+ 'E-mailed' => 'Ел. пошту відіÑлано',
+ 'Edit Purchase Order' => 'Редагувати купівельне замовленнÑ',
+ 'Edit Quotation' => 'Редагувати котируваннÑ',
+ 'Edit Request for Quotation' => 'Редагувати запит на котируваннÑ',
+ 'Edit Sales Order' => 'Редагувати продажну накладну',
+ 'Employee' => 'Працівник',
+ 'Every' => 'Кожні',
+ 'Exchange Rate' => 'ÐšÑƒÑ€Ñ Ð²Ð°Ð»ÑŽÑ‚Ð¸',
+ 'Exchange rate missing!' => 'Ðе вказаний ÐºÑƒÑ€Ñ Ð²Ð°Ð»ÑŽÑ‚Ð¸!',
+ 'Extended' => 'Продовжено',
+ 'Fax' => 'Фах',
+ 'Feb' => 'лютого',
+ 'February' => 'Лютий',
+ 'For' => 'ДлÑ',
+ 'From' => 'Від/З',
+ 'Generate Orders' => 'Створити замовленнÑ',
+ 'Generate Purchase Orders' => 'Створити купівельні замовленнÑ',
+ 'Group' => 'Група',
+ 'ID' => 'Ідентифікаційний номер',
+ 'In-line' => 'Включено (In-line)',
+ 'Include Payment' => 'Включити плтіж',
+ 'Include in Report' => 'Додати до звіту',
+ 'Internal Notes' => 'Внутрішні примітки',
+ 'Inventory saved!' => 'Інвентар збережено!',
+ 'Inventory transferred!' => 'Інвентар перенеÑено!',
+ 'Invoice' => 'Рахунок-фактура',
+ 'Invoice Date missing!' => 'Ðе вказана дата виÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ñ€Ð°Ñ…ÑƒÐ½ÐºÐ°-фактури',
+ 'Invoice Number missing!' => 'Ðе вказаний номер рахунка-фактури',
+ 'Item not on file!' => 'Речі нема в ÑпиÑку!',
+ 'Jan' => 'ÑічнÑ',
+ 'January' => 'Ñічень',
+ 'Jul' => 'липнÑ',
+ 'July' => 'Липень',
+ 'Jun' => 'червнÑ',
+ 'June' => 'Червень',
+ 'Manager' => 'Менеджер',
+ 'Mar' => 'березнÑ',
+ 'March' => 'Березень',
+ 'May' => 'травнÑ',
+ 'May ' => 'Травень',
+ 'Message' => 'ПовідомленнÑ',
+ 'Month' => 'МіÑÑць',
+ 'Next Date' => 'ÐаÑтупна дата',
+ 'No.' => 'No.',
+ 'Notes' => 'Примітки',
+ 'Nothing entered!' => 'Ðічого не введено!',
+ 'Nothing selected!' => 'Ðічого не вибрано!',
+ 'Nothing to transfer!' => 'Ðема що перенеÑти',
+ 'Nov' => 'лиÑтопада',
+ 'November' => 'ЛиÑтопад',
+ 'Number' => 'Ðомер',
+ 'Number missing in Row' => 'Ðе вказаний номер у Ñ€Ñдку',
+ 'O' => 'О',
+ 'Oct' => 'жовтнÑ',
+ 'October' => 'Жовтень',
+ 'Open' => 'Відкрито',
+ 'Order' => 'ЗамовленнÑ',
+ 'Order Date' => 'Дата замовленнÑ',
+ 'Order Date missing!' => 'Ðе вказано дату замовленнÑ!',
+ 'Order Number' => 'Ðомер замовленнÑ',
+ 'Order Number missing!' => 'ВідÑутній номер замовленнÑ',
+ 'Order deleted!' => 'Ð—Ð°Ð¼Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð¾!',
+ 'Order generation failed!' => 'Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð¼Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð·Ð°Ð·Ð½Ð°Ð»Ð¾ невдачі!',
+ 'Order saved!' => 'Ð—Ð°Ð¼Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð¾!',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ðомер купівельного замовленнÑ',
+ 'Packing List' => 'Пакувальний ÑпиÑок',
+ 'Packing List Date missing!' => 'Ðе вказано дату пакувального ÑпиÑку',
+ 'Packing List Number missing!' => 'Ðе вказано номер пакувального ÑпиÑку',
+ 'Part' => 'ЧаÑтина',
+ 'Period' => 'Період',
+ 'Phone' => 'Тел.',
+ 'Pick List' => 'СпиÑок комплектуваннÑ',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Ціна',
+ 'Print' => 'Ðадрукувати',
+ 'Print and Save' => 'Ðадрукувати Ñ– зберегти',
+ 'Printed' => 'Ðадруковано',
+ 'Project' => 'Проект',
+ 'Project not on file!' => 'Проекту нема в ÑпиÑку!',
+ 'Purchase Order' => 'Купівельне замовленнÑ',
+ 'Purchase Orders' => 'Купівельні замовленнÑ',
+ 'Qty' => 'КількіÑÑ‚ÑŒ',
+ 'Quarter' => 'Квартал',
+ 'Quotation' => 'КотируваннÑ',
+ 'Quotation ' => 'ÐšÐ¾Ñ‚Ð¸Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ ',
+ 'Quotation Date' => 'Дата котируваннÑ',
+ 'Quotation Date missing!' => 'ВідÑÑƒÑ‚Ð½Ñ Ð´Ð°Ñ‚Ð° котируваннÑ!',
+ 'Quotation Number' => 'Ðомер котируваннÑ',
+ 'Quotation Number missing!' => 'ВідÑутній номер котируваннÑ!',
+ 'Quotation deleted!' => 'ÐšÐ¾Ñ‚Ð¸Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð¾!',
+ 'Quotations' => 'КотируваннÑ',
+ 'RFQ' => 'RFQ',
+ 'RFQ ' => 'RFQ ',
+ 'RFQ Number' => 'RFQ номер',
+ 'Recd' => 'Отримано',
+ 'Receive Merchandise' => 'Отримати товари',
+ 'Recurring Transaction' => 'Періодична проводка',
+ 'Reference' => 'ПоÑиланнÑ',
+ 'Remaining' => 'ЗалишилоÑÑŒ',
+ 'Repeat' => 'Повторити',
+ 'Req' => 'Запит',
+ 'Request for Quotation' => 'Запит на котируваннÑ',
+ 'Request for Quotations' => 'Запит на котируваннÑ',
+ 'Required by' => 'Термін доÑтавки',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Рахунок-фактура',
+ 'Sales Order' => 'Ðакладна продажу',
+ 'Sales Orders' => 'Ðакладні продажу',
+ 'Salesperson' => 'Торговець/предÑтавник',
+ 'Save' => 'Зберегти',
+ 'Save Schedule' => 'Зберегти розклад',
+ 'Save as new' => 'Зберегти Ñк нове',
+ 'Schedule' => 'Розклад',
+ 'Scheduled' => 'В розкладі',
+ 'Screen' => 'Екран',
+ 'Select Vendor' => 'Виберіть поÑтачальника',
+ 'Select from one of the names below' => 'Виберіть одну із наÑтупних назв',
+ 'Select from one of the projects below' => 'Виберіть один із наÑтупних проектів',
+ 'Select items' => 'Виберіть елементи',
+ 'Select postscript or PDF!' => 'Виберіть postscript або PDF',
+ 'Select txt, postscript or PDF!' => 'Виберіть txt, postscript або PDF!',
+ 'Sep' => 'вереÑнÑ',
+ 'September' => 'ВереÑень',
+ 'Serial No.' => 'Серійний No.',
+ 'Service' => 'ПоÑлуга',
+ 'Ship' => 'ВідіÑлати',
+ 'Ship Merchandise' => 'ВідіÑлати товари',
+ 'Ship to' => 'ВідіÑлати до',
+ 'Ship via' => 'ВідіÑлати через',
+ 'Shipping Address' => 'ÐдреÑа Ð´Ð»Ñ Ð²Ñ–Ð´ÑиланнÑ',
+ 'Shipping Date' => 'Дата відÑиланнÑ',
+ 'Shipping Date missing!' => 'ВідÑÑƒÑ‚Ð½Ñ Ð´Ð°Ñ‚Ð° відÑиланнÑ!',
+ 'Shipping Point' => 'Пункт відÑиланнÑ',
+ 'Startdate' => 'Дата початку',
+ 'State/Province' => 'Штат/облаÑÑ‚ÑŒ',
+ 'Subject' => 'Тема',
+ 'Subtotal' => 'ПідÑумок по розділу',
+ 'Tax' => 'Податок',
+ 'Tax Included' => 'Податок включено',
+ 'Terms' => 'Умови: ',
+ 'Text' => 'ТекÑÑ‚',
+ 'To' => 'До',
+ 'Total' => 'Загальна Сума',
+ 'Trade Discount' => 'Торгова знижка',
+ 'Transfer' => 'ПеренеÑеннÑ',
+ 'Transfer Inventory' => 'ПеренеÑти інвентар',
+ 'Transfer to' => 'ПеренеÑти до',
+ 'Translation not on file!' => 'Переклад немає в файлі!',
+ 'Unit' => 'ОдиницÑ',
+ 'Update' => 'Оновити',
+ 'Valid until' => 'ДійÑний до',
+ 'Vendor' => 'ПоÑтачальник',
+ 'Vendor Invoice' => 'Рахунок-фактура',
+ 'Vendor Number' => 'Ðомер поÑтачальника',
+ 'Vendor missing!' => 'ПоÑтачальник не Ñ–Ñнує',
+ 'Vendor not on file!' => 'Потачальника нема у ÑпиÑку ',
+ 'Warehouse' => 'Склад',
+ 'Warning!' => 'ПопередженнÑ!',
+ 'What type of item is this?' => 'Який це вид/тип елемента',
+ 'Work Order' => 'ÐарÑд',
+ 'Year' => 'Рік',
+ 'Yes' => 'Tak',
+ 'You are posting an existing transaction!' => 'Ви виÑтавлÑєте проводку, Ñка вже Ñ–Ñнує!',
+ 'You are printing and posting an existing transaction!' => 'Ви друкуєте Ñ– зберігаєте проводку, Ñка вже Ñ–Ñнує!',
+ 'You are printing and saving an existing order' => 'Ви друкуєте Ñ– зберігаєте замовленнÑ, Ñке вже Ñ–Ñнує!',
+ 'You are printing and saving an existing quotation' => 'Ви друкуєте Ñ– зберігаєте котировку, Ñка вже Ñ–Ñнує!',
+ 'You are saving an existing order' => 'Ви зберігаєте замовленнÑ, Ñке вже Ñ–Ñнує!',
+ 'You are saving an existing quotation' => 'Ви зберігаєте котировку, Ñка вже Ñ–Ñнує!',
+ 'Zip/Postal Code' => 'Поштовий код',
+ 'days' => 'днів',
+ 'ea' => 'шт.',
+ 'for' => 'длÑ',
+ 'sent' => 'нідіÑлано',
+ 'time(s)' => 'раз(ів)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'Продовжити' => 'continue',
+ 'Видалити' => 'delete',
+ 'Видалити_розклад' => 'delete_schedule',
+ 'Зроблено' => 'done',
+ 'Ел._пошта' => 'e_mail',
+ 'Створити_замовленнÑ' => 'generate_orders',
+ 'Створити_купівельні_замовленнÑ' => 'generate_purchase_orders',
+ 'Ðадрукувати' => 'print',
+ 'Ðадрукувати_Ñ–_зберегти' => 'print_and_save',
+ 'Купівельне_замовленнÑ' => 'purchase_order',
+ 'КотируваннÑ' => 'quotation',
+ 'КотируваннÑ_' => 'quotation_',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'Рахунок_фактура' => 'sales_invoice',
+ 'Ðакладна_продажу' => 'sales_order',
+ 'Зберегти' => 'save',
+ 'Зберегти_розклад' => 'save_schedule',
+ 'Зберегти_Ñк_нове' => 'save_as_new',
+ 'Розклад' => 'schedule',
+ 'Виберіть_поÑтачальника' => 'select_vendor',
+ 'ВідіÑлати_до' => 'ship_to',
+ 'ПеренеÑеннÑ' => 'transfer',
+ 'Оновити' => 'update',
+ 'Рахунок_фактура' => 'vendor_invoice',
+ 'tak' => 'yes',
+};
+
+1;
+
diff --git a/locale/ua_utf/op b/locale/ua_utf/op
new file mode 100755
index 00000000..8ace732d
--- /dev/null
+++ b/locale/ua_utf/op
@@ -0,0 +1,147 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Меню обліку',
+ 'Add Exchange Rate' => 'Додати курÑ',
+ 'Add Sales Invoice' => 'Ðовий Рахуно-фактура',
+ 'Add Vendor Invoice' => 'Ðовий купівельний рахунок-фактура',
+ 'Amount' => 'Сума',
+ 'Are you sure you want to delete Order Number' => 'Ви певні, що хочете видалити дане замовленнÑ?',
+ 'Are you sure you want to delete Quotation Number' => 'Ви певні, що хочете видалити номер котируваннÑ?',
+ 'Bin' => 'Корзина',
+ 'C' => 'С',
+ 'Cannot delete order!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ замовленнÑ!',
+ 'Cannot delete quotation!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ котируваннÑ!',
+ 'Cannot save order!' => 'Ðе вдаєтьÑÑ Ð·Ð±ÐµÑ€ÐµÐ³Ñ‚Ð¸ замовленнÑ!',
+ 'Cannot save quotation!' => 'Ðе вдаєтьÑÑ Ð·Ð±ÐµÑ€ÐµÐ³Ñ‚Ð¸ котируваннÑ!',
+ 'Closed' => 'Закрито',
+ 'Confirm!' => 'Підтвердіть!',
+ 'Contact' => 'Контактна оÑоба',
+ 'Continue' => 'Продовжити',
+ 'Could not save!' => 'Ðе вдалоÑÑŒ зберегти!',
+ 'Could not transfer Inventory!' => 'Ðе вдалоÑÑŒ перевеÑти інвентар!',
+ 'Curr' => 'Валюта',
+ 'Currency' => 'Валюта',
+ 'Current' => 'Поточний',
+ 'Customer' => 'Клієнт',
+ 'Customer missing!' => 'Ðе вказаний клієнт!',
+ 'Date' => 'Дата',
+ 'Date Received' => 'Дата отриманнÑ',
+ 'Date received missing!' => 'ВідÑÑƒÑ‚Ð½Ñ Ð´Ð°Ñ‚Ð° отриманнÑ!',
+ 'Department' => 'Відділ',
+ 'Description' => 'ОпиÑ',
+ 'Done' => 'Зроблено',
+ 'E-mail' => 'Ел. пошта',
+ 'Employee' => 'Працівник',
+ 'Exchange Rate' => 'ÐšÑƒÑ€Ñ Ð²Ð°Ð»ÑŽÑ‚Ð¸',
+ 'Exchange rate missing!' => 'Ðе вказаний ÐºÑƒÑ€Ñ Ð²Ð°Ð»ÑŽÑ‚Ð¸!',
+ 'From' => 'Від/З',
+ 'Group' => 'Група',
+ 'ID' => 'Ідентифікаційний номер',
+ 'Include in Report' => 'Додати до звіту',
+ 'Inventory saved!' => 'Інвентар збережено!',
+ 'Inventory transferred!' => 'Інвентар перенеÑено!',
+ 'Manager' => 'Менеджер',
+ 'Month' => 'МіÑÑць',
+ 'Nothing entered!' => 'Ðічого не введено!',
+ 'Nothing to transfer!' => 'Ðема що перенеÑти',
+ 'Number' => 'Ðомер',
+ 'O' => 'О',
+ 'Open' => 'Відкрито',
+ 'Order' => 'ЗамовленнÑ',
+ 'Order Date' => 'Дата замовленнÑ',
+ 'Order Date missing!' => 'Ðе вказано дату замовленнÑ!',
+ 'Order Number' => 'Ðомер замовленнÑ',
+ 'Order Number missing!' => 'ВідÑутній номер замовленнÑ',
+ 'Order deleted!' => 'Ð—Ð°Ð¼Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð¾!',
+ 'Order saved!' => 'Ð—Ð°Ð¼Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð¾!',
+ 'Partnumber' => 'Ðомер чаÑтини',
+ 'Period' => 'Період',
+ 'Print' => 'Ðадрукувати',
+ 'Purchase Order' => 'Купівельне замовленнÑ',
+ 'Purchase Orders' => 'Купівельні замовленнÑ',
+ 'Qty' => 'КількіÑÑ‚ÑŒ',
+ 'Quarter' => 'Квартал',
+ 'Quotation' => 'КотируваннÑ',
+ 'Quotation ' => 'ÐšÐ¾Ñ‚Ð¸Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ ',
+ 'Quotation Date missing!' => 'ВідÑÑƒÑ‚Ð½Ñ Ð´Ð°Ñ‚Ð° котируваннÑ!',
+ 'Quotation Number missing!' => 'ВідÑутній номер котируваннÑ!',
+ 'Quotation deleted!' => 'ÐšÐ¾Ñ‚Ð¸Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð¾!',
+ 'Quotations' => 'КотируваннÑ',
+ 'RFQ ' => 'RFQ ',
+ 'Recd' => 'Отримано',
+ 'Receive Merchandise' => 'Отримати товари',
+ 'Request for Quotation' => 'Запит на котируваннÑ',
+ 'Request for Quotations' => 'Запит на котируваннÑ',
+ 'Required by' => 'Термін доÑтавки',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Ðакладна продажу',
+ 'Sales Orders' => 'Ðакладні продажу',
+ 'Salesperson' => 'Торговець/предÑтавник',
+ 'Select Printer or Queue!' => 'Виберіть принтер Ð´Ð»Ñ Ñ‡ÐµÑ€Ð³Ð¸!',
+ 'Select postscript or PDF!' => 'Виберіть postscript або PDF',
+ 'Serial No.' => 'Серійний No.',
+ 'Ship' => 'ВідіÑлати',
+ 'Ship Merchandise' => 'ВідіÑлати товари',
+ 'Ship to' => 'ВідіÑлати до',
+ 'Ship via' => 'ВідіÑлати через',
+ 'Shipping Date' => 'Дата відÑиланнÑ',
+ 'Shipping Date missing!' => 'ВідÑÑƒÑ‚Ð½Ñ Ð´Ð°Ñ‚Ð° відÑиланнÑ!',
+ 'Shipping Point' => 'Пункт відÑиланнÑ',
+ 'Subtotal' => 'ПідÑумок по розділу',
+ 'Tax' => 'Податок',
+ 'To' => 'До',
+ 'Total' => 'Загальна Сума',
+ 'Transfer' => 'ПеренеÑеннÑ',
+ 'Transfer Inventory' => 'ПеренеÑти інвентар',
+ 'Transfer to' => 'ПеренеÑти до',
+ 'Unit' => 'ОдиницÑ',
+ 'Update' => 'Оновити',
+ 'Vendor' => 'ПоÑтачальник',
+ 'Vendor missing!' => 'ПоÑтачальник не Ñ–Ñнує',
+ 'Warehouse' => 'Склад',
+ 'Year' => 'Рік',
+ 'Yes' => 'Tak',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'create_backorder' => 'create_backorder',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'invoice' => 'invoice',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'quotation_' => 'quotation_',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'ship_receive' => 'ship_receive',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'yes' => 'yes',
+ 'Продовжити' => 'continue',
+ 'Зроблено' => 'done',
+ 'Ел._пошта' => 'e_mail',
+ 'Ðадрукувати' => 'print',
+ 'Купівельне_замовленнÑ' => 'purchase_order',
+ 'КотируваннÑ_' => 'quotation_',
+ 'rfq_' => 'rfq_',
+ 'Ðакладна_продажу' => 'sales_order',
+ 'ВідіÑлати_до' => 'ship_to',
+ 'ПеренеÑеннÑ' => 'transfer',
+ 'Оновити' => 'update',
+ 'tak' => 'yes',
+};
+
+1;
diff --git a/locale/ua_utf/pe b/locale/ua_utf/pe
new file mode 100755
index 00000000..e3e53c16
--- /dev/null
+++ b/locale/ua_utf/pe
@@ -0,0 +1,141 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Меню обліку',
+ 'Active' => 'Ðктивний',
+ 'Add' => 'Додати',
+ 'Add Group' => 'Додати групу',
+ 'Add Pricegroup' => 'Додати цінову групу',
+ 'Add Project' => 'Ðовий Проект',
+ 'Address' => 'ÐдреÑа',
+ 'All' => 'Ð’ÑÑ–',
+ 'Amount' => 'Сума',
+ 'Assembly' => 'Комплект',
+ 'Bin' => 'Корзина',
+ 'Continue' => 'Продовжити',
+ 'Current' => 'Поточний',
+ 'Customer' => 'Клієнт',
+ 'Customer missing!' => 'Ðе вказаний клієнт!',
+ 'Customer not on file!' => 'Клієнта нема в ÑпиÑку!',
+ 'Date' => 'Дата',
+ 'Delete' => 'Видалити',
+ 'Description' => 'ОпиÑ',
+ 'Description Translations' => 'Переклади опиÑу',
+ 'Detail' => 'Подробиці',
+ 'Edit Group' => 'Редагувати групу',
+ 'Edit Pricegroup' => 'Редагувати цінову групу',
+ 'Edit Project' => 'Редагувати проект',
+ 'Employee' => 'Працівник',
+ 'Enddate' => 'Дата закінченнÑ',
+ 'From' => 'Від/З',
+ 'Group' => 'Група',
+ 'Group Translations' => 'Згрупувати переклади',
+ 'Group deleted!' => 'Групу видалено!',
+ 'Group missing!' => 'ВідÑÑƒÑ‚Ð½Ñ Ð³Ñ€ÑƒÐ¿Ð°!',
+ 'Group saved!' => 'Групу збережено!',
+ 'Groups' => 'Групи',
+ 'Income' => 'Прибуток',
+ 'Language' => 'Мова',
+ 'Languages not defined!' => 'Мови не визначено!',
+ 'Link Accounts' => 'ПовÑзати Рахунки',
+ 'List Price' => 'Ціна',
+ 'Month' => 'МіÑÑць',
+ 'Notes' => 'Примітки',
+ 'Nothing selected!' => 'Ðічого не вибрано!',
+ 'Number' => 'Ðомер',
+ 'Orphaned' => 'Відокремлений/ОÑиротілий',
+ 'Period' => 'Період',
+ 'Pricegroup' => 'Цінова група',
+ 'Pricegroup deleted!' => 'Цінову групу видалено!',
+ 'Pricegroup missing!' => 'ВідÑÑƒÑ‚Ð½Ñ Ñ†Ñ–Ð½Ð¾Ð²Ð° група!',
+ 'Pricegroup saved!' => 'Цінову групу збережено!',
+ 'Pricegroups' => 'Цінові групи',
+ 'Project' => 'Проект',
+ 'Project Number' => 'Ðомер проекту',
+ 'Project deleted!' => 'Проект видалено!',
+ 'Project saved!' => 'Проект збережено!',
+ 'Projects' => 'Проекти',
+ 'Qty' => 'КількіÑÑ‚ÑŒ',
+ 'Quarter' => 'Квартал',
+ 'Save' => 'Зберегти',
+ 'Select from one of the names below' => 'Виберіть одну із наÑтупних назв',
+ 'Sell Price' => 'ВідпуÑкна Ціна',
+ 'Startdate' => 'Дата початку',
+ 'Summary' => 'ЗведеннÑ',
+ 'Tax' => 'Податок',
+ 'To' => 'До',
+ 'Translation' => 'Переклад',
+ 'Translation deleted!' => 'Переклад видалено!',
+ 'Translations saved!' => 'Переклади збережено!',
+ 'Unit' => 'ОдиницÑ',
+ 'Update' => 'Оновити',
+ 'Updated' => 'Оновлено',
+ 'Vendor' => 'ПоÑтачальник',
+ 'Vendor not on file!' => 'Потачальника нема у ÑпиÑку ',
+ 'Weight' => 'Вага',
+ 'Year' => 'Рік',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'Додати_групу' => 'add_group',
+ 'Додати_цінову_групу' => 'add_pricegroup',
+ 'Ðовий_Проект' => 'add_project',
+ 'Продовжити' => 'continue',
+ 'Видалити' => 'delete',
+ 'Зберегти' => 'save',
+ 'Оновити' => 'update',
+};
+
+1;
+
diff --git a/locale/ua_utf/pos b/locale/ua_utf/pos
new file mode 100755
index 00000000..42017cb8
--- /dev/null
+++ b/locale/ua_utf/pos
@@ -0,0 +1,80 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Accounting Menu' => 'Меню обліку',
+ 'Amount' => 'Сума',
+ 'Business' => 'БізнеÑ',
+ 'Cannot post transaction!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ñтавити проводку!',
+ 'Change' => 'Змінити',
+ 'Continue' => 'Продовжити',
+ 'Credit Limit' => 'Ліміт кредиту',
+ 'Currency' => 'Валюта',
+ 'Current' => 'Поточний',
+ 'Customer' => 'Клієнт',
+ 'Customer missing!' => 'Ðе вказаний клієнт!',
+ 'Delete' => 'Видалити',
+ 'Department' => 'Відділ',
+ 'Description' => 'ОпиÑ',
+ 'Exchange Rate' => 'ÐšÑƒÑ€Ñ Ð²Ð°Ð»ÑŽÑ‚Ð¸',
+ 'Exchange rate missing!' => 'Ðе вказаний ÐºÑƒÑ€Ñ Ð²Ð°Ð»ÑŽÑ‚Ð¸!',
+ 'Extended' => 'Продовжено',
+ 'From' => 'Від/З',
+ 'Language' => 'Мова',
+ 'Memo' => 'Ðотатка',
+ 'Month' => 'МіÑÑць',
+ 'Number' => 'Ðомер',
+ 'Open' => 'Відкрито',
+ 'Period' => 'Період',
+ 'Post' => 'ВиÑтавити',
+ 'Posted!' => 'ВиÑтавлено!',
+ 'Price' => 'Ціна',
+ 'Print' => 'Ðадрукувати',
+ 'Print and Post' => 'Ðадрукувати Ñ– виÑтавити',
+ 'Printed' => 'Ðадруковано',
+ 'Qty' => 'КількіÑÑ‚ÑŒ',
+ 'Quarter' => 'Квартал',
+ 'Receipts' => 'Квитанції',
+ 'Record in' => 'ВнеÑти в',
+ 'Remaining' => 'ЗалишилоÑÑŒ',
+ 'Salesperson' => 'Торговець/предÑтавник',
+ 'Screen' => 'Екран',
+ 'Source' => 'Джерело',
+ 'Subtotal' => 'ПідÑумок по розділу',
+ 'Tax Included' => 'Податок включено',
+ 'To' => 'До',
+ 'Total' => 'Загальна Сума',
+ 'Trade Discount' => 'Торгова знижка',
+ 'Unit' => 'ОдиницÑ',
+ 'Update' => 'Оновити',
+ 'Year' => 'Рік',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'Продовжити' => 'continue',
+ 'Видалити' => 'delete',
+ 'ВиÑтавити' => 'post',
+ 'Ðадрукувати' => 'print',
+ 'Ðадрукувати_Ñ–_виÑтавити' => 'print_and_post',
+ 'Оновити' => 'update',
+};
+
+1;
+
diff --git a/locale/ua_utf/ps b/locale/ua_utf/ps
new file mode 100755
index 00000000..e6441524
--- /dev/null
+++ b/locale/ua_utf/ps
@@ -0,0 +1,380 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Aging' => 'Ð¡Ñ‚Ð°Ñ€Ñ–Ð½Ð½Ñ Ñ€Ð°Ñ…ÑƒÐ½ÐºÑ–Ð² витрат',
+ 'AP Outstanding' => 'ÐеÑплачені рахунки витрат',
+ 'AP Transaction' => 'Проводка витрат',
+ 'AP Transactions' => 'Проводки витрат',
+ 'AR Aging' => 'Ð¡Ñ‚Ð°Ñ€Ñ–Ð½Ð½Ñ Ñ€Ð°Ñ…ÑƒÐ½ÐºÑ–Ð² доходів',
+ 'AR Outstanding' => 'ÐеÑплачені рахунки доходів',
+ 'AR Transaction' => 'Проводка доходів',
+ 'AR Transactions' => 'Проводки доходів',
+ 'Account' => 'Рахунок',
+ 'Account Number' => 'Ðомер рахунку',
+ 'Accounting Menu' => 'Меню обліку',
+ 'Accounts' => 'Рахунки',
+ 'Add AP Transaction' => 'Додати проводку витрат',
+ 'Add AR Transaction' => 'Додати проводку доходів',
+ 'Add Purchase Order' => 'Ðове Ð·Ð°Ð¼Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð½Ð° купівлю',
+ 'Add Quotation' => 'КотируваннÑ',
+ 'Add Request for Quotation' => 'Додати запит на котируваннÑ',
+ 'Add Sales Invoice' => 'Ðовий Рахуно-фактура',
+ 'Add Sales Order' => 'Ðове Ð·Ð°Ð¼Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð½Ð° продаж',
+ 'Address' => 'ÐдреÑа',
+ 'All Accounts' => 'Ð’ÑÑ– рахунки',
+ 'Amount' => 'Сума',
+ 'Amount Due' => 'Заплатити Ñуму',
+ 'Apr' => 'квітнÑ',
+ 'April' => 'Квітень',
+ 'Are you sure you want to delete Invoice Number' => 'Ви певні, що хочете видалити даний рахунок?',
+ 'Are you sure you want to delete Transaction' => 'Ви певні, що хочете видалити дану проводку?',
+ 'Attachment' => 'Додаток',
+ 'Aug' => 'ÑерпнÑ',
+ 'August' => 'Серпень',
+ 'Balance' => 'БаланÑ',
+ 'Balance Sheet' => 'БаланÑ-зведеннÑ',
+ 'Bcc' => 'Прих.копіÑ',
+ 'Billing Address' => 'ÐдреÑа Ð´Ð»Ñ Ð½Ð°Ð´ÑÐ¸Ð»Ð°Ð½Ð½Ñ Ñ€Ð°Ñ…ÑƒÐ½ÐºÑƒ',
+ 'Bin' => 'Корзина',
+ 'Bin List' => 'СпиÑок корзин',
+ 'Business' => 'БізнеÑ',
+ 'Cannot delete invoice!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ рахунок-фактуру!',
+ 'Cannot delete transaction!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ проводку!',
+ 'Cannot post invoice for a closed period!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ñтавити рахунок-фактуру Ð´Ð»Ñ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ð¾Ð³Ð¾ періоду!',
+ 'Cannot post invoice!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ñтавити рахунок-фактуру!',
+ 'Cannot post payment for a closed period!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ñтавити платіж Ð´Ð»Ñ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ð¾Ð³Ð¾ періоду!',
+ 'Cannot post transaction for a closed period!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ñтавити проводку Ð´Ð»Ñ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ð¾Ð³Ð¾ періоду!',
+ 'Cannot post transaction!' => 'Ðе вдаєтьÑÑ Ð²Ð¸Ñтавити проводку!',
+ 'Cash' => 'Готівка',
+ 'Cc' => 'ÐšÐ¾Ð¿Ñ–Ñ Ð´Ð¾',
+ 'Change' => 'Змінити',
+ 'Check' => 'Чек',
+ 'City' => 'МіÑто',
+ 'Closed' => 'Закрито',
+ 'Company Name' => 'Ðазва підприємÑтва',
+ 'Compare to' => 'ПорівнÑти з',
+ 'Confirm!' => 'Підтвердіть!',
+ 'Contact' => 'Контактна оÑоба',
+ 'Continue' => 'Продовжити',
+ 'Copies' => 'Копій',
+ 'Country' => 'Країна',
+ 'Credit' => 'Кредит',
+ 'Credit Limit' => 'Ліміт кредиту',
+ 'Curr' => 'Валюта',
+ 'Currency' => 'Валюта',
+ 'Current' => 'Поточний',
+ 'Current Earnings' => 'Поточний заробіток',
+ 'Customer' => 'Клієнт',
+ 'Customer Number' => 'Ðомер клієнта',
+ 'Customer missing!' => 'Ðе вказаний клієнт!',
+ 'Customer not on file!' => 'Клієнта нема в ÑпиÑку!',
+ 'Date' => 'Дата',
+ 'Date Paid' => 'Дата оплати',
+ 'Debit' => 'Дебит',
+ 'Dec' => 'груднÑ',
+ 'December' => 'Грудень',
+ 'Decimalplaces' => 'ДеÑÑтичні міÑцÑ',
+ 'Delete' => 'Видалити',
+ 'Delete Schedule' => 'Видалити розклад',
+ 'Delivery Date' => 'Дата доÑтавки',
+ 'Department' => 'Відділ',
+ 'Description' => 'ОпиÑ',
+ 'Detail' => 'Подробиці',
+ 'Due Date' => 'Заплатити до',
+ 'Due Date missing!' => 'Ðе вказаний термін оплати!',
+ 'E-mail' => 'Ел. пошта',
+ 'E-mail Statement to' => 'ПоÑлати по ел. пошті до',
+ 'E-mail address missing!' => 'Ðе вказана адреÑа ел. пошти!',
+ 'E-mail message' => 'ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ ÐµÐ». пошти',
+ 'E-mailed' => 'Ел. пошту відіÑлано',
+ 'Edit AP Transaction' => 'Редагувати проводку витрат',
+ 'Edit AR Transaction' => 'Редагувати проводку доходів',
+ 'Edit Sales Invoice' => 'Редагувати рахунок-фактуру',
+ 'Employee' => 'Працівник',
+ 'Every' => 'Кожні',
+ 'Exch' => 'КурÑ',
+ 'Exchange Rate' => 'ÐšÑƒÑ€Ñ Ð²Ð°Ð»ÑŽÑ‚Ð¸',
+ 'Exchange rate for payment missing!' => 'Ðе вказаний ÐºÑƒÑ€Ñ Ð²Ð°Ð»ÑŽÑ‚Ð¸ Ð´Ð»Ñ Ð¿Ð»Ð°Ñ‚ÐµÐ¶Ñƒ!',
+ 'Exchange rate missing!' => 'Ðе вказаний ÐºÑƒÑ€Ñ Ð²Ð°Ð»ÑŽÑ‚Ð¸!',
+ 'Extended' => 'Продовжено',
+ 'Fax' => 'Фах',
+ 'Feb' => 'лютого',
+ 'February' => 'Лютий',
+ 'For' => 'ДлÑ',
+ 'From' => 'Від/З',
+ 'GIFI' => 'GIFI',
+ 'Group' => 'Група',
+ 'Heading' => 'Розділ',
+ 'ID' => 'Ідентифікаційний номер',
+ 'In-line' => 'Включено (In-line)',
+ 'Include Exchange Rate Difference' => 'Вкючити різницю курÑів',
+ 'Include Payment' => 'Включити плтіж',
+ 'Include in Report' => 'Додати до звіту',
+ 'Income Statement' => 'Звіт про доходи і видатки',
+ 'Internal Notes' => 'Внутрішні примітки',
+ 'Invoice' => 'Рахунок-фактура',
+ 'Invoice Date' => 'Дата виÑтавленнÑ',
+ 'Invoice Date missing!' => 'Ðе вказана дата виÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ñ€Ð°Ñ…ÑƒÐ½ÐºÐ°-фактури',
+ 'Invoice Number' => 'Ðомер рахунка-фактури',
+ 'Invoice Number missing!' => 'Ðе вказаний номер рахунка-фактури',
+ 'Invoice deleted!' => 'Рахунок-фактура видалений!',
+ 'Item not on file!' => 'Речі нема в ÑпиÑку!',
+ 'Jan' => 'ÑічнÑ',
+ 'January' => 'Ñічень',
+ 'Jul' => 'липнÑ',
+ 'July' => 'Липень',
+ 'Jun' => 'червнÑ',
+ 'June' => 'Червень',
+ 'Language' => 'Мова',
+ 'Manager' => 'Менеджер',
+ 'Mar' => 'березнÑ',
+ 'March' => 'Березень',
+ 'May' => 'травнÑ',
+ 'May ' => 'Травень',
+ 'Memo' => 'Ðотатка',
+ 'Message' => 'ПовідомленнÑ',
+ 'Method' => 'Метод',
+ 'Month' => 'МіÑÑць',
+ 'N/A' => 'Ð/Д',
+ 'Next Date' => 'ÐаÑтупна дата',
+ 'No.' => 'No.',
+ 'Notes' => 'Примітки',
+ 'Nothing selected!' => 'Ðічого не вибрано!',
+ 'Nothing to print!' => 'Ðема що дркувати!',
+ 'Nov' => 'лиÑтопада',
+ 'November' => 'ЛиÑтопад',
+ 'Number' => 'Ðомер',
+ 'Number missing in Row' => 'Ðе вказаний номер у Ñ€Ñдку',
+ 'Oct' => 'жовтнÑ',
+ 'October' => 'Жовтень',
+ 'Open' => 'Відкрито',
+ 'Order' => 'ЗамовленнÑ',
+ 'Order Date missing!' => 'Ðе вказано дату замовленнÑ!',
+ 'Order Number' => 'Ðомер замовленнÑ',
+ 'Order Number missing!' => 'ВідÑутній номер замовленнÑ',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'Ðомер купівельного замовленнÑ',
+ 'Packing List' => 'Пакувальний ÑпиÑок',
+ 'Packing List Date missing!' => 'Ðе вказано дату пакувального ÑпиÑку',
+ 'Packing List Number missing!' => 'Ðе вказано номер пакувального ÑпиÑку',
+ 'Paid' => 'Заплачено',
+ 'Part' => 'ЧаÑтина',
+ 'Payment date missing!' => 'Ðе вказано дату Платежу!',
+ 'Payments' => 'Платежі',
+ 'Period' => 'Період',
+ 'Phone' => 'Тел.',
+ 'Pick List' => 'СпиÑок комплектуваннÑ',
+ 'Post' => 'ВиÑтавити',
+ 'Post as new' => 'ВиÑтавити Ñк новий',
+ 'Posted!' => 'ВиÑтавлено!',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Ціна',
+ 'Print' => 'Ðадрукувати',
+ 'Print and Post' => 'Ðадрукувати Ñ– виÑтавити',
+ 'Printed' => 'Ðадруковано',
+ 'Project' => 'Проект',
+ 'Project Number' => 'Ðомер проекту',
+ 'Project Transactions' => 'Проводки проекту',
+ 'Project not on file!' => 'Проекту нема в ÑпиÑку!',
+ 'Purchase Order' => 'Купівельне замовленнÑ',
+ 'Qty' => 'КількіÑÑ‚ÑŒ',
+ 'Quarter' => 'Квартал',
+ 'Quotation' => 'КотируваннÑ',
+ 'Quotation Date missing!' => 'ВідÑÑƒÑ‚Ð½Ñ Ð´Ð°Ñ‚Ð° котируваннÑ!',
+ 'Quotation Number missing!' => 'ВідÑутній номер котируваннÑ!',
+ 'Recd' => 'Отримано',
+ 'Receipt' => 'КвитанціÑ',
+ 'Receipts' => 'Квитанції',
+ 'Record in' => 'ВнеÑти в',
+ 'Recurring Transaction' => 'Періодична проводка',
+ 'Reference' => 'ПоÑиланнÑ',
+ 'Remaining' => 'ЗалишилоÑÑŒ',
+ 'Repeat' => 'Повторити',
+ 'Report for' => 'Звіт длÑ',
+ 'Required by' => 'Термін доÑтавки',
+ 'SKU' => 'SKU',
+ 'Sales Invoice.' => 'Рахунок-фактура.',
+ 'Sales Order' => 'Ðакладна продажу',
+ 'Salesperson' => 'Торговець/предÑтавник',
+ 'Save Schedule' => 'Зберегти розклад',
+ 'Schedule' => 'Розклад',
+ 'Scheduled' => 'В розкладі',
+ 'Screen' => 'Екран',
+ 'Select all' => 'Вибрати вÑе',
+ 'Select from one of the names below' => 'Виберіть одну із наÑтупних назв',
+ 'Select from one of the projects below' => 'Виберіть один із наÑтупних проектів',
+ 'Select items' => 'Виберіть елементи',
+ 'Select payment' => 'Виберіть платіж',
+ 'Select postscript or PDF!' => 'Виберіть postscript або PDF',
+ 'Select txt, postscript or PDF!' => 'Виберіть txt, postscript або PDF!',
+ 'Sep' => 'вереÑнÑ',
+ 'September' => 'ВереÑень',
+ 'Serial No.' => 'Серійний No.',
+ 'Service' => 'ПоÑлуга',
+ 'Ship' => 'ВідіÑлати',
+ 'Ship to' => 'ВідіÑлати до',
+ 'Ship via' => 'ВідіÑлати через',
+ 'Shipping Address' => 'ÐдреÑа Ð´Ð»Ñ Ð²Ñ–Ð´ÑиланнÑ',
+ 'Shipping Point' => 'Пункт відÑиланнÑ',
+ 'Source' => 'Джерело',
+ 'Standard' => 'Стандартні',
+ 'Startdate' => 'Дата початку',
+ 'State/Province' => 'Штат/облаÑÑ‚ÑŒ',
+ 'Statement' => 'Звіт',
+ 'Statement sent to' => 'Звіт поÑлано до',
+ 'Statements sent to printer!' => 'Звіт поÑлано до принтера!',
+ 'Subject' => 'Тема',
+ 'Subtotal' => 'ПідÑумок по розділу',
+ 'Summary' => 'ЗведеннÑ',
+ 'Tax' => 'Податок',
+ 'Tax Included' => 'Податок включено',
+ 'Tax collected' => 'Податок зібрано',
+ 'Tax paid' => 'Податок заплачено',
+ 'Text' => 'ТекÑÑ‚',
+ 'Till' => 'КаÑа',
+ 'To' => 'До',
+ 'Total' => 'Загальна Сума',
+ 'Trade Discount' => 'Торгова знижка',
+ 'Transaction' => 'Проводка',
+ 'Transaction deleted!' => 'Проводка видалена',
+ 'Transaction posted!' => 'Проводка здійÑнена',
+ 'Translation not on file!' => 'Переклад немає в файлі!',
+ 'Trial Balance' => 'Пробний баланÑ',
+ 'Unit' => 'ОдиницÑ',
+ 'Update' => 'Оновити',
+ 'Vendor' => 'ПоÑтачальник',
+ 'Vendor Invoice.' => 'Рахунок-фактура.',
+ 'Vendor Number' => 'Ðомер поÑтачальника',
+ 'Vendor missing!' => 'ПоÑтачальник не Ñ–Ñнує',
+ 'Vendor not on file!' => 'Потачальника нема у ÑпиÑку ',
+ 'Warning!' => 'ПопередженнÑ!',
+ 'What type of item is this?' => 'Який це вид/тип елемента',
+ 'Work Order' => 'ÐарÑд',
+ 'Year' => 'Рік',
+ 'Yes' => 'Tak',
+ 'You are posting an existing transaction!' => 'Ви виÑтавлÑєте проводку, Ñка вже Ñ–Ñнує!',
+ 'You are printing and posting an existing transaction!' => 'Ви друкуєте Ñ– зберігаєте проводку, Ñка вже Ñ–Ñнує!',
+ 'You are printing and saving an existing order' => 'Ви друкуєте Ñ– зберігаєте замовленнÑ, Ñке вже Ñ–Ñнує!',
+ 'You are printing and saving an existing quotation' => 'Ви друкуєте Ñ– зберігаєте котировку, Ñка вже Ñ–Ñнує!',
+ 'You are saving an existing order' => 'Ви зберігаєте замовленнÑ, Ñке вже Ñ–Ñнує!',
+ 'You are saving an existing quotation' => 'Ви зберігаєте котировку, Ñка вже Ñ–Ñнує!',
+ 'Zip/Postal Code' => 'Поштовий код',
+ 'as at' => 'Ñк в',
+ 'ea' => 'шт.',
+ 'for' => 'длÑ',
+ 'for Period' => 'за період',
+ 'posted!' => 'виÑтавлено!',
+ 'sent' => 'нідіÑлано',
+ 'time(s)' => 'раз(ів)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'Проводка_витрат' => 'ap_transaction',
+ 'Проводка_доходів' => 'ar_transaction',
+ 'Продовжити' => 'continue',
+ 'Видалити' => 'delete',
+ 'Видалити_розклад' => 'delete_schedule',
+ 'Ел._пошта' => 'e_mail',
+ 'ВиÑтавити' => 'post',
+ 'ВиÑтавити_Ñк_новий' => 'post_as_new',
+ 'Ðадрукувати' => 'print',
+ 'Ðадрукувати_Ñ–_виÑтавити' => 'print_and_post',
+ 'Рахунок_фактура_' => 'sales_invoice_',
+ 'Ðакладна_продажу' => 'sales_order',
+ 'Зберегти_розклад' => 'save_schedule',
+ 'Розклад' => 'schedule',
+ 'Вибрати_вÑе' => 'select_all',
+ 'ВідіÑлати_до' => 'ship_to',
+ 'Оновити' => 'update',
+ 'Рахунок_фактура_' => 'vendor_invoice_',
+ 'tak' => 'yes',
+};
+
+1;
+
diff --git a/locale/ua_utf/pw b/locale/ua_utf/pw
new file mode 100755
index 00000000..f83dd45e
--- /dev/null
+++ b/locale/ua_utf/pw
@@ -0,0 +1,15 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Continue' => 'Продовжити',
+ 'Password' => 'Пароль',
+ 'Session expired!' => 'Ð¡ÐµÐ°Ð½Ñ Ð·Ð°Ñтарів!',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'Продовжити' => 'continue',
+};
+
+1;
+
diff --git a/locale/ua_utf/rc b/locale/ua_utf/rc
new file mode 100755
index 00000000..d2f4bb00
--- /dev/null
+++ b/locale/ua_utf/rc
@@ -0,0 +1,80 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'Account' => 'Рахунок',
+ 'Accounting Menu' => 'Меню обліку',
+ 'Apr' => 'квітнÑ',
+ 'April' => 'Квітень',
+ 'Aug' => 'ÑерпнÑ',
+ 'August' => 'Серпень',
+ 'Balance' => 'БаланÑ',
+ 'Beginning Balance' => 'Початковий баланÑ',
+ 'Cleared' => 'Проведено',
+ 'Continue' => 'Продовжити',
+ 'Credit' => 'Кредит',
+ 'Current' => 'Поточний',
+ 'Date' => 'Дата',
+ 'Debit' => 'Дебит',
+ 'Dec' => 'груднÑ',
+ 'December' => 'Грудень',
+ 'Description' => 'ОпиÑ',
+ 'Detail' => 'Подробиці',
+ 'Difference' => 'РізницÑ',
+ 'Done' => 'Зроблено',
+ 'Feb' => 'лютого',
+ 'February' => 'Лютий',
+ 'From' => 'Від/З',
+ 'Include Exchange Rate Difference' => 'Вкючити різницю курÑів',
+ 'Jan' => 'ÑічнÑ',
+ 'January' => 'Ñічень',
+ 'Jul' => 'липнÑ',
+ 'July' => 'Липень',
+ 'Jun' => 'червнÑ',
+ 'June' => 'Червень',
+ 'Mar' => 'березнÑ',
+ 'March' => 'Березень',
+ 'May' => 'травнÑ',
+ 'May ' => 'Травень',
+ 'Month' => 'МіÑÑць',
+ 'Nov' => 'лиÑтопада',
+ 'November' => 'ЛиÑтопад',
+ 'Oct' => 'жовтнÑ',
+ 'October' => 'Жовтень',
+ 'Out of balance!' => 'Ðе збаланÑовано!',
+ 'Outstanding' => 'Ðе Ñплачено',
+ 'Period' => 'Період',
+ 'Quarter' => 'Квартал',
+ 'R' => 'R',
+ 'Reconciliation' => 'УзгодженнÑ',
+ 'Select all' => 'Вибрати вÑе',
+ 'Sep' => 'вереÑнÑ',
+ 'September' => 'ВереÑень',
+ 'Source' => 'Джерело',
+ 'Statement Balance' => 'БаланÑовий Звіт',
+ 'Summary' => 'ЗведеннÑ',
+ 'To' => 'До',
+ 'Update' => 'Оновити',
+ 'Year' => 'Рік',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'Продовжити' => 'continue',
+ 'Зроблено' => 'done',
+ 'Вибрати_вÑе' => 'select_all',
+ 'Оновити' => 'update',
+};
+
+1;
+
diff --git a/locale/ua_utf/rp b/locale/ua_utf/rp
new file mode 100755
index 00000000..70399af6
--- /dev/null
+++ b/locale/ua_utf/rp
@@ -0,0 +1,197 @@
+$self{charset} = 'UTF-8';
+
+$self{texts} = {
+ 'AP Aging' => 'Ð¡Ñ‚Ð°Ñ€Ñ–Ð½Ð½Ñ Ñ€Ð°Ñ…ÑƒÐ½ÐºÑ–Ð² витрат',
+ 'AR Aging' => 'Ð¡Ñ‚Ð°Ñ€Ñ–Ð½Ð½Ñ Ñ€Ð°Ñ…ÑƒÐ½ÐºÑ–Ð² доходів',
+ 'Account' => 'Рахунок',
+ 'Account Number' => 'Ðомер рахунку',
+ 'Accounting Menu' => 'Меню обліку',
+ 'Accounts' => 'Рахунки',
+ 'Address' => 'ÐдреÑа',
+ 'All Accounts' => 'Ð’ÑÑ– рахунки',
+ 'Amount' => 'Сума',
+ 'Apr' => 'квітнÑ',
+ 'April' => 'Квітень',
+ 'Attachment' => 'Додаток',
+ 'Aug' => 'ÑерпнÑ',
+ 'August' => 'Серпень',
+ 'Balance' => 'БаланÑ',
+ 'Balance Sheet' => 'БаланÑ-зведеннÑ',
+ 'Bcc' => 'Прих.копіÑ',
+ 'Cash' => 'Готівка',
+ 'Cc' => 'ÐšÐ¾Ð¿Ñ–Ñ Ð´Ð¾',
+ 'Compare to' => 'ПорівнÑти з',
+ 'Continue' => 'Продовжити',
+ 'Copies' => 'Копій',
+ 'Credit' => 'Кредит',
+ 'Curr' => 'Валюта',
+ 'Current' => 'Поточний',
+ 'Current Earnings' => 'Поточний заробіток',
+ 'Customer' => 'Клієнт',
+ 'Customer not on file!' => 'Клієнта нема в ÑпиÑку!',
+ 'Date' => 'Дата',
+ 'Debit' => 'Дебит',
+ 'Dec' => 'груднÑ',
+ 'December' => 'Грудень',
+ 'Decimalplaces' => 'ДеÑÑтичні міÑцÑ',
+ 'Delete Schedule' => 'Видалити розклад',
+ 'Department' => 'Відділ',
+ 'Description' => 'ОпиÑ',
+ 'Detail' => 'Подробиці',
+ 'Due Date' => 'Заплатити до',
+ 'E-mail' => 'Ел. пошта',
+ 'E-mail Statement to' => 'ПоÑлати по ел. пошті до',
+ 'E-mail address missing!' => 'Ðе вказана адреÑа ел. пошти!',
+ 'E-mail message' => 'ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ ÐµÐ». пошти',
+ 'Every' => 'Кожні',
+ 'Feb' => 'лютого',
+ 'February' => 'Лютий',
+ 'For' => 'ДлÑ',
+ 'From' => 'Від/З',
+ 'GIFI' => 'GIFI',
+ 'Heading' => 'Розділ',
+ 'ID' => 'Ідентифікаційний номер',
+ 'In-line' => 'Включено (In-line)',
+ 'Include Exchange Rate Difference' => 'Вкючити різницю курÑів',
+ 'Include Payment' => 'Включити плтіж',
+ 'Include in Report' => 'Додати до звіту',
+ 'Income Statement' => 'Звіт про доходи і видатки',
+ 'Invoice' => 'Рахунок-фактура',
+ 'Jan' => 'ÑічнÑ',
+ 'January' => 'Ñічень',
+ 'Jul' => 'липнÑ',
+ 'July' => 'Липень',
+ 'Jun' => 'червнÑ',
+ 'June' => 'Червень',
+ 'Language' => 'Мова',
+ 'Mar' => 'березнÑ',
+ 'March' => 'Березень',
+ 'May' => 'травнÑ',
+ 'May ' => 'Травень',
+ 'Memo' => 'Ðотатка',
+ 'Message' => 'ПовідомленнÑ',
+ 'Method' => 'Метод',
+ 'Month' => 'МіÑÑць',
+ 'N/A' => 'Ð/Д',
+ 'Next Date' => 'ÐаÑтупна дата',
+ 'Nothing selected!' => 'Ðічого не вибрано!',
+ 'Nov' => 'лиÑтопада',
+ 'November' => 'ЛиÑтопад',
+ 'Number' => 'Ðомер',
+ 'Oct' => 'жовтнÑ',
+ 'October' => 'Жовтень',
+ 'Order' => 'ЗамовленнÑ',
+ 'PDF' => 'PDF',
+ 'Payments' => 'Платежі',
+ 'Period' => 'Період',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Ðадрукувати',
+ 'Project' => 'Проект',
+ 'Project Number' => 'Ðомер проекту',
+ 'Project Transactions' => 'Проводки проекту',
+ 'Project not on file!' => 'Проекту нема в ÑпиÑку!',
+ 'Quarter' => 'Квартал',
+ 'Receipts' => 'Квитанції',
+ 'Recurring Transaction' => 'Періодична проводка',
+ 'Reference' => 'ПоÑиланнÑ',
+ 'Repeat' => 'Повторити',
+ 'Report for' => 'Звіт длÑ',
+ 'Salesperson' => 'Торговець/предÑтавник',
+ 'Save Schedule' => 'Зберегти розклад',
+ 'Screen' => 'Екран',
+ 'Select all' => 'Вибрати вÑе',
+ 'Select from one of the names below' => 'Виберіть одну із наÑтупних назв',
+ 'Select from one of the projects below' => 'Виберіть один із наÑтупних проектів',
+ 'Select postscript or PDF!' => 'Виберіть postscript або PDF',
+ 'Sep' => 'вереÑнÑ',
+ 'September' => 'ВереÑень',
+ 'Source' => 'Джерело',
+ 'Standard' => 'Стандартні',
+ 'Startdate' => 'Дата початку',
+ 'Statement' => 'Звіт',
+ 'Statement sent to' => 'Звіт поÑлано до',
+ 'Statements sent to printer!' => 'Звіт поÑлано до принтера!',
+ 'Subject' => 'Тема',
+ 'Subtotal' => 'ПідÑумок по розділу',
+ 'Summary' => 'ЗведеннÑ',
+ 'Tax' => 'Податок',
+ 'Tax collected' => 'Податок зібрано',
+ 'Tax paid' => 'Податок заплачено',
+ 'Till' => 'КаÑа',
+ 'To' => 'До',
+ 'Total' => 'Загальна Сума',
+ 'Trial Balance' => 'Пробний баланÑ',
+ 'Vendor' => 'ПоÑтачальник',
+ 'Vendor not on file!' => 'Потачальника нема у ÑпиÑку ',
+ 'Warning!' => 'ПопередженнÑ!',
+ 'Year' => 'Рік',
+ 'You are posting an existing transaction!' => 'Ви виÑтавлÑєте проводку, Ñка вже Ñ–Ñнує!',
+ 'You are printing and posting an existing transaction!' => 'Ви друкуєте Ñ– зберігаєте проводку, Ñка вже Ñ–Ñнує!',
+ 'You are printing and saving an existing order' => 'Ви друкуєте Ñ– зберігаєте замовленнÑ, Ñке вже Ñ–Ñнує!',
+ 'You are printing and saving an existing quotation' => 'Ви друкуєте Ñ– зберігаєте котировку, Ñка вже Ñ–Ñнує!',
+ 'You are saving an existing order' => 'Ви зберігаєте замовленнÑ, Ñке вже Ñ–Ñнує!',
+ 'You are saving an existing quotation' => 'Ви зберігаєте котировку, Ñка вже Ñ–Ñнує!',
+ 'as at' => 'Ñк в',
+ 'for' => 'длÑ',
+ 'for Period' => 'за період',
+ 'sent' => 'нідіÑлано',
+ 'time(s)' => 'раз(ів)',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'Продовжити' => 'continue',
+ 'Видалити_розклад' => 'delete_schedule',
+ 'Ел._пошта' => 'e_mail',
+ 'Ðадрукувати' => 'print',
+ 'Зберегти_розклад' => 'save_schedule',
+ 'Вибрати_вÑе' => 'select_all',
+};
+
+1;
+
diff --git a/locale/ve/COPYING b/locale/ve/COPYING
new file mode 100755
index 00000000..a25f2ac7
--- /dev/null
+++ b/locale/ve/COPYING
@@ -0,0 +1,23 @@
+######################################################################
+# LedgerSMB Small Medium Business Accounting Software
+# Copyright (c) 2001
+#
+# Spanish Texts (Venezuela):
+#
+# Author: John Stoddart <jstypo@imagencolor.com.ve>
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#######################################################################
+
diff --git a/locale/ve/LANGUAGE b/locale/ve/LANGUAGE
new file mode 100755
index 00000000..80e710d3
--- /dev/null
+++ b/locale/ve/LANGUAGE
@@ -0,0 +1 @@
+Spanish/Venezuela
diff --git a/locale/ve/Num2text b/locale/ve/Num2text
new file mode 100755
index 00000000..88ffe737
--- /dev/null
+++ b/locale/ve/Num2text
@@ -0,0 +1,212 @@
+#=====================================================================
+# LedgerSMB Small Medium Business Accounting
+# Copyright (C) 2002
+#
+# Author: Dieter Simader
+# Email: dsimader@sql-ledger.org
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+# Language: Spanish
+# Contributors: John Christian Stoddart
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#======================================================================
+
+
+sub init {
+ my $self = shift;
+
+ %{ $self->{numbername} } =
+ (0 => 'cero',
+ 1 => 'un',
+ '1o' => 'uno',
+ 2 => 'dos',
+ 3 => 'tres',
+ 4 => 'cuatro',
+ 5 => 'cinco',
+ 6 => 'seis',
+ 7 => 'siete',
+ 8 => 'ocho',
+ 9 => 'nueve',
+ 10 => 'diez',
+ 11 => 'once',
+ '11o' => 'once',
+ 12 => 'doce',
+ 13 => 'trece',
+ 14 => 'catorce',
+ 15 => 'quince',
+ 16 => 'dieciséis',
+ 17 => 'diecisiete',
+ 18 => 'dieciocho',
+ 19 => 'diecinueve',
+ 20 => 'veinte',
+ 21 => 'veintiún',
+ '21o' => 'veintiuno',
+ 22 => 'veintidós',
+ 23 => 'veintitrés',
+ 24 => 'veinticuatro',
+ 25 => 'veinticinco',
+ 26 => 'veintiséis',
+ 27 => 'veintisiete',
+ 28 => 'veintiocho',
+ 29 => 'veintinueve',
+ 30 => 'treinta',
+ 40 => 'cuarenta',
+ 50 => 'cincuenta',
+ 60 => 'sesenta',
+ 70 => 'setenta',
+ 80 => 'ochenta',
+ 90 => 'noventa',
+ 500 => 'quinientos',
+ 700 => 'setecientos',
+ 900 => 'novecientos',
+ 10**2 => 'ciento',
+ 10**3 => 'mil',
+ 10**6 => 'millón',
+ 10**12 => 'billón',
+ );
+
+}
+
+
+sub num2text {
+ my ($self, $amount) = @_;
+
+ return $self->{numbername}{0} unless $amount;
+
+ my @textnumber = ();
+
+ # split amount into chunks of 3
+ my @num = reverse split //, abs($amount);
+ my @numblock = ();
+ my $stripun = 0;
+ my @a = ();
+ my $i;
+
+ while (@num) {
+ @a = ();
+ for (1 .. 3) {
+ push @a, shift @num;
+ }
+ push @numblock, join / /, reverse @a;
+ }
+
+ # special case for 1000
+ if ($numblock[1] eq '1' && $numblock[0] gt '000') {
+ # remove first array element from textnumber
+ $stripun = 1;
+ }
+
+ while (@numblock) {
+
+ $i = $#numblock;
+ @num = split //, $numblock[$i];
+
+ $numblock[$i] *= 1;
+
+ if ($numblock[$i] == 0) {
+ pop @numblock;
+ next;
+ }
+
+ if ($numblock[$i] > 99) {
+ if ($num[0] == 1) {
+ push @textnumber, $self->{numbername}{10**2};
+ } else {
+ # special case for 500, 700, 900
+ if (grep /$num[0]/, (5,7,9)) {
+ push @textnumber, $self->{numbername}{"${num[0]}00"};
+
+ } else {
+
+ # the one from hundreds, append cientos
+ push @textnumber, $self->{numbername}{$num[0]}.$self->{numbername}{10**2}.'s';
+
+ }
+ }
+
+ # reduce numblock
+ $numblock[$i] -= $num[0] * 100;
+ }
+
+ if ($numblock[$i] > 9) {
+ # tens
+ push @textnumber, $self->format_ten($numblock[$i], $i);
+ } elsif ($numblock[$i] > 0) {
+ # ones
+ $num = $numblock[$i];
+ $num .= 'o' if ($num == 1 && $i == 0);
+ push @textnumber, $self->{numbername}{$num};
+ }
+
+ # add thousand, million
+ if ($i) {
+ $num = 10**($i * 3);
+ if ($numblock[$i] > 1) {
+ if ($i == 2 || $i == 4) {
+ $a = $self->{numbername}{$num}."es";
+ $a =~ s/ó/o/;
+ push @textnumber, $a;
+ } elsif ($i == 3) {
+ $num = 10**($i * 2);
+ $a = "$self->{10**3} $self->{numbername}{$num}"."es";
+ $a =~ s/ó/o/;
+ push @textnumber, $a;
+ } else {
+ if ($i == 1) {
+ push @textnumber, $self->{numbername}{$num};
+ } else {
+ push @textnumber, $self->{numbername}{$num}.'s';
+ }
+ }
+ } else {
+ push @textnumber, $self->{numbername}{$num};
+ }
+ }
+
+ pop @numblock;
+
+ }
+
+ shift @textnumber if $stripun;
+
+ join ' ', @textnumber;
+
+}
+
+
+sub format_ten {
+ my ($self, $amount, $i) = @_;
+
+ my $textnumber = "";
+ my @num = split //, $amount;
+
+ if ($amount > 30) {
+ $textnumber = $self->{numbername}{$num[0]*10};
+ $amount = $num[1];
+ } else {
+ $amount .= 'o' if ($num[1] == 1 && $i == 0);
+ $textnumber = $self->{numbername}{$amount};
+ $amount = 0;
+ }
+
+ $textnumber .= " y ".$self->{numbername}{$amount} if $amount;
+
+ $textnumber;
+
+}
+
+
+1;
+
diff --git a/locale/ve/aa b/locale/ve/aa
new file mode 100755
index 00000000..5d378c26
--- /dev/null
+++ b/locale/ve/aa
@@ -0,0 +1,161 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Pendientes de CxP',
+ 'AP Transaction' => 'Asiento de CxP',
+ 'AP Transactions' => 'Asientos de CxP',
+ 'AR Outstanding' => 'Pendientes de CxC',
+ 'AR Transaction' => 'Asiento de CxC',
+ 'AR Transactions' => 'Asiento de CxC',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Add AP Transaction' => 'Agregar Asiento de CxP',
+ 'Add AR Transaction' => 'Agregar Asiento de CxC',
+ 'Amount' => 'Monto',
+ 'Amount Due' => 'Cantidad Adeudada',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => '¿Está seguro que desea borrar el Asiento?',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Cannot delete transaction!' => '¡No se puede borrar el asiento!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar un asiento en un periodo cerrado',
+ 'Cannot post transaction!' => '¡No se puede registrar el asiento!',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Cerrado',
+ 'Confirm!' => '¡Favor Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Límite de Crédito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Date' => 'Fecha',
+ 'Date Paid' => 'Fecha de Pago',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Department' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de Vencimiento',
+ 'Due Date missing!' => 'Falta la Fecha de Vencimiento',
+ 'Edit AP Transaction' => 'Editar Asiento de CxP',
+ 'Edit AR Transaction' => 'Editar Asiento de CxC',
+ 'Employee' => 'Empleado',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate for payment missing!' => '¡Falta la tasa de cambio para el pago!',
+ 'Exchange rate missing!' => '¡Falta tasa de cambio!',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'ID' => 'N° de identidad',
+ 'Include in Report' => 'Incluir en Informe',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de Factura',
+ 'Invoice Date missing!' => '¡Falta Fecha de Factura!',
+ 'Invoice Number' => 'Número de Factura',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Manager' => 'Gerente',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Month' => 'Mes',
+ 'No.' => 'N°',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Number' => 'Orden N°',
+ 'PO Number' => 'N° Control',
+ 'Paid' => 'Pagado',
+ 'Payment date missing!' => 'Falta fecha de pago',
+ 'Payments' => 'Pagos',
+ 'Period' => 'Período',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Print and Post as new' => 'Imprimir y Registrar como Nuevo',
+ 'Project' => 'Proyecto',
+ 'Quarter' => 'Trimestre',
+ 'Receipt' => 'Abono',
+ 'Remaining' => 'Resto',
+ 'Sales Invoice.' => 'Factura de Ventas.',
+ 'Salesperson' => 'Vendedor',
+ 'Schedule' => 'Programar',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Ship to' => 'Destino',
+ 'Ship via' => 'Envío por',
+ 'Shipping Point' => 'Puerto de Embarque',
+ 'Source' => 'Cheque N°',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resumen',
+ 'Tax' => 'Impuesto',
+ 'Tax Included' => 'Impuesto Incluído',
+ 'Till' => 'Caja',
+ 'To' => 'Hasta',
+ 'Total' => 'Total',
+ 'Transaction' => 'Asiento',
+ 'Transaction deleted!' => '¡Asiento borrado!',
+ 'Transaction posted!' => '¡Asiendo registrado!',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice.' => 'Factura de Compra.',
+ 'Vendor missing!' => '¡Falta Proveedor!',
+ 'Year' => 'Año',
+ 'Yes' => 'Sí',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'post' => 'post',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'asiento_de_cxp' => 'ap_transaction',
+ 'asiento_de_cxc' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'imprimir_y_registrar' => 'print_and_post',
+ 'imprimir_y_registrar_como_nuevo' => 'print_and_post_as_new',
+ 'factura_de_ventas_' => 'sales_invoice_',
+ 'programar' => 'schedule',
+ 'destino' => 'ship_to',
+ 'actualizar' => 'update',
+ 'factura_de_compra_' => 'vendor_invoice_',
+ 'sí' => 'yes',
+};
+
+1;
+
diff --git a/locale/ve/admin b/locale/ve/admin
new file mode 100755
index 00000000..672b6b05
--- /dev/null
+++ b/locale/ve/admin
@@ -0,0 +1,144 @@
+$self{texts} = {
+ 'Access Control' => 'Control de Acceso',
+ 'Accounting' => 'Contabilidad',
+ 'Add User' => 'Agregar Usuario',
+ 'Address' => 'Dirección',
+ 'Administration' => 'Administración',
+ 'Administrator' => 'Administrador',
+ 'All Datasets up to date!' => 'Bases de Datos actualizadas!',
+ 'Cannot create Lock!' => '¡No se puede crear Bloqueo!',
+ 'Change Admin Password' => 'Cambiar la contraseña del administrador',
+ 'Change Password' => 'Cambiar Contraseña',
+ 'Click on login name to edit!' => 'Haga clic en el nombre de usuario por
+editar',
+ 'Company' => 'Compañía',
+ 'Confirm' => '¡Favor Confirmar!',
+ 'Connect to' => 'Conectarse a',
+ 'Continue' => 'Continuar',
+ 'Create Chart of Accounts' => 'Crear Plan de Cuentas',
+ 'Create Dataset' => 'Crear Base de Datos',
+ 'DBI not installed!' => '¡DBI no se encuentra instalado!',
+ 'Database' => 'Base de Datos',
+ 'Database Administration' => 'Administración de Base de Datos',
+ 'Database Driver not checked!' => 'No se pudo verificar el Manejador de la Base de Datos',
+ 'Database User missing!' => '¡Falta Usuario de la Base de Datos',
+ 'Dataset' => 'Base de Datos',
+ 'Dataset missing!' => '¡Falta Base de Datos!',
+ 'Dataset updated!' => '¡Base de Datos actualizada!',
+ 'Date Format' => 'Formato de Fecha',
+ 'Delete' => 'Borrar',
+ 'Delete Dataset' => 'Borrar Base de Datos',
+ 'Directory' => 'Directorio',
+ 'Driver' => 'Manejador',
+ 'Dropdown Limit' => 'Límite de Menú desplagable',
+ 'E-mail' => 'E-mail',
+ 'Edit User' => 'Editar Usuario',
+ 'Existing Datasets' => 'Bases de Datos Existentes',
+ 'Fax' => 'Fax',
+ 'Host' => 'Servidor de Base de Datos',
+ 'Hostname missing!' => 'Falta el nombre del Servidor de Base de Datos',
+ 'Language' => 'Idioma',
+ 'Lock System' => 'Bloquear Sistema',
+ 'Lockfile created!' => '¡Archivo de bloqueo creado!',
+ 'Lockfile removed!' => '¡Archivo de bloqueo borrado!',
+ 'Login' => 'Login',
+ 'Login name missing!' => '¡Falta Login!',
+ 'Logout' => 'Salir',
+ 'Manager' => 'Gerente',
+ 'Menu Width' => 'Ancho de Menú',
+ 'Multibyte Encoding' => 'Multibyte Encoding',
+ 'Name' => 'Nombre',
+ 'New Templates' => 'Nuevas Plantillas',
+ 'No Database Drivers available!' => '¡No hay ningún manejador de base de datos disponible!',
+ 'No Dataset selected!' => '¡No se ha seleccionado ninguna base de datos!',
+ 'Nothing to delete!' => '¡No hay nada que borrar!',
+ 'Number Format' => 'Formato de Número',
+ 'Oracle Database Administration' => 'Administración de Base de Datos Oracle',
+ 'Password' => 'Contraseña',
+ 'Password changed!' => '¡Contraseña cambiada!',
+ 'Passwords do not match!' => '¡Contraseñas son incorrectas!',
+ 'Pg Database Administration' => 'Administración de Base de Datos Pg',
+ 'PgPP Database Administration' => 'Administración de Base de Datos PgPP',
+ 'Phone' => 'Teléfono',
+ 'Port' => 'Puerto',
+ 'Port missing!' => '¡Falta definir puerto!',
+ 'Printer' => 'Impresora',
+ 'Save' => 'Guardar',
+ 'Session Timeout' => '¡Sesión Caducó!',
+ 'Session expired!' => '¡Sesión Expiró!',
+ 'Setup Templates' => 'Configurar Plantillas',
+ 'Signature' => 'Firma',
+ 'Stylesheet' => 'Hoja de Estilo',
+ 'Supervisor' => 'Supervisor',
+ 'Templates' => 'Plantillas',
+ 'The following Datasets are not in use and can be deleted' => 'Las Bases de Datos siguientes están en desuso y están disponibles para ser borradas',
+ 'The following Datasets need to be updated' => 'Las Bases de Datos siguientes necesitan ser ser actualizadas',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Esta es una verificacion preliminar de fuentes existentes. No se creará ni borrará nada durante esta etapa',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Para añadir un usuario a un grupo, edite un nombre, cambie el nombre de usuario (login) y guarde los cambios. Un nuevo usuario, con las mismas propiedades se guardará bajo el nuevo nombre de usuario (login).',
+ 'Unlock System' => 'Desbloquear Sistema',
+ 'Update Dataset' => 'Actualizar Base de Datos',
+ 'Use Templates' => 'Utilizar Plantillas',
+ 'User' => 'Usuario',
+ 'User deleted!' => '¡Usuario borrado!',
+ 'User saved!' => '¡Usuario guardado!',
+ 'Version' => 'Versión',
+ 'You are logged out' => '¡Ud. está desconectado del sistema!',
+ 'does not exist' => 'no existe',
+ 'is already a member!' => 'ya es miembro',
+ 'localhost' => 'servidor local',
+ 'locked!' => '¡Bloqueado!',
+ 'successfully created!' => '¡Creado satisfactoriamente!',
+ 'successfully deleted!' => '¡Borrado satisfactoriamente!',
+ 'website' => 'sitio web',
+};
+
+$self{subs} = {
+ 'add_user' => 'add_user',
+ 'adminlogin' => 'adminlogin',
+ 'change_admin_password' => 'change_admin_password',
+ 'change_password' => 'change_password',
+ 'check_password' => 'check_password',
+ 'continue' => 'continue',
+ 'create_dataset' => 'create_dataset',
+ 'dbcreate' => 'dbcreate',
+ 'dbdelete' => 'dbdelete',
+ 'dbdriver_defaults' => 'dbdriver_defaults',
+ 'dbselect_source' => 'dbselect_source',
+ 'dbupdate' => 'dbupdate',
+ 'delete' => 'delete',
+ 'delete_dataset' => 'delete_dataset',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'getpassword' => 'getpassword',
+ 'list_users' => 'list_users',
+ 'lock_system' => 'lock_system',
+ 'login' => 'login',
+ 'login_name' => 'login_name',
+ 'logout' => 'logout',
+ 'oracle_database_administration' => 'oracle_database_administration',
+ 'pg_database_administration' => 'pg_database_administration',
+ 'pgpp_database_administration' => 'pgpp_database_administration',
+ 'save' => 'save',
+ 'unlock_system' => 'unlock_system',
+ 'update_dataset' => 'update_dataset',
+ 'agregar_usuario' => 'add_user',
+ 'cambiar_la_contraseña_del_administrador' => 'change_admin_password',
+ 'cambiar_contraseña' => 'change_password',
+ 'continuar' => 'continue',
+ 'crear_base_de_datos' => 'create_dataset',
+ 'borrar' => 'delete',
+ 'borrar_base_de_datos' => 'delete_dataset',
+ 'bloquear_sistema' => 'lock_system',
+ 'login' => 'login',
+ 'salir' => 'logout',
+ 'administración_de_base_de_datos_oracle' => 'oracle_database_administration',
+ 'administración_de_base_de_datos_pg' => 'pg_database_administration',
+ 'administración_de_base_de_datos_pgpp' => 'pgpp_database_administration',
+ 'guardar' => 'save',
+ 'desbloquear_sistema' => 'unlock_system',
+ 'actualizar_base_de_datos' => 'update_dataset',
+};
+
+1;
+
diff --git a/locale/ve/all b/locale/ve/all
new file mode 100755
index 00000000..21492334
--- /dev/null
+++ b/locale/ve/all
@@ -0,0 +1,896 @@
+# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+
+$self{texts} = {
+ 'A' => 'Ajst.',
+ 'AP' => 'CxP',
+ 'AP Aging' => 'Diario Resumido de CxP',
+ 'AP Outstanding' => 'Pendientes de CxP',
+ 'AP Transaction' => 'Asiento de CxP',
+ 'AP Transactions' => 'Asientos de CxP',
+ 'AR' => 'CxC',
+ 'AR Aging' => 'Diario Resumido de CxC',
+ 'AR Outstanding' => 'Pendientes de CxC',
+ 'AR Transaction' => 'Asiento de CxC',
+ 'AR Transactions' => 'Asiento de CxC',
+ 'AR/AP' => 'CxC/CxP',
+ 'About' => 'Acerca de',
+ 'Above' => 'Encima de',
+ 'Access Control' => 'Control de Acceso',
+ 'Access Denied!' => 'Acceso Denegado!',
+ 'Account' => 'Cuenta',
+ 'Account Number' => 'Número de Cuenta',
+ 'Account Number missing!' => 'Falta el Número de la Cuenta',
+ 'Account Type' => 'Tipo de Cuenta',
+ 'Account Type missing!' => 'Falta Tipo de Cuenta',
+ 'Account deleted!' => '¡Cuenta Borrada!',
+ 'Account does not exist!' => 'Cuenta no existe!',
+ 'Account saved!' => '¡Cuenta Guardada!',
+ 'Accounting' => 'Contabilidad',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Accounts' => 'Cuentas',
+ 'Accrual' => 'Acumulado',
+ 'Activate Audit trail' => 'Activar Rastro de Auditoría',
+ 'Activate Audit trails' => 'Activar Rastro de Auditoría',
+ 'Active' => 'Activo',
+ 'Add' => 'Agregar',
+ 'Add AP Transaction' => 'Agregar Asiento de CxP',
+ 'Add AR Transaction' => 'Agregar Asiento de CxC',
+ 'Add Account' => 'Agregar Cuenta',
+ 'Add Assembly' => 'Agregar Juego',
+ 'Add Business' => 'Agregar Negocio',
+ 'Add Cash Transfer Transaction' => 'Agregar asiento de Transferencia',
+ 'Add Customer' => 'Agregar Cliente',
+ 'Add Deduction' => 'Agregar Deducción',
+ 'Add Department' => 'Agregar Centro de Costos',
+ 'Add Employee' => 'Agregar Empleado',
+ 'Add Exchange Rate' => 'Agregar Tasa de Cambio',
+ 'Add GIFI' => 'Agregar Código GIFI',
+ 'Add General Ledger Transaction' => 'Agregar Asiento al Libro Mayor General',
+ 'Add Group' => 'Agregar Grupo',
+ 'Add Job' => 'Agregar Mano de Obra',
+ 'Add Labor/Overhead' => 'Agregar Mano de Obra/Costo Operativo',
+ 'Add Language' => 'Agregar Idioma',
+ 'Add POS Invoice' => 'Agregar Factura PdV',
+ 'Add Part' => 'Agregar Artículo',
+ 'Add Pricegroup' => 'Agregar Grupo de Precios',
+ 'Add Project' => 'Agregar Proyecto',
+ 'Add Purchase Order' => 'Agregar Orden de Compra',
+ 'Add Quotation' => 'Agregar Cotización',
+ 'Add Request for Quotation' => 'Agregar Solicitud de Cotización',
+ 'Add SIC' => 'Agregar SIC',
+ 'Add Sales Invoice' => 'Agregar Factura',
+ 'Add Sales Order' => 'Agregar Pedido',
+ 'Add Service' => 'Agregar Servicio',
+ 'Add Timecard' => 'Agregar Hoja de Tiempo',
+ 'Add Transaction' => 'Agregar Asiento',
+ 'Add User' => 'Agregar Usuario',
+ 'Add Vendor' => 'Agregar Proveedor',
+ 'Add Vendor Invoice' => 'Agregar Factura de Proveedor',
+ 'Add Warehouse' => 'Agregar Almacén',
+ 'Address' => 'Dirección',
+ 'Administration' => 'Administración',
+ 'Administrator' => 'Administrador',
+ 'After Deduction' => 'Después de Deducción',
+ 'All' => 'Todos',
+ 'All Accounts' => 'Todas las Cuentas',
+ 'All Datasets up to date!' => 'Bases de Datos actualizadas!',
+ 'All Items' => 'Todos los Artículos',
+ 'Allowances' => 'Permisos',
+ 'Amount' => 'Monto',
+ 'Amount Due' => 'Cantidad Adeudada',
+ 'Amount missing!' => '¡Falta Monto!',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => '¿Está seguro que desea borrar la Factura Número',
+ 'Are you sure you want to delete Order Number' => '¿Está seguro que desea
+borrar la Orden Número?',
+ 'Are you sure you want to delete Quotation Number' => '¿Está seguro que desea borrar la Cotización número',
+ 'Are you sure you want to delete Timecard for' => '¿Está seguro que desea borrar la hoja de tiempo del',
+ 'Are you sure you want to delete Transaction' => '¿Está seguro que desea borrar el Asiento?',
+ 'Are you sure you want to remove the marked entries from the queue?' => '¿Está seguro que desea remover las entradas seleccionadas de la cola?',
+ 'Assemblies' => 'Juegos',
+ 'Assemblies restocked!' => '¡Juegos realmacendados!',
+ 'Assembly' => 'Juego',
+ 'Assembly stocked!' => 'Juego almacenado!',
+ 'Asset' => 'Activo',
+ 'Attachment' => 'Adjunto',
+ 'Audit Control' => 'Control de Auditoría',
+ 'Audit trail disabled' => 'Rastro de Auditoría desactivado',
+ 'Audit trail enabled' => 'Rastro de Auditoría activado',
+ 'Audit trail removed up to' => 'Rastro de Auditoría removido hasta',
+ 'Audit trails disabled' => 'Rastro de Auditoría desactivado',
+ 'Audit trails enabled' => 'Rastro de Auditoría activado',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Average Cost' => 'Costo Promedio',
+ 'Avg Cost' => 'Costo Prom.',
+ 'BIC' => 'BIC',
+ 'BOM' => 'Listado de Piezas',
+ 'Backup' => 'Respaldo',
+ 'Backup sent to' => 'Respaldo enviado a',
+ 'Balance' => 'Balance',
+ 'Balance Sheet' => 'Hoja de Balance',
+ 'Based on' => 'Basado en',
+ 'Bcc' => 'Cco',
+ 'Before Deduction' => 'Antes de la Deducción',
+ 'Beginning Balance' => 'Balance Inicial',
+ 'Below' => 'Debajo',
+ 'Billing Address' => 'Dirección de Facturación',
+ 'Bin' => 'Anaquel/Cesta',
+ 'Bin List' => 'Lista de Almacenaje',
+ 'Bin Lists' => 'Listas de Almacenaje',
+ 'Books are open' => 'Libros están Abiertos',
+ 'Break' => 'Ruptura',
+ 'Business' => 'Negocio',
+ 'Business Number' => 'N° de Registro Fiscal',
+ 'Business deleted!' => 'Negocio borrado!',
+ 'Business saved!' => 'Negocio guardado!',
+ 'C' => 'C',
+ 'COGS' => 'Costo de Ventas',
+ 'COGS account does not exist!' => 'No existe la cta. de costo de ventas',
+ 'Cannot add timecard for a completed job!' => 'No se puede agregar una hoja de tiempo a un proyecto cerrado',
+ 'Cannot change timecard for a completed job!' => 'No se puede modificar una hoja de tiempo de un proyecto cerrado',
+ 'Cannot create Assembly' => 'No se puede crear el Juego',
+ 'Cannot create Labor' => 'No se puede crear la Mano de Obra',
+ 'Cannot create Lock!' => '¡No se puede crear Bloqueo!',
+ 'Cannot create Part' => 'No se puede crear la parte',
+ 'Cannot create Service' => 'No se puede crear el servicio',
+ 'Cannot delete Timecard!' => 'No se puede borrar la Hoja de Tiempo',
+ 'Cannot delete account!' => '¡No se puede borrar la cuenta!',
+ 'Cannot delete customer!' => '¡No se puede borrar el cliente!',
+ 'Cannot delete default account!' => '¡No se puede borrar la cuenta por omisión!',
+ 'Cannot delete invoice!' => '¡No se puede borrar la factura!',
+ 'Cannot delete item!' => '¡No se puede borrar el artículo!',
+ 'Cannot delete order!' => '¡No se puede borrar el pedido!',
+ 'Cannot delete quotation!' => '¡No puedo borrar la cotización!',
+ 'Cannot delete transaction!' => '¡No se puede borrar el asiento!',
+ 'Cannot delete vendor!' => '¡No se puede borrar el vendedor!',
+ 'Cannot post Payment!' => '¡No se puede registrar el Pago!',
+ 'Cannot post Receipt!' => '¡No se puede registrar el Recibo!',
+ 'Cannot post invoice for a closed period!' => '¡No se puede registrar una factura en un periodo cerrado!',
+ 'Cannot post invoice!' => '¡No se puede registrar la factura!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar un asiento en un periodo cerrado',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => '¡No se puede registrar un asiento con un débito y un crédito para la misma cuenta!',
+ 'Cannot post transaction!' => '¡No se puede registrar el asiento!',
+ 'Cannot remove files!' => '¡No se puede borrar archivos!',
+ 'Cannot save account!' => '¡No se puede guardar la cuenta!',
+ 'Cannot save defaults!' => '!No se puede guardar las preferencias!',
+ 'Cannot save order!' => '¡No se puede guardar el pedido!',
+ 'Cannot save preferences!' => '¡No se puede guardar las Preferencias!',
+ 'Cannot save quotation!' => '¡No se puede guardar la cotización!',
+ 'Cannot save timecard for a closed period!' => 'No se puede guardar una hoja de tiempo para un período cerrado',
+ 'Cannot save timecard!' => '¡No se puede guardar la hoja de tiempo!',
+ 'Cannot set account for more than one of AR, AP or IC' => 'No se admite selección múltiple en CxC, CxP o IC!',
+ 'Cannot set multiple options for' => 'No se admiten opciones simlutaneas para',
+ 'Cannot set multiple options for Item' => 'No se pueden guardar múltiples opciones para el Item',
+ 'Cannot stock Assembly!' => '¡No se puede almacenar el Juego!',
+ 'Cannot stock assemblies!' => '¡No se pueden almacenar los Juegos!',
+ 'Cash' => 'Caja',
+ 'Cc' => 'Cc',
+ 'Change' => 'Cambiar',
+ 'Change Admin Password' => 'Cambiar la contraseña del administrador',
+ 'Change Password' => 'Cambiar Contraseña',
+ 'Charge' => 'Debitar',
+ 'Chart of Accounts' => 'Plan de Cuentas',
+ 'Check' => 'Cheque',
+ 'Check Inventory' => 'Revisar Inventario',
+ 'Checks' => 'Cheques',
+ 'City' => 'Ciudad',
+ 'Cleared' => 'Debitado',
+ 'Click on login name to edit!' => 'Haga clic en el nombre de usuario por
+editar',
+ 'Clocked' => 'Trabajado',
+ 'Close Books up to' => 'Cerrar los libros hasta',
+ 'Closed' => 'Cerrado',
+ 'Code' => 'Código',
+ 'Code missing!' => 'Falta Código',
+ 'Company' => 'Compañía',
+ 'Company Name' => 'Nombre de la Compañía',
+ 'Compare to' => 'Comparar contra',
+ 'Completed' => 'Completado',
+ 'Components' => 'Componentes',
+ 'Confirm' => '¡Favor Confirmar!',
+ 'Confirm!' => '¡Favor Confirmar!',
+ 'Connect to' => 'Conectarse a',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Contra' => 'Cuentas de Orden',
+ 'Copies' => 'Copias',
+ 'Copy to COA' => 'Copiar al Plan de Cuentas',
+ 'Cost' => 'Costo',
+ 'Cost Center' => 'Centro de Costos (Gastos)',
+ 'Could not save pricelist!' => '¡No se pudo guradar lista de precios!',
+ 'Could not save!' => '¡No se pudo guardar!',
+ 'Could not transfer Inventory!' => 'No se pudo transferir Inventario!',
+ 'Country' => 'País',
+ 'Create Chart of Accounts' => 'Crear Plan de Cuentas',
+ 'Create Dataset' => 'Crear Base de Datos',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Límite de Crédito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Current Earnings' => 'Resultado del Periodo',
+ 'Customer' => 'Cliente',
+ 'Customer History' => 'Histórico de Clientes',
+ 'Customer Number' => 'Código de Cliente',
+ 'Customer deleted!' => '¡Cliente borrado!',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no existe en la base datos!',
+ 'Customer saved!' => '¡Cliente guardado!',
+ 'Customers' => 'Clientes',
+ 'DBI not installed!' => '¡DBI no se encuentra instalado!',
+ 'DOB' => 'Fecha de Nacimiento',
+ 'Database' => 'Base de Datos',
+ 'Database Administration' => 'Administración de Base de Datos',
+ 'Database Driver not checked!' => 'No se pudo verificar el Manejador de la Base de Datos',
+ 'Database Host' => 'Servidor de Base de Datos',
+ 'Database User missing!' => '¡Falta Usuario de la Base de Datos',
+ 'Dataset' => 'Base de Datos',
+ 'Dataset is newer than version!' => 'La versión de la Base de Datos es más reciente que la versión del programa',
+ 'Dataset missing!' => '¡Falta Base de Datos!',
+ 'Dataset updated!' => '¡Base de Datos actualizada!',
+ 'Date' => 'Fecha',
+ 'Date Format' => 'Formato de Fecha',
+ 'Date Paid' => 'Fecha de Pago',
+ 'Date Received' => 'Fecha Recibido',
+ 'Date missing!' => '¡Falta fecha!',
+ 'Date received missing!' => '¡Falta fecha de recibo!',
+ 'Date worked' => 'Fecha trabajada',
+ 'Day' => 'Día',
+ 'Day(s)' => 'Día(s)',
+ 'Days' => 'Días',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Decimalplaces' => 'Dígitos decimales',
+ 'Decrease' => 'Reducir',
+ 'Deduct after' => 'Deducir después de',
+ 'Deduction deleted!' => 'Deducción borrada!',
+ 'Deduction saved!' => '¡Deducción guardada!',
+ 'Deductions' => 'Deducciones',
+ 'Default Template' => 'Plantilla por defecto',
+ 'Defaults' => 'Preferencias',
+ 'Defaults saved!' => '¡Preferencias guardadas!',
+ 'Delete' => 'Borrar',
+ 'Delete Account' => 'Borrar Cuenta',
+ 'Delete Dataset' => 'Borrar Base de Datos',
+ 'Delete Schedule' => 'Eliminar Programación',
+ 'Deleting a language will also delete the templates for the language' => 'Eliminar un idioma eliminará también las plantillas del idioma',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Department' => 'Centro de Costos',
+ 'Department deleted!' => '¡Centro de Costos borrado!',
+ 'Department saved!' => '¡Centro de Costos guardado!',
+ 'Departments' => 'Centros de Costos',
+ 'Deposit' => 'Abono',
+ 'Description' => 'Descripción',
+ 'Description Translations' => 'Traducción de Descripciones',
+ 'Description missing!' => '¡Falta descripción!',
+ 'Detail' => 'Detalle',
+ 'Difference' => 'Diferencia',
+ 'Directory' => 'Directorio',
+ 'Discount' => 'Descuento',
+ 'Done' => 'Hecho',
+ 'Drawing' => 'Dibujo',
+ 'Driver' => 'Manejador',
+ 'Dropdown Limit' => 'Límite de Menú desplagable',
+ 'Due Date' => 'Fecha de Vencimiento',
+ 'Due Date missing!' => 'Falta la Fecha de Vencimiento',
+ 'E-mail' => 'E-mail',
+ 'E-mail Statement to' => 'Enviar Comprobante por E-mail a',
+ 'E-mail address missing!' => 'Falta dirección de E-mail',
+ 'E-mail message' => 'Mensaje de E-mail',
+ 'E-mailed' => 'Enviado por E-mail',
+ 'Edit' => 'Editar',
+ 'Edit AP Transaction' => 'Editar Asiento de CxP',
+ 'Edit AR Transaction' => 'Editar Asiento de CxC',
+ 'Edit Account' => 'Editar Cuenta',
+ 'Edit Assembly' => 'Editar Juego',
+ 'Edit Business' => 'Editar Negocio',
+ 'Edit Cash Transfer Transaction' => 'Editar Asiento de Caja',
+ 'Edit Customer' => 'Editar Cliente',
+ 'Edit Deduction' => 'Editar Deducción',
+ 'Edit Department' => 'Editar Centro de Costos',
+ 'Edit Description Translations' => 'Editar Traducción de Descripciones',
+ 'Edit Employee' => 'Editar Empleado',
+ 'Edit GIFI' => 'Editar GIFI',
+ 'Edit General Ledger Transaction' => 'Editar Asiento del Libro Mayor General',
+ 'Edit Group' => 'Editar Grupo',
+ 'Edit Job' => 'Editar Mano de Obra',
+ 'Edit Labor/Overhead' => 'Editar Mano de Obra/Costo Operativo',
+ 'Edit Language' => 'Editar Idioma',
+ 'Edit POS Invoice' => 'Editar Factura de PdV',
+ 'Edit Part' => 'Editar Parte',
+ 'Edit Preferences for' => 'Editar Preferencias de',
+ 'Edit Pricegroup' => 'Editar Grupo de Precios',
+ 'Edit Project' => 'Editar Proyecto',
+ 'Edit Purchase Order' => 'Editar Orden de Compra',
+ 'Edit Quotation' => 'Editar Cotización',
+ 'Edit Request for Quotation' => 'Editar Solicitud de Cotización',
+ 'Edit SIC' => 'Editar SIC',
+ 'Edit Sales Invoice' => 'Edirar Factura de Venta',
+ 'Edit Sales Order' => 'Editar Pedido',
+ 'Edit Service' => 'Editar Servicio',
+ 'Edit Template' => 'Editar Plantilla',
+ 'Edit Timecard' => 'Editar Hoja de Tiempo',
+ 'Edit User' => 'Editar Usuario',
+ 'Edit Vendor' => 'Editar Proveedor',
+ 'Edit Vendor Invoice' => 'Editar Factura de Compra',
+ 'Edit Warehouse' => 'Editar Almacén',
+ 'Employee' => 'Empleado',
+ 'Employee Name' => 'Nombre del Empleado',
+ 'Employee Number' => 'Número de Empleado',
+ 'Employee deleted!' => 'Empleado borrado!',
+ 'Employee pays' => 'Empleado paga',
+ 'Employee saved!' => '¡Empleado guardado!',
+ 'Employees' => 'Empleados',
+ 'Employer' => 'Empleador',
+ 'Employer pays' => 'Empleador paga',
+ 'Enddate' => 'Fecha de Terminación',
+ 'Ends' => 'Termina',
+ 'Enforce transaction reversal for all dates' => 'Forzar reverso de asientos para todas las fechas',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Introduzca hasta 3 letras separadas por dos puntos (p.e. CAD:USD:EUR) para las monedas locales y las extranjeras',
+ 'Equity' => 'Capital',
+ 'Every' => 'Cada',
+ 'Excempt age <' => 'Edad de Excención <',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate for payment missing!' => '¡Falta la tasa de cambio para el pago!',
+ 'Exchange rate missing!' => '¡Falta tasa de cambio!',
+ 'Existing Datasets' => 'Bases de Datos Existentes',
+ 'Expense' => 'Gastos',
+ 'Expense account does not exist!' => '¡La cuenta de gastos no existe!',
+ 'Expense/Asset' => 'Gastos/Activo',
+ 'Extended' => 'Extendido',
+ 'FX' => 'Divisas',
+ 'Failed to save order!' => '¡No se pudo guardar la orden!',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'For' => 'Por',
+ 'Foreign Exchange Gain' => 'Ganancia por Diferencial Cambiario',
+ 'Foreign Exchange Loss' => 'Pérdida por Diferencial Cambiario',
+ 'Friday' => 'Viernes',
+ 'From' => 'Desde',
+ 'From Warehouse' => 'Desde almacén',
+ 'GIFI' => 'Código GIFI',
+ 'GIFI deleted!' => '¡Borrado el código GIFI!',
+ 'GIFI missing!' => '¡Falta código GIFI',
+ 'GIFI saved!' => '¡Código GIFI guardado!',
+ 'GL' => 'Libro Mayor General',
+ 'GL Reference Number' => 'N. Referencia Mayor General',
+ 'GL Transaction' => 'Asiento de Libro Mayor General',
+ 'General Ledger' => 'Libro Mayor General',
+ 'Generate' => 'Generar',
+ 'Generate Orders' => 'Generar órdenes',
+ 'Generate Purchase Orders' => 'Generar órdenes de compra',
+ 'Generate Purchase Orders from Sales Order' => 'Generar órdenes de compra a partir de pedido',
+ 'Generate Sales Order' => 'Generar pedido',
+ 'Generate Sales Order from Purchase Orders' => 'Generar pedido a partir de órdenes de compra',
+ 'Generate Sales Orders' => 'Generar órdenes de compra',
+ 'Goods & Services' => 'Bienes y Servicios',
+ 'Group' => 'Grupo',
+ 'Group Items' => 'Agrupar Artículos',
+ 'Group Translations' => 'Traducción de Grupos',
+ 'Group deleted!' => '¡Grupo eleminado!',
+ 'Group missing!' => '¡Falta grupo!',
+ 'Group saved!' => '¡Grupo guardado!',
+ 'Groups' => 'Grupos',
+ 'HR' => 'Recursos Humanos',
+ 'HTML Templates' => 'Plantillas HTML',
+ 'Heading' => 'Encabezado',
+ 'History' => 'Histórico',
+ 'Home Phone' => 'Teléfono Habitación',
+ 'Host' => 'Servidor de Base de Datos',
+ 'Hostname missing!' => 'Falta el nombre del Servidor de Base de Datos',
+ 'IBAN' => 'N° Cuenta Bancaria',
+ 'ID' => 'N° de identidad',
+ 'Image' => 'Imagen',
+ 'In-line' => 'Incrustado',
+ 'Inactive' => 'Inactivo',
+ 'Include Exchange Rate Difference' => 'Incluir Diferencial por Tasa de Cambio',
+ 'Include Payment' => 'Inclir Pago',
+ 'Include in Report' => 'Incluir en Informe',
+ 'Include in drop-down menus' => 'Incluir en menús desplegables',
+ 'Income' => 'Ingreso',
+ 'Income Statement' => 'Estado de Cuenta de Igresos',
+ 'Income account does not exist!' => '¡No existe la cuenta de ingreso!',
+ 'Incorrect Dataset version!' => 'Versión de Base de Datos incorrecta',
+ 'Increase' => 'Aumentar',
+ 'Individual Items' => 'Artículos Individuales',
+ 'Internal Notes' => 'Anotaciones Internas',
+ 'Inventory' => 'Inventario',
+ 'Inventory account does not exist!' => '¡La cuenta de inventario correspondiente no existe!',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => '¡El inventario del juego debe estar en cero antes de poder declararlo obsoleto!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => '¡El inventario del artículo debe estar en cero antes de poder declararlo obsoleto!',
+ 'Inventory saved!' => 'Inventario guardado!',
+ 'Inventory transferred!' => 'Inventario transferido!',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de Factura',
+ 'Invoice Date missing!' => '¡Falta Fecha de Factura!',
+ 'Invoice Number' => 'Número de Factura',
+ 'Invoice Number missing!' => '¡Falta Número de Factura!',
+ 'Invoice deleted!' => '¡Factura borrada!',
+ 'Invoices' => 'Facturas',
+ 'Is this a summary account to record' => '¿La cuenta a registrar es una cuenta de resumen?',
+ 'Item already on pricelist!' => '¡Artículo está incluido en la lista de precios!',
+ 'Item deleted!' => '¡Artículo borrado!',
+ 'Item not on file!' => '¡El artículo no se encuentra en la base de datos!',
+ 'Items' => 'Artículos',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Job' => 'Trabajo',
+ 'Job Name' => 'Nombre del Trabajo',
+ 'Job Number' => 'N° Trabajo',
+ 'Job Number missing!' => 'Faltá el número del trabajo',
+ 'Job deleted!' => '¡Trabajo eliminado!',
+ 'Job saved!' => '¡Trabajo guardado!',
+ 'Jobs' => 'Trabajos',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'LaTeX Templates' => 'Plantillas LaTeX',
+ 'Labor Code' => 'Código Mano de Obra',
+ 'Labor/Overhead' => 'Mano de Obra/Costo Operativo',
+ 'Language' => 'Idioma',
+ 'Language deleted!' => '¡Idioma borrado!',
+ 'Language saved!' => '¡Idioma guardado!',
+ 'Languages' => 'Idiomas',
+ 'Languages not defined!' => '¡No hay idiomas definidos!',
+ 'Last Cost' => 'Último Costo',
+ 'Last Numbers & Default Accounts' => 'Últimos Números y Cuentas por Omisión',
+ 'Lead' => 'T. de Ent.',
+ 'Leadtime' => 'Tiempo de Entrega',
+ 'Leave host and port field empty unless you want to make a remote connection.' => 'Deje los campos del servidor y de la base de datos y del puerto en blanco al menos que quiera hacer una conexión remota',
+ 'Liability' => 'Pasivo',
+ 'Licensed to' => 'Licencia otorgada a',
+ 'Line Total' => 'Sumatoria de columna',
+ 'Link' => 'Enlaces',
+ 'Link Accounts' => 'Enlazar Cuentas',
+ 'List' => 'Lista',
+ 'List Accounts' => 'Mostrar Cuentas',
+ 'List Businesses' => 'Mostrar Negocios',
+ 'List Departments' => 'Mostrar Centro de Costos',
+ 'List GIFI' => 'Mostrar Código GIFI',
+ 'List Languages' => 'Mostrar Idiomas',
+ 'List Price' => 'Precio de Lista',
+ 'List Projects' => 'Mostrar Proyectos',
+ 'List SIC' => 'Mostrar SIC',
+ 'List Transactions' => 'Mostrar Asientos',
+ 'List Warehouses' => 'Mostrar Almacenes',
+ 'Lock System' => 'Bloquear Sistema',
+ 'Lockfile created!' => '¡Archivo de bloqueo creado!',
+ 'Lockfile removed!' => '¡Archivo de bloqueo borrado!',
+ 'Login' => 'Login',
+ 'Login name missing!' => '¡Falta Login!',
+ 'Logout' => 'Salir',
+ 'Make' => 'Fabricante',
+ 'Manager' => 'Gerente',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'Marked entries printed!' => 'Selección impresa',
+ 'Markup' => 'Margen',
+ 'Maximum' => 'Máximo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Menu Width' => 'Ancho de Menú',
+ 'Message' => 'Mensaje',
+ 'Method' => 'Metódo',
+ 'Microfiche' => 'Microficha',
+ 'Model' => 'Modelo',
+ 'Monday' => 'Lunes',
+ 'Month' => 'Mes',
+ 'Month(s)' => 'Mes(es)',
+ 'Months' => 'Meses',
+ 'Multibyte Encoding' => 'Multibyte Encoding',
+ 'N/A' => 'No existe',
+ 'Name' => 'Nombre',
+ 'Name missing!' => '¡Falta nombre!',
+ 'New Templates' => 'Nuevas Plantillas',
+ 'New Window' => 'Nueva Ventana',
+ 'Next' => 'Prox.',
+ 'Next Date' => 'Siguiente fecha',
+ 'Next Number' => 'Siguiente Número',
+ 'No' => 'No',
+ 'No Database Drivers available!' => '¡No hay ningún manejador de base de datos disponible!',
+ 'No Dataset selected!' => '¡No se ha seleccionado ninguna base de datos!',
+ 'No Employees on file!' => 'No hay empleados registrados',
+ 'No Labor codes on file!' => 'No hay códigos de mano de obra registrados',
+ 'No email address for' => 'Falta la dirección de E-mail para',
+ 'No open Jobs!' => 'No hay trabajos abiertos!',
+ 'No open Projects!' => 'No hay proyectos abiertos!',
+ 'No.' => 'N°',
+ 'Non-taxable' => 'No gravable',
+ 'Non-taxable Purchases' => 'Compras no gravadas',
+ 'Non-taxable Sales' => 'Ventas no gravadas',
+ 'Non-tracking Items' => 'Servicios',
+ 'Notes' => 'Notas',
+ 'Nothing entered!' => 'No hay nada ingresado',
+ 'Nothing selected!' => '¡No se ha seleccionado nada!',
+ 'Nothing to delete!' => '¡No hay nada que borrar!',
+ 'Nothing to print!' => '¡No hay nada que imprimir!',
+ 'Nothing to transfer!' => '¡No hay nada que transferir!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Código',
+ 'Number Format' => 'Formato de Número',
+ 'Number missing in Row' => '¡Falta Número en la Fila!',
+ 'O' => 'O',
+ 'OH' => 'Disp.',
+ 'Obsolete' => 'Obsoleto',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'On Hand' => 'Disponible',
+ 'Open' => 'Abierto',
+ 'Oracle Database Administration' => 'Administración de Base de Datos Oracle',
+ 'Order' => 'Orden',
+ 'Order Date' => 'Fecha de la Orden',
+ 'Order Date missing!' => '¡Falta fecha de la Orden!',
+ 'Order Entry' => 'Órdenes',
+ 'Order Number' => 'Orden N°',
+ 'Order Number missing!' => '¡Falta Número de la Orden!',
+ 'Order deleted!' => '¡Orden borrada!',
+ 'Order generation failed!' => '¡No se pudo generar la orden!',
+ 'Order saved!' => '¡Orden guardada!',
+ 'Orders generated!' => '¡Órdenes generadas con éxito!',
+ 'Orphaned' => 'Huérfano',
+ 'Out of balance transaction!' => '¡Asiento fuera de balance!',
+ 'Out of balance!' => '¡Fuera de balance!',
+ 'Outstanding' => 'Pendientes',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'N° Control',
+ 'POS' => 'PdV',
+ 'POS Invoice' => 'Factura de PdV',
+ 'Packing List' => 'Lista de Empaque',
+ 'Packing List Date missing!' => '¡Falta Fecha de Lista de Empaque!',
+ 'Packing List Number missing!' => '¡Falta Código de Lista de Empaque!',
+ 'Packing Lists' => 'Listas de Empaque',
+ 'Paid' => 'Pagado',
+ 'Part' => 'Parte',
+ 'Part Number' => 'N° Parte',
+ 'Partnumber' => 'Número de Parte',
+ 'Parts' => 'Partes',
+ 'Password' => 'Contraseña',
+ 'Password changed!' => '¡Contraseña cambiada!',
+ 'Password does not match!' => '¡Contraseña incorrecta!',
+ 'Passwords do not match!' => '¡Contraseñas son incorrectas!',
+ 'Payables' => 'CxP',
+ 'Payment' => 'Pago',
+ 'Payment date missing!' => 'Falta fecha de pago',
+ 'Payment posted!' => '¡Pago registrado!',
+ 'Payments' => 'Pagos',
+ 'Payments posted!' => '¡Pagos registrados!',
+ 'Payroll Deduction' => 'Deducciones de Nómina',
+ 'Period' => 'Período',
+ 'Pg Database Administration' => 'Administración de Base de Datos Pg',
+ 'PgPP Database Administration' => 'Administración de Base de Datos PgPP',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Almacén',
+ 'Pick Lists' => 'Listas de Almacén',
+ 'Port' => 'Puerto',
+ 'Port missing!' => '¡Falta definir puerto!',
+ 'Pos' => 'PdV',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Posted!' => '¡Registrado!',
+ 'Posting' => 'Registrando',
+ 'Posting failed!' => '¡Falló el registro!',
+ 'Postscript' => 'Postscript',
+ 'Preferences' => 'Preferencias',
+ 'Preferences saved!' => '¡Preferencias guardadas!',
+ 'Prepayment' => 'Prepago',
+ 'Price' => 'Precio',
+ 'Pricegroup' => 'Grupo de Precios',
+ 'Pricegroup deleted!' => '¡Grupo de Precios Borrado!',
+ 'Pricegroup missing!' => '¡Falta Grupo de Precios!',
+ 'Pricegroup saved!' => '¡Grupo de Precios guardado!',
+ 'Pricegroups' => 'Grupos de Precios',
+ 'Pricelist' => 'Lista de Precios',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Print and Post as new' => 'Imprimir y Registrar como Nuevo',
+ 'Print and Save' => 'Imprimir y Guardar',
+ 'Print and Save as new' => 'Imprimir y Guardar como Nuevo',
+ 'Print and post as new' => 'Imprimir y Registrar como Nuevo',
+ 'Print and save as new' => 'Imprimir y Registrar como Nuevo',
+ 'Printed' => 'Impreso',
+ 'Printer' => 'Impresora',
+ 'Printing' => 'Impromiendo',
+ 'Printing ... ' => 'Imprimiendo...',
+ 'Process Transactions' => 'Procesar Transacciones',
+ 'Production' => 'Producción',
+ 'Profit Center' => 'Centro de Costo (Ingresos)',
+ 'Project' => 'Proyecto',
+ 'Project Description Translations' => 'Traducción de Descripción de Proyectos',
+ 'Project Name' => 'Nombre del Proyecto',
+ 'Project Number' => 'Código de Proyecto',
+ 'Project Number missing!' => '¡Falta Código de Proyecto!',
+ 'Project Transactions' => 'Asientos de Proyecto',
+ 'Project deleted!' => '¡Proyecto borrado!',
+ 'Project not on file!' => '¡Proyecto no existe en la Base de Datos!',
+ 'Project saved!' => '¡Proyecto guardado!',
+ 'Project/Job Name' => 'Nombre Proyecto/Trabajo',
+ 'Project/Job Number' => 'N. Proyecto/Trabajo',
+ 'Projects' => 'Proyectos',
+ 'Purchase Order' => 'Orden de Compra',
+ 'Purchase Order Number' => 'Número de Orden de Compra',
+ 'Purchase Orders' => 'Órdenes de Compra',
+ 'Qty' => 'Cantidad',
+ 'Quantity exceeds available units to stock!' => '¡La Cantidad excede el disponible en en el Inventario!',
+ 'Quarter' => 'Trimestre',
+ 'Quotation' => 'Cotización',
+ 'Quotation ' => 'Cotización ',
+ 'Quotation Date' => 'Fecha de Cotización',
+ 'Quotation Date missing!' => 'Falta Fecha de Cotización',
+ 'Quotation Number' => 'Número de Cotización',
+ 'Quotation Number missing!' => '¡Falta Número de Cotización!',
+ 'Quotation deleted!' => '¡Cotización borrada!',
+ 'Quotations' => 'Cotizaciones',
+ 'R' => 'R',
+ 'RFQ' => 'Solicitud de Cotización',
+ 'RFQ ' => 'Solicitud de cotización ',
+ 'RFQ Number' => 'Número de Solicitud de Cotización',
+ 'RFQs' => 'Solicitudes de Cotización',
+ 'ROP' => 'Existencia Mínima',
+ 'Rate' => 'Tarifa',
+ 'Rate missing!' => '¡Falta Tarifa!',
+ 'Recd' => 'Rcbdo',
+ 'Receipt' => 'Abono',
+ 'Receipt posted!' => '¡Recibo registrado!',
+ 'Receipts' => 'Recibos',
+ 'Receivables' => 'CxC',
+ 'Receive' => 'Almacenar',
+ 'Receive Merchandise' => 'Almacenar Mercancía',
+ 'Reconciliation' => 'Conciliación',
+ 'Reconciliation Report' => 'Reporte de Conciliación',
+ 'Record in' => 'Registrar en',
+ 'Recurring Transaction' => 'Transacción Recurrente',
+ 'Recurring Transactions' => 'Transacciones Recurrentes',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Resto',
+ 'Remove' => 'Eliminar',
+ 'Remove Audit trail up to' => 'Eliminar Rastro de Auditoría hasta',
+ 'Remove Audit trails up to' => 'Eliminar Rastro de Auditoría hasta',
+ 'Removed spoolfiles!' => '¡Archivos de cola de impresión eliminados!',
+ 'Removing marked entries from queue ...' => 'Eliminando selección de la cola de impresión...',
+ 'Repeat' => 'Repetir',
+ 'Report for' => 'Reporte para',
+ 'Reports' => 'Reportes',
+ 'Req' => 'Ped.',
+ 'Request for Quotation' => 'Solicitud de Cotización',
+ 'Request for Quotations' => 'Solicitudes de Cotización',
+ 'Required by' => 'Requerido para el',
+ 'Retained Earnings' => 'Resultado del Ejercicio',
+ 'Role' => 'Función',
+ 'S' => 'S',
+ 'SIC' => 'CIE',
+ 'SIC deleted!' => 'CIE borrado!',
+ 'SIC saved!' => 'CIE guardado!',
+ 'SKU' => 'SKU',
+ 'SSN' => 'RIF',
+ 'Sale' => 'Venta',
+ 'Sales' => 'Ventas',
+ 'Sales Invoice' => 'Factura de Ventas',
+ 'Sales Invoice ' => 'Factura de Ventas ',
+ 'Sales Invoice.' => 'Factura de Ventas.',
+ 'Sales Invoice/AR Transaction Number' => 'N° Factura/Transacción de CxC',
+ 'Sales Invoices' => 'Facturas de Venta',
+ 'Sales Order' => 'Pedido',
+ 'Sales Order Number' => 'N° de Pedido',
+ 'Sales Orders' => 'Pedidos',
+ 'Sales Quotation Number' => 'N° de Cotización de Venta',
+ 'Salesperson' => 'Vendedor',
+ 'Saturday' => 'Sábado',
+ 'Save' => 'Guardar',
+ 'Save Pricelist' => 'Guardar Lista de Precios',
+ 'Save Schedule' => 'Guardar Programación',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Save to File' => 'Archivar',
+ 'Saving' => 'Guardando',
+ 'Schedule' => 'Programar',
+ 'Scheduled' => 'Programada',
+ 'Screen' => 'Pantalla',
+ 'Search' => 'Búsqueda',
+ 'Select' => 'Seleccionar',
+ 'Select Customer' => 'Seleccione el cliente',
+ 'Select Vendor' => 'Seleccione el proveedor',
+ 'Select a Printer!' => '¡Seleccione una impresora!',
+ 'Select a printer!' => '¡Seleccione una impresora!',
+ 'Select all' => 'Seleccionar todos',
+ 'Select from one of the items below' => 'Seleccione de uno de los artículos siguientes',
+ 'Select from one of the names below' => 'Seleccione de uno de los nombres siguientes',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Select items' => 'Seleccione los items',
+ 'Select payment' => '¡Seleccione Pago!',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF!',
+ 'Select txt, postscript or PDF!' => '¡Seleccione txt, postscript o PDF!',
+ 'Sell' => 'Vender',
+ 'Sell Price' => 'Precio de Venta',
+ 'Send by E-Mail' => 'Enviar por E-mail',
+ 'Sending' => 'Enviando',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'Serial',
+ 'Serial Number' => 'Serial',
+ 'Service' => 'Servicio',
+ 'Service Code' => 'Código servicio',
+ 'Service/Labor Code' => 'Código servicio/mano de obra',
+ 'Services' => 'Servicios',
+ 'Session Timeout' => '¡Sesión Caducó!',
+ 'Session expired!' => '¡Sesión Expiró!',
+ 'Setup Templates' => 'Configurar Plantillas',
+ 'Ship' => 'Envío',
+ 'Ship Merchandise' => 'Enviar Mercancía',
+ 'Ship to' => 'Destino',
+ 'Ship via' => 'Envío por',
+ 'Shipping' => 'Envío',
+ 'Shipping Address' => 'Dirección de Envío',
+ 'Shipping Date' => 'Fecha de Envío',
+ 'Shipping Date missing!' => 'Falta Fecha de Envío',
+ 'Shipping Point' => 'Puerto de Embarque',
+ 'Short' => 'Corto',
+ 'Signature' => 'Firma',
+ 'Source' => 'Cheque N°',
+ 'Spoolfile' => 'Archivo de Cola de Impresión',
+ 'Standard' => 'Estándard',
+ 'Standard Industrial Codes' => 'Códigos Industriales Estandarizados (CIE)',
+ 'Startdate' => 'Fecha de Inicio',
+ 'State' => 'Estado',
+ 'State/Province' => 'Estado/Provincia',
+ 'Statement' => 'Estado de Cuenta',
+ 'Statement Balance' => 'Balance de Cuenta',
+ 'Statement sent to' => 'Estado de Cuenta enviado a',
+ 'Statements sent to printer!' => '¡Estado de Cuenta enviado a la impresora!',
+ 'Stock' => 'Inventario',
+ 'Stock Assembly' => 'Inventariar Juego',
+ 'Stocking Date' => 'Fecha de ensamblaje',
+ 'Stylesheet' => 'Hoja de Estilo',
+ 'Sub-contract GIFI' => 'Sub-Contrato GIFI',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resumen',
+ 'Sunday' => 'Domingo',
+ 'Supervisor' => 'Supervisor',
+ 'System' => 'Sistema',
+ 'System Defaults' => 'Predeterminados del Sistema',
+ 'Tax' => 'Impuesto',
+ 'Tax Accounts' => 'Cuentas de Impuestos',
+ 'Tax Included' => 'Impuesto Incluído',
+ 'Tax Number' => 'NIT',
+ 'Tax Number / SSN' => 'RIF/NIT',
+ 'Tax collected' => 'Impuestos retenidos',
+ 'Tax paid' => 'Impuestos pagados',
+ 'Taxable' => 'Gravable',
+ 'Template saved!' => '¡Plantilla guardada!',
+ 'Templates' => 'Plantillas',
+ 'Terms' => 'Condiciones de crédito',
+ 'Text' => 'Texto',
+ 'Text Templates' => 'Plantillas de Texto',
+ 'The following Datasets are not in use and can be deleted' => 'Las Bases de Datos siguientes están en desuso y están disponibles para ser borradas',
+ 'The following Datasets need to be updated' => 'Las Bases de Datos siguientes necesitan ser ser actualizadas',
+ 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'Esta es una verificacion preliminar de fuentes existentes. No se creará ni borrará nada durante esta etapa',
+ 'Thursday' => 'Jueves',
+ 'Till' => 'Caja',
+ 'Time In' => 'Inicio',
+ 'Time Out' => 'Fin',
+ 'Timecard' => 'Hoja de Tiempo',
+ 'Timecard deleted!' => '¡Hoja de tiempo borrada!',
+ 'Timecard saved!' => '¡Hoja de tiempo guardada!',
+ 'Timecards' => 'Hojas de tiempo',
+ 'Times' => 'Veces',
+ 'To' => 'Hasta',
+ 'To Warehouse' => 'Hacia almacén',
+ 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Para añadir un usuario a un grupo, edite un nombre, cambie el nombre de usuario (login) y guarde los cambios. Un nuevo usuario, con las mismas propiedades se guardará bajo el nuevo nombre de usuario (login).',
+ 'Top Level' => 'Descripción Principal',
+ 'Total' => 'Total',
+ 'Tracking Items' => 'Partes',
+ 'Trade Discount' => 'Descuento Comercial',
+ 'Transaction' => 'Asiento',
+ 'Transaction Date missing!' => '¡Falta Fecha de Asiento',
+ 'Transaction Dates' => 'Fecha de transacciones',
+ 'Transaction deleted!' => '¡Asiento borrado!',
+ 'Transaction posted!' => '¡Asiendo registrado!',
+ 'Transaction reversal enforced for all dates' => 'Se ha forzado el reverso de los asientos para todas las fechas',
+ 'Transaction reversal enforced up to' => 'Se ha forzado el reverso de los asientos hasta',
+ 'Transactions' => 'Asientos',
+ 'Transfer' => 'Transferencia',
+ 'Transfer Inventory' => 'Transferir Inventario',
+ 'Transfer from' => 'Transferir desde',
+ 'Transfer to' => 'Transferir a',
+ 'Translation' => 'Traducción',
+ 'Translation deleted!' => 'Traducción borrada!',
+ 'Translation not on file!' => 'Traducción no se encuentra en la Base de Datos',
+ 'Translations' => 'Traducciones',
+ 'Translations saved!' => 'Traducciones guardadadas',
+ 'Trial Balance' => 'Balance de Comprobación',
+ 'Tuesday' => 'Martes',
+ 'Type of Business' => 'Tipo de Negocio',
+ 'Unit' => 'Unidad',
+ 'Unit of measure' => 'Unidad de medida',
+ 'Unlock System' => 'Desbloquear Sistema',
+ 'Update' => 'Actualizar',
+ 'Update Dataset' => 'Actualizar Base de Datos',
+ 'Updated' => 'Actualizado',
+ 'Upgrading to Version' => 'Actualizando Versión',
+ 'Use Templates' => 'Utilizar Plantillas',
+ 'User' => 'Usuario',
+ 'User deleted!' => '¡Usuario borrado!',
+ 'User saved!' => '¡Usuario guardado!',
+ 'Valid until' => 'Válido hasta',
+ 'Vendor' => 'Proveedor',
+ 'Vendor History' => 'Histórico de Proveedores',
+ 'Vendor Invoice' => 'Factura de Compra',
+ 'Vendor Invoice ' => 'Factura de Compra ',
+ 'Vendor Invoice.' => 'Factura de Compra.',
+ 'Vendor Invoice/AP Transaction Number' => '',
+ 'Vendor Invoices' => 'Facturas de Compra',
+ 'Vendor Number' => 'Código de Vendedor',
+ 'Vendor deleted!' => '¡Proveedor borrado!',
+ 'Vendor missing!' => '¡Falta Proveedor!',
+ 'Vendor not on file!' => '¡Proveedor no se encuentra en la Base de Datos!',
+ 'Vendor saved!' => '¡Proveedor guardado!',
+ 'Vendors' => 'Proveedores',
+ 'Version' => 'Versión',
+ 'Warehouse' => 'Almacén',
+ 'Warehouse deleted!' => '¡Almacén borrado!',
+ 'Warehouse saved!' => '¡Almacén guardado!',
+ 'Warehouses' => 'Almacenes',
+ 'Warning!' => '¡Advertencia!',
+ 'Wednesday' => 'Miércoles',
+ 'Week' => 'Semana',
+ 'Week(s)' => 'Semana(s)',
+ 'Weeks' => 'Semanas',
+ 'Weight' => 'Peso',
+ 'Weight Unit' => 'Unidad de Peso',
+ 'What type of item is this?' => '¿Qué tipo de artículo es este?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Work Orders' => 'Órdenes de Trabajo',
+ 'Work Phone' => 'Teléfono Oficina',
+ 'Year' => 'Año',
+ 'Year(s)' => 'Año(s)',
+ 'Yearend' => 'Cierre de Ejercicio',
+ 'Yearend date missing!' => 'Falta fecha del Cierre de Ejercicio',
+ 'Yearend posted!' => 'Cierre de Ejercicio registrado!',
+ 'Yearend posting failed!' => 'Falló registro de Cierre de Ejercicio',
+ 'Years' => 'Años',
+ 'Yes' => 'Sí',
+ 'You are logged out' => '¡Ud. está desconectado del sistema!',
+ 'You are posting an existing transaction!' => 'Está registrando una transacción existente!',
+ 'You are printing and posting an existing transaction!' => 'Está registrando e imprimiendo una transacción existente!',
+ 'You are printing and saving an existing order' => 'Está guardando e imprimiendo una orden existente!',
+ 'You are printing and saving an existing quotation' => 'Está guardando e imprimiendo una cotización existente!',
+ 'You are printing and saving an existing transaction!' => 'Está guardando e imprimiendo una transacción existente!',
+ 'You are saving an existing order' => 'Está guardando una orden existente!',
+ 'You are saving an existing quotation' => 'Está guardando una cotización existente!',
+ 'You are saving an existing transaction!' => 'Está guardando una transacción exixtente!',
+ 'You did not enter a name!' => '¡Ud. no ha introducido un nombre!',
+ 'You must enter a host and port for local and remote connections!' => 'Debe introducir un nombre de servidor y un puerto para conexiones locales y remotas',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'account cannot be set to any other type of account' => 'La cuenta no puede ser cambiada a otro tipo de cuenta',
+ 'as at' => 'al',
+ 'days' => 'días',
+ 'does not exist' => 'no existe',
+ 'done' => 'hecho',
+ 'ea' => 'c/u',
+ 'failed' => 'falló',
+ 'for' => 'por',
+ 'for Period' => 'para el Período',
+ 'is already a member!' => 'ya es miembro',
+ 'localhost' => 'servidor local',
+ 'locked!' => '¡Bloqueado!',
+ 'partsgroup' => 'grupo',
+ 'posted!' => '!Registrado¡',
+ 'sent' => 'enviado',
+ 'successfully created!' => '¡Creado satisfactoriamente!',
+ 'successfully deleted!' => '¡Borrado satisfactoriamente!',
+ 'time(s)' => 'veces',
+ 'unexpected error!' => 'Error inesperado!',
+ 'website' => 'sitio web',
+};
+
+1;
diff --git a/locale/ve/am b/locale/ve/am
new file mode 100755
index 00000000..7cd458a8
--- /dev/null
+++ b/locale/ve/am
@@ -0,0 +1,311 @@
+$self{texts} = {
+ 'AP' => 'CxP',
+ 'AR' => 'CxC',
+ 'About' => 'Acerca de',
+ 'Account' => 'Cuenta',
+ 'Account Number' => 'Número de Cuenta',
+ 'Account Number missing!' => 'Falta el Número de la Cuenta',
+ 'Account Type' => 'Tipo de Cuenta',
+ 'Account Type missing!' => 'Falta Tipo de Cuenta',
+ 'Account deleted!' => '¡Cuenta Borrada!',
+ 'Account does not exist!' => 'Cuenta no existe!',
+ 'Account saved!' => '¡Cuenta Guardada!',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Accrual' => 'Acumulado',
+ 'Activate Audit trail' => 'Activar Rastro de Auditoría',
+ 'Add Account' => 'Agregar Cuenta',
+ 'Add Business' => 'Agregar Negocio',
+ 'Add Department' => 'Agregar Centro de Costos',
+ 'Add GIFI' => 'Agregar Código GIFI',
+ 'Add Language' => 'Agregar Idioma',
+ 'Add SIC' => 'Agregar SIC',
+ 'Add Warehouse' => 'Agregar Almacén',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Monto',
+ 'Asset' => 'Activo',
+ 'Audit Control' => 'Control de Auditoría',
+ 'Audit trail disabled' => 'Rastro de Auditoría desactivado',
+ 'Audit trail enabled' => 'Rastro de Auditoría activado',
+ 'Audit trail removed up to' => 'Rastro de Auditoría removido hasta',
+ 'Backup sent to' => 'Respaldo enviado a',
+ 'Bin List' => 'Lista de Almacenaje',
+ 'Books are open' => 'Libros están Abiertos',
+ 'Business Number' => 'N° de Registro Fiscal',
+ 'Business deleted!' => 'Negocio borrado!',
+ 'Business saved!' => 'Negocio guardado!',
+ 'COGS' => 'Costo de Ventas',
+ 'Cannot delete account!' => '¡No se puede borrar la cuenta!',
+ 'Cannot delete default account!' => '¡No se puede borrar la cuenta por omisión!',
+ 'Cannot save account!' => '¡No se puede guardar la cuenta!',
+ 'Cannot save defaults!' => '!No se puede guardar las preferencias!',
+ 'Cannot save preferences!' => '¡No se puede guardar las Preferencias!',
+ 'Cannot set account for more than one of AR, AP or IC' => 'No se admite selección múltiple en CxC, CxP o IC!',
+ 'Cannot set multiple options for' => 'No se admiten opciones simlutaneas para',
+ 'Cash' => 'Caja',
+ 'Chart of Accounts' => 'Plan de Cuentas',
+ 'Close Books up to' => 'Cerrar los libros hasta',
+ 'Code' => 'Código',
+ 'Code missing!' => 'Falta Código',
+ 'Company' => 'Compañía',
+ 'Confirm' => '¡Favor Confirmar!',
+ 'Confirm!' => '¡Favor Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Contra' => 'Cuentas de Orden',
+ 'Copy to COA' => 'Copiar al Plan de Cuentas',
+ 'Cost Center' => 'Centro de Costos (Gastos)',
+ 'Credit' => 'Crédito',
+ 'Customer Number' => 'Código de Cliente',
+ 'Database Host' => 'Servidor de Base de Datos',
+ 'Dataset' => 'Base de Datos',
+ 'Date Format' => 'Formato de Fecha',
+ 'Day' => 'Día',
+ 'Days' => 'Días',
+ 'Debit' => 'Débito',
+ 'Default Template' => 'Plantilla por defecto',
+ 'Defaults saved!' => '¡Preferencias guardadas!',
+ 'Delete' => 'Borrar',
+ 'Delete Account' => 'Borrar Cuenta',
+ 'Deleting a language will also delete the templates for the language' => 'Eliminar un idioma eliminará también las plantillas del idioma',
+ 'Department deleted!' => '¡Centro de Costos borrado!',
+ 'Department saved!' => '¡Centro de Costos guardado!',
+ 'Departments' => 'Centros de Costos',
+ 'Description' => 'Descripción',
+ 'Description missing!' => '¡Falta descripción!',
+ 'Discount' => 'Descuento',
+ 'Dropdown Limit' => 'Límite de Menú desplagable',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Falta dirección de E-mail',
+ 'Edit' => 'Editar',
+ 'Edit Account' => 'Editar Cuenta',
+ 'Edit Business' => 'Editar Negocio',
+ 'Edit Department' => 'Editar Centro de Costos',
+ 'Edit GIFI' => 'Editar GIFI',
+ 'Edit Language' => 'Editar Idioma',
+ 'Edit Preferences for' => 'Editar Preferencias de',
+ 'Edit SIC' => 'Editar SIC',
+ 'Edit Template' => 'Editar Plantilla',
+ 'Edit Warehouse' => 'Editar Almacén',
+ 'Employee Number' => 'Número de Empleado',
+ 'Ends' => 'Termina',
+ 'Enforce transaction reversal for all dates' => 'Forzar reverso de asientos para todas las fechas',
+ 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Introduzca hasta 3 letras separadas por dos puntos (p.e. CAD:USD:EUR) para las monedas locales y las extranjeras',
+ 'Equity' => 'Capital',
+ 'Every' => 'Cada',
+ 'Expense' => 'Gastos',
+ 'Expense/Asset' => 'Gastos/Activo',
+ 'Fax' => 'Fax',
+ 'Foreign Exchange Gain' => 'Ganancia por Diferencial Cambiario',
+ 'Foreign Exchange Loss' => 'Pérdida por Diferencial Cambiario',
+ 'GIFI' => 'Código GIFI',
+ 'GIFI deleted!' => '¡Borrado el código GIFI!',
+ 'GIFI missing!' => '¡Falta código GIFI',
+ 'GIFI saved!' => '¡Código GIFI guardado!',
+ 'GL' => 'Libro Mayor General',
+ 'GL Reference Number' => 'N. Referencia Mayor General',
+ 'GL Transaction' => 'Asiento de Libro Mayor General',
+ 'Heading' => 'Encabezado',
+ 'ID' => 'N° de identidad',
+ 'Include in drop-down menus' => 'Incluir en menús desplegables',
+ 'Income' => 'Ingreso',
+ 'Inventory' => 'Inventario',
+ 'Invoice' => 'Factura',
+ 'Is this a summary account to record' => '¿La cuenta a registrar es una cuenta de resumen?',
+ 'Language' => 'Idioma',
+ 'Language deleted!' => '¡Idioma borrado!',
+ 'Language saved!' => '¡Idioma guardado!',
+ 'Languages' => 'Idiomas',
+ 'Last Numbers & Default Accounts' => 'Últimos Números y Cuentas por Omisión',
+ 'Liability' => 'Pasivo',
+ 'Licensed to' => 'Licencia otorgada a',
+ 'Link' => 'Enlaces',
+ 'Menu Width' => 'Ancho de Menú',
+ 'Method' => 'Metódo',
+ 'Month' => 'Mes',
+ 'Months' => 'Meses',
+ 'Name' => 'Nombre',
+ 'Next' => 'Prox.',
+ 'Next Number' => 'Siguiente Número',
+ 'No' => 'No',
+ 'No email address for' => 'Falta la dirección de E-mail para',
+ 'Non-tracking Items' => 'Servicios',
+ 'Number' => 'Código',
+ 'Number Format' => 'Formato de Número',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de Empaque',
+ 'Part Number' => 'N° Parte',
+ 'Password' => 'Contraseña',
+ 'Password does not match!' => '¡Contraseña incorrecta!',
+ 'Payables' => 'CxP',
+ 'Payment' => 'Pago',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Almacén',
+ 'Posting' => 'Registrando',
+ 'Postscript' => 'Postscript',
+ 'Preferences saved!' => '¡Preferencias guardadas!',
+ 'Print' => 'Imprimir',
+ 'Printer' => 'Impresora',
+ 'Printing' => 'Impromiendo',
+ 'Process Transactions' => 'Procesar Transacciones',
+ 'Profit Center' => 'Centro de Costo (Ingresos)',
+ 'Purchase Order' => 'Orden de Compra',
+ 'Purchase Order Number' => 'Número de Orden de Compra',
+ 'Purchase Orders' => 'Órdenes de Compra',
+ 'RFQ Number' => 'Número de Solicitud de Cotización',
+ 'Rate' => 'Tarifa',
+ 'Receivables' => 'CxC',
+ 'Recurring Transactions' => 'Transacciones Recurrentes',
+ 'Reference' => 'Referencia',
+ 'Remove Audit trail up to' => 'Eliminar Rastro de Auditoría hasta',
+ 'Retained Earnings' => 'Resultado del Ejercicio',
+ 'SIC deleted!' => 'CIE borrado!',
+ 'SIC saved!' => 'CIE guardado!',
+ 'Sales Invoice' => 'Factura de Ventas',
+ 'Sales Invoice/AR Transaction Number' => 'N° Factura/Transacción de CxC',
+ 'Sales Order' => 'Pedido',
+ 'Sales Order Number' => 'N°de Pedido',
+ 'Sales Orders' => 'Pedidos',
+ 'Sales Quotation Number' => 'N°de Cotización de Venta',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Saving' => 'Guardando',
+ 'Sending' => 'Enviando',
+ 'Session Timeout' => '¡Sesión Caducó!',
+ 'Signature' => 'Firma',
+ 'Standard Industrial Codes' => 'Códigos Industriales Estandarizados (CIE)',
+ 'Stylesheet' => 'Hoja de Estilo',
+ 'System Defaults' => 'Predeterminados del Sistema',
+ 'Tax' => 'Impuesto',
+ 'Template saved!' => '¡Plantilla guardada!',
+ 'Times' => 'Veces',
+ 'Tracking Items' => 'Partes',
+ 'Transaction' => 'Asiento',
+ 'Transaction reversal enforced for all dates' => 'Se ha forzado el reverso de los asientos para todas las fechas',
+ 'Transaction reversal enforced up to' => 'Se ha forzado el reverso de los asientos hasta',
+ 'Type of Business' => 'Tipo de Negocio',
+ 'Update' => 'Actualizar',
+ 'User' => 'Usuario',
+ 'Vendor Invoice' => 'Factura de Compra',
+ 'Vendor Number' => 'Código de Vendedor',
+ 'Version' => 'Versión',
+ 'Warehouse deleted!' => '¡Almacén borrado!',
+ 'Warehouse saved!' => '¡Almacén guardado!',
+ 'Warehouses' => 'Almacenes',
+ 'Week' => 'Semana',
+ 'Weeks' => 'Semanas',
+ 'Weight Unit' => 'Unidad de Peso',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Year' => 'Año',
+ 'Yearend' => 'Cierre de Ejercicio',
+ 'Yearend date missing!' => 'Falta fecha del Cierre de Ejercicio',
+ 'Yearend posted!' => 'Cierre de Ejercicio registrado!',
+ 'Yearend posting failed!' => 'Falló registro de Cierre de Ejercicio',
+ 'Years' => 'Años',
+ 'Yes' => 'Sí',
+ 'account cannot be set to any other type of account' => 'La cuenta no puede ser cambiada a otro tipo de cuenta',
+ 'done' => 'hecho',
+ 'failed' => 'falló',
+ 'localhost' => 'servidor local',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'account_header' => 'account_header',
+ 'add' => 'add',
+ 'add_account' => 'add_account',
+ 'add_business' => 'add_business',
+ 'add_department' => 'add_department',
+ 'add_gifi' => 'add_gifi',
+ 'add_language' => 'add_language',
+ 'add_sic' => 'add_sic',
+ 'add_warehouse' => 'add_warehouse',
+ 'audit_control' => 'audit_control',
+ 'backup' => 'backup',
+ 'business_header' => 'business_header',
+ 'company_logo' => 'company_logo',
+ 'config' => 'config',
+ 'continue' => 'continue',
+ 'copy_to_coa' => 'copy_to_coa',
+ 'defaults' => 'defaults',
+ 'delete' => 'delete',
+ 'delete_account' => 'delete_account',
+ 'delete_business' => 'delete_business',
+ 'delete_department' => 'delete_department',
+ 'delete_gifi' => 'delete_gifi',
+ 'delete_language' => 'delete_language',
+ 'delete_sic' => 'delete_sic',
+ 'delete_warehouse' => 'delete_warehouse',
+ 'department_header' => 'department_header',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_stylesheet' => 'display_stylesheet',
+ 'display_taxes' => 'display_taxes',
+ 'doclose' => 'doclose',
+ 'edit' => 'edit',
+ 'edit_account' => 'edit_account',
+ 'edit_business' => 'edit_business',
+ 'edit_department' => 'edit_department',
+ 'edit_gifi' => 'edit_gifi',
+ 'edit_language' => 'edit_language',
+ 'edit_recurring' => 'edit_recurring',
+ 'edit_sic' => 'edit_sic',
+ 'edit_template' => 'edit_template',
+ 'edit_warehouse' => 'edit_warehouse',
+ 'email_recurring' => 'email_recurring',
+ 'form_footer' => 'form_footer',
+ 'formnames' => 'formnames',
+ 'generate_yearend' => 'generate_yearend',
+ 'gifi_footer' => 'gifi_footer',
+ 'gifi_header' => 'gifi_header',
+ 'js_menu' => 'js_menu',
+ 'language_header' => 'language_header',
+ 'list_account' => 'list_account',
+ 'list_business' => 'list_business',
+ 'list_department' => 'list_department',
+ 'list_gifi' => 'list_gifi',
+ 'list_language' => 'list_language',
+ 'list_sic' => 'list_sic',
+ 'list_templates' => 'list_templates',
+ 'list_warehouse' => 'list_warehouse',
+ 'menubar' => 'menubar',
+ 'print_recurring' => 'print_recurring',
+ 'process_transactions' => 'process_transactions',
+ 'recurring_transactions' => 'recurring_transactions',
+ 'save' => 'save',
+ 'save_account' => 'save_account',
+ 'save_as_new' => 'save_as_new',
+ 'save_business' => 'save_business',
+ 'save_defaults' => 'save_defaults',
+ 'save_department' => 'save_department',
+ 'save_gifi' => 'save_gifi',
+ 'save_language' => 'save_language',
+ 'save_preferences' => 'save_preferences',
+ 'save_sic' => 'save_sic',
+ 'save_taxes' => 'save_taxes',
+ 'save_template' => 'save_template',
+ 'save_warehouse' => 'save_warehouse',
+ 'section_menu' => 'section_menu',
+ 'sic_header' => 'sic_header',
+ 'taxes' => 'taxes',
+ 'update' => 'update',
+ 'warehouse_header' => 'warehouse_header',
+ 'yearend' => 'yearend',
+ 'yes_delete_language' => 'yes_delete_language',
+ 'agregar_cuenta' => 'add_account',
+ 'agregar_negocio' => 'add_business',
+ 'agregar_centro_de_costos' => 'add_department',
+ 'agregar_idioma' => 'add_language',
+ 'agregar_sic' => 'add_sic',
+ 'agregar_almacén' => 'add_warehouse',
+ 'continuar' => 'continue',
+ 'copiar_al_plan_de_cuentas' => 'copy_to_coa',
+ 'borrar' => 'delete',
+ 'editar' => 'edit',
+ 'editar_cuenta' => 'edit_account',
+ 'procesar_transacciones' => 'process_transactions',
+ 'guardar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/ve/ap b/locale/ve/ap
new file mode 100755
index 00000000..bf84043c
--- /dev/null
+++ b/locale/ve/ap
@@ -0,0 +1,240 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Pendientes de CxP',
+ 'AP Transaction' => 'Asiento de CxP',
+ 'AP Transactions' => 'Asientos de CxP',
+ 'AR Outstanding' => 'Pendientes de CxC',
+ 'AR Transaction' => 'Asiento de CxC',
+ 'AR Transactions' => 'Asiento de CxC',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Add AP Transaction' => 'Agregar Asiento de CxP',
+ 'Add AR Transaction' => 'Agregar Asiento de CxC',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Monto',
+ 'Amount Due' => 'Cantidad Adeudada',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => '¿Está seguro que desea borrar el Asiento?',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => '¡No se puede borrar el asiento!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar un asiento en un periodo cerrado',
+ 'Cannot post transaction!' => '¡No se puede registrar el asiento!',
+ 'Cc' => 'Cc',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Cerrado',
+ 'Confirm!' => '¡Favor Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Límite de Crédito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no existe en la base datos!',
+ 'Date' => 'Fecha',
+ 'Date Paid' => 'Fecha de Pago',
+ 'Day(s)' => 'Día(s)',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delete Schedule' => 'Eliminar Programación',
+ 'Department' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de Vencimiento',
+ 'Due Date missing!' => 'Falta la Fecha de Vencimiento',
+ 'E-mail' => 'E-mail',
+ 'E-mail message' => 'Mensaje de E-mail',
+ 'Edit AP Transaction' => 'Editar Asiento de CxP',
+ 'Edit AR Transaction' => 'Editar Asiento de CxC',
+ 'Employee' => 'Empleado',
+ 'Every' => 'Cada',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate for payment missing!' => '¡Falta la tasa de cambio para el pago!',
+ 'Exchange rate missing!' => '¡Falta tasa de cambio!',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'For' => 'Por',
+ 'From' => 'Desde',
+ 'ID' => 'N° de identidad',
+ 'Include Payment' => 'Inclir Pago',
+ 'Include in Report' => 'Incluir en Informe',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de Factura',
+ 'Invoice Date missing!' => '¡Falta Fecha de Factura!',
+ 'Invoice Number' => 'Número de Factura',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Manager' => 'Gerente',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Message' => 'Mensaje',
+ 'Month' => 'Mes',
+ 'Month(s)' => 'Mes(es)',
+ 'Next Date' => 'Siguiente fecha',
+ 'No.' => 'N°',
+ 'Notes' => 'Notas',
+ 'Nothing to print!' => '¡No hay nada que imprimir!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Código',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Number' => 'Orden N°',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'N° Control',
+ 'Paid' => 'Pagado',
+ 'Payment date missing!' => 'Falta fecha de pago',
+ 'Payments' => 'Pagos',
+ 'Period' => 'Período',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Print and Post as new' => 'Imprimir y Registrar como Nuevo',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => '¡Proyecto no existe en la Base de Datos!',
+ 'Quarter' => 'Trimestre',
+ 'Receipt' => 'Abono',
+ 'Recurring Transaction' => 'Transacción Recurrente',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Resto',
+ 'Repeat' => 'Repetir',
+ 'Sales Invoice.' => 'Factura de Ventas.',
+ 'Salesperson' => 'Vendedor',
+ 'Save Schedule' => 'Guardar Programación',
+ 'Schedule' => 'Programar',
+ 'Scheduled' => 'Programada',
+ 'Screen' => 'Pantalla',
+ 'Select a Printer!' => '¡Seleccione una impresora!',
+ 'Select from one of the names below' => 'Seleccione de uno de los nombres siguientes',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Select payment' => '¡Seleccione Pago!',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Ship to' => 'Destino',
+ 'Ship via' => 'Envío por',
+ 'Shipping Point' => 'Puerto de Embarque',
+ 'Source' => 'Cheque N°',
+ 'Startdate' => 'Fecha de Inicio',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resumen',
+ 'Tax' => 'Impuesto',
+ 'Tax Included' => 'Impuesto Incluído',
+ 'Till' => 'Caja',
+ 'To' => 'Hasta',
+ 'Total' => 'Total',
+ 'Transaction' => 'Asiento',
+ 'Transaction deleted!' => '¡Asiento borrado!',
+ 'Transaction posted!' => '¡Asiendo registrado!',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice.' => 'Factura de Compra.',
+ 'Vendor missing!' => '¡Falta Proveedor!',
+ 'Vendor not on file!' => '¡Proveedor no se encuentra en la Base de Datos!',
+ 'Warning!' => '¡Advertencia!',
+ 'Week(s)' => 'Semana(s)',
+ 'Year' => 'Año',
+ 'Year(s)' => 'Año(s)',
+ 'Yes' => 'Sí',
+ 'You are posting an existing transaction!' => 'Está registrando una transacción existente!',
+ 'You are printing and posting an existing transaction!' => 'Está registrando e imprimiendo una transacción existente!',
+ 'You are printing and saving an existing order' => 'Está guardando e imprimiendo una orden existente!',
+ 'You are printing and saving an existing quotation' => 'Está guardando e imprimiendo una cotización existente!',
+ 'You are saving an existing order' => 'Está guardando una orden existente!',
+ 'You are saving an existing quotation' => 'Está guardando una cotización existente!',
+ 'for' => 'por',
+ 'sent' => 'enviado',
+ 'time(s)' => 'veces',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'asiento_de_cxp' => 'ap_transaction',
+ 'asiento_de_cxc' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'eliminar_programación' => 'delete_schedule',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'imprimir_y_registrar' => 'print_and_post',
+ 'imprimir_y_registrar_como_nuevo' => 'print_and_post_as_new',
+ 'factura_de_ventas_' => 'sales_invoice_',
+ 'guardar_programación' => 'save_schedule',
+ 'programar' => 'schedule',
+ 'destino' => 'ship_to',
+ 'actualizar' => 'update',
+ 'factura_de_compra_' => 'vendor_invoice_',
+ 'sí' => 'yes',
+};
+
+1;
+
diff --git a/locale/ve/ar b/locale/ve/ar
new file mode 100755
index 00000000..bf84043c
--- /dev/null
+++ b/locale/ve/ar
@@ -0,0 +1,240 @@
+$self{texts} = {
+ 'AP Outstanding' => 'Pendientes de CxP',
+ 'AP Transaction' => 'Asiento de CxP',
+ 'AP Transactions' => 'Asientos de CxP',
+ 'AR Outstanding' => 'Pendientes de CxC',
+ 'AR Transaction' => 'Asiento de CxC',
+ 'AR Transactions' => 'Asiento de CxC',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Add AP Transaction' => 'Agregar Asiento de CxP',
+ 'Add AR Transaction' => 'Agregar Asiento de CxC',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Monto',
+ 'Amount Due' => 'Cantidad Adeudada',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => '¿Está seguro que desea borrar el Asiento?',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => '¡No se puede borrar el asiento!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar un asiento en un periodo cerrado',
+ 'Cannot post transaction!' => '¡No se puede registrar el asiento!',
+ 'Cc' => 'Cc',
+ 'Check' => 'Cheque',
+ 'Closed' => 'Cerrado',
+ 'Confirm!' => '¡Favor Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Límite de Crédito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no existe en la base datos!',
+ 'Date' => 'Fecha',
+ 'Date Paid' => 'Fecha de Pago',
+ 'Day(s)' => 'Día(s)',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delete Schedule' => 'Eliminar Programación',
+ 'Department' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de Vencimiento',
+ 'Due Date missing!' => 'Falta la Fecha de Vencimiento',
+ 'E-mail' => 'E-mail',
+ 'E-mail message' => 'Mensaje de E-mail',
+ 'Edit AP Transaction' => 'Editar Asiento de CxP',
+ 'Edit AR Transaction' => 'Editar Asiento de CxC',
+ 'Employee' => 'Empleado',
+ 'Every' => 'Cada',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate for payment missing!' => '¡Falta la tasa de cambio para el pago!',
+ 'Exchange rate missing!' => '¡Falta tasa de cambio!',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'For' => 'Por',
+ 'From' => 'Desde',
+ 'ID' => 'N° de identidad',
+ 'Include Payment' => 'Inclir Pago',
+ 'Include in Report' => 'Incluir en Informe',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de Factura',
+ 'Invoice Date missing!' => '¡Falta Fecha de Factura!',
+ 'Invoice Number' => 'Número de Factura',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Manager' => 'Gerente',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Message' => 'Mensaje',
+ 'Month' => 'Mes',
+ 'Month(s)' => 'Mes(es)',
+ 'Next Date' => 'Siguiente fecha',
+ 'No.' => 'N°',
+ 'Notes' => 'Notas',
+ 'Nothing to print!' => '¡No hay nada que imprimir!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Código',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Number' => 'Orden N°',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'N° Control',
+ 'Paid' => 'Pagado',
+ 'Payment date missing!' => 'Falta fecha de pago',
+ 'Payments' => 'Pagos',
+ 'Period' => 'Período',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Print and Post as new' => 'Imprimir y Registrar como Nuevo',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => '¡Proyecto no existe en la Base de Datos!',
+ 'Quarter' => 'Trimestre',
+ 'Receipt' => 'Abono',
+ 'Recurring Transaction' => 'Transacción Recurrente',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Resto',
+ 'Repeat' => 'Repetir',
+ 'Sales Invoice.' => 'Factura de Ventas.',
+ 'Salesperson' => 'Vendedor',
+ 'Save Schedule' => 'Guardar Programación',
+ 'Schedule' => 'Programar',
+ 'Scheduled' => 'Programada',
+ 'Screen' => 'Pantalla',
+ 'Select a Printer!' => '¡Seleccione una impresora!',
+ 'Select from one of the names below' => 'Seleccione de uno de los nombres siguientes',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Select payment' => '¡Seleccione Pago!',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Ship to' => 'Destino',
+ 'Ship via' => 'Envío por',
+ 'Shipping Point' => 'Puerto de Embarque',
+ 'Source' => 'Cheque N°',
+ 'Startdate' => 'Fecha de Inicio',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resumen',
+ 'Tax' => 'Impuesto',
+ 'Tax Included' => 'Impuesto Incluído',
+ 'Till' => 'Caja',
+ 'To' => 'Hasta',
+ 'Total' => 'Total',
+ 'Transaction' => 'Asiento',
+ 'Transaction deleted!' => '¡Asiento borrado!',
+ 'Transaction posted!' => '¡Asiendo registrado!',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice.' => 'Factura de Compra.',
+ 'Vendor missing!' => '¡Falta Proveedor!',
+ 'Vendor not on file!' => '¡Proveedor no se encuentra en la Base de Datos!',
+ 'Warning!' => '¡Advertencia!',
+ 'Week(s)' => 'Semana(s)',
+ 'Year' => 'Año',
+ 'Year(s)' => 'Año(s)',
+ 'Yes' => 'Sí',
+ 'You are posting an existing transaction!' => 'Está registrando una transacción existente!',
+ 'You are printing and posting an existing transaction!' => 'Está registrando e imprimiendo una transacción existente!',
+ 'You are printing and saving an existing order' => 'Está guardando e imprimiendo una orden existente!',
+ 'You are printing and saving an existing quotation' => 'Está guardando e imprimiendo una cotización existente!',
+ 'You are saving an existing order' => 'Está guardando una orden existente!',
+ 'You are saving an existing quotation' => 'Está guardando una cotización existente!',
+ 'for' => 'por',
+ 'sent' => 'enviado',
+ 'time(s)' => 'veces',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_selected' => 'payment_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'asiento_de_cxp' => 'ap_transaction',
+ 'asiento_de_cxc' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'eliminar_programación' => 'delete_schedule',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'imprimir_y_registrar' => 'print_and_post',
+ 'imprimir_y_registrar_como_nuevo' => 'print_and_post_as_new',
+ 'factura_de_ventas_' => 'sales_invoice_',
+ 'guardar_programación' => 'save_schedule',
+ 'programar' => 'schedule',
+ 'destino' => 'ship_to',
+ 'actualizar' => 'update',
+ 'factura_de_compra_' => 'vendor_invoice_',
+ 'sí' => 'yes',
+};
+
+1;
+
diff --git a/locale/ve/arap b/locale/ve/arap
new file mode 100755
index 00000000..8f7aaf92
--- /dev/null
+++ b/locale/ve/arap
@@ -0,0 +1,74 @@
+$self{texts} = {
+ 'Address' => 'Dirección',
+ 'Bcc' => 'Bcc',
+ 'Cc' => 'Cc',
+ 'Continue' => 'Continuar',
+ 'Customer not on file!' => '¡El cliente no existe en la base datos!',
+ 'Date' => 'Fecha',
+ 'Day(s)' => 'Día(s)',
+ 'Delete Schedule' => 'Eliminar Programación',
+ 'Description' => 'Descripción',
+ 'E-mail' => 'E-mail',
+ 'E-mail message' => 'Mensaje de E-mail',
+ 'Every' => 'Cada',
+ 'For' => 'Por',
+ 'Include Payment' => 'Inclir Pago',
+ 'Message' => 'Mensaje',
+ 'Month(s)' => 'Mes(es)',
+ 'Next Date' => 'Siguiente fecha',
+ 'Number' => 'Código',
+ 'Print' => 'Imprimir',
+ 'Project not on file!' => '¡Proyecto no existe en la Base de Datos!',
+ 'Recurring Transaction' => 'Transacción Recurrente',
+ 'Reference' => 'Referencia',
+ 'Repeat' => 'Repetir',
+ 'Save Schedule' => 'Guardar Programación',
+ 'Select from one of the names below' => 'Seleccione de uno de los nombres siguientes',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Startdate' => 'Fecha de Inicio',
+ 'Subject' => 'Asunto',
+ 'To' => 'Hasta',
+ 'Vendor not on file!' => '¡Proveedor no se encuentra en la Base de Datos!',
+ 'Warning!' => '¡Advertencia!',
+ 'Week(s)' => 'Semana(s)',
+ 'Year(s)' => 'Año(s)',
+ 'You are posting an existing transaction!' => 'Está registrando una transacción existente!',
+ 'You are printing and posting an existing transaction!' => 'Está registrando e imprimiendo una transacción existente!',
+ 'You are printing and saving an existing order' => 'Está guardando e imprimiendo una orden existente!',
+ 'You are printing and saving an existing quotation' => 'Está guardando e imprimiendo una cotización existente!',
+ 'You are saving an existing order' => 'Está guardando una orden existente!',
+ 'You are saving an existing quotation' => 'Está guardando una cotización existente!',
+ 'for' => 'por',
+ 'sent' => 'enviado',
+ 'time(s)' => 'veces',
+};
+
+$self{subs} = {
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'gl_transaction' => 'gl_transaction',
+ 'name_selected' => 'name_selected',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuar' => 'continue',
+ 'eliminar_programación' => 'delete_schedule',
+ 'guardar_programación' => 'save_schedule',
+};
+
+1;
+
diff --git a/locale/ve/arapprn b/locale/ve/arapprn
new file mode 100755
index 00000000..1be69349
--- /dev/null
+++ b/locale/ve/arapprn
@@ -0,0 +1,34 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Amount' => 'Monto',
+ 'Continue' => 'Continuar',
+ 'Date' => 'Fecha',
+ 'Memo' => 'Memo',
+ 'Nothing to print!' => '¡No hay nada que imprimir!',
+ 'PDF' => 'PDF',
+ 'Postscript' => 'Postscript',
+ 'Printed' => 'Impreso',
+ 'Scheduled' => 'Programada',
+ 'Screen' => 'Pantalla',
+ 'Select a Printer!' => '¡Seleccione una impresora!',
+ 'Select payment' => '¡Seleccione Pago!',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF!',
+ 'Source' => 'Cheque N°',
+};
+
+$self{subs} = {
+ 'customer_details' => 'customer_details',
+ 'payment_selected' => 'payment_selected',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_check' => 'print_check',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'select_payment' => 'select_payment',
+ 'vendor_details' => 'vendor_details',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/ve/bp b/locale/ve/bp
new file mode 100755
index 00000000..82125af9
--- /dev/null
+++ b/locale/ve/bp
@@ -0,0 +1,68 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Are you sure you want to remove the marked entries from the queue?' => '¿Está seguro que desea remover las entradas seleccionadas de la cola?',
+ 'Bin Lists' => 'Listas de Almacenaje',
+ 'Cannot remove files!' => '¡No se puede borrar archivos!',
+ 'Confirm!' => '¡Favor Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Date' => 'Fecha',
+ 'Employee' => 'Empleado',
+ 'From' => 'Desde',
+ 'ID' => 'N° de identidad',
+ 'Invoice' => 'Factura',
+ 'Invoice Number' => 'Número de Factura',
+ 'Marked entries printed!' => 'Selección impresa',
+ 'Month' => 'Mes',
+ 'Order' => 'Orden',
+ 'Order Number' => 'Orden N°',
+ 'Packing Lists' => 'Listas de Empaque',
+ 'Period' => 'Período',
+ 'Pick Lists' => 'Listas de Almacén',
+ 'Print' => 'Imprimir',
+ 'Printing' => 'Impromiendo',
+ 'Purchase Orders' => 'Órdenes de Compra',
+ 'Quarter' => 'Trimestre',
+ 'Quotation' => 'Cotización',
+ 'Quotation Number' => 'Número de Cotización',
+ 'Quotations' => 'Cotizaciones',
+ 'RFQs' => 'Solicitudes de Cotización',
+ 'Remove' => 'Eliminar',
+ 'Removed spoolfiles!' => '¡Archivos de cola de impresión eliminados!',
+ 'Removing marked entries from queue ...' => 'Eliminando selección de la cola de impresión...',
+ 'Sales Invoices' => 'Facturas de Venta',
+ 'Sales Orders' => 'Pedidos',
+ 'Select all' => 'Seleccionar todos',
+ 'Spoolfile' => 'Archivo de Cola de Impresión',
+ 'To' => 'Hasta',
+ 'Vendor' => 'Proveedor',
+ 'Work Orders' => 'Órdenes de Trabajo',
+ 'Year' => 'Año',
+ 'Yes' => 'Sí',
+ 'done' => 'hecho',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'list_spool' => 'list_spool',
+ 'menubar' => 'menubar',
+ 'print' => 'print',
+ 'remove' => 'remove',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'imprimir' => 'print',
+ 'eliminar' => 'remove',
+ 'seleccionar_todos' => 'select_all',
+ 'sí' => 'yes',
+};
+
+1;
+
diff --git a/locale/ve/ca b/locale/ve/ca
new file mode 100755
index 00000000..8290ce50
--- /dev/null
+++ b/locale/ve/ca
@@ -0,0 +1,60 @@
+$self{texts} = {
+ 'AR/AP' => 'CxC/CxP',
+ 'Account' => 'Cuenta',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Balance',
+ 'Chart of Accounts' => 'Plan de Cuentas',
+ 'Credit' => 'Crédito',
+ 'Current' => 'Actual',
+ 'Date' => 'Fecha',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Department' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'GIFI' => 'Código GIFI',
+ 'Include in Report' => 'Incluir en Informe',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'List Transactions' => 'Mostrar Asientos',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Month' => 'Mes',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Period' => 'Período',
+ 'Project Number' => 'Código de Proyecto',
+ 'Quarter' => 'Trimestre',
+ 'R' => 'R',
+ 'Reference' => 'Referencia',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'Hasta',
+ 'Year' => 'Año',
+};
+
+$self{subs} = {
+ 'ca_subtotal' => 'ca_subtotal',
+ 'chart_of_accounts' => 'chart_of_accounts',
+ 'list' => 'list',
+ 'list_transactions' => 'list_transactions',
+ 'mostrar_asientos' => 'list_transactions',
+};
+
+1;
+
diff --git a/locale/ve/cp b/locale/ve/cp
new file mode 100755
index 00000000..119bdac7
--- /dev/null
+++ b/locale/ve/cp
@@ -0,0 +1,148 @@
+$self{texts} = {
+ 'AP' => 'CxP',
+ 'AR' => 'CxC',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Address' => 'Dirección',
+ 'All' => 'Todos',
+ 'Amount' => 'Monto',
+ 'Amount Due' => 'Cantidad Adeudada',
+ 'Bcc' => 'Bcc',
+ 'Cannot post Payment!' => '¡No se puede registrar el Pago!',
+ 'Cannot post Receipt!' => '¡No se puede registrar el Recibo!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo cerrado!',
+ 'Cc' => 'Cc',
+ 'Continue' => 'Continuar',
+ 'Currency' => 'Moneda',
+ 'Customer' => 'Cliente',
+ 'Customer not on file!' => '¡El cliente no existe en la base datos!',
+ 'Date' => 'Fecha',
+ 'Date missing!' => '¡Falta fecha!',
+ 'Day(s)' => 'Día(s)',
+ 'Delete Schedule' => 'Eliminar Programación',
+ 'Department' => 'Centro de Costos',
+ 'Deposit' => 'Abono',
+ 'Description' => 'Descripción',
+ 'Due Date' => 'Fecha de Vencimiento',
+ 'E-mail' => 'E-mail',
+ 'E-mail message' => 'Mensaje de E-mail',
+ 'Every' => 'Cada',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate missing!' => '¡Falta tasa de cambio!',
+ 'For' => 'Por',
+ 'From' => 'Desde',
+ 'Include Payment' => 'Inclir Pago',
+ 'Invoice' => 'Factura',
+ 'Invoices' => 'Facturas',
+ 'Language' => 'Idioma',
+ 'Memo' => 'Memo',
+ 'Message' => 'Mensaje',
+ 'Month(s)' => 'Mes(es)',
+ 'Next Date' => 'Siguiente fecha',
+ 'Number' => 'Código',
+ 'PDF' => 'PDF',
+ 'Payment' => 'Pago',
+ 'Payment posted!' => '¡Pago registrado!',
+ 'Payments' => 'Pagos',
+ 'Payments posted!' => '¡Pagos registrados!',
+ 'Post' => 'Registrar',
+ 'Posting failed!' => '¡Falló el registro!',
+ 'Postscript' => 'Postscript',
+ 'Prepayment' => 'Prepago',
+ 'Print' => 'Imprimir',
+ 'Project not on file!' => '¡Proyecto no existe en la Base de Datos!',
+ 'Receipt' => 'Abono',
+ 'Receipt posted!' => '¡Recibo registrado!',
+ 'Receipts' => 'Recibos',
+ 'Recurring Transaction' => 'Transacción Recurrente',
+ 'Reference' => 'Referencia',
+ 'Repeat' => 'Repetir',
+ 'Save Schedule' => 'Guardar Programación',
+ 'Screen' => 'Pantalla',
+ 'Select' => 'Seleccionar',
+ 'Select all' => 'Seleccionar todos',
+ 'Select from one of the names below' => 'Seleccione de uno de los nombres siguientes',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF!',
+ 'Source' => 'Cheque N°',
+ 'Startdate' => 'Fecha de Inicio',
+ 'Subject' => 'Asunto',
+ 'To' => 'Hasta',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor not on file!' => '¡Proveedor no se encuentra en la Base de Datos!',
+ 'Warning!' => '¡Advertencia!',
+ 'Week(s)' => 'Semana(s)',
+ 'Year(s)' => 'Año(s)',
+ 'You are posting an existing transaction!' => 'Está registrando una transacción existente!',
+ 'You are printing and posting an existing transaction!' => 'Está registrando e imprimiendo una transacción existente!',
+ 'You are printing and saving an existing order' => 'Está guardando e imprimiendo una orden existente!',
+ 'You are printing and saving an existing quotation' => 'Está guardando e imprimiendo una cotización existente!',
+ 'You are saving an existing order' => 'Está guardando una orden existente!',
+ 'You are saving an existing quotation' => 'Está guardando una cotización existente!',
+ 'for' => 'por',
+ 'sent' => 'enviado',
+ 'time(s)' => 'veces',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_openvc' => 'check_openvc',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'customer_details' => 'customer_details',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoices_due' => 'invoices_due',
+ 'js_menu' => 'js_menu',
+ 'list_invoices' => 'list_invoices',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment' => 'payment',
+ 'payment_footer' => 'payment_footer',
+ 'payment_header' => 'payment_header',
+ 'payments' => 'payments',
+ 'payments_footer' => 'payments_footer',
+ 'payments_header' => 'payments_header',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'post_payment' => 'post_payment',
+ 'post_payments' => 'post_payments',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_payment' => 'print_payment',
+ 'print_payments' => 'print_payments',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'update_payment' => 'update_payment',
+ 'update_payments' => 'update_payments',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuar' => 'continue',
+ 'eliminar_programación' => 'delete_schedule',
+ 'registrar' => 'post',
+ 'imprimir' => 'print',
+ 'guardar_programación' => 'save_schedule',
+ 'seleccionar_todos' => 'select_all',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/ve/ct b/locale/ve/ct
new file mode 100755
index 00000000..f482f067
--- /dev/null
+++ b/locale/ve/ct
@@ -0,0 +1,189 @@
+$self{texts} = {
+ 'AP Transaction' => 'Asiento de CxP',
+ 'AP Transactions' => 'Asientos de CxP',
+ 'AR Transaction' => 'Asiento de CxC',
+ 'AR Transactions' => 'Asiento de CxC',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Active' => 'Activo',
+ 'Add Customer' => 'Agregar Cliente',
+ 'Add Vendor' => 'Agregar Proveedor',
+ 'Address' => 'Dirección',
+ 'All' => 'Todos',
+ 'Amount' => 'Monto',
+ 'BIC' => 'BIC',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Dirección de Facturación',
+ 'Break' => 'Ruptura',
+ 'Cannot delete customer!' => '¡No se puede borrar el cliente!',
+ 'Cannot delete vendor!' => '¡No se puede borrar el vendedor!',
+ 'Cc' => 'Cc',
+ 'City' => 'Ciudad',
+ 'Closed' => 'Cerrado',
+ 'Company Name' => 'Nombre de la Compañía',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Cost' => 'Costo',
+ 'Could not save pricelist!' => '¡No se pudo guradar lista de precios!',
+ 'Country' => 'País',
+ 'Credit Limit' => 'Límite de Crédito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Customer History' => 'Histórico de Clientes',
+ 'Customer Number' => 'Código de Cliente',
+ 'Customer deleted!' => '¡Cliente borrado!',
+ 'Customer saved!' => '¡Cliente guardado!',
+ 'Customers' => 'Clientes',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Discount' => 'Descuento',
+ 'E-mail' => 'E-mail',
+ 'Edit Customer' => 'Editar Cliente',
+ 'Edit Vendor' => 'Editar Proveedor',
+ 'Employee' => 'Empleado',
+ 'Enddate' => 'Fecha de Terminación',
+ 'Fax' => 'Fax',
+ 'From' => 'Desde',
+ 'GIFI' => 'Código GIFI',
+ 'Group' => 'Grupo',
+ 'IBAN' => 'N° Cuenta Bancaria',
+ 'ID' => 'N° de identidad',
+ 'Inactive' => 'Inactivo',
+ 'Include in Report' => 'Incluir en Informe',
+ 'Invoice' => 'Factura',
+ 'Item already on pricelist!' => '¡Artículo está incluido en la lista de precios!',
+ 'Item not on file!' => '¡El artículo no se encuentra en la base de datos!',
+ 'Language' => 'Idioma',
+ 'Leadtime' => 'Tiempo de Entrega',
+ 'Manager' => 'Gerente',
+ 'Name' => 'Nombre',
+ 'Name missing!' => '¡Falta nombre!',
+ 'No.' => 'N°',
+ 'Notes' => 'Notas',
+ 'Number' => 'Código',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Orphaned' => 'Huérfano',
+ 'POS' => 'PdV',
+ 'Part Number' => 'N° Parte',
+ 'Phone' => 'Teléfono',
+ 'Pricegroup' => 'Grupo de Precios',
+ 'Pricelist' => 'Lista de Precios',
+ 'Project Number' => 'Código de Proyecto',
+ 'Purchase Order' => 'Orden de Compra',
+ 'Purchase Orders' => 'Órdenes de Compra',
+ 'Qty' => 'Cantidad',
+ 'Quotation' => 'Cotización',
+ 'Quotations' => 'Cotizaciones',
+ 'RFQ' => 'Solicitud de Cotización',
+ 'Request for Quotations' => 'Solicitudes de Cotización',
+ 'SIC' => 'CIE',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Factura de Ventas',
+ 'Sales Invoices' => 'Facturas de Venta',
+ 'Sales Order' => 'Pedido',
+ 'Sales Orders' => 'Pedidos',
+ 'Salesperson' => 'Vendedor',
+ 'Save' => 'Guardar',
+ 'Save Pricelist' => 'Guardar Lista de Precios',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Search' => 'Búsqueda',
+ 'Select items' => 'Seleccione los items',
+ 'Sell Price' => 'Precio de Venta',
+ 'Serial Number' => 'Serial',
+ 'Shipping Address' => 'Dirección de Envío',
+ 'Startdate' => 'Fecha de Inicio',
+ 'State' => 'Estado',
+ 'State/Province' => 'Estado/Provincia',
+ 'Sub-contract GIFI' => 'Sub-Contrato GIFI',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resumen',
+ 'Tax' => 'Impuesto',
+ 'Tax Included' => 'Impuesto Incluído',
+ 'Tax Number' => 'NIT',
+ 'Tax Number / SSN' => 'RIF/NIT',
+ 'Taxable' => 'Gravable',
+ 'Terms' => 'Condiciones de crédito',
+ 'To' => 'Hasta',
+ 'Total' => 'Total',
+ 'Type of Business' => 'Tipo de Negocio',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Vendor History' => 'Histórico de Proveedores',
+ 'Vendor Invoice' => 'Factura de Compra',
+ 'Vendor Invoices' => 'Facturas de Compra',
+ 'Vendor Number' => 'Código de Vendedor',
+ 'Vendor deleted!' => '¡Proveedor borrado!',
+ 'Vendor saved!' => '¡Proveedor guardado!',
+ 'Vendors' => 'Proveedores',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'days' => 'días',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_customer' => 'add_customer',
+ 'add_transaction' => 'add_transaction',
+ 'add_vendor' => 'add_vendor',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'continue' => 'continue',
+ 'customer_pricelist' => 'customer_pricelist',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_pricelist' => 'display_pricelist',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'history' => 'history',
+ 'include_in_report' => 'include_in_report',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_history' => 'list_history',
+ 'list_names' => 'list_names',
+ 'list_subtotal' => 'list_subtotal',
+ 'menubar' => 'menubar',
+ 'pos' => 'pos',
+ 'pricelist' => 'pricelist',
+ 'pricelist_footer' => 'pricelist_footer',
+ 'pricelist_header' => 'pricelist_header',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_pricelist' => 'save_pricelist',
+ 'search' => 'search',
+ 'search_name' => 'search_name',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_pricelist' => 'vendor_pricelist',
+ 'asiento_de_cxp' => 'ap_transaction',
+ 'asiento_de_cxc' => 'ar_transaction',
+ 'agregar_cliente' => 'add_customer',
+ 'agregar_proveedor' => 'add_vendor',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'pdv' => 'pos',
+ 'lista_de_precios' => 'pricelist',
+ 'orden_de_compra' => 'purchase_order',
+ 'cotización' => 'quotation',
+ 'solicitud_de_cotización' => 'rfq',
+ 'factura_de_ventas' => 'sales_invoice',
+ 'pedido' => 'sales_order',
+ 'guardar' => 'save',
+ 'guardar_lista_de_precios' => 'save_pricelist',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+ 'factura_de_compra' => 'vendor_invoice',
+};
+
+1;
+
diff --git a/locale/ve/gl b/locale/ve/gl
new file mode 100755
index 00000000..a28e6d13
--- /dev/null
+++ b/locale/ve/gl
@@ -0,0 +1,185 @@
+$self{texts} = {
+ 'AP Transaction' => 'Asiento de CxP',
+ 'AR Transaction' => 'Asiento de CxC',
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Add Cash Transfer Transaction' => 'Agregar asiento de Transferencia',
+ 'Add General Ledger Transaction' => 'Agregar Asiento al Libro Mayor General',
+ 'Address' => 'Dirección',
+ 'All' => 'Todos',
+ 'Amount' => 'Monto',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Transaction' => '¿Está seguro que desea borrar el Asiento?',
+ 'Asset' => 'Activo',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Balance',
+ 'Bcc' => 'Bcc',
+ 'Cannot delete transaction!' => '¡No se puede borrar el asiento!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar un asiento en un periodo cerrado',
+ 'Cannot post transaction with a debit and credit entry for the same account!' => '¡No se puede registrar un asiento con un débito y un crédito para la misma cuenta!',
+ 'Cannot post transaction!' => '¡No se puede registrar el asiento!',
+ 'Cc' => 'Cc',
+ 'Confirm!' => '¡Favor Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Current' => 'Actual',
+ 'Customer not on file!' => '¡El cliente no existe en la base datos!',
+ 'Date' => 'Fecha',
+ 'Day(s)' => 'Día(s)',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delete Schedule' => 'Eliminar Programación',
+ 'Department' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'E-mail' => 'E-mail',
+ 'E-mail message' => 'Mensaje de E-mail',
+ 'Edit Cash Transfer Transaction' => 'Editar Asiento de Caja',
+ 'Edit General Ledger Transaction' => 'Editar Asiento del Libro Mayor General',
+ 'Equity' => 'Capital',
+ 'Every' => 'Cada',
+ 'Expense' => 'Gastos',
+ 'FX' => 'Divisas',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'For' => 'Por',
+ 'From' => 'Desde',
+ 'GIFI' => 'Código GIFI',
+ 'GL Transaction' => 'Asiento de Libro Mayor General',
+ 'General Ledger' => 'Libro Mayor General',
+ 'ID' => 'N° de identidad',
+ 'Include Payment' => 'Inclir Pago',
+ 'Include in Report' => 'Incluir en Informe',
+ 'Income' => 'Ingreso',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Liability' => 'Pasivo',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Message' => 'Mensaje',
+ 'Month' => 'Mes',
+ 'Month(s)' => 'Mes(es)',
+ 'Next Date' => 'Siguiente fecha',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Código',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Out of balance transaction!' => '¡Asiento fuera de balance!',
+ 'Period' => 'Período',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Print' => 'Imprimir',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => '¡Proyecto no existe en la Base de Datos!',
+ 'Quarter' => 'Trimestre',
+ 'R' => 'R',
+ 'Recurring Transaction' => 'Transacción Recurrente',
+ 'Reference' => 'Referencia',
+ 'Repeat' => 'Repetir',
+ 'Reports' => 'Reportes',
+ 'Sales Invoice ' => 'Factura de Ventas ',
+ 'Save Schedule' => 'Guardar Programación',
+ 'Schedule' => 'Programar',
+ 'Scheduled' => 'Programada',
+ 'Select from one of the names below' => 'Seleccione de uno de los nombres siguientes',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Source' => 'Cheque N°',
+ 'Startdate' => 'Fecha de Inicio',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'To' => 'Hasta',
+ 'Transaction Date missing!' => '¡Falta Fecha de Asiento',
+ 'Transaction deleted!' => '¡Asiento borrado!',
+ 'Transaction posted!' => '¡Asiendo registrado!',
+ 'Update' => 'Actualizar',
+ 'Vendor Invoice ' => 'Factura de Compra ',
+ 'Vendor not on file!' => '¡Proveedor no se encuentra en la Base de Datos!',
+ 'Warning!' => '¡Advertencia!',
+ 'Week(s)' => 'Semana(s)',
+ 'Year' => 'Año',
+ 'Year(s)' => 'Año(s)',
+ 'Yes' => 'Sí',
+ 'You are posting an existing transaction!' => 'Está registrando una transacción existente!',
+ 'You are printing and posting an existing transaction!' => 'Está registrando e imprimiendo una transacción existente!',
+ 'You are printing and saving an existing order' => 'Está guardando e imprimiendo una orden existente!',
+ 'You are printing and saving an existing quotation' => 'Está guardando e imprimiendo una cotización existente!',
+ 'You are saving an existing order' => 'Está guardando una orden existente!',
+ 'You are saving an existing quotation' => 'Está guardando una cotización existente!',
+ 'for' => 'por',
+ 'sent' => 'enviado',
+ 'time(s)' => 'veces',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_links' => 'create_links',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_rows' => 'display_rows',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'gl_subtotal' => 'gl_subtotal',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'update' => 'update',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'asiento_de_cxp' => 'ap_transaction',
+ 'asiento_de_cxc' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'eliminar_programación' => 'delete_schedule',
+ 'asiento_de_libro_mayor_general' => 'gl_transaction',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'factura_de_ventas_' => 'sales_invoice_',
+ 'guardar_programación' => 'save_schedule',
+ 'programar' => 'schedule',
+ 'actualizar' => 'update',
+ 'factura_de_compra_' => 'vendor_invoice_',
+ 'sí' => 'yes',
+};
+
+1;
+
diff --git a/locale/ve/hr b/locale/ve/hr
new file mode 100755
index 00000000..57b0b1ed
--- /dev/null
+++ b/locale/ve/hr
@@ -0,0 +1,119 @@
+$self{texts} = {
+ 'AP' => 'CxP',
+ 'Above' => 'Encima de',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Active' => 'Activo',
+ 'Add Deduction' => 'Agregar Deducción',
+ 'Add Employee' => 'Agregar Empleado',
+ 'Address' => 'Dirección',
+ 'Administrator' => 'Administrador',
+ 'After Deduction' => 'Después de Deducción',
+ 'All' => 'Todos',
+ 'Allowances' => 'Permisos',
+ 'Amount' => 'Monto',
+ 'Amount missing!' => '¡Falta Monto!',
+ 'BIC' => 'BIC',
+ 'Based on' => 'Basado en',
+ 'Before Deduction' => 'Antes de la Deducción',
+ 'Below' => 'Debajo',
+ 'City' => 'Ciudad',
+ 'Continue' => 'Continuar',
+ 'Country' => 'País',
+ 'DOB' => 'Fecha de Nacimiento',
+ 'Deduct after' => 'Deducir después de',
+ 'Deduction deleted!' => 'Deducción borrada!',
+ 'Deduction saved!' => '¡Deducción guardada!',
+ 'Deductions' => 'Deducciones',
+ 'Delete' => 'Borrar',
+ 'Description' => 'Descripción',
+ 'Description missing!' => '¡Falta descripción!',
+ 'E-mail' => 'E-mail',
+ 'Edit Deduction' => 'Editar Deducción',
+ 'Edit Employee' => 'Editar Empleado',
+ 'Employee' => 'Empleado',
+ 'Employee Name' => 'Nombre del Empleado',
+ 'Employee Number' => 'Número de Empleado',
+ 'Employee deleted!' => 'Empleado borrado!',
+ 'Employee pays' => 'Empleado paga',
+ 'Employee saved!' => '¡Empleado guardado!',
+ 'Employees' => 'Empleados',
+ 'Employer' => 'Empleador',
+ 'Employer pays' => 'Empleador paga',
+ 'Enddate' => 'Fecha de Terminación',
+ 'Expense' => 'Gastos',
+ 'From' => 'Desde',
+ 'Home Phone' => 'Teléfono Habitación',
+ 'IBAN' => 'N° Cuenta Bancaria',
+ 'ID' => 'N° de identidad',
+ 'Inactive' => 'Inactivo',
+ 'Include in Report' => 'Incluir en Informe',
+ 'Login' => 'Login',
+ 'Manager' => 'Gerente',
+ 'Maximum' => 'Máximo',
+ 'Name' => 'Nombre',
+ 'Name missing!' => '¡Falta nombre!',
+ 'Notes' => 'Notas',
+ 'Number' => 'Código',
+ 'Orphaned' => 'Huérfano',
+ 'Payroll Deduction' => 'Deducciones de Nómina',
+ 'Pos' => 'PdV',
+ 'Rate' => 'Tarifa',
+ 'Rate missing!' => '¡Falta Tarifa!',
+ 'Role' => 'Función',
+ 'S' => 'S',
+ 'SSN' => 'RIF',
+ 'Sales' => 'Ventas',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Startdate' => 'Fecha de Inicio',
+ 'State/Province' => 'Estado/Provincia',
+ 'Supervisor' => 'Supervisor',
+ 'To' => 'Hasta',
+ 'Update' => 'Actualizar',
+ 'User' => 'Usuario',
+ 'Work Phone' => 'Teléfono Oficina',
+ 'Zip/Postal Code' => 'Código Postal',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_deduction' => 'add_deduction',
+ 'add_employee' => 'add_employee',
+ 'continue' => 'continue',
+ 'deduction_footer' => 'deduction_footer',
+ 'deduction_header' => 'deduction_header',
+ 'deduction_links' => 'deduction_links',
+ 'delete' => 'delete',
+ 'delete_deduction' => 'delete_deduction',
+ 'delete_employee' => 'delete_employee',
+ 'display' => 'display',
+ 'edit' => 'edit',
+ 'employee_footer' => 'employee_footer',
+ 'employee_header' => 'employee_header',
+ 'employee_links' => 'employee_links',
+ 'js_menu' => 'js_menu',
+ 'list_employees' => 'list_employees',
+ 'menubar' => 'menubar',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_deduction' => 'save_deduction',
+ 'save_employee' => 'save_employee',
+ 'search' => 'search',
+ 'search_deduction' => 'search_deduction',
+ 'search_employee' => 'search_employee',
+ 'section_menu' => 'section_menu',
+ 'update' => 'update',
+ 'update_deduction' => 'update_deduction',
+ 'update_employee' => 'update_employee',
+ 'agregar_deducción' => 'add_deduction',
+ 'agregar_empleado' => 'add_employee',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'guardar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/ve/ic b/locale/ve/ic
new file mode 100755
index 00000000..5a083209
--- /dev/null
+++ b/locale/ve/ic
@@ -0,0 +1,293 @@
+$self{texts} = {
+ 'A' => 'Ajst.',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Accounts' => 'Cuentas',
+ 'Accrual' => 'Acumulado',
+ 'Active' => 'Activo',
+ 'Add' => 'Agregar',
+ 'Add Assembly' => 'Agregar Juego',
+ 'Add Labor/Overhead' => 'Agregar Mano de Obra/Overhead',
+ 'Add Part' => 'Agregar Artículo',
+ 'Add Purchase Order' => 'Agregar Orden de Compra',
+ 'Add Quotation' => 'Agregar Cotización',
+ 'Add Request for Quotation' => 'Agregar Solicitud de Cotización',
+ 'Add Sales Order' => 'Agregar Pedido',
+ 'Add Service' => 'Agregar Servicio',
+ 'Address' => 'Dirección',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Assemblies' => 'Juegos',
+ 'Assemblies restocked!' => '¡Juegos realmacendados!',
+ 'Assembly' => 'Juego',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Average Cost' => 'Costo Promedio',
+ 'Avg Cost' => 'Costo Prom.',
+ 'BOM' => 'Listado de Piezas',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Dirección de Facturación',
+ 'Bin' => 'Anaquel/Cesta',
+ 'Bin List' => 'Lista de Almacenaje',
+ 'Break' => 'Ruptura',
+ 'COGS' => 'Costo de Ventas',
+ 'COGS account does not exist!' => 'No existe la cta. de costo de ventas',
+ 'Cannot create Assembly' => 'No se puede crear el Juego',
+ 'Cannot create Labor' => 'No se puede crear la Mano de Obra',
+ 'Cannot create Part' => 'No se puede crear la parte',
+ 'Cannot create Service' => 'No se puede crear el servicio',
+ 'Cannot delete item!' => '¡No se puede borrar el artículo!',
+ 'Cannot stock assemblies!' => '¡No se pueden almacenar los Juegos!',
+ 'Cash' => 'Caja',
+ 'Cc' => 'Cc',
+ 'Check Inventory' => 'Revisar Inventario',
+ 'City' => 'Ciudad',
+ 'Closed' => 'Cerrado',
+ 'Company Name' => 'Nombre de la Compañía',
+ 'Components' => 'Componentes',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Cost' => 'Costo',
+ 'Country' => 'País',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Customer' => 'Cliente',
+ 'Customer Number' => 'Código de Cliente',
+ 'Customer not on file!' => '¡El cliente no existe en la base datos!',
+ 'Date' => 'Fecha',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Drawing' => 'Dibujo',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Falta dirección de E-mail',
+ 'E-mailed' => 'Enviado por E-mail',
+ 'Edit Assembly' => 'Editar Juego',
+ 'Edit Labor/Overhead' => 'Editar Mano de Obra/Costo Operativo',
+ 'Edit Part' => 'Editar Parte',
+ 'Edit Service' => 'Editar Servicio',
+ 'Employee' => 'Empleado',
+ 'Expense' => 'Gastos',
+ 'Expense account does not exist!' => '¡La cuenta de gastos no existe!',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'Group' => 'Grupo',
+ 'Image' => 'Imagen',
+ 'In-line' => 'Incrustado',
+ 'Include in Report' => 'Incluir en Informe',
+ 'Income' => 'Ingreso',
+ 'Income account does not exist!' => '¡No existe la cuenta de ingreso!',
+ 'Individual Items' => 'Artículos Individuales',
+ 'Inventory' => 'Inventario',
+ 'Inventory account does not exist!' => '¡La cuenta de inventario correspondiente no existe!',
+ 'Inventory quantity must be zero before you can set this assembly obsolete!' => '¡El inventario del juego debe estar en cero antes de poder declararlo obsoleto!',
+ 'Inventory quantity must be zero before you can set this part obsolete!' => '¡El inventario del artículo debe estar en cero antes de poder declararlo obsoleto!',
+ 'Invoice' => 'Factura',
+ 'Invoice Date missing!' => '¡Falta Fecha de Factura!',
+ 'Invoice Number' => 'Número de Factura',
+ 'Invoice Number missing!' => '¡Falta Número de Factura!',
+ 'Item deleted!' => '¡Artículo borrado!',
+ 'Item not on file!' => '¡El artículo no se encuentra en la base de datos!',
+ 'Items' => 'Artículos',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Labor/Overhead' => 'Mano de Obra/Costo Operativo',
+ 'Last Cost' => 'Último Costo',
+ 'Leadtime' => 'Tiempo de Entrega',
+ 'Line Total' => 'Sumatoria de columna',
+ 'Link Accounts' => 'Enlazar Cuentas',
+ 'List' => 'Lista',
+ 'List Price' => 'Precio de Lista',
+ 'Make' => 'Fabricante',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'Markup' => 'Margen',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Message' => 'Mensaje',
+ 'Microfiche' => 'Microficha',
+ 'Model' => 'Modelo',
+ 'Name' => 'Nombre',
+ 'No.' => 'N°',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Código',
+ 'Number missing in Row' => '¡Falta Número en la Fila!',
+ 'OH' => 'Disp.',
+ 'Obsolete' => 'Obsoleto',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'On Hand' => 'Disponible',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Date missing!' => '¡Falta fecha de la Orden!',
+ 'Order Number' => 'Orden N°',
+ 'Order Number missing!' => '¡Falta Número de la Orden!',
+ 'Orphaned' => 'Huérfano',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de Empaque',
+ 'Packing List Date missing!' => '¡Falta Fecha de Lista de Empaque!',
+ 'Packing List Number missing!' => '¡Falta Código de Lista de Empaque!',
+ 'Part' => 'Parte',
+ 'Parts' => 'Partes',
+ 'Period' => 'Período',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Almacén',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Pricegroup' => 'Grupo de Precios',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Purchase Order' => 'Orden de Compra',
+ 'Purchase Orders' => 'Órdenes de Compra',
+ 'Qty' => 'Cantidad',
+ 'Quantity exceeds available units to stock!' => '¡La Cantidad excede el disponible en en el Inventario!',
+ 'Quotation' => 'Cotización',
+ 'Quotation Date missing!' => 'Falta Fecha de Cotización',
+ 'Quotation Number missing!' => '¡Falta Número de Cotización!',
+ 'Quotations' => 'Cotizaciones',
+ 'RFQ' => 'Solicitud de Cotización',
+ 'ROP' => 'Existencia Mínima',
+ 'Recd' => 'Rcbdo',
+ 'Required by' => 'Requerido para el',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Factura de Ventas',
+ 'Sales Invoices' => 'Facturas de Venta',
+ 'Sales Order' => 'Pedido',
+ 'Sales Orders' => 'Pedidos',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Scheduled' => 'Programada',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione de uno de los nombres siguientes',
+ 'Select items' => 'Seleccione los items',
+ 'Select txt, postscript or PDF!' => '¡Seleccione txt, postscript o PDF!',
+ 'Sell' => 'Vender',
+ 'Sell Price' => 'Precio de Venta',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'Serial',
+ 'Serial Number' => 'Serial',
+ 'Service' => 'Servicio',
+ 'Services' => 'Servicios',
+ 'Ship' => 'Envío',
+ 'Ship to' => 'Destino',
+ 'Shipping Address' => 'Dirección de Envío',
+ 'Short' => 'Corto',
+ 'State/Province' => 'Estado/Provincia',
+ 'Stock' => 'Inventario',
+ 'Stock Assembly' => 'Inventariar Juego',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resumen',
+ 'Tax' => 'Impuesto',
+ 'Text' => 'Texto',
+ 'To' => 'Hasta',
+ 'Top Level' => 'Descripción Principal',
+ 'Translation not on file!' => 'Traducción no se encuentra en la Base de Datos',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Updated' => 'Actualizado',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice' => 'Factura de Compra',
+ 'Vendor Invoices' => 'Facturas de Compra',
+ 'Vendor Number' => 'Código de Vendedor',
+ 'Vendor not on file!' => '¡Proveedor no se encuentra en la Base de Datos!',
+ 'Warehouse' => 'Almacén',
+ 'Weight' => 'Peso',
+ 'What type of item is this?' => '¿Qué tipo de artículo es este?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Year' => 'Año',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'days' => 'días',
+ 'sent' => 'enviado',
+ 'unexpected error!' => 'Error inesperado!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_assembly' => 'add_assembly',
+ 'add_labor_overhead' => 'add_labor_overhead',
+ 'add_part' => 'add_part',
+ 'add_service' => 'add_service',
+ 'assembly_row' => 'assembly_row',
+ 'calc_markup' => 'calc_markup',
+ 'check_customer' => 'check_customer',
+ 'check_form' => 'check_form',
+ 'check_vendor' => 'check_vendor',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'customer_row' => 'customer_row',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'edit_assemblyitem' => 'edit_assemblyitem',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_report' => 'generate_report',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'link_part' => 'link_part',
+ 'list_assemblies' => 'list_assemblies',
+ 'makemodel_row' => 'makemodel_row',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'parts_subtotal' => 'parts_subtotal',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'requirements' => 'requirements',
+ 'requirements_report' => 'requirements_report',
+ 'restock_assemblies' => 'restock_assemblies',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'stock_assembly' => 'stock_assembly',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_row' => 'vendor_row',
+ 'agregar_juego' => 'add_assembly',
+ 'agregar_mano_de_obra_overhead' => 'add_labor_overhead',
+ 'agregar_artículo' => 'add_part',
+ 'agregar_servicio' => 'add_service',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'editar_juego' => 'edit_assembly',
+ 'editar_parte' => 'edit_part',
+ 'editar_servicio' => 'edit_service',
+ 'guardar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/ve/io b/locale/ve/io
new file mode 100755
index 00000000..7e444376
--- /dev/null
+++ b/locale/ve/io
@@ -0,0 +1,134 @@
+$self{texts} = {
+ 'Add Purchase Order' => 'Agregar Orden de Compra',
+ 'Add Quotation' => 'Agregar Cotización',
+ 'Add Request for Quotation' => 'Agregar Solicitud de Cotización',
+ 'Add Sales Order' => 'Agregar Pedido',
+ 'Address' => 'Dirección',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Dirección de Facturación',
+ 'Bin' => 'Anaquel/Cesta',
+ 'Bin List' => 'Lista de Almacenaje',
+ 'Cc' => 'Cc',
+ 'City' => 'Ciudad',
+ 'Company Name' => 'Nombre de la Compañía',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Country' => 'País',
+ 'Customer Number' => 'Código de Cliente',
+ 'Date' => 'Fecha',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Description' => 'Descripción',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Falta dirección de E-mail',
+ 'E-mailed' => 'Enviado por E-mail',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'Group' => 'Grupo',
+ 'In-line' => 'Incrustado',
+ 'Invoice' => 'Factura',
+ 'Invoice Date missing!' => '¡Falta Fecha de Factura!',
+ 'Invoice Number missing!' => '¡Falta Número de Factura!',
+ 'Item not on file!' => '¡El artículo no se encuentra en la base de datos!',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Message' => 'Mensaje',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Código',
+ 'Number missing in Row' => '¡Falta Número en la Fila!',
+ 'OH' => 'Disp.',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Order Date missing!' => '¡Falta fecha de la Orden!',
+ 'Order Number missing!' => '¡Falta Número de la Orden!',
+ 'PDF' => 'PDF',
+ 'Packing List' => 'Lista de Empaque',
+ 'Packing List Date missing!' => '¡Falta Fecha de Lista de Empaque!',
+ 'Packing List Number missing!' => '¡Falta Código de Lista de Empaque!',
+ 'Part' => 'Parte',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Almacén',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Purchase Order' => 'Orden de Compra',
+ 'Qty' => 'Cantidad',
+ 'Quotation' => 'Cotización',
+ 'Quotation Date missing!' => 'Falta Fecha de Cotización',
+ 'Quotation Number missing!' => '¡Falta Número de Cotización!',
+ 'Recd' => 'Rcbdo',
+ 'Required by' => 'Requerido para el',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Pedido',
+ 'Scheduled' => 'Programada',
+ 'Screen' => 'Pantalla',
+ 'Select items' => 'Seleccione los items',
+ 'Select txt, postscript or PDF!' => '¡Seleccione txt, postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'Serial',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Envío',
+ 'Ship to' => 'Destino',
+ 'Shipping Address' => 'Dirección de Envío',
+ 'State/Province' => 'Estado/Provincia',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Text' => 'Texto',
+ 'To' => 'Hasta',
+ 'Translation not on file!' => 'Traducción no se encuentra en la Base de Datos',
+ 'Unit' => 'Unidad',
+ 'Vendor Number' => 'Código de Vendedor',
+ 'What type of item is this?' => '¿Qué tipo de artículo es este?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'sent' => 'enviado',
+};
+
+$self{subs} = {
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'new_item' => 'new_item',
+ 'print' => 'print',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rfq' => 'rfq',
+ 'sales_order' => 'sales_order',
+ 'select_item' => 'select_item',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/ve/ir b/locale/ve/ir
new file mode 100755
index 00000000..79116529
--- /dev/null
+++ b/locale/ve/ir
@@ -0,0 +1,254 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Add Purchase Order' => 'Agregar Orden de Compra',
+ 'Add Quotation' => 'Agregar Cotización',
+ 'Add Request for Quotation' => 'Agregar Solicitud de Cotización',
+ 'Add Sales Order' => 'Agregar Pedido',
+ 'Add Vendor Invoice' => 'Agregar Factura de Proveedor',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Monto',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => '¿Está seguro que desea borrar la Factura Número',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Dirección de Facturación',
+ 'Bin' => 'Anaquel/Cesta',
+ 'Bin List' => 'Lista de Almacenaje',
+ 'Cannot delete invoice!' => '¡No se puede borrar la factura!',
+ 'Cannot post invoice for a closed period!' => '¡No se puede registrar una factura en un periodo cerrado!',
+ 'Cannot post invoice!' => '¡No se puede registrar la factura!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo cerrado!',
+ 'Cc' => 'Cc',
+ 'City' => 'Ciudad',
+ 'Company Name' => 'Nombre de la Compañía',
+ 'Confirm!' => '¡Favor Confirmar!',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Country' => 'País',
+ 'Credit Limit' => 'Límite de Crédito',
+ 'Currency' => 'Moneda',
+ 'Customer Number' => 'Código de Cliente',
+ 'Customer not on file!' => '¡El cliente no existe en la base datos!',
+ 'Date' => 'Fecha',
+ 'Day(s)' => 'Día(s)',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delete Schedule' => 'Eliminar Programación',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Department' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Due Date' => 'Fecha de Vencimiento',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Falta dirección de E-mail',
+ 'E-mail message' => 'Mensaje de E-mail',
+ 'E-mailed' => 'Enviado por E-mail',
+ 'Edit Vendor Invoice' => 'Editar Factura de Compra',
+ 'Every' => 'Cada',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate for payment missing!' => '¡Falta la tasa de cambio para el pago!',
+ 'Exchange rate missing!' => '¡Falta tasa de cambio!',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'For' => 'Por',
+ 'Group' => 'Grupo',
+ 'In-line' => 'Incrustado',
+ 'Include Payment' => 'Inclir Pago',
+ 'Internal Notes' => 'Anotaciones Internas',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de Factura',
+ 'Invoice Date missing!' => '¡Falta Fecha de Factura!',
+ 'Invoice Number' => 'Número de Factura',
+ 'Invoice Number missing!' => '¡Falta Número de Factura!',
+ 'Invoice deleted!' => '¡Factura borrada!',
+ 'Item not on file!' => '¡El artículo no se encuentra en la base de datos!',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Language' => 'Idioma',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Message' => 'Mensaje',
+ 'Month(s)' => 'Mes(es)',
+ 'Next Date' => 'Siguiente fecha',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Código',
+ 'Number missing in Row' => '¡Falta Número en la Fila!',
+ 'OH' => 'Disp.',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Order Date missing!' => '¡Falta fecha de la Orden!',
+ 'Order Number' => 'Orden N°',
+ 'Order Number missing!' => '¡Falta Número de la Orden!',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'N° Control',
+ 'Packing List' => 'Lista de Empaque',
+ 'Packing List Date missing!' => '¡Falta Fecha de Lista de Empaque!',
+ 'Packing List Number missing!' => '¡Falta Código de Lista de Empaque!',
+ 'Part' => 'Parte',
+ 'Payment date missing!' => 'Falta fecha de pago',
+ 'Payments' => 'Pagos',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Almacén',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => '¡Proyecto no existe en la Base de Datos!',
+ 'Purchase Order' => 'Orden de Compra',
+ 'Qty' => 'Cantidad',
+ 'Quotation' => 'Cotización',
+ 'Quotation Date missing!' => 'Falta Fecha de Cotización',
+ 'Quotation Number missing!' => '¡Falta Número de Cotización!',
+ 'Recd' => 'Rcbdo',
+ 'Record in' => 'Registrar en',
+ 'Recurring Transaction' => 'Transacción Recurrente',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Resto',
+ 'Repeat' => 'Repetir',
+ 'Required by' => 'Requerido para el',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Pedido',
+ 'Save Schedule' => 'Guardar Programación',
+ 'Schedule' => 'Programar',
+ 'Scheduled' => 'Programada',
+ 'Screen' => 'Pantalla',
+ 'Select from one of the names below' => 'Seleccione de uno de los nombres siguientes',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Select items' => 'Seleccione los items',
+ 'Select txt, postscript or PDF!' => '¡Seleccione txt, postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'Serial',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Envío',
+ 'Ship to' => 'Destino',
+ 'Shipping Address' => 'Dirección de Envío',
+ 'Source' => 'Cheque N°',
+ 'Startdate' => 'Fecha de Inicio',
+ 'State/Province' => 'Estado/Provincia',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Tax Included' => 'Impuesto Incluído',
+ 'Text' => 'Texto',
+ 'To' => 'Hasta',
+ 'Total' => 'Total',
+ 'Translation not on file!' => 'Traducción no se encuentra en la Base de Datos',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Number' => 'Código de Vendedor',
+ 'Vendor missing!' => '¡Falta Proveedor!',
+ 'Vendor not on file!' => '¡Proveedor no se encuentra en la Base de Datos!',
+ 'Warning!' => '¡Advertencia!',
+ 'Week(s)' => 'Semana(s)',
+ 'What type of item is this?' => '¿Qué tipo de artículo es este?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Year(s)' => 'Año(s)',
+ 'Yes' => 'Sí',
+ 'You are posting an existing transaction!' => 'Está registrando una transacción existente!',
+ 'You are printing and posting an existing transaction!' => 'Está registrando e imprimiendo una transacción existente!',
+ 'You are printing and saving an existing order' => 'Está guardando e imprimiendo una orden existente!',
+ 'You are printing and saving an existing quotation' => 'Está guardando e imprimiendo una cotización existente!',
+ 'You are saving an existing order' => 'Está guardando una orden existente!',
+ 'You are saving an existing quotation' => 'Está guardando una cotización existente!',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'ea' => 'c/u',
+ 'for' => 'por',
+ 'posted!' => '!Registrado¡',
+ 'sent' => 'enviado',
+ 'time(s)' => 'veces',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'eliminar_programación' => 'delete_schedule',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'orden_de_compra' => 'purchase_order',
+ 'guardar_programación' => 'save_schedule',
+ 'programar' => 'schedule',
+ 'actualizar' => 'update',
+ 'sí' => 'yes',
+};
+
+1;
+
diff --git a/locale/ve/is b/locale/ve/is
new file mode 100755
index 00000000..61032f84
--- /dev/null
+++ b/locale/ve/is
@@ -0,0 +1,268 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Add Purchase Order' => 'Agregar Orden de Compra',
+ 'Add Quotation' => 'Agregar Cotización',
+ 'Add Request for Quotation' => 'Agregar Solicitud de Cotización',
+ 'Add Sales Invoice' => 'Agregar Factura',
+ 'Add Sales Order' => 'Agregar Pedido',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Monto',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => '¿Está seguro que desea borrar la Factura Número',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Dirección de Facturación',
+ 'Bin' => 'Anaquel/Cesta',
+ 'Bin List' => 'Lista de Almacenaje',
+ 'Business' => 'Negocio',
+ 'Cannot delete invoice!' => '¡No se puede borrar la factura!',
+ 'Cannot post invoice for a closed period!' => '¡No se puede registrar una factura en un periodo cerrado!',
+ 'Cannot post invoice!' => '¡No se puede registrar la factura!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo cerrado!',
+ 'Cc' => 'Cc',
+ 'City' => 'Ciudad',
+ 'Company Name' => 'Nombre de la Compañía',
+ 'Confirm!' => '¡Favor Confirmar!',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Country' => 'País',
+ 'Credit Limit' => 'Límite de Crédito',
+ 'Currency' => 'Moneda',
+ 'Customer' => 'Cliente',
+ 'Customer Number' => 'Código de Cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no existe en la base datos!',
+ 'Date' => 'Fecha',
+ 'Day(s)' => 'Día(s)',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delete Schedule' => 'Eliminar Programación',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Department' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Due Date' => 'Fecha de Vencimiento',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Falta dirección de E-mail',
+ 'E-mail message' => 'Mensaje de E-mail',
+ 'E-mailed' => 'Enviado por E-mail',
+ 'Edit Sales Invoice' => 'Edirar Factura de Venta',
+ 'Every' => 'Cada',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate for payment missing!' => '¡Falta la tasa de cambio para el pago!',
+ 'Exchange rate missing!' => '¡Falta tasa de cambio!',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'For' => 'Por',
+ 'Group' => 'Grupo',
+ 'In-line' => 'Incrustado',
+ 'Include Payment' => 'Inclir Pago',
+ 'Internal Notes' => 'Anotaciones Internas',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de Factura',
+ 'Invoice Date missing!' => '¡Falta Fecha de Factura!',
+ 'Invoice Number' => 'Número de Factura',
+ 'Invoice Number missing!' => '¡Falta Número de Factura!',
+ 'Invoice deleted!' => '¡Factura borrada!',
+ 'Item not on file!' => '¡El artículo no se encuentra en la base de datos!',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Message' => 'Mensaje',
+ 'Month(s)' => 'Mes(es)',
+ 'Next Date' => 'Siguiente fecha',
+ 'Notes' => 'Notas',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Código',
+ 'Number missing in Row' => '¡Falta Número en la Fila!',
+ 'OH' => 'Disp.',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Order Date missing!' => '¡Falta fecha de la Orden!',
+ 'Order Number' => 'Orden N°',
+ 'Order Number missing!' => '¡Falta Número de la Orden!',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'N° Control',
+ 'Packing List' => 'Lista de Empaque',
+ 'Packing List Date missing!' => '¡Falta Fecha de Lista de Empaque!',
+ 'Packing List Number missing!' => '¡Falta Código de Lista de Empaque!',
+ 'Part' => 'Parte',
+ 'Payment date missing!' => 'Falta fecha de pago',
+ 'Payments' => 'Pagos',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Almacén',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Print and Post as new' => 'Imprimir y Registrar como Nuevo',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => '¡Proyecto no existe en la Base de Datos!',
+ 'Purchase Order' => 'Orden de Compra',
+ 'Qty' => 'Cantidad',
+ 'Quotation' => 'Cotización',
+ 'Quotation Date missing!' => 'Falta Fecha de Cotización',
+ 'Quotation Number missing!' => '¡Falta Número de Cotización!',
+ 'Recd' => 'Rcbdo',
+ 'Record in' => 'Registrar en',
+ 'Recurring Transaction' => 'Transacción Recurrente',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Resto',
+ 'Repeat' => 'Repetir',
+ 'Required by' => 'Requerido para el',
+ 'SKU' => 'SKU',
+ 'Sales Order' => 'Pedido',
+ 'Salesperson' => 'Vendedor',
+ 'Save Schedule' => 'Guardar Programación',
+ 'Schedule' => 'Programar',
+ 'Scheduled' => 'Programada',
+ 'Screen' => 'Pantalla',
+ 'Select a Printer!' => '¡Seleccione una impresora!',
+ 'Select from one of the names below' => 'Seleccione de uno de los nombres siguientes',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Select items' => 'Seleccione los items',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF!',
+ 'Select txt, postscript or PDF!' => '¡Seleccione txt, postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'Serial',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Envío',
+ 'Ship to' => 'Destino',
+ 'Ship via' => 'Envío por',
+ 'Shipping Address' => 'Dirección de Envío',
+ 'Shipping Point' => 'Puerto de Embarque',
+ 'Source' => 'Cheque N°',
+ 'Startdate' => 'Fecha de Inicio',
+ 'State/Province' => 'Estado/Provincia',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Tax Included' => 'Impuesto Incluído',
+ 'Text' => 'Texto',
+ 'To' => 'Hasta',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Descuento Comercial',
+ 'Translation not on file!' => 'Traducción no se encuentra en la Base de Datos',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Vendor Number' => 'Código de Vendedor',
+ 'Vendor not on file!' => '¡Proveedor no se encuentra en la Base de Datos!',
+ 'Warning!' => '¡Advertencia!',
+ 'Week(s)' => 'Semana(s)',
+ 'What type of item is this?' => '¿Qué tipo de artículo es este?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Year(s)' => 'Año(s)',
+ 'Yes' => 'Sí',
+ 'You are posting an existing transaction!' => 'Está registrando una transacción existente!',
+ 'You are printing and posting an existing transaction!' => 'Está registrando e imprimiendo una transacción existente!',
+ 'You are printing and saving an existing order' => 'Está guardando e imprimiendo una orden existente!',
+ 'You are printing and saving an existing quotation' => 'Está guardando e imprimiendo una cotización existente!',
+ 'You are saving an existing order' => 'Está guardando una orden existente!',
+ 'You are saving an existing quotation' => 'Está guardando una cotización existente!',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'ea' => 'c/u',
+ 'for' => 'por',
+ 'posted!' => '!Registrado¡',
+ 'sent' => 'enviado',
+ 'time(s)' => 'veces',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'eliminar_programación' => 'delete_schedule',
+ 'e_mail' => 'e_mail',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'imprimir_y_registrar' => 'print_and_post',
+ 'imprimir_y_registrar_como_nuevo' => 'print_and_post_as_new',
+ 'pedido' => 'sales_order',
+ 'guardar_programación' => 'save_schedule',
+ 'programar' => 'schedule',
+ 'destino' => 'ship_to',
+ 'actualizar' => 'update',
+ 'sí' => 'yes',
+};
+
+1;
+
diff --git a/locale/ve/jc b/locale/ve/jc
new file mode 100755
index 00000000..cdfa1194
--- /dev/null
+++ b/locale/ve/jc
@@ -0,0 +1,122 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Amount' => 'Monto',
+ 'Clocked' => 'Trabajado',
+ 'Closed' => 'Cerrado',
+ 'Confirm!' => '¡Favor Confirmar!',
+ 'Continue' => 'Continuar',
+ 'Cost' => 'Costo',
+ 'Current' => 'Actual',
+ 'Date' => 'Fecha',
+ 'Date missing!' => '¡Falta fecha!',
+ 'Date worked' => 'Fecha trabajada',
+ 'Delete' => 'Borrar',
+ 'Description' => 'Descripción',
+ 'Employee' => 'Empleado',
+ 'Friday' => 'Viernes',
+ 'From' => 'Desde',
+ 'ID' => 'N° de identidad',
+ 'Include in Report' => 'Incluir en Informe',
+ 'Job Name' => 'Nombre del Trabajo',
+ 'Job Number' => 'N° Trabajo',
+ 'Job Number missing!' => 'Faltá el número del trabajo',
+ 'Labor Code' => 'Código Mano de Obra',
+ 'Monday' => 'Lunes',
+ 'Month' => 'Mes',
+ 'No Employees on file!' => 'No hay empleados registrados',
+ 'No Labor codes on file!' => 'No hay códigos de mano de obra registrados',
+ 'No open Jobs!' => 'No hay trabajos abiertos!',
+ 'No open Projects!' => 'No hay proyectos abiertos!',
+ 'Notes' => 'Notas',
+ 'Open' => 'Abierto',
+ 'PDF' => 'PDF',
+ 'Part Number' => 'N° Parte',
+ 'Period' => 'Período',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Imprimir',
+ 'Print and Save' => 'Imprimir y Guardar',
+ 'Print and Save as new' => 'Imprimir y Guardar como Nuevo',
+ 'Printed' => 'Impreso',
+ 'Project Name' => 'Nombre del Proyecto',
+ 'Project Number' => 'Código de Proyecto',
+ 'Project Number missing!' => '¡Falta Código de Proyecto!',
+ 'Project/Job Name' => 'Nombre Proyecto/Trabajo',
+ 'Project/Job Number' => 'N. Proyecto/Trabajo',
+ 'Qty' => 'Cantidad',
+ 'Quarter' => 'Trimestre',
+ 'Saturday' => 'Sábado',
+ 'Save' => 'Guardar',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Screen' => 'Pantalla',
+ 'Select a Printer!' => '¡Seleccione una impresora!',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF!',
+ 'Service Code' => 'Código servicio',
+ 'Service/Labor Code' => 'Código servicio/mano de obra',
+ 'Startdate' => 'Fecha de Inicio',
+ 'Subtotal' => 'Subtotal',
+ 'Sunday' => 'Domingo',
+ 'Thursday' => 'Jueves',
+ 'Time In' => 'Inicio',
+ 'Time Out' => 'Fin',
+ 'To' => 'Hasta',
+ 'Total' => 'Total',
+ 'Tuesday' => 'Martes',
+ 'Update' => 'Actualizar',
+ 'Warning!' => '¡Advertencia!',
+ 'Wednesday' => 'Miércoles',
+ 'Year' => 'Año',
+ 'Yes' => 'Sí',
+ 'You are printing and saving an existing transaction!' => 'Está guardando e imprimiendo una transacción existente!',
+ 'You are saving an existing transaction!' => 'Está guardando una transacción exixtente!',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_stores_card' => 'add_stores_card',
+ 'add_time_card' => 'add_time_card',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'delete_timecard' => 'delete_timecard',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'jcitems_links' => 'jcitems_links',
+ 'js_menu' => 'js_menu',
+ 'list_storescard' => 'list_storescard',
+ 'list_timecard' => 'list_timecard',
+ 'menubar' => 'menubar',
+ 'prepare_storescard' => 'prepare_storescard',
+ 'prepare_timecard' => 'prepare_timecard',
+ 'print' => 'print',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_options' => 'print_options',
+ 'print_timecard' => 'print_timecard',
+ 'resave' => 'resave',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'storescard_footer' => 'storescard_footer',
+ 'storescard_header' => 'storescard_header',
+ 'timecard_footer' => 'timecard_footer',
+ 'timecard_header' => 'timecard_header',
+ 'update' => 'update',
+ 'yes' => 'yes',
+ 'yes_delete_timecard' => 'yes_delete_timecard',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'imprimir' => 'print',
+ 'imprimir_y_guardar' => 'print_and_save',
+ 'imprimir_y_guardar_como_nuevo' => 'print_and_save_as_new',
+ 'guardar' => 'save',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'actualizar' => 'update',
+ 'sí' => 'yes',
+};
+
+1;
+
diff --git a/locale/ve/locales.pl b/locale/ve/locales.pl
new file mode 100755
index 00000000..cc8d2be7
--- /dev/null
+++ b/locale/ve/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin/mozilla";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/ve/login b/locale/ve/login
new file mode 100755
index 00000000..c69546ad
--- /dev/null
+++ b/locale/ve/login
@@ -0,0 +1,25 @@
+$self{texts} = {
+ 'Access Denied!' => 'Acceso Denegado!',
+ 'Company' => 'Compañía',
+ 'Continue' => 'Continuar',
+ 'Dataset is newer than version!' => 'La versión de la Base de Datos es más reciente que la versión del programa',
+ 'Incorrect Dataset version!' => 'Versión de Base de Datos incorrecta',
+ 'Login' => 'Login',
+ 'Name' => 'Nombre',
+ 'Password' => 'Contraseña',
+ 'Upgrading to Version' => 'Actualizando Versión',
+ 'Version' => 'Versión',
+ 'You did not enter a name!' => '¡Ud. no ha introducido un nombre!',
+ 'done' => 'hecho',
+};
+
+$self{subs} = {
+ 'login' => 'login',
+ 'login_screen' => 'login_screen',
+ 'logout' => 'logout',
+ 'selectdataset' => 'selectdataset',
+ 'login' => 'login',
+};
+
+1;
+
diff --git a/locale/ve/menu b/locale/ve/menu
new file mode 100755
index 00000000..d104a41b
--- /dev/null
+++ b/locale/ve/menu
@@ -0,0 +1,137 @@
+$self{texts} = {
+ 'AP' => 'CxP',
+ 'AP Aging' => 'Diario Resumido de CxP',
+ 'AP Transaction' => 'Asiento de CxP',
+ 'AR' => 'CxC',
+ 'AR Aging' => 'Diario Resumido de CxC',
+ 'AR Transaction' => 'Asiento de CxC',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Add Account' => 'Agregar Cuenta',
+ 'Add Assembly' => 'Agregar Juego',
+ 'Add Business' => 'Agregar Negocio',
+ 'Add Customer' => 'Agregar Cliente',
+ 'Add Department' => 'Agregar Centro de Costos',
+ 'Add Employee' => 'Agregar Empleado',
+ 'Add GIFI' => 'Agregar Código GIFI',
+ 'Add Group' => 'Agregar Grupo',
+ 'Add Labor/Overhead' => 'Agregar Mano de Obra/Overhead',
+ 'Add Language' => 'Agregar Idioma',
+ 'Add Part' => 'Agregar Artículo',
+ 'Add Pricegroup' => 'Agregar Grupo de Precios',
+ 'Add Project' => 'Agregar Proyecto',
+ 'Add SIC' => 'Agregar SIC',
+ 'Add Service' => 'Agregar Servicio',
+ 'Add Transaction' => 'Agregar Asiento',
+ 'Add Vendor' => 'Agregar Proveedor',
+ 'Add Warehouse' => 'Agregar Almacén',
+ 'All Items' => 'Todos los Artículos',
+ 'Assemblies' => 'Juegos',
+ 'Audit Control' => 'Control de Auditoría',
+ 'Backup' => 'Respaldo',
+ 'Balance Sheet' => 'Hoja de Balance',
+ 'Bin List' => 'Lista de Almacenaje',
+ 'Bin Lists' => 'Listas de Almacenaje',
+ 'Cash' => 'Caja',
+ 'Chart of Accounts' => 'Plan de Cuentas',
+ 'Check' => 'Cheque',
+ 'Components' => 'Componentes',
+ 'Customers' => 'Clientes',
+ 'Defaults' => 'Preferencias',
+ 'Departments' => 'Centros de Costos',
+ 'Description' => 'Descripción',
+ 'Employees' => 'Empleados',
+ 'General Ledger' => 'Libro Mayor General',
+ 'Generate' => 'Generar',
+ 'Goods & Services' => 'Bienes y Servicios',
+ 'Groups' => 'Grupos',
+ 'HR' => 'Recursos Humanos',
+ 'HTML Templates' => 'Plantillas HTML',
+ 'History' => 'Histórico',
+ 'Income Statement' => 'Estado de Cuenta de Igresos',
+ 'Invoice' => 'Factura',
+ 'LaTeX Templates' => 'Plantillas LaTeX',
+ 'Labor/Overhead' => 'Mano de Obra/Costo Operativo',
+ 'Language' => 'Idioma',
+ 'List Accounts' => 'Mostrar Cuentas',
+ 'List Businesses' => 'Mostrar Negocios',
+ 'List Departments' => 'Mostrar Centro de Costos',
+ 'List GIFI' => 'Mostrar Código GIFI',
+ 'List Languages' => 'Mostrar Idiomas',
+ 'List Projects' => 'Mostrar Proyectos',
+ 'List SIC' => 'Mostrar SIC',
+ 'List Warehouses' => 'Mostrar Almacenes',
+ 'Logout' => 'Salir',
+ 'New Window' => 'Nueva Ventana',
+ 'Non-taxable' => 'No gravable',
+ 'Open' => 'Abierto',
+ 'Order Entry' => 'Órdenes',
+ 'Outstanding' => 'Pendientes',
+ 'POS' => 'PdV',
+ 'POS Invoice' => 'Factura de PdV',
+ 'Packing List' => 'Lista de Empaque',
+ 'Packing Lists' => 'Listas de Empaque',
+ 'Parts' => 'Partes',
+ 'Payment' => 'Pago',
+ 'Payments' => 'Pagos',
+ 'Pick List' => 'Lista de Almacén',
+ 'Pick Lists' => 'Listas de Almacén',
+ 'Preferences' => 'Preferencias',
+ 'Pricegroups' => 'Grupos de Precios',
+ 'Print' => 'Imprimir',
+ 'Projects' => 'Proyectos',
+ 'Purchase Order' => 'Orden de Compra',
+ 'Purchase Orders' => 'Órdenes de Compra',
+ 'Quotation' => 'Cotización',
+ 'Quotations' => 'Cotizaciones',
+ 'RFQ' => 'Solicitud de Cotización',
+ 'RFQs' => 'Solicitudes de Cotización',
+ 'Receipt' => 'Abono',
+ 'Receipts' => 'Recibos',
+ 'Receive' => 'Almacenar',
+ 'Reconciliation' => 'Conciliación',
+ 'Recurring Transactions' => 'Transacciones Recurrentes',
+ 'Reports' => 'Reportes',
+ 'SIC' => 'CIE',
+ 'Sale' => 'Venta',
+ 'Sales Invoice' => 'Factura de Ventas',
+ 'Sales Invoices' => 'Facturas de Venta',
+ 'Sales Order' => 'Pedido',
+ 'Sales Orders' => 'Pedidos',
+ 'Save to File' => 'Archivar',
+ 'Search' => 'Búsqueda',
+ 'Send by E-Mail' => 'Enviar por E-mail',
+ 'Services' => 'Servicios',
+ 'Ship' => 'Envío',
+ 'Shipping' => 'Envío',
+ 'Statement' => 'Estado de Cuenta',
+ 'Stock Assembly' => 'Inventariar Juego',
+ 'Stylesheet' => 'Hoja de Estilo',
+ 'System' => 'Sistema',
+ 'Tax collected' => 'Impuestos retenidos',
+ 'Tax paid' => 'Impuestos pagados',
+ 'Text Templates' => 'Plantillas de Texto',
+ 'Transactions' => 'Asientos',
+ 'Transfer' => 'Transferencia',
+ 'Transfer Inventory' => 'Transferir Inventario',
+ 'Translations' => 'Traducciones',
+ 'Trial Balance' => 'Balance de Comprobación',
+ 'Type of Business' => 'Tipo de Negocio',
+ 'Vendor Invoice' => 'Factura de Compra',
+ 'Vendors' => 'Proveedores',
+ 'Version' => 'Versión',
+ 'Warehouses' => 'Almacenes',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Work Orders' => 'Órdenes de Trabajo',
+ 'Yearend' => 'Cierre de Ejercicio',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'display' => 'display',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'section_menu' => 'section_menu',
+};
+
+1;
+
diff --git a/locale/ve/oe b/locale/ve/oe
new file mode 100755
index 00000000..842c6844
--- /dev/null
+++ b/locale/ve/oe
@@ -0,0 +1,372 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Add Exchange Rate' => 'Agregar Tasa de Cambio',
+ 'Add Purchase Order' => 'Agregar Orden de Compra',
+ 'Add Quotation' => 'Agregar Cotización',
+ 'Add Request for Quotation' => 'Agregar Solicitud de Cotización',
+ 'Add Sales Invoice' => 'Agregar Factura',
+ 'Add Sales Order' => 'Agregar Pedido',
+ 'Add Vendor Invoice' => 'Agregar Factura de Proveedor',
+ 'Address' => 'Dirección',
+ 'Amount' => 'Monto',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Order Number' => '¿Está seguro que desea
+borrar la Orden Número?',
+ 'Are you sure you want to delete Quotation Number' => '¿Está seguro que desea borrar la Cotización número',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Dirección de Facturación',
+ 'Bin' => 'Anaquel/Cesta',
+ 'Bin List' => 'Lista de Almacenaje',
+ 'Business' => 'Negocio',
+ 'C' => 'C',
+ 'Cannot delete order!' => '¡No se puede borrar el pedido!',
+ 'Cannot delete quotation!' => '¡No puedo borrar la cotización!',
+ 'Cannot save order!' => '¡No se puede guardar el pedido!',
+ 'Cannot save quotation!' => '¡No se puede guardar la cotización!',
+ 'Cc' => 'Cc',
+ 'City' => 'Ciudad',
+ 'Closed' => 'Cerrado',
+ 'Company Name' => 'Nombre de la Compañía',
+ 'Confirm!' => '¡Favor Confirmar!',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Cost' => 'Costo',
+ 'Could not save!' => '¡No se pudo guardar!',
+ 'Could not transfer Inventory!' => 'No se pudo transferir Inventario!',
+ 'Country' => 'País',
+ 'Credit Limit' => 'Límite de Crédito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer Number' => 'Código de Cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no existe en la base datos!',
+ 'Date' => 'Fecha',
+ 'Date Received' => 'Fecha Recibido',
+ 'Date received missing!' => '¡Falta fecha de recibo!',
+ 'Day(s)' => 'Día(s)',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Delete' => 'Borrar',
+ 'Delete Schedule' => 'Eliminar Programación',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Department' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Done' => 'Hecho',
+ 'E-mail' => 'E-mail',
+ 'E-mail address missing!' => 'Falta dirección de E-mail',
+ 'E-mail message' => 'Mensaje de E-mail',
+ 'E-mailed' => 'Enviado por E-mail',
+ 'Edit Purchase Order' => 'Editar Orden de Compra',
+ 'Edit Quotation' => 'Editar Cotización',
+ 'Edit Request for Quotation' => 'Editar Solicitud de Cotización',
+ 'Edit Sales Order' => 'Editar Pedido',
+ 'Employee' => 'Empleado',
+ 'Every' => 'Cada',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate missing!' => '¡Falta tasa de cambio!',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'For' => 'Por',
+ 'From' => 'Desde',
+ 'From Warehouse' => 'Desde almacén',
+ 'Generate Orders' => 'Generar órdenes',
+ 'Generate Purchase Orders' => 'Generar órdenes de compra',
+ 'Generate Purchase Orders from Sales Order' => 'Generar órdenes de compra a partir de pedido',
+ 'Generate Sales Order' => 'Generar pedido',
+ 'Generate Sales Order from Purchase Orders' => 'Generar pedido a partir de órdenes de compra',
+ 'Group' => 'Grupo',
+ 'ID' => 'N° de identidad',
+ 'In-line' => 'Incrustado',
+ 'Include Payment' => 'Inclir Pago',
+ 'Include in Report' => 'Incluir en Informe',
+ 'Internal Notes' => 'Anotaciones Internas',
+ 'Inventory saved!' => 'Inventario guardado!',
+ 'Inventory transferred!' => 'Inventario transferido!',
+ 'Invoice' => 'Factura',
+ 'Invoice Date missing!' => '¡Falta Fecha de Factura!',
+ 'Invoice Number missing!' => '¡Falta Número de Factura!',
+ 'Item not on file!' => '¡El artículo no se encuentra en la base de datos!',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Lead' => 'T. de Ent.',
+ 'Manager' => 'Gerente',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Message' => 'Mensaje',
+ 'Month' => 'Mes',
+ 'Month(s)' => 'Mes(es)',
+ 'Next Date' => 'Siguiente fecha',
+ 'No.' => 'N°',
+ 'Notes' => 'Notas',
+ 'Nothing entered!' => 'No hay nada ingresado',
+ 'Nothing selected!' => '¡No se ha seleccionado nada!',
+ 'Nothing to transfer!' => '¡No hay nada que transferir!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Código',
+ 'Number missing in Row' => '¡Falta Número en la Fila!',
+ 'O' => 'O',
+ 'OH' => 'Disp.',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Date' => 'Fecha de la Orden',
+ 'Order Date missing!' => '¡Falta fecha de la Orden!',
+ 'Order Number' => 'Orden N°',
+ 'Order Number missing!' => '¡Falta Número de la Orden!',
+ 'Order deleted!' => '¡Orden borrada!',
+ 'Order generation failed!' => '¡No se pudo generar la orden!',
+ 'Order saved!' => '¡Orden guardada!',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'N° Control',
+ 'Packing List' => 'Lista de Empaque',
+ 'Packing List Date missing!' => '¡Falta Fecha de Lista de Empaque!',
+ 'Packing List Number missing!' => '¡Falta Código de Lista de Empaque!',
+ 'Part' => 'Parte',
+ 'Part Number' => 'N° Parte',
+ 'Period' => 'Período',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Almacén',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Print and Save' => 'Imprimir y Guardar',
+ 'Print and Save as new' => 'Imprimir y Guardar como Nuevo',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project not on file!' => '¡Proyecto no existe en la Base de Datos!',
+ 'Purchase Order' => 'Orden de Compra',
+ 'Purchase Orders' => 'Órdenes de Compra',
+ 'Qty' => 'Cantidad',
+ 'Quarter' => 'Trimestre',
+ 'Quotation' => 'Cotización',
+ 'Quotation ' => 'Cotización ',
+ 'Quotation Date' => 'Fecha de Cotización',
+ 'Quotation Date missing!' => 'Falta Fecha de Cotización',
+ 'Quotation Number' => 'Número de Cotización',
+ 'Quotation Number missing!' => '¡Falta Número de Cotización!',
+ 'Quotation deleted!' => '¡Cotización borrada!',
+ 'Quotations' => 'Cotizaciones',
+ 'RFQ' => 'Solicitud de Cotización',
+ 'RFQ ' => 'Solicitud de cotización ',
+ 'RFQ Number' => 'Número de Solicitud de Cotización',
+ 'Recd' => 'Rcbdo',
+ 'Receive Merchandise' => 'Almacenar Mercancía',
+ 'Recurring Transaction' => 'Transacción Recurrente',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Resto',
+ 'Repeat' => 'Repetir',
+ 'Req' => 'Ped.',
+ 'Request for Quotation' => 'Solicitud de Cotización',
+ 'Request for Quotations' => 'Solicitudes de Cotización',
+ 'Required by' => 'Requerido para el',
+ 'SKU' => 'SKU',
+ 'Sales Invoice' => 'Factura de Ventas',
+ 'Sales Order' => 'Pedido',
+ 'Sales Orders' => 'Pedidos',
+ 'Salesperson' => 'Vendedor',
+ 'Save' => 'Guardar',
+ 'Save Schedule' => 'Guardar Programación',
+ 'Save as new' => 'Guardar como nuevo',
+ 'Schedule' => 'Programar',
+ 'Scheduled' => 'Programada',
+ 'Screen' => 'Pantalla',
+ 'Select Vendor' => 'Seleccione el proveedor',
+ 'Select a Printer!' => '¡Seleccione una impresora!',
+ 'Select from one of the names below' => 'Seleccione de uno de los nombres siguientes',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Select items' => 'Seleccione los items',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF!',
+ 'Select txt, postscript or PDF!' => '¡Seleccione txt, postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'Serial',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Envío',
+ 'Ship Merchandise' => 'Enviar Mercancía',
+ 'Ship to' => 'Destino',
+ 'Ship via' => 'Envío por',
+ 'Shipping Address' => 'Dirección de Envío',
+ 'Shipping Date' => 'Fecha de Envío',
+ 'Shipping Date missing!' => 'Falta Fecha de Envío',
+ 'Shipping Point' => 'Puerto de Embarque',
+ 'Startdate' => 'Fecha de Inicio',
+ 'State/Province' => 'Estado/Provincia',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Tax' => 'Impuesto',
+ 'Tax Included' => 'Impuesto Incluído',
+ 'Terms' => 'Condiciones de crédito',
+ 'Text' => 'Texto',
+ 'To' => 'Hasta',
+ 'To Warehouse' => 'Hacia almacén',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Descuento Comercial',
+ 'Transfer' => 'Transferencia',
+ 'Transfer Inventory' => 'Transferir Inventario',
+ 'Transfer from' => 'Transferir desde',
+ 'Transfer to' => 'Transferir a',
+ 'Translation not on file!' => 'Traducción no se encuentra en la Base de Datos',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Valid until' => 'Válido hasta',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice' => 'Factura de Compra',
+ 'Vendor Number' => 'Código de Vendedor',
+ 'Vendor missing!' => '¡Falta Proveedor!',
+ 'Vendor not on file!' => '¡Proveedor no se encuentra en la Base de Datos!',
+ 'Warehouse' => 'Almacén',
+ 'Warning!' => '¡Advertencia!',
+ 'Week(s)' => 'Semana(s)',
+ 'What type of item is this?' => '¿Qué tipo de artículo es este?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Year' => 'Año',
+ 'Year(s)' => 'Año(s)',
+ 'Yes' => 'Sí',
+ 'You are posting an existing transaction!' => 'Está registrando una transacción existente!',
+ 'You are printing and posting an existing transaction!' => 'Está registrando e imprimiendo una transacción existente!',
+ 'You are printing and saving an existing order' => 'Está guardando e imprimiendo una orden existente!',
+ 'You are printing and saving an existing quotation' => 'Está guardando e imprimiendo una cotización existente!',
+ 'You are saving an existing order' => 'Está guardando una orden existente!',
+ 'You are saving an existing quotation' => 'Está guardando una cotización existente!',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'days' => 'días',
+ 'ea' => 'c/u',
+ 'for' => 'por',
+ 'sent' => 'enviado',
+ 'time(s)' => 'veces',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'backorder_exchangerate' => 'backorder_exchangerate',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'consolidate_orders' => 'consolidate_orders',
+ 'continue' => 'continue',
+ 'create_backorder' => 'create_backorder',
+ 'create_form' => 'create_form',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'display_ship_receive' => 'display_ship_receive',
+ 'done' => 'done',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_orders' => 'generate_orders',
+ 'generate_purchase_orders' => 'generate_purchase_orders',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice' => 'invoice',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_transfer' => 'list_transfer',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'order_links' => 'order_links',
+ 'po_orderitems' => 'po_orderitems',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_order' => 'prepare_order',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_and_save' => 'print_and_save',
+ 'print_and_save_as_new' => 'print_and_save_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'quotation_' => 'quotation_',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'rfq_' => 'rfq_',
+ 'sales_invoice' => 'sales_invoice',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save' => 'save',
+ 'save_as_new' => 'save_as_new',
+ 'save_exchangerate' => 'save_exchangerate',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'search_transfer' => 'search_transfer',
+ 'section_menu' => 'section_menu',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'select_vendor' => 'select_vendor',
+ 'send_email' => 'send_email',
+ 'ship_receive' => 'ship_receive',
+ 'ship_to' => 'ship_to',
+ 'subtotal' => 'subtotal',
+ 'transactions' => 'transactions',
+ 'transfer' => 'transfer',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'vendor_selected' => 'vendor_selected',
+ 'yes' => 'yes',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'eliminar_programación' => 'delete_schedule',
+ 'hecho' => 'done',
+ 'e_mail' => 'e_mail',
+ 'generar_órdenes' => 'generate_orders',
+ 'generar_órdenes_de_compra' => 'generate_purchase_orders',
+ 'generar_pedido' => 'generate_sales_order',
+ 'imprimir' => 'print',
+ 'imprimir_y_guardar' => 'print_and_save',
+ 'imprimir_y_guardar_como_nuevo' => 'print_and_save_as_new',
+ 'orden_de_compra' => 'purchase_order',
+ 'cotización' => 'quotation',
+ 'cotización_' => 'quotation_',
+ 'solicitud_de_cotización' => 'rfq',
+ 'solicitud_de_cotización_' => 'rfq_',
+ 'factura_de_ventas' => 'sales_invoice',
+ 'pedido' => 'sales_order',
+ 'guardar' => 'save',
+ 'guardar_programación' => 'save_schedule',
+ 'guardar_como_nuevo' => 'save_as_new',
+ 'programar' => 'schedule',
+ 'seleccione_el_proveedor' => 'select_vendor',
+ 'destino' => 'ship_to',
+ 'transferencia' => 'transfer',
+ 'actualizar' => 'update',
+ 'factura_de_compra' => 'vendor_invoice',
+ 'sí' => 'yes',
+};
+
+1;
+
diff --git a/locale/ve/pe b/locale/ve/pe
new file mode 100755
index 00000000..b28d7a0a
--- /dev/null
+++ b/locale/ve/pe
@@ -0,0 +1,164 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Active' => 'Activo',
+ 'Add' => 'Agregar',
+ 'Add Group' => 'Agregar Grupo',
+ 'Add Job' => 'Agregar Mano de Obra',
+ 'Add Pricegroup' => 'Agregar Grupo de Precios',
+ 'Add Project' => 'Agregar Proyecto',
+ 'Address' => 'Dirección',
+ 'All' => 'Todos',
+ 'Amount' => 'Monto',
+ 'Assembly' => 'Juego',
+ 'Assembly stocked!' => 'Juego almacenado!',
+ 'Bin' => 'Anaquel/Cesta',
+ 'Cannot stock Assembly!' => '¡No se puede almacenar el Juego!',
+ 'Completed' => 'Completado',
+ 'Continue' => 'Continuar',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no existe en la base datos!',
+ 'Date' => 'Fecha',
+ 'Delete' => 'Borrar',
+ 'Description' => 'Descripción',
+ 'Description Translations' => 'Traducción de Descripciones',
+ 'Detail' => 'Detalle',
+ 'Edit Description Translations' => 'Editar Traducción de Descripciones',
+ 'Edit Group' => 'Editar Grupo',
+ 'Edit Job' => 'Editar Mano de Obra',
+ 'Edit Pricegroup' => 'Editar Grupo de Precios',
+ 'Edit Project' => 'Editar Proyecto',
+ 'Employee' => 'Empleado',
+ 'Enddate' => 'Fecha de Terminación',
+ 'Failed to save order!' => '¡No se pudo guardar la orden!',
+ 'From' => 'Desde',
+ 'Generate Sales Orders' => 'Generar órdenes de compra',
+ 'Group' => 'Grupo',
+ 'Group Translations' => 'Traducción de Grupos',
+ 'Group deleted!' => '¡Grupo eleminado!',
+ 'Group missing!' => '¡Falta grupo!',
+ 'Group saved!' => '¡Grupo guardado!',
+ 'Groups' => 'Grupos',
+ 'Inactive' => 'Inactivo',
+ 'Income' => 'Ingreso',
+ 'Job' => 'Trabajo',
+ 'Job Number' => 'N° Trabajo',
+ 'Job deleted!' => '¡Trabajo eliminado!',
+ 'Job saved!' => '¡Trabajo guardado!',
+ 'Jobs' => 'Trabajos',
+ 'Language' => 'Idioma',
+ 'Languages not defined!' => '¡No hay idiomas definidos!',
+ 'Link Accounts' => 'Enlazar Cuentas',
+ 'List Price' => 'Precio de Lista',
+ 'Month' => 'Mes',
+ 'No open Projects!' => 'No hay proyectos abiertos!',
+ 'Notes' => 'Notas',
+ 'Nothing selected!' => '¡No se ha seleccionado nada!',
+ 'Number' => 'Código',
+ 'Orders generated!' => '¡Órdenes generadas con éxito!',
+ 'Orphaned' => 'Huérfano',
+ 'Part Number' => 'N° Parte',
+ 'Period' => 'Período',
+ 'Pricegroup' => 'Grupo de Precios',
+ 'Pricegroup deleted!' => '¡Grupo de Precios Borrado!',
+ 'Pricegroup missing!' => '¡Falta Grupo de Precios!',
+ 'Pricegroup saved!' => '¡Grupo de Precios guardado!',
+ 'Pricegroups' => 'Grupos de Precios',
+ 'Production' => 'Producción',
+ 'Project' => 'Proyecto',
+ 'Project Description Translations' => 'Traducción de Descripción de Proyectos',
+ 'Project Number' => 'Código de Proyecto',
+ 'Project deleted!' => '¡Proyecto borrado!',
+ 'Project saved!' => '¡Proyecto guardado!',
+ 'Projects' => 'Proyectos',
+ 'Qty' => 'Cantidad',
+ 'Quarter' => 'Trimestre',
+ 'Save' => 'Guardar',
+ 'Select Customer' => 'Seleccione el cliente',
+ 'Select from one of the names below' => 'Seleccione de uno de los nombres siguientes',
+ 'Sell Price' => 'Precio de Venta',
+ 'Service Code' => 'Código servicio',
+ 'Startdate' => 'Fecha de Inicio',
+ 'Summary' => 'Resumen',
+ 'Tax' => 'Impuesto',
+ 'To' => 'Hasta',
+ 'Transaction Dates' => 'Fecha de transacciones',
+ 'Translation' => 'Traducción',
+ 'Translation deleted!' => 'Traducción borrada!',
+ 'Translations saved!' => 'Traducciones guardadadas',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Updated' => 'Actualizado',
+ 'Vendor' => 'Proveedor',
+ 'Vendor not on file!' => '¡Proveedor no se encuentra en la Base de Datos!',
+ 'Weight' => 'Peso',
+ 'Year' => 'Año',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_group' => 'add_group',
+ 'add_job' => 'add_job',
+ 'add_pricegroup' => 'add_pricegroup',
+ 'add_project' => 'add_project',
+ 'continue' => 'continue',
+ 'customer_selected' => 'customer_selected',
+ 'delete' => 'delete',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'edit' => 'edit',
+ 'edit_translation' => 'edit_translation',
+ 'generate_sales_orders' => 'generate_sales_orders',
+ 'jcitems' => 'jcitems',
+ 'job_footer' => 'job_footer',
+ 'job_header' => 'job_header',
+ 'job_report' => 'job_report',
+ 'js_menu' => 'js_menu',
+ 'list_projects' => 'list_projects',
+ 'list_stock' => 'list_stock',
+ 'list_translations' => 'list_translations',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'partsgroup_footer' => 'partsgroup_footer',
+ 'partsgroup_header' => 'partsgroup_header',
+ 'partsgroup_report' => 'partsgroup_report',
+ 'prepare_job' => 'prepare_job',
+ 'prepare_partsgroup' => 'prepare_partsgroup',
+ 'prepare_pricegroup' => 'prepare_pricegroup',
+ 'prepare_project' => 'prepare_project',
+ 'pricegroup_footer' => 'pricegroup_footer',
+ 'pricegroup_header' => 'pricegroup_header',
+ 'pricegroup_report' => 'pricegroup_report',
+ 'project_footer' => 'project_footer',
+ 'project_header' => 'project_header',
+ 'project_jcitems_list' => 'project_jcitems_list',
+ 'project_report' => 'project_report',
+ 'project_sales_order' => 'project_sales_order',
+ 'sales_order_footer' => 'sales_order_footer',
+ 'sales_order_header' => 'sales_order_header',
+ 'save' => 'save',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_customer' => 'select_customer',
+ 'select_name' => 'select_name',
+ 'stock' => 'stock',
+ 'translation' => 'translation',
+ 'translation_footer' => 'translation_footer',
+ 'translation_header' => 'translation_header',
+ 'update' => 'update',
+ 'agregar_grupo' => 'add_group',
+ 'agregar_mano_de_obra' => 'add_job',
+ 'agregar_grupo_de_precios' => 'add_pricegroup',
+ 'agregar_proyecto' => 'add_project',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'generar_órdenes_de_compra' => 'generate_sales_orders',
+ 'guardar' => 'save',
+ 'seleccione_el_cliente' => 'select_customer',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/ve/pos b/locale/ve/pos
new file mode 100755
index 00000000..cc6ee25d
--- /dev/null
+++ b/locale/ve/pos
@@ -0,0 +1,81 @@
+$self{texts} = {
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Add POS Invoice' => 'Agregar Factura PdV',
+ 'Amount' => 'Monto',
+ 'Business' => 'Negocio',
+ 'Cannot post transaction!' => '¡No se puede registrar el asiento!',
+ 'Change' => 'Cambiar',
+ 'Continue' => 'Continuar',
+ 'Credit Limit' => 'Límite de Crédito',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Customer' => 'Cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Delete' => 'Borrar',
+ 'Department' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Edit POS Invoice' => 'Editar Factura de PdV',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate missing!' => '¡Falta tasa de cambio!',
+ 'Extended' => 'Extendido',
+ 'From' => 'Desde',
+ 'Language' => 'Idioma',
+ 'Memo' => 'Memo',
+ 'Month' => 'Mes',
+ 'Number' => 'Código',
+ 'Open' => 'Abierto',
+ 'Period' => 'Período',
+ 'Post' => 'Registrar',
+ 'Posted!' => '¡Registrado!',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Printed' => 'Impreso',
+ 'Qty' => 'Cantidad',
+ 'Quarter' => 'Trimestre',
+ 'Receipts' => 'Recibos',
+ 'Record in' => 'Registrar en',
+ 'Remaining' => 'Resto',
+ 'Salesperson' => 'Vendedor',
+ 'Screen' => 'Pantalla',
+ 'Select a Printer!' => '¡Seleccione una impresora!',
+ 'Source' => 'Cheque N°',
+ 'Subtotal' => 'Subtotal',
+ 'Tax Included' => 'Impuesto Incluído',
+ 'To' => 'Hasta',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Descuento Comercial',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Year' => 'Año',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'display' => 'display',
+ 'display_row' => 'display_row',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'js_menu' => 'js_menu',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'openinvoices' => 'openinvoices',
+ 'post' => 'post',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'receipts' => 'receipts',
+ 'section_menu' => 'section_menu',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'registrar' => 'post',
+ 'imprimir' => 'print',
+ 'imprimir_y_registrar' => 'print_and_post',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/ve/ps b/locale/ve/ps
new file mode 100755
index 00000000..c634d8fa
--- /dev/null
+++ b/locale/ve/ps
@@ -0,0 +1,391 @@
+$self{texts} = {
+ 'AP Aging' => 'Diario Resumido de CxP',
+ 'AP Outstanding' => 'Pendientes de CxP',
+ 'AP Transaction' => 'Asiento de CxP',
+ 'AP Transactions' => 'Asientos de CxP',
+ 'AR Aging' => 'Diario Resumido de CxC',
+ 'AR Outstanding' => 'Pendientes de CxC',
+ 'AR Transaction' => 'Asiento de CxC',
+ 'AR Transactions' => 'Asiento de CxC',
+ 'Account' => 'Cuenta',
+ 'Account Number' => 'Número de Cuenta',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Accounts' => 'Cuentas',
+ 'Accrual' => 'Acumulado',
+ 'Add AP Transaction' => 'Agregar Asiento de CxP',
+ 'Add AR Transaction' => 'Agregar Asiento de CxC',
+ 'Add POS Invoice' => 'Agregar Factura PdV',
+ 'Add Purchase Order' => 'Agregar Orden de Compra',
+ 'Add Quotation' => 'Agregar Cotización',
+ 'Add Request for Quotation' => 'Agregar Solicitud de Cotización',
+ 'Add Sales Invoice' => 'Agregar Factura',
+ 'Add Sales Order' => 'Agregar Pedido',
+ 'Address' => 'Dirección',
+ 'All Accounts' => 'Todas las Cuentas',
+ 'Amount' => 'Monto',
+ 'Amount Due' => 'Cantidad Adeudada',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Are you sure you want to delete Invoice Number' => '¿Está seguro que desea borrar la Factura Número',
+ 'Are you sure you want to delete Transaction' => '¿Está seguro que desea borrar el Asiento?',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Balance',
+ 'Balance Sheet' => 'Hoja de Balance',
+ 'Bcc' => 'Bcc',
+ 'Billing Address' => 'Dirección de Facturación',
+ 'Bin' => 'Anaquel/Cesta',
+ 'Bin List' => 'Lista de Almacenaje',
+ 'Business' => 'Negocio',
+ 'Cannot delete invoice!' => '¡No se puede borrar la factura!',
+ 'Cannot delete transaction!' => '¡No se puede borrar el asiento!',
+ 'Cannot post invoice for a closed period!' => '¡No se puede registrar una factura en un periodo cerrado!',
+ 'Cannot post invoice!' => '¡No se puede registrar la factura!',
+ 'Cannot post payment for a closed period!' => '¡No se puede registrar un pago en un periodo cerrado!',
+ 'Cannot post transaction for a closed period!' => '¡No se puede registrar un asiento en un periodo cerrado',
+ 'Cannot post transaction!' => '¡No se puede registrar el asiento!',
+ 'Cash' => 'Caja',
+ 'Cc' => 'Cc',
+ 'Change' => 'Cambiar',
+ 'Check' => 'Cheque',
+ 'City' => 'Ciudad',
+ 'Closed' => 'Cerrado',
+ 'Company Name' => 'Nombre de la Compañía',
+ 'Compare to' => 'Comparar contra',
+ 'Confirm!' => '¡Favor Confirmar!',
+ 'Contact' => 'Contacto',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Country' => 'País',
+ 'Credit' => 'Crédito',
+ 'Credit Limit' => 'Límite de Crédito',
+ 'Curr' => 'Mon.',
+ 'Currency' => 'Moneda',
+ 'Current' => 'Actual',
+ 'Current Earnings' => 'Resultado del Periodo',
+ 'Customer' => 'Cliente',
+ 'Customer Number' => 'Código de Cliente',
+ 'Customer missing!' => '¡Falta el cliente!',
+ 'Customer not on file!' => '¡El cliente no existe en la base datos!',
+ 'Date' => 'Fecha',
+ 'Date Paid' => 'Fecha de Pago',
+ 'Day(s)' => 'Día(s)',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Decimalplaces' => 'Dígitos decimales',
+ 'Delete' => 'Borrar',
+ 'Delete Schedule' => 'Eliminar Programación',
+ 'Delivery Date' => 'Fecha de entrega',
+ 'Department' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de Vencimiento',
+ 'Due Date missing!' => 'Falta la Fecha de Vencimiento',
+ 'E-mail' => 'E-mail',
+ 'E-mail Statement to' => 'Enviar Comprobante por E-mail a',
+ 'E-mail address missing!' => 'Falta dirección de E-mail',
+ 'E-mail message' => 'Mensaje de E-mail',
+ 'E-mailed' => 'Enviado por E-mail',
+ 'Edit AP Transaction' => 'Editar Asiento de CxP',
+ 'Edit AR Transaction' => 'Editar Asiento de CxC',
+ 'Edit POS Invoice' => 'Editar Factura de PdV',
+ 'Edit Sales Invoice' => 'Edirar Factura de Venta',
+ 'Employee' => 'Empleado',
+ 'Every' => 'Cada',
+ 'Exch' => 'Cambio',
+ 'Exchange Rate' => 'Tasa de Cambio',
+ 'Exchange rate for payment missing!' => '¡Falta la tasa de cambio para el pago!',
+ 'Exchange rate missing!' => '¡Falta tasa de cambio!',
+ 'Extended' => 'Extendido',
+ 'Fax' => 'Fax',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'For' => 'Por',
+ 'From' => 'Desde',
+ 'GIFI' => 'Código GIFI',
+ 'Group' => 'Grupo',
+ 'Heading' => 'Encabezado',
+ 'ID' => 'N° de identidad',
+ 'In-line' => 'Incrustado',
+ 'Include Exchange Rate Difference' => 'Incluir Diferencial por Tasa de Cambio',
+ 'Include Payment' => 'Inclir Pago',
+ 'Include in Report' => 'Incluir en Informe',
+ 'Income Statement' => 'Estado de Cuenta de Igresos',
+ 'Internal Notes' => 'Anotaciones Internas',
+ 'Invoice' => 'Factura',
+ 'Invoice Date' => 'Fecha de Factura',
+ 'Invoice Date missing!' => '¡Falta Fecha de Factura!',
+ 'Invoice Number' => 'Número de Factura',
+ 'Invoice Number missing!' => '¡Falta Número de Factura!',
+ 'Invoice deleted!' => '¡Factura borrada!',
+ 'Item not on file!' => '¡El artículo no se encuentra en la base de datos!',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Language' => 'Idioma',
+ 'Manager' => 'Gerente',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Message' => 'Mensaje',
+ 'Method' => 'Metódo',
+ 'Month' => 'Mes',
+ 'Month(s)' => 'Mes(es)',
+ 'N/A' => 'No existe',
+ 'Next Date' => 'Siguiente fecha',
+ 'No.' => 'N°',
+ 'Non-taxable Purchases' => 'Compras no gravadas',
+ 'Non-taxable Sales' => 'Ventas no gravadas',
+ 'Notes' => 'Notas',
+ 'Nothing selected!' => '¡No se ha seleccionado nada!',
+ 'Nothing to print!' => '¡No hay nada que imprimir!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Código',
+ 'Number missing in Row' => '¡Falta Número en la Fila!',
+ 'OH' => 'Disp.',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Open' => 'Abierto',
+ 'Order' => 'Orden',
+ 'Order Date missing!' => '¡Falta fecha de la Orden!',
+ 'Order Number' => 'Orden N°',
+ 'Order Number missing!' => '¡Falta Número de la Orden!',
+ 'PDF' => 'PDF',
+ 'PO Number' => 'N° Control',
+ 'Packing List' => 'Lista de Empaque',
+ 'Packing List Date missing!' => '¡Falta Fecha de Lista de Empaque!',
+ 'Packing List Number missing!' => '¡Falta Código de Lista de Empaque!',
+ 'Paid' => 'Pagado',
+ 'Part' => 'Parte',
+ 'Payment date missing!' => 'Falta fecha de pago',
+ 'Payments' => 'Pagos',
+ 'Period' => 'Período',
+ 'Phone' => 'Teléfono',
+ 'Pick List' => 'Lista de Almacén',
+ 'Post' => 'Registrar',
+ 'Post as new' => 'Registrar como nuevo',
+ 'Posted!' => '¡Registrado!',
+ 'Postscript' => 'Postscript',
+ 'Price' => 'Precio',
+ 'Print' => 'Imprimir',
+ 'Print and Post' => 'Imprimir y Registrar',
+ 'Print and Post as new' => 'Imprimir y Registrar como Nuevo',
+ 'Printed' => 'Impreso',
+ 'Project' => 'Proyecto',
+ 'Project Number' => 'Código de Proyecto',
+ 'Project Transactions' => 'Asientos de Proyecto',
+ 'Project not on file!' => '¡Proyecto no existe en la Base de Datos!',
+ 'Purchase Order' => 'Orden de Compra',
+ 'Qty' => 'Cantidad',
+ 'Quarter' => 'Trimestre',
+ 'Quotation' => 'Cotización',
+ 'Quotation Date missing!' => 'Falta Fecha de Cotización',
+ 'Quotation Number missing!' => '¡Falta Número de Cotización!',
+ 'Recd' => 'Rcbdo',
+ 'Receipt' => 'Abono',
+ 'Receipts' => 'Recibos',
+ 'Record in' => 'Registrar en',
+ 'Recurring Transaction' => 'Transacción Recurrente',
+ 'Reference' => 'Referencia',
+ 'Remaining' => 'Resto',
+ 'Repeat' => 'Repetir',
+ 'Report for' => 'Reporte para',
+ 'Required by' => 'Requerido para el',
+ 'SKU' => 'SKU',
+ 'Sales Invoice.' => 'Factura de Ventas.',
+ 'Sales Order' => 'Pedido',
+ 'Salesperson' => 'Vendedor',
+ 'Save Schedule' => 'Guardar Programación',
+ 'Schedule' => 'Programar',
+ 'Scheduled' => 'Programada',
+ 'Screen' => 'Pantalla',
+ 'Select a Printer!' => '¡Seleccione una impresora!',
+ 'Select all' => 'Seleccionar todos',
+ 'Select from one of the names below' => 'Seleccione de uno de los nombres siguientes',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Select items' => 'Seleccione los items',
+ 'Select payment' => '¡Seleccione Pago!',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF!',
+ 'Select txt, postscript or PDF!' => '¡Seleccione txt, postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Serial No.' => 'Serial',
+ 'Service' => 'Servicio',
+ 'Ship' => 'Envío',
+ 'Ship to' => 'Destino',
+ 'Ship via' => 'Envío por',
+ 'Shipping Address' => 'Dirección de Envío',
+ 'Shipping Point' => 'Puerto de Embarque',
+ 'Source' => 'Cheque N°',
+ 'Standard' => 'Estándard',
+ 'Startdate' => 'Fecha de Inicio',
+ 'State/Province' => 'Estado/Provincia',
+ 'Statement' => 'Estado de Cuenta',
+ 'Statement sent to' => 'Estado de Cuenta enviado a',
+ 'Statements sent to printer!' => '¡Estado de Cuenta enviado a la impresora!',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resumen',
+ 'Tax' => 'Impuesto',
+ 'Tax Included' => 'Impuesto Incluído',
+ 'Tax collected' => 'Impuestos retenidos',
+ 'Tax paid' => 'Impuestos pagados',
+ 'Text' => 'Texto',
+ 'Till' => 'Caja',
+ 'To' => 'Hasta',
+ 'Total' => 'Total',
+ 'Trade Discount' => 'Descuento Comercial',
+ 'Transaction' => 'Asiento',
+ 'Transaction deleted!' => '¡Asiento borrado!',
+ 'Transaction posted!' => '¡Asiendo registrado!',
+ 'Translation not on file!' => 'Traducción no se encuentra en la Base de Datos',
+ 'Trial Balance' => 'Balance de Comprobación',
+ 'Unit' => 'Unidad',
+ 'Update' => 'Actualizar',
+ 'Vendor' => 'Proveedor',
+ 'Vendor Invoice.' => 'Factura de Compra.',
+ 'Vendor Number' => 'Código de Vendedor',
+ 'Vendor missing!' => '¡Falta Proveedor!',
+ 'Vendor not on file!' => '¡Proveedor no se encuentra en la Base de Datos!',
+ 'Warning!' => '¡Advertencia!',
+ 'Week(s)' => 'Semana(s)',
+ 'What type of item is this?' => '¿Qué tipo de artículo es este?',
+ 'Work Order' => 'Orden de Trabajo',
+ 'Year' => 'Año',
+ 'Year(s)' => 'Año(s)',
+ 'Yes' => 'Sí',
+ 'You are posting an existing transaction!' => 'Está registrando una transacción existente!',
+ 'You are printing and posting an existing transaction!' => 'Está registrando e imprimiendo una transacción existente!',
+ 'You are printing and saving an existing order' => 'Está guardando e imprimiendo una orden existente!',
+ 'You are printing and saving an existing quotation' => 'Está guardando e imprimiendo una cotización existente!',
+ 'You are saving an existing order' => 'Está guardando una orden existente!',
+ 'You are saving an existing quotation' => 'Está guardando una cotización existente!',
+ 'Zip/Postal Code' => 'Código Postal',
+ 'as at' => 'al',
+ 'ea' => 'c/u',
+ 'for' => 'por',
+ 'for Period' => 'para el Período',
+ 'posted!' => '!Registrado¡',
+ 'sent' => 'enviado',
+ 'time(s)' => 'veces',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add' => 'add',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'calc_markup' => 'calc_markup',
+ 'check_form' => 'check_form',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'create_form' => 'create_form',
+ 'create_links' => 'create_links',
+ 'customer_details' => 'customer_details',
+ 'delete' => 'delete',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'display_row' => 'display_row',
+ 'e_mail' => 'e_mail',
+ 'edit' => 'edit',
+ 'form_footer' => 'form_footer',
+ 'form_header' => 'form_header',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'invoice_links' => 'invoice_links',
+ 'invoicetotal' => 'invoicetotal',
+ 'item_selected' => 'item_selected',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'lookup_partsgroup' => 'lookup_partsgroup',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'new_item' => 'new_item',
+ 'openinvoices' => 'openinvoices',
+ 'payment_selected' => 'payment_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post' => 'post',
+ 'post_as_new' => 'post_as_new',
+ 'prepare_invoice' => 'prepare_invoice',
+ 'print' => 'print',
+ 'print_and_post' => 'print_and_post',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_check' => 'print_check',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'print_receipt' => 'print_receipt',
+ 'print_transaction' => 'print_transaction',
+ 'project_selected' => 'project_selected',
+ 'purchase_order' => 'purchase_order',
+ 'quotation' => 'quotation',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'receipts' => 'receipts',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'rfq' => 'rfq',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'sales_order' => 'sales_order',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'search' => 'search',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_item' => 'select_item',
+ 'select_name' => 'select_name',
+ 'select_payment' => 'select_payment',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'ship_to' => 'ship_to',
+ 'statement_details' => 'statement_details',
+ 'subtotal' => 'subtotal',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'transactions' => 'transactions',
+ 'update' => 'update',
+ 'validate_items' => 'validate_items',
+ 'vendor_details' => 'vendor_details',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'yes' => 'yes',
+ 'asiento_de_cxp' => 'ap_transaction',
+ 'asiento_de_cxc' => 'ar_transaction',
+ 'continuar' => 'continue',
+ 'borrar' => 'delete',
+ 'eliminar_programación' => 'delete_schedule',
+ 'e_mail' => 'e_mail',
+ 'registrar' => 'post',
+ 'registrar_como_nuevo' => 'post_as_new',
+ 'imprimir' => 'print',
+ 'imprimir_y_registrar' => 'print_and_post',
+ 'imprimir_y_registrar_como_nuevo' => 'print_and_post_as_new',
+ 'factura_de_ventas_' => 'sales_invoice_',
+ 'pedido' => 'sales_order',
+ 'guardar_programación' => 'save_schedule',
+ 'programar' => 'schedule',
+ 'seleccionar_todos' => 'select_all',
+ 'destino' => 'ship_to',
+ 'actualizar' => 'update',
+ 'factura_de_compra_' => 'vendor_invoice_',
+ 'sí' => 'yes',
+};
+
+1;
+
diff --git a/locale/ve/pw b/locale/ve/pw
new file mode 100755
index 00000000..d5ed0e14
--- /dev/null
+++ b/locale/ve/pw
@@ -0,0 +1,13 @@
+$self{texts} = {
+ 'Continue' => 'Continuar',
+ 'Password' => 'Contraseña',
+ 'Session expired!' => '¡Sesión Expiró!',
+};
+
+$self{subs} = {
+ 'getpassword' => 'getpassword',
+ 'continuar' => 'continue',
+};
+
+1;
+
diff --git a/locale/ve/rc b/locale/ve/rc
new file mode 100755
index 00000000..00bd6976
--- /dev/null
+++ b/locale/ve/rc
@@ -0,0 +1,79 @@
+$self{texts} = {
+ 'Account' => 'Cuenta',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Balance',
+ 'Beginning Balance' => 'Balance Inicial',
+ 'Cleared' => 'Debitado',
+ 'Continue' => 'Continuar',
+ 'Credit' => 'Crédito',
+ 'Current' => 'Actual',
+ 'Date' => 'Fecha',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Difference' => 'Diferencia',
+ 'Done' => 'Hecho',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'From' => 'Desde',
+ 'Include Exchange Rate Difference' => 'Incluir Diferencial por Tasa de Cambio',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Month' => 'Mes',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Out of balance!' => '¡Fuera de balance!',
+ 'Outstanding' => 'Pendientes',
+ 'Period' => 'Período',
+ 'Quarter' => 'Trimestre',
+ 'R' => 'R',
+ 'Reconciliation' => 'Conciliación',
+ 'Reconciliation Report' => 'Reporte de Conciliación',
+ 'Select all' => 'Seleccionar todos',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Source' => 'Cheque N°',
+ 'Statement Balance' => 'Balance de Cuenta',
+ 'Summary' => 'Resumen',
+ 'To' => 'Hasta',
+ 'Update' => 'Actualizar',
+ 'Year' => 'Año',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'continue' => 'continue',
+ 'display' => 'display',
+ 'display_form' => 'display_form',
+ 'done' => 'done',
+ 'get_payments' => 'get_payments',
+ 'js_menu' => 'js_menu',
+ 'menubar' => 'menubar',
+ 'reconciliation' => 'reconciliation',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'update' => 'update',
+ 'continuar' => 'continue',
+ 'hecho' => 'done',
+ 'seleccionar_todos' => 'select_all',
+ 'actualizar' => 'update',
+};
+
+1;
+
diff --git a/locale/ve/rp b/locale/ve/rp
new file mode 100755
index 00000000..c558366f
--- /dev/null
+++ b/locale/ve/rp
@@ -0,0 +1,202 @@
+$self{texts} = {
+ 'AP Aging' => 'Diario Resumido de CxP',
+ 'AR Aging' => 'Diario Resumido de CxC',
+ 'Account' => 'Cuenta',
+ 'Account Number' => 'Número de Cuenta',
+ 'Accounting Menu' => 'Menú de Contabilidad',
+ 'Accounts' => 'Cuentas',
+ 'Accrual' => 'Acumulado',
+ 'Address' => 'Dirección',
+ 'All Accounts' => 'Todas las Cuentas',
+ 'Amount' => 'Monto',
+ 'Apr' => 'Abr',
+ 'April' => 'Abril',
+ 'Attachment' => 'Adjunto',
+ 'Aug' => 'Ago',
+ 'August' => 'Agosto',
+ 'Balance' => 'Balance',
+ 'Balance Sheet' => 'Hoja de Balance',
+ 'Bcc' => 'Bcc',
+ 'Cash' => 'Caja',
+ 'Cc' => 'Cc',
+ 'Compare to' => 'Comparar contra',
+ 'Continue' => 'Continuar',
+ 'Copies' => 'Copias',
+ 'Credit' => 'Crédito',
+ 'Curr' => 'Mon.',
+ 'Current' => 'Actual',
+ 'Current Earnings' => 'Resultado del Periodo',
+ 'Customer' => 'Cliente',
+ 'Customer not on file!' => '¡El cliente no existe en la base datos!',
+ 'Date' => 'Fecha',
+ 'Day(s)' => 'Día(s)',
+ 'Debit' => 'Débito',
+ 'Dec' => 'Dic',
+ 'December' => 'Diciembre',
+ 'Decimalplaces' => 'Dígitos decimales',
+ 'Delete Schedule' => 'Eliminar Programación',
+ 'Department' => 'Centro de Costos',
+ 'Description' => 'Descripción',
+ 'Detail' => 'Detalle',
+ 'Due Date' => 'Fecha de Vencimiento',
+ 'E-mail' => 'E-mail',
+ 'E-mail Statement to' => 'Enviar Comprobante por E-mail a',
+ 'E-mail address missing!' => 'Falta dirección de E-mail',
+ 'E-mail message' => 'Mensaje de E-mail',
+ 'Every' => 'Cada',
+ 'Feb' => 'Feb',
+ 'February' => 'Febrero',
+ 'For' => 'Por',
+ 'From' => 'Desde',
+ 'GIFI' => 'Código GIFI',
+ 'Heading' => 'Encabezado',
+ 'ID' => 'N° de identidad',
+ 'In-line' => 'Incrustado',
+ 'Include Exchange Rate Difference' => 'Incluir Diferencial por Tasa de Cambio',
+ 'Include Payment' => 'Inclir Pago',
+ 'Include in Report' => 'Incluir en Informe',
+ 'Income Statement' => 'Estado de Cuenta de Igresos',
+ 'Invoice' => 'Factura',
+ 'Jan' => 'Ene',
+ 'January' => 'Enero',
+ 'Jul' => 'Jul',
+ 'July' => 'Julio',
+ 'Jun' => 'Jun',
+ 'June' => 'Junio',
+ 'Language' => 'Idioma',
+ 'Mar' => 'Mar',
+ 'March' => 'Marzo',
+ 'May' => 'May',
+ 'May ' => 'Mayo',
+ 'Memo' => 'Memo',
+ 'Message' => 'Mensaje',
+ 'Method' => 'Metódo',
+ 'Month' => 'Mes',
+ 'Month(s)' => 'Mes(es)',
+ 'N/A' => 'No existe',
+ 'Next Date' => 'Siguiente fecha',
+ 'Non-taxable Purchases' => 'Compras no gravadas',
+ 'Non-taxable Sales' => 'Ventas no gravadas',
+ 'Nothing selected!' => '¡No se ha seleccionado nada!',
+ 'Nov' => 'Nov',
+ 'November' => 'Noviembre',
+ 'Number' => 'Código',
+ 'Oct' => 'Oct',
+ 'October' => 'Octubre',
+ 'Order' => 'Orden',
+ 'PDF' => 'PDF',
+ 'Payments' => 'Pagos',
+ 'Period' => 'Período',
+ 'Postscript' => 'Postscript',
+ 'Print' => 'Imprimir',
+ 'Project' => 'Proyecto',
+ 'Project Number' => 'Código de Proyecto',
+ 'Project Transactions' => 'Asientos de Proyecto',
+ 'Project not on file!' => '¡Proyecto no existe en la Base de Datos!',
+ 'Quarter' => 'Trimestre',
+ 'Receipts' => 'Recibos',
+ 'Recurring Transaction' => 'Transacción Recurrente',
+ 'Reference' => 'Referencia',
+ 'Repeat' => 'Repetir',
+ 'Report for' => 'Reporte para',
+ 'Salesperson' => 'Vendedor',
+ 'Save Schedule' => 'Guardar Programación',
+ 'Screen' => 'Pantalla',
+ 'Select all' => 'Seleccionar todos',
+ 'Select from one of the names below' => 'Seleccione de uno de los nombres siguientes',
+ 'Select from one of the projects below' => 'Seleccione uno de los proyectos de la lista',
+ 'Select postscript or PDF!' => '¡Seleccione postscript o PDF!',
+ 'Sep' => 'Sep',
+ 'September' => 'Septiembre',
+ 'Source' => 'Cheque N°',
+ 'Standard' => 'Estándard',
+ 'Startdate' => 'Fecha de Inicio',
+ 'Statement' => 'Estado de Cuenta',
+ 'Statement sent to' => 'Estado de Cuenta enviado a',
+ 'Statements sent to printer!' => '¡Estado de Cuenta enviado a la impresora!',
+ 'Subject' => 'Asunto',
+ 'Subtotal' => 'Subtotal',
+ 'Summary' => 'Resumen',
+ 'Tax' => 'Impuesto',
+ 'Tax collected' => 'Impuestos retenidos',
+ 'Tax paid' => 'Impuestos pagados',
+ 'Till' => 'Caja',
+ 'To' => 'Hasta',
+ 'Total' => 'Total',
+ 'Trial Balance' => 'Balance de Comprobación',
+ 'Vendor' => 'Proveedor',
+ 'Vendor not on file!' => '¡Proveedor no se encuentra en la Base de Datos!',
+ 'Warning!' => '¡Advertencia!',
+ 'Week(s)' => 'Semana(s)',
+ 'Year' => 'Año',
+ 'Year(s)' => 'Año(s)',
+ 'You are posting an existing transaction!' => 'Está registrando una transacción existente!',
+ 'You are printing and posting an existing transaction!' => 'Está registrando e imprimiendo una transacción existente!',
+ 'You are printing and saving an existing order' => 'Está guardando e imprimiendo una orden existente!',
+ 'You are printing and saving an existing quotation' => 'Está guardando e imprimiendo una cotización existente!',
+ 'You are saving an existing order' => 'Está guardando una orden existente!',
+ 'You are saving an existing quotation' => 'Está guardando una cotización existente!',
+ 'as at' => 'al',
+ 'for' => 'por',
+ 'for Period' => 'para el Período',
+ 'sent' => 'enviado',
+ 'time(s)' => 'veces',
+};
+
+$self{subs} = {
+ 'acc_menu' => 'acc_menu',
+ 'add_transaction' => 'add_transaction',
+ 'aging' => 'aging',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'check_name' => 'check_name',
+ 'check_project' => 'check_project',
+ 'continue' => 'continue',
+ 'delete_schedule' => 'delete_schedule',
+ 'display' => 'display',
+ 'e_mail' => 'e_mail',
+ 'generate_ap_aging' => 'generate_ap_aging',
+ 'generate_ar_aging' => 'generate_ar_aging',
+ 'generate_balance_sheet' => 'generate_balance_sheet',
+ 'generate_income_statement' => 'generate_income_statement',
+ 'generate_projects' => 'generate_projects',
+ 'generate_tax_report' => 'generate_tax_report',
+ 'generate_trial_balance' => 'generate_trial_balance',
+ 'gl_transaction' => 'gl_transaction',
+ 'js_menu' => 'js_menu',
+ 'list_accounts' => 'list_accounts',
+ 'list_payments' => 'list_payments',
+ 'menubar' => 'menubar',
+ 'name_selected' => 'name_selected',
+ 'payment_subtotal' => 'payment_subtotal',
+ 'post_as_new' => 'post_as_new',
+ 'print' => 'print',
+ 'print_and_post_as_new' => 'print_and_post_as_new',
+ 'print_form' => 'print_form',
+ 'print_options' => 'print_options',
+ 'project_selected' => 'project_selected',
+ 'rebuild_vc' => 'rebuild_vc',
+ 'report' => 'report',
+ 'repost' => 'repost',
+ 'reprint' => 'reprint',
+ 'sales_invoice_' => 'sales_invoice_',
+ 'save_schedule' => 'save_schedule',
+ 'schedule' => 'schedule',
+ 'section_menu' => 'section_menu',
+ 'select_all' => 'select_all',
+ 'select_name' => 'select_name',
+ 'select_project' => 'select_project',
+ 'send_email' => 'send_email',
+ 'statement_details' => 'statement_details',
+ 'tax_subtotal' => 'tax_subtotal',
+ 'vendor_invoice_' => 'vendor_invoice_',
+ 'continuar' => 'continue',
+ 'eliminar_programación' => 'delete_schedule',
+ 'e_mail' => 'e_mail',
+ 'imprimir' => 'print',
+ 'guardar_programación' => 'save_schedule',
+ 'seleccionar_todos' => 'select_all',
+};
+
+1;
+
diff --git a/login.pl b/login.pl
new file mode 100755
index 00000000..923775a5
--- /dev/null
+++ b/login.pl
@@ -0,0 +1,132 @@
+#!/usr/bin/perl
+#
+######################################################################
+# LedgerSMB Accounting and ERP
+# Copyright (C) 2001
+#
+# Author: Dieter Simader
+# Email: dsimader@sql-ledger.org
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+# Contributors:
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#######################################################################
+#
+# this script sets up the terminal and runs the scripts
+# in bin/$terminal directory
+# admin.pl is linked to this script
+#
+#######################################################################
+
+
+# setup defaults, DO NOT CHANGE
+$userspath = "users";
+$spool = "spool";
+$templates = "templates";
+$memberfile = "users/members";
+$sendmail = "| /usr/sbin/sendmail -t";
+%printer = ( Printer => 'lpr' );
+########## end ###########################################
+
+
+$| = 1;
+
+eval { require "ledger-smb.conf"; };
+
+
+if ($ENV{CONTENT_LENGTH}) {
+ read(STDIN, $_, $ENV{CONTENT_LENGTH});
+}
+
+if ($ENV{QUERY_STRING}) {
+ $_ = $ENV{QUERY_STRING};
+}
+
+if ($ARGV[0]) {
+ $_ = $ARGV[0];
+}
+
+
+%form = split /[&=]/;
+
+# fix for apache 2.0 bug
+map { $form{$_} =~ s/\\$// } keys %form;
+
+# name of this script
+$0 =~ tr/\\/\//;
+$pos = rindex $0, '/';
+$script = substr($0, $pos + 1);
+
+
+if (-e "$userspath/nologin" && $script ne 'admin.pl') {
+ print "Content-Type: text/html\n\n<html><body><strong>" if $ENV{HTTP_USER_AGENT};
+ print "\nLogin disabled!\n";
+ print "\n</strong></body></html>" if $ENV{HTTP_USER_AGENT};
+ exit;
+}
+
+
+if ($form{path}) {
+ $form{path} =~ s/%2f/\//gi;
+ $form{path} =~ s/\.\.\///g;
+
+ if ($form{path} !~ /^bin\//) {
+ print "Content-Type: text/html\n\n<html><body><strong>" if $ENV{HTTP_USER_AGENT};
+ print "\nInvalid path!\n";
+ print "\n</strong></body></html>" if $ENV{HTTP_USER_AGENT};
+ exit;
+ }
+
+
+ $ARGV[0] = "$_&script=$script";
+ require "$form{path}/$script";
+} else {
+
+ if (!$form{terminal}) {
+ if ($ENV{HTTP_USER_AGENT}) {
+ # web browser
+ $form{terminal} = "lynx";
+ if ($ENV{HTTP_USER_AGENT} !~ /lynx/i) {
+ $form{terminal} = "mozilla";
+ }
+ } else {
+ if ($ENV{TERM} =~ /xterm/) {
+ $form{terminal} = "xterm";
+ }
+ if ($ENV{TERM} =~ /(console|linux|vt.*)/i) {
+ $form{terminal} = "console";
+ }
+ }
+ }
+
+
+ if ($form{terminal}) {
+
+ $ARGV[0] = "path=bin/$form{terminal}&script=$script";
+ map { $ARGV[0] .= "&${_}=$form{$_}" } keys %form;
+
+ require "bin/$form{terminal}/$script";
+
+ } else {
+
+ print "Content-Type: text/html\n\n<html><body><strong>" if $ENV{HTTP_USER_AGENT};
+ print qq|\nUnknown terminal\n|;
+ print "\n</strong></body></html>" if $ENV{HTTP_USER_AGENT};
+ }
+
+}
+
+# end of main
+
diff --git a/menu.ini b/menu.ini
new file mode 100644
index 00000000..8a9b4c67
--- /dev/null
+++ b/menu.ini
@@ -0,0 +1,908 @@
+[AR]
+
+[AR--Add Transaction]
+module=ar.pl
+action=add
+
+[AR--Sales Invoice]
+module=is.pl
+action=add
+type=invoice
+
+[AR--Reports]
+module=menu.pl
+action=acc_menu
+target=acc_menu
+submenu=1
+
+[AR--Reports--Transactions]
+module=ar.pl
+action=search
+nextsub=transactions
+
+[AR--Reports--Outstanding]
+module=ar.pl
+action=search
+outstanding=1
+nextsub=transactions
+
+[AR--Reports--AR Aging]
+module=rp.pl
+action=report
+report=ar_aging
+
+[AR--Reports--Tax collected]
+module=rp.pl
+action=report
+report=tax_collected
+
+[AR--Reports--Non-taxable]
+module=rp.pl
+action=report
+report=nontaxable_sales
+
+[AR--Customers]
+module=menu.pl
+action=acc_menu
+target=acc_menu
+submenu=1
+
+[AR--Customers--Add Customer]
+module=ct.pl
+action=add
+db=customer
+
+[AR--Customers--Reports]
+module=menu.pl
+action=acc_menu
+target=acc_menu
+submenu=1
+
+[AR--Customers--Reports--Search]
+module=ct.pl
+action=search
+db=customer
+
+[AR--Customers--Reports--History]
+module=ct.pl
+action=history
+db=customer
+
+[POS]
+
+[POS--Sale]
+module=ps.pl
+action=add
+nextsub=openinvoices
+
+[POS--Open]
+module=ps.pl
+action=openinvoices
+
+[POS--Receipts]
+module=ps.pl
+action=receipts
+
+[AP]
+
+[AP--Add Transaction]
+module=ap.pl
+action=add
+
+[AP--Vendor Invoice]
+module=ir.pl
+action=add
+type=invoice
+
+[AP--Reports]
+module=menu.pl
+action=acc_menu
+target=acc_menu
+submenu=1
+
+[AP--Reports--Transactions]
+module=ap.pl
+action=search
+nextsub=transactions
+
+[AP--Reports--Outstanding]
+module=ap.pl
+action=search
+outstanding=1
+nextsub=transactions
+
+[AP--Reports--AP Aging]
+module=rp.pl
+action=report
+report=ap_aging
+
+[AP--Reports--Tax paid]
+module=rp.pl
+action=report
+report=tax_paid
+
+[AP--Reports--Non-taxable]
+module=rp.pl
+action=report
+report=nontaxable_purchases
+
+[AP--Vendors]
+module=menu.pl
+action=acc_menu
+target=acc_menu
+submenu=1
+
+[AP--Vendors--Add Vendor]
+module=ct.pl
+action=add
+db=vendor
+
+[AP--Vendors--Reports]
+module=menu.pl
+action=acc_menu
+target=acc_menu
+submenu=1
+
+[AP--Vendors--Reports--Search]
+module=ct.pl
+action=search
+db=vendor
+
+[AP--Vendors--Reports--History]
+module=ct.pl
+action=history
+db=vendor
+
+[Cash]
+
+[Cash--Receipt]
+module=cp.pl
+action=payment
+type=receipt
+
+[Cash--Receipts]
+module=cp.pl
+action=payments
+type=receipt
+
+[Cash--Payment]
+module=cp.pl
+action=payment
+type=check
+
+[Cash--Payments]
+module=cp.pl
+action=payments
+type=check
+
+[Cash--Transfer]
+module=gl.pl
+action=add
+transfer=1
+
+[Cash--Reconciliation]
+module=rc.pl
+action=reconciliation
+
+[Cash--Reports]
+module=menu.pl
+action=acc_menu
+target=acc_menu
+submenu=1
+
+[Cash--Reports--Receipts]
+module=rp.pl
+action=report
+report=receipts
+
+[Cash--Reports--Payments]
+module=rp.pl
+action=report
+report=payments
+
+[Cash--Reports--Reconciliation]
+module=rc.pl
+action=reconciliation
+report=1
+
+[HR]
+
+[HR--Employees]
+module=menu.pl
+action=acc_menu
+target=acc_menu
+submenu=1
+
+[HR--Employees--Add Employee]
+module=hr.pl
+action=add
+db=employee
+
+[HR--Employees--Reports]
+module=hr.pl
+action=search
+db=employee
+
+[Order Entry]
+
+[Order Entry--Sales Order]
+module=oe.pl
+action=add
+type=sales_order
+
+[Order Entry--Purchase Order]
+module=oe.pl
+action=add
+type=purchase_order
+
+[Order Entry--Reports]
+module=menu.pl
+action=acc_menu
+target=acc_menu
+submenu=1
+
+[Order Entry--Reports--Sales Orders]
+module=oe.pl
+action=search
+type=sales_order
+
+[Order Entry--Reports--Purchase Orders]
+module=oe.pl
+action=search
+type=purchase_order
+
+[Order Entry--Generate]
+module=menu.pl
+action=acc_menu
+target=acc_menu
+submenu=1
+
+[Order Entry--Generate--Purchase Orders]
+module=oe.pl
+action=search
+type=generate_purchase_order
+
+[Order Entry--Consolidate]
+module=menu.pl
+action=acc_menu
+target=acc_menu
+submenu=1
+
+[Order Entry--Consolidate--Sales Orders]
+module=oe.pl
+action=search
+type=consolidate_sales_order
+
+[Order Entry--Consolidate--Purchase Orders]
+module=oe.pl
+action=search
+type=consolidate_purchase_order
+
+[Shipping]
+
+[Shipping--Ship]
+module=oe.pl
+action=search
+type=ship_order
+
+[Shipping--Receive]
+module=oe.pl
+action=search
+type=receive_order
+
+[Shipping--Transfer Inventory]
+module=oe.pl
+action=search_transfer
+
+[Quotations]
+
+[Quotations--Quotation]
+module=oe.pl
+action=add
+type=sales_quotation
+
+[Quotations--RFQ]
+module=oe.pl
+action=add
+type=request_quotation
+
+[Quotations--Reports]
+module=menu.pl
+action=acc_menu
+target=acc_menu
+submenu=1
+
+[Quotations--Reports--Quotations]
+module=oe.pl
+action=search
+type=sales_quotation
+
+[Quotations--Reports--RFQs]
+module=oe.pl
+action=search
+type=request_quotation
+
+[General Ledger]
+
+[General Ledger--Add Transaction]
+module=gl.pl
+action=add
+
+[General Ledger--Reports]
+module=gl.pl
+action=search
+
+[Goods & Services]
+
+[Goods & Services--Add Part]
+module=ic.pl
+action=add
+item=part
+
+[Goods & Services--Add Service]
+module=ic.pl
+action=add
+item=service
+
+[Goods & Services--Add Assembly]
+module=ic.pl
+action=add
+item=assembly
+
+[Goods & Services--Add Labor/Overhead]
+module=ic.pl
+action=add
+item=labor
+
+[Goods & Services--Add Group]
+module=pe.pl
+action=add
+type=partsgroup
+
+[Goods & Services--Add Pricegroup]
+module=pe.pl
+action=add
+type=pricegroup
+
+[Goods & Services--Stock Assembly]
+module=ic.pl
+action=stock_assembly
+
+[Goods & Services--Reports]
+module=menu.pl
+action=acc_menu
+target=acc_menu
+submenu=1
+
+[Goods & Services--Reports--All Items]
+module=ic.pl
+action=search
+searchitems=all
+
+[Goods & Services--Reports--Parts]
+module=ic.pl
+action=search
+searchitems=part
+
+[Goods & Services--Reports--Requirements]
+module=ic.pl
+action=requirements
+
+[Goods & Services--Reports--Services]
+module=ic.pl
+action=search
+searchitems=service
+
+[Goods & Services--Reports--Labor/Overhead]
+module=ic.pl
+action=search
+searchitems=labor
+
+[Goods & Services--Reports--Groups]
+module=pe.pl
+action=search
+type=partsgroup
+
+[Goods & Services--Reports--Pricegroups]
+module=pe.pl
+action=search
+type=pricegroup
+
+[Goods & Services--Reports--Assemblies]
+module=ic.pl
+action=search
+searchitems=assembly
+
+[Goods & Services--Reports--Components]
+module=ic.pl
+action=search
+searchitems=component
+
+[Goods & Services--Translations]
+module=menu.pl
+action=acc_menu
+target=acc_menu
+submenu=1
+
+[Goods & Services--Translations--Description]
+module=pe.pl
+action=translation
+translation=description
+
+[Goods & Services--Translations--Groups]
+module=pe.pl
+action=translation
+translation=partsgroup
+
+[Projects]
+
+[Projects--Add Project]
+module=pe.pl
+action=add
+type=project
+
+[Projects--Add Time Card]
+module=jc.pl
+action=add
+type=timecard
+project=project
+
+[Projects--Generate]
+module=menu.pl
+action=acc_menu
+target=acc_menu
+submenu=1
+
+[Projects--Generate--Sales Orders]
+module=pe.pl
+action=project_sales_order
+
+[Projects--Reports]
+module=menu.pl
+action=acc_menu
+target=acc_menu
+submenu=1
+
+[Projects--Reports--List Projects]
+module=pe.pl
+action=search
+type=project
+
+[Projects--Reports--Transactions]
+module=rp.pl
+action=report
+report=projects
+
+[Projects--Reports--Time Cards]
+module=jc.pl
+action=search
+type=timecard
+project=project
+
+[Projects--Translations]
+module=menu.pl
+action=acc_menu
+target=acc_menu
+submenu=1
+
+[Projects--Translations--Description]
+module=pe.pl
+action=translation
+translation=project
+
+[Reports]
+
+[Reports--Chart of Accounts]
+module=ca.pl
+action=chart_of_accounts
+
+[Reports--Trial Balance]
+module=rp.pl
+action=report
+report=trial_balance
+
+[Reports--Income Statement]
+module=rp.pl
+action=report
+report=income_statement
+
+[Reports--Balance Sheet]
+module=rp.pl
+action=report
+report=balance_sheet
+
+[Recurring Transactions]
+module=am.pl
+action=recurring_transactions
+
+[Batch Printing]
+
+[Batch Printing--Print]
+module=menu.pl
+action=acc_menu
+target=acc_menu
+submenu=1
+
+[Batch Printing--Print--Sales Invoices]
+module=bp.pl
+action=search
+vc=customer
+type=invoice
+
+[Batch Printing--Print--Sales Orders]
+module=bp.pl
+action=search
+vc=customer
+type=sales_order
+
+[Batch Printing--Print--Work Orders]
+module=bp.pl
+action=search
+vc=customer
+type=work_order
+
+[Batch Printing--Print--Quotations]
+module=bp.pl
+action=search
+vc=customer
+type=sales_quotation
+
+[Batch Printing--Print--Packing Lists]
+module=bp.pl
+action=search
+vc=customer
+type=packing_list
+
+[Batch Printing--Print--Pick Lists]
+module=bp.pl
+action=search
+vc=customer
+type=pick_list
+
+[Batch Printing--Print--Purchase Orders]
+module=bp.pl
+action=search
+vc=vendor
+type=purchase_order
+
+[Batch Printing--Print--Bin Lists]
+module=bp.pl
+action=search
+vc=vendor
+type=bin_list
+
+[Batch Printing--Print--RFQs]
+module=bp.pl
+action=search
+vc=vendor
+type=request_quotation
+
+[Batch Printing--Print--Time Cards]
+module=bp.pl
+action=search
+type=timecard
+vc=employee
+
+[System]
+
+[System--Audit Control]
+module=am.pl
+action=audit_control
+
+[System--Defaults]
+module=am.pl
+action=defaults
+
+[System--Taxes]
+module=am.pl
+action=taxes
+
+[System--Yearend]
+module=am.pl
+action=yearend
+
+[System--Backup]
+module=menu.pl
+action=acc_menu
+target=acc_menu
+submenu=1
+
+[System--Backup--Send by E-Mail]
+module=am.pl
+action=backup
+media=email
+
+[System--Backup--Save to File]
+module=am.pl
+action=backup
+media=file
+
+[System--Chart of Accounts]
+module=menu.pl
+action=acc_menu
+target=acc_menu
+submenu=1
+
+[System--Chart of Accounts--Add Account]
+module=am.pl
+action=add_account
+
+[System--Chart of Accounts--List Accounts]
+module=am.pl
+action=list_account
+
+[System--Chart of Accounts--Add GIFI]
+module=am.pl
+action=add_gifi
+
+[System--Chart of Accounts--List GIFI]
+module=am.pl
+action=list_gifi
+
+[System--Warehouses]
+module=menu.pl
+action=acc_menu
+target=acc_menu
+submenu=1
+
+[System--Warehouses--Add Warehouse]
+module=am.pl
+action=add_warehouse
+
+[System--Warehouses--List Warehouses]
+module=am.pl
+action=list_warehouse
+
+[System--Departments]
+module=menu.pl
+action=acc_menu
+target=acc_menu
+submenu=1
+
+[System--Departments--Add Department]
+module=am.pl
+action=add_department
+
+[System--Departments--List Departments]
+module=am.pl
+action=list_department
+
+[System--Type of Business]
+module=menu.pl
+action=acc_menu
+target=acc_menu
+submenu=1
+
+[System--Type of Business--Add Business]
+module=am.pl
+action=add_business
+
+[System--Type of Business--List Businesses]
+module=am.pl
+action=list_business
+
+[System--Language]
+module=menu.pl
+action=acc_menu
+target=acc_menu
+submenu=1
+
+[System--Language--Add Language]
+module=am.pl
+action=add_language
+
+[System--Language--List Languages]
+module=am.pl
+action=list_language
+
+[System--SIC]
+module=menu.pl
+action=acc_menu
+target=acc_menu
+submenu=1
+
+[System--SIC--Add SIC]
+module=am.pl
+action=add_sic
+
+[System--SIC--List SIC]
+module=am.pl
+action=list_sic
+
+[System--HTML Templates]
+module=menu.pl
+action=acc_menu
+target=acc_menu
+submenu=1
+
+[System--HTML Templates--Income Statement]
+module=am.pl
+action=list_templates
+file=templates=/income_statement.html
+
+[System--HTML Templates--Balance Sheet]
+module=am.pl
+action=list_templates
+file=templates=/balance_sheet.html
+
+[System--HTML Templates--Invoice]
+module=am.pl
+action=list_templates
+file=templates=/invoice.html
+
+[System--HTML Templates--AR Transaction]
+module=am.pl
+action=list_templates
+file=templates=/ar_transaction.html
+
+[System--HTML Templates--AP Transaction]
+module=am.pl
+action=list_templates
+file=templates=/ap_transaction.html
+
+[System--HTML Templates--Packing List]
+module=am.pl
+action=list_templates
+file=templates=/packing_list.html
+
+[System--HTML Templates--Pick List]
+module=am.pl
+action=list_templates
+file=templates=/pick_list.html
+
+[System--HTML Templates--Sales Order]
+module=am.pl
+action=list_templates
+file=templates=/sales_order.html
+
+[System--HTML Templates--Work Order]
+module=am.pl
+action=list_templates
+file=templates=/work_order.html
+
+[System--HTML Templates--Purchase Order]
+module=am.pl
+action=list_templates
+file=templates=/purchase_order.html
+
+[System--HTML Templates--Bin List]
+module=am.pl
+action=list_templates
+file=templates=/bin_list.html
+
+[System--HTML Templates--Statement]
+module=am.pl
+action=list_templates
+file=templates=/statement.html
+
+[System--HTML Templates--Quotation]
+module=am.pl
+action=list_templates
+file=templates=/sales_quotation.html
+
+[System--HTML Templates--RFQ]
+module=am.pl
+action=list_templates
+file=templates=/request_quotation.html
+
+[System--HTML Templates--Time Card]
+module=am.pl
+action=list_templates
+file=templates=/timecard.html
+
+[System--LaTeX Templates]
+module=menu.pl
+action=acc_menu
+target=acc_menu
+submenu=1
+
+[System--LaTeX Templates--Invoice]
+module=am.pl
+action=list_templates
+file=templates=/invoice.tex
+
+[System--LaTeX Templates--AR Transaction]
+module=am.pl
+action=list_templates
+file=templates=/ar_transaction.tex
+
+[System--LaTeX Templates--AP Transaction]
+module=am.pl
+action=list_templates
+file=templates=/ap_transaction.tex
+
+[System--LaTeX Templates--Packing List]
+module=am.pl
+action=list_templates
+file=templates=/packing_list.tex
+
+[System--LaTeX Templates--Pick List]
+module=am.pl
+action=list_templates
+file=templates=/pick_list.tex
+
+[System--LaTeX Templates--Sales Order]
+module=am.pl
+action=list_templates
+file=templates=/sales_order.tex
+
+[System--LaTeX Templates--Work Order]
+module=am.pl
+action=list_templates
+file=templates=/work_order.tex
+
+[System--LaTeX Templates--Purchase Order]
+module=am.pl
+action=list_templates
+file=templates=/purchase_order.tex
+
+[System--LaTeX Templates--Bin List]
+module=am.pl
+action=list_templates
+file=templates=/bin_list.tex
+
+[System--LaTeX Templates--Statement]
+module=am.pl
+action=list_templates
+file=templates=/statement.tex
+
+[System--LaTeX Templates--Check]
+module=am.pl
+action=list_templates
+file=templates=/check.tex
+
+[System--LaTeX Templates--Receipt]
+module=am.pl
+action=list_templates
+file=templates=/receipt.tex
+
+[System--LaTeX Templates--Quotation]
+module=am.pl
+action=list_templates
+file=templates=/sales_quotation.tex
+
+[System--LaTeX Templates--RFQ]
+module=am.pl
+action=list_templates
+file=templates=/request_quotation.tex
+
+[System--LaTeX Templates--Time Card]
+module=am.pl
+action=list_templates
+file=templates=/timecard.tex
+
+[System--Text Templates]
+module=menu.pl
+action=acc_menu
+target=acc_menu
+submenu=1
+
+[System--Text Templates--POS Invoice]
+module=am.pl
+action=list_templates
+file=templates=/pos_invoice.txt
+
+[Stylesheet]
+module=am.pl
+action=display_stylesheet
+
+[Preferences]
+module=am.pl
+action=config
+
+[Version]
+module=am.pl
+action=company_logo
+
+[New Window]
+module=menu.pl
+action=display
+main=company_logo
+duplicate=1
+target=_blank
+
+[Logout]
+module=login.pl
+action=logout
+target=_top
+
diff --git a/menu.pl b/menu.pl
new file mode 100755
index 00000000..7561741a
--- /dev/null
+++ b/menu.pl
@@ -0,0 +1,180 @@
+#!/usr/bin/perl
+#
+######################################################################
+# LedgerSMB Accounting and ERP
+# Copyright (C) 2001
+#
+# Author: Dieter Simader
+# Email: dsimader@sql-ledger.org
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+# Contributors:
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#######################################################################
+#
+# this script is the frontend called from bin/$terminal/$script
+# all the accounting modules are linked to this script which in
+# turn execute the same script in bin/$terminal/
+#
+#######################################################################
+
+# setup defaults, DO NOT CHANGE
+$userspath = "users";
+$spool = "spool";
+$templates = "templates";
+$memberfile = "users/members";
+$sendmail = "| /usr/sbin/sendmail -t";
+$latex = 0;
+%printer = ();
+########## end ###########################################
+
+
+$| = 1;
+
+use LedgerSMB::Form;
+use LedgerSMB::Session;
+
+eval { require "ledger-smb.conf"; };
+
+$form = new Form;
+
+
+# name of this script
+$0 =~ tr/\\/\//;
+$pos = rindex $0, '/';
+$script = substr($0, $pos + 1);
+
+# we use $script for the language module
+$form->{script} = $script;
+# strip .pl for translation files
+$script =~ s/\.pl//;
+
+# pull in DBI
+use DBI qw(:sql_types);
+
+# check for user config file, could be missing or ???
+eval { require("$userspath/$form->{login}.conf"); };
+if ($@) {
+ $locale = new Locale "$language", "$script";
+
+ $form->{callback} = "";
+ $msg1 = $locale->text('You are logged out!');
+ $msg2 = $locale->text('Login');
+ $form->redirect("$msg1 <p><a href=login.pl target=_top>$msg2</a>");
+}
+
+# locale messages
+$locale = new Locale "$myconfig{countrycode}", "$script";
+$form->{charset} = $locale->{charset};
+
+# send warnings to browser
+$SIG{__WARN__} = sub { $form->info($_[0]) };
+
+# send errors to browser
+$SIG{__DIE__} = sub { $form->error($_[0]) };
+
+$myconfig{dbpasswd} = unpack 'u', $myconfig{dbpasswd};
+map { $form->{$_} = $myconfig{$_} } qw(stylesheet timeout) unless ($form->{type} eq 'preferences');
+
+$form->{path} =~ s/\.\.\///g;
+if ($form->{path} !~ /^bin\//) {
+ $form->error($locale->text('Invalid path!')."\n");
+}
+
+# did sysadmin lock us out
+if (-f "$userspath/nologin") {
+ $form->error($locale->text('System currently down for maintenance!'));
+}
+
+# pull in the main code
+require "$form->{path}/$form->{script}";
+
+# customized scripts
+if (-f "$form->{path}/custom_$form->{script}") {
+ eval { require "$form->{path}/custom_$form->{script}"; };
+}
+
+# customized scripts for login
+if (-f "$form->{path}/$form->{login}_$form->{script}") {
+ eval { require "$form->{path}/$form->{login}_$form->{script}"; };
+}
+
+
+if ($form->{action}) {
+ # window title bar, user info
+ $form->{titlebar} = "LedgerSMB ".$locale->text('Version'). " $form->{version} - $myconfig{name} - $myconfig{dbname}";
+
+ &check_password;
+
+ if (substr($form->{action}, 0, 1) =~ /( |\.)/) {
+ &{ $form->{nextsub} };
+ } else {
+ &{ $locale->findsub($form->{action}) };
+ }
+
+} else {
+ $form->error($locale->text('action= not defined!'));
+}
+
+1;
+# end
+
+
+sub check_password {
+
+ if ($myconfig{password}) {
+
+ require "$form->{path}/pw.pl";
+
+ if ($form->{password}) {
+ if ((crypt $form->{password}, substr($form->{login}, 0, 2)) ne $myconfig{password}) {
+ if ($ENV{HTTP_USER_AGENT}) {
+ &getpassword;
+ } else {
+ $form->error($locale->text('Access Denied!'));
+ }
+ exit;
+ } else {
+ Session::session_create($form, %myconfig);
+ }
+
+ } else {
+ if ($ENV{HTTP_USER_AGENT}) {
+ $ENV{HTTP_COOKIE} =~ s/;\s*/;/g;
+ @cookies = split /;/, $ENV{HTTP_COOKIE};
+ foreach (@cookies) {
+ ($name,$value) = split /=/, $_, 2;
+ $cookie{$name} = $value;
+ }
+
+ if ($form->{action} ne 'display') {
+ if ((! $cookie{"LedgerSMB-$form->{login}"}) || $cookie{"LedgerSMB-$form->{login}"} ne $form->{sessionid}) {
+ &getpassword(1);
+ exit;
+ }
+ }
+ #check for valid session
+ if(!Session::session_check($cookie{"LedgerSMB"}, $form, %myconfig)){
+ &getpassword(1);
+ exit;
+ }
+ } else {
+ exit;
+ }
+ }
+ }
+}
+
+
diff --git a/oe.pl b/oe.pl
new file mode 100755
index 00000000..742968ca
--- /dev/null
+++ b/oe.pl
@@ -0,0 +1,2 @@
+#!/usr/bin/perl
+eval { require "menu.pl"; };
diff --git a/pe.pl b/pe.pl
new file mode 100755
index 00000000..742968ca
--- /dev/null
+++ b/pe.pl
@@ -0,0 +1,2 @@
+#!/usr/bin/perl
+eval { require "menu.pl"; };
diff --git a/ps.pl b/ps.pl
new file mode 100755
index 00000000..742968ca
--- /dev/null
+++ b/ps.pl
@@ -0,0 +1,2 @@
+#!/usr/bin/perl
+eval { require "menu.pl"; };
diff --git a/rc.pl b/rc.pl
new file mode 100755
index 00000000..742968ca
--- /dev/null
+++ b/rc.pl
@@ -0,0 +1,2 @@
+#!/usr/bin/perl
+eval { require "menu.pl"; };
diff --git a/rp.pl b/rp.pl
new file mode 100755
index 00000000..742968ca
--- /dev/null
+++ b/rp.pl
@@ -0,0 +1,2 @@
+#!/usr/bin/perl
+eval { require "menu.pl"; };
diff --git a/setup.pl b/setup.pl
new file mode 100755
index 00000000..1c15e2f9
--- /dev/null
+++ b/setup.pl
@@ -0,0 +1,548 @@
+#!/usr/bin/perl
+#
+######################################################################
+# LedgerSMB Small Medium Business Accounting Software Installer
+# Copyright (c) 2002, Dieter Simader
+#
+# Web: http://sourceforge.net/projects/ledger-smb/
+#
+#######################################################################
+
+$| = 1;
+
+if ($ENV{HTTP_USER_AGENT}) {
+ print "
+This does not work yet!
+use $0 from the command line";
+ exit;
+}
+
+$lynx = `lynx -version`; # if LWP is not installed use lynx
+$gzip = `gzip -V 2>&1`; # gz decompression utility
+$tar = `tar --version 2>&1`; # tar archiver
+$latex = `latex -version`;
+
+%checkversion = ( www => 3, abacus => 4, pluto => 5, neptune => 8 );
+
+%source = (
+ 1 => { url => "http://voxel.dl.sourceforge.net/sourceforge/sql-ledger", site => "New York, U.S.A", locale => us },
+ 2 => { url => "http://easynews.dl.sourceforge.net/sourceforge/sql-ledger", site => "Arizona, U.S.A", locale => us },
+ 3 => { url => "http://www.sql-ledger.com/source", site => "California, U.S.A", locale => us },
+ 4 => { url => "http://abacus.sql-ledger.com/source", site => "Toronto, Canada", locale => ca },
+ 5 => { url => "http://pluto.sql-ledger.com/source", site => "Edmonton, Canada", locale => ca },
+ 6 => { url => "http://ufpr.dl.sourceforge.net/sourceforge/sql-ledger", site =>"Brazil", locale => br },
+ 7 => { url => "http://surfnet.dl.sourceforge.net/sourceforge/sql-ledger", site => "The Netherlands", locale => nl },
+ 8 => { url => "http://neptune.sql-ledger.com/source", site => "Ireland", locale => ie },
+ 9 => { url => "http://kent.dl.sourceforge.net/sourceforge/sql-ledger", site => "U.K", locale => uk },
+ 10 => { url => "http://ovh.dl.sourceforge.net/sourceforge/sql-ledger", site => "France", locale => fr },
+ 11 => { url => "http://mesh.dl.sourceforge.net/sourceforge/sql-ledger", site => "Germany", locale => de },
+ 12 => { url => "http://citkit.dl.sourceforge.net/sourceforge/sql-ledger", site => "Russia", locale => ru },
+ 13 => { url => "http://optusnet.dl.sourceforge.net/sourceforge/sql-ledger", site => "Sydney, Australia", locale => au },
+ 14 => { url => "http://nchc.dl.sourceforge.net/sourceforge/sql-ledger", site => "Taiwan", locale => tw },
+ 15 => { url => "http://jaist.dl.sourceforge.net/sourceforge/sql-ledger", site => "Japan", locale => jp }
+ );
+
+$userspath = "users"; # default for new installation
+
+eval { require "ledger-smb.conf"; };
+
+$filename = shift;
+chomp $filename;
+
+$newinstall = 1;
+
+# is LWP installed
+eval { require LWP::Simple; };
+$lwp = !($@);
+
+unless ($lwp || $lynx || $filename) {
+ die "You must have either lynx or LWP installed or specify a filename.
+perl $0 <filename>\n";
+}
+
+if ($filename) {
+ # extract version
+ die "Not a LedgerSMB archive\n" if ($filename !~ /^sql-ledger/);
+
+ $version = $filename;
+ $version =~ s/sql-ledger-(\d+\.\d+\.\d+).*$/$1/;
+
+}
+
+if (-f "VERSION") {
+ # get installed version from VERSION file
+ open(FH, "VERSION");
+ @a = <FH>;
+ close(FH);
+ $version = $a[0];
+ chomp $version;
+
+ $newinstall = !$version;
+
+ if (! -f "ledger-smb.conf") {
+ $newinstall = 1;
+ }
+}
+
+$webowner = "nobody";
+$webgroup = "nogroup";
+
+if ($httpd = `find /etc /usr/local/etc -type f -name 'httpd.conf'`) {
+ chomp $httpd;
+ $webowner = `grep "^User " $httpd`;
+ $webgroup = `grep "^Group " $httpd`;
+
+ chomp $webowner;
+ chomp $webgroup;
+
+ ($null, $webowner) = split / /, $webowner;
+ ($null, $webgroup) = split / /, $webgroup;
+
+}
+
+if ($confd = `find /etc /usr/local/etc -type d -name 'apache*/conf.d'`) {
+ chomp $confd;
+}
+
+system("tput clear");
+
+if ($filename) {
+ $install = "\ninstall $version from (f)ile\n";
+}
+
+# check for latest version
+&get_latest_version;
+chomp $latest_version;
+
+if (!$newinstall) {
+
+ $install .= "\n(r)einstall $version\n";
+
+}
+
+if ($version && $latest_version) {
+ if ($version lt $latest_version) {
+ $install .= "\n(u)pgrade to $latest_version\n";
+ }
+}
+
+
+$install .= "\n(i)nstall $latest_version (from Internet)\n" if $latest_version;
+
+$install .= "\n(d)ownload $latest_version (no installation)" unless $filename;
+
+ print qq|
+
+
+ LedgerSMB Accounting and ERP Installation
+
+
+
+$install
+
+
+Enter: |;
+
+$a = <STDIN>;
+chomp $a;
+
+exit unless $a;
+$a = lc $a;
+
+if ($a !~ /d/) {
+
+ print qq|\nEnter httpd owner [$webowner] : |;
+ $web = <STDIN>;
+ chomp $web;
+ $webowner = $web if $web;
+
+ print qq|\nEnter httpd group [$webgroup] : |;
+ $web = <STDIN>;
+ chomp $web;
+ $webgroup = $web if $web;
+
+}
+
+if ($a ne 'f') {
+ system("tput clear");
+
+ # choose site
+ foreach $item (sort { $a <=> $b } keys %source) {
+ $i++;
+ print qq|$i. $source{$item}{site}\n|;
+ }
+
+ $site = "1";
+
+ print qq|\nChoose Location [$site] : |;
+ $b = <STDIN>;
+ chomp $b;
+ $site = $b if $b;
+}
+
+if ($a eq 'd') {
+ &download;
+}
+if ($a =~ /(i|u)/) {
+ &install;
+}
+if ($a eq 'r') {
+ $latest_version = $version;
+ &install;
+}
+if ($a eq 'f') {
+ &install;
+}
+
+exit;
+# end main
+
+
+sub download {
+
+ &get_source_code;
+
+}
+
+
+sub get_latest_version {
+
+ print "Checking for latest version number .... ";
+
+ if ($filename) {
+ print "skipping, filename supplied\n";
+ return;
+ }
+
+ if ($lwp) {
+ foreach $source (qw(pluto www abacus neptune)) {
+ $url = $source{$checkversion{$source}}{url};
+ print "\n$source{$checkversion{$source}}{site} ... ";
+
+ $latest_version = LWP::Simple::get("$url/latest_version");
+
+ if ($latest_version) {
+ last;
+ } else {
+ print "not found";
+ }
+ }
+ } else {
+ if (!$lynx) {
+ print "\nYou must have either lynx or LWP installed";
+ exit 1;
+ }
+
+ foreach $source (qw(pluto www abacus neptune)) {
+ $url = $source{$checkversion{$source}}{url};
+ print "\n$source{$checkversion{$source}}{site} ... ";
+ $ok = `lynx -dump -head $url/latest_version`;
+ if ($ok = ($ok =~ s/HTTP.*?200 //)) {
+ $latest_version = `lynx -dump $url/latest_version`;
+ last;
+ } else {
+ print "not found";
+ }
+ }
+ die unless $ok;
+ }
+
+ if ($latest_version) {
+ print "ok\n";
+ 1;
+ }
+
+}
+
+
+sub get_source_code {
+
+ $err = 0;
+
+ @order = ();
+ push @order, $site;
+
+ for (sort { $a <=> $b } keys %source) {
+ push @order, $_;
+ }
+
+ if ($latest_version) {
+ # download it
+ chomp $latest_version;
+ $latest_version = "sql-ledger-${latest_version}.tar.gz";
+
+ print "\nStatus\n";
+ print "Downloading $latest_version .... ";
+
+ foreach $key (@order) {
+ print "\n$source{$key}{site} .... ";
+
+ if ($lwp) {
+ $err = LWP::Simple::getstore("$source{$key}{url}/$latest_version", "$latest_version");
+ $err -= 200;
+ } else {
+ $ok = `lynx -dump -head $source{$key}{url}/$latest_version`;
+ $err = !($ok =~ s/HTTP.*?200 //);
+
+ if (!$err) {
+ $err = system("lynx -dump $source{$key}{url}/$latest_version > $latest_version");
+ }
+ }
+
+ if ($err) {
+ print "failed!";
+ } else {
+ last;
+ }
+
+ }
+
+ } else {
+ $err = -1;
+ }
+
+ if ($err) {
+ die "Cannot get $latest_version";
+ } else {
+ print "ok!\n";
+ }
+
+ $latest_version;
+
+}
+
+
+sub install {
+
+ if ($filename) {
+ $latest_version = $filename;
+ } else {
+ $latest_version = &get_source_code;
+ }
+
+ &decompress;
+
+ if ($newinstall) {
+ open(FH, "ledger-smb.conf.default");
+ @f = <FH>;
+ close(FH);
+ unless ($latex) {
+ grep { s/^\$latex.*/\$latex = 0;/ } @f;
+ }
+ open(FH, ">ledger-smb.conf");
+ print FH @f;
+ close(FH);
+
+ $alias = $absolutealias = $ENV{'PWD'};
+ $alias =~ s/.*\///g;
+
+ $httpddir = `dirname $httpd`;
+ if ($confd) {
+ $httpddir = $confd;
+ }
+ chomp $httpddir;
+ $filename = "sql-ledger-httpd.conf";
+
+ # do we have write permission?
+ if (!open(FH, ">>$httpddir/$filename")) {
+ open(FH, ">$filename");
+ $norw = 1;
+ }
+
+ $directives = qq|
+Alias /$alias $absolutealias/
+<Directory $absolutealias>
+ AllowOverride All
+ AddHandler cgi-script .pl
+ Options ExecCGI Includes FollowSymlinks
+ Order Allow,Deny
+ Allow from All
+</Directory>
+
+<Directory $absolutealias/users>
+ Order Deny,Allow
+ Deny from All
+</Directory>
+
+|;
+
+ print FH $directives;
+ close(FH);
+
+ print qq|
+This is a new installation.
+
+|;
+
+ if ($norw) {
+ print qq|
+Webserver directives were written to $filename
+
+Copy $filename to $httpddir
+|;
+
+ if (!$confd) {
+ print qq| and add
+# SQL-Ledger
+Include $httpddir/$filename
+
+to $httpd
+|;
+ }
+
+ print qq| and restart your webserver!\n|;
+
+ if (!$permset) {
+ print qq|
+WARNING: permissions for templates, users, css and spool directory
+could not be set. Login as root and set permissions
+
+# chown -hR :$webgroup users templates css spool
+# chmod 771 users templates css spool
+
+|;
+ }
+
+ } else {
+
+ print qq|
+Webserver directives were written to
+
+ $httpddir/$filename
+|;
+
+ if (!$confd) {
+ if (!(`grep "^# SQL-Ledger" $httpd`)) {
+
+ open(FH, ">>$httpd");
+
+ print FH qq|
+
+# SQL-Ledger
+Include $httpddir/$filename
+|;
+ close(FH);
+
+ }
+ }
+
+ if (!$>) {
+ # send SIGHUP to httpd
+ if ($f = `find /var -type f -name 'httpd.pid'`) {
+ $pid = `cat $f`;
+ chomp $pid;
+ if ($pid) {
+ system("kill -s HUP $pid");
+ }
+ }
+ }
+ }
+ }
+
+ # if this is not root, check if user is part of $webgroup
+ if ($>) {
+ if ($permset = ($) =~ getgrnam $webgroup)) {
+ `chown -hR :$webgroup users templates css spool`;
+ chmod 0771, 'users', 'templates', 'css', 'spool';
+ `chown :$webgroup ledger-smb.conf`;
+ }
+ } else {
+ # root
+ `chown -hR 0:0 *`;
+ `chown -hR $webowner:$webgroup users templates css spool`;
+ chmod 0771, 'users', 'templates', 'css', 'spool';
+ `chown $webowner:$webgroup ledger-smb.conf`;
+ }
+
+ chmod 0644, 'ledger-smb.conf';
+ unlink "ledger-smb.conf.default";
+
+ &cleanup;
+
+ while ($a !~ /(Y|N)/) {
+ print qq|\nDisplay README (Y/n) : |;
+ $a = <STDIN>;
+ chomp $a;
+ $a = ($a) ? uc $a : 'Y';
+
+ if ($a eq 'Y') {
+ @args = ("more", "doc/README");
+ system(@args);
+ }
+ }
+
+}
+
+
+sub decompress {
+
+ die "Error: gzip not installed\n" unless ($gzip);
+ die "Error: tar not installed\n" unless ($tar);
+
+ &create_lockfile;
+
+ # ungzip and extract source code
+ print "Decompressing $latest_version ... ";
+
+ if (system("gzip -df $latest_version")) {
+ print "Error: Could not decompress $latest_version\n";
+ &remove_lockfile;
+ exit;
+ } else {
+ print "done\n";
+ }
+
+ # strip gz from latest_version
+ $latest_version =~ s/\.gz//;
+
+ # now untar it
+ print "Unpacking $latest_version ... ";
+ if (system("tar -xf $latest_version")) {
+ print "Error: Could not unpack $latest_version\n";
+ &remove_lockfile;
+ exit;
+ } else {
+ # now we have a copy in sql-ledger
+ if (system("tar -cf $latest_version -C sql-ledger .")) {
+ print "Error: Could not create archive for $latest_version\n";
+ &remove_lockfile;
+ exit;
+ } else {
+ if (system("tar -xf $latest_version")) {
+ print "Error: Could not unpack $latest_version\n";
+ &remove_lockfile;
+ exit;
+ } else {
+ print "done\n";
+ print "cleaning up ... ";
+ `rm -rf sql-ledger`;
+ print "done\n";
+ }
+ }
+ }
+}
+
+
+sub create_lockfile {
+
+ if (-d "$userspath") {
+ open(FH, ">$userspath/nologin");
+ close(FH);
+ }
+
+}
+
+
+sub cleanup {
+
+ unlink "$latest_version";
+ unlink "$userspath/members.default" if (-f "$userspath/members.default");
+
+ &remove_lockfile;
+
+}
+
+
+sub remove_lockfile { unlink "$userspath/nologin" if (-f "$userspath/nologin") };
+
+
diff --git a/sql/Australia_General_0000-chart.sql b/sql/Australia_General_0000-chart.sql
new file mode 100755
index 00000000..806370d4
--- /dev/null
+++ b/sql/Australia_General_0000-chart.sql
@@ -0,0 +1,113 @@
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2000', 'CURRENT LIABILITIES', 'H', 'L', '', '');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2600', 'LONG TERM LIABILITIES', 'H', 'L', '', '');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4000', 'SALES REVENUE', 'H', 'I', '', '');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5000', 'COST OF GOODS SOLD', 'H', 'E', '', '');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5400', 'PAYROLL EXPENSES', 'H', 'E', '', '');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5600', 'GENERAL & ADMINISTRATIVE EXPENSES', 'H', 'E', '', '');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('6000', 'CAR EXPENSES', 'H', 'E', '', '');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4300', 'OTHER REVENUE', 'H', 'I', '', '');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5470', 'Staff Amenities', 'A', 'E', '', '');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1500', 'STOCK ON HAND', 'H', 'A', '', '');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3300', 'EQUITY', 'H', 'Q', '', '');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1520', 'SOH / Leather', 'A', 'A', 'IC', '1500');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1000', 'CURRENT ASSETS', 'H', 'A', '', '');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1820', 'Plant & Equipment - at Cost', 'A', 'A', 'AP_amount', '1800');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('1825', 'Less: Accumulated Depreciation', 'A', 'A', '', '1800', '1');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1840', 'Motor Vehicles - at Cost', 'A', 'A', 'AP_amount', '1800');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('1845', 'Less: Accumulated Depreciation', 'A', 'A', '', '1800', '1');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1800', 'CAPITAL ASSETS', 'H', 'A', '', '');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1060', 'Cheque Account', 'A', 'A', 'AR_paid:AP_paid', '1000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1205', 'Less: Provision Doubtful Debts', 'A', 'A', '', '1000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1210', 'Trade Debtors / Australia - with GST', 'A', 'A', 'AR', '1000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1220', 'Trade Debtors / Exports - GST free', 'A', 'A', 'AR', '1000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1230', 'GST / Refund', 'A', 'A', 'AR_tax:AP_tax:IC_taxpart:IC_taxservice', '1000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1530', 'SOH / PVC', 'A', 'A', 'IC', '1500');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1540', 'SOH / Fabrics', 'A', 'A', 'IC', '1500');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1550', 'SOH / Metal Hardware / Fasteners / Accessories', 'A', 'A', 'IC', '1500');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1560', 'SOH / Paint / Glue / Dye', 'A', 'A', 'IC', '1500');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1570', 'SOH / Threads / Tapes / Cords / Laces', 'A', 'A', 'IC', '1500');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1580', 'SOH / Other Goods', 'A', 'A', 'IC', '1500');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2100', 'Trade Creditors', 'A', 'L', 'AP', '2000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2160', 'Taxation - Payable', 'A', 'L', '', '2000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2210', 'Workers Compensation - Payable', 'A', 'L', '', '2000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2250', 'Superannuation - Payable', 'A', 'L', '', '2000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2260', 'Insurance - Payable', 'A', 'L', '', '2000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2290', 'GST / Payable', 'A', 'L', 'AR_tax:AP_tax:IC_taxpart:IC_taxservice', '2000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2300', 'GST Payments / Refunds', 'A', 'L', '', '2000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2310', 'GST Adjustments', 'A', 'L', '', '2000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3350', 'Issued & Paid up Capital', 'A', 'Q', '', '3300');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3370', 'Opening Account Balance', 'A', 'Q', '', '3300');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3380', 'Credit Payments / Holding Account', 'A', 'Q', 'AR_paid', '');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4020', 'Sales / Manufactured Products', 'A', 'I', 'AR_amount:IC_sale', '4000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4030', 'Sales / General', 'A', 'I', 'AR_amount:IC_sale:IC_income', '4000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4410', 'Shop Labour', 'A', 'I', 'IC_income', '4000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4420', 'Design / Patternmaking', 'A', 'I', 'IC_income', '4000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4430', 'Shipping & Handling', 'A', 'I', 'IC_income', '4000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4440', 'Interest Received', 'A', 'I', '', '4000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4450', 'Foreign Exchange Profit', 'A', 'I', '', '4000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4460', 'Mark-Up / Price Adjustment', 'A', 'I', 'IC_income', '4000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4470', 'Computer Consultancy / Training', 'A', 'I', 'IC_income', '4000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2620', 'Bank Loans', 'A', 'L', '', '2000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2640', 'Hire Purchase', 'A', 'L', 'AP_amount', '2000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2650', 'Other Loans', 'A', 'L', '', '2000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5020', 'COGS / Leather', 'A', 'E', 'IC_cogs', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5030', 'COGS / PVC', 'A', 'E', 'IC_cogs', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5040', 'COGS / Fabrics', 'A', 'E', 'IC_cogs', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5050', 'COGS / Metal Hardware / Fasteners / Accessories', 'A', 'E', 'IC_cogs', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5060', 'COGS / Paint / Glue / Dye', 'A', 'E', 'IC_cogs', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5070', 'COGS / Threads / Tapes / Cords / Laces', 'A', 'E', 'IC_cogs', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5080', 'COGS / Other Goods', 'A', 'E', 'IC_cogs', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5410', 'Wages', 'A', 'E', '', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5430', 'Superannuation', 'A', 'E', '', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5440', 'Workers Compensation', 'A', 'E', '', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5605', 'External labour costs', 'A', 'E', 'AP_amount:IC_expense', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5610', 'Accountancy', 'A', 'E', 'AP_amount', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5611', 'Legal Fees', 'A', 'E', 'AP_amount', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5613', 'Postage / Printing / Stationery', 'A', 'E', 'AP_amount', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5614', 'Freight and Cartage', 'A', 'E', 'AP_amount:IC_expense', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5615', 'Advertising & Promotions', 'A', 'E', 'AP_amount:IC_expense', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5620', 'Bad Debts', 'A', 'E', '', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5650', 'Capital Cost Allowance Expense', 'A', 'E', '', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5660', 'Interest Expenses', 'A', 'E', '', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5670', 'Depreciation Expenses', 'A', 'E', '', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5680', 'Taxation', 'A', 'E', '', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5685', 'Insurance', 'A', 'E', 'AP_amount', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5686', 'Security', 'A', 'E', 'AP_amount', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5690', 'Bank Fees And Charges', 'A', 'E', 'AP_amount', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5695', 'Other Fees And Charges', 'A', 'E', 'AP_amount', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5700', 'Office Supplies', 'A', 'E', 'AP_amount', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5760', 'Rent on Land & Buildings', 'A', 'E', 'AP_amount', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5765', 'Repairs & Maintenance', 'A', 'E', 'AP_amount', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5766', 'Fixtures & Fittings', 'A', 'E', 'AP_amount', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5770', 'Replacements (tools, etc)', 'A', 'E', 'AP_amount', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5780', 'Telephone', 'A', 'E', 'AP_amount', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5782', 'Computer Expenses', 'A', 'E', 'AP_amount:IC_expense', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5783', 'Research & Development', 'A', 'E', 'AP_amount', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5785', 'Travel, Accommodation & Conference', 'A', 'E', '', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5790', 'Hire / Rent of Plant & Equipment ', 'A', 'E', 'AP_amount', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5795', 'Registration & Insurance', 'A', 'E', 'AP_amount', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5800', 'Licenses', 'A', 'E', 'AP_amount', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5810', 'Foreign Exchange Loss', 'A', 'E', '', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5811', 'Electricity', 'A', 'E', 'AP_amount', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5812', 'Gas', 'A', 'E', 'AP_amount', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5813', 'Sundry Expenses', 'A', 'E', 'AP_amount:IC_expense', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5820', 'Goods & Services for own Use', 'A', 'E', 'AP_amount', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('6010', 'M/V Commercial - Fuels / Oils / Parts', 'A', 'E', 'AP_amount', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('6020', 'M/V Commercial - Repairs', 'A', 'E', 'AP_amount', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('6040', 'M/V Commercial - Reg / Insurance', 'A', 'E', 'AP_amount', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('6080', 'M/V Private Use - Interest Expenses', 'A', 'E', '', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('6090', 'M/V Private Use - Other Expenses', 'A', 'E', 'AP_amount', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('6070', 'M/V Private Use - Depreciation Expenses', 'A', 'E', '', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('6050', 'M/V Commercial - Depreciation Expenses', 'A', 'E', '', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('6060', 'M/V Commercial - Interest Expenses', 'A', 'E', '', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1065', 'Cash / Paid From Private Accounts', 'A', 'Q', 'AR_paid:AP_paid', '1000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3360', 'Payments for G & S for own Use', 'A', 'Q', 'AP_paid', '3300');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5830', 'Discounts / Refunds / Rounding', 'A', 'E', 'AP_amount', '5000');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3390', 'Retained Profits', 'A', 'Q', '', '3300');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5840', 'Fines - NON DEDUCTIBLE EXPENSES', 'A', 'E', '', '');
+--
+INSERT INTO tax (chart_id, rate, taxnumber) VALUES ((SELECT id FROM chart WHERE accno = '1230'), 0.1, '');
+INSERT INTO tax (chart_id, rate, taxnumber) VALUES ((SELECT id FROM chart WHERE accno = '2290'), 0.1, '');
+--
+UPDATE defaults SET inventory_accno_id = (SELECT id FROM chart WHERE accno = '1520'), income_accno_id = (SELECT id FROM chart WHERE accno = '4020'), expense_accno_id = (SELECT id FROM chart WHERE accno = '5020'), fxgain_accno_id = (SELECT id FROM chart WHERE accno = '4450'), fxloss_accno_id = (SELECT id FROM chart WHERE accno = '5810'), curr = 'AUD', weightunit = 'kg';
+--
diff --git a/sql/Australia_General_00000-chart.sql b/sql/Australia_General_00000-chart.sql
new file mode 100755
index 00000000..62b570a3
--- /dev/null
+++ b/sql/Australia_General_00000-chart.sql
@@ -0,0 +1,79 @@
+-- Australia chart of accounts
+-- sample only
+--
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('10000','BANK AND CASH ACCOUNTS','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('10001','Bank Account','A','100','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('10010','Petty Cash','A','100','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('11000','CUSTOMERS AND SETTLEMENT ACCOUNTS','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('11001','Accounts Receivables','A','110','A','AR');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('12000','OTHER CURRENT ASSETS','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('12001','Allowance for doubtful accounts','A','120','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('15000','INVENTORY ASSETS','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('15001','Inventory / General','A','150','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('15002','Inventory / Aftermarket Parts','A','150','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('16000','STATUTORY DEBTORS','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('16001','INPUT GST','A','160','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('18000','CAPITAL ASSETS','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('18001','Land and Buildings','A','180','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link,contra) values ('18002','Accumulated Amortization -Land & Buildings','A','180','A','','1');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('18003','Office Furniture & Equipment','A','180','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link,contra) values ('18004','Accumulated Amortization -Furniture & Equipment','A','180','A','','1');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('18005','Vehicle','A','180','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link,contra) values ('18006','Accumulated Amortization -Vehicle','A','180','A','','1');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('20000','CURRENT LIABILITIES','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('20001','Accounts Payable','A','200','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('21000','STATUTORY CREDITORS','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('21001','Corporate Taxes Payable','A','210','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('21002','OUTPUT GST','A','210','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('21003','GST Settlement Account','A','210','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('22000','PAYROLL ACCOUNTS','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('22001','Workers Net Salary Payable','A','220','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('22002','PAYG Witholding Payable','A','220','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('22003','Superannuation Plan Payable','A','220','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('26000','LONG TERM LIABILITIES','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('26001','Bank Loans','A','260','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('26002','Loans from Shareholders','A','260','L','AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('33000','SHARE CAPITAL','H','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('33001','Common Shares','A','330','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('40000','SALES REVENUE','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('40001','Sales / General','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('40002','Sales / Aftermarket Parts','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('41000','CONSULTING REVENUE','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('41001','Consulting','A','410','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('42000','OTHER REVENUE','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('42001','Interest and Financial Income','A','420','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('42002','Foreign Exchange Gain','A','420','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('50000','COST OF GOODS SOLD','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('50001','Purchases','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('50002','COGS / General','A','500','E','AP_amount:IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('50003','COGS / Aftermarket Parts','A','500','E','AP_amount:IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('50004','Freight','A','500','E','AP_amount:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('54000','PAYROLL EXPENSES','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('54001','Wages & Salaries','A','540','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('54002','PAYG Tax Expense','A','540','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('54003','Superannuation Plan Expense','A','540','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('56000','GENERAL & ADMINISTRATIVE EXPENSES','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('56001','Accounting & Legal','A','560','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('56002','Advertising & Promotions','A','560','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('56003','Amortization Expense','A','560','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('56004','Income Taxes','A','560','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('56005','Insurance','A','560','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('56006','Office Supplies','A','560','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('56007','Rent and Rates','A','560','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('56008','Repair & Maintenance','A','560','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('56009','Telephone, Fax and Internet','A','560','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('56010','Travel & Entertainment','A','560','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('56011','Utilities','A','560','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('56012','Registrations','A','560','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('56013','Licenses','A','560','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('58000','OTHER EXPENSES','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('58001','Interest & Bank Charges','A','580','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('58002','Foreign Exchange Loss','A','580','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('58003','Bad Debts','A','580','E','');
+--
+insert into tax (chart_id,rate) values ((select id from chart where accno = '16001'),0.1);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '21002'),0.1);
+--
+update defaults
+set inventory_accno_id = (select id from chart where accno = '15001'), income_accno_id = (select id from chart where accno = '40001'), expense_accno_id = (select id from chart where accno = '50001'), fxgain_accno_id = (select id from chart where accno = '42002'), fxloss_accno_id = (select id from chart where accno = '58002'), curr = 'AUD:USD:EUR', weightunit = 'kg';
+
diff --git a/sql/Austria-chart.sql b/sql/Austria-chart.sql
new file mode 100755
index 00000000..47a11f72
--- /dev/null
+++ b/sql/Austria-chart.sql
@@ -0,0 +1,143 @@
+-- Kontoplan für Österreich
+-- Ferdinand Gassauer, Tue, 5 Feb 2002
+-- checked and completed, Thu, 7 Feb 2002, Dieter Simader
+--
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0000','AUFWENDUNGEN FÜR INGANGSETZEN UND ERWEITERN DES BETRIEBES','H','00','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0010','Firmenwert','A','015','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0100','IMMATERIELLE VERMÖGENSGEGENSTÄNDE','H','01','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0110','Rechte','A','011','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0200','GRUNDSTÜCKE','H','02-03','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0210','unbebaute Grundstücke','A','020','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0220','bebaute Grundstücke','A','021','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link,contra) values ('0229','kum. Abschreibung bebaute Grundstücke','A','039','A','','1');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0400','MASCHINEN','H','04-05','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0410','Maschinen','A','041','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link,contra) values ('0419','kum. Abschreibung Maschinen','A','069','A','','1');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0500','FAHRZEUGE','H','06','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0510','Fahrzeuge','A','063','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link,contra) values ('0519','kum. Abschreibung Fahrzeuge','A','069','A','','1');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0600','BETRIEBS- UND GESCHÄFTSAUSSTATTUNG','H','06','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0620','Büroeinrichtungen','A','066','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link,contra) values ('0625','kum. Abschreibung Betriebs- und Geschäftsausstattung','A','069','A','','1');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0700','GELEISTETE ANZAHLUNGEN','H','07','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0800','FINANZANLAGEN','H','08-09','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0810','Beteiligungen','A','081','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0820','Wertpapiere','A','080','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1100','ROHSTOFFE','H','1','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1120','Vorräte - Rohstoffe','A','110-119','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1200','BEZOGENE TEILE','H','1','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1220','Vorräte - bezogene Teile','A','120-129','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1300','HILFS- UND BETRIEBSSTOFFE','H','1','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1320','Hilfsstoffe','A','130-134','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1350','Betriebssstoffe','A','135-139','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1400','UNFERTIGE ERZEUGNISSE','H','1','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1420','Vorräte - unfertige Erzeugnisse','A','140-149','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1500','FERTIGE ERZEUGNISSE','H','1','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1520','Vorräte - Hardware','A','150-159','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1530','Vorräte - Software','A','150-159','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1540','Vorräte - Ersatzteile','A','150-159','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1600','WAREN','H','1','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1700','NOCH NICHT ABGERECHNETE LEISTUNGEN','H','1','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1800','GELEISTETE ANZAHLUNGEN','H','1','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1900','WERTBERICHTIGUNGEN','H','1','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2000','FORDEUNGEN AUS LIEFERUNGEN UND LEISTUNGEN','H','2','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2010','Forderungen Lieferung & Leistung','A','200-207','A','AR');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2019','Wertberichtigung uneinbringliche Forderungen','A','20-21','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2300','SONSTIGE FORDERUNGEN','H','2','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2320','sonstige Forderungen','A','23-24','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2500','FORDERUNGEN AUS ABGABENVERRECHNUNG','H','2','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2520','sonstige Forderungen aus Abgebenverrechnung','A','25','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2600','WERTPAPIERE UND ANTEILE','H','2','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2620','Wertpapiere Umlaufvermögen','A','26','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2700','KASSABESTAND','H','2','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2701','Kassa','A','27-28','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2800','SCHECKS, GUTHABEN BEI KREDITINSTITUTEN','H','2','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2810','Schecks','A','27-28','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2820','Bankguthaben','A','280-288','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3100','LANGFRISTIGE VERBINDLICHKEITEN','H','3','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3110','Bank Verbindlichkeiten','A','31','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3120','Kredite von Eigentümern','A','310','L','AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3300','VERBINDLICHKEITEN AUS LIEFERUNGEN UND LEISTUNGEN','H','33','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3310','Verbindlichkeiten aus Lieferungen und Leistungen','A','330-335','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3500','VERBINDLICHKEITEN FINANZAMT','H','35','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3510','Finanzamt Verrechnung Körperschaftssteuer','A','350-359','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3520','Finanzamt Verrechnung Umsatzsteuer','A','350-359','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3530','Mehrwertsteuer 0%','A','350-359','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3531','Mehrwertsteuer 10%','A','350-359','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3532','Mehrwertsteuer 20%','A','350-359','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3540','Vorsteuer 0%','A','350-359','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3541','Vorsteuer 10%','A','350-359','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3542','Vorsteuer 20%','A','350-359','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4000','UMSATZ','H','4','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4020','Verkauf - Hardware','A','40-44','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4030','Verkauf - Software ','A','40-44','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4040','Verkauf - Ersatzteile','A','40-44','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4300','UMSATZ BERATUNG','H','4','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4320','Erlöse Beratung','A','40-44','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4330','Erlöse Programmierung','A','40-44','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4600','SONSTIGE ERLÖSE','H','4','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4630','Frachterlöse','A','46-49','I','IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5000','WARENEINSATZ','H','5','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5020','Wareneinsatz / Hardware','A','500-509','E','AP_amount:IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5030','Wareneinsatz / Software','A','500-509','E','AP_amount:IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5040','Wareneinsatz / Ersatzteile','A','520-529','E','AP_amount:IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5600','VERBRAUCH BRENN- UND TREIBSTOFFEN, ENERGIE UND WASSER','H','5','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5610','Energie, Wasser','A','560-569','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6000','LOHNAUFWAND','H','6','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6010','Lohn ','A','600-619','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6200','GEAHLTSAUFWAND','H','6','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6210','Gehalt ','A','620-639','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6500','GESETZLICHER SOZIALAUFWAND','H','6','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6510','Dienstgeberanteile','A','645-649','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6700','FREIWILLIGER SOZIALAUFWAND','H','6','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6710','freiwilliger Sozialaufwand','A','660-665','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7000','ABSCHREIBUNGEN','H','7','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7010','Abschreibungen','A','700','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7020','geringwertige Wirtschaftsgüter','A','701-708','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7100','SONSTIGE STEUERN','H','71','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7110','Ertragssteuern','A','710-719','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7120','Grundsteuern','A','710-719','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7200','INSTANDHALTUNGSAUFWAND','H','7','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7210','Reparatur und Instandhaltung','A','720-729','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7300','TRANSPORTKOSTEN','H','73','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7310','Frachtaufwand','A','730-731','E','AP_amount:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7400','MIET-,PACHT-,LEASING-, LIZENZAUFWAND','H','74','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7410','Miete','A','740-743','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7411','Lizenzen','A','748-749','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7600','VERWALTUNGSKOSTEN','H','76','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7610','Beratungsaufwand','A','775-776','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7611','Büromaterialien','A','760','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7615','Werbung und Marketing','A','765-768','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7620','uneinbringliche Forderungen','A','799','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7630','Telephonkosten','A','738-739','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7631','Internetkosten','A','738-739','E','AP_amount:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7632','Reise- und Repräsentationsaufwand','A','734-735','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7634','Registrierungsgebühren','A','748-749','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7700','VERSICHERUNGEN','H','77-78','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7710','Versicherung','A','770-774','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8000','FINANZERTRÄGE UND FINANZAUFWENDUNGEN','H','8','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8020','Bankzinsen und Gebühren','A','80-83','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8100','BETEILIGUNGSERTRÄGE','H','8','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8110','Erträge aus Beteiligungen','A','800-804','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('9000','KAPITAL','H','9','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('9010','Aktien, Geschäftsanteile','A','900-918','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('9020','nicht einbezahltes Kapital','A','919','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('9200','KAPITALRÜCKLAGEN','H','9','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('9210','freie Rücklage','A','920-929','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('9300','GEWINN','H','939','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('9310','Gewinnvortrag Vorjahr','A','980','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('9320','Jahresgewinn','A','985','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('9400','RÜCKSTELLUNGEN','H','3','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('9420','Abfertigungsrückstellung','A','300','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('9430','Urlaubsrückstellung','A','304-309','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('9700','EINLAGEN STILLER GESELLSCHAFTER','H','9','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('9800','EB,SB,G+V KONTEN','H','9','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4640','Devisengewinne','A','80-83','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8050','Devisenverluste','A','80-83','E','');
+--
+insert into tax (chart_id,rate) values ((select id from chart where accno = '3530'),0.00);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '3531'),0.10);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '3532'),0.20);
+--
+update defaults set inventory_accno_id = (select id from chart where accno = '1520'), income_accno_id = (select id from chart where accno = '4020'), expense_accno_id = (select id from chart where accno = '7610'), fxgain_accno_id = (select id from chart where accno = '4640'), fxloss_accno_id = (select id from chart where accno = '8050'), curr = 'EUR:USD', weightunit = 'kg';
+--
diff --git a/sql/Austria-gifi.sql b/sql/Austria-gifi.sql
new file mode 100755
index 00000000..43f213f2
--- /dev/null
+++ b/sql/Austria-gifi.sql
@@ -0,0 +1,334 @@
+-- Österreichischer Einheitskontenrahmen / Kontenplan (ÖSV Österreichischer Steuerverein)
+--
+INSERT INTO gifi (accno, description) VALUES ('0', 'Anlagevermögen und Aufwendungen für das Ingangsetzen und Erweitern eines Betriebes');
+--
+INSERT INTO gifi (accno, description) VALUES ('00', 'Aufwendungen für das Ingangsetzen und Erweitern eines Betriebes');
+INSERT INTO gifi (accno, description) VALUES ('001', 'Aufwendungen für das Ingangsetzen und Erweitern eines Betriebes');
+INSERT INTO gifi (accno, description) VALUES ('009', 'Kumulierte Abschreibungen');
+--
+INSERT INTO gifi (accno, description) VALUES ('01', 'Immaterielle Vermögensgegenstände');
+INSERT INTO gifi (accno, description) VALUES ('010', 'Konzessionen');
+INSERT INTO gifi (accno, description) VALUES ('011', 'Patentrechte und Lizenzen');
+INSERT INTO gifi (accno, description) VALUES ('012', 'Datenverarbeitungsprogramme');
+INSERT INTO gifi (accno, description) VALUES ('013', 'Marken, Warenzeichen und Musterschutzrechte, sonstige Urheberrechte');
+INSERT INTO gifi (accno, description) VALUES ('014', 'Pacht- und Mietrechte');
+INSERT INTO gifi (accno, description) VALUES ('015', 'Geschäfts(Firmen)wert');
+INSERT INTO gifi (accno, description) VALUES ('018', 'Geleistete Anzahlungen');
+INSERT INTO gifi (accno, description) VALUES ('019', 'Kumulierte Abschreibungen');
+--
+INSERT INTO gifi (accno, description) VALUES ('02-03', 'Grundstücke, grundstücksgleiche Rechte und Bauten, einschließlich der Bauten auf fremden Grund');
+INSERT INTO gifi (accno, description) VALUES ('020', 'Unbebaute Grundstücke');
+INSERT INTO gifi (accno, description) VALUES ('021', 'Bebaute Grundstücke (Grundwert)');
+INSERT INTO gifi (accno, description) VALUES ('022', 'Grundstücksgleiche Rechte');
+INSERT INTO gifi (accno, description) VALUES ('030', 'Betriebs- und Geschäftsgebäude auf eigenem Grund');
+INSERT INTO gifi (accno, description) VALUES ('031', 'Wohn- und Sozialgebäude auf eigenem Grund');
+INSERT INTO gifi (accno, description) VALUES ('032', 'Betriebs- und Geschäftsgebäude auf fremdem Grund');
+INSERT INTO gifi (accno, description) VALUES ('033', 'Wohn- und Sozialgebäude auf fremdem Grund');
+INSERT INTO gifi (accno, description) VALUES ('034', 'Grundstückseinrichtungen auf eigenem Grund');
+INSERT INTO gifi (accno, description) VALUES ('035', 'Grundstückseinrichtungen auf fremdem Grund');
+INSERT INTO gifi (accno, description) VALUES ('036', 'Bauliche Investitionen in fremden (gepachteten) Betriebs- und Geschäftsgebäuden');
+INSERT INTO gifi (accno, description) VALUES ('037', 'Bauliche Investitionen in fremden (gepachteten) Wohn- und Sozialgebäuden');
+INSERT INTO gifi (accno, description) VALUES ('039', 'Kumulierte Abschreibungen');
+--
+INSERT INTO gifi (accno, description) VALUES ('04-05', 'Technische Anlagen und Maschinen');
+INSERT INTO gifi (accno, description) VALUES ('040', 'Fertigungsmaschinen');
+INSERT INTO gifi (accno, description) VALUES ('041', 'Antriebsmaschinen');
+INSERT INTO gifi (accno, description) VALUES ('042', 'Energieversorgungsanlagen');
+INSERT INTO gifi (accno, description) VALUES ('043', 'Transportanlagen');
+INSERT INTO gifi (accno, description) VALUES ('044-049', 'Sonstige Maschinen und maschinelle Anlagen');
+INSERT INTO gifi (accno, description) VALUES ('050', 'Maschinenwerkzeuge');
+INSERT INTO gifi (accno, description) VALUES ('051', 'Allgemeine Werkzeuge und Handwerkzeuge');
+INSERT INTO gifi (accno, description) VALUES ('052', 'Vorrichtungen, Formen und Modelle');
+INSERT INTO gifi (accno, description) VALUES ('053', 'Andere Erzeugungshilfsmittel');
+INSERT INTO gifi (accno, description) VALUES ('054', 'Hebezeuge und Montageanlagen');
+INSERT INTO gifi (accno, description) VALUES ('055', 'Geringwertige Vermögensgegenstände, soweit im Erzeugungsprozeß verwendet');
+--
+INSERT INTO gifi (accno, description) VALUES ('06', 'Andere Anlagen, Betriebs- und Geschäftsausstattung');
+INSERT INTO gifi (accno, description) VALUES ('060', 'Beheizungs- und Beleuchtungsanlagen');
+INSERT INTO gifi (accno, description) VALUES ('061', 'Nachrichten- und Kontrollanlagen');
+INSERT INTO gifi (accno, description) VALUES ('062', 'Büromaschinen, EDV-Anlagen');
+INSERT INTO gifi (accno, description) VALUES ('063', 'PKW');
+INSERT INTO gifi (accno, description) VALUES ('064', 'LKW');
+INSERT INTO gifi (accno, description) VALUES ('065', 'Andere Beförderungsmittel');
+INSERT INTO gifi (accno, description) VALUES ('066', 'Andere Betriebs- und Geschäftsausstattung');
+INSERT INTO gifi (accno, description) VALUES ('067', 'Gebinde');
+INSERT INTO gifi (accno, description) VALUES ('068', 'Geringwertige Vermögensgegenstände, soweit nicht im Erzeugungsprozeß verwendet');
+INSERT INTO gifi (accno, description) VALUES ('069', 'Kumulierte Abschreibungen');
+--
+INSERT INTO gifi (accno, description) VALUES ('07', 'Geleistete Anzahlungen und Anlagen in Bau');
+INSERT INTO gifi (accno, description) VALUES ('070', 'Geleistete Anzahlungen');
+INSERT INTO gifi (accno, description) VALUES ('071', 'Anlagen in Bau');
+INSERT INTO gifi (accno, description) VALUES ('079', 'Kumulierte Abschreibungen');
+--
+INSERT INTO gifi (accno, description) VALUES ('08-09', 'Finanzanlagen');
+INSERT INTO gifi (accno, description) VALUES ('080', 'Anteile an verbundenen Unternehmen');
+INSERT INTO gifi (accno, description) VALUES ('081', 'Beteiligungen an Gemeinschaftsunternehmen');
+INSERT INTO gifi (accno, description) VALUES ('082', 'Beteiligungen an angeschlossenen (assoziierten) Unternehmen');
+INSERT INTO gifi (accno, description) VALUES ('083', 'Sonstige Beteiligungen');
+INSERT INTO gifi (accno, description) VALUES ('084', 'Ausleihungen an verbundene Unternehmen');
+INSERT INTO gifi (accno, description) VALUES ('085', 'Ausleihungen an Unternehmen, mit denen ein Beteiligungsverhältnis besteht');
+INSERT INTO gifi (accno, description) VALUES ('086', 'Sonstige Ausleihungen');
+INSERT INTO gifi (accno, description) VALUES ('087', 'Anteile an Kapitalgesellschaften ohne Beteiligungscharakter');
+INSERT INTO gifi (accno, description) VALUES ('088', 'Anteile an Personengesellschaften ohne Beteiligungscharakter');
+INSERT INTO gifi (accno, description) VALUES ('090', 'Genossenschaftsanteile ohne Beteiligungscharakter');
+INSERT INTO gifi (accno, description) VALUES ('091', 'Anteile an Investmentfonds');
+INSERT INTO gifi (accno, description) VALUES ('092-093', 'Festverzinsliche Wertpapiere des Anlagevermögens');
+INSERT INTO gifi (accno, description) VALUES ('094-097', 'Sonstige Finanzanlagen, Wertrechte');
+INSERT INTO gifi (accno, description) VALUES ('098', 'Geleistete Anzahlungen');
+INSERT INTO gifi (accno, description) VALUES ('099', 'Kumulierte Abschreibungen');
+--
+INSERT INTO gifi (accno, description) VALUES ('1', 'Vorräte');
+INSERT INTO gifi (accno, description) VALUES ('100-109', 'Bezugsverrechnung');
+INSERT INTO gifi (accno, description) VALUES ('110-119', 'Rohstoffe');
+INSERT INTO gifi (accno, description) VALUES ('120-129', 'Bezogene Teile');
+INSERT INTO gifi (accno, description) VALUES ('130-134', 'Hilfsstoffe');
+INSERT INTO gifi (accno, description) VALUES ('135-139', 'Betriebsstoffe');
+INSERT INTO gifi (accno, description) VALUES ('140-149', 'Unfertige Erzeugnisse');
+INSERT INTO gifi (accno, description) VALUES ('150-159', 'Fertige Erzeugnisse');
+INSERT INTO gifi (accno, description) VALUES ('160-169', 'Waren');
+INSERT INTO gifi (accno, description) VALUES ('170-179', 'Noch nicht abrechenbare Leistungen');
+INSERT INTO gifi (accno, description) VALUES ('180', 'Geleistete Anzahlungen');
+INSERT INTO gifi (accno, description) VALUES ('190-199', 'Wertberichtigungen');
+--
+INSERT INTO gifi (accno, description) VALUES ('2', 'Sonstiges Umlaufvermögen, Rechnungsabgrenzungsposten');
+INSERT INTO gifi (accno, description) VALUES ('20-21', 'Forderungen aus Lieferungen und Leistungen');
+INSERT INTO gifi (accno, description) VALUES ('200-207', 'Forderungen aus Lieferungen und Leistungen Inland');
+INSERT INTO gifi (accno, description) VALUES ('208', 'Einzelwertberichtigungen zu Forderungen aus Lieferungen und Leistungen Inland');
+INSERT INTO gifi (accno, description) VALUES ('209', 'Pauschalwertberichtigungen zu Forderungen aus Lieferungen und Leistungen Inland');
+INSERT INTO gifi (accno, description) VALUES ('210-212', 'Forderungen aus Lieferungen und Leistungen Währungsunion');
+INSERT INTO gifi (accno, description) VALUES ('213', 'Einzelwertberichtigungen zu Forderungen aus Lieferungen und Leistungen Währungsunion');
+INSERT INTO gifi (accno, description) VALUES ('214', 'Pauschalwertberichtigungen zu Forderungen aus Lieferungen und Leistungen Währungsunion');
+INSERT INTO gifi (accno, description) VALUES ('215-217', 'Forderungen aus Lieferungen und Leistungen sonstiges Ausland');
+INSERT INTO gifi (accno, description) VALUES ('218', 'Einzelwertberichtigungen zu Forderungen aus Lieferungen und Leistungen sonstiges Ausland');
+INSERT INTO gifi (accno, description) VALUES ('219', 'Pauschalwertberichtigungen zu Forderungen aus Lieferungen und Leistungen sonstiges Ausland');
+--
+INSERT INTO gifi (accno, description) VALUES ('22', 'Forderungen gegenüber verbundenen Unternehmen und Unternehmen, mit denen ein Beteiligungsverhältnis besteht');
+INSERT INTO gifi (accno, description) VALUES ('220-222', 'Forderungen gegenüber verbundenen Unternehmen');
+INSERT INTO gifi (accno, description) VALUES ('223', 'Einzelwertberichtigungen zu Forderungen gegenüber verbundenen Unternehmen');
+INSERT INTO gifi (accno, description) VALUES ('224', 'Pauschalwertberichtigungen zu Forderungen gegenüber verbundenen Unternehmen');
+INSERT INTO gifi (accno, description) VALUES ('225-227', 'Forderungen gegenüber Unternehmen, mit denen ein Beteiligungsverhältnis besteht');
+INSERT INTO gifi (accno, description) VALUES ('228', 'Einzelwertberichtigungen zu Forderungen gegenüber Unternehmen, mit denen ein Beteiligungsverhältnis besteht');
+INSERT INTO gifi (accno, description) VALUES ('229', 'Pauschalwertberichtigungen zu Forderungen gegenüber Unternehmen, mit denen ein Beteiligungsverhältnis besteht');
+--
+INSERT INTO gifi (accno, description) VALUES ('23-24', 'Sonstige Forderungen und Vermögensgegenstände');
+INSERT INTO gifi (accno, description) VALUES ('230-246', 'Sonstige Forderungen und Vermögensgegenstände');
+INSERT INTO gifi (accno, description) VALUES ('247', 'Eingeforderte, aber noch nicht eingezahlte Einlagen');
+INSERT INTO gifi (accno, description) VALUES ('248', 'Einzelwertberichtigungen zu sonstigen Forderungen und Vermögensgegenständen');
+INSERT INTO gifi (accno, description) VALUES ('249', 'Pauschalwertberichtigungen zu sonstigen Forderungen und Vermögensgegenständen');
+--
+INSERT INTO gifi (accno, description) VALUES ('25', 'Forderungen aus der Abgabenverrechnung');
+INSERT INTO gifi (accno, description) VALUES ('250-259', 'Forderungen aus der Abgabenverrechnung');
+--
+INSERT INTO gifi (accno, description) VALUES ('26', 'Wertpapiere und Anteile');
+INSERT INTO gifi (accno, description) VALUES ('260', 'Eigene Anteile');
+INSERT INTO gifi (accno, description) VALUES ('261', 'Anteile an verbundenen Unternehmen');
+INSERT INTO gifi (accno, description) VALUES ('262', 'Sonstige Anteile');
+INSERT INTO gifi (accno, description) VALUES ('263-267', 'Sonstige Wertpapiere');
+INSERT INTO gifi (accno, description) VALUES ('268', 'Besitzwechsel, soweit dem Unternehmen nicht die der Ausstellung zugrundeliegenden Forderungen zustehen');
+INSERT INTO gifi (accno, description) VALUES ('269', 'Wertberichtigungen');
+--
+INSERT INTO gifi (accno, description) VALUES ('27-28', 'Kassenbestand, Schecks, Guthaben bei Kreditinstituten');
+INSERT INTO gifi (accno, description) VALUES ('270-272', 'Kassenbestände in Inlandswährung');
+INSERT INTO gifi (accno, description) VALUES ('273', 'Postwertzeichen');
+INSERT INTO gifi (accno, description) VALUES ('274', 'Stempelmarken');
+INSERT INTO gifi (accno, description) VALUES ('275-277', 'Kassenbestände in Fremdwährung');
+INSERT INTO gifi (accno, description) VALUES ('278', 'Schecks in Inlandswährung');
+INSERT INTO gifi (accno, description) VALUES ('280-288', 'Guthaben bei Kreditinstituten');
+INSERT INTO gifi (accno, description) VALUES ('289', 'Wertberichtigungen');
+--
+INSERT INTO gifi (accno, description) VALUES ('29', 'Rechnungsabgrenzungsposten');
+INSERT INTO gifi (accno, description) VALUES ('290', 'Aktive Rechnungsabgrenzungsposten');
+INSERT INTO gifi (accno, description) VALUES ('295', 'Disagio');
+INSERT INTO gifi (accno, description) VALUES ('296', 'Unterschiedsbetrag zur gebotenen Pensionsrückstellung');
+INSERT INTO gifi (accno, description) VALUES ('297', 'Unterschiedsbetrag gem. Abschnitt XII Pensionskassengesetz');
+INSERT INTO gifi (accno, description) VALUES ('298', 'Steuerabgrenzung');
+--
+INSERT INTO gifi (accno, description) VALUES ('3', 'Rückstellungen, Verbindlichkeiten und Rechnungsabgrenzungsposten');
+--
+INSERT INTO gifi (accno, description) VALUES ('30', 'Rückstellungen');
+INSERT INTO gifi (accno, description) VALUES ('300', 'Rückstellungen für Abfertigungen');
+INSERT INTO gifi (accno, description) VALUES ('301', 'Rückstellungen für Pensionen');
+INSERT INTO gifi (accno, description) VALUES ('302-303', 'Steuerrückstellungen');
+INSERT INTO gifi (accno, description) VALUES ('304-309', 'Sonstige Rückstellungen');
+--
+INSERT INTO gifi (accno, description) VALUES ('31', 'Anleihen, Verbindlichkeiten gegenüber Kreditinstituten und Finanzinstituten');
+INSERT INTO gifi (accno, description) VALUES ('310', 'Anleihen (einschließlich konvertibler)');
+INSERT INTO gifi (accno, description) VALUES ('311-317', 'Verbindlichkeiten gegenüber Kreditinstituten');
+INSERT INTO gifi (accno, description) VALUES ('318-319', 'Verbindlichkeiten gegenüber Finanzinstituten');
+--
+INSERT INTO gifi (accno, description) VALUES ('32', 'Erhaltene Anzahlungen auf Bestellungen');
+INSERT INTO gifi (accno, description) VALUES ('320', 'Erhaltene Anzahlungen auf Bestellungen');
+INSERT INTO gifi (accno, description) VALUES ('321', 'Umsatzsteuer-Evidenzkonto für erhaltene Anzahlungen auf Bestellungen');
+--
+INSERT INTO gifi (accno, description) VALUES ('33', 'Verbindlichkeiten aus Lieferungen und Leistungen, Verbindlichkeiten aus der Annahme gezogener und der Ausstellung eigener Wechsel');
+INSERT INTO gifi (accno, description) VALUES ('330-335', 'Verbindlichkeiten aus Lieferungen und Leistungen Inland');
+INSERT INTO gifi (accno, description) VALUES ('336', 'Verbindlichkeiten aus Lieferungen und Leistungen Währungsunion');
+INSERT INTO gifi (accno, description) VALUES ('337', 'Verbindlichkeiten aus Lieferungen und Leistungen sonstiges Ausland');
+INSERT INTO gifi (accno, description) VALUES ('338-339', 'Verbindlichkeiten aus der Annahme gezogener Wechsel und der Ausstellung eigener Wechsel');
+--
+INSERT INTO gifi (accno, description) VALUES ('34', 'Verbindlichkeiten gegenüber verbundenen Unternehmen, gegenüber Unternehmen, mit denen ein Beteiligungsverhältnis besteht und gegenüber Gesellschaftern');
+INSERT INTO gifi (accno, description) VALUES ('340-347', 'Verbindlichkeiten gegenüber verbundenen Unternehmen, Verbindlichkeiten gegenüber Unternehmen, mit denen ein Beteiligungsverhältnis besteht');
+INSERT INTO gifi (accno, description) VALUES ('348', 'Verbindlichkeiten gegenüber Gesellschaftern');
+--
+INSERT INTO gifi (accno, description) VALUES ('35', 'Verbindlichkeiten aus Steuern');
+INSERT INTO gifi (accno, description) VALUES ('350-359', 'Verbindlichkeiten aus Steuern');
+--
+INSERT INTO gifi (accno, description) VALUES ('36', 'Verbindlichkeiten im Rahmen der sozialen Sicherheit');
+INSERT INTO gifi (accno, description) VALUES ('360-369', 'Verbindlichkeiten im Rahmen der sozialen Sicherheit');
+--
+INSERT INTO gifi (accno, description) VALUES ('37-38', 'Übrige sonstige Verbindlichkeiten');
+INSERT INTO gifi (accno, description) VALUES ('370-389', 'Übrige sonstige Verbindlichkeiten');
+--
+INSERT INTO gifi (accno, description) VALUES ('39', 'Rechnungsabgrenzungsposten');
+INSERT INTO gifi (accno, description) VALUES ('390-399', 'Passive Rechnungsabgrenzungsposten');
+--
+INSERT INTO gifi (accno, description) VALUES ('4', 'Betriebliche Erträge');
+--
+INSERT INTO gifi (accno, description) VALUES ('40-44', 'Brutto-Umsatzerlöse und Erlösschmälerungen');
+INSERT INTO gifi (accno, description) VALUES ('400-439', 'Brutto-Umsatzerlöse');
+INSERT INTO gifi (accno, description) VALUES ('440-449', 'Erlösschmälerungen');
+--
+INSERT INTO gifi (accno, description) VALUES ('45', 'Bestandsveränderungen und aktivierte Eigenleistungen');
+INSERT INTO gifi (accno, description) VALUES ('450-457', 'Veränderungen des Bestandes an fertigen und unfertigen Erzeugnissen sowie an noch nicht abrechenbaren Leistungen');
+INSERT INTO gifi (accno, description) VALUES ('458-459', 'andere aktivierte Eigenleistungen');
+--
+INSERT INTO gifi (accno, description) VALUES ('46-49', 'Sonstige betriebliche Erträge');
+INSERT INTO gifi (accno, description) VALUES ('460-462', 'Erlöse aus dem Abgang vom Anlagevermögen, ausgenommen Finanzanlagen');
+INSERT INTO gifi (accno, description) VALUES ('463-465', 'Erträge aus dem Abgang vom Anlagevermögen, ausgenommen Finanzanlagen');
+INSERT INTO gifi (accno, description) VALUES ('466-467', 'Erträge aus der Zuschreibung zum Anlagevermögen, ausgenommen Finanzanlagen');
+INSERT INTO gifi (accno, description) VALUES ('470-479', 'Erträge aus der Auflösung von Rückstellungen');
+INSERT INTO gifi (accno, description) VALUES ('480-499', 'Übrige betriebliche Erträge');
+--
+INSERT INTO gifi (accno, description) VALUES ('5', 'Materialaufwand und sonstige bezogene Herstellungsleistungen');
+INSERT INTO gifi (accno, description) VALUES ('500-509', 'Wareneinsatz');
+INSERT INTO gifi (accno, description) VALUES ('510-519', 'Verbrauch von Rohstoffen');
+INSERT INTO gifi (accno, description) VALUES ('520-529', 'Verbrauch von bezogenen Fertig- und Einzelteilen');
+INSERT INTO gifi (accno, description) VALUES ('530-539', 'Verbrauch von Hilfsstoffen');
+INSERT INTO gifi (accno, description) VALUES ('540-549', 'Verbrauch von Betriebsstoffen');
+INSERT INTO gifi (accno, description) VALUES ('550-559', 'Verbrauch von Werkzeugen und anderen Erzeugungshilfsmitteln');
+INSERT INTO gifi (accno, description) VALUES ('560-569', 'Verbrauch von Brenn- und Treibstoffen, Energie und Wasser');
+INSERT INTO gifi (accno, description) VALUES ('570-579', 'Sonstige bezogene Herstellungsleistungen');
+INSERT INTO gifi (accno, description) VALUES ('580', 'Skontoerträge auf Materialaufwand');
+INSERT INTO gifi (accno, description) VALUES ('581', 'Skontoerträge auf sonstige bezogene Herstellungsleistungen');
+INSERT INTO gifi (accno, description) VALUES ('590', 'Aufwandsstellenrechnung');
+--
+INSERT INTO gifi (accno, description) VALUES ('6', 'Personalaufwand');
+INSERT INTO gifi (accno, description) VALUES ('600-619', 'Löhne');
+INSERT INTO gifi (accno, description) VALUES ('620-639', 'Gehälter');
+INSERT INTO gifi (accno, description) VALUES ('640-644', 'Aufwendungen für Abfertigungen');
+INSERT INTO gifi (accno, description) VALUES ('645-649', 'Aufwendungen für Altersversorgung');
+INSERT INTO gifi (accno, description) VALUES ('650-655', 'Gesetzlicher Sozialaufwand Arbeiter');
+INSERT INTO gifi (accno, description) VALUES ('656-659', 'Gesetzlicher Sozialaufwand Angestellte');
+INSERT INTO gifi (accno, description) VALUES ('660-665', 'Lohnabhängige Abgaben und Pflichtbeiträge');
+INSERT INTO gifi (accno, description) VALUES ('666-669', 'Gehaltsabhängige Abgaben und Pflichtbeiträge');
+INSERT INTO gifi (accno, description) VALUES ('670-689', 'Sonstige Sozialaufwendungen');
+INSERT INTO gifi (accno, description) VALUES ('690', 'Aufwandsstellenrechnung');
+--
+INSERT INTO gifi (accno, description) VALUES ('7', 'Abschreibungen und sonstige betriebliche Aufwendunge');
+--
+INSERT INTO gifi (accno, description) VALUES ('70', 'Abschreibungen');
+INSERT INTO gifi (accno, description) VALUES ('700', 'Abschreibungen auf aktivierte Aufwendungen für das Ingangsetzen und Erweitern eines Betriebes');
+INSERT INTO gifi (accno, description) VALUES ('701-708', 'Abschreibungen auf das Anlagevermögen (ausgenommen Finanzanlagen)');
+INSERT INTO gifi (accno, description) VALUES ('709', 'Abschreibungen vom Umlaufvermögen, soweit diese die im Unternehmen üblichen Abschreibungen übersteigen');
+--
+INSERT INTO gifi (accno, description) VALUES ('71', 'Sonstige Steuern');
+INSERT INTO gifi (accno, description) VALUES ('710-719', 'Sonstige Steuern');
+--
+INSERT INTO gifi (accno, description) VALUES ('72-78', 'Übrige betriebliche Aufwendungen');
+--
+INSERT INTO gifi (accno, description) VALUES ('72', 'Instandhaltung und Reinigung durch Dritte, Entsorgung, Beleuchtung');
+INSERT INTO gifi (accno, description) VALUES ('720-729', 'Instandhaltung und Reinigung durch Dritte, Entsorgung, Beleuchtung');
+--
+INSERT INTO gifi (accno, description) VALUES ('73', 'Transport-, Reise- und Fahrtaufwand, Nachrichtenaufwand');
+INSERT INTO gifi (accno, description) VALUES ('730-731', 'Transporte durch Dritte');
+INSERT INTO gifi (accno, description) VALUES ('732-733', 'Kfz-Aufwand');
+INSERT INTO gifi (accno, description) VALUES ('734-735', 'Reise- und Fahrtaufwand');
+INSERT INTO gifi (accno, description) VALUES ('736-737', 'Tag- und Nächtigungsgelder');
+INSERT INTO gifi (accno, description) VALUES ('738-739', 'Nachrichtenaufwand');
+--
+INSERT INTO gifi (accno, description) VALUES ('74', 'Miet-, Pacht-, Leasing- und Lizenzaufwand');
+INSERT INTO gifi (accno, description) VALUES ('740-743', 'Miet- und Pachtaufwand');
+INSERT INTO gifi (accno, description) VALUES ('744-747', 'Leasingaufwand');
+INSERT INTO gifi (accno, description) VALUES ('748-749', 'Lizenzaufwand');
+--
+INSERT INTO gifi (accno, description) VALUES ('75', 'Aufwand für beigestelltes Personal, Provisionen an Dritte, Aufsichtsratsvergütungen');
+INSERT INTO gifi (accno, description) VALUES ('750-753', 'Aufwand für beigestelltes Personal');
+INSERT INTO gifi (accno, description) VALUES ('754-757', 'Provisionen an Dritte');
+INSERT INTO gifi (accno, description) VALUES ('758-759', 'Aufsichtsratsvergütungen');
+--
+INSERT INTO gifi (accno, description) VALUES ('76', 'Büro-, Werbe- und Repräsentationsaufwand');
+INSERT INTO gifi (accno, description) VALUES ('760', 'Büromaterial und Drucksorten');
+INSERT INTO gifi (accno, description) VALUES ('761-762', 'Druckerzeugnisse und Vervielfältigungen');
+INSERT INTO gifi (accno, description) VALUES ('763', 'Fachliteratur und Zeitungen');
+INSERT INTO gifi (accno, description) VALUES ('765-768', 'Werbung und Repräsentation');
+INSERT INTO gifi (accno, description) VALUES ('769', 'Spenden und Trinkgelder');
+--
+INSERT INTO gifi (accno, description) VALUES ('77-78', 'Versicherungen, Übrige Aufwendungen');
+INSERT INTO gifi (accno, description) VALUES ('770-774', 'Versicherungen');
+INSERT INTO gifi (accno, description) VALUES ('775-776', 'Beratungs- und Prüfungsaufwand');
+INSERT INTO gifi (accno, description) VALUES ('777', 'Aus- und Fortbildung');
+INSERT INTO gifi (accno, description) VALUES ('778', 'Mitgliedsbeiträge');
+INSERT INTO gifi (accno, description) VALUES ('779', 'Spesen des Geldverkehrs');
+INSERT INTO gifi (accno, description) VALUES ('780-781', 'Schadensfälle');
+INSERT INTO gifi (accno, description) VALUES ('782', 'Buchwert abgegangener Anlagen, ausgenommen Finanzanlagen');
+INSERT INTO gifi (accno, description) VALUES ('783', 'Verluste aus dem Abgang vom Anlagevermögen, ausgenommen Finanzanlagen');
+INSERT INTO gifi (accno, description) VALUES ('784-788', 'Verschiedene betriebliche Aufwendungen');
+INSERT INTO gifi (accno, description) VALUES ('789', 'Skontoerträge auf sonstige betriebliche Aufwendungen');
+--
+INSERT INTO gifi (accno, description) VALUES ('79', 'Konten für das Umsatzkostenverfahren');
+INSERT INTO gifi (accno, description) VALUES ('790', 'Aufwandsstellenrechnung');
+INSERT INTO gifi (accno, description) VALUES ('791-799', 'Aufwandsstellen im Rahmen des Umsatzkostenverfahrens');
+INSERT INTO gifi (accno, description) VALUES ('791-795', 'Aufwandsstellen der Herstellung');
+INSERT INTO gifi (accno, description) VALUES ('796', 'Herstellungskosten der zur Erzielung der Umsatzerlöse erbrachten Leistungen');
+INSERT INTO gifi (accno, description) VALUES ('797', 'Vertriebskosten');
+INSERT INTO gifi (accno, description) VALUES ('798', 'Verwaltungskosten');
+INSERT INTO gifi (accno, description) VALUES ('799', 'Sonstige betriebliche Aufwendungen');
+--
+INSERT INTO gifi (accno, description) VALUES ('8', 'Finanzerträge und Finanzaufwendungen, a.o. Erträge und a.o. Aufwendungen, Steuern vom Einkommen und vom Ertrag, Rücklagenbewegung');
+--
+INSERT INTO gifi (accno, description) VALUES ('80-83', 'Finanzerträge und Finanzaufwendungen');
+INSERT INTO gifi (accno, description) VALUES ('800-804', 'Erträge aus Beteiligungen');
+INSERT INTO gifi (accno, description) VALUES ('805-809', 'Erträge aus anderen Wertpapieren und Ausleihungen des Finanzanlagevermögens');
+INSERT INTO gifi (accno, description) VALUES ('810-813', 'Sonstige Zinsen und ähnliche Erträge');
+INSERT INTO gifi (accno, description) VALUES ('814', 'Erlöse aus dem Abgang von Beteiligungen');
+INSERT INTO gifi (accno, description) VALUES ('815', 'Erlöse aus dem Abgang von sonstigen Finanzanlagen');
+INSERT INTO gifi (accno, description) VALUES ('816', 'Erlöse aus dem Abgang von Wertpapieren des Umlaufvermögens');
+INSERT INTO gifi (accno, description) VALUES ('817', 'Buchwert abgegangener Beteiligungen');
+INSERT INTO gifi (accno, description) VALUES ('818', 'Buchwert abgegangener sonstiger Finanzanlagen');
+INSERT INTO gifi (accno, description) VALUES ('819', 'Buchwert abgegangener Wertpapiere des Umlaufvermögens');
+INSERT INTO gifi (accno, description) VALUES ('820', 'Erträge aus dem Abgang von und der Zuschreibung zu Finanzanlagen');
+INSERT INTO gifi (accno, description) VALUES ('821', 'Erträge aus dem Abgang von und der Zuschreibung zu Wertpapieren des Umlaufvermögens');
+INSERT INTO gifi (accno, description) VALUES ('822-825', 'Aufwendungen aus Beteiligungen');
+INSERT INTO gifi (accno, description) VALUES ('826-827', 'Aufwendungen aus sonstigen Finanzanlagen und aus Wertpapieren des Umlaufvermögens');
+INSERT INTO gifi (accno, description) VALUES ('828-834', 'Zinsen und ähnliche Aufwendungen');
+INSERT INTO gifi (accno, description) VALUES ('835', 'Nicht ausgenützte Lieferantenskonti');
+--
+INSERT INTO gifi (accno, description) VALUES ('84', 'Außerordentliche Erträge und außerordentliche Aufwendungen');
+INSERT INTO gifi (accno, description) VALUES ('840-844', 'Außerordentliche Erträge');
+INSERT INTO gifi (accno, description) VALUES ('845-849', 'Außerordentliche Aufwendungen');
+--
+INSERT INTO gifi (accno, description) VALUES ('85', 'Steuern vom Einkommen und vom Ertrag');
+INSERT INTO gifi (accno, description) VALUES ('850-859', 'Steuern vom Einkommen und vom Ertrag');
+--
+INSERT INTO gifi (accno, description) VALUES ('86-89', 'Rücklagenbewegung, Ergebnisüberrechnung');
+INSERT INTO gifi (accno, description) VALUES ('860-869', 'Auflösung unversteuerter Rücklagen');
+INSERT INTO gifi (accno, description) VALUES ('870-874', 'Auflösung von Kapitalrücklagen');
+INSERT INTO gifi (accno, description) VALUES ('875-879', 'Auflösung von Gewinnrücklagen');
+INSERT INTO gifi (accno, description) VALUES ('880-889', 'Zuweisung zu unversteuerten Rücklagen');
+INSERT INTO gifi (accno, description) VALUES ('890-895', 'Zuweisung zu Gewinnrücklagen');
+INSERT INTO gifi (accno, description) VALUES ('899', 'Gewinnabfuhr bzw. Verlustüberrechnung aus Ergebnisabführungsverträgen');
+--
+INSERT INTO gifi (accno, description) VALUES ('9', 'Eigenkapital, unversteuerte Rücklagen, Einlagen Stiller Gesellschafter, Abschluß- und Evidenzkonten');
+--
+INSERT INTO gifi (accno, description) VALUES ('900-918', 'Gezeichnetes bzw. gewidmetes Kapital');
+INSERT INTO gifi (accno, description) VALUES ('919', 'Nicht eingeforderte ausstehende Einlagen');
+INSERT INTO gifi (accno, description) VALUES ('920-929', 'Kapitalrücklagen');
+INSERT INTO gifi (accno, description) VALUES ('930-938', 'Gewinnrücklagen');
+INSERT INTO gifi (accno, description) VALUES ('939', 'Bilanzgewinn (-verlust)');
+INSERT INTO gifi (accno, description) VALUES ('940-959', 'Bewertungsreserven und sonstige unversteuerte Rücklagen');
+INSERT INTO gifi (accno, description) VALUES ('960-969', 'Privat- und Verrechnungskonten bei Einzelunternehmen und Personengesellschaften');
+INSERT INTO gifi (accno, description) VALUES ('970-979', 'Einlagen Stiller Gesellschafter');
+INSERT INTO gifi (accno, description) VALUES ('980', 'Eröffnungsbilanz');
+INSERT INTO gifi (accno, description) VALUES ('985', 'Schlußbilanz');
+INSERT INTO gifi (accno, description) VALUES ('989', 'Gewinn- und Verlustrechnung');
+INSERT INTO gifi (accno, description) VALUES ('990-999', 'Evidenzkonten');
diff --git a/sql/Bahasa-Indonesia_Default-chart.sql b/sql/Bahasa-Indonesia_Default-chart.sql
new file mode 100755
index 00000000..42842dba
--- /dev/null
+++ b/sql/Bahasa-Indonesia_Default-chart.sql
@@ -0,0 +1,73 @@
+-- Default chart of accounts
+-- sample only
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1000','AKTIVA LANCAR','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1060','Bank','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1065','Kas Kecil','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1200','Piutang','A','','A','AR');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1500','INVENTORY','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1520','Inventory / Umum','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1530','Inventory / Aftermarket Parts','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1800','AKTIVA TETAP','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1820','Perabot Kantor & Peralatan','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link,contra) values ('1825','Akumulasi Amort. Perabot & Peralatan','A','','A','','1');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1840','Kendaraan','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link,contra) values ('1845','Akumulasi Amort. Kendaraan','A','','A','','1');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2000','HUTANG LANCAR','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2100','Hutang Dagang','A','','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2160','Hutang Pajak','A','','L','');
+--insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2190','Federal Income Tax Payable','A','','L','');
+--insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2210','Workers Comp Payable','A','','L','');
+--insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2220','Vacation Pay Payable','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2250','Hutang Rencana Pensiun','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2260','Hutang Asuransi Karyawan','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2280','Hutang Pajak Gaji','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2310','PPn (10%)','A','','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+--insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2320','VAT (14%)','A','','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+--insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2330','VAT (30%)','A','','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2600','HUTANG JANGKA PANJANG','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2620','Hutang Bank','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2680','Hutang ke Pemegang Saham','A','','L','AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3300','MODAL','H','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3350','Modal Umum','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4000','PENDAPATAN PENJUALAN','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4020','Penjualan / General','A','','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4030','Penjualan / Aftermarket Parts','A','','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4300','PENDAPATAN KONSULTASI','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4320','Jasa Konsultasi','A','','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4400','PENDAPATAN LAIN','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4430','Jasa Pengiriman dan Pengepakan','A','','I','IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4440','Bunga','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4450','Keuntungan Selisih Kurs','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5000','BIAYA PENJUALAN','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5010','Pembelian','A','','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5020','COGS / General','A','','E','AP_amount:IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5030','COGS / Aftermarket Parts','A','','E','AP_amount:IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5100','Ongkos Kirim','A','','E','AP_amount:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5400','BIAYA GAJI','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5410','Biaya Gaji','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5420','Biaya Asuransi Karyawan','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5430','Biaya Rencana Pensiun','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5600','BIAYA UMUM DAN ADMINISTRASI','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5610','Akunting dan Legalitas','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5615','Iklan dan Promosi','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5650','Capital Cost Allowance Expense','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5660','Biaya Amortisasi','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5680','Biaya Pajak Pendapatan','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5685','Asuransi','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5690','Biaya Bank dan Bunga','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5700','Biaya Keperluan Kantor','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5760','Biaya Sewa','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5765','Reparasi & Maintenance','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5780','Telephone','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5785','Perjalanan dan Entertainment','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5790','Utilitas','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5795','Registrasi','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5800','Licensi','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5810','Rugi Selisih Kurs','A','','E','');
+--
+insert into tax (chart_id,rate) values ((select id from chart where accno = '2310'),0.1);
+--insert into tax (chart_id,rate) values ((select id from chart where accno = '2320'),0.14);
+--insert into tax (chart_id,rate) values ((select id from chart where accno = '2330'),0.3);
+--
+update defaults set inventory_accno_id = (select id from chart where accno = '1520'), income_accno_id = (select id from chart where accno = '4020'), expense_accno_id = (select id from chart where accno = '5010'), fxgain_accno_id = (select id from chart where accno = '4450'), fxloss_accno_id = (select id from chart where accno = '5810'), curr = 'IDR:USD:CAD:EUR', weightunit = 'kg';
+--
diff --git a/sql/Belgium-chart.sql b/sql/Belgium-chart.sql
new file mode 100755
index 00000000..00053114
--- /dev/null
+++ b/sql/Belgium-chart.sql
@@ -0,0 +1,434 @@
+-- selon PLAN COMPTABLE MINIMUM NORMALISE BELGE
+-- contribu. par Jens-Ingo Brodesser, jens-ingo@all2all.org
+-- verified May 19, 2006
+--
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('756000', 'Produits financiers divers', 'A', 'I', 'AR_paid:AP_paid', '75', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('555000', 'DEX02', 'A', 'A', 'AR_paid:AP_paid', '55', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('499200', 'Compte de repartition NDC - Verdelingsrekening CN', 'A', 'L', 'AR_paid:AP_paid', '', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('460', 'Acomptes reçus sur commandes', 'A', 'L', 'AR_paid', '46', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('4168', 'Rabais, ristournes, remises à obtenir et autres avoirs non encore reçus', 'A', 'A', 'AP_paid', '416', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('43', 'Dettes financières - Financiële schulden', 'H', 'L', '', '43', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('2400', 'Mobilier - Meubilair', 'A', 'A', '', '24', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('240190', 'Matériel bureau amort. anterieurs - Afschr. op bureaumaterieel vorig boekj.', 'A', 'A', '', '24', '1');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('221900', 'Constructions amort. anterieurs - Afschr. op gebouwen vorig boekj.', 'A', 'A', '', '22', '1');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('221910', 'Constructions amort. de l''exercice - Afschr. op gebouwen dit boekj.', 'A', 'A', '', '22', '1');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('75', 'Produits financiers - Financiële opbrengsten', 'H', 'I', '', '75', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('230900', 'Inst. techniques amort. anterieurs - Afschr. op installaties vorig boekj.', 'A', 'A', '', '23', '1');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('240090', 'Mobilier amort. anter. - Afschr. op meubilair vorig boekj.', 'A', 'A', '', '24', '1');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('240091', 'Mobilier amort. exercice - Afschr. op meubilair dit boekj.', 'A', 'A', '', '24', '1');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('240191', 'Matériel bureau amort. exercice - Afschr. op bureaumaterieel dit boekj.', 'A', 'A', '', '24', '1');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('240290', 'Materiel Informatique amort. anter. - Afschr. op hardware vorig boekj.', 'A', 'A', '', '24', '1');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('240291', 'Mat. informat. amort. exercice - Afschr. op hardware dit boekj.', 'A', 'A', '', '24', '1');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('241900', 'Voiture amort. anter. - Afschr. op wagen vorig boekj.', 'A', 'A', '', '24', '1');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('241910', 'Voiture amort. exercice - Afschr. op wagen dit boekj. ', 'A', 'A', '', '24', '1');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('260900', 'Amen. loc. loués amort. anter. - Inrichtingskost. vorig boekj.', 'A', 'A', '', '26', '1');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('230910', 'Inst. techniques amort. exercice - Afschr. op installaties dit boekj.', 'A', 'A', '', '23', '1');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('231900', 'Mach. et gros mat. amort. anterieurs - Afschr. op machines vorig boekj.', 'A', 'A', '', '23', '1');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('231910', 'Mach. et gros mat. amort. exercice - Afschr. op machines dit boekj.', 'A', 'A', '', '23', '1');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('237900', 'Outillage amort. anterieurs - Afschr. op uitrusting vorig boekj.', 'A', 'A', '', '23', '1');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('237910', 'Outillage amort. exercice - Afschr. op uitrusting dit boekj.', 'A', 'A', '', '23', '1');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('260910', 'Amen. loc. loués amort. exercice - Inrichtingskost. dit boekj.', 'A', 'A', '', '26', '1');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('451541', 'TVA DUE VENTES 21%', 'A', 'L', 'AR_tax:IC_taxpart:IC_taxservice', '451', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('612200', 'Carburants voitures', 'A', 'E', 'AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('630', 'Dotations amort., réduction valeur s/immo. - Afschr., waardeverm. op v. a., toevoeging', 'A', 'E', '', '63', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('613210', 'Honoraires avocats', 'A', 'E', 'AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('712', 'Des encours de fabrication - In de vooraad goederen in bewerking', 'A', 'I', 'IC_sale', '71', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('600', 'Achats matières premières - Aankopen van grondstoffen', 'A', 'E', 'IC_cogs', '60', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('614400', 'Entrée aux foires', 'A', 'E', 'AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('742', 'Plus-values créances com. - Meerwaarden realis. handelsvorderingen', 'A', 'I', '', '74', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('613304', 'Traiteurs-réception clientèle', 'A', 'E', 'AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('64', 'Autres charges exploitation - Andere bedrijfskosten', 'H', 'E', '', '64', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('76', 'Produits exceptionnels - Uitzonderlijke opbrengsten', 'H', 'I', '', '76', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('743000', 'Ventes diverses - Diverse bedrijfsopbrengsten', 'A', 'I', '', '74', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('760100', 'sur immobilisations corp. - op materiële vaste activa', 'A', 'I', '', '760', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('611150', 'Charges locatives voitures', 'A', 'E', 'AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('771200', 'Reprises de provisions fiscales - Terugn. fiscale voorz.', 'A', 'I', '', '771', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('794', 'Intervention associé perte - Tussenkomst vennoten verlies', 'A', 'I', '', '79', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('404', 'Produits à recevoir - Te innen opbrengsten', 'A', 'A', '', '40', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('500', 'Action propres - Eigen aandelen', 'A', 'A', '', '50', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('41', 'Autres créances - Overige vorderingen', 'H', 'A', '', '41', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('407', 'Créances douteuses - Dubieuze debiteuren', 'A', 'A', 'AR_paid', '40', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('442001', 'Fournisseurs essence', 'A', 'L', 'AP', '44', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('608', 'Remises ristournes rabais obtenus - Ontvangen kortingen ristorno''s en rabatten (-)', 'A', 'E', 'IC_cogs', '60', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('612140', 'Internet', 'A', 'E', 'AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('50', 'Actions propres - Eigen aandelen', 'H', 'A', '', '50', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('6', 'CLASSE 6 -- CHARGES - KOSTEN', 'H', 'E', '', '', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('611350', 'Entr. & Repar. Voitures & Veh. Mixtes', 'A', 'E', 'AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('655000', 'Ecarts de conversion de devises', 'A', 'E', 'AR_paid:IC_sale:IC_expense', '65', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('451560', 'TVA DUE CO-CONTRACTANT', 'A', 'L', '', '451', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('609000', 'de matières premières - van grondstofen', 'A', 'E', '', '60', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('411590', 'TVA ACHATS 6%', 'A', 'A', 'AP_tax:IC_taxpart:IC_taxservice', '411', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('411591', 'TVA ACHATS 21%', 'A', 'A', 'AP_tax:IC_taxpart:IC_taxservice', '411', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('411620', 'TVA à régulariser (case 62)', 'A', 'A', '', '411', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('411', 'TVA A RECUPERER - TERUG TE VORDEREN BTW', 'H', 'A', '', '', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('44', 'Dettes commerciales - Handelsschulden', 'H', 'L', '', '44', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('409', 'Réductions de valeur actées (-) - Geboekte waardevermindering', 'A', 'A', '', '40', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('451540', 'TVA DUE VENTES 6%', 'A', 'L', 'AR_tax:IC_taxpart:IC_taxservice', '451', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('640', 'Charges fiscales de l''exploitation - Bedrijfsbelastingen', 'A', 'E', '', '64', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('713', 'Des Produits finis - In de voorraad gereed product', 'A', 'I', 'IC_sale', '71', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('750', 'Produits immo. financières - Opbrengsten financiële vaste activa', 'A', 'I', '', '75', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('656500', 'Intérêts retards sociaux - Sociale achterst. interest', 'A', 'E', 'AP_amount:IC_expense', '65', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('755000', 'Ecarts de convers. devises - Resultats omrekening vreemde valuta', 'A', 'I', 'IC_sale:IC_income', '75', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('754000', 'Différence de change - Wisselresultaten', 'A', 'I', 'AR_amount:IC_income', '75', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('761', 'Reprises réduct. valeur immo. fin. - Terugneming waardeverm. fin. v. a.', 'A', 'I', '', '76', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('773', 'Impôts étrangers s/résultat - Buitenl. belasting op resultaat', 'A', 'I', '', '77', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('77', 'Régularisation d''impôts, reprises provisions fiscales - Regul. belastingen en terugneming fiscale voorz.', 'H', 'I', '', '77', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('7', 'CLASSE 7 -- PRODUITS - OPBRENGSTEN', 'H', 'I', '', '', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('411640', 'TVA à recupérer s/NDC émises (case 64)', 'A', 'A', '', '411', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('612300', 'Abonnements & Documentations', 'A', 'E', 'AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('410', 'Capital appelé, non versé - Opgevraagd, niet-gestort kapitaal', 'A', 'A', '', '41', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('417', 'Créances douteuses - Dubieuze debiteuren', 'A', 'A', '', '416', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('451', 'TVA A PAYER - TE BETALEN BTW', 'H', 'L', '', '', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('499000', 'Compte d''attente - Wachtrekening', 'A', 'L', '', '', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('455', 'Rémunerations - Bezoldigingen', 'A', 'L', '', '45', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('601', 'Achat des fournitures - Aankoop van hulpstoffen', 'A', 'E', 'IC_cogs', '60', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('49', 'Comptes de régularisation - Overlopende- en wachtrekeningen', 'H', 'L', '', '', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('613220', 'Honoraires notaires', 'A', 'E', 'AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('414100', 'Indeminités s/sinistres à recevoir - Te ontvang. schadevergoed.', 'A', 'A', '', '41', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('42', 'Dettes à plus d''un an écheant dans l''année - Schulden op meer dan één jaar die binnen het jaar verfallen', 'H', 'L', '', '42', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('613311', 'Deplacements étranger train, taxi, etc', 'A', 'E', 'AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('611151', 'Charges locatives camions/camionnettes', 'A', 'E', 'AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('432', 'Etabli. crédit, crédits d''acceptation - Acceptkrediten', 'A', 'L', '', '43', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('433', 'Etabl. crédit, dettes cpt. courant - Schulden rekening courant', 'A', 'L', '', '43', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('705100', 'DNS REGISTRY', 'A', 'I', 'AR_amount:IC_income', '70', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('609100', 'de fourniture - van hulpstoffen', 'A', 'E', '', '60', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('656100', 'Frais de banque', 'A', 'E', 'AP_amount:IC_expense', '65', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('620000', 'Administrateurs ou gérants - Bestuurders of zaakvoerders', 'A', 'E', '', '62', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('618', 'Divers', 'A', 'E', 'AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('65', 'Charges financières', 'H', 'E', '', '65', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('442004', 'VISA - décompte mensuel', 'A', 'L', 'AP_paid', '44', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('620100', 'Personnel de direction - Directiepersoneel', 'A', 'E', '', '62', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('617', 'Personnel intérimaire - Uitzendkrachten', 'A', 'E', '', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('440', 'Fournisseurs - Leveranciers', 'A', 'L', 'AP', '44', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('52', 'Titres à revenu fixe - Vastrentende Effecten', 'H', 'A', '', '52', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('4529', '453 - 459 Dettes salariales et sociales - Bezoldigingen en sociale schulden', 'H', 'L', '', '', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('620', 'Rémunerations et avant. sociaux directs - Bezolgingen en rechts. sociale voordelen', 'A', 'E', '', '62', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('602', 'Achats services, travaux, études - Aankopen diensten, werk, studies', 'A', 'E', 'IC_cogs', '60', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('612000', 'Eau', 'A', 'E', 'AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('611351', 'Pneus Voitures & Vehic. Mixtes', 'A', 'E', 'AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('641', 'Moins-values s/réalis. cour. d''immo. corp. - Minderwa. courante realis. vaste activa', 'A', 'E', '', '64', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('715', 'Des immeubles constr. dest. à la vente - In de voorr. onroe. goederen best. v. verkoop', 'A', 'I', 'IC_sale', '71', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('612400', 'Imprimés & fournitures de bureau', 'A', 'E', 'AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('414200', 'Subsides en capital à recevoir - Te ontv. kapitaalsubsidies', 'A', 'A', '', '41', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('66', 'Charges exceptionnelles', 'H', 'E', '', '66', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('613230', 'Honoraires huissiers de justice', 'A', 'E', 'AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('613313', 'Restaurants étranger', 'A', 'E', 'AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('74', 'Autres produits exploitation - Andere bedrijfsopbrengsten', 'H', 'I', '', '74', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('610', 'Loyers et charges locatives', 'A', 'E', 'AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('70', 'Chiffre d''affaires - Omzet', 'H', 'I', '', '', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('751', 'Produits actifs circulants - Opbrengsten uit vlottende activa', 'A', 'I', '', '75', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('705200', 'WEB HOSTING', 'A', 'I', 'AR_amount:IC_income', '70', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('442005', 'AMERICAN EXPRESS - décompte mensuel', 'A', 'L', 'AP_paid', '44', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('762', 'Reprises provisions risq. charg. except. - Terugn. voorz. uitz. risico en kosten', 'A', 'I', '', '76', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('780', 'Prélèvements s/impôts différés - Onttrekking a. uitgesteld. belast.', 'A', 'I', '', '78', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('78', 'Prélèvements réserves immunisées et impôts différés - Onttrek. belast.vrije reserves en de uitgestelde belastingen', 'H', 'I', '', '78', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('53', 'Dépôts à terme - Termijndeposito''s', 'H', 'A', '', '53', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('614100', 'Catalogues et imprimées', 'A', 'I', 'AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('451500', 'TVA DUE ACHATS INCO', 'A', 'L', '', '451', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('613110', 'Assurance vol', 'A', 'E', 'AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('451543', 'TVA due 2e trimestre', 'A', 'L', '', '451', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('609400', 'de marchandises - van handelsgoederen', 'A', 'E', 'AP_amount:IC_sale', '60', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('613305', 'Collations', 'A', 'E', 'AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('612010', 'Chauffage', 'A', 'E', 'AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('612410', 'Fournitures informatiques', 'A', 'E', 'AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('613250', 'Honoraires sécretariat social', 'A', 'E', 'AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('611362', 'Control technique voitures', 'A', 'E', 'AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('482200', 'ASSOCIES - MEMBRES', 'A', 'L', '', '48', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('612530', 'Petit outillage & petit matériel', 'A', 'E', 'AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('613400', 'Seminaires & Recyclages', 'A', 'E', 'AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('612540', 'Petit matériel informatique', 'A', 'E', 'AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('603', 'Sous-traitances générales - Algemene onderaanemingen', 'A', 'E', 'IC_cogs', '60', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('743200', 'COTISATION DE MEMBRE', 'A', 'I', 'AR_amount:IC_income', '74', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('601000', 'Emballages perdus', 'A', 'E', 'IC_cogs', '60', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('230010', 'Inst. techniques acquis. exercice - Installaties m.b.t. dit boekj.', 'A', 'A', 'AP_amount:IC_expense', '23', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('570000', 'CAISSE ESPECES - CONTANTEN', 'A', 'A', 'AR_paid:AP_paid', '57', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('451544', 'TVA due 3e trimestre', 'A', 'L', '', '451', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('411000', 'Cpt. curr. TVA à récuperer - Terug te vord. BTW: saldo BTW r/c', 'A', 'A', '', '411', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('611152', 'Locations machines et outils', 'A', 'E', 'AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('56', 'Office des chèques postaux - Postchèque en girodienst', 'H', 'A', '', '56', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('411593', 'TVA RECUP. 1ER TRIMESTRE TOTAL (case 59)', 'A', 'A', '', '411', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('51', 'Actions et parts - Aandelen', 'H', 'A', '', '51', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('510010', 'Montants non-appelés (-) - Niet opgevraagde bedragen aan. (-)', 'A', 'A', '', '51', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('609500', 'd''immeubles achétés destinés à vente - van gek. onroer. goederen best. v. verkoop', 'A', 'E', '', '60', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('58', 'Virements interns - Interne overboekingen', 'H', 'A', '', '58', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('416', 'Créances diverses - Diverse vorderingen ', 'H', 'A', '', '416', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('416200', 'Cpt. courant associés - Rekening-courant vennoten', 'A', 'A', '', '416', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('418', 'Cautionnements versés en numéraire - Borgtochten betaald in contanten', 'A', 'A', '', '416', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('67', 'Impôt sur le résultat', 'H', 'E', '', '67', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('654', 'Différence de change', 'A', 'E', 'AP_amount', '65', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('642', 'Moins-values s/réalis. créances com. - Minderwa. realis. handelsvorderingen', 'A', 'E', '', '64', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('717', 'Des commandes en cours exécution - In de bestelling in uitvoering', 'A', 'I', 'IC_sale', '71', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('752', 'Plus-values réalis. d''actifs circulants - Meerwaar. realis. v. vlottende activa', 'A', 'I', '', '75', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('763', 'Plus-values s/réalis. actifs immo. - Meerwaar. realis. vaste a.', 'A', 'I', '', '76', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('789', 'Prélèvements s/réserves immunisées - Onttrekking a. belast.vrije reserves', 'A', 'I', '', '78', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('79', 'Affectations et prélèvements - Resultaatverwerking', 'H', 'I', '', '79', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('412', 'Impôts, précomptes à récupérer - Terug te vorderen belast. en voorheffingen', 'A', 'A', '', '41', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('120', 'Plus-values de réévaluation sur immo. incorp. - Herwaarderingsmeerwaarde', 'A', 'L', '', '12', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('121', 'Plus-values de réévaluation sur immo. corp. - Herwaarderingsmeerwaarde', 'A', 'L', '', '12', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('122', 'Plus-values de réévaluation sur immo. financiers - Herwaarderingsmeerwaarde', 'A', 'L', '', '12', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('123', 'Plus-values de réévaluation sur stocks - Herwaarderingsmeerwaarde', 'A', 'L', '', '12', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('124', 'Reprises de réduction de valeur sur placements trésorerie - Herwaarderingsmeerwaarde', 'A', 'L', '', '12', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('12', 'Plus-values de réévaluation - Herwaarderingsmeerwaarde', 'H', 'L', '', '12', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('110', 'Primes d''émission - Uitgiftepremies', 'A', 'L', '', '11', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('11', 'Primes d''émission - Uitgiftepremies', 'H', 'L', '', '11', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('643', '643-648 Charges d''exploitation diverses - Diverse berijfskosten', 'H', 'E', '', '', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('612100', 'Telephone', 'A', 'E', 'AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('10', 'Capital - Kapitaal', 'H', 'L', '', '10', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('1', 'CLASSE 1 -- CAPITAL PROPRE, ... - EIGEN VERMOGEN, ...', 'H', 'L', '', '', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('60', 'Approv. et marchandises', 'H', 'E', '', '60', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('717000', 'Valeur d''acquisition - Aanschaffingswaarde', 'A', 'I', '', '717', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('68', 'Transferts comptes immunisées et impôts différés', 'H', 'E', '', '68', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('130', 'Réserve légale - Wettelijke reserve', 'A', 'L', '', '13', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('131100', 'Autres réserves indisponibles - Andere onbeschikbare reserves', 'A', 'L', '', '13', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('132', 'Réserves immunisées - Belastingvrije reserves', 'A', 'L', '', '13', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('131000', 'Réserves pour actions propres - Reserve voor eigen aandelen', 'A', 'L', '', '13', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('133', 'Réserves disponibles - Beschikbare reserves', 'A', 'L', '', '13', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('101', 'Capital non appelé (-) - Niet opgevraagd kapitaal (-)', 'A', 'L', '', '10', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('14', 'Bénéfice/perte reporté(e) - Overgedragen winst/verlies', 'H', 'L', '', '14', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('100', 'Capital souscrit - Geplaatst kapitaal', 'A', 'L', '', '10', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('601010', 'Emballages recuperables', 'A', 'E', 'IC_cogs', '60', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('140', 'Bénéfice/perte reporté(e) - Overgedragen winst/verlies', 'A', 'Q', '', '14', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('15', 'Subsides en capital - Kapitaalsubsidies', 'H', 'L', '', '15', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('419', 'Réductions de valeur actées (-) - Geboekte waardevermindering (-)', 'A', 'A', '', '416', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('612450', 'Photocopies-Photographies', 'A', 'E', 'AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('131', 'Réserves indisponibles - Onbeschikbare reserves', 'A', 'L', '', '13', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('16', 'Provisions et impôts différés - Voorz. en uitgestelde belastingen', 'H', 'L', '', '16', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('160', 'Provisions pensions et obligations - Voorz. pensioenen en soortg. verplichtingen', 'A', 'L', '', '16', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('161', 'Provisions charges fiscales - Voorz. belastingen', 'A', 'L', '', '16', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('162', 'Provisions gros entretiens et réparations - Voorz. grote herstel/onderh.', 'A', 'L', '', '16', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('163', 'Provisions autres risques-charges - Voorzieningen voor Lijfrente', 'A', 'L', '', '16', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('753', 'Subsides en capital et intérêts - Kapitaal- en interestsubsidies', 'A', 'I', '', '75', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('705000', 'Prestations de services - Verkopen en dienstprestaties', 'A', 'I', '', '70', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('764', '764-769 Autres produits execptionnels - Andere uitz. opbrengsten', 'H', 'I', '', '', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('790', 'Bénéfice reporté exercice précéd. - Overgedragen winst vorige boekj.', 'A', 'I', '', '79', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('168200', 'Impôts diff. s/+value immo. corp. - Uitg. belast./meerwa./mat. v.a.', 'A', 'L', '', '16', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('604', 'Achats marchandises - Aankopen van handelsgoederen', 'A', 'E', 'IC_cogs', '60', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('168000', 'Impôts diff. s/subsides en capital - Uitgest. belast./Kapitaalsubsidie', 'A', 'L', '', '16', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('613265', 'Honoraires d''autres', 'A', 'E', 'AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('620800', 'Assurance revenus garantis', 'A', 'E', 'AP_amount:IC_expense', '62', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('168800', 'Impôts différés étrangers - Uitg. belast. buitenland', 'A', 'L', '', '16', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('17', 'Dettes à plus d''un an - Schulden op meer dan een jaar', 'H', 'L', '', '17', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('150', 'Montants obtenus - Kapitaalsubsidies', 'A', 'L', '', '15', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('172000', 'Dettes location fin. et assimilées - Leasingschuld. van vaste activa', 'A', 'L', '', '17', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('231010', 'Mach. et gros mat. acquis. exercice - Machines m.b.t. dit boekj.', 'A', 'A', 'AP_amount:IC_expense', '23', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('451610', 'TVA à régulariser (case 61)', 'A', 'L', '', '45', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('456', 'Pécules de vacances - Vakantiegeld', 'A', 'L', '', '45', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('176', 'Acomptes reçus sur commandes', 'A', 'L', '', '17', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('47', 'Dettes affectation résultat - Schulden besteming resultaat', 'H', 'L', '', '47', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('620200', 'Employés - Bedienden', 'A', 'E', '', '62', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('178', 'Cautionnements reçu en numéraire - Borgtocht. ontvang. in contanten', 'A', 'L', '', '17', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('179', 'Dettes diverses - Overige schulden', 'A', 'L', '', '17', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('174', 'Autres emprunts - Overige schulden', 'A', 'L', '', '17', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('2', 'CLASSE 2 -- FRAIS D''ETABLISSEMENT, ACTIFS IMMOBILISES, ... - OPRICHTINGSKOSTEN, VASTE ACTIVA, ...', 'H', 'A', '', '', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('20', 'Frais d''établissement - Oprichtingskosten', 'H', 'A', '', '20', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('200', 'Frais de constitution - Kosten van oprichting', 'A', 'A', '', '20', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('200000', 'Fr. const. acquis. anterieurs - Kost. opricht./kapitaalverhoging', 'A', 'A', '', '20', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('605', 'Achats d''immeubles destinés vente - Aankopen onroer. goederen bestemd v. verkoop', 'A', 'E', 'IC_cogs', '60', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('61', 'Services et biens divers', 'H', 'E', '', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('69', 'Affectations et prélèvements', 'H', 'E', '', '69', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('200900', 'Fr. const. amort. anterieur - Afschr. kost. opricht./kap.verh. vorig', 'A', 'A', '', '20', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('200910', 'Fr. const. amort. de l''exercice - Afschr. kost. opricht./kap.verh. dit', 'A', 'A', '', '20', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('612020', 'Electricité', 'A', 'E', 'AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('202', 'Autres frais d''établissement - Overige oprichtingskosten', 'A', 'A', '', '20', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('204', 'Frais de restructuration - Herstructureringskosten', 'A', 'A', '', '20', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('201', 'Frais d''émission d''emprunts - Kosten bij uitgifte van leningen', 'A', 'A', '', '20', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('21', 'Immobilisations incorporelles - Immateriele vaste activa', 'H', 'A', '', '21', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('211', 'Concessions, brevets, licences, ... - Consessies, octrooien, licenties, ...', 'A', 'A', '', '21', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('210', 'Frais de recherches et developpement - Kosten van onderzoek en ontwikkeling', 'A', 'A', '', '21', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('212', 'Goodwill', 'A', 'A', '', '21', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('213', 'Acomptes versés - Vooruitbetalingen', 'A', 'A', '', '21', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('214', 'Surprix afférents acquisition d''une participation', 'A', 'A', '', '21', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('22', 'Terrains et constructions - Terreinen en gebouwen', 'H', 'A', '', '22', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('743', '743-749 Produits d''exploitation divers - Diverse bedrijfsopbrengsten', 'H', 'I', '', '', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('580000', 'TRANSFERTS INTERNES DES FONDS - TRANSFERTEN', 'A', 'A', 'AR_paid:AP_paid', '58', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('221', 'Constructions - Gebouwen', 'A', 'A', '', '22', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('717100', 'Bénéfice pris en compte - Toegerekende winst', 'A', 'I', '', '717', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('756', '756-759 Produits financiers divers - Diverse financiële opbrengsten', 'H', 'I', '', '', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('222', 'Terrains bâtis - Bebouwde terreinen', 'A', 'A', '', '22', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('13', 'Réserves - Reserves', 'H', 'L', '', '13', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('223', 'Autres droits réels sur immeubles - Overige zakelijke rechten op onroe.', 'A', 'A', '', '22', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('221000', 'Constructions acquis. anterieurs - Geb. aanschaffingsprijs vorig. boekj.', 'A', 'A', '', '22', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('411594', 'TVA RECUP. 2E TRIMESTRE TOTAL', 'A', 'A', '', '411', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('771', 'Impôts belges sur le résultat - Belgische belasting op het resultaat', 'A', 'I', '', '77', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('23', 'Installations, machines et outillage - Installaties, machines en uitrusting', 'H', 'A', '', '23', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('230', 'Installations - Installaties', 'A', 'A', '', '23', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('230000', 'Inst. techniques acquis. anterieurs - Installaties m.b.t. vorig boekj.', 'A', 'A', '', '23', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('620300', 'Ouvriers - Arbeiders', 'A', 'E', '', '62', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('231', 'Machines', 'A', 'A', '', '23', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('791', 'Prélèvement s/capital et primes émissions - Onttrek. kapitaal e. uitgiftepre.', 'A', 'I', '', '79', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('220', 'Terrains - Terreinen', 'A', 'A', '', '22', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('237', 'Outillage - Uitrusting', 'A', 'A', '', '23', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('231000', 'Mach. et gros mat. acquis anterieurs - Machines m.b.t. vorig boekj.', 'A', 'A', '', '23', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('613100', 'Assurance incendie', 'A', 'E', 'AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('613275', 'Publications légales', 'A', 'E', 'AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('237000', 'Outillage acquis. anterieurs - Uitrusting m.b.t. vorig boekj.', 'A', 'A', '', '23', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('24', 'Mobilier et matériel roulant - Meubilair en rollend materieel', 'H', 'A', '', '24', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('2401', 'Matériel de bureau - Bureaumaterieel', 'A', 'A', '', '24', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('2402', 'Matériel informatique - Hardware', 'A', 'A', '', '24', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('241', 'Voiture - Rollend materieel (wagen)', 'A', 'A', '', '24', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('62', 'Rémunérations, charges sociales et pensions', 'H', 'E', '', '62', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('25', 'Immobilis. en loc-financement - Vaste activa in leasing of op grond', 'H', 'A', '', '25', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('612120', 'GSM', 'A', 'E', 'AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('242', 'Camions - Rollend materieel (vrachtwagen)', 'A', 'A', '', '24', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('250', 'Terreins loc-fin - Terreinen in leasing', 'A', 'A', '', '25', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('251', 'Install., machines loc-fin - Installaties, machines in leasing', 'A', 'A', '', '25', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('309', 'Réduction val. act. mat. premières (-) - Geboekte waardev. grondst. (-)', 'A', 'A', '', '30', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('253', 'Matériel en loc-fin - Uitrusting in leasing', 'A', 'A', '', '25', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('254', 'Mat. inform. en loc-fin- Hardware in leasing', 'A', 'A', '', '25', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('255', 'Mat. roulant en loc-fin - Rollend materieel leasing', 'A', 'A', '', '25', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('26', 'Autres immobilisations corp. - Andere materiele vaste activa', 'H', 'A', '', '26', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('260', 'Amenagement locaux loués - Inrichtingskost. gehuurde gebouw', 'A', 'A', '', '26', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('613130', 'Assurance crédit', 'A', 'E', 'AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('300', 'Approv. matière première - Grondstoffen', 'A', 'A', 'IC', '30', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('411595', 'TVA RECUP. 3E TRIMESTRE TOTAL', 'A', 'A', '', '411', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('48', 'Dettes diverses - Diverse schulden', 'H', 'L', '', '48', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('270', 'Immo. corp. en cours et acomptes versés - V. activa in aanbouw en vooruit', 'A', 'A', '', '27', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('613300', 'Deplacements Belg. train, taxi, etc', 'A', 'E', 'AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('27', 'Immo. corp. en cours et acomptes versés - V. activa in aanbouw en vooruit ', 'H', 'A', '', '27', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('252', 'Mobilier en loc-fin - Meubilair in leasing', 'A', 'A', '', '25', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('168100', 'Impôts diff. s/+value immo. incorp. - Uitg. belast./meerwa./immat. v.a.', 'A', 'L', '', '16', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('168700', 'Impôts diff. s/+value fonds publ. belges - Uitg. bel./meerwa./belg. effecten', 'A', 'L', '', '16', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('28', 'Immobilisations financiers - Financiele vaste activa', 'H', 'A', '', '28', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('620400', 'Autres membres du personnel - Andere personeelsleden', 'A', 'E', '', '62', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('649', 'Ch. exploit. portées actif c. frais de restruct. (-) - Als herstruct.kost. geactiv. bedrijfsk. (-)', 'A', 'E', '', '64', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('71', 'Variation stocks et commandes en cours - Wijzigingen vorraden en in de bestellingen in uitvoering', 'H', 'I', '', '71', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('740', 'Subsides et montants compensat. - Subsidies en compens. bedragen', 'A', 'I', '', '74', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('760', 'Reprises amort. et réduct. valeur - Terugneming afschr. en waardeverm.', 'A', 'E', '', '76', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('280', 'Participations entreprises liées - Aanschaffingsw. deeln. verb. ond.', 'A', 'A', '', '28', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('771000', 'Régularisations impôts dus versés - Regularisiering versch. of betaal. belast.', 'A', 'I', '', '771', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('281', 'Créances s/entreprises liées - Vorderingen op rekening', 'A', 'A', '', '28', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('283', 'Créances s/entr. avec lien de part.', 'A', 'A', '', '28', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('284', 'Autres actions et parts - Aanschaffingsw. and. aand.', 'A', 'A', '', '28', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('285', 'Autres créances - Overige vorderingen', 'A', 'A', '', '28', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('288', 'Cautions versés en numeraire - Borgtocht. betaald in contanten', 'A', 'A', '', '28', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('792', 'Prélèvements réserves - Onttrekking reserves', 'A', 'I', '', '79', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('173100', 'Promesses banque - Promessen bank', 'A', 'L', '', '17', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('290', 'Créances commerciales - Commerciele vorderingen', 'A', 'A', '', '29', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('441', 'Effets à payer - Te betalen wissels', 'A', 'L', '', '44', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('430', 'Emprunts en compte à terme fixe - Leningen op rekeningen vaste termijn', 'A', 'L', '', '43', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('451630', 'TVA sur NDC reçues (case 63)', 'A', 'L', '', '45', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('29', 'Créances à plus d''un an - Vorderingen op meer dan een jaar', 'H', 'A', '', '29', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('45', 'Dettes fiscales, salariales, sociales - Schulden m. betrekking tot belastingen, bezoldingen en sociale lasten', 'H', 'L', '', '45', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('452', 'Impôts et taxes à payer', 'A', 'L', '', '45', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('290000', 'Clients > 1 an - Handelsdebiteuren > 1 jaar', 'A', 'A', '', '29', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('290100', 'Effects à recevoir >1 an - Te innen wissels > 1 jaar', 'A', 'A', '', '29', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('290600', 'Acptes versés s/immo. financ. > 1 an - Vooruitbetalingen > 1 jaar', 'A', 'A', '', '29', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('290700', 'Créances douteuses - Dubieuze debiteuren >1 jaar', 'A', 'A', '', '29', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('290900', 'Réduction valeur actée cr.dout. - Geboekte waardevermindering (-)', 'A', 'A', '', '29', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('291', 'Autres Créances > 1 an - Over. vorderingen op rekening > 1 j.', 'A', 'A', '', '29', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('30', 'Approv. matières premières - Grondstoffen', 'H', 'A', '', '30', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('3', 'CLASSE 3 -- STOCK ET COMMANDES EN COURS - GRONDSTOFFEN', 'H', 'A', '', '', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('453', 'Précompte retenus - Ingehouden voorheffingen', 'A', 'L', '', '45', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('459', 'Autres dettes sociales - Andere sociale schulden', 'A', 'L', '', '45', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('31', 'Approv. et fournitures - Hulpstoffen', 'H', 'A', '', '31', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('431', 'Etabli. crédit, promesses - Kreditinstellingen, promessen', 'A', 'L', '', '43', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('400', 'Clients - Handelsdebiteuren', 'A', 'A', 'AR', '40', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('319', 'Réduction valeur actées (-) - Geboekte waardev. hulpstoffen (-)', 'A', 'A', '', '31', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('32', 'Encours de fabrication - Goederen in bewerking', 'H', 'A', '', '32', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('708', 'Remis. rabais ristourn. accordés (-) - Toegek. korting. ristorno''s rabat. (-) ', 'A', 'I', 'AR_amount:IC_expense', '70', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('741', 'Plus-values réalis. cour. immo. corp. - Meerwaar. cour. realis. materiële v.a.', 'A', 'I', '', '74', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('33', 'Produits finis - Gereed Product', 'H', 'A', '', '33', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('72', 'Production immobilisée - Geproduceerde vaste activa', 'H', 'I', '', '72', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('656600', 'Intérêts rétards com. - Com. achterst. interest', 'A', 'E', 'AP_amount:IC_expense', '65', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('34', 'Marchandises - Handelsgoederen', 'H', 'A', '', '34', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('221010', 'Construction acquis. de l''exercice - Geb. aanschaffingsprijs dit boekj.', 'A', 'A', 'AP_amount:IC_expense', '22', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('760000', 'sur immobilisations incorp. - op immateriële vaste activa', 'A', 'I', '', '760', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('35', 'Immeubles destinés vente - Onroerende goederen bestemd. v. verk.', 'H', 'A', '', '35', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('771100', 'Régul. d''impôts estimés - Regul. geraamde belasting', 'A', 'I', '', '771', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('793', 'Perte à reporter - Over te dragen verlies', 'A', 'I', '', '79', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('4', 'CLASSE 4 -- CREANCES ET DETTES A UN AN AU PLUS - VORDERINGEN EN SCHULDEN OP TEN HOOGTE EEN JAAR', 'H', 'A', '', '', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('552000', 'KBC56', 'A', 'A', 'AR_paid:AP_paid', '55', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('411596', 'TVA RECUP. 4E TRIMESTRE TOTAL', 'A', 'A', '', '411', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('444', 'Factures à recevoir - Te ontvangen facturen', 'A', 'L', 'AP_paid', '44', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('40', 'Créances commerciales - Handelsvorderingen', 'H', 'A', '', '', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('329', 'Réduction valuer actée (-) - Geboekte waardeverminderingen (-) ', 'A', 'A', '', '32', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('339', 'Réductions de valeur actées (-) - Geboekte waardeverminderingen (-) ', 'A', 'A', '', '33', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('340', 'Marchandises - Handelsgoederen', 'A', 'A', 'IC', '34', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('451000', 'COMPTE COURANT TVA DUE', 'A', 'L', '', '451', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('349', 'Réduct. valeur actées (-) - Geboekte waardeverminderingen (-) ', 'A', 'A', '', '34', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('359', 'Réductions valeur actées (-) - Geboekte waardeverminderingen (-) ', 'A', 'A', '', '35', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('613150', 'Assurance tous risques matériel élec.', 'A', 'E', 'AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('63', 'Amortissements, réd. val., provi. risques et charges - Afschrijvingen waardevermin. en voorzieningen v. risico''s kost.', 'H', 'E', '', '63', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('510000', 'Titres cotés - Aandelen op beurs', 'A', 'A', '', '51', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('5', 'CLASSE 5 - PLACEMENTS DE TRESORIERIE - LIQUIDE MIDDELEN / GELDBELEGGINGEN', 'H', 'L', '', '', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('54', 'Valeurs échues à encaissement - Te incasseren verfallen waarden', 'H', 'A', '', '54', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('55', 'Banque - Rekening-courant', 'H', 'A', '', '55', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('613303', 'Restaurants', 'A', 'E', 'AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('310', 'Valeur d''acquisition - Aanschaffingswaarde hulpstoffen', 'A', 'A', 'IC', '31', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('320', 'Valeur d''acquisition - Aanschaffingsw. goed. bewerking', 'A', 'A', 'IC', '32', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('330', 'Produits finis - Gereed product', 'A', 'A', 'IC', '33', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('350', 'Immeubles - Aanschaffingsw. onr. goed. verkoop', 'A', 'A', 'IC', '35', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('609', 'Variation de stock - Voorraadwijzigingen', 'A', 'E', '', '60', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('621', 'Cotisation patronales d''assur. sociales - Werkgeversbijdragen soc. verzekeringen', 'A', 'E', '', '62', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('451640', 'TVA à recupérer s/NDC émises', 'A', 'L', '', '45', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('454', 'O.N.S.S. - R.S.Z.', 'A', 'L', '', '45', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('640700', 'TVA non-deductible', 'A', 'E', 'AP_tax:IC_taxpart:IC_taxservice', '64', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('401', 'Effets à recevoir - Te innen wissels', 'A', 'A', '', '40', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('414', 'Produits à recevoir - Te innen opbrengsten', 'A', 'A', '', '41', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('450', 'Dettes fiscales estimées - Geramd bedrag der belastingschulden', 'A', 'L', '', '45', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('46', 'Acomptes reçus sur commandes', 'H', 'L', '', '46', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('499100', 'Compte de repartition - Verdelingsrekening', 'A', 'L', 'AR_paid:AP_paid', '', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('553000', 'KBC40', 'A', 'A', 'AR_paid:AP_paid', '55', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('613180', 'Assurance RC professionnelle', 'A', 'E', 'AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('452500', 'Précompte immobilier - Onroerende voorhoeffing', 'A', 'L', '', '45', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('554000', 'KBC83', 'A', 'A', 'AR_paid:AP_paid', '55', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('612150', 'Frais postaux', 'A', 'E', 'AP_amount:IC_cogs:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('451545', 'TVA due 4e trimestre', 'A', 'L', '', '451', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('200010', 'Fr. const. acquis. de l''exercice - Kost. opricht./kap.verh. dit boekjaar', 'A', 'A', 'AP_amount', '20', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('451542', 'TVA due 1er trimestre (case 54)', 'A', 'L', '', '451', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('451570', 'TVA DUE SUR IMPORTATIONS', 'A', 'L', '', '451', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('540', 'Chèques à encaisser - Te incasseren chèques', 'A', 'A', 'AR_paid:AP_paid', '54', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('611340', 'Entretiens & réparations locaux', 'A', 'E', 'AR_amount:AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('665000', 'Pertes et charges diverses', 'A', 'E', 'AR_paid:AP_amount', '66', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('665200', 'Perte définitive créance douteuse', 'A', 'E', 'AP_amount', '66', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('237010', 'Outillage acquisition exercice - Uitrusting m.b.t. dit boekj.', 'A', 'A', 'AP_amount:IC_expense', '23', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('623600', 'Vêtements de travail employés', 'A', 'E', 'AP_amount:IC_expense', '62', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('612520', 'Emballages perdus', 'A', 'E', 'AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('240200', 'Mat. informatique acquis anterieurs - Hardware m.b.t. vorig boekj.', 'A', 'A', '', '24', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('240210', 'Matériel informatique acquis. exercice - Hardware m.b.t. dit boekj.', 'A', 'A', 'AP_amount:IC_expense', '24', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('260000', 'Amenagement locaux loués acquis anterieurs - Inrichtingskost. m.b.t. vorig boekj.', 'A', 'A', '', '26', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('240000', 'Mobilier acquis. anterieurs - Meubilair m.b.t. vorig boekj.', 'A', 'A', '', '24', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('240010', 'Mobilier acquis. exercice - Meubilair m.b.t. dit boekj.', 'A', 'A', 'AP_amount:IC_expense', '24', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('240110', 'Mat. bureau acquis. exercice - Bureaumaterieel m.b.t. dit boekj.', 'A', 'A', 'AP_amount:IC_expense', '24', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('240100', 'Mat. bureau acquis. anterieurs - Bureaumaterieel m.b.t. vorig boekj.', 'A', 'A', '', '24', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('241000', 'Voiture acquis. anterieurs - Wagen m.b.t. vorig boekj.', 'A', 'A', '', '24', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('241010', 'Voiture acquis. exercice - Wagen m.b.t. dit boekj. ', 'A', 'A', 'AP_amount:IC_expense', '24', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('57', 'Caisses - Kassen', 'H', 'A', '', '57', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('510200', 'Titrés non-cotés - Aandelen niet op beurs', 'A', 'A', '', '51', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('510090', 'Réduct. valeur actées (-) - Geb. waardev. aandelen (-)', 'A', 'A', '', '51', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('510210', ' Montants non-appelés (-) - Niet opgevraagde bedragen aan. (-)', 'A', 'A', '', '51', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('510290', 'Réduct. valeur actées (-) - Geb. waardev. aandelen (-) ', 'A', 'A', '', '51', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('614700', 'Frais de bonne politique', 'A', 'E', 'AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('615000', 'Sous-traitants', 'A', 'E', 'AP_amount:IC_expense', '61', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('630000', 'Amort.s/frais.constit.&aug.capi - Afschr.o.opricht./kapitaalverhoging', 'A', 'E', '', '63', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('630210', 'Amort.s/constructions - Afschr. op gebouwen', 'A', 'E', '', '63', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('630200', 'Amort.s/installations - Afschr. op installaties', 'A', 'E', '', '63', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('630220', 'Amort.s/machines - Afschr. op machines', 'A', 'E', '', '63', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('630221', 'Amort.s/outillage - Afschr. op uitrusting', 'A', 'E', '', '63', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('630222', 'Amort.s/mobilier - Afschr. op meubilair', 'A', 'E', '', '63', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('630223', 'Amort.s/mat.bureau - Afschr. op bureaumaterieel', 'A', 'E', '', '63', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('630224', 'Amort.s/mat.informatique - Afschr. op hardware', 'A', 'E', '', '63', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('630230', 'Amort.s/voitures - Afschr. op wagens', 'A', 'E', '', '63', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('640000', 'Taxes circl. voitures - Belasting wagens', 'A', 'E', '', '64', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('652000', 'Moins-value sur réalisation d''actifs circulants', 'A', 'E', '', '65', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('640020', 'Précompte immoblier - Onroerende voorhoeffing', 'A', 'E', '', '64', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('640100', 'Timbres fiscaux', 'A', 'E', '', '64', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('640230', 'Raccordement aux egouts', 'A', 'E', '', '64', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('640310', 'Cotisation dépannage', 'A', 'E', '', '64', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('630225', 'Amort.s/amén. locaux - Afschr. op inrichtingskost', 'A', 'E', '', '63', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('650000', 'Intérêts comm. & frais s/decouvert', 'A', 'E', 'AP_amount:IC_expense', '65', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('656300', 'Intérêts de retards fiscaux - Fiscale achterst. interest', 'A', 'E', 'AP_amount:IC_expense', '65', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('693000', 'Bénéfice à reporter', 'A', 'E', '', '69', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('663750', '-Val.s/materiel informatique', 'A', 'E', '', '66', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('743300', 'Intervention assurance salaires garant.', 'A', 'I', '', '74', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('763750', '+Val.s/mat.informatique', 'A', 'I', '', '76', '0');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno, contra) VALUES ('406', 'Acomptes versés - Vooruitbetalingen', 'A', 'A', 'AP_paid', '40', '0');
+--
+INSERT INTO tax (chart_id, rate, taxnumber) VALUES ((SELECT id FROM chart WHERE accno = '411590'), 0.06);
+INSERT INTO tax (chart_id, rate, taxnumber) VALUES ((SELECT id FROM chart WHERE accno = '411591'), 0.21);
+INSERT INTO tax (chart_id, rate, taxnumber) VALUES ((SELECT id FROM chart WHERE accno = '451540'), 0.06);
+INSERT INTO tax (chart_id, rate, taxnumber) VALUES ((SELECT id FROM chart WHERE accno = '451541'), 0.21);
+INSERT INTO tax (chart_id, rate, taxnumber) VALUES ((SELECT id FROM chart WHERE accno = '640700'), 0.21);
+--
+UPDATE defaults SET inventory_accno_id = (SELECT id FROM chart WHERE accno = '340'), income_accno_id = (SELECT id FROM chart WHERE accno = '743200'), expense_accno_id = (SELECT id FROM chart WHERE accno = '604'), fxgain_accno_id = (SELECT id FROM chart WHERE accno = '755000'), fxloss_accno_id = (SELECT id FROM chart WHERE accno = '655000'), weightunit = 'kg', curr = 'EUR:USD';
+
diff --git a/sql/Belgium-gifi.sql b/sql/Belgium-gifi.sql
new file mode 100755
index 00000000..3d00bac4
--- /dev/null
+++ b/sql/Belgium-gifi.sql
@@ -0,0 +1,68 @@
+-- contribué par Jens-Ingo Brodesser, jens-ingo@all2all.org, Moving Art Studio ASBL, ALL2ALL The Independent Network
+-- le 15/07/2003
+
+INSERT INTO gifi (accno,description) VALUES ('10','Capital');
+INSERT INTO gifi (accno,description) VALUES ('30','Approvisionnements - Matières premières');
+INSERT INTO gifi (accno,description) VALUES ('11','Primes d''émission');
+INSERT INTO gifi (accno,description) VALUES ('12','Plus-values de réévaluation');
+INSERT INTO gifi (accno,description) VALUES ('13','Réserves');
+INSERT INTO gifi (accno,description) VALUES ('14','Bénéfice reporté [ou Perte reportée (-)]');
+INSERT INTO gifi (accno,description) VALUES ('15','Subsides en capital');
+INSERT INTO gifi (accno,description) VALUES ('16','Provisions pour risques et charges et impôts différés');
+INSERT INTO gifi (accno,description) VALUES ('17','Dettes à plus d''un an');
+INSERT INTO gifi (accno,description) VALUES ('40','Créances commerciales');
+INSERT INTO gifi (accno,description) VALUES ('20','Frais d''établissement');
+INSERT INTO gifi (accno,description) VALUES ('21','Immobilisations incorporelles');
+INSERT INTO gifi (accno,description) VALUES ('22','Terrains et constructions');
+INSERT INTO gifi (accno,description) VALUES ('23','Installations, machines et outillage');
+INSERT INTO gifi (accno,description) VALUES ('24','Mobilier et matériel roulant');
+INSERT INTO gifi (accno,description) VALUES ('25','Immobilisations détenues en location-finac. et droits similaires');
+INSERT INTO gifi (accno,description) VALUES ('31','Approvis. - Fournitures');
+INSERT INTO gifi (accno,description) VALUES ('27','Autres immobilisations corporelles en cours et acompts versés');
+INSERT INTO gifi (accno,description) VALUES ('26','Autres immobilisations corporelles');
+INSERT INTO gifi (accno,description) VALUES ('28','Immobilisations financières');
+INSERT INTO gifi (accno,description) VALUES ('29','Créances à plus d''un an');
+INSERT INTO gifi (accno,description) VALUES ('4115','TVA DUE TOTAL');
+INSERT INTO gifi (accno,description) VALUES ('33','Produits finis');
+INSERT INTO gifi (accno,description) VALUES ('32','Encours fabrication');
+INSERT INTO gifi (accno,description) VALUES ('34','Marchandises');
+INSERT INTO gifi (accno,description) VALUES ('35','Immeubles déstinés à la vente');
+INSERT INTO gifi (accno,description) VALUES ('36','Acomptes s/achats stocks');
+INSERT INTO gifi (accno,description) VALUES ('37','Commandes en cours d''exécution');
+INSERT INTO gifi (accno,description) VALUES ('41','Autres créances');
+INSERT INTO gifi (accno,description) VALUES ('42','Dettes à plus d''un an échéant dans l''année');
+INSERT INTO gifi (accno,description) VALUES ('43','Dettes financières');
+INSERT INTO gifi (accno,description) VALUES ('44','Dettes commerciales');
+INSERT INTO gifi (accno,description) VALUES ('45','Dettes fiscales, salariales et sociales');
+INSERT INTO gifi (accno,description) VALUES ('46','Acomptes réçus s/commandes');
+INSERT INTO gifi (accno,description) VALUES ('48','Dettes diverses');
+INSERT INTO gifi (accno,description) VALUES ('47','Dettes découlants de l''affectation du résultat');
+INSERT INTO gifi (accno,description) VALUES ('49','Comptes de régularisation et comptes d''attente');
+INSERT INTO gifi (accno,description) VALUES ('50','Actions propres');
+INSERT INTO gifi (accno,description) VALUES ('51','Actions et parts');
+INSERT INTO gifi (accno,description) VALUES ('52','Titres à revenu fixe');
+INSERT INTO gifi (accno,description) VALUES ('53','Dépôts à terme');
+INSERT INTO gifi (accno,description) VALUES ('54','Valeurs échues à l''encaissement');
+INSERT INTO gifi (accno,description) VALUES ('55','Etablissements de crédit');
+INSERT INTO gifi (accno,description) VALUES ('56','Office des chèques postaux');
+INSERT INTO gifi (accno,description) VALUES ('57','Caisses');
+INSERT INTO gifi (accno,description) VALUES ('58','Virements internes');
+INSERT INTO gifi (accno,description) VALUES ('60','Approvis. et marchandises');
+INSERT INTO gifi (accno,description) VALUES ('61','Services et biens divers');
+INSERT INTO gifi (accno,description) VALUES ('62','Rémunérations, charges sociales, pensions');
+INSERT INTO gifi (accno,description) VALUES ('63','Amortissements, réductions valeur, provisions risques et charges');
+INSERT INTO gifi (accno,description) VALUES ('64','Autres charges d''exploitation');
+INSERT INTO gifi (accno,description) VALUES ('65','Charges financières');
+INSERT INTO gifi (accno,description) VALUES ('66','Charges exceptionnelles');
+INSERT INTO gifi (accno,description) VALUES ('67','Impôts sur le résultat');
+INSERT INTO gifi (accno,description) VALUES ('68','Transferts aux réserves immunisées et aux impôts différés');
+INSERT INTO gifi (accno,description) VALUES ('69','Affectations et prélèvements');
+INSERT INTO gifi (accno,description) VALUES ('70','Chiffre d''affaires');
+INSERT INTO gifi (accno,description) VALUES ('71','Variation de stock et des commandes en cours d''éxécution');
+INSERT INTO gifi (accno,description) VALUES ('72','Production immobilisée');
+INSERT INTO gifi (accno,description) VALUES ('74','Autres produits d''exploitation');
+INSERT INTO gifi (accno,description) VALUES ('75','Produits financiers');
+INSERT INTO gifi (accno,description) VALUES ('76','Produits exceptionnels');
+INSERT INTO gifi (accno,description) VALUES ('77','Régularisations d''impôts et reprises provisions fiscales');
+INSERT INTO gifi (accno,description) VALUES ('78','Prélèvements s/réserves immunisées et impôts différés');
+INSERT INTO gifi (accno,description) VALUES ('79','Affectations et prélèvements');
diff --git a/sql/Brazil_General-chart.sql b/sql/Brazil_General-chart.sql
new file mode 100755
index 00000000..122406db
--- /dev/null
+++ b/sql/Brazil_General-chart.sql
@@ -0,0 +1,70 @@
+-- General Brazilien Portuguese COA
+-- sample only
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1000','RECURSOS ATUAIS','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1060','Checando Cliente','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1065','Caixa Baixo','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1200','Contas a Receber','A','','A','AR');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1205','Provisão para devedors duvidosos','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1500','INVENTÁRIO DE CLIENTES','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1520','Inventário / Geral','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1530','Inventário / Mercado Secundário','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1540','Inventário / Computer Parts','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1800','CAPITAL ASSETS','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1820','Escritório Móvel & Equipamentos','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link,contra) values ('1825','Accum. Amort. -Móvel. & Equip.','A','','A','','1');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1840','Veículo','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link,contra) values ('1845','Accum. Amort. -Veículo','A','','A','','1');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2000','BALANÇO ATUAL','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2100','Contas a Pagar','A','','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2170','Taxas federais','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2310','VAT (7%)','A','','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2320','VAT (8%)','A','','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2380','Contas a pagar de férias','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2400','DEDUÇÕES DE FOLHA DE PAGAMENTO','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2450','Imposto de Renda Devido','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2600','Passivi exigível a longo prazo','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2620','Empréstimo bancário','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2680','Empréstimo de Acionistas','A','','L','AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3300','DIVISÃO DE CAPITAL','H','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3350','Divisão comum','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4000','VENDAS RECEITAS','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4020','Vendas Gerais','A','','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4030','Partes para mercado secundário','A','','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4040','Parte Computacional','A','','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4300','CONSULTANDO FONTES DE RENDA','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4320','Consultando','A','','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4330','Programando','A','','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4340','Loja','A','','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4400','OUTRAS RENDAS','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4430','Transporte & Taxa','A','','I','IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4440','Juros Acumulados','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4450','Ganho de câmbio estrangeiro','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5000','CUSTO DE VENDAS DE PRODUTOS','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5010','Compras','A','','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5050','Mercado Secundário','A','','E','AP_amount:IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5060','Parte Computacional','A','','E','AP_amount:IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5100','Frete','A','','E','AP_amount:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5400','DESPESAS E FOLHA DE PAGAMENTO','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5410','Salários','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5600','GERAL E DESPESAS ADMINISTRATIVAS','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5610','Contabilidade & Leis','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5615','Publicidade & Promoções','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5620','Balanço','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5660','Amortização','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5680','Imposto de Renda','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5685','Seguro','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5690','Interesses & Encargos Bancários','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5700','Materiais de Escritório','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5760','Aluguel','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5765','Manutenção & Reparos','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5780','Telefone','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5785','Cursos & Entretenimentos','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5790','Serviços Públicos','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5800','Licenciamento para exportações','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5810','Troca com Estrangeiro','A','','E','');
+--
+insert into tax (chart_id,rate) values ((select id from chart where accno = '2310'),0.07);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '2320'),0.08);
+--
+update defaults set inventory_accno_id = (select id from chart where accno = '1520'), income_accno_id = (select id from chart where accno = '4020'), expense_accno_id = (select id from chart where accno = '5010'), fxgain_accno_id = (select id from chart where accno = '4450'), fxloss_accno_id = (select id from chart where accno = '5810'), curr = 'R :EUR:USD', weightunit = 'kg';
+--
diff --git a/sql/Canada-English-gifi.sql b/sql/Canada-English-gifi.sql
new file mode 100755
index 00000000..03945dae
--- /dev/null
+++ b/sql/Canada-English-gifi.sql
@@ -0,0 +1,759 @@
+-- GIFI codes as set by the Canadian Government
+-- It's a dirty job, but it seems somebody allready did it
+-- PDF Tammes, Tue , 02 Apr 2002
+-- remarks or questions to finance@bermuda-holding.com
+--
+-- From the GIFI documentation:
+--
+-- The GIFI information has to balance. We use the following rules to verify the information you provide.
+-- total assets = total liabilities + total shareholder equity
+-- total revenue - total expenses = net non-farming income
+-- total farm revenue - total farm expenses = net farm income
+--
+-- You have to provide certain line items so that we can verify the above equations. Each GIFI must include:
+-- balance sheet
+-- Item 2599 Total assets
+-- Item 3499 Total liabilities
+-- Item 3620 Total shareholder equity
+-- non-farming income and expenses
+-- Item 8299 Total revenue
+-- Item 9368 Total expenses
+-- and/or
+-- farming income and expenses
+-- Item 9659 Total farm revenue
+-- Item 9898 Total farm expenses
+-- when reporting a breakdown of retained earnings
+-- Item 3849 Retained earnings/deficit end
+-- extraordinary items and income taxes
+-- Item 9999 Net income/loss after taxes and extraordinary items
+-- If the amount of a required item is NIL, you have to enter 0.
+--
+INSERT INTO gifi (accno,description) VALUES ('1000', 'Cash & Deposits');
+INSERT INTO gifi (accno,description) VALUES ('1001', 'Cash');
+INSERT INTO gifi (accno,description) VALUES ('1002', 'Deposits In Canadian Banks And Institutions - Canadian Currency');
+INSERT INTO gifi (accno,description) VALUES ('1003', 'Deposits In Canadian Banks And Institutions - Foreign Currency');
+INSERT INTO gifi (accno,description) VALUES ('1004', 'Deposits In Foreign Banks - Canadian Currency');
+INSERT INTO gifi (accno,description) VALUES ('1005', 'Deposits In Foreign Banks - Foreign Currency');
+INSERT INTO gifi (accno,description) VALUES ('1006', 'Credit Union Central Deposits');
+INSERT INTO gifi (accno,description) VALUES ('1007', 'Other Cash Like Instruments - Gold Bullion, Silver Bullion');
+INSERT INTO gifi (accno,description) VALUES ('1060', 'Accounts Receivable');
+INSERT INTO gifi (accno,description) VALUES ('1061', 'Allowance For Doubtfull Accounts Receivable');
+INSERT INTO gifi (accno,description) VALUES ('1062', 'Trade Accounts Receivable');
+INSERT INTO gifi (accno,description) VALUES ('1063', 'Allowance For Doubtfull Trade Accounts Receivable');
+INSERT INTO gifi (accno,description) VALUES ('1064', 'Trade Accounts Receivable Related Parties');
+INSERT INTO gifi (accno,description) VALUES ('1065', 'Allowance For Doubtfull Trade Accounts Receivable Related Parties');
+INSERT INTO gifi (accno,description) VALUES ('1066', 'Taxes Receivable');
+INSERT INTO gifi (accno,description) VALUES ('1067', 'Intrest Receivable');
+INSERT INTO gifi (accno,description) VALUES ('1068', 'Holdbacks Receivable');
+INSERT INTO gifi (accno,description) VALUES ('1069', 'Leases Receivable');
+INSERT INTO gifi (accno,description) VALUES ('1070', 'Allowance For Doubtfull Leases Receivable');
+INSERT INTO gifi (accno,description) VALUES ('1071', 'Accounts Receivable Employees');
+INSERT INTO gifi (accno,description) VALUES ('1072', 'Allowance For Doubtfull Accounts Receivable Employees');
+INSERT INTO gifi (accno,description) VALUES ('1073', 'Accounts Receivable From Members Of NPO');
+INSERT INTO gifi (accno,description) VALUES ('1120', 'Inventories');
+INSERT INTO gifi (accno,description) VALUES ('1121', 'Inventory Of Goods For Sale/Finished Goods');
+INSERT INTO gifi (accno,description) VALUES ('1122', 'Inventory Of Parts And Supplies');
+INSERT INTO gifi (accno,description) VALUES ('1123', 'Inventory Properties');
+INSERT INTO gifi (accno,description) VALUES ('1124', 'Inventory of Aggregates');
+INSERT INTO gifi (accno,description) VALUES ('1125', 'Work In Progress');
+INSERT INTO gifi (accno,description) VALUES ('1126', 'Raw Materials');
+INSERT INTO gifi (accno,description) VALUES ('1127', 'Inventory of Securities');
+INSERT INTO gifi (accno,description) VALUES ('1180', 'Short Term Investments');
+INSERT INTO gifi (accno,description) VALUES ('1181', 'Canadian Term Deposits');
+INSERT INTO gifi (accno,description) VALUES ('1182', 'Canadian Shares');
+INSERT INTO gifi (accno,description) VALUES ('1183', 'Canadian Bonds');
+INSERT INTO gifi (accno,description) VALUES ('1184', 'Canadian Treasury Bills');
+INSERT INTO gifi (accno,description) VALUES ('1185', 'Securities Purchased Under Resale Agreement');
+INSERT INTO gifi (accno,description) VALUES ('1186', 'Other Short Term Canadian Investments');
+INSERT INTO gifi (accno,description) VALUES ('1187', 'Short Term Foreign Investments');
+INSERT INTO gifi (accno,description) VALUES ('1240', 'Loans & Notes Receivable');
+INSERT INTO gifi (accno,description) VALUES ('1241', 'Demand Loans Receivable');
+INSERT INTO gifi (accno,description) VALUES ('1242', 'Other Loans Receivable');
+INSERT INTO gifi (accno,description) VALUES ('1243', 'Notes Receivable');
+INSERT INTO gifi (accno,description) VALUES ('1244', 'Mortgages Receivable');
+INSERT INTO gifi (accno,description) VALUES ('1300', 'Due From Shareholder(s)/Director(s)');
+INSERT INTO gifi (accno,description) VALUES ('1301', 'Due From Individual Shareholder(s)');
+INSERT INTO gifi (accno,description) VALUES ('1302', 'Due From Corporate Shareholder(s)');
+INSERT INTO gifi (accno,description) VALUES ('1303', 'Due From Director(s)');
+INSERT INTO gifi (accno,description) VALUES ('1360', 'Investment In Joint Venture(s)/Partnership(s)');
+INSERT INTO gifi (accno,description) VALUES ('1380', 'Due From Joint Venture(s)/Partnership(s)');
+INSERT INTO gifi (accno,description) VALUES ('1400', 'Due From/Investment In Related Parties');
+INSERT INTO gifi (accno,description) VALUES ('1401', 'Demand Notes From Related Parties');
+INSERT INTO gifi (accno,description) VALUES ('1402', 'Interest Receivable From Related Parties');
+INSERT INTO gifi (accno,description) VALUES ('1403', 'Loans/Advances Due From Related Parties');
+INSERT INTO gifi (accno,description) VALUES ('1460', 'Customer\'s Liability under Acceptances');
+INSERT INTO gifi (accno,description) VALUES ('1480', 'Other Current Assets');
+INSERT INTO gifi (accno,description) VALUES ('1481', 'Deferred Income Taxes');
+INSERT INTO gifi (accno,description) VALUES ('1482', 'Accrued Investment Income');
+INSERT INTO gifi (accno,description) VALUES ('1483', 'Taxes Recoverable/Refundable');
+INSERT INTO gifi (accno,description) VALUES ('1484', 'Prepaid Expenses');
+INSERT INTO gifi (accno,description) VALUES ('1485', 'Drilling Advances');
+INSERT INTO gifi (accno,description) VALUES ('1486', 'Security Deposits');
+INSERT INTO gifi (accno,description) VALUES ('1599', 'Total Current Assets');
+INSERT INTO gifi (accno,description) VALUES ('1600', 'Land');
+INSERT INTO gifi (accno,description) VALUES ('1601', 'Land Improvement');
+INSERT INTO gifi (accno,description) VALUES ('1602', 'Accumulated Amortization Of Land & Land Improvement');
+INSERT INTO gifi (accno,description) VALUES ('1620', 'Depletable Assets');
+INSERT INTO gifi (accno,description) VALUES ('1621', 'Accumulated Amortization Of Depletable Assets');
+INSERT INTO gifi (accno,description) VALUES ('1622', 'Petroleum & Natural Gas Properties');
+INSERT INTO gifi (accno,description) VALUES ('1623', 'Accumulated Amortization Of Petroleum & Natural Gas Properties');
+INSERT INTO gifi (accno,description) VALUES ('1624', 'Mining Properties');
+INSERT INTO gifi (accno,description) VALUES ('1625', 'Accumulated Amortization Of Mining Properties');
+INSERT INTO gifi (accno,description) VALUES ('1626', 'Deferred Exporation & Development charges');
+INSERT INTO gifi (accno,description) VALUES ('1627', 'Accumulated Amortization Of Petroleum & Deferred Exporation & Development charges');
+INSERT INTO gifi (accno,description) VALUES ('1628', 'Quarries');
+INSERT INTO gifi (accno,description) VALUES ('1629', 'Accumulated Amortization Of Quarries');
+INSERT INTO gifi (accno,description) VALUES ('1630', 'Gravel Pits');
+INSERT INTO gifi (accno,description) VALUES ('1631', 'Accumulated Amortization Of Gravel Pits');
+INSERT INTO gifi (accno,description) VALUES ('1632', 'Timber Limits');
+INSERT INTO gifi (accno,description) VALUES ('1633', 'Accumulated Amortization Of Timber Limits');
+INSERT INTO gifi (accno,description) VALUES ('1680', 'Buildings');
+INSERT INTO gifi (accno,description) VALUES ('1681', 'Accumulated Amortization Of Buildings');
+INSERT INTO gifi (accno,description) VALUES ('1682', 'Manufacturing And Processing Plant');
+INSERT INTO gifi (accno,description) VALUES ('1683', 'Accumulated Amortization Of Manufacturing and Processing Plant');
+INSERT INTO gifi (accno,description) VALUES ('1684', 'Buildings Under Construction');
+INSERT INTO gifi (accno,description) VALUES ('1740', 'Machinery, Equipment, furniture & fixtures');
+INSERT INTO gifi (accno,description) VALUES ('1741', 'Accumulated Amortization Of Machinery, Equipment, furniture & fixtures');
+INSERT INTO gifi (accno,description) VALUES ('1742', 'Motor Vehicles');
+INSERT INTO gifi (accno,description) VALUES ('1743', 'Accumulated Amortization Of Motor Vehicles');
+INSERT INTO gifi (accno,description) VALUES ('1744', 'Tools and Dies');
+INSERT INTO gifi (accno,description) VALUES ('1745', 'Accumulated Amortization Of Tools and Dies');
+INSERT INTO gifi (accno,description) VALUES ('1746', 'Construction & Excavating Equipment');
+INSERT INTO gifi (accno,description) VALUES ('1747', 'Accumulated Amortization Of Construction & Excavating Equipment');
+INSERT INTO gifi (accno,description) VALUES ('1748', 'Forestry & Logging Equipment');
+INSERT INTO gifi (accno,description) VALUES ('1749', 'Accumulated Amortization Of Forestry & Logging Equipment');
+INSERT INTO gifi (accno,description) VALUES ('1750', 'Fishing Gear & Nets');
+INSERT INTO gifi (accno,description) VALUES ('1751', 'Accumulated Amortization Of Fishing Gear & Nets');
+INSERT INTO gifi (accno,description) VALUES ('1752', 'Mining Equipment');
+INSERT INTO gifi (accno,description) VALUES ('1753', 'Accumulated Amortization Of Mining Equipment');
+INSERT INTO gifi (accno,description) VALUES ('1754', 'Oil & Gas Systems');
+INSERT INTO gifi (accno,description) VALUES ('1755', 'Accumulated Amortization Of Oil & Gas Systems');
+INSERT INTO gifi (accno,description) VALUES ('1756', 'Production Equipment for resource industries');
+INSERT INTO gifi (accno,description) VALUES ('1757', 'Accumulated Amortization Of Production Equipment for resource industries');
+INSERT INTO gifi (accno,description) VALUES ('1758', 'Production Equipment for other industries');
+INSERT INTO gifi (accno,description) VALUES ('1759', 'Accumulated Amortization Of Production Equipment for other industries');
+INSERT INTO gifi (accno,description) VALUES ('1760', 'Exploration Equipment');
+INSERT INTO gifi (accno,description) VALUES ('1761', 'Accumulated Amortization Of Exploration Equipment');
+INSERT INTO gifi (accno,description) VALUES ('1762', 'Shipping Equipment');
+INSERT INTO gifi (accno,description) VALUES ('1763', 'Accumulated Amortization Of Shipping Equipment');
+INSERT INTO gifi (accno,description) VALUES ('1764', 'Ships & Boats');
+INSERT INTO gifi (accno,description) VALUES ('1765', 'Accumulated Amortization Of Ships & Boats');
+INSERT INTO gifi (accno,description) VALUES ('1766', 'Aircraft');
+INSERT INTO gifi (accno,description) VALUES ('1767', 'Accumulated Amortization Of Aircraft');
+INSERT INTO gifi (accno,description) VALUES ('1768', 'Signs');
+INSERT INTO gifi (accno,description) VALUES ('1769', 'Accumulated Amortization Of Signs');
+INSERT INTO gifi (accno,description) VALUES ('1770', 'Small Tools');
+INSERT INTO gifi (accno,description) VALUES ('1771', 'Accumulated Amortization Of Small Tools');
+INSERT INTO gifi (accno,description) VALUES ('1772', 'Radio & Communication Equipment');
+INSERT INTO gifi (accno,description) VALUES ('1773', 'Accumulated Amortization Of Radio & Communication Equipment');
+INSERT INTO gifi (accno,description) VALUES ('1774', 'Computer Equipment/Software');
+INSERT INTO gifi (accno,description) VALUES ('1775', 'Accumulated Amortization Of Computer Equipment/software');
+INSERT INTO gifi (accno,description) VALUES ('1776', 'Musical Instruments');
+INSERT INTO gifi (accno,description) VALUES ('1777', 'Accumulated Amortization Of Musical Instruments');
+INSERT INTO gifi (accno,description) VALUES ('1778', 'Satellites');
+INSERT INTO gifi (accno,description) VALUES ('1779', 'Accumulated Amortization Of Satellites');
+INSERT INTO gifi (accno,description) VALUES ('1780', 'Earth Stations');
+INSERT INTO gifi (accno,description) VALUES ('1781', 'Accumulated Amortization Of Earth Stations');
+INSERT INTO gifi (accno,description) VALUES ('1782', 'Machinery & Equipment Under Construction');
+INSERT INTO gifi (accno,description) VALUES ('1783', 'Transportation Equipment');
+INSERT INTO gifi (accno,description) VALUES ('1784', 'Accumulated Amortization Of Transportation Equipment');
+INSERT INTO gifi (accno,description) VALUES ('1785', 'Other Machinery & Equipment');
+INSERT INTO gifi (accno,description) VALUES ('1786', 'Accumulated Amortization Of Other Machinery & Equipment');
+INSERT INTO gifi (accno,description) VALUES ('1787', 'Furniture & Fixtures');
+INSERT INTO gifi (accno,description) VALUES ('1788', 'Accumulated Amortization Of Furniture & Fixtures');
+INSERT INTO gifi (accno,description) VALUES ('1900', 'Other Tangible Capital Assets');
+INSERT INTO gifi (accno,description) VALUES ('1901', 'Accumulated Amortization Of Other Tangible Capital Assets');
+INSERT INTO gifi (accno,description) VALUES ('1902', 'Logging Roads');
+INSERT INTO gifi (accno,description) VALUES ('1903', 'Accumulated Amortization Of Logging Roads');
+INSERT INTO gifi (accno,description) VALUES ('1904', 'Asphalt & Parking Areas');
+INSERT INTO gifi (accno,description) VALUES ('1905', 'Accumulated Amortization Of Asphalt & Parking Areas');
+INSERT INTO gifi (accno,description) VALUES ('1906', 'Wharves, Docks & Marinas');
+INSERT INTO gifi (accno,description) VALUES ('1907', 'Accumulated Amortization Of Wharves, Docks & Marinas');
+INSERT INTO gifi (accno,description) VALUES ('1908', 'Fences');
+INSERT INTO gifi (accno,description) VALUES ('1909', 'Accumulated Amortization Of Fences');
+INSERT INTO gifi (accno,description) VALUES ('1910', 'Capital Leases - Buildings');
+INSERT INTO gifi (accno,description) VALUES ('1911', 'Accumulated Amortization Of Capital Leases - Buildings');
+INSERT INTO gifi (accno,description) VALUES ('1912', 'Capital Leases - Equipment');
+INSERT INTO gifi (accno,description) VALUES ('1913', 'Accumulated Amortization Of Capital Leases - Equipment');
+INSERT INTO gifi (accno,description) VALUES ('1914', 'Capital Leases - Vehicles');
+INSERT INTO gifi (accno,description) VALUES ('1915', 'Accumulated Amortization Of Capital Leases - Vehicles');
+INSERT INTO gifi (accno,description) VALUES ('1916', 'Capital Leases - Other');
+INSERT INTO gifi (accno,description) VALUES ('1917', 'Accumulated Amortization Of Capital Leases - Other');
+INSERT INTO gifi (accno,description) VALUES ('1918', 'Leasehold Improvements');
+INSERT INTO gifi (accno,description) VALUES ('1919', 'Accumulated Amortization Of Leasehold Improvements');
+INSERT INTO gifi (accno,description) VALUES ('1920', 'Other Capital Assets Under Construction');
+INSERT INTO gifi (accno,description) VALUES ('1921', 'Campsites');
+INSERT INTO gifi (accno,description) VALUES ('1922', 'Accumulated Amortization Of Campsites');
+INSERT INTO gifi (accno,description) VALUES ('2008', 'Total Tangible Capital Assets');
+INSERT INTO gifi (accno,description) VALUES ('2009', 'Total Accumulated Amortization Of Tangible Capital Assets');
+INSERT INTO gifi (accno,description) VALUES ('2010', 'Intangible Assets');
+INSERT INTO gifi (accno,description) VALUES ('2011', 'Accumulated Amortization Of Intangible Assets');
+INSERT INTO gifi (accno,description) VALUES ('2012', 'Goodwill');
+INSERT INTO gifi (accno,description) VALUES ('2013', 'Accumulated Amortization Of Goodwill');
+INSERT INTO gifi (accno,description) VALUES ('2014', 'Quota');
+INSERT INTO gifi (accno,description) VALUES ('2015', 'Accumulated Amortization Of Quota');
+INSERT INTO gifi (accno,description) VALUES ('2016', 'Licences');
+INSERT INTO gifi (accno,description) VALUES ('2017', 'Accumulated Amortization Of Licences');
+INSERT INTO gifi (accno,description) VALUES ('2018', 'Incorporation Costs');
+INSERT INTO gifi (accno,description) VALUES ('2019', 'Accumulated Amortization Of Incorporation Costs');
+INSERT INTO gifi (accno,description) VALUES ('2020', 'Trademarks & Patents');
+INSERT INTO gifi (accno,description) VALUES ('2021', 'Accumulated Amortization Of Trademarks & Patents');
+INSERT INTO gifi (accno,description) VALUES ('2022', 'Customer Lists');
+INSERT INTO gifi (accno,description) VALUES ('2023', 'Accumulated Amortization Of Customer Lists');
+INSERT INTO gifi (accno,description) VALUES ('2024', 'Rights');
+INSERT INTO gifi (accno,description) VALUES ('2025', 'Accumulated Amortization Of Rights');
+INSERT INTO gifi (accno,description) VALUES ('2026', 'Research & Development');
+INSERT INTO gifi (accno,description) VALUES ('2027', 'Accumulated Amortization Of Research & Development');
+INSERT INTO gifi (accno,description) VALUES ('2070', 'Resource Rights');
+INSERT INTO gifi (accno,description) VALUES ('2071', 'Accumulated Amortization Of Resource Rights');
+INSERT INTO gifi (accno,description) VALUES ('2072', 'Timber Rights');
+INSERT INTO gifi (accno,description) VALUES ('2073', 'Accumulated Amortization Of Timber Rights');
+INSERT INTO gifi (accno,description) VALUES ('2074', 'Mining Rights');
+INSERT INTO gifi (accno,description) VALUES ('2075', 'Accumulated Amortization Of Mining Rights');
+INSERT INTO gifi (accno,description) VALUES ('2076', 'Oil & Gas Rights');
+INSERT INTO gifi (accno,description) VALUES ('2077', 'Accumulated Amortization Of Oil & Gas Rights');
+INSERT INTO gifi (accno,description) VALUES ('2178', 'Total Intangible Capital Assets');
+INSERT INTO gifi (accno,description) VALUES ('2179', 'Total Accumulated Amortization Of Intangible Capital Assets');
+INSERT INTO gifi (accno,description) VALUES ('2180', 'Due From Shareholder(s)/Director(s)');
+INSERT INTO gifi (accno,description) VALUES ('2181', 'Due From Individual Shareholder(s)');
+INSERT INTO gifi (accno,description) VALUES ('2182', 'Due From Corporate Shareholder(s)');
+INSERT INTO gifi (accno,description) VALUES ('2183', 'Due From Director(s)');
+INSERT INTO gifi (accno,description) VALUES ('2190', 'Due from Members');
+INSERT INTO gifi (accno,description) VALUES ('2200', 'Investment In Joint Venture(s)/Partnership(s)');
+INSERT INTO gifi (accno,description) VALUES ('2220', 'Due From Joint Venture(s)/Partnership(s)');
+INSERT INTO gifi (accno,description) VALUES ('2240', 'Due From/Investment In Related Parties');
+INSERT INTO gifi (accno,description) VALUES ('2241', 'Due From/Investment In Canadian Related Parties');
+INSERT INTO gifi (accno,description) VALUES ('2242', 'Shares In Canadian Related Corporations');
+INSERT INTO gifi (accno,description) VALUES ('2243', 'Loans/Advances To Canadian Related Corporations');
+INSERT INTO gifi (accno,description) VALUES ('2244', 'Investment In Canadian Related Corporations At Cost');
+INSERT INTO gifi (accno,description) VALUES ('2245', 'Investment In Canadian Related Corporations At Equity');
+INSERT INTO gifi (accno,description) VALUES ('2246', 'Due From/Investment In Foreign Related Parties');
+INSERT INTO gifi (accno,description) VALUES ('2247', 'Shares In Foreign Related Corporations');
+INSERT INTO gifi (accno,description) VALUES ('2248', 'Loans/Advances To Foreign Related Corporations');
+INSERT INTO gifi (accno,description) VALUES ('2249', 'Investment In Foreign Related Corporations At Cost');
+INSERT INTO gifi (accno,description) VALUES ('2250', 'Investment In Foreign Related Corporations At Equity');
+INSERT INTO gifi (accno,description) VALUES ('2280', 'Investment In Co-Tenancy');
+INSERT INTO gifi (accno,description) VALUES ('2300', 'Long Term Investments');
+INSERT INTO gifi (accno,description) VALUES ('2301', 'Foreign Shares');
+INSERT INTO gifi (accno,description) VALUES ('2302', 'Other Type Of Foreign Investments');
+INSERT INTO gifi (accno,description) VALUES ('2303', 'Canadian Shares');
+INSERT INTO gifi (accno,description) VALUES ('2304', 'Government Of Canada Debt');
+INSERT INTO gifi (accno,description) VALUES ('2305', 'Canadian Provinvial & Municipal Government Debt');
+INSERT INTO gifi (accno,description) VALUES ('2306', 'Canadian Corporate Bonds & Debentures');
+INSERT INTO gifi (accno,description) VALUES ('2307', 'Debt Securities');
+INSERT INTO gifi (accno,description) VALUES ('2308', 'Equity Securities');
+INSERT INTO gifi (accno,description) VALUES ('2309', 'Securities Purchased Under Resale Agreements');
+INSERT INTO gifi (accno,description) VALUES ('2310', 'Central Credit Union Shares');
+INSERT INTO gifi (accno,description) VALUES ('2311', 'Other Long Term Canadian Investments');
+INSERT INTO gifi (accno,description) VALUES ('2360', 'Long Term Loans');
+INSERT INTO gifi (accno,description) VALUES ('2361', 'Mortgages');
+INSERT INTO gifi (accno,description) VALUES ('2362', 'Personal & Credit Card Loans');
+INSERT INTO gifi (accno,description) VALUES ('2363', 'Business & Government Loans');
+INSERT INTO gifi (accno,description) VALUES ('2364', 'Line Of Credit');
+INSERT INTO gifi (accno,description) VALUES ('2420', 'Other Long Term Assets');
+INSERT INTO gifi (accno,description) VALUES ('2421', 'Deferred Income Taxes / Tax Reserves');
+INSERT INTO gifi (accno,description) VALUES ('2422', 'Deferred Pension Charges');
+INSERT INTO gifi (accno,description) VALUES ('2423', 'Deferred Unrealized Exchange Losses');
+INSERT INTO gifi (accno,description) VALUES ('2424', 'Other Deferred Items/Charges');
+INSERT INTO gifi (accno,description) VALUES ('2425', 'Accumulated Amortization Of Deferred Charges');
+INSERT INTO gifi (accno,description) VALUES ('2426', 'Reserve Fund');
+INSERT INTO gifi (accno,description) VALUES ('2427', 'Cash Surrender Value Of Life Insurance');
+INSERT INTO gifi (accno,description) VALUES ('2589', 'Total Long Term Assets');
+INSERT INTO gifi (accno,description) VALUES ('2590', 'Assets Held In Trust');
+INSERT INTO gifi (accno,description) VALUES ('2599', 'Total Assets');
+INSERT INTO gifi (accno,description) VALUES ('2600', 'Bank Overdraft');
+INSERT INTO gifi (accno,description) VALUES ('2620', 'Amounts Payable & Accrued Liabilities');
+INSERT INTO gifi (accno,description) VALUES ('2621', 'Accounts Payable Trade');
+INSERT INTO gifi (accno,description) VALUES ('2622', 'Accounts Payable To Related Parties');
+INSERT INTO gifi (accno,description) VALUES ('2623', 'Holdbacks Payable');
+INSERT INTO gifi (accno,description) VALUES ('2624', 'Wages Payable');
+INSERT INTO gifi (accno,description) VALUES ('2625', 'Management Fees Payable');
+INSERT INTO gifi (accno,description) VALUES ('2626', 'Bonuses Payable');
+INSERT INTO gifi (accno,description) VALUES ('2627', 'Employee Deductions Payable');
+INSERT INTO gifi (accno,description) VALUES ('2628', 'Withholding Taxes Payable');
+INSERT INTO gifi (accno,description) VALUES ('2629', 'Intrest Payable');
+INSERT INTO gifi (accno,description) VALUES ('2680', 'Taxes Payable');
+INSERT INTO gifi (accno,description) VALUES ('2681', 'Capital Taxes Payable');
+INSERT INTO gifi (accno,description) VALUES ('2682', 'Foreign Taxes Payable');
+INSERT INTO gifi (accno,description) VALUES ('2683', 'Federal Taxes Payable');
+INSERT INTO gifi (accno,description) VALUES ('2684', 'Provincial Taxes Payable');
+INSERT INTO gifi (accno,description) VALUES ('2685', 'GST Payable');
+INSERT INTO gifi (accno,description) VALUES ('2686', 'PST Payable');
+INSERT INTO gifi (accno,description) VALUES ('2700', 'Short Term Debt');
+INSERT INTO gifi (accno,description) VALUES ('2701', 'Loans From Canadian Banks');
+INSERT INTO gifi (accno,description) VALUES ('2702', 'Liability For Securities Sold Short');
+INSERT INTO gifi (accno,description) VALUES ('2703', 'Liability For Securities Sold Under Repurchase Agreements');
+INSERT INTO gifi (accno,description) VALUES ('2704', 'Gold & Silver Certificates');
+INSERT INTO gifi (accno,description) VALUES ('2705', 'Cheques & Other Items In Transit');
+INSERT INTO gifi (accno,description) VALUES ('2706', 'Lien Notes');
+INSERT INTO gifi (accno,description) VALUES ('2770', 'Deferred Income');
+INSERT INTO gifi (accno,description) VALUES ('2780', 'Due To Shareholder(s)/Director(s)');
+INSERT INTO gifi (accno,description) VALUES ('2781', 'Due To Individual Shareholder(s)');
+INSERT INTO gifi (accno,description) VALUES ('2782', 'Due To Corporate Shareholder(s)');
+INSERT INTO gifi (accno,description) VALUES ('2783', 'Due To Director(s)');
+INSERT INTO gifi (accno,description) VALUES ('2840', 'Due To Joint Venture(s)/Partnership(s)');
+INSERT INTO gifi (accno,description) VALUES ('2860', 'Due To Related Parties');
+INSERT INTO gifi (accno,description) VALUES ('2861', 'Demand Notes Due To Related Parties');
+INSERT INTO gifi (accno,description) VALUES ('2862', 'Interest Payable To Related Parties');
+INSERT INTO gifi (accno,description) VALUES ('2863', 'Advances Due To Related Parties');
+INSERT INTO gifi (accno,description) VALUES ('2920', 'Current Portion Of Long Term Liability');
+INSERT INTO gifi (accno,description) VALUES ('2960', 'Other Current Liabilities');
+INSERT INTO gifi (accno,description) VALUES ('2961', 'Deposits Received');
+INSERT INTO gifi (accno,description) VALUES ('2962', 'Dividends Payable');
+INSERT INTO gifi (accno,description) VALUES ('2963', 'Deferred Income Taxes');
+INSERT INTO gifi (accno,description) VALUES ('2964', 'Reserves For Guarantees, Warranties Or Indemnities');
+INSERT INTO gifi (accno,description) VALUES ('2965', 'General Reserves / Provisions');
+INSERT INTO gifi (accno,description) VALUES ('2966', 'Crew Shares');
+INSERT INTO gifi (accno,description) VALUES ('3139', 'Total Current Liabilities');
+INSERT INTO gifi (accno,description) VALUES ('3140', 'Long Term Debt');
+INSERT INTO gifi (accno,description) VALUES ('3141', 'Mortgages');
+INSERT INTO gifi (accno,description) VALUES ('3142', 'Farm Credit Corporation Loan');
+INSERT INTO gifi (accno,description) VALUES ('3143', 'Chartered Bank Loan');
+INSERT INTO gifi (accno,description) VALUES ('3144', 'Credit Union/Caisse Populaire Loan');
+INSERT INTO gifi (accno,description) VALUES ('3145', 'Provincial Government Loan');
+INSERT INTO gifi (accno,description) VALUES ('3146', 'Supply Company Loan');
+INSERT INTO gifi (accno,description) VALUES ('3147', 'Private Loan');
+INSERT INTO gifi (accno,description) VALUES ('3148', 'Central, Leagues And Federation Loans');
+INSERT INTO gifi (accno,description) VALUES ('3149', 'Line Of Credit');
+INSERT INTO gifi (accno,description) VALUES ('3150', 'Liability For Securities Sold Short');
+INSERT INTO gifi (accno,description) VALUES ('3151', 'Liability For Securities Sold Under Repurchase Agreements');
+INSERT INTO gifi (accno,description) VALUES ('3152', 'Lien Notes');
+INSERT INTO gifi (accno,description) VALUES ('3210', 'Bonds And Debentures');
+INSERT INTO gifi (accno,description) VALUES ('3220', 'Deferred Income');
+INSERT INTO gifi (accno,description) VALUES ('3240', 'Deferred Income Taxes');
+INSERT INTO gifi (accno,description) VALUES ('3260', 'Long Term Due To Shareholder(s)/Director(s)');
+INSERT INTO gifi (accno,description) VALUES ('3261', 'Long Term Due To Individual Shareholder(s)');
+INSERT INTO gifi (accno,description) VALUES ('3262', 'Long Term Due To Corporate Shareholder(s)');
+INSERT INTO gifi (accno,description) VALUES ('3263', 'Long Term Due To Director(s)');
+INSERT INTO gifi (accno,description) VALUES ('3280', 'Long Term Due To Joint Venture(s)/Partnership(s)');
+INSERT INTO gifi (accno,description) VALUES ('3300', 'Long Term Due To Related Parties');
+INSERT INTO gifi (accno,description) VALUES ('3301', 'Amounts Owing To Related Canadian Parties');
+INSERT INTO gifi (accno,description) VALUES ('3302', 'Amounts Owing To Related Foreign Parties');
+INSERT INTO gifi (accno,description) VALUES ('3320', 'Other Long Term Liabilities');
+INSERT INTO gifi (accno,description) VALUES ('3321', 'Long Term Obligations/Commitments/Leases');
+INSERT INTO gifi (accno,description) VALUES ('3322', 'Reserves For Guarantees, Warranties Or Indemnities');
+INSERT INTO gifi (accno,description) VALUES ('3323', 'Provision For Site Restoration');
+INSERT INTO gifi (accno,description) VALUES ('3324', 'Contributions To Qualifying Environmental Trust');
+INSERT INTO gifi (accno,description) VALUES ('3325', 'General Provisions / Reserves');
+INSERT INTO gifi (accno,description) VALUES ('3326', 'Preference Shares Restated');
+INSERT INTO gifi (accno,description) VALUES ('3327', 'Member Allocations');
+INSERT INTO gifi (accno,description) VALUES ('3328', 'Deferred Income From Incomplete Contracts');
+INSERT INTO gifi (accno,description) VALUES ('3450', 'Total Long Term Liabilities');
+INSERT INTO gifi (accno,description) VALUES ('3460', 'Subordinated Debt');
+INSERT INTO gifi (accno,description) VALUES ('3470', 'Amounts Held In Trust');
+INSERT INTO gifi (accno,description) VALUES ('3499', 'Total Liabilities');
+INSERT INTO gifi (accno,description) VALUES ('3500', 'Common Shares');
+INSERT INTO gifi (accno,description) VALUES ('3520', 'Preferred Shares');
+INSERT INTO gifi (accno,description) VALUES ('3540', 'Contributed & Other Surplus');
+INSERT INTO gifi (accno,description) VALUES ('3541', 'Contributed Surplus');
+INSERT INTO gifi (accno,description) VALUES ('3542', 'Appraisal Surplus');
+INSERT INTO gifi (accno,description) VALUES ('3543', 'General Reserve');
+INSERT INTO gifi (accno,description) VALUES ('3570', 'Head Office Account');
+INSERT INTO gifi (accno,description) VALUES ('3600', 'Retained Earnings/Deficit');
+INSERT INTO gifi (accno,description) VALUES ('3620', 'Total Shareholder Equity');
+INSERT INTO gifi (accno,description) VALUES ('3640', 'Total Liabilities & Shareholder Equity');
+INSERT INTO gifi (accno,description) VALUES ('3660', 'Retained Earnings/Deficit Start');
+INSERT INTO gifi (accno,description) VALUES ('3680', 'Net Income/Loss');
+INSERT INTO gifi (accno,description) VALUES ('3700', 'Dividend Declared');
+INSERT INTO gifi (accno,description) VALUES ('3701', 'Cash Dividend');
+INSERT INTO gifi (accno,description) VALUES ('3702', 'Patronage Dividend');
+INSERT INTO gifi (accno,description) VALUES ('3720', 'Prior Year Adjustments');
+INSERT INTO gifi (accno,description) VALUES ('3740', 'Other Items Affecting Retained Earnings');
+INSERT INTO gifi (accno,description) VALUES ('3741', 'Share Redemptions');
+INSERT INTO gifi (accno,description) VALUES ('3742', 'Special Reserves');
+INSERT INTO gifi (accno,description) VALUES ('3743', 'Currency Adjustments');
+INSERT INTO gifi (accno,description) VALUES ('3744', 'Unusual Revenue Items');
+INSERT INTO gifi (accno,description) VALUES ('3745', 'Interfund Transfers (NPO)');
+INSERT INTO gifi (accno,description) VALUES ('3849', 'Retained Earnings/Deficit End');
+INSERT INTO gifi (accno,description) VALUES ('8000', 'Trade Sales of Goods and Services');
+INSERT INTO gifi (accno,description) VALUES ('8020', 'Sales To Related Parties');
+INSERT INTO gifi (accno,description) VALUES ('8030', 'Interdivisional Sales');
+INSERT INTO gifi (accno,description) VALUES ('8040', 'Sales From Resource Properties');
+INSERT INTO gifi (accno,description) VALUES ('8041', 'Petroleum & Natural Gas Sales');
+INSERT INTO gifi (accno,description) VALUES ('8042', 'Petroleum & Natural Gas Sales To Related Parties');
+INSERT INTO gifi (accno,description) VALUES ('8043', 'Gas Marketing');
+INSERT INTO gifi (accno,description) VALUES ('8044', 'Processing Revenue');
+INSERT INTO gifi (accno,description) VALUES ('8045', 'Pipeline Revenue');
+INSERT INTO gifi (accno,description) VALUES ('8046', 'Seismic Sales');
+INSERT INTO gifi (accno,description) VALUES ('8047', 'Mining Revenue');
+INSERT INTO gifi (accno,description) VALUES ('8048', 'Coal Revenue');
+INSERT INTO gifi (accno,description) VALUES ('8049', 'Oil Sands Revenue');
+INSERT INTO gifi (accno,description) VALUES ('8050', 'Royalty Income');
+INSERT INTO gifi (accno,description) VALUES ('8051', 'Oil & Gas Partnership/Joint Venture Income/Loss');
+INSERT INTO gifi (accno,description) VALUES ('8052', 'Mining Partnership/Joint Venture Income/Loss');
+INSERT INTO gifi (accno,description) VALUES ('8053', 'Other Production Revenue');
+INSERT INTO gifi (accno,description) VALUES ('8089', 'Total Sales Of Goods And Services');
+INSERT INTO gifi (accno,description) VALUES ('8090', 'Investment Revenue');
+INSERT INTO gifi (accno,description) VALUES ('8091', 'Interest From Foreign Sources');
+INSERT INTO gifi (accno,description) VALUES ('8092', 'Interest From Canadian Bonds And Debentures');
+INSERT INTO gifi (accno,description) VALUES ('8093', 'Interest From Canadian Mortgage Loans');
+INSERT INTO gifi (accno,description) VALUES ('8094', 'Interest From Other Canadian Sources');
+INSERT INTO gifi (accno,description) VALUES ('8095', 'Dividend Income');
+INSERT INTO gifi (accno,description) VALUES ('8096', 'Dividend From Canadian Sources');
+INSERT INTO gifi (accno,description) VALUES ('8097', 'Interest From Foreign Sources');
+INSERT INTO gifi (accno,description) VALUES ('8120', 'Commission Revenue');
+INSERT INTO gifi (accno,description) VALUES ('8121', 'Commission Income On Real Estate Transactions');
+INSERT INTO gifi (accno,description) VALUES ('8140', 'Rental Revenue');
+INSERT INTO gifi (accno,description) VALUES ('8141', 'Real Estate Rental Revenue');
+INSERT INTO gifi (accno,description) VALUES ('8150', 'Vehicle Leasing');
+INSERT INTO gifi (accno,description) VALUES ('8160', 'Fishing Revenue');
+INSERT INTO gifi (accno,description) VALUES ('8161', 'Fish Products');
+INSERT INTO gifi (accno,description) VALUES ('8162', 'Other Marine Products');
+INSERT INTO gifi (accno,description) VALUES ('8163', 'Fishing Grants, Credits & Rebates');
+INSERT INTO gifi (accno,description) VALUES ('8164', 'Fishing Subsidies');
+INSERT INTO gifi (accno,description) VALUES ('8165', 'Compensation For Loss Of Fishing Income/Property');
+INSERT INTO gifi (accno,description) VALUES ('8166', 'Sharesman Income');
+INSERT INTO gifi (accno,description) VALUES ('8210', 'Realized Gains/Losses On Disposal Of Assets');
+INSERT INTO gifi (accno,description) VALUES ('8211', 'Realized Gains/Losses On Sale Of Investments');
+INSERT INTO gifi (accno,description) VALUES ('8212', 'Realized Gains/Losses On Sale Of Resource Properties');
+INSERT INTO gifi (accno,description) VALUES ('8220', 'NPO Amounts Received');
+INSERT INTO gifi (accno,description) VALUES ('8221', 'Membership Fees');
+INSERT INTO gifi (accno,description) VALUES ('8222', 'Assessments');
+INSERT INTO gifi (accno,description) VALUES ('8223', 'Gifts');
+INSERT INTO gifi (accno,description) VALUES ('8224', 'Gross Sales And Revenues From Organizational Activities');
+INSERT INTO gifi (accno,description) VALUES ('8230', 'Other Revenue');
+INSERT INTO gifi (accno,description) VALUES ('8231', 'Foreign Exchange Gains/Losses');
+INSERT INTO gifi (accno,description) VALUES ('8232', 'Income/Loss Of Subsidiaries/Affiliates');
+INSERT INTO gifi (accno,description) VALUES ('8233', 'Income/Loss Of Other Divisions');
+INSERT INTO gifi (accno,description) VALUES ('8234', 'Income/Loss Of Joint Ventures');
+INSERT INTO gifi (accno,description) VALUES ('8235', 'Income/Loss Of Partnerships');
+INSERT INTO gifi (accno,description) VALUES ('8236', 'RealizaTion Of Deferred Revenues');
+INSERT INTO gifi (accno,description) VALUES ('8237', 'Royalty Income Other Than Resource');
+INSERT INTO gifi (accno,description) VALUES ('8238', 'Alberta Royalty Tax Credits');
+INSERT INTO gifi (accno,description) VALUES ('8239', 'Management & Administration Fees');
+INSERT INTO gifi (accno,description) VALUES ('8240', 'Telecommunications Revenues');
+INSERT INTO gifi (accno,description) VALUES ('8241', 'Consulting Fees');
+INSERT INTO gifi (accno,description) VALUES ('8242', 'Subsidies & Grants');
+INSERT INTO gifi (accno,description) VALUES ('8243', 'Sale Of By-Products');
+INSERT INTO gifi (accno,description) VALUES ('8244', 'Deposit Services');
+INSERT INTO gifi (accno,description) VALUES ('8245', 'Credit Services');
+INSERT INTO gifi (accno,description) VALUES ('8246', 'Card Services');
+INSERT INTO gifi (accno,description) VALUES ('8247', 'Patronage Dividends');
+INSERT INTO gifi (accno,description) VALUES ('8248', 'Insurance Recoveries');
+INSERT INTO gifi (accno,description) VALUES ('8249', 'Expense Recoveries');
+INSERT INTO gifi (accno,description) VALUES ('8250', 'Bad Debt Recoveries');
+INSERT INTO gifi (accno,description) VALUES ('8299', 'Total Revenue');
+INSERT INTO gifi (accno,description) VALUES ('8300', 'Opening Inventory');
+INSERT INTO gifi (accno,description) VALUES ('8301', 'Opening Inventory - finished goods');
+INSERT INTO gifi (accno,description) VALUES ('8302', 'Opening Inventory - raw materials');
+INSERT INTO gifi (accno,description) VALUES ('8303', 'Opening Inventory - goods in process');
+INSERT INTO gifi (accno,description) VALUES ('8304', 'Opening Inventory - work in process');
+INSERT INTO gifi (accno,description) VALUES ('8320', 'Purchases / Cost of Materials');
+INSERT INTO gifi (accno,description) VALUES ('8321', 'Purchases Product A');
+INSERT INTO gifi (accno,description) VALUES ('8322', 'Purchases Product B');
+INSERT INTO gifi (accno,description) VALUES ('8331', 'Price Differences & Discounts On Purchases');
+INSERT INTO gifi (accno,description) VALUES ('8340', 'Direct Wages');
+INSERT INTO gifi (accno,description) VALUES ('8350', 'Benefits On Direct Wages');
+INSERT INTO gifi (accno,description) VALUES ('8360', 'Trades & Sub-contracts');
+INSERT INTO gifi (accno,description) VALUES ('8370', 'Production Costs Other Than Resource');
+INSERT INTO gifi (accno,description) VALUES ('8400', 'Resource Production Costs');
+INSERT INTO gifi (accno,description) VALUES ('8401', 'Pipeline Operations');
+INSERT INTO gifi (accno,description) VALUES ('8402', 'Drilling');
+INSERT INTO gifi (accno,description) VALUES ('8403', 'Site Restoration Costs');
+INSERT INTO gifi (accno,description) VALUES ('8404', 'Gross Overriding Royalty');
+INSERT INTO gifi (accno,description) VALUES ('8405', 'Freehold Royalties');
+INSERT INTO gifi (accno,description) VALUES ('8406', 'Other Producing Properties Rental');
+INSERT INTO gifi (accno,description) VALUES ('8407', 'Prospect & Geological');
+INSERT INTO gifi (accno,description) VALUES ('8408', 'Well Operating, Fuel & Equipment');
+INSERT INTO gifi (accno,description) VALUES ('8409', 'Well Abandonment & Dry Holes');
+INSERT INTO gifi (accno,description) VALUES ('8410', 'Other Lease Rentals');
+INSERT INTO gifi (accno,description) VALUES ('8411', 'Exploration Expenses, Aerial Surveys');
+INSERT INTO gifi (accno,description) VALUES ('8412', 'Development Expenses, stripping costs');
+INSERT INTO gifi (accno,description) VALUES ('8435', 'Crown Charges');
+INSERT INTO gifi (accno,description) VALUES ('8436', 'Crown royalties');
+INSERT INTO gifi (accno,description) VALUES ('8437', 'Crown lease rentals');
+INSERT INTO gifi (accno,description) VALUES ('8438', 'Freehold mineral tax');
+INSERT INTO gifi (accno,description) VALUES ('8439', 'Mining taxes');
+INSERT INTO gifi (accno,description) VALUES ('8440', 'Oil and Sand leases');
+INSERT INTO gifi (accno,description) VALUES ('8441', 'Saskatchewan resource surcharge');
+INSERT INTO gifi (accno,description) VALUES ('8450', 'Other Direct Costs');
+INSERT INTO gifi (accno,description) VALUES ('8451', 'Equipment Hire & Operation');
+INSERT INTO gifi (accno,description) VALUES ('8452', 'Log Yard');
+INSERT INTO gifi (accno,description) VALUES ('8453', 'Forestry costs');
+INSERT INTO gifi (accno,description) VALUES ('8454', 'Logging Road costs');
+INSERT INTO gifi (accno,description) VALUES ('8455', 'Stumpage costs');
+INSERT INTO gifi (accno,description) VALUES ('8456', 'Royalty costs');
+INSERT INTO gifi (accno,description) VALUES ('8457', 'Freight In & Customs Duty');
+INSERT INTO gifi (accno,description) VALUES ('8458', 'Inventory Write Down');
+INSERT INTO gifi (accno,description) VALUES ('8459', 'Direct cost amortization of tangible assets');
+INSERT INTO gifi (accno,description) VALUES ('8460', 'Direct cost amortization of natural resource assets');
+INSERT INTO gifi (accno,description) VALUES ('8461', 'Overhead expenses allocated to cost of sales');
+INSERT INTO gifi (accno,description) VALUES ('8500', 'Closing Inventory');
+INSERT INTO gifi (accno,description) VALUES ('8501', 'Closing Inventory - Finished Goods');
+INSERT INTO gifi (accno,description) VALUES ('8502', 'Closing Inventory - Raw Materials');
+INSERT INTO gifi (accno,description) VALUES ('8503', 'Closing Inventory - Goods In Process');
+INSERT INTO gifi (accno,description) VALUES ('8504', 'Closing Inventory - Work In Process');
+INSERT INTO gifi (accno,description) VALUES ('8518', 'Cost Of Sales');
+INSERT INTO gifi (accno,description) VALUES ('8519', 'Gross Profit/Loss');
+INSERT INTO gifi (accno,description) VALUES ('8520', 'Advertising & Promotion');
+INSERT INTO gifi (accno,description) VALUES ('8521', 'Advertising');
+INSERT INTO gifi (accno,description) VALUES ('8522', 'Donations');
+INSERT INTO gifi (accno,description) VALUES ('8523', 'Meals & Entertainment');
+INSERT INTO gifi (accno,description) VALUES ('8524', 'Promotion');
+INSERT INTO gifi (accno,description) VALUES ('8570', 'Amortization Of Intangible Assets');
+INSERT INTO gifi (accno,description) VALUES ('8590', 'Bad Debt Expense');
+INSERT INTO gifi (accno,description) VALUES ('8610', 'Loan Losses');
+INSERT INTO gifi (accno,description) VALUES ('8611', 'Provision for Loan Losses');
+INSERT INTO gifi (accno,description) VALUES ('8620', 'Employee Benefits');
+INSERT INTO gifi (accno,description) VALUES ('8621', 'Group Insurance Benefits');
+INSERT INTO gifi (accno,description) VALUES ('8622', 'Employers Portion Of Employee Benefits');
+INSERT INTO gifi (accno,description) VALUES ('8623', 'Contributions To Deferred Income Plans');
+INSERT INTO gifi (accno,description) VALUES ('8650', 'Amortization Of Natural Resource Assets');
+INSERT INTO gifi (accno,description) VALUES ('8670', 'Amortization Of Tangible Assets');
+INSERT INTO gifi (accno,description) VALUES ('8690', 'Insurance');
+INSERT INTO gifi (accno,description) VALUES ('8691', 'Life Insurance On Executives');
+INSERT INTO gifi (accno,description) VALUES ('8710', 'Interest & Bank Charges');
+INSERT INTO gifi (accno,description) VALUES ('8711', 'Interest On Short Term Debt');
+INSERT INTO gifi (accno,description) VALUES ('8712', 'Interest On Bonds And Debentures');
+INSERT INTO gifi (accno,description) VALUES ('8713', 'Interest On Mortgages');
+INSERT INTO gifi (accno,description) VALUES ('8714', 'Interest On Long Term Debt');
+INSERT INTO gifi (accno,description) VALUES ('8715', 'Bank Charges');
+INSERT INTO gifi (accno,description) VALUES ('8716', 'Credit Card Charges');
+INSERT INTO gifi (accno,description) VALUES ('8717', 'Collection & Credit costs');
+INSERT INTO gifi (accno,description) VALUES ('8760', 'Business Taxes, Licences & Memberships');
+INSERT INTO gifi (accno,description) VALUES ('8761', 'Memberships');
+INSERT INTO gifi (accno,description) VALUES ('8762', 'Business Taxes');
+INSERT INTO gifi (accno,description) VALUES ('8763', 'Franchise Fees');
+INSERT INTO gifi (accno,description) VALUES ('8764', 'Government Fees');
+INSERT INTO gifi (accno,description) VALUES ('8780', 'New Brunswick Tax On Large Corporations');
+INSERT INTO gifi (accno,description) VALUES ('8790', 'Nova Scotia Tax On Large Corporations');
+INSERT INTO gifi (accno,description) VALUES ('8810', 'Office Expenses');
+INSERT INTO gifi (accno,description) VALUES ('8811', 'Office Stationary And Supplies');
+INSERT INTO gifi (accno,description) VALUES ('8812', 'Office Utilities');
+INSERT INTO gifi (accno,description) VALUES ('8813', 'Data Processing');
+INSERT INTO gifi (accno,description) VALUES ('8860', 'Professional Fees');
+INSERT INTO gifi (accno,description) VALUES ('8861', 'Legal Fees');
+INSERT INTO gifi (accno,description) VALUES ('8862', 'Accounting Fees');
+INSERT INTO gifi (accno,description) VALUES ('8863', 'Consulting Fees');
+INSERT INTO gifi (accno,description) VALUES ('8864', 'Architect Fees');
+INSERT INTO gifi (accno,description) VALUES ('8865', 'Appraisal Fees');
+INSERT INTO gifi (accno,description) VALUES ('8866', 'Laboratory Fees');
+INSERT INTO gifi (accno,description) VALUES ('8867', 'Medical Fees');
+INSERT INTO gifi (accno,description) VALUES ('8868', 'Veterinary Fees');
+INSERT INTO gifi (accno,description) VALUES ('8869', 'Brokerage Fees');
+INSERT INTO gifi (accno,description) VALUES ('8870', 'Transfer Fees');
+INSERT INTO gifi (accno,description) VALUES ('8871', 'Management & Administration Fees');
+INSERT INTO gifi (accno,description) VALUES ('8872', 'Refining & Assay');
+INSERT INTO gifi (accno,description) VALUES ('8873', 'Registrar & Transfer Agent Fees');
+INSERT INTO gifi (accno,description) VALUES ('8874', 'Restructuring Costs');
+INSERT INTO gifi (accno,description) VALUES ('8875', 'Security & Exchange Commission Fees');
+INSERT INTO gifi (accno,description) VALUES ('8876', 'Training Expense');
+INSERT INTO gifi (accno,description) VALUES ('8877', 'Studio & Recording');
+INSERT INTO gifi (accno,description) VALUES ('8910', 'Rental');
+INSERT INTO gifi (accno,description) VALUES ('8911', 'Real Estate Rental');
+INSERT INTO gifi (accno,description) VALUES ('8912', 'Occupancy Costs');
+INSERT INTO gifi (accno,description) VALUES ('8913', 'Condominium Fees');
+INSERT INTO gifi (accno,description) VALUES ('8914', 'Equipment Rental');
+INSERT INTO gifi (accno,description) VALUES ('8915', 'Motor Vehicle Rental');
+INSERT INTO gifi (accno,description) VALUES ('8916', 'Moorage (Boat)');
+INSERT INTO gifi (accno,description) VALUES ('8917', 'Storage');
+INSERT INTO gifi (accno,description) VALUES ('8918', 'Quota Rental');
+INSERT INTO gifi (accno,description) VALUES ('8960', 'Repairs & Maintenance - Aircraft');
+INSERT INTO gifi (accno,description) VALUES ('8961', 'Repairs & Maintenance - Buildings');
+INSERT INTO gifi (accno,description) VALUES ('8962', 'Repairs & Maintenance - Vehicles');
+INSERT INTO gifi (accno,description) VALUES ('8963', 'Repairs & Maintenance - Boats');
+INSERT INTO gifi (accno,description) VALUES ('8964', 'Repairs & Maintenance - Machinery & Equipment');
+INSERT INTO gifi (accno,description) VALUES ('9010', 'Other Repairs & Maintenance - Janitor & Yard');
+INSERT INTO gifi (accno,description) VALUES ('9011', 'Machine Shop Expense');
+INSERT INTO gifi (accno,description) VALUES ('9012', 'Road Costs');
+INSERT INTO gifi (accno,description) VALUES ('9013', 'Security');
+INSERT INTO gifi (accno,description) VALUES ('9014', 'Garbage Removal');
+INSERT INTO gifi (accno,description) VALUES ('9060', 'Salaries & Wages');
+INSERT INTO gifi (accno,description) VALUES ('9061', 'Commissions');
+INSERT INTO gifi (accno,description) VALUES ('9062', 'Crew Share');
+INSERT INTO gifi (accno,description) VALUES ('9063', 'Bonuses');
+INSERT INTO gifi (accno,description) VALUES ('9064', 'Director\'s Fees');
+INSERT INTO gifi (accno,description) VALUES ('9065', 'Management Salaries');
+INSERT INTO gifi (accno,description) VALUES ('9066', 'Employee Salaries');
+INSERT INTO gifi (accno,description) VALUES ('9110', 'Sub-Contracts');
+INSERT INTO gifi (accno,description) VALUES ('9130', 'Supplies');
+INSERT INTO gifi (accno,description) VALUES ('9131', 'Small Tools');
+INSERT INTO gifi (accno,description) VALUES ('9132', 'Shop Expense');
+INSERT INTO gifi (accno,description) VALUES ('9133', 'Uniforms');
+INSERT INTO gifi (accno,description) VALUES ('9134', 'Laundry');
+INSERT INTO gifi (accno,description) VALUES ('9135', 'Food & Catering');
+INSERT INTO gifi (accno,description) VALUES ('9136', 'Fishing Gear');
+INSERT INTO gifi (accno,description) VALUES ('9137', 'Nets & Traps');
+INSERT INTO gifi (accno,description) VALUES ('9138', 'Salt, Bait & Ice');
+INSERT INTO gifi (accno,description) VALUES ('9139', 'Camp Supplies');
+INSERT INTO gifi (accno,description) VALUES ('9150', 'Computer Related Expenses');
+INSERT INTO gifi (accno,description) VALUES ('9151', 'Upgrade');
+INSERT INTO gifi (accno,description) VALUES ('9152', 'Internet');
+INSERT INTO gifi (accno,description) VALUES ('9180', 'Property Taxes');
+INSERT INTO gifi (accno,description) VALUES ('9200', 'Travel Expenses');
+INSERT INTO gifi (accno,description) VALUES ('9201', 'Meetings & Conventions');
+INSERT INTO gifi (accno,description) VALUES ('9220', 'Utilities');
+INSERT INTO gifi (accno,description) VALUES ('9221', 'Electricity');
+INSERT INTO gifi (accno,description) VALUES ('9222', 'Water');
+INSERT INTO gifi (accno,description) VALUES ('9223', 'Heat');
+INSERT INTO gifi (accno,description) VALUES ('9224', 'Fuel Costs');
+INSERT INTO gifi (accno,description) VALUES ('9225', 'Telephone & Communications');
+INSERT INTO gifi (accno,description) VALUES ('9270', 'Other Expenses');
+INSERT INTO gifi (accno,description) VALUES ('9271', 'Cash Over/Short');
+INSERT INTO gifi (accno,description) VALUES ('9272', 'Reimbursement Of Parent Company Expense');
+INSERT INTO gifi (accno,description) VALUES ('9273', 'Selling Expenses');
+INSERT INTO gifi (accno,description) VALUES ('9274', 'Shipping & Warehouse Expenses');
+INSERT INTO gifi (accno,description) VALUES ('9275', 'Delivery, Freight & Express');
+INSERT INTO gifi (accno,description) VALUES ('9276', 'Warranty Expenses');
+INSERT INTO gifi (accno,description) VALUES ('9277', 'Royalty Expenses - Resident');
+INSERT INTO gifi (accno,description) VALUES ('9278', 'Royalty Expenses - Non-Resident');
+INSERT INTO gifi (accno,description) VALUES ('9279', 'Dumping Charges');
+INSERT INTO gifi (accno,description) VALUES ('9280', 'Land Fill Fees');
+INSERT INTO gifi (accno,description) VALUES ('9281', 'Vehicle Expenses');
+INSERT INTO gifi (accno,description) VALUES ('9282', 'Research & Development');
+INSERT INTO gifi (accno,description) VALUES ('9283', 'Withholding Taxes');
+INSERT INTO gifi (accno,description) VALUES ('9284', 'General & Administrative Expenses');
+INSERT INTO gifi (accno,description) VALUES ('9285', 'Interdivisional Expenses');
+INSERT INTO gifi (accno,description) VALUES ('9286', 'Interfund Transfer (NPO)');
+INSERT INTO gifi (accno,description) VALUES ('9367', 'Total Operating Expenses');
+INSERT INTO gifi (accno,description) VALUES ('9368', 'Total Expenses');
+INSERT INTO gifi (accno,description) VALUES ('9369', 'Net Non-Farming Income');
+INSERT INTO gifi (accno,description) VALUES ('9370', 'Grains And Oilseeds');
+INSERT INTO gifi (accno,description) VALUES ('9371', 'Wheat');
+INSERT INTO gifi (accno,description) VALUES ('9372', 'Oats');
+INSERT INTO gifi (accno,description) VALUES ('9373', 'Barley');
+INSERT INTO gifi (accno,description) VALUES ('9374', 'Mixed Grains');
+INSERT INTO gifi (accno,description) VALUES ('9375', 'Corn');
+INSERT INTO gifi (accno,description) VALUES ('9376', 'Canola');
+INSERT INTO gifi (accno,description) VALUES ('9377', 'Flaxseed');
+INSERT INTO gifi (accno,description) VALUES ('9378', 'Soya Beans');
+INSERT INTO gifi (accno,description) VALUES ('9379', 'Wheat Board Payments');
+INSERT INTO gifi (accno,description) VALUES ('9420', 'Other Crop Revenues');
+INSERT INTO gifi (accno,description) VALUES ('9321', 'Fruit');
+INSERT INTO gifi (accno,description) VALUES ('9322', 'Potatoes');
+INSERT INTO gifi (accno,description) VALUES ('9323', 'Vegetables');
+INSERT INTO gifi (accno,description) VALUES ('9324', 'Tobacco');
+INSERT INTO gifi (accno,description) VALUES ('9325', 'Greenhouse & Nursery Products');
+INSERT INTO gifi (accno,description) VALUES ('9326', 'Forage Crops');
+INSERT INTO gifi (accno,description) VALUES ('9470', 'Livestock & Animal Products Revenue');
+INSERT INTO gifi (accno,description) VALUES ('9471', 'Cattle');
+INSERT INTO gifi (accno,description) VALUES ('9472', 'Swine');
+INSERT INTO gifi (accno,description) VALUES ('9473', 'Poultry');
+INSERT INTO gifi (accno,description) VALUES ('9474', 'Sheep & Lambs');
+INSERT INTO gifi (accno,description) VALUES ('9475', 'Pregnant Mare Urine (PMU)');
+INSERT INTO gifi (accno,description) VALUES ('9476', 'Milk & Cream - Excluding Dairy Subsidies');
+INSERT INTO gifi (accno,description) VALUES ('9477', 'Eggs For Consumption');
+INSERT INTO gifi (accno,description) VALUES ('9478', 'Hatching Eggs');
+INSERT INTO gifi (accno,description) VALUES ('9479', 'Aquaculture');
+INSERT INTO gifi (accno,description) VALUES ('9480', 'Horses - Breeding & Meat');
+INSERT INTO gifi (accno,description) VALUES ('9520', 'Other Commodities');
+INSERT INTO gifi (accno,description) VALUES ('9521', 'Maple Products');
+INSERT INTO gifi (accno,description) VALUES ('9522', 'Artificial Insemination (AI)');
+INSERT INTO gifi (accno,description) VALUES ('9523', 'Semen Production');
+INSERT INTO gifi (accno,description) VALUES ('9524', 'Embryo Production');
+INSERT INTO gifi (accno,description) VALUES ('9540', 'Program Payment Revenues');
+INSERT INTO gifi (accno,description) VALUES ('9541', 'Dairy Subsidies');
+INSERT INTO gifi (accno,description) VALUES ('9542', 'Crop Insurance');
+INSERT INTO gifi (accno,description) VALUES ('9543', 'NISA Payments');
+INSERT INTO gifi (accno,description) VALUES ('9544', 'Disaster Assistance Program Payments');
+INSERT INTO gifi (accno,description) VALUES ('9570', 'Rebates');
+INSERT INTO gifi (accno,description) VALUES ('9571', 'Rebates - Fuel');
+INSERT INTO gifi (accno,description) VALUES ('9572', 'Rebates - Interest');
+INSERT INTO gifi (accno,description) VALUES ('9573', 'Rebates - Property Taxes');
+INSERT INTO gifi (accno,description) VALUES ('9574', 'Resales, Rebates, GST For NISA Eligible Expenses');
+INSERT INTO gifi (accno,description) VALUES ('9575', 'Rebates, GST For NISA Non-Eligible Expenses');
+INSERT INTO gifi (accno,description) VALUES ('9600', 'Other Farm Revenues/Losses');
+INSERT INTO gifi (accno,description) VALUES ('9601', 'Custom Or Contract Work');
+INSERT INTO gifi (accno,description) VALUES ('9602', 'Wood Sales');
+INSERT INTO gifi (accno,description) VALUES ('9603', 'Horse Racing');
+INSERT INTO gifi (accno,description) VALUES ('9604', 'Insurance Proceeds');
+INSERT INTO gifi (accno,description) VALUES ('9605', 'Patronage Dividends');
+INSERT INTO gifi (accno,description) VALUES ('9606', 'Rental Income');
+INSERT INTO gifi (accno,description) VALUES ('9607', 'Interest Income');
+INSERT INTO gifi (accno,description) VALUES ('9608', 'Dividend Income');
+INSERT INTO gifi (accno,description) VALUES ('9609', 'Gains/Losses On Disposal Of Assets');
+INSERT INTO gifi (accno,description) VALUES ('9610', 'Gravel');
+INSERT INTO gifi (accno,description) VALUES ('9611', 'Trucking');
+INSERT INTO gifi (accno,description) VALUES ('9612', 'Resale Of Commodities Purchased');
+INSERT INTO gifi (accno,description) VALUES ('9613', 'Leases');
+INSERT INTO gifi (accno,description) VALUES ('9614', 'Machine Rentals');
+INSERT INTO gifi (accno,description) VALUES ('9615', 'Farming Partnership Income/Loss');
+INSERT INTO gifi (accno,description) VALUES ('9616', 'Farming Joint Venture Income/Loss');
+INSERT INTO gifi (accno,description) VALUES ('9650', 'Non-Farming Income');
+INSERT INTO gifi (accno,description) VALUES ('9659', 'Total Farm Revenue');
+INSERT INTO gifi (accno,description) VALUES ('9660', 'Crop Expenses');
+INSERT INTO gifi (accno,description) VALUES ('9661', 'Containers, Twine And Baling Wire');
+INSERT INTO gifi (accno,description) VALUES ('9662', 'Fertilizers And Lime');
+INSERT INTO gifi (accno,description) VALUES ('9663', 'Pesticides');
+INSERT INTO gifi (accno,description) VALUES ('9664', 'Seeds & Plants');
+INSERT INTO gifi (accno,description) VALUES ('9665', 'Insurance Premiums (Crop) NISA ACS');
+INSERT INTO gifi (accno,description) VALUES ('9710', 'Livestock Expenses');
+INSERT INTO gifi (accno,description) VALUES ('9711', 'Feed, Supplements, Straw & Bedding');
+INSERT INTO gifi (accno,description) VALUES ('9712', 'Livestock Purchases');
+INSERT INTO gifi (accno,description) VALUES ('9713', 'Veterinary Fees, Medicine & Breeding Fees');
+INSERT INTO gifi (accno,description) VALUES ('9760', 'Machinery Expenses');
+INSERT INTO gifi (accno,description) VALUES ('9761', 'Machinery Insurance');
+INSERT INTO gifi (accno,description) VALUES ('9762', 'Machinery Licences');
+INSERT INTO gifi (accno,description) VALUES ('9763', 'Machinery Repairs');
+INSERT INTO gifi (accno,description) VALUES ('9764', 'Machinery Fuel');
+INSERT INTO gifi (accno,description) VALUES ('9765', 'Machinery Lease');
+INSERT INTO gifi (accno,description) VALUES ('9790', 'General Farm Expenses');
+INSERT INTO gifi (accno,description) VALUES ('9791', 'Amortization Of Tangible Assets');
+INSERT INTO gifi (accno,description) VALUES ('9792', 'Advertising, Marketing Costs & Promotion');
+INSERT INTO gifi (accno,description) VALUES ('9793', 'Bad Debt');
+INSERT INTO gifi (accno,description) VALUES ('9794', 'Benefits Related To Employee Salaries');
+INSERT INTO gifi (accno,description) VALUES ('9795', 'Building Repairs & Maintenance');
+INSERT INTO gifi (accno,description) VALUES ('9796', 'Clearing, Levelling & Draining Land');
+INSERT INTO gifi (accno,description) VALUES ('9797', 'Crop Insurance, GRIP and Stabilization Premiums');
+INSERT INTO gifi (accno,description) VALUES ('9798', 'Custom Or Contract Work');
+INSERT INTO gifi (accno,description) VALUES ('9799', 'Electricity');
+INSERT INTO gifi (accno,description) VALUES ('9800', 'Fence Repairs & Maintenance');
+INSERT INTO gifi (accno,description) VALUES ('9801', 'Freight & Trucking');
+INSERT INTO gifi (accno,description) VALUES ('9802', 'Heating Fuel & Curing Fuel');
+INSERT INTO gifi (accno,description) VALUES ('9803', 'Insurance Program Overpayment Recapture');
+INSERT INTO gifi (accno,description) VALUES ('9804', 'Other Insurance Premiums');
+INSERT INTO gifi (accno,description) VALUES ('9805', 'Interest & Bank Charges');
+INSERT INTO gifi (accno,description) VALUES ('9806', 'Marketing Board Fees');
+INSERT INTO gifi (accno,description) VALUES ('9807', 'Membership/Subscription Fees');
+INSERT INTO gifi (accno,description) VALUES ('9808', 'Office Expenses');
+INSERT INTO gifi (accno,description) VALUES ('9809', 'Professional Fees');
+INSERT INTO gifi (accno,description) VALUES ('9810', 'Property Taxes');
+INSERT INTO gifi (accno,description) VALUES ('9811', 'Rent - Land & Buildings');
+INSERT INTO gifi (accno,description) VALUES ('9812', 'Rent - Machinery');
+INSERT INTO gifi (accno,description) VALUES ('9813', 'Other Rental Expenses');
+INSERT INTO gifi (accno,description) VALUES ('9814', 'Salaries & Wages');
+INSERT INTO gifi (accno,description) VALUES ('9815', 'Salaries & Wages Other Than Spouse Or Dependants');
+INSERT INTO gifi (accno,description) VALUES ('9816', 'Salaries & Wages Paid To Dependants');
+INSERT INTO gifi (accno,description) VALUES ('9817', 'Selling Costs');
+INSERT INTO gifi (accno,description) VALUES ('9818', 'Supplies');
+INSERT INTO gifi (accno,description) VALUES ('9819', 'Motor Vehicle Expenses');
+INSERT INTO gifi (accno,description) VALUES ('9820', 'Small Tools');
+INSERT INTO gifi (accno,description) VALUES ('9821', 'Soil Testing');
+INSERT INTO gifi (accno,description) VALUES ('9822', 'Storage/Drying');
+INSERT INTO gifi (accno,description) VALUES ('9823', 'Licences/Permits');
+INSERT INTO gifi (accno,description) VALUES ('9824', 'Telephone');
+INSERT INTO gifi (accno,description) VALUES ('9825', 'Quota Rental');
+INSERT INTO gifi (accno,description) VALUES ('9826', 'Gravel');
+INSERT INTO gifi (accno,description) VALUES ('9827', 'Purchases Of Commodities Resold');
+INSERT INTO gifi (accno,description) VALUES ('9828', 'Salaries & Wages Paid To Spouse');
+INSERT INTO gifi (accno,description) VALUES ('9829', 'Motor Vehicle Interest And Leasing Costs');
+INSERT INTO gifi (accno,description) VALUES ('9830', 'Prepared Feed');
+INSERT INTO gifi (accno,description) VALUES ('9831', 'Custom Feed');
+INSERT INTO gifi (accno,description) VALUES ('9832', 'Amortization Of Intangible Assets');
+INSERT INTO gifi (accno,description) VALUES ('9833', 'Amortization Of Milk Quota');
+INSERT INTO gifi (accno,description) VALUES ('9834', 'Travel Expenses');
+INSERT INTO gifi (accno,description) VALUES ('9835', 'Capital/Business Taxes');
+INSERT INTO gifi (accno,description) VALUES ('9850', 'Non-Farming Expenses');
+INSERT INTO gifi (accno,description) VALUES ('9870', 'Net Inventory Adjustment');
+INSERT INTO gifi (accno,description) VALUES ('9898', 'Total Farm Expenses');
+INSERT INTO gifi (accno,description) VALUES ('9899', 'Net Farm Income');
+INSERT INTO gifi (accno,description) VALUES ('9970', 'Net Income/Loss Before Taxes And Extraordinary Items');
+INSERT INTO gifi (accno,description) VALUES ('9975', 'Extraordinary Items');
+INSERT INTO gifi (accno,description) VALUES ('9976', 'Legal Settlements');
+INSERT INTO gifi (accno,description) VALUES ('9980', 'Unrealized Gains/Losses');
+INSERT INTO gifi (accno,description) VALUES ('9985', 'Unusual Items');
+INSERT INTO gifi (accno,description) VALUES ('9990', 'Current Income Taxes');
+INSERT INTO gifi (accno,description) VALUES ('9995', 'Deferred Income Tax Provision');
+INSERT INTO gifi (accno,description) VALUES ('9999', 'Net Income/Loss After Taxes And Extraordinary Items');
+-- This item represents the net amount of:
+-- Item 9970 - Net income/loss before taxes and extraordinary items minus
+-- Item 9975 - Extraordinary item(s) minus
+-- Item 9976 - Legal settlements plus
+-- Item 9980 - Unrealized gains/losses minus
+-- Item 9985 - Unusual items minus
+-- Item 9990 - Current income taxes minus
+-- Item 9995 - Deferred income tax provision
+-- and must be reported.
+-- Any amount reported in this item should be equal to the amount reported at Item 3680 - Net income/loss,
+-- in the retained earnings section.
+--
diff --git a/sql/Canada-English_General-chart.sql b/sql/Canada-English_General-chart.sql
new file mode 100755
index 00000000..6b3f35a1
--- /dev/null
+++ b/sql/Canada-English_General-chart.sql
@@ -0,0 +1,70 @@
+-- General Canadian COA
+-- sample only
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1000','CURRENT ASSETS','H','1000','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1060','Chequing Account','A','1002','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1065','Petty Cash','A','1001','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1200','Accounts Receivables','A','1060','A','AR');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1205','Allowance for doubtful accounts','A','1063','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1500','INVENTORY ASSETS','H','1120','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1520','Inventory / General','A','1122','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1530','Inventory / Aftermarket Parts','A','1122','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1540','Inventory / Raw Materials','A','1122','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1800','CAPITAL ASSETS','H','1900','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1820','Office Furniture & Equipment','A','1787','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link,contra) values ('1825','Accum. Amort. -Furn. & Equip.','A','1788','A','','1');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1840','Vehicle','A','1742','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link,contra) values ('1845','Accum. Amort. -Vehicle','A','1743','A','','1');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2000','CURRENT LIABILITIES','H','2620','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2100','Accounts Payable','A','2621','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2160','Federal Taxes Payable','A','2683','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2170','Provincial Taxes Payable','A','2684','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2310','GST','A','2685','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2320','PST','A','2686','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2380','Vacation Pay Payable','A','2624','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2390','WCB Payable','A','2627','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2400','PAYROLL DEDUCTIONS','H','2620','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2410','EI Payable','A','2627','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2420','CPP Payable','A','2627','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2450','Income Tax Payable','A','2628','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2600','LONG TERM LIABILITIES','H','3140','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2620','Bank Loans','A','2701','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2680','Loans from Shareholders','A','2780','L','AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3300','SHARE CAPITAL','H','3500','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3350','Common Shares','A','3500','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4000','SALES REVENUE','H','8000','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4020','General Sales','A','8000','I','AR_amount:IC_sale:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4030','Aftermarket Parts','A','8000','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4400','OTHER REVENUE','H','8090','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4430','Shipping & Handling','A','8457','I','IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4440','Interest','A','8090','I','IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4450','Foreign Exchange Gain / (Loss)','A','8231','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5000','COST OF GOODS SOLD','H','8515','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5010','Purchases','A','8320','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5050','Aftermarket Parts','A','8320','E','AP_amount:IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5100','Freight','A','8457','E','AP_amount:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5400','PAYROLL EXPENSES','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5410','Wages & Salaries','A','9060','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5420','EI Expense','A','8622','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5430','CPP Expense','A','8622','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5440','WCB Expense','A','8622','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5600','GENERAL & ADMINISTRATIVE EXPENSES','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5610','Accounting & Legal','A','8862','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5615','Advertising & Promotions','A','8520','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5620','Bad Debts','A','8590','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5660','Amortization Expense','A','8670','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5680','Income Taxes','A','9990','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5685','Insurance','A','9804','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5690','Interest & Bank Charges','A','9805','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5700','Office Supplies','A','8811','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5760','Rent','A','9811','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5765','Repair & Maintenance','A','8964','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5780','Telephone','A','9225','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5785','Travel & Entertainment','A','8523','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5790','Utilities','A','8812','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5800','Licenses','A','8760','E','AP_amount');
+--
+insert into tax (chart_id,rate) values ((select id from chart where accno = '2310'),0.07);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '2320'),0.08);
+--
+update defaults set inventory_accno_id = (select id from chart where accno = '1520'), income_accno_id = (select id from chart where accno = '4020'), expense_accno_id = (select id from chart where accno = '5010'), fxgain_accno_id = (select id from chart where accno = '4450'), fxloss_accno_id = (select id from chart where accno = '4450'), curr = 'CAD:USD:EUR', weightunit = 'kg';
+--
diff --git a/sql/Canada-French-gifi.sql b/sql/Canada-French-gifi.sql
new file mode 100755
index 00000000..f6a8d455
--- /dev/null
+++ b/sql/Canada-French-gifi.sql
@@ -0,0 +1,719 @@
+-- French Canadian GIFI
+-- Céline des Ligneris
+-- checked DS. March 3, 2004
+--
+INSERT INTO gifi (accno,description) VALUES ('1000','Encaisse et dépôts');
+INSERT INTO gifi (accno,description) VALUES ('1001','Encaisse');
+INSERT INTO gifi (accno,description) VALUES ('1002','Dépôts dans des banques et des institutions canadiennes ­ monnaie canadienne');
+INSERT INTO gifi (accno,description) VALUES ('1003','Dépôts dans des banques et des institutions canadiennes ­ devises étrangères');
+INSERT INTO gifi (accno,description) VALUES ('1004','Dépôts dans des banques étrangères ­ monnaie canadienne');
+INSERT INTO gifi (accno,description) VALUES ('1005','Dépôts dans des banques étrangères ­ devises étrangères');
+INSERT INTO gifi (accno,description) VALUES ('1006','Caisse de crédit ­ dépôt central');
+INSERT INTO gifi (accno,description) VALUES ('1007','Autres éléments de l\'actif assimilables à de l\'encaisse');
+INSERT INTO gifi (accno,description) VALUES ('1060','Comptes clients');
+INSERT INTO gifi (accno,description) VALUES ('1061','Provision pour créances douteuses');
+INSERT INTO gifi (accno,description) VALUES ('1062','Comptes clients commerciaux');
+INSERT INTO gifi (accno,description) VALUES ('1063','Provision pour mauvaises créances ­ comptes clients commerciaux');
+INSERT INTO gifi (accno,description) VALUES ('1064','Comptes clients de personnes apparentées');
+INSERT INTO gifi (accno,description) VALUES ('1065','Provision pour mauvaises créances ­ personnes apparentées');
+INSERT INTO gifi (accno,description) VALUES ('1066','Impôts à recevoir');
+INSERT INTO gifi (accno,description) VALUES ('1067','Intérêts à recevoir');
+INSERT INTO gifi (accno,description) VALUES ('1068','Retenues de garantie à recevoir');
+INSERT INTO gifi (accno,description) VALUES ('1069','Créances au titre de baux');
+INSERT INTO gifi (accno,description) VALUES ('1070','Provision pour éléments douteux contenus dans certaines créances au titre de baux');
+INSERT INTO gifi (accno,description) VALUES ('1071','Comptes à recevoir d\'employés');
+INSERT INTO gifi (accno,description) VALUES ('1072','Provision pour mauvaises créances ­ employés');
+INSERT INTO gifi (accno,description) VALUES ('1073','Montants à recevoir de membres d\'OSBL');
+INSERT INTO gifi (accno,description) VALUES ('1120','Stocks');
+INSERT INTO gifi (accno,description) VALUES ('1121','Stock de marchandises à vendre');
+INSERT INTO gifi (accno,description) VALUES ('1122','Pièces et fournitures en stock');
+INSERT INTO gifi (accno,description) VALUES ('1123','Biens immobiliers figurant dans un inventaire');
+INSERT INTO gifi (accno,description) VALUES ('1124','Stocks d\'agrégats');
+INSERT INTO gifi (accno,description) VALUES ('1125','Travaux en cours');
+INSERT INTO gifi (accno,description) VALUES ('1126','Matières premières');
+INSERT INTO gifi (accno,description) VALUES ('1127','Titres figurant dans un inventaire');
+INSERT INTO gifi (accno,description) VALUES ('1180','Placements à court terme');
+INSERT INTO gifi (accno,description) VALUES ('1181','Dépôts à terme canadiens');
+INSERT INTO gifi (accno,description) VALUES ('1182','Actions de sociétés canadiennes');
+INSERT INTO gifi (accno,description) VALUES ('1183','Obligations canadiennes');
+INSERT INTO gifi (accno,description) VALUES ('1184','Bonds du Trésor canadien');
+INSERT INTO gifi (accno,description) VALUES ('1185','Titres acquis avec entente de rachat');
+INSERT INTO gifi (accno,description) VALUES ('1186','Autres placements canadiens à court terme');
+INSERT INTO gifi (accno,description) VALUES ('1187','Placements étrangers à court terme');
+INSERT INTO gifi (accno,description) VALUES ('1240','Prêts et effets à recevoir');
+INSERT INTO gifi (accno,description) VALUES ('1241','Prêts remboursables sur demande');
+INSERT INTO gifi (accno,description) VALUES ('1242','Autres prêts non remboursés');
+INSERT INTO gifi (accno,description) VALUES ('1243','Effets à recevoir');
+INSERT INTO gifi (accno,description) VALUES ('1244','Hypothèques à recevoir');
+INSERT INTO gifi (accno,description) VALUES ('1300','Sommes exigibles d\'actionnaire(s)/d\'administrateur(s)');
+INSERT INTO gifi (accno,description) VALUES ('1301','Sommes exigibles d\'actionnaire(s) (particuliers)');
+INSERT INTO gifi (accno,description) VALUES ('1302','Sommes exigibles d\'actionnaire(s) (sociétés)');
+INSERT INTO gifi (accno,description) VALUES ('1303','Sommes exigibles d\'administrateur(s)');
+INSERT INTO gifi (accno,description) VALUES ('1360','Placements dans une(des) coentreprise(s)/ société(s) de personnes');
+INSERT INTO gifi (accno,description) VALUES ('1380','Sommes exigibles de coentreprise(s)/société(s) de personnes');
+INSERT INTO gifi (accno,description) VALUES ('1400','Sommes exigibles des personnes apparentées/placements dans des personnes apparentées');
+INSERT INTO gifi (accno,description) VALUES ('1401','Billets à demande de personnes apparentées');
+INSERT INTO gifi (accno,description) VALUES ('1402','Intérêts à recevoir de personnes apparentées');
+INSERT INTO gifi (accno,description) VALUES ('1403','Prêts/avances à des personnes apparentées');
+INSERT INTO gifi (accno,description) VALUES ('1460','Dettes des clients pour acceptation');
+INSERT INTO gifi (accno,description) VALUES ('1480','Autres éléments d\'actif à court terme');
+INSERT INTO gifi (accno,description) VALUES ('1481','Impôts sur le revenu reportés');
+INSERT INTO gifi (accno,description) VALUES ('1482','Revenus de placements accumulés');
+INSERT INTO gifi (accno,description) VALUES ('1483','Impôts recouvrables/remboursables');
+INSERT INTO gifi (accno,description) VALUES ('1484','Dépenses payées d\'avance');
+INSERT INTO gifi (accno,description) VALUES ('1485','Avances de forage');
+INSERT INTO gifi (accno,description) VALUES ('1486','Cautionnement/dépôts sur soumissions');
+INSERT INTO gifi (accno,description) VALUES ('1599','Total de l\'actif à court terme');
+INSERT INTO gifi (accno,description) VALUES ('1600','Terrains');
+INSERT INTO gifi (accno,description) VALUES ('1601','Frais d\'amélioration des terrains');
+INSERT INTO gifi (accno,description) VALUES ('1602','Amortissement cumulé de l\'amélioration des terrains');
+INSERT INTO gifi (accno,description) VALUES ('1620','Biens épuisables');
+INSERT INTO gifi (accno,description) VALUES ('1621','Amortissement cumulé des biens épuisables');
+INSERT INTO gifi (accno,description) VALUES ('1622','Biens en ressources pétrolifères et en gaz naturel');
+INSERT INTO gifi (accno,description) VALUES ('1623','Amortissement cumulé des biens en ressources');
+INSERT INTO gifi (accno,description) VALUES ('1624','Biens miniers');
+INSERT INTO gifi (accno,description) VALUES ('1625','Amortissement cumulé des biens miniers');
+INSERT INTO gifi (accno,description) VALUES ('1626','Frais d\'exploration et d\'exploitation reportés');
+INSERT INTO gifi (accno,description) VALUES ('1627','Amortissement cumulé des frais d\'exploration et d\'exploitation reportés');
+INSERT INTO gifi (accno,description) VALUES ('1628','Carrières');
+INSERT INTO gifi (accno,description) VALUES ('1629','Amortissement cumulé des carrières');
+INSERT INTO gifi (accno,description) VALUES ('1630','Carrières de gravier');
+INSERT INTO gifi (accno,description) VALUES ('1631','Amortissement cumulé des carrières de gravier');
+INSERT INTO gifi (accno,description) VALUES ('1632','Concessions forestières');
+INSERT INTO gifi (accno,description) VALUES ('1633','Amortissement cumulé des concessions forestières');
+INSERT INTO gifi (accno,description) VALUES ('1680','Bâtiments');
+INSERT INTO gifi (accno,description) VALUES ('1681','Amortissement cumulé des bâtiments');
+INSERT INTO gifi (accno,description) VALUES ('1682','Installations de fabrication et de traitement');
+INSERT INTO gifi (accno,description) VALUES ('1683','Amortissement cumulé des installations de fabrication et de traitement');
+INSERT INTO gifi (accno,description) VALUES ('1684','Bâtiments en construction');
+INSERT INTO gifi (accno,description) VALUES ('1740','Machines, matériel, meubles et accessoires');
+INSERT INTO gifi (accno,description) VALUES ('1741','Amortissement cumulé des machines, du matériel, des meubles et des accessoires');
+INSERT INTO gifi (accno,description) VALUES ('1742','Véhicules automobiles');
+INSERT INTO gifi (accno,description) VALUES ('1743','Amortissement cumulé des véhicules automobiles');
+INSERT INTO gifi (accno,description) VALUES ('1744','Outils et matrices');
+INSERT INTO gifi (accno,description) VALUES ('1745','Amortissement cumulé sur les outils et les matrices');
+INSERT INTO gifi (accno,description) VALUES ('1746','Matériel de construction et d\'excavation');
+INSERT INTO gifi (accno,description) VALUES ('1747','Amortissement cumulé du matériel de construction et d\'excavation');
+INSERT INTO gifi (accno,description) VALUES ('1748','Matériel d\'exploitation forestière');
+INSERT INTO gifi (accno,description) VALUES ('1749','Amortissement cumulé du matériel d\'exploitation forestière');
+INSERT INTO gifi (accno,description) VALUES ('1750','Filets et matériel de pêche');
+INSERT INTO gifi (accno,description) VALUES ('1751','Amortissement cumulé des filets et du matériel de pêche');
+INSERT INTO gifi (accno,description) VALUES ('1752','Matériel d\'exploitation minière');
+INSERT INTO gifi (accno,description) VALUES ('1753','Amortissement cumulé du matériel d\'exploitation minière');
+INSERT INTO gifi (accno,description) VALUES ('1754','Réseaux pétroliers et gaziers');
+INSERT INTO gifi (accno,description) VALUES ('1755','Amortissement cumulé des réseaux pétroliers et gaziers');
+INSERT INTO gifi (accno,description) VALUES ('1756','Matériel de production pour les industries de ressources naturelles');
+INSERT INTO gifi (accno,description) VALUES ('1757','Amortissement cumulé du matériel de production de ressources naturelles');
+INSERT INTO gifi (accno,description) VALUES ('1758','Matériel de production autre que pour les industries de ressources naturelles');
+INSERT INTO gifi (accno,description) VALUES ('1759','Amortissement cumulé du matériel de production autre que pour les industries des ressources naturelles');
+INSERT INTO gifi (accno,description) VALUES ('1760','Matériel d\'exploration');
+INSERT INTO gifi (accno,description) VALUES ('1761','Amortissement cumulé du matériel d\'exploration');
+INSERT INTO gifi (accno,description) VALUES ('1762','Matériel d\'expédition');
+INSERT INTO gifi (accno,description) VALUES ('1763','Amortissement cumulé du matériel d\'expédition');
+INSERT INTO gifi (accno,description) VALUES ('1764','Navires et bateaux');
+INSERT INTO gifi (accno,description) VALUES ('1765','Amortissement cumulé des navires et des bateaux');
+INSERT INTO gifi (accno,description) VALUES ('1766','Aéronefs');
+INSERT INTO gifi (accno,description) VALUES ('1767','Amortissement cumulé des aéronefs');
+INSERT INTO gifi (accno,description) VALUES ('1768','Panneaux indicateurs');
+INSERT INTO gifi (accno,description) VALUES ('1769','Amortissement cumulé des panneaux indicateurs');
+INSERT INTO gifi (accno,description) VALUES ('1770','Petits outils');
+INSERT INTO gifi (accno,description) VALUES ('1771','Amortissement cumulé des petits outils');
+INSERT INTO gifi (accno,description) VALUES ('1772','Matériel de radio et de communication');
+INSERT INTO gifi (accno,description) VALUES ('1773','Amortissement cumulé du matériel de radio et de communication');
+INSERT INTO gifi (accno,description) VALUES ('1774','Matériel informatique/logiciels');
+INSERT INTO gifi (accno,description) VALUES ('1775','Amortissement cumulé du matériel informatique / logiciels');
+INSERT INTO gifi (accno,description) VALUES ('1776','Instruments de musique');
+INSERT INTO gifi (accno,description) VALUES ('1777','Amortissement cumulé des instruments de musique');
+INSERT INTO gifi (accno,description) VALUES ('1778','Satellites');
+INSERT INTO gifi (accno,description) VALUES ('1779','Amortissement cumulé des satellites');
+INSERT INTO gifi (accno,description) VALUES ('1780','Stations terrestres');
+INSERT INTO gifi (accno,description) VALUES ('1781','Amortissement cumulé des stations terrestres');
+INSERT INTO gifi (accno,description) VALUES ('1782','Machines et matériel en cours de fabrication');
+INSERT INTO gifi (accno,description) VALUES ('1783','Matériel de transport');
+INSERT INTO gifi (accno,description) VALUES ('1784','Amortissement cumulé du matériel de transport');
+INSERT INTO gifi (accno,description) VALUES ('1785','Autres machines et matériel');
+INSERT INTO gifi (accno,description) VALUES ('1786','Amortissement cumulé des autres machines et d\'autre matériel');
+INSERT INTO gifi (accno,description) VALUES ('1787','Meubles et accessoires');
+INSERT INTO gifi (accno,description) VALUES ('1788','Amortissement cumulé des meubles et des accessoires');
+INSERT INTO gifi (accno,description) VALUES ('1900','Autres immobilisations');
+INSERT INTO gifi (accno,description) VALUES ('1901','Amortissement cumulé des autres immobilisations');
+INSERT INTO gifi (accno,description) VALUES ('1902','Chemins d\'exploitation forestière');
+INSERT INTO gifi (accno,description) VALUES ('1903','Amortissement cumulé des chemins d\'exploitation forestière');
+INSERT INTO gifi (accno,description) VALUES ('1904','Aires asphaltées et parcs de stationnement');
+INSERT INTO gifi (accno,description) VALUES ('1905','Amortissement des aires asphaltées et des parcs de stationnement');
+INSERT INTO gifi (accno,description) VALUES ('1906','Quais');
+INSERT INTO gifi (accno,description) VALUES ('1907','Amortissement cumulé des quais');
+INSERT INTO gifi (accno,description) VALUES ('1908','Clôtures');
+INSERT INTO gifi (accno,description) VALUES ('1909','Amortissement cumulé des clôtures');
+INSERT INTO gifi (accno,description) VALUES ('1910','Contrats de location ­ acquisition (bâtiments)');
+INSERT INTO gifi (accno,description) VALUES ('1911','Amortissement cumulé des contrats de location - acquisition (bâtiments)');
+INSERT INTO gifi (accno,description) VALUES ('1912','Contrats de location ­ acquisition (matériel)');
+INSERT INTO gifi (accno,description) VALUES ('1913','Amortissement cumulé des contrats de location ­ acquisition (matériel)');
+INSERT INTO gifi (accno,description) VALUES ('1914','Contrats de location ­ acquisition (véhicules)');
+INSERT INTO gifi (accno,description) VALUES ('1915','Amortissement cumulé des contrats de location ­ acquisition (véhicules)');
+INSERT INTO gifi (accno,description) VALUES ('1916','Contrats de location ­ acquisition (autres)panneaux');
+INSERT INTO gifi (accno,description) VALUES ('1917','Amortissement cumulé des contrats de location ­ acquisition (autres)');
+INSERT INTO gifi (accno,description) VALUES ('1918','Améliorations locatives');
+INSERT INTO gifi (accno,description) VALUES ('1919','Amortissement cumulé des améliorations locatives');
+INSERT INTO gifi (accno,description) VALUES ('1920','Autres immobilisations en construction');
+INSERT INTO gifi (accno,description) VALUES ('1921','Aires de campings');
+INSERT INTO gifi (accno,description) VALUES ('1922','Amortissement cumulé des aires de campings');
+INSERT INTO gifi (accno,description) VALUES ('2008','Total des immobilisations');
+INSERT INTO gifi (accno,description) VALUES ('2009','Total de l\'amortissement cumulé des immobilisations');
+INSERT INTO gifi (accno,description) VALUES ('2010','Actif incorporel');
+INSERT INTO gifi (accno,description) VALUES ('2011','Amortissement cumulé de l\'actif incorporel');
+INSERT INTO gifi (accno,description) VALUES ('2012','Achalandage');
+INSERT INTO gifi (accno,description) VALUES ('2013','Amortissement cumulé de l\'achalandage');
+INSERT INTO gifi (accno,description) VALUES ('2014','Contingents');
+INSERT INTO gifi (accno,description) VALUES ('2015','Amortissement cumulé des contingents');
+INSERT INTO gifi (accno,description) VALUES ('2016','Permis');
+INSERT INTO gifi (accno,description) VALUES ('2017','Amortissement cumulé des permis');
+INSERT INTO gifi (accno,description) VALUES ('2018','Frais de constitution en société');
+INSERT INTO gifi (accno,description) VALUES ('2019','Amortissement cumulé des frais de constitution en société');
+INSERT INTO gifi (accno,description) VALUES ('2020','Marques de commerce et brevets');
+INSERT INTO gifi (accno,description) VALUES ('2021','Amortissement cumulé des marques de commerce et des brevets');
+INSERT INTO gifi (accno,description) VALUES ('2022','Listes de clients');
+INSERT INTO gifi (accno,description) VALUES ('2023','Amortissement cumulé des listes de clients');
+INSERT INTO gifi (accno,description) VALUES ('2024','Droits');
+INSERT INTO gifi (accno,description) VALUES ('2025','Amortissement cumulé des droits');
+INSERT INTO gifi (accno,description) VALUES ('2026','Recherche et développement');
+INSERT INTO gifi (accno,description) VALUES ('2027','Amortissement cumulé de la recherche et du développement');
+INSERT INTO gifi (accno,description) VALUES ('2070','Droits relatifs à des ressources');
+INSERT INTO gifi (accno,description) VALUES ('2071','Amortissement cumulé des droits relatifs à des ressources');
+INSERT INTO gifi (accno,description) VALUES ('2072','Droits de coupe');
+INSERT INTO gifi (accno,description) VALUES ('2073','Amortissement cumulé des droits de coupe');
+INSERT INTO gifi (accno,description) VALUES ('2074','Droits miniers');
+INSERT INTO gifi (accno,description) VALUES ('2075','Amortissement cumulé des droits miniers');
+INSERT INTO gifi (accno,description) VALUES ('2076','Droits pétroliers et gaziers');
+INSERT INTO gifi (accno,description) VALUES ('2077','Amortissement cumulé des droits pétroliers et gaziers');
+INSERT INTO gifi (accno,description) VALUES ('2178','Total de l\'actif incorporel');
+INSERT INTO gifi (accno,description) VALUES ('2179','Total de l\'amortissement cumulé de l\'actif incorporel');
+INSERT INTO gifi (accno,description) VALUES ('2180','Sommes exigibles d\'actionnaire(s)/ d\'administrateur(s)');
+INSERT INTO gifi (accno,description) VALUES ('2181','Sommes exigibles d\'actionnaire(s) (particuliers)');
+INSERT INTO gifi (accno,description) VALUES ('2182','Sommes exigibles d\'actionnaire(s) (sociétés)');
+INSERT INTO gifi (accno,description) VALUES ('2183','Sommes exigibles d\'administrateur(s)');
+INSERT INTO gifi (accno,description) VALUES ('2190','Sommes exigibles des membres');
+INSERT INTO gifi (accno,description) VALUES ('2200','Placements dans une(des) coentreprise(s)/société(s) de personnes');
+INSERT INTO gifi (accno,description) VALUES ('2220','Sommes exigibles de coentreprise(s)/société(s)de personnes');
+INSERT INTO gifi (accno,description) VALUES ('2240','Sommes exigibles des personnes apparentées/');
+INSERT INTO gifi (accno,description) VALUES ('2241','Sommes exigibles de/placements dans des personnes canadiennes apparentées');
+INSERT INTO gifi (accno,description) VALUES ('2242','Actions dans des sociétés canadiennes apparentées');
+INSERT INTO gifi (accno,description) VALUES ('2243','Prêts/avances à des sociétés canadiennes apparentées');
+INSERT INTO gifi (accno,description) VALUES ('2244','Placements dans des sociétés canadiennes apparentées à la valeur d\'acquisition');
+INSERT INTO gifi (accno,description) VALUES ('2245','Placements dans des sociétés canadiennes apparentées à la valeur de consolidation');
+INSERT INTO gifi (accno,description) VALUES ('2246','Sommes exigibles de/placements dans des parties étrangères apparentées');
+INSERT INTO gifi (accno,description) VALUES ('2247','Actions dans des sociétés étrangères apparentées');
+INSERT INTO gifi (accno,description) VALUES ('2248','Prêts/avances à des sociétés étrangères apparentées');
+INSERT INTO gifi (accno,description) VALUES ('2249','Placements dans des sociétés étrangères apparentées à la valeur d\'acquisition');
+INSERT INTO gifi (accno,description) VALUES ('2250','Placements dans des sociétés étrangères apparentées à la valeur de consolidation');
+INSERT INTO gifi (accno,description) VALUES ('2280','Placements dans des locations en partenariat');
+INSERT INTO gifi (accno,description) VALUES ('2300','Placements à long terme');
+INSERT INTO gifi (accno,description) VALUES ('2301','Actions dans des sociétés étrangères');
+INSERT INTO gifi (accno,description) VALUES ('2302','Autres genres de placements à l\'étranger');
+INSERT INTO gifi (accno,description) VALUES ('2303','Actions dans des sociétés canadiennes');
+INSERT INTO gifi (accno,description) VALUES ('2304','Titres de créances du gouvernement du Canada');
+INSERT INTO gifi (accno,description) VALUES ('2305','Titres de créances des gouvernements provinciaux et des administrations municipales du Canada');
+INSERT INTO gifi (accno,description) VALUES ('2306','Obligations et débentures de sociétés canadiennes');
+INSERT INTO gifi (accno,description) VALUES ('2307','Titres de créances');
+INSERT INTO gifi (accno,description) VALUES ('2308','Titres de participation');
+INSERT INTO gifi (accno,description) VALUES ('2309','Titres acquis à la suite d\'une entente de rachat');
+INSERT INTO gifi (accno,description) VALUES ('2310','Actions de la caisse de crédit centrale');
+INSERT INTO gifi (accno,description) VALUES ('2311','Autres placements canadiens à long terme');
+INSERT INTO gifi (accno,description) VALUES ('2360','Prêts à long terme');
+INSERT INTO gifi (accno,description) VALUES ('2361','Prêts hypothécaires');
+INSERT INTO gifi (accno,description) VALUES ('2362','Prêts personnels et prêts sur carte de crédit');
+INSERT INTO gifi (accno,description) VALUES ('2363','Prêts au gouvernement et prêts commerciaux');
+INSERT INTO gifi (accno,description) VALUES ('2364','Marge de crédit');
+INSERT INTO gifi (accno,description) VALUES ('2420','Autres éléments d\'actif à long terme');
+INSERT INTO gifi (accno,description) VALUES ('2421','Impôts sur le revenu reportés');
+INSERT INTO gifi (accno,description) VALUES ('2422','Frais du régime de pension reportés');
+INSERT INTO gifi (accno,description) VALUES ('2423','Pertes de change non matérialisées reportées');
+INSERT INTO gifi (accno,description) VALUES ('2424','Autres éléments/frais reportés');
+INSERT INTO gifi (accno,description) VALUES ('2425','Amortissement cumulé des frais reportés');
+INSERT INTO gifi (accno,description) VALUES ('2426','Fonds de réserve');
+INSERT INTO gifi (accno,description) VALUES ('2427','Valeur de rachat de l\'assurance-vie');
+INSERT INTO gifi (accno,description) VALUES ('2589','Total de l\'actif à long terme');
+INSERT INTO gifi (accno,description) VALUES ('2590','Actif détenu en fiducie');
+INSERT INTO gifi (accno,description) VALUES ('2599','Total de l\'actif');
+INSERT INTO gifi (accno,description) VALUES ('2600','Découvert bancaire');
+INSERT INTO gifi (accno,description) VALUES ('2620','Montants et charges à payer');
+INSERT INTO gifi (accno,description) VALUES ('2621','Effets commerciaux à payer');
+INSERT INTO gifi (accno,description) VALUES ('2622','Effets commerciaux à payer à des personnes apparentées');
+INSERT INTO gifi (accno,description) VALUES ('2623','Retenues de garantie à payer');
+INSERT INTO gifi (accno,description) VALUES ('2624','Salaires à payer');
+INSERT INTO gifi (accno,description) VALUES ('2625','Frais de gestion à payer');
+INSERT INTO gifi (accno,description) VALUES ('2626','Gratifications à payer');
+INSERT INTO gifi (accno,description) VALUES ('2627','Retenues salariales à payer');
+INSERT INTO gifi (accno,description) VALUES ('2628','Retenues d\'impôts et de taxes à payer');
+INSERT INTO gifi (accno,description) VALUES ('2629','Intérêts à payer');
+INSERT INTO gifi (accno,description) VALUES ('2630','Montants à payer aux membres d\'OSBL');
+INSERT INTO gifi (accno,description) VALUES ('2680','Taxes et impôts à payer');
+INSERT INTO gifi (accno,description) VALUES ('2700','Dettes à court terme');
+INSERT INTO gifi (accno,description) VALUES ('2701','Emprunts auprès de banques canadiennes');
+INSERT INTO gifi (accno,description) VALUES ('2702','Élément de passif pour les titres vendus à découvert');
+INSERT INTO gifi (accno,description) VALUES ('2703','Élément de passif pour les titres vendus à la suite d\'une entente de rachat');
+INSERT INTO gifi (accno,description) VALUES ('2704','Titres sur l\'or et sur l\'argent');
+INSERT INTO gifi (accno,description) VALUES ('2705','Chèques et autres items en circulation');
+INSERT INTO gifi (accno,description) VALUES ('2706','Billets garantis');
+INSERT INTO gifi (accno,description) VALUES ('2770','Revenus reportés');
+INSERT INTO gifi (accno,description) VALUES ('2780','Sommes dues à un(des) actionnaire(s)/administrateur(s)');
+INSERT INTO gifi (accno,description) VALUES ('2781','Sommes dues à un(des) actionnaire(s) (particuliers)');
+INSERT INTO gifi (accno,description) VALUES ('2782','Sommes dues à un(des) actionnaire(s) (sociétés)');
+INSERT INTO gifi (accno,description) VALUES ('2783','Sommes dues à un(des) administrateur(s)');
+INSERT INTO gifi (accno,description) VALUES ('2840','Sommes dues à une(des) coentreprise(s)/ société(s) de personnes');
+INSERT INTO gifi (accno,description) VALUES ('2860','Sommes dues à des personnes apparentées');
+INSERT INTO gifi (accno,description) VALUES ('2861','Billets à demande dus à des personnes apparentées');
+INSERT INTO gifi (accno,description) VALUES ('2862','Intérêts à payer à des personnes apparentées');
+INSERT INTO gifi (accno,description) VALUES ('2863','Avances à payer à des personnes apparentées');
+INSERT INTO gifi (accno,description) VALUES ('2920','Portion à court terme du passif à long terme');
+INSERT INTO gifi (accno,description) VALUES ('2940','Acceptations de banque');
+INSERT INTO gifi (accno,description) VALUES ('2960','Autres éléments du passif à court terme');
+INSERT INTO gifi (accno,description) VALUES ('2961','Sommes reçues en dépôts');
+INSERT INTO gifi (accno,description) VALUES ('2962','Dividendes à payer');
+INSERT INTO gifi (accno,description) VALUES ('2963','Impôts sur le revenu reportés');
+INSERT INTO gifi (accno,description) VALUES ('2964','Réserve pour garanties et indemnités');
+INSERT INTO gifi (accno,description) VALUES ('2965','Provisions et réserves générales');
+INSERT INTO gifi (accno,description) VALUES ('2966','Parts des membres de l\'équipage');
+INSERT INTO gifi (accno,description) VALUES ('3139','Total du passif à court terme');
+INSERT INTO gifi (accno,description) VALUES ('3140','Dette à long terme');
+INSERT INTO gifi (accno,description) VALUES ('3141','Hypothèques');
+INSERT INTO gifi (accno,description) VALUES ('3142','Emprunts d\'une société de crédit agricole');
+INSERT INTO gifi (accno,description) VALUES ('3143','Emprunt d\'une banque à charte');
+INSERT INTO gifi (accno,description) VALUES ('3144','Emprunt d\'une caisse populaire/d\'une coopérative de crédit');
+INSERT INTO gifi (accno,description) VALUES ('3145','Emprunt du gouvernement provincial');
+INSERT INTO gifi (accno,description) VALUES ('3146','Emprunt d\'un fournisseur');
+INSERT INTO gifi (accno,description) VALUES ('3147','Prêt personnel');
+INSERT INTO gifi (accno,description) VALUES ('3148','Emprunts d\'une fédération, d\'une centrale ou de');
+INSERT INTO gifi (accno,description) VALUES ('3149','Marge de crédit');
+INSERT INTO gifi (accno,description) VALUES ('3150','Élément de passif pour les titres vendus à');
+INSERT INTO gifi (accno,description) VALUES ('3151','Élément de passif pour les titres vendus à la suite d\'une entente de rachat');
+INSERT INTO gifi (accno,description) VALUES ('3152','Billets garantis');
+INSERT INTO gifi (accno,description) VALUES ('3200','Cautionnement des institutions financières');
+INSERT INTO gifi (accno,description) VALUES ('3210','Obligations et débentures');
+INSERT INTO gifi (accno,description) VALUES ('3220','Revenus reportés');
+INSERT INTO gifi (accno,description) VALUES ('3240','Impôts sur le revenu reportés');
+INSERT INTO gifi (accno,description) VALUES ('3260','Sommes dues à un(des) actionnaire(s)/ administrateur(s)');
+INSERT INTO gifi (accno,description) VALUES ('3261','Sommes dues à un(des) actionnaire(s) (particuliers)');
+INSERT INTO gifi (accno,description) VALUES ('3262','Sommes dues à un(des) actionnaire(s) (sociétés)');
+INSERT INTO gifi (accno,description) VALUES ('3263','Sommes dues à un(des) administrateur(s)');
+INSERT INTO gifi (accno,description) VALUES ('3270','Sommes dues à des membres');
+INSERT INTO gifi (accno,description) VALUES ('3280','Sommes dues à une(des) coentreprise(s)/société(s) de personnes');
+INSERT INTO gifi (accno,description) VALUES ('3300','Sommes dues à des personnes apparentées');
+INSERT INTO gifi (accno,description) VALUES ('3301','Sommes dues à des personnes canadiennes apparentées');
+INSERT INTO gifi (accno,description) VALUES ('3302','Sommes dues à des personnes étrangères apparentées');
+INSERT INTO gifi (accno,description) VALUES ('3320','Autres éléments de passif à long terme');
+INSERT INTO gifi (accno,description) VALUES ('3321','Obligations, engagements et location-acquisition à long terme');
+INSERT INTO gifi (accno,description) VALUES ('3322','Réserves pour garanties et indemnités');
+INSERT INTO gifi (accno,description) VALUES ('3323','Provision pour la restauration des sites d\'exploitation');
+INSERT INTO gifi (accno,description) VALUES ('3324','Contribution à une fiducie pour l\'environnement');
+INSERT INTO gifi (accno,description) VALUES ('3325','Provisions et réserves générales');
+INSERT INTO gifi (accno,description) VALUES ('3326','Redressement pour les actions privilégiées');
+INSERT INTO gifi (accno,description) VALUES ('3327','Répartition aux membres');
+INSERT INTO gifi (accno,description) VALUES ('3328','Revenus différés de contrats incomplets');
+INSERT INTO gifi (accno,description) VALUES ('3450','Total du passif à long terme');
+INSERT INTO gifi (accno,description) VALUES ('3460','Dettes de second rang');
+INSERT INTO gifi (accno,description) VALUES ('3470','Sommes détenues en fiducie');
+INSERT INTO gifi (accno,description) VALUES ('3499','Total du passif');
+INSERT INTO gifi (accno,description) VALUES ('3500','Actions ordinaires');
+INSERT INTO gifi (accno,description) VALUES ('3520','Actions privilégiées');
+INSERT INTO gifi (accno,description) VALUES ('3540','Surplus d\'apport et autres surplus');
+INSERT INTO gifi (accno,description) VALUES ('3541','Surplus d\'apport');
+INSERT INTO gifi (accno,description) VALUES ('3542','Surplus d\'expertise');
+INSERT INTO gifi (accno,description) VALUES ('3543','Réserve générale');
+INSERT INTO gifi (accno,description) VALUES ('3570','Compte du siège social');
+INSERT INTO gifi (accno,description) VALUES ('3600','Bénéfices non répartis/déficit');
+INSERT INTO gifi (accno,description) VALUES ('3620','Total des capitaux propres');
+INSERT INTO gifi (accno,description) VALUES ('3640','Total du passif et des capitaux propres');
+INSERT INTO gifi (accno,description) VALUES ('3680','Revenu net/perte nette');
+INSERT INTO gifi (accno,description) VALUES ('3700','Dividendes déclarés');
+INSERT INTO gifi (accno,description) VALUES ('3701','Dividendes en espèces');
+INSERT INTO gifi (accno,description) VALUES ('3702','Ristournes');
+INSERT INTO gifi (accno,description) VALUES ('3720','Redressements sur exercices antérieurs');
+INSERT INTO gifi (accno,description) VALUES ('3740','Autres éléments touchant les bénéfices non répartis');
+INSERT INTO gifi (accno,description) VALUES ('3741','Rachat d\'actions');
+INSERT INTO gifi (accno,description) VALUES ('3742','Réserves spéciales');
+INSERT INTO gifi (accno,description) VALUES ('3743','Redressements relatifs aux devises');
+INSERT INTO gifi (accno,description) VALUES ('3744','Éléments inhabituels de revenus');
+INSERT INTO gifi (accno,description) VALUES ('3745','Transferts interfonds');
+INSERT INTO gifi (accno,description) VALUES ('3849','Bénéfices non répartis/déficit ­ fin de l\'exercice');
+INSERT INTO gifi (accno,description) VALUES ('8000','Ventes commerciales de biens et services');
+INSERT INTO gifi (accno,description) VALUES ('8020','Ventes de biens et de services à des personnes apparentées');
+INSERT INTO gifi (accno,description) VALUES ('8030','Ventes entre divisions');
+INSERT INTO gifi (accno,description) VALUES ('8040','Ventes de ressources naturelles');
+INSERT INTO gifi (accno,description) VALUES ('8041','Ventes de pétrole et de gaz naturel');
+INSERT INTO gifi (accno,description) VALUES ('8042','Ventes de pétrole et de gaz naturel à des personnes apparentées');
+INSERT INTO gifi (accno,description) VALUES ('8043','Commercialisation du gaz');
+INSERT INTO gifi (accno,description) VALUES ('8044','Revenus de traitement');
+INSERT INTO gifi (accno,description) VALUES ('8045','Revenus de transport par pipeline');
+INSERT INTO gifi (accno,description) VALUES ('8046','Ventes reliées à l\'exploration séismique');
+INSERT INTO gifi (accno,description) VALUES ('8047','Revenus provenant de l\'exploitation minière');
+INSERT INTO gifi (accno,description) VALUES ('8048','Revenus provenant du charbon');
+INSERT INTO gifi (accno,description) VALUES ('8049','Revenus de sables bitumineux');
+INSERT INTO gifi (accno,description) VALUES ('8050','Revenus provenant des redevances');
+INSERT INTO gifi (accno,description) VALUES ('8051','Revenus/pertes d\'une société de personnes/coentreprise ­ pétrole et gaz');
+INSERT INTO gifi (accno,description) VALUES ('8052','Revenus/pertes d\'une société de personnes/coentreprise ­ mines');
+INSERT INTO gifi (accno,description) VALUES ('8053','Autres revenus de production');
+INSERT INTO gifi (accno,description) VALUES ('8089','Total des ventes de biens et services');
+INSERT INTO gifi (accno,description) VALUES ('8090','Revenus de placements');
+INSERT INTO gifi (accno,description) VALUES ('8091','Intérêt de sources étrangères');
+INSERT INTO gifi (accno,description) VALUES ('8092','Intérêt d\'obligations et de débentures canadiennes');
+INSERT INTO gifi (accno,description) VALUES ('8093','Intérêt de prêts hypothécaires canadiens');
+INSERT INTO gifi (accno,description) VALUES ('8094','Intérêt d\'autres sources canadiennes');
+INSERT INTO gifi (accno,description) VALUES ('8095','Revenus de dividendes');
+INSERT INTO gifi (accno,description) VALUES ('8096','Dividendes de sources canadiennes');
+INSERT INTO gifi (accno,description) VALUES ('8097','Dividendes de sources étrangères');
+INSERT INTO gifi (accno,description) VALUES ('8100','Revenus d\'intérêt (institutions financières)');
+INSERT INTO gifi (accno,description) VALUES ('8101','Intérêt de prêts');
+INSERT INTO gifi (accno,description) VALUES ('8102','Intérêt de valeurs mobilières');
+INSERT INTO gifi (accno,description) VALUES ('8103','Intérêt des dépôts en banque');
+INSERT INTO gifi (accno,description) VALUES ('8120','Revenus de commissions');
+INSERT INTO gifi (accno,description) VALUES ('8121','Revenus de commissions sur les transactions immobilières');
+INSERT INTO gifi (accno,description) VALUES ('8140','Revenus de location');
+INSERT INTO gifi (accno,description) VALUES ('8141','Revenus de location immobilière');
+INSERT INTO gifi (accno,description) VALUES ('8142','Revenus de location de films');
+INSERT INTO gifi (accno,description) VALUES ('8150','Contrats de location de véhicules');
+INSERT INTO gifi (accno,description) VALUES ('8160','Revenus provenant de la pêche');
+INSERT INTO gifi (accno,description) VALUES ('8161','Ventes de poisson');
+INSERT INTO gifi (accno,description) VALUES ('8162','Autres produits marins');
+INSERT INTO gifi (accno,description) VALUES ('8163','Subventions, crédits et dégrèvements de pêche');
+INSERT INTO gifi (accno,description) VALUES ('8164','Subventions de pêche');
+INSERT INTO gifi (accno,description) VALUES ('8165','Indemnité pour perte d\'un revenu ou d\'un bien de pêche');
+INSERT INTO gifi (accno,description) VALUES ('8166','Revenu de pêcheur à la part');
+INSERT INTO gifi (accno,description) VALUES ('8210','Profits/pertes sur la disposition d\'éléments d\'actif');
+INSERT INTO gifi (accno,description) VALUES ('8211','Profits/pertes sur la vente de placements');
+INSERT INTO gifi (accno,description) VALUES ('8212','Profits/pertes sur la disposition d\'avoir minier');
+INSERT INTO gifi (accno,description) VALUES ('8220','Montants reçus d\'OSBL');
+INSERT INTO gifi (accno,description) VALUES ('8221','Frais d\'adhésion');
+INSERT INTO gifi (accno,description) VALUES ('8222','Cotisations');
+INSERT INTO gifi (accno,description) VALUES ('8223','Dons');
+INSERT INTO gifi (accno,description) VALUES ('8224','Ventes et recettes brutes provenant d\'activités de l\'organisme');
+INSERT INTO gifi (accno,description) VALUES ('8230','Autres revenus');
+INSERT INTO gifi (accno,description) VALUES ('8231','Gains/pertes sur devises étrangères');
+INSERT INTO gifi (accno,description) VALUES ('8232','Revenus/pertes de filiales/de sociétés affiliées');
+INSERT INTO gifi (accno,description) VALUES ('8233','Revenus/pertes d\'autres divisions');
+INSERT INTO gifi (accno,description) VALUES ('8234','Revenus/pertes des coentreprises');
+INSERT INTO gifi (accno,description) VALUES ('8235','Revenus/pertes des sociétés de personnes');
+INSERT INTO gifi (accno,description) VALUES ('8236','Réalisation de revenus différés');
+INSERT INTO gifi (accno,description) VALUES ('8237','Revenus de redevances autres que l\'exploitation des ressources naturelles');
+INSERT INTO gifi (accno,description) VALUES ('8238','Crédits d\'impôts pour redevances de l\'Alberta');
+INSERT INTO gifi (accno,description) VALUES ('8239','Honoraires de gestion et d\'administration');
+INSERT INTO gifi (accno,description) VALUES ('8240','Revenus de télécommunications');
+INSERT INTO gifi (accno,description) VALUES ('8241','Honoraires de consultation');
+INSERT INTO gifi (accno,description) VALUES ('8242','Subventions et octrois');
+INSERT INTO gifi (accno,description) VALUES ('8243','Ventes de sous-produits');
+INSERT INTO gifi (accno,description) VALUES ('8244','Frais d\'administration provenant du service des dépôts');
+INSERT INTO gifi (accno,description) VALUES ('8245','Frais d\'administration provenant du service du crédit');
+INSERT INTO gifi (accno,description) VALUES ('8246','Frais d\'administration provenant du service des cartes bancaires');
+INSERT INTO gifi (accno,description) VALUES ('8247','Ristournes');
+INSERT INTO gifi (accno,description) VALUES ('8248','Recouvrement d\'assurance');
+INSERT INTO gifi (accno,description) VALUES ('8249','Recouvrement de frais');
+INSERT INTO gifi (accno,description) VALUES ('8250','Recouvrement des mauvaises créances');
+INSERT INTO gifi (accno,description) VALUES ('8299','Total des revenus');
+INSERT INTO gifi (accno,description) VALUES ('8300','Stock d\'ouverture');
+INSERT INTO gifi (accno,description) VALUES ('8301','Stock d\'ouverture ­ produits finis');
+INSERT INTO gifi (accno,description) VALUES ('8302','Stock d\'ouverture ­ matières premières');
+INSERT INTO gifi (accno,description) VALUES ('8303','Stock d\'ouverture ­ produits en cours de fabrication');
+INSERT INTO gifi (accno,description) VALUES ('8320','Achats/coût des matériaux');
+INSERT INTO gifi (accno,description) VALUES ('8340','Salaires directs');
+INSERT INTO gifi (accno,description) VALUES ('8350','Avantages sociaux relatifs aux salaires directs');
+INSERT INTO gifi (accno,description) VALUES ('8360','Fournisseurs et sous-traitants');
+INSERT INTO gifi (accno,description) VALUES ('8370','Coûts de production (autres que ressources naturelles)');
+INSERT INTO gifi (accno,description) VALUES ('8400','Coûts de production des ressources naturelles');
+INSERT INTO gifi (accno,description) VALUES ('8401','Exploitation des pipelines');
+INSERT INTO gifi (accno,description) VALUES ('8402','Forage');
+INSERT INTO gifi (accno,description) VALUES ('8403','Coûts de restauration des sites d\'exploitation');
+INSERT INTO gifi (accno,description) VALUES ('8404','Redevances dérogatoires brutes');
+INSERT INTO gifi (accno,description) VALUES ('8405','Redevances de propriété franche');
+INSERT INTO gifi (accno,description) VALUES ('8406','Paiements de location de concessions publiques');
+INSERT INTO gifi (accno,description) VALUES ('8407','Prospection/travaux de géologie');
+INSERT INTO gifi (accno,description) VALUES ('8408','Exploitation des puits, carburant et matériel');
+INSERT INTO gifi (accno,description) VALUES ('8409','Abandon de puits et puits secs');
+INSERT INTO gifi (accno,description) VALUES ('8410','Autres paiements de location');
+INSERT INTO gifi (accno,description) VALUES ('8411','Frais d\'exploration');
+INSERT INTO gifi (accno,description) VALUES ('8412','Frais d\'aménagement');
+INSERT INTO gifi (accno,description) VALUES ('8435','Sommes exigées par la Couronne');
+INSERT INTO gifi (accno,description) VALUES ('8436','Redevances à la Couronne');
+INSERT INTO gifi (accno,description) VALUES ('8437','Frais de location de la Couronne');
+INSERT INTO gifi (accno,description) VALUES ('8438','Impôts sur le minerai de propriété franche');
+INSERT INTO gifi (accno,description) VALUES ('8439','Impôts miniers');
+INSERT INTO gifi (accno,description) VALUES ('8440','Frais de location des sables bitumineux');
+INSERT INTO gifi (accno,description) VALUES ('8441','Surtaxe de la Saskatchewan sur les ressources');
+INSERT INTO gifi (accno,description) VALUES ('8450','Autres coûts directs');
+INSERT INTO gifi (accno,description) VALUES ('8451','Location et exploitation de matériel');
+INSERT INTO gifi (accno,description) VALUES ('8452','Cour à bois');
+INSERT INTO gifi (accno,description) VALUES ('8453','Coûts d\'exploitation forestière');
+INSERT INTO gifi (accno,description) VALUES ('8454','Coûts des chemins forestiers');
+INSERT INTO gifi (accno,description) VALUES ('8455','Droits de coupe');
+INSERT INTO gifi (accno,description) VALUES ('8456','Coûts des redevances');
+INSERT INTO gifi (accno,description) VALUES ('8457','Frais de transport à l\'achat et droits');
+INSERT INTO gifi (accno,description) VALUES ('8458','Moins-value de l\'inventaire');
+INSERT INTO gifi (accno,description) VALUES ('8459','Coût direct de l\'amortissement des biens corporels');
+INSERT INTO gifi (accno,description) VALUES ('8460','Coût direct de l\'amortissement des biens constitués');
+INSERT INTO gifi (accno,description) VALUES ('8461','Autres frais indirects attribués au coût des ventes');
+INSERT INTO gifi (accno,description) VALUES ('8500','Stock de fermeture');
+INSERT INTO gifi (accno,description) VALUES ('8501','Stock de fermeture ­ produits finis');
+INSERT INTO gifi (accno,description) VALUES ('8502','Stock de fermeture ­ matières premières');
+INSERT INTO gifi (accno,description) VALUES ('8503','Stock de fermeture ­ travaux en cours de fabrication');
+INSERT INTO gifi (accno,description) VALUES ('8518','Coût des ventes');
+INSERT INTO gifi (accno,description) VALUES ('8519','Profit brut/perte brute');
+INSERT INTO gifi (accno,description) VALUES ('8520','Publicité et promotion');
+INSERT INTO gifi (accno,description) VALUES ('8521','Publicité');
+INSERT INTO gifi (accno,description) VALUES ('8522','Dons');
+INSERT INTO gifi (accno,description) VALUES ('8523','Repas et frais de représentation');
+INSERT INTO gifi (accno,description) VALUES ('8524','Promotion');
+INSERT INTO gifi (accno,description) VALUES ('8570','Amortissement de biens incorporels');
+INSERT INTO gifi (accno,description) VALUES ('8590','Créances irrécouvrables');
+INSERT INTO gifi (accno,description) VALUES ('8610','Pertes sur prêts');
+INSERT INTO gifi (accno,description) VALUES ('8611','Provision pour les pertes sur prêts');
+INSERT INTO gifi (accno,description) VALUES ('8620','Avantages sociaux');
+INSERT INTO gifi (accno,description) VALUES ('8621','Assurances collectives');
+INSERT INTO gifi (accno,description) VALUES ('8622','Partie de l\'employeur des avantages sociaux');
+INSERT INTO gifi (accno,description) VALUES ('8623','Cotisations aux régimes de revenus différés');
+INSERT INTO gifi (accno,description) VALUES ('8650','Amortissement des biens constitués par des ressources naturelles');
+INSERT INTO gifi (accno,description) VALUES ('8670','Amortissement des biens corporels');
+INSERT INTO gifi (accno,description) VALUES ('8690','Assurances');
+INSERT INTO gifi (accno,description) VALUES ('8691','Assurance sur la vie des dirigeants');
+INSERT INTO gifi (accno,description) VALUES ('8710','Intérêts et frais bancaires');
+INSERT INTO gifi (accno,description) VALUES ('8711','Intérêts sur les dettes à court terme');
+INSERT INTO gifi (accno,description) VALUES ('8712','Intérêts sur les obligations et les débentures');
+INSERT INTO gifi (accno,description) VALUES ('8713','Intérêts sur les prêts hypothécaires');
+INSERT INTO gifi (accno,description) VALUES ('8714','Intérêts sur les dettes à long terme');
+INSERT INTO gifi (accno,description) VALUES ('8715','Frais bancaires');
+INSERT INTO gifi (accno,description) VALUES ('8716','Frais de cartes de crédit');
+INSERT INTO gifi (accno,description) VALUES ('8717','Frais de recouvrement et de crédit');
+INSERT INTO gifi (accno,description) VALUES ('8740','Intérêts payés (institutions financières)');
+INSERT INTO gifi (accno,description) VALUES ('8741','Intérêts payés sur dépôts');
+INSERT INTO gifi (accno,description) VALUES ('8742','Intérêts payés sur les obligations et les débentures');
+INSERT INTO gifi (accno,description) VALUES ('8760','Taxes d\'affaires, droits d\'adhésion et licences');
+INSERT INTO gifi (accno,description) VALUES ('8761','Droits d\'adhésion');
+INSERT INTO gifi (accno,description) VALUES ('8762','Taxes d\'affaires');
+INSERT INTO gifi (accno,description) VALUES ('8763','Frais de franchise');
+INSERT INTO gifi (accno,description) VALUES ('8764','Frais à verser aux gouvernements');
+INSERT INTO gifi (accno,description) VALUES ('8780','Taxe des grandes sociétés du Nouveau-Brunswick');
+INSERT INTO gifi (accno,description) VALUES ('8790','Taxe des grandes sociétés de la Nouvelle-Écosse');
+INSERT INTO gifi (accno,description) VALUES ('8810','Frais de bureau');
+INSERT INTO gifi (accno,description) VALUES ('8811','Papeterie et fournitures de bureau');
+INSERT INTO gifi (accno,description) VALUES ('8812','Services de bureau');
+INSERT INTO gifi (accno,description) VALUES ('8813','Traitement des données');
+INSERT INTO gifi (accno,description) VALUES ('8860','Honoraires professionnels');
+INSERT INTO gifi (accno,description) VALUES ('8861','Frais légaux');
+INSERT INTO gifi (accno,description) VALUES ('8862','Frais comptables');
+INSERT INTO gifi (accno,description) VALUES ('8863','Honoraires d\'experts-conseils');
+INSERT INTO gifi (accno,description) VALUES ('8864','Honoraires d\'architectes');
+INSERT INTO gifi (accno,description) VALUES ('8865','Frais d\'évaluation');
+INSERT INTO gifi (accno,description) VALUES ('8866','Frais de laboratoire');
+INSERT INTO gifi (accno,description) VALUES ('8867','Honoraires médicaux');
+INSERT INTO gifi (accno,description) VALUES ('8868','Frais de vétérinaire');
+INSERT INTO gifi (accno,description) VALUES ('8869','Frais de courtage');
+INSERT INTO gifi (accno,description) VALUES ('8870','Frais de transfert');
+INSERT INTO gifi (accno,description) VALUES ('8871','Frais de gestion et d\'administration');
+INSERT INTO gifi (accno,description) VALUES ('8872','Affinage et dosage');
+INSERT INTO gifi (accno,description) VALUES ('8873','Droits d\'enregistrement et frais d\'agents de transfert');
+INSERT INTO gifi (accno,description) VALUES ('8874','Coûts de restructuration');
+INSERT INTO gifi (accno,description) VALUES ('8875','Commissions sur les titres et les valeurs mobilières');
+INSERT INTO gifi (accno,description) VALUES ('8876','Frais de formation');
+INSERT INTO gifi (accno,description) VALUES ('8877','Studio et enregistrement');
+INSERT INTO gifi (accno,description) VALUES ('8910','Frais de location');
+INSERT INTO gifi (accno,description) VALUES ('8911','Loyer de biens immobiliers');
+INSERT INTO gifi (accno,description) VALUES ('8912','Frais d\'occupation');
+INSERT INTO gifi (accno,description) VALUES ('8913','Frais de copropriété');
+INSERT INTO gifi (accno,description) VALUES ('8914','Location de matériel');
+INSERT INTO gifi (accno,description) VALUES ('8915','Location de véhicules motorisés');
+INSERT INTO gifi (accno,description) VALUES ('8916','Amarrage (bateau)');
+INSERT INTO gifi (accno,description) VALUES ('8917','Entreposage');
+INSERT INTO gifi (accno,description) VALUES ('8918','Location de contingents');
+INSERT INTO gifi (accno,description) VALUES ('8960','Réparations et entretien');
+INSERT INTO gifi (accno,description) VALUES ('8961','Réparations et entretien ­ bâtiments');
+INSERT INTO gifi (accno,description) VALUES ('8962','Réparations et entretien ­ véhicules');
+INSERT INTO gifi (accno,description) VALUES ('8963','Réparations et entretien ­ bateaux');
+INSERT INTO gifi (accno,description) VALUES ('8964','Réparations et entretien ­ machines et matériel');
+INSERT INTO gifi (accno,description) VALUES ('9010','Autres frais de réparation et d\'entretien');
+INSERT INTO gifi (accno,description) VALUES ('9011','Dépense d\'usinage');
+INSERT INTO gifi (accno,description) VALUES ('9012','Frais relatifs aux routes');
+INSERT INTO gifi (accno,description) VALUES ('9013','Sécurité');
+INSERT INTO gifi (accno,description) VALUES ('9014','Enlèvement des déchets');
+INSERT INTO gifi (accno,description) VALUES ('9060','Salaires et traitements');
+INSERT INTO gifi (accno,description) VALUES ('9061','Commissions');
+INSERT INTO gifi (accno,description) VALUES ('9062','Part de l\'équipage');
+INSERT INTO gifi (accno,description) VALUES ('9063','Gratifications');
+INSERT INTO gifi (accno,description) VALUES ('9064','Jetons de présence des administrateurs');
+INSERT INTO gifi (accno,description) VALUES ('9065','Salaires des cadres');
+INSERT INTO gifi (accno,description) VALUES ('9066','Salaires des employés');
+INSERT INTO gifi (accno,description) VALUES ('9110','Contrats de sous-traitance');
+INSERT INTO gifi (accno,description) VALUES ('9130','Fournitures');
+INSERT INTO gifi (accno,description) VALUES ('9131','Petit outillage');
+INSERT INTO gifi (accno,description) VALUES ('9132','Frais d\'atelier');
+INSERT INTO gifi (accno,description) VALUES ('9133','Uniformes');
+INSERT INTO gifi (accno,description) VALUES ('9134','Blanchissage');
+INSERT INTO gifi (accno,description) VALUES ('9135','Alimentation et restauration');
+INSERT INTO gifi (accno,description) VALUES ('9136','Matériel de pêche');
+INSERT INTO gifi (accno,description) VALUES ('9137','Filets et pièges');
+INSERT INTO gifi (accno,description) VALUES ('9138','Sel, appâts et glace');
+INSERT INTO gifi (accno,description) VALUES ('9139','Fournitures de camp');
+INSERT INTO gifi (accno,description) VALUES ('9150','Dépenses liées à l\'informatique');
+INSERT INTO gifi (accno,description) VALUES ('9151','Améliorations et modernisations');
+INSERT INTO gifi (accno,description) VALUES ('9152','Internet');
+INSERT INTO gifi (accno,description) VALUES ('9180','Taxes foncières');
+INSERT INTO gifi (accno,description) VALUES ('9200','Frais de déplacement');
+INSERT INTO gifi (accno,description) VALUES ('9220','Services publics');
+INSERT INTO gifi (accno,description) VALUES ('9221','Électricité');
+INSERT INTO gifi (accno,description) VALUES ('9222','Eau');
+INSERT INTO gifi (accno,description) VALUES ('9223','Chauffage');
+INSERT INTO gifi (accno,description) VALUES ('9224','Frais de carburant');
+INSERT INTO gifi (accno,description) VALUES ('9270','Autres dépenses');
+INSERT INTO gifi (accno,description) VALUES ('9271','Écarts de caisse');
+INSERT INTO gifi (accno,description) VALUES ('9272','Remboursement de frais de la société mère');
+INSERT INTO gifi (accno,description) VALUES ('9273','Frais de vente');
+INSERT INTO gifi (accno,description) VALUES ('9274','Frais de transport et d\'entreposage');
+INSERT INTO gifi (accno,description) VALUES ('9275','Livraison, fret et messageries');
+INSERT INTO gifi (accno,description) VALUES ('9276','Frais de garantie');
+INSERT INTO gifi (accno,description) VALUES ('9277','Frais de redevances ­ résidents');
+INSERT INTO gifi (accno,description) VALUES ('9278','Frais de redevances ­ non-résidents');
+INSERT INTO gifi (accno,description) VALUES ('9279','Frais de déchargement');
+INSERT INTO gifi (accno,description) VALUES ('9280','Frais d\'enfouissement');
+INSERT INTO gifi (accno,description) VALUES ('9281','Frais de véhicules');
+INSERT INTO gifi (accno,description) VALUES ('9282','Recherche et développement');
+INSERT INTO gifi (accno,description) VALUES ('9283','Retenues d\'impôts');
+INSERT INTO gifi (accno,description) VALUES ('9284','Frais d\'administration et frais généraux');
+INSERT INTO gifi (accno,description) VALUES ('9285','Dépenses entre divisions');
+INSERT INTO gifi (accno,description) VALUES ('9286','Transferts interfonds');
+INSERT INTO gifi (accno,description) VALUES ('9367','Total des frais d\'exploitation');
+INSERT INTO gifi (accno,description) VALUES ('9368','Total des dépenses');
+INSERT INTO gifi (accno,description) VALUES ('9369','Revenu non agricole net');
+INSERT INTO gifi (accno,description) VALUES ('9370','Grains et oléagineux');
+INSERT INTO gifi (accno,description) VALUES ('9371','Blé');
+INSERT INTO gifi (accno,description) VALUES ('9372','Avoine');
+INSERT INTO gifi (accno,description) VALUES ('9373','Orge');
+INSERT INTO gifi (accno,description) VALUES ('9374','Grains mixtes');
+INSERT INTO gifi (accno,description) VALUES ('9375','Maïs');
+INSERT INTO gifi (accno,description) VALUES ('9376','Canola');
+INSERT INTO gifi (accno,description) VALUES ('9377','Graine de lin');
+INSERT INTO gifi (accno,description) VALUES ('9378','Fèves soya');
+INSERT INTO gifi (accno,description) VALUES ('9379','Paiements de la Commission canadienne du blé');
+INSERT INTO gifi (accno,description) VALUES ('9420','Revenus d\'autres récoltes');
+INSERT INTO gifi (accno,description) VALUES ('9421','Fruits');
+INSERT INTO gifi (accno,description) VALUES ('9422','Pommes de terre');
+INSERT INTO gifi (accno,description) VALUES ('9423','Légumes');
+INSERT INTO gifi (accno,description) VALUES ('9424','Tabac');
+INSERT INTO gifi (accno,description) VALUES ('9425','Produits de serre et de pépinière');
+INSERT INTO gifi (accno,description) VALUES ('9426','Récolte de fourrage');
+INSERT INTO gifi (accno,description) VALUES ('9470','Revenus du bétail et des produits d\'origine');
+INSERT INTO gifi (accno,description) VALUES ('9471','Bovins');
+INSERT INTO gifi (accno,description) VALUES ('9472','Porcins');
+INSERT INTO gifi (accno,description) VALUES ('9473','Volaille');
+INSERT INTO gifi (accno,description) VALUES ('9474','Ovins');
+INSERT INTO gifi (accno,description) VALUES ('9475','Urine de jument gravide (UJG)');
+INSERT INTO gifi (accno,description) VALUES ('9476','Lait et crème (à l\'exclusion des subventions pour');
+INSERT INTO gifi (accno,description) VALUES ('9477','OEufs pour la consommation');
+INSERT INTO gifi (accno,description) VALUES ('9478','Couvaison des oeufs');
+INSERT INTO gifi (accno,description) VALUES ('9479','Aquaculture (couvée et élevage)');
+INSERT INTO gifi (accno,description) VALUES ('9480','Chevaux (reproduction et viande)');
+INSERT INTO gifi (accno,description) VALUES ('9520','Autres produits');
+INSERT INTO gifi (accno,description) VALUES ('9521','Produits de l\'érable');
+INSERT INTO gifi (accno,description) VALUES ('9522','Insémination artificielle');
+INSERT INTO gifi (accno,description) VALUES ('9523','Production de sperme');
+INSERT INTO gifi (accno,description) VALUES ('9524','Production d\'embryon');
+INSERT INTO gifi (accno,description) VALUES ('9540','Revenus des paiements de programmes');
+INSERT INTO gifi (accno,description) VALUES ('9541','Subventions laitières');
+INSERT INTO gifi (accno,description) VALUES ('9542','Assurance-récolte');
+INSERT INTO gifi (accno,description) VALUES ('9543','Paiements du CSRN');
+INSERT INTO gifi (accno,description) VALUES ('9544','Paiements provenant du programme d\'aide en cas de catastrophe');
+INSERT INTO gifi (accno,description) VALUES ('9570','Remises');
+INSERT INTO gifi (accno,description) VALUES ('9571','Remises ­ carburant');
+INSERT INTO gifi (accno,description) VALUES ('9572','Remises ­ intérêt');
+INSERT INTO gifi (accno,description) VALUES ('9573','Remises ­ taxes foncières');
+INSERT INTO gifi (accno,description) VALUES ('9574','Reventes, Remises de la TPS pour les dépenses');
+INSERT INTO gifi (accno,description) VALUES ('9575','Remises de la TPS pour les dépenses non');
+INSERT INTO gifi (accno,description) VALUES ('9600','Autres revenus/pertes agricoles');
+INSERT INTO gifi (accno,description) VALUES ('9601','Travail sur commande ou en sous-traitance');
+INSERT INTO gifi (accno,description) VALUES ('9602','Ventes de bois');
+INSERT INTO gifi (accno,description) VALUES ('9603','Courses de chevaux');
+INSERT INTO gifi (accno,description) VALUES ('9604','Produits d\'assurance');
+INSERT INTO gifi (accno,description) VALUES ('9605','Ristournes');
+INSERT INTO gifi (accno,description) VALUES ('9606','Revenu de location');
+INSERT INTO gifi (accno,description) VALUES ('9607','Revenu en intérêt');
+INSERT INTO gifi (accno,description) VALUES ('9608','Revenu de dividendes');
+INSERT INTO gifi (accno,description) VALUES ('9609','Profits/pertes sur la disposition de biens');
+INSERT INTO gifi (accno,description) VALUES ('9610','Gravier');
+INSERT INTO gifi (accno,description) VALUES ('9611','Camionnage');
+INSERT INTO gifi (accno,description) VALUES ('9612','Revente des denrées achetées');
+INSERT INTO gifi (accno,description) VALUES ('9613','Contrat-location (carburant, huile, puits, superficie, etc.)');
+INSERT INTO gifi (accno,description) VALUES ('9614','Location de machines');
+INSERT INTO gifi (accno,description) VALUES ('9615','Revenus/pertes des sociétés de personnes agricoles');
+INSERT INTO gifi (accno,description) VALUES ('9616','Revenus/pertes des coentreprises agricoles');
+INSERT INTO gifi (accno,description) VALUES ('9650','Revenu non agricole');
+INSERT INTO gifi (accno,description) VALUES ('9659','Total des revenus agricoles');
+INSERT INTO gifi (accno,description) VALUES ('9660','Dépenses liées aux récoltes');
+INSERT INTO gifi (accno,description) VALUES ('9661','Contenants, ficelles et fils pour emballage');
+INSERT INTO gifi (accno,description) VALUES ('9662','Engrais et chaux');
+INSERT INTO gifi (accno,description) VALUES ('9663','Pesticides');
+INSERT INTO gifi (accno,description) VALUES ('9664','Semences et plantes');
+INSERT INTO gifi (accno,description) VALUES ('9665','Primes d\'assurance (récolte) CSRN SAR');
+INSERT INTO gifi (accno,description) VALUES ('9710','Dépenses liées au bétail');
+INSERT INTO gifi (accno,description) VALUES ('9711','Fourrage, suppléments, paille et litière');
+INSERT INTO gifi (accno,description) VALUES ('9712','Achats de bétail');
+INSERT INTO gifi (accno,description) VALUES ('9713','Frais de vétérinaire, de médicaments et de reproduction');
+INSERT INTO gifi (accno,description) VALUES ('9714','Sel et minéraux');
+INSERT INTO gifi (accno,description) VALUES ('9760','Dépenses liées aux machines');
+INSERT INTO gifi (accno,description) VALUES ('9761','Assurance pour les machines');
+INSERT INTO gifi (accno,description) VALUES ('9762','Plaques pour les machines');
+INSERT INTO gifi (accno,description) VALUES ('9763','Réparation des machines');
+INSERT INTO gifi (accno,description) VALUES ('9764','Carburant pour les machines');
+INSERT INTO gifi (accno,description) VALUES ('9765','Contrat-location de machines');
+INSERT INTO gifi (accno,description) VALUES ('9790','Dépenses agricoles générales');
+INSERT INTO gifi (accno,description) VALUES ('9791','Amortissement des biens corporels');
+INSERT INTO gifi (accno,description) VALUES ('9792','Publicité, promotion et dépenses de mise en marché');
+INSERT INTO gifi (accno,description) VALUES ('9793','Mauvaises créances');
+INSERT INTO gifi (accno,description) VALUES ('9794','Avantages sociaux liés aux salaires des employés');
+INSERT INTO gifi (accno,description) VALUES ('9795','Réparations et entretien des bâtiments');
+INSERT INTO gifi (accno,description) VALUES ('9796','Défrichage, nivellement et drainage de terrains');
+INSERT INTO gifi (accno,description) VALUES ('9797','Primes d\'assurance-récolte, de RARB et de');
+INSERT INTO gifi (accno,description) VALUES ('9798','Travail sur commande ou en sous-traitance');
+INSERT INTO gifi (accno,description) VALUES ('9799','Électricité');
+INSERT INTO gifi (accno,description) VALUES ('9800','Réparations et entretien des clôtures');
+INSERT INTO gifi (accno,description) VALUES ('9801','Fret et camionnage');
+INSERT INTO gifi (accno,description) VALUES ('9802','Combustible pour chauffage et pour salaison');
+INSERT INTO gifi (accno,description) VALUES ('9803','Remboursement de paiements en trop provenant');
+INSERT INTO gifi (accno,description) VALUES ('9804','Autres primes d\'assurance');
+INSERT INTO gifi (accno,description) VALUES ('9805','Intérêts et frais bancaires');
+INSERT INTO gifi (accno,description) VALUES ('9806','Droits versés à des offices de commercialisation');
+INSERT INTO gifi (accno,description) VALUES ('9807','Frais d\'adhésion');
+INSERT INTO gifi (accno,description) VALUES ('9808','Dépenses de bureau');
+INSERT INTO gifi (accno,description) VALUES ('9809','Honoraires professionnels');
+INSERT INTO gifi (accno,description) VALUES ('9810','Taxes foncières');
+INSERT INTO gifi (accno,description) VALUES ('9811','Location ­ terrain et bâtiments');
+INSERT INTO gifi (accno,description) VALUES ('9812','Location ­ machines');
+INSERT INTO gifi (accno,description) VALUES ('9813','Autres frais de location');
+INSERT INTO gifi (accno,description) VALUES ('9814','Salaires et traitements');
+INSERT INTO gifi (accno,description) VALUES ('9815','Salaires (autre que conjoint et personnes à charge)');
+INSERT INTO gifi (accno,description) VALUES ('9816','Salaires versés aux personnes à charge');
+INSERT INTO gifi (accno,description) VALUES ('9817','Coûts des ventes');
+INSERT INTO gifi (accno,description) VALUES ('9818','Fournitures');
+INSERT INTO gifi (accno,description) VALUES ('9819','Dépenses concernant les véhicules motorisés');
+INSERT INTO gifi (accno,description) VALUES ('9820','Petit outillage');
+INSERT INTO gifi (accno,description) VALUES ('9821','Analyses des sols');
+INSERT INTO gifi (accno,description) VALUES ('9822','Entreposage/séchage');
+INSERT INTO gifi (accno,description) VALUES ('9823','Licences/permis');
+INSERT INTO gifi (accno,description) VALUES ('9824','Téléphone');
+INSERT INTO gifi (accno,description) VALUES ('9825','Location de contingents (tabac, laitier)');
+INSERT INTO gifi (accno,description) VALUES ('9826','Gravier');
+INSERT INTO gifi (accno,description) VALUES ('9827','Achats de produits pour la revente');
+INSERT INTO gifi (accno,description) VALUES ('9828','Salaires et traitements payés au conjoint');
+INSERT INTO gifi (accno,description) VALUES ('9829','Coûts de location et intérêt sur un véhicule');
+INSERT INTO gifi (accno,description) VALUES ('9830','Aliments préparés');
+INSERT INTO gifi (accno,description) VALUES ('9831','Engraissement à forfait');
+INSERT INTO gifi (accno,description) VALUES ('9832','Amortissement des biens incorporels');
+INSERT INTO gifi (accno,description) VALUES ('9833','Amortissement de quote-part de lait');
+INSERT INTO gifi (accno,description) VALUES ('9834','Frais de déplacement');
+INSERT INTO gifi (accno,description) VALUES ('9835','Taxes d\'affaires/sur le capital');
+INSERT INTO gifi (accno,description) VALUES ('9850','Dépenses non agricoles');
+INSERT INTO gifi (accno,description) VALUES ('9870','Régularisation des stocks');
+INSERT INTO gifi (accno,description) VALUES ('9899','Total des revenus agricoles nets');
+INSERT INTO gifi (accno,description) VALUES ('9970','Revenu net/perte nette avant impôts et éléments');
+INSERT INTO gifi (accno,description) VALUES ('9975','Élément(s) extraordinaire(s)');
+INSERT INTO gifi (accno,description) VALUES ('9976','Règlements juridiques');
+INSERT INTO gifi (accno,description) VALUES ('9980','Profits/pertes non matérialisés');
+INSERT INTO gifi (accno,description) VALUES ('9985','Éléments inhabituels');
+INSERT INTO gifi (accno,description) VALUES ('9990','Impôts sur le revenu exigibles de l\'exercice');
+INSERT INTO gifi (accno,description) VALUES ('9995','Provision pour impôts sur le revenu différés');
+INSERT INTO gifi (accno,description) VALUES ('9999','Revenu net/perte nette après impôts et éléments');
diff --git a/sql/Canada-French_General-chart.sql b/sql/Canada-French_General-chart.sql
new file mode 100755
index 00000000..9f9a8d90
--- /dev/null
+++ b/sql/Canada-French_General-chart.sql
@@ -0,0 +1,78 @@
+-- General French-Canadian (AKA Québécois) COA
+-- sample only
+
+-- translated and adapted from the General Canadian COA, with the help
+-- of the Grand Dictionnaire Terminologique:
+-- http://granddictionnaire.com/
+
+-- Some provisions have been made for Québec-specifics, namely:
+-- TVQ/TPS terminology, CSST, Assurance-emploi, RRQ
+
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1060', 'Compte chèque', 'A', 'A', 'AR_paid:AP_paid', '1002');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1065', 'Petite caisse', 'A', 'A', 'AR_paid:AP_paid', '1001');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1500', 'STOCKS', 'H', 'A', '', '1120');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1200', 'Comptes clients', 'A', 'A', 'AR', '1060');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1530', 'Stocks / Pièces de rechange', 'A', 'A', 'IC', '1122');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1540', 'Stocks / Matières premières', 'A', 'A', 'IC', '1122');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1800', 'AUTRES IMMOBILISATIONS', 'H', 'A', '', '1900');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1820', 'Meubles et accessoires', 'A', 'A', '', '1787');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno,contra) VALUES ('1825', 'Amortissement cumulé des meubles et des accessoires', 'A', 'A', '', '1788', '1');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1840', 'Véhicules automobiles', 'A', 'A', '', '1742');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno,contra) VALUES ('1845', 'Amortissement cumulé des véhicules automobiles', 'A', 'A', '', '1743', '1');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2100', 'Comptes fournisseurs', 'A', 'L', 'AP', '2621');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1000', 'ACTIF COURANT', 'H', 'A', '', '1000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2000', 'PASSIF COURANT', 'H', 'L', '', '2620');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2160', 'Taxes fédérales à payer', 'A', 'L', '', '2683');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2170', 'Taxes provinciales à payer', 'A', 'L', '', '2684');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2310', 'TPS', 'A', 'L', 'AR_tax:AP_tax:IC_taxpart:IC_taxservice', '2685');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2320', 'TVQ', 'A', 'L', 'AR_tax:AP_tax:IC_taxpart:IC_taxservice', '2686');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2380', 'Indemnités de vacances à payer', 'A', 'L', '', '2624');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2390', 'CSST à payer', 'A', 'L', '', '2627');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2400', 'RETENUES SUR SALAIRE', 'H', 'L', '', '2620');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1520', 'Stocks / Général', 'A', 'A', 'IC', '1122');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2410', 'Assurance-emploi à payer', 'A', 'L', '', '2627');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2450', 'Impôt sur le revenu à payer', 'A', 'L', '', '2628');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2600', 'PASSIF À LONG TERME', 'H', 'L', '', '3140');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2620', 'Emprunts bancaires', 'A', 'L', '', '2701');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('3300', 'CAPITAL SOCIAL', 'H', 'Q', '', '3500');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('3350', 'Actions ordinaires', 'A', 'Q', '', '3500');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4000', 'REVENUS DE VENTE', 'H', 'I', '', '8000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4020', 'Ventes générales', 'A', 'I', 'AR_amount:IC_sale:IC_income', '8000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4030', 'Pièces de rechange', 'A', 'I', 'AR_amount:IC_sale', '8000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4400', 'AUTRES REVENUS', 'H', 'I', '', '8090');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4430', 'Transport et manutention', 'A', 'I', 'IC_income', '8457');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4450', 'Gain sur change', 'A', 'I', '', '8231');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5000', 'COÛT DES PRODUITS VENDUS', 'H', 'E', '', '8515');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5010', 'Achats', 'A', 'E', 'AP_amount:IC_cogs:IC_expense', '8320');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5050', 'Pièces de rechange', 'A', 'E', 'AP_amount:IC_cogs', '8320');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5100', 'Frais de transport', 'A', 'E', 'AP_amount:IC_expense', '8457');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5400', 'FRAIS DE PERSONNEL', 'H', 'E', '', '');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5410', 'Salaires', 'A', 'E', '', '9060');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5420', 'Dépenses d''assurance-emploi', 'A', 'E', '', '8622');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2420', 'RRQ à payer', 'A', 'L', '', '2627');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5430', 'Dépenses RRQ', 'A', 'E', '', '8622');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5440', 'Dépenses CSST', 'A', 'E', '', '8622');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5600', 'DÉPENSES ADMINISTRATIVES ET GÉNÉRALES', 'H', 'E', '', '');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5615', 'Publicité et promotion', 'A', 'E', 'AP_amount', '8520');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5620', 'Créances irrévocables', 'A', 'E', '', '8590');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5660', 'Amortissement de l''exercice', 'A', 'E', '', '8670');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5680', 'Impôt sur le revenu', 'A', 'E', '', '9990');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5685', 'Assurances', 'A', 'E', 'AP_amount', '9804');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5690', 'Intérêts et frais bancaires', 'A', 'E', '', '9805');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5700', 'Fournitures de bureau', 'A', 'E', 'AP_amount', '8811');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5760', 'Loyer', 'A', 'E', 'AP_amount', '9811');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5780', 'Téléphone', 'A', 'E', 'AP_amount', '9225');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5785', 'Voyages et loisirs', 'A', 'E', '', '8523');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5790', 'Services publics', 'A', 'E', 'AP_amount', '8812');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5810', 'Perte sur change', 'A', 'E', '', '8231');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1205', 'Provisions pour créances douteuses', 'A', 'A', '', '1063');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2680', 'Emprunt auprès des actionnaires', 'A', 'L', 'AP_paid', '2780');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5610', 'Frais comptables et juridiques', 'A', 'E', 'AP_amount', '8862');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4440', 'Intérêts', 'A', 'I', 'IC_income', '8090');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5765', 'Réparation et entretien', 'A', 'E', 'AP_amount', '8964');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5800', 'Taxes d''affaires, droits d''adhésion et permis', 'A', 'E', 'AP_amount', '8760');
+--
+insert into tax (chart_id,rate) values ((select id from chart where accno = '2310'),0.07);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '2320'),0.08025);
+--
+update defaults set inventory_accno_id = (select id from chart where accno = '1520'), income_accno_id = (select id from chart where accno = '4020'), expense_accno_id = (select id from chart where accno = '5010'), fxgain_accno_id = (select id from chart where accno = '4450'), fxloss_accno_id = (select id from chart where accno = '4450'), curr = 'CAD:USD:EUR', weightunit = 'kg';
diff --git a/sql/Colombia-PUC-chart.sql b/sql/Colombia-PUC-chart.sql
new file mode 100755
index 00000000..82087d75
--- /dev/null
+++ b/sql/Colombia-PUC-chart.sql
@@ -0,0 +1,773 @@
+--
+-- Plan único de Cuentas de Colombia, elaborado por Rene Real Hernandez (SDI S.A.), Francico Padilla (SDI S.A.),
+-- Silfredo Godoy Chavez (CaribeNet S.A.),
+-- Lourdes Mejía Martinez (CaribeNet S.A.) y Dirk Enrique Seiffert (CaribeNet S.A.)
+-- Si quieres aportar: Contactenos www.caribenet.com - info@caribenet.com
+--
+
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1', 'ACTIVO', 'H', 'A', '', '1');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('11', 'ACTIVO DISPONIBLE', 'H', 'A', '', '11');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1105', 'CAJA', 'H', 'A', '', '1105');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('110505', 'CAJA GENERAL', 'H', 'A', '', '110505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('110510', 'CAJAS MENORES', 'H', 'A', '', '110510');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1110', 'BANCOS', 'H', 'A', '', '1110');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('111005', 'BANCOS MONEDA NACIONAL', 'H', 'A', '', '111005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1120', 'CUENTAS DE AHORRO', 'H', 'A', '', '1120');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('112005', 'CUENTAS DE AHORRO EN BANCOS', 'H', 'A', '', '112005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('12', 'INVERSIONES', 'H', 'A', '', '12');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1205', 'ACCIONES', 'H', 'A', '', '1205');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1210', 'CUOTAS PARTES DE INTERES SOCIAL', 'H', 'A', '', '1210');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1215', 'BONOS', 'H', 'A', '', '1215');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1220', 'CEDULAS', 'H', 'A', '', '1220');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1225', 'CERTIFICADOS', 'H', 'A', '', '1225');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1230', 'PAPELES COMERCIALES', 'H', 'A', '', '1230');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1235', 'TITULOS', 'H', 'A', '', '1235');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1240', 'ACEPTACIONES BANCARIAS O FINANCI', 'H', 'A', '', '1240');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1245', 'DERECHOS FIDUCIARIOS', 'H', 'A', '', '1245');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('13', 'CUENTAS POR COBRAR', 'H', 'A', '', '13');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1305', 'CUENTAS POR COBRAR CLIENTES', 'H', 'A', '', '1305');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('130505', 'CLIENTES NACIONALES', 'H', 'A', '', '130505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('130510', 'CLIENTES DEL EXTERIOR', 'H', 'A', '', '130510');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1310', 'CUENTAS CORRIENTES COMERCIALES', 'H', 'A', '', '1310');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1330', 'ANTICIPO Y AVANCES', 'H', 'A', '', '1330');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('133005', 'ANTICIPO A PROVEEDORES', 'H', 'A', '', '133005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('133010', 'ANTICIPO A CONTRATISTAS', 'H', 'A', '', '133010');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('133015', 'ANTICIPO A TRABAJADORES', 'H', 'A', '', '133015');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1340', 'PROMESAS DE COMPRAVENTA', 'H', 'A', '', '1340');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('134005', 'DE BIENES RAICES', 'H', 'A', '', '134005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1340050001', 'Promesas Compra Venta Bienes Rai', 'A', 'A', '', '1340050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1345', 'INGRESOS POR COBRAR', 'H', 'A', '', '1345');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1350', 'RETENCIONES SOBRE CONTRATOS', 'H', 'A', '', '1350');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('135005', 'DE CONTRATOS DE CONSTRUCCION', 'H', 'A', '', '135005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('135010', 'DE PRESTACION DE SERVICIOS', 'H', 'A', '', '135010');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('135095', 'RETENCION SOBRE OTROS CONTRATOS', 'H', 'A', '', '135095');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1355', 'ANTICIPO DE IMPUESTOS', 'H', 'A', '', '1355');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('135505', 'ANTICIPO DE IMPUESTO DE RENTA', 'H', 'A', '', '135505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1355050001', 'Anticipo de Impuesto de Renta', 'A', 'A', '', '1355050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('135510', 'ANTICIPO DE IMPTO DE IND. Y CCIO', 'H', 'A', '', '135510');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1355100001', 'Anticipo de Industria y Comercio', 'A', 'A', '', '1355100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('135515', 'RETENCION EN LA FUENTE', 'H', 'A', '', '135515');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1355150002', 'Retefuente 10% Honorarios', 'A', 'A', '', '1355150002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1355150004', 'Retefuente Alquiler Bienes R. 4%', 'A', 'A', '', '1355150004');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1355150005', 'Retefuente Obras Civiles 1%', 'A', 'A', '', '1355150005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1355150006', 'Retefuente 6% servicios', 'A', 'A', '', '1355150006');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1355150007', 'Retencion en la fuente 3.5%', 'A', 'A', '', '1355150007');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('135517', 'IMPUESTO A LAS VENTAS RETENIDO', 'H', 'A', '', '135517');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('135518', 'IMPUESTO DE IND. Y CCIO RETENIDO', 'H', 'A', '', '135518');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1355180001', 'Ica Retenido', 'A', 'A', '', '1355180001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('135520', 'SOBRANTE EN LIQUIDACION PRIVADA', 'H', 'A', '', '135520');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1355200001', 'Saldo a Favor en Renta', 'A', 'A', '', '1355200001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1355200002', 'Sobrante en Declaracion de IVA', 'A', 'A', '', '1355200002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1380', 'DEUDORES VARIOS', 'H', 'A', '', '1380');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('138020', 'CUENTAS POR COBRAR A TERCEROS', 'H', 'A', '', '138020');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1380200001', 'Cuentas por Cobrar a Terceros', 'A', 'A', '', '1380200001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('138095', 'OTROS DEUDORES VARIOS', 'H', 'A', '', '138095');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1380950001', 'Deudores Varios Otros', 'A', 'A', '', '1380950001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1390', 'DEUDAS DE DIFICIL COBRO', 'H', 'A', '', '1390');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1399', 'PROVISIONES', 'H', 'A', '', '1399');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('139905', 'PROVISION CLIENTES', 'H', 'A', '', '139905');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1399050001', 'Provision cartera Dificil Cobro', 'A', 'A', '', '1399050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('14', 'INVENTARIOS', 'H', 'A', '', '14');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1410', 'PRODUCTOS EN PROCESO', 'H', 'A', '', '1410');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('141005', 'PRODUCTOS EN PROCESO', 'H', 'A', '', '141005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('141099', 'AJ. POR INFLACION INV. EN PROCES', 'H', 'A', '', '141099');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1415', 'OBRAS DE CONSTRUCCION EN CURSO', 'H', 'A', '', '1415');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1420', 'CONTRATOS EN EJECUCION', 'H', 'A', '', '1420');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('142099', 'AJ.POR INFLACION CTOS EN EJECUCI', 'H', 'A', '', '142099');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1430', 'PRODUCTOS TERMINADOS', 'H', 'A', '', '1430');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('143005', 'PRODUCTOS MANUFACTURADOS', 'H', 'A', '', '143005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('143099', 'AJ.POR INFLACION INV.PROD.TERMIN', 'H', 'A', '', '143099');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1435', 'MERCANCIAS NO FABRICADAS', 'H', 'A', '', '1435');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('143505', 'MCIA NO FABRICADA POR LA EMPRESA', 'H', 'A', '', '143505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('143599', 'AJ.POR INFL.MCIA NO FAB.EMPRESA', 'H', 'A', '', '143599');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1465', 'INVENTARIOS EN TRANSITO', 'H', 'A', '', '1465');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('146505', 'INVENTARIOS EN TRANSITO', 'H', 'A', '', '146505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('146599', 'AJ.POR INFLACION INV.EN TRANSITO', 'H', 'A', '', '146599');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('15', 'PROPIEDAD PLANTA Y EQUIPO', 'H', 'A', '', '15');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1504', 'TERRENOS', 'H', 'A', '', '1504');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1508', 'CONSTRUCCIONES EN CURSO', 'H', 'A', '', '1508');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1512', 'MAQUINARIA Y EQUIPO EN MONTAJE', 'H', 'A', '', '1512');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1516', 'CONSTRUCCIONES Y EDIFICACIONES', 'H', 'A', '', '1516');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('151610', 'OFICINAS', 'H', 'A', '', '151610');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('151699', 'AJUSTES POR INFLACION CONSTRUCCI', 'H', 'A', '', '151699');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('15169910', 'AJ. INFL. OFICINAS - LOCALES', 'H', 'A', '', '15169910');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1520', 'MAQUINARIA Y EQUIPO', 'H', 'A', '', '1520');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('152001', 'CONTRATOS YOPAL', 'H', 'A', '', '152001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('152002', 'BODEGA', 'H', 'A', '', '152002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('152099', 'AJUSTES POR INFLACION', 'H', 'A', '', '152099');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('15209902', 'AJUSTES POR INFLACION EQ.BODEGA', 'H', 'A', '', '15209902');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1524', 'EQUIPOS DE OFICINA', 'H', 'A', '', '1524');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('152405', 'MUEBLES Y ENSERES', 'H', 'A', '', '152405');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('152410', 'EQUIPOS', 'H', 'A', '', '152410');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('152499', 'AJUSTES POR INFLACION', 'H', 'A', '', '152499');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('15249910', 'AJUSTES POR INFLACION', 'H', 'A', '', '15249910');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1528', 'EQUIPOS DE COMPUTACION Y COMUNIC', 'H', 'A', '', '1528');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('152805', 'EQUIPOS DE PROCESAMIENTO DE DATO', 'H', 'A', '', '152805');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1528050001', 'Cinco Computadores', 'A', 'A', '', '1528050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('152899', 'AJUSTES POR INFLACION', 'H', 'A', '', '152899');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('15289905', 'AJ. INFL. EQ. PROCESAMIENTO DATO', 'H', 'A', '', '15289905');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1528990501', 'Aj. por Inflac. Cinco Computador', 'A', 'A', '', '1528990501');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1540', 'FLOTA Y EQUIPO DE TRANSPORTE', 'H', 'A', '', '1540');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('154005', 'AUTOS, CAMIONETAS Y CAMPEROS', 'H', 'A', '', '154005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('154099', 'AJUSTES POR INFLACION', 'H', 'A', '', '154099');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('15409905', 'AJ. INFL. AUTOS CAMPEROS CMIONET', 'H', 'A', '', '15409905');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1540990501', 'Aj. Infl. Autos y Camperos', 'A', 'A', '', '1540990501');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1592', 'DEPRECIACION ACUMULADA', 'H', 'A', '', '1592');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('159205', 'DEPREC.DE CONSTRUCCIONES Y EDIFI', 'H', 'A', '', '159205');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('159210', 'DEPREC. MAQUINARIA Y EQUIPO', 'H', 'A', '', '159210');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('159215', 'DEPRECIACION EQUIPO DE OFICINA', 'H', 'A', '', '159215');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('159220', 'DEPRECIACION EQ. COMPUTACION Y C', 'H', 'A', '', '159220');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1592200001', 'Depreciacion Cinco Computadores', 'A', 'A', '', '1592200001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('159235', 'DEPRECIACION FLOTA DE TRANSPORTE', 'H', 'A', '', '159235');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('159299', 'AJUSTES POR INFLACION', 'H', 'A', '', '159299');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1592990005', 'Aj.Infl. Construc. y Edificacion', 'A', 'A', '', '1592990005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1592990010', 'Aj.Infl. Maquinaria y Equipo', 'A', 'A', '', '1592990010');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1592990015', 'Aj. Infl. Equipos de Oficina', 'A', 'A', '', '1592990015');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1592990020', 'Aj. Infl. Eq. Computac. y Comuni', 'A', 'A', '', '1592990020');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1592990035', 'Aj. Infl. Flota y Eq. de transpo', 'A', 'A', '', '1592990035');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('19', 'VALORIZACIONES', 'H', 'A', '', '19');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1905', 'VALORIZACIONES DE INVERSIONES', 'H', 'A', '', '1905');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1910', 'DE PROPIEDAD PLANTA Y EQUIPOS', 'H', 'A', '', '1910');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('191008', 'DE CONSTRUCCIONES Y EDIFICACIONE', 'H', 'A', '', '191008');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1995', 'VALORIZACION DE OTROS ACTIVOS', 'H', 'A', '', '1995');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2', 'PASIVOS', 'H', 'L', '', '2');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('21', 'OBLIGACIONES FINANCIERAS', 'H', 'L', '', '21');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2105', 'BANCOS NACIONALES', 'H', 'L', '', '2105');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('210505', 'SOBREGIROS', 'H', 'L', '', '210505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2105050001', 'Sobregiros Bancarios', 'A', 'L', '', '2105050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('210510', 'PAGARES', 'H', 'L', '', '210510');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2105100001', 'Pagares', 'A', 'L', '', '2105100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2130', 'ENTIDADES FINANCIERAS DEL EXTERI', 'H', 'L', '', '2130');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2145', 'OBLIGACIONES GUBERNAMENTALES', 'H', 'L', '', '2145');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2195', 'OTRAS OBLIGACIONES', 'H', 'L', '', '2195');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('219505', 'OBLIGACIONES CON PARTICULARES', 'H', 'L', '', '219505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2195050001', 'Otras obligaciones con Particula', 'A', 'L', '', '2195050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('219510', 'OBLIGACIONES COMPA?IAS VINCULADA', 'H', 'L', '', '219510');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('22', 'PROVEEDORES', 'H', 'L', '', '22');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2205', 'PROVEEDORES NACIONALES', 'H', 'L', '', '2205');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('220505', 'PROVEEDORES NACIONALES', 'H', 'L', '', '220505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('23', 'CUENTAS POR PAGAR', 'H', 'L', '', '23');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2320', 'CUENTAS POR PAGAR A CONTRATISTAS', 'H', 'L', '', '2320');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('232005', 'CUENTAS POR PAGAR A CONTRATISTAS', 'H', 'L', '', '232005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2335', 'COSTOS Y GASTOS POR PAGAR', 'H', 'L', '', '2335');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('233505', 'GASTOS FINANCIEROS', 'H', 'L', '', '233505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('233510', 'GASTOS LEGALES', 'H', 'L', '', '233510');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('233515', 'LIBROS SUSCRIPCIONES PERIODICOS', 'H', 'L', '', '233515');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('233520', 'COMISIONES', 'H', 'L', '', '233520');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('233525', 'HONORARIOS', 'H', 'L', '', '233525');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('233530', 'SERVICIOS TECNICOS', 'H', 'L', '', '233530');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('233535', 'SERVICIOS DE MANTENIMIENTO', 'H', 'L', '', '233535');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('233540', 'ARRENDAMIENTOS', 'H', 'L', '', '233540');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('233545', 'TRANSPORTES FLETES Y ACARREOS', 'H', 'L', '', '233545');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('233550', 'SERVICIOS PUBLICOS', 'H', 'L', '', '233550');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('233555', 'SEGUROS', 'H', 'L', '', '233555');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('233560', 'GASTOS DE VIAJE', 'H', 'L', '', '233560');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('233565', 'GASTOS DE REPRESENTACION Y RELAC', 'H', 'L', '', '233565');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('233570', 'SERVICIOS ADUANEROS', 'H', 'L', '', '233570');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('233595', 'OTROS COSTOS Y GASTOS POR PAGAR', 'H', 'L', '', '233595');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2355', 'DEUDAS CON SOCIOS Y ACCIONISTAS', 'H', 'L', '', '2355');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('235505', 'ACCIONISTAS', 'H', 'L', '', '235505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('235510', 'SOCIOS', 'H', 'L', '', '235510');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2360', 'DIVIDENDOS O PARTICIPACION POR P', 'H', 'L', '', '2360');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('236005', 'DIVIDENDOS POR PAGAR', 'H', 'L', '', '236005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('236010', 'PARTICIPACIONES POR PAGAR', 'H', 'L', '', '236010');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2365', 'RETENCION EN LA FUENTE', 'H', 'L', '', '2365');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('236505', 'SALARIOS Y PAGOS LABORALES', 'H', 'L', '', '236505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('236510', 'DIVIDENDO Y/O PARTICIPACIONES', 'H', 'L', '', '236510');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('236515', 'HONORARIOS', 'H', 'L', '', '236515');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('236520', 'COMISIONES', 'H', 'L', '', '236520');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('236525', 'SERVICIOS', 'H', 'L', '', '236525');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2365250002', 'Servicios Hoteleros 3.5%', 'A', 'L', '', '2365250002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('236530', 'ARRENDAMIENTOS', 'H', 'L', '', '236530');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2365300002', 'Arriendo Inmuebles 4%', 'A', 'L', '', '2365300002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('236535', 'RENDIMIENTOS FINANCIERSO', 'H', 'L', '', '236535');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('236540', 'RETENCION POR COMPRAS', 'H', 'L', '', '236540');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2368', 'IMPTO DE IND. Y CCIO RETENIDO', 'H', 'L', '', '2368');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('236801', 'SECTOR INDUSTRIAL', 'H', 'L', '', '236801');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2368010003', 'Demas Activ. Industriales 7xmil', 'A', 'L', '', '2368010003');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('236802', 'SECTOR COMERCIAL', 'H', 'L', '', '236802');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2368020004', 'Demas Activ. Comerciales 7xmil', 'A', 'L', '', '2368020004');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('236803', 'SECTOR SERVICIOS', 'H', 'L', '', '236803');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2368030001', 'Retencin ICA 6xMil', 'A', 'L', '', '2368030001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2368030009', 'Demas Activ. Servicios 8xmil', 'A', 'L', '', '2368030009');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2370', 'RETENCIONES Y APORTES DE NOMINA', 'H', 'L', '', '2370');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('237005', 'APORTES A EPS', 'H', 'L', '', '237005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2370050001', 'Aportes a EPS', 'A', 'L', '', '2370050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('237006', 'APORTES A ARP', 'H', 'L', '', '237006');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('237010', 'APORTES A IDBF, SENA Y CAJAS COM', 'H', 'L', '', '237010');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2380', 'ACREEDORES VARIOS', 'H', 'L', '', '2380');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('238030', 'FONDOS DE CESANTIAS Y/O PENSION', 'H', 'L', '', '238030');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('238095', 'VARIOS', 'H', 'L', '', '238095');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('24', 'IMPUESTOS GRAVAMENES Y TASAS', 'H', 'L', '', '24');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2404', 'IMPUESTO DE RENTA', 'H', 'L', '', '2404');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('240405', 'VIGENCIA FISCAL CORRIENTE', 'H', 'L', '', '240405');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2404050001', 'IMPORENTA VIGENCIA ACTUAL', 'A', 'L', '', '2404050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('240410', 'VIGENCIAS FISCALES ANTERIORES', 'H', 'L', '', '240410');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2404100001', 'IMPORENTA VIGENCIA ANTERIORES', 'A', 'L', '', '2404100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2408', 'IMPUESTO A LAS VENTAS POR PAGAR', 'H', 'L', '', '2408');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('240805', 'IVA DESCONTABLE', 'H', 'L', '', '240805');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('240810', 'IVA GENERADO EN VENTAS', 'H', 'L', '', '240810');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('240815', 'IMPUESTOS POR PAGAR ANTERIORES', 'H', 'L', '', '240815');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2408150001', 'ViGencia Fiscal Anterior', 'A', 'L', '', '2408150001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2412', 'IMPUESTO DE IND. Y COMERCIO', 'H', 'L', '', '2412');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('241205', 'VIGENCIA FISCAL CORRIENTE', 'H', 'L', '', '241205');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2412050001', 'ICA POR PAGAR', 'A', 'L', '', '2412050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('241210', 'VIGENCIAS FISCALES ANTERIORES', 'H', 'L', '', '241210');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('25', 'OBLIGACIONES LABORALES', 'H', 'L', '', '25');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2505', 'SALARIOS POR PAGAR', 'H', 'L', '', '2505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('250505', 'NOMINA POR PAGAR', 'H', 'L', '', '250505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2510', 'CESANTIAS CONSOLIDADAS', 'H', 'L', '', '2510');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2515', 'INTERESES SOBRE CESANTIAS', 'H', 'L', '', '2515');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2520', 'PRIMA DE SERVICIOS', 'H', 'L', '', '2520');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2525', 'VACACIONES CONSOLIDADAS', 'H', 'L', '', '2525');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2530', 'PRESTACIONES EXTRALEGALES', 'H', 'L', '', '2530');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('26', 'PASIVOS ESTIMADOS Y PROVISIONES', 'H', 'L', '', '26');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2605', 'PARA COSTOS Y GASTOS', 'H', 'L', '', '2605');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('260515', 'HONORARIOS', 'H', 'L', '', '260515');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('260525', 'TRANSPORTES FLETES Y ACARREOS', 'H', 'L', '', '260525');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('260530', 'GASTOS DE VIAJE', 'H', 'L', '', '260530');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2610', 'PARA OBLIGACIONES LABORALES', 'H', 'L', '', '2610');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('261005', 'CESANTIAS', 'H', 'L', '', '261005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('261010', 'INTERESES SOBRE CESANTIAS', 'H', 'L', '', '261010');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('261015', 'VACACIONES', 'H', 'L', '', '261015');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('261020', 'PRIMA DE SERVICIOS', 'H', 'L', '', '261020');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2615', 'PARA OBLIGACIONES FISCALES', 'H', 'L', '', '2615');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('261505', 'DE RENTA Y COMPLEMENTARIOS', 'H', 'L', '', '261505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2615050001', 'Impuesto de Renta y Complementar', 'A', 'L', '', '2615050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('261510', 'DE INDUSTRIA Y COMERCIO', 'H', 'L', '', '261510');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('261595', 'OTROS', 'H', 'L', '', '261595');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2630', 'PARA MANTENIMIENTO Y REPARACION', 'H', 'L', '', '2630');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2635', 'PARA CONTINGENCIAS', 'H', 'L', '', '2635');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('263505', 'MULTAS SANCIONES Y LITIGIOS', 'H', 'L', '', '263505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('263510', 'INTERESES POR MULTAS Y SANCIONES', 'H', 'L', '', '263510');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('28', 'OTROS PASIVOS', 'H', 'L', '', '28');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2805', 'ANTICIPOS Y AVANCES RECIBIDOS', 'H', 'L', '', '2805');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('280505', 'DE CLIENTES', 'H', 'L', '', '280505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('280510', 'SOBRE CONTRATOS', 'H', 'L', '', '280510');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2805100001', 'Anticipo Recibido Sobre Contrato', 'A', 'L', '', '2805100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('280515', 'PARA OBRAS EN PROCESO', 'H', 'L', '', '280515');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2815', 'INGRESOS RECIBIDOS PARA TERCEROS', 'H', 'L', '', '2815');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('281505', 'VALORES RECIBIDOS PARA TERCEROS', 'H', 'L', '', '281505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('281510', 'VENTA POR CUENTA DE TERCEROS', 'H', 'L', '', '281510');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2825', 'RETENCION A TERCEROS SOBRE CONTR', 'H', 'L', '', '2825');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('282505', 'CUMPLIMIENTO OBLIGACIONES LABORA', 'H', 'L', '', '282505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3', 'PATRIMONIO', 'H', 'Q', '', '3');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('31', 'CAPITAL SOCIAL', 'H', 'Q', '', '31');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3105', 'CAPITAL SUSCRITO Y PAGADO', 'H', 'Q', '', '3105');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('310505', 'CAPITAL AUTORIZADO', 'H', 'Q', '', '310505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3105050001', 'Capital Suscrito y Pagado', 'A', 'Q', '', '3105050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('310510', 'CAPITAL POR SUSCRIBIR (DB)', 'H', 'Q', '', '310510');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('310515', 'CAPITAL SUSCRITO POR COBRAR (DB)', 'H', 'Q', '', '310515');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3115', 'APORTES SOCIALES', 'H', 'Q', '', '3115');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('33', 'RESERVAS', 'H', 'Q', '', '33');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3305', 'RESERVAS OBLIGATORIAS', 'H', 'Q', '', '3305');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('330505', 'RESERVA LEGAL', 'H', 'Q', '', '330505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3305050001', 'Reserva Legal', 'A', 'Q', '', '3305050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3310', 'RESERVAS ESTATUTARIAS', 'H', 'Q', '', '3310');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3315', 'RESERVAS OCASIONALES', 'H', 'Q', '', '3315');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('34', 'REVALORIZACION DEL PATRIMONIO', 'H', 'Q', '', '34');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3405', 'AJUSTES POR INFLACION', 'H', 'Q', '', '3405');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('340505', 'DE CAPITAL SOCIAL', 'H', 'Q', '', '340505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3405050001', 'AxI CAPITAL', 'A', 'Q', '', '3405050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('340510', 'DE SUPERAVIT DE CAPITAL', 'H', 'Q', '', '340510');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('340515', 'DE RESERVAS', 'H', 'Q', '', '340515');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3405150001', 'AxI RESERVA LEGAL', 'A', 'Q', '', '3405150001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('340520', 'DE RESULTADO DE EJERC. ANTERIORE', 'H', 'Q', '', '340520');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3405200001', 'AxI RESULTADOS ANTERIORES', 'A', 'Q', '', '3405200001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('340525', 'DE ACTIVOS DE PERIODO IMPRODUCTI', 'H', 'Q', '', '340525');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('340530', 'DE SANEAMIENTO FISCAL', 'H', 'Q', '', '340530');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('340535', 'DE AJUSTES DECRETO 3019 DE 1989', 'H', 'Q', '', '340535');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('340540', 'DE DIVIDENDOS Y PARTICIPACIONES', 'H', 'Q', '', '340540');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('340545', 'SUPERAVIT METODO DE PARTICIPACIO', 'H', 'Q', '', '340545');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('36', 'RESULTADOS DE EJERCICIO', 'H', 'Q', '', '36');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3605', 'UTILIDAD DEL EJERCICIO', 'H', 'Q', '', '3605');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('360505', 'UTILIDAD DEL EJERCICIO', 'H', 'Q', '', '360505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3605050001', 'Utilidad del Ejercicio', 'A', 'Q', '', '3605050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3605050002', 'Utilidad de Ajustes por Inflacio', 'A', 'Q', '', '3605050002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3610', 'PERDIDAS DEL EJERCICIO', 'H', 'Q', '', '3610');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('361005', 'PERDIDA DEL EJERCICIO', 'H', 'Q', '', '361005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3610050001', 'Perdida del Ejercicio', 'A', 'Q', '', '3610050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('37', 'RESULTADOS EJERCICIOS ANRERIORES', 'H', 'Q', '', '37');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3705', 'UTILIDADES ACUMULADAS', 'H', 'Q', '', '3705');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('370510', 'UTILIDADES ACUMULADAS', 'H', 'Q', '', '370510');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3705100001', 'Utilidades Acumuladas', 'A', 'Q', '', '3705100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3710', 'PERDIDAS ACUMULADAS', 'H', 'Q', '', '3710');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('371010', 'PERDIDAS ACUMULADAS', 'H', 'Q', '', '371010');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3710100001', 'Perdidas Acumuladas', 'A', 'Q', '', '3710100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('38', 'SUPERAVIT POR VALORIZACIONES', 'H', 'Q', '', '38');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3805', 'DE INVERSIONES', 'H', 'Q', '', '3805');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('380505', 'DE ACCIONES', 'H', 'Q', '', '380505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('380510', 'CUOTAS O PARTES DE INTERES SOCIA', 'H', 'Q', '', '380510');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3810', 'DE PROPIEDAD PLANTA Y EQUIPO', 'H', 'Q', '', '3810');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('381008', 'CONSTRUCCIONES Y EDIFICACIONES', 'H', 'Q', '', '381008');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3810080001', 'Superavit por Valorizacion C y E', 'A', 'Q', '', '3810080001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3895', 'DE OTROS ACTIVOS', 'H', 'Q', '', '3895');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4', 'INGRESOS', 'H', 'I', '', '4');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('41', 'INGRESOS OPERACIONALES', 'H', 'I', '', '41');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4120', 'INDUSTRIA MANUFACTURERA', 'H', 'I', '', '4120');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4130', 'CONSTRUCCION', 'H', 'I', '', '4130');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('413005', 'PREPARACION DE TERRENOS', 'H', 'I', '', '413005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('413010', 'CONSTRUCCION Y OBRAS CIVILES', 'H', 'I', '', '413010');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('413025', 'ALQUILER DE EQUIPOS CON OPERARIO', 'H', 'I', '', '413025');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('413095', 'ACTIVIDADES CONEXAS', 'H', 'I', '', '413095');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4135', 'COMERCIO AL POR MAYOR', 'H', 'I', '', '4135');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('413595', 'ACTIVIDADES CONEXAS', 'H', 'I', '', '413595');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4150', 'ACTIVIDAD FINANCIERA', 'H', 'I', '', '4150');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('415030', 'COMISIONES', 'H', 'I', '', '415030');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4175', 'DEVOLUCIONES EN VENTAS', 'H', 'I', '', '4175');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('417505', 'DEVOLUCIONES EN VENTAS', 'H', 'I', '', '417505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4175050001', 'Devoluciones en Ventas', 'A', 'I', '', '4175050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4175050002', 'Descuento en Ventas', 'A', 'I', '', '4175050002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('42', 'INGRESOS NO OPERACIONALES', 'H', 'I', '', '42');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4205', 'OTRAS VENTAS', 'H', 'I', '', '4205');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('420505', 'MATERIA PRIMA', 'H', 'I', '', '420505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('420510', 'MATERIAL DE DESECHO', 'H', 'I', '', '420510');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4210', 'INGRESOS FINANCIEROS', 'H', 'I', '', '4210');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('421005', 'INTERESES', 'H', 'I', '', '421005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('421040', 'DESCUENTOS COMERCIALES CONDICION', 'H', 'I', '', '421040');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4210400001', 'Descuentos Financieros', 'A', 'I', '', '4210400001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4215', 'DIVIDENDOS Y PARTICIPACIONES', 'H', 'I', '', '4215');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4220', 'ARRENDAMIENTOS', 'H', 'I', '', '4220');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('422010', 'CONSTRUCCIONES Y EDIFICACIONES', 'H', 'I', '', '422010');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('422015', 'MAQUINARIA Y EQUIPOS', 'H', 'I', '', '422015');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4225', 'COMISIONES', 'H', 'I', '', '4225');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4230', 'HONORARIOS', 'H', 'I', '', '4230');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4235', 'SERVICIOS', 'H', 'I', '', '4235');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('423595', 'OTROS SERVICIOS', 'H', 'I', '', '423595');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4240', 'UTILIDAD EN VENTA DE INVERSIONES', 'H', 'I', '', '4240');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4245', 'UTIL.EN VENTA PROP.PLANTA Y EQUI', 'H', 'I', '', '4245');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4250', 'RECUPERACIONES', 'H', 'I', '', '4250');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('425005', 'DEUDAS MALAS', 'H', 'I', '', '425005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('425015', 'RECLAMOS', 'H', 'I', '', '425015');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4255', 'INDEMNIZACIONES', 'H', 'I', '', '4255');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4260', 'PARTICIPACION EN CONCESIONES', 'H', 'I', '', '4260');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4265', 'INGRESOS DE EJERCICIOS ANTERIORE', 'H', 'I', '', '4265');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4275', 'DEVOLUCIONES EN OTRAS VENTAS', 'H', 'I', '', '4275');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4295', 'DIVERSOS', 'H', 'I', '', '4295');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('429503', 'CERT', 'H', 'I', '', '429503');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('429505', 'APROVECHAMIENTOS', 'H', 'I', '', '429505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('429507', 'AUXILIOS', 'H', 'I', '', '429507');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('429533', 'MULTAS Y RECARGOS', 'H', 'I', '', '429533');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('429535', 'PREAVISOS DESCONTADOS', 'H', 'I', '', '429535');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('429537', 'RECLAMOS', 'H', 'I', '', '429537');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('429553', 'SOBRANTES DE CAJA', 'H', 'I', '', '429553');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('429581', 'AJUSTE AL PESO', 'H', 'I', '', '429581');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('429583', 'LLAMADAS TELEFONICAS', 'H', 'I', '', '429583');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('47', 'AJUSTES POR INFLACION', 'H', 'I', '', '47');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4705', 'CORRECCION MONETARIA', 'H', 'I', '', '4705');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('470505', 'INVERSIONES (CR)', 'H', 'I', '', '470505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('470510', 'INVENTARIOS (CR)', 'H', 'I', '', '470510');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4705100005', 'Inventario Materia Prima', 'A', 'I', '', '4705100005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4705100010', 'Inventario Productos en Proceso', 'A', 'I', '', '4705100010');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4705100015', 'Obras de construccion en curso', 'A', 'I', '', '4705100015');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4705100020', 'Inventario contratos en ejecucio', 'A', 'I', '', '4705100020');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4705100030', 'Inventario Producto terminado', 'A', 'I', '', '4705100030');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4705100035', 'Inv. Mercancia no Fabricada', 'A', 'I', '', '4705100035');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4705100065', 'Inventarios en transito', 'A', 'I', '', '4705100065');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('470515', 'PROPIEDAD PLANTA Y EQUIPO (CR)', 'H', 'I', '', '470515');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4705150001', 'Terrenos', 'A', 'I', '', '4705150001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4705150003', 'Construcciones en Curso', 'A', 'I', '', '4705150003');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4705150004', 'Maquinaria y Equipo en Montaje', 'A', 'I', '', '4705150004');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4705150005', 'Construcciones y Edificaciones', 'A', 'I', '', '4705150005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4705150006', 'Maquinaria y Equipos', 'A', 'I', '', '4705150006');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4705150007', 'Equipos de Oficina', 'A', 'I', '', '4705150007');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4705150008', 'Equipos de Computacion y comunic', 'A', 'I', '', '4705150008');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4705150011', 'Flota y Equipo de transporte', 'A', 'I', '', '4705150011');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('470540', 'PATRIMONIO', 'H', 'I', '', '470540');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4705400001', 'Aj. por Infl. Patrimonio', 'A', 'I', '', '4705400001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('470545', 'DEPRECIACION ACUMULADA (DB)', 'H', 'I', '', '470545');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4705450001', 'Depreciacion Acumulada (DB)', 'A', 'I', '', '4705450001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('470550', 'DEPRECIACION DIFERIDA (CR)', 'H', 'I', '', '470550');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('470560', 'AMORTIZACION ACUMULADA (DB)', 'H', 'I', '', '470560');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5', 'GASTOS', 'H', 'E', '', '5');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('51', 'GASTOS OPERACIONALES DE ADMON.', 'H', 'E', '', '51');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5105', 'GASTOS DE PERSONAL', 'H', 'E', '', '5105');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('510548', 'BONIFICACION', 'H', 'E', '', '510548');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('52', 'GASTOS OPERACIONALES DE VENTAS', 'H', 'E', '', '52');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5205', 'GASTOS DE PERSONAL', 'H', 'E', '', '5205');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('520506', 'SUELDOS', 'H', 'E', '', '520506');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('520527', 'AUXILIO DE TRANSPORTE', 'H', 'E', '', '520527');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('520530', 'CESANTIAS', 'H', 'E', '', '520530');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('520533', 'INTERESES SOBRE CESANTIAS', 'H', 'E', '', '520533');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5205330001', 'Intereses Sobre Cesantias', 'A', 'E', '', '5205330001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('520536', 'PRIMAS DE SERVICIOS', 'H', 'E', '', '520536');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('520539', 'VACACIONES', 'H', 'E', '', '520539');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('520548', 'BONIFICACIONES', 'H', 'E', '', '520548');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5205480001', 'Bonificaciones a Empleados', 'A', 'E', '', '5205480001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('520563', 'CAPACITACION AL PERSONAL', 'H', 'E', '', '520563');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5205630001', 'Capacitacion al Personal', 'A', 'E', '', '5205630001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('520568', 'APORTES ARP', 'H', 'E', '', '520568');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('520569', 'APORTES EPS', 'H', 'E', '', '520569');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('520570', 'APORTES A FONDO DE PENSIONES/CES', 'H', 'E', '', '520570');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('520572', 'APORTES CAJAS DE COMPENSACION', 'H', 'E', '', '520572');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('520575', 'APORTES ICBF', 'H', 'E', '', '520575');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('520578', 'APORTES SENA', 'H', 'E', '', '520578');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('520595', 'OTROS GASTOS DE PERSONAL', 'H', 'E', '', '520595');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5205950001', 'Otros Gastos de personal', 'A', 'E', '', '5205950001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5210', 'HONORARIOS', 'H', 'E', '', '5210');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('521005', 'JUNTA DIRECTIVA', 'H', 'E', '', '521005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('521010', 'REVISORIA FISCAL', 'H', 'E', '', '521010');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('521015', 'AUDITORIA EXTERNA', 'H', 'E', '', '521015');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('521025', 'ASESORIA JURIDICA', 'H', 'E', '', '521025');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('521030', 'ASESORIA FINANCIERA', 'H', 'E', '', '521030');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('521035', 'ASESORIA TECNICA', 'H', 'E', '', '521035');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('521095', 'OTROS HONORARIOS', 'H', 'E', '', '521095');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5210950001', 'Estudio y Dise¤o de Planos', 'A', 'E', '', '5210950001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5215', 'IMPUESTOS', 'H', 'E', '', '5215');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('521505', 'INDUSTRIA Y COMERCIO', 'H', 'E', '', '521505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5215050001', 'Impuesto de Industria y Comercio', 'A', 'E', '', '5215050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('521510', 'DE TIMBRES', 'H', 'E', '', '521510');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5215100001', 'Impuesto de Timbre', 'A', 'E', '', '5215100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('521515', 'IMPUESTOS A LA PROPIEDAD RAIZ', 'H', 'E', '', '521515');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5215200001', 'DERECHOS SOBRE INSTRUMENTOS PUBL', 'A', 'E', '', '5215200001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('521540', 'IMPUESTOS SOBRE VEHICULOS', 'H', 'E', '', '521540');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5215400001', 'Impuestos Sobre Vehiculos', 'A', 'E', '', '5215400001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('521595', 'OTROS IMPUESTOS', 'H', 'E', '', '521595');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5220', 'ARRENDAMIENTOS', 'H', 'E', '', '5220');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('522010', 'CONSTRUCCIONES U EDIFICACIONES', 'H', 'E', '', '522010');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('522015', 'MAQUINARIA Y EQUIPO', 'H', 'E', '', '522015');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5220150001', 'Arriendo Maquinaria y Equipo', 'A', 'E', '', '5220150001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('522025', 'EQUIPOS DE COMPUTACION Y COMUNIC', 'H', 'E', '', '522025');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5220250001', 'Alquiler Eq. Computacion y Comun', 'A', 'E', '', '5220250001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('522040', 'FLOTA Y EQUIPO DE TRANSPORTE', 'H', 'E', '', '522040');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5220400001', 'Alquiler de Vehiculos y Camiones', 'A', 'E', '', '5220400001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5230', 'SEGUROS', 'H', 'E', '', '5230');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('523005', 'MANEJO', 'H', 'E', '', '523005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('523010', 'CUMPLIMIENTO', 'H', 'E', '', '523010');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5230100001', 'Polizas de Cumplimiento', 'A', 'E', '', '5230100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('523040', 'FLOTA Y EQUIPO DE TRANSPORTE', 'H', 'E', '', '523040');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('523075', 'OBLIGATORIO ACCIDENTES DE TRANSI', 'H', 'E', '', '523075');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5235', 'SERVICIOS', 'H', 'E', '', '5235');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('523505', 'ASEO Y VIGILANCIA', 'H', 'E', '', '523505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('523515', 'ASSITENCIA TECNICA', 'H', 'E', '', '523515');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('523520', 'PROCESAMIENTO ELECTRONICO DE DAT', 'H', 'E', '', '523520');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5235200001', 'Procesamiento electronico de Dat', 'A', 'E', '', '5235200001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('523525', 'ACUEDUCTO Y ALCANTARILLADO', 'H', 'E', '', '523525');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('523530', 'ENERGIA ELECTRICA', 'H', 'E', '', '523530');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('523535', 'TELEFONO', 'H', 'E', '', '523535');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('523540', 'CORREO PORTES Y TELEGRAMAS', 'H', 'E', '', '523540');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('523545', 'FAX Y TELEX', 'H', 'E', '', '523545');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5235450001', 'fax y Telex', 'A', 'E', '', '5235450001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('523550', 'TRANSPORTES FLETES Y ACARREOS', 'H', 'E', '', '523550');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('523555', 'GAS', 'H', 'E', '', '523555');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('523560', 'PUBLICIDAD PROPAGANDA Y PROMOCIO', 'H', 'E', '', '523560');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5235600001', 'Publicidad Propaganda y Promocio', 'A', 'E', '', '5235600001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('523595', 'OTROS SERVICIOS', 'H', 'E', '', '523595');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5235950002', 'Fabricacion y Elaboracion', 'A', 'E', '', '5235950002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5235950004', 'Capacitacion a Contratistas', 'A', 'E', '', '5235950004');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5235950007', 'Digitación y archivo documentos', 'A', 'E', '', '5235950007');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5240', 'GASTOS LEGALES', 'H', 'E', '', '5240');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('524005', 'NOTARIALES', 'H', 'E', '', '524005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('524010', 'REGISTRO MERCANTIL', 'H', 'E', '', '524010');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5240100001', 'Registro Mercantil', 'A', 'E', '', '5240100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('524015', 'TRAMITES Y LICENCIAS', 'H', 'E', '', '524015');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('524095', 'OTROS GASTOS LEGALES', 'H', 'E', '', '524095');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5240950001', 'Tramite de Vehiculos', 'A', 'E', '', '5240950001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5240950003', 'Sobretasa', 'A', 'E', '', '5240950003');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5240950004', 'Dcmtos Varios en Camara Comercio', 'A', 'E', '', '5240950004');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5240950005', 'Floio para Libros Legales', 'A', 'E', '', '5240950005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5240950006', 'Impuesto para preservar la Segur', 'A', 'E', '', '5240950006');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5245', 'MANTENIMIENTO Y REPARACIONES', 'H', 'E', '', '5245');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('524510', 'CONSTRUCCIONES Y EDIFICACIONES', 'H', 'E', '', '524510');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5245100001', 'Construcciones y Edificaciones', 'A', 'E', '', '5245100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('524515', 'MAQUINARIA Y EQUIPOS', 'H', 'E', '', '524515');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5245150001', 'Equipo de Refrigeracion', 'A', 'E', '', '5245150001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5245150002', 'Equipos de Ingenieria Civil', 'A', 'E', '', '5245150002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5245150003', 'Repuestos y Herramientas', 'A', 'E', '', '5245150003');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('524520', 'EQUIPO DE OFICINA', 'H', 'E', '', '524520');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5245200001', 'Equipo de Oficina', 'A', 'E', '', '5245200001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('524525', 'EQUIPO DE COMPUTACION Y COMUNICA', 'H', 'E', '', '524525');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5245250001', 'Mtto y Rep. Eq. Computacion y Co', 'A', 'E', '', '5245250001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('524540', 'FLOTA Y EQUIPO DE TRANSPORTE', 'H', 'E', '', '524540');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5245400001', 'Mantenimiento de Vehiculos', 'A', 'E', '', '5245400001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5250', 'ADECUACION E INSTALACION', 'H', 'E', '', '5250');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('525005', 'INSTALACIONES ELECTRICAS', 'H', 'E', '', '525005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5250050001', 'Instalaciones Electricas', 'A', 'E', '', '5250050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('525010', 'ARREGLOS ORNAMENTALES', 'H', 'E', '', '525010');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('525015', 'REPARACIONES LOCATIVAS', 'H', 'E', '', '525015');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('525095', 'OTROS ADECUACIONES E INSTALACION', 'H', 'E', '', '525095');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5255', 'GASTOS DE VIAJE', 'H', 'E', '', '5255');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('525505', 'ALOJAMIENTO Y MANUTENCION', 'H', 'E', '', '525505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('525515', 'PASAJES AEREOS', 'H', 'E', '', '525515');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('525520', 'PASAJES TERRESTRES', 'H', 'E', '', '525520');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5255200001', 'Pasajes Terrestres', 'A', 'E', '', '5255200001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('525595', 'OTROS GASTOS DE VIAJE', 'H', 'E', '', '525595');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5255950002', 'Llamadas Telefonicas en Viajes', 'A', 'E', '', '5255950002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5260', 'DEPRECIACIONES', 'H', 'E', '', '5260');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('526005', 'CONSTRUCCIONES Y EDIFICACIONES', 'H', 'E', '', '526005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5260050001', 'Depreciacion Locales Tequendama', 'A', 'E', '', '5260050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('526010', 'MAQUINARIA Y EQUIPO', 'H', 'E', '', '526010');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5260100001', 'Depreciacion de maq. y Equipos', 'A', 'E', '', '5260100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('526015', 'EQUIPOS DE OFICINA', 'H', 'E', '', '526015');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5260150001', 'Depreciacion Equipos de Oficina', 'A', 'E', '', '5260150001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('526020', 'EQUIPOS DE COMPUTACION Y COMUNIC', 'H', 'E', '', '526020');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5260200001', 'Depreciacion Eq. de Computacion', 'A', 'E', '', '5260200001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('526035', 'FLOTA Y EQUIPO DE TRANSPORTE', 'H', 'E', '', '526035');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5260350001', 'Depreciacion de Vehiculos', 'A', 'E', '', '5260350001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('526099', 'AJUSTES POR INLFACION', 'H', 'E', '', '526099');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5260990005', 'Aj. Infl. Construcciones y Edif.', 'A', 'E', '', '5260990005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5260990010', 'Aj. Infl. Maquinaria y Equipo', 'A', 'E', '', '5260990010');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5260990015', 'Aj. Infl. Equipos de Oficina', 'A', 'E', '', '5260990015');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5260990020', 'Aj. Infl. Eq. Computacion y Com.', 'A', 'E', '', '5260990020');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5260990035', 'Aj. Infl. Vehiculos', 'A', 'E', '', '5260990035');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5295', 'GASTOS DIVERSOS', 'H', 'E', '', '5295');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('529505', 'COMISIONES', 'H', 'E', '', '529505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('529510', 'LIBROS SUSCRIPCIONES PERIODICOS', 'H', 'E', '', '529510');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5295100001', 'Libros Suscripciones periodicos', 'A', 'E', '', '5295100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('529520', 'GASTOS DE REPRESENTACION Y REL.P', 'H', 'E', '', '529520');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5295200001', 'Gastos de Representacion y Rel.P', 'A', 'E', '', '5295200001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('529525', 'ELEMENTOS DE ASEO Y CAFETERIA', 'H', 'E', '', '529525');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('529530', 'UTILES PAPELERIA Y FOTOCOPIAS', 'H', 'E', '', '529530');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('529535', 'COMBUSTIBLES Y LUBRICANTES', 'H', 'E', '', '529535');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('529545', 'TAXIS Y BUSES', 'H', 'E', '', '529545');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('529550', 'ESTAMPILLAS', 'H', 'E', '', '529550');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5295500001', 'Estampillas', 'A', 'E', '', '5295500001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('529560', 'CASINO Y RESTAURANTE', 'H', 'E', '', '529560');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('529565', 'PARQUEADEROS', 'H', 'E', '', '529565');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5295650001', 'Parqueaderos', 'A', 'E', '', '5295650001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('529595', 'OTROS GASTOS DIVERSOS', 'H', 'E', '', '529595');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5295950001', 'Cargue y Decargue de Materiales', 'A', 'E', '', '5295950001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5295950002', 'Autenticaciones', 'A', 'E', '', '5295950002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5295950004', 'Ajuste al Peso', 'A', 'E', '', '5295950004');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5299', 'PROVISIONES', 'H', 'E', '', '5299');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('529910', 'DEUDORES', 'H', 'E', '', '529910');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5299100001', 'Provision Deudas Dificil Recaudo', 'A', 'E', '', '5299100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('53', 'GASTOS NO OPERACIONALES', 'H', 'E', '', '53');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5305', 'GASTOS FINANCIEROS', 'H', 'E', '', '5305');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('530505', 'GASTOS BANCARIOS', 'H', 'E', '', '530505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5305050001', 'Gastos Bancarios', 'A', 'E', '', '5305050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('530515', 'COMISIONES', 'H', 'E', '', '530515');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5305150001', 'Comisiones Bancarias', 'A', 'E', '', '5305150001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('530520', 'INTERESES', 'H', 'E', '', '530520');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5305200001', 'Intereses Corriente Ptmos Bancar', 'A', 'E', '', '5305200001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5305200002', 'Intereses por Sobregiro Bancario', 'A', 'E', '', '5305200002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5305200003', 'Intereses de Mora', 'A', 'E', '', '5305200003');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5315', 'GASTOS EXTRAORDINARIOS', 'H', 'E', '', '5315');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('531520', 'IMPUESTOS ASUMIDOS', 'H', 'E', '', '531520');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5315200001', 'Impuestos Asumidos', 'A', 'E', '', '5315200001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('531595', 'OTROS GASTOS EXTRAORDINARIOS', 'H', 'E', '', '531595');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5395', 'GASTOS DIVERSOS', 'H', 'E', '', '5395');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('539520', 'MULTAS SANCIONES Y LITIGIOS', 'H', 'E', '', '539520');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5395200001', 'Multas Sanciones y Litigios', 'A', 'E', '', '5395200001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('54', 'IMPUESTO DE RENTA Y COMPLEMENTAR', 'H', 'E', '', '54');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5405', 'IMPUESTO DE RENTA Y COMPLEMENTAR', 'H', 'E', '', '5405');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('540505', 'IMPUESTO DE RENTA Y COMPLEMENTAR', 'H', 'E', '', '540505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5405050001', 'Impuesto de Renta y Complementar', 'A', 'E', '', '5405050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('6', 'COSTO DE VENTA', 'H', 'E', '', '6');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('61', 'COSTO DE VENTAS Y PREST. SERVICI', 'H', 'E', '', '61');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('6135', 'COMERCIO AL POR MAYOR Y MENOR', 'H', 'E', '', '6135');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('613554', 'VTA MAQ. EQ. OFIC. Y SOFTWARE', 'H', 'E', '', '613554');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('6135540001', 'Costo de Ventas', 'A', 'E', '', '6135540001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('62', 'COMPRAS', 'H', 'E', '', '62');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('6205', 'COMPRA DE MERCANCIA', 'H', 'E', '', '6205');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('6210', 'COMPRA DE MATERIA PRIMA', 'H', 'E', '', '6210');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('621001', 'COMPRA DE MATERIA PRIMA', 'H', 'E', '', '621001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1305050002', 'Clientes Nacionales', 'A', 'A', 'AR', '1305050002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2408050001', 'Iva Descontable en compras 16%', 'A', 'L', 'AR_tax:IC_taxpart:IC_taxservice', '2408050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2408050002', 'Iva Descontable en servicios 16%', 'A', 'L', 'AR_tax:IC_taxpart:IC_taxservice', '2408050002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2408050003', 'Iva Descontable Arri. y Hotel 7%', 'A', 'L', 'AR_tax:IC_taxpart:IC_taxservice', '2408050003');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2408050004', 'Iva Descontable en Tiquetes 8%', 'A', 'L', 'AR_tax:IC_taxpart:IC_taxservice', '2408050004');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2408050005', 'Iva Descontable en Servicios 20%', 'A', 'L', 'AR_tax:IC_taxpart:IC_taxservice', '2408050005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2408050010', 'Iva Descon. Reg. Simplif. 12%', 'A', 'L', 'AR_tax:IC_taxpart:IC_taxservice', '2408050010');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1305050001', 'Clientes Nacionales', 'A', 'A', 'AR', '1305050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1330050001', 'Anticipo a Proveedores', 'A', 'A', '', '1330050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1350950001', 'Contratos de Consultoria', 'A', 'A', '', '1350950001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1465050001', 'Inventarios en Transito', 'A', 'A', 'IC', '1465050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2205050002', 'Proveedores Nacionales', 'A', 'L', 'AP', '2205050002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2320050001', 'Cuentas por pagar a Contratistas', 'A', 'L', 'AP', '2320050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2315', 'A COMPA??AS VINCULADAS', 'H', 'L', '', '2315');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2335950001', 'Gastos Causados por Pagar', 'A', 'L', 'AP', '2335950001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2205050001', 'Proveedores Nacionales', 'A', 'L', 'AP', '2205050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2365150002', 'Honorarios Persona Natural 11%', 'A', 'L', 'AP_tax:IC_taxservice', '2365150002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2365150003', 'Honorarios Persona Juridica 10%', 'A', 'L', 'AP_tax:IC_taxservice', '2365150003');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5105480001', 'Bonificaciones a Empleados', 'A', 'E', '', '5105480001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('142005', 'CONTRATOS EN EJECUCION', 'H', 'A', '', '142005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5220100001', 'Arriendo Casa', 'A', 'E', 'IC_expense', '5220100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5255950001', 'Taxis y Buses', 'A', 'E', 'IC_expense', '5255950001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5235550001', 'Gas', 'A', 'E', 'IC_expense', '5235550001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5255150001', 'Pasajes Aereos', 'A', 'E', 'IC_expense', '5255150001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5235250001', 'Acueducto y Alcantarilldo', 'A', 'E', 'IC_expense', '5235250001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2368030002', 'Retencion ICA 8xMil', 'A', 'L', 'AP_tax:IC_taxservice', '2368030002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2380950001', 'Cuentas por pagar', 'A', 'L', 'AP', '2380950001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1330100001', 'Anticipo a Contratistas', 'A', 'A', 'AR', '1330100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2408050006', 'IVA Descontable en compras 20% ', 'A', 'L', 'IC_taxservice', '2408050006');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5295950003', 'Compra de Medicina Contratistas', 'A', 'E', 'IC_expense', '5295950003');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5295600001', 'Casino y Restaurante', 'A', 'E', 'IC_expense', '5295600001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5295450001', 'Taxis y Buses Urbanos', 'A', 'E', 'IC_expense', '5295450001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5295350001', 'Combustibles y lubricantes', 'A', 'E', 'IC_expense', '5295350001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5295050001', 'Comisiones', 'A', 'E', 'IC_expense', '5295050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5255950003', 'Tasa Aeroportuaria', 'A', 'E', 'IC_expense', '5255950003');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5255050001', 'Alojamiento y Manutencion', 'A', 'E', 'IC_expense', '5255050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5250150001', 'Reparaciones Locativas', 'A', 'E', 'IC_expense', '5250150001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5240950002', 'Exp. Certif. Libertad y tradicio', 'A', 'E', 'IC_expense', '5240950002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5240150001', 'Tramites y Licencias', 'A', 'E', 'IC_expense', '5240150001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5235950006', 'Mano de Obra OBRAS CIVILES', 'A', 'E', 'IC_expense', '5235950006');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5235950005', 'Jardineria', 'A', 'E', 'IC_expense', '5235950005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5235950003', 'Digitacion de Planos', 'A', 'E', 'IC_expense', '5235950003');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5235950001', 'Pintura', 'A', 'E', 'IC_expense', '5235950001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5235500001', 'Transportes Fletes y Acarreos', 'A', 'E', 'IC_expense', '5235500001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5235400001', 'Correo Portes y Telegramas', 'A', 'E', 'IC_expense', '5235400001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5235150001', 'Asistencia tecnica', 'A', 'E', 'IC_expense', '5235150001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5235050001', 'Aseo y Vigilancia', 'A', 'E', 'IC_expense', '5235050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5215950001', 'Impuesto de 3 por Mil', 'A', 'E', 'IC_expense', '5215950001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5215150001', 'Impuestos a la Propiedad raiz', 'A', 'E', 'IC_expense', '5215150001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5210950003', 'Asesoria Administrativa y de Mer', 'A', 'E', 'IC_expense', '5210950003');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5210950002', 'Asesoria Contable', 'A', 'E', 'IC_expense', '5210950002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5210250001', 'Asesorias Juridicas', 'A', 'E', 'IC_expense', '5210250001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5205780001', 'Aportes SENA', 'A', 'E', 'IC_expense', '5205780001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5205750001', 'Aportes ICBF', 'A', 'E', 'IC_expense', '5205750001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5205720001', 'Aportes cajas de Compensacion', 'A', 'E', 'IC_expense', '5205720001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5205700001', 'Aportes fondo de Pensiones y Ces', 'A', 'E', 'IC_expense', '5205700001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5205690001', 'Aportes EPS', 'A', 'E', 'IC_expense', '5205690001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5205680001', 'Aportes ARP', 'A', 'E', 'IC_expense', '5205680001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5205390001', 'Vacaciones', 'A', 'E', 'IC_expense', '5205390001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5205360001', 'Primas de Servicios', 'A', 'E', 'IC_expense', '5205360001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5205300001', 'Cesantias', 'A', 'E', 'IC_expense', '5205300001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5205270001', 'Auxilio de transporte', 'A', 'E', 'IC_expense', '5205270001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4295050001', 'Aprovechamiento Material Sobrant', 'A', 'I', 'IC_sale:IC_income', '4295050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4210050001', 'Intereses por Rendimientos Finan', 'A', 'I', 'IC_income', '4210050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2408100001', 'Iva Generado por Ingresos 16%', 'A', 'L', 'AR_tax:IC_taxpart:IC_taxservice', '2408100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2408100002', 'Iva Generado por Ingresos 7%', 'A', 'L', 'AR_tax:IC_taxpart:IC_taxservice', '2408100002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('6210010001', 'Compra de Materia Prima', 'A', 'E', 'IC_cogs', '6210010001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2365400002', 'Compra Combustibles y Lub. 0.1%', 'A', 'L', 'IC_taxservice', '2365400002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2365400001', 'Compras en General 3.5%', 'A', 'L', 'IC_taxpart:IC_taxservice', '2365400001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2365300004', 'Arriendo Maq. Obra Civil 2%', 'A', 'L', 'IC_taxservice', '2365300004');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2365300003', 'Arriendo Bienes Muebles 4%', 'A', 'L', 'IC_taxservice', '2365300003');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2365300001', 'Arriendo Inmuebles 3.5%', 'A', 'L', 'IC_taxservice', '2365300001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2365250004', 'Construccion Obra Civil 1%', 'A', 'L', 'IC_taxservice', '2365250004');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2365250003', 'Transporte de Carga 1%', 'A', 'L', 'IC_taxservice', '2365250003');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2365250001', 'Servicios en General 6%', 'A', 'L', 'IC_taxservice', '2365250001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2365200001', 'Retencion Comision del 11%', 'A', 'L', 'IC_taxpart:IC_taxservice', '2365200001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2365150001', 'Honorarios Persona Natural 10%', 'A', 'L', 'AP_tax:IC_taxservice', '2365150001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5295300001', 'Utiles Papeleria y Fotocopias', 'A', 'E', 'AP_amount:IC_expense', '5295300001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5295250001', 'Elementos de Aseo y Cafeteria', 'A', 'E', 'AP_amount:IC_expense', '5295250001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5235300001', 'Energia Electrica', 'A', 'E', 'AP_amount:IC_expense', '5235300001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5235350001', 'Telefono', 'A', 'E', 'AP_amount:IC_expense', '5235350001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1355150003', 'Retefuente 7% Rendimientos Finan', 'A', 'A', 'IC_taxpart:IC_taxservice', '1355150003');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1355150001', 'Retefuente 2% Factor multiplicad', 'A', 'A', '', '1355150001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1355170001', 'Iva Retenido 75% de 16%', 'A', 'A', 'IC_taxpart:IC_taxservice', '1355170001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2365150004', 'Honorarios Persona Juridica 11%', 'A', 'L', 'CT_tax', '2365150004');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2367050001', 'Iva retenido reg simplif 12% ', 'A', 'L', 'AP_tax', '236705');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('236710', 'IVA RETENIDO AL REGIMEN COMUN ', 'H', 'L', '', '2367');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('236705', 'IVA RETENIDO AL REGIMEN SIMPLIF. ', 'H', 'L', '', '2367');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2367', 'IMPUESTO A LAS VENTAS RETENIDO', 'H', 'L', '', '23');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4295810001', 'Ajuste al Peso', 'A', 'I', '', '4295810001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5240050001', 'Gastos Notariales', 'A', 'E', 'IC_expense', '5240050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('429581001', 'Ajuste', 'A', 'I', '', '429581001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4130950001', 'Consultorias', 'A', 'I', 'AR_amount:IC_income', '4130950001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4130100001', 'Ingresos por Obras Civiles', 'A', 'I', 'AR_amount:IC_income', '4130100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4130950002', 'Interventorias', 'A', 'I', 'AR_amount:IC_income', '4130950002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4220100001', 'Arriendo de locales y oficinas', 'A', 'I', 'AR_amount:IC_income', '4220100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4220150001', 'Arriendo de Maquinaria y Equipos', 'A', 'I', 'AR_amount:IC_income', '4220150001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4235950001', 'Algo',
+'A', 'I', 'AR_amount:IC_income', '4235950001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5205060001', 'Sueldos de Personal', 'A', 'E', 'AP_amount:IC_expense', '5205060001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2370060001', 'Aportes a ARP', 'A', 'L', '', '2370060001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2380950002', 'Otros Acreedores Varios', 'A', 'L', 'AP', '2380950001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2335300001', 'Servicios Tecnicos', 'A', 'L', 'AP', '2335300001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2370100001', 'Aportes a Sena, icbf y Cajas com', 'A', 'L', '', '2370100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2380300001', 'Fondos de Cesantias y/o Pension', 'A', 'L', '', '2380300001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2505050001', 'Salarios por Pagar', 'A', 'L', '', '2505050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2610050001', 'Cesantias', 'A', 'L', '', '2610050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2610100001', 'Intereses Sobre Cesantias', 'A', 'L', '', '2610100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2610150001', 'Vacaciones', 'A', 'L', '', '2610150001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2610200001', 'Prima de Servicios', 'A', 'L', '', '2610200001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2367100001', 'Iva retenido al reg comun 16% ', 'A', 'L', 'CT_tax', '236710');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2367050002', 'Iva retenido Reg Simp.del 7% ', 'A', 'L', 'IC_taxservice', '236705');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2367100002', 'Iva retenido al reg comun 20% ', 'A', 'L', 'IC_taxpart:IC_taxservice', '236710');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2367100003', 'Iva retenido al reg comun del 7% ', 'A', 'L', 'AR_tax:IC_taxpart:IC_taxservice', '236710');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1410990001', 'Aj. por Inflacion Inv. en Proces', 'A', 'A', '', '1410990001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1465990001', 'Aj.por Infl. Inv. en Transito', 'A', 'A', '', '1465990001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1330150001', 'Anticipo a Trabajadores', 'A', 'A', 'AR', '1330150001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1420990001', 'Aj.por Inflacion Ctos en Ejecuci', 'A', 'A', '', '1420990001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1430990001', 'Aj.por Inflacion Inv.Prod.Termin', 'A', 'A', '', '1430990001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1435990001', 'Aj.por Infl.Mcia No Fab.Empresa', 'A', 'A', '', '1435990001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1105050001', 'Caja Mayor', 'A', 'A', 'AR_paid:AP_paid', '1105050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1105100001', 'Caja Menor 1', 'A', 'A', 'AR_paid:AP_paid', '1105100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1105100002', 'Caja Menor 2', 'A', 'A', 'AR_paid:AP_paid', '1105100002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1105100003', 'Caja Menor 3', 'A', 'A', 'AR_paid:AP_paid', '1105100003');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1105100004', 'Caja menor 4', 'A', 'A', 'AR_paid:AP_paid', '1105100004');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1105100005', 'Caja menor 5', 'A', 'A', 'AR_paid:AP_paid', '1105100005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1110050013', 'Banco Ganadero Cta.Cte.xxxxxxxx', 'A', 'A', 'AR_paid:AP_paid', '1110050013');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1110050029', 'Tequendama Cte. #xxxxxxxx', 'A', 'A', 'AR_paid:AP_paid', '1110050029');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1120050013', 'Banco Ganadero Ahorro xxxxxxxx', 'A', 'A', 'AR_paid:AP_paid', '1120050013');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1120050019', 'Banco Colpatria Ahor. xxxxxxxxx', 'A', 'A', 'AR_paid:AP_paid', '1120050019');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1120051302', 'Bco Ganadero Ahorro xxxxxxxxxx', 'A', 'A', 'AR_paid:AP_paid', '1120051302');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1355150020', 'Retencion en la Fuente Año Anter', 'A', 'A', '', '1355150020');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1410050001', 'Muebles', 'A', 'A', 'IC', '1410050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1410050002', 'Inventario 1', 'A', 'A', 'IC', '1410050002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1410050003', 'Inventario 2', 'A', 'A', 'IC', '1410050003');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1410050004', 'Inventario 3', 'A', 'A', 'IC', '1410050004');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1410050005', 'Inventario 4', 'A', 'A', 'IC', '1410050005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1410050010', 'Inventario 5', 'A', 'A', 'IC', '1410050010');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1420050001', 'Lokesea', 'A', 'A', 'IC', '1420050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1430050001', 'Lokesea', 'A', 'A', 'IC', '1430050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1435050001', 'Lokesea', 'A', 'A', 'IC', '1435050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1420050002', 'Lokesea', 'A', 'A', 'IC', '1420050002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1516100001', 'Local #1', 'A', 'A', '', '1516100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1516100002', 'Local #2', 'A', 'A', '', '1516100002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1516100003', 'Local #3', 'A', 'A', '', '1516100003');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1516990001', 'Aj. Infl. Local #1', 'A', 'A', '', '1516990001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1435050099', 'Cuenta Inventario para Lokesea', 'A', 'A', 'IC', '1435050099');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1516991001', 'Aj. Infl. Local #1', 'A', 'A', '', '1516991001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1516991002', 'Aj. Infl. Local #2', 'A', 'A', '', '1516991002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1516991003', 'Aj. Infl. Local #3', 'A', 'A', '', '1516991003');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1520020001', 'Lokesea del Inventario', 'A', 'A', '', '1520020001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1520020002', 'Equipo de Lokeasea', 'A', 'A', '', '1520020002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1520990201', 'Aj. por Inflacion Lokesea', 'A', 'A', '', '1520990201');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1520990202', 'Aj.x Infl. Otro Lokesea', 'A', 'A', '', '1520990202');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1524100001', 'Aire Acondicionado LG', 'A', 'A', '', '1524100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1524991001', 'Aj. por Inflac. Aire Acond. LG', 'A', 'A', '', '1524991001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1592100001', 'Depreciacion Lokesea', 'A', 'A', '', '1592100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1540050001', 'Mazda Blanco Placa ALGO0815', 'A', 'A', '', '1540050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1592050001', 'Local #1', 'A', 'A', '', '1592050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1592050002', 'Local #2', 'A', 'A', '', '1592050002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1592050003', 'Local #3', 'A', 'A', '', '1592050003');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1592100002', 'Deprec. Otro Lokesea', 'A', 'A', '', '1592100002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1592150001', 'Depreciacion Aire LG', 'A', 'A', '', '1592150001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1592350001', 'Mazda Balnco Placa ALGO0815', 'A', 'A', '', '1592350001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1910080001', 'Local #1', 'A', 'A', '', '1910080001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1910080002', 'Local #2', 'A', 'A', '', '1910080002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1910080003', 'Local #3', 'A', 'A', '', '1910080003');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2335950002', 'Cuentas por pagar CaribeNet S.A. (www.caribenet.com)', 'A', 'L', 'AP', '2335950002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3115050001', 'Yo', 'A', 'Q', '', '3115050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3115050002', 'Tu', 'A', 'Q', '', '3115050002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4120270001', 'Lokeproducimos', 'A', 'I', 'AR_amount:IC_income', '4120270001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4130950003', 'En que ganamos?', 'A', 'I', 'AR_amount:IC_income', '4130950003');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4135950001', 'Loquevendomos', 'A', 'I', '', '4135950001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4150300001', 'Vendo hasta mi mama!', 'A', 'I', '', '4150300001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5230750001', 'Soat - Seguro Obligatorio Vehiculos', 'A', 'E', '', '5230750001');
+--
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '1355150003'), -0.07);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '1355170001'), -0.12);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2365150001'), -0.1);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2365150002'), -0.11);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2365150003'), -0.1);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2365150004'), -0.11);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2365200001'), -0.11);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2365250001'), -0.06);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2365250003'), -0.01);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2365250004'), -0.01);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2365300001'), -0.035);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2365300003'), -0.04);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2365300004'), -0.02);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2365400001'), -0.035);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2365400002'), -0.001);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2367050001'), -0.12);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2367050002'), -0.0525);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2367100001'), -0.12);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2367100002'), -0.15);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2367100003'), -0.0525);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2368030002'), -0.008);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2408050001'), 0.16);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2408050002'), 0.16);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2408050003'), 0.07);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2408050004'), 0.08);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2408050005'), 0.2);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2408050006'), 0.2);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2408050010'), 0.12);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2408100001'), 0.16);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2408100002'), 0.07);
+
+UPDATE defaults SET inventory_accno_id = (SELECT id FROM chart WHERE accno = '141005001'), income_accno_id = (SELECT id FROM chart WHERE accno = '412027001'), expense_accno_id = (SELECT id FROM chart WHERE accno = '5250150001'), fxgain_accno_id = (SELECT id FROM chart WHERE accno = '4705400001'), fxloss_accno_id = (SELECT id FROM chart WHERE accno = '530520001'), curr = 'COP', weightunit = 'kg';
+
diff --git a/sql/Colombia-PUC-gifi.sql b/sql/Colombia-PUC-gifi.sql
new file mode 100755
index 00000000..1ee02eb1
--- /dev/null
+++ b/sql/Colombia-PUC-gifi.sql
@@ -0,0 +1,2473 @@
+--
+--
+-- Data for Plan Único de Cuentas (PUC) Gifi Table
+--
+
+INSERT INTO gifi (accno,description) VALUES ('1', 'ACTIVO ');
+INSERT INTO gifi (accno,description) VALUES ('11', 'DISPONIBLE ');
+INSERT INTO gifi (accno,description) VALUES ('1105', 'CAJA ');
+INSERT INTO gifi (accno,description) VALUES ('110505', 'CAJA GENERAL ');
+INSERT INTO gifi (accno,description) VALUES ('110510', 'CAJAS MENORES ');
+INSERT INTO gifi (accno,description) VALUES ('110515', 'MONEDA EXTRANJERA ');
+INSERT INTO gifi (accno,description) VALUES ('1110', 'BANCOS ');
+INSERT INTO gifi (accno,description) VALUES ('111005', 'MONEDA NACIONAL ');
+INSERT INTO gifi (accno,description) VALUES ('111010', 'MONEDA EXTRANJERA ');
+INSERT INTO gifi (accno,description) VALUES ('1115', 'REMESAS EN TRANSITO ');
+INSERT INTO gifi (accno,description) VALUES ('111505', 'MONEDA NACIONAL ');
+INSERT INTO gifi (accno,description) VALUES ('111510', 'MONEDA EXTRANJERA ');
+INSERT INTO gifi (accno,description) VALUES ('1120', 'CUENTAS DE AHORRO ');
+INSERT INTO gifi (accno,description) VALUES ('112005', 'BANCOS ');
+INSERT INTO gifi (accno,description) VALUES ('112010', 'CORPORACIONES DE AHORRO Y VIVIENDA ');
+INSERT INTO gifi (accno,description) VALUES ('112015', 'ORGANISMOS COOPERATIVOS FINANCIEROS ');
+INSERT INTO gifi (accno,description) VALUES ('1125', 'FONDOS ');
+INSERT INTO gifi (accno,description) VALUES ('112505', 'ROTATORIOS MONEDA NACIONAL ');
+INSERT INTO gifi (accno,description) VALUES ('112510', 'ROTATORIOS MONEDA EXTRANJERA ');
+INSERT INTO gifi (accno,description) VALUES ('112515', 'ESPECIALES MONEDA NACIONAL ');
+INSERT INTO gifi (accno,description) VALUES ('112520', 'ESPECIALES MONEDA EXTRANJERA ');
+INSERT INTO gifi (accno,description) VALUES ('112525', 'DE AMORTIZACION MONEDA NACIONAL ');
+INSERT INTO gifi (accno,description) VALUES ('112530', 'DE AMORTIZACION MONEDA EXTRANJERA ');
+INSERT INTO gifi (accno,description) VALUES ('12', 'INVERSIONES ');
+INSERT INTO gifi (accno,description) VALUES ('1205', 'ACCIONES ');
+INSERT INTO gifi (accno,description) VALUES ('120505', 'AGRICULTURA, GANADERIA, CAZA Y SILVICULTURA ');
+INSERT INTO gifi (accno,description) VALUES ('120510', 'PESCA ');
+INSERT INTO gifi (accno,description) VALUES ('120515', 'EXPLOTACION DE MINAS Y CANTERAS ');
+INSERT INTO gifi (accno,description) VALUES ('120520', 'INDUSTRIA MANUFACTURERA ');
+INSERT INTO gifi (accno,description) VALUES ('120525', 'SUMINISTRO DE ELECTRICIDAD, GAS Y AGUA ');
+INSERT INTO gifi (accno,description) VALUES ('120530', 'CONSTRUCCION ');
+INSERT INTO gifi (accno,description) VALUES ('120535', 'COMERCIO AL POR MAYOR Y AL POR MENOR ');
+INSERT INTO gifi (accno,description) VALUES ('120540', 'HOTELES Y RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('120545', 'TRANSPORTE, ALMACENAMIENTO Y COMUNICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('120550', 'ACTIVIDAD FINANCIERA ');
+INSERT INTO gifi (accno,description) VALUES ('120555', 'ACTIVIDADES INMOBILIARIAS, EMPRESARIALES Y DE ALQUILER ');
+INSERT INTO gifi (accno,description) VALUES ('120560', 'ENSEŃANZA ');
+INSERT INTO gifi (accno,description) VALUES ('120565', 'SERVICIOS SOCIALES Y DE SALUD ');
+INSERT INTO gifi (accno,description) VALUES ('120570', 'OTRAS ACTIVIDADES DE SERVICIOS COMUNITARIOS, SOCIALES Y PERSONALES ');
+INSERT INTO gifi (accno,description) VALUES ('120599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1210', 'CUOTAS O PARTES DE INTERES SOCIAL ');
+INSERT INTO gifi (accno,description) VALUES ('121005', 'AGRICULTURA, GANADERIA, CAZA Y SILVICULTURA ');
+INSERT INTO gifi (accno,description) VALUES ('121010', 'PESCA ');
+INSERT INTO gifi (accno,description) VALUES ('121015', 'EXPLOTACION DE MINAS Y CANTERAS ');
+INSERT INTO gifi (accno,description) VALUES ('121020', 'INDUSTRIA MANUFACTURERA ');
+INSERT INTO gifi (accno,description) VALUES ('121025', 'SUMINISTRO DE ELECTRICIDAD, GAS Y AGUA ');
+INSERT INTO gifi (accno,description) VALUES ('121030', 'CONSTRUCCION ');
+INSERT INTO gifi (accno,description) VALUES ('121035', 'COMERCIO AL POR MAYOR Y AL POR MENOR ');
+INSERT INTO gifi (accno,description) VALUES ('121040', 'HOTELES Y RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('121045', 'TRANSPORTE, ALMACENAMIENTO Y COMUNICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('121050', 'ACTIVIDAD FINANCIERA ');
+INSERT INTO gifi (accno,description) VALUES ('121055', 'ACTIVIDADES INMOBILIARIAS, EMPRESARIALES Y DE ALQUILER ');
+INSERT INTO gifi (accno,description) VALUES ('121060', 'ENSEŃANZA ');
+INSERT INTO gifi (accno,description) VALUES ('121065', 'SERVICIOS SOCIALES Y DE SALUD ');
+INSERT INTO gifi (accno,description) VALUES ('121070', 'OTRAS ACTIVIDADES DE SERVICIOS COMUNITARIOS, SOCIALES Y PERSONALES ');
+INSERT INTO gifi (accno,description) VALUES ('121099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1215', 'BONOS ');
+INSERT INTO gifi (accno,description) VALUES ('121505', 'BONOS PUBLICOS MONEDA NACIONAL ');
+INSERT INTO gifi (accno,description) VALUES ('121510', 'BONOS PUBLICOS MONEDA EXTRANJERA ');
+INSERT INTO gifi (accno,description) VALUES ('121515', 'BONOS ORDINARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('121520', 'BONOS CONVERTIBLES EN ACCIONES ');
+INSERT INTO gifi (accno,description) VALUES ('121595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('1220', 'CEDULAS ');
+INSERT INTO gifi (accno,description) VALUES ('122005', 'CEDULAS DE CAPITALIZACION ');
+INSERT INTO gifi (accno,description) VALUES ('122010', 'CEDULAS HIPOTECARIAS ');
+INSERT INTO gifi (accno,description) VALUES ('122015', 'CEDULAS DE INVERSION ');
+INSERT INTO gifi (accno,description) VALUES ('122095', 'OTRAS ');
+INSERT INTO gifi (accno,description) VALUES ('1225', 'CERTIFICADOS ');
+INSERT INTO gifi (accno,description) VALUES ('122505', 'CERTIFICADOS DE DEPOSITO A TERMINO (C.D.T.) ');
+INSERT INTO gifi (accno,description) VALUES ('122510', 'CERTIFICADOS DE DEPOSITO DE AHORRO ');
+INSERT INTO gifi (accno,description) VALUES ('122515', 'CERTIFICADOS DE AHORRO DE VALOR CONSTANTE (C.A.V.C.) ');
+INSERT INTO gifi (accno,description) VALUES ('122520', 'CERTIFICADOS DE CAMBIO ');
+INSERT INTO gifi (accno,description) VALUES ('122525', 'CERTIFICADOS CAFETEROS VALORIZABLES ');
+INSERT INTO gifi (accno,description) VALUES ('122530', 'CERTIFICADOS ELECTRICOS VALORIZABLES (C.E.V.) ');
+INSERT INTO gifi (accno,description) VALUES ('122535', 'CERTIFICADOS DE REEMBOLSO TRIBUTARIO (C.E.R.T.) ');
+INSERT INTO gifi (accno,description) VALUES ('122540', 'CERTIFICADOS DE DESARROLLO TURISTICO ');
+INSERT INTO gifi (accno,description) VALUES ('122545', 'CERTIFICADOS DE INVERSION FORESTAL (C.I.F.) ');
+INSERT INTO gifi (accno,description) VALUES ('122595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('1230', 'PAPELES COMERCIALES ');
+INSERT INTO gifi (accno,description) VALUES ('123005', 'EMPRESAS COMERCIALES ');
+INSERT INTO gifi (accno,description) VALUES ('123010', 'EMPRESAS INDUSTRIALES ');
+INSERT INTO gifi (accno,description) VALUES ('123015', 'EMPRESAS DE SERVICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('1235', 'TITULOS ');
+INSERT INTO gifi (accno,description) VALUES ('123505', 'TITULOS DE DESARROLLO AGROPECUARIO ');
+INSERT INTO gifi (accno,description) VALUES ('123510', 'TITULOS CANJEABLES POR CERTIFICADOS DE CAMBIO ');
+INSERT INTO gifi (accno,description) VALUES ('123515', 'TITULOS DE TESORERIA (T.E.S.) ');
+INSERT INTO gifi (accno,description) VALUES ('123520', 'TITULOS DE PARTICIPACION ');
+INSERT INTO gifi (accno,description) VALUES ('123525', 'TITULOS DE CREDITO DE FOMENTO ');
+INSERT INTO gifi (accno,description) VALUES ('123530', 'TITULOS FINANCIEROS AGROINDUSTRIALES (T.F.A.) ');
+INSERT INTO gifi (accno,description) VALUES ('123535', 'TITULOS DE AHORRO CAFETERO (T.A.C.) ');
+INSERT INTO gifi (accno,description) VALUES ('123540', 'TITULOS DE AHORRO NACIONAL (T.A.N.) ');
+INSERT INTO gifi (accno,description) VALUES ('123545', 'TITULOS ENERGETICOS DE RENTABILIDAD CRECIENTE (T.E.R.) ');
+INSERT INTO gifi (accno,description) VALUES ('123550', 'TITULOS DE AHORRO EDUCATIVO (T.A.E.) ');
+INSERT INTO gifi (accno,description) VALUES ('123555', 'TITULOS FINANCIEROS INDUSTRIALES Y COMERCIALES ');
+INSERT INTO gifi (accno,description) VALUES ('123560', 'TESOROS ');
+INSERT INTO gifi (accno,description) VALUES ('123565', 'TITULOS DE DEVOLUCION DE IMPUESTOS NACIONALES (TIDIS) ');
+INSERT INTO gifi (accno,description) VALUES ('123570', 'TITULOS INMOBILIARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('123595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('1240', 'ACEPTACIONES BANCARIAS O FINANCIERAS ');
+INSERT INTO gifi (accno,description) VALUES ('124005', 'BANCOS COMERCIALES ');
+INSERT INTO gifi (accno,description) VALUES ('124010', 'COMPAŃIAS DE FINANCIAMIENTO COMERCIAL ');
+INSERT INTO gifi (accno,description) VALUES ('124015', 'CORPORACIONES FINANCIERAS ');
+INSERT INTO gifi (accno,description) VALUES ('124095', 'OTRAS ');
+INSERT INTO gifi (accno,description) VALUES ('1245', 'DERECHOS FIDUCIARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('124505', 'FIDEICOMISOS DE INVERSION MONEDA NACIONAL ');
+INSERT INTO gifi (accno,description) VALUES ('124510', 'FIDEICOMISOS DE INVERSION MONEDA EXTRANJERA ');
+INSERT INTO gifi (accno,description) VALUES ('1250', 'DERECHOS DE RECOMPRA DE INVERSIONES NEGOCIADAS (REPOS) ');
+INSERT INTO gifi (accno,description) VALUES ('125005', 'ACCIONES ');
+INSERT INTO gifi (accno,description) VALUES ('125010', 'CUOTAS O PARTES DE INTERES SOCIAL ');
+INSERT INTO gifi (accno,description) VALUES ('125015', 'BONOS ');
+INSERT INTO gifi (accno,description) VALUES ('125020', 'CEDULAS ');
+INSERT INTO gifi (accno,description) VALUES ('125025', 'CERTIFICADOS ');
+INSERT INTO gifi (accno,description) VALUES ('125030', 'PAPELES COMERCIALES ');
+INSERT INTO gifi (accno,description) VALUES ('125035', 'TITULOS ');
+INSERT INTO gifi (accno,description) VALUES ('125040', 'ACEPTACIONES BANCARIAS O FINANCIERAS 125095 OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('125099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1255', 'OBLIGATORIAS ');
+INSERT INTO gifi (accno,description) VALUES ('125505', 'BONOS DE FINANCIAMIENTO ESPECIAL ');
+INSERT INTO gifi (accno,description) VALUES ('125510', 'BONOS DE FINANCIAMIENTO PRESUPUESTAL ');
+INSERT INTO gifi (accno,description) VALUES ('125515', 'BONOS PARA DESARROLLO SOCIAL Y SEGURIDAD INTERNA (B.D.S.I.) ');
+INSERT INTO gifi (accno,description) VALUES ('125595', 'OTRAS ');
+INSERT INTO gifi (accno,description) VALUES ('1260', 'CUENTAS EN PARTICIPACION ');
+INSERT INTO gifi (accno,description) VALUES ('126099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1295', 'OTRAS INVERSIONES ');
+INSERT INTO gifi (accno,description) VALUES ('129505', 'APORTES EN COOPERATIVAS ');
+INSERT INTO gifi (accno,description) VALUES ('129510', 'DERECHOS EN CLUBES SOCIALES ');
+INSERT INTO gifi (accno,description) VALUES ('129515', 'ACCIONES O DERECHOS EN CLUBES DEPORTIVOS ');
+INSERT INTO gifi (accno,description) VALUES ('129520', 'BONOS EN COLEGIOS ');
+INSERT INTO gifi (accno,description) VALUES ('129595', 'DIVERSAS ');
+INSERT INTO gifi (accno,description) VALUES ('129599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1299', 'PROVISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('129905', 'ACCIONES ');
+INSERT INTO gifi (accno,description) VALUES ('129910', 'CUOTAS O PARTES DE INTERES SOCIAL ');
+INSERT INTO gifi (accno,description) VALUES ('129915', 'BONOS ');
+INSERT INTO gifi (accno,description) VALUES ('129920', 'CEDULAS ');
+INSERT INTO gifi (accno,description) VALUES ('129925', 'CERTIFICADOS ');
+INSERT INTO gifi (accno,description) VALUES ('129930', 'PAPELES COMERCIALES ');
+INSERT INTO gifi (accno,description) VALUES ('129935', 'TITULOS ');
+INSERT INTO gifi (accno,description) VALUES ('129940', 'ACEPTACIONES BANCARIAS O FINANCIERAS ');
+INSERT INTO gifi (accno,description) VALUES ('129945', 'DERECHOS FIDUCIARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('129950', 'DERECHOS DE RECOMPRA DE INVERSIONES NEGOCIADAS ');
+INSERT INTO gifi (accno,description) VALUES ('129955', 'OBLIGATORIAS ');
+INSERT INTO gifi (accno,description) VALUES ('129960', 'CUENTAS EN PARTICIPACION ');
+INSERT INTO gifi (accno,description) VALUES ('129995', 'OTRAS INVERSIONES ');
+INSERT INTO gifi (accno,description) VALUES ('13', 'DEUDORES ');
+INSERT INTO gifi (accno,description) VALUES ('1305', 'CLIENTES ');
+INSERT INTO gifi (accno,description) VALUES ('130505', 'NACIONALES ');
+INSERT INTO gifi (accno,description) VALUES ('130510', 'DEL EXTERIOR ');
+INSERT INTO gifi (accno,description) VALUES ('130515', 'DEUDORES DEL SISTEMA ');
+INSERT INTO gifi (accno,description) VALUES ('1310', 'CUENTAS CORRIENTES COMERCIALES ');
+INSERT INTO gifi (accno,description) VALUES ('131005', 'CASA MATRIZ ');
+INSERT INTO gifi (accno,description) VALUES ('131010', 'COMPAŃIAS VINCULADAS ');
+INSERT INTO gifi (accno,description) VALUES ('131015', 'ACCIONISTAS O SOCIOS ');
+INSERT INTO gifi (accno,description) VALUES ('131020', 'PARTICULARES ');
+INSERT INTO gifi (accno,description) VALUES ('131095', 'OTRAS ');
+INSERT INTO gifi (accno,description) VALUES ('1315', 'CUENTAS POR COBRAR A CASA MATRIZ ');
+INSERT INTO gifi (accno,description) VALUES ('131505', 'VENTAS ');
+INSERT INTO gifi (accno,description) VALUES ('131510', 'PAGOS A NOMBRE DE CASA MATRIZ ');
+INSERT INTO gifi (accno,description) VALUES ('131515', 'VALORES RECIBIDOS POR CASA MATRIZ ');
+INSERT INTO gifi (accno,description) VALUES ('131520', 'PRESTAMOS ');
+INSERT INTO gifi (accno,description) VALUES ('1320', 'CUENTAS POR COBRAR A VINCULADOS ECONOMICOS ');
+INSERT INTO gifi (accno,description) VALUES ('132005', 'FILIALES ');
+INSERT INTO gifi (accno,description) VALUES ('132010', 'SUBSIDIARIAS ');
+INSERT INTO gifi (accno,description) VALUES ('132015', 'SUCURSALES ');
+INSERT INTO gifi (accno,description) VALUES ('1325', 'CUENTA S POR COBRAR A SOCIOS Y ACCIONISTAS ');
+INSERT INTO gifi (accno,description) VALUES ('132505', 'A SOCIOS ');
+INSERT INTO gifi (accno,description) VALUES ('132510', 'A ACCIONISTAS ');
+INSERT INTO gifi (accno,description) VALUES ('1328', 'APORTES POR COBRAR ');
+INSERT INTO gifi (accno,description) VALUES ('1330', 'ANTICIPOS Y AVANCES ');
+INSERT INTO gifi (accno,description) VALUES ('133005', 'A PROVEEDORES ');
+INSERT INTO gifi (accno,description) VALUES ('133010', 'A CONTRATISTAS ');
+INSERT INTO gifi (accno,description) VALUES ('133015', 'A TRABAJADORES ');
+INSERT INTO gifi (accno,description) VALUES ('133020', 'A AGENTES ');
+INSERT INTO gifi (accno,description) VALUES ('133025', 'A CONCESIONARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('133030', 'DE ADJUDICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('133095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('1332', 'CUENTAS DE OPERACION CONJUNTA ');
+INSERT INTO gifi (accno,description) VALUES ('1335', 'DEPOSITOS ');
+INSERT INTO gifi (accno,description) VALUES ('133505', 'PARA IMPORTACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('133510', 'PARA SERVICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('133515', 'PARA CONTRATOS ');
+INSERT INTO gifi (accno,description) VALUES ('133520', 'PARA RESPONSABILIDADES ');
+INSERT INTO gifi (accno,description) VALUES ('133525', 'PARA JUICIOS EJECUTIVOS ');
+INSERT INTO gifi (accno,description) VALUES ('133530', 'PARA ADQUISICION DE ACCIONES, CUOTAS O DERECHOS SOCIALES ');
+INSERT INTO gifi (accno,description) VALUES ('133535', 'EN GARANTIA ');
+INSERT INTO gifi (accno,description) VALUES ('133595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('1340', 'PROMESAS DE COMPRA VENTA ');
+INSERT INTO gifi (accno,description) VALUES ('134005', 'DE BIENES RAICES ');
+INSERT INTO gifi (accno,description) VALUES ('134010', 'DE MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('134015', 'DE FLOTA Y EQUIPO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('134020', 'DE FLOTA Y EQUIPO AEREO ');
+INSERT INTO gifi (accno,description) VALUES ('134025', 'DE FLOTA Y EQUIPO FERREO ');
+INSERT INTO gifi (accno,description) VALUES ('134030', 'DE FLOTA Y EQUIPO FLUVIAL Y/O MARITIMO ');
+INSERT INTO gifi (accno,description) VALUES ('134035', 'DE SEMOVIENTES ');
+INSERT INTO gifi (accno,description) VALUES ('134095', 'DE OTROS BIENES ');
+INSERT INTO gifi (accno,description) VALUES ('1345', 'INGRESOS POR COBRAR ');
+INSERT INTO gifi (accno,description) VALUES ('134505', 'DIVIDENDOS Y/O PARTICIPACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('134510', 'INTERESES ');
+INSERT INTO gifi (accno,description) VALUES ('134515', 'COMISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('134520', 'HONORARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('134525', 'SERVICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('134530', 'ARRENDAMIENTOS ');
+INSERT INTO gifi (accno,description) VALUES ('134535', 'CERT POR COBRAR ');
+INSERT INTO gifi (accno,description) VALUES ('134595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('1350', 'RETENCION SOBRE CONTRATOS ');
+INSERT INTO gifi (accno,description) VALUES ('135005', 'DE CONSTRUCCION ');
+INSERT INTO gifi (accno,description) VALUES ('135010', 'DE PRESTACION DE SERVICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('135095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('1355', 'ANTICIPO DE IMPUESTOS Y CONTRIBUCIONES O SALDOS A FAVOR ');
+INSERT INTO gifi (accno,description) VALUES ('135505', 'ANTICIPO DE IMPUESTOS DE RENTA Y COMPLEMENTARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('135510', 'ANTICIPO DE IMPUESTOS DE INDUSTRIA Y COMERCIO ');
+INSERT INTO gifi (accno,description) VALUES ('135515', 'RETENCION EN LA FUENTE ');
+INSERT INTO gifi (accno,description) VALUES ('135520', 'SOBRANTES EN LIQUIDACION PRIVADA DE IMPUESTOS ');
+INSERT INTO gifi (accno,description) VALUES ('135525', 'CONTRIBUCIONES ');
+INSERT INTO gifi (accno,description) VALUES ('135530', 'IMPUESTOS DESCONTABLES ');
+INSERT INTO gifi (accno,description) VALUES ('135595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('1360', 'RECLAMACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('136005', 'A COMPAŃIAS ASEGURADORAS ');
+INSERT INTO gifi (accno,description) VALUES ('136010', 'A TRANSPORTADORES ');
+INSERT INTO gifi (accno,description) VALUES ('136015', 'POR TIQUETES AEREOS ');
+INSERT INTO gifi (accno,description) VALUES ('136095', 'OTRAS ');
+INSERT INTO gifi (accno,description) VALUES ('1365', 'CUENTAS POR COBRAR A TRABAJADORES ');
+INSERT INTO gifi (accno,description) VALUES ('136505', 'VIVIENDA ');
+INSERT INTO gifi (accno,description) VALUES ('136510', 'VEHICULOS ');
+INSERT INTO gifi (accno,description) VALUES ('136515', 'EDUCACION ');
+INSERT INTO gifi (accno,description) VALUES ('136520', 'MEDICOS, ODONTOLOGICOS Y SIMILARES ');
+INSERT INTO gifi (accno,description) VALUES ('136525', 'CALAMIDAD DOMESTICA ');
+INSERT INTO gifi (accno,description) VALUES ('136530', 'RESPONSABILIDADES ');
+INSERT INTO gifi (accno,description) VALUES ('136595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('1370', 'PRESTAMOS A PARTICULARES ');
+INSERT INTO gifi (accno,description) VALUES ('137005', 'CON GARANTIA REAL ');
+INSERT INTO gifi (accno,description) VALUES ('137010', 'CON GARANTIA PERSONAL ');
+INSERT INTO gifi (accno,description) VALUES ('1380', 'DEUDORES VARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('138005', 'DEPOSITARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('138010', 'COMISIONISTAS DE BOLSAS ');
+INSERT INTO gifi (accno,description) VALUES ('138015', 'FONDO DE INVERSION ');
+INSERT INTO gifi (accno,description) VALUES ('138020', 'CUENTAS POR COBRAR DE TERCEROS ');
+INSERT INTO gifi (accno,description) VALUES ('138025', 'PAGOS POR CUENTA DE TERCEROS ');
+INSERT INTO gifi (accno,description) VALUES ('138030', 'FONDOS DE INVERSION SOCIAL ');
+INSERT INTO gifi (accno,description) VALUES ('138095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('1385', 'DERECHOS DE RECOMPRA DE CARTERA NEGOCIADA ');
+INSERT INTO gifi (accno,description) VALUES ('1390', 'DEUDAS DE DIFICIL COBRO ');
+INSERT INTO gifi (accno,description) VALUES ('1399', 'PROVISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('139905', 'CLIENTES ');
+INSERT INTO gifi (accno,description) VALUES ('139910', 'CUENTAS CORRIENTES COMERCIALES ');
+INSERT INTO gifi (accno,description) VALUES ('139915', 'CUENTAS POR COBRAR A CASA MATRIZ ');
+INSERT INTO gifi (accno,description) VALUES ('139920', 'CUENTAS POR COBRAR A VINCULADOS ECONOMICOS ');
+INSERT INTO gifi (accno,description) VALUES ('139925', 'CUENTAS POR COBRAR A SOCIOS Y ACCIONISTAS ');
+INSERT INTO gifi (accno,description) VALUES ('139930', 'ANTICIPOS Y AVANCES ');
+INSERT INTO gifi (accno,description) VALUES ('139932', 'CUENTAS DE OPERACION CONJUNTA ');
+INSERT INTO gifi (accno,description) VALUES ('139935', 'DEPOSITOS ');
+INSERT INTO gifi (accno,description) VALUES ('139940', 'PROMESAS DE COMPRAVENTA ');
+INSERT INTO gifi (accno,description) VALUES ('139945', 'INGRESOS POR COBRAR ');
+INSERT INTO gifi (accno,description) VALUES ('139950', 'RETENCION SOBRE CONTRATOS ');
+INSERT INTO gifi (accno,description) VALUES ('139955', 'RECLAMACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('139960', 'CUENTAS POR COBRAR A TRABAJADORES ');
+INSERT INTO gifi (accno,description) VALUES ('139965', 'PRESTAMOS A PARTICULARES ');
+INSERT INTO gifi (accno,description) VALUES ('139975', 'DEUDORES VARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('139980', 'DERECHOS DE RECOMPRA DE CARTERA NEGOCIADA ');
+INSERT INTO gifi (accno,description) VALUES ('14', 'INVENTARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('1405', 'MATERIAS PRIMAS ');
+INSERT INTO gifi (accno,description) VALUES ('140599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1410', 'PRODUCTOS EN PROCESO ');
+INSERT INTO gifi (accno,description) VALUES ('141099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1415', 'OBRAS DE CONSTRUCCION EN CURSO ');
+INSERT INTO gifi (accno,description) VALUES ('141599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1417', 'OBRAS DE URBANISMO ');
+INSERT INTO gifi (accno,description) VALUES ('141799', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1420', 'CONTRATOS EN EJECUCION ');
+INSERT INTO gifi (accno,description) VALUES ('142099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1425', 'CULTIVOS EN DESARROLLO ');
+INSERT INTO gifi (accno,description) VALUES ('142599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1430', 'PRODUCTOS TERMINADOS ');
+INSERT INTO gifi (accno,description) VALUES ('143005', 'PRODUCTOS MANUFACTURADOS ');
+INSERT INTO gifi (accno,description) VALUES ('143010', 'PRODUCTOS EXTRAIDOS Y/O PROCESADOS ');
+INSERT INTO gifi (accno,description) VALUES ('143015', 'PRODUCTOS AGRICOLAS Y FORESTALES ');
+INSERT INTO gifi (accno,description) VALUES ('143020', 'SUBPRODUCTOS ');
+INSERT INTO gifi (accno,description) VALUES ('143025', 'PRODUCTOS DE PESCA ');
+INSERT INTO gifi (accno,description) VALUES ('143099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1435', 'MERCANCIAS NO FABRICADAS POR LA EMPRESA ');
+INSERT INTO gifi (accno,description) VALUES ('143599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1440', 'BIENES RAICES PARA LA VENTA ');
+INSERT INTO gifi (accno,description) VALUES ('144099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1445', 'SEMOVIENTES ');
+INSERT INTO gifi (accno,description) VALUES ('144505', 'ESPECIES MAYORES ');
+INSERT INTO gifi (accno,description) VALUES ('144510', 'ESPECIES MENORES ');
+INSERT INTO gifi (accno,description) VALUES ('144599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1450', 'TERRENOS ');
+INSERT INTO gifi (accno,description) VALUES ('145005', 'POR URBANIZAR ');
+INSERT INTO gifi (accno,description) VALUES ('145010', 'URBANIZADOS POR CONSTRUIR ');
+INSERT INTO gifi (accno,description) VALUES ('145099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1455', 'MATERIALES, REPUESTOS Y ACCESORIOS ');
+INSERT INTO gifi (accno,description) VALUES ('145505', 'COMBUSTIBLES Y LUBRICANTES ');
+INSERT INTO gifi (accno,description) VALUES ('145510', 'ABONOS Y FERTILIZANTES ');
+INSERT INTO gifi (accno,description) VALUES ('145515', 'SEMILLAS TERMINADAS ');
+INSERT INTO gifi (accno,description) VALUES ('145520', 'FUNGICIDAS Y HERBICIDAS ');
+INSERT INTO gifi (accno,description) VALUES ('145525', 'MATERIALES Y REPUESTOS ');
+INSERT INTO gifi (accno,description) VALUES ('145530', 'LOZA Y CRISTALERIA ');
+INSERT INTO gifi (accno,description) VALUES ('145535', 'HERRAMIENTAS ');
+INSERT INTO gifi (accno,description) VALUES ('145540', 'MEDICINAS ');
+INSERT INTO gifi (accno,description) VALUES ('145545', 'ELEMENTOS HOSPITALARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('145550', 'INSTRUMENTAL QUIRURGICO ');
+INSERT INTO gifi (accno,description) VALUES ('145555', 'DOTACION Y SUMINISTRO A TRABAJADORES ');
+INSERT INTO gifi (accno,description) VALUES ('145560', 'ELEMENTOS DE ROPERIA Y LENCERIA ');
+INSERT INTO gifi (accno,description) VALUES ('145595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('145599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1460', 'ENVASES Y EMPAQUES ');
+INSERT INTO gifi (accno,description) VALUES ('146099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1465', 'INVENTARIOS EN TRANSITO ');
+INSERT INTO gifi (accno,description) VALUES ('146599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1499', 'PROVISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('149905', 'PARA OBSOLESCENCIA ');
+INSERT INTO gifi (accno,description) VALUES ('149910', 'PARA DIFERENCIA DE INVENTARIO FISICO ');
+INSERT INTO gifi (accno,description) VALUES ('149915', 'PARA PERDIDAS DE INVENTARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('149920', 'LIFO ');
+INSERT INTO gifi (accno,description) VALUES ('15', 'PROPIEDADES PLANTA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('1504', 'TERRENOS ');
+INSERT INTO gifi (accno,description) VALUES ('150405', 'URBANOS ');
+INSERT INTO gifi (accno,description) VALUES ('150410', 'RURALES ');
+INSERT INTO gifi (accno,description) VALUES ('150499', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1506', 'MATERIALES PROYECTOS PETROLEROS ');
+INSERT INTO gifi (accno,description) VALUES ('150605', 'TUBERIAS Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('150610', 'COSTOS DE IMPORTACION MATERIALES ');
+INSERT INTO gifi (accno,description) VALUES ('150615', 'PROYECTOS DE CONSTRUCCION ');
+INSERT INTO gifi (accno,description) VALUES ('150699', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1508', 'CONSTRUCCIONES EN CURSO ');
+INSERT INTO gifi (accno,description) VALUES ('150805', 'CONSTRUCCIONES Y EDIFICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('150810', 'ACUEDUCTOS PLANTAS Y REDES ');
+INSERT INTO gifi (accno,description) VALUES ('150815', 'VIAS DE COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('150820', 'POZOS ARTESIANOS ');
+INSERT INTO gifi (accno,description) VALUES ('150825', 'PROYECTOS DE EXPLORACION ');
+INSERT INTO gifi (accno,description) VALUES ('150830', 'PROYECTOS DE DESARROLLO ');
+INSERT INTO gifi (accno,description) VALUES ('150899', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1512', 'MAQUINARIA Y EQUIPOS EN MONTAJE ');
+INSERT INTO gifi (accno,description) VALUES ('151205', 'MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('151210', 'EQUIPO DE OFICINA ');
+INSERT INTO gifi (accno,description) VALUES ('151215', 'EQUIPO DE COMPUTACION Y COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('151220', 'EQUIPO MEDICO-CIENTIFICO ');
+INSERT INTO gifi (accno,description) VALUES ('151225', 'EQUIPO DE HOTELES Y RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('151230', 'FLOTA Y EQUIPO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('151235', 'FLOTA Y EQUIPO FLUVIAL Y/O MARITIMO ');
+INSERT INTO gifi (accno,description) VALUES ('151240', 'FLOTA Y EQUIPO AEREO ');
+INSERT INTO gifi (accno,description) VALUES ('151245', 'FLOTA Y EQUIPO FERREO ');
+INSERT INTO gifi (accno,description) VALUES ('151250', 'PLANTAS Y REDES ');
+INSERT INTO gifi (accno,description) VALUES ('151299', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1516', 'CONSTRUCCIONES Y EDIFICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('151605', 'EDIFICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('151610', 'OFICINAS ');
+INSERT INTO gifi (accno,description) VALUES ('151615', 'ALMACENES ');
+INSERT INTO gifi (accno,description) VALUES ('151620', 'FABRICAS Y PLANTAS INDUSTRIALES ');
+INSERT INTO gifi (accno,description) VALUES ('151625', 'SALAS DE EXHIBICION Y VENTAS ');
+INSERT INTO gifi (accno,description) VALUES ('151630', 'CAFETERIA Y CASINOS ');
+INSERT INTO gifi (accno,description) VALUES ('151635', 'SILOS ');
+INSERT INTO gifi (accno,description) VALUES ('151640', 'INVERNADEROS ');
+INSERT INTO gifi (accno,description) VALUES ('151645', 'CASETAS Y CAMPAMENTOS ');
+INSERT INTO gifi (accno,description) VALUES ('151650', 'INSTALACIONES AGROPECUARIAS ');
+INSERT INTO gifi (accno,description) VALUES ('151655', 'VIVIENDAS PARA EMPLEADOS Y OBREROS ');
+INSERT INTO gifi (accno,description) VALUES ('151660', 'TERMINAL DE BUSES Y TAXIS ');
+INSERT INTO gifi (accno,description) VALUES ('151663', 'TERMINAL MARITIMO ');
+INSERT INTO gifi (accno,description) VALUES ('151665', 'TERMINAL FERREO ');
+INSERT INTO gifi (accno,description) VALUES ('151670', 'PARQUEADEROS, GARAJES Y DEPOSITOS ');
+INSERT INTO gifi (accno,description) VALUES ('151675', 'HANGARES ');
+INSERT INTO gifi (accno,description) VALUES ('151680', 'BODEGAS ');
+INSERT INTO gifi (accno,description) VALUES ('151695', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('151699', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1520', 'MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('152099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1524', 'EQUIPO DE OFICINA ');
+INSERT INTO gifi (accno,description) VALUES ('152405', 'MUEBLES Y ENSERES ');
+INSERT INTO gifi (accno,description) VALUES ('152410', 'EQUIPOS ');
+INSERT INTO gifi (accno,description) VALUES ('152495', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('152499', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1528', 'EQUIPO DE COMPUTACION Y COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('152805', 'EQUIPOS DE PROCESAMIENTO DE DATOS ');
+INSERT INTO gifi (accno,description) VALUES ('152810', 'EQUIPOS DE TELECOMUNICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('152815', 'EQUIPOS DE RADIO ');
+INSERT INTO gifi (accno,description) VALUES ('152820', 'SATELITES Y ANTENAS ');
+INSERT INTO gifi (accno,description) VALUES ('152825', 'LINEAS TELEFONICAS ');
+INSERT INTO gifi (accno,description) VALUES ('152895', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('152899', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1532', 'EQUIPO MEDICO - CIENTIFICO ');
+INSERT INTO gifi (accno,description) VALUES ('153205', 'MEDICO ');
+INSERT INTO gifi (accno,description) VALUES ('153210', 'ODONTOLOGICO ');
+INSERT INTO gifi (accno,description) VALUES ('153215', 'LABORATORIO ');
+INSERT INTO gifi (accno,description) VALUES ('153220', 'INSTRUMENTAL ');
+INSERT INTO gifi (accno,description) VALUES ('153295', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('153299', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1536', 'EQUIPO DE HOTELES Y RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('153605', 'DE HABITACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('153610', 'DE COMESTIBLES Y BEBIDAS ');
+INSERT INTO gifi (accno,description) VALUES ('153695', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('153699', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1540', 'FLOTA Y EQUIPO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('154005', 'AUTOS, CAMIONETAS Y CAMPEROS ');
+INSERT INTO gifi (accno,description) VALUES ('154008', 'CAMIONES, VOLQUETAS Y FURGONES ');
+INSERT INTO gifi (accno,description) VALUES ('154010', 'TRACTOMULAS Y REMOLQUES ');
+INSERT INTO gifi (accno,description) VALUES ('154015', 'BUSES Y BUSETAS ');
+INSERT INTO gifi (accno,description) VALUES ('154017', 'RECOLECTORES Y CONTENEDORES ');
+INSERT INTO gifi (accno,description) VALUES ('154020', 'MONTACARGAS ');
+INSERT INTO gifi (accno,description) VALUES ('154025', 'PALAS Y GRUAS ');
+INSERT INTO gifi (accno,description) VALUES ('154030', 'MOTOCICLETAS ');
+INSERT INTO gifi (accno,description) VALUES ('154035', 'BICICLETAS ');
+INSERT INTO gifi (accno,description) VALUES ('154040', 'ESTIBAS Y CARRETAS ');
+INSERT INTO gifi (accno,description) VALUES ('154045', 'BANDAS TRANSPORTADORAS ');
+INSERT INTO gifi (accno,description) VALUES ('154095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('154099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1544', 'FLOTA Y EQUIPO FLUVIAL Y/O MARITIMO ');
+INSERT INTO gifi (accno,description) VALUES ('154405', 'BUQUES ');
+INSERT INTO gifi (accno,description) VALUES ('154410', 'LANCHAS ');
+INSERT INTO gifi (accno,description) VALUES ('154415', 'REMOLCADORAS ');
+INSERT INTO gifi (accno,description) VALUES ('154420', 'BOTES ');
+INSERT INTO gifi (accno,description) VALUES ('154425', 'BOYAS ');
+INSERT INTO gifi (accno,description) VALUES ('154430', 'AMARRES ');
+INSERT INTO gifi (accno,description) VALUES ('154435', 'CONTENEDORES Y CHASSISES ');
+INSERT INTO gifi (accno,description) VALUES ('154440', 'GABARRAS ');
+INSERT INTO gifi (accno,description) VALUES ('154495', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('154499', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1548', 'FLOTA Y EQUIPO AEREO ');
+INSERT INTO gifi (accno,description) VALUES ('154805', 'AVIONES ');
+INSERT INTO gifi (accno,description) VALUES ('154810', 'AVIONETAS ');
+INSERT INTO gifi (accno,description) VALUES ('154815', 'HELICOPTEROS ');
+INSERT INTO gifi (accno,description) VALUES ('154820', 'TURBINAS Y MOTORES ');
+INSERT INTO gifi (accno,description) VALUES ('154825', 'MANUALES DE ENTRENAMIENTO PERSONAL TECNICO ');
+INSERT INTO gifi (accno,description) VALUES ('154830', 'EQUIPOS DE VUELO ');
+INSERT INTO gifi (accno,description) VALUES ('154895', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('154899', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1552', 'FLOTA Y EQUIPO FERREO ');
+INSERT INTO gifi (accno,description) VALUES ('155205', 'LOCOMOTORAS ');
+INSERT INTO gifi (accno,description) VALUES ('155210', 'VAGONES ');
+INSERT INTO gifi (accno,description) VALUES ('155215', 'REDES FERREAS ');
+INSERT INTO gifi (accno,description) VALUES ('155295', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('155299', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1556', 'ACUEDUCTOS PLANTAS Y REDES ');
+INSERT INTO gifi (accno,description) VALUES ('155605', 'INSTALACIONES PARA AGUA Y ENERGIA ');
+INSERT INTO gifi (accno,description) VALUES ('155610', 'ACUEDUCTO ACEQUIAS Y CANALIZACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('155615', 'PLANTAS DE GENERACION HIDRAULICA ');
+INSERT INTO gifi (accno,description) VALUES ('155620', 'PLANTAS DE GENERACION TERMICA ');
+INSERT INTO gifi (accno,description) VALUES ('155625', 'PLANTAS DE GENERACION A GAS ');
+INSERT INTO gifi (accno,description) VALUES ('155628', 'PLANTAS DE GENERACION DIESEL, GASOLINA Y PETROLEO ');
+INSERT INTO gifi (accno,description) VALUES ('155630', 'PLANTAS DE DISTRIBUCION ');
+INSERT INTO gifi (accno,description) VALUES ('155635', 'PLANTAS DE TRANSMISION Y SUBESTACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('155640', 'OLEODUCTOS ');
+INSERT INTO gifi (accno,description) VALUES ('155645', 'GASODUCTOS ');
+INSERT INTO gifi (accno,description) VALUES ('155647', 'POLIDUCTOS ');
+INSERT INTO gifi (accno,description) VALUES ('155650', 'REDES DE DISTRIBUCION ');
+INSERT INTO gifi (accno,description) VALUES ('155655', 'PLANTAS DE TRATAMIENTO ');
+INSERT INTO gifi (accno,description) VALUES ('155660', 'REDES DE RECOLECCION DE AGUAS NEGRAS ');
+INSERT INTO gifi (accno,description) VALUES ('155665', 'INSTALACIONES Y EQUIPO DE BOMBEO ');
+INSERT INTO gifi (accno,description) VALUES ('155670', 'REDES DE DISTRIBUCION DE VAPOR ');
+INSERT INTO gifi (accno,description) VALUES ('155675', 'REDES DE AIRE ');
+INSERT INTO gifi (accno,description) VALUES ('155680', 'REDES ALIMENTACION DE GAS ');
+INSERT INTO gifi (accno,description) VALUES ('155682', 'REDES EXTERNAS DE TELEFONIA ');
+INSERT INTO gifi (accno,description) VALUES ('155685', 'PLANTAS DESHIDRATADORAS ');
+INSERT INTO gifi (accno,description) VALUES ('155695', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('155699', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1560', 'ARMAMENTO DE VIGILANCIA ');
+INSERT INTO gifi (accno,description) VALUES ('156099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1562', 'ENVASES Y EMPAQUES ');
+INSERT INTO gifi (accno,description) VALUES ('156299', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1564', 'PLANTACIONES AGRICOLAS Y FORESTALES ');
+INSERT INTO gifi (accno,description) VALUES ('156405', 'CULTIVOS EN DESARROLLO ');
+INSERT INTO gifi (accno,description) VALUES ('156410', 'CULTIVOS AMORTIZABLES ');
+INSERT INTO gifi (accno,description) VALUES ('156499', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1568', 'VIAS DE COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('156805', 'PAVIMENTACION Y PATIOS ');
+INSERT INTO gifi (accno,description) VALUES ('156810', 'VIAS ');
+INSERT INTO gifi (accno,description) VALUES ('156815', 'PUENTES ');
+INSERT INTO gifi (accno,description) VALUES ('156820', 'CALLES ');
+INSERT INTO gifi (accno,description) VALUES ('156825', 'AERODROMOS ');
+INSERT INTO gifi (accno,description) VALUES ('156895', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('156899', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1572', 'MINAS Y CANTERAS ');
+INSERT INTO gifi (accno,description) VALUES ('157205', 'MINAS ');
+INSERT INTO gifi (accno,description) VALUES ('157210', 'CANTERAS ');
+INSERT INTO gifi (accno,description) VALUES ('157299', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1576', 'POZOS ARTESIANOS ');
+INSERT INTO gifi (accno,description) VALUES ('157699', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1580', 'YACIMIENTOS ');
+INSERT INTO gifi (accno,description) VALUES ('158099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1584', 'SEMOVIENTES ');
+INSERT INTO gifi (accno,description) VALUES ('158405', 'ESPECIES MENORES ');
+INSERT INTO gifi (accno,description) VALUES ('158410', 'ESPECIES MAYORES ');
+INSERT INTO gifi (accno,description) VALUES ('158499', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1588', 'PROPIEDADES PLANTA Y EQUIPO EN TRANSITO ');
+INSERT INTO gifi (accno,description) VALUES ('158805', 'MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('158810', 'EQUIPO DE OFICINA ');
+INSERT INTO gifi (accno,description) VALUES ('158815', 'EQUIPO DE COMPUTACION Y COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('158820', 'EQUIPO MEDICO CIENTIFICO ');
+INSERT INTO gifi (accno,description) VALUES ('158825', 'EQUIPO DE HOTELES Y RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('158830', 'FLOTA Y EQUIPO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('158835', 'FLOTA Y EQUIPO FLUVIAL Y/O MARITIMO ');
+INSERT INTO gifi (accno,description) VALUES ('158840', 'FLOTA Y EQUIPO AEREO ');
+INSERT INTO gifi (accno,description) VALUES ('158845', 'FLOTA Y EQUIPO FERREO ');
+INSERT INTO gifi (accno,description) VALUES ('158850', 'PLANTAS Y REDES ');
+INSERT INTO gifi (accno,description) VALUES ('158855', 'ARMAMENTO DE VIGILANCIA ');
+INSERT INTO gifi (accno,description) VALUES ('158860', 'SEMOVIENTES ');
+INSERT INTO gifi (accno,description) VALUES ('158865', 'ENVASES Y EMPAQUES ');
+INSERT INTO gifi (accno,description) VALUES ('158899', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1592', 'DEPRECIACION ACUMULADA ');
+INSERT INTO gifi (accno,description) VALUES ('159205', 'CONSTRUCCIONES Y EDIFICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('159210', 'MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('159215', 'EQUIPO DE OFICINA ');
+INSERT INTO gifi (accno,description) VALUES ('159220', 'EQUIPO DE COMPUTACION Y COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('159225', 'EQUIPO MEDICO CIENTIFICO ');
+INSERT INTO gifi (accno,description) VALUES ('159230', 'EQUIPO DE HOTELES Y RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('159235', 'FLOTA Y EQUIPO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('159240', 'FLOTA Y EQUIPO FLUVIAL Y/O MARITIMO ');
+INSERT INTO gifi (accno,description) VALUES ('159245', 'FLOTA Y EQUIPO AEREO ');
+INSERT INTO gifi (accno,description) VALUES ('159250', 'FLOTA Y EQUIPO FERREO ');
+INSERT INTO gifi (accno,description) VALUES ('159255', 'ACUEDUCTOS PLANTAS Y REDES ');
+INSERT INTO gifi (accno,description) VALUES ('159260', 'ARMAMENTO DE VIGILANCIA ');
+INSERT INTO gifi (accno,description) VALUES ('159265', 'ENVASES Y EMPAQUES ');
+INSERT INTO gifi (accno,description) VALUES ('159299', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1596', 'DEPRECIACION DIFERIDA ');
+INSERT INTO gifi (accno,description) VALUES ('159605', 'EXCESO FISCAL SOBRE LA CONTABLE ');
+INSERT INTO gifi (accno,description) VALUES ('159610', 'DEFECTO FISCAL SOBRE LA CONTABLE (CR) ');
+INSERT INTO gifi (accno,description) VALUES ('159699', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1597', 'AMORTIZACION ACUMULADA ');
+INSERT INTO gifi (accno,description) VALUES ('159705', 'PLANTACIONES AGRICOLAS Y FORESTALES ');
+INSERT INTO gifi (accno,description) VALUES ('159710', 'VIAS DE COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('159715', 'SEMOVIENTES ');
+INSERT INTO gifi (accno,description) VALUES ('159799', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1598', 'AGOTAMIENTO ACUMULADO ');
+INSERT INTO gifi (accno,description) VALUES ('159805', 'MINAS Y CANTERAS ');
+INSERT INTO gifi (accno,description) VALUES ('159815', 'POZOS ARTESIANOS ');
+INSERT INTO gifi (accno,description) VALUES ('159820', 'YACIMIENTOS ');
+INSERT INTO gifi (accno,description) VALUES ('159899', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1599', 'PROVISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('159904', 'TERRENOS ');
+INSERT INTO gifi (accno,description) VALUES ('159906', 'MATERIALES PROYECTOS PETROLEROS ');
+INSERT INTO gifi (accno,description) VALUES ('159908', 'CONSTRUCCIONES EN CURSO ');
+INSERT INTO gifi (accno,description) VALUES ('159912', 'MAQUINARIA EN MONTAJE ');
+INSERT INTO gifi (accno,description) VALUES ('159916', 'CONSTRUCCIONES Y EDIFICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('159920', 'MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('159924', 'EQUIPO DE OFICINA ');
+INSERT INTO gifi (accno,description) VALUES ('159928', 'EQUIPO DE COMPUTACION Y COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('159932', 'EQUIPO MEDICO CIENTIFICO ');
+INSERT INTO gifi (accno,description) VALUES ('159936', 'EQUIPO DE HOTELES Y RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('159940', 'FLOTA Y EQUIPO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('159944', 'FLOTA Y EQUIPO FLUVIAL Y/O MARITIMO ');
+INSERT INTO gifi (accno,description) VALUES ('159948', 'FLOTA Y EQUIPO AEREO ');
+INSERT INTO gifi (accno,description) VALUES ('159952', 'FLOTA Y EQUIPO FERREO ');
+INSERT INTO gifi (accno,description) VALUES ('159956', 'ACUEDUCTOS, PLANTAS Y REDES ');
+INSERT INTO gifi (accno,description) VALUES ('159960', 'ARMAMENTO DE VIGILANCIA ');
+INSERT INTO gifi (accno,description) VALUES ('159962', 'ENVASES Y EMPAQUES ');
+INSERT INTO gifi (accno,description) VALUES ('159964', 'PLANTACIONES AGRICOLAS Y FORESTALES ');
+INSERT INTO gifi (accno,description) VALUES ('159968', 'VIAS DE COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('159972', 'MINAS Y CANTERAS ');
+INSERT INTO gifi (accno,description) VALUES ('159980', 'POZOS ARTESIANOS ');
+INSERT INTO gifi (accno,description) VALUES ('159984', 'YACIMIENTOS ');
+INSERT INTO gifi (accno,description) VALUES ('159988', 'SEMOVIENTES ');
+INSERT INTO gifi (accno,description) VALUES ('159992', 'PROPIEDADES PLANTA Y EQUIPO EN TRANSITO ');
+INSERT INTO gifi (accno,description) VALUES ('16', 'INTANGIBLES ');
+INSERT INTO gifi (accno,description) VALUES ('1605', 'CREDITO MERCANTIL ');
+INSERT INTO gifi (accno,description) VALUES ('160505', 'FORMADO O ESTIMADO ');
+INSERT INTO gifi (accno,description) VALUES ('160510', 'ADQUIRIDO O COMPRADO ');
+INSERT INTO gifi (accno,description) VALUES ('160599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1610', 'MARCAS ');
+INSERT INTO gifi (accno,description) VALUES ('161005', 'ADQUIRIDAS ');
+INSERT INTO gifi (accno,description) VALUES ('161010', 'FORMADAS ');
+INSERT INTO gifi (accno,description) VALUES ('161099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1615', 'PATENTES ');
+INSERT INTO gifi (accno,description) VALUES ('161505', 'ADQUIRIDAS ');
+INSERT INTO gifi (accno,description) VALUES ('161510', 'FORMADAS ');
+INSERT INTO gifi (accno,description) VALUES ('161599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1620', 'CONCESIONES Y FRANQUICIAS ');
+INSERT INTO gifi (accno,description) VALUES ('162005', 'CONCESIONES ');
+INSERT INTO gifi (accno,description) VALUES ('162010', 'FRANQUICIAS ');
+INSERT INTO gifi (accno,description) VALUES ('162099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1625', 'DERECHOS ');
+INSERT INTO gifi (accno,description) VALUES ('162505', 'DERECHOS DE AUTOR ');
+INSERT INTO gifi (accno,description) VALUES ('162510', 'PUESTO DE BOLSA ');
+INSERT INTO gifi (accno,description) VALUES ('162515', 'EN FIDEICOMISOS INMOBILIARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('162520', 'EN FIDEICOMISOS DE GARANTIA ');
+INSERT INTO gifi (accno,description) VALUES ('162525', 'EN FIDEICOMISOS DE ADMINISTRACION ');
+INSERT INTO gifi (accno,description) VALUES ('162595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('162599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1630', 'KNOW HOW ');
+INSERT INTO gifi (accno,description) VALUES ('163099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1635', 'LICENCIAS ');
+INSERT INTO gifi (accno,description) VALUES ('163599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1698', 'AMORTIZACION ACUMULADA ');
+INSERT INTO gifi (accno,description) VALUES ('169805', 'CREDITO MERCANTIL ');
+INSERT INTO gifi (accno,description) VALUES ('169810', 'MARCAS ');
+INSERT INTO gifi (accno,description) VALUES ('169815', 'PATENTES ');
+INSERT INTO gifi (accno,description) VALUES ('169820', 'CONCESIONES Y FRANQUICIAS ');
+INSERT INTO gifi (accno,description) VALUES ('169830', 'DERECHOS ');
+INSERT INTO gifi (accno,description) VALUES ('169835', 'KNOW HOW ');
+INSERT INTO gifi (accno,description) VALUES ('169840', 'LICENCIAS ');
+INSERT INTO gifi (accno,description) VALUES ('169899', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1699', 'PROVISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('17', 'DIFERIDOS ');
+INSERT INTO gifi (accno,description) VALUES ('1705', 'GASTOS PAGADOS POR ANTICIPADO ');
+INSERT INTO gifi (accno,description) VALUES ('170505', 'INTERESES ');
+INSERT INTO gifi (accno,description) VALUES ('170510', 'HONORARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('170515', 'COMISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('170520', 'SEGUROS Y FIANZAS ');
+INSERT INTO gifi (accno,description) VALUES ('170525', 'ARRENDAMIENTOS ');
+INSERT INTO gifi (accno,description) VALUES ('170530', 'BODEGAJES ');
+INSERT INTO gifi (accno,description) VALUES ('170535', 'MANTENIMIENTO EQUIPOS ');
+INSERT INTO gifi (accno,description) VALUES ('170540', 'SERVICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('170545', 'SUSCRIPCIONES ');
+INSERT INTO gifi (accno,description) VALUES ('170595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('1710', 'CARGOS DIFERIDOS ');
+INSERT INTO gifi (accno,description) VALUES ('171004', 'ORGANIZACION Y PREOPERATIVOS ');
+INSERT INTO gifi (accno,description) VALUES ('171008', 'REMODELACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('171012', 'ESTUDIOS, INVESTIGACIONES Y PROYECTOS ');
+INSERT INTO gifi (accno,description) VALUES ('171016', 'PROGRAMAS PARA COMPUTADOR (SOFTWARE) ');
+INSERT INTO gifi (accno,description) VALUES ('171020', 'UTILES Y PAPELERIA ');
+INSERT INTO gifi (accno,description) VALUES ('171024', 'MEJORAS A PROPIEDADES AJENAS ');
+INSERT INTO gifi (accno,description) VALUES ('171028', 'CONTRIBUCIONES Y AFILIACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('171032', 'ENTRENAMIENTO DE PERSONAL ');
+INSERT INTO gifi (accno,description) VALUES ('171036', 'FERIAS Y EXPOSICIONES ');
+INSERT INTO gifi (accno,description) VALUES ('171040', 'LICENCIAS ');
+INSERT INTO gifi (accno,description) VALUES ('171044', 'PUBLICIDAD, PROPAGANDA Y AVISOS ');
+INSERT INTO gifi (accno,description) VALUES ('171048', 'ELEMENTOS DE ASEO Y CAFETERIA ');
+INSERT INTO gifi (accno,description) VALUES ('171052', 'MOLDES Y TROQUELES ');
+INSERT INTO gifi (accno,description) VALUES ('171056', 'INSTRUMENTAL QUIRURGICO ');
+INSERT INTO gifi (accno,description) VALUES ('171060', 'DOTACION Y SUMINISTRO A TRABAJADORES ');
+INSERT INTO gifi (accno,description) VALUES ('171064', 'ELEMENTOS DE ROPERIA Y LENCERIA ');
+INSERT INTO gifi (accno,description) VALUES ('171068', 'LOZA Y CRISTALERIA ');
+INSERT INTO gifi (accno,description) VALUES ('171072', 'DESCUENTO EN COLOCACION DE BONOS ');
+INSERT INTO gifi (accno,description) VALUES ('171076', 'IMPUESTO DE RENTA DIFERIDO "DEBITOS" POR DIFERENCIAS TEMPORALES ');
+INSERT INTO gifi (accno,description) VALUES ('171080', 'CONCURSOS Y LICITACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('171095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('171099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1715', 'COSTOS DE EXPLORACION POR AMORTIZAR ');
+INSERT INTO gifi (accno,description) VALUES ('171505', 'POZOS SECOS ');
+INSERT INTO gifi (accno,description) VALUES ('171510', 'POZOS NO COMERCIALES ');
+INSERT INTO gifi (accno,description) VALUES ('171515', 'OTROS COSTOS DE EXPLORACION ');
+INSERT INTO gifi (accno,description) VALUES ('171599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1720', 'COSTOS DE EXPLOTACION Y DESARROLLO ');
+INSERT INTO gifi (accno,description) VALUES ('172005', 'PERFORACION Y EXPLOTACION ');
+INSERT INTO gifi (accno,description) VALUES ('172010', 'PERFORACIONES CAMPOS EN DESARROLLO ');
+INSERT INTO gifi (accno,description) VALUES ('172015', 'FACILIDADES DE PRODUCCION ');
+INSERT INTO gifi (accno,description) VALUES ('172020', 'SERVICIO A POZOS ');
+INSERT INTO gifi (accno,description) VALUES ('172099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1730', 'CARGOS POR CORRECCION MONETARIA DIFERIDA ');
+INSERT INTO gifi (accno,description) VALUES ('1798', 'AMORTIZACION ACUMULADA ');
+INSERT INTO gifi (accno,description) VALUES ('179805', 'COSTOS DE EXPLORACION POR AMORTIZAR ');
+INSERT INTO gifi (accno,description) VALUES ('179810', 'COSTOS DE EXPLOTACION Y DESARROLLO ');
+INSERT INTO gifi (accno,description) VALUES ('179899', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('18', 'OTROS ACTIVOS ');
+INSERT INTO gifi (accno,description) VALUES ('1805', 'BIENES DE ARTE Y CULTURA ');
+INSERT INTO gifi (accno,description) VALUES ('180505', 'OBRAS DE ARTE ');
+INSERT INTO gifi (accno,description) VALUES ('180510', 'BIBLIOTECAS ');
+INSERT INTO gifi (accno,description) VALUES ('180595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('180599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1895', 'DIVERSOS ');
+INSERT INTO gifi (accno,description) VALUES ('189505', 'MAQUINAS PORTEADORAS ');
+INSERT INTO gifi (accno,description) VALUES ('189510', 'BIENES ENTREGADOS EN COMODATO ');
+INSERT INTO gifi (accno,description) VALUES ('189515', 'AMORTIZACION ACUMULADA DE BIENES ENTREGADOS EN COMODATO (CR) ');
+INSERT INTO gifi (accno,description) VALUES ('189520', 'BIENES RECIBIDOS EN PAGO ');
+INSERT INTO gifi (accno,description) VALUES ('189525', 'DERECHOS SUCESORALES ');
+INSERT INTO gifi (accno,description) VALUES ('189530', 'ESTAMPILLAS ');
+INSERT INTO gifi (accno,description) VALUES ('189595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('189599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1899', 'PROVISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('189905', 'BIENES DE ARTE Y CULTURA ');
+INSERT INTO gifi (accno,description) VALUES ('189995', 'DIVERSOS ');
+INSERT INTO gifi (accno,description) VALUES ('19', 'VALORIZACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('1905', 'DE INVERSIONES ');
+INSERT INTO gifi (accno,description) VALUES ('190505', 'ACCIONES ');
+INSERT INTO gifi (accno,description) VALUES ('190510', 'CUOTAS O PARTES DE INTERES SOCIAL ');
+INSERT INTO gifi (accno,description) VALUES ('190515', 'DERECHOS FIDUCIARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('1910', 'DE PROPIEDADES PLANTA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('191004', 'TERRENOS ');
+INSERT INTO gifi (accno,description) VALUES ('191006', 'MATERIALES PROYECTOS PETROLEROS ');
+INSERT INTO gifi (accno,description) VALUES ('191008', 'CONSTRUCCIONES Y EDIFICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('191012', 'MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('191016', 'EQUIPO DE OFICINA ');
+INSERT INTO gifi (accno,description) VALUES ('191020', 'EQUIPO DE COMPUTACION Y COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('191024', 'EQUIPO MEDICO CIENTIFICO ');
+INSERT INTO gifi (accno,description) VALUES ('191028', 'EQUIPO DE HOTELES Y RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('191032', 'FLOTA Y EQUIPO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('191036', 'FLOTA Y EQUIPO FLUVIAL Y/O MARITIMO ');
+INSERT INTO gifi (accno,description) VALUES ('191040', 'FLOTA Y EQUIPO AEREO ');
+INSERT INTO gifi (accno,description) VALUES ('191044', 'FLOTA Y EQUIPO FERREO ');
+INSERT INTO gifi (accno,description) VALUES ('191048', 'ACUEDUCTOS PLANTAS Y REDES ');
+INSERT INTO gifi (accno,description) VALUES ('191052', 'ARMAMENTO DE VIGILANCIA ');
+INSERT INTO gifi (accno,description) VALUES ('191056', 'ENVASES Y EMPAQUES ');
+INSERT INTO gifi (accno,description) VALUES ('191060', 'PLANTACIONES AGRICOLAS Y FORESTALES ');
+INSERT INTO gifi (accno,description) VALUES ('191064', 'VIAS DE COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('191068', 'MINAS Y CANTERAS ');
+INSERT INTO gifi (accno,description) VALUES ('191072', 'POZOS ARTESIANOS ');
+INSERT INTO gifi (accno,description) VALUES ('191076', 'YACIMIENTOS ');
+INSERT INTO gifi (accno,description) VALUES ('191080', 'SEMOVIENTES ');
+INSERT INTO gifi (accno,description) VALUES ('1995', 'DE OTROS ACTIVOS ');
+INSERT INTO gifi (accno,description) VALUES ('199505', 'BIENES DE ARTE Y CULTURA ');
+INSERT INTO gifi (accno,description) VALUES ('199510', 'BIENES ENTREGADOS EN COMODATO ');
+INSERT INTO gifi (accno,description) VALUES ('199515', 'BIENES RECIBIDOS EN PAGO ');
+INSERT INTO gifi (accno,description) VALUES ('199520', 'INVENTARIO DE SEMOVIENTES ');
+INSERT INTO gifi (accno,description) VALUES ('2', 'PASIVO ');
+INSERT INTO gifi (accno,description) VALUES ('21', 'OBLIGACIONES FINANCIERAS ');
+INSERT INTO gifi (accno,description) VALUES ('2105', 'BANCOS NACIONALES ');
+INSERT INTO gifi (accno,description) VALUES ('210505', 'SOBREGIROS ');
+INSERT INTO gifi (accno,description) VALUES ('210510', 'PAGARES ');
+INSERT INTO gifi (accno,description) VALUES ('210515', 'CARTAS DE CREDITO ');
+INSERT INTO gifi (accno,description) VALUES ('210520', 'ACEPTACIONES BANCARIAS ');
+INSERT INTO gifi (accno,description) VALUES ('2110', 'BANCOS DEL EXTERIOR ');
+INSERT INTO gifi (accno,description) VALUES ('211005', 'SOBREGIROS ');
+INSERT INTO gifi (accno,description) VALUES ('211010', 'PAGARES ');
+INSERT INTO gifi (accno,description) VALUES ('211015', 'CARTAS DE CREDITO ');
+INSERT INTO gifi (accno,description) VALUES ('211020', 'ACEPTACIONES BANCARIAS ');
+INSERT INTO gifi (accno,description) VALUES ('2115', 'CORPORACIONES FINANCIERAS ');
+INSERT INTO gifi (accno,description) VALUES ('211505', 'PAGARES ');
+INSERT INTO gifi (accno,description) VALUES ('211510', 'ACEPTACIONES FINANCIERAS ');
+INSERT INTO gifi (accno,description) VALUES ('211515', 'CARTAS DE CREDITO ');
+INSERT INTO gifi (accno,description) VALUES ('2120', 'COMPAŃIAS DE FINANCIAMIENTO COMERCIAL ');
+INSERT INTO gifi (accno,description) VALUES ('212005', 'PAGARES ');
+INSERT INTO gifi (accno,description) VALUES ('212010', 'ACEPTACIONES FINANCIERAS ');
+INSERT INTO gifi (accno,description) VALUES ('2125', 'CORPORACIONES DE AHORRO Y VIVIENDA ');
+INSERT INTO gifi (accno,description) VALUES ('212505', 'SOBREGIROS ');
+INSERT INTO gifi (accno,description) VALUES ('212510', 'PAGARES ');
+INSERT INTO gifi (accno,description) VALUES ('212515', 'HIPOTECARIAS ');
+INSERT INTO gifi (accno,description) VALUES ('2130', 'ENTIDADES FINANCIERAS DEL EXTERIOR ');
+INSERT INTO gifi (accno,description) VALUES ('2135', 'COMPROMISOS DE RECOMPRA DE INVERSIONES NEGOCIADAS ');
+INSERT INTO gifi (accno,description) VALUES ('213505', 'ACCIONES ');
+INSERT INTO gifi (accno,description) VALUES ('213510', 'CUOTAS O PARTES DE INTERES SOCIAL ');
+INSERT INTO gifi (accno,description) VALUES ('213515', 'BONOS ');
+INSERT INTO gifi (accno,description) VALUES ('213520', 'CEDULAS ');
+INSERT INTO gifi (accno,description) VALUES ('213525', 'CERTIFICADOS ');
+INSERT INTO gifi (accno,description) VALUES ('213530', 'PAPELES COMERCIALES ');
+INSERT INTO gifi (accno,description) VALUES ('213535', 'TITULOS ');
+INSERT INTO gifi (accno,description) VALUES ('213540', 'ACEPTACIONES BANCARIAS O FINANCIERAS ');
+INSERT INTO gifi (accno,description) VALUES ('213595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('2140', 'COMPROMISOS DE RECOMPRA DE CARTERA NEGOCIADA ');
+INSERT INTO gifi (accno,description) VALUES ('2145', 'OBLIGACIONES GUBERNAMENTALES ');
+INSERT INTO gifi (accno,description) VALUES ('214505', 'GOBIERNO NACIONAL ');
+INSERT INTO gifi (accno,description) VALUES ('214510', 'ENTIDADES OFICIALES ');
+INSERT INTO gifi (accno,description) VALUES ('2195', 'OTRAS OBLIGACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('219505', 'PARTICULARES ');
+INSERT INTO gifi (accno,description) VALUES ('219510', 'COMPAŃIAS VINCULADAS ');
+INSERT INTO gifi (accno,description) VALUES ('219515', 'CASA MATRIZ ');
+INSERT INTO gifi (accno,description) VALUES ('219520', 'SOCIOS O ACCIONISTAS ');
+INSERT INTO gifi (accno,description) VALUES ('219525', 'FONDOS Y COOPERATIVAS ');
+INSERT INTO gifi (accno,description) VALUES ('219595', 'OTRAS ');
+INSERT INTO gifi (accno,description) VALUES ('22', 'PROVEEDORES ');
+INSERT INTO gifi (accno,description) VALUES ('2205', 'NACIONALES ');
+INSERT INTO gifi (accno,description) VALUES ('2210', 'DEL EXTERIOR ');
+INSERT INTO gifi (accno,description) VALUES ('2215', 'CUENTAS CORRIENTES COMERCIALES ');
+INSERT INTO gifi (accno,description) VALUES ('2220', 'CASA MATRIZ ');
+INSERT INTO gifi (accno,description) VALUES ('2225', 'COMPAŃIAS VINCULADAS ');
+INSERT INTO gifi (accno,description) VALUES ('23', 'CUENTAS POR PAGAR ');
+INSERT INTO gifi (accno,description) VALUES ('2305', 'CUENTAS CORRIENTES COMERCIALES ');
+INSERT INTO gifi (accno,description) VALUES ('2310', 'A CASA MATRIZ ');
+INSERT INTO gifi (accno,description) VALUES ('2315', 'A COMPAŃIAS VINCULADAS ');
+INSERT INTO gifi (accno,description) VALUES ('2320', 'A CONTRATISTAS ');
+INSERT INTO gifi (accno,description) VALUES ('2330', 'ORDENES DE COMPRA POR UTILIZAR ');
+INSERT INTO gifi (accno,description) VALUES ('2335', 'COSTOS Y GASTOS POR PAGAR ');
+INSERT INTO gifi (accno,description) VALUES ('233505', 'GASTOS FINANCIEROS ');
+INSERT INTO gifi (accno,description) VALUES ('233510', 'GASTOS LEGALES ');
+INSERT INTO gifi (accno,description) VALUES ('233515', 'LIBROS, SUSCRIPCIONES, PERIODICOS Y REVISTAS ');
+INSERT INTO gifi (accno,description) VALUES ('233520', 'COMISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('233525', 'HONORARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('233530', 'SERVICIOS TECNICOS ');
+INSERT INTO gifi (accno,description) VALUES ('233535', 'SERVICIOS DE MANTENIMIENTO ');
+INSERT INTO gifi (accno,description) VALUES ('233540', 'ARRENDAMIENTOS ');
+INSERT INTO gifi (accno,description) VALUES ('233545', 'TRANSPORTES, FLETES Y ACARREOS ');
+INSERT INTO gifi (accno,description) VALUES ('233550', 'SERVICIOS PUBLICOS ');
+INSERT INTO gifi (accno,description) VALUES ('233555', 'SEGUROS ');
+INSERT INTO gifi (accno,description) VALUES ('233560', 'GASTOS DE VIAJE ');
+INSERT INTO gifi (accno,description) VALUES ('233565', 'GASTOS DE REPRESENTACION Y RELACIONES PUBLICAS ');
+INSERT INTO gifi (accno,description) VALUES ('233570', 'SERVICIOS ADUANEROS ');
+INSERT INTO gifi (accno,description) VALUES ('233595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('2340', 'INSTALAMENTOS POR PAGAR ');
+INSERT INTO gifi (accno,description) VALUES ('2345', 'ACREEDORES OFICIALES ');
+INSERT INTO gifi (accno,description) VALUES ('2350', 'REGALIAS POR PAGAR ');
+INSERT INTO gifi (accno,description) VALUES ('2355', 'DEUDAS CON ACCIONISTAS O SOCIOS ');
+INSERT INTO gifi (accno,description) VALUES ('235505', 'ACCIONISTAS ');
+INSERT INTO gifi (accno,description) VALUES ('235510', 'SOCIOS ');
+INSERT INTO gifi (accno,description) VALUES ('2360', 'DIVIDENDOS O PARTICIPACIONES POR PAGAR ');
+INSERT INTO gifi (accno,description) VALUES ('236005', 'DIVIDENDOS ');
+INSERT INTO gifi (accno,description) VALUES ('236010', 'PARTICIPACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('2365', 'RETENCION EN LA FUENTE ');
+INSERT INTO gifi (accno,description) VALUES ('236505', 'SALARIOS Y PAGOS LABORALES ');
+INSERT INTO gifi (accno,description) VALUES ('236510', 'DIVIDENDOS Y/O PARTICIPACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('236515', 'HONORARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('236520', 'COMISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('236525', 'SERVICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('236530', 'ARRENDAMIENTOS ');
+INSERT INTO gifi (accno,description) VALUES ('236535', 'RENDIMIENTOS FINANCIEROS ');
+INSERT INTO gifi (accno,description) VALUES ('236540', 'COMPRAS ');
+INSERT INTO gifi (accno,description) VALUES ('236545', 'LOTERIAS, RIFAS, APUESTAS Y SIMILARES ');
+INSERT INTO gifi (accno,description) VALUES ('236550', 'POR PAGOS AL EXTERIOR ');
+INSERT INTO gifi (accno,description) VALUES ('236555', 'POR INGRESOS OBTENIDOS EN EL EXTERIOR ');
+INSERT INTO gifi (accno,description) VALUES ('236560', 'ENAJENACION PROPIEDADES PLANTA Y EQUIPO PERSONAS NATURALES ');
+INSERT INTO gifi (accno,description) VALUES ('236565', 'POR IMPUESTO DE TIMBRE ');
+INSERT INTO gifi (accno,description) VALUES ('236570', 'OTRAS RETENCIONES Y PATRIMONIO ');
+INSERT INTO gifi (accno,description) VALUES ('236575', 'AUTORRETENCIONES ');
+INSERT INTO gifi (accno,description) VALUES ('2370', 'RETENCIONES Y APORTES DE NOMINA ');
+INSERT INTO gifi (accno,description) VALUES ('237005', 'APORTES AL I.S.S. ');
+INSERT INTO gifi (accno,description) VALUES ('237010', 'APORTES AL I.C.B.F., SENA Y CAJAS DE COMPENSACION ');
+INSERT INTO gifi (accno,description) VALUES ('237015', 'APORTES AL F.I.C. ');
+INSERT INTO gifi (accno,description) VALUES ('237025', 'EMBARGOS JUDICIALES ');
+INSERT INTO gifi (accno,description) VALUES ('237030', 'LIBRANZAS ');
+INSERT INTO gifi (accno,description) VALUES ('237035', 'SINDICATOS ');
+INSERT INTO gifi (accno,description) VALUES ('237040', 'COOPERATIVAS ');
+INSERT INTO gifi (accno,description) VALUES ('237045', 'FONDOS ');
+INSERT INTO gifi (accno,description) VALUES ('237095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('2375', 'CUOTAS POR DEVOLVER ');
+INSERT INTO gifi (accno,description) VALUES ('2380', 'ACREEDORES VARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('238005', 'DEPOSITARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('238010', 'COMISIONISTAS DE BOLSAS ');
+INSERT INTO gifi (accno,description) VALUES ('238015', 'SOCIEDAD ADMINISTRADORA - FONDOS DE INVERSION ');
+INSERT INTO gifi (accno,description) VALUES ('238020', 'REINTEGROS POR PAGAR ');
+INSERT INTO gifi (accno,description) VALUES ('238025', 'FONDO DE PERSEVERANCIA ');
+INSERT INTO gifi (accno,description) VALUES ('238030', 'FONDOS DE CESANTIAS Y/O PENSIONES ');
+INSERT INTO gifi (accno,description) VALUES ('238035', 'DONACIONES ASIGNADAS POR PAGAR ');
+INSERT INTO gifi (accno,description) VALUES ('238095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('24', 'IMPUESTOS, GRAVAMENES Y TASAS ');
+INSERT INTO gifi (accno,description) VALUES ('2404', 'DE RENTA Y COMPLEMENTARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('240405', 'VIGENCIA FISCAL CORRIENTE ');
+INSERT INTO gifi (accno,description) VALUES ('240410', 'VIGENCIAS FISCALES ANTERIORES ');
+INSERT INTO gifi (accno,description) VALUES ('2408', 'IMPUESTO SOBRE LAS VENTAS POR PAGAR ');
+INSERT INTO gifi (accno,description) VALUES ('2412', 'DE INDUSTRIA Y COMERCIO ');
+INSERT INTO gifi (accno,description) VALUES ('241205', 'VIGENCIA FISCAL CORRIENTE ');
+INSERT INTO gifi (accno,description) VALUES ('241210', 'VIGENCIAS FISCALES ANTERIORES ');
+INSERT INTO gifi (accno,description) VALUES ('2416', 'A LA PROPIEDAD RAIZ ');
+INSERT INTO gifi (accno,description) VALUES ('2420', 'DERECHOS SOBRE INSTRUMENTOS PUBLICOS ');
+INSERT INTO gifi (accno,description) VALUES ('2424', 'DE VALORIZACION ');
+INSERT INTO gifi (accno,description) VALUES ('242405', 'VIGENCIA FISCAL CORRIENTE ');
+INSERT INTO gifi (accno,description) VALUES ('242410', 'VIGENCIAS FISCALES ANTERIORES ');
+INSERT INTO gifi (accno,description) VALUES ('2428', 'DE TURISMO ');
+INSERT INTO gifi (accno,description) VALUES ('2432', 'TASA POR UTILIZACION DE PUERTOS ');
+INSERT INTO gifi (accno,description) VALUES ('2436', 'DE VEHICULOS ');
+INSERT INTO gifi (accno,description) VALUES ('243605', 'VIGENCIA FISCAL CORRIENTE ');
+INSERT INTO gifi (accno,description) VALUES ('243610', 'VIGENCIAS FISCALES ANTERIORES ');
+INSERT INTO gifi (accno,description) VALUES ('2440', 'DE ESPECTACULOS PUBLICOS ');
+INSERT INTO gifi (accno,description) VALUES ('2444', 'DE HIDROCARBUROS Y MINAS ');
+INSERT INTO gifi (accno,description) VALUES ('244405', 'DE HIDROCARBUROS ');
+INSERT INTO gifi (accno,description) VALUES ('244410', 'DE MINAS ');
+INSERT INTO gifi (accno,description) VALUES ('2448', 'REGALIAS E IMPUESTOS A LA PEQUEŃA Y MEDIANA MINERIA ');
+INSERT INTO gifi (accno,description) VALUES ('2452', 'A LAS EXPORTACIONES CAFETERAS ');
+INSERT INTO gifi (accno,description) VALUES ('2456', 'A LAS IMPORTACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('2460', 'CUOTAS DE FOMENTO ');
+INSERT INTO gifi (accno,description) VALUES ('2464', 'DE LICORES, CERVEZAS Y CIGARRILLOS ');
+INSERT INTO gifi (accno,description) VALUES ('246405', 'DE LICORES ');
+INSERT INTO gifi (accno,description) VALUES ('246410', 'DE CERVEZAS ');
+INSERT INTO gifi (accno,description) VALUES ('246415', 'DE CIGARRILLOS ');
+INSERT INTO gifi (accno,description) VALUES ('2468', 'AL SACRIFICIO DE GANADO ');
+INSERT INTO gifi (accno,description) VALUES ('2472', 'AL AZAR Y JUEGOS ');
+INSERT INTO gifi (accno,description) VALUES ('2476', 'GRAVAMENES Y REGALIAS POR UTILIZACION DEL SUELO ');
+INSERT INTO gifi (accno,description) VALUES ('2495', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('25', 'OBLIGACIONES LABORALES ');
+INSERT INTO gifi (accno,description) VALUES ('2505', 'SALARIOS POR PAGAR ');
+INSERT INTO gifi (accno,description) VALUES ('2510', 'CESANTIAS CONSOLIDADAS ');
+INSERT INTO gifi (accno,description) VALUES ('251005', 'LEY LABORAL ANTERIOR ');
+INSERT INTO gifi (accno,description) VALUES ('251010', 'LEY 50 DE 1990 Y NORMAS POSTERIORES ');
+INSERT INTO gifi (accno,description) VALUES ('2515', 'INTERESES SOBRE CESANTIAS ');
+INSERT INTO gifi (accno,description) VALUES ('2520', 'PRIMA DE SERVICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('2525', 'VACACIONES CONSOLIDADAS ');
+INSERT INTO gifi (accno,description) VALUES ('2530', 'PRESTACIONES EXTRALEGALES ');
+INSERT INTO gifi (accno,description) VALUES ('253005', 'PRIMAS ');
+INSERT INTO gifi (accno,description) VALUES ('253010', 'AUXILIOS ');
+INSERT INTO gifi (accno,description) VALUES ('253015', 'DOTACION Y SUMINISTRO A TRABAJADORES ');
+INSERT INTO gifi (accno,description) VALUES ('253020', 'BONIFICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('253025', 'SEGUROS ');
+INSERT INTO gifi (accno,description) VALUES ('253095', 'OTRAS ');
+INSERT INTO gifi (accno,description) VALUES ('2532', 'PENSIONES POR PAGAR ');
+INSERT INTO gifi (accno,description) VALUES ('2535', 'CUOTAS PARTES PENSIONES DE JUBILACION ');
+INSERT INTO gifi (accno,description) VALUES ('2540', 'INDEMNIZACIONES LABORALES ');
+INSERT INTO gifi (accno,description) VALUES ('26', 'PASIVOS ESTIMADOS Y PROVISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('2605', 'PARA COSTOS Y GASTOS ');
+INSERT INTO gifi (accno,description) VALUES ('260505', 'INTERESES ');
+INSERT INTO gifi (accno,description) VALUES ('260510', 'COMISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('260515', 'HONORARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('260520', 'SERVICIOS TECNICOS ');
+INSERT INTO gifi (accno,description) VALUES ('260525', 'TRANSPORTES, FLETES Y ACARREOS ');
+INSERT INTO gifi (accno,description) VALUES ('260530', 'GASTOS DE VIAJE ');
+INSERT INTO gifi (accno,description) VALUES ('260535', 'SERVICIOS PUBLICOS ');
+INSERT INTO gifi (accno,description) VALUES ('260540', 'REGALIAS ');
+INSERT INTO gifi (accno,description) VALUES ('260545', 'GARANTIAS ');
+INSERT INTO gifi (accno,description) VALUES ('260550', 'MATERIALES Y REPUESTOS ');
+INSERT INTO gifi (accno,description) VALUES ('260595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('2610', 'PARA OBLIGACIONES LABORALES ');
+INSERT INTO gifi (accno,description) VALUES ('261005', 'CESANTIAS ');
+INSERT INTO gifi (accno,description) VALUES ('261010', 'INTERESES SOBRE CESANTIAS ');
+INSERT INTO gifi (accno,description) VALUES ('261015', 'VACACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('261020', 'PRIMA DE SERVICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('261025', 'PRESTACIONES EXTRALEGALES ');
+INSERT INTO gifi (accno,description) VALUES ('261030', 'VIATICOS ');
+INSERT INTO gifi (accno,description) VALUES ('261095', 'OTRAS ');
+INSERT INTO gifi (accno,description) VALUES ('2615', 'PARA OBLIGACIONES FISCALES ');
+INSERT INTO gifi (accno,description) VALUES ('261505', 'DE RENTA Y COMPLEMENTARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('261510', 'DE INDUSTRIA Y COMERCIO ');
+INSERT INTO gifi (accno,description) VALUES ('261515', 'TASA POR UTILIZACION DE PUERTOS ');
+INSERT INTO gifi (accno,description) VALUES ('261520', 'DE VEHICULOS ');
+INSERT INTO gifi (accno,description) VALUES ('261525', 'DE HIDROCARBUROS Y MINAS ');
+INSERT INTO gifi (accno,description) VALUES ('261595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('2620', 'PENSIONES DE JUBILACION ');
+INSERT INTO gifi (accno,description) VALUES ('262005', 'CALCULO ACTUARIAL PENSIONES DE JUBILACION ');
+INSERT INTO gifi (accno,description) VALUES ('262010', 'PENSIONES DE JUBILACION POR AMORTIZAR (DB) ');
+INSERT INTO gifi (accno,description) VALUES ('2625', 'PARA OBRAS DE URBANISMO ');
+INSERT INTO gifi (accno,description) VALUES ('262505', 'ACUEDUCTO Y ALCANTARILLADO ');
+INSERT INTO gifi (accno,description) VALUES ('262510', 'ENERGIA ELECTRICA ');
+INSERT INTO gifi (accno,description) VALUES ('262515', 'TELEFONOS ');
+INSERT INTO gifi (accno,description) VALUES ('262595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('2630', 'PARA MANTENIMIENTO Y REPARACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('263005', 'TERRENOS ');
+INSERT INTO gifi (accno,description) VALUES ('263010', 'CONSTRUCCIONES Y EDIFICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('263015', 'MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('263020', 'EQUIPO DE OFICINA ');
+INSERT INTO gifi (accno,description) VALUES ('263025', 'EQUIPO DE COMPUTACION Y COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('263030', 'EQUIPO MEDICO - CIENTIFICO ');
+INSERT INTO gifi (accno,description) VALUES ('263035', 'EQUIPO DE HOTELES Y RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('263040', 'FLOTA Y EQUIPO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('263045', 'FLOTA Y EQUIPO FLUVIAL Y/O MARITIMO ');
+INSERT INTO gifi (accno,description) VALUES ('263050', 'FLOTA Y EQUIPO AEREO ');
+INSERT INTO gifi (accno,description) VALUES ('263055', 'FLOTA Y EQUIPO FERREO ');
+INSERT INTO gifi (accno,description) VALUES ('263060', 'ACUEDUCTOS PLANTAS Y REDES ');
+INSERT INTO gifi (accno,description) VALUES ('263065', 'ARMAMENTO DE VIGILANCIA ');
+INSERT INTO gifi (accno,description) VALUES ('263070', 'ENVASES Y EMPAQUES ');
+INSERT INTO gifi (accno,description) VALUES ('263075', 'PLANTACIONES AGRICOLAS Y FORESTALES ');
+INSERT INTO gifi (accno,description) VALUES ('263080', 'VIAS DE CUMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('263085', 'POZOS ARTESIANOS ');
+INSERT INTO gifi (accno,description) VALUES ('263095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('2635', 'PARA CONTINGENCIAS ');
+INSERT INTO gifi (accno,description) VALUES ('263505', 'MULTAS Y SANCIONES AUTORIDADES ADMINISTRATIVAS ');
+INSERT INTO gifi (accno,description) VALUES ('263510', 'INTERESES POR MULTAS Y SANCIONES ');
+INSERT INTO gifi (accno,description) VALUES ('263515', 'RECLAMOS ');
+INSERT INTO gifi (accno,description) VALUES ('263520', 'LABORALES ');
+INSERT INTO gifi (accno,description) VALUES ('263525', 'CIVILES ');
+INSERT INTO gifi (accno,description) VALUES ('263530', 'PENALES ');
+INSERT INTO gifi (accno,description) VALUES ('263535', 'ADMINISTRATIVOS ');
+INSERT INTO gifi (accno,description) VALUES ('263540', 'COMERCIALES ');
+INSERT INTO gifi (accno,description) VALUES ('263595', 'OTRAS ');
+INSERT INTO gifi (accno,description) VALUES ('2640', 'PARA OBLIGACIONES DE GARANTIAS ');
+INSERT INTO gifi (accno,description) VALUES ('2695', 'PROVISIONES DIVERSAS ');
+INSERT INTO gifi (accno,description) VALUES ('269505', 'PARA BENEFICENCIA ');
+INSERT INTO gifi (accno,description) VALUES ('269510', 'PARA COMUNICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('269515', 'PARA PERDIDA EN TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('269520', 'PARA OPERACION ');
+INSERT INTO gifi (accno,description) VALUES ('269525', 'PARA PROTECCION DE BIENES AGOTABLES ');
+INSERT INTO gifi (accno,description) VALUES ('269530', 'PARA AJUSTES EN REDENCION DE UNIDADES ');
+INSERT INTO gifi (accno,description) VALUES ('269535', 'AUTOSEGURO ');
+INSERT INTO gifi (accno,description) VALUES ('269540', 'PLANES Y PROGRAMAS DE REFORESTACION Y ELECTRIFICACION ');
+INSERT INTO gifi (accno,description) VALUES ('269595', 'OTRAS ');
+INSERT INTO gifi (accno,description) VALUES ('27', 'DIFERIDOS ');
+INSERT INTO gifi (accno,description) VALUES ('2705', 'INGRESOS RECIBIDOS POR ANTICIPADO ');
+INSERT INTO gifi (accno,description) VALUES ('270505', 'INTERESES ');
+INSERT INTO gifi (accno,description) VALUES ('270510', 'COMISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('270515', 'ARRENDAMIENTOS ');
+INSERT INTO gifi (accno,description) VALUES ('270520', 'HONORARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('270525', 'SERVICIOS TECNICOS ');
+INSERT INTO gifi (accno,description) VALUES ('270530', 'DE SUSCRIPTORES ');
+INSERT INTO gifi (accno,description) VALUES ('270535', 'TRANSPORTES, FLETES Y ACARREOS ');
+INSERT INTO gifi (accno,description) VALUES ('270540', 'MERCANCIA EN TRANSITO YA VENDIDA ');
+INSERT INTO gifi (accno,description) VALUES ('270545', 'MATRICULAS Y PENSIONES ');
+INSERT INTO gifi (accno,description) VALUES ('270550', 'CUOTAS DE ADMINISTRACION ');
+INSERT INTO gifi (accno,description) VALUES ('270595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('2710', 'ABONOS DIFERIDOS ');
+INSERT INTO gifi (accno,description) VALUES ('271005', 'REAJUSTE DEL SISTEMA ');
+INSERT INTO gifi (accno,description) VALUES ('2715', 'UTILIDAD DIFERIDA EN VENTAS A PLAZOS ');
+INSERT INTO gifi (accno,description) VALUES ('2720', 'CREDITO POR CORRECCION MONETARIA DIFERIDA ');
+INSERT INTO gifi (accno,description) VALUES ('2725', 'IMPUESTOS DIFERIDOS ');
+INSERT INTO gifi (accno,description) VALUES ('272505', 'POR DEPRECIACION FLEXIBLE ');
+INSERT INTO gifi (accno,description) VALUES ('272595', 'DIVERSOS ');
+INSERT INTO gifi (accno,description) VALUES ('272599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('28', 'OTROS PASIVOS ');
+INSERT INTO gifi (accno,description) VALUES ('2805', 'ANTICIPOS Y AVANCES RECIBIDOS ');
+INSERT INTO gifi (accno,description) VALUES ('280505', 'DE CLIENTES ');
+INSERT INTO gifi (accno,description) VALUES ('280510', 'SOBRE CONTRATOS ');
+INSERT INTO gifi (accno,description) VALUES ('280515', 'PARA OBRAS EN PROCESO ');
+INSERT INTO gifi (accno,description) VALUES ('280595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('2810', 'DEPOSITOS RECIBIDOS ');
+INSERT INTO gifi (accno,description) VALUES ('281005', 'PARA FUTURA SUSCRIPCION DE ACCIONES ');
+INSERT INTO gifi (accno,description) VALUES ('281010', 'PARA FUTURO PAGO DE CUOTAS O DERECHOS SOCIALES ');
+INSERT INTO gifi (accno,description) VALUES ('281015', 'PARA GARANTIA EN LA PRESTACION DE SERVICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('281020', 'PARA GARANTIA DE CONTRATOS ');
+INSERT INTO gifi (accno,description) VALUES ('281025', 'DE LICITACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('281030', 'DE MANEJO DE BIENES ');
+INSERT INTO gifi (accno,description) VALUES ('281035', 'FONDO DE RESERVA ');
+INSERT INTO gifi (accno,description) VALUES ('281095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('2815', 'INGRESOS RECIBIDOS PARA TERCEROS ');
+INSERT INTO gifi (accno,description) VALUES ('281505', 'VALORES RECIBIDOS PARA TERCEROS ');
+INSERT INTO gifi (accno,description) VALUES ('281510', 'VENTA POR CUENTA DE TERCEROS ');
+INSERT INTO gifi (accno,description) VALUES ('2820', 'CUENTAS DE OPERACION CONJUNTA ');
+INSERT INTO gifi (accno,description) VALUES ('2825', 'RETENCIONES A TERCEROS SOBRE CONTRATOS ');
+INSERT INTO gifi (accno,description) VALUES ('282505', 'CUMPLIMIENTO OBLIGACIONES LABORALES ');
+INSERT INTO gifi (accno,description) VALUES ('282510', 'PARA ESTABILIDAD DE OBRA ');
+INSERT INTO gifi (accno,description) VALUES ('282515', 'GARANTIA CUMPLIMIENTO DE CONTRATOS ');
+INSERT INTO gifi (accno,description) VALUES ('2830', 'EMBARGOS JUDICIALES ');
+INSERT INTO gifi (accno,description) VALUES ('283005', 'INDEMNIZACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('283010', 'DEPOSITOS JUDICIALES ');
+INSERT INTO gifi (accno,description) VALUES ('2835', 'ACREEDORES DEL SISTEMA ');
+INSERT INTO gifi (accno,description) VALUES ('283505', 'CUOTAS NETAS ');
+INSERT INTO gifi (accno,description) VALUES ('283510', 'GRUPOS EN FORMACION ');
+INSERT INTO gifi (accno,description) VALUES ('2840', 'CUENTAS EN PARTICIPACION ');
+INSERT INTO gifi (accno,description) VALUES ('2895', 'DIVERSOS ');
+INSERT INTO gifi (accno,description) VALUES ('289505', 'PRESTAMOS DE PRODUCTOS ');
+INSERT INTO gifi (accno,description) VALUES ('289510', 'REEMBOLSO DE COSTOS EXPLORATORIOS ');
+INSERT INTO gifi (accno,description) VALUES ('289515', 'PROGRAMA DE EXTENSION AGROPECUARIA ');
+INSERT INTO gifi (accno,description) VALUES ('29', 'BONOS Y PAPELES COMERCIALES ');
+INSERT INTO gifi (accno,description) VALUES ('2905', 'BONOS EN CIRCULACION ');
+INSERT INTO gifi (accno,description) VALUES ('290505', 'GARANTIA GENERAL ');
+INSERT INTO gifi (accno,description) VALUES ('290510', 'GARANTIA ESPECIFICA ');
+INSERT INTO gifi (accno,description) VALUES ('2910', 'BONOS OBLIGATORIAMENTE CONVERTIBLES EN ACCIONES ');
+INSERT INTO gifi (accno,description) VALUES ('2915', 'PAPELES COMERCIALES ');
+INSERT INTO gifi (accno,description) VALUES ('3', 'PATRIMONIO ');
+INSERT INTO gifi (accno,description) VALUES ('31', 'CAPITAL SOCIAL ');
+INSERT INTO gifi (accno,description) VALUES ('3105', 'CAPITAL SUSCRITO Y PAGADO ');
+INSERT INTO gifi (accno,description) VALUES ('310505', 'CAPITAL AUTORIZADO ');
+INSERT INTO gifi (accno,description) VALUES ('310510', 'CAPITAL POR SUSCRIBIR (DB) ');
+INSERT INTO gifi (accno,description) VALUES ('310515', 'CAPITAL SUSCRITO POR COBRAR (DB) ');
+INSERT INTO gifi (accno,description) VALUES ('3110', 'ACCIONES, CUOTAS O PARTES DE INTERES SOCIAL PROPIAS READQUIRIDAS (DB) ');
+INSERT INTO gifi (accno,description) VALUES ('311005', 'ACCIONES PROPIAS READQUIRIDAS (DB) ');
+INSERT INTO gifi (accno,description) VALUES ('311010', 'CUOTAS O PARTES DE INTERES SOCIAL PROPIAS READQUIRIDAS (DB) ');
+INSERT INTO gifi (accno,description) VALUES ('3115', 'APORTES SOCIALES ');
+INSERT INTO gifi (accno,description) VALUES ('311505', 'CUOTAS O PARTES DE INTERES SOCIAL ');
+INSERT INTO gifi (accno,description) VALUES ('311510', 'APORTES DE SOCIOS - FONDO MUTUO DE INVERSION ');
+INSERT INTO gifi (accno,description) VALUES ('311515', 'CONTRIBUCION DE LA EMPRESA - FONDO MUTUO DE INVERSION ');
+INSERT INTO gifi (accno,description) VALUES ('311520', 'SUSCRIPCIONES DEL PUBLICO ');
+INSERT INTO gifi (accno,description) VALUES ('3120', 'CAPITAL ASIGNADO ');
+INSERT INTO gifi (accno,description) VALUES ('3125', 'INVERSION SUPLEMENTARIA AL CAPITAL ASIGNADO ');
+INSERT INTO gifi (accno,description) VALUES ('3130', 'CAPITAL DE PERSONAS NATURALES ');
+INSERT INTO gifi (accno,description) VALUES ('3135', 'APORTES DEL ESTADO ');
+INSERT INTO gifi (accno,description) VALUES ('3140', 'FONDO SOCIAL ');
+INSERT INTO gifi (accno,description) VALUES ('32', 'SUPERAVIT DE CAPITAL ');
+INSERT INTO gifi (accno,description) VALUES ('3205', 'PRIMA EN COLOCACION DE ACCIONES, CUOTAS O PARTES DE INTERES SOCIAL ');
+INSERT INTO gifi (accno,description) VALUES ('320505', 'PRIMA EN COLOCACION DE ACCIONES ');
+INSERT INTO gifi (accno,description) VALUES ('320510', 'PRIMA EN COLOCACION DE ACCIONES POR COBRAR (DB) ');
+INSERT INTO gifi (accno,description) VALUES ('320515', 'PRIMA EN COLOCACION DE CUOTAS O PARTES DE INTERES SOCIAL ');
+INSERT INTO gifi (accno,description) VALUES ('3210', 'DONACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('321005', 'EN DINERO ');
+INSERT INTO gifi (accno,description) VALUES ('321010', 'EN VALORES MOBILIARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('321015', 'EN BIENES MUEBLES ');
+INSERT INTO gifi (accno,description) VALUES ('321020', 'EN BIENES INMUEBLES ');
+INSERT INTO gifi (accno,description) VALUES ('321025', 'EN INTANGIBLES ');
+INSERT INTO gifi (accno,description) VALUES ('3215', 'CREDITO MERCANTIL ');
+INSERT INTO gifi (accno,description) VALUES ('33', 'RESERVAS ');
+INSERT INTO gifi (accno,description) VALUES ('3305', 'RESERVAS OBLIGATORIAS ');
+INSERT INTO gifi (accno,description) VALUES ('330505', 'RESERVA LEGAL ');
+INSERT INTO gifi (accno,description) VALUES ('330510', 'RESERVAS POR DISPOSICIONES FISCALES ');
+INSERT INTO gifi (accno,description) VALUES ('330515', 'RESERVA PARA READQUISICION DE ACCIONES ');
+INSERT INTO gifi (accno,description) VALUES ('330517', 'RESERVA PARA READQUISICION DE CUOTAS O PARTES DE INTERES SOCIAL ');
+INSERT INTO gifi (accno,description) VALUES ('330520', 'RESERVA PARA EXTENSION AGROPECUARIA ');
+INSERT INTO gifi (accno,description) VALUES ('330525', 'RESERVA LEY 7a. DE 1990 ');
+INSERT INTO gifi (accno,description) VALUES ('330530', 'RESERVA PARA REPOSICION DE SEMOVIENTES ');
+INSERT INTO gifi (accno,description) VALUES ('330535', 'RESERVA LEY 4a DE 1980 ');
+INSERT INTO gifi (accno,description) VALUES ('330595', 'OTRAS ');
+INSERT INTO gifi (accno,description) VALUES ('3310', 'RESERVAS ESTATUTARIAS ');
+INSERT INTO gifi (accno,description) VALUES ('331005', 'PARA FUTURAS CAPITALIZACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('331010', 'PARA REPOSICION DE ACTIVOS ');
+INSERT INTO gifi (accno,description) VALUES ('331015', 'PARA FUTUROS ENSANCHES ');
+INSERT INTO gifi (accno,description) VALUES ('331095', 'OTRAS ');
+INSERT INTO gifi (accno,description) VALUES ('3315', 'RESERVAS OCASIONALES ');
+INSERT INTO gifi (accno,description) VALUES ('331505', 'PARA BENEFICENCIA Y CIVISMO ');
+INSERT INTO gifi (accno,description) VALUES ('331510', 'PARA FUTURAS CAPITALIZACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('331515', 'PARA FUTUROS ENSANCHES ');
+INSERT INTO gifi (accno,description) VALUES ('331520', 'PARA ADQUISICION O REPOSICION DE PROPIEDADES PLANTA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('331525', 'PARA INVESTIGACIONES Y DESARROLLO ');
+INSERT INTO gifi (accno,description) VALUES ('331530', 'PARA FOMENTO ECONOMICO ');
+INSERT INTO gifi (accno,description) VALUES ('331535', 'PARA CAPITAL DE TRABAJO ');
+INSERT INTO gifi (accno,description) VALUES ('331540', 'PARA ESTABILIZACION DE RENDIMIENTOS ');
+INSERT INTO gifi (accno,description) VALUES ('331545', 'A DISPOSICION DEL MAXIMO ORGANO SOCIAL ');
+INSERT INTO gifi (accno,description) VALUES ('331595', 'OTRAS ');
+INSERT INTO gifi (accno,description) VALUES ('34', 'REVALORIZACION DEL PATRIMONIO ');
+INSERT INTO gifi (accno,description) VALUES ('3405', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('340505', 'DE CAPITAL SOCIAL ');
+INSERT INTO gifi (accno,description) VALUES ('340510', 'DE SUPERAVIT DE CAPITAL ');
+INSERT INTO gifi (accno,description) VALUES ('340515', 'DE RESERVAS ');
+INSERT INTO gifi (accno,description) VALUES ('340520', 'DE RESULTADOS DE EJERCICIOS ANTERIORES ');
+INSERT INTO gifi (accno,description) VALUES ('340525', 'DE ACTIVOS EN PERIODO IMPRODUCTIVO ');
+INSERT INTO gifi (accno,description) VALUES ('3410', 'SANEAMIENTO FISCAL ');
+INSERT INTO gifi (accno,description) VALUES ('3415', 'AJUSTES POR INFLACION DECRETO 3019 DE 1989 ');
+INSERT INTO gifi (accno,description) VALUES ('35', 'DIVIDENDOS O PARTICIPACIONES DECRETADOS EN ACCIONES, CUOTAS O PARTES DE INTERES SOCIAL ');
+INSERT INTO gifi (accno,description) VALUES ('3505', 'DIVIDENDOS DECRETADOS EN ACCIONES ');
+INSERT INTO gifi (accno,description) VALUES ('3510', 'PARTICIPACIONES DECRETADAS EN CUOTAS O PARTES DE INTERES SOCIAL ');
+INSERT INTO gifi (accno,description) VALUES ('36', 'RESULTADOS DEL EJERCICIO ');
+INSERT INTO gifi (accno,description) VALUES ('3605', 'UTILIDAD DEL EJERCICIO ');
+INSERT INTO gifi (accno,description) VALUES ('360505', 'UTILIDAD DEL EJERCICIO ');
+INSERT INTO gifi (accno,description) VALUES ('360510', 'UTILIDAD POR EXPOSICION A LA INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('3610', 'PERDIDA DEL EJERCICIO ');
+INSERT INTO gifi (accno,description) VALUES ('361005', 'PERDIDA DEL EJERCICIO ');
+INSERT INTO gifi (accno,description) VALUES ('361010', 'PERDIDA POR EXPOSICION A LA INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('37', 'RESULTADOS DE EJERCICIOS ANTERIORES ');
+INSERT INTO gifi (accno,description) VALUES ('3705', 'UTILIDADES O EXCEDENTES ACUMULADOS ');
+INSERT INTO gifi (accno,description) VALUES ('3710', 'PERDIDAS ACUMULADAS ');
+INSERT INTO gifi (accno,description) VALUES ('38', 'SUPERAVIT POR VALORIZACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('3805', 'DE INVERSIONES ');
+INSERT INTO gifi (accno,description) VALUES ('380505', 'ACCIONES ');
+INSERT INTO gifi (accno,description) VALUES ('380510', 'CUOTAS O PARTES DE INTERES SOCIAL ');
+INSERT INTO gifi (accno,description) VALUES ('380515', 'DERECHOS FIDUCIARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('3810', 'DE PROPIEDADES PLANTA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('381004', 'TERRENOS ');
+INSERT INTO gifi (accno,description) VALUES ('381006', 'MATERIALES PROYECTOS PETROLEROS ');
+INSERT INTO gifi (accno,description) VALUES ('381008', 'CONSTRUCCIONES Y EDIFICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('381012', 'MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('381016', 'EQUIPO DE OFICINA ');
+INSERT INTO gifi (accno,description) VALUES ('381020', 'EQUIPO DE COMPUTACION Y COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('381024', 'EQUIPO MEDICO CIENTIFICO ');
+INSERT INTO gifi (accno,description) VALUES ('381028', 'EQUIPO DE HOTELES Y RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('381032', 'FLOTA Y EQUIPO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('381036', 'FLOTA Y EQUIPO FLUVIAL Y/O MARITIMO ');
+INSERT INTO gifi (accno,description) VALUES ('381040', 'FLOTA Y EQUIPO AEREO ');
+INSERT INTO gifi (accno,description) VALUES ('381044', 'FLOTA Y EQUIPO FERREO ');
+INSERT INTO gifi (accno,description) VALUES ('381048', 'ACUEDUCTOS PLANTAS Y REDES ');
+INSERT INTO gifi (accno,description) VALUES ('381052', 'ARMAMENTO DE VIGILANCIA ');
+INSERT INTO gifi (accno,description) VALUES ('381056', 'ENVASES Y EMPAQUES ');
+INSERT INTO gifi (accno,description) VALUES ('381060', 'PLANTACIONES AGRICOLAS Y FORESTALES ');
+INSERT INTO gifi (accno,description) VALUES ('381064', 'VIAS DE COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('381068', 'MINAS Y CANTERAS ');
+INSERT INTO gifi (accno,description) VALUES ('381072', 'POZOS ARTESIANOS ');
+INSERT INTO gifi (accno,description) VALUES ('381076', 'YACIMIENTOS ');
+INSERT INTO gifi (accno,description) VALUES ('381080', 'SEMOVIENTES ');
+INSERT INTO gifi (accno,description) VALUES ('3895', 'DE OTROS ACTIVOS ');
+INSERT INTO gifi (accno,description) VALUES ('389505', 'BIENES DE ARTE Y CULTURA ');
+INSERT INTO gifi (accno,description) VALUES ('389510', 'BIENES ENTREGADOS EN COMODATO ');
+INSERT INTO gifi (accno,description) VALUES ('389515', 'BIENES RECIBIDOS EN PAGO ');
+INSERT INTO gifi (accno,description) VALUES ('389520', 'INVENTARIO DE SEMOVIENTES ');
+INSERT INTO gifi (accno,description) VALUES ('4', 'INGRESOS ');
+INSERT INTO gifi (accno,description) VALUES ('41', 'OPERACIONALES ');
+INSERT INTO gifi (accno,description) VALUES ('4105', 'AGRICULTURA, GANADERIA, CAZA Y SILVICULTURA ');
+INSERT INTO gifi (accno,description) VALUES ('410505', 'CULTIVO DE CEREALES ');
+INSERT INTO gifi (accno,description) VALUES ('410510', 'CULTIVOS DE HORTALIZAS, LEGUMBRES Y PLANTAS ORNAMENTALES ');
+INSERT INTO gifi (accno,description) VALUES ('410515', 'CULTIVOS DE FRUTAS, NUECES Y PLANTAS AROMATICAS ');
+INSERT INTO gifi (accno,description) VALUES ('410520', 'CULTIVO DE CAFE ');
+INSERT INTO gifi (accno,description) VALUES ('410525', 'CULTIVO DE FLORES ');
+INSERT INTO gifi (accno,description) VALUES ('410530', 'CULTIVO DE CAŃA DE AZUCAR ');
+INSERT INTO gifi (accno,description) VALUES ('410535', 'CULTIVO DE ALGODON Y PLANTAS PARA MATERIAL TEXTIL ');
+INSERT INTO gifi (accno,description) VALUES ('410540', 'CULTIVO DE BANANO ');
+INSERT INTO gifi (accno,description) VALUES ('410545', 'OTROS CULTIVOS AGRICOLAS ');
+INSERT INTO gifi (accno,description) VALUES ('410550', 'CRIA DE OVEJAS, CABRAS, ASNOS, MULAS Y BURDEGANOS ');
+INSERT INTO gifi (accno,description) VALUES ('410555', 'CRIA DE GANADO CABALLAR Y VACUNO. ');
+INSERT INTO gifi (accno,description) VALUES ('410560', 'PRODUCCION AVICOLA ');
+INSERT INTO gifi (accno,description) VALUES ('410565', 'CRIA DE OTROS ANIMALES ');
+INSERT INTO gifi (accno,description) VALUES ('410570', 'SERVICIOS AGRICOLAS Y GANADEROS ');
+INSERT INTO gifi (accno,description) VALUES ('410575', 'ACTIVIDAD DE CAZA ');
+INSERT INTO gifi (accno,description) VALUES ('410580', 'ACTIVIDAD DE SILVICULTURA ');
+INSERT INTO gifi (accno,description) VALUES ('410599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4110', 'PESCA ');
+INSERT INTO gifi (accno,description) VALUES ('411005', 'ACTIVIDAD DE PESCA ');
+INSERT INTO gifi (accno,description) VALUES ('411010', 'EXPLOTACION DE CRIADEROS DE PECES ');
+INSERT INTO gifi (accno,description) VALUES ('411095', 'ACTIVIDADES CONEXAS ');
+INSERT INTO gifi (accno,description) VALUES ('411099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4115', 'EXPLOTACION DE MINAS Y CANTERAS ');
+INSERT INTO gifi (accno,description) VALUES ('411505', 'CARBON ');
+INSERT INTO gifi (accno,description) VALUES ('411510', 'PETROLEO CRUDO ');
+INSERT INTO gifi (accno,description) VALUES ('411512', 'GAS NATURAL ');
+INSERT INTO gifi (accno,description) VALUES ('411514', 'SERVICIOS RELACIONADOS CON EXTRACCION DE PETROLEO Y GAS ');
+INSERT INTO gifi (accno,description) VALUES ('411515', 'MINERALES DE HIERRO ');
+INSERT INTO gifi (accno,description) VALUES ('411520', 'MINERALES METALIFEROS NO FERROSOS ');
+INSERT INTO gifi (accno,description) VALUES ('411525', 'PIEDRA, ARENA Y ARCILLA ');
+INSERT INTO gifi (accno,description) VALUES ('411527', 'PIEDRAS PRECIOSAS ');
+INSERT INTO gifi (accno,description) VALUES ('411528', 'ORO ');
+INSERT INTO gifi (accno,description) VALUES ('411530', 'OTRAS MINAS Y CANTERAS ');
+INSERT INTO gifi (accno,description) VALUES ('411532', 'PRESTACION DE SERVICIOS SECTOR MINERO ');
+INSERT INTO gifi (accno,description) VALUES ('411595', 'ACTIVIDADES CONEXAS ');
+INSERT INTO gifi (accno,description) VALUES ('411599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4120', 'INDUSTRIAS MANUFACTURERAS ');
+INSERT INTO gifi (accno,description) VALUES ('412001', 'PRODUCCION Y PROCESAMIENTO DE CARNES Y PRODUCTOS CARNICOS ');
+INSERT INTO gifi (accno,description) VALUES ('412002', 'PRODUCTOS DE PESCADO ');
+INSERT INTO gifi (accno,description) VALUES ('412003', 'PRODUCTOS DE FRUTAS, LEGUMBRES Y HORTALIZAS ');
+INSERT INTO gifi (accno,description) VALUES ('412004', 'ELABORACION DE ACEITES Y GRASAS ');
+INSERT INTO gifi (accno,description) VALUES ('412005', 'ELABORACION DE PRODUCTOS LACTEOS ');
+INSERT INTO gifi (accno,description) VALUES ('412006', 'ELABORACION DE PRODUCTOS DE MOLINERIA ');
+INSERT INTO gifi (accno,description) VALUES ('412007', 'ELABORACION DE ALMIDONES Y DERIVADOS ');
+INSERT INTO gifi (accno,description) VALUES ('412008', 'ELABORACION DE ALIMENTOS PARA ANIMALES ');
+INSERT INTO gifi (accno,description) VALUES ('412009', 'ELABORACION DE PRODUCTOS PARA PANADERIA ');
+INSERT INTO gifi (accno,description) VALUES ('412010', 'ELABORACION DE AZUCAR Y MELAZAS ');
+INSERT INTO gifi (accno,description) VALUES ('412011', 'ELABORACION DE CACAO, CHOCOLATE Y CONFITERIA ');
+INSERT INTO gifi (accno,description) VALUES ('412012', 'ELABORACION DE PASTAS Y PRODUCTOS FARINACEOS ');
+INSERT INTO gifi (accno,description) VALUES ('412013', 'ELABORACION DE PRODUCTOS DE CAFE ');
+INSERT INTO gifi (accno,description) VALUES ('412014', 'ELABORACION DE OTROS PRODUCTOS ALIMENTICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('412015', 'ELABORACION DE BEBIDAS ALCOHOLICAS Y ALCOHOL ETILICO ');
+INSERT INTO gifi (accno,description) VALUES ('412016', 'ELABORACION DE VINOS ');
+INSERT INTO gifi (accno,description) VALUES ('412017', 'ELABORACION DE BEBIDAS MALTEADAS Y DE MALTA ');
+INSERT INTO gifi (accno,description) VALUES ('412018', 'ELABORACION DE BEBIDAS NO ALCOHOLICAS ');
+INSERT INTO gifi (accno,description) VALUES ('412019', 'ELABORACION DE PRODUCTOS DE TABACO ');
+INSERT INTO gifi (accno,description) VALUES ('412020', 'PREPARACION E HILATURA DE FIBRAS TEXTILES Y TEJEDURIA ');
+INSERT INTO gifi (accno,description) VALUES ('412021', 'ACABADO DE PRODUCTOS TEXTILES ');
+INSERT INTO gifi (accno,description) VALUES ('412022', 'ELABORACION DE ARTICULOS DE MATERIALES TEXTILES ');
+INSERT INTO gifi (accno,description) VALUES ('412023', 'ELABORACION DE TAPICES Y ALFOMBRAS ');
+INSERT INTO gifi (accno,description) VALUES ('412024', 'ELABORACION DE CUERDAS, CORDELES, BRAMANTES Y REDES ');
+INSERT INTO gifi (accno,description) VALUES ('412025', 'ELABORACION DE OTROS PRODUCTOS TEXTILES ');
+INSERT INTO gifi (accno,description) VALUES ('412026', 'ELABORACION DE TEJIDOS ');
+INSERT INTO gifi (accno,description) VALUES ('412027', 'ELABORACION DE PRENDAS DE VESTIR ');
+INSERT INTO gifi (accno,description) VALUES ('412028', 'PREPARACION, ADOBO Y TEŃIDO DE PIELES ');
+INSERT INTO gifi (accno,description) VALUES ('412029', 'CURTIDO, ADOBO O PREPARACION DE CUERO ');
+INSERT INTO gifi (accno,description) VALUES ('412030', 'ELABORACION DE MALETAS, BOLSOS Y SIMILARES ');
+INSERT INTO gifi (accno,description) VALUES ('412031', 'ELABORACION DE CALZADO ');
+INSERT INTO gifi (accno,description) VALUES ('412032', 'PRODUCCION DE MADERA, ARTICULOS DE MADERA Y CORCHO ');
+INSERT INTO gifi (accno,description) VALUES ('412033', 'ELABORACION DE PASTA Y PRODUCTOS DE MADERA, PAPEL Y CARTON ');
+INSERT INTO gifi (accno,description) VALUES ('412034', 'EDICIONES Y PUBLICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('412035', 'IMPRESION ');
+INSERT INTO gifi (accno,description) VALUES ('412036', 'SERVICIOS RELACIONADOS CON LA EDICION Y LA IMPRESION ');
+INSERT INTO gifi (accno,description) VALUES ('412037', 'REPRODUCCION DE GRABACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('412038', 'ELABORACION DE PRODUCTOS DE HORNO DE COQUE ');
+INSERT INTO gifi (accno,description) VALUES ('412039', 'ELABORACION DE PRODUCTOS DE LA REFINACION DE PETROLEO ');
+INSERT INTO gifi (accno,description) VALUES ('412040', 'ELABORACION DE SUSTANCIAS QUIMICAS BASICAS ');
+INSERT INTO gifi (accno,description) VALUES ('412041', 'ELABORACION DE ABONOS Y COMPUESTOS DE NITROGENO ');
+INSERT INTO gifi (accno,description) VALUES ('412042', 'ELABORACION DE PLASTICO Y CAUCHO SINTETICO ');
+INSERT INTO gifi (accno,description) VALUES ('412043', 'ELABORACION DE PRODUCTOS QUIMICOS DE USO AGROPECUARIO ');
+INSERT INTO gifi (accno,description) VALUES ('412044', 'ELABORACION DE PINTURAS, TINTAS Y MASILLAS ');
+INSERT INTO gifi (accno,description) VALUES ('412045', 'ELABORACION DE PRODUCTOS FARMACEUTICOS Y BOTANICOS ');
+INSERT INTO gifi (accno,description) VALUES ('412046', 'ELABORACION DE JABONES, DETERGENTES Y PREPARADOS DE TOCADOR ');
+INSERT INTO gifi (accno,description) VALUES ('412047', 'ELABORACION DE OTROS PRODUCTOS QUIMICOS ');
+INSERT INTO gifi (accno,description) VALUES ('412048', 'ELABORACION DE FIBRAS ');
+INSERT INTO gifi (accno,description) VALUES ('412049', 'ELABORACION DE OTROS PRODUCTOS DE CAUCHO ');
+INSERT INTO gifi (accno,description) VALUES ('412050', 'ELABORACION DE PRODUCTOS DE PLASTICO ');
+INSERT INTO gifi (accno,description) VALUES ('412051', 'ELABORACION DE VIDRIO Y PRODUCTOS DE VIDRIO ');
+INSERT INTO gifi (accno,description) VALUES ('412052', 'ELABORACION DE PRODUCTOS DE CERAMICA, LOZA, PIEDRA, ARCILLA Y PORCELANA ');
+INSERT INTO gifi (accno,description) VALUES ('412053', 'ELABORACION DE CEMENTO, CAL Y YESO ');
+INSERT INTO gifi (accno,description) VALUES ('412054', 'ELABORACION DE ARTICULOS DE HORMIGON, CEMENTO Y YESO ');
+INSERT INTO gifi (accno,description) VALUES ('412055', 'CORTE, TALLADO Y ACABADO DE LA PIEDRA ');
+INSERT INTO gifi (accno,description) VALUES ('412056', 'ELABORACION DE OTROS PRODUCTOS MINERALES NO METALICOS ');
+INSERT INTO gifi (accno,description) VALUES ('412057', 'INDUSTRIAS BASICAS Y FUNDICION DE HIERRO Y ACERO ');
+INSERT INTO gifi (accno,description) VALUES ('412058', 'PRODUCTOS PRIMARIOS DE METALES PRECIOSOS Y DE METALES NO FERROSOS ');
+INSERT INTO gifi (accno,description) VALUES ('412059', 'FUNDICION DE METALES NO FERROSOS ');
+INSERT INTO gifi (accno,description) VALUES ('412060', 'FABRICACION DE PRODUCTOS METALICOS PARA USO ESTRUCTURAL ');
+INSERT INTO gifi (accno,description) VALUES ('412061', 'FORJA, PRENSADO, ESTAMPADO, LAMINADO DE METAL Y PULVIMETALURGIA ');
+INSERT INTO gifi (accno,description) VALUES ('412062', 'REVESTIMIENTO DE METALES Y OBRAS DE INGENIERIA MECANICA ');
+INSERT INTO gifi (accno,description) VALUES ('412063', 'FABRICACION DE ARTICULOS DE FERRETERIA ');
+INSERT INTO gifi (accno,description) VALUES ('412064', 'ELABORACION DE OTROS PRODUCTOS DE METAL ');
+INSERT INTO gifi (accno,description) VALUES ('412065', 'FABRICACION DE MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('412066', 'FABRICACION DE EQUIPOS DE ELEVACION Y MANIPULACION ');
+INSERT INTO gifi (accno,description) VALUES ('412067', 'ELABORACION DE APARATOS DE USO DOMESTICO ');
+INSERT INTO gifi (accno,description) VALUES ('412068', 'ELABORACION DE EQUIPO DE OFICINA ');
+INSERT INTO gifi (accno,description) VALUES ('412069', 'ELABORACION DE PILAS Y BATERIAS PRIMARIAS ');
+INSERT INTO gifi (accno,description) VALUES ('412070', 'ELABORACION DE EQUIPO DE ILUMINACION ');
+INSERT INTO gifi (accno,description) VALUES ('412071', 'ELABORACION DE OTROS TIPOS DE EQUIPO ELECTRICO ');
+INSERT INTO gifi (accno,description) VALUES ('412072', 'FABRICACION DE EQUIPOS DE RADIO, TELEVISION Y COMUNICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('412073', 'FABRICACION DE APARATOS E INSTRUMENTOS MEDICOS ');
+INSERT INTO gifi (accno,description) VALUES ('412074', 'FABRICACION DE INSTRUMENTOS DE MEDICION Y CONTROL ');
+INSERT INTO gifi (accno,description) VALUES ('412075', 'FABRICACION DE INSTRUMENTOS DE OPTICA Y EQUIPO FOTOGRAFICO ');
+INSERT INTO gifi (accno,description) VALUES ('412076', 'FABRICACION DE RELOJES ');
+INSERT INTO gifi (accno,description) VALUES ('412077', 'FABRICACION DE VEHICULOS AUTOMOTORES ');
+INSERT INTO gifi (accno,description) VALUES ('412078', 'FABRICACION DE CARROCERIAS PARA AUTOMOTORES ');
+INSERT INTO gifi (accno,description) VALUES ('412079', 'FABRICACION DE PARTES PIEZAS Y ACCESORIOS PARA AUTOMOTORES ');
+INSERT INTO gifi (accno,description) VALUES ('412080', 'FABRICACION Y REPARACION DE BUQUES Y OTRAS EMBARCACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('412081', 'FABRICACION DE LOCOMOTORAS Y MATERIAL RODANTE PARA FERROCARRILES ');
+INSERT INTO gifi (accno,description) VALUES ('412082', 'FABRICACION DE AERONAVES ');
+INSERT INTO gifi (accno,description) VALUES ('412083', 'FABRICACION DE MOTOCICLETAS ');
+INSERT INTO gifi (accno,description) VALUES ('412084', 'FABRICACION DE BICICLETAS Y SILLAS DE RUEDAS ');
+INSERT INTO gifi (accno,description) VALUES ('412085', 'FABRICACION DE OTROS TIPOS DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('412086', 'FABRICACION DE MUEBLES ');
+INSERT INTO gifi (accno,description) VALUES ('412087', 'FABRICACION DE JOYAS Y ARTICULOS CONEXOS ');
+INSERT INTO gifi (accno,description) VALUES ('412088', 'FABRICACION DE INSTRUMENTOS DE MUSICA ');
+INSERT INTO gifi (accno,description) VALUES ('412089', 'FABRICACION DE ARTICULOS Y EQUIPO PARA DEPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('412090', 'FABRICACION DE JUEGOS Y JUGUETES ');
+INSERT INTO gifi (accno,description) VALUES ('412091', 'RECICLAMIENTO DE DESPERDICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('412095', 'PRODUCTOS DE OTRAS INDUSTRIAS MANUFACTURERAS ');
+INSERT INTO gifi (accno,description) VALUES ('412099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4125', 'SUMINISTRO DE ELECTRICIDAD, GAS Y AGUA ');
+INSERT INTO gifi (accno,description) VALUES ('412505', 'GENERACION, CAPTACION Y DISTRIBUCION DE ENERGIA ELECTRICA ');
+INSERT INTO gifi (accno,description) VALUES ('412510', 'FABRICACION DE GAS Y DISTRIBUCION DE COMBUSTIBLES GASEOSOS ');
+INSERT INTO gifi (accno,description) VALUES ('412515', 'CAPTACION, DEPURACION Y DISTRIBUCION DE AGUA ');
+INSERT INTO gifi (accno,description) VALUES ('412595', 'ACTIVIDADES CONEXAS ');
+INSERT INTO gifi (accno,description) VALUES ('412599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4130', 'CONSTRUCCION ');
+INSERT INTO gifi (accno,description) VALUES ('413005', 'PREPARACION DE TERRENOS ');
+INSERT INTO gifi (accno,description) VALUES ('413010', 'CONSTRUCCION DE EDIFICIOS Y OBRAS DE INGENIERIA CIVIL ');
+INSERT INTO gifi (accno,description) VALUES ('413015', 'ACONDICIONAMIENTO DE EDIFICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('413020', 'TERMINACION DE EDIFICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('413025', 'ALQUILER DE EQUIPO CON OPERARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('413095', 'ACTIVIDADES CONEXAS ');
+INSERT INTO gifi (accno,description) VALUES ('413099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4135', 'COMERCIO AL POR MAYOR Y AL POR MENOR ');
+INSERT INTO gifi (accno,description) VALUES ('413502', 'VENTA DE VEHICULOS AUTOMOTORES ');
+INSERT INTO gifi (accno,description) VALUES ('413504', 'MANTENIMIENTO, REPARACION Y LAVADO DE VEHICULOS AUTOMOTORES ');
+INSERT INTO gifi (accno,description) VALUES ('413506', 'VENTA DE PARTES, PIEZAS Y ACCESORIOS DE VEHICULOS AUTOMOTORES ');
+INSERT INTO gifi (accno,description) VALUES ('413508', 'VENTA DE COMBUSTIBLES SOLIDOS, LIQUIDOS, GASEOSOS ');
+INSERT INTO gifi (accno,description) VALUES ('413510', 'VENTA DE LUBRICANTES, ADITIVOS, LLANTAS Y LUJOS PARA AUTOMOTORES ');
+INSERT INTO gifi (accno,description) VALUES ('413512', 'VENTA A CAMBIO DE RETRIBUCION O POR CONTRATA ');
+INSERT INTO gifi (accno,description) VALUES ('413514', 'VENTA DE INSUMOS, MATERIAS PRIMAS AGROPECUARIAS Y FLORES ');
+INSERT INTO gifi (accno,description) VALUES ('413516', 'VENTA DE OTROS INSUMOS Y MATERIAS PRIMAS NO AGROPECUARIAS ');
+INSERT INTO gifi (accno,description) VALUES ('413518', 'VENTA DE ANIMALES VIVOS Y CUEROS ');
+INSERT INTO gifi (accno,description) VALUES ('413520', 'VENTA DE PRODUCTOS EN ALMACENES NO ESPECIALIZADOS ');
+INSERT INTO gifi (accno,description) VALUES ('413522', 'VENTA DE PRODUCTOS AGROPECUARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('413524', 'VENTA DE PRODUCTOS TEXTILES, DE VESTIR, DE CUERO Y CALZADO ');
+INSERT INTO gifi (accno,description) VALUES ('413526', 'VENTA DE PAPEL Y CARTON ');
+INSERT INTO gifi (accno,description) VALUES ('413528', 'VENTA DE LIBROS, REVISTAS, ELEMENTOS DE PAPELERIA, UTILES Y TEXTOS ESCOLARES ');
+INSERT INTO gifi (accno,description) VALUES ('413530', 'VENTA DE JUEGOS, JUGUETES Y ARTICULOS DEPORTIVOS ');
+INSERT INTO gifi (accno,description) VALUES ('413532', 'VENTA DE INSTRUMENTOS QUIRURGICOS Y ORTOPEDICOS ');
+INSERT INTO gifi (accno,description) VALUES ('413534', 'VENTA DE ARTICULOS EN RELOJERIAS Y JOYERIAS ');
+INSERT INTO gifi (accno,description) VALUES ('413536', 'VENTA DE ELECTRODOMESTICOS Y MUEBLES ');
+INSERT INTO gifi (accno,description) VALUES ('413538', 'VENTA DE PRODUCTOS DE ASEO, FARMACEUTICOS, MEDICINALES, Y ARTICULOS DE TOCADOR ');
+INSERT INTO gifi (accno,description) VALUES ('413540', 'VENTA DE CUBIERTOS, VAJILLAS, CRISTALERIA, PORCELANAS, CERAMICAS Y OTROS ARTICULOS DE USO DOMESTICO ');
+INSERT INTO gifi (accno,description) VALUES ('413542', 'VENTA DE MATERIALES DE CONSTRUCCION, FONTANERIA Y CALEFACCION ');
+INSERT INTO gifi (accno,description) VALUES ('413544', 'VENTA DE PINTURAS Y LACAS ');
+INSERT INTO gifi (accno,description) VALUES ('413546', 'VENTA DE PRODUCTOS DE VIDRIOS Y MARQUETERIA ');
+INSERT INTO gifi (accno,description) VALUES ('413548', 'VENTA DE HERRAMIENTAS Y ARTICULOS DE FERRETERIA ');
+INSERT INTO gifi (accno,description) VALUES ('413550', 'VENTA DE QUIMICOS ');
+INSERT INTO gifi (accno,description) VALUES ('413552', 'VENTA DE PRODUCTOS INTERMEDIOS, DESPERDICIOS Y DESECHOS ');
+INSERT INTO gifi (accno,description) VALUES ('413554', 'VENTA DE MAQUINARIA, EQUIPO DE OFICINA Y PROGRAMAS DE COMPUTADOR ');
+INSERT INTO gifi (accno,description) VALUES ('413556', 'VENTA DE ARTICULOS EN CACHARRERIAS Y MISCELANEAS ');
+INSERT INTO gifi (accno,description) VALUES ('413558', 'VENTA DE INSTRUMENTOS MUSICALES ');
+INSERT INTO gifi (accno,description) VALUES ('413560', 'VENTA DE ARTICULOS EN CASAS DE EMPEŃO Y PRENDERIAS ');
+INSERT INTO gifi (accno,description) VALUES ('413562', 'VENTA DE EQUIPO FOTOGRAFICO ');
+INSERT INTO gifi (accno,description) VALUES ('413564', 'VENTA DE EQUIPO OPTICO Y DE PRECISION ');
+INSERT INTO gifi (accno,description) VALUES ('413566', 'VENTA DE EMPAQUES ');
+INSERT INTO gifi (accno,description) VALUES ('413568', 'VENTA DE EQUIPO PROFESIONAL Y CIENTIFICO ');
+INSERT INTO gifi (accno,description) VALUES ('413570', 'VENTA DE LOTERIAS, RIFAS, CHANCE, APUESTAS Y SIMILARES ');
+INSERT INTO gifi (accno,description) VALUES ('413572', 'REPARACION DE EFECTOS PERSONALES Y ELECTRODOMESTICOS ');
+INSERT INTO gifi (accno,description) VALUES ('413595', 'VENTA DE OTROS PRODUCTOS ');
+INSERT INTO gifi (accno,description) VALUES ('413599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4140', 'HOTELES Y RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('414005', 'HOTELERIA ');
+INSERT INTO gifi (accno,description) VALUES ('414010', 'CAMPAMENTO Y OTROS TIPOS DE HOSPEDAJE ');
+INSERT INTO gifi (accno,description) VALUES ('414015', 'RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('414020', 'BARES Y CANTINAS ');
+INSERT INTO gifi (accno,description) VALUES ('414095', 'ACTIVIDADES CONEXAS ');
+INSERT INTO gifi (accno,description) VALUES ('414099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4145', 'TRANSPORTE, ALMACENAMIENTO Y COMUNICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('414505', 'SERVICIO DE TRANSPORTE POR CARRETERA ');
+INSERT INTO gifi (accno,description) VALUES ('414510', 'SERVICIO DE TRANSPORTE POR VIA FERREA ');
+INSERT INTO gifi (accno,description) VALUES ('414515', 'SERVICIO DE TRANSPORTE POR VIA ACUATICA ');
+INSERT INTO gifi (accno,description) VALUES ('414520', 'SERVICIO DE TRANSPORTE POR VIA AEREA ');
+INSERT INTO gifi (accno,description) VALUES ('414525', 'SERVICIO DE TRANSPORTE POR TUBERIAS ');
+INSERT INTO gifi (accno,description) VALUES ('414530', 'MANIPULACION DE CARGA ');
+INSERT INTO gifi (accno,description) VALUES ('414535', 'ALMACENAMIENTO Y DEPOSITO ');
+INSERT INTO gifi (accno,description) VALUES ('414540', 'SERVICIOS COMPLEMENTARIOS PARA EL TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('414545', 'AGENCIAS DE VIAJE ');
+INSERT INTO gifi (accno,description) VALUES ('414550', 'OTRAS AGENCIAS DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('414555', 'SERVICIO POSTAL Y DE CORREO ');
+INSERT INTO gifi (accno,description) VALUES ('414560', 'SERVICIO TELEFONICO ');
+INSERT INTO gifi (accno,description) VALUES ('414565', 'SERVICIO DE TELEGRAFO ');
+INSERT INTO gifi (accno,description) VALUES ('414570', 'SERVICIO DE TRANSMISION DE DATOS ');
+INSERT INTO gifi (accno,description) VALUES ('414575', 'SERVICIO DE RADIO Y TELEVISION POR CABLE ');
+INSERT INTO gifi (accno,description) VALUES ('414580', 'TRANSMISION DE SONIDO E IMAGENES POR CONTRATO ');
+INSERT INTO gifi (accno,description) VALUES ('414595', 'ACTIVIDADES CONEXAS ');
+INSERT INTO gifi (accno,description) VALUES ('414599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4150', 'ACTIVIDAD FINANCIERA ');
+INSERT INTO gifi (accno,description) VALUES ('415005', 'VENTA DE INVERSIONES ');
+INSERT INTO gifi (accno,description) VALUES ('415010', 'DIVIDENDOS DE SOCIEDADES ANONIMAS Y/O ASIMILADAS ');
+INSERT INTO gifi (accno,description) VALUES ('415015', 'PARTICIPACIONES DE SOCIEDADES LIMITADAS Y/O ASIMILADAS ');
+INSERT INTO gifi (accno,description) VALUES ('415020', 'INTERESES ');
+INSERT INTO gifi (accno,description) VALUES ('415025', 'REAJUSTE MONETARIO - UPAC ');
+INSERT INTO gifi (accno,description) VALUES ('415030', 'COMISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('415035', 'OPERACIONES DE DESCUENTO ');
+INSERT INTO gifi (accno,description) VALUES ('415040', 'CUOTAS DE INSCRIPCION - CONSORCIOS ');
+INSERT INTO gifi (accno,description) VALUES ('415045', 'CUOTAS DE ADMINISTRACION - CONSORCIOS ');
+INSERT INTO gifi (accno,description) VALUES ('415050', 'REAJUSTE DEL SISTEMA - CONSORCIOS ');
+INSERT INTO gifi (accno,description) VALUES ('415055', 'ELIMINACION DE SUSCRIPTORES - CONSORCIOS ');
+INSERT INTO gifi (accno,description) VALUES ('415060', 'CUOTAS DE INGRESO O RETIRO - SOCIEDAD ADMINISTRADORA ');
+INSERT INTO gifi (accno,description) VALUES ('415065', 'SERVICIOS A COMISIONISTAS ');
+INSERT INTO gifi (accno,description) VALUES ('415070', 'INSCRIPCIONES Y CUOTAS ');
+INSERT INTO gifi (accno,description) VALUES ('415075', 'RECUPERACION DE GARANTIAS ');
+INSERT INTO gifi (accno,description) VALUES ('415095', 'ACTIVIDADES CONEXAS ');
+INSERT INTO gifi (accno,description) VALUES ('415099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4155', 'ACTIVIDADES INMOBILIARIAS, EMPRESARIALES Y DE ALQUILER ');
+INSERT INTO gifi (accno,description) VALUES ('415505', 'ARRENDAMIENTOS DE BIENES INMUEBLES ');
+INSERT INTO gifi (accno,description) VALUES ('415510', 'INMOBILIARIAS POR RETRIBUCION O CONTRATA ');
+INSERT INTO gifi (accno,description) VALUES ('415515', 'ALQUILER EQUIPO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('415520', 'ALQUILER MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('415525', 'ALQUILER DE EFECTOS PERSONALES Y ENSERES DOMESTICOS ');
+INSERT INTO gifi (accno,description) VALUES ('415530', 'CONSULTORIA EN EQUIPO Y PROGRAMAS DE INFORMATICA ');
+INSERT INTO gifi (accno,description) VALUES ('415535', 'PROCESAMIENTO DE DATOS ');
+INSERT INTO gifi (accno,description) VALUES ('415540', 'MANTENIMIENTO Y REPARACION DE MAQUINARIA DE OFICINA ');
+INSERT INTO gifi (accno,description) VALUES ('415545', 'INVESTIGACIONES CIENTIFICAS Y DE DESARROLLO ');
+INSERT INTO gifi (accno,description) VALUES ('415550', 'ACTIVIDADES EMPRESARIALES DE CONSULTORIA ');
+INSERT INTO gifi (accno,description) VALUES ('415555', 'PUBLICIDAD ');
+INSERT INTO gifi (accno,description) VALUES ('415560', 'DOTACION DE PERSONAL ');
+INSERT INTO gifi (accno,description) VALUES ('415565', 'INVESTIGACION Y SEGURIDAD ');
+INSERT INTO gifi (accno,description) VALUES ('415570', 'LIMPIEZA DE INMUEBLES ');
+INSERT INTO gifi (accno,description) VALUES ('415575', 'FOTOGRAFIA ');
+INSERT INTO gifi (accno,description) VALUES ('415580', 'ENVASE Y EMPAQUE ');
+INSERT INTO gifi (accno,description) VALUES ('415585', 'FOTOCOPIADO ');
+INSERT INTO gifi (accno,description) VALUES ('415590', 'MANTENIMIENTO Y REPARACION DE MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('415595', 'ACTIVIDADES CONEXAS ');
+INSERT INTO gifi (accno,description) VALUES ('415599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4160', 'ENSEŃANZA ');
+INSERT INTO gifi (accno,description) VALUES ('416005', 'ACTIVIDADES RELACIONADAS CON LA EDUCACION ');
+INSERT INTO gifi (accno,description) VALUES ('416095', 'ACTIVIDADES CONEXAS ');
+INSERT INTO gifi (accno,description) VALUES ('416099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4165', 'SERVICIOS SOCIALES Y DE SALUD ');
+INSERT INTO gifi (accno,description) VALUES ('416505', 'SERVICIO HOSPITALARIO ');
+INSERT INTO gifi (accno,description) VALUES ('416510', 'SERVICIO MEDICO ');
+INSERT INTO gifi (accno,description) VALUES ('416515', 'SERVICIO ODONTOLOGICO ');
+INSERT INTO gifi (accno,description) VALUES ('416520', 'SERVICIO DE LABORATORIO ');
+INSERT INTO gifi (accno,description) VALUES ('416525', 'ACTIVIDADES VETERINARIAS ');
+INSERT INTO gifi (accno,description) VALUES ('416530', 'ACTIVIDADES DE SERVICIOS SOCIALES ');
+INSERT INTO gifi (accno,description) VALUES ('416595', 'ACTIVIDADES CONEXAS ');
+INSERT INTO gifi (accno,description) VALUES ('416599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4170', 'OTRAS ACTIVIDADES DE SERVICIOS COMUNITARIOS, SOCIALES Y PERSONALES ');
+INSERT INTO gifi (accno,description) VALUES ('417005', 'ELIMINACION DE DESPERDICIOS Y AGUAS RESIDUALES ');
+INSERT INTO gifi (accno,description) VALUES ('417010', 'ACTIVIDADES DE ASOCIACION ');
+INSERT INTO gifi (accno,description) VALUES ('417015', 'PRODUCCION Y DISTRIBUCION DE FILMES Y VIDEOCINTAS ');
+INSERT INTO gifi (accno,description) VALUES ('417020', 'EXHIBICION DE FILMES Y VIDEOCINTAS ');
+INSERT INTO gifi (accno,description) VALUES ('417025', 'ACTIVIDAD DE RADIO Y TELEVISION ');
+INSERT INTO gifi (accno,description) VALUES ('417030', 'ACTIVIDAD TEATRAL, MUSICAL Y ARTISTICA ');
+INSERT INTO gifi (accno,description) VALUES ('417035', 'GRABACION Y PRODUCCION DE DISCOS ');
+INSERT INTO gifi (accno,description) VALUES ('417040', 'ENTRETENIMIENTO Y ESPARCIMIENTO ');
+INSERT INTO gifi (accno,description) VALUES ('417045', 'AGENCIAS DE NOTICIAS ');
+INSERT INTO gifi (accno,description) VALUES ('417050', 'LAVANDERIAS Y SIMILARES ');
+INSERT INTO gifi (accno,description) VALUES ('417055', 'PELUQUERIAS Y SIMILARES ');
+INSERT INTO gifi (accno,description) VALUES ('417060', 'SERVICIOS FUNERARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('417065', 'ZONAS FRANCAS ');
+INSERT INTO gifi (accno,description) VALUES ('417095', 'ACTIVIDADES CONEXAS ');
+INSERT INTO gifi (accno,description) VALUES ('417099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4175', 'DEVOLUCIONES, REBAJAS Y DESCUENTOS EN VENTAS (DB) ');
+INSERT INTO gifi (accno,description) VALUES ('417599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('42', 'NO OPERACIONALES ');
+INSERT INTO gifi (accno,description) VALUES ('4205', 'OTRAS VENTAS ');
+INSERT INTO gifi (accno,description) VALUES ('420505', 'MATERIA PRIMA ');
+INSERT INTO gifi (accno,description) VALUES ('420510', 'MATERIAL DE DESECHO ');
+INSERT INTO gifi (accno,description) VALUES ('420515', 'MATERIALES VARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('420520', 'PRODUCTOS DE DIVERSIFICACION ');
+INSERT INTO gifi (accno,description) VALUES ('420525', 'EXCEDENTES DE EXPORTACION ');
+INSERT INTO gifi (accno,description) VALUES ('420530', 'ENVASES Y EMPAQUES ');
+INSERT INTO gifi (accno,description) VALUES ('420535', 'PRODUCTOS AGRICOLAS ');
+INSERT INTO gifi (accno,description) VALUES ('420540', 'DE PROPAGANDA ');
+INSERT INTO gifi (accno,description) VALUES ('420545', 'PRODUCTOS EN REMATE ');
+INSERT INTO gifi (accno,description) VALUES ('420550', 'COMBUSTIBLES Y LUBRICANTES ');
+INSERT INTO gifi (accno,description) VALUES ('420599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4210', 'FINANCIEROS ');
+INSERT INTO gifi (accno,description) VALUES ('421005', 'INTERESES ');
+INSERT INTO gifi (accno,description) VALUES ('421010', 'REAJUSTE MONETARIO - UPAC ');
+INSERT INTO gifi (accno,description) VALUES ('421015', 'DESCUENTOS AMORTIZADOS ');
+INSERT INTO gifi (accno,description) VALUES ('421020', 'DIFERENCIA EN CAMBIO ');
+INSERT INTO gifi (accno,description) VALUES ('421025', 'FINANCIACION VEHICULOS ');
+INSERT INTO gifi (accno,description) VALUES ('421030', 'FINANCIACION SISTEMAS DE VIAJES ');
+INSERT INTO gifi (accno,description) VALUES ('421035', 'ACEPTACIONES BANCARIAS ');
+INSERT INTO gifi (accno,description) VALUES ('421040', 'DESCUENTOS COMERCIALES CONDICIONADOS ');
+INSERT INTO gifi (accno,description) VALUES ('421045', 'DESCUENTOS BANCARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('421050', 'COMISIONES CHEQUES DE OTRAS PLAZAS ');
+INSERT INTO gifi (accno,description) VALUES ('421055', 'MULTAS Y RECARGOS ');
+INSERT INTO gifi (accno,description) VALUES ('421060', 'SANCIONES CHEQUES DEVUELTOS ');
+INSERT INTO gifi (accno,description) VALUES ('421095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('421099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4215', 'DIVIDENDOS Y PARTICIPACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('421505', 'DE SOCIEDADES ANONIMAS Y/O ASIMILADAS ');
+INSERT INTO gifi (accno,description) VALUES ('421510', 'DE SOCIEDADES LIMITADAS Y/O ASIMILADAS ');
+INSERT INTO gifi (accno,description) VALUES ('421599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4220', 'ARRENDAMIENTOS ');
+INSERT INTO gifi (accno,description) VALUES ('422005', 'TERRENOS ');
+INSERT INTO gifi (accno,description) VALUES ('422010', 'CONSTRUCCIONES Y EDIFICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('422015', 'MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('422020', 'EQUIPO DE OFICINA ');
+INSERT INTO gifi (accno,description) VALUES ('422025', 'EQUIPO DE COMPUTACION Y COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('422030', 'EQUIPO MEDICO - CIENTIFICO ');
+INSERT INTO gifi (accno,description) VALUES ('422035', 'EQUIPO DE HOTELES Y RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('422040', 'FLOTA Y EQUIPO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('422045', 'FLOTA Y EQUIPO FLUVIAL Y/O MARITIMO ');
+INSERT INTO gifi (accno,description) VALUES ('422050', 'FLOTA Y EQUIPO AEREO ');
+INSERT INTO gifi (accno,description) VALUES ('422055', 'FLOTA Y EQUIPO FERREO ');
+INSERT INTO gifi (accno,description) VALUES ('422060', 'ACUEDUCTOS PLANTAS Y REDES ');
+INSERT INTO gifi (accno,description) VALUES ('422062', 'ENVASES Y EMPAQUES ');
+INSERT INTO gifi (accno,description) VALUES ('422065', 'PLANTACIONES AGRICOLAS Y FORESTALES ');
+INSERT INTO gifi (accno,description) VALUES ('422070', 'AERODROMOS ');
+INSERT INTO gifi (accno,description) VALUES ('422075', 'SEMOVIENTES ');
+INSERT INTO gifi (accno,description) VALUES ('422099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4225', 'COMISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('422505', 'SOBRE INVERSIONES ');
+INSERT INTO gifi (accno,description) VALUES ('422510', 'DE CONCESIONARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('422515', 'DE ACTIVIDADES FINANCIERAS ');
+INSERT INTO gifi (accno,description) VALUES ('422520', 'POR VENTA DE SERVICIOS DE TALLER ');
+INSERT INTO gifi (accno,description) VALUES ('422525', 'POR VENTA DE SEGUROS ');
+INSERT INTO gifi (accno,description) VALUES ('422530', 'POR INGRESOS PARA TERCEROS ');
+INSERT INTO gifi (accno,description) VALUES ('422535', 'POR DISTRIBUCION DE PELICULAS ');
+INSERT INTO gifi (accno,description) VALUES ('422540', 'DERECHOS DE AUTOR ');
+INSERT INTO gifi (accno,description) VALUES ('422545', 'DERECHOS DE PROGRAMACION ');
+INSERT INTO gifi (accno,description) VALUES ('422599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4230', 'HONORARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('423005', 'ASESORIAS ');
+INSERT INTO gifi (accno,description) VALUES ('423010', 'ASISTENCIA TECNICA ');
+INSERT INTO gifi (accno,description) VALUES ('423015', 'ADMINISTRACION DE VINCULADAS ');
+INSERT INTO gifi (accno,description) VALUES ('423099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4235', 'SERVICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('423505', 'DE BASCULA ');
+INSERT INTO gifi (accno,description) VALUES ('423510', 'DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('423515', 'DE PRENSA ');
+INSERT INTO gifi (accno,description) VALUES ('423520', 'ADMINISTRATIVOS ');
+INSERT INTO gifi (accno,description) VALUES ('423525', 'TECNICOS ');
+INSERT INTO gifi (accno,description) VALUES ('423530', 'DE COMPUTACION ');
+INSERT INTO gifi (accno,description) VALUES ('423535', 'DE TELEFAX ');
+INSERT INTO gifi (accno,description) VALUES ('423540', 'TALLER DE VEHICULOS ');
+INSERT INTO gifi (accno,description) VALUES ('423545', 'DE RECEPCION DE AERONAVES ');
+INSERT INTO gifi (accno,description) VALUES ('423550', 'DE TRANSPORTE PROGRAMA GAS NATURAL ');
+INSERT INTO gifi (accno,description) VALUES ('423555', 'POR CONTRATOS ');
+INSERT INTO gifi (accno,description) VALUES ('423560', 'DE TRILLLA ');
+INSERT INTO gifi (accno,description) VALUES ('423565', 'DE MANTENIMIENTO ');
+INSERT INTO gifi (accno,description) VALUES ('423570', 'AL PERSONAL ');
+INSERT INTO gifi (accno,description) VALUES ('423575', 'DE CASINO ');
+INSERT INTO gifi (accno,description) VALUES ('423580', 'FLETES ');
+INSERT INTO gifi (accno,description) VALUES ('423585', 'ENTRE COMPAŃIAS ');
+INSERT INTO gifi (accno,description) VALUES ('423595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('423599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4240', 'UTILIDAD EN VENTA DE INVERSIONES ');
+INSERT INTO gifi (accno,description) VALUES ('424005', 'ACCIONES ');
+INSERT INTO gifi (accno,description) VALUES ('424010', 'CUOTAS O PARTES DE INTERES SOCIAL ');
+INSERT INTO gifi (accno,description) VALUES ('424015', 'BONOS ');
+INSERT INTO gifi (accno,description) VALUES ('424020', 'CEDULAS ');
+INSERT INTO gifi (accno,description) VALUES ('424025', 'CERTIFICADOS ');
+INSERT INTO gifi (accno,description) VALUES ('424030', 'PAPELES COMERCIALES ');
+INSERT INTO gifi (accno,description) VALUES ('424035', 'TITULOS ');
+INSERT INTO gifi (accno,description) VALUES ('424045', 'DERECHOS FIDUCIARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('424050', 'OBLIGATORIAS ');
+INSERT INTO gifi (accno,description) VALUES ('424095', 'OTRAS ');
+INSERT INTO gifi (accno,description) VALUES ('424099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4245', 'UTILIDAD EN VENTA DE PROPIEDADES PLANTA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('424504', 'TERRENOS ');
+INSERT INTO gifi (accno,description) VALUES ('424506', 'MATERIALES INDUSTRIA PETROLERA ');
+INSERT INTO gifi (accno,description) VALUES ('424508', 'CONSTRUCCIONES EN CURSO ');
+INSERT INTO gifi (accno,description) VALUES ('424512', 'MAQUINARIA EN MONTAJE ');
+INSERT INTO gifi (accno,description) VALUES ('424516', 'CONSTRUCCIONES Y EDIFICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('424520', 'MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('424524', 'EQUIPO DE OFICINA ');
+INSERT INTO gifi (accno,description) VALUES ('424528', 'EQUIPO DE COMPUTACION Y COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('424532', 'EQUIPO MEDICO - CIENTIFICO ');
+INSERT INTO gifi (accno,description) VALUES ('424536', 'EQUIPO DE HOTELES Y RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('424540', 'FLOTA Y EQUIPO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('424544', 'FLOTA Y EQUIPO FLUVIAL Y/O MARITIMO ');
+INSERT INTO gifi (accno,description) VALUES ('424548', 'FLOTA Y EQUIPO AEREO ');
+INSERT INTO gifi (accno,description) VALUES ('424552', 'FLOTA Y EQUIPO FERREO ');
+INSERT INTO gifi (accno,description) VALUES ('424556', 'ACUEDUCTOS PLANTAS Y REDES ');
+INSERT INTO gifi (accno,description) VALUES ('424560', 'ARMAMENTO DE VIGILANCIA ');
+INSERT INTO gifi (accno,description) VALUES ('424562', 'ENVASES Y EMPAQUES ');
+INSERT INTO gifi (accno,description) VALUES ('424564', 'PLANTACIONES AGRICOLAS Y FORESTALES ');
+INSERT INTO gifi (accno,description) VALUES ('424568', 'VIAS DE COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('424572', 'MINAS Y CANTERAS ');
+INSERT INTO gifi (accno,description) VALUES ('424580', 'POZOS ARTESIANOS ');
+INSERT INTO gifi (accno,description) VALUES ('424584', 'YACIMIENTOS ');
+INSERT INTO gifi (accno,description) VALUES ('424588', 'SEMOVIENTES ');
+INSERT INTO gifi (accno,description) VALUES ('424599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4248', 'UTILIDAD EN VENTA DE OTROS BIENES ');
+INSERT INTO gifi (accno,description) VALUES ('424805', 'INTANGIBLES ');
+INSERT INTO gifi (accno,description) VALUES ('424810', 'OTROS ACTIVOS ');
+INSERT INTO gifi (accno,description) VALUES ('424899', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4250', 'RECUPERACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('425005', 'DEUDAS MALAS ');
+INSERT INTO gifi (accno,description) VALUES ('425010', 'SEGUROS ');
+INSERT INTO gifi (accno,description) VALUES ('425015', 'RECLAMOS ');
+INSERT INTO gifi (accno,description) VALUES ('425020', 'REINTEGRO POR PERSONAL EN COMISION ');
+INSERT INTO gifi (accno,description) VALUES ('425025', 'REINTEGRO GARANTIAS ');
+INSERT INTO gifi (accno,description) VALUES ('425030', 'DESCUENTOS CONCEDIDOS ');
+INSERT INTO gifi (accno,description) VALUES ('425035', 'REINTEGRO PROVISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('425040', 'GASTOS BANCARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('425045', 'DE DEPRECIACION ');
+INSERT INTO gifi (accno,description) VALUES ('425050', 'REINTEGRO DE OTROS COSTOS Y GASTOS ');
+INSERT INTO gifi (accno,description) VALUES ('425099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4255', 'INDEMNIZACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('425505', 'POR SINIESTRO ');
+INSERT INTO gifi (accno,description) VALUES ('425510', 'POR SUMINISTROS ');
+INSERT INTO gifi (accno,description) VALUES ('425515', 'LUCRO CESANTE COMPAŃIAS DE SEGUROS ');
+INSERT INTO gifi (accno,description) VALUES ('425520', 'DAŃO EMERGENTE COMPAŃIAS DE SEGUROS ');
+INSERT INTO gifi (accno,description) VALUES ('425525', 'POR PERDIDA DE MERCANCIA ');
+INSERT INTO gifi (accno,description) VALUES ('425530', 'POR INCUMPLIMIENTO DE CONTRATOS ');
+INSERT INTO gifi (accno,description) VALUES ('425535', 'DE TERCEROS ');
+INSERT INTO gifi (accno,description) VALUES ('425540', 'POR INCAPACIDADES I.S.S. ');
+INSERT INTO gifi (accno,description) VALUES ('425595', 'OTRAS ');
+INSERT INTO gifi (accno,description) VALUES ('425599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4260', 'PARTICIPACIONES EN CONCESIONES ');
+INSERT INTO gifi (accno,description) VALUES ('426099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4265', 'INGRESOS DE EJERCICIOS ANTERIORES ');
+INSERT INTO gifi (accno,description) VALUES ('426599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4275', 'DEVOLUCIONES, REBAJAS Y DESCUENTOS EN OTRAS VENTAS (DB) ');
+INSERT INTO gifi (accno,description) VALUES ('427599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4295', 'DIVERSOS ');
+INSERT INTO gifi (accno,description) VALUES ('429503', 'CERT ');
+INSERT INTO gifi (accno,description) VALUES ('429505', 'APROVECHAMIENTOS ');
+INSERT INTO gifi (accno,description) VALUES ('429507', 'AUXILIOS ');
+INSERT INTO gifi (accno,description) VALUES ('429509', 'DONACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('429511', 'INGRESOS POR INVESTIGACION Y DESARROLLO ');
+INSERT INTO gifi (accno,description) VALUES ('429513', 'POR TRABAJOS EJECUTADOS ');
+INSERT INTO gifi (accno,description) VALUES ('429515', 'REGALIAS ');
+INSERT INTO gifi (accno,description) VALUES ('429517', 'DERIVADOS DE LAS EXPORTACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('429519', 'OTROS INGRESOS DE EXPLOTACION ');
+INSERT INTO gifi (accno,description) VALUES ('429521', 'DE LA ACTIVIDAD GANADERA ');
+INSERT INTO gifi (accno,description) VALUES ('429525', 'DERECHOS Y LICITACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('429530', 'INGRESOS POR ELEMENTOS PERDIDOS ');
+INSERT INTO gifi (accno,description) VALUES ('429533', 'MULTAS Y RECARGOS ');
+INSERT INTO gifi (accno,description) VALUES ('429535', 'PREAVISOS DESCONTADOS ');
+INSERT INTO gifi (accno,description) VALUES ('429537', 'RECLAMOS ');
+INSERT INTO gifi (accno,description) VALUES ('429540', 'RECOBRO DE DAŃOS ');
+INSERT INTO gifi (accno,description) VALUES ('429543', 'PREMIOS ');
+INSERT INTO gifi (accno,description) VALUES ('429545', 'BONIFICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('429547', 'PRODUCTOS DESCONTADOS ');
+INSERT INTO gifi (accno,description) VALUES ('429549', 'RECONOCIMIENTOS I.S.S. ');
+INSERT INTO gifi (accno,description) VALUES ('429551', 'EXCEDENTES ');
+INSERT INTO gifi (accno,description) VALUES ('429553', 'SOBRANTES DE CAJA MENOR ');
+INSERT INTO gifi (accno,description) VALUES ('429555', 'SOBRANTES EN LIQUIDACION FLETES ');
+INSERT INTO gifi (accno,description) VALUES ('429557', 'SUBSIDIOS ESTATALES ');
+INSERT INTO gifi (accno,description) VALUES ('429559', 'CAPACITACION DISTRIBUIDORES ');
+INSERT INTO gifi (accno,description) VALUES ('429561', 'DE ESCRITURACION ');
+INSERT INTO gifi (accno,description) VALUES ('429563', 'REGISTRO PROMESAS DE VENTA ');
+INSERT INTO gifi (accno,description) VALUES ('429567', 'UTILES, PAPELERIA Y FOTOCOPIAS ');
+INSERT INTO gifi (accno,description) VALUES ('429571', 'RESULTADOS MATRICULAS Y TRASPASOS ');
+INSERT INTO gifi (accno,description) VALUES ('429573', 'DECORACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('429575', 'MANEJO DE CARGA ');
+INSERT INTO gifi (accno,description) VALUES ('429579', 'HISTORIA CLINICA ');
+INSERT INTO gifi (accno,description) VALUES ('429581', 'AJUSTE AL PESO ');
+INSERT INTO gifi (accno,description) VALUES ('429583', 'LLAMADAS TELEFONICAS ');
+INSERT INTO gifi (accno,description) VALUES ('429599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('47', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4705', 'CORRECCION MONETARIA ');
+INSERT INTO gifi (accno,description) VALUES ('470505', 'INVERSIONES (CR) ');
+INSERT INTO gifi (accno,description) VALUES ('470510', 'INVENTARIOS (CR) ');
+INSERT INTO gifi (accno,description) VALUES ('470515', 'PROPIEDADES, PLANTA Y EQUIPO (CR) ');
+INSERT INTO gifi (accno,description) VALUES ('470520', 'INTANGIBLES (CR) ');
+INSERT INTO gifi (accno,description) VALUES ('470525', 'ACTIVOS DIFERIDOS ');
+INSERT INTO gifi (accno,description) VALUES ('470530', 'OTROS ACTIVOS (CR) ');
+INSERT INTO gifi (accno,description) VALUES ('470535', 'PASIVOS SUJETOS DE AJUSTE ');
+INSERT INTO gifi (accno,description) VALUES ('470540', 'PATRIMONIO ');
+INSERT INTO gifi (accno,description) VALUES ('470545', 'DEPRECIACION ACUMULADA (DB) ');
+INSERT INTO gifi (accno,description) VALUES ('470550', 'DEPRECIACION DIFERIDA (CR) ');
+INSERT INTO gifi (accno,description) VALUES ('470555', 'AGOTAMIENTO ACUMULADO (DB) ');
+INSERT INTO gifi (accno,description) VALUES ('470560', 'AMORTIZACION ACUMULADA (DB) ');
+INSERT INTO gifi (accno,description) VALUES ('470565', 'INGRESOS OPERACIONALES (DB) ');
+INSERT INTO gifi (accno,description) VALUES ('470570', 'INGRESOS NO OPERACIONALES (DB) ');
+INSERT INTO gifi (accno,description) VALUES ('470575', 'GASTOS OPERACIONALES DE ADMINISTRACION (CR) ');
+INSERT INTO gifi (accno,description) VALUES ('470580', 'GASTOS OPERACIONALES DE VENTAS (CR) ');
+INSERT INTO gifi (accno,description) VALUES ('470585', 'GASTOS NO OPERACIONALES (CR) ');
+INSERT INTO gifi (accno,description) VALUES ('470590', 'COMPRAS (CR) ');
+INSERT INTO gifi (accno,description) VALUES ('470592', 'COSTO DE VENTAS (CR) ');
+INSERT INTO gifi (accno,description) VALUES ('470594', 'COSTOS DE PRODUCCION O DE OPERACION (DB) ');
+INSERT INTO gifi (accno,description) VALUES ('51', 'OPERACIONALES DE ADMINISTRACION ');
+INSERT INTO gifi (accno,description) VALUES ('5105', 'GASTOS DE PERSONAL ');
+INSERT INTO gifi (accno,description) VALUES ('510503', 'SALARIO INTEGRAL ');
+INSERT INTO gifi (accno,description) VALUES ('510506', 'SUELDOS ');
+INSERT INTO gifi (accno,description) VALUES ('510512', 'JORNALES ');
+INSERT INTO gifi (accno,description) VALUES ('510515', 'HORAS EXTRAS Y RECARGOS ');
+INSERT INTO gifi (accno,description) VALUES ('510518', 'COMISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('510521', 'VIATICOS ');
+INSERT INTO gifi (accno,description) VALUES ('510524', 'INCAPACIDADES ');
+INSERT INTO gifi (accno,description) VALUES ('510527', 'AUXILIO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('510530', 'CESANTIAS ');
+INSERT INTO gifi (accno,description) VALUES ('510533', 'INTERESES SOBRE CESANTIAS ');
+INSERT INTO gifi (accno,description) VALUES ('510536', 'PRIMA DE SERVICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('510539', 'VACACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('510542', 'PRIMAS EXTRALEGALES ');
+INSERT INTO gifi (accno,description) VALUES ('510545', 'AUXILIOS ');
+INSERT INTO gifi (accno,description) VALUES ('510548', 'BONIFICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('510551', 'DOTACION Y SUMINISTRO A TRABAJADORES ');
+INSERT INTO gifi (accno,description) VALUES ('510554', 'SEGUROS ');
+INSERT INTO gifi (accno,description) VALUES ('510557', 'CUOTAS PARTES PENSIONES DE JUBILACION ');
+INSERT INTO gifi (accno,description) VALUES ('510558', 'AMORTIZACION CALCULO ACTUARIAL PENSIONES DE JUBILACION ');
+INSERT INTO gifi (accno,description) VALUES ('510559', 'PENSIONES DE JUBILACION ');
+INSERT INTO gifi (accno,description) VALUES ('510560', 'INDEMNIZACIONES LABORALES ');
+INSERT INTO gifi (accno,description) VALUES ('510563', 'CAPACITACION AL PERSONAL ');
+INSERT INTO gifi (accno,description) VALUES ('510566', 'GASTOS DEPORTIVOS Y DE RECREACION ');
+INSERT INTO gifi (accno,description) VALUES ('510569', 'APORTES AL I.S.S ');
+INSERT INTO gifi (accno,description) VALUES ('510572', 'APORTES CAJAS DE COMPENSACION FAMILIAR ');
+INSERT INTO gifi (accno,description) VALUES ('510575', 'APORTES I.C.B.F. ');
+INSERT INTO gifi (accno,description) VALUES ('510578', 'SENA ');
+INSERT INTO gifi (accno,description) VALUES ('510581', 'APORTES SINDICALES ');
+INSERT INTO gifi (accno,description) VALUES ('510584', 'GASTOS MEDICOS Y DROGAS ');
+INSERT INTO gifi (accno,description) VALUES ('510595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('510599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5110', 'HONORARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('511005', 'JUNTA DIRECTIVA ');
+INSERT INTO gifi (accno,description) VALUES ('511010', 'REVISORÃA FISCAL ');
+INSERT INTO gifi (accno,description) VALUES ('511015', 'AUDITORIA EXTERNA ');
+INSERT INTO gifi (accno,description) VALUES ('511020', 'AVALUOS ');
+INSERT INTO gifi (accno,description) VALUES ('511025', 'ASESORIA JURIDICA ');
+INSERT INTO gifi (accno,description) VALUES ('511030', 'ASESORIA FINANCIERA ');
+INSERT INTO gifi (accno,description) VALUES ('511035', 'ASESORIA TECNICA ');
+INSERT INTO gifi (accno,description) VALUES ('511095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('511099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5115', 'IMPUESTOS ');
+INSERT INTO gifi (accno,description) VALUES ('511505', 'INDUSTRIA Y COMERCIO ');
+INSERT INTO gifi (accno,description) VALUES ('511510', 'DE TIMBRES ');
+INSERT INTO gifi (accno,description) VALUES ('511515', 'A LA PROPIEDAD RAIZ ');
+INSERT INTO gifi (accno,description) VALUES ('511520', 'DERECHOS SOBRE INSTRUMENTOS PUBLICOS ');
+INSERT INTO gifi (accno,description) VALUES ('511525', 'DE VALORIZACION ');
+INSERT INTO gifi (accno,description) VALUES ('511530', 'DE TURISMO ');
+INSERT INTO gifi (accno,description) VALUES ('511535', 'TASA POR UTILIZACION DE PUERTOS ');
+INSERT INTO gifi (accno,description) VALUES ('511540', 'DE VEHICULOS ');
+INSERT INTO gifi (accno,description) VALUES ('511545', 'DE ESPECTACULOS PUBLICOS ');
+INSERT INTO gifi (accno,description) VALUES ('511550', 'CUOTAS DE FOMENTO ');
+INSERT INTO gifi (accno,description) VALUES ('511570', 'IVA DESCONTABLE ');
+INSERT INTO gifi (accno,description) VALUES ('511595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('511599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5120', 'ARRENDAMIENTOS ');
+INSERT INTO gifi (accno,description) VALUES ('512005', 'TERRENOS ');
+INSERT INTO gifi (accno,description) VALUES ('512010', 'CONSTRUCCIONES Y EDIFICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('512015', 'MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('512020', 'EQUIPO DE OFICINA ');
+INSERT INTO gifi (accno,description) VALUES ('512025', 'EQUIPO DE COMPUTACION Y COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('512030', 'EQUIPO MEDICO - CIENTIFICO ');
+INSERT INTO gifi (accno,description) VALUES ('512035', 'EQUIPO DE HOTELES Y RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('512040', 'FLOTA Y EQUIPO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('512045', 'FLOTA Y EQUIPO FLUVIAL Y/O MARITIMO ');
+INSERT INTO gifi (accno,description) VALUES ('512050', 'FLOTA Y EQUIPO AEREO ');
+INSERT INTO gifi (accno,description) VALUES ('512055', 'FLOTA Y EQUIPO FERREO ');
+INSERT INTO gifi (accno,description) VALUES ('512060', 'ACUEDUCTOS PLANTAS Y REDES ');
+INSERT INTO gifi (accno,description) VALUES ('512065', 'AERODROMOS ');
+INSERT INTO gifi (accno,description) VALUES ('512070', 'SEMOVIENTES ');
+INSERT INTO gifi (accno,description) VALUES ('512095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('512099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5125', 'CONTRIBUCIONES Y AFILIACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('512505', 'CONTRIBUCIONES ');
+INSERT INTO gifi (accno,description) VALUES ('512510', 'AFILIACIONES Y SOSTENIMIENTO ');
+INSERT INTO gifi (accno,description) VALUES ('512599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5130', 'SEGUROS ');
+INSERT INTO gifi (accno,description) VALUES ('513005', 'MANEJO ');
+INSERT INTO gifi (accno,description) VALUES ('513010', 'CUMPLIMIENTO ');
+INSERT INTO gifi (accno,description) VALUES ('513015', 'CORRIENTE DEBIL ');
+INSERT INTO gifi (accno,description) VALUES ('513020', 'VIDA COLECTIVA ');
+INSERT INTO gifi (accno,description) VALUES ('513025', 'INCENDIO ');
+INSERT INTO gifi (accno,description) VALUES ('513030', 'TERREMOTO ');
+INSERT INTO gifi (accno,description) VALUES ('513035', 'SUSTRACCION Y HURTO ');
+INSERT INTO gifi (accno,description) VALUES ('513040', 'FLOTA Y EQUIPO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('513045', 'FLOTA Y EQUIPO FLUVIAL Y/O MARITIMO ');
+INSERT INTO gifi (accno,description) VALUES ('513050', 'FLOTA Y EQUIPO AEREO ');
+INSERT INTO gifi (accno,description) VALUES ('513055', 'FLOTA Y EQUIPO FERREO ');
+INSERT INTO gifi (accno,description) VALUES ('513060', 'RESPONSABILIDAD CIVIL Y EXTRACONTRACTUAL ');
+INSERT INTO gifi (accno,description) VALUES ('513065', 'VUELO ');
+INSERT INTO gifi (accno,description) VALUES ('513070', 'ROTURA DE MAQUINARIA ');
+INSERT INTO gifi (accno,description) VALUES ('513075', 'OBLIGATORIO ACCIDENTE DE TRANSITO ');
+INSERT INTO gifi (accno,description) VALUES ('513080', 'LUCRO CESANTE ');
+INSERT INTO gifi (accno,description) VALUES ('513095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('513099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5135', 'SERVICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('513505', 'ASEO Y VIGILANCIA ');
+INSERT INTO gifi (accno,description) VALUES ('513510', 'TEMPORALES ');
+INSERT INTO gifi (accno,description) VALUES ('513515', 'ASISTENCIA TECNICA ');
+INSERT INTO gifi (accno,description) VALUES ('513520', 'PROCESAMIENTO ELECTRONICO DE DATOS ');
+INSERT INTO gifi (accno,description) VALUES ('513525', 'ACUEDUCTO Y ALCANTARILLADO ');
+INSERT INTO gifi (accno,description) VALUES ('513530', 'ENERGIA ELECTRICA ');
+INSERT INTO gifi (accno,description) VALUES ('513535', 'TELEFONO ');
+INSERT INTO gifi (accno,description) VALUES ('513540', 'CORREO, PORTES Y TELEGRAMAS ');
+INSERT INTO gifi (accno,description) VALUES ('513545', 'FAX Y TELEX ');
+INSERT INTO gifi (accno,description) VALUES ('513550', 'TRANSPORTE, FLETES Y ACARREOS ');
+INSERT INTO gifi (accno,description) VALUES ('513555', 'GAS ');
+INSERT INTO gifi (accno,description) VALUES ('513595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('513599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5140', 'GASTOS LEGALES ');
+INSERT INTO gifi (accno,description) VALUES ('514005', 'NOTARIALES ');
+INSERT INTO gifi (accno,description) VALUES ('514010', 'REGISTRO MERCANTIL ');
+INSERT INTO gifi (accno,description) VALUES ('514015', 'TRAMITES Y LICENCIAS ');
+INSERT INTO gifi (accno,description) VALUES ('514020', 'ADUANEROS ');
+INSERT INTO gifi (accno,description) VALUES ('514025', 'CONSULARES ');
+INSERT INTO gifi (accno,description) VALUES ('514095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('514099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5145', 'MANTENIMIENTO Y REPARACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('514505', 'TERRENOS ');
+INSERT INTO gifi (accno,description) VALUES ('514510', 'CONSTRUCCIONES Y EDIFICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('514515', 'MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('514520', 'EQUIPO DE OFICINA ');
+INSERT INTO gifi (accno,description) VALUES ('514525', 'EQUIPO DE COMPUTACION Y COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('514530', 'EQUIPO MEDICO-CIENTIFICO ');
+INSERT INTO gifi (accno,description) VALUES ('514535', 'EQUIPO DE HOTELES Y RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('514540', 'FLOTA Y EQUIPO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('514545', 'FLOTA Y EQUIPO FLUVIAL Y/O MARITIMO ');
+INSERT INTO gifi (accno,description) VALUES ('514550', 'FLOTA Y EQUIPO AEREO ');
+INSERT INTO gifi (accno,description) VALUES ('514555', 'FLOTA Y EQUIPO FERREO ');
+INSERT INTO gifi (accno,description) VALUES ('514560', 'ACUEDUCTOS PLANTAS Y REDES ');
+INSERT INTO gifi (accno,description) VALUES ('514565', 'ARMAMENTO DE VIGILANCIA ');
+INSERT INTO gifi (accno,description) VALUES ('514570', 'VIAS DE COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('514599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5150', 'ADECUACION E INSTALACION ');
+INSERT INTO gifi (accno,description) VALUES ('515005', 'INSTALACIONES ELECTRICAS ');
+INSERT INTO gifi (accno,description) VALUES ('515010', 'ARREGLOS ORNAMENTALES ');
+INSERT INTO gifi (accno,description) VALUES ('515015', 'REPARACIONES LOCATIVAS ');
+INSERT INTO gifi (accno,description) VALUES ('515095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('515099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5155', 'GASTOS DE VIAJE ');
+INSERT INTO gifi (accno,description) VALUES ('515505', 'ALOJAMIENTO Y MANUTENCION ');
+INSERT INTO gifi (accno,description) VALUES ('515510', 'PASAJES FLUVIALES Y/O MARITIMOS ');
+INSERT INTO gifi (accno,description) VALUES ('515515', 'PASAJES AEREOS ');
+INSERT INTO gifi (accno,description) VALUES ('515520', 'PASAJES TERRESTRES ');
+INSERT INTO gifi (accno,description) VALUES ('515525', 'PASAJES FERREOS ');
+INSERT INTO gifi (accno,description) VALUES ('515595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('515599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5160', 'DEPRECIACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('516005', 'CONSTRUCCIONES Y EDIFICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('516010', 'MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('516015', 'EQUIPO DE OFICINA ');
+INSERT INTO gifi (accno,description) VALUES ('516020', 'EQUIPO DE COMPUTACION Y COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('516025', 'EQUIPO MEDICO - CIENTIFICO ');
+INSERT INTO gifi (accno,description) VALUES ('516030', 'EQUIPO DE HOTELES Y RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('516035', 'FLOTA Y EQUIPO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('516040', 'FLOTA Y EQUIPO FLUVIAL Y/O MARITIMO ');
+INSERT INTO gifi (accno,description) VALUES ('516045', 'FLOTA Y EQUIPO AEREO ');
+INSERT INTO gifi (accno,description) VALUES ('516050', 'FLOTA Y EQUIPO FERREO ');
+INSERT INTO gifi (accno,description) VALUES ('516055', 'ACUEDUCTOS, PLANTAS Y REDES ');
+INSERT INTO gifi (accno,description) VALUES ('516060', 'ARMAMENTO DE VIGILANCIA ');
+INSERT INTO gifi (accno,description) VALUES ('516099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5165', 'AMORTIZACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('516505', 'VIAS DE COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('516510', 'INTANGIBLES ');
+INSERT INTO gifi (accno,description) VALUES ('516515', 'CARGOS DIFERIDOS ');
+INSERT INTO gifi (accno,description) VALUES ('516595', 'OTRAS ');
+INSERT INTO gifi (accno,description) VALUES ('516599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5195', 'DIVERSOS ');
+INSERT INTO gifi (accno,description) VALUES ('519505', 'COMISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('519510', 'LIBROS, SUSCRIPCIONES, PERIODICOS Y REVISTAS ');
+INSERT INTO gifi (accno,description) VALUES ('519515', 'MUSICA AMBIENTAL ');
+INSERT INTO gifi (accno,description) VALUES ('519520', 'GASTOS DE REPRESENTACION Y RELACIONES PUBLICAS ');
+INSERT INTO gifi (accno,description) VALUES ('519525', 'ELEMENTOS DE ASEO Y CAFETERIA ');
+INSERT INTO gifi (accno,description) VALUES ('519530', 'UTILES, PAPELERIA Y FOTOCOPIAS ');
+INSERT INTO gifi (accno,description) VALUES ('519535', 'COMBUSTIBLES Y LUBRICANTES ');
+INSERT INTO gifi (accno,description) VALUES ('519540', 'ENVASES Y EMPAQUES ');
+INSERT INTO gifi (accno,description) VALUES ('519545', 'TAXIS Y BUSES ');
+INSERT INTO gifi (accno,description) VALUES ('519550', 'ESTAMPILLAS ');
+INSERT INTO gifi (accno,description) VALUES ('519555', 'MICROFILMACION ');
+INSERT INTO gifi (accno,description) VALUES ('519560', 'CASINO Y RESTAURANTE ');
+INSERT INTO gifi (accno,description) VALUES ('519565', 'PARQUEADEROS ');
+INSERT INTO gifi (accno,description) VALUES ('519570', 'INDEMNIZACION POR DAŃOS A TERCEROS ');
+INSERT INTO gifi (accno,description) VALUES ('519575', 'POLVORA Y SIMILARES ');
+INSERT INTO gifi (accno,description) VALUES ('519595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('519599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5199', 'PROVISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('519905', 'INVERSIONES ');
+INSERT INTO gifi (accno,description) VALUES ('519910', 'DEUDORES ');
+INSERT INTO gifi (accno,description) VALUES ('519915', 'PROPIEDADES, PLANTA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('519995', 'OTROS ACTIVOS ');
+INSERT INTO gifi (accno,description) VALUES ('519999', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('52', 'OPERACIONALES DE VENTAS ');
+INSERT INTO gifi (accno,description) VALUES ('5205', 'GASTOS DE PERSONAL ');
+INSERT INTO gifi (accno,description) VALUES ('520503', 'SALARIO INTEGRAL ');
+INSERT INTO gifi (accno,description) VALUES ('520506', 'SUELDOS ');
+INSERT INTO gifi (accno,description) VALUES ('520512', 'JORNALES ');
+INSERT INTO gifi (accno,description) VALUES ('520515', 'HORAS EXTRAS Y RECARGOS ');
+INSERT INTO gifi (accno,description) VALUES ('520518', 'COMISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('520521', 'VIATICOS ');
+INSERT INTO gifi (accno,description) VALUES ('520524', 'INCAPACIDADES ');
+INSERT INTO gifi (accno,description) VALUES ('520527', 'AUXILIO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('520530', 'CESANTIAS ');
+INSERT INTO gifi (accno,description) VALUES ('520533', 'INTERESES SOBRE CESANTIAS ');
+INSERT INTO gifi (accno,description) VALUES ('520536', 'PRIMA DE SERVICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('520539', 'VACACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('520542', 'PRIMAS EXTRALEGALES ');
+INSERT INTO gifi (accno,description) VALUES ('520545', 'AUXILIOS ');
+INSERT INTO gifi (accno,description) VALUES ('520548', 'BONIFICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('520551', 'DOTACION Y SUMINISTRO A TRABAJADORES ');
+INSERT INTO gifi (accno,description) VALUES ('520554', 'SEGUROS ');
+INSERT INTO gifi (accno,description) VALUES ('520557', 'CUOTAS PARTES PENSIONES DE JUBILACION ');
+INSERT INTO gifi (accno,description) VALUES ('520558', 'AMORTIZACION CALCULO ACTUARIAL PENSIONES DE JUBILACION ');
+INSERT INTO gifi (accno,description) VALUES ('520559', 'PENSIONES DE JUBILACION ');
+INSERT INTO gifi (accno,description) VALUES ('520560', 'INDEMNIZACIONES LABORALES ');
+INSERT INTO gifi (accno,description) VALUES ('520563', 'CAPACITACION AL PERSONAL ');
+INSERT INTO gifi (accno,description) VALUES ('520566', 'GASTOS DEPORTIVOS Y DE RECREACION ');
+INSERT INTO gifi (accno,description) VALUES ('520569', 'APORTES AL I.S.S ');
+INSERT INTO gifi (accno,description) VALUES ('520572', 'APORTES CAJAS DE COMPENSACION FAMILIAR ');
+INSERT INTO gifi (accno,description) VALUES ('520575', 'APORTES I.C.B.F. ');
+INSERT INTO gifi (accno,description) VALUES ('520578', 'SENA ');
+INSERT INTO gifi (accno,description) VALUES ('520581', 'APORTES SINDICALES ');
+INSERT INTO gifi (accno,description) VALUES ('520584', 'GASTOS MEDICOS Y DROGAS ');
+INSERT INTO gifi (accno,description) VALUES ('520595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('520599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5210', 'HONORARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('521005', 'JUNTA DIRECTIVA ');
+INSERT INTO gifi (accno,description) VALUES ('521010', 'REVISORIA FISCAL ');
+INSERT INTO gifi (accno,description) VALUES ('521015', 'AUDITORIA EXTERNA ');
+INSERT INTO gifi (accno,description) VALUES ('521020', 'AVALUOS ');
+INSERT INTO gifi (accno,description) VALUES ('521025', 'ASESORIA JURIDICA ');
+INSERT INTO gifi (accno,description) VALUES ('521030', 'ASESORIA FINANCIERA ');
+INSERT INTO gifi (accno,description) VALUES ('521035', 'ASESORIA TECNICA ');
+INSERT INTO gifi (accno,description) VALUES ('521095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('521099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5215', 'IMPUESTOS ');
+INSERT INTO gifi (accno,description) VALUES ('521505', 'INDUSTRIA Y COMERCIO ');
+INSERT INTO gifi (accno,description) VALUES ('521510', 'DE TIMBRES ');
+INSERT INTO gifi (accno,description) VALUES ('521515', 'A LA PROPIEDAD RAIZ ');
+INSERT INTO gifi (accno,description) VALUES ('521520', 'DERECHOS SOBRE INSTRUMENTOS PUBLICOS ');
+INSERT INTO gifi (accno,description) VALUES ('521525', 'DE VALORIZACION ');
+INSERT INTO gifi (accno,description) VALUES ('521530', 'DE TURISMO ');
+INSERT INTO gifi (accno,description) VALUES ('521535', 'TASA POR UTILIZACION DE PUERTOS ');
+INSERT INTO gifi (accno,description) VALUES ('521540', 'DE VEHICULOS ');
+INSERT INTO gifi (accno,description) VALUES ('521545', 'DE ESPECTACULOS PUBLICOS ');
+INSERT INTO gifi (accno,description) VALUES ('521550', 'CUOTAS DE FOMENTO ');
+INSERT INTO gifi (accno,description) VALUES ('521555', 'LICORES ');
+INSERT INTO gifi (accno,description) VALUES ('521560', 'CERVEZAS ');
+INSERT INTO gifi (accno,description) VALUES ('521565', 'CIGARRILLOS ');
+INSERT INTO gifi (accno,description) VALUES ('521570', 'IVA DESCONTABLE ');
+INSERT INTO gifi (accno,description) VALUES ('521595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('521599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5220', 'ARRENDAMIENTOS ');
+INSERT INTO gifi (accno,description) VALUES ('522005', 'TERRENOS ');
+INSERT INTO gifi (accno,description) VALUES ('522010', 'CONSTRUCCIONES Y EDIFICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('522015', 'MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('522020', 'EQUIPO DE OFICINA ');
+INSERT INTO gifi (accno,description) VALUES ('522025', 'EQUIPO DE COMPUTACION Y COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('522030', 'EQUIPO MEDICO - CIENTIFICO ');
+INSERT INTO gifi (accno,description) VALUES ('522035', 'EQUIPO DE HOTELES Y RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('522040', 'FLOTA Y EQUIPO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('522045', 'FLOTA Y EQUIPO FLUVIAL Y/O MARITIMO ');
+INSERT INTO gifi (accno,description) VALUES ('522050', 'FLOTA Y EQUIPO AEREO ');
+INSERT INTO gifi (accno,description) VALUES ('522055', 'FLOTA Y EQUIPO FERREO ');
+INSERT INTO gifi (accno,description) VALUES ('522060', 'ACUEDUCTOS PLANTAS Y REDES ');
+INSERT INTO gifi (accno,description) VALUES ('522065', 'AERODROMOS ');
+INSERT INTO gifi (accno,description) VALUES ('522070', 'SEMOVIENTES ');
+INSERT INTO gifi (accno,description) VALUES ('522095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('522099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5225', 'CONTRIBUCIONES Y AFILIACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('522505', 'CONTRIBUCIONES ');
+INSERT INTO gifi (accno,description) VALUES ('522510', 'AFILIACIONES Y SOSTENIMIENTO ');
+INSERT INTO gifi (accno,description) VALUES ('522599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5230', 'SEGUROS ');
+INSERT INTO gifi (accno,description) VALUES ('523005', 'MANEJO ');
+INSERT INTO gifi (accno,description) VALUES ('523010', 'CUMPLIMIENTO ');
+INSERT INTO gifi (accno,description) VALUES ('523015', 'CORRIENTE DEBIL ');
+INSERT INTO gifi (accno,description) VALUES ('523020', 'VIDA COLECTIVA ');
+INSERT INTO gifi (accno,description) VALUES ('523025', 'INCENDIO ');
+INSERT INTO gifi (accno,description) VALUES ('523030', 'TERREMOTO ');
+INSERT INTO gifi (accno,description) VALUES ('523035', 'SUSTRACCION Y HURTO ');
+INSERT INTO gifi (accno,description) VALUES ('523040', 'FLOTA Y EQUIPO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('523045', 'FLOTA Y EQUIPO FLUVIAL Y/O MARITIMO ');
+INSERT INTO gifi (accno,description) VALUES ('523050', 'FLOTA Y EQUIPO AEREO ');
+INSERT INTO gifi (accno,description) VALUES ('523055', 'FLOTA Y EQUIPO FERREO ');
+INSERT INTO gifi (accno,description) VALUES ('523060', 'RESPONSABILIDAD CIVIL Y EXTRACONTRACTUAL ');
+INSERT INTO gifi (accno,description) VALUES ('523065', 'VUELO ');
+INSERT INTO gifi (accno,description) VALUES ('523070', 'ROTURA DE MAQUINARIA ');
+INSERT INTO gifi (accno,description) VALUES ('523075', 'OBLIGATORIO ACCIDENTE DE TRANSITO ');
+INSERT INTO gifi (accno,description) VALUES ('523080', 'LUCRO CESANTE ');
+INSERT INTO gifi (accno,description) VALUES ('523095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('523099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5235', 'SERVICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('523505', 'ASEO Y VIGILANCIA ');
+INSERT INTO gifi (accno,description) VALUES ('523510', 'TEMPORALES ');
+INSERT INTO gifi (accno,description) VALUES ('523515', 'ASISTENCIA TECNICA ');
+INSERT INTO gifi (accno,description) VALUES ('523520', 'PROCESAMIENTO ELECTRONICO DE DATOS ');
+INSERT INTO gifi (accno,description) VALUES ('523525', 'ACUEDUCTO Y ALCANTARILLADO ');
+INSERT INTO gifi (accno,description) VALUES ('523530', 'ENERGIA ELECTRICA ');
+INSERT INTO gifi (accno,description) VALUES ('523535', 'TELEFONO ');
+INSERT INTO gifi (accno,description) VALUES ('523540', 'CORREO, PORTES Y TELEGRAMAS ');
+INSERT INTO gifi (accno,description) VALUES ('523545', 'FAX Y TELEX ');
+INSERT INTO gifi (accno,description) VALUES ('523550', 'TRANSPORTE, FLETES Y ACARREOS ');
+INSERT INTO gifi (accno,description) VALUES ('523555', 'GAS ');
+INSERT INTO gifi (accno,description) VALUES ('523560', 'PROPAGANDA Y PUBLICIDAD ');
+INSERT INTO gifi (accno,description) VALUES ('523595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('523599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5240', 'GASTOS LEGALES ');
+INSERT INTO gifi (accno,description) VALUES ('524005', 'NOTARIALES ');
+INSERT INTO gifi (accno,description) VALUES ('524010', 'REGISTRO MERCANTIL ');
+INSERT INTO gifi (accno,description) VALUES ('524015', 'TRAMITES Y LICENCIAS ');
+INSERT INTO gifi (accno,description) VALUES ('524020', 'ADUANEROS ');
+INSERT INTO gifi (accno,description) VALUES ('524025', 'CONSULARES ');
+INSERT INTO gifi (accno,description) VALUES ('524095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('524099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5245', 'MANTENIMIENTO Y REPARACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('524505', 'TERRENOS ');
+INSERT INTO gifi (accno,description) VALUES ('524510', 'CONSTRUCCIONES Y EDIFICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('524515', 'MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('524520', 'EQUIPO DE OFICINA ');
+INSERT INTO gifi (accno,description) VALUES ('524525', 'EQUIPO DE COMPUTACION Y COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('524530', 'EQUIPO MEDICO - CIENTIFICO ');
+INSERT INTO gifi (accno,description) VALUES ('524535', 'EQUIPO DE HOTELES Y RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('524540', 'FLOTA Y EQUIPO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('524545', 'FLOTA Y EQUIPO FLUVIAL Y/O MARITIMO ');
+INSERT INTO gifi (accno,description) VALUES ('524550', 'FLOTA Y EQUIPO AEREO ');
+INSERT INTO gifi (accno,description) VALUES ('524555', 'FLOTA Y EQUIPO FERREO ');
+INSERT INTO gifi (accno,description) VALUES ('524560', 'ACUEDUCTOS PLANTAS Y REDES ');
+INSERT INTO gifi (accno,description) VALUES ('524565', 'ARMAMENTO DE VIGILANCIA ');
+INSERT INTO gifi (accno,description) VALUES ('524570', 'VIAS DE COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('524599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5250', 'ADECUACION E INSTALACION ');
+INSERT INTO gifi (accno,description) VALUES ('525005', 'INSTALACIONES ELECTRICAS ');
+INSERT INTO gifi (accno,description) VALUES ('525010', 'ARREGLOS ORNAMENTALES ');
+INSERT INTO gifi (accno,description) VALUES ('525015', 'REPARACIONES LOCATIVAS ');
+INSERT INTO gifi (accno,description) VALUES ('525095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('525099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5255', 'GASTOS DE VIAJE ');
+INSERT INTO gifi (accno,description) VALUES ('525505', 'ALOJAMIENTO Y MANUTENCION ');
+INSERT INTO gifi (accno,description) VALUES ('525510', 'PASAJES FLUVIALES Y/O MARITIMOS ');
+INSERT INTO gifi (accno,description) VALUES ('525515', 'PASAJES AEREOS ');
+INSERT INTO gifi (accno,description) VALUES ('525520', 'PASAJES TERRESTRES ');
+INSERT INTO gifi (accno,description) VALUES ('525525', 'PASAJES FERREOS ');
+INSERT INTO gifi (accno,description) VALUES ('525595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('525599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5260', 'DEPRECIACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('526005', 'CONSTRUCCIONES Y EDIFICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('526010', 'MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('526015', 'EQUIPO DE OFICINA ');
+INSERT INTO gifi (accno,description) VALUES ('526020', 'EQUIPO DE COMPUTACION Y COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('526025', 'EQUIPO MEDICO - CIENTIFICO ');
+INSERT INTO gifi (accno,description) VALUES ('526030', 'EQUIPO DE HOTELES Y RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('526035', 'FLOTA Y EQUIPO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('526040', 'FLOTA Y EQUIPO FLUVIAL Y/O MARITIMO ');
+INSERT INTO gifi (accno,description) VALUES ('526045', 'FLOTA Y EQUIPO AEREO ');
+INSERT INTO gifi (accno,description) VALUES ('526050', 'FLOTA Y EQUIPO FERREO ');
+INSERT INTO gifi (accno,description) VALUES ('526055', 'ACUEDUCTOS, PLANTAS Y REDES ');
+INSERT INTO gifi (accno,description) VALUES ('526060', 'ARMAMENTO DE VIGILANCIA ');
+INSERT INTO gifi (accno,description) VALUES ('526065', 'ENVASES Y EMPAQUES ');
+INSERT INTO gifi (accno,description) VALUES ('526099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5265', 'AMORTIZACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('526505', 'VIAS DE COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('526510', 'INTANGIBLES ');
+INSERT INTO gifi (accno,description) VALUES ('526515', 'CARGOS DIFERIDOS ');
+INSERT INTO gifi (accno,description) VALUES ('526595', 'OTRAS ');
+INSERT INTO gifi (accno,description) VALUES ('526599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5270', 'FINANCIEROS - REAJUSTE DEL SISTEMA ');
+INSERT INTO gifi (accno,description) VALUES ('527099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5295', 'DIVERSOS ');
+INSERT INTO gifi (accno,description) VALUES ('529505', 'COMISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('529510', 'LIBROS, SUSCRIPCIONES, PERIODICOS Y REVISTAS ');
+INSERT INTO gifi (accno,description) VALUES ('529515', 'MUSICA AMBIENTAL ');
+INSERT INTO gifi (accno,description) VALUES ('529520', 'GASTOS DE REPRESENTACION Y RELACIONES PUBLICAS ');
+INSERT INTO gifi (accno,description) VALUES ('529525', 'ELEMENTOS DE ASEO Y CAFETERIA ');
+INSERT INTO gifi (accno,description) VALUES ('529530', 'UTILES, PAPELERIA Y FOTOCOPIAS ');
+INSERT INTO gifi (accno,description) VALUES ('529535', 'COMBUSTIBLES Y LUBRICANTES ');
+INSERT INTO gifi (accno,description) VALUES ('529540', 'ENVASES Y EMPAQUES ');
+INSERT INTO gifi (accno,description) VALUES ('529545', 'TAXIS Y BUSES ');
+INSERT INTO gifi (accno,description) VALUES ('529550', 'ESTAMPILLAS ');
+INSERT INTO gifi (accno,description) VALUES ('529555', 'MICROFILMACION ');
+INSERT INTO gifi (accno,description) VALUES ('529560', 'CASINO Y RESTAURANTE ');
+INSERT INTO gifi (accno,description) VALUES ('529565', 'PARQUEADEROS ');
+INSERT INTO gifi (accno,description) VALUES ('529570', 'INDEMNIZACION POR DAŃOS A TERCEROS ');
+INSERT INTO gifi (accno,description) VALUES ('529575', 'POLVORA Y SIMILARES ');
+INSERT INTO gifi (accno,description) VALUES ('529595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('529599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5299', 'PROVISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('529905', 'INVERSIONES ');
+INSERT INTO gifi (accno,description) VALUES ('529910', 'DEUDORES ');
+INSERT INTO gifi (accno,description) VALUES ('529915', 'INVENTARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('529920', 'PROPIEDADES, PLANTA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('529995', 'OTROS ACTIVOS ');
+INSERT INTO gifi (accno,description) VALUES ('529999', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('53', 'NO OPERACIONALES ');
+INSERT INTO gifi (accno,description) VALUES ('5305', 'FINANCIEROS ');
+INSERT INTO gifi (accno,description) VALUES ('530505', 'GASTOS BANCARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('530510', 'REAJUSTE MONETARIO - UPAC ');
+INSERT INTO gifi (accno,description) VALUES ('530515', 'COMISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('530520', 'INTERESES ');
+INSERT INTO gifi (accno,description) VALUES ('530525', 'DIFERENCIA EN CAMBIO ');
+INSERT INTO gifi (accno,description) VALUES ('530530', 'GASTOS EN NEGOCIACION CERTIFICADOS DE CAMBIO ');
+INSERT INTO gifi (accno,description) VALUES ('530535', 'DESCUENTOS COMERCIALES CONDICIONADOS ');
+INSERT INTO gifi (accno,description) VALUES ('530540', 'GASTOS MANEJO Y EMISION DE BONOS ');
+INSERT INTO gifi (accno,description) VALUES ('530545', 'PRIMA AMORTIZADA ');
+INSERT INTO gifi (accno,description) VALUES ('530595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('530599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5310', 'PERDIDA EN VENTA Y RETIRO DE BIENES ');
+INSERT INTO gifi (accno,description) VALUES ('531005', 'VENTA DE INVERSIONES ');
+INSERT INTO gifi (accno,description) VALUES ('531010', 'VENTA DE CARTERA ');
+INSERT INTO gifi (accno,description) VALUES ('531015', 'VENTA DE PROPIEDADES PLANTA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('531020', 'VENTA DE INTANGIBLES ');
+INSERT INTO gifi (accno,description) VALUES ('531025', 'VENTA DE OTROS ACTIVOS ');
+INSERT INTO gifi (accno,description) VALUES ('531030', 'RETIRO DE PROPIEDADES PLANTA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('531035', 'RETIRO DE OTROS ACTIVOS ');
+INSERT INTO gifi (accno,description) VALUES ('531040', 'PERDIDAS POR SINIESTROS ');
+INSERT INTO gifi (accno,description) VALUES ('531095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('531099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5315', 'GASTOS EXTRAORDINARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('531505', 'COSTAS Y PROCESOS JUDICIALES ');
+INSERT INTO gifi (accno,description) VALUES ('531510', 'ACTIVIDADES CULTURALES Y CIVICAS ');
+INSERT INTO gifi (accno,description) VALUES ('531515', 'COSTOS Y GASTOS DE EJERCICIOS ANTERIORES ');
+INSERT INTO gifi (accno,description) VALUES ('531520', 'IMPUESTOS ASUMIDOS ');
+INSERT INTO gifi (accno,description) VALUES ('531595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('531599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5395', 'GASTOS DIVERSOS ');
+INSERT INTO gifi (accno,description) VALUES ('539505', 'DEMANDAS LABORALES ');
+INSERT INTO gifi (accno,description) VALUES ('539510', 'DEMANDAS POR INCUMPLIMIENTO DE CONTRATOS ');
+INSERT INTO gifi (accno,description) VALUES ('539515', 'INDEMNIZACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('539520', 'MULTAS, SANCIONES Y LITIGIOS ');
+INSERT INTO gifi (accno,description) VALUES ('539525', 'DONACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('539530', 'CONSTITUCION DE GARANTIAS ');
+INSERT INTO gifi (accno,description) VALUES ('539535', 'AMORTIZACION DE BIENES ENTREGADOS EN COMODATO ');
+INSERT INTO gifi (accno,description) VALUES ('539595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('539599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('54', 'IMPUESTO DE RENTA Y COMPLEMENTARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('5405', 'IMPUESTO DE RENTA Y COMPLEMENTARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('540505', 'IMPUESTO DE RENTA Y COMPLEMENTARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('59', 'GANANCIAS Y PERDIDAS ');
+INSERT INTO gifi (accno,description) VALUES ('5905', 'GANANCIAS Y PERDIDAS ');
+INSERT INTO gifi (accno,description) VALUES ('590505', 'GANANCIAS Y PERDIDAS ');
+INSERT INTO gifi (accno,description) VALUES ('6', 'COSTOS DE VENTAS ');
+INSERT INTO gifi (accno,description) VALUES ('61', 'COSTO DE VENTAS Y DE PRESTACION DE SERVICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('6105', 'AGRICULTURA, GANADERIA, CAZA Y SILVICULTURA ');
+INSERT INTO gifi (accno,description) VALUES ('610505', 'CULTIVO DE CEREALES ');
+INSERT INTO gifi (accno,description) VALUES ('610510', 'CULTIVOS DE HORTALIZAS, LEGUMBRES Y PLANTAS ORNAMENTALES ');
+INSERT INTO gifi (accno,description) VALUES ('610515', 'CULTIVOS DE FRUTAS, NUECES Y PLANTAS AROMATICAS ');
+INSERT INTO gifi (accno,description) VALUES ('610520', 'CULTIVO DE CAFE ');
+INSERT INTO gifi (accno,description) VALUES ('610525', 'CULTIVO DE FLORES ');
+INSERT INTO gifi (accno,description) VALUES ('610530', 'CULTIVO DE CAŃA DE AZUCAR ');
+INSERT INTO gifi (accno,description) VALUES ('610535', 'CULTIVO DE ALGODON Y PLANTAS PARA MATERIAL TEXTIL ');
+INSERT INTO gifi (accno,description) VALUES ('610540', 'CULTIVO DE BANANO ');
+INSERT INTO gifi (accno,description) VALUES ('610545', 'OTROS CULTIVOS AGRICOLAS ');
+INSERT INTO gifi (accno,description) VALUES ('610550', 'CRIA DE OVEJAS, CABRAS, ASNOS, MULAS Y BURDEGANOS ');
+INSERT INTO gifi (accno,description) VALUES ('610555', 'CRIA DE GANADO CABALLAR Y VACUNO. ');
+INSERT INTO gifi (accno,description) VALUES ('610560', 'PRODUCCION AVICOLA ');
+INSERT INTO gifi (accno,description) VALUES ('610565', 'CRIA DE OTROS ANIMALES ');
+INSERT INTO gifi (accno,description) VALUES ('610570', 'SERVICIOS AGRICOLAS Y GANADEROS ');
+INSERT INTO gifi (accno,description) VALUES ('610575', 'ACTIVIDAD DE CAZA ');
+INSERT INTO gifi (accno,description) VALUES ('610580', 'ACTIVIDAD DE SILVICULTURA ');
+INSERT INTO gifi (accno,description) VALUES ('610599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('6110', 'PESCA ');
+INSERT INTO gifi (accno,description) VALUES ('611005', 'ACTIVIDAD DE PESCA ');
+INSERT INTO gifi (accno,description) VALUES ('611010', 'EXPLOTACION DE CRIADEROS DE PECES ');
+INSERT INTO gifi (accno,description) VALUES ('611095', 'ACTIVIDADES CONEXAS ');
+INSERT INTO gifi (accno,description) VALUES ('611099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('6115', 'EXPLOTACION DE MINAS Y CANTERAS ');
+INSERT INTO gifi (accno,description) VALUES ('611505', 'CARBON ');
+INSERT INTO gifi (accno,description) VALUES ('611510', 'PETROLEO CRUDO ');
+INSERT INTO gifi (accno,description) VALUES ('611512', 'GAS NATURAL ');
+INSERT INTO gifi (accno,description) VALUES ('611514', 'SERVICIOS RELACIONADOS CON EXTRACCION DE PETROLEO Y GAS ');
+INSERT INTO gifi (accno,description) VALUES ('611515', 'MINERALES DE HIERRO ');
+INSERT INTO gifi (accno,description) VALUES ('611520', 'MINERALES METALIFEROS NO FERROSOS ');
+INSERT INTO gifi (accno,description) VALUES ('611525', 'PIEDRA, ARENA Y ARCILLA ');
+INSERT INTO gifi (accno,description) VALUES ('611527', 'PIEDRAS PRECIOSAS ');
+INSERT INTO gifi (accno,description) VALUES ('611528', 'ORO ');
+INSERT INTO gifi (accno,description) VALUES ('611530', 'OTRAS MINAS Y CANTERAS ');
+INSERT INTO gifi (accno,description) VALUES ('611532', 'PRESTACION DE SERVICIOS SECTOR MINERO ');
+INSERT INTO gifi (accno,description) VALUES ('611595', 'ACTIVIDADES CONEXAS ');
+INSERT INTO gifi (accno,description) VALUES ('611599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('6120', 'INDUSTRIAS MANUFACTURERAS ');
+INSERT INTO gifi (accno,description) VALUES ('612001', 'PRODUCCION Y PROCESAMIENTO DE CARNES Y PRODUCTOS CARNICOS ');
+INSERT INTO gifi (accno,description) VALUES ('612002', 'PRODUCTOS DE PESCADO ');
+INSERT INTO gifi (accno,description) VALUES ('612003', 'PRODUCTOS DE FRUTAS, LEGUMBRES Y HORTALIZAS ');
+INSERT INTO gifi (accno,description) VALUES ('612004', 'ELABORACION DE ACEITES Y GRASAS ');
+INSERT INTO gifi (accno,description) VALUES ('612005', 'ELABORACION DE PRODUCTOS LACTEOS ');
+INSERT INTO gifi (accno,description) VALUES ('612006', 'ELABORACION DE PRODUCTOS DE MOLINERIA ');
+INSERT INTO gifi (accno,description) VALUES ('612007', 'ELABORACION DE ALMIDONES Y DERIVADOS ');
+INSERT INTO gifi (accno,description) VALUES ('612008', 'ELABORACION DE ALIMENTOS PARA ANIMALES ');
+INSERT INTO gifi (accno,description) VALUES ('612009', 'ELABORACION DE PRODUCTOS PARA PANADERIA ');
+INSERT INTO gifi (accno,description) VALUES ('612010', 'ELABORACION DE AZUCAR Y MELAZAS ');
+INSERT INTO gifi (accno,description) VALUES ('612011', 'ELABORACION DE CACAO, CHOCOLATE Y CONFITERIA ');
+INSERT INTO gifi (accno,description) VALUES ('612012', 'ELABORACION DE PASTAS Y PRODUCTOS FARINACEOS ');
+INSERT INTO gifi (accno,description) VALUES ('612013', 'ELABORACION DE PRODUCTOS DE CAFE ');
+INSERT INTO gifi (accno,description) VALUES ('612014', 'ELABORACION DE OTROS PRODUCTOS ALIMENTICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('612015', 'ELABORACION DE BEBIDAS ALCOHOLICAS Y ALCOHOL ETILICO ');
+INSERT INTO gifi (accno,description) VALUES ('612016', 'ELABORACION DE VINOS ');
+INSERT INTO gifi (accno,description) VALUES ('612017', 'ELABORACION DE BEBIDAS MALTEADAS Y DE MALTA ');
+INSERT INTO gifi (accno,description) VALUES ('612018', 'ELABORACION DE BEBIDAS NO ALCOHOLICAS ');
+INSERT INTO gifi (accno,description) VALUES ('612019', 'ELABORACION DE PRODUCTOS DE TABACO ');
+INSERT INTO gifi (accno,description) VALUES ('612020', 'PREPARACION E HILATURA DE FIBRAS TEXTILES Y TEJEDURIA ');
+INSERT INTO gifi (accno,description) VALUES ('612021', 'ACABADO DE PRODUCTOS TEXTILES ');
+INSERT INTO gifi (accno,description) VALUES ('612022', 'ELABORACION DE ARTICULOS DE MATERIALES TEXTILES ');
+INSERT INTO gifi (accno,description) VALUES ('612023', 'ELABORACION DE TAPICES Y ALFOMBRAS ');
+INSERT INTO gifi (accno,description) VALUES ('612024', 'ELABORACION DE CUERDAS, CORDELES, BRAMANTES Y REDES ');
+INSERT INTO gifi (accno,description) VALUES ('612025', 'ELABORACION DE OTROS PRODUCTOS TEXTILES ');
+INSERT INTO gifi (accno,description) VALUES ('612026', 'ELABORACION DE TEJIDOS ');
+INSERT INTO gifi (accno,description) VALUES ('612027', 'ELABORACION DE PRENDAS DE VESTIR ');
+INSERT INTO gifi (accno,description) VALUES ('612028', 'PREPARACION, ADOBO Y TEŃIDO DE PIELES ');
+INSERT INTO gifi (accno,description) VALUES ('612029', 'CURTIDO, ADOBO O PREPARACION DE CUERO ');
+INSERT INTO gifi (accno,description) VALUES ('612030', 'ELABORACION DE MALETAS, BOLSOS Y SIMILARES ');
+INSERT INTO gifi (accno,description) VALUES ('612031', 'ELABORACION DE CALZADO ');
+INSERT INTO gifi (accno,description) VALUES ('612032', 'PRODUCCION DE MADERA, ARTICULOS DE MADERA Y CORCHO ');
+INSERT INTO gifi (accno,description) VALUES ('612033', 'ELABORACION DE PASTA Y PRODUCTOS DE MADERA, PAPEL Y CARTON ');
+INSERT INTO gifi (accno,description) VALUES ('612034', 'EDICIONES Y PUBLICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('612035', 'IMPRESION ');
+INSERT INTO gifi (accno,description) VALUES ('612036', 'SERVICIOS RELACIONADOS CON LA EDICION Y LA IMPRESION ');
+INSERT INTO gifi (accno,description) VALUES ('612037', 'REPRODUCCION DE GRABACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('612038', 'ELABORACION DE PRODUCTOS DE HORNO DE COQUE ');
+INSERT INTO gifi (accno,description) VALUES ('612039', 'ELABORACION DE PRODUCTOS DE LA REFINACION DE PETROLEO ');
+INSERT INTO gifi (accno,description) VALUES ('612040', 'ELABORACION DE SUSTANCIAS QUIMICAS BASICAS ');
+INSERT INTO gifi (accno,description) VALUES ('612041', 'ELABORACION DE ABONOS Y COMPUESTOS DE NITROGENO ');
+INSERT INTO gifi (accno,description) VALUES ('612042', 'ELABORACION DE PLASTICO Y CAUCHO SINTETICO ');
+INSERT INTO gifi (accno,description) VALUES ('612043', 'ELABORACION DE PRODUCTOS QUIMICOS DE USO AGROPECUARIO ');
+INSERT INTO gifi (accno,description) VALUES ('612044', 'ELABORACION DE PINTURAS, TINTAS Y MASILLAS ');
+INSERT INTO gifi (accno,description) VALUES ('612045', 'ELABORACION DE PRODUCTOS FARMACEUTICOS Y BOTANICOS ');
+INSERT INTO gifi (accno,description) VALUES ('612046', 'ELABORACION DE JABONES, DETERGENTES Y PREPARADOS DE TOCADOR ');
+INSERT INTO gifi (accno,description) VALUES ('612047', 'ELABORACION DE OTROS PRODUCTOS QUIMICOS ');
+INSERT INTO gifi (accno,description) VALUES ('612048', 'ELABORACION DE FIBRAS ');
+INSERT INTO gifi (accno,description) VALUES ('612049', 'ELABORACION DE OTROS PRODUCTOS DE CAUCHO ');
+INSERT INTO gifi (accno,description) VALUES ('612050', 'ELABORACION DE PRODUCTOS DE PLASTICO ');
+INSERT INTO gifi (accno,description) VALUES ('612051', 'ELABORACION DE VIDRIO Y PRODUCTOS DE VIDRIO ');
+INSERT INTO gifi (accno,description) VALUES ('612052', 'ELABORACION DE PRODUCTOS DE CERAMICA, LOZA, PIEDRA, ARCILLA Y PORCELANA ');
+INSERT INTO gifi (accno,description) VALUES ('612053', 'ELABORACION DE CEMENTO, CAL Y YESO ');
+INSERT INTO gifi (accno,description) VALUES ('612054', 'ELABORACION DE ARTICULOS DE HORMIGON, CEMENTO Y YESO ');
+INSERT INTO gifi (accno,description) VALUES ('612055', 'CORTE, TALLADO Y ACABADO DE LA PIEDRA ');
+INSERT INTO gifi (accno,description) VALUES ('612056', 'ELABORACION DE OTROS PRODUCTOS MINERALES NO METALICOS ');
+INSERT INTO gifi (accno,description) VALUES ('612057', 'INDUSTRIAS BASICAS Y FUNDICION DE HIERRO Y ACERO ');
+INSERT INTO gifi (accno,description) VALUES ('612058', 'PRODUCTOS PRIMARIOS DE METALES PRECIOSOS Y DE METALES NO FERROSOS ');
+INSERT INTO gifi (accno,description) VALUES ('612059', 'FUNDICION DE METALES NO FERROSOS ');
+INSERT INTO gifi (accno,description) VALUES ('612060', 'FABRICACION DE PRODUCTOS METALICOS PARA USO ESTRUCTURAL ');
+INSERT INTO gifi (accno,description) VALUES ('612061', 'FORJA, PRENSADO, ESTAMPADO, LAMINADO DE METAL Y ');
+INSERT INTO gifi (accno,description) VALUES ('612062', 'REVESTIMIENTO DE METALES Y OBRAS DE INGENIERIA MECANICA ');
+INSERT INTO gifi (accno,description) VALUES ('612063', 'FABRICACION DE ARTICULOS DE FERRETERIA ');
+INSERT INTO gifi (accno,description) VALUES ('612064', 'ELABORACION DE OTROS PRODUCTOS DE METAL ');
+INSERT INTO gifi (accno,description) VALUES ('612065', 'FABRICACION DE MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('612066', 'FABRICACION DE EQUIPOS DE ELEVACION Y MANIPULACION ');
+INSERT INTO gifi (accno,description) VALUES ('612067', 'ELABORACION DE APARATOS DE USO DOMESTICO ');
+INSERT INTO gifi (accno,description) VALUES ('612068', 'ELABORACION DE EQUIPO DE OFICINA ');
+INSERT INTO gifi (accno,description) VALUES ('612069', 'ELABORACION DE PILAS Y BATERIAS PRIMARIAS ');
+INSERT INTO gifi (accno,description) VALUES ('612070', 'ELABORACION DE EQUIPO DE ILUMINACION ');
+INSERT INTO gifi (accno,description) VALUES ('612071', 'ELABORACION DE OTROS TIPOS DE EQUIPO ELECTRICO ');
+INSERT INTO gifi (accno,description) VALUES ('612072', 'FABRICACION DE EQUIPOS DE RADIO, TELEVISION Y COMUNICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('612073', 'FABRICACION DE APARATOS E INSTRUMENTOS MEDICOS ');
+INSERT INTO gifi (accno,description) VALUES ('612074', 'FABRICACION DE INSTRUMENTOS DE MEDICION Y CONTROL ');
+INSERT INTO gifi (accno,description) VALUES ('612075', 'FABRICACION DE INSTRUMENTOS DE OPTICA Y EQUIPO FOTOGRAFICO ');
+INSERT INTO gifi (accno,description) VALUES ('612076', 'FABRICACION DE RELOJES ');
+INSERT INTO gifi (accno,description) VALUES ('612077', 'FABRICACION DE VEHICULOS AUTOMOTORES ');
+INSERT INTO gifi (accno,description) VALUES ('612078', 'FABRICACION DE CARROCERIAS PARA AUTOMOTORES ');
+INSERT INTO gifi (accno,description) VALUES ('612079', 'FABRICACION DE PARTES PIEZAS Y ACCESORIOS PARA AUTOMOTORES ');
+INSERT INTO gifi (accno,description) VALUES ('612080', 'FABRICACION Y REPARACION DE BUQUES Y OTRAS EMBARCACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('612081', 'FABRICACION DE LOCOMOTORAS Y MATERIAL RODANTE PARA FERROCARRILES ');
+INSERT INTO gifi (accno,description) VALUES ('612082', 'FABRICACION DE AERONAVES ');
+INSERT INTO gifi (accno,description) VALUES ('612083', 'FABRICACION DE MOTOCICLETAS ');
+INSERT INTO gifi (accno,description) VALUES ('612084', 'FABRICACION DE BICICLETAS Y SILLAS DE RUEDAS ');
+INSERT INTO gifi (accno,description) VALUES ('612085', 'FABRICACION DE OTROS TIPOS DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('612086', 'FABRICACION DE MUEBLES ');
+INSERT INTO gifi (accno,description) VALUES ('612087', 'FABRICACION DE JOYAS Y ARTICULOS CONEXOS ');
+INSERT INTO gifi (accno,description) VALUES ('612088', 'FABRICACION DE INSTRUMENTOS DE MUSICA ');
+INSERT INTO gifi (accno,description) VALUES ('612089', 'FABRICACION DE ARTICULOS Y EQUIPO PARA DEPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('612090', 'FABRICACION DE JUEGOS Y JUGUETES ');
+INSERT INTO gifi (accno,description) VALUES ('612091', 'RECICLAMIENTO DE DESPERDICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('612095', 'PRODUCTOS DE OTRAS INDUSTRIAS MANUFACTURERAS ');
+INSERT INTO gifi (accno,description) VALUES ('612099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('6125', 'SUMINISTRO DE ELECTRICIDAD, GAS Y AGUA ');
+INSERT INTO gifi (accno,description) VALUES ('612505', 'GENERACION, CAPTACION Y DISTRIBUCION DE ENERGIA ELECTRICA ');
+INSERT INTO gifi (accno,description) VALUES ('612510', 'FABRICACION DE GAS Y DISTRIBUCION DE COMBUSTIBLES GASEOSOS ');
+INSERT INTO gifi (accno,description) VALUES ('612515', 'CAPTACION, DEPURACION Y DISTRIBUCION DE AGUA ');
+INSERT INTO gifi (accno,description) VALUES ('612595', 'ACTIVIDADES CONEXAS ');
+INSERT INTO gifi (accno,description) VALUES ('612599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('6130', 'CONSTRUCCION ');
+INSERT INTO gifi (accno,description) VALUES ('613005', 'PREPARACION DE TERRENOS ');
+INSERT INTO gifi (accno,description) VALUES ('613010', 'CONSTRUCCION DE EDIFICIOS Y OBRAS DE INGENIERIA CIVIL ');
+INSERT INTO gifi (accno,description) VALUES ('613015', 'ACONDICIONAMIENTO DE EDIFICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('613020', 'TERMINACION DE EDIFICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('613025', 'ALQUILER DE EQUIPO CON OPERARIO ');
+INSERT INTO gifi (accno,description) VALUES ('613095', 'ACTIVIDADES CONEXAS ');
+INSERT INTO gifi (accno,description) VALUES ('613099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('6135', 'COMERCIO AL POR MAYOR Y AL POR MENOR ');
+INSERT INTO gifi (accno,description) VALUES ('613502', 'VENTA DE VEHICULOS AUTOMOTORES ');
+INSERT INTO gifi (accno,description) VALUES ('613504', 'MANTENIMIENTO, REPARACION Y LAVADO DE VEHICULOS AUTOMOTORES ');
+INSERT INTO gifi (accno,description) VALUES ('613506', 'VENTA DE PARTES, PIEZAS Y ACCESORIOS DE VEHICULOS AUTOMOTORES ');
+INSERT INTO gifi (accno,description) VALUES ('613508', 'VENTA DE COMBUSTIBLES SOLIDOS, LIQUIDOS, GASEOSOS ');
+INSERT INTO gifi (accno,description) VALUES ('613510', 'VENTA DE LUBRICANTES, ADITIVOS, LLANTAS Y LUJOS PARA AUTOMOTORES ');
+INSERT INTO gifi (accno,description) VALUES ('613512', 'VENTA A CAMBIO DE RETRIBUCION O POR CONTRATA ');
+INSERT INTO gifi (accno,description) VALUES ('613514', 'VENTA DE INSUMOS, MATERIAS PRIMAS AGROPECUARIAS Y FLORES ');
+INSERT INTO gifi (accno,description) VALUES ('613516', 'VENTA DE OTROS INSUMOS Y MATERIAS PRIMAS NO AGROPECUARIAS ');
+INSERT INTO gifi (accno,description) VALUES ('613518', 'VENTA DE ANIMALES VIVOS Y CUEROS ');
+INSERT INTO gifi (accno,description) VALUES ('613520', 'VENTA DE PRODUCTOS EN ALMACENES NO ESPECIALIZADOS ');
+INSERT INTO gifi (accno,description) VALUES ('613522', 'VENTA DE PRODUCTOS AGROPECUARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('613524', 'VENTA DE PRODUCTOS TEXTILES, DE VESTIR, DE CUERO Y CALZADO ');
+INSERT INTO gifi (accno,description) VALUES ('613526', 'VENTA DE PAPEL Y CARTON ');
+INSERT INTO gifi (accno,description) VALUES ('613528', 'VENTA DE LIBROS, REVISTAS, ELEMENTOS DE PAPELERIA, UTILES Y TEXTOS ESCOLARES ');
+INSERT INTO gifi (accno,description) VALUES ('613530', 'VENTA DE JUEGOS, JUGUETES Y ARTICULOS DEPORTIVOS ');
+INSERT INTO gifi (accno,description) VALUES ('613532', 'VENTA DE INSTRUMENTOS QUIRURGICOS Y ORTOPEDICOS ');
+INSERT INTO gifi (accno,description) VALUES ('613534', 'VENTA DE ARTICULOS EN RELOJERIAS Y JOYERIAS ');
+INSERT INTO gifi (accno,description) VALUES ('613536', 'VENTA DE ELECTRODOMESTICOS Y MUEBLES ');
+INSERT INTO gifi (accno,description) VALUES ('613538', 'VENTA DE PRODUCTOS DE ASEO, FARMACEUTICOS, MEDICINALES, Y ARTICULOS DE TOCADOR ');
+INSERT INTO gifi (accno,description) VALUES ('613540', 'VENTA DE CUBIERTOS, VAJILLAS, CRISTALERIA, PORCELANAS, CERAMICAS Y OTROS ARTICULOS DE USO DOMESTICO ');
+INSERT INTO gifi (accno,description) VALUES ('613542', 'VENTA DE MATERIALES DE CONSTRUCCION, FONTANERIA Y CALEFACCION ');
+INSERT INTO gifi (accno,description) VALUES ('613544', 'VENTA DE PINTURAS Y LACAS ');
+INSERT INTO gifi (accno,description) VALUES ('613546', 'VENTA DE PRODUCTOS DE VIDRIOS Y MARQUETERIA ');
+INSERT INTO gifi (accno,description) VALUES ('613548', 'VENTA DE HERRAMIENTAS Y ARTICULOS DE FERRETERIA ');
+INSERT INTO gifi (accno,description) VALUES ('613550', 'VENTA DE QUIMICOS ');
+INSERT INTO gifi (accno,description) VALUES ('613552', 'VENTA DE PRODUCTOS INTERMEDIOS, DESPERDICIOS Y DESECHOS ');
+INSERT INTO gifi (accno,description) VALUES ('613554', 'VENTA DE MAQUINARIA, EQUIPO DE OFICINA Y PROGRAMAS DE COMPUTADOR ');
+INSERT INTO gifi (accno,description) VALUES ('613556', 'VENTA DE ARTICULOS EN CACHARRERIAS Y MISCELANEAS ');
+INSERT INTO gifi (accno,description) VALUES ('613558', 'VENTA DE INSTRUMENTOS MUSICALES ');
+INSERT INTO gifi (accno,description) VALUES ('613560', 'VENTA DE ARTICULOS EN CASAS DE EMPEŃO Y PRENDERIAS ');
+INSERT INTO gifi (accno,description) VALUES ('613562', 'VENTA DE EQUIPO FOTOGRAFICO ');
+INSERT INTO gifi (accno,description) VALUES ('613564', 'VENTA DE EQUIPO OPTICO Y DE PRECISION ');
+INSERT INTO gifi (accno,description) VALUES ('613566', 'VENTA DE EMPAQUES ');
+INSERT INTO gifi (accno,description) VALUES ('613568', 'VENTA DE EQUIPO PROFESIONAL Y CIENTIFICO ');
+INSERT INTO gifi (accno,description) VALUES ('613570', 'VENTA DE LOTERIAS, RIFAS, CHANCE, APUESTAS Y SIMILARES ');
+INSERT INTO gifi (accno,description) VALUES ('613572', 'REPARACION DE EFECTOS PERSONALES Y ELECTRODOMESTICOS ');
+INSERT INTO gifi (accno,description) VALUES ('613595', 'VENTA DE OTROS PRODUCTOS ');
+INSERT INTO gifi (accno,description) VALUES ('613599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('6140', 'HOTELES Y RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('614005', 'HOTELERIA ');
+INSERT INTO gifi (accno,description) VALUES ('614010', 'CAMPAMENTO Y OTROS TIPOS DE HOSPEDAJE ');
+INSERT INTO gifi (accno,description) VALUES ('614015', 'RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('614020', 'BARES Y CANTINAS ');
+INSERT INTO gifi (accno,description) VALUES ('614095', 'ACTIVIDADES CONEXAS ');
+INSERT INTO gifi (accno,description) VALUES ('614099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('6145', 'TRANSPORTE, ALMACENAMIENTO Y COMUNICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('614505', 'SERVICIO DE TRANSPORTE POR CARRETERA ');
+INSERT INTO gifi (accno,description) VALUES ('614510', 'SERVICIO DE TRANSPORTE POR VIA FERREA ');
+INSERT INTO gifi (accno,description) VALUES ('614515', 'SERVICIO DE TRANSPORTE POR VIA ACUATICA ');
+INSERT INTO gifi (accno,description) VALUES ('614520', 'SERVICIO DE TRANSPORTE POR VIA AEREA ');
+INSERT INTO gifi (accno,description) VALUES ('614525', 'SERVICIO DE TRANSPORTE POR TUBERIAS ');
+INSERT INTO gifi (accno,description) VALUES ('614530', 'MANIPULACION DE CARGA ');
+INSERT INTO gifi (accno,description) VALUES ('614535', 'ALMACENAMIENTO Y DEPOSITO ');
+INSERT INTO gifi (accno,description) VALUES ('614540', 'SERVICIOS COMPLEMENTARIOS PARA EL TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('614545', 'AGENCIAS DE VIAJE ');
+INSERT INTO gifi (accno,description) VALUES ('614550', 'OTRAS AGENCIAS DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('614555', 'SERVICIO POSTAL Y DE CORREO ');
+INSERT INTO gifi (accno,description) VALUES ('614560', 'SERVICIO TELEFONICO ');
+INSERT INTO gifi (accno,description) VALUES ('614565', 'SERVICIO DE TELEGRAFO ');
+INSERT INTO gifi (accno,description) VALUES ('614570', 'SERVICIO DE TRANSMISION DE DATOS ');
+INSERT INTO gifi (accno,description) VALUES ('614575', 'SERVICIO DE RADIO Y TELEVISION POR CABLE ');
+INSERT INTO gifi (accno,description) VALUES ('614580', 'TRANSMISION DE SONIDO E IMAGENES POR CONTRATO ');
+INSERT INTO gifi (accno,description) VALUES ('614595', 'ACTIVIDADES CONEXAS ');
+INSERT INTO gifi (accno,description) VALUES ('614599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('6150', 'ACTIVIDAD FINANCIERA ');
+INSERT INTO gifi (accno,description) VALUES ('615005', 'DE INVERSIONES ');
+INSERT INTO gifi (accno,description) VALUES ('615010', 'DE SERVICIO DE BOLSA ');
+INSERT INTO gifi (accno,description) VALUES ('615099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('6155', 'ACTIVIDADES INMOBILIARIAS, EMPRESARIALES Y DE ALQUILER ');
+INSERT INTO gifi (accno,description) VALUES ('615505', 'ARRENDAMIENTOS DE BIENES INMUEBLES ');
+INSERT INTO gifi (accno,description) VALUES ('615510', 'INMOBILIARIAS POR RETRIBUCION O CONTRATA ');
+INSERT INTO gifi (accno,description) VALUES ('615515', 'ALQUILER EQUIPO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('615520', 'ALQUILER MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('615525', 'ALQUILER DE EFECTOS PERSONALES Y ENSERES DOMESTICOS ');
+INSERT INTO gifi (accno,description) VALUES ('615530', 'CONSULTORIA EN EQUIPO Y PROGRAMAS DE INFORMATICA ');
+INSERT INTO gifi (accno,description) VALUES ('615535', 'PROCESAMIENTO DE DATOS ');
+INSERT INTO gifi (accno,description) VALUES ('615540', 'MANTENIMIENTO Y REPARACION DE MAQUINARIA DE OFICINA ');
+INSERT INTO gifi (accno,description) VALUES ('615545', 'INVESTIGACIONES CIENTIFICAS Y DE DESARROLLO ');
+INSERT INTO gifi (accno,description) VALUES ('615550', 'ACTIVIDADES EMPRESARIALES DE CONSULTORIA ');
+INSERT INTO gifi (accno,description) VALUES ('615555', 'PUBLICIDAD ');
+INSERT INTO gifi (accno,description) VALUES ('615560', 'DOTACION DE PERSONAL ');
+INSERT INTO gifi (accno,description) VALUES ('615565', 'INVESTIGACION Y SEGURIDAD ');
+INSERT INTO gifi (accno,description) VALUES ('615570', 'LIMPIEZA DE INMUEBLES ');
+INSERT INTO gifi (accno,description) VALUES ('615575', 'FOTOGRAFIA ');
+INSERT INTO gifi (accno,description) VALUES ('615580', 'ENVASE Y EMPAQUE ');
+INSERT INTO gifi (accno,description) VALUES ('615585', 'FOTOCOPIADO ');
+INSERT INTO gifi (accno,description) VALUES ('615590', 'MANTENIMIENTO Y REPARACION DE MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('615595', 'ACTIVIDADES CONEXAS ');
+INSERT INTO gifi (accno,description) VALUES ('615599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('6160', 'ENSEŃANZA ');
+INSERT INTO gifi (accno,description) VALUES ('616005', 'ACTIVIDADES RELACIONADAS CON LA EDUCACION ');
+INSERT INTO gifi (accno,description) VALUES ('610595', 'ACTIVIDADES CONEXAS ');
+INSERT INTO gifi (accno,description) VALUES ('616099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('6165', 'SERVICIOS SOCIALES Y DE SALUD ');
+INSERT INTO gifi (accno,description) VALUES ('616505', 'SERVICIO HOSPITALARIO ');
+INSERT INTO gifi (accno,description) VALUES ('616510', 'SERVICIO MEDICO ');
+INSERT INTO gifi (accno,description) VALUES ('616515', 'SERVICIO ODONTOLOGICO ');
+INSERT INTO gifi (accno,description) VALUES ('616520', 'SERVICIO DE LABORATORIO ');
+INSERT INTO gifi (accno,description) VALUES ('616525', 'ACTIVIDADES VETERINARIAS ');
+INSERT INTO gifi (accno,description) VALUES ('616530', 'ACTIVIDADES DE SERVICIOS SOCIALES ');
+INSERT INTO gifi (accno,description) VALUES ('616595', 'ACTIVIDADES CONEXAS ');
+INSERT INTO gifi (accno,description) VALUES ('616599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('6170', 'OTRAS ACTIVIDADES DE SERVICIOS COMUNITARIOS, SOCIALES Y PERSONALES ');
+INSERT INTO gifi (accno,description) VALUES ('617005', 'ELIMINACION DE DESPERDICIOS Y AGUAS RESIDUALES ');
+INSERT INTO gifi (accno,description) VALUES ('617010', 'ACTIVIDADES DE ASOCIACION ');
+INSERT INTO gifi (accno,description) VALUES ('617015', 'PRODUCCION Y DISTRIBUCION DE FILMES Y VIDEOCINTAS ');
+INSERT INTO gifi (accno,description) VALUES ('617020', 'EXHIBICION DE FILMES Y VIDEOCINTAS ');
+INSERT INTO gifi (accno,description) VALUES ('617025', 'ACTIVIDAD DE RADIO Y TELEVISION ');
+INSERT INTO gifi (accno,description) VALUES ('617030', 'ACTIVIDAD TEATRAL, MUSICAL Y ARTISTICA ');
+INSERT INTO gifi (accno,description) VALUES ('617035', 'GRABACION Y PRODUCCION DE DISCOS ');
+INSERT INTO gifi (accno,description) VALUES ('617040', 'ENTRETENIMIENTO Y ESPARCIMIENTO ');
+INSERT INTO gifi (accno,description) VALUES ('617045', 'AGENCIAS DE NOTICIAS ');
+INSERT INTO gifi (accno,description) VALUES ('617050', 'LAVANDERIAS Y SIMILARES ');
+INSERT INTO gifi (accno,description) VALUES ('617055', 'PELUQUERIAS Y SIMILARES ');
+INSERT INTO gifi (accno,description) VALUES ('617060', 'SERVICIOS FUNERARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('617065', 'ZONAS FRANCAS ');
+INSERT INTO gifi (accno,description) VALUES ('617095', 'ACTIVIDADES CONEXAS ');
+INSERT INTO gifi (accno,description) VALUES ('617099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('62', 'COMPRAS ');
+INSERT INTO gifi (accno,description) VALUES ('6205', 'DE MERCANCIAS ');
+INSERT INTO gifi (accno,description) VALUES ('620599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('6210', 'DE MATERIAS PRIMAS ');
+INSERT INTO gifi (accno,description) VALUES ('621099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('6215', 'DE MATERIALES INDIRECTOS ');
+INSERT INTO gifi (accno,description) VALUES ('621599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('6220', 'COMPRA DE ENERGIA ');
+INSERT INTO gifi (accno,description) VALUES ('622099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('6225', 'DEVOLUCIONES REBAJAS Y DESCUENTOS EN COMPRAS (CR) ');
+INSERT INTO gifi (accno,description) VALUES ('622599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('7', 'COSTOS DE PRODUCCION O DE OPERACION ');
+INSERT INTO gifi (accno,description) VALUES ('71', 'MATERIA PRIMA ');
+INSERT INTO gifi (accno,description) VALUES ('72', 'MANO DE OBRA DIRECTA ');
+INSERT INTO gifi (accno,description) VALUES ('73', 'COSTOS INDIRECTOS ');
+INSERT INTO gifi (accno,description) VALUES ('74', 'CONTRATOS DE SERVICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('8', 'CUENTAS DE ORDEN DEUDORAS ');
+INSERT INTO gifi (accno,description) VALUES ('81', 'DERECHOS CONTINGENTES ');
+INSERT INTO gifi (accno,description) VALUES ('8105', 'BIENES Y VALORES ENTREGADOS EN CUSTODIA ');
+INSERT INTO gifi (accno,description) VALUES ('810505', 'VALORES MOBILIARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('810510', 'BIENES MUEBLES ');
+INSERT INTO gifi (accno,description) VALUES ('810599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('8110', 'BIENES Y VALORES ENTREGADOS EN GARANTIA ');
+INSERT INTO gifi (accno,description) VALUES ('811005', 'VALORES MOBILIARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('811010', 'BIENES MUEBLES ');
+INSERT INTO gifi (accno,description) VALUES ('811015', 'BIENES INMUEBLES ');
+INSERT INTO gifi (accno,description) VALUES ('811020', 'CONTRATOS DE GANADO EN PARTICIPACION ');
+INSERT INTO gifi (accno,description) VALUES ('811099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('8115', 'BIENES Y VALORES EN PODER DE TERCEROS ');
+INSERT INTO gifi (accno,description) VALUES ('811505', 'EN ARRENDAMIENTO ');
+INSERT INTO gifi (accno,description) VALUES ('811510', 'EN PRESTAMO ');
+INSERT INTO gifi (accno,description) VALUES ('811515', 'EN DEPOSITO ');
+INSERT INTO gifi (accno,description) VALUES ('811520', 'EN CONSIGNACION ');
+INSERT INTO gifi (accno,description) VALUES ('811599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('8120', 'LITIGIOS Y/O DEMANDAS ');
+INSERT INTO gifi (accno,description) VALUES ('812005', 'EJECUTIVOS ');
+INSERT INTO gifi (accno,description) VALUES ('812010', 'INCUMPLIMIENTO DE CONTRATOS ');
+INSERT INTO gifi (accno,description) VALUES ('8125', 'PROMESAS DE COMPRAVENTA ');
+INSERT INTO gifi (accno,description) VALUES ('8195', 'DIVERSAS ');
+INSERT INTO gifi (accno,description) VALUES ('819505', 'VALORES ADQUIRIDOS POR RECIBIR ');
+INSERT INTO gifi (accno,description) VALUES ('819595', 'OTRAS ');
+INSERT INTO gifi (accno,description) VALUES ('819599', 'AJUSTES POR INFLACION. ');
+INSERT INTO gifi (accno,description) VALUES ('82', 'DEUDORAS FISCALES ');
+INSERT INTO gifi (accno,description) VALUES ('83', 'DEUDORAS DE CONTROL ');
+INSERT INTO gifi (accno,description) VALUES ('8305', 'BIENES RECIBIDOS EN ARRENDAMIENTO FINANCIERO ');
+INSERT INTO gifi (accno,description) VALUES ('830505', 'BIENES MUEBLES ');
+INSERT INTO gifi (accno,description) VALUES ('830510', 'BIENES INMUEBLES ');
+INSERT INTO gifi (accno,description) VALUES ('830599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('8310', 'TITULOS DE INVERSION NO COLOCADOS ');
+INSERT INTO gifi (accno,description) VALUES ('831005', 'ACCIONES ');
+INSERT INTO gifi (accno,description) VALUES ('831010', 'BONOS ');
+INSERT INTO gifi (accno,description) VALUES ('831095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('8315', 'PROPIEDADES PLANTA Y EQUIPO TOTALMENTE DEPRECIADOS, AGOTADOS Y/O AMORTIZADOS ');
+INSERT INTO gifi (accno,description) VALUES ('831506', 'MATERIALES PROYECTOS PETROLEROS ');
+INSERT INTO gifi (accno,description) VALUES ('831516', 'CONSTRUCCIONES Y EDIFICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('831520', 'MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('831524', 'EQUIPO DE OFICINA ');
+INSERT INTO gifi (accno,description) VALUES ('831528', 'EQUIPO DE COMPUTACION Y COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('831532', 'EQUIPO MEDICO - CIENTIFICO ');
+INSERT INTO gifi (accno,description) VALUES ('831536', 'EQUIPO DE HOTELES Y RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('831540', 'FLOTA Y EQUIPO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('831544', 'FLOTA Y EQUIPO FLUVIAL Y/O MARITIMO ');
+INSERT INTO gifi (accno,description) VALUES ('831548', 'FLOTA Y EQUIPO AEREO ');
+INSERT INTO gifi (accno,description) VALUES ('831552', 'FLOTA Y EQUIPO FERREO ');
+INSERT INTO gifi (accno,description) VALUES ('831556', 'ACUEDUCTOS, PLANTAS Y REDES ');
+INSERT INTO gifi (accno,description) VALUES ('831560', 'ARMAMENTO DE VIGILANCIA ');
+INSERT INTO gifi (accno,description) VALUES ('831562', 'ENVASES Y EMPAQUES ');
+INSERT INTO gifi (accno,description) VALUES ('831564', 'PLANTACIONES AGRICOLAS Y FORESTALES ');
+INSERT INTO gifi (accno,description) VALUES ('831568', 'VIAS DE COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('831572', 'MINAS Y CANTERAS ');
+INSERT INTO gifi (accno,description) VALUES ('831576', 'POZOS ARTESIANOS ');
+INSERT INTO gifi (accno,description) VALUES ('831580', 'YACIMIENTOS ');
+INSERT INTO gifi (accno,description) VALUES ('831584', 'SEMOVIENTES ');
+INSERT INTO gifi (accno,description) VALUES ('831599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('8320', 'CREDITOS A FAVOR NO UTILIZADOS ');
+INSERT INTO gifi (accno,description) VALUES ('832005', 'PAIS ');
+INSERT INTO gifi (accno,description) VALUES ('832010', 'EXTERIOR ');
+INSERT INTO gifi (accno,description) VALUES ('8325', 'ACTIVOS CASTIGADOS ');
+INSERT INTO gifi (accno,description) VALUES ('832505', 'INVERSIONES ');
+INSERT INTO gifi (accno,description) VALUES ('832510', 'DEUDORES ');
+INSERT INTO gifi (accno,description) VALUES ('832595', 'OTROS ACTIVOS ');
+INSERT INTO gifi (accno,description) VALUES ('8330', 'TITULOS DE INVERSION AMORTIZADOS ');
+INSERT INTO gifi (accno,description) VALUES ('833005', 'BONOS ');
+INSERT INTO gifi (accno,description) VALUES ('833095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('8335', 'CAPITALIZACION POR REVALORIZACION DE PATRIMONIO ');
+INSERT INTO gifi (accno,description) VALUES ('8395', 'OTRAS CUENTAS DEUDORAS DE CONTROL ');
+INSERT INTO gifi (accno,description) VALUES ('839505', 'CHEQUES POSTFECHADOS ');
+INSERT INTO gifi (accno,description) VALUES ('839510', 'CERTIFICADOS DE DEPOSITO A TERMINO ');
+INSERT INTO gifi (accno,description) VALUES ('839515', 'CHEQUES DEVUELTOS ');
+INSERT INTO gifi (accno,description) VALUES ('839520', 'BIENES Y VALORES EN FIDEICOMISO ');
+INSERT INTO gifi (accno,description) VALUES ('839525', 'INTERESES SOBRE DEUDAS VENCIDAS ');
+INSERT INTO gifi (accno,description) VALUES ('839595', 'DIVERSAS ');
+INSERT INTO gifi (accno,description) VALUES ('839599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('8399', 'AJUSTES POR INFLACION ACTIVOS ');
+INSERT INTO gifi (accno,description) VALUES ('839905', 'INVERSIONES ');
+INSERT INTO gifi (accno,description) VALUES ('839910', 'INVENTARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('839915', 'PROPIEDADES PLANTA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('839920', 'INTANGIBLES ');
+INSERT INTO gifi (accno,description) VALUES ('839925', 'CARGOS DIFERIDOS ');
+INSERT INTO gifi (accno,description) VALUES ('839995', 'OTROS ACTIVOS ');
+INSERT INTO gifi (accno,description) VALUES ('84', 'DERECHOS CONTINGENTES POR CONTRA (CR) ');
+INSERT INTO gifi (accno,description) VALUES ('85', 'DEUDORAS FISCALES POR CONTRA (CR) ');
+INSERT INTO gifi (accno,description) VALUES ('86', 'DEUDORAS DE CONTROL POR CONTRA (CR) ');
+INSERT INTO gifi (accno,description) VALUES ('9', 'CUENTAS DE ORDEN ACREEDORAS ');
+INSERT INTO gifi (accno,description) VALUES ('91', 'RESPONSABILIDADES CONTINGENTES ');
+INSERT INTO gifi (accno,description) VALUES ('9105', 'BIENES Y VALORES RECIBIDOS EN CUSTODIA ');
+INSERT INTO gifi (accno,description) VALUES ('910505', 'VALORES MOBILIARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('910510', 'BIENES MUEBLES ');
+INSERT INTO gifi (accno,description) VALUES ('910599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('9110', 'BIENES Y VALORES RECIBIDOS EN GARANTIA ');
+INSERT INTO gifi (accno,description) VALUES ('911005', 'VALORES MOBILIARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('911010', 'BIENES MUEBLES ');
+INSERT INTO gifi (accno,description) VALUES ('911015', 'BIENES INMUEBLES ');
+INSERT INTO gifi (accno,description) VALUES ('911020', 'CONTRATOS DE GANADO EN PARTICIPACION ');
+INSERT INTO gifi (accno,description) VALUES ('911099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('9115', 'BIENES Y VALORES RECIBIDOS DE TERCEROS ');
+INSERT INTO gifi (accno,description) VALUES ('911505', 'EN ARRENDAMIENTO ');
+INSERT INTO gifi (accno,description) VALUES ('911510', 'EN PRESTAMO ');
+INSERT INTO gifi (accno,description) VALUES ('911515', 'EN DEPOSITO ');
+INSERT INTO gifi (accno,description) VALUES ('911520', 'EN CONSIGNACION ');
+INSERT INTO gifi (accno,description) VALUES ('911525', 'EN COMODATO ');
+INSERT INTO gifi (accno,description) VALUES ('911599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('9120', 'LITIGIOS Y/O DEMANDAS ');
+INSERT INTO gifi (accno,description) VALUES ('912005', 'LABORALES ');
+INSERT INTO gifi (accno,description) VALUES ('912010', 'CIVILES ');
+INSERT INTO gifi (accno,description) VALUES ('912015', 'ADMINISTRATIVOS O ARBITRALES ');
+INSERT INTO gifi (accno,description) VALUES ('912020', 'TRIBUTARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('9125', 'PROMESAS DE COMPRAVENTA ');
+INSERT INTO gifi (accno,description) VALUES ('9130', 'CONTRATOS DE ADMINISTRACION DELEGADA ');
+INSERT INTO gifi (accno,description) VALUES ('9135', 'CUENTAS EN PARTICIPACION ');
+INSERT INTO gifi (accno,description) VALUES ('9195', 'OTRAS RESPONSABILIDADES CONTINGENTES ');
+INSERT INTO gifi (accno,description) VALUES ('92', 'ACREEDORAS FISCALES ');
+INSERT INTO gifi (accno,description) VALUES ('93', 'ACREEDORAS DE CONTROL ');
+INSERT INTO gifi (accno,description) VALUES ('9305', 'CONTRATOS DE ARRENDAMIENTO FINANCIERO ');
+INSERT INTO gifi (accno,description) VALUES ('930505', 'BIENES MUEBLES ');
+INSERT INTO gifi (accno,description) VALUES ('930510', 'BIENES INMUEBLES ');
+INSERT INTO gifi (accno,description) VALUES ('939505', 'DOCUMENTOS POR COBRAR DESCONTADOS ');
+INSERT INTO gifi (accno,description) VALUES ('939510', 'CONVENIOS DE PAGO ');
+INSERT INTO gifi (accno,description) VALUES ('939515', 'CONTRATOS DE CONSTRUCCIONES E INSTALACIONES POR EJECUTAR ');
+INSERT INTO gifi (accno,description) VALUES ('939520', 'PEDIDOS COLOCADOS ');
+INSERT INTO gifi (accno,description) VALUES ('939525', 'ADJUDICACIONES PENDIENTES DE LEGALIZAR ');
+INSERT INTO gifi (accno,description) VALUES ('939530', 'RESERVA ARTICULO 3o. LEY 4/80 ');
+INSERT INTO gifi (accno,description) VALUES ('939535', 'RESERVA COSTO REPOSICION SEMOVIENTES ');
+INSERT INTO gifi (accno,description) VALUES ('939599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('9399', 'AJUSTES POR INFLACION PATRIMONIO ');
+INSERT INTO gifi (accno,description) VALUES ('939905', 'CAPITAL SOCIAL ');
+INSERT INTO gifi (accno,description) VALUES ('939910', 'SUPERAVIT DE CAPITAL ');
+INSERT INTO gifi (accno,description) VALUES ('939915', 'RESERVAS ');
+INSERT INTO gifi (accno,description) VALUES ('939925', 'DIVIDENDOS O PARTICIPACIONES DECRETADAS EN ACCIONES, CUOTAS O PARTES DE INTERES SOCIAL ');
+INSERT INTO gifi (accno,description) VALUES ('939930', 'RESULTADOS DE EJERCICIOS ANTERIORES ');
+INSERT INTO gifi (accno,description) VALUES ('94', 'RESPONSABILIDADES CONTINGENTES POR CONTRA (DB) ');
+INSERT INTO gifi (accno,description) VALUES ('95', 'ACREEDORAS FISCALES POR CONTRA (DB) ');
+INSERT INTO gifi (accno,description) VALUES ('96', 'ACREEDORAS DE CONTROL POR CONTRA (DB) ');
+INSERT INTO gifi (accno,description) VALUES ('5', 'GASTOS');
diff --git a/sql/Colombia-utf8-PUC-chart.sql b/sql/Colombia-utf8-PUC-chart.sql
new file mode 100755
index 00000000..759bea9b
--- /dev/null
+++ b/sql/Colombia-utf8-PUC-chart.sql
@@ -0,0 +1,773 @@
+--
+-- Plan único de Cuentas de Colombia, elaborado por Rene Real Hernandez (SDI S.A.), Francico Padilla (SDI S.A.),
+-- Silfredo Godoy Chavez (CaribeNet S.A.),
+-- Lourdes Mejía Martinez (CaribeNet S.A.) y Dirk Enrique Seiffert (CaribeNet S.A.)
+-- Si quieres aportar: Contactenos www.caribenet.com - info@caribenet.com
+--
+
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1', 'ACTIVO', 'H', 'A', '', '1');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('11', 'ACTIVO DISPONIBLE', 'H', 'A', '', '11');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1105', 'CAJA', 'H', 'A', '', '1105');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('110505', 'CAJA GENERAL', 'H', 'A', '', '110505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('110510', 'CAJAS MENORES', 'H', 'A', '', '110510');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1110', 'BANCOS', 'H', 'A', '', '1110');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('111005', 'BANCOS MONEDA NACIONAL', 'H', 'A', '', '111005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1120', 'CUENTAS DE AHORRO', 'H', 'A', '', '1120');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('112005', 'CUENTAS DE AHORRO EN BANCOS', 'H', 'A', '', '112005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('12', 'INVERSIONES', 'H', 'A', '', '12');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1205', 'ACCIONES', 'H', 'A', '', '1205');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1210', 'CUOTAS PARTES DE INTERES SOCIAL', 'H', 'A', '', '1210');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1215', 'BONOS', 'H', 'A', '', '1215');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1220', 'CEDULAS', 'H', 'A', '', '1220');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1225', 'CERTIFICADOS', 'H', 'A', '', '1225');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1230', 'PAPELES COMERCIALES', 'H', 'A', '', '1230');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1235', 'TITULOS', 'H', 'A', '', '1235');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1240', 'ACEPTACIONES BANCARIAS O FINANCI', 'H', 'A', '', '1240');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1245', 'DERECHOS FIDUCIARIOS', 'H', 'A', '', '1245');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('13', 'CUENTAS POR COBRAR', 'H', 'A', '', '13');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1305', 'CUENTAS POR COBRAR CLIENTES', 'H', 'A', '', '1305');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('130505', 'CLIENTES NACIONALES', 'H', 'A', '', '130505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('130510', 'CLIENTES DEL EXTERIOR', 'H', 'A', '', '130510');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1310', 'CUENTAS CORRIENTES COMERCIALES', 'H', 'A', '', '1310');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1330', 'ANTICIPO Y AVANCES', 'H', 'A', '', '1330');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('133005', 'ANTICIPO A PROVEEDORES', 'H', 'A', '', '133005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('133010', 'ANTICIPO A CONTRATISTAS', 'H', 'A', '', '133010');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('133015', 'ANTICIPO A TRABAJADORES', 'H', 'A', '', '133015');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1340', 'PROMESAS DE COMPRAVENTA', 'H', 'A', '', '1340');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('134005', 'DE BIENES RAICES', 'H', 'A', '', '134005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1340050001', 'Promesas Compra Venta Bienes Rai', 'A', 'A', '', '1340050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1345', 'INGRESOS POR COBRAR', 'H', 'A', '', '1345');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1350', 'RETENCIONES SOBRE CONTRATOS', 'H', 'A', '', '1350');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('135005', 'DE CONTRATOS DE CONSTRUCCION', 'H', 'A', '', '135005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('135010', 'DE PRESTACION DE SERVICIOS', 'H', 'A', '', '135010');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('135095', 'RETENCION SOBRE OTROS CONTRATOS', 'H', 'A', '', '135095');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1355', 'ANTICIPO DE IMPUESTOS', 'H', 'A', '', '1355');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('135505', 'ANTICIPO DE IMPUESTO DE RENTA', 'H', 'A', '', '135505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1355050001', 'Anticipo de Impuesto de Renta', 'A', 'A', '', '1355050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('135510', 'ANTICIPO DE IMPTO DE IND. Y CCIO', 'H', 'A', '', '135510');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1355100001', 'Anticipo de Industria y Comercio', 'A', 'A', '', '1355100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('135515', 'RETENCION EN LA FUENTE', 'H', 'A', '', '135515');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1355150002', 'Retefuente 10% Honorarios', 'A', 'A', '', '1355150002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1355150004', 'Retefuente Alquiler Bienes R. 4%', 'A', 'A', '', '1355150004');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1355150005', 'Retefuente Obras Civiles 1%', 'A', 'A', '', '1355150005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1355150006', 'Retefuente 6% servicios', 'A', 'A', '', '1355150006');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1355150007', 'Retencion en la fuente 3.5%', 'A', 'A', '', '1355150007');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('135517', 'IMPUESTO A LAS VENTAS RETENIDO', 'H', 'A', '', '135517');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('135518', 'IMPUESTO DE IND. Y CCIO RETENIDO', 'H', 'A', '', '135518');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1355180001', 'Ica Retenido', 'A', 'A', '', '1355180001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('135520', 'SOBRANTE EN LIQUIDACION PRIVADA', 'H', 'A', '', '135520');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1355200001', 'Saldo a Favor en Renta', 'A', 'A', '', '1355200001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1355200002', 'Sobrante en Declaracion de IVA', 'A', 'A', '', '1355200002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1380', 'DEUDORES VARIOS', 'H', 'A', '', '1380');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('138020', 'CUENTAS POR COBRAR A TERCEROS', 'H', 'A', '', '138020');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1380200001', 'Cuentas por Cobrar a Terceros', 'A', 'A', '', '1380200001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('138095', 'OTROS DEUDORES VARIOS', 'H', 'A', '', '138095');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1380950001', 'Deudores Varios Otros', 'A', 'A', '', '1380950001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1390', 'DEUDAS DE DIFICIL COBRO', 'H', 'A', '', '1390');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1399', 'PROVISIONES', 'H', 'A', '', '1399');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('139905', 'PROVISION CLIENTES', 'H', 'A', '', '139905');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1399050001', 'Provision cartera Dificil Cobro', 'A', 'A', '', '1399050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('14', 'INVENTARIOS', 'H', 'A', '', '14');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1410', 'PRODUCTOS EN PROCESO', 'H', 'A', '', '1410');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('141005', 'PRODUCTOS EN PROCESO', 'H', 'A', '', '141005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('141099', 'AJ. POR INFLACION INV. EN PROCES', 'H', 'A', '', '141099');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1415', 'OBRAS DE CONSTRUCCION EN CURSO', 'H', 'A', '', '1415');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1420', 'CONTRATOS EN EJECUCION', 'H', 'A', '', '1420');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('142099', 'AJ.POR INFLACION CTOS EN EJECUCI', 'H', 'A', '', '142099');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1430', 'PRODUCTOS TERMINADOS', 'H', 'A', '', '1430');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('143005', 'PRODUCTOS MANUFACTURADOS', 'H', 'A', '', '143005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('143099', 'AJ.POR INFLACION INV.PROD.TERMIN', 'H', 'A', '', '143099');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1435', 'MERCANCIAS NO FABRICADAS', 'H', 'A', '', '1435');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('143505', 'MCIA NO FABRICADA POR LA EMPRESA', 'H', 'A', '', '143505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('143599', 'AJ.POR INFL.MCIA NO FAB.EMPRESA', 'H', 'A', '', '143599');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1465', 'INVENTARIOS EN TRANSITO', 'H', 'A', '', '1465');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('146505', 'INVENTARIOS EN TRANSITO', 'H', 'A', '', '146505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('146599', 'AJ.POR INFLACION INV.EN TRANSITO', 'H', 'A', '', '146599');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('15', 'PROPIEDAD PLANTA Y EQUIPO', 'H', 'A', '', '15');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1504', 'TERRENOS', 'H', 'A', '', '1504');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1508', 'CONSTRUCCIONES EN CURSO', 'H', 'A', '', '1508');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1512', 'MAQUINARIA Y EQUIPO EN MONTAJE', 'H', 'A', '', '1512');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1516', 'CONSTRUCCIONES Y EDIFICACIONES', 'H', 'A', '', '1516');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('151610', 'OFICINAS', 'H', 'A', '', '151610');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('151699', 'AJUSTES POR INFLACION CONSTRUCCI', 'H', 'A', '', '151699');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('15169910', 'AJ. INFL. OFICINAS - LOCALES', 'H', 'A', '', '15169910');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1520', 'MAQUINARIA Y EQUIPO', 'H', 'A', '', '1520');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('152001', 'CONTRATOS YOPAL', 'H', 'A', '', '152001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('152002', 'BODEGA', 'H', 'A', '', '152002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('152099', 'AJUSTES POR INFLACION', 'H', 'A', '', '152099');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('15209902', 'AJUSTES POR INFLACION EQ.BODEGA', 'H', 'A', '', '15209902');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1524', 'EQUIPOS DE OFICINA', 'H', 'A', '', '1524');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('152405', 'MUEBLES Y ENSERES', 'H', 'A', '', '152405');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('152410', 'EQUIPOS', 'H', 'A', '', '152410');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('152499', 'AJUSTES POR INFLACION', 'H', 'A', '', '152499');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('15249910', 'AJUSTES POR INFLACION', 'H', 'A', '', '15249910');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1528', 'EQUIPOS DE COMPUTACION Y COMUNIC', 'H', 'A', '', '1528');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('152805', 'EQUIPOS DE PROCESAMIENTO DE DATO', 'H', 'A', '', '152805');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1528050001', 'Cinco Computadores', 'A', 'A', '', '1528050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('152899', 'AJUSTES POR INFLACION', 'H', 'A', '', '152899');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('15289905', 'AJ. INFL. EQ. PROCESAMIENTO DATO', 'H', 'A', '', '15289905');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1528990501', 'Aj. por Inflac. Cinco Computador', 'A', 'A', '', '1528990501');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1540', 'FLOTA Y EQUIPO DE TRANSPORTE', 'H', 'A', '', '1540');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('154005', 'AUTOS, CAMIONETAS Y CAMPEROS', 'H', 'A', '', '154005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('154099', 'AJUSTES POR INFLACION', 'H', 'A', '', '154099');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('15409905', 'AJ. INFL. AUTOS CAMPEROS CMIONET', 'H', 'A', '', '15409905');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1540990501', 'Aj. Infl. Autos y Camperos', 'A', 'A', '', '1540990501');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1592', 'DEPRECIACION ACUMULADA', 'H', 'A', '', '1592');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('159205', 'DEPREC.DE CONSTRUCCIONES Y EDIFI', 'H', 'A', '', '159205');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('159210', 'DEPREC. MAQUINARIA Y EQUIPO', 'H', 'A', '', '159210');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('159215', 'DEPRECIACION EQUIPO DE OFICINA', 'H', 'A', '', '159215');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('159220', 'DEPRECIACION EQ. COMPUTACION Y C', 'H', 'A', '', '159220');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1592200001', 'Depreciacion Cinco Computadores', 'A', 'A', '', '1592200001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('159235', 'DEPRECIACION FLOTA DE TRANSPORTE', 'H', 'A', '', '159235');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('159299', 'AJUSTES POR INFLACION', 'H', 'A', '', '159299');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1592990005', 'Aj.Infl. Construc. y Edificacion', 'A', 'A', '', '1592990005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1592990010', 'Aj.Infl. Maquinaria y Equipo', 'A', 'A', '', '1592990010');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1592990015', 'Aj. Infl. Equipos de Oficina', 'A', 'A', '', '1592990015');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1592990020', 'Aj. Infl. Eq. Computac. y Comuni', 'A', 'A', '', '1592990020');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1592990035', 'Aj. Infl. Flota y Eq. de transpo', 'A', 'A', '', '1592990035');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('19', 'VALORIZACIONES', 'H', 'A', '', '19');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1905', 'VALORIZACIONES DE INVERSIONES', 'H', 'A', '', '1905');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1910', 'DE PROPIEDAD PLANTA Y EQUIPOS', 'H', 'A', '', '1910');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('191008', 'DE CONSTRUCCIONES Y EDIFICACIONE', 'H', 'A', '', '191008');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1995', 'VALORIZACION DE OTROS ACTIVOS', 'H', 'A', '', '1995');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2', 'PASIVOS', 'H', 'L', '', '2');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('21', 'OBLIGACIONES FINANCIERAS', 'H', 'L', '', '21');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2105', 'BANCOS NACIONALES', 'H', 'L', '', '2105');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('210505', 'SOBREGIROS', 'H', 'L', '', '210505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2105050001', 'Sobregiros Bancarios', 'A', 'L', '', '2105050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('210510', 'PAGARES', 'H', 'L', '', '210510');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2105100001', 'Pagares', 'A', 'L', '', '2105100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2130', 'ENTIDADES FINANCIERAS DEL EXTERI', 'H', 'L', '', '2130');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2145', 'OBLIGACIONES GUBERNAMENTALES', 'H', 'L', '', '2145');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2195', 'OTRAS OBLIGACIONES', 'H', 'L', '', '2195');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('219505', 'OBLIGACIONES CON PARTICULARES', 'H', 'L', '', '219505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2195050001', 'Otras obligaciones con Particula', 'A', 'L', '', '2195050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('219510', 'OBLIGACIONES COMPA?IAS VINCULADA', 'H', 'L', '', '219510');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('22', 'PROVEEDORES', 'H', 'L', '', '22');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2205', 'PROVEEDORES NACIONALES', 'H', 'L', '', '2205');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('220505', 'PROVEEDORES NACIONALES', 'H', 'L', '', '220505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('23', 'CUENTAS POR PAGAR', 'H', 'L', '', '23');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2320', 'CUENTAS POR PAGAR A CONTRATISTAS', 'H', 'L', '', '2320');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('232005', 'CUENTAS POR PAGAR A CONTRATISTAS', 'H', 'L', '', '232005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2335', 'COSTOS Y GASTOS POR PAGAR', 'H', 'L', '', '2335');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('233505', 'GASTOS FINANCIEROS', 'H', 'L', '', '233505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('233510', 'GASTOS LEGALES', 'H', 'L', '', '233510');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('233515', 'LIBROS SUSCRIPCIONES PERIODICOS', 'H', 'L', '', '233515');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('233520', 'COMISIONES', 'H', 'L', '', '233520');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('233525', 'HONORARIOS', 'H', 'L', '', '233525');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('233530', 'SERVICIOS TECNICOS', 'H', 'L', '', '233530');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('233535', 'SERVICIOS DE MANTENIMIENTO', 'H', 'L', '', '233535');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('233540', 'ARRENDAMIENTOS', 'H', 'L', '', '233540');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('233545', 'TRANSPORTES FLETES Y ACARREOS', 'H', 'L', '', '233545');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('233550', 'SERVICIOS PUBLICOS', 'H', 'L', '', '233550');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('233555', 'SEGUROS', 'H', 'L', '', '233555');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('233560', 'GASTOS DE VIAJE', 'H', 'L', '', '233560');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('233565', 'GASTOS DE REPRESENTACION Y RELAC', 'H', 'L', '', '233565');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('233570', 'SERVICIOS ADUANEROS', 'H', 'L', '', '233570');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('233595', 'OTROS COSTOS Y GASTOS POR PAGAR', 'H', 'L', '', '233595');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2355', 'DEUDAS CON SOCIOS Y ACCIONISTAS', 'H', 'L', '', '2355');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('235505', 'ACCIONISTAS', 'H', 'L', '', '235505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('235510', 'SOCIOS', 'H', 'L', '', '235510');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2360', 'DIVIDENDOS O PARTICIPACION POR P', 'H', 'L', '', '2360');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('236005', 'DIVIDENDOS POR PAGAR', 'H', 'L', '', '236005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('236010', 'PARTICIPACIONES POR PAGAR', 'H', 'L', '', '236010');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2365', 'RETENCION EN LA FUENTE', 'H', 'L', '', '2365');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('236505', 'SALARIOS Y PAGOS LABORALES', 'H', 'L', '', '236505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('236510', 'DIVIDENDO Y/O PARTICIPACIONES', 'H', 'L', '', '236510');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('236515', 'HONORARIOS', 'H', 'L', '', '236515');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('236520', 'COMISIONES', 'H', 'L', '', '236520');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('236525', 'SERVICIOS', 'H', 'L', '', '236525');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2365250002', 'Servicios Hoteleros 3.5%', 'A', 'L', '', '2365250002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('236530', 'ARRENDAMIENTOS', 'H', 'L', '', '236530');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2365300002', 'Arriendo Inmuebles 4%', 'A', 'L', '', '2365300002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('236535', 'RENDIMIENTOS FINANCIERSO', 'H', 'L', '', '236535');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('236540', 'RETENCION POR COMPRAS', 'H', 'L', '', '236540');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2368', 'IMPTO DE IND. Y CCIO RETENIDO', 'H', 'L', '', '2368');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('236801', 'SECTOR INDUSTRIAL', 'H', 'L', '', '236801');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2368010003', 'Demas Activ. Industriales 7xmil', 'A', 'L', '', '2368010003');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('236802', 'SECTOR COMERCIAL', 'H', 'L', '', '236802');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2368020004', 'Demas Activ. Comerciales 7xmil', 'A', 'L', '', '2368020004');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('236803', 'SECTOR SERVICIOS', 'H', 'L', '', '236803');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2368030001', 'Retencin ICA 6xMil', 'A', 'L', '', '2368030001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2368030009', 'Demas Activ. Servicios 8xmil', 'A', 'L', '', '2368030009');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2370', 'RETENCIONES Y APORTES DE NOMINA', 'H', 'L', '', '2370');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('237005', 'APORTES A EPS', 'H', 'L', '', '237005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2370050001', 'Aportes a EPS', 'A', 'L', '', '2370050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('237006', 'APORTES A ARP', 'H', 'L', '', '237006');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('237010', 'APORTES A IDBF, SENA Y CAJAS COM', 'H', 'L', '', '237010');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2380', 'ACREEDORES VARIOS', 'H', 'L', '', '2380');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('238030', 'FONDOS DE CESANTIAS Y/O PENSION', 'H', 'L', '', '238030');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('238095', 'VARIOS', 'H', 'L', '', '238095');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('24', 'IMPUESTOS GRAVAMENES Y TASAS', 'H', 'L', '', '24');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2404', 'IMPUESTO DE RENTA', 'H', 'L', '', '2404');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('240405', 'VIGENCIA FISCAL CORRIENTE', 'H', 'L', '', '240405');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2404050001', 'IMPORENTA VIGENCIA ACTUAL', 'A', 'L', '', '2404050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('240410', 'VIGENCIAS FISCALES ANTERIORES', 'H', 'L', '', '240410');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2404100001', 'IMPORENTA VIGENCIA ANTERIORES', 'A', 'L', '', '2404100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2408', 'IMPUESTO A LAS VENTAS POR PAGAR', 'H', 'L', '', '2408');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('240805', 'IVA DESCONTABLE', 'H', 'L', '', '240805');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('240810', 'IVA GENERADO EN VENTAS', 'H', 'L', '', '240810');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('240815', 'IMPUESTOS POR PAGAR ANTERIORES', 'H', 'L', '', '240815');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2408150001', 'ViGencia Fiscal Anterior', 'A', 'L', '', '2408150001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2412', 'IMPUESTO DE IND. Y COMERCIO', 'H', 'L', '', '2412');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('241205', 'VIGENCIA FISCAL CORRIENTE', 'H', 'L', '', '241205');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2412050001', 'ICA POR PAGAR', 'A', 'L', '', '2412050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('241210', 'VIGENCIAS FISCALES ANTERIORES', 'H', 'L', '', '241210');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('25', 'OBLIGACIONES LABORALES', 'H', 'L', '', '25');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2505', 'SALARIOS POR PAGAR', 'H', 'L', '', '2505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('250505', 'NOMINA POR PAGAR', 'H', 'L', '', '250505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2510', 'CESANTIAS CONSOLIDADAS', 'H', 'L', '', '2510');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2515', 'INTERESES SOBRE CESANTIAS', 'H', 'L', '', '2515');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2520', 'PRIMA DE SERVICIOS', 'H', 'L', '', '2520');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2525', 'VACACIONES CONSOLIDADAS', 'H', 'L', '', '2525');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2530', 'PRESTACIONES EXTRALEGALES', 'H', 'L', '', '2530');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('26', 'PASIVOS ESTIMADOS Y PROVISIONES', 'H', 'L', '', '26');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2605', 'PARA COSTOS Y GASTOS', 'H', 'L', '', '2605');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('260515', 'HONORARIOS', 'H', 'L', '', '260515');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('260525', 'TRANSPORTES FLETES Y ACARREOS', 'H', 'L', '', '260525');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('260530', 'GASTOS DE VIAJE', 'H', 'L', '', '260530');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2610', 'PARA OBLIGACIONES LABORALES', 'H', 'L', '', '2610');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('261005', 'CESANTIAS', 'H', 'L', '', '261005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('261010', 'INTERESES SOBRE CESANTIAS', 'H', 'L', '', '261010');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('261015', 'VACACIONES', 'H', 'L', '', '261015');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('261020', 'PRIMA DE SERVICIOS', 'H', 'L', '', '261020');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2615', 'PARA OBLIGACIONES FISCALES', 'H', 'L', '', '2615');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('261505', 'DE RENTA Y COMPLEMENTARIOS', 'H', 'L', '', '261505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2615050001', 'Impuesto de Renta y Complementar', 'A', 'L', '', '2615050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('261510', 'DE INDUSTRIA Y COMERCIO', 'H', 'L', '', '261510');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('261595', 'OTROS', 'H', 'L', '', '261595');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2630', 'PARA MANTENIMIENTO Y REPARACION', 'H', 'L', '', '2630');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2635', 'PARA CONTINGENCIAS', 'H', 'L', '', '2635');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('263505', 'MULTAS SANCIONES Y LITIGIOS', 'H', 'L', '', '263505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('263510', 'INTERESES POR MULTAS Y SANCIONES', 'H', 'L', '', '263510');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('28', 'OTROS PASIVOS', 'H', 'L', '', '28');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2805', 'ANTICIPOS Y AVANCES RECIBIDOS', 'H', 'L', '', '2805');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('280505', 'DE CLIENTES', 'H', 'L', '', '280505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('280510', 'SOBRE CONTRATOS', 'H', 'L', '', '280510');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2805100001', 'Anticipo Recibido Sobre Contrato', 'A', 'L', '', '2805100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('280515', 'PARA OBRAS EN PROCESO', 'H', 'L', '', '280515');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2815', 'INGRESOS RECIBIDOS PARA TERCEROS', 'H', 'L', '', '2815');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('281505', 'VALORES RECIBIDOS PARA TERCEROS', 'H', 'L', '', '281505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('281510', 'VENTA POR CUENTA DE TERCEROS', 'H', 'L', '', '281510');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2825', 'RETENCION A TERCEROS SOBRE CONTR', 'H', 'L', '', '2825');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('282505', 'CUMPLIMIENTO OBLIGACIONES LABORA', 'H', 'L', '', '282505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3', 'PATRIMONIO', 'H', 'Q', '', '3');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('31', 'CAPITAL SOCIAL', 'H', 'Q', '', '31');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3105', 'CAPITAL SUSCRITO Y PAGADO', 'H', 'Q', '', '3105');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('310505', 'CAPITAL AUTORIZADO', 'H', 'Q', '', '310505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3105050001', 'Capital Suscrito y Pagado', 'A', 'Q', '', '3105050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('310510', 'CAPITAL POR SUSCRIBIR (DB)', 'H', 'Q', '', '310510');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('310515', 'CAPITAL SUSCRITO POR COBRAR (DB)', 'H', 'Q', '', '310515');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3115', 'APORTES SOCIALES', 'H', 'Q', '', '3115');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('33', 'RESERVAS', 'H', 'Q', '', '33');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3305', 'RESERVAS OBLIGATORIAS', 'H', 'Q', '', '3305');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('330505', 'RESERVA LEGAL', 'H', 'Q', '', '330505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3305050001', 'Reserva Legal', 'A', 'Q', '', '3305050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3310', 'RESERVAS ESTATUTARIAS', 'H', 'Q', '', '3310');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3315', 'RESERVAS OCASIONALES', 'H', 'Q', '', '3315');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('34', 'REVALORIZACION DEL PATRIMONIO', 'H', 'Q', '', '34');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3405', 'AJUSTES POR INFLACION', 'H', 'Q', '', '3405');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('340505', 'DE CAPITAL SOCIAL', 'H', 'Q', '', '340505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3405050001', 'AxI CAPITAL', 'A', 'Q', '', '3405050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('340510', 'DE SUPERAVIT DE CAPITAL', 'H', 'Q', '', '340510');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('340515', 'DE RESERVAS', 'H', 'Q', '', '340515');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3405150001', 'AxI RESERVA LEGAL', 'A', 'Q', '', '3405150001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('340520', 'DE RESULTADO DE EJERC. ANTERIORE', 'H', 'Q', '', '340520');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3405200001', 'AxI RESULTADOS ANTERIORES', 'A', 'Q', '', '3405200001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('340525', 'DE ACTIVOS DE PERIODO IMPRODUCTI', 'H', 'Q', '', '340525');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('340530', 'DE SANEAMIENTO FISCAL', 'H', 'Q', '', '340530');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('340535', 'DE AJUSTES DECRETO 3019 DE 1989', 'H', 'Q', '', '340535');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('340540', 'DE DIVIDENDOS Y PARTICIPACIONES', 'H', 'Q', '', '340540');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('340545', 'SUPERAVIT METODO DE PARTICIPACIO', 'H', 'Q', '', '340545');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('36', 'RESULTADOS DE EJERCICIO', 'H', 'Q', '', '36');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3605', 'UTILIDAD DEL EJERCICIO', 'H', 'Q', '', '3605');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('360505', 'UTILIDAD DEL EJERCICIO', 'H', 'Q', '', '360505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3605050001', 'Utilidad del Ejercicio', 'A', 'Q', '', '3605050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3605050002', 'Utilidad de Ajustes por Inflacio', 'A', 'Q', '', '3605050002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3610', 'PERDIDAS DEL EJERCICIO', 'H', 'Q', '', '3610');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('361005', 'PERDIDA DEL EJERCICIO', 'H', 'Q', '', '361005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3610050001', 'Perdida del Ejercicio', 'A', 'Q', '', '3610050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('37', 'RESULTADOS EJERCICIOS ANRERIORES', 'H', 'Q', '', '37');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3705', 'UTILIDADES ACUMULADAS', 'H', 'Q', '', '3705');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('370510', 'UTILIDADES ACUMULADAS', 'H', 'Q', '', '370510');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3705100001', 'Utilidades Acumuladas', 'A', 'Q', '', '3705100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3710', 'PERDIDAS ACUMULADAS', 'H', 'Q', '', '3710');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('371010', 'PERDIDAS ACUMULADAS', 'H', 'Q', '', '371010');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3710100001', 'Perdidas Acumuladas', 'A', 'Q', '', '3710100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('38', 'SUPERAVIT POR VALORIZACIONES', 'H', 'Q', '', '38');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3805', 'DE INVERSIONES', 'H', 'Q', '', '3805');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('380505', 'DE ACCIONES', 'H', 'Q', '', '380505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('380510', 'CUOTAS O PARTES DE INTERES SOCIA', 'H', 'Q', '', '380510');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3810', 'DE PROPIEDAD PLANTA Y EQUIPO', 'H', 'Q', '', '3810');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('381008', 'CONSTRUCCIONES Y EDIFICACIONES', 'H', 'Q', '', '381008');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3810080001', 'Superavit por Valorizacion C y E', 'A', 'Q', '', '3810080001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3895', 'DE OTROS ACTIVOS', 'H', 'Q', '', '3895');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4', 'INGRESOS', 'H', 'I', '', '4');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('41', 'INGRESOS OPERACIONALES', 'H', 'I', '', '41');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4120', 'INDUSTRIA MANUFACTURERA', 'H', 'I', '', '4120');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4130', 'CONSTRUCCION', 'H', 'I', '', '4130');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('413005', 'PREPARACION DE TERRENOS', 'H', 'I', '', '413005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('413010', 'CONSTRUCCION Y OBRAS CIVILES', 'H', 'I', '', '413010');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('413025', 'ALQUILER DE EQUIPOS CON OPERARIO', 'H', 'I', '', '413025');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('413095', 'ACTIVIDADES CONEXAS', 'H', 'I', '', '413095');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4135', 'COMERCIO AL POR MAYOR', 'H', 'I', '', '4135');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('413595', 'ACTIVIDADES CONEXAS', 'H', 'I', '', '413595');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4150', 'ACTIVIDAD FINANCIERA', 'H', 'I', '', '4150');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('415030', 'COMISIONES', 'H', 'I', '', '415030');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4175', 'DEVOLUCIONES EN VENTAS', 'H', 'I', '', '4175');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('417505', 'DEVOLUCIONES EN VENTAS', 'H', 'I', '', '417505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4175050001', 'Devoluciones en Ventas', 'A', 'I', '', '4175050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4175050002', 'Descuento en Ventas', 'A', 'I', '', '4175050002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('42', 'INGRESOS NO OPERACIONALES', 'H', 'I', '', '42');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4205', 'OTRAS VENTAS', 'H', 'I', '', '4205');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('420505', 'MATERIA PRIMA', 'H', 'I', '', '420505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('420510', 'MATERIAL DE DESECHO', 'H', 'I', '', '420510');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4210', 'INGRESOS FINANCIEROS', 'H', 'I', '', '4210');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('421005', 'INTERESES', 'H', 'I', '', '421005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('421040', 'DESCUENTOS COMERCIALES CONDICION', 'H', 'I', '', '421040');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4210400001', 'Descuentos Financieros', 'A', 'I', '', '4210400001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4215', 'DIVIDENDOS Y PARTICIPACIONES', 'H', 'I', '', '4215');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4220', 'ARRENDAMIENTOS', 'H', 'I', '', '4220');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('422010', 'CONSTRUCCIONES Y EDIFICACIONES', 'H', 'I', '', '422010');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('422015', 'MAQUINARIA Y EQUIPOS', 'H', 'I', '', '422015');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4225', 'COMISIONES', 'H', 'I', '', '4225');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4230', 'HONORARIOS', 'H', 'I', '', '4230');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4235', 'SERVICIOS', 'H', 'I', '', '4235');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('423595', 'OTROS SERVICIOS', 'H', 'I', '', '423595');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4240', 'UTILIDAD EN VENTA DE INVERSIONES', 'H', 'I', '', '4240');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4245', 'UTIL.EN VENTA PROP.PLANTA Y EQUI', 'H', 'I', '', '4245');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4250', 'RECUPERACIONES', 'H', 'I', '', '4250');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('425005', 'DEUDAS MALAS', 'H', 'I', '', '425005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('425015', 'RECLAMOS', 'H', 'I', '', '425015');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4255', 'INDEMNIZACIONES', 'H', 'I', '', '4255');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4260', 'PARTICIPACION EN CONCESIONES', 'H', 'I', '', '4260');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4265', 'INGRESOS DE EJERCICIOS ANTERIORE', 'H', 'I', '', '4265');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4275', 'DEVOLUCIONES EN OTRAS VENTAS', 'H', 'I', '', '4275');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4295', 'DIVERSOS', 'H', 'I', '', '4295');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('429503', 'CERT', 'H', 'I', '', '429503');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('429505', 'APROVECHAMIENTOS', 'H', 'I', '', '429505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('429507', 'AUXILIOS', 'H', 'I', '', '429507');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('429533', 'MULTAS Y RECARGOS', 'H', 'I', '', '429533');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('429535', 'PREAVISOS DESCONTADOS', 'H', 'I', '', '429535');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('429537', 'RECLAMOS', 'H', 'I', '', '429537');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('429553', 'SOBRANTES DE CAJA', 'H', 'I', '', '429553');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('429581', 'AJUSTE AL PESO', 'H', 'I', '', '429581');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('429583', 'LLAMADAS TELEFONICAS', 'H', 'I', '', '429583');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('47', 'AJUSTES POR INFLACION', 'H', 'I', '', '47');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4705', 'CORRECCION MONETARIA', 'H', 'I', '', '4705');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('470505', 'INVERSIONES (CR)', 'H', 'I', '', '470505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('470510', 'INVENTARIOS (CR)', 'H', 'I', '', '470510');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4705100005', 'Inventario Materia Prima', 'A', 'I', '', '4705100005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4705100010', 'Inventario Productos en Proceso', 'A', 'I', '', '4705100010');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4705100015', 'Obras de construccion en curso', 'A', 'I', '', '4705100015');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4705100020', 'Inventario contratos en ejecucio', 'A', 'I', '', '4705100020');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4705100030', 'Inventario Producto terminado', 'A', 'I', '', '4705100030');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4705100035', 'Inv. Mercancia no Fabricada', 'A', 'I', '', '4705100035');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4705100065', 'Inventarios en transito', 'A', 'I', '', '4705100065');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('470515', 'PROPIEDAD PLANTA Y EQUIPO (CR)', 'H', 'I', '', '470515');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4705150001', 'Terrenos', 'A', 'I', '', '4705150001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4705150003', 'Construcciones en Curso', 'A', 'I', '', '4705150003');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4705150004', 'Maquinaria y Equipo en Montaje', 'A', 'I', '', '4705150004');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4705150005', 'Construcciones y Edificaciones', 'A', 'I', '', '4705150005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4705150006', 'Maquinaria y Equipos', 'A', 'I', '', '4705150006');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4705150007', 'Equipos de Oficina', 'A', 'I', '', '4705150007');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4705150008', 'Equipos de Computacion y comunic', 'A', 'I', '', '4705150008');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4705150011', 'Flota y Equipo de transporte', 'A', 'I', '', '4705150011');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('470540', 'PATRIMONIO', 'H', 'I', '', '470540');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4705400001', 'Aj. por Infl. Patrimonio', 'A', 'I', '', '4705400001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('470545', 'DEPRECIACION ACUMULADA (DB)', 'H', 'I', '', '470545');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4705450001', 'Depreciacion Acumulada (DB)', 'A', 'I', '', '4705450001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('470550', 'DEPRECIACION DIFERIDA (CR)', 'H', 'I', '', '470550');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('470560', 'AMORTIZACION ACUMULADA (DB)', 'H', 'I', '', '470560');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5', 'GASTOS', 'H', 'E', '', '5');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('51', 'GASTOS OPERACIONALES DE ADMON.', 'H', 'E', '', '51');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5105', 'GASTOS DE PERSONAL', 'H', 'E', '', '5105');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('510548', 'BONIFICACION', 'H', 'E', '', '510548');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('52', 'GASTOS OPERACIONALES DE VENTAS', 'H', 'E', '', '52');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5205', 'GASTOS DE PERSONAL', 'H', 'E', '', '5205');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('520506', 'SUELDOS', 'H', 'E', '', '520506');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('520527', 'AUXILIO DE TRANSPORTE', 'H', 'E', '', '520527');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('520530', 'CESANTIAS', 'H', 'E', '', '520530');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('520533', 'INTERESES SOBRE CESANTIAS', 'H', 'E', '', '520533');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5205330001', 'Intereses Sobre Cesantias', 'A', 'E', '', '5205330001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('520536', 'PRIMAS DE SERVICIOS', 'H', 'E', '', '520536');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('520539', 'VACACIONES', 'H', 'E', '', '520539');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('520548', 'BONIFICACIONES', 'H', 'E', '', '520548');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5205480001', 'Bonificaciones a Empleados', 'A', 'E', '', '5205480001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('520563', 'CAPACITACION AL PERSONAL', 'H', 'E', '', '520563');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5205630001', 'Capacitacion al Personal', 'A', 'E', '', '5205630001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('520568', 'APORTES ARP', 'H', 'E', '', '520568');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('520569', 'APORTES EPS', 'H', 'E', '', '520569');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('520570', 'APORTES A FONDO DE PENSIONES/CES', 'H', 'E', '', '520570');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('520572', 'APORTES CAJAS DE COMPENSACION', 'H', 'E', '', '520572');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('520575', 'APORTES ICBF', 'H', 'E', '', '520575');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('520578', 'APORTES SENA', 'H', 'E', '', '520578');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('520595', 'OTROS GASTOS DE PERSONAL', 'H', 'E', '', '520595');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5205950001', 'Otros Gastos de personal', 'A', 'E', '', '5205950001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5210', 'HONORARIOS', 'H', 'E', '', '5210');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('521005', 'JUNTA DIRECTIVA', 'H', 'E', '', '521005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('521010', 'REVISORIA FISCAL', 'H', 'E', '', '521010');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('521015', 'AUDITORIA EXTERNA', 'H', 'E', '', '521015');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('521025', 'ASESORIA JURIDICA', 'H', 'E', '', '521025');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('521030', 'ASESORIA FINANCIERA', 'H', 'E', '', '521030');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('521035', 'ASESORIA TECNICA', 'H', 'E', '', '521035');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('521095', 'OTROS HONORARIOS', 'H', 'E', '', '521095');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5210950001', 'Estudio y Diseño de Planos', 'A', 'E', '', '5210950001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5215', 'IMPUESTOS', 'H', 'E', '', '5215');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('521505', 'INDUSTRIA Y COMERCIO', 'H', 'E', '', '521505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5215050001', 'Impuesto de Industria y Comercio', 'A', 'E', '', '5215050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('521510', 'DE TIMBRES', 'H', 'E', '', '521510');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5215100001', 'Impuesto de Timbre', 'A', 'E', '', '5215100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('521515', 'IMPUESTOS A LA PROPIEDAD RAIZ', 'H', 'E', '', '521515');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5215200001', 'DERECHOS SOBRE INSTRUMENTOS PUBL', 'A', 'E', '', '5215200001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('521540', 'IMPUESTOS SOBRE VEHICULOS', 'H', 'E', '', '521540');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5215400001', 'Impuestos Sobre Vehiculos', 'A', 'E', '', '5215400001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('521595', 'OTROS IMPUESTOS', 'H', 'E', '', '521595');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5220', 'ARRENDAMIENTOS', 'H', 'E', '', '5220');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('522010', 'CONSTRUCCIONES U EDIFICACIONES', 'H', 'E', '', '522010');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('522015', 'MAQUINARIA Y EQUIPO', 'H', 'E', '', '522015');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5220150001', 'Arriendo Maquinaria y Equipo', 'A', 'E', '', '5220150001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('522025', 'EQUIPOS DE COMPUTACION Y COMUNIC', 'H', 'E', '', '522025');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5220250001', 'Alquiler Eq. Computacion y Comun', 'A', 'E', '', '5220250001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('522040', 'FLOTA Y EQUIPO DE TRANSPORTE', 'H', 'E', '', '522040');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5220400001', 'Alquiler de Vehiculos y Camiones', 'A', 'E', '', '5220400001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5230', 'SEGUROS', 'H', 'E', '', '5230');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('523005', 'MANEJO', 'H', 'E', '', '523005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('523010', 'CUMPLIMIENTO', 'H', 'E', '', '523010');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5230100001', 'Polizas de Cumplimiento', 'A', 'E', '', '5230100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('523040', 'FLOTA Y EQUIPO DE TRANSPORTE', 'H', 'E', '', '523040');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('523075', 'OBLIGATORIO ACCIDENTES DE TRANSI', 'H', 'E', '', '523075');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5235', 'SERVICIOS', 'H', 'E', '', '5235');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('523505', 'ASEO Y VIGILANCIA', 'H', 'E', '', '523505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('523515', 'ASSITENCIA TECNICA', 'H', 'E', '', '523515');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('523520', 'PROCESAMIENTO ELECTRONICO DE DAT', 'H', 'E', '', '523520');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5235200001', 'Procesamiento electronico de Dat', 'A', 'E', '', '5235200001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('523525', 'ACUEDUCTO Y ALCANTARILLADO', 'H', 'E', '', '523525');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('523530', 'ENERGIA ELECTRICA', 'H', 'E', '', '523530');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('523535', 'TELEFONO', 'H', 'E', '', '523535');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('523540', 'CORREO PORTES Y TELEGRAMAS', 'H', 'E', '', '523540');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('523545', 'FAX Y TELEX', 'H', 'E', '', '523545');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5235450001', 'fax y Telex', 'A', 'E', '', '5235450001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('523550', 'TRANSPORTES FLETES Y ACARREOS', 'H', 'E', '', '523550');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('523555', 'GAS', 'H', 'E', '', '523555');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('523560', 'PUBLICIDAD PROPAGANDA Y PROMOCIO', 'H', 'E', '', '523560');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5235600001', 'Publicidad Propaganda y Promocio', 'A', 'E', '', '5235600001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('523595', 'OTROS SERVICIOS', 'H', 'E', '', '523595');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5235950002', 'Fabricacion y Elaboracion', 'A', 'E', '', '5235950002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5235950004', 'Capacitacion a Contratistas', 'A', 'E', '', '5235950004');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5235950007', 'Digitación y archivo documentos', 'A', 'E', '', '5235950007');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5240', 'GASTOS LEGALES', 'H', 'E', '', '5240');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('524005', 'NOTARIALES', 'H', 'E', '', '524005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('524010', 'REGISTRO MERCANTIL', 'H', 'E', '', '524010');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5240100001', 'Registro Mercantil', 'A', 'E', '', '5240100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('524015', 'TRAMITES Y LICENCIAS', 'H', 'E', '', '524015');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('524095', 'OTROS GASTOS LEGALES', 'H', 'E', '', '524095');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5240950001', 'Tramite de Vehiculos', 'A', 'E', '', '5240950001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5240950003', 'Sobretasa', 'A', 'E', '', '5240950003');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5240950004', 'Dcmtos Varios en Camara Comercio', 'A', 'E', '', '5240950004');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5240950005', 'Floio para Libros Legales', 'A', 'E', '', '5240950005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5240950006', 'Impuesto para preservar la Segur', 'A', 'E', '', '5240950006');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5245', 'MANTENIMIENTO Y REPARACIONES', 'H', 'E', '', '5245');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('524510', 'CONSTRUCCIONES Y EDIFICACIONES', 'H', 'E', '', '524510');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5245100001', 'Construcciones y Edificaciones', 'A', 'E', '', '5245100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('524515', 'MAQUINARIA Y EQUIPOS', 'H', 'E', '', '524515');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5245150001', 'Equipo de Refrigeracion', 'A', 'E', '', '5245150001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5245150002', 'Equipos de Ingenieria Civil', 'A', 'E', '', '5245150002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5245150003', 'Repuestos y Herramientas', 'A', 'E', '', '5245150003');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('524520', 'EQUIPO DE OFICINA', 'H', 'E', '', '524520');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5245200001', 'Equipo de Oficina', 'A', 'E', '', '5245200001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('524525', 'EQUIPO DE COMPUTACION Y COMUNICA', 'H', 'E', '', '524525');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5245250001', 'Mtto y Rep. Eq. Computacion y Co', 'A', 'E', '', '5245250001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('524540', 'FLOTA Y EQUIPO DE TRANSPORTE', 'H', 'E', '', '524540');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5245400001', 'Mantenimiento de Vehiculos', 'A', 'E', '', '5245400001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5250', 'ADECUACION E INSTALACION', 'H', 'E', '', '5250');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('525005', 'INSTALACIONES ELECTRICAS', 'H', 'E', '', '525005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5250050001', 'Instalaciones Electricas', 'A', 'E', '', '5250050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('525010', 'ARREGLOS ORNAMENTALES', 'H', 'E', '', '525010');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('525015', 'REPARACIONES LOCATIVAS', 'H', 'E', '', '525015');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('525095', 'OTROS ADECUACIONES E INSTALACION', 'H', 'E', '', '525095');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5255', 'GASTOS DE VIAJE', 'H', 'E', '', '5255');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('525505', 'ALOJAMIENTO Y MANUTENCION', 'H', 'E', '', '525505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('525515', 'PASAJES AEREOS', 'H', 'E', '', '525515');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('525520', 'PASAJES TERRESTRES', 'H', 'E', '', '525520');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5255200001', 'Pasajes Terrestres', 'A', 'E', '', '5255200001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('525595', 'OTROS GASTOS DE VIAJE', 'H', 'E', '', '525595');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5255950002', 'Llamadas Telefonicas en Viajes', 'A', 'E', '', '5255950002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5260', 'DEPRECIACIONES', 'H', 'E', '', '5260');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('526005', 'CONSTRUCCIONES Y EDIFICACIONES', 'H', 'E', '', '526005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5260050001', 'Depreciacion Locales Tequendama', 'A', 'E', '', '5260050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('526010', 'MAQUINARIA Y EQUIPO', 'H', 'E', '', '526010');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5260100001', 'Depreciacion de maq. y Equipos', 'A', 'E', '', '5260100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('526015', 'EQUIPOS DE OFICINA', 'H', 'E', '', '526015');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5260150001', 'Depreciacion Equipos de Oficina', 'A', 'E', '', '5260150001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('526020', 'EQUIPOS DE COMPUTACION Y COMUNIC', 'H', 'E', '', '526020');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5260200001', 'Depreciacion Eq. de Computacion', 'A', 'E', '', '5260200001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('526035', 'FLOTA Y EQUIPO DE TRANSPORTE', 'H', 'E', '', '526035');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5260350001', 'Depreciacion de Vehiculos', 'A', 'E', '', '5260350001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('526099', 'AJUSTES POR INLFACION', 'H', 'E', '', '526099');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5260990005', 'Aj. Infl. Construcciones y Edif.', 'A', 'E', '', '5260990005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5260990010', 'Aj. Infl. Maquinaria y Equipo', 'A', 'E', '', '5260990010');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5260990015', 'Aj. Infl. Equipos de Oficina', 'A', 'E', '', '5260990015');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5260990020', 'Aj. Infl. Eq. Computacion y Com.', 'A', 'E', '', '5260990020');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5260990035', 'Aj. Infl. Vehiculos', 'A', 'E', '', '5260990035');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5295', 'GASTOS DIVERSOS', 'H', 'E', '', '5295');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('529505', 'COMISIONES', 'H', 'E', '', '529505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('529510', 'LIBROS SUSCRIPCIONES PERIODICOS', 'H', 'E', '', '529510');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5295100001', 'Libros Suscripciones periodicos', 'A', 'E', '', '5295100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('529520', 'GASTOS DE REPRESENTACION Y REL.P', 'H', 'E', '', '529520');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5295200001', 'Gastos de Representacion y Rel.P', 'A', 'E', '', '5295200001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('529525', 'ELEMENTOS DE ASEO Y CAFETERIA', 'H', 'E', '', '529525');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('529530', 'UTILES PAPELERIA Y FOTOCOPIAS', 'H', 'E', '', '529530');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('529535', 'COMBUSTIBLES Y LUBRICANTES', 'H', 'E', '', '529535');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('529545', 'TAXIS Y BUSES', 'H', 'E', '', '529545');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('529550', 'ESTAMPILLAS', 'H', 'E', '', '529550');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5295500001', 'Estampillas', 'A', 'E', '', '5295500001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('529560', 'CASINO Y RESTAURANTE', 'H', 'E', '', '529560');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('529565', 'PARQUEADEROS', 'H', 'E', '', '529565');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5295650001', 'Parqueaderos', 'A', 'E', '', '5295650001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('529595', 'OTROS GASTOS DIVERSOS', 'H', 'E', '', '529595');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5295950001', 'Cargue y Decargue de Materiales', 'A', 'E', '', '5295950001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5295950002', 'Autenticaciones', 'A', 'E', '', '5295950002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5295950004', 'Ajuste al Peso', 'A', 'E', '', '5295950004');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5299', 'PROVISIONES', 'H', 'E', '', '5299');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('529910', 'DEUDORES', 'H', 'E', '', '529910');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5299100001', 'Provision Deudas Dificil Recaudo', 'A', 'E', '', '5299100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('53', 'GASTOS NO OPERACIONALES', 'H', 'E', '', '53');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5305', 'GASTOS FINANCIEROS', 'H', 'E', '', '5305');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('530505', 'GASTOS BANCARIOS', 'H', 'E', '', '530505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5305050001', 'Gastos Bancarios', 'A', 'E', '', '5305050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('530515', 'COMISIONES', 'H', 'E', '', '530515');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5305150001', 'Comisiones Bancarias', 'A', 'E', '', '5305150001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('530520', 'INTERESES', 'H', 'E', '', '530520');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5305200001', 'Intereses Corriente Ptmos Bancar', 'A', 'E', '', '5305200001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5305200002', 'Intereses por Sobregiro Bancario', 'A', 'E', '', '5305200002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5305200003', 'Intereses de Mora', 'A', 'E', '', '5305200003');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5315', 'GASTOS EXTRAORDINARIOS', 'H', 'E', '', '5315');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('531520', 'IMPUESTOS ASUMIDOS', 'H', 'E', '', '531520');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5315200001', 'Impuestos Asumidos', 'A', 'E', '', '5315200001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('531595', 'OTROS GASTOS EXTRAORDINARIOS', 'H', 'E', '', '531595');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5395', 'GASTOS DIVERSOS', 'H', 'E', '', '5395');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('539520', 'MULTAS SANCIONES Y LITIGIOS', 'H', 'E', '', '539520');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5395200001', 'Multas Sanciones y Litigios', 'A', 'E', '', '5395200001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('54', 'IMPUESTO DE RENTA Y COMPLEMENTAR', 'H', 'E', '', '54');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5405', 'IMPUESTO DE RENTA Y COMPLEMENTAR', 'H', 'E', '', '5405');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('540505', 'IMPUESTO DE RENTA Y COMPLEMENTAR', 'H', 'E', '', '540505');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5405050001', 'Impuesto de Renta y Complementar', 'A', 'E', '', '5405050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('6', 'COSTO DE VENTA', 'H', 'E', '', '6');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('61', 'COSTO DE VENTAS Y PREST. SERVICI', 'H', 'E', '', '61');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('6135', 'COMERCIO AL POR MAYOR Y MENOR', 'H', 'E', '', '6135');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('613554', 'VTA MAQ. EQ. OFIC. Y SOFTWARE', 'H', 'E', '', '613554');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('6135540001', 'Costo de Ventas', 'A', 'E', '', '6135540001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('62', 'COMPRAS', 'H', 'E', '', '62');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('6205', 'COMPRA DE MERCANCIA', 'H', 'E', '', '6205');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('6210', 'COMPRA DE MATERIA PRIMA', 'H', 'E', '', '6210');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('621001', 'COMPRA DE MATERIA PRIMA', 'H', 'E', '', '621001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1305050002', 'Clientes Nacionales', 'A', 'A', 'AR', '1305050002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2408050001', 'Iva Descontable en compras 16%', 'A', 'L', 'AR_tax:IC_taxpart:IC_taxservice', '2408050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2408050002', 'Iva Descontable en servicios 16%', 'A', 'L', 'AR_tax:IC_taxpart:IC_taxservice', '2408050002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2408050003', 'Iva Descontable Arri. y Hotel 7%', 'A', 'L', 'AR_tax:IC_taxpart:IC_taxservice', '2408050003');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2408050004', 'Iva Descontable en Tiquetes 8%', 'A', 'L', 'AR_tax:IC_taxpart:IC_taxservice', '2408050004');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2408050005', 'Iva Descontable en Servicios 20%', 'A', 'L', 'AR_tax:IC_taxpart:IC_taxservice', '2408050005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2408050010', 'Iva Descon. Reg. Simplif. 12%', 'A', 'L', 'AR_tax:IC_taxpart:IC_taxservice', '2408050010');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1305050001', 'Clientes Nacionales', 'A', 'A', 'AR', '1305050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1330050001', 'Anticipo a Proveedores', 'A', 'A', '', '1330050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1350950001', 'Contratos de Consultoria', 'A', 'A', '', '1350950001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1465050001', 'Inventarios en Transito', 'A', 'A', 'IC', '1465050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2205050002', 'Proveedores Nacionales', 'A', 'L', 'AP', '2205050002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2320050001', 'Cuentas por pagar a Contratistas', 'A', 'L', 'AP', '2320050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2315', 'A COMPA??AS VINCULADAS', 'H', 'L', '', '2315');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2335950001', 'Gastos Causados por Pagar', 'A', 'L', 'AP', '2335950001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2205050001', 'Proveedores Nacionales', 'A', 'L', 'AP', '2205050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2365150002', 'Honorarios Persona Natural 11%', 'A', 'L', 'AP_tax:IC_taxservice', '2365150002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2365150003', 'Honorarios Persona Juridica 10%', 'A', 'L', 'AP_tax:IC_taxservice', '2365150003');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5105480001', 'Bonificaciones a Empleados', 'A', 'E', '', '5105480001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('142005', 'CONTRATOS EN EJECUCION', 'H', 'A', '', '142005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5220100001', 'Arriendo Casa', 'A', 'E', 'IC_expense', '5220100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5255950001', 'Taxis y Buses', 'A', 'E', 'IC_expense', '5255950001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5235550001', 'Gas', 'A', 'E', 'IC_expense', '5235550001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5255150001', 'Pasajes Aereos', 'A', 'E', 'IC_expense', '5255150001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5235250001', 'Acueducto y Alcantarilldo', 'A', 'E', 'IC_expense', '5235250001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2368030002', 'Retencion ICA 8xMil', 'A', 'L', 'AP_tax:IC_taxservice', '2368030002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2380950001', 'Cuentas por pagar', 'A', 'L', 'AP', '2380950001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1330100001', 'Anticipo a Contratistas', 'A', 'A', 'AR', '1330100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2408050006', 'IVA Descontable en compras 20% ', 'A', 'L', 'IC_taxservice', '2408050006');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5295950003', 'Compra de Medicina Contratistas', 'A', 'E', 'IC_expense', '5295950003');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5295600001', 'Casino y Restaurante', 'A', 'E', 'IC_expense', '5295600001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5295450001', 'Taxis y Buses Urbanos', 'A', 'E', 'IC_expense', '5295450001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5295350001', 'Combustibles y lubricantes', 'A', 'E', 'IC_expense', '5295350001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5295050001', 'Comisiones', 'A', 'E', 'IC_expense', '5295050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5255950003', 'Tasa Aeroportuaria', 'A', 'E', 'IC_expense', '5255950003');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5255050001', 'Alojamiento y Manutencion', 'A', 'E', 'IC_expense', '5255050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5250150001', 'Reparaciones Locativas', 'A', 'E', 'IC_expense', '5250150001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5240950002', 'Exp. Certif. Libertad y tradicio', 'A', 'E', 'IC_expense', '5240950002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5240150001', 'Tramites y Licencias', 'A', 'E', 'IC_expense', '5240150001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5235950006', 'Mano de Obra OBRAS CIVILES', 'A', 'E', 'IC_expense', '5235950006');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5235950005', 'Jardineria', 'A', 'E', 'IC_expense', '5235950005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5235950003', 'Digitacion de Planos', 'A', 'E', 'IC_expense', '5235950003');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5235950001', 'Pintura', 'A', 'E', 'IC_expense', '5235950001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5235500001', 'Transportes Fletes y Acarreos', 'A', 'E', 'IC_expense', '5235500001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5235400001', 'Correo Portes y Telegramas', 'A', 'E', 'IC_expense', '5235400001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5235150001', 'Asistencia tecnica', 'A', 'E', 'IC_expense', '5235150001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5235050001', 'Aseo y Vigilancia', 'A', 'E', 'IC_expense', '5235050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5215950001', 'Impuesto de 3 por Mil', 'A', 'E', 'IC_expense', '5215950001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5215150001', 'Impuestos a la Propiedad raiz', 'A', 'E', 'IC_expense', '5215150001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5210950003', 'Asesoria Administrativa y de Mer', 'A', 'E', 'IC_expense', '5210950003');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5210950002', 'Asesoria Contable', 'A', 'E', 'IC_expense', '5210950002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5210250001', 'Asesorias Juridicas', 'A', 'E', 'IC_expense', '5210250001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5205780001', 'Aportes SENA', 'A', 'E', 'IC_expense', '5205780001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5205750001', 'Aportes ICBF', 'A', 'E', 'IC_expense', '5205750001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5205720001', 'Aportes cajas de Compensacion', 'A', 'E', 'IC_expense', '5205720001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5205700001', 'Aportes fondo de Pensiones y Ces', 'A', 'E', 'IC_expense', '5205700001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5205690001', 'Aportes EPS', 'A', 'E', 'IC_expense', '5205690001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5205680001', 'Aportes ARP', 'A', 'E', 'IC_expense', '5205680001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5205390001', 'Vacaciones', 'A', 'E', 'IC_expense', '5205390001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5205360001', 'Primas de Servicios', 'A', 'E', 'IC_expense', '5205360001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5205300001', 'Cesantias', 'A', 'E', 'IC_expense', '5205300001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5205270001', 'Auxilio de transporte', 'A', 'E', 'IC_expense', '5205270001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4295050001', 'Aprovechamiento Material Sobrant', 'A', 'I', 'IC_sale:IC_income', '4295050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4210050001', 'Intereses por Rendimientos Finan', 'A', 'I', 'IC_income', '4210050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2408100001', 'Iva Generado por Ingresos 16%', 'A', 'L', 'AR_tax:IC_taxpart:IC_taxservice', '2408100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2408100002', 'Iva Generado por Ingresos 7%', 'A', 'L', 'AR_tax:IC_taxpart:IC_taxservice', '2408100002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('6210010001', 'Compra de Materia Prima', 'A', 'E', 'IC_cogs', '6210010001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2365400002', 'Compra Combustibles y Lub. 0.1%', 'A', 'L', 'IC_taxservice', '2365400002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2365400001', 'Compras en General 3.5%', 'A', 'L', 'IC_taxpart:IC_taxservice', '2365400001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2365300004', 'Arriendo Maq. Obra Civil 2%', 'A', 'L', 'IC_taxservice', '2365300004');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2365300003', 'Arriendo Bienes Muebles 4%', 'A', 'L', 'IC_taxservice', '2365300003');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2365300001', 'Arriendo Inmuebles 3.5%', 'A', 'L', 'IC_taxservice', '2365300001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2365250004', 'Construccion Obra Civil 1%', 'A', 'L', 'IC_taxservice', '2365250004');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2365250003', 'Transporte de Carga 1%', 'A', 'L', 'IC_taxservice', '2365250003');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2365250001', 'Servicios en General 6%', 'A', 'L', 'IC_taxservice', '2365250001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2365200001', 'Retencion Comision del 11%', 'A', 'L', 'IC_taxpart:IC_taxservice', '2365200001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2365150001', 'Honorarios Persona Natural 10%', 'A', 'L', 'AP_tax:IC_taxservice', '2365150001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5295300001', 'Utiles Papeleria y Fotocopias', 'A', 'E', 'AP_amount:IC_expense', '5295300001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5295250001', 'Elementos de Aseo y Cafeteria', 'A', 'E', 'AP_amount:IC_expense', '5295250001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5235300001', 'Energia Electrica', 'A', 'E', 'AP_amount:IC_expense', '5235300001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5235350001', 'Telefono', 'A', 'E', 'AP_amount:IC_expense', '5235350001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1355150003', 'Retefuente 7% Rendimientos Finan', 'A', 'A', 'IC_taxpart:IC_taxservice', '1355150003');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1355150001', 'Retefuente 2% Factor multiplicad', 'A', 'A', '', '1355150001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1355170001', 'Iva Retenido 75% de 16%', 'A', 'A', 'IC_taxpart:IC_taxservice', '1355170001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2365150004', 'Honorarios Persona Juridica 11%', 'A', 'L', 'CT_tax', '2365150004');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2367050001', 'Iva retenido reg simplif 12% ', 'A', 'L', 'AP_tax', '236705');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('236710', 'IVA RETENIDO AL REGIMEN COMUN ', 'H', 'L', '', '2367');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('236705', 'IVA RETENIDO AL REGIMEN SIMPLIF. ', 'H', 'L', '', '2367');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2367', 'IMPUESTO A LAS VENTAS RETENIDO', 'H', 'L', '', '23');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4295810001', 'Ajuste al Peso', 'A', 'I', '', '4295810001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5240050001', 'Gastos Notariales', 'A', 'E', 'IC_expense', '5240050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('429581001', 'Ajuste', 'A', 'I', '', '429581001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4130950001', 'Consultorias', 'A', 'I', 'AR_amount:IC_income', '4130950001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4130100001', 'Ingresos por Obras Civiles', 'A', 'I', 'AR_amount:IC_income', '4130100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4130950002', 'Interventorias', 'A', 'I', 'AR_amount:IC_income', '4130950002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4220100001', 'Arriendo de locales y oficinas', 'A', 'I', 'AR_amount:IC_income', '4220100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4220150001', 'Arriendo de Maquinaria y Equipos', 'A', 'I', 'AR_amount:IC_income', '4220150001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4235950001', 'Algo',
+'A', 'I', 'AR_amount:IC_income', '4235950001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5205060001', 'Sueldos de Personal', 'A', 'E', 'AP_amount:IC_expense', '5205060001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2370060001', 'Aportes a ARP', 'A', 'L', '', '2370060001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2380950002', 'Otros Acreedores Varios', 'A', 'L', 'AP', '2380950001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2335300001', 'Servicios Tecnicos', 'A', 'L', 'AP', '2335300001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2370100001', 'Aportes a Sena, icbf y Cajas com', 'A', 'L', '', '2370100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2380300001', 'Fondos de Cesantias y/o Pension', 'A', 'L', '', '2380300001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2505050001', 'Salarios por Pagar', 'A', 'L', '', '2505050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2610050001', 'Cesantias', 'A', 'L', '', '2610050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2610100001', 'Intereses Sobre Cesantias', 'A', 'L', '', '2610100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2610150001', 'Vacaciones', 'A', 'L', '', '2610150001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2610200001', 'Prima de Servicios', 'A', 'L', '', '2610200001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2367100001', 'Iva retenido al reg comun 16% ', 'A', 'L', 'CT_tax', '236710');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2367050002', 'Iva retenido Reg Simp.del 7% ', 'A', 'L', 'IC_taxservice', '236705');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2367100002', 'Iva retenido al reg comun 20% ', 'A', 'L', 'IC_taxpart:IC_taxservice', '236710');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2367100003', 'Iva retenido al reg comun del 7% ', 'A', 'L', 'AR_tax:IC_taxpart:IC_taxservice', '236710');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1410990001', 'Aj. por Inflacion Inv. en Proces', 'A', 'A', '', '1410990001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1465990001', 'Aj.por Infl. Inv. en Transito', 'A', 'A', '', '1465990001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1330150001', 'Anticipo a Trabajadores', 'A', 'A', 'AR', '1330150001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1420990001', 'Aj.por Inflacion Ctos en Ejecuci', 'A', 'A', '', '1420990001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1430990001', 'Aj.por Inflacion Inv.Prod.Termin', 'A', 'A', '', '1430990001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1435990001', 'Aj.por Infl.Mcia No Fab.Empresa', 'A', 'A', '', '1435990001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1105050001', 'Caja Mayor', 'A', 'A', 'AR_paid:AP_paid', '1105050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1105100001', 'Caja Menor 1', 'A', 'A', 'AR_paid:AP_paid', '1105100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1105100002', 'Caja Menor 2', 'A', 'A', 'AR_paid:AP_paid', '1105100002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1105100003', 'Caja Menor 3', 'A', 'A', 'AR_paid:AP_paid', '1105100003');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1105100004', 'Caja menor 4', 'A', 'A', 'AR_paid:AP_paid', '1105100004');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1105100005', 'Caja menor 5', 'A', 'A', 'AR_paid:AP_paid', '1105100005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1110050013', 'Banco Ganadero Cta.Cte.xxxxxxxx', 'A', 'A', 'AR_paid:AP_paid', '1110050013');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1110050029', 'Tequendama Cte. #xxxxxxxx', 'A', 'A', 'AR_paid:AP_paid', '1110050029');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1120050013', 'Banco Ganadero Ahorro xxxxxxxx', 'A', 'A', 'AR_paid:AP_paid', '1120050013');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1120050019', 'Banco Colpatria Ahor. xxxxxxxxx', 'A', 'A', 'AR_paid:AP_paid', '1120050019');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1120051302', 'Bco Ganadero Ahorro xxxxxxxxxx', 'A', 'A', 'AR_paid:AP_paid', '1120051302');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1355150020', 'Retencion en la Fuente Año Anter', 'A', 'A', '', '1355150020');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1410050001', 'Muebles', 'A', 'A', 'IC', '1410050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1410050002', 'Inventario 1', 'A', 'A', 'IC', '1410050002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1410050003', 'Inventario 2', 'A', 'A', 'IC', '1410050003');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1410050004', 'Inventario 3', 'A', 'A', 'IC', '1410050004');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1410050005', 'Inventario 4', 'A', 'A', 'IC', '1410050005');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1410050010', 'Inventario 5', 'A', 'A', 'IC', '1410050010');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1420050001', 'Lokesea', 'A', 'A', 'IC', '1420050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1430050001', 'Lokesea', 'A', 'A', 'IC', '1430050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1435050001', 'Lokesea', 'A', 'A', 'IC', '1435050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1420050002', 'Lokesea', 'A', 'A', 'IC', '1420050002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1516100001', 'Local #1', 'A', 'A', '', '1516100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1516100002', 'Local #2', 'A', 'A', '', '1516100002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1516100003', 'Local #3', 'A', 'A', '', '1516100003');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1516990001', 'Aj. Infl. Local #1', 'A', 'A', '', '1516990001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1435050099', 'Cuenta Inventario para Lokesea', 'A', 'A', 'IC', '1435050099');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1516991001', 'Aj. Infl. Local #1', 'A', 'A', '', '1516991001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1516991002', 'Aj. Infl. Local #2', 'A', 'A', '', '1516991002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1516991003', 'Aj. Infl. Local #3', 'A', 'A', '', '1516991003');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1520020001', 'Lokesea del Inventario', 'A', 'A', '', '1520020001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1520020002', 'Equipo de Lokeasea', 'A', 'A', '', '1520020002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1520990201', 'Aj. por Inflacion Lokesea', 'A', 'A', '', '1520990201');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1520990202', 'Aj.x Infl. Otro Lokesea', 'A', 'A', '', '1520990202');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1524100001', 'Aire Acondicionado LG', 'A', 'A', '', '1524100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1524991001', 'Aj. por Inflac. Aire Acond. LG', 'A', 'A', '', '1524991001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1592100001', 'Depreciacion Lokesea', 'A', 'A', '', '1592100001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1540050001', 'Mazda Blanco Placa ALGO0815', 'A', 'A', '', '1540050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1592050001', 'Local #1', 'A', 'A', '', '1592050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1592050002', 'Local #2', 'A', 'A', '', '1592050002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1592050003', 'Local #3', 'A', 'A', '', '1592050003');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1592100002', 'Deprec. Otro Lokesea', 'A', 'A', '', '1592100002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1592150001', 'Depreciacion Aire LG', 'A', 'A', '', '1592150001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1592350001', 'Mazda Balnco Placa ALGO0815', 'A', 'A', '', '1592350001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1910080001', 'Local #1', 'A', 'A', '', '1910080001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1910080002', 'Local #2', 'A', 'A', '', '1910080002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1910080003', 'Local #3', 'A', 'A', '', '1910080003');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2335950002', 'Cuentas por pagar CaribeNet S.A. (www.caribenet.com)', 'A', 'L', 'AP', '2335950002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3115050001', 'Yo', 'A', 'Q', '', '3115050001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3115050002', 'Tu', 'A', 'Q', '', '3115050002');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4120270001', 'Lokeproducimos', 'A', 'I', 'AR_amount:IC_income', '4120270001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4130950003', 'En que ganamos?', 'A', 'I', 'AR_amount:IC_income', '4130950003');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4135950001', 'Loquevendomos', 'A', 'I', '', '4135950001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4150300001', 'Vendo hasta mi mama!', 'A', 'I', '', '4150300001');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5230750001', 'Soat - Seguro Obligatorio Vehiculos', 'A', 'E', '', '5230750001');
+--
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '1355150003'), -0.07);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '1355170001'), -0.12);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2365150001'), -0.1);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2365150002'), -0.11);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2365150003'), -0.1);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2365150004'), -0.11);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2365200001'), -0.11);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2365250001'), -0.06);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2365250003'), -0.01);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2365250004'), -0.01);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2365300001'), -0.035);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2365300003'), -0.04);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2365300004'), -0.02);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2365400001'), -0.035);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2365400002'), -0.001);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2367050001'), -0.12);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2367050002'), -0.0525);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2367100001'), -0.12);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2367100002'), -0.15);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2367100003'), -0.0525);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2368030002'), -0.008);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2408050001'), 0.16);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2408050002'), 0.16);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2408050003'), 0.07);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2408050004'), 0.08);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2408050005'), 0.2);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2408050006'), 0.2);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2408050010'), 0.12);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2408100001'), 0.16);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '2408100002'), 0.07);
+
+UPDATE defaults SET inventory_accno_id = (SELECT id FROM chart WHERE accno = '141005001'), income_accno_id = (SELECT id FROM chart WHERE accno = '412027001'), expense_accno_id = (SELECT id FROM chart WHERE accno = '5250150001'), fxgain_accno_id = (SELECT id FROM chart WHERE accno = '4705400001'), fxloss_accno_id = (SELECT id FROM chart WHERE accno = '530520001'), curr = 'COP', weightunit = 'kg';
+
diff --git a/sql/Colombia-utf8-PUC-gifi.sql b/sql/Colombia-utf8-PUC-gifi.sql
new file mode 100755
index 00000000..3b8d7b2e
--- /dev/null
+++ b/sql/Colombia-utf8-PUC-gifi.sql
@@ -0,0 +1,2473 @@
+--
+--
+-- Data for Plan Único de Cuentas (PUC) Gifi Table
+--
+
+INSERT INTO gifi (accno,description) VALUES ('1', 'ACTIVO ');
+INSERT INTO gifi (accno,description) VALUES ('11', 'DISPONIBLE ');
+INSERT INTO gifi (accno,description) VALUES ('1105', 'CAJA ');
+INSERT INTO gifi (accno,description) VALUES ('110505', 'CAJA GENERAL ');
+INSERT INTO gifi (accno,description) VALUES ('110510', 'CAJAS MENORES ');
+INSERT INTO gifi (accno,description) VALUES ('110515', 'MONEDA EXTRANJERA ');
+INSERT INTO gifi (accno,description) VALUES ('1110', 'BANCOS ');
+INSERT INTO gifi (accno,description) VALUES ('111005', 'MONEDA NACIONAL ');
+INSERT INTO gifi (accno,description) VALUES ('111010', 'MONEDA EXTRANJERA ');
+INSERT INTO gifi (accno,description) VALUES ('1115', 'REMESAS EN TRANSITO ');
+INSERT INTO gifi (accno,description) VALUES ('111505', 'MONEDA NACIONAL ');
+INSERT INTO gifi (accno,description) VALUES ('111510', 'MONEDA EXTRANJERA ');
+INSERT INTO gifi (accno,description) VALUES ('1120', 'CUENTAS DE AHORRO ');
+INSERT INTO gifi (accno,description) VALUES ('112005', 'BANCOS ');
+INSERT INTO gifi (accno,description) VALUES ('112010', 'CORPORACIONES DE AHORRO Y VIVIENDA ');
+INSERT INTO gifi (accno,description) VALUES ('112015', 'ORGANISMOS COOPERATIVOS FINANCIEROS ');
+INSERT INTO gifi (accno,description) VALUES ('1125', 'FONDOS ');
+INSERT INTO gifi (accno,description) VALUES ('112505', 'ROTATORIOS MONEDA NACIONAL ');
+INSERT INTO gifi (accno,description) VALUES ('112510', 'ROTATORIOS MONEDA EXTRANJERA ');
+INSERT INTO gifi (accno,description) VALUES ('112515', 'ESPECIALES MONEDA NACIONAL ');
+INSERT INTO gifi (accno,description) VALUES ('112520', 'ESPECIALES MONEDA EXTRANJERA ');
+INSERT INTO gifi (accno,description) VALUES ('112525', 'DE AMORTIZACION MONEDA NACIONAL ');
+INSERT INTO gifi (accno,description) VALUES ('112530', 'DE AMORTIZACION MONEDA EXTRANJERA ');
+INSERT INTO gifi (accno,description) VALUES ('12', 'INVERSIONES ');
+INSERT INTO gifi (accno,description) VALUES ('1205', 'ACCIONES ');
+INSERT INTO gifi (accno,description) VALUES ('120505', 'AGRICULTURA, GANADERIA, CAZA Y SILVICULTURA ');
+INSERT INTO gifi (accno,description) VALUES ('120510', 'PESCA ');
+INSERT INTO gifi (accno,description) VALUES ('120515', 'EXPLOTACION DE MINAS Y CANTERAS ');
+INSERT INTO gifi (accno,description) VALUES ('120520', 'INDUSTRIA MANUFACTURERA ');
+INSERT INTO gifi (accno,description) VALUES ('120525', 'SUMINISTRO DE ELECTRICIDAD, GAS Y AGUA ');
+INSERT INTO gifi (accno,description) VALUES ('120530', 'CONSTRUCCION ');
+INSERT INTO gifi (accno,description) VALUES ('120535', 'COMERCIO AL POR MAYOR Y AL POR MENOR ');
+INSERT INTO gifi (accno,description) VALUES ('120540', 'HOTELES Y RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('120545', 'TRANSPORTE, ALMACENAMIENTO Y COMUNICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('120550', 'ACTIVIDAD FINANCIERA ');
+INSERT INTO gifi (accno,description) VALUES ('120555', 'ACTIVIDADES INMOBILIARIAS, EMPRESARIALES Y DE ALQUILER ');
+INSERT INTO gifi (accno,description) VALUES ('120560', 'ENSEуANZA ');
+INSERT INTO gifi (accno,description) VALUES ('120565', 'SERVICIOS SOCIALES Y DE SALUD ');
+INSERT INTO gifi (accno,description) VALUES ('120570', 'OTRAS ACTIVIDADES DE SERVICIOS COMUNITARIOS, SOCIALES Y PERSONALES ');
+INSERT INTO gifi (accno,description) VALUES ('120599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1210', 'CUOTAS O PARTES DE INTERES SOCIAL ');
+INSERT INTO gifi (accno,description) VALUES ('121005', 'AGRICULTURA, GANADERIA, CAZA Y SILVICULTURA ');
+INSERT INTO gifi (accno,description) VALUES ('121010', 'PESCA ');
+INSERT INTO gifi (accno,description) VALUES ('121015', 'EXPLOTACION DE MINAS Y CANTERAS ');
+INSERT INTO gifi (accno,description) VALUES ('121020', 'INDUSTRIA MANUFACTURERA ');
+INSERT INTO gifi (accno,description) VALUES ('121025', 'SUMINISTRO DE ELECTRICIDAD, GAS Y AGUA ');
+INSERT INTO gifi (accno,description) VALUES ('121030', 'CONSTRUCCION ');
+INSERT INTO gifi (accno,description) VALUES ('121035', 'COMERCIO AL POR MAYOR Y AL POR MENOR ');
+INSERT INTO gifi (accno,description) VALUES ('121040', 'HOTELES Y RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('121045', 'TRANSPORTE, ALMACENAMIENTO Y COMUNICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('121050', 'ACTIVIDAD FINANCIERA ');
+INSERT INTO gifi (accno,description) VALUES ('121055', 'ACTIVIDADES INMOBILIARIAS, EMPRESARIALES Y DE ALQUILER ');
+INSERT INTO gifi (accno,description) VALUES ('121060', 'ENSEŃANZA ');
+INSERT INTO gifi (accno,description) VALUES ('121065', 'SERVICIOS SOCIALES Y DE SALUD ');
+INSERT INTO gifi (accno,description) VALUES ('121070', 'OTRAS ACTIVIDADES DE SERVICIOS COMUNITARIOS, SOCIALES Y PERSONALES ');
+INSERT INTO gifi (accno,description) VALUES ('121099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1215', 'BONOS ');
+INSERT INTO gifi (accno,description) VALUES ('121505', 'BONOS PUBLICOS MONEDA NACIONAL ');
+INSERT INTO gifi (accno,description) VALUES ('121510', 'BONOS PUBLICOS MONEDA EXTRANJERA ');
+INSERT INTO gifi (accno,description) VALUES ('121515', 'BONOS ORDINARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('121520', 'BONOS CONVERTIBLES EN ACCIONES ');
+INSERT INTO gifi (accno,description) VALUES ('121595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('1220', 'CEDULAS ');
+INSERT INTO gifi (accno,description) VALUES ('122005', 'CEDULAS DE CAPITALIZACION ');
+INSERT INTO gifi (accno,description) VALUES ('122010', 'CEDULAS HIPOTECARIAS ');
+INSERT INTO gifi (accno,description) VALUES ('122015', 'CEDULAS DE INVERSION ');
+INSERT INTO gifi (accno,description) VALUES ('122095', 'OTRAS ');
+INSERT INTO gifi (accno,description) VALUES ('1225', 'CERTIFICADOS ');
+INSERT INTO gifi (accno,description) VALUES ('122505', 'CERTIFICADOS DE DEPOSITO A TERMINO (C.D.T.) ');
+INSERT INTO gifi (accno,description) VALUES ('122510', 'CERTIFICADOS DE DEPOSITO DE AHORRO ');
+INSERT INTO gifi (accno,description) VALUES ('122515', 'CERTIFICADOS DE AHORRO DE VALOR CONSTANTE (C.A.V.C.) ');
+INSERT INTO gifi (accno,description) VALUES ('122520', 'CERTIFICADOS DE CAMBIO ');
+INSERT INTO gifi (accno,description) VALUES ('122525', 'CERTIFICADOS CAFETEROS VALORIZABLES ');
+INSERT INTO gifi (accno,description) VALUES ('122530', 'CERTIFICADOS ELECTRICOS VALORIZABLES (C.E.V.) ');
+INSERT INTO gifi (accno,description) VALUES ('122535', 'CERTIFICADOS DE REEMBOLSO TRIBUTARIO (C.E.R.T.) ');
+INSERT INTO gifi (accno,description) VALUES ('122540', 'CERTIFICADOS DE DESARROLLO TURISTICO ');
+INSERT INTO gifi (accno,description) VALUES ('122545', 'CERTIFICADOS DE INVERSION FORESTAL (C.I.F.) ');
+INSERT INTO gifi (accno,description) VALUES ('122595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('1230', 'PAPELES COMERCIALES ');
+INSERT INTO gifi (accno,description) VALUES ('123005', 'EMPRESAS COMERCIALES ');
+INSERT INTO gifi (accno,description) VALUES ('123010', 'EMPRESAS INDUSTRIALES ');
+INSERT INTO gifi (accno,description) VALUES ('123015', 'EMPRESAS DE SERVICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('1235', 'TITULOS ');
+INSERT INTO gifi (accno,description) VALUES ('123505', 'TITULOS DE DESARROLLO AGROPECUARIO ');
+INSERT INTO gifi (accno,description) VALUES ('123510', 'TITULOS CANJEABLES POR CERTIFICADOS DE CAMBIO ');
+INSERT INTO gifi (accno,description) VALUES ('123515', 'TITULOS DE TESORERIA (T.E.S.) ');
+INSERT INTO gifi (accno,description) VALUES ('123520', 'TITULOS DE PARTICIPACION ');
+INSERT INTO gifi (accno,description) VALUES ('123525', 'TITULOS DE CREDITO DE FOMENTO ');
+INSERT INTO gifi (accno,description) VALUES ('123530', 'TITULOS FINANCIEROS AGROINDUSTRIALES (T.F.A.) ');
+INSERT INTO gifi (accno,description) VALUES ('123535', 'TITULOS DE AHORRO CAFETERO (T.A.C.) ');
+INSERT INTO gifi (accno,description) VALUES ('123540', 'TITULOS DE AHORRO NACIONAL (T.A.N.) ');
+INSERT INTO gifi (accno,description) VALUES ('123545', 'TITULOS ENERGETICOS DE RENTABILIDAD CRECIENTE (T.E.R.) ');
+INSERT INTO gifi (accno,description) VALUES ('123550', 'TITULOS DE AHORRO EDUCATIVO (T.A.E.) ');
+INSERT INTO gifi (accno,description) VALUES ('123555', 'TITULOS FINANCIEROS INDUSTRIALES Y COMERCIALES ');
+INSERT INTO gifi (accno,description) VALUES ('123560', 'TESOROS ');
+INSERT INTO gifi (accno,description) VALUES ('123565', 'TITULOS DE DEVOLUCION DE IMPUESTOS NACIONALES (TIDIS) ');
+INSERT INTO gifi (accno,description) VALUES ('123570', 'TITULOS INMOBILIARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('123595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('1240', 'ACEPTACIONES BANCARIAS O FINANCIERAS ');
+INSERT INTO gifi (accno,description) VALUES ('124005', 'BANCOS COMERCIALES ');
+INSERT INTO gifi (accno,description) VALUES ('124010', 'COMPANÃAS DE FIAANNCIAMIENTO COMERCIAL ');
+INSERT INTO gifi (accno,description) VALUES ('124015', 'CORPORACIONES FINANCIERAS ');
+INSERT INTO gifi (accno,description) VALUES ('124095', 'OTRAS ');
+INSERT INTO gifi (accno,description) VALUES ('1245', 'DERECHOS FIDUCIARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('124505', 'FIDEICOMISOS DE INVERSION MONEDA NACIONAL ');
+INSERT INTO gifi (accno,description) VALUES ('124510', 'FIDEICOMISOS DE INVERSION MONEDA EXTRANJERA ');
+INSERT INTO gifi (accno,description) VALUES ('1250', 'DERECHOS DE RECOMPRA DE INVERSIONES NEGOCIADAS (REPOS) ');
+INSERT INTO gifi (accno,description) VALUES ('125005', 'ACCIONES ');
+INSERT INTO gifi (accno,description) VALUES ('125010', 'CUOTAS O PARTES DE INTERES SOCIAL ');
+INSERT INTO gifi (accno,description) VALUES ('125015', 'BONOS ');
+INSERT INTO gifi (accno,description) VALUES ('125020', 'CEDULAS ');
+INSERT INTO gifi (accno,description) VALUES ('125025', 'CERTIFICADOS ');
+INSERT INTO gifi (accno,description) VALUES ('125030', 'PAPELES COMERCIALES ');
+INSERT INTO gifi (accno,description) VALUES ('125035', 'TITULOS ');
+INSERT INTO gifi (accno,description) VALUES ('125040', 'ACEPTACIONES BANCARIAS O FINANCIERAS 125095 OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('125099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1255', 'OBLIGATORIAS ');
+INSERT INTO gifi (accno,description) VALUES ('125505', 'BONOS DE FINANCIAMIENTO ESPECIAL ');
+INSERT INTO gifi (accno,description) VALUES ('125510', 'BONOS DE FINANCIAMIENTO PRESUPUESTAL ');
+INSERT INTO gifi (accno,description) VALUES ('125515', 'BONOS PARA DESARROLLO SOCIAL Y SEGURIDAD INTERNA (B.D.S.I.) ');
+INSERT INTO gifi (accno,description) VALUES ('125595', 'OTRAS ');
+INSERT INTO gifi (accno,description) VALUES ('1260', 'CUENTAS EN PARTICIPACION ');
+INSERT INTO gifi (accno,description) VALUES ('126099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1295', 'OTRAS INVERSIONES ');
+INSERT INTO gifi (accno,description) VALUES ('129505', 'APORTES EN COOPERATIVAS ');
+INSERT INTO gifi (accno,description) VALUES ('129510', 'DERECHOS EN CLUBES SOCIALES ');
+INSERT INTO gifi (accno,description) VALUES ('129515', 'ACCIONES O DERECHOS EN CLUBES DEPORTIVOS ');
+INSERT INTO gifi (accno,description) VALUES ('129520', 'BONOS EN COLEGIOS ');
+INSERT INTO gifi (accno,description) VALUES ('129595', 'DIVERSAS ');
+INSERT INTO gifi (accno,description) VALUES ('129599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1299', 'PROVISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('129905', 'ACCIONES ');
+INSERT INTO gifi (accno,description) VALUES ('129910', 'CUOTAS O PARTES DE INTERES SOCIAL ');
+INSERT INTO gifi (accno,description) VALUES ('129915', 'BONOS ');
+INSERT INTO gifi (accno,description) VALUES ('129920', 'CEDULAS ');
+INSERT INTO gifi (accno,description) VALUES ('129925', 'CERTIFICADOS ');
+INSERT INTO gifi (accno,description) VALUES ('129930', 'PAPELES COMERCIALES ');
+INSERT INTO gifi (accno,description) VALUES ('129935', 'TITULOS ');
+INSERT INTO gifi (accno,description) VALUES ('129940', 'ACEPTACIONES BANCARIAS O FINANCIERAS ');
+INSERT INTO gifi (accno,description) VALUES ('129945', 'DERECHOS FIDUCIARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('129950', 'DERECHOS DE RECOMPRA DE INVERSIONES NEGOCIADAS ');
+INSERT INTO gifi (accno,description) VALUES ('129955', 'OBLIGATORIAS ');
+INSERT INTO gifi (accno,description) VALUES ('129960', 'CUENTAS EN PARTICIPACION ');
+INSERT INTO gifi (accno,description) VALUES ('129995', 'OTRAS INVERSIONES ');
+INSERT INTO gifi (accno,description) VALUES ('13', 'DEUDORES ');
+INSERT INTO gifi (accno,description) VALUES ('1305', 'CLIENTES ');
+INSERT INTO gifi (accno,description) VALUES ('130505', 'NACIONALES ');
+INSERT INTO gifi (accno,description) VALUES ('130510', 'DEL EXTERIOR ');
+INSERT INTO gifi (accno,description) VALUES ('130515', 'DEUDORES DEL SISTEMA ');
+INSERT INTO gifi (accno,description) VALUES ('1310', 'CUENTAS CORRIENTES COMERCIALES ');
+INSERT INTO gifi (accno,description) VALUES ('131005', 'CASA MATRIZ ');
+INSERT INTO gifi (accno,description) VALUES ('131010', 'COMPAŃIAS VINCULADAS ');
+INSERT INTO gifi (accno,description) VALUES ('131015', 'ACCIONISTAS O SOCIOS ');
+INSERT INTO gifi (accno,description) VALUES ('131020', 'PARTICULARES ');
+INSERT INTO gifi (accno,description) VALUES ('131095', 'OTRAS ');
+INSERT INTO gifi (accno,description) VALUES ('1315', 'CUENTAS POR COBRAR A CASA MATRIZ ');
+INSERT INTO gifi (accno,description) VALUES ('131505', 'VENTAS ');
+INSERT INTO gifi (accno,description) VALUES ('131510', 'PAGOS A NOMBRE DE CASA MATRIZ ');
+INSERT INTO gifi (accno,description) VALUES ('131515', 'VALORES RECIBIDOS POR CASA MATRIZ ');
+INSERT INTO gifi (accno,description) VALUES ('131520', 'PRESTAMOS ');
+INSERT INTO gifi (accno,description) VALUES ('1320', 'CUENTAS POR COBRAR A VINCULADOS ECONOMICOS ');
+INSERT INTO gifi (accno,description) VALUES ('132005', 'FILIALES ');
+INSERT INTO gifi (accno,description) VALUES ('132010', 'SUBSIDIARIAS ');
+INSERT INTO gifi (accno,description) VALUES ('132015', 'SUCURSALES ');
+INSERT INTO gifi (accno,description) VALUES ('1325', 'CUENTA S POR COBRAR A SOCIOS Y ACCIONISTAS ');
+INSERT INTO gifi (accno,description) VALUES ('132505', 'A SOCIOS ');
+INSERT INTO gifi (accno,description) VALUES ('132510', 'A ACCIONISTAS ');
+INSERT INTO gifi (accno,description) VALUES ('1328', 'APORTES POR COBRAR ');
+INSERT INTO gifi (accno,description) VALUES ('1330', 'ANTICIPOS Y AVANCES ');
+INSERT INTO gifi (accno,description) VALUES ('133005', 'A PROVEEDORES ');
+INSERT INTO gifi (accno,description) VALUES ('133010', 'A CONTRATISTAS ');
+INSERT INTO gifi (accno,description) VALUES ('133015', 'A TRABAJADORES ');
+INSERT INTO gifi (accno,description) VALUES ('133020', 'A AGENTES ');
+INSERT INTO gifi (accno,description) VALUES ('133025', 'A CONCESIONARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('133030', 'DE ADJUDICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('133095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('1332', 'CUENTAS DE OPERACION CONJUNTA ');
+INSERT INTO gifi (accno,description) VALUES ('1335', 'DEPOSITOS ');
+INSERT INTO gifi (accno,description) VALUES ('133505', 'PARA IMPORTACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('133510', 'PARA SERVICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('133515', 'PARA CONTRATOS ');
+INSERT INTO gifi (accno,description) VALUES ('133520', 'PARA RESPONSABILIDADES ');
+INSERT INTO gifi (accno,description) VALUES ('133525', 'PARA JUICIOS EJECUTIVOS ');
+INSERT INTO gifi (accno,description) VALUES ('133530', 'PARA ADQUISICION DE ACCIONES, CUOTAS O DERECHOS SOCIALES ');
+INSERT INTO gifi (accno,description) VALUES ('133535', 'EN GARANTIA ');
+INSERT INTO gifi (accno,description) VALUES ('133595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('1340', 'PROMESAS DE COMPRA VENTA ');
+INSERT INTO gifi (accno,description) VALUES ('134005', 'DE BIENES RAICES ');
+INSERT INTO gifi (accno,description) VALUES ('134010', 'DE MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('134015', 'DE FLOTA Y EQUIPO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('134020', 'DE FLOTA Y EQUIPO AEREO ');
+INSERT INTO gifi (accno,description) VALUES ('134025', 'DE FLOTA Y EQUIPO FERREO ');
+INSERT INTO gifi (accno,description) VALUES ('134030', 'DE FLOTA Y EQUIPO FLUVIAL Y/O MARITIMO ');
+INSERT INTO gifi (accno,description) VALUES ('134035', 'DE SEMOVIENTES ');
+INSERT INTO gifi (accno,description) VALUES ('134095', 'DE OTROS BIENES ');
+INSERT INTO gifi (accno,description) VALUES ('1345', 'INGRESOS POR COBRAR ');
+INSERT INTO gifi (accno,description) VALUES ('134505', 'DIVIDENDOS Y/O PARTICIPACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('134510', 'INTERESES ');
+INSERT INTO gifi (accno,description) VALUES ('134515', 'COMISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('134520', 'HONORARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('134525', 'SERVICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('134530', 'ARRENDAMIENTOS ');
+INSERT INTO gifi (accno,description) VALUES ('134535', 'CERT POR COBRAR ');
+INSERT INTO gifi (accno,description) VALUES ('134595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('1350', 'RETENCION SOBRE CONTRATOS ');
+INSERT INTO gifi (accno,description) VALUES ('135005', 'DE CONSTRUCCION ');
+INSERT INTO gifi (accno,description) VALUES ('135010', 'DE PRESTACION DE SERVICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('135095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('1355', 'ANTICIPO DE IMPUESTOS Y CONTRIBUCIONES O SALDOS A FAVOR ');
+INSERT INTO gifi (accno,description) VALUES ('135505', 'ANTICIPO DE IMPUESTOS DE RENTA Y COMPLEMENTARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('135510', 'ANTICIPO DE IMPUESTOS DE INDUSTRIA Y COMERCIO ');
+INSERT INTO gifi (accno,description) VALUES ('135515', 'RETENCION EN LA FUENTE ');
+INSERT INTO gifi (accno,description) VALUES ('135520', 'SOBRANTES EN LIQUIDACION PRIVADA DE IMPUESTOS ');
+INSERT INTO gifi (accno,description) VALUES ('135525', 'CONTRIBUCIONES ');
+INSERT INTO gifi (accno,description) VALUES ('135530', 'IMPUESTOS DESCONTABLES ');
+INSERT INTO gifi (accno,description) VALUES ('135595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('1360', 'RECLAMACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('136005', 'A COMPAŃIAS ASEGURADORAS ');
+INSERT INTO gifi (accno,description) VALUES ('136010', 'A TRANSPORTADORES ');
+INSERT INTO gifi (accno,description) VALUES ('136015', 'POR TIQUETES AEREOS ');
+INSERT INTO gifi (accno,description) VALUES ('136095', 'OTRAS ');
+INSERT INTO gifi (accno,description) VALUES ('1365', 'CUENTAS POR COBRAR A TRABAJADORES ');
+INSERT INTO gifi (accno,description) VALUES ('136505', 'VIVIENDA ');
+INSERT INTO gifi (accno,description) VALUES ('136510', 'VEHICULOS ');
+INSERT INTO gifi (accno,description) VALUES ('136515', 'EDUCACION ');
+INSERT INTO gifi (accno,description) VALUES ('136520', 'MEDICOS, ODONTOLOGICOS Y SIMILARES ');
+INSERT INTO gifi (accno,description) VALUES ('136525', 'CALAMIDAD DOMESTICA ');
+INSERT INTO gifi (accno,description) VALUES ('136530', 'RESPONSABILIDADES ');
+INSERT INTO gifi (accno,description) VALUES ('136595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('1370', 'PRESTAMOS A PARTICULARES ');
+INSERT INTO gifi (accno,description) VALUES ('137005', 'CON GARANTIA REAL ');
+INSERT INTO gifi (accno,description) VALUES ('137010', 'CON GARANTIA PERSONAL ');
+INSERT INTO gifi (accno,description) VALUES ('1380', 'DEUDORES VARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('138005', 'DEPOSITARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('138010', 'COMISIONISTAS DE BOLSAS ');
+INSERT INTO gifi (accno,description) VALUES ('138015', 'FONDO DE INVERSION ');
+INSERT INTO gifi (accno,description) VALUES ('138020', 'CUENTAS POR COBRAR DE TERCEROS ');
+INSERT INTO gifi (accno,description) VALUES ('138025', 'PAGOS POR CUENTA DE TERCEROS ');
+INSERT INTO gifi (accno,description) VALUES ('138030', 'FONDOS DE INVERSION SOCIAL ');
+INSERT INTO gifi (accno,description) VALUES ('138095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('1385', 'DERECHOS DE RECOMPRA DE CARTERA NEGOCIADA ');
+INSERT INTO gifi (accno,description) VALUES ('1390', 'DEUDAS DE DIFICIL COBRO ');
+INSERT INTO gifi (accno,description) VALUES ('1399', 'PROVISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('139905', 'CLIENTES ');
+INSERT INTO gifi (accno,description) VALUES ('139910', 'CUENTAS CORRIENTES COMERCIALES ');
+INSERT INTO gifi (accno,description) VALUES ('139915', 'CUENTAS POR COBRAR A CASA MATRIZ ');
+INSERT INTO gifi (accno,description) VALUES ('139920', 'CUENTAS POR COBRAR A VINCULADOS ECONOMICOS ');
+INSERT INTO gifi (accno,description) VALUES ('139925', 'CUENTAS POR COBRAR A SOCIOS Y ACCIONISTAS ');
+INSERT INTO gifi (accno,description) VALUES ('139930', 'ANTICIPOS Y AVANCES ');
+INSERT INTO gifi (accno,description) VALUES ('139932', 'CUENTAS DE OPERACION CONJUNTA ');
+INSERT INTO gifi (accno,description) VALUES ('139935', 'DEPOSITOS ');
+INSERT INTO gifi (accno,description) VALUES ('139940', 'PROMESAS DE COMPRAVENTA ');
+INSERT INTO gifi (accno,description) VALUES ('139945', 'INGRESOS POR COBRAR ');
+INSERT INTO gifi (accno,description) VALUES ('139950', 'RETENCION SOBRE CONTRATOS ');
+INSERT INTO gifi (accno,description) VALUES ('139955', 'RECLAMACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('139960', 'CUENTAS POR COBRAR A TRABAJADORES ');
+INSERT INTO gifi (accno,description) VALUES ('139965', 'PRESTAMOS A PARTICULARES ');
+INSERT INTO gifi (accno,description) VALUES ('139975', 'DEUDORES VARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('139980', 'DERECHOS DE RECOMPRA DE CARTERA NEGOCIADA ');
+INSERT INTO gifi (accno,description) VALUES ('14', 'INVENTARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('1405', 'MATERIAS PRIMAS ');
+INSERT INTO gifi (accno,description) VALUES ('140599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1410', 'PRODUCTOS EN PROCESO ');
+INSERT INTO gifi (accno,description) VALUES ('141099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1415', 'OBRAS DE CONSTRUCCION EN CURSO ');
+INSERT INTO gifi (accno,description) VALUES ('141599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1417', 'OBRAS DE URBANISMO ');
+INSERT INTO gifi (accno,description) VALUES ('141799', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1420', 'CONTRATOS EN EJECUCION ');
+INSERT INTO gifi (accno,description) VALUES ('142099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1425', 'CULTIVOS EN DESARROLLO ');
+INSERT INTO gifi (accno,description) VALUES ('142599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1430', 'PRODUCTOS TERMINADOS ');
+INSERT INTO gifi (accno,description) VALUES ('143005', 'PRODUCTOS MANUFACTURADOS ');
+INSERT INTO gifi (accno,description) VALUES ('143010', 'PRODUCTOS EXTRAIDOS Y/O PROCESADOS ');
+INSERT INTO gifi (accno,description) VALUES ('143015', 'PRODUCTOS AGRICOLAS Y FORESTALES ');
+INSERT INTO gifi (accno,description) VALUES ('143020', 'SUBPRODUCTOS ');
+INSERT INTO gifi (accno,description) VALUES ('143025', 'PRODUCTOS DE PESCA ');
+INSERT INTO gifi (accno,description) VALUES ('143099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1435', 'MERCANCIAS NO FABRICADAS POR LA EMPRESA ');
+INSERT INTO gifi (accno,description) VALUES ('143599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1440', 'BIENES RAICES PARA LA VENTA ');
+INSERT INTO gifi (accno,description) VALUES ('144099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1445', 'SEMOVIENTES ');
+INSERT INTO gifi (accno,description) VALUES ('144505', 'ESPECIES MAYORES ');
+INSERT INTO gifi (accno,description) VALUES ('144510', 'ESPECIES MENORES ');
+INSERT INTO gifi (accno,description) VALUES ('144599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1450', 'TERRENOS ');
+INSERT INTO gifi (accno,description) VALUES ('145005', 'POR URBANIZAR ');
+INSERT INTO gifi (accno,description) VALUES ('145010', 'URBANIZADOS POR CONSTRUIR ');
+INSERT INTO gifi (accno,description) VALUES ('145099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1455', 'MATERIALES, REPUESTOS Y ACCESORIOS ');
+INSERT INTO gifi (accno,description) VALUES ('145505', 'COMBUSTIBLES Y LUBRICANTES ');
+INSERT INTO gifi (accno,description) VALUES ('145510', 'ABONOS Y FERTILIZANTES ');
+INSERT INTO gifi (accno,description) VALUES ('145515', 'SEMILLAS TERMINADAS ');
+INSERT INTO gifi (accno,description) VALUES ('145520', 'FUNGICIDAS Y HERBICIDAS ');
+INSERT INTO gifi (accno,description) VALUES ('145525', 'MATERIALES Y REPUESTOS ');
+INSERT INTO gifi (accno,description) VALUES ('145530', 'LOZA Y CRISTALERIA ');
+INSERT INTO gifi (accno,description) VALUES ('145535', 'HERRAMIENTAS ');
+INSERT INTO gifi (accno,description) VALUES ('145540', 'MEDICINAS ');
+INSERT INTO gifi (accno,description) VALUES ('145545', 'ELEMENTOS HOSPITALARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('145550', 'INSTRUMENTAL QUIRURGICO ');
+INSERT INTO gifi (accno,description) VALUES ('145555', 'DOTACION Y SUMINISTRO A TRABAJADORES ');
+INSERT INTO gifi (accno,description) VALUES ('145560', 'ELEMENTOS DE ROPERIA Y LENCERIA ');
+INSERT INTO gifi (accno,description) VALUES ('145595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('145599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1460', 'ENVASES Y EMPAQUES ');
+INSERT INTO gifi (accno,description) VALUES ('146099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1465', 'INVENTARIOS EN TRANSITO ');
+INSERT INTO gifi (accno,description) VALUES ('146599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1499', 'PROVISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('149905', 'PARA OBSOLESCENCIA ');
+INSERT INTO gifi (accno,description) VALUES ('149910', 'PARA DIFERENCIA DE INVENTARIO FISICO ');
+INSERT INTO gifi (accno,description) VALUES ('149915', 'PARA PERDIDAS DE INVENTARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('149920', 'LIFO ');
+INSERT INTO gifi (accno,description) VALUES ('15', 'PROPIEDADES PLANTA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('1504', 'TERRENOS ');
+INSERT INTO gifi (accno,description) VALUES ('150405', 'URBANOS ');
+INSERT INTO gifi (accno,description) VALUES ('150410', 'RURALES ');
+INSERT INTO gifi (accno,description) VALUES ('150499', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1506', 'MATERIALES PROYECTOS PETROLEROS ');
+INSERT INTO gifi (accno,description) VALUES ('150605', 'TUBERIAS Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('150610', 'COSTOS DE IMPORTACION MATERIALES ');
+INSERT INTO gifi (accno,description) VALUES ('150615', 'PROYECTOS DE CONSTRUCCION ');
+INSERT INTO gifi (accno,description) VALUES ('150699', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1508', 'CONSTRUCCIONES EN CURSO ');
+INSERT INTO gifi (accno,description) VALUES ('150805', 'CONSTRUCCIONES Y EDIFICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('150810', 'ACUEDUCTOS PLANTAS Y REDES ');
+INSERT INTO gifi (accno,description) VALUES ('150815', 'VIAS DE COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('150820', 'POZOS ARTESIANOS ');
+INSERT INTO gifi (accno,description) VALUES ('150825', 'PROYECTOS DE EXPLORACION ');
+INSERT INTO gifi (accno,description) VALUES ('150830', 'PROYECTOS DE DESARROLLO ');
+INSERT INTO gifi (accno,description) VALUES ('150899', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1512', 'MAQUINARIA Y EQUIPOS EN MONTAJE ');
+INSERT INTO gifi (accno,description) VALUES ('151205', 'MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('151210', 'EQUIPO DE OFICINA ');
+INSERT INTO gifi (accno,description) VALUES ('151215', 'EQUIPO DE COMPUTACION Y COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('151220', 'EQUIPO MEDICO-CIENTIFICO ');
+INSERT INTO gifi (accno,description) VALUES ('151225', 'EQUIPO DE HOTELES Y RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('151230', 'FLOTA Y EQUIPO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('151235', 'FLOTA Y EQUIPO FLUVIAL Y/O MARITIMO ');
+INSERT INTO gifi (accno,description) VALUES ('151240', 'FLOTA Y EQUIPO AEREO ');
+INSERT INTO gifi (accno,description) VALUES ('151245', 'FLOTA Y EQUIPO FERREO ');
+INSERT INTO gifi (accno,description) VALUES ('151250', 'PLANTAS Y REDES ');
+INSERT INTO gifi (accno,description) VALUES ('151299', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1516', 'CONSTRUCCIONES Y EDIFICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('151605', 'EDIFICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('151610', 'OFICINAS ');
+INSERT INTO gifi (accno,description) VALUES ('151615', 'ALMACENES ');
+INSERT INTO gifi (accno,description) VALUES ('151620', 'FABRICAS Y PLANTAS INDUSTRIALES ');
+INSERT INTO gifi (accno,description) VALUES ('151625', 'SALAS DE EXHIBICION Y VENTAS ');
+INSERT INTO gifi (accno,description) VALUES ('151630', 'CAFETERIA Y CASINOS ');
+INSERT INTO gifi (accno,description) VALUES ('151635', 'SILOS ');
+INSERT INTO gifi (accno,description) VALUES ('151640', 'INVERNADEROS ');
+INSERT INTO gifi (accno,description) VALUES ('151645', 'CASETAS Y CAMPAMENTOS ');
+INSERT INTO gifi (accno,description) VALUES ('151650', 'INSTALACIONES AGROPECUARIAS ');
+INSERT INTO gifi (accno,description) VALUES ('151655', 'VIVIENDAS PARA EMPLEADOS Y OBREROS ');
+INSERT INTO gifi (accno,description) VALUES ('151660', 'TERMINAL DE BUSES Y TAXIS ');
+INSERT INTO gifi (accno,description) VALUES ('151663', 'TERMINAL MARITIMO ');
+INSERT INTO gifi (accno,description) VALUES ('151665', 'TERMINAL FERREO ');
+INSERT INTO gifi (accno,description) VALUES ('151670', 'PARQUEADEROS, GARAJES Y DEPOSITOS ');
+INSERT INTO gifi (accno,description) VALUES ('151675', 'HANGARES ');
+INSERT INTO gifi (accno,description) VALUES ('151680', 'BODEGAS ');
+INSERT INTO gifi (accno,description) VALUES ('151695', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('151699', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1520', 'MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('152099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1524', 'EQUIPO DE OFICINA ');
+INSERT INTO gifi (accno,description) VALUES ('152405', 'MUEBLES Y ENSERES ');
+INSERT INTO gifi (accno,description) VALUES ('152410', 'EQUIPOS ');
+INSERT INTO gifi (accno,description) VALUES ('152495', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('152499', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1528', 'EQUIPO DE COMPUTACION Y COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('152805', 'EQUIPOS DE PROCESAMIENTO DE DATOS ');
+INSERT INTO gifi (accno,description) VALUES ('152810', 'EQUIPOS DE TELECOMUNICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('152815', 'EQUIPOS DE RADIO ');
+INSERT INTO gifi (accno,description) VALUES ('152820', 'SATELITES Y ANTENAS ');
+INSERT INTO gifi (accno,description) VALUES ('152825', 'LINEAS TELEFONICAS ');
+INSERT INTO gifi (accno,description) VALUES ('152895', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('152899', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1532', 'EQUIPO MEDICO - CIENTIFICO ');
+INSERT INTO gifi (accno,description) VALUES ('153205', 'MEDICO ');
+INSERT INTO gifi (accno,description) VALUES ('153210', 'ODONTOLOGICO ');
+INSERT INTO gifi (accno,description) VALUES ('153215', 'LABORATORIO ');
+INSERT INTO gifi (accno,description) VALUES ('153220', 'INSTRUMENTAL ');
+INSERT INTO gifi (accno,description) VALUES ('153295', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('153299', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1536', 'EQUIPO DE HOTELES Y RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('153605', 'DE HABITACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('153610', 'DE COMESTIBLES Y BEBIDAS ');
+INSERT INTO gifi (accno,description) VALUES ('153695', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('153699', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1540', 'FLOTA Y EQUIPO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('154005', 'AUTOS, CAMIONETAS Y CAMPEROS ');
+INSERT INTO gifi (accno,description) VALUES ('154008', 'CAMIONES, VOLQUETAS Y FURGONES ');
+INSERT INTO gifi (accno,description) VALUES ('154010', 'TRACTOMULAS Y REMOLQUES ');
+INSERT INTO gifi (accno,description) VALUES ('154015', 'BUSES Y BUSETAS ');
+INSERT INTO gifi (accno,description) VALUES ('154017', 'RECOLECTORES Y CONTENEDORES ');
+INSERT INTO gifi (accno,description) VALUES ('154020', 'MONTACARGAS ');
+INSERT INTO gifi (accno,description) VALUES ('154025', 'PALAS Y GRUAS ');
+INSERT INTO gifi (accno,description) VALUES ('154030', 'MOTOCICLETAS ');
+INSERT INTO gifi (accno,description) VALUES ('154035', 'BICICLETAS ');
+INSERT INTO gifi (accno,description) VALUES ('154040', 'ESTIBAS Y CARRETAS ');
+INSERT INTO gifi (accno,description) VALUES ('154045', 'BANDAS TRANSPORTADORAS ');
+INSERT INTO gifi (accno,description) VALUES ('154095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('154099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1544', 'FLOTA Y EQUIPO FLUVIAL Y/O MARITIMO ');
+INSERT INTO gifi (accno,description) VALUES ('154405', 'BUQUES ');
+INSERT INTO gifi (accno,description) VALUES ('154410', 'LANCHAS ');
+INSERT INTO gifi (accno,description) VALUES ('154415', 'REMOLCADORAS ');
+INSERT INTO gifi (accno,description) VALUES ('154420', 'BOTES ');
+INSERT INTO gifi (accno,description) VALUES ('154425', 'BOYAS ');
+INSERT INTO gifi (accno,description) VALUES ('154430', 'AMARRES ');
+INSERT INTO gifi (accno,description) VALUES ('154435', 'CONTENEDORES Y CHASSISES ');
+INSERT INTO gifi (accno,description) VALUES ('154440', 'GABARRAS ');
+INSERT INTO gifi (accno,description) VALUES ('154495', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('154499', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1548', 'FLOTA Y EQUIPO AEREO ');
+INSERT INTO gifi (accno,description) VALUES ('154805', 'AVIONES ');
+INSERT INTO gifi (accno,description) VALUES ('154810', 'AVIONETAS ');
+INSERT INTO gifi (accno,description) VALUES ('154815', 'HELICOPTEROS ');
+INSERT INTO gifi (accno,description) VALUES ('154820', 'TURBINAS Y MOTORES ');
+INSERT INTO gifi (accno,description) VALUES ('154825', 'MANUALES DE ENTRENAMIENTO PERSONAL TECNICO ');
+INSERT INTO gifi (accno,description) VALUES ('154830', 'EQUIPOS DE VUELO ');
+INSERT INTO gifi (accno,description) VALUES ('154895', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('154899', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1552', 'FLOTA Y EQUIPO FERREO ');
+INSERT INTO gifi (accno,description) VALUES ('155205', 'LOCOMOTORAS ');
+INSERT INTO gifi (accno,description) VALUES ('155210', 'VAGONES ');
+INSERT INTO gifi (accno,description) VALUES ('155215', 'REDES FERREAS ');
+INSERT INTO gifi (accno,description) VALUES ('155295', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('155299', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1556', 'ACUEDUCTOS PLANTAS Y REDES ');
+INSERT INTO gifi (accno,description) VALUES ('155605', 'INSTALACIONES PARA AGUA Y ENERGIA ');
+INSERT INTO gifi (accno,description) VALUES ('155610', 'ACUEDUCTO ACEQUIAS Y CANALIZACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('155615', 'PLANTAS DE GENERACION HIDRAULICA ');
+INSERT INTO gifi (accno,description) VALUES ('155620', 'PLANTAS DE GENERACION TERMICA ');
+INSERT INTO gifi (accno,description) VALUES ('155625', 'PLANTAS DE GENERACION A GAS ');
+INSERT INTO gifi (accno,description) VALUES ('155628', 'PLANTAS DE GENERACION DIESEL, GASOLINA Y PETROLEO ');
+INSERT INTO gifi (accno,description) VALUES ('155630', 'PLANTAS DE DISTRIBUCION ');
+INSERT INTO gifi (accno,description) VALUES ('155635', 'PLANTAS DE TRANSMISION Y SUBESTACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('155640', 'OLEODUCTOS ');
+INSERT INTO gifi (accno,description) VALUES ('155645', 'GASODUCTOS ');
+INSERT INTO gifi (accno,description) VALUES ('155647', 'POLIDUCTOS ');
+INSERT INTO gifi (accno,description) VALUES ('155650', 'REDES DE DISTRIBUCION ');
+INSERT INTO gifi (accno,description) VALUES ('155655', 'PLANTAS DE TRATAMIENTO ');
+INSERT INTO gifi (accno,description) VALUES ('155660', 'REDES DE RECOLECCION DE AGUAS NEGRAS ');
+INSERT INTO gifi (accno,description) VALUES ('155665', 'INSTALACIONES Y EQUIPO DE BOMBEO ');
+INSERT INTO gifi (accno,description) VALUES ('155670', 'REDES DE DISTRIBUCION DE VAPOR ');
+INSERT INTO gifi (accno,description) VALUES ('155675', 'REDES DE AIRE ');
+INSERT INTO gifi (accno,description) VALUES ('155680', 'REDES ALIMENTACION DE GAS ');
+INSERT INTO gifi (accno,description) VALUES ('155682', 'REDES EXTERNAS DE TELEFONIA ');
+INSERT INTO gifi (accno,description) VALUES ('155685', 'PLANTAS DESHIDRATADORAS ');
+INSERT INTO gifi (accno,description) VALUES ('155695', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('155699', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1560', 'ARMAMENTO DE VIGILANCIA ');
+INSERT INTO gifi (accno,description) VALUES ('156099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1562', 'ENVASES Y EMPAQUES ');
+INSERT INTO gifi (accno,description) VALUES ('156299', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1564', 'PLANTACIONES AGRICOLAS Y FORESTALES ');
+INSERT INTO gifi (accno,description) VALUES ('156405', 'CULTIVOS EN DESARROLLO ');
+INSERT INTO gifi (accno,description) VALUES ('156410', 'CULTIVOS AMORTIZABLES ');
+INSERT INTO gifi (accno,description) VALUES ('156499', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1568', 'VIAS DE COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('156805', 'PAVIMENTACION Y PATIOS ');
+INSERT INTO gifi (accno,description) VALUES ('156810', 'VIAS ');
+INSERT INTO gifi (accno,description) VALUES ('156815', 'PUENTES ');
+INSERT INTO gifi (accno,description) VALUES ('156820', 'CALLES ');
+INSERT INTO gifi (accno,description) VALUES ('156825', 'AERODROMOS ');
+INSERT INTO gifi (accno,description) VALUES ('156895', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('156899', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1572', 'MINAS Y CANTERAS ');
+INSERT INTO gifi (accno,description) VALUES ('157205', 'MINAS ');
+INSERT INTO gifi (accno,description) VALUES ('157210', 'CANTERAS ');
+INSERT INTO gifi (accno,description) VALUES ('157299', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1576', 'POZOS ARTESIANOS ');
+INSERT INTO gifi (accno,description) VALUES ('157699', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1580', 'YACIMIENTOS ');
+INSERT INTO gifi (accno,description) VALUES ('158099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1584', 'SEMOVIENTES ');
+INSERT INTO gifi (accno,description) VALUES ('158405', 'ESPECIES MENORES ');
+INSERT INTO gifi (accno,description) VALUES ('158410', 'ESPECIES MAYORES ');
+INSERT INTO gifi (accno,description) VALUES ('158499', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1588', 'PROPIEDADES PLANTA Y EQUIPO EN TRANSITO ');
+INSERT INTO gifi (accno,description) VALUES ('158805', 'MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('158810', 'EQUIPO DE OFICINA ');
+INSERT INTO gifi (accno,description) VALUES ('158815', 'EQUIPO DE COMPUTACION Y COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('158820', 'EQUIPO MEDICO CIENTIFICO ');
+INSERT INTO gifi (accno,description) VALUES ('158825', 'EQUIPO DE HOTELES Y RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('158830', 'FLOTA Y EQUIPO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('158835', 'FLOTA Y EQUIPO FLUVIAL Y/O MARITIMO ');
+INSERT INTO gifi (accno,description) VALUES ('158840', 'FLOTA Y EQUIPO AEREO ');
+INSERT INTO gifi (accno,description) VALUES ('158845', 'FLOTA Y EQUIPO FERREO ');
+INSERT INTO gifi (accno,description) VALUES ('158850', 'PLANTAS Y REDES ');
+INSERT INTO gifi (accno,description) VALUES ('158855', 'ARMAMENTO DE VIGILANCIA ');
+INSERT INTO gifi (accno,description) VALUES ('158860', 'SEMOVIENTES ');
+INSERT INTO gifi (accno,description) VALUES ('158865', 'ENVASES Y EMPAQUES ');
+INSERT INTO gifi (accno,description) VALUES ('158899', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1592', 'DEPRECIACION ACUMULADA ');
+INSERT INTO gifi (accno,description) VALUES ('159205', 'CONSTRUCCIONES Y EDIFICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('159210', 'MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('159215', 'EQUIPO DE OFICINA ');
+INSERT INTO gifi (accno,description) VALUES ('159220', 'EQUIPO DE COMPUTACION Y COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('159225', 'EQUIPO MEDICO CIENTIFICO ');
+INSERT INTO gifi (accno,description) VALUES ('159230', 'EQUIPO DE HOTELES Y RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('159235', 'FLOTA Y EQUIPO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('159240', 'FLOTA Y EQUIPO FLUVIAL Y/O MARITIMO ');
+INSERT INTO gifi (accno,description) VALUES ('159245', 'FLOTA Y EQUIPO AEREO ');
+INSERT INTO gifi (accno,description) VALUES ('159250', 'FLOTA Y EQUIPO FERREO ');
+INSERT INTO gifi (accno,description) VALUES ('159255', 'ACUEDUCTOS PLANTAS Y REDES ');
+INSERT INTO gifi (accno,description) VALUES ('159260', 'ARMAMENTO DE VIGILANCIA ');
+INSERT INTO gifi (accno,description) VALUES ('159265', 'ENVASES Y EMPAQUES ');
+INSERT INTO gifi (accno,description) VALUES ('159299', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1596', 'DEPRECIACION DIFERIDA ');
+INSERT INTO gifi (accno,description) VALUES ('159605', 'EXCESO FISCAL SOBRE LA CONTABLE ');
+INSERT INTO gifi (accno,description) VALUES ('159610', 'DEFECTO FISCAL SOBRE LA CONTABLE (CR) ');
+INSERT INTO gifi (accno,description) VALUES ('159699', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1597', 'AMORTIZACION ACUMULADA ');
+INSERT INTO gifi (accno,description) VALUES ('159705', 'PLANTACIONES AGRICOLAS Y FORESTALES ');
+INSERT INTO gifi (accno,description) VALUES ('159710', 'VIAS DE COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('159715', 'SEMOVIENTES ');
+INSERT INTO gifi (accno,description) VALUES ('159799', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1598', 'AGOTAMIENTO ACUMULADO ');
+INSERT INTO gifi (accno,description) VALUES ('159805', 'MINAS Y CANTERAS ');
+INSERT INTO gifi (accno,description) VALUES ('159815', 'POZOS ARTESIANOS ');
+INSERT INTO gifi (accno,description) VALUES ('159820', 'YACIMIENTOS ');
+INSERT INTO gifi (accno,description) VALUES ('159899', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1599', 'PROVISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('159904', 'TERRENOS ');
+INSERT INTO gifi (accno,description) VALUES ('159906', 'MATERIALES PROYECTOS PETROLEROS ');
+INSERT INTO gifi (accno,description) VALUES ('159908', 'CONSTRUCCIONES EN CURSO ');
+INSERT INTO gifi (accno,description) VALUES ('159912', 'MAQUINARIA EN MONTAJE ');
+INSERT INTO gifi (accno,description) VALUES ('159916', 'CONSTRUCCIONES Y EDIFICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('159920', 'MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('159924', 'EQUIPO DE OFICINA ');
+INSERT INTO gifi (accno,description) VALUES ('159928', 'EQUIPO DE COMPUTACION Y COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('159932', 'EQUIPO MEDICO CIENTIFICO ');
+INSERT INTO gifi (accno,description) VALUES ('159936', 'EQUIPO DE HOTELES Y RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('159940', 'FLOTA Y EQUIPO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('159944', 'FLOTA Y EQUIPO FLUVIAL Y/O MARITIMO ');
+INSERT INTO gifi (accno,description) VALUES ('159948', 'FLOTA Y EQUIPO AEREO ');
+INSERT INTO gifi (accno,description) VALUES ('159952', 'FLOTA Y EQUIPO FERREO ');
+INSERT INTO gifi (accno,description) VALUES ('159956', 'ACUEDUCTOS, PLANTAS Y REDES ');
+INSERT INTO gifi (accno,description) VALUES ('159960', 'ARMAMENTO DE VIGILANCIA ');
+INSERT INTO gifi (accno,description) VALUES ('159962', 'ENVASES Y EMPAQUES ');
+INSERT INTO gifi (accno,description) VALUES ('159964', 'PLANTACIONES AGRICOLAS Y FORESTALES ');
+INSERT INTO gifi (accno,description) VALUES ('159968', 'VIAS DE COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('159972', 'MINAS Y CANTERAS ');
+INSERT INTO gifi (accno,description) VALUES ('159980', 'POZOS ARTESIANOS ');
+INSERT INTO gifi (accno,description) VALUES ('159984', 'YACIMIENTOS ');
+INSERT INTO gifi (accno,description) VALUES ('159988', 'SEMOVIENTES ');
+INSERT INTO gifi (accno,description) VALUES ('159992', 'PROPIEDADES PLANTA Y EQUIPO EN TRANSITO ');
+INSERT INTO gifi (accno,description) VALUES ('16', 'INTANGIBLES ');
+INSERT INTO gifi (accno,description) VALUES ('1605', 'CREDITO MERCANTIL ');
+INSERT INTO gifi (accno,description) VALUES ('160505', 'FORMADO O ESTIMADO ');
+INSERT INTO gifi (accno,description) VALUES ('160510', 'ADQUIRIDO O COMPRADO ');
+INSERT INTO gifi (accno,description) VALUES ('160599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1610', 'MARCAS ');
+INSERT INTO gifi (accno,description) VALUES ('161005', 'ADQUIRIDAS ');
+INSERT INTO gifi (accno,description) VALUES ('161010', 'FORMADAS ');
+INSERT INTO gifi (accno,description) VALUES ('161099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1615', 'PATENTES ');
+INSERT INTO gifi (accno,description) VALUES ('161505', 'ADQUIRIDAS ');
+INSERT INTO gifi (accno,description) VALUES ('161510', 'FORMADAS ');
+INSERT INTO gifi (accno,description) VALUES ('161599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1620', 'CONCESIONES Y FRANQUICIAS ');
+INSERT INTO gifi (accno,description) VALUES ('162005', 'CONCESIONES ');
+INSERT INTO gifi (accno,description) VALUES ('162010', 'FRANQUICIAS ');
+INSERT INTO gifi (accno,description) VALUES ('162099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1625', 'DERECHOS ');
+INSERT INTO gifi (accno,description) VALUES ('162505', 'DERECHOS DE AUTOR ');
+INSERT INTO gifi (accno,description) VALUES ('162510', 'PUESTO DE BOLSA ');
+INSERT INTO gifi (accno,description) VALUES ('162515', 'EN FIDEICOMISOS INMOBILIARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('162520', 'EN FIDEICOMISOS DE GARANTIA ');
+INSERT INTO gifi (accno,description) VALUES ('162525', 'EN FIDEICOMISOS DE ADMINISTRACION ');
+INSERT INTO gifi (accno,description) VALUES ('162595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('162599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1630', 'KNOW HOW ');
+INSERT INTO gifi (accno,description) VALUES ('163099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1635', 'LICENCIAS ');
+INSERT INTO gifi (accno,description) VALUES ('163599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1698', 'AMORTIZACION ACUMULADA ');
+INSERT INTO gifi (accno,description) VALUES ('169805', 'CREDITO MERCANTIL ');
+INSERT INTO gifi (accno,description) VALUES ('169810', 'MARCAS ');
+INSERT INTO gifi (accno,description) VALUES ('169815', 'PATENTES ');
+INSERT INTO gifi (accno,description) VALUES ('169820', 'CONCESIONES Y FRANQUICIAS ');
+INSERT INTO gifi (accno,description) VALUES ('169830', 'DERECHOS ');
+INSERT INTO gifi (accno,description) VALUES ('169835', 'KNOW HOW ');
+INSERT INTO gifi (accno,description) VALUES ('169840', 'LICENCIAS ');
+INSERT INTO gifi (accno,description) VALUES ('169899', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1699', 'PROVISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('17', 'DIFERIDOS ');
+INSERT INTO gifi (accno,description) VALUES ('1705', 'GASTOS PAGADOS POR ANTICIPADO ');
+INSERT INTO gifi (accno,description) VALUES ('170505', 'INTERESES ');
+INSERT INTO gifi (accno,description) VALUES ('170510', 'HONORARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('170515', 'COMISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('170520', 'SEGUROS Y FIANZAS ');
+INSERT INTO gifi (accno,description) VALUES ('170525', 'ARRENDAMIENTOS ');
+INSERT INTO gifi (accno,description) VALUES ('170530', 'BODEGAJES ');
+INSERT INTO gifi (accno,description) VALUES ('170535', 'MANTENIMIENTO EQUIPOS ');
+INSERT INTO gifi (accno,description) VALUES ('170540', 'SERVICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('170545', 'SUSCRIPCIONES ');
+INSERT INTO gifi (accno,description) VALUES ('170595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('1710', 'CARGOS DIFERIDOS ');
+INSERT INTO gifi (accno,description) VALUES ('171004', 'ORGANIZACION Y PREOPERATIVOS ');
+INSERT INTO gifi (accno,description) VALUES ('171008', 'REMODELACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('171012', 'ESTUDIOS, INVESTIGACIONES Y PROYECTOS ');
+INSERT INTO gifi (accno,description) VALUES ('171016', 'PROGRAMAS PARA COMPUTADOR (SOFTWARE) ');
+INSERT INTO gifi (accno,description) VALUES ('171020', 'UTILES Y PAPELERIA ');
+INSERT INTO gifi (accno,description) VALUES ('171024', 'MEJORAS A PROPIEDADES AJENAS ');
+INSERT INTO gifi (accno,description) VALUES ('171028', 'CONTRIBUCIONES Y AFILIACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('171032', 'ENTRENAMIENTO DE PERSONAL ');
+INSERT INTO gifi (accno,description) VALUES ('171036', 'FERIAS Y EXPOSICIONES ');
+INSERT INTO gifi (accno,description) VALUES ('171040', 'LICENCIAS ');
+INSERT INTO gifi (accno,description) VALUES ('171044', 'PUBLICIDAD, PROPAGANDA Y AVISOS ');
+INSERT INTO gifi (accno,description) VALUES ('171048', 'ELEMENTOS DE ASEO Y CAFETERIA ');
+INSERT INTO gifi (accno,description) VALUES ('171052', 'MOLDES Y TROQUELES ');
+INSERT INTO gifi (accno,description) VALUES ('171056', 'INSTRUMENTAL QUIRURGICO ');
+INSERT INTO gifi (accno,description) VALUES ('171060', 'DOTACION Y SUMINISTRO A TRABAJADORES ');
+INSERT INTO gifi (accno,description) VALUES ('171064', 'ELEMENTOS DE ROPERIA Y LENCERIA ');
+INSERT INTO gifi (accno,description) VALUES ('171068', 'LOZA Y CRISTALERIA ');
+INSERT INTO gifi (accno,description) VALUES ('171072', 'DESCUENTO EN COLOCACION DE BONOS ');
+INSERT INTO gifi (accno,description) VALUES ('171076', 'IMPUESTO DE RENTA DIFERIDO "DEBITOS" POR DIFERENCIAS TEMPORALES ');
+INSERT INTO gifi (accno,description) VALUES ('171080', 'CONCURSOS Y LICITACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('171095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('171099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1715', 'COSTOS DE EXPLORACION POR AMORTIZAR ');
+INSERT INTO gifi (accno,description) VALUES ('171505', 'POZOS SECOS ');
+INSERT INTO gifi (accno,description) VALUES ('171510', 'POZOS NO COMERCIALES ');
+INSERT INTO gifi (accno,description) VALUES ('171515', 'OTROS COSTOS DE EXPLORACION ');
+INSERT INTO gifi (accno,description) VALUES ('171599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1720', 'COSTOS DE EXPLOTACION Y DESARROLLO ');
+INSERT INTO gifi (accno,description) VALUES ('172005', 'PERFORACION Y EXPLOTACION ');
+INSERT INTO gifi (accno,description) VALUES ('172010', 'PERFORACIONES CAMPOS EN DESARROLLO ');
+INSERT INTO gifi (accno,description) VALUES ('172015', 'FACILIDADES DE PRODUCCION ');
+INSERT INTO gifi (accno,description) VALUES ('172020', 'SERVICIO A POZOS ');
+INSERT INTO gifi (accno,description) VALUES ('172099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1730', 'CARGOS POR CORRECCION MONETARIA DIFERIDA ');
+INSERT INTO gifi (accno,description) VALUES ('1798', 'AMORTIZACION ACUMULADA ');
+INSERT INTO gifi (accno,description) VALUES ('179805', 'COSTOS DE EXPLORACION POR AMORTIZAR ');
+INSERT INTO gifi (accno,description) VALUES ('179810', 'COSTOS DE EXPLOTACION Y DESARROLLO ');
+INSERT INTO gifi (accno,description) VALUES ('179899', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('18', 'OTROS ACTIVOS ');
+INSERT INTO gifi (accno,description) VALUES ('1805', 'BIENES DE ARTE Y CULTURA ');
+INSERT INTO gifi (accno,description) VALUES ('180505', 'OBRAS DE ARTE ');
+INSERT INTO gifi (accno,description) VALUES ('180510', 'BIBLIOTECAS ');
+INSERT INTO gifi (accno,description) VALUES ('180595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('180599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1895', 'DIVERSOS ');
+INSERT INTO gifi (accno,description) VALUES ('189505', 'MAQUINAS PORTEADORAS ');
+INSERT INTO gifi (accno,description) VALUES ('189510', 'BIENES ENTREGADOS EN COMODATO ');
+INSERT INTO gifi (accno,description) VALUES ('189515', 'AMORTIZACION ACUMULADA DE BIENES ENTREGADOS EN COMODATO (CR) ');
+INSERT INTO gifi (accno,description) VALUES ('189520', 'BIENES RECIBIDOS EN PAGO ');
+INSERT INTO gifi (accno,description) VALUES ('189525', 'DERECHOS SUCESORALES ');
+INSERT INTO gifi (accno,description) VALUES ('189530', 'ESTAMPILLAS ');
+INSERT INTO gifi (accno,description) VALUES ('189595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('189599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('1899', 'PROVISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('189905', 'BIENES DE ARTE Y CULTURA ');
+INSERT INTO gifi (accno,description) VALUES ('189995', 'DIVERSOS ');
+INSERT INTO gifi (accno,description) VALUES ('19', 'VALORIZACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('1905', 'DE INVERSIONES ');
+INSERT INTO gifi (accno,description) VALUES ('190505', 'ACCIONES ');
+INSERT INTO gifi (accno,description) VALUES ('190510', 'CUOTAS O PARTES DE INTERES SOCIAL ');
+INSERT INTO gifi (accno,description) VALUES ('190515', 'DERECHOS FIDUCIARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('1910', 'DE PROPIEDADES PLANTA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('191004', 'TERRENOS ');
+INSERT INTO gifi (accno,description) VALUES ('191006', 'MATERIALES PROYECTOS PETROLEROS ');
+INSERT INTO gifi (accno,description) VALUES ('191008', 'CONSTRUCCIONES Y EDIFICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('191012', 'MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('191016', 'EQUIPO DE OFICINA ');
+INSERT INTO gifi (accno,description) VALUES ('191020', 'EQUIPO DE COMPUTACION Y COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('191024', 'EQUIPO MEDICO CIENTIFICO ');
+INSERT INTO gifi (accno,description) VALUES ('191028', 'EQUIPO DE HOTELES Y RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('191032', 'FLOTA Y EQUIPO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('191036', 'FLOTA Y EQUIPO FLUVIAL Y/O MARITIMO ');
+INSERT INTO gifi (accno,description) VALUES ('191040', 'FLOTA Y EQUIPO AEREO ');
+INSERT INTO gifi (accno,description) VALUES ('191044', 'FLOTA Y EQUIPO FERREO ');
+INSERT INTO gifi (accno,description) VALUES ('191048', 'ACUEDUCTOS PLANTAS Y REDES ');
+INSERT INTO gifi (accno,description) VALUES ('191052', 'ARMAMENTO DE VIGILANCIA ');
+INSERT INTO gifi (accno,description) VALUES ('191056', 'ENVASES Y EMPAQUES ');
+INSERT INTO gifi (accno,description) VALUES ('191060', 'PLANTACIONES AGRICOLAS Y FORESTALES ');
+INSERT INTO gifi (accno,description) VALUES ('191064', 'VIAS DE COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('191068', 'MINAS Y CANTERAS ');
+INSERT INTO gifi (accno,description) VALUES ('191072', 'POZOS ARTESIANOS ');
+INSERT INTO gifi (accno,description) VALUES ('191076', 'YACIMIENTOS ');
+INSERT INTO gifi (accno,description) VALUES ('191080', 'SEMOVIENTES ');
+INSERT INTO gifi (accno,description) VALUES ('1995', 'DE OTROS ACTIVOS ');
+INSERT INTO gifi (accno,description) VALUES ('199505', 'BIENES DE ARTE Y CULTURA ');
+INSERT INTO gifi (accno,description) VALUES ('199510', 'BIENES ENTREGADOS EN COMODATO ');
+INSERT INTO gifi (accno,description) VALUES ('199515', 'BIENES RECIBIDOS EN PAGO ');
+INSERT INTO gifi (accno,description) VALUES ('199520', 'INVENTARIO DE SEMOVIENTES ');
+INSERT INTO gifi (accno,description) VALUES ('2', 'PASIVO ');
+INSERT INTO gifi (accno,description) VALUES ('21', 'OBLIGACIONES FINANCIERAS ');
+INSERT INTO gifi (accno,description) VALUES ('2105', 'BANCOS NACIONALES ');
+INSERT INTO gifi (accno,description) VALUES ('210505', 'SOBREGIROS ');
+INSERT INTO gifi (accno,description) VALUES ('210510', 'PAGARES ');
+INSERT INTO gifi (accno,description) VALUES ('210515', 'CARTAS DE CREDITO ');
+INSERT INTO gifi (accno,description) VALUES ('210520', 'ACEPTACIONES BANCARIAS ');
+INSERT INTO gifi (accno,description) VALUES ('2110', 'BANCOS DEL EXTERIOR ');
+INSERT INTO gifi (accno,description) VALUES ('211005', 'SOBREGIROS ');
+INSERT INTO gifi (accno,description) VALUES ('211010', 'PAGARES ');
+INSERT INTO gifi (accno,description) VALUES ('211015', 'CARTAS DE CREDITO ');
+INSERT INTO gifi (accno,description) VALUES ('211020', 'ACEPTACIONES BANCARIAS ');
+INSERT INTO gifi (accno,description) VALUES ('2115', 'CORPORACIONES FINANCIERAS ');
+INSERT INTO gifi (accno,description) VALUES ('211505', 'PAGARES ');
+INSERT INTO gifi (accno,description) VALUES ('211510', 'ACEPTACIONES FINANCIERAS ');
+INSERT INTO gifi (accno,description) VALUES ('211515', 'CARTAS DE CREDITO ');
+INSERT INTO gifi (accno,description) VALUES ('2120', 'COMPAŃIAS DE FINANCIAMIENTO COMERCIAL ');
+INSERT INTO gifi (accno,description) VALUES ('212005', 'PAGARES ');
+INSERT INTO gifi (accno,description) VALUES ('212010', 'ACEPTACIONES FINANCIERAS ');
+INSERT INTO gifi (accno,description) VALUES ('2125', 'CORPORACIONES DE AHORRO Y VIVIENDA ');
+INSERT INTO gifi (accno,description) VALUES ('212505', 'SOBREGIROS ');
+INSERT INTO gifi (accno,description) VALUES ('212510', 'PAGARES ');
+INSERT INTO gifi (accno,description) VALUES ('212515', 'HIPOTECARIAS ');
+INSERT INTO gifi (accno,description) VALUES ('2130', 'ENTIDADES FINANCIERAS DEL EXTERIOR ');
+INSERT INTO gifi (accno,description) VALUES ('2135', 'COMPROMISOS DE RECOMPRA DE INVERSIONES NEGOCIADAS ');
+INSERT INTO gifi (accno,description) VALUES ('213505', 'ACCIONES ');
+INSERT INTO gifi (accno,description) VALUES ('213510', 'CUOTAS O PARTES DE INTERES SOCIAL ');
+INSERT INTO gifi (accno,description) VALUES ('213515', 'BONOS ');
+INSERT INTO gifi (accno,description) VALUES ('213520', 'CEDULAS ');
+INSERT INTO gifi (accno,description) VALUES ('213525', 'CERTIFICADOS ');
+INSERT INTO gifi (accno,description) VALUES ('213530', 'PAPELES COMERCIALES ');
+INSERT INTO gifi (accno,description) VALUES ('213535', 'TITULOS ');
+INSERT INTO gifi (accno,description) VALUES ('213540', 'ACEPTACIONES BANCARIAS O FINANCIERAS ');
+INSERT INTO gifi (accno,description) VALUES ('213595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('2140', 'COMPROMISOS DE RECOMPRA DE CARTERA NEGOCIADA ');
+INSERT INTO gifi (accno,description) VALUES ('2145', 'OBLIGACIONES GUBERNAMENTALES ');
+INSERT INTO gifi (accno,description) VALUES ('214505', 'GOBIERNO NACIONAL ');
+INSERT INTO gifi (accno,description) VALUES ('214510', 'ENTIDADES OFICIALES ');
+INSERT INTO gifi (accno,description) VALUES ('2195', 'OTRAS OBLIGACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('219505', 'PARTICULARES ');
+INSERT INTO gifi (accno,description) VALUES ('219510', 'COMPAŃIAS VINCULADAS ');
+INSERT INTO gifi (accno,description) VALUES ('219515', 'CASA MATRIZ ');
+INSERT INTO gifi (accno,description) VALUES ('219520', 'SOCIOS O ACCIONISTAS ');
+INSERT INTO gifi (accno,description) VALUES ('219525', 'FONDOS Y COOPERATIVAS ');
+INSERT INTO gifi (accno,description) VALUES ('219595', 'OTRAS ');
+INSERT INTO gifi (accno,description) VALUES ('22', 'PROVEEDORES ');
+INSERT INTO gifi (accno,description) VALUES ('2205', 'NACIONALES ');
+INSERT INTO gifi (accno,description) VALUES ('2210', 'DEL EXTERIOR ');
+INSERT INTO gifi (accno,description) VALUES ('2215', 'CUENTAS CORRIENTES COMERCIALES ');
+INSERT INTO gifi (accno,description) VALUES ('2220', 'CASA MATRIZ ');
+INSERT INTO gifi (accno,description) VALUES ('2225', 'COMPAŃIAS VINCULADAS ');
+INSERT INTO gifi (accno,description) VALUES ('23', 'CUENTAS POR PAGAR ');
+INSERT INTO gifi (accno,description) VALUES ('2305', 'CUENTAS CORRIENTES COMERCIALES ');
+INSERT INTO gifi (accno,description) VALUES ('2310', 'A CASA MATRIZ ');
+INSERT INTO gifi (accno,description) VALUES ('2315', 'A COMPAŃIAS VINCULADAS ');
+INSERT INTO gifi (accno,description) VALUES ('2320', 'A CONTRATISTAS ');
+INSERT INTO gifi (accno,description) VALUES ('2330', 'ORDENES DE COMPRA POR UTILIZAR ');
+INSERT INTO gifi (accno,description) VALUES ('2335', 'COSTOS Y GASTOS POR PAGAR ');
+INSERT INTO gifi (accno,description) VALUES ('233505', 'GASTOS FINANCIEROS ');
+INSERT INTO gifi (accno,description) VALUES ('233510', 'GASTOS LEGALES ');
+INSERT INTO gifi (accno,description) VALUES ('233515', 'LIBROS, SUSCRIPCIONES, PERIODICOS Y REVISTAS ');
+INSERT INTO gifi (accno,description) VALUES ('233520', 'COMISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('233525', 'HONORARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('233530', 'SERVICIOS TECNICOS ');
+INSERT INTO gifi (accno,description) VALUES ('233535', 'SERVICIOS DE MANTENIMIENTO ');
+INSERT INTO gifi (accno,description) VALUES ('233540', 'ARRENDAMIENTOS ');
+INSERT INTO gifi (accno,description) VALUES ('233545', 'TRANSPORTES, FLETES Y ACARREOS ');
+INSERT INTO gifi (accno,description) VALUES ('233550', 'SERVICIOS PUBLICOS ');
+INSERT INTO gifi (accno,description) VALUES ('233555', 'SEGUROS ');
+INSERT INTO gifi (accno,description) VALUES ('233560', 'GASTOS DE VIAJE ');
+INSERT INTO gifi (accno,description) VALUES ('233565', 'GASTOS DE REPRESENTACION Y RELACIONES PUBLICAS ');
+INSERT INTO gifi (accno,description) VALUES ('233570', 'SERVICIOS ADUANEROS ');
+INSERT INTO gifi (accno,description) VALUES ('233595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('2340', 'INSTALAMENTOS POR PAGAR ');
+INSERT INTO gifi (accno,description) VALUES ('2345', 'ACREEDORES OFICIALES ');
+INSERT INTO gifi (accno,description) VALUES ('2350', 'REGALIAS POR PAGAR ');
+INSERT INTO gifi (accno,description) VALUES ('2355', 'DEUDAS CON ACCIONISTAS O SOCIOS ');
+INSERT INTO gifi (accno,description) VALUES ('235505', 'ACCIONISTAS ');
+INSERT INTO gifi (accno,description) VALUES ('235510', 'SOCIOS ');
+INSERT INTO gifi (accno,description) VALUES ('2360', 'DIVIDENDOS O PARTICIPACIONES POR PAGAR ');
+INSERT INTO gifi (accno,description) VALUES ('236005', 'DIVIDENDOS ');
+INSERT INTO gifi (accno,description) VALUES ('236010', 'PARTICIPACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('2365', 'RETENCION EN LA FUENTE ');
+INSERT INTO gifi (accno,description) VALUES ('236505', 'SALARIOS Y PAGOS LABORALES ');
+INSERT INTO gifi (accno,description) VALUES ('236510', 'DIVIDENDOS Y/O PARTICIPACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('236515', 'HONORARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('236520', 'COMISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('236525', 'SERVICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('236530', 'ARRENDAMIENTOS ');
+INSERT INTO gifi (accno,description) VALUES ('236535', 'RENDIMIENTOS FINANCIEROS ');
+INSERT INTO gifi (accno,description) VALUES ('236540', 'COMPRAS ');
+INSERT INTO gifi (accno,description) VALUES ('236545', 'LOTERIAS, RIFAS, APUESTAS Y SIMILARES ');
+INSERT INTO gifi (accno,description) VALUES ('236550', 'POR PAGOS AL EXTERIOR ');
+INSERT INTO gifi (accno,description) VALUES ('236555', 'POR INGRESOS OBTENIDOS EN EL EXTERIOR ');
+INSERT INTO gifi (accno,description) VALUES ('236560', 'ENAJENACION PROPIEDADES PLANTA Y EQUIPO PERSONAS NATURALES ');
+INSERT INTO gifi (accno,description) VALUES ('236565', 'POR IMPUESTO DE TIMBRE ');
+INSERT INTO gifi (accno,description) VALUES ('236570', 'OTRAS RETENCIONES Y PATRIMONIO ');
+INSERT INTO gifi (accno,description) VALUES ('236575', 'AUTORRETENCIONES ');
+INSERT INTO gifi (accno,description) VALUES ('2370', 'RETENCIONES Y APORTES DE NOMINA ');
+INSERT INTO gifi (accno,description) VALUES ('237005', 'APORTES AL I.S.S. ');
+INSERT INTO gifi (accno,description) VALUES ('237010', 'APORTES AL I.C.B.F., SENA Y CAJAS DE COMPENSACION ');
+INSERT INTO gifi (accno,description) VALUES ('237015', 'APORTES AL F.I.C. ');
+INSERT INTO gifi (accno,description) VALUES ('237025', 'EMBARGOS JUDICIALES ');
+INSERT INTO gifi (accno,description) VALUES ('237030', 'LIBRANZAS ');
+INSERT INTO gifi (accno,description) VALUES ('237035', 'SINDICATOS ');
+INSERT INTO gifi (accno,description) VALUES ('237040', 'COOPERATIVAS ');
+INSERT INTO gifi (accno,description) VALUES ('237045', 'FONDOS ');
+INSERT INTO gifi (accno,description) VALUES ('237095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('2375', 'CUOTAS POR DEVOLVER ');
+INSERT INTO gifi (accno,description) VALUES ('2380', 'ACREEDORES VARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('238005', 'DEPOSITARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('238010', 'COMISIONISTAS DE BOLSAS ');
+INSERT INTO gifi (accno,description) VALUES ('238015', 'SOCIEDAD ADMINISTRADORA - FONDOS DE INVERSION ');
+INSERT INTO gifi (accno,description) VALUES ('238020', 'REINTEGROS POR PAGAR ');
+INSERT INTO gifi (accno,description) VALUES ('238025', 'FONDO DE PERSEVERANCIA ');
+INSERT INTO gifi (accno,description) VALUES ('238030', 'FONDOS DE CESANTIAS Y/O PENSIONES ');
+INSERT INTO gifi (accno,description) VALUES ('238035', 'DONACIONES ASIGNADAS POR PAGAR ');
+INSERT INTO gifi (accno,description) VALUES ('238095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('24', 'IMPUESTOS, GRAVAMENES Y TASAS ');
+INSERT INTO gifi (accno,description) VALUES ('2404', 'DE RENTA Y COMPLEMENTARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('240405', 'VIGENCIA FISCAL CORRIENTE ');
+INSERT INTO gifi (accno,description) VALUES ('240410', 'VIGENCIAS FISCALES ANTERIORES ');
+INSERT INTO gifi (accno,description) VALUES ('2408', 'IMPUESTO SOBRE LAS VENTAS POR PAGAR ');
+INSERT INTO gifi (accno,description) VALUES ('2412', 'DE INDUSTRIA Y COMERCIO ');
+INSERT INTO gifi (accno,description) VALUES ('241205', 'VIGENCIA FISCAL CORRIENTE ');
+INSERT INTO gifi (accno,description) VALUES ('241210', 'VIGENCIAS FISCALES ANTERIORES ');
+INSERT INTO gifi (accno,description) VALUES ('2416', 'A LA PROPIEDAD RAIZ ');
+INSERT INTO gifi (accno,description) VALUES ('2420', 'DERECHOS SOBRE INSTRUMENTOS PUBLICOS ');
+INSERT INTO gifi (accno,description) VALUES ('2424', 'DE VALORIZACION ');
+INSERT INTO gifi (accno,description) VALUES ('242405', 'VIGENCIA FISCAL CORRIENTE ');
+INSERT INTO gifi (accno,description) VALUES ('242410', 'VIGENCIAS FISCALES ANTERIORES ');
+INSERT INTO gifi (accno,description) VALUES ('2428', 'DE TURISMO ');
+INSERT INTO gifi (accno,description) VALUES ('2432', 'TASA POR UTILIZACION DE PUERTOS ');
+INSERT INTO gifi (accno,description) VALUES ('2436', 'DE VEHICULOS ');
+INSERT INTO gifi (accno,description) VALUES ('243605', 'VIGENCIA FISCAL CORRIENTE ');
+INSERT INTO gifi (accno,description) VALUES ('243610', 'VIGENCIAS FISCALES ANTERIORES ');
+INSERT INTO gifi (accno,description) VALUES ('2440', 'DE ESPECTACULOS PUBLICOS ');
+INSERT INTO gifi (accno,description) VALUES ('2444', 'DE HIDROCARBUROS Y MINAS ');
+INSERT INTO gifi (accno,description) VALUES ('244405', 'DE HIDROCARBUROS ');
+INSERT INTO gifi (accno,description) VALUES ('244410', 'DE MINAS ');
+INSERT INTO gifi (accno,description) VALUES ('2448', 'REGALIAS E IMPUESTOS A LA PEQUEŃA Y MEDIANA MINERIA ');
+INSERT INTO gifi (accno,description) VALUES ('2452', 'A LAS EXPORTACIONES CAFETERAS ');
+INSERT INTO gifi (accno,description) VALUES ('2456', 'A LAS IMPORTACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('2460', 'CUOTAS DE FOMENTO ');
+INSERT INTO gifi (accno,description) VALUES ('2464', 'DE LICORES, CERVEZAS Y CIGARRILLOS ');
+INSERT INTO gifi (accno,description) VALUES ('246405', 'DE LICORES ');
+INSERT INTO gifi (accno,description) VALUES ('246410', 'DE CERVEZAS ');
+INSERT INTO gifi (accno,description) VALUES ('246415', 'DE CIGARRILLOS ');
+INSERT INTO gifi (accno,description) VALUES ('2468', 'AL SACRIFICIO DE GANADO ');
+INSERT INTO gifi (accno,description) VALUES ('2472', 'AL AZAR Y JUEGOS ');
+INSERT INTO gifi (accno,description) VALUES ('2476', 'GRAVAMENES Y REGALIAS POR UTILIZACION DEL SUELO ');
+INSERT INTO gifi (accno,description) VALUES ('2495', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('25', 'OBLIGACIONES LABORALES ');
+INSERT INTO gifi (accno,description) VALUES ('2505', 'SALARIOS POR PAGAR ');
+INSERT INTO gifi (accno,description) VALUES ('2510', 'CESANTIAS CONSOLIDADAS ');
+INSERT INTO gifi (accno,description) VALUES ('251005', 'LEY LABORAL ANTERIOR ');
+INSERT INTO gifi (accno,description) VALUES ('251010', 'LEY 50 DE 1990 Y NORMAS POSTERIORES ');
+INSERT INTO gifi (accno,description) VALUES ('2515', 'INTERESES SOBRE CESANTIAS ');
+INSERT INTO gifi (accno,description) VALUES ('2520', 'PRIMA DE SERVICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('2525', 'VACACIONES CONSOLIDADAS ');
+INSERT INTO gifi (accno,description) VALUES ('2530', 'PRESTACIONES EXTRALEGALES ');
+INSERT INTO gifi (accno,description) VALUES ('253005', 'PRIMAS ');
+INSERT INTO gifi (accno,description) VALUES ('253010', 'AUXILIOS ');
+INSERT INTO gifi (accno,description) VALUES ('253015', 'DOTACION Y SUMINISTRO A TRABAJADORES ');
+INSERT INTO gifi (accno,description) VALUES ('253020', 'BONIFICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('253025', 'SEGUROS ');
+INSERT INTO gifi (accno,description) VALUES ('253095', 'OTRAS ');
+INSERT INTO gifi (accno,description) VALUES ('2532', 'PENSIONES POR PAGAR ');
+INSERT INTO gifi (accno,description) VALUES ('2535', 'CUOTAS PARTES PENSIONES DE JUBILACION ');
+INSERT INTO gifi (accno,description) VALUES ('2540', 'INDEMNIZACIONES LABORALES ');
+INSERT INTO gifi (accno,description) VALUES ('26', 'PASIVOS ESTIMADOS Y PROVISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('2605', 'PARA COSTOS Y GASTOS ');
+INSERT INTO gifi (accno,description) VALUES ('260505', 'INTERESES ');
+INSERT INTO gifi (accno,description) VALUES ('260510', 'COMISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('260515', 'HONORARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('260520', 'SERVICIOS TECNICOS ');
+INSERT INTO gifi (accno,description) VALUES ('260525', 'TRANSPORTES, FLETES Y ACARREOS ');
+INSERT INTO gifi (accno,description) VALUES ('260530', 'GASTOS DE VIAJE ');
+INSERT INTO gifi (accno,description) VALUES ('260535', 'SERVICIOS PUBLICOS ');
+INSERT INTO gifi (accno,description) VALUES ('260540', 'REGALIAS ');
+INSERT INTO gifi (accno,description) VALUES ('260545', 'GARANTIAS ');
+INSERT INTO gifi (accno,description) VALUES ('260550', 'MATERIALES Y REPUESTOS ');
+INSERT INTO gifi (accno,description) VALUES ('260595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('2610', 'PARA OBLIGACIONES LABORALES ');
+INSERT INTO gifi (accno,description) VALUES ('261005', 'CESANTIAS ');
+INSERT INTO gifi (accno,description) VALUES ('261010', 'INTERESES SOBRE CESANTIAS ');
+INSERT INTO gifi (accno,description) VALUES ('261015', 'VACACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('261020', 'PRIMA DE SERVICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('261025', 'PRESTACIONES EXTRALEGALES ');
+INSERT INTO gifi (accno,description) VALUES ('261030', 'VIATICOS ');
+INSERT INTO gifi (accno,description) VALUES ('261095', 'OTRAS ');
+INSERT INTO gifi (accno,description) VALUES ('2615', 'PARA OBLIGACIONES FISCALES ');
+INSERT INTO gifi (accno,description) VALUES ('261505', 'DE RENTA Y COMPLEMENTARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('261510', 'DE INDUSTRIA Y COMERCIO ');
+INSERT INTO gifi (accno,description) VALUES ('261515', 'TASA POR UTILIZACION DE PUERTOS ');
+INSERT INTO gifi (accno,description) VALUES ('261520', 'DE VEHICULOS ');
+INSERT INTO gifi (accno,description) VALUES ('261525', 'DE HIDROCARBUROS Y MINAS ');
+INSERT INTO gifi (accno,description) VALUES ('261595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('2620', 'PENSIONES DE JUBILACION ');
+INSERT INTO gifi (accno,description) VALUES ('262005', 'CALCULO ACTUARIAL PENSIONES DE JUBILACION ');
+INSERT INTO gifi (accno,description) VALUES ('262010', 'PENSIONES DE JUBILACION POR AMORTIZAR (DB) ');
+INSERT INTO gifi (accno,description) VALUES ('2625', 'PARA OBRAS DE URBANISMO ');
+INSERT INTO gifi (accno,description) VALUES ('262505', 'ACUEDUCTO Y ALCANTARILLADO ');
+INSERT INTO gifi (accno,description) VALUES ('262510', 'ENERGIA ELECTRICA ');
+INSERT INTO gifi (accno,description) VALUES ('262515', 'TELEFONOS ');
+INSERT INTO gifi (accno,description) VALUES ('262595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('2630', 'PARA MANTENIMIENTO Y REPARACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('263005', 'TERRENOS ');
+INSERT INTO gifi (accno,description) VALUES ('263010', 'CONSTRUCCIONES Y EDIFICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('263015', 'MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('263020', 'EQUIPO DE OFICINA ');
+INSERT INTO gifi (accno,description) VALUES ('263025', 'EQUIPO DE COMPUTACION Y COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('263030', 'EQUIPO MEDICO - CIENTIFICO ');
+INSERT INTO gifi (accno,description) VALUES ('263035', 'EQUIPO DE HOTELES Y RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('263040', 'FLOTA Y EQUIPO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('263045', 'FLOTA Y EQUIPO FLUVIAL Y/O MARITIMO ');
+INSERT INTO gifi (accno,description) VALUES ('263050', 'FLOTA Y EQUIPO AEREO ');
+INSERT INTO gifi (accno,description) VALUES ('263055', 'FLOTA Y EQUIPO FERREO ');
+INSERT INTO gifi (accno,description) VALUES ('263060', 'ACUEDUCTOS PLANTAS Y REDES ');
+INSERT INTO gifi (accno,description) VALUES ('263065', 'ARMAMENTO DE VIGILANCIA ');
+INSERT INTO gifi (accno,description) VALUES ('263070', 'ENVASES Y EMPAQUES ');
+INSERT INTO gifi (accno,description) VALUES ('263075', 'PLANTACIONES AGRICOLAS Y FORESTALES ');
+INSERT INTO gifi (accno,description) VALUES ('263080', 'VIAS DE CUMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('263085', 'POZOS ARTESIANOS ');
+INSERT INTO gifi (accno,description) VALUES ('263095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('2635', 'PARA CONTINGENCIAS ');
+INSERT INTO gifi (accno,description) VALUES ('263505', 'MULTAS Y SANCIONES AUTORIDADES ADMINISTRATIVAS ');
+INSERT INTO gifi (accno,description) VALUES ('263510', 'INTERESES POR MULTAS Y SANCIONES ');
+INSERT INTO gifi (accno,description) VALUES ('263515', 'RECLAMOS ');
+INSERT INTO gifi (accno,description) VALUES ('263520', 'LABORALES ');
+INSERT INTO gifi (accno,description) VALUES ('263525', 'CIVILES ');
+INSERT INTO gifi (accno,description) VALUES ('263530', 'PENALES ');
+INSERT INTO gifi (accno,description) VALUES ('263535', 'ADMINISTRATIVOS ');
+INSERT INTO gifi (accno,description) VALUES ('263540', 'COMERCIALES ');
+INSERT INTO gifi (accno,description) VALUES ('263595', 'OTRAS ');
+INSERT INTO gifi (accno,description) VALUES ('2640', 'PARA OBLIGACIONES DE GARANTIAS ');
+INSERT INTO gifi (accno,description) VALUES ('2695', 'PROVISIONES DIVERSAS ');
+INSERT INTO gifi (accno,description) VALUES ('269505', 'PARA BENEFICENCIA ');
+INSERT INTO gifi (accno,description) VALUES ('269510', 'PARA COMUNICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('269515', 'PARA PERDIDA EN TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('269520', 'PARA OPERACION ');
+INSERT INTO gifi (accno,description) VALUES ('269525', 'PARA PROTECCION DE BIENES AGOTABLES ');
+INSERT INTO gifi (accno,description) VALUES ('269530', 'PARA AJUSTES EN REDENCION DE UNIDADES ');
+INSERT INTO gifi (accno,description) VALUES ('269535', 'AUTOSEGURO ');
+INSERT INTO gifi (accno,description) VALUES ('269540', 'PLANES Y PROGRAMAS DE REFORESTACION Y ELECTRIFICACION ');
+INSERT INTO gifi (accno,description) VALUES ('269595', 'OTRAS ');
+INSERT INTO gifi (accno,description) VALUES ('27', 'DIFERIDOS ');
+INSERT INTO gifi (accno,description) VALUES ('2705', 'INGRESOS RECIBIDOS POR ANTICIPADO ');
+INSERT INTO gifi (accno,description) VALUES ('270505', 'INTERESES ');
+INSERT INTO gifi (accno,description) VALUES ('270510', 'COMISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('270515', 'ARRENDAMIENTOS ');
+INSERT INTO gifi (accno,description) VALUES ('270520', 'HONORARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('270525', 'SERVICIOS TECNICOS ');
+INSERT INTO gifi (accno,description) VALUES ('270530', 'DE SUSCRIPTORES ');
+INSERT INTO gifi (accno,description) VALUES ('270535', 'TRANSPORTES, FLETES Y ACARREOS ');
+INSERT INTO gifi (accno,description) VALUES ('270540', 'MERCANCIA EN TRANSITO YA VENDIDA ');
+INSERT INTO gifi (accno,description) VALUES ('270545', 'MATRICULAS Y PENSIONES ');
+INSERT INTO gifi (accno,description) VALUES ('270550', 'CUOTAS DE ADMINISTRACION ');
+INSERT INTO gifi (accno,description) VALUES ('270595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('2710', 'ABONOS DIFERIDOS ');
+INSERT INTO gifi (accno,description) VALUES ('271005', 'REAJUSTE DEL SISTEMA ');
+INSERT INTO gifi (accno,description) VALUES ('2715', 'UTILIDAD DIFERIDA EN VENTAS A PLAZOS ');
+INSERT INTO gifi (accno,description) VALUES ('2720', 'CREDITO POR CORRECCION MONETARIA DIFERIDA ');
+INSERT INTO gifi (accno,description) VALUES ('2725', 'IMPUESTOS DIFERIDOS ');
+INSERT INTO gifi (accno,description) VALUES ('272505', 'POR DEPRECIACION FLEXIBLE ');
+INSERT INTO gifi (accno,description) VALUES ('272595', 'DIVERSOS ');
+INSERT INTO gifi (accno,description) VALUES ('272599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('28', 'OTROS PASIVOS ');
+INSERT INTO gifi (accno,description) VALUES ('2805', 'ANTICIPOS Y AVANCES RECIBIDOS ');
+INSERT INTO gifi (accno,description) VALUES ('280505', 'DE CLIENTES ');
+INSERT INTO gifi (accno,description) VALUES ('280510', 'SOBRE CONTRATOS ');
+INSERT INTO gifi (accno,description) VALUES ('280515', 'PARA OBRAS EN PROCESO ');
+INSERT INTO gifi (accno,description) VALUES ('280595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('2810', 'DEPOSITOS RECIBIDOS ');
+INSERT INTO gifi (accno,description) VALUES ('281005', 'PARA FUTURA SUSCRIPCION DE ACCIONES ');
+INSERT INTO gifi (accno,description) VALUES ('281010', 'PARA FUTURO PAGO DE CUOTAS O DERECHOS SOCIALES ');
+INSERT INTO gifi (accno,description) VALUES ('281015', 'PARA GARANTIA EN LA PRESTACION DE SERVICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('281020', 'PARA GARANTIA DE CONTRATOS ');
+INSERT INTO gifi (accno,description) VALUES ('281025', 'DE LICITACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('281030', 'DE MANEJO DE BIENES ');
+INSERT INTO gifi (accno,description) VALUES ('281035', 'FONDO DE RESERVA ');
+INSERT INTO gifi (accno,description) VALUES ('281095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('2815', 'INGRESOS RECIBIDOS PARA TERCEROS ');
+INSERT INTO gifi (accno,description) VALUES ('281505', 'VALORES RECIBIDOS PARA TERCEROS ');
+INSERT INTO gifi (accno,description) VALUES ('281510', 'VENTA POR CUENTA DE TERCEROS ');
+INSERT INTO gifi (accno,description) VALUES ('2820', 'CUENTAS DE OPERACION CONJUNTA ');
+INSERT INTO gifi (accno,description) VALUES ('2825', 'RETENCIONES A TERCEROS SOBRE CONTRATOS ');
+INSERT INTO gifi (accno,description) VALUES ('282505', 'CUMPLIMIENTO OBLIGACIONES LABORALES ');
+INSERT INTO gifi (accno,description) VALUES ('282510', 'PARA ESTABILIDAD DE OBRA ');
+INSERT INTO gifi (accno,description) VALUES ('282515', 'GARANTIA CUMPLIMIENTO DE CONTRATOS ');
+INSERT INTO gifi (accno,description) VALUES ('2830', 'EMBARGOS JUDICIALES ');
+INSERT INTO gifi (accno,description) VALUES ('283005', 'INDEMNIZACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('283010', 'DEPOSITOS JUDICIALES ');
+INSERT INTO gifi (accno,description) VALUES ('2835', 'ACREEDORES DEL SISTEMA ');
+INSERT INTO gifi (accno,description) VALUES ('283505', 'CUOTAS NETAS ');
+INSERT INTO gifi (accno,description) VALUES ('283510', 'GRUPOS EN FORMACION ');
+INSERT INTO gifi (accno,description) VALUES ('2840', 'CUENTAS EN PARTICIPACION ');
+INSERT INTO gifi (accno,description) VALUES ('2895', 'DIVERSOS ');
+INSERT INTO gifi (accno,description) VALUES ('289505', 'PRESTAMOS DE PRODUCTOS ');
+INSERT INTO gifi (accno,description) VALUES ('289510', 'REEMBOLSO DE COSTOS EXPLORATORIOS ');
+INSERT INTO gifi (accno,description) VALUES ('289515', 'PROGRAMA DE EXTENSION AGROPECUARIA ');
+INSERT INTO gifi (accno,description) VALUES ('29', 'BONOS Y PAPELES COMERCIALES ');
+INSERT INTO gifi (accno,description) VALUES ('2905', 'BONOS EN CIRCULACION ');
+INSERT INTO gifi (accno,description) VALUES ('290505', 'GARANTIA GENERAL ');
+INSERT INTO gifi (accno,description) VALUES ('290510', 'GARANTIA ESPECIFICA ');
+INSERT INTO gifi (accno,description) VALUES ('2910', 'BONOS OBLIGATORIAMENTE CONVERTIBLES EN ACCIONES ');
+INSERT INTO gifi (accno,description) VALUES ('2915', 'PAPELES COMERCIALES ');
+INSERT INTO gifi (accno,description) VALUES ('3', 'PATRIMONIO ');
+INSERT INTO gifi (accno,description) VALUES ('31', 'CAPITAL SOCIAL ');
+INSERT INTO gifi (accno,description) VALUES ('3105', 'CAPITAL SUSCRITO Y PAGADO ');
+INSERT INTO gifi (accno,description) VALUES ('310505', 'CAPITAL AUTORIZADO ');
+INSERT INTO gifi (accno,description) VALUES ('310510', 'CAPITAL POR SUSCRIBIR (DB) ');
+INSERT INTO gifi (accno,description) VALUES ('310515', 'CAPITAL SUSCRITO POR COBRAR (DB) ');
+INSERT INTO gifi (accno,description) VALUES ('3110', 'ACCIONES, CUOTAS O PARTES DE INTERES SOCIAL PROPIAS READQUIRIDAS (DB) ');
+INSERT INTO gifi (accno,description) VALUES ('311005', 'ACCIONES PROPIAS READQUIRIDAS (DB) ');
+INSERT INTO gifi (accno,description) VALUES ('311010', 'CUOTAS O PARTES DE INTERES SOCIAL PROPIAS READQUIRIDAS (DB) ');
+INSERT INTO gifi (accno,description) VALUES ('3115', 'APORTES SOCIALES ');
+INSERT INTO gifi (accno,description) VALUES ('311505', 'CUOTAS O PARTES DE INTERES SOCIAL ');
+INSERT INTO gifi (accno,description) VALUES ('311510', 'APORTES DE SOCIOS - FONDO MUTUO DE INVERSION ');
+INSERT INTO gifi (accno,description) VALUES ('311515', 'CONTRIBUCION DE LA EMPRESA - FONDO MUTUO DE INVERSION ');
+INSERT INTO gifi (accno,description) VALUES ('311520', 'SUSCRIPCIONES DEL PUBLICO ');
+INSERT INTO gifi (accno,description) VALUES ('3120', 'CAPITAL ASIGNADO ');
+INSERT INTO gifi (accno,description) VALUES ('3125', 'INVERSION SUPLEMENTARIA AL CAPITAL ASIGNADO ');
+INSERT INTO gifi (accno,description) VALUES ('3130', 'CAPITAL DE PERSONAS NATURALES ');
+INSERT INTO gifi (accno,description) VALUES ('3135', 'APORTES DEL ESTADO ');
+INSERT INTO gifi (accno,description) VALUES ('3140', 'FONDO SOCIAL ');
+INSERT INTO gifi (accno,description) VALUES ('32', 'SUPERAVIT DE CAPITAL ');
+INSERT INTO gifi (accno,description) VALUES ('3205', 'PRIMA EN COLOCACION DE ACCIONES, CUOTAS O PARTES DE INTERES SOCIAL ');
+INSERT INTO gifi (accno,description) VALUES ('320505', 'PRIMA EN COLOCACION DE ACCIONES ');
+INSERT INTO gifi (accno,description) VALUES ('320510', 'PRIMA EN COLOCACION DE ACCIONES POR COBRAR (DB) ');
+INSERT INTO gifi (accno,description) VALUES ('320515', 'PRIMA EN COLOCACION DE CUOTAS O PARTES DE INTERES SOCIAL ');
+INSERT INTO gifi (accno,description) VALUES ('3210', 'DONACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('321005', 'EN DINERO ');
+INSERT INTO gifi (accno,description) VALUES ('321010', 'EN VALORES MOBILIARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('321015', 'EN BIENES MUEBLES ');
+INSERT INTO gifi (accno,description) VALUES ('321020', 'EN BIENES INMUEBLES ');
+INSERT INTO gifi (accno,description) VALUES ('321025', 'EN INTANGIBLES ');
+INSERT INTO gifi (accno,description) VALUES ('3215', 'CREDITO MERCANTIL ');
+INSERT INTO gifi (accno,description) VALUES ('33', 'RESERVAS ');
+INSERT INTO gifi (accno,description) VALUES ('3305', 'RESERVAS OBLIGATORIAS ');
+INSERT INTO gifi (accno,description) VALUES ('330505', 'RESERVA LEGAL ');
+INSERT INTO gifi (accno,description) VALUES ('330510', 'RESERVAS POR DISPOSICIONES FISCALES ');
+INSERT INTO gifi (accno,description) VALUES ('330515', 'RESERVA PARA READQUISICION DE ACCIONES ');
+INSERT INTO gifi (accno,description) VALUES ('330517', 'RESERVA PARA READQUISICION DE CUOTAS O PARTES DE INTERES SOCIAL ');
+INSERT INTO gifi (accno,description) VALUES ('330520', 'RESERVA PARA EXTENSION AGROPECUARIA ');
+INSERT INTO gifi (accno,description) VALUES ('330525', 'RESERVA LEY 7a. DE 1990 ');
+INSERT INTO gifi (accno,description) VALUES ('330530', 'RESERVA PARA REPOSICION DE SEMOVIENTES ');
+INSERT INTO gifi (accno,description) VALUES ('330535', 'RESERVA LEY 4a DE 1980 ');
+INSERT INTO gifi (accno,description) VALUES ('330595', 'OTRAS ');
+INSERT INTO gifi (accno,description) VALUES ('3310', 'RESERVAS ESTATUTARIAS ');
+INSERT INTO gifi (accno,description) VALUES ('331005', 'PARA FUTURAS CAPITALIZACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('331010', 'PARA REPOSICION DE ACTIVOS ');
+INSERT INTO gifi (accno,description) VALUES ('331015', 'PARA FUTUROS ENSANCHES ');
+INSERT INTO gifi (accno,description) VALUES ('331095', 'OTRAS ');
+INSERT INTO gifi (accno,description) VALUES ('3315', 'RESERVAS OCASIONALES ');
+INSERT INTO gifi (accno,description) VALUES ('331505', 'PARA BENEFICENCIA Y CIVISMO ');
+INSERT INTO gifi (accno,description) VALUES ('331510', 'PARA FUTURAS CAPITALIZACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('331515', 'PARA FUTUROS ENSANCHES ');
+INSERT INTO gifi (accno,description) VALUES ('331520', 'PARA ADQUISICION O REPOSICION DE PROPIEDADES PLANTA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('331525', 'PARA INVESTIGACIONES Y DESARROLLO ');
+INSERT INTO gifi (accno,description) VALUES ('331530', 'PARA FOMENTO ECONOMICO ');
+INSERT INTO gifi (accno,description) VALUES ('331535', 'PARA CAPITAL DE TRABAJO ');
+INSERT INTO gifi (accno,description) VALUES ('331540', 'PARA ESTABILIZACION DE RENDIMIENTOS ');
+INSERT INTO gifi (accno,description) VALUES ('331545', 'A DISPOSICION DEL MAXIMO ORGANO SOCIAL ');
+INSERT INTO gifi (accno,description) VALUES ('331595', 'OTRAS ');
+INSERT INTO gifi (accno,description) VALUES ('34', 'REVALORIZACION DEL PATRIMONIO ');
+INSERT INTO gifi (accno,description) VALUES ('3405', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('340505', 'DE CAPITAL SOCIAL ');
+INSERT INTO gifi (accno,description) VALUES ('340510', 'DE SUPERAVIT DE CAPITAL ');
+INSERT INTO gifi (accno,description) VALUES ('340515', 'DE RESERVAS ');
+INSERT INTO gifi (accno,description) VALUES ('340520', 'DE RESULTADOS DE EJERCICIOS ANTERIORES ');
+INSERT INTO gifi (accno,description) VALUES ('340525', 'DE ACTIVOS EN PERIODO IMPRODUCTIVO ');
+INSERT INTO gifi (accno,description) VALUES ('3410', 'SANEAMIENTO FISCAL ');
+INSERT INTO gifi (accno,description) VALUES ('3415', 'AJUSTES POR INFLACION DECRETO 3019 DE 1989 ');
+INSERT INTO gifi (accno,description) VALUES ('35', 'DIVIDENDOS O PARTICIPACIONES DECRETADOS EN ACCIONES, CUOTAS O PARTES DE INTERES SOCIAL ');
+INSERT INTO gifi (accno,description) VALUES ('3505', 'DIVIDENDOS DECRETADOS EN ACCIONES ');
+INSERT INTO gifi (accno,description) VALUES ('3510', 'PARTICIPACIONES DECRETADAS EN CUOTAS O PARTES DE INTERES SOCIAL ');
+INSERT INTO gifi (accno,description) VALUES ('36', 'RESULTADOS DEL EJERCICIO ');
+INSERT INTO gifi (accno,description) VALUES ('3605', 'UTILIDAD DEL EJERCICIO ');
+INSERT INTO gifi (accno,description) VALUES ('360505', 'UTILIDAD DEL EJERCICIO ');
+INSERT INTO gifi (accno,description) VALUES ('360510', 'UTILIDAD POR EXPOSICION A LA INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('3610', 'PERDIDA DEL EJERCICIO ');
+INSERT INTO gifi (accno,description) VALUES ('361005', 'PERDIDA DEL EJERCICIO ');
+INSERT INTO gifi (accno,description) VALUES ('361010', 'PERDIDA POR EXPOSICION A LA INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('37', 'RESULTADOS DE EJERCICIOS ANTERIORES ');
+INSERT INTO gifi (accno,description) VALUES ('3705', 'UTILIDADES O EXCEDENTES ACUMULADOS ');
+INSERT INTO gifi (accno,description) VALUES ('3710', 'PERDIDAS ACUMULADAS ');
+INSERT INTO gifi (accno,description) VALUES ('38', 'SUPERAVIT POR VALORIZACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('3805', 'DE INVERSIONES ');
+INSERT INTO gifi (accno,description) VALUES ('380505', 'ACCIONES ');
+INSERT INTO gifi (accno,description) VALUES ('380510', 'CUOTAS O PARTES DE INTERES SOCIAL ');
+INSERT INTO gifi (accno,description) VALUES ('380515', 'DERECHOS FIDUCIARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('3810', 'DE PROPIEDADES PLANTA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('381004', 'TERRENOS ');
+INSERT INTO gifi (accno,description) VALUES ('381006', 'MATERIALES PROYECTOS PETROLEROS ');
+INSERT INTO gifi (accno,description) VALUES ('381008', 'CONSTRUCCIONES Y EDIFICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('381012', 'MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('381016', 'EQUIPO DE OFICINA ');
+INSERT INTO gifi (accno,description) VALUES ('381020', 'EQUIPO DE COMPUTACION Y COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('381024', 'EQUIPO MEDICO CIENTIFICO ');
+INSERT INTO gifi (accno,description) VALUES ('381028', 'EQUIPO DE HOTELES Y RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('381032', 'FLOTA Y EQUIPO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('381036', 'FLOTA Y EQUIPO FLUVIAL Y/O MARITIMO ');
+INSERT INTO gifi (accno,description) VALUES ('381040', 'FLOTA Y EQUIPO AEREO ');
+INSERT INTO gifi (accno,description) VALUES ('381044', 'FLOTA Y EQUIPO FERREO ');
+INSERT INTO gifi (accno,description) VALUES ('381048', 'ACUEDUCTOS PLANTAS Y REDES ');
+INSERT INTO gifi (accno,description) VALUES ('381052', 'ARMAMENTO DE VIGILANCIA ');
+INSERT INTO gifi (accno,description) VALUES ('381056', 'ENVASES Y EMPAQUES ');
+INSERT INTO gifi (accno,description) VALUES ('381060', 'PLANTACIONES AGRICOLAS Y FORESTALES ');
+INSERT INTO gifi (accno,description) VALUES ('381064', 'VIAS DE COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('381068', 'MINAS Y CANTERAS ');
+INSERT INTO gifi (accno,description) VALUES ('381072', 'POZOS ARTESIANOS ');
+INSERT INTO gifi (accno,description) VALUES ('381076', 'YACIMIENTOS ');
+INSERT INTO gifi (accno,description) VALUES ('381080', 'SEMOVIENTES ');
+INSERT INTO gifi (accno,description) VALUES ('3895', 'DE OTROS ACTIVOS ');
+INSERT INTO gifi (accno,description) VALUES ('389505', 'BIENES DE ARTE Y CULTURA ');
+INSERT INTO gifi (accno,description) VALUES ('389510', 'BIENES ENTREGADOS EN COMODATO ');
+INSERT INTO gifi (accno,description) VALUES ('389515', 'BIENES RECIBIDOS EN PAGO ');
+INSERT INTO gifi (accno,description) VALUES ('389520', 'INVENTARIO DE SEMOVIENTES ');
+INSERT INTO gifi (accno,description) VALUES ('4', 'INGRESOS ');
+INSERT INTO gifi (accno,description) VALUES ('41', 'OPERACIONALES ');
+INSERT INTO gifi (accno,description) VALUES ('4105', 'AGRICULTURA, GANADERIA, CAZA Y SILVICULTURA ');
+INSERT INTO gifi (accno,description) VALUES ('410505', 'CULTIVO DE CEREALES ');
+INSERT INTO gifi (accno,description) VALUES ('410510', 'CULTIVOS DE HORTALIZAS, LEGUMBRES Y PLANTAS ORNAMENTALES ');
+INSERT INTO gifi (accno,description) VALUES ('410515', 'CULTIVOS DE FRUTAS, NUECES Y PLANTAS AROMATICAS ');
+INSERT INTO gifi (accno,description) VALUES ('410520', 'CULTIVO DE CAFE ');
+INSERT INTO gifi (accno,description) VALUES ('410525', 'CULTIVO DE FLORES ');
+INSERT INTO gifi (accno,description) VALUES ('410530', 'CULTIVO DE CAŃA DE AZUCAR ');
+INSERT INTO gifi (accno,description) VALUES ('410535', 'CULTIVO DE ALGODON Y PLANTAS PARA MATERIAL TEXTIL ');
+INSERT INTO gifi (accno,description) VALUES ('410540', 'CULTIVO DE BANANO ');
+INSERT INTO gifi (accno,description) VALUES ('410545', 'OTROS CULTIVOS AGRICOLAS ');
+INSERT INTO gifi (accno,description) VALUES ('410550', 'CRIA DE OVEJAS, CABRAS, ASNOS, MULAS Y BURDEGANOS ');
+INSERT INTO gifi (accno,description) VALUES ('410555', 'CRIA DE GANADO CABALLAR Y VACUNO. ');
+INSERT INTO gifi (accno,description) VALUES ('410560', 'PRODUCCION AVICOLA ');
+INSERT INTO gifi (accno,description) VALUES ('410565', 'CRIA DE OTROS ANIMALES ');
+INSERT INTO gifi (accno,description) VALUES ('410570', 'SERVICIOS AGRICOLAS Y GANADEROS ');
+INSERT INTO gifi (accno,description) VALUES ('410575', 'ACTIVIDAD DE CAZA ');
+INSERT INTO gifi (accno,description) VALUES ('410580', 'ACTIVIDAD DE SILVICULTURA ');
+INSERT INTO gifi (accno,description) VALUES ('410599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4110', 'PESCA ');
+INSERT INTO gifi (accno,description) VALUES ('411005', 'ACTIVIDAD DE PESCA ');
+INSERT INTO gifi (accno,description) VALUES ('411010', 'EXPLOTACION DE CRIADEROS DE PECES ');
+INSERT INTO gifi (accno,description) VALUES ('411095', 'ACTIVIDADES CONEXAS ');
+INSERT INTO gifi (accno,description) VALUES ('411099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4115', 'EXPLOTACION DE MINAS Y CANTERAS ');
+INSERT INTO gifi (accno,description) VALUES ('411505', 'CARBON ');
+INSERT INTO gifi (accno,description) VALUES ('411510', 'PETROLEO CRUDO ');
+INSERT INTO gifi (accno,description) VALUES ('411512', 'GAS NATURAL ');
+INSERT INTO gifi (accno,description) VALUES ('411514', 'SERVICIOS RELACIONADOS CON EXTRACCION DE PETROLEO Y GAS ');
+INSERT INTO gifi (accno,description) VALUES ('411515', 'MINERALES DE HIERRO ');
+INSERT INTO gifi (accno,description) VALUES ('411520', 'MINERALES METALIFEROS NO FERROSOS ');
+INSERT INTO gifi (accno,description) VALUES ('411525', 'PIEDRA, ARENA Y ARCILLA ');
+INSERT INTO gifi (accno,description) VALUES ('411527', 'PIEDRAS PRECIOSAS ');
+INSERT INTO gifi (accno,description) VALUES ('411528', 'ORO ');
+INSERT INTO gifi (accno,description) VALUES ('411530', 'OTRAS MINAS Y CANTERAS ');
+INSERT INTO gifi (accno,description) VALUES ('411532', 'PRESTACION DE SERVICIOS SECTOR MINERO ');
+INSERT INTO gifi (accno,description) VALUES ('411595', 'ACTIVIDADES CONEXAS ');
+INSERT INTO gifi (accno,description) VALUES ('411599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4120', 'INDUSTRIAS MANUFACTURERAS ');
+INSERT INTO gifi (accno,description) VALUES ('412001', 'PRODUCCION Y PROCESAMIENTO DE CARNES Y PRODUCTOS CARNICOS ');
+INSERT INTO gifi (accno,description) VALUES ('412002', 'PRODUCTOS DE PESCADO ');
+INSERT INTO gifi (accno,description) VALUES ('412003', 'PRODUCTOS DE FRUTAS, LEGUMBRES Y HORTALIZAS ');
+INSERT INTO gifi (accno,description) VALUES ('412004', 'ELABORACION DE ACEITES Y GRASAS ');
+INSERT INTO gifi (accno,description) VALUES ('412005', 'ELABORACION DE PRODUCTOS LACTEOS ');
+INSERT INTO gifi (accno,description) VALUES ('412006', 'ELABORACION DE PRODUCTOS DE MOLINERIA ');
+INSERT INTO gifi (accno,description) VALUES ('412007', 'ELABORACION DE ALMIDONES Y DERIVADOS ');
+INSERT INTO gifi (accno,description) VALUES ('412008', 'ELABORACION DE ALIMENTOS PARA ANIMALES ');
+INSERT INTO gifi (accno,description) VALUES ('412009', 'ELABORACION DE PRODUCTOS PARA PANADERIA ');
+INSERT INTO gifi (accno,description) VALUES ('412010', 'ELABORACION DE AZUCAR Y MELAZAS ');
+INSERT INTO gifi (accno,description) VALUES ('412011', 'ELABORACION DE CACAO, CHOCOLATE Y CONFITERIA ');
+INSERT INTO gifi (accno,description) VALUES ('412012', 'ELABORACION DE PASTAS Y PRODUCTOS FARINACEOS ');
+INSERT INTO gifi (accno,description) VALUES ('412013', 'ELABORACION DE PRODUCTOS DE CAFE ');
+INSERT INTO gifi (accno,description) VALUES ('412014', 'ELABORACION DE OTROS PRODUCTOS ALIMENTICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('412015', 'ELABORACION DE BEBIDAS ALCOHOLICAS Y ALCOHOL ETILICO ');
+INSERT INTO gifi (accno,description) VALUES ('412016', 'ELABORACION DE VINOS ');
+INSERT INTO gifi (accno,description) VALUES ('412017', 'ELABORACION DE BEBIDAS MALTEADAS Y DE MALTA ');
+INSERT INTO gifi (accno,description) VALUES ('412018', 'ELABORACION DE BEBIDAS NO ALCOHOLICAS ');
+INSERT INTO gifi (accno,description) VALUES ('412019', 'ELABORACION DE PRODUCTOS DE TABACO ');
+INSERT INTO gifi (accno,description) VALUES ('412020', 'PREPARACION E HILATURA DE FIBRAS TEXTILES Y TEJEDURIA ');
+INSERT INTO gifi (accno,description) VALUES ('412021', 'ACABADO DE PRODUCTOS TEXTILES ');
+INSERT INTO gifi (accno,description) VALUES ('412022', 'ELABORACION DE ARTICULOS DE MATERIALES TEXTILES ');
+INSERT INTO gifi (accno,description) VALUES ('412023', 'ELABORACION DE TAPICES Y ALFOMBRAS ');
+INSERT INTO gifi (accno,description) VALUES ('412024', 'ELABORACION DE CUERDAS, CORDELES, BRAMANTES Y REDES ');
+INSERT INTO gifi (accno,description) VALUES ('412025', 'ELABORACION DE OTROS PRODUCTOS TEXTILES ');
+INSERT INTO gifi (accno,description) VALUES ('412026', 'ELABORACION DE TEJIDOS ');
+INSERT INTO gifi (accno,description) VALUES ('412027', 'ELABORACION DE PRENDAS DE VESTIR ');
+INSERT INTO gifi (accno,description) VALUES ('412028', 'PREPARACION, ADOBO Y TEŃIDO DE PIELES ');
+INSERT INTO gifi (accno,description) VALUES ('412029', 'CURTIDO, ADOBO O PREPARACION DE CUERO ');
+INSERT INTO gifi (accno,description) VALUES ('412030', 'ELABORACION DE MALETAS, BOLSOS Y SIMILARES ');
+INSERT INTO gifi (accno,description) VALUES ('412031', 'ELABORACION DE CALZADO ');
+INSERT INTO gifi (accno,description) VALUES ('412032', 'PRODUCCION DE MADERA, ARTICULOS DE MADERA Y CORCHO ');
+INSERT INTO gifi (accno,description) VALUES ('412033', 'ELABORACION DE PASTA Y PRODUCTOS DE MADERA, PAPEL Y CARTON ');
+INSERT INTO gifi (accno,description) VALUES ('412034', 'EDICIONES Y PUBLICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('412035', 'IMPRESION ');
+INSERT INTO gifi (accno,description) VALUES ('412036', 'SERVICIOS RELACIONADOS CON LA EDICION Y LA IMPRESION ');
+INSERT INTO gifi (accno,description) VALUES ('412037', 'REPRODUCCION DE GRABACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('412038', 'ELABORACION DE PRODUCTOS DE HORNO DE COQUE ');
+INSERT INTO gifi (accno,description) VALUES ('412039', 'ELABORACION DE PRODUCTOS DE LA REFINACION DE PETROLEO ');
+INSERT INTO gifi (accno,description) VALUES ('412040', 'ELABORACION DE SUSTANCIAS QUIMICAS BASICAS ');
+INSERT INTO gifi (accno,description) VALUES ('412041', 'ELABORACION DE ABONOS Y COMPUESTOS DE NITROGENO ');
+INSERT INTO gifi (accno,description) VALUES ('412042', 'ELABORACION DE PLASTICO Y CAUCHO SINTETICO ');
+INSERT INTO gifi (accno,description) VALUES ('412043', 'ELABORACION DE PRODUCTOS QUIMICOS DE USO AGROPECUARIO ');
+INSERT INTO gifi (accno,description) VALUES ('412044', 'ELABORACION DE PINTURAS, TINTAS Y MASILLAS ');
+INSERT INTO gifi (accno,description) VALUES ('412045', 'ELABORACION DE PRODUCTOS FARMACEUTICOS Y BOTANICOS ');
+INSERT INTO gifi (accno,description) VALUES ('412046', 'ELABORACION DE JABONES, DETERGENTES Y PREPARADOS DE TOCADOR ');
+INSERT INTO gifi (accno,description) VALUES ('412047', 'ELABORACION DE OTROS PRODUCTOS QUIMICOS ');
+INSERT INTO gifi (accno,description) VALUES ('412048', 'ELABORACION DE FIBRAS ');
+INSERT INTO gifi (accno,description) VALUES ('412049', 'ELABORACION DE OTROS PRODUCTOS DE CAUCHO ');
+INSERT INTO gifi (accno,description) VALUES ('412050', 'ELABORACION DE PRODUCTOS DE PLASTICO ');
+INSERT INTO gifi (accno,description) VALUES ('412051', 'ELABORACION DE VIDRIO Y PRODUCTOS DE VIDRIO ');
+INSERT INTO gifi (accno,description) VALUES ('412052', 'ELABORACION DE PRODUCTOS DE CERAMICA, LOZA, PIEDRA, ARCILLA Y PORCELANA ');
+INSERT INTO gifi (accno,description) VALUES ('412053', 'ELABORACION DE CEMENTO, CAL Y YESO ');
+INSERT INTO gifi (accno,description) VALUES ('412054', 'ELABORACION DE ARTICULOS DE HORMIGON, CEMENTO Y YESO ');
+INSERT INTO gifi (accno,description) VALUES ('412055', 'CORTE, TALLADO Y ACABADO DE LA PIEDRA ');
+INSERT INTO gifi (accno,description) VALUES ('412056', 'ELABORACION DE OTROS PRODUCTOS MINERALES NO METALICOS ');
+INSERT INTO gifi (accno,description) VALUES ('412057', 'INDUSTRIAS BASICAS Y FUNDICION DE HIERRO Y ACERO ');
+INSERT INTO gifi (accno,description) VALUES ('412058', 'PRODUCTOS PRIMARIOS DE METALES PRECIOSOS Y DE METALES NO FERROSOS ');
+INSERT INTO gifi (accno,description) VALUES ('412059', 'FUNDICION DE METALES NO FERROSOS ');
+INSERT INTO gifi (accno,description) VALUES ('412060', 'FABRICACION DE PRODUCTOS METALICOS PARA USO ESTRUCTURAL ');
+INSERT INTO gifi (accno,description) VALUES ('412061', 'FORJA, PRENSADO, ESTAMPADO, LAMINADO DE METAL Y PULVIMETALURGIA ');
+INSERT INTO gifi (accno,description) VALUES ('412062', 'REVESTIMIENTO DE METALES Y OBRAS DE INGENIERIA MECANICA ');
+INSERT INTO gifi (accno,description) VALUES ('412063', 'FABRICACION DE ARTICULOS DE FERRETERIA ');
+INSERT INTO gifi (accno,description) VALUES ('412064', 'ELABORACION DE OTROS PRODUCTOS DE METAL ');
+INSERT INTO gifi (accno,description) VALUES ('412065', 'FABRICACION DE MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('412066', 'FABRICACION DE EQUIPOS DE ELEVACION Y MANIPULACION ');
+INSERT INTO gifi (accno,description) VALUES ('412067', 'ELABORACION DE APARATOS DE USO DOMESTICO ');
+INSERT INTO gifi (accno,description) VALUES ('412068', 'ELABORACION DE EQUIPO DE OFICINA ');
+INSERT INTO gifi (accno,description) VALUES ('412069', 'ELABORACION DE PILAS Y BATERIAS PRIMARIAS ');
+INSERT INTO gifi (accno,description) VALUES ('412070', 'ELABORACION DE EQUIPO DE ILUMINACION ');
+INSERT INTO gifi (accno,description) VALUES ('412071', 'ELABORACION DE OTROS TIPOS DE EQUIPO ELECTRICO ');
+INSERT INTO gifi (accno,description) VALUES ('412072', 'FABRICACION DE EQUIPOS DE RADIO, TELEVISION Y COMUNICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('412073', 'FABRICACION DE APARATOS E INSTRUMENTOS MEDICOS ');
+INSERT INTO gifi (accno,description) VALUES ('412074', 'FABRICACION DE INSTRUMENTOS DE MEDICION Y CONTROL ');
+INSERT INTO gifi (accno,description) VALUES ('412075', 'FABRICACION DE INSTRUMENTOS DE OPTICA Y EQUIPO FOTOGRAFICO ');
+INSERT INTO gifi (accno,description) VALUES ('412076', 'FABRICACION DE RELOJES ');
+INSERT INTO gifi (accno,description) VALUES ('412077', 'FABRICACION DE VEHICULOS AUTOMOTORES ');
+INSERT INTO gifi (accno,description) VALUES ('412078', 'FABRICACION DE CARROCERIAS PARA AUTOMOTORES ');
+INSERT INTO gifi (accno,description) VALUES ('412079', 'FABRICACION DE PARTES PIEZAS Y ACCESORIOS PARA AUTOMOTORES ');
+INSERT INTO gifi (accno,description) VALUES ('412080', 'FABRICACION Y REPARACION DE BUQUES Y OTRAS EMBARCACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('412081', 'FABRICACION DE LOCOMOTORAS Y MATERIAL RODANTE PARA FERROCARRILES ');
+INSERT INTO gifi (accno,description) VALUES ('412082', 'FABRICACION DE AERONAVES ');
+INSERT INTO gifi (accno,description) VALUES ('412083', 'FABRICACION DE MOTOCICLETAS ');
+INSERT INTO gifi (accno,description) VALUES ('412084', 'FABRICACION DE BICICLETAS Y SILLAS DE RUEDAS ');
+INSERT INTO gifi (accno,description) VALUES ('412085', 'FABRICACION DE OTROS TIPOS DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('412086', 'FABRICACION DE MUEBLES ');
+INSERT INTO gifi (accno,description) VALUES ('412087', 'FABRICACION DE JOYAS Y ARTICULOS CONEXOS ');
+INSERT INTO gifi (accno,description) VALUES ('412088', 'FABRICACION DE INSTRUMENTOS DE MUSICA ');
+INSERT INTO gifi (accno,description) VALUES ('412089', 'FABRICACION DE ARTICULOS Y EQUIPO PARA DEPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('412090', 'FABRICACION DE JUEGOS Y JUGUETES ');
+INSERT INTO gifi (accno,description) VALUES ('412091', 'RECICLAMIENTO DE DESPERDICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('412095', 'PRODUCTOS DE OTRAS INDUSTRIAS MANUFACTURERAS ');
+INSERT INTO gifi (accno,description) VALUES ('412099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4125', 'SUMINISTRO DE ELECTRICIDAD, GAS Y AGUA ');
+INSERT INTO gifi (accno,description) VALUES ('412505', 'GENERACION, CAPTACION Y DISTRIBUCION DE ENERGIA ELECTRICA ');
+INSERT INTO gifi (accno,description) VALUES ('412510', 'FABRICACION DE GAS Y DISTRIBUCION DE COMBUSTIBLES GASEOSOS ');
+INSERT INTO gifi (accno,description) VALUES ('412515', 'CAPTACION, DEPURACION Y DISTRIBUCION DE AGUA ');
+INSERT INTO gifi (accno,description) VALUES ('412595', 'ACTIVIDADES CONEXAS ');
+INSERT INTO gifi (accno,description) VALUES ('412599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4130', 'CONSTRUCCION ');
+INSERT INTO gifi (accno,description) VALUES ('413005', 'PREPARACION DE TERRENOS ');
+INSERT INTO gifi (accno,description) VALUES ('413010', 'CONSTRUCCION DE EDIFICIOS Y OBRAS DE INGENIERIA CIVIL ');
+INSERT INTO gifi (accno,description) VALUES ('413015', 'ACONDICIONAMIENTO DE EDIFICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('413020', 'TERMINACION DE EDIFICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('413025', 'ALQUILER DE EQUIPO CON OPERARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('413095', 'ACTIVIDADES CONEXAS ');
+INSERT INTO gifi (accno,description) VALUES ('413099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4135', 'COMERCIO AL POR MAYOR Y AL POR MENOR ');
+INSERT INTO gifi (accno,description) VALUES ('413502', 'VENTA DE VEHICULOS AUTOMOTORES ');
+INSERT INTO gifi (accno,description) VALUES ('413504', 'MANTENIMIENTO, REPARACION Y LAVADO DE VEHICULOS AUTOMOTORES ');
+INSERT INTO gifi (accno,description) VALUES ('413506', 'VENTA DE PARTES, PIEZAS Y ACCESORIOS DE VEHICULOS AUTOMOTORES ');
+INSERT INTO gifi (accno,description) VALUES ('413508', 'VENTA DE COMBUSTIBLES SOLIDOS, LIQUIDOS, GASEOSOS ');
+INSERT INTO gifi (accno,description) VALUES ('413510', 'VENTA DE LUBRICANTES, ADITIVOS, LLANTAS Y LUJOS PARA AUTOMOTORES ');
+INSERT INTO gifi (accno,description) VALUES ('413512', 'VENTA A CAMBIO DE RETRIBUCION O POR CONTRATA ');
+INSERT INTO gifi (accno,description) VALUES ('413514', 'VENTA DE INSUMOS, MATERIAS PRIMAS AGROPECUARIAS Y FLORES ');
+INSERT INTO gifi (accno,description) VALUES ('413516', 'VENTA DE OTROS INSUMOS Y MATERIAS PRIMAS NO AGROPECUARIAS ');
+INSERT INTO gifi (accno,description) VALUES ('413518', 'VENTA DE ANIMALES VIVOS Y CUEROS ');
+INSERT INTO gifi (accno,description) VALUES ('413520', 'VENTA DE PRODUCTOS EN ALMACENES NO ESPECIALIZADOS ');
+INSERT INTO gifi (accno,description) VALUES ('413522', 'VENTA DE PRODUCTOS AGROPECUARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('413524', 'VENTA DE PRODUCTOS TEXTILES, DE VESTIR, DE CUERO Y CALZADO ');
+INSERT INTO gifi (accno,description) VALUES ('413526', 'VENTA DE PAPEL Y CARTON ');
+INSERT INTO gifi (accno,description) VALUES ('413528', 'VENTA DE LIBROS, REVISTAS, ELEMENTOS DE PAPELERIA, UTILES Y TEXTOS ESCOLARES ');
+INSERT INTO gifi (accno,description) VALUES ('413530', 'VENTA DE JUEGOS, JUGUETES Y ARTICULOS DEPORTIVOS ');
+INSERT INTO gifi (accno,description) VALUES ('413532', 'VENTA DE INSTRUMENTOS QUIRURGICOS Y ORTOPEDICOS ');
+INSERT INTO gifi (accno,description) VALUES ('413534', 'VENTA DE ARTICULOS EN RELOJERIAS Y JOYERIAS ');
+INSERT INTO gifi (accno,description) VALUES ('413536', 'VENTA DE ELECTRODOMESTICOS Y MUEBLES ');
+INSERT INTO gifi (accno,description) VALUES ('413538', 'VENTA DE PRODUCTOS DE ASEO, FARMACEUTICOS, MEDICINALES, Y ARTICULOS DE TOCADOR ');
+INSERT INTO gifi (accno,description) VALUES ('413540', 'VENTA DE CUBIERTOS, VAJILLAS, CRISTALERIA, PORCELANAS, CERAMICAS Y OTROS ARTICULOS DE USO DOMESTICO ');
+INSERT INTO gifi (accno,description) VALUES ('413542', 'VENTA DE MATERIALES DE CONSTRUCCION, FONTANERIA Y CALEFACCION ');
+INSERT INTO gifi (accno,description) VALUES ('413544', 'VENTA DE PINTURAS Y LACAS ');
+INSERT INTO gifi (accno,description) VALUES ('413546', 'VENTA DE PRODUCTOS DE VIDRIOS Y MARQUETERIA ');
+INSERT INTO gifi (accno,description) VALUES ('413548', 'VENTA DE HERRAMIENTAS Y ARTICULOS DE FERRETERIA ');
+INSERT INTO gifi (accno,description) VALUES ('413550', 'VENTA DE QUIMICOS ');
+INSERT INTO gifi (accno,description) VALUES ('413552', 'VENTA DE PRODUCTOS INTERMEDIOS, DESPERDICIOS Y DESECHOS ');
+INSERT INTO gifi (accno,description) VALUES ('413554', 'VENTA DE MAQUINARIA, EQUIPO DE OFICINA Y PROGRAMAS DE COMPUTADOR ');
+INSERT INTO gifi (accno,description) VALUES ('413556', 'VENTA DE ARTICULOS EN CACHARRERIAS Y MISCELANEAS ');
+INSERT INTO gifi (accno,description) VALUES ('413558', 'VENTA DE INSTRUMENTOS MUSICALES ');
+INSERT INTO gifi (accno,description) VALUES ('413560', 'VENTA DE ARTICULOS EN CASAS DE EMPEŃO Y PRENDERIAS ');
+INSERT INTO gifi (accno,description) VALUES ('413562', 'VENTA DE EQUIPO FOTOGRAFICO ');
+INSERT INTO gifi (accno,description) VALUES ('413564', 'VENTA DE EQUIPO OPTICO Y DE PRECISION ');
+INSERT INTO gifi (accno,description) VALUES ('413566', 'VENTA DE EMPAQUES ');
+INSERT INTO gifi (accno,description) VALUES ('413568', 'VENTA DE EQUIPO PROFESIONAL Y CIENTIFICO ');
+INSERT INTO gifi (accno,description) VALUES ('413570', 'VENTA DE LOTERIAS, RIFAS, CHANCE, APUESTAS Y SIMILARES ');
+INSERT INTO gifi (accno,description) VALUES ('413572', 'REPARACION DE EFECTOS PERSONALES Y ELECTRODOMESTICOS ');
+INSERT INTO gifi (accno,description) VALUES ('413595', 'VENTA DE OTROS PRODUCTOS ');
+INSERT INTO gifi (accno,description) VALUES ('413599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4140', 'HOTELES Y RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('414005', 'HOTELERIA ');
+INSERT INTO gifi (accno,description) VALUES ('414010', 'CAMPAMENTO Y OTROS TIPOS DE HOSPEDAJE ');
+INSERT INTO gifi (accno,description) VALUES ('414015', 'RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('414020', 'BARES Y CANTINAS ');
+INSERT INTO gifi (accno,description) VALUES ('414095', 'ACTIVIDADES CONEXAS ');
+INSERT INTO gifi (accno,description) VALUES ('414099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4145', 'TRANSPORTE, ALMACENAMIENTO Y COMUNICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('414505', 'SERVICIO DE TRANSPORTE POR CARRETERA ');
+INSERT INTO gifi (accno,description) VALUES ('414510', 'SERVICIO DE TRANSPORTE POR VIA FERREA ');
+INSERT INTO gifi (accno,description) VALUES ('414515', 'SERVICIO DE TRANSPORTE POR VIA ACUATICA ');
+INSERT INTO gifi (accno,description) VALUES ('414520', 'SERVICIO DE TRANSPORTE POR VIA AEREA ');
+INSERT INTO gifi (accno,description) VALUES ('414525', 'SERVICIO DE TRANSPORTE POR TUBERIAS ');
+INSERT INTO gifi (accno,description) VALUES ('414530', 'MANIPULACION DE CARGA ');
+INSERT INTO gifi (accno,description) VALUES ('414535', 'ALMACENAMIENTO Y DEPOSITO ');
+INSERT INTO gifi (accno,description) VALUES ('414540', 'SERVICIOS COMPLEMENTARIOS PARA EL TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('414545', 'AGENCIAS DE VIAJE ');
+INSERT INTO gifi (accno,description) VALUES ('414550', 'OTRAS AGENCIAS DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('414555', 'SERVICIO POSTAL Y DE CORREO ');
+INSERT INTO gifi (accno,description) VALUES ('414560', 'SERVICIO TELEFONICO ');
+INSERT INTO gifi (accno,description) VALUES ('414565', 'SERVICIO DE TELEGRAFO ');
+INSERT INTO gifi (accno,description) VALUES ('414570', 'SERVICIO DE TRANSMISION DE DATOS ');
+INSERT INTO gifi (accno,description) VALUES ('414575', 'SERVICIO DE RADIO Y TELEVISION POR CABLE ');
+INSERT INTO gifi (accno,description) VALUES ('414580', 'TRANSMISION DE SONIDO E IMAGENES POR CONTRATO ');
+INSERT INTO gifi (accno,description) VALUES ('414595', 'ACTIVIDADES CONEXAS ');
+INSERT INTO gifi (accno,description) VALUES ('414599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4150', 'ACTIVIDAD FINANCIERA ');
+INSERT INTO gifi (accno,description) VALUES ('415005', 'VENTA DE INVERSIONES ');
+INSERT INTO gifi (accno,description) VALUES ('415010', 'DIVIDENDOS DE SOCIEDADES ANONIMAS Y/O ASIMILADAS ');
+INSERT INTO gifi (accno,description) VALUES ('415015', 'PARTICIPACIONES DE SOCIEDADES LIMITADAS Y/O ASIMILADAS ');
+INSERT INTO gifi (accno,description) VALUES ('415020', 'INTERESES ');
+INSERT INTO gifi (accno,description) VALUES ('415025', 'REAJUSTE MONETARIO - UPAC ');
+INSERT INTO gifi (accno,description) VALUES ('415030', 'COMISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('415035', 'OPERACIONES DE DESCUENTO ');
+INSERT INTO gifi (accno,description) VALUES ('415040', 'CUOTAS DE INSCRIPCION - CONSORCIOS ');
+INSERT INTO gifi (accno,description) VALUES ('415045', 'CUOTAS DE ADMINISTRACION - CONSORCIOS ');
+INSERT INTO gifi (accno,description) VALUES ('415050', 'REAJUSTE DEL SISTEMA - CONSORCIOS ');
+INSERT INTO gifi (accno,description) VALUES ('415055', 'ELIMINACION DE SUSCRIPTORES - CONSORCIOS ');
+INSERT INTO gifi (accno,description) VALUES ('415060', 'CUOTAS DE INGRESO O RETIRO - SOCIEDAD ADMINISTRADORA ');
+INSERT INTO gifi (accno,description) VALUES ('415065', 'SERVICIOS A COMISIONISTAS ');
+INSERT INTO gifi (accno,description) VALUES ('415070', 'INSCRIPCIONES Y CUOTAS ');
+INSERT INTO gifi (accno,description) VALUES ('415075', 'RECUPERACION DE GARANTIAS ');
+INSERT INTO gifi (accno,description) VALUES ('415095', 'ACTIVIDADES CONEXAS ');
+INSERT INTO gifi (accno,description) VALUES ('415099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4155', 'ACTIVIDADES INMOBILIARIAS, EMPRESARIALES Y DE ALQUILER ');
+INSERT INTO gifi (accno,description) VALUES ('415505', 'ARRENDAMIENTOS DE BIENES INMUEBLES ');
+INSERT INTO gifi (accno,description) VALUES ('415510', 'INMOBILIARIAS POR RETRIBUCION O CONTRATA ');
+INSERT INTO gifi (accno,description) VALUES ('415515', 'ALQUILER EQUIPO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('415520', 'ALQUILER MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('415525', 'ALQUILER DE EFECTOS PERSONALES Y ENSERES DOMESTICOS ');
+INSERT INTO gifi (accno,description) VALUES ('415530', 'CONSULTORIA EN EQUIPO Y PROGRAMAS DE INFORMATICA ');
+INSERT INTO gifi (accno,description) VALUES ('415535', 'PROCESAMIENTO DE DATOS ');
+INSERT INTO gifi (accno,description) VALUES ('415540', 'MANTENIMIENTO Y REPARACION DE MAQUINARIA DE OFICINA ');
+INSERT INTO gifi (accno,description) VALUES ('415545', 'INVESTIGACIONES CIENTIFICAS Y DE DESARROLLO ');
+INSERT INTO gifi (accno,description) VALUES ('415550', 'ACTIVIDADES EMPRESARIALES DE CONSULTORIA ');
+INSERT INTO gifi (accno,description) VALUES ('415555', 'PUBLICIDAD ');
+INSERT INTO gifi (accno,description) VALUES ('415560', 'DOTACION DE PERSONAL ');
+INSERT INTO gifi (accno,description) VALUES ('415565', 'INVESTIGACION Y SEGURIDAD ');
+INSERT INTO gifi (accno,description) VALUES ('415570', 'LIMPIEZA DE INMUEBLES ');
+INSERT INTO gifi (accno,description) VALUES ('415575', 'FOTOGRAFIA ');
+INSERT INTO gifi (accno,description) VALUES ('415580', 'ENVASE Y EMPAQUE ');
+INSERT INTO gifi (accno,description) VALUES ('415585', 'FOTOCOPIADO ');
+INSERT INTO gifi (accno,description) VALUES ('415590', 'MANTENIMIENTO Y REPARACION DE MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('415595', 'ACTIVIDADES CONEXAS ');
+INSERT INTO gifi (accno,description) VALUES ('415599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4160', 'ENSEŃANZA ');
+INSERT INTO gifi (accno,description) VALUES ('416005', 'ACTIVIDADES RELACIONADAS CON LA EDUCACION ');
+INSERT INTO gifi (accno,description) VALUES ('416095', 'ACTIVIDADES CONEXAS ');
+INSERT INTO gifi (accno,description) VALUES ('416099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4165', 'SERVICIOS SOCIALES Y DE SALUD ');
+INSERT INTO gifi (accno,description) VALUES ('416505', 'SERVICIO HOSPITALARIO ');
+INSERT INTO gifi (accno,description) VALUES ('416510', 'SERVICIO MEDICO ');
+INSERT INTO gifi (accno,description) VALUES ('416515', 'SERVICIO ODONTOLOGICO ');
+INSERT INTO gifi (accno,description) VALUES ('416520', 'SERVICIO DE LABORATORIO ');
+INSERT INTO gifi (accno,description) VALUES ('416525', 'ACTIVIDADES VETERINARIAS ');
+INSERT INTO gifi (accno,description) VALUES ('416530', 'ACTIVIDADES DE SERVICIOS SOCIALES ');
+INSERT INTO gifi (accno,description) VALUES ('416595', 'ACTIVIDADES CONEXAS ');
+INSERT INTO gifi (accno,description) VALUES ('416599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4170', 'OTRAS ACTIVIDADES DE SERVICIOS COMUNITARIOS, SOCIALES Y PERSONALES ');
+INSERT INTO gifi (accno,description) VALUES ('417005', 'ELIMINACION DE DESPERDICIOS Y AGUAS RESIDUALES ');
+INSERT INTO gifi (accno,description) VALUES ('417010', 'ACTIVIDADES DE ASOCIACION ');
+INSERT INTO gifi (accno,description) VALUES ('417015', 'PRODUCCION Y DISTRIBUCION DE FILMES Y VIDEOCINTAS ');
+INSERT INTO gifi (accno,description) VALUES ('417020', 'EXHIBICION DE FILMES Y VIDEOCINTAS ');
+INSERT INTO gifi (accno,description) VALUES ('417025', 'ACTIVIDAD DE RADIO Y TELEVISION ');
+INSERT INTO gifi (accno,description) VALUES ('417030', 'ACTIVIDAD TEATRAL, MUSICAL Y ARTISTICA ');
+INSERT INTO gifi (accno,description) VALUES ('417035', 'GRABACION Y PRODUCCION DE DISCOS ');
+INSERT INTO gifi (accno,description) VALUES ('417040', 'ENTRETENIMIENTO Y ESPARCIMIENTO ');
+INSERT INTO gifi (accno,description) VALUES ('417045', 'AGENCIAS DE NOTICIAS ');
+INSERT INTO gifi (accno,description) VALUES ('417050', 'LAVANDERIAS Y SIMILARES ');
+INSERT INTO gifi (accno,description) VALUES ('417055', 'PELUQUERIAS Y SIMILARES ');
+INSERT INTO gifi (accno,description) VALUES ('417060', 'SERVICIOS FUNERARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('417065', 'ZONAS FRANCAS ');
+INSERT INTO gifi (accno,description) VALUES ('417095', 'ACTIVIDADES CONEXAS ');
+INSERT INTO gifi (accno,description) VALUES ('417099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4175', 'DEVOLUCIONES, REBAJAS Y DESCUENTOS EN VENTAS (DB) ');
+INSERT INTO gifi (accno,description) VALUES ('417599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('42', 'NO OPERACIONALES ');
+INSERT INTO gifi (accno,description) VALUES ('4205', 'OTRAS VENTAS ');
+INSERT INTO gifi (accno,description) VALUES ('420505', 'MATERIA PRIMA ');
+INSERT INTO gifi (accno,description) VALUES ('420510', 'MATERIAL DE DESECHO ');
+INSERT INTO gifi (accno,description) VALUES ('420515', 'MATERIALES VARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('420520', 'PRODUCTOS DE DIVERSIFICACION ');
+INSERT INTO gifi (accno,description) VALUES ('420525', 'EXCEDENTES DE EXPORTACION ');
+INSERT INTO gifi (accno,description) VALUES ('420530', 'ENVASES Y EMPAQUES ');
+INSERT INTO gifi (accno,description) VALUES ('420535', 'PRODUCTOS AGRICOLAS ');
+INSERT INTO gifi (accno,description) VALUES ('420540', 'DE PROPAGANDA ');
+INSERT INTO gifi (accno,description) VALUES ('420545', 'PRODUCTOS EN REMATE ');
+INSERT INTO gifi (accno,description) VALUES ('420550', 'COMBUSTIBLES Y LUBRICANTES ');
+INSERT INTO gifi (accno,description) VALUES ('420599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4210', 'FINANCIEROS ');
+INSERT INTO gifi (accno,description) VALUES ('421005', 'INTERESES ');
+INSERT INTO gifi (accno,description) VALUES ('421010', 'REAJUSTE MONETARIO - UPAC ');
+INSERT INTO gifi (accno,description) VALUES ('421015', 'DESCUENTOS AMORTIZADOS ');
+INSERT INTO gifi (accno,description) VALUES ('421020', 'DIFERENCIA EN CAMBIO ');
+INSERT INTO gifi (accno,description) VALUES ('421025', 'FINANCIACION VEHICULOS ');
+INSERT INTO gifi (accno,description) VALUES ('421030', 'FINANCIACION SISTEMAS DE VIAJES ');
+INSERT INTO gifi (accno,description) VALUES ('421035', 'ACEPTACIONES BANCARIAS ');
+INSERT INTO gifi (accno,description) VALUES ('421040', 'DESCUENTOS COMERCIALES CONDICIONADOS ');
+INSERT INTO gifi (accno,description) VALUES ('421045', 'DESCUENTOS BANCARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('421050', 'COMISIONES CHEQUES DE OTRAS PLAZAS ');
+INSERT INTO gifi (accno,description) VALUES ('421055', 'MULTAS Y RECARGOS ');
+INSERT INTO gifi (accno,description) VALUES ('421060', 'SANCIONES CHEQUES DEVUELTOS ');
+INSERT INTO gifi (accno,description) VALUES ('421095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('421099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4215', 'DIVIDENDOS Y PARTICIPACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('421505', 'DE SOCIEDADES ANONIMAS Y/O ASIMILADAS ');
+INSERT INTO gifi (accno,description) VALUES ('421510', 'DE SOCIEDADES LIMITADAS Y/O ASIMILADAS ');
+INSERT INTO gifi (accno,description) VALUES ('421599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4220', 'ARRENDAMIENTOS ');
+INSERT INTO gifi (accno,description) VALUES ('422005', 'TERRENOS ');
+INSERT INTO gifi (accno,description) VALUES ('422010', 'CONSTRUCCIONES Y EDIFICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('422015', 'MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('422020', 'EQUIPO DE OFICINA ');
+INSERT INTO gifi (accno,description) VALUES ('422025', 'EQUIPO DE COMPUTACION Y COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('422030', 'EQUIPO MEDICO - CIENTIFICO ');
+INSERT INTO gifi (accno,description) VALUES ('422035', 'EQUIPO DE HOTELES Y RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('422040', 'FLOTA Y EQUIPO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('422045', 'FLOTA Y EQUIPO FLUVIAL Y/O MARITIMO ');
+INSERT INTO gifi (accno,description) VALUES ('422050', 'FLOTA Y EQUIPO AEREO ');
+INSERT INTO gifi (accno,description) VALUES ('422055', 'FLOTA Y EQUIPO FERREO ');
+INSERT INTO gifi (accno,description) VALUES ('422060', 'ACUEDUCTOS PLANTAS Y REDES ');
+INSERT INTO gifi (accno,description) VALUES ('422062', 'ENVASES Y EMPAQUES ');
+INSERT INTO gifi (accno,description) VALUES ('422065', 'PLANTACIONES AGRICOLAS Y FORESTALES ');
+INSERT INTO gifi (accno,description) VALUES ('422070', 'AERODROMOS ');
+INSERT INTO gifi (accno,description) VALUES ('422075', 'SEMOVIENTES ');
+INSERT INTO gifi (accno,description) VALUES ('422099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4225', 'COMISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('422505', 'SOBRE INVERSIONES ');
+INSERT INTO gifi (accno,description) VALUES ('422510', 'DE CONCESIONARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('422515', 'DE ACTIVIDADES FINANCIERAS ');
+INSERT INTO gifi (accno,description) VALUES ('422520', 'POR VENTA DE SERVICIOS DE TALLER ');
+INSERT INTO gifi (accno,description) VALUES ('422525', 'POR VENTA DE SEGUROS ');
+INSERT INTO gifi (accno,description) VALUES ('422530', 'POR INGRESOS PARA TERCEROS ');
+INSERT INTO gifi (accno,description) VALUES ('422535', 'POR DISTRIBUCION DE PELICULAS ');
+INSERT INTO gifi (accno,description) VALUES ('422540', 'DERECHOS DE AUTOR ');
+INSERT INTO gifi (accno,description) VALUES ('422545', 'DERECHOS DE PROGRAMACION ');
+INSERT INTO gifi (accno,description) VALUES ('422599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4230', 'HONORARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('423005', 'ASESORIAS ');
+INSERT INTO gifi (accno,description) VALUES ('423010', 'ASISTENCIA TECNICA ');
+INSERT INTO gifi (accno,description) VALUES ('423015', 'ADMINISTRACION DE VINCULADAS ');
+INSERT INTO gifi (accno,description) VALUES ('423099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4235', 'SERVICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('423505', 'DE BASCULA ');
+INSERT INTO gifi (accno,description) VALUES ('423510', 'DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('423515', 'DE PRENSA ');
+INSERT INTO gifi (accno,description) VALUES ('423520', 'ADMINISTRATIVOS ');
+INSERT INTO gifi (accno,description) VALUES ('423525', 'TECNICOS ');
+INSERT INTO gifi (accno,description) VALUES ('423530', 'DE COMPUTACION ');
+INSERT INTO gifi (accno,description) VALUES ('423535', 'DE TELEFAX ');
+INSERT INTO gifi (accno,description) VALUES ('423540', 'TALLER DE VEHICULOS ');
+INSERT INTO gifi (accno,description) VALUES ('423545', 'DE RECEPCION DE AERONAVES ');
+INSERT INTO gifi (accno,description) VALUES ('423550', 'DE TRANSPORTE PROGRAMA GAS NATURAL ');
+INSERT INTO gifi (accno,description) VALUES ('423555', 'POR CONTRATOS ');
+INSERT INTO gifi (accno,description) VALUES ('423560', 'DE TRILLLA ');
+INSERT INTO gifi (accno,description) VALUES ('423565', 'DE MANTENIMIENTO ');
+INSERT INTO gifi (accno,description) VALUES ('423570', 'AL PERSONAL ');
+INSERT INTO gifi (accno,description) VALUES ('423575', 'DE CASINO ');
+INSERT INTO gifi (accno,description) VALUES ('423580', 'FLETES ');
+INSERT INTO gifi (accno,description) VALUES ('423585', 'ENTRE COMPAŃIAS ');
+INSERT INTO gifi (accno,description) VALUES ('423595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('423599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4240', 'UTILIDAD EN VENTA DE INVERSIONES ');
+INSERT INTO gifi (accno,description) VALUES ('424005', 'ACCIONES ');
+INSERT INTO gifi (accno,description) VALUES ('424010', 'CUOTAS O PARTES DE INTERES SOCIAL ');
+INSERT INTO gifi (accno,description) VALUES ('424015', 'BONOS ');
+INSERT INTO gifi (accno,description) VALUES ('424020', 'CEDULAS ');
+INSERT INTO gifi (accno,description) VALUES ('424025', 'CERTIFICADOS ');
+INSERT INTO gifi (accno,description) VALUES ('424030', 'PAPELES COMERCIALES ');
+INSERT INTO gifi (accno,description) VALUES ('424035', 'TITULOS ');
+INSERT INTO gifi (accno,description) VALUES ('424045', 'DERECHOS FIDUCIARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('424050', 'OBLIGATORIAS ');
+INSERT INTO gifi (accno,description) VALUES ('424095', 'OTRAS ');
+INSERT INTO gifi (accno,description) VALUES ('424099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4245', 'UTILIDAD EN VENTA DE PROPIEDADES PLANTA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('424504', 'TERRENOS ');
+INSERT INTO gifi (accno,description) VALUES ('424506', 'MATERIALES INDUSTRIA PETROLERA ');
+INSERT INTO gifi (accno,description) VALUES ('424508', 'CONSTRUCCIONES EN CURSO ');
+INSERT INTO gifi (accno,description) VALUES ('424512', 'MAQUINARIA EN MONTAJE ');
+INSERT INTO gifi (accno,description) VALUES ('424516', 'CONSTRUCCIONES Y EDIFICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('424520', 'MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('424524', 'EQUIPO DE OFICINA ');
+INSERT INTO gifi (accno,description) VALUES ('424528', 'EQUIPO DE COMPUTACION Y COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('424532', 'EQUIPO MEDICO - CIENTIFICO ');
+INSERT INTO gifi (accno,description) VALUES ('424536', 'EQUIPO DE HOTELES Y RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('424540', 'FLOTA Y EQUIPO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('424544', 'FLOTA Y EQUIPO FLUVIAL Y/O MARITIMO ');
+INSERT INTO gifi (accno,description) VALUES ('424548', 'FLOTA Y EQUIPO AEREO ');
+INSERT INTO gifi (accno,description) VALUES ('424552', 'FLOTA Y EQUIPO FERREO ');
+INSERT INTO gifi (accno,description) VALUES ('424556', 'ACUEDUCTOS PLANTAS Y REDES ');
+INSERT INTO gifi (accno,description) VALUES ('424560', 'ARMAMENTO DE VIGILANCIA ');
+INSERT INTO gifi (accno,description) VALUES ('424562', 'ENVASES Y EMPAQUES ');
+INSERT INTO gifi (accno,description) VALUES ('424564', 'PLANTACIONES AGRICOLAS Y FORESTALES ');
+INSERT INTO gifi (accno,description) VALUES ('424568', 'VIAS DE COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('424572', 'MINAS Y CANTERAS ');
+INSERT INTO gifi (accno,description) VALUES ('424580', 'POZOS ARTESIANOS ');
+INSERT INTO gifi (accno,description) VALUES ('424584', 'YACIMIENTOS ');
+INSERT INTO gifi (accno,description) VALUES ('424588', 'SEMOVIENTES ');
+INSERT INTO gifi (accno,description) VALUES ('424599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4248', 'UTILIDAD EN VENTA DE OTROS BIENES ');
+INSERT INTO gifi (accno,description) VALUES ('424805', 'INTANGIBLES ');
+INSERT INTO gifi (accno,description) VALUES ('424810', 'OTROS ACTIVOS ');
+INSERT INTO gifi (accno,description) VALUES ('424899', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4250', 'RECUPERACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('425005', 'DEUDAS MALAS ');
+INSERT INTO gifi (accno,description) VALUES ('425010', 'SEGUROS ');
+INSERT INTO gifi (accno,description) VALUES ('425015', 'RECLAMOS ');
+INSERT INTO gifi (accno,description) VALUES ('425020', 'REINTEGRO POR PERSONAL EN COMISION ');
+INSERT INTO gifi (accno,description) VALUES ('425025', 'REINTEGRO GARANTIAS ');
+INSERT INTO gifi (accno,description) VALUES ('425030', 'DESCUENTOS CONCEDIDOS ');
+INSERT INTO gifi (accno,description) VALUES ('425035', 'REINTEGRO PROVISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('425040', 'GASTOS BANCARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('425045', 'DE DEPRECIACION ');
+INSERT INTO gifi (accno,description) VALUES ('425050', 'REINTEGRO DE OTROS COSTOS Y GASTOS ');
+INSERT INTO gifi (accno,description) VALUES ('425099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4255', 'INDEMNIZACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('425505', 'POR SINIESTRO ');
+INSERT INTO gifi (accno,description) VALUES ('425510', 'POR SUMINISTROS ');
+INSERT INTO gifi (accno,description) VALUES ('425515', 'LUCRO CESANTE COMPAŃIAS DE SEGUROS ');
+INSERT INTO gifi (accno,description) VALUES ('425520', 'DAŃO EMERGENTE COMPAŃIAS DE SEGUROS ');
+INSERT INTO gifi (accno,description) VALUES ('425525', 'POR PERDIDA DE MERCANCIA ');
+INSERT INTO gifi (accno,description) VALUES ('425530', 'POR INCUMPLIMIENTO DE CONTRATOS ');
+INSERT INTO gifi (accno,description) VALUES ('425535', 'DE TERCEROS ');
+INSERT INTO gifi (accno,description) VALUES ('425540', 'POR INCAPACIDADES I.S.S. ');
+INSERT INTO gifi (accno,description) VALUES ('425595', 'OTRAS ');
+INSERT INTO gifi (accno,description) VALUES ('425599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4260', 'PARTICIPACIONES EN CONCESIONES ');
+INSERT INTO gifi (accno,description) VALUES ('426099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4265', 'INGRESOS DE EJERCICIOS ANTERIORES ');
+INSERT INTO gifi (accno,description) VALUES ('426599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4275', 'DEVOLUCIONES, REBAJAS Y DESCUENTOS EN OTRAS VENTAS (DB) ');
+INSERT INTO gifi (accno,description) VALUES ('427599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4295', 'DIVERSOS ');
+INSERT INTO gifi (accno,description) VALUES ('429503', 'CERT ');
+INSERT INTO gifi (accno,description) VALUES ('429505', 'APROVECHAMIENTOS ');
+INSERT INTO gifi (accno,description) VALUES ('429507', 'AUXILIOS ');
+INSERT INTO gifi (accno,description) VALUES ('429509', 'DONACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('429511', 'INGRESOS POR INVESTIGACION Y DESARROLLO ');
+INSERT INTO gifi (accno,description) VALUES ('429513', 'POR TRABAJOS EJECUTADOS ');
+INSERT INTO gifi (accno,description) VALUES ('429515', 'REGALIAS ');
+INSERT INTO gifi (accno,description) VALUES ('429517', 'DERIVADOS DE LAS EXPORTACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('429519', 'OTROS INGRESOS DE EXPLOTACION ');
+INSERT INTO gifi (accno,description) VALUES ('429521', 'DE LA ACTIVIDAD GANADERA ');
+INSERT INTO gifi (accno,description) VALUES ('429525', 'DERECHOS Y LICITACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('429530', 'INGRESOS POR ELEMENTOS PERDIDOS ');
+INSERT INTO gifi (accno,description) VALUES ('429533', 'MULTAS Y RECARGOS ');
+INSERT INTO gifi (accno,description) VALUES ('429535', 'PREAVISOS DESCONTADOS ');
+INSERT INTO gifi (accno,description) VALUES ('429537', 'RECLAMOS ');
+INSERT INTO gifi (accno,description) VALUES ('429540', 'RECOBRO DE DAŃOS ');
+INSERT INTO gifi (accno,description) VALUES ('429543', 'PREMIOS ');
+INSERT INTO gifi (accno,description) VALUES ('429545', 'BONIFICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('429547', 'PRODUCTOS DESCONTADOS ');
+INSERT INTO gifi (accno,description) VALUES ('429549', 'RECONOCIMIENTOS I.S.S. ');
+INSERT INTO gifi (accno,description) VALUES ('429551', 'EXCEDENTES ');
+INSERT INTO gifi (accno,description) VALUES ('429553', 'SOBRANTES DE CAJA MENOR ');
+INSERT INTO gifi (accno,description) VALUES ('429555', 'SOBRANTES EN LIQUIDACION FLETES ');
+INSERT INTO gifi (accno,description) VALUES ('429557', 'SUBSIDIOS ESTATALES ');
+INSERT INTO gifi (accno,description) VALUES ('429559', 'CAPACITACION DISTRIBUIDORES ');
+INSERT INTO gifi (accno,description) VALUES ('429561', 'DE ESCRITURACION ');
+INSERT INTO gifi (accno,description) VALUES ('429563', 'REGISTRO PROMESAS DE VENTA ');
+INSERT INTO gifi (accno,description) VALUES ('429567', 'UTILES, PAPELERIA Y FOTOCOPIAS ');
+INSERT INTO gifi (accno,description) VALUES ('429571', 'RESULTADOS MATRICULAS Y TRASPASOS ');
+INSERT INTO gifi (accno,description) VALUES ('429573', 'DECORACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('429575', 'MANEJO DE CARGA ');
+INSERT INTO gifi (accno,description) VALUES ('429579', 'HISTORIA CLINICA ');
+INSERT INTO gifi (accno,description) VALUES ('429581', 'AJUSTE AL PESO ');
+INSERT INTO gifi (accno,description) VALUES ('429583', 'LLAMADAS TELEFONICAS ');
+INSERT INTO gifi (accno,description) VALUES ('429599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('47', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('4705', 'CORRECCION MONETARIA ');
+INSERT INTO gifi (accno,description) VALUES ('470505', 'INVERSIONES (CR) ');
+INSERT INTO gifi (accno,description) VALUES ('470510', 'INVENTARIOS (CR) ');
+INSERT INTO gifi (accno,description) VALUES ('470515', 'PROPIEDADES, PLANTA Y EQUIPO (CR) ');
+INSERT INTO gifi (accno,description) VALUES ('470520', 'INTANGIBLES (CR) ');
+INSERT INTO gifi (accno,description) VALUES ('470525', 'ACTIVOS DIFERIDOS ');
+INSERT INTO gifi (accno,description) VALUES ('470530', 'OTROS ACTIVOS (CR) ');
+INSERT INTO gifi (accno,description) VALUES ('470535', 'PASIVOS SUJETOS DE AJUSTE ');
+INSERT INTO gifi (accno,description) VALUES ('470540', 'PATRIMONIO ');
+INSERT INTO gifi (accno,description) VALUES ('470545', 'DEPRECIACION ACUMULADA (DB) ');
+INSERT INTO gifi (accno,description) VALUES ('470550', 'DEPRECIACION DIFERIDA (CR) ');
+INSERT INTO gifi (accno,description) VALUES ('470555', 'AGOTAMIENTO ACUMULADO (DB) ');
+INSERT INTO gifi (accno,description) VALUES ('470560', 'AMORTIZACION ACUMULADA (DB) ');
+INSERT INTO gifi (accno,description) VALUES ('470565', 'INGRESOS OPERACIONALES (DB) ');
+INSERT INTO gifi (accno,description) VALUES ('470570', 'INGRESOS NO OPERACIONALES (DB) ');
+INSERT INTO gifi (accno,description) VALUES ('470575', 'GASTOS OPERACIONALES DE ADMINISTRACION (CR) ');
+INSERT INTO gifi (accno,description) VALUES ('470580', 'GASTOS OPERACIONALES DE VENTAS (CR) ');
+INSERT INTO gifi (accno,description) VALUES ('470585', 'GASTOS NO OPERACIONALES (CR) ');
+INSERT INTO gifi (accno,description) VALUES ('470590', 'COMPRAS (CR) ');
+INSERT INTO gifi (accno,description) VALUES ('470592', 'COSTO DE VENTAS (CR) ');
+INSERT INTO gifi (accno,description) VALUES ('470594', 'COSTOS DE PRODUCCION O DE OPERACION (DB) ');
+INSERT INTO gifi (accno,description) VALUES ('51', 'OPERACIONALES DE ADMINISTRACION ');
+INSERT INTO gifi (accno,description) VALUES ('5105', 'GASTOS DE PERSONAL ');
+INSERT INTO gifi (accno,description) VALUES ('510503', 'SALARIO INTEGRAL ');
+INSERT INTO gifi (accno,description) VALUES ('510506', 'SUELDOS ');
+INSERT INTO gifi (accno,description) VALUES ('510512', 'JORNALES ');
+INSERT INTO gifi (accno,description) VALUES ('510515', 'HORAS EXTRAS Y RECARGOS ');
+INSERT INTO gifi (accno,description) VALUES ('510518', 'COMISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('510521', 'VIATICOS ');
+INSERT INTO gifi (accno,description) VALUES ('510524', 'INCAPACIDADES ');
+INSERT INTO gifi (accno,description) VALUES ('510527', 'AUXILIO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('510530', 'CESANTIAS ');
+INSERT INTO gifi (accno,description) VALUES ('510533', 'INTERESES SOBRE CESANTIAS ');
+INSERT INTO gifi (accno,description) VALUES ('510536', 'PRIMA DE SERVICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('510539', 'VACACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('510542', 'PRIMAS EXTRALEGALES ');
+INSERT INTO gifi (accno,description) VALUES ('510545', 'AUXILIOS ');
+INSERT INTO gifi (accno,description) VALUES ('510548', 'BONIFICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('510551', 'DOTACION Y SUMINISTRO A TRABAJADORES ');
+INSERT INTO gifi (accno,description) VALUES ('510554', 'SEGUROS ');
+INSERT INTO gifi (accno,description) VALUES ('510557', 'CUOTAS PARTES PENSIONES DE JUBILACION ');
+INSERT INTO gifi (accno,description) VALUES ('510558', 'AMORTIZACION CALCULO ACTUARIAL PENSIONES DE JUBILACION ');
+INSERT INTO gifi (accno,description) VALUES ('510559', 'PENSIONES DE JUBILACION ');
+INSERT INTO gifi (accno,description) VALUES ('510560', 'INDEMNIZACIONES LABORALES ');
+INSERT INTO gifi (accno,description) VALUES ('510563', 'CAPACITACION AL PERSONAL ');
+INSERT INTO gifi (accno,description) VALUES ('510566', 'GASTOS DEPORTIVOS Y DE RECREACION ');
+INSERT INTO gifi (accno,description) VALUES ('510569', 'APORTES AL I.S.S ');
+INSERT INTO gifi (accno,description) VALUES ('510572', 'APORTES CAJAS DE COMPENSACION FAMILIAR ');
+INSERT INTO gifi (accno,description) VALUES ('510575', 'APORTES I.C.B.F. ');
+INSERT INTO gifi (accno,description) VALUES ('510578', 'SENA ');
+INSERT INTO gifi (accno,description) VALUES ('510581', 'APORTES SINDICALES ');
+INSERT INTO gifi (accno,description) VALUES ('510584', 'GASTOS MEDICOS Y DROGAS ');
+INSERT INTO gifi (accno,description) VALUES ('510595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('510599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5110', 'HONORARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('511005', 'JUNTA DIRECTIVA ');
+INSERT INTO gifi (accno,description) VALUES ('511010', 'REVISORÃÂA FISCAL ');
+INSERT INTO gifi (accno,description) VALUES ('511015', 'AUDITORIA EXTERNA ');
+INSERT INTO gifi (accno,description) VALUES ('511020', 'AVALUOS ');
+INSERT INTO gifi (accno,description) VALUES ('511025', 'ASESORIA JURIDICA ');
+INSERT INTO gifi (accno,description) VALUES ('511030', 'ASESORIA FINANCIERA ');
+INSERT INTO gifi (accno,description) VALUES ('511035', 'ASESORIA TECNICA ');
+INSERT INTO gifi (accno,description) VALUES ('511095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('511099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5115', 'IMPUESTOS ');
+INSERT INTO gifi (accno,description) VALUES ('511505', 'INDUSTRIA Y COMERCIO ');
+INSERT INTO gifi (accno,description) VALUES ('511510', 'DE TIMBRES ');
+INSERT INTO gifi (accno,description) VALUES ('511515', 'A LA PROPIEDAD RAIZ ');
+INSERT INTO gifi (accno,description) VALUES ('511520', 'DERECHOS SOBRE INSTRUMENTOS PUBLICOS ');
+INSERT INTO gifi (accno,description) VALUES ('511525', 'DE VALORIZACION ');
+INSERT INTO gifi (accno,description) VALUES ('511530', 'DE TURISMO ');
+INSERT INTO gifi (accno,description) VALUES ('511535', 'TASA POR UTILIZACION DE PUERTOS ');
+INSERT INTO gifi (accno,description) VALUES ('511540', 'DE VEHICULOS ');
+INSERT INTO gifi (accno,description) VALUES ('511545', 'DE ESPECTACULOS PUBLICOS ');
+INSERT INTO gifi (accno,description) VALUES ('511550', 'CUOTAS DE FOMENTO ');
+INSERT INTO gifi (accno,description) VALUES ('511570', 'IVA DESCONTABLE ');
+INSERT INTO gifi (accno,description) VALUES ('511595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('511599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5120', 'ARRENDAMIENTOS ');
+INSERT INTO gifi (accno,description) VALUES ('512005', 'TERRENOS ');
+INSERT INTO gifi (accno,description) VALUES ('512010', 'CONSTRUCCIONES Y EDIFICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('512015', 'MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('512020', 'EQUIPO DE OFICINA ');
+INSERT INTO gifi (accno,description) VALUES ('512025', 'EQUIPO DE COMPUTACION Y COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('512030', 'EQUIPO MEDICO - CIENTIFICO ');
+INSERT INTO gifi (accno,description) VALUES ('512035', 'EQUIPO DE HOTELES Y RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('512040', 'FLOTA Y EQUIPO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('512045', 'FLOTA Y EQUIPO FLUVIAL Y/O MARITIMO ');
+INSERT INTO gifi (accno,description) VALUES ('512050', 'FLOTA Y EQUIPO AEREO ');
+INSERT INTO gifi (accno,description) VALUES ('512055', 'FLOTA Y EQUIPO FERREO ');
+INSERT INTO gifi (accno,description) VALUES ('512060', 'ACUEDUCTOS PLANTAS Y REDES ');
+INSERT INTO gifi (accno,description) VALUES ('512065', 'AERODROMOS ');
+INSERT INTO gifi (accno,description) VALUES ('512070', 'SEMOVIENTES ');
+INSERT INTO gifi (accno,description) VALUES ('512095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('512099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5125', 'CONTRIBUCIONES Y AFILIACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('512505', 'CONTRIBUCIONES ');
+INSERT INTO gifi (accno,description) VALUES ('512510', 'AFILIACIONES Y SOSTENIMIENTO ');
+INSERT INTO gifi (accno,description) VALUES ('512599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5130', 'SEGUROS ');
+INSERT INTO gifi (accno,description) VALUES ('513005', 'MANEJO ');
+INSERT INTO gifi (accno,description) VALUES ('513010', 'CUMPLIMIENTO ');
+INSERT INTO gifi (accno,description) VALUES ('513015', 'CORRIENTE DEBIL ');
+INSERT INTO gifi (accno,description) VALUES ('513020', 'VIDA COLECTIVA ');
+INSERT INTO gifi (accno,description) VALUES ('513025', 'INCENDIO ');
+INSERT INTO gifi (accno,description) VALUES ('513030', 'TERREMOTO ');
+INSERT INTO gifi (accno,description) VALUES ('513035', 'SUSTRACCION Y HURTO ');
+INSERT INTO gifi (accno,description) VALUES ('513040', 'FLOTA Y EQUIPO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('513045', 'FLOTA Y EQUIPO FLUVIAL Y/O MARITIMO ');
+INSERT INTO gifi (accno,description) VALUES ('513050', 'FLOTA Y EQUIPO AEREO ');
+INSERT INTO gifi (accno,description) VALUES ('513055', 'FLOTA Y EQUIPO FERREO ');
+INSERT INTO gifi (accno,description) VALUES ('513060', 'RESPONSABILIDAD CIVIL Y EXTRACONTRACTUAL ');
+INSERT INTO gifi (accno,description) VALUES ('513065', 'VUELO ');
+INSERT INTO gifi (accno,description) VALUES ('513070', 'ROTURA DE MAQUINARIA ');
+INSERT INTO gifi (accno,description) VALUES ('513075', 'OBLIGATORIO ACCIDENTE DE TRANSITO ');
+INSERT INTO gifi (accno,description) VALUES ('513080', 'LUCRO CESANTE ');
+INSERT INTO gifi (accno,description) VALUES ('513095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('513099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5135', 'SERVICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('513505', 'ASEO Y VIGILANCIA ');
+INSERT INTO gifi (accno,description) VALUES ('513510', 'TEMPORALES ');
+INSERT INTO gifi (accno,description) VALUES ('513515', 'ASISTENCIA TECNICA ');
+INSERT INTO gifi (accno,description) VALUES ('513520', 'PROCESAMIENTO ELECTRONICO DE DATOS ');
+INSERT INTO gifi (accno,description) VALUES ('513525', 'ACUEDUCTO Y ALCANTARILLADO ');
+INSERT INTO gifi (accno,description) VALUES ('513530', 'ENERGIA ELECTRICA ');
+INSERT INTO gifi (accno,description) VALUES ('513535', 'TELEFONO ');
+INSERT INTO gifi (accno,description) VALUES ('513540', 'CORREO, PORTES Y TELEGRAMAS ');
+INSERT INTO gifi (accno,description) VALUES ('513545', 'FAX Y TELEX ');
+INSERT INTO gifi (accno,description) VALUES ('513550', 'TRANSPORTE, FLETES Y ACARREOS ');
+INSERT INTO gifi (accno,description) VALUES ('513555', 'GAS ');
+INSERT INTO gifi (accno,description) VALUES ('513595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('513599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5140', 'GASTOS LEGALES ');
+INSERT INTO gifi (accno,description) VALUES ('514005', 'NOTARIALES ');
+INSERT INTO gifi (accno,description) VALUES ('514010', 'REGISTRO MERCANTIL ');
+INSERT INTO gifi (accno,description) VALUES ('514015', 'TRAMITES Y LICENCIAS ');
+INSERT INTO gifi (accno,description) VALUES ('514020', 'ADUANEROS ');
+INSERT INTO gifi (accno,description) VALUES ('514025', 'CONSULARES ');
+INSERT INTO gifi (accno,description) VALUES ('514095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('514099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5145', 'MANTENIMIENTO Y REPARACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('514505', 'TERRENOS ');
+INSERT INTO gifi (accno,description) VALUES ('514510', 'CONSTRUCCIONES Y EDIFICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('514515', 'MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('514520', 'EQUIPO DE OFICINA ');
+INSERT INTO gifi (accno,description) VALUES ('514525', 'EQUIPO DE COMPUTACION Y COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('514530', 'EQUIPO MEDICO-CIENTIFICO ');
+INSERT INTO gifi (accno,description) VALUES ('514535', 'EQUIPO DE HOTELES Y RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('514540', 'FLOTA Y EQUIPO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('514545', 'FLOTA Y EQUIPO FLUVIAL Y/O MARITIMO ');
+INSERT INTO gifi (accno,description) VALUES ('514550', 'FLOTA Y EQUIPO AEREO ');
+INSERT INTO gifi (accno,description) VALUES ('514555', 'FLOTA Y EQUIPO FERREO ');
+INSERT INTO gifi (accno,description) VALUES ('514560', 'ACUEDUCTOS PLANTAS Y REDES ');
+INSERT INTO gifi (accno,description) VALUES ('514565', 'ARMAMENTO DE VIGILANCIA ');
+INSERT INTO gifi (accno,description) VALUES ('514570', 'VIAS DE COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('514599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5150', 'ADECUACION E INSTALACION ');
+INSERT INTO gifi (accno,description) VALUES ('515005', 'INSTALACIONES ELECTRICAS ');
+INSERT INTO gifi (accno,description) VALUES ('515010', 'ARREGLOS ORNAMENTALES ');
+INSERT INTO gifi (accno,description) VALUES ('515015', 'REPARACIONES LOCATIVAS ');
+INSERT INTO gifi (accno,description) VALUES ('515095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('515099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5155', 'GASTOS DE VIAJE ');
+INSERT INTO gifi (accno,description) VALUES ('515505', 'ALOJAMIENTO Y MANUTENCION ');
+INSERT INTO gifi (accno,description) VALUES ('515510', 'PASAJES FLUVIALES Y/O MARITIMOS ');
+INSERT INTO gifi (accno,description) VALUES ('515515', 'PASAJES AEREOS ');
+INSERT INTO gifi (accno,description) VALUES ('515520', 'PASAJES TERRESTRES ');
+INSERT INTO gifi (accno,description) VALUES ('515525', 'PASAJES FERREOS ');
+INSERT INTO gifi (accno,description) VALUES ('515595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('515599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5160', 'DEPRECIACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('516005', 'CONSTRUCCIONES Y EDIFICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('516010', 'MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('516015', 'EQUIPO DE OFICINA ');
+INSERT INTO gifi (accno,description) VALUES ('516020', 'EQUIPO DE COMPUTACION Y COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('516025', 'EQUIPO MEDICO - CIENTIFICO ');
+INSERT INTO gifi (accno,description) VALUES ('516030', 'EQUIPO DE HOTELES Y RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('516035', 'FLOTA Y EQUIPO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('516040', 'FLOTA Y EQUIPO FLUVIAL Y/O MARITIMO ');
+INSERT INTO gifi (accno,description) VALUES ('516045', 'FLOTA Y EQUIPO AEREO ');
+INSERT INTO gifi (accno,description) VALUES ('516050', 'FLOTA Y EQUIPO FERREO ');
+INSERT INTO gifi (accno,description) VALUES ('516055', 'ACUEDUCTOS, PLANTAS Y REDES ');
+INSERT INTO gifi (accno,description) VALUES ('516060', 'ARMAMENTO DE VIGILANCIA ');
+INSERT INTO gifi (accno,description) VALUES ('516099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5165', 'AMORTIZACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('516505', 'VIAS DE COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('516510', 'INTANGIBLES ');
+INSERT INTO gifi (accno,description) VALUES ('516515', 'CARGOS DIFERIDOS ');
+INSERT INTO gifi (accno,description) VALUES ('516595', 'OTRAS ');
+INSERT INTO gifi (accno,description) VALUES ('516599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5195', 'DIVERSOS ');
+INSERT INTO gifi (accno,description) VALUES ('519505', 'COMISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('519510', 'LIBROS, SUSCRIPCIONES, PERIODICOS Y REVISTAS ');
+INSERT INTO gifi (accno,description) VALUES ('519515', 'MUSICA AMBIENTAL ');
+INSERT INTO gifi (accno,description) VALUES ('519520', 'GASTOS DE REPRESENTACION Y RELACIONES PUBLICAS ');
+INSERT INTO gifi (accno,description) VALUES ('519525', 'ELEMENTOS DE ASEO Y CAFETERIA ');
+INSERT INTO gifi (accno,description) VALUES ('519530', 'UTILES, PAPELERIA Y FOTOCOPIAS ');
+INSERT INTO gifi (accno,description) VALUES ('519535', 'COMBUSTIBLES Y LUBRICANTES ');
+INSERT INTO gifi (accno,description) VALUES ('519540', 'ENVASES Y EMPAQUES ');
+INSERT INTO gifi (accno,description) VALUES ('519545', 'TAXIS Y BUSES ');
+INSERT INTO gifi (accno,description) VALUES ('519550', 'ESTAMPILLAS ');
+INSERT INTO gifi (accno,description) VALUES ('519555', 'MICROFILMACION ');
+INSERT INTO gifi (accno,description) VALUES ('519560', 'CASINO Y RESTAURANTE ');
+INSERT INTO gifi (accno,description) VALUES ('519565', 'PARQUEADEROS ');
+INSERT INTO gifi (accno,description) VALUES ('519570', 'INDEMNIZACION POR DAŃOS A TERCEROS ');
+INSERT INTO gifi (accno,description) VALUES ('519575', 'POLVORA Y SIMILARES ');
+INSERT INTO gifi (accno,description) VALUES ('519595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('519599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5199', 'PROVISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('519905', 'INVERSIONES ');
+INSERT INTO gifi (accno,description) VALUES ('519910', 'DEUDORES ');
+INSERT INTO gifi (accno,description) VALUES ('519915', 'PROPIEDADES, PLANTA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('519995', 'OTROS ACTIVOS ');
+INSERT INTO gifi (accno,description) VALUES ('519999', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('52', 'OPERACIONALES DE VENTAS ');
+INSERT INTO gifi (accno,description) VALUES ('5205', 'GASTOS DE PERSONAL ');
+INSERT INTO gifi (accno,description) VALUES ('520503', 'SALARIO INTEGRAL ');
+INSERT INTO gifi (accno,description) VALUES ('520506', 'SUELDOS ');
+INSERT INTO gifi (accno,description) VALUES ('520512', 'JORNALES ');
+INSERT INTO gifi (accno,description) VALUES ('520515', 'HORAS EXTRAS Y RECARGOS ');
+INSERT INTO gifi (accno,description) VALUES ('520518', 'COMISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('520521', 'VIATICOS ');
+INSERT INTO gifi (accno,description) VALUES ('520524', 'INCAPACIDADES ');
+INSERT INTO gifi (accno,description) VALUES ('520527', 'AUXILIO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('520530', 'CESANTIAS ');
+INSERT INTO gifi (accno,description) VALUES ('520533', 'INTERESES SOBRE CESANTIAS ');
+INSERT INTO gifi (accno,description) VALUES ('520536', 'PRIMA DE SERVICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('520539', 'VACACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('520542', 'PRIMAS EXTRALEGALES ');
+INSERT INTO gifi (accno,description) VALUES ('520545', 'AUXILIOS ');
+INSERT INTO gifi (accno,description) VALUES ('520548', 'BONIFICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('520551', 'DOTACION Y SUMINISTRO A TRABAJADORES ');
+INSERT INTO gifi (accno,description) VALUES ('520554', 'SEGUROS ');
+INSERT INTO gifi (accno,description) VALUES ('520557', 'CUOTAS PARTES PENSIONES DE JUBILACION ');
+INSERT INTO gifi (accno,description) VALUES ('520558', 'AMORTIZACION CALCULO ACTUARIAL PENSIONES DE JUBILACION ');
+INSERT INTO gifi (accno,description) VALUES ('520559', 'PENSIONES DE JUBILACION ');
+INSERT INTO gifi (accno,description) VALUES ('520560', 'INDEMNIZACIONES LABORALES ');
+INSERT INTO gifi (accno,description) VALUES ('520563', 'CAPACITACION AL PERSONAL ');
+INSERT INTO gifi (accno,description) VALUES ('520566', 'GASTOS DEPORTIVOS Y DE RECREACION ');
+INSERT INTO gifi (accno,description) VALUES ('520569', 'APORTES AL I.S.S ');
+INSERT INTO gifi (accno,description) VALUES ('520572', 'APORTES CAJAS DE COMPENSACION FAMILIAR ');
+INSERT INTO gifi (accno,description) VALUES ('520575', 'APORTES I.C.B.F. ');
+INSERT INTO gifi (accno,description) VALUES ('520578', 'SENA ');
+INSERT INTO gifi (accno,description) VALUES ('520581', 'APORTES SINDICALES ');
+INSERT INTO gifi (accno,description) VALUES ('520584', 'GASTOS MEDICOS Y DROGAS ');
+INSERT INTO gifi (accno,description) VALUES ('520595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('520599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5210', 'HONORARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('521005', 'JUNTA DIRECTIVA ');
+INSERT INTO gifi (accno,description) VALUES ('521010', 'REVISORIA FISCAL ');
+INSERT INTO gifi (accno,description) VALUES ('521015', 'AUDITORIA EXTERNA ');
+INSERT INTO gifi (accno,description) VALUES ('521020', 'AVALUOS ');
+INSERT INTO gifi (accno,description) VALUES ('521025', 'ASESORIA JURIDICA ');
+INSERT INTO gifi (accno,description) VALUES ('521030', 'ASESORIA FINANCIERA ');
+INSERT INTO gifi (accno,description) VALUES ('521035', 'ASESORIA TECNICA ');
+INSERT INTO gifi (accno,description) VALUES ('521095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('521099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5215', 'IMPUESTOS ');
+INSERT INTO gifi (accno,description) VALUES ('521505', 'INDUSTRIA Y COMERCIO ');
+INSERT INTO gifi (accno,description) VALUES ('521510', 'DE TIMBRES ');
+INSERT INTO gifi (accno,description) VALUES ('521515', 'A LA PROPIEDAD RAIZ ');
+INSERT INTO gifi (accno,description) VALUES ('521520', 'DERECHOS SOBRE INSTRUMENTOS PUBLICOS ');
+INSERT INTO gifi (accno,description) VALUES ('521525', 'DE VALORIZACION ');
+INSERT INTO gifi (accno,description) VALUES ('521530', 'DE TURISMO ');
+INSERT INTO gifi (accno,description) VALUES ('521535', 'TASA POR UTILIZACION DE PUERTOS ');
+INSERT INTO gifi (accno,description) VALUES ('521540', 'DE VEHICULOS ');
+INSERT INTO gifi (accno,description) VALUES ('521545', 'DE ESPECTACULOS PUBLICOS ');
+INSERT INTO gifi (accno,description) VALUES ('521550', 'CUOTAS DE FOMENTO ');
+INSERT INTO gifi (accno,description) VALUES ('521555', 'LICORES ');
+INSERT INTO gifi (accno,description) VALUES ('521560', 'CERVEZAS ');
+INSERT INTO gifi (accno,description) VALUES ('521565', 'CIGARRILLOS ');
+INSERT INTO gifi (accno,description) VALUES ('521570', 'IVA DESCONTABLE ');
+INSERT INTO gifi (accno,description) VALUES ('521595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('521599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5220', 'ARRENDAMIENTOS ');
+INSERT INTO gifi (accno,description) VALUES ('522005', 'TERRENOS ');
+INSERT INTO gifi (accno,description) VALUES ('522010', 'CONSTRUCCIONES Y EDIFICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('522015', 'MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('522020', 'EQUIPO DE OFICINA ');
+INSERT INTO gifi (accno,description) VALUES ('522025', 'EQUIPO DE COMPUTACION Y COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('522030', 'EQUIPO MEDICO - CIENTIFICO ');
+INSERT INTO gifi (accno,description) VALUES ('522035', 'EQUIPO DE HOTELES Y RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('522040', 'FLOTA Y EQUIPO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('522045', 'FLOTA Y EQUIPO FLUVIAL Y/O MARITIMO ');
+INSERT INTO gifi (accno,description) VALUES ('522050', 'FLOTA Y EQUIPO AEREO ');
+INSERT INTO gifi (accno,description) VALUES ('522055', 'FLOTA Y EQUIPO FERREO ');
+INSERT INTO gifi (accno,description) VALUES ('522060', 'ACUEDUCTOS PLANTAS Y REDES ');
+INSERT INTO gifi (accno,description) VALUES ('522065', 'AERODROMOS ');
+INSERT INTO gifi (accno,description) VALUES ('522070', 'SEMOVIENTES ');
+INSERT INTO gifi (accno,description) VALUES ('522095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('522099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5225', 'CONTRIBUCIONES Y AFILIACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('522505', 'CONTRIBUCIONES ');
+INSERT INTO gifi (accno,description) VALUES ('522510', 'AFILIACIONES Y SOSTENIMIENTO ');
+INSERT INTO gifi (accno,description) VALUES ('522599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5230', 'SEGUROS ');
+INSERT INTO gifi (accno,description) VALUES ('523005', 'MANEJO ');
+INSERT INTO gifi (accno,description) VALUES ('523010', 'CUMPLIMIENTO ');
+INSERT INTO gifi (accno,description) VALUES ('523015', 'CORRIENTE DEBIL ');
+INSERT INTO gifi (accno,description) VALUES ('523020', 'VIDA COLECTIVA ');
+INSERT INTO gifi (accno,description) VALUES ('523025', 'INCENDIO ');
+INSERT INTO gifi (accno,description) VALUES ('523030', 'TERREMOTO ');
+INSERT INTO gifi (accno,description) VALUES ('523035', 'SUSTRACCION Y HURTO ');
+INSERT INTO gifi (accno,description) VALUES ('523040', 'FLOTA Y EQUIPO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('523045', 'FLOTA Y EQUIPO FLUVIAL Y/O MARITIMO ');
+INSERT INTO gifi (accno,description) VALUES ('523050', 'FLOTA Y EQUIPO AEREO ');
+INSERT INTO gifi (accno,description) VALUES ('523055', 'FLOTA Y EQUIPO FERREO ');
+INSERT INTO gifi (accno,description) VALUES ('523060', 'RESPONSABILIDAD CIVIL Y EXTRACONTRACTUAL ');
+INSERT INTO gifi (accno,description) VALUES ('523065', 'VUELO ');
+INSERT INTO gifi (accno,description) VALUES ('523070', 'ROTURA DE MAQUINARIA ');
+INSERT INTO gifi (accno,description) VALUES ('523075', 'OBLIGATORIO ACCIDENTE DE TRANSITO ');
+INSERT INTO gifi (accno,description) VALUES ('523080', 'LUCRO CESANTE ');
+INSERT INTO gifi (accno,description) VALUES ('523095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('523099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5235', 'SERVICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('523505', 'ASEO Y VIGILANCIA ');
+INSERT INTO gifi (accno,description) VALUES ('523510', 'TEMPORALES ');
+INSERT INTO gifi (accno,description) VALUES ('523515', 'ASISTENCIA TECNICA ');
+INSERT INTO gifi (accno,description) VALUES ('523520', 'PROCESAMIENTO ELECTRONICO DE DATOS ');
+INSERT INTO gifi (accno,description) VALUES ('523525', 'ACUEDUCTO Y ALCANTARILLADO ');
+INSERT INTO gifi (accno,description) VALUES ('523530', 'ENERGIA ELECTRICA ');
+INSERT INTO gifi (accno,description) VALUES ('523535', 'TELEFONO ');
+INSERT INTO gifi (accno,description) VALUES ('523540', 'CORREO, PORTES Y TELEGRAMAS ');
+INSERT INTO gifi (accno,description) VALUES ('523545', 'FAX Y TELEX ');
+INSERT INTO gifi (accno,description) VALUES ('523550', 'TRANSPORTE, FLETES Y ACARREOS ');
+INSERT INTO gifi (accno,description) VALUES ('523555', 'GAS ');
+INSERT INTO gifi (accno,description) VALUES ('523560', 'PROPAGANDA Y PUBLICIDAD ');
+INSERT INTO gifi (accno,description) VALUES ('523595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('523599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5240', 'GASTOS LEGALES ');
+INSERT INTO gifi (accno,description) VALUES ('524005', 'NOTARIALES ');
+INSERT INTO gifi (accno,description) VALUES ('524010', 'REGISTRO MERCANTIL ');
+INSERT INTO gifi (accno,description) VALUES ('524015', 'TRAMITES Y LICENCIAS ');
+INSERT INTO gifi (accno,description) VALUES ('524020', 'ADUANEROS ');
+INSERT INTO gifi (accno,description) VALUES ('524025', 'CONSULARES ');
+INSERT INTO gifi (accno,description) VALUES ('524095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('524099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5245', 'MANTENIMIENTO Y REPARACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('524505', 'TERRENOS ');
+INSERT INTO gifi (accno,description) VALUES ('524510', 'CONSTRUCCIONES Y EDIFICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('524515', 'MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('524520', 'EQUIPO DE OFICINA ');
+INSERT INTO gifi (accno,description) VALUES ('524525', 'EQUIPO DE COMPUTACION Y COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('524530', 'EQUIPO MEDICO - CIENTIFICO ');
+INSERT INTO gifi (accno,description) VALUES ('524535', 'EQUIPO DE HOTELES Y RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('524540', 'FLOTA Y EQUIPO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('524545', 'FLOTA Y EQUIPO FLUVIAL Y/O MARITIMO ');
+INSERT INTO gifi (accno,description) VALUES ('524550', 'FLOTA Y EQUIPO AEREO ');
+INSERT INTO gifi (accno,description) VALUES ('524555', 'FLOTA Y EQUIPO FERREO ');
+INSERT INTO gifi (accno,description) VALUES ('524560', 'ACUEDUCTOS PLANTAS Y REDES ');
+INSERT INTO gifi (accno,description) VALUES ('524565', 'ARMAMENTO DE VIGILANCIA ');
+INSERT INTO gifi (accno,description) VALUES ('524570', 'VIAS DE COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('524599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5250', 'ADECUACION E INSTALACION ');
+INSERT INTO gifi (accno,description) VALUES ('525005', 'INSTALACIONES ELECTRICAS ');
+INSERT INTO gifi (accno,description) VALUES ('525010', 'ARREGLOS ORNAMENTALES ');
+INSERT INTO gifi (accno,description) VALUES ('525015', 'REPARACIONES LOCATIVAS ');
+INSERT INTO gifi (accno,description) VALUES ('525095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('525099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5255', 'GASTOS DE VIAJE ');
+INSERT INTO gifi (accno,description) VALUES ('525505', 'ALOJAMIENTO Y MANUTENCION ');
+INSERT INTO gifi (accno,description) VALUES ('525510', 'PASAJES FLUVIALES Y/O MARITIMOS ');
+INSERT INTO gifi (accno,description) VALUES ('525515', 'PASAJES AEREOS ');
+INSERT INTO gifi (accno,description) VALUES ('525520', 'PASAJES TERRESTRES ');
+INSERT INTO gifi (accno,description) VALUES ('525525', 'PASAJES FERREOS ');
+INSERT INTO gifi (accno,description) VALUES ('525595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('525599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5260', 'DEPRECIACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('526005', 'CONSTRUCCIONES Y EDIFICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('526010', 'MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('526015', 'EQUIPO DE OFICINA ');
+INSERT INTO gifi (accno,description) VALUES ('526020', 'EQUIPO DE COMPUTACION Y COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('526025', 'EQUIPO MEDICO - CIENTIFICO ');
+INSERT INTO gifi (accno,description) VALUES ('526030', 'EQUIPO DE HOTELES Y RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('526035', 'FLOTA Y EQUIPO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('526040', 'FLOTA Y EQUIPO FLUVIAL Y/O MARITIMO ');
+INSERT INTO gifi (accno,description) VALUES ('526045', 'FLOTA Y EQUIPO AEREO ');
+INSERT INTO gifi (accno,description) VALUES ('526050', 'FLOTA Y EQUIPO FERREO ');
+INSERT INTO gifi (accno,description) VALUES ('526055', 'ACUEDUCTOS, PLANTAS Y REDES ');
+INSERT INTO gifi (accno,description) VALUES ('526060', 'ARMAMENTO DE VIGILANCIA ');
+INSERT INTO gifi (accno,description) VALUES ('526065', 'ENVASES Y EMPAQUES ');
+INSERT INTO gifi (accno,description) VALUES ('526099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5265', 'AMORTIZACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('526505', 'VIAS DE COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('526510', 'INTANGIBLES ');
+INSERT INTO gifi (accno,description) VALUES ('526515', 'CARGOS DIFERIDOS ');
+INSERT INTO gifi (accno,description) VALUES ('526595', 'OTRAS ');
+INSERT INTO gifi (accno,description) VALUES ('526599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5270', 'FINANCIEROS - REAJUSTE DEL SISTEMA ');
+INSERT INTO gifi (accno,description) VALUES ('527099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5295', 'DIVERSOS ');
+INSERT INTO gifi (accno,description) VALUES ('529505', 'COMISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('529510', 'LIBROS, SUSCRIPCIONES, PERIODICOS Y REVISTAS ');
+INSERT INTO gifi (accno,description) VALUES ('529515', 'MUSICA AMBIENTAL ');
+INSERT INTO gifi (accno,description) VALUES ('529520', 'GASTOS DE REPRESENTACION Y RELACIONES PUBLICAS ');
+INSERT INTO gifi (accno,description) VALUES ('529525', 'ELEMENTOS DE ASEO Y CAFETERIA ');
+INSERT INTO gifi (accno,description) VALUES ('529530', 'UTILES, PAPELERIA Y FOTOCOPIAS ');
+INSERT INTO gifi (accno,description) VALUES ('529535', 'COMBUSTIBLES Y LUBRICANTES ');
+INSERT INTO gifi (accno,description) VALUES ('529540', 'ENVASES Y EMPAQUES ');
+INSERT INTO gifi (accno,description) VALUES ('529545', 'TAXIS Y BUSES ');
+INSERT INTO gifi (accno,description) VALUES ('529550', 'ESTAMPILLAS ');
+INSERT INTO gifi (accno,description) VALUES ('529555', 'MICROFILMACION ');
+INSERT INTO gifi (accno,description) VALUES ('529560', 'CASINO Y RESTAURANTE ');
+INSERT INTO gifi (accno,description) VALUES ('529565', 'PARQUEADEROS ');
+INSERT INTO gifi (accno,description) VALUES ('529570', 'INDEMNIZACION POR DAŃOS A TERCEROS ');
+INSERT INTO gifi (accno,description) VALUES ('529575', 'POLVORA Y SIMILARES ');
+INSERT INTO gifi (accno,description) VALUES ('529595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('529599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5299', 'PROVISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('529905', 'INVERSIONES ');
+INSERT INTO gifi (accno,description) VALUES ('529910', 'DEUDORES ');
+INSERT INTO gifi (accno,description) VALUES ('529915', 'INVENTARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('529920', 'PROPIEDADES, PLANTA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('529995', 'OTROS ACTIVOS ');
+INSERT INTO gifi (accno,description) VALUES ('529999', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('53', 'NO OPERACIONALES ');
+INSERT INTO gifi (accno,description) VALUES ('5305', 'FINANCIEROS ');
+INSERT INTO gifi (accno,description) VALUES ('530505', 'GASTOS BANCARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('530510', 'REAJUSTE MONETARIO - UPAC ');
+INSERT INTO gifi (accno,description) VALUES ('530515', 'COMISIONES ');
+INSERT INTO gifi (accno,description) VALUES ('530520', 'INTERESES ');
+INSERT INTO gifi (accno,description) VALUES ('530525', 'DIFERENCIA EN CAMBIO ');
+INSERT INTO gifi (accno,description) VALUES ('530530', 'GASTOS EN NEGOCIACION CERTIFICADOS DE CAMBIO ');
+INSERT INTO gifi (accno,description) VALUES ('530535', 'DESCUENTOS COMERCIALES CONDICIONADOS ');
+INSERT INTO gifi (accno,description) VALUES ('530540', 'GASTOS MANEJO Y EMISION DE BONOS ');
+INSERT INTO gifi (accno,description) VALUES ('530545', 'PRIMA AMORTIZADA ');
+INSERT INTO gifi (accno,description) VALUES ('530595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('530599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5310', 'PERDIDA EN VENTA Y RETIRO DE BIENES ');
+INSERT INTO gifi (accno,description) VALUES ('531005', 'VENTA DE INVERSIONES ');
+INSERT INTO gifi (accno,description) VALUES ('531010', 'VENTA DE CARTERA ');
+INSERT INTO gifi (accno,description) VALUES ('531015', 'VENTA DE PROPIEDADES PLANTA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('531020', 'VENTA DE INTANGIBLES ');
+INSERT INTO gifi (accno,description) VALUES ('531025', 'VENTA DE OTROS ACTIVOS ');
+INSERT INTO gifi (accno,description) VALUES ('531030', 'RETIRO DE PROPIEDADES PLANTA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('531035', 'RETIRO DE OTROS ACTIVOS ');
+INSERT INTO gifi (accno,description) VALUES ('531040', 'PERDIDAS POR SINIESTROS ');
+INSERT INTO gifi (accno,description) VALUES ('531095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('531099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5315', 'GASTOS EXTRAORDINARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('531505', 'COSTAS Y PROCESOS JUDICIALES ');
+INSERT INTO gifi (accno,description) VALUES ('531510', 'ACTIVIDADES CULTURALES Y CIVICAS ');
+INSERT INTO gifi (accno,description) VALUES ('531515', 'COSTOS Y GASTOS DE EJERCICIOS ANTERIORES ');
+INSERT INTO gifi (accno,description) VALUES ('531520', 'IMPUESTOS ASUMIDOS ');
+INSERT INTO gifi (accno,description) VALUES ('531595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('531599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('5395', 'GASTOS DIVERSOS ');
+INSERT INTO gifi (accno,description) VALUES ('539505', 'DEMANDAS LABORALES ');
+INSERT INTO gifi (accno,description) VALUES ('539510', 'DEMANDAS POR INCUMPLIMIENTO DE CONTRATOS ');
+INSERT INTO gifi (accno,description) VALUES ('539515', 'INDEMNIZACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('539520', 'MULTAS, SANCIONES Y LITIGIOS ');
+INSERT INTO gifi (accno,description) VALUES ('539525', 'DONACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('539530', 'CONSTITUCION DE GARANTIAS ');
+INSERT INTO gifi (accno,description) VALUES ('539535', 'AMORTIZACION DE BIENES ENTREGADOS EN COMODATO ');
+INSERT INTO gifi (accno,description) VALUES ('539595', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('539599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('54', 'IMPUESTO DE RENTA Y COMPLEMENTARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('5405', 'IMPUESTO DE RENTA Y COMPLEMENTARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('540505', 'IMPUESTO DE RENTA Y COMPLEMENTARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('59', 'GANANCIAS Y PERDIDAS ');
+INSERT INTO gifi (accno,description) VALUES ('5905', 'GANANCIAS Y PERDIDAS ');
+INSERT INTO gifi (accno,description) VALUES ('590505', 'GANANCIAS Y PERDIDAS ');
+INSERT INTO gifi (accno,description) VALUES ('6', 'COSTOS DE VENTAS ');
+INSERT INTO gifi (accno,description) VALUES ('61', 'COSTO DE VENTAS Y DE PRESTACION DE SERVICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('6105', 'AGRICULTURA, GANADERIA, CAZA Y SILVICULTURA ');
+INSERT INTO gifi (accno,description) VALUES ('610505', 'CULTIVO DE CEREALES ');
+INSERT INTO gifi (accno,description) VALUES ('610510', 'CULTIVOS DE HORTALIZAS, LEGUMBRES Y PLANTAS ORNAMENTALES ');
+INSERT INTO gifi (accno,description) VALUES ('610515', 'CULTIVOS DE FRUTAS, NUECES Y PLANTAS AROMATICAS ');
+INSERT INTO gifi (accno,description) VALUES ('610520', 'CULTIVO DE CAFE ');
+INSERT INTO gifi (accno,description) VALUES ('610525', 'CULTIVO DE FLORES ');
+INSERT INTO gifi (accno,description) VALUES ('610530', 'CULTIVO DE CAŃA DE AZUCAR ');
+INSERT INTO gifi (accno,description) VALUES ('610535', 'CULTIVO DE ALGODON Y PLANTAS PARA MATERIAL TEXTIL ');
+INSERT INTO gifi (accno,description) VALUES ('610540', 'CULTIVO DE BANANO ');
+INSERT INTO gifi (accno,description) VALUES ('610545', 'OTROS CULTIVOS AGRICOLAS ');
+INSERT INTO gifi (accno,description) VALUES ('610550', 'CRIA DE OVEJAS, CABRAS, ASNOS, MULAS Y BURDEGANOS ');
+INSERT INTO gifi (accno,description) VALUES ('610555', 'CRIA DE GANADO CABALLAR Y VACUNO. ');
+INSERT INTO gifi (accno,description) VALUES ('610560', 'PRODUCCION AVICOLA ');
+INSERT INTO gifi (accno,description) VALUES ('610565', 'CRIA DE OTROS ANIMALES ');
+INSERT INTO gifi (accno,description) VALUES ('610570', 'SERVICIOS AGRICOLAS Y GANADEROS ');
+INSERT INTO gifi (accno,description) VALUES ('610575', 'ACTIVIDAD DE CAZA ');
+INSERT INTO gifi (accno,description) VALUES ('610580', 'ACTIVIDAD DE SILVICULTURA ');
+INSERT INTO gifi (accno,description) VALUES ('610599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('6110', 'PESCA ');
+INSERT INTO gifi (accno,description) VALUES ('611005', 'ACTIVIDAD DE PESCA ');
+INSERT INTO gifi (accno,description) VALUES ('611010', 'EXPLOTACION DE CRIADEROS DE PECES ');
+INSERT INTO gifi (accno,description) VALUES ('611095', 'ACTIVIDADES CONEXAS ');
+INSERT INTO gifi (accno,description) VALUES ('611099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('6115', 'EXPLOTACION DE MINAS Y CANTERAS ');
+INSERT INTO gifi (accno,description) VALUES ('611505', 'CARBON ');
+INSERT INTO gifi (accno,description) VALUES ('611510', 'PETROLEO CRUDO ');
+INSERT INTO gifi (accno,description) VALUES ('611512', 'GAS NATURAL ');
+INSERT INTO gifi (accno,description) VALUES ('611514', 'SERVICIOS RELACIONADOS CON EXTRACCION DE PETROLEO Y GAS ');
+INSERT INTO gifi (accno,description) VALUES ('611515', 'MINERALES DE HIERRO ');
+INSERT INTO gifi (accno,description) VALUES ('611520', 'MINERALES METALIFEROS NO FERROSOS ');
+INSERT INTO gifi (accno,description) VALUES ('611525', 'PIEDRA, ARENA Y ARCILLA ');
+INSERT INTO gifi (accno,description) VALUES ('611527', 'PIEDRAS PRECIOSAS ');
+INSERT INTO gifi (accno,description) VALUES ('611528', 'ORO ');
+INSERT INTO gifi (accno,description) VALUES ('611530', 'OTRAS MINAS Y CANTERAS ');
+INSERT INTO gifi (accno,description) VALUES ('611532', 'PRESTACION DE SERVICIOS SECTOR MINERO ');
+INSERT INTO gifi (accno,description) VALUES ('611595', 'ACTIVIDADES CONEXAS ');
+INSERT INTO gifi (accno,description) VALUES ('611599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('6120', 'INDUSTRIAS MANUFACTURERAS ');
+INSERT INTO gifi (accno,description) VALUES ('612001', 'PRODUCCION Y PROCESAMIENTO DE CARNES Y PRODUCTOS CARNICOS ');
+INSERT INTO gifi (accno,description) VALUES ('612002', 'PRODUCTOS DE PESCADO ');
+INSERT INTO gifi (accno,description) VALUES ('612003', 'PRODUCTOS DE FRUTAS, LEGUMBRES Y HORTALIZAS ');
+INSERT INTO gifi (accno,description) VALUES ('612004', 'ELABORACION DE ACEITES Y GRASAS ');
+INSERT INTO gifi (accno,description) VALUES ('612005', 'ELABORACION DE PRODUCTOS LACTEOS ');
+INSERT INTO gifi (accno,description) VALUES ('612006', 'ELABORACION DE PRODUCTOS DE MOLINERIA ');
+INSERT INTO gifi (accno,description) VALUES ('612007', 'ELABORACION DE ALMIDONES Y DERIVADOS ');
+INSERT INTO gifi (accno,description) VALUES ('612008', 'ELABORACION DE ALIMENTOS PARA ANIMALES ');
+INSERT INTO gifi (accno,description) VALUES ('612009', 'ELABORACION DE PRODUCTOS PARA PANADERIA ');
+INSERT INTO gifi (accno,description) VALUES ('612010', 'ELABORACION DE AZUCAR Y MELAZAS ');
+INSERT INTO gifi (accno,description) VALUES ('612011', 'ELABORACION DE CACAO, CHOCOLATE Y CONFITERIA ');
+INSERT INTO gifi (accno,description) VALUES ('612012', 'ELABORACION DE PASTAS Y PRODUCTOS FARINACEOS ');
+INSERT INTO gifi (accno,description) VALUES ('612013', 'ELABORACION DE PRODUCTOS DE CAFE ');
+INSERT INTO gifi (accno,description) VALUES ('612014', 'ELABORACION DE OTROS PRODUCTOS ALIMENTICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('612015', 'ELABORACION DE BEBIDAS ALCOHOLICAS Y ALCOHOL ETILICO ');
+INSERT INTO gifi (accno,description) VALUES ('612016', 'ELABORACION DE VINOS ');
+INSERT INTO gifi (accno,description) VALUES ('612017', 'ELABORACION DE BEBIDAS MALTEADAS Y DE MALTA ');
+INSERT INTO gifi (accno,description) VALUES ('612018', 'ELABORACION DE BEBIDAS NO ALCOHOLICAS ');
+INSERT INTO gifi (accno,description) VALUES ('612019', 'ELABORACION DE PRODUCTOS DE TABACO ');
+INSERT INTO gifi (accno,description) VALUES ('612020', 'PREPARACION E HILATURA DE FIBRAS TEXTILES Y TEJEDURIA ');
+INSERT INTO gifi (accno,description) VALUES ('612021', 'ACABADO DE PRODUCTOS TEXTILES ');
+INSERT INTO gifi (accno,description) VALUES ('612022', 'ELABORACION DE ARTICULOS DE MATERIALES TEXTILES ');
+INSERT INTO gifi (accno,description) VALUES ('612023', 'ELABORACION DE TAPICES Y ALFOMBRAS ');
+INSERT INTO gifi (accno,description) VALUES ('612024', 'ELABORACION DE CUERDAS, CORDELES, BRAMANTES Y REDES ');
+INSERT INTO gifi (accno,description) VALUES ('612025', 'ELABORACION DE OTROS PRODUCTOS TEXTILES ');
+INSERT INTO gifi (accno,description) VALUES ('612026', 'ELABORACION DE TEJIDOS ');
+INSERT INTO gifi (accno,description) VALUES ('612027', 'ELABORACION DE PRENDAS DE VESTIR ');
+INSERT INTO gifi (accno,description) VALUES ('612028', 'PREPARACION, ADOBO Y TEŃIDO DE PIELES ');
+INSERT INTO gifi (accno,description) VALUES ('612029', 'CURTIDO, ADOBO O PREPARACION DE CUERO ');
+INSERT INTO gifi (accno,description) VALUES ('612030', 'ELABORACION DE MALETAS, BOLSOS Y SIMILARES ');
+INSERT INTO gifi (accno,description) VALUES ('612031', 'ELABORACION DE CALZADO ');
+INSERT INTO gifi (accno,description) VALUES ('612032', 'PRODUCCION DE MADERA, ARTICULOS DE MADERA Y CORCHO ');
+INSERT INTO gifi (accno,description) VALUES ('612033', 'ELABORACION DE PASTA Y PRODUCTOS DE MADERA, PAPEL Y CARTON ');
+INSERT INTO gifi (accno,description) VALUES ('612034', 'EDICIONES Y PUBLICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('612035', 'IMPRESION ');
+INSERT INTO gifi (accno,description) VALUES ('612036', 'SERVICIOS RELACIONADOS CON LA EDICION Y LA IMPRESION ');
+INSERT INTO gifi (accno,description) VALUES ('612037', 'REPRODUCCION DE GRABACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('612038', 'ELABORACION DE PRODUCTOS DE HORNO DE COQUE ');
+INSERT INTO gifi (accno,description) VALUES ('612039', 'ELABORACION DE PRODUCTOS DE LA REFINACION DE PETROLEO ');
+INSERT INTO gifi (accno,description) VALUES ('612040', 'ELABORACION DE SUSTANCIAS QUIMICAS BASICAS ');
+INSERT INTO gifi (accno,description) VALUES ('612041', 'ELABORACION DE ABONOS Y COMPUESTOS DE NITROGENO ');
+INSERT INTO gifi (accno,description) VALUES ('612042', 'ELABORACION DE PLASTICO Y CAUCHO SINTETICO ');
+INSERT INTO gifi (accno,description) VALUES ('612043', 'ELABORACION DE PRODUCTOS QUIMICOS DE USO AGROPECUARIO ');
+INSERT INTO gifi (accno,description) VALUES ('612044', 'ELABORACION DE PINTURAS, TINTAS Y MASILLAS ');
+INSERT INTO gifi (accno,description) VALUES ('612045', 'ELABORACION DE PRODUCTOS FARMACEUTICOS Y BOTANICOS ');
+INSERT INTO gifi (accno,description) VALUES ('612046', 'ELABORACION DE JABONES, DETERGENTES Y PREPARADOS DE TOCADOR ');
+INSERT INTO gifi (accno,description) VALUES ('612047', 'ELABORACION DE OTROS PRODUCTOS QUIMICOS ');
+INSERT INTO gifi (accno,description) VALUES ('612048', 'ELABORACION DE FIBRAS ');
+INSERT INTO gifi (accno,description) VALUES ('612049', 'ELABORACION DE OTROS PRODUCTOS DE CAUCHO ');
+INSERT INTO gifi (accno,description) VALUES ('612050', 'ELABORACION DE PRODUCTOS DE PLASTICO ');
+INSERT INTO gifi (accno,description) VALUES ('612051', 'ELABORACION DE VIDRIO Y PRODUCTOS DE VIDRIO ');
+INSERT INTO gifi (accno,description) VALUES ('612052', 'ELABORACION DE PRODUCTOS DE CERAMICA, LOZA, PIEDRA, ARCILLA Y PORCELANA ');
+INSERT INTO gifi (accno,description) VALUES ('612053', 'ELABORACION DE CEMENTO, CAL Y YESO ');
+INSERT INTO gifi (accno,description) VALUES ('612054', 'ELABORACION DE ARTICULOS DE HORMIGON, CEMENTO Y YESO ');
+INSERT INTO gifi (accno,description) VALUES ('612055', 'CORTE, TALLADO Y ACABADO DE LA PIEDRA ');
+INSERT INTO gifi (accno,description) VALUES ('612056', 'ELABORACION DE OTROS PRODUCTOS MINERALES NO METALICOS ');
+INSERT INTO gifi (accno,description) VALUES ('612057', 'INDUSTRIAS BASICAS Y FUNDICION DE HIERRO Y ACERO ');
+INSERT INTO gifi (accno,description) VALUES ('612058', 'PRODUCTOS PRIMARIOS DE METALES PRECIOSOS Y DE METALES NO FERROSOS ');
+INSERT INTO gifi (accno,description) VALUES ('612059', 'FUNDICION DE METALES NO FERROSOS ');
+INSERT INTO gifi (accno,description) VALUES ('612060', 'FABRICACION DE PRODUCTOS METALICOS PARA USO ESTRUCTURAL ');
+INSERT INTO gifi (accno,description) VALUES ('612061', 'FORJA, PRENSADO, ESTAMPADO, LAMINADO DE METAL Y ');
+INSERT INTO gifi (accno,description) VALUES ('612062', 'REVESTIMIENTO DE METALES Y OBRAS DE INGENIERIA MECANICA ');
+INSERT INTO gifi (accno,description) VALUES ('612063', 'FABRICACION DE ARTICULOS DE FERRETERIA ');
+INSERT INTO gifi (accno,description) VALUES ('612064', 'ELABORACION DE OTROS PRODUCTOS DE METAL ');
+INSERT INTO gifi (accno,description) VALUES ('612065', 'FABRICACION DE MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('612066', 'FABRICACION DE EQUIPOS DE ELEVACION Y MANIPULACION ');
+INSERT INTO gifi (accno,description) VALUES ('612067', 'ELABORACION DE APARATOS DE USO DOMESTICO ');
+INSERT INTO gifi (accno,description) VALUES ('612068', 'ELABORACION DE EQUIPO DE OFICINA ');
+INSERT INTO gifi (accno,description) VALUES ('612069', 'ELABORACION DE PILAS Y BATERIAS PRIMARIAS ');
+INSERT INTO gifi (accno,description) VALUES ('612070', 'ELABORACION DE EQUIPO DE ILUMINACION ');
+INSERT INTO gifi (accno,description) VALUES ('612071', 'ELABORACION DE OTROS TIPOS DE EQUIPO ELECTRICO ');
+INSERT INTO gifi (accno,description) VALUES ('612072', 'FABRICACION DE EQUIPOS DE RADIO, TELEVISION Y COMUNICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('612073', 'FABRICACION DE APARATOS E INSTRUMENTOS MEDICOS ');
+INSERT INTO gifi (accno,description) VALUES ('612074', 'FABRICACION DE INSTRUMENTOS DE MEDICION Y CONTROL ');
+INSERT INTO gifi (accno,description) VALUES ('612075', 'FABRICACION DE INSTRUMENTOS DE OPTICA Y EQUIPO FOTOGRAFICO ');
+INSERT INTO gifi (accno,description) VALUES ('612076', 'FABRICACION DE RELOJES ');
+INSERT INTO gifi (accno,description) VALUES ('612077', 'FABRICACION DE VEHICULOS AUTOMOTORES ');
+INSERT INTO gifi (accno,description) VALUES ('612078', 'FABRICACION DE CARROCERIAS PARA AUTOMOTORES ');
+INSERT INTO gifi (accno,description) VALUES ('612079', 'FABRICACION DE PARTES PIEZAS Y ACCESORIOS PARA AUTOMOTORES ');
+INSERT INTO gifi (accno,description) VALUES ('612080', 'FABRICACION Y REPARACION DE BUQUES Y OTRAS EMBARCACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('612081', 'FABRICACION DE LOCOMOTORAS Y MATERIAL RODANTE PARA FERROCARRILES ');
+INSERT INTO gifi (accno,description) VALUES ('612082', 'FABRICACION DE AERONAVES ');
+INSERT INTO gifi (accno,description) VALUES ('612083', 'FABRICACION DE MOTOCICLETAS ');
+INSERT INTO gifi (accno,description) VALUES ('612084', 'FABRICACION DE BICICLETAS Y SILLAS DE RUEDAS ');
+INSERT INTO gifi (accno,description) VALUES ('612085', 'FABRICACION DE OTROS TIPOS DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('612086', 'FABRICACION DE MUEBLES ');
+INSERT INTO gifi (accno,description) VALUES ('612087', 'FABRICACION DE JOYAS Y ARTICULOS CONEXOS ');
+INSERT INTO gifi (accno,description) VALUES ('612088', 'FABRICACION DE INSTRUMENTOS DE MUSICA ');
+INSERT INTO gifi (accno,description) VALUES ('612089', 'FABRICACION DE ARTICULOS Y EQUIPO PARA DEPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('612090', 'FABRICACION DE JUEGOS Y JUGUETES ');
+INSERT INTO gifi (accno,description) VALUES ('612091', 'RECICLAMIENTO DE DESPERDICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('612095', 'PRODUCTOS DE OTRAS INDUSTRIAS MANUFACTURERAS ');
+INSERT INTO gifi (accno,description) VALUES ('612099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('6125', 'SUMINISTRO DE ELECTRICIDAD, GAS Y AGUA ');
+INSERT INTO gifi (accno,description) VALUES ('612505', 'GENERACION, CAPTACION Y DISTRIBUCION DE ENERGIA ELECTRICA ');
+INSERT INTO gifi (accno,description) VALUES ('612510', 'FABRICACION DE GAS Y DISTRIBUCION DE COMBUSTIBLES GASEOSOS ');
+INSERT INTO gifi (accno,description) VALUES ('612515', 'CAPTACION, DEPURACION Y DISTRIBUCION DE AGUA ');
+INSERT INTO gifi (accno,description) VALUES ('612595', 'ACTIVIDADES CONEXAS ');
+INSERT INTO gifi (accno,description) VALUES ('612599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('6130', 'CONSTRUCCION ');
+INSERT INTO gifi (accno,description) VALUES ('613005', 'PREPARACION DE TERRENOS ');
+INSERT INTO gifi (accno,description) VALUES ('613010', 'CONSTRUCCION DE EDIFICIOS Y OBRAS DE INGENIERIA CIVIL ');
+INSERT INTO gifi (accno,description) VALUES ('613015', 'ACONDICIONAMIENTO DE EDIFICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('613020', 'TERMINACION DE EDIFICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('613025', 'ALQUILER DE EQUIPO CON OPERARIO ');
+INSERT INTO gifi (accno,description) VALUES ('613095', 'ACTIVIDADES CONEXAS ');
+INSERT INTO gifi (accno,description) VALUES ('613099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('6135', 'COMERCIO AL POR MAYOR Y AL POR MENOR ');
+INSERT INTO gifi (accno,description) VALUES ('613502', 'VENTA DE VEHICULOS AUTOMOTORES ');
+INSERT INTO gifi (accno,description) VALUES ('613504', 'MANTENIMIENTO, REPARACION Y LAVADO DE VEHICULOS AUTOMOTORES ');
+INSERT INTO gifi (accno,description) VALUES ('613506', 'VENTA DE PARTES, PIEZAS Y ACCESORIOS DE VEHICULOS AUTOMOTORES ');
+INSERT INTO gifi (accno,description) VALUES ('613508', 'VENTA DE COMBUSTIBLES SOLIDOS, LIQUIDOS, GASEOSOS ');
+INSERT INTO gifi (accno,description) VALUES ('613510', 'VENTA DE LUBRICANTES, ADITIVOS, LLANTAS Y LUJOS PARA AUTOMOTORES ');
+INSERT INTO gifi (accno,description) VALUES ('613512', 'VENTA A CAMBIO DE RETRIBUCION O POR CONTRATA ');
+INSERT INTO gifi (accno,description) VALUES ('613514', 'VENTA DE INSUMOS, MATERIAS PRIMAS AGROPECUARIAS Y FLORES ');
+INSERT INTO gifi (accno,description) VALUES ('613516', 'VENTA DE OTROS INSUMOS Y MATERIAS PRIMAS NO AGROPECUARIAS ');
+INSERT INTO gifi (accno,description) VALUES ('613518', 'VENTA DE ANIMALES VIVOS Y CUEROS ');
+INSERT INTO gifi (accno,description) VALUES ('613520', 'VENTA DE PRODUCTOS EN ALMACENES NO ESPECIALIZADOS ');
+INSERT INTO gifi (accno,description) VALUES ('613522', 'VENTA DE PRODUCTOS AGROPECUARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('613524', 'VENTA DE PRODUCTOS TEXTILES, DE VESTIR, DE CUERO Y CALZADO ');
+INSERT INTO gifi (accno,description) VALUES ('613526', 'VENTA DE PAPEL Y CARTON ');
+INSERT INTO gifi (accno,description) VALUES ('613528', 'VENTA DE LIBROS, REVISTAS, ELEMENTOS DE PAPELERIA, UTILES Y TEXTOS ESCOLARES ');
+INSERT INTO gifi (accno,description) VALUES ('613530', 'VENTA DE JUEGOS, JUGUETES Y ARTICULOS DEPORTIVOS ');
+INSERT INTO gifi (accno,description) VALUES ('613532', 'VENTA DE INSTRUMENTOS QUIRURGICOS Y ORTOPEDICOS ');
+INSERT INTO gifi (accno,description) VALUES ('613534', 'VENTA DE ARTICULOS EN RELOJERIAS Y JOYERIAS ');
+INSERT INTO gifi (accno,description) VALUES ('613536', 'VENTA DE ELECTRODOMESTICOS Y MUEBLES ');
+INSERT INTO gifi (accno,description) VALUES ('613538', 'VENTA DE PRODUCTOS DE ASEO, FARMACEUTICOS, MEDICINALES, Y ARTICULOS DE TOCADOR ');
+INSERT INTO gifi (accno,description) VALUES ('613540', 'VENTA DE CUBIERTOS, VAJILLAS, CRISTALERIA, PORCELANAS, CERAMICAS Y OTROS ARTICULOS DE USO DOMESTICO ');
+INSERT INTO gifi (accno,description) VALUES ('613542', 'VENTA DE MATERIALES DE CONSTRUCCION, FONTANERIA Y CALEFACCION ');
+INSERT INTO gifi (accno,description) VALUES ('613544', 'VENTA DE PINTURAS Y LACAS ');
+INSERT INTO gifi (accno,description) VALUES ('613546', 'VENTA DE PRODUCTOS DE VIDRIOS Y MARQUETERIA ');
+INSERT INTO gifi (accno,description) VALUES ('613548', 'VENTA DE HERRAMIENTAS Y ARTICULOS DE FERRETERIA ');
+INSERT INTO gifi (accno,description) VALUES ('613550', 'VENTA DE QUIMICOS ');
+INSERT INTO gifi (accno,description) VALUES ('613552', 'VENTA DE PRODUCTOS INTERMEDIOS, DESPERDICIOS Y DESECHOS ');
+INSERT INTO gifi (accno,description) VALUES ('613554', 'VENTA DE MAQUINARIA, EQUIPO DE OFICINA Y PROGRAMAS DE COMPUTADOR ');
+INSERT INTO gifi (accno,description) VALUES ('613556', 'VENTA DE ARTICULOS EN CACHARRERIAS Y MISCELANEAS ');
+INSERT INTO gifi (accno,description) VALUES ('613558', 'VENTA DE INSTRUMENTOS MUSICALES ');
+INSERT INTO gifi (accno,description) VALUES ('613560', 'VENTA DE ARTICULOS EN CASAS DE EMPEŃO Y PRENDERIAS ');
+INSERT INTO gifi (accno,description) VALUES ('613562', 'VENTA DE EQUIPO FOTOGRAFICO ');
+INSERT INTO gifi (accno,description) VALUES ('613564', 'VENTA DE EQUIPO OPTICO Y DE PRECISION ');
+INSERT INTO gifi (accno,description) VALUES ('613566', 'VENTA DE EMPAQUES ');
+INSERT INTO gifi (accno,description) VALUES ('613568', 'VENTA DE EQUIPO PROFESIONAL Y CIENTIFICO ');
+INSERT INTO gifi (accno,description) VALUES ('613570', 'VENTA DE LOTERIAS, RIFAS, CHANCE, APUESTAS Y SIMILARES ');
+INSERT INTO gifi (accno,description) VALUES ('613572', 'REPARACION DE EFECTOS PERSONALES Y ELECTRODOMESTICOS ');
+INSERT INTO gifi (accno,description) VALUES ('613595', 'VENTA DE OTROS PRODUCTOS ');
+INSERT INTO gifi (accno,description) VALUES ('613599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('6140', 'HOTELES Y RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('614005', 'HOTELERIA ');
+INSERT INTO gifi (accno,description) VALUES ('614010', 'CAMPAMENTO Y OTROS TIPOS DE HOSPEDAJE ');
+INSERT INTO gifi (accno,description) VALUES ('614015', 'RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('614020', 'BARES Y CANTINAS ');
+INSERT INTO gifi (accno,description) VALUES ('614095', 'ACTIVIDADES CONEXAS ');
+INSERT INTO gifi (accno,description) VALUES ('614099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('6145', 'TRANSPORTE, ALMACENAMIENTO Y COMUNICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('614505', 'SERVICIO DE TRANSPORTE POR CARRETERA ');
+INSERT INTO gifi (accno,description) VALUES ('614510', 'SERVICIO DE TRANSPORTE POR VIA FERREA ');
+INSERT INTO gifi (accno,description) VALUES ('614515', 'SERVICIO DE TRANSPORTE POR VIA ACUATICA ');
+INSERT INTO gifi (accno,description) VALUES ('614520', 'SERVICIO DE TRANSPORTE POR VIA AEREA ');
+INSERT INTO gifi (accno,description) VALUES ('614525', 'SERVICIO DE TRANSPORTE POR TUBERIAS ');
+INSERT INTO gifi (accno,description) VALUES ('614530', 'MANIPULACION DE CARGA ');
+INSERT INTO gifi (accno,description) VALUES ('614535', 'ALMACENAMIENTO Y DEPOSITO ');
+INSERT INTO gifi (accno,description) VALUES ('614540', 'SERVICIOS COMPLEMENTARIOS PARA EL TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('614545', 'AGENCIAS DE VIAJE ');
+INSERT INTO gifi (accno,description) VALUES ('614550', 'OTRAS AGENCIAS DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('614555', 'SERVICIO POSTAL Y DE CORREO ');
+INSERT INTO gifi (accno,description) VALUES ('614560', 'SERVICIO TELEFONICO ');
+INSERT INTO gifi (accno,description) VALUES ('614565', 'SERVICIO DE TELEGRAFO ');
+INSERT INTO gifi (accno,description) VALUES ('614570', 'SERVICIO DE TRANSMISION DE DATOS ');
+INSERT INTO gifi (accno,description) VALUES ('614575', 'SERVICIO DE RADIO Y TELEVISION POR CABLE ');
+INSERT INTO gifi (accno,description) VALUES ('614580', 'TRANSMISION DE SONIDO E IMAGENES POR CONTRATO ');
+INSERT INTO gifi (accno,description) VALUES ('614595', 'ACTIVIDADES CONEXAS ');
+INSERT INTO gifi (accno,description) VALUES ('614599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('6150', 'ACTIVIDAD FINANCIERA ');
+INSERT INTO gifi (accno,description) VALUES ('615005', 'DE INVERSIONES ');
+INSERT INTO gifi (accno,description) VALUES ('615010', 'DE SERVICIO DE BOLSA ');
+INSERT INTO gifi (accno,description) VALUES ('615099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('6155', 'ACTIVIDADES INMOBILIARIAS, EMPRESARIALES Y DE ALQUILER ');
+INSERT INTO gifi (accno,description) VALUES ('615505', 'ARRENDAMIENTOS DE BIENES INMUEBLES ');
+INSERT INTO gifi (accno,description) VALUES ('615510', 'INMOBILIARIAS POR RETRIBUCION O CONTRATA ');
+INSERT INTO gifi (accno,description) VALUES ('615515', 'ALQUILER EQUIPO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('615520', 'ALQUILER MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('615525', 'ALQUILER DE EFECTOS PERSONALES Y ENSERES DOMESTICOS ');
+INSERT INTO gifi (accno,description) VALUES ('615530', 'CONSULTORIA EN EQUIPO Y PROGRAMAS DE INFORMATICA ');
+INSERT INTO gifi (accno,description) VALUES ('615535', 'PROCESAMIENTO DE DATOS ');
+INSERT INTO gifi (accno,description) VALUES ('615540', 'MANTENIMIENTO Y REPARACION DE MAQUINARIA DE OFICINA ');
+INSERT INTO gifi (accno,description) VALUES ('615545', 'INVESTIGACIONES CIENTIFICAS Y DE DESARROLLO ');
+INSERT INTO gifi (accno,description) VALUES ('615550', 'ACTIVIDADES EMPRESARIALES DE CONSULTORIA ');
+INSERT INTO gifi (accno,description) VALUES ('615555', 'PUBLICIDAD ');
+INSERT INTO gifi (accno,description) VALUES ('615560', 'DOTACION DE PERSONAL ');
+INSERT INTO gifi (accno,description) VALUES ('615565', 'INVESTIGACION Y SEGURIDAD ');
+INSERT INTO gifi (accno,description) VALUES ('615570', 'LIMPIEZA DE INMUEBLES ');
+INSERT INTO gifi (accno,description) VALUES ('615575', 'FOTOGRAFIA ');
+INSERT INTO gifi (accno,description) VALUES ('615580', 'ENVASE Y EMPAQUE ');
+INSERT INTO gifi (accno,description) VALUES ('615585', 'FOTOCOPIADO ');
+INSERT INTO gifi (accno,description) VALUES ('615590', 'MANTENIMIENTO Y REPARACION DE MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('615595', 'ACTIVIDADES CONEXAS ');
+INSERT INTO gifi (accno,description) VALUES ('615599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('6160', 'ENSEŃANZA ');
+INSERT INTO gifi (accno,description) VALUES ('616005', 'ACTIVIDADES RELACIONADAS CON LA EDUCACION ');
+INSERT INTO gifi (accno,description) VALUES ('610595', 'ACTIVIDADES CONEXAS ');
+INSERT INTO gifi (accno,description) VALUES ('616099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('6165', 'SERVICIOS SOCIALES Y DE SALUD ');
+INSERT INTO gifi (accno,description) VALUES ('616505', 'SERVICIO HOSPITALARIO ');
+INSERT INTO gifi (accno,description) VALUES ('616510', 'SERVICIO MEDICO ');
+INSERT INTO gifi (accno,description) VALUES ('616515', 'SERVICIO ODONTOLOGICO ');
+INSERT INTO gifi (accno,description) VALUES ('616520', 'SERVICIO DE LABORATORIO ');
+INSERT INTO gifi (accno,description) VALUES ('616525', 'ACTIVIDADES VETERINARIAS ');
+INSERT INTO gifi (accno,description) VALUES ('616530', 'ACTIVIDADES DE SERVICIOS SOCIALES ');
+INSERT INTO gifi (accno,description) VALUES ('616595', 'ACTIVIDADES CONEXAS ');
+INSERT INTO gifi (accno,description) VALUES ('616599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('6170', 'OTRAS ACTIVIDADES DE SERVICIOS COMUNITARIOS, SOCIALES Y PERSONALES ');
+INSERT INTO gifi (accno,description) VALUES ('617005', 'ELIMINACION DE DESPERDICIOS Y AGUAS RESIDUALES ');
+INSERT INTO gifi (accno,description) VALUES ('617010', 'ACTIVIDADES DE ASOCIACION ');
+INSERT INTO gifi (accno,description) VALUES ('617015', 'PRODUCCION Y DISTRIBUCION DE FILMES Y VIDEOCINTAS ');
+INSERT INTO gifi (accno,description) VALUES ('617020', 'EXHIBICION DE FILMES Y VIDEOCINTAS ');
+INSERT INTO gifi (accno,description) VALUES ('617025', 'ACTIVIDAD DE RADIO Y TELEVISION ');
+INSERT INTO gifi (accno,description) VALUES ('617030', 'ACTIVIDAD TEATRAL, MUSICAL Y ARTISTICA ');
+INSERT INTO gifi (accno,description) VALUES ('617035', 'GRABACION Y PRODUCCION DE DISCOS ');
+INSERT INTO gifi (accno,description) VALUES ('617040', 'ENTRETENIMIENTO Y ESPARCIMIENTO ');
+INSERT INTO gifi (accno,description) VALUES ('617045', 'AGENCIAS DE NOTICIAS ');
+INSERT INTO gifi (accno,description) VALUES ('617050', 'LAVANDERIAS Y SIMILARES ');
+INSERT INTO gifi (accno,description) VALUES ('617055', 'PELUQUERIAS Y SIMILARES ');
+INSERT INTO gifi (accno,description) VALUES ('617060', 'SERVICIOS FUNERARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('617065', 'ZONAS FRANCAS ');
+INSERT INTO gifi (accno,description) VALUES ('617095', 'ACTIVIDADES CONEXAS ');
+INSERT INTO gifi (accno,description) VALUES ('617099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('62', 'COMPRAS ');
+INSERT INTO gifi (accno,description) VALUES ('6205', 'DE MERCANCIAS ');
+INSERT INTO gifi (accno,description) VALUES ('620599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('6210', 'DE MATERIAS PRIMAS ');
+INSERT INTO gifi (accno,description) VALUES ('621099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('6215', 'DE MATERIALES INDIRECTOS ');
+INSERT INTO gifi (accno,description) VALUES ('621599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('6220', 'COMPRA DE ENERGIA ');
+INSERT INTO gifi (accno,description) VALUES ('622099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('6225', 'DEVOLUCIONES REBAJAS Y DESCUENTOS EN COMPRAS (CR) ');
+INSERT INTO gifi (accno,description) VALUES ('622599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('7', 'COSTOS DE PRODUCCION O DE OPERACION ');
+INSERT INTO gifi (accno,description) VALUES ('71', 'MATERIA PRIMA ');
+INSERT INTO gifi (accno,description) VALUES ('72', 'MANO DE OBRA DIRECTA ');
+INSERT INTO gifi (accno,description) VALUES ('73', 'COSTOS INDIRECTOS ');
+INSERT INTO gifi (accno,description) VALUES ('74', 'CONTRATOS DE SERVICIOS ');
+INSERT INTO gifi (accno,description) VALUES ('8', 'CUENTAS DE ORDEN DEUDORAS ');
+INSERT INTO gifi (accno,description) VALUES ('81', 'DERECHOS CONTINGENTES ');
+INSERT INTO gifi (accno,description) VALUES ('8105', 'BIENES Y VALORES ENTREGADOS EN CUSTODIA ');
+INSERT INTO gifi (accno,description) VALUES ('810505', 'VALORES MOBILIARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('810510', 'BIENES MUEBLES ');
+INSERT INTO gifi (accno,description) VALUES ('810599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('8110', 'BIENES Y VALORES ENTREGADOS EN GARANTIA ');
+INSERT INTO gifi (accno,description) VALUES ('811005', 'VALORES MOBILIARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('811010', 'BIENES MUEBLES ');
+INSERT INTO gifi (accno,description) VALUES ('811015', 'BIENES INMUEBLES ');
+INSERT INTO gifi (accno,description) VALUES ('811020', 'CONTRATOS DE GANADO EN PARTICIPACION ');
+INSERT INTO gifi (accno,description) VALUES ('811099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('8115', 'BIENES Y VALORES EN PODER DE TERCEROS ');
+INSERT INTO gifi (accno,description) VALUES ('811505', 'EN ARRENDAMIENTO ');
+INSERT INTO gifi (accno,description) VALUES ('811510', 'EN PRESTAMO ');
+INSERT INTO gifi (accno,description) VALUES ('811515', 'EN DEPOSITO ');
+INSERT INTO gifi (accno,description) VALUES ('811520', 'EN CONSIGNACION ');
+INSERT INTO gifi (accno,description) VALUES ('811599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('8120', 'LITIGIOS Y/O DEMANDAS ');
+INSERT INTO gifi (accno,description) VALUES ('812005', 'EJECUTIVOS ');
+INSERT INTO gifi (accno,description) VALUES ('812010', 'INCUMPLIMIENTO DE CONTRATOS ');
+INSERT INTO gifi (accno,description) VALUES ('8125', 'PROMESAS DE COMPRAVENTA ');
+INSERT INTO gifi (accno,description) VALUES ('8195', 'DIVERSAS ');
+INSERT INTO gifi (accno,description) VALUES ('819505', 'VALORES ADQUIRIDOS POR RECIBIR ');
+INSERT INTO gifi (accno,description) VALUES ('819595', 'OTRAS ');
+INSERT INTO gifi (accno,description) VALUES ('819599', 'AJUSTES POR INFLACION. ');
+INSERT INTO gifi (accno,description) VALUES ('82', 'DEUDORAS FISCALES ');
+INSERT INTO gifi (accno,description) VALUES ('83', 'DEUDORAS DE CONTROL ');
+INSERT INTO gifi (accno,description) VALUES ('8305', 'BIENES RECIBIDOS EN ARRENDAMIENTO FINANCIERO ');
+INSERT INTO gifi (accno,description) VALUES ('830505', 'BIENES MUEBLES ');
+INSERT INTO gifi (accno,description) VALUES ('830510', 'BIENES INMUEBLES ');
+INSERT INTO gifi (accno,description) VALUES ('830599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('8310', 'TITULOS DE INVERSION NO COLOCADOS ');
+INSERT INTO gifi (accno,description) VALUES ('831005', 'ACCIONES ');
+INSERT INTO gifi (accno,description) VALUES ('831010', 'BONOS ');
+INSERT INTO gifi (accno,description) VALUES ('831095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('8315', 'PROPIEDADES PLANTA Y EQUIPO TOTALMENTE DEPRECIADOS, AGOTADOS Y/O AMORTIZADOS ');
+INSERT INTO gifi (accno,description) VALUES ('831506', 'MATERIALES PROYECTOS PETROLEROS ');
+INSERT INTO gifi (accno,description) VALUES ('831516', 'CONSTRUCCIONES Y EDIFICACIONES ');
+INSERT INTO gifi (accno,description) VALUES ('831520', 'MAQUINARIA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('831524', 'EQUIPO DE OFICINA ');
+INSERT INTO gifi (accno,description) VALUES ('831528', 'EQUIPO DE COMPUTACION Y COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('831532', 'EQUIPO MEDICO - CIENTIFICO ');
+INSERT INTO gifi (accno,description) VALUES ('831536', 'EQUIPO DE HOTELES Y RESTAURANTES ');
+INSERT INTO gifi (accno,description) VALUES ('831540', 'FLOTA Y EQUIPO DE TRANSPORTE ');
+INSERT INTO gifi (accno,description) VALUES ('831544', 'FLOTA Y EQUIPO FLUVIAL Y/O MARITIMO ');
+INSERT INTO gifi (accno,description) VALUES ('831548', 'FLOTA Y EQUIPO AEREO ');
+INSERT INTO gifi (accno,description) VALUES ('831552', 'FLOTA Y EQUIPO FERREO ');
+INSERT INTO gifi (accno,description) VALUES ('831556', 'ACUEDUCTOS, PLANTAS Y REDES ');
+INSERT INTO gifi (accno,description) VALUES ('831560', 'ARMAMENTO DE VIGILANCIA ');
+INSERT INTO gifi (accno,description) VALUES ('831562', 'ENVASES Y EMPAQUES ');
+INSERT INTO gifi (accno,description) VALUES ('831564', 'PLANTACIONES AGRICOLAS Y FORESTALES ');
+INSERT INTO gifi (accno,description) VALUES ('831568', 'VIAS DE COMUNICACION ');
+INSERT INTO gifi (accno,description) VALUES ('831572', 'MINAS Y CANTERAS ');
+INSERT INTO gifi (accno,description) VALUES ('831576', 'POZOS ARTESIANOS ');
+INSERT INTO gifi (accno,description) VALUES ('831580', 'YACIMIENTOS ');
+INSERT INTO gifi (accno,description) VALUES ('831584', 'SEMOVIENTES ');
+INSERT INTO gifi (accno,description) VALUES ('831599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('8320', 'CREDITOS A FAVOR NO UTILIZADOS ');
+INSERT INTO gifi (accno,description) VALUES ('832005', 'PAIS ');
+INSERT INTO gifi (accno,description) VALUES ('832010', 'EXTERIOR ');
+INSERT INTO gifi (accno,description) VALUES ('8325', 'ACTIVOS CASTIGADOS ');
+INSERT INTO gifi (accno,description) VALUES ('832505', 'INVERSIONES ');
+INSERT INTO gifi (accno,description) VALUES ('832510', 'DEUDORES ');
+INSERT INTO gifi (accno,description) VALUES ('832595', 'OTROS ACTIVOS ');
+INSERT INTO gifi (accno,description) VALUES ('8330', 'TITULOS DE INVERSION AMORTIZADOS ');
+INSERT INTO gifi (accno,description) VALUES ('833005', 'BONOS ');
+INSERT INTO gifi (accno,description) VALUES ('833095', 'OTROS ');
+INSERT INTO gifi (accno,description) VALUES ('8335', 'CAPITALIZACION POR REVALORIZACION DE PATRIMONIO ');
+INSERT INTO gifi (accno,description) VALUES ('8395', 'OTRAS CUENTAS DEUDORAS DE CONTROL ');
+INSERT INTO gifi (accno,description) VALUES ('839505', 'CHEQUES POSTFECHADOS ');
+INSERT INTO gifi (accno,description) VALUES ('839510', 'CERTIFICADOS DE DEPOSITO A TERMINO ');
+INSERT INTO gifi (accno,description) VALUES ('839515', 'CHEQUES DEVUELTOS ');
+INSERT INTO gifi (accno,description) VALUES ('839520', 'BIENES Y VALORES EN FIDEICOMISO ');
+INSERT INTO gifi (accno,description) VALUES ('839525', 'INTERESES SOBRE DEUDAS VENCIDAS ');
+INSERT INTO gifi (accno,description) VALUES ('839595', 'DIVERSAS ');
+INSERT INTO gifi (accno,description) VALUES ('839599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('8399', 'AJUSTES POR INFLACION ACTIVOS ');
+INSERT INTO gifi (accno,description) VALUES ('839905', 'INVERSIONES ');
+INSERT INTO gifi (accno,description) VALUES ('839910', 'INVENTARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('839915', 'PROPIEDADES PLANTA Y EQUIPO ');
+INSERT INTO gifi (accno,description) VALUES ('839920', 'INTANGIBLES ');
+INSERT INTO gifi (accno,description) VALUES ('839925', 'CARGOS DIFERIDOS ');
+INSERT INTO gifi (accno,description) VALUES ('839995', 'OTROS ACTIVOS ');
+INSERT INTO gifi (accno,description) VALUES ('84', 'DERECHOS CONTINGENTES POR CONTRA (CR) ');
+INSERT INTO gifi (accno,description) VALUES ('85', 'DEUDORAS FISCALES POR CONTRA (CR) ');
+INSERT INTO gifi (accno,description) VALUES ('86', 'DEUDORAS DE CONTROL POR CONTRA (CR) ');
+INSERT INTO gifi (accno,description) VALUES ('9', 'CUENTAS DE ORDEN ACREEDORAS ');
+INSERT INTO gifi (accno,description) VALUES ('91', 'RESPONSABILIDADES CONTINGENTES ');
+INSERT INTO gifi (accno,description) VALUES ('9105', 'BIENES Y VALORES RECIBIDOS EN CUSTODIA ');
+INSERT INTO gifi (accno,description) VALUES ('910505', 'VALORES MOBILIARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('910510', 'BIENES MUEBLES ');
+INSERT INTO gifi (accno,description) VALUES ('910599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('9110', 'BIENES Y VALORES RECIBIDOS EN GARANTIA ');
+INSERT INTO gifi (accno,description) VALUES ('911005', 'VALORES MOBILIARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('911010', 'BIENES MUEBLES ');
+INSERT INTO gifi (accno,description) VALUES ('911015', 'BIENES INMUEBLES ');
+INSERT INTO gifi (accno,description) VALUES ('911020', 'CONTRATOS DE GANADO EN PARTICIPACION ');
+INSERT INTO gifi (accno,description) VALUES ('911099', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('9115', 'BIENES Y VALORES RECIBIDOS DE TERCEROS ');
+INSERT INTO gifi (accno,description) VALUES ('911505', 'EN ARRENDAMIENTO ');
+INSERT INTO gifi (accno,description) VALUES ('911510', 'EN PRESTAMO ');
+INSERT INTO gifi (accno,description) VALUES ('911515', 'EN DEPOSITO ');
+INSERT INTO gifi (accno,description) VALUES ('911520', 'EN CONSIGNACION ');
+INSERT INTO gifi (accno,description) VALUES ('911525', 'EN COMODATO ');
+INSERT INTO gifi (accno,description) VALUES ('911599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('9120', 'LITIGIOS Y/O DEMANDAS ');
+INSERT INTO gifi (accno,description) VALUES ('912005', 'LABORALES ');
+INSERT INTO gifi (accno,description) VALUES ('912010', 'CIVILES ');
+INSERT INTO gifi (accno,description) VALUES ('912015', 'ADMINISTRATIVOS O ARBITRALES ');
+INSERT INTO gifi (accno,description) VALUES ('912020', 'TRIBUTARIOS ');
+INSERT INTO gifi (accno,description) VALUES ('9125', 'PROMESAS DE COMPRAVENTA ');
+INSERT INTO gifi (accno,description) VALUES ('9130', 'CONTRATOS DE ADMINISTRACION DELEGADA ');
+INSERT INTO gifi (accno,description) VALUES ('9135', 'CUENTAS EN PARTICIPACION ');
+INSERT INTO gifi (accno,description) VALUES ('9195', 'OTRAS RESPONSABILIDADES CONTINGENTES ');
+INSERT INTO gifi (accno,description) VALUES ('92', 'ACREEDORAS FISCALES ');
+INSERT INTO gifi (accno,description) VALUES ('93', 'ACREEDORAS DE CONTROL ');
+INSERT INTO gifi (accno,description) VALUES ('9305', 'CONTRATOS DE ARRENDAMIENTO FINANCIERO ');
+INSERT INTO gifi (accno,description) VALUES ('930505', 'BIENES MUEBLES ');
+INSERT INTO gifi (accno,description) VALUES ('930510', 'BIENES INMUEBLES ');
+INSERT INTO gifi (accno,description) VALUES ('939505', 'DOCUMENTOS POR COBRAR DESCONTADOS ');
+INSERT INTO gifi (accno,description) VALUES ('939510', 'CONVENIOS DE PAGO ');
+INSERT INTO gifi (accno,description) VALUES ('939515', 'CONTRATOS DE CONSTRUCCIONES E INSTALACIONES POR EJECUTAR ');
+INSERT INTO gifi (accno,description) VALUES ('939520', 'PEDIDOS COLOCADOS ');
+INSERT INTO gifi (accno,description) VALUES ('939525', 'ADJUDICACIONES PENDIENTES DE LEGALIZAR ');
+INSERT INTO gifi (accno,description) VALUES ('939530', 'RESERVA ARTICULO 3o. LEY 4/80 ');
+INSERT INTO gifi (accno,description) VALUES ('939535', 'RESERVA COSTO REPOSICION SEMOVIENTES ');
+INSERT INTO gifi (accno,description) VALUES ('939599', 'AJUSTES POR INFLACION ');
+INSERT INTO gifi (accno,description) VALUES ('9399', 'AJUSTES POR INFLACION PATRIMONIO ');
+INSERT INTO gifi (accno,description) VALUES ('939905', 'CAPITAL SOCIAL ');
+INSERT INTO gifi (accno,description) VALUES ('939910', 'SUPERAVIT DE CAPITAL ');
+INSERT INTO gifi (accno,description) VALUES ('939915', 'RESERVAS ');
+INSERT INTO gifi (accno,description) VALUES ('939925', 'DIVIDENDOS O PARTICIPACIONES DECRETADAS EN ACCIONES, CUOTAS O PARTES DE INTERES SOCIAL ');
+INSERT INTO gifi (accno,description) VALUES ('939930', 'RESULTADOS DE EJERCICIOS ANTERIORES ');
+INSERT INTO gifi (accno,description) VALUES ('94', 'RESPONSABILIDADES CONTINGENTES POR CONTRA (DB) ');
+INSERT INTO gifi (accno,description) VALUES ('95', 'ACREEDORAS FISCALES POR CONTRA (DB) ');
+INSERT INTO gifi (accno,description) VALUES ('96', 'ACREEDORAS DE CONTROL POR CONTRA (DB) ');
+INSERT INTO gifi (accno,description) VALUES ('5', 'GASTOS');
diff --git a/sql/Czech-Republic-chart.sql b/sql/Czech-Republic-chart.sql
new file mode 100755
index 00000000..6cb20522
--- /dev/null
+++ b/sql/Czech-Republic-chart.sql
@@ -0,0 +1,317 @@
+-- Czech chart of accounts
+-- Tomas.Fencl@centrum.cz
+-- Kompletní úètová osnova platná v roce 2001
+-- Osnova má 2 místa pro tvorbu analytik
+--
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1000', 'Dlouhodobý nehmotný majetek','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1100', 'Zøizovací výdaje','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1200', 'Nehmotné výsledky výzkumu a vývoje','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1300', 'Software','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1400', 'Ocenitelná práva','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1800', 'Drobný dlouhodobý nehmotný majetek','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1900', 'Ostatní dlouhodobý nehmotný majetek','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2000', 'Dlouhodobý Hmotný majetek odpisovaný','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2100', 'Stavby','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2200', 'Samostatné movité vìci a soubory movitých vìcí','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2500', 'Pìstitelské celky trvalých porostù','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2600', 'Základní stádo a ta¾ná zvíøata','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2800', 'Drobný dlouhodobý hmotný majetek','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2900', 'Ostatní dlouhodobý hmotný majetek','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3000', 'Dlouhodobý hmotný majetek neodpisovaný','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3100', 'Pozemky','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3200', 'Umìlecká díla a sbírky','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4000', 'Poøízení dlouhodobého nehmotného a hmotného majetku','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4100', 'Poøízení dlouhodobého nehmotného majetku','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4200', 'Poøízení dlouhodobého hmotného majetku','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5000', 'Poskytnuté zálohy na dlouhodobý nehmotný a hmotný majetek','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5100', 'Poskytnuté zálohy na dlouhodobý nehmotný majetek','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5200', 'Poskytnuté zálohy na dlouhodobý hmotný majetek','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6000', 'Dlouhodobý finanèní majetek','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6100', 'Podílové cenné papíry a vklady v podnicích s rozhodujícím','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6200', 'Podílové cenné papíry a vklady v podnicích s podstatným','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6300', 'Ostatní dlouhodobé cenné papíry a vklady','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6600', 'Pùjèky podnikùm ve skupinì','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6700', 'Ostatní pùjèky','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6900', 'Ostatní dlouhodobý finanèní majetek','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7000', 'Oprávky k dlouhodobému nehmotnému majetku','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7100', 'Oprávky ke zøizovacím výdajùm','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7200', 'Oprávky k nehmotným výsledkùm výzkumu a vývoje','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7300', 'Oprávky k softwaru','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7400', 'Oprávky k ocenitelným právùm','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7800', 'Oprávky k drobnému dlouhodobému nehmotnému majetku','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7900', 'Oprávky k ostatnímu dlouhodobému nehmotnému majetku','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8000', 'Oprávky k dlouhodobému hmotnému majetku','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8100', 'Oprávky ke stavbám','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8200', 'Oprávky k samostatným movitým vìcem a souborùm movitých vìcí','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8500', 'Oprávky k pìstitelským celkùm trvalých porostù','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8600', 'Oprávky k základnímu stádu a ta¾ným zvíøatùm','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8800', 'Oprávky k drobnému dlouhodobému hmotnému majetku','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8900', 'Oprávky k ostatnímu dlouhodobému hmotnému majetku','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('9000', 'Opravné polo¾ky k dlouhodobému majetku','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('9100', 'Opravná polo¾ka k dlouhodobému nehmotnému majetku','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('9200', 'Opravná polo¾ka k dlouhodobému hmotnému majetku','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('9300', 'Opravná polo¾ka k dlouhodobému nedokonèenému nehmotnému','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('9400', 'Opravná polo¾ka k dlouhodobému nedokonèenému hmotnému','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('9500', 'Opravná polo¾ka k poskytnutým zálohám','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('9600', 'Opravná polo¾ka k dlouhodobému finanènímu majetku','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('9700', 'Opravná polo¾ka k nabytému majetku','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('9800', 'Oprávky k opravné polo¾ce k nabytému majetku','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('10000', 'Zásoby','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('11000', 'Materiál','H','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('11100', 'Poøízení materiálu','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('11200', 'Materiál na skladì','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('11900', 'Materiál na cestì','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('12000', 'Zásoby vlastní výroby','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('12100', 'Nedokonèená výroba','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('12200', 'Polotovary vlastní výroby','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('12300', 'Výrobky','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('12400', 'Zvíøata','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('13000', 'Zbo¾í','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('13100', 'Poøízení zbo¾í','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('13200', 'Zbo¾í na skladì a v prodejnách','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('13900', 'Zbo¾í na cestì','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('19000', 'Opravné polo¾ky k zásobám','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('19100', 'Opravná polo¾ka k materiálu','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('19200', 'Opravná polo¾ka k nedokonèené výrobì','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('19300', 'Opravná polo¾ka k polotovarùm vlastní výroby','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('19400', 'Opravná polo¾ka k výrobkùm','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('19500', 'Opravná polo¾ka ke zvíøatùm','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('19600', 'Opravná polo¾ka ke zbo¾í','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('20000', 'Finanèní úèty','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('21000', 'Peníze','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('21100', 'Pokladna','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('21300', 'Ceniny','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('22000', 'Úèty v bankách','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('22100', 'Bankovní úèty','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('22200', 'Bankovní úèty klientù','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('23000', 'Bì¾né bankovní úvìry','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('23100', 'Krátkodobé bankovní úvìry','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('23200', 'Eskontní úvìry','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('24000', 'Jiné krátkodobé finanèní výpomoci','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('24100', 'Emitované krátkodobé dluhopisy','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('24900', 'Ostatní krátkodobé finanèní výpomoci','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('25000', 'Krátkodobý finanèní majetek','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('25100', 'Majetkové cenné papíry','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('25200', 'Vlastní akcie a vlastní obchodní podíly','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('25300', 'Dlu¾né cenné papíry','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('25500', 'Vlastní dluhopisy','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('25600', 'Ostatní cenné papíry','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('26000', 'Pøevody mezi finanèními úèty','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('26100', 'Peníze na cestì','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('29000', 'Opravné polo¾ky ke krátkodobému finanènímu majetku','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('29100', 'Opravná polo¾ka k majetkovým cenným papírùm','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('29300', 'Opravná polo¾ka k dlu¾ným cenným papírùm','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('30000', 'Zúètovací vztahy','H','','H','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('31000', 'Pohledávky','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('31100', 'Odbìratelé','A','','A','AR');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('31200', 'Smìnky k inkasu','A','','A','AR');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('31300', 'Pohledávky za eskontované cenné papíry','A','','A','AR');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('31400', 'Poskytnuté provozní zálohy','A','','A','AR');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('31500', 'Ostatní pohledávky','A','','A','AR');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('32000', 'Závazky','H','','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('32100', 'Dodavatelé','A','','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('32200', 'Smìnky k úhradì','A','','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('32400', 'Pøijaté zálohy','A','','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('32500', 'Ostatní závazky','A','','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('32600', ' Závazky vùèi klientùm','A','','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('32700', ' Závazky vùèi trhùm','A','','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('33000', 'Zúètování se zamìstnanci a institucemi','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('33100', 'Zamìstnanci','A','','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('33300', 'Ostatní závazky vùèi zamìstnancùm','A','','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('33500', 'Pohledávky za zamìstnanci','A','','A','AR');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('33600', 'Zúètování s institucemi sociálního zabezpeèení a zdravotního','A','','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('34000', 'Zúètování daní a dotací','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('34100', 'Daò z pøíjmù','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('34200', 'Ostatní pøímé danì','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('34300', 'Daò z pøidané hodnoty - zúètování','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('34311', 'DPH 5% vstup','A','','L','AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('34312', 'DPH 22% vstup','A','','L','AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('34321', 'DPH 5% výstup','A','','L','AR_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('34322', 'DPH 22% výstup','A','','L','AR_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('34500', 'Ostatní danì a poplatky','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('34600', 'Dotace ze státního rozpoètu','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('34700', 'Ostatní dotace','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('35000', 'Pohledávky ke spoleèníkùm a sdru¾ení','H','','A','AR');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('35100', 'Pohledávky k podnikùm ve skupinì','A','','A','AR');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('35300', 'Pohledávky za upsaný vlastní kapitál','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('35400', 'Pohledávky za spoleèníky pøi úhradì ztráty','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('35500', 'Ostatní pohledávky za spoleèníky','A','','A','AR');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('35800', 'Pohledávky k úèastníkùm sdru¾ení','A','','A','AR');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('36000', 'Závazky ke spoleèníkùm a sdru¾ení','H','','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('36100', 'Závazky k podnikùm ve skupinì','A','','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('36400', 'Závazky ke spoleèníkùm pøi rozdìlování zisku','A','','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('36500', 'Ostatní závazky ke spoleèníkùm','A','','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('36600', 'Závazky ke spoleèníkùm a èlenùm dru¾stva ze závislé','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('36700', 'Závazky z upsaných nesplacených cenných papírù a vkladù','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('36800', 'Závazky k úèastníkùm sdru¾ení','A','','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('37000', 'Jiné pohledávky a závazky','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('37100', 'Odlo¾ená daòová pohledávka a závazek','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('37300', 'Nakoupené opce','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('37400', 'Prodané opce','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('37500', 'Pohledávky z emitovaných dluhopisù','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('37700', ' Zúètování obchodù','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('37800', 'Jiné pohledávky','A','','A','AR');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('37900', 'Jiné závazky','A','','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('38000', 'Pøechodné úèty aktiv a pasív','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('38100', 'Náklady pøí¹tích období','A','','A','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('38200', 'Komplexní náklady pøí¹tích období','A','','A','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('38300', 'Výdaje pøí¹tích období','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('38400', 'Výnosy pøí¹tích období','A','','L','AR');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('38500', 'Pøíjmy pøí¹tích období','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('38600', 'Kursové rozdíly aktivní','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('38700', 'Kursové rozdíly pasívní','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('38800', 'Dohadné úèty aktivní','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('38900', 'Dohadné úèty pasívní','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('39000', 'Opravná polo¾ka k zúètovacím vztahùm a vnitøní zúètování','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('39100', 'Opravná polo¾ka k pohledávkám','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('39500', 'Vnitøní zúètování','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('39800', 'Spojovací úèet pøi sdru¾ení','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('40000', 'Kapitálové úèty a dlouhodobé závazky','H','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('41000', 'Základní kapitál a kapitálové fondy','H','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('41100', 'Základní kapitál','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('41200', 'Emisní á¾io','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('41300', 'Ostatní kapitálové fondy','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('41400', 'Oceòovací rozdíly z pøecenìní majetku a závazkù','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('42000', 'Fondy ze zisku a pøevedené hospodáøské výsledky','H','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('42100', 'Zákonný rezervní fond','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('42200', 'Nedìlitelný fond','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('42300', 'Statutární fondy','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('42700', 'Ostatní fondy','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('42800', 'Nerozdìlený zisk minulých let','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('42900', 'Neuhrazená ztráta minulých let','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('43000', 'Hospodáøský výsledek','H','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('43100', 'Hospodáøský výsledek ve schvalovacím øízení','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('45000', 'Rezervy','H','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('45100', 'Rezervy zákonné','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('45400', 'Rezerva na kursové ztráty','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('45900', 'Ostatní rezervy','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('46000', 'Bankovní úvìry','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('46100', 'Bankovní úvìry','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('47000', 'Dlouhodobé závazky','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('47100', 'Dlouhodobé závazky k podnikùm ve skupinì','A','','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('47300', 'Emitované dluhopisy','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('47400', 'Závazky z pronájmu','A','','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('47500', 'Dlouhodobé pøijaté zálohy','A','','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('47800', 'Dlouhodobé smìnky k úhradì','A','','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('47900', 'Ostatní dlouhodobé závazky','A','','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('49000', 'Individuální podnikatel','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('49100', 'Úèet individuálního podnikatele','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('50000', 'Spotøebované nákupy','A','','E','AP_amount:IC_COGS');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('50100', 'Spotøeba materiálu','A','','E','AP_amount:IC_COGS');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('50200', 'Spotøeba energie','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('50300', 'Spotøeba ostatních neskladovatelných dodávek','A','','E','AP_amount:IC_COGS');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('50400', 'Prodané zbo¾í','A','','E','AP_amount:IC_COGS');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('51000', 'Slu¾by','A','','E','AP_amount:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('51100', 'Opravy a udr¾ování','A','','E','AP_amount:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('51200', 'Cestovné','A','','E','AP_amount:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('51300', 'Náklady na reprezentaci','A','','E','AP_amount:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('51800', 'Ostatní slu¾by','A','','E','AP_amount:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('52000', 'Osobní náklady','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('52100', 'Mzdové náklady','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('52200', 'Pøíjmy spoleèníkù a èlenù dru¾stva ze závislé èinnosti','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('52300', 'Odmìny èlenùm orgánù spoleènosti a dru¾stva','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('52400', 'Zákonné sociální poji¹tìní','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('52500', 'Ostatní sociální poji¹tìní','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('52600', 'Sociální náklady individuálního podnikatele','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('52700', 'Zákonné sociální náklady','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('52800', 'Ostatní sociální náklady','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('53000', 'Danì a poplatky','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('53100', 'Daò silnièní','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('53200', 'Daò z nemovitostí','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('53800', 'Ostatní danì a poplatky','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('54000', 'Jiné provozní náklady','A','','E','AP_amount:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('54100', 'Zùstatková cena prodaného dlouhodobého nehmotného a hmotného','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('54200', 'Prodaný materiál','A','','E','IC_COGS');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('54300', 'Dary','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('54400', 'Smluvní pokuty a úroky z prodlení','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('54500', 'Ostatní pokuty a penále','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('54600', 'Odpis pohledávky','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('54800', 'Ostatní provozní náklady','A','','E','AP_amount:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('55000', 'Odpisy, rezervy a opravné polo¾ky provozních nákladù','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('55100', 'Odpisy dlouhodobého nehmotného a hmotného majetku','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('55200', 'Tvorba zákonných rezerv','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('55400', 'Tvorba ostatních rezerv','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('55500', 'Zúètování komplexních nákladù pøí¹tích období','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('55700', 'Zúètování oprávky k opravné polo¾ce k nabytému majetku','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('55800', 'Tvorba zákonných opravných polo¾ek','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('55900', 'Tvorba opravných polo¾ek','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('56000', 'Finanèní náklady','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('56100', 'Prodané cenné papíry a vklady','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('56200', 'Úroky','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('56300', 'Kursové ztráty','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('56800', 'Ostatní finanèní náklady','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('57000', 'Rezervy a opravné polo¾ky finanèních nákladù','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('57400', 'Tvorba rezerv','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('57900', 'Tvorba opravných polo¾ek','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('58000', 'Mimoøádné náklady','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('58100', 'Náklady na zmìnu metody','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('58200', 'Manka a ¹kody','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('58400', 'Tvorba rezerv','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('58800', 'Ostatní mimoøádné náklady','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('58900', 'Tvorba opravných polo¾ek','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('59000', 'Danì z pøíjmù a pøevodové úèty','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('59100', 'Daò z pøíjmù z bì¾né èinnosti - splatná','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('59200', 'Daò z pøíjmù z bì¾né èinnosti - odlo¾ená','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('59300', 'Daò z pøíjmù z mimoøádné èinnosti - splatná','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('59400', 'Daò z pøíjmù z mimoøádné èinnosti - odlo¾ené','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('59500', 'Dodateèné odvody danì z pøíjmù','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('59600', 'Pøevod podílu na hospodáøském výsledku spoleèníkùm','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('59700', 'Pøevod provozních nákladù','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('59800', 'Pøevod finanèních nákladù','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('60000', 'Tr¾by za vlastní výkony a zbo¾í','A','','I','AR_amount:IC_sale:IC_Income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('60100', 'Tr¾by za vlastní výrobky','A','','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('60200', 'Tr¾by z prodeje slu¾eb','A','','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('60400', 'Tr¾by za zbo¾í','A','','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('61000', 'Zmìny stavu vnitropodnikových zásob','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('61100', 'Zmìna stavu nedokonèené výroby','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('61200', 'Zmìna stavu polotovarù','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('61300', 'Zmìna stavu výrobkù','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('61400', 'Zmìna stavu zvíøat','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('62000', 'Aktivace','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('62100', 'Aktivace materiálu a zbo¾í','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('62200', 'Aktivace vnitropodnikových slu¾eb','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('62300', 'Aktivace dlouhodobého nehmotného majetku','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('62400', 'Aktivace dlouhodobého hmotného majetku','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('64000', 'Jiné provozní výnosy.','A','','I','AR_amount:IC_sale:IC_Income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('64100', 'Tr¾by z prodeje dlouhodobého nehmotného a hmotného majetku','A','','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('64200', 'Tr¾by z prodeje materiálu','A','','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('64400', 'Smluvní pokuty a úroky z prodlení','A','','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('64600', 'Výnosy z odepsaných pohledávek','A','','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('64800', 'Jiné provozní výnosy','A','','I','AR_amount:IC_sale:IC_Income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('65000', 'Zúètování rezerv a opravných polo¾ek provozních výnosù','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('65200', 'Zúètování zákonných rezerv','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('65400', 'Zúètování ostatních rezerv','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('65500', 'Zúètování komplexních nákladù pøí¹tích období','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('65700', 'Zúètování oprávky k opravné polo¾ce k nabytému majetku','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('65800', 'Zúètování zákonných opravných polo¾ek','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('65900', 'Zúètování opravných polo¾ek','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('66000', 'Finanèní výnosy','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('66100', 'Tr¾by z prodeje cenných papírù a vkladù','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('66200', 'Úroky','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('66300', 'Kursové zisky','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('66500', 'Výnosy z dlouhodobého finanèního majetku','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('66600', 'Výnosy z krátkodobého finanèního majetku','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('66800', 'Ostatní finanèní výnosy','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('67000', 'Zúètování rezerv a opravných polo¾ek finanèních výnosù','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('67400', 'Zúètování rezerv','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('67900', 'Zúètování opravných polo¾ek','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('68000', 'Mimoøádné výnosy','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('68100', 'Výnosy ze zmìny metody','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('68400', 'Zúètování rezerv','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('68800', 'Ostatní mimoøádné výnosy','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('68900', 'Zúètování opravných polo¾ek','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('69000', 'Pøevodové úèty','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('69700', 'Pøevod provozních výnosù','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('69800', 'Pøevod finanèních výnosù','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('70000', 'Úèty rozva¾né','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('70100', 'Poèáteèní úèet rozva¾ný','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('70200', 'Koneèný úèet rozva¾ný','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('71000', 'Úèet ziskù a ztrát','A','','A','');
+--
+insert into tax (chart_id,rate) values ((select id from chart where accno = '34311'),0.05);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '34312'),0.22);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '34321'),0.05);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '34322'),0.22);
+--
+update defaults set inventory_accno_id = (select id from chart where accno = '13200'), income_accno_id = (select id from chart where accno = '60000'), expense_accno_id = (select id from chart where accno = '50000'), fxgain_accno_id = (select id from chart where accno = '99998'), fxloss_accno_id = (select id from chart where accno = '99999'), curr = 'Kè ', weightunit = 'kg';
+--
diff --git a/sql/DB2-create.sql b/sql/DB2-create.sql
new file mode 100755
index 00000000..4187f6c8
--- /dev/null
+++ b/sql/DB2-create.sql
@@ -0,0 +1,8 @@
+CONNECT RESET@
+ATTACH TO db2inst1@
+CREATE DATABASE LEDGER USING CODESET UTF-8 TERRITORY US DFT_EXTENT_SZ 16@
+CONNECT TO LEDGER@
+CREATE BUFFERPOOL LEDGERBP_8K IMMEDIATE SIZE 1000 PAGESIZE 8192@
+CREATE TABLESPACE LEDGER_TS PAGESIZE 8K MANAGED BY SYSTEM USING ('LEDGER_TS') PREFETCHSIZE 8 BUFFERPOOL LEDGERBP_8K@
+CREATE TEMPORARY TABLESPACE LEDGER_TMP_8K PAGESIZE 8K MANAGED BY SYSTEM USING ('LEDGER_TMP_8K') BUFFERPOOL LEDGERBP_8K@
+CONNECT RESET@
diff --git a/sql/DB2-indices.sql b/sql/DB2-indices.sql
new file mode 100755
index 00000000..6242935f
--- /dev/null
+++ b/sql/DB2-indices.sql
@@ -0,0 +1,57 @@
+create index ac_trns_trans_id on acc_trans (trans_id)@
+create index ac_trns_chart_id on acc_trans (chart_id)@
+create index ac_trns_transdate on acc_trans (transdate)@
+create index ac_trns_source on acc_trans (source)@
+create index ap_id_x on ap (id)@
+create index ap_transdate_x on ap (transdate)@
+create index ap_invnumber_x on ap (invnumber)@
+create index ap_ordnumber_x on ap (ordnumber)@
+create index ap_vendor_id_x on ap (vendor_id)@
+create index ap_emp_id_x on ap (employee_id)@
+create index ar_id_x on ar (id)@
+create index ar_transdate_x on ar (transdate)@
+create index ar_invnumber_x on ar (invnumber)@
+create index ar_ordnumber_x on ar (ordnumber)@
+create index ar_cust_id_x on ar (customer_id)@
+create index ar_emp_id_x on ar (employee_id)@
+create index assembly_id_x on assembly (id)@
+create index chart_id_x on chart (id)@
+create unique index chart_accno_x on chart (accno)@
+create index chart_category_x on chart (category)@
+create index chart_link_x on chart (link)@
+create index chart_gifi_accno on chart (gifi_accno)@
+create index cust_id_x on customer (id)@
+create index cust_customer_id_x on customertax (customer_id)@
+create index cust_custnum_x on customer (customernumber)@
+create index cust_name_x on customer (name)@
+create index cust_contact_x on customer (contact)@
+create index employee_id_x on employee (id)@
+create unique index employee_login_x on employee (login)@
+create index employee_name_x on employee (name)@
+create index exchrate_ct_x on exchangerate (curr, transdate)@
+create unique index gifi_accno_x on gifi (accno)@
+create index gl_id_x on gl (id)@
+create index gl_transdate_x on gl (transdate)@
+create index gl_reference_x on gl (reference)@
+create index gl_description_x on gl (description)@
+create index gl_employee_id_x on gl (employee_id)@
+create index invoi_id_x on invoice (id)@
+create index invoi_trans_id_x on invoice (trans_id)@
+create index makmod_parts_id on makemodel (parts_id)@
+create index oe_id_x on oe (id)@
+create index oe_transdate_x on oe (transdate)@
+create index oe_ordnumber_x on oe (ordnumber)@
+create index oe_emp_id_x on oe (employee_id)@
+create index orditems_trans_id on orderitems (trans_id)@
+create index parts_id_x on parts (id)@
+create index parts_partnumber on parts (partnumber)@
+-- create index parts_desc on parts (description)@
+create index partstax_parts_id on partstax (parts_id)@
+create index vend_id_x on vendor (id)@
+create index vend_name_x on vendor (name)@
+create index vend_vendnum_x on vendor (vendornumber)@
+create index vend_contact_x on vendor (contact)@
+create index vendtax_vendor_id on vendortax (vendor_id)@
+create index shipto_trans_id on shipto (trans_id)@
+create index project_id_x on project (id)@
+create index partsgroup_id_x on partsgroup (id)@
diff --git a/sql/DB2-remove.sql b/sql/DB2-remove.sql
new file mode 100755
index 00000000..413bebb2
--- /dev/null
+++ b/sql/DB2-remove.sql
@@ -0,0 +1,47 @@
+-- DB2-remove.sql
+--
+--
+-- Jim Rawlings modified for use with SL 2.0.8 and DB2 v7.2
+-- and higher August 27, 2003
+--
+--
+---------------------------------------------------------
+-- DDL Statements for object removal
+---------------------------------------------------------
+DROP TRIGGER partsgroupid;
+DROP TRIGGER projectid;
+DROP TRIGGER employeeid;
+DROP TRIGGER oeid;
+DROP TRIGGER apid;
+DROP TRIGGER arid;
+DROP TRIGGER partsid;
+DROP TRIGGER customerid;
+DROP TRIGGER vendorid;
+DROP TRIGGER invoiceid;
+DROP TRIGGER chartid;
+DROP TRIGGER glid;
+DROP SEQUENCE id RESTRICT;
+DROP TABLE partsgroup;
+DROP TABLE project;
+DROP TABLE shipto;
+DROP TABLE employee;
+DROP TABLE exchangerate;
+DROP TABLE orderitems;
+DROP TABLE oe;
+DROP TABLE vendortax;
+DROP TABLE customertax;
+DROP TABLE tax;
+DROP TABLE partstax;
+DROP TABLE ap;
+DROP TABLE ar;
+DROP TABLE assembly;
+DROP TABLE parts;
+DROP TABLE customer;
+DROP TABLE vendor;
+DROP TABLE invoice;
+DROP TABLE acc_trans;
+DROP TABLE defaults;
+DROP TABLE gifi;
+DROP TABLE chart;
+DROP TABLE gl;
+DROP TABLE makemodel;
diff --git a/sql/DB2-set.sql b/sql/DB2-set.sql
new file mode 100755
index 00000000..2e8043b7
--- /dev/null
+++ b/sql/DB2-set.sql
@@ -0,0 +1,4 @@
+ATTACH TO db2inst1@
+! db2set DB2DBDFT=LEDGER@
+! db2empfa LEDGER@
+DETACH@
diff --git a/sql/DB2-sql-ledger.order b/sql/DB2-sql-ledger.order
new file mode 100755
index 00000000..b52090be
--- /dev/null
+++ b/sql/DB2-sql-ledger.order
@@ -0,0 +1,5 @@
+db2 -td@ -vf DB2-create.sql
+db2 -td@ -vf DB2-set.sql
+db2 -td@ -vf DB2-tables.sql
+db2 -td@ -vf DB2-indices.sql
+db2 -tvf Default-chart.sql
diff --git a/sql/DB2-tables.sql b/sql/DB2-tables.sql
new file mode 100755
index 00000000..3ac77999
--- /dev/null
+++ b/sql/DB2-tables.sql
@@ -0,0 +1,511 @@
+-- DB2-tables.sql
+-- Bill Ott modified from Oracle tables, March 02, 2002
+--
+-- Jim Rawlings modified for use with SL 2.0.8 and DB2 v7.2
+-- and higher August 27, 2003
+--
+--
+---------------------------------------------------------
+-- DDL Statements for sequence id
+---------------------------------------------------------
+CREATE SEQUENCE id AS INTEGER START WITH 10000
+INCREMENT BY 1 MAXVALUE 2147483647 MINVALUE 1 CACHE 5
+@
+---------------------------------------------------------
+-- DDL Statements for table makemodel
+---------------------------------------------------------
+CREATE TABLE makemodel (
+ parts_id INTEGER,
+ name VARCHAR(100)
+) IN LEDGER_TS
+@
+---------------------------------------------------------
+-- DDL Statements for table gl
+---------------------------------------------------------
+CREATE TABLE gl (
+ id INTEGER,
+ reference VARCHAR(50),
+ description VARCHAR(100),
+ transdate DATE WITH DEFAULT current date,
+ employee_id INTEGER,
+ notes VARCHAR(4000)
+) IN LEDGER_TS
+@
+---------------------------------------------------------
+-- DDL Statements for table chart
+---------------------------------------------------------
+CREATE TABLE chart (
+ id INTEGER,
+ accno VARCHAR(20) NOT NULL,
+ description VARCHAR(100),
+ charttype CHAR(1) WITH DEFAULT 'A',
+ category CHAR(1),
+ link VARCHAR(100),
+ gifi_accno VARCHAR(20)
+) IN LEDGER_TS
+@
+---------------------------------------------------------
+-- DDL Statements for table gifi
+---------------------------------------------------------
+CREATE TABLE gifi (
+ accno VARCHAR(20),
+ description VARCHAR(100)
+) IN LEDGER_TS
+@
+---------------------------------------------------------
+-- DDL Statements for table defaults
+---------------------------------------------------------
+CREATE TABLE defaults (
+ inventory_accno_id INTEGER,
+ income_accno_id INTEGER,
+ expense_accno_id INTEGER,
+ fxgain_accno_id INTEGER,
+ fxloss_accno_id INTEGER,
+ invnumber VARCHAR(30),
+ sonumber VARCHAR(30),
+ yearend VARCHAR(5),
+ weightunit VARCHAR(5),
+ businessnumber VARCHAR(30),
+ version VARCHAR(8),
+ curr VARCHAR(500),
+ closedto DATE,
+ revtrans CHAR(1) WITH DEFAULT '0',
+ ponumber VARCHAR(30)
+) IN LEDGER_TS
+@
+INSERT INTO defaults (version) VALUES ('2.0.10')
+@
+---------------------------------------------------------
+-- DDL Statements for table acc_trans
+---------------------------------------------------------
+CREATE TABLE acc_trans (
+ trans_id INTEGER,
+ chart_id INTEGER,
+ amount FLOAT,
+ transdate DATE WITH DEFAULT current date,
+ source VARCHAR(20),
+ cleared CHAR(1) WITH DEFAULT '0',
+ fx_transaction CHAR(1) WITH DEFAULT '0',
+ project_id INTEGER
+) IN LEDGER_TS
+@
+---------------------------------------------------------
+-- DDL Statements for table invoice
+---------------------------------------------------------
+CREATE TABLE invoice (
+ id INTEGER,
+ trans_id INTEGER,
+ parts_id INTEGER,
+ description VARCHAR(4000),
+ qty FLOAT,
+ allocated FLOAT,
+ sellprice FLOAT,
+ fxsellprice FLOAT,
+ discount FLOAT,
+ assemblyitem CHAR(1) WITH DEFAULT '0',
+ unit VARCHAR(5),
+ project_id INTEGER,
+ deliverydate DATE
+) IN LEDGER_TS
+@
+---------------------------------------------------------
+-- DDL Statements for table vendor
+---------------------------------------------------------
+CREATE TABLE vendor (
+ id INTEGER,
+ name VARCHAR(35),
+ addr1 VARCHAR(35),
+ addr2 VARCHAR(35),
+ addr3 VARCHAR(35),
+ addr4 VARCHAR(35),
+ contact VARCHAR(35),
+ phone VARCHAR(20),
+ fax VARCHAR(20),
+ email VARCHAR(50),
+ notes VARCHAR(4000),
+ terms INTEGER WITH DEFAULT,
+ taxincluded CHAR(1),
+ vendornumber VARCHAR(40),
+ cc VARCHAR(50),
+ bcc VARCHAR(50)
+) IN LEDGER_TS
+@
+---------------------------------------------------------
+-- DDL Statements for table customer
+---------------------------------------------------------
+CREATE TABLE customer (
+ id INTEGER,
+ name VARCHAR(35),
+ addr1 VARCHAR(35),
+ addr2 VARCHAR(35),
+ addr3 VARCHAR(35),
+ addr4 VARCHAR(35),
+ contact VARCHAR(35),
+ phone VARCHAR(20),
+ fax VARCHAR(20),
+ email VARCHAR(50),
+ notes VARCHAR(4000),
+ discount FLOAT,
+ taxincluded CHAR(1),
+ creditlimit FLOAT,
+ terms INTEGER WITH DEFAULT,
+ customernumber VARCHAR(40),
+ cc VARCHAR(50),
+ bcc VARCHAR(50)
+) IN LEDGER_TS
+@
+---------------------------------------------------------
+-- DDL Statements for table parts
+---------------------------------------------------------
+CREATE TABLE parts (
+ id INTEGER,
+ partnumber VARCHAR(30),
+ description VARCHAR(4000),
+ unit VARCHAR(5),
+ listprice FLOAT,
+ sellprice FLOAT,
+ lastcost FLOAT,
+ priceupdate DATE WITH DEFAULT current date,
+ weight FLOAT,
+ onhand FLOAT WITH DEFAULT 0,
+ notes VARCHAR(1500),
+ makemodel CHAR(1) WITH DEFAULT '0',
+ assembly CHAR(1) WITH DEFAULT '0',
+ alternate CHAR(1) WITH DEFAULT '0',
+ rop FLOAT,
+ inventory_accno_id INTEGER,
+ income_accno_id INTEGER,
+ expense_accno_id INTEGER,
+ bin VARCHAR(20),
+ obsolete CHAR(1) WITH DEFAULT '0',
+ bom CHAR(1) WITH DEFAULT '0',
+ image VARCHAR(100),
+ drawing VARCHAR(100),
+ microfiche VARCHAR(100),
+ partsgroup_id INTEGER
+) IN LEDGER_TS
+@
+---------------------------------------------------------
+-- DDL Statements for table assembly
+---------------------------------------------------------
+CREATE TABLE assembly (
+ id INTEGER,
+ parts_id INTEGER,
+ qty FLOAT,
+ bom CHAR(1)
+) IN LEDGER_TS
+@
+---------------------------------------------------------
+-- DDL Statements for table ar
+---------------------------------------------------------
+CREATE TABLE ar (
+ id INTEGER,
+ invnumber VARCHAR(30),
+ transdate DATE WITH DEFAULT current date,
+ customer_id INTEGER,
+ taxincluded CHAR(1),
+ amount FLOAT,
+ netamount FLOAT,
+ paid FLOAT,
+ datepaid DATE,
+ duedate DATE,
+ invoice CHAR(1) WITH DEFAULT '0',
+ shippingpoint VARCHAR(100),
+ terms INTEGER WITH DEFAULT 0,
+ notes VARCHAR(4000),
+ curr CHAR(3),
+ ordnumber VARCHAR(30),
+ employee_id INTEGER
+) IN LEDGER_TS
+@
+---------------------------------------------------------
+-- DDL Statements for table ap
+---------------------------------------------------------
+CREATE TABLE ap (
+ id INTEGER,
+ invnumber VARCHAR(30),
+ transdate DATE WITH DEFAULT current date,
+ vendor_id INTEGER,
+ taxincluded CHAR(1) WITH DEFAULT '0',
+ amount FLOAT,
+ netamount FLOAT,
+ paid FLOAT,
+ datepaid DATE,
+ duedate DATE,
+ invoice CHAR(1) WITH DEFAULT '0',
+ ordnumber VARCHAR(30),
+ curr CHAR(3),
+ notes VARCHAR(4000),
+ employee_id INTEGER
+) IN LEDGER_TS
+@
+---------------------------------------------------------
+-- DDL Statements for table partstax
+---------------------------------------------------------
+CREATE TABLE partstax (
+ parts_id INTEGER,
+ chart_id INTEGER
+) IN LEDGER_TS
+@
+---------------------------------------------------------
+-- DDL Statements for table tax
+---------------------------------------------------------
+CREATE TABLE tax (
+ chart_id INTEGER,
+ rate FLOAT,
+ taxnumber VARCHAR(30)
+) IN LEDGER_TS
+@
+---------------------------------------------------------
+-- DDL Statements for table customertax
+---------------------------------------------------------
+CREATE TABLE customertax (
+ customer_id INTEGER,
+ chart_id INTEGER
+) IN LEDGER_TS
+@
+---------------------------------------------------------
+-- DDL Statements for table vendortax
+---------------------------------------------------------
+CREATE TABLE vendortax (
+ vendor_id INTEGER,
+ chart_id INTEGER
+) IN LEDGER_TS
+@
+---------------------------------------------------------
+-- DDL Statements for table oe
+---------------------------------------------------------
+CREATE TABLE oe (
+ id INTEGER,
+ ordnumber VARCHAR(30),
+ transdate DATE WITH DEFAULT current date,
+ vendor_id INTEGER,
+ customer_id INTEGER,
+ amount FLOAT,
+ netamount FLOAT,
+ reqdate DATE,
+ taxincluded CHAR(1),
+ shippingpoint VARCHAR(100),
+ notes VARCHAR(4000),
+ curr CHAR(3),
+ employee_id INTEGER,
+ closed CHAR(1) WITH DEFAULT '0'
+) IN LEDGER_TS
+@
+---------------------------------------------------------
+-- DDL Statements for table orderitems
+---------------------------------------------------------
+CREATE TABLE orderitems (
+ trans_id INTEGER,
+ parts_id INTEGER,
+ description VARCHAR(4000),
+ qty FLOAT,
+ sellprice FLOAT,
+ discount FLOAT,
+ unit VARCHAR(5),
+ project_id INTEGER,
+ reqdate DATE
+) IN LEDGER_TS
+@
+---------------------------------------------------------
+-- DDL Statements for table exchangerate
+---------------------------------------------------------
+CREATE TABLE exchangerate (
+ curr CHAR(3),
+ transdate DATE,
+ buy FLOAT,
+ sell FLOAT
+) IN LEDGER_TS
+@
+---------------------------------------------------------
+-- DDL Statements for table employee
+---------------------------------------------------------
+CREATE TABLE employee (
+ id INTEGER,
+ login VARCHAR(20),
+ name VARCHAR(35),
+ addr1 VARCHAR(35),
+ addr2 VARCHAR(35),
+ addr3 VARCHAR(35),
+ addr4 VARCHAR(35),
+ workphone VARCHAR(20),
+ homephone VARCHAR(20),
+ startdate DATE WITH DEFAULT current date,
+ enddate DATE,
+ notes VARCHAR(4000)
+) IN LEDGER_TS
+@
+---------------------------------------------------------
+-- DDL Statements for table shipto
+---------------------------------------------------------
+CREATE TABLE shipto (
+ trans_id INTEGER,
+ shiptoname VARCHAR(35),
+ shiptoaddr1 VARCHAR(35),
+ shiptoaddr2 VARCHAR(35),
+ shiptoaddr3 VARCHAR(35),
+ shiptoaddr4 VARCHAR(35),
+ shiptocontact VARCHAR(35),
+ shiptophone VARCHAR(20),
+ shiptofax VARCHAR(20),
+ shiptoemail VARCHAR(50)
+) IN LEDGER_TS
+@
+---------------------------------------------------------
+-- DDL Statements for table project
+---------------------------------------------------------
+CREATE TABLE project (
+ id INTEGER,
+ projectnumber VARCHAR(50),
+ description VARCHAR(4000)
+) IN LEDGER_TS
+@
+---------------------------------------------------------
+-- DDL Statements for table partsgroup
+---------------------------------------------------------
+CREATE TABLE partsgroup (
+ id INTEGER,
+ partsgroup VARCHAR(100)
+) IN LEDGER_TS
+@
+---------------------------------------------------------
+--!#
+--!# functions N/A
+--!#
+---------------------------------------------------------
+--!#
+--!# triggers
+--!#
+---------------------------------------------------------
+-- DDL Statements for trigger glid
+---------------------------------------------------------
+CREATE TRIGGER glid
+NO CASCADE BEFORE INSERT ON gl
+REFERENCING NEW AS new_id
+FOR EACH ROW MODE DB2SQL
+BEGIN ATOMIC
+set new_id.id = NEXTVAL FOR id;
+END
+@
+---------------------------------------------------------
+-- DDL Statements for trigger chartid
+---------------------------------------------------------
+CREATE TRIGGER chartid
+NO CASCADE BEFORE INSERT ON chart
+REFERENCING NEW AS new_id
+FOR EACH ROW MODE DB2SQL
+BEGIN ATOMIC
+set new_id.id = NEXTVAL FOR id;
+END
+@
+---------------------------------------------------------
+-- DDL Statements for trigger invoiceid
+---------------------------------------------------------
+CREATE TRIGGER invoiceid
+NO CASCADE BEFORE INSERT ON invoice
+REFERENCING NEW AS new_id
+FOR EACH ROW MODE DB2SQL
+BEGIN ATOMIC
+set new_id.id = NEXTVAL FOR id;
+END
+@
+---------------------------------------------------------
+-- DDL Statements for trigger vendorid
+---------------------------------------------------------
+CREATE TRIGGER vendorid
+NO CASCADE BEFORE INSERT ON vendor
+REFERENCING NEW AS new_id
+FOR EACH ROW MODE DB2SQL
+BEGIN ATOMIC
+set new_id.id = NEXTVAL FOR id;
+END
+@
+---------------------------------------------------------
+-- DDL Statements for trigger customerid
+---------------------------------------------------------
+CREATE TRIGGER customerid
+NO CASCADE BEFORE INSERT ON customer
+REFERENCING NEW AS new_id
+FOR EACH ROW MODE DB2SQL
+BEGIN ATOMIC
+set new_id.id = NEXTVAL FOR id;
+END
+@
+---------------------------------------------------------
+-- DDL Statements for trigger partsid
+---------------------------------------------------------
+CREATE TRIGGER partsid
+NO CASCADE BEFORE INSERT ON parts
+REFERENCING NEW AS new_id
+FOR EACH ROW MODE DB2SQL
+BEGIN ATOMIC
+set new_id.id = NEXTVAL FOR id;
+END
+@
+---------------------------------------------------------
+-- DDL Statements for trigger arid
+---------------------------------------------------------
+CREATE TRIGGER arid
+NO CASCADE BEFORE INSERT ON ar
+REFERENCING NEW AS new_id
+FOR EACH ROW MODE DB2SQL
+BEGIN ATOMIC
+set new_id.id = NEXTVAL FOR id;
+END
+@
+---------------------------------------------------------
+-- DDL Statements for trigger apid
+---------------------------------------------------------
+CREATE TRIGGER apid
+NO CASCADE BEFORE INSERT ON ap
+REFERENCING NEW AS new_id
+FOR EACH ROW MODE DB2SQL
+BEGIN ATOMIC
+set new_id.id = NEXTVAL FOR id;
+END
+@
+---------------------------------------------------------
+-- DDL Statements for trigger oeid
+---------------------------------------------------------
+CREATE TRIGGER oeid
+NO CASCADE BEFORE INSERT ON oe
+REFERENCING NEW AS new_id
+FOR EACH ROW MODE DB2SQL
+BEGIN ATOMIC
+set new_id.id = NEXTVAL FOR id;
+END
+@
+---------------------------------------------------------
+-- DDL Statements for trigger employeeid
+---------------------------------------------------------
+CREATE TRIGGER employeeid
+NO CASCADE BEFORE INSERT ON employee
+REFERENCING NEW AS new_id
+FOR EACH ROW MODE DB2SQL
+BEGIN ATOMIC
+set new_id.id = NEXTVAL FOR id;
+END
+@
+---------------------------------------------------------
+-- DDL Statements for trigger projectid
+---------------------------------------------------------
+CREATE TRIGGER projectid
+NO CASCADE BEFORE INSERT ON project
+REFERENCING NEW AS new_id
+FOR EACH ROW MODE DB2SQL
+BEGIN ATOMIC
+set new_id.id = NEXTVAL FOR id;
+END
+@
+---------------------------------------------------------
+-- DDL Statements for trigger partsgroupid
+---------------------------------------------------------
+CREATE TRIGGER partsgroupid
+NO CASCADE BEFORE INSERT ON partsgroup
+REFERENCING NEW AS new_id
+FOR EACH ROW MODE DB2SQL
+BEGIN ATOMIC
+set new_id.id = NEXTVAL FOR id;
+END@
+
+
diff --git a/sql/Danish_Default-chart.sql b/sql/Danish_Default-chart.sql
new file mode 100755
index 00000000..b7223d8b
--- /dev/null
+++ b/sql/Danish_Default-chart.sql
@@ -0,0 +1,75 @@
+-- Default chart of accounts
+-- sample only
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1000','KORTFRISTEDE AKTIVER','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1061','Bank','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1065','Kasse','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1200','Indbetalinger','A','','A','AR');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1205','Hensættelser til formodet gæld','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1210','Moms indgående','A','','A','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1500','LAGER-AKTIVER','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1520','Lager / udstyr','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1530','Lager / programmel','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1540','Lager / tillægssalg','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1550','Lager / arrangementer','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1800','AKTIVER','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1820','Kontorinventar og -udstyr','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link,contra) values ('1825','Samlede afskrivninger, inventar, udstyr','A','','A','','1');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1840','Køretøjer','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link,contra) values ('1845','Samlede afskrivninger, køretøjer','A','','A','','1');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2000','KORTFRISTET GÆLD','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2100','Udbetalinger','A','','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2160','Selskabsskat','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2190','Afgifter','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2311','Moms udgående','A','','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2600','LANGFRISTET GÆLD','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2620','Banklån','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3300','AKTIEKAPITAL','H','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3350','Almindelige aktier','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3500','EGENKAPITAL','H','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3510','Egenkapital primo','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3600','Årets resultat','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4000','SALGSINDTÆGT','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4020','Salg / udstyr','A','','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4030','Salg / programmel','A','','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4040','Salg / tillægssalg','A','','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4050','Salg / arrangementer','A','','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4300','KONSULENTINDTÆGT','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4320','Konsulentbistand','A','','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4330','Programmering','A','','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4400','ANDEN INDTÆGT','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4440','Renter','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4450','Foreign Exchange Gain','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5000','SALGSOMKOSTNINGER','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5020','Omkostninger / udstyr','A','','E','AP_amount:IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5010','Anskaffelser under 8.000','A','','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5011','Anskaffelser over 8.000','A','','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5030','Omkostninger / programmel','A','','E','AP_amount:IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5040','Omkostninger / tillægssalg','A','','E','AP_amount:IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5050','Omkostninger / arrangementer','A','','E','AP_amount:IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5100','Fragt, post','A','','E','AP_amount:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5400','LØNUDGIFTER','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5410','Lønninger og honorarer','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5420','ATP','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5470','Personalegoder','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5600','GENERELLE & ADMINISTRATIVE UDGIFTER','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5610','Bogføring, revision, advokat','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5615','Marketing','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5620','Dårlige skyldnere','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5660','Afdrag på lån','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5680','A-skat','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5685','Forsikringer','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5690','Renter og bankgebyrer','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5700','Kontorudgifter','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5760','Husleje','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5765','Vedligeholdelse og reparation','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5780','Telefon','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5785','Rejser & repræsentation','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5790','El, vand, varme','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5800','Licenser','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5810','Foreign Exchange Loss','A','','E','');
+--
+insert into tax (chart_id,rate) values ((select id from chart where accno = '1210'),0.25);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '2311'),0.25);
+--
+update defaults set inventory_accno_id = (select id from chart where accno = '1520'), income_accno_id = (select id from chart where accno = '4020'), expense_accno_id = (select id from chart where accno = '5010'), fxgain_accno_id = (select id from chart where accno = '4450'), fxloss_accno_id = (select id from chart where accno = '5810'), curr = 'DKK', weightunit = 'kg';
+--
diff --git a/sql/Default-chart.sql b/sql/Default-chart.sql
new file mode 100755
index 00000000..3d222463
--- /dev/null
+++ b/sql/Default-chart.sql
@@ -0,0 +1,77 @@
+-- Default chart of accounts
+-- sample only
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1000','CURRENT ASSETS','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1060','Checking Account','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1065','Petty Cash','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1200','Accounts Receivables','A','','A','AR');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1205','Allowance for doubtful accounts','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1500','INVENTORY ASSETS','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1520','Inventory / General','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1530','Inventory / Aftermarket Parts','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1800','CAPITAL ASSETS','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1820','Office Furniture & Equipment','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link,contra) values ('1825','Accum. Amort. -Furn. & Equip.','A','','A','','1');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1840','Vehicle','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link,contra) values ('1845','Accum. Amort. -Vehicle','A','','A','','1');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2000','CURRENT LIABILITIES','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2100','Accounts Payable','A','','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2160','Corporate Taxes Payable','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2190','Federal Income Tax Payable','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2210','Workers Comp Payable','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2220','Vacation Pay Payable','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2250','Pension Plan Payable','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2260','Employment Insurance Payable','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2280','Payroll Taxes Payable','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2310','VAT (10%)','A','','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2320','VAT (14%)','A','','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2330','VAT (30%)','A','','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2600','LONG TERM LIABILITIES','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2620','Bank Loans','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2680','Loans from Shareholders','A','','L','AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3300','SHARE CAPITAL','H','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3350','Common Shares','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4000','SALES REVENUE','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4020','Sales / General','A','','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4030','Sales / Aftermarket Parts','A','','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4300','CONSULTING REVENUE','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4320','Consulting','A','','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4400','OTHER REVENUE','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4430','Shipping & Handling','A','','I','IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4440','Interest','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4450','Foreign Exchange Gain','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5000','COST OF GOODS SOLD','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5010','Purchases','A','','E','AP_amount:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5020','COGS / General','A','','E','AP_amount:IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5030','COGS / Aftermarket Parts','A','','E','AP_amount:IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5100','Freight','A','','E','AP_amount:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5400','PAYROLL EXPENSES','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5410','Wages & Salaries','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5420','Employment Insurance Expense','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5430','Pension Plan Expense','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5440','Workers Comp Expense','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5470','Employee Benefits','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5600','GENERAL & ADMINISTRATIVE EXPENSES','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5610','Accounting & Legal','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5615','Advertising & Promotions','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5620','Bad Debts','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5650','Capital Cost Allowance Expense','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5660','Amortization Expense','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5680','Income Taxes','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5685','Insurance','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5690','Interest & Bank Charges','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5700','Office Supplies','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5760','Rent','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5765','Repair & Maintenance','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5780','Telephone','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5785','Travel & Entertainment','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5790','Utilities','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5795','Registrations','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5800','Licenses','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5810','Foreign Exchange Loss','A','','E','');
+--
+insert into tax (chart_id,rate) values ((select id from chart where accno = '2310'),0.1);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '2320'),0.14);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '2330'),0.3);
+--
+update defaults set inventory_accno_id = (select id from chart where accno = '1520'), income_accno_id = (select id from chart where accno = '4020'), expense_accno_id = (select id from chart where accno = '5010'), fxgain_accno_id = (select id from chart where accno = '4450'), fxloss_accno_id = (select id from chart where accno = '5810'), curr = 'USD:CAD:EUR', weightunit = 'kg';
+--
diff --git a/sql/Dutch_Default-chart.sql b/sql/Dutch_Default-chart.sql
new file mode 100755
index 00000000..45659dc9
--- /dev/null
+++ b/sql/Dutch_Default-chart.sql
@@ -0,0 +1,80 @@
+--
+-- Dutch Chart of Accounts
+-- AJ Hettema, Mon, 20 Aug 2001
+--
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1000','HUIDIGE ACTIVA','H','','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1061','Bank','A','','A','AR_paid:AP_paid');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1065','Kas','A','','A','AR_paid:AP_paid');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1200','Debiteuren','A','','A','AR');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1205','Toelage voor precaire rekeningen','A','','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1500','VOORRAAD ACTIVA','H','','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1520','Voorraad / Hardware','A','','A','IC');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1530','Voorraad / Software','A','','A','IC');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1540','Voorraad / Aftermarket Parts','A','','A','IC');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1800','LANGE TERMIJN ACTIVA','H','','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1820','Inventaris','A','','A','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link,contra) VALUES ('1825','Afschrijving inventaris','A','','A','','1');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1840','Auto','A','','A','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link,contra) VALUES ('1845','Afschrijving auto','A','','A','','1');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('2000','HUIDIGE PASSIVA','H','','L','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('2100','Crediteuren','A','','L','AP');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('2160','Niet-rijks Belastingen','A','','L','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('2170','Omzetbelasting','A','','L','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('2190','Vennootschapsbelasting','A','','L','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('2310','BTW hoog','A','','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('2311','BTW laag','A','','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('2600','LANGE TERMIJN PASSIVA','H','','L','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('2620','Bank Leningen','A','','L','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('2680','Aandelenvermogen','A','','L','AP_paid');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('3300','AANDELEN KAPITAAL','H','','Q','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('3350','Aandelen in portefeuille','A','','Q','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('3500','WINSTRESERVE','H','','Q','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('3590','Winstreserve voorgaande jaren','A','','Q','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('3600','Huidige winstreserve','A','','Q','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4000','VERKOOP INKOMSTEN','H','','I','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4020','Verkoop / Hardware','A','','I','AR_amount:IC_sale');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4030','Verkoop / Software','A','','I','AR_amount:IC_sale');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4040','Verkoop / Aftermarket Parts','A','','I','AR_amount:IC_sale');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4300','CONSULTANCY INKOMSTEN','H','','I','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4320','Consultancy','A','','I','AR_amount:IC_income');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4330','Programmeren','A','','I','AR_amount:IC_income');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4400','ANDERE INKOMSTEN','H','','I','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4430','Verzend & Administratie','A','','I','IC_income');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4440','Rente','A','','I','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4450','Foreign Exchange Gain','A','','I','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5000','INKOOPPRIJS VERKOPEN','H','','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5010','Inkoopkosten algemeen','A','','E','AP_amount:IC_cogs:IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5020','Inkoopkosten / Hardware','A','','E','AP_amount:IC_cogs');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5030','Inkoopkosten / Software','A','','E','AP_amount:IC_cogs');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5040','Inkoopkosten / Aftermarket Parts','A','','E','AP_amount:IC_cogs');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5100','Vrachtkosten','A','','E','AP_amount:IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5400','PERSONEELS KOSTEN','H','','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5410','Salarissen','A','','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5420','EI Expense','A','','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5430','CPP Expense','A','','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5440','WCB Expense','A','','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5470','Employee Benefits','A','','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5600','GENERAL & ADMINISTRATIVE EXPENSES','H','','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5610','Boekhouding- & Rechtkosten','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5615','Reclame- & Promotiekosten','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5620','Slechte Schulden','A','','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5660','Afschrijvingskosten','A','','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5680','Inkomsten Belastingen','A','','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5685','Verzekeringen','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5690','Rente & Bankkosten','A','','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5700','Kantoorvoorzieningen','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5760','Huurkosten','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5765','Reparatie- & Onderhoudskosten','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5780','Telefoonkosten','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5781','Internetkosten','A','','E','AP_amount:IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5785','Reis- & Vermaakkosten','A','','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5790','NUTS Kosten','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5795','Registratie''s','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5800','Licenties','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5810','Foreign Exchange Loss','A','','E','');
+--
+insert into tax (chart_id,rate) values ((select id from chart where accno = '2310'),0.19);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '2311'),0.06);
+--
+update defaults set inventory_accno_id = (select id from chart where accno = '1520'), income_accno_id = (select id from chart where accno = '4020'), expense_accno_id = (select id from chart where accno = '5010'), fxgain_accno_id = (select id from chart where accno = '4450'), fxloss_accno_id = (select id from chart where accno = '5810'), curr = 'EUR:USD', weightunit = 'kg';
+--
diff --git a/sql/Dutch_Standard-chart.sql b/sql/Dutch_Standard-chart.sql
new file mode 100755
index 00000000..27de122a
--- /dev/null
+++ b/sql/Dutch_Standard-chart.sql
@@ -0,0 +1,233 @@
+-- Nederlandstalig Rekeningschema conform het Decimaal Stelsel.
+-- Dutch Chart of Accounts following the Decimal Standards as set by the famous Philips Accounting Department
+-- PDF Tammes, Fri, 29 Mar 2002 ( remarks or questions to finance@bermuda-holding.com )
+-- Just delete any accounts not needed after importing the scheme, beats entering all manually (or add -- at the beginning)
+-- Account groups (first number in accountnumber defines to which group it belongs)
+-- 0 : Vaste Activa, Eigen Vermogen, Voorzieningen en lang vreemd vermogen => Fixed Assets, Capital, Accruals and long term loans
+-- 1 : Financiele Rekeningen => Financial Accounts
+-- 2 : Tussenrekeningen => Intermediate Accounts
+-- 3 : Voorraad grond- en hulpstoffen => Stocks (minerals, parts not yet assembled etc)
+-- 4 : Kostenrekeningen => Costs Accounts
+-- 5 : Verdeling Directe kosten => Accounts to recharge several Direct Costs to separate departments
+-- 6 : Fabricagekosten => Assembly Costs
+-- 7 : Voorraad gereed produkt en product in bewerking => Stocks (Trade Articles, half-finished assemblies, projects under construction)
+-- 8 : Rekeningen voor vaststelling van het verkoopresultaat => Accounts for dediding Sales Result
+-- 9 : Rekeningen voor vaststelling van de resultatenrekening => Accounts for dediding Profit & Loss (P/L)
+-- The general idea is to allocate all costs to the 4/5/6 accounts, all stock transactions to 7 and sales related to 8. At the end of the
+-- year you clean out the seperate accounts via x999 and kick the result to the relevant 9xxx series. That way you have a specialized
+-- P/L in the seperate accounts and an overview/shirt version of the P/L in the 9 series, where also various results not related to normal
+-- operations is recorded (tax, donations, that kind of thing. Finally the 9999 account is used to kick the result to retained earnings and
+-- related accounts in the balance sheet, and we are ready for the next year
+--
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0000','Vaste Activa & Eigen Vermogen','H','0000','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0010','Terreinen','A','0010','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0015','Afschrijving Terreinen','A','0015','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0200','Gebouwen','A','0200','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0205','Afschrijving Gebouwen','A','0205','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0230','Inventaris','A','0230','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0235','Afschrijving Inventaris','A','0235','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0240','Computers','A','0240','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0245','Afschrijving Computers','A','0245','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0250','Auto','A','0250','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0255','Afschrijving Auto','A','0255','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0260','Machines','A','0260','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0265','Afschrijving Machines','A','0265','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0290','Goodwill','A','0290','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0295','Afschrijving Goodwill','A','0295','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0370','Overige Leningen u/g','A','0370','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0380','Aandelen & Effecten','A','0380','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0381','Beleggingen Spaarbeleg','A','0381','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0390','Beleggingen Legiolease','A','0390','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0400','Aandelenkapitaal','A','0400','Q','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0410','Aandelen in portefeuille','A','0410','Q','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0420','Aandelen uit te reiken','A','0420','Q','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0430','Agioreserve','A','0430','Q','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0440','Winstreserve','A','0440','Q','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0450','Herwaarderingsreserve','A','0450','Q','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0470','Oprichtingskosten','A','0470','Q','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0480','Winst na belasting lopend jaar','A','0480','Q','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0500','Eigen Vermogen','A','0500','Q','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0510','Prive','A','0510','Q','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0550','Onverdeeld Resultaat','A','0550','Q','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0600','Voorziening Onderhoud','A','0600','Q','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0610','Voorziening Garantie','A','0610','Q','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0620','Voorziening Assurantie','A','0620','Q','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0630','Voorziening Debiteuren','A','0630','Q','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0700','Obligatielening','A','0700','Q','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0710','Obligaties in portefeuille','A','0710','Q','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0720','Converteerbare Obligatielening','A','0720','Q','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0730','Agio op Obligaties','A','0730','Q','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0740','Disagio op Obligaties','A','0740','Q','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0800','Hypothecaire lening o/g','A','0800','L','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1000','Financiele Rekeningen','H','1000','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1001','Kas','A','1001','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1050','Contante Verkopen','A','1050','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1100','Interbank','A','1100','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1110','ABN-AMRO','A','1110','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1119','Postbank Plus','A','1119','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1120','Postbank Giro','A','1120','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1121','Postbank Kapitaal','A','1121','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1122','Postbank Leeuw','A','1122','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1139','Postbank Effectenrekening','A','1139','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1140','Rabobank','A','1140','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1141','Rabobank Rendementrekening','A','1141','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1160','van Lanschotbank','A','1160','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1170','Finansbank','A','1170','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1180','VISA Creditcard','A','1180','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1190','Kruisposten','A','1190','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1200','Debiteuren','A','1200','A','AR');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1205','Dubieuze Debiteuren','A','1205','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1321','Rekening Courant < A','A','1321','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1322','Rekening Courant < B','A','1322','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1340','Goederen ontvangen / GO','A','1340','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1500','Te betalen loonheffing','A','1500','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1520','Te betalen Sociale Lasten','A','1520','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1530','Te betalen Pensioenpremies','A','1530','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1600','Crediteuren','A','1600','L','AP');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1605','Nog te Ontvangen Facturen / NOF','A','1605','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1610','Te betalen tantiemes','A','1610','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1615','Te betalen Vennootschapsbelasting','A','1615','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1620','Interimdividend','A','1620','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1630','Te betalen dividend','A','1630','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1640','Te betalen dividendbelasting','A','1640','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1650','Aandeelhouders nog te storten','A','1650','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1700','Te betalen interest','A','1700','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1710','Te betalen coupons','A','1710','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1770','Uitgelote obligaties','A','1770','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1800','Te vorderen BTW hoog','A','1800','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1801','Te vorderen BTW laag','A','1801','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1810','Te betalen BTW hoog','A','1810','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1811','Te betalen BTW laag','A','1811','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1850','Saldo BTW','A','1850','L','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1941','Rekening Courant > A','A','1941','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1942','Rekening Courant > B','A','1942','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1960','Vooruitbetaalde bedragen','A','1960','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1970','Vooruitontvangen bedragen','A','1970','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1980','Nog te ontvangen bedragen','A','1980','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1990','Nog te betalen bedragen','A','1990','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('2000','Tussenrekeningen','H','2000','L','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('2100','Vraagposten','A','2100','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('2400','Onbekende betalingen','A','2400','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('2800','Tussenrekening Lonen','A','2800','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('2900','Tussenrekening Beginbalans','A','2900','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('3000','Voorraad Grond- en Hulpstoffen','H','3000','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('3010','Voorraad Grondstof A','A','3010','A','IC');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4000','Kostenrekeningen','H','4000','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4001','Verbruik Grondstoffen','A','4001','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4100','Directe Loonkosten','A','4100','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4110','Indirecte Loonkosten','A','4110','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4120','Sociale Lasten','A','4120','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4130','Kosten Pensioenen','A','4130','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4190','Overige Personeelskosten','A','4190','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4200','Kosten externe medewerkers','A','4200','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4210','Kosten Personeelsuitjes','A','4210','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4220','Kantinekosten','A','4220','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4240','Lief en Leedpot externe medewerkers','A','4240','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4300','Afschrijvingskosten Gebouwen','A','4300','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4330','Afschrijvingskosten Inventaris','A','4330','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4340','Afschrijvingskosten Computers','A','4340','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4350','Afschrijvingskosten Autos','A','4350','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4360','Afschrijvingskosten Machines','A','4360','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4390','Afschrijvingskosten Goodwill','A','4390','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4400','Huurkosten','A','4400','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4410','Asurantiekosten','A','4410','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4520','Gas, Licht & Water','A','4520','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4530','Vaste Lasten','A','4530','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4540','Reparatie- & Onderhoudskosten','A','4540','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4560','Verzekering en Beveiliging Pand','A','4560','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4600','Directe Verkoopkosten','A','4600','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4650','Indirecte Verkoopkosten','A','4650','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4730','Relatiegeschenken','A','4730','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4740','Reis en Verblijfkosten','A','4740','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4800','Kasverschillen','A','4800','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4810','Voorraadverschillen','A','4810','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4900','Telefoon & Faxkosten','A','4900','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4910','Contributies & Abonnementen','A','4910','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4920','Verzekeringen Algemeen','A','4920','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4930','Kantoorartikelen','A','4930','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4931','Kantoorbenodigdheden','A','4931','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4932','Vakliteratuur','A','4932','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4940','Licenties & Software','A','4940','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4941','Administratie & Acountantskosten','A','4941','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4943','Notaris & Advocaatkosten','A','4943','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4950','Drukwerk & Papier','A','4950','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4970','Porti','A','4970','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4980','Bankkosten','A','4980','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4981','Bankprovisie Effectenhandel','A','4981','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4990','Overige Algemene Kosten','A','4990','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4991','Bijzondere baten en lasten','A','4991','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4999','Overboekingsrekening Rubriek 4','A','4999','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5000','Verdeling Indirecte Kosten','H','5000','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5400','Indirecte fabricagekosten','A','5400','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5450','Opslag Indirecte fabricagekosten','A','5450','I','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5500','Indirecte verkoopkosten','A','5500','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5550','Opslag Indirecte verkoopkosten','A','5550','I','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5999','Overboekingsrekening Rubriek 5','A','5999','I','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('6000','Fabricagerekeningen','H','6000','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('6001','Verbruik Grondstoffen','A','6001','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('6010','Directe Lonen','A','6010','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('6020','Toeslag Indirecte fabricagekosten','A','6020','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('6101','Standaard Verbruik Grondstoffen','A','6101','I','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('6110','Standaard Directe Lonen','A','6110','I','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('6120','Standaard Toeslag Indirecte fabricagekosten','A','6120','I','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('6999','Overboekingsrekening Rubriek 6','A','6999','I','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('7000','Voorraden gereed product','H','7000','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('7001','Voorraad A','A','7001','A','IC');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('7002','Voorraad B','A','7002','A','IC');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('7003','Voorraad C','A','7003','A','IC');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('7010','Voorraad Incourante goederen','A','7010','A','IC');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('7015','Afschrijving Incourante goederen','A','7015','L','IC');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('7200','Voorraad Goederen in bewerking','A','7200','A','IC');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('7300','Nog te Ontvangen Goederen / NOG','A','7300','A','IC');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('7350','Nog af te leveren goederen','A','7350','L','IC');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('7400','Prijsverschillen bij inkoop','A','7400','I','IC');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('7999','Overboekingsrekening Rubriek 7','A','7999','I','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('8000','Rekeningen tbv Verkoopresultaat','H','8000','I','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('8010','Inkoopkosten algemeen','A','8010','E','AP_amount:IC_cogs:IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('8020','Kostprijs Verkopen A','A','8020','E','AP_amount:IC_cogs');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('8030','Kostprijs Verkopen B','A','8030','E','AP_amount:IC_cogs');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('8040','Kostprijs Verkopen C','A','8040','E','AP_amount:IC_cogs');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('8100','Directe Verkoopkosten','A','8100','E','AP_amount:IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('8150','Toeslag Indirecte Verkoopkosten','E','8150','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('8300','Kortingen bij Verkoop','A','8300','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('8520','Opbrengst Verkopen A','A','8520','I','AR_amount:IC_sale');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('8530','Opbrengst Verkopen B','A','8530','I','AR_amount:IC_sale');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('8540','Opbrengst Verkopen C','A','8540','I','AR_amount:IC_sale');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('8999','Overboekingsrekening Rubriek 8','A','8999','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('9000','Rekeningen tbv Resultatenrekening','H','9000','I','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('9010','Resultaat Indirecte Kosten','A','9010','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('9011','Resultaat Fabricage','A','9011','I','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('9012','Resultaat Verkoop','A','9012','I','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('9015','Resultaat Prijsverschillen','A','9015','I','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('9030','Rente bate deposito','A','9030','I','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('9040','Rente bate lening u/g','A','9040','I','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('9050','Rente bate bank','A','9050','I','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('9080','Rente bate Fiscus','A','9080','I','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('9100','Rente last hypothecaire lening','A','9100','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('9110','Rente last lening bank','A','9110','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('9130','Rente last lening o/g','A','9130','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('9150','Rente last bank','A','9150','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('9180','Rente last Fiscus','A','9180','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('9190','Rente last overig','A','9190','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('9200','Ontvangen Dividend (bruto)','A','9200','I','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('9205','Ingehouden Dividendbelasting','A','9205','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('9210','Koersresultaat Effecten)','A','9210','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('9220','Valutaresultaat','A','9220','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('9300','Huuropbrengsten','A','9300','I','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('9400','Resultaat tgv inhaalafschrijvingen','A','9400','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('9500','Incidentele Resultaten','A','9500','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('9600','Giften en Donaties','A','9600','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('9700','Tantiemes','A','9700','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('9800','Belasting Lopend Jaar','A','9800','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('9810','Belasting Voorgaande Jaren','A','9810','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('9900','Vennootschapsbelasting','A','9900','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('9999','Overboekingsrekening','A','9999','I','');
+--
+--
+insert into tax (chart_id,rate) values ((select id from chart where accno = '1800'),0.19);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '1801'),0.06);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '1810'),0.19);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '1811'),0.06);
+--
+update defaults set inventory_accno_id = (select id from chart where accno = '7001'), income_accno_id = (select id from chart where accno = '8520'), expense_accno_id = (select id from chart where accno = '8010'), fxgain_accno_id = (select id from chart where accno = '9220'), fxloss_accno_id = (select id from chart where accno = '9220'), curr = 'EUR:USD', weightunit = 'kg';
+--
diff --git a/sql/Egypt-UTF8-chart.sql b/sql/Egypt-UTF8-chart.sql
new file mode 100755
index 00000000..101e4d98
--- /dev/null
+++ b/sql/Egypt-UTF8-chart.sql
@@ -0,0 +1,80 @@
+--
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2210','Workers Comp Payable','A','L','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2220','Vacation Pay Payable','A','L','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2250','Pension Plan Payable','A','L','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2260','Employment Insurance Payable','A','L','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5420','Employment Insurance Expense','A','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5430','Pension Plan Expense','A','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5440','Workers Comp Expense','A','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5470','Employee Benefits','A','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5650','Capital Cost Allowance Expense','A','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1060','نقدية بالبنك','A','A','AR_paid:AP_paid','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1065','نقديةبالصندوق','A','A','AR_paid:AP_paid','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1520','مخزون - قطع غيار كمبيوتر','A','A','IC','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1530','مخزون - برامج','A','A','IC','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1540','مخزون - قطع اخرى','A','A','IC','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1840','سيارات','A','A','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1000','الاصول المتداولة','H','A','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1500','المخزون كاصل','H','A','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1800','الاصول الثابتة','H','A','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2000','التزامات قصيرة الاجل','H','L','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2600','التزامات طويلة الاجل','H','L','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno,contra) VALUES ('1845','مخصص اهلاك سيارات','A','A','','','1');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1820','اثاث مكتبى و معدات','A','A','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno,contra) VALUES ('1825','مخصص اهلاك اثاث مكتبى و معدات','A','A','','','1');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2310','ضريبة مبيعات (10%)','A','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2320','ضريبة مبيعات (14%)','A','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2330','ضريبة مبيعات (30%)','A','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1200','عملاء','A','A','AR','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1205','مخصص ديون معدومة','A','A','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2100','موردين','A','L','AP','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2160','ضريبة شركات مستحقة','A','L','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2190','ضريبة دخل مستحقة','A','L','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2620','قروض من البنوك','A','L','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2680','قروض من حملة الاسهم','A','L','AP_paid','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('3300','حقوق الملكية','H','Q','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4020','مبيعات - قطع غيار','A','I','AR_amount:IC_sale','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4030','مبيعات برامج','A','I','AR_amount:IC_sale','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4040','مبيعات اخرى','A','I','AR_amount:IC_sale','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4000','ايراد المبيعات','H','I','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4300','ايراد استشارات','H','I','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4320','استشارات','A','I','AR_amount:IC_income','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4330','برمجة','A','I','AR_amount:IC_income','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4400','ايرادات اخرى','H','I','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4430','شحن و تعبئة','A','I','IC_income','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4440','Ùائدة','A','I','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4450','ارباح تغيير عملة','A','I','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5000','تكلÙØ© البضاعة المباعة','H','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5010','مشتريات','A','E','AP_amount:IC_cogs:IC_expense','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5020','تكلÙØ© البضاعة المباعة - قطع غيار','A','E','AP_amount:IC_cogs','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5030','تكلÙØ© البضاعة المباعة - برامج','A','E','AP_amount:IC_cogs','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5040','تكلÙØ© البضاعة المباعة - اخرى','A','E','AP_amount:IC_cogs','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5100','شحن','A','E','AP_amount:IC_expense','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5400','مصروÙات الاجور','H','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5410','المرتبات','A','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('3350','الاسهم','A','Q','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5600','مصروÙات ادارية Ùˆ عمومية','H','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5610','قانونية و محاسبية','A','E','AP_amount','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5615','دعاية و اعلان','A','E','AP_amount','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5765','اصلاح و صيانة','A','E','AP_amount','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5680','ضريبة دخل','A','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5685','تامين','A','E','AP_amount','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5620','ديون معدومة ','A','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5660','مصاري٠اهلاك','A','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5690','قوائد و مصاري٠بنكية','A','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5700','مهمات مكتبية','A','E','AP_amount','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5780','تلÙون','A','E','AP_amount','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5760','ايجار','A','E','AP_amount','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5785','مصاري٠سÙر','A','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5795','رسوم','A','E','AP_amount','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5800','رخص','A','E','AP_amount','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5810','خسارة تحويل عملة','A','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5790','مراÙÙ‚','A','E','AP_amount','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2280','ضرائب مرتبات مستحقة','A','L','','');
+
+UPDATE defaults SET inventory_accno_id = (SELECT id FROM chart WHERE accno = '1520'), income_accno_id = (SELECT id FROM chart WHERE accno = '4020'), expense_accno_id = (SELECT id FROM chart WHERE accno = '5010'), fxgain_accno_id = (SELECT id FROM chart WHERE accno = '4450'), fxloss_accno_id = (SELECT id FROM chart WHERE accno = '5810'), weightunit = 'kg', curr = 'USD:CAD:EUR';
+
+INSERT INTO tax (chart_id,rate,taxnumber) VALUES ((SELECT id FROM chart WHERE accno = '2310'),'0.1',NULL);
+INSERT INTO tax (chart_id,rate,taxnumber) VALUES ((SELECT id FROM chart WHERE accno = '2320'),'0.14',NULL);
+INSERT INTO tax (chart_id,rate,taxnumber) VALUES ((SELECT id FROM chart WHERE accno = '2330'),'0.3',NULL);
+
diff --git a/sql/France-chart.sql b/sql/France-chart.sql
new file mode 100755
index 00000000..24151270
--- /dev/null
+++ b/sql/France-chart.sql
@@ -0,0 +1,951 @@
+-- Chart of Accounts for France
+-- From: Oscar Buijten <oscar@elbie.com>
+-- Mon, 6 Aug 2001
+--
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('101000', 'CAPITAL', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('101100', 'CAPITAL SOUSCRIT NON APPELE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('101200', 'CAPITAL SOUSCRIT APPELE NON VERSE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('101300', 'CAPITAL SOUSCRIT APPELE VERSE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('101310', 'CAPITAL NON AMORTI', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('101320', 'CAPITAL AMORTI', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('101800', 'CAPITAL SOUSCR. A REGLEM. PART.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('104000', 'PRIMES LIEES AU CAPITAL SOCIAL', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('104100', 'PRIMES D\'EMISSION', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('104200', 'PRIMES DE FUSION', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('104300', 'PRIMES D\'APPORT', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('104400', 'PRIMES CONVERS. OBLIGAT. ACTIONS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('104500', 'BONS DE SOUSCRIPTION D\'ACTION', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('105000', 'ECARTS DE REEVALUATION', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('105100', 'RESERVE SPECIALE DE REEVALUATION', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('105200', 'ECART DE REEVALUATION LIBRE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('105300', 'RESERVE DE REEVALUATION', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('105500', 'ECARTS REEVAL. (AUT. OPER. LEG.)', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('105700', 'AUT. ECARTS REEVAL. EN FRANCE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('105800', 'AUT. ECARTS REEVAL. A L\'ETRANGER', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('106000', 'RESERVES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('106100', 'RESERVE LEGALE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('106110', 'RESERVE LEGALE PROPREMENT DITE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('106120', 'PLUS-VALUES NETTES A LONG TERME', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('106200', 'RESERVES INDISPONIBLES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('106300', 'RESERVES STATUT. OU CONTRACTUELLES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('106400', 'RESERVES REGLEMENTEES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('106410', 'PLUS-VALUES NETTES A LONG TERME', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('106430', 'RESER. CONSEC. OCTROI SUBV. INVEST', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('106480', 'AUTRES RESERVES REGLEMENTEES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('106800', 'AUTRES RESERVES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('106810', 'RESERVE DE PROPRE ASSUREUR', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('106880', 'RESERVES DIVERSES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('107000', 'ECART D\'EQUIVALENCE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('109000', 'ACTIONN. CAPITAL SOUSC. NON APPELE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('110000', 'REPORT A NOUVEAU (SOLDE CREDITEUR)', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('119000', 'REPORT A NOUVEAU (SOLDE DEBITEUR)', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('120000', 'RESULTAT DE L\'EXERCICE (BENEFICE)', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('129000', 'RESULTAT DE L\'EXERCICE (PERTE)', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('131000', 'SUBVENTIONS D\'EQUIPEMENT', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('131100', 'ETAT', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('131200', 'REGIONS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('131300', 'DEPARTEMENTS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('131400', 'COMMUNES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('131500', 'COLLECTIVITES PUBLIQUES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('131600', 'ENTREPRISES PUBLIQUES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('131700', 'ENTREPRISES ET ORGANISMES PRIVES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('131800', 'AUTRES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('138000', 'AUTRES SUBVENTIONS D\'INVESTIS.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('139000', 'SUBV. INVES. INSC. AU CPTE RESULT.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('139100', 'SUBVENTIONS D\'EQUIPEMENT', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('139110', 'ETAT', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('139120', 'REGIONS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('139130', 'DEPARTEMENTS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('139140', 'COMMUNES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('139150', 'COLLECTIVITES PUBLIQUES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('139160', 'ENTREPRISES PUBLIQUES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('139170', 'ENTREPRISES ET ORGANISMES PRIVES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('139180', 'AUTRES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('139800', 'AUTRES SUBVENTIONS D\'INVESTIS.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('142000', 'PROVIS. REGLEM. RELATIV. AUX IMMO.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('142300', 'PROVIS. POUR RECONSTITUTION GIS.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('142400', 'PROVIS. INVESTIS. (PARTIC. SALAR.)', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('143000', 'PROVIS. REGLEMENT. RELATIV. STOCKS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('143100', 'HAUSSE DES PRIX', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('143200', 'FLUCTUATION DES COURS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('144000', 'PROVIS. REGLEM. RELAT. ELEM. ACTIF', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('145000', 'AMORTISSEMENTS DEROGATOIRES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('146000', 'PROVISION SPECIALE DE REEVALUATION', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('147000', 'PLUS-VALUES REINVESTIES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('148000', 'AUTRES PROVISIONS REGLEMENTEES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('151000', 'PROVISIONS POUR RISQUES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('151100', 'PROVISIONS POUR LITIGES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('151200', 'PROV. GARANT. DONNEES AUX CLIENTS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('151300', 'PROV. PERTES SUR MARCHES A TERME.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('151400', 'PROVIS. POUR AMENDES ET PENALITES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('151500', 'PROVIS. POUR PERTES DE CHANGE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('151800', 'AUTRES PROVISIONS POUR RISQUES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('153000', 'PROVIS. PENSIONS ET OBLIG. SIMIL.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('155000', 'PROVISIONS POUR IMPOTS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('156000', 'PROVIS. RENOUV. IMMO (ETS CONCESS)', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('157000', 'PROV. CHARG. A REPART. SUR EXERC.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('157200', 'PROVIS. POUR GROSSES REPARATIONS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('158000', 'AUTRES PROVISIONS POUR CHARGES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('158200', 'PROVIS. CHARG. SOCIA. FISC. SUR CP', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('161000', 'EMPRUNTS OBLIGATOIRES CONVERTIBLES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('163000', 'AUTRES EMPRUNTS OBLIGATAIRES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('164000', 'EMPRUNTS AUPRES ETABLIS. DE CREDIT', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('165000', 'DEPOTS ET CAUTIONNEMENTS RECUS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('165100', 'DEPOTS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('165500', 'CAUTIONNEMENTS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('166000', 'PARTICIP. SALARIES AUX RESULTAS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('166100', 'COMPTES BLOQUES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('166200', 'FONDS DE PARTICIPATION', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('167000', 'EMPR. DETTES ASSORT. CONDIT. PART.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('167100', 'EMISSION DE TITRES PARTICIPATIFS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('167400', 'AVANCES CONDITIONNEES DE L\'ETAT', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('167500', 'EMPRUNTS PARTICIPATIFS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('168000', 'AUTRES EMPR. ET DETTES ASSIMILEES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('168100', 'AUTRES EMPRUNTS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('168500', 'RENTES VIAGERES CAPITALISEES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('168700', 'AUTRES DETTES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('168800', 'INTERETS COURUS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('168810', 'SUR EMPR. OBLIGATAIR. CONVERTIBLES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('168830', 'SUR AUTRES EMPRUNTS OBLIGATAIRES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('168840', 'SUR EMPRUNTS AUPRES ETABLI. CREDIT', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('168850', 'SUR DEPOTS ET CAUTIONNEMENTS RECUS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('168860', 'SUR PARTICIP. SALAR. RESULTATS ETS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('168870', 'SUR EMPR. DETTES ASSOR. COND. PART', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('168880', 'SUR AUTRES EMPR. DETTES ASSIMILEES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('169000', 'PRIMES REMBOURSEMENT OBLIGATIONS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('171000', 'DETTES RATTACH. A PARTIC. (GROUPE)', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('174000', 'DETTES RATT. A PART. (HORS GROUPE)', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('178000', 'DETTES RATTACH. A STES EN PARTIC.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('178100', 'PRINCIPAL', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('178800', 'INTERETS COURUS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('181000', 'COMPTE DE LIAISON ETABLISSEMENTS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('186000', 'BIENS PREST. SERV. ECH. (CHARGES)', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('187000', 'BIENS PREST. SERV. ECH. (PRODUITS)', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('188000', 'COMPTES DE LIAISON STES EN PARTIC.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('201100', 'FRAIS DE CONSTITUTION', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('201200', 'FRAIS DE PREMIER ETABLISSEMENT', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('201210', 'FRAIS DE PROSPECTION', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('201220', 'FRAIS DE PUBLICITE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('201300', 'FRAIS AUGMEN. CAPIT. OPER. DIVERS.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('203000', 'FRAIS RECHERCHE ET DEVELOPPEMENT', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('205000', 'CONCESSIONS ET DROITS SIMILAIRES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('206000', 'DROIT AU BAIL', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('207000', 'FONDS COMMERCIAL', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('208000', 'AUTRES IMMOBILISATIONS INCORPOR.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('211000', 'TERRAINS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('211100', 'TERRAINS NUS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('211200', 'TERRAINS AMENAGES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('211300', 'SOUS-SOLS ET SUR-SOLS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('211400', 'TERRAINS DE GISEMENT', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('211410', 'CARRIERES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('211500', 'TERRAINS BATIS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('211510', 'ENSEMBLES IMMOBILIERS INDUSTRIELS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('211550', 'ENSEMBLES IMMOB. ADM. ET COMMERC.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('211580', 'AUTRES ENSEMBLES IMMOBILIERS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('211581', 'AFFECTES AUX OPERAT. PROFESSION.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('211588', 'AFFECTES AUX OPERAT. NON PROF.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('211600', 'COMPTE D\'ORDRE SUR IMMOBILISATIONS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('212000', 'AGENCEMENTS AMENAGEMENTS TERRAINS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('213000', 'CONSTRUCTIONS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('213100', 'BATIMENTS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('213110', 'ENSEMBLES IMMOB. INDUSTRIELS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('213150', 'ENSEMBLES IMMOB. ADM. ET COMMERC.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('213180', 'AUTRES ENSEMBLES IMMOBILIERS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('213181', 'AFFECTES AUX OPERAT. PROFESSION.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('213188', 'AFFECTES AUX OPERAT. NON PROF.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('213500', 'INSTALLATIONS GENERALES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('213800', 'OUVRAGES D\'INFRASTRUCTURE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('213810', 'VOIES DE TERRE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('213820', 'VOIES DE FER', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('213830', 'VOIES D\'EAU', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('213840', 'BARRAGES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('213850', 'PISTES D\'AERODROMES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('214000', 'CONSTRUCTIONS SUR SOL D\'AUTRUI', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('215000', 'INSTALL. TECH. MAT. OUTIL. INDUS.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('215100', 'INSTALL. COMPLEXES SPECIALISEES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('215110', 'SUR SOL PROPRE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('215140', 'SUR SOL D\'AUTRUI', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('215300', 'INSTALL. A CARACTERE SPECIFIQUE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('215310', 'SUR SOL PROPRE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('215340', 'SUR SOL D\'AUTRUI', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('215400', 'MATERIEL INDUSTRIEL', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('215500', 'OUTILLAGE INDUSTRIEL', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('215700', 'AGENCEM. AMENAG. MAT. OUTIL. INDUS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('218000', 'AUTRES IMMOBILISATIONS CORPORELLES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('218100', 'INSTALL. GENE. AGENC. AMENAG. DIV.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('218200', 'MATERIEL DE TRANSPORT', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('218300', 'MATERIEL DE BUREAU ET INFORMATIQUE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('218400', 'MOBILIER', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('218500', 'CHEPTEL', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('218600', 'EMBALLAGES RECUPERABLES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('231000', 'IMMOBILISAT. CORPORELLES EN COURS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('231200', 'TERRAINS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('231300', 'CONSTRUCTIONS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('231500', 'INSTALL. TECH. MAT. OUTIL. INDUST.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('231800', 'AUTRES IMMOBILISATIONS CORPORELLES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('232000', 'IMMO. INCORPORELLES EN COURS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('237000', 'AVANC. ACOMPT. VERSES SUR IMM. INC', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('238000', 'AVANC. ACOMP. VERSES CDES IMM. COR', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('238200', 'TERRAINS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('238300', 'CONSTRUCTIONS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('238500', 'INSTALL. TECH. MAT. OUTIL. INDUST.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('238800', 'AUTRES IMMOBILISATIONS CORPORELLES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('261000', 'TITRES DE PARTICIPATION', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('261100', 'ACTIONS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('261800', 'AUTRES TITRES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('266000', 'AUTRES FORMES DE PARTICIPATION', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('267000', 'CREANCES RATTACHEES A PARTICIPAT.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('267100', 'CREANCES RATT. A PART. (GROUPE)', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('267400', 'CREANC. RATT. PART. (HORS GROUPE)', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('267500', 'VERSEM. D\'APPORTS NON CAPITALISES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('267600', 'AVANCES CONSOLIDABLES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('267700', 'AUTRES CREANCES RATT. A PART.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('267800', 'INTERETS COURUS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('268000', 'CREANCES RATT. A STE EN PART.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('268100', 'PRINCIPAL', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('268800', 'INTERETS COURUS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('269000', 'VERS. REST. A EFFECT. SUR T.P.N.L.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('271000', 'TITRES IMMOBILISES (DROIT PROP.)', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('271100', 'ACTIONS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('271800', 'AUTRES TITRES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('272000', 'TITRES IMMOBILISES (DROIT CREANCE)', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('272100', 'OBLIGATIONS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('272200', 'BONS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('273000', 'TITRES IMMOBILISES DE L\'ACT. DE PORTEF.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('274000', 'PRETS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('274100', 'PRETS PARTICIPATIFS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('274200', 'PRETS AUX ASSOCIES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('274300', 'PRETS AU PERSONNEL', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('274800', 'AUTRES PRETS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('275000', 'DEPOTS ET CAUTIONNEMENTS VERSES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('275100', 'DEPOTS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('275500', 'CAUTIONNEMENTS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('276000', 'AUTRES CREANCES IMMOBILISEES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('276100', 'CREANCES DIVERSES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('276800', 'INTERETS COURUS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('276820', 'SUR TITRES IMMOB. (DROIT CREANCE)', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('276840', 'SUR PRETS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('276850', 'SUR DEPOTS ET CAUTIONNEMENTS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('276880', 'SUR CREANCES DIVERSES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('277100', 'ACTIONS PROPRES OU PARTS PROPRES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('277200', 'ACT. PRO. OU PARTS PRO. VOIE D\'ANNUL.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('279000', 'VERSEM. A EFFECT. SUR T.I.N.L.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('280000', 'AMORTISS. IMMOBILISATIONS INCORP.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('280100', 'FRAIS D\'ETABLISSEMENT', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('280300', 'FRAIS DE RECHERCHE ET DEVELOPP.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('280500', 'CONCESSIONS ET DROITS SIMILAIRES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('280700', 'FONDS COMMERCIAL', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('280800', 'AUTRES IMMOBILISATIONS INCORPOR.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('281000', 'AMORTISS. IMMOBILISATIONS CORPOR.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('281100', 'TERRAINS DE GISEMENT', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('281200', 'AGENCEMENTS AMENAGEMENTS TERRAINS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('281300', 'CONSTRUCTIONS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('281400', 'CONSTRUCTIONS SUR SOL D\'AUTRUI', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('281500', 'INSTALL TECH. MAT. OUTIL. INDUST.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('281800', 'AUTRES IMMOBILISATIONS CORPORELLES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('282000', 'AMORTISS. IMMOBIL. EN CONCESSION', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('290000', 'PROVIS. DEPRECIATION IMMOB. INCORP', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('290500', 'MARQUES PROCEDES DROITS ET VALEURS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('290600', 'DROIT AU BAIL', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('290700', 'FONDS COMMERCIAL', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('290800', 'AUTRES IMMOB. INCORPORELLES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('291000', 'PROVIS. DEPRECIATION IMMOB. CORPOR', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('291100', 'TERRAINS (AUTRES QUE GISEMENT)', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('292000', 'PROVIS. DEPRECIAT. IMMOB. CONCESS.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('293000', 'PROVIS. DEPRECIAT. IMMOB. EN COURS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('293100', 'IMMOBILISATIONS CORPOR. EN COURS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('293200', 'IMMO. INCORPORELLES EN COURS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('296000', 'PROV. DEPREC. PART ET CREANC. PART', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('296100', 'TITRES DE PARTICIPATION', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('296600', 'AUTRES FORMES DE PARTICIPATION', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('296700', 'CREANCES RATT. A PARTICIPATION', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('296800', 'CREANCES RATT. A STE EN PARTICIP.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('297000', 'PROVIS. DEPRECIATION AUTRES IMMOB.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('297100', 'TITRES IMMOBILISES DROIT PROPRIETE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('297200', 'TITRES IMMOBILISES DROIT CREANCE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('297300', 'TITRES IMMO. DE L\'ACT. DE PORTEF.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('297400', 'PRETS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('297500', 'DEPOTS ET CAUTIONNEMENTS VERSES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('297600', 'AUTRES CREANCES IMMOBILISEES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('311000', 'MATIERE (OU GROUPE) A', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('312000', 'MATIERE (OU GROUPE) B', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('317000', 'FOURNITURES A, B, C...', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('321000', 'MATIERES CONSOMMABLES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('321100', 'MATIERE (OU GROUPE) C', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('321200', 'MATIERE (OU GROUPE) D', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('322000', 'FOURNITURES CONSOMMABLES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('322100', 'COMBUSTIBLES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('322200', 'PRODUITS D\'ENTRETIEN', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('322300', 'FOURNITURES D\'ATELIER ET D\'USINE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('322400', 'FOURNITURES DE MAGASIN', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('322500', 'FOURNITURES DE BUREAU', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('326000', 'EMBALLAGES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('326100', 'EMBALLAGES PERDUS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('326500', 'EMBAL. RECUPER. NON IDENTIFIABLES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('326700', 'EMBALLAGES A USAGE MIXTE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('331000', 'PRODUITS EN COURS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('331100', 'PRODUITS EN COURS P1', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('331200', 'PRODUITS EN COURS P2', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('335000', 'TRAVAUX EN COURS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('335100', 'TRAVAUX EN COURS T1', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('335200', 'TRAVAUX EN COURS T2', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('341000', 'ETUDES EN COURS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('341100', 'ETUDE EN COURS E1', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('341200', 'ETUDE EN COURS E2', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('345000', 'PRESTATIONS DE SERVICES EN COURS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('345100', 'PRESTATION DE SERVICES S1', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('345200', 'PRESTATION DE SERVICES S2', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('351000', 'PRODUITS INTERMEDIAIRES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('351100', 'PRODUIT INTERMEDIAIRE (OU GRPE) A', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('351200', 'PRODUIT INTERMEDIAIRE (OU GRPE) B', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('355000', 'PRODUITS FINIS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('355100', 'PRODUIT FINI (OU GROUPE) A', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('355200', 'PRODUIT FINI (OU GROUPE) B', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('358000', 'PROD. RESIDUELS (OU MAT. RECUP.)', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('358100', 'DECHETS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('358500', 'REBUTS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('358600', 'MATIERES DE RECUPERATION', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('371000', 'MARCHANDISE (OU GROUPE) A', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('372000', 'MARCHANDISE (OU GROUPE) B', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('391000', 'PROVIS. POUR DEPRECIAT. MAT. PREM.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('391100', 'MATIERE (OU GROUPE) A', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('391200', 'MATIERE (OU GROUPE) B', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('391700', 'FOURNITURE A, B, C...', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('392000', 'PROVIS. POUR DEPRECIAT. AUT. APPRO', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('392100', 'MATIERES CONSOMMABLES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('392200', 'FOURNITURES CONSOMMABLES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('392600', 'EMBALLAGES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('393000', 'PROV. DEPREC. EN-COURS PROD. BIENS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('393100', 'PRODUITS EN COURS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('393500', 'TRAVAUX EN COURS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('394000', 'PROV. DEPREC. EN-COURS PROD. SERV.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('394100', 'ETUDES EN COURS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('394500', 'PRESTATIONS DE SERVICES EN COURS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('395000', 'PROV. POUR DEPREC. STOCKS DE PROD.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('395100', 'PRODUITS INTERMEDIAIRES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('395500', 'PRODUITS FINIS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('397000', 'PROV. POUR DEPREC. STOCKS MARCHAN.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('397100', 'MARCHANDISE OU GROUPE A', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('397200', 'MARCHANDISE OU GROUPE B', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('401000', 'FOURNISSEURS DIVERS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('403000', 'FOURNISSEURS - EFFETS A PAYER', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('404000', 'FOURNISSEURS D\'IMMOBILISATIONS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('404100', 'FOURNISSEURS ACHATS D\'IMMOBILISAT.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('404700', 'FOURNIS. D\'IMMOB. RETENUES DE GAR.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('405000', 'FOURNIS. D\'IMMOB. EFFETS A PAYER', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('408000', 'FOURNIS. FACTURES NON PARVENUES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('408100', 'FOURNISSEURS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('408400', 'FOURNISSEURS D\'IMMOBILISATIONS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('408800', 'FOURNISSEURS INTERETS COURUS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('409000', 'FOURNISSEURS DEBITEURS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('409100', 'FOURNIS. AVANC. & ACOMPT. SUR CDES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('409600', 'FOURN. CREAN. EMB. & MAT. A RENDRE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('409700', 'FOURNISSEURS AUTRES AVOIRS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('409710', 'FOURNISSEURS D\'EXPLOITATION', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('409740', 'FOURNISSEURS D\'IMMOBILISATIONS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('409800', 'RABAIS REMISES RISTOUR. A OBTENIR', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('410000', 'CLIENTS ET COMPTES RATTACHES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('411000', 'CLIENTS DIVERS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('413000', 'CLIENTS EFFETS A RECEVOIR', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('416000', 'CLIENTS DOUTEUX OU LITIGIEUX', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('417000', 'CREANC. SUR TRAV. NON ENCORE FACT.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('418000', 'CLIENTS PRODUITS NON ENCORE FACT.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('418100', 'CLIENTS FACTURES A ETABLIR', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('418800', 'CLIENTS INTERETS COURUS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('419000', 'CLIENTS CREDITEURS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('419100', 'CLTS AVANC. & ACOMP. RECUS SUR CDE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('419600', 'CLTS DETT. POUR EMB. & MAT. CONSIG', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('419700', 'CLIENTS - AUTRES AVOIRS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('419800', 'RABAIS REMISES RIST. A ACCORDER', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('421000', 'PERSONNEL REMUNERATIONS DUES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('422000', 'COMITES D\'ENTREPRISE, D\'ETABLIS.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('424000', 'PARTICIP. DES SALAR. AUX RESULTATS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('424600', 'RESERVE SPECIALE (ART L442.2)', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('424800', 'COMPTES COURANTS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('425000', 'PERSONNEL AVANCES ET ACOMPTES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('426000', 'PERSONNEL DEPOTS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('427000', 'PERSONNEL OPPOSITIONS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('428000', 'PERS. CHARG. A PAY. & PROD. A REC.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('428200', 'DETTES PROVISIO. POUR CONGES PAYES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('428400', 'DETT. PROV. PART. SAL. AUX RESULT.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('428600', 'AUTRES CHARGES A PAYER', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('428700', 'PRODUITS A RECEVOIR', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('438000', 'ORG. SOC. CHARG. A PAY. & PROD.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('438200', 'CHARGES SOCIALES SUR CONGES PAYES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('438700', 'PRODUITS A RECEVOIR', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('441000', 'ETATS SUBVENTIONS A RECEVOIR', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('441100', 'SUBVENTIONS D\'INVESTISSEMENT', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('441700', 'SUBVENTIONS D\'EXPLOITATION', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('441800', 'SUBVENTIONS D\'EQUILIBRE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('441900', 'AVANCES SUR SUBVENTIONS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('442000', 'ETAT IMP. & TAX. RECOUV. SUR TIERS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('442400', 'OBLIGATAIRES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('442500', 'ASSOCIES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('443000', 'OPERATIONS PART. AVEC L\'ETAT,...', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('443100', 'CREANCES ETAT SUPPR. DECAL. TVA', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('443800', 'INTERES COURUS CREANCES CPTE 443100', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('444000', 'ETAT IMPOTS SUR LES BENEFICES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('444500', 'ETAT TAXES SUR LE CHIFFRE D\'AFF.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('445200', 'TVA DUE INTRACOMMUNAUTAIRE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('445510', 'TVA A DECAISSER', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('445580', 'TAXES ASSIMILEES A TVA', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('445600', 'TAXES SUR LE CA DEDUCTIBLES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('445621', 'TVA SUR IMMO. 5.5%', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('445622', 'TVA SUR IMMO. 20.6%', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('445623', 'TVA SUR IMMO. 19.6%', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('445630', 'TVA TRANSFEREE PAR D\'AUTRES ETS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('445662', 'TVA DEDUCTIBLE 20.6%', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('445670', 'CREDIT DE TVA A REPORTER', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('445680', 'TAXES ASSIMILEES A LA TVA', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('445700', 'TAXE SUR LE C.A. COLLECT. ENTREPR.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('445712', 'TVA COLLECTEE 20.6%', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('445800', 'TAXES SUR CA A REGULAR. OU EN ATT.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('445810', 'ACOMPTES REGIME SIMPLIFIE D\'IMPOS.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('445820', 'ACOMPTES REGIME DU FORFAIT', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('445830', 'REMBOURS. TAXES SUR CA DEMANDE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('445840', 'TVA RECUPEREE D\'AVANCE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('445861', 'TVA EN ATTENTE DEDUCTIBLE 5.5%', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('445862', 'TVA EN ATTENTE DEDUCTIBLE 20.6%', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('445863', 'TVA EN ATTENTE DEDUCTIBLE 19.6%', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('445871', 'TVA EN ATTENTE COLLECTEE 5.5%', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('445872', 'TVA EN ATTENTE COLLECTEE 20.6%', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('445873', 'TVA EN ATTENTE COLLECTEE 19.6%', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('446000', 'TITRES SUR TVA', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('446100', 'OBLIGATIONS CAUTIONNEES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('446900', 'CREANCE TVA DECALAGE D\'UN MOIS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('447000', 'AUTRES IMPOTS, TAX. ET VERS. ASSIM', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('448000', 'ETAT CHARG. A PAY. & PROD. A RECEV', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('448200', 'CHARGES FISCALES SUR CONG. A PAYER', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('448600', 'AUTRES CHARGES A PAYER', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('448700', 'PRODUITS A RECEVOIR', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('451000', 'GROUPE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('455000', 'ASSOCIES COMPTES COURANTS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('455100', 'PRINCIPAL', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('455780', 'TAXES ASSIMILEES A LA TVA', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('455800', 'INTERETS COURUS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('456000', 'ASSOCIES OPERATIONS SUR LE CAPITAL', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('456100', 'ASSOCIES COMPTES D\'APPORT EN STE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('456110', 'APPORTS EN NATURE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('456150', 'APPORTS EN NUMERAIRE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('456200', 'APPORTEURS CAPIT. APPELE NON VERSE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('456210', 'ACTION. CAP. SOUSC. APP. NON VERSE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('456250', 'ASSOCIES CAPITAL APPELE NON VERSE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('456300', 'ASSOC. VERS. RECUS SUR AUGM. CAPIT', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('456400', 'ASSOCIES VERSEMENTS ANTICIPES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('456600', 'ACTIONNAIRES DEFAILLANTS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('456700', 'ASSOCIES CAPITAL A REMBOURSER', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('457000', 'ASSOCIES DIVIDENDES A PAYER', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('458000', 'ASSOC. OPERAT. EN COMMUN ET EN GIE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('458100', 'OPERATIONS COURANTES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('458800', 'INTERETS COURUS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('462000', 'CREANCES SUR CESSIONS D\'IMMOBILIS.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('464000', 'DETTES SUR ACQUIS. VALEURS MOBI.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('465000', 'CREANC. SUR CESSIONS VALEURS MOB.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('467000', 'AUTRES COMPTES DEBIT. OU CREDIT.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('467200', 'DEBOURS PAYES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('468000', 'DIVERS CHARG. A PAY. & PROD. A REC', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('468600', 'CHARGES A PAYER', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('468700', 'PRODUITS A RECEVOIR', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('471000', 'COMPTES D\'ATTENTE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('471100', 'REIMPUTATION', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('476000', 'DIFFERENCES DE CONVERSION ACTIF', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('476100', 'DIMINUTION DES CREANCES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('476200', 'AUGMENTATION DES DETTES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('476800', 'DIFFER. COMPENS. PAR COUV. CHANGE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('477000', 'DIFFERENCES DE CONVERSION PASSIF', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('477100', 'AUGMENTATION DES CREANCES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('477200', 'DIMINUTION DES DETTES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('477800', 'DIFFER. COMPENS. PAR COUV. CHANGE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('478000', 'AUTRES COMPTES TRANSITOIRES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('481000', 'CHARG. A REPART. SUR PLUS. EXERC.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('481100', 'CHARGES DIFFEREES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('481200', 'FRAIS D\'ACQUISITION DES IMMOBILIS.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('481600', 'FRAIS D\'EMISSION DES EMPRUNTS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('481800', 'CHARGES A ETALER', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('486000', 'CHARGES CONSTATEES D\'AVANCE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('487000', 'PRODUITS CONSTATES D\'AVANCE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('488000', 'CPTES REPART. PERIO. CHARG. & PROD', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('488600', 'CHARGES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('488700', 'PRODUITS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('491000', 'PROVIS. POUR DEPREC. CPTES CLIENTS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('495000', 'PROV. POUR DEPREC. CPTES GRPE ASS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('495100', 'COMPTES DU GROUPE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('495500', 'COMPTES COURANTS DES ASSOCIES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('495800', 'OPERAT. FAITES EN COMMUN & EN GIE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('496000', 'PROVIS. POUR DEPREC. CPTES DEBIT.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('496200', 'CREANCES SUR CESSIONS D\'IMMOBILIS.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('496500', 'CREANC. SUR CESSIONS VALEURS MOB.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('496700', 'AUTRES COMPTES DEBITEURS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('501000', 'PARTS DANS DES ENTREPRISES LIEES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('502000', 'ACTIONS PROPRES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('503000', 'ACTIONS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('503100', 'TITRES COTES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('503500', 'TITRES NON COTES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('504000', 'AUTRES TITRES CONFERANT DROIT PROP', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('505000', 'OBLIG. & BONS EMIS PAR LA SOCIETE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('506000', 'OBLIGATIONS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('506100', 'TITRES COTES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('506500', 'TITRES NON COTES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('507000', 'BONS TRESOR & BONS CAISSE A CT', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('508000', 'AUTRES VALEURS MOB. ET CREANC. ASS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('508100', 'AUTRES VALEURS MOBILIERES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('508200', 'BONS DE SOUSCRIPTION', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('508800', 'INTER. COURUS SUR OBLIGATIONS BONS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('509000', 'VERS. A EFFECT. SUR VALEURS MOBIL.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('511000', 'VALEURS A L\'ENCAISSEMENT', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('511100', 'COUPONS ECHUS A L\'ENCAISSEMENT', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('511200', 'CHEQUES A ENCAISSER', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('511300', 'EFFETS A L\'ENCAISSEMENT', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('511400', 'EFFETS A L\'ESCOMPTE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('512100', 'COMPTES EN MONNAIE NATIONALE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('512400', 'COMPTES EN DEVISES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('514000', 'CHEQUES POSTAUX', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('515000', 'CAISSES DU TRESOR ET ETS PUBLICS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('516000', 'SOCIETE DE BOURSE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('517000', 'AUTRES ORGANISMES FINANCIERS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('518000', 'INTERETS EN COURS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('518600', 'INTERETS COURUS A PAYER', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('518700', 'INTERETS COURUS A RECEVOIR', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('519000', 'CONCOURS BANCAIRES COURANTS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('519100', 'CREDIT MOBIL. CREANC. CCIALES CMCC', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('519300', 'MOBIL. CREANCES NEES A L\'ETRANGER', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('519800', 'INT. COURUS SUR CONCOURS BANCAIRES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('520000', 'INSTRUMENTS DE TRESORERIE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('531000', 'CAISSE SIEGE SOCIAL', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('531100', 'CAISSE EN MONNAIE NATIONALE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('531400', 'CAISSE EN DEVISES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('532000', 'CAISSE SUCCURSALE (OU USINE) A', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('533000', 'CAISSE SUCCURSALE (OU USINE) B', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('580100', 'VIREMENT DE TRESORERIE A TRESORERIE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('590000', 'PROVIS. POUR DEPREC. VALEURS MOB.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('590300', 'ACTIONS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('590400', 'AUTRES TIT. CONFERANT DROIT PROP.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('590600', 'OBLIGATIONS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('590800', 'AUTRES VALEURS MOB. & CREANC. ASS.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('601100', 'MATIERE (OU GROUPE) A', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('601200', 'MATIERE (OU GROUPE) B', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('601700', 'FOURNITURES A, B, C...', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('602000', 'ACHATS STOCKES AUTRES APPROV.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('602100', 'MATIERES CONSOMMABLES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('602110', 'MATIERE (OU GROUPE) C', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('602120', 'MATIERE (OU GROUPE) D', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('602200', 'FOURNITURES CONSOMMABLES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('602210', 'COMBUSTIBLES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('602220', 'PRODUITS D\'ENTRETIEN', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('602230', 'FOURNITURES D\'ATELIER / USINES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('602240', 'FOURNITURES DE MAGASINS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('602250', 'FOURNITURES DE BUREAU', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('602600', 'EMBALLAGES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('602610', 'EMBALLAGES PERDUS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('602650', 'EMBALL. RECUPERA. NON IDENTIF.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('602670', 'EMBALLAGES A USAGE MIXTE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('603000', 'VARIATION DES STOCKS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('603100', 'VARIAT. STOCKS MAT. PREM. ET FOURN', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('603200', 'VARIAT. STOCKS AUTRES APPROVISION.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('603700', 'VARIATION STOCKS DE MARCHANDISES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('604000', 'ACHATS ETUDES ET PRESTAT. SERVICES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('605000', 'ACHATS MATERIEL EQUIPEM. TRAVAUX', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('606000', 'ACHATS NON STOCKES DE MAT. PREM.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('606400', 'FOURNITURES ADMINISTRATIVES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('606500', 'ACHATS SPECIAUX', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('606800', 'AUTRES MATIERES ET FOURNITURES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('607100', 'MARCHANDISE (OU GROUPE) A', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('607200', 'MARCHANDISE (OU GROUPE) B', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('608000', 'FRAIS ACCESSOIRES D\'ACHAT', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('609000', 'RABAIS REMISES RIST. SUR ACHATS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('609100', 'DE MATIERES PREMIERES (ET FOURN.)', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('609200', 'D\'AUTRES APPROVISIONN. STOCKES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('609500', 'DE MATERIEL EQUIPEMENTS DE TRAVAUX', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('609600', 'D\'APPROVISIONNEMENTS NON STOCKES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('609700', 'DE MARCHANDISES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('609800', 'RABAIS REMISES RIST. NON AFFECTES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('612000', 'REDEVANCES DE CREDIT-BAIL', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('612200', 'CREDIT-BAIL MOBILIER', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('612500', 'CREDIT-BAIL IMMOBILIER', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('613000', 'LOCATIONS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('613600', 'MALIS SUR EMBALLAGES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('614000', 'CHARGES LOCATIVES & DE COPROPRIETE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('615200', 'SUR BIENS IMMOBILIERS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('615500', 'SUR BIENS MOBILIERS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('615600', 'MAINTENANCE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('616100', 'MULTIRISQUES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('616200', 'ASSUR. OBLIGAT. DOMMAGE-CONSTRUCT.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('616300', 'ASSURANCE-TRANSPORT', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('616360', 'SUR ACHATS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('616370', 'SUR VENTES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('616380', 'SUR AUTRES BIENS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('616400', 'RISQUES D\'EXPLOITATION', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('616500', 'INSOLVABILITE CLIENTS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('618000', 'DIVERS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('618100', 'DOCUMENTATION GENERALE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('618500', 'FRAIS DE COLLOQUES, SEMIN., CONFER', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('619000', 'RABAIS REMISES RIST. SUR SERV. EXT', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('621000', 'PERSONNEL EXTERIEUR A L\'ENTREPRISE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('621400', 'PERSONNEL DETACHE OU PRETE A L\'ETS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('622000', 'REMUNERAT. D\'INTERM. ET HONORAIRES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('622100', 'COMMISSIONS & COURTAGES SUR ACHATS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('622200', 'COMMISSIONS & COURTAGES SUR VENTES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('622400', 'REMUNERATIONS DES TRANSITAIRES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('622500', 'REMUNERATIONS D\'AFFACTURAGE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('622800', 'DIVERS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('623000', 'PUBLICITE PUBLICAT. RELAT. PUBLIQ.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('623100', 'ANNONCES ET INSERTIONS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('623200', 'ECHANTILLONS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('623300', 'FOIRES ET EXPOSITIONS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('623500', 'PRIMES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('623600', 'CATALOGUES ET IMPRIMES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('623700', 'PUBLICATIONS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('623800', 'DIVERS (POURBOIRES, DONS COURANTS)', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('624000', 'TRANSP. BIENS & TRANSP. COLL. PERS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('624100', 'TRANSPORTS SUR ACHATS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('624200', 'TRANSPORTS SUR VENTES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('624300', 'TRANSPORTS ENTRE ETS OU CHANTIERS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('624400', 'TRANSPORTS ADMINISTRATIFS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('624700', 'TRANSPORTS COLLECTIFS DU PERSONNEL', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('624800', 'DIVERS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('625000', 'DEPLACEM. MISSIONS ET RECEPTIONS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('625500', 'FRAIS DE DEMENAGEMENT', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('625700', 'RECEPTIONS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('627000', 'SERVICES BANCAIRES ET ASSIMILES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('627100', 'FRAIS SUR TITRES (ACHAT, VENTE,.).', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('627200', 'COMMISSIONS & FRAIS SUR EMPRUNTS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('627500', 'FRAIS SUR EFFETS (COMM. D\'ENDOS,.)', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('627600', 'LOCATION DE COFFRES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('627800', 'AUTRES FRAIS & COMM. PREST. SERV.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('628000', 'DIVERS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('628400', 'FRAIS DE RECRUTEMENT DU PERSONNEL', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('629000', 'RABAIS REMISES RIST. SUR SERV. EXT', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('631000', 'IMPOTS TAXES & VERS. SUR REMUNER.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('631100', 'TAXE SUR LES SALAIRES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('631200', 'TAXE D\'APPRENTISSAGE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('631300', 'PART. EMPLOY. A FORM. PROF. CONT.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('631400', 'COTIS. DEFAUT INVEST. DANS CONST.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('631800', 'AUTRES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('633000', 'IMPOTS TAXES & VERS. SUR REMUNER.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('633100', 'VERSEMENT SUR LE TRANSPORT', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('633200', 'ALLOCATION LOGEMENT', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('633300', 'PART. EMPLOY. A FORM. PROF. CONT.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('633400', 'PART. EMPLOY. A EFFORT CONSTRUCT.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('633500', 'VERS. LIBERAT. A EXONER. TAXE APP.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('635000', 'AUTRES IMPOTS TAXES & VERS. ASS.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('635100', 'IMPOTS DIRECTS (SAUF IMPOT BENEF.)', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('635120', 'TAXES FONCIERES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('635130', 'AUTRES IMPOTS LOCAUX', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('635140', 'TAXE SUR LES VEHICULES SOCIETES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('635200', 'TAXES SUR CA NON RECUPERABLES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('635300', 'IMPOTS INDIRECTS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('635400', 'DROITS D\'ENREGISTREMENT ET TIMBRE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('635410', 'DROIT DE MUTATION', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('635800', 'AUTRES DROITS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('637000', 'AUTRES IMPOTS TAXES ET VERS. ASS.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('637100', 'CONTRIB. SOC. SOLID. A CHARGE STES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('637200', 'TAXES PERCUES PAR ORG. PUBLICS INT', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('637400', 'IMPOTS & TAXES EXIGIB. A L\'ETRANG.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('637800', 'TAXES DIVERSES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('641100', 'SALAIRES APPOINT. COMMIS. DE BASE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('641200', 'CONGES PAYES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('641300', 'PRIMES ET GRATIFICATIONS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('641400', 'SALAIRES, APPOINTEMENTS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('641500', 'SUPPLEMENT FAMILIAL', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('644000', 'REMUNERATION TRAVAIL DE L\'EXPLOIT.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('647000', 'AUTRES CHARGES SOCIALES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('647100', 'PRESTATIONS DIRECTES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('647200', 'VERS. AUX COMITES D\'ETS & D\'ETAB.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('647300', 'VERS. AUX COMITES HYGIENE ET SECUR', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('647400', 'VERSEMENTS AUX OEUVRES SOCIALES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('647500', 'MEDECINE DU TRAVAIL, PHARMACIE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('648000', 'AUTRES CHARGES DE PERSONNEL', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('651000', 'REDEVANC. CONCESS. BREV. LICENC,..', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('651100', 'REDEV. CONCESS. BREV, LIC, MARQ,..', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('651600', 'DROITS D\'AUTEUR ET DE REPRODUCT.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('651800', 'AUTRES DROITS & VALEURS SIMILAIRES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('653000', 'JETONS DE PRESENCE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('654000', 'PERTES SUR CREANCES IRRECOUVRAB.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('654100', 'CREANCES DE L\'EXERCICE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('654400', 'CREANCES DES EXERCICES ANTERIEURS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('655000', 'QUOTE-PARTS RESULT. OPER. EN COMM.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('655100', 'Q-P BENEF. TRANSF. (CPTA GERANT)', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('655500', 'QUOTE-PART PERTE SUPP. (CPTA ASS)', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('658000', 'CHARGES DIVERSES GESTION COURANTE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('661000', 'CHARGES D\'INTERETS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('661100', 'INTERETS DES EMPRUNTS ET DETTES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('661160', 'DES EMPRUNTS ET DETTES ASSIMILEES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('661170', 'DES DETTES RATT. A PARTICIPATIONS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('661500', 'INTERETS CPTES COUR. & DEP. CREDIT', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('661600', 'INTERETS BANC. & SUR OPER. FINANC.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('661700', 'INTERETS OBLIGATIONS CAUTIONNEES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('661800', 'INTERETS DES AUTRES DETTES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('661810', 'DES DETTES COMMERCIALES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('661880', 'DES DETTES DIVERSES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('664000', 'PERTES CREANCES LIEES A PARTICIP.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('665000', 'ESCOMPTES ACCORDES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('667000', 'CHARG. NETTES SUR CESS. VAL. MOBIL', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('668000', 'AUTRES CHARGES FINANCIERES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('668800', 'ECART DE CONVERSION', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('671000', 'CHARG. EXCEPT. SUR OPERAT. GESTION', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('671100', 'PENALITES SUR MARCHES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('671200', 'PENALITES AMENDES FISC. & PENALES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('671300', 'DONS, LIBERALITES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('671400', 'CREANC. DEVEN. IRRECOUV. SUR BENEF', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('671500', 'SUBVENTIONS ACCORDEES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('671700', 'RAPPEL D\'IMPOTS (AUTRE QUE BENEF)', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('671800', 'AUT. CHARG. EXCEP. SUR OPER. GEST.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('672000', 'CHARGES SUR EXERCICES ANTERIEURS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('675000', 'VAL. COMPT. DES ELEM. ACTIF CEDES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('675100', 'IMMOBILISATIONS INCORPORELLES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('675200', 'IMMOBILISATIONS CORPORELLES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('675600', 'IMMOBILISATIONS FINANCIERES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('675800', 'AUTRES ELEMENTS D\'ACTIF', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('678000', 'AUTRES CHARGES EXCEPTIONNELLES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('678100', 'MALIS PROVENANT DE CLAUSES INDEXAT', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('678200', 'LOTS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('678300', 'MALIS DU RACHAT PAR ETS D\'ACTIONS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('678800', 'CHARGES EXCEPTIONNELLES DIVERSES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('681100', 'DOTAT. AUX AMORT. DES IMMOB. CORPO', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('681110', 'IMMOBILISATIONS INCORPORELLES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('681120', 'IMMOBILISATIONS CORPORELLES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('681200', 'DOTAT. AUX AMORT. CHARG. EXPLOIT.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('681500', 'DOTAT. AUX PROV. RISQ. & CHARG. EX', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('681600', 'DOTAT. AUX PROV. DEPREC. IMMOB.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('681610', 'IMMOBILISATIONS INCORPORELLES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('681620', 'IMMOBILISATIONS CORPORELLES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('681700', 'DOTAT. AUX PROV. DEPREC. ACTIFS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('681740', 'CREANCES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('686000', 'DOTAT. AUX AMORT. ET AUX PROVIS.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('686100', 'DOT. AUX AMORT. PRIME REMB. OBLIG.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('686500', 'DOT. AUX PROV. RISQ. & CHARG. FIN.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('686600', 'DOT. AUX PROV. DEPREC. ELEM. FINAN', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('686620', 'IMMOBILISATIONS FINANCIERES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('686650', 'VALEURS MOBILIERES DE PLACEMENT', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('686800', 'AUTRES DOTATIONS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('687000', 'DOTAT. AUX AMORT. ET PROVISIONS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('687100', 'DOTAT. AUX AMORT. EXCEPT. IMMOB.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('687200', 'DOTAT. AUX PROV. REGLEM. (IMMOB)', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('687250', 'AMORTISSEMENTS DEROGATOIRES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('687300', 'DOTAT. AUX PROV. REGLEM. (STOCKS)', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('687400', 'DOTAT. AUX AUTRES PROV. REGLEMENT.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('687500', 'DOTAT. PROV. RISQ. & CHARG. EXCEP.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('691000', 'PARTICIPATIONS DES SALARIES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('695200', 'CONTRIB. ADDITIO. IMPOT BENEFICES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('695400', 'IMPOTS DUS A L\'ETRANGER', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('696000', 'SUPPLEMENT D\'IMPOTS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('697000', 'IMPOSITION FORF. ANUELLE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('698000', 'INTEGRATION FISCALE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('698100', 'INTEGRATION FISCALE - CHARGES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('698900', 'INTEGRATION FISCALE - PRODUITS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('699000', 'PRODUITS REP. EN ARR. DES DEFICITS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('701000', 'VENTES DE PRODUITS FINIS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('701100', 'PRODUIT FINI (OU GROUPE) A', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('701200', 'PRODUIT FINI (OU GROUPE) B', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('702000', 'VENTES DE PRODUITS INTERMEDIAIRES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('703000', 'VENTES DE PRODUITS RESIDUELS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('704000', 'TRAVAUX', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('704100', 'TRAVAUX DE CATEG. (OU ACTIV.) A', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('704200', 'TRAVAUX DE CATEG. (OU ACTIV.) B', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('705000', 'ETUDES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('707100', 'MARCHANDISE (OU GROUPE) A', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('707200', 'MARCHANDISE (OU GROUPE) B', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('708000', 'PRODUITS DES ACTIVITES ANNEXES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('708100', 'PROD. SERV. EXPLOIT. INTER. PERSON', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('708200', 'COMMISSIONS ET COURTAGES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('708300', 'LOCATIONS DIVERSES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('708400', 'MISE A DISPOS. PERSONNEL FACTUREE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('708500', 'PORTS ET FRAIS ACCESSOIRES FACT.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('708600', 'BONIS SUR REPRISES EMBALL. CONSIG.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('708700', 'BONIFICAT. CLTS & PRIMES VENTES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('708800', 'AUTRES PRODUITS ACTIVITES ANNEXES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('709000', 'RABAIS REMISES RIST. ACCORD. A ETS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('709100', 'SUR VENTES DE PRODUITS FINIS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('709200', 'SUR VENTES PRODUITS INTERMEDIAIRES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('709400', 'SUR TRAVAUX', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('709500', 'SUR ETUDES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('709600', 'SUR PRESTATIONS DE SERVICES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('709700', 'SUR VENTES MARCHANDISES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('709800', 'SUR PRODUITS ACTIVITES ANNEXES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('713000', 'VARIAT. STOCKS (EN-COURS PRODUCT.)', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('713300', 'VARIATION EN-COURS PRODUC. BIENS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('713310', 'PRODUITS EN COURS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('713350', 'TRAVAUX EN COURS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('713400', 'VARIATION EN-COURS PROD. SERVICES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('713410', 'ETUDES EN COURS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('713450', 'PRESTATIONS SERVICES EN COURS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('713500', 'VARIATION STOCKS DE PRODUITS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('713510', 'PRODUITS INTERMEDIAIRES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('713550', 'PRODUITS FINIS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('713580', 'PRODUITS RESIDUELS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('721000', 'IMMOBILISATIONS INCORPORELLES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('722000', 'IMMOBILISATIONS CORPORELLES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('731000', 'PROD. NETS PART. SUR OP. EN COURS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('739000', 'PROD. NETS PART. SUR OP. TERMINEES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('751000', 'REDEV. POUR CONCES. BREV. LIC....', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('751100', 'REDEV. POUR CONCES. BREV. LIC...', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('751600', 'DROITS D\'AUTEUR ET DE REPRODUCTION', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('751800', 'AUTRES DROITS & VALEURS SIMILAIRES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('752000', 'REV. IMMEUB. NON AFFECT. ACT. PROF', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('753000', 'JETONS PRESENCE ET REMUN. ADMINIST', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('754000', 'RISTOURNES PERCUES COOPERATIVES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('755000', 'QUOTES-PARTS RESULT. OP. EN COMMUN', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('755100', 'QUOTE-PART PERTE TRANSFEREE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('755500', 'QUOTE-PART BENEFICE ATTRIBUEE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('758000', 'PRODUITS DIVERS GESTION COURANTE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('761000', 'PRODUITS DE PARTICIPATIONS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('761100', 'REVENUS TITRES DE PARTICIPATION', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('761600', 'REVENUS AUTRES FORMES PARTICIP.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('762000', 'PRODUITS AUTRES IMMOB. FINANC.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('762100', 'REVENUS DES TITRES IMMOBILISES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('762400', 'REVENUS DES PRETS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('762700', 'REVENUS CREANCES IMMOBILISEES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('763000', 'REVENUS DES AUTRES CREANCES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('763100', 'REVENUS CREANCES COMMERCIALES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('763800', 'REVENUS DES CREANCES DIVERSES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('764000', 'REVENUS VALEURS MOBIL. PLACEMENT', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('765000', 'ESCOMPTES OBTENUS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('767000', 'PROD. NETS SUR CESS. VALEURS MOB.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('767100', 'REVENUS CRE. RATT. PARTICIPATIONS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('768000', 'AUTRES PRODUITS FINANCIERS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('771000', 'PRODUITS EXCEPT. SUR OPER. GESTION', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('771100', 'DEDITS PENAL. SUR ACHATS & VENTES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('771300', 'LIBERALITES PERCUES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('771400', 'RENTREES SUR CREANCES AMORTIES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('771500', 'SUBVENTIONS D\'EQUILIBRE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('771700', 'DEGREVEM. IMPOTS (AUT. IMP. BENEF)', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('771800', 'AUTRES PROD. EXCEPT. SUR OP. GEST.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('772000', 'PRODUITS SUR EXERCICES ANTERIEURS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('775000', 'PRODUITS CESSIONS ELEMENTS D\'ACTIF', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('775100', 'IMMOBILISATIONS INCORPORELLES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('775200', 'IMMOBILISATIONS CORPORELLES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('775600', 'IMMOBILISATIONS FINANCIERES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('775800', 'AUTRES ELEMENTS D\'ACTIF', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('777000', 'Q-P SUBV. INVEST. AU RESULT. EXERC', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('778000', 'AUTRES PRODUITS EXCEPTIONNELS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('778100', 'BONIS PROVENANT CLAUSES D\'INDEXAT.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('778200', 'LOTS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('778300', 'BONIS RACHAT PAR ETS ACT. & OBLIG.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('778800', 'PRODUITS EXCEPTIONNELS DIVERS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('781000', 'REPRISES SUR AMORTISS. & PROVIS.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('781100', 'REPRIS. AMORT. IMMOB. CORP. & INC', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('781110', 'IMMOBILISATIONS INCORPORELLES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('781120', 'IMMOBILISATIONS CORPORELLES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('781500', 'REPRIS. PROVIS. RISQ. & CH. EXPLOI', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('781600', 'REP. PROV. DEPREC. IMM. CORP & INC', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('781610', 'IMMOBILISATIONS INCORPORELLES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('781620', 'IMMOBILISATIONS CORPORELLES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('781700', 'REPRIS. PROV. DEPREC. ACT. CIRCUL.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('781730', 'STOCKS ET EN-COURS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('781740', 'CREANCES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('786000', 'REPRISES SUR PROVIS. POUR RISQUES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('786500', 'REP. PROV. RISQ. & CHARG. FINANC.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('786600', 'REPRIS. PROV. DEPREC. ELEM. FINANC', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('786620', 'IMMOBILISATIONS FINANCIERES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('786650', 'VALEURS MOBILIERES DE PLACEMENT', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('787000', 'REPRISES SUR PROVISIONS', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('787200', 'REPRISES SUR PROV. REGLEMENTEES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('787250', 'AMORTISSEMENTS DEROGATOIRES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('787260', 'PROVISION SPECIALE DE REEVALUATION', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('787270', 'PLUS-VALUES REINVESTIES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('787300', 'REPRISES SUR PROV. REGLEMENTEES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('787400', 'REPRIS. SUR AUTRES PROV. REGLEMENT', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('787500', 'REPRIS. PROV. RISQ. & CHARG. EXPL.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('787600', 'REPRIS. PROV. POUR DEPREC. EXCEPT.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('791000', 'TRANSFERTS DE CHARGES D\'EXPLOIT.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('796000', 'TRANSFERTS DE CHARGES FINANC.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('797000', 'TRANSFERTS DE CHARGES EXCEPT.', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('201000', 'FRAIS D\'ETABLISSEMENT', 'A', '', 'E', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('209000', 'SORTIE D\'IMMOBILISATION', 'A', '', 'I', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('474100', 'DIVERS A REINTEGRER', 'A', '', 'I', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('474200', 'BENEFICE SCM', 'A', '', 'I', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('475000', 'PLUS VALUES A COURT TERME', 'A', '', 'I', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('530000', 'CAISSE', 'A', '', 'I', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('760000', 'PRODUITS FINANCIERS', 'A', '', 'I', 'AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('770000', 'PRODUITS EXCEPTIONNELS', 'A', '', 'I', 'AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('530010', 'CAISSE', 'A', '', 'E', 'AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('607000', 'ACHATS DE MARCHANDISES', 'A', '', 'E', 'AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('622700', 'FRAIS D\'ACTES ET DE CONTENTIEUX', 'A', '', 'E', 'AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('438600', 'AUTRES CHARGES A PAYER', 'A', '', 'E', 'AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('473000', 'DIVERS A DEDUIRE', 'A', '', 'E', 'AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('613200', 'LOCATIONS IMMOBILIERES', 'A', '', 'E', 'AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('616000', 'PRIMES D\'ASSURANCE', 'A', '', 'E', 'AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('633800', 'AUTRES', 'A', '', 'E', 'AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('695000', 'IMPOTS SUR LES BENEFICES', 'A', '', 'E', 'AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('108100', 'COMPTE DE LEXPLOITANT', 'A', '', 'E', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('512030', 'EPARGNE', 'A', '', 'A', 'AR_paid:AP_paid');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('100000', 'CLASSE 1', 'H', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('300000', 'CLASSE 3', 'H', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('500000', 'CLASSE 5', 'H', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('600000', 'CLASSE 6', 'H', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('700000', 'CLASSE 7', 'H', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('108000', 'COMPTE DE LEXPLOITANT', 'A', '', 'I', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('200001', 'IMMOBILISATION', 'A', '', 'E', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('200000', 'CLASSE 2', 'H', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('400001', 'FOURNISSEURS ET COMPTES RATTACHES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('400000', 'CLASSE 4', 'H', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('695100', 'IMPOTS DUS EN FRANCE', 'A', '', 'E', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('646000', 'COTIS. SOCIAL. PERSON. EXPLOITANT', 'A', '', 'E', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('645000', 'CHARGES DE SECUR. SOC. ET PREVOY.', 'A', '', 'E', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('617000', 'ETUDES ET RECHERCHES', 'A', '', 'E', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('615000', 'ENTRETIEN ET REPARATIONS', 'A', '', 'E', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('613500', 'LOCATIONS MOBILIERES', 'A', '', 'E', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('611000', 'SOUS-TRAITANCE GENERALE', 'A', '', 'E', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('695500', 'DEBOURS PAYES POUR LE COMPTE', 'A', '', 'E', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('690000', 'PARTICIP. SAL. / IMPOTS SUR BEN.', 'A', '', 'E', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('687600', 'DOTAT. AUX PROV. DEPREC. EXCEPT.', 'A', '', 'E', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('681000', 'DOTATIONS AUX AMORT. & AUX PROVIS.', 'A', '', 'E', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('628100', 'CONCOURS DIVERS (COTISATIONS,...)', 'A', '', 'E', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('625600', 'MISSIONS', 'A', '', 'E', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('645800', 'COTISATIONS AUX AUTRES ORG. SOC.', 'A', '', 'E', 'AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('641000', 'REMUNERATIONS DU PERSONNEL', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('625020', 'DEPLACEMENTS MOTO', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('622600', 'HONORAIRES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('621100', 'PERSONNEL INTERIMAIRE', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('445500', 'TAXES SUR CA A DECAISSER', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('706000', 'PRESTATIONS DE SERVICES', 'A', '', 'I', 'IC_income');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('707000', 'VENTES DE MARCHANDISES', 'A', '', 'I', 'IC_sale');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('445713', 'TVA COLLECTEE 19.6%', 'A', '', 'I', 'AR_tax:IC_taxpart:IC_taxservice');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('512020', 'BANQUE DEBIT', 'A', '', 'E', 'AP');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('445711', 'TVA COLLECTEE 5.5%', 'A', '', 'I', 'AR_tax:IC_taxpart:IC_taxservice');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('445661', 'TVA DEDUCTIBLE 5.5%', 'A', '', 'E', 'AP_tax:IC_taxpart:IC_taxservice');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('512010', 'BANQUE CREDIT', 'A', '', 'I', 'AR:AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('681730', 'STOCKS ET EN-COURS', 'A', '', 'A', 'IC');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('580010', 'VIREMENT INTERNE', 'A', '', 'E', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('580000', 'VIREMENT INTERNE', 'A', '', 'E', 'AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('766000', 'GAINS DE CHANGE', 'A', '', 'I', 'AR_amount:IC_income');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('472000', 'MOINS VALUES A COURT TERME', 'A', '', 'E', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('474000', 'DEFICIT SCM', 'A', '', 'E', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('670000', 'CHARGES FINANCIERES', 'A', '', 'E', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('645100', 'COTISATIONS A L\'URSSAF', 'A', '', 'E', 'AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('645200', 'COTISATIONS AUX MUTUELES', 'A', '', 'E', 'AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('645300', 'COTISATIONS AUX CAISSES RETR.', 'A', '', 'E', 'AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('646400', 'COTISATIONS AUX ASSEDIC', 'A', '', 'E', 'AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('623400', 'CADEAUX A LA CLIENTELE', 'A', '', 'E', 'AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('437000', 'AUTRES ORGANISMES SOCIAUX', 'A', '', 'E', 'AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('606100', 'FOURNITURES NON STOCK. EAU ENERG.', 'A', '', 'E', 'AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('606300', 'FOURNIT. ENTRETIEN & PETIT EQUIP.', 'A', '', 'E', 'AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('625010', 'DEPLACEMENTS AUTO', 'A', '', 'E', 'AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('635110', 'TAXE PROFESSIONNELLE', 'A', '', 'E', 'AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('645001', 'CSG', 'A', '', 'E', 'AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('660000', 'CHARGES FINANCIERES', 'A', '', 'E', 'AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('666000', 'PERTES DE CHANGE', 'A', '', 'E', 'AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('512040', 'EXPLOITANT', 'A', '', 'E', 'AP_paid');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('431000', 'SECURITE SOCIALE', 'A', '', 'E', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('609400', 'D\'ETUDES & PRESTATIONS DE SERVICES', 'A', '', '', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('625100', 'VOYAGES ET DEPLACEMENTS', 'A', '', 'E', 'AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('618300', 'DOCUMENTATION TECHNIQUE', 'A', '', 'E', 'AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('445663', 'TVA DEDUCTIBLE 19.6%', 'A', '', 'E', 'AP_tax:IC_taxpart:IC_taxservice');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('601000', 'ACHATS STOCKES MAT. PREM. (FOURN.)', 'A', '', 'E', 'AP_amount:IC_cogs');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('626000', 'FRAIS POSTAUX ET TELECOMMUNIC.', 'A', '', 'E', 'AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('512000', 'BANQUE', 'A', '', 'A', 'AR_paid:AP_paid');
+--
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('999000', 'Foreign Exchange Gain', 'A', '', 'I', '');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('999010', 'Foreign Exchange Loss', 'A', '', 'E', '');
+--
+-- insert taxes
+--
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '445661'), 0.055);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '445663'), 0.196);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '445711'), 0.055);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '445713'), 0.196);
+--
+-- update defaults
+--
+update defaults set inventory_accno_id = (select id from chart where accno = '681730'), income_accno_id = (select id from chart where accno = '707000'), expense_accno_id = (select id from chart where accno = '601000'), fxgain_accno_id = (select id from chart where accno = '999000'), fxloss_accno_id = (select id from chart where accno = '999010'), curr = 'EUR', weightunit = 'kg';
+--
diff --git a/sql/German-Sample-chart.sql b/sql/German-Sample-chart.sql
new file mode 100755
index 00000000..fafb5f98
--- /dev/null
+++ b/sql/German-Sample-chart.sql
@@ -0,0 +1,216 @@
+-- Einfacher Deutscher Kontenrahmen => Very Easy German Default Chart
+-- Vorbereitet von / Prepared by Paul Tammes May 9th, 2002. Kommentar / Comments : finance@bermuda-holding.com
+-- Englische Texte für eigene Zwecke und um Refernz in LedgerSMB Dokumentation zu erleichtern.
+-- English terms used mostly for my own reference and to make lookup in LedgerSMB documentation easier.
+-- GIFI-codes werden benutzt/misbraucht um die art der Rechnung zu deuten, Fehler nicht ausgeschlossen denn
+-- Ich bin kein Deutscher Steuerberater ;-(
+-- GIFI field codes re-used for following specs:
+-- Link: Achtung, sehr wenig benutzt da mir die Kentnisse zum Deutschen System fehlen. Sehr gut aufpassen und wenn
+-- Ihr Fehler oder Praktische TIPS hat: gerne!
+-- Link: used to a minimum, update and customization may well be needed!
+-- A0 = Anlagevermögen / Fixed Assets
+-- A1-1 = Warenbestand / Inventory
+-- A1-2 = Forderungen / Liabilities
+-- A1-3 = Liquide Mittel / Assets
+-- A1-4 = Aktive Rechnungsabgrenzung / Closing Account results
+-- E = Erträge / Income
+-- K0 = Wareneinsatz / COGS
+-- K1 = Personalkosten / Salaries etc
+-- K2 = Raumkosten / Rental etc
+-- K3 = Sonstige Kosten / Various costs
+-- NA = Neutrale Aufwendungen / Neutral Costs
+-- NE - Neutrale Erlöse / Neutral Income
+-- P0 = Eigenkapital / Equity
+-- P1 = Rückstellungen / Reserves
+-- P2 = Fremdkapital Langfristig / Liabilities Long Term
+-- P3 = Fremdkapital Kurzfristig / Liabilities Short Term
+-- P4 = Passive Rechnungsabgrenzung / Closing Account results
+--
+-- A0
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0000','ANLAGEVERMÖGEN','H','A0','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0100','Konzessionen & Lizenzen','A','A0','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0135','EDV-Programme','A','A0','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0440','Maschinen','A','A0','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0500','Betriebsausstattung','A','A0','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0520','PKW','A','A0','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0650','Büroeinrichtung','A','A0','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0670','GWG','A','A0','A','');
+-- A1-1
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1100','WARENBESTAND','H','A1-1','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1140','Warenbestand','A','A1-1','A','IC');
+-- A1-2
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1200','FORDERUNGEN','H','A1-2','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1201','Geleistete Anzahlungen','A','A1-2','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1210','Forderungen ohne Kontokorrent','A','A1-2','A','AR');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1300','Sonstige Forderungen','A','A1-2','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1400','Anrechenbare Vorsteuer','A','A1-2','A','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1401','Anrechenbare Vorsteuer 7%','A','A1-2','A','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1402','Vorsteuer ig Erwerb','A','A1-2','A','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1403','Vorsteuer ig Erwerb 16%','A','A1-2','A','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1405','Anrechenbare Vorsteuer 16%','A','A1-2','A','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1406','Anrechenbare Vorsteuer 15%','A','A1-2','A','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1433','bezahlte Einfuhrumsatzsteuer','A','A1-2','A','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1370','Ungeklärte Posten','A','A1-2','A','');
+-- A1-3
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1600','LIQUIDE MITTEL','H','A1-3','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1601','Kasse','A','A1-3','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1700','Postgiro','A','A1-3','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1800','Bank','A','A1-3','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1810','Bank USD','A','A1-3','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1820','Kreditkarten','A','A1-3','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1890','Geldtransit','A','A1-3','A','');
+-- A1-4
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1900','Aktive Rechnungsabgrenzung','A','A1-4','A','');
+-- P0
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2000','EIGENKAPITAL','H','P0','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2001','Eigenkapital','A','P0','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2100','Privatentnahmen','A','P0','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2150','Privatsteuern','A','P0','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2180','Privateinlagen','A','P0','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2200','Sonderausgaben beschr.abzugsf.','A','P0','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2900','Gezeichnetes Kapital','A','P0','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2910','Ausstehende Einlagen','A','P0','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2970','Gewinnvortrag vor Verwendung','A','P0','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2978','Verlustvortrag vor Verwendung','A','P0','Q','');
+-- P1
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3000','RÜCKSTELLUNGEN','H','P1','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3030','Gewerbesteuerrückstellung','A','P1','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3070','Sonstige Rückstellungen','A','P1','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3095','Rückstellung für Abschlusskosten','A','P1','L','');
+-- P2
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3100','FREMDKAPITAL LANGFRISTIG','H','P2','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3160','Bankdarlehen','A','P2','L','');
+-- P3
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3200','FREMDKAPITAL KURZFRISTIG','H','P3','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3280','Erhaltene Anzahlungen','A','P3','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3310','Kreditoren ohne Kontokorrent','A','P3','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3500','Sonstige Verbindlichkeiten','A','P3','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3560','Darlehen','A','P3','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3700','Verbindl. Betr.steuern u.Abgaben','A','P3','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3720','Verbindlichkeiten Löhne und Gehälter','A','P3','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3730','Verbindlichkeiten Lohnsteuer','A','P3','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3740','Verbindlichkeiten Sozialversicherung','A','P3','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3800','Umsatzsteuer','A','P3','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3801','Umsatzsteuer 7%','A','P3','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3802','Umsatzsteuer ig. Erwerb','A','P3','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3803','Umsatzsteuer ig. Erwerb 16%','A','P3','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3805','Umsatzsteuer 16%','A','P3','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3806','Umsatzsteuer 15%','A','P3','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3815','Umsatzsteuer nicht fällig 16%','A','P3','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3816','Umsatzsteuer nicht fällig 15%','A','P3','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3820','Umsatzsteuer-Vorauszahlungen','A','P3','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3841','Umsatzsteuer Vorjahr','A','P3','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+-- P4
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3900','Aktive Rechnungsabgrenzung','A','P4','L','');
+-- K0
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5100','WARENEINGANG','H','K0','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5200','Wareneingang ohne Vorsteuer','A','K0','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5300','Wareneingang 7%','A','K0','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5400','Wareneingang 15%','A','K0','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5420','ig.Erwerb 7% VoSt. und 7% USt.','A','K0','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5425','ig.Erwerb 15% VoSt. und 15% USt.','A','K0','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5731','Erhaltene Skonti 7% Vorsteuer','A','K0','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5736','Erhaltene Skonti 15% Vorsteuer','A','K0','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5800','Anschaffungsnebenkosten','A','K0','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5900','Fremdarbeiten','A','K0','E','AP_amount:IC_cogs:IC_expense');
+-- K1
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6000','PERSONALKOSTEN','H','K1','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6001','Personalkosten','H','K1','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6010','Löhne','A','K1','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6020','Gehälter','A','K1','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6030','Aushilfslöhne','A','K1','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6040','Lohnsteuer Aushilfen','A','K1','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6080','Vermögenswirksame Leistungen','A','K1','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6090','Fahrtkostenerst.Whg./Arbeitsstätte','A','K1','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6110','Sozialversicherung','A','K1','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6120','Berufsgenossenschaft','A','K1','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6130','Freiw. Soz. Aufw. LSt- u. Soz.Vers.frei','A','K1','E','');
+-- K2
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6300','RAUMKOSTEN','H','K2','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6310','Miete','A','K2','E','AP_amount:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6315','Pacht','A','K2','E','AP_amount:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6320','Heizung','A','K2','E','AP_amount:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6325','Gas Strom Wasser','A','K2','E','AP_amount:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6330','Reinigung','A','K2','E','AP_amount:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6335','Instandhaltung betriebliche Räume','A','K2','E','AP_amount:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6345','Sonstige Raumkosten','A','K2','E','AP_amount:IC_expense');
+-- K3
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6400','SONSTIGE KOSTEN','H','K3','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6402','Abschreibungen','A','K3','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6403','Kaufleasing','A','K3','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6404','Sofortabschreibung GWG','A','K3','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6405','Sonstige Kosten','A','K3','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6410','Versicherung','A','K3','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6420','Beiträge und Gebühren','A','K3','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6430','Sonstige Abgaben','A','K3','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6470','Rep. und Instandhaltung BGA','A','K3','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6520','Kfz-Versicherung','A','K3','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6530','Lfd. Kfz-Kosten','A','K3','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6540','Kfz-Reparaturen','A','K3','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6560','Fremdfahrzeuge','A','K3','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6570','Sonstige Kfz-Kosten','A','K3','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6600','Werbung','A','K3','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6610','Kundengeschenke bis DM 75.','A','K3','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6620','Kundengeschenke über DM 75.-','A','K3','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6630','Repräsentationkosten','A','K3','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6640','Bewirtungskosten','A','K3','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6644','Nicht abzugsf.Bewirtungskosten','A','K3','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6650','Reisekosten Arbeitnehmer','A','K3','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6660','Reisekosten Arbeitnehmer 12.3%','A','K3','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6665','Reisekosten Arbeitnehmer 9.8%','A','K3','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6670','Reisekosten Unternehmer','A','K3','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6680','Reisekosten Unternehmer 12.3%','A','K3','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6685','Reisekosten Unternehmer 9.8%','A','K3','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6688','Reisekosten Unternehmer 5.7%','A','K3','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6690','Km-Geld-Erstattung 8.2%','A','K3','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6710','Verpackungsmaterial','A','K3','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6740','Ausgangsfrachten','A','K3','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6780','Fremdarbeiten','A','K3','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6800','Porto','A','K3','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6805','Telefon','A','K3','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6815','Bürobedarf','A','K3','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6820','Zeitschriften & Bücher','A','K3','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6825','Rechts- und Beratungskosten','A','K3','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6835','Mieten für Einrichtungen','A','K3','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6840','Mietleasing','A','K3','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6845','Werkzeuge und Kleingeräte','A','K3','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6850','Betriebsbedarf','A','K3','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6852','Gastättenbedarf','A','K3','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6855','Nebenkosten des Geldverkehrs','A','K3','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6880','Aufwendungen aus Kursdifferenzen','A','K3','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6885','Erlöse aus Anlageverk.(Buchverlust)','A','K3','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7610','Gewerbesteuer','A','K3','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7685','Kfz-Steuer','A','K3','E','AP_amount:IC_cogs:IC_expense');
+-- E
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8100','ERTRÄGE','H','E','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8120','Steuerfreie Umsätze 4 Nr. 1a UStG.','A','E','I','AR_amount:IC_sale:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8125','Steuerfreie ig. Lieferungen 1b UStG.','A','E','I','AR_amount:IC_sale:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8200','Erlöse ohne Umsatzsteuer','A','E','I','AR_amount:IC_sale:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8300','Erlöse 7% Umsatzsteuer','A','E','I','AR_amount:IC_sale:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8400','Erlöse 15% Umsatzsteuer','A','E','I','AR_amount:IC_sale:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8500','Provisionserlöse','A','E','I','AR_amount:IC_sale:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8630','Entnahme sonstg. Leistungen 7% USt.','A','E','I','AR_amount:IC_sale:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8640','Entnahme sonstg. Leistungen 15% USt.','A','E','I','AR_amount:IC_sale:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8731','Gew. Skonti 7% USt.','A','E','I','AR_amount:IC_sale:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8736','Gew. Skonti 15% USt.','A','E','I','AR_amount:IC_sale:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8840','Erträge aus Kursdifferenzen','A','E','I','AR_amount:IC_sale:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8845','Erlöse aus Anlageverk. (Buchgewinn)','A','E','I','AR_amount:IC_sale:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8900','Erträge aus Abgang von Anlageverm.','A','E','I','AR_amount:IC_sale:IC_income');
+-- NA
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('9300','NEUTRALE AUFWENDUNGEN','H','NA','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('9310','Zinsen kurzfr. Verbindlichkeiten','A','NA','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('9320','Zinsen langfr. Verbindlichkeiten','A','NA','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('9500','Ausserordentl.Aufwendungen','A','NA','E','');
+-- NE
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('9600','NEUTRALE ERTRÄGE','H','NE','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('9610','Guthabenzinsen','H','NE','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('9700','Ausserordentl.Erträge','H','NE','I','');
+--
+-- Default settings
+--
+insert into tax (chart_id,rate) values ((select id from chart where accno = '3801'),0.07);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '3805'),0.16);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '3806'),0.15);
+--
+update defaults set inventory_accno_id = (select id from chart where accno = '1140'), income_accno_id = (select id from chart where accno = '8120'), expense_accno_id = (select id from chart where accno = '5800'), fxgain_accno_id = (select id from chart where accno = '8840'), fxloss_accno_id = (select id from chart where accno = '6880'), curr = 'EUR', weightunit = 'kg';
+--
diff --git a/sql/German-Sample-gifi.sql b/sql/German-Sample-gifi.sql
new file mode 100755
index 00000000..78eaed4e
--- /dev/null
+++ b/sql/German-Sample-gifi.sql
@@ -0,0 +1,19 @@
+-- Einfacher Kontoplan für Deutschland
+--
+INSERT INTO gifi (accno,description) VALUES ('A0', 'Anlagevermögen');
+INSERT INTO gifi (accno,description) VALUES ('A1-1', 'Warenbestand');
+INSERT INTO gifi (accno,description) VALUES ('A1-2', 'Forderungen');
+INSERT INTO gifi (accno,description) VALUES ('A1-3', 'Liquide Mittel');
+INSERT INTO gifi (accno,description) VALUES ('A1-4', 'Aktive Rechnungsabgrenzung');
+INSERT INTO gifi (accno,description) VALUES ('E', 'Erträge');
+INSERT INTO gifi (accno,description) VALUES ('K0', 'Wareneinsatz');
+INSERT INTO gifi (accno,description) VALUES ('K1', 'Personalkosten');
+INSERT INTO gifi (accno,description) VALUES ('K2', 'Raumkosten');
+INSERT INTO gifi (accno,description) VALUES ('K3', 'Sonstige Kosten');
+INSERT INTO gifi (accno,description) VALUES ('NA', 'Neutrale Aufwendungen');
+INSERT INTO gifi (accno,description) VALUES ('NE', 'Neutrale Erlöse');
+INSERT INTO gifi (accno,description) VALUES ('P0', 'Eigenkapital');
+INSERT INTO gifi (accno,description) VALUES ('P1', 'Rückstellungen');
+INSERT INTO gifi (accno,description) VALUES ('P2', 'Fremdkapital Langfristig');
+INSERT INTO gifi (accno,description) VALUES ('P3', 'Fremdkapital Kurzfristig');
+INSERT INTO gifi (accno,description) VALUES ('P4', 'Passive Rechnungsabgrenzung');
diff --git a/sql/Germany-DATEV-SKR03-chart.sql b/sql/Germany-DATEV-SKR03-chart.sql
new file mode 100755
index 00000000..bc3faebb
--- /dev/null
+++ b/sql/Germany-DATEV-SKR03-chart.sql
@@ -0,0 +1,227 @@
+-- DATEV SKR03
+--
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0002700','EDV-Software','A','A','','0002700');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0010000','Fabrikbauten','A','A','','0010000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0011000','Garagen','A','A','','0011000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0011100','Außenanlagen','A','A','','0011100');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0011200','Hof-und Wegebefestigung','A','A','','0011200');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0011500','Andere Bauten','A','A','','0011500');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0016500','Geschäftsbauten','A','A','','0016500');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0008500','Grundstückswert eige.bebau.Grundst.','A','A','','0008500');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0009000','Geschäftsbauten','A','A','','0009000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0016000','Bauten auf fremden Grundstücken','H','A','','0016000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0017000','Fabrikbauten','A','A','','0017000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0017500','Garagen','A','A','','0017500');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0017600','Außenanlage','A','A','','0017600');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0020000','Techn.Anlagen und Maschinen','H','A','','0020000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0021000','Maschinen','A','A','','0021000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0022000','Maschinengebundene Werkzeuge','A','A','','0022000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0024000','Maschinelle Anlagen','A','A','','0024000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0028000','Betriebsvorrichtung','A','A','','0028000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0030000','Andere Anlagen,Betrieb-und Geschäftsaus','H','A','','0030000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0031000','Andere Anlagen','A','A','','0031000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0032000','PKW','A','A','','0032000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0035000','LKW','A','A','','0035000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0040000','Betriebsausstattung','A','A','','0040000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0041000','Geschäftsausstattung','A','A','','0041000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0042000','Büroeinrichtung','A','A','','0042000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0043000','Ladeneinrichtung','A','A','','0043000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0048000','Geringwertige Wirtschaftsg.b.410EUR','A','A','','0048000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0049000','Sons.Betriebs- Geschäftsausstattung','A','A','','0049000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0050400','Ant.a.herr.o.m.Mehrh.bet.Ges.schaft','A','A','','0050400');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0051300','Typisch stille Beteiligungen','A','A','','0051300');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0063100','- Restlaufzeit bis 1 Jahr','A','L','','0063100');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0051600','Atypische stille Beteiligungen','A','A','','0051600');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0064000','- Restlaufzeit 1 bis 5 Jahre','A','L','','0064000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0065000','- Restlaufzeit größer als 5 Jahre','A','L','','0065000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0099600','Pauschalwertb.m.Restlaufzeit v. 1J.','A','A','','0099600');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0140000','Ford. a.Lieferungen und Leistungen','A','A','AR','0140000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0080000','Gezeichnetes Kapital','A','Q','','0080000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0150000','Sonstige Vermögensgegenstände','A','A','','0150000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0153000','Forderungen gegen Personal','A','A','','0153000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0154500','Umsatzsteuerforderungen','A','A','','0154500');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0100000','Kasse','A','A','AR_paid:AP_paid','0100000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0120000','Bank','A','A','AR_paid:AP_paid','0120000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0096300','Körperschaftssteuerrückstellung','A','Q','','0096300');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0095500','Steuerrückstellung','A','Q','','0095500');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0095700','Gewerbesteuerrückstellung','A','Q','','0095700');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0080100','Ausst.Einl.a.d.gezeichnete Kapital','A','Q','','0080100');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0084000','Kapitalrücklage','A','Q','','0084000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0086000','Gewinnvortrag vor Verwendung','A','Q','','0086000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0086900','Vortrag auf neue Rechnungen','A','Q','','0086900');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0000500','Sachanlagen','H','A','','0000500');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0050000','Finanzanlagen','H','A','','0050000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0051000','Beteiligungen','A','A','','0051000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0063000','Verbindl.gegenüber Kreditinstituten','A','L','','0063000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0060000','Verbindlichkeiten','H','L','','0060000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0086800','Verlustvortrag vor Verwendung','A','L','','0086800');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0097000','Sonstige Rückstellungen','A','L','','0097000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0097400','Rückstellungen für Gewährleistungen','A','L','','0097400');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0097700','Rücks.f.Abschluß-u.Prüfungskosten','A','L','','0097700');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0097800','Aufwandsrückstellungen','A','L','','0097800');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0098000','Aktive Rechnungsabgrenzung','A','A','','0098000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0099000','Passive Rechnungsabgrenzung','A','L','','0099000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0099200','Wertberichtigungen','A','A','','0099200');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0099800','Einzelwertber.m.Restlaufzeit v.1 J.','A','A','','0099800');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0146000','Zweifelhafte Forderungen','A','A','','0146000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0151000','Geleistete Anzahlung auf Vorräte','A','A','','0151000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0151100','Geleistete Anzahlungen 7%','A','A','','0151100');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0151700','Geleistete Anzahlung 16%','A','A','','0151700');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0152500','Kautionen','A','A','','0152500');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0154000','Steuerüberzahlungen','A','A','','0154000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0157000','Abziehbare Vorsteuer','A','A','AR_tax:AP_tax','0157000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0160000','Verbindlichkeiten aus Lief.u.Leist.','A','L','AP','0160000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0174100','Verbindl.a.Lohn-und Kirchensteuer','A','L','','0174100');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0178000','Umsatzsteuer-Vorauszahlungen','A','L','','0178000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0178100','Umsatzsteuer-Vorauszahlung 1/11','A','L','','0178100');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0178900','Umsatzsteuer laufendes Jahr','A','L','','0178900');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0179000','Umsatzsteuer Vorjahr','A','L','','0179000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0179100','Umsatzsteuer frühere Jahre','A','L','','0179100');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0180000','Privatentnahme allgemein','A','Q','','0180000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0189000','Privateinlagen','A','Q','','0189000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0210000','Zinsen und ähnl.Aufwendungen','A','E','','0210000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0211000','Zinsaufwendung f.kurzf.Verbindlichk','A','E','','0211000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0212000','Zinsaufwendung f.langf.Verbindlichk','A','E','','0212000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0221000','Kapitalertragssteuer','A','E','','0221000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0231000','Anlagenabgänge - bei Buchverlust','A','E','','0231000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0231500','Anlagenabgänge-Buchgewinn','A','I','','0231500');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0237500','Grundsteuer','A','E','','0237500');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0245000','Einstell.i.d.Pauschalwertbe.z.Forde','A','E','','0245000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0245100','Einstell.i.d.Einzelwertb.z.Forderun','A','E','','0245100');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0250000','Außerordentliche Erträge','A','I','','0250000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0251000','Betriebsfremde Erträge n.außerorden','A','I','','0251000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0252000','Periodenfremde Erträge nicht außero','A','I','','0252000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0270000','Sonstige Erträge','A','I','','0270000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0272000','Ertr.a.d.Abgang v.Gegens.d.Anlageve','A','I','','0272000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0272500','Ertr.a.d.Abg.v.Gegenst.d.Umlaufverm','A','I','','0272500');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0273000','Ertr.a.Herab.d.Pauschal.z.Forderung','A','I','','0273000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0273100','Ertr.a.Herab.d.Einzelw.z.Forderunge','A','I','','0273100');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0273200','Ertr. aus abgeschriebenen Forderung','A','I','','0273200');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0274200','Versicherungsentschädigungen','A','I','','0274200');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0286000','Gewinnvortrag nach Verwendung','A','L','','0286000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0286800','Verlustvortrag nach Verwendung','A','L','','0286800');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0286900','Vortrag auf neue Rechnungen','A','L','','0286900');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0375000','Erhaltene Boni 7% Vorsteuer','A','I','','0375000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0376000','Erhaltene Boni 16% Vorsteuer','A','I','','0376000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0380000','Anschaffungsnebenkosten','A','E','IC_cogs:IC_expense','0380000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0383000','Leergut','A','E','IC_cogs:IC_expense','0383000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0385000','Zölle und Einfuhrabgaben','A','E','IC_cogs:IC_expense','0385000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0396000','Bestandsver.Roh-,Hilfs-.Betriebs.','A','E','','0396000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0397000','Bestand Roh-,Hilfs-,u.Betriebsstoff','A','A','IC','0397000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0398000','Bestand Waren','A','E','IC','0398000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0399000','Verrechnete Stoffkosten','A','E','IC_cogs:IC_expense','0399000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0400000','Material-und Stoffverbrauch','A','E','IC_cogs:IC_expense','0400000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0410000','Löhne und Gehälter','A','E','AP_amount','0410000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0412500','Ehegattengehalt','A','E','AP_amount','0412500');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0340000','Wareneingang 16% Vorsteuer','A','E','AP_amount','0340000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0342000','Innergemein.Erwerb 7% VorSt u. Ust','A','E','AP_amount','0342000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0342500','Innergem.Erwerb 16% VorSt u. Ust','A','E','AP_amount','0342500');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0373100','Erhaltene Skonti 7% Vorsteuer','A','I','AP_paid','0373100');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0373500','Erhaltene Skonti 16% Vorsteuer','A','I','AP_paid','0373500');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0330000','Wareneingang 7% Vorsteuer','A','E','AP_amount','0330000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0413000','Gesetzlich soziale Aufwendungen','A','E','AP_amount','0413000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0413800','Beiträge zur Berufsgenossenschaftr','A','E','AP_amount','0413800');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0414500','Freiwillige sozi.Aufw.lohnsteuerfr.','A','E','AP_amount','0414500');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0414900','Pauschale Lohnsteuera.sons.Bezüge','A','E','AP_amount','0414900');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0416500','Aufwendung f.Altersversorgung','A','E','AP_amount','0416500');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0417000','Vermögenswirksame Leistungen','A','E','AP_amount','0417000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0420000','Raumkosten','A','E','AP_amount:AP_tax','0420000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0417500','Fahrtkostenerst.Wohnung/Arbeitsstät','A','E','AP_amount','0417500');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0419000','Aushilfslöhne','A','E','AP_amount','0419000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0419900','Lohnsteuer für Aushilfe','A','E','AP_amount','0419900');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0159000','Durchlaufende Posten','A','A','','0159000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0422000','Pacht','A','E','AP_amount','0422000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0423000','Heizung','A','E','AP_amount','0423000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0424000','Gas,Strom, Wasser','A','E','AP_amount','0424000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0425000','Reinigung','A','E','AP_amount','0425000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0426000','Instandhaltung betrieb.Räume','A','E','AP_amount','0426000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0428000','Sonstige Raumkosten','A','E','AP_amount','0428000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0432000','Gewerbesteuer','A','E','AP_amount','0432000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0434000','Sonstige Betriebssteuern','A','E','','0434000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0436000','Versicherungen','A','E','','0436000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0438000','Beiträge','A','E','','0438000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0439000','Sonstige Abgaben','A','E','AP_amount','0439000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0450000','Fahrzugkosten','A','E','','0450000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0451000','Kfz-Steuer','A','E','','0451000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0452000','Kfz-Versicherungen','A','E','','0452000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0453000','Laufende Kfz-Betriebskosten','A','E','AP_amount','0453000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0454000','Kfz-Reparaturen','A','E','AP_amount','0454000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0455000','Garagenmiete','A','E','AP_amount','0455000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0457000','Fremdfahrzeuge','A','E','AP_amount','0457000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0458000','Sonstige Kfz-Kosten','A','E','AP_amount','0458000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0461000','Werbekosten','A','E','AP_amount','0461000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0463000','Geschenke bis 40 EUR','A','E','AP_amount','0463000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0463500','Geschenke über 40 EUR','A','E','AP_amount','0463500');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0464000','Repräsentationskosten','A','E','AP_amount','0464000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0465000','Bewirtungskosten','A','E','AP_amount','0465000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0465400','Nicht abzugsfähige Bewirtungskosten','A','E','AP_amount','0465400');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0465500','Nicht abzugsfähige Betriebsausgaben','A','E','','0465500');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0466300','Reisekosten Arbeitn.m.Vorsteuerabzu','A','E','AP_amount','0466300');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0466600','Reisekosten Arbeitn.Übernachtungsau','A','E','','0466600');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0466800','Kilometerentgelderstattung Arbeitne','A','E','','0466800');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0467400','Reisekosten Untern.Verpflegungsmehr','A','E','','0467400');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0467600','Reisekosten Untern.Übernachtungsauf','A','E','','0467600');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0467800','Kilometererstattungsgeld Unternehme','A','E','','0467800');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0470000','Kosten der Warenabgabe','A','E','IC_cogs','0470000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0471000','Verpackungsmaterial','A','E','IC_cogs','0471000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0473000','Ausgangsfracht','A','E','IC_cogs','0473000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0475000','Transportversicherung','A','E','IC_cogs','0475000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0476000','Verkaufsprovision','A','E','IC_cogs','0476000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0478000','Fremdarbeiten','A','E','IC_cogs','0478000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0479000','Aufwand für Gewährleistungen','A','E','','0479000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0480900','Sonstige Reparaturen u.Instandhalt.','A','E','AP_amount','0480900');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0481000','Mietleasing','A','E','AP_amount','0481000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0481500','Kaufleasing','A','E','AP_amount','0481500');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0482000','AfA a.Aufw.f.d.Inga.u.Erw.Geschäfts','A','E','AP_amount','0482000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0482100','AfA a.Aufw.f.d.Währungsumst.a.Euro','A','E','AP_amount','0482100');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0483000','Abschreibungen auf Sachanlagen','A','E','AP_amount','0483000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0485500','Sofortabschreibung GWG','A','E','AP_amount','0485500');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0491000','Porto','A','E','AP_amount','0491000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0492000','Telefon','A','E','AP_amount','0492000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0492500','Telefax','A','E','AP_amount','0492500');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0493000','Bürobedarf','A','E','AP_amount','0493000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0494000','Zeitschriften, Bücher','A','E','AP_amount','0494000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0494500','Fortbildungskosten','A','E','AP_amount','0494500');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0494600','Freiwillige Sozialleistungen','A','E','','0494600');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0495000','Rechts- und Beratungskosten','A','E','AP_amount','0495000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0495500','Buchführungskosten','A','E','AP_amount','0495500');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0495700','Abschluß- und Prüfungskosten','A','E','AP_amount','0495700');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0496000','Mieten für Einrichtungen','A','E','AP_amount','0496000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0497000','Nebenkosten des Geldverkehrs','A','E','','0497000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0498000','Betriebsbedarf','A','E','AP_amount','0498000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0498500','Werkzeuge und Kleingeräte','A','E','AP_amount','0498500');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0498600','Sonstige Aufwendungen (Ausbuchung)','A','E','AP_amount','0498600');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0700000','Unfertige Erzeu.unfert.Leistungen','A','A','','0700000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0136000','Geldtransit','A','A','','0136000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0705000','Unfertige Erzeugnisse','A','A','IC','0705000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0708000','Unfertige Leistungen','A','A','IC','0708000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0711000','Fertige Erzeugnisse (Bestand)','A','A','IC','0711000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0714000','Waren (Bestand)','A','A','IC','0714000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0873100','Gewährte Skonti 7% USt','A','I','AP_paid','0873100');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0873500','Gewährte Skonti 16% USt.','A','I','AP_paid','0873500');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0875000','Gewährte Boni 7% USt.','A','I','','0875000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0876000','Gewährte Boni 16% USt.','A','I','','0876000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0882000','Erlöse aus Anlageverkäufen 16%Ust','A','I','IC_sale','0882000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0895500','Umsatzsteuervergütungen','A','I','','0895500');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0890500','Entnahme v. Gegenst.o.USt.','A','I','','0890500');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0900000','Saldenverträge,Sachkonten','A','A','','0900000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0900800','Saldenverträge,Debitoren','A','A','','0900800');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0900900','Saldenverträge,Kreditoren','A','L','','0900900');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0266000','Erträge aus Kursdifferenzen','A','I','','0266000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0215000','Aufwendungen aus Kursdifferenzen','A','E','','0215000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0850000','Provisionserlöse','A','I','AR_amount:IC_income','0850000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0157100','Abziebare Vorsteuer 7%','A','A','AP_tax','0157100');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0157500','Abziehbare Vorsteuer 16%','A','A','AP_tax:AP_paid','0157500');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0177100','Umsatzsteuer 7%','A','L','AR_tax:IC_taxpart:IC_taxservice','0177100');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0177500','Umsatzsteuer 16%','A','L','AR_tax:IC_taxpart:IC_taxservice','0177500');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0830000','Erlöse 7%USt','A','I','AR_amount:IC_sale:IC_income','0830000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('0840000','Erlöse 16% USt.','A','I','AR_amount:IC_sale:IC_income','0840000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('950','Rückstellungen','H','L','','');
+--
+update defaults set inventory_accno_id = (select id from chart where accno = '0398000'), income_accno_id = (select id from chart where accno = '0840000'), expense_accno_id = (select id from chart where accno = '0399000'), fxgain_accno_id = (select id from chart where accno = '0266000'), fxloss_accno_id = (select id from chart where accno = '0215000'), curr = 'EUR:USD', weightunit = 'kg';
+--
+INSERT INTO tax (chart_id,rate) VALUES ((SELECT id FROM chart WHERE accno = '0157100'),0.07);
+INSERT INTO tax (chart_id,rate) VALUES ((SELECT id FROM chart WHERE accno = '0157500'),0.16);
+INSERT INTO tax (chart_id,rate) VALUES ((SELECT id FROM chart WHERE accno = '0177100'),0.07);
+INSERT INTO tax (chart_id,rate) VALUES ((SELECT id FROM chart WHERE accno = '0177500'),0.16);
+
diff --git a/sql/Germany-DATEV-SKR03-gifi.sql b/sql/Germany-DATEV-SKR03-gifi.sql
new file mode 100755
index 00000000..6097707e
--- /dev/null
+++ b/sql/Germany-DATEV-SKR03-gifi.sql
@@ -0,0 +1,550 @@
+-- DATEV SKR03
+--
+INSERT INTO gifi (accno,description) VALUES ('0000100', 'Aufwand Geschäftsbetrieb');
+INSERT INTO gifi (accno,description) VALUES ('0000200', 'Aufwendungen Umstellung a.d.Euro');
+INSERT INTO gifi (accno,description) VALUES ('0001000', 'Konzession,gewerb.Schutzre.u.Werten');
+INSERT INTO gifi (accno,description) VALUES ('0001500', 'Konzessionen');
+INSERT INTO gifi (accno,description) VALUES ('0002700', 'EDV-Software');
+INSERT INTO gifi (accno,description) VALUES ('0003500', 'Geschäfts-oder Firmenwert');
+INSERT INTO gifi (accno,description) VALUES ('0003800', 'Anzahlungen a.Geschäft-o.Firmenwert');
+INSERT INTO gifi (accno,description) VALUES ('0003900', 'Anz.a.immaterielle Vermögsgegenstän');
+INSERT INTO gifi (accno,description) VALUES ('0004000', 'Verschmelzungsmehrwert');
+INSERT INTO gifi (accno,description) VALUES ('0005000', 'Grundstücke,grundstücksgl.Rechte..');
+INSERT INTO gifi (accno,description) VALUES ('0006000', 'Grundstücke u.grundstgl.Rech.o.Baut');
+INSERT INTO gifi (accno,description) VALUES ('0008000', 'Bauten a.eig. Grundstücken,Grgl.Rec');
+INSERT INTO gifi (accno,description) VALUES ('0008500', 'Grundstückswert eige.bebau.Grundst.');
+INSERT INTO gifi (accno,description) VALUES ('0009000', 'Geschäftsbauten');
+INSERT INTO gifi (accno,description) VALUES ('0010000', 'Fabrikbauten');
+INSERT INTO gifi (accno,description) VALUES ('0011000', 'Garagen');
+INSERT INTO gifi (accno,description) VALUES ('0011100', 'Außenanlagen');
+INSERT INTO gifi (accno,description) VALUES ('0011200', 'Hof-und Wegebefestigung');
+INSERT INTO gifi (accno,description) VALUES ('0011500', 'Andere Bauten');
+INSERT INTO gifi (accno,description) VALUES ('0012000', 'Geschäfts-,Fabrik-,andere Bau.imBau');
+INSERT INTO gifi (accno,description) VALUES ('0012900', 'Anz.Geschäfts-,Fabrik u. and.Bauten');
+INSERT INTO gifi (accno,description) VALUES ('0015000', 'Wohnbauten im Bau');
+INSERT INTO gifi (accno,description) VALUES ('0016000', 'Bauten auf fremden Grundstücken');
+INSERT INTO gifi (accno,description) VALUES ('0016500', 'Geschäftsbauten');
+INSERT INTO gifi (accno,description) VALUES ('0017000', 'Fabrikbauten');
+INSERT INTO gifi (accno,description) VALUES ('0017500', 'Garagen');
+INSERT INTO gifi (accno,description) VALUES ('0017600', 'Außenanlage');
+INSERT INTO gifi (accno,description) VALUES ('0020000', 'Techn.Anlagen und Maschinen');
+INSERT INTO gifi (accno,description) VALUES ('0021000', 'Maschinen');
+INSERT INTO gifi (accno,description) VALUES ('0022000', 'Maschinengebundene Werkzeuge');
+INSERT INTO gifi (accno,description) VALUES ('0024000', 'Maschinelle Anlagen');
+INSERT INTO gifi (accno,description) VALUES ('0028000', 'Betriebsvorrichtung');
+INSERT INTO gifi (accno,description) VALUES ('0029000', 'Techn.Anlagen u.Maschinen im Bau');
+INSERT INTO gifi (accno,description) VALUES ('0029900', 'Anz.a.techn.Anlagen und Maschinen');
+INSERT INTO gifi (accno,description) VALUES ('0030000', 'Andere Anlagen,Betrieb-Geschäftsaus');
+INSERT INTO gifi (accno,description) VALUES ('0031000', 'Andere Anlagen');
+INSERT INTO gifi (accno,description) VALUES ('0032000', 'PKW');
+INSERT INTO gifi (accno,description) VALUES ('0035000', 'LKW');
+INSERT INTO gifi (accno,description) VALUES ('0040000', 'Betriebsausstattung');
+INSERT INTO gifi (accno,description) VALUES ('0041000', 'Geschäftsausstattung');
+INSERT INTO gifi (accno,description) VALUES ('0042000', 'Büroeinrichtung');
+INSERT INTO gifi (accno,description) VALUES ('0043000', 'Ladeneinrichtung');
+INSERT INTO gifi (accno,description) VALUES ('0048000', 'Geringwertige Wirtschaftsg.b.800DM');
+INSERT INTO gifi (accno,description) VALUES ('0049000', 'Sons.Betriebs- Geschäftsausstattung');
+INSERT INTO gifi (accno,description) VALUES ('0049800', 'And. Anlagen,Betrieb/Geschäf.im Bau');
+INSERT INTO gifi (accno,description) VALUES ('0049900', 'Anz.and.Anlagen,Betrieb.Geschäftsau');
+INSERT INTO gifi (accno,description) VALUES ('0050000', 'Anteile a.verb.Unternehmen');
+INSERT INTO gifi (accno,description) VALUES ('0050400', 'Ant.a.herr.o.m.Mehrh.bet.Ges.schaft');
+INSERT INTO gifi (accno,description) VALUES ('0050500', 'Ausleihung an verb.Unternehmen');
+INSERT INTO gifi (accno,description) VALUES ('0051000', 'Beteiligungen');
+INSERT INTO gifi (accno,description) VALUES ('0051300', 'Typisch stille Beteiligungen');
+INSERT INTO gifi (accno,description) VALUES ('0051600', 'Atypische stille Beteiligungen');
+INSERT INTO gifi (accno,description) VALUES ('0052000', 'Ausl.a.Untern.m.Beteiligungsverhält');
+INSERT INTO gifi (accno,description) VALUES ('0052500', 'Wertpapiere des Anlagevermögens');
+INSERT INTO gifi (accno,description) VALUES ('0054000', 'Sonstige Ausleihungen');
+INSERT INTO gifi (accno,description) VALUES ('0057000', 'Genossenschaftsan.z.langf.Verbleib');
+INSERT INTO gifi (accno,description) VALUES ('0059500', 'Rückdeckansp.Lebensvers.langf.Verbl');
+INSERT INTO gifi (accno,description) VALUES ('0060000', 'Anleihen-nicht konvertibel');
+INSERT INTO gifi (accno,description) VALUES ('0063000', 'Verbindl.gegenüber Kreditinstituten');
+INSERT INTO gifi (accno,description) VALUES ('0070000', 'Verbind.gegenüber verb.Unternehmern');
+INSERT INTO gifi (accno,description) VALUES ('0071500', 'Verbind.gegen.Untern.m.Beteili.Verh');
+INSERT INTO gifi (accno,description) VALUES ('0073000', 'Verbindlichkeiten gegen. Gesellscha');
+INSERT INTO gifi (accno,description) VALUES ('0076000', 'Darl.typ.stiller Gesellschafter');
+INSERT INTO gifi (accno,description) VALUES ('0078000', 'Partiarische Darlehen');
+INSERT INTO gifi (accno,description) VALUES ('0080000', 'Gezeichnetes Kapital');
+INSERT INTO gifi (accno,description) VALUES ('0080100', 'Ausst.Einl.a.d.gezeichnete Kapital');
+INSERT INTO gifi (accno,description) VALUES ('0084000', 'Kapitalrücklage');
+INSERT INTO gifi (accno,description) VALUES ('0084600', 'Gesetzliche Rücklage');
+INSERT INTO gifi (accno,description) VALUES ('0085000', 'Rücklage für eigene Anteile');
+INSERT INTO gifi (accno,description) VALUES ('0085100', 'Satzungsmäßige Rücklagen');
+INSERT INTO gifi (accno,description) VALUES ('0086000', 'Gewinnvortrag vor Verwendung');
+INSERT INTO gifi (accno,description) VALUES ('0086800', 'Verlustvortrag vor Verwendung');
+INSERT INTO gifi (accno,description) VALUES ('0086900', 'Vortrag auf neue Rechnungen');
+INSERT INTO gifi (accno,description) VALUES ('0087000', 'Festkapital');
+INSERT INTO gifi (accno,description) VALUES ('0088000', 'Variables Kapital');
+INSERT INTO gifi (accno,description) VALUES ('0089000', 'Gesellschafter-Darlehen');
+INSERT INTO gifi (accno,description) VALUES ('0090000', 'Kommandit-Kapital');
+INSERT INTO gifi (accno,description) VALUES ('0091000', 'Verlustausgleichskonto');
+INSERT INTO gifi (accno,description) VALUES ('0092000', 'Gesellschafter-Darlehen');
+INSERT INTO gifi (accno,description) VALUES ('0093000', 'Sonderposten mit Rücklagenanteil');
+INSERT INTO gifi (accno,description) VALUES ('0093100', 'Sopo m.Rückl.ant.nach §6b EstG');
+INSERT INTO gifi (accno,description) VALUES ('0093200', 'Sopo m.Rückl.ant.Abschn.35 EstR');
+INSERT INTO gifi (accno,description) VALUES ('0093500', 'Sopo aus Währungsumstellung Euro');
+INSERT INTO gifi (accno,description) VALUES ('0094700', 'Sopo m.Rückl.ant. §7g Abs.1 EstG');
+INSERT INTO gifi (accno,description) VALUES ('0094800', 'Sopo m.Rückl.ant. §7g Abs.3,7 EstG');
+INSERT INTO gifi (accno,description) VALUES ('0095500', 'Steuerrückstellung');
+INSERT INTO gifi (accno,description) VALUES ('0095700', 'Gewerbesteuerrückstellung');
+INSERT INTO gifi (accno,description) VALUES ('0096300', 'Körperschaftssteuerrückstellung');
+INSERT INTO gifi (accno,description) VALUES ('0096900', 'Rückstellung für latente Steuern');
+INSERT INTO gifi (accno,description) VALUES ('0097000', 'Sonstige Rückstellungen');
+INSERT INTO gifi (accno,description) VALUES ('0097400', 'Rückstellungen für Gewährleistungen');
+INSERT INTO gifi (accno,description) VALUES ('0097600', 'Rücks.f.drohe.Verl.schweb.Geschäft');
+INSERT INTO gifi (accno,description) VALUES ('0097700', 'Rücks.f.Abschluß-u.Prüfungskosten');
+INSERT INTO gifi (accno,description) VALUES ('0097800', 'Aufwandsrückstellungen');
+INSERT INTO gifi (accno,description) VALUES ('0098000', 'Aktive Rechnungsabgrenzung');
+INSERT INTO gifi (accno,description) VALUES ('0098300', 'Abgrenzung aktive latente Steuern');
+INSERT INTO gifi (accno,description) VALUES ('0098600', 'Damnum/Disagio');
+INSERT INTO gifi (accno,description) VALUES ('0099000', 'Passive Rechnungsabgrenzung');
+INSERT INTO gifi (accno,description) VALUES ('0099200', 'Wertberichtigungen');
+INSERT INTO gifi (accno,description) VALUES ('0099600', 'Pauschalwertb.m.Restlaufzeit v. 1J.');
+INSERT INTO gifi (accno,description) VALUES ('0099800', 'Einzelwertber.m.Restlaufzeit v.1 J.');
+INSERT INTO gifi (accno,description) VALUES ('0100000', 'Kasse');
+INSERT INTO gifi (accno,description) VALUES ('0110000', 'Postbank');
+INSERT INTO gifi (accno,description) VALUES ('0120000', 'Bank');
+INSERT INTO gifi (accno,description) VALUES ('0121000', 'Dresdner Bank AG');
+INSERT INTO gifi (accno,description) VALUES ('0121009', 'Verrechnungskonto Dresdner Bank AG');
+INSERT INTO gifi (accno,description) VALUES ('0122000', 'Deutsche Bank AG');
+INSERT INTO gifi (accno,description) VALUES ('0130000', 'Wechsel a. Lieferungen u.Leistungen');
+INSERT INTO gifi (accno,description) VALUES ('0131000', 'Besitzwechsel geg.verb.Unternehmen');
+INSERT INTO gifi (accno,description) VALUES ('0132000', 'Besitzw.geg.Untern.m.Beteiligungsve');
+INSERT INTO gifi (accno,description) VALUES ('0132700', 'Finanzwechsel');
+INSERT INTO gifi (accno,description) VALUES ('0133000', 'Schecks (Eingang)');
+INSERT INTO gifi (accno,description) VALUES ('0133300', 'Schecks (Ausgang)');
+INSERT INTO gifi (accno,description) VALUES ('0133500', 'Überweisungen (unterwegs)');
+INSERT INTO gifi (accno,description) VALUES ('0134000', 'Anteile verb.Untern.-Umlaufvermögen');
+INSERT INTO gifi (accno,description) VALUES ('0134400', 'Anteil an herr.m.betei.Gesellschaft');
+INSERT INTO gifi (accno,description) VALUES ('0134500', 'Eigene Anteile');
+INSERT INTO gifi (accno,description) VALUES ('0134800', 'Sonstige Wertpapiere');
+INSERT INTO gifi (accno,description) VALUES ('0136000', 'Geldtransit');
+INSERT INTO gifi (accno,description) VALUES ('0136100', 'Geldtransit (Überweisungen)');
+INSERT INTO gifi (accno,description) VALUES ('0136200', 'Geldtransit,Bankeinzug/Lastschrift');
+INSERT INTO gifi (accno,description) VALUES ('0136300', 'Scheck / Wechsel');
+INSERT INTO gifi (accno,description) VALUES ('0140000', 'Ford. a.Lieferungen und Leistungen');
+INSERT INTO gifi (accno,description) VALUES ('0141100', 'Forderungssammelkonto Vorausre.');
+INSERT INTO gifi (accno,description) VALUES ('0141200', 'Forderungssammelkonto Anzahlungen');
+INSERT INTO gifi (accno,description) VALUES ('0146000', 'Zweifelhafte Forderungen');
+INSERT INTO gifi (accno,description) VALUES ('0147000', 'Forder.a.Liefe.u.Leis.geg.verb.Unte');
+INSERT INTO gifi (accno,description) VALUES ('0147800', 'Wertb.a.Ford.m.Rest.1j.geg.verb.Unt');
+INSERT INTO gifi (accno,description) VALUES ('0148000', 'Lief.u.Leis.geg.Untern.m.Beteiligve');
+INSERT INTO gifi (accno,description) VALUES ('0148800', 'Wertb.a.Ford.m.Rest.1j.Beteiligungs');
+INSERT INTO gifi (accno,description) VALUES ('0149000', 'Forderung a.Leis.u.Lief.geg.Gesells');
+INSERT INTO gifi (accno,description) VALUES ('0150000', 'Sonstige Vermögensgegenstände');
+INSERT INTO gifi (accno,description) VALUES ('0150300', 'Forde.geg.Vorstandsm.u.Geschäftsfüh');
+INSERT INTO gifi (accno,description) VALUES ('0150800', 'Forderungen gegen Gesellschafter');
+INSERT INTO gifi (accno,description) VALUES ('0151000', 'Geleistete Anzahlung auf Vorräte');
+INSERT INTO gifi (accno,description) VALUES ('0151100', 'Geleistete Anzahlungen 7%');
+INSERT INTO gifi (accno,description) VALUES ('0151700', 'Geleistete Anzahlung 16%');
+INSERT INTO gifi (accno,description) VALUES ('0152500', 'Kautionen');
+INSERT INTO gifi (accno,description) VALUES ('0153000', 'Forderungen gegen Personal');
+INSERT INTO gifi (accno,description) VALUES ('0154000', 'Steuerüberzahlungen');
+INSERT INTO gifi (accno,description) VALUES ('0154500', 'Umsatzsteuerforderungen');
+INSERT INTO gifi (accno,description) VALUES ('0154800', 'Vorsteuer im Folgejahr abziehbar');
+INSERT INTO gifi (accno,description) VALUES ('0154900', 'Körperschaftsteuerrückforderung');
+INSERT INTO gifi (accno,description) VALUES ('0155000', 'Darlehen');
+INSERT INTO gifi (accno,description) VALUES ('0156000', 'Aufzuteilende Vorsteuer');
+INSERT INTO gifi (accno,description) VALUES ('0156500', 'Aufzuteilende Vorsteuer 16%');
+INSERT INTO gifi (accno,description) VALUES ('0157000', 'Abziehbare Vorsteuer');
+INSERT INTO gifi (accno,description) VALUES ('0157100', 'Abziebare Vorsteuer 7%');
+INSERT INTO gifi (accno,description) VALUES ('0157200', 'Abziehb. VorSt innergemein. Erwerb');
+INSERT INTO gifi (accno,description) VALUES ('0157300', 'Abziehb.VorSt. innergem.Erwerb 16%');
+INSERT INTO gifi (accno,description) VALUES ('0157500', 'Abziehbare Vorsteuer 16%');
+INSERT INTO gifi (accno,description) VALUES ('0157800', 'Berichtigung d.Vorstabzugs früh.J.');
+INSERT INTO gifi (accno,description) VALUES ('0157900', 'Vorsteuer 0%');
+INSERT INTO gifi (accno,description) VALUES ('0158400', 'abziehb.VorSt IG Erwerb Neufahrzeug');
+INSERT INTO gifi (accno,description) VALUES ('0158800', 'Bezahlte Einfuhrumsatzsteuer');
+INSERT INTO gifi (accno,description) VALUES ('0159000', 'Durchlaufende Posten');
+INSERT INTO gifi (accno,description) VALUES ('0159400', 'Forderungen geg. verb. Unternehmen');
+INSERT INTO gifi (accno,description) VALUES ('0159700', 'Ford.geg.Untern.m.Beteiligungsverh.');
+INSERT INTO gifi (accno,description) VALUES ('0160000', 'Verbindlichkeiten aus Lief.u.Leist.');
+INSERT INTO gifi (accno,description) VALUES ('0160100', 'Verbindlichkeiten a.Lief.und Leist.');
+INSERT INTO gifi (accno,description) VALUES ('0163000', 'Verbindl.Lief.u.Leist.gegü.verb.Unt');
+INSERT INTO gifi (accno,description) VALUES ('0164000', 'Verb.L.u.L gegü.Unter.Beteiligungsv');
+INSERT INTO gifi (accno,description) VALUES ('0165000', 'Verb.L.u.L gegü.Gesellschaftern');
+INSERT INTO gifi (accno,description) VALUES ('0166000', 'Schuldwechsel');
+INSERT INTO gifi (accno,description) VALUES ('0170000', 'Sonstige Verbindlichkeiten');
+INSERT INTO gifi (accno,description) VALUES ('0170500', 'Darlehen');
+INSERT INTO gifi (accno,description) VALUES ('0170900', 'Gewinnverfügungskonto stiller Ges.');
+INSERT INTO gifi (accno,description) VALUES ('0171000', 'Erhaltene Anzahlungen-Verbindlichke');
+INSERT INTO gifi (accno,description) VALUES ('0171100', 'Erhaltene,versteuert Anzahlungen 7%');
+INSERT INTO gifi (accno,description) VALUES ('0171700', 'Erhaltene,versteuerte Anzahl. 16%');
+INSERT INTO gifi (accno,description) VALUES ('0171900', 'Erhaltene Anzahlungen bis 1j.');
+INSERT INTO gifi (accno,description) VALUES ('0172200', 'Erhaltene Anzahlung');
+INSERT INTO gifi (accno,description) VALUES ('0172300', 'Verbindlichkeiten S-konto Vorausre.');
+INSERT INTO gifi (accno,description) VALUES ('0173200', 'Erhaltene Kautionen');
+INSERT INTO gifi (accno,description) VALUES ('0174100', 'Verbindl.a.Lohn-und Kirchensteuer');
+INSERT INTO gifi (accno,description) VALUES ('0175500', 'Lohn-und Gehaltsverrechnung');
+INSERT INTO gifi (accno,description) VALUES ('0175800', 'USt-Abzugsverfahren 16%');
+INSERT INTO gifi (accno,description) VALUES ('0175900', 'Ust 0%');
+INSERT INTO gifi (accno,description) VALUES ('0176000', 'Umsatzsteuer nicht fällig');
+INSERT INTO gifi (accno,description) VALUES ('0176100', 'Umsatzsteuer nicht fällig 7%');
+INSERT INTO gifi (accno,description) VALUES ('0176200', 'Umsatzsteuer nicht fällig EG Lief.');
+INSERT INTO gifi (accno,description) VALUES ('0177000', 'Umsatzsteuer');
+INSERT INTO gifi (accno,description) VALUES ('0177100', 'Umsatzsteuer 7%');
+INSERT INTO gifi (accno,description) VALUES ('0177200', 'Umsatzsteuer aus innergem. Erwerb');
+INSERT INTO gifi (accno,description) VALUES ('0177300', 'Umsatzsteuer innergem.Erwerb 16%');
+INSERT INTO gifi (accno,description) VALUES ('0177500', 'Umsatzsteuer 16%');
+INSERT INTO gifi (accno,description) VALUES ('0177700', 'Ust aus im Inland stpfl. EG-Lief16%');
+INSERT INTO gifi (accno,description) VALUES ('0178000', 'Umsatzsteuer-Vorauszahlungen');
+INSERT INTO gifi (accno,description) VALUES ('0178100', 'Umsatzsteuer-Vorauszahlung 1/11');
+INSERT INTO gifi (accno,description) VALUES ('0178300', 'In Rechn unberecht.ausgew.gesch Ust');
+INSERT INTO gifi (accno,description) VALUES ('0178400', 'Ust IG Erwerb Neufahrzeug o.Ust ID');
+INSERT INTO gifi (accno,description) VALUES ('0178800', 'Einfuhrumsatzsteuer augeschoben bis');
+INSERT INTO gifi (accno,description) VALUES ('0178900', 'Umsatzsteuer laufendes Jahr');
+INSERT INTO gifi (accno,description) VALUES ('0179000', 'Umsatzsteuer Vorjahr');
+INSERT INTO gifi (accno,description) VALUES ('0179100', 'Umsatzsteuer frühere Jahre');
+INSERT INTO gifi (accno,description) VALUES ('0179200', 'Sonstige Verrechnungskonten');
+INSERT INTO gifi (accno,description) VALUES ('0180000', 'Privatentnahme allgemein');
+INSERT INTO gifi (accno,description) VALUES ('0181000', 'Privatsteuern');
+INSERT INTO gifi (accno,description) VALUES ('0189000', 'Privateinlagen');
+INSERT INTO gifi (accno,description) VALUES ('0200000', 'Außerordentliche Aufwendung');
+INSERT INTO gifi (accno,description) VALUES ('0201000', 'Betriebsfremde Aufwendungen');
+INSERT INTO gifi (accno,description) VALUES ('0202000', 'Periodenfremde Aufwendungen');
+INSERT INTO gifi (accno,description) VALUES ('0210000', 'Zinsen und ähnl.Aufwendungen');
+INSERT INTO gifi (accno,description) VALUES ('0210300', 'Steuerl.abzugsfähig,and.Nebenl.Steu');
+INSERT INTO gifi (accno,description) VALUES ('0210400', 'Steuerl.nicht.abzugsf.ande.Nl.z.Ste');
+INSERT INTO gifi (accno,description) VALUES ('0210700', 'Zinsaufwendung-betriebliche Steuern');
+INSERT INTO gifi (accno,description) VALUES ('0210800', 'Zinsaufwendung-Personsteuer');
+INSERT INTO gifi (accno,description) VALUES ('0210900', 'Zinsaufwendungen an verb.Unternehm.');
+INSERT INTO gifi (accno,description) VALUES ('0211000', 'Zinsaufwendung f.kurzf.Verbindlichk');
+INSERT INTO gifi (accno,description) VALUES ('0212000', 'Zinsaufwendung f.langf.Verbindlichk');
+INSERT INTO gifi (accno,description) VALUES ('0213000', 'Diskontaufwendung');
+INSERT INTO gifi (accno,description) VALUES ('0215000', 'Aufwendungen aus Kursdifferenzen');
+INSERT INTO gifi (accno,description) VALUES ('0216500', 'Aufw.a.d.Währungsumstell.a.d.Euro');
+INSERT INTO gifi (accno,description) VALUES ('0217000', 'Nicht abziehbare Vorsteuer');
+INSERT INTO gifi (accno,description) VALUES ('0217100', 'Nicht abziehbare Vorsteuer 7%');
+INSERT INTO gifi (accno,description) VALUES ('0217500', 'Nicht abziehbare Vorsteuer 16%');
+INSERT INTO gifi (accno,description) VALUES ('0220000', 'Körperschaftssteuer');
+INSERT INTO gifi (accno,description) VALUES ('0220300', 'Körperschaftssteuer für Vorjahr');
+INSERT INTO gifi (accno,description) VALUES ('0220500', 'Anrechb.Körperschaftsst.vereinn.Kap');
+INSERT INTO gifi (accno,description) VALUES ('0220800', 'Solidaritätszuschlag');
+INSERT INTO gifi (accno,description) VALUES ('0220900', 'Solidaritätszuschlag für Vorjahr');
+INSERT INTO gifi (accno,description) VALUES ('0221000', 'Kapitalertragssteuer');
+INSERT INTO gifi (accno,description) VALUES ('0221300', 'Anrechb.Solidaritätszusch.a.Zinsabs');
+INSERT INTO gifi (accno,description) VALUES ('0221500', 'Zinsabschlagsteuer');
+INSERT INTO gifi (accno,description) VALUES ('0221800', 'Anrechb.Solidari.zuschlag a.Zinsabs');
+INSERT INTO gifi (accno,description) VALUES ('0228000', 'Stnachzahl.Vorj.v.Einkomm u.Ertrag');
+INSERT INTO gifi (accno,description) VALUES ('0228200', 'Sterstat.Vorj.Steuer v.Eink.u.Ertrag');
+INSERT INTO gifi (accno,description) VALUES ('0228400', 'Ertr.a.d.Aufl.v.Rücks.f.St.v.Ein.Er');
+INSERT INTO gifi (accno,description) VALUES ('0228500', 'Steuernachzahlung Vorj.f.sons.Steue');
+INSERT INTO gifi (accno,description) VALUES ('0228700', 'Steuererstattung Vorj.f.sons.Steuer');
+INSERT INTO gifi (accno,description) VALUES ('0228900', 'Erträge a.d.Aufl.v. Rück.f.sons.Ste');
+INSERT INTO gifi (accno,description) VALUES ('0230000', 'Sonstige Aufwendungen');
+INSERT INTO gifi (accno,description) VALUES ('0231000', 'Anlagenabgänge - bei Buchverlust');
+INSERT INTO gifi (accno,description) VALUES ('0231500', 'Anlagenabgänge-Buchgewinn');
+INSERT INTO gifi (accno,description) VALUES ('0232000', 'Verluste Abgang Gegenst.d.Anlagever');
+INSERT INTO gifi (accno,description) VALUES ('0232500', 'Verlust a.d.Abg.v.Gegens.d.Umlaufve');
+INSERT INTO gifi (accno,description) VALUES ('0234000', 'Einstellungen Sopo m.Rückanlageant.');
+INSERT INTO gifi (accno,description) VALUES ('0234500', 'Einstellungen Sopo m.R.(Sonderafa)');
+INSERT INTO gifi (accno,description) VALUES ('0237500', 'Grundsteuer');
+INSERT INTO gifi (accno,description) VALUES ('0240000', 'Forderungsverlust-übliche Höhe');
+INSERT INTO gifi (accno,description) VALUES ('0241000', 'Einstellungen Sopo m.Rückl.(§7g )');
+INSERT INTO gifi (accno,description) VALUES ('0243000', 'Forderungsverluste-unüblich hoch');
+INSERT INTO gifi (accno,description) VALUES ('0245000', 'Einstell.i.d.Pauschalwertbe.z.Forde');
+INSERT INTO gifi (accno,description) VALUES ('0245100', 'Einstell.i.d.Einzelwertb.z.Forderun');
+INSERT INTO gifi (accno,description) VALUES ('0249000', 'Aufwendung aus Verlustübernahme');
+INSERT INTO gifi (accno,description) VALUES ('0249200', 'Abgef.Gewinn aufgr.e.Gewinngemeinsc');
+INSERT INTO gifi (accno,description) VALUES ('0249300', 'Abgef.Gewinnant.an stille Gesellsch');
+INSERT INTO gifi (accno,description) VALUES ('0249500', 'Einst.Kapitalrückl.n.Vorschr.vere.K');
+INSERT INTO gifi (accno,description) VALUES ('0249600', 'Einstellungen in die gesetzl.Rückla');
+INSERT INTO gifi (accno,description) VALUES ('0250000', 'Außerordentliche Erträge');
+INSERT INTO gifi (accno,description) VALUES ('0251000', 'Betriebsfremde Erträge n.außerorden');
+INSERT INTO gifi (accno,description) VALUES ('0252000', 'Periodenfremde Erträge nicht außero');
+INSERT INTO gifi (accno,description) VALUES ('0260000', 'Erträge aus Beteiligten');
+INSERT INTO gifi (accno,description) VALUES ('0261700', 'Gewinn a.Anteila.nicht stbef.Kapita');
+INSERT INTO gifi (accno,description) VALUES ('0261900', 'Erträge a.Beteil.a.verb.Untérnehmer');
+INSERT INTO gifi (accno,description) VALUES ('0262000', 'Erträge a.anderen Wertp u.Ausl.Fina');
+INSERT INTO gifi (accno,description) VALUES ('0265000', 'Sonstige Zinsen und ähnliche Erträge');
+INSERT INTO gifi (accno,description) VALUES ('0265700', 'Zinserträge-betriebliche Steuern');
+INSERT INTO gifi (accno,description) VALUES ('0265800', 'Zinserträge-Körperschaftssteuer');
+INSERT INTO gifi (accno,description) VALUES ('0265900', 'Sons.Zinsen u.ähl.Ertr.a.verb.Unter');
+INSERT INTO gifi (accno,description) VALUES ('0266000', 'Erträge aus Kursdifferenzen');
+INSERT INTO gifi (accno,description) VALUES ('0266500', 'Erträge a.d.Währungumst.a.d. Euro');
+INSERT INTO gifi (accno,description) VALUES ('0267000', 'Diskonerträge');
+INSERT INTO gifi (accno,description) VALUES ('0270000', 'Sonstige Erträge');
+INSERT INTO gifi (accno,description) VALUES ('0270500', 'Sons.Erträge betrieb. u. regelmäßig');
+INSERT INTO gifi (accno,description) VALUES ('0271000', 'Ertrag a.d.Zuschreib.d.Anlagevermög');
+INSERT INTO gifi (accno,description) VALUES ('0271500', 'Ertr.a.Zuschreib.d.Umlaufvermögens');
+INSERT INTO gifi (accno,description) VALUES ('0272000', 'Ertr.a.d.Abgang v.Gegens.d.Anlageve');
+INSERT INTO gifi (accno,description) VALUES ('0272500', 'Ertr.a.d.Abg.v.Gegenst.d.Umlaufverm');
+INSERT INTO gifi (accno,description) VALUES ('0273000', 'Ertr.a.Herab.d.Pauschal.z.Forderung');
+INSERT INTO gifi (accno,description) VALUES ('0273100', 'Ertr.a.Herab.d.Einzelw.z.Forderunge');
+INSERT INTO gifi (accno,description) VALUES ('0273200', 'Ertr. aus abgeschriebenen Forderung');
+INSERT INTO gifi (accno,description) VALUES ('0273500', 'Ertr.a.d.Auflösung v.Rückstellungen');
+INSERT INTO gifi (accno,description) VALUES ('0273600', 'Ertr.a.d.steuerl.niedrig.Bewertung');
+INSERT INTO gifi (accno,description) VALUES ('0273700', 'Ertr.a.d..Aufl.v.Sonderp.m.Rücklage');
+INSERT INTO gifi (accno,description) VALUES ('0273800', 'Ertr.a.d.Aufl.v.Sopo.m.Rücklageant.');
+INSERT INTO gifi (accno,description) VALUES ('0273900', 'Erträge Aufl. Sopo m.R.(Ansparafa)');
+INSERT INTO gifi (accno,description) VALUES ('0274000', 'Erträge Auflösung Sopo (stfreie Rü)');
+INSERT INTO gifi (accno,description) VALUES ('0274100', 'Ertr.a.d.Aufl.v.Sonderp.m.Rücklagen');
+INSERT INTO gifi (accno,description) VALUES ('0274200', 'Versicherungsentschädigungen');
+INSERT INTO gifi (accno,description) VALUES ('0274300', 'Investitionszuschüsse-steuerpflicht');
+INSERT INTO gifi (accno,description) VALUES ('0274400', 'Investitionszulage-steuerfrei');
+INSERT INTO gifi (accno,description) VALUES ('0274500', 'Erträge aus Kapitalherabsetzung');
+INSERT INTO gifi (accno,description) VALUES ('0279000', 'Erträge aus Verlustübernahme');
+INSERT INTO gifi (accno,description) VALUES ('0279200', 'Erhalt.Gewinne aufgr.e.Gewinngemein');
+INSERT INTO gifi (accno,description) VALUES ('0279400', 'Erhalt.Gewinn aufgr.e.GAV-TeilGAV');
+INSERT INTO gifi (accno,description) VALUES ('0279500', 'Entnahme aus der Kapitalrücklage');
+INSERT INTO gifi (accno,description) VALUES ('0279600', 'Entnahme a.d. gesetzlichen Rücklage');
+INSERT INTO gifi (accno,description) VALUES ('0286000', 'Gewinnvortrag nach Verwendung');
+INSERT INTO gifi (accno,description) VALUES ('0286800', 'Verlustvortrag nach Verwendung');
+INSERT INTO gifi (accno,description) VALUES ('0286900', 'Vortrag auf neue Rechnungen');
+INSERT INTO gifi (accno,description) VALUES ('0287000', 'Vorabausschüttung');
+INSERT INTO gifi (accno,description) VALUES ('0289200', 'Verrechnete kalkulatorische Zinsen');
+INSERT INTO gifi (accno,description) VALUES ('0289300', 'Verrechnete kalkulatorische AfA');
+INSERT INTO gifi (accno,description) VALUES ('0299000', 'Aufwendung/Erträge Umrechnungsdiff');
+INSERT INTO gifi (accno,description) VALUES ('0300000', 'Roh,-Hilfs,-und Betriebsstoffe');
+INSERT INTO gifi (accno,description) VALUES ('0309000', 'Energiestoffe (Fertigung)');
+INSERT INTO gifi (accno,description) VALUES ('0310000', 'Fremdleistungen');
+INSERT INTO gifi (accno,description) VALUES ('0315000', 'Leist.v.ausländ.Untern.(0-Regelung)');
+INSERT INTO gifi (accno,description) VALUES ('0320000', 'Wareneingang');
+INSERT INTO gifi (accno,description) VALUES ('0330000', 'Wareneingang 7% Vorsteuer');
+INSERT INTO gifi (accno,description) VALUES ('0340000', 'Wareneingang 16% Vorsteuer');
+INSERT INTO gifi (accno,description) VALUES ('0342000', 'Innergemein.Erwerb 7% VorSt u. Ust');
+INSERT INTO gifi (accno,description) VALUES ('0342500', 'Innergem.Erwerb 16% VorSt u. Ust');
+INSERT INTO gifi (accno,description) VALUES ('0355000', 'Steuerfreier innergem.Erwerb');
+INSERT INTO gifi (accno,description) VALUES ('0360000', 'Nicht abziehbare Vorsteuer');
+INSERT INTO gifi (accno,description) VALUES ('0370000', 'Nachlässe');
+INSERT INTO gifi (accno,description) VALUES ('0371000', 'Nachlässe 7% Vorsteuer');
+INSERT INTO gifi (accno,description) VALUES ('0372000', 'Nachlässe 16% Vorsteuer');
+INSERT INTO gifi (accno,description) VALUES ('0373000', 'Erhaltene Skonti');
+INSERT INTO gifi (accno,description) VALUES ('0373100', 'Erhaltene Skonti 7% Vorsteuer');
+INSERT INTO gifi (accno,description) VALUES ('0373500', 'Erhaltene Skonti 16% Vorsteuer');
+INSERT INTO gifi (accno,description) VALUES ('0374000', 'Erhaltene Boni');
+INSERT INTO gifi (accno,description) VALUES ('0375000', 'Erhaltene Boni 7% Vorsteuer');
+INSERT INTO gifi (accno,description) VALUES ('0376000', 'Erhaltene Boni 16% Vorsteuer');
+INSERT INTO gifi (accno,description) VALUES ('0377000', 'Erhaltene Rabatte');
+INSERT INTO gifi (accno,description) VALUES ('0378000', 'Erhaltene Rabatte 7% Vorsteuer');
+INSERT INTO gifi (accno,description) VALUES ('0379000', 'Erhaltene Rabatte 16% Vorsteuer');
+INSERT INTO gifi (accno,description) VALUES ('0380000', 'Anschaffungsnebenkosten');
+INSERT INTO gifi (accno,description) VALUES ('0383000', 'Leergut');
+INSERT INTO gifi (accno,description) VALUES ('0385000', 'Zölle und Einfuhrabgaben');
+INSERT INTO gifi (accno,description) VALUES ('0396000', 'Bestandsver.Roh-,Hilfs-.Betriebs.');
+INSERT INTO gifi (accno,description) VALUES ('0397000', 'Bestand Roh-,Hilfs-,u.Betriebsstoff');
+INSERT INTO gifi (accno,description) VALUES ('0398000', 'Bestand Waren');
+INSERT INTO gifi (accno,description) VALUES ('0399000', 'Verrechnete Stoffkosten');
+INSERT INTO gifi (accno,description) VALUES ('0400000', 'Material-und Stoffverbrauch');
+INSERT INTO gifi (accno,description) VALUES ('0410000', 'Löhne und Gehälter');
+INSERT INTO gifi (accno,description) VALUES ('0412400', 'Geschäftsführ.gehälter GmbH-Gesell.');
+INSERT INTO gifi (accno,description) VALUES ('0412500', 'Ehegattengehalt');
+INSERT INTO gifi (accno,description) VALUES ('0412600', 'Tantiemen');
+INSERT INTO gifi (accno,description) VALUES ('0412700', 'Geschäftsführergehälter');
+INSERT INTO gifi (accno,description) VALUES ('0412800', 'Vergütung a.angestellte Mitunterneh');
+INSERT INTO gifi (accno,description) VALUES ('0413000', 'Gesetzlich soziale Aufwendungen');
+INSERT INTO gifi (accno,description) VALUES ('0413700', 'Gesetz.sozi.Aufw.f.Mitunternehmen');
+INSERT INTO gifi (accno,description) VALUES ('0413800', 'Beiträge zur Berufsgenossenschaftr');
+INSERT INTO gifi (accno,description) VALUES ('0414500', 'Freiwillige sozi.Aufw.lohnsteuerfr.');
+INSERT INTO gifi (accno,description) VALUES ('0414900', 'Pauschale Lohnsteuera.sons.Bezüge');
+INSERT INTO gifi (accno,description) VALUES ('0415000', 'Krankengeldzuschüsse');
+INSERT INTO gifi (accno,description) VALUES ('0416000', 'Versorgungskasse');
+INSERT INTO gifi (accno,description) VALUES ('0416500', 'Aufwendung f.Altersversorgung');
+INSERT INTO gifi (accno,description) VALUES ('0417000', 'Vermögenswirksame Leistungen');
+INSERT INTO gifi (accno,description) VALUES ('0417500', 'Fahrtkostenerst.Wohnung/Arbeitsstät');
+INSERT INTO gifi (accno,description) VALUES ('0419000', 'Aushilfslöhne');
+INSERT INTO gifi (accno,description) VALUES ('0419900', 'Lohnsteuer für Aushilfe');
+INSERT INTO gifi (accno,description) VALUES ('0420000', 'Raumkosten');
+INSERT INTO gifi (accno,description) VALUES ('0421000', 'Miete');
+INSERT INTO gifi (accno,description) VALUES ('0422000', 'Pacht');
+INSERT INTO gifi (accno,description) VALUES ('0423000', 'Heizung');
+INSERT INTO gifi (accno,description) VALUES ('0424000', 'Gas,Strom, Wasser');
+INSERT INTO gifi (accno,description) VALUES ('0425000', 'Reinigung');
+INSERT INTO gifi (accno,description) VALUES ('0426000', 'Instandhaltung betrieb.Räume');
+INSERT INTO gifi (accno,description) VALUES ('0427000', 'Abgaben f.betrieb.genutz.Grundstück');
+INSERT INTO gifi (accno,description) VALUES ('0428000', 'Sonstige Raumkosten');
+INSERT INTO gifi (accno,description) VALUES ('0430000', 'Nicht abziehbare Vorsteuer');
+INSERT INTO gifi (accno,description) VALUES ('0430100', 'Nicht abziehbare Vorsteuer 7%');
+INSERT INTO gifi (accno,description) VALUES ('0430500', 'Nicht abziehbare Vorsteuer 16%');
+INSERT INTO gifi (accno,description) VALUES ('0432000', 'Gewerbesteuer');
+INSERT INTO gifi (accno,description) VALUES ('0434000', 'Sonstige Betriebssteuern');
+INSERT INTO gifi (accno,description) VALUES ('0435000', 'Verbrauchssteuer');
+INSERT INTO gifi (accno,description) VALUES ('0435500', 'Ökosteuer');
+INSERT INTO gifi (accno,description) VALUES ('0436000', 'Versicherungen');
+INSERT INTO gifi (accno,description) VALUES ('0437000', 'Nettoprä.f.Rückd.künf.Versorgungsle');
+INSERT INTO gifi (accno,description) VALUES ('0438000', 'Beiträge');
+INSERT INTO gifi (accno,description) VALUES ('0439000', 'Sonstige Abgaben');
+INSERT INTO gifi (accno,description) VALUES ('0439600', 'Steuerl.abzugs.Verspä.u.Zwangsgelde');
+INSERT INTO gifi (accno,description) VALUES ('0450000', 'Fahrzugkosten');
+INSERT INTO gifi (accno,description) VALUES ('0451000', 'Kfz-Steuer');
+INSERT INTO gifi (accno,description) VALUES ('0452000', 'Kfz-Versicherungen');
+INSERT INTO gifi (accno,description) VALUES ('0453000', 'Laufende Kfz-Betriebskosten');
+INSERT INTO gifi (accno,description) VALUES ('0454000', 'Kfz-Reparaturen');
+INSERT INTO gifi (accno,description) VALUES ('0455000', 'Garagenmiete');
+INSERT INTO gifi (accno,description) VALUES ('0457000', 'Fremdfahrzeuge');
+INSERT INTO gifi (accno,description) VALUES ('0458000', 'Sonstige Kfz-Kosten');
+INSERT INTO gifi (accno,description) VALUES ('0460000', 'Werbe-und Reisekosten');
+INSERT INTO gifi (accno,description) VALUES ('0461000', 'Werbekosten');
+INSERT INTO gifi (accno,description) VALUES ('0463000', 'Geschenke bis 75 DM');
+INSERT INTO gifi (accno,description) VALUES ('0463500', 'Geschenke bis 75 DM');
+INSERT INTO gifi (accno,description) VALUES ('0463800', 'Geschenke ausschließl.betrieb.genut');
+INSERT INTO gifi (accno,description) VALUES ('0464000', 'Repräsentationskosten');
+INSERT INTO gifi (accno,description) VALUES ('0465000', 'Bewirtungskosten');
+INSERT INTO gifi (accno,description) VALUES ('0465300', 'Aufmerksamkeiten');
+INSERT INTO gifi (accno,description) VALUES ('0465400', 'Nicht abzugsfähige Bewirtungskosten');
+INSERT INTO gifi (accno,description) VALUES ('0465500', 'Nicht abzugsfähige Betriebsausgaben');
+INSERT INTO gifi (accno,description) VALUES ('0466000', 'Reisekosten Arbeitnehmer');
+INSERT INTO gifi (accno,description) VALUES ('0466300', 'Reisekosten Arbeitn.m.Vorsteuerabzu');
+INSERT INTO gifi (accno,description) VALUES ('0466400', 'Reisekosten Arbeitn.Verpflegungmehr');
+INSERT INTO gifi (accno,description) VALUES ('0466600', 'Reisekosten Arbeitn.Übernachtungsau');
+INSERT INTO gifi (accno,description) VALUES ('0466800', 'Kilometerentgelderstattung Arbeitne');
+INSERT INTO gifi (accno,description) VALUES ('0467000', 'Reisekosten Unternehmer');
+INSERT INTO gifi (accno,description) VALUES ('0467400', 'Reisekosten Untern.Verpflegungsmehr');
+INSERT INTO gifi (accno,description) VALUES ('0467600', 'Reisekosten Untern.Übernachtungsauf');
+INSERT INTO gifi (accno,description) VALUES ('0467800', 'Kilometererstattungsgeld Unternehme');
+INSERT INTO gifi (accno,description) VALUES ('0470000', 'Kosten der Warenabgabe');
+INSERT INTO gifi (accno,description) VALUES ('0471000', 'Verpackungsmaterial');
+INSERT INTO gifi (accno,description) VALUES ('0473000', 'Ausgangsfracht');
+INSERT INTO gifi (accno,description) VALUES ('0475000', 'Transportversicherung');
+INSERT INTO gifi (accno,description) VALUES ('0476000', 'Verkaufsprovision');
+INSERT INTO gifi (accno,description) VALUES ('0478000', 'Fremdarbeiten');
+INSERT INTO gifi (accno,description) VALUES ('0479000', 'Aufwand für Gewährleistungen');
+INSERT INTO gifi (accno,description) VALUES ('0480900', 'Sonstige Reparaturen u.Instandhalt.');
+INSERT INTO gifi (accno,description) VALUES ('0481000', 'Mietleasing');
+INSERT INTO gifi (accno,description) VALUES ('0481500', 'Kaufleasing');
+INSERT INTO gifi (accno,description) VALUES ('0482000', 'AfA a.Aufw.f.d.Inga.u.Erw.Geschäfts');
+INSERT INTO gifi (accno,description) VALUES ('0482100', 'AfA a.Aufw.f.d.Währungsumst.a.Euro');
+INSERT INTO gifi (accno,description) VALUES ('0482200', 'Abschreibungen a.immat.Vermögensgeg');
+INSERT INTO gifi (accno,description) VALUES ('0482400', 'Abschreibung a.d.Geschäft-o.Firmenw');
+INSERT INTO gifi (accno,description) VALUES ('0482600', 'Außerplan.AfA a.immat.Vermögensgeg.');
+INSERT INTO gifi (accno,description) VALUES ('0483000', 'Abschreibungen auf Sachanlagen');
+INSERT INTO gifi (accno,description) VALUES ('0484000', 'Außerplanmäßig Abschr.a.Sachanlagen');
+INSERT INTO gifi (accno,description) VALUES ('0485000', 'Abschr.a.Sachanl.steuerl.Sondervors');
+INSERT INTO gifi (accno,description) VALUES ('0485500', 'Sofortabschreibung GWG');
+INSERT INTO gifi (accno,description) VALUES ('0486000', 'Abschreibungen auf aktivierte GWG');
+INSERT INTO gifi (accno,description) VALUES ('0487000', 'Abschreibungen auf Finanzanlagen');
+INSERT INTO gifi (accno,description) VALUES ('0487500', 'Abschr.a.Wertp.d.Umlaufvermögens');
+INSERT INTO gifi (accno,description) VALUES ('0490000', 'Sonstige betriebliche Aufwendungen');
+INSERT INTO gifi (accno,description) VALUES ('0490500', 'Sons.Aufw.betriebl. und regelmäßig');
+INSERT INTO gifi (accno,description) VALUES ('0490900', 'Fremdleistungen');
+INSERT INTO gifi (accno,description) VALUES ('0491000', 'Porto');
+INSERT INTO gifi (accno,description) VALUES ('0492000', 'Telefon');
+INSERT INTO gifi (accno,description) VALUES ('0492500', 'Telefax');
+INSERT INTO gifi (accno,description) VALUES ('0493000', 'Bürobedarf');
+INSERT INTO gifi (accno,description) VALUES ('0494000', 'Zeitschriften, Bücher');
+INSERT INTO gifi (accno,description) VALUES ('0494500', 'Fortbildungskosten');
+INSERT INTO gifi (accno,description) VALUES ('0494600', 'Freiwillige Sozialleistungen');
+INSERT INTO gifi (accno,description) VALUES ('0495000', 'Rechts- und Beratungskosten');
+INSERT INTO gifi (accno,description) VALUES ('0495500', 'Buchführungskosten');
+INSERT INTO gifi (accno,description) VALUES ('0495700', 'Abschluß- und Prüfungskosten');
+INSERT INTO gifi (accno,description) VALUES ('0496000', 'Mieten für Einrichtungen');
+INSERT INTO gifi (accno,description) VALUES ('0497000', 'Nebenkosten des Geldverkehrs');
+INSERT INTO gifi (accno,description) VALUES ('0498000', 'Betriebsbedarf');
+INSERT INTO gifi (accno,description) VALUES ('0498500', 'Werkzeuge und Kleingeräte');
+INSERT INTO gifi (accno,description) VALUES ('0498600', 'Sonstige Aufwendungen (Ausbuchung)');
+INSERT INTO gifi (accno,description) VALUES ('0499000', 'Kalkulatorischer Unternehmerlohn');
+INSERT INTO gifi (accno,description) VALUES ('0499200', 'Kalkulatorische Zinsen');
+INSERT INTO gifi (accno,description) VALUES ('0499300', 'Kalkulatorische Aschreibungen');
+INSERT INTO gifi (accno,description) VALUES ('0499600', 'Herstellungskosten');
+INSERT INTO gifi (accno,description) VALUES ('0499700', 'Verwaltungskosten');
+INSERT INTO gifi (accno,description) VALUES ('0499800', 'Vertriebskosten');
+INSERT INTO gifi (accno,description) VALUES ('0700000', 'Unfertige Erzeu.unfert.Leistungen');
+INSERT INTO gifi (accno,description) VALUES ('0705000', 'Unfertige Erzeugnisse');
+INSERT INTO gifi (accno,description) VALUES ('0708000', 'Unfertige Leistungen');
+INSERT INTO gifi (accno,description) VALUES ('0709000', 'In Ausführung befindl. Bauaufträge');
+INSERT INTO gifi (accno,description) VALUES ('0709500', 'In Arbeit befindliche Aufträge');
+INSERT INTO gifi (accno,description) VALUES ('0710000', 'Fertige Erzeugnisse und Waren');
+INSERT INTO gifi (accno,description) VALUES ('0711000', 'Fertige Erzeugnisse (Bestand)');
+INSERT INTO gifi (accno,description) VALUES ('0714000', 'Waren (Bestand)');
+INSERT INTO gifi (accno,description) VALUES ('0810000', 'Steuerfreie Umsätze §4Nr.8ff UstG');
+INSERT INTO gifi (accno,description) VALUES ('0811000', 'Sonstige steuerfreie Umsätze Inland');
+INSERT INTO gifi (accno,description) VALUES ('0812000', 'Steuerfreie Umsätze §4Nr.1a UstG');
+INSERT INTO gifi (accno,description) VALUES ('0812500', 'Steuerfrei innergem. Lieferungen');
+INSERT INTO gifi (accno,description) VALUES ('0813000', 'Liefe.d.1.Abnehm.innergem.Dreiecksg');
+INSERT INTO gifi (accno,description) VALUES ('0815000', 'Sonstige steuerfreie Umsätze');
+INSERT INTO gifi (accno,description) VALUES ('0819000', 'Sonstige Erlöse (Ausbuchung 0%)');
+INSERT INTO gifi (accno,description) VALUES ('0819100', 'Sonstige Erlöse (Ausbuchung 16%)');
+INSERT INTO gifi (accno,description) VALUES ('0819200', 'Sonstige Erlöse (Ausbuchung 7%)');
+INSERT INTO gifi (accno,description) VALUES ('0820000', 'Erlöse');
+INSERT INTO gifi (accno,description) VALUES ('0830000', 'Erlöse 7%USt');
+INSERT INTO gifi (accno,description) VALUES ('0831000', 'Erlöse Inland stpfl. EG-Lieferung7%');
+INSERT INTO gifi (accno,description) VALUES ('0831500', 'Erlös Inland stpfl.EG-Lieferung 16%');
+INSERT INTO gifi (accno,description) VALUES ('0833900', 'Erl.EG-Land stpfl.so.Leist.(0-Regl)');
+INSERT INTO gifi (accno,description) VALUES ('0840000', 'Erlöse 16% USt.');
+INSERT INTO gifi (accno,description) VALUES ('0850000', 'Provisionserlöse');
+INSERT INTO gifi (accno,description) VALUES ('0852000', 'Erlöse Abfallverwertung');
+INSERT INTO gifi (accno,description) VALUES ('0854000', 'Erlös Leergut');
+INSERT INTO gifi (accno,description) VALUES ('0859000', 'Verrechnete sons. Sachbezüge');
+INSERT INTO gifi (accno,description) VALUES ('0859100', 'Sachbezüge 7% Ust (Waren)');
+INSERT INTO gifi (accno,description) VALUES ('0859500', 'Sachbezüge 16% Ust (Waren)');
+INSERT INTO gifi (accno,description) VALUES ('0860000', 'Sonstige Erlöse betriebl.u.regelmäß');
+INSERT INTO gifi (accno,description) VALUES ('0861000', 'Verrechnete sonstige Sachbezüge');
+INSERT INTO gifi (accno,description) VALUES ('0861100', 'Verr.sons.Sachbezüge 16%USt(Kfz-Ge)');
+INSERT INTO gifi (accno,description) VALUES ('0861400', 'Verrechnete sons.Sachbezüge o. USt');
+INSERT INTO gifi (accno,description) VALUES ('0862500', 'Sons. Erlöse betriebl.u.reg.steuerf');
+INSERT INTO gifi (accno,description) VALUES ('0865000', 'Erlöse Zinsen und Diskotspesen');
+INSERT INTO gifi (accno,description) VALUES ('0870000', 'Erlösschmälerungen');
+INSERT INTO gifi (accno,description) VALUES ('0871000', 'Erlösschmälerung 7% USt.');
+INSERT INTO gifi (accno,description) VALUES ('0872000', 'Erlösschmälerung 16% USt.');
+INSERT INTO gifi (accno,description) VALUES ('0872400', 'Erlösschmäler.a.stfrei.IG Lieferung');
+INSERT INTO gifi (accno,description) VALUES ('0872500', 'Erlösschmä.Inl.stpfl.EG-Lief. 7%USt');
+INSERT INTO gifi (accno,description) VALUES ('0872600', 'Erlösschmä.Inl.stpfl.EG-Lief.16%USt');
+INSERT INTO gifi (accno,description) VALUES ('0872700', 'Erlösschmä.and.EG Land stpfl.Liefer');
+INSERT INTO gifi (accno,description) VALUES ('0873000', 'Gewährte Skonti');
+INSERT INTO gifi (accno,description) VALUES ('0873100', 'Gewährte Skonti 7% USt');
+INSERT INTO gifi (accno,description) VALUES ('0873500', 'Gewährte Skonti 16% USt.');
+INSERT INTO gifi (accno,description) VALUES ('0874000', 'Gewährte Boni');
+INSERT INTO gifi (accno,description) VALUES ('0875000', 'Gewährte Boni 7% USt.');
+INSERT INTO gifi (accno,description) VALUES ('0876000', 'Gewährte Boni 16% USt.');
+INSERT INTO gifi (accno,description) VALUES ('0877000', 'Gewährte Rabatte');
+INSERT INTO gifi (accno,description) VALUES ('0878000', 'Gewährte Rabatte 7% USt.');
+INSERT INTO gifi (accno,description) VALUES ('0879000', 'Gewährte Rabatte 16% Ust.');
+INSERT INTO gifi (accno,description) VALUES ('0880000', 'Erlöse aus Anlagenverkäufen');
+INSERT INTO gifi (accno,description) VALUES ('0880100', 'Erlöse aus Anlagenverkäufen 16%USt.');
+INSERT INTO gifi (accno,description) VALUES ('0882000', 'Erlöse aus Anlageverkäufen 16%Ust');
+INSERT INTO gifi (accno,description) VALUES ('0882900', 'Erl.a.Anlagenverk.bei Buchgewinn');
+INSERT INTO gifi (accno,description) VALUES ('0890000', 'Unentgeldliche Wertabgaben');
+INSERT INTO gifi (accno,description) VALUES ('0890500', 'Entnahme v. Gegenst.o.USt.');
+INSERT INTO gifi (accno,description) VALUES ('0891000', 'Entnahme außerhalb d.Untern.16%USt.');
+INSERT INTO gifi (accno,description) VALUES ('0891500', 'Entnah.d.U.Zweckaußerh.d.Untn 7%USt');
+INSERT INTO gifi (accno,description) VALUES ('0891800', 'Entn.d.Untern.außerh.d.Untern.o.USt');
+INSERT INTO gifi (accno,description) VALUES ('0892000', 'Verw.v.Gegens.außerh.Untern.16%USt.');
+INSERT INTO gifi (accno,description) VALUES ('0892500', 'Unentgeldl.Erbring.sons.Leis.16%USt');
+INSERT INTO gifi (accno,description) VALUES ('0893200', 'Unentgelt.Erbring.sons.Leist. 7%Ust');
+INSERT INTO gifi (accno,description) VALUES ('0893500', 'Unentgeltl.Zuwend.v.Gegens. 16% Ust');
+INSERT INTO gifi (accno,description) VALUES ('0893900', 'Unentgeldl.Zuw.v.Gegens.ohne Ust');
+INSERT INTO gifi (accno,description) VALUES ('0894000', 'Unentgeltl.Zuw.v Waren 16% Ust');
+INSERT INTO gifi (accno,description) VALUES ('0894500', 'Unentgeltl.Zuw.von Waren 7% Ust');
+INSERT INTO gifi (accno,description) VALUES ('0895000', 'Nicht steuerbare Umsätze');
+INSERT INTO gifi (accno,description) VALUES ('0895500', 'Umsatzsteuervergütungen');
+INSERT INTO gifi (accno,description) VALUES ('0896000', 'Bestandsveränderung-unfertige Erzeu');
+INSERT INTO gifi (accno,description) VALUES ('0897000', 'Bestandsveränderung-unfertige Leist');
+INSERT INTO gifi (accno,description) VALUES ('0897500', 'Bestandsverä.i.Ausfü.befi.Bauaufträ');
+INSERT INTO gifi (accno,description) VALUES ('0897700', 'Bestandsverä.i.Arbeit befindl.Auftr');
+INSERT INTO gifi (accno,description) VALUES ('0898000', 'Bestandsverä.fertige Erzeugnisse');
+INSERT INTO gifi (accno,description) VALUES ('0899000', 'Andere aktivierte Eigenleistungen');
+INSERT INTO gifi (accno,description) VALUES ('0900000', 'Saldenverträge,Sachkonten');
+INSERT INTO gifi (accno,description) VALUES ('0900800', 'Saldenverträge,Debitoren');
+INSERT INTO gifi (accno,description) VALUES ('0900900', 'Saldenverträge,Kreditoren');
+INSERT INTO gifi (accno,description) VALUES ('0906000', 'Offene Posten aus 1990');
+INSERT INTO gifi (accno,description) VALUES ('0906900', 'Offene Posten aus 1999');
+INSERT INTO gifi (accno,description) VALUES ('0907000', 'Offene Posten aus 2000');
+INSERT INTO gifi (accno,description) VALUES ('0909000', 'Summenvortragskonto');
+INSERT INTO gifi (accno,description) VALUES ('0922000', 'Gezeichnetes kapital in DM');
+INSERT INTO gifi (accno,description) VALUES ('0922100', 'Gezeichnetes Kapital in Euro');
+INSERT INTO gifi (accno,description) VALUES ('0923000', 'Baukostenzuschüsse');
+INSERT INTO gifi (accno,description) VALUES ('0923200', 'Investitionszulagen');
+INSERT INTO gifi (accno,description) VALUES ('0923400', 'Investitionszuschüsse');
+INSERT INTO gifi (accno,description) VALUES ('0924500', 'Forde.a.Anlageverk.sons.Vermögensge');
+INSERT INTO gifi (accno,description) VALUES ('0925000', 'Eigenkapitalersetzende Ges''terdarl.');
+INSERT INTO gifi (accno,description) VALUES ('0926000', 'Kurzfristige Rückstellung');
+INSERT INTO gifi (accno,description) VALUES ('0926200', 'Mittelfristige Rückstellung');
+INSERT INTO gifi (accno,description) VALUES ('0926400', 'Langfristige Rückstellungen');
+INSERT INTO gifi (accno,description) VALUES ('0928000', 'Bemessungsgrundlage IG Erwerb 16%');
+INSERT INTO gifi (accno,description) VALUES ('0928100', 'Gegenkonto Bmsgrl. IG Erwerb 16%');
+INSERT INTO gifi (accno,description) VALUES ('0928200', 'Bemessungsgrundlage IG Erwerb 7%');
+INSERT INTO gifi (accno,description) VALUES ('0928400', 'Gegenkonto Bmsgrl. IG Erwerb 7%');
+INSERT INTO gifi (accno,description) VALUES ('0988100', 'Verrechnungskonto Abgang');
+INSERT INTO gifi (accno,description) VALUES ('0988200', 'Verrechnungskonto erh. Anzahlungen');
+INSERT INTO gifi (accno,description) VALUES ('0988210', 'Verrechnungskto Anzahlungen netto');
+INSERT INTO gifi (accno,description) VALUES ('0988220', 'Verrechnungskto.Anzahlungen brutto');
+INSERT INTO gifi (accno,description) VALUES ('0988300', 'Verrechnungskonto gel.Anzahlungen');
+INSERT INTO gifi (accno,description) VALUES ('0988400', 'Statistisches Konto Konzern AfA');
+INSERT INTO gifi (accno,description) VALUES ('0988500', 'Statistisches Konto kalkulator.AfA');
+INSERT INTO gifi (accno,description) VALUES ('0988600', 'Statistisches Konto außerplanm AfA');
+INSERT INTO gifi (accno,description) VALUES ('0988700', 'Statistisches Konto AfA (Konzern)');
+INSERT INTO gifi (accno,description) VALUES ('0988800', 'Statistisches Konto Sonderafa');
+INSERT INTO gifi (accno,description) VALUES ('0988900', 'Statistisches Konto AfA (SBil)');
+INSERT INTO gifi (accno,description) VALUES ('0989800', 'Statistisches Konto AfA (Kalkul.)');
+INSERT INTO gifi (accno,description) VALUES ('0989900', 'Statistisches Konto AfA');
+INSERT INTO gifi (accno,description) VALUES ('0999999', 'Fehlerauffangkonto');
diff --git a/sql/Germany-SKR03-chart.sql b/sql/Germany-SKR03-chart.sql
new file mode 100755
index 00000000..1cbcf57e
--- /dev/null
+++ b/sql/Germany-SKR03-chart.sql
@@ -0,0 +1,264 @@
+-- General COA
+--
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('420','Büroeinrichtung','A','A','','420');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('430','Ladeneinrichtung','A','A','','430');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('440','Werkzeuge','A','A','','440');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('450','Einbauten','A','A','','450');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('460','Gerüst- und Schalungsmaterial','A','A','','460');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('480','Geringwertige Wirtschaftsgüter bis DM 800,-','A','A','','480');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('490','Sonstige Betriebs- und Geschäftsausstattung','A','A','','490');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('650','Verb. gg. Kreditinstituten - Restlaufz. größer 5 Jahre','A','L','','650');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1000','Kasse','A','A','AR_paid:AP_paid','1000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1200','Bank-Giro','A','A','AR_paid:AP_paid','1200');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1400','Forderungen aus Lief. und Leist. Kundengruppe 0','A','A','AR','1400');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1540','Steuerüberzahlungen','A','A','AR','1540');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1542','Steuererstattungsansprüche gg. anderen EU-Ländern','A','A','AR','1542');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1545','Umsatzsteuerforderungen','A','A','AR','1545');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1548','Vorsteuer im Folgejahr abziehbar','A','A','AR','1548');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1570','Abziehbare Vorsteuer','A','A','AR_tax:AP_tax','1570');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1571','Abziehbare Vorsteuer, 7%','A','A','AR_tax:AP_tax:IC_taxpart:IC_taxservice','1571');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1575','Abziehbare Vorsteuer, 16%','A','A','AR_tax:AP_tax:IC_taxpart:IC_taxservice','1575');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1576','Abziehbare Vorsteuer, 15%','A','A','AR_tax:AP_tax:IC_taxpart:IC_taxservice','1576');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1577','Vorsteuer nach allg. Durchschnittssätzen UStVA KZ 63','A','A','AR_tax:AP_tax','1577');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1775','Umsatzsteuer, 16%','A','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice','1775');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1776','Umsatzsteuer, 15%','A','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice','1776');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1780','Umsatzsteuer - Vorauszahlungen','A','L','','1780');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1781','Umsatzsteuer - Vorauszahlungen 1/11','A','L','','1781');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1782','Nachsteuer, UStVA KZ 65','A','L','','1782');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1789','Umsatzsteuer laufendes Jahr','A','L','','1789');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1790','Umsatzsteuer Vorjahr','A','L','','1790');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1791','Umsatzsteuer frühere Jahre','A','L','','1791');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1820','Sonderausg. beschr. abzugsf. (Privat Vollhaft./Einzelu.)','A','','','1820');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1830','Sonderausg. unbeschr. abzugsf. (Privat Vollhaft./Einzelu.)','A','','','1830');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1840','Privatspenden (Privat Vollhafter / Einzelunternehmer)','A','','','1840');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1850','Außergewöhnliche Belastungen (Privat Vollhaft. / Einzelunt.)','A','','','1850');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1890','Privateinlagen (Privat Vollhafter / Einzelunternehmer)','A','','','1890');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2010','Betriebsfremde Aufw. (soweit nicht außerordentlich)','A','','','2010');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2020','Periodenfremde Aufw. (soweit nicht außerordentlich)','A','','','2020');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2100','Zinsen und ähnliche Aufwendungen','A','','','2100');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2103','Steuerlich abzugsfähige, andere Nebenleistungen zu Steuern','A','','','2103');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2104','Steuerlich nicht abzugsfähige, andere Nebenleistungen zu Steuern','A','','','2104');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2107','Zinsaufwendungen §233a AO betriebliche Steuern','A','','','2107');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2108','Zinsaufw. §233a, §234, §237 AO Personenst. §8 GewStG','A','','','2108');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2109','Zinsaufwendungen an verbundene Unternehmen','A','','','2109');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2110','Zinsaufwendungen für kurzfristige Verbindlichkeiten','A','','','2110');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('3410','Wareneingang, 16% Vorsteuer','A','','','3410');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('3736','Erhaltene Skonti, 16% Vorsteuer','A','','','3736');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('3740','Erhaltene Boni','A','','','3740');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('3750','Erhaltene Boni, 7% Vorsteuer','A','','','3750');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('3760','Erhaltene Boni, 15%+16% Vorsteuer','A','','','3760');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('3762','Erhaltene Boni, 16% Vorsteuer','A','','','3762');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('3764','Erhaltene Boni, 15% Vorsteuer','A','','','3764');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('3800','Anschaffungsnebenkosten','A','','','3800');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('3830','Leergut','A','','','3830');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('3850','Zölle und Einfuhrabgaben','A','','','3850');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('3960','Bestandsv. Roh-, Hilfs- u. Betriebsstoffe / bezogene Waren','A','','','3960');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('3970','Bestand Roh-, Hilfs- und Betriebsstoffe','A','','','3970');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('3980','Bestand Waren','A','','','3980');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('3990','Verrechnete Stoffkosten','A','','','3990');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4000','Material- und Stoffverbrauch','A','E','AP_amount','4000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4100','Löhne und Gehälter','A','E','AP_amount','4100');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4110','Löhne','A','E','AP_amount','4110');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4120','Gehälter','A','E','AP_amount','4120');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4124','Geschäftsführergehälter der GmbH-Gesellschafter','A','E','AP_amount','4124');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4125','Ehegattengehalt','A','E','AP_amount','4125');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4126','Tantiemen','A','E','AP_amount','4126');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4127','Geschäftsführergehälter','A','E','AP_amount','4127');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4128','Vergütungen an angestellte Mitunternehmer §15 EStG','A','E','AP_amount','4128');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4130','Gesetzliche soziale Aufwendungen','A','E','AP_amount','4130');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4137','Gesetzliche soziale Aufw. für Mitunternehmer §15 EStG','A','E','AP_amount','4137');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4138','Beiträge zur Berufsgenossenschaft','A','E','AP_amount','4138');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1360','Geldtransit Bank 1','A','A','','1360');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4140','Freiw. soziale Aufwendungen (lohnsteuerfrei)','A','E','AP_amount','4140');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4145','Freiw. soziale Aufwendungen (lohnsteuerpflichtig)','A','E','AP_amount','4145');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4149','Pauschale Lohnsteuer auf s. Bezüge (z.B. Fahrtkostenzuschuß)','A','E','AP_amount','4149');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4150','Krankengeldzuschüsse','A','E','AP_amount','4150');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4160','Versorgungskassen','A','E','AP_amount','4160');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4165','Aufwendungen für die Altersversorgung','A','E','AP_amount','4165');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4167','Pauschale Lohnsteuer auf s. Bezüge (z.B. Direktversicherung)','A','E','AP_amount','4167');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4168','Aufw. f. die Altersversorgung f. Mitunternehmer §15 EStG','A','E','AP_amount','4168');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4169','Aufwendungen für Unterstützung','A','E','AP_amount','4169');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4170','Vermögenswirksame Leistungen','A','E','AP_amount','4170');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4175','Fahrtkostenerstattung - Wohnung / Arbeitsstätte','A','E','AP_amount','4175');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4180','Bedienungsgelder','A','E','AP_amount','4180');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4190','Aushilfslöhne','A','E','AP_amount','4190');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4199','Lohnsteuer für Aushilfen','A','E','AP_amount','4199');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4200','Raumkosten','A','E','AP_amount','4200');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4210','Miete','A','E','AP_amount','4210');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4218','Gewerbesteuerlich zu berücks. Miete §8 GewStG','A','E','AP_amount','4218');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4219','Vergütung an Mitu. f. mietw. Überl. v. Wirtschaftsg. §15EStG','A','E','AP_amount','4219');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4220','Pacht','A','E','AP_amount','4220');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4228','Gewerbesteuerlich zu berücks. Pacht §8 GewStG','A','E','AP_amount','4228');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4229','Vergütung an Mitu. f. pachtw. Überl. v. Wirtschaftsg.§15EStG','A','E','AP_amount','4229');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4230','Heizung','A','E','AP_amount','4230');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4240','Gas, Strom, Wasser (Verwaltung, Vertrieb)','A','E','AP_amount','4240');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4250','Reinigung','A','E','AP_amount','4250');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4260','Instandhaltung betrieblicher Räume','A','E','AP_amount','4260');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4270','Abgaben für betrieblich genutzten Grundbesitz','A','E','AP_amount','4270');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4280','Sonstige Raumkosten','A','E','AP_amount','4280');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4320','Gewerbesteuer (Vorauszahlung)','A','E','AP_amount','4320');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4330','Gewerbeertragsteuer','A','E','AP_amount','4330');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4335','Gewerbekapitalsteuer','A','E','AP_amount','4335');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4340','Sonstige Betriebsteuern','A','E','AP_amount','4340');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4350','Verbrauchsteuer','A','E','AP_amount','4350');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4360','Versicherungen','A','E','AP_amount','4360');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4380','Beiträge','A','E','AP_amount','4380');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4390','Sonstige Abgaben','A','E','AP_amount','4390');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4396','Steuerlich abzugsfähige Verspätungszuschläge und Zwangsgelder','A','E','AP_amount','4396');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4397','Steuerlich nicht abzugsfähige Verspätungszuschläge und Zwangsgelder','A','E','AP_amount','4397');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4400','Besondere Kosten (zur freien Verfügung)','A','E','AP_amount','4400');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4500','Fahrzeugkosten','A','E','AP_amount','4500');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4510','Kfz-Steuern','A','E','AP_amount','4510');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4520','Kfz-Versicherungen','A','E','AP_amount','4520');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4530','Laufende Kfz-Betriebskosten','A','E','AP_amount','4530');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4540','Kfz-Reparaturen','A','E','AP_amount','4540');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4550','Garagenmieten','A','E','AP_amount','4550');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4570','Fremdfahrzeuge','A','E','AP_amount','4570');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4580','Sonstige Kfz-Kosten','A','E','AP_amount','4580');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4600','Werbe- und Reisekosten','A','E','AP_amount','4600');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4610','Werbekosten','A','E','AP_amount','4610');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4630','Geschenke bis DM 75,00','A','E','AP_amount','4630');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4635','Geschenke über DM 75,00','A','E','AP_amount','4635');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4638','Geschenke ausschließlich betrieblich genutzt','A','E','AP_amount','4638');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4640','Repräsentationskosten','A','E','AP_amount','4640');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4650','Bewirtungskosten','A','E','AP_amount','4650');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4653','Aufwerksamkeiten','A','E','AP_amount','4653');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4654','Nicht abzugsfähige Bewirtungskosten','A','E','AP_amount','4654');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4655','Nicht abzugsfähige Betriebsausgaben','A','E','AP_amount','4655');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4660','Reisekosten Arbeitnehmer','A','E','AP_amount','4660');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4666','Reisekost. Arbeitn., 12,3%/13,1% VSt Verpfl.Mehr- / Übern.Aufw.','A','E','AP_amount','4666');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4667','Reisekost. Arbeitn., 9,8%/10,5% VSt Gesamtpauschal.','A','E','AP_amount','4667');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4670','Reisekosten Unternehmer','A','E','AP_amount','4670');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4675','Reisekosten Unternehmer, 9,8/10,5% VSt sonst.Gesamtpauschal.','A','E','AP_amount','4675');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4676','Reisekost. Untern., 12,3%/13,1% VSt Verpfl.Mehr- / Übern.Aufw.','A','E','AP_amount','4676');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4677','Reisekosten Unternehmer, 9,8%/10,5% VSt Verpfl.Mehraufw. Gesamtpauschal.','A','E','AP_amount','4677');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4678','Km-Geld Erstattung, Unternehmer, 5,7%/6,1% VSt','A','E','AP_amount','4678');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4685','Km-Geld-Erstattung, Arbeitnehmer 8,2%/8,7% VSt','A','E','AP_amount','4685');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4700','Kosten der Warenabgabe','A','E','AP_amount:IC_expense:IC_cogs','4700');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4710','Verpackungsmaterial','A','E','AP_amount','4710');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4730','Ausgangsfrachten','A','E','AP_amount','4730');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4750','Transportversicherungen','A','E','AP_amount','4750');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4760','Verkaufsprovisionen','A','E','AP_amount','4760');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4780','Fremdarbeiten','A','E','AP_amount','4780');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4790','Aufwand für Gewährleistungen','A','E','AP_amount','4790');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4800','Reparat. u. Inst. v. Maschinen u. technischen Anlagen','A','E','AP_amount','4800');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4805','Reparat. u. Inst. v. and. Anl. d. Betr.- u. Geschäftsausst.','A','E','AP_amount','4805');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4809','Sonstige Reparaturen und Instandhaltungen','A','E','AP_amount','4809');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4810','Mietleasing','A','E','AP_amount','4810');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4815','Kaufleasing','A','E','AP_amount','4815');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4820','Abschr. a. Aufw. f.d. Ingangs. u. Erw. des Geschäftsbetr.','A','E','AP_amount','4820');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4822','Abschr. a. immaterielle Vermögensgegenstände','A','E','AP_amount','4822');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4824','Abschreibung auf den Geschäfts- oder Firmenwert','A','E','AP_amount','4824');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4826','Außerplanm. Abschr. a. immaterielle Vermögensgegenstände','A','E','AP_amount','4826');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4830','Abschreibungen auf Sachanlagen','A','E','AP_amount','4830');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4840','Außerplanm. Abschreibungen auf Sachanlagen','A','E','AP_amount','4840');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4850','Abschr. a. Sachanl. aufgrund steuerl. Sondervorschriften','A','E','AP_amount','4850');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4855','Sofortabschreibung geringwertiger Wirtschaftsgüter','A','E','AP_amount','4855');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4860','Abschreibung auf aktivierte, geringwertige Wirtschaftsgüter','A','E','AP_amount','4860');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4865','Außerplanmäßige Abschr. a. aktivierte GWG','A','E','AP_amount','4865');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4870','Abschreibungen auf Finanzanlagen','A','E','AP_amount','4870');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4872','Abschr. aufgrund v. Verlustant. an Mitunt. §8 GewStG','A','E','AP_amount','4872');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4874','Abschr. a. Finanzanl. aufgrund steuerl. Sondervorschriften','A','E','AP_amount','4874');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4875','Abschreibungen auf Wertpapiere des Umlaufvermögens','A','E','AP_amount','4875');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4880','Abschr. a. Umlaufv. ohne Wertpapiere (soweit unübl. Höhe)','A','E','AP_amount','4880');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4882','Abschr. a. Umlaufv. steuerrechtl. bedingt (unübl. Höhe)','A','E','AP_amount','4882');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4887','Abschr. a. Umlaufv., steuerrechtlich bedingt (übl. Höhe)','A','E','AP_amount','4887');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4890','Vorwegn. künftiger Wertschw. im Umlaufv. (unübl. Höhe)','A','E','AP_amount','4890');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4900','Sonstige betriebliche Aufwendungen','A','E','AP_amount','4900');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4905','Sonstige Aufwendungen betrieblich und regelmäßig','A','E','AP_amount','4905');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4910','Porto','A','E','AP_amount','4910');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4920','Telefon','A','E','AP_amount','4920');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4925','Telefax, Fernschreiber','A','E','AP_amount','4925');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4930','Bürobedarf','A','E','AP_amount','4930');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4940','Zeitschriften, Bücher','A','E','AP_amount','4940');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4945','Fortbildungskosten','A','E','AP_amount','4945');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4946','Freiwillige Sozialleistungen','A','E','AP_amount','4946');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4948','Vergütungen an freiberufliche Mitunternehmer §15 EStG','A','E','AP_amount','4948');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4950','Rechts- und Beratungskosten','A','E','AP_amount','4950');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4955','Buchführungskosten','A','E','AP_amount','4955');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4957','Abschluß- und Prüfungskosten','A','E','AP_amount','4957');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4960','Mieten für Einrichtungen','A','E','AP_amount','4960');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4968','Gewerbest. zu berücks. Miete f. Einrichtungen §8 GewStG','A','','','4968');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4969','Aufwendungen für Abraum- und Abfallbeseitigung','A','E','AP_amount','4969');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4970','Nebenkosten des Geldverkehrs','A','E','AP_amount','4970');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4980','Betriebsbedarf','A','E','AP_amount','4980');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4985','Werkzeuge und Kleingeräte','A','E','AP_amount','4985');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4996','Herstellungskosten','A','E','AP_amount','4996');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4997','Verwaltungskosten','A','E','AP_amount','4997');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4998','Vertriebskosten','A','E','AP_amount','4998');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4999','Gegenkonto 49960-49980','A','','','4999');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7140','Fertige Waren (Bestand)','A','A','IC','7140');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8100','Steuerfreie Umsätze o. VSt-Abzug §4 Nr.8 ff. UStG','A','I','AR_amount:IC_sale','8100');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8500','Provisionserlöse','A','I','AR_amount:IC_sale','8500');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8504','Provisionserlöse steuerfrei (§4 Nr.8ff UStG)','A','I','AR_amount:IC_sale','8504');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8505','Provisionserlöse steuerfrei (§4 Nr.5 UStG)','A','I','AR_amount:IC_sale','8505');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8506','Provisionserlöse, 7% USt','A','I','AR_amount:IC_sale','8506');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8507','Provisionserlöse, 15% Ust','A','I','AR_amount:IC_sale','8507');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8508','Provisionserlöse, 15%/16% USt','A','I','AR_amount:IC_sale','8508');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8509','Provisionserlöse, 16% Ust','A','I','AR_amount:IC_sale','8509');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8591','Sachbezüge, 7% USt (Waren)','A','I','AR_amount:IC_sale','8591');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8595','Sachbezüge, 15%/16% USt (Waren)','A','I','AR_amount:IC_sale','8595');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8596','Sachbezüge, 16% USt (Waren)','A','I','AR_amount:IC_sale','8596');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8597','Sachbezüge, 15% USt (Waren)','A','I','AR_amount:IC_sale','8597');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8630','Sonstige Erlöse betrieblich und regelmäßig, 7% USt','A','I','AR_amount:IC_sale','8630');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8645','Sonstige Erlöse betrieblich und regelmäßig, 16% Ust','A','I','AR_amount:IC_sale','8645');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8730','Gewährte Skonti','A','','','8730');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8731','Gewährte Skonti, 7% USt','A','','','8731');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8735','Gewährte Skonti, 16% Ust','A','','','8735');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8740','Gewährte Boni','A','','','8740');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8750','Gewährte Boni, 7% USt','A','','','8750');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8762','Gewährte Boni, 16% Ust','A','','','8762');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8770','Gewährte Rabatte','A','','','8770');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8780','Gewährte Rabatte, 7% USt','A','','','8780');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8792','Gewährte Rabatte, 16% Ust','A','','','8792');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8800','Erlöse aus Anlagenverkäufen','A','','','8800');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8801','Erlöse aus Anlagenverkäufen 15%/16% USt (bei Buchverlust)','A','','','8801');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8810','Erlöse aus Anlagenverkäufen 16% USt (bei Buchverlust)','A','','','8810');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8815','Erlöse aus Anlagenverkäufen 15% USt (bei Buchverlust)','A','','','8815');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8820','Erlöse aus Anlagenverkäufen 15%/16% USt (bei Buchgewinn)','A','','','8820');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8829','Erlöse aus Anlagenverkäufen (bei Buchgewinn)','A','','','8829');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8830','Erlöse aus Anlagenverkäufen 16% USt (bei Buchgewinn)','A','','','8830');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8835','Erlöse aus Anlagenverkäufen 15% USt (bei Buchgewinn)','A','','','8835');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8900','Eigenverbrauch','A','','','8900');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8905','Entnahme Gegenstände ohne USt','A','','','8905');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8908','Entnahme von Gegenstände, 16% USt §1 Abs.1 Nr.2a UStG','A','','','8908');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8909','Entnahme von Gegenstände, 15% USt §1 Abs.1 Nr.2a UStG','A','','','8909');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8910','Entnahme von Gegenstände, 15%/16% USt §1 Abs.1 Nr.2a UStG','A','','','8910');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8915','Entnahme von Gegenstände, 7% USt §1 Abs.1 Nr.2a UStG','A','','','8915');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8920','Entnahme v. sonst. Leist., 15%/16% USt §1 A.1 Nr.2b UStG','A','','','8920');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8930','Entnahme v. sonst. Leist., 7% USt §1 A.1 Nr.2b UStG','A','','','8930');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8937','Entnahme v. sonst. Leist., 16% USt §1 A.1 Nr.2b UStG','A','','','8937');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8938','Entnahme v. sonst. Leist., 15% USt §1 A.1 Nr.2b UStG','A','','','8938');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8939','Entnahme v. sonst. Leist., ohne USt §1 A.1 Nr.2b UStG','A','','','8939');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8941','Eigenverbr., 7% Ust §4 A.1 Nr.5 1-7, A.7 EStG','A','','','8941');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8942','Eigenverbr., 16% Ust §4 A.1 Nr.5 1-7, A.7 EStG','A','','','8942');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8944','Eigenverbr., ohne Ust §4 A.1 Nr.5 1-7, A.7 EStG','A','','','8944');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8950','Nicht steuerbare Umsätze','A','','','8950');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8955','Umsatzsteuervergütungen','A','','','8955');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8960','Bestandsveränd. - unfertige Erzeugnisse','A','','','8960');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8970','Bestandsveränd. - unfertige Leistungen','A','','','8970');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8975','Bestandsveränd. - in Ausführung befindliche Bauaufträge','A','','','8975');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8977','Bestandsveränd. - in Arbeit befindliche Aufträge','A','','','8977');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8980','Bestandsveränd. - fertige Erzeugnisse','A','','','8980');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8990','Bestandsveränd. - andere aktivierte Eigenleistungen','A','','','8990');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('9000','Saldenvorträge Sachkonten','A','','','9000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('9008','Saldenvorträge Debitoren','A','','','9008');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('9009','Saldenvorträge Kreditoren','A','','','9009');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('9100','Saldovortragskonto der Statistikkonten','A','','','9100');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1800','Privatentn. allg. (Privat Vollhafter / Einzelunternehmer)','A','Q','','1800');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2000','Außerordentliche Aufwendungen','A','A','','2000');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1600','Verb. aus Lief. und Leist. Lieferantengruppe 0','A','L','AP','1600');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('3400','Wareneingang, 16% Vorsteuer','A','E','AP_amount','3400');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8400','Umsatzerlöse 16%','A','I','AR_amount:IC_sale','8400');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8840','Erträge aus Kursdifferenzen','A','I','AR_amount:IC_sale:IC_income','8840');
+--
+insert into tax (chart_id,rate) values ((select id from chart where accno = '1571'),0.07);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '1575'),0.16);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '1576'),0.15);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '1775'),0.16);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '1776'),0.15);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '3400'),0.16);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '8400'),0.16);
+--
+update defaults set inventory_accno_id = (select id from chart where accno = '7140'), income_accno_id = (select id from chart where accno = '8400'), expense_accno_id = (select id from chart where accno = '4700'), fxgain_accno_id = (select id from chart where accno = '8840'), fxloss_accno_id = (select id from chart where accno = '8840'), curr = 'EUR:USD', weightunit = 'kg';
+--
diff --git a/sql/Germany-SKR03-gifi.sql b/sql/Germany-SKR03-gifi.sql
new file mode 100755
index 00000000..7fc0ff62
--- /dev/null
+++ b/sql/Germany-SKR03-gifi.sql
@@ -0,0 +1,1083 @@
+-- Kontenrahmen für Deutschland
+--
+INSERT INTO gifi (accno,description) VALUES ('0001', 'Aufw. f. die Ingangsetzung u. Erweit. des Geschäftsbetr.');
+INSERT INTO gifi (accno,description) VALUES ('0002', 'Aufw. f. die Währungsumstellung auf den EURO');
+INSERT INTO gifi (accno,description) VALUES ('0010', 'Konzess., gew. Schutzr. u. ähnl. Rechte/Werte sowie Liz.');
+INSERT INTO gifi (accno,description) VALUES ('0015', 'Konzessionen');
+INSERT INTO gifi (accno,description) VALUES ('0020', 'Gewerbliche Schutzrechte');
+INSERT INTO gifi (accno,description) VALUES ('0025', 'Ähnliche Rechte und Werte');
+INSERT INTO gifi (accno,description) VALUES ('0027', 'EDV-Software');
+INSERT INTO gifi (accno,description) VALUES ('0030', 'Lizenzen an gewerbl. Schutzr. u. ähnl. Rechten u. Werten');
+INSERT INTO gifi (accno,description) VALUES ('0035', 'Geschäfts- oder Firmenwert');
+INSERT INTO gifi (accno,description) VALUES ('0038', 'Anzahlungen auf Geschäfts- oder Firmenwert');
+INSERT INTO gifi (accno,description) VALUES ('0039', 'Anzahlungen auf immaterielle Vermögensgegenstände');
+INSERT INTO gifi (accno,description) VALUES ('0040', 'Verschmelzungsmehrwert');
+INSERT INTO gifi (accno,description) VALUES ('0050', 'Grundst., gl. Rechte/Bauten einschl. Bauten a. fr. Grundst.');
+INSERT INTO gifi (accno,description) VALUES ('0060', 'Grundstücke und grundstücksgleiche Rechte ohne Bauten');
+INSERT INTO gifi (accno,description) VALUES ('0065', 'Unbebaute Grundstücke');
+INSERT INTO gifi (accno,description) VALUES ('0070', 'Grundstücksgleiche Rechte (Erbbaurecht, Dauerwohnrecht)');
+INSERT INTO gifi (accno,description) VALUES ('0075', 'Grundstücke mit Substanzverzehr');
+INSERT INTO gifi (accno,description) VALUES ('0079', 'Anzahl. a. Grundst. u. grundstücksgl. Rechte ohne Bauten');
+INSERT INTO gifi (accno,description) VALUES ('0080', 'Bauten auf eigenen Grundst. und grundstücksgl. Rechten');
+INSERT INTO gifi (accno,description) VALUES ('0085', 'Grundstückswerte eigener bebauter Grundsstücke');
+INSERT INTO gifi (accno,description) VALUES ('0090', 'Geschäftsbauten');
+INSERT INTO gifi (accno,description) VALUES ('0100', 'Fabrikbauten');
+INSERT INTO gifi (accno,description) VALUES ('0110', 'Garagen');
+INSERT INTO gifi (accno,description) VALUES ('0111', 'Außenanlagen');
+INSERT INTO gifi (accno,description) VALUES ('0112', 'Hof- u. Wegebefestigungen');
+INSERT INTO gifi (accno,description) VALUES ('0113', 'Einrichtungen für Geschäfts- u. Fabrikbauten');
+INSERT INTO gifi (accno,description) VALUES ('0115', 'Andere Bauten');
+INSERT INTO gifi (accno,description) VALUES ('0120', 'Geschäfts-, Fabrik- u. andere Bauten im Bau');
+INSERT INTO gifi (accno,description) VALUES ('0129', 'Anz. a. Geschäfts-, Fabrik-, u.a. Bauten a. eig. Grundst+Rechte');
+INSERT INTO gifi (accno,description) VALUES ('0140', 'Wohnbauten');
+INSERT INTO gifi (accno,description) VALUES ('0145', 'Garagen');
+INSERT INTO gifi (accno,description) VALUES ('0146', 'Außenanlagen');
+INSERT INTO gifi (accno,description) VALUES ('0147', 'Hof- und Wegebefestigungen');
+INSERT INTO gifi (accno,description) VALUES ('0148', 'Einrichtungen für Wohnbauten');
+INSERT INTO gifi (accno,description) VALUES ('0150', 'Wohnbauten im Bau');
+INSERT INTO gifi (accno,description) VALUES ('0159', 'Anz. auf Wohnbauten auf eig. Grundstücken u. grundst.gl. Rechten');
+INSERT INTO gifi (accno,description) VALUES ('0160', 'Bauten auf fremden Grundstücken');
+INSERT INTO gifi (accno,description) VALUES ('0165', 'Geschäftsbauten');
+INSERT INTO gifi (accno,description) VALUES ('0170', 'Fabrikbauten');
+INSERT INTO gifi (accno,description) VALUES ('0175', 'Garagen');
+INSERT INTO gifi (accno,description) VALUES ('0176', 'Außenanlagen');
+INSERT INTO gifi (accno,description) VALUES ('0177', 'Hof- und Wegebefestigen');
+INSERT INTO gifi (accno,description) VALUES ('0178', 'Einrichtungen für Geschäfts- und Fabrikbauten');
+INSERT INTO gifi (accno,description) VALUES ('0179', 'Andere Bauten');
+INSERT INTO gifi (accno,description) VALUES ('0180', 'Geschäfts-, Fabrik- und andere Bauten im Bau');
+INSERT INTO gifi (accno,description) VALUES ('0189', 'Anzahl. a. Geschäfts-, Fabrik-, u.a. Bauten a. fr. Grundst.');
+INSERT INTO gifi (accno,description) VALUES ('0190', 'Wohnbauten');
+INSERT INTO gifi (accno,description) VALUES ('0191', 'Garagen');
+INSERT INTO gifi (accno,description) VALUES ('0192', 'Außenanlagen');
+INSERT INTO gifi (accno,description) VALUES ('0193', 'Hof- und Wegebefestigungen');
+INSERT INTO gifi (accno,description) VALUES ('0194', 'Einrichtungen für Wohnbauten');
+INSERT INTO gifi (accno,description) VALUES ('0195', 'Wohnbauten im Bau');
+INSERT INTO gifi (accno,description) VALUES ('0199', 'Anzahlungen auf Wohnbauten auf fremden Grundstücken');
+INSERT INTO gifi (accno,description) VALUES ('0200', 'Technische Anlagen und Maschinen');
+INSERT INTO gifi (accno,description) VALUES ('0210', 'Maschinen');
+INSERT INTO gifi (accno,description) VALUES ('0220', 'Maschinengebundene Werkzeuge');
+INSERT INTO gifi (accno,description) VALUES ('0240', 'Maschinelle Anlagen');
+INSERT INTO gifi (accno,description) VALUES ('0260', 'Transportanlagen und ähnliches');
+INSERT INTO gifi (accno,description) VALUES ('0280', 'Betriebsvorrichtungen');
+INSERT INTO gifi (accno,description) VALUES ('0290', 'Technische Anlagen und Maschinen im Bau');
+INSERT INTO gifi (accno,description) VALUES ('0299', 'Anzahlungen auf technische Anlagen und Maschinen');
+INSERT INTO gifi (accno,description) VALUES ('0300', 'Andere Anlagen, Betriebs- und Geschäftsausstattung');
+INSERT INTO gifi (accno,description) VALUES ('0310', 'Andere Anlagen');
+INSERT INTO gifi (accno,description) VALUES ('0320', 'Pkw');
+INSERT INTO gifi (accno,description) VALUES ('0350', 'Lkw');
+INSERT INTO gifi (accno,description) VALUES ('0380', 'Sonstige Transportmittel');
+INSERT INTO gifi (accno,description) VALUES ('0400', 'Betriebsausstattung');
+INSERT INTO gifi (accno,description) VALUES ('0410', 'Geschäftsausstattung');
+INSERT INTO gifi (accno,description) VALUES ('0420', 'Büroeinrichtung');
+INSERT INTO gifi (accno,description) VALUES ('0430', 'Ladeneinrichtung');
+INSERT INTO gifi (accno,description) VALUES ('0440', 'Werkzeuge');
+INSERT INTO gifi (accno,description) VALUES ('0450', 'Einbauten');
+INSERT INTO gifi (accno,description) VALUES ('0460', 'Gerüst- und Schalungsmaterial');
+INSERT INTO gifi (accno,description) VALUES ('0480', 'Geringwertige Wirtschaftsgüter bis DM 800,-');
+INSERT INTO gifi (accno,description) VALUES ('0490', 'Sonstige Betriebs- und Geschäftsausstattung');
+INSERT INTO gifi (accno,description) VALUES ('0498', 'Andere Anlagen, Betriebs- und Geschäftsausstatt. im Bau');
+INSERT INTO gifi (accno,description) VALUES ('0499', 'Anzahl. a. andere Anlagen, Betriebs- u. Geschäftsausstatt.');
+INSERT INTO gifi (accno,description) VALUES ('0500', 'Anteile an verbundenen Unternehmen (Anlagevermögen)');
+INSERT INTO gifi (accno,description) VALUES ('0504', 'Anteile an herrschender oder mit Mehrheit beteiligter Gesellschaft');
+INSERT INTO gifi (accno,description) VALUES ('0505', 'Ausleihungen an verbundene Unternehmen');
+INSERT INTO gifi (accno,description) VALUES ('0510', 'Beteiligungen');
+INSERT INTO gifi (accno,description) VALUES ('0513', 'Typisch stille Beteiligungen');
+INSERT INTO gifi (accno,description) VALUES ('0516', 'Atypisch stille Beteiligungen');
+INSERT INTO gifi (accno,description) VALUES ('0517', 'Andere Beteiligungen an Kapitalgesellschaften');
+INSERT INTO gifi (accno,description) VALUES ('0518', 'Andere Beteiligungen an Personengesellschaften');
+INSERT INTO gifi (accno,description) VALUES ('0519', 'Beteiligung einer GmbH&CoKG an einer Komplementär GmbH');
+INSERT INTO gifi (accno,description) VALUES ('0520', 'Ausleihung an Untern. m.d.e. Beteiligungsverhältnis besteht');
+INSERT INTO gifi (accno,description) VALUES ('0525', 'Wertpapiere des Anlagevermögens');
+INSERT INTO gifi (accno,description) VALUES ('0530', 'Wertpapiere mit Gewinnbeteiligungsansprüchen');
+INSERT INTO gifi (accno,description) VALUES ('0535', 'Festverzinsliche Wertpapiere');
+INSERT INTO gifi (accno,description) VALUES ('0540', 'Sonstige Ausleihungen');
+INSERT INTO gifi (accno,description) VALUES ('0550', 'Darlehen / Sonstige Ausleihungen');
+INSERT INTO gifi (accno,description) VALUES ('0570', 'Genossenschaftsanteile zum langfristigen Verbleib');
+INSERT INTO gifi (accno,description) VALUES ('0580', 'Ausleihungen an Gesellschafter');
+INSERT INTO gifi (accno,description) VALUES ('0590', 'Ausleihungen an nahestehende Personen');
+INSERT INTO gifi (accno,description) VALUES ('0595', 'Rückdeckungsanspr. a. Lebensvers. z. langfrist. Verbleib');
+INSERT INTO gifi (accno,description) VALUES ('0600', 'Anleihen nicht konvertibel');
+INSERT INTO gifi (accno,description) VALUES ('0601', 'Anleihen nicht konvertibel - Restlaufzeit bis 1 Jahr');
+INSERT INTO gifi (accno,description) VALUES ('0605', 'Anleihen nicht konvertibel - Restlaufzeit 1 bis 5 Jahre');
+INSERT INTO gifi (accno,description) VALUES ('0610', 'Anleihen nicht konvertibel - Restlaufzeit größer 5 Jahre');
+INSERT INTO gifi (accno,description) VALUES ('0615', 'Anleihen konvertibel');
+INSERT INTO gifi (accno,description) VALUES ('0616', 'Anleihen konvertibel - Restlaufzeit bis 1 Jahr');
+INSERT INTO gifi (accno,description) VALUES ('0620', 'Anleihen konvertibel - Restlaufzeit 1 bis 5 Jahre');
+INSERT INTO gifi (accno,description) VALUES ('0625', 'Anleihen konvertibel - Restlaufzeit größer 5 Jahre');
+INSERT INTO gifi (accno,description) VALUES ('0630', 'Verbindlichkeiten gegenüber Kreditinstituten');
+INSERT INTO gifi (accno,description) VALUES ('0631', 'Verb. gg. Kreditinstituten - Restlaufz. bis 1 Jahr');
+INSERT INTO gifi (accno,description) VALUES ('0640', 'Verb. gg. Kreditinstituten - Restlaufz. 1 bis 5 Jahre');
+INSERT INTO gifi (accno,description) VALUES ('0650', 'Verb. gg. Kreditinstituten - Restlaufz. größer 5 Jahre');
+INSERT INTO gifi (accno,description) VALUES ('0660', 'Verbindlichkeiten gg. Kreditinst. aus TZ-Verträgen');
+INSERT INTO gifi (accno,description) VALUES ('0661', 'Verb. gg. Kreditinst. aus TZ-Verträgen - Restl. bis 1 J.');
+INSERT INTO gifi (accno,description) VALUES ('0670', 'Verb. gg. Kreditinst. aus TZ-Verträgen - Restl. 1 bis 5 J.');
+INSERT INTO gifi (accno,description) VALUES ('0680', 'Verb. gg. Kreditinst. aus TZ-Verträgen - Restl. größer 5 J.');
+INSERT INTO gifi (accno,description) VALUES ('0700', 'Verbindlichkeiten gg. verbundenen Unternehmen');
+INSERT INTO gifi (accno,description) VALUES ('0701', 'Verb. gg. verbundenen Unternehmen - Restlaufz. b. 1 J.');
+INSERT INTO gifi (accno,description) VALUES ('0705', 'Verb. gg. verbundenen Unternehmen - Restlaufz. 1 b. 5 J.');
+INSERT INTO gifi (accno,description) VALUES ('0710', 'Verb. gg. verb. Untern. - Restlaufz. gr. 5 J.');
+INSERT INTO gifi (accno,description) VALUES ('0715', 'Verb. gg. Untern. mit denen ein Beteiligungsverh. besteht');
+INSERT INTO gifi (accno,description) VALUES ('0716', 'Verb. gg. U. m.d.e. Beteiligungsv. best. - Restl. b. 1 J');
+INSERT INTO gifi (accno,description) VALUES ('0720', 'Verb. gg. U. m.d.e. Beteiligungsv. best. - Restl. 1 b. 5 J');
+INSERT INTO gifi (accno,description) VALUES ('0725', 'Verb. gg. U. m.d.e. Beteiligungsv. best. - Restl. gr. 5 J');
+INSERT INTO gifi (accno,description) VALUES ('0730', 'Verbindlichkeiten gegenüber Gesellschaftern');
+INSERT INTO gifi (accno,description) VALUES ('0731', 'Verb. gg. Gesellschaftern - Restlaufz. bis 1 Jahr');
+INSERT INTO gifi (accno,description) VALUES ('0740', 'Verb. gg. Gesellschaftern - Restlaufz. 1 bis 5 Jahre');
+INSERT INTO gifi (accno,description) VALUES ('0750', 'Verb. gg. Gesellschaftern - Restlaufz. größer 5 Jahre');
+INSERT INTO gifi (accno,description) VALUES ('0755', 'Verb. gg. Gesellschaftern für offene Ausschüttungen');
+INSERT INTO gifi (accno,description) VALUES ('0760', 'Darlehen typisch stiller Gesellschafter');
+INSERT INTO gifi (accno,description) VALUES ('0761', 'Darlehen typ. stiller Gesellschafter - Restlaufz. bis 1 Jahr');
+INSERT INTO gifi (accno,description) VALUES ('0764', 'Darlehen typ. stiller Gesellschafter - Restlaufz. 1 bis 5 J.');
+INSERT INTO gifi (accno,description) VALUES ('0767', 'Darlehen typ. stiller Gesellschafter - Restlaufz. größer 5 J.');
+INSERT INTO gifi (accno,description) VALUES ('0770', 'Darlehen atypisch stiller Gesellschafter');
+INSERT INTO gifi (accno,description) VALUES ('0771', 'Darlehen atyp. stiller Gesellsch.- Restlaufz. bis 1 J.');
+INSERT INTO gifi (accno,description) VALUES ('0774', 'Darlehen atyp. stiller Gesellsch.- Restlaufz. 1 bis 5 J.');
+INSERT INTO gifi (accno,description) VALUES ('0777', 'Darlehen atyp. stiller Gesellsch.- Restlaufz. größer 5 J.');
+INSERT INTO gifi (accno,description) VALUES ('0780', 'Partiarische Darlehen');
+INSERT INTO gifi (accno,description) VALUES ('0781', 'Partiarische Darlehen - Restlaufzeit bis 1 Jahr');
+INSERT INTO gifi (accno,description) VALUES ('0784', 'Partiarische Darlehen - Restlaufzeit 1 bis 5 Jahre');
+INSERT INTO gifi (accno,description) VALUES ('0787', 'Partiarische Darlehen - Restlaufzeit größer 5 Jahre');
+INSERT INTO gifi (accno,description) VALUES ('0800', 'Gezeichnetes Kapital');
+INSERT INTO gifi (accno,description) VALUES ('0801', 'Ausst. Einl. a.d. gez. Kapital, nicht eingef. (Aktivausw.)');
+INSERT INTO gifi (accno,description) VALUES ('0810', 'Ausst. Einl. a.d. gez. Kapital, eingeford. (Aktivausw.)');
+INSERT INTO gifi (accno,description) VALUES ('0820', 'Ausst. Einl. a.d. gez. Kapital, nicht eingef. (Passivausw.)');
+INSERT INTO gifi (accno,description) VALUES ('0830', 'Ausst. Einl. a.d. gez. Kapital, eingef. (Passivausw.)');
+INSERT INTO gifi (accno,description) VALUES ('0839', 'Eingeforderte Nachschüsse');
+INSERT INTO gifi (accno,description) VALUES ('0840', 'Kapitalrücklage');
+INSERT INTO gifi (accno,description) VALUES ('0841', 'Kapitalrückl. durch Ausgabe von Anteilen über Nennbetrag');
+INSERT INTO gifi (accno,description) VALUES ('0842', 'Kap.Rückl. Schuldver. f. Wandl.- u. Optionsr. z. Erw. v. Ant');
+INSERT INTO gifi (accno,description) VALUES ('0843', 'Kapitalrückl. d. Zuzahl. gg. Gewähr e. Vorzuges f. Anteile');
+INSERT INTO gifi (accno,description) VALUES ('0844', 'Kapitalrückl. d. andere Zuzahlungen in das Eigenkapital');
+INSERT INTO gifi (accno,description) VALUES ('0845', 'Eingefordertes Nachschußkapital');
+INSERT INTO gifi (accno,description) VALUES ('0846', 'Gesetzliche Rücklage');
+INSERT INTO gifi (accno,description) VALUES ('0847', 'Gesetzliche Rücklage 50/45% Vorbelastung');
+INSERT INTO gifi (accno,description) VALUES ('0848', 'Gesetzliche Rücklage 30% Vorbelastung');
+INSERT INTO gifi (accno,description) VALUES ('0849', 'Gesetzliche Rücklage 0% Vorbelastung');
+INSERT INTO gifi (accno,description) VALUES ('0850', 'Rücklage für eigene Anteile');
+INSERT INTO gifi (accno,description) VALUES ('0851', 'Satzungsmäßige Rücklagen');
+INSERT INTO gifi (accno,description) VALUES ('0852', 'Satzungsmäßige Rücklage 50/45% Vorbelastung');
+INSERT INTO gifi (accno,description) VALUES ('0853', 'Satzungsmäßige Rücklage 30% Vorbelastung');
+INSERT INTO gifi (accno,description) VALUES ('0854', 'Satzungsmäßige Rücklage 0% Vorbelastung');
+INSERT INTO gifi (accno,description) VALUES ('0855', 'Andere Gewinnrücklagen 50/45% Vorbelastung');
+INSERT INTO gifi (accno,description) VALUES ('0856', 'Eigenkapitalanteil von Wertaufholungen');
+INSERT INTO gifi (accno,description) VALUES ('0857', 'Eigenkapitalanteil von Preissteigerungsrücklagen');
+INSERT INTO gifi (accno,description) VALUES ('0858', 'Andere Gewinnrücklagen 30% Vorbelastung');
+INSERT INTO gifi (accno,description) VALUES ('0859', 'Andere Gewinnrücklagen 0% Vorbelastung');
+INSERT INTO gifi (accno,description) VALUES ('0860', 'Gewinnvortrag vor Verwendung');
+INSERT INTO gifi (accno,description) VALUES ('0862', 'Gewinnvortrag 50/45% Vorbelastung');
+INSERT INTO gifi (accno,description) VALUES ('0864', 'Gewinnvortrag 30% Vorbelastung');
+INSERT INTO gifi (accno,description) VALUES ('0866', 'Gewinnvortrag 0% Vorbelastung');
+INSERT INTO gifi (accno,description) VALUES ('0868', 'Verlustvortrag vor Verwendung');
+INSERT INTO gifi (accno,description) VALUES ('0869', 'Vorträge auf neue Rechnung (Bilanz)');
+INSERT INTO gifi (accno,description) VALUES ('0870', 'Festkapital (Personenges. Vollhafter / Einzelu.)');
+INSERT INTO gifi (accno,description) VALUES ('0880', 'Variables Kapital (Personenges. Vollhaft. / Einzelu.)');
+INSERT INTO gifi (accno,description) VALUES ('0890', 'Gesellsch.-Darlehen (Personenges. Vollhaft. / Einzelu.)');
+INSERT INTO gifi (accno,description) VALUES ('0900', 'Kommandit-Kapital (Personenges. Teilhafter)');
+INSERT INTO gifi (accno,description) VALUES ('0910', 'Verlustausgleichskonto (Personenges. Teilhafter)');
+INSERT INTO gifi (accno,description) VALUES ('0920', 'Gesellschafter-Darlehen (Personenges. Teilhafter)');
+INSERT INTO gifi (accno,description) VALUES ('0930', 'Sonderposten mit Rücklageanteil');
+INSERT INTO gifi (accno,description) VALUES ('0931', 'Sonderposten mit Rücklageanteil §6b EStG');
+INSERT INTO gifi (accno,description) VALUES ('0932', 'Sonderposten mit Rücklageanteil Abschnitt 35 EStR');
+INSERT INTO gifi (accno,description) VALUES ('0933', 'Sonderposten mit Rücklageanteil §6dEStG');
+INSERT INTO gifi (accno,description) VALUES ('0934', 'Sonderposten mit Rücklageanteil §1 EntwLStG');
+INSERT INTO gifi (accno,description) VALUES ('0935', 'Sonderposten mit Rücklageanteil §3 Ausl-InvG');
+INSERT INTO gifi (accno,description) VALUES ('0936', 'Sonderposten mit Rücklageanteil §7d EStG');
+INSERT INTO gifi (accno,description) VALUES ('0937', 'Sonderposten mit Rücklageanteil §79 EStDV');
+INSERT INTO gifi (accno,description) VALUES ('0938', 'Sonderposten mit Rücklageanteil §80 EStDV');
+INSERT INTO gifi (accno,description) VALUES ('0939', 'Sonderposten mit Rücklageanteil §81 EStDV');
+INSERT INTO gifi (accno,description) VALUES ('0940', 'Sonderposten mit Rücklageanteil §82 EStDV');
+INSERT INTO gifi (accno,description) VALUES ('0941', 'Sonderposten mit Rücklageanteil §82a EStDV');
+INSERT INTO gifi (accno,description) VALUES ('0942', 'Sonderposten mit Rücklageanteil §82d EStDV');
+INSERT INTO gifi (accno,description) VALUES ('0943', 'Sonderposten mit Rücklageanteil §82e EStDV');
+INSERT INTO gifi (accno,description) VALUES ('0944', 'Sonderposten mit Rücklageanteil §14 BerlinFG');
+INSERT INTO gifi (accno,description) VALUES ('0945', 'Sonderposten mit Rücklageanteil §3 ZonenRFG / §4-6 FördergebietsG');
+INSERT INTO gifi (accno,description) VALUES ('0946', 'Sonderposten mit Rücklageanteil §52 Abs. 5 EStG');
+INSERT INTO gifi (accno,description) VALUES ('0947', 'Sonderposten mit Rücklageanteil §7g Abs. 1 EStG');
+INSERT INTO gifi (accno,description) VALUES ('0948', 'Sonderposten mit Rücklageanteil §7g Abs. 3 EStG');
+INSERT INTO gifi (accno,description) VALUES ('0949', 'Sonderposten mit Rücklageanteil §74 EStDV');
+INSERT INTO gifi (accno,description) VALUES ('0950', 'Rückstellungen für Pensionen und ähnliche Verpflichtungen');
+INSERT INTO gifi (accno,description) VALUES ('0955', 'Steuerrückstellungen');
+INSERT INTO gifi (accno,description) VALUES ('0957', 'Gewerbesteuerrückstellung');
+INSERT INTO gifi (accno,description) VALUES ('0963', 'Körperschaftsteuerrückstellung');
+INSERT INTO gifi (accno,description) VALUES ('0969', 'Rückstellungen für latente Steuern');
+INSERT INTO gifi (accno,description) VALUES ('0970', 'Sonstige Rückstellungen');
+INSERT INTO gifi (accno,description) VALUES ('0971', 'Rückst. unterl. Aufw. Instandhalt., Nachhol. in 3 Mon');
+INSERT INTO gifi (accno,description) VALUES ('0972', 'Rückst. unterl. Aufw. Instandhalt., Nachhol. in 4-12 Mon');
+INSERT INTO gifi (accno,description) VALUES ('0973', 'Rückstellungen für Abraum- und Abfallbeseitigung');
+INSERT INTO gifi (accno,description) VALUES ('0974', 'Rückstellungen für Gewährleistungen');
+INSERT INTO gifi (accno,description) VALUES ('0976', 'Rückst. f. drohende Verluste a. schwebenden Geschäften');
+INSERT INTO gifi (accno,description) VALUES ('0977', 'Rückstellungen für Abschluß- und Prüfungskosten');
+INSERT INTO gifi (accno,description) VALUES ('0978', 'Aufwandsrückstellungen gemäß § 249 Abs. 2 HGB');
+INSERT INTO gifi (accno,description) VALUES ('0979', 'Rückstellungen für den Umweltschutz');
+INSERT INTO gifi (accno,description) VALUES ('0980', 'Aktive Rechnungsabgrenzung');
+INSERT INTO gifi (accno,description) VALUES ('0983', 'Abgrenzung aktive latente Steuern');
+INSERT INTO gifi (accno,description) VALUES ('0984', 'Als Aufwand berücks. Zölle u. Verbrauchsst. a. Vorräte');
+INSERT INTO gifi (accno,description) VALUES ('0985', 'Als Aufwand berücks. Umsatzsteuer auf Anzahlungen');
+INSERT INTO gifi (accno,description) VALUES ('0986', 'Damnum / Disagio');
+INSERT INTO gifi (accno,description) VALUES ('0990', 'Passive Rechnungsabgrenzung');
+INSERT INTO gifi (accno,description) VALUES ('0992', 'Wertber.n (zur unterjährigen Kostenverrechnung f. BWA)');
+INSERT INTO gifi (accno,description) VALUES ('0996', 'Pauschalwertberichtigung a. Ford. - Restlaufz. bis 1 Jahr');
+INSERT INTO gifi (accno,description) VALUES ('0997', 'Pauschalwertberichtigung a. Ford. - Restlaufz. größer 1 Jahr');
+INSERT INTO gifi (accno,description) VALUES ('0998', 'Einzelwertberichtigung a. Ford. - Restlaufz. bis 1 Jahr');
+INSERT INTO gifi (accno,description) VALUES ('0999', 'Einzelwertberichtigung a. Ford. - Restlaufz. größer 1 Jahr');
+INSERT INTO gifi (accno,description) VALUES ('1000', 'Kasse');
+INSERT INTO gifi (accno,description) VALUES ('1010', 'Nebenkasse 1');
+INSERT INTO gifi (accno,description) VALUES ('1020', 'Nebenkasse 2');
+INSERT INTO gifi (accno,description) VALUES ('1100', 'Postgiro');
+INSERT INTO gifi (accno,description) VALUES ('1110', 'Postgiro 1');
+INSERT INTO gifi (accno,description) VALUES ('1120', 'Postgiro 2');
+INSERT INTO gifi (accno,description) VALUES ('1130', 'Postgiro 3');
+INSERT INTO gifi (accno,description) VALUES ('1190', 'LZB-Guthaben');
+INSERT INTO gifi (accno,description) VALUES ('1195', 'Bundesbankguthaben');
+INSERT INTO gifi (accno,description) VALUES ('1200', 'Bank-Giro');
+INSERT INTO gifi (accno,description) VALUES ('1210', 'Bank-Giro 1');
+INSERT INTO gifi (accno,description) VALUES ('1220', 'Bank-Giro 2');
+INSERT INTO gifi (accno,description) VALUES ('1230', 'Bank-Giro 3');
+INSERT INTO gifi (accno,description) VALUES ('1300', 'Wechsel aus Lieferungen und Leistungen');
+INSERT INTO gifi (accno,description) VALUES ('1301', 'Wechsel aus Lieferungen u. Leistungen - Restlaufz. bis 1 J.');
+INSERT INTO gifi (accno,description) VALUES ('1302', 'Wechsel aus Lieferungen u. Leistungen - Restl. größer 1 J.');
+INSERT INTO gifi (accno,description) VALUES ('1305', 'Wechsel aus Lieferungen u. Leistungen, bundesbankfähig');
+INSERT INTO gifi (accno,description) VALUES ('1310', 'Besitzwechsel gg. verbundenen Unternehmen');
+INSERT INTO gifi (accno,description) VALUES ('1311', 'Besitzwechsel gg. verbundenen Untern. - Restl. b. 1 J.');
+INSERT INTO gifi (accno,description) VALUES ('1312', 'Besitzwechsel gg. verbundenen Untern. - Restl. gr. 1 J.');
+INSERT INTO gifi (accno,description) VALUES ('1315', 'Besitzwechsel gg. verb. Unternehmen, bundesbankfähig');
+INSERT INTO gifi (accno,description) VALUES ('1320', 'Besitzwechsel gg. Untern. m.d.e. Beteiligungsverh. best.');
+INSERT INTO gifi (accno,description) VALUES ('1321', 'Besitzwechsel gg. U. m.d.e. Beteilig. best. - Restl. b. 1 J');
+INSERT INTO gifi (accno,description) VALUES ('1322', 'Besitzwechsel gg. U. m.d.e. Beteilig. best. - Restl. gr. 1 J');
+INSERT INTO gifi (accno,description) VALUES ('1325', 'Besitzwechsel gg. U. m.d.e. Beteilig. best., bundsbankfähig');
+INSERT INTO gifi (accno,description) VALUES ('1327', 'Finanzwechsel');
+INSERT INTO gifi (accno,description) VALUES ('1330', 'Schecks');
+INSERT INTO gifi (accno,description) VALUES ('1340', 'Anteile an verb. Unternehmen (Umlaufvermögen)');
+INSERT INTO gifi (accno,description) VALUES ('1344', 'Anteile an herrschender oder mit Mehrheit beteiligter Gesellschaft');
+INSERT INTO gifi (accno,description) VALUES ('1345', 'Eigene Anteile');
+INSERT INTO gifi (accno,description) VALUES ('1348', 'Sonstige Wertpapiere');
+INSERT INTO gifi (accno,description) VALUES ('1350', 'GmbH-Anteile zum kurzfristigen Verbleib');
+INSERT INTO gifi (accno,description) VALUES ('1352', 'Genossenschaftsanteile zum kurzfristigen Verbleib');
+INSERT INTO gifi (accno,description) VALUES ('1355', 'Ansprüche aus Rückdeckungsversicherungen');
+INSERT INTO gifi (accno,description) VALUES ('1360', 'Geldtransit Bank');
+INSERT INTO gifi (accno,description) VALUES ('1361', 'Geldtransit Bank 1');
+INSERT INTO gifi (accno,description) VALUES ('1362', 'Geldtransit Bank 2');
+INSERT INTO gifi (accno,description) VALUES ('1363', 'Geldtransit Bank 3');
+INSERT INTO gifi (accno,description) VALUES ('1369', 'Interne Umbuchung');
+INSERT INTO gifi (accno,description) VALUES ('1370', 'Verrechnungskonto Gewinnermittlung §4/3 EStG, ergebniswirksam');
+INSERT INTO gifi (accno,description) VALUES ('1371', 'Verrechnungskonto für Gewinnermittl. §4/3EStG, nicht ergebniswirksam');
+INSERT INTO gifi (accno,description) VALUES ('1380', 'Überleitungskonto Kostenstelle');
+INSERT INTO gifi (accno,description) VALUES ('1390', 'Verrechnungskonto Ist-Versteuerung');
+INSERT INTO gifi (accno,description) VALUES ('1400', 'Forderungen aus Lief. und Leist. Kundengruppe 0');
+INSERT INTO gifi (accno,description) VALUES ('1401', 'Forderungen aus Lief. und Leist. Kundengruppe 1');
+INSERT INTO gifi (accno,description) VALUES ('1402', 'Forderungen aus Lief. und Leist. Kundengruppe 2');
+INSERT INTO gifi (accno,description) VALUES ('1410', 'Forderungen aus Lief. und Leist. ohne Kontokorrent');
+INSERT INTO gifi (accno,description) VALUES ('1450', 'Forderungen nach §11, Abs.1 Satz 2 EStG für § 4/3 EStG');
+INSERT INTO gifi (accno,description) VALUES ('1451', 'Ford.a.Lief.u.Leist. ohne Kontokorrent - Restlaufz. b. 1 J.');
+INSERT INTO gifi (accno,description) VALUES ('1455', 'Ford.a.Lief.u.Leist. ohne Kontokorrent - Restlaufz. gr.1 J.');
+INSERT INTO gifi (accno,description) VALUES ('1460', 'Zweifelhafte Forderungen');
+INSERT INTO gifi (accno,description) VALUES ('1461', 'Zweifelhafte Forderungen - Restlaufzeit bis 1 Jahr');
+INSERT INTO gifi (accno,description) VALUES ('1465', 'Zweifelhafte Forderungen - Restlaufzeit größer 1 Jahr');
+INSERT INTO gifi (accno,description) VALUES ('1470', 'Ford.a.Lief.u.Leist. gg. verbundenen Unternehmen');
+INSERT INTO gifi (accno,description) VALUES ('1471', 'Ford.a.Lief.u.Leist. gg. verb. Untern. - Restl. bis 1 J.');
+INSERT INTO gifi (accno,description) VALUES ('1475', 'Ford.a.Lief.u.Leist. gg. verb. Untern. - Restl. größer 1 J.');
+INSERT INTO gifi (accno,description) VALUES ('1478', 'Wertber. a. Ford.a.L.u.L. gg. verb. U. - Restl. b. 1 J.');
+INSERT INTO gifi (accno,description) VALUES ('1479', 'Wertber. a. Ford.a.L.u.L. gg. verb. U. - Restl. gr. 1 J.');
+INSERT INTO gifi (accno,description) VALUES ('1480', 'Ford.a.L.u.L. gg. Untern. m.d.e. Beteiligungsverh. best.');
+INSERT INTO gifi (accno,description) VALUES ('1481', 'Ford.a.L.u.L. gg. U. m.d.e. Beteilig. best. - Restl. b. 1 J');
+INSERT INTO gifi (accno,description) VALUES ('1485', 'Ford.a.L.u.L. gg. U. m.d.e. Beteilig. best. - Restl. gr. 1 J');
+INSERT INTO gifi (accno,description) VALUES ('1488', 'Wertber. a. Ford. Restl. b. 1 J. gg. U. m.d.e. Beteilig.');
+INSERT INTO gifi (accno,description) VALUES ('1489', 'Wertber. a. Ford. Restl. gr. 1 J. gg. U. m.d.e. Beteilig.');
+INSERT INTO gifi (accno,description) VALUES ('1490', 'Ford.a.Lief.u.Leist. gegen Gesellschafter');
+INSERT INTO gifi (accno,description) VALUES ('1491', 'Ford.a.Lief.u.Leist. gg. Gesellsch.- Restlaufz. bis 1 J.');
+INSERT INTO gifi (accno,description) VALUES ('1495', 'Ford.a.Lief.u.Leist. gg. Gesellsch.- Restlaufz. größer 1 J.');
+INSERT INTO gifi (accno,description) VALUES ('1499', 'Gegenkonto 14510-14980 bei Aufteilung Debitoren');
+INSERT INTO gifi (accno,description) VALUES ('1500', 'Sonstige Vermögensgegenstände');
+INSERT INTO gifi (accno,description) VALUES ('1501', 'Sonstige Vermögensgegenstände - Restlaufz. bis 1 Jahr');
+INSERT INTO gifi (accno,description) VALUES ('1502', 'Sonstige Vermögensgegenstände - Restlaufz. größer 1 Jahr');
+INSERT INTO gifi (accno,description) VALUES ('1503', 'Ford. gg. Vorstandsmitgl. u. Geschäftsf. - Restl. b. 1 J.');
+INSERT INTO gifi (accno,description) VALUES ('1504', 'Ford. gg. Vorstandsmitgl. u. Geschäftsf. - Restl. gr. 1 J.');
+INSERT INTO gifi (accno,description) VALUES ('1505', 'Ford. gg. Aufsichtsrats- u. Beiratsmitgl. - Restl. b. 1 J.');
+INSERT INTO gifi (accno,description) VALUES ('1506', 'Ford. gg. Aufsichtsrats- u. Beiratsmitgl. - Restl. gr. 1 J.');
+INSERT INTO gifi (accno,description) VALUES ('1507', 'Ford. gg. Gesellschafter - Restlaufzeit bis 1 Jahr');
+INSERT INTO gifi (accno,description) VALUES ('1508', 'Ford. gg. Gesellschafter - Restlaufzeit größer 1 Jahr');
+INSERT INTO gifi (accno,description) VALUES ('1510', 'Geleistete Anzahlungen auf Vorräte');
+INSERT INTO gifi (accno,description) VALUES ('1511', 'Geleistete Anzahlungen, 7% Vorsteuer');
+INSERT INTO gifi (accno,description) VALUES ('1516', 'Geleistete Anzahlungen, 15% Vorsteuer');
+INSERT INTO gifi (accno,description) VALUES ('1517', 'Geleistete Anzahlungen, 16% Vorsteuer');
+INSERT INTO gifi (accno,description) VALUES ('1521', 'Agenturwarenabrechnung');
+INSERT INTO gifi (accno,description) VALUES ('1525', 'Kautionen');
+INSERT INTO gifi (accno,description) VALUES ('1526', 'Kautionen - Restlaufzeit bis 1 Jahr');
+INSERT INTO gifi (accno,description) VALUES ('1527', 'Kautionen - Restlaufzeit größer 1 Jahr');
+INSERT INTO gifi (accno,description) VALUES ('1530', 'Forderungen gegen Personal');
+INSERT INTO gifi (accno,description) VALUES ('1531', 'Forderungen gegen Personal - Restlaufzeit bis 1 Jahr');
+INSERT INTO gifi (accno,description) VALUES ('1537', 'Forderungen gegen Personal - Restlaufzeit größer 1 Jahr');
+INSERT INTO gifi (accno,description) VALUES ('1540', 'Steuerüberzahlungen');
+INSERT INTO gifi (accno,description) VALUES ('1542', 'Steuererstattungsansprüche gg. anderen EU-Ländern');
+INSERT INTO gifi (accno,description) VALUES ('1545', 'Umsatzsteuerforderungen');
+INSERT INTO gifi (accno,description) VALUES ('1547', 'Forderungen aus entrichteten Verbrauchssteuern');
+INSERT INTO gifi (accno,description) VALUES ('1548', 'Vorsteuer im Folgejahr abziehbar');
+INSERT INTO gifi (accno,description) VALUES ('1549', 'Körperschaftsteuerrückforderung');
+INSERT INTO gifi (accno,description) VALUES ('1550', 'Darlehen');
+INSERT INTO gifi (accno,description) VALUES ('1551', 'Darlehen - Restlaufzeit bis 1 Jahr');
+INSERT INTO gifi (accno,description) VALUES ('1555', 'Darlehen - Restlaufzeit größer 1 Jahr');
+INSERT INTO gifi (accno,description) VALUES ('1560', 'Aufzuteilende Vorsteuer');
+INSERT INTO gifi (accno,description) VALUES ('1561', 'Aufzuteilende Vorsteuer, 7%');
+INSERT INTO gifi (accno,description) VALUES ('1562', 'Aufzuteilende Vorsteuer aus ig. Erwerb');
+INSERT INTO gifi (accno,description) VALUES ('1565', 'Aufzuteilende Vorsteuer, 16 %');
+INSERT INTO gifi (accno,description) VALUES ('1566', 'Aufzuteilende Vorsteuer, 15 %');
+INSERT INTO gifi (accno,description) VALUES ('1570', 'Abziehbare Vorsteuer');
+INSERT INTO gifi (accno,description) VALUES ('1571', 'Abziehbare Vorsteuer, 7%');
+INSERT INTO gifi (accno,description) VALUES ('1572', 'Abziehbare Vorsteuer aus ig. Erwerb');
+INSERT INTO gifi (accno,description) VALUES ('1573', 'Abziehbare Vorsteuer aus ig. Erwerb, 16%');
+INSERT INTO gifi (accno,description) VALUES ('1575', 'Abziehbare Vorsteuer, 16%');
+INSERT INTO gifi (accno,description) VALUES ('1576', 'Abziehbare Vorsteuer, 15%');
+INSERT INTO gifi (accno,description) VALUES ('1577', 'Vorsteuer nach allg. Durchschnittssätzen UStVA KZ 63');
+INSERT INTO gifi (accno,description) VALUES ('1578', 'Berichtigung des VSt-Abzugs früherer Jahre UStVA KZ 64');
+INSERT INTO gifi (accno,description) VALUES ('1580', 'Gegenkonto Vorsteuer § 4/3 EStG');
+INSERT INTO gifi (accno,description) VALUES ('1581', 'Auflösung Vorsteuer aus Vorjahr § 4/3 EStG');
+INSERT INTO gifi (accno,description) VALUES ('1584', 'Abziehb. VSt. a. ig. Erw. v. Neufahrz. v. Lief. ohne USt-ID');
+INSERT INTO gifi (accno,description) VALUES ('1586', 'Kürzung BerlinFG');
+INSERT INTO gifi (accno,description) VALUES ('1588', 'Bezahlte Einfuhrumsatzsteuer');
+INSERT INTO gifi (accno,description) VALUES ('1590', 'Durchlaufende Posten');
+INSERT INTO gifi (accno,description) VALUES ('1593', 'Verrechnungskto erhalt. Anzahl. b. Buchung ü. Kundenkto');
+INSERT INTO gifi (accno,description) VALUES ('1594', 'Forderungen gegen verbundene Unternehmen');
+INSERT INTO gifi (accno,description) VALUES ('1595', 'Ford. gg. verbundene Unternehmen - Restlaufz. b. 1 J.');
+INSERT INTO gifi (accno,description) VALUES ('1596', 'Ford. gg. verbundene Unternehmen - Restlaufz. gr. 1 J.');
+INSERT INTO gifi (accno,description) VALUES ('1597', 'Ford. gg. Untern. mit denen ein Beteiligungsverh. besteht');
+INSERT INTO gifi (accno,description) VALUES ('1598', 'Ford. gg. U. m.d.e. Beteiligungsv. best. - Restl. b. 1 J.');
+INSERT INTO gifi (accno,description) VALUES ('1599', 'Ford. gg. U. m.d.e. Beteiligungsv. best. - Restl. gr. 1 J.');
+INSERT INTO gifi (accno,description) VALUES ('1600', 'Verb. aus Lief. und Leist. Lieferantengruppe 0');
+INSERT INTO gifi (accno,description) VALUES ('1601', 'Verb. aus Lief. und Leist. Lieferantengruppe 1');
+INSERT INTO gifi (accno,description) VALUES ('1602', 'Verb. aus Lief. und Leist. Lieferantengruppe 2');
+INSERT INTO gifi (accno,description) VALUES ('1610', 'Verb.a.L.u.L. ohne Kontokorrent');
+INSERT INTO gifi (accno,description) VALUES ('1624', 'Verbindlichkeiten aus Lief. u. Leist. für Investitionen für §4/3 EStG');
+INSERT INTO gifi (accno,description) VALUES ('1625', 'Verb.a.L.u.L. ohne Kontokorrent - Restl. b. 1 J.');
+INSERT INTO gifi (accno,description) VALUES ('1626', 'Verb.a.L.u.L. ohne Kontokorrent - Restlaufz. 1 bis 5 J.');
+INSERT INTO gifi (accno,description) VALUES ('1628', 'Verb.a.L.u.L. ohne Kontokorrent - Restlaufz. größer 5 J.');
+INSERT INTO gifi (accno,description) VALUES ('1630', 'Verb.a.Lief.u.Leist. gg. verbundenen Unternehmen');
+INSERT INTO gifi (accno,description) VALUES ('1631', 'Verb.a.L.u.L. gg. verb. Untern. - Restlaufz. bis 1 J.');
+INSERT INTO gifi (accno,description) VALUES ('1635', 'Verb.a.L.u.L. gg. verb. Untern. - Restlaufz. 1 bis 5 J.');
+INSERT INTO gifi (accno,description) VALUES ('1638', 'Verb.a.L.u.L. gg. verb. Untern. - Restlaufz. größer 5 J.');
+INSERT INTO gifi (accno,description) VALUES ('1640', 'Verb.a.L.u.L. gg. Untern. m.d.e. Beteiligungsverh. best.');
+INSERT INTO gifi (accno,description) VALUES ('1641', 'Verb.a.L.u.L. gg. U. m.d.e. Beteilig. best. - Restl. b. 1 J');
+INSERT INTO gifi (accno,description) VALUES ('1645', 'Verb.a.L.u.L. gg. U. m.d.e. Beteilig. best. - Restl. 1 b 5 J');
+INSERT INTO gifi (accno,description) VALUES ('1648', 'Verb.a.L.u.L. gg. U. m.d.e. Beteilig. best. - Restl. gr. 5 J');
+INSERT INTO gifi (accno,description) VALUES ('1650', 'Verb.a.Lief.u.Leist. gegen Gesellschaftern');
+INSERT INTO gifi (accno,description) VALUES ('1651', 'Verb.a.Lief.u.Leist. gg. Gesellsch. - Restl. bis 1 J.');
+INSERT INTO gifi (accno,description) VALUES ('1655', 'Verb.a.Lief.u.Leist. gg. Gesellsch. - Restl. 1 bis 5 J.');
+INSERT INTO gifi (accno,description) VALUES ('1658', 'Verb.a.Lief.u.Leist. gg. Gesellsch. - Restl. größer 5 J.');
+INSERT INTO gifi (accno,description) VALUES ('1659', 'Gegenkonto 16250-16580 bei Aufteilung Kreditoren-Konto');
+INSERT INTO gifi (accno,description) VALUES ('1660', 'Schuldwechsel');
+INSERT INTO gifi (accno,description) VALUES ('1661', 'Schuldwechsel - Restlaufzeit bis 1 Jahr');
+INSERT INTO gifi (accno,description) VALUES ('1680', 'Schuldwechsel - Restlaufzeit 1 bis 5 Jahre');
+INSERT INTO gifi (accno,description) VALUES ('1690', 'Schuldwechsel - Restlaufzeit größer 5 Jahre');
+INSERT INTO gifi (accno,description) VALUES ('1700', 'Sonstige Verbindlichkeiten');
+INSERT INTO gifi (accno,description) VALUES ('1701', 'Sonstige Verbindlichkeiten - Restlaufzeit bis 1 Jahr');
+INSERT INTO gifi (accno,description) VALUES ('1702', 'Sonstige Verbindlichkeiten - Restlaufzeit 1 bis 5 Jahre');
+INSERT INTO gifi (accno,description) VALUES ('1703', 'Sonstige Verbindlichkeiten - Restlaufzeit größer 5 Jahre');
+INSERT INTO gifi (accno,description) VALUES ('1704', 'Sonstige Verbindlichkeiten, z.B. nach §11,Abs.2,2 EStG für §4/3');
+INSERT INTO gifi (accno,description) VALUES ('1705', 'Darlehen');
+INSERT INTO gifi (accno,description) VALUES ('1706', 'Darlehen - Restlaufzeit bis 1 Jahr');
+INSERT INTO gifi (accno,description) VALUES ('1707', 'Darlehen - Restlaufzeit 1 bis 5 Jahre');
+INSERT INTO gifi (accno,description) VALUES ('1708', 'Darlehen - Restlaufzeit größer 5 Jahre');
+INSERT INTO gifi (accno,description) VALUES ('1709', 'Gewinnverfügungskonto stiller Gesellschafter');
+INSERT INTO gifi (accno,description) VALUES ('1710', 'Erhaltene Anzahlungen (Verbindlichkeiten)');
+INSERT INTO gifi (accno,description) VALUES ('1711', 'Erhaltene verst. Anzahl., 7% USt (Verbindlichkeiten)');
+INSERT INTO gifi (accno,description) VALUES ('1716', 'Erhaltene verst. Anzahl., 15% USt (Verbindlichkeiten)');
+INSERT INTO gifi (accno,description) VALUES ('1717', 'Erhaltene verst. Anzahl., 16% USt (Verbindlichkeiten)');
+INSERT INTO gifi (accno,description) VALUES ('1719', 'Erhaltene Anzahlungen - Restlaufzeit bis 1 Jahr');
+INSERT INTO gifi (accno,description) VALUES ('1720', 'Erhaltene Anzahlungen - Restlaufzeit 1 bis 5 Jahre');
+INSERT INTO gifi (accno,description) VALUES ('1721', 'Erhaltene Anzahlungen - Restlaufzeit größer 5 Jahre');
+INSERT INTO gifi (accno,description) VALUES ('1722', 'Erhaltene Anzahlungen (von Vorräten offen abgesetzt)');
+INSERT INTO gifi (accno,description) VALUES ('1731', 'Agenturwarenabrechnung');
+INSERT INTO gifi (accno,description) VALUES ('1732', 'Erhaltene Kautionen');
+INSERT INTO gifi (accno,description) VALUES ('1733', 'Erhaltene Kautionen - Restlaufzeit bis 1 Jahr');
+INSERT INTO gifi (accno,description) VALUES ('1734', 'Erhaltene Kautionen - Restlaufzeit 1 bis 5 Jahre');
+INSERT INTO gifi (accno,description) VALUES ('1735', 'Erhaltene Kautionen - Restlaufzeit größer 5 Jahre');
+INSERT INTO gifi (accno,description) VALUES ('1736', 'Verbindlichkeiten aus Betriebsteuern und Abgaben');
+INSERT INTO gifi (accno,description) VALUES ('1737', 'Verb. aus Betriebsteuern u. Abgaben - Restlaufz. bis 1 J.');
+INSERT INTO gifi (accno,description) VALUES ('1738', 'Verb. aus Betriebsteuern u. Abgaben - Restlaufz. 1 bis 5 J.');
+INSERT INTO gifi (accno,description) VALUES ('1739', 'Verb. aus Betriebsteuern u. Abgaben - Restl. größer 5 J.');
+INSERT INTO gifi (accno,description) VALUES ('1740', 'Verbindlichkeiten aus Lohn und Gehalt');
+INSERT INTO gifi (accno,description) VALUES ('1741', 'Verbindlichkeiten aus Lohn- und Kirchensteuer');
+INSERT INTO gifi (accno,description) VALUES ('1742', 'Verbindlichkeiten im Rahmen der sozialen Sicherheit');
+INSERT INTO gifi (accno,description) VALUES ('1743', 'Verb. im Rahmen der sozialen Sicherheit - Restl. bis 1 J.');
+INSERT INTO gifi (accno,description) VALUES ('1744', 'Verb. im Rahmen der sozialen Sicherheit - Restl. 1 bis 5 J.');
+INSERT INTO gifi (accno,description) VALUES ('1745', 'Verb. im Rahmen der sozialen Sicherheit - Restl. gr. 5 J.');
+INSERT INTO gifi (accno,description) VALUES ('1746', 'Verbindlichkeiten aus Einbehaltungen');
+INSERT INTO gifi (accno,description) VALUES ('1747', 'Verbindlichkeiten für Verbrauchssteuern');
+INSERT INTO gifi (accno,description) VALUES ('1750', 'Verbindlichkeiten aus Vermögensbildung');
+INSERT INTO gifi (accno,description) VALUES ('1751', 'Verb. aus Vermögensbildung - Restlaufz. bis 1 Jahr');
+INSERT INTO gifi (accno,description) VALUES ('1752', 'Verb. aus Vermögensbildung - Restlaufz. 1 bis 5 Jahre');
+INSERT INTO gifi (accno,description) VALUES ('1753', 'Verb. aus Vermögensbildung - Restlaufz. größer 5 Jahre');
+INSERT INTO gifi (accno,description) VALUES ('1755', 'Lohn- und Gehaltsverrechnung');
+INSERT INTO gifi (accno,description) VALUES ('1758', 'Umsatzsteuerabzugsverfahren, 16% Umsatzsteuer');
+INSERT INTO gifi (accno,description) VALUES ('1759', 'Umsatzsteuerabzugsverfahren, 15% Umsatzsteuer');
+INSERT INTO gifi (accno,description) VALUES ('1760', 'Umsatzsteuer nicht fällig');
+INSERT INTO gifi (accno,description) VALUES ('1761', 'Umsatzsteuer nicht fällig , 7%');
+INSERT INTO gifi (accno,description) VALUES ('1762', 'Umsatzsteuer nicht fällig a.i. Inland steuerpfl. EU-Lief.');
+INSERT INTO gifi (accno,description) VALUES ('1763', 'Umsatzsteuer nicht fällig a.i. Inland steuerpfl. EU-Lief., 16%');
+INSERT INTO gifi (accno,description) VALUES ('1765', 'Umsatzsteuer nicht fällig, 16%');
+INSERT INTO gifi (accno,description) VALUES ('1766', 'Umsatzsteuer nicht fällig, 15%');
+INSERT INTO gifi (accno,description) VALUES ('1767', 'Umsatzsteuer a.i. and. EU-Land steuerpfl. Lief.');
+INSERT INTO gifi (accno,description) VALUES ('1768', 'Umsatzsteuer a.i. and. EU-Land steuerpfl. sonst. Lief./Werkl.');
+INSERT INTO gifi (accno,description) VALUES ('1769', 'Steuerzahlungen an andere EU-Länder');
+INSERT INTO gifi (accno,description) VALUES ('1770', 'Umsatzsteuer');
+INSERT INTO gifi (accno,description) VALUES ('1771', 'Umsatzsteuer, 7%');
+INSERT INTO gifi (accno,description) VALUES ('1772', 'Umsatzsteuer aus ig. Erwerb');
+INSERT INTO gifi (accno,description) VALUES ('1773', 'Umsatzsteuer aus ig. Erwerb, 16%');
+INSERT INTO gifi (accno,description) VALUES ('1775', 'Umsatzsteuer, 16%');
+INSERT INTO gifi (accno,description) VALUES ('1776', 'Umsatzsteuer, 15%');
+INSERT INTO gifi (accno,description) VALUES ('1777', 'Umsatzsteuer aus im Inland steuerpfl. EU-Lieferungen');
+INSERT INTO gifi (accno,description) VALUES ('1778', 'Umsatzsteuer aus im Inland steuerpfl. EU-Lieferungen, 16%');
+INSERT INTO gifi (accno,description) VALUES ('1779', 'Umsatzsteuer aus ig. Erwerb ohne Vorsteuerabzug');
+INSERT INTO gifi (accno,description) VALUES ('1780', 'Umsatzsteuer - Vorauszahlungen');
+INSERT INTO gifi (accno,description) VALUES ('1781', 'Umsatzsteuer - Vorauszahlungen 1/11');
+INSERT INTO gifi (accno,description) VALUES ('1782', 'Nachsteuer, UStVA KZ 65');
+INSERT INTO gifi (accno,description) VALUES ('1783', 'In Rechnung unber. ausgewiesene und geschuldete Steuer, UStVA KZ 69');
+INSERT INTO gifi (accno,description) VALUES ('1784', 'Umsatzsteuer aus ig. Erw. v. Neufahrz. v. Lief. ohne USt-ID');
+INSERT INTO gifi (accno,description) VALUES ('1788', 'Einfuhrumsatzsteuer aufgeschoben bis');
+INSERT INTO gifi (accno,description) VALUES ('1789', 'Umsatzsteuer laufendes Jahr');
+INSERT INTO gifi (accno,description) VALUES ('1790', 'Umsatzsteuer Vorjahr');
+INSERT INTO gifi (accno,description) VALUES ('1791', 'Umsatzsteuer frühere Jahre');
+INSERT INTO gifi (accno,description) VALUES ('1792', 'Abgrenzung für Grundstücke');
+INSERT INTO gifi (accno,description) VALUES ('1794', 'Abgrenzung für immaterielle Vermögensgegenstände');
+INSERT INTO gifi (accno,description) VALUES ('1795', 'Abgrenzung für Bauten auf eigenen Grundstücken');
+INSERT INTO gifi (accno,description) VALUES ('1796', 'Abgrenzung für andere Anlagen, B.u.G. Ausstattung');
+INSERT INTO gifi (accno,description) VALUES ('1797', 'Abgrenzung für Bauten auf fremden Grundstücken');
+INSERT INTO gifi (accno,description) VALUES ('1798', 'Abgrenzung für technische Anlagen und Maschinen');
+INSERT INTO gifi (accno,description) VALUES ('1799', 'Sonstige Verrechnungskonten (Interimskonten)');
+INSERT INTO gifi (accno,description) VALUES ('1793', 'Verrechnungskto geleist. Anzahl. bei Buchung über Lief.Kto.');
+INSERT INTO gifi (accno,description) VALUES ('1800', 'Privatentn. allg. (Privat Vollhafter / Einzelunternehmer)');
+INSERT INTO gifi (accno,description) VALUES ('1810', 'Privatsteuern (Privat Vollhafter / Einzelunternehmer)');
+INSERT INTO gifi (accno,description) VALUES ('1820', 'Sonderausg. beschr. abzugsf. (Privat Vollhaft./Einzelu.)');
+INSERT INTO gifi (accno,description) VALUES ('1830', 'Sonderausg. unbeschr. abzugsf. (Privat Vollhaft./Einzelu.)');
+INSERT INTO gifi (accno,description) VALUES ('1840', 'Privatspenden (Privat Vollhafter / Einzelunternehmer)');
+INSERT INTO gifi (accno,description) VALUES ('1850', 'Außergewöhnliche Belastungen (Privat Vollhaft. / Einzelunt.)');
+INSERT INTO gifi (accno,description) VALUES ('1860', 'Grundstücksaufwand (Privat Vollhafter / Einzelunternehmer)');
+INSERT INTO gifi (accno,description) VALUES ('1870', 'Grundstücksertrag (Privat Vollhafter / Einzelunternehmer)');
+INSERT INTO gifi (accno,description) VALUES ('1880', 'Eigenverbrauch (Privat Vollhafter / Einzelunternehmer)');
+INSERT INTO gifi (accno,description) VALUES ('1890', 'Privateinlagen (Privat Vollhafter / Einzelunternehmer)');
+INSERT INTO gifi (accno,description) VALUES ('1900', 'Privatentnahmen allgemein (Privat Teilhafter)');
+INSERT INTO gifi (accno,description) VALUES ('1910', 'Privatsteuern (Privat Teilhafter)');
+INSERT INTO gifi (accno,description) VALUES ('1920', 'Sonderausgaben beschränkt abzugsf. (Privat Teilhafter)');
+INSERT INTO gifi (accno,description) VALUES ('1930', 'Sonderausgaben unbeschränkt abzugsf. (Privat Teilhafter)');
+INSERT INTO gifi (accno,description) VALUES ('1940', 'Privatspenden (Privat Teilhafter)');
+INSERT INTO gifi (accno,description) VALUES ('1950', 'Außergewöhnliche Belastungen (Privat Teilhafter)');
+INSERT INTO gifi (accno,description) VALUES ('1960', 'Grundstücksaufwand (Privat Teilhafter)');
+INSERT INTO gifi (accno,description) VALUES ('1970', 'Grundstücksertrag (Privat Teilhafter)');
+INSERT INTO gifi (accno,description) VALUES ('1980', 'Eigenverbrauch (Privat Teilhafter)');
+INSERT INTO gifi (accno,description) VALUES ('1990', 'Privateinlagen (Privat Teilhafter)');
+INSERT INTO gifi (accno,description) VALUES ('2000', 'Außerordentliche Aufwendungen');
+INSERT INTO gifi (accno,description) VALUES ('2010', 'Betriebsfremde Aufw. (soweit nicht außerordentlich)');
+INSERT INTO gifi (accno,description) VALUES ('2020', 'Periodenfremde Aufw. (soweit nicht außerordentlich)');
+INSERT INTO gifi (accno,description) VALUES ('2100', 'Zinsen und ähnliche Aufwendungen');
+INSERT INTO gifi (accno,description) VALUES ('2103', 'Steuerlich abzugsfähige, andere Nebenleistungen zu Steuern');
+INSERT INTO gifi (accno,description) VALUES ('2104', 'Steuerlich nicht abzugsfähige, andere Nebenleistungen zu Steuern');
+INSERT INTO gifi (accno,description) VALUES ('2107', 'Zinsaufwendungen §233a AO betriebliche Steuern');
+INSERT INTO gifi (accno,description) VALUES ('2108', 'Zinsaufw. §233a, §234, §237 AO Personenst. §8 GewStG');
+INSERT INTO gifi (accno,description) VALUES ('2109', 'Zinsaufwendungen an verbundene Unternehmen');
+INSERT INTO gifi (accno,description) VALUES ('2110', 'Zinsaufwendungen für kurzfristige Verbindlichkeiten');
+INSERT INTO gifi (accno,description) VALUES ('2118', 'In Dauerschuldzins. umqualif. Zinsen a. kurzfristige Verb.');
+INSERT INTO gifi (accno,description) VALUES ('2119', 'Zinsaufw. f. kurzfristige Verb. an verbunden Unternehmen');
+INSERT INTO gifi (accno,description) VALUES ('2120', 'Zinsaufwendungen für langfristige Verbindlichkeiten');
+INSERT INTO gifi (accno,description) VALUES ('2127', 'Renten u. dauernde Last. a. Gründung/Erwerb §8GewStG');
+INSERT INTO gifi (accno,description) VALUES ('2128', 'Zinsaufw. an Mitu. f. Hingabe v. langfrist. Kapital §15 EStG');
+INSERT INTO gifi (accno,description) VALUES ('2129', 'Zinsaufw. f. langfristige Verb. an verbundene Unternehmen');
+INSERT INTO gifi (accno,description) VALUES ('2130', 'Diskontaufwendungen');
+INSERT INTO gifi (accno,description) VALUES ('2139', 'Diskontaufwendungen an verbundene Unternehmen');
+INSERT INTO gifi (accno,description) VALUES ('2140', 'Zinsähnliche Aufwendungen');
+INSERT INTO gifi (accno,description) VALUES ('2149', 'Zinsähnliche Aufwendungen an verbundene Unternehmen');
+INSERT INTO gifi (accno,description) VALUES ('2150', 'Aufwendungen aus Kursdifferenzen');
+INSERT INTO gifi (accno,description) VALUES ('2170', 'Nicht abziehb. VSt a. Zinsen u. ähnl. Aufw.');
+INSERT INTO gifi (accno,description) VALUES ('2171', 'Nicht abziehb. VSt, 7% a. Zinsen u. ähnl. Aufw.');
+INSERT INTO gifi (accno,description) VALUES ('2175', 'Nicht abziehb. VSt. 16% a. Zinsen u. ähnl. Aufw.');
+INSERT INTO gifi (accno,description) VALUES ('2176', 'Nicht abziehb. VSt, 15% a. Zinsen u. ähnl. Aufw.');
+INSERT INTO gifi (accno,description) VALUES ('2200', 'Körperschaftsteuer');
+INSERT INTO gifi (accno,description) VALUES ('2203', 'Körperschaftsteuer für Vorjahre');
+INSERT INTO gifi (accno,description) VALUES ('2205', 'Anrechenbare Körperschaftssteuer auf vereinnahmte Kapitalerträge');
+INSERT INTO gifi (accno,description) VALUES ('2208', 'Solidaritätszuschlag');
+INSERT INTO gifi (accno,description) VALUES ('2209', 'Solidaritätszuschlag für Vorjahre');
+INSERT INTO gifi (accno,description) VALUES ('2210', 'Kapitalertragsteuer');
+INSERT INTO gifi (accno,description) VALUES ('2213', 'Anrechenbarer Solidaritätszuschlag auf Kapitalertragssteuer');
+INSERT INTO gifi (accno,description) VALUES ('2215', 'Zinsabschlagsteuer');
+INSERT INTO gifi (accno,description) VALUES ('2218', 'Anrechenbarer Solidaritätszuschlag auf Zinsabschlagsteuer');
+INSERT INTO gifi (accno,description) VALUES ('2223', 'Vermögensteuer für Vorjahre');
+INSERT INTO gifi (accno,description) VALUES ('2280', 'Steuernachz. Vorjahre f. Steuern v. Einkommen u. Ertrag');
+INSERT INTO gifi (accno,description) VALUES ('2282', 'Steuererstatt. Vorjahre f. Steuern v. Einkommen u. Ertrag');
+INSERT INTO gifi (accno,description) VALUES ('2284', 'Erträge a. Aufl. v. Rückst. f. Steuern v. Eink. u. Ertrag');
+INSERT INTO gifi (accno,description) VALUES ('2285', 'Steuernachzahlung Vorjahre für sonstige Steuern');
+INSERT INTO gifi (accno,description) VALUES ('2287', 'Steuererstattung Vorjahre für sonstige Steuern');
+INSERT INTO gifi (accno,description) VALUES ('2289', 'Erträge a. d. Auflösung v. Rückstell. f. sonstige Steuern');
+INSERT INTO gifi (accno,description) VALUES ('2300', 'Sonstige Aufwendungen');
+INSERT INTO gifi (accno,description) VALUES ('2307', 'Sonstige Aufwendungen betriebsfremd und regelmäßig');
+INSERT INTO gifi (accno,description) VALUES ('2309', 'Sonstige Aufwendungen unregelmäßig');
+INSERT INTO gifi (accno,description) VALUES ('2310', 'Anlagenabgänge (Restbuchwert und Buchverlust)');
+INSERT INTO gifi (accno,description) VALUES ('2315', 'Anlagenabgänge (Restbuchwert bei Buchgewinn)');
+INSERT INTO gifi (accno,description) VALUES ('2320', 'Verluste a. Abgang v. Gegenst. d. Anlagevermögens');
+INSERT INTO gifi (accno,description) VALUES ('2325', 'Verluste a. Abgang v. Gegenst. d. Umlaufv. (außer Vorräte)');
+INSERT INTO gifi (accno,description) VALUES ('2340', 'Einstell. in Sonderpost. m. Rücklageant. (steuerfr. Rückl.)');
+INSERT INTO gifi (accno,description) VALUES ('2341', 'Einstell. in Sonderpost. m. Rücklageant. (Ansparabschreibungen)');
+INSERT INTO gifi (accno,description) VALUES ('2345', 'Einstell. in Sonderpost. m. Rücklageant. (Sonderabschr.)');
+INSERT INTO gifi (accno,description) VALUES ('2350', 'Grundstücksaufwendungen');
+INSERT INTO gifi (accno,description) VALUES ('2375', 'Grundsteuer');
+INSERT INTO gifi (accno,description) VALUES ('2380', 'Spenden, steuerlich nicht absetzbar');
+INSERT INTO gifi (accno,description) VALUES ('2381', 'Beiträge u. Spenden f. wissenschaftl. u. kulturelle Zwecke');
+INSERT INTO gifi (accno,description) VALUES ('2382', 'Beiträge u. Spenden f. mildtätige Zwecke');
+INSERT INTO gifi (accno,description) VALUES ('2383', 'Beiträge u. Spenden f. kirchl., religiöse u. gemeinn. Zwecke');
+INSERT INTO gifi (accno,description) VALUES ('2384', 'Beiträge u. Spenden an politische Parteien');
+INSERT INTO gifi (accno,description) VALUES ('2385', 'Nicht abziehbare Hälfte der Aufsichtsratsvergütungen');
+INSERT INTO gifi (accno,description) VALUES ('2386', 'Abziehbare Aufsichtsratsvergütungen');
+INSERT INTO gifi (accno,description) VALUES ('2400', 'Forderungsverluste (übliche Höhe)');
+INSERT INTO gifi (accno,description) VALUES ('2401', 'Forderungsverluste, 7% USt (übliche Höhe)');
+INSERT INTO gifi (accno,description) VALUES ('2402', 'Ford.Verl. a. steuerfr. EU-Lief. (übliche Höhe)');
+INSERT INTO gifi (accno,description) VALUES ('2403', 'Ford.Verl. a.i. Inl. steuerpfl. EU-Lief., 7% USt (übl. Höhe)');
+INSERT INTO gifi (accno,description) VALUES ('2404', 'Ford.Verl. a.i. Inl. steuerpfl. EU-Lief., 15%+16%USt (übl. Höhe)');
+INSERT INTO gifi (accno,description) VALUES ('2405', 'Forderungsverluste, 15%+16% USt (übliche Höhe)');
+INSERT INTO gifi (accno,description) VALUES ('2406', 'Forderungsverluste, 16% USt (übliche Höhe)');
+INSERT INTO gifi (accno,description) VALUES ('2407', 'Forderungsverluste, 15% USt (übliche Höhe)');
+INSERT INTO gifi (accno,description) VALUES ('2408', 'Ford.Verl. a.i. Inl. steuerpfl. EU-Lief., 16%USt (übl. Höhe)');
+INSERT INTO gifi (accno,description) VALUES ('2409', 'Ford.Verl. a.i. Inl. steuerpfl. EU-Lief., 15%USt (übl. Höhe)');
+INSERT INTO gifi (accno,description) VALUES ('2430', 'Forderungsverlust unüblich hoch');
+INSERT INTO gifi (accno,description) VALUES ('2450', 'Einstellungen in Pauschalwertberichtigung zu Forderungen');
+INSERT INTO gifi (accno,description) VALUES ('2451', 'Einstellungen in Einzelwertberichtigung zu Forderungen');
+INSERT INTO gifi (accno,description) VALUES ('2490', 'Aufwendungen aus Verlustübernahme');
+INSERT INTO gifi (accno,description) VALUES ('2492', 'Abgef. Gew. aufgrund einer Gewinngemeinschaft');
+INSERT INTO gifi (accno,description) VALUES ('2493', 'Abgef. Gew. a. stille Gesellschafter §8 GewStG');
+INSERT INTO gifi (accno,description) VALUES ('2494', 'Abgef. Gew. a. Gewinn- oder Teilgewinnabführungsvertr.');
+INSERT INTO gifi (accno,description) VALUES ('2495', 'Einst. in die Kapitalrückl. n. Vorschr. d. vereinf. Kap.Herabs.');
+INSERT INTO gifi (accno,description) VALUES ('2496', 'Einst. in die gesetzliche Rücklage');
+INSERT INTO gifi (accno,description) VALUES ('2497', 'Einst. in die satzungsmäßige Rücklage');
+INSERT INTO gifi (accno,description) VALUES ('2498', 'Einst. in die Rücklage für eigene Anteile');
+INSERT INTO gifi (accno,description) VALUES ('2499', 'Einst. in andere Gewinnrücklagen');
+INSERT INTO gifi (accno,description) VALUES ('2500', 'Außerordentliche Erträge');
+INSERT INTO gifi (accno,description) VALUES ('2510', 'Betriebsfremde Erträge (soweit nicht außerordentlich)');
+INSERT INTO gifi (accno,description) VALUES ('2520', 'Periodenfremde Erträge (soweit nicht außerordentlich)');
+INSERT INTO gifi (accno,description) VALUES ('2600', 'Erträge aus Beteiligungen');
+INSERT INTO gifi (accno,description) VALUES ('2617', 'Gewinne a.Ant. an nicht steuerbefr. inländischen KG §9Nr.2aGewStG');
+INSERT INTO gifi (accno,description) VALUES ('2618', 'Gewinnanteile aus Mitunternehmerschaften §9 GewStG');
+INSERT INTO gifi (accno,description) VALUES ('2619', 'Erträge aus Beteiligungen an verbundenen Unternehmen');
+INSERT INTO gifi (accno,description) VALUES ('2620', 'Ertr. a. and. Wertpap. u. Ausl. d. Finanzanlageverm.');
+INSERT INTO gifi (accno,description) VALUES ('2649', 'Ertr. a. and. Wertpap. u. Ausl. d. Fin.Anl.Verm. a. verb. U.');
+INSERT INTO gifi (accno,description) VALUES ('2650', 'Sonstige Zinsen und ähnliche Erträge');
+INSERT INTO gifi (accno,description) VALUES ('2657', 'Zinserträge §233a AO betriebliche Steuern');
+INSERT INTO gifi (accno,description) VALUES ('2658', 'Zinserträge §233a AO Körperschaftsteuer / Vermögensteuer');
+INSERT INTO gifi (accno,description) VALUES ('2659', 'Sonstige Zinsen u. ähnliche Erträge aus verb. Unternehmen');
+INSERT INTO gifi (accno,description) VALUES ('2660', 'Erträge aus Kursdifferenzen');
+INSERT INTO gifi (accno,description) VALUES ('2670', 'Diskonterträge');
+INSERT INTO gifi (accno,description) VALUES ('2679', 'Diskonterträge aus verbundenen Unternehmen');
+INSERT INTO gifi (accno,description) VALUES ('2680', 'Zinsähnliche Erträge');
+INSERT INTO gifi (accno,description) VALUES ('2689', 'Zinsähnliche Erträge aus verbundenen Unternehmen');
+INSERT INTO gifi (accno,description) VALUES ('2700', 'Sonstige Erträge');
+INSERT INTO gifi (accno,description) VALUES ('2705', 'Sonstige Erträge betrieblich und regelmäßig');
+INSERT INTO gifi (accno,description) VALUES ('2707', 'Sonstige Erträge betriebsfremd und regelmäßig');
+INSERT INTO gifi (accno,description) VALUES ('2709', 'Sonstige Erträge unregelmäßig');
+INSERT INTO gifi (accno,description) VALUES ('2710', 'Erträge aus Zuschreibungen des Anlagevermögens');
+INSERT INTO gifi (accno,description) VALUES ('2715', 'Erträge aus Zuschreibungen des Umlaufvermögens');
+INSERT INTO gifi (accno,description) VALUES ('2720', 'Ertr. a. Abgang v. Gegenst. d. Anlagevermögens');
+INSERT INTO gifi (accno,description) VALUES ('2725', 'Ertr. a. Abgang v. Gegenst. d. Umlaufv.s (außer Vorräte)');
+INSERT INTO gifi (accno,description) VALUES ('2730', 'Ertr. a. Herabs. d. Pauschalwertber. zu Forderungen');
+INSERT INTO gifi (accno,description) VALUES ('2731', 'Ertr. a. Herabs. d. Einzelwertber. zu Forderungen');
+INSERT INTO gifi (accno,description) VALUES ('2732', 'Erträge aus abgeschriebenen Forderungen');
+INSERT INTO gifi (accno,description) VALUES ('2735', 'Erträge aus der Auflösung von Rückstellungen');
+INSERT INTO gifi (accno,description) VALUES ('2739', 'Erträge aus der Auflösung von Sonderpost. m. Rücklageant. (Ansparabschr.)');
+INSERT INTO gifi (accno,description) VALUES ('2740', 'Ertr. a. Aufl. v. Sonderp. m. Rückl.Ant. (steuerfr. Rückl.)');
+INSERT INTO gifi (accno,description) VALUES ('2741', 'Ertr. a. Aufl. v. Sonderp. m. Rückl.Ant. (Sonderabschr.)');
+INSERT INTO gifi (accno,description) VALUES ('2742', 'Versicherungsentschädigungen');
+INSERT INTO gifi (accno,description) VALUES ('2743', 'Investitionszuschüsse (steuerpflichtig)');
+INSERT INTO gifi (accno,description) VALUES ('2744', 'Investitionszulagen (steuerfrei)');
+INSERT INTO gifi (accno,description) VALUES ('2745', 'Erträge aus Kapitalherabsetzung');
+INSERT INTO gifi (accno,description) VALUES ('2750', 'Grundstückserträge');
+INSERT INTO gifi (accno,description) VALUES ('2780', 'Steuererstattung Vorjahre f. Steuern vom Eink. u. Ertrag');
+INSERT INTO gifi (accno,description) VALUES ('2785', 'Steuererstattung Vorjahre f. sonstige Steuern');
+INSERT INTO gifi (accno,description) VALUES ('2790', 'Erträge aus Verlustübernahme');
+INSERT INTO gifi (accno,description) VALUES ('2792', 'Erh. Gew. aufgrund einer Gewinngemeinschaft');
+INSERT INTO gifi (accno,description) VALUES ('2794', 'Erh. Gew. aufgrund eines Gew.- oder Teilgew.Abführ.Vertr.');
+INSERT INTO gifi (accno,description) VALUES ('2795', 'Entnahmen aus der Kapitalrücklage');
+INSERT INTO gifi (accno,description) VALUES ('2796', 'Entnahmen aus der gesetzlichen Rücklage');
+INSERT INTO gifi (accno,description) VALUES ('2797', 'Entnahmen aus satzungsgemäßen Rücklagen');
+INSERT INTO gifi (accno,description) VALUES ('2798', 'Entnahmen aus der Rücklage für eigene Anteile');
+INSERT INTO gifi (accno,description) VALUES ('2799', 'Entnahmen aus anderen Gewinnrücklagen');
+INSERT INTO gifi (accno,description) VALUES ('2860', 'Gewinnvortrag nach Verwendung');
+INSERT INTO gifi (accno,description) VALUES ('2862', 'Gewinnvortrag 50/45% Vorbelastung');
+INSERT INTO gifi (accno,description) VALUES ('2864', 'Gewinnvortrag 30% Vorbelastung');
+INSERT INTO gifi (accno,description) VALUES ('2866', 'Gewinnvortrag 0% Vorbelastung');
+INSERT INTO gifi (accno,description) VALUES ('2868', 'Verlustvortrag nach Verwendung');
+INSERT INTO gifi (accno,description) VALUES ('2869', 'Vorträge auf neue Rechnung (GuV)');
+INSERT INTO gifi (accno,description) VALUES ('2870', 'Ausschüttung');
+INSERT INTO gifi (accno,description) VALUES ('2890', 'Verrechneter kalkulatorischer Unternehmerlohn');
+INSERT INTO gifi (accno,description) VALUES ('2891', 'Verrechnete kalkulatorische Miete und Pacht');
+INSERT INTO gifi (accno,description) VALUES ('2892', 'Verrechnete kalkulatorische Zinsen');
+INSERT INTO gifi (accno,description) VALUES ('2893', 'Verrechnete kalkulatorische Abschreibung');
+INSERT INTO gifi (accno,description) VALUES ('2894', 'Verrechnete kalkulatorische Wagnisse');
+INSERT INTO gifi (accno,description) VALUES ('2895', 'Verrechneter kalkulatorischer Lohn für unentgeltliche Mitarbeiter');
+INSERT INTO gifi (accno,description) VALUES ('3000', 'Roh-, Hilfs- und Betriebsstoffe');
+INSERT INTO gifi (accno,description) VALUES ('3090', 'Energiestoffe (Fertigung)');
+INSERT INTO gifi (accno,description) VALUES ('3100', 'Fremdleistungen');
+INSERT INTO gifi (accno,description) VALUES ('3150', 'Leistungen von ausländischen Unternehmen (Nullregelung)');
+INSERT INTO gifi (accno,description) VALUES ('3200', 'Wareneingang');
+INSERT INTO gifi (accno,description) VALUES ('3300', 'Wareneingang, 7% Vorsteuer');
+INSERT INTO gifi (accno,description) VALUES ('3340', 'Wareneingang, 15% Vorsteuer');
+INSERT INTO gifi (accno,description) VALUES ('3400', 'Wareneingang, 15%+16% Vorsteuer');
+INSERT INTO gifi (accno,description) VALUES ('3410', 'Wareneingang, 16% Vorsteuer');
+INSERT INTO gifi (accno,description) VALUES ('3420', 'Innergem. Erwerb, 7% VSt u. 7% USt');
+INSERT INTO gifi (accno,description) VALUES ('3425', 'Innergem. Erwerb, 15%+16% VSt u. 15%+16% USt');
+INSERT INTO gifi (accno,description) VALUES ('3430', 'Innergem. Erwerb, ohne VSt-Abzug u. 7% USt');
+INSERT INTO gifi (accno,description) VALUES ('3431', 'Innergem. Erwerb, 16% VSt u. 16% Ust');
+INSERT INTO gifi (accno,description) VALUES ('3433', 'Innergem. Erwerb, 15% VSt u. 15% Ust');
+INSERT INTO gifi (accno,description) VALUES ('3435', 'Innergem. Erwerb, ohne VSt-Abzug u. 15%+16% USt');
+INSERT INTO gifi (accno,description) VALUES ('3436', 'Innergem. Erwerb, ohne VSt-Abzug u. 16% Ust');
+INSERT INTO gifi (accno,description) VALUES ('3437', 'Innergem. Erwerb, ohne VSt-Abzug u. 15% Ust');
+INSERT INTO gifi (accno,description) VALUES ('3440', 'Innergem. Erw. v. Neufahrz. v. Lief. ohne USt-ID, 15%+16% USt');
+INSERT INTO gifi (accno,description) VALUES ('3441', 'Innergem. Erw. v. Neufahrz. v. Lief. ohne USt-ID, 16% Ust');
+INSERT INTO gifi (accno,description) VALUES ('3442', 'Innergem. Erw. v. Neufahrz. v. Lief. ohne USt-ID, 15% Ust');
+INSERT INTO gifi (accno,description) VALUES ('3500', 'Wareneingang, 5% Vorsteuer');
+INSERT INTO gifi (accno,description) VALUES ('3530', 'Wareneingang, 9% Vorsteuer');
+INSERT INTO gifi (accno,description) VALUES ('3540', 'Wareneingang, 9,5% Vorsteuer');
+INSERT INTO gifi (accno,description) VALUES ('3550', 'Steuerfreier innergemeinschaftlicher Erwerb');
+INSERT INTO gifi (accno,description) VALUES ('3600', 'Nicht abziehbare Vorsteuer');
+INSERT INTO gifi (accno,description) VALUES ('3610', 'Nicht abziehbare Vorsteuer, 7%');
+INSERT INTO gifi (accno,description) VALUES ('3650', 'Nicht abziehbare Vorsteuer, 16%');
+INSERT INTO gifi (accno,description) VALUES ('3660', 'Nicht abziehbare Vorsteuer, 15%');
+INSERT INTO gifi (accno,description) VALUES ('3700', 'Nachlässe');
+INSERT INTO gifi (accno,description) VALUES ('3710', 'Nachlässe, 7% Vorsteuer');
+INSERT INTO gifi (accno,description) VALUES ('3720', 'Nachlässe, 15%+16% Vorsteuer');
+INSERT INTO gifi (accno,description) VALUES ('3722', 'Nachlässe, 16% Vorsteuer');
+INSERT INTO gifi (accno,description) VALUES ('3723', 'Nachlässe, 15% Vorsteuer');
+INSERT INTO gifi (accno,description) VALUES ('3724', 'Nachlässe aus ig. Erwerb, 7% VSt und 7% USt');
+INSERT INTO gifi (accno,description) VALUES ('3725', 'Nachlässe aus ig. Erwerb, 15%+16% VSt und 15%+16% USt');
+INSERT INTO gifi (accno,description) VALUES ('3726', 'Nachlässe aus ig. Erwerb, 16% VSt und 16% Ust');
+INSERT INTO gifi (accno,description) VALUES ('3727', 'Nachlässe aus ig. Erwerb, 15% VSt und 15% Ust');
+INSERT INTO gifi (accno,description) VALUES ('3730', 'Erhaltene Skonti');
+INSERT INTO gifi (accno,description) VALUES ('3731', 'Erhaltene Skonti, 7% Vorsteuer');
+INSERT INTO gifi (accno,description) VALUES ('3735', 'Erhaltene Skonti, 16% Vorsteuer');
+INSERT INTO gifi (accno,description) VALUES ('3736', 'Erhaltene Skonti, 15% Vorsteuer');
+INSERT INTO gifi (accno,description) VALUES ('3740', 'Erhaltene Boni');
+INSERT INTO gifi (accno,description) VALUES ('3750', 'Erhaltene Boni, 7% Vorsteuer');
+INSERT INTO gifi (accno,description) VALUES ('3760', 'Erhaltene Boni, 15%+16% Vorsteuer');
+INSERT INTO gifi (accno,description) VALUES ('3762', 'Erhaltene Boni, 16% Vorsteuer');
+INSERT INTO gifi (accno,description) VALUES ('3764', 'Erhaltene Boni, 15% Vorsteuer');
+INSERT INTO gifi (accno,description) VALUES ('3770', 'Erhaltene Rabatte');
+INSERT INTO gifi (accno,description) VALUES ('3780', 'Erhaltene Rabatte, 7% Vorsteuer');
+INSERT INTO gifi (accno,description) VALUES ('3790', 'Erhaltene Rabatte, 15%+16% Vorsteuer');
+INSERT INTO gifi (accno,description) VALUES ('3792', 'Erhaltene Rabatte, 16% Vorsteuer');
+INSERT INTO gifi (accno,description) VALUES ('3794', 'Erhaltene Rabatte, 15% Vorsteuer');
+INSERT INTO gifi (accno,description) VALUES ('3800', 'Anschaffungsnebenkosten');
+INSERT INTO gifi (accno,description) VALUES ('3830', 'Leergut');
+INSERT INTO gifi (accno,description) VALUES ('3850', 'Zölle und Einfuhrabgaben');
+INSERT INTO gifi (accno,description) VALUES ('3960', 'Bestandsv. Roh-, Hilfs- u. Betriebsstoffe / bezogene Waren');
+INSERT INTO gifi (accno,description) VALUES ('3970', 'Bestand Roh-, Hilfs- und Betriebsstoffe');
+INSERT INTO gifi (accno,description) VALUES ('3980', 'Bestand Waren');
+INSERT INTO gifi (accno,description) VALUES ('3990', 'Verrechnete Stoffkosten');
+INSERT INTO gifi (accno,description) VALUES ('4000', 'Material- und Stoffverbrauch');
+INSERT INTO gifi (accno,description) VALUES ('4100', 'Löhne und Gehälter');
+INSERT INTO gifi (accno,description) VALUES ('4110', 'Löhne');
+INSERT INTO gifi (accno,description) VALUES ('4120', 'Gehälter');
+INSERT INTO gifi (accno,description) VALUES ('4124', 'Geschäftsführergehälter der GmbH-Gesellschafter');
+INSERT INTO gifi (accno,description) VALUES ('4125', 'Ehegattengehalt');
+INSERT INTO gifi (accno,description) VALUES ('4126', 'Tantiemen');
+INSERT INTO gifi (accno,description) VALUES ('4127', 'Geschäftsführergehälter');
+INSERT INTO gifi (accno,description) VALUES ('4128', 'Vergütungen an angestellte Mitunternehmer §15 EStG');
+INSERT INTO gifi (accno,description) VALUES ('4130', 'Gesetzliche soziale Aufwendungen');
+INSERT INTO gifi (accno,description) VALUES ('4137', 'Gesetzliche soziale Aufw. für Mitunternehmer §15 EStG');
+INSERT INTO gifi (accno,description) VALUES ('4138', 'Beiträge zur Berufsgenossenschaft');
+INSERT INTO gifi (accno,description) VALUES ('4139', 'Ausgleichsabgabe i. S. d. Schwerbehindertengesetzes');
+INSERT INTO gifi (accno,description) VALUES ('4140', 'Freiw. soziale Aufwendungen (lohnsteuerfrei)');
+INSERT INTO gifi (accno,description) VALUES ('4145', 'Freiw. soziale Aufwendungen (lohnsteuerpflichtig)');
+INSERT INTO gifi (accno,description) VALUES ('4149', 'Pauschale Lohnsteuer auf s. Bezüge (z.B. Fahrtkostenzuschuß)');
+INSERT INTO gifi (accno,description) VALUES ('4150', 'Krankengeldzuschüsse');
+INSERT INTO gifi (accno,description) VALUES ('4160', 'Versorgungskassen');
+INSERT INTO gifi (accno,description) VALUES ('4165', 'Aufwendungen für die Altersversorgung');
+INSERT INTO gifi (accno,description) VALUES ('4167', 'Pauschale Lohnsteuer auf s. Bezüge (z.B. Direktversicherung)');
+INSERT INTO gifi (accno,description) VALUES ('4168', 'Aufw. f. die Altersversorgung f. Mitunternehmer §15 EStG');
+INSERT INTO gifi (accno,description) VALUES ('4169', 'Aufwendungen für Unterstützung');
+INSERT INTO gifi (accno,description) VALUES ('4170', 'Vermögenswirksame Leistungen');
+INSERT INTO gifi (accno,description) VALUES ('4175', 'Fahrtkostenerstattung - Wohnung / Arbeitsstätte');
+INSERT INTO gifi (accno,description) VALUES ('4180', 'Bedienungsgelder');
+INSERT INTO gifi (accno,description) VALUES ('4190', 'Aushilfslöhne');
+INSERT INTO gifi (accno,description) VALUES ('4199', 'Lohnsteuer für Aushilfen');
+INSERT INTO gifi (accno,description) VALUES ('4200', 'Raumkosten');
+INSERT INTO gifi (accno,description) VALUES ('4210', 'Miete');
+INSERT INTO gifi (accno,description) VALUES ('4218', 'Gewerbesteuerlich zu berücks. Miete §8 GewStG');
+INSERT INTO gifi (accno,description) VALUES ('4219', 'Vergütung an Mitu. f. mietw. Überl. v. Wirtschaftsg. §15EStG');
+INSERT INTO gifi (accno,description) VALUES ('4220', 'Pacht');
+INSERT INTO gifi (accno,description) VALUES ('4228', 'Gewerbesteuerlich zu berücks. Pacht §8 GewStG');
+INSERT INTO gifi (accno,description) VALUES ('4229', 'Vergütung an Mitu. f. pachtw. Überl. v. Wirtschaftsg.§15EStG');
+INSERT INTO gifi (accno,description) VALUES ('4230', 'Heizung');
+INSERT INTO gifi (accno,description) VALUES ('4240', 'Gas, Strom, Wasser (Verwaltung, Vertrieb)');
+INSERT INTO gifi (accno,description) VALUES ('4250', 'Reinigung');
+INSERT INTO gifi (accno,description) VALUES ('4260', 'Instandhaltung betrieblicher Räume');
+INSERT INTO gifi (accno,description) VALUES ('4270', 'Abgaben für betrieblich genutzten Grundbesitz');
+INSERT INTO gifi (accno,description) VALUES ('4280', 'Sonstige Raumkosten');
+INSERT INTO gifi (accno,description) VALUES ('4300', 'Nicht abziehb. VSt a. sonst. betriebl. Aufw./AfA');
+INSERT INTO gifi (accno,description) VALUES ('4301', 'Nicht abziehb. VSt, 7% a. sonst. betriebl. Aufw./AfA');
+INSERT INTO gifi (accno,description) VALUES ('4305', 'Nicht abziehb. VSt, 16% a. sonst. betriebl. Aufw./AfA');
+INSERT INTO gifi (accno,description) VALUES ('4306', 'Nicht abziehb. VSt, 15% a. sonst. betriebl. Aufw./AfA');
+INSERT INTO gifi (accno,description) VALUES ('4320', 'Gewerbesteuer (Vorauszahlung)');
+INSERT INTO gifi (accno,description) VALUES ('4330', 'Gewerbeertragsteuer');
+INSERT INTO gifi (accno,description) VALUES ('4335', 'Gewerbekapitalsteuer');
+INSERT INTO gifi (accno,description) VALUES ('4340', 'Sonstige Betriebsteuern');
+INSERT INTO gifi (accno,description) VALUES ('4350', 'Verbrauchsteuer');
+INSERT INTO gifi (accno,description) VALUES ('4360', 'Versicherungen');
+INSERT INTO gifi (accno,description) VALUES ('4370', 'Nettoprämie für Rückdeckung künftiger Versorgungsleistungen');
+INSERT INTO gifi (accno,description) VALUES ('4380', 'Beiträge');
+INSERT INTO gifi (accno,description) VALUES ('4390', 'Sonstige Abgaben');
+INSERT INTO gifi (accno,description) VALUES ('4396', 'Steuerlich abzugsfähige Verspätungszuschläge und Zwangsgelder');
+INSERT INTO gifi (accno,description) VALUES ('4397', 'Steuerlich nicht abzugsfähige Verspätungszuschläge und Zwangsgelder');
+INSERT INTO gifi (accno,description) VALUES ('4400', 'Besondere Kosten (zur freien Verfügung)');
+INSERT INTO gifi (accno,description) VALUES ('4500', 'Fahrzeugkosten');
+INSERT INTO gifi (accno,description) VALUES ('4510', 'Kfz-Steuern');
+INSERT INTO gifi (accno,description) VALUES ('4520', 'Kfz-Versicherungen');
+INSERT INTO gifi (accno,description) VALUES ('4530', 'Laufende Kfz-Betriebskosten');
+INSERT INTO gifi (accno,description) VALUES ('4540', 'Kfz-Reparaturen');
+INSERT INTO gifi (accno,description) VALUES ('4550', 'Garagenmieten');
+INSERT INTO gifi (accno,description) VALUES ('4570', 'Fremdfahrzeuge');
+INSERT INTO gifi (accno,description) VALUES ('4580', 'Sonstige Kfz-Kosten');
+INSERT INTO gifi (accno,description) VALUES ('4600', 'Werbe- und Reisekosten');
+INSERT INTO gifi (accno,description) VALUES ('4610', 'Werbekosten');
+INSERT INTO gifi (accno,description) VALUES ('4630', 'Geschenke bis DM 75,00');
+INSERT INTO gifi (accno,description) VALUES ('4635', 'Geschenke über DM 75,00');
+INSERT INTO gifi (accno,description) VALUES ('4638', 'Geschenke ausschließlich betrieblich genutzt');
+INSERT INTO gifi (accno,description) VALUES ('4640', 'Repräsentationskosten');
+INSERT INTO gifi (accno,description) VALUES ('4650', 'Bewirtungskosten');
+INSERT INTO gifi (accno,description) VALUES ('4653', 'Aufwerksamkeiten');
+INSERT INTO gifi (accno,description) VALUES ('4654', 'Nicht abzugsfähige Bewirtungskosten');
+INSERT INTO gifi (accno,description) VALUES ('4655', 'Nicht abzugsfähige Betriebsausgaben');
+INSERT INTO gifi (accno,description) VALUES ('4660', 'Reisekosten Arbeitnehmer');
+INSERT INTO gifi (accno,description) VALUES ('4666', 'Reisekost. Arbeitn., 12,3%/13,1% VSt Verpfl.Mehr- / Übern.Aufw.');
+INSERT INTO gifi (accno,description) VALUES ('4667', 'Reisekost. Arbeitn., 9,8%/10,5% VSt Gesamtpauschal.');
+INSERT INTO gifi (accno,description) VALUES ('4670', 'Reisekosten Unternehmer');
+INSERT INTO gifi (accno,description) VALUES ('4675', 'Reisekosten Unternehmer, 9,8/10,5% VSt sonst.Gesamtpauschal.');
+INSERT INTO gifi (accno,description) VALUES ('4676', 'Reisekost. Untern., 12,3%/13,1% VSt Verpfl.Mehr- / Übern.Aufw.');
+INSERT INTO gifi (accno,description) VALUES ('4677', 'Reisekosten Unternehmer, 9,8%/10,5% VSt Verpfl.Mehraufw. Gesamtpauschal.');
+INSERT INTO gifi (accno,description) VALUES ('4678', 'Km-Geld Erstattung, Unternehmer, 5,7%/6,1% VSt');
+INSERT INTO gifi (accno,description) VALUES ('4685', 'Km-Geld-Erstattung, Arbeitnehmer 8,2%/8,7% VSt');
+INSERT INTO gifi (accno,description) VALUES ('4700', 'Kosten der Warenabgabe');
+INSERT INTO gifi (accno,description) VALUES ('4710', 'Verpackungsmaterial');
+INSERT INTO gifi (accno,description) VALUES ('4730', 'Ausgangsfrachten');
+INSERT INTO gifi (accno,description) VALUES ('4750', 'Transportversicherungen');
+INSERT INTO gifi (accno,description) VALUES ('4760', 'Verkaufsprovisionen');
+INSERT INTO gifi (accno,description) VALUES ('4780', 'Fremdarbeiten');
+INSERT INTO gifi (accno,description) VALUES ('4790', 'Aufwand für Gewährleistungen');
+INSERT INTO gifi (accno,description) VALUES ('4800', 'Reparat. u. Inst. v. Maschinen u. technischen Anlagen');
+INSERT INTO gifi (accno,description) VALUES ('4805', 'Reparat. u. Inst. v. and. Anl. d. Betr.- u. Geschäftsausst.');
+INSERT INTO gifi (accno,description) VALUES ('4809', 'Sonstige Reparaturen und Instandhaltungen');
+INSERT INTO gifi (accno,description) VALUES ('4810', 'Mietleasing');
+INSERT INTO gifi (accno,description) VALUES ('4814', 'Gewerbesteuerl. zu berücksicht. Mietleasing §8 GewStG');
+INSERT INTO gifi (accno,description) VALUES ('4815', 'Kaufleasing');
+INSERT INTO gifi (accno,description) VALUES ('4820', 'Abschr. a. Aufw. f.d. Ingangs. u. Erw. des Geschäftsbetr.');
+INSERT INTO gifi (accno,description) VALUES ('4822', 'Abschr. a. immaterielle Vermögensgegenstände');
+INSERT INTO gifi (accno,description) VALUES ('4824', 'Abschreibung auf den Geschäfts- oder Firmenwert');
+INSERT INTO gifi (accno,description) VALUES ('4826', 'Außerplanm. Abschr. a. immaterielle Vermögensgegenstände');
+INSERT INTO gifi (accno,description) VALUES ('4830', 'Abschreibungen auf Sachanlagen');
+INSERT INTO gifi (accno,description) VALUES ('4840', 'Außerplanm. Abschreibungen auf Sachanlagen');
+INSERT INTO gifi (accno,description) VALUES ('4850', 'Abschr. a. Sachanl. aufgrund steuerl. Sondervorschriften');
+INSERT INTO gifi (accno,description) VALUES ('4855', 'Sofortabschreibung geringwertiger Wirtschaftsgüter');
+INSERT INTO gifi (accno,description) VALUES ('4860', 'Abschreibung auf aktivierte, geringwertige Wirtschaftsgüter');
+INSERT INTO gifi (accno,description) VALUES ('4865', 'Außerplanmäßige Abschr. a. aktivierte GWG');
+INSERT INTO gifi (accno,description) VALUES ('4870', 'Abschreibungen auf Finanzanlagen');
+INSERT INTO gifi (accno,description) VALUES ('4872', 'Abschr. aufgrund v. Verlustant. an Mitunt. §8 GewStG');
+INSERT INTO gifi (accno,description) VALUES ('4874', 'Abschr. a. Finanzanl. aufgrund steuerl. Sondervorschriften');
+INSERT INTO gifi (accno,description) VALUES ('4875', 'Abschreibungen auf Wertpapiere des Umlaufvermögens');
+INSERT INTO gifi (accno,description) VALUES ('4879', 'Vorwegn. künft. Wertschw. bei Wertpapieren des Umlaufv.');
+INSERT INTO gifi (accno,description) VALUES ('4880', 'Abschr. a. Umlaufv. ohne Wertpapiere (soweit unübl. Höhe)');
+INSERT INTO gifi (accno,description) VALUES ('4882', 'Abschr. a. Umlaufv. steuerrechtl. bedingt (unübl. Höhe)');
+INSERT INTO gifi (accno,description) VALUES ('4885', 'Vorwegn. künft. Wertschw. Uml.V. auß. Vorr./Wertp. d. Uml.V.');
+INSERT INTO gifi (accno,description) VALUES ('4886', 'Abschr. a. Uml.V. auß. Vorr./Wertp. d. Uml.V. (übl. Höhe)');
+INSERT INTO gifi (accno,description) VALUES ('4887', 'Abschr. a. Umlaufv., steuerrechtlich bedingt (übl. Höhe)');
+INSERT INTO gifi (accno,description) VALUES ('4890', 'Vorwegn. künftiger Wertschw. im Umlaufv. (unübl. Höhe)');
+INSERT INTO gifi (accno,description) VALUES ('4900', 'Sonstige betriebliche Aufwendungen');
+INSERT INTO gifi (accno,description) VALUES ('4905', 'Sonstige Aufwendungen betrieblich und regelmäßig');
+INSERT INTO gifi (accno,description) VALUES ('4910', 'Porto');
+INSERT INTO gifi (accno,description) VALUES ('4920', 'Telefon');
+INSERT INTO gifi (accno,description) VALUES ('4925', 'Telefax, Fernschreiber');
+INSERT INTO gifi (accno,description) VALUES ('4930', 'Bürobedarf');
+INSERT INTO gifi (accno,description) VALUES ('4940', 'Zeitschriften, Bücher');
+INSERT INTO gifi (accno,description) VALUES ('4945', 'Fortbildungskosten');
+INSERT INTO gifi (accno,description) VALUES ('4946', 'Freiwillige Sozialleistungen');
+INSERT INTO gifi (accno,description) VALUES ('4948', 'Vergütungen an freiberufliche Mitunternehmer §15 EStG');
+INSERT INTO gifi (accno,description) VALUES ('4950', 'Rechts- und Beratungskosten');
+INSERT INTO gifi (accno,description) VALUES ('4955', 'Buchführungskosten');
+INSERT INTO gifi (accno,description) VALUES ('4957', 'Abschluß- und Prüfungskosten');
+INSERT INTO gifi (accno,description) VALUES ('4960', 'Mieten für Einrichtungen');
+INSERT INTO gifi (accno,description) VALUES ('4968', 'Gewerbest. zu berücks. Miete f. Einrichtungen §8 GewStG');
+INSERT INTO gifi (accno,description) VALUES ('4969', 'Aufwendungen für Abraum- und Abfallbeseitigung');
+INSERT INTO gifi (accno,description) VALUES ('4970', 'Nebenkosten des Geldverkehrs');
+INSERT INTO gifi (accno,description) VALUES ('4980', 'Betriebsbedarf');
+INSERT INTO gifi (accno,description) VALUES ('4985', 'Werkzeuge und Kleingeräte');
+INSERT INTO gifi (accno,description) VALUES ('4990', 'Kalkulatorischer Unternehmerlohn');
+INSERT INTO gifi (accno,description) VALUES ('4991', 'Kalkulatorische Miete und Pacht');
+INSERT INTO gifi (accno,description) VALUES ('4992', 'Kalkulatorischer Zinsen');
+INSERT INTO gifi (accno,description) VALUES ('4993', 'Kalkulatorische Abschreibungen');
+INSERT INTO gifi (accno,description) VALUES ('4994', 'Kalkulatorische Wagnisse');
+INSERT INTO gifi (accno,description) VALUES ('4995', 'Kalkulatorischer Lohn für unentgeltliche Mitarbeiter');
+INSERT INTO gifi (accno,description) VALUES ('4996', 'Herstellungskosten');
+INSERT INTO gifi (accno,description) VALUES ('4997', 'Verwaltungskosten');
+INSERT INTO gifi (accno,description) VALUES ('4998', 'Vertriebskosten');
+INSERT INTO gifi (accno,description) VALUES ('4999', 'Gegenkonto 49960-49980');
+INSERT INTO gifi (accno,description) VALUES ('7000', 'Unfertige Erzeugnisse, unfertige Leistungen (Bestand)');
+INSERT INTO gifi (accno,description) VALUES ('7050', 'Unfertige Erzeugnisse (Bestand)');
+INSERT INTO gifi (accno,description) VALUES ('7080', 'Unfertige Leistungen (Bestand)');
+INSERT INTO gifi (accno,description) VALUES ('7090', 'In Ausführung befindliche Bauaufträge');
+INSERT INTO gifi (accno,description) VALUES ('7095', 'In Arbeit befindliche Bauaufträge');
+INSERT INTO gifi (accno,description) VALUES ('7100', 'Fertige Erzeugnisse und Waren (Bestand)');
+INSERT INTO gifi (accno,description) VALUES ('7110', 'Fertige Erzeugnisse (Bestand)');
+INSERT INTO gifi (accno,description) VALUES ('7140', 'Fertige Waren (Bestand)');
+INSERT INTO gifi (accno,description) VALUES ('8000', 'Erlöse (zur freien Verfügung)');
+INSERT INTO gifi (accno,description) VALUES ('8100', 'Steuerfreie Umsätze o. VSt-Abzug §4 Nr.8 ff. UStG');
+INSERT INTO gifi (accno,description) VALUES ('8110', 'Sonstige steuerfreie o. VSt-Abzug Umsätze Inland');
+INSERT INTO gifi (accno,description) VALUES ('8120', 'Steuerfreie Umsätze m. VSt-Abzug §4 Nr.1a, 1c, 2-7 UStG');
+INSERT INTO gifi (accno,description) VALUES ('8125', 'Steuerfreie innergem. Lief. §4 Nr.1b UStG');
+INSERT INTO gifi (accno,description) VALUES ('8130', 'Lieferung d. ersten Abnehmers bei innergem. Dreiecksgesch. §25 b Abs. 2 UStG');
+INSERT INTO gifi (accno,description) VALUES ('8135', 'Steuerfreie ig. Lief. v. Neufahrz. an Abn. ohne UST-ID');
+INSERT INTO gifi (accno,description) VALUES ('8140', 'Steuerfreie Umsätze Offshore usw.');
+INSERT INTO gifi (accno,description) VALUES ('8150', 'Sonstige steuerfreie Umsätze Ausland (§4,2-7)');
+INSERT INTO gifi (accno,description) VALUES ('8195', 'Erlöse aus Geldspielautomaten, 16% Ust');
+INSERT INTO gifi (accno,description) VALUES ('8196', 'Erlöse aus Geldspielautomaten, 15%/16% USt');
+INSERT INTO gifi (accno,description) VALUES ('8197', 'Erlöse aus Geldspielautomaten, 15% Ust');
+INSERT INTO gifi (accno,description) VALUES ('8200', 'Erlöse');
+INSERT INTO gifi (accno,description) VALUES ('8300', 'Erlöse, 7% USt');
+INSERT INTO gifi (accno,description) VALUES ('8310', 'Erlöse a.i.Inland steuerpfl. EU-Lieferungen, 7% USt');
+INSERT INTO gifi (accno,description) VALUES ('8315', 'Erlöse a.i.Inland steuerpfl. EU-Lieferungen, 15%/16% USt');
+INSERT INTO gifi (accno,description) VALUES ('8320', 'Erlöse a.i. anderen EU-Land steuerpfl. Lieferungen');
+INSERT INTO gifi (accno,description) VALUES ('8330', 'Erlöse a.i.Inland steuerpfl. EU-Lieferungen, 16% Ust');
+INSERT INTO gifi (accno,description) VALUES ('8335', 'Erlöse a.i.Inland steuerpfl. EU-Lieferungen, 15% Ust');
+INSERT INTO gifi (accno,description) VALUES ('8339', 'Erlöse a.i. and. EU-Land steuerpfl. sonst. Leist. (Nullreg.)');
+INSERT INTO gifi (accno,description) VALUES ('8340', 'Erlöse, 15% Ust');
+INSERT INTO gifi (accno,description) VALUES ('8400', 'Erlöse, 15%/16% USt');
+INSERT INTO gifi (accno,description) VALUES ('8410', 'Erlöse, 16% Ust');
+INSERT INTO gifi (accno,description) VALUES ('8500', 'Provisionserlöse');
+INSERT INTO gifi (accno,description) VALUES ('8504', 'Provisionserlöse steuerfrei (§4 Nr.8ff UStG)');
+INSERT INTO gifi (accno,description) VALUES ('8505', 'Provisionserlöse steuerfrei (§4 Nr.5 UStG)');
+INSERT INTO gifi (accno,description) VALUES ('8506', 'Provisionserlöse, 7% USt');
+INSERT INTO gifi (accno,description) VALUES ('8507', 'Provisionserlöse, 15% Ust');
+INSERT INTO gifi (accno,description) VALUES ('8508', 'Provisionserlöse, 15%/16% USt');
+INSERT INTO gifi (accno,description) VALUES ('8509', 'Provisionserlöse, 16% Ust');
+INSERT INTO gifi (accno,description) VALUES ('8520', 'Erlöse Abfallverwertung');
+INSERT INTO gifi (accno,description) VALUES ('8540', 'Erlöse Leergut');
+INSERT INTO gifi (accno,description) VALUES ('8590', 'Verrechnete Sachbezüge (keine Waren)');
+INSERT INTO gifi (accno,description) VALUES ('8591', 'Sachbezüge, 7% USt (Waren)');
+INSERT INTO gifi (accno,description) VALUES ('8595', 'Sachbezüge, 15%/16% USt (Waren)');
+INSERT INTO gifi (accno,description) VALUES ('8596', 'Sachbezüge, 16% USt (Waren)');
+INSERT INTO gifi (accno,description) VALUES ('8597', 'Sachbezüge, 15% USt (Waren)');
+INSERT INTO gifi (accno,description) VALUES ('8600', 'Sonstige Erlöse betrieblich und regelmäßig');
+INSERT INTO gifi (accno,description) VALUES ('8610', 'Verrechnete sonstige Sachbezüge');
+INSERT INTO gifi (accno,description) VALUES ('8611', 'Verrechnete sonstige Sachbezüge 15%/16% USt (z.B. Kfz. Gestellung)');
+INSERT INTO gifi (accno,description) VALUES ('8612', 'Verrechnete sonstige Sachbezüge 16% USt (z.B. Kfz. Gestellung)');
+INSERT INTO gifi (accno,description) VALUES ('8613', 'Verrechnete sonstige Sachbezüge 15% USt (z.B. Kfz. Gestellung)');
+INSERT INTO gifi (accno,description) VALUES ('8614', 'Verrechnete sonstige Sachbezüge, ohne Umsatzsteuer');
+INSERT INTO gifi (accno,description) VALUES ('8625', 'Sonstige Erlöse betrieblich und regelmäßig, steuerfrei');
+INSERT INTO gifi (accno,description) VALUES ('8630', 'Sonstige Erlöse betrieblich und regelmäßig, 7% USt');
+INSERT INTO gifi (accno,description) VALUES ('8640', 'Sonstige Erlöse betrieblich und regelmäßig, 15%/16% USt');
+INSERT INTO gifi (accno,description) VALUES ('8645', 'Sonstige Erlöse betrieblich und regelmäßig, 16% Ust');
+INSERT INTO gifi (accno,description) VALUES ('8647', 'Sonstige Erlöse betrieblich und regelmäßig, 15% Ust');
+INSERT INTO gifi (accno,description) VALUES ('8650', 'Erlöse Zinsen und Diskontspesen');
+INSERT INTO gifi (accno,description) VALUES ('8660', 'Erlöse Zinsen und Diskontspesen aus verbundenen Unternehmen');
+INSERT INTO gifi (accno,description) VALUES ('8700', 'Erlösschmälerungen');
+INSERT INTO gifi (accno,description) VALUES ('8705', 'Erlösschmälerungen aus steuerfreien Umsätzen §4 Nr. 1a UStG');
+INSERT INTO gifi (accno,description) VALUES ('8710', 'Erlösschmälerungen, 7% USt');
+INSERT INTO gifi (accno,description) VALUES ('8720', 'Erlösschmälerungen, 15%/16% USt');
+INSERT INTO gifi (accno,description) VALUES ('8722', 'Erlösschmälerungen, 16% Ust');
+INSERT INTO gifi (accno,description) VALUES ('8723', 'Erlösschmälerungen, 15% Ust');
+INSERT INTO gifi (accno,description) VALUES ('8724', 'Erlösschmälerungen aus steuerfreien innergm. Lieferungen');
+INSERT INTO gifi (accno,description) VALUES ('8725', 'Erlösschmäl. a. im Inland steuerpfl. EU-Lieferungen, 7% USt');
+INSERT INTO gifi (accno,description) VALUES ('8726', 'Erlösschmäl. a. im Inland steuerpfl. EU-Lieferungen, 15%/16% USt');
+INSERT INTO gifi (accno,description) VALUES ('8727', 'Erlösschmäl. a. im anderen EU-Land steuerpfl. Lief.');
+INSERT INTO gifi (accno,description) VALUES ('8728', 'Erlösschmäl. a. im Inland steuerpfl. EU-Lieferungen, 16% Ust');
+INSERT INTO gifi (accno,description) VALUES ('8729', 'Erlösschmäl. a. im Inland steuerpfl. EU-Lieferungen, 15% Ust');
+INSERT INTO gifi (accno,description) VALUES ('8730', 'Gewährte Skonti');
+INSERT INTO gifi (accno,description) VALUES ('8731', 'Gewährte Skonti, 7% USt');
+INSERT INTO gifi (accno,description) VALUES ('8735', 'Gewährte Skonti, 16% Ust');
+INSERT INTO gifi (accno,description) VALUES ('8736', 'Gewährte Skonti, 15% USt');
+INSERT INTO gifi (accno,description) VALUES ('8740', 'Gewährte Boni');
+INSERT INTO gifi (accno,description) VALUES ('8750', 'Gewährte Boni, 7% USt');
+INSERT INTO gifi (accno,description) VALUES ('8760', 'Gewährte Boni, 15%/16% USt');
+INSERT INTO gifi (accno,description) VALUES ('8762', 'Gewährte Boni, 16% Ust');
+INSERT INTO gifi (accno,description) VALUES ('8764', 'Gewährte Boni, 15% Ust');
+INSERT INTO gifi (accno,description) VALUES ('8770', 'Gewährte Rabatte');
+INSERT INTO gifi (accno,description) VALUES ('8780', 'Gewährte Rabatte, 7% USt');
+INSERT INTO gifi (accno,description) VALUES ('8790', 'Gewährte Rabatte, 15%/16% USt');
+INSERT INTO gifi (accno,description) VALUES ('8792', 'Gewährte Rabatte, 16% Ust');
+INSERT INTO gifi (accno,description) VALUES ('8794', 'Gewährte Rabatte, 15% Ust');
+INSERT INTO gifi (accno,description) VALUES ('8800', 'Erlöse aus Anlagenverkäufen');
+INSERT INTO gifi (accno,description) VALUES ('8801', 'Erlöse aus Anlagenverkäufen 15%/16% USt (bei Buchverlust)');
+INSERT INTO gifi (accno,description) VALUES ('8810', 'Erlöse aus Anlagenverkäufen 16% USt (bei Buchverlust)');
+INSERT INTO gifi (accno,description) VALUES ('8815', 'Erlöse aus Anlagenverkäufen 15% USt (bei Buchverlust)');
+INSERT INTO gifi (accno,description) VALUES ('8820', 'Erlöse aus Anlagenverkäufen 15%/16% USt (bei Buchgewinn)');
+INSERT INTO gifi (accno,description) VALUES ('8829', 'Erlöse aus Anlagenverkäufen (bei Buchgewinn)');
+INSERT INTO gifi (accno,description) VALUES ('8830', 'Erlöse aus Anlagenverkäufen 16% USt (bei Buchgewinn)');
+INSERT INTO gifi (accno,description) VALUES ('8835', 'Erlöse aus Anlagenverkäufen 15% USt (bei Buchgewinn)');
+INSERT INTO gifi (accno,description) VALUES ('8840', 'Erträge aus Kursdifferenzen');
+INSERT INTO gifi (accno,description) VALUES ('8900', 'Eigenverbrauch');
+INSERT INTO gifi (accno,description) VALUES ('8905', 'Entnahme Gegenstände ohne USt');
+INSERT INTO gifi (accno,description) VALUES ('8908', 'Entnahme von Gegenstände, 16% USt §1 Abs.1 Nr.2a UStG');
+INSERT INTO gifi (accno,description) VALUES ('8909', 'Entnahme von Gegenstände, 15% USt §1 Abs.1 Nr.2a UStG');
+INSERT INTO gifi (accno,description) VALUES ('8910', 'Entnahme von Gegenstände, 15%/16% USt §1 Abs.1 Nr.2a UStG');
+INSERT INTO gifi (accno,description) VALUES ('8915', 'Entnahme von Gegenstände, 7% USt §1 Abs.1 Nr.2a UStG');
+INSERT INTO gifi (accno,description) VALUES ('8920', 'Entnahme v. sonst. Leist., 15%/16% USt §1 A.1 Nr.2b UStG');
+INSERT INTO gifi (accno,description) VALUES ('8930', 'Entnahme v. sonst. Leist., 7% USt §1 A.1 Nr.2b UStG');
+INSERT INTO gifi (accno,description) VALUES ('8937', 'Entnahme v. sonst. Leist., 16% USt §1 A.1 Nr.2b UStG');
+INSERT INTO gifi (accno,description) VALUES ('8938', 'Entnahme v. sonst. Leist., 15% USt §1 A.1 Nr.2b UStG');
+INSERT INTO gifi (accno,description) VALUES ('8939', 'Entnahme v. sonst. Leist., ohne USt §1 A.1 Nr.2b UStG');
+INSERT INTO gifi (accno,description) VALUES ('8940', 'Eigenverbr., 15%/16% Ust §4 A.1 Nr.5 1-7, A.7 EStG');
+INSERT INTO gifi (accno,description) VALUES ('8941', 'Eigenverbr., 7% Ust §4 A.1 Nr.5 1-7, A.7 EStG');
+INSERT INTO gifi (accno,description) VALUES ('8942', 'Eigenverbr., 16% Ust §4 A.1 Nr.5 1-7, A.7 EStG');
+INSERT INTO gifi (accno,description) VALUES ('8943', 'Eigenverbr., 15% Ust §4 A.1 Nr.5 1-7, A.7 EStG');
+INSERT INTO gifi (accno,description) VALUES ('8944', 'Eigenverbr., ohne Ust §4 A.1 Nr.5 1-7, A.7 EStG');
+INSERT INTO gifi (accno,description) VALUES ('8945', 'Unentgeltl. Leist. v. Ges. an Ges., 15%/16% USt §1A.1 Nr.3 UStG');
+INSERT INTO gifi (accno,description) VALUES ('8946', 'Unentgeltl. Leist. v. Ges. an Ges., 7% USt §1A.1 Nr.3 UStG');
+INSERT INTO gifi (accno,description) VALUES ('8947', 'Unentgeltl. Leist. v. Ges. an Ges., 16% USt §1A.1 Nr.3 UStG');
+INSERT INTO gifi (accno,description) VALUES ('8948', 'Unentgeltl. Leist. v. Ges. an Ges., 15% USt §1A.1 Nr.3 UStG');
+INSERT INTO gifi (accno,description) VALUES ('8949', 'Unentgeltl. Leist. v. Ges. an Ges., ohne USt §1A.1 Nr.3 UStG');
+INSERT INTO gifi (accno,description) VALUES ('8950', 'Nicht steuerbare Umsätze');
+INSERT INTO gifi (accno,description) VALUES ('8955', 'Umsatzsteuervergütungen');
+INSERT INTO gifi (accno,description) VALUES ('8960', 'Bestandsveränd. - unfertige Erzeugnisse');
+INSERT INTO gifi (accno,description) VALUES ('8970', 'Bestandsveränd. - unfertige Leistungen');
+INSERT INTO gifi (accno,description) VALUES ('8975', 'Bestandsveränd. - in Ausführung befindliche Bauaufträge');
+INSERT INTO gifi (accno,description) VALUES ('8977', 'Bestandsveränd. - in Arbeit befindliche Aufträge');
+INSERT INTO gifi (accno,description) VALUES ('8980', 'Bestandsveränd. - fertige Erzeugnisse');
+INSERT INTO gifi (accno,description) VALUES ('8990', 'Bestandsveränd. - andere aktivierte Eigenleistungen');
+INSERT INTO gifi (accno,description) VALUES ('9000', 'Saldenvorträge Sachkonten');
+INSERT INTO gifi (accno,description) VALUES ('9008', 'Saldenvorträge Debitoren');
+INSERT INTO gifi (accno,description) VALUES ('9009', 'Saldenvorträge Kreditoren');
+INSERT INTO gifi (accno,description) VALUES ('9060', 'Offene Posten aus 1990');
+INSERT INTO gifi (accno,description) VALUES ('9085', 'Offene Posten aus 1985');
+INSERT INTO gifi (accno,description) VALUES ('9086', 'Offene Posten aus 1986');
+INSERT INTO gifi (accno,description) VALUES ('9087', 'Offene Posten aus 1987');
+INSERT INTO gifi (accno,description) VALUES ('9088', 'Offene Posten aus 1988');
+INSERT INTO gifi (accno,description) VALUES ('9089', 'Offene Posten aus 1989');
+INSERT INTO gifi (accno,description) VALUES ('9090', 'Summenvortragskonto');
+INSERT INTO gifi (accno,description) VALUES ('9091', 'Offene Posten aus 1991');
+INSERT INTO gifi (accno,description) VALUES ('9092', 'Offene Posten aus 1992');
+INSERT INTO gifi (accno,description) VALUES ('9093', 'Offene Posten aus 1993');
+INSERT INTO gifi (accno,description) VALUES ('9094', 'Offene Posten aus 1994');
+INSERT INTO gifi (accno,description) VALUES ('9095', 'Offene Posten aus 1995');
+INSERT INTO gifi (accno,description) VALUES ('9096', 'Offene Posten aus 1996');
+INSERT INTO gifi (accno,description) VALUES ('9097', 'Offene Posten aus 1997');
+INSERT INTO gifi (accno,description) VALUES ('9098', 'Offene Posten aus 1998');
+INSERT INTO gifi (accno,description) VALUES ('9100', 'Saldovortragskonto der Statistikkonten');
+INSERT INTO gifi (accno,description) VALUES ('9101', 'Verkaufstage');
+INSERT INTO gifi (accno,description) VALUES ('9102', 'Anzahl der Barkunden');
+INSERT INTO gifi (accno,description) VALUES ('9103', 'Beschäftigte Personen');
+INSERT INTO gifi (accno,description) VALUES ('9104', 'Unbezahlte Personen');
+INSERT INTO gifi (accno,description) VALUES ('9105', 'Verkaufskräfte');
+INSERT INTO gifi (accno,description) VALUES ('9106', 'Geschäftsraum qm');
+INSERT INTO gifi (accno,description) VALUES ('9107', 'Verkaufsraum qm');
+INSERT INTO gifi (accno,description) VALUES ('9108', 'Veränderungsrate positiv');
+INSERT INTO gifi (accno,description) VALUES ('9109', 'Veränderungsrate negativ');
+INSERT INTO gifi (accno,description) VALUES ('9110', 'Plan-WE (in Prozent)');
+INSERT INTO gifi (accno,description) VALUES ('9120', 'Erweiterungsinvestitionen');
+INSERT INTO gifi (accno,description) VALUES ('9135', 'Auftragseingang im Geschäftsjahr');
+INSERT INTO gifi (accno,description) VALUES ('9140', 'Auftragsbestand');
+INSERT INTO gifi (accno,description) VALUES ('9190', 'Gegenkonto für statistische Mengeneinheiten Konten 91010-91190');
+INSERT INTO gifi (accno,description) VALUES ('9199', 'Gegenkonto zu 91200, 91350-91400');
+INSERT INTO gifi (accno,description) VALUES ('9200', 'Beschäftigte Personen');
+INSERT INTO gifi (accno,description) VALUES ('9209', 'Gegenkonto zu 92000');
+INSERT INTO gifi (accno,description) VALUES ('9210', 'Produktive Löhne');
+INSERT INTO gifi (accno,description) VALUES ('9219', 'Gegenkonto zu 92100');
+INSERT INTO gifi (accno,description) VALUES ('9230', 'Baukostenzuschüsse');
+INSERT INTO gifi (accno,description) VALUES ('9232', 'Investitionszulagen');
+INSERT INTO gifi (accno,description) VALUES ('9234', 'Investitionszuschüsse');
+INSERT INTO gifi (accno,description) VALUES ('9239', 'Gegenkonto zu 92300-92380');
+INSERT INTO gifi (accno,description) VALUES ('9240', 'Investitionsverbindlichkeiten bei den Leistungsverbindlichkeiten');
+INSERT INTO gifi (accno,description) VALUES ('9244', 'Gegenkonto zu 92400');
+INSERT INTO gifi (accno,description) VALUES ('9245', 'Forderungen aus Anlagenverkäufen bei den sonstigen Vermögensgegenst.');
+INSERT INTO gifi (accno,description) VALUES ('9249', 'Gegenkonto zu 92450');
+INSERT INTO gifi (accno,description) VALUES ('9250', 'Eigenkapitalersetzende Gesellschafterdarlehen');
+INSERT INTO gifi (accno,description) VALUES ('9255', 'Ungesicherte Gesellschafterdarlehen mit Restlaufzeit > 5 Jahre');
+INSERT INTO gifi (accno,description) VALUES ('9259', 'Gegenkonto zu 92500-92580');
+INSERT INTO gifi (accno,description) VALUES ('9260', 'Kurzfristige Rückstellungen');
+INSERT INTO gifi (accno,description) VALUES ('9262', 'Mittelfristige Rückstellungen');
+INSERT INTO gifi (accno,description) VALUES ('9264', 'Langfristige Rückstellungen');
+INSERT INTO gifi (accno,description) VALUES ('9269', 'Gegenkonto zu 92600-92680');
+INSERT INTO gifi (accno,description) VALUES ('9270', 'Gegenkonto zu 92710-92780');
+INSERT INTO gifi (accno,description) VALUES ('9271', 'Verb. a. d. Begebung u. Übertragung v. Wechseln');
+INSERT INTO gifi (accno,description) VALUES ('9272', 'Verb. a. d. Begebung u. Übertr. v. Wechseln gg. verb. U.');
+INSERT INTO gifi (accno,description) VALUES ('9273', 'Verb. a. Bürgsch., Wechsel- u. Scheckbürgsch.');
+INSERT INTO gifi (accno,description) VALUES ('9274', 'Verb. a. Bürgsch., Wechsel- u. Scheckbürgsch. gg. verb. U.');
+INSERT INTO gifi (accno,description) VALUES ('9275', 'Verb. aus Gewährleistungsverträgen');
+INSERT INTO gifi (accno,description) VALUES ('9276', 'Verb. aus Gewährleistungsverträgen gg. verbund. Untern.');
+INSERT INTO gifi (accno,description) VALUES ('9277', 'Haftung a. d. Best. von Sicherheiten für fremde Verbindl.');
+INSERT INTO gifi (accno,description) VALUES ('9278', 'Haftung a.d. Best. v. Sicherh. f. fr. Verbindl. gg. verb. U.');
+INSERT INTO gifi (accno,description) VALUES ('9280', 'Gegenkonto zu 92810-92840');
+INSERT INTO gifi (accno,description) VALUES ('9281', 'Verpflichtungen aus Miet- und Leasingverträgen');
+INSERT INTO gifi (accno,description) VALUES ('9282', 'Verpflichtungen aus Miet- und Leasingverträgen gg. verb. Unternehm.');
+INSERT INTO gifi (accno,description) VALUES ('9283', 'Andere Verpflichtungen gem. §285 Nr.3 HGB');
+INSERT INTO gifi (accno,description) VALUES ('9284', 'Andere Verpflichtungen gem. §285 Nr.3 HGB gg. verb. Unternehmen');
+INSERT INTO gifi (accno,description) VALUES ('9410', 'Aussteh. Einl. §26 A.3 DMBilG nicht eingef. (Aktivausw.)');
+INSERT INTO gifi (accno,description) VALUES ('9411', 'Aussteh. Einl. §26 A.3 DMBilG eingef. (Aktivausweis)');
+INSERT INTO gifi (accno,description) VALUES ('9413', 'Aufw. f. Ingangs. u. Erw. d. Gesch.Betr. §31A.1 Nr.2 DMBilG');
+INSERT INTO gifi (accno,description) VALUES ('9415', 'Nichtentgeltl. erw. immat. Verm.Gegenst. §31A.1 Nr.1 DMBilG');
+INSERT INTO gifi (accno,description) VALUES ('9416', 'Nutzungsrechte gem. § 9 Abs.3 Satz 2 DMBilG');
+INSERT INTO gifi (accno,description) VALUES ('9420', 'Ford. gg. verb. Untern. a. Ausgleichsverb. gem. §25 DMBilG');
+INSERT INTO gifi (accno,description) VALUES ('9421', 'Ford. gg. verb. U. a. Ausgl.Verb. §25 DMBilG Restl. b. 1 J.');
+INSERT INTO gifi (accno,description) VALUES ('9422', 'Ford. gg. verb. U. a. Ausgl.Verb. §25 DMBilG Restl. gr. 1 J.');
+INSERT INTO gifi (accno,description) VALUES ('9426', 'Eingeforderte Einlagen §26 Abs. 3 DMBilG');
+INSERT INTO gifi (accno,description) VALUES ('9427', 'Ausgleichsforderungen §24 DMBilG');
+INSERT INTO gifi (accno,description) VALUES ('9428', 'Ausgleichsford. §24 DMBilG - Restlaufz. bis 1 Jahr');
+INSERT INTO gifi (accno,description) VALUES ('9429', 'Ausgleichsford. §24 DMBilG - Restlaufz. größer 1 Jahr');
+INSERT INTO gifi (accno,description) VALUES ('9430', 'Ford. nach dem VermG §7 Abs. 6 DMBilG');
+INSERT INTO gifi (accno,description) VALUES ('9431', 'Ford. nach dem VermG §7 A.6 DMBilG - Restl. bis 1 J.');
+INSERT INTO gifi (accno,description) VALUES ('9432', 'Ford. nach dem VermG §7 A.6 DMBilG - Restl. gr. 1 J.');
+INSERT INTO gifi (accno,description) VALUES ('9433', 'Vermögensvorteile §31 Abs.1 Nr. 3 DMBilG');
+INSERT INTO gifi (accno,description) VALUES ('9434', 'Kapitalentwertungskonto');
+INSERT INTO gifi (accno,description) VALUES ('9435', 'Kapitalentwertungskonto §28 Abs.1 DMBilG');
+INSERT INTO gifi (accno,description) VALUES ('9436', 'Kapitalentwertungskonto §26 Abs.4 DMBilG');
+INSERT INTO gifi (accno,description) VALUES ('9438', 'Sonderverlustkonto aus Rückstellungen §17 Abs.4 DMBilG');
+INSERT INTO gifi (accno,description) VALUES ('9440', 'Beteiligunsentwertungskonto §24 Abs.5 DMBilG');
+INSERT INTO gifi (accno,description) VALUES ('9445', 'Vorläufige Gewinnrücklage §31 Abs.1 DMBilG');
+INSERT INTO gifi (accno,description) VALUES ('9446', 'Sonderrücklage §7 Abs.6 Satz 2 DMBilG');
+INSERT INTO gifi (accno,description) VALUES ('9447', 'Sonderrücklage §17 Abs.4 Satz 3 DMBilG');
+INSERT INTO gifi (accno,description) VALUES ('9448', 'Sonderrücklage §24 Abs. 5 Satz 3 DMBilG');
+INSERT INTO gifi (accno,description) VALUES ('9449', 'Sonderrücklage §27 Abs. 2 Satz 3 DMBilG');
+INSERT INTO gifi (accno,description) VALUES ('9450', 'Rückst. f. Umweltbeeinträchtigung §17 A.2a DMBilG');
+INSERT INTO gifi (accno,description) VALUES ('9451', 'Nachrangiges Kapital §16 Abs. 3 Satz 2 DMBilG');
+INSERT INTO gifi (accno,description) VALUES ('9453', 'Berichtig. v. Wertans. §36 DMBilG - Erhöhung d. Aktiva');
+INSERT INTO gifi (accno,description) VALUES ('9454', 'Berichtig. v. Wertans. §36 DMBilG - Verm. d. Aktivp.');
+INSERT INTO gifi (accno,description) VALUES ('9455', 'Berichtig. v. Wertans. §36 DMBilG - Erhöhung d. Passiva');
+INSERT INTO gifi (accno,description) VALUES ('9456', 'Berichtig. v. Wertans. §36 DMBilG - Verm. d. Passivp.');
+INSERT INTO gifi (accno,description) VALUES ('9457', 'Verb. gg. verb. Untern. a. Ausgleichsford. gem. §24 DMBilG');
+INSERT INTO gifi (accno,description) VALUES ('9458', 'Verb. gg. verb. U. a. Ausgl.Ford. §24 DMBilG Restl. b. 1 J.');
+INSERT INTO gifi (accno,description) VALUES ('9459', 'Verb. gg. verb. U. a. Ausgl.Ford. §24 DMBilG Restl. 1 b. 5 J');
+INSERT INTO gifi (accno,description) VALUES ('9460', 'Verb. gg. verb. U. a. Ausgl.Ford. §24 DMBilG Restl. gr. 5 J');
+INSERT INTO gifi (accno,description) VALUES ('9462', 'Verb. gg. verb. Untern. §26 DMBilG');
+INSERT INTO gifi (accno,description) VALUES ('9463', 'Verb. gg. verb. Untern. §26 DMBilG - Restl. bis 1 J.');
+INSERT INTO gifi (accno,description) VALUES ('9464', 'Verb. gg. verb. Untern. §26 DMBilG - Restl. 1 bis 5 J.');
+INSERT INTO gifi (accno,description) VALUES ('9465', 'Verb. gg. verb. Untern. §26 DMBilG - Restl. größer 5 J.');
+INSERT INTO gifi (accno,description) VALUES ('9467', 'Ausgleichsverbindlichkeiten §25 Abs.1 DMBilG');
+INSERT INTO gifi (accno,description) VALUES ('9468', 'Ausgleichsverb. §25 Abs.1 DMBilG - Restlaufz. bis 1 J.');
+INSERT INTO gifi (accno,description) VALUES ('9469', 'Ausgleichsverb. §25 A.1 DMBilG - Restlaufz. 1 bis 5 J.');
+INSERT INTO gifi (accno,description) VALUES ('9470', 'Ausgleichsverb. §25 A.1 DMBilG - Restlaufz. größer 5 J.');
+INSERT INTO gifi (accno,description) VALUES ('9472', 'Verb. nach dem VermG §7 Abs.6 DMBilG');
+INSERT INTO gifi (accno,description) VALUES ('9473', 'Verb. nach dem VermG §7 A.6 DMBilG - Restl. bis 1 J.');
+INSERT INTO gifi (accno,description) VALUES ('9474', 'Verb. nach dem VermG §7 A.6 DMBilG - Restl. 1 bis 5 J.');
+INSERT INTO gifi (accno,description) VALUES ('9475', 'Verb. nach dem VermG §7 A.6 DMBilG - Restl. größer 5 J.');
+INSERT INTO gifi (accno,description) VALUES ('9476', 'Verb. aus Rückzahlungsverpfl. 17 Abs.4a DMBilG');
+INSERT INTO gifi (accno,description) VALUES ('9477', 'Verb. a. Rückzahlg.Verpfl. - Restl. b. 1 J. §17 A.4a DMBilG');
+INSERT INTO gifi (accno,description) VALUES ('9478', 'Verb. a. Rückzahlg.Verpfl. - Restl. 1 b. 5 J. §17A.4a DMBilG');
+INSERT INTO gifi (accno,description) VALUES ('9479', 'Verb. a. Rückzahlg.Verpfl. - Restl. gr. 5 J. §17 A.4a DMBilG');
+INSERT INTO gifi (accno,description) VALUES ('9480', 'Auflösung Kapitalentwertungskonto §28 A.2 Satz 4 DMBilG');
+INSERT INTO gifi (accno,description) VALUES ('9481', 'Entnahmen a. vorläufigen Gewinnrücklagen §31 A.6 DMBilG');
+INSERT INTO gifi (accno,description) VALUES ('9482', 'Entnahmen a. Sonderrückl. zum Ausgleich von Verlusten');
+INSERT INTO gifi (accno,description) VALUES ('9486', 'Abschreibungen auf Ausgleichsforderungen DMBilG');
+INSERT INTO gifi (accno,description) VALUES ('9487', 'Erträge aus der Auflösung von Rückstellungen DMBilG');
+INSERT INTO gifi (accno,description) VALUES ('9500', 'Anteil für Konto 09000-09090');
+INSERT INTO gifi (accno,description) VALUES ('9510', 'Anteil für Konto 09100-09190');
+INSERT INTO gifi (accno,description) VALUES ('9520', 'Anteil für Konto 09200-09290');
+INSERT INTO gifi (accno,description) VALUES ('9530', 'Anteil für Konto 08300-08390');
+INSERT INTO gifi (accno,description) VALUES ('9540', 'Anteil für Konto 08100-08190');
+INSERT INTO gifi (accno,description) VALUES ('9570', 'Anteil für Konto 08700-08790');
+INSERT INTO gifi (accno,description) VALUES ('9580', 'Anteil für Konto 08800-08890');
+INSERT INTO gifi (accno,description) VALUES ('9590', 'Anteil für Konto 08900-08990');
+INSERT INTO gifi (accno,description) VALUES ('9600', 'Name des Gesellschafters (Vollhafter)');
+INSERT INTO gifi (accno,description) VALUES ('9610', 'Tätigkeitsvergütung (Vollhafter)');
+INSERT INTO gifi (accno,description) VALUES ('9620', 'Tantieme (Vollhafter)');
+INSERT INTO gifi (accno,description) VALUES ('9630', 'Darlehensverzinsung (Vollhafter)');
+INSERT INTO gifi (accno,description) VALUES ('9640', 'Gebrauchsüberlassung (Vollhafter)');
+INSERT INTO gifi (accno,description) VALUES ('9650', 'Sonstige Vergütungen (Vollhafter)');
+INSERT INTO gifi (accno,description) VALUES ('9690', 'Restanteil (Vollhafter)');
+INSERT INTO gifi (accno,description) VALUES ('9700', 'Name des Gesellschafters (Teilhafter)');
+INSERT INTO gifi (accno,description) VALUES ('9710', 'Tätigkeitsvergütung (Teilhafter)');
+INSERT INTO gifi (accno,description) VALUES ('9720', 'Tantieme (Teilhafter)');
+INSERT INTO gifi (accno,description) VALUES ('9730', 'Darlehensverzinsung (Teilhafter)');
+INSERT INTO gifi (accno,description) VALUES ('9740', 'Gebrauchsüberlassung (Teilhafter)');
+INSERT INTO gifi (accno,description) VALUES ('9750', 'Sonstige Vergütungen (Teilhafter)');
+INSERT INTO gifi (accno,description) VALUES ('9790', 'Restanteil (Teilhafter)');
+INSERT INTO gifi (accno,description) VALUES ('9890', 'Statistisches Konto für passive Lohnveredelung');
+INSERT INTO gifi (accno,description) VALUES ('9899', 'Gegenkonto zu 9890');
diff --git a/sql/Hungary-chart.sql b/sql/Hungary-chart.sql
new file mode 100755
index 00000000..35faaaa7
--- /dev/null
+++ b/sql/Hungary-chart.sql
@@ -0,0 +1,48 @@
+--Hungarian chart of accounts
+-- Magyar fõkönyvi számlák, amelyek csak példaként szolgálnak
+--
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1140','Irodai eszközök','A','A','','114');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1199','Irodai eszközök ÉCS','A','A','','119');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2610','Áruk ','A','A','IC','261');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('3110','Vevõk','A','A','AR','311');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('3111','Külföldi vevõk','A','A','AR','311');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('3810','Pénztár 1','A','A','AR_paid:AP_paid','381');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('3811','Pénztár 2','A','A','AR_paid:AP_paid','381');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('3840','Bank 1','A','A','AR_paid:AP_paid','384');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('3841','Bank 2','A','A','AR_paid:AP_paid','384');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4540','Belföldi Szállítók','A','L','AP','454');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4541','Külföldi szállítók','A','L','AP','454');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4660','Visszaigényelhetõ ÁFA 25%','A','L','AP_tax:IC_taxpart:IC_taxservice','466');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4661','Visszaigényelhetõ ÁFA 12%','A','L','AP_tax:IC_taxpart:IC_taxservice','466');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4662','Visszaigényelhetõ ÁFA 5%','A','L','AP_tax:IC_taxpart:IC_taxservice','466');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4663','Visszaigényelhetõ ÁFA adómentes','A','L','AP_tax:IC_taxpart:IC_taxservice','466');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4670','Fizetendõ ÁFA 25%','A','L','AR_tax:IC_taxpart:IC_taxservice','467');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4671','Fizetendõ ÁFA 15%','A','L','AR_tax:IC_taxpart:IC_taxservice','467');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4672','Fizetendõ ÁFA 5%','A','L','AR_tax:IC_taxpart:IC_taxservice','467');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4673','Fizetendõ ÁFA adómentes','A','L','AR_tax:IC_taxpart:IC_taxservice','467');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5200','Bérleti díj','A','E','AP_amount','520');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5210','Telefon','A','E','AP_amount','521');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5990','Költségek','A','E','IC_expense','599');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8140','Eladott áruk beszerzési értéke','A','E','IC_cogs','814');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8700','Árfolyamveszteség','A','E','','870');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('9110','Belföldi árbevétel','A','I','AR_amount:IC_sale:IC_income','911');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('9111','Külföldi árbevétel','A','I','AR_amount:IC_sale:IC_income','911');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('9700','Árfolyamnyereség','A','I','','970');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1','BEFEKTETETT ESZKÖZÖK','H','A','','1');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2','KÉSZLETEK','H','A','','2');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('3','KÖVETELÉSEK','H','A','','3');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4','KÖTELEZETTSÉGEK','H','L','','4');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5','KÖLTSÉGEK','H','E','','5');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8','RÁFORDÍTÁSOK','H','E','','8');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('9','BEVÉTELEK','H','I','','9');
+--
+INSERT INTO tax (chart_id,rate,taxnumber) VALUES ((SELECT id FROM chart WHERE accno='4660'),'0.25','');
+INSERT INTO tax (chart_id,rate,taxnumber) VALUES ((SELECT id FROM chart WHERE accno='4661'),'0.15','');
+INSERT INTO tax (chart_id,rate,taxnumber) VALUES ((SELECT id FROM chart WHERE accno='4662'),'0.05','');
+INSERT INTO tax (chart_id,rate,taxnumber) VALUES ((SELECT id FROM chart WHERE accno='4663'),'0','');
+INSERT INTO tax (chart_id,rate,taxnumber) VALUES ((SELECT id FROM chart WHERE accno='4670'),'0.25','');
+INSERT INTO tax (chart_id,rate,taxnumber) VALUES ((SELECT id FROM chart WHERE accno='4671'),'0.15','');
+INSERT INTO tax (chart_id,rate,taxnumber) VALUES ((SELECT id FROM chart WHERE accno='4672'),'0.05','');
+INSERT INTO tax (chart_id,rate,taxnumber) VALUES ((SELECT id FROM chart WHERE accno='4673'),'0','');
+--
+UPDATE defaults SET inventory_accno_id = (SELECT id FROM chart WHERE accno = '2110'), income_accno_id = (SELECT id FROM chart WHERE accno = '9110'), expense_accno_id = (SELECT id FROM chart WHERE accno = '8140'), fxgain_accno_id = (SELECT id FROM chart WHERE accno = '9700'), fxloss_accno_id = (SELECT id FROM chart WHERE accno = '8700'), curr = 'HUF:EUR:USD', weightunit = 'kg';
diff --git a/sql/Hungary-gifi.sql b/sql/Hungary-gifi.sql
new file mode 100755
index 00000000..a12d06fe
--- /dev/null
+++ b/sql/Hungary-gifi.sql
@@ -0,0 +1,25 @@
+--Hungarian GIFI / Magyar gyûjtõkódok -- amelyek csak példaként szolgálnak
+INSERT INTO gifi (accno,description) VALUES ('114','Tárgyi eszközök');
+INSERT INTO gifi (accno,description) VALUES ('119','Tárgyi eszközök ÉCS');
+INSERT INTO gifi (accno,description) VALUES ('261','Áruk');
+INSERT INTO gifi (accno,description) VALUES ('311','Vevõk');
+INSERT INTO gifi (accno,description) VALUES ('381','Pénztár');
+INSERT INTO gifi (accno,description) VALUES ('384','Bank');
+INSERT INTO gifi (accno,description) VALUES ('454','Szállítók');
+INSERT INTO gifi (accno,description) VALUES ('466','Visszaigényelhetõ ÁFA');
+INSERT INTO gifi (accno,description) VALUES ('467','Fizetendõ ÁFA');
+INSERT INTO gifi (accno,description) VALUES ('520','Bérleti díj');
+INSERT INTO gifi (accno,description) VALUES ('521','Telefon');
+INSERT INTO gifi (accno,description) VALUES ('599','Egyéb költségek');
+INSERT INTO gifi (accno,description) VALUES ('814','ELÁBÉ');
+INSERT INTO gifi (accno,description) VALUES ('870','Árfolyamveszteség');
+INSERT INTO gifi (accno,description) VALUES ('911','Árbevétel');
+INSERT INTO gifi (accno,description) VALUES ('970','Árfolyamnyereség');
+INSERT INTO gifi (accno,description) VALUES ('1','BEFEKTETETT ESZKÖZÖK');
+INSERT INTO gifi (accno,description) VALUES ('2','KÉSZLETEK');
+INSERT INTO gifi (accno,description) VALUES ('3','KÖVETELÉSEK');
+INSERT INTO gifi (accno,description) VALUES ('4','KÖTELEZETTSÉGEK');
+INSERT INTO gifi (accno,description) VALUES ('5','KÖLTSÉGEK');
+INSERT INTO gifi (accno,description) VALUES ('8','RÁFORDÍTÁSOK');
+INSERT INTO gifi (accno,description) VALUES ('9','BEVÉTELEK');
+--
diff --git a/sql/Italy-gifi.sql b/sql/Italy-gifi.sql
new file mode 100755
index 00000000..5b4d807c
--- /dev/null
+++ b/sql/Italy-gifi.sql
@@ -0,0 +1,140 @@
+-- Oct 8, 2003
+-- verified D Simader
+-- Oct 13, 2003
+-- updated Daniele Giacomini, daniele@swlibero.org (extended some descriptions, to avoid ambiguities)
+--
+INSERT INTO gifi (accno,description) VALUES ('1', 'ATTIVO');
+INSERT INTO gifi (accno,description) VALUES ('1.A', 'CREDITI VERSO I SOCI PER VERSAMENTI ANCORA DOVUTI');
+INSERT INTO gifi (accno,description) VALUES ('1.B', 'IMMOBILIZZAZIONI');
+INSERT INTO gifi (accno,description) VALUES ('1.B.I', 'Immobilizzazioni immateriali');
+INSERT INTO gifi (accno,description) VALUES ('1.B.I.1', 'costi di impianto e di ampliamento');
+INSERT INTO gifi (accno,description) VALUES ('1.B.I.2', 'costi di ricerca, di sviluppo e di pubblicita\'');
+INSERT INTO gifi (accno,description) VALUES ('1.B.I.3', 'diritti di brevetto industriale e diritti di utilizzazione delle opere dell\'ingegno');
+INSERT INTO gifi (accno,description) VALUES ('1.B.I.4', 'concessioni, licenze, marchi e diritti simili');
+INSERT INTO gifi (accno,description) VALUES ('1.B.I.5', 'avviamento');
+INSERT INTO gifi (accno,description) VALUES ('1.B.I.6', 'immobilizzazioni immateriali in corso e acconti');
+INSERT INTO gifi (accno,description) VALUES ('1.B.I.7', 'altre immobilizzazioni immateriali');
+INSERT INTO gifi (accno,description) VALUES ('1.B.II', 'Immobilizzazioni materiali');
+INSERT INTO gifi (accno,description) VALUES ('1.B.II.1', 'terreni e fabbricati');
+INSERT INTO gifi (accno,description) VALUES ('1.B.II.2', 'impianti e macchinario');
+INSERT INTO gifi (accno,description) VALUES ('1.B.II.3', 'attrezzature industriali e commerciali');
+INSERT INTO gifi (accno,description) VALUES ('1.B.II.4', 'altri beni materiali');
+INSERT INTO gifi (accno,description) VALUES ('1.B.II.5', 'immobilizzazioni in corso e acconti');
+INSERT INTO gifi (accno,description) VALUES ('1.B.III', 'Immobilizzazioni finanziarie');
+INSERT INTO gifi (accno,description) VALUES ('1.B.III.1', 'partecipazioni');
+INSERT INTO gifi (accno,description) VALUES ('1.B.III.1.a', 'partecipazioni in imprese controllate');
+INSERT INTO gifi (accno,description) VALUES ('1.B.III.1.b', 'partecipazioni in imprese collegate');
+INSERT INTO gifi (accno,description) VALUES ('1.B.III.1.c', 'partecipazioni in imprese controllanti');
+INSERT INTO gifi (accno,description) VALUES ('1.B.III.1.d', 'partecipazioni in altre imprese');
+INSERT INTO gifi (accno,description) VALUES ('1.B.III.2', 'crediti');
+INSERT INTO gifi (accno,description) VALUES ('1.B.III.2.a', 'crediti verso imprese controllate');
+INSERT INTO gifi (accno,description) VALUES ('1.B.III.2.b', 'crediti verso imprese collegate');
+INSERT INTO gifi (accno,description) VALUES ('1.B.III.2.c', 'crediti verso controllanti');
+INSERT INTO gifi (accno,description) VALUES ('1.B.III.2.d', 'crediti verso altri');
+INSERT INTO gifi (accno,description) VALUES ('1.B.III.3', 'Altri titoli');
+INSERT INTO gifi (accno,description) VALUES ('1.B.III.4', 'Azioni proprie immobilizzate');
+INSERT INTO gifi (accno,description) VALUES ('1.C', 'ATTIVO CIRCOLANTE');
+INSERT INTO gifi (accno,description) VALUES ('1.C.I', 'Rimanenze');
+INSERT INTO gifi (accno,description) VALUES ('1.C.I.1', 'rimanenze: materie prime, sussidiarie e di consumo');
+INSERT INTO gifi (accno,description) VALUES ('1.C.I.2', 'rimanenze: prodotti in corso di lavorazione e semilavorati');
+INSERT INTO gifi (accno,description) VALUES ('1.C.I.3', 'rimanenze: lavori in corso su ordinazione');
+INSERT INTO gifi (accno,description) VALUES ('1.C.I.4', 'rimanenze: prodotti finiti e merci');
+INSERT INTO gifi (accno,description) VALUES ('1.C.I.5', 'rimanenze: acconti');
+INSERT INTO gifi (accno,description) VALUES ('1.C.II', 'Crediti');
+INSERT INTO gifi (accno,description) VALUES ('1.C.II.1', 'crediti verso i clienti');
+INSERT INTO gifi (accno,description) VALUES ('1.C.II.2', 'crediti verso imprese controllate');
+INSERT INTO gifi (accno,description) VALUES ('1.C.II.3', 'crediti verso imprese collegate');
+INSERT INTO gifi (accno,description) VALUES ('1.C.II.4', 'crediti verso imprese controllanti');
+INSERT INTO gifi (accno,description) VALUES ('1.C.II.5', 'crediti verso altri');
+INSERT INTO gifi (accno,description) VALUES ('1.C.III', 'Attivita\' finanziarie che non costituiscono immobilizzazioni');
+INSERT INTO gifi (accno,description) VALUES ('1.C.III.1', 'partecipazioni in imprese controllate');
+INSERT INTO gifi (accno,description) VALUES ('1.C.III.2', 'partecipazioni in imprese collegate');
+INSERT INTO gifi (accno,description) VALUES ('1.C.III.3', 'partecipazioni in imprese controllanti');
+INSERT INTO gifi (accno,description) VALUES ('1.C.III.4', 'altre partecipazioni');
+INSERT INTO gifi (accno,description) VALUES ('1.C.III.5', 'azioni proprie per investimento temporaneo');
+INSERT INTO gifi (accno,description) VALUES ('1.C.III.6', 'altri titoli');
+INSERT INTO gifi (accno,description) VALUES ('1.C.IV', 'Disponibilita\' liquide');
+INSERT INTO gifi (accno,description) VALUES ('1.C.IV.1', 'depositi bancari e postali');
+INSERT INTO gifi (accno,description) VALUES ('1.C.IV.2', 'assegni');
+INSERT INTO gifi (accno,description) VALUES ('1.C.IV.3', 'denaro e valori in cassa');
+INSERT INTO gifi (accno,description) VALUES ('1.D', 'RATEI E RISCONTI ATTIVI');
+INSERT INTO gifi (accno,description) VALUES ('2', 'PASSIVO');
+INSERT INTO gifi (accno,description) VALUES ('2.A', 'PATRIMONIO NETTO');
+INSERT INTO gifi (accno,description) VALUES ('2.A.I', 'Capitale');
+INSERT INTO gifi (accno,description) VALUES ('2.A.II', 'Riserva da sovrapprezzo delle azioni');
+INSERT INTO gifi (accno,description) VALUES ('2.A.III', 'Riserva di rivalutazione');
+INSERT INTO gifi (accno,description) VALUES ('2.A.IV', 'Riserva legale');
+INSERT INTO gifi (accno,description) VALUES ('2.A.V', 'Riserva per azioni proprie in portafoglio');
+INSERT INTO gifi (accno,description) VALUES ('2.A.VI', 'Riserve statutarie');
+INSERT INTO gifi (accno,description) VALUES ('2.A.VII', 'Altre riserve');
+INSERT INTO gifi (accno,description) VALUES ('2.A.VIII', 'Utili (perdite) portati a nuovo');
+INSERT INTO gifi (accno,description) VALUES ('2.A.IX', 'Utile (perdita) dell\'esercizio');
+INSERT INTO gifi (accno,description) VALUES ('2.B', 'FONDI PER RISCHI E ONERI');
+INSERT INTO gifi (accno,description) VALUES ('2.B.1', 'fondo per trattamento di quiescenza e obblighi simili');
+INSERT INTO gifi (accno,description) VALUES ('2.B.2', 'fondo per imposte');
+INSERT INTO gifi (accno,description) VALUES ('2.B.3', 'altri fondi per rischi e oneri futuri');
+INSERT INTO gifi (accno,description) VALUES ('2.C', 'TRATTAMENTO DI FINE RAPPORTO DI LAVORO SUBORDINATO');
+INSERT INTO gifi (accno,description) VALUES ('2.D', 'DEBITI');
+INSERT INTO gifi (accno,description) VALUES ('2.D.1', 'obbligazioni non convertibili');
+INSERT INTO gifi (accno,description) VALUES ('2.D.2', 'obbligazioni convertibili');
+INSERT INTO gifi (accno,description) VALUES ('2.D.3', 'debiti verso banche');
+INSERT INTO gifi (accno,description) VALUES ('2.D.4', 'debiti verso altri finanziatori');
+INSERT INTO gifi (accno,description) VALUES ('2.D.5', 'debiti: acconti');
+INSERT INTO gifi (accno,description) VALUES ('2.D.6', 'debiti verso fornitori');
+INSERT INTO gifi (accno,description) VALUES ('2.D.7', 'debiti rappresentati da titoli di credito');
+INSERT INTO gifi (accno,description) VALUES ('2.D.8', 'debiti verso imprese controllate');
+INSERT INTO gifi (accno,description) VALUES ('2.D.9', 'debiti verso imprese collegate');
+INSERT INTO gifi (accno,description) VALUES ('2.D.10', 'debiti verso controllanti');
+INSERT INTO gifi (accno,description) VALUES ('2.D.11', 'debiti tributari');
+INSERT INTO gifi (accno,description) VALUES ('2.D.12', 'debiti verso istituti di previdenza e di sicurezza sociale');
+INSERT INTO gifi (accno,description) VALUES ('2.D.13', 'altri debiti');
+INSERT INTO gifi (accno,description) VALUES ('2.E', 'RATEI E RISCONTI PASSIVI');
+INSERT INTO gifi (accno,description) VALUES ('3', 'CONTO ECONOMICO');
+INSERT INTO gifi (accno,description) VALUES ('3.A', 'VALORE DELLA PRODUZIONE');
+INSERT INTO gifi (accno,description) VALUES ('3.A.1', 'ricavi delle vendite e delle prestazioni');
+INSERT INTO gifi (accno,description) VALUES ('3.A.2', 'variazione rimanenze prodotti in lavorazione, semilavorati e finiti');
+INSERT INTO gifi (accno,description) VALUES ('3.A.3', 'variazione dei lavori in corso su ordinazione');
+INSERT INTO gifi (accno,description) VALUES ('3.A.4', 'incrementi di immobilizzazioni per lavori interni');
+INSERT INTO gifi (accno,description) VALUES ('3.A.5', 'altri ricavi e proventi');
+INSERT INTO gifi (accno,description) VALUES ('3.B', 'COSTI DELLA PRODUZIONE');
+INSERT INTO gifi (accno,description) VALUES ('3.B.6', 'acquisti materie prime, sussidiarie, di consumo e di merci');
+INSERT INTO gifi (accno,description) VALUES ('3.B.7', 'spese per prestazione di servizi');
+INSERT INTO gifi (accno,description) VALUES ('3.B.8', 'spese per godimento di beni di terzi');
+INSERT INTO gifi (accno,description) VALUES ('3.B.9', 'costi del personale');
+INSERT INTO gifi (accno,description) VALUES ('3.B.9.a', 'salari e stipendi');
+INSERT INTO gifi (accno,description) VALUES ('3.B.9.b', 'oneri sociali');
+INSERT INTO gifi (accno,description) VALUES ('3.B.9.c', 'accantonamento al TFRL');
+INSERT INTO gifi (accno,description) VALUES ('3.B.9.d', 'accantonamento per trattamento di quiescenza e simili');
+INSERT INTO gifi (accno,description) VALUES ('3.B.9.e', 'altri costi del personale');
+INSERT INTO gifi (accno,description) VALUES ('3.B.10', 'ammortamenti e svalutazioni');
+INSERT INTO gifi (accno,description) VALUES ('3.B.10.a', 'ammortamento delle immobilizzazioni immateriali');
+INSERT INTO gifi (accno,description) VALUES ('3.B.10.b', 'ammortamento delle immobilizzazioni materiali');
+INSERT INTO gifi (accno,description) VALUES ('3.B.10.c', 'altre svalutazioni delle immobilizzazioni');
+INSERT INTO gifi (accno,description) VALUES ('3.B.10.d', 'svalutazioni dell\'attivo circolante e delle disponibilita\' liquide');
+INSERT INTO gifi (accno,description) VALUES ('3.B.11', 'variazioni rimanenze materie prime, sussidiarie, di consumo e merci');
+INSERT INTO gifi (accno,description) VALUES ('3.B.12', 'accantonamento per rischi');
+INSERT INTO gifi (accno,description) VALUES ('3.B.13', 'altri accantonamenti');
+INSERT INTO gifi (accno,description) VALUES ('3.B.14', 'oneri diversi di gestione');
+INSERT INTO gifi (accno,description) VALUES ('3.C', 'PROVENTI E ONERI FINANZIARI');
+INSERT INTO gifi (accno,description) VALUES ('3.C.15', 'proventi da partecipazioni');
+INSERT INTO gifi (accno,description) VALUES ('3.C.16', 'altri proventi finanziari');
+INSERT INTO gifi (accno,description) VALUES ('3.C.16.a', 'proventi da crediti iscritti nelle immobilizzazioni');
+INSERT INTO gifi (accno,description) VALUES ('3.C.16.b', 'proventi da titoli iscritti nelle immobilizzazioni che non costituiscono partecipazioni');
+INSERT INTO gifi (accno,description) VALUES ('3.C.16.c', 'proventi da titoli iscritti all\'attivo circolante che non costituiscono partecipazioni');
+INSERT INTO gifi (accno,description) VALUES ('3.C.16.d', 'proventi diversi dai precedenti');
+INSERT INTO gifi (accno,description) VALUES ('3.C.17', 'Interessi e altri oneri finanziari');
+INSERT INTO gifi (accno,description) VALUES ('3.D', 'RETTIFICHE DI VALORE DI ATTIVITA\' FINANZIARIE');
+INSERT INTO gifi (accno,description) VALUES ('3.D.18', 'rivalutazioni');
+INSERT INTO gifi (accno,description) VALUES ('3.D.18.a', 'rettifiche di partecipazioni');
+INSERT INTO gifi (accno,description) VALUES ('3.D.18.b', 'rettifiche di immobilizzazioni finanziarie che non costituiscono partecipazioni');
+INSERT INTO gifi (accno,description) VALUES ('3.D.18.c', 'rettifiche da titoli iscritti all\'attivo circolante che non costituiscono partecipazioni');
+INSERT INTO gifi (accno,description) VALUES ('3.D.19', 'svalutazioni');
+INSERT INTO gifi (accno,description) VALUES ('3.D.19.a', 'svalutazioni di partecipazioni');
+INSERT INTO gifi (accno,description) VALUES ('3.D.19.b', 'svalutazioni di immobilizzazioni finanziarie che non costituiscono partecipazioni');
+INSERT INTO gifi (accno,description) VALUES ('3.D.19.c', 'svalutazioni di titoli iscritti all\'attivo circolante che non costituiscono partecipazioni');
+INSERT INTO gifi (accno,description) VALUES ('3.E', 'PROVENTI E ONERI STRAORDINARI');
+INSERT INTO gifi (accno,description) VALUES ('3.E.20', 'proventi straordinari');
+INSERT INTO gifi (accno,description) VALUES ('3.E.21', 'oneri straordinari');
+INSERT INTO gifi (accno,description) VALUES ('3.E.22', 'Imposte sul reddito dell\'esercizio');
+INSERT INTO gifi (accno,description) VALUES ('3.E.26', 'Utile o perdita di esercizio');
+
diff --git a/sql/Italy_General-chart.sql b/sql/Italy_General-chart.sql
new file mode 100755
index 00000000..3132720b
--- /dev/null
+++ b/sql/Italy_General-chart.sql
@@ -0,0 +1,179 @@
+--
+-- Chart of Accounts for Italy
+--
+-- From: Luca Venturini <luca@yepa.com>
+-- 9 Oct 2001
+--
+-- ('2001101'5 Conto ('6470005' diventa tassa (negativa)
+-- ('2001102'5 IVA su acquisti diventa Iva su acq. (20%)
+-- ('2001102'5 Introdotto un conto per ogni aliquota IVA
+-- ('2001102'7 Modificato numero di conto per la Ritenuta d'acconto
+-- ('2001103'1 Inseriti Fornitore-test e Consulente-test
+-- ('2001111'5 Invertito i ruoli di ('6470005' e ('6470010' (erano sbagliati)
+-- ('2001111'5 Eliminata l'applicabilita' della RA al cliente test
+-- ('2001112'0 Aggiunto IC_expense al conto ('7005005' (mancava un conto di default per i servizi)
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2010000','COSTI DI RICERCA, DI SVILUPPO E DI PUBBLICITA\'','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2010005','Spese di ricerca e di sviluppo','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2010010','Spese di pubblicita\'','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2015000','DIRITTI DI BREV. IND. E DIRITTI DI UTILIZZ DELLE OPERE DELL\'INGEGNO','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2015005','Brevetti','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2020005','Concessioni, licenze e diritti simili','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2025005','Avviamento','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2245000','TERRENI E FABBRICATI','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2245010','Fabbricati civili','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2250000','IMPIANTI E MACCHINARI','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2250005','Impianti generici','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2255000','ATTREZZATURE INDUSTRIALI E COMMERCIALI','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2255005','Attrezzature','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2255010','Mobili','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2255015','Macchine d\'ufficio','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2255025','Autovetture','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3005000','RIMANENZE MATERIE PRIME, SUSSIDIARIE E DI CONSUMO','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3005005','Rimanenze materie prime','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3020000','RIMANENZE PRODOTTI FINITI E MERCI','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3020005','Rimanenze prodotti finiti','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4001000','CREDITI VERSO CL. PER FATT. EM. ESIGIBILI ENTRO L\'ESER. SUCC.','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4001001','Crediti verso clienti per fatture emesse','A','','A','AR');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4064000','CREDITI VERSO ALTRI - CREDITI D\'IMPOSTA','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4064005','IRPEF acconto','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4064020','IRPEG acconto','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4064800','Credito verso erario per IVA','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4400000','DISPONIBILITA\' LIQUIDE','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4480105','Banca ...c/c','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4480400','Assegni','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4480500','Cassa e valori','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5005000','CAPITALE','H','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5005005','Capitale sociale','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5005010','Versamenti in conto capitale','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5020000','RISERVA LEGALE','H','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5020005','Riserva legale','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5080000','UTILI (PERDITE) PORTATI A NUOVO','H','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5080005','Utili esercizi precedenti','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5080010','Perdite esercizi precedenti','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5090000','UTILE (PERDITA) DELL\'ESERCIZIO','H','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5090005','Utile dell\'esercizio','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5090010','Perdita dell\'esercizio','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6200000','TRATTAMENTO DI FINE RAPPORTO DI LAVORO SUBORDINATO','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6220005','Trattamento di fine rapporto di lavoro subordinato','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6220010','Anticipazioni erogate su trattamento di fine rapporto di lavoro subordinato','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6435000','DEBITI VERSO BANCHE ESIGIBILI ENTRO ES. SUCC.','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6435005','Banca di ... c/c','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6436000','DEBITI VERSO BANCHE ESIGIBILI OLTRE ES. SUCC.','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6436005','Mutuo banca di ...','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6450000','DEBITI VERSO FORNITORI FATT. RICEVUTE ESIGIBILI ENTRO ES. SUCC.','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6450001','Debiti verso fornitori per fatture ricevute','A','','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6470000','DEBITI TRIBUTARI','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6470005','IRPEF dipendenti','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6470010','IRPEF terzi','A','','L','AP_tax:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6470015','IVA da versare','A','','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6470020','IVA in sospeso','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6470025','IRPEG sul reddito d\'esercizio','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6470030','ILOR sul reddito d\'esercizio','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6470050','Imposta patrimoniale','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6475000','DEBITI VERSO ISTITUTI PREV. ESIGIBILI ENTRO ES. SUCC.','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6475005','INPS','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6475010','INAIL','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6475020','Servizio sanitario nazionale (S.S.N.)','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6475025','ENASARCO','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6480000','ALTRI DEBITI - IVA C/ERARIO','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6480003','IVA su acquisti (4%)','A','','L','AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6480004','IVA su acquisti (10%)','A','','L','AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6480005','IVA su acquisti (20%)','A','','L','AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6480006','IVA a credito su acquisti U.E.','A','','L','AP_tax');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6480010','IVA su fatture emesse','A','','L','AR_tax');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6480011','IVA a debito su acquisti U.E.','A','','L','AR_tax');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6480015','IVA su corrispettivi','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6480020','IVA versata','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6480025','IVA acconto','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6480030','IVA a credito','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6480035','IVA ulteriore detrazione','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6480040','Crediti d\'imposta diversi','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6480045','IVA pro-rata indetraibile','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6480050','IVA da contabilità separata','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6480055','IVA c/riepilogativo','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6600000','RATEI E RISCONTI PASSIVI','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6690005','Ratei passivi','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6692005','Risconti passivi','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7005000','COSTI PER MATERIE PRIME, SUSSIDIARIE, DI CONSUMO E DI MERCI','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7005005','Materie prime','A','','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7005015','Merci destinate alla rivendita','A','','E','AP_amount:IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7005020','Materiali di consumo destinati alla produzione','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7005030','Materiali di pulizia','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7005035','Combustibile per riscaldamento','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7005040','Cancelleria','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7005045','Materiale pubblicitario','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7005050','Carburanti e lubrificanti','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7025000','SPESE DI GESTIONE','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7025005','Energia elettrica','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7025015','Spese telefoniche','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7025025','Spese pubblicità/propaganda','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7025030','Spese di assicurazione','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7025040','Pulizia locali','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7025055','Viaggi e soggiorni amministratori','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7025060','Spese di rappresentanza per servizi interamente detraibili','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7025065','Altre spese di rappresentanza','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7025100','Altri servizi','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7028000','CARBURANTI E LUBRIFICANTI PER AUTOTRAZIONE','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7028005','Carburanti e lubrificanti autovetture','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7028010','Carburanti e lubrificanti autocarri etc.','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7030000','COMPENSI PROFESSIONALI','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7030005','Consulenza fiscale e tributaria','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7030015','Consulenza legale','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7030030','Compenso amministratori','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7035000','COSTI PER GODIMENTO BENI DI TERZI','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7035005','Fitti passivi','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7035050','Canoni di leasing','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7040000','COSTI PER IL PERSONALE','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7040005','Salari e stipendi','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7040010','Oneri sociali INPS','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7040015','Oneri sociali INAIL','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7040020','Oneri sociali C.E.','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7043000','AMMORTAMENTI E SVALUTAZIONI','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7043005','Ammortamenti immobilizzazioni immateriali','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7043100','Ammortamenti immobilizzazioni materiali','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7056000','ONERI DIVERSI DI GESTIONE','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7056010','Imposta di registro, bolli ,CC.GG., etc.','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7056015','Imposta camerale','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7056025','Tributi locali diversi','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7056040','Tassa possesso autoveicoli','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7260000','INTERESSI E ONERI FINANZIARI','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7260020','Interessi passivi bancari','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7260025','Interessi passivi mutui','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7875000','IMPOSTE SUL REDDITO DELL\'ESERCIZIO','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7875005','IRPEG corrente','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7875020','IRPEG differita','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8005000','RICAVI DELLE VENDITE','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8005005','Ricavi cessione beni','A','','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8015000','RICAVI DELLE PRESTAZIONI','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8015005','Ricavi per prestazioni a terzi','A','','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8015015','Noleggio impianti e macchinari','A','','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8041000','INCREMENTI IMMOBILIZZAZIONI IMMATERIALI','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8041005','Brevetti','A','','I','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8041010','Spese di costituzione società','A','','I','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8041020','Spese pubblicità e propaganda','A','','I','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8045000','ALTRI RICAVI E PROVENTI','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8045001','Cessione di materie prime, sussidiarie e semilavorati','A','','I','AR_amount');
+--
+-- foreign exchange gain / loss
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('9990000','Foreign Exchange Gain','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('9990010','Foreign Exchange Loss','A','','E','');
+--
+-- insert taxes
+--
+--Ritenuta d'acconto
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '6470010'), -0.2);
+--IVA Acquisti 4%
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '6480003'), 0.04);
+--IVA Acquisti 10%
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '6480004'), 0.1);
+--IVA Acquisti 20%
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '6480005'), 0.2);
+--IVA Fatture Emesse
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '6480010'), 0.2);
+--IVA su corrispettivi
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '6480015'), 0.2);
+--
+-- update defaults
+--
+update defaults set inventory_accno_id = (select id from chart where accno = '3020005'), income_accno_id = (select id from chart where accno = '8005005'), expense_accno_id = (select id from chart where accno = '7005005'), fxgain_accno_id = (select id from chart where accno = '9990000'), fxloss_accno_id = (select id from chart where accno = '9990010'), curr = 'EUR', weightunit = 'kg';
+--
diff --git a/sql/Italy_cc2424-chart.sql b/sql/Italy_cc2424-chart.sql
new file mode 100755
index 00000000..b8573afe
--- /dev/null
+++ b/sql/Italy_cc2424-chart.sql
@@ -0,0 +1,269 @@
+--
+-- Chart of Accounts for Italy
+--
+-- From: Daniele Giacomini <daniele@swlibero.org>
+-- 13 ottobre 2003
+-- 05 novembre 2003
+--
+-- Il codice GIFI viene usato per rappresentare il codice corrispondente
+-- al bilancio riclassificato, come da codice civile, art. 2424.
+-- Il codice in questione e' rappresentato separando i vari elementi
+-- con un punto, aggiungendo inizialmente un numero: 1 sta per attivo,
+-- 2 sta per passivo, 3 sta per conto economico.
+--
+-- L'abbinamento tra il piano dei conti e il codice GIFI non e' perfetto
+-- e richiede un controllo ulteriore; inoltre, non sono stati risolti
+-- i problemi relativi alle sottoclassificazioni previste dal codice civile,
+-- che pero' non hanno un codice standard corrispondente.
+--
+-- La codifica GIFI è contenuta in un file separato.
+--
+-- Questo file e' scritto usando soltanto la codifica ASCII, per evitare
+-- problemi di qualunque genere nella scelta della codifica. Pertanto,
+-- le vocali accentate sono seguite da un apostrofo.
+--
+-- E' disponibile un cliente, un fornitore e un articolo di prova.
+--
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('100000', 'ATTIVO', 'H', '', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('101000', 'IMMOBILIZZAZIONI IMMATERIALI', 'H', '', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('101001', 'Costi di impianto e ampliamento', 'A', '1.B.I.1', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('101002', 'Avviamento', 'A', '1.B.I.5', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('101008', 'Altre immobilizzazioni immateriali', 'A', '1.B.I.7', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('102000', 'IMMOBILIZZAZIONI MATERIALI', 'H', '', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('102001', 'Terreni', 'A', '1.B.II.1', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('102002', 'Fabbricati non strumentali', 'A', '1.B.II.1', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('102003', 'Fabbricati', 'A', '1.B.II.1', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('102004', 'Impianti e macchinari', 'A', '1.B.II.2', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('102006', 'Attrezzature commerciali', 'A', '1.B.II.3', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('102007', 'Attrezzature d\'ufficio', 'A', '1.B.II.3', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('102008', 'Arredamento', 'A', '1.B.II.3', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('102009', 'Automezzi', 'A', '1.B.II.3', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('102021', 'Fondo ammortamento fabbricati', 'A', '1.B.II.1', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('102022', 'Fondo ammortamento impianti e macchinari', 'A', '1.B.II.3', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('102023', 'Fondo ammortamento attrezzature commerciali', 'A', '1.B.II.3', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('102024', 'Fondo ammortamento attrezzature d\'ufficio', 'A', '1.B.II.3', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('102025', 'Fondo ammortamento arredamento', 'A', '1.B.II.3', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('102026', 'Fondo ammortamento automezzi', 'A', '1.B.II.3', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('103000', 'IMMOBILIZZAZIONI FINANZIARIE', 'H', '', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('103001', 'Prestiti a terzi', 'A', '1.B.III.2.d', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('105000', 'RIMANENZE', 'H', '', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('105001', 'Rimanenze di merci', 'A', '1.C.I.4', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('105002', 'Rimanenze di imballaggi', 'A', '1.C.I.4', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('105003', 'Rimanenze di materiali di consumo', 'A', '1.C.I.1', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('105011', 'Fondo svalutazione magazzino', 'A', '1.C.I.4', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('106000', 'CLIENTI', 'H', '', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('106001', 'Crediti verso clienti', 'A', '1.C.II.1', 'A', 'AR');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('111000', 'CREDITI COMMERCIALI', 'H', '', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('111002', 'Cambiali attive', 'A', '1.C.II.1', 'A', 'AR_paid');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('111003', 'Cambiali allo sconto', 'A', '1.C.II.1', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('111005', 'Cambiali all\'incasso', 'A', '1.C.II.1', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('111006', 'Effetti insoluti e protestati', 'A', '1.C.II.1', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('111007', 'Crediti insoluti', 'A', '1.C.II.1', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('111011', 'Fatture da emettere', 'A', '1.C.II.1', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('111031', 'Fondo svalutazione crediti', 'A', '1.C.II.1', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('111032', 'Fondo rischi su crediti', 'A', '1.C.II.1', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('112000', 'CREDITI DIVERSI', 'H', '', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('112001', 'IVA nostro credito 4%', 'A', '1.C.II.5', 'A', 'AP_tax:IC_taxpart:IC_taxservice');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('112002', 'IVA nostro credito 10%', 'A', '1.C.II.5', 'A', 'AP_tax:IC_taxpart:IC_taxservice');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('112004', 'IVA nostro credito 20%', 'A', '1.C.II.5', 'A', 'AP_tax:IC_taxpart:IC_taxservice');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('112062', 'Erario c/acconto IVA', 'A', '1.C.II.5', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('112063', 'Credito per IVA', 'A', '1.C.II.5', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('112071', 'Personale c/acconti', 'A', '1.C.II.5', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('112072', 'Crediti v/istituti previdenziali', 'A', '1.C.II.5', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('112073', 'Crediti per cauzioni', 'A', '1.C.II.5', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('112074', 'Crediti diversi', 'A', '1.C.II.5', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('113000', 'VALORI MOBILIARI', 'H', '', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('113001', 'Titoli', 'A', '1.C.III.6', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('114000', 'DISPONIBILITA\' LIQUIDE', 'H', '', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('114001', 'Banca c/c', 'A', '1.C.IV.1', 'A', 'AR_paid:AP_paid');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('114003', 'Poste c/c', 'A', '1.C.IV.1', 'A', 'AR_paid:AP_paid');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('114004', 'Assegni', 'A', '1.C.IV.2', 'A', 'AR_paid:AP_paid');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('114005', 'Denaro e valori in cassa', 'A', '1.C.IV.3', 'A', 'AR_paid:AP_paid');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('115000', 'RATEI E RISCONTI ATTIVI', 'H', '', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('115001', 'Ratei attivi', 'A', '1.D', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('115002', 'Risconti attivi', 'A', '1.D', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('200000', 'PASSIVO', 'H', '', 'L', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('216000', 'PATRIMONIO NETTO', 'H', '', 'Q', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('216001', 'Patrimonio netto', 'A', '2.A.I', 'Q', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('216002', 'Utile d\'esercizio', 'A', '2.A.IX', 'Q', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('216003', 'Perdita d\'esercizio', 'A', '2.A.IX', 'Q', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('217000', 'FONDO ACCANTONAMENTO RISCHI E ONERI', 'H', '', 'L', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('217002', 'Fondo per imposte', 'A', '2.B.2', 'L', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('217003', 'Fondo manutenzioni e riparazioni', 'A', '2.B.3', 'L', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('217006', 'Altri fondi', 'A', '2.B.3', 'L', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('218000', 'TFR LAVORO SUBORDINATO', 'H', '', 'L', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('218001', 'Debito per TFRL', 'A', '2.C', 'L', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('219000', 'DEBITI DI FINAZIAMENTO', 'H', '', 'L', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('219001', 'Mutui ipotecari', 'A', '2.D.3', 'L', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('219002', 'Finanziamenti bancari', 'A', '2.D.3', 'L', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('219003', 'Sovvenzioni bancarie', 'A', '2.D.3', 'L', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('219004', 'Banche c/c passivi', 'A', '2.D.3', 'L', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('219011', 'Finanziamenti non bancari', 'A', '2.D.4', 'L', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('220000', 'FORNITORI', 'H', '', 'L', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('220001', 'Debiti verso fornitori', 'A', '2.D.6', 'L', 'AP');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('225000', 'DEBITI COMMERCIALI', 'H', '', 'L', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('225002', 'Cambiali passive', 'A', '2.D.6', 'L', 'AP_paid');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('225003', 'Fatture da ricevere', 'A', '2.D.6', 'L', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('226000', 'DEBITI TRIBUTARI', 'H', '', 'L', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('226001', 'IVA nostro debito 4%', 'A', '2.D.13', 'L', 'AR_tax:IC_taxpart:IC_taxservice');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('226002', 'IVA nostro debito 10%', 'A', '2.D.13', 'L', 'AR_tax:IC_taxpart:IC_taxservice');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('226004', 'IVA nostro debito 20%', 'A', '2.D.13', 'L', 'AR_tax:IC_taxpart:IC_taxservice');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('226062', 'Debito per IVA', 'A', '2.D.13', 'L', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('226065', 'Erario c/ritenute da versarare', 'A', '2.D.13', 'L', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('226066', 'Altri debiti verso l\'erario', 'A', '2.D.13', 'L', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('226067', 'Debiti per imposte', 'A', '2.D.13', 'L', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('227000', 'DEBITI DIVERSI', 'H', '', 'L', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('227001', 'Personale c/retribuzioni', 'A', '2.D.13', 'L', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('227002', 'Personale c/liquidazioni', 'A', '2.D.13', 'L', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('227003', 'Debiti v/istituti previdenziali', 'A', '2.D.12', 'L', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('227004', 'Debiti per cauzioni', 'A', '2.D.13', 'L', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('227005', 'Debiti diversi', 'A', '2.D.13', 'L', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('228000', 'RATEI E RISCONTI PASSIVI', 'H', '', 'L', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('228001', 'Ratei passivi', 'A', '2.E', 'L', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('228002', 'Risconti passivi', 'A', '2.E', 'L', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('300000', 'ALTRI CONTI PATRIMONIALI', 'H', '', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('329000', 'CONTI TRANSITORI E FINALALI', 'H', '', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('329006', 'Istituti previdenziali', 'A', '2.D.12', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('329011', 'Conto del patrimonio', 'A', '', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('329012', 'Bilancio di apertura', 'A', '', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('400000', 'CONTI D\'ORDINE', 'H', '', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('431000', 'IMPEGNI', 'H', '', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('431001', 'Beni da ricevere', 'A', '', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('431002', 'Fornitori per beni da ricevere', 'A', '', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('431003', 'Beni da consegnare', 'A', '', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('431004', 'Clienti per beni da consegnare', 'A', '', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('431005', 'Beni in leasing', 'A', '', 'L', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('431006', 'Creditori per beni in leasing', 'A', '', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('432000', 'BENI DI TERZI', 'H', '', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('433000', 'BENI NOSTRI PRESSO TERZI', 'H', '', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('434000', 'RISCHI', 'H', '', 'A', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('500000', 'VALORE DELLA PRODUZIONE', 'H', '', 'I', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('541000', 'RICAVI VENDITE E PRESTAZIONI', 'H', '', 'I', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('541001', 'Vendite di merci', 'A', '3.A.1', 'I', 'AR_amount:IC_sale');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('541002', 'Vendite di imballaggi', 'A', '3.A.1', 'I', 'AR_amount:IC_sale');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('541003', 'Ricavi per prestazione di servizi', 'A', '3.A.1', 'I', 'AR_amount:IC_income');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('541006', 'Resi su vendite', 'A', '3.A.1', 'I', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('541007', 'Ribassi e abbuoni passivi', 'A', '3.A.1', 'I', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('541008', 'Premi a clienti', 'A', '3.B.9.e', 'I', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('541010', 'Rimborso spese', 'A', '3.A.5', 'I', 'AR_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('542000', 'ALTRI RICAVI E PROVENTI', 'H', '', 'I', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('542001', 'Ricavi e proventi vari', 'A', '3.A.5', 'I', 'AR_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('542002', 'Fitti attivi', 'A', '3.A.5', 'I', 'AR_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('542003', 'Arrotondamenti positivi', 'A', '3.A.5', 'I', 'AR_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('600000', 'COSTI DELLA PRODUZIONE', 'H', '', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('645000', 'COSTI ACQUISTO MERCI E MATERIALI DI CONSUMO', 'H', '', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('645001', 'Acquisti di merci', 'A', '3.B.6', 'E', 'AP_amount:IC');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('645002', 'Acquisti di imballaggi', 'A', '3.B.6', 'E', 'AP_amount:IC');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('645003', 'Acquisti di materiali di consumo', 'A', '3.B.6', 'E', 'AP_amount:IC');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('645006', 'Resi su acquisti', 'A', '3.B.6', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('645007', 'Ribassi e abbuoni attivi', 'A', '3.B.6', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('645008', 'Premi da fornitori', 'A', '3.A.5', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('646000', 'COSTI PER PRESTAZIONI E SERVIZI', 'H', '', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('646001', 'Costi di trasporto', 'A', '3.B.7', 'E', 'AP_amount:IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('646002', 'Costi di energia', 'A', '3.B.7', 'E', 'AP_amount:IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('646003', 'Costi di pubblicita\'', 'A', '3.B.7', 'E', 'AP_amount:IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('646004', 'Assicurazioni', 'A', '3.B.7', 'E', 'AP_amount:IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('646005', 'Spese postali', 'A', '3.B.7', 'E', 'AP_amount:IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('646006', 'Spese telefoniche', 'A', '3.B.7', 'E', 'AP_amount:IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('646007', 'Spese legali e notarili', 'A', '3.B.7', 'E', 'AP_amount:IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('646008', 'Spese di banca', 'A', '3.B.7', 'E', 'AP_amount:IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('646009', 'Manutenzioni riparazioni', 'A', '3.B.7', 'E', 'AP_amount:IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('646010', 'Imponibile omaggi', 'A', '3.B.9.e', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('646011', 'IVA c/omaggi', 'A', '3.B.9.e', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('646021', 'Provvigioni passive', 'A', '3.B.9.e', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('646022', 'Competenze a terzi', 'A', '3.B.9.e', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('647000', 'COSTI PER GODIMENTO BENI DI TERZI', 'H', '', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('647001', 'Fitti passivi', 'A', '3.B.8', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('647002', 'Canoni leasing', 'A', '3.B.8', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('648000', 'COSTI PER IL PERSONALE', 'H', '', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('648001', 'Salari e stipendi', 'A', '3.B.9.a', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('648002', 'Oneri sociali', 'A', '3.B.9.b', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('648003', 'Trattamenti di fine rapporto di lavoro', 'A', '3.B.9.c', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('648004', 'Trattamenti di quiescenza e simili', 'A', '3.B.9.d', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('648005', 'Altri costi per il personale', 'A', '3.B.9.e', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('649000', 'AMMORTAMENTO IMMOBILIZZAZIONI IMMATERIALI', 'H', '', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('649001', 'Ammortamento impianto e ampliamento', 'A', '3.B.10.a', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('649002', 'Ammortamento avviamento', 'A', '3.B.10.a', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('649008', 'Ammortamento di altre immobilizzazioni immateriali', 'A', '3.B.10.a', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('650000', 'AMMORTAMENTO IMMOBILIZZAZIONI MATERIALI', 'H', '', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('650001', 'Ammortamento fabbricati', 'A', '3.B.10.b', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('650002', 'Ammortamento impianti e macchinari', 'A', '3.B.10.b', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('650003', 'Ammortamento attrezzature commerciali', 'A', '3.B.10.b', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('650005', 'Ammortamento attrezzature d\'ufficio', 'A', '3.B.10.b', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('650006', 'Ammortamento arredamento', 'A', '3.B.10.b', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('650007', 'Ammortamento automezzi', 'A', '3.B.10.b', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('651000', 'SVALUTAZIONI', 'H', '', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('651003', 'Svalutazione magazzino', 'A', '3.B.11', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('651004', 'Svalutazione crediti', 'A', '3.B.12', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('652000', 'ESISTENZA INIZIALE E RIMANENZE FINALI', 'H', '', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('652001', 'Esistenza iniziale merci', 'A', '3.A.2', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('652002', 'Esistenza iniziale imballaggi', 'A', '3.A.2', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('652003', 'Esistenza iniziale materie di consumo', 'A', '3.A.2', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('652011', 'Rimanenze finali merci', 'A', '3.A.2', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('652012', 'Rimanenze finali imballaggi', 'A', '3.A.2', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('652013', 'Rimanenze finali materie di consumo', 'A', '3.A.2', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('652021', 'Variazioni merci', 'A', '3.A.2', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('652022', 'Variazioni imballaggi', 'A', '3.A.2', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('652023', 'Variazioni materie di consumo', 'A', '3.A.2', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('653000', 'ACCANTONAMENTI PER RISCHI', 'H', '', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('653001', 'Accantonamenti per rischi su crediti', 'A', '3.B.12', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('653002', 'Accantonamenti su imposte', 'A', '3.B.13', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('653004', 'Altri accantonamenti rischi-oneri', 'A', '3.B.12', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('654000', 'ALTRI ACCANTONAMENTI', 'H', '', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('654001', 'Accantonamenti per spese future', 'A', '3.B.13', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('654005', 'Accantonamenti per manutenzioni e riparazioni', 'A', '3.B.13', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('654006', 'Altri accantonamenti', 'A', '3.B.13', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('655000', 'ONERI DIVERSI', 'H', '', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('655001', 'Imposta di bollo', 'A', '3.B.14', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('655002', 'Tassa di concessione governativa', 'A', '3.B.14', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('655003', 'Imposte comunali', 'A', '3.B.14', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('655005', 'Imposte di esercizio', 'A', '3.B.14', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('655006', 'Perdite su crediti', 'A', '3.B.14', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('655011', 'Oneri e perdite varie', 'A', '3.B.14', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('655012', 'Arrotondamenti negativi', 'A', '3.B.14', 'E', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('700000', 'PROVENTI E ONERI FINANZIARI', 'H', '', 'I', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('756000', 'PROVENTI FINANZIARI', 'A', '', 'I', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('756001', 'Interessi attivi da banche', 'A', '3.C.16.d', 'I', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('756002', 'Interessi attivi da clienti', 'A', '3.C.16.d', 'I', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('756003', 'Interessi attivi vari', 'A', '3.C.16.d', 'I', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('756004', 'Interessi su titoli', 'A', '3.C.16.d', 'I', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('756011', 'Proventi finanziari vari', 'A', '3.C.16.d', 'I', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('756012', 'Utile su titoli', 'A', '3.C.16.b', 'I', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('757000', 'ONERI FINANZIARI', 'H', '', 'I', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('757001', 'Interessi passivi a banche', 'A', '3.C.17', 'I', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('757002', 'Interessi passivi a fornitori', 'A', '3.C.17', 'I', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('757003', 'Interessi passivi su finanziamenti', 'A', '3.C.17', 'I', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('757004', 'Interessi passivi su mutui', 'A', '3.C.17', 'I', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('757005', 'Interessi passivi vari', 'A', '3.C.17', 'I', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('757011', 'Oneri finanziari vari', 'A', '3.C.17', 'I', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('757012', 'Perdite su titoli', 'A', '3.C.17', 'I', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('800000', 'PROVENTI E ONERI STRAORDINARI', 'H', '', 'I', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('860000', 'PROVENTI STRAORDINARI', 'H', '', 'I', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('860001', 'Plusvalenze', 'A', '3.E.20', 'I', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('860002', 'Sopravvenienze e insussistenze attive', 'A', '3.E.20', 'I', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('861000', 'ONERI STRAORDINARI', 'H', '', 'I', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('861001', 'Minusvalenze', 'A', '3.E.21', 'I', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('861002', 'Sopravvenienze e insussistenze passive', 'A', '3.E.21', 'I', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('900000', 'CONTI DI RIEPILOGO ECONOMICI', 'H', '', 'I', '');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('970001', 'Conto del risultato economico', 'A', '3.E.23', 'I', '');
+
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '112001'), 0.04);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '112002'), 0.1);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '112004'), 0.2);
+
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '226001'), 0.04);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '226002'), 0.1);
+INSERT INTO tax (chart_id, rate) VALUES ((SELECT id FROM chart WHERE accno = '226004'), 0.2);
+
+--
+-- update defaults
+--
+
+UPDATE DEFAULTS SET inventory_accno_id = (select id from chart where accno = '105001');
+UPDATE DEFAULTS SET income_accno_id = (select id from chart where accno = '541001');
+UPDATE DEFAULTS SET expense_accno_id = (select id from chart where accno = '645001');
+UPDATE DEFAULTS SET fxgain_accno_id = (select id from chart where accno = '756011');
+UPDATE DEFAULTS SET fxloss_accno_id = (select id from chart where accno = '655011');
+UPDATE DEFAULTS SET curr = 'EUR';
+UPDATE DEFAULTS SET weightunit = 'kg';
+
diff --git a/sql/Latvia-chart.sql b/sql/Latvia-chart.sql
new file mode 100755
index 00000000..0aeb6e32
--- /dev/null
+++ b/sql/Latvia-chart.sql
@@ -0,0 +1,253 @@
+-- Latvian COA
+-- prepared by Kaspars Melkis <info@isolis.lv>
+-- Sept. 14, 2003
+-- checked and edited Sept. 20, 2003, D. Simader
+--
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1','Ilgtermiòa ieguldîjumi','H','A','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2','Apgrozâmie lîdzekïi','H','A','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('11','Nemateriâlie ieguldîjumi','H','A','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('12','Pamatlîdzekïi','H','A','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1210','Zemes gabali, çkas, bûves, ilggadîgie stâdîjumi un citi nekustamâ îpaðuma objekti','A','A','IC','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1290','Pamatlîdzekïu nolietojums (pasîvâ)','A','A','IC','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('13','Ilgtermiòa finansu ieguldîjumi','H','A','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('21','Krâjumi','H','A','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2130','Gatavâs preces pârdoðanai','A','A','IC','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2310','Norçíini ar pircçjiem un pasûtîtâjiem','A','L','AP','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('23','Norçíini par prasîbâm (ar debitoriem)','H','I','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2350','Norçíini ar citiem debitoriem','A','A','AR_amount','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('26','Naudas lîdzekïi','H','A','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2610','Kase','A','A','AR_paid:AP_paid','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1380','Aizdevumi uzòçmuma dalîbniekiem un valdei','A','A','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1310','Lîdzdalîba meitas uzòçmumu kapitâlâ','A','A','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1340','Aizdevumi saistîtajiem uzòçmumiem','A','A','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1350','Pârçjie vçrtspapîri','A','A','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5','Kreditori','H','L','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1370','Paðu akcijas un daïas','A','A','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2210','Pieauguðie produktîvie lopi','A','A','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('3350','Statûtos paredzçtâs rezerves','A','Q','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2220','Jaunlopi un sîkie dzîvnieki','A','A','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2320','Par piegâdçm un pasûtîjumiem saòemtie vekseïi','A','A','IC','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2140','Nepabeigtie pasûtîjumi','A','A','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2370','Îstermiòa aizdevumi sabiedrîbâm dalîbniekiem un vadîbai','A','A','AP_paid','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1360','Pârçjie aizdevumi','A','A','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2120','Nepabeigtie raþojumi','A','A','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2330','Meitas uzòçmumu parâdi','A','A','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2340','Saistîto uzòçmumu parâdi','A','A','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2380','Norçíini par prasîbâm pret personâlu un îstermiòa aizdevumi personâlam','A','A','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2410','Nâkamo periodu izdevumi','A','A','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2420','Akciju emisijas nocenojums (disagio)','A','A','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('25','Vçrtspapîri apgrozâmo lîdzekïu sastâvâ un îstermiòa lîdzdalîba kapitâlos','H','A','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2510','Meitas uzòçmuma akcijas un daïas ','A','A','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2520','Saistîto uzòçmuma akcijas un daïas ','A','A','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2530','Paðu uzòçmuma akcijas un daïas ','A','A','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2540','Pârçjie vçrtspapîri un lîdzdalîba kapitâlos','A','A','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2640','Akreditîvi, èeki un îpaðu norçíina formu konti','A','A','AR_paid:AP_paid','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2650','Citi konti bankâs','A','A','AR_paid:AP_paid','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2670','Pârçjie naudas lîdzekïi','A','A','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('3','Paðu kapitâls','H','Q','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('3130','Ilgtermiòa ieguldîjuma pârvçrtçðanas rezerve','A','Q','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('3120','Akciju emisijas uzcenojums (agio)','A','Q','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('32','Privâtkonti','H','Q','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('3210','Privâtiem nolûkiem izòemtie lîdzekïi','A','Q','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('33','Rezerves ','H','Q','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('3310','Rezerves kapitâls','A','Q','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('3330','Citas likumâ paredzçtâs rezerves','A','Q','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('3340','Rezerves paðu akcijâm un daïâm','A','Q','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('3360','Pârçjâs rezerves','A','Q','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('34','Nesadalîtâ peïòa vai nesegtie zaudçjumi','H','Q','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('3410','Pârskata gada nesadalîtâ peïòa','A','Q','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('3420','Iepriekðçjo gadu nesadalîtâ peïòa','A','Q','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4','Uzkrâjumi','H','L','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4110','Uzkrâjumi pensijâm pielîdzinâtâm saistîbâm','A','L','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4310','Citi uzkrâjumi','A','L','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('41','Uzkrâjumi pensijâm pielîdzinâmâtâm saistîbâm','H','L','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('43','Citi uzkrâjumi','H','L','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('42','Uzkrâjumi paredzamiem nodokïiem','H','L','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('51','Norçíini par aizòçmumiem','H','L','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5110','Aizòçmumi pret obligâcijâm','A','L','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5120','Akcijâs pârvçðamie aizòçmumi','A','L','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5130','Aizòçmumi ar lîdzdalîbu peïòâ','A','L','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5140','Citi aizòçmumi','A','L','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5150','Îstermiòa aizòçmumi no kredîtiestâdçm','A','L','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5160','Ilgtermiòa aizòçmumi no kredîtiestâdçm','A','L','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5170','Aizòçmumi no kredîtiestâdçm bez norâdîtâ termiòa','A','L','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('52','Norçíini par saòemtajiem avansiem','H','L','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5210','Norçíini par saòemtiem avansiem','A','L','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('54','Maksâjamie vekseïi','H','L','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('53','Norçíini par piegâdâtâjiem un darbuzòçmçjiem','H','L','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5310','Norçíini par piegâdâtâjiem un darbuzòçmçjiem','A','L','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5410','Norçíini par paðu izdotajiem vekseïiem','A','L','AP_paid','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5510','Norçíini par parâdiem meitas uzòçmumiem','A','L','AP_paid','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5540','Norçíini par parâdiem citiem uzòçmumiem un dalîbniekiem','A','L','AP_paid','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5550','Norçíini par parâdiem personâlam','A','L','AP_paid','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5520','Norçíini par parâdiem saistîtiem uzòçmumiem','A','L','AP_paid','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5530','Norçíini par parâdiem uzòçmumiem, ar kuriem ir lîgums par lîdzdalîbu','A','L','AP_paid','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('57','Norçíini par nodokïiem','H','L','AP_amount','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('58','Norçíini par dividendçm','H','L','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('61','Ieòçmumi no pârdoðanas, kas apliekami ar nodokïiem vispârçjâ kârtîbâ','H','I','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('62','Ieòçmumi no pârdoðanas, kas citâdi apliekami ar nodokïiem','H','I','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('6220','Ar îpaðiem nodokïiem apliekamie pârdoðanas ieòçmumi','A','I','AR_amount:IC_income','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('63','Komisijas, starpniecîbas un citi ieòçmumi','H','I','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('6310','Komisijas un starpniecîbas ieòçmumi','A','I','IC_income','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('6320','Ieòçmumi no atkritumu pârstrâdes un realizâcijas','A','I','AR_amount:IC_income','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('6330','Ieòçmumi no taras realizâcijas','A','I','AR_amount:IC_income','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('6340','Ar nodokïiem neapliekamie apgrozîjumi','A','I','AR_amount:IC_income','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('64','Ieòçmumus samazinoðas atlaides','H','I','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('6410','Pieðíirtâs skonto atlaides','A','I','IC_income','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('6420','Pieðíirtie bonusi','A','I','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('59','Nâkamo periodu ieòçmumi','H','L','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('65','Pârçjie uzòçmuma ieòçmumi','H','I','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('6510','Ieòçmumi no vçrtspapîru kursa paaugstinâðanâs','A','I','AR_amount','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('6530','Ieòçmumi no zemes gabalu iznomâðanas','A','I','AR_amount','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('6540','Ieòçmumi no apgrozâmo lîdzekïu pârdoðanas','A','I','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('6550','Ieòçmumi no pamatlîdzekïu iznomâðanas','A','I','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('6560','Ieòçmumos pârskaitîtais rezervju un uzkrâjumu samazinâjums','A','I','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('6570','Iepriekðçjo gadu nodokïu samazinâjums','A','I','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('6580','Papildus ieguldîjumi un citi ieòçmumi','A','I','AR_amount','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('6590','Paðu uzòçmuma kapitâlieguldîjumiem izpildîtie darbi','A','I','AR_amount','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('67','Citu periodu ieòçmumi, kas attiecas uz pârskata periodu','H','I','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('6710','Citu periodu ieòçmumi, kas attiecas uz pârskata periodu','A','I','AR_amount','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('69','Sociâlâs infrastruktûras iestâþu un pasâkumu ieòçmumi','H','I','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('6930','Sadzîves paklpojumu ieòçmumi','A','I','IC_income','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('6920','Komunâlâs saimniecîbas ieòçmumi','A','I','IC_income','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('66','Gatavâs produkcijas un nepabeigto raþojumu krâjumu un vçrtîbas izmaiòas','H','I','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('6610','Gatavâs produkcijas krâjumu un vçrtîbas izmaiòas','A','I','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('6620','Nepabeigto raþojumu krâjumu un vçrtîbas izmaiòas','A','I','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('6630','Nepabeigto pasûtîjumu atlikumu un vçtîbas izmaiòas','A','I','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('6640','Produktîvo un darba dzîvnieku ganâmpulka vçrtîbas izmaiòas','A','I','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('6940','Sabiedriskâs çdinâðanas ieòçmumi','A','I','IC_income','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('6950','Izglîtîbas iestâþu ieòçmumi','A','I','IC_income','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('6960','Medicînas iestâþu ieòçmumi','A','I','IC_income','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('6970','Kultûras un sporta ietâþu un pasâkumu ieòçmumi','A','I','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('6980','Pârçjie sociâlâs infrastruktûras iestâþu un pasâkumu ieòçmumi','A','I','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7','Saimnieciskâs darbîbas izdevumi','H','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('71','Izdevumi izejvielu, materiâlu un preèu iepirkðanai','H','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7110','Izejvielu un materiâlu iepirkðanas un piegâdes izdevumi','A','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7120','Preèu iepirkðanas un piegâdes izdevumi','A','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7130','Saòemtâs atlaides','A','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7140','Taras izdevumi','A','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7150','Muitas un ievednodevas','A','E','AP_paid','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7160','Pârçjie ârçjie izdevumi','A','E','AP_paid','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7170','Samaksa par darbiem un pakalpojumiem no ârienes','A','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7190','Pirkto materiâlu un preèu krâjumu un vçrtîbas izmaiòas','A','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('72','Personâla izmaksas','H','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7210','Strâdnieku algas','A','E','AP_paid','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7230','Sociâlâs infrastruktûras iestâþu un pasâkumu darbinieku algas','A','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('73','Sociâlâs nodevas un izmaksas','H','I','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7320','Pârçjâs sociâlâs izmaksas','A','E','AP_tax','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('74','Pamatlîdzekïu nolietojums un citu ieguldîjumu vçrtîbas norakstîjumi','H','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7410','Nemateriâlo ieguldîjumu vçrtîbas norakstîðana','A','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('75','Pârçjie saimnieciskâs darbîbas izdevumi','H','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7510','Dabas aizsardzîbas izdevumi','A','E','AP_paid','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7530','Nodevas par raþoðanâ izmantotiem zemes gabaliem','A','E','AP_paid','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7440','Apgrozâmo lîdzekïu vçrtîbas norakstîðana','A','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7540','Apdroðinnâðanas maksâjumi (izòemot darbinieku apdroðinâðanu)','A','E','AP_paid','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7550','Pârçjie saimnieciskâs darbîbas izdevumi','A','E','AP_paid','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7560','Strâdnieku vervçðanas un apmâcîbas izdevumi','A','E','AP_paid','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('76','Preèu pârdoðanas izdevumi','H','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7610','Iesaiòojamais materiâls, tara','A','E','AP_paid','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7620','Preèu transporta izdevumi','A','E','AP_paid','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7630','Preèu transporta apdroðinâðana','A','E','AP_paid','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7640','Samaksâtâs komisijas naudas','A','E','AP_paid','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7650','Citi pârdoðanas izdevumi','A','E','AP_paid','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('77','Administrâcijas izdevumi','H','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7710','Sakaru izdevumi','A','E','AP_paid','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7720','Kantora (biroja) izdevumi','A','E','AP_paid','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7730','Juristu pakalpojumu apmaksa','A','E','AP_paid','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7740','Gada pârskata un revîzijas izdevumi','A','E','IC_expense','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7750','Naudas apgrozîjuma blakus izdevumi','A','E','IC_expense','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7760','Transporta izdevumi administrâcijas vajadzîbâm','A','E','IC_expense','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7770','Citi vadîðanas un administrâcijas izdevumi','A','E','IC_expense','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('78','Pârskata periodâ iekïaujamie iepriekðçjo periodu izdevumi','H','I','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7810','Pârskata periodâ iekïaujamie iepriekðçjo periodu izdevumi','A','E','IC_expense','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('79','Sociâlâs infrastruktûras uzturçðanas izdevumi','H','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7920','Komuâlâs saimniecîbas izdevumi','A','E','IC_expense','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7940','Sabiedriskâs çdinâðanas izdevumi','A','E','IC_expense','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7950','Izglîtîbas iestâþu izdevumi','A','E','IC_expense','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8','Daþâdi ieòçmumi un izdevumi, peïòa un zaudçjumi','H','Q','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('81','Daþâdi ieòçmumi','H','I','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8110','Ieòçmumi no lîdzdalîbas, vçrtspapîriem un aizdevumiem','A','I','IC_income','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8120','Pârçjie ieòçmumi no procentiem un tiem pielîdzinâmi ieòçmumi','A','I','IC_income','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7910','Dzîvokïu saimniecîbas izdevumi','A','E','AP_paid','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8130','Vekseïu diskonta ieòçmumi','A','I','IC_income','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8150','Ienâkumi no valûtas kursa paaugstinâðanâs','A','I','IC_income','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8160','Saòemtâs soda naudas un lîgumsodi','A','I','IC_income','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8170','Peïòa no ârzemju valûtas pârdoðanas vai pirkðanas','A','I','IC_income','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8190','Citi ieòçmumi','A','I','IC_income','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('82','Daþâdi izdevumi','H','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8210','Îstermiòa finansu ieguldîjumu vçrtîbas norakstîðana','A','E','IC_expense','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8220','Samaksâtie procenti un tiem pielîdzinâmie izdevumi','A','E','IC_expense','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8230','Vekseïu diskonta izmaksas','A','E','IC_expense','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8240','Ilgtermiòa aizdevumu procentu samaksa','A','E','IC_expense','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8260','Samaksâtâs soda naudas un lîgumsodi','A','E','IC_expense','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8270','Zaudçjumi no ârzemju valûtas pirkðanas un pârdoðanas','A','E','IC_expense','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8290','Citi izdevumi','A','E','IC_expense','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('83','Ârkârtas ieòçmumi','H','I','IC_income','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8310','Ârkârtas ieòçmumi','A','I','IC_income','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('84','Ârkârtas izdevumi','H','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8410','Ârkârtas izdevumi','A','E','IC_expense','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('86','Peïòa vai zaudçjumi','H','I','IC_income:IC_expense','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8610','Peïòa vai zaudçjumi','A','I','IC_income:IC_expense','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('3220','Privâtie ieguldîjumi','A','Q','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('6110','Ieòçmumi no pamatdarbîbas produkcijas un pakalpojumu pârdoðanas','A','I','AR_paid','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1220','Tehnoloìiskâs iekârtas un maðînas','A','A','IC','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1240','Pamatlîdzekïu izveidoðana un nepabeigto celtniecîbas objektu izmaksas','A','A','IC','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1320','Aizdevumi meitas uzòçmumam','A','A','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2110','Izejvielas un materiâli','A','A','AP','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2190','Avansa maksâjumi par precçm','A','A','AR','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1130','Uzòçmuma nemateriâlâ vçrtîba','A','A','IC','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1180','Avansa maksâjumi par nemateriâliem aktîviem','A','A','IC','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1190','Nemateriâlo ieguldîjumu vçrtîbas norakstîtâ daïa (pasîvâ)','A','A','IC','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('22','Produktîvie un darba dzîvnieki','H','A','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2230','Darba lopi','A','A','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2290','Darba lopu norakstîtâ vçrtîba (pasîvâ)','A','A','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2360','Norçíini par parakstîtâ sabiedrîbas kapitâlâ neiemaksâtâm summâm','A','A','AR_paid','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('24','Nâkamo periodu izdevumi','H','A','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2620','Norçíinu konti bankâ','A','A','AR_paid:AP_paid','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('3110','Pamatkapitâls vai lîdzdalîbas kapitâls','A','Q','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('55','Norçíini ar uzòçmumiem, dalîbniekiem un personâlu','H','L','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('56','Norçíini par darba samaksu un ieturçjumiem (izòemot nodokïus)','H','L','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5610','Norçíini par darba algu','A','E','AP_amount','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5620','Norçíini par ieturçjumiem no darba algas (izòemot nodokïus)','A','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5820','Norçíini par iepriekðçjo gadu neizmaksâtajâm dividendçm','A','L','AP_paid','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5810','Norçíini par pârskata gada dividendçm','A','L','AP_paid','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5910','Nâkamo periodu ieòçmumi','A','I','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('6','Ieòçmumi no uzòçmuma saimnieciskâs darbîbas','H','I','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('6210','Ar nodokïiem neapliekamie pârdoðanas ieòçmumi','A','I','AR_amount:IC_income','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('6430','Pieðíirtie rabati un citas tirdzniecîbas atlaides','A','I','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('6910','Dzîvokïu saimniecîbas ieòçmumi','A','I','AR_paid','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7180','Pârçjie materiâlie izdevumi (nodoklis par dabas resursu izmantoðanu, celmu nauda u.c.)','A','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7240','Pârçjâs personâla izmaksas','A','E','AP_paid','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7220','Pârvaldes personâla un administratîvâ personâla algas','A','E','AP_paid','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7420','Pamatlîdzekïu nolietojums','A','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7570','Komandçjuma izdevumi','A','E','AP_paid','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7930','Sadzîves pakalpojumu izdevumi','A','E','IC_expense','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7960','Medicîniskâs apkalpoðanas izdevumi','A','E','IC_expense','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7970','Kultûras un sporta iestâþu un pasâkumu izdevumi','A','E','IC_expense','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8140','Ziedojumi un citi tiem pielîdzinâmi ieòçmumi','A','I','IC_income','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8250','Zaudçjumi no valûtu kursa pazeminâðanâs','A','E','IC_expense','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7980','Pârçjie sociâlâs infrastruktûras uzturçðanas izdevumi','A','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('87','Peïòas izlietojums (bez nodokïiem)','H','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('88','Nodoïi no peïòas un citi saimnieciskâs darbîbas izdevumos neiekïaujamie nodokïi','H','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1110','Pçtniecîbas un uzòçmuma attîstîbas izmaksas','A','A','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1120','Koncesijas, patenti, licences, tirdzniecîbas zîmes un lîdzîgas tiesîbas; datoru programmas','A','A','IC','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1230','Pârçjie pamatlîdzekïi un inventârs','A','A','IC','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5710','Norçíini par peïòas nodokli','A','L','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2390','Pârmaksâtie nodokïi, iepriekð samaksâtie nodokïi','A','A','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('4210','Uzkrâjumi paredzamiem nodokïiem','A','L','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('5720','Norçíini par citiem nodokïiem, nodevâm un maksâjumiem budþetam','A','L','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('7310','Sociâlais nodoklis','A','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8710','Peïòas izlietojums','A','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8830','Nodoklis par zemi','A','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8840','Citi saimnieciskâs darbîbas izmaksâs neiekïaujamie nodokïi','A','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8820','Nodoklis par dabas resursu izmantoðanu no peïòas maksâjamâ daïâ','A','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('8810','Nodoklis no peïòas','A','E','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('1330','Lîdzdalîbas saistîto uzòçmumu kapitâlâ','A','A','','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2354','PVN samaksâts 18%','A','E','AP_tax:IC_taxpart:IC_taxservice','');
+INSERT INTO chart (accno,description,charttype,category,link,gifi_accno) VALUES ('2352','PVN ieòemtais 18%','A','L','AR_tax:IC_taxpart:IC_taxservice','');
+--
+INSERT INTO tax (chart_id,rate,taxnumber) VALUES ((SELECT id FROM chart where accno = '2352'),'0.18','');
+INSERT INTO tax (chart_id,rate,taxnumber) VALUES ((SELECT id FROM chart where accno = '2354'),'0.18','');
+--
+update defaults set inventory_accno_id = (select id from chart where accno = '1230'), income_accno_id = (select id from chart where accno = '6010'), expense_accno_id = (select id from chart where accno = '7110'), fxgain_accno_id = (select id from chart where accno = '8170'), fxloss_accno_id = (select id from chart where accno = '8270'), curr = 'LVL', weightunit = 'kg';
+
diff --git a/sql/NAICS.sql b/sql/NAICS.sql
new file mode 100755
index 00000000..3fd3f632
--- /dev/null
+++ b/sql/NAICS.sql
@@ -0,0 +1,2345 @@
+-- 1997 NAICS
+-- leave it SIC (Standard Industrial Code)
+-- useful for other countries too
+--
+INSERT INTO sic (code,description) VALUES ('11','Agriculture, Forestry, Fishing and Hunting');
+INSERT INTO sic (code,description) VALUES ('111','Crop Production');
+INSERT INTO sic (code,description) VALUES ('1111','Oilseed and Grain Farming');
+INSERT INTO sic (code,description) VALUES ('11111','Soybean Farming');
+INSERT INTO sic (code,description) VALUES ('111110','Soybean Farming');
+INSERT INTO sic (code,description) VALUES ('11112','Oilseed (except Soybean) Farming');
+INSERT INTO sic (code,description) VALUES ('111120','Oilseed (except Soybean) Farming');
+INSERT INTO sic (code,description) VALUES ('11113','Dry Pea and Bean Farming');
+INSERT INTO sic (code,description) VALUES ('111130','Dry Pea and Bean Farming');
+INSERT INTO sic (code,description) VALUES ('11114','Wheat Farming');
+INSERT INTO sic (code,description) VALUES ('111140','Wheat Farming');
+INSERT INTO sic (code,description) VALUES ('11115','Corn Farming');
+INSERT INTO sic (code,description) VALUES ('111150','Corn Farming');
+INSERT INTO sic (code,description) VALUES ('11116','Rice Farming');
+INSERT INTO sic (code,description) VALUES ('111160','Rice Farming');
+INSERT INTO sic (code,description) VALUES ('11119','Other Grain Farming');
+INSERT INTO sic (code,description) VALUES ('111191','Oilseed and Grain Combination Farming');
+INSERT INTO sic (code,description) VALUES ('111199','All Other Grain Farming');
+INSERT INTO sic (code,description) VALUES ('1112','Vegetable and Melon Farming');
+INSERT INTO sic (code,description) VALUES ('11121','Vegetable and Melon Farming');
+INSERT INTO sic (code,description) VALUES ('111211','Potato Farming');
+INSERT INTO sic (code,description) VALUES ('111219','Other Vegetable (except Potato) and Melon Farming');
+INSERT INTO sic (code,description) VALUES ('1113','Fruit and Tree Nut Farming');
+INSERT INTO sic (code,description) VALUES ('11131','Orange Groves');
+INSERT INTO sic (code,description) VALUES ('111310','Orange Groves');
+INSERT INTO sic (code,description) VALUES ('11132','Citrus (except Orange) Groves');
+INSERT INTO sic (code,description) VALUES ('111320','Citrus (except Orange) Groves');
+INSERT INTO sic (code,description) VALUES ('11133','Noncitrus Fruit and Tree Nut Farming');
+INSERT INTO sic (code,description) VALUES ('111331','Apple Orchards');
+INSERT INTO sic (code,description) VALUES ('111332','Grape Vineyards');
+INSERT INTO sic (code,description) VALUES ('111333','Strawberry Farming');
+INSERT INTO sic (code,description) VALUES ('111334','Berry (except Strawberry) Farming');
+INSERT INTO sic (code,description) VALUES ('111335','Tree Nut Farming');
+INSERT INTO sic (code,description) VALUES ('111336','Fruit and Tree Nut Combination Farming');
+INSERT INTO sic (code,description) VALUES ('111339','Other Noncitrus Fruit Farming');
+INSERT INTO sic (code,description) VALUES ('1114','Greenhouse, Nursery, and Floriculture Production');
+INSERT INTO sic (code,description) VALUES ('11141','Food Crops Grown Under Cover');
+INSERT INTO sic (code,description) VALUES ('111411','Mushroom Production');
+INSERT INTO sic (code,description) VALUES ('111419','Other Food Crops Grown Under Cover');
+INSERT INTO sic (code,description) VALUES ('11142','Nursery and Floriculture Production');
+INSERT INTO sic (code,description) VALUES ('111421','Nursery and Tree Production');
+INSERT INTO sic (code,description) VALUES ('111422','Floriculture Production');
+INSERT INTO sic (code,description) VALUES ('1119','Other Crop Farming');
+INSERT INTO sic (code,description) VALUES ('11191','Tobacco Farming');
+INSERT INTO sic (code,description) VALUES ('111910','Tobacco Farming');
+INSERT INTO sic (code,description) VALUES ('11192','Cotton Farming');
+INSERT INTO sic (code,description) VALUES ('111920','Cotton Farming');
+INSERT INTO sic (code,description) VALUES ('11193','Sugarcane Farming');
+INSERT INTO sic (code,description) VALUES ('111930','Sugarcane Farming');
+INSERT INTO sic (code,description) VALUES ('11194','Hay Farming');
+INSERT INTO sic (code,description) VALUES ('111940','Hay Farming');
+INSERT INTO sic (code,description) VALUES ('11199','All Other Crop Farming');
+INSERT INTO sic (code,description) VALUES ('111991','Sugar Beet Farming');
+INSERT INTO sic (code,description) VALUES ('111992','Peanut Farming');
+INSERT INTO sic (code,description) VALUES ('111998','All Other Miscellaneous Crop Farming');
+INSERT INTO sic (code,description) VALUES ('112','Animal Production');
+INSERT INTO sic (code,description) VALUES ('1121','Cattle Ranching and Farming');
+INSERT INTO sic (code,description) VALUES ('11211','Beef Cattle Ranching and Farming, including Feedlots');
+INSERT INTO sic (code,description) VALUES ('112111','Beef Cattle Ranching and Farming');
+INSERT INTO sic (code,description) VALUES ('112112','Cattle Feedlots');
+INSERT INTO sic (code,description) VALUES ('11212','Dairy Cattle and Milk Production');
+INSERT INTO sic (code,description) VALUES ('112120','Dairy Cattle and Milk Production');
+INSERT INTO sic (code,description) VALUES ('11213','Dual-Purpose Cattle Ranching and Farming');
+INSERT INTO sic (code,description) VALUES ('112130','Dual-Purpose Cattle Ranching and Farming');
+INSERT INTO sic (code,description) VALUES ('1122','Hog and Pig Farming');
+INSERT INTO sic (code,description) VALUES ('11221','Hog and Pig Farming');
+INSERT INTO sic (code,description) VALUES ('112210','Hog and Pig Farming');
+INSERT INTO sic (code,description) VALUES ('1123','Poultry and Egg Production');
+INSERT INTO sic (code,description) VALUES ('11231','Chicken Egg Production');
+INSERT INTO sic (code,description) VALUES ('112310','Chicken Egg Production');
+INSERT INTO sic (code,description) VALUES ('11232','Broilers and Other Meat Type Chicken Production');
+INSERT INTO sic (code,description) VALUES ('112320','Broilers and Other Meat Type Chicken Production');
+INSERT INTO sic (code,description) VALUES ('11233','Turkey Production');
+INSERT INTO sic (code,description) VALUES ('112330','Turkey Production');
+INSERT INTO sic (code,description) VALUES ('11234','Poultry Hatcheries');
+INSERT INTO sic (code,description) VALUES ('112340','Poultry Hatcheries');
+INSERT INTO sic (code,description) VALUES ('11239','Other Poultry Production');
+INSERT INTO sic (code,description) VALUES ('112390','Other Poultry Production');
+INSERT INTO sic (code,description) VALUES ('1124','Sheep and Goat Farming');
+INSERT INTO sic (code,description) VALUES ('11241','Sheep Farming');
+INSERT INTO sic (code,description) VALUES ('112410','Sheep Farming');
+INSERT INTO sic (code,description) VALUES ('11242','Goat Farming');
+INSERT INTO sic (code,description) VALUES ('112420','Goat Farming');
+INSERT INTO sic (code,description) VALUES ('1125','Animal Aquaculture');
+INSERT INTO sic (code,description) VALUES ('11251','Animal Aquaculture');
+INSERT INTO sic (code,description) VALUES ('112511','Finfish Farming and Fish Hatcheries');
+INSERT INTO sic (code,description) VALUES ('112512','Shellfish Farming');
+INSERT INTO sic (code,description) VALUES ('112519','Other Animal Aquaculture');
+INSERT INTO sic (code,description) VALUES ('1129','Other Animal Production');
+INSERT INTO sic (code,description) VALUES ('11291','Apiculture');
+INSERT INTO sic (code,description) VALUES ('112910','Apiculture');
+INSERT INTO sic (code,description) VALUES ('11292','Horses and Other Equine Production');
+INSERT INTO sic (code,description) VALUES ('112920','Horses and Other Equine Production');
+INSERT INTO sic (code,description) VALUES ('11293','Fur-Bearing Animal and Rabbit Production');
+INSERT INTO sic (code,description) VALUES ('112930','Fur-Bearing Animal and Rabbit Production');
+INSERT INTO sic (code,description) VALUES ('11299','All Other Animal Production');
+INSERT INTO sic (code,description) VALUES ('112990','All Other Animal Production');
+INSERT INTO sic (code,description) VALUES ('113','Forestry and Logging');
+INSERT INTO sic (code,description) VALUES ('1131','Timber Tract Operations');
+INSERT INTO sic (code,description) VALUES ('11311','Timber Tract Operations');
+INSERT INTO sic (code,description) VALUES ('113110','Timber Tract Operations');
+INSERT INTO sic (code,description) VALUES ('1132','Forest Nurseries and Gathering of Forest Products');
+INSERT INTO sic (code,description) VALUES ('11321','Forest Nurseries and Gathering of Forest Products');
+INSERT INTO sic (code,description) VALUES ('113210','Forest Nurseries and Gathering of Forest Products');
+INSERT INTO sic (code,description) VALUES ('1133','Logging');
+INSERT INTO sic (code,description) VALUES ('11331','Logging');
+INSERT INTO sic (code,description) VALUES ('113310','Logging');
+INSERT INTO sic (code,description) VALUES ('114','Fishing, Hunting and Trapping');
+INSERT INTO sic (code,description) VALUES ('1141','Fishing');
+INSERT INTO sic (code,description) VALUES ('11411','Fishing');
+INSERT INTO sic (code,description) VALUES ('114111','Finfish Fishing');
+INSERT INTO sic (code,description) VALUES ('114112','Shellfish Fishing');
+INSERT INTO sic (code,description) VALUES ('114119','Other Marine Fishing');
+INSERT INTO sic (code,description) VALUES ('1142','Hunting and Trapping');
+INSERT INTO sic (code,description) VALUES ('11421','Hunting and Trapping');
+INSERT INTO sic (code,description) VALUES ('114210','Hunting and Trapping');
+INSERT INTO sic (code,description) VALUES ('115','Support Activities for Agriculture and Forestry');
+INSERT INTO sic (code,description) VALUES ('1151','Support Activities for Crop Production');
+INSERT INTO sic (code,description) VALUES ('11511','Support Activities for Crop Production');
+INSERT INTO sic (code,description) VALUES ('115111','Cotton Ginning');
+INSERT INTO sic (code,description) VALUES ('115112','Soil Preparation, Planting, and Cultivating');
+INSERT INTO sic (code,description) VALUES ('115113','Crop Harvesting, Primarily by Machine');
+INSERT INTO sic (code,description) VALUES ('115114','Postharvest Crop Activities (except Cotton Ginning)');
+INSERT INTO sic (code,description) VALUES ('115115','Farm Labor Contractors and Crew Leaders');
+INSERT INTO sic (code,description) VALUES ('115116','Farm Management Services');
+INSERT INTO sic (code,description) VALUES ('1152','Support Activities for Animal Production');
+INSERT INTO sic (code,description) VALUES ('11521','Support Activities for Animal Production');
+INSERT INTO sic (code,description) VALUES ('115210','Support Activities for Animal Production');
+INSERT INTO sic (code,description) VALUES ('1153','Support Activities for Forestry');
+INSERT INTO sic (code,description) VALUES ('11531','Support Activities for Forestry');
+INSERT INTO sic (code,description) VALUES ('115310','Support Activities for Forestry');
+INSERT INTO sic (code,description) VALUES ('21','Mining');
+INSERT INTO sic (code,description) VALUES ('211','Oil and Gas Extraction');
+INSERT INTO sic (code,description) VALUES ('2111','Oil and Gas Extraction');
+INSERT INTO sic (code,description) VALUES ('21111','Oil and Gas Extraction');
+INSERT INTO sic (code,description) VALUES ('211111','Crude Petroleum and Natural Gas Extraction');
+INSERT INTO sic (code,description) VALUES ('211112','Natural Gas Liquid Extraction');
+INSERT INTO sic (code,description) VALUES ('212','Mining (except Oil and Gas)');
+INSERT INTO sic (code,description) VALUES ('2121','Coal Mining');
+INSERT INTO sic (code,description) VALUES ('21211','Coal Mining');
+INSERT INTO sic (code,description) VALUES ('212111','Bituminous Coal and Lignite Surface Mining');
+INSERT INTO sic (code,description) VALUES ('212112','Bituminous Coal Underground Mining');
+INSERT INTO sic (code,description) VALUES ('212113','Anthracite Mining');
+INSERT INTO sic (code,description) VALUES ('2122','Metal Ore Mining');
+INSERT INTO sic (code,description) VALUES ('21221','Iron Ore Mining');
+INSERT INTO sic (code,description) VALUES ('212210','Iron Ore Mining');
+INSERT INTO sic (code,description) VALUES ('21222','Gold Ore and Silver Ore Mining');
+INSERT INTO sic (code,description) VALUES ('212221','Gold Ore Mining');
+INSERT INTO sic (code,description) VALUES ('212222','Silver Ore Mining');
+INSERT INTO sic (code,description) VALUES ('21223','Copper, Nickel, Lead, and Zinc Mining');
+INSERT INTO sic (code,description) VALUES ('212231','Lead Ore and Zinc Ore Mining');
+INSERT INTO sic (code,description) VALUES ('212234','Copper Ore and Nickel Ore Mining');
+INSERT INTO sic (code,description) VALUES ('21229','Other Metal Ore Mining');
+INSERT INTO sic (code,description) VALUES ('212291','Uranium-Radium-Vanadium Ore Mining');
+INSERT INTO sic (code,description) VALUES ('212299','All Other Metal Ore Mining');
+INSERT INTO sic (code,description) VALUES ('2123','Nonmetallic Mineral Mining and Quarrying');
+INSERT INTO sic (code,description) VALUES ('21231','Stone Mining and Quarrying');
+INSERT INTO sic (code,description) VALUES ('212311','Dimension Stone Mining and Quarrying');
+INSERT INTO sic (code,description) VALUES ('212312','Crushed and Broken Limestone Mining and Quarrying');
+INSERT INTO sic (code,description) VALUES ('212313','Crushed and Broken Granite Mining and Quarrying');
+INSERT INTO sic (code,description) VALUES ('212319','Other Crushed and Broken Stone Mining and Quarrying');
+INSERT INTO sic (code,description) VALUES ('21232','Sand, Gravel, Clay, and Ceramic and Refractory Minerals Mining and Quarrying');
+INSERT INTO sic (code,description) VALUES ('212321','Construction Sand and Gravel Mining');
+INSERT INTO sic (code,description) VALUES ('212322','Industrial Sand Mining');
+INSERT INTO sic (code,description) VALUES ('212324','Kaolin and Ball Clay Mining');
+INSERT INTO sic (code,description) VALUES ('212325','Clay and Ceramic and Refractory Minerals Mining');
+INSERT INTO sic (code,description) VALUES ('21239','Other Nonmetallic Mineral Mining and Quarrying');
+INSERT INTO sic (code,description) VALUES ('212391','Potash, Soda, and Borate Mineral Mining');
+INSERT INTO sic (code,description) VALUES ('212392','Phosphate Rock Mining');
+INSERT INTO sic (code,description) VALUES ('212393','Other Chemical and Fertilizer Mineral Mining');
+INSERT INTO sic (code,description) VALUES ('212399','All Other Nonmetallic Mineral Mining');
+INSERT INTO sic (code,description) VALUES ('213','Support Activities for Mining');
+INSERT INTO sic (code,description) VALUES ('2131','Support Activities for Mining');
+INSERT INTO sic (code,description) VALUES ('21311','Support Activities for Mining');
+INSERT INTO sic (code,description) VALUES ('213111','Drilling Oil and Gas Wells');
+INSERT INTO sic (code,description) VALUES ('213112','Support Activities for Oil and Gas Operations');
+INSERT INTO sic (code,description) VALUES ('213113','Support Activities for Coal Mining');
+INSERT INTO sic (code,description) VALUES ('213114','Support Activities for Metal Mining');
+INSERT INTO sic (code,description) VALUES ('213115','Support Activities for Nonmetallic Minerals (except Fuels)');
+INSERT INTO sic (code,description) VALUES ('22','Utilities');
+INSERT INTO sic (code,description) VALUES ('221','Utilities');
+INSERT INTO sic (code,description) VALUES ('2211','Electric Power Generation, Transmission and Distribution');
+INSERT INTO sic (code,description) VALUES ('22111','Electric Power Generation');
+INSERT INTO sic (code,description) VALUES ('221111','Hydroelectric Power Generation');
+INSERT INTO sic (code,description) VALUES ('221112','Fossil Fuel Electric Power Generation');
+INSERT INTO sic (code,description) VALUES ('221113','Nuclear Electric Power Generation');
+INSERT INTO sic (code,description) VALUES ('221119','Other Electric Power Generation');
+INSERT INTO sic (code,description) VALUES ('22112','Electric Power Transmission, Control, and Distribution');
+INSERT INTO sic (code,description) VALUES ('221121','Electric Bulk Power Transmission and Control');
+INSERT INTO sic (code,description) VALUES ('221122','Electric Power Distribution');
+INSERT INTO sic (code,description) VALUES ('2212','Natural Gas Distribution');
+INSERT INTO sic (code,description) VALUES ('22121','Natural Gas Distribution');
+INSERT INTO sic (code,description) VALUES ('221210','Natural Gas Distribution');
+INSERT INTO sic (code,description) VALUES ('2213','Water, Sewage and Other Systems');
+INSERT INTO sic (code,description) VALUES ('22131','Water Supply and Irrigation Systems');
+INSERT INTO sic (code,description) VALUES ('221310','Water Supply and Irrigation Systems');
+INSERT INTO sic (code,description) VALUES ('22132','Sewage Treatment Facilities');
+INSERT INTO sic (code,description) VALUES ('221320','Sewage Treatment Facilities');
+INSERT INTO sic (code,description) VALUES ('22133','Steam and Air-Conditioning Supply');
+INSERT INTO sic (code,description) VALUES ('221330','Steam and Air-Conditioning Supply');
+INSERT INTO sic (code,description) VALUES ('23','Construction');
+INSERT INTO sic (code,description) VALUES ('236','Construction of Buildings');
+INSERT INTO sic (code,description) VALUES ('2361','Residential Building Construction');
+INSERT INTO sic (code,description) VALUES ('23611','Residential Building Construction');
+INSERT INTO sic (code,description) VALUES ('236115','New Single-Family Housing Construction (except Operative Builders)');
+INSERT INTO sic (code,description) VALUES ('236116','New Multifamily Housing Construction (except Operative Builders)');
+INSERT INTO sic (code,description) VALUES ('236117','New Housing Operative Builders');
+INSERT INTO sic (code,description) VALUES ('236118','Residential Remodelers');
+INSERT INTO sic (code,description) VALUES ('2362','Nonresidential Building Construction');
+INSERT INTO sic (code,description) VALUES ('23621','Industrial Building Construction');
+INSERT INTO sic (code,description) VALUES ('236210','Industrial Building Construction');
+INSERT INTO sic (code,description) VALUES ('23622','Commercial and Institutional Building Construction');
+INSERT INTO sic (code,description) VALUES ('236220','Commercial and Institutional Building Construction');
+INSERT INTO sic (code,description) VALUES ('237','Heavy and Civil Engineering Construction');
+INSERT INTO sic (code,description) VALUES ('2371','Utility System Construction');
+INSERT INTO sic (code,description) VALUES ('23711','Water and Sewer Line and Related Structures Construction');
+INSERT INTO sic (code,description) VALUES ('237110','Water and Sewer Line and Related Structures Construction');
+INSERT INTO sic (code,description) VALUES ('23712','Oil and Gas Pipeline and Related Structures Construction');
+INSERT INTO sic (code,description) VALUES ('237120','Oil and Gas Pipeline and Related Structures Construction');
+INSERT INTO sic (code,description) VALUES ('23713','Power and Communication Line and Related Structures Construction');
+INSERT INTO sic (code,description) VALUES ('237130','Power and Communication Line and Related Structures Construction');
+INSERT INTO sic (code,description) VALUES ('2372','Land Subdivision');
+INSERT INTO sic (code,description) VALUES ('23721','Land Subdivision');
+INSERT INTO sic (code,description) VALUES ('237210','Land Subdivision');
+INSERT INTO sic (code,description) VALUES ('2373','Highway, Street, and Bridge Construction');
+INSERT INTO sic (code,description) VALUES ('23731','Highway, Street, and Bridge Construction');
+INSERT INTO sic (code,description) VALUES ('237310','Highway, Street, and Bridge Construction');
+INSERT INTO sic (code,description) VALUES ('2379','Other Heavy and Civil Engineering Construction');
+INSERT INTO sic (code,description) VALUES ('23799','Other Heavy and Civil Engineering Construction');
+INSERT INTO sic (code,description) VALUES ('237990','Other Heavy and Civil Engineering Construction');
+INSERT INTO sic (code,description) VALUES ('238','Specialty Trade Contractors');
+INSERT INTO sic (code,description) VALUES ('2381','Foundation, Structure, and Building Exterior Contractors');
+INSERT INTO sic (code,description) VALUES ('23811','Poured Concrete Foundation and Structure Contractors');
+INSERT INTO sic (code,description) VALUES ('238110','Poured Concrete Foundation and Structure Contractors');
+INSERT INTO sic (code,description) VALUES ('23812','Structural Steel and Precast Concrete Contractors');
+INSERT INTO sic (code,description) VALUES ('238120','Structural Steel and Precast Concrete Contractors');
+INSERT INTO sic (code,description) VALUES ('23813','Framing Contractors');
+INSERT INTO sic (code,description) VALUES ('238130','Framing Contractors');
+INSERT INTO sic (code,description) VALUES ('23814','Masonry Contractors');
+INSERT INTO sic (code,description) VALUES ('238140','Masonry Contractors');
+INSERT INTO sic (code,description) VALUES ('23815','Glass and Glazing Contractors');
+INSERT INTO sic (code,description) VALUES ('238150','Glass and Glazing Contractors');
+INSERT INTO sic (code,description) VALUES ('23816','Roofing Contractors');
+INSERT INTO sic (code,description) VALUES ('238160','Roofing Contractors');
+INSERT INTO sic (code,description) VALUES ('23817','Siding Contractors');
+INSERT INTO sic (code,description) VALUES ('238170','Siding Contractors');
+INSERT INTO sic (code,description) VALUES ('23819','Other Foundation, Structure, and Building Exterior Contractors');
+INSERT INTO sic (code,description) VALUES ('238190','Other Foundation, Structure, and Building Exterior Contractors');
+INSERT INTO sic (code,description) VALUES ('2382','Building Equipment Contractors');
+INSERT INTO sic (code,description) VALUES ('23821','Electrical Contractors');
+INSERT INTO sic (code,description) VALUES ('238210','Electrical Contractors');
+INSERT INTO sic (code,description) VALUES ('23822','Plumbing, Heating, and Air-Conditioning Contractors');
+INSERT INTO sic (code,description) VALUES ('238220','Plumbing, Heating, and Air-Conditioning Contractors');
+INSERT INTO sic (code,description) VALUES ('23829','Other Building Equipment Contractors');
+INSERT INTO sic (code,description) VALUES ('238290','Other Building Equipment Contractors');
+INSERT INTO sic (code,description) VALUES ('2383','Building Finishing Contractors');
+INSERT INTO sic (code,description) VALUES ('23831','Drywall and Insulation Contractors');
+INSERT INTO sic (code,description) VALUES ('238310','Drywall and Insulation Contractors');
+INSERT INTO sic (code,description) VALUES ('23832','Painting and Wall Covering Contractors');
+INSERT INTO sic (code,description) VALUES ('238320','Painting and Wall Covering Contractors');
+INSERT INTO sic (code,description) VALUES ('23833','Flooring Contractors');
+INSERT INTO sic (code,description) VALUES ('238330','Flooring Contractors');
+INSERT INTO sic (code,description) VALUES ('23834','Tile and Terrazzo Contractors');
+INSERT INTO sic (code,description) VALUES ('238340','Tile and Terrazzo Contractors');
+INSERT INTO sic (code,description) VALUES ('23835','Finish Carpentry Contractors');
+INSERT INTO sic (code,description) VALUES ('238350','Finish Carpentry Contractors');
+INSERT INTO sic (code,description) VALUES ('23839','Other Building Finishing Contractors');
+INSERT INTO sic (code,description) VALUES ('238390','Other Building Finishing Contractors');
+INSERT INTO sic (code,description) VALUES ('2389','Other Specialty Trade Contractors');
+INSERT INTO sic (code,description) VALUES ('23891','Site Preparation Contractors');
+INSERT INTO sic (code,description) VALUES ('238910','Site Preparation Contractors');
+INSERT INTO sic (code,description) VALUES ('23899','All Other Specialty Trade Contractors');
+INSERT INTO sic (code,description) VALUES ('238990','All Other Specialty Trade Contractors');
+INSERT INTO sic (code,description) VALUES ('31-33','Manufacturing');
+INSERT INTO sic (code,description) VALUES ('311','Food Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3111','Animal Food Manufacturing');
+INSERT INTO sic (code,description) VALUES ('31111','Animal Food Manufacturing');
+INSERT INTO sic (code,description) VALUES ('311111','Dog and Cat Food Manufacturing');
+INSERT INTO sic (code,description) VALUES ('311119','Other Animal Food Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3112','Grain and Oilseed Milling');
+INSERT INTO sic (code,description) VALUES ('31121','Flour Milling and Malt Manufacturing');
+INSERT INTO sic (code,description) VALUES ('311211','Flour Milling');
+INSERT INTO sic (code,description) VALUES ('311212','Rice Milling');
+INSERT INTO sic (code,description) VALUES ('311213','Malt Manufacturing');
+INSERT INTO sic (code,description) VALUES ('31122','Starch and Vegetable Fats and Oils Manufacturing');
+INSERT INTO sic (code,description) VALUES ('311221','Wet Corn Milling');
+INSERT INTO sic (code,description) VALUES ('311222','Soybean Processing');
+INSERT INTO sic (code,description) VALUES ('311223','Other Oilseed Processing');
+INSERT INTO sic (code,description) VALUES ('311225','Fats and Oils Refining and Blending');
+INSERT INTO sic (code,description) VALUES ('31123','Breakfast Cereal Manufacturing');
+INSERT INTO sic (code,description) VALUES ('311230','Breakfast Cereal Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3113','Sugar and Confectionery Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('31131','Sugar Manufacturing');
+INSERT INTO sic (code,description) VALUES ('311311','Sugarcane Mills');
+INSERT INTO sic (code,description) VALUES ('311312','Cane Sugar Refining');
+INSERT INTO sic (code,description) VALUES ('311313','Beet Sugar Manufacturing');
+INSERT INTO sic (code,description) VALUES ('31132','Chocolate and Confectionery Manufacturing from Cacao Beans');
+INSERT INTO sic (code,description) VALUES ('311320','Chocolate and Confectionery Manufacturing from Cacao Beans');
+INSERT INTO sic (code,description) VALUES ('31133','Confectionery Manufacturing from Purchased Chocolate');
+INSERT INTO sic (code,description) VALUES ('311330','Confectionery Manufacturing from Purchased Chocolate');
+INSERT INTO sic (code,description) VALUES ('31134','Nonchocolate Confectionery Manufacturing');
+INSERT INTO sic (code,description) VALUES ('311340','Nonchocolate Confectionery Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3114','Fruit and Vegetable Preserving and Specialty Food Manufacturing');
+INSERT INTO sic (code,description) VALUES ('31141','Frozen Food Manufacturing');
+INSERT INTO sic (code,description) VALUES ('311411','Frozen Fruit, Juice, and Vegetable Manufacturing');
+INSERT INTO sic (code,description) VALUES ('311412','Frozen Specialty Food Manufacturing');
+INSERT INTO sic (code,description) VALUES ('31142','Fruit and Vegetable Canning, Pickling, and Drying');
+INSERT INTO sic (code,description) VALUES ('311421','Fruit and Vegetable Canning');
+INSERT INTO sic (code,description) VALUES ('311422','Specialty Canning');
+INSERT INTO sic (code,description) VALUES ('311423','Dried and Dehydrated Food Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3115','Dairy Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('31151','Dairy Product (except Frozen) Manufacturing');
+INSERT INTO sic (code,description) VALUES ('311511','Fluid Milk Manufacturing');
+INSERT INTO sic (code,description) VALUES ('311512','Creamery Butter Manufacturing');
+INSERT INTO sic (code,description) VALUES ('311513','Cheese Manufacturing');
+INSERT INTO sic (code,description) VALUES ('311514','Dry, Condensed, and Evaporated Dairy Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('31152','Ice Cream and Frozen Dessert Manufacturing');
+INSERT INTO sic (code,description) VALUES ('311520','Ice Cream and Frozen Dessert Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3116','Animal Slaughtering and Processing');
+INSERT INTO sic (code,description) VALUES ('31161','Animal Slaughtering and Processing');
+INSERT INTO sic (code,description) VALUES ('311611','Animal (except Poultry) Slaughtering');
+INSERT INTO sic (code,description) VALUES ('311612','Meat Processed from Carcasses');
+INSERT INTO sic (code,description) VALUES ('311613','Rendering and Meat Byproduct Processing');
+INSERT INTO sic (code,description) VALUES ('311615','Poultry Processing');
+INSERT INTO sic (code,description) VALUES ('3117','Seafood Product Preparation and Packaging');
+INSERT INTO sic (code,description) VALUES ('31171','Seafood Product Preparation and Packaging');
+INSERT INTO sic (code,description) VALUES ('311711','Seafood Canning');
+INSERT INTO sic (code,description) VALUES ('311712','Fresh and Frozen Seafood Processing');
+INSERT INTO sic (code,description) VALUES ('3118','Bakeries and Tortilla Manufacturing');
+INSERT INTO sic (code,description) VALUES ('31181','Bread and Bakery Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('311811','Retail Bakeries');
+INSERT INTO sic (code,description) VALUES ('311812','Commercial Bakeries');
+INSERT INTO sic (code,description) VALUES ('311813','Frozen Cakes, Pies, and Other Pastries Manufacturing');
+INSERT INTO sic (code,description) VALUES ('31182','Cookie, Cracker, and Pasta Manufacturing');
+INSERT INTO sic (code,description) VALUES ('311821','Cookie and Cracker Manufacturing');
+INSERT INTO sic (code,description) VALUES ('311822','Flour Mixes and Dough Manufacturing from Purchased Flour');
+INSERT INTO sic (code,description) VALUES ('311823','Dry Pasta Manufacturing');
+INSERT INTO sic (code,description) VALUES ('31183','Tortilla Manufacturing');
+INSERT INTO sic (code,description) VALUES ('311830','Tortilla Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3119','Other Food Manufacturing');
+INSERT INTO sic (code,description) VALUES ('31191','Snack Food Manufacturing');
+INSERT INTO sic (code,description) VALUES ('311911','Roasted Nuts and Peanut Butter Manufacturing');
+INSERT INTO sic (code,description) VALUES ('311919','Other Snack Food Manufacturing');
+INSERT INTO sic (code,description) VALUES ('31192','Coffee and Tea Manufacturing');
+INSERT INTO sic (code,description) VALUES ('311920','Coffee and Tea Manufacturing');
+INSERT INTO sic (code,description) VALUES ('31193','Flavoring Syrup and Concentrate Manufacturing');
+INSERT INTO sic (code,description) VALUES ('311930','Flavoring Syrup and Concentrate Manufacturing');
+INSERT INTO sic (code,description) VALUES ('31194','Seasoning and Dressing Manufacturing');
+INSERT INTO sic (code,description) VALUES ('311941','Mayonnaise, Dressing, and Other Prepared Sauce Manufacturing');
+INSERT INTO sic (code,description) VALUES ('311942','Spice and Extract Manufacturing');
+INSERT INTO sic (code,description) VALUES ('31199','All Other Food Manufacturing');
+INSERT INTO sic (code,description) VALUES ('311991','Perishable Prepared Food Manufacturing');
+INSERT INTO sic (code,description) VALUES ('311999','All Other Miscellaneous Food Manufacturing');
+INSERT INTO sic (code,description) VALUES ('312','Beverage and Tobacco Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3121','Beverage Manufacturing');
+INSERT INTO sic (code,description) VALUES ('31211','Soft Drink and Ice Manufacturing');
+INSERT INTO sic (code,description) VALUES ('312111','Soft Drink Manufacturing');
+INSERT INTO sic (code,description) VALUES ('312112','Bottled Water Manufacturing');
+INSERT INTO sic (code,description) VALUES ('312113','Ice Manufacturing');
+INSERT INTO sic (code,description) VALUES ('31212','Breweries');
+INSERT INTO sic (code,description) VALUES ('312120','Breweries');
+INSERT INTO sic (code,description) VALUES ('31213','Wineries');
+INSERT INTO sic (code,description) VALUES ('312130','Wineries');
+INSERT INTO sic (code,description) VALUES ('31214','Distilleries');
+INSERT INTO sic (code,description) VALUES ('312140','Distilleries');
+INSERT INTO sic (code,description) VALUES ('3122','Tobacco Manufacturing');
+INSERT INTO sic (code,description) VALUES ('31221','Tobacco Stemming and Redrying');
+INSERT INTO sic (code,description) VALUES ('312210','Tobacco Stemming and Redrying');
+INSERT INTO sic (code,description) VALUES ('31222','Tobacco Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('312221','Cigarette Manufacturing');
+INSERT INTO sic (code,description) VALUES ('312229','Other Tobacco Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('313','Textile Mills');
+INSERT INTO sic (code,description) VALUES ('3131','Fiber, Yarn, and Thread Mills');
+INSERT INTO sic (code,description) VALUES ('31311','Fiber, Yarn, and Thread Mills');
+INSERT INTO sic (code,description) VALUES ('313111','Yarn Spinning Mills');
+INSERT INTO sic (code,description) VALUES ('313112','Yarn Texturizing, Throwing, and Twisting Mills');
+INSERT INTO sic (code,description) VALUES ('313113','Thread Mills');
+INSERT INTO sic (code,description) VALUES ('3132','Fabric Mills');
+INSERT INTO sic (code,description) VALUES ('31321','Broadwoven Fabric Mills');
+INSERT INTO sic (code,description) VALUES ('313210','Broadwoven Fabric Mills');
+INSERT INTO sic (code,description) VALUES ('31322','Narrow Fabric Mills and Schiffli Machine Embroidery');
+INSERT INTO sic (code,description) VALUES ('313221','Narrow Fabric Mills');
+INSERT INTO sic (code,description) VALUES ('313222','Schiffli Machine Embroidery');
+INSERT INTO sic (code,description) VALUES ('31323','Nonwoven Fabric Mills');
+INSERT INTO sic (code,description) VALUES ('313230','Nonwoven Fabric Mills');
+INSERT INTO sic (code,description) VALUES ('31324','Knit Fabric Mills');
+INSERT INTO sic (code,description) VALUES ('313241','Weft Knit Fabric Mills');
+INSERT INTO sic (code,description) VALUES ('313249','Other Knit Fabric and Lace Mills');
+INSERT INTO sic (code,description) VALUES ('3133','Textile and Fabric Finishing and Fabric Coating Mills');
+INSERT INTO sic (code,description) VALUES ('31331','Textile and Fabric Finishing Mills');
+INSERT INTO sic (code,description) VALUES ('313311','Broadwoven Fabric Finishing Mills');
+INSERT INTO sic (code,description) VALUES ('313312','Textile and Fabric Finishing (except Broadwoven Fabric) Mills');
+INSERT INTO sic (code,description) VALUES ('31332','Fabric Coating Mills');
+INSERT INTO sic (code,description) VALUES ('313320','Fabric Coating Mills');
+INSERT INTO sic (code,description) VALUES ('314','Textile Product Mills');
+INSERT INTO sic (code,description) VALUES ('3141','Textile Furnishings Mills');
+INSERT INTO sic (code,description) VALUES ('31411','Carpet and Rug Mills');
+INSERT INTO sic (code,description) VALUES ('314110','Carpet and Rug Mills');
+INSERT INTO sic (code,description) VALUES ('31412','Curtain and Linen Mills');
+INSERT INTO sic (code,description) VALUES ('314121','Curtain and Drapery Mills');
+INSERT INTO sic (code,description) VALUES ('314129','Other Household Textile Product Mills');
+INSERT INTO sic (code,description) VALUES ('3149','Other Textile Product Mills');
+INSERT INTO sic (code,description) VALUES ('31491','Textile Bag and Canvas Mills');
+INSERT INTO sic (code,description) VALUES ('314911','Textile Bag Mills');
+INSERT INTO sic (code,description) VALUES ('314912','Canvas and Related Product Mills');
+INSERT INTO sic (code,description) VALUES ('31499','All Other Textile Product Mills');
+INSERT INTO sic (code,description) VALUES ('314991','Rope, Cordage, and Twine Mills');
+INSERT INTO sic (code,description) VALUES ('314992','Tire Cord and Tire Fabric Mills');
+INSERT INTO sic (code,description) VALUES ('314999','All Other Miscellaneous Textile Product Mills');
+INSERT INTO sic (code,description) VALUES ('315','Apparel Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3151','Apparel Knitting Mills');
+INSERT INTO sic (code,description) VALUES ('31511','Hosiery and Sock Mills');
+INSERT INTO sic (code,description) VALUES ('315111','Sheer Hosiery Mills');
+INSERT INTO sic (code,description) VALUES ('315119','Other Hosiery and Sock Mills');
+INSERT INTO sic (code,description) VALUES ('31519','Other Apparel Knitting Mills');
+INSERT INTO sic (code,description) VALUES ('315191','Outerwear Knitting Mills');
+INSERT INTO sic (code,description) VALUES ('315192','Underwear and Nightwear Knitting Mills');
+INSERT INTO sic (code,description) VALUES ('3152','Cut and Sew Apparel Manufacturing');
+INSERT INTO sic (code,description) VALUES ('31521','Cut and Sew Apparel Contractors');
+INSERT INTO sic (code,description) VALUES ('315211','Men\'s and Boys\' Cut and Sew Apparel Contractors');
+INSERT INTO sic (code,description) VALUES ('315212','Women\'s, Girls\', and Infants\' Cut and Sew Apparel Contractors');
+INSERT INTO sic (code,description) VALUES ('31522','Men\'s and Boys\' Cut and Sew Apparel Manufacturing');
+INSERT INTO sic (code,description) VALUES ('315221','Men\'s and Boys\' Cut and Sew Underwear and Nightwear Manufacturing');
+INSERT INTO sic (code,description) VALUES ('315222','Men\'s and Boys\' Cut and Sew Suit, Coat, and Overcoat Manufacturing');
+INSERT INTO sic (code,description) VALUES ('315223','Men\'s and Boys\' Cut and Sew Shirt (except Work Shirt) Manufacturing');
+INSERT INTO sic (code,description) VALUES ('315224','Men\'s and Boys\' Cut and Sew Trouser, Slack, and Jean Manufacturing');
+INSERT INTO sic (code,description) VALUES ('315225','Men\'s and Boys\' Cut and Sew Work Clothing Manufacturing');
+INSERT INTO sic (code,description) VALUES ('315228','Men\'s and Boys\' Cut and Sew Other Outerwear Manufacturing');
+INSERT INTO sic (code,description) VALUES ('31523','Women\'s and Girls\' Cut and Sew Apparel Manufacturing');
+INSERT INTO sic (code,description) VALUES ('315231','Women\'s and Girls\' Cut and Sew Lingerie, Loungewear, and Nightwear Manufacturing');
+INSERT INTO sic (code,description) VALUES ('315232','Women\'s and Girls\' Cut and Sew Blouse and Shirt Manufacturing');
+INSERT INTO sic (code,description) VALUES ('315233','Women\'s and Girls\' Cut and Sew Dress Manufacturing');
+INSERT INTO sic (code,description) VALUES ('315234','Women\'s and Girls\' Cut and Sew Suit, Coat, Tailored Jacket, and Skirt Manufacturing');
+INSERT INTO sic (code,description) VALUES ('315239','Women\'s and Girls\' Cut and Sew Other Outerwear Manufacturing');
+INSERT INTO sic (code,description) VALUES ('31529','Other Cut and Sew Apparel Manufacturing');
+INSERT INTO sic (code,description) VALUES ('315291','Infants\' Cut and Sew Apparel Manufacturing');
+INSERT INTO sic (code,description) VALUES ('315292','Fur and Leather Apparel Manufacturing');
+INSERT INTO sic (code,description) VALUES ('315299','All Other Cut and Sew Apparel Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3159','Apparel Accessories and Other Apparel Manufacturing');
+INSERT INTO sic (code,description) VALUES ('31599','Apparel Accessories and Other Apparel Manufacturing');
+INSERT INTO sic (code,description) VALUES ('315991','Hat, Cap, and Millinery Manufacturing');
+INSERT INTO sic (code,description) VALUES ('315992','Glove and Mitten Manufacturing');
+INSERT INTO sic (code,description) VALUES ('315993','Men\'s and Boys\' Neckwear Manufacturing');
+INSERT INTO sic (code,description) VALUES ('315999','Other Apparel Accessories and Other Apparel Manufacturing');
+INSERT INTO sic (code,description) VALUES ('316','Leather and Allied Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3161','Leather and Hide Tanning and Finishing');
+INSERT INTO sic (code,description) VALUES ('31611','Leather and Hide Tanning and Finishing');
+INSERT INTO sic (code,description) VALUES ('316110','Leather and Hide Tanning and Finishing');
+INSERT INTO sic (code,description) VALUES ('3162','Footwear Manufacturing');
+INSERT INTO sic (code,description) VALUES ('31621','Footwear Manufacturing');
+INSERT INTO sic (code,description) VALUES ('316211','Rubber and Plastics Footwear Manufacturing');
+INSERT INTO sic (code,description) VALUES ('316212','House Slipper Manufacturing');
+INSERT INTO sic (code,description) VALUES ('316213','Men\'s Footwear (except Athletic) Manufacturing');
+INSERT INTO sic (code,description) VALUES ('316214','Women\'s Footwear (except Athletic) Manufacturing');
+INSERT INTO sic (code,description) VALUES ('316219','Other Footwear Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3169','Other Leather and Allied Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('31699','Other Leather and Allied Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('316991','Luggage Manufacturing');
+INSERT INTO sic (code,description) VALUES ('316992','Women\'s Handbag and Purse Manufacturing');
+INSERT INTO sic (code,description) VALUES ('316993','Personal Leather Good (except Women\'s Handbag and Purse) Manufacturing');
+INSERT INTO sic (code,description) VALUES ('316999','All Other Leather Good Manufacturing');
+INSERT INTO sic (code,description) VALUES ('321','Wood Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3211','Sawmills and Wood Preservation');
+INSERT INTO sic (code,description) VALUES ('32111','Sawmills and Wood Preservation');
+INSERT INTO sic (code,description) VALUES ('321113','Sawmills');
+INSERT INTO sic (code,description) VALUES ('321114','Wood Preservation');
+INSERT INTO sic (code,description) VALUES ('3212','Veneer, Plywood, and Engineered Wood Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32121','Veneer, Plywood, and Engineered Wood Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('321211','Hardwood Veneer and Plywood Manufacturing');
+INSERT INTO sic (code,description) VALUES ('321212','Softwood Veneer and Plywood Manufacturing');
+INSERT INTO sic (code,description) VALUES ('321213','Engineered Wood Member (except Truss) Manufacturing');
+INSERT INTO sic (code,description) VALUES ('321214','Truss Manufacturing');
+INSERT INTO sic (code,description) VALUES ('321219','Reconstituted Wood Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3219','Other Wood Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32191','Millwork');
+INSERT INTO sic (code,description) VALUES ('321911','Wood Window and Door Manufacturing');
+INSERT INTO sic (code,description) VALUES ('321912','Cut Stock, Resawing Lumber, and Planing');
+INSERT INTO sic (code,description) VALUES ('321918','Other Millwork (including Flooring)');
+INSERT INTO sic (code,description) VALUES ('32192','Wood Container and Pallet Manufacturing');
+INSERT INTO sic (code,description) VALUES ('321920','Wood Container and Pallet Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32199','All Other Wood Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('321991','Manufactured Home (Mobile Home) Manufacturing');
+INSERT INTO sic (code,description) VALUES ('321992','Prefabricated Wood Building Manufacturing');
+INSERT INTO sic (code,description) VALUES ('321999','All Other Miscellaneous Wood Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('322','Paper Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3221','Pulp, Paper, and Paperboard Mills');
+INSERT INTO sic (code,description) VALUES ('32211','Pulp Mills');
+INSERT INTO sic (code,description) VALUES ('322110','Pulp Mills');
+INSERT INTO sic (code,description) VALUES ('32212','Paper Mills');
+INSERT INTO sic (code,description) VALUES ('322121','Paper (except Newsprint) Mills');
+INSERT INTO sic (code,description) VALUES ('322122','Newsprint Mills');
+INSERT INTO sic (code,description) VALUES ('32213','Paperboard Mills');
+INSERT INTO sic (code,description) VALUES ('322130','Paperboard Mills');
+INSERT INTO sic (code,description) VALUES ('3222','Converted Paper Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32221','Paperboard Container Manufacturing');
+INSERT INTO sic (code,description) VALUES ('322211','Corrugated and Solid Fiber Box Manufacturing');
+INSERT INTO sic (code,description) VALUES ('322212','Folding Paperboard Box Manufacturing');
+INSERT INTO sic (code,description) VALUES ('322213','Setup Paperboard Box Manufacturing');
+INSERT INTO sic (code,description) VALUES ('322214','Fiber Can, Tube, Drum, and Similar Products Manufacturing');
+INSERT INTO sic (code,description) VALUES ('322215','Nonfolding Sanitary Food Container Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32222','Paper Bag and Coated and Treated Paper Manufacturing');
+INSERT INTO sic (code,description) VALUES ('322221','Coated and Laminated Packaging Paper and Plastics Film Manufacturing');
+INSERT INTO sic (code,description) VALUES ('322222','Coated and Laminated Paper Manufacturing');
+INSERT INTO sic (code,description) VALUES ('322223','Plastics, Foil, and Coated Paper Bag Manufacturing');
+INSERT INTO sic (code,description) VALUES ('322224','Uncoated Paper and Multiwall Bag Manufacturing');
+INSERT INTO sic (code,description) VALUES ('322225','Laminated Aluminum Foil Manufacturing for Flexible Packaging Uses');
+INSERT INTO sic (code,description) VALUES ('322226','Surface-Coated Paperboard Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32223','Stationery Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('322231','Die-Cut Paper and Paperboard Office Supplies Manufacturing');
+INSERT INTO sic (code,description) VALUES ('322232','Envelope Manufacturing');
+INSERT INTO sic (code,description) VALUES ('322233','Stationery, Tablet, and Related Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32229','Other Converted Paper Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('322291','Sanitary Paper Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('322299','All Other Converted Paper Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('323','Printing and Related Support Activities');
+INSERT INTO sic (code,description) VALUES ('3231','Printing and Related Support Activities');
+INSERT INTO sic (code,description) VALUES ('32311','Printing');
+INSERT INTO sic (code,description) VALUES ('323110','Commercial Lithographic Printing');
+INSERT INTO sic (code,description) VALUES ('323111','Commercial Gravure Printing');
+INSERT INTO sic (code,description) VALUES ('323112','Commercial Flexographic Printing');
+INSERT INTO sic (code,description) VALUES ('323113','Commercial Screen Printing');
+INSERT INTO sic (code,description) VALUES ('323114','Quick Printing');
+INSERT INTO sic (code,description) VALUES ('323115','Digital Printing');
+INSERT INTO sic (code,description) VALUES ('323116','Manifold Business Forms Printing');
+INSERT INTO sic (code,description) VALUES ('323117','Books Printing');
+INSERT INTO sic (code,description) VALUES ('323118','Blankbook, Looseleaf Binders, and Devices Manufacturing');
+INSERT INTO sic (code,description) VALUES ('323119','Other Commercial Printing');
+INSERT INTO sic (code,description) VALUES ('32312','Support Activities for Printing');
+INSERT INTO sic (code,description) VALUES ('323121','Tradebinding and Related Work');
+INSERT INTO sic (code,description) VALUES ('323122','Prepress Services');
+INSERT INTO sic (code,description) VALUES ('324','Petroleum and Coal Products Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3241','Petroleum and Coal Products Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32411','Petroleum Refineries');
+INSERT INTO sic (code,description) VALUES ('324110','Petroleum Refineries');
+INSERT INTO sic (code,description) VALUES ('32412','Asphalt Paving, Roofing, and Saturated Materials Manufacturing');
+INSERT INTO sic (code,description) VALUES ('324121','Asphalt Paving Mixture and Block Manufacturing');
+INSERT INTO sic (code,description) VALUES ('324122','Asphalt Shingle and Coating Materials Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32419','Other Petroleum and Coal Products Manufacturing');
+INSERT INTO sic (code,description) VALUES ('324191','Petroleum Lubricating Oil and Grease Manufacturing');
+INSERT INTO sic (code,description) VALUES ('324199','All Other Petroleum and Coal Products Manufacturing');
+INSERT INTO sic (code,description) VALUES ('325','Chemical Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3251','Basic Chemical Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32511','Petrochemical Manufacturing');
+INSERT INTO sic (code,description) VALUES ('325110','Petrochemical Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32512','Industrial Gas Manufacturing');
+INSERT INTO sic (code,description) VALUES ('325120','Industrial Gas Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32513','Synthetic Dye and Pigment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('325131','Inorganic Dye and Pigment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('325132','Synthetic Organic Dye and Pigment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32518','Other Basic Inorganic Chemical Manufacturing');
+INSERT INTO sic (code,description) VALUES ('325181','Alkalies and Chlorine Manufacturing');
+INSERT INTO sic (code,description) VALUES ('325182','Carbon Black Manufacturing');
+INSERT INTO sic (code,description) VALUES ('325188','All Other Basic Inorganic Chemical Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32519','Other Basic Organic Chemical Manufacturing');
+INSERT INTO sic (code,description) VALUES ('325191','Gum and Wood Chemical Manufacturing');
+INSERT INTO sic (code,description) VALUES ('325192','Cyclic Crude and Intermediate Manufacturing');
+INSERT INTO sic (code,description) VALUES ('325193','Ethyl Alcohol Manufacturing');
+INSERT INTO sic (code,description) VALUES ('325199','All Other Basic Organic Chemical Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3252','Resin, Synthetic Rubber, and Artificial Synthetic Fibers and Filaments Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32521','Resin and Synthetic Rubber Manufacturing');
+INSERT INTO sic (code,description) VALUES ('325211','Plastics Material and Resin Manufacturing');
+INSERT INTO sic (code,description) VALUES ('325212','Synthetic Rubber Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32522','Artificial and Synthetic Fibers and Filaments Manufacturing');
+INSERT INTO sic (code,description) VALUES ('325221','Cellulosic Organic Fiber Manufacturing');
+INSERT INTO sic (code,description) VALUES ('325222','Noncellulosic Organic Fiber Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3253','Pesticide, Fertilizer, and Other Agricultural Chemical Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32531','Fertilizer Manufacturing');
+INSERT INTO sic (code,description) VALUES ('325311','Nitrogenous Fertilizer Manufacturing');
+INSERT INTO sic (code,description) VALUES ('325312','Phosphatic Fertilizer Manufacturing');
+INSERT INTO sic (code,description) VALUES ('325314','Fertilizer (Mixing Only) Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32532','Pesticide and Other Agricultural Chemical Manufacturing');
+INSERT INTO sic (code,description) VALUES ('325320','Pesticide and Other Agricultural Chemical Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3254','Pharmaceutical and Medicine Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32541','Pharmaceutical and Medicine Manufacturing');
+INSERT INTO sic (code,description) VALUES ('325411','Medicinal and Botanical Manufacturing');
+INSERT INTO sic (code,description) VALUES ('325412','Pharmaceutical Preparation Manufacturing');
+INSERT INTO sic (code,description) VALUES ('325413','In-Vitro Diagnostic Substance Manufacturing');
+INSERT INTO sic (code,description) VALUES ('325414','Biological Product (except Diagnostic) Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3255','Paint, Coating, and Adhesive Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32551','Paint and Coating Manufacturing');
+INSERT INTO sic (code,description) VALUES ('325510','Paint and Coating Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32552','Adhesive Manufacturing');
+INSERT INTO sic (code,description) VALUES ('325520','Adhesive Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3256','Soap, Cleaning Compound, and Toilet Preparation Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32561','Soap and Cleaning Compound Manufacturing');
+INSERT INTO sic (code,description) VALUES ('325611','Soap and Other Detergent Manufacturing');
+INSERT INTO sic (code,description) VALUES ('325612','Polish and Other Sanitation Good Manufacturing');
+INSERT INTO sic (code,description) VALUES ('325613','Surface Active Agent Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32562','Toilet Preparation Manufacturing');
+INSERT INTO sic (code,description) VALUES ('325620','Toilet Preparation Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3259','Other Chemical Product and Preparation Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32591','Printing Ink Manufacturing');
+INSERT INTO sic (code,description) VALUES ('325910','Printing Ink Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32592','Explosives Manufacturing');
+INSERT INTO sic (code,description) VALUES ('325920','Explosives Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32599','All Other Chemical Product and Preparation Manufacturing');
+INSERT INTO sic (code,description) VALUES ('325991','Custom Compounding of Purchased Resins');
+INSERT INTO sic (code,description) VALUES ('325992','Photographic Film, Paper, Plate, and Chemical Manufacturing');
+INSERT INTO sic (code,description) VALUES ('325998','All Other Miscellaneous Chemical Product and Preparation Manufacturing');
+INSERT INTO sic (code,description) VALUES ('326','Plastics and Rubber Products Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3261','Plastics Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32611','Plastics Packaging Materials and Unlaminated Film and Sheet Manufacturing');
+INSERT INTO sic (code,description) VALUES ('326111','Plastics Bag Manufacturing');
+INSERT INTO sic (code,description) VALUES ('326112','Plastics Packaging Film and Sheet (including Laminated) Manufacturing');
+INSERT INTO sic (code,description) VALUES ('326113','Unlaminated Plastics Film and Sheet (except Packaging) Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32612','Plastics Pipe, Pipe Fitting, and Unlaminated Profile Shape Manufacturing');
+INSERT INTO sic (code,description) VALUES ('326121','Unlaminated Plastics Profile Shape Manufacturing');
+INSERT INTO sic (code,description) VALUES ('326122','Plastics Pipe and Pipe Fitting Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32613','Laminated Plastics Plate, Sheet (except Packaging), and Shape Manufacturing');
+INSERT INTO sic (code,description) VALUES ('326130','Laminated Plastics Plate, Sheet (except Packaging), and Shape Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32614','Polystyrene Foam Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('326140','Polystyrene Foam Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32615','Urethane and Other Foam Product (except Polystyrene) Manufacturing');
+INSERT INTO sic (code,description) VALUES ('326150','Urethane and Other Foam Product (except Polystyrene) Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32616','Plastics Bottle Manufacturing');
+INSERT INTO sic (code,description) VALUES ('326160','Plastics Bottle Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32619','Other Plastics Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('326191','Plastics Plumbing Fixture Manufacturing');
+INSERT INTO sic (code,description) VALUES ('326192','Resilient Floor Covering Manufacturing');
+INSERT INTO sic (code,description) VALUES ('326199','All Other Plastics Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3262','Rubber Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32621','Tire Manufacturing');
+INSERT INTO sic (code,description) VALUES ('326211','Tire Manufacturing (except Retreading)');
+INSERT INTO sic (code,description) VALUES ('326212','Tire Retreading');
+INSERT INTO sic (code,description) VALUES ('32622','Rubber and Plastics Hoses and Belting Manufacturing');
+INSERT INTO sic (code,description) VALUES ('326220','Rubber and Plastics Hoses and Belting Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32629','Other Rubber Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('326291','Rubber Product Manufacturing for Mechanical Use');
+INSERT INTO sic (code,description) VALUES ('326299','All Other Rubber Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('327','Nonmetallic Mineral Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3271','Clay Product and Refractory Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32711','Pottery, Ceramics, and Plumbing Fixture Manufacturing');
+INSERT INTO sic (code,description) VALUES ('327111','Vitreous China Plumbing Fixture and China and Earthenware Bathroom Accessories Manufacturing');
+INSERT INTO sic (code,description) VALUES ('327112','Vitreous China, Fine Earthenware, and Other Pottery Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('327113','Porcelain Electrical Supply Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32712','Clay Building Material and Refractories Manufacturing');
+INSERT INTO sic (code,description) VALUES ('327121','Brick and Structural Clay Tile Manufacturing');
+INSERT INTO sic (code,description) VALUES ('327122','Ceramic Wall and Floor Tile Manufacturing');
+INSERT INTO sic (code,description) VALUES ('327123','Other Structural Clay Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('327124','Clay Refractory Manufacturing');
+INSERT INTO sic (code,description) VALUES ('327125','Nonclay Refractory Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3272','Glass and Glass Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32721','Glass and Glass Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('327211','Flat Glass Manufacturing');
+INSERT INTO sic (code,description) VALUES ('327212','Other Pressed and Blown Glass and Glassware Manufacturing');
+INSERT INTO sic (code,description) VALUES ('327213','Glass Container Manufacturing');
+INSERT INTO sic (code,description) VALUES ('327215','Glass Product Manufacturing Made of Purchased Glass');
+INSERT INTO sic (code,description) VALUES ('3273','Cement and Concrete Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32731','Cement Manufacturing');
+INSERT INTO sic (code,description) VALUES ('327310','Cement Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32732','Ready-Mix Concrete Manufacturing');
+INSERT INTO sic (code,description) VALUES ('327320','Ready-Mix Concrete Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32733','Concrete Pipe, Brick, and Block Manufacturing');
+INSERT INTO sic (code,description) VALUES ('327331','Concrete Block and Brick Manufacturing');
+INSERT INTO sic (code,description) VALUES ('327332','Concrete Pipe Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32739','Other Concrete Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('327390','Other Concrete Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3274','Lime and Gypsum Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32741','Lime Manufacturing');
+INSERT INTO sic (code,description) VALUES ('327410','Lime Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32742','Gypsum Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('327420','Gypsum Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3279','Other Nonmetallic Mineral Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32791','Abrasive Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('327910','Abrasive Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('32799','All Other Nonmetallic Mineral Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('327991','Cut Stone and Stone Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('327992','Ground or Treated Mineral and Earth Manufacturing');
+INSERT INTO sic (code,description) VALUES ('327993','Mineral Wool Manufacturing');
+INSERT INTO sic (code,description) VALUES ('327999','All Other Miscellaneous Nonmetallic Mineral Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('331','Primary Metal Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3311','Iron and Steel Mills and Ferroalloy Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33111','Iron and Steel Mills and Ferroalloy Manufacturing');
+INSERT INTO sic (code,description) VALUES ('331111','Iron and Steel Mills');
+INSERT INTO sic (code,description) VALUES ('331112','Electrometallurgical Ferroalloy Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3312','Steel Product Manufacturing from Purchased Steel');
+INSERT INTO sic (code,description) VALUES ('33121','Iron and Steel Pipe and Tube Manufacturing from Purchased Steel');
+INSERT INTO sic (code,description) VALUES ('331210','Iron and Steel Pipe and Tube Manufacturing from Purchased Steel');
+INSERT INTO sic (code,description) VALUES ('33122','Rolling and Drawing of Purchased Steel');
+INSERT INTO sic (code,description) VALUES ('331221','Rolled Steel Shape Manufacturing');
+INSERT INTO sic (code,description) VALUES ('331222','Steel Wire Drawing');
+INSERT INTO sic (code,description) VALUES ('3313','Alumina and Aluminum Production and Processing');
+INSERT INTO sic (code,description) VALUES ('33131','Alumina and Aluminum Production and Processing');
+INSERT INTO sic (code,description) VALUES ('331311','Alumina Refining');
+INSERT INTO sic (code,description) VALUES ('331312','Primary Aluminum Production');
+INSERT INTO sic (code,description) VALUES ('331314','Secondary Smelting and Alloying of Aluminum');
+INSERT INTO sic (code,description) VALUES ('331315','Aluminum Sheet, Plate, and Foil Manufacturing');
+INSERT INTO sic (code,description) VALUES ('331316','Aluminum Extruded Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('331319','Other Aluminum Rolling and Drawing');
+INSERT INTO sic (code,description) VALUES ('3314','Nonferrous Metal (except Aluminum) Production and Processing');
+INSERT INTO sic (code,description) VALUES ('33141','Nonferrous Metal (except Aluminum) Smelting and Refining');
+INSERT INTO sic (code,description) VALUES ('331411','Primary Smelting and Refining of Copper');
+INSERT INTO sic (code,description) VALUES ('331419','Primary Smelting and Refining of Nonferrous Metal (except Copper and Aluminum)');
+INSERT INTO sic (code,description) VALUES ('33142','Copper Rolling, Drawing, Extruding, and Alloying');
+INSERT INTO sic (code,description) VALUES ('331421','Copper Rolling, Drawing, and Extruding');
+INSERT INTO sic (code,description) VALUES ('331422','Copper Wire (except Mechanical) Drawing');
+INSERT INTO sic (code,description) VALUES ('331423','Secondary Smelting, Refining, and Alloying of Copper');
+INSERT INTO sic (code,description) VALUES ('33149','Nonferrous Metal (except Copper and Aluminum) Rolling, Drawing, Extruding, and Alloying');
+INSERT INTO sic (code,description) VALUES ('331491','Nonferrous Metal (except Copper and Aluminum) Rolling, Drawing, and Extruding');
+INSERT INTO sic (code,description) VALUES ('331492','Secondary Smelting, Refining, and Alloying of Nonferrous Metal (except Copper and Aluminum)');
+INSERT INTO sic (code,description) VALUES ('3315','Foundries');
+INSERT INTO sic (code,description) VALUES ('33151','Ferrous Metal Foundries');
+INSERT INTO sic (code,description) VALUES ('331511','Iron Foundries');
+INSERT INTO sic (code,description) VALUES ('331512','Steel Investment Foundries');
+INSERT INTO sic (code,description) VALUES ('331513','Steel Foundries (except Investment)');
+INSERT INTO sic (code,description) VALUES ('33152','Nonferrous Metal Foundries');
+INSERT INTO sic (code,description) VALUES ('331521','Aluminum Die-Casting Foundries');
+INSERT INTO sic (code,description) VALUES ('331522','Nonferrous (except Aluminum) Die-Casting Foundries');
+INSERT INTO sic (code,description) VALUES ('331524','Aluminum Foundries (except Die-Casting)');
+INSERT INTO sic (code,description) VALUES ('331525','Copper Foundries (except Die-Casting)');
+INSERT INTO sic (code,description) VALUES ('331528','Other Nonferrous Foundries (except Die-Casting)');
+INSERT INTO sic (code,description) VALUES ('332','Fabricated Metal Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3321','Forging and Stamping');
+INSERT INTO sic (code,description) VALUES ('33211','Forging and Stamping');
+INSERT INTO sic (code,description) VALUES ('332111','Iron and Steel Forging');
+INSERT INTO sic (code,description) VALUES ('332112','Nonferrous Forging');
+INSERT INTO sic (code,description) VALUES ('332114','Custom Roll Forming');
+INSERT INTO sic (code,description) VALUES ('332115','Crown and Closure Manufacturing');
+INSERT INTO sic (code,description) VALUES ('332116','Metal Stamping');
+INSERT INTO sic (code,description) VALUES ('332117','Powder Metallurgy Part Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3322','Cutlery and Handtool Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33221','Cutlery and Handtool Manufacturing');
+INSERT INTO sic (code,description) VALUES ('332211','Cutlery and Flatware (except Precious) Manufacturing');
+INSERT INTO sic (code,description) VALUES ('332212','Hand and Edge Tool Manufacturing');
+INSERT INTO sic (code,description) VALUES ('332213','Saw Blade and Handsaw Manufacturing');
+INSERT INTO sic (code,description) VALUES ('332214','Kitchen Utensil, Pot, and Pan Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3323','Architectural and Structural Metals Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33231','Plate Work and Fabricated Structural Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('332311','Prefabricated Metal Building and Component Manufacturing');
+INSERT INTO sic (code,description) VALUES ('332312','Fabricated Structural Metal Manufacturing');
+INSERT INTO sic (code,description) VALUES ('332313','Plate Work Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33232','Ornamental and Architectural Metal Products Manufacturing');
+INSERT INTO sic (code,description) VALUES ('332321','Metal Window and Door Manufacturing');
+INSERT INTO sic (code,description) VALUES ('332322','Sheet Metal Work Manufacturing');
+INSERT INTO sic (code,description) VALUES ('332323','Ornamental and Architectural Metal Work Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3324','Boiler, Tank, and Shipping Container Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33241','Power Boiler and Heat Exchanger Manufacturing');
+INSERT INTO sic (code,description) VALUES ('332410','Power Boiler and Heat Exchanger Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33242','Metal Tank (Heavy Gauge) Manufacturing');
+INSERT INTO sic (code,description) VALUES ('332420','Metal Tank (Heavy Gauge) Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33243','Metal Can, Box, and Other Metal Container (Light Gauge) Manufacturing');
+INSERT INTO sic (code,description) VALUES ('332431','Metal Can Manufacturing');
+INSERT INTO sic (code,description) VALUES ('332439','Other Metal Container Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3325','Hardware Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33251','Hardware Manufacturing');
+INSERT INTO sic (code,description) VALUES ('332510','Hardware Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3326','Spring and Wire Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33261','Spring and Wire Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('332611','Spring (Heavy Gauge) Manufacturing');
+INSERT INTO sic (code,description) VALUES ('332612','Spring (Light Gauge) Manufacturing');
+INSERT INTO sic (code,description) VALUES ('332618','Other Fabricated Wire Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3327','Machine Shops; Turned Product; and Screw, Nut, and Bolt Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33271','Machine Shops');
+INSERT INTO sic (code,description) VALUES ('332710','Machine Shops');
+INSERT INTO sic (code,description) VALUES ('33272','Turned Product and Screw, Nut, and Bolt Manufacturing');
+INSERT INTO sic (code,description) VALUES ('332721','Precision Turned Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('332722','Bolt, Nut, Screw, Rivet, and Washer Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3328','Coating, Engraving, Heat Treating, and Allied Activities');
+INSERT INTO sic (code,description) VALUES ('33281','Coating, Engraving, Heat Treating, and Allied Activities');
+INSERT INTO sic (code,description) VALUES ('332811','Metal Heat Treating');
+INSERT INTO sic (code,description) VALUES ('332812','Metal Coating, Engraving (except Jewelry and Silverware), and Allied Services to Manufacturers');
+INSERT INTO sic (code,description) VALUES ('332813','Electroplating, Plating, Polishing, Anodizing, and Coloring');
+INSERT INTO sic (code,description) VALUES ('3329','Other Fabricated Metal Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33291','Metal Valve Manufacturing');
+INSERT INTO sic (code,description) VALUES ('332911','Industrial Valve Manufacturing');
+INSERT INTO sic (code,description) VALUES ('332912','Fluid Power Valve and Hose Fitting Manufacturing');
+INSERT INTO sic (code,description) VALUES ('332913','Plumbing Fixture Fitting and Trim Manufacturing');
+INSERT INTO sic (code,description) VALUES ('332919','Other Metal Valve and Pipe Fitting Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33299','All Other Fabricated Metal Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('332991','Ball and Roller Bearing Manufacturing');
+INSERT INTO sic (code,description) VALUES ('332992','Small Arms Ammunition Manufacturing');
+INSERT INTO sic (code,description) VALUES ('332993','Ammunition (except Small Arms) Manufacturing');
+INSERT INTO sic (code,description) VALUES ('332994','Small Arms Manufacturing');
+INSERT INTO sic (code,description) VALUES ('332995','Other Ordnance and Accessories Manufacturing');
+INSERT INTO sic (code,description) VALUES ('332996','Fabricated Pipe and Pipe Fitting Manufacturing');
+INSERT INTO sic (code,description) VALUES ('332997','Industrial Pattern Manufacturing');
+INSERT INTO sic (code,description) VALUES ('332998','Enameled Iron and Metal Sanitary Ware Manufacturing');
+INSERT INTO sic (code,description) VALUES ('332999','All Other Miscellaneous Fabricated Metal Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333','Machinery Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3331','Agriculture, Construction, and Mining Machinery Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33311','Agricultural Implement Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333111','Farm Machinery and Equipment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333112','Lawn and Garden Tractor and Home Lawn and Garden Equipment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33312','Construction Machinery Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333120','Construction Machinery Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33313','Mining and Oil and Gas Field Machinery Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333131','Mining Machinery and Equipment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333132','Oil and Gas Field Machinery and Equipment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3332','Industrial Machinery Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33321','Sawmill and Woodworking Machinery Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333210','Sawmill and Woodworking Machinery Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33322','Plastics and Rubber Industry Machinery Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333220','Plastics and Rubber Industry Machinery Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33329','Other Industrial Machinery Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333291','Paper Industry Machinery Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333292','Textile Machinery Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333293','Printing Machinery and Equipment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333294','Food Product Machinery Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333295','Semiconductor Machinery Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333298','All Other Industrial Machinery Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3333','Commercial and Service Industry Machinery Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33331','Commercial and Service Industry Machinery Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333311','Automatic Vending Machine Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333312','Commercial Laundry, Drycleaning, and Pressing Machine Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333313','Office Machinery Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333314','Optical Instrument and Lens Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333315','Photographic and Photocopying Equipment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333319','Other Commercial and Service Industry Machinery Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3334','Ventilation, Heating, Air-Conditioning, and Commercial Refrigeration Equipment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33341','Ventilation, Heating, Air-Conditioning, and Commercial Refrigeration Equipment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333411','Air Purification Equipment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333412','Industrial and Commercial Fan and Blower Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333414','Heating Equipment (except Warm Air Furnaces) Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333415','Air-Conditioning and Warm Air Heating Equipment and Commercial and Industrial Refrigeration Equipment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3335','Metalworking Machinery Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33351','Metalworking Machinery Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333511','Industrial Mold Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333512','Machine Tool (Metal Cutting Types) Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333513','Machine Tool (Metal Forming Types) Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333514','Special Die and Tool, Die Set, Jig, and Fixture Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333515','Cutting Tool and Machine Tool Accessory Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333516','Rolling Mill Machinery and Equipment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333518','Other Metalworking Machinery Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3336','Engine, Turbine, and Power Transmission Equipment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33361','Engine, Turbine, and Power Transmission Equipment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333611','Turbine and Turbine Generator Set Units Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333612','Speed Changer, Industrial High-Speed Drive, and Gear Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333613','Mechanical Power Transmission Equipment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333618','Other Engine Equipment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3339','Other General Purpose Machinery Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33391','Pump and Compressor Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333911','Pump and Pumping Equipment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333912','Air and Gas Compressor Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333913','Measuring and Dispensing Pump Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33392','Material Handling Equipment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333921','Elevator and Moving Stairway Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333922','Conveyor and Conveying Equipment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333923','Overhead Traveling Crane, Hoist, and Monorail System Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333924','Industrial Truck, Tractor, Trailer, and Stacker Machinery Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33399','All Other General Purpose Machinery Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333991','Power-Driven Handtool Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333992','Welding and Soldering Equipment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333993','Packaging Machinery Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333994','Industrial Process Furnace and Oven Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333995','Fluid Power Cylinder and Actuator Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333996','Fluid Power Pump and Motor Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333997','Scale and Balance (except Laboratory) Manufacturing');
+INSERT INTO sic (code,description) VALUES ('333999','All Other Miscellaneous General Purpose Machinery Manufacturing');
+INSERT INTO sic (code,description) VALUES ('334','Computer and Electronic Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3341','Computer and Peripheral Equipment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33411','Computer and Peripheral Equipment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('334111','Electronic Computer Manufacturing');
+INSERT INTO sic (code,description) VALUES ('334112','Computer Storage Device Manufacturing');
+INSERT INTO sic (code,description) VALUES ('334113','Computer Terminal Manufacturing');
+INSERT INTO sic (code,description) VALUES ('334119','Other Computer Peripheral Equipment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3342','Communications Equipment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33421','Telephone Apparatus Manufacturing');
+INSERT INTO sic (code,description) VALUES ('334210','Telephone Apparatus Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33422','Radio and Television Broadcasting and Wireless Communications Equipment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('334220','Radio and Television Broadcasting and Wireless Communications Equipment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33429','Other Communications Equipment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('334290','Other Communications Equipment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3343','Audio and Video Equipment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33431','Audio and Video Equipment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('334310','Audio and Video Equipment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3344','Semiconductor and Other Electronic Component Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33441','Semiconductor and Other Electronic Component Manufacturing');
+INSERT INTO sic (code,description) VALUES ('334411','Electron Tube Manufacturing');
+INSERT INTO sic (code,description) VALUES ('334412','Bare Printed Circuit Board Manufacturing');
+INSERT INTO sic (code,description) VALUES ('334413','Semiconductor and Related Device Manufacturing');
+INSERT INTO sic (code,description) VALUES ('334414','Electronic Capacitor Manufacturing');
+INSERT INTO sic (code,description) VALUES ('334415','Electronic Resistor Manufacturing');
+INSERT INTO sic (code,description) VALUES ('334416','Electronic Coil, Transformer, and Other Inductor Manufacturing');
+INSERT INTO sic (code,description) VALUES ('334417','Electronic Connector Manufacturing');
+INSERT INTO sic (code,description) VALUES ('334418','Printed Circuit Assembly (Electronic Assembly) Manufacturing');
+INSERT INTO sic (code,description) VALUES ('334419','Other Electronic Component Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3345','Navigational, Measuring, Electromedical, and Control Instruments Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33451','Navigational, Measuring, Electromedical, and Control Instruments Manufacturing');
+INSERT INTO sic (code,description) VALUES ('334510','Electromedical and Electrotherapeutic Apparatus Manufacturing');
+INSERT INTO sic (code,description) VALUES ('334511','Search, Detection, Navigation, Guidance, Aeronautical, and Nautical System and Instrument Manufacturing');
+INSERT INTO sic (code,description) VALUES ('334512','Automatic Environmental Control Manufacturing for Residential, Commercial, and Appliance Use');
+INSERT INTO sic (code,description) VALUES ('334513','Instruments and Related Products Manufacturing for Measuring, Displaying, and Controlling Industrial Process Variables');
+INSERT INTO sic (code,description) VALUES ('334514','Totalizing Fluid Meter and Counting Device Manufacturing');
+INSERT INTO sic (code,description) VALUES ('334515','Instrument Manufacturing for Measuring and Testing Electricity and Electrical Signals');
+INSERT INTO sic (code,description) VALUES ('334516','Analytical Laboratory Instrument Manufacturing');
+INSERT INTO sic (code,description) VALUES ('334517','Irradiation Apparatus Manufacturing');
+INSERT INTO sic (code,description) VALUES ('334518','Watch, Clock, and Part Manufacturing');
+INSERT INTO sic (code,description) VALUES ('334519','Other Measuring and Controlling Device Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3346','Manufacturing and Reproducing Magnetic and Optical Media');
+INSERT INTO sic (code,description) VALUES ('33461','Manufacturing and Reproducing Magnetic and Optical Media');
+INSERT INTO sic (code,description) VALUES ('334611','Software Reproducing');
+INSERT INTO sic (code,description) VALUES ('334612','Prerecorded Compact Disc (except Software), Tape, and Record Reproducing');
+INSERT INTO sic (code,description) VALUES ('334613','Magnetic and Optical Recording Media Manufacturing');
+INSERT INTO sic (code,description) VALUES ('335','Electrical Equipment, Appliance, and Component Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3351','Electric Lighting Equipment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33511','Electric Lamp Bulb and Part Manufacturing');
+INSERT INTO sic (code,description) VALUES ('335110','Electric Lamp Bulb and Part Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33512','Lighting Fixture Manufacturing');
+INSERT INTO sic (code,description) VALUES ('335121','Residential Electric Lighting Fixture Manufacturing');
+INSERT INTO sic (code,description) VALUES ('335122','Commercial, Industrial, and Institutional Electric Lighting Fixture Manufacturing');
+INSERT INTO sic (code,description) VALUES ('335129','Other Lighting Equipment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3352','Household Appliance Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33521','Small Electrical Appliance Manufacturing');
+INSERT INTO sic (code,description) VALUES ('335211','Electric Housewares and Household Fan Manufacturing');
+INSERT INTO sic (code,description) VALUES ('335212','Household Vacuum Cleaner Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33522','Major Appliance Manufacturing');
+INSERT INTO sic (code,description) VALUES ('335221','Household Cooking Appliance Manufacturing');
+INSERT INTO sic (code,description) VALUES ('335222','Household Refrigerator and Home Freezer Manufacturing');
+INSERT INTO sic (code,description) VALUES ('335224','Household Laundry Equipment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('335228','Other Major Household Appliance Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3353','Electrical Equipment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33531','Electrical Equipment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('335311','Power, Distribution, and Specialty Transformer Manufacturing');
+INSERT INTO sic (code,description) VALUES ('335312','Motor and Generator Manufacturing');
+INSERT INTO sic (code,description) VALUES ('335313','Switchgear and Switchboard Apparatus Manufacturing');
+INSERT INTO sic (code,description) VALUES ('335314','Relay and Industrial Control Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3359','Other Electrical Equipment and Component Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33591','Battery Manufacturing');
+INSERT INTO sic (code,description) VALUES ('335911','Storage Battery Manufacturing');
+INSERT INTO sic (code,description) VALUES ('335912','Primary Battery Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33592','Communication and Energy Wire and Cable Manufacturing');
+INSERT INTO sic (code,description) VALUES ('335921','Fiber Optic Cable Manufacturing');
+INSERT INTO sic (code,description) VALUES ('335929','Other Communication and Energy Wire Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33593','Wiring Device Manufacturing');
+INSERT INTO sic (code,description) VALUES ('335931','Current-Carrying Wiring Device Manufacturing');
+INSERT INTO sic (code,description) VALUES ('335932','Noncurrent-Carrying Wiring Device Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33599','All Other Electrical Equipment and Component Manufacturing');
+INSERT INTO sic (code,description) VALUES ('335991','Carbon and Graphite Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('335999','All Other Miscellaneous Electrical Equipment and Component Manufacturing');
+INSERT INTO sic (code,description) VALUES ('336','Transportation Equipment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3361','Motor Vehicle Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33611','Automobile and Light Duty Motor Vehicle Manufacturing');
+INSERT INTO sic (code,description) VALUES ('336111','Automobile Manufacturing');
+INSERT INTO sic (code,description) VALUES ('336112','Light Truck and Utility Vehicle Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33612','Heavy Duty Truck Manufacturing');
+INSERT INTO sic (code,description) VALUES ('336120','Heavy Duty Truck Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3362','Motor Vehicle Body and Trailer Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33621','Motor Vehicle Body and Trailer Manufacturing');
+INSERT INTO sic (code,description) VALUES ('336211','Motor Vehicle Body Manufacturing');
+INSERT INTO sic (code,description) VALUES ('336212','Truck Trailer Manufacturing');
+INSERT INTO sic (code,description) VALUES ('336213','Motor Home Manufacturing');
+INSERT INTO sic (code,description) VALUES ('336214','Travel Trailer and Camper Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3363','Motor Vehicle Parts Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33631','Motor Vehicle Gasoline Engine and Engine Parts Manufacturing');
+INSERT INTO sic (code,description) VALUES ('336311','Carburetor, Piston, Piston Ring, and Valve Manufacturing');
+INSERT INTO sic (code,description) VALUES ('336312','Gasoline Engine and Engine Parts Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33632','Motor Vehicle Electrical and Electronic Equipment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('336321','Vehicular Lighting Equipment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('336322','Other Motor Vehicle Electrical and Electronic Equipment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33633','Motor Vehicle Steering and Suspension Components (except Spring) Manufacturing');
+INSERT INTO sic (code,description) VALUES ('336330','Motor Vehicle Steering and Suspension Components (except Spring) Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33634','Motor Vehicle Brake System Manufacturing');
+INSERT INTO sic (code,description) VALUES ('336340','Motor Vehicle Brake System Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33635','Motor Vehicle Transmission and Power Train Parts Manufacturing');
+INSERT INTO sic (code,description) VALUES ('336350','Motor Vehicle Transmission and Power Train Parts Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33636','Motor Vehicle Seating and Interior Trim Manufacturing');
+INSERT INTO sic (code,description) VALUES ('336360','Motor Vehicle Seating and Interior Trim Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33637','Motor Vehicle Metal Stamping');
+INSERT INTO sic (code,description) VALUES ('336370','Motor Vehicle Metal Stamping');
+INSERT INTO sic (code,description) VALUES ('33639','Other Motor Vehicle Parts Manufacturing');
+INSERT INTO sic (code,description) VALUES ('336391','Motor Vehicle Air-Conditioning Manufacturing');
+INSERT INTO sic (code,description) VALUES ('336399','All Other Motor Vehicle Parts Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3364','Aerospace Product and Parts Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33641','Aerospace Product and Parts Manufacturing');
+INSERT INTO sic (code,description) VALUES ('336411','Aircraft Manufacturing');
+INSERT INTO sic (code,description) VALUES ('336412','Aircraft Engine and Engine Parts Manufacturing');
+INSERT INTO sic (code,description) VALUES ('336413','Other Aircraft Parts and Auxiliary Equipment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('336414','Guided Missile and Space Vehicle Manufacturing');
+INSERT INTO sic (code,description) VALUES ('336415','Guided Missile and Space Vehicle Propulsion Unit and Propulsion Unit Parts Manufacturing');
+INSERT INTO sic (code,description) VALUES ('336419','Other Guided Missile and Space Vehicle Parts and Auxiliary Equipment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3365','Railroad Rolling Stock Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33651','Railroad Rolling Stock Manufacturing');
+INSERT INTO sic (code,description) VALUES ('336510','Railroad Rolling Stock Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3366','Ship and Boat Building');
+INSERT INTO sic (code,description) VALUES ('33661','Ship and Boat Building');
+INSERT INTO sic (code,description) VALUES ('336611','Ship Building and Repairing');
+INSERT INTO sic (code,description) VALUES ('336612','Boat Building');
+INSERT INTO sic (code,description) VALUES ('3369','Other Transportation Equipment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33699','Other Transportation Equipment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('336991','Motorcycle, Bicycle, and Parts Manufacturing');
+INSERT INTO sic (code,description) VALUES ('336992','Military Armored Vehicle, Tank, and Tank Component Manufacturing');
+INSERT INTO sic (code,description) VALUES ('336999','All Other Transportation Equipment Manufacturing');
+INSERT INTO sic (code,description) VALUES ('337','Furniture and Related Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3371','Household and Institutional Furniture and Kitchen Cabinet Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33711','Wood Kitchen Cabinet and Countertop Manufacturing');
+INSERT INTO sic (code,description) VALUES ('337110','Wood Kitchen Cabinet and Countertop Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33712','Household and Institutional Furniture Manufacturing');
+INSERT INTO sic (code,description) VALUES ('337121','Upholstered Household Furniture Manufacturing');
+INSERT INTO sic (code,description) VALUES ('337122','Nonupholstered Wood Household Furniture Manufacturing');
+INSERT INTO sic (code,description) VALUES ('337124','Metal Household Furniture Manufacturing');
+INSERT INTO sic (code,description) VALUES ('337125','Household Furniture (except Wood and Metal) Manufacturing');
+INSERT INTO sic (code,description) VALUES ('337127','Institutional Furniture Manufacturing');
+INSERT INTO sic (code,description) VALUES ('337129','Wood Television, Radio, and Sewing Machine Cabinet Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3372','Office Furniture (including Fixtures) Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33721','Office Furniture (including Fixtures) Manufacturing');
+INSERT INTO sic (code,description) VALUES ('337211','Wood Office Furniture Manufacturing');
+INSERT INTO sic (code,description) VALUES ('337212','Custom Architectural Woodwork and Millwork Manufacturing');
+INSERT INTO sic (code,description) VALUES ('337214','Office Furniture (except Wood) Manufacturing');
+INSERT INTO sic (code,description) VALUES ('337215','Showcase, Partition, Shelving, and Locker Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3379','Other Furniture Related Product Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33791','Mattress Manufacturing');
+INSERT INTO sic (code,description) VALUES ('337910','Mattress Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33792','Blind and Shade Manufacturing');
+INSERT INTO sic (code,description) VALUES ('337920','Blind and Shade Manufacturing');
+INSERT INTO sic (code,description) VALUES ('339','Miscellaneous Manufacturing');
+INSERT INTO sic (code,description) VALUES ('3391','Medical Equipment and Supplies Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33911','Medical Equipment and Supplies Manufacturing');
+INSERT INTO sic (code,description) VALUES ('339111','Laboratory Apparatus and Furniture Manufacturing');
+INSERT INTO sic (code,description) VALUES ('339112','Surgical and Medical Instrument Manufacturing');
+INSERT INTO sic (code,description) VALUES ('339113','Surgical Appliance and Supplies Manufacturing');
+INSERT INTO sic (code,description) VALUES ('339114','Dental Equipment and Supplies Manufacturing');
+INSERT INTO sic (code,description) VALUES ('339115','Ophthalmic Goods Manufacturing');
+INSERT INTO sic (code,description) VALUES ('339116','Dental Laboratories');
+INSERT INTO sic (code,description) VALUES ('3399','Other Miscellaneous Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33991','Jewelry and Silverware Manufacturing');
+INSERT INTO sic (code,description) VALUES ('339911','Jewelry (except Costume) Manufacturing');
+INSERT INTO sic (code,description) VALUES ('339912','Silverware and Hollowware Manufacturing');
+INSERT INTO sic (code,description) VALUES ('339913','Jewelers\' Material and Lapidary Work Manufacturing');
+INSERT INTO sic (code,description) VALUES ('339914','Costume Jewelry and Novelty Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33992','Sporting and Athletic Goods Manufacturing');
+INSERT INTO sic (code,description) VALUES ('339920','Sporting and Athletic Goods Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33993','Doll, Toy, and Game Manufacturing');
+INSERT INTO sic (code,description) VALUES ('339931','Doll and Stuffed Toy Manufacturing');
+INSERT INTO sic (code,description) VALUES ('339932','Game, Toy, and Children\'s Vehicle Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33994','Office Supplies (except Paper) Manufacturing');
+INSERT INTO sic (code,description) VALUES ('339941','Pen and Mechanical Pencil Manufacturing');
+INSERT INTO sic (code,description) VALUES ('339942','Lead Pencil and Art Good Manufacturing');
+INSERT INTO sic (code,description) VALUES ('339943','Marking Device Manufacturing');
+INSERT INTO sic (code,description) VALUES ('339944','Carbon Paper and Inked Ribbon Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33995','Sign Manufacturing');
+INSERT INTO sic (code,description) VALUES ('339950','Sign Manufacturing');
+INSERT INTO sic (code,description) VALUES ('33999','All Other Miscellaneous Manufacturing');
+INSERT INTO sic (code,description) VALUES ('339991','Gasket, Packing, and Sealing Device Manufacturing');
+INSERT INTO sic (code,description) VALUES ('339992','Musical Instrument Manufacturing');
+INSERT INTO sic (code,description) VALUES ('339993','Fastener, Button, Needle, and Pin Manufacturing');
+INSERT INTO sic (code,description) VALUES ('339994','Broom, Brush, and Mop Manufacturing');
+INSERT INTO sic (code,description) VALUES ('339995','Burial Casket Manufacturing');
+INSERT INTO sic (code,description) VALUES ('339999','All Other Miscellaneous Manufacturing');
+INSERT INTO sic (code,description) VALUES ('42','Wholesale Trade');
+INSERT INTO sic (code,description) VALUES ('423','Merchant Wholesalers, Durable Goods');
+INSERT INTO sic (code,description) VALUES ('4231','Motor Vehicle and Motor Vehicle Parts and Supplies Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42311','Automobile and Other Motor Vehicle Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('423110','Automobile and Other Motor Vehicle Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42312','Motor Vehicle Supplies and New Parts Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('423120','Motor Vehicle Supplies and New Parts Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42313','Tire and Tube Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('423130','Tire and Tube Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42314','Motor Vehicle Parts (Used) Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('423140','Motor Vehicle Parts (Used) Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('4232','Furniture and Home Furnishing Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42321','Furniture Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('423210','Furniture Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42322','Home Furnishing Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('423220','Home Furnishing Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('4233','Lumber and Other Construction Materials Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42331','Lumber, Plywood, Millwork, and Wood Panel Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('423310','Lumber, Plywood, Millwork, and Wood Panel Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42332','Brick, Stone, and Related Construction Material Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('423320','Brick, Stone, and Related Construction Material Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42333','Roofing, Siding, and Insulation Material Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('423330','Roofing, Siding, and Insulation Material Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42339','Other Construction Material Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('423390','Other Construction Material Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('4234','Professional and Commercial Equipment and Supplies Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42341','Photographic Equipment and Supplies Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('423410','Photographic Equipment and Supplies Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42342','Office Equipment Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('423420','Office Equipment Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42343','Computer and Computer Peripheral Equipment and Software Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('423430','Computer and Computer Peripheral Equipment and Software Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42344','Other Commercial Equipment Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('423440','Other Commercial Equipment Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42345','Medical, Dental, and Hospital Equipment and Supplies Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('423450','Medical, Dental, and Hospital Equipment and Supplies Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42346','Ophthalmic Goods Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('423460','Ophthalmic Goods Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42349','Other Professional Equipment and Supplies Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('423490','Other Professional Equipment and Supplies Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('4235','Metal and Mineral (except Petroleum) Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42351','Metal Service Centers and Other Metal Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('423510','Metal Service Centers and Other Metal Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42352','Coal and Other Mineral and Ore Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('423520','Coal and Other Mineral and Ore Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('4236','Electrical and Electronic Goods Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42361','Electrical Apparatus and Equipment, Wiring Supplies, and Related Equipment Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('423610','Electrical Apparatus and Equipment, Wiring Supplies, and Related Equipment Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42362','Electrical and Electronic Appliance, Television, and Radio Set Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('423620','Electrical and Electronic Appliance, Television, and Radio Set Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42369','Other Electronic Parts and Equipment Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('423690','Other Electronic Parts and Equipment Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('4237','Hardware, and Plumbing and Heating Equipment and Supplies Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42371','Hardware Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('423710','Hardware Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42372','Plumbing and Heating Equipment and Supplies (Hydronics) Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('423720','Plumbing and Heating Equipment and Supplies (Hydronics) Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42373','Warm Air Heating and Air-Conditioning Equipment and Supplies Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('423730','Warm Air Heating and Air-Conditioning Equipment and Supplies Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42374','Refrigeration Equipment and Supplies Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('423740','Refrigeration Equipment and Supplies Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('4238','Machinery, Equipment, and Supplies Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42381','Construction and Mining (except Oil Well) Machinery and Equipment Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('423810','Construction and Mining (except Oil Well) Machinery and Equipment Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42382','Farm and Garden Machinery and Equipment Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('423820','Farm and Garden Machinery and Equipment Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42383','Industrial Machinery and Equipment Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('423830','Industrial Machinery and Equipment Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42384','Industrial Supplies Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('423840','Industrial Supplies Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42385','Service Establishment Equipment and Supplies Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('423850','Service Establishment Equipment and Supplies Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42386','Transportation Equipment and Supplies (except Motor Vehicle) Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('423860','Transportation Equipment and Supplies (except Motor Vehicle) Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('4239','Miscellaneous Durable Goods Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42391','Sporting and Recreational Goods and Supplies Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('423910','Sporting and Recreational Goods and Supplies Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42392','Toy and Hobby Goods and Supplies Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('423920','Toy and Hobby Goods and Supplies Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42393','Recyclable Material Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('423930','Recyclable Material Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42394','Jewelry, Watch, Precious Stone, and Precious Metal Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('423940','Jewelry, Watch, Precious Stone, and Precious Metal Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42399','Other Miscellaneous Durable Goods Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('423990','Other Miscellaneous Durable Goods Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('424','Merchant Wholesalers, Nondurable Goods');
+INSERT INTO sic (code,description) VALUES ('4241','Paper and Paper Product Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42411','Printing and Writing Paper Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('424110','Printing and Writing Paper Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42412','Stationery and Office Supplies Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('424120','Stationery and Office Supplies Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42413','Industrial and Personal Service Paper Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('424130','Industrial and Personal Service Paper Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('4242','Drugs and Druggists\' Sundries Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42421','Drugs and Druggists\' Sundries Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('424210','Drugs and Druggists\' Sundries Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('4243','Apparel, Piece Goods, and Notions Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42431','Piece Goods, Notions, and Other Dry Goods Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('424310','Piece Goods, Notions, and Other Dry Goods Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42432','Men\'s and Boys\' Clothing and Furnishings Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('424320','Men\'s and Boys\' Clothing and Furnishings Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42433','Women\'s, Children\'s, and Infants\' Clothing and Accessories Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('424330','Women\'s, Children\'s, and Infants\' Clothing and Accessories Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42434','Footwear Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('424340','Footwear Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('4244','Grocery and Related Product Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42441','General Line Grocery Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('424410','General Line Grocery Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42442','Packaged Frozen Food Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('424420','Packaged Frozen Food Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42443','Dairy Product (except Dried or Canned) Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('424430','Dairy Product (except Dried or Canned) Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42444','Poultry and Poultry Product Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('424440','Poultry and Poultry Product Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42445','Confectionery Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('424450','Confectionery Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42446','Fish and Seafood Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('424460','Fish and Seafood Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42447','Meat and Meat Product Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('424470','Meat and Meat Product Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42448','Fresh Fruit and Vegetable Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('424480','Fresh Fruit and Vegetable Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42449','Other Grocery and Related Products Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('424490','Other Grocery and Related Products Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('4245','Farm Product Raw Material Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42451','Grain and Field Bean Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('424510','Grain and Field Bean Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42452','Livestock Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('424520','Livestock Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42459','Other Farm Product Raw Material Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('424590','Other Farm Product Raw Material Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('4246','Chemical and Allied Products Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42461','Plastics Materials and Basic Forms and Shapes Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('424610','Plastics Materials and Basic Forms and Shapes Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42469','Other Chemical and Allied Products Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('424690','Other Chemical and Allied Products Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('4247','Petroleum and Petroleum Products Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42471','Petroleum Bulk Stations and Terminals');
+INSERT INTO sic (code,description) VALUES ('424710','Petroleum Bulk Stations and Terminals');
+INSERT INTO sic (code,description) VALUES ('42472','Petroleum and Petroleum Products Merchant Wholesalers (except Bulk Stations and Terminals)');
+INSERT INTO sic (code,description) VALUES ('424720','Petroleum and Petroleum Products Merchant Wholesalers (except Bulk Stations and Terminals)');
+INSERT INTO sic (code,description) VALUES ('4248','Beer, Wine, and Distilled Alcoholic Beverage Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42481','Beer and Ale Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('424810','Beer and Ale Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42482','Wine and Distilled Alcoholic Beverage Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('424820','Wine and Distilled Alcoholic Beverage Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('4249','Miscellaneous Nondurable Goods Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42491','Farm Supplies Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('424910','Farm Supplies Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42492','Book, Periodical, and Newspaper Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('424920','Book, Periodical, and Newspaper Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42493','Flower, Nursery Stock, and Florists\' Supplies Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('424930','Flower, Nursery Stock, and Florists\' Supplies Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42494','Tobacco and Tobacco Product Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('424940','Tobacco and Tobacco Product Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42495','Paint, Varnish, and Supplies Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('424950','Paint, Varnish, and Supplies Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('42499','Other Miscellaneous Nondurable Goods Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('424990','Other Miscellaneous Nondurable Goods Merchant Wholesalers');
+INSERT INTO sic (code,description) VALUES ('425','Wholesale Electronic Markets and Agents and Brokers');
+INSERT INTO sic (code,description) VALUES ('4251','Wholesale Electronic Markets and Agents and Brokers');
+INSERT INTO sic (code,description) VALUES ('42511','Business to Business Electronic Markets');
+INSERT INTO sic (code,description) VALUES ('425110','Business to Business Electronic Markets');
+INSERT INTO sic (code,description) VALUES ('42512','Wholesale Trade Agents and Brokers');
+INSERT INTO sic (code,description) VALUES ('425120','Wholesale Trade Agents and Brokers');
+INSERT INTO sic (code,description) VALUES ('44-45','Retail Trade');
+INSERT INTO sic (code,description) VALUES ('441','Motor Vehicle and Parts Dealers');
+INSERT INTO sic (code,description) VALUES ('4411','Automobile Dealers');
+INSERT INTO sic (code,description) VALUES ('44111','New Car Dealers');
+INSERT INTO sic (code,description) VALUES ('441110','New Car Dealers');
+INSERT INTO sic (code,description) VALUES ('44112','Used Car Dealers');
+INSERT INTO sic (code,description) VALUES ('441120','Used Car Dealers');
+INSERT INTO sic (code,description) VALUES ('4412','Other Motor Vehicle Dealers');
+INSERT INTO sic (code,description) VALUES ('44121','Recreational Vehicle Dealers');
+INSERT INTO sic (code,description) VALUES ('441210','Recreational Vehicle Dealers');
+INSERT INTO sic (code,description) VALUES ('44122','Motorcycle, Boat, and Other Motor Vehicle Dealers');
+INSERT INTO sic (code,description) VALUES ('441221','Motorcycle Dealers');
+INSERT INTO sic (code,description) VALUES ('441222','Boat Dealers');
+INSERT INTO sic (code,description) VALUES ('441229','All Other Motor Vehicle Dealers');
+INSERT INTO sic (code,description) VALUES ('4413','Automotive Parts, Accessories, and Tire Stores');
+INSERT INTO sic (code,description) VALUES ('44131','Automotive Parts and Accessories Stores');
+INSERT INTO sic (code,description) VALUES ('441310','Automotive Parts and Accessories Stores');
+INSERT INTO sic (code,description) VALUES ('44132','Tire Dealers');
+INSERT INTO sic (code,description) VALUES ('441320','Tire Dealers');
+INSERT INTO sic (code,description) VALUES ('442','Furniture and Home Furnishings Stores');
+INSERT INTO sic (code,description) VALUES ('4421','Furniture Stores');
+INSERT INTO sic (code,description) VALUES ('44211','Furniture Stores');
+INSERT INTO sic (code,description) VALUES ('442110','Furniture Stores');
+INSERT INTO sic (code,description) VALUES ('4422','Home Furnishings Stores');
+INSERT INTO sic (code,description) VALUES ('44221','Floor Covering Stores');
+INSERT INTO sic (code,description) VALUES ('442210','Floor Covering Stores');
+INSERT INTO sic (code,description) VALUES ('44229','Other Home Furnishings Stores');
+INSERT INTO sic (code,description) VALUES ('442291','Window Treatment Stores');
+INSERT INTO sic (code,description) VALUES ('442299','All Other Home Furnishings Stores');
+INSERT INTO sic (code,description) VALUES ('443','Electronics and Appliance Stores');
+INSERT INTO sic (code,description) VALUES ('4431','Electronics and Appliance Stores');
+INSERT INTO sic (code,description) VALUES ('44311','Appliance, Television, and Other Electronics Stores');
+INSERT INTO sic (code,description) VALUES ('443111','Household Appliance Stores');
+INSERT INTO sic (code,description) VALUES ('443112','Radio, Television, and Other Electronics Stores');
+INSERT INTO sic (code,description) VALUES ('44312','Computer and Software Stores');
+INSERT INTO sic (code,description) VALUES ('443120','Computer and Software Stores');
+INSERT INTO sic (code,description) VALUES ('44313','Camera and Photographic Supplies Stores');
+INSERT INTO sic (code,description) VALUES ('443130','Camera and Photographic Supplies Stores');
+INSERT INTO sic (code,description) VALUES ('444','Building Material and Garden Equipment and Supplies Dealers');
+INSERT INTO sic (code,description) VALUES ('4441','Building Material and Supplies Dealers');
+INSERT INTO sic (code,description) VALUES ('44411','Home Centers');
+INSERT INTO sic (code,description) VALUES ('444110','Home Centers');
+INSERT INTO sic (code,description) VALUES ('44412','Paint and Wallpaper Stores');
+INSERT INTO sic (code,description) VALUES ('444120','Paint and Wallpaper Stores');
+INSERT INTO sic (code,description) VALUES ('44413','Hardware Stores');
+INSERT INTO sic (code,description) VALUES ('444130','Hardware Stores');
+INSERT INTO sic (code,description) VALUES ('44419','Other Building Material Dealers');
+INSERT INTO sic (code,description) VALUES ('444190','Other Building Material Dealers');
+INSERT INTO sic (code,description) VALUES ('4442','Lawn and Garden Equipment and Supplies Stores');
+INSERT INTO sic (code,description) VALUES ('44421','Outdoor Power Equipment Stores');
+INSERT INTO sic (code,description) VALUES ('444210','Outdoor Power Equipment Stores');
+INSERT INTO sic (code,description) VALUES ('44422','Nursery, Garden Center, and Farm Supply Stores');
+INSERT INTO sic (code,description) VALUES ('444220','Nursery, Garden Center, and Farm Supply Stores');
+INSERT INTO sic (code,description) VALUES ('445','Food and Beverage Stores');
+INSERT INTO sic (code,description) VALUES ('4451','Grocery Stores');
+INSERT INTO sic (code,description) VALUES ('44511','Supermarkets and Other Grocery (except Convenience) Stores');
+INSERT INTO sic (code,description) VALUES ('445110','Supermarkets and Other Grocery (except Convenience) Stores');
+INSERT INTO sic (code,description) VALUES ('44512','Convenience Stores');
+INSERT INTO sic (code,description) VALUES ('445120','Convenience Stores');
+INSERT INTO sic (code,description) VALUES ('4452','Specialty Food Stores');
+INSERT INTO sic (code,description) VALUES ('44521','Meat Markets');
+INSERT INTO sic (code,description) VALUES ('445210','Meat Markets');
+INSERT INTO sic (code,description) VALUES ('44522','Fish and Seafood Markets');
+INSERT INTO sic (code,description) VALUES ('445220','Fish and Seafood Markets');
+INSERT INTO sic (code,description) VALUES ('44523','Fruit and Vegetable Markets');
+INSERT INTO sic (code,description) VALUES ('445230','Fruit and Vegetable Markets');
+INSERT INTO sic (code,description) VALUES ('44529','Other Specialty Food Stores');
+INSERT INTO sic (code,description) VALUES ('445291','Baked Goods Stores');
+INSERT INTO sic (code,description) VALUES ('445292','Confectionery and Nut Stores');
+INSERT INTO sic (code,description) VALUES ('445299','All Other Specialty Food Stores');
+INSERT INTO sic (code,description) VALUES ('4453','Beer, Wine, and Liquor Stores');
+INSERT INTO sic (code,description) VALUES ('44531','Beer, Wine, and Liquor Stores');
+INSERT INTO sic (code,description) VALUES ('445310','Beer, Wine, and Liquor Stores');
+INSERT INTO sic (code,description) VALUES ('446','Health and Personal Care Stores');
+INSERT INTO sic (code,description) VALUES ('4461','Health and Personal Care Stores');
+INSERT INTO sic (code,description) VALUES ('44611','Pharmacies and Drug Stores');
+INSERT INTO sic (code,description) VALUES ('446110','Pharmacies and Drug Stores');
+INSERT INTO sic (code,description) VALUES ('44612','Cosmetics, Beauty Supplies, and Perfume Stores');
+INSERT INTO sic (code,description) VALUES ('446120','Cosmetics, Beauty Supplies, and Perfume Stores');
+INSERT INTO sic (code,description) VALUES ('44613','Optical Goods Stores');
+INSERT INTO sic (code,description) VALUES ('446130','Optical Goods Stores');
+INSERT INTO sic (code,description) VALUES ('44619','Other Health and Personal Care Stores');
+INSERT INTO sic (code,description) VALUES ('446191','Food (Health) Supplement Stores');
+INSERT INTO sic (code,description) VALUES ('446199','All Other Health and Personal Care Stores');
+INSERT INTO sic (code,description) VALUES ('447','Gasoline Stations');
+INSERT INTO sic (code,description) VALUES ('4471','Gasoline Stations');
+INSERT INTO sic (code,description) VALUES ('44711','Gasoline Stations with Convenience Stores');
+INSERT INTO sic (code,description) VALUES ('447110','Gasoline Stations with Convenience Stores');
+INSERT INTO sic (code,description) VALUES ('44719','Other Gasoline Stations');
+INSERT INTO sic (code,description) VALUES ('447190','Other Gasoline Stations');
+INSERT INTO sic (code,description) VALUES ('448','Clothing and Clothing Accessories Stores');
+INSERT INTO sic (code,description) VALUES ('4481','Clothing Stores');
+INSERT INTO sic (code,description) VALUES ('44811','Men\'s Clothing Stores');
+INSERT INTO sic (code,description) VALUES ('448110','Men\'s Clothing Stores');
+INSERT INTO sic (code,description) VALUES ('44812','Women\'s Clothing Stores');
+INSERT INTO sic (code,description) VALUES ('448120','Women\'s Clothing Stores');
+INSERT INTO sic (code,description) VALUES ('44813','Children\'s and Infants\' Clothing Stores');
+INSERT INTO sic (code,description) VALUES ('448130','Children\'s and Infants\' Clothing Stores');
+INSERT INTO sic (code,description) VALUES ('44814','Family Clothing Stores');
+INSERT INTO sic (code,description) VALUES ('448140','Family Clothing Stores');
+INSERT INTO sic (code,description) VALUES ('44815','Clothing Accessories Stores');
+INSERT INTO sic (code,description) VALUES ('448150','Clothing Accessories Stores');
+INSERT INTO sic (code,description) VALUES ('44819','Other Clothing Stores');
+INSERT INTO sic (code,description) VALUES ('448190','Other Clothing Stores');
+INSERT INTO sic (code,description) VALUES ('4482','Shoe Stores');
+INSERT INTO sic (code,description) VALUES ('44821','Shoe Stores');
+INSERT INTO sic (code,description) VALUES ('448210','Shoe Stores');
+INSERT INTO sic (code,description) VALUES ('4483','Jewelry, Luggage, and Leather Goods Stores');
+INSERT INTO sic (code,description) VALUES ('44831','Jewelry Stores');
+INSERT INTO sic (code,description) VALUES ('448310','Jewelry Stores');
+INSERT INTO sic (code,description) VALUES ('44832','Luggage and Leather Goods Stores');
+INSERT INTO sic (code,description) VALUES ('448320','Luggage and Leather Goods Stores');
+INSERT INTO sic (code,description) VALUES ('451','Sporting Goods, Hobby, Book, and Music Stores');
+INSERT INTO sic (code,description) VALUES ('4511','Sporting Goods, Hobby, and Musical Instrument Stores');
+INSERT INTO sic (code,description) VALUES ('45111','Sporting Goods Stores');
+INSERT INTO sic (code,description) VALUES ('451110','Sporting Goods Stores');
+INSERT INTO sic (code,description) VALUES ('45112','Hobby, Toy, and Game Stores');
+INSERT INTO sic (code,description) VALUES ('451120','Hobby, Toy, and Game Stores');
+INSERT INTO sic (code,description) VALUES ('45113','Sewing, Needlework, and Piece Goods Stores');
+INSERT INTO sic (code,description) VALUES ('451130','Sewing, Needlework, and Piece Goods Stores');
+INSERT INTO sic (code,description) VALUES ('45114','Musical Instrument and Supplies Stores');
+INSERT INTO sic (code,description) VALUES ('451140','Musical Instrument and Supplies Stores');
+INSERT INTO sic (code,description) VALUES ('4512','Book, Periodical, and Music Stores');
+INSERT INTO sic (code,description) VALUES ('45121','Book Stores and News Dealers');
+INSERT INTO sic (code,description) VALUES ('451211','Book Stores');
+INSERT INTO sic (code,description) VALUES ('451212','News Dealers and Newsstands');
+INSERT INTO sic (code,description) VALUES ('45122','Prerecorded Tape, Compact Disc, and Record Stores');
+INSERT INTO sic (code,description) VALUES ('451220','Prerecorded Tape, Compact Disc, and Record Stores');
+INSERT INTO sic (code,description) VALUES ('452','General Merchandise Stores');
+INSERT INTO sic (code,description) VALUES ('4521','Department Stores');
+INSERT INTO sic (code,description) VALUES ('45211','Department Stores');
+INSERT INTO sic (code,description) VALUES ('452111','Department Stores (except Discount Department Stores)');
+INSERT INTO sic (code,description) VALUES ('452112','Discount Department Stores');
+INSERT INTO sic (code,description) VALUES ('4529','Other General Merchandise Stores');
+INSERT INTO sic (code,description) VALUES ('45291','Warehouse Clubs and Supercenters');
+INSERT INTO sic (code,description) VALUES ('452910','Warehouse Clubs and Supercenters');
+INSERT INTO sic (code,description) VALUES ('45299','All Other General Merchandise Stores');
+INSERT INTO sic (code,description) VALUES ('452990','All Other General Merchandise Stores');
+INSERT INTO sic (code,description) VALUES ('453','Miscellaneous Store Retailers');
+INSERT INTO sic (code,description) VALUES ('4531','Florists');
+INSERT INTO sic (code,description) VALUES ('45311','Florists');
+INSERT INTO sic (code,description) VALUES ('453110','Florists');
+INSERT INTO sic (code,description) VALUES ('4532','Office Supplies, Stationery, and Gift Stores');
+INSERT INTO sic (code,description) VALUES ('45321','Office Supplies and Stationery Stores');
+INSERT INTO sic (code,description) VALUES ('453210','Office Supplies and Stationery Stores');
+INSERT INTO sic (code,description) VALUES ('45322','Gift, Novelty, and Souvenir Stores');
+INSERT INTO sic (code,description) VALUES ('453220','Gift, Novelty, and Souvenir Stores');
+INSERT INTO sic (code,description) VALUES ('4533','Used Merchandise Stores');
+INSERT INTO sic (code,description) VALUES ('45331','Used Merchandise Stores');
+INSERT INTO sic (code,description) VALUES ('453310','Used Merchandise Stores');
+INSERT INTO sic (code,description) VALUES ('4539','Other Miscellaneous Store Retailers');
+INSERT INTO sic (code,description) VALUES ('45391','Pet and Pet Supplies Stores');
+INSERT INTO sic (code,description) VALUES ('453910','Pet and Pet Supplies Stores');
+INSERT INTO sic (code,description) VALUES ('45392','Art Dealers');
+INSERT INTO sic (code,description) VALUES ('453920','Art Dealers');
+INSERT INTO sic (code,description) VALUES ('45393','Manufactured (Mobile) Home Dealers');
+INSERT INTO sic (code,description) VALUES ('453930','Manufactured (Mobile) Home Dealers');
+INSERT INTO sic (code,description) VALUES ('45399','All Other Miscellaneous Store Retailers');
+INSERT INTO sic (code,description) VALUES ('453991','Tobacco Stores');
+INSERT INTO sic (code,description) VALUES ('453998','All Other Miscellaneous Store Retailers (except Tobacco Stores)');
+INSERT INTO sic (code,description) VALUES ('454','Nonstore Retailers');
+INSERT INTO sic (code,description) VALUES ('4541','Electronic Shopping and Mail-Order Houses');
+INSERT INTO sic (code,description) VALUES ('45411','Electronic Shopping and Mail-Order Houses');
+INSERT INTO sic (code,description) VALUES ('454111','Electronic Shopping');
+INSERT INTO sic (code,description) VALUES ('454112','Electronic Auctions');
+INSERT INTO sic (code,description) VALUES ('454113','Mail-Order Houses');
+INSERT INTO sic (code,description) VALUES ('4542','Vending Machine Operators');
+INSERT INTO sic (code,description) VALUES ('45421','Vending Machine Operators');
+INSERT INTO sic (code,description) VALUES ('454210','Vending Machine Operators');
+INSERT INTO sic (code,description) VALUES ('4543','Direct Selling Establishments');
+INSERT INTO sic (code,description) VALUES ('45431','Fuel Dealers');
+INSERT INTO sic (code,description) VALUES ('454311','Heating Oil Dealers');
+INSERT INTO sic (code,description) VALUES ('454312','Liquefied Petroleum Gas (Bottled Gas) Dealers');
+INSERT INTO sic (code,description) VALUES ('454319','Other Fuel Dealers');
+INSERT INTO sic (code,description) VALUES ('45439','Other Direct Selling Establishments');
+INSERT INTO sic (code,description) VALUES ('454390','Other Direct Selling Establishments');
+INSERT INTO sic (code,description) VALUES ('48-49','Transportation and Warehousing');
+INSERT INTO sic (code,description) VALUES ('481','Air Transportation');
+INSERT INTO sic (code,description) VALUES ('4811','Scheduled Air Transportation');
+INSERT INTO sic (code,description) VALUES ('48111','Scheduled Air Transportation');
+INSERT INTO sic (code,description) VALUES ('481111','Scheduled Passenger Air Transportation');
+INSERT INTO sic (code,description) VALUES ('481112','Scheduled Freight Air Transportation');
+INSERT INTO sic (code,description) VALUES ('4812','Nonscheduled Air Transportation');
+INSERT INTO sic (code,description) VALUES ('48121','Nonscheduled Air Transportation');
+INSERT INTO sic (code,description) VALUES ('481211','Nonscheduled Chartered Passenger Air Transportation');
+INSERT INTO sic (code,description) VALUES ('481212','Nonscheduled Chartered Freight Air Transportation');
+INSERT INTO sic (code,description) VALUES ('481219','Other Nonscheduled Air Transportation');
+INSERT INTO sic (code,description) VALUES ('482','Rail Transportation');
+INSERT INTO sic (code,description) VALUES ('4821','Rail Transportation');
+INSERT INTO sic (code,description) VALUES ('48211','Rail Transportation');
+INSERT INTO sic (code,description) VALUES ('482111','Line-Haul Railroads');
+INSERT INTO sic (code,description) VALUES ('482112','Short Line Railroads');
+INSERT INTO sic (code,description) VALUES ('483','Water Transportation');
+INSERT INTO sic (code,description) VALUES ('4831','Deep Sea, Coastal, and Great Lakes Water Transportation');
+INSERT INTO sic (code,description) VALUES ('48311','Deep Sea, Coastal, and Great Lakes Water Transportation');
+INSERT INTO sic (code,description) VALUES ('483111','Deep Sea Freight Transportation');
+INSERT INTO sic (code,description) VALUES ('483112','Deep Sea Passenger Transportation');
+INSERT INTO sic (code,description) VALUES ('483113','Coastal and Great Lakes Freight Transportation');
+INSERT INTO sic (code,description) VALUES ('483114','Coastal and Great Lakes Passenger Transportation');
+INSERT INTO sic (code,description) VALUES ('4832','Inland Water Transportation');
+INSERT INTO sic (code,description) VALUES ('48321','Inland Water Transportation');
+INSERT INTO sic (code,description) VALUES ('483211','Inland Water Freight Transportation');
+INSERT INTO sic (code,description) VALUES ('483212','Inland Water Passenger Transportation');
+INSERT INTO sic (code,description) VALUES ('484','Truck Transportation');
+INSERT INTO sic (code,description) VALUES ('4841','General Freight Trucking');
+INSERT INTO sic (code,description) VALUES ('48411','General Freight Trucking, Local');
+INSERT INTO sic (code,description) VALUES ('484110','General Freight Trucking, Local');
+INSERT INTO sic (code,description) VALUES ('48412','General Freight Trucking, Long-Distance');
+INSERT INTO sic (code,description) VALUES ('484121','General Freight Trucking, Long-Distance, Truckload');
+INSERT INTO sic (code,description) VALUES ('484122','General Freight Trucking, Long-Distance, Less Than Truckload');
+INSERT INTO sic (code,description) VALUES ('4842','Specialized Freight Trucking');
+INSERT INTO sic (code,description) VALUES ('48421','Used Household and Office Goods Moving');
+INSERT INTO sic (code,description) VALUES ('484210','Used Household and Office Goods Moving');
+INSERT INTO sic (code,description) VALUES ('48422','Specialized Freight (except Used Goods) Trucking, Local');
+INSERT INTO sic (code,description) VALUES ('484220','Specialized Freight (except Used Goods) Trucking, Local');
+INSERT INTO sic (code,description) VALUES ('48423','Specialized Freight (except Used Goods) Trucking, Long-Distance');
+INSERT INTO sic (code,description) VALUES ('484230','Specialized Freight (except Used Goods) Trucking, Long-Distance');
+INSERT INTO sic (code,description) VALUES ('485','Transit and Ground Passenger Transportation');
+INSERT INTO sic (code,description) VALUES ('4851','Urban Transit Systems');
+INSERT INTO sic (code,description) VALUES ('48511','Urban Transit Systems');
+INSERT INTO sic (code,description) VALUES ('485111','Mixed Mode Transit Systems');
+INSERT INTO sic (code,description) VALUES ('485112','Commuter Rail Systems');
+INSERT INTO sic (code,description) VALUES ('485113','Bus and Other Motor Vehicle Transit Systems');
+INSERT INTO sic (code,description) VALUES ('485119','Other Urban Transit Systems');
+INSERT INTO sic (code,description) VALUES ('4852','Interurban and Rural Bus Transportation');
+INSERT INTO sic (code,description) VALUES ('48521','Interurban and Rural Bus Transportation');
+INSERT INTO sic (code,description) VALUES ('485210','Interurban and Rural Bus Transportation');
+INSERT INTO sic (code,description) VALUES ('4853','Taxi and Limousine Service');
+INSERT INTO sic (code,description) VALUES ('48531','Taxi Service');
+INSERT INTO sic (code,description) VALUES ('485310','Taxi Service');
+INSERT INTO sic (code,description) VALUES ('48532','Limousine Service');
+INSERT INTO sic (code,description) VALUES ('485320','Limousine Service');
+INSERT INTO sic (code,description) VALUES ('4854','School and Employee Bus Transportation');
+INSERT INTO sic (code,description) VALUES ('48541','School and Employee Bus Transportation');
+INSERT INTO sic (code,description) VALUES ('485410','School and Employee Bus Transportation');
+INSERT INTO sic (code,description) VALUES ('4855','Charter Bus Industry');
+INSERT INTO sic (code,description) VALUES ('48551','Charter Bus Industry');
+INSERT INTO sic (code,description) VALUES ('485510','Charter Bus Industry');
+INSERT INTO sic (code,description) VALUES ('4859','Other Transit and Ground Passenger Transportation');
+INSERT INTO sic (code,description) VALUES ('48599','Other Transit and Ground Passenger Transportation');
+INSERT INTO sic (code,description) VALUES ('485991','Special Needs Transportation');
+INSERT INTO sic (code,description) VALUES ('485999','All Other Transit and Ground Passenger Transportation');
+INSERT INTO sic (code,description) VALUES ('486','Pipeline Transportation');
+INSERT INTO sic (code,description) VALUES ('4861','Pipeline Transportation of Crude Oil');
+INSERT INTO sic (code,description) VALUES ('48611','Pipeline Transportation of Crude Oil');
+INSERT INTO sic (code,description) VALUES ('486110','Pipeline Transportation of Crude Oil');
+INSERT INTO sic (code,description) VALUES ('4862','Pipeline Transportation of Natural Gas');
+INSERT INTO sic (code,description) VALUES ('48621','Pipeline Transportation of Natural Gas');
+INSERT INTO sic (code,description) VALUES ('486210','Pipeline Transportation of Natural Gas');
+INSERT INTO sic (code,description) VALUES ('4869','Other Pipeline Transportation');
+INSERT INTO sic (code,description) VALUES ('48691','Pipeline Transportation of Refined Petroleum Products');
+INSERT INTO sic (code,description) VALUES ('486910','Pipeline Transportation of Refined Petroleum Products');
+INSERT INTO sic (code,description) VALUES ('48699','All Other Pipeline Transportation');
+INSERT INTO sic (code,description) VALUES ('486990','All Other Pipeline Transportation');
+INSERT INTO sic (code,description) VALUES ('487','Scenic and Sightseeing Transportation');
+INSERT INTO sic (code,description) VALUES ('4871','Scenic and Sightseeing Transportation, Land');
+INSERT INTO sic (code,description) VALUES ('48711','Scenic and Sightseeing Transportation, Land');
+INSERT INTO sic (code,description) VALUES ('487110','Scenic and Sightseeing Transportation, Land');
+INSERT INTO sic (code,description) VALUES ('4872','Scenic and Sightseeing Transportation, Water');
+INSERT INTO sic (code,description) VALUES ('48721','Scenic and Sightseeing Transportation, Water');
+INSERT INTO sic (code,description) VALUES ('487210','Scenic and Sightseeing Transportation, Water');
+INSERT INTO sic (code,description) VALUES ('4879','Scenic and Sightseeing Transportation, Other');
+INSERT INTO sic (code,description) VALUES ('48799','Scenic and Sightseeing Transportation, Other');
+INSERT INTO sic (code,description) VALUES ('487990','Scenic and Sightseeing Transportation, Other');
+INSERT INTO sic (code,description) VALUES ('488','Support Activities for Transportation');
+INSERT INTO sic (code,description) VALUES ('4881','Support Activities for Air Transportation');
+INSERT INTO sic (code,description) VALUES ('48811','Airport Operations');
+INSERT INTO sic (code,description) VALUES ('488111','Air Traffic Control');
+INSERT INTO sic (code,description) VALUES ('488119','Other Airport Operations');
+INSERT INTO sic (code,description) VALUES ('48819','Other Support Activities for Air Transportation');
+INSERT INTO sic (code,description) VALUES ('488190','Other Support Activities for Air Transportation');
+INSERT INTO sic (code,description) VALUES ('4882','Support Activities for Rail Transportation');
+INSERT INTO sic (code,description) VALUES ('48821','Support Activities for Rail Transportation');
+INSERT INTO sic (code,description) VALUES ('488210','Support Activities for Rail Transportation');
+INSERT INTO sic (code,description) VALUES ('4883','Support Activities for Water Transportation');
+INSERT INTO sic (code,description) VALUES ('48831','Port and Harbor Operations');
+INSERT INTO sic (code,description) VALUES ('488310','Port and Harbor Operations');
+INSERT INTO sic (code,description) VALUES ('48832','Marine Cargo Handling');
+INSERT INTO sic (code,description) VALUES ('488320','Marine Cargo Handling');
+INSERT INTO sic (code,description) VALUES ('48833','Navigational Services to Shipping');
+INSERT INTO sic (code,description) VALUES ('488330','Navigational Services to Shipping');
+INSERT INTO sic (code,description) VALUES ('48839','Other Support Activities for Water Transportation');
+INSERT INTO sic (code,description) VALUES ('488390','Other Support Activities for Water Transportation');
+INSERT INTO sic (code,description) VALUES ('4884','Support Activities for Road Transportation');
+INSERT INTO sic (code,description) VALUES ('48841','Motor Vehicle Towing');
+INSERT INTO sic (code,description) VALUES ('488410','Motor Vehicle Towing');
+INSERT INTO sic (code,description) VALUES ('48849','Other Support Activities for Road Transportation');
+INSERT INTO sic (code,description) VALUES ('488490','Other Support Activities for Road Transportation');
+INSERT INTO sic (code,description) VALUES ('4885','Freight Transportation Arrangement');
+INSERT INTO sic (code,description) VALUES ('48851','Freight Transportation Arrangement');
+INSERT INTO sic (code,description) VALUES ('488510','Freight Transportation Arrangement');
+INSERT INTO sic (code,description) VALUES ('4889','Other Support Activities for Transportation');
+INSERT INTO sic (code,description) VALUES ('48899','Other Support Activities for Transportation');
+INSERT INTO sic (code,description) VALUES ('488991','Packing and Crating');
+INSERT INTO sic (code,description) VALUES ('488999','All Other Support Activities for Transportation');
+INSERT INTO sic (code,description) VALUES ('491','Postal Service');
+INSERT INTO sic (code,description) VALUES ('4911','Postal Service');
+INSERT INTO sic (code,description) VALUES ('49111','Postal Service');
+INSERT INTO sic (code,description) VALUES ('491110','Postal Service');
+INSERT INTO sic (code,description) VALUES ('492','Couriers and Messengers');
+INSERT INTO sic (code,description) VALUES ('4921','Couriers');
+INSERT INTO sic (code,description) VALUES ('49211','Couriers');
+INSERT INTO sic (code,description) VALUES ('492110','Couriers');
+INSERT INTO sic (code,description) VALUES ('4922','Local Messengers and Local Delivery');
+INSERT INTO sic (code,description) VALUES ('49221','Local Messengers and Local Delivery');
+INSERT INTO sic (code,description) VALUES ('492210','Local Messengers and Local Delivery');
+INSERT INTO sic (code,description) VALUES ('493','Warehousing and Storage');
+INSERT INTO sic (code,description) VALUES ('4931','Warehousing and Storage');
+INSERT INTO sic (code,description) VALUES ('49311','General Warehousing and Storage');
+INSERT INTO sic (code,description) VALUES ('493110','General Warehousing and Storage');
+INSERT INTO sic (code,description) VALUES ('49312','Refrigerated Warehousing and Storage');
+INSERT INTO sic (code,description) VALUES ('493120','Refrigerated Warehousing and Storage');
+INSERT INTO sic (code,description) VALUES ('49313','Farm Product Warehousing and Storage');
+INSERT INTO sic (code,description) VALUES ('493130','Farm Product Warehousing and Storage');
+INSERT INTO sic (code,description) VALUES ('49319','Other Warehousing and Storage');
+INSERT INTO sic (code,description) VALUES ('493190','Other Warehousing and Storage');
+INSERT INTO sic (code,description) VALUES ('51','Information');
+INSERT INTO sic (code,description) VALUES ('511','Publishing Industries (except Internet)');
+INSERT INTO sic (code,description) VALUES ('5111','Newspaper, Periodical, Book, and Directory Publishers');
+INSERT INTO sic (code,description) VALUES ('51111','Newspaper Publishers');
+INSERT INTO sic (code,description) VALUES ('511110','Newspaper Publishers');
+INSERT INTO sic (code,description) VALUES ('51112','Periodical Publishers');
+INSERT INTO sic (code,description) VALUES ('511120','Periodical Publishers');
+INSERT INTO sic (code,description) VALUES ('51113','Book Publishers');
+INSERT INTO sic (code,description) VALUES ('511130','Book Publishers');
+INSERT INTO sic (code,description) VALUES ('51114','Directory and Mailing List Publishers');
+INSERT INTO sic (code,description) VALUES ('511140','Directory and Mailing List Publishers');
+INSERT INTO sic (code,description) VALUES ('51119','Other Publishers');
+INSERT INTO sic (code,description) VALUES ('511191','Greeting Card Publishers');
+INSERT INTO sic (code,description) VALUES ('511199','All Other Publishers');
+INSERT INTO sic (code,description) VALUES ('5112','Software Publishers');
+INSERT INTO sic (code,description) VALUES ('51121','Software Publishers');
+INSERT INTO sic (code,description) VALUES ('511210','Software Publishers');
+INSERT INTO sic (code,description) VALUES ('512','Motion Picture and Sound Recording Industries');
+INSERT INTO sic (code,description) VALUES ('5121','Motion Picture and Video Industries');
+INSERT INTO sic (code,description) VALUES ('51211','Motion Picture and Video Production');
+INSERT INTO sic (code,description) VALUES ('512110','Motion Picture and Video Production');
+INSERT INTO sic (code,description) VALUES ('51212','Motion Picture and Video Distribution');
+INSERT INTO sic (code,description) VALUES ('512120','Motion Picture and Video Distribution');
+INSERT INTO sic (code,description) VALUES ('51213','Motion Picture and Video Exhibition');
+INSERT INTO sic (code,description) VALUES ('512131','Motion Picture Theaters (except Drive-Ins)');
+INSERT INTO sic (code,description) VALUES ('512132','Drive-In Motion Picture Theaters');
+INSERT INTO sic (code,description) VALUES ('51219','Postproduction Services and Other Motion Picture and Video Industries');
+INSERT INTO sic (code,description) VALUES ('512191','Teleproduction and Other Postproduction Services');
+INSERT INTO sic (code,description) VALUES ('512199','Other Motion Picture and Video Industries');
+INSERT INTO sic (code,description) VALUES ('5122','Sound Recording Industries');
+INSERT INTO sic (code,description) VALUES ('51221','Record Production');
+INSERT INTO sic (code,description) VALUES ('512210','Record Production');
+INSERT INTO sic (code,description) VALUES ('51222','Integrated Record Production/Distribution');
+INSERT INTO sic (code,description) VALUES ('512220','Integrated Record Production/Distribution');
+INSERT INTO sic (code,description) VALUES ('51223','Music Publishers');
+INSERT INTO sic (code,description) VALUES ('512230','Music Publishers');
+INSERT INTO sic (code,description) VALUES ('51224','Sound Recording Studios');
+INSERT INTO sic (code,description) VALUES ('512240','Sound Recording Studios');
+INSERT INTO sic (code,description) VALUES ('51229','Other Sound Recording Industries');
+INSERT INTO sic (code,description) VALUES ('512290','Other Sound Recording Industries');
+INSERT INTO sic (code,description) VALUES ('515','Broadcasting (except Internet)');
+INSERT INTO sic (code,description) VALUES ('5151','Radio and Television Broadcasting');
+INSERT INTO sic (code,description) VALUES ('51511','Radio Broadcasting');
+INSERT INTO sic (code,description) VALUES ('515111','Radio Networks');
+INSERT INTO sic (code,description) VALUES ('515112','Radio Stations');
+INSERT INTO sic (code,description) VALUES ('51512','Television Broadcasting');
+INSERT INTO sic (code,description) VALUES ('515120','Television Broadcasting');
+INSERT INTO sic (code,description) VALUES ('5152','Cable and Other Subscription Programming');
+INSERT INTO sic (code,description) VALUES ('51521','Cable and Other Subscription Programming');
+INSERT INTO sic (code,description) VALUES ('515210','Cable and Other Subscription Programming');
+INSERT INTO sic (code,description) VALUES ('516','Internet Publishing and Broadcasting');
+INSERT INTO sic (code,description) VALUES ('5161','Internet Publishing and Broadcasting');
+INSERT INTO sic (code,description) VALUES ('51611','Internet Publishing and Broadcasting');
+INSERT INTO sic (code,description) VALUES ('516110','Internet Publishing and Broadcasting');
+INSERT INTO sic (code,description) VALUES ('517','Telecommunications');
+INSERT INTO sic (code,description) VALUES ('5171','Wired Telecommunications Carriers');
+INSERT INTO sic (code,description) VALUES ('51711','Wired Telecommunications Carriers');
+INSERT INTO sic (code,description) VALUES ('517110','Wired Telecommunications Carriers');
+INSERT INTO sic (code,description) VALUES ('5172','Wireless Telecommunications Carriers (except Satellite)');
+INSERT INTO sic (code,description) VALUES ('51721','Wireless Telecommunications Carriers (except Satellite)');
+INSERT INTO sic (code,description) VALUES ('517211','Paging');
+INSERT INTO sic (code,description) VALUES ('517212','Cellular and Other Wireless Telecommunications');
+INSERT INTO sic (code,description) VALUES ('5173','Telecommunications Resellers');
+INSERT INTO sic (code,description) VALUES ('51731','Telecommunications Resellers');
+INSERT INTO sic (code,description) VALUES ('517310','Telecommunications Resellers');
+INSERT INTO sic (code,description) VALUES ('5174','Satellite Telecommunications');
+INSERT INTO sic (code,description) VALUES ('51741','Satellite Telecommunications');
+INSERT INTO sic (code,description) VALUES ('517410','Satellite Telecommunications');
+INSERT INTO sic (code,description) VALUES ('5175','Cable and Other Program Distribution');
+INSERT INTO sic (code,description) VALUES ('51751','Cable and Other Program Distribution');
+INSERT INTO sic (code,description) VALUES ('517510','Cable and Other Program Distribution');
+INSERT INTO sic (code,description) VALUES ('5179','Other Telecommunications');
+INSERT INTO sic (code,description) VALUES ('51791','Other Telecommunications');
+INSERT INTO sic (code,description) VALUES ('517910','Other Telecommunications');
+INSERT INTO sic (code,description) VALUES ('518','Internet Service Providers, Web Search Portals, and Data Processing Services');
+INSERT INTO sic (code,description) VALUES ('5181','Internet Service Providers and Web Search Portals');
+INSERT INTO sic (code,description) VALUES ('51811','Internet Service Providers and Web Search Portals');
+INSERT INTO sic (code,description) VALUES ('518111','Internet Service Providers');
+INSERT INTO sic (code,description) VALUES ('518112','Web Search Portals');
+INSERT INTO sic (code,description) VALUES ('5182','Data Processing, Hosting, and Related Services');
+INSERT INTO sic (code,description) VALUES ('51821','Data Processing, Hosting, and Related Services');
+INSERT INTO sic (code,description) VALUES ('518210','Data Processing, Hosting, and Related Services');
+INSERT INTO sic (code,description) VALUES ('519','Other Information Services');
+INSERT INTO sic (code,description) VALUES ('5191','Other Information Services');
+INSERT INTO sic (code,description) VALUES ('51911','News Syndicates');
+INSERT INTO sic (code,description) VALUES ('519110','News Syndicates');
+INSERT INTO sic (code,description) VALUES ('51912','Libraries and Archives');
+INSERT INTO sic (code,description) VALUES ('519120','Libraries and Archives');
+INSERT INTO sic (code,description) VALUES ('51919','All Other Information Services');
+INSERT INTO sic (code,description) VALUES ('519190','All Other Information Services');
+INSERT INTO sic (code,description) VALUES ('52','Finance and Insurance');
+INSERT INTO sic (code,description) VALUES ('521','Monetary Authorities - Central Bank');
+INSERT INTO sic (code,description) VALUES ('5211','Monetary Authorities - Central Bank');
+INSERT INTO sic (code,description) VALUES ('52111','Monetary Authorities - Central Bank');
+INSERT INTO sic (code,description) VALUES ('521110','Monetary Authorities - Central Bank');
+INSERT INTO sic (code,description) VALUES ('522','Credit Intermediation and Related Activities');
+INSERT INTO sic (code,description) VALUES ('5221','Depository Credit Intermediation');
+INSERT INTO sic (code,description) VALUES ('52211','Commercial Banking');
+INSERT INTO sic (code,description) VALUES ('522110','Commercial Banking');
+INSERT INTO sic (code,description) VALUES ('52212','Savings Institutions');
+INSERT INTO sic (code,description) VALUES ('522120','Savings Institutions');
+INSERT INTO sic (code,description) VALUES ('52213','Credit Unions');
+INSERT INTO sic (code,description) VALUES ('522130','Credit Unions');
+INSERT INTO sic (code,description) VALUES ('52219','Other Depository Credit Intermediation');
+INSERT INTO sic (code,description) VALUES ('522190','Other Depository Credit Intermediation');
+INSERT INTO sic (code,description) VALUES ('5222','Nondepository Credit Intermediation');
+INSERT INTO sic (code,description) VALUES ('52221','Credit Card Issuing');
+INSERT INTO sic (code,description) VALUES ('522210','Credit Card Issuing');
+INSERT INTO sic (code,description) VALUES ('52222','Sales Financing');
+INSERT INTO sic (code,description) VALUES ('522220','Sales Financing');
+INSERT INTO sic (code,description) VALUES ('52229','Other Nondepository Credit Intermediation');
+INSERT INTO sic (code,description) VALUES ('522291','Consumer Lending');
+INSERT INTO sic (code,description) VALUES ('522292','Real Estate Credit');
+INSERT INTO sic (code,description) VALUES ('522293','International Trade Financing');
+INSERT INTO sic (code,description) VALUES ('522294','Secondary Market Financing');
+INSERT INTO sic (code,description) VALUES ('522298','All Other Nondepository Credit Intermediation');
+INSERT INTO sic (code,description) VALUES ('5223','Activities Related to Credit Intermediation');
+INSERT INTO sic (code,description) VALUES ('52231','Mortgage and Nonmortgage Loan Brokers');
+INSERT INTO sic (code,description) VALUES ('522310','Mortgage and Nonmortgage Loan Brokers');
+INSERT INTO sic (code,description) VALUES ('52232','Financial Transactions Processing, Reserve, and Clearinghouse Activities');
+INSERT INTO sic (code,description) VALUES ('522320','Financial Transactions Processing, Reserve, and Clearinghouse Activities');
+INSERT INTO sic (code,description) VALUES ('52239','Other Activities Related to Credit Intermediation');
+INSERT INTO sic (code,description) VALUES ('522390','Other Activities Related to Credit Intermediation');
+INSERT INTO sic (code,description) VALUES ('523','Securities, Commodity Contracts, and Other Financial Investments and Related Activities');
+INSERT INTO sic (code,description) VALUES ('5231','Securities and Commodity Contracts Intermediation and Brokerage');
+INSERT INTO sic (code,description) VALUES ('52311','Investment Banking and Securities Dealing');
+INSERT INTO sic (code,description) VALUES ('523110','Investment Banking and Securities Dealing');
+INSERT INTO sic (code,description) VALUES ('52312','Securities Brokerage');
+INSERT INTO sic (code,description) VALUES ('523120','Securities Brokerage');
+INSERT INTO sic (code,description) VALUES ('52313','Commodity Contracts Dealing');
+INSERT INTO sic (code,description) VALUES ('523130','Commodity Contracts Dealing');
+INSERT INTO sic (code,description) VALUES ('52314','Commodity Contracts Brokerage');
+INSERT INTO sic (code,description) VALUES ('523140','Commodity Contracts Brokerage');
+INSERT INTO sic (code,description) VALUES ('5232','Securities and Commodity Exchanges');
+INSERT INTO sic (code,description) VALUES ('52321','Securities and Commodity Exchanges');
+INSERT INTO sic (code,description) VALUES ('523210','Securities and Commodity Exchanges');
+INSERT INTO sic (code,description) VALUES ('5239','Other Financial Investment Activities');
+INSERT INTO sic (code,description) VALUES ('52391','Miscellaneous Intermediation');
+INSERT INTO sic (code,description) VALUES ('523910','Miscellaneous Intermediation');
+INSERT INTO sic (code,description) VALUES ('52392','Portfolio Management');
+INSERT INTO sic (code,description) VALUES ('523920','Portfolio Management');
+INSERT INTO sic (code,description) VALUES ('52393','Investment Advice');
+INSERT INTO sic (code,description) VALUES ('523930','Investment Advice');
+INSERT INTO sic (code,description) VALUES ('52399','All Other Financial Investment Activities');
+INSERT INTO sic (code,description) VALUES ('523991','Trust, Fiduciary, and Custody Activities');
+INSERT INTO sic (code,description) VALUES ('523999','Miscellaneous Financial Investment Activities');
+INSERT INTO sic (code,description) VALUES ('524','Insurance Carriers and Related Activities');
+INSERT INTO sic (code,description) VALUES ('5241','Insurance Carriers');
+INSERT INTO sic (code,description) VALUES ('52411','Direct Life, Health, and Medical Insurance Carriers');
+INSERT INTO sic (code,description) VALUES ('524113','Direct Life Insurance Carriers');
+INSERT INTO sic (code,description) VALUES ('524114','Direct Health and Medical Insurance Carriers');
+INSERT INTO sic (code,description) VALUES ('52412','Direct Insurance (except Life, Health, and Medical) Carriers');
+INSERT INTO sic (code,description) VALUES ('524126','Direct Property and Casualty Insurance Carriers');
+INSERT INTO sic (code,description) VALUES ('524127','Direct Title Insurance Carriers');
+INSERT INTO sic (code,description) VALUES ('524128','Other Direct Insurance (except Life, Health, and Medical) Carriers');
+INSERT INTO sic (code,description) VALUES ('52413','Reinsurance Carriers');
+INSERT INTO sic (code,description) VALUES ('524130','Reinsurance Carriers');
+INSERT INTO sic (code,description) VALUES ('5242','Agencies, Brokerages, and Other Insurance Related Activities');
+INSERT INTO sic (code,description) VALUES ('52421','Insurance Agencies and Brokerages');
+INSERT INTO sic (code,description) VALUES ('524210','Insurance Agencies and Brokerages');
+INSERT INTO sic (code,description) VALUES ('52429','Other Insurance Related Activities');
+INSERT INTO sic (code,description) VALUES ('524291','Claims Adjusting');
+INSERT INTO sic (code,description) VALUES ('524292','Third Party Administration of Insurance and Pension Funds');
+INSERT INTO sic (code,description) VALUES ('524298','All Other Insurance Related Activities');
+INSERT INTO sic (code,description) VALUES ('525','Funds, Trusts, and Other Financial Vehicles');
+INSERT INTO sic (code,description) VALUES ('5251','Insurance and Employee Benefit Funds');
+INSERT INTO sic (code,description) VALUES ('52511','Pension Funds');
+INSERT INTO sic (code,description) VALUES ('525110','Pension Funds');
+INSERT INTO sic (code,description) VALUES ('52512','Health and Welfare Funds');
+INSERT INTO sic (code,description) VALUES ('525120','Health and Welfare Funds');
+INSERT INTO sic (code,description) VALUES ('52519','Other Insurance Funds');
+INSERT INTO sic (code,description) VALUES ('525190','Other Insurance Funds');
+INSERT INTO sic (code,description) VALUES ('5259','Other Investment Pools and Funds');
+INSERT INTO sic (code,description) VALUES ('52591','Open-End Investment Funds');
+INSERT INTO sic (code,description) VALUES ('525910','Open-End Investment Funds');
+INSERT INTO sic (code,description) VALUES ('52592','Trusts, Estates, and Agency Accounts');
+INSERT INTO sic (code,description) VALUES ('525920','Trusts, Estates, and Agency Accounts');
+INSERT INTO sic (code,description) VALUES ('52593','Real Estate Investment Trusts');
+INSERT INTO sic (code,description) VALUES ('525930','Real Estate Investment Trusts');
+INSERT INTO sic (code,description) VALUES ('52599','Other Financial Vehicles');
+INSERT INTO sic (code,description) VALUES ('525990','Other Financial Vehicles');
+INSERT INTO sic (code,description) VALUES ('53','Real Estate and Rental and Leasing');
+INSERT INTO sic (code,description) VALUES ('531','Real Estate');
+INSERT INTO sic (code,description) VALUES ('5311','Lessors of Real Estate');
+INSERT INTO sic (code,description) VALUES ('53111','Lessors of Residential Buildings and Dwellings');
+INSERT INTO sic (code,description) VALUES ('531110','Lessors of Residential Buildings and Dwellings');
+INSERT INTO sic (code,description) VALUES ('53112','Lessors of Nonresidential Buildings (except Miniwarehouses)');
+INSERT INTO sic (code,description) VALUES ('531120','Lessors of Nonresidential Buildings (except Miniwarehouses)');
+INSERT INTO sic (code,description) VALUES ('53113','Lessors of Miniwarehouses and Self-Storage Units');
+INSERT INTO sic (code,description) VALUES ('531130','Lessors of Miniwarehouses and Self-Storage Units');
+INSERT INTO sic (code,description) VALUES ('53119','Lessors of Other Real Estate Property');
+INSERT INTO sic (code,description) VALUES ('531190','Lessors of Other Real Estate Property');
+INSERT INTO sic (code,description) VALUES ('5312','Offices of Real Estate Agents and Brokers');
+INSERT INTO sic (code,description) VALUES ('53121','Offices of Real Estate Agents and Brokers');
+INSERT INTO sic (code,description) VALUES ('531210','Offices of Real Estate Agents and Brokers');
+INSERT INTO sic (code,description) VALUES ('5313','Activities Related to Real Estate');
+INSERT INTO sic (code,description) VALUES ('53131','Real Estate Property Managers');
+INSERT INTO sic (code,description) VALUES ('531311','Residential Property Managers');
+INSERT INTO sic (code,description) VALUES ('531312','Nonresidential Property Managers');
+INSERT INTO sic (code,description) VALUES ('53132','Offices of Real Estate Appraisers');
+INSERT INTO sic (code,description) VALUES ('531320','Offices of Real Estate Appraisers');
+INSERT INTO sic (code,description) VALUES ('53139','Other Activities Related to Real Estate');
+INSERT INTO sic (code,description) VALUES ('531390','Other Activities Related to Real Estate');
+INSERT INTO sic (code,description) VALUES ('532','Rental and Leasing Services');
+INSERT INTO sic (code,description) VALUES ('5321','Automotive Equipment Rental and Leasing');
+INSERT INTO sic (code,description) VALUES ('53211','Passenger Car Rental and Leasing');
+INSERT INTO sic (code,description) VALUES ('532111','Passenger Car Rental');
+INSERT INTO sic (code,description) VALUES ('532112','Passenger Car Leasing');
+INSERT INTO sic (code,description) VALUES ('53212','Truck, Utility Trailer, and RV (Recreational Vehicle) Rental and Leasing');
+INSERT INTO sic (code,description) VALUES ('532120','Truck, Utility Trailer, and RV (Recreational Vehicle) Rental and Leasing');
+INSERT INTO sic (code,description) VALUES ('5322','Consumer Goods Rental');
+INSERT INTO sic (code,description) VALUES ('53221','Consumer Electronics and Appliances Rental');
+INSERT INTO sic (code,description) VALUES ('532210','Consumer Electronics and Appliances Rental');
+INSERT INTO sic (code,description) VALUES ('53222','Formal Wear and Costume Rental');
+INSERT INTO sic (code,description) VALUES ('532220','Formal Wear and Costume Rental');
+INSERT INTO sic (code,description) VALUES ('53223','Video Tape and Disc Rental');
+INSERT INTO sic (code,description) VALUES ('532230','Video Tape and Disc Rental');
+INSERT INTO sic (code,description) VALUES ('53229','Other Consumer Goods Rental');
+INSERT INTO sic (code,description) VALUES ('532291','Home Health Equipment Rental');
+INSERT INTO sic (code,description) VALUES ('532292','Recreational Goods Rental');
+INSERT INTO sic (code,description) VALUES ('532299','All Other Consumer Goods Rental');
+INSERT INTO sic (code,description) VALUES ('5323','General Rental Centers');
+INSERT INTO sic (code,description) VALUES ('53231','General Rental Centers');
+INSERT INTO sic (code,description) VALUES ('532310','General Rental Centers');
+INSERT INTO sic (code,description) VALUES ('5324','Commercial and Industrial Machinery and Equipment Rental and Leasing');
+INSERT INTO sic (code,description) VALUES ('53241','Construction, Transportation, Mining, and Forestry Machinery and Equipment Rental and Leasing');
+INSERT INTO sic (code,description) VALUES ('532411','Commercial Air, Rail, and Water Transportation Equipment Rental and Leasing');
+INSERT INTO sic (code,description) VALUES ('532412','Construction, Mining, and Forestry Machinery and Equipment Rental and Leasing');
+INSERT INTO sic (code,description) VALUES ('53242','Office Machinery and Equipment Rental and Leasing');
+INSERT INTO sic (code,description) VALUES ('532420','Office Machinery and Equipment Rental and Leasing');
+INSERT INTO sic (code,description) VALUES ('53249','Other Commercial and Industrial Machinery and Equipment Rental and Leasing');
+INSERT INTO sic (code,description) VALUES ('532490','Other Commercial and Industrial Machinery and Equipment Rental and Leasing');
+INSERT INTO sic (code,description) VALUES ('533','Lessors of Nonfinancial Intangible Assets (except Copyrighted Works)');
+INSERT INTO sic (code,description) VALUES ('5331','Lessors of Nonfinancial Intangible Assets (except Copyrighted Works)');
+INSERT INTO sic (code,description) VALUES ('53311','Lessors of Nonfinancial Intangible Assets (except Copyrighted Works)');
+INSERT INTO sic (code,description) VALUES ('533110','Lessors of Nonfinancial Intangible Assets (except Copyrighted Works)');
+INSERT INTO sic (code,description) VALUES ('54','Professional, Scientific, and Technical Services');
+INSERT INTO sic (code,description) VALUES ('541','Professional, Scientific, and Technical Services');
+INSERT INTO sic (code,description) VALUES ('5411','Legal Services');
+INSERT INTO sic (code,description) VALUES ('54111','Offices of Lawyers');
+INSERT INTO sic (code,description) VALUES ('541110','Offices of Lawyers');
+INSERT INTO sic (code,description) VALUES ('54112','Offices of Notaries');
+INSERT INTO sic (code,description) VALUES ('541120','Offices of Notaries');
+INSERT INTO sic (code,description) VALUES ('54119','Other Legal Services');
+INSERT INTO sic (code,description) VALUES ('541191','Title Abstract and Settlement Offices');
+INSERT INTO sic (code,description) VALUES ('541199','All Other Legal Services');
+INSERT INTO sic (code,description) VALUES ('5412','Accounting, Tax Preparation, Bookkeeping, and Payroll Services');
+INSERT INTO sic (code,description) VALUES ('54121','Accounting, Tax Preparation, Bookkeeping, and Payroll Services');
+INSERT INTO sic (code,description) VALUES ('541211','Offices of Certified Public Accountants');
+INSERT INTO sic (code,description) VALUES ('541213','Tax Preparation Services');
+INSERT INTO sic (code,description) VALUES ('541214','Payroll Services');
+INSERT INTO sic (code,description) VALUES ('541219','Other Accounting Services');
+INSERT INTO sic (code,description) VALUES ('5413','Architectural, Engineering, and Related Services');
+INSERT INTO sic (code,description) VALUES ('54131','Architectural Services');
+INSERT INTO sic (code,description) VALUES ('541310','Architectural Services');
+INSERT INTO sic (code,description) VALUES ('54132','Landscape Architectural Services');
+INSERT INTO sic (code,description) VALUES ('541320','Landscape Architectural Services');
+INSERT INTO sic (code,description) VALUES ('54133','Engineering Services');
+INSERT INTO sic (code,description) VALUES ('541330','Engineering Services');
+INSERT INTO sic (code,description) VALUES ('54134','Drafting Services');
+INSERT INTO sic (code,description) VALUES ('541340','Drafting Services');
+INSERT INTO sic (code,description) VALUES ('54135','Building Inspection Services');
+INSERT INTO sic (code,description) VALUES ('541350','Building Inspection Services');
+INSERT INTO sic (code,description) VALUES ('54136','Geophysical Surveying and Mapping Services');
+INSERT INTO sic (code,description) VALUES ('541360','Geophysical Surveying and Mapping Services');
+INSERT INTO sic (code,description) VALUES ('54137','Surveying and Mapping (except Geophysical) Services');
+INSERT INTO sic (code,description) VALUES ('541370','Surveying and Mapping (except Geophysical) Services');
+INSERT INTO sic (code,description) VALUES ('54138','Testing Laboratories');
+INSERT INTO sic (code,description) VALUES ('541380','Testing Laboratories');
+INSERT INTO sic (code,description) VALUES ('5414','Specialized Design Services');
+INSERT INTO sic (code,description) VALUES ('54141','Interior Design Services');
+INSERT INTO sic (code,description) VALUES ('541410','Interior Design Services');
+INSERT INTO sic (code,description) VALUES ('54142','Industrial Design Services');
+INSERT INTO sic (code,description) VALUES ('541420','Industrial Design Services');
+INSERT INTO sic (code,description) VALUES ('54143','Graphic Design Services');
+INSERT INTO sic (code,description) VALUES ('541430','Graphic Design Services');
+INSERT INTO sic (code,description) VALUES ('54149','Other Specialized Design Services');
+INSERT INTO sic (code,description) VALUES ('541490','Other Specialized Design Services');
+INSERT INTO sic (code,description) VALUES ('5415','Computer Systems Design and Related Services');
+INSERT INTO sic (code,description) VALUES ('54151','Computer Systems Design and Related Services');
+INSERT INTO sic (code,description) VALUES ('541511','Custom Computer Programming Services');
+INSERT INTO sic (code,description) VALUES ('541512','Computer Systems Design Services');
+INSERT INTO sic (code,description) VALUES ('541513','Computer Facilities Management Services');
+INSERT INTO sic (code,description) VALUES ('541519','Other Computer Related Services');
+INSERT INTO sic (code,description) VALUES ('5416','Management, Scientific, and Technical Consulting Services');
+INSERT INTO sic (code,description) VALUES ('54161','Management Consulting Services');
+INSERT INTO sic (code,description) VALUES ('541611','Administrative Management and General Management Consulting Services');
+INSERT INTO sic (code,description) VALUES ('541612','Human Resources and Executive Search Consulting Services');
+INSERT INTO sic (code,description) VALUES ('541613','Marketing Consulting Services');
+INSERT INTO sic (code,description) VALUES ('541614','Process, Physical Distribution, and Logistics Consulting Services');
+INSERT INTO sic (code,description) VALUES ('541618','Other Management Consulting Services');
+INSERT INTO sic (code,description) VALUES ('54162','Environmental Consulting Services');
+INSERT INTO sic (code,description) VALUES ('541620','Environmental Consulting Services');
+INSERT INTO sic (code,description) VALUES ('54169','Other Scientific and Technical Consulting Services');
+INSERT INTO sic (code,description) VALUES ('541690','Other Scientific and Technical Consulting Services');
+INSERT INTO sic (code,description) VALUES ('5417','Scientific Research and Development Services');
+INSERT INTO sic (code,description) VALUES ('54171','Research and Development in the Physical, Engineering, and Life Sciences');
+INSERT INTO sic (code,description) VALUES ('541710','Research and Development in the Physical, Engineering, and Life Sciences');
+INSERT INTO sic (code,description) VALUES ('54172','Research and Development in the Social Sciences and Humanities');
+INSERT INTO sic (code,description) VALUES ('541720','Research and Development in the Social Sciences and Humanities');
+INSERT INTO sic (code,description) VALUES ('5418','Advertising and Related Services');
+INSERT INTO sic (code,description) VALUES ('54181','Advertising Agencies');
+INSERT INTO sic (code,description) VALUES ('541810','Advertising Agencies');
+INSERT INTO sic (code,description) VALUES ('54182','Public Relations Agencies');
+INSERT INTO sic (code,description) VALUES ('541820','Public Relations Agencies');
+INSERT INTO sic (code,description) VALUES ('54183','Media Buying Agencies');
+INSERT INTO sic (code,description) VALUES ('541830','Media Buying Agencies');
+INSERT INTO sic (code,description) VALUES ('54184','Media Representatives');
+INSERT INTO sic (code,description) VALUES ('541840','Media Representatives');
+INSERT INTO sic (code,description) VALUES ('54185','Display Advertising');
+INSERT INTO sic (code,description) VALUES ('541850','Display Advertising');
+INSERT INTO sic (code,description) VALUES ('54186','Direct Mail Advertising');
+INSERT INTO sic (code,description) VALUES ('541860','Direct Mail Advertising');
+INSERT INTO sic (code,description) VALUES ('54187','Advertising Material Distribution Services');
+INSERT INTO sic (code,description) VALUES ('541870','Advertising Material Distribution Services');
+INSERT INTO sic (code,description) VALUES ('54189','Other Services Related to Advertising');
+INSERT INTO sic (code,description) VALUES ('541890','Other Services Related to Advertising');
+INSERT INTO sic (code,description) VALUES ('5419','Other Professional, Scientific, and Technical Services');
+INSERT INTO sic (code,description) VALUES ('54191','Marketing Research and Public Opinion Polling');
+INSERT INTO sic (code,description) VALUES ('541910','Marketing Research and Public Opinion Polling');
+INSERT INTO sic (code,description) VALUES ('54192','Photographic Services');
+INSERT INTO sic (code,description) VALUES ('541921','Photography Studios, Portrait');
+INSERT INTO sic (code,description) VALUES ('541922','Commercial Photography');
+INSERT INTO sic (code,description) VALUES ('54193','Translation and Interpretation Services');
+INSERT INTO sic (code,description) VALUES ('541930','Translation and Interpretation Services');
+INSERT INTO sic (code,description) VALUES ('54194','Veterinary Services');
+INSERT INTO sic (code,description) VALUES ('541940','Veterinary Services');
+INSERT INTO sic (code,description) VALUES ('54199','All Other Professional, Scientific, and Technical Services');
+INSERT INTO sic (code,description) VALUES ('541990','All Other Professional, Scientific, and Technical Services');
+INSERT INTO sic (code,description) VALUES ('55','Management of Companies and Enterprises');
+INSERT INTO sic (code,description) VALUES ('551','Management of Companies and Enterprises');
+INSERT INTO sic (code,description) VALUES ('5511','Management of Companies and Enterprises');
+INSERT INTO sic (code,description) VALUES ('55111','Management of Companies and Enterprises');
+INSERT INTO sic (code,description) VALUES ('551111','Offices of Bank Holding Companies');
+INSERT INTO sic (code,description) VALUES ('551112','Offices of Other Holding Companies');
+INSERT INTO sic (code,description) VALUES ('551114','Corporate, Subsidiary, and Regional Managing Offices');
+INSERT INTO sic (code,description) VALUES ('56','Administrative and Support and Waste Management and Remediation Services');
+INSERT INTO sic (code,description) VALUES ('561','Administrative and Support Services');
+INSERT INTO sic (code,description) VALUES ('5611','Office Administrative Services');
+INSERT INTO sic (code,description) VALUES ('56111','Office Administrative Services');
+INSERT INTO sic (code,description) VALUES ('561110','Office Administrative Services');
+INSERT INTO sic (code,description) VALUES ('5612','Facilities Support Services');
+INSERT INTO sic (code,description) VALUES ('56121','Facilities Support Services');
+INSERT INTO sic (code,description) VALUES ('561210','Facilities Support Services');
+INSERT INTO sic (code,description) VALUES ('5613','Employment Services');
+INSERT INTO sic (code,description) VALUES ('56131','Employment Placement Agencies');
+INSERT INTO sic (code,description) VALUES ('561310','Employment Placement Agencies');
+INSERT INTO sic (code,description) VALUES ('56132','Temporary Help Services');
+INSERT INTO sic (code,description) VALUES ('561320','Temporary Help Services');
+INSERT INTO sic (code,description) VALUES ('56133','Professional Employer Organizations');
+INSERT INTO sic (code,description) VALUES ('561330','Professional Employer Organizations');
+INSERT INTO sic (code,description) VALUES ('5614','Business Support Services');
+INSERT INTO sic (code,description) VALUES ('56141','Document Preparation Services');
+INSERT INTO sic (code,description) VALUES ('561410','Document Preparation Services');
+INSERT INTO sic (code,description) VALUES ('56142','Telephone Call Centers');
+INSERT INTO sic (code,description) VALUES ('561421','Telephone Answering Services');
+INSERT INTO sic (code,description) VALUES ('561422','Telemarketing Bureaus');
+INSERT INTO sic (code,description) VALUES ('56143','Business Service Centers');
+INSERT INTO sic (code,description) VALUES ('561431','Private Mail Centers');
+INSERT INTO sic (code,description) VALUES ('561439','Other Business Service Centers (including Copy Shops)');
+INSERT INTO sic (code,description) VALUES ('56144','Collection Agencies');
+INSERT INTO sic (code,description) VALUES ('561440','Collection Agencies');
+INSERT INTO sic (code,description) VALUES ('56145','Credit Bureaus');
+INSERT INTO sic (code,description) VALUES ('561450','Credit Bureaus');
+INSERT INTO sic (code,description) VALUES ('56149','Other Business Support Services');
+INSERT INTO sic (code,description) VALUES ('561491','Repossession Services');
+INSERT INTO sic (code,description) VALUES ('561492','Court Reporting and Stenotype Services');
+INSERT INTO sic (code,description) VALUES ('561499','All Other Business Support Services');
+INSERT INTO sic (code,description) VALUES ('5615','Travel Arrangement and Reservation Services');
+INSERT INTO sic (code,description) VALUES ('56151','Travel Agencies');
+INSERT INTO sic (code,description) VALUES ('561510','Travel Agencies');
+INSERT INTO sic (code,description) VALUES ('56152','Tour Operators');
+INSERT INTO sic (code,description) VALUES ('561520','Tour Operators');
+INSERT INTO sic (code,description) VALUES ('56159','Other Travel Arrangement and Reservation Services');
+INSERT INTO sic (code,description) VALUES ('561591','Convention and Visitors Bureaus');
+INSERT INTO sic (code,description) VALUES ('561599','All Other Travel Arrangement and Reservation Services');
+INSERT INTO sic (code,description) VALUES ('5616','Investigation and Security Services');
+INSERT INTO sic (code,description) VALUES ('56161','Investigation, Guard, and Armored Car Services');
+INSERT INTO sic (code,description) VALUES ('561611','Investigation Services');
+INSERT INTO sic (code,description) VALUES ('561612','Security Guards and Patrol Services');
+INSERT INTO sic (code,description) VALUES ('561613','Armored Car Services');
+INSERT INTO sic (code,description) VALUES ('56162','Security Systems Services');
+INSERT INTO sic (code,description) VALUES ('561621','Security Systems Services (except Locksmiths)');
+INSERT INTO sic (code,description) VALUES ('561622','Locksmiths');
+INSERT INTO sic (code,description) VALUES ('5617','Services to Buildings and Dwellings');
+INSERT INTO sic (code,description) VALUES ('56171','Exterminating and Pest Control Services');
+INSERT INTO sic (code,description) VALUES ('561710','Exterminating and Pest Control Services');
+INSERT INTO sic (code,description) VALUES ('56172','Janitorial Services');
+INSERT INTO sic (code,description) VALUES ('561720','Janitorial Services');
+INSERT INTO sic (code,description) VALUES ('56173','Landscaping Services');
+INSERT INTO sic (code,description) VALUES ('561730','Landscaping Services');
+INSERT INTO sic (code,description) VALUES ('56174','Carpet and Upholstery Cleaning Services');
+INSERT INTO sic (code,description) VALUES ('561740','Carpet and Upholstery Cleaning Services');
+INSERT INTO sic (code,description) VALUES ('56179','Other Services to Buildings and Dwellings');
+INSERT INTO sic (code,description) VALUES ('561790','Other Services to Buildings and Dwellings');
+INSERT INTO sic (code,description) VALUES ('5619','Other Support Services');
+INSERT INTO sic (code,description) VALUES ('56191','Packaging and Labeling Services');
+INSERT INTO sic (code,description) VALUES ('561910','Packaging and Labeling Services');
+INSERT INTO sic (code,description) VALUES ('56192','Convention and Trade Show Organizers');
+INSERT INTO sic (code,description) VALUES ('561920','Convention and Trade Show Organizers');
+INSERT INTO sic (code,description) VALUES ('56199','All Other Support Services');
+INSERT INTO sic (code,description) VALUES ('561990','All Other Support Services');
+INSERT INTO sic (code,description) VALUES ('562','Waste Management and Remediation Services');
+INSERT INTO sic (code,description) VALUES ('5621','Waste Collection');
+INSERT INTO sic (code,description) VALUES ('56211','Waste Collection');
+INSERT INTO sic (code,description) VALUES ('562111','Solid Waste Collection');
+INSERT INTO sic (code,description) VALUES ('562112','Hazardous Waste Collection');
+INSERT INTO sic (code,description) VALUES ('562119','Other Waste Collection');
+INSERT INTO sic (code,description) VALUES ('5622','Waste Treatment and Disposal');
+INSERT INTO sic (code,description) VALUES ('56221','Waste Treatment and Disposal');
+INSERT INTO sic (code,description) VALUES ('562211','Hazardous Waste Treatment and Disposal');
+INSERT INTO sic (code,description) VALUES ('562212','Solid Waste Landfill');
+INSERT INTO sic (code,description) VALUES ('562213','Solid Waste Combustors and Incinerators');
+INSERT INTO sic (code,description) VALUES ('562219','Other Nonhazardous Waste Treatment and Disposal');
+INSERT INTO sic (code,description) VALUES ('5629','Remediation and Other Waste Management Services');
+INSERT INTO sic (code,description) VALUES ('56291','Remediation Services');
+INSERT INTO sic (code,description) VALUES ('562910','Remediation Services');
+INSERT INTO sic (code,description) VALUES ('56292','Materials Recovery Facilities');
+INSERT INTO sic (code,description) VALUES ('562920','Materials Recovery Facilities');
+INSERT INTO sic (code,description) VALUES ('56299','All Other Waste Management Services');
+INSERT INTO sic (code,description) VALUES ('562991','Septic Tank and Related Services');
+INSERT INTO sic (code,description) VALUES ('562998','All Other Miscellaneous Waste Management Services');
+INSERT INTO sic (code,description) VALUES ('61','Educational Services');
+INSERT INTO sic (code,description) VALUES ('611','Educational Services');
+INSERT INTO sic (code,description) VALUES ('6111','Elementary and Secondary Schools');
+INSERT INTO sic (code,description) VALUES ('61111','Elementary and Secondary Schools');
+INSERT INTO sic (code,description) VALUES ('611110','Elementary and Secondary Schools');
+INSERT INTO sic (code,description) VALUES ('6112','Junior Colleges');
+INSERT INTO sic (code,description) VALUES ('61121','Junior Colleges');
+INSERT INTO sic (code,description) VALUES ('611210','Junior Colleges');
+INSERT INTO sic (code,description) VALUES ('6113','Colleges, Universities, and Professional Schools');
+INSERT INTO sic (code,description) VALUES ('61131','Colleges, Universities, and Professional Schools');
+INSERT INTO sic (code,description) VALUES ('611310','Colleges, Universities, and Professional Schools');
+INSERT INTO sic (code,description) VALUES ('6114','Business Schools and Computer and Management Training');
+INSERT INTO sic (code,description) VALUES ('61141','Business and Secretarial Schools');
+INSERT INTO sic (code,description) VALUES ('611410','Business and Secretarial Schools');
+INSERT INTO sic (code,description) VALUES ('61142','Computer Training');
+INSERT INTO sic (code,description) VALUES ('611420','Computer Training');
+INSERT INTO sic (code,description) VALUES ('61143','Professional and Management Development Training');
+INSERT INTO sic (code,description) VALUES ('611430','Professional and Management Development Training');
+INSERT INTO sic (code,description) VALUES ('6115','Technical and Trade Schools');
+INSERT INTO sic (code,description) VALUES ('61151','Technical and Trade Schools');
+INSERT INTO sic (code,description) VALUES ('611511','Cosmetology and Barber Schools');
+INSERT INTO sic (code,description) VALUES ('611512','Flight Training');
+INSERT INTO sic (code,description) VALUES ('611513','Apprenticeship Training');
+INSERT INTO sic (code,description) VALUES ('611519','Other Technical and Trade Schools');
+INSERT INTO sic (code,description) VALUES ('6116','Other Schools and Instruction');
+INSERT INTO sic (code,description) VALUES ('61161','Fine Arts Schools');
+INSERT INTO sic (code,description) VALUES ('611610','Fine Arts Schools');
+INSERT INTO sic (code,description) VALUES ('61162','Sports and Recreation Instruction');
+INSERT INTO sic (code,description) VALUES ('611620','Sports and Recreation Instruction');
+INSERT INTO sic (code,description) VALUES ('61163','Language Schools');
+INSERT INTO sic (code,description) VALUES ('611630','Language Schools');
+INSERT INTO sic (code,description) VALUES ('61169','All Other Schools and Instruction');
+INSERT INTO sic (code,description) VALUES ('611691','Exam Preparation and Tutoring');
+INSERT INTO sic (code,description) VALUES ('611692','Automobile Driving Schools');
+INSERT INTO sic (code,description) VALUES ('611699','All Other Miscellaneous Schools and Instruction');
+INSERT INTO sic (code,description) VALUES ('6117','Educational Support Services');
+INSERT INTO sic (code,description) VALUES ('61171','Educational Support Services');
+INSERT INTO sic (code,description) VALUES ('611710','Educational Support Services');
+INSERT INTO sic (code,description) VALUES ('62','Health Care and Social Assistance');
+INSERT INTO sic (code,description) VALUES ('621','Ambulatory Health Care Services');
+INSERT INTO sic (code,description) VALUES ('6211','Offices of Physicians');
+INSERT INTO sic (code,description) VALUES ('62111','Offices of Physicians');
+INSERT INTO sic (code,description) VALUES ('621111','Offices of Physicians (except Mental Health Specialists)');
+INSERT INTO sic (code,description) VALUES ('621112','Offices of Physicians, Mental Health Specialists');
+INSERT INTO sic (code,description) VALUES ('6212','Offices of Dentists');
+INSERT INTO sic (code,description) VALUES ('62121','Offices of Dentists');
+INSERT INTO sic (code,description) VALUES ('621210','Offices of Dentists');
+INSERT INTO sic (code,description) VALUES ('6213','Offices of Other Health Practitioners');
+INSERT INTO sic (code,description) VALUES ('62131','Offices of Chiropractors');
+INSERT INTO sic (code,description) VALUES ('621310','Offices of Chiropractors');
+INSERT INTO sic (code,description) VALUES ('62132','Offices of Optometrists');
+INSERT INTO sic (code,description) VALUES ('621320','Offices of Optometrists');
+INSERT INTO sic (code,description) VALUES ('62133','Offices of Mental Health Practitioners (except Physicians)');
+INSERT INTO sic (code,description) VALUES ('621330','Offices of Mental Health Practitioners (except Physicians)');
+INSERT INTO sic (code,description) VALUES ('62134','Offices of Physical, Occupational and Speech Therapists, and Audiologists');
+INSERT INTO sic (code,description) VALUES ('621340','Offices of Physical, Occupational and Speech Therapists, and Audiologists');
+INSERT INTO sic (code,description) VALUES ('62139','Offices of All Other Health Practitioners');
+INSERT INTO sic (code,description) VALUES ('621391','Offices of Podiatrists');
+INSERT INTO sic (code,description) VALUES ('621399','Offices of All Other Miscellaneous Health Practitioners');
+INSERT INTO sic (code,description) VALUES ('6214','Outpatient Care Centers');
+INSERT INTO sic (code,description) VALUES ('62141','Family Planning Centers');
+INSERT INTO sic (code,description) VALUES ('621410','Family Planning Centers');
+INSERT INTO sic (code,description) VALUES ('62142','Outpatient Mental Health and Substance Abuse Centers');
+INSERT INTO sic (code,description) VALUES ('621420','Outpatient Mental Health and Substance Abuse Centers');
+INSERT INTO sic (code,description) VALUES ('62149','Other Outpatient Care Centers');
+INSERT INTO sic (code,description) VALUES ('621491','HMO Medical Centers');
+INSERT INTO sic (code,description) VALUES ('621492','Kidney Dialysis Centers');
+INSERT INTO sic (code,description) VALUES ('621493','Freestanding Ambulatory Surgical and Emergency Centers');
+INSERT INTO sic (code,description) VALUES ('621498','All Other Outpatient Care Centers');
+INSERT INTO sic (code,description) VALUES ('6215','Medical and Diagnostic Laboratories');
+INSERT INTO sic (code,description) VALUES ('62151','Medical and Diagnostic Laboratories');
+INSERT INTO sic (code,description) VALUES ('621511','Medical Laboratories');
+INSERT INTO sic (code,description) VALUES ('621512','Diagnostic Imaging Centers');
+INSERT INTO sic (code,description) VALUES ('6216','Home Health Care Services');
+INSERT INTO sic (code,description) VALUES ('62161','Home Health Care Services');
+INSERT INTO sic (code,description) VALUES ('621610','Home Health Care Services');
+INSERT INTO sic (code,description) VALUES ('6219','Other Ambulatory Health Care Services');
+INSERT INTO sic (code,description) VALUES ('62191','Ambulance Services');
+INSERT INTO sic (code,description) VALUES ('621910','Ambulance Services');
+INSERT INTO sic (code,description) VALUES ('62199','All Other Ambulatory Health Care Services');
+INSERT INTO sic (code,description) VALUES ('621991','Blood and Organ Banks');
+INSERT INTO sic (code,description) VALUES ('621999','All Other Miscellaneous Ambulatory Health Care Services');
+INSERT INTO sic (code,description) VALUES ('622','Hospitals');
+INSERT INTO sic (code,description) VALUES ('6221','General Medical and Surgical Hospitals');
+INSERT INTO sic (code,description) VALUES ('62211','General Medical and Surgical Hospitals');
+INSERT INTO sic (code,description) VALUES ('622110','General Medical and Surgical Hospitals');
+INSERT INTO sic (code,description) VALUES ('6222','Psychiatric and Substance Abuse Hospitals');
+INSERT INTO sic (code,description) VALUES ('62221','Psychiatric and Substance Abuse Hospitals');
+INSERT INTO sic (code,description) VALUES ('622210','Psychiatric and Substance Abuse Hospitals');
+INSERT INTO sic (code,description) VALUES ('6223','Specialty (except Psychiatric and Substance Abuse) Hospitals');
+INSERT INTO sic (code,description) VALUES ('62231','Specialty (except Psychiatric and Substance Abuse) Hospitals');
+INSERT INTO sic (code,description) VALUES ('622310','Specialty (except Psychiatric and Substance Abuse) Hospitals');
+INSERT INTO sic (code,description) VALUES ('623','Nursing and Residential Care Facilities');
+INSERT INTO sic (code,description) VALUES ('6231','Nursing Care Facilities');
+INSERT INTO sic (code,description) VALUES ('62311','Nursing Care Facilities');
+INSERT INTO sic (code,description) VALUES ('623110','Nursing Care Facilities');
+INSERT INTO sic (code,description) VALUES ('6232','Residential Mental Retardation, Mental Health and Substance Abuse Facilities');
+INSERT INTO sic (code,description) VALUES ('62321','Residential Mental Retardation Facilities');
+INSERT INTO sic (code,description) VALUES ('623210','Residential Mental Retardation Facilities');
+INSERT INTO sic (code,description) VALUES ('62322','Residential Mental Health and Substance Abuse Facilities');
+INSERT INTO sic (code,description) VALUES ('623220','Residential Mental Health and Substance Abuse Facilities');
+INSERT INTO sic (code,description) VALUES ('6233','Community Care Facilities for the Elderly');
+INSERT INTO sic (code,description) VALUES ('62331','Community Care Facilities for the Elderly');
+INSERT INTO sic (code,description) VALUES ('623311','Continuing Care Retirement Communities');
+INSERT INTO sic (code,description) VALUES ('623312','Homes for the Elderly');
+INSERT INTO sic (code,description) VALUES ('6239','Other Residential Care Facilities');
+INSERT INTO sic (code,description) VALUES ('62399','Other Residential Care Facilities');
+INSERT INTO sic (code,description) VALUES ('623990','Other Residential Care Facilities');
+INSERT INTO sic (code,description) VALUES ('624','Social Assistance');
+INSERT INTO sic (code,description) VALUES ('6241','Individual and Family Services');
+INSERT INTO sic (code,description) VALUES ('62411','Child and Youth Services');
+INSERT INTO sic (code,description) VALUES ('624110','Child and Youth Services');
+INSERT INTO sic (code,description) VALUES ('62412','Services for the Elderly and Persons with Disabilities');
+INSERT INTO sic (code,description) VALUES ('624120','Services for the Elderly and Persons with Disabilities');
+INSERT INTO sic (code,description) VALUES ('62419','Other Individual and Family Services');
+INSERT INTO sic (code,description) VALUES ('624190','Other Individual and Family Services');
+INSERT INTO sic (code,description) VALUES ('6242','Community Food and Housing, and Emergency and Other Relief Services');
+INSERT INTO sic (code,description) VALUES ('62421','Community Food Services');
+INSERT INTO sic (code,description) VALUES ('624210','Community Food Services');
+INSERT INTO sic (code,description) VALUES ('62422','Community Housing Services');
+INSERT INTO sic (code,description) VALUES ('624221','Temporary Shelters');
+INSERT INTO sic (code,description) VALUES ('624229','Other Community Housing Services');
+INSERT INTO sic (code,description) VALUES ('62423','Emergency and Other Relief Services');
+INSERT INTO sic (code,description) VALUES ('624230','Emergency and Other Relief Services');
+INSERT INTO sic (code,description) VALUES ('6243','Vocational Rehabilitation Services');
+INSERT INTO sic (code,description) VALUES ('62431','Vocational Rehabilitation Services');
+INSERT INTO sic (code,description) VALUES ('624310','Vocational Rehabilitation Services');
+INSERT INTO sic (code,description) VALUES ('6244','Child Day Care Services');
+INSERT INTO sic (code,description) VALUES ('62441','Child Day Care Services');
+INSERT INTO sic (code,description) VALUES ('624410','Child Day Care Services');
+INSERT INTO sic (code,description) VALUES ('71','Arts, Entertainment, and Recreation');
+INSERT INTO sic (code,description) VALUES ('711','Performing Arts, Spectator Sports, and Related Industries');
+INSERT INTO sic (code,description) VALUES ('7111','Performing Arts Companies');
+INSERT INTO sic (code,description) VALUES ('71111','Theater Companies and Dinner Theaters');
+INSERT INTO sic (code,description) VALUES ('711110','Theater Companies and Dinner Theaters');
+INSERT INTO sic (code,description) VALUES ('71112','Dance Companies');
+INSERT INTO sic (code,description) VALUES ('711120','Dance Companies');
+INSERT INTO sic (code,description) VALUES ('71113','Musical Groups and Artists');
+INSERT INTO sic (code,description) VALUES ('711130','Musical Groups and Artists');
+INSERT INTO sic (code,description) VALUES ('71119','Other Performing Arts Companies');
+INSERT INTO sic (code,description) VALUES ('711190','Other Performing Arts Companies');
+INSERT INTO sic (code,description) VALUES ('7112','Spectator Sports');
+INSERT INTO sic (code,description) VALUES ('71121','Spectator Sports');
+INSERT INTO sic (code,description) VALUES ('711211','Sports Teams and Clubs');
+INSERT INTO sic (code,description) VALUES ('711212','Racetracks');
+INSERT INTO sic (code,description) VALUES ('711219','Other Spectator Sports');
+INSERT INTO sic (code,description) VALUES ('7113','Promoters of Performing Arts, Sports, and Similar Events');
+INSERT INTO sic (code,description) VALUES ('71131','Promoters of Performing Arts, Sports, and Similar Events with Facilities');
+INSERT INTO sic (code,description) VALUES ('711310','Promoters of Performing Arts, Sports, and Similar Events with Facilities');
+INSERT INTO sic (code,description) VALUES ('71132','Promoters of Performing Arts, Sports, and Similar Events without Facilities');
+INSERT INTO sic (code,description) VALUES ('711320','Promoters of Performing Arts, Sports, and Similar Events without Facilities');
+INSERT INTO sic (code,description) VALUES ('7114','Agents and Managers for Artists, Athletes, Entertainers, and Other Public Figures');
+INSERT INTO sic (code,description) VALUES ('71141','Agents and Managers for Artists, Athletes, Entertainers, and Other Public Figures');
+INSERT INTO sic (code,description) VALUES ('711410','Agents and Managers for Artists, Athletes, Entertainers, and Other Public Figures');
+INSERT INTO sic (code,description) VALUES ('7115','Independent Artists, Writers, and Performers');
+INSERT INTO sic (code,description) VALUES ('71151','Independent Artists, Writers, and Performers');
+INSERT INTO sic (code,description) VALUES ('711510','Independent Artists, Writers, and Performers');
+INSERT INTO sic (code,description) VALUES ('712','Museums, Historical Sites, and Similar Institutions');
+INSERT INTO sic (code,description) VALUES ('7121','Museums, Historical Sites, and Similar Institutions');
+INSERT INTO sic (code,description) VALUES ('71211','Museums');
+INSERT INTO sic (code,description) VALUES ('712110','Museums');
+INSERT INTO sic (code,description) VALUES ('71212','Historical Sites');
+INSERT INTO sic (code,description) VALUES ('712120','Historical Sites');
+INSERT INTO sic (code,description) VALUES ('71213','Zoos and Botanical Gardens');
+INSERT INTO sic (code,description) VALUES ('712130','Zoos and Botanical Gardens');
+INSERT INTO sic (code,description) VALUES ('71219','Nature Parks and Other Similar Institutions');
+INSERT INTO sic (code,description) VALUES ('712190','Nature Parks and Other Similar Institutions');
+INSERT INTO sic (code,description) VALUES ('713','Amusement, Gambling, and Recreation Industries');
+INSERT INTO sic (code,description) VALUES ('7131','Amusement Parks and Arcades');
+INSERT INTO sic (code,description) VALUES ('71311','Amusement and Theme Parks');
+INSERT INTO sic (code,description) VALUES ('713110','Amusement and Theme Parks');
+INSERT INTO sic (code,description) VALUES ('71312','Amusement Arcades');
+INSERT INTO sic (code,description) VALUES ('713120','Amusement Arcades');
+INSERT INTO sic (code,description) VALUES ('7132','Gambling Industries');
+INSERT INTO sic (code,description) VALUES ('71321','Casinos (except Casino Hotels)');
+INSERT INTO sic (code,description) VALUES ('713210','Casinos (except Casino Hotels)');
+INSERT INTO sic (code,description) VALUES ('71329','Other Gambling Industries');
+INSERT INTO sic (code,description) VALUES ('713290','Other Gambling Industries');
+INSERT INTO sic (code,description) VALUES ('7139','Other Amusement and Recreation Industries');
+INSERT INTO sic (code,description) VALUES ('71391','Golf Courses and Country Clubs');
+INSERT INTO sic (code,description) VALUES ('713910','Golf Courses and Country Clubs');
+INSERT INTO sic (code,description) VALUES ('71392','Skiing Facilities');
+INSERT INTO sic (code,description) VALUES ('713920','Skiing Facilities');
+INSERT INTO sic (code,description) VALUES ('71393','Marinas');
+INSERT INTO sic (code,description) VALUES ('713930','Marinas');
+INSERT INTO sic (code,description) VALUES ('71394','Fitness and Recreational Sports Centers');
+INSERT INTO sic (code,description) VALUES ('713940','Fitness and Recreational Sports Centers');
+INSERT INTO sic (code,description) VALUES ('71395','Bowling Centers');
+INSERT INTO sic (code,description) VALUES ('713950','Bowling Centers');
+INSERT INTO sic (code,description) VALUES ('71399','All Other Amusement and Recreation Industries');
+INSERT INTO sic (code,description) VALUES ('713990','All Other Amusement and Recreation Industries');
+INSERT INTO sic (code,description) VALUES ('72','Accommodation and Food Services');
+INSERT INTO sic (code,description) VALUES ('721','Accommodation');
+INSERT INTO sic (code,description) VALUES ('7211','Traveler Accommodation');
+INSERT INTO sic (code,description) VALUES ('72111','Hotels (except Casino Hotels) and Motels');
+INSERT INTO sic (code,description) VALUES ('721110','Hotels (except Casino Hotels) and Motels');
+INSERT INTO sic (code,description) VALUES ('72112','Casino Hotels');
+INSERT INTO sic (code,description) VALUES ('721120','Casino Hotels');
+INSERT INTO sic (code,description) VALUES ('72119','Other Traveler Accommodation');
+INSERT INTO sic (code,description) VALUES ('721191','Bed-and-Breakfast Inns');
+INSERT INTO sic (code,description) VALUES ('721199','All Other Traveler Accommodation');
+INSERT INTO sic (code,description) VALUES ('7212','RV (Recreational Vehicle) Parks and Recreational Camps');
+INSERT INTO sic (code,description) VALUES ('72121','RV (Recreational Vehicle) Parks and Recreational Camps');
+INSERT INTO sic (code,description) VALUES ('721211','RV (Recreational Vehicle) Parks and Campgrounds');
+INSERT INTO sic (code,description) VALUES ('721214','Recreational and Vacation Camps (except Campgrounds)');
+INSERT INTO sic (code,description) VALUES ('7213','Rooming and Boarding Houses');
+INSERT INTO sic (code,description) VALUES ('72131','Rooming and Boarding Houses');
+INSERT INTO sic (code,description) VALUES ('721310','Rooming and Boarding Houses');
+INSERT INTO sic (code,description) VALUES ('722','Food Services and Drinking Places');
+INSERT INTO sic (code,description) VALUES ('7221','Full-Service Restaurants');
+INSERT INTO sic (code,description) VALUES ('72211','Full-Service Restaurants');
+INSERT INTO sic (code,description) VALUES ('722110','Full-Service Restaurants');
+INSERT INTO sic (code,description) VALUES ('7222','Limited-Service Eating Places');
+INSERT INTO sic (code,description) VALUES ('72221','Limited-Service Eating Places');
+INSERT INTO sic (code,description) VALUES ('722211','Limited-Service Restaurants');
+INSERT INTO sic (code,description) VALUES ('722212','Cafeterias');
+INSERT INTO sic (code,description) VALUES ('722213','Snack and Nonalcoholic Beverage Bars');
+INSERT INTO sic (code,description) VALUES ('7223','Special Food Services');
+INSERT INTO sic (code,description) VALUES ('72231','Food Service Contractors');
+INSERT INTO sic (code,description) VALUES ('722310','Food Service Contractors');
+INSERT INTO sic (code,description) VALUES ('72232','Caterers');
+INSERT INTO sic (code,description) VALUES ('722320','Caterers');
+INSERT INTO sic (code,description) VALUES ('72233','Mobile Food Services');
+INSERT INTO sic (code,description) VALUES ('722330','Mobile Food Services');
+INSERT INTO sic (code,description) VALUES ('7224','Drinking Places (Alcoholic Beverages)');
+INSERT INTO sic (code,description) VALUES ('72241','Drinking Places (Alcoholic Beverages)');
+INSERT INTO sic (code,description) VALUES ('722410','Drinking Places (Alcoholic Beverages)');
+INSERT INTO sic (code,description) VALUES ('81','Other Services (except Public Administration)');
+INSERT INTO sic (code,description) VALUES ('811','Repair and Maintenance');
+INSERT INTO sic (code,description) VALUES ('8111','Automotive Repair and Maintenance');
+INSERT INTO sic (code,description) VALUES ('81111','Automotive Mechanical and Electrical Repair and Maintenance');
+INSERT INTO sic (code,description) VALUES ('811111','General Automotive Repair');
+INSERT INTO sic (code,description) VALUES ('811112','Automotive Exhaust System Repair');
+INSERT INTO sic (code,description) VALUES ('811113','Automotive Transmission Repair');
+INSERT INTO sic (code,description) VALUES ('811118','Other Automotive Mechanical and Electrical Repair and Maintenance');
+INSERT INTO sic (code,description) VALUES ('81112','Automotive Body, Paint, Interior, and Glass Repair');
+INSERT INTO sic (code,description) VALUES ('811121','Automotive Body, Paint, and Interior Repair and Maintenance');
+INSERT INTO sic (code,description) VALUES ('811122','Automotive Glass Replacement Shops');
+INSERT INTO sic (code,description) VALUES ('81119','Other Automotive Repair and Maintenance');
+INSERT INTO sic (code,description) VALUES ('811191','Automotive Oil Change and Lubrication Shops');
+INSERT INTO sic (code,description) VALUES ('811192','Car Washes');
+INSERT INTO sic (code,description) VALUES ('811198','All Other Automotive Repair and Maintenance');
+INSERT INTO sic (code,description) VALUES ('8112','Electronic and Precision Equipment Repair and Maintenance');
+INSERT INTO sic (code,description) VALUES ('81121','Electronic and Precision Equipment Repair and Maintenance');
+INSERT INTO sic (code,description) VALUES ('811211','Consumer Electronics Repair and Maintenance');
+INSERT INTO sic (code,description) VALUES ('811212','Computer and Office Machine Repair and Maintenance');
+INSERT INTO sic (code,description) VALUES ('811213','Communication Equipment Repair and Maintenance');
+INSERT INTO sic (code,description) VALUES ('811219','Other Electronic and Precision Equipment Repair and Maintenance');
+INSERT INTO sic (code,description) VALUES ('8113','Commercial and Industrial Machinery and Equipment (except Automotive and Electronic) Repair and Maintenance');
+INSERT INTO sic (code,description) VALUES ('81131','Commercial and Industrial Machinery and Equipment (except Automotive and Electronic) Repair and Maintenance');
+INSERT INTO sic (code,description) VALUES ('811310','Commercial and Industrial Machinery and Equipment (except Automotive and Electronic) Repair and Maintenance');
+INSERT INTO sic (code,description) VALUES ('8114','Personal and Household Goods Repair and Maintenance');
+INSERT INTO sic (code,description) VALUES ('81141','Home and Garden Equipment and Appliance Repair and Maintenance');
+INSERT INTO sic (code,description) VALUES ('811411','Home and Garden Equipment Repair and Maintenance');
+INSERT INTO sic (code,description) VALUES ('811412','Appliance Repair and Maintenance');
+INSERT INTO sic (code,description) VALUES ('81142','Reupholstery and Furniture Repair');
+INSERT INTO sic (code,description) VALUES ('811420','Reupholstery and Furniture Repair');
+INSERT INTO sic (code,description) VALUES ('81143','Footwear and Leather Goods Repair');
+INSERT INTO sic (code,description) VALUES ('811430','Footwear and Leather Goods Repair');
+INSERT INTO sic (code,description) VALUES ('81149','Other Personal and Household Goods Repair and Maintenance');
+INSERT INTO sic (code,description) VALUES ('811490','Other Personal and Household Goods Repair and Maintenance');
+INSERT INTO sic (code,description) VALUES ('812','Personal and Laundry Services');
+INSERT INTO sic (code,description) VALUES ('8121','Personal Care Services');
+INSERT INTO sic (code,description) VALUES ('81211','Hair, Nail, and Skin Care Services');
+INSERT INTO sic (code,description) VALUES ('812111','Barber Shops');
+INSERT INTO sic (code,description) VALUES ('812112','Beauty Salons');
+INSERT INTO sic (code,description) VALUES ('812113','Nail Salons');
+INSERT INTO sic (code,description) VALUES ('81219','Other Personal Care Services');
+INSERT INTO sic (code,description) VALUES ('812191','Diet and Weight Reducing Centers');
+INSERT INTO sic (code,description) VALUES ('812199','Other Personal Care Services');
+INSERT INTO sic (code,description) VALUES ('8122','Death Care Services');
+INSERT INTO sic (code,description) VALUES ('81221','Funeral Homes and Funeral Services');
+INSERT INTO sic (code,description) VALUES ('812210','Funeral Homes and Funeral Services');
+INSERT INTO sic (code,description) VALUES ('81222','Cemeteries and Crematories');
+INSERT INTO sic (code,description) VALUES ('812220','Cemeteries and Crematories');
+INSERT INTO sic (code,description) VALUES ('8123','Drycleaning and Laundry Services');
+INSERT INTO sic (code,description) VALUES ('81231','Coin-Operated Laundries and Drycleaners');
+INSERT INTO sic (code,description) VALUES ('812310','Coin-Operated Laundries and Drycleaners');
+INSERT INTO sic (code,description) VALUES ('81232','Drycleaning and Laundry Services (except Coin-Operated)');
+INSERT INTO sic (code,description) VALUES ('812320','Drycleaning and Laundry Services (except Coin-Operated)');
+INSERT INTO sic (code,description) VALUES ('81233','Linen and Uniform Supply');
+INSERT INTO sic (code,description) VALUES ('812331','Linen Supply');
+INSERT INTO sic (code,description) VALUES ('812332','Industrial Launderers');
+INSERT INTO sic (code,description) VALUES ('8129','Other Personal Services');
+INSERT INTO sic (code,description) VALUES ('81291','Pet Care (except Veterinary) Services');
+INSERT INTO sic (code,description) VALUES ('812910','Pet Care (except Veterinary) Services');
+INSERT INTO sic (code,description) VALUES ('81292','Photofinishing');
+INSERT INTO sic (code,description) VALUES ('812921','Photofinishing Laboratories (except One-Hour)');
+INSERT INTO sic (code,description) VALUES ('812922','One-Hour Photofinishing');
+INSERT INTO sic (code,description) VALUES ('81293','Parking Lots and Garages');
+INSERT INTO sic (code,description) VALUES ('812930','Parking Lots and Garages');
+INSERT INTO sic (code,description) VALUES ('81299','All Other Personal Services');
+INSERT INTO sic (code,description) VALUES ('812990','All Other Personal Services');
+INSERT INTO sic (code,description) VALUES ('813','Religious, Grantmaking, Civic, Professional, and Similar Organizations');
+INSERT INTO sic (code,description) VALUES ('8131','Religious Organizations');
+INSERT INTO sic (code,description) VALUES ('81311','Religious Organizations');
+INSERT INTO sic (code,description) VALUES ('813110','Religious Organizations');
+INSERT INTO sic (code,description) VALUES ('8132','Grantmaking and Giving Services');
+INSERT INTO sic (code,description) VALUES ('81321','Grantmaking and Giving Services');
+INSERT INTO sic (code,description) VALUES ('813211','Grantmaking Foundations');
+INSERT INTO sic (code,description) VALUES ('813212','Voluntary Health Organizations');
+INSERT INTO sic (code,description) VALUES ('813219','Other Grantmaking and Giving Services');
+INSERT INTO sic (code,description) VALUES ('8133','Social Advocacy Organizations');
+INSERT INTO sic (code,description) VALUES ('81331','Social Advocacy Organizations');
+INSERT INTO sic (code,description) VALUES ('813311','Human Rights Organizations');
+INSERT INTO sic (code,description) VALUES ('813312','Environment, Conservation and Wildlife Organizations');
+INSERT INTO sic (code,description) VALUES ('813319','Other Social Advocacy Organizations');
+INSERT INTO sic (code,description) VALUES ('8134','Civic and Social Organizations');
+INSERT INTO sic (code,description) VALUES ('81341','Civic and Social Organizations');
+INSERT INTO sic (code,description) VALUES ('813410','Civic and Social Organizations');
+INSERT INTO sic (code,description) VALUES ('8139','Business, Professional, Labor, Political, and Similar Organizations');
+INSERT INTO sic (code,description) VALUES ('81391','Business Associations');
+INSERT INTO sic (code,description) VALUES ('813910','Business Associations');
+INSERT INTO sic (code,description) VALUES ('81392','Professional Organizations');
+INSERT INTO sic (code,description) VALUES ('813920','Professional Organizations');
+INSERT INTO sic (code,description) VALUES ('81393','Labor Unions and Similar Labor Organizations');
+INSERT INTO sic (code,description) VALUES ('813930','Labor Unions and Similar Labor Organizations');
+INSERT INTO sic (code,description) VALUES ('81394','Political Organizations');
+INSERT INTO sic (code,description) VALUES ('813940','Political Organizations');
+INSERT INTO sic (code,description) VALUES ('81399','Other Similar Organizations (except Business, Professional, Labor, and Political Organizations)');
+INSERT INTO sic (code,description) VALUES ('813990','Other Similar Organizations (except Business, Professional, Labor, and Political Organizations)');
+INSERT INTO sic (code,description) VALUES ('814','Private Households');
+INSERT INTO sic (code,description) VALUES ('8141','Private Households');
+INSERT INTO sic (code,description) VALUES ('81411','Private Households');
+INSERT INTO sic (code,description) VALUES ('814110','Private Households');
+INSERT INTO sic (code,description) VALUES ('92','Public Administration');
+INSERT INTO sic (code,description) VALUES ('921','Executive, Legislative, and Other General Government Support');
+INSERT INTO sic (code,description) VALUES ('9211','Executive, Legislative, and Other General Government Support');
+INSERT INTO sic (code,description) VALUES ('92111','Executive Offices');
+INSERT INTO sic (code,description) VALUES ('921110','Executive Offices');
+INSERT INTO sic (code,description) VALUES ('92112','Legislative Bodies');
+INSERT INTO sic (code,description) VALUES ('921120','Legislative Bodies');
+INSERT INTO sic (code,description) VALUES ('92113','Public Finance Activities');
+INSERT INTO sic (code,description) VALUES ('921130','Public Finance Activities');
+INSERT INTO sic (code,description) VALUES ('92114','Executive and Legislative Offices, Combined');
+INSERT INTO sic (code,description) VALUES ('921140','Executive and Legislative Offices, Combined');
+INSERT INTO sic (code,description) VALUES ('92115','American Indian and Alaska Native Tribal Governments');
+INSERT INTO sic (code,description) VALUES ('921150','American Indian and Alaska Native Tribal Governments');
+INSERT INTO sic (code,description) VALUES ('92119','Other General Government Support');
+INSERT INTO sic (code,description) VALUES ('921190','Other General Government Support');
+INSERT INTO sic (code,description) VALUES ('922','Justice, Public Order, and Safety Activities');
+INSERT INTO sic (code,description) VALUES ('9221','Justice, Public Order, and Safety Activities');
+INSERT INTO sic (code,description) VALUES ('92211','Courts');
+INSERT INTO sic (code,description) VALUES ('922110','Courts');
+INSERT INTO sic (code,description) VALUES ('92212','Police Protection');
+INSERT INTO sic (code,description) VALUES ('922120','Police Protection');
+INSERT INTO sic (code,description) VALUES ('92213','Legal Counsel and Prosecution');
+INSERT INTO sic (code,description) VALUES ('922130','Legal Counsel and Prosecution');
+INSERT INTO sic (code,description) VALUES ('92214','Correctional Institutions');
+INSERT INTO sic (code,description) VALUES ('922140','Correctional Institutions');
+INSERT INTO sic (code,description) VALUES ('92215','Parole Offices and Probation Offices');
+INSERT INTO sic (code,description) VALUES ('922150','Parole Offices and Probation Offices');
+INSERT INTO sic (code,description) VALUES ('92216','Fire Protection');
+INSERT INTO sic (code,description) VALUES ('922160','Fire Protection');
+INSERT INTO sic (code,description) VALUES ('92219','Other Justice, Public Order, and Safety Activities');
+INSERT INTO sic (code,description) VALUES ('922190','Other Justice, Public Order, and Safety Activities');
+INSERT INTO sic (code,description) VALUES ('923','Administration of Human Resource Programs');
+INSERT INTO sic (code,description) VALUES ('9231','Administration of Human Resource Programs');
+INSERT INTO sic (code,description) VALUES ('92311','Administration of Education Programs');
+INSERT INTO sic (code,description) VALUES ('923110','Administration of Education Programs');
+INSERT INTO sic (code,description) VALUES ('92312','Administration of Public Health Programs');
+INSERT INTO sic (code,description) VALUES ('923120','Administration of Public Health Programs');
+INSERT INTO sic (code,description) VALUES ('92313','Administration of Human Resource Programs (except Education, Public Health, and Veterans\' Affairs Programs)');
+INSERT INTO sic (code,description) VALUES ('923130','Administration of Human Resource Programs (except Education, Public Health, and Veterans\' Affairs Programs)');
+INSERT INTO sic (code,description) VALUES ('92314','Administration of Veterans\' Affairs');
+INSERT INTO sic (code,description) VALUES ('923140','Administration of Veterans\' Affairs');
+INSERT INTO sic (code,description) VALUES ('924','Administration of Environmental Quality Programs');
+INSERT INTO sic (code,description) VALUES ('9241','Administration of Environmental Quality Programs');
+INSERT INTO sic (code,description) VALUES ('92411','Administration of Air and Water Resource and Solid Waste Management Programs');
+INSERT INTO sic (code,description) VALUES ('924110','Administration of Air and Water Resource and Solid Waste Management Programs');
+INSERT INTO sic (code,description) VALUES ('92412','Administration of Conservation Programs');
+INSERT INTO sic (code,description) VALUES ('924120','Administration of Conservation Programs');
+INSERT INTO sic (code,description) VALUES ('925','Administration of Housing Programs, Urban Planning, and Community Development');
+INSERT INTO sic (code,description) VALUES ('9251','Administration of Housing Programs, Urban Planning, and Community Development');
+INSERT INTO sic (code,description) VALUES ('92511','Administration of Housing Programs');
+INSERT INTO sic (code,description) VALUES ('925110','Administration of Housing Programs');
+INSERT INTO sic (code,description) VALUES ('92512','Administration of Urban Planning and Community and Rural Development');
+INSERT INTO sic (code,description) VALUES ('925120','Administration of Urban Planning and Community and Rural Development');
+INSERT INTO sic (code,description) VALUES ('926','Administration of Economic Programs');
+INSERT INTO sic (code,description) VALUES ('9261','Administration of Economic Programs');
+INSERT INTO sic (code,description) VALUES ('92611','Administration of General Economic Programs');
+INSERT INTO sic (code,description) VALUES ('926110','Administration of General Economic Programs');
+INSERT INTO sic (code,description) VALUES ('92612','Regulation and Administration of Transportation Programs');
+INSERT INTO sic (code,description) VALUES ('926120','Regulation and Administration of Transportation Programs');
+INSERT INTO sic (code,description) VALUES ('92613','Regulation and Administration of Communications, Electric, Gas, and Other Utilities');
+INSERT INTO sic (code,description) VALUES ('926130','Regulation and Administration of Communications, Electric, Gas, and Other Utilities');
+INSERT INTO sic (code,description) VALUES ('92614','Regulation of Agricultural Marketing and Commodities');
+INSERT INTO sic (code,description) VALUES ('926140','Regulation of Agricultural Marketing and Commodities');
+INSERT INTO sic (code,description) VALUES ('92615','Regulation, Licensing, and Inspection of Miscellaneous Commercial Sectors');
+INSERT INTO sic (code,description) VALUES ('926150','Regulation, Licensing, and Inspection of Miscellaneous Commercial Sectors');
+INSERT INTO sic (code,description) VALUES ('927','Space Research and Technology');
+INSERT INTO sic (code,description) VALUES ('9271','Space Research and Technology');
+INSERT INTO sic (code,description) VALUES ('92711','Space Research and Technology');
+INSERT INTO sic (code,description) VALUES ('927110','Space Research and Technology');
+INSERT INTO sic (code,description) VALUES ('928','National Security and International Affairs');
+INSERT INTO sic (code,description) VALUES ('9281','National Security and International Affairs');
+INSERT INTO sic (code,description) VALUES ('92811','National Security');
+INSERT INTO sic (code,description) VALUES ('928110','National Security');
+INSERT INTO sic (code,description) VALUES ('92812','International Affairs');
+INSERT INTO sic (code,description) VALUES ('928120','International Affairs');
diff --git a/sql/Norwegian_Default-chart.sql b/sql/Norwegian_Default-chart.sql
new file mode 100755
index 00000000..3a04b4da
--- /dev/null
+++ b/sql/Norwegian_Default-chart.sql
@@ -0,0 +1,297 @@
+-- Default chart of accounts
+-- charset: ISO-8859-1
+-- http://www.nif.idrett.no/ftp/Lover/doc/kontoplan.htm
+-- http://www.legemiddelverket.no/rundskriv/frahtil/1999/ik-1499.htm
+-- sample only
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('10', 'Immaterielle eiendeler', 'H', '', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1000', 'Forskning og utvikling', 'A','', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1030', 'Patenter', 'A','', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1040', 'Lisenser', 'A','', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1050', 'Varemerker', 'A','', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1060', 'Andre rettigheter', 'A','', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1070', 'Utsatt skattefordel', 'A','', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1080', 'Goodwill', 'A','', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('11', 'Varige driftsmidler', 'H', '', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1100', 'Bygninger', 'A','', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1120', 'Bygningsmessige anlegg', 'A','', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1140', 'Jord- og skogbrukseiendommer', 'A','', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1150', 'Tomter og andre grunnarealer', 'A','', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('12', 'Transportmidler, inventar, maskiner o.l.', 'H', '', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1200', 'Maskiner og anlegg', 'A','', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1210', 'Maskiner og anlegg under utførelse', 'A','', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1230', 'Biler', 'A','', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1240', 'Andre transportmidler', 'A','', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1250', 'Inventar', 'A','', 'A', 'IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1260', 'Fast bygningsinventar med annen avskrivning', 'A','', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1270', 'Verktøy mv.', 'A','', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1280', 'Kontormaskiner', 'A','', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('13', 'Finansielle anleggsmidler', 'H', '', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1300', 'Investeringer i datterselskaper', 'A','', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1350', 'Investeringer i aksjer og andeler', 'A','', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1360', 'Obligasjoner', 'A','', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1370', 'Fordringer på eiere, styremedlemmer mv.', 'A','', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1380', 'Fordringer på ansatte', 'A','', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link)
+values ('1390', 'Andre langsiktige fordringer', 'A','', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link)
+values ('14', 'Varer', 'H', '', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1400', 'Råvarer og innkjøpte halvfabrikata', 'A','', 'A', 'IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1420', 'Varer under tilvirkning', 'A','', 'A', 'IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1440', 'Ferdige egentilvirkede varer', 'A','', 'A', 'IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1460', 'Innkjøpte varer for videresalg', 'A','', 'A', 'IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1480', 'Forskuddsbetaling til leverandører', 'A','', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('15', 'Fordringer', 'H', '', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1500', 'Kundefordringer', 'A','', 'A', 'AR');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1520', 'Andre kortsiktige fordringer', 'A','', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1530', 'Opptjente, ikke fakturerte driftsinntekter', 'A','', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1570', 'Andre kortsiktige fordringer', 'A','', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1580', 'Avsetning tap på fordringer', 'A','', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('17', 'Andre fordringer', 'H', '', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1700', 'Forskuddsbetalt leie', 'A','', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1710', 'Forskuddsbetalt rente', 'A','', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1720', 'Forskuddsbetalt lønn', 'A','', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1750', 'Påløpte leieinntekter', 'A','', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1760', 'Påløpte renteinntekter', 'A','', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1780', 'Krav på innbetaling av selskapskapital', 'A','', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('18', 'Investeringer', 'H', '', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1800', 'Aksjer & andeler i foretak i samme kons.', 'A','', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1810', 'Markesdbaserte aksjer', 'A','', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1820', 'Andre aksjer', 'A','', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1830', 'Markedsbaserte obligasjoner', 'A','', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1840', 'Andre obligasjoner', 'A','', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1850', 'Markedsbaserte sertifikater', 'A','', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1860', 'Andre sertifikater', 'A','', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1880', 'Andre finansielle instrumenter', 'A','', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('19', 'Bankinnskudd, kontanter o.l.', 'H', '', 'A', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1900', 'Kontanter', 'A','', 'A', 'AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1910', 'Kasse', 'A','', 'A', 'AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1920', 'Bankinnskudd', 'A','', 'A', 'AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1950', 'Bankinnskudd for skattetrekk', 'A','', 'A', 'AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('20', 'Egenkapital', 'H', '', 'Q', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('200', 'Innskutt egenkapital', 'H', '', 'Q', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2000', 'Aksjekapital', 'A','', 'Q', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2010', 'Egne aksjer', 'A','', 'Q', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2020', 'Overkursfond', 'A','', 'Q', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('204', 'Opptj. egenkapital', 'H', '', 'Q', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2040', 'Fond for vurderingsforskjeller', 'A','', 'Q', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2050', 'Annen egenkapital', 'A','', 'Q', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2080', 'Udisponert overskudd', 'A','', 'Q', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2090', 'Udekket tap', 'A','', 'Q', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('210', 'Avsetninger for forpliktelser', 'H', '', 'L', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2100', 'Pensjonsforpliktelser', 'A','', 'L', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2120', 'Utsatt skatt', 'A','', 'L', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2140', 'Avsetn. for garanti- & serviceforpl.', 'A','', 'L', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2180', 'Andre avsetninger for forpiktelser', 'A','', 'L', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('220', 'Annen langsiktig gjeld', 'H', '', 'L', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2200', 'Konvertible lån', 'A','', 'L', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2210', 'Obligsjonslån', 'A','', 'L', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2220', 'Gjeld til kredittinstitusjoner', 'A','', 'L', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2240', 'Pantelån', 'A','', 'L', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2260', 'Gjeld til selskap i samme konsern', 'A','', 'L', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2270', 'Andre valutalån', 'A','', 'L', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('230', 'Kortsiktig gjeld', 'H', '', 'L', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2300', 'Konvertible lån', 'A','', 'L', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2320', 'Sertifikatlån', 'A','', 'L', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2340', 'Andre valutalån', 'A','', 'L', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2360', 'Byggelån', 'A','', 'L', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2380', 'Kassakreditt', 'A','', 'L', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2400', 'Leverandørgjeld', 'A','', 'L', 'AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2500', 'Avsatt betalbar skatt', 'A','', 'L', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2510', 'Skattebetaling', 'A','', 'L', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2600', 'Skattetrekk', 'A','', 'L', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2620', 'Påleggstrekk', 'A','', 'L', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2630', 'Bidragstrekk', 'A','', 'L', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2640', 'Trygdetrekk', 'A','', 'L', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2650', 'Forsikringstrekk', 'A','', 'L', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2660', 'Fagforeningstrekk', 'A','', 'L', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2690', 'Andre trekk', 'A','', 'L', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2710', 'Utgående 24% mva', 'A','', 'L', 'AR_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2715', 'Utgående 12% mva', 'A','', 'L', 'AR_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2717', 'Beregnet avgift utlandet', 'A','', 'L', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2720', 'Inngående 24% mva', 'A','', 'L', 'AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2725', 'Inngående 12% mva', 'A','', 'L', 'AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2745', 'Grunnlag 1 tjenester utlandet', 'A','', 'L', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2746', 'Grunnlag 2 tjenester utlandet', 'A','', 'L', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2750', 'Oppgjørskonto merverdiavgift', 'A','', 'L', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2770', 'Påløpt arbeidsgiveravgift', 'A','', 'L', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2780', 'Skyldig arbeidsgiveravgift', 'A','', 'L', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2781', 'Arb.giv.avg. pål. feriep.', 'A','', 'L', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2800', 'Avsatt utbytte', 'A','', 'L', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2900', 'Forskudd fra kunder', 'A','', 'L', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2910', 'Skyldig lønn', 'A','', 'L', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2920', 'Skyldig feriepenger', 'A','', 'L', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2930', 'Gjeld til ansatte og aksjonærer', 'A','', 'L', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2950', 'Påløpte renter', 'A','', 'L', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2960', 'Påløpte kostn. og forskuddsbet. inskudd', 'A','', 'L', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3', 'Salgs- og driftsinntekter', 'H', '', 'I', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3010', 'Salgsinntekter, 24% mva', 'A','', 'I', 'AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3019', 'Frakt', 'A','', 'I', 'IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3020', 'Salgsinntekter, 12% mva', 'A','', 'I', 'AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3060', 'Uttak av varer', 'A','', 'I', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3080', 'Rabatter og andre salgsinntektsreduksjon', 'A','', 'I', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3099', 'Miljøavgift', 'A','', 'I', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3110', 'Salgsinntekter, avgiftsfrie', 'A','', 'I', 'AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3160', 'Uttak av varer', 'A','', 'I', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3180', 'Rabatter og andre salgsinntektsreduksjon', 'A','', 'I', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3300', 'Spes. offent. avg. tilvirk./solgte varer', 'A','', 'I', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3400', 'Spes. offent. avg. tilvirk./solgte varer', 'A','', 'I', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3440', 'Spes. offentlige tilskudd for tjenester', 'A','', 'I', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3500', 'Uopptjente inntekter garanti', 'A','', 'I', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3510', 'Uopptjente inntekter service', 'A','', 'I', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3600', 'Leieinntekter fast eiendom', 'A','', 'I', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3610', 'Leieinntekter andre varige driftsmidler', 'A','', 'I', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3620', 'Andre leieinntekter', 'A','', 'I', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3700', 'Provisjonsinntekter', 'A','', 'I', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3800', 'Gevinst ved avgang av anleggsmidler', 'A','', 'I', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3900', 'Andre driftsrelaterte inntekter', 'A','', 'I', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4', 'Varekostnad', 'H', '', 'I', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('40', 'Råvarer og halvfabrikata', 'H', '', 'I', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4010', 'Innkjøp varer, avgiftspliktig 24% mva', 'A','', 'E', 'AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4020', 'Innkjøp varer, avgiftspliktig 12% mva', 'A','', 'E', 'AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4060', 'Innkjøpsprisreduksjoner', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4070', 'Frakt, toll og spedisjon', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4090', 'Beholdningsendring', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4110', 'Innkjøp varer, avgiftsfritt', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4160', 'Frakt, toll og spedisjon', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4170', 'Frakt, toll og spedisjon, avgiftsfritt', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4180', 'Innkjøpsprisreduksjoner', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4190', 'Beholdningsendring', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('43', 'Varer for videresalg', 'H', '', 'I', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4310', 'Innkjøp av varer for videresalg, 24% mva', 'A','', 'E', 'AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4320', 'Innkjøp av varer for videresalg, 12% mva', 'A','', 'E', 'AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4360', 'Frakt, toll m.m. vedr. innkjøp av varer for videresalg', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4370', 'Rabatter m.m. vedr. innkjøp av varer for videresalg', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4380', 'Varekostnad', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4390', 'Beholdningsendring varer for videresalg', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5', 'Lønnskostnader', 'H', '', 'I', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5010', 'Faste lønninger', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5090', 'Periodiseringskonto lønn', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5190', 'Påløpne feriepenger', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5210', 'Fri bil', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5220', 'Fri telefon', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5230', 'Fri avis', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5240', 'Fri losji og bolig', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5250', 'Rentefordel', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5260', 'Smusstillegg', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5280', 'Andre fordeler i arbeidsforhold', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5291', 'Motkonto for gruppe 52', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5330', 'Godtgj. til styre- og bedriftsforsamling', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5410', 'Arbeidsgiveravgift', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5411', 'Arb.giv.avg. pål. feriep.', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5420', 'Innberetningspliktige pensjonskostnader', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5430', 'Premie pensjonsordning', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5500', 'Andre kostnadsgodtgjørelser', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5510', 'Overtidsmat etter regning', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5520', 'Kantinekostnader', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5800', 'Refusjon av sykepenger', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5820', 'Refusjon av arbeidsgiveravgift', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5920', 'Yrkesskadeforsikring', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5930', 'Andre ikke arb.giv.avg.pliktige forsikr.', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5950', 'Personalforsikring', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5960', 'Gaver til ansatte', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6', 'Andre driftskostnader, av- og nedskrivninger', 'H', '', 'I', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6000', 'Avskrivning på bygn. & annen fast eiend.', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6010', 'Avskrivning på transportmidler, maskiner', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6020', 'Avskrivning på immaterielle eiendeler', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6050', 'Nedskr. varige driftsmidl. & imat. eiend', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6100', 'Frakter, transportkostnader og forsikring', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6110', 'Toll og spedisjonskostnader ved forsend', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('62', 'Energi, brensel o.l. vedr. produksjon', 'H', '', 'I', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6200', 'Elektrisitet', 'A','', 'E', 'AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6260', 'Vann', 'A','', 'E', 'AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('63', 'Kostnader. vedr. lokaler', 'H', '', 'I', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6300', 'Leie lokaler', 'A','', 'E', 'AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6320', 'Renovasjon, vann, avløp mv.', 'A','', 'E', 'AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6340', 'Lys, varme', 'A','', 'E', 'AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6360', 'Renhold', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('64', 'Leie av maskiner, inventar o.l.', 'H', '', 'I', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6400', 'Leie av driftsmidler', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6430', 'Leie andre kontormaskiner', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6540', 'Inventar', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6550', 'Driftsmaterialer', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6560', 'Rekvisita', 'A','', 'E', 'AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6570', 'Arbeidsklær og verneutstyr', 'A','', 'E', 'AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6600', 'Reparasjoner og vedlikehold bygninger', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6620', 'Reparasjoner og vedlikehold utstyr', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6700', 'Revisjonshonorar', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6720', 'Honorar for økonomisk & juridisk bistand', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6750', 'Honorar regnskapsfører', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6800', 'Kontorrekvisita', 'A','', 'E', 'AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6820', 'Trykksaker', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6840', 'Aviser, tidsskrifter, bøker mv.', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6860', 'Møter, kurs, oppdatering mv.', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6900', 'Telefon', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6940', 'Porto', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7000', 'Drivstoff', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7020', 'Vedlikehold', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7040', 'Forsikringer', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7100', 'Bilgodtgjørelse, oppgavepliktig', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7105', 'Øreavrunding', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7130', 'Reisekostnader, oppgavepliktige', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7140', 'Reisekostnader, ikke oppgavepliktig', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7150', 'Diettkostnader, oppgaveplikig', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7160', 'Diettkostnader, ikke oppgavepliktig', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7200', 'Provisjonskostnader, oppgavepliktige', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7210', 'Provisjonskostnader, ikke oppgavepliktig', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7300', 'Salgskostnader', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7320', 'Reklamekostnader', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7350', 'Representasjon, fradragsberettiget', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7360', 'Representasjon, ikke fradragsberettiget', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7400', 'Kontingenter og gaver', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7500', 'Forsikringspremier', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7550', 'Garanti- og servicekostnader', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7600', 'Lisenesavgifter og royalties', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7700', 'Styre- og bedriftsforsamlingsmøter', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7710', 'Generalforsamling', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7730', 'Kostnader ved egne aksjer', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7750', 'Eiendoms- og festeavgift', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7770', 'Bank og kortgebyrer', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7800', 'Tap ved avgang anleggsmidler', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7820', 'Innkommet på tidligere nedskrevne fordri', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7830', 'Tap på fordringer', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7850', 'Tap pga. brannskade', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7860', 'Tap på kontrakter', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7900', 'Beholdningsendring anlegg under utførels', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7990', 'Andre driftskostnader', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8', 'Finansinntekter og -kostnader, skatter, m.m.', 'H', '', 'I', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8000', 'Inntekter på investeringer i datterselskap', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8040', 'Renteinntekter, skattefrie', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8050', 'Annen renteinntekt', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8060', 'Purregebyr, kunder', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8070', 'Renteinntekter, kunder', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8080', 'Agio gevinst', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8090', 'Andre finansinntekter', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8100', 'Verdired. av markedsbas.finans. omløps.', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8110', 'Nedskrivn. av andre finansielle omløps.', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8120', 'Nedskrivning av finansielle anleggsmidl.', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8140', 'Rentekostnader, ikke fradragsberettigede', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8150', 'Annen rentekostnad', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8160', 'Purregebyr. leverandør', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8180', 'Agio tap', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8300', 'Betalbar skatt', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8320', 'Utsatt skatt', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8350', 'Skattekostnad', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8600', 'Betalbar skatt', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8620', 'Utsatt skatt', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('880', 'Fond for vurderingsforskjeller', 'H', '', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8800', 'Årsresultat', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8900', 'Overføringer fond for vurderingsforskjel', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('892', 'Utbytte', 'H', '', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8920', 'Avsatt utbytte/renter på grunnfondsbevis', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('893', 'Konsernbidrag', 'H', '', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8930', 'Konsernbidrag', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('891', 'Annen egenkapital', 'H', '', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8910', 'Overføringer felleseid andelskapital for', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8940', 'Aksjonærbidrag', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8950', 'Fondsemisjon', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8960', 'Overføringer annen egenkapital', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8980', 'Avsatt til fri egenkapital', 'A','', 'E', '');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8990', 'Udekket tap', 'A','', 'E', '');
+--
+insert into tax (chart_id,rate) values ((select id from chart where accno = '2710'),0.24);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '2715'),0.12);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '2720'),0.24);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '2725'),0.12);
+--
+update defaults set inventory_accno_id = (select id from chart where accno = '1250'), income_accno_id = (select id from chart where accno = '3010'), expense_accno_id = (select id from chart where accno = '4010'), fxgain_accno_id = (select id from chart where accno = '8080'), fxloss_accno_id = (select id from chart where accno = '8180'), curr = 'NOK:EUR:USD', weightunit = 'kg';
+--
diff --git a/sql/Oracle-indices.sql b/sql/Oracle-indices.sql
new file mode 100755
index 00000000..409b8913
--- /dev/null
+++ b/sql/Oracle-indices.sql
@@ -0,0 +1,65 @@
+create index acc_trans_trans_id_key on acc_trans (trans_id);
+create index acc_trans_chart_id_key on acc_trans (chart_id);
+create index acc_trans_transdate_key on acc_trans (transdate);
+create index acc_trans_source_key on acc_trans (source);
+create index ap_id_key on ap (id);
+create index ap_transdate_key on ap (transdate);
+create index ap_invnumber_key on ap (invnumber);
+create index ap_ordnumber_key on ap (ordnumber);
+create index ap_vendor_id_key on ap (vendor_id);
+create index ap_employee_id_key on ap (employee_id);
+create index ap_quonumber_key on ap (quonumber);
+create index ar_id_key on ar (id);
+create index ar_transdate_key on ar (transdate);
+create index ar_invnumber_key on ar (invnumber);
+create index ar_ordnumber_key on ar (ordnumber);
+create index ar_customer_id_key on ar (customer_id);
+create index ar_employee_id_key on ar (employee_id);
+create index ar_quonumber_key on ar (quonumber);
+create index assembly_id_key on assembly (id);
+create index chart_id_key on chart (id);
+create unique index chart_accno_key on chart (accno);
+create index chart_category_key on chart (category);
+create index chart_link_key on chart (link);
+create index chart_gifi_accno_key on chart (gifi_accno);
+create index customer_id_key on customer (id);
+create index customer_customer_id_key on customertax (customer_id);
+create index customer_customernumber_key on customer (customernumber);
+create index customer_name_key on customer (name);
+create index customer_contact_key on customer (contact);
+create index employee_id_key on employee (id);
+create unique index employee_login_key on employee (login);
+create index employee_name_key on employee (name);
+create index exchangerate_ct_key on exchangerate (curr, transdate);
+create unique index gifi_accno_key on gifi (accno);
+create index gl_id_key on gl (id);
+create index gl_transdate_key on gl (transdate);
+create index gl_reference_key on gl (reference);
+create index gl_description_key on gl (description);
+create index gl_employee_id_key on gl (employee_id);
+create index invoice_id_key on invoice (id);
+create index invoice_trans_id_key on invoice (trans_id);
+create index makemodel_parts_id_key on makemodel (parts_id);
+create index makemodel_make_key on makemodel (make);
+create index makemodel_model_key on makemodel (model);
+create index oe_id_key on oe (id);
+create index oe_transdate_key on oe (transdate);
+create index oe_ordnumber_key on oe (ordnumber);
+create index oe_employee_id_key on oe (employee_id);
+create index orderitems_trans_id_key on orderitems (trans_id);
+create index parts_id_key on parts (id);
+create index parts_partnumber_key on parts (partnumber);
+create index parts_description_key on parts (description);
+create index partstax_parts_id_key on partstax (parts_id);
+create index vendor_id_key on vendor (id);
+create index vendor_name_key on vendor (name);
+create index vendor_vendornumber_key on vendor (vendornumber);
+create index vendor_contact_key on vendor (contact);
+create index vendortax_vendor_id_key on vendortax (vendor_id);
+create index shipto_trans_id_key on shipto (trans_id);
+create index project_id_key on project (id);
+create unique index projectnumber_key on project (projectnumber);
+create index partsgroup_id_key on partsgroup (id);
+create unique index partsgroup_key on partsgroup (partsgroup);
+create index status_trans_id_key on status (trans_id);
+create index department_id_key on department (id);
diff --git a/sql/Oracle-tables.sql b/sql/Oracle-tables.sql
new file mode 100755
index 00000000..9bd97ce7
--- /dev/null
+++ b/sql/Oracle-tables.sql
@@ -0,0 +1,424 @@
+-- Oracle-tables.sql
+-- Paulo Rodrigues: added functions and triggers, Oct. 31, 2001
+--
+-- Modified for use with SL 2.0 and Oracle 9i2, Dec 13, 2002
+-- Updated to 2.3.0, Dec 18, 2003
+--
+ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD';
+--
+CREATE SEQUENCE id START WITH 10000 INCREMENT BY 1 MAXVALUE 2147483647 MINVALUE 1 CACHE 2;
+SELECT ID.NEXTVAL FROM DUAL;
+--
+CREATE SEQUENCE invoiceid START WITH 1 INCREMENT BY 1 MAXVALUE 2147483647 MINVALUE 1 CACHE 2;
+SELECT INVOICEID.NEXTVAL FROM DUAL;
+--
+CREATE TABLE makemodel (
+ parts_id INTEGER,
+ make VARCHAR2(64),
+ model VARCHAR2(64)
+);
+--
+CREATE TABLE gl (
+ id INTEGER,
+ reference VARCHAR2(50),
+ description VARCHAR2(100),
+ transdate DATE DEFAULT SYSDATE,
+ employee_id INTEGER,
+ notes VARCHAR2(4000),
+ department_id INTEGER DEFAULT 0
+);
+--
+CREATE TABLE chart (
+ id INTEGER,
+ accno VARCHAR2(20) NOT NULL,
+ description VARCHAR2(100),
+ charttype CHAR(1) DEFAULT 'A',
+ category CHAR(1),
+ link VARCHAR2(100),
+ gifi_accno VARCHAR2(20)
+);
+--
+CREATE TABLE gifi (
+ accno VARCHAR2(20),
+ description VARCHAR2(100)
+);
+--
+CREATE TABLE defaults (
+ inventory_accno_id INTEGER,
+ income_accno_id INTEGER,
+ expense_accno_id INTEGER,
+ fxgain_accno_id INTEGER,
+ fxloss_accno_id INTEGER,
+ invnumber VARCHAR2(30),
+ sonumber VARCHAR2(30),
+ yearend VARCHAR2(5),
+ weightunit VARCHAR2(5),
+ businessnumber VARCHAR2(30),
+ version VARCHAR2(8),
+ curr VARCHAR2(500),
+ closedto DATE,
+ revtrans CHAR(1) DEFAULT '0',
+ ponumber VARCHAR2(30),
+ sqnumber VARCHAR2(30),
+ rfqnumber VARCHAR2(30)
+);
+INSERT INTO defaults (version) VALUES ('2.3.0');
+--
+CREATE TABLE acc_trans (
+ trans_id INTEGER,
+ chart_id INTEGER,
+ amount FLOAT,
+ transdate DATE DEFAULT SYSDATE,
+ source VARCHAR2(20),
+ cleared CHAR(1) DEFAULT '0',
+ fx_transaction CHAR(1) DEFAULT '0',
+ project_id INTEGER
+);
+--
+CREATE TABLE invoice (
+ id INTEGER,
+ trans_id INTEGER,
+ parts_id INTEGER,
+ description VARCHAR2(4000),
+ qty FLOAT,
+ allocated FLOAT,
+ sellprice FLOAT,
+ fxsellprice FLOAT,
+ discount FLOAT,
+ assemblyitem CHAR(1) DEFAULT '0',
+ unit VARCHAR2(5),
+ project_id INTEGER,
+ deliverydate DATE,
+ serialnumber VARCHAR2(200)
+);
+--
+CREATE TABLE vendor (
+ id INTEGER,
+ name VARCHAR2(35),
+ addr1 VARCHAR2(35),
+ addr2 VARCHAR2(35),
+ addr3 VARCHAR2(35),
+ addr4 VARCHAR2(35),
+ contact VARCHAR2(35),
+ phone VARCHAR2(20),
+ fax VARCHAR2(20),
+ email VARCHAR2(50),
+ notes VARCHAR2(4000),
+ terms INTEGER DEFAULT 0,
+ taxincluded CHAR(1),
+ vendornumber VARCHAR2(40),
+ cc VARCHAR2(50),
+ bcc VARCHAR2(50)
+);
+--
+CREATE TABLE customer (
+ id INTEGER,
+ name VARCHAR2(35),
+ addr1 VARCHAR2(35),
+ addr2 VARCHAR2(35),
+ addr3 VARCHAR2(35),
+ addr4 VARCHAR2(35),
+ contact VARCHAR2(35),
+ phone VARCHAR2(20),
+ fax VARCHAR2(20),
+ email VARCHAR2(50),
+ notes VARCHAR2(4000),
+ discount FLOAT,
+ taxincluded CHAR(1),
+ creditlimit FLOAT,
+ terms INTEGER DEFAULT 0,
+ customernumber VARCHAR2(40),
+ cc VARCHAR2(50),
+ bcc VARCHAR2(50)
+);
+--
+CREATE TABLE parts (
+ id INTEGER,
+ partnumber VARCHAR2(30),
+ description VARCHAR2(4000),
+ unit VARCHAR2(5),
+ listprice FLOAT,
+ sellprice FLOAT,
+ lastcost FLOAT,
+ priceupdate DATE DEFAULT SYSDATE,
+ weight FLOAT,
+ onhand FLOAT DEFAULT 0,
+ notes VARCHAR2(4000),
+ makemodel CHAR(1) DEFAULT '0',
+ assembly CHAR(1) DEFAULT '0',
+ alternate CHAR(1) DEFAULT '0',
+ rop FLOAT,
+ inventory_accno_id INTEGER,
+ income_accno_id INTEGER,
+ expense_accno_id INTEGER,
+ bin VARCHAR2(20),
+ obsolete CHAR(1) DEFAULT '0',
+ bom CHAR(1) DEFAULT '0',
+ image VARCHAR2(100),
+ drawing VARCHAR2(100),
+ microfiche VARCHAR2(100),
+ partsgroup_id INTEGER
+);
+--
+CREATE TABLE assembly (
+ id INTEGER,
+ parts_id INTEGER,
+ qty FLOAT,
+ bom char(1)
+);
+--
+CREATE TABLE ar (
+ id INTEGER,
+ invnumber VARCHAR2(30),
+ transdate DATE DEFAULT SYSDATE,
+ customer_id INTEGER,
+ taxincluded CHAR(1),
+ amount FLOAT,
+ netamount FLOAT,
+ paid FLOAT,
+ datepaid DATE,
+ duedate DATE,
+ invoice CHAR(1) DEFAULT '0',
+ shippingpoint VARCHAR2(100),
+ terms INTEGER DEFAULT 0,
+ notes VARCHAR2(4000),
+ curr CHAR(3),
+ ordnumber VARCHAR2(30),
+ employee_id INTEGER,
+ till VARCHAR2(20),
+ quonumber VARCHAR2(30),
+ intnotes VARCHAR2(4000),
+ department_id INTEGER DEFAULT 0
+);
+--
+CREATE TABLE ap (
+ id INTEGER,
+ invnumber VARCHAR2(30),
+ transdate DATE DEFAULT SYSDATE,
+ vendor_id INTEGER,
+ taxincluded CHAR(1) DEFAULT '0',
+ amount FLOAT,
+ netamount FLOAT,
+ paid FLOAT,
+ datepaid DATE,
+ duedate DATE,
+ invoice CHAR(1) DEFAULT '0',
+ ordnumber VARCHAR2(30),
+ curr CHAR(3),
+ notes VARCHAR2(4000),
+ employee_id INTEGER,
+ till VARCHAR2(20),
+ quonumber VARCHAR2(30),
+ intnotes VARCHAR2(4000),
+ department_id INTEGER DEFAULT 0
+);
+--
+CREATE TABLE partstax (
+ parts_id INTEGER,
+ chart_id INTEGER
+);
+--
+CREATE TABLE tax (
+ chart_id INTEGER,
+ rate FLOAT,
+ taxnumber VARCHAR2(30)
+);
+--
+CREATE TABLE customertax (
+ customer_id INTEGER,
+ chart_id INTEGER
+);
+--
+CREATE TABLE vendortax (
+ vendor_id INTEGER,
+ chart_id INTEGER
+);
+--
+CREATE TABLE oe (
+ id INTEGER,
+ ordnumber VARCHAR2(30),
+ transdate DATE DEFAULT SYSDATE,
+ vendor_id INTEGER,
+ customer_id INTEGER,
+ amount FLOAT,
+ netamount FLOAT,
+ reqdate DATE,
+ taxincluded CHAR(1),
+ shippingpoint VARCHAR2(100),
+ notes VARCHAR2(4000),
+ curr CHAR(3),
+ employee_id INTEGER,
+ closed CHAR(1) DEFAULT '0',
+ quotation CHAR(1) DEFAULT '0',
+ quonumber VARCHAR2(30),
+ intnotes VARCHAR2(4000),
+ department_id INTEGER DEFAULT 0
+);
+--
+CREATE TABLE orderitems (
+ trans_id INTEGER,
+ parts_id INTEGER,
+ description VARCHAR2(4000),
+ qty FLOAT,
+ sellprice FLOAT,
+ discount FLOAT,
+ unit VARCHAR2(5),
+ project_id INTEGER,
+ reqdate DATE
+);
+--
+CREATE TABLE exchangerate (
+ curr CHAR(3),
+ transdate DATE,
+ buy FLOAT,
+ sell FLOAT
+);
+--
+CREATE TABLE employee (
+ id INTEGER,
+ login VARCHAR2(20),
+ name VARCHAR2(35),
+ addr1 VARCHAR2(35),
+ addr2 VARCHAR2(35),
+ addr3 VARCHAR2(35),
+ addr4 VARCHAR2(35),
+ workphone VARCHAR2(20),
+ homephone VARCHAR2(20),
+ startdate DATE DEFAULT SYSDATE,
+ enddate DATE,
+ notes VARCHAR2(4000),
+ role VARCHAR2(30)
+);
+--
+CREATE TABLE shipto (
+ trans_id INTEGER,
+ shiptoname VARCHAR2(35),
+ shiptoaddr1 VARCHAR2(35),
+ shiptoaddr2 VARCHAR2(35),
+ shiptoaddr3 VARCHAR2(35),
+ shiptoaddr4 VARCHAR2(35),
+ shiptocontact VARCHAR2(35),
+ shiptophone VARCHAR2(20),
+ shiptofax VARCHAR2(20),
+ shiptoemail VARCHAR2(50)
+);
+--
+CREATE TABLE project (
+ id INTEGER,
+ projectnumber VARCHAR2(50),
+ description VARCHAR2(4000)
+);
+--
+CREATE TABLE partsgroup (
+ id INTEGER,
+ partsgroup VARCHAR2(100)
+);
+--
+CREATE TABLE status (
+ trans_id INTEGER,
+ formname VARCHAR2(30),
+ printed CHAR(1) DEFAULT 0,
+ emailed CHAR(1) DEFAULT 0,
+ spoolfile VARCHAR2(20),
+ chart_id INTEGER
+);
+--
+CREATE TABLE department (
+ id INTEGER,
+ description VARCHAR2(100),
+ role CHAR(1) DEFAULT 'P'
+);
+--
+-- functions
+--
+CREATE OR REPLACE FUNCTION current_date RETURN date AS
+BEGIN
+ return(sysdate);--
+END;;
+--
+-- triggers
+--
+CREATE OR REPLACE TRIGGER glid BEFORE INSERT ON gl FOR EACH ROW
+BEGIN
+ SELECT id.nextval
+ INTO :new.id
+ FROM DUAL;--
+END;;
+--
+CREATE OR REPLACE TRIGGER chartid BEFORE INSERT ON chart FOR EACH ROW
+BEGIN
+ SELECT id.nextval
+ INTO :new.id
+ FROM DUAL;--
+END;;
+--
+CREATE OR REPLACE TRIGGER invoiceid BEFORE INSERT ON invoice FOR EACH ROW
+BEGIN
+ SELECT invoiceid.nextval
+ INTO :new.id
+ FROM DUAL;--
+END;;
+--
+CREATE OR REPLACE TRIGGER vendorid BEFORE INSERT ON vendor FOR EACH ROW
+BEGIN
+ SELECT id.nextval
+ INTO :new.id
+ FROM DUAL;--
+END;;
+--
+CREATE OR REPLACE TRIGGER customerid BEFORE INSERT ON customer FOR EACH ROW
+BEGIN
+ SELECT id.nextval
+ INTO :new.id
+ FROM DUAL;--
+END;;
+--
+CREATE OR REPLACE TRIGGER partsid BEFORE INSERT ON parts FOR EACH ROW
+BEGIN
+ SELECT id.nextval
+ INTO :new.id
+ FROM DUAL;--
+END;;
+--
+CREATE OR REPLACE TRIGGER arid BEFORE INSERT ON ar FOR EACH ROW
+BEGIN
+ SELECT id.nextval
+ INTO :new.id
+ FROM DUAL;--
+END;;
+--
+CREATE OR REPLACE TRIGGER apid BEFORE INSERT ON ap FOR EACH ROW
+BEGIN
+ SELECT id.nextval
+ INTO :new.id
+ FROM DUAL;--
+END;;
+--
+CREATE OR REPLACE TRIGGER oeid BEFORE INSERT ON oe FOR EACH ROW
+BEGIN
+ SELECT id.nextval
+ INTO :new.id
+ FROM DUAL;--
+END;;
+--
+CREATE OR REPLACE TRIGGER employeeid BEFORE INSERT ON employee FOR EACH ROW
+BEGIN
+ SELECT id.nextval
+ INTO :new.id
+ FROM DUAL;--
+END;;
+--
+CREATE OR REPLACE TRIGGER projectid BEFORE INSERT ON project FOR EACH ROW
+BEGIN
+ SELECT id.nextval
+ INTO :new.id
+ FROM DUAL;--
+END;;
+--
+CREATE OR REPLACE TRIGGER partsgroupid BEFORE INSERT ON partsgroup FOR EACH ROW
+BEGIN
+ SELECT id.nextval
+ INTO :new.id
+FROM DUAL;--
+END;;
+--
diff --git a/sql/Oracle-upgrade-1.8.0-1.8.4.sql b/sql/Oracle-upgrade-1.8.0-1.8.4.sql
new file mode 100755
index 00000000..a3293a64
--- /dev/null
+++ b/sql/Oracle-upgrade-1.8.0-1.8.4.sql
@@ -0,0 +1,28 @@
+--
+ALTER TABLE chart ADD gifi_accno VARCHAR2(20);
+--
+CREATE TABLE gifi (
+ accno VARCHAR2(20),
+ description VARCHAR2(100)
+);
+--
+CREATE UNIQUE INDEX chart_accno_key ON chart (accno);
+--
+CREATE TABLE mtemp (
+ parts_id INTEGER,
+ name VARCHAR2(100)
+);
+INSERT INTO mtemp SELECT parts_id, name FROM makemodel;
+DROP TABLE makemodel;
+ALTER TABLE mtemp RENAME TO makemodel;
+--
+ALTER TABLE defaults ADD closedto DATE;
+ALTER TABLE defaults ADD revtrans CHAR(1);
+--
+ALTER TABLE ap ADD notes VARCHAR2(4000);
+--
+ALTER TABLE customer ADD businessnumber VARCHAR2(40);
+ALTER TABLE vendor ADD businessnumber VARCHAR2(40);
+--
+UPDATE defaults SET version = '1.8.4', revtrans = '0';
+--
diff --git a/sql/Oracle-upgrade-1.8.4-1.8.5.sql b/sql/Oracle-upgrade-1.8.4-1.8.5.sql
new file mode 100755
index 00000000..d228b9ee
--- /dev/null
+++ b/sql/Oracle-upgrade-1.8.4-1.8.5.sql
@@ -0,0 +1,77 @@
+--
+ALTER TABLE customer ADD (customernumber VARCHAR2(40));
+UPDATE customer SET customernumber = businessnumber;
+ALTER TABLE customer DROP COLUMN businessnumber;
+CREATE INDEX customer_customernumber_key ON customer (customernumber);
+--
+ALTER TABLE vendor ADD (vendornumber VARCHAR2(40));
+UPDATE vendor SET vendornumber = businessnumber;
+ALTER TABLE vendor DROP COLUMN businessnumber;
+CREATE INDEX vendor_vendornumber_key ON vendor (vendornumber);
+--
+CREATE TABLE employee (
+ id INTEGER,
+ login VARCHAR2(20),
+ name VARCHAR2(35),
+ addr1 VARCHAR2(35),
+ addr2 VARCHAR2(35),
+ addr3 VARCHAR2(35),
+ addr4 VARCHAR2(35),
+ workphone VARCHAR2(20),
+ homephone VARCHAR2(20),
+ startdate DATE DEFAULT SYSDATE,
+ enddate DATE,
+ notes VARCHAR2(4000)
+);
+--
+CREATE OR REPLACE TRIGGER employeeid BEFORE INSERT ON employee FOR EACH ROW
+BEGIN
+ SELECT id.nextval
+ INTO :new.id
+ FROM DUAL;--
+END;;
+--
+CREATE INDEX employee_id_key ON employee (id);
+CREATE UNIQUE INDEX employee_login_key ON employee (login);
+CREATE INDEX employee_name_key ON employee (name);
+--
+ALTER TABLE gl ADD (employee_id INTEGER);
+CREATE INDEX gl_employee_id_key ON gl (employee_id);
+ALTER TABLE ar ADD (employee_id INTEGER);
+CREATE INDEX ar_employee_id_key ON ar (employee_id);
+ALTER TABLE ap ADD (employee_id INTEGER);
+CREATE INDEX ap_employee_id_key ON ap (employee_id);
+ALTER TABLE oe ADD (employee_id INTEGER);
+CREATE INDEX oe_employee_id_key ON oe (employee_id);
+--
+ALTER TABLE invoice ADD (unit VARCHAR2(5));
+ALTER TABLE orderitems ADD (unit VARCHAR2(5));
+--
+UPDATE chart SET gifi_accno = '' WHERE gifi_accno = NULL;
+ALTER TABLE chart RENAME TO chartold;
+CREATE TABLE chart (
+ id INTEGER,
+ accno VARCHAR2(20) NOT NULL,
+ description VARCHAR2(100),
+ charttype CHAR(1) DEFAULT 'A',
+ category CHAR(1),
+ link VARCHAR2(100),
+ gifi_accno VARCHAR2(20)
+);
+INSERT INTO chart (id, accno, description, charttype, category, link, gifi_accno) SELECT id, accno, description, charttype, category, link, gifi_accno from chartold;
+DROP TABLE chartold;
+CREATE INDEX chart_id_key ON chart (id);
+CREATE UNIQUE INDEX chart_accno_key ON chart (accno);
+CREATE INDEX chart_category_key ON chart (category);
+CREATE INDEX chart_link_key ON chart (link);
+CREATE INDEX chart_gifi_accno_key ON chart (gifi_accno);
+--
+ALTER TABLE parts MODIFY inventory_accno_id;
+--
+ALTER TABLE defaults ADD (sonumber VARCHAR2(30));
+UPDATE defaults SET sonumber = ordnumber;
+ALTER TABLE defaults DROP COLUMN ordnumber;
+ALTER TABLE defaults ADD (ponumber VARCHAR2(30));
+--
+UPDATE defaults SET version = '1.8.5';
+--
diff --git a/sql/Oracle-upgrade-1.8.5-2.0.0.sql b/sql/Oracle-upgrade-1.8.5-2.0.0.sql
new file mode 100755
index 00000000..2d2231be
--- /dev/null
+++ b/sql/Oracle-upgrade-1.8.5-2.0.0.sql
@@ -0,0 +1,100 @@
+--
+alter table customer add (cc VARCHAR2(50));
+alter table customer add (bcc VARCHAR2(50));
+--
+alter table vendor add (cc VARCHAR2(50));
+alter table vendor add (bcc VARCHAR2(50));
+--
+create table shipto (
+ trans_id integer,
+ shiptoname varchar2(35),
+ shiptoaddr1 varchar2(35),
+ shiptoaddr2 varchar2(35),
+ shiptoaddr3 varchar2(35),
+ shiptoaddr4 varchar2(35),
+ shiptocontact varchar2(35),
+ shiptophone varchar2(20),
+ shiptofax varchar2(20),
+ shiptoemail VARCHAR2(50)
+);
+--
+insert into shipto (trans_id, shiptoname, shiptoaddr1, shiptoaddr2, shiptoaddr3, shiptoaddr4, shiptocontact, shiptophone, shiptofax, shiptoemail) select id, shiptoname, shiptoaddr1, shiptoaddr2, shiptoaddr3, shiptoaddr4, shiptocontact, shiptophone, shiptofax, shiptoemail from customer where shiptoname != '' or shiptoname is not null;
+--
+insert into shipto (trans_id, shiptoname, shiptoaddr1, shiptoaddr2, shiptoaddr3, shiptoaddr4, shiptocontact, shiptophone, shiptofax, shiptoemail) select distinct on (a.id) a.id, c.shiptoname, c.shiptoaddr1, c.shiptoaddr2, c.shiptoaddr3, c.shiptoaddr4, c.shiptocontact, c.shiptophone, c.shiptofax, c.shiptoemail from customer c, ar a where a.customer_id = c.id;
+--
+insert into shipto (trans_id, shiptoname, shiptoaddr1, shiptoaddr2, shiptoaddr3, shiptoaddr4, shiptocontact, shiptophone, shiptofax, shiptoemail) select distinct on (o.id) o.id, c.shiptoname, c.shiptoaddr1, c.shiptoaddr2, c.shiptoaddr3, c.shiptoaddr4, c.shiptocontact, c.shiptophone, c.shiptofax, c.shiptoemail from customer c, oe o where o.customer_id = c.id;
+--
+create index shipto_trans_id_key on shipto (trans_id);
+--
+create table custome (
+ id integer,
+ name varchar2(35),
+ addr1 varchar2(35),
+ addr2 varchar2(35),
+ addr3 varchar2(35),
+ addr4 varchar2(35),
+ contact varchar2(35),
+ phone varchar2(20),
+ fax varchar2(20),
+ email VARCHAR2(50),
+ notes RCHAR2(4000),
+ discount float,
+ taxincluded char(1),
+ creditlimit float DEFAULT 0,
+ terms integer DEFAULT 0,
+ customernumber VARCHAR2(40),
+ cc VARCHAR2(50),
+ bcc VARCHAR2(50)
+);
+insert into custome (id, name, addr1, addr2, addr3, addr4, contact, phone, fax, email, notes, discount, taxincluded, creditlimit, terms, customernumber) select id, name, addr1, addr2, addr3, addr4, contact, phone, fax, email, notes, discount, taxincluded, creditlimit, terms, customernumber from customer;
+--
+drop table customer;
+alter table custome rename to customer;
+create index customer_id_key on customer (id);
+create index customer_name_key on customer (name);
+create index customer_contact_key on customer (contact);
+--
+alter table parts add (bom char(1) default '0');
+update parts set bom = '0';
+update parts set bom = '1' where assembly = '1';
+alter table parts add (image VARCHAR2(100));
+alter table parts add (drawing VARCHAR2(100));
+alter table parts add (microfiche VARCHAR2(100));
+--
+alter table gl add (notes VARCHAR2(4000));
+--
+alter table oe add (closed char(1) default '0');
+update oe set closed = '0';
+--
+create table project (
+ id integer,
+ projectnumber VARCHAR2(50),
+ description VARCHAR2(4000)
+);
+--
+create index project_id_key on project (id);
+--
+alter table acc_trans add (project_id integer);
+update acc_trans set cleared = '0' where cleared = '1';
+--
+alter table invoice add (project_id integer);
+alter table invoice add (deliverydate date);
+alter table orderitems add (project_id integer);
+alter table orderitems add (reqdate date);
+--
+CREATE OR REPLACE TRIGGER projectid BEFORE INSERT ON project FOR EACH ROW
+BEGIN
+ SELECT id.nextval
+ INTO :new.id
+ FROM DUAL;--
+END;;
+--
+alter table gl add (reference VARCHAR2(50));
+update gl set reference = source;
+alter table gl drop column source;
+--
+create index gl_reference_key on gl (reference);
+create index acc_trans_source_key on acc_trans (source);
+--
+update defaults set version = '2.0.0';
+--
diff --git a/sql/Oracle-upgrade-2.0.0-2.0.8.sql b/sql/Oracle-upgrade-2.0.0-2.0.8.sql
new file mode 100755
index 00000000..eb65e9ca
--- /dev/null
+++ b/sql/Oracle-upgrade-2.0.0-2.0.8.sql
@@ -0,0 +1,19 @@
+--
+create table partsgroup (id integer, partsgroup varchar2(100));
+create index partsgroup_id_key on partsgroup (id);
+--
+alter table parts add (partsgroup_id integer);
+--
+alter table assembly add (bom char(1));
+update assembly set bom = '0' where assembly.id = parts.id and parts.bom = '0';
+update assembly set bom = '1' where assembly.id = parts.id and parts.bom = '1';
+--
+CREATE OR REPLACE TRIGGER partsgroupid BEFORE INSERT ON partsgroup FOR EACH ROW
+BEGIN
+ SELECT id.nextval
+ INTO :new.id
+FROM DUAL;--
+END;;
+--
+update defaults set version = '2.0.8';
+--
diff --git a/sql/Oracle-upgrade-2.0.8-2.2.0.sql b/sql/Oracle-upgrade-2.0.8-2.2.0.sql
new file mode 100755
index 00000000..c23f28ae
--- /dev/null
+++ b/sql/Oracle-upgrade-2.0.8-2.2.0.sql
@@ -0,0 +1,9 @@
+--
+create unique index projectnumber_key on project (projectnumber);
+create unique index partsgroup_key on partsgroup (partsgroup);
+--
+alter table ar add (till varchar2(20));
+alter table ap add (till varchar2(20));
+--
+update defaults set version = '2.2.0';
+--
diff --git a/sql/Paraguay-chart.sql b/sql/Paraguay-chart.sql
new file mode 100755
index 00000000..178d039b
--- /dev/null
+++ b/sql/Paraguay-chart.sql
@@ -0,0 +1,253 @@
+--
+-- LedgerSMB Sample COA - Paraguay
+-- Version: 2.4.6
+-- Submitted by: Mario L. Epp
+-- Date: 2005-01-03
+--
+--
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.000','ACTIVO','H','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.100','ACTIVO CORRIENTE','H','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.110','DISPONIBLE','H','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.111','Caja','H','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.111.01','Recaudaciones a depositar','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.111.02','Fondo fijo','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.111.03','Valores a depositar','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.111.04','Monedas extranjeras','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.112','Bancos','H','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.112.01','Cuenta Corriente','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.112.02','Caja de Ahorro','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.120','VALORES NEGOCIABLES / INVERSIONES TRANSITORIAS','H','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.120.01','Títulos y acciones','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.120.02','Títulos públicos','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.120.03','Depósito a plazo fijo','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.120.04','Previsión fluctuaciones y desvalorizaciones (regularizadora)','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.130','CRÉDITOS','H','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.131','Créditos por ventas','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.132','Otros créditos','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.140','BIENES DE CAMBIO','H','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.141','Mercaderías de reventa','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.142','Mercaderías en proceso de producción','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.150','OTROS ACTIVOS CORRIENTES','H','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.151','Muestras y otros materiales de propaganda','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.152','Combustibles','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.153','Repuestos','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.154','Embalajes y envases','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.155','Materiales de oficina','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.156','Materiales diversos','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.200','REALIZABLE A LARGO PLAZO','H','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.210','INVERSIONES PERMANENTES','H','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.211','Títulos públicos','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.212','Debenturas','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.213','Inversiones en otras empresas','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.214','Previsión fluctuaciones y desvalorzaciones','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.220','CRÉDITOS','H','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.221','Créditos por ventas','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.222','Otros créditos','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.300','ACTIVO FIJO','H','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.310','MUEBLES, ÚTILES Y ENSERES','H','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.311','MUEBLES Y EQUIPOS','H','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.311.01','Muebles y equipos - Costo de origen','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.311.02','Muebles y equipos - Mejoras','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.311.03','Muebles y equipos - Revalúo','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.311.04','Muebles y equipos - (Depreciaciones acumuladas)','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.312','ÚTILES Y ENSERES','H','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.312.01','Útiles y enseres - Costo de origen','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.312.02','Útiles y enseres - Mejoras','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.312.03','Útiles y enseres - Revalúo','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.312.04','Útiles y enseres - (Depreciaciones acumuladas)','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.320','MAQUINARIAS, HERRAMIENTAS Y EQUIPOS','H','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.321','MAQUINARIAS','H','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.321.01','Maquinarias - Costo de origen','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.321.02','Maquinarias - Mejoras','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.321.03','Maquinarias - Revalúo','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.321.04','Maquinarias - (Depreciaciones acumuladas)','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.322','HERRAMIENTAS Y EQUIPOS','H','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.322.01','Herramientas y Equipos - Costo de origen','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.322.02','Herramientas y Equipos - Mejoras','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.322.03','Herramientas y Equipos - Revalúo','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.322.04','Herramientas y Equipos - (Depreciaciones acumuladas)','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.323','EQUIPOS INFORMÁTICOS','H','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.323.01','Equipos informáticos - Costo de origen','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.323.02','Equipos informáticos - Mejoras','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.323.03','Equipos informáticos - Revalúo','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.323.04','Equipos informáticos - (Depreciaciones acumuladas)','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.330','TRANSPORTE TERRESTRE','H','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.331','AUTOS, CAMIONETAS, CAMIONES O ACOPLADOS','H','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.331.01','Autos, camionetas, camiones o acoplados - Costo de origen','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.331.02','Autos, camionetas, camiones o acoplados - Mejoras','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.331.03','Autos, camionetas, camiones o acoplados - Revalúo','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.331.04','Autos, camionetas, camiones o acoplados - (Depreciaciones acumuladas)','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.332','MOTOCICLETAS, TRICICLOS Y BICICLETAS','H','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.332.01','Motocicletas, triciclos y bicicletas - Costo de origen','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.332.02','Motocicletas, triciclos y bicicletas - Mejoras','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.332.03','Motocicletas, triciclos y bicicletas - Revalúo','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.332.04','Motocicletas, triciclos y bicicletas - (Depreciaciones acumuladas)','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.333','BIENES PARA TRANSPORTE TERRESTRE','H','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.333.01','Bienes para transporte terrestre - Costo de origen','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.333.02','Bienes para transporte terrestre - Mejoras','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.333.03','Bienes para transporte terrestre - Revalúo','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.333.04','Bienes para transporte terrestre - (Depreciaciones acumuladas)','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.340','TRANSPORTE AÉREO','H','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.341','AVIONES Y MATERIAL DE VUELO','H','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.341.01','Aviones y material de vuelo - Costo de origen','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.341.02','Aviones y material de vuelo - Mejoras','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.341.03','Aviones y material de vuelo - Revalúo','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.341.04','Aviones y material de vuelo - (Depreciaciones acumuladas)','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.342','INSTALACIONES DE TIERRA','H','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.342.01','Instalaciones de tierra - Costo de origen','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.342.02','Instalaciones de tierra - Mejoras','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.342.03','Instalaciones de tierra - Revalúo','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.342.04','Instalaciones de tierra - (Depreciaciones acumuladas)','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.350','TRANSPORTE MARÍTIMO Y FLUVIAL','H','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.351','EMBARCACIONES EN GENERAL','H','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.351.01','Embarcaciones en general - Costo de origen','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.351.02','Embarcaciones en general - Mejoras','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.351.03','Embarcaciones en general - Revalúo','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.351.04','Embarcaciones en general - (Depreciaciones acumuladas)','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.352','CANOAS, BOTES Y DEMÁS BIENES','H','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.352.01','Canoas, botes y demás bienes - Costo de origen','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.352.02','Canoas, botes y demás bienes - Mejoras','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.352.03','Canoas, botes y demás bienes - Revalúo','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.352.04','Canoas, botes y demás bienes - (Depreciaciones acumuladas)','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.360','TRANSPORTE FERROVIARIO','H','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.361','MATERIALES RODANTES','H','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.361.01','Materiales rodantes - Costo de origen','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.361.02','Materiales rodantes - Mejoras','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.361.03','Materiales rodantes - Revalúo','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.361.04','Materiales rodantes - (Depreciaciones acumuladas)','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.362','VÍAS Y DEMÁS BIENES','H','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.362.01','Vías y demás bienes - Costo de origen','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.362.02','Vías y demás bienes - Mejoras','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.362.03','Vías y demás bienes - Revalúo','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.362.04','Vías y demás bienes - (Depreciaciones acumuladas)','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.370','INMUEBLES','H','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.371','CONSTRUCCIONES EN INMUEBLES URBANOS','H','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.371.01','Construcciones en inmuebles urbanos - Costo de origen','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.371.02','Construcciones en inmuebles urbanos - Mejoras','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.371.03','Construcciones en inmuebles urbanos - Revalúo','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.371.04','Construcciones en inmuebles urbanos - (Depreciaciones acumuladas)','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.372','CONSTRUCCIONES EN INMUEBLES RURALES','H','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.372.01','Construcciones en inmuebles rurales - Costo de origen','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.372.02','Construcciones en inmuebles rurales - Mejoras','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.372.03','Construcciones en inmuebles rurales - Revalúo','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.372.04','Construcciones en inmuebles rurales - (Depreciaciones acumuladas)','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.373','CONSTRUCCIONES EN INMUEBLES AJENOS','H','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.373.01','Construcciones en inmuebles ajenos - Costo de origen','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.373.02','Construcciones en inmuebles ajenos - Mejoras','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.373.03','Construcciones en inmuebles ajenos - Revalúo','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.373.04','Construcciones en inmuebles ajenos - (Depreciaciones acumuladas)','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.381','RESTANTES BIENES','H','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.381.01','Restantes bienes - Costo de origen','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.381.02','Restantes bienes - Mejoras','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.381.03','Restantes bienes - Revalúo','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.381.04','Restantes bienes - (Depreciaciones acumuladas)','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.390','BIENES INTANGIBLES','H','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.391','Llave de negocio','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.392','Marcas registradas','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.393','Concesiones','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.394','Patente de invención','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.395','Gastos de constitución y organización','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.396','Gastos de reorganización','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.397','Gastos de proyectos de inversión','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.398','Gastos de desarrollo e investigación','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('1.399','(Amortizaciones acumuladas)','A','A','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2.000','PASIVO','H','L','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2.100','CIRCULANTE','H','L','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2.110','DEUDAS','H','L','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2.111','Acreedores por compras','A','L','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2.112','Deudas bancarias y financieras','A','L','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2.113','Otras deudas','A','L','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2.150','PROVISIONES','H','L','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2.151','IVA a pagar','A','L','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2.200','EXIGIBLE A LARGO PLAZO','H','L','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2.210','DEUDAS','H','L','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2.211','Acreedores por compras','A','L','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2.212','Deudas bancarias y financieras','A','L','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2.213','Otras deudas','A','L','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2.220','PREVISIONES','H','L','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2.221','Previsición para indemnización por despidos','A','L','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('2.222','Previsición para indemnización por accidente','A','L','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3.000','PATRIMONIO NETO','H','Q','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3.100','CAPITAL','A','Q','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3.200','RESERVAS','H','Q','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3.210','Reserva legal','A','Q','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3.220','Reserva de revalúo','A','Q','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3.230','Prima de emisión','A','Q','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3.240','Reserva estatutaria','A','Q','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3.300','RESULTADOS','H','Q','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3.310','Resultados acumulados','A','Q','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('3.320','Resultados del ejercicio','A','Q','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4.000','INGRESOS','H','I','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4.100','INGRESOS OPERATIVOS','H','I','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4.110','Venta de mercadrías','A','I','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4.120','Venta de servicios','A','I','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4.130','Otros ingresos operativos','H','I','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4.130.01','Intereses ganados','A','I','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4.130.02','Descuentos obtenidos','A','I','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4.130.03','Comisiones obtenidas','A','I','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4.200','INGRESOS NO OPERATIVOS','H','I','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4.210','Utilidad en venta de bienes de uso','A','I','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4.220','Alquileres ganados','A','I','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4.230','Incobrables recuperados','A','I','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4.240','Utilidad en venta de bienes intangibles','A','I','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4.250','Utilidades varias','A','I','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4.300','INGRESOS EXTRAORDINARIOS','H','I','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4.310','Utilidad en venta de bienes de uso','A','I','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4.320','Donaciones y premios','A','I','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4.330','Premios','A','I','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('4.340','Diferencias de cambios positivos','A','I','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.000','EGRESOS','H','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.100','EGRESOS OPERATIVOS','H','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.110','COSTO DE MERCADERÍAS VENDIDAS','H','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.110.01','Costo de ventas sección 1','A','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.110.20','Costo de ventas producto 1','A','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.110.40','Costo de ventas diversas','A','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.110.60','Costo de ventas productos elaborados','A','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.120','COSTO DE SERVICIOS VENDIDOS','H','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.120.01','Costo de servicios','A','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.130','GASTOS DE VENTAS','H','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.130.01','Comisiones sobre ventas','A','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.130.02','Publicidad y propaganda','A','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.130.03','Gastos de viajes','A','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.130.04','Gastos de exportación','A','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.130.05','Otros gastos de ventas','A','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.140','GASTOS DE ADMINISTRACIÓN','H','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.140.01','Aguinaldos','A','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.140.02','Alquileres pagados','A','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.140.03','Depreciación bienes de uso','A','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.140.04','Depreciación bienes intangibles','A','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.140.05','Bonificación familiar','A','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.140.06','Créditos incobrables','A','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.140.07','Aporte patronal sobre salarios','A','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.140.08','Fletes y acarreos','A','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.140.09','Luz, teléfono y agua','A','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.140.10','Impuestos, tasas y contribuciones','A','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.140.11','Seguros','A','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.140.12','Gastos de útiles e impresos','A','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.140.13','Sueldos y jornales','A','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.140.14','Remuneración personal superior','A','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.140.15','Honorarios profesionales','A','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.140.16','Gastos de representación','A','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.140.17','Gastos de cobranza','A','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.140.18','Gastos judiciales','A','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.140.19','Otros gastos de administración','A','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.150','GASTOS FINANCIEROS','H','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.150.01','Intereses pagados','A','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.150.02','Gastos bancarios','A','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.150.03','Otros gastos financieros','A','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.200','EGRESOS NO OPERATIVOS','H','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.210','Bajas bienes de uso','A','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.220','Gastos inmuebles alquileres','A','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.230','Pérdidas en ventas bienes de uso','A','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.240','Otros resultados negativos no operativos','A','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.300','EGRESOS EXTRAORDINARIOS','H','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.310','Pérdidas en ventas bienes de uso','A','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.320','Donaciones y contribuciones negativas','A','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.330','Indemnizaciones a terceros','A','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.340','Diferencias de cambios negativos','A','E','','');
+INSERT INTO chart (accno, description, charttype, category, link, gifi_accno) VALUES ('5.350','Otros resultados negativos extraordinarios','A','E','','');
+--
+INSERT INTO tax (chart_id,rate) VALUES ((select id from chart where accno = '2.151'),'0.1');
+--
+UPDATE defaults SET inventory_accno_id = (select id from chart where accno = '1.141'), income_accno_id = (select id from chart where accno = '4.110'), expense_accno_id = (select id from chart where accno = '5.110.01'), fxgain_accno_id = (select id from chart where accno = '4.340'), fxloss_accno_id = (select id from chart where accno = '5.340'), curr = 'PYG:USD:EUR', weightunit = 'kg';
+--
diff --git a/sql/Paraguay-gifi.sql b/sql/Paraguay-gifi.sql
new file mode 100755
index 00000000..cebf787f
--- /dev/null
+++ b/sql/Paraguay-gifi.sql
@@ -0,0 +1,108 @@
+-- Paraguay GIFI
+-- Plan de Cuentas Fiscal para Paraguay
+--
+INSERT INTO gifi (accno,description) VALUES ('1','ACTIVOS');
+INSERT INTO gifi (accno,description) VALUES ('1-01','ACTIVO CORRIENTE');
+INSERT INTO gifi (accno,description) VALUES ('1-01-01','DISPONIBILIDADES');
+INSERT INTO gifi (accno,description) VALUES ('1-01-01-01','Caja');
+INSERT INTO gifi (accno,description) VALUES ('1-01-01-02','Recaudaciones a Depositar');
+INSERT INTO gifi (accno,description) VALUES ('1-01-01-03','Bancos');
+INSERT INTO gifi (accno,description) VALUES ('1-01-01-04','Otros valores');
+INSERT INTO gifi (accno,description) VALUES ('1-01-02','INVERSIONES TEMPORARIAS');
+INSERT INTO gifi (accno,description) VALUES ('1-01-02-01','Valores');
+INSERT INTO gifi (accno,description) VALUES ('1-01-03','CRÉDITOS');
+INSERT INTO gifi (accno,description) VALUES ('1-01-03-01','Clientes');
+INSERT INTO gifi (accno,description) VALUES ('1-01-03-10','Menos: Previsión para incobrables');
+INSERT INTO gifi (accno,description) VALUES ('1-01-03-11','Deudores varios');
+INSERT INTO gifi (accno,description) VALUES ('1-01-03-12','Documentos / Cuentas a cobrar a Directores y Funcionarios');
+INSERT INTO gifi (accno,description) VALUES ('1-01-03-13','Intereses a vencer');
+INSERT INTO gifi (accno,description) VALUES ('1-01-03-14','Tarjetas de Créditos');
+INSERT INTO gifi (accno,description) VALUES ('1-01-03-20','Menos: Previsión para Incobrables');
+INSERT INTO gifi (accno,description) VALUES ('1-01-10','INVENTARIOS');
+INSERT INTO gifi (accno,description) VALUES ('1-01-10-01','Mercaderías - Productos Terminados');
+INSERT INTO gifi (accno,description) VALUES ('1-01-10-02','Productos en proceso');
+INSERT INTO gifi (accno,description) VALUES ('1-01-10-03','Materias primas - Materiales');
+INSERT INTO gifi (accno,description) VALUES ('1-01-10-04','Menos: Previsión por Obsolencia');
+INSERT INTO gifi (accno,description) VALUES ('1-01-15','ANTICIPOS');
+INSERT INTO gifi (accno,description) VALUES ('1-01-15-01','Importaciones en curso');
+INSERT INTO gifi (accno,description) VALUES ('1-01-15-02','Proveedores');
+INSERT INTO gifi (accno,description) VALUES ('1-01-20','OTROS ACTIVOS');
+INSERT INTO gifi (accno,description) VALUES ('1-01-20-01','Gastos no devengados');
+INSERT INTO gifi (accno,description) VALUES ('1-02','ACTIVO NO CORRIENTE');
+INSERT INTO gifi (accno,description) VALUES ('1-02-01','CRÉDITOS');
+INSERT INTO gifi (accno,description) VALUES ('1-02-01-01','Fondos con destino especial');
+INSERT INTO gifi (accno,description) VALUES ('1-02-01-02','Documentos / Cuentas a cobrar a Directores y Funcionarios');
+INSERT INTO gifi (accno,description) VALUES ('1-02-01-03','Documentos por cobrar');
+INSERT INTO gifi (accno,description) VALUES ('1-02-01-04','Deudores varios');
+INSERT INTO gifi (accno,description) VALUES ('1-02-01-05','Créditos en Gestión de Cobro');
+INSERT INTO gifi (accno,description) VALUES ('1-02-01-06','Menos: Previsiones para incobrables');
+INSERT INTO gifi (accno,description) VALUES ('1-02-10','PROPIEDAD, PLANTA Y EQUIPO');
+INSERT INTO gifi (accno,description) VALUES ('1-02-10-01','Bienes en operación');
+INSERT INTO gifi (accno,description) VALUES ('1-02-10-02','Depreciación acumulada');
+INSERT INTO gifi (accno,description) VALUES ('1-02-10-03','Bienes fuera de operación');
+INSERT INTO gifi (accno,description) VALUES ('1-02-20','ACTIVOS INTANGIBLES');
+INSERT INTO gifi (accno,description) VALUES ('1-02-20-01','Licencia de manufactura');
+INSERT INTO gifi (accno,description) VALUES ('1-02-20-02','Marcas');
+INSERT INTO gifi (accno,description) VALUES ('1-02-20-03','Gastos de desarrollo');
+INSERT INTO gifi (accno,description) VALUES ('1-02-20-04','Amortización Acumulada');
+INSERT INTO gifi (accno,description) VALUES ('2','PASIVOS Y PATRIMONIO NETO');
+INSERT INTO gifi (accno,description) VALUES ('2-01','PASIVO CORRIENTE');
+INSERT INTO gifi (accno,description) VALUES ('2-01-01','CUENTAS A PAGAR');
+INSERT INTO gifi (accno,description) VALUES ('2-01-01-01','Proveedores Locales');
+INSERT INTO gifi (accno,description) VALUES ('2-01-01-02','Proveedores del Exterior');
+INSERT INTO gifi (accno,description) VALUES ('2-01-01-03','Intereses a Vencer');
+INSERT INTO gifi (accno,description) VALUES ('2-01-01-04','Acreedores varios');
+INSERT INTO gifi (accno,description) VALUES ('2-01-05','PRÉSTAMOS FINANCIEROS');
+INSERT INTO gifi (accno,description) VALUES ('2-01-05-01','Sobregiros en cuenta corriente');
+INSERT INTO gifi (accno,description) VALUES ('2-01-05-02','Documentos a pagar');
+INSERT INTO gifi (accno,description) VALUES ('2-01-05-03','Porción circulante de préstamos a largo plazo');
+INSERT INTO gifi (accno,description) VALUES ('2-01-05-04','Intereses a devengar');
+INSERT INTO gifi (accno,description) VALUES ('2-01-10','PROVISIONES');
+INSERT INTO gifi (accno,description) VALUES ('2-01-10-01','Impuesto a la Renta a pagar');
+INSERT INTO gifi (accno,description) VALUES ('2-01-10-02','IVA a pagar');
+INSERT INTO gifi (accno,description) VALUES ('2-01-10-03','Retenciones de Impuestos');
+INSERT INTO gifi (accno,description) VALUES ('2-01-10-04','Para pago de planes de beneficios para empleados');
+INSERT INTO gifi (accno,description) VALUES ('2-01-10-05','Aportes y Retenciones a Pagar');
+INSERT INTO gifi (accno,description) VALUES ('2-01-10-06','Gastos Acumulados a Pagar');
+INSERT INTO gifi (accno,description) VALUES ('2-01-20','OTROS PASIVOS');
+INSERT INTO gifi (accno,description) VALUES ('2-01-20-01','Préstamos de Terceros');
+INSERT INTO gifi (accno,description) VALUES ('2-01-20-02','Anticipo de Clientes');
+INSERT INTO gifi (accno,description) VALUES ('2-01-40','GANANCIAS DIFERIDAS');
+INSERT INTO gifi (accno,description) VALUES ('2-01-40-01','Ingresos no realizados');
+INSERT INTO gifi (accno,description) VALUES ('2-01-40-02','Costos y gastos aplicables a los ingresos no realizables');
+INSERT INTO gifi (accno,description) VALUES ('2-02','PASIVOS NO CORRIENTES');
+INSERT INTO gifi (accno,description) VALUES ('2-02-01','PRÉSTAMOS FINANCIEROS');
+INSERT INTO gifi (accno,description) VALUES ('2-02-01-01','Préstamos en Bancos');
+INSERT INTO gifi (accno,description) VALUES ('2-02-05','PREVISIONES');
+INSERT INTO gifi (accno,description) VALUES ('2-02-05-01','Previsión para indemnización');
+INSERT INTO gifi (accno,description) VALUES ('2-02-05-02','Otras Contingencias');
+INSERT INTO gifi (accno,description) VALUES ('2-03','PATRIMONIO NETO');
+INSERT INTO gifi (accno,description) VALUES ('2-03-01','CAPITAL');
+INSERT INTO gifi (accno,description) VALUES ('2-03-01-01','Capital suscripto');
+INSERT INTO gifi (accno,description) VALUES ('2-03-01-02','Capital a integrar');
+INSERT INTO gifi (accno,description) VALUES ('2-03-01-03','Capital realizado');
+INSERT INTO gifi (accno,description) VALUES ('2-03-02','RESERVAS');
+INSERT INTO gifi (accno,description) VALUES ('2-03-02-01','Reserva Legal');
+INSERT INTO gifi (accno,description) VALUES ('2-03-02-02','Reservas facultativas');
+INSERT INTO gifi (accno,description) VALUES ('2-03-02-03','Reserva de revalúo');
+INSERT INTO gifi (accno,description) VALUES ('2-03-03','RESULTADOS');
+INSERT INTO gifi (accno,description) VALUES ('2-03-03-01','Resultados Acumulados');
+INSERT INTO gifi (accno,description) VALUES ('2-03-03-02','Resultado del Ejercicio');
+INSERT INTO gifi (accno,description) VALUES ('3-01','Ventas Netas. Sector Público');
+INSERT INTO gifi (accno,description) VALUES ('3-02','Ventas Netas. Sector Privado');
+INSERT INTO gifi (accno,description) VALUES ('3-10','Más otros ingresos');
+INSERT INTO gifi (accno,description) VALUES ('3-10-01','Intereses ganados');
+INSERT INTO gifi (accno,description) VALUES ('3-10-02','Otros (indicar naturaleza)');
+INSERT INTO gifi (accno,description) VALUES ('3-20','Menos:');
+INSERT INTO gifi (accno,description) VALUES ('3-20-01','Gastos financieros');
+INSERT INTO gifi (accno,description) VALUES ('3-30-01','Ganancias');
+INSERT INTO gifi (accno,description) VALUES ('4-01','Costo de Mercaderías (productos o servicios vendidos');
+INSERT INTO gifi (accno,description) VALUES ('4-10','Menos:');
+INSERT INTO gifi (accno,description) VALUES ('4-11','Gastos operacionales');
+INSERT INTO gifi (accno,description) VALUES ('4-12','Gastos de ventas');
+INSERT INTO gifi (accno,description) VALUES ('4-13','Gastos de administración');
+INSERT INTO gifi (accno,description) VALUES ('4-20','Otros (indicar naturaleza)');
+INSERT INTO gifi (accno,description) VALUES ('4-30','Pérdidas');
+INSERT INTO gifi (accno,description) VALUES ('5-10','Más: (o menos) efectos de los precios cambiantes');
+INSERT INTO gifi (accno,description) VALUES ('5-20','Más: (o menos) ajuste de ejercicios anteriores');
+INSERT INTO gifi (accno,description) VALUES ('5-50','Impuesto a la Renta');
diff --git a/sql/Pg-functions.sql b/sql/Pg-functions.sql
new file mode 100755
index 00000000..4ae22270
--- /dev/null
+++ b/sql/Pg-functions.sql
@@ -0,0 +1,254 @@
+--
+CREATE FUNCTION del_yearend() RETURNS OPAQUE AS '
+begin
+ delete from yearend where trans_id = old.id;
+ return NULL;
+end;
+' language 'plpgsql';
+-- end function
+--
+CREATE TRIGGER del_yearend AFTER DELETE ON gl FOR EACH ROW EXECUTE PROCEDURE del_yearend();
+-- end trigger
+--
+CREATE FUNCTION del_department() RETURNS OPAQUE AS '
+begin
+ delete from dpt_trans where trans_id = old.id;
+ return NULL;
+end;
+' language 'plpgsql';
+-- end function
+--
+CREATE TRIGGER del_department AFTER DELETE ON ar FOR EACH ROW EXECUTE PROCEDURE del_department();
+-- end trigger
+CREATE TRIGGER del_department AFTER DELETE ON ap FOR EACH ROW EXECUTE PROCEDURE del_department();
+-- end trigger
+CREATE TRIGGER del_department AFTER DELETE ON gl FOR EACH ROW EXECUTE PROCEDURE del_department();
+-- end trigger
+CREATE TRIGGER del_department AFTER DELETE ON oe FOR EACH ROW EXECUTE PROCEDURE del_department();
+-- end trigger
+--
+CREATE FUNCTION del_customer() RETURNS OPAQUE AS '
+begin
+ delete from shipto where trans_id = old.id;
+ delete from customertax where customer_id = old.id;
+ delete from partscustomer where customer_id = old.id;
+ return NULL;
+end;
+' language 'plpgsql';
+-- end function
+--
+CREATE TRIGGER del_customer AFTER DELETE ON customer FOR EACH ROW EXECUTE PROCEDURE del_customer();
+-- end trigger
+--
+CREATE FUNCTION del_vendor() RETURNS OPAQUE AS '
+begin
+ delete from shipto where trans_id = old.id;
+ delete from vendortax where vendor_id = old.id;
+ delete from partsvendor where vendor_id = old.id;
+ return NULL;
+end;
+' language 'plpgsql';
+-- end function
+--
+CREATE TRIGGER del_vendor AFTER DELETE ON vendor FOR EACH ROW EXECUTE PROCEDURE del_vendor();
+-- end trigger
+--
+CREATE FUNCTION del_exchangerate() RETURNS OPAQUE AS '
+
+declare
+ t_transdate date;
+ t_curr char(3);
+ t_id int;
+ d_curr text;
+
+begin
+
+ select into d_curr substr(curr,1,3) from defaults;
+
+ if TG_RELNAME = ''ar'' then
+ select into t_curr, t_transdate curr, transdate from ar where id = old.id;
+ end if;
+ if TG_RELNAME = ''ap'' then
+ select into t_curr, t_transdate curr, transdate from ap where id = old.id;
+ end if;
+ if TG_RELNAME = ''oe'' then
+ select into t_curr, t_transdate curr, transdate from oe where id = old.id;
+ end if;
+
+ if d_curr != t_curr then
+
+ select into t_id a.id from acc_trans ac
+ join ar a on (a.id = ac.trans_id)
+ where a.curr = t_curr
+ and ac.transdate = t_transdate
+
+ except select a.id from ar a where a.id = old.id
+
+ union
+
+ select a.id from acc_trans ac
+ join ap a on (a.id = ac.trans_id)
+ where a.curr = t_curr
+ and ac.transdate = t_transdate
+
+ except select a.id from ap a where a.id = old.id
+
+ union
+
+ select o.id from oe o
+ where o.curr = t_curr
+ and o.transdate = t_transdate
+
+ except select o.id from oe o where o.id = old.id;
+
+ if not found then
+ delete from exchangerate where curr = t_curr and transdate = t_transdate;
+ end if;
+ end if;
+return old;
+
+end;
+' language 'plpgsql';
+-- end function
+--
+CREATE TRIGGER del_exchangerate BEFORE DELETE ON ar FOR EACH ROW EXECUTE PROCEDURE del_exchangerate();
+-- end trigger
+--
+CREATE TRIGGER del_exchangerate BEFORE DELETE ON ap FOR EACH ROW EXECUTE PROCEDURE del_exchangerate();
+-- end trigger
+--
+CREATE TRIGGER del_exchangerate BEFORE DELETE ON oe FOR EACH ROW EXECUTE PROCEDURE del_exchangerate();
+-- end trigger
+--
+CREATE FUNCTION check_inventory() RETURNS OPAQUE AS '
+
+declare
+ itemid int;
+ row_data inventory%rowtype;
+
+begin
+
+ if not old.quotation then
+ for row_data in select * from inventory where trans_id = old.id loop
+ select into itemid id from orderitems where trans_id = old.id and id = row_data.orderitems_id;
+
+ if itemid is null then
+ delete from inventory where trans_id = old.id and orderitems_id = row_data.orderitems_id;
+ end if;
+ end loop;
+ end if;
+return old;
+end;
+' language 'plpgsql';
+-- end function
+--
+CREATE TRIGGER check_inventory AFTER UPDATE ON oe FOR EACH ROW EXECUTE PROCEDURE check_inventory();
+-- end trigger
+--
+--
+CREATE FUNCTION check_department() RETURNS OPAQUE AS '
+
+declare
+ dpt_id int;
+
+begin
+
+ if new.department_id = 0 then
+ delete from dpt_trans where trans_id = new.id;
+ return NULL;
+ end if;
+
+ select into dpt_id trans_id from dpt_trans where trans_id = new.id;
+
+ if dpt_id > 0 then
+ update dpt_trans set department_id = new.department_id where trans_id = dpt_id;
+ else
+ insert into dpt_trans (trans_id, department_id) values (new.id, new.department_id);
+ end if;
+return NULL;
+
+end;
+' language 'plpgsql';
+-- end function
+--
+CREATE TRIGGER check_department AFTER INSERT OR UPDATE ON ar FOR EACH ROW EXECUTE PROCEDURE check_department();
+-- end trigger
+CREATE TRIGGER check_department AFTER INSERT OR UPDATE ON ap FOR EACH ROW EXECUTE PROCEDURE check_department();
+-- end trigger
+CREATE TRIGGER check_department AFTER INSERT OR UPDATE ON gl FOR EACH ROW EXECUTE PROCEDURE check_department();
+-- end trigger
+CREATE TRIGGER check_department AFTER INSERT OR UPDATE ON oe FOR EACH ROW EXECUTE PROCEDURE check_department();
+-- end trigger
+--
+CREATE FUNCTION del_recurring() returns opaque as '
+BEGIN
+ DELETE FROM recurring WHERE id = old.id;
+ DELETE FROM recurringemail WHERE id = old.id;
+ DELETE FROM recurringprint WHERE id = old.id;
+ RETURN NULL;
+END;
+' language 'plpgsql';
+--end function
+CREATE TRIGGER del_recurring AFTER DELETE ON ar FOR EACH ROW EXECUTE PROCEDURE del_recurring();
+-- end trigger
+CREATE TRIGGER del_recurring AFTER DELETE ON ap FOR EACH ROW EXECUTE PROCEDURE del_recurring();
+-- end trigger
+CREATE TRIGGER del_recurring AFTER DELETE ON gl FOR EACH ROW EXECUTE PROCEDURE del_recurring();
+-- end trigger
+--
+CREATE FUNCTION avgcost(int) RETURNS FLOAT AS '
+
+DECLARE
+
+v_cost float;
+v_qty float;
+v_parts_id alias for $1;
+
+BEGIN
+
+ SELECT INTO v_cost, v_qty SUM(i.sellprice * i.qty), SUM(i.qty)
+ FROM invoice i
+ JOIN ap a ON (a.id = i.trans_id)
+ WHERE i.parts_id = v_parts_id;
+
+ IF v_cost IS NULL THEN
+ v_cost := 0;
+ END IF;
+
+ IF NOT v_qty IS NULL THEN
+ IF v_qty = 0 THEN
+ v_cost := 0;
+ ELSE
+ v_cost := v_cost/v_qty;
+ END IF;
+ END IF;
+
+RETURN v_cost;
+END;
+' language 'plpgsql';
+-- end function
+--
+CREATE FUNCTION lastcost(int) RETURNS FLOAT AS '
+
+DECLARE
+
+v_cost float;
+v_parts_id alias for $1;
+
+BEGIN
+
+ SELECT INTO v_cost sellprice FROM invoice i
+ JOIN ap a ON (a.id = i.trans_id)
+ WHERE i.parts_id = v_parts_id
+ ORDER BY a.transdate desc, a.id desc
+ LIMIT 1;
+
+ IF v_cost IS NULL THEN
+ v_cost := 0;
+ END IF;
+
+RETURN v_cost;
+END;
+' language 'plpgsql';
+-- end function
+--
diff --git a/sql/Pg-indices.sql b/sql/Pg-indices.sql
new file mode 100755
index 00000000..1da593f6
--- /dev/null
+++ b/sql/Pg-indices.sql
@@ -0,0 +1,100 @@
+create index acc_trans_trans_id_key on acc_trans (trans_id);
+create index acc_trans_chart_id_key on acc_trans (chart_id);
+create index acc_trans_transdate_key on acc_trans (transdate);
+create index acc_trans_source_key on acc_trans (lower(source));
+--
+create index ap_id_key on ap (id);
+create index ap_transdate_key on ap (transdate);
+create index ap_invnumber_key on ap (invnumber);
+create index ap_ordnumber_key on ap (ordnumber);
+create index ap_vendor_id_key on ap (vendor_id);
+create index ap_employee_id_key on ap (employee_id);
+create index ap_quonumber_key on ap (quonumber);
+--
+create index ar_id_key on ar (id);
+create index ar_transdate_key on ar (transdate);
+create index ar_invnumber_key on ar (invnumber);
+create index ar_ordnumber_key on ar (ordnumber);
+create index ar_customer_id_key on ar (customer_id);
+create index ar_employee_id_key on ar (employee_id);
+create index ar_quonumber_key on ar (quonumber);
+--
+create index assembly_id_key on assembly (id);
+--
+create index chart_id_key on chart (id);
+create unique index chart_accno_key on chart (accno);
+create index chart_category_key on chart (category);
+create index chart_link_key on chart (link);
+create index chart_gifi_accno_key on chart (gifi_accno);
+--
+create index customer_id_key on customer (id);
+create index customer_customernumber_key on customer (customernumber);
+create index customer_name_key on customer (lower(name));
+create index customer_contact_key on customer (lower(contact));
+create index customer_customer_id_key on customertax (customer_id);
+--
+create index employee_id_key on employee (id);
+create unique index employee_login_key on employee (login);
+create index employee_name_key on employee (lower(name));
+--
+create index exchangerate_ct_key on exchangerate (curr, transdate);
+--
+create unique index gifi_accno_key on gifi (accno);
+--
+create index gl_id_key on gl (id);
+create index gl_transdate_key on gl (transdate);
+create index gl_reference_key on gl (reference);
+create index gl_description_key on gl (lower(description));
+create index gl_employee_id_key on gl (employee_id);
+--
+create index invoice_id_key on invoice (id);
+create index invoice_trans_id_key on invoice (trans_id);
+--
+create index makemodel_parts_id_key on makemodel (parts_id);
+create index makemodel_make_key on makemodel (lower(make));
+create index makemodel_model_key on makemodel (lower(model));
+--
+create index oe_id_key on oe (id);
+create index oe_transdate_key on oe (transdate);
+create index oe_ordnumber_key on oe (ordnumber);
+create index oe_employee_id_key on oe (employee_id);
+create index orderitems_trans_id_key on orderitems (trans_id);
+create index orderitems_id_key on orderitems (id);
+--
+create index parts_id_key on parts (id);
+create index parts_partnumber_key on parts (lower(partnumber));
+create index parts_description_key on parts (lower(description));
+create index partstax_parts_id_key on partstax (parts_id);
+--
+create index vendor_id_key on vendor (id);
+create index vendor_name_key on vendor (lower(name));
+create index vendor_vendornumber_key on vendor (vendornumber);
+create index vendor_contact_key on vendor (lower(contact));
+create index vendortax_vendor_id_key on vendortax (vendor_id);
+--
+create index shipto_trans_id_key on shipto (trans_id);
+--
+create index project_id_key on project (id);
+create unique index projectnumber_key on project (projectnumber);
+--
+create index partsgroup_id_key on partsgroup (id);
+create unique index partsgroup_key on partsgroup (partsgroup);
+--
+create index status_trans_id_key on status (trans_id);
+--
+create index department_id_key on department (id);
+--
+create index partsvendor_vendor_id_key on partsvendor (vendor_id);
+create index partsvendor_parts_id_key on partsvendor (parts_id);
+--
+create index pricegroup_pricegroup_key on pricegroup (pricegroup);
+create index pricegroup_id_key on pricegroup (id);
+--
+create index audittrail_trans_id_key on audittrail (trans_id);
+--
+create index translation_trans_id_key on translation (trans_id);
+--
+create unique index language_code_key on language (code);
+--
+create index jcitems_id_key on jcitems (id);
+
diff --git a/sql/Pg-tables.sql b/sql/Pg-tables.sql
new file mode 100755
index 00000000..36adf684
--- /dev/null
+++ b/sql/Pg-tables.sql
@@ -0,0 +1,550 @@
+--
+CREATE SEQUENCE id start 10000;
+SELECT nextval ('id');
+--
+CREATE SEQUENCE invoiceid;
+SELECT nextval ('invoiceid');
+--
+CREATE SEQUENCE orderitemsid;
+SELECT nextval ('orderitemsid');
+--
+CREATE SEQUENCE jcitemsid;
+SELECT nextval ('jcitemsid');
+--
+CREATE TABLE makemodel (
+ parts_id int,
+ make text,
+ model text
+);
+--
+CREATE TABLE gl (
+ id int DEFAULT nextval ( 'id' ),
+ reference text,
+ description text,
+ transdate date DEFAULT current_date,
+ employee_id int,
+ notes text,
+ department_id int default 0
+);
+--
+CREATE TABLE chart (
+ id int DEFAULT nextval ( 'id' ),
+ accno text NOT NULL,
+ description text,
+ charttype char(1) DEFAULT 'A',
+ category char(1),
+ link text,
+ gifi_accno text,
+ contra bool DEFAULT 'f'
+);
+--
+CREATE TABLE gifi (
+ accno text,
+ description text
+);
+--
+CREATE TABLE defaults (
+ inventory_accno_id int,
+ income_accno_id int,
+ expense_accno_id int,
+ fxgain_accno_id int,
+ fxloss_accno_id int,
+ sinumber text,
+ sonumber text,
+ yearend varchar(5),
+ weightunit varchar(5),
+ businessnumber text,
+ version varchar(8),
+ curr text,
+ closedto date,
+ revtrans bool DEFAULT 'f',
+ ponumber text,
+ sqnumber text,
+ rfqnumber text,
+ audittrail bool default 'f',
+ vinumber text,
+ employeenumber text,
+ partnumber text,
+ customernumber text,
+ vendornumber text,
+ glnumber text,
+ projectnumber text
+);
+INSERT INTO defaults (version) VALUES ('2.6.12');
+--
+CREATE TABLE acc_trans (
+ trans_id int,
+ chart_id int NOT NULL,
+ amount float,
+ transdate date DEFAULT current_date,
+ source text,
+ cleared bool DEFAULT 'f',
+ fx_transaction bool DEFAULT 'f',
+ project_id int,
+ memo text,
+ invoice_id int
+);
+--
+CREATE TABLE invoice (
+ id int DEFAULT nextval ( 'invoiceid' ),
+ trans_id int,
+ parts_id int,
+ description text,
+ qty float4,
+ allocated float4,
+ sellprice float,
+ fxsellprice float,
+ discount float4,
+ assemblyitem bool DEFAULT 'f',
+ unit varchar(5),
+ project_id int,
+ deliverydate date,
+ serialnumber text,
+ notes text
+);
+--
+CREATE TABLE customer (
+ id int default nextval('id'),
+ name varchar(64),
+ address1 varchar(32),
+ address2 varchar(32),
+ city varchar(32),
+ state varchar(32),
+ zipcode varchar(10),
+ country varchar(32),
+ contact varchar(64),
+ phone varchar(20),
+ fax varchar(20),
+ email text,
+ notes text,
+ discount float4,
+ taxincluded bool default 'f',
+ creditlimit float default 0,
+ terms int2 default 0,
+ customernumber varchar(32),
+ cc text,
+ bcc text,
+ business_id int,
+ taxnumber varchar(32),
+ sic_code varchar(6),
+ iban varchar(34),
+ bic varchar(11),
+ employee_id int,
+ language_code varchar(6),
+ pricegroup_id int,
+ curr char(3),
+ startdate date,
+ enddate date
+);
+--
+--
+CREATE TABLE parts (
+ id int DEFAULT nextval ( 'id' ),
+ partnumber text,
+ description text,
+ unit varchar(5),
+ listprice float,
+ sellprice float,
+ lastcost float,
+ priceupdate date DEFAULT current_date,
+ weight float4,
+ onhand float4 DEFAULT 0,
+ notes text,
+ makemodel bool DEFAULT 'f',
+ assembly bool DEFAULT 'f',
+ alternate bool DEFAULT 'f',
+ rop float4,
+ inventory_accno_id int,
+ income_accno_id int,
+ expense_accno_id int,
+ bin text,
+ obsolete bool DEFAULT 'f',
+ bom bool DEFAULT 'f',
+ image text,
+ drawing text,
+ microfiche text,
+ partsgroup_id int,
+ project_id int,
+ avgcost float
+);
+--
+CREATE TABLE assembly (
+ id int,
+ parts_id int,
+ qty float,
+ bom bool,
+ adj bool
+) WITH OIDS;
+--
+CREATE TABLE ar (
+ id int DEFAULT nextval ( 'id' ),
+ invnumber text,
+ transdate date DEFAULT current_date,
+ customer_id int,
+ taxincluded bool,
+ amount float,
+ netamount float,
+ paid float,
+ datepaid date,
+ duedate date,
+ invoice bool DEFAULT 'f',
+ shippingpoint text,
+ terms int2 DEFAULT 0,
+ notes text,
+ curr char(3),
+ ordnumber text,
+ employee_id int,
+ till varchar(20),
+ quonumber text,
+ intnotes text,
+ department_id int default 0,
+ shipvia text,
+ language_code varchar(6),
+ ponumber text
+);
+--
+CREATE TABLE ap (
+ id int DEFAULT nextval ( 'id' ),
+ invnumber text,
+ transdate date DEFAULT current_date,
+ vendor_id int,
+ taxincluded bool DEFAULT 'f',
+ amount float,
+ netamount float,
+ paid float,
+ datepaid date,
+ duedate date,
+ invoice bool DEFAULT 'f',
+ ordnumber text,
+ curr char(3),
+ notes text,
+ employee_id int,
+ till varchar(20),
+ quonumber text,
+ intnotes text,
+ department_id int DEFAULT 0,
+ shipvia text,
+ language_code varchar(6),
+ ponumber text,
+ shippingpoint text,
+ terms int2 DEFAULT 0
+);
+--
+CREATE TABLE partstax (
+ parts_id int,
+ chart_id int
+);
+--
+CREATE TABLE tax (
+ chart_id int,
+ rate float,
+ taxnumber text,
+ validto date
+);
+--
+CREATE TABLE customertax (
+ customer_id int,
+ chart_id int
+);
+--
+CREATE TABLE vendortax (
+ vendor_id int,
+ chart_id int
+);
+--
+CREATE TABLE oe (
+ id int default nextval('id'),
+ ordnumber text,
+ transdate date default current_date,
+ vendor_id int,
+ customer_id int,
+ amount float8,
+ netamount float8,
+ reqdate date,
+ taxincluded bool,
+ shippingpoint text,
+ notes text,
+ curr char(3),
+ employee_id int,
+ closed bool default 'f',
+ quotation bool default 'f',
+ quonumber text,
+ intnotes text,
+ department_id int default 0,
+ shipvia text,
+ language_code varchar(6),
+ ponumber text,
+ terms int2 DEFAULT 0
+);
+--
+CREATE TABLE orderitems (
+ id int default nextval('orderitemsid'),
+ trans_id int,
+ parts_id int,
+ description text,
+ qty float4,
+ sellprice float8,
+ discount float4,
+ unit varchar(5),
+ project_id int,
+ reqdate date,
+ ship float4,
+ serialnumber text,
+ notes text
+) WITH OIDS;
+--
+CREATE TABLE exchangerate (
+ curr char(3),
+ transdate date,
+ buy float8,
+ sell float8
+);
+--
+create table employee (
+ id int default nextval('id'),
+ login text,
+ name varchar(64),
+ address1 varchar(32),
+ address2 varchar(32),
+ city varchar(32),
+ state varchar(32),
+ zipcode varchar(10),
+ country varchar(32),
+ workphone varchar(20),
+ homephone varchar(20),
+ startdate date default current_date,
+ enddate date,
+ notes text,
+ role varchar(20),
+ sales bool default 'f',
+ email text,
+ ssn varchar(20),
+ iban varchar(34),
+ bic varchar(11),
+ managerid int,
+ employeenumber varchar(32),
+ dob date
+);
+--
+create table shipto (
+ trans_id int,
+ shiptoname varchar(64),
+ shiptoaddress1 varchar(32),
+ shiptoaddress2 varchar(32),
+ shiptocity varchar(32),
+ shiptostate varchar(32),
+ shiptozipcode varchar(10),
+ shiptocountry varchar(32),
+ shiptocontact varchar(64),
+ shiptophone varchar(20),
+ shiptofax varchar(20),
+ shiptoemail text
+);
+--
+CREATE TABLE vendor (
+ id int default nextval('id'),
+ name varchar(64),
+ address1 varchar(32),
+ address2 varchar(32),
+ city varchar(32),
+ state varchar(32),
+ zipcode varchar(10),
+ country varchar(32),
+ contact varchar(64),
+ phone varchar(20),
+ fax varchar(20),
+ email text,
+ notes text,
+ terms int2 default 0,
+ taxincluded bool default 'f',
+ vendornumber varchar(32),
+ cc text,
+ bcc text,
+ gifi_accno varchar(30),
+ business_id int,
+ taxnumber varchar(32),
+ sic_code varchar(6),
+ discount float4,
+ creditlimit float default 0,
+ iban varchar(34),
+ bic varchar(11),
+ employee_id int,
+ language_code varchar(6),
+ pricegroup_id int,
+ curr char(3),
+ startdate date,
+ enddate date
+);
+--
+CREATE TABLE project (
+ id int default nextval('id'),
+ projectnumber text,
+ description text,
+ startdate date,
+ enddate date,
+ parts_id int,
+ production float default 0,
+ completed float default 0,
+ customer_id int
+);
+--
+CREATE TABLE partsgroup (
+ id int default nextval('id'),
+ partsgroup text
+);
+--
+CREATE TABLE status (
+ trans_id int,
+ formname text,
+ printed bool default 'f',
+ emailed bool default 'f',
+ spoolfile text
+);
+--
+CREATE TABLE department (
+ id int default nextval('id'),
+ description text,
+ role char(1) default 'P'
+);
+--
+-- department transaction table
+CREATE TABLE dpt_trans (
+ trans_id int,
+ department_id int
+);
+--
+-- business table
+CREATE TABLE business (
+ id int default nextval('id'),
+ description text,
+ discount float4
+);
+--
+-- SIC
+CREATE TABLE sic (
+ code varchar(6),
+ sictype char(1),
+ description text
+);
+--
+CREATE TABLE warehouse (
+ id int default nextval('id'),
+ description text
+);
+--
+CREATE TABLE inventory (
+ warehouse_id int,
+ parts_id int,
+ trans_id int,
+ orderitems_id int,
+ qty float4,
+ shippingdate date,
+ employee_id int
+) WITH OIDS;
+--
+CREATE TABLE yearend (
+ trans_id int,
+ transdate date
+);
+--
+CREATE TABLE partsvendor (
+ vendor_id int,
+ parts_id int,
+ partnumber text,
+ leadtime int2,
+ lastcost float,
+ curr char(3)
+);
+--
+CREATE TABLE pricegroup (
+ id int default nextval('id'),
+ pricegroup text
+);
+--
+CREATE TABLE partscustomer (
+ parts_id int,
+ customer_id int,
+ pricegroup_id int,
+ pricebreak float4,
+ sellprice float,
+ validfrom date,
+ validto date,
+ curr char(3)
+);
+--
+CREATE TABLE language (
+ code varchar(6),
+ description text
+);
+--
+CREATE TABLE audittrail (
+ trans_id int,
+ tablename text,
+ reference text,
+ formname text,
+ action text,
+ transdate timestamp default current_timestamp,
+ employee_id int
+);
+--
+CREATE TABLE translation (
+ trans_id int,
+ language_code varchar(6),
+ description text
+);
+--
+CREATE TABLE recurring (
+ id int,
+ reference text,
+ startdate date,
+ nextdate date,
+ enddate date,
+ repeat int2,
+ unit varchar(6),
+ howmany int,
+ payment bool default 'f'
+);
+--
+CREATE TABLE recurringemail (
+ id int,
+ formname text,
+ format text,
+ message text
+);
+--
+CREATE TABLE recurringprint (
+ id int,
+ formname text,
+ format text,
+ printer text
+);
+--
+CREATE TABLE jcitems (
+ id int default nextval('jcitemsid'),
+ project_id int,
+ parts_id int,
+ description text,
+ qty float4,
+ allocated float4,
+ sellprice float8,
+ fxsellprice float8,
+ serialnumber text,
+ checkedin timestamp with time zone,
+ checkedout timestamp with time zone,
+ employee_id int,
+ notes text
+);
+
+-- Session tracking table
+
+
+CREATE SEQUENCE session_session_id_seq;
+
+CREATE TABLE session(
+session_id INTEGER PRIMARY KEY DEFAULT nextval('session_session_id_seq'),
+sl_login VARCHAR(50),
+token CHAR(32),
+last_used TIMESTAMP default now()
+);
+
+
diff --git a/sql/Pg-upgrade-1.2.6-1.2.7.sql b/sql/Pg-upgrade-1.2.6-1.2.7.sql
new file mode 100755
index 00000000..159f31b3
--- /dev/null
+++ b/sql/Pg-upgrade-1.2.6-1.2.7.sql
@@ -0,0 +1,4 @@
+--
+-- add the field shiptoemail to the customer table
+--
+alter table customer add column shiptoemail text;
diff --git a/sql/Pg-upgrade-1.2.7-1.4.0.sql b/sql/Pg-upgrade-1.2.7-1.4.0.sql
new file mode 100755
index 00000000..04e1a794
--- /dev/null
+++ b/sql/Pg-upgrade-1.2.7-1.4.0.sql
@@ -0,0 +1,173 @@
+--
+CREATE TABLE newap (
+ id int DEFAULT nextval ( 'id' ),
+ invnumber text,
+ transdate date DEFAULT current_date,
+ vendor int,
+ taxincluded bool DEFAULT FALSE,
+ amount float,
+ netamount float,
+ paid float,
+ datepaid date,
+ duedate date,
+ invoice bool DEFAULT FALSE,
+ ordnumber text
+);
+--
+INSERT INTO newap (id, invnumber, transdate, vendor, amount, netamount, paid,
+datepaid, duedate, invoice, ordnumber)
+SELECT id, invnumber, transdate, vendor, amount, netamount, paid,
+datepaid, duedate, invoice, ordnumber
+FROM ap;
+--
+DROP TABLE ap;
+ALTER TABLE newap RENAME TO ap;
+--
+CREATE TABLE newar (
+ id int DEFAULT nextval ( 'id' ),
+ invnumber text,
+ transdate date DEFAULT current_date,
+ customer int,
+ taxincluded bool DEFAULT FALSE,
+ amount float,
+ netamount float,
+ paid float,
+ datepaid date,
+ duedate date,
+ invoice bool DEFAULT FALSE,
+ shippingpoint text,
+ terms int2,
+ notes text
+);
+--
+INSERT INTO newar (id, invnumber, transdate, customer, amount, netamount, paid,
+datepaid, duedate, invoice, shippingpoint, terms, notes)
+SELECT id, invnumber, transdate, customer, amount, netamount, paid,
+datepaid, duedate, invoice, shippingpoint, terms, notes
+FROM ar;
+--
+DROP TABLE ar;
+ALTER TABLE newar RENAME TO ar;
+--
+CREATE TABLE newcustomer (
+ id int DEFAULT nextval ( 'id' ),
+ name varchar(35),
+ addr1 varchar(35),
+ addr2 varchar(35),
+ addr3 varchar(35),
+ contact varchar(35),
+ phone varchar(20),
+ fax varchar(20),
+ email text,
+ notes text,
+ ytd float,
+ discount float4,
+ taxincluded bool,
+ creditlimit float,
+ terms int2,
+ shiptoname varchar(35),
+ shiptoaddr1 varchar(35),
+ shiptoaddr2 varchar(35),
+ shiptoaddr3 varchar(35),
+ shiptocontact varchar(20),
+ shiptophone varchar(20),
+ shiptofax varchar(20),
+ shiptoemail text
+);
+INSERT INTO newcustomer (
+id, name, addr1, addr2, addr3, contact, phone, fax, email, notes, ytd,
+discount, creditlimit, terms, shiptoname, shiptoaddr1, shiptoaddr2,
+shiptoaddr3, shiptocontact, shiptophone, shiptofax, shiptoemail )
+SELECT id, name, addr1, addr2, addr3, contact, phone, fax, email, notes, ytd,
+discount, creditlimit, terms, shiptoname, shiptoaddr1, shiptoaddr2,
+shiptoaddr3, shiptocontact, shiptophone, shiptofax, shiptoemail
+FROM customer;
+--
+DROP TABLE customer;
+ALTER TABLE newcustomer RENAME TO customer;
+--
+CREATE TABLE customertax (
+ customer_id int,
+ chart_id int
+);
+--
+CREATE TABLE newdefaults (
+ inventory_accno int,
+ income_accno int,
+ expense_accno int,
+ invnumber text,
+ ponumber text,
+ yearend varchar(5),
+ nativecurr varchar(3),
+ weightunit varchar(5)
+);
+--
+INSERT INTO newdefaults (
+inventory_accno, income_accno, expense_accno, invnumber, ponumber)
+SELECT inventory_accno, income_accno, expense_accno, invnumber, ponumber
+FROM defaults;
+--
+DROP TABLE defaults;
+ALTER TABLE newdefaults RENAME TO defaults;
+UPDATE defaults SET yearend = '1/31', nativecurr = 'CAD', weightunit = 'kg';
+--
+CREATE TABLE partstax (
+ parts_id int,
+ chart_id int
+);
+--
+CREATE TABLE tax (
+ chart_id int,
+ rate float,
+ number text
+);
+--
+CREATE TABLE newvendor (
+ id int DEFAULT nextval ( 'id' ),
+ name varchar(35),
+ addr1 varchar(35),
+ addr2 varchar(35),
+ addr3 varchar(35),
+ contact varchar(35),
+ phone varchar(20),
+ fax varchar(20),
+ email text,
+ notes text,
+ ytd float,
+ discount float4,
+ taxincluded bool,
+ creditlimit float,
+ terms int2
+);
+--
+INSERT INTO newvendor (
+id, name, addr1, addr2, addr3, contact, phone, fax, email, notes, ytd )
+SELECT id, name, addr1, addr2, addr3, contact, phone, fax, email, notes, ytd
+FROM vendor;
+--
+DROP TABLE vendor;
+ALTER TABLE newvendor RENAME TO vendor;
+--
+CREATE TABLE vendortax (
+ vendor_id int,
+ chart_id int
+);
+--
+ALTER TABLE chart RENAME TO oldchart;
+--
+CREATE TABLE chart (
+ id int DEFAULT nextval( 'id' ),
+ accno int UNIQUE,
+ description text,
+ balance float,
+ type char(1),
+ gifi int,
+ category char(1),
+ link text
+);
+--
+INSERT INTO chart SELECT * FROM oldchart;
+--
+DROP TABLE oldchart;
+--
+
diff --git a/sql/Pg-upgrade-1.4.0-1.6.0.sql b/sql/Pg-upgrade-1.4.0-1.6.0.sql
new file mode 100755
index 00000000..e0a38924
--- /dev/null
+++ b/sql/Pg-upgrade-1.4.0-1.6.0.sql
@@ -0,0 +1,126 @@
+alter table acc_trans rename column accno to chart_id;
+update acc_trans set chart_id =
+ (select id from chart where accno = acc_trans.chart_id);
+--
+alter table parts rename column inventory_accno to inventory_accno_id;
+alter table parts rename column income_accno to income_accno_id;
+alter table parts rename column expense_accno to expense_accno_id;
+alter table parts rename column number to partnumber;
+update parts set inventory_accno_id =
+ (select id from chart where chart.accno = parts.inventory_accno_id);
+update parts set income_accno_id =
+ (select id from chart where chart.accno = parts.income_accno_id);
+update parts set expense_accno_id =
+ (select id from chart where chart.accno = parts.expense_accno_id);
+--
+create table assembly (id int, parts_id int, qty float);
+--
+alter table defaults rename column inventory_accno to inventory_accno_id;
+alter table defaults rename column income_accno to income_accno_id;
+alter table defaults rename column expense_accno to expense_accno_id;
+alter table defaults add column businessnumber text;
+alter table defaults add column version varchar(8);
+update defaults set inventory_accno_id =
+ (select id from chart where chart.accno = defaults.inventory_accno_id);
+update defaults set income_accno_id =
+ (select id from chart where chart.accno = defaults.income_accno_id);
+update defaults set expense_accno_id =
+ (select id from chart where chart.accno = defaults.expense_accno_id);
+update defaults set version = '1.6.0';
+--
+alter table invoice rename column inventory_accno to inventory_accno_id;
+alter table invoice rename column income_accno to income_accno_id;
+alter table invoice rename column expense_accno to expense_accno_id;
+alter table invoice rename column number to partnumber;
+alter table invoice add column assemblyitem bool;
+update invoice set assemblyitem = 'f';
+update invoice set inventory_accno_id =
+ (select id from chart where invoice.inventory_accno_id = chart.accno);
+update invoice set income_accno_id =
+ (select id from chart where invoice.income_accno_id = chart.accno);
+update invoice set expense_accno_id =
+ (select id from chart where invoice.expense_accno_id = chart.accno);
+--
+alter table gl rename column comment to description;
+--
+create table newvendor (
+ id int default nextval ( 'id' ),
+ name varchar(35),
+ addr1 varchar(35),
+ addr2 varchar(35),
+ addr3 varchar(35),
+ addr4 varchar(35),
+ contact varchar(35),
+ phone varchar(20),
+ fax varchar(20),
+ email text,
+ notes text,
+ terms int2,
+ taxincluded bool
+);
+insert into newvendor (
+ id, name, addr1, addr2, addr3, contact, phone, fax, email, notes, terms,
+ taxincluded)
+ select
+ id, name, addr1, addr2, addr3, contact, phone, fax, email, notes, terms,
+ taxincluded from vendor;
+drop table vendor;
+alter table newvendor rename to vendor;
+--
+create table newcustomer (
+ id int default nextval ( 'id' ),
+ name varchar(35),
+ addr1 varchar(35),
+ addr2 varchar(35),
+ addr3 varchar(35),
+ addr4 varchar(35),
+ contact varchar(35),
+ phone varchar(20),
+ fax varchar(20),
+ email text,
+ notes text,
+ discount float4,
+ taxincluded bool,
+ creditlimit float,
+ terms int2,
+ shiptoname varchar(35),
+ shiptoaddr1 varchar(35),
+ shiptoaddr2 varchar(35),
+ shiptoaddr3 varchar(35),
+ shiptoaddr4 varchar(35),
+ shiptocontact varchar(20),
+ shiptophone varchar(20),
+ shiptofax varchar(20),
+ shiptoemail text
+);
+insert into newcustomer (
+ id, name, addr1, addr2, addr3, contact, phone, fax, email, notes, discount,
+ taxincluded, creditlimit, terms, shiptoname, shiptoaddr1, shiptoaddr2,
+ shiptoaddr3, shiptocontact, shiptophone, shiptofax, shiptoemail
+ )
+ select
+ id, name, addr1, addr2, addr3, contact, phone, fax, email, notes, discount,
+ taxincluded, creditlimit, terms, shiptoname, shiptoaddr1, shiptoaddr2,
+ shiptoaddr3, shiptocontact, shiptophone, shiptofax, shiptoemail
+ from customer;
+drop table customer;
+alter table newcustomer rename to customer;
+--
+drop index chart_accno_key;
+alter table chart rename to oldchart;
+create table chart (
+ id int default nextval('id'),
+ accno int unique,
+ description text,
+ charttype char(1),
+ gifi int,
+ category char(1),
+ link text
+);
+insert into chart (id, accno, description, charttype, gifi, category, link)
+ select id, accno, description, type, gifi, category, link from oldchart;
+drop table oldchart;
+--
+alter table tax rename column number to taxnumber;
+--
+-- apply
diff --git a/sql/Pg-upgrade-1.6.0-1.8.0.sql b/sql/Pg-upgrade-1.6.0-1.8.0.sql
new file mode 100755
index 00000000..4e98e1fe
--- /dev/null
+++ b/sql/Pg-upgrade-1.6.0-1.8.0.sql
@@ -0,0 +1,104 @@
+--
+create table def (
+ inventory_accno_id int,
+ income_accno_id int,
+ expense_accno_id int,
+ fxgain_accno_id int,
+ fxloss_accno_id int,
+ invnumber text,
+ ordnumber text,
+ yearend varchar(5),
+ weightunit varchar(5),
+ businessnumber text,
+ version varchar(8),
+ curr text
+);
+insert into def (inventory_accno_id, income_accno_id, expense_accno_id, invnumber, ordnumber, yearend, weightunit, businessnumber, version, curr) select inventory_accno_id, income_accno_id, expense_accno_id, invnumber, ponumber, yearend, weightunit, businessnumber, version, nativecurr from defaults;
+drop table defaults;
+alter table def rename to defaults;
+update defaults set version = '1.8.0';
+--
+-- create a default accno for exchange rate gain and loss
+--
+select accno into temp from chart where category = 'I' order by accno desc limit 1;
+update temp set accno = accno + 1;
+insert into chart (accno) select accno from temp;
+update chart set description = 'Foreign Exchange Gain', category = 'I', charttype = 'A' where accno = (select accno from temp);
+update defaults set fxgain_accno_id = (select id from chart where chart.accno = temp.accno);
+drop table temp;
+select accno into temp from chart where category = 'E' order by accno desc limit 1;
+update temp set accno = accno + 1;
+insert into chart (accno) select accno from temp;
+update chart set description = 'Foreign Exchange Loss', category = 'E', charttype = 'A' where accno = (select accno from temp);
+update defaults set fxloss_accno_id = (select id from chart where chart.accno = temp.accno);
+drop table temp;
+--
+alter table parts add column bin text;
+alter table parts alter column onhand set default 0;
+update parts set onhand = 0 where onhand = NULL;
+alter table parts add column obsolete bool;
+alter table parts alter column obsolete set default 'f';
+update parts set obsolete = 'f';
+--
+alter table ap rename column vendor to vendor_id;
+alter table ap add column curr char(3);
+--
+alter table ar rename column customer to customer_id;
+alter table ar add column curr char(3);
+alter table ar add column ordnumber text;
+--
+alter table acc_trans add column source text;
+alter table acc_trans add column cleared bool;
+alter table acc_trans alter column cleared set default 'f';
+alter table acc_trans add column fx_transaction bool;
+alter table acc_trans alter column fx_transaction set default 'f';
+update acc_trans set cleared = 'f', fx_transaction = 'f';
+--
+create table oe (
+ id int default nextval('id'),
+ ordnumber text,
+ transdate date default current_date,
+ vendor_id int,
+ customer_id int,
+ amount float8,
+ netamount float8,
+ reqdate date,
+ taxincluded bool,
+ shippingpoint text,
+ notes text,
+ curr char(3)
+);
+--
+create table orderitems (
+ trans_id int,
+ parts_id int,
+ description text,
+ qty float4,
+ sellprice float8,
+ discount float4
+);
+--
+alter table invoice rename to invoiceold;
+create table invoice (
+ id int default nextval('id'),
+ trans_id int,
+ parts_id int,
+ description text,
+ qty float4,
+ allocated float4,
+ sellprice float8,
+ fxsellprice float8,
+ discount float4,
+ assemblyitem bool default 'f'
+);
+insert into invoice (id, trans_id, parts_id, description, qty, allocated, sellprice, fxsellprice, discount, assemblyitem) select id, trans_id, parts_id, description, qty, allocated, sellprice, sellprice, discount, assemblyitem from invoiceold;
+update invoice set assemblyitem = 'f' where assemblyitem = NULL;
+drop table invoiceold;
+--
+create table exchangerate (
+ curr char(3),
+ transdate date,
+ buy float8,
+ sell float8
+);
+--
diff --git a/sql/Pg-upgrade-1.8.0-1.8.4.sql b/sql/Pg-upgrade-1.8.0-1.8.4.sql
new file mode 100755
index 00000000..57b24f1f
--- /dev/null
+++ b/sql/Pg-upgrade-1.8.0-1.8.4.sql
@@ -0,0 +1,21 @@
+--
+alter table chart add column gifi_accno text;
+--
+create table gifi (accno text, description text);
+create unique index gifi_accno_key on gifi (accno);
+--
+create table mtemp (parts_id int, name text);
+insert into mtemp select parts_id, name from makemodel;
+drop table makemodel;
+alter table mtemp rename to makemodel;
+--
+alter table defaults add column closedto date;
+alter table defaults add column revtrans bool;
+--
+alter table ap add column notes text;
+--
+alter table customer add column businessnumber text;
+alter table vendor add column businessnumber text;
+--
+update defaults set version = '1.8.4', revtrans = 'f';
+--
diff --git a/sql/Pg-upgrade-1.8.4-1.8.5.sql b/sql/Pg-upgrade-1.8.4-1.8.5.sql
new file mode 100755
index 00000000..807857aa
--- /dev/null
+++ b/sql/Pg-upgrade-1.8.4-1.8.5.sql
@@ -0,0 +1,63 @@
+--
+alter table customer rename column businessnumber to customernumber;
+create index customer_customernumber_key on customer (customernumber);
+alter table vendor rename column businessnumber to vendornumber;
+create index vendor_vendornumber_key on vendor (vendornumber);
+--
+CREATE TABLE employee (
+ id int DEFAULT nextval ('id'),
+ login text,
+ name varchar(35),
+ addr1 varchar(35),
+ addr2 varchar(35),
+ addr3 varchar(35),
+ addr4 varchar(35),
+ workphone varchar(20),
+ homephone varchar(20),
+ startdate date default current_date,
+ enddate date,
+ notes text
+);
+--
+create index employee_id_key on employee (id);
+create unique index employee_login_key on employee (login);
+create index employee_name_key on employee (name);
+--
+alter table gl add column employee_id int;
+create index gl_employee_id_key on gl (employee_id);
+alter table ar add column employee_id int;
+create index ar_employee_id_key on ar (employee_id);
+alter table ap add column employee_id int;
+create index ap_employee_id_key on ap (employee_id);
+alter table oe add column employee_id int;
+create index oe_employee_id_key on oe (employee_id);
+--
+alter table invoice add column unit varchar(5);
+alter table orderitems add column unit varchar(5);
+--
+update chart set gifi_accno = '' where gifi_accno = NULL;
+alter table chart rename to chartold;
+CREATE TABLE chart (
+ id int DEFAULT nextval ('id'),
+ accno text NOT NULL,
+ description text,
+ charttype char(1) DEFAULT 'A',
+ category char(1),
+ link text,
+ gifi_accno text
+);
+insert into chart (id, accno, description, charttype, category, link, gifi_accno) select id, accno, description, charttype, category, link, gifi_accno from chartold;
+drop table chartold;
+create index chart_id_key on chart (id);
+create unique index chart_accno_key on chart (accno);
+create index chart_category_key on chart (category);
+create index chart_link_key on chart (link);
+create index chart_gifi_accno_key on chart (gifi_accno);
+--
+alter table parts alter column inventory_accno_id drop default;
+--
+alter table defaults rename ordnumber to sonumber;
+alter table defaults add column ponumber text;
+--
+update defaults set version = '1.8.5', ponumber = sonumber;
+--
diff --git a/sql/Pg-upgrade-1.8.5-2.0.0.sql b/sql/Pg-upgrade-1.8.5-2.0.0.sql
new file mode 100755
index 00000000..ebc1d070
--- /dev/null
+++ b/sql/Pg-upgrade-1.8.5-2.0.0.sql
@@ -0,0 +1,92 @@
+--
+alter table customer add column cc text;
+alter table customer add column bcc text;
+--
+alter table vendor add column cc text;
+alter table vendor add column bcc text;
+--
+create table shipto (
+ trans_id int,
+ shiptoname varchar(35),
+ shiptoaddr1 varchar(35),
+ shiptoaddr2 varchar(35),
+ shiptoaddr3 varchar(35),
+ shiptoaddr4 varchar(35),
+ shiptocontact varchar(35),
+ shiptophone varchar(20),
+ shiptofax varchar(20),
+ shiptoemail text
+);
+--
+insert into shipto (trans_id, shiptoname, shiptoaddr1, shiptoaddr2, shiptoaddr3, shiptoaddr4, shiptocontact, shiptophone, shiptofax, shiptoemail) select id, shiptoname, shiptoaddr1, shiptoaddr2, shiptoaddr3, shiptoaddr4, shiptocontact, shiptophone, shiptofax, shiptoemail from customer where shiptoname != '' or shiptoname is not null;
+--
+insert into shipto (trans_id, shiptoname, shiptoaddr1, shiptoaddr2, shiptoaddr3, shiptoaddr4, shiptocontact, shiptophone, shiptofax, shiptoemail) select distinct on (a.id) a.id, c.shiptoname, c.shiptoaddr1, c.shiptoaddr2, c.shiptoaddr3, c.shiptoaddr4, c.shiptocontact, c.shiptophone, c.shiptofax, c.shiptoemail from customer c, ar a where a.customer_id = c.id;
+--
+insert into shipto (trans_id, shiptoname, shiptoaddr1, shiptoaddr2, shiptoaddr3, shiptoaddr4, shiptocontact, shiptophone, shiptofax, shiptoemail) select distinct on (o.id) o.id, c.shiptoname, c.shiptoaddr1, c.shiptoaddr2, c.shiptoaddr3, c.shiptoaddr4, c.shiptocontact, c.shiptophone, c.shiptofax, c.shiptoemail from customer c, oe o where o.customer_id = c.id;
+--
+create index shipto_trans_id_key on shipto (trans_id);
+--
+create table custome (
+ id int default nextval('id'),
+ name varchar(35),
+ addr1 varchar(35),
+ addr2 varchar(35),
+ addr3 varchar(35),
+ addr4 varchar(35),
+ contact varchar(35),
+ phone varchar(20),
+ fax varchar(20),
+ email text,
+ notes text,
+ discount float4,
+ taxincluded bool,
+ creditlimit float DEFAULT 0,
+ terms int2 DEFAULT 0,
+ customernumber text,
+ cc text,
+ bcc text
+);
+insert into custome (id, name, addr1, addr2, addr3, addr4, contact, phone, fax, email, notes, discount, taxincluded, creditlimit, terms, customernumber) select id, name, addr1, addr2, addr3, addr4, contact, phone, fax, email, notes, discount, taxincluded, creditlimit, terms, customernumber from customer;
+--
+drop table customer;
+alter table custome rename to customer;
+create index customer_id_key on customer (id);
+create index customer_name_key on customer (name);
+create index customer_contact_key on customer (contact);
+--
+alter table parts add column bom boolean;
+alter table parts alter column bom set default 'f';
+update parts set bom = 'f';
+update parts set bom = 't' where assembly;
+alter table parts add column image text;
+alter table parts add column drawing text;
+alter table parts add column microfiche text;
+--
+alter table gl add column notes text;
+--
+alter table oe add column closed bool;
+alter table oe alter column closed set default 'f';
+update oe set closed = 'f';
+--
+create table project (
+ id int default nextval('id'),
+ projectnumber text,
+ description text
+);
+--
+create index project_id_key on project (id);
+--
+alter table acc_trans add column project_id int;
+update acc_trans set cleared = '0' where cleared = '1';
+--
+alter table invoice add column project_id int;
+alter table invoice add column deliverydate date;
+alter table orderitems add column project_id int;
+alter table orderitems add column reqdate date;
+--
+alter table gl rename source to reference;
+create index gl_reference_key on gl (reference);
+create index acc_trans_source_key on acc_trans (lower(source));
+--
+update defaults set version = '2.0.0';
+--
diff --git a/sql/Pg-upgrade-2.0.0-2.0.8.sql b/sql/Pg-upgrade-2.0.0-2.0.8.sql
new file mode 100755
index 00000000..ef73b1cb
--- /dev/null
+++ b/sql/Pg-upgrade-2.0.0-2.0.8.sql
@@ -0,0 +1,12 @@
+--
+create table partsgroup (id int default nextval('id'), partsgroup text);
+create index partsgroup_id_key on partsgroup (id);
+--
+alter table parts add partsgroup_id int;
+--
+alter table assembly add bom bool;
+update assembly set bom = '0' where assembly.id = parts.id and parts.bom = '0';
+update assembly set bom = '1' where assembly.id = parts.id and parts.bom = '1';
+--
+update defaults set version = '2.0.8';
+--
diff --git a/sql/Pg-upgrade-2.0.8-2.2.0.sql b/sql/Pg-upgrade-2.0.8-2.2.0.sql
new file mode 100755
index 00000000..00778722
--- /dev/null
+++ b/sql/Pg-upgrade-2.0.8-2.2.0.sql
@@ -0,0 +1,9 @@
+--
+create unique index projectnumber_key on project (projectnumber);
+create unique index partsgroup_key on partsgroup (partsgroup);
+--
+alter table ar add till varchar(20);
+alter table ap add till varchar(20);
+--
+update defaults set version = '2.2.0';
+--
diff --git a/sql/Pg-upgrade-2.2.0-2.3.0.sql b/sql/Pg-upgrade-2.2.0-2.3.0.sql
new file mode 100755
index 00000000..edadee6f
--- /dev/null
+++ b/sql/Pg-upgrade-2.2.0-2.3.0.sql
@@ -0,0 +1,59 @@
+--
+alter table oe add column quotation bool;
+alter table oe alter column quotation set default 'f';
+update oe set quotation = '0';
+alter table oe add column quonumber text;
+--
+alter table defaults add column sqnumber text;
+alter table defaults add column rfqnumber text;
+--
+alter table invoice add column serialnumber text;
+--
+alter table ar add column quonumber text;
+create index ar_quonumber_key on ar (lower(quonumber));
+alter table ap add column quonumber text;
+create index ap_quonumber_key on ap (lower(quonumber));
+--
+alter table employee add role text;
+--
+alter table makemodel add column make text;
+alter table makemodel add column model text;
+update makemodel set make = substr(name,1,strpos(name,':')-1);
+update makemodel set model = substr(name,strpos(name,':')+1);
+create table temp (parts_id int,make text,model text);
+insert into temp (parts_id,make,model) select parts_id,make,model from makemodel;
+drop table makemodel;
+alter table temp rename to makemodel;
+--
+create index makemodel_parts_id_key on makemodel (parts_id);
+create index makemodel_make_key on makemodel (lower(make));
+create index makemodel_model_key on makemodel (lower(model));
+--
+create table status (trans_id int, formname text, printed bool default 'f', emailed bool default 'f', spoolfile text, chart_id int);
+create index status_trans_id_key on status (trans_id);
+--
+create sequence invoiceid;
+select setval('invoiceid', (select max(id) from invoice));
+alter table invoice alter column id set default nextval('invoiceid');
+--
+alter table ar add column intnotes text;
+alter table ap add column intnotes text;
+alter table oe add column intnotes text;
+--
+create table department (id int default nextval('id'), description text, role char(1) default 'P');
+create index department_id_key on department (id);
+--
+alter table ar add column department_id int;
+alter table ar alter column department_id set default 0;
+update ar set department_id = 0;
+alter table ap add column department_id int;
+alter table ap alter column department_id set default 0;
+update ap set department_id = 0;
+alter table gl add column department_id int;
+alter table gl alter column department_id set default 0;
+update gl set department_id = 0;
+alter table oe add column department_id int;
+alter table oe alter column department_id set default 0;
+update oe set department_id = 0;
+--
+update defaults set version = '2.3.0';
diff --git a/sql/Pg-upgrade-2.3.0-2.3.1.sql b/sql/Pg-upgrade-2.3.0-2.3.1.sql
new file mode 100755
index 00000000..866774ad
--- /dev/null
+++ b/sql/Pg-upgrade-2.3.0-2.3.1.sql
@@ -0,0 +1,388 @@
+-- function check_department
+create function check_department() returns opaque as '
+
+declare
+ dpt_id int;
+
+begin
+
+ if new.department_id = 0 then
+ delete from dpt_trans where trans_id = new.id;
+ return NULL;
+ end if;
+
+ select into dpt_id trans_id from dpt_trans where trans_id = new.id;
+
+ if dpt_id > 0 then
+ update dpt_trans set department_id = new.department_id where trans_id = dpt_id;
+ else
+ insert into dpt_trans (trans_id, department_id) values (new.id, new.department_id);
+ end if;
+return NULL;
+
+end;
+' language 'plpgsql';
+-- end function
+
+-- department transaction table
+create table dpt_trans (trans_id int, department_id int);
+
+-- function del_department
+create function del_department() returns opaque as '
+begin
+ delete from dpt_trans where trans_id = old.id;
+ return NULL;
+end;
+' language 'plpgsql';
+-- end function
+
+-- triggers
+--
+create trigger check_department after insert or update on ar for each row execute procedure check_department();
+-- end trigger
+create trigger check_department after insert or update on ap for each row execute procedure check_department();
+-- end trigger
+create trigger check_department after insert or update on gl for each row execute procedure check_department();
+-- end trigger
+create trigger check_department after insert or update on oe for each row execute procedure check_department();
+-- end trigger
+--
+--
+create trigger del_department after delete on ar for each row execute procedure del_department();
+-- end trigger
+create trigger del_department after delete on ap for each row execute procedure del_department();
+-- end trigger
+create trigger del_department after delete on gl for each row execute procedure del_department();
+-- end trigger
+create trigger del_department after delete on oe for each row execute procedure del_department();
+-- end trigger
+--
+
+-- business table
+create table business (id int default nextval('id'), description text, discount float4);
+--
+-- SIC
+create table sic (code text, sictype char(1), description text);
+--
+alter table vendor add column gifi_accno text;
+alter table vendor add column business_id int;
+alter table vendor add column taxnumber text;
+alter table vendor add column sic_code text;
+--
+alter table customer add column business_id int;
+alter table customer add column taxnumber text;
+alter table customer add column sic_code text;
+--
+create function del_customer() returns opaque as '
+begin
+ delete from shipto where trans_id = old.id;
+ delete from customertax where customer_id = old.id;
+ return NULL;
+end;
+' language 'plpgsql';
+-- end function
+--
+create function del_vendor() returns opaque as '
+begin
+ delete from shipto where trans_id = old.id;
+ delete from vendortax where vendor_id = old.id;
+ return NULL;
+end;
+' language 'plpgsql';
+-- end function
+--
+create trigger del_customer after delete on customer for each row execute procedure del_customer();
+-- end trigger
+create trigger del_vendor after delete on vendor for each row execute procedure del_vendor();
+-- end trigger
+--
+alter table acc_trans add column memo text;
+--
+alter table employee add column sales bool;
+alter table employee alter column sales set default 't';
+--
+alter table vendor add discount float4;
+alter table vendor add creditlimit float;
+--
+-- function del_exchangerate
+create function del_exchangerate() returns opaque as '
+
+declare
+ t_transdate date;
+ t_curr char(3);
+ t_id int;
+ d_curr text;
+
+begin
+
+ select into d_curr substr(curr,1,3) from defaults;
+
+ if TG_RELNAME = ''ar'' then
+ select into t_curr, t_transdate curr, transdate from ar where id = old.id;
+ end if;
+ if TG_RELNAME = ''ap'' then
+ select into t_curr, t_transdate curr, transdate from ap where id = old.id;
+ end if;
+ if TG_RELNAME = ''oe'' then
+ select into t_curr, t_transdate curr, transdate from oe where id = old.id;
+ end if;
+
+ if d_curr != t_curr then
+
+ select into t_id a.id from acc_trans ac
+ join ar a on (a.id = ac.trans_id)
+ where a.curr = t_curr
+ and ac.transdate = t_transdate
+
+ except select a.id from ar a where a.id = old.id
+
+ union
+
+ select a.id from acc_trans ac
+ join ap a on (a.id = ac.trans_id)
+ where a.curr = t_curr
+ and ac.transdate = t_transdate
+
+ except select a.id from ap a where a.id = old.id
+
+ union
+
+ select o.id from oe o
+ where o.curr = t_curr
+ and o.transdate = t_transdate
+
+ except select o.id from oe o where o.id = old.id;
+
+ if not found then
+ delete from exchangerate where curr = t_curr and transdate = t_transdate;
+ end if;
+ end if;
+return old;
+
+end;
+' language 'plpgsql';
+-- end function
+--
+-- triggers
+--
+create trigger del_exchangerate before delete on ar for each row execute procedure del_exchangerate();
+-- end trigger
+--
+create trigger del_exchangerate before delete on ap for each row execute procedure del_exchangerate();
+-- end trigger
+--
+create trigger del_exchangerate before delete on oe for each row execute procedure del_exchangerate();
+-- end trigger
+--
+--
+alter table orderitems add ship float4;
+alter table orderitems add serialnumber text;
+--
+--
+create sequence orderitemsid maxvalue 100000 cycle;
+alter table orderitems add id int;
+alter table orderitems alter id set default nextval('orderitemsid');
+--
+create table warehouse (id int default nextval('id'), description text);
+--
+create table inventory (warehouse_id int, parts_id int, oe_id int, orderitems_id int, qty float4, shippingdate date);
+--
+-- update orderitems, fill in id
+create table temp (id int default nextval('orderitemsid'), tempid oid);
+insert into temp (tempid) select oid from orderitems;
+update orderitems set id = temp.id from temp where orderitems.oid = temp.tempid;
+drop table temp;
+--
+create index orderitems_id_key on orderitems (id);
+--
+alter table ar add shipvia text;
+alter table ap add shipvia text;
+alter table oe add shipvia text;
+--
+--
+alter table inventory add employee_id int;
+--
+--
+create function check_inventory() returns opaque as '
+
+declare
+ itemid int;
+ row_data inventory%rowtype;
+
+begin
+
+ if not old.quotation then
+ for row_data in select * from inventory where oe_id = old.id loop
+ select into itemid id from orderitems where trans_id = old.id and id = row_data.orderitems_id;
+
+ if itemid is null then
+ delete from inventory where oe_id = old.id and orderitems_id = row_data.orderitems_id;
+ end if;
+ end loop;
+ end if;
+ return old;
+end;
+' language 'plpgsql';
+-- end function
+--
+create trigger check_inventory after update on oe for each row execute procedure check_inventory();
+-- end trigger
+--
+--
+create table yearend (
+ trans_id int,
+ transdate date
+);
+--
+-- function del_yearend
+create function del_yearend() returns opaque as '
+begin
+ delete from yearend where trans_id = old.id;
+ return NULL;
+end;
+' language 'plpgsql';
+-- end function
+
+-- triggers
+--
+create trigger del_yearend after delete on gl for each row execute procedure del_yearend();
+-- end trigger
+--
+--
+create table temp (
+ id int default nextval('id'),
+ name varchar(64),
+ addr1 varchar(64),
+ addr2 varchar(64),
+ addr3 varchar(64),
+ addr4 varchar(64),
+ contact varchar(64),
+ phone varchar(20),
+ fax varchar(20),
+ email text,
+ notes text,
+ discount float4,
+ taxincluded bool,
+ creditlimit float default 0,
+ terms int2 default 0,
+ customernumber varchar(64),
+ cc text,
+ bcc text,
+ business_id int,
+ taxnumber varchar(64),
+ sic_code varchar(6),
+ iban varchar(34),
+ bic varchar(11)
+);
+insert into temp (id, name, addr1, addr2, addr3, addr4, contact, phone, fax, email, notes, discount, taxincluded, creditlimit, terms, customernumber, cc, bcc, business_id, taxnumber, sic_code) select id, name, addr1, addr2, addr3, addr4, contact, phone, fax, email, notes, discount, taxincluded, creditlimit, terms, customernumber, cc, bcc, business_id, taxnumber, sic_code from customer;
+--
+drop table customer;
+--
+alter table temp rename to customer;
+--
+create index customer_id_key on customer (id);
+create index customer_customernumber_key on customer (customernumber);
+create index customer_name_key on customer (name);
+create index customer_contact_key on customer (contact);
+--
+create trigger del_customer after delete on customer for each row execute procedure del_customer();
+-- end trigger
+--
+create table temp (
+ id int default nextval('id'),
+ name varchar(64),
+ addr1 varchar(64),
+ addr2 varchar(64),
+ addr3 varchar(64),
+ addr4 varchar(64),
+ contact varchar(64),
+ phone varchar(20),
+ fax varchar(20),
+ email text,
+ notes text,
+ terms int2 default 0,
+ taxincluded bool,
+ vendornumber varchar(64),
+ cc text,
+ bcc text,
+ gifi_accno varchar(30),
+ business_id int,
+ taxnumber varchar(64),
+ sic_code varchar(6),
+ discount float4,
+ creditlimit float default 0,
+ iban varchar(34),
+ bic varchar(11)
+);
+insert into temp (id, name, addr1, addr2, addr3, addr4, contact, phone, fax, email, notes, discount, taxincluded, creditlimit, terms, vendornumber, cc, bcc, business_id, taxnumber, sic_code) select id, name, addr1, addr2, addr3, addr4, contact, phone, fax, email, notes, discount, taxincluded, creditlimit, terms, vendornumber, cc, bcc, business_id, taxnumber, sic_code from vendor;
+--
+drop table vendor;
+--
+alter table temp rename to vendor;
+--
+create index vendor_id_key on vendor (id);
+create index vendor_name_key on vendor (name);
+create index vendor_vendornumber_key on vendor (vendornumber);
+create index vendor_contact_key on vendor (contact);
+--
+create trigger del_vendor after delete on vendor for each row execute procedure del_vendor();
+-- end trigger
+--
+create table temp (
+ code varchar(6),
+ sictype char(1),
+ description text
+);
+insert into temp (code, sictype, description) select code, sictype, description from sic;
+drop table sic;
+alter table temp rename to sic;
+--
+create table temp (
+ trans_id int,
+ shiptoname varchar(64),
+ shiptoaddr1 varchar(64),
+ shiptoaddr2 varchar(64),
+ shiptoaddr3 varchar(64),
+ shiptoaddr4 varchar(64),
+ shiptocontact varchar(64),
+ shiptophone varchar(20),
+ shiptofax varchar(20),
+ shiptoemail text
+);
+insert into temp (trans_id, shiptoname, shiptoaddr1, shiptoaddr2, shiptoaddr3, shiptoaddr4, shiptocontact, shiptophone, shiptofax, shiptoemail) select trans_id, shiptoname, shiptoaddr1, shiptoaddr2, shiptoaddr3, shiptoaddr4, shiptocontact, shiptophone, shiptofax, shiptoemail from shipto;
+drop table shipto;
+alter table temp rename to shipto;
+create index shipto_trans_id_key on shipto (trans_id);
+--
+--
+create table temp (
+ id int default nextval('id'),
+ login text,
+ name varchar(64),
+ addr1 varchar(64),
+ addr2 varchar(64),
+ addr3 varchar(64),
+ addr4 varchar(64),
+ workphone varchar(20),
+ homephone varchar(20),
+ startdate date default current_date,
+ enddate date,
+ notes text,
+ role varchar(20),
+ sales bool,
+ email text,
+ sin varchar(20),
+ iban varchar(34),
+ bic varchar(11)
+);
+insert into temp (id,login,name,addr1,addr2,addr3,addr4,workphone,homephone,startdate,enddate,notes,role,sales) select id,login,name,addr1,addr2,addr3,addr4,workphone,homephone,startdate,enddate,notes,role,sales from employee;
+--
+drop table employee;
+alter table temp rename to employee;
+--
+create index employee_id_key on employee (id);
+create unique index employee_login_key on employee (login);
+create index employee_name_key on employee (name);
+--
+update defaults set version = '2.3.1';
+
diff --git a/sql/Pg-upgrade-2.3.1-2.3.3.sql b/sql/Pg-upgrade-2.3.1-2.3.3.sql
new file mode 100755
index 00000000..9ee09915
--- /dev/null
+++ b/sql/Pg-upgrade-2.3.1-2.3.3.sql
@@ -0,0 +1,9 @@
+--
+create table partsvendor (vendor_id int, parts_id int, partnumber text, leadtime int2, lastcost float, curr char(3));
+create index partsvendor_vendor_id_key on partsvendor (vendor_id);
+create index partsvendor_parts_id_key on partsvendor (parts_id);
+--
+alter table assembly add column adj bool;
+update assembly set adj = 't';
+--
+update defaults set version = '2.3.3';
diff --git a/sql/Pg-upgrade-2.3.3-2.3.4.sql b/sql/Pg-upgrade-2.3.3-2.3.4.sql
new file mode 100755
index 00000000..98e7b47b
--- /dev/null
+++ b/sql/Pg-upgrade-2.3.3-2.3.4.sql
@@ -0,0 +1,6 @@
+--
+alter table customer add employee_id int;
+alter table vendor add employee_id int;
+alter table employee add managerid int;
+--
+update defaults set version = '2.3.4';
diff --git a/sql/Pg-upgrade-2.3.4-2.3.5.sql b/sql/Pg-upgrade-2.3.4-2.3.5.sql
new file mode 100755
index 00000000..f4ab90ba
--- /dev/null
+++ b/sql/Pg-upgrade-2.3.4-2.3.5.sql
@@ -0,0 +1,142 @@
+--
+create table temp (
+ id int default nextval('id'),
+ name varchar(64),
+ address1 varchar(32),
+ address2 varchar(32),
+ city varchar(32),
+ state varchar(32),
+ zipcode varchar(10),
+ country varchar(32),
+ contact varchar(64),
+ phone varchar(20),
+ fax varchar(20),
+ email text,
+ notes text,
+ discount float4,
+ taxincluded bool default 'f',
+ creditlimit float default 0,
+ terms int2 default 0,
+ customernumber varchar(32),
+ cc text,
+ bcc text,
+ business_id int,
+ taxnumber varchar(32),
+ sic_code varchar(6),
+ iban varchar(34),
+ bic varchar(11),
+ employee_id int
+);
+--
+insert into temp (id,name,address1,city,country,state,contact,phone,fax,email,notes,discount,taxincluded,creditlimit,terms,customernumber,cc,bcc,business_id,taxnumber,sic_code,iban,bic,employee_id) select id,name,substr(addr1,1,32),substr(addr2,1,32),substr(addr3,1,32),substr(addr4,1,32),contact,phone,fax,email,notes,discount,taxincluded,creditlimit,terms,substr(customernumber,1,32),cc,bcc,business_id,substr(taxnumber,1,32),sic_code,iban,bic,employee_id from customer;
+--
+drop table customer;
+alter table temp rename to customer;
+--
+create index customer_id_key on customer (id);
+create index customer_customernumber_key on customer (customernumber);
+create index customer_name_key on customer (name);
+create index customer_contact_key on customer (contact);
+--
+create trigger del_customer after delete on customer for each row execute procedure del_customer();
+-- end trigger
+--
+create table temp (
+ id int default nextval('id'),
+ name varchar(64),
+ address1 varchar(32),
+ address2 varchar(32),
+ city varchar(32),
+ state varchar(32),
+ zipcode varchar(10),
+ country varchar(32),
+ contact varchar(64),
+ phone varchar(20),
+ fax varchar(20),
+ email text,
+ notes text,
+ terms int2 default 0,
+ taxincluded bool default 'f',
+ vendornumber varchar(32),
+ cc text,
+ bcc text,
+ gifi_accno varchar(30),
+ business_id int,
+ taxnumber varchar(32),
+ sic_code varchar(6),
+ discount float4,
+ creditlimit float default 0,
+ iban varchar(34),
+ bic varchar(11),
+ employee_id int
+);
+--
+insert into temp (id,name,address1,city,country,state,contact,phone,fax,email,notes,terms,taxincluded,vendornumber,cc,bcc,gifi_accno,business_id,taxnumber,sic_code,discount,creditlimit,iban,bic,employee_id) select id,name,substr(addr1,1,32),substr(addr2,1,32),substr(addr3,1,32),substr(addr4,1,32),contact,phone,fax,email,notes,terms,taxincluded,substr(vendornumber,1,32),cc,bcc,gifi_accno,business_id,substr(taxnumber,1,32),sic_code,discount,creditlimit,iban,bic,employee_id from vendor;
+--
+drop table vendor;
+alter table temp rename to vendor;
+--
+create index vendor_id_key on vendor (id);
+create index vendor_name_key on vendor (name);
+create index vendor_vendornumber_key on vendor (vendornumber);
+create index vendor_contact_key on vendor (contact);
+--
+create trigger del_vendor after delete on vendor for each row execute procedure del_vendor();
+-- end trigger
+--
+create table temp (
+ trans_id int,
+ shiptoname varchar(64),
+ shiptoaddress1 varchar(32),
+ shiptoaddress2 varchar(32),
+ shiptocity varchar(32),
+ shiptostate varchar(32),
+ shiptozipcode varchar(10),
+ shiptocountry varchar(32),
+ shiptocontact varchar(64),
+ shiptophone varchar(20),
+ shiptofax varchar(20),
+ shiptoemail text
+);
+--
+insert into temp (trans_id,shiptoname,shiptoaddress1,shiptocity,shiptocountry,shiptostate,shiptocontact,shiptophone,shiptofax,shiptoemail) select trans_id,shiptoname,substr(shiptoaddr1,1,32),substr(shiptoaddr2,1,32),substr(shiptoaddr3,1,32),substr(shiptoaddr4,1,32),shiptocontact,shiptophone,shiptofax,shiptoemail from shipto;
+--
+drop table shipto;
+alter table temp rename to shipto;
+create index shipto_trans_id_key on shipto (trans_id);
+--
+create table temp (
+ id int default nextval('id'),
+ login text,
+ name varchar(64),
+ address1 varchar(32),
+ address2 varchar(32),
+ city varchar(32),
+ state varchar(32),
+ zipcode varchar(10),
+ country varchar(32),
+ workphone varchar(20),
+ homephone varchar(20),
+ startdate date default current_date,
+ enddate date,
+ notes text,
+ role varchar(20),
+ sales bool default 'f',
+ email text,
+ sin varchar(20),
+ iban varchar(34),
+ bic varchar(11),
+ managerid int
+);
+--
+insert into temp (id,login,name,address1,city,country,state,workphone,homephone,startdate,enddate,notes,role,sales,email,sin,iban,bic,managerid) select id,login,name,substr(addr1,1,32),substr(addr2,1,32),substr(addr3,1,32),substr(addr4,1,32),workphone,homephone,startdate,enddate,notes,role,sales,email,sin,iban,bic,managerid from employee;
+--
+drop table employee;
+alter table temp rename to employee;
+--
+create index employee_id_key on employee (id);
+create unique index employee_login_key on employee (login);
+create index employee_name_key on employee (name);
+--
+update defaults set version = '2.3.5';
+
diff --git a/sql/Pg-upgrade-2.3.5-2.3.6.sql b/sql/Pg-upgrade-2.3.5-2.3.6.sql
new file mode 100755
index 00000000..3eac490f
--- /dev/null
+++ b/sql/Pg-upgrade-2.3.5-2.3.6.sql
@@ -0,0 +1,15 @@
+--
+create table pricegroup (id int default nextval('id'), pricegroup text);
+create index pricegroup_pricegroup_key on pricegroup (pricegroup);
+create index pricegroup_id_key on pricegroup (id);
+--
+create table partscustomer (parts_id int, customer_id int, pricegroup_id int, pricebreak float4, sellprice float, validfrom date, validto date);
+--
+create table language (code varchar(6), description text);
+alter table customer add language_code varchar(6);
+alter table customer add pricegroup_id int;
+--
+alter table vendor add language_code varchar(6);
+alter table vendor add pricegroup_id int;
+--
+update defaults set version = '2.3.6';
diff --git a/sql/Pg-upgrade-2.3.6-2.3.7.sql b/sql/Pg-upgrade-2.3.6-2.3.7.sql
new file mode 100755
index 00000000..8eb265b6
--- /dev/null
+++ b/sql/Pg-upgrade-2.3.6-2.3.7.sql
@@ -0,0 +1,6 @@
+--
+alter table partscustomer add curr char(3);
+alter table customer add curr char(3);
+alter table vendor add curr char(3);
+--
+update defaults set version = '2.3.7';
diff --git a/sql/Pg-upgrade-2.3.7-2.3.8.sql b/sql/Pg-upgrade-2.3.7-2.3.8.sql
new file mode 100755
index 00000000..56979bee
--- /dev/null
+++ b/sql/Pg-upgrade-2.3.7-2.3.8.sql
@@ -0,0 +1,16 @@
+--
+create table audittrail (
+ trans_id int,
+ tablename text,
+ reference text,
+ formname text,
+ action text,
+ transdate timestamp default current_timestamp,
+ employee_id int
+);
+create index audittrail_trans_id_key on audittrail (trans_id);
+--
+alter table defaults add audittrail bool;
+alter table defaults alter audittrail set default '0';
+--
+update defaults set version = '2.3.8', audittrail = '0';
diff --git a/sql/Pg-upgrade-2.3.8-2.3.9.sql b/sql/Pg-upgrade-2.3.8-2.3.9.sql
new file mode 100755
index 00000000..dc484cec
--- /dev/null
+++ b/sql/Pg-upgrade-2.3.8-2.3.9.sql
@@ -0,0 +1,15 @@
+--
+create table translation (
+ trans_id int,
+ language_code varchar(6),
+ description text
+);
+create index translation_trans_id_key on translation (trans_id);
+--
+alter table ar add language_code varchar(6);
+alter table ap add language_code varchar(6);
+alter table oe add language_code varchar(6);
+--
+create unique index language_code_key on language (code);
+--
+update defaults set version = '2.3.9';
diff --git a/sql/Pg-upgrade-2.3.9-2.4.2.sql b/sql/Pg-upgrade-2.3.9-2.4.2.sql
new file mode 100755
index 00000000..4e91e473
--- /dev/null
+++ b/sql/Pg-upgrade-2.3.9-2.4.2.sql
@@ -0,0 +1,34 @@
+--
+drop trigger del_customer on customer;
+drop trigger del_vendor on vendor;
+drop function del_customer();
+drop function del_vendor();
+--
+create function del_customer() returns opaque as '
+begin
+ delete from shipto where trans_id = old.id;
+ delete from customertax where customer_id = old.id;
+ delete from partscustomer where customer_id = old.id;
+ return NULL;
+end;
+' language 'plpgsql';
+-- end function
+--
+create trigger del_customer after delete on customer for each row execute procedure del_customer();
+-- end trigger
+--
+create function del_vendor() returns opaque as '
+begin
+ delete from shipto where trans_id = old.id;
+ delete from vendortax where vendor_id = old.id;
+ delete from partsvendor where vendor_id = old.id;
+ return NULL;
+end;
+' language 'plpgsql';
+-- end function
+--
+create trigger del_vendor after delete on vendor for each row execute procedure del_vendor();
+-- end trigger
+--
+update defaults set version = '2.4.2';
+
diff --git a/sql/Pg-upgrade-2.4.2-2.4.3.sql b/sql/Pg-upgrade-2.4.2-2.4.3.sql
new file mode 100755
index 00000000..a3c21f33
--- /dev/null
+++ b/sql/Pg-upgrade-2.4.2-2.4.3.sql
@@ -0,0 +1,17 @@
+--
+alter table defaults rename invnumber to sinumber;
+alter table defaults add vinumber text;
+alter table defaults add employeenumber text;
+alter table defaults add partnumber text;
+alter table defaults add customernumber text;
+alter table defaults add vendornumber text;
+--
+alter table employee add employeenumber varchar(32);
+--
+alter table customer add startdate date;
+alter table customer add enddate date;
+--
+alter table vendor add startdate date;
+alter table vendor add enddate date;
+--
+update defaults set version = '2.4.3';
diff --git a/sql/Pg-upgrade-2.4.3-2.4.4.sql b/sql/Pg-upgrade-2.4.3-2.4.4.sql
new file mode 100755
index 00000000..38e25751
--- /dev/null
+++ b/sql/Pg-upgrade-2.4.3-2.4.4.sql
@@ -0,0 +1,5 @@
+--
+alter table employee add dob date;
+alter table employee rename sin to ssn;
+--
+update defaults set version = '2.4.4';
diff --git a/sql/Pg-upgrade-2.4.4-2.5.0.sql b/sql/Pg-upgrade-2.4.4-2.5.0.sql
new file mode 100755
index 00000000..5d3b9b9d
--- /dev/null
+++ b/sql/Pg-upgrade-2.4.4-2.5.0.sql
@@ -0,0 +1,31 @@
+--
+alter table ar add ponumber text;
+alter table ap add ponumber text;
+alter table oe add ponumber text;
+--
+alter table project add startdate date;
+alter table project add enddate date;
+--
+create table recurring (id int, reference text, startdate date, nextdate date, enddate date, repeat int2, unit varchar(6), howmany int, payment bool default 'f');
+create table recurringemail (id int, formname text, format text, message text);
+create table recurringprint (id int, formname text, format text, printer text);
+--
+create function del_recurring() returns opaque as '
+begin
+ delete from recurring where id = old.id;
+ delete from recurringemail where id = old.id;
+ delete from recurringprint where id = old.id;
+ return NULL;
+end;
+' language 'plpgsql';
+--end function
+create trigger del_recurring after delete on ar for each row execute procedure del_recurring();
+-- end trigger
+create trigger del_recurring after delete on ap for each row execute procedure del_recurring();
+-- end trigger
+create trigger del_recurring after delete on gl for each row execute procedure del_recurring();
+-- end trigger
+create trigger del_recurring after delete on oe for each row execute procedure del_recurring();
+-- end trigger
+--
+update defaults set version = '2.5.0';
diff --git a/sql/Pg-upgrade-2.5.0-2.5.2.sql b/sql/Pg-upgrade-2.5.0-2.5.2.sql
new file mode 100755
index 00000000..c6c9d641
--- /dev/null
+++ b/sql/Pg-upgrade-2.5.0-2.5.2.sql
@@ -0,0 +1,136 @@
+--
+create sequence jcitemsid;
+create table jcitems (id int default nextval('jcitemsid'), project_id int, parts_id int, description text, qty float4, allocated float4, sellprice float8, fxsellprice float8, serialnumber text, checkedin timestamp with time zone, checkedout timestamp with time zone, employee_id int);
+create index jcitems_id_key on jcitems (id);
+--
+alter table project add parts_id int;
+alter table project add production float;
+alter table project add completed float;
+alter table project add customer_id int;
+alter table project alter production set default 0;
+alter table project alter completed set default 0;
+update project set production = 0, completed = 0;
+--
+alter table parts add project_id int;
+--
+alter table parts add avgcost float;
+--
+create function avgcost(int) returns float as '
+
+declare
+
+v_cost float;
+v_qty float;
+v_parts_id alias for $1;
+
+begin
+
+ select into v_cost, v_qty sum(i.sellprice * i.qty), sum(i.qty)
+ from invoice i
+ join ap a on (a.id = i.trans_id)
+ where i.parts_id = v_parts_id;
+
+ if not v_qty is null then
+ v_cost := v_cost/v_qty;
+ end if;
+
+ if v_cost is null then
+ v_cost := 0;
+ end if;
+
+return v_cost;
+
+end;
+' language 'plpgsql';
+-- end function
+--
+create function lastcost(int) returns float as '
+
+declare
+
+v_cost float;
+v_parts_id alias for $1;
+
+begin
+
+ select into v_cost sellprice from invoice i
+ join ap a on (a.id = i.trans_id)
+ where i.parts_id = v_parts_id
+ order by a.transdate desc
+ limit 1;
+
+ if v_cost is null then
+ v_cost := 0;
+ end if;
+
+return v_cost;
+
+end;
+' language 'plpgsql';
+-- end function
+--
+alter table inventory rename oe_id to trans_id;
+--
+alter table ap add shippingpoint text;
+alter table ap add terms int2;
+--
+drop trigger check_inventory on oe;
+drop function check_inventory();
+create function check_inventory() returns opaque as '
+
+declare
+ itemid int;
+ row_data inventory%rowtype;
+
+begin
+
+ if not old.quotation then
+ for row_data in select * from inventory where trans_id = old.id loop
+ select into itemid id from orderitems where trans_id = old.id and id = row_data.orderitems_id;
+
+ if itemid is null then
+ delete from inventory where trans_id = old.id and orderitems_id = row_data.orderitems_id;
+ end if;
+ end loop;
+ end if;
+return old;
+end;
+' language 'plpgsql';
+-- end function
+--
+create trigger check_inventory after update on oe for each row execute procedure check_inventory();
+-- end trigger
+--
+alter table orderitems alter id drop default;
+--
+create function temp() returns int as '
+
+declare
+ v_last int;
+
+begin
+
+ SELECT INTO v_last last_value FROM orderitemsid;
+ drop sequence orderitemsid;
+ create sequence orderitemsid;
+ perform setval(''orderitemsid'', v_last);
+
+return NULL;
+end;
+' language 'plpgsql';
+-- end function
+--
+select temp();
+drop function temp();
+--
+alter table orderitems alter id set default nextval('orderitemsid');
+--
+alter table chart add contra boolean;
+alter table chart alter contra set default 'f';
+update chart set category = 'A', contra = '1' where category = 'C';
+update chart set contra = '0' where contra is null;
+--
+alter table defaults add glnumber text;
+--
+update defaults set version = '2.5.2';
+
diff --git a/sql/Pg-upgrade-2.5.2-2.6.0.sql b/sql/Pg-upgrade-2.5.2-2.6.0.sql
new file mode 100755
index 00000000..7a848b16
--- /dev/null
+++ b/sql/Pg-upgrade-2.5.2-2.6.0.sql
@@ -0,0 +1,9 @@
+--
+alter table oe add terms smallint;
+alter table oe alter terms set default 0;
+--
+alter table ap alter terms set default 0;
+--
+delete from inventory where warehouse_id = 0;
+--
+update defaults set version = '2.6.0';
diff --git a/sql/Pg-upgrade-2.6.0-2.6.1.sql b/sql/Pg-upgrade-2.6.0-2.6.1.sql
new file mode 100755
index 00000000..026cdafe
--- /dev/null
+++ b/sql/Pg-upgrade-2.6.0-2.6.1.sql
@@ -0,0 +1,5 @@
+--
+alter table jcitems add notes text;
+--
+update defaults set version = '2.6.1';
+
diff --git a/sql/Pg-upgrade-2.6.1-2.6.2.sql b/sql/Pg-upgrade-2.6.1-2.6.2.sql
new file mode 100755
index 00000000..39136600
--- /dev/null
+++ b/sql/Pg-upgrade-2.6.1-2.6.2.sql
@@ -0,0 +1,60 @@
+--
+drop function avgcost(int);
+CREATE FUNCTION avgcost(int) RETURNS FLOAT AS '
+
+DECLARE
+
+v_cost float;
+v_qty float;
+v_parts_id alias for $1;
+
+BEGIN
+
+ SELECT INTO v_cost, v_qty SUM(i.sellprice * i.qty), SUM(i.qty)
+ FROM invoice i
+ JOIN ap a ON (a.id = i.trans_id)
+ WHERE i.parts_id = v_parts_id;
+
+ IF v_cost IS NULL THEN
+ v_cost := 0;
+ END IF;
+
+ IF NOT v_qty IS NULL THEN
+ IF v_qty = 0 THEN
+ v_cost := 0;
+ ELSE
+ v_cost := v_cost/v_qty;
+ END IF;
+ END IF;
+
+RETURN v_cost;
+END;
+' language 'plpgsql';
+-- end function
+--
+drop function lastcost(int);
+CREATE FUNCTION lastcost(int) RETURNS FLOAT AS '
+
+DECLARE
+
+v_cost float;
+v_parts_id alias for $1;
+
+BEGIN
+
+ SELECT INTO v_cost sellprice FROM invoice i
+ JOIN ap a ON (a.id = i.trans_id)
+ WHERE i.parts_id = v_parts_id
+ ORDER BY a.transdate desc, a.id desc
+ LIMIT 1;
+
+ IF v_cost IS NULL THEN
+ v_cost := 0;
+ END IF;
+
+RETURN v_cost;
+END;
+' language 'plpgsql';
+-- end function
+--
+update defaults set version = '2.6.2';
diff --git a/sql/Pg-upgrade-2.6.12-2.6.16.sql b/sql/Pg-upgrade-2.6.12-2.6.16.sql
new file mode 100755
index 00000000..aaf49e91
--- /dev/null
+++ b/sql/Pg-upgrade-2.6.12-2.6.16.sql
@@ -0,0 +1,11 @@
+
+CREATE SEQUENCE session_session_id_seq;
+
+CREATE TABLE session(
+session_id INTEGER PRIMARY KEY DEFAULT nextval('session_session_id_seq'),
+sl_login VARCHAR(50),
+token CHAR(32),
+last_used TIMESTAMP default now()
+);
+
+ALTER TABLE acc_trans ALTER COLUMN chart_id SET NOT NULL;
diff --git a/sql/Pg-upgrade-2.6.2-2.6.3.sql b/sql/Pg-upgrade-2.6.2-2.6.3.sql
new file mode 100755
index 00000000..2abfe627
--- /dev/null
+++ b/sql/Pg-upgrade-2.6.2-2.6.3.sql
@@ -0,0 +1,10 @@
+--
+delete from status where formname = 'receipt';
+delete from status where formname = 'check';
+create table statu (trans_id int, formname text, printed bool default 'f', emailed bool default 'f', spoolfile text);
+insert into statu select trans_id, formname, printed, emailed, spoolfile from status;
+drop table status;
+alter table statu rename to status;
+create index status_trans_id_key on status (trans_id);
+--
+update defaults set version = '2.6.3';
diff --git a/sql/Pg-upgrade-2.6.3-2.6.4.sql b/sql/Pg-upgrade-2.6.3-2.6.4.sql
new file mode 100755
index 00000000..8456366c
--- /dev/null
+++ b/sql/Pg-upgrade-2.6.3-2.6.4.sql
@@ -0,0 +1,6 @@
+--
+alter table orderitems add notes text;
+alter table invoice add notes text;
+alter table acc_trans add invoice_id int;
+--
+update defaults set version = '2.6.4';
diff --git a/sql/Pg-upgrade-2.6.4-2.6.7.sql b/sql/Pg-upgrade-2.6.4-2.6.7.sql
new file mode 100755
index 00000000..41c14a24
--- /dev/null
+++ b/sql/Pg-upgrade-2.6.4-2.6.7.sql
@@ -0,0 +1,4 @@
+--
+alter table defaults add projectnumber text;
+--
+update defaults set version = '2.6.7';
diff --git a/sql/Pg-upgrade-2.6.7-2.6.12.sql b/sql/Pg-upgrade-2.6.7-2.6.12.sql
new file mode 100755
index 00000000..2336f3da
--- /dev/null
+++ b/sql/Pg-upgrade-2.6.7-2.6.12.sql
@@ -0,0 +1,4 @@
+--
+alter table tax add validto date;
+--
+update defaults set version = '2.6.12';
diff --git a/sql/Poland-chart.sql b/sql/Poland-chart.sql
new file mode 100755
index 00000000..41df38b8
--- /dev/null
+++ b/sql/Poland-chart.sql
@@ -0,0 +1,337 @@
+-- Chart of Account for Poland
+-- From: Peter Dabrowski <meritage@mail.com>
+-- Sun, 23 March 2003
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('000000000','Aktywa Trwa³e','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('001000000','¦rodki Trwa³e','A','','A','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('001010000','Grunty w³asne i prawa wieczystego u¿ytkowania gruntów','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('001020000','Budynki, locale i obiekty in¿ynierii l±dowej i wodnej','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('001030000','Urz±dzenia techniczne i maszyny','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('001040000','¦rodki transportu','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('001050000','Inne ¶rodki trwa³e','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('002000000','Warto¶ci niematerialne i prawne','A','','A','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('002010000','Koszty zakoñczonych prac rozwojowych','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('002020000','Nabyta warto¶æ firmy','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('002080000','Inne warto¶ci niematerialne i prawne','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('002090000','Zaliczki na warto¶ci niematerialne i prawne','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('003000000','D³ugoterminowe aktywa finansowe','A','','A','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('003010000','W jednostkach powi±zanych','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('003010100','Udzia³y lub akcje','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('003010200','Inne papiery warto¶ciowe','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('003010300','Udzielone porzyczki','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('003010400','Inne d³ugoterminowe aktywa finansowe','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('003020000','W pozosta³ych jednostkach','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('003020100','Udzia³y lub akcje','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('003020200','Inne papiery warto¶ciowe','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('003020300','Udzielone po¿yczki','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('003020400','Inne d³ugoterminowe aktywa finansowe','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('003090000','Inne investycje d³ugoterminowe','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('003090100','Inne rodzaje d³ugoterminowych aktywów finansowych','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('004000000','Investycje w nieruchomo¶ci i prawa','A','','A','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('004010000','Nieruchomo¶ci','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('004020000','Warto¶ci niematerialne i prawne','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('005000000','D³ugoterminowe rozliczenia miêdzyokresowe','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('005010000','Aktywa z tytu³u odroczonego podatku dochodowego','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('005020000','Inne rozliczenia miêdzyokresowe','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('006000000','Nale¿no¶ci d³ugoterminowe','A','','A','AR');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('006010000','Od jednostek powi±zanych','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('006020000','Od pozosta³ych jednostek','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('007000000','Odpisy umorzeniowe ¶rodków trwa³ych oraz warto¶ci niematerialnych i prawnych','A','','A','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('007010000','Odpisy umorzeniowe warto¶ci gruntów i prawa wieczystego u¿ytkowania gruntów','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('007020000','Odpisy umorzeniowe budynków, lokali i obiektów in¿ynierii l±dowej i wodnej','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('007030000','Odpisy umorzeniowe urz±dzeñ technicznych i maszyn','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('007040000','Odpisy umorzeniowe ¶rodków transportu','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('007050000','Odpisy umorzeniowe ulepszeñ obcych ¶rodków trwa³ych','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('007090000','Odpisy umorzeniowe innych ¶rodków trwa³ych','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('008000000','¦rodki trwa³e w budowie','A','','A','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('008010000','Inwestycje budowy ¶rodka trwa³ego','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('008020000','Ulepszenia ¶rodka trwa³ego','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('008030000','Nak³ady na budowê ¶rodka trwa³ego','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('008040000','Zaliczki na ¶rodki trwa³e w budowie','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('008050000','Ulepszenia obcych ¶rodków trwa³ych','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('009000000','Odpisy aktualizuj±ce d³ugoterminowe aktywa finansowe','A','','A','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('009010000','Odpisy aktualizuj±ce udzia³y i akcje w obcych jednostkach','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('009020000','Odpisy aktualizuj±ce lokaty','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('009030000','Odpisy aktualizuj±ce udzielone porzyczki d³ugoterminowe','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('009090000','Odpisy aktualizuj±ce inne rodzaje d³ugoterminowych aktywów finansowych','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('100000000','¦rodki pieniê¿ne, rachunki bankowe oraz inne krótkoterminowe aktywa finansowe','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('110000000','¦rodki pieniê¿ne w kasie','A','','A','AR:AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('110010000','Kasa krajowych ¶rodków pieniê¿nych','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('110020000','Kasa zagranicznych ¶rodków pieniê¿nych','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('113000000','Rachunki i kredyty bankowe','A','','A','AR:AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('113010000','Rachunek bie¿±cy','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('113020000','Rachunek ¶rodków wyodrêbnionych i zablokowanych','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('113030000','Rachunki kredytów bankowych','A','','A','AR_paid:AP_amount:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('113040000','Rachunek ¶rodków walutowych','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('114000000','Krótkoterminowe aktywa finansowe','A','','A','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('114010000','Krótkoterminowe aktywa finansowe w jednostkach powi±zanych','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('114010100','Udzia³y lub akcje','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('114010200','Inne papiery warto¶ciowe','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('114010300','Udzielone po¿yczki','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('114010400','Inne krótkoterminowe aktywa finansowe','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('114020000','Krótkoterminowe aktywa finansowe w pozosta³ych jednostkach','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('114020100','Udzia³y lub akcje','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('114020200','Inne papiery warto¶ciowe','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('114020400','Inne krótkoterminowe aktywa finansowe','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('115000000','Inne ¶rodki pieniê¿ne','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('116000000','Inne aktywa pieniê¿ne','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('117000000','Inne inwestycje krótkoterminowe','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('118000000','Krótkoterminowe rozliczenia miêdzyokresowe','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('200000000','Rozrachunki i roszczenia','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('220000000','Nale¿no¶ci krótkoterminowe','A','','L','AR');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('220010000','Nale¿no¶ci od jednostek powi±zanych','A','','L','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('220010100','Nale¿no¶ci z tytu³u dostaw i us³ug','A','','L','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('220010110','Nale¿no¶ci z tytu³u dostaw i us³ug, o okresie sp³aty do 12 miesiêcy','A','','L','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('220010120','Nale¿no¶ci z tytu³u dostaw i us³ug, o okresie sp³aty powy¿ej 12 miesiêcy','A','','L','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('220010200','Inne nale¿no¶ci','A','','L','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('220010210','Zobowi±zania z tytu³u pokrycia kosztów ogólnego zarz±du','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('220010220','Zobowi±zania z tytu³u rozliczeñ VAT','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('221010000','Nale¿no¶ci od pozosta³ych jednostek','A','','L','AR');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('221020100','Nale¿no¶ci z tytu³u dostaw i us³ug','A','','L','AR');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('221020110','Nale¿no¶ci z tytu³u dostaw i us³ug, o okresie sp³aty do 12 miesiêcy','A','','L','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('221020120','Nale¿no¶ci z tytu³u dostaw i us³ug, o okresie sp³aty powy¿ej 12 miesiêcy','A','','L','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('221020200','Nale¿no¶ci z tytu³u podatków, dotacji, ce³, ubezpieczeñ spo³ecznych i zdrowotnych oraz innych ¶wiadczeñ','A','','L','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('221020300','Zaliczki przekazane dostawcom','A','','L','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('221020400','Nale¿no¶ci dochodzone na drodze s±dowej','A','','L','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('221020500','Inne nale¿no¶ci','A','','L','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('222000000','Zobowi±zania krótkoterminowe','A','','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('222010000','Zobowi±zania wobec jednostek powiazanych','A','','L','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('222010100','Zobowi±zania z tytu³u dostaw i us³ug','A','','L','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('222010200','Zobowi±zania o okresie wymagalno¶ci do 12 miesiêcy','A','','L','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('222010300','Zobowi±zania o okresie wymagalno¶ci powy¿ej 12 miesiêcy','A','','L','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('222010400','Inne zobowi±zania','A','','L','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('222020000','Zobowi±zania wobec pozosta³ych jednostek','A','','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('222020100','Kredyty i po¿yczki','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('222020200','Zobowi±zania z tytu³u emisji d³u¿nych papierów warto¶ciowych','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('222020300','Inne zobowi±zania finasowe','A','','L','AP_Amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('222020400','Zobowiazania z tytu³u dostaw i us³ug','A','','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('222020500','Zobowi±zania o okresie wymagalno¶ci do 12 miesiêcy ','A','','L','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('222020600','Zobowi±zania o okresie wymagalno¶ci powy¿ej 12 miesiêy','A','','L','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('222020700','Zaliczki otrzmane na dostawy','A','','L','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('222020800','Zobowi±zania wekslowe','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('222020900','Zobowi±zania z tytu³u podatków, ce³, ubezpieczeñ i innych ¶wiadczeñ','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('222021000','Zobowi±zania z tytu³u wynagrodzeñ','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('222021100','Inne zobowi±zania','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('223000000','Rozrachunki publicznoprawne','A','','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('223010000','Rozrachunki z urzêdem skarbowym z tytu³u VAT','A','','L','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('223020000','Rozliczenie nale¿nego VAT','A','','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('223020100','Rozliczenie nale¿nego VAT-22%','A','','L','AR_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('223020200','Rozliczenie nale¿nego VAT-7%','A','','L','AR_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('223020300','Rozliczenie nale¿nego VAT-0%','A','','L','AR_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('223030000','Rozliczenie naliczonego VAT','A','','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('223030100','Rozliczenie naliczonego VAT-22%','A','','L','AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('223030200','Rozliczenie naliczonego VAT-7%','A','','L','AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('223030300','Rozliczenie naliczonego VAT-0%','A','','L','AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('223040000','Korekty naliczonego VAT','A','','L','AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('223050000','Rozrachunki z Urzêdem Celnym','A','','L','AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('223060000','Rozrachunki z Urzêdem Skarbowym z tytu³u znaków akcyzy','A','','L','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('223070000','Rozrachunki z Urzêdem Skarbowym z tytu³u podatku akcyzowego','A','','L','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('223080000','Rozliczenie znaków akcyzy','A','','L','AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('223090000','Rozrachunki z ZUS','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('223100000','Rozrachunki z Urzêdem Skarbowym z tytu³u podatku dochodowego od osób prawnych','A','','L','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('224000000','Rozrachunki z pracownikami','A','','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('224010000','Rozrachunki z tytu³u wynagrodzeñ','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('224020000','Rozrachunki z tytu³u po¿yczek udzielonych pracownikom','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('224090000','Inne rozrachunki z pracownikami','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('225000000','Zobowi±zania d³ugoterminowe','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('225010000','Zobowi±zania wobec jednostek powi±zanych','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('225010100','Zobowi±zania z tytu³u wyodrêbnienia sk³adników maj±tkowych','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('225010200','Zobowi±zania z tytu³u podzia³u zysku','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('225020000','Zobowi±zania wobec pozosta³ych jednostek','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('225020100','Kredyty i po¿yczki otrzymane','A','','L','AR_amount:AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('225020200','Kredyty i po¿yczki udzielone','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('225020300','Zobowi±zania z tytu³u emisji d³u¿nych papierów warto¶ciowych','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('225020400','Inne zobowi±zania kredytowe','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('225020500','Inne zobowi±zania','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('225030000','Rozrachunki z tytu³u wp³at na kapita³ zak³adowy','A','','L','AR_amount:APamount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('225040000','Rozrachunki z tytu³u wk³adów niepieniê¿nych na kapita³ zak³adowy','A','','L','AR_amount:AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('225050000','Rozrachunki z tytu³u podwy¿szenia kapita³u ze ¶rodków w³asnych spó³ki','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('225060000','Rozrachunki z tytu³u umorzenia udzia³ów w³asnych','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('225070000','Rozrachunki z tytu³u dywident','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('225080000','Rozrachunki z tytu³u dop³at i zwrotu dop³at','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('225090000','Pozosta³e rozrachunki ze wspólnikami','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('229000000','Odpisy aktualizuj±ce rozrachunki','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('300000000','Materia³y i towary','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('330000000','Rozliczenie zakupu','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('330010000','Rozliczenie warto¶ci materia³ów i towarów w drodze','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('330020000','Warto¶ci dostaw niefakturowanych','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('330030000','Przychody wszelkich dostaw i us³ug i ich rozliczanie','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('330040000','Odhylenia cen ewidencyjnych od rzeczywistych cen nabycia lub zakupu','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('330050000','Koszty zakupu zawarte w fakturach dostawców','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('330060000','Op³aty manipulacyjne policzone przez Urz±d Celny','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('330070000','Niedobory, szkody i nadwy¿ki w transporcie','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('330080000','Znaki akcyzy wed³ug dokumentu SAD','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('330090000','Reklamacje faktur dostawców','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('331000000','Materia³y','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('331010000','Materia³y w magazynach w³asnych','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('331020000','Materia³y w magazynach obcych','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('331030000','Materia³y w przerobie','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('333000000','Towary','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('333010000','Towary w magazynach w³asnych','A','','A','IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('333020000','Towary w magazynach obcych','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('333030000','Towary w detalu','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('334000000','Odchylenia od cen ewidencyjnych materia³ów i towarów','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('334010000','Odpisy aktualizuj±ce warto¶æ materia³ów','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('334020000','Odpisy aktualizuj±ce warto¶æ towarów','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('400000000','Koszty wed³ug rodzajów i ich rozliczeñ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('440000000','Koszty wed³ug rodzajów','A','','E','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('440010000','Zu¿ycie materia³ów i energii','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('440010100','Zu¿ycie materia³ów biurowych','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('440020000','Us³ugi obce','A','','E','AP_amount:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('440020100','Us³ugi celne','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('440020200','Us³ugi telekomunikacyjne','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('440020300','Us³ugi pocztowe','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('440020400','Us³ugi kurierskie i transportowe','A','','E','AP_amount:IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('440020500','Analizy sanitarne','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('440020600','Us³ugi graficzne i drukarskie','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('440030000','Podatki i op³aty','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('440030100','Op³aty i prowizje bankowe','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('440030200','Op³aty s±dowe, prawnicze i notarialne','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('440030300','Op³aty skarbowe','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('440030400','Koncesje','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('440040000','Wynagrodzenia za pracê','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('441000000','¦wiadczenia na rzecz pracowników','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('442000000','Amortyzacja','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('443000000','Pozosta³e','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('449000000','Rozliczenie kosztów','A','','E','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('449010000','Nie podlegaj±ce rozliczeniu w czasie','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('449020000','Przypadaj±ce na przysz³e okresy','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('449030000','Koszty zgromadzone','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('449040000','Koszty nie wliczane do warto¶ci sprzeda¿y','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('500000000','Koszty wed³ug typów dzia³alno¶ci i ich rozliczenie','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('550000000','Koszty dzia³alno¶ci podstawowej-produkcyjnej','A','','E','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('550010000','Rozliczone koszta dzia³alno¶ci','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('550020000','Koszty nie zakoñczonych d³ugotrwa³ych us³ug','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('550030000','Straty zwi±zane z wykonaniem d³ugotrwa³ych us³ug','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('552000000','Koszty dzia³alno¶ci podstawowej-handlowej','A','','E','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('552010000','Koszty utrzymania punktów sprzeda¼y detalicznej','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('550200000','Koszty utrzymania hurtowni','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('552030000','Koszty sprzeda¿y wyrobów','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('552040000','Podatek akcyzowy','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('552050000','Op³aty celne','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('553000000','Koszty dzia³alno¶ci pomocniczej','A','','E','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('553010000','¦wiadczenia us³ug transportowych','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('555000000','Koszty zarz±du','A','','E','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('555010000','Koszty zarz±dzania jednostk±','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('555020000','¦wiadczenia us³ug na potrzeby reprezentacji i reklamy','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('558000000','Rozliczenie kosztów dzia³alno¶ci','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('600000000','Produkty i rozliczenia miêdzyokresowe','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('660000000','Pó³produkty i produkty w toku','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('661000000','Produkty gotowe','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('661010000','Wyroby gotowe','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('661020000','Wyroby poza jednostk±','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('662000000','Odchylenia od cen ewidencyjnych produktów','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('662010000','Odchylenia od cen evidencyjnych wyrobów gotowych','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('662020000','Odhylenia od cen evidencyjnych pó³fabrykatów','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('664000000','Rozliczenia miêdzyokresowe kosztów','A','','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('664010000','Czynne rozliczenia miêdzyokresowe kosztów','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('664020000','Bierne rozliczenia miêdzyokresowe kosztów','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('665000000','Pozosta³e rozliczenia miêdzyokresowe','A','','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('665010000','Czynne rozliczenia przysz³ych okresów','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('665020000','Bierne rozliczenia przysz³ych okresów','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('700000000','Przychody i koszty zwi±zane z ich osi±gniêciem','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('770000000','Sprzeda¿ produktów','A','','I','AR');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('770010000','Sprzeda¿ produktów na kraj','A','','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('770020000','Sprzeda¿ produktów na eksport','A','','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('770030000','Sprzeda¿ us³ug na kraj','A','','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('770040000','Sprzeda¿ us³ug na eksport','A','','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('770100000','Koszty sprzedanych produktów','A','','E','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('770110000','Koszt w³asny sprzeda¿y produktów na kraj','A','','E','IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('770120000','Koszt w³asny sprzeda¿y produktów na eksport','A','','E','IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('770130000','Koszt w³asny sprzeda¿y us³ug na kraj','A','','E','IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('770140000','Koszt w³asny sprzeda¿y us³ug na export','A','','E','IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('773000000','Sprzeda¿ towarów','A','','I','AR');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('773010000','Sprzeda¿ hurtowa towarów','A','','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('773020000','Sprzeda¿ detaliczna towarów','A','','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('773030000','Sprzeda¿ wysy³kowa towarów','A','','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('773040000','Prowizja komisowa','A','','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('773100000','Warto¶æ sprzedanych towarów w cenach zakupu','A','','E','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('773110000','Warto¶æ sprzedanych towarów w sprzeda¿y hurtowej','A','','E','IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('773120000','Warto¶æ sprzedanych towarów w sprzeda¿y detalicznej','A','','E','IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('773130000','Warto¶æ sprzedanych towarów w sprzeda¿y wysy³kowej','A','','E','IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('773140000','Prowizja komisowa','A','','E','AP_amount:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('774000000','Sprzeda¿ materia³ów','A','','I','AR');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('774010000','Materia³y','A','','I','AP_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('774020000','Opakowania','A','','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('774030000','Odpady','A','','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('774100000','Warto¶æ sprzedanych materia³ów','A','','E','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('774110000','Warto¶æ w cenach zakupu sprzedanych materia³ów','A','','E','IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('774120000','Warto¶æ w cenach zakupu sprzedanych opakowañ','A','','E','IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('774130000','Warto¶æ w cenach zakupu sprzedanych odpadów','A','','E','IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('775000000','Przychody finansowe','A','','I','AR');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('775010000','Kwoty nale¿ne ze sprzeda¿y aktywów finansowych','A','','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('775020000','Kwoty nale¿ne z tytu³u dywident','A','','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('775030000','Otrzymane odsetki','A','','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('775040000','Przychody ze zbycia investycji','A','','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('775050000','Aktualizacja warto¶ci investycji-przychody','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('775060000','Dodatnie ró¿nice kursu walut','A','','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('775070000','Pozosta³e przychody finansowe','A','','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('775100000','Koszty finansowe','A','','E','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('775110000','Warto¶æ sprzedanych investycji','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('775120000','Odpisy z tytu³u utraty warto¶ci investycji-koszty','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('775130000','Odsetki zap³acone','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('775140000','Ujemne ró¿nice kursu walut','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('775190000','Pozosta³e koszty finansowe','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('776000000','Pozosta³e przychody operacyjne','A','','I','AR');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('776010000','Przychody ze zbycia niefinansowych aktywów trwa³ych','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('776020000','Otrzymane dotacje','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('776030000','Przychody z us³ug socjalnych','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('776040000','Przychody ze wzrostu warto¶ci niefinansowych aktywów trwa³ych','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('776090000','Inne pozosta³e przychody operacyjne','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('776100000','Pozosta³e koszty operacyjne','A','','E','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('776110000','Warto¶æ sprzedanych niefinansowych aktywów trwa³ych','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('776120000','Dotacje przekazane','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('776130000','Odpisy z tytu³u utraty warto¶ci aktywów niefinansowych','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('776140000','Inne pozosta³e koszty operacyjne','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('777000000','Zyski nadzwyczajne','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('777100000','Straty nadzwyczajne','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('779000000','Obroty wewnêtrzne','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('779010000','Koszt wyrobów w³asnej produkcji wydanych do w³asnych sklepów','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('779020000','¦wiadczenia na rzecz ¶rodków trwa³ych w budowie','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('779040000','Koszt niedoborów produktów','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('779050000','Koszt zaniechania okre¶lonego rodzaju dzia³alno¶ci','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('779100000','Koszt obrotów wewnêtrznych','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('779110000','Koszt wytworzenia wyrobów gotowych wydanych do w³asnych sklepów','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('779120000','Koszt wytworzenia ¶wiadczeñ na rzecz ¶rodków trwa³ych w budowie','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('779130000','Koszt wytworzenia zakoñczonych prac rozwojowych','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('779140000','Koszt wytworzenia produktów uznanych za niedobory','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('779150000','Koszt zaniechania okre¶lonego rodzaju dzia³alno¶ci','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('800000000','Kapita³y w³asne i wynik finansowy','H','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('880000000','Kapita³ podstawowy','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('880010000','Kapita³ zak³adowy','A','','Q','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('881000000','Fundusze wydzielone jednostkom zale¿nym','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('882000000','Nale¿ne wp³aty na kapita³ podstawowy','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('883000000','Fundusze wydzielone jednostkom zale¿nym','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('884000000','Kapita³ zapasowy','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('885000000','Kapita³ rezerwowy','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('886000000','Kapita³ z aktualizacji wyceny','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('887000000','Rozliczenia wyniku finansowego','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('888000000','Rezerwy','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('888010000','Rezerwa z tytu³u odroczonego podatku dochodowego','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('888020000','Rezerwa na ¶wiadczenia','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('888020100','Rezerwa d³ugoterminowa na ¶wiadczenia emerytalne i podobne','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('888020200','Rezerwa krótkoterminowa na ¶wiadczenia emerytalne i podobne','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('889090000','Pozosta³e rezerwy','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('889090100','Pozosta³e rezerwy d³ugoterminowe','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('889090200','Pozosta³e rezerwy krótkoterminowe','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('890000000','Rozliczenia miêdzyokresowe','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('890010000','Ujemna warto¶æ firmy','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('890020000','Inne rozliczenia miêdzyokresowe','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('890020100','Inne rozliczenia miêdzyokresowe d³ugoterminowe','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('890020200','Inne rozliczenia miêdzyokresowe krótkoterminowe','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('891000000','Fundusze specjalne','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('892000000','Wynik finansowy','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('893000000','Odpisy z zysku netto w ci±gu roku obrotowego','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('893010000','Podatek dochodowy','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('893020000','Inne obowi±zkowe obci±¿enia wyniku finansowego','A','','Q','');
+--
+insert into tax (chart_id,rate) values ((select id from chart where accno = '223020100'),0.22);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '223020200'),0.07);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '223020300'),0);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '223030100'),0.22);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '223030200'),0.07);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '223030300'),0);
+--
+update defaults set inventory_accno_id = (select id from chart where accno = '333000000'), income_accno_id = (select id from chart where accno = '773010000'), expense_accno_id = (select id from chart where accno = '773110000'), fxgain_accno_id = (select id from chart where accno = '775060000'), fxloss_accno_id = (select id from chart where accno = '775140000'), invnumber = '1000', sonumber = '1000', ponumber = '1000', curr = 'PLN:USD:EUR', weightunit = 'kg';
+--
+
+
diff --git a/sql/Simplified-Chinese_Default-UTF8-chart.sql b/sql/Simplified-Chinese_Default-UTF8-chart.sql
new file mode 100755
index 00000000..1a8513ea
--- /dev/null
+++ b/sql/Simplified-Chinese_Default-UTF8-chart.sql
@@ -0,0 +1,78 @@
+-- Default chart of accounts -- sample only
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2190','应付所得税','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2600','长期负债','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3300','股份资本','H','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3500','ä¿ç•™ç›ˆé¦€','H','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4000','销售盈馀','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4300','谘询盈馀','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4400','其它盈馀','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5000','货销æˆæœ¬','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5400','薪资支出','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5600','日常åŠç®¡ç†æ”¯å‡º','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1205','呆å¸å¤‡æŠµ','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1000','æµåŠ¨èµ„产','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1800','资本资产','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link,contra) values ('1825','累计分期付款 - 装璜åŠè®¾å¤‡.','A','','A','','1');
+insert into chart (accno,description,charttype,gifi_accno,category,link,contra) values ('1845','累计分期付款 - è¿è¾“工具','A','','A','','1');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2000','æµåŠ¨è´Ÿå€º','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2620','银行借款','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3600','æµåŠ¨ç›ˆé¦€','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2160','应付公å¸ç¨Ž','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3590','ä¿ç•™ç›ˆé¦€ - 去年度','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3350','普通股份','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1500','存货资产','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5615','广告行销','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5790','工具','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5700','办公用å“','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5800','æƒåˆ©é‡‘','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5610','会计法务','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5685','ä¿é™©','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5660','分期支出','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5620','åå¸','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5680','所得税','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5690','利æ¯åŠé“¶è¡Œæ‰‹ç»­è´¹','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5410','薪资','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5420','ä¿é™©æ”¯å‡º','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5430','退休金支出','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5440','è¡¥å¿é‡‘支出','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5470','员工ç¦åˆ©','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4030','销售 / 软体','A','','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4440','利æ¯','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5100','è¿è´¹','A','','E','AP_amount:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5760','租金','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1530','库存 / 软体','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1540','库存 / 二级市场零件','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4040','销售 / 二级市场零件','A','','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5030','货销æˆæœ¬ / 软体','A','','E','AP_amount:IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5010','采购','A','','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5040','货销æˆæœ¬ / 二级市场零件','A','','E','AP_amount:IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1065','零用金','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1820','办公室装璜åŠè®¾å¤‡','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5785','æ—…è´¹åŠå¨±ä¹','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2680','股东贷款','A','','L','AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5795','注册费','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5780','电信费','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5781','网路连线费','A','','E','AP_amount:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5765','维修管ç†è´¹','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2311','地方税','A','','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4430','è¿é”€è´¹','A','','I','IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1520','库存 / 硬体','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5020','货销æˆæœ¬ / 硬体','A','','E','AP_amount:IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2100','应付å¸æ¬¾','A','','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1840','è¿è¾“工具','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4330','程å¼è®¾è®¡','A','','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4020','销售 / 硬体','A','','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4320','谘询','A','','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1200','应收å¸æ¬¾','A','','A','AR');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1061','支票户头','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2310','商å“æœåŠ¡ç¨Ž','A','','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+--
+-- exchange rate
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4450','Foreign Exchange Gain','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5810','Foreign Exchange Loss','A','','E','');
+--
+insert into tax (chart_id,rate) values ((select id from chart where accno = '2310'),0.07);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '2311'),0.08);
+--
+update defaults set inventory_accno_id = (select id from chart where accno = '1520'), income_accno_id = (select id from chart where accno = '4020'), expense_accno_id = (select id from chart where accno = '5010'), fxgain_accno_id = (select id from chart where accno = '4450'), fxloss_accno_id = (select id from chart where accno = '5810'), curr = 'CAD', weightunit = 'kg';
+--
diff --git a/sql/Simplified-Chinese_Default-chart.sql b/sql/Simplified-Chinese_Default-chart.sql
new file mode 100755
index 00000000..307966b0
--- /dev/null
+++ b/sql/Simplified-Chinese_Default-chart.sql
@@ -0,0 +1,78 @@
+-- Default chart of accounts -- sample only
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2190','Ó¦¸¶ËùµÃË°','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2600','³¤ÆÚ¸ºÕ®','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3300','¹É·Ý×ʱ¾','H','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3500','±£ÁôÓ¯âÅ','H','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4000','ÏúÊÛÓ¯âÅ','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4300','ÚÑѯӯâÅ','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4400','ÆäËüÓ¯âÅ','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5000','»õÏú³É±¾','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5400','н×ÊÖ§³ö','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5600','ÈÕ³£¼°¹ÜÀíÖ§³ö','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1205','´ôÕʱ¸µÖ','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1000','Á÷¶¯×ʲú','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1800','×ʱ¾×ʲú','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link,contra) values ('1825','ÀۼƷÖÆÚ¸¶¿î - װ諼°É豸.','A','','A','','1');
+insert into chart (accno,description,charttype,gifi_accno,category,link,contra) values ('1845','ÀۼƷÖÆÚ¸¶¿î - ÔËÊ乤¾ß','A','','A','','1');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2000','Á÷¶¯¸ºÕ®','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2620','ÒøÐнè¿î','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3600','Á÷¶¯Ó¯âÅ','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2160','Ó¦¸¶¹«Ë¾Ë°','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3590','±£ÁôÓ¯âÅ - È¥Äê¶È','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3350','ÆÕͨ¹É·Ý','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1500','´æ»õ×ʲú','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5615','¹ã¸æÐÐÏú','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5790','¹¤¾ß','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5700','°ì¹«ÓÃÆ·','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5800','ȨÀû½ð','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5610','»á¼Æ·¨Îñ','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5685','±£ÏÕ','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5660','·ÖÆÚÖ§³ö','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5620','»µÕÊ','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5680','ËùµÃË°','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5690','ÀûÏ¢¼°ÒøÐÐÊÖÐø·Ñ','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5410','н×Ê','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5420','±£ÏÕÖ§³ö','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5430','ÍËÐݽðÖ§³ö','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5440','²¹³¥½ðÖ§³ö','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5470','Ô±¹¤¸£Àû','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4030','ÏúÊÛ / ÈíÌå','A','','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4440','ÀûÏ¢','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5100','ÔË·Ñ','A','','E','AP_amount:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5760','×â½ð','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1530','¿â´æ / ÈíÌå','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1540','¿â´æ / ¶þ¼¶Êг¡Áã¼þ','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4040','ÏúÊÛ / ¶þ¼¶Êг¡Áã¼þ','A','','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5030','»õÏú³É±¾ / ÈíÌå','A','','E','AP_amount:IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5010','²É¹º','A','','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5040','»õÏú³É±¾ / ¶þ¼¶Êг¡Áã¼þ','A','','E','AP_amount:IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1065','ÁãÓýð','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1820','°ì¹«ÊÒװ諼°É豸','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5785','Â÷Ѽ°ÓéÀÖ','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2680','¹É¶«´û¿î','A','','L','AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5795','×¢²á·Ñ','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5780','µçÐÅ·Ñ','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5781','Íø·Á¬Ïß·Ñ','A','','E','AP_amount:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5765','άÐÞ¹ÜÀí·Ñ','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2311','µØ·½Ë°','A','','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4430','ÔËÏú·Ñ','A','','I','IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1520','¿â´æ / Ó²Ìå','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5020','»õÏú³É±¾ / Ó²Ìå','A','','E','AP_amount:IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2100','Ó¦¸¶ÕÊ¿î','A','','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1840','ÔËÊ乤¾ß','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4330','³ÌʽÉè¼Æ','A','','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4020','ÏúÊÛ / Ó²Ìå','A','','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4320','ÚÑѯ','A','','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1200','Ó¦ÊÕÕÊ¿î','A','','A','AR');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1061','֧Ʊ»§Í·','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2310','ÉÌÆ··þÎñË°','A','','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+--
+-- exchange rate
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4450','Foreign Exchange Gain','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5810','Foreign Exchange Loss','A','','E','');
+--
+insert into tax (chart_id,rate) values ((select id from chart where accno = '2310'),0.07);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '2311'),0.08);
+--
+update defaults set inventory_accno_id = (select id from chart where accno = '1520'), income_accno_id = (select id from chart where accno = '4020'), expense_accno_id = (select id from chart where accno = '5010'), fxgain_accno_id = (select id from chart where accno = '4450'), fxloss_accno_id = (select id from chart where accno = '5810'), curr = 'CAD', weightunit = 'kg';
+--
diff --git a/sql/Spain-ISO-chart.sql b/sql/Spain-ISO-chart.sql
new file mode 100755
index 00000000..6b29c478
--- /dev/null
+++ b/sql/Spain-ISO-chart.sql
@@ -0,0 +1,132 @@
+-- Chart of Accounts for Spain (Cuadro del Plan de Contabilidad español)
+-- From: Federico Montesino Pouzols <fedemp@arrok.com>
+-- 23 Apr 2002
+--
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('099999999','Grupo 1: financiación básica','H','','','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('100000000','Capital','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('110000000','Reservas','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('120000000','Resultados pendientes de aplicación','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('130000000','Ingresos a distribuir en varios ejercicios','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('140000000','Provisiones para riesgos y gastos','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('150000000','Empréstitos y otras emisiones análogas','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('160000000','Deudas a largo plazo con empresas del grupo y asociadas','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('170000000','Deudas a largo plazo por prestamos recibidos y otros conceptos','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('180000000','Fianzas y depósitos recibidos a largo plazo','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('190000000','Situaciones transitorias de financiación','A','','A','');
+--
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('199999999','Grupo 2: inmovilizado','H','','','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('200000000','Gastos de establecimiento','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('210000000','Inmovilizaciones inmateriales','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('220000000','Inmovilizaciones materiales','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('230000000','Inmovilizaciones materiales en curso','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('240000000','Inversiones financieras en empresas del grupo y asociadas','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('250000000','Otras inversiones financieras permanentes','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('260000000','Fianzas y depósitos constituidos a largo plazo','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('270000000','Gastos a distribuir en varios ejercicios','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('280000000','Amortización acumulada del inmovilizado','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('290000000','Provisiones de inmovilizado','A','','A','');
+--
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('299999999','Grupo 3: existencias','H','','','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('300000000','Comerciales','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('310000000','Materias primas','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('320000000','Otros aprovisionamientos','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('330000000','Productos en curso','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('340000000','Productos semiterminados','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('350000000','Productos terminados','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('360000000','Subproductos, residuos y materiales recuperados','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('390000000','Provisiones por depreciación de existencias','A','','A','');
+--
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('399999999','Grupo 4: acreedores y deudores por operaciones de tráfico','H','','','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('400000000','Proveedores','A','','P','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('410000000','Acreedores varios','A','','P','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('430000000','Clientes','A','','P','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('431000000','Clientes, efectos comerciales a cobrar','A','','P','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('440000000','Deudores varios','A','','P','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('460000000','Personal','A','','P','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('470000000','Administraciones públicas','A','','P','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('472000000','Hacienda Pública, IVA soportado','A','','P','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('472000001','IVA soportado 4%','A','','P','AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('472000002','IVA soportado 7%','A','','P','AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('472000003','IVA soportado 16%','A','','P','AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('475100000','Hacienda Pública, acreedor por retenciones practicadas','A','','P','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('473000000','Hacienda Pública, retenciones y pagos a cuenta','A','','P','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('477000000','Hacienda Pública, IVA repercutido','A','','P','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('477000001','IVA repercutido 4%','A','','P','AR_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('477000002','IVA repercutido 7%','A','','P','AR_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('477000003','IVA repercutido 16%','A','','P','AR_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('480000000','Ajustes por periodificación','A','','P','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('490000000','Provisiones por operaciones de tráfico','A','','P','');
+--
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('499999999','Grupo 5: cuentas financieras','H','','','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('500000000','Empréstitos y otras emisiones análogas a corto plazo','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('510000000','Deudas a corto plazo con empresas del grupo y asociadas','A','','P','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('520000000','Deudas a corto plazo por préstamos recibidos y otros conceptos','A','','P','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('530000000','Inversiones financieras a corto plazo en empresas del grupo y asociadas','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('540000000','Otras inversiones financieras temporales','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('550000000','Otras cuentas no bancarias','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('560000000','Fianzas y depósitos recibidos y constituidos a corto plazo','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('569000000','Tesorería','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('570000000','Caja, euros','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('571000000','Caja, moneda extranjera','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('572000000','Bancos e instituciones de crédito, c/c. vista, euros','A','','A','AR_paid:AP_paid:AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('573000000','Bancos e instituciones de crédito, c/c. vista, moneda extranjera','A','','A','AR_paid:AP_paid:AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('574000000','Bancos e instituciones de crédito, cuentas de ahorro, euros','A','','A','AR_paid:AP_paid:AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('575000000','Bancos e instituciones de crédito, cuentas de ahorro, moneda extranjera','A','','A','AR_paid:AP_paid:AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('580000000','Ajustes por periodificación','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('590000000','Provisiones financieras','A','','P','');
+--
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('599999999','Grupo 6: compras y gastos','H','','','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('600000000','Compras','A','','E','AP:IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('608000000','Devoluciones de compras y operaciones similares','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('610000000','Variación de existencias','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('620000000','Servicios exteriores','A','','E','IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('630000000','Tributos','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('640000000','Gastos de personal','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('650000000','Otros gastos de gestión','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('660000000','Gastos financieros','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('665000000','Descuentos sobre ventas por pronto pago','A','','E','IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('668000000','Diferencias negativas de cambio','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('670000000','Pérdidas procedentes del inmovilizado y gastos excepcionales','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('680000000','Dotaciones para amortizaciones','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('690000000','Dotaciones a las provisiones','A','','E','');
+--
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('699999999','Grupo 7: ventas e ingresos','H','','','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('700000000','Ventas de mercaderías, de producción propia, de servicios, etc.','A','','I','AR:IC_sale:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('708000000','Devoluciones de ventas y operaciones similares','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('710000000','Variación de existencias','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('730000000','Trabajos realizados para la empresa','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('740000000','Subvenciones a la explotación','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('750000000','Otros ingresos de gestión','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('760000000','Ingresos financieros','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('765000000','Descuentos sobre compras por pronto pago','A','','I','IC_sale:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('768000000','Diferencias positivas de cambio','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('770000000','Beneficios procedentes de inmovilizados e ingresos excepcionales','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('790000000','Excesos y aplicaciones de provisiones','A','','I','');
+--
+-- Taxes in Spain
+--
+-- IVA: 4, 7 or 16%
+-- IVA soportado
+INSERT INTO "tax" ("chart_id", "rate") VALUES ((SELECT id FROM chart WHERE accno = '472000000'), 0.0);
+INSERT INTO "tax" ("chart_id", "rate") VALUES ((SELECT id FROM chart WHERE accno = '472000001'), 0.04);
+INSERT INTO "tax" ("chart_id", "rate") VALUES ((SELECT id FROM chart WHERE accno = '472000002'), 0.07);
+INSERT INTO "tax" ("chart_id", "rate") VALUES ((SELECT id FROM chart WHERE accno = '472000003'), 0.16);
+-- Recargo equivalente: 0.5, 1 or 4%
+INSERT INTO "tax" ("chart_id", "rate") VALUES ((SELECT id FROM chart WHERE accno = '472000004'), 0.005);
+INSERT INTO "tax" ("chart_id", "rate") VALUES ((SELECT id FROM chart WHERE accno = '472000005'), 0.01);
+INSERT INTO "tax" ("chart_id", "rate") VALUES ((SELECT id FROM chart WHERE accno = '472000006'), 0.04);
+--
+-- IVA repercutido
+INSERT INTO "tax" ("chart_id", "rate") VALUES ((SELECT id FROM chart WHERE accno = '477000000'), 0.0);
+INSERT INTO "tax" ("chart_id", "rate") VALUES ((SELECT id FROM chart WHERE accno = '477000001'), 0.04);
+INSERT INTO "tax" ("chart_id", "rate") VALUES ((SELECT id FROM chart WHERE accno = '477000002'), 0.07);
+INSERT INTO "tax" ("chart_id", "rate") VALUES ((SELECT id FROM chart WHERE accno = '477000003'), 0.16);
+-- Recargo equivalente: 0.5, 1 or 4%
+INSERT INTO "tax" ("chart_id", "rate") VALUES ((SELECT id FROM chart WHERE accno = '477000004'), 0.005);
+INSERT INTO "tax" ("chart_id", "rate") VALUES ((SELECT id FROM chart WHERE accno = '477000005'), 0.01);
+INSERT INTO "tax" ("chart_id", "rate") VALUES ((SELECT id FROM chart WHERE accno = '477000006'), 0.04);
+--
+-- update defaults
+--
+update defaults set inventory_accno_id = (select id from chart where accno = '300000000'), income_accno_id = (select id from chart where accno = '700000000'), expense_accno_id = (select id from chart where accno = '600000000'), fxgain_accno_id = (select id from chart where accno = '768000000'), fxloss_accno_id = (select id from chart where accno = '668000000'), curr = 'EUR', weightunit = 'Kg';
+--
diff --git a/sql/Spain-UTF8-chart.sql b/sql/Spain-UTF8-chart.sql
new file mode 100755
index 00000000..fefdbb7b
--- /dev/null
+++ b/sql/Spain-UTF8-chart.sql
@@ -0,0 +1,133 @@
+-- Chart of Accounts for Spain (Cuadro del Plan de Contabilidad español)
+-- From: Federico Montesino Pouzols <fedemp@arrok.com>
+-- 23 Apr 2002
+--
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('099999999','Grupo 1: financiación básica','H','','','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('100000000','Capital','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('110000000','Reservas','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('120000000','Resultados pendientes de aplicación','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('130000000','Ingresos a distribuir en varios ejercicios','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('140000000','Provisiones para riesgos y gastos','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('150000000','Empréstitos y otras emisiones análogas','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('160000000','Deudas a largo plazo con empresas del grupo y asociadas','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('170000000','Deudas a largo plazo por prestamos recibidos y otros conceptos','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('180000000','Fianzas y depósitos recibidos a largo plazo','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('190000000','Situaciones transitorias de financiación','A','','A','');
+--
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('199999999','Grupo 2: inmovilizado','H','','','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('200000000','Gastos de establecimiento','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('210000000','Inmovilizaciones inmateriales','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('220000000','Inmovilizaciones materiales','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('230000000','Inmovilizaciones materiales en curso','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('240000000','Inversiones financieras en empresas del grupo y asociadas','A','', 'A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('250000000','Otras inversiones financieras permanentes','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('260000000','Fianzas y depósitos constituidos a largo plazo','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('270000000','Gastos a distribuir en varios ejercicios','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('280000000','Amortización acumulada del inmovilizado','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('290000000','Provisiones de inmovilizado','A','','A','');
+--
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('299999999','Grupo 3: existencias','H','','','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('300000000','Comerciales','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('310000000','Materias primas','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('320000000','Otros aprovisionamientos','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('330000000','Productos en curso','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('340000000','Productos semiterminados','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('350000000','Productos terminados','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('360000000','Subproductos, residuos y materiales recuperados','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('390000000','Provisiones por depreciación de existencias','A','','A','');
+--
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('399999999','Grupo 4: acreedores y deudores por operaciones de tráfico','H','', '','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('400000000','Proveedores','A','','P','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('410000000','Acreedores varios','A','','P','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('430000000','Clientes','A','','P','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('431000000','Clientes, efectos comerciales a cobrar','A','','P','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('440000000','Deudores varios','A','','P','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('460000000','Personal','A','','P','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('470000000','Administraciones públicas','A','','P','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('472000000','Hacienda Pública, IVA soportado','A','','P','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('472000001','IVA soportado 4%','A','','P','AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('472000002','IVA soportado 7%','A','','P','AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('472000003','IVA soportado 16%','A','','P','AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('475100000','Hacienda Pública, acreedor por retenciones practicadas','A','','P','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('473000000','Hacienda Pública, retenciones y pagos a cuenta','A','','P','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('477000000','Hacienda Pública, IVA repercutido','A','','P','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('477000001','IVA repercutido 4%','A','','P','AR_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('477000002','IVA repercutido 7%','A','','P','AR_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('477000003','IVA repercutido 16%','A','','P','AR_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('480000000','Ajustes por periodificación','A','','P','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('490000000','Provisiones por operaciones de tráfico','A','','P','');
+--
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('499999999','Grupo 5: cuentas financieras','H','','','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('500000000','Empréstitos y otras emisiones análogas a corto plazo','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('510000000','Deudas a corto plazo con empresas del grupo y asociadas','A','','P','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('520000000','Deudas a corto plazo por préstamos recibidos y otros conceptos','A','','P','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('530000000','Inversiones financieras a corto plazo en empresas del grupo y asociadas','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('540000000','Otras inversiones financieras temporales','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('550000000','Otras cuentas no bancarias','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('560000000','Fianzas y depósitos recibidos y constituidos a corto plazo','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('569000000','Tesorería','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('570000000','Caja, euros','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('571000000','Caja, moneda extranjera','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('572000000','Bancos e instituciones de crédito, c/c. vista, euros','A','','A','AR_paid:AP_paid:AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('573000000','Bancos e instituciones de crédito, c/c. vista, moneda extranjera','A','','A','AR_paid:AP_paid:AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('574000000','Bancos e instituciones de crédito, cuentas de ahorro, euros','A','','A','AR_paid:AP_paid:AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('575000000','Bancos e instituciones de crédito, cuentas de ahorro, moneda extranjera','A','','A','AR_paid:AP_paid:AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('580000000','Ajustes por periodificación','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('590000000','Provisiones financieras','A','','P','');
+--
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('599999999','Grupo 6: compras y gastos','H','','','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('600000000','Compras','A','','E','AP:IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('608000000','Devoluciones de compras y operaciones similares','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('610000000','Variación de existencias','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('620000000','Servicios exteriores','A','','E','IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('630000000','Tributos','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('640000000','Gastos de personal','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('650000000','Otros gastos de gestión','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('660000000','Gastos financieros','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('665000000','Descuentos sobre ventas por pronto pago','A','','E','IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('668000000','Diferencias negativas de cambio','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('670000000','Pérdidas procedentes del inmovilizado y gastos excepcionales','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('680000000','Dotaciones para amortizaciones','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('690000000','Dotaciones a las provisiones','A','','E','');
+--
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('699999999','Grupo 7: ventas e ingresos','H','','','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('700000000','Ventas de servicios y productos','A','','I','AR:IC_sale:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('708000000','Devoluciones de ventas y operaciones similares','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('710000000','Variación de existencias','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('730000000','Trabajos realizados para la empresa','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('740000000','Subvenciones a la explotación','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('750000000','Otros ingresos de gestión','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('760000000','Ingresos financieros','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('765000000','Descuentos sobre compras por pronto pago','A','','I','IC_sale:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('768000000','Diferencias positivas de cambio','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('770000000','Beneficios procedentes de inmovilizados e ingresos excepcionales','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('790000000','Excesos y aplicaciones de provisiones','A','','I','');
+--
+-- Taxes in Spain
+--
+-- IVA: 4, 7 or 16%
+-- IVA soportado
+INSERT INTO "tax" ("chart_id", "rate") VALUES ((SELECT id FROM chart WHERE accno = '472000000'), 0.0);
+INSERT INTO "tax" ("chart_id", "rate") VALUES ((SELECT id FROM chart WHERE accno = '472000001'), 0.04);
+INSERT INTO "tax" ("chart_id", "rate") VALUES ((SELECT id FROM chart WHERE accno = '472000002'), 0.07);
+INSERT INTO "tax" ("chart_id", "rate") VALUES ((SELECT id FROM chart WHERE accno = '472000003'), 0.16);
+-- Recargo equivalente: 0.5, 1 or 4%
+INSERT INTO "tax" ("chart_id", "rate") VALUES ((SELECT id FROM chart WHERE accno = '472000004'), 0.005);
+INSERT INTO "tax" ("chart_id", "rate") VALUES ((SELECT id FROM chart WHERE accno = '472000005'), 0.01);
+INSERT INTO "tax" ("chart_id", "rate") VALUES ((SELECT id FROM chart WHERE accno = '472000006'), 0.04);
+--
+-- IVA repercutido
+INSERT INTO "tax" ("chart_id", "rate") VALUES ((SELECT id FROM chart WHERE accno = '477000000'), 0.0);
+INSERT INTO "tax" ("chart_id", "rate") VALUES ((SELECT id FROM chart WHERE accno = '477000001'), 0.04);
+INSERT INTO "tax" ("chart_id", "rate") VALUES ((SELECT id FROM chart WHERE accno = '477000002'), 0.07);
+INSERT INTO "tax" ("chart_id", "rate") VALUES ((SELECT id FROM chart WHERE accno = '477000003'), 0.16);
+-- Recargo equivalente: 0.5, 1 or 4%
+INSERT INTO "tax" ("chart_id", "rate") VALUES ((SELECT id FROM chart WHERE accno = '477000004'), 0.005);
+INSERT INTO "tax" ("chart_id", "rate") VALUES ((SELECT id FROM chart WHERE accno = '477000005'), 0.01);
+INSERT INTO "tax" ("chart_id", "rate") VALUES ((SELECT id FROM chart WHERE accno = '477000006'), 0.04);
+--
+-- update defaults
+--
+update defaults set inventory_accno_id = (select id from chart where accno = '300000000'), income_accno_id = (select id from chart where accno = '700000000'), expense_accno_id = (select id from chart where accno = '600000000'), fxgain_accno_id = (select id from chart where accno = '768000000'), fxloss_accno_id = (select id from chart where accno = '668000000'), curr = 'EUR', weightunit = 'Kg';
+--
+
diff --git a/sql/Sweden-chart.sql b/sql/Sweden-chart.sql
new file mode 100755
index 00000000..bfc6fa72
--- /dev/null
+++ b/sql/Sweden-chart.sql
@@ -0,0 +1,1138 @@
+-- May 7, 2006
+-- Johan Hambraeus
+--
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1','Tillgångar ','H','','','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('10','Immateriella anläggningstillgångar ','H','','','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1010','Balanserade utgifter ','A','234','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1011','Balanserade utgifter för forskning och utveckling ','A','234','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1012','Balanserade utgifter för dataprogram','A','234','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1019','Ackumulerade avskrivningar på balanserade utgifter','A','234','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1020','Koncessioner m m ','A','234','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1029','Ackumulerade avskrivningar på koncessioner','A','234','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1030','Patent ','A','234','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1039','Ackumulerade avskrivningar på patent ','A','234','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1040','Licenser ','A','234','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1049','Ackumulerade avskrivningar på licenser','A','234','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1050','Varumärken ','A','234','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1059','Ackumulerade avskrivningar på varumärken','A','234','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1060','Hyresrätter ','A','234','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1069','Ackumulerade avskrivningar på hyresrätter ','A','234','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1070','Goodwill ','A','234','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1079','Ackumulerade avskrivningar på goodwill','A','234','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1080','Pågående projekt och förskott för immateriella anläggningstillgångar','A','234','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1081','Pågående projekt och förskott för immateriella anläggningstillgångar ','A','234','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1088','Förskott för immateriella anläggningstillgångar','A','234','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1090','Övriga immateriella anläggningstillgångar','A','234','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1099','Ackumulerade avskrivningar på övriga immateriella anläggningstillgångar','A','234','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('11','Byggnader och mark','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1110','Byggnader','A','237','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1111','Byggnader på egen mark','A','237','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1112','Byggnader på ofri grund','A','237','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1119','Ackumulerade avskrivningar på byggnader','A','237','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1130','Mark','A','237','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1140','Tomter och obebyggda markområden','A','237','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1150','Markanläggning','A','237','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1159','Ackumulerade avskrivningar på markanläggning','A','237','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1180','Pågående nyanläggningar och förskott för byggnader och mark','A','237','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1181','Pågående nybyggnad','A','237','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1182','Pågående tillbyggnad','A','237','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1183','Pågående ombyggnad','A','237','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1188','Förskott för byggnader och mark','A','237','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1190','Övriga byggnader och mark','A','237','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1199','Ackumulerade avskrivningar på övriga byggnader','A','237','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('12','Maskiner och inventarier ','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1200','Maskiner och inventarier (gruppkonto)','A','236','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1209','Ackumulerade avskrivningar på maskiner och inventarier','A','236','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1210','Maskiner och andra tekniska anläggningar','A','236','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1211','Maskiner','A','236','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1212','Byggnadsinventarier','A','236','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1213','Andra tekniska anläggningar','A','236','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1219','Ackumulerade avskrivningar på maskiner och andra tekniska anläggningar','A','236','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1220','Inventarier och verktyg','A','236','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1229','Ackumulerade avskrivningar på inventarier och verktyg','A','236','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1230','Installationer','A','236','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1231','Installationer på egen fastighet','A','236','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1232','Installationer på annans fastighet','A','236','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1233','Förbättringsutgifter på annans fastighet','A','236','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1239','Ackumulerade avskrivningar på installationer','A','236','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1240','Bilar och andra transportmedel','A','236','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1249','Ackumulerade avskrivningar på bilar och andra transportmedel','A','236','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1250','Datorer','A','236','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1251','Datorer - företaget','A','236','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1257','Datorer - personal','A','236','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1259','Ackumulerade avskrivningar på datorer','A','236','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1260','Leasingavtal','A','236','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1269','Ackumulerade avskrivningar på leasingavtal','A','236','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1280','Pågående nyanläggningar och förskott','A','236','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1281','Pågående nyanläggningar','A','236','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1288','Förskott för maskiner och inventarier','A','236','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1290','Övriga maskiner och inventarier','A','236','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1291','Konst och liknande tillgångar','A','236','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1292','Inventarier i annans fastighet','A','236','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1299','Ackumulerade avskrivningar på övriga maskiner och inventarier','A','236','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('13','Finansiella anläggningstillgångar ','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1310','Aktier och andelar i koncernföretag','A','230','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1311','Aktier och andelar i svenska dotterföretag','A','230','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1312','Aktier och andelar i utländska dotterföretag','A','231','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1313','Aktier och andelar i andra svenska koncernföretag','A','230','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1314','Aktier och andelar i andra utländska koncernföretag','A','231','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1319','Värdereglering av aktier och andelar i koncernföretag','A','230','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1320','Långfristiga fordringar hos koncernföretag','A','241/233','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1321','Fordringar hos moderföretag','A','241/234','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1322','Fordringar hos dotterföretag','A','241/235','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1323','Fordringar hos andra koncernföretag','A','241/236','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1329','Värdereglering av långfristiga fordringar hos koncernföretag','A','241/233','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1330','Aktier och andelar i intresseföretag','A','230','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1339','Värdereglering av aktier och och andelar i intresseföretag','A','230','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1340','Långfristiga fordringar hos intresseföretag','A','241/233','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1349','Värdereglering av långfristiga fordringar hos intresseföretag','A','241/233','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1350','Aktier, andelar och värdepapper i andra företag','A','233/230','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1351','Aktier i börsnoterade bolag','A','233/230','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1352','Andra aktier och andelar','A','233/230','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1353','Andelar i bostadsrättsföreningar','A','233','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1354','Obligationer','A','233','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1359','Värdereglering av andra aktier, andelar och värdepapper','A','233/230','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1380','Andra långfristiga fordringar','A','233','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1381','Reversfordringar','A','233','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1382','Fordringar hos anställda','A','233','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1383','Lämnade depositioner','A','233','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1384','Lån till närstående personer','A','233','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1385','Värde av kapitalförsäkring','A','233','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1386','Förutbetalda leasingavgifter','A','233','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1387','Långfristiga kontraktsfordringar','A','233','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1388','Olika långfristiga fordringar','A','233','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1389','Värdereglering av andra långfristiga fordringar','A','233','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1390','Värdereglering av värdepapper och långfristiga fordringar (ofördelad)','A','233','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('14','Lager och pågående arbeten','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1400','Lager (gruppkonto) ','A','219','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1401','Inneliggande lager ','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1402','Varor på väg ','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1403','Konsignationslager ','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1404','Lager av värdepapper ','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1409','Förändring av lager ','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1410','Lager av råvaror (förråd) ','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1419','Förändring av lager av råvaror ','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1420','Lager av tillsatsmaterial och förnödenheter ','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1429','Förändring av lager av tillsatsmaterial och förnödenheter ','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1430','Lager av halvfabrikat ','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1431','Lager av köpta halvfabrikat ','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1432','Lager av egentillverkde halvfabrikat ','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1439','Förändring av lager av halvfabrikat ','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1440','Produkter i arbete - (PIA) ','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1449','Förändring av produkter i arbete ','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1450','Lager av färdiga varor ','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1459','Förändring av lager av färdiga varor ','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1460','Lager av handelsvaror - Varulager ','A','219','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1469','Förändring av lager av handelsvaror - Varulager ','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1470','Pågående arbeten ','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1471','Pågående arbeten, nedlagda kostnader ','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1472','Omsättningsfastigheter ','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1478','Pågående arbeten, fakturering ','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1479','Förändring av pågående arbeten ','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1480','Förskott av varor och tjänster ','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1481','Remburs ','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1489','Övriga förskott till leverantörer ','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1490','Förändring av lager pågående arbeten (ofördelad) ','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('15','Kundfordringar','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1500','Kundfordringar (gruppkonto) ','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1510','Kundfordringar ','A','204','A','AR');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1512','Belånade kundfordringar ','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1515','Osäkra kundfordringar ','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1516','Tvistiga kundfordringar ','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1518','Ej reskontraförda kundfordringar ','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1519','Värdereglering av kundfordringar ','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1520','Växelfordringar ','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1525','Osäkra växelfordringar ','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1529','Värdereglering av osäkra växelfordringar ','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1530','Kontraktsfordringar ','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1540','Belånade kontraktsfordringar ','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1541','Belånade kontraktsfordringar ','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1545','Osäkra kontraktsfordringar ','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1550','Konsignationsfordringar ','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1560','Kundfordringar hos koncernföretag ','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1561','Kundfordringar hos moderföretag ','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1562','Kundfordringar hos dotternföretag ','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1563','Kundfordringar hos andra koncernföretag ','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1569','Värdereglering av kundfordringar hos koncernföretag ','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1570','Kundfordringar hos intresseföretag ','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1575','Osäkra kundfordringar hos intresseföretag ','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1579','Värdereglering av kundfordringar ','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1580','Kontokort och kuponger ','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1590','Värdereglering av kundfordringar (ofördelad) ','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('16','Övriga kortfristiga fordringar','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1600','Övriga kortfristiga fordringar (gruppkonto) ','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1610','Fordringar hos anställda ','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1611','Reseförskott ','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1612','Kassaföskott - (Fixkassa) ','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1613','Övriga förskott ','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1614','Tillfälliga lån till anställda ','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1619','Övriga fordringar hos anställda ','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1630','Avräkning för skatter och avgifter - (Skattekontot) ','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1640','Skattefordringar ','A','206','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1650','Momsfordringar ','A','207','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1660','Fordringar hos koncernföretag ','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1661','Fordringar hos moderföretag ','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1662','Fordringar hos dotterföretag ','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1663','Fordringar hos andra koncernföretag ','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1670','Fordringar hos intresseföretag ','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1680','Andra kortfristiga fordringar ','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1681','Utlägg för kunder ','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1682','Kortfristiga lånefordringar ','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1683','Fordringar för tecknat men ej inbetalt aktiekapital ','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1684','Fordringar hos leverantörer ','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1685','Fordringar hos närstående personer ','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1686','Upparbetad men ej fakturerad intäkt ','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1687','Kortfristig del av långfristiga fordringar ','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1689','Övriga kortfristiga fordringar ','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1690','Värdereglering av kortfristiga fordringar (ofördelad) ','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('17','Förutbetalda kostnader och upplupna intäkter','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1700','Förutbetalda kostnader och upplupna intäkter (gruppkonto) ','A','205','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1710','Förutbetalda hyresutgifter ','A','205','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1711','Förutbetalda arrendeutgifter ','A','205','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1720','Förutbetalda leasingavgifter ','A','205','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1730','Förutbetalda försäkringspremier ','A','205','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1740','Förutbetalda ränteutgifter ','A','205','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1750','Upplupna hyresinkomster ','A','205','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1760','Upplupna inkomsträntor ','A','205','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1770','Tillgångar av kostnadsnatur ','A','205','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1780','Upplupna avtalsinkomster ','A','205','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1790','Övriga förutbetalda kostnader och upplupna intäkter ','A','205','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('18','Kortfristiga placeringar','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1800','Kortfristiga placeringar (gruppkonto) ','A','202','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1810','Aktier i börsnoterade bolag ','A','202','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1820','Obligationer ','A','203','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1830','Konvertibla skuldebrev ','A','203','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1880','Andra kortfristiga placeringar ','A','202','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1882','Egna aktier ','A','202','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1886','Aktier och andelar i koncernföretag ','A','202','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1889','Aktier och andelar i övriga företag ','A','202','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1890','Värdereglering av kortfristiga placeringar ','A','203','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('19','Kassa och Bank','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1900','Obsevationskonto ','A','200','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1910','Kassa ','A','200','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1911','Huvudkassa ','A','200','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1912','Kassa 2 ','A','200','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1913','Kassa 3 ','A','200','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1920','Postgiro ','A','200','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1921','Postgiro 1 ','A','200','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1922','Postgiro 2 ','A','200','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1930','Checkräkningskonto ','A','200','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1931','Checkräkningskonto 1 ','A','200','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1932','Checkräkningskonto 2 ','A','200','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1940','Bank och Övriga bankkonton ','A','200','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1941','Bankkonto 1 ','A','200','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1942','Bankkonto 2 ','A','200','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1950','Bankcertifikat ','A','200','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1960','Koncernkonto moderbolag ','A','200','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1970','Särskilda bankkonton ','A','200','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1971','Allmänt investeringskonto ','A','200','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1972','Upphovsmannakonto ','A','200','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1973','Skogskonto ','A','200','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1974','Spärrade bankmedel ','A','200','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1979','Övriga särskilda bankkonton ','A','200','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2','Eget kapital och skulder','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('20','Eget kapital ','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2010','Eget kapital - för enskild firma och delägare 1 i ett Handelsbolag ','A','360/370','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2011','Egna varuuttag ','A','362/364','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2012','Avräkning för skatter och avgifter - skattekontot ','A','362/365','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2013','Övriga egna uttag ','A','362/365','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2014','Upplupna egenavgifer och särskild löneskatt ','A','362/365','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2017','Årets kapitaltillskott ','A','363/366','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2018','Övriga egna insättningar ','A','363/367','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2019','Årets resultat - för enskild firma och delägare 1 i ett Handelsbolag ','A','368/369','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2020','Eget kapital - delägare 2 i ett Handelsbolag ','A','360','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2021','Egna varuuttag ','A','362','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2022','Avräkning för skatter och avgifter - skattekontot ','A','362','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2023','Övriga egna uttag ','A','362','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2024','Upplupna egenavgifter och särskild löneskatt ','A','362','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2027','Årets kapitaltillskott ','A','363','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2028','Övriga egna insättningar ','A','363','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2029','Årets resultat - delägare 2 ','A','368/369','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2030','Eget kapital - delägare 3 i ett Handelsbolag ','A','360','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2031','Egna varuuttag ','A','362','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2032','Avräkning för skatter och avgifter - skattekontot ','A','362','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2033','Övriga egna uttag ','A','362','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2034','Upplupna egenavgifer och särskild löneskatt ','A','362','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2037','Årets kapitaltillskott ','A','363','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2038','Övriga egna insättningar ','A','363','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2039','Årets resultat - delägare 3 ','A','363/369','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2050','Avsättning till expansionsmedel - för enskild firma och delägare 1 i ett Handelsbolag ','A','368/369','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2080','Bundet eget kapital - aktiebolag, ek,för och stiftelse ','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2081','Aktiekapital ','A','350','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2082','Ej registrerat aktiekapital ','A','350','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2083','Inbetalda insatser - stiftelsekapital i stiftelse ','A','350','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2084','Överkursfond ','A','351','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2085','Uppskrivningsfond ','A','352','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2086','Reservfond - värdesäkringsfond i stiftelse ','A','351','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2090','Fritt eget kapital ','A','354','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2091','Balanserad vinst eller förlust ','A','354','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2092','Erhållna/lämnade koncernbidrag ','A','354','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2093','Erhållna aktieägartillskott ','A','354','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2098','Vinst eller förlust från föregående år ','A','354','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2099','Årets resultat ','A','354','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('21','Obeskattade reserver ','H','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2115','Periodiseringsfond vid 1995 års taxering ','H','345/339','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2116','Periodiseringsfond vid 1996 års taxering ','H','346/339','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2117','Periodiseringsfond vid 1997 års taxering ','H','347/339','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2118','Periodiseringsfond vid 1998 års taxering ','H','348/339','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2119','Periodiseringsfond vid 1999 års taxering ','H','349/339','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2150','Ackumulerade överavskrivningar ','A','330','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2151','Ackumulerade överavskrivningar på immateriella anläggningtillgångar ','A','330','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2152','Ackumulerade överavskrivningar på byggnader och markanläggningar ','A','330','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2153','Ackumulerade överavskrivningar på maskiner och inventarier ','A','330','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2160','Ersättningsfond ','A','339','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2161','Ersättningsfond för inventarier ','A','339','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2162','Ersättningsfond för byggnader och markanläggningar ','A','339','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2163','Ersättningsfond för mark ','A','339','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2164','Ersättningsfond för djurlager i jordbruk och renskötsel ','A','339','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2170','Avsättningar till allmän investeringsreserv eller liknande ','A','339','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2171','Allmän investeringsreserv ','A','339','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2180','Obeskattade intäkter ','A','339','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2181','Obeskattade upphovsmannaintäkter ','A','339','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2185','Obeskattade skogsintäkter ','A','339','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2190','Övriga obeskattade reserver ','A','339','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2191','Skillnad mellan bokförd och faktisk pensionsskuld ','A','339','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2195','Valutakursreserv ','A','337','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2196','Lagerreserv ','A','339','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2197','Skatteutjämningsreserv - SURV ','A','339','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2199','Övriga obeskattade reserver ','A','339','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('22','Avsättningar','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2210','Avsättningar för pensioner ','A','320','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2211','Avsättningar för PRI-pensioner ','A','320','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2219','Avsättningar för övriga pensioner ','A','320','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2220','Avsättningar för garantier ','A','304','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2250','Avsättningar för skatter ','A','329/302','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2251','Avsättningar för beräknad latent skatt ','A','329/302','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2252','Avsättningar för tvistiga skatter ','A','329/303','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2259','Avsättningar för övriga skatter ','A','329/304','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2290','Övriga avsättningar ','A','302','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('23','Långfristiga skulder','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2310','Obligations- och förlagslån ','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2320','Konvertibla lån ','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2330','Checkräkningskredit ','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2331','Checkräkningskredit 1 ','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2332','Checkräkningskredit 2 ','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2333','Utnyttjad checkräkningskredit 1 ','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2334','Utnyttjad checkräkningskredit 2 ','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2335','Beviljad checkräkningskredit 1 ','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2336','Beviljad checkräkningskredit 2 ','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2340','Byggnadskreditiv ','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2350','Andra skulder till kreditinstitut ','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2351','Fastighetslån ','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2355','Lån i utländsk valuta från kreditinstitut ','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2359','Övriga långfristiga lån från kreditinstitut ','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2360','Skulder till koncernföretag ','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2361','Skulder till Moderföretag ','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2362','Skulder till dotterföretag ','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2363','Skulder till andra koncernföretag ','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2370','Skulder till intresseföretag ','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2390','Övriga långfristiga skulder ','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2391','Avbetalningskontrakt ','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2392','Villkorliga skulder ','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2393','Lån från närstående personer ','A','321','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2394','Långfristiga leverantörskrediter ','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2395','Andra lån i utländsk valuta ','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2397','Mottagna depositioner ','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2399','Övriga långfristiga skulder ','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('24','Kortfristiga skulder till kreditinstitut, kunder och leverantörer','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2410','Kortfristiga skulder till kreditinstitut ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2411','Kortfristiga lån från kreditinstitut ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2417','Kortfristig del av långfristiga skulder till kreditinstitut ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2418','Kortfristig del av checkräkningskredit ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2419','Övriga kortfristiga skulder till kreditinstitut ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2420','Förskott från kunder ','A','310','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2421','Ej inlösta presentkort ','A','310','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2429','Övriga förskott från kunder ','A','310','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2430','Pågående arbeten ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2431','Pågående arbeten, fakturering ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2435','Fakturerad men ej upparbetad intäkt ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2438','Pågående arbeten, nedlagda kostnader ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3439','Förändring av pågående arbeten ','A','319','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2440','Leverantörsskulder ','A','300','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2443','Konsignationsskulder ','A','300','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2445','Tvistiga leverantörsskulder ','A','300','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2448','Ej reskontraförda leverantörsskulder ','A','300','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2460','Leverantörsskulder till koncernföretag ','A','300','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2461','Leverantörsskulder till moderföretag ','A','300','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2462','Leverantörsskulder till dotterföretag ','A','300','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2463','Leverantörsskulder till andra koncernföretag ','A','300','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2470','Leverantörsskulder till intresseföretag ','A','300','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2490','Övriga kortfristiga skulder till kreditinstitut, kunder och leverantörer ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2491','Växelskulder ','A','300','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('25','Skatteskulder','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2510','Skatteskulder ','A','301','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2511','Debiterad kvarstående skatt ','A','301','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2512','Beräknad inkomstskatt ','A','301','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2513','Beräknad fastighetssskatt ','A','301','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2514','Beräknad särskild löneskatt på pensionskostnader ','A','301','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2515','Beräknad avkastningsskatt ','A','301','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2518','Betald preliminärskatt ','A','301','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('26','Moms och särskilda punktskatter','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2610','Utgående moms, 25% ','A','307','L','AR_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2611','Utgående moms på försäljning inom Sverige, 25% ','A','307','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2612','Utgående moms på egna uttag, 25% ','A','307','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2613','Utgående moms - uthyrningsverksamhet, 25% ','A','307','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2614','Beräknad utgående moms på tjänsteförvärv från utlandet, 25% ','A','307','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2615','Beräknad utgående moms på varuförvärv från annat EU-land, 25% ','A','307','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2618','Vilande utgående moms, 25% ','A','307','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2620','Utgående moms, 12% ','A','307','L','AR_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2621','Utgående moms på försäljning inom Sverige, 12% ','A','307','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2622','Utgående moms på egna uttag, 12% ','A','307','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2628','Vilande utgående moms, 12% ','A','307','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2630','Utgående moms, 6% ','A','307','L','AR_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2631','Utgående moms på försäljning inom Sverige, 6% ','A','307','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2632','Utgående moms på egna uttag, 6% ','A','307','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2638','Vilande utgående moms, 6% ','A','307','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2640','Ingående moms ','A','307','L','AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2641','Debiterad ingående moms ','A','307','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2642','Debiterad ingående moms i anslutning till frivillig skattskyldighet ','A','307','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2645','Beräknad ingående moms på förvärv från utlandet ','A','307','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2648','Vilande ingående moms ','A','307','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2649','Ingående moms - blandad verksamhet ','A','307','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2650','Redovisningskonto för moms - Momsredovisning ','A','307','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2660','Särskilda punktskatter ','A','301','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2661','Reklamskatt ','A','301','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2669','Övriga punktskatter ','A','301','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('27','Personalens skatter, avgifter och löneavdrag','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2710','Personalens källskatt ','A','301','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2711','Innehållen källskatt ','A','301','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2718','Betald källskatt ','A','301','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2730','Lagstadgade sociala avgifter och särskild löneskatt ','A','301','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2731','Avräkning lagstadgade sociala avgifter ','A','301','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2732','Avräkning särskild löneskatt ','A','301','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2738','Betalda lagstadgade sociala avgifter och särskild löneskatt ','A','301','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2740','Avtalade sociala avgifter ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2741','Avräkning avtalade sociala avgifter ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2748','Betalade avtalade sociala avgifter ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2750','Utmätning i lön ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2760','Semesterkassa ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2790','Övriga löneavdrag ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2791','Personalens intressekonto ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2792','Lönsparande ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2793','Gruppförsäkringspremier ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2794','Fackföreningsavgifter ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2795','Mätnings- och granskningsarvoden ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('28','Övriga kortfristiga skulder','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2810','Avräkning factoring ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2820','Skulder till anställda ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2821','Löneskulder ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2822','Reseräkningar ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2823','Tantiem, gratifikationer ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2830','Avräkning för belånade kontraktsfordringar ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2840','Kortfristiga låneskulder ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2841','Kortfristig del av långfristiga skulder ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2849','Övriga kortfristiga låneskulder ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2860','Skulder till koncernföretag ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2861','Skulder till moderföretag ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2862','Skulder till dotterföretag ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2863','Skulder till andra koncernföretag ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2870','Skulder till intresseföretag ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2890','Övriga kortfristiga skulder ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2891','Skulder under indrivning ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2893','Skulder till närstående personer ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2897','Mottagna depositioner ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2898','Outtagen vinstutdelning ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2899','Övriga kortfristiga skulder ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('29','Upplupna kostnader och förutbetalda intäkter','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2900','Upplupna kostnader och förutbetalda intäkter (gruppkonto) ','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2910','Upplupna löner ','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2911','Löneskulder ','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2912','Ackordsöverskott ','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2920','Upplupna semesterlöner ','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2921','Upplupna semesterlöner ','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2928','Betalda semesterlöner ','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2930','Upplupna pensionskostnader ','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2931','Upplupna pensionsutbetalningar ','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2940','Upplupna lagstadgade sociala och andra avgifter ','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2941','Beräknade upplupna lagstadgade sociala avgifter ','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2942','Beräknad upplupen löneskatt för löner ','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2943','Beräknad upplupen särskild löneskatt ','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2944','Beräknad upplupen avkastningsskatt på pensionskostnader ','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2950','Upplupna avtalade sociala avgifter ','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2960','Upplupna utgiftsräntor ','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2970','Förutbetalda hyresinkomster ','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2971','Förutbetalda arrendeinkomster ','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2972','Förutbetalda inkomsträntor ','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2980','Upplupna avtalskostnader ','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2990','Övriga upplupna kostnader och förutbetalda intäkter ','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2991','Beräknat arvode för bokslut ','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2992','Beräknat arvode för revision ','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3','Rörelsens inkomster/intäkter ','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('30','Huvudintäkter ','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3010','Försäljning eller arvoden/Utfört arbete ','A','400','I','AR_amount:IC_sale:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3040','Försäljning av tjänster ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3041','Försäljning av tjänster inom Sverige, moms 25% ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3042','Försäljning av tjänster inom Sverige, moms 12% ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3043','Försäljning av tjänster inom Sverige, moms 6% ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3044','Försäljning av tjänster inom Sverige, momsfri ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3045','Försäljning av tjänster till land utanför EU ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3046','Försäljning av tjänster till annat EU-land, moms 25% (ej VAT-nummer) ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3048','Försäljning av tjänster till annat EU-land, momsfri ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3050','Försäljning av varor ','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3051','Försäljning av varor inom Sverige, moms 25% ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3052','Försäljning av varor inom Sverige, moms 12% ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3053','Försäljning av varor inom Sverige, moms 6% ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3054','Försäljning av varor inom Sverige, momsfri ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3055','Försäljning av varor till land utanför EU ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3056','Försäljning av varor till annat EU-land, moms 25% (ej VAT-nummer) ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3057','Trepartsförsäljning av varor till annan EU-land, mellanman ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3058','Försäljning av varor till annat EU-land, momsfritt ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3060','Försäljning till närstående företag ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('31','Fri att använda till egna konton','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('32','Fri att använda till egna konton','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('33','Fri att använda till egna konton','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('34','Fri att använda till egna konton','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('35','Fakturerade kostnader ','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3510','Fakturerat emballage ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3518','Returnerat emballage ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3520','Fakturerade frakter ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3530','Fakturerade tull- och speditionskostnader m m ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3540','Faktureringsavgifter ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3550','Fakturerade resekostnader ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3560','Fakturerade kostnader till koncernföretag ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3590','Övriga fakturerade kostnader ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('36','Rörelsens sidointäkter ','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3600','Rörelsens sidointäkter (gruppkonto) ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3610','Försäljning av material ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3611','Försäljning av råmaterial ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3612','Försäljning av skrot ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3613','Försäljning av förbrukningsmaterial ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3619','Försäljning av övrigt material ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3620','Tillfällig uthyrning av personal ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3630','Tillfällig uthyrning av transportmedel ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3680','Management fees ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3690','Övriga sidointäkter ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('37','Intäktskorrigeringar ','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3700','Intäktskorrigeringar (gruppkonto) ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3710','Ofördelade intäktsreduktioner ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3730','Lämnade rabatter ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3731','Lämnade kassarabatter ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3732','Lämnade mängdrabatter - bonus ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3740','Öresutjämning ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3750','Fakturerade punktskatter ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3751','Fakturerade punktskatter - kreditkonto ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3752','Fakturerade punktskatter - debetkonto ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3790','Övriga intäktskorrigeringar ','A','400','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('38','Aktiverat arbete för egen räkning ','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3800','Aktiverat arbete för egen räkning (gruppkonto) ','A','402','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3840','Aktiverat arbete - material ','A','402','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3850','Aktiverat arbete - omkostnader ','A','402','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3870','Aktiverat arbete - löner ','A','402','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('39','Övriga rörelseintäkter ','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3900','Övriga rörelseintäkter (gruppkonto) ','A','401','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3910','Hyres- och arrendeintäkter ','A','401','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3911','Hyresintäkter ','A','401','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3912','Arrendeintäkter ','A','401','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3920','Provisionsintäkter, licensintäkter och royalties ','A','401','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3921','Provisionsintäkter ','A','401','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3922','Licensintäkter och royalties ','A','401','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3925','Franchiseintäkter ','A','401','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3950','Återvunna, tidigare avskrivna kundfordringar ','A','401','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3960','Valutakursvinster på fordringar och skulder av rörelsekaraktär ','A','401','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3970','Vinst vid avyttring av immateriella och immateriella anläggningstillgångar ','A','552','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3971','Vinst vid avyttring av immateriella anläggningstillgångar ','A','552','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3972','Vinst vid avyttring av byggnader och mark ','A','552','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3973','Vinst vid avyttring av maskiner och inventarier ','A','552','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3980','Erhållna bidrag ','A','401','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3981','Erhållna EU-bidrag ','A','401','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3985','Erhållna statliga bidrag ','A','401','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3987','Erhållna kommunala bidrag ','A','401','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3989','Övriga erhållna bidrag ','A','401','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3990','Övriga ersättningar och intäkter ','A','401','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3991','Konfliktersättning ','A','401','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3992','Erhållna skadestånd ','A','401','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3993','Erhållna donationer och gåvor ','A','401','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3994','Ofördelad försäkringsersättning ','A','401','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3995','Ersättning lånedatorer - nettolöneavdrag ','A','401','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3998','Sjukpenning ','A','401','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3999','Övriga rörelseintäkter ','A','401','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4','Utgifter/kostnader för varor, material och vissa köpta tjänster ','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('40','Inköp av varor och material','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4010','Inköp av varor och material inom Sverige ','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4050','Inköp av varor och material från utlandet ','A','500','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4051','Inköp av varor och material utanför EU ','A','500','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4055','Trepartsförvärv av varor från annat EU-land - mellanman ','A','500','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4056','Trepartsförvärv av varor från annat EU-land - moms 25% ','A','500','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4058','Trepartsförvärv av varor från annat EU-land - momsfri ','A','500','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4060','Inköp från närstående företag ','A','500','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('41 till 45','Fri till egna konton ','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('46','Legoarbeten - underentreprenader ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4600','Legoarbeten - underentreprenader (gruppkonto) ','A','501','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('47','Reduktion av inköpspriser ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4730','Reduktion av inköpspriser (gruppkonto) ','A','500','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4731','Erhållna kassarabatter ','A','500','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4732','Erhållna mängdrabatter - bonus ','A','500','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4790','Övriga reduktioner av inköpspriser ','A','500','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('48','Fri till egna konton ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('49','Lagerförändring, förändring av pågående arbeten samt garantiavsättningar ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4900','Förändring av lager (gruppkonto) ','A','509/510','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4910','Förändring av lager av råvaror ','A','500','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4920','Förändring av lager av tillsatsmaterial och fönödenheter ','A','500','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4930','Förändring av lager av halvfabrikat ','A','509/510','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4931','Förändring av lager av köpta halvfabrikat ','A','500','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4932','Förändring av lager av egentillverkade halvfabrikat ','A','509/509','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4940','Förändring av lager av produkter i arbete - PIA ','A','509/510','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4950','Förändring av lager av färdiga varor ','A','509/510','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4960','Förändring av lager av handelsvaror ','A','500','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4970','Förändring av pågående arbeten, nedlagda kostnader ','A','509/510','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4974','Förändring av pågående arbeten, material och utlägg ','A','509/510','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4975','Förändring av pågående arbeten, omkostnader ','A','509/510','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4977','Förändring av pågående arbeten, personalkostnader ','A','509/510','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4990','Förändring av lager och pågående arbeten (ofördelad) ','A','509/510','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5','Övriga externa rörelseutgifter/kostnader ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('50','Lokalkostnader','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5000','Lokalkostnader (gruppkonto) ','A','528','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5010','Lokalhyra ','A','528','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5011','Hyra av kontorslokaler ','A','528','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5012','Hyra för garage ','A','528','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5013','Hyra för lagerlokaler ','A','528','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5014','Hyra för P-plats ','A','528','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5015','Avgifter för bostadsrättsförening ','A','528','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5020','Elavgifter för belysning ','A','528','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5030','Värme ','A','528','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5040','Vatten och avlopp ','A','528','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5050','Lokaltillbehör ','A','528','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5060','Städning och renhållning ','A','528','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5061','Städning ','A','528','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5062','Sophämtning ','A','528','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5063','Hyra för sopcontainer ','A','528','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5064','Snöröjning ','A','528','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5065','Trädgårdsskötsel ','A','528','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5070','Reparation och underhåll av lokaler ','A','528','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5090','Övriga lokalkostnader ','A','528','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('51','Fastighetskostnader','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5100','Fastighetskostnader (gruppkonto) ','A','528','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5110','Tomträttsavgäld - arrende ','A','528','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5120','Elavgifter belysning ','A','528','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5130','Värme ','A','528','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5131','Uppvärmning ','A','528','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5132','Sotning ','A','528','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5140','Vatten och avlopp ','A','528','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5160','Städning och renhållning ','A','528','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5161','Städning ','A','528','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5162','Sophämtning ','A','528','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5163','Hyra för sopcontainer ','A','528','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5164','Snöröjning ','A','528','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5165','Trädgårdsskötsel ','A','528','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5170','Reparation och underhåll av fastighet ','A','526','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5190','Övriga fastighetskostnader ','A','528','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5191','Fastighetsskatt ','A','528','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5192','Fastighetsförsäkringspremier ','A','528','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5198','Övriga fatighetskostnader - ej avdragsgilla ','A','528','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5199','Övriga fatighetskostnader - avdragsgilla ','A','528','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('52','Hyra av anläggningstillgångar ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5200','Hyra av anläggningstillgångar (gruppkonto) ','A','529','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5210','Hyra av maskiner och andra tekniska anläggningar ','A','529','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5211','Korttidshyra av maskiner och tekniska anläggningar ','A','529','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5212','Leasing av maskiner och tekniska anläggningar ','A','529','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5220','Hyra av inventarier och verktyg ','A','529','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5221','Korttidshyra av inventarier och verktyg ','A','529','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5222','Leasing av inventarier och verktyg ','A','529','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5250','Hyra av datorer ','A','529','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5251','Korttidshyra av datorer ','A','529','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5252','Leasing av datorer ','A','529','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5290','Övriga hyreskostnader för anläggningstillgångar ','A','529','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('53','Energikostnader ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5300','Energikostnader (gruppkonto) ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5310','Elavgifter för drift ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5320','Gas ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5330','Eldningsolja ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5340','Stenkol och koks ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5350','Torv, träkol, ved och annat trädbränsle ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5360','Bensin, fotogen och motorbrännolja ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5370','Fjärrvärme, kyla och ånga ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5380','Vatten ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5390','Övriga energikostnader ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('54','Förbrukningsinventarier och förbrukningsmaterial ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5400','Förbrukningsinventarier och förbrukningsmaterial (gruppkonto) ','A','531','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5410','Förbrukningsinventarier ','A','531','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5420','Dataprogram ','A','531','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5430','Transportinventarier ','A','531','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5440','Förbrukningsemballage ','A','531','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5460','Förbrukningsmaterial ','A','531','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5480','Arbetskläder och skyddsmaterial ','A','531','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5490','Övriga förbrukningsinventarier och förbrukningsmaterial ','A','531','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('55','Reparation och underhåll ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5500','Reparation och underhåll (gruppkonto) ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5510','Reparation och underhåll av maskiner och tekniska anläggningar ','A','530','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5520','Reparation och underhåll av inventarier, verktyg och datorer mm. ','A','530','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5530','Reparation och underhåll av installationer ','A','530','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5550','Reparation och underhåll av förbrukningsinventarier ','A','530','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5580','Underhåll och tvätt av arbetskläder ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5590','Övriga kostnader för reparation och underhåll ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('56','Kostnader för transportmedel ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5600','Kostnader för transportmedel (gruppkonto) ','A','538','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5610','Personbilskostnad ','A','536','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5611','Drivmedel för personbilar ','A','536','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5612','Försäkring och skatt för personbilar ','A','536','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5613','Reparation och underhåll - personbilar ','A','536','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5615','Leasingavgifter för personbilar ','A','536','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5619','Övriga personbilskostnader ','A','536','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5620','Lastbilskostnad ','A','538','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5621','Drivmedel för lastbilar ','A','538','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5622','Försäkring och skatt för lastbilar ','A','538','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5623','Reparation och underhåll - lastbilar ','A','538','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5625','Leasingavgifter för lastbilar ','A','538','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5629','Övriga lastbilskostnader ','A','538','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5630','Truckkostnader ','A','538','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5650','Traktorkostnader ','A','538','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5660','Motorcykel-, moped- och skoterkostnader ','A','538','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5670','Båtkostnader ','A','538','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5680','Flygplans- och helikopterkostnader ','A','538','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5690','Övriga kostnader för transportmedel ','A','538','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('57','Frakter och transporter ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5700','Frakter och transporter (gruppkonto) ','A','538','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5710','Frakter, transporter och försäkringar vid varudistribution ','A','538','E','AP_amount:IC_expence');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5720','Tull- och speditionskostnader ','A','538','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5730','Arbetstransporter ','A','538','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('58','Resekostnader ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5800','Resekostnader (gruppkonto) ','A','538','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5810','Biljetter ','A','538','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5820','Hyrbilskostnader ','A','538','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5831','Kost och logi i Sverige ','A','538','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5832','Kost och logi i utlandet ','A','538','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5890','Övriga resekostnader ','A','538','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('59','Reklam och PR ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5900','Reklam och PR (gruppkonto) ','A','541','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5910','Annonsering ','A','541','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5920','Utomhus- och trafikreklam ','A','541','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5930','Reklamtrycksaker och direktreklam ','A','541','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5940','Utställningar och mässor ','A','541','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5950','Butiksreklam och återförsäljarreklam ','A','541','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5960','Varuprover, reklamgåvor, presentreklam och tävlingar ','A','541','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5970','Film-, radio- och TV-reklam ','A','541','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5980','PR, institutionell reklam och sponsring ','A','541','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5985','Hemsidor och övrig datareklam ','A','541','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5990','Övriga kostnader för reklam och PR ','A','541','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5998','Erhållna reklambidrag ','A','541','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6','Övriga externa rörelseutgifter/kostnader','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('60','Övriga försäljningskostnader ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6000','Övriga försäljningskostnader (gruppkonto) ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6010','Kataloger och prislistor ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6020','Egna facktidskrifter ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6030','Speciella orderkostnader ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6040','Kontokortsavgifter ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6050','Försäljningsprovisioner ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6055','Franchiseavgifter o ch dyl. ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6060','Kreditförsäljningskostnader ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6061','Kreditupplysning ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6062','Inkasso ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6070','Representation ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6071','Representation - avdragsgill ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6072','Representation - ej avdragsgill ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6080','Bankgarantiavgifter ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6090','Övriga försäljningskostnader ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('61','Kontorsmaterial och trycksaker','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6100','Kontorsmaterial och trycksaker (gruppkonto) ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6110','Kontorsmaterial ','A','530','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6150','Trycksaker ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('62','Tele och post ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6200','Tele och post (gruppkonto) ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6210','Telekommunikation ','A','530','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6211','Telefon ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6212','Mobiltelefon ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6213','Mobilsökning ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6214','Fax ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6215','Telex ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6217','Telefonkonsult ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6230','Datakommunikation ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6250','Postbefordran, d v s frimärken mm ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('63','Företagsförsäkringar och övriga riskkostnader ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6300','Företagsförsäkringar och övriga riskkostnader (gruppkonto) ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6310','Företagsförsäkringar ','A','530','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6320','Självrisker ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6330','Förluster i pågående arbeten ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6350','Förluster på kundfordringar ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6351','Konstaterade förluster på kundfordringar ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6352','Befarade förluster på kundfordringar ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6360','Garantikostnader ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6361','Förändring av garantiavsättning ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6362','Faktiska garantikostnader ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6370','Kostnader för bevakning och larm ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6380','Förluster på övriga kortfristiga fordringar ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6390','Övriga riskkostnader ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('64','Förvaltningskostnader ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6400','Förvaltningskostnader ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6410','Styrelsearvoden ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6420','Revisionsarvoden ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6430','Management fees ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6440','Årsredovisning och delårsrapporter ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6450','Bolagsstämma ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('65','Övriga externa tjänster ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6500','Övriga externa tjänster (gruppkonto) ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6510','Mätningstjänster ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6520','Ritnings- och kopieringskostnader ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6530','Redovisningstjänster ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6540','IT-tjänster ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6550','Konsultarvoden ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6560','Serviceavgifter till branschorganisationer ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6570','Bankkostnader ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6580','Advokat- och rättegångskostnader ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6590','Övriga externa tjänster ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('66','Fri till egna konton','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('67','Fri till egna konton','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('68','Inhyrd personal ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6800','Inhyrd personal (gruppkonto) ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6810','Inhyrs produktionspersonal ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6820','Inhyrd lagerpersonal ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6830','Inhyrd transportpersonal ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6840','Inhyrd kontors- och ekonomipersonal ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6850','Inhyrd IT-personal ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6860','Inhyrd marknads- och försäljningspersonal ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6870','Inhyrd restaurang- och butikspersonal ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6880','Inhyrd företagsledare ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6890','Övrig inhyrd personal ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('69','Övriga externa kostnader ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6900','Övriga externa kostnader (gruppkonto) ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6910','Licensavgifter och royalties ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6911','Stim- och Samiavgifter ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6920','Patenkostnader för egna patent ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6921','Uppfinningskostnader ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6930','Kostnader för varumärken mm ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6940','Kontroll-, provnings- och stämpelavgifter ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6941','Certifieringskostnader ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6950','Tillsynsavgifter myndigheter ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6951','Miljöavgifter ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6952','Förpackningsavgifter ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6960','Franchiseavgifter och dyl. ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6970','Tidningar, tidskrifter och facklitteratur ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6971','Tidningar och tidskrifter ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6972','Facklitteratur ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6980','Föreningsavgifter ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6981','Föreningsavgifter - avdragsgilla ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6982','Föreningsavgifter - ej avdragsgilla ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6990','Övriga externa kostnader ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6991','Övriga externa kostnader - avdragsgilla ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6992','Övriga externa kostnader - ej avdragsgilla ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6993','Lämnade bidrag och gåvor ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6995','Kostnadsräntor för skatter och sociala avgifter ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6998','Ingående moms - återbetalning ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6999','Ingående moms - blandad verksamhet ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7','Utgifter/kostnader för personal, avskrivningar m m ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('70','Löner till kollektivanställda','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7000','Löner till kollektivanställda (gruppkonto) ','A','512','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7010','Löner till kollektivanställda ','A','512','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7011','Löner till kollektivanställda ','A','512','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7012','Vinstandelar till kollektivanställda ','A','512','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7015','Löner till kollektivanställda - löneskatt ','A','512','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7016','Vinstandelar till kollektivanställda - löneskatt ','A','512','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7017','Avgångsvederlag till kollektivanställda ','A','512','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7018','Bruttolöneavdrag - kollektivanställda ','A','512','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7019','Upplupna löner och vinstandelar till kollektivanställda ','A','512','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7080','Löner till kollektivanställda för ej arbetad tid ','A','512','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7081','Sjuklöner till kollektivanställda ','A','512','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7082','Semesterlöner till kollektivanställda ','A','512','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7090','Förändring av semesterlöneskuld ','A','512','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('71','Fri till egna konton','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('72','Löner till tjänstemän och företagsledare ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7200','Löner till tjänstemän och företagsledare (gruppkonto) ','A','512','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7211','Löner till tjänstemän ','A','512','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7212','Vinstandelar till tjänstemän ','A','512','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7215','Löner till tjänstemän (löneskatt) ','A','512','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7216','Vinstandelar till tjänstemän (löneskatt) ','A','512','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7217','Avgångsvederlag till tjänstemän ','A','512','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7218','Bruttolöneavdrag - tjänstemän ','A','512','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7219','Upplupna löner och vinstandelar till tjänstemän ','A','512','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7220','Löner till företagsledare ','A','512','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7221','Löner till företagsledare ','A','512','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7222','Tantiem till företagsledare ','A','512','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7223','Gratifikationer till företagsledare ','A','512','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7227','Avgångsvederlag till företagsledare ','A','512','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7228','Bruttolöneavdrag - företagsledare ','A','512','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7229','Upplupna löner och vinstandelar till företagsledning ','A','512','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7280','Löner till tjänstemän och företagsledare för ej arbetad tid ','A','512','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7281','Sjuklöner till tjänstemän och företagsledare ','A','512','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7282','Semesterlöner till tjänstemän och företagsledare ','A','512','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7290','Förändring av semesterlöneskuld ','A','512','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('73','Kostnadsersättningar och förmåner ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7300','Kostnadsersättningar och förmåner (gruppkonto) ','A','514','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7310','Kontanta extraersättningar ','A','514','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7311','Ersättningar för sammanträden m m ','A','514','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7312','Ersättningar för förslagsverksamhet och uppfinningar ','A','514','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7313','Ersättningar för/bidrag till bostadskostnader ','A','514','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7314','Ersättningar för/bidrag till måltidskostnader ','A','514','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7315','Ersättningar för/bidrag till resor till och från arbetsplatsen ','A','514','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7316','Ersättningar för/bidrag till arbetskläder ','A','514','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7317','Ersättningar för/bidrag till arbetsmaterial och arbetsverktyg ','A','514','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7318','Felräkningspengar ','A','514','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7319','Övriga kontanta extraersättningar ','A','514','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7320','Traktamenten vid tjänsteresa ','A','514','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7321','Skattefria traktamenten - Sverige ','A','514','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7322','Skattepliktiga traktamenten - Sverige ','A','514','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7323','Skattefria traktamenten - utlandet ','A','514','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7324','Skattepliktiga traktamenten - utlandet ','A','514','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7330','Bilersättningar ','A','514','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7331','Bilersättningar - skattefria ','A','514','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7332','Bilersättningar - skattepliktiga ','A','514','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7350','Ersättningar för föreskrivna arbetskläder ','A','514','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7370','Representationserättningar ','A','514','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7380','Kostnader för förmåner till anställda ','A','514','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7381','Kostnader för fri bostad ','A','514','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7382','Kostnader för fria eller subventionerade måltider ','A','514','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7383','Kostnader för fria resor till och från arbetsplatsen ','A','514','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7384','Kostnader för fria eller subventionerade arbetskläder ','A','514','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7385','Kostnader för fri bil ','A','514','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7386','Subventionerad ränta ','A','514','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7387','Personalrabatter ','A','514','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7389','Övriga kostnader och förmåner ','A','514','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7390','Övriga kostnadsersättningar och förmåner ','A','514','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7398','Anställdas ersättning för förmåner - nettolöneavdrag ','A','514','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7399','Övriga kostnadsersättningar och förmåner ','A','514','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('74','Pensionskostnader ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7400','Pensionskostnader (gruppkonto) ','A','524','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7410','Pensionsförsäkringspremier ','A','524','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7411','Premier för kollektiva pensionsförsäkringar ','A','524/511','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7412','Premier för individuella pensionsförsäkringar ','A','524','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7420','Förändring av pensionsskuld ','A','524','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7430','Avdrag för räntedel i pensionskostnad ','A','524','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7440','Avsättning till pensionsstiftelse ','A','524','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7450','Avdrag för gottgörelse från pensionsstiftelse ','A','524','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7460','Pensionsutbetalningar ','A','524','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7461','Pensionsutbetalningar till f d kollektivanställda ','A','524','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7462','Pensionsutbetalningar till f d tjänstemän ','A','524','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7463','Pensionsutbetalningar till f d företagsledare ','A','524','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7470','Förvaltnings- och kreditförsäkringsavgifter ','A','524','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7490','Övriga pensionskostnader ','A','524','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('75','Sociala och andra avgifter enligt lag och avtal','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7500','Sociala och andra avgifter enligt lag och avtal (gruppkonto) ','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7510','Lagstadgade sociala avgifter ','A','520','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7511','Sociala avgifter för löner och ersättningar ','A','520','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7512','Sociala avgifter för förmånsvärden ','A','520','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7515','Sociala avgifter för skattepliktiga kostnadsersättningar ','A','520','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7516','Sociala avgifter på arvoden ','A','520','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7518','Sociala avgifter för bruttolöneavdrag m m ','A','520','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7519','Sociala avgifter för semester- och löneskuld ','A','520','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7520','Egenavgifter m m ','A','597','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7530','Löneskatt ','A','520','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7531','Löneskatt för löner och ersättningar ','A','520','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7532','Löneskatt för förmånsvärden ','A','520','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7533','Särskild löneskatt för pensionskostnader ','A','520','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7535','Löneskatt på skattepliktiga kostnadsersättningar ','A','520','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7536','Löneskatt på arvoden ','A','520','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7538','Löneskatt på bruttolöneavdrag ','A','520','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7550','Avkastningsskatt på pensionsmedel ','A','524','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7570','Premier för AMF-försäkring ','A','511','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7580','Gruppförsäkringspremier ','A','520/511','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7581','Grupplivförsäkringspremier ','A','520/511','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7582','Gruppsjukförsäkringspremier ','A','520','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7583','Gruppolycksfallsförsäkringspremier ','A','520','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7590','Övriga sociala och andra avgifter enligt lag och avtal ','A','520','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('76','Övriga personalkostnader ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7600','Övriga personalkostnader (gruppkonto) ','A','527','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7610','Utbildning ','A','527','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7620','Sjuk- och hälsovård ','A','527','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7621','Sjuk- och hälsovård - avdragsgill ','A','527','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7622','Sjuk- och hälsovård - ej avdragsgill ','A','527','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7630','Personalrepresentation ','A','527','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7631','Personalrepresentation - avdragsgill ','A','527','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7632','Personalrepresentation - ej avdragsgill ','A','527','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7650','Sjuklöneförsäkring ','A','527','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7670','Avsättning till personalstiftelse ','A','527','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7680','Gottgörelse från personalstiftelse ','A','527','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7690','Övriga personalkostnader och erhållna bidrag ','A','527','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7691','Personalrekrytering ','A','527','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7692','Begravningshjälp ','A','527','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7693','Fritidsverksamhet ','A','527','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7698','Erhållna bidrag och ersättningar för personal ','A','527','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7699','Övriga personalkostnader ','A','527','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('77','Nedskrivningar och återföring av nedskrivningar ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7710','Nedskrivningar av immateriella anläggningstillgångar ','A','553','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7720','Nedskrivningar av byggnader och mark ','A','553','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7730','Nedskrivningar av maskiner och inventarier ','A','553','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7740','Nedskrivningar av vissa omsättningstillgångar ','A','553','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7760','Återföring av nedskrivningar av immateriella anläggningstillgångar ','A','553','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7770','Återföring av nedskrivningar av byggnader och mark ','A','553/554','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7780','Återföring av nedskrivningar av maskiner och inventarier ','A','553/554','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7790','Återföring av nedskrivningar av vissa omsättningstillgångar ','A','553/554','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('78','Avskrivningar enligt plan ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7810','Avskrivningar på immateriella anläggningstillgångar ','A','561','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7811','Avskrivningar på balanserade utgifter ','A','561','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7812','Avskrivningar på koncessioner m m ','A','561','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7813','Avskrivningar på patent ','A','561','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7814','Avskrivningar på licenser ','A','561','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7815','Avskrivningar på varumärken ','A','561','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7816','Avskrivningar på hyresrätter ','A','561','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7817','Avskrivningar på goodwill ','A','561','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7819','Avskrivningar på övriga immateriella anläggningstillgångar ','A','561','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7820','Avskrivningar på byggnader och markanläggningar ','A','560','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7821','Avskrivningar på byggnader ','A','560','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7824','Avskrivningar på markanläggning ','A','560','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7829','Avskrivningar på övriga byggnader ','A','560','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7830','Avskrivningar på maskiner och inventarier ','A','559','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7831','Avskrivningar på maskiner och andra tekniska anläggningar ','A','559','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7832','Avskrivningar på inventarier och verktyg ','A','559','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7833','Avskrivningar på installationer ','A','559','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7834','Avskrivningar på bilar och andra transportmedel ','A','559','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7835','Avskrivningar på datorer ','A','559','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7836','Avskrivningar på leasingavtal ','A','559','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7839','Avskrivningar på övriga maskiner och inventarier ','A','559','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('79','Poster av engångskaraktär och övriga rörelsekostnader ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7910','Intäkter av engångskaraktär ','A','401','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7920','Kostnader av engångskaraktär ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7960','Valutakursförluster på fordringar och skulder av rörelsekaraktär ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7970','Förlust vid avyttring av immateriella och materiella anläggningstillgångar ','A','556','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7971','Förlust vid avyttring av immateriella anläggningstillgångar ','A','556','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7972','Förlust vid avyttring av byggnader och mark ','A','556','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7973','Förlust vid avyttring av maskiner och inventarier ','A','556','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7990','Övriga rörelsekostnader ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8','Finansiella och andra inkomster/intäkter och utgifter/kostnader ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('80','Resultat från aktier och andelar i koncernföretag','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8010','Utdelning på aktier och andelar i koncernföretag ','A','564','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8012','Utdelning på aktier och andelar i dotterföretag ','A','564','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8013','Utdelning på aktier och andelar i andra koncernföretag ','A','564','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8020','Resultat vid försäljning av aktier och andelar i koncernföretag ','A','550/551','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8022','Resultat vid försäljning av aktier och andelar i dotterföretag ','A','550/551','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8023','Resultat vid försäljning av aktier och andelar i andra koncernföretag ','A','550/551','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8070','Nedskrivning av andelar i och långfristiga fordringar hos koncernföretag ','A','553/570','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8072','Nedskrivning av aktier och andelar i dotterföretag ','A','570','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8073','Nedskrivning av aktier och andelar i andra koncernföretag ','A','570','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8076','Nedskrivning av långfristiga fordringar hos moderföretag ','A','570','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8077','Nedskrivning av långfristiga fordringar hos dotterföretag ','A','570','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8078','Nedskrivning av långfristiga fordringar hos andra koncernföretag ','A','570','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8080','Återföring av nedskrivning av andelar i och långfristiga fordringar hos koncernföretag ','A','571','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8082','Återföring av nedskrivning av aktier och andelar i dotterföretag ','A','571','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8083','Återföring av nedskrivning av aktier och andelar i andra koncernföretag ','A','571','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8086','Återföring av nedskrivning av långfristiga fordringar hos moderföretag ','A','571','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8087','Återföring av nedskrivning av långfristiga fordringar hos dotterföretag ','A','571','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8088','Återföring av nedskrivning av långfristiga fordringar hos andra koncernföretag ','A','571','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('81','Resultat från aktier och andelar i intresseföretag ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8110','Utdelning på aktier och andelar i intresseföretag ','A','564','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8120','Resultat vid försäljning av aktier och andelar i intresseföretag ','A','550/551','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8170','Nedskrivning av andelar i och långfristiga fordringar hos intresseföretag ','A','570','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8171','Nedskrivning av aktier och andelar i intresseföretag ','A','570','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8172','Nedskrivning av långfristiga fordringar hos intresseföretag ','A','570','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8180','Återföring av nedskrivning av andelar i och långfristiga fordringar hos intresseföretag ','A','570','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8181','Återföring av nedskrivning av aktier och andelar i intresseföretag ','A','570','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8182','Återföring av nedskrivning av långfristiga fordringar hos intresseföretag ','A','570','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('82','Resultat från övriga värdepapper och långfristiga fordringar (anläggningstillgångar) ','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8200','Ränteintäkter från anläggningstillgångar (gruppkonto) ','A','568','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8210','Utdelning på aktier och andelar i andra företag ','A','565','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8220','Resultat vid försäljning av värdepapper i och långfristiga fordringar hos andra företag ','A','550/551','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8221','Resultat vid försäljning av aktier och andelar i andra företag ','A','550/551','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8222','Resultat vid försäljning av långfristiga fordringar hos andra företag ','A','550/551','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8223','Resultat vid försäljning av övriga värdepapper i andra företag ','A','550/551','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8230','Valutakursdifferenser på långfristiga fordringar ','A','566','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8231','Valutakursvinster på långfristiga fordringar ','A','566','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8236','Valutakursförluster på långfristiga fordringar ','A','567','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8250','Ränteintäkter från långfristiga fordringar hos och värdepapper i andra företag ','A','568','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8251','Ränteintäkter från långfristiga fordringar ','A','568','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8252','Ränteintäkter från övriga värdepapper ','A','568','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8260','Ränteintäkter från långfristiga fordringar hos koncernföretag ','A','568','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8261','Ränteintäkter från långfristiga fordringar hos moderföretag ','A','568','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8262','Ränteintäkter från långfristiga fordringar hos dotterföretag ','A','568','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8263','Ränteintäkter från långfristiga fordringar hos andra koncernföretag ','A','568','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8270','Nedskrivningar av innehav av andelar i och långfristiga fordringar hos andra företag ','A','570','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8271','Nedskrivning av aktier och andelar i andra företag ','A','570','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8272','Nedskrivning av långfristiga fordringar hos andra företag ','A','570','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8273','Nedskrivning av övriga värdepapper hos andra företag ','A','570','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8280','Återföring av nedskrivning av andelar i och långfristiga fordringar hos andra företag ','A','571','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8281','Återföring av nedskrivning av aktier och andelar i andra företag ','A','571','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8282','Återföring av nedskrivning av långfristiga fordringar hos andra företag ','A','571','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8283','Återföring av nedskrivning av övriga värdepapper i andra företag ','A','571','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('83','Övriga ränteintäkter och liknande resultatposter ','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8300','Ränteintäkter från omsättningstillgångar (gruppkonto) ','A','568','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8310','Ränteintäkter från omsättningstillgångar ','A','568','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8311','Ränteintäkter från bank ','A','568','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8312','Ränteintäkter från kortsiktiga placeringar ','A','568','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8313','Ränteintäkter från kortsiktiga fordringar ','A','568','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8314','Skattefria ränteintäkter ','A','568','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8317','Ränteintäkter från dold räntekompensation ','A','568','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8319','Övriga ränteintäkter från omsättningstillgångar ','A','568','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8330','Valutakursvinster på kortfristiga fordringar och placeringar ','A','566','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8331','Valutakursvinster på kortfristiga fordringar och placeringar ','A','568','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8336','Valutakursförluster på kortfristiga fordringar och placeringar ','A','567','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8340','Utdelningar på kortfristiga placeringar ','A','568','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8350','Resultat vid försäljning av kortfristiga placeringar ','A','568','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8360','Övriga ränteintäkter från koncernföretag ','A','568','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8361','Övriga ränteintäkter från moderföretag ','A','568','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8362','Övriga ränteintäkter från dotterföretag ','A','568','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8363','Övriga ränteintäkter från andra koncernföretag ','A','568','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8370','Nedskrivning av kortfristiga placeringar ','A','569','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8380','Återföring av nedskrivning av kortfristiga placeringar ','A','568','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8390','Övriga finansiella intäkter ','A','568','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('84','Räntekostnader och liknande resultatposter ','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8400','Räntekostnader (gruppkonto) ','A','569','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8410','Räntekostnader för långfristiga skulder ','A','569','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8411','Räntekostnader för obligations-, förlags- och konvertibla lån ','A','569','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8412','Räntedel i årets pensionskostnad ','A','569','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8413','Räntekostnader för checkräkningskredit ','A','569','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8414','Räntekostnader för byggnadskreditiv ','A','569','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8415','Räntekostnader för andra skulder till kreditinstitut ','A','569','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8417','Räntekostnader för dold räntekompensation m m ','A','569','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8418','Avdragspost för räntesubventioner ','A','569','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8419','Övriga räntekostnader för långfristiga skulder ','A','569','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8420','Räntekostnader för kortfristiga skulder ','A','569','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8421','Räntekostnader till kreditinstitut ','A','569','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8422','Dröjsmålsräntor för leverantörsskulder ','A','569','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8423','Kostnadsräntor för skatter och avgifter - skattekonto ','A','569','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8429','Övriga räntekostnader för kortfristiga skulder ','A','569','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8430','Valutakursdifferenser på skulder ','A','566','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8431','Valutakursvinster på skulder ','A','566','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8436','Valutakursförluster på skulder ','A','567','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8440','Erhållna räntebidrag ','A','569','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8460','Räntekostnader till koncernföretag ','A','569','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8461','Räntekostnader till moderföretag ','A','569','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8462','Räntekostnader till dotterföretag ','A','569','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8463','Räntekostnader till andra koncernföretag ','A','569','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8480','Aktiverade räntekostnader ','A','569','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8490','Övriga finansiella kostnader ','A','569','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('85','Fri till egna konton','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('86','Fri till egna konton ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('87','Extraordinära intäkter och kostnader ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8710','Extraordinära intäkter ','A','401','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8750','Extraordinära kostnader ','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('88','Bokslutsdispositioner ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8810','Förändring av periodiseringsfond - enskild näringsidkare och delägare 1 i HB','A','586/589','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8811','Avsättning till periodiseringsfond ','A','586/594','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8819','Återföring från periodiseringsfond ','A','589/593','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8820','Förändring av periodiseringsfond - delägare 2 i HB','A','589/594','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8821','Avsättning till periodiseringsfond ','A','589/595','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8829','Återföring från periodiseringsfond ','A','589/596','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8830','Förändring av periodiseringsfond - delägare 3 i HB','A','589/597','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8831','Avsättning till periodiseringsfond ','A','589/598','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8839','Återföring från periodiseringsfond ','A','589/599','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8850','Skillnad mellan bokförda avskrivningar och avskrivningar enligt plan - överavskrivning ','A','578/590','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8851','Förändring av skillnad mellan bokförd och planenlig avskrivning - immateriella anläggningstillgångar ','A','578/590','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8852','Förändring av skillnad mellan bokförd och planenlig avskrivning - byggnader och markanläggningar ','A','578/590','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8853','Förändring av skillnad mellan bokförd och planenlig avskrivning - maskiner, inventarier och transportmedel ','A','578/590','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8860','Förändring av ersättningsfond ','A','593/594','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8861','Avsättning till ersättningsfond för inventarier','A','594','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8862','Avsättning till ersättningsfond för byggnader och markanläggningar','A','594','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8863','Avsättning till ersättningsfond för mark ','A','594','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8864','Avsättning till ersättningsfond för för djurlager i jordbruk och renskötsel ','A','594','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8865','Ianspråktagande av ersättningsfond för avskrivningar','A','593','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8866','Ianspråktagande av ersättningsfond för annat än avskrivningar ','A','593','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8869','Återföring från ersättningsfond ','A','593','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8870','Förändring av allmän investeringsreserv eller liknande','A','593','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8871','Ianspråktagande av allmän investeringsreserv eller liknande för avskrivningar ','A','593','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8872','Ianspråktagande av allmän investeringsreserv eller liknande för annat än avskrivningar ','A','593','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8873','Avskrivning av anläggningstillgångar med medel som tagits i anspråk frånallmän investeringsreserv eller liknande ','A','593','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8879','Återföring av allmän investeringsreserv eller liknande ','A','593','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8880','Förändring av obeskattade intäkter ','A','593/594','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8881','Avsättning till upphovsmannakonto','A','594','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8882','Återföring från upphovsmannakonto ','A','593','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8885','Avsättning till skogskonto ','A','594','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8886','Återföring till skogskonto','A','593','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8890','Övriga bokslutsdispositioner ','A','593/594','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8891','Förändring av skillnad mellan bokförd och faktisk pensionsskuld ','A','593/594','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8892','Nedskrivning av konsolideringskaraktär av anläggningstillgångar','A','594','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8895','Förändring av valutakursreserv ','A','593/594','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8896','Förändring av lagerreserv ','A','593','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8897','Återföring av skatteutjämningsreserv - SURV','A','591','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8899','Övriga bokslutsdispositioner ','A','593','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('89','Skatter och årets resultat ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8910','Skatt på årets beskattningsbara resultat','A','598','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8920','Skatt på grund av ändrad taxering ','A','598','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8930','Restituerad skatt ','A','598','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8940','Latent skatt','A','598','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8980','Övriga skatter ','A','598','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8990','Resultat ','A','599/596','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8999','Årets resultat','A','599/596','E','');
+--
+insert into tax (chart_id,rate) values ((select id from chart where accno = '2610'),0.25);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '2620'),0.12);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '2630'),0.06);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '2640'),0);
+--
+update defaults set inventory_accno_id = (select id from chart where accno ='1400'), income_accno_id = (select id from chart where accno = '3010'), expense_accno_id = (select id from chart where accno = '4010'), fxgain_accno_id = (select id from chart where accno = '3960'), fxloss_accno_id = (select id from chart where accno = '7960'), curr = 'SEK:EUR:USD', weightunit = 'kg';
+
diff --git a/sql/Sweden-gifi.sql b/sql/Sweden-gifi.sql
new file mode 100755
index 00000000..beba96da
--- /dev/null
+++ b/sql/Sweden-gifi.sql
@@ -0,0 +1,99 @@
+-- Swedish-gifi.sql
+INSERT INTO gifi (accno,description) VALUES ('200','Kassa och bank ');
+INSERT INTO gifi (accno,description) VALUES ('202','Aktier och andelar ');
+INSERT INTO gifi (accno,description) VALUES ('203','Övriga kortfristiga placeringar');
+INSERT INTO gifi (accno,description) VALUES ('204','Kundfordringar');
+INSERT INTO gifi (accno,description) VALUES ('205','Förutbetalda kostnader och upplupna intäkter');
+INSERT INTO gifi (accno,description) VALUES ('206','Övriga skattefordringar');
+INSERT INTO gifi (accno,description) VALUES ('207','Momsfordran');
+INSERT INTO gifi (accno,description) VALUES ('219','Varulager och pågående arbeten');
+INSERT INTO gifi (accno,description) VALUES ('220','Övriga kortfristiga fordringar');
+INSERT INTO gifi (accno,description) VALUES ('230','Aktier och andelar i svenska koncern- och intresseföretag ');
+INSERT INTO gifi (accno,description) VALUES ('231','Aktier och andelar i utländska koncern- och intresseföretag');
+INSERT INTO gifi (accno,description) VALUES ('233','Finansiella anläggningstillgångar');
+INSERT INTO gifi (accno,description) VALUES ('234','Immateriella anläggningstillgångar');
+INSERT INTO gifi (accno,description) VALUES ('235','Mark och andra tillgångar som inte är avskrivningsbara (skattemässigt)');
+INSERT INTO gifi (accno,description) VALUES ('236','Maskiner och inventarier');
+INSERT INTO gifi (accno,description) VALUES ('237','Byggnader och övrig fast egendom');
+INSERT INTO gifi (accno,description) VALUES ('241','Fordringar på koncern- och intresseföretag');
+INSERT INTO gifi (accno,description) VALUES ('299','Summa tillgångar');
+INSERT INTO gifi (accno,description) VALUES ('300','Leverantörsskulder');
+INSERT INTO gifi (accno,description) VALUES ('301','Övriga skatteskulder');
+INSERT INTO gifi (accno,description) VALUES ('302','Övriga avsättningar');
+INSERT INTO gifi (accno,description) VALUES ('304','Avsättningar för garantier');
+INSERT INTO gifi (accno,description) VALUES ('305','Upplupna kostnader och förutbetalda intäkter');
+INSERT INTO gifi (accno,description) VALUES ('307','Momsskuld');
+INSERT INTO gifi (accno,description) VALUES ('310','Förskott från kunder');
+INSERT INTO gifi (accno,description) VALUES ('319','Övriga kortfristiga skulder');
+INSERT INTO gifi (accno,description) VALUES ('320','Avsättningar för pensioner');
+INSERT INTO gifi (accno,description) VALUES ('321','Lån från aktieägare (lång- och kortfristiga)');
+INSERT INTO gifi (accno,description) VALUES ('329','Långfristiga skulder');
+INSERT INTO gifi (accno,description) VALUES ('330','Ackumulerade överavskrivningar');
+INSERT INTO gifi (accno,description) VALUES ('339','Övriga obeskattade reserver ');
+INSERT INTO gifi (accno,description) VALUES ('340','Periodiseringsfond vid 2000 års taxering');
+INSERT INTO gifi (accno,description) VALUES ('341','Periodiseringsfond vid 2001 års taxering');
+INSERT INTO gifi (accno,description) VALUES ('343','Periodiseringsfond vid 2003 års taxering');
+INSERT INTO gifi (accno,description) VALUES ('344','Periodiseringsfond vid 2004 års taxering');
+INSERT INTO gifi (accno,description) VALUES ('345','Periodiseringsfond vid 2005 års taxering');
+INSERT INTO gifi (accno,description) VALUES ('342','Periodiseringsfond vid 2002 års taxering');
+INSERT INTO gifi (accno,description) VALUES ('350','Aktiekapital/Insatskapital');
+INSERT INTO gifi (accno,description) VALUES ('351','Övrigt bundet eget kapital');
+INSERT INTO gifi (accno,description) VALUES ('354','Fritt eget kapital');
+INSERT INTO gifi (accno,description) VALUES ('360','Ingående kapital (vid kapitalbrist anges minus)');
+INSERT INTO gifi (accno,description) VALUES ('362','Delägarnas uttag');
+INSERT INTO gifi (accno,description) VALUES ('363','Delägarnas tillskott');
+INSERT INTO gifi (accno,description) VALUES ('364','Kontanta uttag');
+INSERT INTO gifi (accno,description) VALUES ('365','Övriga uttag');
+INSERT INTO gifi (accno,description) VALUES ('366','Kontanta tillskott');
+INSERT INTO gifi (accno,description) VALUES ('367','Övriga tillskott');
+INSERT INTO gifi (accno,description) VALUES ('368','Årets redovisade vinst');
+INSERT INTO gifi (accno,description) VALUES ('369','Årets redovisade förlust');
+INSERT INTO gifi (accno,description) VALUES ('370','Utgående kapital');
+INSERT INTO gifi (accno,description) VALUES ('399','Summa eget kapital och skulder');
+INSERT INTO gifi (accno,description) VALUES ('400','Rörelsens huvudintäkter (nettoomsättning)');
+INSERT INTO gifi (accno,description) VALUES ('401','Övriga rörelseintäkter');
+INSERT INTO gifi (accno,description) VALUES ('402','Aktiverat arbete för egen räkning');
+INSERT INTO gifi (accno,description) VALUES ('500','Handelsvaror inkl. lagerförändring, råvaror, material m.m.');
+INSERT INTO gifi (accno,description) VALUES ('501','Legoarbeten och underentreprenörer');
+INSERT INTO gifi (accno,description) VALUES ('509','Förändring av lager (inte handelsvaror) och pågående arbeten (ökning)');
+INSERT INTO gifi (accno,description) VALUES ('510','Förändring av lager (inte handelsvaror) och pågående arbeten (minskning)');
+INSERT INTO gifi (accno,description) VALUES ('511','AMF-avgifter ');
+INSERT INTO gifi (accno,description) VALUES ('512','Löner och andra ersättningar');
+INSERT INTO gifi (accno,description) VALUES ('514','Kostnadsersättningar och kostnader för förmåner till anställda');
+INSERT INTO gifi (accno,description) VALUES ('520','Övriga sociala avgifter');
+INSERT INTO gifi (accno,description) VALUES ('524','Pensionskostnader (inklusive ITP-avgifter)');
+INSERT INTO gifi (accno,description) VALUES ('526','Reparation och underhåll av fastighet');
+INSERT INTO gifi (accno,description) VALUES ('527','Övriga personalkostnader');
+INSERT INTO gifi (accno,description) VALUES ('528','Övriga lokal- och fastighetskostnader');
+INSERT INTO gifi (accno,description) VALUES ('529','Hyra av anläggningstillgångar');
+INSERT INTO gifi (accno,description) VALUES ('530','Övriga kostnader');
+INSERT INTO gifi (accno,description) VALUES ('531','Förbrukningsinventarier');
+INSERT INTO gifi (accno,description) VALUES ('536','Bilkostnader (inkl. billeasing)');
+INSERT INTO gifi (accno,description) VALUES ('538','Övriga transportmedels- kostnader och rese- kostnader ');
+INSERT INTO gifi (accno,description) VALUES ('541','Reklam och PR');
+INSERT INTO gifi (accno,description) VALUES ('550','Vinst vid avyttring av värdepapper ');
+INSERT INTO gifi (accno,description) VALUES ('551','Förlust vid avyttring av värdepapper');
+INSERT INTO gifi (accno,description) VALUES ('552','Vinst vid avyttring av anläggningstillgångar (ej finansiella) ');
+INSERT INTO gifi (accno,description) VALUES ('553','Nedskrivning av anläggningstillgångar (ej finansiella)');
+INSERT INTO gifi (accno,description) VALUES ('554','Återföring av nedskrivning av anläggningstillgångar (ej finansiella)');
+INSERT INTO gifi (accno,description) VALUES ('556','Förlust vid avyttring av anläggningstillgångar (ej finansiella)');
+INSERT INTO gifi (accno,description) VALUES ('559','Maskiner och inventarier');
+INSERT INTO gifi (accno,description) VALUES ('560','Byggnader och övrig fast egendom');
+INSERT INTO gifi (accno,description) VALUES ('561','Immateriella anläggningstillgångar');
+INSERT INTO gifi (accno,description) VALUES ('564','Utdelning på aktier och andelar i koncern- och intresseföretag');
+INSERT INTO gifi (accno,description) VALUES ('565','Utdelning på aktier och andelar i övriga företag');
+INSERT INTO gifi (accno,description) VALUES ('566','Valutakursvinster');
+INSERT INTO gifi (accno,description) VALUES ('567','Valutakursförluster');
+INSERT INTO gifi (accno,description) VALUES ('568','Ränteintäkter m.m.');
+INSERT INTO gifi (accno,description) VALUES ('569','Räntekostnader m.m.');
+INSERT INTO gifi (accno,description) VALUES ('570','Nedskrivning av finansiella tillgångar');
+INSERT INTO gifi (accno,description) VALUES ('571','Återföring av nedskrivning av finansiella tillgångar');
+INSERT INTO gifi (accno,description) VALUES ('578','Bokförd avskrivning utöver plan ');
+INSERT INTO gifi (accno,description) VALUES ('586','Avsättning till periodiseringsfond ');
+INSERT INTO gifi (accno,description) VALUES ('589','Återföring från periodiseringsfond ');
+INSERT INTO gifi (accno,description) VALUES ('590','Upplösning av ackumulerade överavskrivningar');
+INSERT INTO gifi (accno,description) VALUES ('593','Övriga tillkommande bokslutsdispositioner m.m. ');
+INSERT INTO gifi (accno,description) VALUES ('594','Övriga avgående bokslutsdispositioner m.m.');
+INSERT INTO gifi (accno,description) VALUES ('596','Redovisad förlust enligt bokföringen');
+INSERT INTO gifi (accno,description) VALUES ('598','Skatter');
+INSERT INTO gifi (accno,description) VALUES ('599','Redovisad vinst enligt bokföringen');
diff --git a/sql/Sweden_Agriculture-chart.sql b/sql/Sweden_Agriculture-chart.sql
new file mode 100755
index 00000000..96dbc866
--- /dev/null
+++ b/sql/Sweden_Agriculture-chart.sql
@@ -0,0 +1,1301 @@
+-- COA for Agriculture
+-- Johan Hambraeus
+-- May 7, 2006
+--
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('075','Observationskonton','H','','','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0750','Uttagna förmåner ','A','','L','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0751','Bostadsförmåner ','A','','A','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0752','Kostförmåner ','A','','A','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0753','Fria resor tor arbete','A','','A','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0754','Fria arbetsresor ','A','','A','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0755','Bilförmån ','A','','A','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0756','Rtaförmån ','A','','A','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0759','Övr.förmåner ','A','','A','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1','Tillgångar ','H','','','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('10','Immater. anl.tillg','H','','','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1010','Balanserade utg','A','234','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1011','Bal.utg forskn/utv','A','234','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1012','Bal.utg dataprogram','A','234','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1019','Ack avskr bal.utg','A','234','C','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1020','Koncessioner m m ','A','234','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1029','Ack avskr koncess.','A','234','C','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1030','Patent ','A','234','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1039','Ack avskr på patent','A','234','C','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1040','Licenser ','A','234','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1049','Ack avskr licenser','A','234','C','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1050','Varumärken ','A','234','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1059','Ack avskr varumärken','A','234','C','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1060','Hyresrätter ','A','234','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1069','Ack avskr hyresr.','A','234','C','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1070','Goodwill ','A','234','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1079','Ack avskr på goodw.','A','234','C','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1080','Påg proj o försk','A','234','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1081','Påg f imm anl.tillg','A','234','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1088','Försk imm anl.tillg','A','234','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1090','Övr imm anl.tillg','A','234','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1099','Ack avskr ö im.an.t','A','234','C','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('11','Byggnader och mark','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1110','Byggnader','A','237','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1111','Byggnader egen mark','A','237','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1112','Byggnader ofri grund','A','237','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1119','Ack avskr byggnader','A','237','C','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1130','Mark','A','237','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1140','Tomter/obeb.mark','A','237','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1150','Markanläggning','A','237','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1159','Ack avskr markanl','A','237','C','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1180','Påg nyanl/förs byg/m','A','237','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1181','Pågående nybyggnad','A','237','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1182','Pågående tillbyggn','A','237','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1183','Pågående ombyggnad','A','237','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1188','Försk byggn/mark','A','237','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1190','Övr byggn/mark','A','237','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1199','Ack avskr övr.byggn','A','237','C','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('12','Maskiner och inv ','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1200','Maskiner och inv','A','236','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1209','Ack av. mask o inv','A','236','C','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1210','Mask.tekn.anläggnin','A','236','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1211','Maskiner','A','236','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1212','Byggnadsinventarier','A','236','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1213','Andra tekn anl','A','236','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1219','Ack avs mask/t.anl','A','236','C','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1220','Inv och verktyg','A','236','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1229','Ack avskr inv verkt','A','236','C','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1230','Installationer','A','236','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1231','Install.eg fastigh','A','236','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1232','Inst. annans fast','A','236','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1233','Förb.utg. an.fast','A','236','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1239','Ack avs install','A','236','C','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1240','Bilar o a trsp','A','236','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1249','Ack av bilar/trsp','A','236','C','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1250','Datorer','A','236','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1251','Datorer - företaget','A','236','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1257','Datorer - personal','A','236','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1259','Ack avskr datorer','A','236','C','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1260','Leasingavtal','A','236','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1269','Ack avs leasingavt','A','236','C','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1270','Anläggningsdjur','A','236','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1279','Ack avskr anl.djur','A','236','C','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1280','Påg nyanl o försk','A','236','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1281','Påg nyanläggningar','A','236','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1288','Förskott mask.o inv','A','236','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1290','Övr mask. o inv','A','236','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1291','Konst och likn','A','236','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1292','Inv.i annans fastig','A','236','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1299','Ack avs övr ma./inv','A','236','C','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('13','Finansiella anl.tillg','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1310','Akt/andel koncernf.','A','230','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1311','Akt/and sv.do.för.','A','230','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1312','Akt/and utl.do.för','A','231','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1313','Akt öv.sv.konc.för','A','230','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1314','Akt öv.utl.kon.för','A','231','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1319','Värderegl akt/and','A','230','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1320','Långfr fordr ko.f.','A','241/233','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1321','Fordr moderföretag','A','241/234','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1322','Fordr dotterföretag','A','241/235','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1323','Fordr andra kon.för','A','241/236','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1329','Värderegl långf.ford','A','241/233','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1330','Akt/and intresseför','A','230','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1339','Värderegl akt/an i.f','A','230','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1340','Långfr ford intr.för','A','241/233','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1349','Värderegl l.fr.fordr','A','241/233','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1350','Akt/and/värdep öv.f','A','233/230','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1351','Aktier börsn. bolag','A','233/230','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1352','Övr aktier och andel','A','233/230','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1353','Andel bostadsrättsf','A','233','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1354','Obligationer','A','233','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1359','Värderegl öv.akt mm','A','233/230','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1380','Andra långfr fordr','A','233','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1381','Reversfordringar','A','233','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1382','Fordr hos anställda','A','233','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1383','Lämnade depositioner','A','233','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1384','Lån t närståen.pers','A','233','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1385','Värde av kap.försäk','A','233','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1386','Förutbet leasingavg','A','233','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1387','Långfr kontraktsfor','A','233','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1388','Olika långfr fordr','A','233','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1389','Värderegl långfr.f','A','233','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1390','Värder.värdep/l.fr.f','A','233','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('14','Lager och påg arb','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1400','Lager','A','219','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1401','Inneliggande lager','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1402','Varor på väg ','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1403','Konsignationslager','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1404','Lager av värdepapper','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1409','För. av lager','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1410','Lag råvaror (förråd)','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1419','För. lag råvaror','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1420','Lager tills/förnöd','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1429','För lager t/förnöd','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1430','Lager halvfabrikat','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1431','Lager köpt halvfab','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1432','Lager egentillv.h.f','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1439','För. lag halvfab','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1440','Prod i arb - (PIA)','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1449','För. PIA','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1450','Lager färdiga varor','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1459','För. lager färd.v','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1460','Lager - Varulager','A','219','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1469','För. Varulager','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1470','Pågående arbeten','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1471','Påg arb, nedl.kostn','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1472','Oms.fastigheter ','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1478','Påg.arb, fakturering','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1479','För. påg.arb','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1480','Försk.varor tjänst','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1481','Remburs ','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1489','Övr.försk leverant','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1490','För. lag.påg.arb','A','219','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('15','Kundfordringar','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1500','Kundfordringar','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1510','Kundfordringar','A','204','A','AR');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1512','Belånade kundfordr','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1515','Osäkra kundfordr','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1516','Tvistiga kundfordr','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1518','Ej reskontra kundf','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1519','Värderegl kundfordr','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1520','Växelfordr.','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1525','Osäkra växelfordr','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1529','Värder. osäk.växelf','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1530','Kontraktsfordringar','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1540','Belånade kontraktsf','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1541','Belånade kontraktsf','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1545','Osäkra kontraktsfor','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1550','Konsignationsfordr','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1560','Kundfordr koncernf','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1561','Kundfordr moderför','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1562','Kundfordr do.för.','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1563','Kundfordr öv.kon.f','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1569','Värderegl kundf.k.f','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1570','Kundfordr intr.för','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1575','Osäk kundf intr.f','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1579','Värderegl kundf','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1580','Kontokort och kup.','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1590','Värderegl kundfordr','A','204','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('16','Övr.kortfristiga fordringar','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1600','Övr kortfr fordr','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1610','Fordr anställda ','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1611','Reseförskott ','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1612','Kassaföskott ','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1613','Övr.förskott','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1614','Tillf. lån t.anst','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1619','Övr fordr anst','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1630','Skattekontot ','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1640','Skattefordringar','A','206','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1650','Momsfordringar','A','207','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1660','Fordr konc.för','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1661','Fordr moderför','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1662','Fordr dotterför','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1663','Fordr andra konc.f','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1670','Fordr intresseför','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1680','Andra kortfr fordr','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1681','Utlägg för kunder','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1682','Kortfr lånefordr','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1683','Fordr ej inb.akt.kap','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1684','Fordr hos leverant','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1685','Fordr närst. pers','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1686','Upparb ej fakt.int','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1687','Kortfr del l.fr.for','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1689','Övr kortfr fordr','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1690','Värderegl kortfr fordr','A','220','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('17','Förutbetalda kostn och upplupna int.','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1700','Förutb kost uppl int','A','205','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1710','Förutb hyresutg','A','205','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1711','Förutb arrendeutg','A','205','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1720','Förutb leasingavg','A','205','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1730','Förutb förs.prem','A','205','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1740','Förutb ränteutg','A','205','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1750','Upplupna hyresink','A','205','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1760','Upplupna ink.ränt','A','205','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1770','Tillg av kostn.natur','A','205','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1780','Upplupna avtalsink','A','205','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1790','Övr förutb.ko up.in','A','205','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('18','Kortfristiga placeringar','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1800','Kortfr placeringar','A','202','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1810','Aktier i börsnot bol','A','202','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1820','Obligationer ','A','203','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1830','Konvert skuldebrev','A','203','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1880','Öv kortfr placering','A','202','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1882','Egna aktier ','A','202','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1886','Aktier i koncernf','A','202','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1889','Aktier i övr för','A','202','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1890','Värdere. kortfr.plac','A','203','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('19','Kassa och Bank','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1900','Observationskonto','A','200','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1910','Kassa ','A','200','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1920','Plusgiro ','A','200','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1930','Checkräkningskonto','A','200','A','AR_paid:AP_paid:pg_accno:bg_accno');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1940','Bank och Övr bankkon','A','200','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1950','Bankcertifikat ','A','200','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1960','Koncernkont moderbol','A','200','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1970','Särskilda bankkonton','A','200','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1971','Allmänt invest.konto','A','200','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1972','Upphovsmannakonto ','A','200','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1973','Skogskonto ','A','200','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1974','Spärrade bankmedel ','A','200','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1979','Övr särsk bankkonton','A','200','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2','Eget kapital och skulder','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('20','Eget kapital ','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2010','Eg kap ensk/deläg HB','A','360/370','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2011','Egna varuuttag ','A','362/364','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2012','skattekontot deläg 1','A','362/365','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2013','Övr.egna uttag ','A','362/365','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2014','Uppl e-avg.särs.l.sk','A','362/365','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2017','Årets kap.tillskott','A','363/366','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2018','Övr.egna insättn','A','363/367','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2019','Årets res deläg 1 HB','A','368/369','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2020','Eget kap deläg 2 HB','A','360','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2021','Egna varuuttag ','A','362','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2022','skattekontot deläg 2','A','362','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2023','Övr.egna uttag ','A','362','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2024','Uppl egavg s.l.sk','A','362','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2027','Årets kap.tillskott','A','363','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2028','Övr.egna insättn','A','363','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2029','Årets res deläg 2 HB','A','368/369','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2030','Eget kap deläg 3 HB','A','360','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2031','Egna varuuttag ','A','362','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2032','skattekontot deläg 3','A','362','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2033','Övr.egna uttag ','A','362','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2034','Uppl egavg s.l.sk','A','362','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2037','Årets kap.tillsk','A','363','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2038','Övr egna insättning','A','363','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2039','Årets res deläg 3','A','363/369','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2050','Avs expan.m ensk/HB1','A','368/369','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2080','Bundet eg kapital','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2081','Aktiekapital ','A','350','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2082','Ej reg aktiekapital ','A','350','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2083','Inb.insats/stift.kap','A','350','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2084','Överkursfond ','A','351','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2085','Uppskrivningsfond ','A','352','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2086','Res.f./v-säk.f stift','A','351','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2090','Fritt eget kapital ','A','354','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2091','Bal. vinst/förl','A','354','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2092','Erh/lämn koncernbidr','A','354','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2093','Erh aktieägtillsk','A','354','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2098','Vinst/förl föreg år','A','354','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2099','Årets resultat ','A','354','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('21','Obeskattade reserver ','H','','','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2115','Per.fond 1995års tax','A','345/339','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2150','Ack överavskr ','A','330','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2151','Ack ö-a im.anl.tillg','A','330','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2152','Ack ö-a byggn markan','A','330','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2153','Ack ö-a maskin o inv','A','330','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2160','Ersättningsfond ','A','339','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2161','Ers.fond för inv','A','339','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2162','Ers.f byg.markanl','A','339','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2163','Ers.fond för mark','A','339','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2164','Ers.fond djurlager','A','339','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2170','Avs allm inv.res.','A','339','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2171','Allmän inv.res','A','339','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2180','Obesk int. ','A','339','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2181','Obesk upphovsm.int','A','339','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2185','Obesk skogsint','A','339','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2190','Övr obesk res','A','339','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2191','Sk bokf/fakt pens.sk','A','339','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2195','Valutakursreserv ','A','337','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2196','Lagerreserv ','A','339','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2197','Skatteutj.SURV','A','339','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2199','Övr.obesk res','A','339','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('22','Avs.ar','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2210','Avs.ar pens','A','320','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2211','Avs. PRI-pens','A','320','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2219','Avs. övr pens','A','320','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2220','Avs garantier ','A','304','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2250','Avs för skatter ','A','329/302','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2251','Avs beräkn lat skatt','A','329/302','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2252','Avs tvistiga skatt','A','329/303','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2259','Avs övr skatter','A','329/304','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2290','Övr avsättningar ','A','302','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('23','Långfristiga skulder','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2310','Oblig- och förl.lån','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2320','Konvertibla lån ','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2330','Checkräkningskredit','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2331','Checkräkn.kredit 1 ','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2332','Checkräkn.kredit 2 ','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2333','Utnyttj. ch.r.kred 1','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2334','Utnyttj. ch.r.kred 2','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2335','Bevilj checkr.kred 1','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2336','Bevilj checkr.kred 2','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2340','Byggn.kreditiv ','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2350','Andr skuld kred.inst','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2351','Fastighetslån ','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2355','Lån i utl valuta','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2359','Övr.långfr lån','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2360','Skulder t konc.för','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2361','Skulder t Mod.för','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2362','Skulder t.do.för','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2363','Skulder t övr konc.f','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2370','Skulder t intr.för','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2390','Övr.långfr skuld','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2391','Avbetalningskontrakt','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2392','Villkorliga skulder','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2393','Lån från närst pers','A','321','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2394','Långfr lev.kred','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2395','Andra lån utl.valuta','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2397','Mottagn depos.','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2399','Övr.långfr sk','A','329','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('24','Kortfristiga skulder t.kreditinstitut, kunder och leverantörer','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2410','Kortfristiga skulder','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2411','Kortfr lån f kr.inst','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2417','K-fr de l-fr sk kr.i','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2418','K-fr del checkr.kred','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2419','Övr kortfr t kred.in','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2420','Förskott från kunder','A','310','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2421','Ej inlös presentkort','A','310','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2429','Övr försk fr kunder','A','310','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2430','Pågående arbeten ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2431','Påg arb, fakturering','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2435','Fakt ej upparb int','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2438','Påg arb, nedl kostn','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3439','För. av påg arb','A','319','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2440','Leverantörsskulder ','A','300','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2443','Konsignationsskulder','A','300','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2445','Tvistiga lev.skulder ','A','300','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2448','Ej r-kont.lev.skuld','A','300','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2460','Lev.sk koncernför','A','300','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2461','Lev.sk moderföretag','A','300','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2462','Lev.sk dotterföretag','A','300','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2463','Lev.sk andra kon.för','A','300','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2470','Lev.sk intresseför','A','300','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2490','Övr.kortfr skulder','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2491','Växelskulder ','A','300','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('25','Skatteskulder','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2510','Skatteskulder ','A','301','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2511','Deb kvarskatt ','A','301','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2512','Beräkn ink.skatt','A','301','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2513','Beräkn fastigh.skatt','A','301','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2514','Ber särs lönesk pens','A','301','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2515','Beräkn avkastn.skatt ','A','301','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2518','Betald prel.skatt ','A','301','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('26','Moms och särskilda punktskatter','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2610','Utgående moms,25%', 'A','307','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2611','Utg moms förs Sv 25%', 'A','307','L','AR_tax:IC_taxpart:IC_taxservice:CT_tax');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2612','Utg moms egn ut 25%' , 'A','307','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2613','Utg moms - uthyr 25%', 'A','307','L','AR_tax:IC_taxpart:IC_taxservice:CT_tax');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2614','Ber u-mom tj.utl 25%', 'A','307','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2615','Ber u-mom va.EU, 25%', 'A','307','L','AR_tax:IC_taxpart:IC_taxservice:CT_tax');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2618','Vil utg moms, 25% ','A','307','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2620','Utgående moms, 12% ', 'A','307','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2621','Utg moms förs Sv 12%', 'A','307','L','AR_tax:IC_taxpart:IC_taxservice:CT_tax');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2622','Utg moms egna ut 12%', 'A','307','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2628','Vilande utg moms 12%', 'A','307','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2630','Utgående moms, 6% ', 'A','307','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2631','Utg moms förs Sv 6%', 'A','307','L','AR_tax:IC_taxpart:IC_taxservice:CT_tax');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2632','Utg moms egna ut 6%', 'A','307','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2638','Vil utg moms 6% ', 'A','307','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2640','Ing.moms ', 'A','307','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2641','Deb ingående moms', 'A','307','L','AP_tax:IC_taxpart:IC_taxservice:CT_tax');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2642','Deb ing.m.friv.sk.sk', 'A','307','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2645','Ber ing.moms utl', 'A','307','L','AP_tax:IC_taxpart:IC_taxservice:CT_tax');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2648','Vilande ing moms','A','307','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2649','Ing moms - bl.verks ','A','307','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2650','Redovisn.konto moms','A','307','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2660','Särsk. punktskatter ','A','301','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2661','Reklamskatt ','A','301','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2669','Övr.punktskatter ','A','301','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('27','Personalens skatter, avg.och löneavdrag','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2710','Personalens källsk','A','301','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2711','Innehållen källsk','A','301','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2718','Betald källskatt','A','301','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2730','Soc avg/särs lönesk','A','301','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2731','Avr lagst.soc.avg','A','301','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2732','Avräkn särs.lönesk','A','301','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2738','Bet soc avg/lönesk','A','301','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2740','Avtalade soc.avg','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2741','Avräkn avt.soc.avg','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2748','Betalda avt.soc.avg','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2750','Utmätning i lön ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2760','Semesterkassa ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2790','Övr.löneavdrag ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2791','Person. intressekont','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2792','Lönsparande ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2793','Gruppförs.premier','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2794','Fackföreningsavg','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2795','Mätn-o granskn.arvod','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('28','Övr.kortfristiga skulder','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2810','Avräkning factoring ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2820','Skulder t anställda','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2821','Löneskulder ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2822','Reseräkningar ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2823','Tantiem, gratifikat','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2830','Avr.belån.kontr.ford','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2840','Kortfr låneskulder','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2841','Kortfr del långfr sk','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2849','Övr.kortfr lånesk','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2860','Skuld t koncernföret','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2861','Skuld t moderföretag','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2862','Skuld t dotterföret','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2863','Skuld t andr konc.f','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2870','Skuld t intresseför','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2890','Övr kortfr skulder ','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2891','Skuld under indrivn','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2893','Skuld t närst pers','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2897','Mottagna depos','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2898','Outtagen vinstutd','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2899','Övr.kortfr skuld','A','319','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('29','Upplupna kostn och förutbetalda int.','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2900','Uppl.kost.förutb.int','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2910','Upplupna löner ','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2911','Löneskulder ','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2912','Ackordsöverskott','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2920','Uppl semesterlöner','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2921','Uppl semesterlöner','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2928','Bet semesterlöner','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2930','Uppl pensionskostn','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2931','Uppl pensionsutbet','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2940','Uppl soc.andr.avg','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2941','Beräkn uppl soc.avg','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2942','Beräkn uppl lönesk','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2943','Ber uppl särs.lönesk','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2944','B.uppl avkn.sk pens','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2950','Uppl avt soc avg','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2960','Upplupna utg.räntor','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2970','Förutbet hyresink','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2971','Förutbet arrendeink','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2972','Förutbet ink.räntor','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2980','Uppl avtalskostn ','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2990','Öv uppl k.förutb.int','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2991','Beräkn arv bokslut','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2992','Beräkn arv revision','A','305','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3','Rörelsens inkomster/int. ','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('30','Förs.av produkter ','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('300','Skomakeri ','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3000','Förs.läderarb seldon','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3002','Förs.läderarb sadlar','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3003','Förs.läder träns,mm','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3005','Förs.läderarb övrigt','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('301','Ull-arbeten mm ','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3010','Förs.ull-arbeten mm ','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3011','Tovade saker ','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3012','Stickade produkter ','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3013','Förs.sömnader ','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3015','Förs.ullprod övr','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3016','Herrkläder ','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3017','Damkläder ','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3018','Barnkläder ','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3019','Sömnad Inredningsdet','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('302','Förs.övr produkter ','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3021','Träprodukter ','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3022','Metallprodukter ','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3023','Textilier ','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3025','Övr.produkter ','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('303','Mat och boende ','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3030','Frukost ','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3031','Lunch eller middag ','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3032','Fika, kaffebröd, mm','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3033','Måltidskorgar ','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3034','Övr.förs.mat ','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3035','Enbart övernattning ','A','400','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3036','Boende m frukost','A','400','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3037','Bed and Box ','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3039','Övrigt boende ','A','400','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('304','Förs.och tj.över gränserna ','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3040','Förs.av tj. ','A','400','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3041','Förs.tj.i Sv.moms25%','A','400','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3042','Förs.tj.i Sv.moms12%','A','400','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3043','Förs.tj.i Sv.moms 6%','A','400','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3044','Förs.tj.i Sv.momsfri','A','400','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3045','Förs.av tj.t.utland','A','400','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3046','Förs.av tj.t.EU m25%','A','400','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3048','Förs.av tj.t.EU mfri','A','400','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3050','Förs.av varor ','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3051','Förs.var.Sv.moms 25%','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3052','Förs.var.Sv.moms 12%','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3053','Förs.var.Sv.moms 6%','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3054','Förs.var.Sv.momsfri','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3055','Förs.var.t.utland','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3056','Förs.var.t.EUmoms25%','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3057','3p-förs.EU,mellanman','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3058','Förs.var.EUmomsfritt','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('306','Datatjänster','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3060','Förs.datatogram','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3062','Förs.datatjänst','A','400','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3068','Datautbildning','A','400','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('31','Växtodling mm ','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('310','Foder mm ','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3100','Förs.betesgång','A','400','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3102','Förs.hö','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3105','Förs.säd','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3109','Förs.övr foder ','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('311','Mat mm ','H','','','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3110','Förs.potatis','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3111','Förs.grönsaker','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3112','Förs.bär','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3113','Förs.kryddor ','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3119','Förs.övr växter ','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('312','Förs.förädlade prod','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3120','Förs.förädlade gröns','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3121','Förs.förädlade krydd','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3129','Förs.övr förädl.prod','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3190','Förs.övr växtprod','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('32','Förs.djurprodukter','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('320','Fårskötsel ','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3200','Förs.livdjur ','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3201','Lamm och fårkött ','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3202','Päls och skinn ','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3203','Ull, rå och kardad ','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3209','Övr.prod från får ','A','','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('321','Fågelproduktion ','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3210','Livdjur, fåglar ','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3211','Förs.slaktdjur, kött','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3212','Förs.Ägg ','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3219','Övr.produkter fåglar','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('33','Häst och hästprodukter','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('330','Hästuppdrag ','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3300','Hästkörningar ','A','400','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3301','Rid-guidning ','A','400','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3309','Övr.hästuppdrag ','A','400','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('331','Hästutbildning ','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3310','Ridskola, kurser ','A','400','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3311','Ridläger mm ','A','400','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3315','Övrig ryttarutbildn','A','400','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3316','Tillridn av hästar ','A','400','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3317','Inkörning av hästar','A','','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3319','Övrig hästutbildni','A','400','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('34','Förs.momsfria tj.','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('340','Sång och kultur ','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3400','Sångframträdanden ','A','400','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3401','Musikframträdanden','A','400','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3402','Lyrikframträdanden ','A','400','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3409','Övr.momsfria framtr','A','400','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('341','Sjukvård ','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3410','Patientint.läkarbes','A','400','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3411','Patientint.ej besök','A','400','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3412','Intyg t.pat','A','400','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3413','Intyg t.för./mynd','A','400','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3419','Övr.direkta sjukvård','A','400','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('342','Sjukvårdstj. ','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3420','Tjänster åt landst','A','400','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3421','Tjänster åt företag ','A','400','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3422','Tjänst åt smärtklin','A','400','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3429','Övr.sjukvårdstj. ','A','400','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('349','Lab och undersökn','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3490','Labprover, provtagn','A','400','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3491','Labprover, analyser','A','400','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3499','Övr.undersökningar ','A','400','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('35','Fakturerade kostn ','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3510','Fakturerat emballage','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3518','Returnerat emballage','A','400','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3520','Fakturerade frakter','A','400','I','AR_amount:IC_sale:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3530','Fakt.tull/sped.kost','A','400','I','AR_amount:IC_sale:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3540','Faktureringsavg.','A','400','I','AR_amount:IC_sale:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3550','Fakturerade resekost','A','400','I','AR_amount:IC_sale:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3570','Fakt. matrl.kostn','A','400','I','AR_amount:IC_sale:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3590','Övr.fakt. kostn ','A','400','I','AR_amount:IC_sale:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('36','Rörelsens sidoint. ','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3600','Rörelsens sidoint.','A','400','I','AR_amount:IC_sale:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3610','Förs.av material ','A','400','I','AR_amount:IC_sale:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3611','Förs.av råmaterial','A','400','I','AR_amount:IC_sale:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3612','Förs.av skrot ','A','400','I','AR_amount:IC_sale:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3613','Förs.förbrukn.matrl.','A','400','I','AR_amount:IC_sale:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3619','Förs.av övrigt matrl','A','400','I','AR_amount:IC_sale:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3620','Tillf.uth.personal ','A','400','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3630','Tillf.uth.trsp-medel','A','400','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3680','Management fees ','A','400','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3690','Övr.sidoint. ','A','400','I','AR_amount:IC_sale:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('37','Intäktskorrigeringar ','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3700','Intäktskorrigeringar','A','400','I','AR_amount:IC_sale:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3710','Ofördelade int.red.','A','400','I','AR_amount:IC_sale:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3730','Lämnade rabatter ','A','400','I','AR_amount:IC_sale:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3731','Lämnade kassarab','A','400','I','AR_amount:IC_sale:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3732','Lämn.mängdrab-bonus','A','400','I','AR_amount:IC_sale:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3740','Öresutjämning ','A','400','I','AR_amount:AP_amount:IC_sale:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3750','Fakturerade punktsk.','A','400','I','AR_amount:IC_sale:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3751','Fakt.pkt.sk.kr.kont','A','400','I','AR_amount:IC_sale:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3752','Fakt.pkt-sk.debetkon','A','400','I','AR_amount:IC_sale:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3790','Övr.intäktskorrigeringar ','A','400','I','AR_amount:IC_sale:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('38','Aktiverat arbete för egen räkning ','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3800','Akt.arb.egen räkning','A','402','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3840','Aktiv.arb-material ','A','402','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3850','Aktiv.arb-omkostn ','A','402','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3870','Aktiv.arb- löner ','A','402','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('39','Övr.rörelseint. ','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3900','Övr.rörelseint.','A','401','I','AR_amount:IC_sale:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3910','Hyres- o arrendeint','A','401','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3911','Hyresint. ','A','401','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3912','Arrendeint. ','A','401','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3920','Provis/licen/royalti','A','401','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3921','Provisionsint. ','A','401','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3922','Licensint.royalties','A','401','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3925','Franchiseint. ','A','401','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3950','Återv,t.avskr.kundf','A','401','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3960','Valuta kursvinst','A','401','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3970','Vinst förs.anl.tillg','A','552','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3971','V. förs.imm.an.tillg','A','552','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3972','Vinst förs.byggn/mar','A','552','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3973','Vinst förs mask/inv','A','552','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3974','Vinst förs.bilar','A','552','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3975','Vinst förs datorer','A','552','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3976','Vinst förs.anl.djur','A','552','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3980','Erhållna bidrag ','A','401','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3981','Erhållna EU-bidrag ','A','401','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3985','Erhållna statl bidr','A','401','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3987','Erh. kommunala bidr','A','401','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3989','Övr.erhållna bidrag ','A','401','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3990','Övr.ers.och int. ','A','401','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3991','Konfliktersättning ','A','401','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3992','Erhållna skadestånd ','A','401','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3993','Erh.donationer gåvor','A','401','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3994','Ofördelad förs.ers','A','401','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3995','Lånedat.nettolöneavd','A','401','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3998','Sjukpenning ','A','401','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3999','Övr.rörelseint. ','A','401','I','AR_amount:IC_sale:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4','Utgifter/kostn för varor, material och vissa köpta tj. ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('40','Inköp av varor och material','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('400','Inköp lädermaterial mm ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4000','Inköp läder/skinn mm','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4001','Beredn.kostn läd/sk','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4008','Kostn.komp.utv.skom.','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4009','Övr.inköp skomakeri','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('401','Inköp för ull och sömnadsproduktion ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4010','Inköp ull ','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4011','Inköp garn ','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4012','Inköp tyg ','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4018','Kostn.komp.utv.ull/s','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4019','Inköp övrigt t.ull/s','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('402','Inköp t.övr produkter','A','400','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4029','Inköp övr produkter ','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('403','Inköp mat och boende ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4030','Inköp matvaror ','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4035','Inköp övr.matprod','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4036','Kostn.besiktn.certif','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4038','Kostn.komp.utv.mat/b','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4039','Inköp garn ','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4040','Inköp varor/mtrl Sv.','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4050','Inköp varor/mtrl utl','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4051','Inköp varor/mtrl utl','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4055','3p-förv.EU-mellanman','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4056','3p-förv.EU-moms 25% ','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4058','3p-förv.EU-momsfri ','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4060','Inköp närstående för','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('410','Växtodlingskostn ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4100','Utsäde växtodling ','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4101','Gödsel växtodling ','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4109','Övr.kostn växtodling','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4110','Utsäde pot,gröns,kry','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4111','Gödsel,markförb odl','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4119','Övr.kostn odling ','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('420','Kostn fårskötsel ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4200','Inköp djur ','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4201','Grovfoder får ','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4202','Fodersäd, havre ','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4203','Kraftfoder får ','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4204','Mineralfoder ','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4205','Fodertillskott ','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4206','Klippning ','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4207','Veterinärkostn ','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4208','Komp.utv.fårskötsel','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4209','Övr.kostn får ','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('421','Fjäderfä ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4210','Inköp djur ','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4211','Foderinköp ','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4212','Mineraltills fjäderf','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4218','Komp.utv.fjäderfä','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4219','Övr.kostn fjäderfä','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('43','Kostn häst ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4300','Grovfoder häst ','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4301','Kraftfoder häst ','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4302','Mineralfoder häst ','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4303','Vaccinationer häst','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4304','Övr.foder mm ','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4310','Hovbeslag,hovslagn','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4311','Hudvård mm ','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4318','Veterinärkostn ','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4319','Övr.kostn hästvård','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4329','Öv.k.sadel/seldonsvå','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4339','Öv.k.vagn/redsk häst','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4349','Övr.kostn ridleder ','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4398','Komp.utv. häst ','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4399','Övr.kostn häst ','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('44','Momsfri verksamhet - kostn ','H' ,'','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('440','Sång och kultur ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4400','Noter och material','A','500','E','AP_amount:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4408','Komp.utv.sång kultur','A','500','E','AP_amount:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4409','Öv.kostn sång,kultur','A','500','E','AP_amount:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('441','Sjukvårdstj. ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4410','Inköp f sjukv.prod','A','500','E','AP_amount:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4418','Komp.utv.sjukvård ','A','500','E','AP_amount:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4419','Övr.kostn sjukvård','A','500','E','AP_amount:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('46','Legoarbeten - underentreprenader ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4600','Legoarb/underentr','A','501','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('47','Reduktion av ink.pris','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4730','Red. av inköpspriser','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4731','Erh kassarabatter ','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4732','Erh mängdrab/bonus','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4790','Övr.red.inköpspriser','A','500','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('48','Fri t.egna konton ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('49','Lagerförändring, förändring av pågående arbeten samt garantiavsättningar ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4900','Förändr av lager','A','509/510','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4910','Förändr.lager råv.','A','500','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4920','Förändr.lag förnöd','A','500','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4930','Förändr.lag halvfab','A','509/510','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4931','För.lag köpta ½fab','A','500','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4932','För.lag egentv.½fab','A','509/509','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4940','För.lager - PIA ','A','509/510','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4950','För.lager färd.varor','A','509/510','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4960','För.lager handelsvar','A','500','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4970','För.påg.arb.nedl.kos','A','509/510','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4974','För.påg.arb.mtrl','A','509/510','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4975','För.påg.arb.omk.','A','509/510','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4977','För.påg.arb.pers','A','509/510','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4990','För.lag o påg.arb','A','509/510','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5','Övr.externa rörelseutgifter/kostn ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('50','Lokalkostn','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5000','Lokalkostn','A','528','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5010','Lokalhyra ','A','528','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5011','Hyra av kontorslokal','A','528','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5012','Hyra för garage ','A','528','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5013','Hyra för lagerlokal','A','528','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5014','Hyra för P-plats ','A','528','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5015','Avg.för bostadsr.för','A','528','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5020','Elavg.för belysning','A','528','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5030','Värme ','A','528','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5040','Vatten och avlopp ','A','528','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5050','Lokaltillbehör ','A','528','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5060','Städn. renhållning ','A','528','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5061','Städning ','A','528','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5062','Sophämtning ','A','528','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5063','Hyra för sopcont.','A','528','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5064','Snöröjning ','A','528','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5065','Trädgårdsskötsel ','A','528','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5070','Rep.underhåll lokal','A','528','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5090','Övr.lokalkostn ','A','528','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('51','Fastighetskostn','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5100','Fastighetskostn','A','528','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5110','Tomträttsavg/arrende','A','528','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5120','Elavg.belysning ','A','528','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5130','Värme ','A','528','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5131','Uppvärmning ','A','528','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5132','Sotning ','A','528','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5140','Vatten och avlopp ','A','528','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5160','Städn o renhållning','A','528','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5161','Städning ','A','528','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5162','Sophämtning ','A','528','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5163','Hyra f sopcontainer','A','528','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5164','Snöröjning ','A','528','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5165','Trädgårdsskötsel ','A','528','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5170','Rep.o underhåll fast','A','526','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5190','Övr.fastighetskostn ','A','528','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5191','Fastighetsskatt ','A','528','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5192','Fastigh.förs.premier','A','528','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5198','Ö.fast.kostn-ej avdr','A','528','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5199','Ö.fast.kostn-avdrag','A','528','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('52','Hyra av anläggningstillgångar ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5200','Hyra av anl.tillg','A','529','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5210','Hyra mask/tekn.anl','A','529','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5211','Korthyra mask/te anl','A','529','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5212','Leasing mask/te anl','A','529','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5220','Hyra inv/verktyg ','A','529','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5221','Korthyra inv/verktyg','A','529','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5222','Leasing inv/verktyg','A','529','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5250','Hyra av datorer ','A','529','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5251','Korttidshyra datorer','A','529','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5252','Leasing av datorer ','A','529','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5290','Ö.hyresk. anl.tillg','A','529','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('53','Energikostn ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5300','Energikostn','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5310','Elavg.för drift ','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5320','Gas ','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5330','Eldningsolja ','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5340','Stenkol och koks ','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5350','Torv,ved mm bränsle','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5360','Bensin,fotogen,diese','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5370','Fjärrvärme,kyla mm','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5380','Vatten ','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5390','Övr.energikostn ','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('54','Förbrukningsinventarier och förbrukningsmaterial ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5400','Förbrukn.inv. mm','A','531','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5410','Förbrukn.inventarier','A','531','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5420','Dataprogram ','A','531','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5430','Transportinventarier','A','531','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5440','Förbrukn.emballage','A','531','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5460','Förbrukningsmaterial','A','531','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5480','Arbetskläder/skyddsm','A','531','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5490','Övr.förbr.inv.o.mtrl','A','531','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('55','Reparation och underhåll ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5500','Repar. och underhåll','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5510','Rep.o underh.mask/ta','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5520','Rep.o underh.inv.','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5530','Rep.o underh inst.','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5550','Rep.o underh förbr','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5580','Underh/tvätt arb.kl','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5590','Övr.kostn rep/underh','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('56','Kostn för transportmedel','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5600','Kostn för transportm','A','538','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5610','Personbilskostn ','A','536','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5611','Drivmedel pers.bilar','A','536','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5612','Förs/skat pers.bilar','A','536','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5613','Rep/underh pers.bil','A','536','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5615','Leasingavg.pers.bil','A','536','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5619','Övr.personbilskostn','A','536','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5620','Lastbilskostn ','A','538','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5621','Drivmedel lastbilar ','A','538','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5622','Förs/sk lastbilar ','A','538','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5623','Rep/underh-lastbilar','A','538','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5625','Leasingavg.lastbilar','A','538','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5629','Övr.lastbilskostn ','A','538','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5630','Truckkostn ','A','538','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5650','Traktorkostn ','A','538','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5660','Motorcy/mop/skoterKo','A','538','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5670','Båtkostn ','A','538','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5680','Flygplan/helikopterk','A','538','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5690','Övr.kostn trsp-medel','A','538','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('57','Frakter och transporter ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5700','Frakter och transp','A','538','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5710','Frakt,trsp varudistr','A','538','E','AP_amount:IC_expence:IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5720','Tull- och sped.kostn','A','538','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5730','Arbetstransporter ','A','538','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('58','Resekostn ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5800','Resekostn','A','538','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5810','Biljetter ','A','538','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5820','Hyrbilskostn ','A','538','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5831','Kost och logi i Sv. ','A','538','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5832','Kost och logi i utl','A','538','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5890','Övr.resekostn ','A','538','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('59','Reklam och PR ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5900','Reklam och PR','A','541','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5910','Annonsering ','A','541','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5920','Utomhus/trafikreklam','A','541','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5930','Reklamtr./direktrekl','A','541','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5940','Utställn. och mässor','A','541','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5950','Butiksreklam ','A','541','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5960','Varuprover,reklamgåv','A','541','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5970','Film-,radio- reklam','A','541','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5980','PR, sponsring ','A','541','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5985','Hemsidor datareklam','A','541','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5990','Övr.kostn rekl/PR','A','541','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5998','Erhållna reklambidr','A','541','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6','Övr.externa rörelseutgifter/kostn','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('60','Övr.försäljningskostnader','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6000','Öv.försäljningskostn','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6010','Kataloger/prislistor','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6020','Egna facktidskrifter','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6030','Speciella orderkostn','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6040','Kontokortsavg.','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6050','Försäljningsprovis.','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6055','Franchiseavg.o dyl','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6060','Kreditförs.kostn','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6061','Kreditupplysning','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6062','Inkasso ','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6070','Repr.','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6071','Repr.-avdragsgill','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6072','Repr.-ej avdragsgill','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6080','Bankgarantiavg.','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6090','Övr.försäljn.kostn','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('61','Kontorsmaterial och trycksaker','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6100','Kontorsmtrl o trycks','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6110','Kontorsmaterial ','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6150','Trycksaker ','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('62','Tele och post ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6200','Tele och post','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6210','Telekommunikation ','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6211','Telefon ','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6212','Mobiltelefon ','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6213','Mobilsökning ','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6214','Fax ','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6215','Telex ','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6217','Telefonkonsult ','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6230','Datakommunikation ','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6250','Porto mm','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('63','Företagsförs och övr riskkostn','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6300','Föret.förs o ö r.kostn','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6310','Företagsförsäkringar ','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6320','Självrisker ','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6330','Förluster i påg.arb','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6350','Förluster på kundf','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6351','Konstat förl kundf','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6352','Befarad förl kundf','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6360','Garantikostn ','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6361','Förl.garantiavs','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6362','Faktisk garantikostn','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6370','Kostn bevakn/larm','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6380','Förl övr kortfr.ford','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6390','Övr.riskkostn ','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('64','Förvaltningskostn ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6400','Förvaltningskostn ','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6410','Styrelsearvoden ','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6420','Revisionsarvoden ','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6430','Management fees ','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6440','Årsredov./delårsrapp','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6450','Bolagsstämma ','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('65','Övr.externa tj. ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6500','Övr.externa tj.','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6510','Mätningstj. ','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6520','Ritn- o kopier.kostn','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6530','Redovisningstj. ','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6540','IT-tj. ','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6550','Konsultarvoden ','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6560','Serviceavg.branschor','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6570','Bankkostn ','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6580','Adv.o rättegångskost','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6590','Övr.externa tj. ','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('66','Fri t.egna konton','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('67','Fri t.egna konton','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('68','Inhyrd personal ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6800','Inhyrd personal','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6810','Inhyrd prod.pers','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6820','Inhyrd lagerpersonal','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6830','Inhyrd transportpers','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6840','Inh.kontor/ekonomipe','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6850','Inhyrd IT-personal ','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6860','Inh.markn/försäljn.p','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6870','Inh.restau/butiksper','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6880','Inhyrd företagsled.','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6890','Övr inhyrd personal','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('69','Övr.externa kostn ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6900','Övr.externa kostn','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6910','Licensavg./royalties','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6911','Stim- och Samiavg.','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6920','Patenkostn egna pat','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6921','Uppfinningskostn ','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6930','Kostn varumärken mm','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6940','Kontr/provn/stämpela','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6941','Certifieringskostn ','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6950','Tillsynsavg.myndigh','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6951','Miljöavg.','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6952','Förpackningsavg.','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6960','Franchiseavg.och dyl','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6970','Tidn/tidskr/facklitt','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6971','Tidningar och tidskr','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6972','Facklitteratur ','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6980','Föreningsavg.','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6981','Föreningsavg-avdrags','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6982','För-avg-ej avdragsgi','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6990','Övr.externa kostn ','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6991','Övr.ext.kostn-avdrag','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6992','Ö.ext.ko-ej avdragsg','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6993','Lämnade bidr o gåvor','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6995','Kostn.rta sk/soc.avg','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6998','Ing.moms-återbetaln','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6999','Ing.moms-bland.verks','A','530','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7','Utgifter/kostn för personal, avskr m m ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('70','Löner t.kollektivanst','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7000','Löner t.kollektivans','A','512','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7010','Löner t.kollektivans','A','512','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7011','Löner t.kollektivans','A','512','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7012','Vinstand t.koll.ans','A','512','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7015','Löneskatt koll.ans','A','512','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7016','Lönesk.vinstand.koll','A','512','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7017','Avg.vederl.koll.ans','A','512','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7018','Bruttolöneavdr koll','A','512','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7019','Uppl.lön.vinstan.kol','A','512','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7080','Lön ej arb tid koll','A','512','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7081','Sjuklöner kollektiva','A','512','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7082','Semesterlöner koll.','A','512','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7090','Förändr.sem.lönskuld','A','512','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('71','Fri t.egna konton','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('72','Löner t.tjänstemän och företagsledare ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7200','Lön tj.män/för.led.','A','512','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7211','Löner t.tjänstemän ','A','512','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7212','Vinstand. t.tj.män','A','512','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7215','Löneskatt tjänstemän','A','512','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7216','Lönesk. vinstand tjm','A','512','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7217','Avg.vederl.t.tj.män','A','512','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7218','Bruttolönavdr-tj.män','A','512','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7219','Uppl.lön/vinstand.tj','A','512','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7220','Löner t.företagsled','A','512','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7221','Löner t.företagsled','A','512','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7222','Tantiem företagsled','A','512','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7223','Gratif. företagsled','A','512','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7227','Avg.ved.företagsled','A','512','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7228','Bruttolöneavdr.f-led','A','512','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7229','Uppl.lön/v-and.f-led','A','512','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7280','Lön ek arb tid tj/fl','A','512','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7281','Sjuklöner tjm/f-led','A','512','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7282','Semesterlöner tj/fl','A','512','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7290','Förändr.sem.lönskuld','A','512','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('73','Kostnadsers.och förmåner','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7300','Kostn.ers.och förmån','A','514','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7310','Kontanta extraers.','A','514','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7311','Ers för sammantr.mm','A','514','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7312','Ers förslagsv./uppfi','A','514','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7313','Bidrag bostadskostn','A','514','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7314','Bidrag måltidskostn','A','514','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7315','Bidrag resor tor arb','A','514','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7316','Bidrag arbetskläder','A','514','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7317','Bidrag arb.mtrl/vtyg','A','514','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7318','Felräkningspengar ','A','514','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7319','Övr.kont extraers.','A','514','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7320','Traktam.tj.resa ','A','514','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7321','Skattefri traktam-Sv','A','514','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7322','Skattepli traktam-Sv','A','514','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7323','Skattefri traktam-ut','A','514','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7324','Skattepli traktam-ut','A','514','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7330','Bilers.','A','514','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7331','Bilers.- skattefria ','A','514','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7332','Bilers.- skattepl','A','514','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7350','Ers föres.arb.kl','A','514','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7370','Repr.ersättningar','A','514','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7380','Kostn förm.anst','A','514','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7381','Kostn fri bostad','A','514','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7382','Kostn fria/subv målt','A','514','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7383','Kostn resor tor arb','A','514','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7384','Kostn fria/subv a.kl','A','514','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7385','Kostn för fri bil ','A','514','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7386','Subventionerad ränta','A','514','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7387','Personalrabatter ','A','514','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7389','Övr.kostn och förmån','A','514','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7390','Övr.kostners.förmån','A','514','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7398','Anst.nettolöneavdrag','A','514','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7399','Övr.kostners.förmån','A','514','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('74','Pens.kostn ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7400','Pens.kostn','A','524','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7410','Pens.försäkr.premier','A','524','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7411','Prem.koll.pens.förs','A','524/511','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7412','Prem.indiv.pens.förs','A','524','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7420','Förändr.pens.skuld','A','524','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7430','Avdr.ränt.pens.kostn','A','524','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7440','Avs.t.pens.stiftelse','A','524','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7450','Avdr.gottg.pens.stif','A','524','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7460','Pens.utbetalningar ','A','524','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7461','Pens.utbet.koll.anst','A','524','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7462','Pens.utbet.tjänstem','A','524','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7463','Pens.utbet.för.led','A','524','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7470','Förvalt/kred.för.avg','A','524','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7490','Övr.pensionskostn ','A','524','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('75','Sociala och andra avg.enligt lag och avtal','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7500','Soc.avg.enl lag/avt','A','520','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7510','Lagstadgade soc.avg.','A','520','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7511','Soc.avg.löner/ers.','A','520','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7512','Soc.avg.förmånsvärd','A','520','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7515','Soc.avg.sk.pl.ers','A','520','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7516','Soc.avg.på arvoden','A','520','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7518','Soc.avg.bruttolönavd','A','520','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7519','Soc.av.sem/löneskuld','A','520','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7520','Egenavg.m m ','A','597','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7530','Löneskatt ','A','520','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7531','Löneskatt löner/ers','A','520','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7532','Löneskatt förmånsvär','A','520','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7533','Särs.lönesk.pens.kos','A','520','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7535','Lönesk.skattepl.ers.','A','520','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7536','Löneskatt på arvoden','A','520','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7538','Lönesk.bruttolöneavd','A','520','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7550','Avk.sk.pensionsmed','A','524','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7570','Premier AMF-försäkr','A','511','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7580','Gruppförsäkr.premier','A','520/511','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7581','Grupplivförs.premier','A','520/511','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7582','Gruppsjukförs.prem.','A','520','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7583','Gruppolycksfallsf.p','A','520','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7590','Ö.soc.o.a.avg.e.lag','A','520','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('76','Övr.personalkostn ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7600','Övr.personalkostn','A','527','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7610','Utbildning ','A','527','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7620','Sjuk- och hälsovård','A','527','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7621','Sjuk/hälsov-avd.gill','A','527','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7622','Sjuk/hälsov-ej avdr','A','527','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7630','Personalrepr','A','527','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7631','Personalrepr-avdr.g','A','527','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7632','Personalrepr-ej av.g','A','527','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7650','Sjuklöneförsäkring ','A','527','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7670','Avs. t.personalst','A','527','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7680','Gottgör.f.pers.stift','A','527','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7690','Övr.pers.kostn/bidr','A','527','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7691','Personalrekrytering','A','527','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7692','Begravningshjälp ','A','527','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7693','Fritidsverksamhet ','A','527','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7698','Erh bidr o ers.pers','A','527','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7699','Övr.personalkostn ','A','527','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('77','Ns och återföring av nedskrivningar ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7710','Ns im.anl.tillg','A','553','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7720','Ns byggn/mark','A','553','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7730','Ns mask/inv','A','553','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7740','Ns oms.tillg','A','553','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7760','Återf.nedskr.im.anlt','A','553','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7770','Återf nedskr.by/mark','A','553/554','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7780','Återf nedsk.mask/inv','A','553/554','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7790','Återf nedsk.oms.till','A','553/554','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('78','Avskr enligt plan ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7810','Avskr im.anl.tillg','A','561','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7811','Avskr bal.utgifter','A','561','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7812','Avskr koncessioner','A','561','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7813','Avskr på patent ','A','561','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7814','Avskr på licenser ','A','561','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7815','Avskr på varumärken','A','561','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7816','Avskr på hyresrätter','A','561','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7817','Avskr på goodwill ','A','561','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7819','Avsk.ö.im.anl.tillg','A','561','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7820','Avskr byggn/markanl','A','560','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7821','Avskr byggnader ','A','560','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7824','Avskr markanläggning ','A','560','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7829','Avskr övr byggnader ','A','560','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7830','Avskr maskiner/inv','A','559','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7831','Avskr mask/tekn.anl','A','559','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7832','Avskr inv/verktyg ','A','559','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7833','Avskr installationer ','A','559','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7834','Avskr bil/trsp-medel','A','559','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7835','Avskr datorer ','A','559','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7836','Avskr leasingavtal ','A','559','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7837','Avskr anl.djur ','A','559','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7839','Avskr övr mask/inv','A','559','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('79','Poster av engångskaraktär och övr rörelsekostn ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7910','Intäkt av engångskar','A','401','E','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7920','Kostn av engångskar','A','530','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7960','Valutakursförlust','A','530','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7970','Förl.avytt.anl.tillg','A','556','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7971','Förl.avytt.im.anl.ti','A','556','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7972','Förl.avytt.byggn/mar','A','556','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7973','Förl.avytt.mask/inv','A','556','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7990','Övr.rörelsekostn ','A','530','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8','Finansiella och andra inkomster/int. och utgifter/kostn ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('80','Resultat från aktier och andelar i koncernföretag','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8010','Utdeln akt.and.koncf','A','564','E','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8012','Utdeln akt.and.do-fö','A','564','E','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8013','Utdeln akt.and.ö kf','A','564','E','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8020','Res förs.akt/and kf','A','550/551','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8022','Res förs.akt/and df','A','550/551','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8023','Res förs.akt/and ök','A','550/551','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8070','Ns långfr.fo.kf','A','553/570','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8072','Ns akt/and do-f','A','570','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8073','Ns akt/and ö kf','A','570','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8076','Ns långfr.fo mo','A','570','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8077','Ns långfr.fo do','A','570','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8078','Ns långfr.fo ök','A','570','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8080','Åf ns långfr.fo kf','A','571','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8082','Åf ns akt/and do-fö','A','571','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8083','Åf ns akt/and ö kf','A','571','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8086','Åf ns långfr.fo.mo','A','571','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8087','Åf ns långfr.fo.do','A','571','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8088','Åf ns långfr.fo.kf','A','571','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('81','Resultat från aktier och andelar i intresseföretag ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8110','Utd akt/and intr.fö','A','564','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8120','Res förs.akt/and ifö','A','550/551','I','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8170','Ns långfr.fo.intr.fö','A','570','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8171','Ns akt/andel intr.fö','A','570','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8172','Ns långfr fo intr.fö','A','570','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8180','Åf ns långfr fo ifö','A','570','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8181','Åf ns akt/and int.fö','A','570','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8182','Åf ns fordr intr.för','A','570','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('82','Resultat övr värdepapper och långfr fordr (anl.tillg) ','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8200','Rta int. anl.tillg.','A','568','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8210','Utd akt/and övr.för','A','565','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8220','Resu.förs.värdep afö','A','550/551','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8221','Res förs akt/and för','A','550/551','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8222','Res förs långfr fo.','A','550/551','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8223','Res förs övr värdep','A','550/551','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8230','Valutak.diff.l-fr.fo','A','566','I','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8231','Valutak.vinst l-fr.f','A','566','I','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8236','Valutak.förl.l-fr.fo','A','567','I','AP_aomunt:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8250','Rta l-fr fo.värdepap','A','568','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8251','Rta l-fr fordr.','A','568','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8252','Rta övr värdepapper','A','568','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8260','Rta l-fr fo.kon.för','A','568','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8261','Rta l-fr fo.moderför','A','568','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8262','Rta l-fr fo.dotterfö','A','568','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8263','Rta l-fr fo.and.ko-f','A','568','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8270','Ns and.l-fr fo.an.fö','A','570','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8271','Ns akt/and företag ','A','570','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8272','Ns l-fr fo.and.föret','A','570','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8273','Ns övr värdepapper','A','570','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8280','Åf ns and.l-fr fo af','A','571','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8281','Åf ns akt/and företa','A','571','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8282','Åf ns l-fr fo.an.fö','A','571','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8283','Åf ns värdepapper','A','571','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('83','Övr.ränteint. och liknande resultatposter ','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8300','Rta-int. oms.tillg','A','568','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8310','Rta-int. oms.tillg','A','568','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8311','Rta-int. från bank ','A','568','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8312','Rta-int.korts.plac','A','568','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8313','Rta-int.korts.fordr.','A','568','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8314','Skattefria ränteint. ','A','568','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8317','Rt-int. dold rt-komp','A','568','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8319','Ö.rta-int.oms.tillg','A','568','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8330','Valutakursvinster ','A','566','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8331','Valutakursvinster ','A','568','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8336','Valutakursförluster','A','567','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8340','Utd.kortfr.plac.','A','568','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8350','Res.förs.kortfr.plac','A','568','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8360','Övr.rt-int.konc.före','A','568','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8361','Övr.rt-int.moderföre','A','568','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8362','Övr.rt-int.dotterför','A','568','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8363','Övr.rt-int.övr ko.fö','A','568','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8370','Ns kortfr.placeringa','A','569','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8380','Åf ns k-fr.placering','A','568','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8390','Övr.finansiella int. ','A','568','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('84','Rtakostn och liknande resultatposter ','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8400','Rta-kostn','A','569','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8410','Rta-ko långfr skuld','A','569','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8411','Rta-ko obl/förl/konv','A','569','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8412','Rta årets pens.kostn','A','569','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8413','Rta checkräkningskr','A','569','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8414','Rta byggnadskreditiv','A','569','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8415','Rta öv.skuld.krediti','A','569','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8417','Rta dold räntekomp','A','569','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8418','Avdragspost räntesub','A','569','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8419','Övr.rt-ko l-fr.skuld','A','569','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8420','Rta-ko k-fr.skulder ','A','569','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8421','Rta-ko kreditinstit','A','569','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8422','Dröjsmålsrta lev.sku','A','569','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8423','Kostn.rta skat/avg','A','569','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8429','Övr.räntekostn ','A','569','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8430','Valutakursdiff.skuld','A','566','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8431','Valutakursvins skuld','A','566','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8436','Valutakursförl skuld','A','567','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8440','Erhållna räntebidrag','A','569','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8460','Rtakostn koncernför.','A','569','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8461','Rtakostn moderföret.','A','569','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8462','Rtakostn dotterför.','A','569','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8463','Rtakostn öv.konc.för','A','569','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8480','Aktiverade rt-kostn','A','569','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8490','Övr.finans. kostn','A','569','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('85','Fri t.egna konton','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('86','Fri t.egna konton ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('87','Extraordinära int. och kostn ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8710','Extraordinära int. ','A','401','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8750','Extraordinära kostn','A','530','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('88','Bokslutsdispositioner','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8810','Ändr.per.fond-HB-1','A','586/589','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8811','Avs. t.per.fond ','A','586/594','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8819','Återf per.fond ','A','589/593','I','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8820','Ändr.per.fond-HB-2','A','589/594','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8821','Avs.periodiseringsfo','A','589/595','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8829','Åf periodiseringsfon','A','589/596','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8830','Ändr.per.fond-HB-3','A','589/597','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8831','Avs. t.period.fond','A','589/598','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8839','Åf periodiseringsfon','A','589/599','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8850','Överavskrivning ','A','578/590','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8851','Ä.överavskr-im.a.t','A','578/590','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8852','Ä.överavskr-by/man','A','578/590','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8853','Ä.överavskr-ma/inv','A','578/590','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8860','För. av ers.fond ','A','593/594','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8861','Avs.ers.fond inv','A','594','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8862','Avs ers.fond by/m-an','A','594','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8863','Avs ers.fond mark ','A','594','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8864','Avs ers.fond djurlag','A','594','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8865','Från ers.fond f avsk','A','593','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8866','Från ers.fond ej avs','A','593','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8869','Återf från ers.fond ','A','593','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8870','Ändr.al.inv.reserv','A','593','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8871','Från al.inv.res f av','A','593','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8872','Från a.inv.res ej av','A','593','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8873','Av.anl.t.fr.a.inv.re','A','593','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8879','Åf allm.inv.reserv','A','593','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8880','Förändr.obesk.int.','A','593/594','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8881','Avsätn.upphovsmannak','A','594','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8882','Återf upphovsmannako','A','593','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8885','Avs. t.skogskonto ','A','594','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8886','Återf t.skogskonto','A','593','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8890','Övr.bokslutsdisp','A','593/594','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8891','Ä.s.bokf/fak p-skuld','A','593/594','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8892','Neds.konsolid.anl.ti','A','594','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8895','Föränd.valutakursres','A','593/594','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8896','Förändr.lagerreserv','A','593','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8897','Återf av SURV','A','591','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8899','Övr.bokslutsdisp','A','593','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('89','Skatter och årets resultat ','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8910','Skatt på årets resul','A','598','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8920','Skatt pga ändr taxer','A','598','E','AP_amount:AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8930','Restituerad skatt','A','598','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8940','Latent skatt','A','598','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8980','Övr.skatter ','A','598','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8990','Resultat ','A','599/596','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8999','Årets resultat','A','599/596','E','');
+
+insert into tax (chart_id,rate) values ((select id from chart where accno = '2611'),0.25);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '2613'),0.25);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '2615'),0.25);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '2621'),0.12);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '2631'),0.06);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '2641'),0.25);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '2645'),0.25);
+
+update defaults set inventory_accno_id = (select id from chart where accno ='1400'), income_accno_id = (select id from chart where accno = '3011'), expense_accno_id = (select id from chart where accno = '4010'), fxgain_accno_id = (select id from chart where accno = '3960'), fxloss_accno_id = (select id from chart where accno = '7960'), curr = 'SEK:EUR:USD', weightunit = 'kg';
+
diff --git a/sql/Sweden_Church_Society-chart.sql b/sql/Sweden_Church_Society-chart.sql
new file mode 100755
index 00000000..4cee4378
--- /dev/null
+++ b/sql/Sweden_Church_Society-chart.sql
@@ -0,0 +1,231 @@
+-- Johan Hambraeus
+-- May 7, 2006
+--
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1','Tillgångar','H','','','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('10','Immateriella anläggningstillgångar','H','','','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1010','Balanserade utgifter','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1019','Ack avskriningar balanserade utg','A','','C','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1060','Hyresrätt','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1069','Ack avskrivn hyresrätt','A','','C','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('11','Byggnader och mark','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1110','Byggnader','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1119','Ack avskrivn byggnader','A','','C','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1130','Mark','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1140','Tomter, markomr obebyggda','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1150','Markanläggningar','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1159','Ack avskrivn markanläggn','A','','C','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1190','Övriga byggnader och mark','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('12','Maskiner och inventarier','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1230','Installationer','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1238','Ack nedskrivn installationer','A','','C','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1239','Ack avskrivn installationer','A','','C','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1250','Datorer','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1259','Ack avskrivn datorer','A','','C','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('13','Finansiella anläggningstillgångar','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1370','Uppskjuten skattefordran','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1380','Långfristiga fordringar','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1400','Fordran hos EFS Gafsele','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1405','Fordran hos EFS Hälla','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('15','Kundfordringar','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1500','Kundfordringar','A','','A','AR');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('16','Övriga kortfristiga fordringar','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1600','Övr kortfristiga fordr','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1710','Förutbetalda hyror','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1730','Förutbet försäkringspremier','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1740','Förutbet ränteutgifter','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1750','Upplupna hyresinkomster','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1760','Upplupna inkomsträntor','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1790','Övr interimsfordringar','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('19','Kassa och Bank','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1910','Kassa','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1920','Postgiro','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1930','Checkräkningskonto','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1940','Övriga bankkonto','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1941','Nordea värdepappersfond','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1942','Nordea girokapitalkonto','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2','Eget kapital och skulder','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('20','Eget kapital','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2000','Eget kapital EFS Åsele','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2005','Eget kapital EFS Gafsele','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2010','Eget kapital EFS Hälla','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2070','Ändamålsbestämda medel','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2091','Balanserad vinst/förlust','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2098','Vinst/förlust föreg år','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2099','Redovisat resultat','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('22','Avsättningar','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2250','Avsättning för skatter','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2290','Övriga avsättningar','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('23','Skulder','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2300','Skuld till EFS Gafsele','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2310','Skuld till EFS Hälla','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2320','Skuld till fam Norlin','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2330','Checkräkningskredit','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2399','Övr långfristiga skulder','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2440','Leverantörsskulder','A','','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2499','Övr kortfristiga skulder','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2960','Upplupna utgiftsräntor','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2971','Förutbetalda hyresintäkter','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2972','Förutbetalda medlemsavgifter','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2979','Övriga förutbetalda intäkter','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2990','Övr interimsskulder','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2999','Övr uppl kostn/förutbet intäkter','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3','Intäkter','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('30','Allmänna gåvor','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3000','Gåvor via konto','A','','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3005','Minnesgåvor','A','','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3010','Gudstjänstkollekter','A','','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3015','Fika/kaffe/fester - gåvor','A','','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('31','Öronmärkta gåvor','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3100','Öronmärkta gåvor','A','','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3101','Gåvor barnarbete','A','','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3102','Gåvor körsång','A','','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3103','Gåvor bönegrupper','A','','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3104','Gåvor Alfa-grupper','A','','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3105','Övrigt lokalt arbete','A','','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3106','Gåvor till fastighet mm','A','','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3109','Gåvor Åsele allkristna gemenskap','A','','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3110','Gåvor EFS Västerbotten','A','','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3111','Gåvor distriktskonferens','A','','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3112','Gåvor Scoutverksamhet','A','','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3120','Gåvor EFS riks','A','','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3121','Gåvor EFS riks konferens','A','','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3122','Gåvor EFS Inre mission','A','','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3123','Gåvor EFS Yttre mission','A','','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3130','Gåvor Barn i alla länder','A','','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3131','Gåvor Johannelundsinsamling','A','','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3132','Gåvor Påskinsamling','A','','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3133','Gåvor Flodvågens offer','A','','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('33','Försäljningsintäkter','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3300','Försäljning bokbordet','A','','I','IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3350','Försäljning fika mm','A','','I','IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('34','Medlemsavgifter','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3400','Medlemsavgifter','A','','I','IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3405','Medlemsavgifter Solglimten','A','','I','IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('345','Hyresintäkter','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3450','Hyresintäkter, hyreskontrakt','A','','I','IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3460','Hyresintäkter, enstaka tillfälle','A','','I','IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3470','Hyresint Ersättning telefonkostnad','A','','I','IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('35','Bidrag','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3510','Erhållna statliga bidrag','A','','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3520','Erhållna kommunala bidrag','A','','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3530','Bidrag Svenska kyrkan','A','','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3590','Övriga erhållna bidrag','A','','I','AR_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('36','Övriga intäkter','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3690','Övriga sidointäker','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3731','Kassarabatter','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3740','Öresutjämning','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3960','Valuta kursvinst','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3972','Vinst avyttr fastigheter','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3973','Vinst avyttr maskiner/inv','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3990','Övr ersättn och intäker','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3994','Försäkringsersättningar','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4','Utgifter','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4000','Kostnad för predikant','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4050','Reskostnader för predikant','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('41','Utgifter öronmärkta gåvor','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4100','Kostnad öronmärkta gåvor','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4101','Kostnad barnarbete','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4102','Kostnad körer','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4103','Kostnad bönegrupper','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4104','Kostnad Alfa','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4105','Kostnad Övrigt lokalt arbete','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4106','Kostnad Fastighet (särskilt)','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4107','Kostnad scouting barnarbete','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4109','Åsele allkristna gemenskap','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4110','EFS Västerbotten','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4111','distriktskonferens','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4120','EFS riks','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4121','EFS riks konferensinsamling','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4122','EFS inre mission','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4123','EFS yttre mission','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4130','Barn i alla länder','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4131','Johannelundinsamling','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4132','Påskinsamling','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4133','Till Flodvågens offer','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('43','Inköpskostnader mm','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4300','Inköp bokbord','A','','E','IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4350','Inköp matr fika mm','A','','E','IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4400','Pren Vårt budskap (distr tidning)','A','','E','IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4600','Inhyrda predikanter/föreläsare','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4700','Tidningar, facklitteratur','A','','E','IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4900','Föreningsavgifter','A','','E','IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('50','Lokalkostnader hyrd lokal','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5010','Lokalhyra','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5020','El','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5030','Värme hyrd lokal','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5050','Lokaltillbehör hyrd lokal','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5060','Städning, renhållning hyrd lokal','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5070','Reparationer hyrd lokal','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5090','Övr kostnader hyrd lokal','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('51','Lokalkostnader egen lokal','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5120','Belysning','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5130','Värme','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5132','Sotning','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5140','Vatten och avlopp','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5160','Renhålln och städning','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5170','Rep och underhåll fastighet','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5191','Fastighetsskatt','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5192','Försäkringsprem fastighet','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5193','Fastighetsskötsel och förvaltning','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5199','Övr fastighetskostnader','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('52','Övriga kostnader','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5210','Hyra arbetsmaskiner','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5220','Hyra inventarier','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5290','Övr hyreskostn anl tillg','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5390','Övriga bränslen','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5410','Förbrukningsinventarier','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5460','Förbrukningsmaterial','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5480','Arbetskläder o skyddsmtrl','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5500','Reparation och underhåll','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5710','Frakt och transport','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5800','Resekostnader','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5910','Annonsering','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5930','Reklamtrycksaker','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5990','Övrig reklam','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6110','Kontorsmaterial','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6150','Trycksaker','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6210','Telefon','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6250','Porto','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6310','Försäkringar','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6320','Självrisker','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6340','Lämnade skadestånd','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('64','Förvaltningskostnader','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6490','Övr förvaltningskostnader','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6530','Redovisningstjänster','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6540','IT-tjänster','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6550','Konsultarvoden','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('65','Bankkostnader','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6570','Bankkostnader, Nordea','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6571','Bankkostnader, Postgirot','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6572','Bankkostnader, Bankgiro','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6573','Bankkostnader, Föreningssparbank','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('658','Främmande tjänster','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6580','Advokatkostnader','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6590','Övr främmande tjänster','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7','Avskrivningar och engångskostn','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7780','Avskrivningar enligt plan','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7811','Avskrivningar balanserade utgifter','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7820','Avskrivningar byggnader/mark','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7821','Avskrivn byggnader','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7822','Avskrivn byggnadsinv','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7824','Avskrivn markanläggn','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7829','Avskrivningar övr byggnader','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7832','Avskrivn inventarier','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7833','Avskrivningar installationer','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7835','Avskrivningar datorer','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7921','Kostn av engångskaraktär ','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7960','Valutakursförlust','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8','Financiella intäkter o kostnader','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('83','Ränteintäkter','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8300','Ränteintäkter ','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8390','Övr finansiella intäkter','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('84','Räntekostnader','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8400','Räntekostnader','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8490','Övr finansiella kostnader','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('891','Skatter','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8910','Årets skattekostnad','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('899','Redovisat resultat','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8999','Redovisat resultat','A','','E','');
+--
+update defaults set inventory_accno_id = (select id from chart where accno ='1130'), income_accno_id = (select id from chart where accno = '3400'), expense_accno_id = (select id from chart where accno = '4400'), fxgain_accno_id = (select id from chart where accno = '3960'), fxloss_accno_id = (select id from chart where accno = '7960'), curr = 'SEK:EUR:USD', weightunit = 'kg';
+
diff --git a/sql/Swiss-German-chart.sql b/sql/Swiss-German-chart.sql
new file mode 100755
index 00000000..3de8e73b
--- /dev/null
+++ b/sql/Swiss-German-chart.sql
@@ -0,0 +1,160 @@
+-- Swiss chart of accounts
+-- adapted to numeric representation of chart no.
+--
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('10000','AKTIVEN','H','1','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('11000','UMLAUFSVERMÖGEN','H','10000','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('11100','Flüssige Mittel','H','11000','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('11102','Bank CS Kt. 177929-11','A','11100','A','AR_paid:AP_paid');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('11110','Forderungen','H','11000','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('11120','Vorräte und angefangene Arbeiten','H','11000','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('11128','Angefangene Arbeiten','A','11120','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('11130','Aktive Rechnungsabgrenzung','A','11000','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('14000','ANLAGEVERMÖGEN','H','10000','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('18000','AKTIVIERTER AUFWAND UND AKTIVE BERICHTIGUNGSPOSTEN','H','10000','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('18182','Entwicklungsaufwand','A','18000','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('20000','PASSIVEN','H','2','L','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('21000','FREMDKAPITAL KURZFRISTIG','H','20000','L','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('21200','Kurzfristige Verbindlichkeiten aus Lieferungen und Leistungen','H','21000','L','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('21201','Lieferanten','A','21200','L','AP');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('21202','Personalaufwand','A','21200','L','AP');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('21203','Sozialversicherungen','A','21200','L','AP');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('21205','Leasing','A','21200','L','AP');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('21210','Kurzfristige Finanzverbindlichkeiten','H','21000','L','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('21220','Andere kurzfristige Verbindlichkeiten','H','21000','L','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('21222','MWST (3,6)','A','21220','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('21229','Gewinnausschüttung','A','21220','L','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('21230','Passive Rechnungsabgrenzung, kurzfristige Rückstellungen','H','21000','L','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('21235','Rückstellungen','A','21230','L','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('24000','FREMDKAPITAL LANGFRISTIG','H','20000','L','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('24256','Gesellschafter','A','24000','L','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('28000','EIGENKAPITAL','H','20000','Q','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('28280','Stammkapital','A','28000','Q','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('28290','Reserven, Bilanzgewinn','H','28000','Q','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('28291','Reserven','A','28290','Q','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('28295','Gewinnvortrag','A','28290','Q','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('28296','Jahresgewinn','A','28290','Q','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('30000','BETRIEBSERTRAG AUS LIEFERUNGEN UND LEISTUNGEN','H','30000','I','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('31000','PRODUKTIONSERTRAG','H','30000','I','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('31001','Computer','A','31000','I','AR_amount:IC_sale');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('31005','Übrige Produkte','A','31000','I','AR_amount:IC_sale');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('32000','HANDELSERTRAG','H','30000','I','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('32001','Hardware','A','32000','I','AR_amount:IC_sale');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('32002','Software OSS','A','32000','I','AR_amount:IC_sale');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('32003','Software kommerz.','A','32000','I','AR_amount:IC_sale');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('32005','Übrige','A','32000','I','AR_amount:IC_sale');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('34000','DIENSTLEISTUNGSERTRAG','H','30000','I','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('34001','Beratung','A','34000','I','AR_amount:IC_income');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('34002','Installation','A','34000','I','AR_amount:IC_income');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('36000','ÜBRIGER ERTRAG','H','30000','I','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('37000','EIGENLEISTUNGEN UND EIGENVERBRAUCH','H','30000','I','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('37001','Eigenleistungen','A','37000','I','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('37002','Eigenverbrauch','A','37000','I','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('38000','BESTANDESÄNDERUNGEN ANGEFANGENE UND FERTIGGESTELLTE ARBEITUNG AUS PRODUKTION UND DIENSTLEISTUNG','H','30000','I','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('38001','Bestandesänderungen','A','38000','I','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('39000','ERTRAGSMINDERUNGEN AUS PRODUKTIONS-, HANDELS- UND DIENSTLEISTUNGSERTRÄGEN','H','30000','I','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('40000','AUFWAND FÜR MATERIAL, WAREN UND DIENSTLEISTUNGEN','H','40000','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('41000','MATERIALAUFWAND','H','40000','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('41001','Computer','A','41000','E','AP_amount:IC_cogs');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('41005','Übrige Produkte','A','41000','E','AP_amount:IC_cogs');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('42000','HANDELSWARENAUFWAND','H','40000','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('42001','Hardware','A','42000','E','AP_amount:IC_cogs');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('42002','Software OSS','A','32000','I','AP_amount:IC_cogs');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('42003','Software kommerz.','A','42000','I','AP_amount:IC_cogs');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('42005','Übrige','A','42000','E','AP_amount:IC_cogs');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('44000','AUFWAND FÜR DRITTLEISTUNGEN','H','40000','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('46000','ÜBRIGER AUFWAND','H','40000','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('47000','DIREKTE EINKAUFSSPESEN','H','40000','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('47001','Einkaufsspesen','A','47000','E','AP_amount:IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('48000','BESTANDESVERÄNDERUNGEN, MATERIAL- UND WARENVERLUSTE','H','40000','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('48001','Bestandesänderungen','A','48000','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('49000','AUFWANDMINDERUNGEN','H','40000','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('49005','Aufwandminderungen','A','49000','E','AP_amount:IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('50000','PERSONALAUFWAND','H','50000','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('57000','SOZIALVERSICHERUNGSAUFWAND','H','50000','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('58000','ÜBRIGER PERSONALAUFWAND','H','58000','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('58005','Sonstiger Personalaufwand','A','58000','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('59000','ARBEITSLEISTUNGEN DRITTER','H','50000','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('60000','SONSTIGER BETRIEBSAUFWAND','H','60000','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('61000','RAUMAUFWAND','H','60000','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('61900','UNTERHALT, REPARATUREN, ERSATZ, LEASINGAUFWAND MOBILE SACHANLAGEN','H','60000','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('61901','Unterhalt','A','61900','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('62000','FAHRZEUG- UND TRANSPORTAUFWAND','H','60000','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('62002','Transportaufwand','A','62000','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('63000','SACHVERSICHERUNGEN, ABGABEN, GEBÜHREN, BEWILLIGUNGEN','H','60000','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('65000','VERWALTUNGS- UND INFORMATIKAUFWAND','H','60000','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('66000','WERBEAUFWAND','H','60000','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('67000','ÜBRIGER BETRIEBSAUFWAND','H','60000','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('67001','Übriger Betriebsaufwand','A','67000','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('68000','FINANZERFOLG','H','60000','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('68001','Finanzaufwand','A','68000','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('68002','Bankspesen','A','68000','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('68005','Finanzertrag','A','68000','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('69000','ABSCHREIBUNGEN','H','60000','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('69001','Abschreibungen','A','69000','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('80000','AUSSERORDENTLICHER UND BETRIEBSFREMDER ERFOLG, STEUERN','H','80000','I','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('80001','Ausserordentlicher Ertrag','A','80000','I','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('80002','Ausserordentlicher Aufwand','A','80000','I','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('89000','STEUERAUFWAND','H','80000','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('89001','Steuern','A','80000','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('90000','ABSCHLUSS','H','90000','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('91000','ERFOLGSRECHNUNG','H','91000','I','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('92000','BILANZ','H','92000','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('93000','GEWINNVERWENDUNG','H','93000','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('99000','SAMMEL- UND FEHLBUCHUNGEN','H','99000','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('11121','Warenvorräte','A','11120','A','IC');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('44001','Aufwand für Drittleistungen','A','44000','E','AP_amount:IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('63001','Betriebsversicherungen','A','63000','E','AP_amount:IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('57004','Unfallversicherung','A','57000','E','AP_amount:IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('57005','Krankentaggeldversicherung','A','57000','E','AP_amount:IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('57003','Berufliche Vorsorge','A','57000','E','AP_amount:IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('57002','FAK','A','57000','E','AP_amount:IC_income:IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('65009','Übriger Verwaltungsaufwand','A','65000','E','AP_amount:IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('65003','Porti','A','65000','E','AP_amount:IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('65002','Telekomm','A','65000','E','AP_amount:IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('65001','Büromaterial','A','65000','E','AP_amount:IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('18181','Gründungsaufwand','A','18000','A','IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('50001','Löhne und Gehälter','A','50000','E','IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('50002','Erfolgsbeteiligungen','A','50000','E','IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('21216','Gesellschafter','A','21210','L','AP');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('62001','Fahrzeugaufwand','A','62000','E','AP_amount:IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('58003','Spesen','A','58000','E','IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('65004','Fachliteratur','A','65000','E','AP_amount:IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('39001','Skonti','A','39000','I','IC_sale:IC_cogs:IC_income:IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('39002','Rabatte, Preisnachlässe','A','39000','I','IC_sale:IC_cogs:IC_income:IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('36005','Kursgewinn','A','39000','I','IC_sale:IC_cogs:IC_income');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('39006','Kursverlust','A','39000','E','IC_sale:IC_cogs:IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('39005','Verluste aus Forderungen','A','39000','E','IC_sale:IC_cogs:IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('14151','Mobiliar und Einrichtungen','A','14150','A','IC');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('14152','Büromaschinen, EDV','A','14150','A','IC');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('11119','Verrechnungssteuer','A','11110','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('11118','MWST Vorsteuer auf Investitionen','A','11110','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('36004','Versand','A','36000','I','IC_income');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('36001','Reisezeit','A','36000','I','IC_income');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('36002','Reise (Fahrt)','A','36000','I','IC_income');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('11117','MWST Vorsteuer auf Aufwand','A','11110','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('21228','Geschuldete Steuern','A','21220','L','AP');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('21223','MWST (7,6)','A','21220','L','AR_tax:AP_tax:IC_taxpart:IC_expense:IC_taxservice');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('57001','AHV, IV, EO, ALV','A','57000','E','AP_amount:IC_income:IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('21221','MWST (2,4)','A','21220','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('21224','MWST (7.6) 1/2','A','21220','L','AR_tax:AP_tax:IC_taxpart:IC_expense:IC_taxservice');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('66001','Werbeaufwand','A','66000','E','AP_amount:IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('21217','Privat','A','21210','L','AP');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('11101','Kasse','A','11100','A','AR_paid:AP_paid');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('50005','Leistungen von Sozialversicherung','A','50000','E','AP_amount:IC_income:IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('65005','Informatikaufwand','A','65000','E','AP_amount:IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('39004','Rundungsdifferenzen','A','39000','I','AR_paid:AP_paid');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('11111','Debitoren','A','11110','A','AR');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('61001','Miete','A','61000','E','IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('61002','Reinigung','A','61000','E','IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('61005','Übriger Raumaufwand','A','61000','E','IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('36003','Essen','A','36000','I','IC_income');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('21231','Passive Rechnungsabgrenzung','A','21230','L','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('67002','Produkteentwicklung','A','67000','E','');
+--
+insert into tax (chart_id,rate) values ((select id from chart where accno = '21222'),0.036);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '21223'),0.076);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '21221'),0.024);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '21224'),0.076);
+--
+update defaults set inventory_accno_id = (select id from chart where accno = '11121'), income_accno_id = (select id from chart where accno = '34002'), expense_accno_id = (select id from chart where accno = '42005'), fxgain_accno_id = (select id from chart where accno = '36005'), fxloss_accno_id = (select id from chart where accno = '39006'), curr = 'CHF:EUR:USD', weightunit = 'kg';
+--
diff --git a/sql/Swiss-German-gifi.sql b/sql/Swiss-German-gifi.sql
new file mode 100755
index 00000000..ecd526d3
--- /dev/null
+++ b/sql/Swiss-German-gifi.sql
@@ -0,0 +1,55 @@
+--
+INSERT INTO gifi (accno,description) VALUES ('1','AKTIVEN');
+INSERT INTO gifi (accno,description) VALUES ('2','PASSIVEN');
+INSERT INTO gifi (accno,description) VALUES ('4','AUFWAND FÜR MATERIAL, WAREN UND DIENSTLEISTUNGEN');
+INSERT INTO gifi (accno,description) VALUES ('5','PERSONALAUFWAND');
+INSERT INTO gifi (accno,description) VALUES ('10000','ANLAGEVERMÖGEN');
+INSERT INTO gifi (accno,description) VALUES ('11000','Forderungen');
+INSERT INTO gifi (accno,description) VALUES ('11100','Bank');
+INSERT INTO gifi (accno,description) VALUES ('11110','MWST Vorsteuer auf Investitionen');
+INSERT INTO gifi (accno,description) VALUES ('11120','Angefangene Arbeiten');
+INSERT INTO gifi (accno,description) VALUES ('14150','Büromaschinen, EDV');
+INSERT INTO gifi (accno,description) VALUES ('18000','Gründungsaufwand');
+INSERT INTO gifi (accno,description) VALUES ('20000','FREMDKAPITAL LANGFRISTIG');
+INSERT INTO gifi (accno,description) VALUES ('21000','Kurzfristige Finanzverbindlichkeiten');
+INSERT INTO gifi (accno,description) VALUES ('21200','Sozialversicherungen');
+INSERT INTO gifi (accno,description) VALUES ('21210','Gesellschafter');
+INSERT INTO gifi (accno,description) VALUES ('21220','MWST (3,6)');
+INSERT INTO gifi (accno,description) VALUES ('21230','Passive Rechnungsabgrenzung');
+INSERT INTO gifi (accno,description) VALUES ('24000','Gesellschafter');
+INSERT INTO gifi (accno,description) VALUES ('28000','Stammkapital');
+INSERT INTO gifi (accno,description) VALUES ('28290','Gewinnvortrag');
+INSERT INTO gifi (accno,description) VALUES ('30000','ÜBRIGER ERTRAG');
+INSERT INTO gifi (accno,description) VALUES ('31000','Computer');
+INSERT INTO gifi (accno,description) VALUES ('32000','Software kommerz.');
+INSERT INTO gifi (accno,description) VALUES ('34000','Beratung');
+INSERT INTO gifi (accno,description) VALUES ('36000','Essen');
+INSERT INTO gifi (accno,description) VALUES ('37000','Eigenleistungen');
+INSERT INTO gifi (accno,description) VALUES ('38000','Bestandesänderungen');
+INSERT INTO gifi (accno,description) VALUES ('39000','Rabatte, Preisnachlässe');
+INSERT INTO gifi (accno,description) VALUES ('40000','AUFWANDMINDERUNGEN');
+INSERT INTO gifi (accno,description) VALUES ('41000','Übrige Produkte');
+INSERT INTO gifi (accno,description) VALUES ('42000','Software kommerz.');
+INSERT INTO gifi (accno,description) VALUES ('44000','Aufwand für Drittleistungen');
+INSERT INTO gifi (accno,description) VALUES ('47000','Einkaufsspesen');
+INSERT INTO gifi (accno,description) VALUES ('48000','Bestandesänderungen');
+INSERT INTO gifi (accno,description) VALUES ('49000','Aufwandminderungen');
+INSERT INTO gifi (accno,description) VALUES ('50000','Löhne und Gehälter');
+INSERT INTO gifi (accno,description) VALUES ('57000','FAK');
+INSERT INTO gifi (accno,description) VALUES ('58000','Spesen');
+INSERT INTO gifi (accno,description) VALUES ('60000','VERWALTUNGS- UND INFORMATIKAUFWAND');
+INSERT INTO gifi (accno,description) VALUES ('61000','Reinigung');
+INSERT INTO gifi (accno,description) VALUES ('61900','Unterhalt');
+INSERT INTO gifi (accno,description) VALUES ('62000','Fahrzeugaufwand');
+INSERT INTO gifi (accno,description) VALUES ('63000','Betriebsversicherungen');
+INSERT INTO gifi (accno,description) VALUES ('65000','Übriger Verwaltungsaufwand');
+INSERT INTO gifi (accno,description) VALUES ('66000','Werbeaufwand');
+INSERT INTO gifi (accno,description) VALUES ('67000','Produkteentwicklung');
+INSERT INTO gifi (accno,description) VALUES ('68000','Finanzaufwand');
+INSERT INTO gifi (accno,description) VALUES ('69000','Abschreibungen');
+INSERT INTO gifi (accno,description) VALUES ('80000','AUSSERORDENTLICHER UND BETRIEBSFREMDER ERFOLG, STEUERN');
+INSERT INTO gifi (accno,description) VALUES ('90000','ABSCHLUSS');
+INSERT INTO gifi (accno,description) VALUES ('91000','ERFOLGSRECHNUNG');
+INSERT INTO gifi (accno,description) VALUES ('92000','BILANZ');
+INSERT INTO gifi (accno,description) VALUES ('93000','GEWINNVERWENDUNG');
+INSERT INTO gifi (accno,description) VALUES ('99000','SAMMEL- UND FEHLBUCHUNGEN');
diff --git a/sql/Traditional-Chinese_Default-UTF8-chart.sql b/sql/Traditional-Chinese_Default-UTF8-chart.sql
new file mode 100755
index 00000000..b2e9c469
--- /dev/null
+++ b/sql/Traditional-Chinese_Default-UTF8-chart.sql
@@ -0,0 +1,78 @@
+-- Default chart of accounts -- sample only
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2190','應付所得稅','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2600','長期負債','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3300','股份資本','H','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3500','ä¿ç•™ç›ˆé¤˜','H','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4000','銷售盈餘','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4300','諮詢盈餘','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4400','其它盈餘','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5000','貨銷æˆæœ¬','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5400','薪資支出','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5600','日常åŠç®¡ç†æ”¯å‡º','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1205','呆帳備抵','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1000','æµå‹•è³‡ç”¢','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1800','資本資產','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link,contra) values ('1825','累計分期付款 - è£ç’œåŠè¨­å‚™.','A','','A','','1');
+insert into chart (accno,description,charttype,gifi_accno,category,link,contra) values ('1845','累計分期付款 - é‹è¼¸å·¥å…·','A','','A','','1');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2000','æµå‹•è² å‚µ','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2620','銀行借款','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3600','æµå‹•ç›ˆé¤˜','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2160','應付公å¸ç¨…','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3590','ä¿ç•™ç›ˆé¤˜ - 去年度','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3350','普通股份','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1500','存貨資產','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5615','廣告行銷','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5790','工具','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5700','辦公用å“','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5800','權利金','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5610','會計法務','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5685','ä¿éšª','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5660','分期支出','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5620','壞帳','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5680','所得稅','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5690','利æ¯åŠéŠ€è¡Œæ‰‹çºŒè²»','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5410','薪資','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5420','ä¿éšªæ”¯å‡º','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5430','退休金支出','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5440','補償金支出','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5470','å“¡å·¥ç¦åˆ©','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4030','銷售 / 軟體','A','','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4440','利æ¯','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5100','é‹è²»','A','','E','AP_amount:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5760','租金','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1530','庫存 / 軟體','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1540','庫存 / 二級市場零件','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4040','銷售 / 二級市場零件','A','','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5030','貨銷æˆæœ¬ / 軟體','A','','E','AP_amount:IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5010','採購','A','','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5040','貨銷æˆæœ¬ / 二級市場零件','A','','E','AP_amount:IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1065','零用金','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1820','辦公室è£ç’œåŠè¨­å‚™','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5785','æ—…è²»åŠå¨›æ¨‚','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2680','è‚¡æ±è²¸æ¬¾','A','','L','AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5795','註冊費','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5780','電信費','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5781','網路連線費','A','','E','AP_amount:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5765','維修管ç†è²»','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2311','地方稅','A','','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4430','é‹éŠ·è²»','A','','I','IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1520','庫存 / 硬體','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5020','貨銷æˆæœ¬ / 硬體','A','','E','AP_amount:IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2100','應付帳款','A','','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1840','é‹è¼¸å·¥å…·','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4330','程å¼è¨­è¨ˆ','A','','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4020','銷售 / 硬體','A','','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4320','諮詢','A','','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1200','應收帳款','A','','A','AR');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1061','支票戶頭','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2310','商å“æœå‹™ç¨…','A','','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+--
+-- exchange rate
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4450','Foreign Exchange Gain','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5810','Foreign Exchange Loss','A','','E','');
+--
+insert into tax (chart_id,rate) values ((select id from chart where accno = '2310'),0.07);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '2311'),0.08);
+--
+update defaults set inventory_accno_id = (select id from chart where accno = '1520'), income_accno_id = (select id from chart where accno = '4020'), expense_accno_id = (select id from chart where accno = '5010'), fxgain_accno_id = (select id from chart where accno = '4450'), fxloss_accno_id = (select id from chart where accno = '5810'), curr = 'USD', weightunit = 'kg';
+--
diff --git a/sql/Traditional-Chinese_Default-chart.sql b/sql/Traditional-Chinese_Default-chart.sql
new file mode 100755
index 00000000..341200ff
--- /dev/null
+++ b/sql/Traditional-Chinese_Default-chart.sql
@@ -0,0 +1,78 @@
+-- Default chart of accounts -- sample only
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2190','À³¥I©Ò±oµ|','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2600','ªø´Á­t¶Å','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3300','ªÑ¥÷¸ê¥»','H','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3500','«O¯d¬Õ¾l','H','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4000','¾P°â¬Õ¾l','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4300','¿Ô¸ß¬Õ¾l','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4400','¨ä¥¦¬Õ¾l','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5000','³f¾P¦¨¥»','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5400','Á~¸ê¤ä¥X','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5600','¤é±`¤ÎºÞ²z¤ä¥X','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1205','§b±b³Æ©è','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1000','¬y°Ê¸ê²£','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1800','¸ê¥»¸ê²£','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link,contra) values ('1825','²Ö­p¤À´Á¥I´Ú - ¸Ë¿X¤Î³]³Æ.','A','','A','','1');
+insert into chart (accno,description,charttype,gifi_accno,category,link,contra) values ('1845','²Ö­p¤À´Á¥I´Ú - ¹B¿é¤u¨ã','A','','A','','1');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2000','¬y°Ê­t¶Å','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2620','»È¦æ­É´Ú','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3600','¬y°Ê¬Õ¾l','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2160','À³¥I¤½¥qµ|','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3590','«O¯d¬Õ¾l - ¥h¦~«×','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3350','´¶³qªÑ¥÷','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1500','¦s³f¸ê²£','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5615','¼s§i¦æ¾P','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5790','¤u¨ã','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5700','¿ì¤½¥Î«~','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5800','Åv§Qª÷','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5610','·|­pªk°È','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5685','«OÀI','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5660','¤À´Á¤ä¥X','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5620','Ãa±b','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5680','©Ò±oµ|','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5690','§Q®§¤Î»È¦æ¤âÄò¶O','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5410','Á~¸ê','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5420','«OÀI¤ä¥X','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5430','°h¥ðª÷¤ä¥X','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5440','¸ÉÀvª÷¤ä¥X','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5470','­û¤uºÖ§Q','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4030','¾P°â / ³nÅé','A','','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4440','§Q®§','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5100','¹B¶O','A','','E','AP_amount:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5760','¯²ª÷','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1530','®w¦s / ³nÅé','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1540','®w¦s / ¤G¯Å¥«³õ¹s¥ó','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4040','¾P°â / ¤G¯Å¥«³õ¹s¥ó','A','','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5030','³f¾P¦¨¥» / ³nÅé','A','','E','AP_amount:IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5010','±ÄÁÊ','A','','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5040','³f¾P¦¨¥» / ¤G¯Å¥«³õ¹s¥ó','A','','E','AP_amount:IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1065','¹s¥Îª÷','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1820','¿ì¤½«Ç¸Ë¿X¤Î³]³Æ','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5785','®È¶O¤Î®T¼Ö','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2680','ªÑªF¶U´Ú','A','','L','AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5795','µù¥U¶O','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5780','¹q«H¶O','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5781','ºô¸ô³s½u¶O','A','','E','AP_amount:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5765','ºû­×ºÞ²z¶O','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2311','¦a¤èµ|','A','','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4430','¹B¾P¶O','A','','I','IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1520','®w¦s / µwÅé','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5020','³f¾P¦¨¥» / µwÅé','A','','E','AP_amount:IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2100','À³¥I±b´Ú','A','','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1840','¹B¿é¤u¨ã','A','','A','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4330','µ{¦¡³]­p','A','','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4020','¾P°â / µwÅé','A','','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4320','¿Ô¸ß','A','','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1200','À³¦¬±b´Ú','A','','A','AR');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1061','¤ä²¼¤áÀY','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2310','°Ó«~ªA°Èµ|','A','','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+--
+-- exchange rate
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4450','Foreign Exchange Gain','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5810','Foreign Exchange Loss','A','','E','');
+--
+insert into tax (chart_id,rate) values ((select id from chart where accno = '2310'),0.07);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '2311'),0.08);
+--
+update defaults set inventory_accno_id = (select id from chart where accno = '1520'), income_accno_id = (select id from chart where accno = '4020'), expense_accno_id = (select id from chart where accno = '5010'), fxgain_accno_id = (select id from chart where accno = '4450'), fxloss_accno_id = (select id from chart where accno = '5810'), curr = 'USD', weightunit = 'kg';
+--
diff --git a/sql/UCOA-Form990-chart.sql b/sql/UCOA-Form990-chart.sql
new file mode 100755
index 00000000..42cbaea2
--- /dev/null
+++ b/sql/UCOA-Form990-chart.sql
@@ -0,0 +1,229 @@
+-- UCOA Form 990
+--
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1000','Cash','H','','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1010','Cash in bank-operating','A','45','A','AR_paid:AP_paid');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1020','Cash in bank-payroll','A','45','A','AP_paid');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1040','Petty cash','A','45','A','AR_paid:AP_paid');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1070','Savings & short-term investments','A','46','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1100','Accounts receivable','H','','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1110','Accounts receivable','A','47a','A','AR');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link, contra) VALUES ('1115','Doubtful accounts allowance','A','47b','A','AR_paid','1');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1200','Contributions receivable','H','','A','AR');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1210','Pledges receivable','A','48a','A','AR');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link, contra) VALUES ('1215','Doubtful pledges allowance','A','48b','A','AR_paid','1');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link, contra) VALUES ('1225','Discounts - long-term pledges','A','48a','A','AR_paid','1');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1240','Grants receivable','A','49','A','AR');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link, contra) VALUES ('1245','Discounts - long-term grants','A','49','A','AR_paid','1');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1300','Other receivables','H','','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1310','Employee & trustee receivables','A','50','A','AR');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1320','Notes/loans receivable','A','51a','A','AR');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link, contra) VALUES ('1325','Doubtful notes/loans allowance','A','51b','A','AR_paid','1');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1400','Other assets','H','','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1410','Inventories for sale','A','52','A','IC');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1420','Inventories for use','A','52','A','IC');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1450','Prepaid expenses','A','53','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1460','Accrued revenues','A','47a','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1500','Investments','H','','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1510','Marketable securities ','A','54','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1530','Land held for investment','A','55a','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1540','Buildings held for investment','A','55a','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link, contra) VALUES ('1545','Accum deprec - bldg investment','A','55b','A','','1');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1580','Investments - other','A','56','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1600','Fixed operating assets','H','','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1610','Land - operating','A','57a','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1620','Buildings - operating','A','57a','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1630','Leasehold improvements','A','57a','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1640','Furniture, fixtures, & equip','A','57a','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1650','Vehicles','A','57a','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1660','Construction in progress','A','57a','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1700','Accum deprec - fixed operating assets','H','','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link, contra) VALUES ('1725','Accum deprec - building','A','57b','A','','1');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link, contra) VALUES ('1735','Accum amort - leasehold improvements','A','57b','A','','1');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link, contra) VALUES ('1745','Accum deprec - furn,fix,equip','A','57b','A','','1');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link, contra) VALUES ('1755','Accum deprec - vehicles','A','57b','A','','1');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1810','Other long-term assets','A','58','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1850','Split-interest agreements','A','58','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1910','Collections - art, etc','A','58','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1950','Funds held in trust by others','A','58','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2000','Payables','H','','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2010','Accounts payable','A','60','L','AP');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2020','Grants & allocations payable','A','61','L','AP');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2100','Accrued liabilities','H','','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2110','Accrued payroll','A','60','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2120','Accrued paid leave','A','60','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2130','Accrued payroll taxes','A','60','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2140','Accrued sales taxes','A','60','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2150','Accrued expenses - other','A','60','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2300','Unearned/deferred revenue','H','','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2310','Deferred contract revenue','A','62','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2350','Unearned/deferred revenue - other','A','62','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2410','Refundable advances','A','62','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2500','Short-term notes & loans payable','H','','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2510','Trustee & employee loans payable','A','63','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2550','Line of credit','A','65','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2560','Current portion - long-term loan','A','65','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2570','Short-term liabilities - other','A','65','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2610',' Split-interest liabilities','A','65','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2700','Long-term notes & loans payable','H','','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2710','Bonds payable','A','64a','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2730','Mortgages payable','A','64b','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2750','Capital leases','A','64b','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2770','Long-term liabilities - other','A','64a','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2810','Gov\'t-owned fixed assets liability','A','65','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2910','Custodial funds','A','65','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('3000','Unrestricted net assets','H','','Q','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('3010','Unrestricted net assets','A','21&67','Q','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('3020','Board-designated net assets','A','21&67','Q','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('3030','Board designated quasi-endowment','A','21&67','Q','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('3040','Fixed operating net assets','A','21&67','Q','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('3100','Temporarily restricted net assets','H','','Q','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('3110','Use restricted net assets','A','21&68','Q','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('3120','Time restricted net assets','A','21&68','Q','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('3200','Permanently restricted net assets','H','','Q','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('3210','Endowment net assets','A','21&69','Q','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4000','Revenue from direct contributions','H','','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4010','Individual/small business contributions','A','1a','I','AR_amount:IC_income');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4020','Corporate contributions','A','1a','I','AR_amount:IC_income');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4070','Legacies & bequests','A','1a','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link, contra) VALUES ('4075','Uncollectible pledges - estimated','A','contra1a','I','','1');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link, contra) VALUES ('4085','Long-term pledges discount','A','contra1a','I','','1');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4100','Donated goods & services revenue','H','','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4110','Donated professional services-GAAP','A','PartIV-A&82b','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4120','Donated other services - non-GAAP','A','PartIV-A&82b','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4130','Donated use of facilities','A','PartIV-A&82b','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4140','Gifts in kind - goods','A','1d','I','AR_amount:IC_sale');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4150','Donated art, etc','A','1d','I','AR_amount:IC_sale');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4200','Revenue from non-government grants','H','','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4210','Corporate/business grants','A','1a','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4230','Foundation/trust grants','A','1a','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4250','Nonprofit organization grants','A','1a','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link, contra) VALUES ('4255','Discounts - long-term grants','A','contra1a','I','','1');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4300','Revenue from split-interest agreements','H','','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4310','Split-interest agreement contributions','A','1a','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4350','Gain (loss) split-interest agreements','A','20','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4400','Revenue from indirect contributions','H','','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4410','United Way or CFC contributions','A','1b','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4420','Affiliated organizations revenue','A','1b','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4430','Fundraising agencies revenue','A','1b','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4500','Revenue from government grants','H','','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4510','Agency (government) grants','A','1c','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4520','Federal grants','A','1c','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4530','State grants','A','1c','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4540','Local government grants','A','1c','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5000','Revenue from government agencies','H','','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5010','Agency (government) contracts/fees','A','2&93(g)','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5020','Federal contracts/fees','A','2&93(g)','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5030','State contracts/fees','A','2&93(g)','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5040','Local government contracts/fees','A','2&93(g)','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5080','Medicare/Medicaid payments','A','2&93f','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5100','Revenue from program-related sales & fees','H','','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5180','Program service fees','A','2&93(a)','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5185','Bad debts, est - program fees','A','2&93(a)','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5200','Revenue from dues','H','','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5210','Membership dues-individuals','A','3&94','I','AR_amount:IC_income');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5220','Assessments and dues-organizations','A','3&94','I','AR_amount:IC_income');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5300','Revenue from investments','H','','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5310','Interest-savings/short-term investments','A','4&95','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5320','Dividends & interest - securities','A','5&96','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5330','Real estate rent - debt-financed','A','6a&97a','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5335','Real estate rental cost - debt-financed','A','6b&97a','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5340','Real estate rent - not debt-financed','A','6a&97b','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5345','Real estate rental cost - not debt-financed','A','6b&97b','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5350','Personal property rent','A','6a&98','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link, contra) VALUES ('5355','Personal property rental cost','A','6b&98','I','','1');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5360','Other investment income','A','7&99','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5370','Securities sales - gross','A','8a-(A)&100','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link, contra) VALUES ('5375','Securities sales cost ','A','8b-(A)&100','I','','1');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5400','Revenue from other sources','H','','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5410','Non-inventory sales - gross','A','8a-(B)&100','I','AR_amount:IC_income');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link, contra) VALUES ('5415','Non-inventory sales cost ','A','8b-(B)&100','I','','1');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5440','Gross sales - inventory','A','10a&102','I','AR_amount:IC_sale');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link, contra) VALUES ('5445','Cost of inventory sold ','A','10b&102','I','','1');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5450','Advertising revenue','A','11&103','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5460','Affiliate revenues from other entities','A','11&103','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5490','Misc revenue','A','11&103','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5800','Special events','H','','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5810','Special events - non-gift revenue','A','9a&101','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5820','Special events - gift revenue','A','1a&(9a)','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('6800','Unrealized gain (loss)','H','','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('6810','Unrealized gain (loss) - investments','A','PartIV-A','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('6820','Unrealized gain (loss) - other assets','A','PartIV-A','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('6900','Net assets released from restriction','H','','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('6910','Satisfaction of use restriction','A','','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('6920','LB&E acquisition satisfaction','A','','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('6930','Time restriction satisfaction','A','','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('7000','Grantscts, & direct assistance','H','','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('7010','Contracts - program-related','A','22','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('7020','Grants to other organizations','A','22','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('7040','Awards & grants - individuals','A','22','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('7050','Specific assistance - individuals','A','23','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('7060','Benefits paid to or for members','A','24','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('7200','Salaries & related expenses','H','','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('7210','Officers & directors salaries','A','25','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('7220','Salaries & wages - other','A','26','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('7230','Pension plan contributions','A','27','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('7240','Employee benefits - not pension','A','28','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('7250','Payroll taxes, etc.','A','29','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('7500','Contract service expenses','H','','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('7510','Fundraising fees','A','30','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('7520','Accounting fees','A','31','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('7530','Legal fees','A','32','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('7540','Professional fees - other','A','43','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('7550','Temporary help - contract','A','43','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('7580','Donated professional services - GAAP','A','PartIV-B,82b','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('7590','Donated other services - non-GAAP','A','PartIV-B,82b','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8100','Nonpersonnel expenses','H','','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8110','Supplies','A','33','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8120','Donated materials & supplies','A','33','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8130','Telephone & telecommunications','A','34','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8140','Postage & shipping','A','35','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8150','Mailing services','A','35','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8170','Printing & copying','A','38','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8180','Books, subscriptions, references','A','38','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8190','In-house publications','A','38','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8200','Facility & equipment expenses','H','','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8210','Rent, parking, other occupancy','A','36','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8220','Utilities','A','36','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8230','Real estate taxes','A','36','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8240','Personal property taxes','A','36','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8250','Mortgage interest','A','36','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8260','Equipment rental & maintenance','A','37','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8270','Deprec & amort - allowable','A','42','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8280','Deprec & amort - not allowable','A','42','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8290','Donated facilities ','A','PartIV-B,82b','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8300','Travel & meetings expenses','H','','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8310','Travel','A','39','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8320','Conferences, conventions, meetings','A','40','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8500','Other expenses','H','','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8510','Interest-general','A','41','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8520','Insurance - non-employee related','A','43','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8530','Membership dues - organization','A','43','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8540','Staff development','A','43','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8550','List rental','A','43','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8560','Outside computer services','A','43','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8570','Advertising expenses','A','43','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8580','Contingency provisions','A','43','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8590','Other expenses','A','43','E','AP_amount:IC_expense');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8600','Business expenses','H','','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8610','Bad debt expense ','A','43','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8620','Sales taxes','A','43','E','AP_tax');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8630','UBITaxes ','A','43','E','AP_tax');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8650','Taxes - other','A','43','E','AP_tax');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8660','Fines, penalties, judgments','A','43','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8670','Organizational (corp) expenses','A','43','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('9800','Fixed asset purchases ','H','','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('9810','Capital purchases - land','A','capitalized','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('9820','Capital purchases - building','A','capitalized','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('9830','Capital purchases - equipment','A','capitalized','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('9840','Capital purchases - vehicles','A','capitalized','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('9900','Other Allocations','H','','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('9910','Payments to affiliates','A','16','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('9920','Additions to reserves','A','','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('9930','Program administration allocations','A','','E','');
+--
+insert into tax (chart_id,rate) values ((select id from chart where accno = '8620'),0);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '8630'),0);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '8650'),0);
+--
+update defaults set inventory_accno_id = (select id from chart where accno = '1410'), income_accno_id = (select id from chart where accno = '4010'), expense_accno_id = (select id from chart where accno = '7510'), fxgain_accno_id = (select id from chart where accno = '5490'), fxloss_accno_id = (select id from chart where accno = '8590'), curr = 'USD', weightunit = 'lbs';
+
diff --git a/sql/UCOA-Form990-gifi.sql b/sql/UCOA-Form990-gifi.sql
new file mode 100755
index 00000000..ac40c13b
--- /dev/null
+++ b/sql/UCOA-Form990-gifi.sql
@@ -0,0 +1,84 @@
+INSERT INTO gifi (accno, description) VALUES ('PartIV-B,82b', 'Part IV-B, 82b');
+INSERT INTO gifi (accno, description) VALUES ('10a&102', 'Line 10a & 102');
+INSERT INTO gifi (accno, description) VALUES ('10b&102', 'Line 10b & 102');
+INSERT INTO gifi (accno, description) VALUES ('11&103', 'Line 11 & 103');
+INSERT INTO gifi (accno, description) VALUES ('16', 'Line 16');
+INSERT INTO gifi (accno, description) VALUES ('1a&(9a)', 'Line 1a & (9a)');
+INSERT INTO gifi (accno, description) VALUES ('1a', 'Line 1a');
+INSERT INTO gifi (accno, description) VALUES ('1b', 'Line 1b');
+INSERT INTO gifi (accno, description) VALUES ('1c', 'Line 1c');
+INSERT INTO gifi (accno, description) VALUES ('1d', 'Line 1d');
+INSERT INTO gifi (accno, description) VALUES ('2&93(a)', 'Line 2 & 93(a)');
+INSERT INTO gifi (accno, description) VALUES ('2&93(g)', 'Line 2 & 93(g)');
+INSERT INTO gifi (accno, description) VALUES ('2&93f', 'Line 2 & 93f');
+INSERT INTO gifi (accno, description) VALUES ('20', 'Line 20');
+INSERT INTO gifi (accno, description) VALUES ('21&67', 'Line 21 & 67');
+INSERT INTO gifi (accno, description) VALUES ('21&68', 'Line 21 & 68');
+INSERT INTO gifi (accno, description) VALUES ('21&69', 'Line 21 & 69');
+INSERT INTO gifi (accno, description) VALUES ('22', 'Line 22');
+INSERT INTO gifi (accno, description) VALUES ('23', 'Line 23');
+INSERT INTO gifi (accno, description) VALUES ('24', 'Line 24');
+INSERT INTO gifi (accno, description) VALUES ('25', 'Line 25');
+INSERT INTO gifi (accno, description) VALUES ('26', 'Line 26');
+INSERT INTO gifi (accno, description) VALUES ('27', 'Line 27');
+INSERT INTO gifi (accno, description) VALUES ('28', 'Line 28');
+INSERT INTO gifi (accno, description) VALUES ('29', 'Line 29');
+INSERT INTO gifi (accno, description) VALUES ('3&94', 'Line 3 & 94');
+INSERT INTO gifi (accno, description) VALUES ('30', 'Line 30');
+INSERT INTO gifi (accno, description) VALUES ('31', 'Line 31');
+INSERT INTO gifi (accno, description) VALUES ('32', 'Line 32');
+INSERT INTO gifi (accno, description) VALUES ('33', 'Line 33');
+INSERT INTO gifi (accno, description) VALUES ('34', 'Line 34');
+INSERT INTO gifi (accno, description) VALUES ('35', 'Line 35');
+INSERT INTO gifi (accno, description) VALUES ('36', 'Line 36');
+INSERT INTO gifi (accno, description) VALUES ('37', 'Line 37');
+INSERT INTO gifi (accno, description) VALUES ('38', 'Line 38');
+INSERT INTO gifi (accno, description) VALUES ('39', 'Line 39');
+INSERT INTO gifi (accno, description) VALUES ('4&95', 'Line 4 & 95');
+INSERT INTO gifi (accno, description) VALUES ('40', 'Line 40');
+INSERT INTO gifi (accno, description) VALUES ('41', 'Line 41');
+INSERT INTO gifi (accno, description) VALUES ('42', 'Line 42');
+INSERT INTO gifi (accno, description) VALUES ('43', 'Line 43');
+INSERT INTO gifi (accno, description) VALUES ('45', 'Line 45');
+INSERT INTO gifi (accno, description) VALUES ('46', 'Line 46');
+INSERT INTO gifi (accno, description) VALUES ('47a', 'Line 47a');
+INSERT INTO gifi (accno, description) VALUES ('47b', 'Line 47b');
+INSERT INTO gifi (accno, description) VALUES ('48a', 'Line 48a');
+INSERT INTO gifi (accno, description) VALUES ('48b', 'Line 48b');
+INSERT INTO gifi (accno, description) VALUES ('49', 'Line 49');
+INSERT INTO gifi (accno, description) VALUES ('5&96', 'Line 5 & 96');
+INSERT INTO gifi (accno, description) VALUES ('50', 'Line 50');
+INSERT INTO gifi (accno, description) VALUES ('51a', 'Line 51a');
+INSERT INTO gifi (accno, description) VALUES ('51b', 'Line 51b');
+INSERT INTO gifi (accno, description) VALUES ('52', 'Line 52');
+INSERT INTO gifi (accno, description) VALUES ('53', 'Line 53');
+INSERT INTO gifi (accno, description) VALUES ('54', 'Line 54');
+INSERT INTO gifi (accno, description) VALUES ('55a', 'Line 55a');
+INSERT INTO gifi (accno, description) VALUES ('55b', 'Line 55b');
+INSERT INTO gifi (accno, description) VALUES ('56', 'Line 56');
+INSERT INTO gifi (accno, description) VALUES ('57a', 'Line 57a');
+INSERT INTO gifi (accno, description) VALUES ('57b', 'Line 57b');
+INSERT INTO gifi (accno, description) VALUES ('58', 'Line 58');
+INSERT INTO gifi (accno, description) VALUES ('60', 'Line 60');
+INSERT INTO gifi (accno, description) VALUES ('61', 'Line 61');
+INSERT INTO gifi (accno, description) VALUES ('62', 'Line 62');
+INSERT INTO gifi (accno, description) VALUES ('63', 'Line 63');
+INSERT INTO gifi (accno, description) VALUES ('64a', 'Line 64a');
+INSERT INTO gifi (accno, description) VALUES ('64b', 'Line 64b');
+INSERT INTO gifi (accno, description) VALUES ('65', 'Line 65');
+INSERT INTO gifi (accno, description) VALUES ('6a&97a', 'Line 6a & 97a');
+INSERT INTO gifi (accno, description) VALUES ('6a&97b', 'Line 6a & 97b');
+INSERT INTO gifi (accno, description) VALUES ('6a&98', 'Line 6a & 98');
+INSERT INTO gifi (accno, description) VALUES ('6b&97a', 'Line 6b & 97a');
+INSERT INTO gifi (accno, description) VALUES ('6b&97b', 'Line 6b & 97b');
+INSERT INTO gifi (accno, description) VALUES ('6b&98', 'Line 6b & 98');
+INSERT INTO gifi (accno, description) VALUES ('7&99', 'Line 7 & 99');
+INSERT INTO gifi (accno, description) VALUES ('8a-(A)&100', 'Line 8a-(A) & 100');
+INSERT INTO gifi (accno, description) VALUES ('8a-(B)&100', 'Line 8a-(B) & 100');
+INSERT INTO gifi (accno, description) VALUES ('8b-(A)&100', 'Line 8b-(A) & 100');
+INSERT INTO gifi (accno, description) VALUES ('8b-(B)&100', 'Line 8b-(B) & 100');
+INSERT INTO gifi (accno, description) VALUES ('9a&101', 'Line 9a & 101');
+INSERT INTO gifi (accno, description) VALUES ('PartIV-A&82b', 'Part IV-A & 82b');
+INSERT INTO gifi (accno, description) VALUES ('PartIV-A', 'Part IV-A');
+INSERT INTO gifi (accno, description) VALUES ('capitalized', 'capitalized');
+INSERT INTO gifi (accno, description) VALUES ('contra1a', 'contra Line 1a');
diff --git a/sql/UCOA-Form990EZ-chart.sql b/sql/UCOA-Form990EZ-chart.sql
new file mode 100755
index 00000000..936102d1
--- /dev/null
+++ b/sql/UCOA-Form990EZ-chart.sql
@@ -0,0 +1,229 @@
+-- UCOA Form 990EZ
+--
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1000','Cash','H','','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1010','Cash in bank-operating','A','22','A','AR_paid:AP_paid');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1020','Cash in bank-payroll','A','22','A','AP_paid');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1040','Petty cash','A','22','A','AR_paid:AP_paid');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1070','Savings & short-term investments','A','22','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1100','Accounts receivable','H','','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1110','Accounts receivable','A','24','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link, contra) VALUES ('1115','Doubtful accounts allowance','A','24','A','AR_paid','1');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1200','Contributions receivable','H','','A','AR');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1210','Pledges receivable','A','24','A','AR');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link, contra) VALUES ('1215','Doubtful pledges allowance','A','24','A','AR_paid','1');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link, contra) VALUES ('1225','Discounts - long-term pledges','A','24','A','AR_paid','1');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1240','Grants receivable','A','24','A','AR');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link, contra) VALUES ('1245','Discounts - long-term grants','A','24','A','AR_paid','1');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1300','Other receivables','H','','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1310','Employee & trustee receivables','A','24','A','AR');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1320','Notes/loans receivable','A','24','A','AR');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link, contra) VALUES ('1325','Doubtful notes/loans allowance','A','24','A','AR_paid','1');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1400','Other assets','H','','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1410','Inventories for sale','A','24','A','IC');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1420','Inventories for use','A','24','A','IC');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1450','Prepaid expenses','A','24','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1460','Accrued revenues','A','24','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1500','Investments','H','','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1510','Marketable securities ','A','22','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1530','Land held for investment','A','22','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1540','Buildings held for investment','A','22','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link, contra) VALUES ('1545','Accum deprec - bldg investment','A','22','A','','1');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1580','Investments - other','A','22','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1600','Fixed operating assets','H','','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1610','Land - operating','A','23','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1620','Buildings - operating','A','23','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1630','Leasehold improvements','A','24','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1640','Furniture, fixtures, & equip','A','24','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1650','Vehicles','A','24','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1660','Construction in progress','A','24','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1700','Accum deprec - fixed operating assets','H','','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link, contra) VALUES ('1725','Accum deprec - building','A','23','A','','1');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link, contra) VALUES ('1735','Accum amort - leasehold improvements','A','24','A','','1');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link, contra) VALUES ('1745','Accum deprec - furn,fix,equip','A','24','A','','1');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link, contra) VALUES ('1755','Accum deprec - vehicles','A','24','A','','1');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1810','Other long-term assets','A','24','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1850','Split-interest agreements','A','24','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1910','Collections - art, etc','A','24','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('1950','Funds held in trust by others','A','24','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2000','Payables','H','','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2010','Accounts payable','A','26','L','AP');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2020','Grants & allocations payable','A','26','L','AP');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2100','Accrued liabilities','H','','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2110','Accrued payroll','A','26','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2120','Accrued paid leave','A','26','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2130','Accrued payroll taxes','A','26','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2140','Accrued sales taxes','A','26','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2150','Accrued expenses - other','A','26','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2300','Unearned/deferred revenue','H','','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2310','Deferred contract revenue','A','26','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2350','Unearned/deferred revenue - other','A','26','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2410','Refundable advances','A','26','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2500','Short-term notes & loans payable','H','','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2510','Trustee & employee loans payable','A','26','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2550','Line of credit','A','26','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2560','Current portion - long-term loan','A','26','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2570','Short-term liabilities - other','A','26','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2610',' Split-interest liabilities','A','26','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2700','Long-term notes & loans payable','H','','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2710','Bonds payable','A','26','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2730','Mortgages payable','A','26','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2750','Capital leases','A','26','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2770','Long-term liabilities - other','A','26','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2810','Gov\'t-owned fixed assets liability','A','26','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('2910','Custodial funds','A','26','L','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('3000','Unrestricted net assets','H','','Q','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('3010','Unrestricted net assets','A','21&27','Q','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('3020','Board-designated net assets','A','21&27','Q','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('3030','Board designated quasi-endowment','A','21&27','Q','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('3040','Fixed operating net assets','A','21&27','Q','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('3100','Temporarily restricted net assets','H','','Q','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('3110','Use restricted net assets','A','21&27','Q','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('3120','Time restricted net assets','A','21&27','Q','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('3200','Permanently restricted net assets','H','','Q','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('3210','Endowment net assets','A','21&27','Q','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4000','Revenue from direct contributions','H','','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4010','Individual/small business contributions','A','1','I','AR_amount:IC_income');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4020','Corporate contributions','A','1','I','AR_amount:IC_income');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4070','Legacies & bequests','A','1','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link, contra) VALUES ('4075','Uncollectible pledges - estimated','A','1','I','','1');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link, contra) VALUES ('4085','Long-term pledges discount','A','1','I','','1');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4100','Donated goods & services revenue','H','','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4110','Donated professional services-GAAP','A','','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4120','Donated other services - non-GAAP','A','','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4130','Donated use of facilities','A','','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4140','Gifts in kind - goods','A','1','I','AR_amount:IC_sale');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4150','Donated art, etc','A','1','I','AR_amount:IC_sale');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4200','Revenue from non-government grants','H','','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4210','Corporate/business grants','A','1','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4230','Foundation/trust grants','A','1','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4250','Nonprofit organization grants','A','1','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link, contra) VALUES ('4255','Discounts - long-term grants','A','1','I','','1');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4300','Revenue from split-interest agreements','H','','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4310','Split-interest agreement contributions','A','1','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4350','Gain (loss) split-interest agreements','A','1','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4400','Revenue from indirect contributions','H','','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4410','United Way or CFC contributions','A','1','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4420','Affiliated organizations revenue','A','1','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4430','Fundraising agencies revenue','A','1','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4500','Revenue from government grants','H','','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4510','Agency (government) grants','A','1','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4520','Federal grants','A','1','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4530','State grants','A','1','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('4540','Local government grants','A','1','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5000','Revenue from government agencies','H','','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5010','Agency (government) contracts/fees','A','2','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5020','Federal contracts/fees','A','2','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5030','State contracts/fees','A','2','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5040','Local government contracts/fees','A','2','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5080','Medicare/Medicaid payments','A','2','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5100','Revenue from program-related sales & fees','H','','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5180','Program service fees','A','2','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5185','Bad debts, est - program fees','A','2','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5200','Revenue from dues','H','','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5210','Membership dues-individuals','A','3','I','AR_amount:IC_income');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5220','Assessments and dues-organizations','A','3','I','AR_amount:IC_income');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5300','Revenue from investments','H','','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5310','Interest-savings/short-term investments','A','4','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5320','Dividends & interest - securities','A','4','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5330','Real estate rent - debt-financed','A','8','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5335','Real estate rental cost - debt-financed','A','8','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5340','Real estate rent - not debt-financed','A','8','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5345','Real estate rental cost - not debt-financed','A','8','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5350','Personal property rent','A','8','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link, contra) VALUES ('5355','Personal property rental cost','A','8','I','','1');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5360','Other investment income','A','4','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5370','Securities sales - gross','A','5a','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link, contra) VALUES ('5375','Securities sales cost ','A','5b','I','','1');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5400','Revenue from other sources','H','','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5410','Non-inventory sales - gross','A','5a','I','AR_amount:IC_income');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link, contra) VALUES ('5415','Non-inventory sales cost ','A','5b','I','','1');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5440','Gross sales - inventory','A','8','I','AR_amount:IC_sale');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link, contra) VALUES ('5445','Cost of inventory sold ','A','8','I','','1');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5450','Advertising revenue','A','8','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5460','Affiliate revenues from other entities','A','8','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5490','Misc revenue','A','8','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5800','Special events','H','','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5810','Special events - non-gift revenue','A','6a','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('5820','Special events - gift revenue','A','1&(6a)','I','AR_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('6800','Unrealized gain (loss)','H','','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('6810','Unrealized gain (loss) - investments','A','','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('6820','Unrealized gain (loss) - other assets','A','','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('6900','Net assets released from restriction','H','','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('6910','Satisfaction of use restriction','A','','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('6920','LB&E acquisition satisfaction','A','','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('6930','Time restriction satisfaction','A','','I','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('7000','Grantscts, & direct assistance','H','','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('7010','Contracts - program-related','A','10','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('7020','Grants to other organizations','A','10','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('7040','Awards & grants - individuals','A','10','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('7050','Specific assistance - individuals','A','10','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('7060','Benefits paid to or for members','A','11','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('7200','Salaries & related expenses','H','','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('7210','Officers & directors salaries','A','12','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('7220','Salaries & wages - other','A','12','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('7230','Pension plan contributions','A','12','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('7240','Employee benefits - not pension','A','12','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('7250','Payroll taxes, etc.','A','12','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('7500','Contract service expenses','H','','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('7510','Fundraising fees','A','13','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('7520','Accounting fees','A','13','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('7530','Legal fees','A','13','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('7540','Professional fees - other','A','13','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('7550','Temporary help - contract','A','13','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('7580','Donated professional services - GAAP','A','','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('7590','Donated other services - non-GAAP','A','','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8100','Nonpersonnel expenses','H','','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8110','Supplies','A','16','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8120','Donated materials & supplies','A','16','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8130','Telephone & telecommunications','A','16','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8140','Postage & shipping','A','15','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8150','Mailing services','A','15','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8170','Printing & copying','A','15','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8180','Books, subscriptions, references','A','15','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8190','In-house publications','A','15','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8200','Facility & equipment expenses','H','','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8210','Rent, parking, other occupancy','A','14','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8220','Utilities','A','14','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8230','Real estate taxes','A','14','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8240','Personal property taxes','A','14','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8250','Mortgage interest','A','14','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8260','Equipment rental & maintenance','A','14','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8270','Deprec & amort - allowable','A','16','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8280','Deprec & amort - not allowable','A','16','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8290','Donated facilities ','A','','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8300','Travel & meetings expenses','H','','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8310','Travel','A','16','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8320','Conferences, conventions, meetings','A','16','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8500','Other expenses','H','','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8510','Interest-general','A','16','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8520','Insurance - non-employee related','A','16','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8530','Membership dues - organization','A','16','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8540','Staff development','A','16','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8550','List rental','A','16','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8560','Outside computer services','A','16','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8570','Advertising expenses','A','16','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8580','Contingency provisions','A','16','E','AP_amount');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8590','Other expenses','A','16','E','AP_amount:IC_expense');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8600','Business expenses','H','','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8610','Bad debt expense ','A','16','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8620','Sales taxes','A','16','E','AP_tax');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8630','UBITaxes ','A','16','E','AP_tax');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8650','Taxes - other','A','16','E','AP_tax');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8660','Fines, penalties, judgments','A','16','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('8670','Organizational (corp) expenses','A','16','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('9800','Fixed asset purchases ','H','','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('9810','Capital purchases - land','A','capitalized','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('9820','Capital purchases - building','A','capitalized','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('9830','Capital purchases - equipment','A','capitalized','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('9840','Capital purchases - vehicles','A','capitalized','A','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('9900','Other Allocations','H','','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('9910','Payments to affiliates','A','16','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('9920','Additions to reserves','A','','E','');
+INSERT INTO chart (accno, description, charttype, gifi_accno, category, link) VALUES ('9930','Program administration allocations','A','','E','');
+--
+insert into tax (chart_id,rate) values ((select id from chart where accno = '8620'),0);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '8630'),0);
+insert into tax (chart_id,rate) values ((select id from chart where accno = '8650'),0);
+--
+update defaults set inventory_accno_id = (select id from chart where accno = '1410'), income_accno_id = (select id from chart where accno = '4010'), expense_accno_id = (select id from chart where accno = '7510'), fxgain_accno_id = (select id from chart where accno = '5490'), fxloss_accno_id = (select id from chart where accno = '8590'), curr = 'USD', weightunit = 'lbs';
+
diff --git a/sql/UCOA-Form990EZ-gifi.sql b/sql/UCOA-Form990EZ-gifi.sql
new file mode 100755
index 00000000..74f95c60
--- /dev/null
+++ b/sql/UCOA-Form990EZ-gifi.sql
@@ -0,0 +1,22 @@
+INSERT INTO gifi (accno, description) VALUES ('1&(6a)', 'Line 1 & (6a)');
+INSERT INTO gifi (accno, description) VALUES ('1', 'Line 1');
+INSERT INTO gifi (accno, description) VALUES ('10', 'Line 10');
+INSERT INTO gifi (accno, description) VALUES ('11', 'Line 11');
+INSERT INTO gifi (accno, description) VALUES ('12', 'Line 12');
+INSERT INTO gifi (accno, description) VALUES ('13', 'Line 13');
+INSERT INTO gifi (accno, description) VALUES ('14', 'Line 14');
+INSERT INTO gifi (accno, description) VALUES ('15', 'Line 15');
+INSERT INTO gifi (accno, description) VALUES ('16', 'Line 16');
+INSERT INTO gifi (accno, description) VALUES ('2', 'Line 2');
+INSERT INTO gifi (accno, description) VALUES ('21&27', 'Line 21 & 27');
+INSERT INTO gifi (accno, description) VALUES ('22', 'Line 22');
+INSERT INTO gifi (accno, description) VALUES ('23', 'Line 23');
+INSERT INTO gifi (accno, description) VALUES ('24', 'Line 24');
+INSERT INTO gifi (accno, description) VALUES ('26', 'Line 26');
+INSERT INTO gifi (accno, description) VALUES ('3', 'Line 3');
+INSERT INTO gifi (accno, description) VALUES ('4', 'Line 4');
+INSERT INTO gifi (accno, description) VALUES ('5a', 'Line 5a');
+INSERT INTO gifi (accno, description) VALUES ('5b', 'Line 5b');
+INSERT INTO gifi (accno, description) VALUES ('6a', 'Line 6a');
+INSERT INTO gifi (accno, description) VALUES ('8', 'Line 8');
+INSERT INTO gifi (accno, description) VALUES ('capitalized', 'capitalized');
diff --git a/sql/UK_General-chart.sql b/sql/UK_General-chart.sql
new file mode 100755
index 00000000..1e66bc01
--- /dev/null
+++ b/sql/UK_General-chart.sql
@@ -0,0 +1,109 @@
+-- sample COA for UK
+--
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0010','Freehold Property','A','','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0011','Goodwill','A','','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0012','Goodwill Amortisation','A','','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0020','Plant and Machinery','A','','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link,contra) VALUES ('0021','Plant/Machinery Depreciation','A','','A','','1');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0030','Office Equipment','A','','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link,contra) VALUES ('0031','Office Equipment Depreciation','A','','A','','1');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0040','Furniture and Fixtures','A','','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link,contra) VALUES ('0041','Furniture/Fixture Depreciation','A','','A','','1');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('0050','Motor Vehicles','A','','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link,contra) VALUES ('0051','Motor Vehicles Depreciation','A','','A','','1');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1001','Stock','A','','A','IC');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1002','Work in Progress','A','','A','IC');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1100','Debtors Control Account','A','','A','AR');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1102','Other Debtors','A','','A','AR');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1103','Prepayments','A','','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1200','Bank Current Account','A','','A','AR_paid:AP_paid');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1210','Bank Deposit Account','A','','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1220','Building Society Account','A','','A','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1230','Petty Cash','A','','A','AR_paid:AP_paid');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('1240','Company Credit Card','A','','L','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('2100','Creditors Control Account','A','','L','AP');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('2102','Other Creditors','A','','L','AP');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('2109','Accruals','A','','L','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('2200','VAT (17.5%)','A','','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('2205','VAT (5%)','A','','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('2210','P.A.Y.E. & National Insurance','A','','L','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('2220','Net Wages','A','','L','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('2250','Corporation Tax','A','','L','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('2300','Bank Loan','A','','L','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('2305','Directors loan account','A','','L','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('2310','Hire Purchase','A','','L','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('2330','Mortgages','A','','L','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('3000','Ordinary Shares','A','','Q','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('3010','Preference Shares','A','','Q','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('3100','Share Premium Account','A','','Q','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('3200','Profit and Loss Account','A','','Q','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4000','Sales','A','','I','AR_amount:IC_sale:IC_income');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4010','Export Sales','A','','I','AR_amount:IC_sale:IC_income');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4009','Discounts Allowed','A','','I','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4900','Miscellaneous Income','A','','I','AR_amount:IC_sale:IC_income');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4904','Rent Income','A','','I','AR_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4906','Interest received','A','','I','AR_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('4920','Foreign Exchange Gain','A','','I','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5000','Materials Purchased','A','','E','AP_amount:IC_cogs:IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5001','Materials Imported','A','','E','AP_amount:IC_cogs:IC_expense');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5002','Opening Stock','A','','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5003','Closing Stock','A','','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5200','Packaging','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5201','Discounts Taken','A','','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5202','Carriage','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5203','Import Duty','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5204','Transport Insurance','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5205','Equipment Hire','A','','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('5220','Foreign Exchange Loss','A','','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('6000','Productive Labour','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('6001','Cost of Sales Labour','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('6002','Sub-Contractors','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('7000','Staff wages & salaries','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('7002','Directors Remuneration','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('7006','Employers N.I.','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('7007','Employers Pensions','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('7008','Recruitment Expenses','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('7100','Rent','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('7102','Water Rates','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('7103','General Rates','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('7104','Premises Insurance','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('7200','Light & heat','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('7300','Motor expenses','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('7350','Travelling','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('7400','Advertising','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('7402','P.R. (Literature & Brochures)','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('7403','U.K. Entertainment','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('7404','Overseas Entertainment','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('7500','Postage and Carriage','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('7501','Office Stationery','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('7502','Telephone','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('7506','Web Site costs','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('7600','Legal Fees','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('7601','Audit and Accountancy Fees','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('7603','Professional Fees','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('7701','Office Machine Maintenance','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('7710','Computer expenses','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('7800','Repairs and Renewals','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('7801','Cleaning','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('7802','Laundry','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('7900','Bank Interest Paid','A','','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('7901','Bank Charges','A','','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('7903','Loan Interest Paid','A','','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('7904','H.P. Interest','A','','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('8000','Depreciation','A','','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('8005','Goodwill Amortisation','A','','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('8100','Bad Debt Write Off','A','','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('8201','Subscriptions','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('8202','Clothing Costs','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('8203','Training Costs','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('8204','Insurance','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('8205','Refreshments','A','','E','AP_amount');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('8500','Dividends','A','','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('8600','Corporation Tax','A','','E','');
+INSERT INTO chart (accno,description,charttype,gifi_accno,category,link) VALUES ('9999','Suspense Account','A','','E','');
+--
+INSERT INTO tax (chart_id,rate) VALUES ((SELECT id FROM chart WHERE accno = '2200'),0.175);
+INSERT INTO tax (chart_id,rate) VALUES ((SELECT id FROM chart WHERE accno = '2205'),0.05);
+--
+UPDATE defaults SET inventory_accno_id = (SELECT id FROM chart WHERE accno = '1001'), income_accno_id = (SELECT id FROM chart WHERE accno = '4000'), expense_accno_id = (SELECT id FROM chart WHERE accno = '5000'), fxgain_accno_id = (SELECT id FROM chart WHERE accno = '4920'), fxloss_accno_id = (SELECT id FROM chart WHERE accno = '5220'), curr = 'GBP:USD:EUR', weightunit = 'kg';
+
diff --git a/sql/US_General-chart.sql b/sql/US_General-chart.sql
new file mode 100755
index 00000000..a1a6939a
--- /dev/null
+++ b/sql/US_General-chart.sql
@@ -0,0 +1,90 @@
+-- US_General COA
+-- modify as needed
+--
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1000','CURRENT ASSETS','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1060','Checking Account','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1065','Petty Cash','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1200','Accounts Receivables','A','','A','AR');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1205','Allowance for doubtful accounts','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1500','INVENTORY ASSETS','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1510','Inventory','A','','A','IC');
+
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1800','CAPITAL ASSETS','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1820','Office Furniture & Equipment','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link,contra) values ('1825','Accum. Amort. -Furn. & Equip.','A','','A','','1');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1840','Vehicle','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link,contra) values ('1845','Accum. Amort. -Vehicle','A','','A','','1');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2000','CURRENT LIABILITIES','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2100','Accounts Payable','A','','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2600','LONG TERM LIABILITIES','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2620','Bank Loans','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2680','Loans from Shareholders','A','','L','AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3300','SHARE CAPITAL','H','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3350','Common Shares','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3500','RETAINED EARNINGS','H','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3590','Retained Earnings - prior years','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4000','SALES REVENUE','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4010','Sales','A','','I','AR_amount:IC_sale');
+
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4400','OTHER REVENUE','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4430','Shipping & Handling','A','','I','IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4440','Interest','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4450','Foreign Exchange Gain','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5000','COST OF GOODS SOLD','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5010','Purchases','A','','E','AP_amount:IC_cogs:IC_expense');
+
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5100','Freight','A','','E','AP_amount:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5400','PAYROLL EXPENSES','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5410','Wages & Salaries','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5600','GENERAL & ADMINISTRATIVE EXPENSES','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5610','Accounting & Legal','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5615','Advertising & Promotions','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5620','Bad Debts','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5660','Amortization Expense','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5685','Insurance','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5690','Interest & Bank Charges','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5700','Office Supplies','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5760','Rent','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5765','Repair & Maintenance','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5780','Telephone','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5785','Travel & Entertainment','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5790','Utilities','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5795','Registrations','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5800','Licenses','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5810','Foreign Exchange Loss','A','','E','');
+--
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2110','Accrued Income Tax - Federal','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2120','Accrued Income Tax - State','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2130','Accrued Franchise Tax','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2140','Accrued Real & Personal Prop Tax','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2150','Sales Tax','A','','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2160','Accrued Use Tax Payable','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2210','Accrued Wages','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2220','Accrued Comp Time','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2230','Accrued Holiday Pay','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2240','Accrued Vacation Pay','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2310','Accr. Benefits - 401K','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2320','Accr. Benefits - Stock Purchase','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2330','Accr. Benefits - Med, Den','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2340','Accr. Benefits - Payroll Taxes','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2350','Accr. Benefits - Credit Union','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2360','Accr. Benefits - Savings Bond','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2370','Accr. Benefits - Garnish','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2380','Accr. Benefits - Charity Cont.','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5420','Wages - Overtime','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5430','Benefits - Comp Time','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5440','Benefits - Payroll Taxes','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5450','Benefits - Workers Comp','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5460','Benefits - Pension','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5470','Benefits - General Benefits','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5510','Inc Tax Exp - Federal','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5520','Inc Tax Exp - State','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5530','Taxes - Real Estate','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5540','Taxes - Personal Property','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5550','Taxes - Franchise','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5560','Taxes - Foreign Withholding','A','','E','');
+--
+insert into tax (chart_id,rate) values ((select id from chart where accno = '2150'),0.05);
+--
+update defaults set inventory_accno_id = (select id from chart where accno = '1510'), income_accno_id = (select id from chart where accno = '4010'), expense_accno_id = (select id from chart where accno = '5010'), fxgain_accno_id = (select id from chart where accno = '4450'), fxloss_accno_id = (select id from chart where accno = '5810'), curr = 'USD:CAD:EUR', weightunit = 'lbs';
+--
diff --git a/sql/US_Manufacturing-chart.sql b/sql/US_Manufacturing-chart.sql
new file mode 100755
index 00000000..b293cd17
--- /dev/null
+++ b/sql/US_Manufacturing-chart.sql
@@ -0,0 +1,82 @@
+-- US_Manufacturing COA
+-- modify as needed
+--
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1000','CURRENT ASSETS','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1060','Checking Account','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1065','Petty Cash','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1200','Accounts Receivables','A','','A','AR');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1205','Allowance for doubtful accounts','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1500','INVENTORY ASSETS','H','','A','');
+
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1520','Inventory / General','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1530','Inventory / Raw Materials','A','1126','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1540','Inventory / Work in process','A','1125','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1550','Inventory / Finished Goods','A','1121','A','IC');
+
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1800','CAPITAL ASSETS','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1820','Office Furniture & Equipment','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link,contra) values ('1825','Accum. Amort. -Furn. & Equip.','A','','A','','1');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1840','Vehicle','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link,contra) values ('1845','Accum. Amort. -Vehicle','A','','A','','1');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2000','CURRENT LIABILITIES','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2100','Accounts Payable','A','','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2600','LONG TERM LIABILITIES','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2620','Bank Loans','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2680','Loans from Shareholders','A','','L','AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3300','SHARE CAPITAL','H','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3350','Common Shares','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3500','RETAINED EARNINGS','H','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3590','Retained Earnings - prior years','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4000','SALES REVENUE','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4020','Sales / General','A','','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4030','Sales / Manufactured Goods','A','','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4040','Sales / Aftermarket Parts','A','','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4400','OTHER REVENUE','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4430','Shipping & Handling','A','','I','IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4440','Interest','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4450','Foreign Exchange Gain','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5000','COST OF GOODS SOLD','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5010','Purchases','A','','E','AP_amount:IC_cogs:IC_expense');
+
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5020','COGS / General','A','','E','AP_amount:IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5030','COGS / Raw Materials','A','','E','AP_amount:IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5040','COGS / Direct Labor','A','','E','AP_amount:IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5050','COGS / Overhead','A','','E','AP_amount:IC_cogs');
+
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5100','Freight','A','','E','AP_amount:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5400','PAYROLL EXPENSES','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5410','Wages & Salaries','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5600','GENERAL & ADMINISTRATIVE EXPENSES','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5610','Accounting & Legal','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5615','Advertising & Promotions','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5620','Bad Debts','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5660','Amortization Expense','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5685','Insurance','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5690','Interest & Bank Charges','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5700','Office Supplies','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5760','Rent','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5765','Repair & Maintenance','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5780','Telephone','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5785','Travel & Entertainment','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5790','Utilities','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5795','Registrations','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5800','Licenses','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5810','Foreign Exchange Loss','A','','E','');
+--
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2110','Accrued Income Tax - Federal','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2120','Accrued Income Tax - State','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2130','Accrued Franchise Tax','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2140','Accrued Real & Personal Prop Tax','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2150','Sales Tax','A','','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2210','Accrued Wages','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5510','Inc Tax Exp - Federal','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5520','Inc Tax Exp - State','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5530','Taxes - Real Estate','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5540','Taxes - Personal Property','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5550','Taxes - Franchise','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5560','Taxes - Foreign Withholding','A','','E','');
+--
+insert into tax (chart_id,rate) values ((select id from chart where accno = '2150'),0.05);
+--
+update defaults set inventory_accno_id = (select id from chart where accno = '1520'), income_accno_id = (select id from chart where accno = '4020'), expense_accno_id = (select id from chart where accno = '5020'), fxgain_accno_id = (select id from chart where accno = '4450'), fxloss_accno_id = (select id from chart where accno = '5810'), curr = 'USD:CAD:EUR', weightunit = 'lbs';
+
diff --git a/sql/US_Service_Company-chart.sql b/sql/US_Service_Company-chart.sql
new file mode 100755
index 00000000..a7cd8b23
--- /dev/null
+++ b/sql/US_Service_Company-chart.sql
@@ -0,0 +1,68 @@
+-- US_Service_Company COA
+-- modify as needed
+--
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1000','CURRENT ASSETS','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1060','Checking Account','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1065','Petty Cash','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1200','Accounts Receivables','A','','A','AR');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1205','Allowance for doubtful accounts','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1500','INVENTORY ASSETS','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1520','Inventory','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1800','CAPITAL ASSETS','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1820','Office Furniture & Equipment','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link,contra) values ('1825','Accum. Amort. -Furn. & Equip.','A','','A','','1');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1840','Vehicle','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link,contra) values ('1845','Accum. Amort. -Vehicle','A','','A','','1');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2000','CURRENT LIABILITIES','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2100','Accounts Payable','A','','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2600','LONG TERM LIABILITIES','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2620','Bank Loans','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2680','Loans from Shareholders','A','','L','AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3300','SHARE CAPITAL','H','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3350','Common Shares','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3500','RETAINED EARNINGS','H','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3590','Retained Earnings - prior years','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4000','CONSULTING REVENUE','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4020','Consulting','A','','I','AR_amount:IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4400','OTHER REVENUE','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4410','General Sales','A','','I','AR_amount:IC_income:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4440','Interest','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4450','Foreign Exchange Gain','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5000','EXPENSES','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5020','Purchases','A','','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5400','PAYROLL EXPENSES','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5410','Wages & Salaries','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5600','GENERAL & ADMINISTRATIVE EXPENSES','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5610','Accounting & Legal','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5615','Advertising & Promotions','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5620','Bad Debts','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5660','Amortization Expense','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5685','Insurance','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5690','Interest & Bank Charges','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5700','Office Supplies','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5760','Rent','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5765','Repair & Maintenance','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5780','Telephone','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5785','Travel & Entertainment','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5790','Utilities','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5795','Registrations','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5800','Licenses','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5810','Foreign Exchange Loss','A','','E','');
+--
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2110','Accrued Income Tax - Federal','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2120','Accrued Income Tax - State','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2130','Accrued Franchise Tax','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2140','Accrued Real & Personal Prop Tax','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2150','Sales Tax','A','','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2210','Accrued Wages','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5510','Inc Tax Exp - Federal','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5520','Inc Tax Exp - State','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5530','Taxes - Real Estate','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5540','Taxes - Personal Property','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5550','Taxes - Franchise','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5560','Taxes - Foreign Withholding','A','','E','');
+--
+insert into tax (chart_id,rate) values ((select id from chart where accno = '2150'),0.05);
+--
+update defaults set inventory_accno_id = (select id from chart where accno = '1520'), income_accno_id = (select id from chart where accno = '4410'), expense_accno_id = (select id from chart where accno = '5020'), fxgain_accno_id = (select id from chart where accno = '4450'), fxloss_accno_id = (select id from chart where accno = '5810'), curr = 'USD:CAD:EUR', weightunit = 'lbs';
+--
diff --git a/sql/Venezuela_Default-chart.sql b/sql/Venezuela_Default-chart.sql
new file mode 100755
index 00000000..99ac8fcc
--- /dev/null
+++ b/sql/Venezuela_Default-chart.sql
@@ -0,0 +1,87 @@
+-- Venezuela General COA
+-- modify as needed
+--
+
+-- ACTIVO
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1000','ACTIVO','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1050','Caja','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1100','Banesco APD','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1110','Provincial','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1120','Venezuela','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1130','Banesco JD','A','','A','AR_paid:AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1200','Cuentas por Cobrar','A','','A','AR');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1205','Provisión Cuentas Incobrables','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1500','INVENTARIO','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1520','Mercancía en Almacén','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1530','Mercancía en Consignación','A','','A','IC');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1800','ACTIVOS CAPITALES','H','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1820','Mobiliario y Equipo','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1825','Amort. Acum. -Inv. y Equip.','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1840','Vehículo','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1845','Amort. Acum. -Vehículo','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1850','Edificio','A','','A','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1855','Amort. Acum. -Edificio','A','','A','');
+-- PASIVO
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2000','PASIVO CORTO PLAZO','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2100','Cuentas por Pagar','A','','L','AP');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2600','PASIVO LARGO PLAZO','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2620','Préstamos Bancarios','A','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2680','Préstamos de Accionistas','A','','L','AP_paid');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2700','APARTADOS','H','','L','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2710','Apartados Indem. Laborales','A','','L','');
+-- CAPITAL
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3300','CAPITAL ACCIONARIO','H','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3350','Acciones Comunes','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3400','RESERVAS','H','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3410','Reserva Legal','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3420','Reserva Voluntaria','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3500','UTILIDADES RETENIDAS','H','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3590','Utilidades Retenidas - años anteriores','A','','Q','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3600','Ganancia del Ejercicio','A','','Q','');
+-- INGRESO
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4000','INGRESOS PRINCIPALES','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4020','Ventas Autopartes','A','','I','AR_amount:IC_sale');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4400','OTROS INGRESOS','H','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4430','Shipping & Handling','A','','I','IC_income');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4440','Intereses','A','','I','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4450','Ganancia en Paridad Cambiaria','A','','I','');
+-- EGRESO
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5000','COSTO DE VENTA','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5010','Compras','A','','E','AP_amount:IC_cogs:IC_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5020','COSTO DE VENTA: Autopartes','A','','E','AP_amount:IC_cogs');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5100','Flete','A','','E','AP_amount:IC_expense');
+-- HR
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5400','GASTO DE PERSONAL','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5405','Sueldos Directivo y Administradores','A','','E','HR_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5410','Sueldos Empleados','A','','E','HR_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5415','Comisiones Vendedores','A','','E','HR_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5420','Vacaciones','A','','E','HR_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5425','Bono Vacacional','A','','E','HR_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5430','Utilidades','A','','E','HR_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5435','Indemnizaciones','A','','E','HR_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5440','Movilizaciones y Traslados','A','','E','HR_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5445','Gastos de Representación','A','','E','HR_expense');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5450','Instrucción y Mejoramiento','A','','E','HR_expense');
+
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5600','GASTOS GENERALES','H','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5610','Honorarios Profesionales','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5615','Propaganda','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5660','Gasto de Amortización','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5685','Seguros','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5690','Intereses y Gastos Bancarios','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5700','Artículos de Oficina','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5760','Alquileres','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5765','Reparación y Mantenimiento','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5780','Teléfono','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5785','Viajes y Entretenimiento','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5790','Servicios','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5795','Patentes','A','','E','AP_amount');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5810','Pérdidas Paridad Cambiaria','A','','E','');
+--
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2150','IVA','A','','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5510','ISRL','A','','E','');
+insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5530','Derecho de Frente','A','','E','');
+--
+insert into tax (chart_id,rate) values ((select id from chart where accno = '2150'),0.16);
+--
+update defaults set inventory_accno_id = (select id from chart where accno = '1520'), income_accno_id = (select id from chart where accno = '4020'), expense_accno_id = (select id from chart where accno = '5020'), fxgain_accno_id = (select id from chart where accno = '4450'), fxloss_accno_id = (select id from chart where accno = '5810'), curr = 'VEB:USD', weightunit = 'kg';
diff --git a/templates/.foo.sh.swp b/templates/.foo.sh.swp
new file mode 100644
index 00000000..ef3caa49
--- /dev/null
+++ b/templates/.foo.sh.swp
Binary files differ
diff --git a/templates/Brazilian_Portuguese-ap_transaction.html b/templates/Brazilian_Portuguese-ap_transaction.html
new file mode 100755
index 00000000..e14e5ace
--- /dev/null
+++ b/templates/Brazilian_Portuguese-ap_transaction.html
@@ -0,0 +1,229 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>T R A N S A Ç Ã O - C P</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Fatura#</th>
+ <td><%invnumber%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Date</th>
+ <td><%invdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Vencimento</th>
+ <td><%duedate%></td>
+ </tr>
+ <tr>
+ <th align=left>Pedido #</th>
+ <td><%ordnumber%>&nbsp;</td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Funcionário</th>
+ <td><%employee%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=50%>
+ <table>
+ <%foreach account%>
+ <tr valign=top>
+ <td><%accno%></td>
+ <td><%account%></td>
+ <td align=right><%amount%></td>
+ <td><%projectnumber%></td>
+ </tr>
+ <%end account%>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Subtotal</th>
+ <td align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=2 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ </table>
+ </td>
+ <td width=50%>
+ <%notes%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <tr>
+ <td>&nbsp;</td>
+
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%text_amount%> ***** <%decimal%>/100 <%currency%>
+ </td>
+ </tr>
+
+ <%if paid%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <tr>
+ <th>Pagamentos</th>
+ </tr>
+
+ <tr>
+ <td>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=left>Data</th>
+ <th align=left>Conta</th>
+ <th align=left>Fonte</th>
+ <th align=left>Obs.</th>
+ <th align=left>Valor</th>
+ </tr>
+ <%end paid%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td><%paymentmemo%></td>
+ <td><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid%>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <%end paid%>
+
+ <tr height=10></tr>
+
+ <%if taxincluded%>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <th colspan=3 align=left><font size=-2>Os impostos estão incuídos nos preços.</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Brazilian_Portuguese-ap_transaction.tex b/templates/Brazilian_Portuguese-ap_transaction.tex
new file mode 100755
index 00000000..3fde80a1
--- /dev/null
+++ b/templates/Brazilian_Portuguese-ap_transaction.tex
@@ -0,0 +1,113 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[top=2cm,bottom=-1cm,left=2cm,right=1cm]{geometry}
+\usepackage{graphicx}
+\setlength{\parindent}{0pt}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+\centerline{\textbf{A P} \hspace{0.3cm} \textbf{T R A N S A C T I O N}}
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+<%end contact%>
+
+\vspace{0.2cm}
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Invoice \#} & <%invnumber%> \\
+ \textbf{Date} & <%invdate%> \\
+ \textbf{Due} & <%duedate%> \\
+ \textbf{Order \#} & <%ordnumber%> \\
+ \textbf{Employee} & <%employee%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabularx}{.5\textwidth}[t]{@{}llrl@{}}
+<%foreach amount%>
+ <%accno%> & <%account%> & <%amount%> & <%projectnumber%> \\
+<%end amount%>
+
+ \multicolumn{2}{r}{\textbf{Subtotal}} & <%subtotal%> & \\
+<%foreach tax%>
+ \multicolumn{2}{r}{\textbf{<%taxdescription%> @ <%taxrate%> \%}} & <%tax%> & \\
+<%end tax%>
+
+ \multicolumn{2}{r}{\textbf{Total}} & <%invtotal%> & \\
+
+\end{tabularx}
+<%notes%>
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100 <%currency%>
+
+\vspace{0.3cm}
+
+<%if paid%>
+\begin{tabular}{@{}llllr@{}}
+ \multicolumn{5}{c}{\textbf{Payments}} \\
+ \hline
+ \textbf{Date} & & \textbf{Source} & \textbf{Memo} & \textbf{Amount} \\
+<%end paid%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%paymentmemo%> & <%payment%> \\
+<%end payment%>
+<%if paid%>
+\end{tabular}
+<%end paid%>
+
+\end{document}
+
diff --git a/templates/Brazilian_Portuguese-ar_transaction.html b/templates/Brazilian_Portuguese-ar_transaction.html
new file mode 100755
index 00000000..bfe0f060
--- /dev/null
+++ b/templates/Brazilian_Portuguese-ar_transaction.html
@@ -0,0 +1,237 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>T R A N S A Ç Ã O - C R</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Fatura #</th>
+ <td><%invnumber%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Data</th>
+ <td><%invdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Vencimento</th>
+ <td><%duedate%></td>
+ </tr>
+ <tr>
+ <th align=left>Pedido #</th>
+ <td><%ordnumber%>&nbsp;</td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Vendedor</th>
+ <td><%employee%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=50%>
+ <table>
+ <%foreach account%>
+ <tr valign=top>
+ <td><%accno%></td>
+ <td><%account%></td>
+ <td align=right><%amount%></td>
+ <td><%projectnumber%></td>
+ </tr>
+ <%end account%>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Subtotal</th>
+ <td align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=2 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ </table>
+ </td>
+ <td width=50%>
+ <%notes%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <tr>
+ <td>&nbsp;</td>
+
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%text_amount%> ***** <%decimal%>/100 <%currency%>
+ </td>
+ </tr>
+
+ <%if paid%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <tr>
+ <th>Pagamentos</th>
+ </tr>
+
+ <tr>
+ <td>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=left>Data</th>
+ <th align=left>Conta</th>
+ <th align=left>Fonte</th>
+ <th align=left>Obs.</th>
+ <th align=left>Valor</th>
+ </tr>
+ <%end paid%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td><%paymentmemo%></td>
+ <td><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid%>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <%end paid%>
+
+ <tr height=10></tr>
+
+ <%foreach tax%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <th colspan=9 align=left><font size=-2><%taxdescription%> Registro <%taxnumber%></th>
+ </tr>
+ <%end tax%>
+
+ <%if taxincluded%>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <th colspan=3 align=left><font size=-2>Os impostos estão incluídos nos preços.</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Brazilian_Portuguese-ar_transaction.tex b/templates/Brazilian_Portuguese-ar_transaction.tex
new file mode 100755
index 00000000..f89130fd
--- /dev/null
+++ b/templates/Brazilian_Portuguese-ar_transaction.tex
@@ -0,0 +1,119 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[top=2cm,bottom=-1cm,left=2cm,right=1cm]{geometry}
+\usepackage{graphicx}
+\setlength{\parindent}{0pt}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+\centerline{\textbf{A R} \hspace{0.3cm} \textbf{T R A N S A C T I O N}}
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+<%end contact%>
+
+\vspace{0.2cm}
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Invoice \#} & <%invnumber%> \\
+ \textbf{Date} & <%invdate%> \\
+ \textbf{Due} & <%duedate%> \\
+ \textbf{Order \#} & <%ordnumber%> \\
+ \textbf{Employee} & <%employee%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabularx}{.5\textwidth}[t]{@{}llrl@{}}
+<%foreach amount%>
+ <%accno%> & <%account%> & <%amount%> & <%projectnumber%> \\
+<%end amount%>
+
+ \multicolumn{2}{r}{\textbf{Subtotal}} & <%subtotal%> & \\
+<%foreach tax%>
+ \multicolumn{2}{r}{\textbf{<%taxdescription%> @ <%taxrate%> \%}} & <%tax%> & \\
+<%end tax%>
+
+ \multicolumn{2}{r}{\textbf{Total}} & <%invtotal%> & \\
+
+\end{tabularx}
+<%notes%>
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100 <%currency%>
+
+\vspace{0.3cm}
+
+<%if paid%>
+\begin{tabular}{@{}llllr@{}}
+ \multicolumn{5}{c}{\textbf{Payments}} \\
+ \hline
+ \textbf{Date} & & \textbf{Source} & \textbf{Memo} & \textbf{Amount} \\
+<%end paid%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%paymentmemo%> & <%payment%> \\
+<%end payment%>
+<%if paid%>
+\end{tabular}
+<%end paid%>
+
+\vspace{0.5cm}
+
+<%foreach tax%>
+\textbf{\small{<%taxdescription%> Registration <%taxnumber%>}} \\
+<%end tax%>
+
+\end{document}
+
diff --git a/templates/Brazilian_Portuguese-balance_sheet.html b/templates/Brazilian_Portuguese-balance_sheet.html
new file mode 100755
index 00000000..f12964db
--- /dev/null
+++ b/templates/Brazilian_Portuguese-balance_sheet.html
@@ -0,0 +1,104 @@
+
+<body bgcolor=ffffff>
+
+<h2 align=center>
+<%company%>
+<br><%address%>
+
+<p>FOLHA DE BALANÇO
+<br>as at <%this_period%>
+</h2>
+
+<%if department%>
+<h4>Departamento: <%department%></h4>
+<%end department%>
+
+<table border=0>
+<tr>
+ <th align=left width=400 colspan=2>ATIVO<br><hr align=left width=250 size=5 noshade></th>
+ <th><%this_period%></th>
+ <th><%last_period%></th>
+</tr>
+
+<%foreach asset_account%>
+<tr>
+ <td> </td>
+ <td><%asset_account%></td>
+ <td align=right><%asset_this_period%></td>
+ <td align=right><%asset_last_period%></td>
+</tr>
+<%end asset_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>TOTAL DO ATIVO</th>
+ <td align=right><%total_assets_this_period%><hr noshade size=2></td>
+ <td align=right><%total_assets_last_period%><hr noshade size=2></td>
+</tr>
+
+<tr>
+ <th align=left colspan=4>OBRIGAÇÕES<b><hr align=left width=250 size=5 noshade></th>
+</tr>
+
+<%foreach liability_account%>
+<tr>
+ <td></td>
+ <td><%liability_account%></td>
+ <td align=right><%liability_this_period%></td>
+ <td align=right><%liability_last_period%></td>
+</tr>
+<%end liability_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td></td>
+ <th align=left>TOTAL DE OBRIGAÇÕES</th>
+ <td align=right><%total_liabilities_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_liabilities_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr>
+ <th align=left colspan=4>PATRIMÔNIO LIQUIDO<br><hr align=left width=250 size=5 noshade></th>
+</tr>
+
+<%foreach equity_account%>
+<tr>
+ <td></td>
+ <td><%equity_account%></td>
+ <td align=right><%equity_this_period%></td>
+ <td align=right><%equity_last_period%></td>
+</tr>
+<%end equity_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td></td>
+ <th align=left>TOTAL PATRIMÔNIO</th>
+ <td align=right><%total_equity_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_equity_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>TOTAL OBRIGAÇÕES & PATRIMÔNIO</th>
+ <td align=right><%total_this_period%><br><hr noshade size=2></td>
+ <td align=right><%total_last_period%><br><hr noshade size=2></td>
+</tr>
+</table>
+
+
+
diff --git a/templates/Brazilian_Portuguese-bin_list.html b/templates/Brazilian_Portuguese-bin_list.html
new file mode 100755
index 00000000..cea17910
--- /dev/null
+++ b/templates/Brazilian_Portuguese-bin_list.html
@@ -0,0 +1,189 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <th align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>L I S T A &nbsp;&nbsp; D E &nbsp;&nbsp; P R A T E LE I R A S</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% cellspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>De</th>
+ <th align=left width=50%><font color=ffffff>Enviar para</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+<br><%address2%>
+<%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+<%country%>
+<%end country%>
+ <br>
+
+ <%if contact%>
+ <br>A/C: <%contact%>
+ <%end contact%>
+
+ <%if vendorphone%>
+ <br>Tel: <%vendorphone%>
+ <%end vendorphone%>
+
+ <%if vendorfax%>
+ <br>Fax: <%vendorfax%>
+ <%end vendorfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+<br><%shiptoaddress2%>
+<%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+<%shiptocountry%>
+<%end shiptocountry%>
+
+ <br>
+ <%if shiptocontact%>
+ <br>A/C: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Pedido #</th>
+ <th width=17% align=left nowrap>Data</th>
+ <th width=17% align=left nowrap>Contato</th>
+ <%if warehouse%>
+ <th width=17% align=left nowrap>Armazém</th>
+ <%end warehouse%>
+ <th width=17% align=left>Local do despacho</th>
+ <th width=15% align=left>Enviar por</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%>&nbsp;</td>
+
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%orddate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+
+ <%if warehouse%>
+ <td><%warehouse%></td>
+ <%end warehouse%>
+
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Pos</th>
+ <th align=left><font color=ffffff>Número</th>
+ <th align=left><font color=ffffff>Descrição</th>
+ <th><font color=ffffff>Nº de série</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Qtd</th>
+ <th><font color=ffffff>Receb</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Local</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%></td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td><%serialnumber%></td>
+ <td><%deliverydate%></td>
+ <td align=right><%qty%></td>
+ <td align=right><%ship%></td>
+ <td><%unit%></td>
+ <td><%bin%></td>
+ </tr>
+ <%end number%>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+</table>
+
diff --git a/templates/Brazilian_Portuguese-bin_list.tex b/templates/Brazilian_Portuguese-bin_list.tex
new file mode 100755
index 00000000..c52f7756
--- /dev/null
+++ b/templates/Brazilian_Portuguese-bin_list.tex
@@ -0,0 +1,135 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[top=2cm,bottom=-1cm,left=2cm,right=1cm]{geometry}
+\usepackage{graphicx}
+\setlength{\parindent}{0pt}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Recd} & & \textbf{Bin} \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.5\textwidth}{
+\textbf{From}
+\vspace{0.7cm}
+
+<%name%>
+
+<%address1%>
+
+<%if %address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country4%>
+<%end country%>
+}
+\parbox[t]{.4\textwidth}{
+\textbf{Ship To}
+\vspace{0.7cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%if shiptoaddress2%>
+<%shiptoaddress2%>
+<%end shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%if shiptocountry%>
+<%shiptocountry%>
+<%end shiptocountry%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{B I N} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Date} & \textbf{Contact}
+ <%if warehouse%>
+ & \textbf{Warehouse}
+ <%end warehouse%>
+ & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+
+ <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%orddate%>
+ <%end shippingdate%>
+ & <%employee%>
+ <%if warehouse%>
+ & <%warehouse%>
+ <%end warehouse%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Recd} & & \textbf{Bin} \\
+
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%serialnumber%> &
+ <%deliverydate%> & <%qty%> & <%ship%> & <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabularx}
+
+
+\rule{\textwidth}{2pt}
+
+\end{document}
+
diff --git a/templates/Brazilian_Portuguese-check.tex b/templates/Brazilian_Portuguese-check.tex
new file mode 100755
index 00000000..ff3af006
--- /dev/null
+++ b/templates/Brazilian_Portuguese-check.tex
@@ -0,0 +1,65 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[top=2cm,bottom=-1cm,left=2cm,right=1cm]{geometry}
+\usepackage{graphicx}
+\setlength{\parindent}{0pt}
+
+\begin{document}
+
+
+\fontfamily{cmss}\fontsize{9pt}{9pt}\selectfont
+
+\parbox[t]{12cm}{
+ <%company%>
+
+ <%address%>}
+\hfill
+\parbox[t]{6cm}{\hfill <%source%>}
+
+\vspace*{0.6cm}
+
+<%text_amount%> \dotfill <%decimal%>/100 \makebox[0.5cm]{\hfill}
+
+\vspace{0.5cm}
+
+\hfill <%datepaid%> \makebox[2cm]{\hfill} <%amount%>
+
+\vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{2.8cm}
+
+<%company%>
+
+\vspace{0.5cm}
+
+<%name%> \hfill <%datepaid%> \hfill <%source%>
+
+\vspace{0.5cm}
+\begin{tabularx}{\textwidth}{lXrr@{}}
+\textbf{Número da Fatura} & \textbf{Data da Fatura}
+ & \textbf{Prazo} & \textbf{Aplicação} \\
+<%foreach invnumber%>
+<%invnumber%> & <%invdate%> \dotfill
+ & <%due%> & <%paid%> \\
+<%end invnumber%>
+\end{tabularx}
+
+\vfill
+
+\end{document}
+
diff --git a/templates/Brazilian_Portuguese-income_statement.html b/templates/Brazilian_Portuguese-income_statement.html
new file mode 100755
index 00000000..d6cd4733
--- /dev/null
+++ b/templates/Brazilian_Portuguese-income_statement.html
@@ -0,0 +1,82 @@
+
+<body bgcolor=ffffff>
+
+<h2 align=center>
+<%company%>
+<br><%address%>
+
+<p>APURAÇÃO DE LUCROS E PERDAS
+<br><%period%>
+</h2>
+
+<%if department%>
+<h4>Departamento: <%department%></h4>
+<%end department%>
+
+<%if projectnumber%>
+<h4>Número do Projeto: <%projectnumber%></h4>
+<%end projectnumber%>
+
+<table width=100% border=0>
+<tr>
+ <th width=400 align=left colspan=2>LUCRO<br><hr width=300 size=5 align=left noshade></th>
+ <th><%this_period%></th>
+ <th><%last_period%></th>
+</tr>
+
+<%foreach income_account%>
+<tr>
+ <td width=4> </td>
+ <td><%income_account%></td>
+ <td align=right><%income_this_period%></td>
+ <td align=right><%income_last_period%></td>
+</tr>
+<%end income_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td> </td>
+ <th align=left>TOTAL DE RECEITAS</th>
+ <td align=right><%total_income_this_period%><hr noshade size=2></td>
+ <td align=right><%total_income_last_period%><hr noshade size=2></td>
+</tr>
+
+<tr>
+ <th align=left colspan=2>DESPESAS<br><hr width=300 size=5 align=left noshade></th>
+</tr>
+
+<%foreach expense_account%>
+<tr>
+ <td> </td>
+ <td><%expense_account%></td>
+ <td align=right><%expenses_this_period%></td>
+ <td align=right><%expenses_last_period%></td>
+</tr>
+<%end expense_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td> </td>
+ <th align=left>TOTAL DE DESPESAS</th>
+ <td align=right><%total_expenses_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_expenses_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>LUCRO / (PREJUÍZO)</th>
+ <td align=right><%total_this_period%><br><hr noshade size=2></td>
+ <td align=right><%total_last_period%><br><hr noshade size=2></td>
+</tr>
+
+</table>
+
diff --git a/templates/Brazilian_Portuguese-invoice.html b/templates/Brazilian_Portuguese-invoice.html
new file mode 100755
index 00000000..326419b5
--- /dev/null
+++ b/templates/Brazilian_Portuguese-invoice.html
@@ -0,0 +1,337 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>F A T U R A</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>Para</th>
+ <th align=left width=50%><font color=ffffff>Enviar para</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ <br>
+
+ <%if shiptocontact%>
+ <br><%shiptocontact%>
+ <br>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%if shiptoemail%>
+ <br><%shiptoemail%>
+ <%end shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=14% align=left nowrap>Fatura #</th>
+ <th width=14% align=left nowrap>Data</th>
+ <th width=14% align=left nowrap>Vencimento</th>
+ <th width=14% align=left>Pedido #</th>
+ <th width=14% align=left nowrap>Vendedor</th>
+ <th width=14% align=left nowrap>Local do despacho</th>
+ <th width=14% align=left nowrap>Enviar por</th>
+ </tr>
+
+ <tr>
+ <td><%invnumber%></td>
+ <td><%invdate%></td>
+ <td><%duedate%></td>
+ <td><%ordnumber%>&nbsp;</td>
+ <td><%employee%>&nbsp;</td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>No.</th>
+ <th align=left><font color=ffffff>Número</th>
+ <th align=left><font color=ffffff>Descrição</th>
+ <th>&nbsp;</th>
+ <th align=right><font color=ffffff>Qtd</th>
+ <th>&nbsp;</th>
+ <th align=right><font color=ffffff>Preço unit.</th>
+ <th align=right><font color=ffffff>Desc %</th>
+ <th align=right><font color=ffffff>Extendido</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%>.</td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td><%deliverydate%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discountrate%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+ <%end number%>
+
+<!--
+you can also use netprice instead of sellprice if you
+don't want to show the discount
+netprice = sellprice - discount
+-->
+
+ <tr>
+ <td colspan=9><hr noshade></td>
+ </tr>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=7 align=right>Total</th>
+ <td colspan=2 align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=7 align=right>Subtotal</th>
+ <td colspan=2 align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=7 align=right><%taxdescription%> em <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if paid%>
+ <tr>
+ <th colspan=7 align=right>Pago</th>
+ <td colspan=2 align=right>- <%paid%></td>
+ </tr>
+ <%end paid%>
+
+ <tr>
+ <td colspan=5>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <%if total%>
+ <tr>
+ <td colspan=5>&nbsp;</td>
+ <th colspan=2 align=right nowrap>Pendente</th>
+ <th colspan=2 align=right><%total%></th>
+ </tr>
+ <%end total%>
+
+ <tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <%if notes%>
+ <td><%notes%></td>
+ <%end notes%>
+
+ <td><%text_amount%> ***** <%decimal%>/100</td>
+
+ <td align=right nowrap>
+ Todos os valores em <b><%currency%></b>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <%if paid%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td colspan=9>
+ <table width=60%>
+
+ <tr>
+ <th align=left>Pagamentos</th>
+ </tr>
+
+ <tr>
+ <td colspan=4>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <th align=left>Data</th>
+ <th align=left>Conta</th>
+ <th align=left>Fonte</th>
+ <th align=left>Valor</th>
+ </tr>
+ <%end paid%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid%>
+ </table>
+ </td>
+ </tr>
+ <%end paid%>
+
+ <tr height=10></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <th>
+ Obrigado pela preferência!
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=60%><font size=-3>
+ Pagamentos pendentes até <%duedate%>.
+ Itens devolvidos estão sujeitos a cobrança de 10% como taxa de reestocagem. Uma autorização de devolução deve ser obtida de <%company%> antes da devolução das mercadorias. Devoluções devem ser enviadas com frete pago e com o seguro apropriado. <%company%> não se responsabilizará por danos durante o transporte.
+ </font>
+ </td>
+
+ <td width=40%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <th colspan=9 align=left><font size=-2><%taxdescription%> Registro <%taxnumber%></th>
+ </tr>
+ <%end tax%>
+
+ <%if taxincluded%>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <th colspan=8 align=left><font size=-2>Os impostos estão incuídos nos preços.</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Brazilian_Portuguese-invoice.tex b/templates/Brazilian_Portuguese-invoice.tex
new file mode 100755
index 00000000..67c00dcc
--- /dev/null
+++ b/templates/Brazilian_Portuguese-invoice.tex
@@ -0,0 +1,217 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[top=2cm,bottom=-1cm,left=2cm,right=1cm]{geometry}
+\usepackage{graphicx}
+\setlength{\parindent}{0pt}
+
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telefone & <%tel%>\\
+ Fax & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%invnumber%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+<%pagebreak 65 27 37%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markright{<%company%>\hfill <%invnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc} & \textbf{Amount} \\
+ & carried forward from page <%lastpage%> & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+ \parbox[t]{10.5cm}{
+ \textbf{To}
+ \vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{0.3cm}
+
+%<%if contact%>
+%Attn: <%contact%>
+%\vspace{0.3cm}
+%<%end contact%>
+\vspace{0.5cm}
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\parbox[t]{7.5cm}{
+\textbf{Ship To}
+\vspace{0.5cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%if shiptoaddress2%>
+<%shiptoaddress2%>
+<%end shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%if shiptocountry%>
+<%shiptocountry%>
+<%end shiptocountry%>
+
+\vspace{0.3cm}
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+Attn: <%shiptocontact%>
+\vspace{0.3cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{F A T U R A}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabular}[t]{l@{\hspace{0.3cm}}l}
+ \textbf{Data} & <%invdate%> \\
+ \textbf{Número} & <%invnumber%> \\
+ \textbf{Pedido} & <%ordnumber%> \\
+ \textbf{Produto} & <%employee%>
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Número} & \textbf{Descrição} & \textbf{Quant.} &
+ \textbf{Unid.} & \textbf{Preço} & \textbf{Disc.} & \textbf{Total} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%discount%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%subtotal%>} \\
+<%foreach tax%>
+ <%taxdescription%> em <%taxbase%> & <%tax%> \\
+<%end tax%>
+<%if paid%>
+ \textbf{Pago} & - <%paid%> \\
+<%end paid%>
+ \hline
+ \textbf{Pendente} & \textbf{<%total%>} \\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ Preços em \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+\vfill
+
+<%if paid%>
+\begin{tabularx}{10cm}{@{}lXlr@{}}
+ \textbf{Pagamentos} & & & \\
+ \hline
+ \textbf{Data} & \textbf{Conta} & \textbf{Origem} & \textbf{Total} \\
+<%end paid%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%payment%> \\
+<%end payment%>
+<%if paid%>
+\end{tabularx}
+<%end paid%>
+
+\vspace{1cm}
+
+\centerline{\textbf{Obrigado por estarmos fazendo negócio!}}
+
+\end{document}
+
diff --git a/templates/Brazilian_Portuguese-logo.eps b/templates/Brazilian_Portuguese-logo.eps
new file mode 100755
index 00000000..3a22b2ff
--- /dev/null
+++ b/templates/Brazilian_Portuguese-logo.eps
@@ -0,0 +1,1334 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: GIMP PostScript file plugin V 1.17 by Peter Kirchgessner
+%%Title: Brazilian_Portuguese-logo.eps
+%%CreationDate: Thu Aug 31 19:25:05 2006
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 2
+%%Pages: 1
+%%BoundingBox: 14 14 415 215
+%%EndComments
+%%BeginProlog
+% Use own dictionary to avoid conflicts
+10 dict begin
+%%EndProlog
+%%Page: 1 1
+% Translate for offset
+14.173228346456694 14.173228346456694 translate
+% Translate to begin of first scanline
+0 199.99842519685043 translate
+399.99685039370081 -199.99842519685043 scale
+% Image geometry
+400 200 8
+% Transformation matrix
+[ 400 0 0 200 0 0 ]
+% Strings to hold RGB-samples per scanline
+/rstr 400 string def
+/gstr 400 string def
+/bstr 400 string def
+{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop}
+true 3
+%%BeginData: 80402 ASCII Bytes
+colorimage
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+fDblg6K\=Q"WB-W4?Pdo4p6+l]&ih]rrrDpij);hp&GL',"Q[#Lmt]mi:-UBo)Ajlp>C')q#Ca-
+0OT-[R^UZ0q#:3k!rftBr;[*-4`Pt>]\`;[p&>'%-iO)I,T-[I!!OC1jn&BKnc&dlp#<8P%e]l2
+"!U9TI#+8tb2Ddcrq6:-g3RO66TZkO/89R1ak>G'lMCDUrVc`p_uG5~>
+fDc3-AgAK<(`*r''GKsK"r/C?3]oMfm61YtOLjQNo`#*op#<8P%e]l2"!U9TI#+8tb2Ddcrpp'l
+rq>8m&GZ;5#V]Y2L75R!lM1AVrrW28$N0r1#!HsURCqDKrq69l[jV.T![JWbkPtc,R-!r:rpg!l
+rq59V:(Hst$j.\EE.!J2ZHD+pqYp0f(YX1N<'rc'0emR!XjZ4ijR;sBr;HTnrknbd~>
+fDc6;J3>hE.46Gg,U"<#*sNl<2EEr_4mbE9G`]Muqt0mlrq59V:(Hst$j.\EE.!J2ZHD+pqYp'c
+"TJ,QFV+?K$4&=nG_VZqdd$W,r;Qit^^C#?#R3G3J!mt+o`"O`!OjHU!!4D`!pBUf*LPs[qu6-c
+"oe2SZ;(o'!"8rR88rs4S$L2pnG<.WrtjC8CK*Y`2)R41LpG[tlg+-<qu$Ekrr0h8J,~>
+gA_6CM^RKa#SJU[Cl4ICR$dH4"J2pKnc&.[#laS]ca8*s2'Dku%L*7S1/_:`E/L-e^<lNJn,*ps
+lGB9$.1d!s#n@h2C5&"Yb2DgerqcX(q78g7,slHqMPJ)Jp&4[cs*k'%9)\er&Pd:_DG`D6!pTal
+;j3B4I=8["q>L$e)ZKKoca5M5$jR7P',DcW=EAnFP+oA,h<ak4r;@'%mG5jnSV:rb4tRZYo)K.6
+.77QqVp"]-r;HW:s*t~>
+gA_WSXCb's7mAmd0J>%2/aY(p3(dS&NKf`rR.?XJT!Hl9rq$..rqGU%[!bb.+:/;Z%M^0O>@_Mp
+OJ9/'f_#".r"](qb,Jl)'b_,j)_+BrKpT$di:6^DqYq$#\j.Db6>_(,UVl'`rV6EmU]HuXrW!3>
+=ES\+<]_9&l2V,jVQ@/!U<E9+rV$70rqGU%Zq25S%MBBi(a_LMF+&e+U:&/"m.U>Sr=/\qk1@he
+W0`?`B2UiFr@A%'1d4D,8ded6G`JT6f_#";rVjq=J,~>
+gA_WV`KPh&H>[%h;Gg7d:@1a]<FBcqNg,isR.?XJT!Hl9rq$..rqGU%[!bb.+:etm&f`Dk@V^"7
+Q)D4<h=UO3r"](rd'%+>(`!f$,WA_DKpT$di:6^DqYq$#\j.Db6>_(,UVl'`rV6Em^B(K0rW!3B
+@!Hj=>!*c+l2V,lZbFJn^"N,TrV$70rqGU%Zreh$',D<")CRjQF+&e+U:&/"m.U>Sr=/\tmGcjE
+_7$G9OF(D5rCmAj>ASW`J.%6uT<>oSiV!$ErVjq=J,~>
+h#@HEIh:?7#Tc9FPJ##]c-H(0"4GulqXORjrqc-Bc+C!IjT#8`m/R?)T"N_Cq#1!f%/obL[[`MH
+U:8M5p\spee,TVcf]W#.pAY9pqXED]p&G=-'G_N()]Tmq*WQH&!!iZW>`-Jlq#(-9s*t~>
+h#@HJUfI@c"%YgF4l\X1;/(]X^WF^EcM,WedbO6dnc'C(qXEFf];hGR.Olks.P*2,2*!ie7S*/D
+!)3/["\;$E2D?]].L7OVFe67umJ-YTrs\ksfX@<5QD1k8kkG)Nrt@jG!<<*#(b-sc0JtaF0Ie1Z
+$3BMo#oYim84nopkP+uLrtbV1nDI&"0eP",.Ochs/1rtM85<,d>l%b,:\RH`84>d,rB(0F5Xe6:
+8dJ+(MQ5+sq#(-9s*t~>
+h#@HM^PMi="+56/C#`k4FbQ3b_9'pGcM,WedbO6dnc&ppqXEFf];hGq8cD6f8P;iZ>@VDgG^Y)7
+J,k2sJ.d?ZFD5#[9h@lH8ksi,]\)WHrV6C$rUSULS<B24\'X@5rqHF+H9;6/!!+Q@7nZfd?<U9"
+2^8k8m/RGEAorHOWS$D.rq??urqc-BFC%sC91f+R$;!ld>@_PnIYEZ=qi1Z0pOE?oG].?qBEN!f
+G^]78#_J8?^teSWr;Ot@J,~>
+h>[MB'\!*i,YiZYa62mZnF?&JncSOYqu6'a#Q=GfkM4KR)UeZi*-S.$mJQYW$N0GOcGmrTj73!F
+p\t6"ec5mb/8hc?meueX"TA*n,R_Hh#7aOmh":IArmCar~>
+h>[M`=SbYi8,u0:7LELMS$gZ-mdKZ8nc&(]o_87^n,EXkq!mP&dV;DR3!VH*4[;>&7nDf8%S9,W
+5<Lqc3BBc^Us&0'p&>Bsn__X3aOK8?qYp6h!OE+3!##DT-n$]+5!hV'5!1e]0J"C`$j,nu#UVT+
+?\Yl5meueX#Q=FJ>Xpq<3W:uC3BKAh6:FC8lq.=N84WVJ!_5dQmn*g`J?Io(qYgE@s*t~>
+h>[N!MYho*Isl\"H4#P$Zc1S]mdKZ8nc&(]o_87^n,F("q!mP&dY;XJ@:E_XBl7s8H[^J.J.@!Q
+F)5K!@U`kaL8<#[r:U'sr:/[i`lQZinbW7ZrrKG;rW!T71dso2?>FS'EGT5p>#S'T-5?[R!!rZm
+AU&loZI&%<o`#U'pn<@]Bk:d_@:E_XBl7s8H[^J4J-(4LI/A3kI"$S7J-Uh)_rgUfrVk4EJ,~>
+hu<`75k=sc"VrFC5tXgF:/4DF.i/9O!!*]Ur]C="me$ATli.:jr:opKd%Y/9'&!<k"#=J;Ni^b$
+rq-3qrV,jMn+?JTpAY,>f)Q'a;0.S\XNp84o)Asihn"ng;)Ad$!!WNiQK@f9rmUmt~>
+hu<`@GOnE:9Mnkt@V0:fC2.Hn>Z4;[8dSO+F*)Mgme$ATli.Fnr:opKd&28#:.@`E8`E>N8Ou<>
+7TaSXNi^b$rq-3qrV,jMn+?JTpAY,>qu@NQ,q(K/6:XU>84Z3<69dRl1bgU.)%[&F!!j*8F,?6b
+cL1Z%rseb\\s@h_>t[RS7Rp!@b";k3FKjs$qYntDJ,~>
+hu<`GT_![<IscQgH[C/>IKP(MIt-[4!Jlg9S-6.co_SRQrso&+q"3gtWf)=NG^=adJ)l+hIsu`i
+GBS%NIZCMZo)A:]#Q=DemdKfErV$6kHi3pL!AZo0<+U)rrdG<'H$++DB44tC:-L3L%.jN*&m043
+Q`SL#rUTsuptrZOMLp5#G'A1WI"$RgJ-LRo_WgairmUmt~>
+i;Wha&G?)3"X69@G^kI,P*_]1rh'IfS=#7L5SE5[">J!QnGMJL#l<l9^9FDd9H)af#qBJ1L7#-c
+jnSiGs8Drirr@!8!!4`+#i,Ic89UN4bi8<po)B'omao@cYc+.?63tL0"V>7hnG)t4s*t~>
+i;Wi"<VB#m9N5D9G^kI,P*_]1rh'IfS=#CdBN""c"DGs4nGMJL#l<l9^9FDnE)tgf$!(hdL7#-c
+jnSiGs8Drirr@!8!!Y&=.ks.S8GYpg8Ou<=69dRm2)6d5*"E#D!!c&<S@?`%p&=O^$N'8C_mckK
+Sr%2W`(C25NR[ImrRLpu~>
+i;Wi2M"Z?,IsQ9]G^kI,P*_]1rh'IfS=#ItL4SN<"H^d\nGMJL#l<l9^9FE!MLs]8$$^E6L7#-c
+jnSiGs8Drirr@!8!!b/H79+#EI=M0F%tB%UH$44GBOY4I:e*2V!qu["89UN4bi8<po)B$nmao@c
+Yc+.WLr4`HL9'%tq#/bCJ,~>
+iVrn9p&GO<7W!I+P+J\^^;eCEe,@c%d`oeFZDDb'!pTag,b;X/qWIkdrqc0Li7?&`XFWVBirBDi
+9lbcMYfPVcpAO"N!/(1L";kW^EBr@\#!RdOh!Xn6nc'!rqXWt6i7cW"\Y):S!"&cA/3cp6C2SKO
+KDgH,J9#$l1DK9X"TqW;mJ$S2s*t~>
+iVrnZp.>ck@;pOIP+J\^^;eCEe,@c%d`oeFZDE@g9Bo+P>b/RgqWIkdrqc0Li7?&`XH.-lj%9YP
+@WI!bYfPVcpAO"N!/(1L"rLi`F'qF.oh#Wa84H$85Wq.e1Fs:Bq#CU_L:H%,pAFI\$i^"nlfI'Y
+d`8noDWsb":g%1=D00uNJV3oS"bM/FCg^008d.n<bO,'&fDg@~>
+iVrnsp4*U"FE;b_P+J\^^;eCEe,@c$d`oeFZDEhBl$rniS\=([kPkqhqXNh.f#kY,R>QRUJ-pdG
+Ee'I[aP?+TrSmhWKDY]R(h76%G^"W1J.7!WI!U!XDe`ij=A("Cq#CU_L:H%,pAFI\$i^"nlfI'Y
+d`8nsNp2'#I!U'`H[L9mJV3fP!J>skJ-CLtdd?f-fDg@~>
+ir9!spAb^?;KRDLTsM\cguRbgo(;VSp'^Qco'Yc%fZLdo7Ki&X"<E/rh"^"2$i^)#p@.8#cFooT%
+d!`u!`F)pUr;*Wq#(-NrrL.Cqu?puFHE]?JdCT@!=T>3!!P?@^Ztarn,NFe$N9o!q"4":g;nL?m
+f3e)/l6J6KT).cU8P&qZM_'8Za$U.SV:/k!q?6o"'3Y5q#/nGJ,~>
+ir9"HpIYrnA9<<^TsM\cguRbgo(;VSp'^Qco'Yc%fZLduDbTLi"B:&Th"^"2$i^)#p@.8#cFp'#
+;<:CVA93O%`80kVr;P^U!QP?@!!Z;BOKZBc:@Up_8Ou?@6pX!s/dhFT"ZVIUlMUYMs8W'*rVZNe
+o^:kqaHB6c8e"NtATN6PN0Kj,VlR#,r3Qa9Z)jdmNceQ!nO`sYK$s&]rRq4$~>
+ir9"fpOEd$EccelTsM\cguRbgo(;VSp'UKbo'Yc%fZLe&NpD2uI>"ZVpuVM`rquWdnE8TP]r@0H
+ja[YVF,-R0h<t(9ro3qY`ru;?##TK(YJ-renph'sIXHKeF`;))8.,1n"ZVIUlMUYMs8W')rVZNe
+o^:kqaJJ<T%=WPDFaSk$PanJGX08i,Zj3qBXJMJOMM(DK"bEE!mJ-Y5s*t~>
+j8T+/p](g,5&bn2VnUU<m.C)NrVlflrsA]'qY'F@fZ'=>m/R8.I&>WmiVs5`r:ojHg;p9k"R#gj
+/ocWFcKY*%hu<[5qu@!=E/1aQlJS-;lMq#'>>b\&!!G<<]''%TrrrE"p[6mkmf3eaEIa7KZG+E,
+f%Ss<iqqdCini>8aLn[:8e(:j"Uoe:nG<.=s*t~>
+j8T+Tpdu&i?>t:RVnUU<m.C)NrVlflrsA]'qY'F@fZ'_$m7ILZI&>WmiVs5`r:ojHg;pF@9^#(R
+=E0(pcKY*%hu<[5qu@!=E/1aQlJSa>m7IOQ7nd5e#5\B'3Jb90rTF1arquNYhOa1.%:=+*PGGLu
+aO&Mlh;I;ij9ai&f[7dQY*X*(nO`s^Rc*]3rnII'~>
+j8T+opj`m)FDuVhVnUU<m.C)NrVlflrsA]'qY'F@fZ'tOm=>4a!iF]HiVs5`r:ojHg;pR`J`qUh
+G&`89cKY*%hu<[5qu@!=E/1aQlJT4*mXPLjI=$!B;?m!u"?D:LkPaTD"oeGombY5;J.6R>J<Qe7
+^<"[Pg>1]HqrA(ChUp5s]WRfaK(4?pKWsD(qYo7LJ,~>
+jSo4Pp]([*;KIM`][l<<qYgE_rs/Q#p?^YWLDTCZ"<2`cgA'P)#QFYqmblB\-0YC6>'usdm/$_=
+rrBP*!!kT/R`b'rq!(]B!!Ea>Fbj)q!!G98[cRGJrr`5pkZ@6R$q,K5^XhE/n+?>Kq>0sc$iBep
+o^D##d_Vqg$1Ruu1qr/HrS7F'~>
+jSo4lpdtofA93Er][l<<qYgE_rs/Q#p?^YWRTJrM"B'WEgA'P)#QFYqmblBh?g1/eApg5pm/$_=
+rrBP*!!kT/R`b'rq!*=p8d%n&Fbj)q!!G98[cRGJrr`5pk_&@s$t+IQ^XhE/n+?>Kq>0sc$iBep
+o^D##d_W#4:[q$[C;oB0rS7F'~>
+jSo5+pj`a%E-$])][l<<qYgE_rs/Q#p?^YWVhOSis*OmFgA'P)#QFYqmblBpMWoWqE.";%m/$_=
+rrBP*!!kT/R`b'rq!+O=J-::;Fbj)q!!G98[cRGJrr`5pkbIWt%!?rf^XhE/n+?>Kq>0sc$iBep
+o^D##d_W)NK(4?oP02t]rS7F'~>
+jo5A)"Si$(!`*lnWQXDqqu5m\"o\5`gq6>M!!F6gVV:h"rrrAsnDM>llMq(oE/M0dqVD/O@/Bp0
+:4TD#q#CBc$g[ir:N_`*_YX<98;=S8r8[eZrqbC[nGie`KsKM+qYgE`rs8W%q=En-bcF/$!!Emu
+hXUO"s*t~>
+jo5A8:&%<d@WR@)bN8Bnrp'LerV5d8^NT*="B'WEgA'G&"o\8di5gH78d.n-MR_aDh>[I_qZ$ms
+J?.K#s8Vailq.CiFcWoHqZ$aiL:67Bj8T5\qVbBC8dAgZZJ>*KrVl?e#labtoBP/UY]'&("B;;U
+nbh5CJ,~>
+jo5ACK(sj%EH?r8bN8Bnrp'LerV5d8_Ns\As*OmFgA'G&"o\8di5qMTJ-CC@MR_aDh>[I_qZ$ms
+J?.K#s8VhIm!o4YFcWoHqZ$aiL:67Bj8T5\qW*D$J-U7OZJ>*KrVl?e#labtoBP/U[#jg."GO5>
+nbh5CJ,~>
+k5PJR,kq?E0QDiId-UW.k5PV`pZg:]#k@ru)gnO:pt>ZLrV5d'lMq))FI()<rn[SS./NuL;i%sG
+r;Zf#li724E/(OJn,!(f@Z%e]rSdbWq.K3t"@e6Zkl'iI#QF\snD_`I&Fof)!cuoZqYoCPJ,~>
+k5PJUAGAb%=`K1rd-UW.k5PV`pZg:t:@_![;LG@qpt>ZLrV5d,lUh=XFI()<rn[SS./NuL;i%sG
+r;Zf:lq.F\E/(OJn,!(f@Z%e]rSdbWq2t2>"Cd5!kl'iI#QF\snD_`^;t<Na99@]kqYoCPJ,~>
+k5PJXP5'P4G&`8:d-UW.k5PV`pZg;0K(=HlHig2!pt>ZLrV5d/l[T.cFI()<rn[SS./NuL;i%sG
+r;ZfKm!o7bE/(OJn,!(f@Z%e]rSdbWq60=="EoX5kl'iI#QF\snD_`mK^jQqV:Fu0rnma+~>
+k5PF"p](L*BRZZ!mJGrD"oeDjiMmgf!!F0eVV:gsrrN&8lMq&+H(`XZh#@?rqZ$k"N5+ZVs8Q?j
+!!Q)BSBL?equ?m=Eg"B.ro*kXrl=O/"@e9\kl'`F"o\8dhQ\Bs!!HlYlM:G;s*t~>
+k5PFLpdt`bCOVu$mJGrD"oeDjiO)k\8d&%>VV:gsrrN&GlUh:XH(`XZh#@?rqZ$k"N5+ZVs8S#D
+8d/[LSBL?equ?m=Eg"B.ro*kXrmgO2"Cd8#kl'`F"o\8dhR[+b8d'molM:G;s*t~>
+k5PFjpj`QtDLS;'mJGrD"oeDjiP(->JH'uuVV:gsrrN&Rl[T+bH(`XZh#@?rqZ$k"N5+ZVs8T7g
+J-Bt=SBL?equ?m=Eg"B.ro*kXro!<s"Eo[7kl'`F"o\8dhS>'>J-;FglM:G;s*t~>
+kPkS3"S_s#20=tpk5+$9"TJ2]^*iOQ":fgUf_F%t!35tt!'9TL";cE\f_=2$!$D(<#<RmZlM^bS%
+.+$!"`9"#i;'/G!!Q&BT[NK3i;WiT(@hG.7Z+hArT=+_rV5[#2XpbM@a"$3ro*m-~>
+kPkS@:&%<a>',n@k5+$9"TJ2]`a\R4"AX?@f_F%t!5e\,!*o"c"AsNAf_=2$!$D(<#<RmZlM^bV
+;XI'\9Q#Tki;'/G!!Q&BT[NK3i;WiT=n5/f@Z%e]rT=+_rV5[&D"1+#K$3ESro*m-~>
+kPkSIK(sj"F``b[k5+$9"TJ2]bDl.E"Fb`pf_F%t!7^st!-I^\"FPQlf_=2$!$D(<#<RmZlM^bY
+L@'KqIrC(Ji;'/G!!Q&BT[NK3i;WiTMXl9#G)EoqrT=+_rV5[)P4=&*R`jskro*m-~>
+kPkNYpAbA&J#Lukrnm_Yrql000(f2I%==l%p=B6DL]%2RB-$LB":TXQf_=2$!)ECk"qZO!jo#.R
+qu?^*nc/k8FHjf4nKe&5"X%c?[Ggu>rrN*rnc/e^MS&*Njo5J_qsi8tnGiZ+b3A`\s*t~>
+kPkO6pIYU&J#Lukrnm_Yrql04BD"k":4&bfp=B6DWr5NjCfU!t"AX<>f_=2$!)ECk"qZO!jo#.m
+r(6rank'*bFHjf4nKe&5"X%c?[Ggu>rrN+Nnk'$oMS&*Njo5J_qsi<VnO`n<b3A`\s*t~>
+kPkO\pOEEdJ#Lukrnm_Yrql06OS+,,IX@jAp=B6D_u5)dDgh/+"Fb]nf_=2$!)ECk"qZO!jo#/+
+r."crnpgpjFHjf4nKe&5"X%c?[Ggu>rrN+snpgjdMS&*Njo5J_qsi@(nUL_1b3A`\s*t~>
+kl1Y/pAb@.EK%Qnr7q;Sr:88hp&G4)HD/m_f)G_`rW!!*Ea8)6"*C6ep>#ZJV"t&p5cE<-r_37j
+!=D?f!!P$%U"&U2r;[$/@XF`ln,;,C!.j\@"@e9\kl'QA"9%lB.e3QB!e8G\qVqO*~>
+kl1Y=pIYTbEK%Qnr7q;Sr:8EPp.>H_HD/m_f)G`7r^m5cEcUYA"*^Hhp>#ZJV"t&p5cE<-rdar>
+!DQtm8d/@DU"&U2r;[$/@XF`ln,;,C!2]6Y"Cd8#kl'QA"9%lFAb&Fr99IHbqVqO*~>
+kl1YGpOEEpEK%Qnr7q;Sr:8L&p4*9pHD/m_f)G`WrdY'!Ee<e2"+$Zkp>#ZJV"t&p5cE<-rhfXE
+!If+\J-C.CU"&U2r;[$/@XF`ln,;,C!5J)T"Eo[7kl'QA"9%lHOR[i'T?QZuir=N~>
+kl1WbpAb@BG+-\GrnIGTrUeS^pAb=*H(`[\f)G_;rW!$:G*F0?!!?8jch#rl!V\&>!!H?;jlQ^E
+!!+i]nc/eTJ?-URr;[$*<d'Y=jS@X3!28r`"@e9\kl'N@"9.u;'Cl,+%[ti7r8[g-~>
+kl1X=pIYThG+-\GrnIGTrUe`LpIYQ`H(`[\f)G_rr^m8iG*H;&8crmuch#rl!V\&>!!H?;jm,V=
+8c`(1nk'$jJ?-URr;[$*<d'Y=jS@X3!5.kp"Cd8#kl'N@"9.uC<q8ic;52M-r8[g-~>
+kl1XapOEElG+-\GrnIGTrUeg&pOEBqH(`[\f)G`ErdY)uG*IjRJ-1.ech#rl!V\&>!!H?;jmRd!
+J,sh8npgjdJ?-URr;[$*<d'Y=jS@X3!714d"Eo[7kl'N@"9.uHM"6'!Ju6ubr8[g-~>
+l2LeM"SVm!3.7[VpY#QKrq4GJp](F&GbER[f)G^mrW!$IHD#o\!!G-A`U3Z\rrW/;#PnE%4hQFF
+!!6GR!qQBo7=\hVr;['0<csA,g@YC#rrBe(!!GcK]BK4PrrW2mU@A3d/?mh"roF*0~>
+l2LeS:%q6_>^`L%pY#QKrq4]?pdtZ_GbER[f)G_Xr^m8nHD$eu8d&I``U3Z\rrW/;#PnE&4hRFY
+rCR-)I7s0("(?^h%K-83$<D;.ZJ+sMh>[K%nk'$oMS&*NiVruYosaH`"CSIeo`!qOJ,~>
+l2LeWK(jcuG($7?pY#QKrq4lupj`KrGbER[f)G`3rdY)qHD%D1J-:7_`U3Z\rrW/;#PnE'4hS.L
+J,Xs!E.7A."*K-'%K-83$<D;.ZJ+sMh>[K3npgjdMS&*NiVruYou?NP"GX/6o`!qOJ,~>
+l2LaMp&G4`K!=20f`)'QoX5)$!!@J;e+M>m!;l]p"?(_.d3%oZ":U*rjnmj5!r/2dq>^O((]==9
+)KC]Vo)Je5%/^)1*G'JTYgr7@h#@B&nc/e^MS&*Ni;WlWo2tM_"(8e&q;hR+~>
+l2Lakp.>HqK!=20f`)'QoYaT$8cs=0e+M>m!;udf"C-DTdU2Q;"AXc_jnmj5!r/2dq>^g0/j)To
+8lBYf>4bDg68&cF!!aNUG`ArXnGM)A!8d9="Cd8#kl'H>!r__EnO`n1]]AnLs*t~>
+l2Lb,p4*9gK!=20f`)'QoZi-bJ-1%fe+M>m!<)kH"Eo6nduEpK"Fc0:jnmj5!r/2dq>^g05A,4h
+IsQ*nL\-)uE]X^-!!aNUG`ArXnGM)A!9j!("Eo[7kl'H>!r__fnUL_%]]AnLs*t~>
+l2L`Sp&G4aL:64AfDbpNo8`SG"*U3^o[j*Cg\h*T7Y7l%Mt$cL?DuQNh#@KTntQrm!!>W4S3H?@
+#REn@I[.=lnGM&@!8d8H"@e9\kl'E=!rUsdnc/e$R*+gojo9i~>
+l2La2p.>HrL:64AfDbpNo;VLW"*U3^o[j*Ck5@mT@=k`@Wpr[`Ei@[bh#@KTntQrq!!`Q>-otUV
+S8\0p"%G3q&c2P6#Y&laQ*o34r7h5OkOM4J@Z%e]rSRVVr8^fI8d%t[b3f,gs*t~>
+l2LaZp4*9hL:64AfDbpNo=XjK"*U3^o[j*CmJVP<FFpaS_!upWJZ.8qh#@KTntQrq!!`TM7V$C[
+S<Wf!"*n9=*r>pC#Y&laQ*o34r7h5Omdbl2G)EoqrSRVVr9/n*J-2=amJQ)GJ,~>
+lMgnZ#ke6$7Z"_?rRUuMr:!nc!!@A4d.Gri!4Vn,"]^>fk3WrT!!Fp@am]5arri5d`Dd$8!!<ED
+3$n%o#n&k6I#=Z6h=:EsrrDc`!!GcK]BK4MrrMtInGi\eY1r[Lk5Tr~>
+lMgn\;"dKa@Yq\[rRUuMr:#I:8cs4)d.Gri!6kC6"_NP"k3lID8d&Fdam]5arri5d`Dd$8!!<ED
+3&^[["!\`u$2FQ-$Tr?TMP@oBnbh,@!;Z1X"Cd8#kl'B<!W&P\8d'(8g\1X/s*t~>
+lMgn^K_Bp!G)<forRUuMr:$TZJ-0q_d.Gri!8II&"`oI/k4+?"J-:=fam]5arri5d`Dd$8!!EKE
+3(#k-4p*o#+V4AK#n&k6I#=Z6h=:EsrrDodJ-:%Q]BK4MrrMu.nULasY1r[Lk5Tr~>
+lMgk-o`,+aM7`!Mec,^JiZe4!")""Ho@O!BQi-mfArOLiqLnD>"9a=cjSR^3"o@Z<WE9kt!"/f?
+3bj)#T!m#.pAN\E!<2Nh"@e9\kl'B<!rhQsnc/e*QGr4hk5Tr~>
+lMgk<oh#?rM7`!Mec,^Jj^@pW")sXQo@O!B[J`]$D2c6pqPEaT"A=KYjSR^3"o@Z<WE9kt!"/f?
+3bj)#T!m#.pAN\E!<2O]"Cd8#kl'B<!rhXfnk'$^QGr4hk5Tr~>
+lMgkGomd0gM7`!Mec,^Jk`5Li"*^-Xo@O!BbPcqpEf@cuqS)KM",OGIqqM,SqX2q6=;9ou$NUl$
+C41u2[a=11rRq2NrpkRBG)EoqrSIPUrpba5J-2+Vm/?)HJ,~>
+lMgjNo`,+[M7VpLeGfUG[KHC,"D4"Enc%2@!-J2?#6T"0`pWih%e9T&9Vg53rnIGWr:ApkZ[t1$
+!"'N/@"b8acJe<irn%2@!!GcK]BK4LrrN%3nGiZ%Y2/m8s*t~>
+lMgjloh#?pM7VpLeGfUG`_?8%"E9^Onc%2@!1a$\#>9*#`pWim<:WWaC8BDQrnIGYr:ApkZ[t@J
+!q$$t"Uu:u6=>J@\Ba('qYo+Hnk'$oMS&*Nh>[NRPOV6IGHTcsk5Tr~>
+lMgk-omd0iM7VpLeGfUGdXh:G"Ep-Unc%2@!4r/[#CgcW`pWipL@KcrUt,/;g]%QWoA[s"Jj^1Q
+mJm\&(F_:0@"b8acJe<irn%2@J-:%Q]BK4LrrN&&nUL^pY2/m8s*t~>
+lMgj+o`,+KLq)UFeGfULp14%#"C786nG_)?!)WXp#820Hc1:l3D=RZ0'U$B"rS%8TrV>p?cU[p6
+"pu+Y&Io9OoDf.4<.1msjRE!Dec,U_o)Jn_MS&*Nh>[NT`:3g11n)VWroa<3~>
+lMgjSoh#?jLq)UFeGfULp5]#B"Dj=EnG_)?!.t2B#>fQ1c1:l3QL[WN;Ner`rS%8_rV>p?cY5-e
+,9%F7&ePT`"o\W;"UGMJ'cS>C-7CZLIBCrYnG3%5rr?-l8d&U\]BK4LrrN,KnO`pkR`k4"kPp&~>
+lMgjqomd0kLq)UFeGfULp8n.A"F$*PnG_)?!3#mI#CLZ]c1:l3ZgrVLJ!._8rS%8^rV>p?c[o1m
+4Y@ln&ePT`r!3lF'H8;N4$Z/&85t#>dcBonrRLoJM=Z6#G)EoqrS@JSrnd0q"Fcf_nG_VNJ,~>
+lMgico`,+1KX0V7e,KLJjV[mq"BUc+mf(l=!&4BP#U"Aae+Nb?h?WTO")+mopt5TKrV>R_r;[$V
+9ji7&N#_Hi"r;$DcLC]0e,KCio)Jn_MS&*Nh#@EP(@hG.&rO9_r9+*1~>
+lMgj?oh#?bKX0V7e,KLJl!"!W"DX+>mf(l=!,VX,#ZQ&@e+Nb?k"kP?"*h$*pt5TVrV>_N5Wh"`
+5tta4Ll=In./tb)/1rV52aV>LcLC]0e,KDUo1B-pMS&*Nh#@EP=n5/f:l;jHr9+*1~>
+lMgjcomd0nKX0V7e,KLJl\bUj"F$$Kmf(l=!1<b9#^U`fe+Nb?l@\YX",*l6pt5TVrV>f*DJ3Ka
+9hf#@Ll>:171MdX8PDr[=^GNQRa1F!rmUlIO7Rl)G)EoqrS7DRqhjrp"Fc6>k5=EBJ,~>
+lMgiLo`,*rFfF-jdf0@ERf!-g9T[-Xrn.5N%/p54/psPLq#CBk?1Isu0:L,Srn%/MT)AWo$!qV7
+Z+n%CoDf"(H)B<jdJj1go)Jn_MS&*Nh#@ES;=OVgG,j<lkPp&~>
+lMgj.oL]44WS@3rrrMu'r(7*'OM^A`f`(qLr^mGuI&>Tls8VtRnk'$kR`t:#fDc8j8Ou<=7::+u
+Z+n%er&+sB3'',a5X@b0H)B<jdJj2So1B-pMS&*Nh#@ESK(2G8I&brrkPp&~>
+lMgjWoRI$nWS@3rrrMu9r."opOM^A`f`(r+rdY9!I&>Tls8VttnpgjmR`t:#fDc9)IXHHbEF<dL
+Z+n&)r*Be=@:WtbD/jZ?H)B<jdJj3-o7-seMS&*Nh#@ESVso3<Wn[=3s*t~>
+lMgiKoDf"dS^@!-e,KLKoeuaK"@eBclM]E9!:0R`#X!X>hYR9PrmL?;"9a7bjSRR/!'pJ_#;pOa
+^>J8AIe3UC"+-iqpX0!@+7fI87Z+hArS.>PM=CQK<h7V/rojB4~>
+lMgj-oL]7"S^@!-e,KLKoks_#"CmG+lM]E9!:g"[#[Mt_hYR9Prn[-;"A=KZjSRR/!-eB6#?c)0
+^>J8ASGGV\77Kd<8P2X&Ut>@grr?Hu8d&U\]BK4JrrB(h8d&t$d.@8#s*t~>
+lMgjVoRI'nS^@!-e,KLKopG]."F,p@lM]E9!;6;@#^1a#hYR9ProEU"",aVLqq(iJT`0HIIro^n
+^>J8AZi"nRF`qtSH@1-jIs\!CpX0!@O7Rl)G)EoqrS.>P_sr6[I%AXUrojB4~>
+lMgiKoDf".OML/[df0@G]DV^43JtH4rRq2Na8Gu@8qaS3r;Q]sqb$DZ"@o9;o`!PD!8m_T#QeFb
+WnI+FrNPkn")jd[p!Nd>+7fI87Z+hArS.>PXmlAo6'B7UrojB4~>
+lMgj-oL]6aOML/[df0@GbPb$9?AcAYrRq2NfDS;E@YD,Kr;Q]sqgS*."DFU\o`!PD!9j>Q#AJ^g
+g%PFD`q)e)Fe7(TdJj2So1B-pMS&*Ng]%8lnO`pnP/cqhkl6/~>
+lMgjVoRI'oOML/[df0@GfDU4&H&B5trRq2Nj8FK2FG.$]r;Q]sqkEY3"G*Auo`!PD!:Ti9#B,-m
+g%PFDf(smmJ-1(ge+M,g!0?`%"Eo[7kl'99!7gUi"FH<Omf)GMJ,~>
+lMgiKo)JknXk`^!rrMmdrW!'TL:?=Cg&D&Mr;Zt&M7VmKrr3#u^@D7,'9U,rr7V)MGPqLI,BAjZ
+kktJ\iq!-P?CB+0dJj1go)Jn_MS&*Ng]%8nnGi\GMS/0Okl6/~>
+lMgj-o1B+)Xk`^!rrMnBr^m;sL:?=Cg&D&frCR3+M7VmKrr3#ucLOR1;3A][r7V)MTD_@f<H=/7
+kktJ\lLRUMDOJf@dJj2So1B-pMS&*Ng]%9)nO`pgMS/0Okl6/~>
+lMgjVo7-prXk`^!rrMngrdY,tL:?=Cg&D'$rI>#lM7VmKrr3#ug@BasJ!%S4r7V)M]D[6cH#et[
+kktJ\nFM/4H'utKdJj3-o7-seMS&*Ng]%95nULahMS/0Okl6/~>
+lMgiKo)Jn%N5k5^df0@H`Voi?-A8\br7V)MKDbcQBTBpqrr)itqD[sF"(A:dptG`Kq],P7#u>oA
+de!J<s8EQ$!!H,^aRB,Vrr=/4!!GcK]BK4JrrCpG!!F^([,h/Ks*t~>
+lMgj-o1B-]P/ckddf0@He,DrB=+mm>r7V)MVu93jDN;R"rr)itqJc!t"*L^#ptG`Kr*K=o$"J=U
+de!J<s8H!i8d&gkaRB,Vrr?Hu8d&U\]BK4JrrD6P8d&7M[,h/Ks*t~>
+lMgjVnpgh.`pEWOrrN)SrdY,tKX0Y9g&D&grI>#kNkt)]rVlopRdtt2KWNu(gA_3PNr=J7EdOM.
+oD\direL,r"F--On,Cc8!0?`%"Eo[7kl'99!:KB-"F>d/jS\6AJ,~>
+lMgi_nc/e@W7^bAdf0UK8cSi2JZdo,g&D%[rW!**F-F]6rr)itrMT2d"=]b]n,D)A!42V("VPd1
+[c@5`rrN*WoDf"[Nl(/^df0:ho)Jn_MS&*Ng]%91nGi\3JZdr-kl6/~>
+lMgj;nk'$jWn?tCdf0UKHqI"1JZdo,g&D&4r^m>fF-F]6rr)itrP%hp"Bq59n,D)A!6P13"]0/o
+[c@5`rrN+<oL]6qNl(/^df0;To1B-pMS&*Ng]%9;nO`p_JZdr-kl6/~>
+lMgj`npgjrWn?tCdf0UKU4@cAJZdo,g&D&VrdY0%F-F]6rr)itrQk%b"Fli^n,D)A!87=$"ak9F
+[c@5`rrN+foRI'iNl(/^df0<.o7-seMS&*Ng]%9AnULaiJZdr-kl6/~>
+lMgj&nGi\U\`!5]e,K^Q\c;^@J>q;ug&D%7rW!'6G+$YHqu6]l,kD!=!dqH:qV2#M;#L@t5^/[?
+nGW=c!+tj'">G_Fkl&s0!$Ce4"@e9\kl'99!8d5G"<2ijh"g16J,~>
+lMgjOnO`q!\`!5]e,K^QbXtK(J>q;ug&D%or^m;iG+$YHqu6]lA+N:q98'b6qV2#MK)J:F??_j]
+nGW=c!0ZtH"C$bqkl&s0!+>Cj"Cd8#kl'99!9irF"B'`Lh"g16J,~>
+lMgjnnULb"\`!5]e,K^QfRSL%J>q;ug&D&DrdY-!G+$YHqu6]lORdo(M72I@g]%8PrI>&nGFH_E
+rVc`rZLiYMHA]>urR1]GO7Rl)G)EoqrS.>PmdYf1I"/0Oq<7j/~>
+lMgjIn,NSP^?#%fe,K[L0E;0+Ut>=nrr=&<!!FEiT@EQ2rrN(_nc/e\U=/]5h>[N="TAB)#&/^m
+h>$pJ!06[O"<iH*jS[I+!$Ce4"@e9\kl'99!7pZ?"<2cfg\C"4J,~>
+lMgjhn4Egu^Z>.ge,K[LCJ%6OUt>=nrr?@(8d&+=T@EQ2rrN)&nk'$tU=/]5h>[ND:&[`g9Pf?a
+h>$pJ!3Yrd"BC,^jS[I+!+>Cj"Cd8#kl'99!93N@"B'ZHg\C"4J,~>
+lMgk*n:1Y$^uY7he,K[LQ@OL;Ut>=nrrA)YJ-:1DT@EQ2rrN)<nUL_9de*OprrM_CrdY0%DhG4K
+q#(-l`q4caH\Acer6kTFO7Rl)G)EoqrS.>Plg]K.I!qsJpuqa.~>
+lMgk+mf3JB]&NG_eGfdP`.DZ`WS$purrDfl!!Fj#VV1b@rrMU)o)Jn&NkaiVh>[J1r;[!SFHaZ/
+rVZZq^%;:-&V-t>qU5BD+7fI87Z+hArS.>P^@;1+)h"U;puqa.~>
+lMgk:mn*^m^#JbbeGfdPd[l,RWS$purrDln8d&7DVV1b@rrM[no1B-]O2'rWh>[JTrCR5qFHaZ/
+rVZZqch'g4:k5Y(qU5BD@.Qtn@Z%e]rS.>PdIBg3;LPFrpuqa.~>
+lMgkEmskP!^uG(eeGfdPgp<B1WS$purrDrpJ-:+EVV1b@rrMbLo7-snOMC&Xh>[JmrI>&qFHaZ/
+rVZZqh=Q4#I=SEUqU5BDO7Rl)G)EoqrS.>PhXQ+!I!qmGpuqa.~>
+lMgn\$h"&u)kc'Zr7(`Nq;fK$_;b7DrrCOH!!G?5XPWgMrrN(Gnc/btX4m=(rr=2?!!QYWVUkG>
+r;Qc]oDf!qI&5Kidf0:ho)Jn_MS&*Ng]%8KnGi\@IAkoqkl6/~>
+lMgn];X[3\>-6ZQr7(`Nq;fK$_;b7DrrD!U8d&FMXPWgMrrN(knk'"*X4m=(rr?I*8d/mWVUkG>
+r;Qcco1B+4V:bOjrr?Hu8d&U\]BK4JrrBb&8d&4DW8%+2s*t~>
+lMgn^L$sNpLUQ(2r7(`Nq;fK$_;b7DrrD<^J-:%GXPWgMrrN)0npggpX4m=(rrA/ZJ-Bn@VUkG>
+r;Qcgo7-pjV:bOjrrA,OJ-:%Q]BK4JrrCI:J-:.GW8%+2s*t~>
+lMgna=mc7n#^=qhqYo(G#6"5XhW+2)gA_/Zr;ZsiKX0Y8qYpWrk6LSY"=9DUmeu&C!4Vn,"X7rG
+]]]1hrrN*4oDeu,T$m8Zrr=/4!!GcK]BK4Jrr@Q=!!G30XPN^9s*t~>
+lMgnaM!dk=:6X>uqYo(G#6"5XhW+2)gA_/prCR3$KX0Y8qYpWrlqd4F"Bh)4meu&C!6kC6"]TK$
+]]]1hrrN+#oL]4+T$m8Zrr?Hu8d&U\]BK4JrrAkb8d&CKXPN^9s*t~>
+lMgnaX6tKAJu@8hqYo(G#6"5XhW+2)gA_0+rI>#nKX0Y8qYpWrmt:4^"FlcZmeu&C!8II&"aY0J
+]]]1hrrN+UoRI$iT$m8ZrrA,OJ-:%Q]BK4JrrBh(J-:(GXPN^9s*t~>
+l2Ladli7/P_!(Okf)GpPqY9marn@APO8T%]<J\3Kr;$?nr+5I""9NhTiVMI3!)3=k"]0Q=dIR;5
+rr>7T!!H;gbOPS\rr=/4!!GcK]BK4Jrr>mc!!GrIZJtcFs*t~>
+l2Lb%lq.D"`p!0qf)GpPqY9marn@APYl./sAr+"\r;$?nr/gJA"+di<qVV;QJGi(D@salro)ALc
+!-\!,"DX:Hnc%#;!+>Cj"Cd8#kl'99!.s`5"Cd"hiqqs>J,~>
+l2Lb6m!o5'b38Tuf)GpPqY9marn@APa8LMkF,7Bir;$?nr35aB",O>CqVV;QVYu#KEdOJ,o)ALc
+!1rh5"F6?Wnc%#;!0?`%"Eo[7kl'99!3#F<"ET4$iqqs>J,~>
+l2LeY+m]14%Y!:(qYmPq!-%l:"CdA+lM^PY!rgXNo)JnUT[EB1iVrr="TAB)&o`Z8iqiKN!,D-+
+"@J<imJbT7!$Ce4"@e9\kl'99!#Y5+"D!A#kPaWEJ,~>
+l2LeZ@I-Si;OZJ3qYmPq!1EdX"Dj(5lM^PY!rh%Mo1B-rT[EB1iVrrE:&[`g:iM6!iqiKN!0m+J
+"CmS4mJbT7!+>Cj"Cd8#kl'99!*etc"Diq+kPaWEJ,~>
+l2Le[O6hB#KWa2$qYmPq!4_uX"EKL;lM^PY!rh;5npgh8dI[@rrrMYArdY0"E/:s^qYC-k[.JkO
+HBH/5rmUlIO7Rl)G)EoqrS.>PN:DE$E/D0hrTO93~>
+l2Le`R-FYS0!+4.r2fnu9`4qoEg"H1rqQKoqb-M\":L1%kksE>!.4YE"[[F%b4#<)rrA>V!!G!5
+]]f=Crr=/4!!GcK]BK4KrrCC8!!O'WP/Zhfkl6/~>
+l2Le`Zg(-cB"I-tr2fnuJGi(CEg"H1rqQKoqgS-/"AXrikksE>!2BEa"^cJBb4#<)rrBCt8d&@U
+]]f=Crr?Hu8d&U\]BK4KrrCmF8d/%3P/Zhfkl6/~>
+l2Le`aQe9YOMp;Sr2fnuVYu#JEg"H1rqQKoqkNb5"FlHFkksE>!58>]"a"sWb4#<)rrC15J-:4V
+]]f=CrrA,OJ-:%Q]BK4KrrD6PJ-C=@P/Zhfkl6/~>
+kl1\U.-U^79YB]crN?/#/H,VQ%<Rr\nc&=`!WK_%!!??&g%OG*!W*`5!!NXDKWj5,q#:?5oDf"9
+Ks]q=e,KCio)Jn_MS&*Nh#@A$nGi_PGb3=TrojB4~>
+kl1\VAa)eiHcGCGrN?/#B`:U-:3;iHnc&=`!WL=68cs%3g%OG*!W61$8d.q+KWj5,q#:?EoL]6c
+Ks]q=e,KDUo1B-pMS&*Nh#@AKnO`shGb3=TrojB4~>
+kl1\WP3IK"SBgHprN?/#QMuC<IWUq#nc&=`!WLdCJ-1D&g%OG*!W@uVJ-CC?KWj5,q#:?QoRI'l
+Ks]q=e,KE/o7-seMS&*Nh#@AfnULddGb3=TrojB4~>
+kl1__]*%9t"TqN7m.^I_rr<?(!!F0aS^I*'rrMsQo)Jn8QH/Ckj8T+Wr;[!XFHjc2rV6BmmdpJ^%
+Y1Y;q:#?D+7fI87Z+hArS@JSq],/,"Ti+aXkrm:s*t~>
+kl1__b=q.m"\a?dm.^I_rr>mp8d&%:S^I*'rrMt6o1B-dQH/Ckj8T+prCR5sFHjc2rV6Bmo(5NW
+:4TG&q:#?D@.Qtn@Z%e]rS@JSr*Jnc"DWOjhYH@7J,~>
+kl1__f7E1:"bE;nm.^I_rr@`OJ-:4DS^I*'rrMt`o7-snQH/Ckj8T,.rI>&pFHjc2rV6Bmp@Nk<
+IXnNVq:#?DO7Rl)G)EoqrS@JSrJpDu"E/mohYH@7J,~>
+kPkSXIcg\8"&HSrp\b#trrD*X!!FToUXo/4rrN(nnc/c4ZJbQ=rr>1\!!WL7J>q2prqQKorYP2,
+"*gWopXB-B+7fI87Z+hArS@JRTCDmb-?>3`lMTiFJ,~>
+kPkSXTBAfN9RXtJp\b#trrDB`8d&1@UXo/4rrN)2nk'"5ZJbQ=rr@0>8d/s[WS$qDq#:Bo>4bDh
+HDK3fe,KDUo1B-pMS&*Nh>[JenO`scEfe*%r9+*1~>
+kPkSX\EAAHJY1<Up\b#trrDTfJ-:.DUXo/4rrN)CnpggsZJbQ=rrAYhJ-BnBWS$qDq#:BoMtDN%
+I&,Ehe,KE/o7-seMS&*Nh>[K$nULdfEfe*%r9+*1~>
+kPkV^nP\HK"[]6TpAFourrBt8!!G$*WS@4@rrMd5o)JnST$R!,jo5>,r;[!KEf[rur:^-j9(W)c
+@[tj<e,KCio)Jn_MS&*NhZ!WR,k:p>!aC&Ie+EY&s*t~>
+kPkV^nU]do"a.KDpAFourrCRI8d&=HWS@4@rrMh"o1B-pT$R!,jo5>:rCR5oEf[rur:^-jIe657
+E1G>Je,KDUo1B-pMS&*NhZ!WSA+<.pB7-K'o`"%RJ,~>
+kPkV^nY>2r"e*NupAFourrD$VJ-:+GWS@4@rrMkRnpgh6cgq(srrD6\J-C4=O1siUpAY,goRI$i
+SC-uXrrA,OJ-:%Q]BK4MrrN(]nULd]I&#0_roa<3~>
+k5PM[k=4M4"YQ&$o_\WtrrA\i!!GK:Y2K0LrrN(So)JmuLqMmIjo5<jr;["&I%o*^rq??lEqB>7
+:6irjrm^rJ+7fI87Z+hArSIPSL[b?J.rpT[jnn3?J,~>
+k5PM[k]l/\"_b%#o_\WtrrBY/8d&IOY2K0LrrN(so1B-[MnJ3Ljo5=CrCR6*I%o*^rq??lRe02T
+B9gU.rm^rJ@.Qtn@Z%e]rSIPSWpr[b=)s82jnn3?J,~>
+k5PM[l($gb"d6X`o_\WtrrCCDJ-:%HY2K0LrrN)6npgh$]]T+QrrB>&J-Bq?U=8c6pAY-&oRI'j
+Q-&OpeGfN0o7-seMS&*NhZ!SnnULdeEf@Tkqr[p/~>
+k5PP_q;O6k!!O-]eFE>4])MbXr;ZsmKs]q=o`"sU%eBZ&;Q&1@k5PJN#lXf-)KCYEjSSWM!1i`^
+"?MRZli,E6!$Ce4"@e9\kl'E=!RD&B!!WjDI\bE`roX62~>
+k5PP_q;Z;O8d/=ag%"k9])Mc)rCR3%Ks]q=o`"sY<:`]aDPu.\k5PJS;#X&j;K7T(jSSWM!4h_o
+"CI2*li,E6!+>Cj"Cd8#kl'E=!SpTC8d8%+I\bE`roX62~>
+k5PP_q;de#J-Cb7hXUC>])McErI>#mKs]q=o`"s]L@]otJu@8pk5PJVK`6K*HuY%RjSSWM!7(4e
+"F?*Eli,E6!0?`%"Eo[7kl'E=!U#.,J-LI?I\bE`roX62~>
+jo5G^pYS?t!!WX*Z0h8_rk8=3=T&4&=,OWRrUg*jr+Ya&"<*NDm/?,I!/pdU"\F!1cLCi+rrC15
+!!FU(\E<_=rr=/4!!GcK]BK4OrrM:.nc/jq:Nhr;kPF<?J,~>
+jo5G^pY^2R8d8%@_X7'prk8=3M#BpKBSsFcrUg*jr0-_E"B:W)m/?,I!3Q2l"^u\IcLCi+rrC^D
+8d&4O\E<_=rr?Hu8d&U\]BK4OrrMOtnO`soG*B`)qW7a-~>
+jo5G^pYhS#J-LV"c0b6&rk8=3XSmYPFGd]orUg*jr3GpE"FlZTm/?,I!6+ne"`ns[cLCi+rrD*O
+J-:7U\E<_=rrA,OJ-:%Q]BK4OrrM_SnULd_G*B`)qW7a-~>
+jSo>]p>/^*!!OX"g@G+=^]+9nr;Zt2Nkju[o`#!ldf]1A")b@#puq_Yq],S8"Uo7&ZJbNMrrDW^
+!!F!fYi,B-rr=/4!!GcK]BK4PrrM^JnGibPEepsSp&=(QJ,~>
+jSo>]p>:>W8d/[thX^OA^]+:RrCR3/Nkju[o`#!lhG!N5"+7?1puq_Yr*K@p"\rriZJbNMrrD`a
+8d&"CYi,B-rr?Hu8d&U\]BK4PrrMh3nOa!iEepsSp&=(QJ,~>
+jSo>]p>DP#J-CtCipusE^]+;(rI>#lNkju[o`#!ljb!)S",=&;puq_YrJpl-"b(BEZJbNMrrDid
+J-::PYi,B-rrA,OJ-:%Q]BK4PrrMqanULgdEepsSp&=(QJ,~>
+j8T8]p>U&nhuErc:Tj*Yr;OS5!#5A3"EK[Fmf)hX!W,O]!!G-KcLLnurrB+u!!PE,QH/Cko`"sk
+-M7?A"+@-%psf<D+7fI87Z+hArSmhXj!aEt"tFPCV9n]/jSs`~>
+j8T8]p>V6/i(=2KJ&(IFr;OS5!*K1l"EK[Fmf)hX!W.?;8d&LkcLLnurrC"98d/LDQH/Cko`"sk
+AG&Ot97<bmpsf<D@.Qtn@Z%e]rSmhXlXoZZ#$5_pV9n]/jSs`~>
+j8T8]p>W'&i.)#`U!;uur;OS5!/g`*"EK[Fmf)hX!W/Y_J-2=enc%eQ!7h$us)nL1a6iitrrN+^
+oRI$lW7q$rrrA,OJ-:%Q]BK4QrrMYSnULggDh=h4n,28HJ,~>
+ir9/\pZ.SOh>d^)K])IurPed:oDJXm%<Rr\o)A7\!WK_&!!EL[]&ihRrr>1\!!NI<JZIN!o)A\b
+oDeu+T@<J_rr=/4!!GcK]BK4RrrK_KnGib<D18(tlMBQ@J,~>
+ir9/\pZ/;QhF[r\U>tkArPed:pAISe:3;iHo)A7\!WL=78d%hD]&ihRrr@0?8d.k(JZIN!o)A]@
+oL]4+T@<J_rr?Hu8d&U\]BK4RrrLGMnOa!cDLS1ulMBQ@J,~>
+ir9/\pZ/f;hLGci\E*8XrPed:q>GgIIWUq#o)A7\!WLdCJ-1_@jnn<B!1s.>"E8pmg@t1<!2fC=
+"+-Zhp!j!AO7Rl)G)EoqrT!nYh2LlS#'k-9T#g3nj8XW~>
+iVs&[puoFNh#ITiD9q_HrQ"p<ci!hH)0h_#o^Vq^qCM4<"AP`Dp&=:W!6b<@"Y=_W_!:jgrr@67
+!!H2dbOPS^rr=/4!!GE?\`WhOrrM_0n,N\IDgn4ok5##:s*t~>
+iVs&[puoY3h+@iMP1K-trQ"p<h>KqK;L"b\o^Vq^qIoIm"Dajbp&=:W!8@BD"^#i._!:jgrrAY_
+8d&jpbOPS^rr?Hu8d&IV\`WhOrrMh]n4EpgDgn4ok5##:s*t~>
+iVs&[puoe]h1,Z`Y1rI@rQ"p<kP]o6H[)+0o^Vq^qNUT%"G*E#p&=:W!9O00"aG*N_!:jgrrBY&
+J-:1bbOPS^rrA,OJ-:+Q\`WhOrrMr)n:1aeDgn4ok5##:s*t~>
+i;Wu[qWuaU$Jb[c#%#OAq#/>7!3c>$"=&5ef(SY6!WAP[!!F%"_s@9err?=&!!QPSUt,,:o)A]d
+oDf"ZOMgGaec,Uknc/h9HIhZarosFaqk"ku!!i`qEe9n#jS/Z5s*t~>
+i;Wu[qWuaq:u+_I:5I?dq#/>7!64t0"BBcBf(SY6!WBIu8d&%T_s@9err@uU8d/mVUt,,:o)A^(
+oL]6qOMgGaec,VWnk''gOk91$rosFar4?;*8dJ*tEe9n#jS/Z5s*t~>
+i;Wu[qWub0K&(q\Ju72gq#/>7!8%1""F5<ff(SY6!WC14J-:@b_s@9errB5#J-Bq@Ut,,:o)A^;
+oRI'jOMgGaec,W1npgmqU=f&6rosFarQgMoJ-^XGEe9n#jS/Z5s*t~>
+hZ!`Uo%pZ;g].K^?-_m5rQG3@Mu<VY0RftTq!e:anJ:]r")+moq!A"]k61ba"W_T@]&rn[rrCI=
+!!Fg/]''%Brr=/1!!X3S]^Y^orpKdflAHnV!!jBGG)3!9k4el6s*t~>
+hZ!`Uo%poqge%`FLXbberQG3@Xo1ip=am=(q!e:ao3(ZW"*h$*q!A"]mS3[Q"]KE!]&rn[rrCpJ
+8d&:R]''%Brr?Hr8d8C[b4,3(rpKdfn>p-h8dJ:-G)3!9k4el6s*t~>
+hZ!`Uo%q*DgjfQ[V:b52rQG3@`Vk;iG^cUGq!e:aonr?k",*l6q!A"]o7Hsl"ab6I]&rn[rrD6S
+J-:4U]''%BrrA,LJ-Lh3eF<82rpKdfoYls^J-^L@G)3!9k4el6s*t~>
+h>[ZWpZTt`,hrA'$uO\eq>SY=!,2<2"?M+:htljB!W@H<!!FsDbjbW!rr@EE!!Q#@T$R!,nc&Xd
+"SD`t(50!Qqpk]H+70%7)dScMnbN(\rr2]m"THu<9*F_a#ms"=IZq"_lM:G;s*t~>
+h>[ZWpZTtq?JJ-V;N]c(q>SY=!0mFS"C6S]htljB!WA_`8d&IhbjbW!rrAel8d/[LT$R!,nc&Xe
+9_D!\;M;@8qpk]H@-pPm>`#`8o(i1]rr2]m"TIDfIn]?(#u+cHIZq"_lM:G;s*t~>
+h>[ZWpZTu)LtmLaKWEquq>SY=!4;]T"Eo@!htljB!WBY%J-:@jbjbW!rrBb2J-C">T$R!,nc&Xf
+K(XWsI>"ocqpk]HO6qH(MlF\OoD/:^rr2]m"TI]/V1S2e$%?u9IZq"_lM:G;s*t~>
+h#@TXqXE@]F;EX3"W<3Xo)&F4rr>Rf!!GcE[,_)QrrM$_oDf!sK"0n=mf*=^'`J(9%W7$-i;)mB
+!WFSA!!EISWS@3urr=/*!!`TO7UCD#R[X2E"+FiG&+0E)&j^D^N2+/Bn,!%@s*t~>
+h#@TXqXE@]N`Oq-"^7_^o)&F4rr@HF8d&RU[,_)QrrM:YoL]6ZL:H=Amf*=`=T1nr:2blni;)mB
+!WHa)8d%h:WS@3urr?Hk8dA%!HAeDs[^Q.D"/:s%<UNHd:g\3hN2+/Bn,!%@s*t~>
+h#@TXqXE@]TS2*N"c9\Jo)&F4rrAknJ-:"J[,_)QrrMJ=o7-q#\E*PTrrN"SrdY0$E/(^Wq=+Cb
+rfm)+"Fkm"g\B>!!0?Ap#_J/2XLc<lb00e."2;(4L[K["I!'IVN2+/Bn,!%@s*t~>
+gA_BUpZpGDA.IAp"?!RMpANA<!$qLC"B1,fkPalL!W6-m!!Gffeb&k0rrADa!!PH-QcSUnn,EAc
+oDeu/T[`Ybrr=.]!!t5jG_r*'dHC3#h>`!~>
+gA_BUpZpGEK2UJs"Dkm;pANA<!+Yt""D3J$kPalL!W7cF8d&h'eb&k0rrBJ*8d/LDQcSUnn,EB@
+oL]4-T[`Ybrr?HI8dSU9G_r*'dHC3#h>`!~>
+gA_BUpZpGFRY'=F"I$pjpANA<!0[;2"E]I2kPalL!W8thJ-:G!eb&k0rrC7@JH'cpQcSUnn,EBd
+oRI$jT[`YbrrA,#J-gF<G_r*'dHC3#h>`!~>
+g&D<Vr:K4%ZsO=!!!NREf^AS7df0:Mr;Zt/NPFcWn,EFfa7B96'9U/sr9sXc./j2M")!1dg\:.9
+!.shC"B:c4o)@5?!$Ce4!\Go/f)Q$Y.ri5UmeZq<s*t~>
+g&D<Vr:K4%[t%?38d.qNg$\\8df0;@rCR3.NPFcWn,EFfealB9;3A`\r9sXcB)YC+95K0\g\:.9
+!2fB\"DX=Jo)@5?!+>Cjs&]7qf1H9@?&-/JmeZq<s*t~>
+g&D<Vr:K4%\<qm(J-CP'g@"e9df0<!rI>#lNPFcWn,EFfht)@$J!%V5r9sXcPl6+8Dh5"Ep[8%]
+_"<-[HC2qIrmq)LO7Rl'GBn\hJ-LRk^=r#OrnRO(~>
+fDc*Tqt&mqZ=k!/!!FdZk4SZ%rrCgO!!I,#`9mQlrrN!Vo)Jl'Xk`^@rrBD(!!OopP/6G]mf*9h
+oDf"ZOi6Ydf)G^lo)Jt_FFe0r+9^j-":,u"5ofV!"W2O:o(i7?s*t~>
+fDc*Tqt&mq[=hQ98d&\=k4SZ%rrD3Z8d'*q`9mQlrrN"9o1B+.Xk`^@rrC1>8d/=<P/6G]mf*:*
+oL]6qOi6Ydf)G_Xo1B3pFFnpW=A7mM"AMfu@TE.p"^.;Lo(i7?s*t~>
+fDc*Tqt&mq[[;^'J-:nOk4SZ%rrDHaJ-9qU`9mQlrrN"co7-prXk`^@rrCaNJ-C1=P/6G]mf*:;
+oRI'jOi6Ydf)G`2o76j_"+uJeK'%RdIXHHeIeS?rLp>k.q>K.LJ,~>
+ec,mRqXNUl\8s"R!!E[eh!k3krrB\0!!NOIQ-/Uqmf*=eV"4Qh.@JBJrpg!g7/[)h>(*3sp&=CZ
+!7g]A"=oAAkl'*4!$Ce4%7Pf?[^N-%G$@?g+VbIZ!"98O,rS>#EdiXsO-3'-!!NdIf^S_8huA3~>
+ec,mRqXNUl\;FVL8d%t`h!k3krrC@C8d.n0Q-/Uqmf*=e]^n_u>+*S&rpg!gHMpG>B76T+p&=CZ
+!9*QB"BgVokl'*4!+>Cj%:Od[[^N-'KQV!8=&Mie8dnHm='fHTGCG1#O-=PV8d/+Tg[P%;huA3~>
+ec,mRqXNUl\=860J-:M/h!k3krrCmRJ-CFDQ-/Uqmf*=ecLZPhJ!nLKrpg!gUA]TGEIFY5p&=CZ
+!9s-+"FH$<kl'*4!0?`%$?grm[^N-'Nei@=rdXTk%"<VPH[0m_IY3H;P`>Be"bj&7nG3%?s*t~>
+e,K^QqXNXp]SSiUhZ*dcdd-`.fDbi;r;Zs2G+-bKm/I+Z)Y="4!dqH:qXXXdci!hI)0(SGjnnHF
+!WEAt!!F'jZJtc4rr=/4!"qbW[+OEmcGI#jU7.@/N.uLtF8U%iGCbC#LlIRcTW#**_T9cO#ke6%
+'7o05qYoIRJ,~>
+e,K^QqXNXp]U*D-hb"$(dd-`.fDbiYrCR2fG+-bKm/I+[>P(Mj98'b6qXXXdh>KqL;K7W+jnnHF
+!WGmf8d&%FZJtc4rr?Hu8ePTh[+OEmcGI#jU7.@/N/2t4I/J:%I=[$)LlIRcTW#**_T9ce:A.9`
+<hA=@qYoIRJ,~>
+e,K[PqXNXp]V18?J-;IllhUP3rrC7@J-::DRa:TlrrMkQo7-q"[c@5TrrD6\J-C:>Mn8$ImJd4d
+K_9iuI>"ocqptcIO7Rl7G)3NXj4_eq[]?-kQ&pr\L4k3WK)^B3K8#,@P*quAYdqWla/agcJ-C_7
+iplmEiW"E~>
+dJjLOqXWe!^nP'OhuEmGa6*0rf`(qrr;Zs=Gb<LYm/I+bJb&jE7&&-%rq$-i>l=X+8U6lPo)A%V
+!WF_E!!EISWS@4!rr=/4!"qbY]'&n`o'>Amf$DIU^:LbYYPPC4Z*h0Y`m*#fiTBLrmc()Uo`,+G
+ZKCiXir=N~>
+dJjLOqXWe!^nuHZi(=,kaQE9sf`(rDrCR2jGb<LYm/I+bV"71]B;3iHrq$-iMu?6O@<nEho)A%V
+!WHj,8d%h:WS@4!rr?Hu8ePTj]'&n`o'>Amf$DIU^:LbYYPPC4Z*h0Y`m*#fiTBLrmc(QPoh#?u
+^?5+dir=N~>
+dJjLOqXWe!^oEQMi.(roal`Btf`(rarI>#tGb<LYm/I+b^%-[UU=/]5oD\fnrI>&mH(E7OrpB^d
+rg*5-"Fkm"g\BA"!0?`%&pB/DkP=lClf?mQccO)=]!eoJqQ:@6[CX/nc.(M,k3VU*ikC0?J-:tR
+k4SZ3s*t~>
+ci4=Nqt97.aKp@Q"QBCa3PjeMrn7;O;uH\!-@DWApZqh[j9P;W":pO.l2:2R!TO=^!!NdJL9fb5
+li-rkoDeu,T[`Ycrr=/4!"qbY]BK4nrr2ikp@Ie?lK@9hi;;C=i8Wh\lL+69q"jpfrWDu]ZQAc>
+"U8r"meZqDs*t~>
+ci4=Nqt97.aKpt>9]AYIC;T'*rn7;OL&FUH<d^^qpZqh[l;.%E"Ak/pl2:2R!UEJZ8d.t-L9fb5
+li-sDoL]4,T[`Ycrr?Hu8ePTj]BK4nrr2ikp@Ie?lK@9hi;;C=i8Wh\lL+69q"jpfrWDu]^0L>'
+"\k-5meZqDs*t~>
+ci4:Mqt97.aKqCmiID&l_rUOjg&D&PrI>#rI&,Ehli."RKCjZsIuqJ1r:L!inUgaj"b(BEZJbQE
+rrB4oJ-11leFhDm!0?`%&pB/Ekl(P\rquTcoC2,3kN1a^qqhb=ioK:fmdg&GqY^?l"8V6&MY2K'
+JuIDkqYoRUJ,~>
+c2S+Lr:fX<d(PlG%c[Nl2nn;Frn@AP2#RCW0n-+Wq<S%]r*Jsp"'qt]p[nIcF8Z(B3Hg_/mJZAN
+!/gCK"B(W2nc%/?!$Ce4"@e9\kl(AXs8N&ss8;]h"oJ5rrVlflrr`/d_]SLN"?sffp\s:SJ,~>
+c2S+Lr:fX<d(Q/s;<(7OBu&a%rn@APDZ*01>(3I+q<S%]r/:/="*:Nsp[nIcSGc%`>]uFRmJZAN
+!3>`a"DO7Inc%/?!+>Cj"Cd8#kl(AXs8N&ss8;]h"oJ5rrVlflrr`/db$FX3"E;HFp\s:SJ,~>
+c2S+Lr:fX<d(Q<<K&_@aNPOQIrn@APRf.a>G^cXIq<S%]r2fL?",!Z.p[nIc\c%$^F`s(kmJZAN
+!6"M["F?HZnc%/?!0?`%"Eo[7kl(AXs8N&ss8;]h"oJ5rrVlflrr`/dc\qFG"I.*mp\s:SJ,~>
+b5VbGqXWk&`iNbjj8]<@^>ekcg]%6br;Zs]JZdr-li."b`:Es3-()dArV$6lmh#Hu"Tr7bX4m=5
+rrB=r!!GKI_sIBSrr=/4!!GcK]BK4Lrr`2h\eF]9"<t22o_mqPJ,~>
+b5VbGqXWk&`ianpj@TPh^Z+tdg]%7RrCR2uJZdr-li."bddp'6=d[:urV$6loMtl_"\WT\X4m=5
+rrC+38d&Ra_sIBSrr?Hu8d&U\]BK4Lrr`2h`E)V'"CA[uo_mqPJ,~>
+b5VbGqXWk&`itb^jF@Am^uG(eg]%80rI>#oJZdr-li."bhXc7#J!e=FrV$6lpPAcu"E/gkg@sn4
+!8$jn"F?0Im/GW:!0?`%"Eo[7kl'?;"8q]7L\-*"MSJ-BrT=-1~>
+aSuPFr:]L7c+%g=jT#EP_;tCjh>[K@qu?jgKXBh<lMgn^2"UbN!d_65qY'phO8T%^-?>3`l29iH
+!8d>J"=8o9kPa$4!$Ce4"@e9\kl'<:"8q_s$1n3#'qsFRr9+*1~>
+aSuPFr:]L7c+&X9j[oYp_;tCjh>[KFr(7*#KXBh<lMgn^DY$I&K!aP6pAY,srCR5oEfe*$r9F:^
+kO_@L=,FNOrR_&L@.Qtn@Z%e]rS7DTr:7^$oL]6eXk`LFkPp&~>
+aSuPFr:]L7c+'6tja[Jq_;tCjh>[KJr."omKXBh<lMgn^R.Gh1LpZ1<pAY-5rI>&rEfe*$r9F:^
+mdu#4I#5GtrR_&LO7Rl)G)EoqrS7DTr:8'aoRI'u[G:?NkPp&~>
+`W$2Aq!d=l]RM<k!!?`Lk5!j5!6b9?"B1,ekPXWF!WJY]!!GEWdI[A4rrN!6r;["$I&#3`rp'La
+rX8B!";?BkiVM1+!$Ce4"@e9\kl'99"8q_Z"7uQr&#@nLr9402~>
+`W$2Aq!d=l]TQXa8csU^k5!j5!8@?C"D3J#kPXWF!WKS"8d&[tdI[A4rrN%%rCR6)I&#3`rp'La
+r_iD]"Aj]SiVM1+!+>Cj"Cd8#kl'99"8q_p9_:p[;QSRBr9402~>
+`W$2Aq!d=l]V(&BJ-2(Tk5!j5!9O-/"E]I1kPXWF!WL:5J-2IloD\Ob!W@uUJ-Bq?UX\r8lMgna
+L@p'"I=e]^qUb`IO7Rl)G)EoqrS.>Sr:7[ToRI'sZJ"gHkl6/~>
+_uBu@qXWe!^OdTl!!E@Ub3Sr]rrAtp!!HSd^?Y[]rrMX&oDf"%N4nHQq#:>dr;[!:E/M0dqs"+]
+r\jEL"9NkHgA';"!$Ce4"@e9\kl'68!rVP*o)Jn2WnHtAl2Q8~>
+_uBu@qXWe!^Q_sd8d%eMb3Sr]rrBk48d&mf^?Y[]rrM^loL]6]NkOZSq#:?+rCR5jE/M0dqs"+]
+rc%L%"+7$#pt,NG@.Qtn@Z%e]rS%8Qr:#pA8d&8!g%,++s*t~>
+_uBu@qXWe!^S6JGJ-2@blhfQ=!7Ujr"ETO9lM]uI!VM9@J-:@^^$,ChrrCCDJ-C=>MR_aEl2Le`
+Re2+4I](opfDbi3o7-seMS&*NgA_6Pn?2A5"GO/7o)7hQJ,~>
+_>ac>qt0+(^ip[\!!Eq.dd[4mrr@iP!!Hnq_sIBerrN(=o)JkpWS."?rr=bO!!P]6S':C$kl1Wp
+oDeu&T$m8_rr=/4!!GcK]BK4HrrW)b4nAXV.^\"(rp'N6~>
+_>ac>qt0+(^lDL\8d&(gdd[4mrrB(s8d'$n_sIBerrN(do1B+(WS."?rr?m68d/OGS':C$kl1XG
+oL]4)T$m8_rr?Hu8d&U\]BK4HrrW)bF7W!,@("e_rp'N6~>
+_>ac>qt0+(^n?DGJ-:J%dd[4mrrBt7J-9tU_sIBerrN),o7-ppWS."?rrAGbJ-C%>S':C$kl1Xg
+oRI$jT$m8_rrA,OJ-:%Q]BK4HrrW)bRe)%4Lpl+3rp'N6~>
+^]+Q<r:T:)]OqT:!!GKkh"La*rr?U-!!IA-aRB,lrrC^C!!FI2a6ij%rrBD(!!NRBKWs>.kPkOB
+oDf"fQHAXqf`(pno)Jn_MS&*Nf`)$LcjfRH"Albjq#9UZJ,~>
+^]+Q<r:T:)]nK8I8d&k6h"La*rrA2Z8d'4"aRB,lrrD$L8d&4]a6ij%rrC1>8d.n*KWs>.kPkOb
+oL]7!QHAXqf`(qZo1B-pMS&*Nf`)$LfMhB6"E_<9q#9UZJ,~>
+^]+Q<r:T:)^70`>J-:\6h"La*rrBA&J-9qXaRB,lrrD9SJ-:@fa6ij%rrCaNJ-CF@KWs>.kPkP%
+oRI'jQHAXqf`(r4o7-seMS&*Nf`)$LhM(QO"HL.Sq#9UZJ,~>
+^&J<9r:K4&Y!D:Q"9O%gkka6;!'pJ_":B7<bjsrs!W5=V!!@;Ji;*6L!'pJ_"Yb%_`U*QdrrBJ!
+!!G0>_!D!Prr=/4!!GcK]BK4GrrW2pN:R#P!e\MXqs494~>
+^&J<9r:K4&Zu>8&"A=Wgkka6;!-eB6"AO!*bjsrs!W7678csOJi;*6L!-eB6"^,r3`U*QdrrC46
+8d&I\_!D!Prr?Hu8d&U\]BK4GrrW2pWq/gc99@0Yqs494~>
+^&J<9r:K4&\<6',"-gXcqV_ART`'BDIWUt$o&p#Rr1NY3",F2?q>1*kT`'BEG'&tfm/?,I!87!p
+"FH0Eli,Q:!0?`%"Eo[7kl'06!rhu0npgh1`p3Hes*t~>
+]Di*7qt&moL_B%S"=g4qo)@VJ!$(q;";#dIdIcW%!WK1l!!G?Sd.726rrC+;!!QVVVqC_BkPkPH
+oDf"<LUQ=Bf`(pno)Jn_MS&*NfDbpOn1+#0"<aVko)7qTJ,~>
+]Di*7qt&moS5eiI"C7hOo)@VJ!+#Oq"Aa63dIcW%!WKt-8d&Upd.726rrC[K8d/jVVqC_BkPkPN
+oL]6eLUQ=Bf`(qZo1B-pMS&*NfDbpOnRqGc"BhYOo)7qTJ,~>
+]Di*7qt&moWeB_h"G3Gto)@VJ!07#."FYKadIcW%!WLO<J-2Cio)ARe!9=!-"`Spgf_5=-rrDZ_
+J-:7T[cRG>rrA,OJ-:%Q]BK4FrrW2jPOj;-Ju@)grTsQ7~>
+\c2j4qXE@Q46uqLHF`,5ir9#Uqu?j<H(`[\k5PJU)Y="4$&H7Wqu$Ho;#L@t*c[.OkPOEA!WEc*
+!!EXZXl'!-rr=/4!!GcK]BK4ErrN%nnc/c%\)R5Ms*t~>
+\c2j4qXE@UD<sjsKXp1?ir9#Vr(7)iH(`[\k5PJV>kCVk:5cdJqu$HoK)J:F;fRc/kPOEA!WH0n
+8d%k=Xl'!-rr?Hu8d&U\]BK4ErrN&0nk'"1\)R5Ms*t~>
+\c2j4qXE@YOmIT#N4J$Gir9#Wr."osH(`[\k5PJWN:_W'IuM&'qu$HoW;V5MH?"nVkPOEA!WIrK
+J-:=OXl'!-rrA,OJ-:%Q]BK4ErrN&Anpgh$\)R5Ms*t~>
+\,QX1pZg7G!q$$k3hb!mro="YfDGUO-%)N@pZDJVrHe&8"&c)MpAP!kg\_$T89pfRo)@eO!WG:T
+!!@8;fCmks!$Ce4"@e9\kl''3!V@E(!!F./bO5>rs*t~>
+\,QX1pZg7g9^YLUA"h?Aro="Yj8;LP<d^^qpZDJVrL`[R")b'ipAP!kk57gT@!S?jo)@eO!WI66
+8cs=6fCmks!+>Cj"Cd8#kl''3!VKdj8d&+`bO5>rs*t~>
+\,QU0pZg8(m=5=jU!iN2j8T,Fr."oqI&,Ehk5PJ\](:FSJuI>qrVllbr."rkH(NCRroX4]rgrb4
+"+6orp=TBFO7Rl)G)EoqrRLoKp5SWn".[R&rU'W8~>
+mJd4QqYpK?rrrE!o&#]Bmf3J"NkOZSj8T+gqu?jNI];)tjo5A:"S;Zs)O/5-rVlfs?i9s.$>bI'
+iVDR7!,D-+"BLu:o)@>B!$Ce4"@e9\kl''3!W@<7!!@#BhtZU=J,~>
+mJd4Wr;Q]ArrrE!o&$BDmn*^YNkOZSj8T,'r(7)oI];)tjo5AB9_:p[<0YAgrVlfsNr;QR9l>]l
+iVDR7!0m+J"DjOPo)@>B!+>Cj"Cd8#kl''3!WAV\8csIHhtZU=J,~>
+mJd4[r;Q]ArrrE!o&$m/mskOjNkOZSj8T,6r."opI];)tjo5AHK(OQrJ!@q=rVlfsYPitTIVsnH
+iVDR7!4;BK"FHT_o)@>B!0?`%"Eo[7kl''3!WBV#J-1V5htZU=J,~>
+n,EUdIh7t8oD6`3"TA)XY8cp1"(nRepZ)8RQi$gd2h8'gqW7_Xr'^,V#B6p)q#CBW"T8<(20G5*
+mJZ,G!0QmR"@/-hmf(o>!$Ce4"@e9\kl'$2!6t'7">H@jnG_kUJ,~>
+n,EUfUfFbioD6`3"TA)X\m"Pp"*U]upZ)8R[JWW">_'!7qW7_Xr-@m+#CNc5q#CB^:&RZf>'6.O
+mJZ,G!3l)f"CdP5mf(o>!+>Cj"Cd8#kl'$2!8@!9"C@VCnG_kUJ,~>
+n,EUh^PKr!oD6`3"TA)X_hmi4"+mQ,pZ)8RbPZknGCZjRqW7_Xr1NY3#DTJ?q#CBcK)L6"FT[rM
+mJZ,G!6Fe_"FH<Nmf(o>!0?`%"Eo[7kl'$2!9<U"".[X*rpKf:~>
+n,EX9!!!tXg$nparri>tm(a\3!!GTUbjk\nrr@0=!!GQ>ZJtcCrrN+qo)JtOSBg[(s)7i9"Ti+_
+WnR1,rrC%1!!F^-]]f=Irr=/4!!GcK]BK4CrrN$5o)JmtL:QFCmf.e~>
+n,EXH8kN@1g$nparri>tm)WK%8d&[mbjk\nrrASe8d&LRZJtcCrrN,4o1B3oSBg[(s-`dW"DNCd
+g@jS,!7g^6"B^Pokl'37!+>Cj"Cd8#kl'$2!W6-m8d%hD\`N_Vs*t~>
+n,EXSJ:NR#g$nparri>tm*1FWJ-::gbjk\nrrBY.J-:%JZJtcCrrN,Fnpgn6cLLo6\,:aZDh+kA
+p>c/QiUhX'I#>T#rRq2NO7Rl)G)EoqrRCiJr/1&q",aYNqsOK7~>
+n,E[i#QOj,[bUTUbl7eBnAQL>!!FL)^?GLUrr?!q!!G`F[cRGJrrMg/oDf("Kt?FDmg/jl"WqcF
+^?GLTrrDKZ!!EsfZJkZ5rr=/4!!GcK]BK4CrrN*rnc/buVUtP0s*t~>
+n,E[k:J+6*[bUTUbl7eBnB>5/8d&1R^?GLUrr@cN8d&RW[cRGJrrMjsoL]<]Lq;aGoMGKY"]TN&
+^?GLTrrDW^8d%tCZJkZ5rr?Hu8d&U\]BK4CrrN+Nnk'")VUtP0s*t~>
+n,E[kKReT;[bUTUbl7eBnBm3bJ-:7Y^?GLUrrB(sJ-:%M[cRGJrrMnPo7."&]&rnaK`-E)H?,%[
+kksK@!;?&8"FYp.iVM7-!0?`%"Eo[7kl'$2!WK"eJ-)V"p?qs2~>
+n,E[m4obQgMSn]VbPq\Bo#)44!!ERZYi,B=rr=kQ!!H5W]'0+RrrN(9o)JnfVUkEiqu?moHD&^X
+ro="ZrYP2,"*g`tpt>ZI+7fI87Z+hArR:cHII[@@3L7bTrpTl;~>
+n,E[mG"PA%Oi-G]bPq\Bo#t/*8d%k?Yi,B=rr?s78d&a_]'0+RrrN(ao1B.$VUkF9r(7-%HD&^X
+ro="Zr`\qd"+-s"pt>ZI@.Qtn@Z%e]rR:cHU@LnZ@$\n&rpTl;~>
+n,EFfT)O6BQG_tbbPq\Bo$W<aJ-:@RYi,B=rrAMcJ-9tN]'0+RrrN)*o7-spVUkFTr."rkHD&^X
+ro="ZrepE!"+I0%pt>ZIO7Rl)G)EoqrR:cH^%-[VI?qtCrpTl;~>
+mf*90rW!'WW7LV?bPq\Bo;Vo`!!@>=f_=J,!"f&."B^VslM]cC!7CB<";d9>i"5he"Uf1&[,Ur@
+rr>O\!!?MtdIc,l!$Ce4"@e9\kl'!1!1iZ\"<!*.kPXfKJ,~>
+mf*9Wr^m<&W7LV?bPq\Bo=Rcf8cs@7f_=J,!*/qh"DEb.lM]cC!8R0<"B1N%j&Q%M"\rrj[,Ur@
+rr@E<8crt%dIc,l!+>Cj"Cd8#kl'!1!4hYm"B12hkPXfKJ,~>
+mf*9trdY-(W7LV?bPq\Bo>lLRJ-11pf_=J,!/UQ'"E]U:lM]cC!9Ng&"FlWQk(rtd"b(BF[,Ur@
+rrAecJ-1.hdIc,l!0?`%"Eo[7kl'!1!6t(b"FZ0=kPXfKJ,~>
+mf*9kr;Zq@]]K"4rrW,hB(>p(@%5O8jo5>LqZ$b0O2C8_j8T/X2"L\KBWl^Z!!P6'QcSUniVrmu
+oDf"]PfW=mgA_-po)Jn_MS&*Ne,KEZnc/dpJ?@](n,In~>
+mf*:,rCR0E]]K"4rrW,hNq,dEDk#,Gjo5>Qqaq!-O2C8_j8T/XDY$I%H*<\78d/CAQcSUniVrnH
+oL]6rPfW=mgA_.\o1B-pMS&*Ne,KEmnk'$XJ?@](n,In~>
+mf*:<rI>!2]]K"4rrW,hXR^lDHCN:Rjo5>Tqg\fkO2C8_j8T/XR.Gh0Ks.cZJ-C(=QcSUniVrnf
+oRI'kPfW=mgA_/6o7-seMS&*Ne,KF'n:1SBhYHX?J,~>
+mf*:Rr;Zs>T$Qp)b5VP@j;%7d"B(K*nG_SM!6b6>"DEt<mf)8H!WJDV!!4j?')_e6!b$VZg@sP*
+!1i`^"=f>Cl2B?9!$Ce4"@e9\kl'!1!5@t'")+CYp$_p2~>
+mf*:WrCR2nT[3-+b5VP@k?.=J"DF%@nG_SM!8@<B"E0ICmf)8H!WKCr8ci=d<r>PmBn35;pYc&O
+\b&Js=c9uXrS%8O@.Qtn@Z%e]rR:cHd.'^1F.q.Wn,In~>
+mf*:ZrI>$%T[3-+b5VP@lA>+_"F-0PnG_SM!9O*."E]gHmf)8H!WL12J,u*nr."ogJ?%>ti;Wf&
+oRI'lMnSBRgA_/6o7-seMS&*Ne,KF)nUL^hU"/i)s*t~>
+mf*=e-N*oI:p]$RrlY6AqM"M@"A"Tjm/H/I!3>ts"ETjNnG_GI!UU-a!!*3jqu?mBEfRp!r8@ST
+an,Q9'83[NqqD&M+7fI87Z+hArR:cH^@;1+<1(o"rp]r<~>
+mf*=eAGo+'EO4NsrlY6AqPNjV"D!S1m/H/I!5n\+"ETjNnG_GI!UrnW8c_Rur(7,lEfRp!r8@ST
+f^qc=:kZ.6qqD&M@.Qtn@Z%e]rR:cHdIBg3C7*68rp]r<~>
+mf*=eP5Tn6LpPt5rlY6AqRuKN"F-!Em/H/I!7gss"ETjNnG_GI!V:s8J,k3!J-C7>NkaiVi;Wf;
+oRI'mKX0V7gA_/6o7-seMS&*Ne,KF)nULagR*>+"nGe"~>
+mJd/pr;Zs)M8niYb5VPBjp1MY"@nEblM]lF!/paT"9N\3bjs`m!W?*k!!!)u!!Q&BT[NH2i;WfJ
+o)Jl;W7q%#rr=/4!!GcK]BK4BrrBe'!!G`P`9mQns*t~>
+mJd0HrCR2dP/cebb5VPBlVI.F"CmD)lM]lF!3Q,j"*BmRo&9TLrJ0u:!)*5^"_)eNde!IrrrD``
+8csI>gA'D%!+>Cj"Cd8#kl'!1!7C=/"CmP3mJcVTJ,~>
+mJd0ir."m9`p3KErrW2fKCjZsGDs9$rT=+[`VY/fFI15BiVrrWWU53>EdFD,oD[\J!;Q/9"+I3&
+ptG`JO7Rl)G)EoqrR:cHhXQ+!H'#u3rp]r<~>
+mJd0Rqu?jKW7CM=b5VM?:\4Vi6]/P?rT=+[B`%i5%<e2eo\ofNrjD.o"Uf1&[,Ur>rrN*CoDeu!
+T$d2arr=/4!!GcK]BK4BrrB(h!!G?@]]oCas*t~>
+mJd0or(7)tW7CM=b5VM?Jb2P;@>__]rT=+[Pl+,V:3N)Qo\ofNrlOS#"\rrj[,Ur>rrN+.oL]4'
+T$d2arr?Hu8d&U\]BK4BrrBt,8d&IY]]oCas*t~>
+mJd1/r."p'W7CM=b5VM?V=]9@GDa&srT=+[[/>FWIWh1,o\ofNrn$Rg"b(BF[,Ur>rrN+\oRI$j
+T$d2arrA,OJ-:%Q]BK4BrrCU>J-:1V]]oCas*t~>
+mJd19qZ$_.]&NP.rrN+foDf"[M7VpLk5PEOqu?j/GFd1Si;WiS)XdY020P>-meu#B!)E.d"@89m
+mf(u@!$Ce4"@e9\kl'!1!1r]\">GS>k5=`KJ,~>
+mJd1Eqaps<]&NP.rrN,-oL]6oM7VpLk5PF/r(7)eGFd1Si;WiS>jk8g>'?7Rmeu#B!.jc7"Cm\:
+mf(u@!+>Cj"Cd8#kl'!1!4q\m"BpPhk5=`KJ,~>
+mJd1Mqg\d.]&NP.rrN,AoRI'hM7VpLk5PFWr."p!GFd1Si;WiSN:29#F`s+mmeu#B!2fC="FHBR
+mf(u@!0?`%"Eo[7kl'!1!711c"F>g3k5=`KJ,~>
+mJd4c&,ZD1$BiR!r6#$>f^o.H7YnY>r9""Z./X&J&p^,!p#,iNrc@N."CH\Zg@sG'!.+8;"=B&>
+kl'99!$Ce4"@e9\kl'!1!.aS>"=f)2j8AEHJ,~>
+mJd4c<;]>k:702kr6#$>iq,hG@YhVZr9""ZB)G7(:jJ\_p#,iNrgN:J"DE=cg@sG'!2/sV"BUMo
+kl'99!+>Cj"Cd8#kl'!1!2T-W"B^>`j8AEHJ,~>
+mJd4cL\lT(SBC6sb5VJ,oRI'fLq;gJk5PFGr."otH(WUZi;WiW\*nhMDh+kApYGiL]_$^WI#GZ$
+rS.>PO7Rl)G)EoqrR:cH_!upXHA&Wbr:'`:~>
+mJd4d9)ASk0<Egurlb<Br<r8u"@e6Zkl'ZD!!N3""<)T\f(S#$!6t!5"Wh]E^?GLNrrAbb!!Ejc
+Z/PQ6rr=/4!!GcK]BK4Brr?U"!!Fa&YMf9Hs*t~>
+mJd4dIeu_?@'&#Qrlb<BrDN;\"Cd5!kl'ZD!)3;_"B'Q?f(S#$!8?p7"]KH%^?GLNrrB_(8d%qB
+Z/PQ6rr?Hu8d&U\]BK4BrrA2O8d&7JYMf9Hs*t~>
+mJd4dV#,ZFKrir!rlb<BrIsop"EoX5kl'ZD!.t-!"FGHhf(S#$!9<R!"aY3L^?GLNrrCC;J-:=R
+Z/PQ6rrA,OJ-:%Q]BK4BrrB@pJ-:1MYMf9Hs*t~>
+m/I':q>^V,]]An3rrN*Ko`,+kMS/0OkPkPBqZ$a<H_f<ghu<`T/b&fE8:$oUoD[SG!5\7,"*CEn
+pY5]J+7fI87Z+hArR:cH3:QtO.=eSYqXFN8~>
+m/I'^qFUj;]]An3rrN+4oh#?uMS/0OkPkPJqapuhH_f<ghu<`TC%4e!@!\HmoD[SG!7UO3"*pcs
+pY5]J@.Qtn@Z%e]rR:cHEUcX(=FdR3qXFN8~>
+m/I(#qLA[.]]An3rrN+`omd0fMS/0OkPkPPqge]n!i4KChu<`TQ19A.EdFA*oD[SG!8mBu"+I-#
+pY5]JO7Rl)G)EoqrR:cHSFM+4H@W0UqXFN8~>
+m/I'qq>^X(N6:MbbPqQ+o`,,"N5"TUkPkOoqZ$a<I&>Tlhu<`VMXg`N#]#1$iVM@0!8d;I"BM&>
+oD[PF!$Ce4"@e9\kl'!1!"AAt"=\l(htljBJ,~>
+m/I(0qFUlcQ-/IkbPqQcoh#@$N5"TUkPkP-qapuhI&>Tlhu<`VX7Ajd9PoNjiVM@0!9`rG"DjUT
+oD[PF!+>Cj"Cd8#kl'!1!)i>Z"B^2WhtljBJ,~>
+m/I(>q1&R;b3]&LrrAY`J-9tQ^?Y[[rrCmPJ-:4HVV1b%rrN,9npgmmDhbUWqV;)Nmdkr3I%8RT
+rnRMRO7Rl)G)EoqrR:cHL@KcsH@W0UqXFN8~>
+m/I(Uq#COAW7LS>bl7Z0o`,,0OMgGakPkOKqZ$a<I&>WmhZ!W5"S2Ts/p*AumJYi?!<2Qi"?DXa
+mf)#A!$Ce4"@e9\kl'$2!71-7">k\4i;2sCJ,~>
+m/I(Xq+:cnWn-e@bl7Zgoh#@*OMgGakPkOiqapuhI&>WmhZ!W=9_1j[=EKhJmJYi?!<2R^"CRD3
+mf)#A!+>Cj"Cd8#kl'$2!8[-:"C$G[i;2sCJ,~>
+m/I([q1&U$Wn-e@bl7[:omd0cOMgGakPkP*qge]o!iF]HhZ!WCK(FKrGBB+imJYi?!<2S?"FQBO
+mf)#A!0?`%"Eo[7kl'$2!9`j%"F,L#i;2sCJ,~>
+m/I+c0)5JM7(D1LrltHC6hUK`$?VQTnG_VN!-%f8"<2`cgA'P)!W>:T!!HDQVqC^trrN*)oDf":
+M7VjIh#@?no)Jn_MS&*NeGfN0n,NSRK!=83nGe"~>
+m/I+cCACI)Cq/EtrltHCH1ji69luZBnG_VN!1E^V"B'WEgA'P)!W@358d&aTVqC^trrN*poL]6e
+M7VjIh#@@[o1B-pMS&*NeGfNQn4EgiK!=83nGe"~>
+m/I+cQMH%6MR_U=rltHCU%X!?IWUjsnG_VN!4_oVs*OmFgA'P)!WAV]J-9h?VqC^trrN+PoRI'l
+M7VjIh#@A6o7-seMS&*NeGfNhn:1XbK!=83nGe"~>
+li-rrp](D-_WL^>rr>:W!!FEgSC$ojrr>ai!!F-dVV:h%rrN+foDf%/E/V?jqqD&M+7oO9#D0,9
+qV;,A!!GcK]BK4Crr>IV!!GoJ[H.8Ts*t~>
+li-sIpdtX=_WL^>rr@698d&+;SC$ojrr@TH8d&%>VV:h%rrN,-oL]9`E/V?jqqD&M@.[%o9S0G)
+qV;,A8d&U\]BK4Crr@B78d&UW[H.8Ts*t~>
+li-sipj`I1_WL^>rrA\bJ-:1BSC$ojrrAqnJH'uuVV:h%rrN,AoRI*mE/V?jqqD&MO7[r*ItFi\
+qV;,AJ-:%Q]BK4CrrAe_J-9tJ[H.8Ts*t~>
+li-sQp](F$KZi`ZcMml#p&G4TI&,Ehk5PE,qZ$a/I&5Kih>[ND#PA'#4F!@?nc%8B!$Ce4")"C[
+p>#]=!!GcK]BK4DrrMEgn,NSrMS&*NnGe"~>
+li-snpdtZ`PKW=icMml^p.>HmI&,Ehk5PEkqapudI&5Kih>[NH:\@<`?$Mj`nc%8B!+>Cj"*:6g
+p>#]=8d&U\]BK4DrrMXan4EgtMS&*NnGe"~>
+li-t.pOE@;bO#,OrrAJ\J-:%CUtGG(rrA5ZJ-:=KV:bOurrMbEomd3fGaltJrn@APO7Rl(IA>Be
+h#Hqq"Eo[7kl''3!VM'6J-9nM]BK4_s*t~>
+li-t3pAb=+RFC['ci3t]p&G4qK!=20kPkPVq>^X*HD9!ah>[NS9_JGi!bHtdh>#\'!%7@<"A,!(
+nc%AEnc/e^MS&*Nec,W-n,NUqEKA$(rp]r<~>
+li-t@pIYQcU!rN/ci3uKp.>I"K!=20kPkPXqFUlbHD9!ah>[NSJ+ZD:C4`VEpt>ZIAb/LsAsgd3
+rn[VF8d&U\]BK4DrrB1j8d.n.O2L>`nGe"~>
+li-tIpOEBuVpk/5ci4!(p4*9cK!=20kPkPZqLA]tHD9!ah>[NSV"K6@Dh>.Jpt>ZIPOj;-I$i+I
+rn[VFJ-:%Q]BK4DrrC%-J-CFBO2L>`nGe"~>
+li."a&,-&,(oGsVrR(WFn+H_b#]Pa9kksWD!71H@"*gHfp"fWKrhfAh"WqcH_<V!Prr>7S!!Fp7
+_!CsUrrCsI!!GcK]BK4ErrN!Bn,NV6FdUDCrp]r<~>
+li."a<;/uf<iamDrR(WFo_(l\9Q5s(kksWD!8[HC"*gHfp"fWKrkA(u"]TN(_<V!Prr@668d&@Y
+_!CsUrrD9R8d&U\]BK4ErrN%-n4Ej`FdUDCrp]r<~>
+li."aL\H<%KW`turR(WFp\'+@IW17ZkksWD!9a0."*gHfp"fWKrm:@h"aY3N_<V!PrrAY^J-:7[
+_!CsUrrDNYJ-:%Q]BK4ErrN(]n:1[gFdUDCrp]r<~>
+li."b6M:B^,d,qprmLfH\+Te*/p<W*nG_VN!2oVm")==Po\BHIo*b9m"\*g3de*Olrr>:T!!Emf
+[,_&?rrCdD!!GcK]BK4ErrA\[!!GT8Ut>>/s*t~>
+li."bGkO`4?Er;XrmLfHbk=X4=E^(TnG_VN!5SD&"*0mXo\BHIohtNV"^lYMde*Olrr@668d%tE
+[,_&?rrD0O8d&U\]BK4ErrB\"8d&IJUt>>/s*t~>
+li."bT_<m=LU>k/rmLfHg\-.$GBT@snG_VN!7Uao"*g<^o\BHIpP&?l"`ep_de*OlrrA\_J-:=T
+[,_&?rrDEVJ-:%Q]BK4ErrCC6J-9tAUt>>/s*t~>
+lMgj0o`,+AZJP9Re,KDhp&G5!J#M)pk5PF+q#CP&Qd#"!h>[NS=SMk""`&k!iVM4,!'g#S")k*k
+pYPoM^[_@-7Z+hArR_&MpE8r*"TrCkZJt`Ls*t~>
+lMgjVoh#?n[bg]Ve,KE<p.>I"J#M)pk5PFRq+:d+Qd#"!h>[NSL\OIF9PoNjiVM4,!-[p*"*g`t
+pYPoMddg!5@Z%e]rR_&Mq-`\a"\WZcZJt`Ls*t~>
+lMgjromd1$\DHoXe,KEYp4*9bJ#M)pk5PFoq1&TmQd#"!h>[NSWq_)JIrC(JiVM4,!2&h4"+R6&
+pYPoMhsu:#G)EoqrR_&MqiL;t"b1HEZJt`Ls*t~>
+lMgjcoDf"@[,:QUeGfLgpAb@8EK%Qmr9""Z8GN5g8Wq*]rnRMRWqZPt.WgopmJY];!&*mC"A,*.
+o)@PH!3>Yj"@e9\kl'-5!-@T/"Y"PW`9dHks*t~>
+lMgk&oL]6n\)6lXeGfMTpIYTeEK%Qmr9""ZI/-A;AWk($rnRMR_>$V+=*0\HmJY];!,M-t"D=4L
+o)@PH!5nA""Cd8#kl'-5!1`LM"]of0`9dHks*t~>
+lMgk7oRI(#]&32[eGfN/pOEEoEK%Qmr9""ZV"oNDH'628rnRMRdeJ=rG]]1imJY];!138,"FZcb
+o)@PH!7gXj"Eo[7kl'-5!4hQK"aG-Q`9dHks*t~>
+lMgkCo)Jn?[,:QUf)G`Rp&G7mH(N@Qroa:^o*G-l">c"NlM]N<!V6]p!!H)GV:P@lrr<l+!!FI+
+_!:mUrr@uJ!!GcK]BK4GrrL"?n,NXo?%/X$p&=F[J,~>
+lMgkKo1B-m\)6lXf)G`ip.>KuH(N@Qroa:^p/(QW"C-o"lM]N<!VK@d8d&XPV:P@lrr?6n8d&1U
+_!:mUrrB1l8d&U\]BK4GrrLVDmn*asI\kWgrpTl;~>
+lMgkQo7-t"]&32[f)Ga%p4*<dH(N@Qroa:^q1SQo"FH*AlM]N<!V_<DJ-9k?V:P@lrrA#KJ-::]
+_!:mUrrC%/J-:%Q]BK4GrrM)1mskR[I\kWgrpTl;~>
+lMgna'Cu2,,cokprR_&L0_YPN+E3.FiVDX9!1W``";Za"jS[g5!WH3t!!N^ILpuIBf`(sCnGi[p
+I^.i-hu<[enc/e^MS&*Ng&D*9)".G.13/Dfk54THJ,~>
+lMgna=7]#e?F&G[rR_&LD"gO*<,dZ%iVDX9!4_er"B'u^jS[g5!WIlN8d.q-LpuIBf`(sFnO`pW
+J[+/0hu<\<nk'$oMS&*Ng&D*@>OP/f=`TP8k54THJ,~>
+lMgnaM=Z6#Lq)=6rR_&LR.l+7H>n\KiVDX9!6t:h"FZ$4jS[g5!WK+qJ-CC@LpuIBf`(sIn:1Uo
+Z/GK9rrB@qJ-:%Q]BK4HrrM_MmskRbEfRfpqsOK7~>
+lMgna9(Drb'qO.Nr7V)MS+cme"(-AGcLCeqrrMj>pAb;9Wn[='rrB(q!!OutQc\^qf`(rdn,NSg
+U"&`6i;Wd2nc/e^MS&*NgA_3:..7-?&o3#peFW\-s*t~>
+lMgnaIe$)6<iXsGr7V)M\G&T"95&XCcLCeqrrMq*pIYO6Wn[='rrBn38d/=>Qc\^qf`(s"n4Eh"
+U"&`6i;Wdnnk'$oMS&*NgA_3AB(&=r:i1`[eFW\-s*t~>
+lMgnaV"0$=KsTS*r7V)Mc1c_mIrBY)cLCeqrrN"[p4*4Eg\BP'!7L^o"a>*Uam]5]rrCsGJ-:@q
+eF`aurrAGWJ-:%Q]BK4IrrM_UmskUiDh+_7oD\1XJ,~>
+l2La,nGi^uJ_0AernRMSh[oM^"Zg^a]&WVKrr@E>!!G][cgq(jrrM^!qZ$atI]1omfDbhhn,NS8
+P/Q_ciVro@nGi\]MS&*Ng]%<;..7-?"^-)9_s%!bs*t~>
+l2LaSnO`s[R+Lg'rnRMSkZ.@L"^H,.]&WVKrrAee8d&arcgq(jrrMdjqaq!%I]1omfDbi=n4Egb
+P/Q_ciVroGnO`pnMS&*Ng]%<BB(&=r9P/O8_s%!bs*t~>
+l2LapnULdpWn6_9rnRMSmtg^g"a"gF]&WVKrrBb+J-:=kcgq(jrrMkJqg\fhI]1omfDbi[n:1Xj
+P/Q_ciVroLnULacMS&*Ng]%<GPja,,IrBRt_s%!bs*t~>
+l2La_mf3Jfc0G*'hZ!WJ0_YPO*cHY/eare'rrKG/p&G4'MSA<Ph#@ES=Sr.&$ZM!7k53g2!V[H"
+!!@,Di;)@3!0cpQ"@e6[kl'<:!RDnW!!`QtFH!Zbp\sR[J,~>
+l2Lb"mn*_0cKb3(hZ!WMD"gO+;f@8deare'rrL59p.>H_N5"NRh#@ESL\saJ:2l*%k53g2!Vosg
+8csIGi;)@3!4),e"Cd5"kl'<:!Sq/O8d8^GN4.U;rpB`9~>
+l2Lb4mskP/cg(<)hZ!WPR.l+8H>eD6eare'rrLf)p4*9qNkX`Th#@ESWr.ANIW11Uk53g2!W.iE
+J-1P2i;)@3!6Ob]"EoX6kl'<:!U#R4J-L%9N4.U;rpB`9~>
+l2Lb6mJmA6WoNaLi;WiL48/^Z%qL$Wa6WWcrrL"GoDf"aWS$qDh#@ASqu?mQG*pGArn.5NL[G-F
+*1G+@rSmhW/F`]C'md=Lqq_8QP76jZ#!?p\XOZn?m/MS~>
+l2LbAmRdUg[c@#Xi;WiOFSAB3:25-Ga6WWcrrLVIoL]7$WS$qDh#@Ajr(7,pG*pGArn.5NWpWI^
+<h.D'rSmhWC%4du;1c7;qq_8QZ;U*_#$c2'XOZn?m/MS~>
+l2LbJmXPFt^Z4tai;WiRSbIX=I;XD%a6WWcrrM)5oRI'sWS$qDh#@B&r."rpG*pGArn.5N_sMsV
+SBUL$ir9"EnULajLUQ:@h>[MtL@0QrFE3,;eai\*s*t~>
+l2Le`$gmuu"_lNTq>TFS!TQ$2!!`j8GE]]"q#9LW!P8d3!!EFP_<CdOrrM^!r;Zt!I]1upf`)!$%
+.+#t8@.1IroF(ZU[J0d%rThaqYoIR!Rj:$!!`QjEJ147mJQ;MJ,~>
+l2Le`;XR-\9oRZkq>TFS!UF[u8dA('GE]]"q#9LW!RF[88d%hE_<CdOrrMdjrCR3'I]1upf`)!1
+;XI'ZD6r*nroF(Z^@+Yt;2EZhqYoIR!T81h8d8UAKVm&^r9OB5~>
+l2Le`L$jHpJu.)eq>TFS!V)WQJ-UOAGE]]"q#9LW!SrM$J-1tNkkj08!V_<HJ-9k@W7q!urrMA=
+m=5=qZekHUjSo5-mskRmSC6m&ro*kXl(@?n#'=j<VU"T,li2J~>
+l2Le`1@+uE+IqNbr;PjY!NQq/!!`j8G)iuco`"(S!KRBR!!En#dI@(irrN*mrW!*0E/M6hr7V)N
+k:#Wr"BiV(q>TOV!TOm]!!XBfeFNG6roX4^dU*.F!!`^'EeUC6lMBfGJ,~>
+l2Le`D<sju?E`G^r;PjY!Q8+78dA('G)iuco`"(S!O,;g8d&%`dI@(irrN+Lr^m>hE/M6hr7V)N
+mUkcW"F@rIq>TOV!UEkT8d8Ifg%+t;roX4^hi1=t8dA%!EeUC6lMBfGJ,~>
+l2Le`R-]>,MnJ-Cr;PjY!S*)%J-UOAG)iuco`"(S!QTf^J-:FudI@(irrN+prdY0$E/M6hr7V)N
+o9AQk"HgR`q>TOV!V)'7J-Lk8hX^L@roX4^kc]U+J-UREEeUC6lMBfGJ,~>
+kl1Wpl2UuP\*<Varp'LacU[[/#7Og[Nj@=.r9=4^gHY*+";?sNnbh5C!1s/i"YY%db4,DarrL.[
+kl:iY_WU^nkl1\H.-^d<"$1nHoD&7_rpB^entJA8!!jBKG)E<FlM:GEs*t~>
+kl1XGl:M5#_Wgdlrp'LagjJff#>SoTNj@=.r9=4^k'-5c"B;&Hnbh5C!4i)$"^#r8b4,DarrL_X
+kt2)#`TR$qkl1\OB'Mto9Q6ZMoD&7_rpB^ep:Y\:8dJ:.G)E<FlM:GEs*t~>
+kl1Xgl@9&)bN\`urp'LakG.a$#C^T7Nj@=.r9=4^m@Wfs"G<`,nbh5C!6tLn"a>-Wb4,DarrM/?
+l$ro"`om-rkl1\TPj3c)JXEt"oD&7_rpB^eps>Z"J-^L@G)E<FlM:GEs*t~>
+kl1XCkl:ni6)s5Dr;Q-a!Obes!!aBOG`T2_nbh\P!p=J-li71mAC'Z=rnm_]mfWUj<dq"$pY5]L
+k@Xq\!!O@#iUZmFli."#*9@/,%R"Wo_WLXjr;HWoqu?]q"R`jU6O<#Y#mNM1I?UtcmJ?hHs*t~>
+kl1Xckt2.RFM$i3r;Q-a!R-/g8dA7/G`T2_nbh\P!q)IQlq.FTL=5Jbrnm_]nk;YJB7?f5pY5]L
+mZUB.8d/CmiUZmFli."5?KFcc;fn80d-LK(r;HWoqu?]q"S0j;Gu*d!#u"WDI?UtcmJ?hHs*t~>
+kl1Y&l$rthRE4[er;Q-a!SaOFJ-UF>G`T2_nbh\P!qWmSm!o7jT[W<(rnm_]on%^EFFL1BpY5]L
+o<X&3J-Cb8iUZmFli."CNobctL7>Kgh!Xt7r;HWoqu?]q"SUWfTnMc_$%I&:I?UtcmJ?hHs*t~>
+kl1Xrjo>W0FLgr:r;Q]hrr_\pCE)pH#Qcc!I$D(mnbhbR"8fZ2#j;6m&p2Ojq#13Ors8Qg!"4".
+\`WhHrr`,/>6s6h"sSWKo(i7`nG`O+:Yc!S%OaPFC4#l+")V4&([1o+"#"51LnVT=nGDDKJ,~>
+kl1Y/k"5kcR)ngmr;Q]hrr_l6Q<j,T#?l%nPd]98r9XFcr6C*pkXl%ZQ.PO#rVkgV#lSs>:O%c-
+k5=*9"8pH%:ub.P@%Z0Dq>L<^rrLW$h+@lNAp0#qTV;=Y"."da>3SWc93H(ULnVT=nGDDKJ,~>
+kl1Y=k(!\rZIJF>r;Q]hrr_uI[>jg/#Bk'6Pd]98r9XFcrS4H,k^WklY1rI@rVkgV#lU?FJU*-`
+k5=*9"8prVK]@ReN4%R6q>L<^rrM&Uh1,Z`P+AVY]DT;D[B,mVl$s(iGB%k`TtfCPqre!0~>
+kl1YIirBT%89UT9f\5'6gXEg.JlXAl!!j??FG-7#hX^U5rri>TSmN2l!!`TaHEuT*qY^?lkl1qf
+P5mXuR*"grj8T;^o"KuW&DdBn"#k>)j7iEKrr2fps8E,WVIpjV!"&obApB'![*Ih,r9"$0~>
+kl1YOj%9MUHCVIgi8agt"lIY<VMAjU8dJ:+FG-7#hX^U5rri>^\rBhP8dA%-S]'adqY^?lkl1qf
+Z:\ebR*"grj8T;^p!Bdl<Sg=S9Q$98kkFrPrr2fps8E,`^lr'48d\6qCj:]'[*Ih,r9"$0~>
+kl1YSj+%YqTXW(rkj%I!lfd-M^oE[jJ-^OCFG-7#hX^U5rri>fcEE,cJ-UXk[aOL9qY^?lkl1qf
+a+/u#R*"grj8T;^ptireLu*XgJX<ajlhC8Srr2fps8E,gd^+qAJ-pdMEd3>-[*Ih,r9"$0~>
+kl1\_'E.t9!uWR>/0Y_S!!s!!E.*kMb2i9pnc&]PB0Hj[!!j;u<c39EpA=jSrs%?\HC(Yap>u;V
+mrM8Le,Tms7VT7#q#15rG?-I0[/^U:*Ck$qLmt]mi:-UBjo9i~>
+kl1\_=8ker92\kq>?=\L8dS4!EIEtNb2i9pnc&]qPBKs[8dJO<KpJCqpA=jSrs%XYOI*!"p>u;V
+oULMBe4L-THBZA>q#164Sqh/^Zq:^)@WHjPS$L2pnG<.Gs*t~>
+kl1\_M>i#0IsZKhI"$RmJ-g[HEda(Ob2i9pnc&^3Z_!!,J-_""W3j2&pA=jSrs%k@TU2\2p>u;V
+pUR2ae:7sdTX!#;q#16E];h6R["&O2F`VqdS$L2pnG<.Gs*t~>
+kPl&N""mAeHA%6?P`gl>9IUD&!"'6$DL7;9^=_iKrp]pf+OU5l[G:3HlMh(e5JXG;jSS'=!8l'%
+"_?*EpASF+!"BDf88EO)P+oD.hsU:<j8XW~>
+kPl'39O_aWHA%6?P`guRDHoui8d\="E-mM;^=_iKrp]pf@+%XL^>//QlMh(eG/CDtjSS'=!9h^#
+"c:^jpAU)Z8e"Nt@rZgJP+oD.hsU:<j8XW~>
+kPl$\JV\_rHA%6?P`h)bL4Rs,$@R&;H]+W4f^8M6nG`KMdXVG=h!Y%(rs&Fn`3-o:qrRhXn'6Fe
+UsnK"ri`\Z%=WVHG'\h)U:/8&meHb@s*t~>
+kPl74`3,;fU9VGOaMu*/ZDX4D>s'#.huF,g-W"o6NM3o0k4JT>rsjj*?rBa(=BT-B?tX@rEURrJ
+@fKg9?2dY.:..N?3&ipe]\W;\li.1go\7O?n,DGK''ag]>Ydpc<Dub#?=$uKDJsN7mrBIe@UWYO
+>#8$k7R9@(1cB-Rd-gk$=CG3<?>=:jFEI+ps'cCE>#8$b5W^SL*Z>Lni;aGn'I>e:C4(VkQ(kS%
+eDp&nrSdd,~>
+kPl7DbH@%mU9VGOaMu*/ZDX4MG@jiKi(=AN<b6B%NM3o0k4JT>rsbupKm7W^FE2PGEclVPmWo"Y
+FE;JBrG2gSC2@KoB:limpAXCX#6+8Lb1H+]jo5YVTTaqKDJjH4D>eGUF*MutH6IQUFE;JACi!m#
+AnP^cA:h&4mesVLLO+ApIsucpI=-Bgp3I3kFE;D;CM.0e>[(6.:efn@&PQ&'?YFJ-Jr>ngZGY2P
+nG)t@s*t~>
+kPl1Nd&rRrU9VGOaMu*/ZDX4TM1j`9$\*GDFFK4C\^9L2r9jRp_QohtN/NLGK7SQ&It3+;K):'+
+JqSi4L5:\^]\W;\li.1go\7O?n,DGK$hV'6S<&M^KnFr,If4`tJ:W:<K)C-7It3*%K7nuCYgDh:
+bc%;%P)bQ]M2$]RK):&uJ,OirJ)PniIslZiG^+UfMj:$B_pm`9q#01OJ,~>
+kPlCqkfgcZeDTTZn*]Q+inDbu\ZVZjE)//'k5Yr'/PpG7LR"dMdH'lprpB^rqW5\tTq7jJTq\B\
+W2cr$n?*G,XJr+pVPKrZTV%gIT:i'nh"C[3rri2dk3Vm(rt>>)hS#hZSXc7CTVA6ZVPpMrXm`D#
+XfSS%Vl$>eU7e-LrgX7dYg;b9r9MS1rh9RlV5C2lXnAh;XfSM"VPKoXS=5e0P)tZ\I<B=7?VsWm
+5X.Fh/hZiL'fnHM<FKiqJqo;KR\[.!aOT89o_SREs*t~>
+kPlCqkfgcZeDTTZn*]Q+inDbu\ZVZlJT"ppk=Q1Z=_;c'LR"dMdH'lprpB^rqW5\tTq7jJTq\B\
+W2cr$n?*G,XJr+pVPKrZTV%gIT:i'nh"C[3rri2dk3Vm(rt>>)hS#hZSXc7CTVA6ZVPpMrXm`D#
+XfSS%Vl$>eU7e-LrgX7dYg;b9r9MS1rh9RlV5C2lXnAh;XfSM"VPKoXS=5e0P)tZ\K78)gF)>`-
+ARo:X>[6u,'jtK`CN+NIJqo;KR\[.!aOT89o_SREs*t~>
+kPl@pkfgcZeDTTZn*]Q+inDbu\ZVZnN/*#IJ.6pPG'/1fQ)D:BjRW0HmJd^nji+<pSt;RJU8=`c
+WiW>lXqRq=WMcVjUnXNTT:VXHTVf?Vp&=7V"T%QKm.fZA')qU]]r.KnS=Q:FU84Z`W2cr$n#d&#
+XK/:tVP^/`TV%eSS-YakcgLc0lccR3U'7?hVPpPtor]17XJr+pUnOENR[9;&OH#-QKnP&/JUi6#
+J,OiiIK+]pHiJI(IY*?6PFA;N]?&O]m.C/RhuA3~>
+kPkecp?_#0o_SLarY#2,q"*q9hUTfb[&KXYEDekD%J'Q3!tun?:i(N2N0gEMa4TSGqYog\%fGkT
+eBlRie(*%%g=tE>mb\W4gtLK8f[eU&da6=cbK\]*qW\"_rqcEdrT!nhqX31fcd:%eeCE.&g"P39
+hX02AhV?l>g=b-0eC;pncHOJ[jRrNNoA\6Ed*pOtg"bETh]:P.g=b-0eC)[eb/V<5]XY>QY,\Cq
+U7\!GR@';*p662UR%'bEWj&tH`m<8okjS3@rVkXQJ,~>
+kPkecp?_#0o_SLarY#2,q"*q9hUTfb[&KX[J8f%%:\.0j92JYqBQJQQN0gEMa4TSGqYog\%fGkT
+eBlRie(*%%g=tE>mb\W4gtLK8f[eU&da6=cbK\]*qW\"_rqcEdrT!nhqX31fcd:%eeCE.&g"P39
+hX02AhV?l>g=b-0eC;pncHOJ[jRrNNoA\6Ed*pOtg"bETh]:P.g=b-0eC)[eb/V<5]XY>QY,\Cq
+U7\!GR@';*p662UR%'bEWj&tH`m<8okjS3@rVkXQJ,~>
+kPkecp?_#0o_SLarXf&*q"*q9hUTfb[&KX]MhZlRJ.R-UH?a[^JrH%n[`@%`o(r@Orsntsi7--#
+dF6Xsf\5*8hX985h;$`<g"=m+eC)^icHFJblh]lG"TJ8mqYfIS&GkhNda-:edaZguf\,!5gtqGU
+*o>],g=k64f$r3td*BkYdcC*#rU]$tcHt%jf\,'9oA:SEgtLH6f$r-obf[rB^V%(`Ycb"(UnXKP
+S!fY0Q1gFTQC+/7UoLZ.^;eLNhrsP%qYgELs*t~>
+k5PS_r;?Nmp\ts,r;--VlJpXIaM,![TU1[bAm%u-r([l1AT<3OL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+k5PS_r;?Nmp\ts,r;--VlJpXIaM,![TU1^lG]@S9r+Zj_Ed3(cL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+k5PS_r;?Nmp\u!-r;--VlJpXIaM,![TU1atL4b&-J,OiqI1LgZL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+%%EndData
+showpage
+%%Trailer
+end
+%%EOF
diff --git a/templates/Brazilian_Portuguese-logo.png b/templates/Brazilian_Portuguese-logo.png
new file mode 100755
index 00000000..5edcdfe5
--- /dev/null
+++ b/templates/Brazilian_Portuguese-logo.png
Binary files differ
diff --git a/templates/Brazilian_Portuguese-packing_list.html b/templates/Brazilian_Portuguese-packing_list.html
new file mode 100755
index 00000000..00407c52
--- /dev/null
+++ b/templates/Brazilian_Portuguese-packing_list.html
@@ -0,0 +1,137 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr>
+ <td width=10>
+ </td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th colspan=2>
+ <h4 align=center>LISTA DE PRODUTOS</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Data</th>
+ <td width=10> </td><td><%invdate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>N&uacute;mero</th>
+ <td></td><td><%invnumber%></td></tr>
+ </table></tr>
+
+ <tr>
+ <td>
+ </td>
+ </tr>
+ </table></td>
+ </table>
+
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color="ffffff">Para:</font></th>
+ </tr>
+
+ <tr>
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <br><%shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <br><%shiptocountry%>
+<%if shiptocontact%>
+ <p>Obs.:
+ <%shiptocontact%>
+ <%end shiptocontact%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>N&uacute;mero</font></th>
+ <th align=left><font color=ffffff>Descri&ccedil;&atilde;o</font></th>
+ <th><font color="ffffff">Quant.</font></th>
+ <th>&nbsp;</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>Obs.:</td>
+ <td><pre><%notes%></pre></td>
+<%end notes%>
+ <td align=right>
+ <%shippingpoint%>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><font size=-3> </font> </td>
+ <td width=150>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</body>
+</html>
+
diff --git a/templates/Brazilian_Portuguese-packing_list.tex b/templates/Brazilian_Portuguese-packing_list.tex
new file mode 100755
index 00000000..0d80c769
--- /dev/null
+++ b/templates/Brazilian_Portuguese-packing_list.tex
@@ -0,0 +1,108 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%invnumber%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+<%pagebreak 65 27 37%>
+\end{tabular*}
+
+\newpage
+
+\markright{<%company%>\hfill <%invnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rll@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Bin} \\
+<%end pagebreak%>
+
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{2cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{3.5cm}
+
+\textbf{LISTA DE PRODUTOS} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+
+\hfill
+\begin{tabular}[t]{l@{\hspace{0.3cm}}l}
+ \textbf{Data} & <%invdate%> \\
+ \textbf{Número} & <%invnumber%> \\
+ \textbf{Cliente} & <%customer_id%>
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rll@{}}
+ \textbf{Número} & \textbf{Descrição} & \textbf{Quant.} &
+ \textbf{Unid.} & \textbf{Bin} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabular*}
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{12pt}
+
+<%notes%>
+
+}
+
+\end{document}
+
diff --git a/templates/Brazilian_Portuguese-pick_list.html b/templates/Brazilian_Portuguese-pick_list.html
new file mode 100755
index 00000000..bfd1d934
--- /dev/null
+++ b/templates/Brazilian_Portuguese-pick_list.html
@@ -0,0 +1,153 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>P R E P A R A Ç Ã O &nbsp;&nbsp; D E &nbsp;&nbsp; P E D I D O</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th width=50% align=left><font color=ffffff>Enviar para:</th>
+ <th width=50%>&nbsp;</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ </td>
+
+ <td>
+ <%if shiptocontact%>
+ <br>A/C: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=15% align=left>Fatura #</th>
+ <th width=15% align=left>Pedido #</th>
+ <th width=10% align=left>Data</th>
+ <th width=15% align=left nowrap>Contato</th>
+ <th width=15% align=left>Armazém</th>
+ <th width=10% align=left>Local do despacho</th>
+ <th width=10% align=left>Enviar por</th>
+ </tr>
+
+ <tr>
+ <td><%invnumber%>&nbsp;</td>
+ <td><%ordnumber%>&nbsp;</td>
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%transdate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+ <td><%warehouse%>&nbsp;</td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Pos</th>
+ <th align=left><font color=ffffff>Número</th>
+ <th align=left><font color=ffffff>Descrição</th>
+ <th><font color=ffffff>Qtd</th>
+ <th><font color=ffffff>Enviado</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Local</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td align=right>[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</td>
+ <td><%unit%></td>
+ <td align=right><%bin%></td>
+ </tr>
+ <%end number%>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+</table>
+
diff --git a/templates/Brazilian_Portuguese-pick_list.tex b/templates/Brazilian_Portuguese-pick_list.tex
new file mode 100755
index 00000000..266db96d
--- /dev/null
+++ b/templates/Brazilian_Portuguese-pick_list.tex
@@ -0,0 +1,143 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}rlXrcll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} &
+ \textbf{Qty} & \textbf{Ship} & & \textbf{Bin} \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.5\textwidth}{
+ \textbf{Ship To}
+} \hfill
+
+\vspace{0.7cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.5\textwidth}{
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+}
+\parbox[t]{.4\textwidth}{
+ <%shiptocontact%>
+
+ <%if shiptophone%>
+ Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{P I C K} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{7}{|X}|} \hline
+ \textbf{Invoice \#} & \textbf{Order \#} & \textbf{Date} & \textbf{Contact}
+ & \textbf{Warehouse} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+ <%invnumber%> & <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%transdate%>
+ <%end shippingdate%>
+ & <%employee%>
+ <%if warehouse%>
+ & <%warehouse%>
+ <%end warehouse%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrcll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} &
+ \textbf{Qty} & \textbf{Ship} & & \textbf{Bin} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> &
+ <%qty%> & [\hspace{1cm}] & <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+}
+
+\end{document}
+
diff --git a/templates/Brazilian_Portuguese-pos_invoice.txt b/templates/Brazilian_Portuguese-pos_invoice.txt
new file mode 100755
index 00000000..4aef5a29
--- /dev/null
+++ b/templates/Brazilian_Portuguese-pos_invoice.txt
@@ -0,0 +1,51 @@
+<%company align=center width=40%>
+<%address align=center width=40%>
+
+Até: <%till align=left width=3%> fone#: <%tel%>
+Clerk: <%username%>
+Vendedor: <%employee%>
+
+<%invtime%><%invnumber align=right width=16%>
+
+ Qtd Descrição Total
+<%foreach number%>
+<%qty align=right width=5%> <%description align=left width=24 offset=6%> <%linetotal align=right width=9%>
+ <%number%> @ <%sellprice%>/<%unit%>
+<%end number%>
+
+Número de itens: <%rowcount%>
+<%if taxincluded%>
+ ---------------
+ Total devido: <%invtotal align=right width=9%>
+<%end taxincluded%>
+<%if not taxincluded%>
+ ------------
+ Subtotal: <%subtotal align=right width=9%>
+<%end taxincluded%>
+<%foreach tax%>
+<%taxdescription align=right width=23%> @ <%taxrate align=right width=2%>%: <%tax align=right width=9%>
+<%end tax%>
+ Total devido: <%invtotal align=right width=9%>
+<%foreach payment%>
+<%paymentaccount align=right width=29%>: <%payment align=right width=9%> <%currency%>
+<%end payment%>
+<%if change%>
+ Troco: <%change align=right width=9%>
+<%end change%>
+<%if total%>
+ Saldo devido: <%total align=right width=9%>
+<%end total%>
+<%if discount%>
+
+<%discount%> % Desconto aplicado
+<%end discount%>
+
+ Obrigado por ser nosso cliente!
+
+<%if taxincluded%>
+Os impostos estão inclusos no preço.
+<%end taxincluded%>
+
+
+
+
diff --git a/templates/Brazilian_Portuguese-purchase_order.html b/templates/Brazilian_Portuguese-purchase_order.html
new file mode 100755
index 00000000..81ca3db2
--- /dev/null
+++ b/templates/Brazilian_Portuguese-purchase_order.html
@@ -0,0 +1,252 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <td><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58>
+ </td>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>O R D E M &nbsp;&nbsp; D E &nbsp;&nbsp; C O M P R A</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>Para:</th>
+ <th align=left width=50%><font color=ffffff>Enviar para:</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+<br>
+<%if contact%>
+<br>A?C: <%contact%>
+<%end contact%>
+<%if vendorphone%>
+<br>Tel: <%vendorphone%>
+<%end vendorphone%>
+<%if vendorfax%>
+<br>Fax: <%vendorfax%>
+<%end vendorfax%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+<br>
+<%if shiptocontact%>
+<br>A/C: <%shiptocontact%>
+<%end shiptocontact%>
+<%if shiptophone%>
+<br>Tel: <%shiptophone%>
+<%end shiptophone%>
+<%if shiptofax%>
+<br>Fax: <%shiptofax%>
+<%end shiptofax%>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr><td>&nbsp;</td></tr>
+
+ <tr>
+ <td colspan=2>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left>Pedido #</th>
+ <th width=17% align=left>Data</th>
+ <th width=17% align=left>Requerido para</th>
+ <th width=17% align=left>Contato</th>
+ <th width=17% align=left>Local do despacho</th>
+ <th width=15% align=left>Enviar por</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%></td>
+ <td><%orddate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+<!-- <th align=right><font color=ffffff>No.</th> -->
+ <th align=left><font color=ffffff>Número</th>
+ <th align=left><font color=ffffff>Descrição</th>
+ <th><font color=ffffff>Qtd</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Preço</th>
+ <th><font color=ffffff>%</th>
+ <th><font color=ffffff>Total</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+<!-- <td align=right><%runningnumber%>.</td>
+other per line item variables available <%reqdate%>
+adjust the colspan if you include this to shift subtotal one to the right
+-->
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discountrate%></th>
+ <td align=right><%linetotal%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=7><hr noshade></td>
+ </tr>
+
+ <tr>
+<%if taxincluded%>
+ <th colspan=6 align=right>Total</th>
+ <th colspan=1 align=right><%ordtotal%></th>
+<%end taxincluded%>
+
+<%if not taxincluded%>
+ <th colspan=6 align=right>Subtotal</th>
+ <td colspan=1 align=right><%subtotal%></td>
+<%end taxincluded%>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=6 align=right><%taxdescription%> em <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=1 align=right><%tax%></td>
+ </tr>
+<%end tax%>
+
+ <tr>
+ <td colspan=3>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+<%if not taxincluded%>
+ <th colspan=6 align=right>Total</th>
+ <td colspan=1 align=right><%ordtotal%></td>
+<%end taxincluded%>
+
+<%if terms%>
+ <tr>
+ <td colspan=3>Termos <b><%terms%></b> dias</td>
+ <th colspan=3 align=right>Total</th>
+ <th colspan=1 align=right><%ordtotal%></th>
+ </tr>
+<%end terms%>
+
+<%if taxincluded%>
+ <tr>
+ <td colspan=2>Imposto incluso</td>
+ </tr>
+<%end taxincluded%>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+<%if ordtotal%>
+ <tr>
+ <td colspan=7 align=right>
+ Todos os preços em <b><%currency%></b>
+ </td>
+ </tr>
+<%end ordtotal%>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+<%if notes%>
+ <tr valign=top>
+ <td>Observações</td>
+ <td><%notes%></td>
+ </tr>
+<%end notes%>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=70%>&nbsp;</td>
+
+ <td width=30%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Brazilian_Portuguese-purchase_order.tex b/templates/Brazilian_Portuguese-purchase_order.tex
new file mode 100755
index 00000000..5f129341
--- /dev/null
+++ b/templates/Brazilian_Portuguese-purchase_order.tex
@@ -0,0 +1,200 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telefone & <%tel%>\\
+ Fax & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%ordnumber%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+<%pagebreak 65 27 37%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markright{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Amount} \\
+ & carried forward from <%lastpage%> & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{10.5cm}{
+\textbf{To}
+\vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+Attn: <%contact%>
+\vspace{0.3cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\parbox[t]{7.5cm}{
+\textbf{Ship To}
+\vspace{0.3cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%if shiptoaddress2%>
+<%shiptoaddress2%>
+<%end shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%if shiptocountry%>
+<%shiptocountry%>
+<%end shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+Attn: <%shiptocontact%>
+\vspace{0.3cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{ORDEM DE COMPRA} \parbox{0.3cm}{\hfill} \textbf{O R D E R}
+\hfill
+\begin{tabular}[t]{l@{\hspace{0.3cm}}l}
+ \textbf{Data} & <%orddate%> \\
+<%if reqdate%>
+ \textbf{Requerido por} & <%reqdate%> \\
+<%end reqdate%>
+ \textbf{Número} & <%ordnumber%>
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrr@{}}
+ \textbf{Número} & \textbf{Descrição} & \textbf{Quant.} &
+ \textbf{Unid.} & \textbf{Preço} & \textbf{Total} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%subtotal%>} \\
+<%foreach tax%>
+ <%taxdescription%> em <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ \textbf{Total} & \textbf{<%ordtotal%>}\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ Preços em \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+\end{document}
+
diff --git a/templates/Brazilian_Portuguese-receipt.tex b/templates/Brazilian_Portuguese-receipt.tex
new file mode 100755
index 00000000..4daf4eae
--- /dev/null
+++ b/templates/Brazilian_Portuguese-receipt.tex
@@ -0,0 +1,75 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.4cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.0cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+
+\fontfamily{cmss}\fontsize{9pt}{9pt}\selectfont
+
+\parbox[t]{12cm}{
+ <%company%>
+
+ <%address%>}
+\hfill
+\parbox[t]{6cm}{\hfill <%source%>}
+
+\vspace*{0.6cm}
+
+<%text_amount%> \dotfill <%decimal%>/100 \makebox[0.5cm]{\hfill}
+
+\vspace{0.5cm}
+
+\hfill <%datepaid%> \makebox[2cm]{\hfill} <%amount%>
+
+\vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{2.8cm}
+
+<%company%>
+
+\vspace{0.5cm}
+
+<%name%> \hfill <%datepaid%> \hfill <%source%>
+
+\vspace{0.5cm}
+\begin{tabularx}{\textwidth}{lXrr@{}}
+\textbf{Número da Fatura} & \textbf{Data da Fatura}
+ & \textbf{Prazo} & \textbf{Aplicação} \\
+<%foreach invnumber%>
+<%invnumber%> & <%invdate%> \dotfill
+ & <%due%> & <%paid%> \\
+<%end invnumber%>
+\end{tabularx}
+
+\vfill
+
+\end{document}
+
diff --git a/templates/Brazilian_Portuguese-request_quotation.html b/templates/Brazilian_Portuguese-request_quotation.html
new file mode 100755
index 00000000..1d6edc39
--- /dev/null
+++ b/templates/Brazilian_Portuguese-request_quotation.html
@@ -0,0 +1,202 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <td><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58>
+ </td>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>R E Q U I S I Ç Ã O &nbsp;&nbsp; D E &nbsp;&nbsp; C O T A Ç Ã O</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>Para:</th>
+ <th align=left width=50%><font color=ffffff>Enviar para:</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+<br>
+<%if contact%>
+<br>A/C: <%contact%>
+<%end contact%>
+<%if vendorphone%>
+<br>Tel: <%vendorphone%>
+<%end vendorphone%>
+<%if vendorfax%>
+<br>Fax: <%vendorfax%>
+<%end vendorfax%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddr2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+<br>
+<%if shiptocontact%>
+<br>A/C: <%shiptocontact%>
+<%end shiptocontact%>
+<%if shiptophone%>
+<br>Tel: <%shiptophone%>
+<%end shiptophone%>
+<%if shiptofax%>
+<br>Fax: <%shiptofax%>
+<%end shiptofax%>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr><td>&nbsp;</td></tr>
+
+ <tr>
+ <td colspan=2>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left>RDC #</th>
+ <th width=17% align=left>Data</th>
+ <th width=17% align=left>Requerido para</th>
+ <th width=17% align=left>Contato</th>
+ <th width=17% align=left>Local do despacho</th>
+ <th width=15% align=left>Enviar por</th>
+ </tr>
+
+ <tr>
+ <td><%quonumber%></td>
+ <td><%quodate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height="10"></tr>
+
+ <tr>
+ <td>Favor informar o preço e o prazo de entrega para os seguintes itens:</td>
+ </tr>
+
+ <tr height="10"></tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+<!-- <th align=right>No.</th> -->
+ <th align=left>Número</th>
+ <th align=left><font color=ffffff>Descrição</th>
+ <th>Qtd</th>
+ <th>&nbsp;</th>
+ <th>Entrega</th>
+ <th>Preço Unit.</th>
+ <th>Extendido</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+<!-- <td align=right><%runningnumber%>.</td>
+other per line item variables available <%reqdate%>
+adjust the colspan if you include this to shift subtotal one to the right
+-->
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=7><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+<%if notes%>
+ <tr valign=top>
+ <td>Observações</td>
+ <td><%notes%></td>
+ </tr>
+<%end notes%>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=70%>&nbsp;</td>
+
+ <td width=30%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Brazilian_Portuguese-request_quotation.tex b/templates/Brazilian_Portuguese-request_quotation.tex
new file mode 100755
index 00000000..49f1abe7
--- /dev/null
+++ b/templates/Brazilian_Portuguese-request_quotation.tex
@@ -0,0 +1,175 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Extended} \\
+ & carried forward from <%lastpage%> & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.45\textwidth}{
+\textbf{To}
+\vspace{0.7cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if vendorphone%>
+Tel: <%vendorphone%>
+<%end vendorphone%>
+
+<%if vendorfax%>
+Fax: <%vendorfax%>
+<%end vendorfax%>
+
+<%email%>
+}
+\parbox[t]{.45\textwidth}{
+\textbf{Ship To}
+\vspace{0.7cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{R E Q U E S T for Q U O T A T I O N}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{RFQ \#} & \textbf{Date} & \textbf{Required by} & \textbf{Contact} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5ex]
+ \hline
+ <%quonumber%> & <%quodate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+Please provide price and delivery time for the following items:
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}lXrllrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} & &
+ \textbf{Delivery} & \textbf{Unit Price} & \textbf{Extended} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> & <%unit%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\hfill
+
+<%notes%>
+
+}
+
+\end{document}
+
diff --git a/templates/Brazilian_Portuguese-sales_order.html b/templates/Brazilian_Portuguese-sales_order.html
new file mode 100755
index 00000000..3527af98
--- /dev/null
+++ b/templates/Brazilian_Portuguese-sales_order.html
@@ -0,0 +1,246 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=bottom>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>P E D I DO &nbsp;&nbsp; D E &nbsp;&nbsp; V E N D A</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>Para</th>
+ <th align=left width=50%><font color=ffffff>Enviar para</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%>
+ <br><%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%>
+ <br><%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ <br>
+ <%if shiptocontact%>
+ <br><%shiptocontact%>
+ <%end shiptocontact%>
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+ <%if shiptoemail%>
+ <br><%shiptoemail%>
+ <%end shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Número do Pedido</th>
+ <th width=17% align=left>Data</th>
+ <th width=17% align=left>Requerido para</th>
+ <th width=17% align=left nowrap>Vendedor</th>
+ <th width=17% align=left nowrap>Local do despacho</th>
+ <th width=15% align=left nowrap>Enviar por</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%></td>
+ <td><%orddate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>No.</th>
+ <th align=left><font color=ffffff>Número</th>
+ <th align=left><font color=ffffff>Descrição</th>
+ <th><font color=ffffff>Qtd</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Preço</th>
+ <th><font color=ffffff>Desc %</th>
+ <th><font color=ffffff>Valor</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%>.</td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discountrate%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <td colspan=8><hr noshade></td>
+ </tr>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=6 align=right>Total</th>
+ <td colspan=2 align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=6 align=right>Subtotal</th>
+ <td colspan=2 align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=6 align=right><%taxdescription%> em <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <tr>
+ <td colspan=4>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=4>
+ <%text_amount%> ***** <%decimal%>/100
+ <%if terms%>
+ <br>Termo <b><%terms%></b> dias
+ <%end terms%>
+ </td>
+ <th colspan=2 align=right>Total</th>
+ <th colspan=2 align=right><%ordtotal%></th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <%if notes%>
+ <td>Observações</td>
+ <td><%notes%></td>
+ <%end notes%>
+ <td align=right nowrap>
+ Todos os preços em <%currency%></b>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=60%><font size=-3>
+ Itens sob encomenda estão sujeitos a uma taxa de cancelamento de 10%.
+ </font>
+ </td>
+ <td width=40%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Brazilian_Portuguese-sales_order.tex b/templates/Brazilian_Portuguese-sales_order.tex
new file mode 100755
index 00000000..6ad0bfe1
--- /dev/null
+++ b/templates/Brazilian_Portuguese-sales_order.tex
@@ -0,0 +1,144 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telefone & <%tel%>\\
+ Fax & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%ordnumber%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+<%pagebreak 65 27 48%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markright{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc} & \textbf{Amount} \\
+ & carried forward from <%lastpage%> & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{2cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{3.5cm}
+
+\textbf{ORDEM DE VENDA} \parbox{0.3cm}{\hfill} \textbf{O R D E R}
+\hfill
+\begin{tabular}[t]{l@{\hspace{0.3cm}}l}
+ \textbf{Data} & <%orddate%> \\
+<%if reqdate%>
+ \textbf{Requerido por} & <%reqdate%> \\
+<%end reqdate%>
+ \textbf{Número} & <%ordnumber%>
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Número} & \textbf{Descrição} & \textbf{Quant.} &
+ \textbf{Unid.} & \textbf{Preço} & \textbf{Disc.} & \textbf{Total} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%discount%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%subtotal%>} \\
+<%foreach tax%>
+ <%taxdescription%> em <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ \textbf{Total} & \textbf{<%ordtotal%>}\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ Preços em \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+
+\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+\end{document}
+
diff --git a/templates/Brazilian_Portuguese-sales_quotation.html b/templates/Brazilian_Portuguese-sales_quotation.html
new file mode 100755
index 00000000..f7f43f68
--- /dev/null
+++ b/templates/Brazilian_Portuguese-sales_quotation.html
@@ -0,0 +1,225 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr valign=top>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+<tr><td colspan=3>&nbsp;</td></tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>C O T A Ç Ã O</h4>
+ </th>
+ </tr>
+
+ </table>
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td>
+ <table width=100%>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+
+ <br>
+ <%if contact%>
+ <br>A/C: <%contact%>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr><td>&nbsp;</td></tr>
+
+ <tr>
+ <td colspan=2>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Número</th>
+ <th width=17% align=left>Data</th>
+ <th width=17% align=left>Vadidade</th>
+ <th width=17% align=left nowrap>Contato</th>
+ <th width=17% align=left nowrap>Local do despacho</th>
+ <th width=15% align=left nowrap>Enviar por</th>
+ </tr>
+
+ <tr>
+ <td><%quonumber%></td>
+ <td><%quodate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>No.</th>
+ <th align=left><font color=ffffff>Número</th>
+ <th align=left><font color=ffffff>Descrição</th>
+ <th><font color=ffffff>Qtd</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Preço</th>
+ <th><font color=ffffff>Desc %</th>
+ <th><font color=ffffff>Valor</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%></td>
+
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discountrate%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=8><hr noshade></td>
+ </tr>
+
+ <tr>
+<%if taxincluded%>
+ <th colspan=6 align=right>Total</th>
+ <td colspan=2 align=right><%invtotal%></td>
+<%end taxincluded%>
+
+<%if not taxincluded%>
+ <th colspan=6 align=right>Subtotal</th>
+ <td colspan=2 align=right><%subtotal%></td>
+<%end taxincluded%>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=6 align=right><%taxdescription%> em <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+<%end tax%>
+
+ <tr>
+ <td colspan=4>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=4>&nbsp;
+<%if terms%>
+ Termos <b><%terms%></b> dias
+<%end terms%>
+ </td>
+ <th colspan=2 align=right>Total</th>
+ <th colspan=2 align=right><%quototal%></th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>Notes</td>
+ <td><%notes%></td>
+<%end notes%>
+ <td align=right>
+ Todos os preços em <b><%currency%></b>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=60%><font size=-3>
+ Itens sob encomenda estão sujeitos a uma taxa de 10% para o cancelamento.
+ </font>
+ </td>
+ <td width=40%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Brazilian_Portuguese-sales_quotation.tex b/templates/Brazilian_Portuguese-sales_quotation.tex
new file mode 100755
index 00000000..25792c6b
--- /dev/null
+++ b/templates/Brazilian_Portuguese-sales_quotation.tex
@@ -0,0 +1,157 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 48%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%quonumber%>}{<%company%>\hfill <%quonumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+ & carried forward from <%lastpage%> & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.45\textwidth}{
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%contact%>
+
+\vspace{0.2cm}
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+
+\vspace{1cm}
+
+\textbf{Q U O T A T I O N}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Quotation \#} & \textbf{Date} & \textbf{Valid until} & \textbf{Contact} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5ex]
+ \hline
+ <%quonumber%> & <%quodate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%discountrate%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ Subtotal & <%subtotal%> \\
+<%foreach tax%>
+ <%taxdescription%> on <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ Total & <%quototal%>\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ All prices in \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%notes%>
+
+}
+
+\vfill
+
+\end{document}
+
+
diff --git a/templates/Brazilian_Portuguese-statement.html b/templates/Brazilian_Portuguese-statement.html
new file mode 100755
index 00000000..4fdfbf74
--- /dev/null
+++ b/templates/Brazilian_Portuguese-statement.html
@@ -0,0 +1,135 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+ <tr>
+ <th colspan=3><h4>D E C L A R A Ç Ã O</h4></th>
+ </tr>
+ <tr>
+ <td colspan=3 align=right><%statementdate%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+<%if customerphone%>
+ <br>Tel: <%customerphone%>
+<%end customerphone%>
+<%if customerfax%>
+ <br>Fax: <%customerfax%>
+<%end customerfax%>
+<%if email%>
+ <br><%email%>
+<%end email%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr height=10></tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr>
+ <th align=left>Fatura #</th>
+ <th align=left>Pedido #</th>
+<th align=left>Notas</th>
+ <th width=10%>Data</th>
+ <th width=10%>Vencimento</th>
+ <th width=10%>Atual</th>
+ <th width=10%>30</th>
+ <th width=10%>60</th>
+ <th width=10%>90+</th>
+ </tr>
+<%foreach invnumber%>
+ <tr>
+ <td><%invnumber%></td>
+<td><%ordnumber%></td>
+<td><%notes%></td>
+ <td><%invdate%></td>
+ <td><%duedate%></td>
+ <td align=right><%c0%></td>
+ <td align=right><%c30%></td>
+ <td align=right><%c60%></td>
+ <td align=right><%c90%></td>
+ </tr>
+<%end invnumber%>
+ <tr>
+ <td colspan=9><hr size=1></td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <th align=right><%c0total%></td>
+ <th align=right><%c30total%></td>
+ <th align=right><%c60total%></td>
+ <th align=right><%c90total%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr height=10></tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td align=right>
+ <table width=50%>
+ <tr>
+ <th>Total Pendente</th>
+ <th align=right><%total%></th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td><hr noshade></td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>Favor emitir cheque nominal a <b><%company%></b>.
+ </td>
+ </tr>
+
+</table>
+
+</body>
+</html>
+
+
diff --git a/templates/Brazilian_Portuguese-statement.tex b/templates/Brazilian_Portuguese-statement.tex
new file mode 100755
index 00000000..7f208093
--- /dev/null
+++ b/templates/Brazilian_Portuguese-statement.tex
@@ -0,0 +1,110 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rrr@{}}
+ Tel & <%tel%>\\
+ Fax & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%statementdate%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{1.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.5\textwidth}{
+<%name%>\\
+<%address1%>\\
+<%if address2%>
+<%address2%>
+<%end address2%>\\
+<%city%> <%state%> <%zipcode%>\\
+<%if country%>
+<%country%>
+<%end country%>\\
+
+}
+\parbox[t]{.4\textwidth}{
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{RELATÓRIO} \hfill \textbf{<%statementdate%>}
+
+\vspace{2cm}
+
+\begin{tabular*}{\textwidth}{|l@{\extracolsep\fill}ccrrrr|}
+ \hline
+ \textbf{Número da Fatura \#} & \textbf{Data} & \textbf{Prazo} &
+ \textbf{Atual} & \textbf{30} & \textbf{60} & \textbf{90+} \\
+ \hline
+<%foreach invnumber%>
+ <%invnumber%> & <%invdate%> & <%duedate%> &
+ <%c0%> & <%c30%> & <%c60%> & <%c90%> \\
+<%end invnumber%>
+ \multicolumn{7}{|l|}{\mbox{}} \\
+ \hline
+ \textbf{Subtotal} & & & <%c0total%> & <%c30total%> & <%c60total%> & <%c90total%> \\
+ \hline
+\end{tabular*}
+
+\vspace{0.5cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Totais} & \textbf{<%total%>}
+\end{tabularx}
+
+\vfill
+
+Favor pagar com <%company%>
+
+\end{document}
+
diff --git a/templates/Brazilian_Portuguese-timecard.html b/templates/Brazilian_Portuguese-timecard.html
new file mode 100755
index 00000000..4e80d1a1
--- /dev/null
+++ b/templates/Brazilian_Portuguese-timecard.html
@@ -0,0 +1,146 @@
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=sql-ledger.png border=0 width=84 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>C A R T Ã O &nbsp;&nbsp; D E &nbsp;&nbsp; P O N T O</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=left>Funcionário</th>
+ <td><%employee%></td>
+ </tr>
+ <tr>
+ <th align=left>ID</th>
+ <td><%employee_id%></td>
+ </tr>
+ </table>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Matrícula</th>
+ <td><%id%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Data trabalhada</th>
+ <td><%transdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Entrada</th>
+ <td><%checkedin%></td>
+ </tr>
+ <tr>
+ <th align=left>Saída</th>
+ <td><%checkedout%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Horas Trabalhadas</th>
+ <td><%qty%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=bottom>
+ <td>
+ <table>
+ <tr valign=top>
+ <th align=left>Projeto/Serviço #</th>
+ <td><%projectnumber%></td>
+ </tr>
+ <tr>
+ <th align=left>Descrição</th>
+ <td><%projectdescription%></td>
+ </tr>
+ <tr valign=top>
+ <th align=left>Mão-de-Obra/Cód. Serviço</th>
+ <td><%partnumber%></td>
+ </tr>
+ <tr>
+ <th align=left>Descrição</th>
+ <td><%description%></td>
+ </tr>
+ </table>
+ </td>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Valor hora</th>
+ <td><%sellprice%></td>
+ </tr>
+ <tr>
+ <th align=right>Total</th>
+ <td><%total%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+<%if notes%>
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%notes%>
+ </td>
+ </tr>
+<%end notes%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Brazilian_Portuguese-timecard.tex b/templates/Brazilian_Portuguese-timecard.tex
new file mode 100755
index 00000000..49a30c54
--- /dev/null
+++ b/templates/Brazilian_Portuguese-timecard.tex
@@ -0,0 +1,71 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-1cm,left=2cm,right=1cm]{geometry}
+\usepackage{graphicx}
+\setlength{\parindent}{0pt}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Tel: & <%tel%>\\
+ Fax: & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+\centerline{\textbf{T I M E}\hspace{0.5cm}\textbf{C A R D}}
+
+\vspace*{0.5cm}
+
+\begin{tabular}[t]{ll}
+ \textbf{Employee} & <%employee%> \\
+ \textbf{ID} & <%employee_id%> \\
+\end{tabular}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Card ID} & <%id%> \\
+ \textbf{Date Worked} & <%transdate%> \\
+ \textbf{Time In} & <%checkedin%> \\
+ \textbf{Time Out} & <%checkedout%> \\
+ \textbf{Hours Worked} & <%qty%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular}[b]{ll}
+ \textbf{Project/Job \#} & <%projectnumber%> \\
+ \textbf{Description} & <%projectdescription%> \\
+ \textbf{Labor/Service Code} & <%partnumber%> \\
+ \textbf{Description} & <%description%> \\
+\end{tabular}
+\hfill
+\begin{tabular}[b]{lr}
+ \textbf{Unit Rate} & <%sellprice%> \\
+ \textbf{Total} & <%total%> \\
+\end{tabular}
+
+\vspace{0.3cm}
+
+<%notes%>
+
+\end{document}
+
+
diff --git a/templates/Brazilian_Portuguese-work_order.html b/templates/Brazilian_Portuguese-work_order.html
new file mode 100755
index 00000000..41bdd4b4
--- /dev/null
+++ b/templates/Brazilian_Portuguese-work_order.html
@@ -0,0 +1,177 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=bottom>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>O R D E M &nbsp;&nbsp; D E &nbsp;&nbsp; S E R V I Ç O</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>Para</th>
+ <th align=left width=50%><font color=ffffff>Enviar para</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%>
+ <br><%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+ <%if contact%>
+ <br>A/C: <%contact%>
+ <%end contact%>
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%>
+ <br><%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ <br>
+ <%if shiptocontact%>
+ <br><%shiptocontact%>
+ <%end shiptocontact%>
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+ <%if shiptoemail%>
+ <br><%shiptoemail%>
+ <%end shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Número do pedido</th>
+ <th width=17% align=left>Data</th>
+ <th width=17% align=left>Requerido para</th>
+ <th width=17% align=left nowrap>Vendedor</th>
+ <th width=17% align=left nowrap>Lcoal do despacho</th>
+ <th width=15% align=left nowrapEnviar por</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%></td>
+ <td><%orddate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>No.</th>
+ <th align=left><font color=ffffff>Númeno</th>
+ <th align=left><font color=ffffff>Descrição</th>
+ <th><font color=ffffff>Qtd</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Local</th>
+ <th><font color=ffffff>Nº de série</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%>.</td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td><%bin%></td>
+ <td><%serialnumber%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <td colspan=7><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <%if notes%>
+ <td><%notes%></td>
+ <%end notes%>
+ </tr>
+</table>
+
+</body>
+</html>
+
+
diff --git a/templates/Brazilian_Portuguese-work_order.tex b/templates/Brazilian_Portuguese-work_order.tex
new file mode 100755
index 00000000..9b2f6f95
--- /dev/null
+++ b/templates/Brazilian_Portuguese-work_order.tex
@@ -0,0 +1,177 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}rlXrll@{}}
+ \textbf{No.} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ & \textbf{Serial Number} \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.45\textwidth}{
+\textbf{To}
+\vspace{0.7cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\parbox[t]{.45\textwidth}{
+\textbf{Ship To}
+\vspace{0.7cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{W O R K} \parbox{0.3cm}{\hfill} \textbf{O R D E R}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Order Date} & \textbf{Required by} & \textbf{Salesperson} & \textbf{Shipping Point} & \textbf{Ship Via} \\ [0.5em]
+ \hline
+ <%ordnumber%> & <%orddate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrll@{}}
+ \textbf{No.} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ & \textbf{Serial Number} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%serialnumber%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+\vfill
+
+\vspace{1cm}
+
+\rule{\textwidth}{0.5pt}
+
+\end{document}
+
+
+
+
+
+
diff --git a/templates/Danish-ap_transaction.html b/templates/Danish-ap_transaction.html
new file mode 100755
index 00000000..fd7a96eb
--- /dev/null
+++ b/templates/Danish-ap_transaction.html
@@ -0,0 +1,229 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>A P - T R A N S A C T I O N</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Invoice #</th>
+ <td><%invnumber%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Date</th>
+ <td><%invdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Due</th>
+ <td><%duedate%></td>
+ </tr>
+ <tr>
+ <th align=left>Order #</th>
+ <td><%ordnumber%>&nbsp;</td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Employee</th>
+ <td><%employee%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=50%>
+ <table>
+ <%foreach account%>
+ <tr valign=top>
+ <td><%accno%></td>
+ <td><%account%></td>
+ <td align=right><%amount%></td>
+ <td><%projectnumber%></td>
+ </tr>
+ <%end account%>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Subtotal</th>
+ <td align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=2 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ </table>
+ </td>
+ <td width=50%>
+ <%notes%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <tr>
+ <td>&nbsp;</td>
+
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%text_amount%> ***** <%decimal%>/100 <%currency%>
+ </td>
+ </tr>
+
+ <%if paid%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <tr>
+ <th>Payments</th>
+ </tr>
+
+ <tr>
+ <td>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=left>Date</th>
+ <th align=left>Account</th>
+ <th align=left>Source</th>
+ <th align=left>Memo</th>
+ <th align=left>Amount</th>
+ </tr>
+ <%end paid%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td><%paymentmemo%></td>
+ <td><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid%>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <%end paid%>
+
+ <tr height=10></tr>
+
+ <%if taxincluded%>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <th colspan=3 align=left><font size=-2>Taxes shown are included in price.</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Danish-ap_transaction.tex b/templates/Danish-ap_transaction.tex
new file mode 100755
index 00000000..8bfd9f79
--- /dev/null
+++ b/templates/Danish-ap_transaction.tex
@@ -0,0 +1,125 @@
+\documentclass[10pt,letterpaper,oneside,onecolumn]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+\centerline{\textbf{A P} \hspace{0.3cm} \textbf{T R A N S A C T I O N}}
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+<%end contact%>
+
+\vspace{0.2cm}
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Invoice \#} & <%invnumber%> \\
+ \textbf{Date} & <%invdate%> \\
+ \textbf{Due} & <%duedate%> \\
+ \textbf{Order \#} & <%ordnumber%> \\
+ \textbf{Employee} & <%employee%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabularx}{.5\textwidth}[t]{@{}llrl@{}}
+<%foreach amount%>
+ <%accno%> & <%account%> & <%amount%> & <%projectnumber%> \\
+<%end amount%>
+
+ \multicolumn{2}{r}{\textbf{Subtotal}} & <%subtotal%> & \\
+<%foreach tax%>
+ \multicolumn{2}{r}{\textbf{<%taxdescription%> @ <%taxrate%> \%}} & <%tax%> & \\
+<%end tax%>
+
+ \multicolumn{2}{r}{\textbf{Total}} & <%invtotal%> & \\
+
+\end{tabularx}
+<%notes%>
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100 <%currency%>
+
+\vspace{0.3cm}
+
+<%if paid%>
+\begin{tabular}{@{}llllr@{}}
+ \multicolumn{5}{c}{\textbf{Payments}} \\
+ \hline
+ \textbf{Date} & & \textbf{Source} & \textbf{Memo} & \textbf{Amount} \\
+<%end paid%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%paymentmemo%> & <%payment%> \\
+<%end payment%>
+<%if paid%>
+\end{tabular}
+<%end paid%>
+
+\end{document}
+
diff --git a/templates/Danish-ar_transaction.html b/templates/Danish-ar_transaction.html
new file mode 100755
index 00000000..22833384
--- /dev/null
+++ b/templates/Danish-ar_transaction.html
@@ -0,0 +1,237 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>A R - T R A N S A C T I O N</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Invoice #</th>
+ <td><%invnumber%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Date</th>
+ <td><%invdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Due</th>
+ <td><%duedate%></td>
+ </tr>
+ <tr>
+ <th align=left>Order #</th>
+ <td><%ordnumber%>&nbsp;</td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Salesperson</th>
+ <td><%employee%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=50%>
+ <table>
+ <%foreach account%>
+ <tr valign=top>
+ <td><%accno%></td>
+ <td><%account%></td>
+ <td align=right><%amount%></td>
+ <td><%projectnumber%></td>
+ </tr>
+ <%end account%>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Subtotal</th>
+ <td align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=2 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ </table>
+ </td>
+ <td width=50%>
+ <%notes%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <tr>
+ <td>&nbsp;</td>
+
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%text_amount%> ***** <%decimal%>/100 <%currency%>
+ </td>
+ </tr>
+
+ <%if paid%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <tr>
+ <th>Payments</th>
+ </tr>
+
+ <tr>
+ <td>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=left>Date</th>
+ <th align=left>Account</th>
+ <th align=left>Source</th>
+ <th align=left>Memo</th>
+ <th align=left>Amount</th>
+ </tr>
+ <%end paid%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td><%paymentmemo%></td>
+ <td><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid%>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <%end paid%>
+
+ <tr height=10></tr>
+
+ <%foreach tax%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <th colspan=9 align=left><font size=-2><%taxdescription%> Registration <%taxnumber%></th>
+ </tr>
+ <%end tax%>
+
+ <%if taxincluded%>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <th colspan=3 align=left><font size=-2>Taxes shown are included in price.</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Danish-ar_transaction.tex b/templates/Danish-ar_transaction.tex
new file mode 100755
index 00000000..654d2b95
--- /dev/null
+++ b/templates/Danish-ar_transaction.tex
@@ -0,0 +1,131 @@
+\documentclass[10pt,letterpaper,oneside,onecolumn]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+\centerline{\textbf{A R} \hspace{0.3cm} \textbf{T R A N S A C T I O N}}
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+<%end contact%>
+
+\vspace{0.2cm}
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Invoice \#} & <%invnumber%> \\
+ \textbf{Date} & <%invdate%> \\
+ \textbf{Due} & <%duedate%> \\
+ \textbf{Order \#} & <%ordnumber%> \\
+ \textbf{Employee} & <%employee%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabularx}{.5\textwidth}[t]{@{}llrl@{}}
+<%foreach amount%>
+ <%accno%> & <%account%> & <%amount%> & <%projectnumber%> \\
+<%end amount%>
+
+ \multicolumn{2}{r}{\textbf{Subtotal}} & <%subtotal%> & \\
+<%foreach tax%>
+ \multicolumn{2}{r}{\textbf{<%taxdescription%> @ <%taxrate%> \%}} & <%tax%> & \\
+<%end tax%>
+
+ \multicolumn{2}{r}{\textbf{Total}} & <%invtotal%> & \\
+
+\end{tabularx}
+<%notes%>
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100 <%currency%>
+
+\vspace{0.3cm}
+
+<%if paid%>
+\begin{tabular}{@{}llllr@{}}
+ \multicolumn{5}{c}{\textbf{Payments}} \\
+ \hline
+ \textbf{Date} & & \textbf{Source} & \textbf{Memo} & \textbf{Amount} \\
+<%end paid%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%paymentmemo%> & <%payment%> \\
+<%end payment%>
+<%if paid%>
+\end{tabular}
+<%end paid%>
+
+\vspace{0.5cm}
+
+<%foreach tax%>
+\textbf{\small{<%taxdescription%> Registration <%taxnumber%>}} \\
+<%end tax%>
+
+\end{document}
+
diff --git a/templates/Danish-balance_sheet.html b/templates/Danish-balance_sheet.html
new file mode 100755
index 00000000..61929edd
--- /dev/null
+++ b/templates/Danish-balance_sheet.html
@@ -0,0 +1,96 @@
+<body bgcolor=ffffff>
+
+<h2 align=center>
+<%company%>
+<br><%address%>
+
+<p>STATUS
+<br><%period%>
+</h2>
+
+<table border=0>
+<tr>
+ <th align=left width=400 colspan=2>AKTIVER<br><hr align=left width=250 size=5 noshade></th>
+ <th><%this_period%></th>
+ <th><%last_period%></th>
+</tr>
+
+<%foreach asset_account%>
+<tr>
+ <td> </td>
+ <td><%asset_account%></td>
+ <td align=right><%asset_this_period%></td>
+ <td align=right><%asset_last_period%></td>
+</tr>
+<%end asset_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>SAMLEDE AKTIVER</th>
+ <td align=right><%total_assets_this_period%><hr noshade size=2></td>
+ <td align=right><%total_assets_last_period%><hr noshade size=2></td>
+</tr>
+
+<tr>
+ <th align=left colspan=4>PASSIVER<b><hr align=left width=250 size=5 noshade></th>
+</tr>
+
+<%foreach liability_account%>
+<tr>
+ <td></td>
+ <td><%liability_account%></td>
+ <td align=right><%liability_this_period%></td>
+ <td align=right><%liability_last_period%></td>
+</tr>
+<%end liability_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td></td>
+ <th align=left>Samlet gæld</th>
+ <td align=right><%total_liabilities_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_liabilities_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr>
+ <th align=left colspan=4>KAPITAL<br><hr align=left width=250 size=5 noshade></th>
+</tr>
+
+<%foreach equity_account%>
+<tr>
+ <td></td>
+ <td><%equity_account%></td>
+ <td align=right><%equity_this_period%></td>
+ <td align=right><%equity_last_period%></td>
+</tr>
+<%end equity_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td></td>
+ <th align=left>Samlet egenkapital</th>
+ <td align=right><%total_equity_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_equity_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>SAMLET GÆLD OG EGENKAPITAL</th>
+ <td align=right><%total_this_period%><br><hr noshade size=2></td>
+ <td align=right><%total_last_period%><br><hr noshade size=2></td>
+</tr>
+</table>
diff --git a/templates/Danish-bin_list.html b/templates/Danish-bin_list.html
new file mode 100755
index 00000000..24440675
--- /dev/null
+++ b/templates/Danish-bin_list.html
@@ -0,0 +1,189 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <th align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>B I N &nbsp;&nbsp; L I S T</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% cellspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>From</th>
+ <th align=left width=50%><font color=ffffff>Ship To</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+
+ <%if vendorphone%>
+ <br>Tel: <%vendorphone%>
+ <%end vendorphone%>
+
+ <%if vendorfax%>
+ <br>Fax: <%vendorfax%>
+ <%end vendorfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+
+ <br>
+ <%if shiptocontact%>
+ <br>Attn: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Order #</th>
+ <th width=17% align=left nowrap>Date</th>
+ <th width=17% align=left nowrap>Contact</th>
+ <%if warehouse%>
+ <th width=17% align=left nowrap>Warehouse</th>
+ <%end warehouse%>
+ <th width=17% align=left>Shipping Point</th>
+ <th width=15% align=left>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%>&nbsp;</td>
+
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%orddate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+
+ <%if warehouse%>
+ <td><%warehouse%></td>
+ <%end warehouse%>
+
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Pos</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Serialnumber</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Qty</th>
+ <th><font color=ffffff>Recd</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Bin</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%></td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td><%serialnumber%></td>
+ <td><%deliverydate%></td>
+ <td align=right><%qty%></td>
+ <td align=right><%ship%></td>
+ <td><%unit%></td>
+ <td><%bin%></td>
+ </tr>
+ <%end number%>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+</table>
+
diff --git a/templates/Danish-bin_list.tex b/templates/Danish-bin_list.tex
new file mode 100755
index 00000000..3d6052f9
--- /dev/null
+++ b/templates/Danish-bin_list.tex
@@ -0,0 +1,147 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Recd} & & \textbf{Bin} \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.5\textwidth}{
+\textbf{From}
+\vspace{0.7cm}
+
+<%name%>
+
+<%address1%>
+
+<%if %address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country4%>
+<%end country%>
+}
+\parbox[t]{.4\textwidth}{
+\textbf{Ship To}
+\vspace{0.7cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%if shiptoaddress2%>
+<%shiptoaddress2%>
+<%end shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%if shiptocountry%>
+<%shiptocountry%>
+<%end shiptocountry%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{B I N} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Date} & \textbf{Contact}
+ <%if warehouse%>
+ & \textbf{Warehouse}
+ <%end warehouse%>
+ & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+
+ <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%orddate%>
+ <%end shippingdate%>
+ & <%employee%>
+ <%if warehouse%>
+ & <%warehouse%>
+ <%end warehouse%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Recd} & & \textbf{Bin} \\
+
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%serialnumber%> &
+ <%deliverydate%> & <%qty%> & <%ship%> & <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabularx}
+
+
+\rule{\textwidth}{2pt}
+
+\end{document}
+
diff --git a/templates/Danish-check.tex b/templates/Danish-check.tex
new file mode 100755
index 00000000..6742b5b5
--- /dev/null
+++ b/templates/Danish-check.tex
@@ -0,0 +1,75 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.4cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.0cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+
+\fontfamily{cmss}\fontsize{9pt}{9pt}\selectfont
+
+\parbox[t]{12cm}{
+ <%company%>
+
+ <%address%>}
+\hfill
+\parbox[t]{6cm}{\hfill <%source%>}
+
+\vspace*{0.6cm}
+
+<%text_amount%> \dotfill <%decimal%>/100 \makebox[0.5cm]{\hfill}
+
+\vspace{0.5cm}
+
+\hfill <%datepaid%> \makebox[2cm]{\hfill} <%amount%>
+
+\vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{2.8cm}
+
+<%company%>
+
+\vspace{0.5cm}
+
+<%name%> \hfill <%datepaid%> \hfill <%source%>
+
+\vspace{0.5cm}
+\begin{tabularx}{\textwidth}{lXrr@{}}
+\textbf{Invoice No.} & \textbf{Invoice Date}
+ & \textbf{Due} & \textbf{Applied} \\
+<%foreach invnumber%>
+<%invnumber%> & <%invdate%> \dotfill
+ & <%due%> & <%paid%> \\
+<%end invnumber%>
+\end{tabularx}
+
+\vfill
+
+\end{document}
+
diff --git a/templates/Danish-income_statement.html b/templates/Danish-income_statement.html
new file mode 100755
index 00000000..c0652977
--- /dev/null
+++ b/templates/Danish-income_statement.html
@@ -0,0 +1,73 @@
+<body bgcolor=ffffff>
+
+<h2 align=center>
+<%company%>
+<br><%address%>
+
+<p>DRIFTSREGNSKAB
+<br><%period%>
+</h2>
+
+
+<table width=100% border=0>
+<tr>
+ <th width=400 align=left colspan=2>INDTÆGTER<br><hr width=300 size=5 align=left noshade></th>
+ <th><%this_period%></th>
+ <th><%last_period%></th>
+</tr>
+
+<%foreach income_account%>
+<tr>
+ <td width=4> </td>
+ <td><%income_account%></td>
+ <td align=right><%income_this_period%></td>
+ <td align=right><%income_last_period%></td>
+</tr>
+<%end income_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td> </td>
+ <th align=left>Samlede indtægter</th>
+ <td align=right><%total_income_this_period%><hr noshade size=2></td>
+ <td align=right><%total_income_last_period%><hr noshade size=2></td>
+</tr>
+
+<tr>
+ <th align=left colspan=2>UDGIFTER<br><hr width=300 size=5 align=left noshade></th>
+</tr>
+
+<%foreach expense_account%>
+<tr>
+ <td> </td>
+ <td><%expense_account%></td>
+ <td align=right><%expenses_this_period%></td>
+ <td align=right><%expenses_last_period%></td>
+</tr>
+<%end expense_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td> </td>
+ <th align=left>Samlede udgifter</th>
+ <td align=right><%total_expenses_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_expenses_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>RESULTAT</th>
+ <td align=right><%total_this_period%><br><hr noshade size=2></td>
+ <td align=right><%total_last_period%><br><hr noshade size=2></td>
+</tr>
+
+</table>
diff --git a/templates/Danish-invoice.html b/templates/Danish-invoice.html
new file mode 100755
index 00000000..4eda948a
--- /dev/null
+++ b/templates/Danish-invoice.html
@@ -0,0 +1,282 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <td align=right>
+ <h4>
+ Tlf.: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>F A K T U R A</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Fakturadato</th><td width=10>&nbsp;</td><td><%invdate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Betalingsdato</th><td width=10>&nbsp;</td><td><%duedate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Fakturanummer</th><td>&nbsp;</td><td><%invnumber%></td></tr>
+ </tr>
+
+<!--
+ <tr>
+ <th align=right>Ekspederet af:</th><td>&nbsp;</td><td><%username%></td>
+ </tr>
+-->
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+ </td>
+ </table>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Faktureringsadresse:</th>
+ <%if shiptoname%>
+ <th align=left><font color=ffffff>Leveringsadresse:</th>
+ <%end shiptoname%>
+ </tr>
+
+<!--
+ other variables which can be use:
+ contact, shiptocontact, shiptophone, shiptofax
+-->
+
+ <tr>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+<br><%address2%>
+<%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+<%country%>
+<%end country%>
+ </td>
+
+ <%if shiptoname%>
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+<br><%shiptoaddress2%>
+<%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+<%shiptocountry%>
+<%end shiptocountry%>
+ </td>
+ <%end shiptoname%>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+<!-- <th align=right><font color=ffffff>No.</th> -->
+ <th align=left><font color=ffffff>Varenummer</th>
+ <th align=left><font color=ffffff>Beskrivelse</th>
+ <th><font color=ffffff>Antal</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Pris</th>
+ <th><font color=ffffff>Rabat</th>
+ <th><font color=ffffff>Beløb</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+<!-- <td align=right><%runningnumber%>.</td>
+adjust the colspan if you include this to shift subtotal one to the right
+-->
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discount%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+<%end number%>
+
+<!--
+you can also use netprice instead of sellprice if you
+don't want to show the discount
+netprice = sellprice - discount
+to show the percentage for a discount use <%discountrate%>
+-->
+
+ <tr>
+ <td colspan=7><hr noshade></td>
+ </tr>
+
+ <tr>
+<%if taxincluded%>
+ <th colspan=5 align=right>Total</th>
+ <td colspan=2 align=right><%invtotal%></td>
+<%end taxincluded%>
+<%if not taxincluded%>
+ <th colspan=5 align=right>Subtotal</th>
+ <td colspan=2 align=right><%subtotal%></td>
+<%end taxincluded%>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=5 align=right><%taxdescription%> på <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+<%end tax%>
+
+<%if paid%>
+ <tr>
+ <th colspan=5 align=right>Allerede betalt</th>
+ <td colspan=2 align=right>- <%paid%></td>
+ </tr>
+<%end paid%>
+
+ <tr>
+ <td colspan=3>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=3>Betalingsfrist <b><%terms%></b> dage</td>
+ <th colspan=2 align=right>At betale</th>
+ <th colspan=2 align=right><%total%></th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>Bemærkninger</td>
+ <td><%notes%></td>
+<%end notes%>
+ <td align=right>
+ Alle priser i <b><%currency%></b>.
+ <br><%shippingpoint%>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <th colspan=7>
+ <br>Tak for handelen!
+ </th>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><font size=-3>
+ Betalingsfrist <%terms%> dage fra fakturadato. Betaling herefter påregnes
+ 1.5% per påbegyndt måned startende <%duedate%> og indtil det fulde beløb
+ er betalt. Returnerede varer modregnes 10% i ekspeditionsgebyr.
+ Et returnummer skal tildeles af <%company%> før varer returneres.
+ Returvarer skal forsendes forudbetalt og forsvarligt forsikret.
+ <%company%> kan ikke drages til ansvar for skade under transport.
+ </font>
+ </td>
+ <td width=150>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=7 align=left><font size=-2><%taxdescription%> noteret som <%taxnumber%></th>
+ </tr>
+<%end tax%>
+
+<%if taxincluded%>
+ <tr>
+ <th colspan=7 align=left><font size=-2>Alle beløb er inklusive moms.</th>
+ </tr>
+<%end taxincluded%>
+
+<!-- business number
+ <tr>
+ <th colspan=7 align=left><font size=-2>CVR-nummer: <%businessnumber%></font></th>
+ </tr>
+-->
+
+<!-- banking information
+ <tr>
+ <th colspan=7 align=left>Bank-oplysninger:
+ <br>Bank
+ <br>Banknummer
+ <br>Kontonummer
+ </td>
+ </tr>
+-->
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Danish-invoice.tex b/templates/Danish-invoice.tex
new file mode 100755
index 00000000..aff4e5e6
--- /dev/null
+++ b/templates/Danish-invoice.tex
@@ -0,0 +1,156 @@
+\documentclass[a4paper,twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage[danish]{babel}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rr@{}}
+ Tlf. & <%tel%>\\
+ Fax & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%invnumber%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+<%pagebreak 65 27 37%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markright{<%company%>\hfill <%invnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Nummer} & \textbf{Beskrivelse} & \textbf{Antal} &
+ \textbf{Enhed} & \textbf{Pris} & \textbf{Rabat} & \textbf{Beløb} \\
+ & overført fra side <%lastpage%> & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{2cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{3.5cm}
+
+\textbf{F A K T U R A}
+\hfill
+\begin{tabular}[t]{l@{\hspace{0.3cm}}l}
+ \textbf{Dato} & <%invdate%> \\
+ \textbf{Nummer} & <%invnumber%> \\
+ \textbf{Kunde} & <%customer_id%>
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Nummer} & \textbf{Beskrivelse} & \textbf{Antal} &
+ \textbf{Enhed} & \textbf{Pris} & \textbf{Rabat} & \textbf{Beløb} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%discount%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%subtotal%>} \\
+<%foreach tax%>
+ <%taxdescription%> på <%taxbase%> & <%tax%> \\
+<%end tax%>
+<%if paid%>
+ \textbf{Betalt} & - <%paid%> \\
+<%end paid%>
+ \hline
+ \textbf{At betale} & \textbf{<%total%>} \\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ Alle priser i \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+\vfill
+\centerline{\textbf{Tak for handelen!}}
+
+\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+\footnotetext[1]{\tiny
+Betalingsfrist <%terms%> dage fra fakturadato. Betaling herefter påregnes
+1.5\% per påbegyndt måned startende <%duedate%> og indtil det fulde beløb
+er betalt. Returnerede varer modregnes 10\% i ekspeditionsgebyr.
+Et returnummer skal tildeles af <%company%> før varer returneres.
+Returvarer skal forsendes forudbetalt og forsvarligt forsikret.
+<%company%> kan ikke drages til ansvar for skade under transport.}
+
+\end{document}
diff --git a/templates/Danish-logo.eps b/templates/Danish-logo.eps
new file mode 100755
index 00000000..3a22b2ff
--- /dev/null
+++ b/templates/Danish-logo.eps
@@ -0,0 +1,1334 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: GIMP PostScript file plugin V 1.17 by Peter Kirchgessner
+%%Title: Brazilian_Portuguese-logo.eps
+%%CreationDate: Thu Aug 31 19:25:05 2006
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 2
+%%Pages: 1
+%%BoundingBox: 14 14 415 215
+%%EndComments
+%%BeginProlog
+% Use own dictionary to avoid conflicts
+10 dict begin
+%%EndProlog
+%%Page: 1 1
+% Translate for offset
+14.173228346456694 14.173228346456694 translate
+% Translate to begin of first scanline
+0 199.99842519685043 translate
+399.99685039370081 -199.99842519685043 scale
+% Image geometry
+400 200 8
+% Transformation matrix
+[ 400 0 0 200 0 0 ]
+% Strings to hold RGB-samples per scanline
+/rstr 400 string def
+/gstr 400 string def
+/bstr 400 string def
+{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop}
+true 3
+%%BeginData: 80402 ASCII Bytes
+colorimage
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+fDblg6K\=Q"WB-W4?Pdo4p6+l]&ih]rrrDpij);hp&GL',"Q[#Lmt]mi:-UBo)Ajlp>C')q#Ca-
+0OT-[R^UZ0q#:3k!rftBr;[*-4`Pt>]\`;[p&>'%-iO)I,T-[I!!OC1jn&BKnc&dlp#<8P%e]l2
+"!U9TI#+8tb2Ddcrq6:-g3RO66TZkO/89R1ak>G'lMCDUrVc`p_uG5~>
+fDc3-AgAK<(`*r''GKsK"r/C?3]oMfm61YtOLjQNo`#*op#<8P%e]l2"!U9TI#+8tb2Ddcrpp'l
+rq>8m&GZ;5#V]Y2L75R!lM1AVrrW28$N0r1#!HsURCqDKrq69l[jV.T![JWbkPtc,R-!r:rpg!l
+rq59V:(Hst$j.\EE.!J2ZHD+pqYp0f(YX1N<'rc'0emR!XjZ4ijR;sBr;HTnrknbd~>
+fDc6;J3>hE.46Gg,U"<#*sNl<2EEr_4mbE9G`]Muqt0mlrq59V:(Hst$j.\EE.!J2ZHD+pqYp'c
+"TJ,QFV+?K$4&=nG_VZqdd$W,r;Qit^^C#?#R3G3J!mt+o`"O`!OjHU!!4D`!pBUf*LPs[qu6-c
+"oe2SZ;(o'!"8rR88rs4S$L2pnG<.WrtjC8CK*Y`2)R41LpG[tlg+-<qu$Ekrr0h8J,~>
+gA_6CM^RKa#SJU[Cl4ICR$dH4"J2pKnc&.[#laS]ca8*s2'Dku%L*7S1/_:`E/L-e^<lNJn,*ps
+lGB9$.1d!s#n@h2C5&"Yb2DgerqcX(q78g7,slHqMPJ)Jp&4[cs*k'%9)\er&Pd:_DG`D6!pTal
+;j3B4I=8["q>L$e)ZKKoca5M5$jR7P',DcW=EAnFP+oA,h<ak4r;@'%mG5jnSV:rb4tRZYo)K.6
+.77QqVp"]-r;HW:s*t~>
+gA_WSXCb's7mAmd0J>%2/aY(p3(dS&NKf`rR.?XJT!Hl9rq$..rqGU%[!bb.+:/;Z%M^0O>@_Mp
+OJ9/'f_#".r"](qb,Jl)'b_,j)_+BrKpT$di:6^DqYq$#\j.Db6>_(,UVl'`rV6EmU]HuXrW!3>
+=ES\+<]_9&l2V,jVQ@/!U<E9+rV$70rqGU%Zq25S%MBBi(a_LMF+&e+U:&/"m.U>Sr=/\qk1@he
+W0`?`B2UiFr@A%'1d4D,8ded6G`JT6f_#";rVjq=J,~>
+gA_WV`KPh&H>[%h;Gg7d:@1a]<FBcqNg,isR.?XJT!Hl9rq$..rqGU%[!bb.+:etm&f`Dk@V^"7
+Q)D4<h=UO3r"](rd'%+>(`!f$,WA_DKpT$di:6^DqYq$#\j.Db6>_(,UVl'`rV6Em^B(K0rW!3B
+@!Hj=>!*c+l2V,lZbFJn^"N,TrV$70rqGU%Zreh$',D<")CRjQF+&e+U:&/"m.U>Sr=/\tmGcjE
+_7$G9OF(D5rCmAj>ASW`J.%6uT<>oSiV!$ErVjq=J,~>
+h#@HEIh:?7#Tc9FPJ##]c-H(0"4GulqXORjrqc-Bc+C!IjT#8`m/R?)T"N_Cq#1!f%/obL[[`MH
+U:8M5p\spee,TVcf]W#.pAY9pqXED]p&G=-'G_N()]Tmq*WQH&!!iZW>`-Jlq#(-9s*t~>
+h#@HJUfI@c"%YgF4l\X1;/(]X^WF^EcM,WedbO6dnc'C(qXEFf];hGR.Olks.P*2,2*!ie7S*/D
+!)3/["\;$E2D?]].L7OVFe67umJ-YTrs\ksfX@<5QD1k8kkG)Nrt@jG!<<*#(b-sc0JtaF0Ie1Z
+$3BMo#oYim84nopkP+uLrtbV1nDI&"0eP",.Ochs/1rtM85<,d>l%b,:\RH`84>d,rB(0F5Xe6:
+8dJ+(MQ5+sq#(-9s*t~>
+h#@HM^PMi="+56/C#`k4FbQ3b_9'pGcM,WedbO6dnc&ppqXEFf];hGq8cD6f8P;iZ>@VDgG^Y)7
+J,k2sJ.d?ZFD5#[9h@lH8ksi,]\)WHrV6C$rUSULS<B24\'X@5rqHF+H9;6/!!+Q@7nZfd?<U9"
+2^8k8m/RGEAorHOWS$D.rq??urqc-BFC%sC91f+R$;!ld>@_PnIYEZ=qi1Z0pOE?oG].?qBEN!f
+G^]78#_J8?^teSWr;Ot@J,~>
+h>[MB'\!*i,YiZYa62mZnF?&JncSOYqu6'a#Q=GfkM4KR)UeZi*-S.$mJQYW$N0GOcGmrTj73!F
+p\t6"ec5mb/8hc?meueX"TA*n,R_Hh#7aOmh":IArmCar~>
+h>[M`=SbYi8,u0:7LELMS$gZ-mdKZ8nc&(]o_87^n,EXkq!mP&dV;DR3!VH*4[;>&7nDf8%S9,W
+5<Lqc3BBc^Us&0'p&>Bsn__X3aOK8?qYp6h!OE+3!##DT-n$]+5!hV'5!1e]0J"C`$j,nu#UVT+
+?\Yl5meueX#Q=FJ>Xpq<3W:uC3BKAh6:FC8lq.=N84WVJ!_5dQmn*g`J?Io(qYgE@s*t~>
+h>[N!MYho*Isl\"H4#P$Zc1S]mdKZ8nc&(]o_87^n,F("q!mP&dY;XJ@:E_XBl7s8H[^J.J.@!Q
+F)5K!@U`kaL8<#[r:U'sr:/[i`lQZinbW7ZrrKG;rW!T71dso2?>FS'EGT5p>#S'T-5?[R!!rZm
+AU&loZI&%<o`#U'pn<@]Bk:d_@:E_XBl7s8H[^J4J-(4LI/A3kI"$S7J-Uh)_rgUfrVk4EJ,~>
+hu<`75k=sc"VrFC5tXgF:/4DF.i/9O!!*]Ur]C="me$ATli.:jr:opKd%Y/9'&!<k"#=J;Ni^b$
+rq-3qrV,jMn+?JTpAY,>f)Q'a;0.S\XNp84o)Asihn"ng;)Ad$!!WNiQK@f9rmUmt~>
+hu<`@GOnE:9Mnkt@V0:fC2.Hn>Z4;[8dSO+F*)Mgme$ATli.Fnr:opKd&28#:.@`E8`E>N8Ou<>
+7TaSXNi^b$rq-3qrV,jMn+?JTpAY,>qu@NQ,q(K/6:XU>84Z3<69dRl1bgU.)%[&F!!j*8F,?6b
+cL1Z%rseb\\s@h_>t[RS7Rp!@b";k3FKjs$qYntDJ,~>
+hu<`GT_![<IscQgH[C/>IKP(MIt-[4!Jlg9S-6.co_SRQrso&+q"3gtWf)=NG^=adJ)l+hIsu`i
+GBS%NIZCMZo)A:]#Q=DemdKfErV$6kHi3pL!AZo0<+U)rrdG<'H$++DB44tC:-L3L%.jN*&m043
+Q`SL#rUTsuptrZOMLp5#G'A1WI"$RgJ-LRo_WgairmUmt~>
+i;Wha&G?)3"X69@G^kI,P*_]1rh'IfS=#7L5SE5[">J!QnGMJL#l<l9^9FDd9H)af#qBJ1L7#-c
+jnSiGs8Drirr@!8!!4`+#i,Ic89UN4bi8<po)B'omao@cYc+.?63tL0"V>7hnG)t4s*t~>
+i;Wi"<VB#m9N5D9G^kI,P*_]1rh'IfS=#CdBN""c"DGs4nGMJL#l<l9^9FDnE)tgf$!(hdL7#-c
+jnSiGs8Drirr@!8!!Y&=.ks.S8GYpg8Ou<=69dRm2)6d5*"E#D!!c&<S@?`%p&=O^$N'8C_mckK
+Sr%2W`(C25NR[ImrRLpu~>
+i;Wi2M"Z?,IsQ9]G^kI,P*_]1rh'IfS=#ItL4SN<"H^d\nGMJL#l<l9^9FE!MLs]8$$^E6L7#-c
+jnSiGs8Drirr@!8!!b/H79+#EI=M0F%tB%UH$44GBOY4I:e*2V!qu["89UN4bi8<po)B$nmao@c
+Yc+.WLr4`HL9'%tq#/bCJ,~>
+iVrn9p&GO<7W!I+P+J\^^;eCEe,@c%d`oeFZDDb'!pTag,b;X/qWIkdrqc0Li7?&`XFWVBirBDi
+9lbcMYfPVcpAO"N!/(1L";kW^EBr@\#!RdOh!Xn6nc'!rqXWt6i7cW"\Y):S!"&cA/3cp6C2SKO
+KDgH,J9#$l1DK9X"TqW;mJ$S2s*t~>
+iVrnZp.>ck@;pOIP+J\^^;eCEe,@c%d`oeFZDE@g9Bo+P>b/RgqWIkdrqc0Li7?&`XH.-lj%9YP
+@WI!bYfPVcpAO"N!/(1L"rLi`F'qF.oh#Wa84H$85Wq.e1Fs:Bq#CU_L:H%,pAFI\$i^"nlfI'Y
+d`8noDWsb":g%1=D00uNJV3oS"bM/FCg^008d.n<bO,'&fDg@~>
+iVrnsp4*U"FE;b_P+J\^^;eCEe,@c$d`oeFZDEhBl$rniS\=([kPkqhqXNh.f#kY,R>QRUJ-pdG
+Ee'I[aP?+TrSmhWKDY]R(h76%G^"W1J.7!WI!U!XDe`ij=A("Cq#CU_L:H%,pAFI\$i^"nlfI'Y
+d`8nsNp2'#I!U'`H[L9mJV3fP!J>skJ-CLtdd?f-fDg@~>
+ir9!spAb^?;KRDLTsM\cguRbgo(;VSp'^Qco'Yc%fZLdo7Ki&X"<E/rh"^"2$i^)#p@.8#cFooT%
+d!`u!`F)pUr;*Wq#(-NrrL.Cqu?puFHE]?JdCT@!=T>3!!P?@^Ztarn,NFe$N9o!q"4":g;nL?m
+f3e)/l6J6KT).cU8P&qZM_'8Za$U.SV:/k!q?6o"'3Y5q#/nGJ,~>
+ir9"HpIYrnA9<<^TsM\cguRbgo(;VSp'^Qco'Yc%fZLduDbTLi"B:&Th"^"2$i^)#p@.8#cFp'#
+;<:CVA93O%`80kVr;P^U!QP?@!!Z;BOKZBc:@Up_8Ou?@6pX!s/dhFT"ZVIUlMUYMs8W'*rVZNe
+o^:kqaHB6c8e"NtATN6PN0Kj,VlR#,r3Qa9Z)jdmNceQ!nO`sYK$s&]rRq4$~>
+ir9"fpOEd$EccelTsM\cguRbgo(;VSp'UKbo'Yc%fZLe&NpD2uI>"ZVpuVM`rquWdnE8TP]r@0H
+ja[YVF,-R0h<t(9ro3qY`ru;?##TK(YJ-renph'sIXHKeF`;))8.,1n"ZVIUlMUYMs8W')rVZNe
+o^:kqaJJ<T%=WPDFaSk$PanJGX08i,Zj3qBXJMJOMM(DK"bEE!mJ-Y5s*t~>
+j8T+/p](g,5&bn2VnUU<m.C)NrVlflrsA]'qY'F@fZ'=>m/R8.I&>WmiVs5`r:ojHg;p9k"R#gj
+/ocWFcKY*%hu<[5qu@!=E/1aQlJS-;lMq#'>>b\&!!G<<]''%TrrrE"p[6mkmf3eaEIa7KZG+E,
+f%Ss<iqqdCini>8aLn[:8e(:j"Uoe:nG<.=s*t~>
+j8T+Tpdu&i?>t:RVnUU<m.C)NrVlflrsA]'qY'F@fZ'_$m7ILZI&>WmiVs5`r:ojHg;pF@9^#(R
+=E0(pcKY*%hu<[5qu@!=E/1aQlJSa>m7IOQ7nd5e#5\B'3Jb90rTF1arquNYhOa1.%:=+*PGGLu
+aO&Mlh;I;ij9ai&f[7dQY*X*(nO`s^Rc*]3rnII'~>
+j8T+opj`m)FDuVhVnUU<m.C)NrVlflrsA]'qY'F@fZ'tOm=>4a!iF]HiVs5`r:ojHg;pR`J`qUh
+G&`89cKY*%hu<[5qu@!=E/1aQlJT4*mXPLjI=$!B;?m!u"?D:LkPaTD"oeGombY5;J.6R>J<Qe7
+^<"[Pg>1]HqrA(ChUp5s]WRfaK(4?pKWsD(qYo7LJ,~>
+jSo4Pp]([*;KIM`][l<<qYgE_rs/Q#p?^YWLDTCZ"<2`cgA'P)#QFYqmblB\-0YC6>'usdm/$_=
+rrBP*!!kT/R`b'rq!(]B!!Ea>Fbj)q!!G98[cRGJrr`5pkZ@6R$q,K5^XhE/n+?>Kq>0sc$iBep
+o^D##d_Vqg$1Ruu1qr/HrS7F'~>
+jSo4lpdtofA93Er][l<<qYgE_rs/Q#p?^YWRTJrM"B'WEgA'P)#QFYqmblBh?g1/eApg5pm/$_=
+rrBP*!!kT/R`b'rq!*=p8d%n&Fbj)q!!G98[cRGJrr`5pk_&@s$t+IQ^XhE/n+?>Kq>0sc$iBep
+o^D##d_W#4:[q$[C;oB0rS7F'~>
+jSo5+pj`a%E-$])][l<<qYgE_rs/Q#p?^YWVhOSis*OmFgA'P)#QFYqmblBpMWoWqE.";%m/$_=
+rrBP*!!kT/R`b'rq!+O=J-::;Fbj)q!!G98[cRGJrr`5pkbIWt%!?rf^XhE/n+?>Kq>0sc$iBep
+o^D##d_W)NK(4?oP02t]rS7F'~>
+jo5A)"Si$(!`*lnWQXDqqu5m\"o\5`gq6>M!!F6gVV:h"rrrAsnDM>llMq(oE/M0dqVD/O@/Bp0
+:4TD#q#CBc$g[ir:N_`*_YX<98;=S8r8[eZrqbC[nGie`KsKM+qYgE`rs8W%q=En-bcF/$!!Emu
+hXUO"s*t~>
+jo5A8:&%<d@WR@)bN8Bnrp'LerV5d8^NT*="B'WEgA'G&"o\8di5gH78d.n-MR_aDh>[I_qZ$ms
+J?.K#s8Vailq.CiFcWoHqZ$aiL:67Bj8T5\qVbBC8dAgZZJ>*KrVl?e#labtoBP/UY]'&("B;;U
+nbh5CJ,~>
+jo5ACK(sj%EH?r8bN8Bnrp'LerV5d8_Ns\As*OmFgA'G&"o\8di5qMTJ-CC@MR_aDh>[I_qZ$ms
+J?.K#s8VhIm!o4YFcWoHqZ$aiL:67Bj8T5\qW*D$J-U7OZJ>*KrVl?e#labtoBP/U[#jg."GO5>
+nbh5CJ,~>
+k5PJR,kq?E0QDiId-UW.k5PV`pZg:]#k@ru)gnO:pt>ZLrV5d'lMq))FI()<rn[SS./NuL;i%sG
+r;Zf#li724E/(OJn,!(f@Z%e]rSdbWq.K3t"@e6Zkl'iI#QF\snD_`I&Fof)!cuoZqYoCPJ,~>
+k5PJUAGAb%=`K1rd-UW.k5PV`pZg:t:@_![;LG@qpt>ZLrV5d,lUh=XFI()<rn[SS./NuL;i%sG
+r;Zf:lq.F\E/(OJn,!(f@Z%e]rSdbWq2t2>"Cd5!kl'iI#QF\snD_`^;t<Na99@]kqYoCPJ,~>
+k5PJXP5'P4G&`8:d-UW.k5PV`pZg;0K(=HlHig2!pt>ZLrV5d/l[T.cFI()<rn[SS./NuL;i%sG
+r;ZfKm!o7bE/(OJn,!(f@Z%e]rSdbWq60=="EoX5kl'iI#QF\snD_`mK^jQqV:Fu0rnma+~>
+k5PF"p](L*BRZZ!mJGrD"oeDjiMmgf!!F0eVV:gsrrN&8lMq&+H(`XZh#@?rqZ$k"N5+ZVs8Q?j
+!!Q)BSBL?equ?m=Eg"B.ro*kXrl=O/"@e9\kl'`F"o\8dhQ\Bs!!HlYlM:G;s*t~>
+k5PFLpdt`bCOVu$mJGrD"oeDjiO)k\8d&%>VV:gsrrN&GlUh:XH(`XZh#@?rqZ$k"N5+ZVs8S#D
+8d/[LSBL?equ?m=Eg"B.ro*kXrmgO2"Cd8#kl'`F"o\8dhR[+b8d'molM:G;s*t~>
+k5PFjpj`QtDLS;'mJGrD"oeDjiP(->JH'uuVV:gsrrN&Rl[T+bH(`XZh#@?rqZ$k"N5+ZVs8T7g
+J-Bt=SBL?equ?m=Eg"B.ro*kXro!<s"Eo[7kl'`F"o\8dhS>'>J-;FglM:G;s*t~>
+kPkS3"S_s#20=tpk5+$9"TJ2]^*iOQ":fgUf_F%t!35tt!'9TL";cE\f_=2$!$D(<#<RmZlM^bS%
+.+$!"`9"#i;'/G!!Q&BT[NK3i;WiT(@hG.7Z+hArT=+_rV5[#2XpbM@a"$3ro*m-~>
+kPkS@:&%<a>',n@k5+$9"TJ2]`a\R4"AX?@f_F%t!5e\,!*o"c"AsNAf_=2$!$D(<#<RmZlM^bV
+;XI'\9Q#Tki;'/G!!Q&BT[NK3i;WiT=n5/f@Z%e]rT=+_rV5[&D"1+#K$3ESro*m-~>
+kPkSIK(sj"F``b[k5+$9"TJ2]bDl.E"Fb`pf_F%t!7^st!-I^\"FPQlf_=2$!$D(<#<RmZlM^bY
+L@'KqIrC(Ji;'/G!!Q&BT[NK3i;WiTMXl9#G)EoqrT=+_rV5[)P4=&*R`jskro*m-~>
+kPkNYpAbA&J#Lukrnm_Yrql000(f2I%==l%p=B6DL]%2RB-$LB":TXQf_=2$!)ECk"qZO!jo#.R
+qu?^*nc/k8FHjf4nKe&5"X%c?[Ggu>rrN*rnc/e^MS&*Njo5J_qsi8tnGiZ+b3A`\s*t~>
+kPkO6pIYU&J#Lukrnm_Yrql04BD"k":4&bfp=B6DWr5NjCfU!t"AX<>f_=2$!)ECk"qZO!jo#.m
+r(6rank'*bFHjf4nKe&5"X%c?[Ggu>rrN+Nnk'$oMS&*Njo5J_qsi<VnO`n<b3A`\s*t~>
+kPkO\pOEEdJ#Lukrnm_Yrql06OS+,,IX@jAp=B6D_u5)dDgh/+"Fb]nf_=2$!)ECk"qZO!jo#/+
+r."crnpgpjFHjf4nKe&5"X%c?[Ggu>rrN+snpgjdMS&*Njo5J_qsi@(nUL_1b3A`\s*t~>
+kl1Y/pAb@.EK%Qnr7q;Sr:88hp&G4)HD/m_f)G_`rW!!*Ea8)6"*C6ep>#ZJV"t&p5cE<-r_37j
+!=D?f!!P$%U"&U2r;[$/@XF`ln,;,C!.j\@"@e9\kl'QA"9%lB.e3QB!e8G\qVqO*~>
+kl1Y=pIYTbEK%Qnr7q;Sr:8EPp.>H_HD/m_f)G`7r^m5cEcUYA"*^Hhp>#ZJV"t&p5cE<-rdar>
+!DQtm8d/@DU"&U2r;[$/@XF`ln,;,C!2]6Y"Cd8#kl'QA"9%lFAb&Fr99IHbqVqO*~>
+kl1YGpOEEpEK%Qnr7q;Sr:8L&p4*9pHD/m_f)G`WrdY'!Ee<e2"+$Zkp>#ZJV"t&p5cE<-rhfXE
+!If+\J-C.CU"&U2r;[$/@XF`ln,;,C!5J)T"Eo[7kl'QA"9%lHOR[i'T?QZuir=N~>
+kl1WbpAb@BG+-\GrnIGTrUeS^pAb=*H(`[\f)G_;rW!$:G*F0?!!?8jch#rl!V\&>!!H?;jlQ^E
+!!+i]nc/eTJ?-URr;[$*<d'Y=jS@X3!28r`"@e9\kl'N@"9.u;'Cl,+%[ti7r8[g-~>
+kl1X=pIYThG+-\GrnIGTrUe`LpIYQ`H(`[\f)G_rr^m8iG*H;&8crmuch#rl!V\&>!!H?;jm,V=
+8c`(1nk'$jJ?-URr;[$*<d'Y=jS@X3!5.kp"Cd8#kl'N@"9.uC<q8ic;52M-r8[g-~>
+kl1XapOEElG+-\GrnIGTrUeg&pOEBqH(`[\f)G`ErdY)uG*IjRJ-1.ech#rl!V\&>!!H?;jmRd!
+J,sh8npgjdJ?-URr;[$*<d'Y=jS@X3!714d"Eo[7kl'N@"9.uHM"6'!Ju6ubr8[g-~>
+l2LeM"SVm!3.7[VpY#QKrq4GJp](F&GbER[f)G^mrW!$IHD#o\!!G-A`U3Z\rrW/;#PnE%4hQFF
+!!6GR!qQBo7=\hVr;['0<csA,g@YC#rrBe(!!GcK]BK4PrrW2mU@A3d/?mh"roF*0~>
+l2LeS:%q6_>^`L%pY#QKrq4]?pdtZ_GbER[f)G_Xr^m8nHD$eu8d&I``U3Z\rrW/;#PnE&4hRFY
+rCR-)I7s0("(?^h%K-83$<D;.ZJ+sMh>[K%nk'$oMS&*NiVruYosaH`"CSIeo`!qOJ,~>
+l2LeWK(jcuG($7?pY#QKrq4lupj`KrGbER[f)G`3rdY)qHD%D1J-:7_`U3Z\rrW/;#PnE'4hS.L
+J,Xs!E.7A."*K-'%K-83$<D;.ZJ+sMh>[K3npgjdMS&*NiVruYou?NP"GX/6o`!qOJ,~>
+l2LaMp&G4`K!=20f`)'QoX5)$!!@J;e+M>m!;l]p"?(_.d3%oZ":U*rjnmj5!r/2dq>^O((]==9
+)KC]Vo)Je5%/^)1*G'JTYgr7@h#@B&nc/e^MS&*Ni;WlWo2tM_"(8e&q;hR+~>
+l2Lakp.>HqK!=20f`)'QoYaT$8cs=0e+M>m!;udf"C-DTdU2Q;"AXc_jnmj5!r/2dq>^g0/j)To
+8lBYf>4bDg68&cF!!aNUG`ArXnGM)A!8d9="Cd8#kl'H>!r__EnO`n1]]AnLs*t~>
+l2Lb,p4*9gK!=20f`)'QoZi-bJ-1%fe+M>m!<)kH"Eo6nduEpK"Fc0:jnmj5!r/2dq>^g05A,4h
+IsQ*nL\-)uE]X^-!!aNUG`ArXnGM)A!9j!("Eo[7kl'H>!r__fnUL_%]]AnLs*t~>
+l2L`Sp&G4aL:64AfDbpNo8`SG"*U3^o[j*Cg\h*T7Y7l%Mt$cL?DuQNh#@KTntQrm!!>W4S3H?@
+#REn@I[.=lnGM&@!8d8H"@e9\kl'E=!rUsdnc/e$R*+gojo9i~>
+l2La2p.>HrL:64AfDbpNo;VLW"*U3^o[j*Ck5@mT@=k`@Wpr[`Ei@[bh#@KTntQrq!!`Q>-otUV
+S8\0p"%G3q&c2P6#Y&laQ*o34r7h5OkOM4J@Z%e]rSRVVr8^fI8d%t[b3f,gs*t~>
+l2LaZp4*9hL:64AfDbpNo=XjK"*U3^o[j*CmJVP<FFpaS_!upWJZ.8qh#@KTntQrq!!`TM7V$C[
+S<Wf!"*n9=*r>pC#Y&laQ*o34r7h5Omdbl2G)EoqrSRVVr9/n*J-2=amJQ)GJ,~>
+lMgnZ#ke6$7Z"_?rRUuMr:!nc!!@A4d.Gri!4Vn,"]^>fk3WrT!!Fp@am]5arri5d`Dd$8!!<ED
+3$n%o#n&k6I#=Z6h=:EsrrDc`!!GcK]BK4MrrMtInGi\eY1r[Lk5Tr~>
+lMgn\;"dKa@Yq\[rRUuMr:#I:8cs4)d.Gri!6kC6"_NP"k3lID8d&Fdam]5arri5d`Dd$8!!<ED
+3&^[["!\`u$2FQ-$Tr?TMP@oBnbh,@!;Z1X"Cd8#kl'B<!W&P\8d'(8g\1X/s*t~>
+lMgn^K_Bp!G)<forRUuMr:$TZJ-0q_d.Gri!8II&"`oI/k4+?"J-:=fam]5arri5d`Dd$8!!EKE
+3(#k-4p*o#+V4AK#n&k6I#=Z6h=:EsrrDodJ-:%Q]BK4MrrMu.nULasY1r[Lk5Tr~>
+lMgk-o`,+aM7`!Mec,^JiZe4!")""Ho@O!BQi-mfArOLiqLnD>"9a=cjSR^3"o@Z<WE9kt!"/f?
+3bj)#T!m#.pAN\E!<2Nh"@e9\kl'B<!rhQsnc/e*QGr4hk5Tr~>
+lMgk<oh#?rM7`!Mec,^Jj^@pW")sXQo@O!B[J`]$D2c6pqPEaT"A=KYjSR^3"o@Z<WE9kt!"/f?
+3bj)#T!m#.pAN\E!<2O]"Cd8#kl'B<!rhXfnk'$^QGr4hk5Tr~>
+lMgkGomd0gM7`!Mec,^Jk`5Li"*^-Xo@O!BbPcqpEf@cuqS)KM",OGIqqM,SqX2q6=;9ou$NUl$
+C41u2[a=11rRq2NrpkRBG)EoqrSIPUrpba5J-2+Vm/?)HJ,~>
+lMgjNo`,+[M7VpLeGfUG[KHC,"D4"Enc%2@!-J2?#6T"0`pWih%e9T&9Vg53rnIGWr:ApkZ[t1$
+!"'N/@"b8acJe<irn%2@!!GcK]BK4LrrN%3nGiZ%Y2/m8s*t~>
+lMgjloh#?pM7VpLeGfUG`_?8%"E9^Onc%2@!1a$\#>9*#`pWim<:WWaC8BDQrnIGYr:ApkZ[t@J
+!q$$t"Uu:u6=>J@\Ba('qYo+Hnk'$oMS&*Nh>[NRPOV6IGHTcsk5Tr~>
+lMgk-omd0iM7VpLeGfUGdXh:G"Ep-Unc%2@!4r/[#CgcW`pWipL@KcrUt,/;g]%QWoA[s"Jj^1Q
+mJm\&(F_:0@"b8acJe<irn%2@J-:%Q]BK4LrrN&&nUL^pY2/m8s*t~>
+lMgj+o`,+KLq)UFeGfULp14%#"C786nG_)?!)WXp#820Hc1:l3D=RZ0'U$B"rS%8TrV>p?cU[p6
+"pu+Y&Io9OoDf.4<.1msjRE!Dec,U_o)Jn_MS&*Nh>[NT`:3g11n)VWroa<3~>
+lMgjSoh#?jLq)UFeGfULp5]#B"Dj=EnG_)?!.t2B#>fQ1c1:l3QL[WN;Ner`rS%8_rV>p?cY5-e
+,9%F7&ePT`"o\W;"UGMJ'cS>C-7CZLIBCrYnG3%5rr?-l8d&U\]BK4LrrN,KnO`pkR`k4"kPp&~>
+lMgjqomd0kLq)UFeGfULp8n.A"F$*PnG_)?!3#mI#CLZ]c1:l3ZgrVLJ!._8rS%8^rV>p?c[o1m
+4Y@ln&ePT`r!3lF'H8;N4$Z/&85t#>dcBonrRLoJM=Z6#G)EoqrS@JSrnd0q"Fcf_nG_VNJ,~>
+lMgico`,+1KX0V7e,KLJjV[mq"BUc+mf(l=!&4BP#U"Aae+Nb?h?WTO")+mopt5TKrV>R_r;[$V
+9ji7&N#_Hi"r;$DcLC]0e,KCio)Jn_MS&*Nh#@EP(@hG.&rO9_r9+*1~>
+lMgj?oh#?bKX0V7e,KLJl!"!W"DX+>mf(l=!,VX,#ZQ&@e+Nb?k"kP?"*h$*pt5TVrV>_N5Wh"`
+5tta4Ll=In./tb)/1rV52aV>LcLC]0e,KDUo1B-pMS&*Nh#@EP=n5/f:l;jHr9+*1~>
+lMgjcomd0nKX0V7e,KLJl\bUj"F$$Kmf(l=!1<b9#^U`fe+Nb?l@\YX",*l6pt5TVrV>f*DJ3Ka
+9hf#@Ll>:171MdX8PDr[=^GNQRa1F!rmUlIO7Rl)G)EoqrS7DRqhjrp"Fc6>k5=EBJ,~>
+lMgiLo`,*rFfF-jdf0@ERf!-g9T[-Xrn.5N%/p54/psPLq#CBk?1Isu0:L,Srn%/MT)AWo$!qV7
+Z+n%CoDf"(H)B<jdJj1go)Jn_MS&*Nh#@ES;=OVgG,j<lkPp&~>
+lMgj.oL]44WS@3rrrMu'r(7*'OM^A`f`(qLr^mGuI&>Tls8VtRnk'$kR`t:#fDc8j8Ou<=7::+u
+Z+n%er&+sB3'',a5X@b0H)B<jdJj2So1B-pMS&*Nh#@ESK(2G8I&brrkPp&~>
+lMgjWoRI$nWS@3rrrMu9r."opOM^A`f`(r+rdY9!I&>Tls8VttnpgjmR`t:#fDc9)IXHHbEF<dL
+Z+n&)r*Be=@:WtbD/jZ?H)B<jdJj3-o7-seMS&*Nh#@ESVso3<Wn[=3s*t~>
+lMgiKoDf"dS^@!-e,KLKoeuaK"@eBclM]E9!:0R`#X!X>hYR9PrmL?;"9a7bjSRR/!'pJ_#;pOa
+^>J8AIe3UC"+-iqpX0!@+7fI87Z+hArS.>PM=CQK<h7V/rojB4~>
+lMgj-oL]7"S^@!-e,KLKoks_#"CmG+lM]E9!:g"[#[Mt_hYR9Prn[-;"A=KZjSRR/!-eB6#?c)0
+^>J8ASGGV\77Kd<8P2X&Ut>@grr?Hu8d&U\]BK4JrrB(h8d&t$d.@8#s*t~>
+lMgjVoRI'nS^@!-e,KLKopG]."F,p@lM]E9!;6;@#^1a#hYR9ProEU"",aVLqq(iJT`0HIIro^n
+^>J8AZi"nRF`qtSH@1-jIs\!CpX0!@O7Rl)G)EoqrS.>P_sr6[I%AXUrojB4~>
+lMgiKoDf".OML/[df0@G]DV^43JtH4rRq2Na8Gu@8qaS3r;Q]sqb$DZ"@o9;o`!PD!8m_T#QeFb
+WnI+FrNPkn")jd[p!Nd>+7fI87Z+hArS.>PXmlAo6'B7UrojB4~>
+lMgj-oL]6aOML/[df0@GbPb$9?AcAYrRq2NfDS;E@YD,Kr;Q]sqgS*."DFU\o`!PD!9j>Q#AJ^g
+g%PFD`q)e)Fe7(TdJj2So1B-pMS&*Ng]%8lnO`pnP/cqhkl6/~>
+lMgjVoRI'oOML/[df0@GfDU4&H&B5trRq2Nj8FK2FG.$]r;Q]sqkEY3"G*Auo`!PD!:Ti9#B,-m
+g%PFDf(smmJ-1(ge+M,g!0?`%"Eo[7kl'99!7gUi"FH<Omf)GMJ,~>
+lMgiKo)JknXk`^!rrMmdrW!'TL:?=Cg&D&Mr;Zt&M7VmKrr3#u^@D7,'9U,rr7V)MGPqLI,BAjZ
+kktJ\iq!-P?CB+0dJj1go)Jn_MS&*Ng]%8nnGi\GMS/0Okl6/~>
+lMgj-o1B+)Xk`^!rrMnBr^m;sL:?=Cg&D&frCR3+M7VmKrr3#ucLOR1;3A][r7V)MTD_@f<H=/7
+kktJ\lLRUMDOJf@dJj2So1B-pMS&*Ng]%9)nO`pgMS/0Okl6/~>
+lMgjVo7-prXk`^!rrMngrdY,tL:?=Cg&D'$rI>#lM7VmKrr3#ug@BasJ!%S4r7V)M]D[6cH#et[
+kktJ\nFM/4H'utKdJj3-o7-seMS&*Ng]%95nULahMS/0Okl6/~>
+lMgiKo)Jn%N5k5^df0@H`Voi?-A8\br7V)MKDbcQBTBpqrr)itqD[sF"(A:dptG`Kq],P7#u>oA
+de!J<s8EQ$!!H,^aRB,Vrr=/4!!GcK]BK4JrrCpG!!F^([,h/Ks*t~>
+lMgj-o1B-]P/ckddf0@He,DrB=+mm>r7V)MVu93jDN;R"rr)itqJc!t"*L^#ptG`Kr*K=o$"J=U
+de!J<s8H!i8d&gkaRB,Vrr?Hu8d&U\]BK4JrrD6P8d&7M[,h/Ks*t~>
+lMgjVnpgh.`pEWOrrN)SrdY,tKX0Y9g&D&grI>#kNkt)]rVlopRdtt2KWNu(gA_3PNr=J7EdOM.
+oD\direL,r"F--On,Cc8!0?`%"Eo[7kl'99!:KB-"F>d/jS\6AJ,~>
+lMgi_nc/e@W7^bAdf0UK8cSi2JZdo,g&D%[rW!**F-F]6rr)itrMT2d"=]b]n,D)A!42V("VPd1
+[c@5`rrN*WoDf"[Nl(/^df0:ho)Jn_MS&*Ng]%91nGi\3JZdr-kl6/~>
+lMgj;nk'$jWn?tCdf0UKHqI"1JZdo,g&D&4r^m>fF-F]6rr)itrP%hp"Bq59n,D)A!6P13"]0/o
+[c@5`rrN+<oL]6qNl(/^df0;To1B-pMS&*Ng]%9;nO`p_JZdr-kl6/~>
+lMgj`npgjrWn?tCdf0UKU4@cAJZdo,g&D&VrdY0%F-F]6rr)itrQk%b"Fli^n,D)A!87=$"ak9F
+[c@5`rrN+foRI'iNl(/^df0<.o7-seMS&*Ng]%9AnULaiJZdr-kl6/~>
+lMgj&nGi\U\`!5]e,K^Q\c;^@J>q;ug&D%7rW!'6G+$YHqu6]l,kD!=!dqH:qV2#M;#L@t5^/[?
+nGW=c!+tj'">G_Fkl&s0!$Ce4"@e9\kl'99!8d5G"<2ijh"g16J,~>
+lMgjOnO`q!\`!5]e,K^QbXtK(J>q;ug&D%or^m;iG+$YHqu6]lA+N:q98'b6qV2#MK)J:F??_j]
+nGW=c!0ZtH"C$bqkl&s0!+>Cj"Cd8#kl'99!9irF"B'`Lh"g16J,~>
+lMgjnnULb"\`!5]e,K^QfRSL%J>q;ug&D&DrdY-!G+$YHqu6]lORdo(M72I@g]%8PrI>&nGFH_E
+rVc`rZLiYMHA]>urR1]GO7Rl)G)EoqrS.>PmdYf1I"/0Oq<7j/~>
+lMgjIn,NSP^?#%fe,K[L0E;0+Ut>=nrr=&<!!FEiT@EQ2rrN(_nc/e\U=/]5h>[N="TAB)#&/^m
+h>$pJ!06[O"<iH*jS[I+!$Ce4"@e9\kl'99!7pZ?"<2cfg\C"4J,~>
+lMgjhn4Egu^Z>.ge,K[LCJ%6OUt>=nrr?@(8d&+=T@EQ2rrN)&nk'$tU=/]5h>[ND:&[`g9Pf?a
+h>$pJ!3Yrd"BC,^jS[I+!+>Cj"Cd8#kl'99!93N@"B'ZHg\C"4J,~>
+lMgk*n:1Y$^uY7he,K[LQ@OL;Ut>=nrrA)YJ-:1DT@EQ2rrN)<nUL_9de*OprrM_CrdY0%DhG4K
+q#(-l`q4caH\Acer6kTFO7Rl)G)EoqrS.>Plg]K.I!qsJpuqa.~>
+lMgk+mf3JB]&NG_eGfdP`.DZ`WS$purrDfl!!Fj#VV1b@rrMU)o)Jn&NkaiVh>[J1r;[!SFHaZ/
+rVZZq^%;:-&V-t>qU5BD+7fI87Z+hArS.>P^@;1+)h"U;puqa.~>
+lMgk:mn*^m^#JbbeGfdPd[l,RWS$purrDln8d&7DVV1b@rrM[no1B-]O2'rWh>[JTrCR5qFHaZ/
+rVZZqch'g4:k5Y(qU5BD@.Qtn@Z%e]rS.>PdIBg3;LPFrpuqa.~>
+lMgkEmskP!^uG(eeGfdPgp<B1WS$purrDrpJ-:+EVV1b@rrMbLo7-snOMC&Xh>[JmrI>&qFHaZ/
+rVZZqh=Q4#I=SEUqU5BDO7Rl)G)EoqrS.>PhXQ+!I!qmGpuqa.~>
+lMgn\$h"&u)kc'Zr7(`Nq;fK$_;b7DrrCOH!!G?5XPWgMrrN(Gnc/btX4m=(rr=2?!!QYWVUkG>
+r;Qc]oDf!qI&5Kidf0:ho)Jn_MS&*Ng]%8KnGi\@IAkoqkl6/~>
+lMgn];X[3\>-6ZQr7(`Nq;fK$_;b7DrrD!U8d&FMXPWgMrrN(knk'"*X4m=(rr?I*8d/mWVUkG>
+r;Qcco1B+4V:bOjrr?Hu8d&U\]BK4JrrBb&8d&4DW8%+2s*t~>
+lMgn^L$sNpLUQ(2r7(`Nq;fK$_;b7DrrD<^J-:%GXPWgMrrN)0npggpX4m=(rrA/ZJ-Bn@VUkG>
+r;Qcgo7-pjV:bOjrrA,OJ-:%Q]BK4JrrCI:J-:.GW8%+2s*t~>
+lMgna=mc7n#^=qhqYo(G#6"5XhW+2)gA_/Zr;ZsiKX0Y8qYpWrk6LSY"=9DUmeu&C!4Vn,"X7rG
+]]]1hrrN*4oDeu,T$m8Zrr=/4!!GcK]BK4Jrr@Q=!!G30XPN^9s*t~>
+lMgnaM!dk=:6X>uqYo(G#6"5XhW+2)gA_/prCR3$KX0Y8qYpWrlqd4F"Bh)4meu&C!6kC6"]TK$
+]]]1hrrN+#oL]4+T$m8Zrr?Hu8d&U\]BK4JrrAkb8d&CKXPN^9s*t~>
+lMgnaX6tKAJu@8hqYo(G#6"5XhW+2)gA_0+rI>#nKX0Y8qYpWrmt:4^"FlcZmeu&C!8II&"aY0J
+]]]1hrrN+UoRI$iT$m8ZrrA,OJ-:%Q]BK4JrrBh(J-:(GXPN^9s*t~>
+l2Ladli7/P_!(Okf)GpPqY9marn@APO8T%]<J\3Kr;$?nr+5I""9NhTiVMI3!)3=k"]0Q=dIR;5
+rr>7T!!H;gbOPS\rr=/4!!GcK]BK4Jrr>mc!!GrIZJtcFs*t~>
+l2Lb%lq.D"`p!0qf)GpPqY9marn@APYl./sAr+"\r;$?nr/gJA"+di<qVV;QJGi(D@salro)ALc
+!-\!,"DX:Hnc%#;!+>Cj"Cd8#kl'99!.s`5"Cd"hiqqs>J,~>
+l2Lb6m!o5'b38Tuf)GpPqY9marn@APa8LMkF,7Bir;$?nr35aB",O>CqVV;QVYu#KEdOJ,o)ALc
+!1rh5"F6?Wnc%#;!0?`%"Eo[7kl'99!3#F<"ET4$iqqs>J,~>
+l2LeY+m]14%Y!:(qYmPq!-%l:"CdA+lM^PY!rgXNo)JnUT[EB1iVrr="TAB)&o`Z8iqiKN!,D-+
+"@J<imJbT7!$Ce4"@e9\kl'99!#Y5+"D!A#kPaWEJ,~>
+l2LeZ@I-Si;OZJ3qYmPq!1EdX"Dj(5lM^PY!rh%Mo1B-rT[EB1iVrrE:&[`g:iM6!iqiKN!0m+J
+"CmS4mJbT7!+>Cj"Cd8#kl'99!*etc"Diq+kPaWEJ,~>
+l2Le[O6hB#KWa2$qYmPq!4_uX"EKL;lM^PY!rh;5npgh8dI[@rrrMYArdY0"E/:s^qYC-k[.JkO
+HBH/5rmUlIO7Rl)G)EoqrS.>PN:DE$E/D0hrTO93~>
+l2Le`R-FYS0!+4.r2fnu9`4qoEg"H1rqQKoqb-M\":L1%kksE>!.4YE"[[F%b4#<)rrA>V!!G!5
+]]f=Crr=/4!!GcK]BK4KrrCC8!!O'WP/Zhfkl6/~>
+l2Le`Zg(-cB"I-tr2fnuJGi(CEg"H1rqQKoqgS-/"AXrikksE>!2BEa"^cJBb4#<)rrBCt8d&@U
+]]f=Crr?Hu8d&U\]BK4KrrCmF8d/%3P/Zhfkl6/~>
+l2Le`aQe9YOMp;Sr2fnuVYu#JEg"H1rqQKoqkNb5"FlHFkksE>!58>]"a"sWb4#<)rrC15J-:4V
+]]f=CrrA,OJ-:%Q]BK4KrrD6PJ-C=@P/Zhfkl6/~>
+kl1\U.-U^79YB]crN?/#/H,VQ%<Rr\nc&=`!WK_%!!??&g%OG*!W*`5!!NXDKWj5,q#:?5oDf"9
+Ks]q=e,KCio)Jn_MS&*Nh#@A$nGi_PGb3=TrojB4~>
+kl1\VAa)eiHcGCGrN?/#B`:U-:3;iHnc&=`!WL=68cs%3g%OG*!W61$8d.q+KWj5,q#:?EoL]6c
+Ks]q=e,KDUo1B-pMS&*Nh#@AKnO`shGb3=TrojB4~>
+kl1\WP3IK"SBgHprN?/#QMuC<IWUq#nc&=`!WLdCJ-1D&g%OG*!W@uVJ-CC?KWj5,q#:?QoRI'l
+Ks]q=e,KE/o7-seMS&*Nh#@AfnULddGb3=TrojB4~>
+kl1__]*%9t"TqN7m.^I_rr<?(!!F0aS^I*'rrMsQo)Jn8QH/Ckj8T+Wr;[!XFHjc2rV6BmmdpJ^%
+Y1Y;q:#?D+7fI87Z+hArS@JSq],/,"Ti+aXkrm:s*t~>
+kl1__b=q.m"\a?dm.^I_rr>mp8d&%:S^I*'rrMt6o1B-dQH/Ckj8T+prCR5sFHjc2rV6Bmo(5NW
+:4TG&q:#?D@.Qtn@Z%e]rS@JSr*Jnc"DWOjhYH@7J,~>
+kl1__f7E1:"bE;nm.^I_rr@`OJ-:4DS^I*'rrMt`o7-snQH/Ckj8T,.rI>&pFHjc2rV6Bmp@Nk<
+IXnNVq:#?DO7Rl)G)EoqrS@JSrJpDu"E/mohYH@7J,~>
+kPkSXIcg\8"&HSrp\b#trrD*X!!FToUXo/4rrN(nnc/c4ZJbQ=rr>1\!!WL7J>q2prqQKorYP2,
+"*gWopXB-B+7fI87Z+hArS@JRTCDmb-?>3`lMTiFJ,~>
+kPkSXTBAfN9RXtJp\b#trrDB`8d&1@UXo/4rrN)2nk'"5ZJbQ=rr@0>8d/s[WS$qDq#:Bo>4bDh
+HDK3fe,KDUo1B-pMS&*Nh>[JenO`scEfe*%r9+*1~>
+kPkSX\EAAHJY1<Up\b#trrDTfJ-:.DUXo/4rrN)CnpggsZJbQ=rrAYhJ-BnBWS$qDq#:BoMtDN%
+I&,Ehe,KE/o7-seMS&*Nh>[K$nULdfEfe*%r9+*1~>
+kPkV^nP\HK"[]6TpAFourrBt8!!G$*WS@4@rrMd5o)JnST$R!,jo5>,r;[!KEf[rur:^-j9(W)c
+@[tj<e,KCio)Jn_MS&*NhZ!WR,k:p>!aC&Ie+EY&s*t~>
+kPkV^nU]do"a.KDpAFourrCRI8d&=HWS@4@rrMh"o1B-pT$R!,jo5>:rCR5oEf[rur:^-jIe657
+E1G>Je,KDUo1B-pMS&*NhZ!WSA+<.pB7-K'o`"%RJ,~>
+kPkV^nY>2r"e*NupAFourrD$VJ-:+GWS@4@rrMkRnpgh6cgq(srrD6\J-C4=O1siUpAY,goRI$i
+SC-uXrrA,OJ-:%Q]BK4MrrN(]nULd]I&#0_roa<3~>
+k5PM[k=4M4"YQ&$o_\WtrrA\i!!GK:Y2K0LrrN(So)JmuLqMmIjo5<jr;["&I%o*^rq??lEqB>7
+:6irjrm^rJ+7fI87Z+hArSIPSL[b?J.rpT[jnn3?J,~>
+k5PM[k]l/\"_b%#o_\WtrrBY/8d&IOY2K0LrrN(so1B-[MnJ3Ljo5=CrCR6*I%o*^rq??lRe02T
+B9gU.rm^rJ@.Qtn@Z%e]rSIPSWpr[b=)s82jnn3?J,~>
+k5PM[l($gb"d6X`o_\WtrrCCDJ-:%HY2K0LrrN)6npgh$]]T+QrrB>&J-Bq?U=8c6pAY-&oRI'j
+Q-&OpeGfN0o7-seMS&*NhZ!SnnULdeEf@Tkqr[p/~>
+k5PP_q;O6k!!O-]eFE>4])MbXr;ZsmKs]q=o`"sU%eBZ&;Q&1@k5PJN#lXf-)KCYEjSSWM!1i`^
+"?MRZli,E6!$Ce4"@e9\kl'E=!RD&B!!WjDI\bE`roX62~>
+k5PP_q;Z;O8d/=ag%"k9])Mc)rCR3%Ks]q=o`"sY<:`]aDPu.\k5PJS;#X&j;K7T(jSSWM!4h_o
+"CI2*li,E6!+>Cj"Cd8#kl'E=!SpTC8d8%+I\bE`roX62~>
+k5PP_q;de#J-Cb7hXUC>])McErI>#mKs]q=o`"s]L@]otJu@8pk5PJVK`6K*HuY%RjSSWM!7(4e
+"F?*Eli,E6!0?`%"Eo[7kl'E=!U#.,J-LI?I\bE`roX62~>
+jo5G^pYS?t!!WX*Z0h8_rk8=3=T&4&=,OWRrUg*jr+Ya&"<*NDm/?,I!/pdU"\F!1cLCi+rrC15
+!!FU(\E<_=rr=/4!!GcK]BK4OrrM:.nc/jq:Nhr;kPF<?J,~>
+jo5G^pY^2R8d8%@_X7'prk8=3M#BpKBSsFcrUg*jr0-_E"B:W)m/?,I!3Q2l"^u\IcLCi+rrC^D
+8d&4O\E<_=rr?Hu8d&U\]BK4OrrMOtnO`soG*B`)qW7a-~>
+jo5G^pYhS#J-LV"c0b6&rk8=3XSmYPFGd]orUg*jr3GpE"FlZTm/?,I!6+ne"`ns[cLCi+rrD*O
+J-:7U\E<_=rrA,OJ-:%Q]BK4OrrM_SnULd_G*B`)qW7a-~>
+jSo>]p>/^*!!OX"g@G+=^]+9nr;Zt2Nkju[o`#!ldf]1A")b@#puq_Yq],S8"Uo7&ZJbNMrrDW^
+!!F!fYi,B-rr=/4!!GcK]BK4PrrM^JnGibPEepsSp&=(QJ,~>
+jSo>]p>:>W8d/[thX^OA^]+:RrCR3/Nkju[o`#!lhG!N5"+7?1puq_Yr*K@p"\rriZJbNMrrD`a
+8d&"CYi,B-rr?Hu8d&U\]BK4PrrMh3nOa!iEepsSp&=(QJ,~>
+jSo>]p>DP#J-CtCipusE^]+;(rI>#lNkju[o`#!ljb!)S",=&;puq_YrJpl-"b(BEZJbNMrrDid
+J-::PYi,B-rrA,OJ-:%Q]BK4PrrMqanULgdEepsSp&=(QJ,~>
+j8T8]p>U&nhuErc:Tj*Yr;OS5!#5A3"EK[Fmf)hX!W,O]!!G-KcLLnurrB+u!!PE,QH/Cko`"sk
+-M7?A"+@-%psf<D+7fI87Z+hArSmhXj!aEt"tFPCV9n]/jSs`~>
+j8T8]p>V6/i(=2KJ&(IFr;OS5!*K1l"EK[Fmf)hX!W.?;8d&LkcLLnurrC"98d/LDQH/Cko`"sk
+AG&Ot97<bmpsf<D@.Qtn@Z%e]rSmhXlXoZZ#$5_pV9n]/jSs`~>
+j8T8]p>W'&i.)#`U!;uur;OS5!/g`*"EK[Fmf)hX!W/Y_J-2=enc%eQ!7h$us)nL1a6iitrrN+^
+oRI$lW7q$rrrA,OJ-:%Q]BK4QrrMYSnULggDh=h4n,28HJ,~>
+ir9/\pZ.SOh>d^)K])IurPed:oDJXm%<Rr\o)A7\!WK_&!!EL[]&ihRrr>1\!!NI<JZIN!o)A\b
+oDeu+T@<J_rr=/4!!GcK]BK4RrrK_KnGib<D18(tlMBQ@J,~>
+ir9/\pZ/;QhF[r\U>tkArPed:pAISe:3;iHo)A7\!WL=78d%hD]&ihRrr@0?8d.k(JZIN!o)A]@
+oL]4+T@<J_rr?Hu8d&U\]BK4RrrLGMnOa!cDLS1ulMBQ@J,~>
+ir9/\pZ/f;hLGci\E*8XrPed:q>GgIIWUq#o)A7\!WLdCJ-1_@jnn<B!1s.>"E8pmg@t1<!2fC=
+"+-Zhp!j!AO7Rl)G)EoqrT!nYh2LlS#'k-9T#g3nj8XW~>
+iVs&[puoFNh#ITiD9q_HrQ"p<ci!hH)0h_#o^Vq^qCM4<"AP`Dp&=:W!6b<@"Y=_W_!:jgrr@67
+!!H2dbOPS^rr=/4!!GE?\`WhOrrM_0n,N\IDgn4ok5##:s*t~>
+iVs&[puoY3h+@iMP1K-trQ"p<h>KqK;L"b\o^Vq^qIoIm"Dajbp&=:W!8@BD"^#i._!:jgrrAY_
+8d&jpbOPS^rr?Hu8d&IV\`WhOrrMh]n4EpgDgn4ok5##:s*t~>
+iVs&[puoe]h1,Z`Y1rI@rQ"p<kP]o6H[)+0o^Vq^qNUT%"G*E#p&=:W!9O00"aG*N_!:jgrrBY&
+J-:1bbOPS^rrA,OJ-:+Q\`WhOrrMr)n:1aeDgn4ok5##:s*t~>
+i;Wu[qWuaU$Jb[c#%#OAq#/>7!3c>$"=&5ef(SY6!WAP[!!F%"_s@9err?=&!!QPSUt,,:o)A]d
+oDf"ZOMgGaec,Uknc/h9HIhZarosFaqk"ku!!i`qEe9n#jS/Z5s*t~>
+i;Wu[qWuaq:u+_I:5I?dq#/>7!64t0"BBcBf(SY6!WBIu8d&%T_s@9err@uU8d/mVUt,,:o)A^(
+oL]6qOMgGaec,VWnk''gOk91$rosFar4?;*8dJ*tEe9n#jS/Z5s*t~>
+i;Wu[qWub0K&(q\Ju72gq#/>7!8%1""F5<ff(SY6!WC14J-:@b_s@9errB5#J-Bq@Ut,,:o)A^;
+oRI'jOMgGaec,W1npgmqU=f&6rosFarQgMoJ-^XGEe9n#jS/Z5s*t~>
+hZ!`Uo%pZ;g].K^?-_m5rQG3@Mu<VY0RftTq!e:anJ:]r")+moq!A"]k61ba"W_T@]&rn[rrCI=
+!!Fg/]''%Brr=/1!!X3S]^Y^orpKdflAHnV!!jBGG)3!9k4el6s*t~>
+hZ!`Uo%poqge%`FLXbberQG3@Xo1ip=am=(q!e:ao3(ZW"*h$*q!A"]mS3[Q"]KE!]&rn[rrCpJ
+8d&:R]''%Brr?Hr8d8C[b4,3(rpKdfn>p-h8dJ:-G)3!9k4el6s*t~>
+hZ!`Uo%q*DgjfQ[V:b52rQG3@`Vk;iG^cUGq!e:aonr?k",*l6q!A"]o7Hsl"ab6I]&rn[rrD6S
+J-:4U]''%BrrA,LJ-Lh3eF<82rpKdfoYls^J-^L@G)3!9k4el6s*t~>
+h>[ZWpZTt`,hrA'$uO\eq>SY=!,2<2"?M+:htljB!W@H<!!FsDbjbW!rr@EE!!Q#@T$R!,nc&Xd
+"SD`t(50!Qqpk]H+70%7)dScMnbN(\rr2]m"THu<9*F_a#ms"=IZq"_lM:G;s*t~>
+h>[ZWpZTtq?JJ-V;N]c(q>SY=!0mFS"C6S]htljB!WA_`8d&IhbjbW!rrAel8d/[LT$R!,nc&Xe
+9_D!\;M;@8qpk]H@-pPm>`#`8o(i1]rr2]m"TIDfIn]?(#u+cHIZq"_lM:G;s*t~>
+h>[ZWpZTu)LtmLaKWEquq>SY=!4;]T"Eo@!htljB!WBY%J-:@jbjbW!rrBb2J-C">T$R!,nc&Xf
+K(XWsI>"ocqpk]HO6qH(MlF\OoD/:^rr2]m"TI]/V1S2e$%?u9IZq"_lM:G;s*t~>
+h#@TXqXE@]F;EX3"W<3Xo)&F4rr>Rf!!GcE[,_)QrrM$_oDf!sK"0n=mf*=^'`J(9%W7$-i;)mB
+!WFSA!!EISWS@3urr=/*!!`TO7UCD#R[X2E"+FiG&+0E)&j^D^N2+/Bn,!%@s*t~>
+h#@TXqXE@]N`Oq-"^7_^o)&F4rr@HF8d&RU[,_)QrrM:YoL]6ZL:H=Amf*=`=T1nr:2blni;)mB
+!WHa)8d%h:WS@3urr?Hk8dA%!HAeDs[^Q.D"/:s%<UNHd:g\3hN2+/Bn,!%@s*t~>
+h#@TXqXE@]TS2*N"c9\Jo)&F4rrAknJ-:"J[,_)QrrMJ=o7-q#\E*PTrrN"SrdY0$E/(^Wq=+Cb
+rfm)+"Fkm"g\B>!!0?Ap#_J/2XLc<lb00e."2;(4L[K["I!'IVN2+/Bn,!%@s*t~>
+gA_BUpZpGDA.IAp"?!RMpANA<!$qLC"B1,fkPalL!W6-m!!Gffeb&k0rrADa!!PH-QcSUnn,EAc
+oDeu/T[`Ybrr=.]!!t5jG_r*'dHC3#h>`!~>
+gA_BUpZpGEK2UJs"Dkm;pANA<!+Yt""D3J$kPalL!W7cF8d&h'eb&k0rrBJ*8d/LDQcSUnn,EB@
+oL]4-T[`Ybrr?HI8dSU9G_r*'dHC3#h>`!~>
+gA_BUpZpGFRY'=F"I$pjpANA<!0[;2"E]I2kPalL!W8thJ-:G!eb&k0rrC7@JH'cpQcSUnn,EBd
+oRI$jT[`YbrrA,#J-gF<G_r*'dHC3#h>`!~>
+g&D<Vr:K4%ZsO=!!!NREf^AS7df0:Mr;Zt/NPFcWn,EFfa7B96'9U/sr9sXc./j2M")!1dg\:.9
+!.shC"B:c4o)@5?!$Ce4!\Go/f)Q$Y.ri5UmeZq<s*t~>
+g&D<Vr:K4%[t%?38d.qNg$\\8df0;@rCR3.NPFcWn,EFfealB9;3A`\r9sXcB)YC+95K0\g\:.9
+!2fB\"DX=Jo)@5?!+>Cjs&]7qf1H9@?&-/JmeZq<s*t~>
+g&D<Vr:K4%\<qm(J-CP'g@"e9df0<!rI>#lNPFcWn,EFfht)@$J!%V5r9sXcPl6+8Dh5"Ep[8%]
+_"<-[HC2qIrmq)LO7Rl'GBn\hJ-LRk^=r#OrnRO(~>
+fDc*Tqt&mqZ=k!/!!FdZk4SZ%rrCgO!!I,#`9mQlrrN!Vo)Jl'Xk`^@rrBD(!!OopP/6G]mf*9h
+oDf"ZOi6Ydf)G^lo)Jt_FFe0r+9^j-":,u"5ofV!"W2O:o(i7?s*t~>
+fDc*Tqt&mq[=hQ98d&\=k4SZ%rrD3Z8d'*q`9mQlrrN"9o1B+.Xk`^@rrC1>8d/=<P/6G]mf*:*
+oL]6qOi6Ydf)G_Xo1B3pFFnpW=A7mM"AMfu@TE.p"^.;Lo(i7?s*t~>
+fDc*Tqt&mq[[;^'J-:nOk4SZ%rrDHaJ-9qU`9mQlrrN"co7-prXk`^@rrCaNJ-C1=P/6G]mf*:;
+oRI'jOi6Ydf)G`2o76j_"+uJeK'%RdIXHHeIeS?rLp>k.q>K.LJ,~>
+ec,mRqXNUl\8s"R!!E[eh!k3krrB\0!!NOIQ-/Uqmf*=eV"4Qh.@JBJrpg!g7/[)h>(*3sp&=CZ
+!7g]A"=oAAkl'*4!$Ce4%7Pf?[^N-%G$@?g+VbIZ!"98O,rS>#EdiXsO-3'-!!NdIf^S_8huA3~>
+ec,mRqXNUl\;FVL8d%t`h!k3krrC@C8d.n0Q-/Uqmf*=e]^n_u>+*S&rpg!gHMpG>B76T+p&=CZ
+!9*QB"BgVokl'*4!+>Cj%:Od[[^N-'KQV!8=&Mie8dnHm='fHTGCG1#O-=PV8d/+Tg[P%;huA3~>
+ec,mRqXNUl\=860J-:M/h!k3krrCmRJ-CFDQ-/Uqmf*=ecLZPhJ!nLKrpg!gUA]TGEIFY5p&=CZ
+!9s-+"FH$<kl'*4!0?`%$?grm[^N-'Nei@=rdXTk%"<VPH[0m_IY3H;P`>Be"bj&7nG3%?s*t~>
+e,K^QqXNXp]SSiUhZ*dcdd-`.fDbi;r;Zs2G+-bKm/I+Z)Y="4!dqH:qXXXdci!hI)0(SGjnnHF
+!WEAt!!F'jZJtc4rr=/4!"qbW[+OEmcGI#jU7.@/N.uLtF8U%iGCbC#LlIRcTW#**_T9cO#ke6%
+'7o05qYoIRJ,~>
+e,K^QqXNXp]U*D-hb"$(dd-`.fDbiYrCR2fG+-bKm/I+[>P(Mj98'b6qXXXdh>KqL;K7W+jnnHF
+!WGmf8d&%FZJtc4rr?Hu8ePTh[+OEmcGI#jU7.@/N/2t4I/J:%I=[$)LlIRcTW#**_T9ce:A.9`
+<hA=@qYoIRJ,~>
+e,K[PqXNXp]V18?J-;IllhUP3rrC7@J-::DRa:TlrrMkQo7-q"[c@5TrrD6\J-C:>Mn8$ImJd4d
+K_9iuI>"ocqptcIO7Rl7G)3NXj4_eq[]?-kQ&pr\L4k3WK)^B3K8#,@P*quAYdqWla/agcJ-C_7
+iplmEiW"E~>
+dJjLOqXWe!^nP'OhuEmGa6*0rf`(qrr;Zs=Gb<LYm/I+bJb&jE7&&-%rq$-i>l=X+8U6lPo)A%V
+!WF_E!!EISWS@4!rr=/4!"qbY]'&n`o'>Amf$DIU^:LbYYPPC4Z*h0Y`m*#fiTBLrmc()Uo`,+G
+ZKCiXir=N~>
+dJjLOqXWe!^nuHZi(=,kaQE9sf`(rDrCR2jGb<LYm/I+bV"71]B;3iHrq$-iMu?6O@<nEho)A%V
+!WHj,8d%h:WS@4!rr?Hu8ePTj]'&n`o'>Amf$DIU^:LbYYPPC4Z*h0Y`m*#fiTBLrmc(QPoh#?u
+^?5+dir=N~>
+dJjLOqXWe!^oEQMi.(roal`Btf`(rarI>#tGb<LYm/I+b^%-[UU=/]5oD\fnrI>&mH(E7OrpB^d
+rg*5-"Fkm"g\BA"!0?`%&pB/DkP=lClf?mQccO)=]!eoJqQ:@6[CX/nc.(M,k3VU*ikC0?J-:tR
+k4SZ3s*t~>
+ci4=Nqt97.aKp@Q"QBCa3PjeMrn7;O;uH\!-@DWApZqh[j9P;W":pO.l2:2R!TO=^!!NdJL9fb5
+li-rkoDeu,T[`Ycrr=/4!"qbY]BK4nrr2ikp@Ie?lK@9hi;;C=i8Wh\lL+69q"jpfrWDu]ZQAc>
+"U8r"meZqDs*t~>
+ci4=Nqt97.aKpt>9]AYIC;T'*rn7;OL&FUH<d^^qpZqh[l;.%E"Ak/pl2:2R!UEJZ8d.t-L9fb5
+li-sDoL]4,T[`Ycrr?Hu8ePTj]BK4nrr2ikp@Ie?lK@9hi;;C=i8Wh\lL+69q"jpfrWDu]^0L>'
+"\k-5meZqDs*t~>
+ci4:Mqt97.aKqCmiID&l_rUOjg&D&PrI>#rI&,Ehli."RKCjZsIuqJ1r:L!inUgaj"b(BEZJbQE
+rrB4oJ-11leFhDm!0?`%&pB/Ekl(P\rquTcoC2,3kN1a^qqhb=ioK:fmdg&GqY^?l"8V6&MY2K'
+JuIDkqYoRUJ,~>
+c2S+Lr:fX<d(PlG%c[Nl2nn;Frn@AP2#RCW0n-+Wq<S%]r*Jsp"'qt]p[nIcF8Z(B3Hg_/mJZAN
+!/gCK"B(W2nc%/?!$Ce4"@e9\kl(AXs8N&ss8;]h"oJ5rrVlflrr`/d_]SLN"?sffp\s:SJ,~>
+c2S+Lr:fX<d(Q/s;<(7OBu&a%rn@APDZ*01>(3I+q<S%]r/:/="*:Nsp[nIcSGc%`>]uFRmJZAN
+!3>`a"DO7Inc%/?!+>Cj"Cd8#kl(AXs8N&ss8;]h"oJ5rrVlflrr`/db$FX3"E;HFp\s:SJ,~>
+c2S+Lr:fX<d(Q<<K&_@aNPOQIrn@APRf.a>G^cXIq<S%]r2fL?",!Z.p[nIc\c%$^F`s(kmJZAN
+!6"M["F?HZnc%/?!0?`%"Eo[7kl(AXs8N&ss8;]h"oJ5rrVlflrr`/dc\qFG"I.*mp\s:SJ,~>
+b5VbGqXWk&`iNbjj8]<@^>ekcg]%6br;Zs]JZdr-li."b`:Es3-()dArV$6lmh#Hu"Tr7bX4m=5
+rrB=r!!GKI_sIBSrr=/4!!GcK]BK4Lrr`2h\eF]9"<t22o_mqPJ,~>
+b5VbGqXWk&`ianpj@TPh^Z+tdg]%7RrCR2uJZdr-li."bddp'6=d[:urV$6loMtl_"\WT\X4m=5
+rrC+38d&Ra_sIBSrr?Hu8d&U\]BK4Lrr`2h`E)V'"CA[uo_mqPJ,~>
+b5VbGqXWk&`itb^jF@Am^uG(eg]%80rI>#oJZdr-li."bhXc7#J!e=FrV$6lpPAcu"E/gkg@sn4
+!8$jn"F?0Im/GW:!0?`%"Eo[7kl'?;"8q]7L\-*"MSJ-BrT=-1~>
+aSuPFr:]L7c+%g=jT#EP_;tCjh>[K@qu?jgKXBh<lMgn^2"UbN!d_65qY'phO8T%^-?>3`l29iH
+!8d>J"=8o9kPa$4!$Ce4"@e9\kl'<:"8q_s$1n3#'qsFRr9+*1~>
+aSuPFr:]L7c+&X9j[oYp_;tCjh>[KFr(7*#KXBh<lMgn^DY$I&K!aP6pAY,srCR5oEfe*$r9F:^
+kO_@L=,FNOrR_&L@.Qtn@Z%e]rS7DTr:7^$oL]6eXk`LFkPp&~>
+aSuPFr:]L7c+'6tja[Jq_;tCjh>[KJr."omKXBh<lMgn^R.Gh1LpZ1<pAY-5rI>&rEfe*$r9F:^
+mdu#4I#5GtrR_&LO7Rl)G)EoqrS7DTr:8'aoRI'u[G:?NkPp&~>
+`W$2Aq!d=l]RM<k!!?`Lk5!j5!6b9?"B1,ekPXWF!WJY]!!GEWdI[A4rrN!6r;["$I&#3`rp'La
+rX8B!";?BkiVM1+!$Ce4"@e9\kl'99"8q_Z"7uQr&#@nLr9402~>
+`W$2Aq!d=l]TQXa8csU^k5!j5!8@?C"D3J#kPXWF!WKS"8d&[tdI[A4rrN%%rCR6)I&#3`rp'La
+r_iD]"Aj]SiVM1+!+>Cj"Cd8#kl'99"8q_p9_:p[;QSRBr9402~>
+`W$2Aq!d=l]V(&BJ-2(Tk5!j5!9O-/"E]I1kPXWF!WL:5J-2IloD\Ob!W@uUJ-Bq?UX\r8lMgna
+L@p'"I=e]^qUb`IO7Rl)G)EoqrS.>Sr:7[ToRI'sZJ"gHkl6/~>
+_uBu@qXWe!^OdTl!!E@Ub3Sr]rrAtp!!HSd^?Y[]rrMX&oDf"%N4nHQq#:>dr;[!:E/M0dqs"+]
+r\jEL"9NkHgA';"!$Ce4"@e9\kl'68!rVP*o)Jn2WnHtAl2Q8~>
+_uBu@qXWe!^Q_sd8d%eMb3Sr]rrBk48d&mf^?Y[]rrM^loL]6]NkOZSq#:?+rCR5jE/M0dqs"+]
+rc%L%"+7$#pt,NG@.Qtn@Z%e]rS%8Qr:#pA8d&8!g%,++s*t~>
+_uBu@qXWe!^S6JGJ-2@blhfQ=!7Ujr"ETO9lM]uI!VM9@J-:@^^$,ChrrCCDJ-C=>MR_aEl2Le`
+Re2+4I](opfDbi3o7-seMS&*NgA_6Pn?2A5"GO/7o)7hQJ,~>
+_>ac>qt0+(^ip[\!!Eq.dd[4mrr@iP!!Hnq_sIBerrN(=o)JkpWS."?rr=bO!!P]6S':C$kl1Wp
+oDeu&T$m8_rr=/4!!GcK]BK4HrrW)b4nAXV.^\"(rp'N6~>
+_>ac>qt0+(^lDL\8d&(gdd[4mrrB(s8d'$n_sIBerrN(do1B+(WS."?rr?m68d/OGS':C$kl1XG
+oL]4)T$m8_rr?Hu8d&U\]BK4HrrW)bF7W!,@("e_rp'N6~>
+_>ac>qt0+(^n?DGJ-:J%dd[4mrrBt7J-9tU_sIBerrN),o7-ppWS."?rrAGbJ-C%>S':C$kl1Xg
+oRI$jT$m8_rrA,OJ-:%Q]BK4HrrW)bRe)%4Lpl+3rp'N6~>
+^]+Q<r:T:)]OqT:!!GKkh"La*rr?U-!!IA-aRB,lrrC^C!!FI2a6ij%rrBD(!!NRBKWs>.kPkOB
+oDf"fQHAXqf`(pno)Jn_MS&*Nf`)$LcjfRH"Albjq#9UZJ,~>
+^]+Q<r:T:)]nK8I8d&k6h"La*rrA2Z8d'4"aRB,lrrD$L8d&4]a6ij%rrC1>8d.n*KWs>.kPkOb
+oL]7!QHAXqf`(qZo1B-pMS&*Nf`)$LfMhB6"E_<9q#9UZJ,~>
+^]+Q<r:T:)^70`>J-:\6h"La*rrBA&J-9qXaRB,lrrD9SJ-:@fa6ij%rrCaNJ-CF@KWs>.kPkP%
+oRI'jQHAXqf`(r4o7-seMS&*Nf`)$LhM(QO"HL.Sq#9UZJ,~>
+^&J<9r:K4&Y!D:Q"9O%gkka6;!'pJ_":B7<bjsrs!W5=V!!@;Ji;*6L!'pJ_"Yb%_`U*QdrrBJ!
+!!G0>_!D!Prr=/4!!GcK]BK4GrrW2pN:R#P!e\MXqs494~>
+^&J<9r:K4&Zu>8&"A=Wgkka6;!-eB6"AO!*bjsrs!W7678csOJi;*6L!-eB6"^,r3`U*QdrrC46
+8d&I\_!D!Prr?Hu8d&U\]BK4GrrW2pWq/gc99@0Yqs494~>
+^&J<9r:K4&\<6',"-gXcqV_ART`'BDIWUt$o&p#Rr1NY3",F2?q>1*kT`'BEG'&tfm/?,I!87!p
+"FH0Eli,Q:!0?`%"Eo[7kl'06!rhu0npgh1`p3Hes*t~>
+]Di*7qt&moL_B%S"=g4qo)@VJ!$(q;";#dIdIcW%!WK1l!!G?Sd.726rrC+;!!QVVVqC_BkPkPH
+oDf"<LUQ=Bf`(pno)Jn_MS&*NfDbpOn1+#0"<aVko)7qTJ,~>
+]Di*7qt&moS5eiI"C7hOo)@VJ!+#Oq"Aa63dIcW%!WKt-8d&Upd.726rrC[K8d/jVVqC_BkPkPN
+oL]6eLUQ=Bf`(qZo1B-pMS&*NfDbpOnRqGc"BhYOo)7qTJ,~>
+]Di*7qt&moWeB_h"G3Gto)@VJ!07#."FYKadIcW%!WLO<J-2Cio)ARe!9=!-"`Spgf_5=-rrDZ_
+J-:7T[cRG>rrA,OJ-:%Q]BK4FrrW2jPOj;-Ju@)grTsQ7~>
+\c2j4qXE@Q46uqLHF`,5ir9#Uqu?j<H(`[\k5PJU)Y="4$&H7Wqu$Ho;#L@t*c[.OkPOEA!WEc*
+!!EXZXl'!-rr=/4!!GcK]BK4ErrN%nnc/c%\)R5Ms*t~>
+\c2j4qXE@UD<sjsKXp1?ir9#Vr(7)iH(`[\k5PJV>kCVk:5cdJqu$HoK)J:F;fRc/kPOEA!WH0n
+8d%k=Xl'!-rr?Hu8d&U\]BK4ErrN&0nk'"1\)R5Ms*t~>
+\c2j4qXE@YOmIT#N4J$Gir9#Wr."osH(`[\k5PJWN:_W'IuM&'qu$HoW;V5MH?"nVkPOEA!WIrK
+J-:=OXl'!-rrA,OJ-:%Q]BK4ErrN&Anpgh$\)R5Ms*t~>
+\,QX1pZg7G!q$$k3hb!mro="YfDGUO-%)N@pZDJVrHe&8"&c)MpAP!kg\_$T89pfRo)@eO!WG:T
+!!@8;fCmks!$Ce4"@e9\kl''3!V@E(!!F./bO5>rs*t~>
+\,QX1pZg7g9^YLUA"h?Aro="Yj8;LP<d^^qpZDJVrL`[R")b'ipAP!kk57gT@!S?jo)@eO!WI66
+8cs=6fCmks!+>Cj"Cd8#kl''3!VKdj8d&+`bO5>rs*t~>
+\,QU0pZg8(m=5=jU!iN2j8T,Fr."oqI&,Ehk5PJ\](:FSJuI>qrVllbr."rkH(NCRroX4]rgrb4
+"+6orp=TBFO7Rl)G)EoqrRLoKp5SWn".[R&rU'W8~>
+mJd4QqYpK?rrrE!o&#]Bmf3J"NkOZSj8T+gqu?jNI];)tjo5A:"S;Zs)O/5-rVlfs?i9s.$>bI'
+iVDR7!,D-+"BLu:o)@>B!$Ce4"@e9\kl''3!W@<7!!@#BhtZU=J,~>
+mJd4Wr;Q]ArrrE!o&$BDmn*^YNkOZSj8T,'r(7)oI];)tjo5AB9_:p[<0YAgrVlfsNr;QR9l>]l
+iVDR7!0m+J"DjOPo)@>B!+>Cj"Cd8#kl''3!WAV\8csIHhtZU=J,~>
+mJd4[r;Q]ArrrE!o&$m/mskOjNkOZSj8T,6r."opI];)tjo5AHK(OQrJ!@q=rVlfsYPitTIVsnH
+iVDR7!4;BK"FHT_o)@>B!0?`%"Eo[7kl''3!WBV#J-1V5htZU=J,~>
+n,EUdIh7t8oD6`3"TA)XY8cp1"(nRepZ)8RQi$gd2h8'gqW7_Xr'^,V#B6p)q#CBW"T8<(20G5*
+mJZ,G!0QmR"@/-hmf(o>!$Ce4"@e9\kl'$2!6t'7">H@jnG_kUJ,~>
+n,EUfUfFbioD6`3"TA)X\m"Pp"*U]upZ)8R[JWW">_'!7qW7_Xr-@m+#CNc5q#CB^:&RZf>'6.O
+mJZ,G!3l)f"CdP5mf(o>!+>Cj"Cd8#kl'$2!8@!9"C@VCnG_kUJ,~>
+n,EUh^PKr!oD6`3"TA)X_hmi4"+mQ,pZ)8RbPZknGCZjRqW7_Xr1NY3#DTJ?q#CBcK)L6"FT[rM
+mJZ,G!6Fe_"FH<Nmf(o>!0?`%"Eo[7kl'$2!9<U"".[X*rpKf:~>
+n,EX9!!!tXg$nparri>tm(a\3!!GTUbjk\nrr@0=!!GQ>ZJtcCrrN+qo)JtOSBg[(s)7i9"Ti+_
+WnR1,rrC%1!!F^-]]f=Irr=/4!!GcK]BK4CrrN$5o)JmtL:QFCmf.e~>
+n,EXH8kN@1g$nparri>tm)WK%8d&[mbjk\nrrASe8d&LRZJtcCrrN,4o1B3oSBg[(s-`dW"DNCd
+g@jS,!7g^6"B^Pokl'37!+>Cj"Cd8#kl'$2!W6-m8d%hD\`N_Vs*t~>
+n,EXSJ:NR#g$nparri>tm*1FWJ-::gbjk\nrrBY.J-:%JZJtcCrrN,Fnpgn6cLLo6\,:aZDh+kA
+p>c/QiUhX'I#>T#rRq2NO7Rl)G)EoqrRCiJr/1&q",aYNqsOK7~>
+n,E[i#QOj,[bUTUbl7eBnAQL>!!FL)^?GLUrr?!q!!G`F[cRGJrrMg/oDf("Kt?FDmg/jl"WqcF
+^?GLTrrDKZ!!EsfZJkZ5rr=/4!!GcK]BK4CrrN*rnc/buVUtP0s*t~>
+n,E[k:J+6*[bUTUbl7eBnB>5/8d&1R^?GLUrr@cN8d&RW[cRGJrrMjsoL]<]Lq;aGoMGKY"]TN&
+^?GLTrrDW^8d%tCZJkZ5rr?Hu8d&U\]BK4CrrN+Nnk'")VUtP0s*t~>
+n,E[kKReT;[bUTUbl7eBnBm3bJ-:7Y^?GLUrrB(sJ-:%M[cRGJrrMnPo7."&]&rnaK`-E)H?,%[
+kksK@!;?&8"FYp.iVM7-!0?`%"Eo[7kl'$2!WK"eJ-)V"p?qs2~>
+n,E[m4obQgMSn]VbPq\Bo#)44!!ERZYi,B=rr=kQ!!H5W]'0+RrrN(9o)JnfVUkEiqu?moHD&^X
+ro="ZrYP2,"*g`tpt>ZI+7fI87Z+hArR:cHII[@@3L7bTrpTl;~>
+n,E[mG"PA%Oi-G]bPq\Bo#t/*8d%k?Yi,B=rr?s78d&a_]'0+RrrN(ao1B.$VUkF9r(7-%HD&^X
+ro="Zr`\qd"+-s"pt>ZI@.Qtn@Z%e]rR:cHU@LnZ@$\n&rpTl;~>
+n,EFfT)O6BQG_tbbPq\Bo$W<aJ-:@RYi,B=rrAMcJ-9tN]'0+RrrN)*o7-spVUkFTr."rkHD&^X
+ro="ZrepE!"+I0%pt>ZIO7Rl)G)EoqrR:cH^%-[VI?qtCrpTl;~>
+mf*90rW!'WW7LV?bPq\Bo;Vo`!!@>=f_=J,!"f&."B^VslM]cC!7CB<";d9>i"5he"Uf1&[,Ur@
+rr>O\!!?MtdIc,l!$Ce4"@e9\kl'!1!1iZ\"<!*.kPXfKJ,~>
+mf*9Wr^m<&W7LV?bPq\Bo=Rcf8cs@7f_=J,!*/qh"DEb.lM]cC!8R0<"B1N%j&Q%M"\rrj[,Ur@
+rr@E<8crt%dIc,l!+>Cj"Cd8#kl'!1!4hYm"B12hkPXfKJ,~>
+mf*9trdY-(W7LV?bPq\Bo>lLRJ-11pf_=J,!/UQ'"E]U:lM]cC!9Ng&"FlWQk(rtd"b(BF[,Ur@
+rrAecJ-1.hdIc,l!0?`%"Eo[7kl'!1!6t(b"FZ0=kPXfKJ,~>
+mf*9kr;Zq@]]K"4rrW,hB(>p(@%5O8jo5>LqZ$b0O2C8_j8T/X2"L\KBWl^Z!!P6'QcSUniVrmu
+oDf"]PfW=mgA_-po)Jn_MS&*Ne,KEZnc/dpJ?@](n,In~>
+mf*:,rCR0E]]K"4rrW,hNq,dEDk#,Gjo5>Qqaq!-O2C8_j8T/XDY$I%H*<\78d/CAQcSUniVrnH
+oL]6rPfW=mgA_.\o1B-pMS&*Ne,KEmnk'$XJ?@](n,In~>
+mf*:<rI>!2]]K"4rrW,hXR^lDHCN:Rjo5>Tqg\fkO2C8_j8T/XR.Gh0Ks.cZJ-C(=QcSUniVrnf
+oRI'kPfW=mgA_/6o7-seMS&*Ne,KF'n:1SBhYHX?J,~>
+mf*:Rr;Zs>T$Qp)b5VP@j;%7d"B(K*nG_SM!6b6>"DEt<mf)8H!WJDV!!4j?')_e6!b$VZg@sP*
+!1i`^"=f>Cl2B?9!$Ce4"@e9\kl'!1!5@t'")+CYp$_p2~>
+mf*:WrCR2nT[3-+b5VP@k?.=J"DF%@nG_SM!8@<B"E0ICmf)8H!WKCr8ci=d<r>PmBn35;pYc&O
+\b&Js=c9uXrS%8O@.Qtn@Z%e]rR:cHd.'^1F.q.Wn,In~>
+mf*:ZrI>$%T[3-+b5VP@lA>+_"F-0PnG_SM!9O*."E]gHmf)8H!WL12J,u*nr."ogJ?%>ti;Wf&
+oRI'lMnSBRgA_/6o7-seMS&*Ne,KF)nUL^hU"/i)s*t~>
+mf*=e-N*oI:p]$RrlY6AqM"M@"A"Tjm/H/I!3>ts"ETjNnG_GI!UU-a!!*3jqu?mBEfRp!r8@ST
+an,Q9'83[NqqD&M+7fI87Z+hArR:cH^@;1+<1(o"rp]r<~>
+mf*=eAGo+'EO4NsrlY6AqPNjV"D!S1m/H/I!5n\+"ETjNnG_GI!UrnW8c_Rur(7,lEfRp!r8@ST
+f^qc=:kZ.6qqD&M@.Qtn@Z%e]rR:cHdIBg3C7*68rp]r<~>
+mf*=eP5Tn6LpPt5rlY6AqRuKN"F-!Em/H/I!7gss"ETjNnG_GI!V:s8J,k3!J-C7>NkaiVi;Wf;
+oRI'mKX0V7gA_/6o7-seMS&*Ne,KF)nULagR*>+"nGe"~>
+mJd/pr;Zs)M8niYb5VPBjp1MY"@nEblM]lF!/paT"9N\3bjs`m!W?*k!!!)u!!Q&BT[NH2i;WfJ
+o)Jl;W7q%#rr=/4!!GcK]BK4BrrBe'!!G`P`9mQns*t~>
+mJd0HrCR2dP/cebb5VPBlVI.F"CmD)lM]lF!3Q,j"*BmRo&9TLrJ0u:!)*5^"_)eNde!IrrrD``
+8csI>gA'D%!+>Cj"Cd8#kl'!1!7C=/"CmP3mJcVTJ,~>
+mJd0ir."m9`p3KErrW2fKCjZsGDs9$rT=+[`VY/fFI15BiVrrWWU53>EdFD,oD[\J!;Q/9"+I3&
+ptG`JO7Rl)G)EoqrR:cHhXQ+!H'#u3rp]r<~>
+mJd0Rqu?jKW7CM=b5VM?:\4Vi6]/P?rT=+[B`%i5%<e2eo\ofNrjD.o"Uf1&[,Ur>rrN*CoDeu!
+T$d2arr=/4!!GcK]BK4BrrB(h!!G?@]]oCas*t~>
+mJd0or(7)tW7CM=b5VM?Jb2P;@>__]rT=+[Pl+,V:3N)Qo\ofNrlOS#"\rrj[,Ur>rrN+.oL]4'
+T$d2arr?Hu8d&U\]BK4BrrBt,8d&IY]]oCas*t~>
+mJd1/r."p'W7CM=b5VM?V=]9@GDa&srT=+[[/>FWIWh1,o\ofNrn$Rg"b(BF[,Ur>rrN+\oRI$j
+T$d2arrA,OJ-:%Q]BK4BrrCU>J-:1V]]oCas*t~>
+mJd19qZ$_.]&NP.rrN+foDf"[M7VpLk5PEOqu?j/GFd1Si;WiS)XdY020P>-meu#B!)E.d"@89m
+mf(u@!$Ce4"@e9\kl'!1!1r]\">GS>k5=`KJ,~>
+mJd1Eqaps<]&NP.rrN,-oL]6oM7VpLk5PF/r(7)eGFd1Si;WiS>jk8g>'?7Rmeu#B!.jc7"Cm\:
+mf(u@!+>Cj"Cd8#kl'!1!4q\m"BpPhk5=`KJ,~>
+mJd1Mqg\d.]&NP.rrN,AoRI'hM7VpLk5PFWr."p!GFd1Si;WiSN:29#F`s+mmeu#B!2fC="FHBR
+mf(u@!0?`%"Eo[7kl'!1!711c"F>g3k5=`KJ,~>
+mJd4c&,ZD1$BiR!r6#$>f^o.H7YnY>r9""Z./X&J&p^,!p#,iNrc@N."CH\Zg@sG'!.+8;"=B&>
+kl'99!$Ce4"@e9\kl'!1!.aS>"=f)2j8AEHJ,~>
+mJd4c<;]>k:702kr6#$>iq,hG@YhVZr9""ZB)G7(:jJ\_p#,iNrgN:J"DE=cg@sG'!2/sV"BUMo
+kl'99!+>Cj"Cd8#kl'!1!2T-W"B^>`j8AEHJ,~>
+mJd4cL\lT(SBC6sb5VJ,oRI'fLq;gJk5PFGr."otH(WUZi;WiW\*nhMDh+kApYGiL]_$^WI#GZ$
+rS.>PO7Rl)G)EoqrR:cH_!upXHA&Wbr:'`:~>
+mJd4d9)ASk0<Egurlb<Br<r8u"@e6Zkl'ZD!!N3""<)T\f(S#$!6t!5"Wh]E^?GLNrrAbb!!Ejc
+Z/PQ6rr=/4!!GcK]BK4Brr?U"!!Fa&YMf9Hs*t~>
+mJd4dIeu_?@'&#Qrlb<BrDN;\"Cd5!kl'ZD!)3;_"B'Q?f(S#$!8?p7"]KH%^?GLNrrB_(8d%qB
+Z/PQ6rr?Hu8d&U\]BK4BrrA2O8d&7JYMf9Hs*t~>
+mJd4dV#,ZFKrir!rlb<BrIsop"EoX5kl'ZD!.t-!"FGHhf(S#$!9<R!"aY3L^?GLNrrCC;J-:=R
+Z/PQ6rrA,OJ-:%Q]BK4BrrB@pJ-:1MYMf9Hs*t~>
+m/I':q>^V,]]An3rrN*Ko`,+kMS/0OkPkPBqZ$a<H_f<ghu<`T/b&fE8:$oUoD[SG!5\7,"*CEn
+pY5]J+7fI87Z+hArR:cH3:QtO.=eSYqXFN8~>
+m/I'^qFUj;]]An3rrN+4oh#?uMS/0OkPkPJqapuhH_f<ghu<`TC%4e!@!\HmoD[SG!7UO3"*pcs
+pY5]J@.Qtn@Z%e]rR:cHEUcX(=FdR3qXFN8~>
+m/I(#qLA[.]]An3rrN+`omd0fMS/0OkPkPPqge]n!i4KChu<`TQ19A.EdFA*oD[SG!8mBu"+I-#
+pY5]JO7Rl)G)EoqrR:cHSFM+4H@W0UqXFN8~>
+m/I'qq>^X(N6:MbbPqQ+o`,,"N5"TUkPkOoqZ$a<I&>Tlhu<`VMXg`N#]#1$iVM@0!8d;I"BM&>
+oD[PF!$Ce4"@e9\kl'!1!"AAt"=\l(htljBJ,~>
+m/I(0qFUlcQ-/IkbPqQcoh#@$N5"TUkPkP-qapuhI&>Tlhu<`VX7Ajd9PoNjiVM@0!9`rG"DjUT
+oD[PF!+>Cj"Cd8#kl'!1!)i>Z"B^2WhtljBJ,~>
+m/I(>q1&R;b3]&LrrAY`J-9tQ^?Y[[rrCmPJ-:4HVV1b%rrN,9npgmmDhbUWqV;)Nmdkr3I%8RT
+rnRMRO7Rl)G)EoqrR:cHL@KcsH@W0UqXFN8~>
+m/I(Uq#COAW7LS>bl7Z0o`,,0OMgGakPkOKqZ$a<I&>WmhZ!W5"S2Ts/p*AumJYi?!<2Qi"?DXa
+mf)#A!$Ce4"@e9\kl'$2!71-7">k\4i;2sCJ,~>
+m/I(Xq+:cnWn-e@bl7Zgoh#@*OMgGakPkOiqapuhI&>WmhZ!W=9_1j[=EKhJmJYi?!<2R^"CRD3
+mf)#A!+>Cj"Cd8#kl'$2!8[-:"C$G[i;2sCJ,~>
+m/I([q1&U$Wn-e@bl7[:omd0cOMgGakPkP*qge]o!iF]HhZ!WCK(FKrGBB+imJYi?!<2S?"FQBO
+mf)#A!0?`%"Eo[7kl'$2!9`j%"F,L#i;2sCJ,~>
+m/I+c0)5JM7(D1LrltHC6hUK`$?VQTnG_VN!-%f8"<2`cgA'P)!W>:T!!HDQVqC^trrN*)oDf":
+M7VjIh#@?no)Jn_MS&*NeGfN0n,NSRK!=83nGe"~>
+m/I+cCACI)Cq/EtrltHCH1ji69luZBnG_VN!1E^V"B'WEgA'P)!W@358d&aTVqC^trrN*poL]6e
+M7VjIh#@@[o1B-pMS&*NeGfNQn4EgiK!=83nGe"~>
+m/I+cQMH%6MR_U=rltHCU%X!?IWUjsnG_VN!4_oVs*OmFgA'P)!WAV]J-9h?VqC^trrN+PoRI'l
+M7VjIh#@A6o7-seMS&*NeGfNhn:1XbK!=83nGe"~>
+li-rrp](D-_WL^>rr>:W!!FEgSC$ojrr>ai!!F-dVV:h%rrN+foDf%/E/V?jqqD&M+7oO9#D0,9
+qV;,A!!GcK]BK4Crr>IV!!GoJ[H.8Ts*t~>
+li-sIpdtX=_WL^>rr@698d&+;SC$ojrr@TH8d&%>VV:h%rrN,-oL]9`E/V?jqqD&M@.[%o9S0G)
+qV;,A8d&U\]BK4Crr@B78d&UW[H.8Ts*t~>
+li-sipj`I1_WL^>rrA\bJ-:1BSC$ojrrAqnJH'uuVV:h%rrN,AoRI*mE/V?jqqD&MO7[r*ItFi\
+qV;,AJ-:%Q]BK4CrrAe_J-9tJ[H.8Ts*t~>
+li-sQp](F$KZi`ZcMml#p&G4TI&,Ehk5PE,qZ$a/I&5Kih>[ND#PA'#4F!@?nc%8B!$Ce4")"C[
+p>#]=!!GcK]BK4DrrMEgn,NSrMS&*NnGe"~>
+li-snpdtZ`PKW=icMml^p.>HmI&,Ehk5PEkqapudI&5Kih>[NH:\@<`?$Mj`nc%8B!+>Cj"*:6g
+p>#]=8d&U\]BK4DrrMXan4EgtMS&*NnGe"~>
+li-t.pOE@;bO#,OrrAJ\J-:%CUtGG(rrA5ZJ-:=KV:bOurrMbEomd3fGaltJrn@APO7Rl(IA>Be
+h#Hqq"Eo[7kl''3!VM'6J-9nM]BK4_s*t~>
+li-t3pAb=+RFC['ci3t]p&G4qK!=20kPkPVq>^X*HD9!ah>[NS9_JGi!bHtdh>#\'!%7@<"A,!(
+nc%AEnc/e^MS&*Nec,W-n,NUqEKA$(rp]r<~>
+li-t@pIYQcU!rN/ci3uKp.>I"K!=20kPkPXqFUlbHD9!ah>[NSJ+ZD:C4`VEpt>ZIAb/LsAsgd3
+rn[VF8d&U\]BK4DrrB1j8d.n.O2L>`nGe"~>
+li-tIpOEBuVpk/5ci4!(p4*9cK!=20kPkPZqLA]tHD9!ah>[NSV"K6@Dh>.Jpt>ZIPOj;-I$i+I
+rn[VFJ-:%Q]BK4DrrC%-J-CFBO2L>`nGe"~>
+li."a&,-&,(oGsVrR(WFn+H_b#]Pa9kksWD!71H@"*gHfp"fWKrhfAh"WqcH_<V!Prr>7S!!Fp7
+_!CsUrrCsI!!GcK]BK4ErrN!Bn,NV6FdUDCrp]r<~>
+li."a<;/uf<iamDrR(WFo_(l\9Q5s(kksWD!8[HC"*gHfp"fWKrkA(u"]TN(_<V!Prr@668d&@Y
+_!CsUrrD9R8d&U\]BK4ErrN%-n4Ej`FdUDCrp]r<~>
+li."aL\H<%KW`turR(WFp\'+@IW17ZkksWD!9a0."*gHfp"fWKrm:@h"aY3N_<V!PrrAY^J-:7[
+_!CsUrrDNYJ-:%Q]BK4ErrN(]n:1[gFdUDCrp]r<~>
+li."b6M:B^,d,qprmLfH\+Te*/p<W*nG_VN!2oVm")==Po\BHIo*b9m"\*g3de*Olrr>:T!!Emf
+[,_&?rrCdD!!GcK]BK4ErrA\[!!GT8Ut>>/s*t~>
+li."bGkO`4?Er;XrmLfHbk=X4=E^(TnG_VN!5SD&"*0mXo\BHIohtNV"^lYMde*Olrr@668d%tE
+[,_&?rrD0O8d&U\]BK4ErrB\"8d&IJUt>>/s*t~>
+li."bT_<m=LU>k/rmLfHg\-.$GBT@snG_VN!7Uao"*g<^o\BHIpP&?l"`ep_de*OlrrA\_J-:=T
+[,_&?rrDEVJ-:%Q]BK4ErrCC6J-9tAUt>>/s*t~>
+lMgj0o`,+AZJP9Re,KDhp&G5!J#M)pk5PF+q#CP&Qd#"!h>[NS=SMk""`&k!iVM4,!'g#S")k*k
+pYPoM^[_@-7Z+hArR_&MpE8r*"TrCkZJt`Ls*t~>
+lMgjVoh#?n[bg]Ve,KE<p.>I"J#M)pk5PFRq+:d+Qd#"!h>[NSL\OIF9PoNjiVM4,!-[p*"*g`t
+pYPoMddg!5@Z%e]rR_&Mq-`\a"\WZcZJt`Ls*t~>
+lMgjromd1$\DHoXe,KEYp4*9bJ#M)pk5PFoq1&TmQd#"!h>[NSWq_)JIrC(JiVM4,!2&h4"+R6&
+pYPoMhsu:#G)EoqrR_&MqiL;t"b1HEZJt`Ls*t~>
+lMgjcoDf"@[,:QUeGfLgpAb@8EK%Qmr9""Z8GN5g8Wq*]rnRMRWqZPt.WgopmJY];!&*mC"A,*.
+o)@PH!3>Yj"@e9\kl'-5!-@T/"Y"PW`9dHks*t~>
+lMgk&oL]6n\)6lXeGfMTpIYTeEK%Qmr9""ZI/-A;AWk($rnRMR_>$V+=*0\HmJY];!,M-t"D=4L
+o)@PH!5nA""Cd8#kl'-5!1`LM"]of0`9dHks*t~>
+lMgk7oRI(#]&32[eGfN/pOEEoEK%Qmr9""ZV"oNDH'628rnRMRdeJ=rG]]1imJY];!138,"FZcb
+o)@PH!7gXj"Eo[7kl'-5!4hQK"aG-Q`9dHks*t~>
+lMgkCo)Jn?[,:QUf)G`Rp&G7mH(N@Qroa:^o*G-l">c"NlM]N<!V6]p!!H)GV:P@lrr<l+!!FI+
+_!:mUrr@uJ!!GcK]BK4GrrL"?n,NXo?%/X$p&=F[J,~>
+lMgkKo1B-m\)6lXf)G`ip.>KuH(N@Qroa:^p/(QW"C-o"lM]N<!VK@d8d&XPV:P@lrr?6n8d&1U
+_!:mUrrB1l8d&U\]BK4GrrLVDmn*asI\kWgrpTl;~>
+lMgkQo7-t"]&32[f)Ga%p4*<dH(N@Qroa:^q1SQo"FH*AlM]N<!V_<DJ-9k?V:P@lrrA#KJ-::]
+_!:mUrrC%/J-:%Q]BK4GrrM)1mskR[I\kWgrpTl;~>
+lMgna'Cu2,,cokprR_&L0_YPN+E3.FiVDX9!1W``";Za"jS[g5!WH3t!!N^ILpuIBf`(sCnGi[p
+I^.i-hu<[enc/e^MS&*Ng&D*9)".G.13/Dfk54THJ,~>
+lMgna=7]#e?F&G[rR_&LD"gO*<,dZ%iVDX9!4_er"B'u^jS[g5!WIlN8d.q-LpuIBf`(sFnO`pW
+J[+/0hu<\<nk'$oMS&*Ng&D*@>OP/f=`TP8k54THJ,~>
+lMgnaM=Z6#Lq)=6rR_&LR.l+7H>n\KiVDX9!6t:h"FZ$4jS[g5!WK+qJ-CC@LpuIBf`(sIn:1Uo
+Z/GK9rrB@qJ-:%Q]BK4HrrM_MmskRbEfRfpqsOK7~>
+lMgna9(Drb'qO.Nr7V)MS+cme"(-AGcLCeqrrMj>pAb;9Wn[='rrB(q!!OutQc\^qf`(rdn,NSg
+U"&`6i;Wd2nc/e^MS&*NgA_3:..7-?&o3#peFW\-s*t~>
+lMgnaIe$)6<iXsGr7V)M\G&T"95&XCcLCeqrrMq*pIYO6Wn[='rrBn38d/=>Qc\^qf`(s"n4Eh"
+U"&`6i;Wdnnk'$oMS&*NgA_3AB(&=r:i1`[eFW\-s*t~>
+lMgnaV"0$=KsTS*r7V)Mc1c_mIrBY)cLCeqrrN"[p4*4Eg\BP'!7L^o"a>*Uam]5]rrCsGJ-:@q
+eF`aurrAGWJ-:%Q]BK4IrrM_UmskUiDh+_7oD\1XJ,~>
+l2La,nGi^uJ_0AernRMSh[oM^"Zg^a]&WVKrr@E>!!G][cgq(jrrM^!qZ$atI]1omfDbhhn,NS8
+P/Q_ciVro@nGi\]MS&*Ng]%<;..7-?"^-)9_s%!bs*t~>
+l2LaSnO`s[R+Lg'rnRMSkZ.@L"^H,.]&WVKrrAee8d&arcgq(jrrMdjqaq!%I]1omfDbi=n4Egb
+P/Q_ciVroGnO`pnMS&*Ng]%<BB(&=r9P/O8_s%!bs*t~>
+l2LapnULdpWn6_9rnRMSmtg^g"a"gF]&WVKrrBb+J-:=kcgq(jrrMkJqg\fhI]1omfDbi[n:1Xj
+P/Q_ciVroLnULacMS&*Ng]%<GPja,,IrBRt_s%!bs*t~>
+l2La_mf3Jfc0G*'hZ!WJ0_YPO*cHY/eare'rrKG/p&G4'MSA<Ph#@ES=Sr.&$ZM!7k53g2!V[H"
+!!@,Di;)@3!0cpQ"@e6[kl'<:!RDnW!!`QtFH!Zbp\sR[J,~>
+l2Lb"mn*_0cKb3(hZ!WMD"gO+;f@8deare'rrL59p.>H_N5"NRh#@ESL\saJ:2l*%k53g2!Vosg
+8csIGi;)@3!4),e"Cd5"kl'<:!Sq/O8d8^GN4.U;rpB`9~>
+l2Lb4mskP/cg(<)hZ!WPR.l+8H>eD6eare'rrLf)p4*9qNkX`Th#@ESWr.ANIW11Uk53g2!W.iE
+J-1P2i;)@3!6Ob]"EoX6kl'<:!U#R4J-L%9N4.U;rpB`9~>
+l2Lb6mJmA6WoNaLi;WiL48/^Z%qL$Wa6WWcrrL"GoDf"aWS$qDh#@ASqu?mQG*pGArn.5NL[G-F
+*1G+@rSmhW/F`]C'md=Lqq_8QP76jZ#!?p\XOZn?m/MS~>
+l2LbAmRdUg[c@#Xi;WiOFSAB3:25-Ga6WWcrrLVIoL]7$WS$qDh#@Ajr(7,pG*pGArn.5NWpWI^
+<h.D'rSmhWC%4du;1c7;qq_8QZ;U*_#$c2'XOZn?m/MS~>
+l2LbJmXPFt^Z4tai;WiRSbIX=I;XD%a6WWcrrM)5oRI'sWS$qDh#@B&r."rpG*pGArn.5N_sMsV
+SBUL$ir9"EnULajLUQ:@h>[MtL@0QrFE3,;eai\*s*t~>
+l2Le`$gmuu"_lNTq>TFS!TQ$2!!`j8GE]]"q#9LW!P8d3!!EFP_<CdOrrM^!r;Zt!I]1upf`)!$%
+.+#t8@.1IroF(ZU[J0d%rThaqYoIR!Rj:$!!`QjEJ147mJQ;MJ,~>
+l2Le`;XR-\9oRZkq>TFS!UF[u8dA('GE]]"q#9LW!RF[88d%hE_<CdOrrMdjrCR3'I]1upf`)!1
+;XI'ZD6r*nroF(Z^@+Yt;2EZhqYoIR!T81h8d8UAKVm&^r9OB5~>
+l2Le`L$jHpJu.)eq>TFS!V)WQJ-UOAGE]]"q#9LW!SrM$J-1tNkkj08!V_<HJ-9k@W7q!urrMA=
+m=5=qZekHUjSo5-mskRmSC6m&ro*kXl(@?n#'=j<VU"T,li2J~>
+l2Le`1@+uE+IqNbr;PjY!NQq/!!`j8G)iuco`"(S!KRBR!!En#dI@(irrN*mrW!*0E/M6hr7V)N
+k:#Wr"BiV(q>TOV!TOm]!!XBfeFNG6roX4^dU*.F!!`^'EeUC6lMBfGJ,~>
+l2Le`D<sju?E`G^r;PjY!Q8+78dA('G)iuco`"(S!O,;g8d&%`dI@(irrN+Lr^m>hE/M6hr7V)N
+mUkcW"F@rIq>TOV!UEkT8d8Ifg%+t;roX4^hi1=t8dA%!EeUC6lMBfGJ,~>
+l2Le`R-]>,MnJ-Cr;PjY!S*)%J-UOAG)iuco`"(S!QTf^J-:FudI@(irrN+prdY0$E/M6hr7V)N
+o9AQk"HgR`q>TOV!V)'7J-Lk8hX^L@roX4^kc]U+J-UREEeUC6lMBfGJ,~>
+kl1Wpl2UuP\*<Varp'LacU[[/#7Og[Nj@=.r9=4^gHY*+";?sNnbh5C!1s/i"YY%db4,DarrL.[
+kl:iY_WU^nkl1\H.-^d<"$1nHoD&7_rpB^entJA8!!jBKG)E<FlM:GEs*t~>
+kl1XGl:M5#_Wgdlrp'LagjJff#>SoTNj@=.r9=4^k'-5c"B;&Hnbh5C!4i)$"^#r8b4,DarrL_X
+kt2)#`TR$qkl1\OB'Mto9Q6ZMoD&7_rpB^ep:Y\:8dJ:.G)E<FlM:GEs*t~>
+kl1Xgl@9&)bN\`urp'LakG.a$#C^T7Nj@=.r9=4^m@Wfs"G<`,nbh5C!6tLn"a>-Wb4,DarrM/?
+l$ro"`om-rkl1\TPj3c)JXEt"oD&7_rpB^eps>Z"J-^L@G)E<FlM:GEs*t~>
+kl1XCkl:ni6)s5Dr;Q-a!Obes!!aBOG`T2_nbh\P!p=J-li71mAC'Z=rnm_]mfWUj<dq"$pY5]L
+k@Xq\!!O@#iUZmFli."#*9@/,%R"Wo_WLXjr;HWoqu?]q"R`jU6O<#Y#mNM1I?UtcmJ?hHs*t~>
+kl1Xckt2.RFM$i3r;Q-a!R-/g8dA7/G`T2_nbh\P!q)IQlq.FTL=5Jbrnm_]nk;YJB7?f5pY5]L
+mZUB.8d/CmiUZmFli."5?KFcc;fn80d-LK(r;HWoqu?]q"S0j;Gu*d!#u"WDI?UtcmJ?hHs*t~>
+kl1Y&l$rthRE4[er;Q-a!SaOFJ-UF>G`T2_nbh\P!qWmSm!o7jT[W<(rnm_]on%^EFFL1BpY5]L
+o<X&3J-Cb8iUZmFli."CNobctL7>Kgh!Xt7r;HWoqu?]q"SUWfTnMc_$%I&:I?UtcmJ?hHs*t~>
+kl1Xrjo>W0FLgr:r;Q]hrr_\pCE)pH#Qcc!I$D(mnbhbR"8fZ2#j;6m&p2Ojq#13Ors8Qg!"4".
+\`WhHrr`,/>6s6h"sSWKo(i7`nG`O+:Yc!S%OaPFC4#l+")V4&([1o+"#"51LnVT=nGDDKJ,~>
+kl1Y/k"5kcR)ngmr;Q]hrr_l6Q<j,T#?l%nPd]98r9XFcr6C*pkXl%ZQ.PO#rVkgV#lSs>:O%c-
+k5=*9"8pH%:ub.P@%Z0Dq>L<^rrLW$h+@lNAp0#qTV;=Y"."da>3SWc93H(ULnVT=nGDDKJ,~>
+kl1Y=k(!\rZIJF>r;Q]hrr_uI[>jg/#Bk'6Pd]98r9XFcrS4H,k^WklY1rI@rVkgV#lU?FJU*-`
+k5=*9"8prVK]@ReN4%R6q>L<^rrM&Uh1,Z`P+AVY]DT;D[B,mVl$s(iGB%k`TtfCPqre!0~>
+kl1YIirBT%89UT9f\5'6gXEg.JlXAl!!j??FG-7#hX^U5rri>TSmN2l!!`TaHEuT*qY^?lkl1qf
+P5mXuR*"grj8T;^o"KuW&DdBn"#k>)j7iEKrr2fps8E,WVIpjV!"&obApB'![*Ih,r9"$0~>
+kl1YOj%9MUHCVIgi8agt"lIY<VMAjU8dJ:+FG-7#hX^U5rri>^\rBhP8dA%-S]'adqY^?lkl1qf
+Z:\ebR*"grj8T;^p!Bdl<Sg=S9Q$98kkFrPrr2fps8E,`^lr'48d\6qCj:]'[*Ih,r9"$0~>
+kl1YSj+%YqTXW(rkj%I!lfd-M^oE[jJ-^OCFG-7#hX^U5rri>fcEE,cJ-UXk[aOL9qY^?lkl1qf
+a+/u#R*"grj8T;^ptireLu*XgJX<ajlhC8Srr2fps8E,gd^+qAJ-pdMEd3>-[*Ih,r9"$0~>
+kl1\_'E.t9!uWR>/0Y_S!!s!!E.*kMb2i9pnc&]PB0Hj[!!j;u<c39EpA=jSrs%?\HC(Yap>u;V
+mrM8Le,Tms7VT7#q#15rG?-I0[/^U:*Ck$qLmt]mi:-UBjo9i~>
+kl1\_=8ker92\kq>?=\L8dS4!EIEtNb2i9pnc&]qPBKs[8dJO<KpJCqpA=jSrs%XYOI*!"p>u;V
+oULMBe4L-THBZA>q#164Sqh/^Zq:^)@WHjPS$L2pnG<.Gs*t~>
+kl1\_M>i#0IsZKhI"$RmJ-g[HEda(Ob2i9pnc&^3Z_!!,J-_""W3j2&pA=jSrs%k@TU2\2p>u;V
+pUR2ae:7sdTX!#;q#16E];h6R["&O2F`VqdS$L2pnG<.Gs*t~>
+kPl&N""mAeHA%6?P`gl>9IUD&!"'6$DL7;9^=_iKrp]pf+OU5l[G:3HlMh(e5JXG;jSS'=!8l'%
+"_?*EpASF+!"BDf88EO)P+oD.hsU:<j8XW~>
+kPl'39O_aWHA%6?P`guRDHoui8d\="E-mM;^=_iKrp]pf@+%XL^>//QlMh(eG/CDtjSS'=!9h^#
+"c:^jpAU)Z8e"Nt@rZgJP+oD.hsU:<j8XW~>
+kPl$\JV\_rHA%6?P`h)bL4Rs,$@R&;H]+W4f^8M6nG`KMdXVG=h!Y%(rs&Fn`3-o:qrRhXn'6Fe
+UsnK"ri`\Z%=WVHG'\h)U:/8&meHb@s*t~>
+kPl74`3,;fU9VGOaMu*/ZDX4D>s'#.huF,g-W"o6NM3o0k4JT>rsjj*?rBa(=BT-B?tX@rEURrJ
+@fKg9?2dY.:..N?3&ipe]\W;\li.1go\7O?n,DGK''ag]>Ydpc<Dub#?=$uKDJsN7mrBIe@UWYO
+>#8$k7R9@(1cB-Rd-gk$=CG3<?>=:jFEI+ps'cCE>#8$b5W^SL*Z>Lni;aGn'I>e:C4(VkQ(kS%
+eDp&nrSdd,~>
+kPl7DbH@%mU9VGOaMu*/ZDX4MG@jiKi(=AN<b6B%NM3o0k4JT>rsbupKm7W^FE2PGEclVPmWo"Y
+FE;JBrG2gSC2@KoB:limpAXCX#6+8Lb1H+]jo5YVTTaqKDJjH4D>eGUF*MutH6IQUFE;JACi!m#
+AnP^cA:h&4mesVLLO+ApIsucpI=-Bgp3I3kFE;D;CM.0e>[(6.:efn@&PQ&'?YFJ-Jr>ngZGY2P
+nG)t@s*t~>
+kPl1Nd&rRrU9VGOaMu*/ZDX4TM1j`9$\*GDFFK4C\^9L2r9jRp_QohtN/NLGK7SQ&It3+;K):'+
+JqSi4L5:\^]\W;\li.1go\7O?n,DGK$hV'6S<&M^KnFr,If4`tJ:W:<K)C-7It3*%K7nuCYgDh:
+bc%;%P)bQ]M2$]RK):&uJ,OirJ)PniIslZiG^+UfMj:$B_pm`9q#01OJ,~>
+kPlCqkfgcZeDTTZn*]Q+inDbu\ZVZjE)//'k5Yr'/PpG7LR"dMdH'lprpB^rqW5\tTq7jJTq\B\
+W2cr$n?*G,XJr+pVPKrZTV%gIT:i'nh"C[3rri2dk3Vm(rt>>)hS#hZSXc7CTVA6ZVPpMrXm`D#
+XfSS%Vl$>eU7e-LrgX7dYg;b9r9MS1rh9RlV5C2lXnAh;XfSM"VPKoXS=5e0P)tZ\I<B=7?VsWm
+5X.Fh/hZiL'fnHM<FKiqJqo;KR\[.!aOT89o_SREs*t~>
+kPlCqkfgcZeDTTZn*]Q+inDbu\ZVZlJT"ppk=Q1Z=_;c'LR"dMdH'lprpB^rqW5\tTq7jJTq\B\
+W2cr$n?*G,XJr+pVPKrZTV%gIT:i'nh"C[3rri2dk3Vm(rt>>)hS#hZSXc7CTVA6ZVPpMrXm`D#
+XfSS%Vl$>eU7e-LrgX7dYg;b9r9MS1rh9RlV5C2lXnAh;XfSM"VPKoXS=5e0P)tZ\K78)gF)>`-
+ARo:X>[6u,'jtK`CN+NIJqo;KR\[.!aOT89o_SREs*t~>
+kPl@pkfgcZeDTTZn*]Q+inDbu\ZVZnN/*#IJ.6pPG'/1fQ)D:BjRW0HmJd^nji+<pSt;RJU8=`c
+WiW>lXqRq=WMcVjUnXNTT:VXHTVf?Vp&=7V"T%QKm.fZA')qU]]r.KnS=Q:FU84Z`W2cr$n#d&#
+XK/:tVP^/`TV%eSS-YakcgLc0lccR3U'7?hVPpPtor]17XJr+pUnOENR[9;&OH#-QKnP&/JUi6#
+J,OiiIK+]pHiJI(IY*?6PFA;N]?&O]m.C/RhuA3~>
+kPkecp?_#0o_SLarY#2,q"*q9hUTfb[&KXYEDekD%J'Q3!tun?:i(N2N0gEMa4TSGqYog\%fGkT
+eBlRie(*%%g=tE>mb\W4gtLK8f[eU&da6=cbK\]*qW\"_rqcEdrT!nhqX31fcd:%eeCE.&g"P39
+hX02AhV?l>g=b-0eC;pncHOJ[jRrNNoA\6Ed*pOtg"bETh]:P.g=b-0eC)[eb/V<5]XY>QY,\Cq
+U7\!GR@';*p662UR%'bEWj&tH`m<8okjS3@rVkXQJ,~>
+kPkecp?_#0o_SLarY#2,q"*q9hUTfb[&KX[J8f%%:\.0j92JYqBQJQQN0gEMa4TSGqYog\%fGkT
+eBlRie(*%%g=tE>mb\W4gtLK8f[eU&da6=cbK\]*qW\"_rqcEdrT!nhqX31fcd:%eeCE.&g"P39
+hX02AhV?l>g=b-0eC;pncHOJ[jRrNNoA\6Ed*pOtg"bETh]:P.g=b-0eC)[eb/V<5]XY>QY,\Cq
+U7\!GR@';*p662UR%'bEWj&tH`m<8okjS3@rVkXQJ,~>
+kPkecp?_#0o_SLarXf&*q"*q9hUTfb[&KX]MhZlRJ.R-UH?a[^JrH%n[`@%`o(r@Orsntsi7--#
+dF6Xsf\5*8hX985h;$`<g"=m+eC)^icHFJblh]lG"TJ8mqYfIS&GkhNda-:edaZguf\,!5gtqGU
+*o>],g=k64f$r3td*BkYdcC*#rU]$tcHt%jf\,'9oA:SEgtLH6f$r-obf[rB^V%(`Ycb"(UnXKP
+S!fY0Q1gFTQC+/7UoLZ.^;eLNhrsP%qYgELs*t~>
+k5PS_r;?Nmp\ts,r;--VlJpXIaM,![TU1[bAm%u-r([l1AT<3OL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+k5PS_r;?Nmp\ts,r;--VlJpXIaM,![TU1^lG]@S9r+Zj_Ed3(cL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+k5PS_r;?Nmp\u!-r;--VlJpXIaM,![TU1atL4b&-J,OiqI1LgZL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+%%EndData
+showpage
+%%Trailer
+end
+%%EOF
diff --git a/templates/Danish-logo.png b/templates/Danish-logo.png
new file mode 100755
index 00000000..5edcdfe5
--- /dev/null
+++ b/templates/Danish-logo.png
Binary files differ
diff --git a/templates/Danish-packing_list.html b/templates/Danish-packing_list.html
new file mode 100755
index 00000000..76e02b45
--- /dev/null
+++ b/templates/Danish-packing_list.html
@@ -0,0 +1,145 @@
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr>
+ <td width=10>
+ </td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th colspan=2>
+ <h4 align=center>F Ø L G E S E D D E L</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Dato</th><td width=10> </td><td><%invdate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Nummer</th><td></td><td><%invnumber%></td></tr>
+ </tr>
+
+ <tr>
+ <td>
+ </td>
+ </tr>
+ </td>
+ </table>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Leveringsadresse:</th>
+ </tr>
+
+ <tr>
+ <td><%shiptoname%>
+ <br><%shiptoaddr1%>
+ <br><%shiptoaddr2%>
+ <br><%shiptoaddr3%>
+ <br><%shiptoaddr4%>
+<%if shiptocontact%>
+ <p>Att.: <%shiptocontact%>
+<%end shiptocontact%>
+
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Varenummer</th>
+ <th align=left><font color=ffffff>Beskrivelse</th>
+ <th><font color=ffffff>Antal</th>
+ <th>&nbsp;</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>Bemærkninger</td>
+ <td><pre><%notes%></pre></td>
+<%end notes%>
+ <td align=right>
+ <%shippingpoint%>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><font size=-3>
+ Returnerede varer modregnes 10% i ekspeditionsgebyr.
+ Et returnummer skal tildeles af <%company%> før varer returneres.
+ Returvarer skal forsendes forudbetalt og forsvarligt forsikret.
+ <%company%> kan ikke drages til ansvar for skade under transport.
+ </font>
+ </td>
+ <td width=150>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
diff --git a/templates/Danish-packing_list.tex b/templates/Danish-packing_list.tex
new file mode 100755
index 00000000..de8cc36a
--- /dev/null
+++ b/templates/Danish-packing_list.tex
@@ -0,0 +1,123 @@
+\documentclass[a4paper,twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage[danish]{babel}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rr@{}}
+ Tlf. & <%tel%>\\
+ Fax & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%invnumber%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+<%pagebreak 65 27 37%>
+\end{tabular*}
+
+\newpage
+
+\markright{<%company%>\hfill <%invnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rll@{}}
+ \textbf{Nummer} & \textbf{Beskrivelse} & \textbf{Antal} &
+ \textbf{Enhed} & \textbf{Varelager} \\
+<%end pagebreak%>
+
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{2cm}
+
+<%shiptoname%>
+
+<%shiptoaddr1%>
+
+<%shiptoaddr2%>
+
+<%shiptoaddr3%>
+
+<%shiptoaddr4%>
+
+\vspace{3.5cm}
+
+\textbf{F Ø L G E S E D D E L}
+
+\hfill
+\begin{tabular}[t]{l@{\hspace{0.3cm}}l}
+ \textbf{Dato} & <%invdate%> \\
+ \textbf{Nummer} & <%invnumber%> \\
+ \textbf{Kunde} & <%customer_id%>
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rll@{}}
+ \textbf{Nummer} & \textbf{Beskrivelse} & \textbf{Antal} &
+ \textbf{Enhed} & \textbf{Varelager} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+\vfill
+\centerline{\textbf{Tak for ordren!}}
+
+\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+\footnotetext[1]{\tiny
+Returnerede varer modregnes 10\% i ekspeditionsgebyr.
+Et returnummer skal tildeles af <%company%> før varer returneres.
+Returvarer skal forsendes forudbetalt og forsvarligt forsikret.
+<%company%> kan ikke drages til ansvar for skade under transport.}
+
+\end{document}
diff --git a/templates/Danish-pick_list.html b/templates/Danish-pick_list.html
new file mode 100755
index 00000000..da8a3bdf
--- /dev/null
+++ b/templates/Danish-pick_list.html
@@ -0,0 +1,153 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>P I C K &nbsp;&nbsp; L I S T</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th width=50% align=left><font color=ffffff>Ship To:</th>
+ <th width=50%>&nbsp;</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ </td>
+
+ <td>
+ <%if shiptocontact%>
+ <br>Attn: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=15% align=left>Invoice #</th>
+ <th width=15% align=left>Order #</th>
+ <th width=10% align=left>Date</th>
+ <th width=15% align=left nowrap>Contact</th>
+ <th width=15% align=left>Warehouse</th>
+ <th width=10% align=left>Shipping Point</th>
+ <th width=10% align=left>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%invnumber%>&nbsp;</td>
+ <td><%ordnumber%>&nbsp;</td>
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%transdate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+ <td><%warehouse%>&nbsp;</td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Pos</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qty</th>
+ <th><font color=ffffff>Ship</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Bin</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td align=right>[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</td>
+ <td><%unit%></td>
+ <td align=right><%bin%></td>
+ </tr>
+ <%end number%>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+</table>
+
diff --git a/templates/Danish-pick_list.tex b/templates/Danish-pick_list.tex
new file mode 100755
index 00000000..04953ce8
--- /dev/null
+++ b/templates/Danish-pick_list.tex
@@ -0,0 +1,144 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}rlXrcll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} &
+ \textbf{Qty} & \textbf{Ship} & & \textbf{Bin} \\
+
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.5\textwidth}{
+ \textbf{Ship To}
+} \hfill
+
+\vspace{0.7cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.5\textwidth}{
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+}
+\parbox[t]{.4\textwidth}{
+ <%shiptocontact%>
+
+ <%if shiptophone%>
+ Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{P I C K} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{7}{|X}|} \hline
+ \textbf{Invoice \#} & \textbf{Order \#} & \textbf{Date} & \textbf{Contact}
+ & \textbf{Warehouse} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+ <%invnumber%> & <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%transdate%>
+ <%end shippingdate%>
+ & <%employee%>
+ <%if warehouse%>
+ & <%warehouse%>
+ <%end warehouse%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrcll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} &
+ \textbf{Qty} & \textbf{Ship} & & \textbf{Bin} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> &
+ <%qty%> & [\hspace{1cm}] & <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+}
+
+\end{document}
+
diff --git a/templates/Danish-pos_invoice.txt b/templates/Danish-pos_invoice.txt
new file mode 100755
index 00000000..fecd1557
--- /dev/null
+++ b/templates/Danish-pos_invoice.txt
@@ -0,0 +1,50 @@
+<%company align=center width=40%>
+<%address align=center width=40%>
+
+Till: <%till align=left width=3%> Phone#: <%tel%>
+Cashier: <%employee%>
+Inv No/Date: <%invnumber%> / <%invdate%>
+Printed: <%dateprinted%>
+
+ Qty Description Amount
+<%foreach number%>
+<%qty align=right width=5%> <%description align=left width=24 offset=6%> <%linetotal align=right width=9%>
+ <%number%> @ <%sellprice%>/<%unit%>
+<%end number%>
+
+Number of items: <%rowcount%>
+<%if taxincluded%>
+ ---------------
+ Amount Due: <%invtotal align=right width=9%>
+<%end taxincluded%>
+<%if not taxincluded%>
+ ------------
+ Subtotal: <%subtotal align=right width=9%>
+<%end taxincluded%>
+<%foreach tax%>
+<%taxdescription align=right width=23%> @ <%taxrate align=right width=2%>%: <%tax align=right width=9%>
+<%end tax%>
+ Amount Due: <%invtotal align=right width=9%>
+<%foreach payment%>
+<%paymentaccount align=right width=29%>: <%payment align=right width=9%> <%currency%>
+<%end payment%>
+<%if change%>
+ Change: <%change align=right width=9%>
+<%end change%>
+<%if total%>
+ Balance Due: <%total align=right width=9%>
+<%end total%>
+<%if discount%>
+
+<%discount%> % Discount applied
+<%end discount%>
+
+ Thank you for your valued business!
+
+<%if taxincluded%>
+Taxes are included in price.
+<%end taxincluded%>
+
+
+
+
diff --git a/templates/Danish-purchase_order.html b/templates/Danish-purchase_order.html
new file mode 100755
index 00000000..64802b7d
--- /dev/null
+++ b/templates/Danish-purchase_order.html
@@ -0,0 +1,195 @@
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <td align=right>
+ <h4>
+ Tlf.: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>I N D K Ø B S O R D R E</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Ordredato</th><td width=10>&nbsp;</td><td><%orddate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Ønsket leveringsdato</th><td width=10>&nbsp;</td><td><%reqdate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Ordrenummer</th><td>&nbsp;</td><td><%ordnumber%></td></tr>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+ </td>
+ </table>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Til:</th>
+ </tr>
+
+ <tr>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+<br><%address2%>
+<%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+<%country%>
+<%end country%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+<!-- <th align=right><font color=ffffff>No.</th> -->
+ <th align=left><font color=ffffff>Varenummer</th>
+ <th align=left><font color=ffffff>Beskrivelse</th>
+ <th><font color=ffffff>Antal</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Pris</th>
+ <th><font color=ffffff>Beløb</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+<!-- <td align=right><%runningnumber%>.</td>
+adjust the colspan if you include this to shift subtotal one to the right
+-->
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=6><hr noshade></td>
+ </tr>
+
+ <tr>
+ <th colspan=4 align=right>Subtotal</th>
+ <td colspan=2 align=right><%subtotal%></td>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=4 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+<%end tax%>
+
+ <tr>
+ <td colspan=2>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=2>Betalingsfrist <b><%terms%></b> dage</td>
+ <th colspan=2 align=right>Total</th>
+ <th colspan=2 align=right><%total%></th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>Bemærkninger</td>
+ <td><pre><%notes%></pre></td>
+<%end notes%>
+ <td align=right>
+ Alle priser i <b><%currency%></b>
+ <br><%shippingpoint%>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><font size=-3>
+ Betalingsfrist <%terms%> dage fra fakturadato. Betaling herefter påregnes
+ 1.5% per påbegyndt måned startende <%duedate%> og indtil det fulde beløb
+ er betalt. Returnerede varer modregnes 10% i ekspeditionsgebyr.
+ Et returnummer skal tildeles af <%company%> før varer returneres.
+ Returvarer skal forsendes forudbetalt og forsvarligt forsikret.
+ <%company%> kan ikke drages til ansvar for skade under transport.
+ </font>
+ </td>
+ <td width=150>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
diff --git a/templates/Danish-purchase_order.tex b/templates/Danish-purchase_order.tex
new file mode 100755
index 00000000..59e28715
--- /dev/null
+++ b/templates/Danish-purchase_order.tex
@@ -0,0 +1,147 @@
+\documentclass[a4paper,twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage[danish]{babel}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rr@{}}
+ Tlf. & <%tel%>\\
+ Fax & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%ordnumber%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+<%pagebreak 65 27 37%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markright{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrr@{}}
+ \textbf{Nummer} & \textbf{Beskrivelse} & \textbf{Antal} &
+ \textbf{Enhed} & \textbf{Pris} & \textbf{Beløb} \\
+ & carried forward from <%lastpage%> & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{2cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{3.5cm}
+
+\textbf{I N D K Ø B S O R D R E}
+\hfill
+\begin{tabular}[t]{l@{\hspace{0.3cm}}l}
+ \textbf{Dato} & <%orddate%> \\
+<%if reqdate%>
+ \textbf{Ønsket leveringsdato} & <%reqdate%> \\
+<%end reqdate%>
+ \textbf{Ordrenummer} & <%ordnumber%>
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrr@{}}
+ \textbf{Varenummer} & \textbf{Beskrivelse} & \textbf{Antal} &
+ \textbf{Enhed} & \textbf{Pris} & \textbf{Beløb} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%subtotal%>} \\
+<%foreach tax%>
+ <%taxdescription%> on <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ \textbf{Total} & \textbf{<%ordtotal%>}\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ Alle priser i \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+
+%\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+%\footnotetext[1]{\tiny }
+
+\end{document}
diff --git a/templates/Danish-receipt.tex b/templates/Danish-receipt.tex
new file mode 100755
index 00000000..6742b5b5
--- /dev/null
+++ b/templates/Danish-receipt.tex
@@ -0,0 +1,75 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.4cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.0cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+
+\fontfamily{cmss}\fontsize{9pt}{9pt}\selectfont
+
+\parbox[t]{12cm}{
+ <%company%>
+
+ <%address%>}
+\hfill
+\parbox[t]{6cm}{\hfill <%source%>}
+
+\vspace*{0.6cm}
+
+<%text_amount%> \dotfill <%decimal%>/100 \makebox[0.5cm]{\hfill}
+
+\vspace{0.5cm}
+
+\hfill <%datepaid%> \makebox[2cm]{\hfill} <%amount%>
+
+\vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{2.8cm}
+
+<%company%>
+
+\vspace{0.5cm}
+
+<%name%> \hfill <%datepaid%> \hfill <%source%>
+
+\vspace{0.5cm}
+\begin{tabularx}{\textwidth}{lXrr@{}}
+\textbf{Invoice No.} & \textbf{Invoice Date}
+ & \textbf{Due} & \textbf{Applied} \\
+<%foreach invnumber%>
+<%invnumber%> & <%invdate%> \dotfill
+ & <%due%> & <%paid%> \\
+<%end invnumber%>
+\end{tabularx}
+
+\vfill
+
+\end{document}
+
diff --git a/templates/Danish-request_quotation.html b/templates/Danish-request_quotation.html
new file mode 100755
index 00000000..fa684866
--- /dev/null
+++ b/templates/Danish-request_quotation.html
@@ -0,0 +1,202 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <td><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58>
+ </td>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>R E Q U E S T &nbsp;&nbsp; F O R &nbsp;&nbsp; Q U O T A T I O N</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>To:</th>
+ <th align=left width=50%><font color=ffffff>Ship To:</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+<br>
+<%if contact%>
+<br>Attn: <%contact%>
+<%end contact%>
+<%if vendorphone%>
+<br>Tel: <%vendorphone%>
+<%end vendorphone%>
+<%if vendorfax%>
+<br>Fax: <%vendorfax%>
+<%end vendorfax%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddr2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+<br>
+<%if shiptocontact%>
+<br>Attn: <%shiptocontact%>
+<%end shiptocontact%>
+<%if shiptophone%>
+<br>Tel: <%shiptophone%>
+<%end shiptophone%>
+<%if shiptofax%>
+<br>Fax: <%shiptofax%>
+<%end shiptofax%>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr><td>&nbsp;</td></tr>
+
+ <tr>
+ <td colspan=2>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left>RFQ #</th>
+ <th width=17% align=left>Date</th>
+ <th width=17% align=left>Required by</th>
+ <th width=17% align=left>Contact</th>
+ <th width=17% align=left>Shipping Point</th>
+ <th width=15% align=left>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%quonumber%></td>
+ <td><%quodate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height="10"></tr>
+
+ <tr>
+ <td>Please provide price and delivery time for the following items:</td>
+ </tr>
+
+ <tr height="10"></tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+<!-- <th align=right>No.</th> -->
+ <th align=left>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th>Qt'y</th>
+ <th>&nbsp;</th>
+ <th>Delivery</th>
+ <th>Unit Price</th>
+ <th>Extended</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+<!-- <td align=right><%runningnumber%>.</td>
+other per line item variables available <%reqdate%>
+adjust the colspan if you include this to shift subtotal one to the right
+-->
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=7><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+<%if notes%>
+ <tr valign=top>
+ <td>Notes</td>
+ <td><%notes%></td>
+ </tr>
+<%end notes%>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=70%>&nbsp;</td>
+
+ <td width=30%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Danish-request_quotation.tex b/templates/Danish-request_quotation.tex
new file mode 100755
index 00000000..49f1abe7
--- /dev/null
+++ b/templates/Danish-request_quotation.tex
@@ -0,0 +1,175 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Extended} \\
+ & carried forward from <%lastpage%> & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.45\textwidth}{
+\textbf{To}
+\vspace{0.7cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if vendorphone%>
+Tel: <%vendorphone%>
+<%end vendorphone%>
+
+<%if vendorfax%>
+Fax: <%vendorfax%>
+<%end vendorfax%>
+
+<%email%>
+}
+\parbox[t]{.45\textwidth}{
+\textbf{Ship To}
+\vspace{0.7cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{R E Q U E S T for Q U O T A T I O N}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{RFQ \#} & \textbf{Date} & \textbf{Required by} & \textbf{Contact} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5ex]
+ \hline
+ <%quonumber%> & <%quodate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+Please provide price and delivery time for the following items:
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}lXrllrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} & &
+ \textbf{Delivery} & \textbf{Unit Price} & \textbf{Extended} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> & <%unit%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\hfill
+
+<%notes%>
+
+}
+
+\end{document}
+
diff --git a/templates/Danish-sales_order.html b/templates/Danish-sales_order.html
new file mode 100755
index 00000000..8242f371
--- /dev/null
+++ b/templates/Danish-sales_order.html
@@ -0,0 +1,218 @@
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <td align=right>
+ <h4>
+ Tlf.: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>S A L G S O R D R E</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Ordredato</th><td width=10>&nbsp;</td><td><%orddate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Ønsket leveringsdato</th><td width=10>&nbsp;</td><td><%reqdate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Ordrenummer</th><td>&nbsp;</td><td><%ordnumber%></td></tr>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+ </td>
+ </table>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Til:</th>
+ <th align=left><font color=ffffff>Leveringsadresse:</th>
+ </tr>
+
+ <tr>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+<br><%address2%>
+<%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+<%country%>
+<%end country%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+<br><%shiptoaddress2%>
+<%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+<%shiptocountry%>
+<%end shiptocountry%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+<!-- <th align=right><font color=ffffff>No.</th> -->
+ <th align=left><font color=ffffff>Varenummer</th>
+ <th align=left><font color=ffffff>Beskrivelse</th>
+ <th><font color=ffffff>Antal</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Pris</th>
+ <th><font color=ffffff>Rabat</th>
+ <th><font color=ffffff>Beløb</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+<!-- <td align=right><%runningnumber%>.</td>
+adjust the colspan if you include this to shift subtotal one to the right
+-->
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discount%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=7><hr noshade></td>
+ </tr>
+
+ <tr>
+<%if taxincluded%>
+ <th colspan=5 align=right>Total</th>
+ <td colspan=2 align=right><%ordtotal%></td>
+<%end taxincluded%>
+
+<%if not taxincluded%>
+ <th colspan=5 align=right>Subtotal</th>
+ <td colspan=2 align=right><%subtotal%></td>
+<%end taxincluded%>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=5 align=right><%taxdescription%> på <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+<%end tax%>
+
+ <tr>
+ <td colspan=2>&nbsp;</td>
+ <td colspan=5><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=3>Betalingsfrist netto <b><%terms%></b> dage</td>
+ <th colspan=2 align=right>Total</th>
+ <th colspan=2 align=right><%ordtotal%></th>
+ </tr>
+<%if taxincluded%>
+ <tr>
+ <td colspan=3>Total er inklusive moms</td>
+ </tr>
+<%end taxincluded%>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>Bemærkninger</td>
+ <td><pre><%notes%></pre></td>
+<%end notes%>
+ <td align=right>
+ Alle priser i <b><%currency%></b>
+ <br><%shippingpoint%>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><font size=-3>
+ Et gebyr for annullering af ordre på 10% vil blive tillagt alle specialtilbud
+ og produkter som er blevet tilpasset, forbedret eller opgraderet på kundens anmodning.<br>
+ Varer som ikke kan returneres er anført ovenfor.
+ </font>
+ </td>
+ <td width=150>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
diff --git a/templates/Danish-sales_order.tex b/templates/Danish-sales_order.tex
new file mode 100755
index 00000000..9f4b9814
--- /dev/null
+++ b/templates/Danish-sales_order.tex
@@ -0,0 +1,151 @@
+\documentclass[a4paper,twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage[danish]{babel}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rr@{}}
+ Tlf. & <%tel%>\\
+ Fax & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%ordnumber%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+<%pagebreak 65 27 48%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markright{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Nummer} & \textbf{Beskrivelse} & \textbf{Antal} &
+ \textbf{Enhed} & \textbf{Pris} & \textbf{Rabat} & \textbf{Beløb} \\
+ & Overført fra side <%lastpage%> & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{2cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{3.5cm}
+
+\textbf{S A L G S O R D R E}
+\hfill
+\begin{tabular}[t]{l@{\hspace{0.3cm}}l}
+ \textbf{Ordredato} & <%orddate%> \\
+<%if reqdate%>
+ \textbf{Ønsket leveringsdato} & <%reqdate%> \\
+<%end reqdate%>
+ \textbf{Ordrenummer} & <%ordnumber%>
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Varenummer} & \textbf{Beskrivelse} & \textbf{Antal} &
+ \textbf{Enhed} & \textbf{Pris} & \textbf{Rabat} & \textbf{Beløb} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%discount%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%subtotal%>} \\
+<%foreach tax%>
+ <%taxdescription%> på <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ \textbf{Total} & \textbf{<%ordtotal%>}\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ Alle priser i \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+
+\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+\footnotetext[1]{\tiny
+Et gebyr for annullering af ordre på 10\% vil blive tillagt alle specialtilbud
+og produkter som er blevet tilpasset, forbedret eller opgraderet på kundens anmodning.
+Varer som ikke kan returneres er anført ovenfor.
+}
+
+\end{document}
diff --git a/templates/Danish-sales_quotation.html b/templates/Danish-sales_quotation.html
new file mode 100755
index 00000000..0abf5fc7
--- /dev/null
+++ b/templates/Danish-sales_quotation.html
@@ -0,0 +1,225 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr valign=top>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+<tr><td colspan=3>&nbsp;</td></tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>Q U O T A T I O N</h4>
+ </th>
+ </tr>
+
+ </table>
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td>
+ <table width=100%>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+
+ <br>
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr><td>&nbsp;</td></tr>
+
+ <tr>
+ <td colspan=2>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Number</th>
+ <th width=17% align=left>Date</th>
+ <th width=17% align=left>Valid until</th>
+ <th width=17% align=left nowrap>Contact</th>
+ <th width=17% align=left nowrap>Shipping Point</th>
+ <th width=15% align=left nowrap>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%quonumber%></td>
+ <td><%quodate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>No.</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qt'y</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Price</th>
+ <th><font color=ffffff>Disc %</th>
+ <th><font color=ffffff>Amount</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%></td>
+
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discountrate%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=8><hr noshade></td>
+ </tr>
+
+ <tr>
+<%if taxincluded%>
+ <th colspan=6 align=right>Total</th>
+ <td colspan=2 align=right><%invtotal%></td>
+<%end taxincluded%>
+
+<%if not taxincluded%>
+ <th colspan=6 align=right>Subtotal</th>
+ <td colspan=2 align=right><%subtotal%></td>
+<%end taxincluded%>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=6 align=right><%taxdescription%> on <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+<%end tax%>
+
+ <tr>
+ <td colspan=4>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=4>&nbsp;
+<%if terms%>
+ Terms Net <b><%terms%></b> days
+<%end terms%>
+ </td>
+ <th colspan=2 align=right>Total</th>
+ <th colspan=2 align=right><%quototal%></th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>Notes</td>
+ <td><%notes%></td>
+<%end notes%>
+ <td align=right>
+ All prices in <b><%currency%></b> Funds
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=60%><font size=-3>
+ Special order items are subject to a 10% cancellation fee.
+ </font>
+ </td>
+ <td width=40%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Danish-sales_quotation.tex b/templates/Danish-sales_quotation.tex
new file mode 100755
index 00000000..25792c6b
--- /dev/null
+++ b/templates/Danish-sales_quotation.tex
@@ -0,0 +1,157 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 48%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%quonumber%>}{<%company%>\hfill <%quonumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+ & carried forward from <%lastpage%> & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.45\textwidth}{
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%contact%>
+
+\vspace{0.2cm}
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+
+\vspace{1cm}
+
+\textbf{Q U O T A T I O N}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Quotation \#} & \textbf{Date} & \textbf{Valid until} & \textbf{Contact} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5ex]
+ \hline
+ <%quonumber%> & <%quodate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%discountrate%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ Subtotal & <%subtotal%> \\
+<%foreach tax%>
+ <%taxdescription%> on <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ Total & <%quototal%>\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ All prices in \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%notes%>
+
+}
+
+\vfill
+
+\end{document}
+
+
diff --git a/templates/Danish-statement.html b/templates/Danish-statement.html
new file mode 100755
index 00000000..4f384151
--- /dev/null
+++ b/templates/Danish-statement.html
@@ -0,0 +1,125 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+ <tr>
+ <th colspan=3><h4>S T A T E M E N T</h4></th>
+ </tr>
+ <tr>
+ <td colspan=3 align=right><%statementdate%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+<br><%address2%>
+<%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+<%country%>
+<%end country%>
+ <br>
+<%if customerphone%>
+ <br>Tel: <%customerphone%>
+<%end customerphone%>
+<%if customerfax%>
+ <br>Fax: <%customerfax%>
+<%end customerfax%>
+<%if email%>
+ <br><%email%>
+<%end email%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr height=10></tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr>
+ <th align=left>Invoice #</th>
+ <th width=15%>Date</th>
+ <th width=15%>Due</th>
+ <th width=10%>Current</th>
+ <th width=10%>30</th>
+ <th width=10%>60</th>
+ <th width=10%>90+</th>
+ </tr>
+<%foreach invnumber%>
+ <tr>
+ <td><%invnumber%></td>
+ <td><%invdate%></td>
+ <td><%duedate%></td>
+ <td align=right><%c0%></td>
+ <td align=right><%c30%></td>
+ <td align=right><%c60%></td>
+ <td align=right><%c90%></td>
+ </tr>
+<%end invnumber%>
+ <tr>
+ <td colspan=7><hr size=1></td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <th align=right><%c0total%></td>
+ <th align=right><%c30total%></td>
+ <th align=right><%c60total%></td>
+ <th align=right><%c90total%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr height=10></tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td align=right>
+ <table width=50%>
+ <tr>
+ <th>Total Outstanding</th>
+ <th align=right><%total%></th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td><hr noshade></td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>Please make check payable to <b><%company%></b>.
+ </td>
+ </tr>
+ <tr height=20></tr>
+</table>
+
diff --git a/templates/Danish-statement.tex b/templates/Danish-statement.tex
new file mode 100755
index 00000000..5865da11
--- /dev/null
+++ b/templates/Danish-statement.tex
@@ -0,0 +1,111 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rrr@{}}
+ Tel & <%tel%>\\
+ Fax & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%statementdate%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{1.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{10.5cm}{
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+}
+\parbox[t]{7.5cm}{
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{S T A T E M E N T} \hfill \textbf{<%statementdate%>}
+
+\vspace{2cm}
+
+\begin{tabular*}{\textwidth}{@{}l@{\extracolsep\fill}ccrrrr@{}}
+ \textbf{Invoice \#} & \textbf{Date} & \textbf{Due} &
+ \textbf{Current} & \textbf{30} & \textbf{60} & \textbf{90+} \\
+<%foreach invnumber%>
+ <%invnumber%> & <%invdate%> & <%duedate%> &
+ <%c0%> & <%c30%> & <%c60%> & <%c90%> \\
+<%end invnumber%>
+\textbf{Subtotal} & & & <%c0total%> & <%c30total%> & <%c60total%> & <%c90total%>
+\end{tabular*}
+\rule{\textwidth}{1pt}
+
+\vspace{1cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Total outstanding} & <%total%>
+\end{tabularx}
+
+\vfill
+
+Please make check payable to <%company%>
+
+\end{document}
+
diff --git a/templates/Danish-timecard.html b/templates/Danish-timecard.html
new file mode 100755
index 00000000..361b8254
--- /dev/null
+++ b/templates/Danish-timecard.html
@@ -0,0 +1,146 @@
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=sql-ledger.png border=0 width=84 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>T I M E &nbsp;&nbsp; C A R D</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=left>Employee</th>
+ <td><%employee%></td>
+ </tr>
+ <tr>
+ <th align=left>ID</th>
+ <td><%employee_id%></td>
+ </tr>
+ </table>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Card ID</th>
+ <td><%id%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Date Worked</th>
+ <td><%transdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Time In</th>
+ <td><%checkedin%></td>
+ </tr>
+ <tr>
+ <th align=left>Time Out</th>
+ <td><%checkedout%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Hours Worked</th>
+ <td><%qty%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=bottom>
+ <td>
+ <table>
+ <tr valign=top>
+ <th align=left>Project/Job #</th>
+ <td><%projectnumber%></td>
+ </tr>
+ <tr>
+ <th align=left>Description</th>
+ <td><%projectdescription%></td>
+ </tr>
+ <tr valign=top>
+ <th align=left>Labor/Service Code</th>
+ <td><%partnumber%></td>
+ </tr>
+ <tr>
+ <th align=left>Description</th>
+ <td><%description%></td>
+ </tr>
+ </table>
+ </td>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Unit Rate</th>
+ <td><%sellprice%></td>
+ </tr>
+ <tr>
+ <th align=right>Total</th>
+ <td><%total%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+<%if notes%>
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%notes%>
+ </td>
+ </tr>
+<%end notes%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Danish-timecard.tex b/templates/Danish-timecard.tex
new file mode 100755
index 00000000..49a30c54
--- /dev/null
+++ b/templates/Danish-timecard.tex
@@ -0,0 +1,71 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-1cm,left=2cm,right=1cm]{geometry}
+\usepackage{graphicx}
+\setlength{\parindent}{0pt}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Tel: & <%tel%>\\
+ Fax: & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+\centerline{\textbf{T I M E}\hspace{0.5cm}\textbf{C A R D}}
+
+\vspace*{0.5cm}
+
+\begin{tabular}[t]{ll}
+ \textbf{Employee} & <%employee%> \\
+ \textbf{ID} & <%employee_id%> \\
+\end{tabular}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Card ID} & <%id%> \\
+ \textbf{Date Worked} & <%transdate%> \\
+ \textbf{Time In} & <%checkedin%> \\
+ \textbf{Time Out} & <%checkedout%> \\
+ \textbf{Hours Worked} & <%qty%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular}[b]{ll}
+ \textbf{Project/Job \#} & <%projectnumber%> \\
+ \textbf{Description} & <%projectdescription%> \\
+ \textbf{Labor/Service Code} & <%partnumber%> \\
+ \textbf{Description} & <%description%> \\
+\end{tabular}
+\hfill
+\begin{tabular}[b]{lr}
+ \textbf{Unit Rate} & <%sellprice%> \\
+ \textbf{Total} & <%total%> \\
+\end{tabular}
+
+\vspace{0.3cm}
+
+<%notes%>
+
+\end{document}
+
+
diff --git a/templates/Danish-work_order.html b/templates/Danish-work_order.html
new file mode 100755
index 00000000..88d212af
--- /dev/null
+++ b/templates/Danish-work_order.html
@@ -0,0 +1,174 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=bottom>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>W O R K &nbsp;&nbsp; O R D E R</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>To</th>
+ <th align=left width=50%><font color=ffffff>Ship To</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%>
+ <br><%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%>
+ <br><%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ <br>
+ <%if shiptocontact%>
+ <br><%shiptocontact%>
+ <%end shiptocontact%>
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+ <%if shiptoemail%>
+ <br><%shiptoemail%>
+ <%end shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Order Number</th>
+ <th width=17% align=left>Order Date</th>
+ <th width=17% align=left>Required by</th>
+ <th width=17% align=left nowrap>Salesperson</th>
+ <th width=17% align=left nowrap>Shipping Point</th>
+ <th width=15% align=left nowrap>Ship Via</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%></td>
+ <td><%orddate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>No.</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qt'y</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Serial No.</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%>.</td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td><%serialnumber%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <td colspan=6><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <%if notes%>
+ <td><%notes%></td>
+ <%end notes%>
+ </tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Danish-work_order.tex b/templates/Danish-work_order.tex
new file mode 100755
index 00000000..9b2f6f95
--- /dev/null
+++ b/templates/Danish-work_order.tex
@@ -0,0 +1,177 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}rlXrll@{}}
+ \textbf{No.} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ & \textbf{Serial Number} \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.45\textwidth}{
+\textbf{To}
+\vspace{0.7cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\parbox[t]{.45\textwidth}{
+\textbf{Ship To}
+\vspace{0.7cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{W O R K} \parbox{0.3cm}{\hfill} \textbf{O R D E R}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Order Date} & \textbf{Required by} & \textbf{Salesperson} & \textbf{Shipping Point} & \textbf{Ship Via} \\ [0.5em]
+ \hline
+ <%ordnumber%> & <%orddate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrll@{}}
+ \textbf{No.} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ & \textbf{Serial Number} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%serialnumber%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+\vfill
+
+\vspace{1cm}
+
+\rule{\textwidth}{0.5pt}
+
+\end{document}
+
+
+
+
+
+
diff --git a/templates/Default-ap_transaction.html b/templates/Default-ap_transaction.html
new file mode 100755
index 00000000..2ab4d5e5
--- /dev/null
+++ b/templates/Default-ap_transaction.html
@@ -0,0 +1,228 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>A P - T R A N S A C T I O N</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if vendorphone%>
+ <br>Tel: <%vendorphone%>
+ <%end vendorphone%>
+
+ <%if vendorfax%>
+ <br>Fax: <%vendorfax%>
+ <%end vendorfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+
+ <%if vendortaxnumber%>
+ <p>Taxnumber: <%vendortaxnumber%>
+ <%end vendortaxnumber%>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Invoice #</th>
+ <td><%invnumber%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Date</th>
+ <td><%invdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Due</th>
+ <td><%duedate%></td>
+ </tr>
+ <%if ponumber%>
+ <tr>
+ <th align=left>PO #</th>
+ <td><%ponumber%>&nbsp;</td>
+ </tr>
+ <%end ponumber%>
+ <%if ordnumber%>
+ <tr>
+ <th align=left>Order #</th>
+ <td><%ordnumber%>&nbsp;</td>
+ </tr>
+ <%end ordnumber%>
+ <tr>
+ <th align=left nowrap>Employee</th>
+ <td><%employee%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <%foreach account%>
+ <tr valign=top>
+ <td><%accno%></td>
+ <td><%account%></td>
+ <td width=10> </td>
+ <td align=right><%amount%></td>
+ <td width=10> </td>
+ <td><%description%></td>
+ <td width=10> </td>
+ <td><%projectnumber%></td>
+ </tr>
+ <%end account%>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td width=10> </td>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Subtotal</th>
+ <td width=10> </td>
+ <td align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=2 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td width=10> </td>
+ <td align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if not taxincluded%>
+ <tr>
+ <th colspan=2 align=right>Total</th>
+ <td width=10> </td>
+ <td align=right><%invtotal%></td>
+ </tr>
+ <%end taxincluded%>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%text_amount%> ***** <%decimal%>/100 <%currency%>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%notes%>
+ </td>
+ </tr>
+
+ <%if paid_1%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <tr>
+ <th>Payments</th>
+ </tr>
+
+ <tr>
+ <td>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th>Date</th>
+ <th>&nbsp;</th>
+ <th>Source</th>
+ <th>Memo</th>
+ <th>Amount</th>
+ </tr>
+ <%end paid_1%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td><%paymentmemo%></td>
+ <td align=right><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid_1%>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <%end paid_1%>
+
+ <tr height=10></tr>
+
+ <%if taxincluded%>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <th colspan=3 align=left><font size=-2>Taxes shown are included in price.</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Default-ap_transaction.tex b/templates/Default-ap_transaction.tex
new file mode 100755
index 00000000..5cd134cc
--- /dev/null
+++ b/templates/Default-ap_transaction.tex
@@ -0,0 +1,111 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+\setlength{\parindent}{0pt}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+\centerline{\textbf{A P} \hspace{0.3cm} \textbf{T R A N S A C T I O N}}
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state>
+\hspace{-0.1cm}, <%state%>
+<%end state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if vendorphone%>
+Tel: <%vendorphone%>
+<%end vendorphone%>
+
+<%if vendorfax%>
+Fax: <%vendorfax%>
+<%end vendorfax%>
+
+<%email%>
+
+<%if vendortaxnumber%>
+Tax Number: <%vendortaxnumber%>
+<%end vendortaxnumber%>
+}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Invoice \#} & <%invnumber%> \\
+ \textbf{Date} & <%invdate%> \\
+ \textbf{Due} & <%duedate%> \\
+ <%if ponumber%>
+ \textbf{PO \#} & <%ponumber%> \\
+ <%end ponumber%>
+ <%if ordnumber%>
+ \textbf{Order \#} & <%ordnumber%> \\
+ <%end ordnumber%>
+ \textbf{Employee} & <%employee%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}[t]{@{}llrX@{\hspace{1cm}}l@{}}
+<%foreach amount%>
+ <%accno%> & <%account%> & <%amount%> & <%description%> & <%projectnumber%> \\
+<%end amount%>
+
+ \multicolumn{2}{r}{\textbf{Subtotal}} & <%subtotal%> & \\
+<%foreach tax%>
+ \multicolumn{2}{r}{\textbf{<%taxdescription%> @ <%taxrate%> \%}} & <%tax%> & \\
+<%end tax%>
+
+ \multicolumn{2}{r}{\textbf{Total}} & <%invtotal%> & \\
+
+\end{tabularx}
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100 <%currency%>
+
+<%if notes%>
+\vspace{0.3cm}
+<%notes%>
+<%end notes%>
+
+\vspace{0.3cm}
+
+<%if paid_1%>
+\begin{tabular}{@{}llllr@{}}
+ \multicolumn{5}{c}{\textbf{Payments}} \\
+ \hline
+ \textbf{Date} & & \textbf{Source} & \textbf{Memo} & \textbf{Amount} \\
+<%end paid_1%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%paymentmemo%> & <%payment%> \\
+<%end payment%>
+<%if paid_1%>
+\end{tabular}
+<%end paid_1%>
+
+\end{document}
+
diff --git a/templates/Default-ar_transaction.html b/templates/Default-ar_transaction.html
new file mode 100755
index 00000000..f8b8e95e
--- /dev/null
+++ b/templates/Default-ar_transaction.html
@@ -0,0 +1,234 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>A R - T R A N S A C T I O N</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+
+ <%if customertaxnumber%>
+ <br>Taxnumber: <%customertaxnumber%>
+ <%end customertaxnumber%>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Invoice #</th>
+ <td><%invnumber%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Date</th>
+ <td><%invdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Due</th>
+ <td><%duedate%></td>
+ </tr>
+ <%if ponumber%>
+ <tr>
+ <th align=left>PO #</th>
+ <td><%ponumber%>&nbsp;</td>
+ </tr>
+ <%end ponumber%>
+ <%if ordnumber%>
+ <tr>
+ <th align=left>Order #</th>
+ <td><%ordnumber%>&nbsp;</td>
+ </tr>
+ <%end ordnumber%>
+ <tr>
+ <th align=left nowrap>Salesperson</th>
+ <td><%employee%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <%foreach account%>
+ <tr valign=top>
+ <td><%accno%></td>
+ <td><%account%></td>
+ <td width=10>&nbsp</td>
+ <td align=right><%amount%></td>
+ <td width=10>&nbsp</td>
+ <td><%description%></td>
+ <td width=10>&nbsp</td>
+ <td><%projectnumber%></td>
+ </tr>
+ <%end account%>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td width=10>&nbsp</td>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Subtotal</th>
+ <td width=10>&nbsp</td>
+ <td align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=2 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td width=10>&nbsp</td>
+ <td align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if not taxincluded%>
+ <tr>
+ <th colspan=2 align=right>Total</th>
+ <td width=10>&nbsp</td>
+ <td align=right><%invtotal%></td>
+ </tr>
+ <%end taxincluded%>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%text_amount%> ***** <%decimal%>/100 <%currency%>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%notes%>
+ </td>
+ </tr>
+
+ <%if paid_1%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <tr>
+ <th>Payments</th>
+ </tr>
+
+ <tr>
+ <td>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th>Date</th>
+ <th>&nbsp;</th>
+ <th>Source</th>
+ <th>Amount</th>
+ </tr>
+ <%end paid_1%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td align=right><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid_1%>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <%end paid_1%>
+
+ <tr height=10></tr>
+
+ <%foreach tax%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <th colspan=9 align=left><font size=-2><%taxdescription%> Registration <%taxnumber%></th>
+ </tr>
+ <%end tax%>
+
+ <%if taxincluded%>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <th colspan=3 align=left><font size=-2>Taxes shown are included in price.</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Default-ar_transaction.tex b/templates/Default-ar_transaction.tex
new file mode 100755
index 00000000..1c3c44f3
--- /dev/null
+++ b/templates/Default-ar_transaction.tex
@@ -0,0 +1,118 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+\setlength{\parindent}{0pt}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+\centerline{\textbf{A R} \hspace{0.3cm} \textbf{T R A N S A C T I O N}}
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+
+<%if customertaxnumber%>
+Tax Number: <%customertaxnumber%>
+<%end customertaxnumber%>
+}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Invoice \#} & <%invnumber%> \\
+ \textbf{Date} & <%invdate%> \\
+ \textbf{Due} & <%duedate%> \\
+ <%if ponumber%>
+ \textbf{PO \#} & <%ponumber%> \\
+ <%end ponumber%>
+ <%if ordnumber%>
+ \textbf{Order \#} & <%ordnumber%> \\
+ <%end ordnumber%>
+ \textbf{Employee} & <%employee%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}[t]{@{}llrX@{\hspace{1cm}}l@{}}
+<%foreach amount%>
+ <%accno%> & <%account%> & <%amount%> & <%description%> & <%projectnumber%> \\
+<%end amount%>
+
+ \multicolumn{2}{r}{\textbf{Subtotal}} & <%subtotal%> & \\
+<%foreach tax%>
+ \multicolumn{2}{r}{\textbf{<%taxdescription%> @ <%taxrate%> \%}} & <%tax%> & \\
+<%end tax%>
+
+ \multicolumn{2}{r}{\textbf{Total}} & <%invtotal%> & \\
+
+\end{tabularx}
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100 <%currency%>
+
+<%if notes%>
+\vspace{0.3cm}
+<%notes%>
+<%end notes%>
+
+\vspace{0.3cm}
+
+<%if paid_1%>
+\begin{tabular}{@{}lllr@{}}
+ \multicolumn{5}{c}{\textbf{Payments}} \\
+ \hline
+ \textbf{Date} & & \textbf{Source} & \textbf{Amount} \\
+<%end paid_1%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%payment%> \\
+<%end payment%>
+<%if paid_1%>
+\end{tabular}
+<%end paid_1%>
+
+\vspace{0.5cm}
+
+<%foreach tax%>
+\textbf{\scriptsize <%taxdescription%> Registration <%taxnumber%>} \\
+<%end tax%>
+
+\end{document}
+
diff --git a/templates/Default-balance_sheet.html b/templates/Default-balance_sheet.html
new file mode 100755
index 00000000..6ede0b9c
--- /dev/null
+++ b/templates/Default-balance_sheet.html
@@ -0,0 +1,105 @@
+
+<body>
+
+<h2 align=center>
+<%company%>
+<br><%address%>
+
+<p>BALANCE SHEET
+<br>as at <%this_period%>
+</h2>
+
+<%if department%>
+<h4>Department: <%department%></h4>
+<%end department%>
+
+<table border=0>
+<tr>
+ <th align=left width=400 colspan=2>ASSETS<br><hr align=left width=250 size=5 noshade></th>
+ <th><%this_period%></th>
+ <th><%last_period%></th>
+</tr>
+
+<%foreach asset_account%>
+<tr>
+ <td> </td>
+ <td><%asset_account%></td>
+ <td align=right><%asset_this_period%></td>
+ <td align=right><%asset_last_period%></td>
+</tr>
+<%end asset_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>TOTAL ASSETS</th>
+ <td align=right><%total_assets_this_period%><hr noshade size=2></td>
+ <td align=right><%total_assets_last_period%><hr noshade size=2></td>
+</tr>
+
+<tr>
+ <th align=left colspan=4>LIABILITIES<b><hr align=left width=250 size=5 noshade></th>
+</tr>
+
+<%foreach liability_account%>
+<tr>
+ <td></td>
+ <td><%liability_account%></td>
+ <td align=right><%liability_this_period%></td>
+ <td align=right><%liability_last_period%></td>
+</tr>
+<%end liability_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td></td>
+ <th align=left>TOTAL LIABILITIES</th>
+ <td align=right><%total_liabilities_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_liabilities_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr>
+ <th align=left colspan=4>SHAREHOLDER'S EQUITY<br><hr align=left width=250 size=5 noshade></th>
+</tr>
+
+<%foreach equity_account%>
+<tr>
+ <td></td>
+ <td><%equity_account%></td>
+ <td align=right><%equity_this_period%></td>
+ <td align=right><%equity_last_period%></td>
+</tr>
+<%end equity_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td></td>
+ <th align=left>TOTAL EQUITY</th>
+ <td align=right><%total_equity_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_equity_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>TOTAL LIABILITIES & EQUITY</th>
+ <td align=right><%total_this_period%><br><hr noshade size=2></td>
+ <td align=right><%total_last_period%><br><hr noshade size=2></td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Default-bin_list.html b/templates/Default-bin_list.html
new file mode 100755
index 00000000..93abb57d
--- /dev/null
+++ b/templates/Default-bin_list.html
@@ -0,0 +1,179 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>B I N &nbsp;&nbsp; L I S T</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% cellspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>From</th>
+ <th align=left width=50%><font color=ffffff>Ship To</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+
+ <%if vendorphone%>
+ <br>Tel: <%vendorphone%>
+ <%end vendorphone%>
+
+ <%if vendorfax%>
+ <br>Fax: <%vendorfax%>
+ <%end vendorfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%>
+ <%if shiptostate%>
+ , <%shiptostate%>
+ <%end shiptostate%>
+ <%shiptozipcode%>
+ <%if shiptocountry%>
+ <%shiptocountry%>
+ <%end shiptocountry%>
+
+ <br>
+ <%if shiptocontact%>
+ <br>Attn: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Order #</th>
+ <th width=17% align=left nowrap>Date</th>
+ <th width=17% align=left nowrap>Contact</th>
+ <%if warehouse%>
+ <th width=17% align=left nowrap>Warehouse</th>
+ <%end warehouse%>
+ <th width=17% align=left>Shipping Point</th>
+ <th width=15% align=left>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%>&nbsp;</td>
+
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%orddate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+
+ <%if warehouse%>
+ <td><%warehouse%></td>
+ <%end warehouse%>
+
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Item</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Serialnumber</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Qty</th>
+ <th><font color=ffffff>Recd</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Bin</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%></td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td><%serialnumber%></td>
+ <td><%deliverydate%></td>
+ <td align=right><%qty%></td>
+ <td align=right><%ship%></td>
+ <td><%unit%></td>
+ <td><%bin%></td>
+ </tr>
+ <%end number%>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Default-bin_list.tex b/templates/Default-bin_list.tex
new file mode 100755
index 00000000..1bc85d66
--- /dev/null
+++ b/templates/Default-bin_list.tex
@@ -0,0 +1,114 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrll@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Recd} & & \textbf{Bin} \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+\textbf{From}
+\vspace{0.3cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+}
+\parbox[t]{.5\textwidth}{
+\textbf{Ship To}
+\vspace{0.3cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{B I N} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Date} & \textbf{Contact}
+ <%if warehouse%>
+ & \textbf{Warehouse}
+ <%end warehouse%>
+ & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+
+ <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%orddate%>
+ <%end shippingdate%>
+ & <%employee%>
+ <%if warehouse%>
+ & <%warehouse%>
+ <%end warehouse%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrll@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Recd} & & \textbf{Bin} \\
+
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%serialnumber%> &
+ <%deliverydate%> & <%qty%> & <%ship%> & <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabularx}
+
+
+\rule{\textwidth}{2pt}
+
+\end{document}
+
diff --git a/templates/Default-check.tex b/templates/Default-check.tex
new file mode 100755
index 00000000..908f0e79
--- /dev/null
+++ b/templates/Default-check.tex
@@ -0,0 +1,77 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{9pt}{9pt}\selectfont
+
+\parbox[t]{12cm}{
+ <%company%>
+
+ <%address%>}
+\hfill
+\parbox[t]{6cm}{\hfill <%source%>}
+
+\vspace*{0.6cm}
+
+<%text_amount%> \dotfill <%decimal%>/100 \makebox[0.5cm]{\hfill}
+
+\vspace{0.5cm}
+
+\hfill <%datepaid%> \makebox[2cm]{\hfill} <%amount%>
+
+% different date format for datepaid
+% <%DD%><%MM%><%YYYY%>
+
+\vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{1.8cm}
+
+<%memo%>
+
+\vspace{0.8cm}
+
+<%company%>
+
+\vspace{0.5cm}
+
+<%name%> \hfill <%datepaid%> \hfill <%source%>
+
+\vspace{0.5cm}
+\begin{tabularx}{\textwidth}{lXrr@{}}
+\textbf{Invoice \#} & \textbf{Invoice Date}
+ & \textbf{Amount Due} & \textbf{Applied} \\
+<%foreach invnumber%>
+<%invnumber%> & <%invdate%> \dotfill
+ & <%due%> & <%paid%> \\
+<%end invnumber%>
+\end{tabularx}
+
+\vspace{1cm}
+
+<%memo%>
+
+\vfill
+
+\end{document}
+
diff --git a/templates/Default-income_statement.html b/templates/Default-income_statement.html
new file mode 100755
index 00000000..d5221d63
--- /dev/null
+++ b/templates/Default-income_statement.html
@@ -0,0 +1,85 @@
+
+<body>
+
+<h2 align=center>
+<%company%>
+<br><%address%>
+
+<p>INCOME STATEMENT
+<br><%period%>
+</h2>
+
+<%if department%>
+<h4>Department: <%department%></h4>
+<%end department%>
+
+<%if projectnumber%>
+<h4>Project Number: <%projectnumber%></h4>
+<%end projectnumber%>
+
+<table width=100% border=0>
+<tr>
+ <th width=400 align=left colspan=2>INCOME<br><hr width=300 size=5 align=left noshade></th>
+ <th><%this_period%></th>
+ <th><%last_period%></th>
+</tr>
+
+<%foreach income_account%>
+<tr>
+ <td width=4> </td>
+ <td><%income_account%></td>
+ <td align=right><%income_this_period%></td>
+ <td align=right><%income_last_period%></td>
+</tr>
+<%end income_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td> </td>
+ <th align=left>TOTAL INCOME</th>
+ <td align=right><%total_income_this_period%><hr noshade size=2></td>
+ <td align=right><%total_income_last_period%><hr noshade size=2></td>
+</tr>
+
+<tr>
+ <th align=left colspan=2>EXPENSES<br><hr width=300 size=5 align=left noshade></th>
+</tr>
+
+<%foreach expense_account%>
+<tr>
+ <td> </td>
+ <td><%expense_account%></td>
+ <td align=right><%expenses_this_period%></td>
+ <td align=right><%expenses_last_period%></td>
+</tr>
+<%end expense_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td> </td>
+ <th align=left>TOTAL EXPENSES</th>
+ <td align=right><%total_expenses_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_expenses_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>INCOME / (LOSS)</th>
+ <td align=right><%total_this_period%><br><hr noshade size=2></td>
+ <td align=right><%total_last_period%><br><hr noshade size=2></td>
+</tr>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Default-invoice.html b/templates/Default-invoice.html
new file mode 100755
index 00000000..3356aed6
--- /dev/null
+++ b/templates/Default-invoice.html
@@ -0,0 +1,318 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>I N V O I C E</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>To</th>
+ <th align=left width=50%><font color=ffffff>Ship To</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%>
+ <%if shiptostate%>
+ , <%shiptostate%>
+ <%end shiptostate%>
+ <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ <br>
+
+ <%if shiptocontact%>
+ <br><%shiptocontact%>
+ <br>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%if shiptoemail%>
+ <br><%shiptoemail%>
+ <%end shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=14% align=left nowrap>Invoice #</th>
+ <th width=14% align=left nowrap>Date</th>
+ <th width=14% align=left nowrap>Due</th>
+ <th width=14% align=left>Order #</th>
+ <th width=14% align=left nowrap>Salesperson</th>
+ <th width=14% align=left nowrap>Shipping Point</th>
+ <th width=14% align=left nowrap>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%invnumber%></td>
+ <td><%invdate%></td>
+ <td><%duedate%></td>
+ <td><%ordnumber%>&nbsp;</td>
+ <td><%employee%>&nbsp;</td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>Item</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th>&nbsp;</th>
+ <th align=right><font color=ffffff>Qt'y</th>
+ <th>&nbsp;</th>
+ <th align=right><font color=ffffff>Unit Price</th>
+ <th align=right><font color=ffffff>Disc %</th>
+ <th align=right><font color=ffffff>Extended</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%>.</td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td><%deliverydate%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discountrate%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <td colspan=9><hr noshade></td>
+ </tr>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=7 align=right>Total</th>
+ <td colspan=2 align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=7 align=right>Subtotal</th>
+ <td colspan=2 align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=7 align=right><%taxdescription%> on <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if paid%>
+ <tr>
+ <th colspan=7 align=right>Paid</th>
+ <td colspan=2 align=right>- <%paid%></td>
+ </tr>
+ <%end paid%>
+
+ <tr>
+ <td colspan=5>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <%if total%>
+ <tr>
+ <td colspan=5>&nbsp;</td>
+ <th colspan=2 align=right nowrap>Balance Due</th>
+ <th colspan=2 align=right><%total%></th>
+ </tr>
+ <%end total%>
+
+ <tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <%if notes%>
+ <td><%notes%></td>
+ <%end notes%>
+
+ <td><%text_amount%> ***** <%decimal%>/100</td>
+
+ <td align=right nowrap>
+ All prices in <b><%currency%></b>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <%if paid_1%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td colspan=9>
+ <table width=60%>
+
+ <tr>
+ <th align=left>Payments</th>
+ </tr>
+
+ <tr>
+ <td colspan=4>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <th align=left>Date</th>
+ <th align=left>Account</th>
+ <th align=left>Source</th>
+ <th align=left>Amount</th>
+ </tr>
+ <%end paid_1%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid_1%>
+ </table>
+ </td>
+ </tr>
+ <%end paid_1%>
+
+ <tr height=10></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <th>
+ Thank you for your valued business!
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=60%><font size=-3>
+ Payment due by <%duedate%>.
+ Items returned are subject to a 10% restocking charge. A return authorization must be obtained from <%company%> before goods are returned. Returns must be shipped prepaid and properly insured. <%company%> will not be responsible for damages during transit.
+ </font>
+ </td>
+
+ <td width=40%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <th colspan=9 align=left><font size=-2><%taxdescription%> Registration <%taxnumber%></th>
+ </tr>
+ <%end tax%>
+
+ <%if taxincluded%>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <th colspan=8 align=left><font size=-2>Taxes shown are included in price.</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Default-invoice.tex b/templates/Default-invoice.tex
new file mode 100755
index 00000000..fa7145bf
--- /dev/null
+++ b/templates/Default-invoice.tex
@@ -0,0 +1,207 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\newsavebox{\ftr}
+\sbox{\ftr}{
+ \parbox{\textwidth}{
+ \tiny
+ \rule[1.5em]{\textwidth}{0.5pt}
+Payment due NET <%terms%> Days from date of Invoice. Interest on overdue amounts will acrue at the rate of 12\% per annum starting from <%duedate%> until paid in full. Items returned are subject to a 10\% restocking charge.
+A return authorization must be obtained from <%company%> before goods are returned. Returns must be shipped prepaid and properly insured.
+<%company%> will not be responsible for damages during transit.
+ }
+}
+
+<%include letterhead.tex%>
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \vspace{0.2cm}
+
+ \hfill
+ \begin{tabularx}{\textwidth}{Xr@{\hspace{1cm}}r@{}}
+ & Subtotal & <%sumcarriedforward%> \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%invnumber%>}{<%company%>\hfill <%invnumber%>}
+
+\begin{tabularx}{\textwidth}{@{}rlXlrlrrr@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} & & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\ [0.5em]
+ & carried forward from page <%lastpage%> & & & & & & & <%sumcarriedforward%> \\ [0.5em]
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+\textbf{To}
+\vspace{0.3cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\parbox[t]{.5\textwidth}{
+\textbf{Ship To}
+\vspace{0.3cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{I N V O I C E}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{7}{|X}|} \hline
+ \textbf{Invoice \#} & \textbf{Date} & \textbf{Due} & \textbf{Order \#}
+ & \textbf{Salesperson} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+ <%invnumber%> & <%invdate%> & <%duedate%> & <%ordnumber%> & <%employee%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXlrlrrr@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} & & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\ [0.5em]
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%deliverydate%> &
+ <%qty%> & <%unit%> & <%sellprice%> & <%discountrate%> & <%linetotal%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
+ & Subtotal & <%subtotal%> \\
+<%foreach tax%>
+ & <%taxdescription%> on <%taxbase%> & <%tax%> \\
+<%end tax%>
+<%if paid%>
+ & Paid & - <%paid%> \\
+<%end paid%>
+ \hline
+<%if total%>
+ & Balance Due & <%total%>
+<%end total%>
+\end{tabularx}
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100
+\hfill
+All prices in \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%notes%>
+}
+
+\vfill
+
+<%if paid_1%>
+\begin{tabularx}{10cm}{@{}lXlr@{}}
+ \textbf{Payments} & & & \\
+ \hline
+ \textbf{Date} & & \textbf{Source} & \textbf{Amount} \\
+<%end paid_1%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%payment%> \\
+<%end payment%>
+<%if paid_1%>
+\end{tabularx}
+<%end paid_1%>
+
+\vspace{1cm}
+
+\centerline{\textbf{Thank You for your valued business!}}
+
+\rule{\textwidth}{0.5pt}
+
+\usebox{\ftr}
+
+\end{document}
+
diff --git a/templates/Default-letterhead.html b/templates/Default-letterhead.html
new file mode 100755
index 00000000..ccac4c0f
--- /dev/null
+++ b/templates/Default-letterhead.html
@@ -0,0 +1,32 @@
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%><br>
+ <%address%>
+ </h4>
+ </td>
+
+ <th><img src=<%templates%>/<%language_code%>/logo.png border=0 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%><br>
+ Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <td colspan=3>
+ <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
diff --git a/templates/Default-letterhead.tex b/templates/Default-letterhead.tex
new file mode 100755
index 00000000..16d1d16c
--- /dev/null
+++ b/templates/Default-letterhead.tex
@@ -0,0 +1,17 @@
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{../<%templates%>/<%language_code%>/logo}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Tel: & <%tel%>\\
+ Fax: & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
diff --git a/templates/Default-logo.eps b/templates/Default-logo.eps
new file mode 100755
index 00000000..3a22b2ff
--- /dev/null
+++ b/templates/Default-logo.eps
@@ -0,0 +1,1334 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: GIMP PostScript file plugin V 1.17 by Peter Kirchgessner
+%%Title: Brazilian_Portuguese-logo.eps
+%%CreationDate: Thu Aug 31 19:25:05 2006
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 2
+%%Pages: 1
+%%BoundingBox: 14 14 415 215
+%%EndComments
+%%BeginProlog
+% Use own dictionary to avoid conflicts
+10 dict begin
+%%EndProlog
+%%Page: 1 1
+% Translate for offset
+14.173228346456694 14.173228346456694 translate
+% Translate to begin of first scanline
+0 199.99842519685043 translate
+399.99685039370081 -199.99842519685043 scale
+% Image geometry
+400 200 8
+% Transformation matrix
+[ 400 0 0 200 0 0 ]
+% Strings to hold RGB-samples per scanline
+/rstr 400 string def
+/gstr 400 string def
+/bstr 400 string def
+{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop}
+true 3
+%%BeginData: 80402 ASCII Bytes
+colorimage
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+fDblg6K\=Q"WB-W4?Pdo4p6+l]&ih]rrrDpij);hp&GL',"Q[#Lmt]mi:-UBo)Ajlp>C')q#Ca-
+0OT-[R^UZ0q#:3k!rftBr;[*-4`Pt>]\`;[p&>'%-iO)I,T-[I!!OC1jn&BKnc&dlp#<8P%e]l2
+"!U9TI#+8tb2Ddcrq6:-g3RO66TZkO/89R1ak>G'lMCDUrVc`p_uG5~>
+fDc3-AgAK<(`*r''GKsK"r/C?3]oMfm61YtOLjQNo`#*op#<8P%e]l2"!U9TI#+8tb2Ddcrpp'l
+rq>8m&GZ;5#V]Y2L75R!lM1AVrrW28$N0r1#!HsURCqDKrq69l[jV.T![JWbkPtc,R-!r:rpg!l
+rq59V:(Hst$j.\EE.!J2ZHD+pqYp0f(YX1N<'rc'0emR!XjZ4ijR;sBr;HTnrknbd~>
+fDc6;J3>hE.46Gg,U"<#*sNl<2EEr_4mbE9G`]Muqt0mlrq59V:(Hst$j.\EE.!J2ZHD+pqYp'c
+"TJ,QFV+?K$4&=nG_VZqdd$W,r;Qit^^C#?#R3G3J!mt+o`"O`!OjHU!!4D`!pBUf*LPs[qu6-c
+"oe2SZ;(o'!"8rR88rs4S$L2pnG<.WrtjC8CK*Y`2)R41LpG[tlg+-<qu$Ekrr0h8J,~>
+gA_6CM^RKa#SJU[Cl4ICR$dH4"J2pKnc&.[#laS]ca8*s2'Dku%L*7S1/_:`E/L-e^<lNJn,*ps
+lGB9$.1d!s#n@h2C5&"Yb2DgerqcX(q78g7,slHqMPJ)Jp&4[cs*k'%9)\er&Pd:_DG`D6!pTal
+;j3B4I=8["q>L$e)ZKKoca5M5$jR7P',DcW=EAnFP+oA,h<ak4r;@'%mG5jnSV:rb4tRZYo)K.6
+.77QqVp"]-r;HW:s*t~>
+gA_WSXCb's7mAmd0J>%2/aY(p3(dS&NKf`rR.?XJT!Hl9rq$..rqGU%[!bb.+:/;Z%M^0O>@_Mp
+OJ9/'f_#".r"](qb,Jl)'b_,j)_+BrKpT$di:6^DqYq$#\j.Db6>_(,UVl'`rV6EmU]HuXrW!3>
+=ES\+<]_9&l2V,jVQ@/!U<E9+rV$70rqGU%Zq25S%MBBi(a_LMF+&e+U:&/"m.U>Sr=/\qk1@he
+W0`?`B2UiFr@A%'1d4D,8ded6G`JT6f_#";rVjq=J,~>
+gA_WV`KPh&H>[%h;Gg7d:@1a]<FBcqNg,isR.?XJT!Hl9rq$..rqGU%[!bb.+:etm&f`Dk@V^"7
+Q)D4<h=UO3r"](rd'%+>(`!f$,WA_DKpT$di:6^DqYq$#\j.Db6>_(,UVl'`rV6Em^B(K0rW!3B
+@!Hj=>!*c+l2V,lZbFJn^"N,TrV$70rqGU%Zreh$',D<")CRjQF+&e+U:&/"m.U>Sr=/\tmGcjE
+_7$G9OF(D5rCmAj>ASW`J.%6uT<>oSiV!$ErVjq=J,~>
+h#@HEIh:?7#Tc9FPJ##]c-H(0"4GulqXORjrqc-Bc+C!IjT#8`m/R?)T"N_Cq#1!f%/obL[[`MH
+U:8M5p\spee,TVcf]W#.pAY9pqXED]p&G=-'G_N()]Tmq*WQH&!!iZW>`-Jlq#(-9s*t~>
+h#@HJUfI@c"%YgF4l\X1;/(]X^WF^EcM,WedbO6dnc'C(qXEFf];hGR.Olks.P*2,2*!ie7S*/D
+!)3/["\;$E2D?]].L7OVFe67umJ-YTrs\ksfX@<5QD1k8kkG)Nrt@jG!<<*#(b-sc0JtaF0Ie1Z
+$3BMo#oYim84nopkP+uLrtbV1nDI&"0eP",.Ochs/1rtM85<,d>l%b,:\RH`84>d,rB(0F5Xe6:
+8dJ+(MQ5+sq#(-9s*t~>
+h#@HM^PMi="+56/C#`k4FbQ3b_9'pGcM,WedbO6dnc&ppqXEFf];hGq8cD6f8P;iZ>@VDgG^Y)7
+J,k2sJ.d?ZFD5#[9h@lH8ksi,]\)WHrV6C$rUSULS<B24\'X@5rqHF+H9;6/!!+Q@7nZfd?<U9"
+2^8k8m/RGEAorHOWS$D.rq??urqc-BFC%sC91f+R$;!ld>@_PnIYEZ=qi1Z0pOE?oG].?qBEN!f
+G^]78#_J8?^teSWr;Ot@J,~>
+h>[MB'\!*i,YiZYa62mZnF?&JncSOYqu6'a#Q=GfkM4KR)UeZi*-S.$mJQYW$N0GOcGmrTj73!F
+p\t6"ec5mb/8hc?meueX"TA*n,R_Hh#7aOmh":IArmCar~>
+h>[M`=SbYi8,u0:7LELMS$gZ-mdKZ8nc&(]o_87^n,EXkq!mP&dV;DR3!VH*4[;>&7nDf8%S9,W
+5<Lqc3BBc^Us&0'p&>Bsn__X3aOK8?qYp6h!OE+3!##DT-n$]+5!hV'5!1e]0J"C`$j,nu#UVT+
+?\Yl5meueX#Q=FJ>Xpq<3W:uC3BKAh6:FC8lq.=N84WVJ!_5dQmn*g`J?Io(qYgE@s*t~>
+h>[N!MYho*Isl\"H4#P$Zc1S]mdKZ8nc&(]o_87^n,F("q!mP&dY;XJ@:E_XBl7s8H[^J.J.@!Q
+F)5K!@U`kaL8<#[r:U'sr:/[i`lQZinbW7ZrrKG;rW!T71dso2?>FS'EGT5p>#S'T-5?[R!!rZm
+AU&loZI&%<o`#U'pn<@]Bk:d_@:E_XBl7s8H[^J4J-(4LI/A3kI"$S7J-Uh)_rgUfrVk4EJ,~>
+hu<`75k=sc"VrFC5tXgF:/4DF.i/9O!!*]Ur]C="me$ATli.:jr:opKd%Y/9'&!<k"#=J;Ni^b$
+rq-3qrV,jMn+?JTpAY,>f)Q'a;0.S\XNp84o)Asihn"ng;)Ad$!!WNiQK@f9rmUmt~>
+hu<`@GOnE:9Mnkt@V0:fC2.Hn>Z4;[8dSO+F*)Mgme$ATli.Fnr:opKd&28#:.@`E8`E>N8Ou<>
+7TaSXNi^b$rq-3qrV,jMn+?JTpAY,>qu@NQ,q(K/6:XU>84Z3<69dRl1bgU.)%[&F!!j*8F,?6b
+cL1Z%rseb\\s@h_>t[RS7Rp!@b";k3FKjs$qYntDJ,~>
+hu<`GT_![<IscQgH[C/>IKP(MIt-[4!Jlg9S-6.co_SRQrso&+q"3gtWf)=NG^=adJ)l+hIsu`i
+GBS%NIZCMZo)A:]#Q=DemdKfErV$6kHi3pL!AZo0<+U)rrdG<'H$++DB44tC:-L3L%.jN*&m043
+Q`SL#rUTsuptrZOMLp5#G'A1WI"$RgJ-LRo_WgairmUmt~>
+i;Wha&G?)3"X69@G^kI,P*_]1rh'IfS=#7L5SE5[">J!QnGMJL#l<l9^9FDd9H)af#qBJ1L7#-c
+jnSiGs8Drirr@!8!!4`+#i,Ic89UN4bi8<po)B'omao@cYc+.?63tL0"V>7hnG)t4s*t~>
+i;Wi"<VB#m9N5D9G^kI,P*_]1rh'IfS=#CdBN""c"DGs4nGMJL#l<l9^9FDnE)tgf$!(hdL7#-c
+jnSiGs8Drirr@!8!!Y&=.ks.S8GYpg8Ou<=69dRm2)6d5*"E#D!!c&<S@?`%p&=O^$N'8C_mckK
+Sr%2W`(C25NR[ImrRLpu~>
+i;Wi2M"Z?,IsQ9]G^kI,P*_]1rh'IfS=#ItL4SN<"H^d\nGMJL#l<l9^9FE!MLs]8$$^E6L7#-c
+jnSiGs8Drirr@!8!!b/H79+#EI=M0F%tB%UH$44GBOY4I:e*2V!qu["89UN4bi8<po)B$nmao@c
+Yc+.WLr4`HL9'%tq#/bCJ,~>
+iVrn9p&GO<7W!I+P+J\^^;eCEe,@c%d`oeFZDDb'!pTag,b;X/qWIkdrqc0Li7?&`XFWVBirBDi
+9lbcMYfPVcpAO"N!/(1L";kW^EBr@\#!RdOh!Xn6nc'!rqXWt6i7cW"\Y):S!"&cA/3cp6C2SKO
+KDgH,J9#$l1DK9X"TqW;mJ$S2s*t~>
+iVrnZp.>ck@;pOIP+J\^^;eCEe,@c%d`oeFZDE@g9Bo+P>b/RgqWIkdrqc0Li7?&`XH.-lj%9YP
+@WI!bYfPVcpAO"N!/(1L"rLi`F'qF.oh#Wa84H$85Wq.e1Fs:Bq#CU_L:H%,pAFI\$i^"nlfI'Y
+d`8noDWsb":g%1=D00uNJV3oS"bM/FCg^008d.n<bO,'&fDg@~>
+iVrnsp4*U"FE;b_P+J\^^;eCEe,@c$d`oeFZDEhBl$rniS\=([kPkqhqXNh.f#kY,R>QRUJ-pdG
+Ee'I[aP?+TrSmhWKDY]R(h76%G^"W1J.7!WI!U!XDe`ij=A("Cq#CU_L:H%,pAFI\$i^"nlfI'Y
+d`8nsNp2'#I!U'`H[L9mJV3fP!J>skJ-CLtdd?f-fDg@~>
+ir9!spAb^?;KRDLTsM\cguRbgo(;VSp'^Qco'Yc%fZLdo7Ki&X"<E/rh"^"2$i^)#p@.8#cFooT%
+d!`u!`F)pUr;*Wq#(-NrrL.Cqu?puFHE]?JdCT@!=T>3!!P?@^Ztarn,NFe$N9o!q"4":g;nL?m
+f3e)/l6J6KT).cU8P&qZM_'8Za$U.SV:/k!q?6o"'3Y5q#/nGJ,~>
+ir9"HpIYrnA9<<^TsM\cguRbgo(;VSp'^Qco'Yc%fZLduDbTLi"B:&Th"^"2$i^)#p@.8#cFp'#
+;<:CVA93O%`80kVr;P^U!QP?@!!Z;BOKZBc:@Up_8Ou?@6pX!s/dhFT"ZVIUlMUYMs8W'*rVZNe
+o^:kqaHB6c8e"NtATN6PN0Kj,VlR#,r3Qa9Z)jdmNceQ!nO`sYK$s&]rRq4$~>
+ir9"fpOEd$EccelTsM\cguRbgo(;VSp'UKbo'Yc%fZLe&NpD2uI>"ZVpuVM`rquWdnE8TP]r@0H
+ja[YVF,-R0h<t(9ro3qY`ru;?##TK(YJ-renph'sIXHKeF`;))8.,1n"ZVIUlMUYMs8W')rVZNe
+o^:kqaJJ<T%=WPDFaSk$PanJGX08i,Zj3qBXJMJOMM(DK"bEE!mJ-Y5s*t~>
+j8T+/p](g,5&bn2VnUU<m.C)NrVlflrsA]'qY'F@fZ'=>m/R8.I&>WmiVs5`r:ojHg;p9k"R#gj
+/ocWFcKY*%hu<[5qu@!=E/1aQlJS-;lMq#'>>b\&!!G<<]''%TrrrE"p[6mkmf3eaEIa7KZG+E,
+f%Ss<iqqdCini>8aLn[:8e(:j"Uoe:nG<.=s*t~>
+j8T+Tpdu&i?>t:RVnUU<m.C)NrVlflrsA]'qY'F@fZ'_$m7ILZI&>WmiVs5`r:ojHg;pF@9^#(R
+=E0(pcKY*%hu<[5qu@!=E/1aQlJSa>m7IOQ7nd5e#5\B'3Jb90rTF1arquNYhOa1.%:=+*PGGLu
+aO&Mlh;I;ij9ai&f[7dQY*X*(nO`s^Rc*]3rnII'~>
+j8T+opj`m)FDuVhVnUU<m.C)NrVlflrsA]'qY'F@fZ'tOm=>4a!iF]HiVs5`r:ojHg;pR`J`qUh
+G&`89cKY*%hu<[5qu@!=E/1aQlJT4*mXPLjI=$!B;?m!u"?D:LkPaTD"oeGombY5;J.6R>J<Qe7
+^<"[Pg>1]HqrA(ChUp5s]WRfaK(4?pKWsD(qYo7LJ,~>
+jSo4Pp]([*;KIM`][l<<qYgE_rs/Q#p?^YWLDTCZ"<2`cgA'P)#QFYqmblB\-0YC6>'usdm/$_=
+rrBP*!!kT/R`b'rq!(]B!!Ea>Fbj)q!!G98[cRGJrr`5pkZ@6R$q,K5^XhE/n+?>Kq>0sc$iBep
+o^D##d_Vqg$1Ruu1qr/HrS7F'~>
+jSo4lpdtofA93Er][l<<qYgE_rs/Q#p?^YWRTJrM"B'WEgA'P)#QFYqmblBh?g1/eApg5pm/$_=
+rrBP*!!kT/R`b'rq!*=p8d%n&Fbj)q!!G98[cRGJrr`5pk_&@s$t+IQ^XhE/n+?>Kq>0sc$iBep
+o^D##d_W#4:[q$[C;oB0rS7F'~>
+jSo5+pj`a%E-$])][l<<qYgE_rs/Q#p?^YWVhOSis*OmFgA'P)#QFYqmblBpMWoWqE.";%m/$_=
+rrBP*!!kT/R`b'rq!+O=J-::;Fbj)q!!G98[cRGJrr`5pkbIWt%!?rf^XhE/n+?>Kq>0sc$iBep
+o^D##d_W)NK(4?oP02t]rS7F'~>
+jo5A)"Si$(!`*lnWQXDqqu5m\"o\5`gq6>M!!F6gVV:h"rrrAsnDM>llMq(oE/M0dqVD/O@/Bp0
+:4TD#q#CBc$g[ir:N_`*_YX<98;=S8r8[eZrqbC[nGie`KsKM+qYgE`rs8W%q=En-bcF/$!!Emu
+hXUO"s*t~>
+jo5A8:&%<d@WR@)bN8Bnrp'LerV5d8^NT*="B'WEgA'G&"o\8di5gH78d.n-MR_aDh>[I_qZ$ms
+J?.K#s8Vailq.CiFcWoHqZ$aiL:67Bj8T5\qVbBC8dAgZZJ>*KrVl?e#labtoBP/UY]'&("B;;U
+nbh5CJ,~>
+jo5ACK(sj%EH?r8bN8Bnrp'LerV5d8_Ns\As*OmFgA'G&"o\8di5qMTJ-CC@MR_aDh>[I_qZ$ms
+J?.K#s8VhIm!o4YFcWoHqZ$aiL:67Bj8T5\qW*D$J-U7OZJ>*KrVl?e#labtoBP/U[#jg."GO5>
+nbh5CJ,~>
+k5PJR,kq?E0QDiId-UW.k5PV`pZg:]#k@ru)gnO:pt>ZLrV5d'lMq))FI()<rn[SS./NuL;i%sG
+r;Zf#li724E/(OJn,!(f@Z%e]rSdbWq.K3t"@e6Zkl'iI#QF\snD_`I&Fof)!cuoZqYoCPJ,~>
+k5PJUAGAb%=`K1rd-UW.k5PV`pZg:t:@_![;LG@qpt>ZLrV5d,lUh=XFI()<rn[SS./NuL;i%sG
+r;Zf:lq.F\E/(OJn,!(f@Z%e]rSdbWq2t2>"Cd5!kl'iI#QF\snD_`^;t<Na99@]kqYoCPJ,~>
+k5PJXP5'P4G&`8:d-UW.k5PV`pZg;0K(=HlHig2!pt>ZLrV5d/l[T.cFI()<rn[SS./NuL;i%sG
+r;ZfKm!o7bE/(OJn,!(f@Z%e]rSdbWq60=="EoX5kl'iI#QF\snD_`mK^jQqV:Fu0rnma+~>
+k5PF"p](L*BRZZ!mJGrD"oeDjiMmgf!!F0eVV:gsrrN&8lMq&+H(`XZh#@?rqZ$k"N5+ZVs8Q?j
+!!Q)BSBL?equ?m=Eg"B.ro*kXrl=O/"@e9\kl'`F"o\8dhQ\Bs!!HlYlM:G;s*t~>
+k5PFLpdt`bCOVu$mJGrD"oeDjiO)k\8d&%>VV:gsrrN&GlUh:XH(`XZh#@?rqZ$k"N5+ZVs8S#D
+8d/[LSBL?equ?m=Eg"B.ro*kXrmgO2"Cd8#kl'`F"o\8dhR[+b8d'molM:G;s*t~>
+k5PFjpj`QtDLS;'mJGrD"oeDjiP(->JH'uuVV:gsrrN&Rl[T+bH(`XZh#@?rqZ$k"N5+ZVs8T7g
+J-Bt=SBL?equ?m=Eg"B.ro*kXro!<s"Eo[7kl'`F"o\8dhS>'>J-;FglM:G;s*t~>
+kPkS3"S_s#20=tpk5+$9"TJ2]^*iOQ":fgUf_F%t!35tt!'9TL";cE\f_=2$!$D(<#<RmZlM^bS%
+.+$!"`9"#i;'/G!!Q&BT[NK3i;WiT(@hG.7Z+hArT=+_rV5[#2XpbM@a"$3ro*m-~>
+kPkS@:&%<a>',n@k5+$9"TJ2]`a\R4"AX?@f_F%t!5e\,!*o"c"AsNAf_=2$!$D(<#<RmZlM^bV
+;XI'\9Q#Tki;'/G!!Q&BT[NK3i;WiT=n5/f@Z%e]rT=+_rV5[&D"1+#K$3ESro*m-~>
+kPkSIK(sj"F``b[k5+$9"TJ2]bDl.E"Fb`pf_F%t!7^st!-I^\"FPQlf_=2$!$D(<#<RmZlM^bY
+L@'KqIrC(Ji;'/G!!Q&BT[NK3i;WiTMXl9#G)EoqrT=+_rV5[)P4=&*R`jskro*m-~>
+kPkNYpAbA&J#Lukrnm_Yrql000(f2I%==l%p=B6DL]%2RB-$LB":TXQf_=2$!)ECk"qZO!jo#.R
+qu?^*nc/k8FHjf4nKe&5"X%c?[Ggu>rrN*rnc/e^MS&*Njo5J_qsi8tnGiZ+b3A`\s*t~>
+kPkO6pIYU&J#Lukrnm_Yrql04BD"k":4&bfp=B6DWr5NjCfU!t"AX<>f_=2$!)ECk"qZO!jo#.m
+r(6rank'*bFHjf4nKe&5"X%c?[Ggu>rrN+Nnk'$oMS&*Njo5J_qsi<VnO`n<b3A`\s*t~>
+kPkO\pOEEdJ#Lukrnm_Yrql06OS+,,IX@jAp=B6D_u5)dDgh/+"Fb]nf_=2$!)ECk"qZO!jo#/+
+r."crnpgpjFHjf4nKe&5"X%c?[Ggu>rrN+snpgjdMS&*Njo5J_qsi@(nUL_1b3A`\s*t~>
+kl1Y/pAb@.EK%Qnr7q;Sr:88hp&G4)HD/m_f)G_`rW!!*Ea8)6"*C6ep>#ZJV"t&p5cE<-r_37j
+!=D?f!!P$%U"&U2r;[$/@XF`ln,;,C!.j\@"@e9\kl'QA"9%lB.e3QB!e8G\qVqO*~>
+kl1Y=pIYTbEK%Qnr7q;Sr:8EPp.>H_HD/m_f)G`7r^m5cEcUYA"*^Hhp>#ZJV"t&p5cE<-rdar>
+!DQtm8d/@DU"&U2r;[$/@XF`ln,;,C!2]6Y"Cd8#kl'QA"9%lFAb&Fr99IHbqVqO*~>
+kl1YGpOEEpEK%Qnr7q;Sr:8L&p4*9pHD/m_f)G`WrdY'!Ee<e2"+$Zkp>#ZJV"t&p5cE<-rhfXE
+!If+\J-C.CU"&U2r;[$/@XF`ln,;,C!5J)T"Eo[7kl'QA"9%lHOR[i'T?QZuir=N~>
+kl1WbpAb@BG+-\GrnIGTrUeS^pAb=*H(`[\f)G_;rW!$:G*F0?!!?8jch#rl!V\&>!!H?;jlQ^E
+!!+i]nc/eTJ?-URr;[$*<d'Y=jS@X3!28r`"@e9\kl'N@"9.u;'Cl,+%[ti7r8[g-~>
+kl1X=pIYThG+-\GrnIGTrUe`LpIYQ`H(`[\f)G_rr^m8iG*H;&8crmuch#rl!V\&>!!H?;jm,V=
+8c`(1nk'$jJ?-URr;[$*<d'Y=jS@X3!5.kp"Cd8#kl'N@"9.uC<q8ic;52M-r8[g-~>
+kl1XapOEElG+-\GrnIGTrUeg&pOEBqH(`[\f)G`ErdY)uG*IjRJ-1.ech#rl!V\&>!!H?;jmRd!
+J,sh8npgjdJ?-URr;[$*<d'Y=jS@X3!714d"Eo[7kl'N@"9.uHM"6'!Ju6ubr8[g-~>
+l2LeM"SVm!3.7[VpY#QKrq4GJp](F&GbER[f)G^mrW!$IHD#o\!!G-A`U3Z\rrW/;#PnE%4hQFF
+!!6GR!qQBo7=\hVr;['0<csA,g@YC#rrBe(!!GcK]BK4PrrW2mU@A3d/?mh"roF*0~>
+l2LeS:%q6_>^`L%pY#QKrq4]?pdtZ_GbER[f)G_Xr^m8nHD$eu8d&I``U3Z\rrW/;#PnE&4hRFY
+rCR-)I7s0("(?^h%K-83$<D;.ZJ+sMh>[K%nk'$oMS&*NiVruYosaH`"CSIeo`!qOJ,~>
+l2LeWK(jcuG($7?pY#QKrq4lupj`KrGbER[f)G`3rdY)qHD%D1J-:7_`U3Z\rrW/;#PnE'4hS.L
+J,Xs!E.7A."*K-'%K-83$<D;.ZJ+sMh>[K3npgjdMS&*NiVruYou?NP"GX/6o`!qOJ,~>
+l2LaMp&G4`K!=20f`)'QoX5)$!!@J;e+M>m!;l]p"?(_.d3%oZ":U*rjnmj5!r/2dq>^O((]==9
+)KC]Vo)Je5%/^)1*G'JTYgr7@h#@B&nc/e^MS&*Ni;WlWo2tM_"(8e&q;hR+~>
+l2Lakp.>HqK!=20f`)'QoYaT$8cs=0e+M>m!;udf"C-DTdU2Q;"AXc_jnmj5!r/2dq>^g0/j)To
+8lBYf>4bDg68&cF!!aNUG`ArXnGM)A!8d9="Cd8#kl'H>!r__EnO`n1]]AnLs*t~>
+l2Lb,p4*9gK!=20f`)'QoZi-bJ-1%fe+M>m!<)kH"Eo6nduEpK"Fc0:jnmj5!r/2dq>^g05A,4h
+IsQ*nL\-)uE]X^-!!aNUG`ArXnGM)A!9j!("Eo[7kl'H>!r__fnUL_%]]AnLs*t~>
+l2L`Sp&G4aL:64AfDbpNo8`SG"*U3^o[j*Cg\h*T7Y7l%Mt$cL?DuQNh#@KTntQrm!!>W4S3H?@
+#REn@I[.=lnGM&@!8d8H"@e9\kl'E=!rUsdnc/e$R*+gojo9i~>
+l2La2p.>HrL:64AfDbpNo;VLW"*U3^o[j*Ck5@mT@=k`@Wpr[`Ei@[bh#@KTntQrq!!`Q>-otUV
+S8\0p"%G3q&c2P6#Y&laQ*o34r7h5OkOM4J@Z%e]rSRVVr8^fI8d%t[b3f,gs*t~>
+l2LaZp4*9hL:64AfDbpNo=XjK"*U3^o[j*CmJVP<FFpaS_!upWJZ.8qh#@KTntQrq!!`TM7V$C[
+S<Wf!"*n9=*r>pC#Y&laQ*o34r7h5Omdbl2G)EoqrSRVVr9/n*J-2=amJQ)GJ,~>
+lMgnZ#ke6$7Z"_?rRUuMr:!nc!!@A4d.Gri!4Vn,"]^>fk3WrT!!Fp@am]5arri5d`Dd$8!!<ED
+3$n%o#n&k6I#=Z6h=:EsrrDc`!!GcK]BK4MrrMtInGi\eY1r[Lk5Tr~>
+lMgn\;"dKa@Yq\[rRUuMr:#I:8cs4)d.Gri!6kC6"_NP"k3lID8d&Fdam]5arri5d`Dd$8!!<ED
+3&^[["!\`u$2FQ-$Tr?TMP@oBnbh,@!;Z1X"Cd8#kl'B<!W&P\8d'(8g\1X/s*t~>
+lMgn^K_Bp!G)<forRUuMr:$TZJ-0q_d.Gri!8II&"`oI/k4+?"J-:=fam]5arri5d`Dd$8!!EKE
+3(#k-4p*o#+V4AK#n&k6I#=Z6h=:EsrrDodJ-:%Q]BK4MrrMu.nULasY1r[Lk5Tr~>
+lMgk-o`,+aM7`!Mec,^JiZe4!")""Ho@O!BQi-mfArOLiqLnD>"9a=cjSR^3"o@Z<WE9kt!"/f?
+3bj)#T!m#.pAN\E!<2Nh"@e9\kl'B<!rhQsnc/e*QGr4hk5Tr~>
+lMgk<oh#?rM7`!Mec,^Jj^@pW")sXQo@O!B[J`]$D2c6pqPEaT"A=KYjSR^3"o@Z<WE9kt!"/f?
+3bj)#T!m#.pAN\E!<2O]"Cd8#kl'B<!rhXfnk'$^QGr4hk5Tr~>
+lMgkGomd0gM7`!Mec,^Jk`5Li"*^-Xo@O!BbPcqpEf@cuqS)KM",OGIqqM,SqX2q6=;9ou$NUl$
+C41u2[a=11rRq2NrpkRBG)EoqrSIPUrpba5J-2+Vm/?)HJ,~>
+lMgjNo`,+[M7VpLeGfUG[KHC,"D4"Enc%2@!-J2?#6T"0`pWih%e9T&9Vg53rnIGWr:ApkZ[t1$
+!"'N/@"b8acJe<irn%2@!!GcK]BK4LrrN%3nGiZ%Y2/m8s*t~>
+lMgjloh#?pM7VpLeGfUG`_?8%"E9^Onc%2@!1a$\#>9*#`pWim<:WWaC8BDQrnIGYr:ApkZ[t@J
+!q$$t"Uu:u6=>J@\Ba('qYo+Hnk'$oMS&*Nh>[NRPOV6IGHTcsk5Tr~>
+lMgk-omd0iM7VpLeGfUGdXh:G"Ep-Unc%2@!4r/[#CgcW`pWipL@KcrUt,/;g]%QWoA[s"Jj^1Q
+mJm\&(F_:0@"b8acJe<irn%2@J-:%Q]BK4LrrN&&nUL^pY2/m8s*t~>
+lMgj+o`,+KLq)UFeGfULp14%#"C786nG_)?!)WXp#820Hc1:l3D=RZ0'U$B"rS%8TrV>p?cU[p6
+"pu+Y&Io9OoDf.4<.1msjRE!Dec,U_o)Jn_MS&*Nh>[NT`:3g11n)VWroa<3~>
+lMgjSoh#?jLq)UFeGfULp5]#B"Dj=EnG_)?!.t2B#>fQ1c1:l3QL[WN;Ner`rS%8_rV>p?cY5-e
+,9%F7&ePT`"o\W;"UGMJ'cS>C-7CZLIBCrYnG3%5rr?-l8d&U\]BK4LrrN,KnO`pkR`k4"kPp&~>
+lMgjqomd0kLq)UFeGfULp8n.A"F$*PnG_)?!3#mI#CLZ]c1:l3ZgrVLJ!._8rS%8^rV>p?c[o1m
+4Y@ln&ePT`r!3lF'H8;N4$Z/&85t#>dcBonrRLoJM=Z6#G)EoqrS@JSrnd0q"Fcf_nG_VNJ,~>
+lMgico`,+1KX0V7e,KLJjV[mq"BUc+mf(l=!&4BP#U"Aae+Nb?h?WTO")+mopt5TKrV>R_r;[$V
+9ji7&N#_Hi"r;$DcLC]0e,KCio)Jn_MS&*Nh#@EP(@hG.&rO9_r9+*1~>
+lMgj?oh#?bKX0V7e,KLJl!"!W"DX+>mf(l=!,VX,#ZQ&@e+Nb?k"kP?"*h$*pt5TVrV>_N5Wh"`
+5tta4Ll=In./tb)/1rV52aV>LcLC]0e,KDUo1B-pMS&*Nh#@EP=n5/f:l;jHr9+*1~>
+lMgjcomd0nKX0V7e,KLJl\bUj"F$$Kmf(l=!1<b9#^U`fe+Nb?l@\YX",*l6pt5TVrV>f*DJ3Ka
+9hf#@Ll>:171MdX8PDr[=^GNQRa1F!rmUlIO7Rl)G)EoqrS7DRqhjrp"Fc6>k5=EBJ,~>
+lMgiLo`,*rFfF-jdf0@ERf!-g9T[-Xrn.5N%/p54/psPLq#CBk?1Isu0:L,Srn%/MT)AWo$!qV7
+Z+n%CoDf"(H)B<jdJj1go)Jn_MS&*Nh#@ES;=OVgG,j<lkPp&~>
+lMgj.oL]44WS@3rrrMu'r(7*'OM^A`f`(qLr^mGuI&>Tls8VtRnk'$kR`t:#fDc8j8Ou<=7::+u
+Z+n%er&+sB3'',a5X@b0H)B<jdJj2So1B-pMS&*Nh#@ESK(2G8I&brrkPp&~>
+lMgjWoRI$nWS@3rrrMu9r."opOM^A`f`(r+rdY9!I&>Tls8VttnpgjmR`t:#fDc9)IXHHbEF<dL
+Z+n&)r*Be=@:WtbD/jZ?H)B<jdJj3-o7-seMS&*Nh#@ESVso3<Wn[=3s*t~>
+lMgiKoDf"dS^@!-e,KLKoeuaK"@eBclM]E9!:0R`#X!X>hYR9PrmL?;"9a7bjSRR/!'pJ_#;pOa
+^>J8AIe3UC"+-iqpX0!@+7fI87Z+hArS.>PM=CQK<h7V/rojB4~>
+lMgj-oL]7"S^@!-e,KLKoks_#"CmG+lM]E9!:g"[#[Mt_hYR9Prn[-;"A=KZjSRR/!-eB6#?c)0
+^>J8ASGGV\77Kd<8P2X&Ut>@grr?Hu8d&U\]BK4JrrB(h8d&t$d.@8#s*t~>
+lMgjVoRI'nS^@!-e,KLKopG]."F,p@lM]E9!;6;@#^1a#hYR9ProEU"",aVLqq(iJT`0HIIro^n
+^>J8AZi"nRF`qtSH@1-jIs\!CpX0!@O7Rl)G)EoqrS.>P_sr6[I%AXUrojB4~>
+lMgiKoDf".OML/[df0@G]DV^43JtH4rRq2Na8Gu@8qaS3r;Q]sqb$DZ"@o9;o`!PD!8m_T#QeFb
+WnI+FrNPkn")jd[p!Nd>+7fI87Z+hArS.>PXmlAo6'B7UrojB4~>
+lMgj-oL]6aOML/[df0@GbPb$9?AcAYrRq2NfDS;E@YD,Kr;Q]sqgS*."DFU\o`!PD!9j>Q#AJ^g
+g%PFD`q)e)Fe7(TdJj2So1B-pMS&*Ng]%8lnO`pnP/cqhkl6/~>
+lMgjVoRI'oOML/[df0@GfDU4&H&B5trRq2Nj8FK2FG.$]r;Q]sqkEY3"G*Auo`!PD!:Ti9#B,-m
+g%PFDf(smmJ-1(ge+M,g!0?`%"Eo[7kl'99!7gUi"FH<Omf)GMJ,~>
+lMgiKo)JknXk`^!rrMmdrW!'TL:?=Cg&D&Mr;Zt&M7VmKrr3#u^@D7,'9U,rr7V)MGPqLI,BAjZ
+kktJ\iq!-P?CB+0dJj1go)Jn_MS&*Ng]%8nnGi\GMS/0Okl6/~>
+lMgj-o1B+)Xk`^!rrMnBr^m;sL:?=Cg&D&frCR3+M7VmKrr3#ucLOR1;3A][r7V)MTD_@f<H=/7
+kktJ\lLRUMDOJf@dJj2So1B-pMS&*Ng]%9)nO`pgMS/0Okl6/~>
+lMgjVo7-prXk`^!rrMngrdY,tL:?=Cg&D'$rI>#lM7VmKrr3#ug@BasJ!%S4r7V)M]D[6cH#et[
+kktJ\nFM/4H'utKdJj3-o7-seMS&*Ng]%95nULahMS/0Okl6/~>
+lMgiKo)Jn%N5k5^df0@H`Voi?-A8\br7V)MKDbcQBTBpqrr)itqD[sF"(A:dptG`Kq],P7#u>oA
+de!J<s8EQ$!!H,^aRB,Vrr=/4!!GcK]BK4JrrCpG!!F^([,h/Ks*t~>
+lMgj-o1B-]P/ckddf0@He,DrB=+mm>r7V)MVu93jDN;R"rr)itqJc!t"*L^#ptG`Kr*K=o$"J=U
+de!J<s8H!i8d&gkaRB,Vrr?Hu8d&U\]BK4JrrD6P8d&7M[,h/Ks*t~>
+lMgjVnpgh.`pEWOrrN)SrdY,tKX0Y9g&D&grI>#kNkt)]rVlopRdtt2KWNu(gA_3PNr=J7EdOM.
+oD\direL,r"F--On,Cc8!0?`%"Eo[7kl'99!:KB-"F>d/jS\6AJ,~>
+lMgi_nc/e@W7^bAdf0UK8cSi2JZdo,g&D%[rW!**F-F]6rr)itrMT2d"=]b]n,D)A!42V("VPd1
+[c@5`rrN*WoDf"[Nl(/^df0:ho)Jn_MS&*Ng]%91nGi\3JZdr-kl6/~>
+lMgj;nk'$jWn?tCdf0UKHqI"1JZdo,g&D&4r^m>fF-F]6rr)itrP%hp"Bq59n,D)A!6P13"]0/o
+[c@5`rrN+<oL]6qNl(/^df0;To1B-pMS&*Ng]%9;nO`p_JZdr-kl6/~>
+lMgj`npgjrWn?tCdf0UKU4@cAJZdo,g&D&VrdY0%F-F]6rr)itrQk%b"Fli^n,D)A!87=$"ak9F
+[c@5`rrN+foRI'iNl(/^df0<.o7-seMS&*Ng]%9AnULaiJZdr-kl6/~>
+lMgj&nGi\U\`!5]e,K^Q\c;^@J>q;ug&D%7rW!'6G+$YHqu6]l,kD!=!dqH:qV2#M;#L@t5^/[?
+nGW=c!+tj'">G_Fkl&s0!$Ce4"@e9\kl'99!8d5G"<2ijh"g16J,~>
+lMgjOnO`q!\`!5]e,K^QbXtK(J>q;ug&D%or^m;iG+$YHqu6]lA+N:q98'b6qV2#MK)J:F??_j]
+nGW=c!0ZtH"C$bqkl&s0!+>Cj"Cd8#kl'99!9irF"B'`Lh"g16J,~>
+lMgjnnULb"\`!5]e,K^QfRSL%J>q;ug&D&DrdY-!G+$YHqu6]lORdo(M72I@g]%8PrI>&nGFH_E
+rVc`rZLiYMHA]>urR1]GO7Rl)G)EoqrS.>PmdYf1I"/0Oq<7j/~>
+lMgjIn,NSP^?#%fe,K[L0E;0+Ut>=nrr=&<!!FEiT@EQ2rrN(_nc/e\U=/]5h>[N="TAB)#&/^m
+h>$pJ!06[O"<iH*jS[I+!$Ce4"@e9\kl'99!7pZ?"<2cfg\C"4J,~>
+lMgjhn4Egu^Z>.ge,K[LCJ%6OUt>=nrr?@(8d&+=T@EQ2rrN)&nk'$tU=/]5h>[ND:&[`g9Pf?a
+h>$pJ!3Yrd"BC,^jS[I+!+>Cj"Cd8#kl'99!93N@"B'ZHg\C"4J,~>
+lMgk*n:1Y$^uY7he,K[LQ@OL;Ut>=nrrA)YJ-:1DT@EQ2rrN)<nUL_9de*OprrM_CrdY0%DhG4K
+q#(-l`q4caH\Acer6kTFO7Rl)G)EoqrS.>Plg]K.I!qsJpuqa.~>
+lMgk+mf3JB]&NG_eGfdP`.DZ`WS$purrDfl!!Fj#VV1b@rrMU)o)Jn&NkaiVh>[J1r;[!SFHaZ/
+rVZZq^%;:-&V-t>qU5BD+7fI87Z+hArS.>P^@;1+)h"U;puqa.~>
+lMgk:mn*^m^#JbbeGfdPd[l,RWS$purrDln8d&7DVV1b@rrM[no1B-]O2'rWh>[JTrCR5qFHaZ/
+rVZZqch'g4:k5Y(qU5BD@.Qtn@Z%e]rS.>PdIBg3;LPFrpuqa.~>
+lMgkEmskP!^uG(eeGfdPgp<B1WS$purrDrpJ-:+EVV1b@rrMbLo7-snOMC&Xh>[JmrI>&qFHaZ/
+rVZZqh=Q4#I=SEUqU5BDO7Rl)G)EoqrS.>PhXQ+!I!qmGpuqa.~>
+lMgn\$h"&u)kc'Zr7(`Nq;fK$_;b7DrrCOH!!G?5XPWgMrrN(Gnc/btX4m=(rr=2?!!QYWVUkG>
+r;Qc]oDf!qI&5Kidf0:ho)Jn_MS&*Ng]%8KnGi\@IAkoqkl6/~>
+lMgn];X[3\>-6ZQr7(`Nq;fK$_;b7DrrD!U8d&FMXPWgMrrN(knk'"*X4m=(rr?I*8d/mWVUkG>
+r;Qcco1B+4V:bOjrr?Hu8d&U\]BK4JrrBb&8d&4DW8%+2s*t~>
+lMgn^L$sNpLUQ(2r7(`Nq;fK$_;b7DrrD<^J-:%GXPWgMrrN)0npggpX4m=(rrA/ZJ-Bn@VUkG>
+r;Qcgo7-pjV:bOjrrA,OJ-:%Q]BK4JrrCI:J-:.GW8%+2s*t~>
+lMgna=mc7n#^=qhqYo(G#6"5XhW+2)gA_/Zr;ZsiKX0Y8qYpWrk6LSY"=9DUmeu&C!4Vn,"X7rG
+]]]1hrrN*4oDeu,T$m8Zrr=/4!!GcK]BK4Jrr@Q=!!G30XPN^9s*t~>
+lMgnaM!dk=:6X>uqYo(G#6"5XhW+2)gA_/prCR3$KX0Y8qYpWrlqd4F"Bh)4meu&C!6kC6"]TK$
+]]]1hrrN+#oL]4+T$m8Zrr?Hu8d&U\]BK4JrrAkb8d&CKXPN^9s*t~>
+lMgnaX6tKAJu@8hqYo(G#6"5XhW+2)gA_0+rI>#nKX0Y8qYpWrmt:4^"FlcZmeu&C!8II&"aY0J
+]]]1hrrN+UoRI$iT$m8ZrrA,OJ-:%Q]BK4JrrBh(J-:(GXPN^9s*t~>
+l2Ladli7/P_!(Okf)GpPqY9marn@APO8T%]<J\3Kr;$?nr+5I""9NhTiVMI3!)3=k"]0Q=dIR;5
+rr>7T!!H;gbOPS\rr=/4!!GcK]BK4Jrr>mc!!GrIZJtcFs*t~>
+l2Lb%lq.D"`p!0qf)GpPqY9marn@APYl./sAr+"\r;$?nr/gJA"+di<qVV;QJGi(D@salro)ALc
+!-\!,"DX:Hnc%#;!+>Cj"Cd8#kl'99!.s`5"Cd"hiqqs>J,~>
+l2Lb6m!o5'b38Tuf)GpPqY9marn@APa8LMkF,7Bir;$?nr35aB",O>CqVV;QVYu#KEdOJ,o)ALc
+!1rh5"F6?Wnc%#;!0?`%"Eo[7kl'99!3#F<"ET4$iqqs>J,~>
+l2LeY+m]14%Y!:(qYmPq!-%l:"CdA+lM^PY!rgXNo)JnUT[EB1iVrr="TAB)&o`Z8iqiKN!,D-+
+"@J<imJbT7!$Ce4"@e9\kl'99!#Y5+"D!A#kPaWEJ,~>
+l2LeZ@I-Si;OZJ3qYmPq!1EdX"Dj(5lM^PY!rh%Mo1B-rT[EB1iVrrE:&[`g:iM6!iqiKN!0m+J
+"CmS4mJbT7!+>Cj"Cd8#kl'99!*etc"Diq+kPaWEJ,~>
+l2Le[O6hB#KWa2$qYmPq!4_uX"EKL;lM^PY!rh;5npgh8dI[@rrrMYArdY0"E/:s^qYC-k[.JkO
+HBH/5rmUlIO7Rl)G)EoqrS.>PN:DE$E/D0hrTO93~>
+l2Le`R-FYS0!+4.r2fnu9`4qoEg"H1rqQKoqb-M\":L1%kksE>!.4YE"[[F%b4#<)rrA>V!!G!5
+]]f=Crr=/4!!GcK]BK4KrrCC8!!O'WP/Zhfkl6/~>
+l2Le`Zg(-cB"I-tr2fnuJGi(CEg"H1rqQKoqgS-/"AXrikksE>!2BEa"^cJBb4#<)rrBCt8d&@U
+]]f=Crr?Hu8d&U\]BK4KrrCmF8d/%3P/Zhfkl6/~>
+l2Le`aQe9YOMp;Sr2fnuVYu#JEg"H1rqQKoqkNb5"FlHFkksE>!58>]"a"sWb4#<)rrC15J-:4V
+]]f=CrrA,OJ-:%Q]BK4KrrD6PJ-C=@P/Zhfkl6/~>
+kl1\U.-U^79YB]crN?/#/H,VQ%<Rr\nc&=`!WK_%!!??&g%OG*!W*`5!!NXDKWj5,q#:?5oDf"9
+Ks]q=e,KCio)Jn_MS&*Nh#@A$nGi_PGb3=TrojB4~>
+kl1\VAa)eiHcGCGrN?/#B`:U-:3;iHnc&=`!WL=68cs%3g%OG*!W61$8d.q+KWj5,q#:?EoL]6c
+Ks]q=e,KDUo1B-pMS&*Nh#@AKnO`shGb3=TrojB4~>
+kl1\WP3IK"SBgHprN?/#QMuC<IWUq#nc&=`!WLdCJ-1D&g%OG*!W@uVJ-CC?KWj5,q#:?QoRI'l
+Ks]q=e,KE/o7-seMS&*Nh#@AfnULddGb3=TrojB4~>
+kl1__]*%9t"TqN7m.^I_rr<?(!!F0aS^I*'rrMsQo)Jn8QH/Ckj8T+Wr;[!XFHjc2rV6BmmdpJ^%
+Y1Y;q:#?D+7fI87Z+hArS@JSq],/,"Ti+aXkrm:s*t~>
+kl1__b=q.m"\a?dm.^I_rr>mp8d&%:S^I*'rrMt6o1B-dQH/Ckj8T+prCR5sFHjc2rV6Bmo(5NW
+:4TG&q:#?D@.Qtn@Z%e]rS@JSr*Jnc"DWOjhYH@7J,~>
+kl1__f7E1:"bE;nm.^I_rr@`OJ-:4DS^I*'rrMt`o7-snQH/Ckj8T,.rI>&pFHjc2rV6Bmp@Nk<
+IXnNVq:#?DO7Rl)G)EoqrS@JSrJpDu"E/mohYH@7J,~>
+kPkSXIcg\8"&HSrp\b#trrD*X!!FToUXo/4rrN(nnc/c4ZJbQ=rr>1\!!WL7J>q2prqQKorYP2,
+"*gWopXB-B+7fI87Z+hArS@JRTCDmb-?>3`lMTiFJ,~>
+kPkSXTBAfN9RXtJp\b#trrDB`8d&1@UXo/4rrN)2nk'"5ZJbQ=rr@0>8d/s[WS$qDq#:Bo>4bDh
+HDK3fe,KDUo1B-pMS&*Nh>[JenO`scEfe*%r9+*1~>
+kPkSX\EAAHJY1<Up\b#trrDTfJ-:.DUXo/4rrN)CnpggsZJbQ=rrAYhJ-BnBWS$qDq#:BoMtDN%
+I&,Ehe,KE/o7-seMS&*Nh>[K$nULdfEfe*%r9+*1~>
+kPkV^nP\HK"[]6TpAFourrBt8!!G$*WS@4@rrMd5o)JnST$R!,jo5>,r;[!KEf[rur:^-j9(W)c
+@[tj<e,KCio)Jn_MS&*NhZ!WR,k:p>!aC&Ie+EY&s*t~>
+kPkV^nU]do"a.KDpAFourrCRI8d&=HWS@4@rrMh"o1B-pT$R!,jo5>:rCR5oEf[rur:^-jIe657
+E1G>Je,KDUo1B-pMS&*NhZ!WSA+<.pB7-K'o`"%RJ,~>
+kPkV^nY>2r"e*NupAFourrD$VJ-:+GWS@4@rrMkRnpgh6cgq(srrD6\J-C4=O1siUpAY,goRI$i
+SC-uXrrA,OJ-:%Q]BK4MrrN(]nULd]I&#0_roa<3~>
+k5PM[k=4M4"YQ&$o_\WtrrA\i!!GK:Y2K0LrrN(So)JmuLqMmIjo5<jr;["&I%o*^rq??lEqB>7
+:6irjrm^rJ+7fI87Z+hArSIPSL[b?J.rpT[jnn3?J,~>
+k5PM[k]l/\"_b%#o_\WtrrBY/8d&IOY2K0LrrN(so1B-[MnJ3Ljo5=CrCR6*I%o*^rq??lRe02T
+B9gU.rm^rJ@.Qtn@Z%e]rSIPSWpr[b=)s82jnn3?J,~>
+k5PM[l($gb"d6X`o_\WtrrCCDJ-:%HY2K0LrrN)6npgh$]]T+QrrB>&J-Bq?U=8c6pAY-&oRI'j
+Q-&OpeGfN0o7-seMS&*NhZ!SnnULdeEf@Tkqr[p/~>
+k5PP_q;O6k!!O-]eFE>4])MbXr;ZsmKs]q=o`"sU%eBZ&;Q&1@k5PJN#lXf-)KCYEjSSWM!1i`^
+"?MRZli,E6!$Ce4"@e9\kl'E=!RD&B!!WjDI\bE`roX62~>
+k5PP_q;Z;O8d/=ag%"k9])Mc)rCR3%Ks]q=o`"sY<:`]aDPu.\k5PJS;#X&j;K7T(jSSWM!4h_o
+"CI2*li,E6!+>Cj"Cd8#kl'E=!SpTC8d8%+I\bE`roX62~>
+k5PP_q;de#J-Cb7hXUC>])McErI>#mKs]q=o`"s]L@]otJu@8pk5PJVK`6K*HuY%RjSSWM!7(4e
+"F?*Eli,E6!0?`%"Eo[7kl'E=!U#.,J-LI?I\bE`roX62~>
+jo5G^pYS?t!!WX*Z0h8_rk8=3=T&4&=,OWRrUg*jr+Ya&"<*NDm/?,I!/pdU"\F!1cLCi+rrC15
+!!FU(\E<_=rr=/4!!GcK]BK4OrrM:.nc/jq:Nhr;kPF<?J,~>
+jo5G^pY^2R8d8%@_X7'prk8=3M#BpKBSsFcrUg*jr0-_E"B:W)m/?,I!3Q2l"^u\IcLCi+rrC^D
+8d&4O\E<_=rr?Hu8d&U\]BK4OrrMOtnO`soG*B`)qW7a-~>
+jo5G^pYhS#J-LV"c0b6&rk8=3XSmYPFGd]orUg*jr3GpE"FlZTm/?,I!6+ne"`ns[cLCi+rrD*O
+J-:7U\E<_=rrA,OJ-:%Q]BK4OrrM_SnULd_G*B`)qW7a-~>
+jSo>]p>/^*!!OX"g@G+=^]+9nr;Zt2Nkju[o`#!ldf]1A")b@#puq_Yq],S8"Uo7&ZJbNMrrDW^
+!!F!fYi,B-rr=/4!!GcK]BK4PrrM^JnGibPEepsSp&=(QJ,~>
+jSo>]p>:>W8d/[thX^OA^]+:RrCR3/Nkju[o`#!lhG!N5"+7?1puq_Yr*K@p"\rriZJbNMrrD`a
+8d&"CYi,B-rr?Hu8d&U\]BK4PrrMh3nOa!iEepsSp&=(QJ,~>
+jSo>]p>DP#J-CtCipusE^]+;(rI>#lNkju[o`#!ljb!)S",=&;puq_YrJpl-"b(BEZJbNMrrDid
+J-::PYi,B-rrA,OJ-:%Q]BK4PrrMqanULgdEepsSp&=(QJ,~>
+j8T8]p>U&nhuErc:Tj*Yr;OS5!#5A3"EK[Fmf)hX!W,O]!!G-KcLLnurrB+u!!PE,QH/Cko`"sk
+-M7?A"+@-%psf<D+7fI87Z+hArSmhXj!aEt"tFPCV9n]/jSs`~>
+j8T8]p>V6/i(=2KJ&(IFr;OS5!*K1l"EK[Fmf)hX!W.?;8d&LkcLLnurrC"98d/LDQH/Cko`"sk
+AG&Ot97<bmpsf<D@.Qtn@Z%e]rSmhXlXoZZ#$5_pV9n]/jSs`~>
+j8T8]p>W'&i.)#`U!;uur;OS5!/g`*"EK[Fmf)hX!W/Y_J-2=enc%eQ!7h$us)nL1a6iitrrN+^
+oRI$lW7q$rrrA,OJ-:%Q]BK4QrrMYSnULggDh=h4n,28HJ,~>
+ir9/\pZ.SOh>d^)K])IurPed:oDJXm%<Rr\o)A7\!WK_&!!EL[]&ihRrr>1\!!NI<JZIN!o)A\b
+oDeu+T@<J_rr=/4!!GcK]BK4RrrK_KnGib<D18(tlMBQ@J,~>
+ir9/\pZ/;QhF[r\U>tkArPed:pAISe:3;iHo)A7\!WL=78d%hD]&ihRrr@0?8d.k(JZIN!o)A]@
+oL]4+T@<J_rr?Hu8d&U\]BK4RrrLGMnOa!cDLS1ulMBQ@J,~>
+ir9/\pZ/f;hLGci\E*8XrPed:q>GgIIWUq#o)A7\!WLdCJ-1_@jnn<B!1s.>"E8pmg@t1<!2fC=
+"+-Zhp!j!AO7Rl)G)EoqrT!nYh2LlS#'k-9T#g3nj8XW~>
+iVs&[puoFNh#ITiD9q_HrQ"p<ci!hH)0h_#o^Vq^qCM4<"AP`Dp&=:W!6b<@"Y=_W_!:jgrr@67
+!!H2dbOPS^rr=/4!!GE?\`WhOrrM_0n,N\IDgn4ok5##:s*t~>
+iVs&[puoY3h+@iMP1K-trQ"p<h>KqK;L"b\o^Vq^qIoIm"Dajbp&=:W!8@BD"^#i._!:jgrrAY_
+8d&jpbOPS^rr?Hu8d&IV\`WhOrrMh]n4EpgDgn4ok5##:s*t~>
+iVs&[puoe]h1,Z`Y1rI@rQ"p<kP]o6H[)+0o^Vq^qNUT%"G*E#p&=:W!9O00"aG*N_!:jgrrBY&
+J-:1bbOPS^rrA,OJ-:+Q\`WhOrrMr)n:1aeDgn4ok5##:s*t~>
+i;Wu[qWuaU$Jb[c#%#OAq#/>7!3c>$"=&5ef(SY6!WAP[!!F%"_s@9err?=&!!QPSUt,,:o)A]d
+oDf"ZOMgGaec,Uknc/h9HIhZarosFaqk"ku!!i`qEe9n#jS/Z5s*t~>
+i;Wu[qWuaq:u+_I:5I?dq#/>7!64t0"BBcBf(SY6!WBIu8d&%T_s@9err@uU8d/mVUt,,:o)A^(
+oL]6qOMgGaec,VWnk''gOk91$rosFar4?;*8dJ*tEe9n#jS/Z5s*t~>
+i;Wu[qWub0K&(q\Ju72gq#/>7!8%1""F5<ff(SY6!WC14J-:@b_s@9errB5#J-Bq@Ut,,:o)A^;
+oRI'jOMgGaec,W1npgmqU=f&6rosFarQgMoJ-^XGEe9n#jS/Z5s*t~>
+hZ!`Uo%pZ;g].K^?-_m5rQG3@Mu<VY0RftTq!e:anJ:]r")+moq!A"]k61ba"W_T@]&rn[rrCI=
+!!Fg/]''%Brr=/1!!X3S]^Y^orpKdflAHnV!!jBGG)3!9k4el6s*t~>
+hZ!`Uo%poqge%`FLXbberQG3@Xo1ip=am=(q!e:ao3(ZW"*h$*q!A"]mS3[Q"]KE!]&rn[rrCpJ
+8d&:R]''%Brr?Hr8d8C[b4,3(rpKdfn>p-h8dJ:-G)3!9k4el6s*t~>
+hZ!`Uo%q*DgjfQ[V:b52rQG3@`Vk;iG^cUGq!e:aonr?k",*l6q!A"]o7Hsl"ab6I]&rn[rrD6S
+J-:4U]''%BrrA,LJ-Lh3eF<82rpKdfoYls^J-^L@G)3!9k4el6s*t~>
+h>[ZWpZTt`,hrA'$uO\eq>SY=!,2<2"?M+:htljB!W@H<!!FsDbjbW!rr@EE!!Q#@T$R!,nc&Xd
+"SD`t(50!Qqpk]H+70%7)dScMnbN(\rr2]m"THu<9*F_a#ms"=IZq"_lM:G;s*t~>
+h>[ZWpZTtq?JJ-V;N]c(q>SY=!0mFS"C6S]htljB!WA_`8d&IhbjbW!rrAel8d/[LT$R!,nc&Xe
+9_D!\;M;@8qpk]H@-pPm>`#`8o(i1]rr2]m"TIDfIn]?(#u+cHIZq"_lM:G;s*t~>
+h>[ZWpZTu)LtmLaKWEquq>SY=!4;]T"Eo@!htljB!WBY%J-:@jbjbW!rrBb2J-C">T$R!,nc&Xf
+K(XWsI>"ocqpk]HO6qH(MlF\OoD/:^rr2]m"TI]/V1S2e$%?u9IZq"_lM:G;s*t~>
+h#@TXqXE@]F;EX3"W<3Xo)&F4rr>Rf!!GcE[,_)QrrM$_oDf!sK"0n=mf*=^'`J(9%W7$-i;)mB
+!WFSA!!EISWS@3urr=/*!!`TO7UCD#R[X2E"+FiG&+0E)&j^D^N2+/Bn,!%@s*t~>
+h#@TXqXE@]N`Oq-"^7_^o)&F4rr@HF8d&RU[,_)QrrM:YoL]6ZL:H=Amf*=`=T1nr:2blni;)mB
+!WHa)8d%h:WS@3urr?Hk8dA%!HAeDs[^Q.D"/:s%<UNHd:g\3hN2+/Bn,!%@s*t~>
+h#@TXqXE@]TS2*N"c9\Jo)&F4rrAknJ-:"J[,_)QrrMJ=o7-q#\E*PTrrN"SrdY0$E/(^Wq=+Cb
+rfm)+"Fkm"g\B>!!0?Ap#_J/2XLc<lb00e."2;(4L[K["I!'IVN2+/Bn,!%@s*t~>
+gA_BUpZpGDA.IAp"?!RMpANA<!$qLC"B1,fkPalL!W6-m!!Gffeb&k0rrADa!!PH-QcSUnn,EAc
+oDeu/T[`Ybrr=.]!!t5jG_r*'dHC3#h>`!~>
+gA_BUpZpGEK2UJs"Dkm;pANA<!+Yt""D3J$kPalL!W7cF8d&h'eb&k0rrBJ*8d/LDQcSUnn,EB@
+oL]4-T[`Ybrr?HI8dSU9G_r*'dHC3#h>`!~>
+gA_BUpZpGFRY'=F"I$pjpANA<!0[;2"E]I2kPalL!W8thJ-:G!eb&k0rrC7@JH'cpQcSUnn,EBd
+oRI$jT[`YbrrA,#J-gF<G_r*'dHC3#h>`!~>
+g&D<Vr:K4%ZsO=!!!NREf^AS7df0:Mr;Zt/NPFcWn,EFfa7B96'9U/sr9sXc./j2M")!1dg\:.9
+!.shC"B:c4o)@5?!$Ce4!\Go/f)Q$Y.ri5UmeZq<s*t~>
+g&D<Vr:K4%[t%?38d.qNg$\\8df0;@rCR3.NPFcWn,EFfealB9;3A`\r9sXcB)YC+95K0\g\:.9
+!2fB\"DX=Jo)@5?!+>Cjs&]7qf1H9@?&-/JmeZq<s*t~>
+g&D<Vr:K4%\<qm(J-CP'g@"e9df0<!rI>#lNPFcWn,EFfht)@$J!%V5r9sXcPl6+8Dh5"Ep[8%]
+_"<-[HC2qIrmq)LO7Rl'GBn\hJ-LRk^=r#OrnRO(~>
+fDc*Tqt&mqZ=k!/!!FdZk4SZ%rrCgO!!I,#`9mQlrrN!Vo)Jl'Xk`^@rrBD(!!OopP/6G]mf*9h
+oDf"ZOi6Ydf)G^lo)Jt_FFe0r+9^j-":,u"5ofV!"W2O:o(i7?s*t~>
+fDc*Tqt&mq[=hQ98d&\=k4SZ%rrD3Z8d'*q`9mQlrrN"9o1B+.Xk`^@rrC1>8d/=<P/6G]mf*:*
+oL]6qOi6Ydf)G_Xo1B3pFFnpW=A7mM"AMfu@TE.p"^.;Lo(i7?s*t~>
+fDc*Tqt&mq[[;^'J-:nOk4SZ%rrDHaJ-9qU`9mQlrrN"co7-prXk`^@rrCaNJ-C1=P/6G]mf*:;
+oRI'jOi6Ydf)G`2o76j_"+uJeK'%RdIXHHeIeS?rLp>k.q>K.LJ,~>
+ec,mRqXNUl\8s"R!!E[eh!k3krrB\0!!NOIQ-/Uqmf*=eV"4Qh.@JBJrpg!g7/[)h>(*3sp&=CZ
+!7g]A"=oAAkl'*4!$Ce4%7Pf?[^N-%G$@?g+VbIZ!"98O,rS>#EdiXsO-3'-!!NdIf^S_8huA3~>
+ec,mRqXNUl\;FVL8d%t`h!k3krrC@C8d.n0Q-/Uqmf*=e]^n_u>+*S&rpg!gHMpG>B76T+p&=CZ
+!9*QB"BgVokl'*4!+>Cj%:Od[[^N-'KQV!8=&Mie8dnHm='fHTGCG1#O-=PV8d/+Tg[P%;huA3~>
+ec,mRqXNUl\=860J-:M/h!k3krrCmRJ-CFDQ-/Uqmf*=ecLZPhJ!nLKrpg!gUA]TGEIFY5p&=CZ
+!9s-+"FH$<kl'*4!0?`%$?grm[^N-'Nei@=rdXTk%"<VPH[0m_IY3H;P`>Be"bj&7nG3%?s*t~>
+e,K^QqXNXp]SSiUhZ*dcdd-`.fDbi;r;Zs2G+-bKm/I+Z)Y="4!dqH:qXXXdci!hI)0(SGjnnHF
+!WEAt!!F'jZJtc4rr=/4!"qbW[+OEmcGI#jU7.@/N.uLtF8U%iGCbC#LlIRcTW#**_T9cO#ke6%
+'7o05qYoIRJ,~>
+e,K^QqXNXp]U*D-hb"$(dd-`.fDbiYrCR2fG+-bKm/I+[>P(Mj98'b6qXXXdh>KqL;K7W+jnnHF
+!WGmf8d&%FZJtc4rr?Hu8ePTh[+OEmcGI#jU7.@/N/2t4I/J:%I=[$)LlIRcTW#**_T9ce:A.9`
+<hA=@qYoIRJ,~>
+e,K[PqXNXp]V18?J-;IllhUP3rrC7@J-::DRa:TlrrMkQo7-q"[c@5TrrD6\J-C:>Mn8$ImJd4d
+K_9iuI>"ocqptcIO7Rl7G)3NXj4_eq[]?-kQ&pr\L4k3WK)^B3K8#,@P*quAYdqWla/agcJ-C_7
+iplmEiW"E~>
+dJjLOqXWe!^nP'OhuEmGa6*0rf`(qrr;Zs=Gb<LYm/I+bJb&jE7&&-%rq$-i>l=X+8U6lPo)A%V
+!WF_E!!EISWS@4!rr=/4!"qbY]'&n`o'>Amf$DIU^:LbYYPPC4Z*h0Y`m*#fiTBLrmc()Uo`,+G
+ZKCiXir=N~>
+dJjLOqXWe!^nuHZi(=,kaQE9sf`(rDrCR2jGb<LYm/I+bV"71]B;3iHrq$-iMu?6O@<nEho)A%V
+!WHj,8d%h:WS@4!rr?Hu8ePTj]'&n`o'>Amf$DIU^:LbYYPPC4Z*h0Y`m*#fiTBLrmc(QPoh#?u
+^?5+dir=N~>
+dJjLOqXWe!^oEQMi.(roal`Btf`(rarI>#tGb<LYm/I+b^%-[UU=/]5oD\fnrI>&mH(E7OrpB^d
+rg*5-"Fkm"g\BA"!0?`%&pB/DkP=lClf?mQccO)=]!eoJqQ:@6[CX/nc.(M,k3VU*ikC0?J-:tR
+k4SZ3s*t~>
+ci4=Nqt97.aKp@Q"QBCa3PjeMrn7;O;uH\!-@DWApZqh[j9P;W":pO.l2:2R!TO=^!!NdJL9fb5
+li-rkoDeu,T[`Ycrr=/4!"qbY]BK4nrr2ikp@Ie?lK@9hi;;C=i8Wh\lL+69q"jpfrWDu]ZQAc>
+"U8r"meZqDs*t~>
+ci4=Nqt97.aKpt>9]AYIC;T'*rn7;OL&FUH<d^^qpZqh[l;.%E"Ak/pl2:2R!UEJZ8d.t-L9fb5
+li-sDoL]4,T[`Ycrr?Hu8ePTj]BK4nrr2ikp@Ie?lK@9hi;;C=i8Wh\lL+69q"jpfrWDu]^0L>'
+"\k-5meZqDs*t~>
+ci4:Mqt97.aKqCmiID&l_rUOjg&D&PrI>#rI&,Ehli."RKCjZsIuqJ1r:L!inUgaj"b(BEZJbQE
+rrB4oJ-11leFhDm!0?`%&pB/Ekl(P\rquTcoC2,3kN1a^qqhb=ioK:fmdg&GqY^?l"8V6&MY2K'
+JuIDkqYoRUJ,~>
+c2S+Lr:fX<d(PlG%c[Nl2nn;Frn@AP2#RCW0n-+Wq<S%]r*Jsp"'qt]p[nIcF8Z(B3Hg_/mJZAN
+!/gCK"B(W2nc%/?!$Ce4"@e9\kl(AXs8N&ss8;]h"oJ5rrVlflrr`/d_]SLN"?sffp\s:SJ,~>
+c2S+Lr:fX<d(Q/s;<(7OBu&a%rn@APDZ*01>(3I+q<S%]r/:/="*:Nsp[nIcSGc%`>]uFRmJZAN
+!3>`a"DO7Inc%/?!+>Cj"Cd8#kl(AXs8N&ss8;]h"oJ5rrVlflrr`/db$FX3"E;HFp\s:SJ,~>
+c2S+Lr:fX<d(Q<<K&_@aNPOQIrn@APRf.a>G^cXIq<S%]r2fL?",!Z.p[nIc\c%$^F`s(kmJZAN
+!6"M["F?HZnc%/?!0?`%"Eo[7kl(AXs8N&ss8;]h"oJ5rrVlflrr`/dc\qFG"I.*mp\s:SJ,~>
+b5VbGqXWk&`iNbjj8]<@^>ekcg]%6br;Zs]JZdr-li."b`:Es3-()dArV$6lmh#Hu"Tr7bX4m=5
+rrB=r!!GKI_sIBSrr=/4!!GcK]BK4Lrr`2h\eF]9"<t22o_mqPJ,~>
+b5VbGqXWk&`ianpj@TPh^Z+tdg]%7RrCR2uJZdr-li."bddp'6=d[:urV$6loMtl_"\WT\X4m=5
+rrC+38d&Ra_sIBSrr?Hu8d&U\]BK4Lrr`2h`E)V'"CA[uo_mqPJ,~>
+b5VbGqXWk&`itb^jF@Am^uG(eg]%80rI>#oJZdr-li."bhXc7#J!e=FrV$6lpPAcu"E/gkg@sn4
+!8$jn"F?0Im/GW:!0?`%"Eo[7kl'?;"8q]7L\-*"MSJ-BrT=-1~>
+aSuPFr:]L7c+%g=jT#EP_;tCjh>[K@qu?jgKXBh<lMgn^2"UbN!d_65qY'phO8T%^-?>3`l29iH
+!8d>J"=8o9kPa$4!$Ce4"@e9\kl'<:"8q_s$1n3#'qsFRr9+*1~>
+aSuPFr:]L7c+&X9j[oYp_;tCjh>[KFr(7*#KXBh<lMgn^DY$I&K!aP6pAY,srCR5oEfe*$r9F:^
+kO_@L=,FNOrR_&L@.Qtn@Z%e]rS7DTr:7^$oL]6eXk`LFkPp&~>
+aSuPFr:]L7c+'6tja[Jq_;tCjh>[KJr."omKXBh<lMgn^R.Gh1LpZ1<pAY-5rI>&rEfe*$r9F:^
+mdu#4I#5GtrR_&LO7Rl)G)EoqrS7DTr:8'aoRI'u[G:?NkPp&~>
+`W$2Aq!d=l]RM<k!!?`Lk5!j5!6b9?"B1,ekPXWF!WJY]!!GEWdI[A4rrN!6r;["$I&#3`rp'La
+rX8B!";?BkiVM1+!$Ce4"@e9\kl'99"8q_Z"7uQr&#@nLr9402~>
+`W$2Aq!d=l]TQXa8csU^k5!j5!8@?C"D3J#kPXWF!WKS"8d&[tdI[A4rrN%%rCR6)I&#3`rp'La
+r_iD]"Aj]SiVM1+!+>Cj"Cd8#kl'99"8q_p9_:p[;QSRBr9402~>
+`W$2Aq!d=l]V(&BJ-2(Tk5!j5!9O-/"E]I1kPXWF!WL:5J-2IloD\Ob!W@uUJ-Bq?UX\r8lMgna
+L@p'"I=e]^qUb`IO7Rl)G)EoqrS.>Sr:7[ToRI'sZJ"gHkl6/~>
+_uBu@qXWe!^OdTl!!E@Ub3Sr]rrAtp!!HSd^?Y[]rrMX&oDf"%N4nHQq#:>dr;[!:E/M0dqs"+]
+r\jEL"9NkHgA';"!$Ce4"@e9\kl'68!rVP*o)Jn2WnHtAl2Q8~>
+_uBu@qXWe!^Q_sd8d%eMb3Sr]rrBk48d&mf^?Y[]rrM^loL]6]NkOZSq#:?+rCR5jE/M0dqs"+]
+rc%L%"+7$#pt,NG@.Qtn@Z%e]rS%8Qr:#pA8d&8!g%,++s*t~>
+_uBu@qXWe!^S6JGJ-2@blhfQ=!7Ujr"ETO9lM]uI!VM9@J-:@^^$,ChrrCCDJ-C=>MR_aEl2Le`
+Re2+4I](opfDbi3o7-seMS&*NgA_6Pn?2A5"GO/7o)7hQJ,~>
+_>ac>qt0+(^ip[\!!Eq.dd[4mrr@iP!!Hnq_sIBerrN(=o)JkpWS."?rr=bO!!P]6S':C$kl1Wp
+oDeu&T$m8_rr=/4!!GcK]BK4HrrW)b4nAXV.^\"(rp'N6~>
+_>ac>qt0+(^lDL\8d&(gdd[4mrrB(s8d'$n_sIBerrN(do1B+(WS."?rr?m68d/OGS':C$kl1XG
+oL]4)T$m8_rr?Hu8d&U\]BK4HrrW)bF7W!,@("e_rp'N6~>
+_>ac>qt0+(^n?DGJ-:J%dd[4mrrBt7J-9tU_sIBerrN),o7-ppWS."?rrAGbJ-C%>S':C$kl1Xg
+oRI$jT$m8_rrA,OJ-:%Q]BK4HrrW)bRe)%4Lpl+3rp'N6~>
+^]+Q<r:T:)]OqT:!!GKkh"La*rr?U-!!IA-aRB,lrrC^C!!FI2a6ij%rrBD(!!NRBKWs>.kPkOB
+oDf"fQHAXqf`(pno)Jn_MS&*Nf`)$LcjfRH"Albjq#9UZJ,~>
+^]+Q<r:T:)]nK8I8d&k6h"La*rrA2Z8d'4"aRB,lrrD$L8d&4]a6ij%rrC1>8d.n*KWs>.kPkOb
+oL]7!QHAXqf`(qZo1B-pMS&*Nf`)$LfMhB6"E_<9q#9UZJ,~>
+^]+Q<r:T:)^70`>J-:\6h"La*rrBA&J-9qXaRB,lrrD9SJ-:@fa6ij%rrCaNJ-CF@KWs>.kPkP%
+oRI'jQHAXqf`(r4o7-seMS&*Nf`)$LhM(QO"HL.Sq#9UZJ,~>
+^&J<9r:K4&Y!D:Q"9O%gkka6;!'pJ_":B7<bjsrs!W5=V!!@;Ji;*6L!'pJ_"Yb%_`U*QdrrBJ!
+!!G0>_!D!Prr=/4!!GcK]BK4GrrW2pN:R#P!e\MXqs494~>
+^&J<9r:K4&Zu>8&"A=Wgkka6;!-eB6"AO!*bjsrs!W7678csOJi;*6L!-eB6"^,r3`U*QdrrC46
+8d&I\_!D!Prr?Hu8d&U\]BK4GrrW2pWq/gc99@0Yqs494~>
+^&J<9r:K4&\<6',"-gXcqV_ART`'BDIWUt$o&p#Rr1NY3",F2?q>1*kT`'BEG'&tfm/?,I!87!p
+"FH0Eli,Q:!0?`%"Eo[7kl'06!rhu0npgh1`p3Hes*t~>
+]Di*7qt&moL_B%S"=g4qo)@VJ!$(q;";#dIdIcW%!WK1l!!G?Sd.726rrC+;!!QVVVqC_BkPkPH
+oDf"<LUQ=Bf`(pno)Jn_MS&*NfDbpOn1+#0"<aVko)7qTJ,~>
+]Di*7qt&moS5eiI"C7hOo)@VJ!+#Oq"Aa63dIcW%!WKt-8d&Upd.726rrC[K8d/jVVqC_BkPkPN
+oL]6eLUQ=Bf`(qZo1B-pMS&*NfDbpOnRqGc"BhYOo)7qTJ,~>
+]Di*7qt&moWeB_h"G3Gto)@VJ!07#."FYKadIcW%!WLO<J-2Cio)ARe!9=!-"`Spgf_5=-rrDZ_
+J-:7T[cRG>rrA,OJ-:%Q]BK4FrrW2jPOj;-Ju@)grTsQ7~>
+\c2j4qXE@Q46uqLHF`,5ir9#Uqu?j<H(`[\k5PJU)Y="4$&H7Wqu$Ho;#L@t*c[.OkPOEA!WEc*
+!!EXZXl'!-rr=/4!!GcK]BK4ErrN%nnc/c%\)R5Ms*t~>
+\c2j4qXE@UD<sjsKXp1?ir9#Vr(7)iH(`[\k5PJV>kCVk:5cdJqu$HoK)J:F;fRc/kPOEA!WH0n
+8d%k=Xl'!-rr?Hu8d&U\]BK4ErrN&0nk'"1\)R5Ms*t~>
+\c2j4qXE@YOmIT#N4J$Gir9#Wr."osH(`[\k5PJWN:_W'IuM&'qu$HoW;V5MH?"nVkPOEA!WIrK
+J-:=OXl'!-rrA,OJ-:%Q]BK4ErrN&Anpgh$\)R5Ms*t~>
+\,QX1pZg7G!q$$k3hb!mro="YfDGUO-%)N@pZDJVrHe&8"&c)MpAP!kg\_$T89pfRo)@eO!WG:T
+!!@8;fCmks!$Ce4"@e9\kl''3!V@E(!!F./bO5>rs*t~>
+\,QX1pZg7g9^YLUA"h?Aro="Yj8;LP<d^^qpZDJVrL`[R")b'ipAP!kk57gT@!S?jo)@eO!WI66
+8cs=6fCmks!+>Cj"Cd8#kl''3!VKdj8d&+`bO5>rs*t~>
+\,QU0pZg8(m=5=jU!iN2j8T,Fr."oqI&,Ehk5PJ\](:FSJuI>qrVllbr."rkH(NCRroX4]rgrb4
+"+6orp=TBFO7Rl)G)EoqrRLoKp5SWn".[R&rU'W8~>
+mJd4QqYpK?rrrE!o&#]Bmf3J"NkOZSj8T+gqu?jNI];)tjo5A:"S;Zs)O/5-rVlfs?i9s.$>bI'
+iVDR7!,D-+"BLu:o)@>B!$Ce4"@e9\kl''3!W@<7!!@#BhtZU=J,~>
+mJd4Wr;Q]ArrrE!o&$BDmn*^YNkOZSj8T,'r(7)oI];)tjo5AB9_:p[<0YAgrVlfsNr;QR9l>]l
+iVDR7!0m+J"DjOPo)@>B!+>Cj"Cd8#kl''3!WAV\8csIHhtZU=J,~>
+mJd4[r;Q]ArrrE!o&$m/mskOjNkOZSj8T,6r."opI];)tjo5AHK(OQrJ!@q=rVlfsYPitTIVsnH
+iVDR7!4;BK"FHT_o)@>B!0?`%"Eo[7kl''3!WBV#J-1V5htZU=J,~>
+n,EUdIh7t8oD6`3"TA)XY8cp1"(nRepZ)8RQi$gd2h8'gqW7_Xr'^,V#B6p)q#CBW"T8<(20G5*
+mJZ,G!0QmR"@/-hmf(o>!$Ce4"@e9\kl'$2!6t'7">H@jnG_kUJ,~>
+n,EUfUfFbioD6`3"TA)X\m"Pp"*U]upZ)8R[JWW">_'!7qW7_Xr-@m+#CNc5q#CB^:&RZf>'6.O
+mJZ,G!3l)f"CdP5mf(o>!+>Cj"Cd8#kl'$2!8@!9"C@VCnG_kUJ,~>
+n,EUh^PKr!oD6`3"TA)X_hmi4"+mQ,pZ)8RbPZknGCZjRqW7_Xr1NY3#DTJ?q#CBcK)L6"FT[rM
+mJZ,G!6Fe_"FH<Nmf(o>!0?`%"Eo[7kl'$2!9<U"".[X*rpKf:~>
+n,EX9!!!tXg$nparri>tm(a\3!!GTUbjk\nrr@0=!!GQ>ZJtcCrrN+qo)JtOSBg[(s)7i9"Ti+_
+WnR1,rrC%1!!F^-]]f=Irr=/4!!GcK]BK4CrrN$5o)JmtL:QFCmf.e~>
+n,EXH8kN@1g$nparri>tm)WK%8d&[mbjk\nrrASe8d&LRZJtcCrrN,4o1B3oSBg[(s-`dW"DNCd
+g@jS,!7g^6"B^Pokl'37!+>Cj"Cd8#kl'$2!W6-m8d%hD\`N_Vs*t~>
+n,EXSJ:NR#g$nparri>tm*1FWJ-::gbjk\nrrBY.J-:%JZJtcCrrN,Fnpgn6cLLo6\,:aZDh+kA
+p>c/QiUhX'I#>T#rRq2NO7Rl)G)EoqrRCiJr/1&q",aYNqsOK7~>
+n,E[i#QOj,[bUTUbl7eBnAQL>!!FL)^?GLUrr?!q!!G`F[cRGJrrMg/oDf("Kt?FDmg/jl"WqcF
+^?GLTrrDKZ!!EsfZJkZ5rr=/4!!GcK]BK4CrrN*rnc/buVUtP0s*t~>
+n,E[k:J+6*[bUTUbl7eBnB>5/8d&1R^?GLUrr@cN8d&RW[cRGJrrMjsoL]<]Lq;aGoMGKY"]TN&
+^?GLTrrDW^8d%tCZJkZ5rr?Hu8d&U\]BK4CrrN+Nnk'")VUtP0s*t~>
+n,E[kKReT;[bUTUbl7eBnBm3bJ-:7Y^?GLUrrB(sJ-:%M[cRGJrrMnPo7."&]&rnaK`-E)H?,%[
+kksK@!;?&8"FYp.iVM7-!0?`%"Eo[7kl'$2!WK"eJ-)V"p?qs2~>
+n,E[m4obQgMSn]VbPq\Bo#)44!!ERZYi,B=rr=kQ!!H5W]'0+RrrN(9o)JnfVUkEiqu?moHD&^X
+ro="ZrYP2,"*g`tpt>ZI+7fI87Z+hArR:cHII[@@3L7bTrpTl;~>
+n,E[mG"PA%Oi-G]bPq\Bo#t/*8d%k?Yi,B=rr?s78d&a_]'0+RrrN(ao1B.$VUkF9r(7-%HD&^X
+ro="Zr`\qd"+-s"pt>ZI@.Qtn@Z%e]rR:cHU@LnZ@$\n&rpTl;~>
+n,EFfT)O6BQG_tbbPq\Bo$W<aJ-:@RYi,B=rrAMcJ-9tN]'0+RrrN)*o7-spVUkFTr."rkHD&^X
+ro="ZrepE!"+I0%pt>ZIO7Rl)G)EoqrR:cH^%-[VI?qtCrpTl;~>
+mf*90rW!'WW7LV?bPq\Bo;Vo`!!@>=f_=J,!"f&."B^VslM]cC!7CB<";d9>i"5he"Uf1&[,Ur@
+rr>O\!!?MtdIc,l!$Ce4"@e9\kl'!1!1iZ\"<!*.kPXfKJ,~>
+mf*9Wr^m<&W7LV?bPq\Bo=Rcf8cs@7f_=J,!*/qh"DEb.lM]cC!8R0<"B1N%j&Q%M"\rrj[,Ur@
+rr@E<8crt%dIc,l!+>Cj"Cd8#kl'!1!4hYm"B12hkPXfKJ,~>
+mf*9trdY-(W7LV?bPq\Bo>lLRJ-11pf_=J,!/UQ'"E]U:lM]cC!9Ng&"FlWQk(rtd"b(BF[,Ur@
+rrAecJ-1.hdIc,l!0?`%"Eo[7kl'!1!6t(b"FZ0=kPXfKJ,~>
+mf*9kr;Zq@]]K"4rrW,hB(>p(@%5O8jo5>LqZ$b0O2C8_j8T/X2"L\KBWl^Z!!P6'QcSUniVrmu
+oDf"]PfW=mgA_-po)Jn_MS&*Ne,KEZnc/dpJ?@](n,In~>
+mf*:,rCR0E]]K"4rrW,hNq,dEDk#,Gjo5>Qqaq!-O2C8_j8T/XDY$I%H*<\78d/CAQcSUniVrnH
+oL]6rPfW=mgA_.\o1B-pMS&*Ne,KEmnk'$XJ?@](n,In~>
+mf*:<rI>!2]]K"4rrW,hXR^lDHCN:Rjo5>Tqg\fkO2C8_j8T/XR.Gh0Ks.cZJ-C(=QcSUniVrnf
+oRI'kPfW=mgA_/6o7-seMS&*Ne,KF'n:1SBhYHX?J,~>
+mf*:Rr;Zs>T$Qp)b5VP@j;%7d"B(K*nG_SM!6b6>"DEt<mf)8H!WJDV!!4j?')_e6!b$VZg@sP*
+!1i`^"=f>Cl2B?9!$Ce4"@e9\kl'!1!5@t'")+CYp$_p2~>
+mf*:WrCR2nT[3-+b5VP@k?.=J"DF%@nG_SM!8@<B"E0ICmf)8H!WKCr8ci=d<r>PmBn35;pYc&O
+\b&Js=c9uXrS%8O@.Qtn@Z%e]rR:cHd.'^1F.q.Wn,In~>
+mf*:ZrI>$%T[3-+b5VP@lA>+_"F-0PnG_SM!9O*."E]gHmf)8H!WL12J,u*nr."ogJ?%>ti;Wf&
+oRI'lMnSBRgA_/6o7-seMS&*Ne,KF)nUL^hU"/i)s*t~>
+mf*=e-N*oI:p]$RrlY6AqM"M@"A"Tjm/H/I!3>ts"ETjNnG_GI!UU-a!!*3jqu?mBEfRp!r8@ST
+an,Q9'83[NqqD&M+7fI87Z+hArR:cH^@;1+<1(o"rp]r<~>
+mf*=eAGo+'EO4NsrlY6AqPNjV"D!S1m/H/I!5n\+"ETjNnG_GI!UrnW8c_Rur(7,lEfRp!r8@ST
+f^qc=:kZ.6qqD&M@.Qtn@Z%e]rR:cHdIBg3C7*68rp]r<~>
+mf*=eP5Tn6LpPt5rlY6AqRuKN"F-!Em/H/I!7gss"ETjNnG_GI!V:s8J,k3!J-C7>NkaiVi;Wf;
+oRI'mKX0V7gA_/6o7-seMS&*Ne,KF)nULagR*>+"nGe"~>
+mJd/pr;Zs)M8niYb5VPBjp1MY"@nEblM]lF!/paT"9N\3bjs`m!W?*k!!!)u!!Q&BT[NH2i;WfJ
+o)Jl;W7q%#rr=/4!!GcK]BK4BrrBe'!!G`P`9mQns*t~>
+mJd0HrCR2dP/cebb5VPBlVI.F"CmD)lM]lF!3Q,j"*BmRo&9TLrJ0u:!)*5^"_)eNde!IrrrD``
+8csI>gA'D%!+>Cj"Cd8#kl'!1!7C=/"CmP3mJcVTJ,~>
+mJd0ir."m9`p3KErrW2fKCjZsGDs9$rT=+[`VY/fFI15BiVrrWWU53>EdFD,oD[\J!;Q/9"+I3&
+ptG`JO7Rl)G)EoqrR:cHhXQ+!H'#u3rp]r<~>
+mJd0Rqu?jKW7CM=b5VM?:\4Vi6]/P?rT=+[B`%i5%<e2eo\ofNrjD.o"Uf1&[,Ur>rrN*CoDeu!
+T$d2arr=/4!!GcK]BK4BrrB(h!!G?@]]oCas*t~>
+mJd0or(7)tW7CM=b5VM?Jb2P;@>__]rT=+[Pl+,V:3N)Qo\ofNrlOS#"\rrj[,Ur>rrN+.oL]4'
+T$d2arr?Hu8d&U\]BK4BrrBt,8d&IY]]oCas*t~>
+mJd1/r."p'W7CM=b5VM?V=]9@GDa&srT=+[[/>FWIWh1,o\ofNrn$Rg"b(BF[,Ur>rrN+\oRI$j
+T$d2arrA,OJ-:%Q]BK4BrrCU>J-:1V]]oCas*t~>
+mJd19qZ$_.]&NP.rrN+foDf"[M7VpLk5PEOqu?j/GFd1Si;WiS)XdY020P>-meu#B!)E.d"@89m
+mf(u@!$Ce4"@e9\kl'!1!1r]\">GS>k5=`KJ,~>
+mJd1Eqaps<]&NP.rrN,-oL]6oM7VpLk5PF/r(7)eGFd1Si;WiS>jk8g>'?7Rmeu#B!.jc7"Cm\:
+mf(u@!+>Cj"Cd8#kl'!1!4q\m"BpPhk5=`KJ,~>
+mJd1Mqg\d.]&NP.rrN,AoRI'hM7VpLk5PFWr."p!GFd1Si;WiSN:29#F`s+mmeu#B!2fC="FHBR
+mf(u@!0?`%"Eo[7kl'!1!711c"F>g3k5=`KJ,~>
+mJd4c&,ZD1$BiR!r6#$>f^o.H7YnY>r9""Z./X&J&p^,!p#,iNrc@N."CH\Zg@sG'!.+8;"=B&>
+kl'99!$Ce4"@e9\kl'!1!.aS>"=f)2j8AEHJ,~>
+mJd4c<;]>k:702kr6#$>iq,hG@YhVZr9""ZB)G7(:jJ\_p#,iNrgN:J"DE=cg@sG'!2/sV"BUMo
+kl'99!+>Cj"Cd8#kl'!1!2T-W"B^>`j8AEHJ,~>
+mJd4cL\lT(SBC6sb5VJ,oRI'fLq;gJk5PFGr."otH(WUZi;WiW\*nhMDh+kApYGiL]_$^WI#GZ$
+rS.>PO7Rl)G)EoqrR:cH_!upXHA&Wbr:'`:~>
+mJd4d9)ASk0<Egurlb<Br<r8u"@e6Zkl'ZD!!N3""<)T\f(S#$!6t!5"Wh]E^?GLNrrAbb!!Ejc
+Z/PQ6rr=/4!!GcK]BK4Brr?U"!!Fa&YMf9Hs*t~>
+mJd4dIeu_?@'&#Qrlb<BrDN;\"Cd5!kl'ZD!)3;_"B'Q?f(S#$!8?p7"]KH%^?GLNrrB_(8d%qB
+Z/PQ6rr?Hu8d&U\]BK4BrrA2O8d&7JYMf9Hs*t~>
+mJd4dV#,ZFKrir!rlb<BrIsop"EoX5kl'ZD!.t-!"FGHhf(S#$!9<R!"aY3L^?GLNrrCC;J-:=R
+Z/PQ6rrA,OJ-:%Q]BK4BrrB@pJ-:1MYMf9Hs*t~>
+m/I':q>^V,]]An3rrN*Ko`,+kMS/0OkPkPBqZ$a<H_f<ghu<`T/b&fE8:$oUoD[SG!5\7,"*CEn
+pY5]J+7fI87Z+hArR:cH3:QtO.=eSYqXFN8~>
+m/I'^qFUj;]]An3rrN+4oh#?uMS/0OkPkPJqapuhH_f<ghu<`TC%4e!@!\HmoD[SG!7UO3"*pcs
+pY5]J@.Qtn@Z%e]rR:cHEUcX(=FdR3qXFN8~>
+m/I(#qLA[.]]An3rrN+`omd0fMS/0OkPkPPqge]n!i4KChu<`TQ19A.EdFA*oD[SG!8mBu"+I-#
+pY5]JO7Rl)G)EoqrR:cHSFM+4H@W0UqXFN8~>
+m/I'qq>^X(N6:MbbPqQ+o`,,"N5"TUkPkOoqZ$a<I&>Tlhu<`VMXg`N#]#1$iVM@0!8d;I"BM&>
+oD[PF!$Ce4"@e9\kl'!1!"AAt"=\l(htljBJ,~>
+m/I(0qFUlcQ-/IkbPqQcoh#@$N5"TUkPkP-qapuhI&>Tlhu<`VX7Ajd9PoNjiVM@0!9`rG"DjUT
+oD[PF!+>Cj"Cd8#kl'!1!)i>Z"B^2WhtljBJ,~>
+m/I(>q1&R;b3]&LrrAY`J-9tQ^?Y[[rrCmPJ-:4HVV1b%rrN,9npgmmDhbUWqV;)Nmdkr3I%8RT
+rnRMRO7Rl)G)EoqrR:cHL@KcsH@W0UqXFN8~>
+m/I(Uq#COAW7LS>bl7Z0o`,,0OMgGakPkOKqZ$a<I&>WmhZ!W5"S2Ts/p*AumJYi?!<2Qi"?DXa
+mf)#A!$Ce4"@e9\kl'$2!71-7">k\4i;2sCJ,~>
+m/I(Xq+:cnWn-e@bl7Zgoh#@*OMgGakPkOiqapuhI&>WmhZ!W=9_1j[=EKhJmJYi?!<2R^"CRD3
+mf)#A!+>Cj"Cd8#kl'$2!8[-:"C$G[i;2sCJ,~>
+m/I([q1&U$Wn-e@bl7[:omd0cOMgGakPkP*qge]o!iF]HhZ!WCK(FKrGBB+imJYi?!<2S?"FQBO
+mf)#A!0?`%"Eo[7kl'$2!9`j%"F,L#i;2sCJ,~>
+m/I+c0)5JM7(D1LrltHC6hUK`$?VQTnG_VN!-%f8"<2`cgA'P)!W>:T!!HDQVqC^trrN*)oDf":
+M7VjIh#@?no)Jn_MS&*NeGfN0n,NSRK!=83nGe"~>
+m/I+cCACI)Cq/EtrltHCH1ji69luZBnG_VN!1E^V"B'WEgA'P)!W@358d&aTVqC^trrN*poL]6e
+M7VjIh#@@[o1B-pMS&*NeGfNQn4EgiK!=83nGe"~>
+m/I+cQMH%6MR_U=rltHCU%X!?IWUjsnG_VN!4_oVs*OmFgA'P)!WAV]J-9h?VqC^trrN+PoRI'l
+M7VjIh#@A6o7-seMS&*NeGfNhn:1XbK!=83nGe"~>
+li-rrp](D-_WL^>rr>:W!!FEgSC$ojrr>ai!!F-dVV:h%rrN+foDf%/E/V?jqqD&M+7oO9#D0,9
+qV;,A!!GcK]BK4Crr>IV!!GoJ[H.8Ts*t~>
+li-sIpdtX=_WL^>rr@698d&+;SC$ojrr@TH8d&%>VV:h%rrN,-oL]9`E/V?jqqD&M@.[%o9S0G)
+qV;,A8d&U\]BK4Crr@B78d&UW[H.8Ts*t~>
+li-sipj`I1_WL^>rrA\bJ-:1BSC$ojrrAqnJH'uuVV:h%rrN,AoRI*mE/V?jqqD&MO7[r*ItFi\
+qV;,AJ-:%Q]BK4CrrAe_J-9tJ[H.8Ts*t~>
+li-sQp](F$KZi`ZcMml#p&G4TI&,Ehk5PE,qZ$a/I&5Kih>[ND#PA'#4F!@?nc%8B!$Ce4")"C[
+p>#]=!!GcK]BK4DrrMEgn,NSrMS&*NnGe"~>
+li-snpdtZ`PKW=icMml^p.>HmI&,Ehk5PEkqapudI&5Kih>[NH:\@<`?$Mj`nc%8B!+>Cj"*:6g
+p>#]=8d&U\]BK4DrrMXan4EgtMS&*NnGe"~>
+li-t.pOE@;bO#,OrrAJ\J-:%CUtGG(rrA5ZJ-:=KV:bOurrMbEomd3fGaltJrn@APO7Rl(IA>Be
+h#Hqq"Eo[7kl''3!VM'6J-9nM]BK4_s*t~>
+li-t3pAb=+RFC['ci3t]p&G4qK!=20kPkPVq>^X*HD9!ah>[NS9_JGi!bHtdh>#\'!%7@<"A,!(
+nc%AEnc/e^MS&*Nec,W-n,NUqEKA$(rp]r<~>
+li-t@pIYQcU!rN/ci3uKp.>I"K!=20kPkPXqFUlbHD9!ah>[NSJ+ZD:C4`VEpt>ZIAb/LsAsgd3
+rn[VF8d&U\]BK4DrrB1j8d.n.O2L>`nGe"~>
+li-tIpOEBuVpk/5ci4!(p4*9cK!=20kPkPZqLA]tHD9!ah>[NSV"K6@Dh>.Jpt>ZIPOj;-I$i+I
+rn[VFJ-:%Q]BK4DrrC%-J-CFBO2L>`nGe"~>
+li."a&,-&,(oGsVrR(WFn+H_b#]Pa9kksWD!71H@"*gHfp"fWKrhfAh"WqcH_<V!Prr>7S!!Fp7
+_!CsUrrCsI!!GcK]BK4ErrN!Bn,NV6FdUDCrp]r<~>
+li."a<;/uf<iamDrR(WFo_(l\9Q5s(kksWD!8[HC"*gHfp"fWKrkA(u"]TN(_<V!Prr@668d&@Y
+_!CsUrrD9R8d&U\]BK4ErrN%-n4Ej`FdUDCrp]r<~>
+li."aL\H<%KW`turR(WFp\'+@IW17ZkksWD!9a0."*gHfp"fWKrm:@h"aY3N_<V!PrrAY^J-:7[
+_!CsUrrDNYJ-:%Q]BK4ErrN(]n:1[gFdUDCrp]r<~>
+li."b6M:B^,d,qprmLfH\+Te*/p<W*nG_VN!2oVm")==Po\BHIo*b9m"\*g3de*Olrr>:T!!Emf
+[,_&?rrCdD!!GcK]BK4ErrA\[!!GT8Ut>>/s*t~>
+li."bGkO`4?Er;XrmLfHbk=X4=E^(TnG_VN!5SD&"*0mXo\BHIohtNV"^lYMde*Olrr@668d%tE
+[,_&?rrD0O8d&U\]BK4ErrB\"8d&IJUt>>/s*t~>
+li."bT_<m=LU>k/rmLfHg\-.$GBT@snG_VN!7Uao"*g<^o\BHIpP&?l"`ep_de*OlrrA\_J-:=T
+[,_&?rrDEVJ-:%Q]BK4ErrCC6J-9tAUt>>/s*t~>
+lMgj0o`,+AZJP9Re,KDhp&G5!J#M)pk5PF+q#CP&Qd#"!h>[NS=SMk""`&k!iVM4,!'g#S")k*k
+pYPoM^[_@-7Z+hArR_&MpE8r*"TrCkZJt`Ls*t~>
+lMgjVoh#?n[bg]Ve,KE<p.>I"J#M)pk5PFRq+:d+Qd#"!h>[NSL\OIF9PoNjiVM4,!-[p*"*g`t
+pYPoMddg!5@Z%e]rR_&Mq-`\a"\WZcZJt`Ls*t~>
+lMgjromd1$\DHoXe,KEYp4*9bJ#M)pk5PFoq1&TmQd#"!h>[NSWq_)JIrC(JiVM4,!2&h4"+R6&
+pYPoMhsu:#G)EoqrR_&MqiL;t"b1HEZJt`Ls*t~>
+lMgjcoDf"@[,:QUeGfLgpAb@8EK%Qmr9""Z8GN5g8Wq*]rnRMRWqZPt.WgopmJY];!&*mC"A,*.
+o)@PH!3>Yj"@e9\kl'-5!-@T/"Y"PW`9dHks*t~>
+lMgk&oL]6n\)6lXeGfMTpIYTeEK%Qmr9""ZI/-A;AWk($rnRMR_>$V+=*0\HmJY];!,M-t"D=4L
+o)@PH!5nA""Cd8#kl'-5!1`LM"]of0`9dHks*t~>
+lMgk7oRI(#]&32[eGfN/pOEEoEK%Qmr9""ZV"oNDH'628rnRMRdeJ=rG]]1imJY];!138,"FZcb
+o)@PH!7gXj"Eo[7kl'-5!4hQK"aG-Q`9dHks*t~>
+lMgkCo)Jn?[,:QUf)G`Rp&G7mH(N@Qroa:^o*G-l">c"NlM]N<!V6]p!!H)GV:P@lrr<l+!!FI+
+_!:mUrr@uJ!!GcK]BK4GrrL"?n,NXo?%/X$p&=F[J,~>
+lMgkKo1B-m\)6lXf)G`ip.>KuH(N@Qroa:^p/(QW"C-o"lM]N<!VK@d8d&XPV:P@lrr?6n8d&1U
+_!:mUrrB1l8d&U\]BK4GrrLVDmn*asI\kWgrpTl;~>
+lMgkQo7-t"]&32[f)Ga%p4*<dH(N@Qroa:^q1SQo"FH*AlM]N<!V_<DJ-9k?V:P@lrrA#KJ-::]
+_!:mUrrC%/J-:%Q]BK4GrrM)1mskR[I\kWgrpTl;~>
+lMgna'Cu2,,cokprR_&L0_YPN+E3.FiVDX9!1W``";Za"jS[g5!WH3t!!N^ILpuIBf`(sCnGi[p
+I^.i-hu<[enc/e^MS&*Ng&D*9)".G.13/Dfk54THJ,~>
+lMgna=7]#e?F&G[rR_&LD"gO*<,dZ%iVDX9!4_er"B'u^jS[g5!WIlN8d.q-LpuIBf`(sFnO`pW
+J[+/0hu<\<nk'$oMS&*Ng&D*@>OP/f=`TP8k54THJ,~>
+lMgnaM=Z6#Lq)=6rR_&LR.l+7H>n\KiVDX9!6t:h"FZ$4jS[g5!WK+qJ-CC@LpuIBf`(sIn:1Uo
+Z/GK9rrB@qJ-:%Q]BK4HrrM_MmskRbEfRfpqsOK7~>
+lMgna9(Drb'qO.Nr7V)MS+cme"(-AGcLCeqrrMj>pAb;9Wn[='rrB(q!!OutQc\^qf`(rdn,NSg
+U"&`6i;Wd2nc/e^MS&*NgA_3:..7-?&o3#peFW\-s*t~>
+lMgnaIe$)6<iXsGr7V)M\G&T"95&XCcLCeqrrMq*pIYO6Wn[='rrBn38d/=>Qc\^qf`(s"n4Eh"
+U"&`6i;Wdnnk'$oMS&*NgA_3AB(&=r:i1`[eFW\-s*t~>
+lMgnaV"0$=KsTS*r7V)Mc1c_mIrBY)cLCeqrrN"[p4*4Eg\BP'!7L^o"a>*Uam]5]rrCsGJ-:@q
+eF`aurrAGWJ-:%Q]BK4IrrM_UmskUiDh+_7oD\1XJ,~>
+l2La,nGi^uJ_0AernRMSh[oM^"Zg^a]&WVKrr@E>!!G][cgq(jrrM^!qZ$atI]1omfDbhhn,NS8
+P/Q_ciVro@nGi\]MS&*Ng]%<;..7-?"^-)9_s%!bs*t~>
+l2LaSnO`s[R+Lg'rnRMSkZ.@L"^H,.]&WVKrrAee8d&arcgq(jrrMdjqaq!%I]1omfDbi=n4Egb
+P/Q_ciVroGnO`pnMS&*Ng]%<BB(&=r9P/O8_s%!bs*t~>
+l2LapnULdpWn6_9rnRMSmtg^g"a"gF]&WVKrrBb+J-:=kcgq(jrrMkJqg\fhI]1omfDbi[n:1Xj
+P/Q_ciVroLnULacMS&*Ng]%<GPja,,IrBRt_s%!bs*t~>
+l2La_mf3Jfc0G*'hZ!WJ0_YPO*cHY/eare'rrKG/p&G4'MSA<Ph#@ES=Sr.&$ZM!7k53g2!V[H"
+!!@,Di;)@3!0cpQ"@e6[kl'<:!RDnW!!`QtFH!Zbp\sR[J,~>
+l2Lb"mn*_0cKb3(hZ!WMD"gO+;f@8deare'rrL59p.>H_N5"NRh#@ESL\saJ:2l*%k53g2!Vosg
+8csIGi;)@3!4),e"Cd5"kl'<:!Sq/O8d8^GN4.U;rpB`9~>
+l2Lb4mskP/cg(<)hZ!WPR.l+8H>eD6eare'rrLf)p4*9qNkX`Th#@ESWr.ANIW11Uk53g2!W.iE
+J-1P2i;)@3!6Ob]"EoX6kl'<:!U#R4J-L%9N4.U;rpB`9~>
+l2Lb6mJmA6WoNaLi;WiL48/^Z%qL$Wa6WWcrrL"GoDf"aWS$qDh#@ASqu?mQG*pGArn.5NL[G-F
+*1G+@rSmhW/F`]C'md=Lqq_8QP76jZ#!?p\XOZn?m/MS~>
+l2LbAmRdUg[c@#Xi;WiOFSAB3:25-Ga6WWcrrLVIoL]7$WS$qDh#@Ajr(7,pG*pGArn.5NWpWI^
+<h.D'rSmhWC%4du;1c7;qq_8QZ;U*_#$c2'XOZn?m/MS~>
+l2LbJmXPFt^Z4tai;WiRSbIX=I;XD%a6WWcrrM)5oRI'sWS$qDh#@B&r."rpG*pGArn.5N_sMsV
+SBUL$ir9"EnULajLUQ:@h>[MtL@0QrFE3,;eai\*s*t~>
+l2Le`$gmuu"_lNTq>TFS!TQ$2!!`j8GE]]"q#9LW!P8d3!!EFP_<CdOrrM^!r;Zt!I]1upf`)!$%
+.+#t8@.1IroF(ZU[J0d%rThaqYoIR!Rj:$!!`QjEJ147mJQ;MJ,~>
+l2Le`;XR-\9oRZkq>TFS!UF[u8dA('GE]]"q#9LW!RF[88d%hE_<CdOrrMdjrCR3'I]1upf`)!1
+;XI'ZD6r*nroF(Z^@+Yt;2EZhqYoIR!T81h8d8UAKVm&^r9OB5~>
+l2Le`L$jHpJu.)eq>TFS!V)WQJ-UOAGE]]"q#9LW!SrM$J-1tNkkj08!V_<HJ-9k@W7q!urrMA=
+m=5=qZekHUjSo5-mskRmSC6m&ro*kXl(@?n#'=j<VU"T,li2J~>
+l2Le`1@+uE+IqNbr;PjY!NQq/!!`j8G)iuco`"(S!KRBR!!En#dI@(irrN*mrW!*0E/M6hr7V)N
+k:#Wr"BiV(q>TOV!TOm]!!XBfeFNG6roX4^dU*.F!!`^'EeUC6lMBfGJ,~>
+l2Le`D<sju?E`G^r;PjY!Q8+78dA('G)iuco`"(S!O,;g8d&%`dI@(irrN+Lr^m>hE/M6hr7V)N
+mUkcW"F@rIq>TOV!UEkT8d8Ifg%+t;roX4^hi1=t8dA%!EeUC6lMBfGJ,~>
+l2Le`R-]>,MnJ-Cr;PjY!S*)%J-UOAG)iuco`"(S!QTf^J-:FudI@(irrN+prdY0$E/M6hr7V)N
+o9AQk"HgR`q>TOV!V)'7J-Lk8hX^L@roX4^kc]U+J-UREEeUC6lMBfGJ,~>
+kl1Wpl2UuP\*<Varp'LacU[[/#7Og[Nj@=.r9=4^gHY*+";?sNnbh5C!1s/i"YY%db4,DarrL.[
+kl:iY_WU^nkl1\H.-^d<"$1nHoD&7_rpB^entJA8!!jBKG)E<FlM:GEs*t~>
+kl1XGl:M5#_Wgdlrp'LagjJff#>SoTNj@=.r9=4^k'-5c"B;&Hnbh5C!4i)$"^#r8b4,DarrL_X
+kt2)#`TR$qkl1\OB'Mto9Q6ZMoD&7_rpB^ep:Y\:8dJ:.G)E<FlM:GEs*t~>
+kl1Xgl@9&)bN\`urp'LakG.a$#C^T7Nj@=.r9=4^m@Wfs"G<`,nbh5C!6tLn"a>-Wb4,DarrM/?
+l$ro"`om-rkl1\TPj3c)JXEt"oD&7_rpB^eps>Z"J-^L@G)E<FlM:GEs*t~>
+kl1XCkl:ni6)s5Dr;Q-a!Obes!!aBOG`T2_nbh\P!p=J-li71mAC'Z=rnm_]mfWUj<dq"$pY5]L
+k@Xq\!!O@#iUZmFli."#*9@/,%R"Wo_WLXjr;HWoqu?]q"R`jU6O<#Y#mNM1I?UtcmJ?hHs*t~>
+kl1Xckt2.RFM$i3r;Q-a!R-/g8dA7/G`T2_nbh\P!q)IQlq.FTL=5Jbrnm_]nk;YJB7?f5pY5]L
+mZUB.8d/CmiUZmFli."5?KFcc;fn80d-LK(r;HWoqu?]q"S0j;Gu*d!#u"WDI?UtcmJ?hHs*t~>
+kl1Y&l$rthRE4[er;Q-a!SaOFJ-UF>G`T2_nbh\P!qWmSm!o7jT[W<(rnm_]on%^EFFL1BpY5]L
+o<X&3J-Cb8iUZmFli."CNobctL7>Kgh!Xt7r;HWoqu?]q"SUWfTnMc_$%I&:I?UtcmJ?hHs*t~>
+kl1Xrjo>W0FLgr:r;Q]hrr_\pCE)pH#Qcc!I$D(mnbhbR"8fZ2#j;6m&p2Ojq#13Ors8Qg!"4".
+\`WhHrr`,/>6s6h"sSWKo(i7`nG`O+:Yc!S%OaPFC4#l+")V4&([1o+"#"51LnVT=nGDDKJ,~>
+kl1Y/k"5kcR)ngmr;Q]hrr_l6Q<j,T#?l%nPd]98r9XFcr6C*pkXl%ZQ.PO#rVkgV#lSs>:O%c-
+k5=*9"8pH%:ub.P@%Z0Dq>L<^rrLW$h+@lNAp0#qTV;=Y"."da>3SWc93H(ULnVT=nGDDKJ,~>
+kl1Y=k(!\rZIJF>r;Q]hrr_uI[>jg/#Bk'6Pd]98r9XFcrS4H,k^WklY1rI@rVkgV#lU?FJU*-`
+k5=*9"8prVK]@ReN4%R6q>L<^rrM&Uh1,Z`P+AVY]DT;D[B,mVl$s(iGB%k`TtfCPqre!0~>
+kl1YIirBT%89UT9f\5'6gXEg.JlXAl!!j??FG-7#hX^U5rri>TSmN2l!!`TaHEuT*qY^?lkl1qf
+P5mXuR*"grj8T;^o"KuW&DdBn"#k>)j7iEKrr2fps8E,WVIpjV!"&obApB'![*Ih,r9"$0~>
+kl1YOj%9MUHCVIgi8agt"lIY<VMAjU8dJ:+FG-7#hX^U5rri>^\rBhP8dA%-S]'adqY^?lkl1qf
+Z:\ebR*"grj8T;^p!Bdl<Sg=S9Q$98kkFrPrr2fps8E,`^lr'48d\6qCj:]'[*Ih,r9"$0~>
+kl1YSj+%YqTXW(rkj%I!lfd-M^oE[jJ-^OCFG-7#hX^U5rri>fcEE,cJ-UXk[aOL9qY^?lkl1qf
+a+/u#R*"grj8T;^ptireLu*XgJX<ajlhC8Srr2fps8E,gd^+qAJ-pdMEd3>-[*Ih,r9"$0~>
+kl1\_'E.t9!uWR>/0Y_S!!s!!E.*kMb2i9pnc&]PB0Hj[!!j;u<c39EpA=jSrs%?\HC(Yap>u;V
+mrM8Le,Tms7VT7#q#15rG?-I0[/^U:*Ck$qLmt]mi:-UBjo9i~>
+kl1\_=8ker92\kq>?=\L8dS4!EIEtNb2i9pnc&]qPBKs[8dJO<KpJCqpA=jSrs%XYOI*!"p>u;V
+oULMBe4L-THBZA>q#164Sqh/^Zq:^)@WHjPS$L2pnG<.Gs*t~>
+kl1\_M>i#0IsZKhI"$RmJ-g[HEda(Ob2i9pnc&^3Z_!!,J-_""W3j2&pA=jSrs%k@TU2\2p>u;V
+pUR2ae:7sdTX!#;q#16E];h6R["&O2F`VqdS$L2pnG<.Gs*t~>
+kPl&N""mAeHA%6?P`gl>9IUD&!"'6$DL7;9^=_iKrp]pf+OU5l[G:3HlMh(e5JXG;jSS'=!8l'%
+"_?*EpASF+!"BDf88EO)P+oD.hsU:<j8XW~>
+kPl'39O_aWHA%6?P`guRDHoui8d\="E-mM;^=_iKrp]pf@+%XL^>//QlMh(eG/CDtjSS'=!9h^#
+"c:^jpAU)Z8e"Nt@rZgJP+oD.hsU:<j8XW~>
+kPl$\JV\_rHA%6?P`h)bL4Rs,$@R&;H]+W4f^8M6nG`KMdXVG=h!Y%(rs&Fn`3-o:qrRhXn'6Fe
+UsnK"ri`\Z%=WVHG'\h)U:/8&meHb@s*t~>
+kPl74`3,;fU9VGOaMu*/ZDX4D>s'#.huF,g-W"o6NM3o0k4JT>rsjj*?rBa(=BT-B?tX@rEURrJ
+@fKg9?2dY.:..N?3&ipe]\W;\li.1go\7O?n,DGK''ag]>Ydpc<Dub#?=$uKDJsN7mrBIe@UWYO
+>#8$k7R9@(1cB-Rd-gk$=CG3<?>=:jFEI+ps'cCE>#8$b5W^SL*Z>Lni;aGn'I>e:C4(VkQ(kS%
+eDp&nrSdd,~>
+kPl7DbH@%mU9VGOaMu*/ZDX4MG@jiKi(=AN<b6B%NM3o0k4JT>rsbupKm7W^FE2PGEclVPmWo"Y
+FE;JBrG2gSC2@KoB:limpAXCX#6+8Lb1H+]jo5YVTTaqKDJjH4D>eGUF*MutH6IQUFE;JACi!m#
+AnP^cA:h&4mesVLLO+ApIsucpI=-Bgp3I3kFE;D;CM.0e>[(6.:efn@&PQ&'?YFJ-Jr>ngZGY2P
+nG)t@s*t~>
+kPl1Nd&rRrU9VGOaMu*/ZDX4TM1j`9$\*GDFFK4C\^9L2r9jRp_QohtN/NLGK7SQ&It3+;K):'+
+JqSi4L5:\^]\W;\li.1go\7O?n,DGK$hV'6S<&M^KnFr,If4`tJ:W:<K)C-7It3*%K7nuCYgDh:
+bc%;%P)bQ]M2$]RK):&uJ,OirJ)PniIslZiG^+UfMj:$B_pm`9q#01OJ,~>
+kPlCqkfgcZeDTTZn*]Q+inDbu\ZVZjE)//'k5Yr'/PpG7LR"dMdH'lprpB^rqW5\tTq7jJTq\B\
+W2cr$n?*G,XJr+pVPKrZTV%gIT:i'nh"C[3rri2dk3Vm(rt>>)hS#hZSXc7CTVA6ZVPpMrXm`D#
+XfSS%Vl$>eU7e-LrgX7dYg;b9r9MS1rh9RlV5C2lXnAh;XfSM"VPKoXS=5e0P)tZ\I<B=7?VsWm
+5X.Fh/hZiL'fnHM<FKiqJqo;KR\[.!aOT89o_SREs*t~>
+kPlCqkfgcZeDTTZn*]Q+inDbu\ZVZlJT"ppk=Q1Z=_;c'LR"dMdH'lprpB^rqW5\tTq7jJTq\B\
+W2cr$n?*G,XJr+pVPKrZTV%gIT:i'nh"C[3rri2dk3Vm(rt>>)hS#hZSXc7CTVA6ZVPpMrXm`D#
+XfSS%Vl$>eU7e-LrgX7dYg;b9r9MS1rh9RlV5C2lXnAh;XfSM"VPKoXS=5e0P)tZ\K78)gF)>`-
+ARo:X>[6u,'jtK`CN+NIJqo;KR\[.!aOT89o_SREs*t~>
+kPl@pkfgcZeDTTZn*]Q+inDbu\ZVZnN/*#IJ.6pPG'/1fQ)D:BjRW0HmJd^nji+<pSt;RJU8=`c
+WiW>lXqRq=WMcVjUnXNTT:VXHTVf?Vp&=7V"T%QKm.fZA')qU]]r.KnS=Q:FU84Z`W2cr$n#d&#
+XK/:tVP^/`TV%eSS-YakcgLc0lccR3U'7?hVPpPtor]17XJr+pUnOENR[9;&OH#-QKnP&/JUi6#
+J,OiiIK+]pHiJI(IY*?6PFA;N]?&O]m.C/RhuA3~>
+kPkecp?_#0o_SLarY#2,q"*q9hUTfb[&KXYEDekD%J'Q3!tun?:i(N2N0gEMa4TSGqYog\%fGkT
+eBlRie(*%%g=tE>mb\W4gtLK8f[eU&da6=cbK\]*qW\"_rqcEdrT!nhqX31fcd:%eeCE.&g"P39
+hX02AhV?l>g=b-0eC;pncHOJ[jRrNNoA\6Ed*pOtg"bETh]:P.g=b-0eC)[eb/V<5]XY>QY,\Cq
+U7\!GR@';*p662UR%'bEWj&tH`m<8okjS3@rVkXQJ,~>
+kPkecp?_#0o_SLarY#2,q"*q9hUTfb[&KX[J8f%%:\.0j92JYqBQJQQN0gEMa4TSGqYog\%fGkT
+eBlRie(*%%g=tE>mb\W4gtLK8f[eU&da6=cbK\]*qW\"_rqcEdrT!nhqX31fcd:%eeCE.&g"P39
+hX02AhV?l>g=b-0eC;pncHOJ[jRrNNoA\6Ed*pOtg"bETh]:P.g=b-0eC)[eb/V<5]XY>QY,\Cq
+U7\!GR@';*p662UR%'bEWj&tH`m<8okjS3@rVkXQJ,~>
+kPkecp?_#0o_SLarXf&*q"*q9hUTfb[&KX]MhZlRJ.R-UH?a[^JrH%n[`@%`o(r@Orsntsi7--#
+dF6Xsf\5*8hX985h;$`<g"=m+eC)^icHFJblh]lG"TJ8mqYfIS&GkhNda-:edaZguf\,!5gtqGU
+*o>],g=k64f$r3td*BkYdcC*#rU]$tcHt%jf\,'9oA:SEgtLH6f$r-obf[rB^V%(`Ycb"(UnXKP
+S!fY0Q1gFTQC+/7UoLZ.^;eLNhrsP%qYgELs*t~>
+k5PS_r;?Nmp\ts,r;--VlJpXIaM,![TU1[bAm%u-r([l1AT<3OL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+k5PS_r;?Nmp\ts,r;--VlJpXIaM,![TU1^lG]@S9r+Zj_Ed3(cL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+k5PS_r;?Nmp\u!-r;--VlJpXIaM,![TU1atL4b&-J,OiqI1LgZL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+%%EndData
+showpage
+%%Trailer
+end
+%%EOF
diff --git a/templates/Default-logo.png b/templates/Default-logo.png
new file mode 100755
index 00000000..5edcdfe5
--- /dev/null
+++ b/templates/Default-logo.png
Binary files differ
diff --git a/templates/Default-packing_list.html b/templates/Default-packing_list.html
new file mode 100755
index 00000000..57286437
--- /dev/null
+++ b/templates/Default-packing_list.html
@@ -0,0 +1,185 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>P A C K I N G &nbsp;&nbsp; L I S T</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% cellspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th width=50% align=left><font color=ffffff>Ship To:</th>
+ <th width=50%>&nbsp;</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%>
+ <%if shiptostate%>
+ , <%shiptostate%>
+ <%end shiptostate%>
+ <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ </td>
+
+ <td>
+ <%if shiptocontact%>
+ <br>Attn: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left>Invoice #</th>
+ <th width=17% align=left>Order #</th>
+ <th width=17% align=left>Date</th>
+ <th width=17% align=left nowrap>Contact</th>
+ <%if warehouse%>
+ <th width=17% align=left>Warehouse</th>
+ <%end warehouse%>
+ <th width=17% align=left>Shipping Point</th>
+ <th width=15% align=left>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%invnumber%>&nbsp;</td>
+ <td><%ordnumber%>&nbsp;</td>
+
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%transdate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+
+ <%if warehouse%>
+ <td><%warehouse%>&nbsp;</td>
+ <%end warehouse%>
+
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Item</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th align=left><font color=ffffff>Serial #</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Qty</th>
+ <th><font color=ffffff>Ship</th>
+ <th>&nbsp;</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%></td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td><%serialnumber%></td>
+ <td><%deliverydate%></td>
+ <td align=right><%qty%></td>
+ <td align=right><%ship%></td>
+ <td><%unit%></td>
+ </tr>
+ <%end number%>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+ <%if notes%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td>Notes</td>
+ <td><%notes%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <%end notes%>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=70%><font size=-3>
+ Items returned are subject to
+ a 10% restocking charge. A return authorization must be obtained
+ from <%company%> before goods are returned. Returns must be shipped
+ prepaid and properly insured. <%company%> will not be responsible
+ for damages during transit.
+ </font>
+ </td>
+ <td width=30%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Default-packing_list.tex b/templates/Default-packing_list.tex
new file mode 100755
index 00000000..2d3a1945
--- /dev/null
+++ b/templates/Default-packing_list.tex
@@ -0,0 +1,136 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\newsavebox{\ftr}
+\sbox{\ftr}{
+ \parbox{\textwidth}{
+ \tiny
+ \rule[1.5em]{\textwidth}{0.5pt}
+Items returned are subject to a 10\% restocking charge.
+A return authorization must be obtained from <%company%> before goods are
+returned. Returns must be shipped prepaid and properly insured.
+<%company%> will not be responsible for damages during transit.
+ }
+}
+
+<%include letterhead.tex%>
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrl@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Ship} & \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+\textbf{Ship To}} \hfill
+
+\vspace{0.3cm}
+
+\parbox[t]{.5\textwidth}{
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+}
+\parbox[t]{.5\textwidth}{
+ <%shiptocontact%>
+
+ <%if shiptophone%>
+ Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{P A C K I N G} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{7}{|X}|} \hline
+ \textbf{Invoice \#} & \textbf{Order \#} & \textbf{Date} & \textbf{Contact}
+ <%if warehouse%>
+ & \textbf{Warehouse}
+ <%end warehouse%>
+ & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+
+ <%invnumber%> & <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%transdate%>
+ <%end shippingdate%>
+ & <%employee%>
+ <%if warehouse%>
+ & <%warehouse%>
+ <%end warehouse%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrl@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Ship} & \\
+
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%serialnumber%> &
+ <%deliverydate%> & <%qty%> & <%ship%> & <%unit%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{12pt}
+
+<%notes%>
+
+}
+
+\vfill
+
+\rule{\textwidth}{0.5pt}
+
+\usebox{\ftr}
+
+\end{document}
+
diff --git a/templates/Default-pick_list.html b/templates/Default-pick_list.html
new file mode 100755
index 00000000..c6055449
--- /dev/null
+++ b/templates/Default-pick_list.html
@@ -0,0 +1,139 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>P I C K &nbsp;&nbsp; L I S T</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th width=50% align=left><font color=ffffff>Ship To:</th>
+ <th width=50%>&nbsp;</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%>
+ <%if shiptostate%>
+ , <%shiptostate%>
+ <%end shiptostate%>
+ <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ </td>
+
+ <td>
+ <%if shiptocontact%>
+ <br>Attn: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=15% align=left>Invoice #</th>
+ <th width=15% align=left>Order #</th>
+ <th width=10% align=left>Date</th>
+ <th width=15% align=left nowrap>Contact</th>
+ <th width=15% align=left>Warehouse</th>
+ <th width=10% align=left>Shipping Point</th>
+ <th width=10% align=left>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%invnumber%>&nbsp;</td>
+ <td><%ordnumber%>&nbsp;</td>
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%transdate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+ <td><%warehouse%>&nbsp;</td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Item</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qty</th>
+ <th><font color=ffffff>Ship</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Bin</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td align=right>[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</td>
+ <td><%unit%></td>
+ <td align=right><%bin%></td>
+ </tr>
+ <%end number%>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Default-pick_list.tex b/templates/Default-pick_list.tex
new file mode 100755
index 00000000..2f82936a
--- /dev/null
+++ b/templates/Default-pick_list.tex
@@ -0,0 +1,108 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\begin{tabularx}{\textwidth}{@{}rlXrcll@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} &
+ \textbf{Qty} & \textbf{Ship} & & \textbf{Bin} \\
+
+<%end pagebreak%>
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+ \textbf{Ship To}
+} \hfill
+
+\vspace{0.3cm}
+
+\parbox[t]{.5\textwidth}{
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+}
+\parbox[t]{.5\textwidth}{
+ <%shiptocontact%>
+
+ <%if shiptophone%>
+ Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{P I C K} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{7}{|X}|} \hline
+ \textbf{Invoice \#} & \textbf{Order \#} & \textbf{Date} & \textbf{Contact}
+ & \textbf{Warehouse} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+ <%invnumber%> & <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%transdate%>
+ <%end shippingdate%>
+ & <%employee%> & <%warehouse%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrcll@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} &
+ \textbf{Qty} & \textbf{Ship} & & \textbf{Bin} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> &
+ <%qty%> & [\hspace{1cm}] & <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+}
+
+\end{document}
+
diff --git a/templates/Default-pos_invoice.txt b/templates/Default-pos_invoice.txt
new file mode 100755
index 00000000..cbc0055a
--- /dev/null
+++ b/templates/Default-pos_invoice.txt
@@ -0,0 +1,45 @@
+<%company align=center width=40%>
+<%address align=center width=40%>
+
+Till: <%till align=left width=3%> Phone#: <%tel%>
+Cashier: <%employee%>
+Inv #/Date: <%invnumber%> / <%invdate%>
+Printed: <%dateprinted%>
+
+ Qty Description Amount
+<%foreach number%>
+<%qty align=right width=5%> <%description align=left width=24 offset=6%> <%linetotal align=right width=9%>
+ <%number%> @ <%sellprice%>/<%unit%>
+<%end number%>
+
+Number of items: <%totalqty%>
+<%if taxincluded%>
+ ---------------
+ Total: <%invtotal align=right width=9%>
+<%end taxincluded%>
+<%if not taxincluded%>
+ ------------
+ Subtotal: <%subtotal align=right width=9%>
+<%end taxincluded%>
+<%foreach tax%>
+<%taxdescription align=right width=23%> @ <%taxrate align=right width=2%>%: <%tax align=right width=9%>
+<%end tax%>
+<%foreach payment%>
+ Paid: <%payment align=right width=9%> <%currency%>
+<%end payment%>
+<%if change%>
+ Change: <%change align=right width=9%>
+<%end change%>
+<%if total%>
+ Balance Due: <%total align=right width=9%>
+<%end total%>
+<%if discount%>
+
+<%discount%> % Discount applied
+<%end discount%>
+
+ Thank you for your valued business!
+
+<%if taxincluded%>
+Taxes are included in price.
+<%end taxincluded%>
diff --git a/templates/Default-purchase_order.html b/templates/Default-purchase_order.html
new file mode 100755
index 00000000..ba4c1d43
--- /dev/null
+++ b/templates/Default-purchase_order.html
@@ -0,0 +1,241 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>P U R C H A S E &nbsp;&nbsp; O R D E R</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>To:</th>
+ <th align=left width=50%><font color=ffffff>Ship To:</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+
+ <%if vendorphone%>
+ <br>Tel: <%vendorphone%>
+ <%end vendorphone%>
+
+ <%if vendorfax%>
+ <br>Fax: <%vendorfax%>
+ <%end vendorfax%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%>
+ <%if shiptostate%>
+ , <%shiptostate%>
+ <%end shiptostate%>
+ <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ <br>
+
+ <%if shiptocontact%>
+ <br>Attn: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left>Order #</th>
+ <th width=17% align=left>Order Date</th>
+ <th width=17% align=left>Required by</th>
+ <th width=17% align=left>Contact</th>
+ <th width=17% align=left>Shipping Point</th>
+ <th width=15% align=left>Ship Via</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%></td>
+ <td><%orddate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>Item</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qt'y</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Price</th>
+ <th><font color=ffffff>%</th>
+ <th><font color=ffffff>Amount</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%>.</td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discountrate%></th>
+ <td align=right><%linetotal%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <td colspan=8><hr noshade></td>
+ </tr>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=7 align=right>Total</th>
+ <th colspan=1 align=right><%ordtotal%></th>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=7 align=right>Subtotal</th>
+ <td colspan=1 align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=7 align=right><%taxdescription%> on <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=1 align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <tr>
+ <td colspan=4>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <%if not taxincluded%>
+ <th colspan=7 align=right>Total</th>
+ <td colspan=1 align=right><%ordtotal%></td>
+ <%end taxincluded%>
+
+ <%if terms%>
+ <tr>
+ <td colspan=4>Terms Net <b><%terms%></b> days</td>
+ <th colspan=3 align=right>Total</th>
+ <th colspan=1 align=right><%ordtotal%></th>
+ </tr>
+ <%end terms%>
+
+ <%if taxincluded%>
+ <tr>
+ <td colspan=2>Tax included</td>
+ </tr>
+ <%end taxincluded%>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <%if ordtotal%>
+ <tr>
+ <td colspan=8 align=right>
+ All prices in <b><%currency%></b> Funds
+ </td>
+ </tr>
+ <%end ordtotal%>
+
+ </table>
+ </td>
+ </tr>
+
+ <%if notes%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td>Notes</td>
+ <td><%notes%></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+ <%end notes%>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=70%>&nbsp;</td>
+
+ <td width=30%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Default-purchase_order.tex b/templates/Default-purchase_order.tex
new file mode 100755
index 00000000..fe1e6428
--- /dev/null
+++ b/templates/Default-purchase_order.tex
@@ -0,0 +1,170 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{\hspace{1cm}r@{}}
+ & Subtotal & <%sumcarriedforward%> \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Amount} \\
+ & carried forward from <%lastpage%> & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+\textbf{To}
+\vspace{0.3cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+Attn: <%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if vendorphone%>
+Tel: <%vendorphone%>
+<%end vendorphone%>
+
+<%if vendorfax%>
+Fax: <%vendorfax%>
+<%end vendorfax%>
+
+<%email%>
+}
+\parbox[t]{.5\textwidth}{
+\textbf{Ship To}
+\vspace{0.3cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+Attn: <%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{P U R C H A S E} \parbox{0.3cm}{\hfill} \textbf{O R D E R}
+\hfill
+
+\vspace{1cm}
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Date} & \textbf{Required by} & \textbf{Contact} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5ex]
+ \hline
+ <%ordnumber%> & <%orddate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Amount} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%linetotal%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
+ & Subtotal & <%subtotal%> \\
+<%foreach tax%>
+ & <%taxdescription%> on <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ & Total & <%ordtotal%>\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ All prices in \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%notes%>
+
+}
+
+
+%\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+%\footnotetext[1]{\tiny }
+
+\end{document}
+
diff --git a/templates/Default-receipt.tex b/templates/Default-receipt.tex
new file mode 100755
index 00000000..effc19b6
--- /dev/null
+++ b/templates/Default-receipt.tex
@@ -0,0 +1,77 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{9pt}{9pt}\selectfont
+
+\parbox[t]{12cm}{
+ <%company%>
+
+ <%address%>}
+\hfill
+\parbox[t]{6cm}{\hfill <%source%>}
+
+\vspace*{0.6cm}
+
+<%text_amount%> \dotfill <%decimal%>/100 \makebox[0.5cm]{\hfill}
+
+\vspace{0.5cm}
+
+\hfill <%datepaid%> \makebox[2cm]{\hfill} <%amount%>
+
+% different date format for datepaid
+% <%DD%><%MM%><%YYYY%>
+
+\vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{1.8cm}
+
+<%memo%>
+
+\vspace{0.8cm}
+
+<%company%>
+
+\vspace{0.5cm}
+
+<%name%> \hfill <%datepaid%> \hfill <%source%>
+
+\vspace{0.5cm}
+\begin{tabularx}{\textwidth}{lXrr@{}}
+\textbf{Invoice No.} & \textbf{Invoice Date}
+ & \textbf{Due} & \textbf{Applied} \\
+<%foreach invnumber%>
+<%invnumber%> & <%invdate%> \dotfill
+ & <%due%> & <%paid%> \\
+<%end invnumber%>
+\end{tabularx}
+
+\vspace{1cm}
+
+<%memo%>
+
+\vfill
+
+\end{document}
+
diff --git a/templates/Default-request_quotation.html b/templates/Default-request_quotation.html
new file mode 100755
index 00000000..433b8e80
--- /dev/null
+++ b/templates/Default-request_quotation.html
@@ -0,0 +1,179 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>R E Q U E S T &nbsp;&nbsp; F O R &nbsp;&nbsp; Q U O T A T I O N</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>To:</th>
+ <th align=left width=50%><font color=ffffff>Ship To:</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+
+ <%if vendorphone%>
+ <br>Tel: <%vendorphone%>
+ <%end vendorphone%>
+
+ <%if vendorfax%>
+ <br>Fax: <%vendorfax%>
+ <%end vendorfax%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddr2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%>
+ <%if shiptostate%>
+ , <%shiptostate%>
+ <%end shiptostate%>
+ <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ <br>
+
+ <%if shiptocontact%>
+ <br>Attn: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left>RFQ #</th>
+ <th width=17% align=left>Date</th>
+ <th width=17% align=left>Required by</th>
+ <th width=17% align=left>Contact</th>
+ <th width=17% align=left>Shipping Point</th>
+ <th width=15% align=left>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%quonumber%></td>
+ <td><%quodate%></td>
+ <td><%reqdate%>&nbsp;</td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height="10"></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>Please provide price and delivery time for the following items:</td>
+ </tr>
+
+ <tr height="10"></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <th align=right>Item</th>
+ <th align=left>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th>Qt'y</th>
+ <th>&nbsp;</th>
+ <th>Delivery</th>
+ <th>Unit Price</th>
+ <th>Extended</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%>.</td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <td colspan=8><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+ <%if notes%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td>Notes</td>
+ <td><%notes%></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+ <%end notes%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Default-request_quotation.tex b/templates/Default-request_quotation.tex
new file mode 100755
index 00000000..cf95dd89
--- /dev/null
+++ b/templates/Default-request_quotation.tex
@@ -0,0 +1,151 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
+ & \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Extended} \\
+ & carried forward from <%lastpage%> & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+\textbf{To}
+\vspace{0.3cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if vendorphone%>
+Tel: <%vendorphone%>
+<%end vendorphone%>
+
+<%if vendorfax%>
+Fax: <%vendorfax%>
+<%end vendorfax%>
+
+<%email%>
+}
+\parbox[t]{.5\textwidth}{
+\textbf{Ship To}
+\vspace{0.3cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{R E Q U E S T for Q U O T A T I O N}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{RFQ \#} & \textbf{Date} & \textbf{Required by} & \textbf{Contact} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5ex]
+ \hline
+ <%quonumber%> & <%quodate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+Please provide price and delivery time for the following items:
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}lXrllrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} & &
+ \textbf{Delivery} & \textbf{Unit Price} & \textbf{Extended} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> & <%unit%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\hfill
+
+<%notes%>
+
+}
+
+\end{document}
+
diff --git a/templates/Default-sales_order.html b/templates/Default-sales_order.html
new file mode 100755
index 00000000..14c17e1e
--- /dev/null
+++ b/templates/Default-sales_order.html
@@ -0,0 +1,231 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>S A L E S &nbsp;&nbsp; O R D E R</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>To</th>
+ <th align=left width=50%><font color=ffffff>Ship To</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%>
+ <%if shiptostate%>
+ , <%shiptostate%>
+ <%end shiptostate%>
+ <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ <br>
+ <%if shiptocontact%>
+ <br><%shiptocontact%>
+ <%end shiptocontact%>
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+ <%if shiptoemail%>
+ <br><%shiptoemail%>
+ <%end shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Order #</th>
+ <th width=17% align=left>Order Date</th>
+ <th width=17% align=left>Required by</th>
+ <th width=17% align=left nowrap>Salesperson</th>
+ <th width=17% align=left nowrap>Shipping Point</th>
+ <th width=15% align=left nowrap>Ship Via</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%></td>
+ <td><%orddate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>Item</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qt'y</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Price</th>
+ <th><font color=ffffff>Disc %</th>
+ <th><font color=ffffff>Amount</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%>.</td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discountrate%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <td colspan=8><hr noshade></td>
+ </tr>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=6 align=right>Total</th>
+ <td colspan=2 align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=6 align=right>Subtotal</th>
+ <td colspan=2 align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=6 align=right><%taxdescription%> on <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <tr>
+ <td colspan=4>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=4>
+ <%text_amount%> ***** <%decimal%>/100
+ <%if terms%>
+ <br>Terms Net <b><%terms%></b> days
+ <%end terms%>
+ </td>
+ <th colspan=2 align=right>Total</th>
+ <th colspan=2 align=right><%ordtotal%></th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <%if notes%>
+ <td>Notes</td>
+ <td><%notes%></td>
+ <%end notes%>
+ <td align=right nowrap>
+ All prices in <%currency%> Funds</b>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=60%><font size=-3>
+ Special order items are subject to a 10% order cancellation fee.
+ </font>
+ </td>
+ <td width=40%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Default-sales_order.tex b/templates/Default-sales_order.tex
new file mode 100755
index 00000000..60f7bfeb
--- /dev/null
+++ b/templates/Default-sales_order.tex
@@ -0,0 +1,177 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
+ & \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+
+\begin{tabularx}{\textwidth}{@{}rlXrlrrr@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+ & carried forward from <%lastpage%> & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+\textbf{To}
+\vspace{0.3cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\parbox[t]{.5\textwidth}{
+\textbf{Ship To}
+\vspace{0.3cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{S A L E S} \parbox{0.3cm}{\hfill} \textbf{O R D E R}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Order Date} & \textbf{Required by} & \textbf{Salesperson} & \textbf{Shipping Point} & \textbf{Ship Via} \\ [0.5em]
+ \hline
+ <%ordnumber%> & <%orddate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrlrrr@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%discountrate%> & <%linetotal%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
+ & Subtotal & <%subtotal%> \\
+<%foreach tax%>
+ & <%taxdescription%> on <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ & Total & <%ordtotal%>\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100
+\hfill
+All prices in \textbf{<%currency%>}.
+
+<%if terms%>
+Terms: <%terms%> days
+<%end terms%>
+
+\vspace{12pt}
+
+<%notes%>
+
+}
+
+\vfill
+
+\centerline{\textbf{Thank You for your valued business!}}
+
+\rule{\textwidth}{0.5pt}
+
+\end{document}
+
diff --git a/templates/Default-sales_quotation.html b/templates/Default-sales_quotation.html
new file mode 100755
index 00000000..5d7f2699
--- /dev/null
+++ b/templates/Default-sales_quotation.html
@@ -0,0 +1,201 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>Q U O T A T I O N</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+
+ <br>
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Number</th>
+ <th width=17% align=left>Date</th>
+ <th width=17% align=left>Valid until</th>
+ <th width=17% align=left nowrap>Contact</th>
+ <th width=17% align=left nowrap>Shipping Point</th>
+ <th width=15% align=left nowrap>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%quonumber%></td>
+ <td><%quodate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>Item</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qt'y</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Price</th>
+ <th><font color=ffffff>Disc %</th>
+ <th><font color=ffffff>Amount</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%></td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discountrate%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <td colspan=8><hr noshade></td>
+ </tr>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=6 align=right>Total</th>
+ <td colspan=2 align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=6 align=right>Subtotal</th>
+ <td colspan=2 align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=6 align=right><%taxdescription%> on <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <tr>
+ <td colspan=4>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=4>&nbsp;
+ <%if terms%>
+ Terms Net <b><%terms%></b> days
+ <%end terms%>
+ </td>
+ <th colspan=2 align=right>Total</th>
+ <th colspan=2 align=right><%quototal%></th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <%if notes%>
+ <td>Notes</td>
+ <td><%notes%></td>
+ <%end notes%>
+ <td align=right>
+ All prices in <b><%currency%></b> Funds
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=60%><font size=-3>
+ Special order items are subject to a 10% cancellation fee.
+ </font>
+ </td>
+ <td width=40%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Default-sales_quotation.tex b/templates/Default-sales_quotation.tex
new file mode 100755
index 00000000..771fe6a3
--- /dev/null
+++ b/templates/Default-sales_quotation.tex
@@ -0,0 +1,148 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\newsavebox{\ftr}
+\sbox{\ftr}{
+ \parbox{\textwidth}{
+ \tiny
+ \rule[1.5em]{\textwidth}{0.5pt}
+Special order items are subject to a 10\% cancellation fee.
+ }
+}
+
+<%include letterhead.tex%>
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
+ & \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%quonumber%>}{<%company%>\hfill <%quonumber%>}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+ & carried forward from <%lastpage%> & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+
+\vspace{1cm}
+
+\textbf{Q U O T A T I O N}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Quotation \#} & \textbf{Date} & \textbf{Valid until} & \textbf{Contact} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5ex]
+ \hline
+ <%quonumber%> & <%quodate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%discountrate%> & <%linetotal%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
+ & Subtotal & <%subtotal%> \\
+<%foreach tax%>
+ & <%taxdescription%> on <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ & Total & <%quototal%>\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+All prices in \textbf{<%currency%>}.
+
+<%if terms%>
+Terms: <%terms%> days
+<%end terms%>
+
+\vspace{12pt}
+
+<%notes%>
+
+}
+
+\vfill
+
+\hfill \parbox{7cm}{X \rule{6.5cm}{0.5pt}}
+
+\rule{\textwidth}{0.5pt}
+
+\usebox{\ftr}
+
+\end{document}
+
diff --git a/templates/Default-statement.html b/templates/Default-statement.html
new file mode 100755
index 00000000..9a951a98
--- /dev/null
+++ b/templates/Default-statement.html
@@ -0,0 +1,137 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3><h4>S T A T E M E N T</h4></th>
+
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td colspan=3 align=right><%statementdate%></td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=10></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <th align=left>Invoice #</th>
+ <th align=left>Order#</th>
+ <th width=10%>Date</th>
+ <th width=10%>Due</th>
+ <th width=10%>Current</th>
+ <th width=10%>30</th>
+ <th width=10%>60</th>
+ <th width=10%>90</th>
+ </tr>
+
+ <%foreach invnumber%>
+ <tr>
+ <td><%invnumber%></td>
+ <td><%ordnumber%></td>
+ <td><%invdate%></td>
+ <td><%duedate%></td>
+ <td align=right><%c0%></td>
+ <td align=right><%c30%></td>
+ <td align=right><%c60%></td>
+ <td align=right><%c90%></td>
+ </tr>
+ <%end invnumber%>
+
+ <tr>
+ <td colspan=8><hr size=1></td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <th align=right><%c0total%></td>
+ <th align=right><%c30total%></td>
+ <th align=right><%c60total%></td>
+ <th align=right><%c90total%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=10></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td align=right>
+ <table width=50%>
+ <tr>
+ <th>Total Outstanding</th>
+ <th align=right><%total%></th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ <td>All amounts in <b><%currency%></b> funds.
+ <br>Please make check payable to <b><%company%></b>.
+ </td>
+ </tr>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Default-statement.tex b/templates/Default-statement.tex
new file mode 100755
index 00000000..0beb6c64
--- /dev/null
+++ b/templates/Default-statement.tex
@@ -0,0 +1,78 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+\parbox[t]{.5\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+}
+\parbox[t]{.5\textwidth}{
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{S T A T E M E N T} \hfill \textbf{<%statementdate%>}
+
+\vspace{2cm}
+
+\begin{tabular*}{\textwidth}{|ll@{\extracolsep\fill}ccrrrr|}
+ \hline
+ \textbf{Invoice \#} & \textbf{Order \#} & \textbf{Date} & \textbf{Due} &
+ \textbf{Current} & \textbf{30} & \textbf{60} & \textbf{90} \\
+ \hline
+<%foreach invnumber%>
+ <%invnumber%> & <%ordnumber%> & <%invdate%> & <%duedate%> &
+ <%c0%> & <%c30%> & <%c60%> & <%c90%> \\
+<%end invnumber%>
+ \multicolumn{8}{|l|}{\mbox{}} \\
+ \hline
+ \textbf{Subtotal} & & & & <%c0total%> & <%c30total%> & <%c60total%> & <%c90total%> \\
+ \hline
+\end{tabular*}
+
+\vspace{0.5cm}
+
+\hfill
+\begin{tabularx}{\textwidth}{Xr@{\hspace{1cm}}r@{}}
+ & \textbf{Total outstanding} & \textbf{<%total%>}
+\end{tabularx}
+
+\vfill
+All amounts in \textbf{<%currency%>} funds.
+
+Please make check payable to \textbf{<%company%>}
+
+\end{document}
+
diff --git a/templates/Default-timecard.html b/templates/Default-timecard.html
new file mode 100755
index 00000000..73516e22
--- /dev/null
+++ b/templates/Default-timecard.html
@@ -0,0 +1,124 @@
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>T I M E &nbsp;&nbsp; C A R D</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=left>Employee</th>
+ <td><%employee%></td>
+ </tr>
+ <tr>
+ <th align=left>ID</th>
+ <td><%employee_id%></td>
+ </tr>
+ </table>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Card ID</th>
+ <td><%id%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Date</th>
+ <td><%transdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>In</th>
+ <td><%checkedin%></td>
+ </tr>
+ <tr>
+ <th align=left>Out</th>
+ <td><%checkedout%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Hours</th>
+ <td><%qty%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=bottom>
+ <td>
+ <table>
+ <tr valign=top>
+ <th align=left>Job/Project #</th>
+ <td><%projectnumber%></td>
+ </tr>
+ <tr>
+ <th align=left>Description</th>
+ <td><%projectdescription%></td>
+ </tr>
+ <tr valign=top>
+ <th align=left>Labor/Service Code</th>
+ <td><%partnumber%></td>
+ </tr>
+ <tr>
+ <th align=left>Description</th>
+ <td><%description%></td>
+ </tr>
+ </table>
+ </td>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Rate</th>
+ <td><%sellprice%></td>
+ </tr>
+ <tr>
+ <th align=right>Total</th>
+ <td><%total%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <%if notes%>
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%notes%>
+ </td>
+ </tr>
+ <%end notes%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Default-timecard.tex b/templates/Default-timecard.tex
new file mode 100755
index 00000000..b7630a00
--- /dev/null
+++ b/templates/Default-timecard.tex
@@ -0,0 +1,52 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+\centerline{\textbf{T I M E}\hspace{0.5cm}\textbf{C A R D}}
+
+\vspace*{0.5cm}
+
+\begin{tabular}[t]{ll}
+ \textbf{Employee} & <%employee%> \\
+ \textbf{ID} & <%employee_id%> \\
+\end{tabular}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Card ID} & <%id%> \\
+ \textbf{Date} & <%transdate%> \\
+ \textbf{In} & <%checkedin%> \\
+ \textbf{Out} & <%checkedout%> \\
+ \textbf{Hours} & <%qty%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular}[b]{ll}
+ \textbf{Job/Project \#} & <%projectnumber%> \\
+ \textbf{Description} & <%projectdescription%> \\
+ \textbf{Labor/Service Code} & <%partnumber%> \\
+ \textbf{Description} & <%description%> \\
+\end{tabular}
+\hfill
+\begin{tabular}[b]{lr}
+ \textbf{Rate} & <%sellprice%> \\
+ \textbf{Total} & <%total%> \\
+\end{tabular}
+
+\vspace{0.3cm}
+
+<%notes%>
+
+\end{document}
+
diff --git a/templates/Default-work_order.html b/templates/Default-work_order.html
new file mode 100755
index 00000000..38fadacf
--- /dev/null
+++ b/templates/Default-work_order.html
@@ -0,0 +1,161 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>W O R K &nbsp;&nbsp; O R D E R</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>To</th>
+ <th align=left width=50%><font color=ffffff>Ship To</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%>
+ <%if shiptostate%>
+ , <%shiptostate%>
+ <%end shiptostate%>
+ <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ <br>
+ <%if shiptocontact%>
+ <br><%shiptocontact%>
+ <%end shiptocontact%>
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+ <%if shiptoemail%>
+ <br><%shiptoemail%>
+ <%end shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Order #</th>
+ <th width=17% align=left>Order Date</th>
+ <th width=17% align=left>Required by</th>
+ <th width=17% align=left nowrap>Salesperson</th>
+ <th width=17% align=left nowrap>Shipping Point</th>
+ <th width=15% align=left nowrap>Ship Via</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%></td>
+ <td><%orddate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>Item</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qt'y</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Bin</th>
+ <th><font color=ffffff>Serial #</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%>.</td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td><%bin%></td>
+ <td><%serialnumber%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <td colspan=7><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <%if notes%>
+ <td><%notes%></td>
+ <%end notes%>
+ </tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Default-work_order.tex b/templates/Default-work_order.tex
new file mode 100755
index 00000000..c8d48172
--- /dev/null
+++ b/templates/Default-work_order.tex
@@ -0,0 +1,141 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\begin{tabularx}{\textwidth}{@{}rlXrll@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ & \textbf{Serial Number} \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+\textbf{To}
+\vspace{0.3cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\parbox[t]{.5\textwidth}{
+\textbf{Ship To}
+\vspace{0.3cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{W O R K} \parbox{0.3cm}{\hfill} \textbf{O R D E R}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Order Date} & \textbf{Required by} & \textbf{Salesperson} & \textbf{Shipping Point} & \textbf{Ship Via} \\ [0.5em]
+ \hline
+ <%ordnumber%> & <%orddate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrll@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ & \textbf{Serial Number} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%serialnumber%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{12pt}
+
+<%notes%>
+}
+
+\vfill
+
+\end{document}
+
diff --git a/templates/Dutch-ap_transaction.html b/templates/Dutch-ap_transaction.html
new file mode 100755
index 00000000..fd7a96eb
--- /dev/null
+++ b/templates/Dutch-ap_transaction.html
@@ -0,0 +1,229 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>A P - T R A N S A C T I O N</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Invoice #</th>
+ <td><%invnumber%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Date</th>
+ <td><%invdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Due</th>
+ <td><%duedate%></td>
+ </tr>
+ <tr>
+ <th align=left>Order #</th>
+ <td><%ordnumber%>&nbsp;</td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Employee</th>
+ <td><%employee%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=50%>
+ <table>
+ <%foreach account%>
+ <tr valign=top>
+ <td><%accno%></td>
+ <td><%account%></td>
+ <td align=right><%amount%></td>
+ <td><%projectnumber%></td>
+ </tr>
+ <%end account%>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Subtotal</th>
+ <td align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=2 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ </table>
+ </td>
+ <td width=50%>
+ <%notes%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <tr>
+ <td>&nbsp;</td>
+
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%text_amount%> ***** <%decimal%>/100 <%currency%>
+ </td>
+ </tr>
+
+ <%if paid%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <tr>
+ <th>Payments</th>
+ </tr>
+
+ <tr>
+ <td>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=left>Date</th>
+ <th align=left>Account</th>
+ <th align=left>Source</th>
+ <th align=left>Memo</th>
+ <th align=left>Amount</th>
+ </tr>
+ <%end paid%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td><%paymentmemo%></td>
+ <td><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid%>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <%end paid%>
+
+ <tr height=10></tr>
+
+ <%if taxincluded%>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <th colspan=3 align=left><font size=-2>Taxes shown are included in price.</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Dutch-ap_transaction.tex b/templates/Dutch-ap_transaction.tex
new file mode 100755
index 00000000..8bfd9f79
--- /dev/null
+++ b/templates/Dutch-ap_transaction.tex
@@ -0,0 +1,125 @@
+\documentclass[10pt,letterpaper,oneside,onecolumn]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+\centerline{\textbf{A P} \hspace{0.3cm} \textbf{T R A N S A C T I O N}}
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+<%end contact%>
+
+\vspace{0.2cm}
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Invoice \#} & <%invnumber%> \\
+ \textbf{Date} & <%invdate%> \\
+ \textbf{Due} & <%duedate%> \\
+ \textbf{Order \#} & <%ordnumber%> \\
+ \textbf{Employee} & <%employee%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabularx}{.5\textwidth}[t]{@{}llrl@{}}
+<%foreach amount%>
+ <%accno%> & <%account%> & <%amount%> & <%projectnumber%> \\
+<%end amount%>
+
+ \multicolumn{2}{r}{\textbf{Subtotal}} & <%subtotal%> & \\
+<%foreach tax%>
+ \multicolumn{2}{r}{\textbf{<%taxdescription%> @ <%taxrate%> \%}} & <%tax%> & \\
+<%end tax%>
+
+ \multicolumn{2}{r}{\textbf{Total}} & <%invtotal%> & \\
+
+\end{tabularx}
+<%notes%>
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100 <%currency%>
+
+\vspace{0.3cm}
+
+<%if paid%>
+\begin{tabular}{@{}llllr@{}}
+ \multicolumn{5}{c}{\textbf{Payments}} \\
+ \hline
+ \textbf{Date} & & \textbf{Source} & \textbf{Memo} & \textbf{Amount} \\
+<%end paid%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%paymentmemo%> & <%payment%> \\
+<%end payment%>
+<%if paid%>
+\end{tabular}
+<%end paid%>
+
+\end{document}
+
diff --git a/templates/Dutch-ar_transaction.html b/templates/Dutch-ar_transaction.html
new file mode 100755
index 00000000..22833384
--- /dev/null
+++ b/templates/Dutch-ar_transaction.html
@@ -0,0 +1,237 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>A R - T R A N S A C T I O N</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Invoice #</th>
+ <td><%invnumber%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Date</th>
+ <td><%invdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Due</th>
+ <td><%duedate%></td>
+ </tr>
+ <tr>
+ <th align=left>Order #</th>
+ <td><%ordnumber%>&nbsp;</td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Salesperson</th>
+ <td><%employee%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=50%>
+ <table>
+ <%foreach account%>
+ <tr valign=top>
+ <td><%accno%></td>
+ <td><%account%></td>
+ <td align=right><%amount%></td>
+ <td><%projectnumber%></td>
+ </tr>
+ <%end account%>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Subtotal</th>
+ <td align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=2 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ </table>
+ </td>
+ <td width=50%>
+ <%notes%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <tr>
+ <td>&nbsp;</td>
+
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%text_amount%> ***** <%decimal%>/100 <%currency%>
+ </td>
+ </tr>
+
+ <%if paid%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <tr>
+ <th>Payments</th>
+ </tr>
+
+ <tr>
+ <td>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=left>Date</th>
+ <th align=left>Account</th>
+ <th align=left>Source</th>
+ <th align=left>Memo</th>
+ <th align=left>Amount</th>
+ </tr>
+ <%end paid%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td><%paymentmemo%></td>
+ <td><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid%>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <%end paid%>
+
+ <tr height=10></tr>
+
+ <%foreach tax%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <th colspan=9 align=left><font size=-2><%taxdescription%> Registration <%taxnumber%></th>
+ </tr>
+ <%end tax%>
+
+ <%if taxincluded%>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <th colspan=3 align=left><font size=-2>Taxes shown are included in price.</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Dutch-ar_transaction.tex b/templates/Dutch-ar_transaction.tex
new file mode 100755
index 00000000..654d2b95
--- /dev/null
+++ b/templates/Dutch-ar_transaction.tex
@@ -0,0 +1,131 @@
+\documentclass[10pt,letterpaper,oneside,onecolumn]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+\centerline{\textbf{A R} \hspace{0.3cm} \textbf{T R A N S A C T I O N}}
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+<%end contact%>
+
+\vspace{0.2cm}
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Invoice \#} & <%invnumber%> \\
+ \textbf{Date} & <%invdate%> \\
+ \textbf{Due} & <%duedate%> \\
+ \textbf{Order \#} & <%ordnumber%> \\
+ \textbf{Employee} & <%employee%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabularx}{.5\textwidth}[t]{@{}llrl@{}}
+<%foreach amount%>
+ <%accno%> & <%account%> & <%amount%> & <%projectnumber%> \\
+<%end amount%>
+
+ \multicolumn{2}{r}{\textbf{Subtotal}} & <%subtotal%> & \\
+<%foreach tax%>
+ \multicolumn{2}{r}{\textbf{<%taxdescription%> @ <%taxrate%> \%}} & <%tax%> & \\
+<%end tax%>
+
+ \multicolumn{2}{r}{\textbf{Total}} & <%invtotal%> & \\
+
+\end{tabularx}
+<%notes%>
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100 <%currency%>
+
+\vspace{0.3cm}
+
+<%if paid%>
+\begin{tabular}{@{}llllr@{}}
+ \multicolumn{5}{c}{\textbf{Payments}} \\
+ \hline
+ \textbf{Date} & & \textbf{Source} & \textbf{Memo} & \textbf{Amount} \\
+<%end paid%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%paymentmemo%> & <%payment%> \\
+<%end payment%>
+<%if paid%>
+\end{tabular}
+<%end paid%>
+
+\vspace{0.5cm}
+
+<%foreach tax%>
+\textbf{\small{<%taxdescription%> Registration <%taxnumber%>}} \\
+<%end tax%>
+
+\end{document}
+
diff --git a/templates/Dutch-balance_sheet.html b/templates/Dutch-balance_sheet.html
new file mode 100755
index 00000000..5eef5f52
--- /dev/null
+++ b/templates/Dutch-balance_sheet.html
@@ -0,0 +1,110 @@
+
+<body>
+
+<h2 align=center>
+<%company%>
+<br><%address%>
+
+<p>BALANS
+<br>per <%this_period%>
+</h2>
+
+<%if department%>
+<h4>Afdeling: <%department%></h4>
+<%end department%>
+
+<table border=0>
+<tr>
+ <th align=left width=400 colspan=2>ACTIVA<br><hr align=left width=250 size=5 noshade></th>
+ <th><%this_period%></th>
+ <th><%last_period%></th>
+</tr>
+
+<%foreach asset_account%>
+<tr>
+ <td> </td>
+ <td><%asset_account%></td>
+ <td align=right><%asset_this_period%></td>
+ <td align=right><%asset_last_period%></td>
+</tr>
+<%end asset_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>TOTAAL ACTIVA</th>
+ <td align=right><%total_assets_this_period%><hr noshade size=2></td>
+ <td align=right><%total_assets_last_period%><hr noshade size=2></td>
+</tr>
+
+<tr>
+ <th align=left colspan=4>PASSIVA<b><hr align=left width=250 size=5 noshade></th>
+</tr>
+
+<%foreach liability_account%>
+<tr>
+ <td></td>
+ <td><%liability_account%></td>
+ <td align=right><%liability_this_period%></td>
+ <td align=right><%liability_last_period%></td>
+</tr>
+<%end liability_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td></td>
+ <th align=left>Totaal Passiva</th>
+ <td align=right><%total_liabilities_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_liabilities_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr>
+ <th align=left colspan=4>EIGEN VERMOGEN<br><hr align=left width=250 size=5 noshade></th>
+</tr>
+
+<%foreach equity_account%>
+<tr>
+ <td></td>
+ <td><%equity_account%></td>
+ <td align=right><%equity_this_period%></td>
+ <td align=right><%equity_last_period%></td>
+</tr>
+<%end equity_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td></td>
+ <th align=left>Totaal Eigen Vermogen</th>
+ <td align=right><%total_equity_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_equity_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>TOTAAL PASSIVA & EIGEN VERMOGEN</th>
+ <td align=right><%total_this_period%><br><hr noshade size=2></td>
+ <td align=right><%total_last_period%><br><hr noshade size=2></td>
+</tr>
+</table>
+
+
+
+
+
+
+
+
+
diff --git a/templates/Dutch-bin_list.html b/templates/Dutch-bin_list.html
new file mode 100755
index 00000000..24440675
--- /dev/null
+++ b/templates/Dutch-bin_list.html
@@ -0,0 +1,189 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <th align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>B I N &nbsp;&nbsp; L I S T</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% cellspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>From</th>
+ <th align=left width=50%><font color=ffffff>Ship To</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+
+ <%if vendorphone%>
+ <br>Tel: <%vendorphone%>
+ <%end vendorphone%>
+
+ <%if vendorfax%>
+ <br>Fax: <%vendorfax%>
+ <%end vendorfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+
+ <br>
+ <%if shiptocontact%>
+ <br>Attn: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Order #</th>
+ <th width=17% align=left nowrap>Date</th>
+ <th width=17% align=left nowrap>Contact</th>
+ <%if warehouse%>
+ <th width=17% align=left nowrap>Warehouse</th>
+ <%end warehouse%>
+ <th width=17% align=left>Shipping Point</th>
+ <th width=15% align=left>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%>&nbsp;</td>
+
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%orddate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+
+ <%if warehouse%>
+ <td><%warehouse%></td>
+ <%end warehouse%>
+
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Pos</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Serialnumber</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Qty</th>
+ <th><font color=ffffff>Recd</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Bin</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%></td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td><%serialnumber%></td>
+ <td><%deliverydate%></td>
+ <td align=right><%qty%></td>
+ <td align=right><%ship%></td>
+ <td><%unit%></td>
+ <td><%bin%></td>
+ </tr>
+ <%end number%>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+</table>
+
diff --git a/templates/Dutch-bin_list.tex b/templates/Dutch-bin_list.tex
new file mode 100755
index 00000000..3d6052f9
--- /dev/null
+++ b/templates/Dutch-bin_list.tex
@@ -0,0 +1,147 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Recd} & & \textbf{Bin} \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.5\textwidth}{
+\textbf{From}
+\vspace{0.7cm}
+
+<%name%>
+
+<%address1%>
+
+<%if %address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country4%>
+<%end country%>
+}
+\parbox[t]{.4\textwidth}{
+\textbf{Ship To}
+\vspace{0.7cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%if shiptoaddress2%>
+<%shiptoaddress2%>
+<%end shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%if shiptocountry%>
+<%shiptocountry%>
+<%end shiptocountry%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{B I N} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Date} & \textbf{Contact}
+ <%if warehouse%>
+ & \textbf{Warehouse}
+ <%end warehouse%>
+ & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+
+ <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%orddate%>
+ <%end shippingdate%>
+ & <%employee%>
+ <%if warehouse%>
+ & <%warehouse%>
+ <%end warehouse%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Recd} & & \textbf{Bin} \\
+
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%serialnumber%> &
+ <%deliverydate%> & <%qty%> & <%ship%> & <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabularx}
+
+
+\rule{\textwidth}{2pt}
+
+\end{document}
+
diff --git a/templates/Dutch-check.tex b/templates/Dutch-check.tex
new file mode 100755
index 00000000..6742b5b5
--- /dev/null
+++ b/templates/Dutch-check.tex
@@ -0,0 +1,75 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.4cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.0cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+
+\fontfamily{cmss}\fontsize{9pt}{9pt}\selectfont
+
+\parbox[t]{12cm}{
+ <%company%>
+
+ <%address%>}
+\hfill
+\parbox[t]{6cm}{\hfill <%source%>}
+
+\vspace*{0.6cm}
+
+<%text_amount%> \dotfill <%decimal%>/100 \makebox[0.5cm]{\hfill}
+
+\vspace{0.5cm}
+
+\hfill <%datepaid%> \makebox[2cm]{\hfill} <%amount%>
+
+\vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{2.8cm}
+
+<%company%>
+
+\vspace{0.5cm}
+
+<%name%> \hfill <%datepaid%> \hfill <%source%>
+
+\vspace{0.5cm}
+\begin{tabularx}{\textwidth}{lXrr@{}}
+\textbf{Invoice No.} & \textbf{Invoice Date}
+ & \textbf{Due} & \textbf{Applied} \\
+<%foreach invnumber%>
+<%invnumber%> & <%invdate%> \dotfill
+ & <%due%> & <%paid%> \\
+<%end invnumber%>
+\end{tabularx}
+
+\vfill
+
+\end{document}
+
diff --git a/templates/Dutch-income_statement.html b/templates/Dutch-income_statement.html
new file mode 100755
index 00000000..c4c1cfb4
--- /dev/null
+++ b/templates/Dutch-income_statement.html
@@ -0,0 +1,81 @@
+
+<body>
+
+<h2 align=center>
+<%company%>
+<br><%address%>
+
+<p>INKOMSTEN OVERZICHT
+<br><%period%>
+</h2>
+
+<%if department%>
+<h4>Afdeling: <%department%></h4>
+<%end department%>
+
+<%if projectnumber%>
+<h4>Project Nummer: <%projectnumber%></h4>
+<%end projectnumber%>
+
+<table width=100% border=0>
+<tr>
+ <th width=400 align=left colspan=2>INKOMSTEN<br><hr width=300 size=5 align=left noshade></th>
+ <th><%this_period%></th>
+ <th><%last_period%></th>
+</tr>
+
+<%foreach income_account%>
+<tr>
+ <td width=4> </td>
+ <td><%income_account%></td>
+ <td align=right><%income_this_period%></td>
+ <td align=right><%income_last_period%></td>
+</tr>
+<%end income_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td> </td>
+ <th align=left>TOTAAL INKOMSTEN</th>
+ <td align=right><%total_income_this_period%><hr noshade size=2></td>
+ <td align=right><%total_income_last_period%><hr noshade size=2></td>
+</tr>
+
+<tr>
+ <th align=left colspan=2>UITGAVEN<br><hr width=300 size=5 align=left noshade></th>
+</tr>
+
+<%foreach expense_account%>
+<tr>
+ <td> </td>
+ <td><%expense_account%></td>
+ <td align=right><%expenses_this_period%></td>
+ <td align=right><%expenses_last_period%></td>
+</tr>
+<%end expense_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td> </td>
+ <th align=left>TOTAAL UITGAVEN</th>
+ <td align=right><%total_expenses_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_expenses_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>WINST / (VERLIES)</th>
+ <td align=right><%total_this_period%><br><hr noshade size=2></td>
+ <td align=right><%total_last_period%><br><hr noshade size=2></td>
+</tr>
+
+</table>
diff --git a/templates/Dutch-invoice.html b/templates/Dutch-invoice.html
new file mode 100755
index 00000000..1ebb63a4
--- /dev/null
+++ b/templates/Dutch-invoice.html
@@ -0,0 +1,248 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>F A C T U U R</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Factuurdatum</th><td width=10>&nbsp;</td><td><%invdate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Vervaldatum</th><td width=10>&nbsp;</td><td><%duedate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Factuurnummer</th><td>&nbsp;</td><td><%invnumber%></td></tr>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+ </td>
+ </table>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Factuuradres:</th>
+ <th align=left><font color=ffffff>Verzendadres:</th>
+ </tr>
+
+ <tr>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+<br><%address2%>
+<%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+<%country%>
+<%end country%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+<br><%shiptoaddress2%>
+<%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+<%shiptocountry%>
+<%end shiptocountry%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+<!-- <th align=right><font color=ffffff>Regel</th> -->
+ <th align=left><font color=ffffff>Artikelnummer</th>
+ <th align=left><font color=ffffff>Omschrijving</th>
+ <th><font color=ffffff>Aantal</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Prijs</th>
+ <th><font color=ffffff>Korting</th>
+ <th><font color=ffffff>Totaal</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+<!-- <td align=right><%runningnumber%>.</td>
+adjust the colspan if you include this to shift subtotal one to the right
+-->
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discount%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+<%end number%>
+
+<!--
+you can also use netprice instead of sellprice if you
+don't want to show the discount
+netprice = sellprice - discount
+to show the percentage for a discount use <%discountrate%>
+-->
+
+ <tr>
+ <td colspan=7><hr noshade></td>
+ </tr>
+
+ <tr>
+ <th colspan=5 align=right>Subtotaal</th>
+ <td colspan=2 align=right><%subtotal%></td>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=5 align=right>BTW <%taxrate%>%</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+<%end tax%>
+
+<%if paid%>
+ <tr>
+ <th colspan=5 align=right>Betaald</th>
+ <td colspan=2 align=right>- <%paid%></td>
+ </tr>
+<%end paid%>
+
+ <tr>
+ <td colspan=3>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=3>Betalen binnen <b><%terms%></b> dagen</td>
+ <th colspan=2 align=right>Openstaand</th>
+ <th colspan=2 align=right><%total%></th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>Opmerkingen</td>
+ <td><pre><%notes%></pre></td>
+<%end notes%>
+ <td align=right>
+ Alle prijzen in <b><%currency%></b>
+ <br><%shippingpoint%>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <th colspan=7>
+ Gaarne u betaling overmaken op onderstaande giro- of bankrekening
+ <br>ten name van <%company%>
+ <br>onder vermelding van het factuurnummer.
+ </th>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><font size=-3>
+ Op al onze aanbiedingen/leveringen zijn, met uitsluiting van eventuele inkoop- of andere voorwaarden van de opdrachtgever,
+<br>de Algemene Voorwaarden van <%company%> van toepassing.
+<br>Deze Algemene Voorwaarden zijn gedeponeerd bij de Kamer van Koophandel te ........
+ </font>
+ </td>
+ <td width=150>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+ <tr>
+ <th colspan=7 align=left><font size=-2>BTW nummer:<%taxnumber%></th>
+ </tr>
+
+ <tr>
+ <th colspan=7 align=left><font size=-2>Kamer van Koophandel te ...... nummer:<%businessnumber%></th>
+ </tr>
+
+ <tr>
+ <th colspan=7 align=left><font size=-2>Girorekening:.........</th>
+ </tr>
+
+ <tr>
+ <th colspan=7 align=left><font size=-2>Bankrekening:..........</th>
+ </tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Dutch-invoice.tex b/templates/Dutch-invoice.tex
new file mode 100755
index 00000000..6a6c9e26
--- /dev/null
+++ b/templates/Dutch-invoice.tex
@@ -0,0 +1,142 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%invnumber%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+<%pagebreak 65 27 37%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markright{<%company%>\hfill <%invnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc} & \textbf{Amount} \\
+ & carried forward from page <%lastpage%> & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{2cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{3.5cm}
+
+\textbf{F A K T U U R}
+\hfill
+\begin{tabular}[t]{l@{\hspace{0.3cm}}l}
+ \textbf{Datum} & <%invdate%> \\
+ \textbf{Faktuurnummer} & <%invnumber%> \\
+ \textbf{Klantnummer} & <%customer_id%>
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Artikelnr} & \textbf{Omschrijving} & \textbf{Aantal} &
+ \textbf{Eenheid} & \textbf{Prijs} & \textbf{Korting} & \textbf{Bedrag} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%discount%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotaal} & \textbf{<%subtotal%>} \\
+<%foreach tax%>
+ <%taxdescription%> on <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ \textbf{Totaal} & \textbf{<%total%>}\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ Alle prijzen in \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+\vfill
+\centerline{\textbf{Dank voor uw gewaardeerde klandizie!}}
+
+\end{document}
+
diff --git a/templates/Dutch-logo.eps b/templates/Dutch-logo.eps
new file mode 100755
index 00000000..3a22b2ff
--- /dev/null
+++ b/templates/Dutch-logo.eps
@@ -0,0 +1,1334 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: GIMP PostScript file plugin V 1.17 by Peter Kirchgessner
+%%Title: Brazilian_Portuguese-logo.eps
+%%CreationDate: Thu Aug 31 19:25:05 2006
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 2
+%%Pages: 1
+%%BoundingBox: 14 14 415 215
+%%EndComments
+%%BeginProlog
+% Use own dictionary to avoid conflicts
+10 dict begin
+%%EndProlog
+%%Page: 1 1
+% Translate for offset
+14.173228346456694 14.173228346456694 translate
+% Translate to begin of first scanline
+0 199.99842519685043 translate
+399.99685039370081 -199.99842519685043 scale
+% Image geometry
+400 200 8
+% Transformation matrix
+[ 400 0 0 200 0 0 ]
+% Strings to hold RGB-samples per scanline
+/rstr 400 string def
+/gstr 400 string def
+/bstr 400 string def
+{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop}
+true 3
+%%BeginData: 80402 ASCII Bytes
+colorimage
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+fDblg6K\=Q"WB-W4?Pdo4p6+l]&ih]rrrDpij);hp&GL',"Q[#Lmt]mi:-UBo)Ajlp>C')q#Ca-
+0OT-[R^UZ0q#:3k!rftBr;[*-4`Pt>]\`;[p&>'%-iO)I,T-[I!!OC1jn&BKnc&dlp#<8P%e]l2
+"!U9TI#+8tb2Ddcrq6:-g3RO66TZkO/89R1ak>G'lMCDUrVc`p_uG5~>
+fDc3-AgAK<(`*r''GKsK"r/C?3]oMfm61YtOLjQNo`#*op#<8P%e]l2"!U9TI#+8tb2Ddcrpp'l
+rq>8m&GZ;5#V]Y2L75R!lM1AVrrW28$N0r1#!HsURCqDKrq69l[jV.T![JWbkPtc,R-!r:rpg!l
+rq59V:(Hst$j.\EE.!J2ZHD+pqYp0f(YX1N<'rc'0emR!XjZ4ijR;sBr;HTnrknbd~>
+fDc6;J3>hE.46Gg,U"<#*sNl<2EEr_4mbE9G`]Muqt0mlrq59V:(Hst$j.\EE.!J2ZHD+pqYp'c
+"TJ,QFV+?K$4&=nG_VZqdd$W,r;Qit^^C#?#R3G3J!mt+o`"O`!OjHU!!4D`!pBUf*LPs[qu6-c
+"oe2SZ;(o'!"8rR88rs4S$L2pnG<.WrtjC8CK*Y`2)R41LpG[tlg+-<qu$Ekrr0h8J,~>
+gA_6CM^RKa#SJU[Cl4ICR$dH4"J2pKnc&.[#laS]ca8*s2'Dku%L*7S1/_:`E/L-e^<lNJn,*ps
+lGB9$.1d!s#n@h2C5&"Yb2DgerqcX(q78g7,slHqMPJ)Jp&4[cs*k'%9)\er&Pd:_DG`D6!pTal
+;j3B4I=8["q>L$e)ZKKoca5M5$jR7P',DcW=EAnFP+oA,h<ak4r;@'%mG5jnSV:rb4tRZYo)K.6
+.77QqVp"]-r;HW:s*t~>
+gA_WSXCb's7mAmd0J>%2/aY(p3(dS&NKf`rR.?XJT!Hl9rq$..rqGU%[!bb.+:/;Z%M^0O>@_Mp
+OJ9/'f_#".r"](qb,Jl)'b_,j)_+BrKpT$di:6^DqYq$#\j.Db6>_(,UVl'`rV6EmU]HuXrW!3>
+=ES\+<]_9&l2V,jVQ@/!U<E9+rV$70rqGU%Zq25S%MBBi(a_LMF+&e+U:&/"m.U>Sr=/\qk1@he
+W0`?`B2UiFr@A%'1d4D,8ded6G`JT6f_#";rVjq=J,~>
+gA_WV`KPh&H>[%h;Gg7d:@1a]<FBcqNg,isR.?XJT!Hl9rq$..rqGU%[!bb.+:etm&f`Dk@V^"7
+Q)D4<h=UO3r"](rd'%+>(`!f$,WA_DKpT$di:6^DqYq$#\j.Db6>_(,UVl'`rV6Em^B(K0rW!3B
+@!Hj=>!*c+l2V,lZbFJn^"N,TrV$70rqGU%Zreh$',D<")CRjQF+&e+U:&/"m.U>Sr=/\tmGcjE
+_7$G9OF(D5rCmAj>ASW`J.%6uT<>oSiV!$ErVjq=J,~>
+h#@HEIh:?7#Tc9FPJ##]c-H(0"4GulqXORjrqc-Bc+C!IjT#8`m/R?)T"N_Cq#1!f%/obL[[`MH
+U:8M5p\spee,TVcf]W#.pAY9pqXED]p&G=-'G_N()]Tmq*WQH&!!iZW>`-Jlq#(-9s*t~>
+h#@HJUfI@c"%YgF4l\X1;/(]X^WF^EcM,WedbO6dnc'C(qXEFf];hGR.Olks.P*2,2*!ie7S*/D
+!)3/["\;$E2D?]].L7OVFe67umJ-YTrs\ksfX@<5QD1k8kkG)Nrt@jG!<<*#(b-sc0JtaF0Ie1Z
+$3BMo#oYim84nopkP+uLrtbV1nDI&"0eP",.Ochs/1rtM85<,d>l%b,:\RH`84>d,rB(0F5Xe6:
+8dJ+(MQ5+sq#(-9s*t~>
+h#@HM^PMi="+56/C#`k4FbQ3b_9'pGcM,WedbO6dnc&ppqXEFf];hGq8cD6f8P;iZ>@VDgG^Y)7
+J,k2sJ.d?ZFD5#[9h@lH8ksi,]\)WHrV6C$rUSULS<B24\'X@5rqHF+H9;6/!!+Q@7nZfd?<U9"
+2^8k8m/RGEAorHOWS$D.rq??urqc-BFC%sC91f+R$;!ld>@_PnIYEZ=qi1Z0pOE?oG].?qBEN!f
+G^]78#_J8?^teSWr;Ot@J,~>
+h>[MB'\!*i,YiZYa62mZnF?&JncSOYqu6'a#Q=GfkM4KR)UeZi*-S.$mJQYW$N0GOcGmrTj73!F
+p\t6"ec5mb/8hc?meueX"TA*n,R_Hh#7aOmh":IArmCar~>
+h>[M`=SbYi8,u0:7LELMS$gZ-mdKZ8nc&(]o_87^n,EXkq!mP&dV;DR3!VH*4[;>&7nDf8%S9,W
+5<Lqc3BBc^Us&0'p&>Bsn__X3aOK8?qYp6h!OE+3!##DT-n$]+5!hV'5!1e]0J"C`$j,nu#UVT+
+?\Yl5meueX#Q=FJ>Xpq<3W:uC3BKAh6:FC8lq.=N84WVJ!_5dQmn*g`J?Io(qYgE@s*t~>
+h>[N!MYho*Isl\"H4#P$Zc1S]mdKZ8nc&(]o_87^n,F("q!mP&dY;XJ@:E_XBl7s8H[^J.J.@!Q
+F)5K!@U`kaL8<#[r:U'sr:/[i`lQZinbW7ZrrKG;rW!T71dso2?>FS'EGT5p>#S'T-5?[R!!rZm
+AU&loZI&%<o`#U'pn<@]Bk:d_@:E_XBl7s8H[^J4J-(4LI/A3kI"$S7J-Uh)_rgUfrVk4EJ,~>
+hu<`75k=sc"VrFC5tXgF:/4DF.i/9O!!*]Ur]C="me$ATli.:jr:opKd%Y/9'&!<k"#=J;Ni^b$
+rq-3qrV,jMn+?JTpAY,>f)Q'a;0.S\XNp84o)Asihn"ng;)Ad$!!WNiQK@f9rmUmt~>
+hu<`@GOnE:9Mnkt@V0:fC2.Hn>Z4;[8dSO+F*)Mgme$ATli.Fnr:opKd&28#:.@`E8`E>N8Ou<>
+7TaSXNi^b$rq-3qrV,jMn+?JTpAY,>qu@NQ,q(K/6:XU>84Z3<69dRl1bgU.)%[&F!!j*8F,?6b
+cL1Z%rseb\\s@h_>t[RS7Rp!@b";k3FKjs$qYntDJ,~>
+hu<`GT_![<IscQgH[C/>IKP(MIt-[4!Jlg9S-6.co_SRQrso&+q"3gtWf)=NG^=adJ)l+hIsu`i
+GBS%NIZCMZo)A:]#Q=DemdKfErV$6kHi3pL!AZo0<+U)rrdG<'H$++DB44tC:-L3L%.jN*&m043
+Q`SL#rUTsuptrZOMLp5#G'A1WI"$RgJ-LRo_WgairmUmt~>
+i;Wha&G?)3"X69@G^kI,P*_]1rh'IfS=#7L5SE5[">J!QnGMJL#l<l9^9FDd9H)af#qBJ1L7#-c
+jnSiGs8Drirr@!8!!4`+#i,Ic89UN4bi8<po)B'omao@cYc+.?63tL0"V>7hnG)t4s*t~>
+i;Wi"<VB#m9N5D9G^kI,P*_]1rh'IfS=#CdBN""c"DGs4nGMJL#l<l9^9FDnE)tgf$!(hdL7#-c
+jnSiGs8Drirr@!8!!Y&=.ks.S8GYpg8Ou<=69dRm2)6d5*"E#D!!c&<S@?`%p&=O^$N'8C_mckK
+Sr%2W`(C25NR[ImrRLpu~>
+i;Wi2M"Z?,IsQ9]G^kI,P*_]1rh'IfS=#ItL4SN<"H^d\nGMJL#l<l9^9FE!MLs]8$$^E6L7#-c
+jnSiGs8Drirr@!8!!b/H79+#EI=M0F%tB%UH$44GBOY4I:e*2V!qu["89UN4bi8<po)B$nmao@c
+Yc+.WLr4`HL9'%tq#/bCJ,~>
+iVrn9p&GO<7W!I+P+J\^^;eCEe,@c%d`oeFZDDb'!pTag,b;X/qWIkdrqc0Li7?&`XFWVBirBDi
+9lbcMYfPVcpAO"N!/(1L";kW^EBr@\#!RdOh!Xn6nc'!rqXWt6i7cW"\Y):S!"&cA/3cp6C2SKO
+KDgH,J9#$l1DK9X"TqW;mJ$S2s*t~>
+iVrnZp.>ck@;pOIP+J\^^;eCEe,@c%d`oeFZDE@g9Bo+P>b/RgqWIkdrqc0Li7?&`XH.-lj%9YP
+@WI!bYfPVcpAO"N!/(1L"rLi`F'qF.oh#Wa84H$85Wq.e1Fs:Bq#CU_L:H%,pAFI\$i^"nlfI'Y
+d`8noDWsb":g%1=D00uNJV3oS"bM/FCg^008d.n<bO,'&fDg@~>
+iVrnsp4*U"FE;b_P+J\^^;eCEe,@c$d`oeFZDEhBl$rniS\=([kPkqhqXNh.f#kY,R>QRUJ-pdG
+Ee'I[aP?+TrSmhWKDY]R(h76%G^"W1J.7!WI!U!XDe`ij=A("Cq#CU_L:H%,pAFI\$i^"nlfI'Y
+d`8nsNp2'#I!U'`H[L9mJV3fP!J>skJ-CLtdd?f-fDg@~>
+ir9!spAb^?;KRDLTsM\cguRbgo(;VSp'^Qco'Yc%fZLdo7Ki&X"<E/rh"^"2$i^)#p@.8#cFooT%
+d!`u!`F)pUr;*Wq#(-NrrL.Cqu?puFHE]?JdCT@!=T>3!!P?@^Ztarn,NFe$N9o!q"4":g;nL?m
+f3e)/l6J6KT).cU8P&qZM_'8Za$U.SV:/k!q?6o"'3Y5q#/nGJ,~>
+ir9"HpIYrnA9<<^TsM\cguRbgo(;VSp'^Qco'Yc%fZLduDbTLi"B:&Th"^"2$i^)#p@.8#cFp'#
+;<:CVA93O%`80kVr;P^U!QP?@!!Z;BOKZBc:@Up_8Ou?@6pX!s/dhFT"ZVIUlMUYMs8W'*rVZNe
+o^:kqaHB6c8e"NtATN6PN0Kj,VlR#,r3Qa9Z)jdmNceQ!nO`sYK$s&]rRq4$~>
+ir9"fpOEd$EccelTsM\cguRbgo(;VSp'UKbo'Yc%fZLe&NpD2uI>"ZVpuVM`rquWdnE8TP]r@0H
+ja[YVF,-R0h<t(9ro3qY`ru;?##TK(YJ-renph'sIXHKeF`;))8.,1n"ZVIUlMUYMs8W')rVZNe
+o^:kqaJJ<T%=WPDFaSk$PanJGX08i,Zj3qBXJMJOMM(DK"bEE!mJ-Y5s*t~>
+j8T+/p](g,5&bn2VnUU<m.C)NrVlflrsA]'qY'F@fZ'=>m/R8.I&>WmiVs5`r:ojHg;p9k"R#gj
+/ocWFcKY*%hu<[5qu@!=E/1aQlJS-;lMq#'>>b\&!!G<<]''%TrrrE"p[6mkmf3eaEIa7KZG+E,
+f%Ss<iqqdCini>8aLn[:8e(:j"Uoe:nG<.=s*t~>
+j8T+Tpdu&i?>t:RVnUU<m.C)NrVlflrsA]'qY'F@fZ'_$m7ILZI&>WmiVs5`r:ojHg;pF@9^#(R
+=E0(pcKY*%hu<[5qu@!=E/1aQlJSa>m7IOQ7nd5e#5\B'3Jb90rTF1arquNYhOa1.%:=+*PGGLu
+aO&Mlh;I;ij9ai&f[7dQY*X*(nO`s^Rc*]3rnII'~>
+j8T+opj`m)FDuVhVnUU<m.C)NrVlflrsA]'qY'F@fZ'tOm=>4a!iF]HiVs5`r:ojHg;pR`J`qUh
+G&`89cKY*%hu<[5qu@!=E/1aQlJT4*mXPLjI=$!B;?m!u"?D:LkPaTD"oeGombY5;J.6R>J<Qe7
+^<"[Pg>1]HqrA(ChUp5s]WRfaK(4?pKWsD(qYo7LJ,~>
+jSo4Pp]([*;KIM`][l<<qYgE_rs/Q#p?^YWLDTCZ"<2`cgA'P)#QFYqmblB\-0YC6>'usdm/$_=
+rrBP*!!kT/R`b'rq!(]B!!Ea>Fbj)q!!G98[cRGJrr`5pkZ@6R$q,K5^XhE/n+?>Kq>0sc$iBep
+o^D##d_Vqg$1Ruu1qr/HrS7F'~>
+jSo4lpdtofA93Er][l<<qYgE_rs/Q#p?^YWRTJrM"B'WEgA'P)#QFYqmblBh?g1/eApg5pm/$_=
+rrBP*!!kT/R`b'rq!*=p8d%n&Fbj)q!!G98[cRGJrr`5pk_&@s$t+IQ^XhE/n+?>Kq>0sc$iBep
+o^D##d_W#4:[q$[C;oB0rS7F'~>
+jSo5+pj`a%E-$])][l<<qYgE_rs/Q#p?^YWVhOSis*OmFgA'P)#QFYqmblBpMWoWqE.";%m/$_=
+rrBP*!!kT/R`b'rq!+O=J-::;Fbj)q!!G98[cRGJrr`5pkbIWt%!?rf^XhE/n+?>Kq>0sc$iBep
+o^D##d_W)NK(4?oP02t]rS7F'~>
+jo5A)"Si$(!`*lnWQXDqqu5m\"o\5`gq6>M!!F6gVV:h"rrrAsnDM>llMq(oE/M0dqVD/O@/Bp0
+:4TD#q#CBc$g[ir:N_`*_YX<98;=S8r8[eZrqbC[nGie`KsKM+qYgE`rs8W%q=En-bcF/$!!Emu
+hXUO"s*t~>
+jo5A8:&%<d@WR@)bN8Bnrp'LerV5d8^NT*="B'WEgA'G&"o\8di5gH78d.n-MR_aDh>[I_qZ$ms
+J?.K#s8Vailq.CiFcWoHqZ$aiL:67Bj8T5\qVbBC8dAgZZJ>*KrVl?e#labtoBP/UY]'&("B;;U
+nbh5CJ,~>
+jo5ACK(sj%EH?r8bN8Bnrp'LerV5d8_Ns\As*OmFgA'G&"o\8di5qMTJ-CC@MR_aDh>[I_qZ$ms
+J?.K#s8VhIm!o4YFcWoHqZ$aiL:67Bj8T5\qW*D$J-U7OZJ>*KrVl?e#labtoBP/U[#jg."GO5>
+nbh5CJ,~>
+k5PJR,kq?E0QDiId-UW.k5PV`pZg:]#k@ru)gnO:pt>ZLrV5d'lMq))FI()<rn[SS./NuL;i%sG
+r;Zf#li724E/(OJn,!(f@Z%e]rSdbWq.K3t"@e6Zkl'iI#QF\snD_`I&Fof)!cuoZqYoCPJ,~>
+k5PJUAGAb%=`K1rd-UW.k5PV`pZg:t:@_![;LG@qpt>ZLrV5d,lUh=XFI()<rn[SS./NuL;i%sG
+r;Zf:lq.F\E/(OJn,!(f@Z%e]rSdbWq2t2>"Cd5!kl'iI#QF\snD_`^;t<Na99@]kqYoCPJ,~>
+k5PJXP5'P4G&`8:d-UW.k5PV`pZg;0K(=HlHig2!pt>ZLrV5d/l[T.cFI()<rn[SS./NuL;i%sG
+r;ZfKm!o7bE/(OJn,!(f@Z%e]rSdbWq60=="EoX5kl'iI#QF\snD_`mK^jQqV:Fu0rnma+~>
+k5PF"p](L*BRZZ!mJGrD"oeDjiMmgf!!F0eVV:gsrrN&8lMq&+H(`XZh#@?rqZ$k"N5+ZVs8Q?j
+!!Q)BSBL?equ?m=Eg"B.ro*kXrl=O/"@e9\kl'`F"o\8dhQ\Bs!!HlYlM:G;s*t~>
+k5PFLpdt`bCOVu$mJGrD"oeDjiO)k\8d&%>VV:gsrrN&GlUh:XH(`XZh#@?rqZ$k"N5+ZVs8S#D
+8d/[LSBL?equ?m=Eg"B.ro*kXrmgO2"Cd8#kl'`F"o\8dhR[+b8d'molM:G;s*t~>
+k5PFjpj`QtDLS;'mJGrD"oeDjiP(->JH'uuVV:gsrrN&Rl[T+bH(`XZh#@?rqZ$k"N5+ZVs8T7g
+J-Bt=SBL?equ?m=Eg"B.ro*kXro!<s"Eo[7kl'`F"o\8dhS>'>J-;FglM:G;s*t~>
+kPkS3"S_s#20=tpk5+$9"TJ2]^*iOQ":fgUf_F%t!35tt!'9TL";cE\f_=2$!$D(<#<RmZlM^bS%
+.+$!"`9"#i;'/G!!Q&BT[NK3i;WiT(@hG.7Z+hArT=+_rV5[#2XpbM@a"$3ro*m-~>
+kPkS@:&%<a>',n@k5+$9"TJ2]`a\R4"AX?@f_F%t!5e\,!*o"c"AsNAf_=2$!$D(<#<RmZlM^bV
+;XI'\9Q#Tki;'/G!!Q&BT[NK3i;WiT=n5/f@Z%e]rT=+_rV5[&D"1+#K$3ESro*m-~>
+kPkSIK(sj"F``b[k5+$9"TJ2]bDl.E"Fb`pf_F%t!7^st!-I^\"FPQlf_=2$!$D(<#<RmZlM^bY
+L@'KqIrC(Ji;'/G!!Q&BT[NK3i;WiTMXl9#G)EoqrT=+_rV5[)P4=&*R`jskro*m-~>
+kPkNYpAbA&J#Lukrnm_Yrql000(f2I%==l%p=B6DL]%2RB-$LB":TXQf_=2$!)ECk"qZO!jo#.R
+qu?^*nc/k8FHjf4nKe&5"X%c?[Ggu>rrN*rnc/e^MS&*Njo5J_qsi8tnGiZ+b3A`\s*t~>
+kPkO6pIYU&J#Lukrnm_Yrql04BD"k":4&bfp=B6DWr5NjCfU!t"AX<>f_=2$!)ECk"qZO!jo#.m
+r(6rank'*bFHjf4nKe&5"X%c?[Ggu>rrN+Nnk'$oMS&*Njo5J_qsi<VnO`n<b3A`\s*t~>
+kPkO\pOEEdJ#Lukrnm_Yrql06OS+,,IX@jAp=B6D_u5)dDgh/+"Fb]nf_=2$!)ECk"qZO!jo#/+
+r."crnpgpjFHjf4nKe&5"X%c?[Ggu>rrN+snpgjdMS&*Njo5J_qsi@(nUL_1b3A`\s*t~>
+kl1Y/pAb@.EK%Qnr7q;Sr:88hp&G4)HD/m_f)G_`rW!!*Ea8)6"*C6ep>#ZJV"t&p5cE<-r_37j
+!=D?f!!P$%U"&U2r;[$/@XF`ln,;,C!.j\@"@e9\kl'QA"9%lB.e3QB!e8G\qVqO*~>
+kl1Y=pIYTbEK%Qnr7q;Sr:8EPp.>H_HD/m_f)G`7r^m5cEcUYA"*^Hhp>#ZJV"t&p5cE<-rdar>
+!DQtm8d/@DU"&U2r;[$/@XF`ln,;,C!2]6Y"Cd8#kl'QA"9%lFAb&Fr99IHbqVqO*~>
+kl1YGpOEEpEK%Qnr7q;Sr:8L&p4*9pHD/m_f)G`WrdY'!Ee<e2"+$Zkp>#ZJV"t&p5cE<-rhfXE
+!If+\J-C.CU"&U2r;[$/@XF`ln,;,C!5J)T"Eo[7kl'QA"9%lHOR[i'T?QZuir=N~>
+kl1WbpAb@BG+-\GrnIGTrUeS^pAb=*H(`[\f)G_;rW!$:G*F0?!!?8jch#rl!V\&>!!H?;jlQ^E
+!!+i]nc/eTJ?-URr;[$*<d'Y=jS@X3!28r`"@e9\kl'N@"9.u;'Cl,+%[ti7r8[g-~>
+kl1X=pIYThG+-\GrnIGTrUe`LpIYQ`H(`[\f)G_rr^m8iG*H;&8crmuch#rl!V\&>!!H?;jm,V=
+8c`(1nk'$jJ?-URr;[$*<d'Y=jS@X3!5.kp"Cd8#kl'N@"9.uC<q8ic;52M-r8[g-~>
+kl1XapOEElG+-\GrnIGTrUeg&pOEBqH(`[\f)G`ErdY)uG*IjRJ-1.ech#rl!V\&>!!H?;jmRd!
+J,sh8npgjdJ?-URr;[$*<d'Y=jS@X3!714d"Eo[7kl'N@"9.uHM"6'!Ju6ubr8[g-~>
+l2LeM"SVm!3.7[VpY#QKrq4GJp](F&GbER[f)G^mrW!$IHD#o\!!G-A`U3Z\rrW/;#PnE%4hQFF
+!!6GR!qQBo7=\hVr;['0<csA,g@YC#rrBe(!!GcK]BK4PrrW2mU@A3d/?mh"roF*0~>
+l2LeS:%q6_>^`L%pY#QKrq4]?pdtZ_GbER[f)G_Xr^m8nHD$eu8d&I``U3Z\rrW/;#PnE&4hRFY
+rCR-)I7s0("(?^h%K-83$<D;.ZJ+sMh>[K%nk'$oMS&*NiVruYosaH`"CSIeo`!qOJ,~>
+l2LeWK(jcuG($7?pY#QKrq4lupj`KrGbER[f)G`3rdY)qHD%D1J-:7_`U3Z\rrW/;#PnE'4hS.L
+J,Xs!E.7A."*K-'%K-83$<D;.ZJ+sMh>[K3npgjdMS&*NiVruYou?NP"GX/6o`!qOJ,~>
+l2LaMp&G4`K!=20f`)'QoX5)$!!@J;e+M>m!;l]p"?(_.d3%oZ":U*rjnmj5!r/2dq>^O((]==9
+)KC]Vo)Je5%/^)1*G'JTYgr7@h#@B&nc/e^MS&*Ni;WlWo2tM_"(8e&q;hR+~>
+l2Lakp.>HqK!=20f`)'QoYaT$8cs=0e+M>m!;udf"C-DTdU2Q;"AXc_jnmj5!r/2dq>^g0/j)To
+8lBYf>4bDg68&cF!!aNUG`ArXnGM)A!8d9="Cd8#kl'H>!r__EnO`n1]]AnLs*t~>
+l2Lb,p4*9gK!=20f`)'QoZi-bJ-1%fe+M>m!<)kH"Eo6nduEpK"Fc0:jnmj5!r/2dq>^g05A,4h
+IsQ*nL\-)uE]X^-!!aNUG`ArXnGM)A!9j!("Eo[7kl'H>!r__fnUL_%]]AnLs*t~>
+l2L`Sp&G4aL:64AfDbpNo8`SG"*U3^o[j*Cg\h*T7Y7l%Mt$cL?DuQNh#@KTntQrm!!>W4S3H?@
+#REn@I[.=lnGM&@!8d8H"@e9\kl'E=!rUsdnc/e$R*+gojo9i~>
+l2La2p.>HrL:64AfDbpNo;VLW"*U3^o[j*Ck5@mT@=k`@Wpr[`Ei@[bh#@KTntQrq!!`Q>-otUV
+S8\0p"%G3q&c2P6#Y&laQ*o34r7h5OkOM4J@Z%e]rSRVVr8^fI8d%t[b3f,gs*t~>
+l2LaZp4*9hL:64AfDbpNo=XjK"*U3^o[j*CmJVP<FFpaS_!upWJZ.8qh#@KTntQrq!!`TM7V$C[
+S<Wf!"*n9=*r>pC#Y&laQ*o34r7h5Omdbl2G)EoqrSRVVr9/n*J-2=amJQ)GJ,~>
+lMgnZ#ke6$7Z"_?rRUuMr:!nc!!@A4d.Gri!4Vn,"]^>fk3WrT!!Fp@am]5arri5d`Dd$8!!<ED
+3$n%o#n&k6I#=Z6h=:EsrrDc`!!GcK]BK4MrrMtInGi\eY1r[Lk5Tr~>
+lMgn\;"dKa@Yq\[rRUuMr:#I:8cs4)d.Gri!6kC6"_NP"k3lID8d&Fdam]5arri5d`Dd$8!!<ED
+3&^[["!\`u$2FQ-$Tr?TMP@oBnbh,@!;Z1X"Cd8#kl'B<!W&P\8d'(8g\1X/s*t~>
+lMgn^K_Bp!G)<forRUuMr:$TZJ-0q_d.Gri!8II&"`oI/k4+?"J-:=fam]5arri5d`Dd$8!!EKE
+3(#k-4p*o#+V4AK#n&k6I#=Z6h=:EsrrDodJ-:%Q]BK4MrrMu.nULasY1r[Lk5Tr~>
+lMgk-o`,+aM7`!Mec,^JiZe4!")""Ho@O!BQi-mfArOLiqLnD>"9a=cjSR^3"o@Z<WE9kt!"/f?
+3bj)#T!m#.pAN\E!<2Nh"@e9\kl'B<!rhQsnc/e*QGr4hk5Tr~>
+lMgk<oh#?rM7`!Mec,^Jj^@pW")sXQo@O!B[J`]$D2c6pqPEaT"A=KYjSR^3"o@Z<WE9kt!"/f?
+3bj)#T!m#.pAN\E!<2O]"Cd8#kl'B<!rhXfnk'$^QGr4hk5Tr~>
+lMgkGomd0gM7`!Mec,^Jk`5Li"*^-Xo@O!BbPcqpEf@cuqS)KM",OGIqqM,SqX2q6=;9ou$NUl$
+C41u2[a=11rRq2NrpkRBG)EoqrSIPUrpba5J-2+Vm/?)HJ,~>
+lMgjNo`,+[M7VpLeGfUG[KHC,"D4"Enc%2@!-J2?#6T"0`pWih%e9T&9Vg53rnIGWr:ApkZ[t1$
+!"'N/@"b8acJe<irn%2@!!GcK]BK4LrrN%3nGiZ%Y2/m8s*t~>
+lMgjloh#?pM7VpLeGfUG`_?8%"E9^Onc%2@!1a$\#>9*#`pWim<:WWaC8BDQrnIGYr:ApkZ[t@J
+!q$$t"Uu:u6=>J@\Ba('qYo+Hnk'$oMS&*Nh>[NRPOV6IGHTcsk5Tr~>
+lMgk-omd0iM7VpLeGfUGdXh:G"Ep-Unc%2@!4r/[#CgcW`pWipL@KcrUt,/;g]%QWoA[s"Jj^1Q
+mJm\&(F_:0@"b8acJe<irn%2@J-:%Q]BK4LrrN&&nUL^pY2/m8s*t~>
+lMgj+o`,+KLq)UFeGfULp14%#"C786nG_)?!)WXp#820Hc1:l3D=RZ0'U$B"rS%8TrV>p?cU[p6
+"pu+Y&Io9OoDf.4<.1msjRE!Dec,U_o)Jn_MS&*Nh>[NT`:3g11n)VWroa<3~>
+lMgjSoh#?jLq)UFeGfULp5]#B"Dj=EnG_)?!.t2B#>fQ1c1:l3QL[WN;Ner`rS%8_rV>p?cY5-e
+,9%F7&ePT`"o\W;"UGMJ'cS>C-7CZLIBCrYnG3%5rr?-l8d&U\]BK4LrrN,KnO`pkR`k4"kPp&~>
+lMgjqomd0kLq)UFeGfULp8n.A"F$*PnG_)?!3#mI#CLZ]c1:l3ZgrVLJ!._8rS%8^rV>p?c[o1m
+4Y@ln&ePT`r!3lF'H8;N4$Z/&85t#>dcBonrRLoJM=Z6#G)EoqrS@JSrnd0q"Fcf_nG_VNJ,~>
+lMgico`,+1KX0V7e,KLJjV[mq"BUc+mf(l=!&4BP#U"Aae+Nb?h?WTO")+mopt5TKrV>R_r;[$V
+9ji7&N#_Hi"r;$DcLC]0e,KCio)Jn_MS&*Nh#@EP(@hG.&rO9_r9+*1~>
+lMgj?oh#?bKX0V7e,KLJl!"!W"DX+>mf(l=!,VX,#ZQ&@e+Nb?k"kP?"*h$*pt5TVrV>_N5Wh"`
+5tta4Ll=In./tb)/1rV52aV>LcLC]0e,KDUo1B-pMS&*Nh#@EP=n5/f:l;jHr9+*1~>
+lMgjcomd0nKX0V7e,KLJl\bUj"F$$Kmf(l=!1<b9#^U`fe+Nb?l@\YX",*l6pt5TVrV>f*DJ3Ka
+9hf#@Ll>:171MdX8PDr[=^GNQRa1F!rmUlIO7Rl)G)EoqrS7DRqhjrp"Fc6>k5=EBJ,~>
+lMgiLo`,*rFfF-jdf0@ERf!-g9T[-Xrn.5N%/p54/psPLq#CBk?1Isu0:L,Srn%/MT)AWo$!qV7
+Z+n%CoDf"(H)B<jdJj1go)Jn_MS&*Nh#@ES;=OVgG,j<lkPp&~>
+lMgj.oL]44WS@3rrrMu'r(7*'OM^A`f`(qLr^mGuI&>Tls8VtRnk'$kR`t:#fDc8j8Ou<=7::+u
+Z+n%er&+sB3'',a5X@b0H)B<jdJj2So1B-pMS&*Nh#@ESK(2G8I&brrkPp&~>
+lMgjWoRI$nWS@3rrrMu9r."opOM^A`f`(r+rdY9!I&>Tls8VttnpgjmR`t:#fDc9)IXHHbEF<dL
+Z+n&)r*Be=@:WtbD/jZ?H)B<jdJj3-o7-seMS&*Nh#@ESVso3<Wn[=3s*t~>
+lMgiKoDf"dS^@!-e,KLKoeuaK"@eBclM]E9!:0R`#X!X>hYR9PrmL?;"9a7bjSRR/!'pJ_#;pOa
+^>J8AIe3UC"+-iqpX0!@+7fI87Z+hArS.>PM=CQK<h7V/rojB4~>
+lMgj-oL]7"S^@!-e,KLKoks_#"CmG+lM]E9!:g"[#[Mt_hYR9Prn[-;"A=KZjSRR/!-eB6#?c)0
+^>J8ASGGV\77Kd<8P2X&Ut>@grr?Hu8d&U\]BK4JrrB(h8d&t$d.@8#s*t~>
+lMgjVoRI'nS^@!-e,KLKopG]."F,p@lM]E9!;6;@#^1a#hYR9ProEU"",aVLqq(iJT`0HIIro^n
+^>J8AZi"nRF`qtSH@1-jIs\!CpX0!@O7Rl)G)EoqrS.>P_sr6[I%AXUrojB4~>
+lMgiKoDf".OML/[df0@G]DV^43JtH4rRq2Na8Gu@8qaS3r;Q]sqb$DZ"@o9;o`!PD!8m_T#QeFb
+WnI+FrNPkn")jd[p!Nd>+7fI87Z+hArS.>PXmlAo6'B7UrojB4~>
+lMgj-oL]6aOML/[df0@GbPb$9?AcAYrRq2NfDS;E@YD,Kr;Q]sqgS*."DFU\o`!PD!9j>Q#AJ^g
+g%PFD`q)e)Fe7(TdJj2So1B-pMS&*Ng]%8lnO`pnP/cqhkl6/~>
+lMgjVoRI'oOML/[df0@GfDU4&H&B5trRq2Nj8FK2FG.$]r;Q]sqkEY3"G*Auo`!PD!:Ti9#B,-m
+g%PFDf(smmJ-1(ge+M,g!0?`%"Eo[7kl'99!7gUi"FH<Omf)GMJ,~>
+lMgiKo)JknXk`^!rrMmdrW!'TL:?=Cg&D&Mr;Zt&M7VmKrr3#u^@D7,'9U,rr7V)MGPqLI,BAjZ
+kktJ\iq!-P?CB+0dJj1go)Jn_MS&*Ng]%8nnGi\GMS/0Okl6/~>
+lMgj-o1B+)Xk`^!rrMnBr^m;sL:?=Cg&D&frCR3+M7VmKrr3#ucLOR1;3A][r7V)MTD_@f<H=/7
+kktJ\lLRUMDOJf@dJj2So1B-pMS&*Ng]%9)nO`pgMS/0Okl6/~>
+lMgjVo7-prXk`^!rrMngrdY,tL:?=Cg&D'$rI>#lM7VmKrr3#ug@BasJ!%S4r7V)M]D[6cH#et[
+kktJ\nFM/4H'utKdJj3-o7-seMS&*Ng]%95nULahMS/0Okl6/~>
+lMgiKo)Jn%N5k5^df0@H`Voi?-A8\br7V)MKDbcQBTBpqrr)itqD[sF"(A:dptG`Kq],P7#u>oA
+de!J<s8EQ$!!H,^aRB,Vrr=/4!!GcK]BK4JrrCpG!!F^([,h/Ks*t~>
+lMgj-o1B-]P/ckddf0@He,DrB=+mm>r7V)MVu93jDN;R"rr)itqJc!t"*L^#ptG`Kr*K=o$"J=U
+de!J<s8H!i8d&gkaRB,Vrr?Hu8d&U\]BK4JrrD6P8d&7M[,h/Ks*t~>
+lMgjVnpgh.`pEWOrrN)SrdY,tKX0Y9g&D&grI>#kNkt)]rVlopRdtt2KWNu(gA_3PNr=J7EdOM.
+oD\direL,r"F--On,Cc8!0?`%"Eo[7kl'99!:KB-"F>d/jS\6AJ,~>
+lMgi_nc/e@W7^bAdf0UK8cSi2JZdo,g&D%[rW!**F-F]6rr)itrMT2d"=]b]n,D)A!42V("VPd1
+[c@5`rrN*WoDf"[Nl(/^df0:ho)Jn_MS&*Ng]%91nGi\3JZdr-kl6/~>
+lMgj;nk'$jWn?tCdf0UKHqI"1JZdo,g&D&4r^m>fF-F]6rr)itrP%hp"Bq59n,D)A!6P13"]0/o
+[c@5`rrN+<oL]6qNl(/^df0;To1B-pMS&*Ng]%9;nO`p_JZdr-kl6/~>
+lMgj`npgjrWn?tCdf0UKU4@cAJZdo,g&D&VrdY0%F-F]6rr)itrQk%b"Fli^n,D)A!87=$"ak9F
+[c@5`rrN+foRI'iNl(/^df0<.o7-seMS&*Ng]%9AnULaiJZdr-kl6/~>
+lMgj&nGi\U\`!5]e,K^Q\c;^@J>q;ug&D%7rW!'6G+$YHqu6]l,kD!=!dqH:qV2#M;#L@t5^/[?
+nGW=c!+tj'">G_Fkl&s0!$Ce4"@e9\kl'99!8d5G"<2ijh"g16J,~>
+lMgjOnO`q!\`!5]e,K^QbXtK(J>q;ug&D%or^m;iG+$YHqu6]lA+N:q98'b6qV2#MK)J:F??_j]
+nGW=c!0ZtH"C$bqkl&s0!+>Cj"Cd8#kl'99!9irF"B'`Lh"g16J,~>
+lMgjnnULb"\`!5]e,K^QfRSL%J>q;ug&D&DrdY-!G+$YHqu6]lORdo(M72I@g]%8PrI>&nGFH_E
+rVc`rZLiYMHA]>urR1]GO7Rl)G)EoqrS.>PmdYf1I"/0Oq<7j/~>
+lMgjIn,NSP^?#%fe,K[L0E;0+Ut>=nrr=&<!!FEiT@EQ2rrN(_nc/e\U=/]5h>[N="TAB)#&/^m
+h>$pJ!06[O"<iH*jS[I+!$Ce4"@e9\kl'99!7pZ?"<2cfg\C"4J,~>
+lMgjhn4Egu^Z>.ge,K[LCJ%6OUt>=nrr?@(8d&+=T@EQ2rrN)&nk'$tU=/]5h>[ND:&[`g9Pf?a
+h>$pJ!3Yrd"BC,^jS[I+!+>Cj"Cd8#kl'99!93N@"B'ZHg\C"4J,~>
+lMgk*n:1Y$^uY7he,K[LQ@OL;Ut>=nrrA)YJ-:1DT@EQ2rrN)<nUL_9de*OprrM_CrdY0%DhG4K
+q#(-l`q4caH\Acer6kTFO7Rl)G)EoqrS.>Plg]K.I!qsJpuqa.~>
+lMgk+mf3JB]&NG_eGfdP`.DZ`WS$purrDfl!!Fj#VV1b@rrMU)o)Jn&NkaiVh>[J1r;[!SFHaZ/
+rVZZq^%;:-&V-t>qU5BD+7fI87Z+hArS.>P^@;1+)h"U;puqa.~>
+lMgk:mn*^m^#JbbeGfdPd[l,RWS$purrDln8d&7DVV1b@rrM[no1B-]O2'rWh>[JTrCR5qFHaZ/
+rVZZqch'g4:k5Y(qU5BD@.Qtn@Z%e]rS.>PdIBg3;LPFrpuqa.~>
+lMgkEmskP!^uG(eeGfdPgp<B1WS$purrDrpJ-:+EVV1b@rrMbLo7-snOMC&Xh>[JmrI>&qFHaZ/
+rVZZqh=Q4#I=SEUqU5BDO7Rl)G)EoqrS.>PhXQ+!I!qmGpuqa.~>
+lMgn\$h"&u)kc'Zr7(`Nq;fK$_;b7DrrCOH!!G?5XPWgMrrN(Gnc/btX4m=(rr=2?!!QYWVUkG>
+r;Qc]oDf!qI&5Kidf0:ho)Jn_MS&*Ng]%8KnGi\@IAkoqkl6/~>
+lMgn];X[3\>-6ZQr7(`Nq;fK$_;b7DrrD!U8d&FMXPWgMrrN(knk'"*X4m=(rr?I*8d/mWVUkG>
+r;Qcco1B+4V:bOjrr?Hu8d&U\]BK4JrrBb&8d&4DW8%+2s*t~>
+lMgn^L$sNpLUQ(2r7(`Nq;fK$_;b7DrrD<^J-:%GXPWgMrrN)0npggpX4m=(rrA/ZJ-Bn@VUkG>
+r;Qcgo7-pjV:bOjrrA,OJ-:%Q]BK4JrrCI:J-:.GW8%+2s*t~>
+lMgna=mc7n#^=qhqYo(G#6"5XhW+2)gA_/Zr;ZsiKX0Y8qYpWrk6LSY"=9DUmeu&C!4Vn,"X7rG
+]]]1hrrN*4oDeu,T$m8Zrr=/4!!GcK]BK4Jrr@Q=!!G30XPN^9s*t~>
+lMgnaM!dk=:6X>uqYo(G#6"5XhW+2)gA_/prCR3$KX0Y8qYpWrlqd4F"Bh)4meu&C!6kC6"]TK$
+]]]1hrrN+#oL]4+T$m8Zrr?Hu8d&U\]BK4JrrAkb8d&CKXPN^9s*t~>
+lMgnaX6tKAJu@8hqYo(G#6"5XhW+2)gA_0+rI>#nKX0Y8qYpWrmt:4^"FlcZmeu&C!8II&"aY0J
+]]]1hrrN+UoRI$iT$m8ZrrA,OJ-:%Q]BK4JrrBh(J-:(GXPN^9s*t~>
+l2Ladli7/P_!(Okf)GpPqY9marn@APO8T%]<J\3Kr;$?nr+5I""9NhTiVMI3!)3=k"]0Q=dIR;5
+rr>7T!!H;gbOPS\rr=/4!!GcK]BK4Jrr>mc!!GrIZJtcFs*t~>
+l2Lb%lq.D"`p!0qf)GpPqY9marn@APYl./sAr+"\r;$?nr/gJA"+di<qVV;QJGi(D@salro)ALc
+!-\!,"DX:Hnc%#;!+>Cj"Cd8#kl'99!.s`5"Cd"hiqqs>J,~>
+l2Lb6m!o5'b38Tuf)GpPqY9marn@APa8LMkF,7Bir;$?nr35aB",O>CqVV;QVYu#KEdOJ,o)ALc
+!1rh5"F6?Wnc%#;!0?`%"Eo[7kl'99!3#F<"ET4$iqqs>J,~>
+l2LeY+m]14%Y!:(qYmPq!-%l:"CdA+lM^PY!rgXNo)JnUT[EB1iVrr="TAB)&o`Z8iqiKN!,D-+
+"@J<imJbT7!$Ce4"@e9\kl'99!#Y5+"D!A#kPaWEJ,~>
+l2LeZ@I-Si;OZJ3qYmPq!1EdX"Dj(5lM^PY!rh%Mo1B-rT[EB1iVrrE:&[`g:iM6!iqiKN!0m+J
+"CmS4mJbT7!+>Cj"Cd8#kl'99!*etc"Diq+kPaWEJ,~>
+l2Le[O6hB#KWa2$qYmPq!4_uX"EKL;lM^PY!rh;5npgh8dI[@rrrMYArdY0"E/:s^qYC-k[.JkO
+HBH/5rmUlIO7Rl)G)EoqrS.>PN:DE$E/D0hrTO93~>
+l2Le`R-FYS0!+4.r2fnu9`4qoEg"H1rqQKoqb-M\":L1%kksE>!.4YE"[[F%b4#<)rrA>V!!G!5
+]]f=Crr=/4!!GcK]BK4KrrCC8!!O'WP/Zhfkl6/~>
+l2Le`Zg(-cB"I-tr2fnuJGi(CEg"H1rqQKoqgS-/"AXrikksE>!2BEa"^cJBb4#<)rrBCt8d&@U
+]]f=Crr?Hu8d&U\]BK4KrrCmF8d/%3P/Zhfkl6/~>
+l2Le`aQe9YOMp;Sr2fnuVYu#JEg"H1rqQKoqkNb5"FlHFkksE>!58>]"a"sWb4#<)rrC15J-:4V
+]]f=CrrA,OJ-:%Q]BK4KrrD6PJ-C=@P/Zhfkl6/~>
+kl1\U.-U^79YB]crN?/#/H,VQ%<Rr\nc&=`!WK_%!!??&g%OG*!W*`5!!NXDKWj5,q#:?5oDf"9
+Ks]q=e,KCio)Jn_MS&*Nh#@A$nGi_PGb3=TrojB4~>
+kl1\VAa)eiHcGCGrN?/#B`:U-:3;iHnc&=`!WL=68cs%3g%OG*!W61$8d.q+KWj5,q#:?EoL]6c
+Ks]q=e,KDUo1B-pMS&*Nh#@AKnO`shGb3=TrojB4~>
+kl1\WP3IK"SBgHprN?/#QMuC<IWUq#nc&=`!WLdCJ-1D&g%OG*!W@uVJ-CC?KWj5,q#:?QoRI'l
+Ks]q=e,KE/o7-seMS&*Nh#@AfnULddGb3=TrojB4~>
+kl1__]*%9t"TqN7m.^I_rr<?(!!F0aS^I*'rrMsQo)Jn8QH/Ckj8T+Wr;[!XFHjc2rV6BmmdpJ^%
+Y1Y;q:#?D+7fI87Z+hArS@JSq],/,"Ti+aXkrm:s*t~>
+kl1__b=q.m"\a?dm.^I_rr>mp8d&%:S^I*'rrMt6o1B-dQH/Ckj8T+prCR5sFHjc2rV6Bmo(5NW
+:4TG&q:#?D@.Qtn@Z%e]rS@JSr*Jnc"DWOjhYH@7J,~>
+kl1__f7E1:"bE;nm.^I_rr@`OJ-:4DS^I*'rrMt`o7-snQH/Ckj8T,.rI>&pFHjc2rV6Bmp@Nk<
+IXnNVq:#?DO7Rl)G)EoqrS@JSrJpDu"E/mohYH@7J,~>
+kPkSXIcg\8"&HSrp\b#trrD*X!!FToUXo/4rrN(nnc/c4ZJbQ=rr>1\!!WL7J>q2prqQKorYP2,
+"*gWopXB-B+7fI87Z+hArS@JRTCDmb-?>3`lMTiFJ,~>
+kPkSXTBAfN9RXtJp\b#trrDB`8d&1@UXo/4rrN)2nk'"5ZJbQ=rr@0>8d/s[WS$qDq#:Bo>4bDh
+HDK3fe,KDUo1B-pMS&*Nh>[JenO`scEfe*%r9+*1~>
+kPkSX\EAAHJY1<Up\b#trrDTfJ-:.DUXo/4rrN)CnpggsZJbQ=rrAYhJ-BnBWS$qDq#:BoMtDN%
+I&,Ehe,KE/o7-seMS&*Nh>[K$nULdfEfe*%r9+*1~>
+kPkV^nP\HK"[]6TpAFourrBt8!!G$*WS@4@rrMd5o)JnST$R!,jo5>,r;[!KEf[rur:^-j9(W)c
+@[tj<e,KCio)Jn_MS&*NhZ!WR,k:p>!aC&Ie+EY&s*t~>
+kPkV^nU]do"a.KDpAFourrCRI8d&=HWS@4@rrMh"o1B-pT$R!,jo5>:rCR5oEf[rur:^-jIe657
+E1G>Je,KDUo1B-pMS&*NhZ!WSA+<.pB7-K'o`"%RJ,~>
+kPkV^nY>2r"e*NupAFourrD$VJ-:+GWS@4@rrMkRnpgh6cgq(srrD6\J-C4=O1siUpAY,goRI$i
+SC-uXrrA,OJ-:%Q]BK4MrrN(]nULd]I&#0_roa<3~>
+k5PM[k=4M4"YQ&$o_\WtrrA\i!!GK:Y2K0LrrN(So)JmuLqMmIjo5<jr;["&I%o*^rq??lEqB>7
+:6irjrm^rJ+7fI87Z+hArSIPSL[b?J.rpT[jnn3?J,~>
+k5PM[k]l/\"_b%#o_\WtrrBY/8d&IOY2K0LrrN(so1B-[MnJ3Ljo5=CrCR6*I%o*^rq??lRe02T
+B9gU.rm^rJ@.Qtn@Z%e]rSIPSWpr[b=)s82jnn3?J,~>
+k5PM[l($gb"d6X`o_\WtrrCCDJ-:%HY2K0LrrN)6npgh$]]T+QrrB>&J-Bq?U=8c6pAY-&oRI'j
+Q-&OpeGfN0o7-seMS&*NhZ!SnnULdeEf@Tkqr[p/~>
+k5PP_q;O6k!!O-]eFE>4])MbXr;ZsmKs]q=o`"sU%eBZ&;Q&1@k5PJN#lXf-)KCYEjSSWM!1i`^
+"?MRZli,E6!$Ce4"@e9\kl'E=!RD&B!!WjDI\bE`roX62~>
+k5PP_q;Z;O8d/=ag%"k9])Mc)rCR3%Ks]q=o`"sY<:`]aDPu.\k5PJS;#X&j;K7T(jSSWM!4h_o
+"CI2*li,E6!+>Cj"Cd8#kl'E=!SpTC8d8%+I\bE`roX62~>
+k5PP_q;de#J-Cb7hXUC>])McErI>#mKs]q=o`"s]L@]otJu@8pk5PJVK`6K*HuY%RjSSWM!7(4e
+"F?*Eli,E6!0?`%"Eo[7kl'E=!U#.,J-LI?I\bE`roX62~>
+jo5G^pYS?t!!WX*Z0h8_rk8=3=T&4&=,OWRrUg*jr+Ya&"<*NDm/?,I!/pdU"\F!1cLCi+rrC15
+!!FU(\E<_=rr=/4!!GcK]BK4OrrM:.nc/jq:Nhr;kPF<?J,~>
+jo5G^pY^2R8d8%@_X7'prk8=3M#BpKBSsFcrUg*jr0-_E"B:W)m/?,I!3Q2l"^u\IcLCi+rrC^D
+8d&4O\E<_=rr?Hu8d&U\]BK4OrrMOtnO`soG*B`)qW7a-~>
+jo5G^pYhS#J-LV"c0b6&rk8=3XSmYPFGd]orUg*jr3GpE"FlZTm/?,I!6+ne"`ns[cLCi+rrD*O
+J-:7U\E<_=rrA,OJ-:%Q]BK4OrrM_SnULd_G*B`)qW7a-~>
+jSo>]p>/^*!!OX"g@G+=^]+9nr;Zt2Nkju[o`#!ldf]1A")b@#puq_Yq],S8"Uo7&ZJbNMrrDW^
+!!F!fYi,B-rr=/4!!GcK]BK4PrrM^JnGibPEepsSp&=(QJ,~>
+jSo>]p>:>W8d/[thX^OA^]+:RrCR3/Nkju[o`#!lhG!N5"+7?1puq_Yr*K@p"\rriZJbNMrrD`a
+8d&"CYi,B-rr?Hu8d&U\]BK4PrrMh3nOa!iEepsSp&=(QJ,~>
+jSo>]p>DP#J-CtCipusE^]+;(rI>#lNkju[o`#!ljb!)S",=&;puq_YrJpl-"b(BEZJbNMrrDid
+J-::PYi,B-rrA,OJ-:%Q]BK4PrrMqanULgdEepsSp&=(QJ,~>
+j8T8]p>U&nhuErc:Tj*Yr;OS5!#5A3"EK[Fmf)hX!W,O]!!G-KcLLnurrB+u!!PE,QH/Cko`"sk
+-M7?A"+@-%psf<D+7fI87Z+hArSmhXj!aEt"tFPCV9n]/jSs`~>
+j8T8]p>V6/i(=2KJ&(IFr;OS5!*K1l"EK[Fmf)hX!W.?;8d&LkcLLnurrC"98d/LDQH/Cko`"sk
+AG&Ot97<bmpsf<D@.Qtn@Z%e]rSmhXlXoZZ#$5_pV9n]/jSs`~>
+j8T8]p>W'&i.)#`U!;uur;OS5!/g`*"EK[Fmf)hX!W/Y_J-2=enc%eQ!7h$us)nL1a6iitrrN+^
+oRI$lW7q$rrrA,OJ-:%Q]BK4QrrMYSnULggDh=h4n,28HJ,~>
+ir9/\pZ.SOh>d^)K])IurPed:oDJXm%<Rr\o)A7\!WK_&!!EL[]&ihRrr>1\!!NI<JZIN!o)A\b
+oDeu+T@<J_rr=/4!!GcK]BK4RrrK_KnGib<D18(tlMBQ@J,~>
+ir9/\pZ/;QhF[r\U>tkArPed:pAISe:3;iHo)A7\!WL=78d%hD]&ihRrr@0?8d.k(JZIN!o)A]@
+oL]4+T@<J_rr?Hu8d&U\]BK4RrrLGMnOa!cDLS1ulMBQ@J,~>
+ir9/\pZ/f;hLGci\E*8XrPed:q>GgIIWUq#o)A7\!WLdCJ-1_@jnn<B!1s.>"E8pmg@t1<!2fC=
+"+-Zhp!j!AO7Rl)G)EoqrT!nYh2LlS#'k-9T#g3nj8XW~>
+iVs&[puoFNh#ITiD9q_HrQ"p<ci!hH)0h_#o^Vq^qCM4<"AP`Dp&=:W!6b<@"Y=_W_!:jgrr@67
+!!H2dbOPS^rr=/4!!GE?\`WhOrrM_0n,N\IDgn4ok5##:s*t~>
+iVs&[puoY3h+@iMP1K-trQ"p<h>KqK;L"b\o^Vq^qIoIm"Dajbp&=:W!8@BD"^#i._!:jgrrAY_
+8d&jpbOPS^rr?Hu8d&IV\`WhOrrMh]n4EpgDgn4ok5##:s*t~>
+iVs&[puoe]h1,Z`Y1rI@rQ"p<kP]o6H[)+0o^Vq^qNUT%"G*E#p&=:W!9O00"aG*N_!:jgrrBY&
+J-:1bbOPS^rrA,OJ-:+Q\`WhOrrMr)n:1aeDgn4ok5##:s*t~>
+i;Wu[qWuaU$Jb[c#%#OAq#/>7!3c>$"=&5ef(SY6!WAP[!!F%"_s@9err?=&!!QPSUt,,:o)A]d
+oDf"ZOMgGaec,Uknc/h9HIhZarosFaqk"ku!!i`qEe9n#jS/Z5s*t~>
+i;Wu[qWuaq:u+_I:5I?dq#/>7!64t0"BBcBf(SY6!WBIu8d&%T_s@9err@uU8d/mVUt,,:o)A^(
+oL]6qOMgGaec,VWnk''gOk91$rosFar4?;*8dJ*tEe9n#jS/Z5s*t~>
+i;Wu[qWub0K&(q\Ju72gq#/>7!8%1""F5<ff(SY6!WC14J-:@b_s@9errB5#J-Bq@Ut,,:o)A^;
+oRI'jOMgGaec,W1npgmqU=f&6rosFarQgMoJ-^XGEe9n#jS/Z5s*t~>
+hZ!`Uo%pZ;g].K^?-_m5rQG3@Mu<VY0RftTq!e:anJ:]r")+moq!A"]k61ba"W_T@]&rn[rrCI=
+!!Fg/]''%Brr=/1!!X3S]^Y^orpKdflAHnV!!jBGG)3!9k4el6s*t~>
+hZ!`Uo%poqge%`FLXbberQG3@Xo1ip=am=(q!e:ao3(ZW"*h$*q!A"]mS3[Q"]KE!]&rn[rrCpJ
+8d&:R]''%Brr?Hr8d8C[b4,3(rpKdfn>p-h8dJ:-G)3!9k4el6s*t~>
+hZ!`Uo%q*DgjfQ[V:b52rQG3@`Vk;iG^cUGq!e:aonr?k",*l6q!A"]o7Hsl"ab6I]&rn[rrD6S
+J-:4U]''%BrrA,LJ-Lh3eF<82rpKdfoYls^J-^L@G)3!9k4el6s*t~>
+h>[ZWpZTt`,hrA'$uO\eq>SY=!,2<2"?M+:htljB!W@H<!!FsDbjbW!rr@EE!!Q#@T$R!,nc&Xd
+"SD`t(50!Qqpk]H+70%7)dScMnbN(\rr2]m"THu<9*F_a#ms"=IZq"_lM:G;s*t~>
+h>[ZWpZTtq?JJ-V;N]c(q>SY=!0mFS"C6S]htljB!WA_`8d&IhbjbW!rrAel8d/[LT$R!,nc&Xe
+9_D!\;M;@8qpk]H@-pPm>`#`8o(i1]rr2]m"TIDfIn]?(#u+cHIZq"_lM:G;s*t~>
+h>[ZWpZTu)LtmLaKWEquq>SY=!4;]T"Eo@!htljB!WBY%J-:@jbjbW!rrBb2J-C">T$R!,nc&Xf
+K(XWsI>"ocqpk]HO6qH(MlF\OoD/:^rr2]m"TI]/V1S2e$%?u9IZq"_lM:G;s*t~>
+h#@TXqXE@]F;EX3"W<3Xo)&F4rr>Rf!!GcE[,_)QrrM$_oDf!sK"0n=mf*=^'`J(9%W7$-i;)mB
+!WFSA!!EISWS@3urr=/*!!`TO7UCD#R[X2E"+FiG&+0E)&j^D^N2+/Bn,!%@s*t~>
+h#@TXqXE@]N`Oq-"^7_^o)&F4rr@HF8d&RU[,_)QrrM:YoL]6ZL:H=Amf*=`=T1nr:2blni;)mB
+!WHa)8d%h:WS@3urr?Hk8dA%!HAeDs[^Q.D"/:s%<UNHd:g\3hN2+/Bn,!%@s*t~>
+h#@TXqXE@]TS2*N"c9\Jo)&F4rrAknJ-:"J[,_)QrrMJ=o7-q#\E*PTrrN"SrdY0$E/(^Wq=+Cb
+rfm)+"Fkm"g\B>!!0?Ap#_J/2XLc<lb00e."2;(4L[K["I!'IVN2+/Bn,!%@s*t~>
+gA_BUpZpGDA.IAp"?!RMpANA<!$qLC"B1,fkPalL!W6-m!!Gffeb&k0rrADa!!PH-QcSUnn,EAc
+oDeu/T[`Ybrr=.]!!t5jG_r*'dHC3#h>`!~>
+gA_BUpZpGEK2UJs"Dkm;pANA<!+Yt""D3J$kPalL!W7cF8d&h'eb&k0rrBJ*8d/LDQcSUnn,EB@
+oL]4-T[`Ybrr?HI8dSU9G_r*'dHC3#h>`!~>
+gA_BUpZpGFRY'=F"I$pjpANA<!0[;2"E]I2kPalL!W8thJ-:G!eb&k0rrC7@JH'cpQcSUnn,EBd
+oRI$jT[`YbrrA,#J-gF<G_r*'dHC3#h>`!~>
+g&D<Vr:K4%ZsO=!!!NREf^AS7df0:Mr;Zt/NPFcWn,EFfa7B96'9U/sr9sXc./j2M")!1dg\:.9
+!.shC"B:c4o)@5?!$Ce4!\Go/f)Q$Y.ri5UmeZq<s*t~>
+g&D<Vr:K4%[t%?38d.qNg$\\8df0;@rCR3.NPFcWn,EFfealB9;3A`\r9sXcB)YC+95K0\g\:.9
+!2fB\"DX=Jo)@5?!+>Cjs&]7qf1H9@?&-/JmeZq<s*t~>
+g&D<Vr:K4%\<qm(J-CP'g@"e9df0<!rI>#lNPFcWn,EFfht)@$J!%V5r9sXcPl6+8Dh5"Ep[8%]
+_"<-[HC2qIrmq)LO7Rl'GBn\hJ-LRk^=r#OrnRO(~>
+fDc*Tqt&mqZ=k!/!!FdZk4SZ%rrCgO!!I,#`9mQlrrN!Vo)Jl'Xk`^@rrBD(!!OopP/6G]mf*9h
+oDf"ZOi6Ydf)G^lo)Jt_FFe0r+9^j-":,u"5ofV!"W2O:o(i7?s*t~>
+fDc*Tqt&mq[=hQ98d&\=k4SZ%rrD3Z8d'*q`9mQlrrN"9o1B+.Xk`^@rrC1>8d/=<P/6G]mf*:*
+oL]6qOi6Ydf)G_Xo1B3pFFnpW=A7mM"AMfu@TE.p"^.;Lo(i7?s*t~>
+fDc*Tqt&mq[[;^'J-:nOk4SZ%rrDHaJ-9qU`9mQlrrN"co7-prXk`^@rrCaNJ-C1=P/6G]mf*:;
+oRI'jOi6Ydf)G`2o76j_"+uJeK'%RdIXHHeIeS?rLp>k.q>K.LJ,~>
+ec,mRqXNUl\8s"R!!E[eh!k3krrB\0!!NOIQ-/Uqmf*=eV"4Qh.@JBJrpg!g7/[)h>(*3sp&=CZ
+!7g]A"=oAAkl'*4!$Ce4%7Pf?[^N-%G$@?g+VbIZ!"98O,rS>#EdiXsO-3'-!!NdIf^S_8huA3~>
+ec,mRqXNUl\;FVL8d%t`h!k3krrC@C8d.n0Q-/Uqmf*=e]^n_u>+*S&rpg!gHMpG>B76T+p&=CZ
+!9*QB"BgVokl'*4!+>Cj%:Od[[^N-'KQV!8=&Mie8dnHm='fHTGCG1#O-=PV8d/+Tg[P%;huA3~>
+ec,mRqXNUl\=860J-:M/h!k3krrCmRJ-CFDQ-/Uqmf*=ecLZPhJ!nLKrpg!gUA]TGEIFY5p&=CZ
+!9s-+"FH$<kl'*4!0?`%$?grm[^N-'Nei@=rdXTk%"<VPH[0m_IY3H;P`>Be"bj&7nG3%?s*t~>
+e,K^QqXNXp]SSiUhZ*dcdd-`.fDbi;r;Zs2G+-bKm/I+Z)Y="4!dqH:qXXXdci!hI)0(SGjnnHF
+!WEAt!!F'jZJtc4rr=/4!"qbW[+OEmcGI#jU7.@/N.uLtF8U%iGCbC#LlIRcTW#**_T9cO#ke6%
+'7o05qYoIRJ,~>
+e,K^QqXNXp]U*D-hb"$(dd-`.fDbiYrCR2fG+-bKm/I+[>P(Mj98'b6qXXXdh>KqL;K7W+jnnHF
+!WGmf8d&%FZJtc4rr?Hu8ePTh[+OEmcGI#jU7.@/N/2t4I/J:%I=[$)LlIRcTW#**_T9ce:A.9`
+<hA=@qYoIRJ,~>
+e,K[PqXNXp]V18?J-;IllhUP3rrC7@J-::DRa:TlrrMkQo7-q"[c@5TrrD6\J-C:>Mn8$ImJd4d
+K_9iuI>"ocqptcIO7Rl7G)3NXj4_eq[]?-kQ&pr\L4k3WK)^B3K8#,@P*quAYdqWla/agcJ-C_7
+iplmEiW"E~>
+dJjLOqXWe!^nP'OhuEmGa6*0rf`(qrr;Zs=Gb<LYm/I+bJb&jE7&&-%rq$-i>l=X+8U6lPo)A%V
+!WF_E!!EISWS@4!rr=/4!"qbY]'&n`o'>Amf$DIU^:LbYYPPC4Z*h0Y`m*#fiTBLrmc()Uo`,+G
+ZKCiXir=N~>
+dJjLOqXWe!^nuHZi(=,kaQE9sf`(rDrCR2jGb<LYm/I+bV"71]B;3iHrq$-iMu?6O@<nEho)A%V
+!WHj,8d%h:WS@4!rr?Hu8ePTj]'&n`o'>Amf$DIU^:LbYYPPC4Z*h0Y`m*#fiTBLrmc(QPoh#?u
+^?5+dir=N~>
+dJjLOqXWe!^oEQMi.(roal`Btf`(rarI>#tGb<LYm/I+b^%-[UU=/]5oD\fnrI>&mH(E7OrpB^d
+rg*5-"Fkm"g\BA"!0?`%&pB/DkP=lClf?mQccO)=]!eoJqQ:@6[CX/nc.(M,k3VU*ikC0?J-:tR
+k4SZ3s*t~>
+ci4=Nqt97.aKp@Q"QBCa3PjeMrn7;O;uH\!-@DWApZqh[j9P;W":pO.l2:2R!TO=^!!NdJL9fb5
+li-rkoDeu,T[`Ycrr=/4!"qbY]BK4nrr2ikp@Ie?lK@9hi;;C=i8Wh\lL+69q"jpfrWDu]ZQAc>
+"U8r"meZqDs*t~>
+ci4=Nqt97.aKpt>9]AYIC;T'*rn7;OL&FUH<d^^qpZqh[l;.%E"Ak/pl2:2R!UEJZ8d.t-L9fb5
+li-sDoL]4,T[`Ycrr?Hu8ePTj]BK4nrr2ikp@Ie?lK@9hi;;C=i8Wh\lL+69q"jpfrWDu]^0L>'
+"\k-5meZqDs*t~>
+ci4:Mqt97.aKqCmiID&l_rUOjg&D&PrI>#rI&,Ehli."RKCjZsIuqJ1r:L!inUgaj"b(BEZJbQE
+rrB4oJ-11leFhDm!0?`%&pB/Ekl(P\rquTcoC2,3kN1a^qqhb=ioK:fmdg&GqY^?l"8V6&MY2K'
+JuIDkqYoRUJ,~>
+c2S+Lr:fX<d(PlG%c[Nl2nn;Frn@AP2#RCW0n-+Wq<S%]r*Jsp"'qt]p[nIcF8Z(B3Hg_/mJZAN
+!/gCK"B(W2nc%/?!$Ce4"@e9\kl(AXs8N&ss8;]h"oJ5rrVlflrr`/d_]SLN"?sffp\s:SJ,~>
+c2S+Lr:fX<d(Q/s;<(7OBu&a%rn@APDZ*01>(3I+q<S%]r/:/="*:Nsp[nIcSGc%`>]uFRmJZAN
+!3>`a"DO7Inc%/?!+>Cj"Cd8#kl(AXs8N&ss8;]h"oJ5rrVlflrr`/db$FX3"E;HFp\s:SJ,~>
+c2S+Lr:fX<d(Q<<K&_@aNPOQIrn@APRf.a>G^cXIq<S%]r2fL?",!Z.p[nIc\c%$^F`s(kmJZAN
+!6"M["F?HZnc%/?!0?`%"Eo[7kl(AXs8N&ss8;]h"oJ5rrVlflrr`/dc\qFG"I.*mp\s:SJ,~>
+b5VbGqXWk&`iNbjj8]<@^>ekcg]%6br;Zs]JZdr-li."b`:Es3-()dArV$6lmh#Hu"Tr7bX4m=5
+rrB=r!!GKI_sIBSrr=/4!!GcK]BK4Lrr`2h\eF]9"<t22o_mqPJ,~>
+b5VbGqXWk&`ianpj@TPh^Z+tdg]%7RrCR2uJZdr-li."bddp'6=d[:urV$6loMtl_"\WT\X4m=5
+rrC+38d&Ra_sIBSrr?Hu8d&U\]BK4Lrr`2h`E)V'"CA[uo_mqPJ,~>
+b5VbGqXWk&`itb^jF@Am^uG(eg]%80rI>#oJZdr-li."bhXc7#J!e=FrV$6lpPAcu"E/gkg@sn4
+!8$jn"F?0Im/GW:!0?`%"Eo[7kl'?;"8q]7L\-*"MSJ-BrT=-1~>
+aSuPFr:]L7c+%g=jT#EP_;tCjh>[K@qu?jgKXBh<lMgn^2"UbN!d_65qY'phO8T%^-?>3`l29iH
+!8d>J"=8o9kPa$4!$Ce4"@e9\kl'<:"8q_s$1n3#'qsFRr9+*1~>
+aSuPFr:]L7c+&X9j[oYp_;tCjh>[KFr(7*#KXBh<lMgn^DY$I&K!aP6pAY,srCR5oEfe*$r9F:^
+kO_@L=,FNOrR_&L@.Qtn@Z%e]rS7DTr:7^$oL]6eXk`LFkPp&~>
+aSuPFr:]L7c+'6tja[Jq_;tCjh>[KJr."omKXBh<lMgn^R.Gh1LpZ1<pAY-5rI>&rEfe*$r9F:^
+mdu#4I#5GtrR_&LO7Rl)G)EoqrS7DTr:8'aoRI'u[G:?NkPp&~>
+`W$2Aq!d=l]RM<k!!?`Lk5!j5!6b9?"B1,ekPXWF!WJY]!!GEWdI[A4rrN!6r;["$I&#3`rp'La
+rX8B!";?BkiVM1+!$Ce4"@e9\kl'99"8q_Z"7uQr&#@nLr9402~>
+`W$2Aq!d=l]TQXa8csU^k5!j5!8@?C"D3J#kPXWF!WKS"8d&[tdI[A4rrN%%rCR6)I&#3`rp'La
+r_iD]"Aj]SiVM1+!+>Cj"Cd8#kl'99"8q_p9_:p[;QSRBr9402~>
+`W$2Aq!d=l]V(&BJ-2(Tk5!j5!9O-/"E]I1kPXWF!WL:5J-2IloD\Ob!W@uUJ-Bq?UX\r8lMgna
+L@p'"I=e]^qUb`IO7Rl)G)EoqrS.>Sr:7[ToRI'sZJ"gHkl6/~>
+_uBu@qXWe!^OdTl!!E@Ub3Sr]rrAtp!!HSd^?Y[]rrMX&oDf"%N4nHQq#:>dr;[!:E/M0dqs"+]
+r\jEL"9NkHgA';"!$Ce4"@e9\kl'68!rVP*o)Jn2WnHtAl2Q8~>
+_uBu@qXWe!^Q_sd8d%eMb3Sr]rrBk48d&mf^?Y[]rrM^loL]6]NkOZSq#:?+rCR5jE/M0dqs"+]
+rc%L%"+7$#pt,NG@.Qtn@Z%e]rS%8Qr:#pA8d&8!g%,++s*t~>
+_uBu@qXWe!^S6JGJ-2@blhfQ=!7Ujr"ETO9lM]uI!VM9@J-:@^^$,ChrrCCDJ-C=>MR_aEl2Le`
+Re2+4I](opfDbi3o7-seMS&*NgA_6Pn?2A5"GO/7o)7hQJ,~>
+_>ac>qt0+(^ip[\!!Eq.dd[4mrr@iP!!Hnq_sIBerrN(=o)JkpWS."?rr=bO!!P]6S':C$kl1Wp
+oDeu&T$m8_rr=/4!!GcK]BK4HrrW)b4nAXV.^\"(rp'N6~>
+_>ac>qt0+(^lDL\8d&(gdd[4mrrB(s8d'$n_sIBerrN(do1B+(WS."?rr?m68d/OGS':C$kl1XG
+oL]4)T$m8_rr?Hu8d&U\]BK4HrrW)bF7W!,@("e_rp'N6~>
+_>ac>qt0+(^n?DGJ-:J%dd[4mrrBt7J-9tU_sIBerrN),o7-ppWS."?rrAGbJ-C%>S':C$kl1Xg
+oRI$jT$m8_rrA,OJ-:%Q]BK4HrrW)bRe)%4Lpl+3rp'N6~>
+^]+Q<r:T:)]OqT:!!GKkh"La*rr?U-!!IA-aRB,lrrC^C!!FI2a6ij%rrBD(!!NRBKWs>.kPkOB
+oDf"fQHAXqf`(pno)Jn_MS&*Nf`)$LcjfRH"Albjq#9UZJ,~>
+^]+Q<r:T:)]nK8I8d&k6h"La*rrA2Z8d'4"aRB,lrrD$L8d&4]a6ij%rrC1>8d.n*KWs>.kPkOb
+oL]7!QHAXqf`(qZo1B-pMS&*Nf`)$LfMhB6"E_<9q#9UZJ,~>
+^]+Q<r:T:)^70`>J-:\6h"La*rrBA&J-9qXaRB,lrrD9SJ-:@fa6ij%rrCaNJ-CF@KWs>.kPkP%
+oRI'jQHAXqf`(r4o7-seMS&*Nf`)$LhM(QO"HL.Sq#9UZJ,~>
+^&J<9r:K4&Y!D:Q"9O%gkka6;!'pJ_":B7<bjsrs!W5=V!!@;Ji;*6L!'pJ_"Yb%_`U*QdrrBJ!
+!!G0>_!D!Prr=/4!!GcK]BK4GrrW2pN:R#P!e\MXqs494~>
+^&J<9r:K4&Zu>8&"A=Wgkka6;!-eB6"AO!*bjsrs!W7678csOJi;*6L!-eB6"^,r3`U*QdrrC46
+8d&I\_!D!Prr?Hu8d&U\]BK4GrrW2pWq/gc99@0Yqs494~>
+^&J<9r:K4&\<6',"-gXcqV_ART`'BDIWUt$o&p#Rr1NY3",F2?q>1*kT`'BEG'&tfm/?,I!87!p
+"FH0Eli,Q:!0?`%"Eo[7kl'06!rhu0npgh1`p3Hes*t~>
+]Di*7qt&moL_B%S"=g4qo)@VJ!$(q;";#dIdIcW%!WK1l!!G?Sd.726rrC+;!!QVVVqC_BkPkPH
+oDf"<LUQ=Bf`(pno)Jn_MS&*NfDbpOn1+#0"<aVko)7qTJ,~>
+]Di*7qt&moS5eiI"C7hOo)@VJ!+#Oq"Aa63dIcW%!WKt-8d&Upd.726rrC[K8d/jVVqC_BkPkPN
+oL]6eLUQ=Bf`(qZo1B-pMS&*NfDbpOnRqGc"BhYOo)7qTJ,~>
+]Di*7qt&moWeB_h"G3Gto)@VJ!07#."FYKadIcW%!WLO<J-2Cio)ARe!9=!-"`Spgf_5=-rrDZ_
+J-:7T[cRG>rrA,OJ-:%Q]BK4FrrW2jPOj;-Ju@)grTsQ7~>
+\c2j4qXE@Q46uqLHF`,5ir9#Uqu?j<H(`[\k5PJU)Y="4$&H7Wqu$Ho;#L@t*c[.OkPOEA!WEc*
+!!EXZXl'!-rr=/4!!GcK]BK4ErrN%nnc/c%\)R5Ms*t~>
+\c2j4qXE@UD<sjsKXp1?ir9#Vr(7)iH(`[\k5PJV>kCVk:5cdJqu$HoK)J:F;fRc/kPOEA!WH0n
+8d%k=Xl'!-rr?Hu8d&U\]BK4ErrN&0nk'"1\)R5Ms*t~>
+\c2j4qXE@YOmIT#N4J$Gir9#Wr."osH(`[\k5PJWN:_W'IuM&'qu$HoW;V5MH?"nVkPOEA!WIrK
+J-:=OXl'!-rrA,OJ-:%Q]BK4ErrN&Anpgh$\)R5Ms*t~>
+\,QX1pZg7G!q$$k3hb!mro="YfDGUO-%)N@pZDJVrHe&8"&c)MpAP!kg\_$T89pfRo)@eO!WG:T
+!!@8;fCmks!$Ce4"@e9\kl''3!V@E(!!F./bO5>rs*t~>
+\,QX1pZg7g9^YLUA"h?Aro="Yj8;LP<d^^qpZDJVrL`[R")b'ipAP!kk57gT@!S?jo)@eO!WI66
+8cs=6fCmks!+>Cj"Cd8#kl''3!VKdj8d&+`bO5>rs*t~>
+\,QU0pZg8(m=5=jU!iN2j8T,Fr."oqI&,Ehk5PJ\](:FSJuI>qrVllbr."rkH(NCRroX4]rgrb4
+"+6orp=TBFO7Rl)G)EoqrRLoKp5SWn".[R&rU'W8~>
+mJd4QqYpK?rrrE!o&#]Bmf3J"NkOZSj8T+gqu?jNI];)tjo5A:"S;Zs)O/5-rVlfs?i9s.$>bI'
+iVDR7!,D-+"BLu:o)@>B!$Ce4"@e9\kl''3!W@<7!!@#BhtZU=J,~>
+mJd4Wr;Q]ArrrE!o&$BDmn*^YNkOZSj8T,'r(7)oI];)tjo5AB9_:p[<0YAgrVlfsNr;QR9l>]l
+iVDR7!0m+J"DjOPo)@>B!+>Cj"Cd8#kl''3!WAV\8csIHhtZU=J,~>
+mJd4[r;Q]ArrrE!o&$m/mskOjNkOZSj8T,6r."opI];)tjo5AHK(OQrJ!@q=rVlfsYPitTIVsnH
+iVDR7!4;BK"FHT_o)@>B!0?`%"Eo[7kl''3!WBV#J-1V5htZU=J,~>
+n,EUdIh7t8oD6`3"TA)XY8cp1"(nRepZ)8RQi$gd2h8'gqW7_Xr'^,V#B6p)q#CBW"T8<(20G5*
+mJZ,G!0QmR"@/-hmf(o>!$Ce4"@e9\kl'$2!6t'7">H@jnG_kUJ,~>
+n,EUfUfFbioD6`3"TA)X\m"Pp"*U]upZ)8R[JWW">_'!7qW7_Xr-@m+#CNc5q#CB^:&RZf>'6.O
+mJZ,G!3l)f"CdP5mf(o>!+>Cj"Cd8#kl'$2!8@!9"C@VCnG_kUJ,~>
+n,EUh^PKr!oD6`3"TA)X_hmi4"+mQ,pZ)8RbPZknGCZjRqW7_Xr1NY3#DTJ?q#CBcK)L6"FT[rM
+mJZ,G!6Fe_"FH<Nmf(o>!0?`%"Eo[7kl'$2!9<U"".[X*rpKf:~>
+n,EX9!!!tXg$nparri>tm(a\3!!GTUbjk\nrr@0=!!GQ>ZJtcCrrN+qo)JtOSBg[(s)7i9"Ti+_
+WnR1,rrC%1!!F^-]]f=Irr=/4!!GcK]BK4CrrN$5o)JmtL:QFCmf.e~>
+n,EXH8kN@1g$nparri>tm)WK%8d&[mbjk\nrrASe8d&LRZJtcCrrN,4o1B3oSBg[(s-`dW"DNCd
+g@jS,!7g^6"B^Pokl'37!+>Cj"Cd8#kl'$2!W6-m8d%hD\`N_Vs*t~>
+n,EXSJ:NR#g$nparri>tm*1FWJ-::gbjk\nrrBY.J-:%JZJtcCrrN,Fnpgn6cLLo6\,:aZDh+kA
+p>c/QiUhX'I#>T#rRq2NO7Rl)G)EoqrRCiJr/1&q",aYNqsOK7~>
+n,E[i#QOj,[bUTUbl7eBnAQL>!!FL)^?GLUrr?!q!!G`F[cRGJrrMg/oDf("Kt?FDmg/jl"WqcF
+^?GLTrrDKZ!!EsfZJkZ5rr=/4!!GcK]BK4CrrN*rnc/buVUtP0s*t~>
+n,E[k:J+6*[bUTUbl7eBnB>5/8d&1R^?GLUrr@cN8d&RW[cRGJrrMjsoL]<]Lq;aGoMGKY"]TN&
+^?GLTrrDW^8d%tCZJkZ5rr?Hu8d&U\]BK4CrrN+Nnk'")VUtP0s*t~>
+n,E[kKReT;[bUTUbl7eBnBm3bJ-:7Y^?GLUrrB(sJ-:%M[cRGJrrMnPo7."&]&rnaK`-E)H?,%[
+kksK@!;?&8"FYp.iVM7-!0?`%"Eo[7kl'$2!WK"eJ-)V"p?qs2~>
+n,E[m4obQgMSn]VbPq\Bo#)44!!ERZYi,B=rr=kQ!!H5W]'0+RrrN(9o)JnfVUkEiqu?moHD&^X
+ro="ZrYP2,"*g`tpt>ZI+7fI87Z+hArR:cHII[@@3L7bTrpTl;~>
+n,E[mG"PA%Oi-G]bPq\Bo#t/*8d%k?Yi,B=rr?s78d&a_]'0+RrrN(ao1B.$VUkF9r(7-%HD&^X
+ro="Zr`\qd"+-s"pt>ZI@.Qtn@Z%e]rR:cHU@LnZ@$\n&rpTl;~>
+n,EFfT)O6BQG_tbbPq\Bo$W<aJ-:@RYi,B=rrAMcJ-9tN]'0+RrrN)*o7-spVUkFTr."rkHD&^X
+ro="ZrepE!"+I0%pt>ZIO7Rl)G)EoqrR:cH^%-[VI?qtCrpTl;~>
+mf*90rW!'WW7LV?bPq\Bo;Vo`!!@>=f_=J,!"f&."B^VslM]cC!7CB<";d9>i"5he"Uf1&[,Ur@
+rr>O\!!?MtdIc,l!$Ce4"@e9\kl'!1!1iZ\"<!*.kPXfKJ,~>
+mf*9Wr^m<&W7LV?bPq\Bo=Rcf8cs@7f_=J,!*/qh"DEb.lM]cC!8R0<"B1N%j&Q%M"\rrj[,Ur@
+rr@E<8crt%dIc,l!+>Cj"Cd8#kl'!1!4hYm"B12hkPXfKJ,~>
+mf*9trdY-(W7LV?bPq\Bo>lLRJ-11pf_=J,!/UQ'"E]U:lM]cC!9Ng&"FlWQk(rtd"b(BF[,Ur@
+rrAecJ-1.hdIc,l!0?`%"Eo[7kl'!1!6t(b"FZ0=kPXfKJ,~>
+mf*9kr;Zq@]]K"4rrW,hB(>p(@%5O8jo5>LqZ$b0O2C8_j8T/X2"L\KBWl^Z!!P6'QcSUniVrmu
+oDf"]PfW=mgA_-po)Jn_MS&*Ne,KEZnc/dpJ?@](n,In~>
+mf*:,rCR0E]]K"4rrW,hNq,dEDk#,Gjo5>Qqaq!-O2C8_j8T/XDY$I%H*<\78d/CAQcSUniVrnH
+oL]6rPfW=mgA_.\o1B-pMS&*Ne,KEmnk'$XJ?@](n,In~>
+mf*:<rI>!2]]K"4rrW,hXR^lDHCN:Rjo5>Tqg\fkO2C8_j8T/XR.Gh0Ks.cZJ-C(=QcSUniVrnf
+oRI'kPfW=mgA_/6o7-seMS&*Ne,KF'n:1SBhYHX?J,~>
+mf*:Rr;Zs>T$Qp)b5VP@j;%7d"B(K*nG_SM!6b6>"DEt<mf)8H!WJDV!!4j?')_e6!b$VZg@sP*
+!1i`^"=f>Cl2B?9!$Ce4"@e9\kl'!1!5@t'")+CYp$_p2~>
+mf*:WrCR2nT[3-+b5VP@k?.=J"DF%@nG_SM!8@<B"E0ICmf)8H!WKCr8ci=d<r>PmBn35;pYc&O
+\b&Js=c9uXrS%8O@.Qtn@Z%e]rR:cHd.'^1F.q.Wn,In~>
+mf*:ZrI>$%T[3-+b5VP@lA>+_"F-0PnG_SM!9O*."E]gHmf)8H!WL12J,u*nr."ogJ?%>ti;Wf&
+oRI'lMnSBRgA_/6o7-seMS&*Ne,KF)nUL^hU"/i)s*t~>
+mf*=e-N*oI:p]$RrlY6AqM"M@"A"Tjm/H/I!3>ts"ETjNnG_GI!UU-a!!*3jqu?mBEfRp!r8@ST
+an,Q9'83[NqqD&M+7fI87Z+hArR:cH^@;1+<1(o"rp]r<~>
+mf*=eAGo+'EO4NsrlY6AqPNjV"D!S1m/H/I!5n\+"ETjNnG_GI!UrnW8c_Rur(7,lEfRp!r8@ST
+f^qc=:kZ.6qqD&M@.Qtn@Z%e]rR:cHdIBg3C7*68rp]r<~>
+mf*=eP5Tn6LpPt5rlY6AqRuKN"F-!Em/H/I!7gss"ETjNnG_GI!V:s8J,k3!J-C7>NkaiVi;Wf;
+oRI'mKX0V7gA_/6o7-seMS&*Ne,KF)nULagR*>+"nGe"~>
+mJd/pr;Zs)M8niYb5VPBjp1MY"@nEblM]lF!/paT"9N\3bjs`m!W?*k!!!)u!!Q&BT[NH2i;WfJ
+o)Jl;W7q%#rr=/4!!GcK]BK4BrrBe'!!G`P`9mQns*t~>
+mJd0HrCR2dP/cebb5VPBlVI.F"CmD)lM]lF!3Q,j"*BmRo&9TLrJ0u:!)*5^"_)eNde!IrrrD``
+8csI>gA'D%!+>Cj"Cd8#kl'!1!7C=/"CmP3mJcVTJ,~>
+mJd0ir."m9`p3KErrW2fKCjZsGDs9$rT=+[`VY/fFI15BiVrrWWU53>EdFD,oD[\J!;Q/9"+I3&
+ptG`JO7Rl)G)EoqrR:cHhXQ+!H'#u3rp]r<~>
+mJd0Rqu?jKW7CM=b5VM?:\4Vi6]/P?rT=+[B`%i5%<e2eo\ofNrjD.o"Uf1&[,Ur>rrN*CoDeu!
+T$d2arr=/4!!GcK]BK4BrrB(h!!G?@]]oCas*t~>
+mJd0or(7)tW7CM=b5VM?Jb2P;@>__]rT=+[Pl+,V:3N)Qo\ofNrlOS#"\rrj[,Ur>rrN+.oL]4'
+T$d2arr?Hu8d&U\]BK4BrrBt,8d&IY]]oCas*t~>
+mJd1/r."p'W7CM=b5VM?V=]9@GDa&srT=+[[/>FWIWh1,o\ofNrn$Rg"b(BF[,Ur>rrN+\oRI$j
+T$d2arrA,OJ-:%Q]BK4BrrCU>J-:1V]]oCas*t~>
+mJd19qZ$_.]&NP.rrN+foDf"[M7VpLk5PEOqu?j/GFd1Si;WiS)XdY020P>-meu#B!)E.d"@89m
+mf(u@!$Ce4"@e9\kl'!1!1r]\">GS>k5=`KJ,~>
+mJd1Eqaps<]&NP.rrN,-oL]6oM7VpLk5PF/r(7)eGFd1Si;WiS>jk8g>'?7Rmeu#B!.jc7"Cm\:
+mf(u@!+>Cj"Cd8#kl'!1!4q\m"BpPhk5=`KJ,~>
+mJd1Mqg\d.]&NP.rrN,AoRI'hM7VpLk5PFWr."p!GFd1Si;WiSN:29#F`s+mmeu#B!2fC="FHBR
+mf(u@!0?`%"Eo[7kl'!1!711c"F>g3k5=`KJ,~>
+mJd4c&,ZD1$BiR!r6#$>f^o.H7YnY>r9""Z./X&J&p^,!p#,iNrc@N."CH\Zg@sG'!.+8;"=B&>
+kl'99!$Ce4"@e9\kl'!1!.aS>"=f)2j8AEHJ,~>
+mJd4c<;]>k:702kr6#$>iq,hG@YhVZr9""ZB)G7(:jJ\_p#,iNrgN:J"DE=cg@sG'!2/sV"BUMo
+kl'99!+>Cj"Cd8#kl'!1!2T-W"B^>`j8AEHJ,~>
+mJd4cL\lT(SBC6sb5VJ,oRI'fLq;gJk5PFGr."otH(WUZi;WiW\*nhMDh+kApYGiL]_$^WI#GZ$
+rS.>PO7Rl)G)EoqrR:cH_!upXHA&Wbr:'`:~>
+mJd4d9)ASk0<Egurlb<Br<r8u"@e6Zkl'ZD!!N3""<)T\f(S#$!6t!5"Wh]E^?GLNrrAbb!!Ejc
+Z/PQ6rr=/4!!GcK]BK4Brr?U"!!Fa&YMf9Hs*t~>
+mJd4dIeu_?@'&#Qrlb<BrDN;\"Cd5!kl'ZD!)3;_"B'Q?f(S#$!8?p7"]KH%^?GLNrrB_(8d%qB
+Z/PQ6rr?Hu8d&U\]BK4BrrA2O8d&7JYMf9Hs*t~>
+mJd4dV#,ZFKrir!rlb<BrIsop"EoX5kl'ZD!.t-!"FGHhf(S#$!9<R!"aY3L^?GLNrrCC;J-:=R
+Z/PQ6rrA,OJ-:%Q]BK4BrrB@pJ-:1MYMf9Hs*t~>
+m/I':q>^V,]]An3rrN*Ko`,+kMS/0OkPkPBqZ$a<H_f<ghu<`T/b&fE8:$oUoD[SG!5\7,"*CEn
+pY5]J+7fI87Z+hArR:cH3:QtO.=eSYqXFN8~>
+m/I'^qFUj;]]An3rrN+4oh#?uMS/0OkPkPJqapuhH_f<ghu<`TC%4e!@!\HmoD[SG!7UO3"*pcs
+pY5]J@.Qtn@Z%e]rR:cHEUcX(=FdR3qXFN8~>
+m/I(#qLA[.]]An3rrN+`omd0fMS/0OkPkPPqge]n!i4KChu<`TQ19A.EdFA*oD[SG!8mBu"+I-#
+pY5]JO7Rl)G)EoqrR:cHSFM+4H@W0UqXFN8~>
+m/I'qq>^X(N6:MbbPqQ+o`,,"N5"TUkPkOoqZ$a<I&>Tlhu<`VMXg`N#]#1$iVM@0!8d;I"BM&>
+oD[PF!$Ce4"@e9\kl'!1!"AAt"=\l(htljBJ,~>
+m/I(0qFUlcQ-/IkbPqQcoh#@$N5"TUkPkP-qapuhI&>Tlhu<`VX7Ajd9PoNjiVM@0!9`rG"DjUT
+oD[PF!+>Cj"Cd8#kl'!1!)i>Z"B^2WhtljBJ,~>
+m/I(>q1&R;b3]&LrrAY`J-9tQ^?Y[[rrCmPJ-:4HVV1b%rrN,9npgmmDhbUWqV;)Nmdkr3I%8RT
+rnRMRO7Rl)G)EoqrR:cHL@KcsH@W0UqXFN8~>
+m/I(Uq#COAW7LS>bl7Z0o`,,0OMgGakPkOKqZ$a<I&>WmhZ!W5"S2Ts/p*AumJYi?!<2Qi"?DXa
+mf)#A!$Ce4"@e9\kl'$2!71-7">k\4i;2sCJ,~>
+m/I(Xq+:cnWn-e@bl7Zgoh#@*OMgGakPkOiqapuhI&>WmhZ!W=9_1j[=EKhJmJYi?!<2R^"CRD3
+mf)#A!+>Cj"Cd8#kl'$2!8[-:"C$G[i;2sCJ,~>
+m/I([q1&U$Wn-e@bl7[:omd0cOMgGakPkP*qge]o!iF]HhZ!WCK(FKrGBB+imJYi?!<2S?"FQBO
+mf)#A!0?`%"Eo[7kl'$2!9`j%"F,L#i;2sCJ,~>
+m/I+c0)5JM7(D1LrltHC6hUK`$?VQTnG_VN!-%f8"<2`cgA'P)!W>:T!!HDQVqC^trrN*)oDf":
+M7VjIh#@?no)Jn_MS&*NeGfN0n,NSRK!=83nGe"~>
+m/I+cCACI)Cq/EtrltHCH1ji69luZBnG_VN!1E^V"B'WEgA'P)!W@358d&aTVqC^trrN*poL]6e
+M7VjIh#@@[o1B-pMS&*NeGfNQn4EgiK!=83nGe"~>
+m/I+cQMH%6MR_U=rltHCU%X!?IWUjsnG_VN!4_oVs*OmFgA'P)!WAV]J-9h?VqC^trrN+PoRI'l
+M7VjIh#@A6o7-seMS&*NeGfNhn:1XbK!=83nGe"~>
+li-rrp](D-_WL^>rr>:W!!FEgSC$ojrr>ai!!F-dVV:h%rrN+foDf%/E/V?jqqD&M+7oO9#D0,9
+qV;,A!!GcK]BK4Crr>IV!!GoJ[H.8Ts*t~>
+li-sIpdtX=_WL^>rr@698d&+;SC$ojrr@TH8d&%>VV:h%rrN,-oL]9`E/V?jqqD&M@.[%o9S0G)
+qV;,A8d&U\]BK4Crr@B78d&UW[H.8Ts*t~>
+li-sipj`I1_WL^>rrA\bJ-:1BSC$ojrrAqnJH'uuVV:h%rrN,AoRI*mE/V?jqqD&MO7[r*ItFi\
+qV;,AJ-:%Q]BK4CrrAe_J-9tJ[H.8Ts*t~>
+li-sQp](F$KZi`ZcMml#p&G4TI&,Ehk5PE,qZ$a/I&5Kih>[ND#PA'#4F!@?nc%8B!$Ce4")"C[
+p>#]=!!GcK]BK4DrrMEgn,NSrMS&*NnGe"~>
+li-snpdtZ`PKW=icMml^p.>HmI&,Ehk5PEkqapudI&5Kih>[NH:\@<`?$Mj`nc%8B!+>Cj"*:6g
+p>#]=8d&U\]BK4DrrMXan4EgtMS&*NnGe"~>
+li-t.pOE@;bO#,OrrAJ\J-:%CUtGG(rrA5ZJ-:=KV:bOurrMbEomd3fGaltJrn@APO7Rl(IA>Be
+h#Hqq"Eo[7kl''3!VM'6J-9nM]BK4_s*t~>
+li-t3pAb=+RFC['ci3t]p&G4qK!=20kPkPVq>^X*HD9!ah>[NS9_JGi!bHtdh>#\'!%7@<"A,!(
+nc%AEnc/e^MS&*Nec,W-n,NUqEKA$(rp]r<~>
+li-t@pIYQcU!rN/ci3uKp.>I"K!=20kPkPXqFUlbHD9!ah>[NSJ+ZD:C4`VEpt>ZIAb/LsAsgd3
+rn[VF8d&U\]BK4DrrB1j8d.n.O2L>`nGe"~>
+li-tIpOEBuVpk/5ci4!(p4*9cK!=20kPkPZqLA]tHD9!ah>[NSV"K6@Dh>.Jpt>ZIPOj;-I$i+I
+rn[VFJ-:%Q]BK4DrrC%-J-CFBO2L>`nGe"~>
+li."a&,-&,(oGsVrR(WFn+H_b#]Pa9kksWD!71H@"*gHfp"fWKrhfAh"WqcH_<V!Prr>7S!!Fp7
+_!CsUrrCsI!!GcK]BK4ErrN!Bn,NV6FdUDCrp]r<~>
+li."a<;/uf<iamDrR(WFo_(l\9Q5s(kksWD!8[HC"*gHfp"fWKrkA(u"]TN(_<V!Prr@668d&@Y
+_!CsUrrD9R8d&U\]BK4ErrN%-n4Ej`FdUDCrp]r<~>
+li."aL\H<%KW`turR(WFp\'+@IW17ZkksWD!9a0."*gHfp"fWKrm:@h"aY3N_<V!PrrAY^J-:7[
+_!CsUrrDNYJ-:%Q]BK4ErrN(]n:1[gFdUDCrp]r<~>
+li."b6M:B^,d,qprmLfH\+Te*/p<W*nG_VN!2oVm")==Po\BHIo*b9m"\*g3de*Olrr>:T!!Emf
+[,_&?rrCdD!!GcK]BK4ErrA\[!!GT8Ut>>/s*t~>
+li."bGkO`4?Er;XrmLfHbk=X4=E^(TnG_VN!5SD&"*0mXo\BHIohtNV"^lYMde*Olrr@668d%tE
+[,_&?rrD0O8d&U\]BK4ErrB\"8d&IJUt>>/s*t~>
+li."bT_<m=LU>k/rmLfHg\-.$GBT@snG_VN!7Uao"*g<^o\BHIpP&?l"`ep_de*OlrrA\_J-:=T
+[,_&?rrDEVJ-:%Q]BK4ErrCC6J-9tAUt>>/s*t~>
+lMgj0o`,+AZJP9Re,KDhp&G5!J#M)pk5PF+q#CP&Qd#"!h>[NS=SMk""`&k!iVM4,!'g#S")k*k
+pYPoM^[_@-7Z+hArR_&MpE8r*"TrCkZJt`Ls*t~>
+lMgjVoh#?n[bg]Ve,KE<p.>I"J#M)pk5PFRq+:d+Qd#"!h>[NSL\OIF9PoNjiVM4,!-[p*"*g`t
+pYPoMddg!5@Z%e]rR_&Mq-`\a"\WZcZJt`Ls*t~>
+lMgjromd1$\DHoXe,KEYp4*9bJ#M)pk5PFoq1&TmQd#"!h>[NSWq_)JIrC(JiVM4,!2&h4"+R6&
+pYPoMhsu:#G)EoqrR_&MqiL;t"b1HEZJt`Ls*t~>
+lMgjcoDf"@[,:QUeGfLgpAb@8EK%Qmr9""Z8GN5g8Wq*]rnRMRWqZPt.WgopmJY];!&*mC"A,*.
+o)@PH!3>Yj"@e9\kl'-5!-@T/"Y"PW`9dHks*t~>
+lMgk&oL]6n\)6lXeGfMTpIYTeEK%Qmr9""ZI/-A;AWk($rnRMR_>$V+=*0\HmJY];!,M-t"D=4L
+o)@PH!5nA""Cd8#kl'-5!1`LM"]of0`9dHks*t~>
+lMgk7oRI(#]&32[eGfN/pOEEoEK%Qmr9""ZV"oNDH'628rnRMRdeJ=rG]]1imJY];!138,"FZcb
+o)@PH!7gXj"Eo[7kl'-5!4hQK"aG-Q`9dHks*t~>
+lMgkCo)Jn?[,:QUf)G`Rp&G7mH(N@Qroa:^o*G-l">c"NlM]N<!V6]p!!H)GV:P@lrr<l+!!FI+
+_!:mUrr@uJ!!GcK]BK4GrrL"?n,NXo?%/X$p&=F[J,~>
+lMgkKo1B-m\)6lXf)G`ip.>KuH(N@Qroa:^p/(QW"C-o"lM]N<!VK@d8d&XPV:P@lrr?6n8d&1U
+_!:mUrrB1l8d&U\]BK4GrrLVDmn*asI\kWgrpTl;~>
+lMgkQo7-t"]&32[f)Ga%p4*<dH(N@Qroa:^q1SQo"FH*AlM]N<!V_<DJ-9k?V:P@lrrA#KJ-::]
+_!:mUrrC%/J-:%Q]BK4GrrM)1mskR[I\kWgrpTl;~>
+lMgna'Cu2,,cokprR_&L0_YPN+E3.FiVDX9!1W``";Za"jS[g5!WH3t!!N^ILpuIBf`(sCnGi[p
+I^.i-hu<[enc/e^MS&*Ng&D*9)".G.13/Dfk54THJ,~>
+lMgna=7]#e?F&G[rR_&LD"gO*<,dZ%iVDX9!4_er"B'u^jS[g5!WIlN8d.q-LpuIBf`(sFnO`pW
+J[+/0hu<\<nk'$oMS&*Ng&D*@>OP/f=`TP8k54THJ,~>
+lMgnaM=Z6#Lq)=6rR_&LR.l+7H>n\KiVDX9!6t:h"FZ$4jS[g5!WK+qJ-CC@LpuIBf`(sIn:1Uo
+Z/GK9rrB@qJ-:%Q]BK4HrrM_MmskRbEfRfpqsOK7~>
+lMgna9(Drb'qO.Nr7V)MS+cme"(-AGcLCeqrrMj>pAb;9Wn[='rrB(q!!OutQc\^qf`(rdn,NSg
+U"&`6i;Wd2nc/e^MS&*NgA_3:..7-?&o3#peFW\-s*t~>
+lMgnaIe$)6<iXsGr7V)M\G&T"95&XCcLCeqrrMq*pIYO6Wn[='rrBn38d/=>Qc\^qf`(s"n4Eh"
+U"&`6i;Wdnnk'$oMS&*NgA_3AB(&=r:i1`[eFW\-s*t~>
+lMgnaV"0$=KsTS*r7V)Mc1c_mIrBY)cLCeqrrN"[p4*4Eg\BP'!7L^o"a>*Uam]5]rrCsGJ-:@q
+eF`aurrAGWJ-:%Q]BK4IrrM_UmskUiDh+_7oD\1XJ,~>
+l2La,nGi^uJ_0AernRMSh[oM^"Zg^a]&WVKrr@E>!!G][cgq(jrrM^!qZ$atI]1omfDbhhn,NS8
+P/Q_ciVro@nGi\]MS&*Ng]%<;..7-?"^-)9_s%!bs*t~>
+l2LaSnO`s[R+Lg'rnRMSkZ.@L"^H,.]&WVKrrAee8d&arcgq(jrrMdjqaq!%I]1omfDbi=n4Egb
+P/Q_ciVroGnO`pnMS&*Ng]%<BB(&=r9P/O8_s%!bs*t~>
+l2LapnULdpWn6_9rnRMSmtg^g"a"gF]&WVKrrBb+J-:=kcgq(jrrMkJqg\fhI]1omfDbi[n:1Xj
+P/Q_ciVroLnULacMS&*Ng]%<GPja,,IrBRt_s%!bs*t~>
+l2La_mf3Jfc0G*'hZ!WJ0_YPO*cHY/eare'rrKG/p&G4'MSA<Ph#@ES=Sr.&$ZM!7k53g2!V[H"
+!!@,Di;)@3!0cpQ"@e6[kl'<:!RDnW!!`QtFH!Zbp\sR[J,~>
+l2Lb"mn*_0cKb3(hZ!WMD"gO+;f@8deare'rrL59p.>H_N5"NRh#@ESL\saJ:2l*%k53g2!Vosg
+8csIGi;)@3!4),e"Cd5"kl'<:!Sq/O8d8^GN4.U;rpB`9~>
+l2Lb4mskP/cg(<)hZ!WPR.l+8H>eD6eare'rrLf)p4*9qNkX`Th#@ESWr.ANIW11Uk53g2!W.iE
+J-1P2i;)@3!6Ob]"EoX6kl'<:!U#R4J-L%9N4.U;rpB`9~>
+l2Lb6mJmA6WoNaLi;WiL48/^Z%qL$Wa6WWcrrL"GoDf"aWS$qDh#@ASqu?mQG*pGArn.5NL[G-F
+*1G+@rSmhW/F`]C'md=Lqq_8QP76jZ#!?p\XOZn?m/MS~>
+l2LbAmRdUg[c@#Xi;WiOFSAB3:25-Ga6WWcrrLVIoL]7$WS$qDh#@Ajr(7,pG*pGArn.5NWpWI^
+<h.D'rSmhWC%4du;1c7;qq_8QZ;U*_#$c2'XOZn?m/MS~>
+l2LbJmXPFt^Z4tai;WiRSbIX=I;XD%a6WWcrrM)5oRI'sWS$qDh#@B&r."rpG*pGArn.5N_sMsV
+SBUL$ir9"EnULajLUQ:@h>[MtL@0QrFE3,;eai\*s*t~>
+l2Le`$gmuu"_lNTq>TFS!TQ$2!!`j8GE]]"q#9LW!P8d3!!EFP_<CdOrrM^!r;Zt!I]1upf`)!$%
+.+#t8@.1IroF(ZU[J0d%rThaqYoIR!Rj:$!!`QjEJ147mJQ;MJ,~>
+l2Le`;XR-\9oRZkq>TFS!UF[u8dA('GE]]"q#9LW!RF[88d%hE_<CdOrrMdjrCR3'I]1upf`)!1
+;XI'ZD6r*nroF(Z^@+Yt;2EZhqYoIR!T81h8d8UAKVm&^r9OB5~>
+l2Le`L$jHpJu.)eq>TFS!V)WQJ-UOAGE]]"q#9LW!SrM$J-1tNkkj08!V_<HJ-9k@W7q!urrMA=
+m=5=qZekHUjSo5-mskRmSC6m&ro*kXl(@?n#'=j<VU"T,li2J~>
+l2Le`1@+uE+IqNbr;PjY!NQq/!!`j8G)iuco`"(S!KRBR!!En#dI@(irrN*mrW!*0E/M6hr7V)N
+k:#Wr"BiV(q>TOV!TOm]!!XBfeFNG6roX4^dU*.F!!`^'EeUC6lMBfGJ,~>
+l2Le`D<sju?E`G^r;PjY!Q8+78dA('G)iuco`"(S!O,;g8d&%`dI@(irrN+Lr^m>hE/M6hr7V)N
+mUkcW"F@rIq>TOV!UEkT8d8Ifg%+t;roX4^hi1=t8dA%!EeUC6lMBfGJ,~>
+l2Le`R-]>,MnJ-Cr;PjY!S*)%J-UOAG)iuco`"(S!QTf^J-:FudI@(irrN+prdY0$E/M6hr7V)N
+o9AQk"HgR`q>TOV!V)'7J-Lk8hX^L@roX4^kc]U+J-UREEeUC6lMBfGJ,~>
+kl1Wpl2UuP\*<Varp'LacU[[/#7Og[Nj@=.r9=4^gHY*+";?sNnbh5C!1s/i"YY%db4,DarrL.[
+kl:iY_WU^nkl1\H.-^d<"$1nHoD&7_rpB^entJA8!!jBKG)E<FlM:GEs*t~>
+kl1XGl:M5#_Wgdlrp'LagjJff#>SoTNj@=.r9=4^k'-5c"B;&Hnbh5C!4i)$"^#r8b4,DarrL_X
+kt2)#`TR$qkl1\OB'Mto9Q6ZMoD&7_rpB^ep:Y\:8dJ:.G)E<FlM:GEs*t~>
+kl1Xgl@9&)bN\`urp'LakG.a$#C^T7Nj@=.r9=4^m@Wfs"G<`,nbh5C!6tLn"a>-Wb4,DarrM/?
+l$ro"`om-rkl1\TPj3c)JXEt"oD&7_rpB^eps>Z"J-^L@G)E<FlM:GEs*t~>
+kl1XCkl:ni6)s5Dr;Q-a!Obes!!aBOG`T2_nbh\P!p=J-li71mAC'Z=rnm_]mfWUj<dq"$pY5]L
+k@Xq\!!O@#iUZmFli."#*9@/,%R"Wo_WLXjr;HWoqu?]q"R`jU6O<#Y#mNM1I?UtcmJ?hHs*t~>
+kl1Xckt2.RFM$i3r;Q-a!R-/g8dA7/G`T2_nbh\P!q)IQlq.FTL=5Jbrnm_]nk;YJB7?f5pY5]L
+mZUB.8d/CmiUZmFli."5?KFcc;fn80d-LK(r;HWoqu?]q"S0j;Gu*d!#u"WDI?UtcmJ?hHs*t~>
+kl1Y&l$rthRE4[er;Q-a!SaOFJ-UF>G`T2_nbh\P!qWmSm!o7jT[W<(rnm_]on%^EFFL1BpY5]L
+o<X&3J-Cb8iUZmFli."CNobctL7>Kgh!Xt7r;HWoqu?]q"SUWfTnMc_$%I&:I?UtcmJ?hHs*t~>
+kl1Xrjo>W0FLgr:r;Q]hrr_\pCE)pH#Qcc!I$D(mnbhbR"8fZ2#j;6m&p2Ojq#13Ors8Qg!"4".
+\`WhHrr`,/>6s6h"sSWKo(i7`nG`O+:Yc!S%OaPFC4#l+")V4&([1o+"#"51LnVT=nGDDKJ,~>
+kl1Y/k"5kcR)ngmr;Q]hrr_l6Q<j,T#?l%nPd]98r9XFcr6C*pkXl%ZQ.PO#rVkgV#lSs>:O%c-
+k5=*9"8pH%:ub.P@%Z0Dq>L<^rrLW$h+@lNAp0#qTV;=Y"."da>3SWc93H(ULnVT=nGDDKJ,~>
+kl1Y=k(!\rZIJF>r;Q]hrr_uI[>jg/#Bk'6Pd]98r9XFcrS4H,k^WklY1rI@rVkgV#lU?FJU*-`
+k5=*9"8prVK]@ReN4%R6q>L<^rrM&Uh1,Z`P+AVY]DT;D[B,mVl$s(iGB%k`TtfCPqre!0~>
+kl1YIirBT%89UT9f\5'6gXEg.JlXAl!!j??FG-7#hX^U5rri>TSmN2l!!`TaHEuT*qY^?lkl1qf
+P5mXuR*"grj8T;^o"KuW&DdBn"#k>)j7iEKrr2fps8E,WVIpjV!"&obApB'![*Ih,r9"$0~>
+kl1YOj%9MUHCVIgi8agt"lIY<VMAjU8dJ:+FG-7#hX^U5rri>^\rBhP8dA%-S]'adqY^?lkl1qf
+Z:\ebR*"grj8T;^p!Bdl<Sg=S9Q$98kkFrPrr2fps8E,`^lr'48d\6qCj:]'[*Ih,r9"$0~>
+kl1YSj+%YqTXW(rkj%I!lfd-M^oE[jJ-^OCFG-7#hX^U5rri>fcEE,cJ-UXk[aOL9qY^?lkl1qf
+a+/u#R*"grj8T;^ptireLu*XgJX<ajlhC8Srr2fps8E,gd^+qAJ-pdMEd3>-[*Ih,r9"$0~>
+kl1\_'E.t9!uWR>/0Y_S!!s!!E.*kMb2i9pnc&]PB0Hj[!!j;u<c39EpA=jSrs%?\HC(Yap>u;V
+mrM8Le,Tms7VT7#q#15rG?-I0[/^U:*Ck$qLmt]mi:-UBjo9i~>
+kl1\_=8ker92\kq>?=\L8dS4!EIEtNb2i9pnc&]qPBKs[8dJO<KpJCqpA=jSrs%XYOI*!"p>u;V
+oULMBe4L-THBZA>q#164Sqh/^Zq:^)@WHjPS$L2pnG<.Gs*t~>
+kl1\_M>i#0IsZKhI"$RmJ-g[HEda(Ob2i9pnc&^3Z_!!,J-_""W3j2&pA=jSrs%k@TU2\2p>u;V
+pUR2ae:7sdTX!#;q#16E];h6R["&O2F`VqdS$L2pnG<.Gs*t~>
+kPl&N""mAeHA%6?P`gl>9IUD&!"'6$DL7;9^=_iKrp]pf+OU5l[G:3HlMh(e5JXG;jSS'=!8l'%
+"_?*EpASF+!"BDf88EO)P+oD.hsU:<j8XW~>
+kPl'39O_aWHA%6?P`guRDHoui8d\="E-mM;^=_iKrp]pf@+%XL^>//QlMh(eG/CDtjSS'=!9h^#
+"c:^jpAU)Z8e"Nt@rZgJP+oD.hsU:<j8XW~>
+kPl$\JV\_rHA%6?P`h)bL4Rs,$@R&;H]+W4f^8M6nG`KMdXVG=h!Y%(rs&Fn`3-o:qrRhXn'6Fe
+UsnK"ri`\Z%=WVHG'\h)U:/8&meHb@s*t~>
+kPl74`3,;fU9VGOaMu*/ZDX4D>s'#.huF,g-W"o6NM3o0k4JT>rsjj*?rBa(=BT-B?tX@rEURrJ
+@fKg9?2dY.:..N?3&ipe]\W;\li.1go\7O?n,DGK''ag]>Ydpc<Dub#?=$uKDJsN7mrBIe@UWYO
+>#8$k7R9@(1cB-Rd-gk$=CG3<?>=:jFEI+ps'cCE>#8$b5W^SL*Z>Lni;aGn'I>e:C4(VkQ(kS%
+eDp&nrSdd,~>
+kPl7DbH@%mU9VGOaMu*/ZDX4MG@jiKi(=AN<b6B%NM3o0k4JT>rsbupKm7W^FE2PGEclVPmWo"Y
+FE;JBrG2gSC2@KoB:limpAXCX#6+8Lb1H+]jo5YVTTaqKDJjH4D>eGUF*MutH6IQUFE;JACi!m#
+AnP^cA:h&4mesVLLO+ApIsucpI=-Bgp3I3kFE;D;CM.0e>[(6.:efn@&PQ&'?YFJ-Jr>ngZGY2P
+nG)t@s*t~>
+kPl1Nd&rRrU9VGOaMu*/ZDX4TM1j`9$\*GDFFK4C\^9L2r9jRp_QohtN/NLGK7SQ&It3+;K):'+
+JqSi4L5:\^]\W;\li.1go\7O?n,DGK$hV'6S<&M^KnFr,If4`tJ:W:<K)C-7It3*%K7nuCYgDh:
+bc%;%P)bQ]M2$]RK):&uJ,OirJ)PniIslZiG^+UfMj:$B_pm`9q#01OJ,~>
+kPlCqkfgcZeDTTZn*]Q+inDbu\ZVZjE)//'k5Yr'/PpG7LR"dMdH'lprpB^rqW5\tTq7jJTq\B\
+W2cr$n?*G,XJr+pVPKrZTV%gIT:i'nh"C[3rri2dk3Vm(rt>>)hS#hZSXc7CTVA6ZVPpMrXm`D#
+XfSS%Vl$>eU7e-LrgX7dYg;b9r9MS1rh9RlV5C2lXnAh;XfSM"VPKoXS=5e0P)tZ\I<B=7?VsWm
+5X.Fh/hZiL'fnHM<FKiqJqo;KR\[.!aOT89o_SREs*t~>
+kPlCqkfgcZeDTTZn*]Q+inDbu\ZVZlJT"ppk=Q1Z=_;c'LR"dMdH'lprpB^rqW5\tTq7jJTq\B\
+W2cr$n?*G,XJr+pVPKrZTV%gIT:i'nh"C[3rri2dk3Vm(rt>>)hS#hZSXc7CTVA6ZVPpMrXm`D#
+XfSS%Vl$>eU7e-LrgX7dYg;b9r9MS1rh9RlV5C2lXnAh;XfSM"VPKoXS=5e0P)tZ\K78)gF)>`-
+ARo:X>[6u,'jtK`CN+NIJqo;KR\[.!aOT89o_SREs*t~>
+kPl@pkfgcZeDTTZn*]Q+inDbu\ZVZnN/*#IJ.6pPG'/1fQ)D:BjRW0HmJd^nji+<pSt;RJU8=`c
+WiW>lXqRq=WMcVjUnXNTT:VXHTVf?Vp&=7V"T%QKm.fZA')qU]]r.KnS=Q:FU84Z`W2cr$n#d&#
+XK/:tVP^/`TV%eSS-YakcgLc0lccR3U'7?hVPpPtor]17XJr+pUnOENR[9;&OH#-QKnP&/JUi6#
+J,OiiIK+]pHiJI(IY*?6PFA;N]?&O]m.C/RhuA3~>
+kPkecp?_#0o_SLarY#2,q"*q9hUTfb[&KXYEDekD%J'Q3!tun?:i(N2N0gEMa4TSGqYog\%fGkT
+eBlRie(*%%g=tE>mb\W4gtLK8f[eU&da6=cbK\]*qW\"_rqcEdrT!nhqX31fcd:%eeCE.&g"P39
+hX02AhV?l>g=b-0eC;pncHOJ[jRrNNoA\6Ed*pOtg"bETh]:P.g=b-0eC)[eb/V<5]XY>QY,\Cq
+U7\!GR@';*p662UR%'bEWj&tH`m<8okjS3@rVkXQJ,~>
+kPkecp?_#0o_SLarY#2,q"*q9hUTfb[&KX[J8f%%:\.0j92JYqBQJQQN0gEMa4TSGqYog\%fGkT
+eBlRie(*%%g=tE>mb\W4gtLK8f[eU&da6=cbK\]*qW\"_rqcEdrT!nhqX31fcd:%eeCE.&g"P39
+hX02AhV?l>g=b-0eC;pncHOJ[jRrNNoA\6Ed*pOtg"bETh]:P.g=b-0eC)[eb/V<5]XY>QY,\Cq
+U7\!GR@';*p662UR%'bEWj&tH`m<8okjS3@rVkXQJ,~>
+kPkecp?_#0o_SLarXf&*q"*q9hUTfb[&KX]MhZlRJ.R-UH?a[^JrH%n[`@%`o(r@Orsntsi7--#
+dF6Xsf\5*8hX985h;$`<g"=m+eC)^icHFJblh]lG"TJ8mqYfIS&GkhNda-:edaZguf\,!5gtqGU
+*o>],g=k64f$r3td*BkYdcC*#rU]$tcHt%jf\,'9oA:SEgtLH6f$r-obf[rB^V%(`Ycb"(UnXKP
+S!fY0Q1gFTQC+/7UoLZ.^;eLNhrsP%qYgELs*t~>
+k5PS_r;?Nmp\ts,r;--VlJpXIaM,![TU1[bAm%u-r([l1AT<3OL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+k5PS_r;?Nmp\ts,r;--VlJpXIaM,![TU1^lG]@S9r+Zj_Ed3(cL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+k5PS_r;?Nmp\u!-r;--VlJpXIaM,![TU1atL4b&-J,OiqI1LgZL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+%%EndData
+showpage
+%%Trailer
+end
+%%EOF
diff --git a/templates/Dutch-logo.png b/templates/Dutch-logo.png
new file mode 100755
index 00000000..5edcdfe5
--- /dev/null
+++ b/templates/Dutch-logo.png
Binary files differ
diff --git a/templates/Dutch-packing_list.html b/templates/Dutch-packing_list.html
new file mode 100755
index 00000000..aea6ba7b
--- /dev/null
+++ b/templates/Dutch-packing_list.html
@@ -0,0 +1,121 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr>
+ <td width=10>
+ </td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th colspan=2>
+ <h4 align=center>P A K B O N</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Factuurdatum</th><td width=10> </td><td><%invdate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Factuurnummer</th><td></td><td><%invnumber%></td></tr>
+ </tr>
+
+ <tr>
+ <td>
+ </td>
+ </tr>
+ </td>
+ </table>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Verzendadres:</th>
+ </tr>
+
+ <tr>
+ <td><%shiptoname%>
+ <br><%shiptoaddr1%>
+ <br><%shiptoaddr2%>
+ <br><%shiptoaddr3%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Artikelnummer</th>
+ <th align=left><font color=ffffff>Omschrijving</th>
+ <th><font color=ffffff>Aantal</th>
+ <th>&nbsp;</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>Opmerkingen</td>
+ <td><pre><%notes%></pre></td>
+<%end notes%>
+ <td align=right>
+ <%shippingpoint%>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+
diff --git a/templates/Dutch-packing_list.tex b/templates/Dutch-packing_list.tex
new file mode 100755
index 00000000..51aa1e87
--- /dev/null
+++ b/templates/Dutch-packing_list.tex
@@ -0,0 +1,114 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telefoon & <%tel%>\\
+ Fax & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%invnumber%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+<%pagebreak 65 27 37%>
+\end{tabular*}
+
+\newpage
+
+\markright{<%company%>\hfill <%invnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rll@{}}
+ \textbf{Nummer} & \textbf{Omschrijving} & \textbf{Aantal} &
+ \textbf{Eenheid} & \textbf{Bin} \\
+<%end pagebreak%>
+
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{2cm}
+
+<%shiptoname%>
+
+<%shiptoaddr1%>
+
+<%shiptoaddr2%>
+
+<%shiptoaddr3%>
+
+<%shiptoaddr4%>
+
+\vspace{3.5cm}
+
+\textbf{P A K B O N} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+
+\hfill
+\begin{tabular}[t]{l@{\hspace{0.3cm}}l}
+ \textbf{Datum} & <%invdate%> \\
+ \textbf{Faktuurnummer} & <%invnumber%> \\
+ \textbf{Klantnummer} & <%customer_id%>
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rll@{}}
+ \textbf{Nummer} & \textbf{Omschrijving} & \textbf{Aantal} &
+ \textbf{Eenheid} & \textbf{Bin} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+\vfill
+\centerline{\textbf{Dank voor uw gewaardeerde klandizie!}}
+
+\end{document}
+
diff --git a/templates/Dutch-pick_list.html b/templates/Dutch-pick_list.html
new file mode 100755
index 00000000..da8a3bdf
--- /dev/null
+++ b/templates/Dutch-pick_list.html
@@ -0,0 +1,153 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>P I C K &nbsp;&nbsp; L I S T</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th width=50% align=left><font color=ffffff>Ship To:</th>
+ <th width=50%>&nbsp;</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ </td>
+
+ <td>
+ <%if shiptocontact%>
+ <br>Attn: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=15% align=left>Invoice #</th>
+ <th width=15% align=left>Order #</th>
+ <th width=10% align=left>Date</th>
+ <th width=15% align=left nowrap>Contact</th>
+ <th width=15% align=left>Warehouse</th>
+ <th width=10% align=left>Shipping Point</th>
+ <th width=10% align=left>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%invnumber%>&nbsp;</td>
+ <td><%ordnumber%>&nbsp;</td>
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%transdate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+ <td><%warehouse%>&nbsp;</td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Pos</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qty</th>
+ <th><font color=ffffff>Ship</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Bin</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td align=right>[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</td>
+ <td><%unit%></td>
+ <td align=right><%bin%></td>
+ </tr>
+ <%end number%>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+</table>
+
diff --git a/templates/Dutch-pick_list.tex b/templates/Dutch-pick_list.tex
new file mode 100755
index 00000000..04953ce8
--- /dev/null
+++ b/templates/Dutch-pick_list.tex
@@ -0,0 +1,144 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}rlXrcll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} &
+ \textbf{Qty} & \textbf{Ship} & & \textbf{Bin} \\
+
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.5\textwidth}{
+ \textbf{Ship To}
+} \hfill
+
+\vspace{0.7cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.5\textwidth}{
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+}
+\parbox[t]{.4\textwidth}{
+ <%shiptocontact%>
+
+ <%if shiptophone%>
+ Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{P I C K} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{7}{|X}|} \hline
+ \textbf{Invoice \#} & \textbf{Order \#} & \textbf{Date} & \textbf{Contact}
+ & \textbf{Warehouse} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+ <%invnumber%> & <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%transdate%>
+ <%end shippingdate%>
+ & <%employee%>
+ <%if warehouse%>
+ & <%warehouse%>
+ <%end warehouse%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrcll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} &
+ \textbf{Qty} & \textbf{Ship} & & \textbf{Bin} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> &
+ <%qty%> & [\hspace{1cm}] & <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+}
+
+\end{document}
+
diff --git a/templates/Dutch-pos_invoice.txt b/templates/Dutch-pos_invoice.txt
new file mode 100755
index 00000000..77008066
--- /dev/null
+++ b/templates/Dutch-pos_invoice.txt
@@ -0,0 +1,50 @@
+<%company align=center width=40%>
+<%address align=center width=40%>
+
+Kassa: <%till align=left width=3%> Phone#: <%tel%>
+Kassier: <%employee%>
+Verk Nr/Datum: <%invnumber%> / <%invdate%>
+Afgedrukt: <%dateprinted%>
+
+ Hoeveelheid Omschrijving Bedrag
+<%foreach number%>
+<%qty align=right width=5%> <%description align=left width=24 offset=6%> <%linetotal align=right width=9%>
+ <%number%> @ <%sellprice%>/<%unit%>
+<%end number%>
+
+Aantal items: <%rowcount%>
+<%if taxincluded%>
+ ---------------
+ Bedrag : <%invtotal align=right width=9%>
+<%end taxincluded%>
+<%if not taxincluded%>
+ ------------
+ Subtotaal: <%subtotal align=right width=9%>
+<%end taxincluded%>
+<%foreach tax%>
+<%taxdescription align=right width=23%> @ <%taxrate align=right width=2%>%: <%tax align=right width=9%>
+<%end tax%>
+ Bedrag : <%invtotal align=right width=9%>
+<%foreach payment%>
+<%paymentaccount align=right width=29%>: <%payment align=right width=9%> <%currency%>
+<%end payment%>
+<%if change%>
+ Wisselgeld: <%change align=right width=9%>
+<%end change%>
+<%if total%>
+ Te betalen : <%total align=right width=9%>
+<%end total%>
+<%if discount%>
+
+<%discount%> % Discount applied
+<%end discount%>
+
+ Dank u en tot ziens!
+
+<%if taxincluded%>
+Belasting is in de prijs inbegrepen.
+<%end taxincluded%>
+
+
+
+
diff --git a/templates/Dutch-purchase_order.html b/templates/Dutch-purchase_order.html
new file mode 100755
index 00000000..2aafc469
--- /dev/null
+++ b/templates/Dutch-purchase_order.html
@@ -0,0 +1,190 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>I N K O O P&nbsp;&nbsp;B E S T E L L I N G</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Bestel Datum</th><td width=10>&nbsp;</td><td><%orddate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Lever datum</th><td width=10>&nbsp;</td><td><%reqdate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Bestel nummer</th><td>&nbsp;</td><td><%ordnumber%></td></tr>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+ </td>
+ </table>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>To:</th>
+ </tr>
+
+ <tr>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+<br><%address2%>
+<%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+<%country%>
+<%end country%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+<!-- <th align=right><font color=ffffff>No.</th> -->
+ <th align=left><font color=ffffff>Nummer</th>
+ <th align=left><font color=ffffff>Omschrijving</th>
+ <th><font color=ffffff>Aantal</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Prijs</th>
+ <th><font color=ffffff>Bedrag</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+<!-- <td align=right><%runningnumber%>.</td>
+adjust the colspan if you include this to shift subtotal one to the right
+-->
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=6><hr noshade></td>
+ </tr>
+
+ <tr>
+ <th colspan=4 align=right>Subtotaal</th>
+ <td colspan=2 align=right><%subtotal%></td>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=4 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+<%end tax%>
+
+ <tr>
+ <td colspan=2>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=2>Betalings termijn <b><%terms%></b> dagen</td>
+ <th colspan=2 align=right>Totaal</th>
+ <th colspan=2 align=right><%total%></th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>Notes</td>
+ <td><pre><%notes%></pre></td>
+<%end notes%>
+ <td align=right>
+ Alle prijzen in <b><%currency%></b>'s
+ <br><%shippingpoint%>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td>&nbsp;
+ </td>
+ <td width=150>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Dutch-purchase_order.tex b/templates/Dutch-purchase_order.tex
new file mode 100755
index 00000000..5ededcd3
--- /dev/null
+++ b/templates/Dutch-purchase_order.tex
@@ -0,0 +1,141 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telefoon & <%tel%>\\
+ Fax & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%ordnumber%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+<%pagebreak 65 27 37%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotaal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markright{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrr@{}}
+ \textbf{Bestel Nummer} & \textbf{Omschrijving} & \textbf{Aantal} &
+ \textbf{Eenheid} & \textbf{Prijs} & \textbf{Bedrag} \\
+ & carried forward from <%lastpage%> & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{2cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{3.5cm}
+
+\textbf{I N K O O P B E S T E L L I N G} \parbox{0.3cm}{\hfill} \textbf{O R D E R}
+\hfill
+\begin{tabular}[t]{l@{\hspace{0.3cm}}l}
+ \textbf{Datum} & <%orddate%> \\
+<%if reqdate%>
+ \textbf{Gewenste Leverdatum} & <%reqdate%> \\
+<%end reqdate%>
+ \textbf{Bestel Nummer} & <%ordnumber%>
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrr@{}}
+ \textbf{Nummer} & \textbf{Omschrijving} & \textbf{Aantal} &
+ \textbf{Eenheid} & \textbf{Prijs} & \textbf{Bedrag} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotaal} & \textbf{<%subtotal%>} \\
+<%foreach tax%>
+ <%taxdescription%> on <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ \textbf{Total} & \textbf{<%ordtotal%>}\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ Alle prijzen in \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+\end{document}
+
diff --git a/templates/Dutch-receipt.tex b/templates/Dutch-receipt.tex
new file mode 100755
index 00000000..6742b5b5
--- /dev/null
+++ b/templates/Dutch-receipt.tex
@@ -0,0 +1,75 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.4cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.0cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+
+\fontfamily{cmss}\fontsize{9pt}{9pt}\selectfont
+
+\parbox[t]{12cm}{
+ <%company%>
+
+ <%address%>}
+\hfill
+\parbox[t]{6cm}{\hfill <%source%>}
+
+\vspace*{0.6cm}
+
+<%text_amount%> \dotfill <%decimal%>/100 \makebox[0.5cm]{\hfill}
+
+\vspace{0.5cm}
+
+\hfill <%datepaid%> \makebox[2cm]{\hfill} <%amount%>
+
+\vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{2.8cm}
+
+<%company%>
+
+\vspace{0.5cm}
+
+<%name%> \hfill <%datepaid%> \hfill <%source%>
+
+\vspace{0.5cm}
+\begin{tabularx}{\textwidth}{lXrr@{}}
+\textbf{Invoice No.} & \textbf{Invoice Date}
+ & \textbf{Due} & \textbf{Applied} \\
+<%foreach invnumber%>
+<%invnumber%> & <%invdate%> \dotfill
+ & <%due%> & <%paid%> \\
+<%end invnumber%>
+\end{tabularx}
+
+\vfill
+
+\end{document}
+
diff --git a/templates/Dutch-request_quotation.html b/templates/Dutch-request_quotation.html
new file mode 100755
index 00000000..fa684866
--- /dev/null
+++ b/templates/Dutch-request_quotation.html
@@ -0,0 +1,202 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <td><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58>
+ </td>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>R E Q U E S T &nbsp;&nbsp; F O R &nbsp;&nbsp; Q U O T A T I O N</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>To:</th>
+ <th align=left width=50%><font color=ffffff>Ship To:</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+<br>
+<%if contact%>
+<br>Attn: <%contact%>
+<%end contact%>
+<%if vendorphone%>
+<br>Tel: <%vendorphone%>
+<%end vendorphone%>
+<%if vendorfax%>
+<br>Fax: <%vendorfax%>
+<%end vendorfax%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddr2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+<br>
+<%if shiptocontact%>
+<br>Attn: <%shiptocontact%>
+<%end shiptocontact%>
+<%if shiptophone%>
+<br>Tel: <%shiptophone%>
+<%end shiptophone%>
+<%if shiptofax%>
+<br>Fax: <%shiptofax%>
+<%end shiptofax%>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr><td>&nbsp;</td></tr>
+
+ <tr>
+ <td colspan=2>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left>RFQ #</th>
+ <th width=17% align=left>Date</th>
+ <th width=17% align=left>Required by</th>
+ <th width=17% align=left>Contact</th>
+ <th width=17% align=left>Shipping Point</th>
+ <th width=15% align=left>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%quonumber%></td>
+ <td><%quodate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height="10"></tr>
+
+ <tr>
+ <td>Please provide price and delivery time for the following items:</td>
+ </tr>
+
+ <tr height="10"></tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+<!-- <th align=right>No.</th> -->
+ <th align=left>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th>Qt'y</th>
+ <th>&nbsp;</th>
+ <th>Delivery</th>
+ <th>Unit Price</th>
+ <th>Extended</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+<!-- <td align=right><%runningnumber%>.</td>
+other per line item variables available <%reqdate%>
+adjust the colspan if you include this to shift subtotal one to the right
+-->
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=7><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+<%if notes%>
+ <tr valign=top>
+ <td>Notes</td>
+ <td><%notes%></td>
+ </tr>
+<%end notes%>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=70%>&nbsp;</td>
+
+ <td width=30%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Dutch-request_quotation.tex b/templates/Dutch-request_quotation.tex
new file mode 100755
index 00000000..49f1abe7
--- /dev/null
+++ b/templates/Dutch-request_quotation.tex
@@ -0,0 +1,175 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Extended} \\
+ & carried forward from <%lastpage%> & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.45\textwidth}{
+\textbf{To}
+\vspace{0.7cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if vendorphone%>
+Tel: <%vendorphone%>
+<%end vendorphone%>
+
+<%if vendorfax%>
+Fax: <%vendorfax%>
+<%end vendorfax%>
+
+<%email%>
+}
+\parbox[t]{.45\textwidth}{
+\textbf{Ship To}
+\vspace{0.7cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{R E Q U E S T for Q U O T A T I O N}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{RFQ \#} & \textbf{Date} & \textbf{Required by} & \textbf{Contact} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5ex]
+ \hline
+ <%quonumber%> & <%quodate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+Please provide price and delivery time for the following items:
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}lXrllrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} & &
+ \textbf{Delivery} & \textbf{Unit Price} & \textbf{Extended} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> & <%unit%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\hfill
+
+<%notes%>
+
+}
+
+\end{document}
+
diff --git a/templates/Dutch-sales_order.html b/templates/Dutch-sales_order.html
new file mode 100755
index 00000000..a94b4469
--- /dev/null
+++ b/templates/Dutch-sales_order.html
@@ -0,0 +1,216 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>V E R K O O P&nbsp;&nbsp;B E S T E L L I N G</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Bestel Datum</th><td width=10>&nbsp;</td><td><%orddate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Gewenste Leverdatum</th><td width=10>&nbsp;</td><td><%reqdate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Bestel Nummer</th><td>&nbsp;</td><td><%ordnumber%></td></tr>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+ </td>
+ </table>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Aan:</th>
+ <th align=left><font color=ffffff>Verzenden aan:</th>
+ </tr>
+
+ <tr>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+<br><%address2%>
+<%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+<%country%>
+<%end country%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+<br><%shiptoaddress2%>
+<%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+<%shiptocountry%>
+<%end shiptocountry%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+<!-- <th align=right><font color=ffffff>No.</th> -->
+ <th align=left><font color=ffffff>Nummer</th>
+ <th align=left><font color=ffffff>Omschrijving</th>
+ <th><font color=ffffff>Aantal</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Prijs</th>
+ <th><font color=ffffff>Korting</th>
+ <th><font color=ffffff>Bedrag</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+<!-- <td align=right><%runningnumber%>.</td>
+adjust the colspan if you include this to shift subtotal one to the right
+-->
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discount%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=7><hr noshade></td>
+ </tr>
+
+ <tr>
+<%if taxincluded%>
+ <th colspan=5 align=right>Totaal</th>
+ <td colspan=2 align=right><%ordtotal%></td>
+<%end taxincluded%>
+
+<%if not taxincluded%>
+ <th colspan=5 align=right>Subtotaal</th>
+ <td colspan=2 align=right><%subtotal%></td>
+<%end taxincluded%>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=5 align=right><%taxdescription%> over <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+<%end tax%>
+
+ <tr>
+ <td colspan=2>&nbsp;</td>
+ <td colspan=5><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=3>Betalingstermijn <b><%terms%></b> dagen</td>
+ <th colspan=2 align=right>Totaal</th>
+ <th colspan=2 align=right><%ordtotal%></th>
+ </tr>
+<%if taxincluded%>
+ <tr>
+ <td colspan=3>Totaal bedrag is inclusief BTW.</td>
+ </tr>
+<%end taxincluded%>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>Opmerkingen:</td>
+ <td><pre><%notes%></pre></td>
+<%end notes%>
+ <td align=right>
+ Alle prijzen in <b><%currency%></b>'s
+ <br><%shippingpoint%>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td>&nbsp;
+ </td>
+ <td width=150>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Dutch-sales_order.tex b/templates/Dutch-sales_order.tex
new file mode 100755
index 00000000..09758950
--- /dev/null
+++ b/templates/Dutch-sales_order.tex
@@ -0,0 +1,141 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telefoon & <%tel%>\\
+ Fax & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%ordnumber%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+<%pagebreak 65 27 48%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotaal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markright{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Nummer} & \textbf{Omschrijving} & \textbf{Aantal} &
+ \textbf{Eenheid} & \textbf{Prijs} & \textbf{Korting} & \textbf{Bedrag} \\
+ & Transport van <%lastpage%> & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{2cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{3.5cm}
+
+\textbf{V E R K O O P} \parbox{0.3cm}{\hfill} \textbf{B E S T E L L I N G}
+\hfill
+\begin{tabular}[t]{l@{\hspace{0.3cm}}l}
+ \textbf{Bestel Datum} & <%orddate%> \\
+<%if reqdate%>
+ \textbf{Gewenste Leverdatum} & <%reqdate%> \\
+<%end reqdate%>
+ \textbf{Bestel Nummer} & <%ordnumber%>
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Nummer} & \textbf{Omschrijving} & \textbf{Aantal} &
+ \textbf{Eenheid} & \textbf{Prijs} & \textbf{Korting} & \textbf{Bedrag} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%discount%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotaal} & \textbf{<%subtotal%>} \\
+<%foreach tax%>
+ <%taxdescription%> over <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ \textbf{Totaal} & \textbf{<%ordtotal%>}\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ Alle prijzen in \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+\end{document}
+
diff --git a/templates/Dutch-sales_quotation.html b/templates/Dutch-sales_quotation.html
new file mode 100755
index 00000000..0abf5fc7
--- /dev/null
+++ b/templates/Dutch-sales_quotation.html
@@ -0,0 +1,225 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr valign=top>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+<tr><td colspan=3>&nbsp;</td></tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>Q U O T A T I O N</h4>
+ </th>
+ </tr>
+
+ </table>
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td>
+ <table width=100%>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+
+ <br>
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr><td>&nbsp;</td></tr>
+
+ <tr>
+ <td colspan=2>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Number</th>
+ <th width=17% align=left>Date</th>
+ <th width=17% align=left>Valid until</th>
+ <th width=17% align=left nowrap>Contact</th>
+ <th width=17% align=left nowrap>Shipping Point</th>
+ <th width=15% align=left nowrap>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%quonumber%></td>
+ <td><%quodate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>No.</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qt'y</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Price</th>
+ <th><font color=ffffff>Disc %</th>
+ <th><font color=ffffff>Amount</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%></td>
+
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discountrate%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=8><hr noshade></td>
+ </tr>
+
+ <tr>
+<%if taxincluded%>
+ <th colspan=6 align=right>Total</th>
+ <td colspan=2 align=right><%invtotal%></td>
+<%end taxincluded%>
+
+<%if not taxincluded%>
+ <th colspan=6 align=right>Subtotal</th>
+ <td colspan=2 align=right><%subtotal%></td>
+<%end taxincluded%>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=6 align=right><%taxdescription%> on <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+<%end tax%>
+
+ <tr>
+ <td colspan=4>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=4>&nbsp;
+<%if terms%>
+ Terms Net <b><%terms%></b> days
+<%end terms%>
+ </td>
+ <th colspan=2 align=right>Total</th>
+ <th colspan=2 align=right><%quototal%></th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>Notes</td>
+ <td><%notes%></td>
+<%end notes%>
+ <td align=right>
+ All prices in <b><%currency%></b> Funds
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=60%><font size=-3>
+ Special order items are subject to a 10% cancellation fee.
+ </font>
+ </td>
+ <td width=40%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Dutch-sales_quotation.tex b/templates/Dutch-sales_quotation.tex
new file mode 100755
index 00000000..25792c6b
--- /dev/null
+++ b/templates/Dutch-sales_quotation.tex
@@ -0,0 +1,157 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 48%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%quonumber%>}{<%company%>\hfill <%quonumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+ & carried forward from <%lastpage%> & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.45\textwidth}{
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%contact%>
+
+\vspace{0.2cm}
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+
+\vspace{1cm}
+
+\textbf{Q U O T A T I O N}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Quotation \#} & \textbf{Date} & \textbf{Valid until} & \textbf{Contact} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5ex]
+ \hline
+ <%quonumber%> & <%quodate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%discountrate%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ Subtotal & <%subtotal%> \\
+<%foreach tax%>
+ <%taxdescription%> on <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ Total & <%quototal%>\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ All prices in \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%notes%>
+
+}
+
+\vfill
+
+\end{document}
+
+
diff --git a/templates/Dutch-statement.html b/templates/Dutch-statement.html
new file mode 100755
index 00000000..9c9b7113
--- /dev/null
+++ b/templates/Dutch-statement.html
@@ -0,0 +1,125 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+ <tr>
+ <th colspan=3><h4>O P E N S T A A N D E &nbsp;&nbsp;F A C T U R E N</h4></th>
+ </tr>
+ <tr>
+ <td colspan=3 align=right><%statementdate%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+<br><%address2%>
+<%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+<%country%>
+<%end country%>
+ <br>
+<%if customerphone%>
+ <br>Tel: <%customerphone%>
+<%end customerphone%>
+<%if customerfax%>
+ <br>Fax: <%customerfax%>
+<%end customerfax%>
+<%if email%>
+ <br><%email%>
+<%end email%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr height=10></tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr>
+ <th align=left>Factuur #</th>
+ <th width=15%>Datum</th>
+ <th width=15%>Vervaldatum</th>
+ <th width=10%>Huidig</th>
+ <th width=10%>30</th>
+ <th width=10%>60</th>
+ <th width=10%>90+</th>
+ </tr>
+<%foreach invnumber%>
+ <tr>
+ <td><%invnumber%></td>
+ <td><%invdate%></td>
+ <td><%duedate%></td>
+ <td align=right><%c0%></td>
+ <td align=right><%c30%></td>
+ <td align=right><%c60%></td>
+ <td align=right><%c90%></td>
+ </tr>
+<%end invnumber%>
+ <tr>
+ <td colspan=7><hr size=1></td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <th align=right><%c0total%></td>
+ <th align=right><%c30total%></td>
+ <th align=right><%c60total%></td>
+ <th align=right><%c90total%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr height=10></tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td align=right>
+ <table width=50%>
+ <tr>
+ <th>Totaal Openstaand</th>
+ <th align=right><%total%></th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td><hr noshade></td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>Maak de betalingen over aan<b><%company%></b>.
+ </td>
+ </tr>
+ <tr height=20></tr>
+</table>
+
diff --git a/templates/Dutch-statement.tex b/templates/Dutch-statement.tex
new file mode 100755
index 00000000..eaedd20e
--- /dev/null
+++ b/templates/Dutch-statement.tex
@@ -0,0 +1,111 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rrr@{}}
+ Tel & <%tel%>\\
+ Fax & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%statementdate%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{1.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{10.5cm}{
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+}
+\parbox[t]{7.5cm}{
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{O P E N S T A A N D E F A C T U R E N} \hfill \textbf{<%statementdate%>}
+
+\vspace{2cm}
+
+\begin{tabular*}{\textwidth}{@{}l@{\extracolsep\fill}ccrrrr@{}}
+ \textbf{Factuur \#} & \textbf{Datum} & \textbf{Vervaldatum} &
+ \textbf{Huidig} & \textbf{30} & \textbf{60} & \textbf{90+} \\
+<%foreach invnumber%>
+ <%invnumber%> & <%invdate%> & <%duedate%> &
+ <%c0%> & <%c30%> & <%c60%> & <%c90%> \\
+<%end invnumber%>
+\textbf{Subtotal} & & & <%c0total%> & <%c30total%> & <%c60total%> & <%c90total%>
+\end{tabular*}
+\rule{\textwidth}{1pt}
+
+\vspace{0.5cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Totaal openstaand} & <%total%>
+\end{tabularx}
+
+\vfill
+
+Maak U betalingen over aan <%company%>
+
+\end{document}
+
diff --git a/templates/Dutch-timecard.html b/templates/Dutch-timecard.html
new file mode 100755
index 00000000..361b8254
--- /dev/null
+++ b/templates/Dutch-timecard.html
@@ -0,0 +1,146 @@
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=sql-ledger.png border=0 width=84 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>T I M E &nbsp;&nbsp; C A R D</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=left>Employee</th>
+ <td><%employee%></td>
+ </tr>
+ <tr>
+ <th align=left>ID</th>
+ <td><%employee_id%></td>
+ </tr>
+ </table>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Card ID</th>
+ <td><%id%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Date Worked</th>
+ <td><%transdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Time In</th>
+ <td><%checkedin%></td>
+ </tr>
+ <tr>
+ <th align=left>Time Out</th>
+ <td><%checkedout%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Hours Worked</th>
+ <td><%qty%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=bottom>
+ <td>
+ <table>
+ <tr valign=top>
+ <th align=left>Project/Job #</th>
+ <td><%projectnumber%></td>
+ </tr>
+ <tr>
+ <th align=left>Description</th>
+ <td><%projectdescription%></td>
+ </tr>
+ <tr valign=top>
+ <th align=left>Labor/Service Code</th>
+ <td><%partnumber%></td>
+ </tr>
+ <tr>
+ <th align=left>Description</th>
+ <td><%description%></td>
+ </tr>
+ </table>
+ </td>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Unit Rate</th>
+ <td><%sellprice%></td>
+ </tr>
+ <tr>
+ <th align=right>Total</th>
+ <td><%total%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+<%if notes%>
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%notes%>
+ </td>
+ </tr>
+<%end notes%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Dutch-timecard.tex b/templates/Dutch-timecard.tex
new file mode 100755
index 00000000..49a30c54
--- /dev/null
+++ b/templates/Dutch-timecard.tex
@@ -0,0 +1,71 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-1cm,left=2cm,right=1cm]{geometry}
+\usepackage{graphicx}
+\setlength{\parindent}{0pt}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Tel: & <%tel%>\\
+ Fax: & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+\centerline{\textbf{T I M E}\hspace{0.5cm}\textbf{C A R D}}
+
+\vspace*{0.5cm}
+
+\begin{tabular}[t]{ll}
+ \textbf{Employee} & <%employee%> \\
+ \textbf{ID} & <%employee_id%> \\
+\end{tabular}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Card ID} & <%id%> \\
+ \textbf{Date Worked} & <%transdate%> \\
+ \textbf{Time In} & <%checkedin%> \\
+ \textbf{Time Out} & <%checkedout%> \\
+ \textbf{Hours Worked} & <%qty%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular}[b]{ll}
+ \textbf{Project/Job \#} & <%projectnumber%> \\
+ \textbf{Description} & <%projectdescription%> \\
+ \textbf{Labor/Service Code} & <%partnumber%> \\
+ \textbf{Description} & <%description%> \\
+\end{tabular}
+\hfill
+\begin{tabular}[b]{lr}
+ \textbf{Unit Rate} & <%sellprice%> \\
+ \textbf{Total} & <%total%> \\
+\end{tabular}
+
+\vspace{0.3cm}
+
+<%notes%>
+
+\end{document}
+
+
diff --git a/templates/Dutch-work_order.html b/templates/Dutch-work_order.html
new file mode 100755
index 00000000..d09a8ada
--- /dev/null
+++ b/templates/Dutch-work_order.html
@@ -0,0 +1,174 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=bottom>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>W E R K &nbsp;&nbsp; B O N</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>Voor</th>
+ <th align=left width=50%><font color=ffffff>Verzendadres</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%>
+ <br><%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+ <%if contact%>
+ <br>t.a.v. <%contact%>
+ <%end contact%>
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%>
+ <br><%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ <br>
+ <%if shiptocontact%>
+ <br><%shiptocontact%>
+ <%end shiptocontact%>
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+ <%if shiptoemail%>
+ <br><%shiptoemail%>
+ <%end shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Order Nr</th>
+ <th width=17% align=left>Order Datum</th>
+ <th width=17% align=left>Gewenste Leverdatum</th>
+ <th width=17% align=left nowrap>Verkoper</th>
+ <th width=17% align=left nowrap>Verzenden vanaf</th>
+ <th width=15% align=left nowrap>Verzenden via</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%></td>
+ <td><%orddate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>No.</th>
+ <th align=left><font color=ffffff>Nummer</th>
+ <th align=left><font color=ffffff>Omschrijving</th>
+ <th><font color=ffffff>Hoeveelheid</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Serie Nr.</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%>.</td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td><%serialnumber%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <td colspan=6><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <%if notes%>
+ <td><%notes%></td>
+ <%end notes%>
+ </tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Dutch-work_order.tex b/templates/Dutch-work_order.tex
new file mode 100755
index 00000000..9b2f6f95
--- /dev/null
+++ b/templates/Dutch-work_order.tex
@@ -0,0 +1,177 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}rlXrll@{}}
+ \textbf{No.} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ & \textbf{Serial Number} \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.45\textwidth}{
+\textbf{To}
+\vspace{0.7cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\parbox[t]{.45\textwidth}{
+\textbf{Ship To}
+\vspace{0.7cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{W O R K} \parbox{0.3cm}{\hfill} \textbf{O R D E R}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Order Date} & \textbf{Required by} & \textbf{Salesperson} & \textbf{Shipping Point} & \textbf{Ship Via} \\ [0.5em]
+ \hline
+ <%ordnumber%> & <%orddate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrll@{}}
+ \textbf{No.} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ & \textbf{Serial Number} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%serialnumber%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+\vfill
+
+\vspace{1cm}
+
+\rule{\textwidth}{0.5pt}
+
+\end{document}
+
+
+
+
+
+
diff --git a/templates/Estonian-ap_transaction.html b/templates/Estonian-ap_transaction.html
new file mode 100755
index 00000000..f7bc5ef1
--- /dev/null
+++ b/templates/Estonian-ap_transaction.html
@@ -0,0 +1,232 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>OstuReskontro - T E H I N G</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if vendorphone%>
+ <br>Tel: <%vendorphone%>
+ <%end vendorphone%>
+
+ <%if vendorfax%>
+ <br>Faks: <%vendorfax%>
+ <%end vendorfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+
+ <%if vendortaxnumber%>
+ <p>KÀibemaksukohuslane NR: <%vendortaxnumber%>
+ <%end vendortaxnumber%>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Arve NR. #</th>
+ <td><%invnumber%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>KuupÀev</th>
+ <td><%invdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Tasuda</th>
+ <td><%duedate%></td>
+ </tr>
+ <%if ponumber%>
+ <tr>
+ <th align=left>Hanketellimus NR. #</th>
+ <td><%ponumber%>&nbsp;</td>
+ </tr>
+ <%end ponumber%>
+ <%if ordnumber%>
+ <tr>
+ <th align=left>Tellimus NR. #</th>
+ <td><%ordnumber%>&nbsp;</td>
+ </tr>
+ <%end ordnumber%>
+ <tr>
+ <th align=left nowrap>Töötaja</th>
+ <td><%employee%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <%foreach account%>
+ <tr valign=top>
+ <td><%accno%></td>
+ <td><%account%></td>
+ <td width=10> </td>
+ <td align=right><%amount%></td>
+ <td width=10> </td>
+ <td><%description%></td>
+ <td width=10> </td>
+ <td><%projectnumber%></td>
+ </tr>
+ <%end account%>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=2 align=right>Kokku</th>
+ <td width=10> </td>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Vahesumma</th>
+ <td width=10> </td>
+ <td align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=2 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td width=10> </td>
+ <td align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if not taxincluded%>
+ <tr>
+ <th colspan=2 align=right>Kokku</th>
+ <td width=10> </td>
+ <td align=right><%invtotal%></td>
+ </tr>
+ <%end taxincluded%>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%text_amount%> ***** <%decimal%>/100 <%currency%>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%notes%>
+ </td>
+ </tr>
+
+ <%if paid_1%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <tr>
+ <th>Maksed</th>
+ </tr>
+
+ <tr>
+ <td>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th>KuupÀev</th>
+ <th>&nbsp;</th>
+ <th>Alus</th>
+ <th>Memo</th>
+ <th>Summa</th>
+ </tr>
+ <%end paid_1%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td><%paymentmemo%></td>
+ <td align=right><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid_1%>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <%end paid_1%>
+
+ <tr height=10></tr>
+
+ <%if taxincluded%>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <th colspan=3 align=left><font size=-2>Hinnad sisaldavad kÀibemaksu.</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
+
+
+
+
+
diff --git a/templates/Estonian-ap_transaction.tex b/templates/Estonian-ap_transaction.tex
new file mode 100755
index 00000000..5cd134cc
--- /dev/null
+++ b/templates/Estonian-ap_transaction.tex
@@ -0,0 +1,111 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+\setlength{\parindent}{0pt}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+\centerline{\textbf{A P} \hspace{0.3cm} \textbf{T R A N S A C T I O N}}
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state>
+\hspace{-0.1cm}, <%state%>
+<%end state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if vendorphone%>
+Tel: <%vendorphone%>
+<%end vendorphone%>
+
+<%if vendorfax%>
+Fax: <%vendorfax%>
+<%end vendorfax%>
+
+<%email%>
+
+<%if vendortaxnumber%>
+Tax Number: <%vendortaxnumber%>
+<%end vendortaxnumber%>
+}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Invoice \#} & <%invnumber%> \\
+ \textbf{Date} & <%invdate%> \\
+ \textbf{Due} & <%duedate%> \\
+ <%if ponumber%>
+ \textbf{PO \#} & <%ponumber%> \\
+ <%end ponumber%>
+ <%if ordnumber%>
+ \textbf{Order \#} & <%ordnumber%> \\
+ <%end ordnumber%>
+ \textbf{Employee} & <%employee%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}[t]{@{}llrX@{\hspace{1cm}}l@{}}
+<%foreach amount%>
+ <%accno%> & <%account%> & <%amount%> & <%description%> & <%projectnumber%> \\
+<%end amount%>
+
+ \multicolumn{2}{r}{\textbf{Subtotal}} & <%subtotal%> & \\
+<%foreach tax%>
+ \multicolumn{2}{r}{\textbf{<%taxdescription%> @ <%taxrate%> \%}} & <%tax%> & \\
+<%end tax%>
+
+ \multicolumn{2}{r}{\textbf{Total}} & <%invtotal%> & \\
+
+\end{tabularx}
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100 <%currency%>
+
+<%if notes%>
+\vspace{0.3cm}
+<%notes%>
+<%end notes%>
+
+\vspace{0.3cm}
+
+<%if paid_1%>
+\begin{tabular}{@{}llllr@{}}
+ \multicolumn{5}{c}{\textbf{Payments}} \\
+ \hline
+ \textbf{Date} & & \textbf{Source} & \textbf{Memo} & \textbf{Amount} \\
+<%end paid_1%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%paymentmemo%> & <%payment%> \\
+<%end payment%>
+<%if paid_1%>
+\end{tabular}
+<%end paid_1%>
+
+\end{document}
+
diff --git a/templates/Estonian-ar_transaction.html b/templates/Estonian-ar_transaction.html
new file mode 100755
index 00000000..f3cd7909
--- /dev/null
+++ b/templates/Estonian-ar_transaction.html
@@ -0,0 +1,239 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>MÌÌgiReskontro - T E H I N G</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Faks: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+
+ <%if customertaxnumber%>
+ <br>KÀibemaksukohuslane : <%customertaxnumber%>
+ <%end customertaxnumber%>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Arve #</th>
+ <td><%invnumber%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>KuupÀev</th>
+ <td><%invdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Maksta olev</th>
+ <td><%duedate%></td>
+ </tr>
+ <%if ponumber%>
+ <tr>
+ <th align=left>PO #</th>
+ <td><%ponumber%>&nbsp;</td>
+ </tr>
+ <%end ponumber%>
+ <%if ordnumber%>
+ <tr>
+ <th align=left>Tellimus #</th>
+ <td><%ordnumber%>&nbsp;</td>
+ </tr>
+ <%end ordnumber%>
+ <tr>
+ <th align=left nowrap>MÌÌja</th>
+ <td><%employee%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <%foreach account%>
+ <tr valign=top>
+ <td><%accno%></td>
+ <td><%account%></td>
+ <td width=10> </td>
+ <td align=right><%amount%></td>
+ <td width=10> </td>
+ <td><%description%></td>
+ <td width=10> </td>
+ <td><%projectnumber%></td>
+ </tr>
+ <%end account%>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=2 align=right>Kokku</th>
+ <td width=10> </td>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Vahesumma</th>
+ <td width=10> </td>
+ <td align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=2 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td width=10> </td>
+ <td align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if not taxincluded%>
+ <tr>
+ <th colspan=2 align=right>Kokku</th>
+ <td width=10> </td>
+ <td align=right><%invtotal%></td>
+ </tr>
+ <%end taxincluded%>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%text_amount%> ***** <%decimal%>/100 <%currency%>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%notes%>
+ </td>
+ </tr>
+
+ <%if paid_1%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <tr>
+ <th>Maksed</th>
+ </tr>
+
+ <tr>
+ <td>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th>KuupÀev</th>
+ <th>&nbsp;</th>
+ <th>Alus</th>
+ <th>Summa</th>
+ </tr>
+ <%end paid_1%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td align=right><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid_1%>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <%end paid_1%>
+
+ <tr height=10></tr>
+
+ <%foreach tax%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <th colspan=9 align=left><font size=-2><%taxdescription%> KÀibemaksukohuslase NR: <%taxnumber%></th>
+ </tr>
+ <%end tax%>
+
+ <%if taxincluded%>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <th colspan=3 align=left><font size=-2>Summad sisaldavad kÀibemaksu.</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
+
+
+
+
+
+
diff --git a/templates/Estonian-ar_transaction.tex b/templates/Estonian-ar_transaction.tex
new file mode 100755
index 00000000..1c3c44f3
--- /dev/null
+++ b/templates/Estonian-ar_transaction.tex
@@ -0,0 +1,118 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+\setlength{\parindent}{0pt}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+\centerline{\textbf{A R} \hspace{0.3cm} \textbf{T R A N S A C T I O N}}
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+
+<%if customertaxnumber%>
+Tax Number: <%customertaxnumber%>
+<%end customertaxnumber%>
+}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Invoice \#} & <%invnumber%> \\
+ \textbf{Date} & <%invdate%> \\
+ \textbf{Due} & <%duedate%> \\
+ <%if ponumber%>
+ \textbf{PO \#} & <%ponumber%> \\
+ <%end ponumber%>
+ <%if ordnumber%>
+ \textbf{Order \#} & <%ordnumber%> \\
+ <%end ordnumber%>
+ \textbf{Employee} & <%employee%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}[t]{@{}llrX@{\hspace{1cm}}l@{}}
+<%foreach amount%>
+ <%accno%> & <%account%> & <%amount%> & <%description%> & <%projectnumber%> \\
+<%end amount%>
+
+ \multicolumn{2}{r}{\textbf{Subtotal}} & <%subtotal%> & \\
+<%foreach tax%>
+ \multicolumn{2}{r}{\textbf{<%taxdescription%> @ <%taxrate%> \%}} & <%tax%> & \\
+<%end tax%>
+
+ \multicolumn{2}{r}{\textbf{Total}} & <%invtotal%> & \\
+
+\end{tabularx}
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100 <%currency%>
+
+<%if notes%>
+\vspace{0.3cm}
+<%notes%>
+<%end notes%>
+
+\vspace{0.3cm}
+
+<%if paid_1%>
+\begin{tabular}{@{}lllr@{}}
+ \multicolumn{5}{c}{\textbf{Payments}} \\
+ \hline
+ \textbf{Date} & & \textbf{Source} & \textbf{Amount} \\
+<%end paid_1%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%payment%> \\
+<%end payment%>
+<%if paid_1%>
+\end{tabular}
+<%end paid_1%>
+
+\vspace{0.5cm}
+
+<%foreach tax%>
+\textbf{\scriptsize <%taxdescription%> Registration <%taxnumber%>} \\
+<%end tax%>
+
+\end{document}
+
diff --git a/templates/Estonian-balance_sheet.html b/templates/Estonian-balance_sheet.html
new file mode 100755
index 00000000..cef8f9a7
--- /dev/null
+++ b/templates/Estonian-balance_sheet.html
@@ -0,0 +1,110 @@
+
+<body>
+
+<h2 align=center>
+<%company%>
+<br><%address%>
+
+<p>BILANSIARUANNE
+<br>Perioodil: <%this_period%>
+</h2>
+
+<%if department%>
+<h4>Osakond: <%department%></h4>
+<%end department%>
+
+<table border=0>
+<tr>
+ <th align=left width=400 colspan=2>AKTIVA<br><hr align=left width=250 size=5 noshade></th>
+ <th><%this_period%></th>
+ <th><%last_period%></th>
+</tr>
+
+<%foreach asset_account%>
+<tr>
+ <td> </td>
+ <td><%asset_account%></td>
+ <td align=right><%asset_this_period%></td>
+ <td align=right><%asset_last_period%></td>
+</tr>
+<%end asset_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>AKTIVA KOKKU</th>
+ <td align=right><%total_assets_this_period%><hr noshade size=2></td>
+ <td align=right><%total_assets_last_period%><hr noshade size=2></td>
+</tr>
+
+<tr>
+ <th align=left colspan=4>PASSIVA<b><hr align=left width=250 size=5 noshade></th>
+</tr>
+
+<%foreach liability_account%>
+<tr>
+ <td></td>
+ <td><%liability_account%></td>
+ <td align=right><%liability_this_period%></td>
+ <td align=right><%liability_last_period%></td>
+</tr>
+<%end liability_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td></td>
+ <th align=left>PASSIVA KOKKU</th>
+ <td align=right><%total_liabilities_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_liabilities_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr>
+ <th align=left colspan=4>AKTSIAKAPITAL<br><hr align=left width=250 size=5 noshade></th>
+</tr>
+
+<%foreach equity_account%>
+<tr>
+ <td></td>
+ <td><%equity_account%></td>
+ <td align=right><%equity_this_period%></td>
+ <td align=right><%equity_last_period%></td>
+</tr>
+<%end equity_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td></td>
+ <th align=left>KOKKU AKTSIAKAPITAL</th>
+ <td align=right><%total_equity_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_equity_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>KOKKU PASSIVA JA AKTSIAKAPITAL</th>
+ <td align=right><%total_this_period%><br><hr noshade size=2></td>
+ <td align=right><%total_last_period%><br><hr noshade size=2></td>
+</tr>
+</table>
+
+</body>
+</html>
+
+
+
+
+
+
diff --git a/templates/Estonian-bin_list.html b/templates/Estonian-bin_list.html
new file mode 100755
index 00000000..b9de9c58
--- /dev/null
+++ b/templates/Estonian-bin_list.html
@@ -0,0 +1,188 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>P A K EN D I &nbsp;&nbsp; S A A T E L E H T</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% cellspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>Saatja</th>
+ <th align=left width=50%><font color=ffffff>Tarneaadress</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br>Kontaktisik: <%contact%>
+ <%end contact%>
+
+ <%if vendorphone%>
+ <br>Tel: <%vendorphone%>
+ <%end vendorphone%>
+
+ <%if vendorfax%>
+ <br>Fax: <%vendorfax%>
+ <%end vendorfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%>
+ <%if shiptostate%>
+ , <%shiptostate%>
+ <%end shiptostate%>
+ <%shiptozipcode%>
+ <%if shiptocountry%>
+ <%shiptocountry%>
+ <%end shiptocountry%>
+
+ <br>
+ <%if shiptocontact%>
+ <br>Kontaktisik: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Faks: <%shiptofax%>
+ <%end shiptofax%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Tellimus #</th>
+ <th width=17% align=left nowrap>KuupÀev</th>
+ <th width=17% align=left nowrap>Kontakt</th>
+ <%if warehouse%>
+ <th width=17% align=left nowrap>Kaubaladu</th>
+ <%end warehouse%>
+ <th width=17% align=left>Tarneaadress</th>
+ <th width=15% align=left>Tarneviis</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%>&nbsp;</td>
+
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%orddate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+
+ <%if warehouse%>
+ <td><%warehouse%></td>
+ <%end warehouse%>
+
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>AR.</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Kirjeldus</th>
+ <th><font color=ffffff>Seerianumber</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Kokku</th>
+ <th><font color=ffffff>Saadetud</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Pakend</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%></td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td><%serialnumber%></td>
+ <td><%deliverydate%></td>
+ <td align=right><%qty%></td>
+ <td align=right><%ship%></td>
+ <td><%unit%></td>
+ <td><%bin%></td>
+ </tr>
+ <%end number%>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+</table>
+
+</body>
+</html>
+
+
+
+
+
+
+
+
+
+
diff --git a/templates/Estonian-bin_list.tex b/templates/Estonian-bin_list.tex
new file mode 100755
index 00000000..1bc85d66
--- /dev/null
+++ b/templates/Estonian-bin_list.tex
@@ -0,0 +1,114 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrll@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Recd} & & \textbf{Bin} \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+\textbf{From}
+\vspace{0.3cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+}
+\parbox[t]{.5\textwidth}{
+\textbf{Ship To}
+\vspace{0.3cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{B I N} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Date} & \textbf{Contact}
+ <%if warehouse%>
+ & \textbf{Warehouse}
+ <%end warehouse%>
+ & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+
+ <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%orddate%>
+ <%end shippingdate%>
+ & <%employee%>
+ <%if warehouse%>
+ & <%warehouse%>
+ <%end warehouse%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrll@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Recd} & & \textbf{Bin} \\
+
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%serialnumber%> &
+ <%deliverydate%> & <%qty%> & <%ship%> & <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabularx}
+
+
+\rule{\textwidth}{2pt}
+
+\end{document}
+
diff --git a/templates/Estonian-check.tex b/templates/Estonian-check.tex
new file mode 100755
index 00000000..908f0e79
--- /dev/null
+++ b/templates/Estonian-check.tex
@@ -0,0 +1,77 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{9pt}{9pt}\selectfont
+
+\parbox[t]{12cm}{
+ <%company%>
+
+ <%address%>}
+\hfill
+\parbox[t]{6cm}{\hfill <%source%>}
+
+\vspace*{0.6cm}
+
+<%text_amount%> \dotfill <%decimal%>/100 \makebox[0.5cm]{\hfill}
+
+\vspace{0.5cm}
+
+\hfill <%datepaid%> \makebox[2cm]{\hfill} <%amount%>
+
+% different date format for datepaid
+% <%DD%><%MM%><%YYYY%>
+
+\vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{1.8cm}
+
+<%memo%>
+
+\vspace{0.8cm}
+
+<%company%>
+
+\vspace{0.5cm}
+
+<%name%> \hfill <%datepaid%> \hfill <%source%>
+
+\vspace{0.5cm}
+\begin{tabularx}{\textwidth}{lXrr@{}}
+\textbf{Invoice \#} & \textbf{Invoice Date}
+ & \textbf{Amount Due} & \textbf{Applied} \\
+<%foreach invnumber%>
+<%invnumber%> & <%invdate%> \dotfill
+ & <%due%> & <%paid%> \\
+<%end invnumber%>
+\end{tabularx}
+
+\vspace{1cm}
+
+<%memo%>
+
+\vfill
+
+\end{document}
+
diff --git a/templates/Estonian-income_statement.html b/templates/Estonian-income_statement.html
new file mode 100755
index 00000000..c12e69da
--- /dev/null
+++ b/templates/Estonian-income_statement.html
@@ -0,0 +1,84 @@
+
+<body>
+
+<h2 align=center>
+<%company%>
+<br><%address%>
+
+<p>KASUMIARUANNE
+<br><%period%>
+</h2>
+
+<%if department%>
+<h4>Osakond: <%department%></h4>
+<%end department%>
+
+<%if projectnumber%>
+<h4>Projekti Number: <%projectnumber%></h4>
+<%end projectnumber%>
+
+<table width=100% border=0>
+<tr>
+ <th width=400 align=left colspan=2>TULUD<br><hr width=300 size=5 align=left noshade></th>
+ <th><%this_period%></th>
+ <th><%last_period%></th>
+</tr>
+
+<%foreach income_account%>
+<tr>
+ <td width=4> </td>
+ <td><%income_account%></td>
+ <td align=right><%income_this_period%></td>
+ <td align=right><%income_last_period%></td>
+</tr>
+<%end income_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td> </td>
+ <th align=left>TULUD KOKKU</th>
+ <td align=right><%total_income_this_period%><hr noshade size=2></td>
+ <td align=right><%total_income_last_period%><hr noshade size=2></td>
+</tr>
+
+<tr>
+ <th align=left colspan=2>KULUD<br><hr width=300 size=5 align=left noshade></th>
+</tr>
+
+<%foreach expense_account%>
+<tr>
+ <td> </td>
+ <td><%expense_account%></td>
+ <td align=right><%expenses_this_period%></td>
+ <td align=right><%expenses_last_period%></td>
+</tr>
+<%end expense_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td> </td>
+ <th align=left>KULUD KOKKU</th>
+ <td align=right><%total_expenses_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_expenses_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>KASUM / (KAHJUM)</th>
+ <td align=right><%total_this_period%><br><hr noshade size=2></td>
+ <td align=right><%total_last_period%><br><hr noshade size=2></td>
+</tr>
+
+</table>
+
+</body>
+</html> \ No newline at end of file
diff --git a/templates/Estonian-invoice.html b/templates/Estonian-invoice.html
new file mode 100755
index 00000000..ce7b1130
--- /dev/null
+++ b/templates/Estonian-invoice.html
@@ -0,0 +1,328 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10> </td>
+
+ <th colspan=3>
+ <h4>A R V E</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td> </td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>Arve Aadress</th>
+ <th align=left width=50%><font color=ffffff>Tarneaadress</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Faks: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%>
+ <%if shiptostate%>
+ , <%shiptostate%>
+ <%end shiptostate%>
+ <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ <br>
+
+ <%if shiptocontact%>
+ <br><%shiptocontact%>
+ <br>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Faks: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%if shiptoemail%>
+ <br><%shiptoemail%>
+ <%end shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td> </td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=14% align=left nowrap>Arve NR.</th>
+ <th width=14% align=left nowrap>KuupÀev</th>
+ <th width=14% align=left nowrap>MaksetÀhtaeg</th>
+ <th width=14% align=left>Tellimus NR.</th>
+ <th width=14% align=left nowrap>MÌÌja</th>
+ <th width=14% align=left nowrap>Arve aadress</th>
+ <th width=14% align=left nowrap>Tarneviis</th>
+ </tr>
+
+ <tr>
+ <td><%invnumber%></td>
+ <td><%invdate%></td>
+ <td><%duedate%></td>
+ <td><%ordnumber%> </td>
+ <td><%employee%> </td>
+ <td><%shippingpoint%> </td>
+ <td><%shipvia%> </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td> </td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>AR.</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Nimetus</th>
+ <th> </th>
+ <th align=right><font color=ffffff>Kogus</th>
+ <th> </th>
+ <th align=right><font color=ffffff>Ühiku Hind</th>
+ <th align=right><font color=ffffff>Ale %</th>
+ <th align=right><font color=ffffff>Summa</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%>.</td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td><%deliverydate%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discountrate%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <td colspan=9><hr noshade></td>
+ </tr>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=7 align=right>Kokku</th>
+ <td colspan=2 align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=7 align=right>Vahesumma</th>
+ <td colspan=2 align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=7 align=right><%taxdescription%> on <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if paid%>
+ <tr>
+ <th colspan=7 align=right>Makstud</th>
+ <td colspan=2 align=right>- <%paid%></td>
+ </tr>
+ <%end paid%>
+
+ <tr>
+ <td colspan=5> </td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <%if total%>
+ <tr>
+ <td colspan=5> </td>
+ <th colspan=2 align=right nowrap>Deebetsaldo</th>
+ <th colspan=2 align=right><%total%></th>
+ </tr>
+ <%end total%>
+
+ <tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td> </td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <%if notes%>
+ <td><%notes%></td>
+ <%end notes%>
+
+ <td><%text_amount%> ***** <%decimal%>/100</td>
+
+ <td align=right nowrap>
+ Kõik hinnad <b><%currency%></b> vÀÀringus.
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <%if paid_1%>
+ <tr>
+ <td> </td>
+
+ <td colspan=9>
+ <table width=60%>
+
+ <tr>
+ <th align=left>Maksed</th>
+ </tr>
+
+ <tr>
+ <td colspan=4>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <th align=left>KuupÀev</th>
+ <th align=left>Konto</th>
+ <th align=left>Alus</th>
+ <th align=left>Summa</th>
+ </tr>
+ <%end paid_1%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid_1%>
+ </table>
+ </td>
+ </tr>
+ <%end paid_1%>
+
+ <tr height=10></tr>
+
+ <tr>
+ <td> </td>
+
+ <th>
+ Thank you for your valued business!
+ </th>
+ </tr>
+
+ <tr>
+ <td> </td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=60%><font size=-3>
+ MaksetÀhtaeg <%duedate%> kuupÀevaks.
+ Items returned are subject to a 10% restocking charge. A return authorization must be obtained from <%company%> before goods are returned. Returns must be shipped prepaid and properly insured. <%company%> will not be responsible for damages during transit.
+ </font>
+ </td>
+
+ <td width=40%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <td> </td>
+
+ <th colspan=9 align=left><font size=-2><%taxdescription%> KÀibemaksukohuslase number: <%taxnumber%></th>
+ </tr>
+ <%end tax%>
+
+ <%if taxincluded%>
+ <tr>
+ <td> </td>
+ </tr>
+
+ <tr>
+ <th colspan=8 align=left><font size=-2>Hind sisaldab kÀibemaksu.</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
+
+
+
+
+
+
+
+
+
+
+
diff --git a/templates/Estonian-invoice.tex b/templates/Estonian-invoice.tex
new file mode 100755
index 00000000..4de12267
--- /dev/null
+++ b/templates/Estonian-invoice.tex
@@ -0,0 +1,207 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\newsavebox{\ftr}
+\sbox{\ftr}{
+ \parbox{\textwidth}{
+ \tiny
+ \rule[1.5em]{\textwidth}{0.5pt}
+Payment due NET <%terms%> Days from date of Invoice. Interest on overdue amounts will acrue at the rate of 12\% per annum starting from <%duedate%> until paid in full. Items returned are subject to a 10\% restocking charge.
+A return authorization must be obtained from <%company%> before goods are returned. Returns must be shipped prepaid and properly insured.
+<%company%> will not be responsible for damages during transit.
+ }
+}
+
+<%include letterhead.tex%>
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \vspace{0.2cm}
+
+ \hfill
+ \begin{tabularx}{\textwidth}{Xr@{\hspace{1cm}}r@{}}
+ & Subtotal & <%sumcarriedforward%> \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%invnumber%>}{<%company%>\hfill <%invnumber%>}
+
+\begin{tabularx}{\textwidth}{@{}rlXlrlrrr@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} & & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\ [0.5em]
+ & carried forward from page <%lastpage%> & & & & & & & <%sumcarriedforward%> \\ [0.5em]
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+\textbf{To}
+\vspace{0.3cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\parbox[t]{.5\textwidth}{
+\textbf{Ship To}
+\vspace{0.3cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{A R V E}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{7}{|X}|} \hline
+ \textbf{Arve NR.} & \textbf{KuupÀev} & \textbf{MaksetÀhtaeg} & \textbf{Tellimus NR.}
+ & \textbf{MÌÌja} & \textbf{Tarneaadress} & \textbf{Tarneviis} \\ [0.5em]
+ \hline
+ <%invnumber%> & <%invdate%> & <%duedate%> & <%ordnumber%> & <%employee%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXlrlrrr@{}}
+ \textbf{AR.} & \textbf{Number} & \textbf{Kirjeldus} & & \textbf{Kogus} &
+ \textbf{Ühik} & \textbf{Hind} & \textbf{AlH \%} & \textbf{Summa} \\ [0.5em]
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%deliverydate%> &
+ <%qty%> & <%unit%> & <%sellprice%> & <%discountrate%> & <%linetotal%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
+ & Subtotal & <%subtotal%> \\
+<%foreach tax%>
+ & <%taxdescription%> on <%taxbase%> & <%tax%> \\
+<%end tax%>
+<%if paid%>
+ & Paid & - <%paid%> \\
+<%end paid%>
+ \hline
+<%if total%>
+ & Balance Due & <%total%>
+<%end total%>
+\end{tabularx}
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100
+\hfill
+All prices in \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%notes%>
+}
+
+\vfill
+
+<%if paid_1%>
+\begin{tabularx}{10cm}{@{}lXlr@{}}
+ \textbf{Maksed} & & & \\
+ \hline
+ \textbf{KuupÀev} & & \textbf{Alus} & \textbf{Summa} \\
+<%end paid_1%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%payment%> \\
+<%end payment%>
+<%if paid_1%>
+\end{tabularx}
+<%end paid_1%>
+
+\vspace{1cm}
+
+\centerline{\textbf{Thank You for your valued business!}}
+
+\rule{\textwidth}{0.5pt}
+
+\usebox{\ftr}
+
+\end{document}
+
diff --git a/templates/Estonian-letterhead.html b/templates/Estonian-letterhead.html
new file mode 100755
index 00000000..d59b8315
--- /dev/null
+++ b/templates/Estonian-letterhead.html
@@ -0,0 +1,32 @@
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%><br>
+ <%address%>
+ </h4>
+ </td>
+
+ <th><img src=../<%templates%>/logo.png border=0 width=84 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%><br>
+ Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <td colspan=3>
+ <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
diff --git a/templates/Estonian-letterhead.tex b/templates/Estonian-letterhead.tex
new file mode 100755
index 00000000..16d805af
--- /dev/null
+++ b/templates/Estonian-letterhead.tex
@@ -0,0 +1,17 @@
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{../<%templates%>/logo}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Tel: & <%tel%>\\
+ Fax: & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
diff --git a/templates/Estonian-logo.eps b/templates/Estonian-logo.eps
new file mode 100755
index 00000000..3a22b2ff
--- /dev/null
+++ b/templates/Estonian-logo.eps
@@ -0,0 +1,1334 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: GIMP PostScript file plugin V 1.17 by Peter Kirchgessner
+%%Title: Brazilian_Portuguese-logo.eps
+%%CreationDate: Thu Aug 31 19:25:05 2006
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 2
+%%Pages: 1
+%%BoundingBox: 14 14 415 215
+%%EndComments
+%%BeginProlog
+% Use own dictionary to avoid conflicts
+10 dict begin
+%%EndProlog
+%%Page: 1 1
+% Translate for offset
+14.173228346456694 14.173228346456694 translate
+% Translate to begin of first scanline
+0 199.99842519685043 translate
+399.99685039370081 -199.99842519685043 scale
+% Image geometry
+400 200 8
+% Transformation matrix
+[ 400 0 0 200 0 0 ]
+% Strings to hold RGB-samples per scanline
+/rstr 400 string def
+/gstr 400 string def
+/bstr 400 string def
+{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop}
+true 3
+%%BeginData: 80402 ASCII Bytes
+colorimage
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+fDblg6K\=Q"WB-W4?Pdo4p6+l]&ih]rrrDpij);hp&GL',"Q[#Lmt]mi:-UBo)Ajlp>C')q#Ca-
+0OT-[R^UZ0q#:3k!rftBr;[*-4`Pt>]\`;[p&>'%-iO)I,T-[I!!OC1jn&BKnc&dlp#<8P%e]l2
+"!U9TI#+8tb2Ddcrq6:-g3RO66TZkO/89R1ak>G'lMCDUrVc`p_uG5~>
+fDc3-AgAK<(`*r''GKsK"r/C?3]oMfm61YtOLjQNo`#*op#<8P%e]l2"!U9TI#+8tb2Ddcrpp'l
+rq>8m&GZ;5#V]Y2L75R!lM1AVrrW28$N0r1#!HsURCqDKrq69l[jV.T![JWbkPtc,R-!r:rpg!l
+rq59V:(Hst$j.\EE.!J2ZHD+pqYp0f(YX1N<'rc'0emR!XjZ4ijR;sBr;HTnrknbd~>
+fDc6;J3>hE.46Gg,U"<#*sNl<2EEr_4mbE9G`]Muqt0mlrq59V:(Hst$j.\EE.!J2ZHD+pqYp'c
+"TJ,QFV+?K$4&=nG_VZqdd$W,r;Qit^^C#?#R3G3J!mt+o`"O`!OjHU!!4D`!pBUf*LPs[qu6-c
+"oe2SZ;(o'!"8rR88rs4S$L2pnG<.WrtjC8CK*Y`2)R41LpG[tlg+-<qu$Ekrr0h8J,~>
+gA_6CM^RKa#SJU[Cl4ICR$dH4"J2pKnc&.[#laS]ca8*s2'Dku%L*7S1/_:`E/L-e^<lNJn,*ps
+lGB9$.1d!s#n@h2C5&"Yb2DgerqcX(q78g7,slHqMPJ)Jp&4[cs*k'%9)\er&Pd:_DG`D6!pTal
+;j3B4I=8["q>L$e)ZKKoca5M5$jR7P',DcW=EAnFP+oA,h<ak4r;@'%mG5jnSV:rb4tRZYo)K.6
+.77QqVp"]-r;HW:s*t~>
+gA_WSXCb's7mAmd0J>%2/aY(p3(dS&NKf`rR.?XJT!Hl9rq$..rqGU%[!bb.+:/;Z%M^0O>@_Mp
+OJ9/'f_#".r"](qb,Jl)'b_,j)_+BrKpT$di:6^DqYq$#\j.Db6>_(,UVl'`rV6EmU]HuXrW!3>
+=ES\+<]_9&l2V,jVQ@/!U<E9+rV$70rqGU%Zq25S%MBBi(a_LMF+&e+U:&/"m.U>Sr=/\qk1@he
+W0`?`B2UiFr@A%'1d4D,8ded6G`JT6f_#";rVjq=J,~>
+gA_WV`KPh&H>[%h;Gg7d:@1a]<FBcqNg,isR.?XJT!Hl9rq$..rqGU%[!bb.+:etm&f`Dk@V^"7
+Q)D4<h=UO3r"](rd'%+>(`!f$,WA_DKpT$di:6^DqYq$#\j.Db6>_(,UVl'`rV6Em^B(K0rW!3B
+@!Hj=>!*c+l2V,lZbFJn^"N,TrV$70rqGU%Zreh$',D<")CRjQF+&e+U:&/"m.U>Sr=/\tmGcjE
+_7$G9OF(D5rCmAj>ASW`J.%6uT<>oSiV!$ErVjq=J,~>
+h#@HEIh:?7#Tc9FPJ##]c-H(0"4GulqXORjrqc-Bc+C!IjT#8`m/R?)T"N_Cq#1!f%/obL[[`MH
+U:8M5p\spee,TVcf]W#.pAY9pqXED]p&G=-'G_N()]Tmq*WQH&!!iZW>`-Jlq#(-9s*t~>
+h#@HJUfI@c"%YgF4l\X1;/(]X^WF^EcM,WedbO6dnc'C(qXEFf];hGR.Olks.P*2,2*!ie7S*/D
+!)3/["\;$E2D?]].L7OVFe67umJ-YTrs\ksfX@<5QD1k8kkG)Nrt@jG!<<*#(b-sc0JtaF0Ie1Z
+$3BMo#oYim84nopkP+uLrtbV1nDI&"0eP",.Ochs/1rtM85<,d>l%b,:\RH`84>d,rB(0F5Xe6:
+8dJ+(MQ5+sq#(-9s*t~>
+h#@HM^PMi="+56/C#`k4FbQ3b_9'pGcM,WedbO6dnc&ppqXEFf];hGq8cD6f8P;iZ>@VDgG^Y)7
+J,k2sJ.d?ZFD5#[9h@lH8ksi,]\)WHrV6C$rUSULS<B24\'X@5rqHF+H9;6/!!+Q@7nZfd?<U9"
+2^8k8m/RGEAorHOWS$D.rq??urqc-BFC%sC91f+R$;!ld>@_PnIYEZ=qi1Z0pOE?oG].?qBEN!f
+G^]78#_J8?^teSWr;Ot@J,~>
+h>[MB'\!*i,YiZYa62mZnF?&JncSOYqu6'a#Q=GfkM4KR)UeZi*-S.$mJQYW$N0GOcGmrTj73!F
+p\t6"ec5mb/8hc?meueX"TA*n,R_Hh#7aOmh":IArmCar~>
+h>[M`=SbYi8,u0:7LELMS$gZ-mdKZ8nc&(]o_87^n,EXkq!mP&dV;DR3!VH*4[;>&7nDf8%S9,W
+5<Lqc3BBc^Us&0'p&>Bsn__X3aOK8?qYp6h!OE+3!##DT-n$]+5!hV'5!1e]0J"C`$j,nu#UVT+
+?\Yl5meueX#Q=FJ>Xpq<3W:uC3BKAh6:FC8lq.=N84WVJ!_5dQmn*g`J?Io(qYgE@s*t~>
+h>[N!MYho*Isl\"H4#P$Zc1S]mdKZ8nc&(]o_87^n,F("q!mP&dY;XJ@:E_XBl7s8H[^J.J.@!Q
+F)5K!@U`kaL8<#[r:U'sr:/[i`lQZinbW7ZrrKG;rW!T71dso2?>FS'EGT5p>#S'T-5?[R!!rZm
+AU&loZI&%<o`#U'pn<@]Bk:d_@:E_XBl7s8H[^J4J-(4LI/A3kI"$S7J-Uh)_rgUfrVk4EJ,~>
+hu<`75k=sc"VrFC5tXgF:/4DF.i/9O!!*]Ur]C="me$ATli.:jr:opKd%Y/9'&!<k"#=J;Ni^b$
+rq-3qrV,jMn+?JTpAY,>f)Q'a;0.S\XNp84o)Asihn"ng;)Ad$!!WNiQK@f9rmUmt~>
+hu<`@GOnE:9Mnkt@V0:fC2.Hn>Z4;[8dSO+F*)Mgme$ATli.Fnr:opKd&28#:.@`E8`E>N8Ou<>
+7TaSXNi^b$rq-3qrV,jMn+?JTpAY,>qu@NQ,q(K/6:XU>84Z3<69dRl1bgU.)%[&F!!j*8F,?6b
+cL1Z%rseb\\s@h_>t[RS7Rp!@b";k3FKjs$qYntDJ,~>
+hu<`GT_![<IscQgH[C/>IKP(MIt-[4!Jlg9S-6.co_SRQrso&+q"3gtWf)=NG^=adJ)l+hIsu`i
+GBS%NIZCMZo)A:]#Q=DemdKfErV$6kHi3pL!AZo0<+U)rrdG<'H$++DB44tC:-L3L%.jN*&m043
+Q`SL#rUTsuptrZOMLp5#G'A1WI"$RgJ-LRo_WgairmUmt~>
+i;Wha&G?)3"X69@G^kI,P*_]1rh'IfS=#7L5SE5[">J!QnGMJL#l<l9^9FDd9H)af#qBJ1L7#-c
+jnSiGs8Drirr@!8!!4`+#i,Ic89UN4bi8<po)B'omao@cYc+.?63tL0"V>7hnG)t4s*t~>
+i;Wi"<VB#m9N5D9G^kI,P*_]1rh'IfS=#CdBN""c"DGs4nGMJL#l<l9^9FDnE)tgf$!(hdL7#-c
+jnSiGs8Drirr@!8!!Y&=.ks.S8GYpg8Ou<=69dRm2)6d5*"E#D!!c&<S@?`%p&=O^$N'8C_mckK
+Sr%2W`(C25NR[ImrRLpu~>
+i;Wi2M"Z?,IsQ9]G^kI,P*_]1rh'IfS=#ItL4SN<"H^d\nGMJL#l<l9^9FE!MLs]8$$^E6L7#-c
+jnSiGs8Drirr@!8!!b/H79+#EI=M0F%tB%UH$44GBOY4I:e*2V!qu["89UN4bi8<po)B$nmao@c
+Yc+.WLr4`HL9'%tq#/bCJ,~>
+iVrn9p&GO<7W!I+P+J\^^;eCEe,@c%d`oeFZDDb'!pTag,b;X/qWIkdrqc0Li7?&`XFWVBirBDi
+9lbcMYfPVcpAO"N!/(1L";kW^EBr@\#!RdOh!Xn6nc'!rqXWt6i7cW"\Y):S!"&cA/3cp6C2SKO
+KDgH,J9#$l1DK9X"TqW;mJ$S2s*t~>
+iVrnZp.>ck@;pOIP+J\^^;eCEe,@c%d`oeFZDE@g9Bo+P>b/RgqWIkdrqc0Li7?&`XH.-lj%9YP
+@WI!bYfPVcpAO"N!/(1L"rLi`F'qF.oh#Wa84H$85Wq.e1Fs:Bq#CU_L:H%,pAFI\$i^"nlfI'Y
+d`8noDWsb":g%1=D00uNJV3oS"bM/FCg^008d.n<bO,'&fDg@~>
+iVrnsp4*U"FE;b_P+J\^^;eCEe,@c$d`oeFZDEhBl$rniS\=([kPkqhqXNh.f#kY,R>QRUJ-pdG
+Ee'I[aP?+TrSmhWKDY]R(h76%G^"W1J.7!WI!U!XDe`ij=A("Cq#CU_L:H%,pAFI\$i^"nlfI'Y
+d`8nsNp2'#I!U'`H[L9mJV3fP!J>skJ-CLtdd?f-fDg@~>
+ir9!spAb^?;KRDLTsM\cguRbgo(;VSp'^Qco'Yc%fZLdo7Ki&X"<E/rh"^"2$i^)#p@.8#cFooT%
+d!`u!`F)pUr;*Wq#(-NrrL.Cqu?puFHE]?JdCT@!=T>3!!P?@^Ztarn,NFe$N9o!q"4":g;nL?m
+f3e)/l6J6KT).cU8P&qZM_'8Za$U.SV:/k!q?6o"'3Y5q#/nGJ,~>
+ir9"HpIYrnA9<<^TsM\cguRbgo(;VSp'^Qco'Yc%fZLduDbTLi"B:&Th"^"2$i^)#p@.8#cFp'#
+;<:CVA93O%`80kVr;P^U!QP?@!!Z;BOKZBc:@Up_8Ou?@6pX!s/dhFT"ZVIUlMUYMs8W'*rVZNe
+o^:kqaHB6c8e"NtATN6PN0Kj,VlR#,r3Qa9Z)jdmNceQ!nO`sYK$s&]rRq4$~>
+ir9"fpOEd$EccelTsM\cguRbgo(;VSp'UKbo'Yc%fZLe&NpD2uI>"ZVpuVM`rquWdnE8TP]r@0H
+ja[YVF,-R0h<t(9ro3qY`ru;?##TK(YJ-renph'sIXHKeF`;))8.,1n"ZVIUlMUYMs8W')rVZNe
+o^:kqaJJ<T%=WPDFaSk$PanJGX08i,Zj3qBXJMJOMM(DK"bEE!mJ-Y5s*t~>
+j8T+/p](g,5&bn2VnUU<m.C)NrVlflrsA]'qY'F@fZ'=>m/R8.I&>WmiVs5`r:ojHg;p9k"R#gj
+/ocWFcKY*%hu<[5qu@!=E/1aQlJS-;lMq#'>>b\&!!G<<]''%TrrrE"p[6mkmf3eaEIa7KZG+E,
+f%Ss<iqqdCini>8aLn[:8e(:j"Uoe:nG<.=s*t~>
+j8T+Tpdu&i?>t:RVnUU<m.C)NrVlflrsA]'qY'F@fZ'_$m7ILZI&>WmiVs5`r:ojHg;pF@9^#(R
+=E0(pcKY*%hu<[5qu@!=E/1aQlJSa>m7IOQ7nd5e#5\B'3Jb90rTF1arquNYhOa1.%:=+*PGGLu
+aO&Mlh;I;ij9ai&f[7dQY*X*(nO`s^Rc*]3rnII'~>
+j8T+opj`m)FDuVhVnUU<m.C)NrVlflrsA]'qY'F@fZ'tOm=>4a!iF]HiVs5`r:ojHg;pR`J`qUh
+G&`89cKY*%hu<[5qu@!=E/1aQlJT4*mXPLjI=$!B;?m!u"?D:LkPaTD"oeGombY5;J.6R>J<Qe7
+^<"[Pg>1]HqrA(ChUp5s]WRfaK(4?pKWsD(qYo7LJ,~>
+jSo4Pp]([*;KIM`][l<<qYgE_rs/Q#p?^YWLDTCZ"<2`cgA'P)#QFYqmblB\-0YC6>'usdm/$_=
+rrBP*!!kT/R`b'rq!(]B!!Ea>Fbj)q!!G98[cRGJrr`5pkZ@6R$q,K5^XhE/n+?>Kq>0sc$iBep
+o^D##d_Vqg$1Ruu1qr/HrS7F'~>
+jSo4lpdtofA93Er][l<<qYgE_rs/Q#p?^YWRTJrM"B'WEgA'P)#QFYqmblBh?g1/eApg5pm/$_=
+rrBP*!!kT/R`b'rq!*=p8d%n&Fbj)q!!G98[cRGJrr`5pk_&@s$t+IQ^XhE/n+?>Kq>0sc$iBep
+o^D##d_W#4:[q$[C;oB0rS7F'~>
+jSo5+pj`a%E-$])][l<<qYgE_rs/Q#p?^YWVhOSis*OmFgA'P)#QFYqmblBpMWoWqE.";%m/$_=
+rrBP*!!kT/R`b'rq!+O=J-::;Fbj)q!!G98[cRGJrr`5pkbIWt%!?rf^XhE/n+?>Kq>0sc$iBep
+o^D##d_W)NK(4?oP02t]rS7F'~>
+jo5A)"Si$(!`*lnWQXDqqu5m\"o\5`gq6>M!!F6gVV:h"rrrAsnDM>llMq(oE/M0dqVD/O@/Bp0
+:4TD#q#CBc$g[ir:N_`*_YX<98;=S8r8[eZrqbC[nGie`KsKM+qYgE`rs8W%q=En-bcF/$!!Emu
+hXUO"s*t~>
+jo5A8:&%<d@WR@)bN8Bnrp'LerV5d8^NT*="B'WEgA'G&"o\8di5gH78d.n-MR_aDh>[I_qZ$ms
+J?.K#s8Vailq.CiFcWoHqZ$aiL:67Bj8T5\qVbBC8dAgZZJ>*KrVl?e#labtoBP/UY]'&("B;;U
+nbh5CJ,~>
+jo5ACK(sj%EH?r8bN8Bnrp'LerV5d8_Ns\As*OmFgA'G&"o\8di5qMTJ-CC@MR_aDh>[I_qZ$ms
+J?.K#s8VhIm!o4YFcWoHqZ$aiL:67Bj8T5\qW*D$J-U7OZJ>*KrVl?e#labtoBP/U[#jg."GO5>
+nbh5CJ,~>
+k5PJR,kq?E0QDiId-UW.k5PV`pZg:]#k@ru)gnO:pt>ZLrV5d'lMq))FI()<rn[SS./NuL;i%sG
+r;Zf#li724E/(OJn,!(f@Z%e]rSdbWq.K3t"@e6Zkl'iI#QF\snD_`I&Fof)!cuoZqYoCPJ,~>
+k5PJUAGAb%=`K1rd-UW.k5PV`pZg:t:@_![;LG@qpt>ZLrV5d,lUh=XFI()<rn[SS./NuL;i%sG
+r;Zf:lq.F\E/(OJn,!(f@Z%e]rSdbWq2t2>"Cd5!kl'iI#QF\snD_`^;t<Na99@]kqYoCPJ,~>
+k5PJXP5'P4G&`8:d-UW.k5PV`pZg;0K(=HlHig2!pt>ZLrV5d/l[T.cFI()<rn[SS./NuL;i%sG
+r;ZfKm!o7bE/(OJn,!(f@Z%e]rSdbWq60=="EoX5kl'iI#QF\snD_`mK^jQqV:Fu0rnma+~>
+k5PF"p](L*BRZZ!mJGrD"oeDjiMmgf!!F0eVV:gsrrN&8lMq&+H(`XZh#@?rqZ$k"N5+ZVs8Q?j
+!!Q)BSBL?equ?m=Eg"B.ro*kXrl=O/"@e9\kl'`F"o\8dhQ\Bs!!HlYlM:G;s*t~>
+k5PFLpdt`bCOVu$mJGrD"oeDjiO)k\8d&%>VV:gsrrN&GlUh:XH(`XZh#@?rqZ$k"N5+ZVs8S#D
+8d/[LSBL?equ?m=Eg"B.ro*kXrmgO2"Cd8#kl'`F"o\8dhR[+b8d'molM:G;s*t~>
+k5PFjpj`QtDLS;'mJGrD"oeDjiP(->JH'uuVV:gsrrN&Rl[T+bH(`XZh#@?rqZ$k"N5+ZVs8T7g
+J-Bt=SBL?equ?m=Eg"B.ro*kXro!<s"Eo[7kl'`F"o\8dhS>'>J-;FglM:G;s*t~>
+kPkS3"S_s#20=tpk5+$9"TJ2]^*iOQ":fgUf_F%t!35tt!'9TL";cE\f_=2$!$D(<#<RmZlM^bS%
+.+$!"`9"#i;'/G!!Q&BT[NK3i;WiT(@hG.7Z+hArT=+_rV5[#2XpbM@a"$3ro*m-~>
+kPkS@:&%<a>',n@k5+$9"TJ2]`a\R4"AX?@f_F%t!5e\,!*o"c"AsNAf_=2$!$D(<#<RmZlM^bV
+;XI'\9Q#Tki;'/G!!Q&BT[NK3i;WiT=n5/f@Z%e]rT=+_rV5[&D"1+#K$3ESro*m-~>
+kPkSIK(sj"F``b[k5+$9"TJ2]bDl.E"Fb`pf_F%t!7^st!-I^\"FPQlf_=2$!$D(<#<RmZlM^bY
+L@'KqIrC(Ji;'/G!!Q&BT[NK3i;WiTMXl9#G)EoqrT=+_rV5[)P4=&*R`jskro*m-~>
+kPkNYpAbA&J#Lukrnm_Yrql000(f2I%==l%p=B6DL]%2RB-$LB":TXQf_=2$!)ECk"qZO!jo#.R
+qu?^*nc/k8FHjf4nKe&5"X%c?[Ggu>rrN*rnc/e^MS&*Njo5J_qsi8tnGiZ+b3A`\s*t~>
+kPkO6pIYU&J#Lukrnm_Yrql04BD"k":4&bfp=B6DWr5NjCfU!t"AX<>f_=2$!)ECk"qZO!jo#.m
+r(6rank'*bFHjf4nKe&5"X%c?[Ggu>rrN+Nnk'$oMS&*Njo5J_qsi<VnO`n<b3A`\s*t~>
+kPkO\pOEEdJ#Lukrnm_Yrql06OS+,,IX@jAp=B6D_u5)dDgh/+"Fb]nf_=2$!)ECk"qZO!jo#/+
+r."crnpgpjFHjf4nKe&5"X%c?[Ggu>rrN+snpgjdMS&*Njo5J_qsi@(nUL_1b3A`\s*t~>
+kl1Y/pAb@.EK%Qnr7q;Sr:88hp&G4)HD/m_f)G_`rW!!*Ea8)6"*C6ep>#ZJV"t&p5cE<-r_37j
+!=D?f!!P$%U"&U2r;[$/@XF`ln,;,C!.j\@"@e9\kl'QA"9%lB.e3QB!e8G\qVqO*~>
+kl1Y=pIYTbEK%Qnr7q;Sr:8EPp.>H_HD/m_f)G`7r^m5cEcUYA"*^Hhp>#ZJV"t&p5cE<-rdar>
+!DQtm8d/@DU"&U2r;[$/@XF`ln,;,C!2]6Y"Cd8#kl'QA"9%lFAb&Fr99IHbqVqO*~>
+kl1YGpOEEpEK%Qnr7q;Sr:8L&p4*9pHD/m_f)G`WrdY'!Ee<e2"+$Zkp>#ZJV"t&p5cE<-rhfXE
+!If+\J-C.CU"&U2r;[$/@XF`ln,;,C!5J)T"Eo[7kl'QA"9%lHOR[i'T?QZuir=N~>
+kl1WbpAb@BG+-\GrnIGTrUeS^pAb=*H(`[\f)G_;rW!$:G*F0?!!?8jch#rl!V\&>!!H?;jlQ^E
+!!+i]nc/eTJ?-URr;[$*<d'Y=jS@X3!28r`"@e9\kl'N@"9.u;'Cl,+%[ti7r8[g-~>
+kl1X=pIYThG+-\GrnIGTrUe`LpIYQ`H(`[\f)G_rr^m8iG*H;&8crmuch#rl!V\&>!!H?;jm,V=
+8c`(1nk'$jJ?-URr;[$*<d'Y=jS@X3!5.kp"Cd8#kl'N@"9.uC<q8ic;52M-r8[g-~>
+kl1XapOEElG+-\GrnIGTrUeg&pOEBqH(`[\f)G`ErdY)uG*IjRJ-1.ech#rl!V\&>!!H?;jmRd!
+J,sh8npgjdJ?-URr;[$*<d'Y=jS@X3!714d"Eo[7kl'N@"9.uHM"6'!Ju6ubr8[g-~>
+l2LeM"SVm!3.7[VpY#QKrq4GJp](F&GbER[f)G^mrW!$IHD#o\!!G-A`U3Z\rrW/;#PnE%4hQFF
+!!6GR!qQBo7=\hVr;['0<csA,g@YC#rrBe(!!GcK]BK4PrrW2mU@A3d/?mh"roF*0~>
+l2LeS:%q6_>^`L%pY#QKrq4]?pdtZ_GbER[f)G_Xr^m8nHD$eu8d&I``U3Z\rrW/;#PnE&4hRFY
+rCR-)I7s0("(?^h%K-83$<D;.ZJ+sMh>[K%nk'$oMS&*NiVruYosaH`"CSIeo`!qOJ,~>
+l2LeWK(jcuG($7?pY#QKrq4lupj`KrGbER[f)G`3rdY)qHD%D1J-:7_`U3Z\rrW/;#PnE'4hS.L
+J,Xs!E.7A."*K-'%K-83$<D;.ZJ+sMh>[K3npgjdMS&*NiVruYou?NP"GX/6o`!qOJ,~>
+l2LaMp&G4`K!=20f`)'QoX5)$!!@J;e+M>m!;l]p"?(_.d3%oZ":U*rjnmj5!r/2dq>^O((]==9
+)KC]Vo)Je5%/^)1*G'JTYgr7@h#@B&nc/e^MS&*Ni;WlWo2tM_"(8e&q;hR+~>
+l2Lakp.>HqK!=20f`)'QoYaT$8cs=0e+M>m!;udf"C-DTdU2Q;"AXc_jnmj5!r/2dq>^g0/j)To
+8lBYf>4bDg68&cF!!aNUG`ArXnGM)A!8d9="Cd8#kl'H>!r__EnO`n1]]AnLs*t~>
+l2Lb,p4*9gK!=20f`)'QoZi-bJ-1%fe+M>m!<)kH"Eo6nduEpK"Fc0:jnmj5!r/2dq>^g05A,4h
+IsQ*nL\-)uE]X^-!!aNUG`ArXnGM)A!9j!("Eo[7kl'H>!r__fnUL_%]]AnLs*t~>
+l2L`Sp&G4aL:64AfDbpNo8`SG"*U3^o[j*Cg\h*T7Y7l%Mt$cL?DuQNh#@KTntQrm!!>W4S3H?@
+#REn@I[.=lnGM&@!8d8H"@e9\kl'E=!rUsdnc/e$R*+gojo9i~>
+l2La2p.>HrL:64AfDbpNo;VLW"*U3^o[j*Ck5@mT@=k`@Wpr[`Ei@[bh#@KTntQrq!!`Q>-otUV
+S8\0p"%G3q&c2P6#Y&laQ*o34r7h5OkOM4J@Z%e]rSRVVr8^fI8d%t[b3f,gs*t~>
+l2LaZp4*9hL:64AfDbpNo=XjK"*U3^o[j*CmJVP<FFpaS_!upWJZ.8qh#@KTntQrq!!`TM7V$C[
+S<Wf!"*n9=*r>pC#Y&laQ*o34r7h5Omdbl2G)EoqrSRVVr9/n*J-2=amJQ)GJ,~>
+lMgnZ#ke6$7Z"_?rRUuMr:!nc!!@A4d.Gri!4Vn,"]^>fk3WrT!!Fp@am]5arri5d`Dd$8!!<ED
+3$n%o#n&k6I#=Z6h=:EsrrDc`!!GcK]BK4MrrMtInGi\eY1r[Lk5Tr~>
+lMgn\;"dKa@Yq\[rRUuMr:#I:8cs4)d.Gri!6kC6"_NP"k3lID8d&Fdam]5arri5d`Dd$8!!<ED
+3&^[["!\`u$2FQ-$Tr?TMP@oBnbh,@!;Z1X"Cd8#kl'B<!W&P\8d'(8g\1X/s*t~>
+lMgn^K_Bp!G)<forRUuMr:$TZJ-0q_d.Gri!8II&"`oI/k4+?"J-:=fam]5arri5d`Dd$8!!EKE
+3(#k-4p*o#+V4AK#n&k6I#=Z6h=:EsrrDodJ-:%Q]BK4MrrMu.nULasY1r[Lk5Tr~>
+lMgk-o`,+aM7`!Mec,^JiZe4!")""Ho@O!BQi-mfArOLiqLnD>"9a=cjSR^3"o@Z<WE9kt!"/f?
+3bj)#T!m#.pAN\E!<2Nh"@e9\kl'B<!rhQsnc/e*QGr4hk5Tr~>
+lMgk<oh#?rM7`!Mec,^Jj^@pW")sXQo@O!B[J`]$D2c6pqPEaT"A=KYjSR^3"o@Z<WE9kt!"/f?
+3bj)#T!m#.pAN\E!<2O]"Cd8#kl'B<!rhXfnk'$^QGr4hk5Tr~>
+lMgkGomd0gM7`!Mec,^Jk`5Li"*^-Xo@O!BbPcqpEf@cuqS)KM",OGIqqM,SqX2q6=;9ou$NUl$
+C41u2[a=11rRq2NrpkRBG)EoqrSIPUrpba5J-2+Vm/?)HJ,~>
+lMgjNo`,+[M7VpLeGfUG[KHC,"D4"Enc%2@!-J2?#6T"0`pWih%e9T&9Vg53rnIGWr:ApkZ[t1$
+!"'N/@"b8acJe<irn%2@!!GcK]BK4LrrN%3nGiZ%Y2/m8s*t~>
+lMgjloh#?pM7VpLeGfUG`_?8%"E9^Onc%2@!1a$\#>9*#`pWim<:WWaC8BDQrnIGYr:ApkZ[t@J
+!q$$t"Uu:u6=>J@\Ba('qYo+Hnk'$oMS&*Nh>[NRPOV6IGHTcsk5Tr~>
+lMgk-omd0iM7VpLeGfUGdXh:G"Ep-Unc%2@!4r/[#CgcW`pWipL@KcrUt,/;g]%QWoA[s"Jj^1Q
+mJm\&(F_:0@"b8acJe<irn%2@J-:%Q]BK4LrrN&&nUL^pY2/m8s*t~>
+lMgj+o`,+KLq)UFeGfULp14%#"C786nG_)?!)WXp#820Hc1:l3D=RZ0'U$B"rS%8TrV>p?cU[p6
+"pu+Y&Io9OoDf.4<.1msjRE!Dec,U_o)Jn_MS&*Nh>[NT`:3g11n)VWroa<3~>
+lMgjSoh#?jLq)UFeGfULp5]#B"Dj=EnG_)?!.t2B#>fQ1c1:l3QL[WN;Ner`rS%8_rV>p?cY5-e
+,9%F7&ePT`"o\W;"UGMJ'cS>C-7CZLIBCrYnG3%5rr?-l8d&U\]BK4LrrN,KnO`pkR`k4"kPp&~>
+lMgjqomd0kLq)UFeGfULp8n.A"F$*PnG_)?!3#mI#CLZ]c1:l3ZgrVLJ!._8rS%8^rV>p?c[o1m
+4Y@ln&ePT`r!3lF'H8;N4$Z/&85t#>dcBonrRLoJM=Z6#G)EoqrS@JSrnd0q"Fcf_nG_VNJ,~>
+lMgico`,+1KX0V7e,KLJjV[mq"BUc+mf(l=!&4BP#U"Aae+Nb?h?WTO")+mopt5TKrV>R_r;[$V
+9ji7&N#_Hi"r;$DcLC]0e,KCio)Jn_MS&*Nh#@EP(@hG.&rO9_r9+*1~>
+lMgj?oh#?bKX0V7e,KLJl!"!W"DX+>mf(l=!,VX,#ZQ&@e+Nb?k"kP?"*h$*pt5TVrV>_N5Wh"`
+5tta4Ll=In./tb)/1rV52aV>LcLC]0e,KDUo1B-pMS&*Nh#@EP=n5/f:l;jHr9+*1~>
+lMgjcomd0nKX0V7e,KLJl\bUj"F$$Kmf(l=!1<b9#^U`fe+Nb?l@\YX",*l6pt5TVrV>f*DJ3Ka
+9hf#@Ll>:171MdX8PDr[=^GNQRa1F!rmUlIO7Rl)G)EoqrS7DRqhjrp"Fc6>k5=EBJ,~>
+lMgiLo`,*rFfF-jdf0@ERf!-g9T[-Xrn.5N%/p54/psPLq#CBk?1Isu0:L,Srn%/MT)AWo$!qV7
+Z+n%CoDf"(H)B<jdJj1go)Jn_MS&*Nh#@ES;=OVgG,j<lkPp&~>
+lMgj.oL]44WS@3rrrMu'r(7*'OM^A`f`(qLr^mGuI&>Tls8VtRnk'$kR`t:#fDc8j8Ou<=7::+u
+Z+n%er&+sB3'',a5X@b0H)B<jdJj2So1B-pMS&*Nh#@ESK(2G8I&brrkPp&~>
+lMgjWoRI$nWS@3rrrMu9r."opOM^A`f`(r+rdY9!I&>Tls8VttnpgjmR`t:#fDc9)IXHHbEF<dL
+Z+n&)r*Be=@:WtbD/jZ?H)B<jdJj3-o7-seMS&*Nh#@ESVso3<Wn[=3s*t~>
+lMgiKoDf"dS^@!-e,KLKoeuaK"@eBclM]E9!:0R`#X!X>hYR9PrmL?;"9a7bjSRR/!'pJ_#;pOa
+^>J8AIe3UC"+-iqpX0!@+7fI87Z+hArS.>PM=CQK<h7V/rojB4~>
+lMgj-oL]7"S^@!-e,KLKoks_#"CmG+lM]E9!:g"[#[Mt_hYR9Prn[-;"A=KZjSRR/!-eB6#?c)0
+^>J8ASGGV\77Kd<8P2X&Ut>@grr?Hu8d&U\]BK4JrrB(h8d&t$d.@8#s*t~>
+lMgjVoRI'nS^@!-e,KLKopG]."F,p@lM]E9!;6;@#^1a#hYR9ProEU"",aVLqq(iJT`0HIIro^n
+^>J8AZi"nRF`qtSH@1-jIs\!CpX0!@O7Rl)G)EoqrS.>P_sr6[I%AXUrojB4~>
+lMgiKoDf".OML/[df0@G]DV^43JtH4rRq2Na8Gu@8qaS3r;Q]sqb$DZ"@o9;o`!PD!8m_T#QeFb
+WnI+FrNPkn")jd[p!Nd>+7fI87Z+hArS.>PXmlAo6'B7UrojB4~>
+lMgj-oL]6aOML/[df0@GbPb$9?AcAYrRq2NfDS;E@YD,Kr;Q]sqgS*."DFU\o`!PD!9j>Q#AJ^g
+g%PFD`q)e)Fe7(TdJj2So1B-pMS&*Ng]%8lnO`pnP/cqhkl6/~>
+lMgjVoRI'oOML/[df0@GfDU4&H&B5trRq2Nj8FK2FG.$]r;Q]sqkEY3"G*Auo`!PD!:Ti9#B,-m
+g%PFDf(smmJ-1(ge+M,g!0?`%"Eo[7kl'99!7gUi"FH<Omf)GMJ,~>
+lMgiKo)JknXk`^!rrMmdrW!'TL:?=Cg&D&Mr;Zt&M7VmKrr3#u^@D7,'9U,rr7V)MGPqLI,BAjZ
+kktJ\iq!-P?CB+0dJj1go)Jn_MS&*Ng]%8nnGi\GMS/0Okl6/~>
+lMgj-o1B+)Xk`^!rrMnBr^m;sL:?=Cg&D&frCR3+M7VmKrr3#ucLOR1;3A][r7V)MTD_@f<H=/7
+kktJ\lLRUMDOJf@dJj2So1B-pMS&*Ng]%9)nO`pgMS/0Okl6/~>
+lMgjVo7-prXk`^!rrMngrdY,tL:?=Cg&D'$rI>#lM7VmKrr3#ug@BasJ!%S4r7V)M]D[6cH#et[
+kktJ\nFM/4H'utKdJj3-o7-seMS&*Ng]%95nULahMS/0Okl6/~>
+lMgiKo)Jn%N5k5^df0@H`Voi?-A8\br7V)MKDbcQBTBpqrr)itqD[sF"(A:dptG`Kq],P7#u>oA
+de!J<s8EQ$!!H,^aRB,Vrr=/4!!GcK]BK4JrrCpG!!F^([,h/Ks*t~>
+lMgj-o1B-]P/ckddf0@He,DrB=+mm>r7V)MVu93jDN;R"rr)itqJc!t"*L^#ptG`Kr*K=o$"J=U
+de!J<s8H!i8d&gkaRB,Vrr?Hu8d&U\]BK4JrrD6P8d&7M[,h/Ks*t~>
+lMgjVnpgh.`pEWOrrN)SrdY,tKX0Y9g&D&grI>#kNkt)]rVlopRdtt2KWNu(gA_3PNr=J7EdOM.
+oD\direL,r"F--On,Cc8!0?`%"Eo[7kl'99!:KB-"F>d/jS\6AJ,~>
+lMgi_nc/e@W7^bAdf0UK8cSi2JZdo,g&D%[rW!**F-F]6rr)itrMT2d"=]b]n,D)A!42V("VPd1
+[c@5`rrN*WoDf"[Nl(/^df0:ho)Jn_MS&*Ng]%91nGi\3JZdr-kl6/~>
+lMgj;nk'$jWn?tCdf0UKHqI"1JZdo,g&D&4r^m>fF-F]6rr)itrP%hp"Bq59n,D)A!6P13"]0/o
+[c@5`rrN+<oL]6qNl(/^df0;To1B-pMS&*Ng]%9;nO`p_JZdr-kl6/~>
+lMgj`npgjrWn?tCdf0UKU4@cAJZdo,g&D&VrdY0%F-F]6rr)itrQk%b"Fli^n,D)A!87=$"ak9F
+[c@5`rrN+foRI'iNl(/^df0<.o7-seMS&*Ng]%9AnULaiJZdr-kl6/~>
+lMgj&nGi\U\`!5]e,K^Q\c;^@J>q;ug&D%7rW!'6G+$YHqu6]l,kD!=!dqH:qV2#M;#L@t5^/[?
+nGW=c!+tj'">G_Fkl&s0!$Ce4"@e9\kl'99!8d5G"<2ijh"g16J,~>
+lMgjOnO`q!\`!5]e,K^QbXtK(J>q;ug&D%or^m;iG+$YHqu6]lA+N:q98'b6qV2#MK)J:F??_j]
+nGW=c!0ZtH"C$bqkl&s0!+>Cj"Cd8#kl'99!9irF"B'`Lh"g16J,~>
+lMgjnnULb"\`!5]e,K^QfRSL%J>q;ug&D&DrdY-!G+$YHqu6]lORdo(M72I@g]%8PrI>&nGFH_E
+rVc`rZLiYMHA]>urR1]GO7Rl)G)EoqrS.>PmdYf1I"/0Oq<7j/~>
+lMgjIn,NSP^?#%fe,K[L0E;0+Ut>=nrr=&<!!FEiT@EQ2rrN(_nc/e\U=/]5h>[N="TAB)#&/^m
+h>$pJ!06[O"<iH*jS[I+!$Ce4"@e9\kl'99!7pZ?"<2cfg\C"4J,~>
+lMgjhn4Egu^Z>.ge,K[LCJ%6OUt>=nrr?@(8d&+=T@EQ2rrN)&nk'$tU=/]5h>[ND:&[`g9Pf?a
+h>$pJ!3Yrd"BC,^jS[I+!+>Cj"Cd8#kl'99!93N@"B'ZHg\C"4J,~>
+lMgk*n:1Y$^uY7he,K[LQ@OL;Ut>=nrrA)YJ-:1DT@EQ2rrN)<nUL_9de*OprrM_CrdY0%DhG4K
+q#(-l`q4caH\Acer6kTFO7Rl)G)EoqrS.>Plg]K.I!qsJpuqa.~>
+lMgk+mf3JB]&NG_eGfdP`.DZ`WS$purrDfl!!Fj#VV1b@rrMU)o)Jn&NkaiVh>[J1r;[!SFHaZ/
+rVZZq^%;:-&V-t>qU5BD+7fI87Z+hArS.>P^@;1+)h"U;puqa.~>
+lMgk:mn*^m^#JbbeGfdPd[l,RWS$purrDln8d&7DVV1b@rrM[no1B-]O2'rWh>[JTrCR5qFHaZ/
+rVZZqch'g4:k5Y(qU5BD@.Qtn@Z%e]rS.>PdIBg3;LPFrpuqa.~>
+lMgkEmskP!^uG(eeGfdPgp<B1WS$purrDrpJ-:+EVV1b@rrMbLo7-snOMC&Xh>[JmrI>&qFHaZ/
+rVZZqh=Q4#I=SEUqU5BDO7Rl)G)EoqrS.>PhXQ+!I!qmGpuqa.~>
+lMgn\$h"&u)kc'Zr7(`Nq;fK$_;b7DrrCOH!!G?5XPWgMrrN(Gnc/btX4m=(rr=2?!!QYWVUkG>
+r;Qc]oDf!qI&5Kidf0:ho)Jn_MS&*Ng]%8KnGi\@IAkoqkl6/~>
+lMgn];X[3\>-6ZQr7(`Nq;fK$_;b7DrrD!U8d&FMXPWgMrrN(knk'"*X4m=(rr?I*8d/mWVUkG>
+r;Qcco1B+4V:bOjrr?Hu8d&U\]BK4JrrBb&8d&4DW8%+2s*t~>
+lMgn^L$sNpLUQ(2r7(`Nq;fK$_;b7DrrD<^J-:%GXPWgMrrN)0npggpX4m=(rrA/ZJ-Bn@VUkG>
+r;Qcgo7-pjV:bOjrrA,OJ-:%Q]BK4JrrCI:J-:.GW8%+2s*t~>
+lMgna=mc7n#^=qhqYo(G#6"5XhW+2)gA_/Zr;ZsiKX0Y8qYpWrk6LSY"=9DUmeu&C!4Vn,"X7rG
+]]]1hrrN*4oDeu,T$m8Zrr=/4!!GcK]BK4Jrr@Q=!!G30XPN^9s*t~>
+lMgnaM!dk=:6X>uqYo(G#6"5XhW+2)gA_/prCR3$KX0Y8qYpWrlqd4F"Bh)4meu&C!6kC6"]TK$
+]]]1hrrN+#oL]4+T$m8Zrr?Hu8d&U\]BK4JrrAkb8d&CKXPN^9s*t~>
+lMgnaX6tKAJu@8hqYo(G#6"5XhW+2)gA_0+rI>#nKX0Y8qYpWrmt:4^"FlcZmeu&C!8II&"aY0J
+]]]1hrrN+UoRI$iT$m8ZrrA,OJ-:%Q]BK4JrrBh(J-:(GXPN^9s*t~>
+l2Ladli7/P_!(Okf)GpPqY9marn@APO8T%]<J\3Kr;$?nr+5I""9NhTiVMI3!)3=k"]0Q=dIR;5
+rr>7T!!H;gbOPS\rr=/4!!GcK]BK4Jrr>mc!!GrIZJtcFs*t~>
+l2Lb%lq.D"`p!0qf)GpPqY9marn@APYl./sAr+"\r;$?nr/gJA"+di<qVV;QJGi(D@salro)ALc
+!-\!,"DX:Hnc%#;!+>Cj"Cd8#kl'99!.s`5"Cd"hiqqs>J,~>
+l2Lb6m!o5'b38Tuf)GpPqY9marn@APa8LMkF,7Bir;$?nr35aB",O>CqVV;QVYu#KEdOJ,o)ALc
+!1rh5"F6?Wnc%#;!0?`%"Eo[7kl'99!3#F<"ET4$iqqs>J,~>
+l2LeY+m]14%Y!:(qYmPq!-%l:"CdA+lM^PY!rgXNo)JnUT[EB1iVrr="TAB)&o`Z8iqiKN!,D-+
+"@J<imJbT7!$Ce4"@e9\kl'99!#Y5+"D!A#kPaWEJ,~>
+l2LeZ@I-Si;OZJ3qYmPq!1EdX"Dj(5lM^PY!rh%Mo1B-rT[EB1iVrrE:&[`g:iM6!iqiKN!0m+J
+"CmS4mJbT7!+>Cj"Cd8#kl'99!*etc"Diq+kPaWEJ,~>
+l2Le[O6hB#KWa2$qYmPq!4_uX"EKL;lM^PY!rh;5npgh8dI[@rrrMYArdY0"E/:s^qYC-k[.JkO
+HBH/5rmUlIO7Rl)G)EoqrS.>PN:DE$E/D0hrTO93~>
+l2Le`R-FYS0!+4.r2fnu9`4qoEg"H1rqQKoqb-M\":L1%kksE>!.4YE"[[F%b4#<)rrA>V!!G!5
+]]f=Crr=/4!!GcK]BK4KrrCC8!!O'WP/Zhfkl6/~>
+l2Le`Zg(-cB"I-tr2fnuJGi(CEg"H1rqQKoqgS-/"AXrikksE>!2BEa"^cJBb4#<)rrBCt8d&@U
+]]f=Crr?Hu8d&U\]BK4KrrCmF8d/%3P/Zhfkl6/~>
+l2Le`aQe9YOMp;Sr2fnuVYu#JEg"H1rqQKoqkNb5"FlHFkksE>!58>]"a"sWb4#<)rrC15J-:4V
+]]f=CrrA,OJ-:%Q]BK4KrrD6PJ-C=@P/Zhfkl6/~>
+kl1\U.-U^79YB]crN?/#/H,VQ%<Rr\nc&=`!WK_%!!??&g%OG*!W*`5!!NXDKWj5,q#:?5oDf"9
+Ks]q=e,KCio)Jn_MS&*Nh#@A$nGi_PGb3=TrojB4~>
+kl1\VAa)eiHcGCGrN?/#B`:U-:3;iHnc&=`!WL=68cs%3g%OG*!W61$8d.q+KWj5,q#:?EoL]6c
+Ks]q=e,KDUo1B-pMS&*Nh#@AKnO`shGb3=TrojB4~>
+kl1\WP3IK"SBgHprN?/#QMuC<IWUq#nc&=`!WLdCJ-1D&g%OG*!W@uVJ-CC?KWj5,q#:?QoRI'l
+Ks]q=e,KE/o7-seMS&*Nh#@AfnULddGb3=TrojB4~>
+kl1__]*%9t"TqN7m.^I_rr<?(!!F0aS^I*'rrMsQo)Jn8QH/Ckj8T+Wr;[!XFHjc2rV6BmmdpJ^%
+Y1Y;q:#?D+7fI87Z+hArS@JSq],/,"Ti+aXkrm:s*t~>
+kl1__b=q.m"\a?dm.^I_rr>mp8d&%:S^I*'rrMt6o1B-dQH/Ckj8T+prCR5sFHjc2rV6Bmo(5NW
+:4TG&q:#?D@.Qtn@Z%e]rS@JSr*Jnc"DWOjhYH@7J,~>
+kl1__f7E1:"bE;nm.^I_rr@`OJ-:4DS^I*'rrMt`o7-snQH/Ckj8T,.rI>&pFHjc2rV6Bmp@Nk<
+IXnNVq:#?DO7Rl)G)EoqrS@JSrJpDu"E/mohYH@7J,~>
+kPkSXIcg\8"&HSrp\b#trrD*X!!FToUXo/4rrN(nnc/c4ZJbQ=rr>1\!!WL7J>q2prqQKorYP2,
+"*gWopXB-B+7fI87Z+hArS@JRTCDmb-?>3`lMTiFJ,~>
+kPkSXTBAfN9RXtJp\b#trrDB`8d&1@UXo/4rrN)2nk'"5ZJbQ=rr@0>8d/s[WS$qDq#:Bo>4bDh
+HDK3fe,KDUo1B-pMS&*Nh>[JenO`scEfe*%r9+*1~>
+kPkSX\EAAHJY1<Up\b#trrDTfJ-:.DUXo/4rrN)CnpggsZJbQ=rrAYhJ-BnBWS$qDq#:BoMtDN%
+I&,Ehe,KE/o7-seMS&*Nh>[K$nULdfEfe*%r9+*1~>
+kPkV^nP\HK"[]6TpAFourrBt8!!G$*WS@4@rrMd5o)JnST$R!,jo5>,r;[!KEf[rur:^-j9(W)c
+@[tj<e,KCio)Jn_MS&*NhZ!WR,k:p>!aC&Ie+EY&s*t~>
+kPkV^nU]do"a.KDpAFourrCRI8d&=HWS@4@rrMh"o1B-pT$R!,jo5>:rCR5oEf[rur:^-jIe657
+E1G>Je,KDUo1B-pMS&*NhZ!WSA+<.pB7-K'o`"%RJ,~>
+kPkV^nY>2r"e*NupAFourrD$VJ-:+GWS@4@rrMkRnpgh6cgq(srrD6\J-C4=O1siUpAY,goRI$i
+SC-uXrrA,OJ-:%Q]BK4MrrN(]nULd]I&#0_roa<3~>
+k5PM[k=4M4"YQ&$o_\WtrrA\i!!GK:Y2K0LrrN(So)JmuLqMmIjo5<jr;["&I%o*^rq??lEqB>7
+:6irjrm^rJ+7fI87Z+hArSIPSL[b?J.rpT[jnn3?J,~>
+k5PM[k]l/\"_b%#o_\WtrrBY/8d&IOY2K0LrrN(so1B-[MnJ3Ljo5=CrCR6*I%o*^rq??lRe02T
+B9gU.rm^rJ@.Qtn@Z%e]rSIPSWpr[b=)s82jnn3?J,~>
+k5PM[l($gb"d6X`o_\WtrrCCDJ-:%HY2K0LrrN)6npgh$]]T+QrrB>&J-Bq?U=8c6pAY-&oRI'j
+Q-&OpeGfN0o7-seMS&*NhZ!SnnULdeEf@Tkqr[p/~>
+k5PP_q;O6k!!O-]eFE>4])MbXr;ZsmKs]q=o`"sU%eBZ&;Q&1@k5PJN#lXf-)KCYEjSSWM!1i`^
+"?MRZli,E6!$Ce4"@e9\kl'E=!RD&B!!WjDI\bE`roX62~>
+k5PP_q;Z;O8d/=ag%"k9])Mc)rCR3%Ks]q=o`"sY<:`]aDPu.\k5PJS;#X&j;K7T(jSSWM!4h_o
+"CI2*li,E6!+>Cj"Cd8#kl'E=!SpTC8d8%+I\bE`roX62~>
+k5PP_q;de#J-Cb7hXUC>])McErI>#mKs]q=o`"s]L@]otJu@8pk5PJVK`6K*HuY%RjSSWM!7(4e
+"F?*Eli,E6!0?`%"Eo[7kl'E=!U#.,J-LI?I\bE`roX62~>
+jo5G^pYS?t!!WX*Z0h8_rk8=3=T&4&=,OWRrUg*jr+Ya&"<*NDm/?,I!/pdU"\F!1cLCi+rrC15
+!!FU(\E<_=rr=/4!!GcK]BK4OrrM:.nc/jq:Nhr;kPF<?J,~>
+jo5G^pY^2R8d8%@_X7'prk8=3M#BpKBSsFcrUg*jr0-_E"B:W)m/?,I!3Q2l"^u\IcLCi+rrC^D
+8d&4O\E<_=rr?Hu8d&U\]BK4OrrMOtnO`soG*B`)qW7a-~>
+jo5G^pYhS#J-LV"c0b6&rk8=3XSmYPFGd]orUg*jr3GpE"FlZTm/?,I!6+ne"`ns[cLCi+rrD*O
+J-:7U\E<_=rrA,OJ-:%Q]BK4OrrM_SnULd_G*B`)qW7a-~>
+jSo>]p>/^*!!OX"g@G+=^]+9nr;Zt2Nkju[o`#!ldf]1A")b@#puq_Yq],S8"Uo7&ZJbNMrrDW^
+!!F!fYi,B-rr=/4!!GcK]BK4PrrM^JnGibPEepsSp&=(QJ,~>
+jSo>]p>:>W8d/[thX^OA^]+:RrCR3/Nkju[o`#!lhG!N5"+7?1puq_Yr*K@p"\rriZJbNMrrD`a
+8d&"CYi,B-rr?Hu8d&U\]BK4PrrMh3nOa!iEepsSp&=(QJ,~>
+jSo>]p>DP#J-CtCipusE^]+;(rI>#lNkju[o`#!ljb!)S",=&;puq_YrJpl-"b(BEZJbNMrrDid
+J-::PYi,B-rrA,OJ-:%Q]BK4PrrMqanULgdEepsSp&=(QJ,~>
+j8T8]p>U&nhuErc:Tj*Yr;OS5!#5A3"EK[Fmf)hX!W,O]!!G-KcLLnurrB+u!!PE,QH/Cko`"sk
+-M7?A"+@-%psf<D+7fI87Z+hArSmhXj!aEt"tFPCV9n]/jSs`~>
+j8T8]p>V6/i(=2KJ&(IFr;OS5!*K1l"EK[Fmf)hX!W.?;8d&LkcLLnurrC"98d/LDQH/Cko`"sk
+AG&Ot97<bmpsf<D@.Qtn@Z%e]rSmhXlXoZZ#$5_pV9n]/jSs`~>
+j8T8]p>W'&i.)#`U!;uur;OS5!/g`*"EK[Fmf)hX!W/Y_J-2=enc%eQ!7h$us)nL1a6iitrrN+^
+oRI$lW7q$rrrA,OJ-:%Q]BK4QrrMYSnULggDh=h4n,28HJ,~>
+ir9/\pZ.SOh>d^)K])IurPed:oDJXm%<Rr\o)A7\!WK_&!!EL[]&ihRrr>1\!!NI<JZIN!o)A\b
+oDeu+T@<J_rr=/4!!GcK]BK4RrrK_KnGib<D18(tlMBQ@J,~>
+ir9/\pZ/;QhF[r\U>tkArPed:pAISe:3;iHo)A7\!WL=78d%hD]&ihRrr@0?8d.k(JZIN!o)A]@
+oL]4+T@<J_rr?Hu8d&U\]BK4RrrLGMnOa!cDLS1ulMBQ@J,~>
+ir9/\pZ/f;hLGci\E*8XrPed:q>GgIIWUq#o)A7\!WLdCJ-1_@jnn<B!1s.>"E8pmg@t1<!2fC=
+"+-Zhp!j!AO7Rl)G)EoqrT!nYh2LlS#'k-9T#g3nj8XW~>
+iVs&[puoFNh#ITiD9q_HrQ"p<ci!hH)0h_#o^Vq^qCM4<"AP`Dp&=:W!6b<@"Y=_W_!:jgrr@67
+!!H2dbOPS^rr=/4!!GE?\`WhOrrM_0n,N\IDgn4ok5##:s*t~>
+iVs&[puoY3h+@iMP1K-trQ"p<h>KqK;L"b\o^Vq^qIoIm"Dajbp&=:W!8@BD"^#i._!:jgrrAY_
+8d&jpbOPS^rr?Hu8d&IV\`WhOrrMh]n4EpgDgn4ok5##:s*t~>
+iVs&[puoe]h1,Z`Y1rI@rQ"p<kP]o6H[)+0o^Vq^qNUT%"G*E#p&=:W!9O00"aG*N_!:jgrrBY&
+J-:1bbOPS^rrA,OJ-:+Q\`WhOrrMr)n:1aeDgn4ok5##:s*t~>
+i;Wu[qWuaU$Jb[c#%#OAq#/>7!3c>$"=&5ef(SY6!WAP[!!F%"_s@9err?=&!!QPSUt,,:o)A]d
+oDf"ZOMgGaec,Uknc/h9HIhZarosFaqk"ku!!i`qEe9n#jS/Z5s*t~>
+i;Wu[qWuaq:u+_I:5I?dq#/>7!64t0"BBcBf(SY6!WBIu8d&%T_s@9err@uU8d/mVUt,,:o)A^(
+oL]6qOMgGaec,VWnk''gOk91$rosFar4?;*8dJ*tEe9n#jS/Z5s*t~>
+i;Wu[qWub0K&(q\Ju72gq#/>7!8%1""F5<ff(SY6!WC14J-:@b_s@9errB5#J-Bq@Ut,,:o)A^;
+oRI'jOMgGaec,W1npgmqU=f&6rosFarQgMoJ-^XGEe9n#jS/Z5s*t~>
+hZ!`Uo%pZ;g].K^?-_m5rQG3@Mu<VY0RftTq!e:anJ:]r")+moq!A"]k61ba"W_T@]&rn[rrCI=
+!!Fg/]''%Brr=/1!!X3S]^Y^orpKdflAHnV!!jBGG)3!9k4el6s*t~>
+hZ!`Uo%poqge%`FLXbberQG3@Xo1ip=am=(q!e:ao3(ZW"*h$*q!A"]mS3[Q"]KE!]&rn[rrCpJ
+8d&:R]''%Brr?Hr8d8C[b4,3(rpKdfn>p-h8dJ:-G)3!9k4el6s*t~>
+hZ!`Uo%q*DgjfQ[V:b52rQG3@`Vk;iG^cUGq!e:aonr?k",*l6q!A"]o7Hsl"ab6I]&rn[rrD6S
+J-:4U]''%BrrA,LJ-Lh3eF<82rpKdfoYls^J-^L@G)3!9k4el6s*t~>
+h>[ZWpZTt`,hrA'$uO\eq>SY=!,2<2"?M+:htljB!W@H<!!FsDbjbW!rr@EE!!Q#@T$R!,nc&Xd
+"SD`t(50!Qqpk]H+70%7)dScMnbN(\rr2]m"THu<9*F_a#ms"=IZq"_lM:G;s*t~>
+h>[ZWpZTtq?JJ-V;N]c(q>SY=!0mFS"C6S]htljB!WA_`8d&IhbjbW!rrAel8d/[LT$R!,nc&Xe
+9_D!\;M;@8qpk]H@-pPm>`#`8o(i1]rr2]m"TIDfIn]?(#u+cHIZq"_lM:G;s*t~>
+h>[ZWpZTu)LtmLaKWEquq>SY=!4;]T"Eo@!htljB!WBY%J-:@jbjbW!rrBb2J-C">T$R!,nc&Xf
+K(XWsI>"ocqpk]HO6qH(MlF\OoD/:^rr2]m"TI]/V1S2e$%?u9IZq"_lM:G;s*t~>
+h#@TXqXE@]F;EX3"W<3Xo)&F4rr>Rf!!GcE[,_)QrrM$_oDf!sK"0n=mf*=^'`J(9%W7$-i;)mB
+!WFSA!!EISWS@3urr=/*!!`TO7UCD#R[X2E"+FiG&+0E)&j^D^N2+/Bn,!%@s*t~>
+h#@TXqXE@]N`Oq-"^7_^o)&F4rr@HF8d&RU[,_)QrrM:YoL]6ZL:H=Amf*=`=T1nr:2blni;)mB
+!WHa)8d%h:WS@3urr?Hk8dA%!HAeDs[^Q.D"/:s%<UNHd:g\3hN2+/Bn,!%@s*t~>
+h#@TXqXE@]TS2*N"c9\Jo)&F4rrAknJ-:"J[,_)QrrMJ=o7-q#\E*PTrrN"SrdY0$E/(^Wq=+Cb
+rfm)+"Fkm"g\B>!!0?Ap#_J/2XLc<lb00e."2;(4L[K["I!'IVN2+/Bn,!%@s*t~>
+gA_BUpZpGDA.IAp"?!RMpANA<!$qLC"B1,fkPalL!W6-m!!Gffeb&k0rrADa!!PH-QcSUnn,EAc
+oDeu/T[`Ybrr=.]!!t5jG_r*'dHC3#h>`!~>
+gA_BUpZpGEK2UJs"Dkm;pANA<!+Yt""D3J$kPalL!W7cF8d&h'eb&k0rrBJ*8d/LDQcSUnn,EB@
+oL]4-T[`Ybrr?HI8dSU9G_r*'dHC3#h>`!~>
+gA_BUpZpGFRY'=F"I$pjpANA<!0[;2"E]I2kPalL!W8thJ-:G!eb&k0rrC7@JH'cpQcSUnn,EBd
+oRI$jT[`YbrrA,#J-gF<G_r*'dHC3#h>`!~>
+g&D<Vr:K4%ZsO=!!!NREf^AS7df0:Mr;Zt/NPFcWn,EFfa7B96'9U/sr9sXc./j2M")!1dg\:.9
+!.shC"B:c4o)@5?!$Ce4!\Go/f)Q$Y.ri5UmeZq<s*t~>
+g&D<Vr:K4%[t%?38d.qNg$\\8df0;@rCR3.NPFcWn,EFfealB9;3A`\r9sXcB)YC+95K0\g\:.9
+!2fB\"DX=Jo)@5?!+>Cjs&]7qf1H9@?&-/JmeZq<s*t~>
+g&D<Vr:K4%\<qm(J-CP'g@"e9df0<!rI>#lNPFcWn,EFfht)@$J!%V5r9sXcPl6+8Dh5"Ep[8%]
+_"<-[HC2qIrmq)LO7Rl'GBn\hJ-LRk^=r#OrnRO(~>
+fDc*Tqt&mqZ=k!/!!FdZk4SZ%rrCgO!!I,#`9mQlrrN!Vo)Jl'Xk`^@rrBD(!!OopP/6G]mf*9h
+oDf"ZOi6Ydf)G^lo)Jt_FFe0r+9^j-":,u"5ofV!"W2O:o(i7?s*t~>
+fDc*Tqt&mq[=hQ98d&\=k4SZ%rrD3Z8d'*q`9mQlrrN"9o1B+.Xk`^@rrC1>8d/=<P/6G]mf*:*
+oL]6qOi6Ydf)G_Xo1B3pFFnpW=A7mM"AMfu@TE.p"^.;Lo(i7?s*t~>
+fDc*Tqt&mq[[;^'J-:nOk4SZ%rrDHaJ-9qU`9mQlrrN"co7-prXk`^@rrCaNJ-C1=P/6G]mf*:;
+oRI'jOi6Ydf)G`2o76j_"+uJeK'%RdIXHHeIeS?rLp>k.q>K.LJ,~>
+ec,mRqXNUl\8s"R!!E[eh!k3krrB\0!!NOIQ-/Uqmf*=eV"4Qh.@JBJrpg!g7/[)h>(*3sp&=CZ
+!7g]A"=oAAkl'*4!$Ce4%7Pf?[^N-%G$@?g+VbIZ!"98O,rS>#EdiXsO-3'-!!NdIf^S_8huA3~>
+ec,mRqXNUl\;FVL8d%t`h!k3krrC@C8d.n0Q-/Uqmf*=e]^n_u>+*S&rpg!gHMpG>B76T+p&=CZ
+!9*QB"BgVokl'*4!+>Cj%:Od[[^N-'KQV!8=&Mie8dnHm='fHTGCG1#O-=PV8d/+Tg[P%;huA3~>
+ec,mRqXNUl\=860J-:M/h!k3krrCmRJ-CFDQ-/Uqmf*=ecLZPhJ!nLKrpg!gUA]TGEIFY5p&=CZ
+!9s-+"FH$<kl'*4!0?`%$?grm[^N-'Nei@=rdXTk%"<VPH[0m_IY3H;P`>Be"bj&7nG3%?s*t~>
+e,K^QqXNXp]SSiUhZ*dcdd-`.fDbi;r;Zs2G+-bKm/I+Z)Y="4!dqH:qXXXdci!hI)0(SGjnnHF
+!WEAt!!F'jZJtc4rr=/4!"qbW[+OEmcGI#jU7.@/N.uLtF8U%iGCbC#LlIRcTW#**_T9cO#ke6%
+'7o05qYoIRJ,~>
+e,K^QqXNXp]U*D-hb"$(dd-`.fDbiYrCR2fG+-bKm/I+[>P(Mj98'b6qXXXdh>KqL;K7W+jnnHF
+!WGmf8d&%FZJtc4rr?Hu8ePTh[+OEmcGI#jU7.@/N/2t4I/J:%I=[$)LlIRcTW#**_T9ce:A.9`
+<hA=@qYoIRJ,~>
+e,K[PqXNXp]V18?J-;IllhUP3rrC7@J-::DRa:TlrrMkQo7-q"[c@5TrrD6\J-C:>Mn8$ImJd4d
+K_9iuI>"ocqptcIO7Rl7G)3NXj4_eq[]?-kQ&pr\L4k3WK)^B3K8#,@P*quAYdqWla/agcJ-C_7
+iplmEiW"E~>
+dJjLOqXWe!^nP'OhuEmGa6*0rf`(qrr;Zs=Gb<LYm/I+bJb&jE7&&-%rq$-i>l=X+8U6lPo)A%V
+!WF_E!!EISWS@4!rr=/4!"qbY]'&n`o'>Amf$DIU^:LbYYPPC4Z*h0Y`m*#fiTBLrmc()Uo`,+G
+ZKCiXir=N~>
+dJjLOqXWe!^nuHZi(=,kaQE9sf`(rDrCR2jGb<LYm/I+bV"71]B;3iHrq$-iMu?6O@<nEho)A%V
+!WHj,8d%h:WS@4!rr?Hu8ePTj]'&n`o'>Amf$DIU^:LbYYPPC4Z*h0Y`m*#fiTBLrmc(QPoh#?u
+^?5+dir=N~>
+dJjLOqXWe!^oEQMi.(roal`Btf`(rarI>#tGb<LYm/I+b^%-[UU=/]5oD\fnrI>&mH(E7OrpB^d
+rg*5-"Fkm"g\BA"!0?`%&pB/DkP=lClf?mQccO)=]!eoJqQ:@6[CX/nc.(M,k3VU*ikC0?J-:tR
+k4SZ3s*t~>
+ci4=Nqt97.aKp@Q"QBCa3PjeMrn7;O;uH\!-@DWApZqh[j9P;W":pO.l2:2R!TO=^!!NdJL9fb5
+li-rkoDeu,T[`Ycrr=/4!"qbY]BK4nrr2ikp@Ie?lK@9hi;;C=i8Wh\lL+69q"jpfrWDu]ZQAc>
+"U8r"meZqDs*t~>
+ci4=Nqt97.aKpt>9]AYIC;T'*rn7;OL&FUH<d^^qpZqh[l;.%E"Ak/pl2:2R!UEJZ8d.t-L9fb5
+li-sDoL]4,T[`Ycrr?Hu8ePTj]BK4nrr2ikp@Ie?lK@9hi;;C=i8Wh\lL+69q"jpfrWDu]^0L>'
+"\k-5meZqDs*t~>
+ci4:Mqt97.aKqCmiID&l_rUOjg&D&PrI>#rI&,Ehli."RKCjZsIuqJ1r:L!inUgaj"b(BEZJbQE
+rrB4oJ-11leFhDm!0?`%&pB/Ekl(P\rquTcoC2,3kN1a^qqhb=ioK:fmdg&GqY^?l"8V6&MY2K'
+JuIDkqYoRUJ,~>
+c2S+Lr:fX<d(PlG%c[Nl2nn;Frn@AP2#RCW0n-+Wq<S%]r*Jsp"'qt]p[nIcF8Z(B3Hg_/mJZAN
+!/gCK"B(W2nc%/?!$Ce4"@e9\kl(AXs8N&ss8;]h"oJ5rrVlflrr`/d_]SLN"?sffp\s:SJ,~>
+c2S+Lr:fX<d(Q/s;<(7OBu&a%rn@APDZ*01>(3I+q<S%]r/:/="*:Nsp[nIcSGc%`>]uFRmJZAN
+!3>`a"DO7Inc%/?!+>Cj"Cd8#kl(AXs8N&ss8;]h"oJ5rrVlflrr`/db$FX3"E;HFp\s:SJ,~>
+c2S+Lr:fX<d(Q<<K&_@aNPOQIrn@APRf.a>G^cXIq<S%]r2fL?",!Z.p[nIc\c%$^F`s(kmJZAN
+!6"M["F?HZnc%/?!0?`%"Eo[7kl(AXs8N&ss8;]h"oJ5rrVlflrr`/dc\qFG"I.*mp\s:SJ,~>
+b5VbGqXWk&`iNbjj8]<@^>ekcg]%6br;Zs]JZdr-li."b`:Es3-()dArV$6lmh#Hu"Tr7bX4m=5
+rrB=r!!GKI_sIBSrr=/4!!GcK]BK4Lrr`2h\eF]9"<t22o_mqPJ,~>
+b5VbGqXWk&`ianpj@TPh^Z+tdg]%7RrCR2uJZdr-li."bddp'6=d[:urV$6loMtl_"\WT\X4m=5
+rrC+38d&Ra_sIBSrr?Hu8d&U\]BK4Lrr`2h`E)V'"CA[uo_mqPJ,~>
+b5VbGqXWk&`itb^jF@Am^uG(eg]%80rI>#oJZdr-li."bhXc7#J!e=FrV$6lpPAcu"E/gkg@sn4
+!8$jn"F?0Im/GW:!0?`%"Eo[7kl'?;"8q]7L\-*"MSJ-BrT=-1~>
+aSuPFr:]L7c+%g=jT#EP_;tCjh>[K@qu?jgKXBh<lMgn^2"UbN!d_65qY'phO8T%^-?>3`l29iH
+!8d>J"=8o9kPa$4!$Ce4"@e9\kl'<:"8q_s$1n3#'qsFRr9+*1~>
+aSuPFr:]L7c+&X9j[oYp_;tCjh>[KFr(7*#KXBh<lMgn^DY$I&K!aP6pAY,srCR5oEfe*$r9F:^
+kO_@L=,FNOrR_&L@.Qtn@Z%e]rS7DTr:7^$oL]6eXk`LFkPp&~>
+aSuPFr:]L7c+'6tja[Jq_;tCjh>[KJr."omKXBh<lMgn^R.Gh1LpZ1<pAY-5rI>&rEfe*$r9F:^
+mdu#4I#5GtrR_&LO7Rl)G)EoqrS7DTr:8'aoRI'u[G:?NkPp&~>
+`W$2Aq!d=l]RM<k!!?`Lk5!j5!6b9?"B1,ekPXWF!WJY]!!GEWdI[A4rrN!6r;["$I&#3`rp'La
+rX8B!";?BkiVM1+!$Ce4"@e9\kl'99"8q_Z"7uQr&#@nLr9402~>
+`W$2Aq!d=l]TQXa8csU^k5!j5!8@?C"D3J#kPXWF!WKS"8d&[tdI[A4rrN%%rCR6)I&#3`rp'La
+r_iD]"Aj]SiVM1+!+>Cj"Cd8#kl'99"8q_p9_:p[;QSRBr9402~>
+`W$2Aq!d=l]V(&BJ-2(Tk5!j5!9O-/"E]I1kPXWF!WL:5J-2IloD\Ob!W@uUJ-Bq?UX\r8lMgna
+L@p'"I=e]^qUb`IO7Rl)G)EoqrS.>Sr:7[ToRI'sZJ"gHkl6/~>
+_uBu@qXWe!^OdTl!!E@Ub3Sr]rrAtp!!HSd^?Y[]rrMX&oDf"%N4nHQq#:>dr;[!:E/M0dqs"+]
+r\jEL"9NkHgA';"!$Ce4"@e9\kl'68!rVP*o)Jn2WnHtAl2Q8~>
+_uBu@qXWe!^Q_sd8d%eMb3Sr]rrBk48d&mf^?Y[]rrM^loL]6]NkOZSq#:?+rCR5jE/M0dqs"+]
+rc%L%"+7$#pt,NG@.Qtn@Z%e]rS%8Qr:#pA8d&8!g%,++s*t~>
+_uBu@qXWe!^S6JGJ-2@blhfQ=!7Ujr"ETO9lM]uI!VM9@J-:@^^$,ChrrCCDJ-C=>MR_aEl2Le`
+Re2+4I](opfDbi3o7-seMS&*NgA_6Pn?2A5"GO/7o)7hQJ,~>
+_>ac>qt0+(^ip[\!!Eq.dd[4mrr@iP!!Hnq_sIBerrN(=o)JkpWS."?rr=bO!!P]6S':C$kl1Wp
+oDeu&T$m8_rr=/4!!GcK]BK4HrrW)b4nAXV.^\"(rp'N6~>
+_>ac>qt0+(^lDL\8d&(gdd[4mrrB(s8d'$n_sIBerrN(do1B+(WS."?rr?m68d/OGS':C$kl1XG
+oL]4)T$m8_rr?Hu8d&U\]BK4HrrW)bF7W!,@("e_rp'N6~>
+_>ac>qt0+(^n?DGJ-:J%dd[4mrrBt7J-9tU_sIBerrN),o7-ppWS."?rrAGbJ-C%>S':C$kl1Xg
+oRI$jT$m8_rrA,OJ-:%Q]BK4HrrW)bRe)%4Lpl+3rp'N6~>
+^]+Q<r:T:)]OqT:!!GKkh"La*rr?U-!!IA-aRB,lrrC^C!!FI2a6ij%rrBD(!!NRBKWs>.kPkOB
+oDf"fQHAXqf`(pno)Jn_MS&*Nf`)$LcjfRH"Albjq#9UZJ,~>
+^]+Q<r:T:)]nK8I8d&k6h"La*rrA2Z8d'4"aRB,lrrD$L8d&4]a6ij%rrC1>8d.n*KWs>.kPkOb
+oL]7!QHAXqf`(qZo1B-pMS&*Nf`)$LfMhB6"E_<9q#9UZJ,~>
+^]+Q<r:T:)^70`>J-:\6h"La*rrBA&J-9qXaRB,lrrD9SJ-:@fa6ij%rrCaNJ-CF@KWs>.kPkP%
+oRI'jQHAXqf`(r4o7-seMS&*Nf`)$LhM(QO"HL.Sq#9UZJ,~>
+^&J<9r:K4&Y!D:Q"9O%gkka6;!'pJ_":B7<bjsrs!W5=V!!@;Ji;*6L!'pJ_"Yb%_`U*QdrrBJ!
+!!G0>_!D!Prr=/4!!GcK]BK4GrrW2pN:R#P!e\MXqs494~>
+^&J<9r:K4&Zu>8&"A=Wgkka6;!-eB6"AO!*bjsrs!W7678csOJi;*6L!-eB6"^,r3`U*QdrrC46
+8d&I\_!D!Prr?Hu8d&U\]BK4GrrW2pWq/gc99@0Yqs494~>
+^&J<9r:K4&\<6',"-gXcqV_ART`'BDIWUt$o&p#Rr1NY3",F2?q>1*kT`'BEG'&tfm/?,I!87!p
+"FH0Eli,Q:!0?`%"Eo[7kl'06!rhu0npgh1`p3Hes*t~>
+]Di*7qt&moL_B%S"=g4qo)@VJ!$(q;";#dIdIcW%!WK1l!!G?Sd.726rrC+;!!QVVVqC_BkPkPH
+oDf"<LUQ=Bf`(pno)Jn_MS&*NfDbpOn1+#0"<aVko)7qTJ,~>
+]Di*7qt&moS5eiI"C7hOo)@VJ!+#Oq"Aa63dIcW%!WKt-8d&Upd.726rrC[K8d/jVVqC_BkPkPN
+oL]6eLUQ=Bf`(qZo1B-pMS&*NfDbpOnRqGc"BhYOo)7qTJ,~>
+]Di*7qt&moWeB_h"G3Gto)@VJ!07#."FYKadIcW%!WLO<J-2Cio)ARe!9=!-"`Spgf_5=-rrDZ_
+J-:7T[cRG>rrA,OJ-:%Q]BK4FrrW2jPOj;-Ju@)grTsQ7~>
+\c2j4qXE@Q46uqLHF`,5ir9#Uqu?j<H(`[\k5PJU)Y="4$&H7Wqu$Ho;#L@t*c[.OkPOEA!WEc*
+!!EXZXl'!-rr=/4!!GcK]BK4ErrN%nnc/c%\)R5Ms*t~>
+\c2j4qXE@UD<sjsKXp1?ir9#Vr(7)iH(`[\k5PJV>kCVk:5cdJqu$HoK)J:F;fRc/kPOEA!WH0n
+8d%k=Xl'!-rr?Hu8d&U\]BK4ErrN&0nk'"1\)R5Ms*t~>
+\c2j4qXE@YOmIT#N4J$Gir9#Wr."osH(`[\k5PJWN:_W'IuM&'qu$HoW;V5MH?"nVkPOEA!WIrK
+J-:=OXl'!-rrA,OJ-:%Q]BK4ErrN&Anpgh$\)R5Ms*t~>
+\,QX1pZg7G!q$$k3hb!mro="YfDGUO-%)N@pZDJVrHe&8"&c)MpAP!kg\_$T89pfRo)@eO!WG:T
+!!@8;fCmks!$Ce4"@e9\kl''3!V@E(!!F./bO5>rs*t~>
+\,QX1pZg7g9^YLUA"h?Aro="Yj8;LP<d^^qpZDJVrL`[R")b'ipAP!kk57gT@!S?jo)@eO!WI66
+8cs=6fCmks!+>Cj"Cd8#kl''3!VKdj8d&+`bO5>rs*t~>
+\,QU0pZg8(m=5=jU!iN2j8T,Fr."oqI&,Ehk5PJ\](:FSJuI>qrVllbr."rkH(NCRroX4]rgrb4
+"+6orp=TBFO7Rl)G)EoqrRLoKp5SWn".[R&rU'W8~>
+mJd4QqYpK?rrrE!o&#]Bmf3J"NkOZSj8T+gqu?jNI];)tjo5A:"S;Zs)O/5-rVlfs?i9s.$>bI'
+iVDR7!,D-+"BLu:o)@>B!$Ce4"@e9\kl''3!W@<7!!@#BhtZU=J,~>
+mJd4Wr;Q]ArrrE!o&$BDmn*^YNkOZSj8T,'r(7)oI];)tjo5AB9_:p[<0YAgrVlfsNr;QR9l>]l
+iVDR7!0m+J"DjOPo)@>B!+>Cj"Cd8#kl''3!WAV\8csIHhtZU=J,~>
+mJd4[r;Q]ArrrE!o&$m/mskOjNkOZSj8T,6r."opI];)tjo5AHK(OQrJ!@q=rVlfsYPitTIVsnH
+iVDR7!4;BK"FHT_o)@>B!0?`%"Eo[7kl''3!WBV#J-1V5htZU=J,~>
+n,EUdIh7t8oD6`3"TA)XY8cp1"(nRepZ)8RQi$gd2h8'gqW7_Xr'^,V#B6p)q#CBW"T8<(20G5*
+mJZ,G!0QmR"@/-hmf(o>!$Ce4"@e9\kl'$2!6t'7">H@jnG_kUJ,~>
+n,EUfUfFbioD6`3"TA)X\m"Pp"*U]upZ)8R[JWW">_'!7qW7_Xr-@m+#CNc5q#CB^:&RZf>'6.O
+mJZ,G!3l)f"CdP5mf(o>!+>Cj"Cd8#kl'$2!8@!9"C@VCnG_kUJ,~>
+n,EUh^PKr!oD6`3"TA)X_hmi4"+mQ,pZ)8RbPZknGCZjRqW7_Xr1NY3#DTJ?q#CBcK)L6"FT[rM
+mJZ,G!6Fe_"FH<Nmf(o>!0?`%"Eo[7kl'$2!9<U"".[X*rpKf:~>
+n,EX9!!!tXg$nparri>tm(a\3!!GTUbjk\nrr@0=!!GQ>ZJtcCrrN+qo)JtOSBg[(s)7i9"Ti+_
+WnR1,rrC%1!!F^-]]f=Irr=/4!!GcK]BK4CrrN$5o)JmtL:QFCmf.e~>
+n,EXH8kN@1g$nparri>tm)WK%8d&[mbjk\nrrASe8d&LRZJtcCrrN,4o1B3oSBg[(s-`dW"DNCd
+g@jS,!7g^6"B^Pokl'37!+>Cj"Cd8#kl'$2!W6-m8d%hD\`N_Vs*t~>
+n,EXSJ:NR#g$nparri>tm*1FWJ-::gbjk\nrrBY.J-:%JZJtcCrrN,Fnpgn6cLLo6\,:aZDh+kA
+p>c/QiUhX'I#>T#rRq2NO7Rl)G)EoqrRCiJr/1&q",aYNqsOK7~>
+n,E[i#QOj,[bUTUbl7eBnAQL>!!FL)^?GLUrr?!q!!G`F[cRGJrrMg/oDf("Kt?FDmg/jl"WqcF
+^?GLTrrDKZ!!EsfZJkZ5rr=/4!!GcK]BK4CrrN*rnc/buVUtP0s*t~>
+n,E[k:J+6*[bUTUbl7eBnB>5/8d&1R^?GLUrr@cN8d&RW[cRGJrrMjsoL]<]Lq;aGoMGKY"]TN&
+^?GLTrrDW^8d%tCZJkZ5rr?Hu8d&U\]BK4CrrN+Nnk'")VUtP0s*t~>
+n,E[kKReT;[bUTUbl7eBnBm3bJ-:7Y^?GLUrrB(sJ-:%M[cRGJrrMnPo7."&]&rnaK`-E)H?,%[
+kksK@!;?&8"FYp.iVM7-!0?`%"Eo[7kl'$2!WK"eJ-)V"p?qs2~>
+n,E[m4obQgMSn]VbPq\Bo#)44!!ERZYi,B=rr=kQ!!H5W]'0+RrrN(9o)JnfVUkEiqu?moHD&^X
+ro="ZrYP2,"*g`tpt>ZI+7fI87Z+hArR:cHII[@@3L7bTrpTl;~>
+n,E[mG"PA%Oi-G]bPq\Bo#t/*8d%k?Yi,B=rr?s78d&a_]'0+RrrN(ao1B.$VUkF9r(7-%HD&^X
+ro="Zr`\qd"+-s"pt>ZI@.Qtn@Z%e]rR:cHU@LnZ@$\n&rpTl;~>
+n,EFfT)O6BQG_tbbPq\Bo$W<aJ-:@RYi,B=rrAMcJ-9tN]'0+RrrN)*o7-spVUkFTr."rkHD&^X
+ro="ZrepE!"+I0%pt>ZIO7Rl)G)EoqrR:cH^%-[VI?qtCrpTl;~>
+mf*90rW!'WW7LV?bPq\Bo;Vo`!!@>=f_=J,!"f&."B^VslM]cC!7CB<";d9>i"5he"Uf1&[,Ur@
+rr>O\!!?MtdIc,l!$Ce4"@e9\kl'!1!1iZ\"<!*.kPXfKJ,~>
+mf*9Wr^m<&W7LV?bPq\Bo=Rcf8cs@7f_=J,!*/qh"DEb.lM]cC!8R0<"B1N%j&Q%M"\rrj[,Ur@
+rr@E<8crt%dIc,l!+>Cj"Cd8#kl'!1!4hYm"B12hkPXfKJ,~>
+mf*9trdY-(W7LV?bPq\Bo>lLRJ-11pf_=J,!/UQ'"E]U:lM]cC!9Ng&"FlWQk(rtd"b(BF[,Ur@
+rrAecJ-1.hdIc,l!0?`%"Eo[7kl'!1!6t(b"FZ0=kPXfKJ,~>
+mf*9kr;Zq@]]K"4rrW,hB(>p(@%5O8jo5>LqZ$b0O2C8_j8T/X2"L\KBWl^Z!!P6'QcSUniVrmu
+oDf"]PfW=mgA_-po)Jn_MS&*Ne,KEZnc/dpJ?@](n,In~>
+mf*:,rCR0E]]K"4rrW,hNq,dEDk#,Gjo5>Qqaq!-O2C8_j8T/XDY$I%H*<\78d/CAQcSUniVrnH
+oL]6rPfW=mgA_.\o1B-pMS&*Ne,KEmnk'$XJ?@](n,In~>
+mf*:<rI>!2]]K"4rrW,hXR^lDHCN:Rjo5>Tqg\fkO2C8_j8T/XR.Gh0Ks.cZJ-C(=QcSUniVrnf
+oRI'kPfW=mgA_/6o7-seMS&*Ne,KF'n:1SBhYHX?J,~>
+mf*:Rr;Zs>T$Qp)b5VP@j;%7d"B(K*nG_SM!6b6>"DEt<mf)8H!WJDV!!4j?')_e6!b$VZg@sP*
+!1i`^"=f>Cl2B?9!$Ce4"@e9\kl'!1!5@t'")+CYp$_p2~>
+mf*:WrCR2nT[3-+b5VP@k?.=J"DF%@nG_SM!8@<B"E0ICmf)8H!WKCr8ci=d<r>PmBn35;pYc&O
+\b&Js=c9uXrS%8O@.Qtn@Z%e]rR:cHd.'^1F.q.Wn,In~>
+mf*:ZrI>$%T[3-+b5VP@lA>+_"F-0PnG_SM!9O*."E]gHmf)8H!WL12J,u*nr."ogJ?%>ti;Wf&
+oRI'lMnSBRgA_/6o7-seMS&*Ne,KF)nUL^hU"/i)s*t~>
+mf*=e-N*oI:p]$RrlY6AqM"M@"A"Tjm/H/I!3>ts"ETjNnG_GI!UU-a!!*3jqu?mBEfRp!r8@ST
+an,Q9'83[NqqD&M+7fI87Z+hArR:cH^@;1+<1(o"rp]r<~>
+mf*=eAGo+'EO4NsrlY6AqPNjV"D!S1m/H/I!5n\+"ETjNnG_GI!UrnW8c_Rur(7,lEfRp!r8@ST
+f^qc=:kZ.6qqD&M@.Qtn@Z%e]rR:cHdIBg3C7*68rp]r<~>
+mf*=eP5Tn6LpPt5rlY6AqRuKN"F-!Em/H/I!7gss"ETjNnG_GI!V:s8J,k3!J-C7>NkaiVi;Wf;
+oRI'mKX0V7gA_/6o7-seMS&*Ne,KF)nULagR*>+"nGe"~>
+mJd/pr;Zs)M8niYb5VPBjp1MY"@nEblM]lF!/paT"9N\3bjs`m!W?*k!!!)u!!Q&BT[NH2i;WfJ
+o)Jl;W7q%#rr=/4!!GcK]BK4BrrBe'!!G`P`9mQns*t~>
+mJd0HrCR2dP/cebb5VPBlVI.F"CmD)lM]lF!3Q,j"*BmRo&9TLrJ0u:!)*5^"_)eNde!IrrrD``
+8csI>gA'D%!+>Cj"Cd8#kl'!1!7C=/"CmP3mJcVTJ,~>
+mJd0ir."m9`p3KErrW2fKCjZsGDs9$rT=+[`VY/fFI15BiVrrWWU53>EdFD,oD[\J!;Q/9"+I3&
+ptG`JO7Rl)G)EoqrR:cHhXQ+!H'#u3rp]r<~>
+mJd0Rqu?jKW7CM=b5VM?:\4Vi6]/P?rT=+[B`%i5%<e2eo\ofNrjD.o"Uf1&[,Ur>rrN*CoDeu!
+T$d2arr=/4!!GcK]BK4BrrB(h!!G?@]]oCas*t~>
+mJd0or(7)tW7CM=b5VM?Jb2P;@>__]rT=+[Pl+,V:3N)Qo\ofNrlOS#"\rrj[,Ur>rrN+.oL]4'
+T$d2arr?Hu8d&U\]BK4BrrBt,8d&IY]]oCas*t~>
+mJd1/r."p'W7CM=b5VM?V=]9@GDa&srT=+[[/>FWIWh1,o\ofNrn$Rg"b(BF[,Ur>rrN+\oRI$j
+T$d2arrA,OJ-:%Q]BK4BrrCU>J-:1V]]oCas*t~>
+mJd19qZ$_.]&NP.rrN+foDf"[M7VpLk5PEOqu?j/GFd1Si;WiS)XdY020P>-meu#B!)E.d"@89m
+mf(u@!$Ce4"@e9\kl'!1!1r]\">GS>k5=`KJ,~>
+mJd1Eqaps<]&NP.rrN,-oL]6oM7VpLk5PF/r(7)eGFd1Si;WiS>jk8g>'?7Rmeu#B!.jc7"Cm\:
+mf(u@!+>Cj"Cd8#kl'!1!4q\m"BpPhk5=`KJ,~>
+mJd1Mqg\d.]&NP.rrN,AoRI'hM7VpLk5PFWr."p!GFd1Si;WiSN:29#F`s+mmeu#B!2fC="FHBR
+mf(u@!0?`%"Eo[7kl'!1!711c"F>g3k5=`KJ,~>
+mJd4c&,ZD1$BiR!r6#$>f^o.H7YnY>r9""Z./X&J&p^,!p#,iNrc@N."CH\Zg@sG'!.+8;"=B&>
+kl'99!$Ce4"@e9\kl'!1!.aS>"=f)2j8AEHJ,~>
+mJd4c<;]>k:702kr6#$>iq,hG@YhVZr9""ZB)G7(:jJ\_p#,iNrgN:J"DE=cg@sG'!2/sV"BUMo
+kl'99!+>Cj"Cd8#kl'!1!2T-W"B^>`j8AEHJ,~>
+mJd4cL\lT(SBC6sb5VJ,oRI'fLq;gJk5PFGr."otH(WUZi;WiW\*nhMDh+kApYGiL]_$^WI#GZ$
+rS.>PO7Rl)G)EoqrR:cH_!upXHA&Wbr:'`:~>
+mJd4d9)ASk0<Egurlb<Br<r8u"@e6Zkl'ZD!!N3""<)T\f(S#$!6t!5"Wh]E^?GLNrrAbb!!Ejc
+Z/PQ6rr=/4!!GcK]BK4Brr?U"!!Fa&YMf9Hs*t~>
+mJd4dIeu_?@'&#Qrlb<BrDN;\"Cd5!kl'ZD!)3;_"B'Q?f(S#$!8?p7"]KH%^?GLNrrB_(8d%qB
+Z/PQ6rr?Hu8d&U\]BK4BrrA2O8d&7JYMf9Hs*t~>
+mJd4dV#,ZFKrir!rlb<BrIsop"EoX5kl'ZD!.t-!"FGHhf(S#$!9<R!"aY3L^?GLNrrCC;J-:=R
+Z/PQ6rrA,OJ-:%Q]BK4BrrB@pJ-:1MYMf9Hs*t~>
+m/I':q>^V,]]An3rrN*Ko`,+kMS/0OkPkPBqZ$a<H_f<ghu<`T/b&fE8:$oUoD[SG!5\7,"*CEn
+pY5]J+7fI87Z+hArR:cH3:QtO.=eSYqXFN8~>
+m/I'^qFUj;]]An3rrN+4oh#?uMS/0OkPkPJqapuhH_f<ghu<`TC%4e!@!\HmoD[SG!7UO3"*pcs
+pY5]J@.Qtn@Z%e]rR:cHEUcX(=FdR3qXFN8~>
+m/I(#qLA[.]]An3rrN+`omd0fMS/0OkPkPPqge]n!i4KChu<`TQ19A.EdFA*oD[SG!8mBu"+I-#
+pY5]JO7Rl)G)EoqrR:cHSFM+4H@W0UqXFN8~>
+m/I'qq>^X(N6:MbbPqQ+o`,,"N5"TUkPkOoqZ$a<I&>Tlhu<`VMXg`N#]#1$iVM@0!8d;I"BM&>
+oD[PF!$Ce4"@e9\kl'!1!"AAt"=\l(htljBJ,~>
+m/I(0qFUlcQ-/IkbPqQcoh#@$N5"TUkPkP-qapuhI&>Tlhu<`VX7Ajd9PoNjiVM@0!9`rG"DjUT
+oD[PF!+>Cj"Cd8#kl'!1!)i>Z"B^2WhtljBJ,~>
+m/I(>q1&R;b3]&LrrAY`J-9tQ^?Y[[rrCmPJ-:4HVV1b%rrN,9npgmmDhbUWqV;)Nmdkr3I%8RT
+rnRMRO7Rl)G)EoqrR:cHL@KcsH@W0UqXFN8~>
+m/I(Uq#COAW7LS>bl7Z0o`,,0OMgGakPkOKqZ$a<I&>WmhZ!W5"S2Ts/p*AumJYi?!<2Qi"?DXa
+mf)#A!$Ce4"@e9\kl'$2!71-7">k\4i;2sCJ,~>
+m/I(Xq+:cnWn-e@bl7Zgoh#@*OMgGakPkOiqapuhI&>WmhZ!W=9_1j[=EKhJmJYi?!<2R^"CRD3
+mf)#A!+>Cj"Cd8#kl'$2!8[-:"C$G[i;2sCJ,~>
+m/I([q1&U$Wn-e@bl7[:omd0cOMgGakPkP*qge]o!iF]HhZ!WCK(FKrGBB+imJYi?!<2S?"FQBO
+mf)#A!0?`%"Eo[7kl'$2!9`j%"F,L#i;2sCJ,~>
+m/I+c0)5JM7(D1LrltHC6hUK`$?VQTnG_VN!-%f8"<2`cgA'P)!W>:T!!HDQVqC^trrN*)oDf":
+M7VjIh#@?no)Jn_MS&*NeGfN0n,NSRK!=83nGe"~>
+m/I+cCACI)Cq/EtrltHCH1ji69luZBnG_VN!1E^V"B'WEgA'P)!W@358d&aTVqC^trrN*poL]6e
+M7VjIh#@@[o1B-pMS&*NeGfNQn4EgiK!=83nGe"~>
+m/I+cQMH%6MR_U=rltHCU%X!?IWUjsnG_VN!4_oVs*OmFgA'P)!WAV]J-9h?VqC^trrN+PoRI'l
+M7VjIh#@A6o7-seMS&*NeGfNhn:1XbK!=83nGe"~>
+li-rrp](D-_WL^>rr>:W!!FEgSC$ojrr>ai!!F-dVV:h%rrN+foDf%/E/V?jqqD&M+7oO9#D0,9
+qV;,A!!GcK]BK4Crr>IV!!GoJ[H.8Ts*t~>
+li-sIpdtX=_WL^>rr@698d&+;SC$ojrr@TH8d&%>VV:h%rrN,-oL]9`E/V?jqqD&M@.[%o9S0G)
+qV;,A8d&U\]BK4Crr@B78d&UW[H.8Ts*t~>
+li-sipj`I1_WL^>rrA\bJ-:1BSC$ojrrAqnJH'uuVV:h%rrN,AoRI*mE/V?jqqD&MO7[r*ItFi\
+qV;,AJ-:%Q]BK4CrrAe_J-9tJ[H.8Ts*t~>
+li-sQp](F$KZi`ZcMml#p&G4TI&,Ehk5PE,qZ$a/I&5Kih>[ND#PA'#4F!@?nc%8B!$Ce4")"C[
+p>#]=!!GcK]BK4DrrMEgn,NSrMS&*NnGe"~>
+li-snpdtZ`PKW=icMml^p.>HmI&,Ehk5PEkqapudI&5Kih>[NH:\@<`?$Mj`nc%8B!+>Cj"*:6g
+p>#]=8d&U\]BK4DrrMXan4EgtMS&*NnGe"~>
+li-t.pOE@;bO#,OrrAJ\J-:%CUtGG(rrA5ZJ-:=KV:bOurrMbEomd3fGaltJrn@APO7Rl(IA>Be
+h#Hqq"Eo[7kl''3!VM'6J-9nM]BK4_s*t~>
+li-t3pAb=+RFC['ci3t]p&G4qK!=20kPkPVq>^X*HD9!ah>[NS9_JGi!bHtdh>#\'!%7@<"A,!(
+nc%AEnc/e^MS&*Nec,W-n,NUqEKA$(rp]r<~>
+li-t@pIYQcU!rN/ci3uKp.>I"K!=20kPkPXqFUlbHD9!ah>[NSJ+ZD:C4`VEpt>ZIAb/LsAsgd3
+rn[VF8d&U\]BK4DrrB1j8d.n.O2L>`nGe"~>
+li-tIpOEBuVpk/5ci4!(p4*9cK!=20kPkPZqLA]tHD9!ah>[NSV"K6@Dh>.Jpt>ZIPOj;-I$i+I
+rn[VFJ-:%Q]BK4DrrC%-J-CFBO2L>`nGe"~>
+li."a&,-&,(oGsVrR(WFn+H_b#]Pa9kksWD!71H@"*gHfp"fWKrhfAh"WqcH_<V!Prr>7S!!Fp7
+_!CsUrrCsI!!GcK]BK4ErrN!Bn,NV6FdUDCrp]r<~>
+li."a<;/uf<iamDrR(WFo_(l\9Q5s(kksWD!8[HC"*gHfp"fWKrkA(u"]TN(_<V!Prr@668d&@Y
+_!CsUrrD9R8d&U\]BK4ErrN%-n4Ej`FdUDCrp]r<~>
+li."aL\H<%KW`turR(WFp\'+@IW17ZkksWD!9a0."*gHfp"fWKrm:@h"aY3N_<V!PrrAY^J-:7[
+_!CsUrrDNYJ-:%Q]BK4ErrN(]n:1[gFdUDCrp]r<~>
+li."b6M:B^,d,qprmLfH\+Te*/p<W*nG_VN!2oVm")==Po\BHIo*b9m"\*g3de*Olrr>:T!!Emf
+[,_&?rrCdD!!GcK]BK4ErrA\[!!GT8Ut>>/s*t~>
+li."bGkO`4?Er;XrmLfHbk=X4=E^(TnG_VN!5SD&"*0mXo\BHIohtNV"^lYMde*Olrr@668d%tE
+[,_&?rrD0O8d&U\]BK4ErrB\"8d&IJUt>>/s*t~>
+li."bT_<m=LU>k/rmLfHg\-.$GBT@snG_VN!7Uao"*g<^o\BHIpP&?l"`ep_de*OlrrA\_J-:=T
+[,_&?rrDEVJ-:%Q]BK4ErrCC6J-9tAUt>>/s*t~>
+lMgj0o`,+AZJP9Re,KDhp&G5!J#M)pk5PF+q#CP&Qd#"!h>[NS=SMk""`&k!iVM4,!'g#S")k*k
+pYPoM^[_@-7Z+hArR_&MpE8r*"TrCkZJt`Ls*t~>
+lMgjVoh#?n[bg]Ve,KE<p.>I"J#M)pk5PFRq+:d+Qd#"!h>[NSL\OIF9PoNjiVM4,!-[p*"*g`t
+pYPoMddg!5@Z%e]rR_&Mq-`\a"\WZcZJt`Ls*t~>
+lMgjromd1$\DHoXe,KEYp4*9bJ#M)pk5PFoq1&TmQd#"!h>[NSWq_)JIrC(JiVM4,!2&h4"+R6&
+pYPoMhsu:#G)EoqrR_&MqiL;t"b1HEZJt`Ls*t~>
+lMgjcoDf"@[,:QUeGfLgpAb@8EK%Qmr9""Z8GN5g8Wq*]rnRMRWqZPt.WgopmJY];!&*mC"A,*.
+o)@PH!3>Yj"@e9\kl'-5!-@T/"Y"PW`9dHks*t~>
+lMgk&oL]6n\)6lXeGfMTpIYTeEK%Qmr9""ZI/-A;AWk($rnRMR_>$V+=*0\HmJY];!,M-t"D=4L
+o)@PH!5nA""Cd8#kl'-5!1`LM"]of0`9dHks*t~>
+lMgk7oRI(#]&32[eGfN/pOEEoEK%Qmr9""ZV"oNDH'628rnRMRdeJ=rG]]1imJY];!138,"FZcb
+o)@PH!7gXj"Eo[7kl'-5!4hQK"aG-Q`9dHks*t~>
+lMgkCo)Jn?[,:QUf)G`Rp&G7mH(N@Qroa:^o*G-l">c"NlM]N<!V6]p!!H)GV:P@lrr<l+!!FI+
+_!:mUrr@uJ!!GcK]BK4GrrL"?n,NXo?%/X$p&=F[J,~>
+lMgkKo1B-m\)6lXf)G`ip.>KuH(N@Qroa:^p/(QW"C-o"lM]N<!VK@d8d&XPV:P@lrr?6n8d&1U
+_!:mUrrB1l8d&U\]BK4GrrLVDmn*asI\kWgrpTl;~>
+lMgkQo7-t"]&32[f)Ga%p4*<dH(N@Qroa:^q1SQo"FH*AlM]N<!V_<DJ-9k?V:P@lrrA#KJ-::]
+_!:mUrrC%/J-:%Q]BK4GrrM)1mskR[I\kWgrpTl;~>
+lMgna'Cu2,,cokprR_&L0_YPN+E3.FiVDX9!1W``";Za"jS[g5!WH3t!!N^ILpuIBf`(sCnGi[p
+I^.i-hu<[enc/e^MS&*Ng&D*9)".G.13/Dfk54THJ,~>
+lMgna=7]#e?F&G[rR_&LD"gO*<,dZ%iVDX9!4_er"B'u^jS[g5!WIlN8d.q-LpuIBf`(sFnO`pW
+J[+/0hu<\<nk'$oMS&*Ng&D*@>OP/f=`TP8k54THJ,~>
+lMgnaM=Z6#Lq)=6rR_&LR.l+7H>n\KiVDX9!6t:h"FZ$4jS[g5!WK+qJ-CC@LpuIBf`(sIn:1Uo
+Z/GK9rrB@qJ-:%Q]BK4HrrM_MmskRbEfRfpqsOK7~>
+lMgna9(Drb'qO.Nr7V)MS+cme"(-AGcLCeqrrMj>pAb;9Wn[='rrB(q!!OutQc\^qf`(rdn,NSg
+U"&`6i;Wd2nc/e^MS&*NgA_3:..7-?&o3#peFW\-s*t~>
+lMgnaIe$)6<iXsGr7V)M\G&T"95&XCcLCeqrrMq*pIYO6Wn[='rrBn38d/=>Qc\^qf`(s"n4Eh"
+U"&`6i;Wdnnk'$oMS&*NgA_3AB(&=r:i1`[eFW\-s*t~>
+lMgnaV"0$=KsTS*r7V)Mc1c_mIrBY)cLCeqrrN"[p4*4Eg\BP'!7L^o"a>*Uam]5]rrCsGJ-:@q
+eF`aurrAGWJ-:%Q]BK4IrrM_UmskUiDh+_7oD\1XJ,~>
+l2La,nGi^uJ_0AernRMSh[oM^"Zg^a]&WVKrr@E>!!G][cgq(jrrM^!qZ$atI]1omfDbhhn,NS8
+P/Q_ciVro@nGi\]MS&*Ng]%<;..7-?"^-)9_s%!bs*t~>
+l2LaSnO`s[R+Lg'rnRMSkZ.@L"^H,.]&WVKrrAee8d&arcgq(jrrMdjqaq!%I]1omfDbi=n4Egb
+P/Q_ciVroGnO`pnMS&*Ng]%<BB(&=r9P/O8_s%!bs*t~>
+l2LapnULdpWn6_9rnRMSmtg^g"a"gF]&WVKrrBb+J-:=kcgq(jrrMkJqg\fhI]1omfDbi[n:1Xj
+P/Q_ciVroLnULacMS&*Ng]%<GPja,,IrBRt_s%!bs*t~>
+l2La_mf3Jfc0G*'hZ!WJ0_YPO*cHY/eare'rrKG/p&G4'MSA<Ph#@ES=Sr.&$ZM!7k53g2!V[H"
+!!@,Di;)@3!0cpQ"@e6[kl'<:!RDnW!!`QtFH!Zbp\sR[J,~>
+l2Lb"mn*_0cKb3(hZ!WMD"gO+;f@8deare'rrL59p.>H_N5"NRh#@ESL\saJ:2l*%k53g2!Vosg
+8csIGi;)@3!4),e"Cd5"kl'<:!Sq/O8d8^GN4.U;rpB`9~>
+l2Lb4mskP/cg(<)hZ!WPR.l+8H>eD6eare'rrLf)p4*9qNkX`Th#@ESWr.ANIW11Uk53g2!W.iE
+J-1P2i;)@3!6Ob]"EoX6kl'<:!U#R4J-L%9N4.U;rpB`9~>
+l2Lb6mJmA6WoNaLi;WiL48/^Z%qL$Wa6WWcrrL"GoDf"aWS$qDh#@ASqu?mQG*pGArn.5NL[G-F
+*1G+@rSmhW/F`]C'md=Lqq_8QP76jZ#!?p\XOZn?m/MS~>
+l2LbAmRdUg[c@#Xi;WiOFSAB3:25-Ga6WWcrrLVIoL]7$WS$qDh#@Ajr(7,pG*pGArn.5NWpWI^
+<h.D'rSmhWC%4du;1c7;qq_8QZ;U*_#$c2'XOZn?m/MS~>
+l2LbJmXPFt^Z4tai;WiRSbIX=I;XD%a6WWcrrM)5oRI'sWS$qDh#@B&r."rpG*pGArn.5N_sMsV
+SBUL$ir9"EnULajLUQ:@h>[MtL@0QrFE3,;eai\*s*t~>
+l2Le`$gmuu"_lNTq>TFS!TQ$2!!`j8GE]]"q#9LW!P8d3!!EFP_<CdOrrM^!r;Zt!I]1upf`)!$%
+.+#t8@.1IroF(ZU[J0d%rThaqYoIR!Rj:$!!`QjEJ147mJQ;MJ,~>
+l2Le`;XR-\9oRZkq>TFS!UF[u8dA('GE]]"q#9LW!RF[88d%hE_<CdOrrMdjrCR3'I]1upf`)!1
+;XI'ZD6r*nroF(Z^@+Yt;2EZhqYoIR!T81h8d8UAKVm&^r9OB5~>
+l2Le`L$jHpJu.)eq>TFS!V)WQJ-UOAGE]]"q#9LW!SrM$J-1tNkkj08!V_<HJ-9k@W7q!urrMA=
+m=5=qZekHUjSo5-mskRmSC6m&ro*kXl(@?n#'=j<VU"T,li2J~>
+l2Le`1@+uE+IqNbr;PjY!NQq/!!`j8G)iuco`"(S!KRBR!!En#dI@(irrN*mrW!*0E/M6hr7V)N
+k:#Wr"BiV(q>TOV!TOm]!!XBfeFNG6roX4^dU*.F!!`^'EeUC6lMBfGJ,~>
+l2Le`D<sju?E`G^r;PjY!Q8+78dA('G)iuco`"(S!O,;g8d&%`dI@(irrN+Lr^m>hE/M6hr7V)N
+mUkcW"F@rIq>TOV!UEkT8d8Ifg%+t;roX4^hi1=t8dA%!EeUC6lMBfGJ,~>
+l2Le`R-]>,MnJ-Cr;PjY!S*)%J-UOAG)iuco`"(S!QTf^J-:FudI@(irrN+prdY0$E/M6hr7V)N
+o9AQk"HgR`q>TOV!V)'7J-Lk8hX^L@roX4^kc]U+J-UREEeUC6lMBfGJ,~>
+kl1Wpl2UuP\*<Varp'LacU[[/#7Og[Nj@=.r9=4^gHY*+";?sNnbh5C!1s/i"YY%db4,DarrL.[
+kl:iY_WU^nkl1\H.-^d<"$1nHoD&7_rpB^entJA8!!jBKG)E<FlM:GEs*t~>
+kl1XGl:M5#_Wgdlrp'LagjJff#>SoTNj@=.r9=4^k'-5c"B;&Hnbh5C!4i)$"^#r8b4,DarrL_X
+kt2)#`TR$qkl1\OB'Mto9Q6ZMoD&7_rpB^ep:Y\:8dJ:.G)E<FlM:GEs*t~>
+kl1Xgl@9&)bN\`urp'LakG.a$#C^T7Nj@=.r9=4^m@Wfs"G<`,nbh5C!6tLn"a>-Wb4,DarrM/?
+l$ro"`om-rkl1\TPj3c)JXEt"oD&7_rpB^eps>Z"J-^L@G)E<FlM:GEs*t~>
+kl1XCkl:ni6)s5Dr;Q-a!Obes!!aBOG`T2_nbh\P!p=J-li71mAC'Z=rnm_]mfWUj<dq"$pY5]L
+k@Xq\!!O@#iUZmFli."#*9@/,%R"Wo_WLXjr;HWoqu?]q"R`jU6O<#Y#mNM1I?UtcmJ?hHs*t~>
+kl1Xckt2.RFM$i3r;Q-a!R-/g8dA7/G`T2_nbh\P!q)IQlq.FTL=5Jbrnm_]nk;YJB7?f5pY5]L
+mZUB.8d/CmiUZmFli."5?KFcc;fn80d-LK(r;HWoqu?]q"S0j;Gu*d!#u"WDI?UtcmJ?hHs*t~>
+kl1Y&l$rthRE4[er;Q-a!SaOFJ-UF>G`T2_nbh\P!qWmSm!o7jT[W<(rnm_]on%^EFFL1BpY5]L
+o<X&3J-Cb8iUZmFli."CNobctL7>Kgh!Xt7r;HWoqu?]q"SUWfTnMc_$%I&:I?UtcmJ?hHs*t~>
+kl1Xrjo>W0FLgr:r;Q]hrr_\pCE)pH#Qcc!I$D(mnbhbR"8fZ2#j;6m&p2Ojq#13Ors8Qg!"4".
+\`WhHrr`,/>6s6h"sSWKo(i7`nG`O+:Yc!S%OaPFC4#l+")V4&([1o+"#"51LnVT=nGDDKJ,~>
+kl1Y/k"5kcR)ngmr;Q]hrr_l6Q<j,T#?l%nPd]98r9XFcr6C*pkXl%ZQ.PO#rVkgV#lSs>:O%c-
+k5=*9"8pH%:ub.P@%Z0Dq>L<^rrLW$h+@lNAp0#qTV;=Y"."da>3SWc93H(ULnVT=nGDDKJ,~>
+kl1Y=k(!\rZIJF>r;Q]hrr_uI[>jg/#Bk'6Pd]98r9XFcrS4H,k^WklY1rI@rVkgV#lU?FJU*-`
+k5=*9"8prVK]@ReN4%R6q>L<^rrM&Uh1,Z`P+AVY]DT;D[B,mVl$s(iGB%k`TtfCPqre!0~>
+kl1YIirBT%89UT9f\5'6gXEg.JlXAl!!j??FG-7#hX^U5rri>TSmN2l!!`TaHEuT*qY^?lkl1qf
+P5mXuR*"grj8T;^o"KuW&DdBn"#k>)j7iEKrr2fps8E,WVIpjV!"&obApB'![*Ih,r9"$0~>
+kl1YOj%9MUHCVIgi8agt"lIY<VMAjU8dJ:+FG-7#hX^U5rri>^\rBhP8dA%-S]'adqY^?lkl1qf
+Z:\ebR*"grj8T;^p!Bdl<Sg=S9Q$98kkFrPrr2fps8E,`^lr'48d\6qCj:]'[*Ih,r9"$0~>
+kl1YSj+%YqTXW(rkj%I!lfd-M^oE[jJ-^OCFG-7#hX^U5rri>fcEE,cJ-UXk[aOL9qY^?lkl1qf
+a+/u#R*"grj8T;^ptireLu*XgJX<ajlhC8Srr2fps8E,gd^+qAJ-pdMEd3>-[*Ih,r9"$0~>
+kl1\_'E.t9!uWR>/0Y_S!!s!!E.*kMb2i9pnc&]PB0Hj[!!j;u<c39EpA=jSrs%?\HC(Yap>u;V
+mrM8Le,Tms7VT7#q#15rG?-I0[/^U:*Ck$qLmt]mi:-UBjo9i~>
+kl1\_=8ker92\kq>?=\L8dS4!EIEtNb2i9pnc&]qPBKs[8dJO<KpJCqpA=jSrs%XYOI*!"p>u;V
+oULMBe4L-THBZA>q#164Sqh/^Zq:^)@WHjPS$L2pnG<.Gs*t~>
+kl1\_M>i#0IsZKhI"$RmJ-g[HEda(Ob2i9pnc&^3Z_!!,J-_""W3j2&pA=jSrs%k@TU2\2p>u;V
+pUR2ae:7sdTX!#;q#16E];h6R["&O2F`VqdS$L2pnG<.Gs*t~>
+kPl&N""mAeHA%6?P`gl>9IUD&!"'6$DL7;9^=_iKrp]pf+OU5l[G:3HlMh(e5JXG;jSS'=!8l'%
+"_?*EpASF+!"BDf88EO)P+oD.hsU:<j8XW~>
+kPl'39O_aWHA%6?P`guRDHoui8d\="E-mM;^=_iKrp]pf@+%XL^>//QlMh(eG/CDtjSS'=!9h^#
+"c:^jpAU)Z8e"Nt@rZgJP+oD.hsU:<j8XW~>
+kPl$\JV\_rHA%6?P`h)bL4Rs,$@R&;H]+W4f^8M6nG`KMdXVG=h!Y%(rs&Fn`3-o:qrRhXn'6Fe
+UsnK"ri`\Z%=WVHG'\h)U:/8&meHb@s*t~>
+kPl74`3,;fU9VGOaMu*/ZDX4D>s'#.huF,g-W"o6NM3o0k4JT>rsjj*?rBa(=BT-B?tX@rEURrJ
+@fKg9?2dY.:..N?3&ipe]\W;\li.1go\7O?n,DGK''ag]>Ydpc<Dub#?=$uKDJsN7mrBIe@UWYO
+>#8$k7R9@(1cB-Rd-gk$=CG3<?>=:jFEI+ps'cCE>#8$b5W^SL*Z>Lni;aGn'I>e:C4(VkQ(kS%
+eDp&nrSdd,~>
+kPl7DbH@%mU9VGOaMu*/ZDX4MG@jiKi(=AN<b6B%NM3o0k4JT>rsbupKm7W^FE2PGEclVPmWo"Y
+FE;JBrG2gSC2@KoB:limpAXCX#6+8Lb1H+]jo5YVTTaqKDJjH4D>eGUF*MutH6IQUFE;JACi!m#
+AnP^cA:h&4mesVLLO+ApIsucpI=-Bgp3I3kFE;D;CM.0e>[(6.:efn@&PQ&'?YFJ-Jr>ngZGY2P
+nG)t@s*t~>
+kPl1Nd&rRrU9VGOaMu*/ZDX4TM1j`9$\*GDFFK4C\^9L2r9jRp_QohtN/NLGK7SQ&It3+;K):'+
+JqSi4L5:\^]\W;\li.1go\7O?n,DGK$hV'6S<&M^KnFr,If4`tJ:W:<K)C-7It3*%K7nuCYgDh:
+bc%;%P)bQ]M2$]RK):&uJ,OirJ)PniIslZiG^+UfMj:$B_pm`9q#01OJ,~>
+kPlCqkfgcZeDTTZn*]Q+inDbu\ZVZjE)//'k5Yr'/PpG7LR"dMdH'lprpB^rqW5\tTq7jJTq\B\
+W2cr$n?*G,XJr+pVPKrZTV%gIT:i'nh"C[3rri2dk3Vm(rt>>)hS#hZSXc7CTVA6ZVPpMrXm`D#
+XfSS%Vl$>eU7e-LrgX7dYg;b9r9MS1rh9RlV5C2lXnAh;XfSM"VPKoXS=5e0P)tZ\I<B=7?VsWm
+5X.Fh/hZiL'fnHM<FKiqJqo;KR\[.!aOT89o_SREs*t~>
+kPlCqkfgcZeDTTZn*]Q+inDbu\ZVZlJT"ppk=Q1Z=_;c'LR"dMdH'lprpB^rqW5\tTq7jJTq\B\
+W2cr$n?*G,XJr+pVPKrZTV%gIT:i'nh"C[3rri2dk3Vm(rt>>)hS#hZSXc7CTVA6ZVPpMrXm`D#
+XfSS%Vl$>eU7e-LrgX7dYg;b9r9MS1rh9RlV5C2lXnAh;XfSM"VPKoXS=5e0P)tZ\K78)gF)>`-
+ARo:X>[6u,'jtK`CN+NIJqo;KR\[.!aOT89o_SREs*t~>
+kPl@pkfgcZeDTTZn*]Q+inDbu\ZVZnN/*#IJ.6pPG'/1fQ)D:BjRW0HmJd^nji+<pSt;RJU8=`c
+WiW>lXqRq=WMcVjUnXNTT:VXHTVf?Vp&=7V"T%QKm.fZA')qU]]r.KnS=Q:FU84Z`W2cr$n#d&#
+XK/:tVP^/`TV%eSS-YakcgLc0lccR3U'7?hVPpPtor]17XJr+pUnOENR[9;&OH#-QKnP&/JUi6#
+J,OiiIK+]pHiJI(IY*?6PFA;N]?&O]m.C/RhuA3~>
+kPkecp?_#0o_SLarY#2,q"*q9hUTfb[&KXYEDekD%J'Q3!tun?:i(N2N0gEMa4TSGqYog\%fGkT
+eBlRie(*%%g=tE>mb\W4gtLK8f[eU&da6=cbK\]*qW\"_rqcEdrT!nhqX31fcd:%eeCE.&g"P39
+hX02AhV?l>g=b-0eC;pncHOJ[jRrNNoA\6Ed*pOtg"bETh]:P.g=b-0eC)[eb/V<5]XY>QY,\Cq
+U7\!GR@';*p662UR%'bEWj&tH`m<8okjS3@rVkXQJ,~>
+kPkecp?_#0o_SLarY#2,q"*q9hUTfb[&KX[J8f%%:\.0j92JYqBQJQQN0gEMa4TSGqYog\%fGkT
+eBlRie(*%%g=tE>mb\W4gtLK8f[eU&da6=cbK\]*qW\"_rqcEdrT!nhqX31fcd:%eeCE.&g"P39
+hX02AhV?l>g=b-0eC;pncHOJ[jRrNNoA\6Ed*pOtg"bETh]:P.g=b-0eC)[eb/V<5]XY>QY,\Cq
+U7\!GR@';*p662UR%'bEWj&tH`m<8okjS3@rVkXQJ,~>
+kPkecp?_#0o_SLarXf&*q"*q9hUTfb[&KX]MhZlRJ.R-UH?a[^JrH%n[`@%`o(r@Orsntsi7--#
+dF6Xsf\5*8hX985h;$`<g"=m+eC)^icHFJblh]lG"TJ8mqYfIS&GkhNda-:edaZguf\,!5gtqGU
+*o>],g=k64f$r3td*BkYdcC*#rU]$tcHt%jf\,'9oA:SEgtLH6f$r-obf[rB^V%(`Ycb"(UnXKP
+S!fY0Q1gFTQC+/7UoLZ.^;eLNhrsP%qYgELs*t~>
+k5PS_r;?Nmp\ts,r;--VlJpXIaM,![TU1[bAm%u-r([l1AT<3OL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+k5PS_r;?Nmp\ts,r;--VlJpXIaM,![TU1^lG]@S9r+Zj_Ed3(cL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+k5PS_r;?Nmp\u!-r;--VlJpXIaM,![TU1atL4b&-J,OiqI1LgZL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+%%EndData
+showpage
+%%Trailer
+end
+%%EOF
diff --git a/templates/Estonian-logo.png b/templates/Estonian-logo.png
new file mode 100755
index 00000000..5edcdfe5
--- /dev/null
+++ b/templates/Estonian-logo.png
Binary files differ
diff --git a/templates/Estonian-packing_list.html b/templates/Estonian-packing_list.html
new file mode 100755
index 00000000..2a8cd244
--- /dev/null
+++ b/templates/Estonian-packing_list.html
@@ -0,0 +1,192 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>S A A T E L E H T</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% cellspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th width=50% align=left><font color=ffffff>Kellele:</th>
+ <th width=50%>&nbsp;</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%>
+ <%if shiptostate%>
+ , <%shiptostate%>
+ <%end shiptostate%>
+ <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ </td>
+
+ <td>
+ <%if shiptocontact%>
+ <br>Attn: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Faks: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left>Arve #</th>
+ <th width=17% align=left>Tellimus #</th>
+ <th width=17% align=left>KuupÀev</th>
+ <th width=17% align=left nowrap>Kontakt</th>
+ <%if warehouse%>
+ <th width=17% align=left>Kaubaladu</th>
+ <%end warehouse%>
+ <th width=17% align=left>Saadetise sihtpunkt</th>
+ <th width=15% align=left>Tarveviis</th>
+ </tr>
+
+ <tr>
+ <td><%invnumber%>&nbsp;</td>
+ <td><%ordnumber%>&nbsp;</td>
+
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%transdate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+
+ <%if warehouse%>
+ <td><%warehouse%>&nbsp;</td>
+ <%end warehouse%>
+
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>AR.</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Selgitus</th>
+ <th align=left><font color=ffffff>Seerianumber #</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Kogus</th>
+ <th><font color=ffffff>Saatmine</th>
+ <th>&nbsp;</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%></td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td><%serialnumber%></td>
+ <td><%deliverydate%></td>
+ <td align=right><%qty%></td>
+ <td align=right><%ship%></td>
+ <td><%unit%></td>
+ </tr>
+ <%end number%>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+ <%if notes%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td>Notes</td>
+ <td><%notes%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <%end notes%>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=70%><font size=-3>
+ Items returned are subject to
+ a 10% restocking charge. A return authorization must be obtained
+ from <%company%> before goods are returned. Returns must be shipped
+ prepaid and properly insured. <%company%> will not be responsible
+ for damages during transit.
+ </font>
+ </td>
+ <td width=30%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+
+</body>
+</html>
+
+
+
+
+
+
+
+
diff --git a/templates/Estonian-packing_list.tex b/templates/Estonian-packing_list.tex
new file mode 100755
index 00000000..2d3a1945
--- /dev/null
+++ b/templates/Estonian-packing_list.tex
@@ -0,0 +1,136 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\newsavebox{\ftr}
+\sbox{\ftr}{
+ \parbox{\textwidth}{
+ \tiny
+ \rule[1.5em]{\textwidth}{0.5pt}
+Items returned are subject to a 10\% restocking charge.
+A return authorization must be obtained from <%company%> before goods are
+returned. Returns must be shipped prepaid and properly insured.
+<%company%> will not be responsible for damages during transit.
+ }
+}
+
+<%include letterhead.tex%>
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrl@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Ship} & \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+\textbf{Ship To}} \hfill
+
+\vspace{0.3cm}
+
+\parbox[t]{.5\textwidth}{
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+}
+\parbox[t]{.5\textwidth}{
+ <%shiptocontact%>
+
+ <%if shiptophone%>
+ Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{P A C K I N G} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{7}{|X}|} \hline
+ \textbf{Invoice \#} & \textbf{Order \#} & \textbf{Date} & \textbf{Contact}
+ <%if warehouse%>
+ & \textbf{Warehouse}
+ <%end warehouse%>
+ & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+
+ <%invnumber%> & <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%transdate%>
+ <%end shippingdate%>
+ & <%employee%>
+ <%if warehouse%>
+ & <%warehouse%>
+ <%end warehouse%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrl@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Ship} & \\
+
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%serialnumber%> &
+ <%deliverydate%> & <%qty%> & <%ship%> & <%unit%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{12pt}
+
+<%notes%>
+
+}
+
+\vfill
+
+\rule{\textwidth}{0.5pt}
+
+\usebox{\ftr}
+
+\end{document}
+
diff --git a/templates/Estonian-pick_list.html b/templates/Estonian-pick_list.html
new file mode 100755
index 00000000..2766c55c
--- /dev/null
+++ b/templates/Estonian-pick_list.html
@@ -0,0 +1,149 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>V E O S E &nbsp;&nbsp; S A A T E L E H T</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th width=50% align=left><font color=ffffff>Kellele:</th>
+ <th width=50%>&nbsp;</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%>
+ <%if shiptostate%>
+ , <%shiptostate%>
+ <%end shiptostate%>
+ <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ </td>
+
+ <td>
+ <%if shiptocontact%>
+ <br>Kontaktisik: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Faks: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=15% align=left>Arve #</th>
+ <th width=15% align=left>Tellimus #</th>
+ <th width=10% align=left>KuupÀev</th>
+ <th width=15% align=left nowrap>Kontakt</th>
+ <th width=15% align=left>Kaubaladu</th>
+ <th width=10% align=left>Tarneaadress</th>
+ <th width=10% align=left>Tarneviis</th>
+ </tr>
+
+ <tr>
+ <td><%invnumber%>&nbsp;</td>
+ <td><%ordnumber%>&nbsp;</td>
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%transdate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+ <td><%warehouse%>&nbsp;</td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>AR.</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Kirjeldus</th>
+ <th><font color=ffffff>Kogus</th>
+ <th><font color=ffffff>Saatmine</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Pakend</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td align=right>[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</td>
+ <td><%unit%></td>
+ <td align=right><%bin%></td>
+ </tr>
+ <%end number%>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+</table>
+
+</body>
+</html>
+
+
+
+
+
+
+
+
+
+
+
diff --git a/templates/Estonian-pick_list.tex b/templates/Estonian-pick_list.tex
new file mode 100755
index 00000000..2f82936a
--- /dev/null
+++ b/templates/Estonian-pick_list.tex
@@ -0,0 +1,108 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\begin{tabularx}{\textwidth}{@{}rlXrcll@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} &
+ \textbf{Qty} & \textbf{Ship} & & \textbf{Bin} \\
+
+<%end pagebreak%>
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+ \textbf{Ship To}
+} \hfill
+
+\vspace{0.3cm}
+
+\parbox[t]{.5\textwidth}{
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+}
+\parbox[t]{.5\textwidth}{
+ <%shiptocontact%>
+
+ <%if shiptophone%>
+ Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{P I C K} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{7}{|X}|} \hline
+ \textbf{Invoice \#} & \textbf{Order \#} & \textbf{Date} & \textbf{Contact}
+ & \textbf{Warehouse} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+ <%invnumber%> & <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%transdate%>
+ <%end shippingdate%>
+ & <%employee%> & <%warehouse%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrcll@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} &
+ \textbf{Qty} & \textbf{Ship} & & \textbf{Bin} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> &
+ <%qty%> & [\hspace{1cm}] & <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+}
+
+\end{document}
+
diff --git a/templates/Estonian-pos_invoice.txt b/templates/Estonian-pos_invoice.txt
new file mode 100755
index 00000000..cbc0055a
--- /dev/null
+++ b/templates/Estonian-pos_invoice.txt
@@ -0,0 +1,45 @@
+<%company align=center width=40%>
+<%address align=center width=40%>
+
+Till: <%till align=left width=3%> Phone#: <%tel%>
+Cashier: <%employee%>
+Inv #/Date: <%invnumber%> / <%invdate%>
+Printed: <%dateprinted%>
+
+ Qty Description Amount
+<%foreach number%>
+<%qty align=right width=5%> <%description align=left width=24 offset=6%> <%linetotal align=right width=9%>
+ <%number%> @ <%sellprice%>/<%unit%>
+<%end number%>
+
+Number of items: <%totalqty%>
+<%if taxincluded%>
+ ---------------
+ Total: <%invtotal align=right width=9%>
+<%end taxincluded%>
+<%if not taxincluded%>
+ ------------
+ Subtotal: <%subtotal align=right width=9%>
+<%end taxincluded%>
+<%foreach tax%>
+<%taxdescription align=right width=23%> @ <%taxrate align=right width=2%>%: <%tax align=right width=9%>
+<%end tax%>
+<%foreach payment%>
+ Paid: <%payment align=right width=9%> <%currency%>
+<%end payment%>
+<%if change%>
+ Change: <%change align=right width=9%>
+<%end change%>
+<%if total%>
+ Balance Due: <%total align=right width=9%>
+<%end total%>
+<%if discount%>
+
+<%discount%> % Discount applied
+<%end discount%>
+
+ Thank you for your valued business!
+
+<%if taxincluded%>
+Taxes are included in price.
+<%end taxincluded%>
diff --git a/templates/Estonian-purchase_order.html b/templates/Estonian-purchase_order.html
new file mode 100755
index 00000000..0f61e99d
--- /dev/null
+++ b/templates/Estonian-purchase_order.html
@@ -0,0 +1,247 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>H A N K E T E L L I M U S</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>Kellele:</th>
+ <th align=left width=50%><font color=ffffff>Tarneaadress:</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br>Kontaktisik: <%contact%>
+ <%end contact%>
+
+ <%if vendorphone%>
+ <br>Tel: <%vendorphone%>
+ <%end vendorphone%>
+
+ <%if vendorfax%>
+ <br>Faks: <%vendorfax%>
+ <%end vendorfax%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%>
+ <%if shiptostate%>
+ , <%shiptostate%>
+ <%end shiptostate%>
+ <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ <br>
+
+ <%if shiptocontact%>
+ <br>Kontaktisik: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Faks: <%shiptofax%>
+ <%end shiptofax%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left>Tellimus #</th>
+ <th width=17% align=left>Tellimuse KuupÀev</th>
+ <th width=17% align=left>Tarne TÀhtaeg</th>
+ <th width=17% align=left>Kontakt</th>
+ <th width=17% align=left>Tarneaadress</th>
+ <th width=15% align=left>Tarneviis</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%></td>
+ <td><%orddate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>AR.</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Kirjeldus</th>
+ <th><font color=ffffff>Kogus</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Hind</th>
+ <th><font color=ffffff>%</th>
+ <th><font color=ffffff>Summa</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%>.</td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discountrate%></th>
+ <td align=right><%linetotal%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <td colspan=8><hr noshade></td>
+ </tr>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=7 align=right>Kokku</th>
+ <th colspan=1 align=right><%ordtotal%></th>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=7 align=right>Vahekokkuvõte</th>
+ <td colspan=1 align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=7 align=right><%taxdescription%> on <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=1 align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <tr>
+ <td colspan=4>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <%if not taxincluded%>
+ <th colspan=7 align=right>Kokku</th>
+ <td colspan=1 align=right><%ordtotal%></td>
+ <%end taxincluded%>
+
+ <%if terms%>
+ <tr>
+ <td colspan=4>Maksetingimus <b><%terms%></b> pÀeva</td>
+ <th colspan=3 align=right>Kokku</th>
+ <th colspan=1 align=right><%ordtotal%></th>
+ </tr>
+ <%end terms%>
+
+ <%if taxincluded%>
+ <tr>
+ <td colspan=2>Sisaldab kÀibemaksu</td>
+ </tr>
+ <%end taxincluded%>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <%if ordtotal%>
+ <tr>
+ <td colspan=8 align=right>
+ Kõik hinnad toodud <b><%currency%></b> vÀÀringus
+ </td>
+ </tr>
+ <%end ordtotal%>
+
+ </table>
+ </td>
+ </tr>
+
+ <%if notes%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td>Notes</td>
+ <td><%notes%></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+ <%end notes%>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=70%>&nbsp;</td>
+
+ <td width=30%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+</table>
+
+</body>
+</html>
+
+
+
+
+
+
+
diff --git a/templates/Estonian-purchase_order.tex b/templates/Estonian-purchase_order.tex
new file mode 100755
index 00000000..fe1e6428
--- /dev/null
+++ b/templates/Estonian-purchase_order.tex
@@ -0,0 +1,170 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{\hspace{1cm}r@{}}
+ & Subtotal & <%sumcarriedforward%> \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Amount} \\
+ & carried forward from <%lastpage%> & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+\textbf{To}
+\vspace{0.3cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+Attn: <%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if vendorphone%>
+Tel: <%vendorphone%>
+<%end vendorphone%>
+
+<%if vendorfax%>
+Fax: <%vendorfax%>
+<%end vendorfax%>
+
+<%email%>
+}
+\parbox[t]{.5\textwidth}{
+\textbf{Ship To}
+\vspace{0.3cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+Attn: <%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{P U R C H A S E} \parbox{0.3cm}{\hfill} \textbf{O R D E R}
+\hfill
+
+\vspace{1cm}
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Date} & \textbf{Required by} & \textbf{Contact} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5ex]
+ \hline
+ <%ordnumber%> & <%orddate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Amount} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%linetotal%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
+ & Subtotal & <%subtotal%> \\
+<%foreach tax%>
+ & <%taxdescription%> on <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ & Total & <%ordtotal%>\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ All prices in \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%notes%>
+
+}
+
+
+%\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+%\footnotetext[1]{\tiny }
+
+\end{document}
+
diff --git a/templates/Estonian-receipt.tex b/templates/Estonian-receipt.tex
new file mode 100755
index 00000000..effc19b6
--- /dev/null
+++ b/templates/Estonian-receipt.tex
@@ -0,0 +1,77 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{9pt}{9pt}\selectfont
+
+\parbox[t]{12cm}{
+ <%company%>
+
+ <%address%>}
+\hfill
+\parbox[t]{6cm}{\hfill <%source%>}
+
+\vspace*{0.6cm}
+
+<%text_amount%> \dotfill <%decimal%>/100 \makebox[0.5cm]{\hfill}
+
+\vspace{0.5cm}
+
+\hfill <%datepaid%> \makebox[2cm]{\hfill} <%amount%>
+
+% different date format for datepaid
+% <%DD%><%MM%><%YYYY%>
+
+\vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{1.8cm}
+
+<%memo%>
+
+\vspace{0.8cm}
+
+<%company%>
+
+\vspace{0.5cm}
+
+<%name%> \hfill <%datepaid%> \hfill <%source%>
+
+\vspace{0.5cm}
+\begin{tabularx}{\textwidth}{lXrr@{}}
+\textbf{Invoice No.} & \textbf{Invoice Date}
+ & \textbf{Due} & \textbf{Applied} \\
+<%foreach invnumber%>
+<%invnumber%> & <%invdate%> \dotfill
+ & <%due%> & <%paid%> \\
+<%end invnumber%>
+\end{tabularx}
+
+\vspace{1cm}
+
+<%memo%>
+
+\vfill
+
+\end{document}
+
diff --git a/templates/Estonian-request_quotation.html b/templates/Estonian-request_quotation.html
new file mode 100755
index 00000000..f594525e
--- /dev/null
+++ b/templates/Estonian-request_quotation.html
@@ -0,0 +1,184 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>H I N N A P A K K U M U S E &nbsp;&nbsp; T A O T L U S</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>Kellele:</th>
+ <th align=left width=50%><font color=ffffff>Tarnida:</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br>Kontaktisik: <%contact%>
+ <%end contact%>
+
+ <%if vendorphone%>
+ <br>Tel: <%vendorphone%>
+ <%end vendorphone%>
+
+ <%if vendorfax%>
+ <br>Faks: <%vendorfax%>
+ <%end vendorfax%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddr2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%>
+ <%if shiptostate%>
+ , <%shiptostate%>
+ <%end shiptostate%>
+ <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ <br>
+
+ <%if shiptocontact%>
+ <br>Kontaktisik: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Faks: <%shiptofax%>
+ <%end shiptofax%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left>Hinnapakkumuse Taotlus #</th>
+ <th width=17% align=left>KuupÀev</th>
+ <th width=17% align=left>TÀhtaeg</th>
+ <th width=17% align=left>Kontakt</th>
+ <th width=17% align=left>Tarneaadress</th>
+ <th width=15% align=left>Tarneviis</th>
+ </tr>
+
+ <tr>
+ <td><%quonumber%></td>
+ <td><%quodate%></td>
+ <td><%reqdate%>&nbsp;</td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height="10"></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>Please provide price and delivery time for the following items:</td>
+ </tr>
+
+ <tr height="10"></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <th align=right>AR.</th>
+ <th align=left>Number</th>
+ <th align=left><font color=ffffff>Kirjeldus</th>
+ <th>Kogus</th>
+ <th>&nbsp;</th>
+ <th>Delivery</th>
+ <th>Ühiku Hind</th>
+ <th>Summa</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%>.</td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <td colspan=8><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+ <%if notes%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td>Notes</td>
+ <td><%notes%></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+ <%end notes%>
+
+</table>
+
+</body>
+</html>
+
+
+
+
+
+
diff --git a/templates/Estonian-request_quotation.tex b/templates/Estonian-request_quotation.tex
new file mode 100755
index 00000000..cf95dd89
--- /dev/null
+++ b/templates/Estonian-request_quotation.tex
@@ -0,0 +1,151 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
+ & \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Extended} \\
+ & carried forward from <%lastpage%> & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+\textbf{To}
+\vspace{0.3cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if vendorphone%>
+Tel: <%vendorphone%>
+<%end vendorphone%>
+
+<%if vendorfax%>
+Fax: <%vendorfax%>
+<%end vendorfax%>
+
+<%email%>
+}
+\parbox[t]{.5\textwidth}{
+\textbf{Ship To}
+\vspace{0.3cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{R E Q U E S T for Q U O T A T I O N}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{RFQ \#} & \textbf{Date} & \textbf{Required by} & \textbf{Contact} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5ex]
+ \hline
+ <%quonumber%> & <%quodate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+Please provide price and delivery time for the following items:
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}lXrllrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} & &
+ \textbf{Delivery} & \textbf{Unit Price} & \textbf{Extended} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> & <%unit%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\hfill
+
+<%notes%>
+
+}
+
+\end{document}
+
diff --git a/templates/Estonian-sales_order.html b/templates/Estonian-sales_order.html
new file mode 100755
index 00000000..d4dc60b3
--- /dev/null
+++ b/templates/Estonian-sales_order.html
@@ -0,0 +1,237 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>M Ü Ü G I T E L L I M U S</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>Tellija</th>
+ <th align=left width=50%><font color=ffffff>Tarneaadress</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%>
+ <%if shiptostate%>
+ , <%shiptostate%>
+ <%end shiptostate%>
+ <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ <br>
+ <%if shiptocontact%>
+ <br><%shiptocontact%>
+ <%end shiptocontact%>
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+ <%if shiptoemail%>
+ <br><%shiptoemail%>
+ <%end shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Tellimus #</th>
+ <th width=17% align=left>Tellimuse KuupÀev</th>
+ <th width=17% align=left>TarnetÀhtaeg</th>
+ <th width=17% align=left nowrap>MÌÌja</th>
+ <th width=17% align=left nowrap>Kauba sihtpunkt</th>
+ <th width=15% align=left nowrap>Tarneviis</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%></td>
+ <td><%orddate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>AR.</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Kirjeldus</th>
+ <th><font color=ffffff>Kogus</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Hind</th>
+ <th><font color=ffffff>Ale %</th>
+ <th><font color=ffffff>Summa</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%>.</td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discountrate%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <td colspan=8><hr noshade></td>
+ </tr>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=6 align=right>Kokku</th>
+ <td colspan=2 align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=6 align=right>Vahekokkuvõte</th>
+ <td colspan=2 align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=6 align=right><%taxdescription%> on <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <tr>
+ <td colspan=4>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=4>
+ <%text_amount%> ***** <%decimal%>/100
+ <%if terms%>
+ <br>Maksetingimus <b><%terms%></b> pÀeva
+ <%end terms%>
+ </td>
+ <th colspan=2 align=right>Kokku</th>
+ <th colspan=2 align=right><%ordtotal%></th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <%if notes%>
+ <td>Notes</td>
+ <td><%notes%></td>
+ <%end notes%>
+ <td align=right nowrap>
+ Kõik hinnad toodud <%currency%> vÀÀringus</b>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=60%><font size=-3>
+ Special order items are subject to a 10% order cancellation fee.
+ </font>
+ </td>
+ <td width=40%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+</table>
+
+</body>
+</html>
+
+
+
+
+
+
+
diff --git a/templates/Estonian-sales_order.tex b/templates/Estonian-sales_order.tex
new file mode 100755
index 00000000..60f7bfeb
--- /dev/null
+++ b/templates/Estonian-sales_order.tex
@@ -0,0 +1,177 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
+ & \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+
+\begin{tabularx}{\textwidth}{@{}rlXrlrrr@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+ & carried forward from <%lastpage%> & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+\textbf{To}
+\vspace{0.3cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\parbox[t]{.5\textwidth}{
+\textbf{Ship To}
+\vspace{0.3cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{S A L E S} \parbox{0.3cm}{\hfill} \textbf{O R D E R}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Order Date} & \textbf{Required by} & \textbf{Salesperson} & \textbf{Shipping Point} & \textbf{Ship Via} \\ [0.5em]
+ \hline
+ <%ordnumber%> & <%orddate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrlrrr@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%discountrate%> & <%linetotal%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
+ & Subtotal & <%subtotal%> \\
+<%foreach tax%>
+ & <%taxdescription%> on <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ & Total & <%ordtotal%>\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100
+\hfill
+All prices in \textbf{<%currency%>}.
+
+<%if terms%>
+Terms: <%terms%> days
+<%end terms%>
+
+\vspace{12pt}
+
+<%notes%>
+
+}
+
+\vfill
+
+\centerline{\textbf{Thank You for your valued business!}}
+
+\rule{\textwidth}{0.5pt}
+
+\end{document}
+
diff --git a/templates/Estonian-sales_quotation.html b/templates/Estonian-sales_quotation.html
new file mode 100755
index 00000000..68e3a34e
--- /dev/null
+++ b/templates/Estonian-sales_quotation.html
@@ -0,0 +1,205 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>H I N N A P A K K U M U S</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+
+ <br>
+ <%if contact%>
+ <br>Kontaktisik: <%contact%>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Faks: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Number</th>
+ <th width=17% align=left>KuupÀev</th>
+ <th width=17% align=left>Kehtiv Kuni</th>
+ <th width=17% align=left nowrap>Kontakt</th>
+ <th width=17% align=left nowrap>Tarneaadress</th>
+ <th width=15% align=left nowrap>Tarneviis</th>
+ </tr>
+
+ <tr>
+ <td><%quonumber%></td>
+ <td><%quodate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>AR.</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Kirjeldus</th>
+ <th><font color=ffffff>Kogus</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Hind</th>
+ <th><font color=ffffff>Ale %</th>
+ <th><font color=ffffff>Summa</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%></td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discountrate%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <td colspan=8><hr noshade></td>
+ </tr>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=6 align=right>Kokku</th>
+ <td colspan=2 align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=6 align=right>Vahekokkuvõte</th>
+ <td colspan=2 align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=6 align=right><%taxdescription%> on <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <tr>
+ <td colspan=4>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=4>&nbsp;
+ <%if terms%>
+ Maksetingimused <b><%terms%></b> pÀeva
+ <%end terms%>
+ </td>
+ <th colspan=2 align=right>Kokku</th>
+ <th colspan=2 align=right><%quototal%></th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <%if notes%>
+ <td>Notes</td>
+ <td><%notes%></td>
+ <%end notes%>
+ <td align=right>
+ Kõik hinnad toodud <b><%currency%></b> vÀÀringus.
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=60%><font size=-3>
+ Special order items are subject to a 10% cancellation fee.
+ </font>
+ </td>
+ <td width=40%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+</table>
+
+</body>
+</html>
+
+
+
+
+
diff --git a/templates/Estonian-sales_quotation.tex b/templates/Estonian-sales_quotation.tex
new file mode 100755
index 00000000..771fe6a3
--- /dev/null
+++ b/templates/Estonian-sales_quotation.tex
@@ -0,0 +1,148 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\newsavebox{\ftr}
+\sbox{\ftr}{
+ \parbox{\textwidth}{
+ \tiny
+ \rule[1.5em]{\textwidth}{0.5pt}
+Special order items are subject to a 10\% cancellation fee.
+ }
+}
+
+<%include letterhead.tex%>
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
+ & \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%quonumber%>}{<%company%>\hfill <%quonumber%>}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+ & carried forward from <%lastpage%> & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+
+\vspace{1cm}
+
+\textbf{Q U O T A T I O N}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Quotation \#} & \textbf{Date} & \textbf{Valid until} & \textbf{Contact} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5ex]
+ \hline
+ <%quonumber%> & <%quodate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%discountrate%> & <%linetotal%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
+ & Subtotal & <%subtotal%> \\
+<%foreach tax%>
+ & <%taxdescription%> on <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ & Total & <%quototal%>\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+All prices in \textbf{<%currency%>}.
+
+<%if terms%>
+Terms: <%terms%> days
+<%end terms%>
+
+\vspace{12pt}
+
+<%notes%>
+
+}
+
+\vfill
+
+\hfill \parbox{7cm}{X \rule{6.5cm}{0.5pt}}
+
+\rule{\textwidth}{0.5pt}
+
+\usebox{\ftr}
+
+\end{document}
+
diff --git a/templates/Estonian-statement.html b/templates/Estonian-statement.html
new file mode 100755
index 00000000..a8b39d48
--- /dev/null
+++ b/templates/Estonian-statement.html
@@ -0,0 +1,144 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3><h4>A R U A N N E</h4></th>
+
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td colspan=3 align=right><%statementdate%></td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+ <%if customerfax%>
+ <br>Faks: <%customerfax%>
+ <%end customerfax%>
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=10></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <th align=left>Arve NR. #</th>
+ <th align=left>Tellimus NR.#</th>
+ <th width=10%>KuupÀev</th>
+ <th width=10%>Võlg</th>
+ <th width=10%>Hetkeseis</th>
+ <th width=10%>30</th>
+ <th width=10%>60</th>
+ <th width=10%>90</th>
+ </tr>
+
+ <%foreach invnumber%>
+ <tr>
+ <td><%invnumber%></td>
+ <td><%ordnumber%></td>
+ <td><%invdate%></td>
+ <td><%duedate%></td>
+ <td align=right><%c0%></td>
+ <td align=right><%c30%></td>
+ <td align=right><%c60%></td>
+ <td align=right><%c90%></td>
+ </tr>
+ <%end invnumber%>
+
+ <tr>
+ <td colspan=8><hr size=1></td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <th align=right><%c0total%></td>
+ <th align=right><%c30total%></td>
+ <th align=right><%c60total%></td>
+ <th align=right><%c90total%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=10></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td align=right>
+ <table width=50%>
+ <tr>
+ <th>Kokku Laekumata</th>
+ <th align=right><%total%></th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ <td>Kõik summad toodud <b><%currency%></b> vÀÀringus.
+ <br>Palume tasuda <b><%company%></b>.
+ </td>
+ </tr>
+
+</table>
+
+</body>
+</html>
+
+
+
+
+
+
+
+
diff --git a/templates/Estonian-statement.tex b/templates/Estonian-statement.tex
new file mode 100755
index 00000000..0beb6c64
--- /dev/null
+++ b/templates/Estonian-statement.tex
@@ -0,0 +1,78 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+\parbox[t]{.5\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+}
+\parbox[t]{.5\textwidth}{
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{S T A T E M E N T} \hfill \textbf{<%statementdate%>}
+
+\vspace{2cm}
+
+\begin{tabular*}{\textwidth}{|ll@{\extracolsep\fill}ccrrrr|}
+ \hline
+ \textbf{Invoice \#} & \textbf{Order \#} & \textbf{Date} & \textbf{Due} &
+ \textbf{Current} & \textbf{30} & \textbf{60} & \textbf{90} \\
+ \hline
+<%foreach invnumber%>
+ <%invnumber%> & <%ordnumber%> & <%invdate%> & <%duedate%> &
+ <%c0%> & <%c30%> & <%c60%> & <%c90%> \\
+<%end invnumber%>
+ \multicolumn{8}{|l|}{\mbox{}} \\
+ \hline
+ \textbf{Subtotal} & & & & <%c0total%> & <%c30total%> & <%c60total%> & <%c90total%> \\
+ \hline
+\end{tabular*}
+
+\vspace{0.5cm}
+
+\hfill
+\begin{tabularx}{\textwidth}{Xr@{\hspace{1cm}}r@{}}
+ & \textbf{Total outstanding} & \textbf{<%total%>}
+\end{tabularx}
+
+\vfill
+All amounts in \textbf{<%currency%>} funds.
+
+Please make check payable to \textbf{<%company%>}
+
+\end{document}
+
diff --git a/templates/Estonian-timecard.html b/templates/Estonian-timecard.html
new file mode 100755
index 00000000..6d4b72d1
--- /dev/null
+++ b/templates/Estonian-timecard.html
@@ -0,0 +1,125 @@
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>AJAKAART</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=left>Töötaja</th>
+ <td><%employee%></td>
+ </tr>
+ <tr>
+ <th align=left>Töötaja Kood</th>
+ <td><%employee_id%></td>
+ </tr>
+ </table>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Kaardi Kood</th>
+ <td><%id%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>KuupÀev</th>
+ <td><%transdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Algus</th>
+ <td><%checkedin%></td>
+ </tr>
+ <tr>
+ <th align=left>Lõpp</th>
+ <td><%checkedout%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Tundi</th>
+ <td><%qty%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=bottom>
+ <td>
+ <table>
+ <tr valign=top>
+ <th align=left>TööÌlesanne/Projekt #</th>
+ <td><%projectnumber%></td>
+ </tr>
+ <tr>
+ <th align=left>Kirjeldus</th>
+ <td><%projectdescription%></td>
+ </tr>
+ <tr valign=top>
+ <th align=left>Töö/Teenuse Kood</th>
+ <td><%partnumber%></td>
+ </tr>
+ <tr>
+ <th align=left>Kirjeldus</th>
+ <td><%description%></td>
+ </tr>
+ </table>
+ </td>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Tariif</th>
+ <td><%sellprice%></td>
+ </tr>
+ <tr>
+ <th align=right>Kokku</th>
+ <td><%total%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <%if notes%>
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%notes%>
+ </td>
+ </tr>
+ <%end notes%>
+
+</table>
+
+</body>
+</html>
+
+
diff --git a/templates/Estonian-timecard.tex b/templates/Estonian-timecard.tex
new file mode 100755
index 00000000..b7630a00
--- /dev/null
+++ b/templates/Estonian-timecard.tex
@@ -0,0 +1,52 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+\centerline{\textbf{T I M E}\hspace{0.5cm}\textbf{C A R D}}
+
+\vspace*{0.5cm}
+
+\begin{tabular}[t]{ll}
+ \textbf{Employee} & <%employee%> \\
+ \textbf{ID} & <%employee_id%> \\
+\end{tabular}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Card ID} & <%id%> \\
+ \textbf{Date} & <%transdate%> \\
+ \textbf{In} & <%checkedin%> \\
+ \textbf{Out} & <%checkedout%> \\
+ \textbf{Hours} & <%qty%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular}[b]{ll}
+ \textbf{Job/Project \#} & <%projectnumber%> \\
+ \textbf{Description} & <%projectdescription%> \\
+ \textbf{Labor/Service Code} & <%partnumber%> \\
+ \textbf{Description} & <%description%> \\
+\end{tabular}
+\hfill
+\begin{tabular}[b]{lr}
+ \textbf{Rate} & <%sellprice%> \\
+ \textbf{Total} & <%total%> \\
+\end{tabular}
+
+\vspace{0.3cm}
+
+<%notes%>
+
+\end{document}
+
diff --git a/templates/Estonian-work_order.html b/templates/Estonian-work_order.html
new file mode 100755
index 00000000..6e110e66
--- /dev/null
+++ b/templates/Estonian-work_order.html
@@ -0,0 +1,164 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>T Ö Ö K Ä S K</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>Tellija</th>
+ <th align=left width=50%><font color=ffffff>Tarneaadress</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+ <%if contact%>
+ <br>Kontaktisik: <%contact%>
+ <%end contact%>
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+ <%if customerfax%>
+ <br>Faks: <%customerfax%>
+ <%end customerfax%>
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%>
+ <%if shiptostate%>
+ , <%shiptostate%>
+ <%end shiptostate%>
+ <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ <br>
+ <%if shiptocontact%>
+ <br><%shiptocontact%>
+ <%end shiptocontact%>
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+ <%if shiptofax%>
+ <br>Faks: <%shiptofax%>
+ <%end shiptofax%>
+ <%if shiptoemail%>
+ <br><%shiptoemail%>
+ <%end shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Tellimus #</th>
+ <th width=17% align=left>Tellimuse KuupÀev</th>
+ <th width=17% align=left>TarnetÀhtaeg</th>
+ <th width=17% align=left nowrap>MÌÌja</th>
+ <th width=17% align=left nowrap>Tarneaadress</th>
+ <th width=15% align=left nowrap>Tarneviis</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%></td>
+ <td><%orddate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>AR.</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Kirjeldus</th>
+ <th><font color=ffffff>Kogus</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Kast</th>
+ <th><font color=ffffff>Seerianumber #</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%>.</td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td><%bin%></td>
+ <td><%serialnumber%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <td colspan=7><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <%if notes%>
+ <td><%notes%></td>
+ <%end notes%>
+ </tr>
+</table>
+
+</body>
+</html>
+
+
+
+
diff --git a/templates/Estonian-work_order.tex b/templates/Estonian-work_order.tex
new file mode 100755
index 00000000..c8d48172
--- /dev/null
+++ b/templates/Estonian-work_order.tex
@@ -0,0 +1,141 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\begin{tabularx}{\textwidth}{@{}rlXrll@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ & \textbf{Serial Number} \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+\textbf{To}
+\vspace{0.3cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\parbox[t]{.5\textwidth}{
+\textbf{Ship To}
+\vspace{0.3cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{W O R K} \parbox{0.3cm}{\hfill} \textbf{O R D E R}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Order Date} & \textbf{Required by} & \textbf{Salesperson} & \textbf{Shipping Point} & \textbf{Ship Via} \\ [0.5em]
+ \hline
+ <%ordnumber%> & <%orddate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrll@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ & \textbf{Serial Number} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%serialnumber%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{12pt}
+
+<%notes%>
+}
+
+\vfill
+
+\end{document}
+
diff --git a/templates/Estonian_UTF8-ap_transaction.html b/templates/Estonian_UTF8-ap_transaction.html
new file mode 100755
index 00000000..5db937b2
--- /dev/null
+++ b/templates/Estonian_UTF8-ap_transaction.html
@@ -0,0 +1,232 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>OstuReskontro - T E H I N G</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if vendorphone%>
+ <br>Tel: <%vendorphone%>
+ <%end vendorphone%>
+
+ <%if vendorfax%>
+ <br>Faks: <%vendorfax%>
+ <%end vendorfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+
+ <%if vendortaxnumber%>
+ <p>Käibemaksukohuslane NR: <%vendortaxnumber%>
+ <%end vendortaxnumber%>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Arve NR. #</th>
+ <td><%invnumber%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Kuupäev</th>
+ <td><%invdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Tasuda</th>
+ <td><%duedate%></td>
+ </tr>
+ <%if ponumber%>
+ <tr>
+ <th align=left>Hanketellimus NR. #</th>
+ <td><%ponumber%>&nbsp;</td>
+ </tr>
+ <%end ponumber%>
+ <%if ordnumber%>
+ <tr>
+ <th align=left>Tellimus NR. #</th>
+ <td><%ordnumber%>&nbsp;</td>
+ </tr>
+ <%end ordnumber%>
+ <tr>
+ <th align=left nowrap>Töötaja</th>
+ <td><%employee%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <%foreach account%>
+ <tr valign=top>
+ <td><%accno%></td>
+ <td><%account%></td>
+ <td width=10> </td>
+ <td align=right><%amount%></td>
+ <td width=10> </td>
+ <td><%description%></td>
+ <td width=10> </td>
+ <td><%projectnumber%></td>
+ </tr>
+ <%end account%>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=2 align=right>Kokku</th>
+ <td width=10> </td>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Vahesumma</th>
+ <td width=10> </td>
+ <td align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=2 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td width=10> </td>
+ <td align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if not taxincluded%>
+ <tr>
+ <th colspan=2 align=right>Kokku</th>
+ <td width=10> </td>
+ <td align=right><%invtotal%></td>
+ </tr>
+ <%end taxincluded%>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%text_amount%> ***** <%decimal%>/100 <%currency%>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%notes%>
+ </td>
+ </tr>
+
+ <%if paid_1%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <tr>
+ <th>Maksed</th>
+ </tr>
+
+ <tr>
+ <td>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th>Kuupäev</th>
+ <th>&nbsp;</th>
+ <th>Alus</th>
+ <th>Memo</th>
+ <th>Summa</th>
+ </tr>
+ <%end paid_1%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td><%paymentmemo%></td>
+ <td align=right><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid_1%>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <%end paid_1%>
+
+ <tr height=10></tr>
+
+ <%if taxincluded%>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <th colspan=3 align=left><font size=-2>Hinnad sisaldavad käibemaksu.</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
+
+
+
+
+
diff --git a/templates/Estonian_UTF8-ap_transaction.tex b/templates/Estonian_UTF8-ap_transaction.tex
new file mode 100755
index 00000000..5cd134cc
--- /dev/null
+++ b/templates/Estonian_UTF8-ap_transaction.tex
@@ -0,0 +1,111 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+\setlength{\parindent}{0pt}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+\centerline{\textbf{A P} \hspace{0.3cm} \textbf{T R A N S A C T I O N}}
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state>
+\hspace{-0.1cm}, <%state%>
+<%end state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if vendorphone%>
+Tel: <%vendorphone%>
+<%end vendorphone%>
+
+<%if vendorfax%>
+Fax: <%vendorfax%>
+<%end vendorfax%>
+
+<%email%>
+
+<%if vendortaxnumber%>
+Tax Number: <%vendortaxnumber%>
+<%end vendortaxnumber%>
+}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Invoice \#} & <%invnumber%> \\
+ \textbf{Date} & <%invdate%> \\
+ \textbf{Due} & <%duedate%> \\
+ <%if ponumber%>
+ \textbf{PO \#} & <%ponumber%> \\
+ <%end ponumber%>
+ <%if ordnumber%>
+ \textbf{Order \#} & <%ordnumber%> \\
+ <%end ordnumber%>
+ \textbf{Employee} & <%employee%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}[t]{@{}llrX@{\hspace{1cm}}l@{}}
+<%foreach amount%>
+ <%accno%> & <%account%> & <%amount%> & <%description%> & <%projectnumber%> \\
+<%end amount%>
+
+ \multicolumn{2}{r}{\textbf{Subtotal}} & <%subtotal%> & \\
+<%foreach tax%>
+ \multicolumn{2}{r}{\textbf{<%taxdescription%> @ <%taxrate%> \%}} & <%tax%> & \\
+<%end tax%>
+
+ \multicolumn{2}{r}{\textbf{Total}} & <%invtotal%> & \\
+
+\end{tabularx}
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100 <%currency%>
+
+<%if notes%>
+\vspace{0.3cm}
+<%notes%>
+<%end notes%>
+
+\vspace{0.3cm}
+
+<%if paid_1%>
+\begin{tabular}{@{}llllr@{}}
+ \multicolumn{5}{c}{\textbf{Payments}} \\
+ \hline
+ \textbf{Date} & & \textbf{Source} & \textbf{Memo} & \textbf{Amount} \\
+<%end paid_1%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%paymentmemo%> & <%payment%> \\
+<%end payment%>
+<%if paid_1%>
+\end{tabular}
+<%end paid_1%>
+
+\end{document}
+
diff --git a/templates/Estonian_UTF8-ar_transaction.html b/templates/Estonian_UTF8-ar_transaction.html
new file mode 100755
index 00000000..0826f577
--- /dev/null
+++ b/templates/Estonian_UTF8-ar_transaction.html
@@ -0,0 +1,239 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>MüügiReskontro - T E H I N G</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Faks: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+
+ <%if customertaxnumber%>
+ <br>Käibemaksukohuslane : <%customertaxnumber%>
+ <%end customertaxnumber%>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Arve #</th>
+ <td><%invnumber%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Kuupäev</th>
+ <td><%invdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Maksta olev</th>
+ <td><%duedate%></td>
+ </tr>
+ <%if ponumber%>
+ <tr>
+ <th align=left>PO #</th>
+ <td><%ponumber%>&nbsp;</td>
+ </tr>
+ <%end ponumber%>
+ <%if ordnumber%>
+ <tr>
+ <th align=left>Tellimus #</th>
+ <td><%ordnumber%>&nbsp;</td>
+ </tr>
+ <%end ordnumber%>
+ <tr>
+ <th align=left nowrap>Müüja</th>
+ <td><%employee%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <%foreach account%>
+ <tr valign=top>
+ <td><%accno%></td>
+ <td><%account%></td>
+ <td width=10> </td>
+ <td align=right><%amount%></td>
+ <td width=10> </td>
+ <td><%description%></td>
+ <td width=10> </td>
+ <td><%projectnumber%></td>
+ </tr>
+ <%end account%>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=2 align=right>Kokku</th>
+ <td width=10> </td>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Vahesumma</th>
+ <td width=10> </td>
+ <td align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=2 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td width=10> </td>
+ <td align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if not taxincluded%>
+ <tr>
+ <th colspan=2 align=right>Kokku</th>
+ <td width=10> </td>
+ <td align=right><%invtotal%></td>
+ </tr>
+ <%end taxincluded%>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%text_amount%> ***** <%decimal%>/100 <%currency%>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%notes%>
+ </td>
+ </tr>
+
+ <%if paid_1%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <tr>
+ <th>Maksed</th>
+ </tr>
+
+ <tr>
+ <td>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th>Kuupäev</th>
+ <th>&nbsp;</th>
+ <th>Alus</th>
+ <th>Summa</th>
+ </tr>
+ <%end paid_1%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td align=right><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid_1%>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <%end paid_1%>
+
+ <tr height=10></tr>
+
+ <%foreach tax%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <th colspan=9 align=left><font size=-2><%taxdescription%> Käibemaksukohuslase NR: <%taxnumber%></th>
+ </tr>
+ <%end tax%>
+
+ <%if taxincluded%>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <th colspan=3 align=left><font size=-2>Summad sisaldavad käibemaksu.</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
+
+
+
+
+
+
diff --git a/templates/Estonian_UTF8-ar_transaction.tex b/templates/Estonian_UTF8-ar_transaction.tex
new file mode 100755
index 00000000..1c3c44f3
--- /dev/null
+++ b/templates/Estonian_UTF8-ar_transaction.tex
@@ -0,0 +1,118 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+\setlength{\parindent}{0pt}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+\centerline{\textbf{A R} \hspace{0.3cm} \textbf{T R A N S A C T I O N}}
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+
+<%if customertaxnumber%>
+Tax Number: <%customertaxnumber%>
+<%end customertaxnumber%>
+}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Invoice \#} & <%invnumber%> \\
+ \textbf{Date} & <%invdate%> \\
+ \textbf{Due} & <%duedate%> \\
+ <%if ponumber%>
+ \textbf{PO \#} & <%ponumber%> \\
+ <%end ponumber%>
+ <%if ordnumber%>
+ \textbf{Order \#} & <%ordnumber%> \\
+ <%end ordnumber%>
+ \textbf{Employee} & <%employee%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}[t]{@{}llrX@{\hspace{1cm}}l@{}}
+<%foreach amount%>
+ <%accno%> & <%account%> & <%amount%> & <%description%> & <%projectnumber%> \\
+<%end amount%>
+
+ \multicolumn{2}{r}{\textbf{Subtotal}} & <%subtotal%> & \\
+<%foreach tax%>
+ \multicolumn{2}{r}{\textbf{<%taxdescription%> @ <%taxrate%> \%}} & <%tax%> & \\
+<%end tax%>
+
+ \multicolumn{2}{r}{\textbf{Total}} & <%invtotal%> & \\
+
+\end{tabularx}
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100 <%currency%>
+
+<%if notes%>
+\vspace{0.3cm}
+<%notes%>
+<%end notes%>
+
+\vspace{0.3cm}
+
+<%if paid_1%>
+\begin{tabular}{@{}lllr@{}}
+ \multicolumn{5}{c}{\textbf{Payments}} \\
+ \hline
+ \textbf{Date} & & \textbf{Source} & \textbf{Amount} \\
+<%end paid_1%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%payment%> \\
+<%end payment%>
+<%if paid_1%>
+\end{tabular}
+<%end paid_1%>
+
+\vspace{0.5cm}
+
+<%foreach tax%>
+\textbf{\scriptsize <%taxdescription%> Registration <%taxnumber%>} \\
+<%end tax%>
+
+\end{document}
+
diff --git a/templates/Estonian_UTF8-balance_sheet.html b/templates/Estonian_UTF8-balance_sheet.html
new file mode 100755
index 00000000..cef8f9a7
--- /dev/null
+++ b/templates/Estonian_UTF8-balance_sheet.html
@@ -0,0 +1,110 @@
+
+<body>
+
+<h2 align=center>
+<%company%>
+<br><%address%>
+
+<p>BILANSIARUANNE
+<br>Perioodil: <%this_period%>
+</h2>
+
+<%if department%>
+<h4>Osakond: <%department%></h4>
+<%end department%>
+
+<table border=0>
+<tr>
+ <th align=left width=400 colspan=2>AKTIVA<br><hr align=left width=250 size=5 noshade></th>
+ <th><%this_period%></th>
+ <th><%last_period%></th>
+</tr>
+
+<%foreach asset_account%>
+<tr>
+ <td> </td>
+ <td><%asset_account%></td>
+ <td align=right><%asset_this_period%></td>
+ <td align=right><%asset_last_period%></td>
+</tr>
+<%end asset_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>AKTIVA KOKKU</th>
+ <td align=right><%total_assets_this_period%><hr noshade size=2></td>
+ <td align=right><%total_assets_last_period%><hr noshade size=2></td>
+</tr>
+
+<tr>
+ <th align=left colspan=4>PASSIVA<b><hr align=left width=250 size=5 noshade></th>
+</tr>
+
+<%foreach liability_account%>
+<tr>
+ <td></td>
+ <td><%liability_account%></td>
+ <td align=right><%liability_this_period%></td>
+ <td align=right><%liability_last_period%></td>
+</tr>
+<%end liability_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td></td>
+ <th align=left>PASSIVA KOKKU</th>
+ <td align=right><%total_liabilities_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_liabilities_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr>
+ <th align=left colspan=4>AKTSIAKAPITAL<br><hr align=left width=250 size=5 noshade></th>
+</tr>
+
+<%foreach equity_account%>
+<tr>
+ <td></td>
+ <td><%equity_account%></td>
+ <td align=right><%equity_this_period%></td>
+ <td align=right><%equity_last_period%></td>
+</tr>
+<%end equity_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td></td>
+ <th align=left>KOKKU AKTSIAKAPITAL</th>
+ <td align=right><%total_equity_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_equity_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>KOKKU PASSIVA JA AKTSIAKAPITAL</th>
+ <td align=right><%total_this_period%><br><hr noshade size=2></td>
+ <td align=right><%total_last_period%><br><hr noshade size=2></td>
+</tr>
+</table>
+
+</body>
+</html>
+
+
+
+
+
+
diff --git a/templates/Estonian_UTF8-bin_list.html b/templates/Estonian_UTF8-bin_list.html
new file mode 100755
index 00000000..c4d06d4d
--- /dev/null
+++ b/templates/Estonian_UTF8-bin_list.html
@@ -0,0 +1,188 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>P A K EN D I &nbsp;&nbsp; S A A T E L E H T</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% cellspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>Saatja</th>
+ <th align=left width=50%><font color=ffffff>Tarneaadress</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br>Kontaktisik: <%contact%>
+ <%end contact%>
+
+ <%if vendorphone%>
+ <br>Tel: <%vendorphone%>
+ <%end vendorphone%>
+
+ <%if vendorfax%>
+ <br>Fax: <%vendorfax%>
+ <%end vendorfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%>
+ <%if shiptostate%>
+ , <%shiptostate%>
+ <%end shiptostate%>
+ <%shiptozipcode%>
+ <%if shiptocountry%>
+ <%shiptocountry%>
+ <%end shiptocountry%>
+
+ <br>
+ <%if shiptocontact%>
+ <br>Kontaktisik: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Faks: <%shiptofax%>
+ <%end shiptofax%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Tellimus #</th>
+ <th width=17% align=left nowrap>Kuupäev</th>
+ <th width=17% align=left nowrap>Kontakt</th>
+ <%if warehouse%>
+ <th width=17% align=left nowrap>Kaubaladu</th>
+ <%end warehouse%>
+ <th width=17% align=left>Tarneaadress</th>
+ <th width=15% align=left>Tarneviis</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%>&nbsp;</td>
+
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%orddate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+
+ <%if warehouse%>
+ <td><%warehouse%></td>
+ <%end warehouse%>
+
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>AR.</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Kirjeldus</th>
+ <th><font color=ffffff>Seerianumber</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Kokku</th>
+ <th><font color=ffffff>Saadetud</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Pakend</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%></td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td><%serialnumber%></td>
+ <td><%deliverydate%></td>
+ <td align=right><%qty%></td>
+ <td align=right><%ship%></td>
+ <td><%unit%></td>
+ <td><%bin%></td>
+ </tr>
+ <%end number%>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+</table>
+
+</body>
+</html>
+
+
+
+
+
+
+
+
+
+
diff --git a/templates/Estonian_UTF8-bin_list.tex b/templates/Estonian_UTF8-bin_list.tex
new file mode 100755
index 00000000..1bc85d66
--- /dev/null
+++ b/templates/Estonian_UTF8-bin_list.tex
@@ -0,0 +1,114 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrll@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Recd} & & \textbf{Bin} \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+\textbf{From}
+\vspace{0.3cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+}
+\parbox[t]{.5\textwidth}{
+\textbf{Ship To}
+\vspace{0.3cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{B I N} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Date} & \textbf{Contact}
+ <%if warehouse%>
+ & \textbf{Warehouse}
+ <%end warehouse%>
+ & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+
+ <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%orddate%>
+ <%end shippingdate%>
+ & <%employee%>
+ <%if warehouse%>
+ & <%warehouse%>
+ <%end warehouse%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrll@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Recd} & & \textbf{Bin} \\
+
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%serialnumber%> &
+ <%deliverydate%> & <%qty%> & <%ship%> & <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabularx}
+
+
+\rule{\textwidth}{2pt}
+
+\end{document}
+
diff --git a/templates/Estonian_UTF8-check.tex b/templates/Estonian_UTF8-check.tex
new file mode 100755
index 00000000..908f0e79
--- /dev/null
+++ b/templates/Estonian_UTF8-check.tex
@@ -0,0 +1,77 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{9pt}{9pt}\selectfont
+
+\parbox[t]{12cm}{
+ <%company%>
+
+ <%address%>}
+\hfill
+\parbox[t]{6cm}{\hfill <%source%>}
+
+\vspace*{0.6cm}
+
+<%text_amount%> \dotfill <%decimal%>/100 \makebox[0.5cm]{\hfill}
+
+\vspace{0.5cm}
+
+\hfill <%datepaid%> \makebox[2cm]{\hfill} <%amount%>
+
+% different date format for datepaid
+% <%DD%><%MM%><%YYYY%>
+
+\vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{1.8cm}
+
+<%memo%>
+
+\vspace{0.8cm}
+
+<%company%>
+
+\vspace{0.5cm}
+
+<%name%> \hfill <%datepaid%> \hfill <%source%>
+
+\vspace{0.5cm}
+\begin{tabularx}{\textwidth}{lXrr@{}}
+\textbf{Invoice \#} & \textbf{Invoice Date}
+ & \textbf{Amount Due} & \textbf{Applied} \\
+<%foreach invnumber%>
+<%invnumber%> & <%invdate%> \dotfill
+ & <%due%> & <%paid%> \\
+<%end invnumber%>
+\end{tabularx}
+
+\vspace{1cm}
+
+<%memo%>
+
+\vfill
+
+\end{document}
+
diff --git a/templates/Estonian_UTF8-income_statement.html b/templates/Estonian_UTF8-income_statement.html
new file mode 100755
index 00000000..c12e69da
--- /dev/null
+++ b/templates/Estonian_UTF8-income_statement.html
@@ -0,0 +1,84 @@
+
+<body>
+
+<h2 align=center>
+<%company%>
+<br><%address%>
+
+<p>KASUMIARUANNE
+<br><%period%>
+</h2>
+
+<%if department%>
+<h4>Osakond: <%department%></h4>
+<%end department%>
+
+<%if projectnumber%>
+<h4>Projekti Number: <%projectnumber%></h4>
+<%end projectnumber%>
+
+<table width=100% border=0>
+<tr>
+ <th width=400 align=left colspan=2>TULUD<br><hr width=300 size=5 align=left noshade></th>
+ <th><%this_period%></th>
+ <th><%last_period%></th>
+</tr>
+
+<%foreach income_account%>
+<tr>
+ <td width=4> </td>
+ <td><%income_account%></td>
+ <td align=right><%income_this_period%></td>
+ <td align=right><%income_last_period%></td>
+</tr>
+<%end income_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td> </td>
+ <th align=left>TULUD KOKKU</th>
+ <td align=right><%total_income_this_period%><hr noshade size=2></td>
+ <td align=right><%total_income_last_period%><hr noshade size=2></td>
+</tr>
+
+<tr>
+ <th align=left colspan=2>KULUD<br><hr width=300 size=5 align=left noshade></th>
+</tr>
+
+<%foreach expense_account%>
+<tr>
+ <td> </td>
+ <td><%expense_account%></td>
+ <td align=right><%expenses_this_period%></td>
+ <td align=right><%expenses_last_period%></td>
+</tr>
+<%end expense_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td> </td>
+ <th align=left>KULUD KOKKU</th>
+ <td align=right><%total_expenses_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_expenses_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>KASUM / (KAHJUM)</th>
+ <td align=right><%total_this_period%><br><hr noshade size=2></td>
+ <td align=right><%total_last_period%><br><hr noshade size=2></td>
+</tr>
+
+</table>
+
+</body>
+</html> \ No newline at end of file
diff --git a/templates/Estonian_UTF8-invoice.html b/templates/Estonian_UTF8-invoice.html
new file mode 100755
index 00000000..03cd7a9c
--- /dev/null
+++ b/templates/Estonian_UTF8-invoice.html
@@ -0,0 +1,328 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10> </td>
+
+ <th colspan=3>
+ <h4>A R V E</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td> </td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>Arve Aadress</th>
+ <th align=left width=50%><font color=ffffff>Tarneaadress</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Faks: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%>
+ <%if shiptostate%>
+ , <%shiptostate%>
+ <%end shiptostate%>
+ <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ <br>
+
+ <%if shiptocontact%>
+ <br><%shiptocontact%>
+ <br>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Faks: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%if shiptoemail%>
+ <br><%shiptoemail%>
+ <%end shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td> </td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=14% align=left nowrap>Arve NR.</th>
+ <th width=14% align=left nowrap>Kuupäev</th>
+ <th width=14% align=left nowrap>Maksetähtaeg</th>
+ <th width=14% align=left>Tellimus NR.</th>
+ <th width=14% align=left nowrap>Müüja</th>
+ <th width=14% align=left nowrap>Arve aadress</th>
+ <th width=14% align=left nowrap>Tarneviis</th>
+ </tr>
+
+ <tr>
+ <td><%invnumber%></td>
+ <td><%invdate%></td>
+ <td><%duedate%></td>
+ <td><%ordnumber%> </td>
+ <td><%employee%> </td>
+ <td><%shippingpoint%> </td>
+ <td><%shipvia%> </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td> </td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>AR.</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Nimetus</th>
+ <th> </th>
+ <th align=right><font color=ffffff>Kogus</th>
+ <th> </th>
+ <th align=right><font color=ffffff>Ãœhiku Hind</th>
+ <th align=right><font color=ffffff>Ale %</th>
+ <th align=right><font color=ffffff>Summa</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%>.</td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td><%deliverydate%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discountrate%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <td colspan=9><hr noshade></td>
+ </tr>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=7 align=right>Kokku</th>
+ <td colspan=2 align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=7 align=right>Vahesumma</th>
+ <td colspan=2 align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=7 align=right><%taxdescription%> on <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if paid%>
+ <tr>
+ <th colspan=7 align=right>Makstud</th>
+ <td colspan=2 align=right>- <%paid%></td>
+ </tr>
+ <%end paid%>
+
+ <tr>
+ <td colspan=5> </td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <%if total%>
+ <tr>
+ <td colspan=5> </td>
+ <th colspan=2 align=right nowrap>Deebetsaldo</th>
+ <th colspan=2 align=right><%total%></th>
+ </tr>
+ <%end total%>
+
+ <tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td> </td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <%if notes%>
+ <td><%notes%></td>
+ <%end notes%>
+
+ <td><%text_amount%> ***** <%decimal%>/100</td>
+
+ <td align=right nowrap>
+ Kõik hinnad <b><%currency%></b> vääringus.
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <%if paid_1%>
+ <tr>
+ <td> </td>
+
+ <td colspan=9>
+ <table width=60%>
+
+ <tr>
+ <th align=left>Maksed</th>
+ </tr>
+
+ <tr>
+ <td colspan=4>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <th align=left>Kuupäev</th>
+ <th align=left>Konto</th>
+ <th align=left>Alus</th>
+ <th align=left>Summa</th>
+ </tr>
+ <%end paid_1%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid_1%>
+ </table>
+ </td>
+ </tr>
+ <%end paid_1%>
+
+ <tr height=10></tr>
+
+ <tr>
+ <td> </td>
+
+ <th>
+ Thank you for your valued business!
+ </th>
+ </tr>
+
+ <tr>
+ <td> </td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=60%><font size=-3>
+ Maksetähtaeg <%duedate%> kuupäevaks.
+ Items returned are subject to a 10% restocking charge. A return authorization must be obtained from <%company%> before goods are returned. Returns must be shipped prepaid and properly insured. <%company%> will not be responsible for damages during transit.
+ </font>
+ </td>
+
+ <td width=40%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <td> </td>
+
+ <th colspan=9 align=left><font size=-2><%taxdescription%> Käibemaksukohuslase number: <%taxnumber%></th>
+ </tr>
+ <%end tax%>
+
+ <%if taxincluded%>
+ <tr>
+ <td> </td>
+ </tr>
+
+ <tr>
+ <th colspan=8 align=left><font size=-2>Hind sisaldab käibemaksu.</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
+
+
+
+
+
+
+
+
+
+
+
diff --git a/templates/Estonian_UTF8-invoice.tex b/templates/Estonian_UTF8-invoice.tex
new file mode 100755
index 00000000..fe8ace5b
--- /dev/null
+++ b/templates/Estonian_UTF8-invoice.tex
@@ -0,0 +1,207 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\newsavebox{\ftr}
+\sbox{\ftr}{
+ \parbox{\textwidth}{
+ \tiny
+ \rule[1.5em]{\textwidth}{0.5pt}
+Payment due NET <%terms%> Days from date of Invoice. Interest on overdue amounts will acrue at the rate of 12\% per annum starting from <%duedate%> until paid in full. Items returned are subject to a 10\% restocking charge.
+A return authorization must be obtained from <%company%> before goods are returned. Returns must be shipped prepaid and properly insured.
+<%company%> will not be responsible for damages during transit.
+ }
+}
+
+<%include letterhead.tex%>
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \vspace{0.2cm}
+
+ \hfill
+ \begin{tabularx}{\textwidth}{Xr@{\hspace{1cm}}r@{}}
+ & Subtotal & <%sumcarriedforward%> \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%invnumber%>}{<%company%>\hfill <%invnumber%>}
+
+\begin{tabularx}{\textwidth}{@{}rlXlrlrrr@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} & & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\ [0.5em]
+ & carried forward from page <%lastpage%> & & & & & & & <%sumcarriedforward%> \\ [0.5em]
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+\textbf{To}
+\vspace{0.3cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\parbox[t]{.5\textwidth}{
+\textbf{Ship To}
+\vspace{0.3cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{A R V E}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{7}{|X}|} \hline
+ \textbf{Arve NR.} & \textbf{Kuupäev} & \textbf{Maksetähtaeg} & \textbf{Tellimus NR.}
+ & \textbf{Müüja} & \textbf{Tarneaadress} & \textbf{Tarneviis} \\ [0.5em]
+ \hline
+ <%invnumber%> & <%invdate%> & <%duedate%> & <%ordnumber%> & <%employee%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXlrlrrr@{}}
+ \textbf{AR.} & \textbf{Number} & \textbf{Kirjeldus} & & \textbf{Kogus} &
+ \textbf{Ãœhik} & \textbf{Hind} & \textbf{AlH \%} & \textbf{Summa} \\ [0.5em]
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%deliverydate%> &
+ <%qty%> & <%unit%> & <%sellprice%> & <%discountrate%> & <%linetotal%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
+ & Subtotal & <%subtotal%> \\
+<%foreach tax%>
+ & <%taxdescription%> on <%taxbase%> & <%tax%> \\
+<%end tax%>
+<%if paid%>
+ & Paid & - <%paid%> \\
+<%end paid%>
+ \hline
+<%if total%>
+ & Balance Due & <%total%>
+<%end total%>
+\end{tabularx}
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100
+\hfill
+All prices in \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%notes%>
+}
+
+\vfill
+
+<%if paid_1%>
+\begin{tabularx}{10cm}{@{}lXlr@{}}
+ \textbf{Maksed} & & & \\
+ \hline
+ \textbf{Kuupäev} & & \textbf{Alus} & \textbf{Summa} \\
+<%end paid_1%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%payment%> \\
+<%end payment%>
+<%if paid_1%>
+\end{tabularx}
+<%end paid_1%>
+
+\vspace{1cm}
+
+\centerline{\textbf{Thank You for your valued business!}}
+
+\rule{\textwidth}{0.5pt}
+
+\usebox{\ftr}
+
+\end{document}
+
diff --git a/templates/Estonian_UTF8-letterhead.html b/templates/Estonian_UTF8-letterhead.html
new file mode 100755
index 00000000..d59b8315
--- /dev/null
+++ b/templates/Estonian_UTF8-letterhead.html
@@ -0,0 +1,32 @@
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%><br>
+ <%address%>
+ </h4>
+ </td>
+
+ <th><img src=../<%templates%>/logo.png border=0 width=84 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%><br>
+ Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <td colspan=3>
+ <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
diff --git a/templates/Estonian_UTF8-letterhead.tex b/templates/Estonian_UTF8-letterhead.tex
new file mode 100755
index 00000000..16d805af
--- /dev/null
+++ b/templates/Estonian_UTF8-letterhead.tex
@@ -0,0 +1,17 @@
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{../<%templates%>/logo}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Tel: & <%tel%>\\
+ Fax: & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
diff --git a/templates/Estonian_UTF8-logo.eps b/templates/Estonian_UTF8-logo.eps
new file mode 100755
index 00000000..3a22b2ff
--- /dev/null
+++ b/templates/Estonian_UTF8-logo.eps
@@ -0,0 +1,1334 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: GIMP PostScript file plugin V 1.17 by Peter Kirchgessner
+%%Title: Brazilian_Portuguese-logo.eps
+%%CreationDate: Thu Aug 31 19:25:05 2006
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 2
+%%Pages: 1
+%%BoundingBox: 14 14 415 215
+%%EndComments
+%%BeginProlog
+% Use own dictionary to avoid conflicts
+10 dict begin
+%%EndProlog
+%%Page: 1 1
+% Translate for offset
+14.173228346456694 14.173228346456694 translate
+% Translate to begin of first scanline
+0 199.99842519685043 translate
+399.99685039370081 -199.99842519685043 scale
+% Image geometry
+400 200 8
+% Transformation matrix
+[ 400 0 0 200 0 0 ]
+% Strings to hold RGB-samples per scanline
+/rstr 400 string def
+/gstr 400 string def
+/bstr 400 string def
+{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop}
+true 3
+%%BeginData: 80402 ASCII Bytes
+colorimage
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+fDblg6K\=Q"WB-W4?Pdo4p6+l]&ih]rrrDpij);hp&GL',"Q[#Lmt]mi:-UBo)Ajlp>C')q#Ca-
+0OT-[R^UZ0q#:3k!rftBr;[*-4`Pt>]\`;[p&>'%-iO)I,T-[I!!OC1jn&BKnc&dlp#<8P%e]l2
+"!U9TI#+8tb2Ddcrq6:-g3RO66TZkO/89R1ak>G'lMCDUrVc`p_uG5~>
+fDc3-AgAK<(`*r''GKsK"r/C?3]oMfm61YtOLjQNo`#*op#<8P%e]l2"!U9TI#+8tb2Ddcrpp'l
+rq>8m&GZ;5#V]Y2L75R!lM1AVrrW28$N0r1#!HsURCqDKrq69l[jV.T![JWbkPtc,R-!r:rpg!l
+rq59V:(Hst$j.\EE.!J2ZHD+pqYp0f(YX1N<'rc'0emR!XjZ4ijR;sBr;HTnrknbd~>
+fDc6;J3>hE.46Gg,U"<#*sNl<2EEr_4mbE9G`]Muqt0mlrq59V:(Hst$j.\EE.!J2ZHD+pqYp'c
+"TJ,QFV+?K$4&=nG_VZqdd$W,r;Qit^^C#?#R3G3J!mt+o`"O`!OjHU!!4D`!pBUf*LPs[qu6-c
+"oe2SZ;(o'!"8rR88rs4S$L2pnG<.WrtjC8CK*Y`2)R41LpG[tlg+-<qu$Ekrr0h8J,~>
+gA_6CM^RKa#SJU[Cl4ICR$dH4"J2pKnc&.[#laS]ca8*s2'Dku%L*7S1/_:`E/L-e^<lNJn,*ps
+lGB9$.1d!s#n@h2C5&"Yb2DgerqcX(q78g7,slHqMPJ)Jp&4[cs*k'%9)\er&Pd:_DG`D6!pTal
+;j3B4I=8["q>L$e)ZKKoca5M5$jR7P',DcW=EAnFP+oA,h<ak4r;@'%mG5jnSV:rb4tRZYo)K.6
+.77QqVp"]-r;HW:s*t~>
+gA_WSXCb's7mAmd0J>%2/aY(p3(dS&NKf`rR.?XJT!Hl9rq$..rqGU%[!bb.+:/;Z%M^0O>@_Mp
+OJ9/'f_#".r"](qb,Jl)'b_,j)_+BrKpT$di:6^DqYq$#\j.Db6>_(,UVl'`rV6EmU]HuXrW!3>
+=ES\+<]_9&l2V,jVQ@/!U<E9+rV$70rqGU%Zq25S%MBBi(a_LMF+&e+U:&/"m.U>Sr=/\qk1@he
+W0`?`B2UiFr@A%'1d4D,8ded6G`JT6f_#";rVjq=J,~>
+gA_WV`KPh&H>[%h;Gg7d:@1a]<FBcqNg,isR.?XJT!Hl9rq$..rqGU%[!bb.+:etm&f`Dk@V^"7
+Q)D4<h=UO3r"](rd'%+>(`!f$,WA_DKpT$di:6^DqYq$#\j.Db6>_(,UVl'`rV6Em^B(K0rW!3B
+@!Hj=>!*c+l2V,lZbFJn^"N,TrV$70rqGU%Zreh$',D<")CRjQF+&e+U:&/"m.U>Sr=/\tmGcjE
+_7$G9OF(D5rCmAj>ASW`J.%6uT<>oSiV!$ErVjq=J,~>
+h#@HEIh:?7#Tc9FPJ##]c-H(0"4GulqXORjrqc-Bc+C!IjT#8`m/R?)T"N_Cq#1!f%/obL[[`MH
+U:8M5p\spee,TVcf]W#.pAY9pqXED]p&G=-'G_N()]Tmq*WQH&!!iZW>`-Jlq#(-9s*t~>
+h#@HJUfI@c"%YgF4l\X1;/(]X^WF^EcM,WedbO6dnc'C(qXEFf];hGR.Olks.P*2,2*!ie7S*/D
+!)3/["\;$E2D?]].L7OVFe67umJ-YTrs\ksfX@<5QD1k8kkG)Nrt@jG!<<*#(b-sc0JtaF0Ie1Z
+$3BMo#oYim84nopkP+uLrtbV1nDI&"0eP",.Ochs/1rtM85<,d>l%b,:\RH`84>d,rB(0F5Xe6:
+8dJ+(MQ5+sq#(-9s*t~>
+h#@HM^PMi="+56/C#`k4FbQ3b_9'pGcM,WedbO6dnc&ppqXEFf];hGq8cD6f8P;iZ>@VDgG^Y)7
+J,k2sJ.d?ZFD5#[9h@lH8ksi,]\)WHrV6C$rUSULS<B24\'X@5rqHF+H9;6/!!+Q@7nZfd?<U9"
+2^8k8m/RGEAorHOWS$D.rq??urqc-BFC%sC91f+R$;!ld>@_PnIYEZ=qi1Z0pOE?oG].?qBEN!f
+G^]78#_J8?^teSWr;Ot@J,~>
+h>[MB'\!*i,YiZYa62mZnF?&JncSOYqu6'a#Q=GfkM4KR)UeZi*-S.$mJQYW$N0GOcGmrTj73!F
+p\t6"ec5mb/8hc?meueX"TA*n,R_Hh#7aOmh":IArmCar~>
+h>[M`=SbYi8,u0:7LELMS$gZ-mdKZ8nc&(]o_87^n,EXkq!mP&dV;DR3!VH*4[;>&7nDf8%S9,W
+5<Lqc3BBc^Us&0'p&>Bsn__X3aOK8?qYp6h!OE+3!##DT-n$]+5!hV'5!1e]0J"C`$j,nu#UVT+
+?\Yl5meueX#Q=FJ>Xpq<3W:uC3BKAh6:FC8lq.=N84WVJ!_5dQmn*g`J?Io(qYgE@s*t~>
+h>[N!MYho*Isl\"H4#P$Zc1S]mdKZ8nc&(]o_87^n,F("q!mP&dY;XJ@:E_XBl7s8H[^J.J.@!Q
+F)5K!@U`kaL8<#[r:U'sr:/[i`lQZinbW7ZrrKG;rW!T71dso2?>FS'EGT5p>#S'T-5?[R!!rZm
+AU&loZI&%<o`#U'pn<@]Bk:d_@:E_XBl7s8H[^J4J-(4LI/A3kI"$S7J-Uh)_rgUfrVk4EJ,~>
+hu<`75k=sc"VrFC5tXgF:/4DF.i/9O!!*]Ur]C="me$ATli.:jr:opKd%Y/9'&!<k"#=J;Ni^b$
+rq-3qrV,jMn+?JTpAY,>f)Q'a;0.S\XNp84o)Asihn"ng;)Ad$!!WNiQK@f9rmUmt~>
+hu<`@GOnE:9Mnkt@V0:fC2.Hn>Z4;[8dSO+F*)Mgme$ATli.Fnr:opKd&28#:.@`E8`E>N8Ou<>
+7TaSXNi^b$rq-3qrV,jMn+?JTpAY,>qu@NQ,q(K/6:XU>84Z3<69dRl1bgU.)%[&F!!j*8F,?6b
+cL1Z%rseb\\s@h_>t[RS7Rp!@b";k3FKjs$qYntDJ,~>
+hu<`GT_![<IscQgH[C/>IKP(MIt-[4!Jlg9S-6.co_SRQrso&+q"3gtWf)=NG^=adJ)l+hIsu`i
+GBS%NIZCMZo)A:]#Q=DemdKfErV$6kHi3pL!AZo0<+U)rrdG<'H$++DB44tC:-L3L%.jN*&m043
+Q`SL#rUTsuptrZOMLp5#G'A1WI"$RgJ-LRo_WgairmUmt~>
+i;Wha&G?)3"X69@G^kI,P*_]1rh'IfS=#7L5SE5[">J!QnGMJL#l<l9^9FDd9H)af#qBJ1L7#-c
+jnSiGs8Drirr@!8!!4`+#i,Ic89UN4bi8<po)B'omao@cYc+.?63tL0"V>7hnG)t4s*t~>
+i;Wi"<VB#m9N5D9G^kI,P*_]1rh'IfS=#CdBN""c"DGs4nGMJL#l<l9^9FDnE)tgf$!(hdL7#-c
+jnSiGs8Drirr@!8!!Y&=.ks.S8GYpg8Ou<=69dRm2)6d5*"E#D!!c&<S@?`%p&=O^$N'8C_mckK
+Sr%2W`(C25NR[ImrRLpu~>
+i;Wi2M"Z?,IsQ9]G^kI,P*_]1rh'IfS=#ItL4SN<"H^d\nGMJL#l<l9^9FE!MLs]8$$^E6L7#-c
+jnSiGs8Drirr@!8!!b/H79+#EI=M0F%tB%UH$44GBOY4I:e*2V!qu["89UN4bi8<po)B$nmao@c
+Yc+.WLr4`HL9'%tq#/bCJ,~>
+iVrn9p&GO<7W!I+P+J\^^;eCEe,@c%d`oeFZDDb'!pTag,b;X/qWIkdrqc0Li7?&`XFWVBirBDi
+9lbcMYfPVcpAO"N!/(1L";kW^EBr@\#!RdOh!Xn6nc'!rqXWt6i7cW"\Y):S!"&cA/3cp6C2SKO
+KDgH,J9#$l1DK9X"TqW;mJ$S2s*t~>
+iVrnZp.>ck@;pOIP+J\^^;eCEe,@c%d`oeFZDE@g9Bo+P>b/RgqWIkdrqc0Li7?&`XH.-lj%9YP
+@WI!bYfPVcpAO"N!/(1L"rLi`F'qF.oh#Wa84H$85Wq.e1Fs:Bq#CU_L:H%,pAFI\$i^"nlfI'Y
+d`8noDWsb":g%1=D00uNJV3oS"bM/FCg^008d.n<bO,'&fDg@~>
+iVrnsp4*U"FE;b_P+J\^^;eCEe,@c$d`oeFZDEhBl$rniS\=([kPkqhqXNh.f#kY,R>QRUJ-pdG
+Ee'I[aP?+TrSmhWKDY]R(h76%G^"W1J.7!WI!U!XDe`ij=A("Cq#CU_L:H%,pAFI\$i^"nlfI'Y
+d`8nsNp2'#I!U'`H[L9mJV3fP!J>skJ-CLtdd?f-fDg@~>
+ir9!spAb^?;KRDLTsM\cguRbgo(;VSp'^Qco'Yc%fZLdo7Ki&X"<E/rh"^"2$i^)#p@.8#cFooT%
+d!`u!`F)pUr;*Wq#(-NrrL.Cqu?puFHE]?JdCT@!=T>3!!P?@^Ztarn,NFe$N9o!q"4":g;nL?m
+f3e)/l6J6KT).cU8P&qZM_'8Za$U.SV:/k!q?6o"'3Y5q#/nGJ,~>
+ir9"HpIYrnA9<<^TsM\cguRbgo(;VSp'^Qco'Yc%fZLduDbTLi"B:&Th"^"2$i^)#p@.8#cFp'#
+;<:CVA93O%`80kVr;P^U!QP?@!!Z;BOKZBc:@Up_8Ou?@6pX!s/dhFT"ZVIUlMUYMs8W'*rVZNe
+o^:kqaHB6c8e"NtATN6PN0Kj,VlR#,r3Qa9Z)jdmNceQ!nO`sYK$s&]rRq4$~>
+ir9"fpOEd$EccelTsM\cguRbgo(;VSp'UKbo'Yc%fZLe&NpD2uI>"ZVpuVM`rquWdnE8TP]r@0H
+ja[YVF,-R0h<t(9ro3qY`ru;?##TK(YJ-renph'sIXHKeF`;))8.,1n"ZVIUlMUYMs8W')rVZNe
+o^:kqaJJ<T%=WPDFaSk$PanJGX08i,Zj3qBXJMJOMM(DK"bEE!mJ-Y5s*t~>
+j8T+/p](g,5&bn2VnUU<m.C)NrVlflrsA]'qY'F@fZ'=>m/R8.I&>WmiVs5`r:ojHg;p9k"R#gj
+/ocWFcKY*%hu<[5qu@!=E/1aQlJS-;lMq#'>>b\&!!G<<]''%TrrrE"p[6mkmf3eaEIa7KZG+E,
+f%Ss<iqqdCini>8aLn[:8e(:j"Uoe:nG<.=s*t~>
+j8T+Tpdu&i?>t:RVnUU<m.C)NrVlflrsA]'qY'F@fZ'_$m7ILZI&>WmiVs5`r:ojHg;pF@9^#(R
+=E0(pcKY*%hu<[5qu@!=E/1aQlJSa>m7IOQ7nd5e#5\B'3Jb90rTF1arquNYhOa1.%:=+*PGGLu
+aO&Mlh;I;ij9ai&f[7dQY*X*(nO`s^Rc*]3rnII'~>
+j8T+opj`m)FDuVhVnUU<m.C)NrVlflrsA]'qY'F@fZ'tOm=>4a!iF]HiVs5`r:ojHg;pR`J`qUh
+G&`89cKY*%hu<[5qu@!=E/1aQlJT4*mXPLjI=$!B;?m!u"?D:LkPaTD"oeGombY5;J.6R>J<Qe7
+^<"[Pg>1]HqrA(ChUp5s]WRfaK(4?pKWsD(qYo7LJ,~>
+jSo4Pp]([*;KIM`][l<<qYgE_rs/Q#p?^YWLDTCZ"<2`cgA'P)#QFYqmblB\-0YC6>'usdm/$_=
+rrBP*!!kT/R`b'rq!(]B!!Ea>Fbj)q!!G98[cRGJrr`5pkZ@6R$q,K5^XhE/n+?>Kq>0sc$iBep
+o^D##d_Vqg$1Ruu1qr/HrS7F'~>
+jSo4lpdtofA93Er][l<<qYgE_rs/Q#p?^YWRTJrM"B'WEgA'P)#QFYqmblBh?g1/eApg5pm/$_=
+rrBP*!!kT/R`b'rq!*=p8d%n&Fbj)q!!G98[cRGJrr`5pk_&@s$t+IQ^XhE/n+?>Kq>0sc$iBep
+o^D##d_W#4:[q$[C;oB0rS7F'~>
+jSo5+pj`a%E-$])][l<<qYgE_rs/Q#p?^YWVhOSis*OmFgA'P)#QFYqmblBpMWoWqE.";%m/$_=
+rrBP*!!kT/R`b'rq!+O=J-::;Fbj)q!!G98[cRGJrr`5pkbIWt%!?rf^XhE/n+?>Kq>0sc$iBep
+o^D##d_W)NK(4?oP02t]rS7F'~>
+jo5A)"Si$(!`*lnWQXDqqu5m\"o\5`gq6>M!!F6gVV:h"rrrAsnDM>llMq(oE/M0dqVD/O@/Bp0
+:4TD#q#CBc$g[ir:N_`*_YX<98;=S8r8[eZrqbC[nGie`KsKM+qYgE`rs8W%q=En-bcF/$!!Emu
+hXUO"s*t~>
+jo5A8:&%<d@WR@)bN8Bnrp'LerV5d8^NT*="B'WEgA'G&"o\8di5gH78d.n-MR_aDh>[I_qZ$ms
+J?.K#s8Vailq.CiFcWoHqZ$aiL:67Bj8T5\qVbBC8dAgZZJ>*KrVl?e#labtoBP/UY]'&("B;;U
+nbh5CJ,~>
+jo5ACK(sj%EH?r8bN8Bnrp'LerV5d8_Ns\As*OmFgA'G&"o\8di5qMTJ-CC@MR_aDh>[I_qZ$ms
+J?.K#s8VhIm!o4YFcWoHqZ$aiL:67Bj8T5\qW*D$J-U7OZJ>*KrVl?e#labtoBP/U[#jg."GO5>
+nbh5CJ,~>
+k5PJR,kq?E0QDiId-UW.k5PV`pZg:]#k@ru)gnO:pt>ZLrV5d'lMq))FI()<rn[SS./NuL;i%sG
+r;Zf#li724E/(OJn,!(f@Z%e]rSdbWq.K3t"@e6Zkl'iI#QF\snD_`I&Fof)!cuoZqYoCPJ,~>
+k5PJUAGAb%=`K1rd-UW.k5PV`pZg:t:@_![;LG@qpt>ZLrV5d,lUh=XFI()<rn[SS./NuL;i%sG
+r;Zf:lq.F\E/(OJn,!(f@Z%e]rSdbWq2t2>"Cd5!kl'iI#QF\snD_`^;t<Na99@]kqYoCPJ,~>
+k5PJXP5'P4G&`8:d-UW.k5PV`pZg;0K(=HlHig2!pt>ZLrV5d/l[T.cFI()<rn[SS./NuL;i%sG
+r;ZfKm!o7bE/(OJn,!(f@Z%e]rSdbWq60=="EoX5kl'iI#QF\snD_`mK^jQqV:Fu0rnma+~>
+k5PF"p](L*BRZZ!mJGrD"oeDjiMmgf!!F0eVV:gsrrN&8lMq&+H(`XZh#@?rqZ$k"N5+ZVs8Q?j
+!!Q)BSBL?equ?m=Eg"B.ro*kXrl=O/"@e9\kl'`F"o\8dhQ\Bs!!HlYlM:G;s*t~>
+k5PFLpdt`bCOVu$mJGrD"oeDjiO)k\8d&%>VV:gsrrN&GlUh:XH(`XZh#@?rqZ$k"N5+ZVs8S#D
+8d/[LSBL?equ?m=Eg"B.ro*kXrmgO2"Cd8#kl'`F"o\8dhR[+b8d'molM:G;s*t~>
+k5PFjpj`QtDLS;'mJGrD"oeDjiP(->JH'uuVV:gsrrN&Rl[T+bH(`XZh#@?rqZ$k"N5+ZVs8T7g
+J-Bt=SBL?equ?m=Eg"B.ro*kXro!<s"Eo[7kl'`F"o\8dhS>'>J-;FglM:G;s*t~>
+kPkS3"S_s#20=tpk5+$9"TJ2]^*iOQ":fgUf_F%t!35tt!'9TL";cE\f_=2$!$D(<#<RmZlM^bS%
+.+$!"`9"#i;'/G!!Q&BT[NK3i;WiT(@hG.7Z+hArT=+_rV5[#2XpbM@a"$3ro*m-~>
+kPkS@:&%<a>',n@k5+$9"TJ2]`a\R4"AX?@f_F%t!5e\,!*o"c"AsNAf_=2$!$D(<#<RmZlM^bV
+;XI'\9Q#Tki;'/G!!Q&BT[NK3i;WiT=n5/f@Z%e]rT=+_rV5[&D"1+#K$3ESro*m-~>
+kPkSIK(sj"F``b[k5+$9"TJ2]bDl.E"Fb`pf_F%t!7^st!-I^\"FPQlf_=2$!$D(<#<RmZlM^bY
+L@'KqIrC(Ji;'/G!!Q&BT[NK3i;WiTMXl9#G)EoqrT=+_rV5[)P4=&*R`jskro*m-~>
+kPkNYpAbA&J#Lukrnm_Yrql000(f2I%==l%p=B6DL]%2RB-$LB":TXQf_=2$!)ECk"qZO!jo#.R
+qu?^*nc/k8FHjf4nKe&5"X%c?[Ggu>rrN*rnc/e^MS&*Njo5J_qsi8tnGiZ+b3A`\s*t~>
+kPkO6pIYU&J#Lukrnm_Yrql04BD"k":4&bfp=B6DWr5NjCfU!t"AX<>f_=2$!)ECk"qZO!jo#.m
+r(6rank'*bFHjf4nKe&5"X%c?[Ggu>rrN+Nnk'$oMS&*Njo5J_qsi<VnO`n<b3A`\s*t~>
+kPkO\pOEEdJ#Lukrnm_Yrql06OS+,,IX@jAp=B6D_u5)dDgh/+"Fb]nf_=2$!)ECk"qZO!jo#/+
+r."crnpgpjFHjf4nKe&5"X%c?[Ggu>rrN+snpgjdMS&*Njo5J_qsi@(nUL_1b3A`\s*t~>
+kl1Y/pAb@.EK%Qnr7q;Sr:88hp&G4)HD/m_f)G_`rW!!*Ea8)6"*C6ep>#ZJV"t&p5cE<-r_37j
+!=D?f!!P$%U"&U2r;[$/@XF`ln,;,C!.j\@"@e9\kl'QA"9%lB.e3QB!e8G\qVqO*~>
+kl1Y=pIYTbEK%Qnr7q;Sr:8EPp.>H_HD/m_f)G`7r^m5cEcUYA"*^Hhp>#ZJV"t&p5cE<-rdar>
+!DQtm8d/@DU"&U2r;[$/@XF`ln,;,C!2]6Y"Cd8#kl'QA"9%lFAb&Fr99IHbqVqO*~>
+kl1YGpOEEpEK%Qnr7q;Sr:8L&p4*9pHD/m_f)G`WrdY'!Ee<e2"+$Zkp>#ZJV"t&p5cE<-rhfXE
+!If+\J-C.CU"&U2r;[$/@XF`ln,;,C!5J)T"Eo[7kl'QA"9%lHOR[i'T?QZuir=N~>
+kl1WbpAb@BG+-\GrnIGTrUeS^pAb=*H(`[\f)G_;rW!$:G*F0?!!?8jch#rl!V\&>!!H?;jlQ^E
+!!+i]nc/eTJ?-URr;[$*<d'Y=jS@X3!28r`"@e9\kl'N@"9.u;'Cl,+%[ti7r8[g-~>
+kl1X=pIYThG+-\GrnIGTrUe`LpIYQ`H(`[\f)G_rr^m8iG*H;&8crmuch#rl!V\&>!!H?;jm,V=
+8c`(1nk'$jJ?-URr;[$*<d'Y=jS@X3!5.kp"Cd8#kl'N@"9.uC<q8ic;52M-r8[g-~>
+kl1XapOEElG+-\GrnIGTrUeg&pOEBqH(`[\f)G`ErdY)uG*IjRJ-1.ech#rl!V\&>!!H?;jmRd!
+J,sh8npgjdJ?-URr;[$*<d'Y=jS@X3!714d"Eo[7kl'N@"9.uHM"6'!Ju6ubr8[g-~>
+l2LeM"SVm!3.7[VpY#QKrq4GJp](F&GbER[f)G^mrW!$IHD#o\!!G-A`U3Z\rrW/;#PnE%4hQFF
+!!6GR!qQBo7=\hVr;['0<csA,g@YC#rrBe(!!GcK]BK4PrrW2mU@A3d/?mh"roF*0~>
+l2LeS:%q6_>^`L%pY#QKrq4]?pdtZ_GbER[f)G_Xr^m8nHD$eu8d&I``U3Z\rrW/;#PnE&4hRFY
+rCR-)I7s0("(?^h%K-83$<D;.ZJ+sMh>[K%nk'$oMS&*NiVruYosaH`"CSIeo`!qOJ,~>
+l2LeWK(jcuG($7?pY#QKrq4lupj`KrGbER[f)G`3rdY)qHD%D1J-:7_`U3Z\rrW/;#PnE'4hS.L
+J,Xs!E.7A."*K-'%K-83$<D;.ZJ+sMh>[K3npgjdMS&*NiVruYou?NP"GX/6o`!qOJ,~>
+l2LaMp&G4`K!=20f`)'QoX5)$!!@J;e+M>m!;l]p"?(_.d3%oZ":U*rjnmj5!r/2dq>^O((]==9
+)KC]Vo)Je5%/^)1*G'JTYgr7@h#@B&nc/e^MS&*Ni;WlWo2tM_"(8e&q;hR+~>
+l2Lakp.>HqK!=20f`)'QoYaT$8cs=0e+M>m!;udf"C-DTdU2Q;"AXc_jnmj5!r/2dq>^g0/j)To
+8lBYf>4bDg68&cF!!aNUG`ArXnGM)A!8d9="Cd8#kl'H>!r__EnO`n1]]AnLs*t~>
+l2Lb,p4*9gK!=20f`)'QoZi-bJ-1%fe+M>m!<)kH"Eo6nduEpK"Fc0:jnmj5!r/2dq>^g05A,4h
+IsQ*nL\-)uE]X^-!!aNUG`ArXnGM)A!9j!("Eo[7kl'H>!r__fnUL_%]]AnLs*t~>
+l2L`Sp&G4aL:64AfDbpNo8`SG"*U3^o[j*Cg\h*T7Y7l%Mt$cL?DuQNh#@KTntQrm!!>W4S3H?@
+#REn@I[.=lnGM&@!8d8H"@e9\kl'E=!rUsdnc/e$R*+gojo9i~>
+l2La2p.>HrL:64AfDbpNo;VLW"*U3^o[j*Ck5@mT@=k`@Wpr[`Ei@[bh#@KTntQrq!!`Q>-otUV
+S8\0p"%G3q&c2P6#Y&laQ*o34r7h5OkOM4J@Z%e]rSRVVr8^fI8d%t[b3f,gs*t~>
+l2LaZp4*9hL:64AfDbpNo=XjK"*U3^o[j*CmJVP<FFpaS_!upWJZ.8qh#@KTntQrq!!`TM7V$C[
+S<Wf!"*n9=*r>pC#Y&laQ*o34r7h5Omdbl2G)EoqrSRVVr9/n*J-2=amJQ)GJ,~>
+lMgnZ#ke6$7Z"_?rRUuMr:!nc!!@A4d.Gri!4Vn,"]^>fk3WrT!!Fp@am]5arri5d`Dd$8!!<ED
+3$n%o#n&k6I#=Z6h=:EsrrDc`!!GcK]BK4MrrMtInGi\eY1r[Lk5Tr~>
+lMgn\;"dKa@Yq\[rRUuMr:#I:8cs4)d.Gri!6kC6"_NP"k3lID8d&Fdam]5arri5d`Dd$8!!<ED
+3&^[["!\`u$2FQ-$Tr?TMP@oBnbh,@!;Z1X"Cd8#kl'B<!W&P\8d'(8g\1X/s*t~>
+lMgn^K_Bp!G)<forRUuMr:$TZJ-0q_d.Gri!8II&"`oI/k4+?"J-:=fam]5arri5d`Dd$8!!EKE
+3(#k-4p*o#+V4AK#n&k6I#=Z6h=:EsrrDodJ-:%Q]BK4MrrMu.nULasY1r[Lk5Tr~>
+lMgk-o`,+aM7`!Mec,^JiZe4!")""Ho@O!BQi-mfArOLiqLnD>"9a=cjSR^3"o@Z<WE9kt!"/f?
+3bj)#T!m#.pAN\E!<2Nh"@e9\kl'B<!rhQsnc/e*QGr4hk5Tr~>
+lMgk<oh#?rM7`!Mec,^Jj^@pW")sXQo@O!B[J`]$D2c6pqPEaT"A=KYjSR^3"o@Z<WE9kt!"/f?
+3bj)#T!m#.pAN\E!<2O]"Cd8#kl'B<!rhXfnk'$^QGr4hk5Tr~>
+lMgkGomd0gM7`!Mec,^Jk`5Li"*^-Xo@O!BbPcqpEf@cuqS)KM",OGIqqM,SqX2q6=;9ou$NUl$
+C41u2[a=11rRq2NrpkRBG)EoqrSIPUrpba5J-2+Vm/?)HJ,~>
+lMgjNo`,+[M7VpLeGfUG[KHC,"D4"Enc%2@!-J2?#6T"0`pWih%e9T&9Vg53rnIGWr:ApkZ[t1$
+!"'N/@"b8acJe<irn%2@!!GcK]BK4LrrN%3nGiZ%Y2/m8s*t~>
+lMgjloh#?pM7VpLeGfUG`_?8%"E9^Onc%2@!1a$\#>9*#`pWim<:WWaC8BDQrnIGYr:ApkZ[t@J
+!q$$t"Uu:u6=>J@\Ba('qYo+Hnk'$oMS&*Nh>[NRPOV6IGHTcsk5Tr~>
+lMgk-omd0iM7VpLeGfUGdXh:G"Ep-Unc%2@!4r/[#CgcW`pWipL@KcrUt,/;g]%QWoA[s"Jj^1Q
+mJm\&(F_:0@"b8acJe<irn%2@J-:%Q]BK4LrrN&&nUL^pY2/m8s*t~>
+lMgj+o`,+KLq)UFeGfULp14%#"C786nG_)?!)WXp#820Hc1:l3D=RZ0'U$B"rS%8TrV>p?cU[p6
+"pu+Y&Io9OoDf.4<.1msjRE!Dec,U_o)Jn_MS&*Nh>[NT`:3g11n)VWroa<3~>
+lMgjSoh#?jLq)UFeGfULp5]#B"Dj=EnG_)?!.t2B#>fQ1c1:l3QL[WN;Ner`rS%8_rV>p?cY5-e
+,9%F7&ePT`"o\W;"UGMJ'cS>C-7CZLIBCrYnG3%5rr?-l8d&U\]BK4LrrN,KnO`pkR`k4"kPp&~>
+lMgjqomd0kLq)UFeGfULp8n.A"F$*PnG_)?!3#mI#CLZ]c1:l3ZgrVLJ!._8rS%8^rV>p?c[o1m
+4Y@ln&ePT`r!3lF'H8;N4$Z/&85t#>dcBonrRLoJM=Z6#G)EoqrS@JSrnd0q"Fcf_nG_VNJ,~>
+lMgico`,+1KX0V7e,KLJjV[mq"BUc+mf(l=!&4BP#U"Aae+Nb?h?WTO")+mopt5TKrV>R_r;[$V
+9ji7&N#_Hi"r;$DcLC]0e,KCio)Jn_MS&*Nh#@EP(@hG.&rO9_r9+*1~>
+lMgj?oh#?bKX0V7e,KLJl!"!W"DX+>mf(l=!,VX,#ZQ&@e+Nb?k"kP?"*h$*pt5TVrV>_N5Wh"`
+5tta4Ll=In./tb)/1rV52aV>LcLC]0e,KDUo1B-pMS&*Nh#@EP=n5/f:l;jHr9+*1~>
+lMgjcomd0nKX0V7e,KLJl\bUj"F$$Kmf(l=!1<b9#^U`fe+Nb?l@\YX",*l6pt5TVrV>f*DJ3Ka
+9hf#@Ll>:171MdX8PDr[=^GNQRa1F!rmUlIO7Rl)G)EoqrS7DRqhjrp"Fc6>k5=EBJ,~>
+lMgiLo`,*rFfF-jdf0@ERf!-g9T[-Xrn.5N%/p54/psPLq#CBk?1Isu0:L,Srn%/MT)AWo$!qV7
+Z+n%CoDf"(H)B<jdJj1go)Jn_MS&*Nh#@ES;=OVgG,j<lkPp&~>
+lMgj.oL]44WS@3rrrMu'r(7*'OM^A`f`(qLr^mGuI&>Tls8VtRnk'$kR`t:#fDc8j8Ou<=7::+u
+Z+n%er&+sB3'',a5X@b0H)B<jdJj2So1B-pMS&*Nh#@ESK(2G8I&brrkPp&~>
+lMgjWoRI$nWS@3rrrMu9r."opOM^A`f`(r+rdY9!I&>Tls8VttnpgjmR`t:#fDc9)IXHHbEF<dL
+Z+n&)r*Be=@:WtbD/jZ?H)B<jdJj3-o7-seMS&*Nh#@ESVso3<Wn[=3s*t~>
+lMgiKoDf"dS^@!-e,KLKoeuaK"@eBclM]E9!:0R`#X!X>hYR9PrmL?;"9a7bjSRR/!'pJ_#;pOa
+^>J8AIe3UC"+-iqpX0!@+7fI87Z+hArS.>PM=CQK<h7V/rojB4~>
+lMgj-oL]7"S^@!-e,KLKoks_#"CmG+lM]E9!:g"[#[Mt_hYR9Prn[-;"A=KZjSRR/!-eB6#?c)0
+^>J8ASGGV\77Kd<8P2X&Ut>@grr?Hu8d&U\]BK4JrrB(h8d&t$d.@8#s*t~>
+lMgjVoRI'nS^@!-e,KLKopG]."F,p@lM]E9!;6;@#^1a#hYR9ProEU"",aVLqq(iJT`0HIIro^n
+^>J8AZi"nRF`qtSH@1-jIs\!CpX0!@O7Rl)G)EoqrS.>P_sr6[I%AXUrojB4~>
+lMgiKoDf".OML/[df0@G]DV^43JtH4rRq2Na8Gu@8qaS3r;Q]sqb$DZ"@o9;o`!PD!8m_T#QeFb
+WnI+FrNPkn")jd[p!Nd>+7fI87Z+hArS.>PXmlAo6'B7UrojB4~>
+lMgj-oL]6aOML/[df0@GbPb$9?AcAYrRq2NfDS;E@YD,Kr;Q]sqgS*."DFU\o`!PD!9j>Q#AJ^g
+g%PFD`q)e)Fe7(TdJj2So1B-pMS&*Ng]%8lnO`pnP/cqhkl6/~>
+lMgjVoRI'oOML/[df0@GfDU4&H&B5trRq2Nj8FK2FG.$]r;Q]sqkEY3"G*Auo`!PD!:Ti9#B,-m
+g%PFDf(smmJ-1(ge+M,g!0?`%"Eo[7kl'99!7gUi"FH<Omf)GMJ,~>
+lMgiKo)JknXk`^!rrMmdrW!'TL:?=Cg&D&Mr;Zt&M7VmKrr3#u^@D7,'9U,rr7V)MGPqLI,BAjZ
+kktJ\iq!-P?CB+0dJj1go)Jn_MS&*Ng]%8nnGi\GMS/0Okl6/~>
+lMgj-o1B+)Xk`^!rrMnBr^m;sL:?=Cg&D&frCR3+M7VmKrr3#ucLOR1;3A][r7V)MTD_@f<H=/7
+kktJ\lLRUMDOJf@dJj2So1B-pMS&*Ng]%9)nO`pgMS/0Okl6/~>
+lMgjVo7-prXk`^!rrMngrdY,tL:?=Cg&D'$rI>#lM7VmKrr3#ug@BasJ!%S4r7V)M]D[6cH#et[
+kktJ\nFM/4H'utKdJj3-o7-seMS&*Ng]%95nULahMS/0Okl6/~>
+lMgiKo)Jn%N5k5^df0@H`Voi?-A8\br7V)MKDbcQBTBpqrr)itqD[sF"(A:dptG`Kq],P7#u>oA
+de!J<s8EQ$!!H,^aRB,Vrr=/4!!GcK]BK4JrrCpG!!F^([,h/Ks*t~>
+lMgj-o1B-]P/ckddf0@He,DrB=+mm>r7V)MVu93jDN;R"rr)itqJc!t"*L^#ptG`Kr*K=o$"J=U
+de!J<s8H!i8d&gkaRB,Vrr?Hu8d&U\]BK4JrrD6P8d&7M[,h/Ks*t~>
+lMgjVnpgh.`pEWOrrN)SrdY,tKX0Y9g&D&grI>#kNkt)]rVlopRdtt2KWNu(gA_3PNr=J7EdOM.
+oD\direL,r"F--On,Cc8!0?`%"Eo[7kl'99!:KB-"F>d/jS\6AJ,~>
+lMgi_nc/e@W7^bAdf0UK8cSi2JZdo,g&D%[rW!**F-F]6rr)itrMT2d"=]b]n,D)A!42V("VPd1
+[c@5`rrN*WoDf"[Nl(/^df0:ho)Jn_MS&*Ng]%91nGi\3JZdr-kl6/~>
+lMgj;nk'$jWn?tCdf0UKHqI"1JZdo,g&D&4r^m>fF-F]6rr)itrP%hp"Bq59n,D)A!6P13"]0/o
+[c@5`rrN+<oL]6qNl(/^df0;To1B-pMS&*Ng]%9;nO`p_JZdr-kl6/~>
+lMgj`npgjrWn?tCdf0UKU4@cAJZdo,g&D&VrdY0%F-F]6rr)itrQk%b"Fli^n,D)A!87=$"ak9F
+[c@5`rrN+foRI'iNl(/^df0<.o7-seMS&*Ng]%9AnULaiJZdr-kl6/~>
+lMgj&nGi\U\`!5]e,K^Q\c;^@J>q;ug&D%7rW!'6G+$YHqu6]l,kD!=!dqH:qV2#M;#L@t5^/[?
+nGW=c!+tj'">G_Fkl&s0!$Ce4"@e9\kl'99!8d5G"<2ijh"g16J,~>
+lMgjOnO`q!\`!5]e,K^QbXtK(J>q;ug&D%or^m;iG+$YHqu6]lA+N:q98'b6qV2#MK)J:F??_j]
+nGW=c!0ZtH"C$bqkl&s0!+>Cj"Cd8#kl'99!9irF"B'`Lh"g16J,~>
+lMgjnnULb"\`!5]e,K^QfRSL%J>q;ug&D&DrdY-!G+$YHqu6]lORdo(M72I@g]%8PrI>&nGFH_E
+rVc`rZLiYMHA]>urR1]GO7Rl)G)EoqrS.>PmdYf1I"/0Oq<7j/~>
+lMgjIn,NSP^?#%fe,K[L0E;0+Ut>=nrr=&<!!FEiT@EQ2rrN(_nc/e\U=/]5h>[N="TAB)#&/^m
+h>$pJ!06[O"<iH*jS[I+!$Ce4"@e9\kl'99!7pZ?"<2cfg\C"4J,~>
+lMgjhn4Egu^Z>.ge,K[LCJ%6OUt>=nrr?@(8d&+=T@EQ2rrN)&nk'$tU=/]5h>[ND:&[`g9Pf?a
+h>$pJ!3Yrd"BC,^jS[I+!+>Cj"Cd8#kl'99!93N@"B'ZHg\C"4J,~>
+lMgk*n:1Y$^uY7he,K[LQ@OL;Ut>=nrrA)YJ-:1DT@EQ2rrN)<nUL_9de*OprrM_CrdY0%DhG4K
+q#(-l`q4caH\Acer6kTFO7Rl)G)EoqrS.>Plg]K.I!qsJpuqa.~>
+lMgk+mf3JB]&NG_eGfdP`.DZ`WS$purrDfl!!Fj#VV1b@rrMU)o)Jn&NkaiVh>[J1r;[!SFHaZ/
+rVZZq^%;:-&V-t>qU5BD+7fI87Z+hArS.>P^@;1+)h"U;puqa.~>
+lMgk:mn*^m^#JbbeGfdPd[l,RWS$purrDln8d&7DVV1b@rrM[no1B-]O2'rWh>[JTrCR5qFHaZ/
+rVZZqch'g4:k5Y(qU5BD@.Qtn@Z%e]rS.>PdIBg3;LPFrpuqa.~>
+lMgkEmskP!^uG(eeGfdPgp<B1WS$purrDrpJ-:+EVV1b@rrMbLo7-snOMC&Xh>[JmrI>&qFHaZ/
+rVZZqh=Q4#I=SEUqU5BDO7Rl)G)EoqrS.>PhXQ+!I!qmGpuqa.~>
+lMgn\$h"&u)kc'Zr7(`Nq;fK$_;b7DrrCOH!!G?5XPWgMrrN(Gnc/btX4m=(rr=2?!!QYWVUkG>
+r;Qc]oDf!qI&5Kidf0:ho)Jn_MS&*Ng]%8KnGi\@IAkoqkl6/~>
+lMgn];X[3\>-6ZQr7(`Nq;fK$_;b7DrrD!U8d&FMXPWgMrrN(knk'"*X4m=(rr?I*8d/mWVUkG>
+r;Qcco1B+4V:bOjrr?Hu8d&U\]BK4JrrBb&8d&4DW8%+2s*t~>
+lMgn^L$sNpLUQ(2r7(`Nq;fK$_;b7DrrD<^J-:%GXPWgMrrN)0npggpX4m=(rrA/ZJ-Bn@VUkG>
+r;Qcgo7-pjV:bOjrrA,OJ-:%Q]BK4JrrCI:J-:.GW8%+2s*t~>
+lMgna=mc7n#^=qhqYo(G#6"5XhW+2)gA_/Zr;ZsiKX0Y8qYpWrk6LSY"=9DUmeu&C!4Vn,"X7rG
+]]]1hrrN*4oDeu,T$m8Zrr=/4!!GcK]BK4Jrr@Q=!!G30XPN^9s*t~>
+lMgnaM!dk=:6X>uqYo(G#6"5XhW+2)gA_/prCR3$KX0Y8qYpWrlqd4F"Bh)4meu&C!6kC6"]TK$
+]]]1hrrN+#oL]4+T$m8Zrr?Hu8d&U\]BK4JrrAkb8d&CKXPN^9s*t~>
+lMgnaX6tKAJu@8hqYo(G#6"5XhW+2)gA_0+rI>#nKX0Y8qYpWrmt:4^"FlcZmeu&C!8II&"aY0J
+]]]1hrrN+UoRI$iT$m8ZrrA,OJ-:%Q]BK4JrrBh(J-:(GXPN^9s*t~>
+l2Ladli7/P_!(Okf)GpPqY9marn@APO8T%]<J\3Kr;$?nr+5I""9NhTiVMI3!)3=k"]0Q=dIR;5
+rr>7T!!H;gbOPS\rr=/4!!GcK]BK4Jrr>mc!!GrIZJtcFs*t~>
+l2Lb%lq.D"`p!0qf)GpPqY9marn@APYl./sAr+"\r;$?nr/gJA"+di<qVV;QJGi(D@salro)ALc
+!-\!,"DX:Hnc%#;!+>Cj"Cd8#kl'99!.s`5"Cd"hiqqs>J,~>
+l2Lb6m!o5'b38Tuf)GpPqY9marn@APa8LMkF,7Bir;$?nr35aB",O>CqVV;QVYu#KEdOJ,o)ALc
+!1rh5"F6?Wnc%#;!0?`%"Eo[7kl'99!3#F<"ET4$iqqs>J,~>
+l2LeY+m]14%Y!:(qYmPq!-%l:"CdA+lM^PY!rgXNo)JnUT[EB1iVrr="TAB)&o`Z8iqiKN!,D-+
+"@J<imJbT7!$Ce4"@e9\kl'99!#Y5+"D!A#kPaWEJ,~>
+l2LeZ@I-Si;OZJ3qYmPq!1EdX"Dj(5lM^PY!rh%Mo1B-rT[EB1iVrrE:&[`g:iM6!iqiKN!0m+J
+"CmS4mJbT7!+>Cj"Cd8#kl'99!*etc"Diq+kPaWEJ,~>
+l2Le[O6hB#KWa2$qYmPq!4_uX"EKL;lM^PY!rh;5npgh8dI[@rrrMYArdY0"E/:s^qYC-k[.JkO
+HBH/5rmUlIO7Rl)G)EoqrS.>PN:DE$E/D0hrTO93~>
+l2Le`R-FYS0!+4.r2fnu9`4qoEg"H1rqQKoqb-M\":L1%kksE>!.4YE"[[F%b4#<)rrA>V!!G!5
+]]f=Crr=/4!!GcK]BK4KrrCC8!!O'WP/Zhfkl6/~>
+l2Le`Zg(-cB"I-tr2fnuJGi(CEg"H1rqQKoqgS-/"AXrikksE>!2BEa"^cJBb4#<)rrBCt8d&@U
+]]f=Crr?Hu8d&U\]BK4KrrCmF8d/%3P/Zhfkl6/~>
+l2Le`aQe9YOMp;Sr2fnuVYu#JEg"H1rqQKoqkNb5"FlHFkksE>!58>]"a"sWb4#<)rrC15J-:4V
+]]f=CrrA,OJ-:%Q]BK4KrrD6PJ-C=@P/Zhfkl6/~>
+kl1\U.-U^79YB]crN?/#/H,VQ%<Rr\nc&=`!WK_%!!??&g%OG*!W*`5!!NXDKWj5,q#:?5oDf"9
+Ks]q=e,KCio)Jn_MS&*Nh#@A$nGi_PGb3=TrojB4~>
+kl1\VAa)eiHcGCGrN?/#B`:U-:3;iHnc&=`!WL=68cs%3g%OG*!W61$8d.q+KWj5,q#:?EoL]6c
+Ks]q=e,KDUo1B-pMS&*Nh#@AKnO`shGb3=TrojB4~>
+kl1\WP3IK"SBgHprN?/#QMuC<IWUq#nc&=`!WLdCJ-1D&g%OG*!W@uVJ-CC?KWj5,q#:?QoRI'l
+Ks]q=e,KE/o7-seMS&*Nh#@AfnULddGb3=TrojB4~>
+kl1__]*%9t"TqN7m.^I_rr<?(!!F0aS^I*'rrMsQo)Jn8QH/Ckj8T+Wr;[!XFHjc2rV6BmmdpJ^%
+Y1Y;q:#?D+7fI87Z+hArS@JSq],/,"Ti+aXkrm:s*t~>
+kl1__b=q.m"\a?dm.^I_rr>mp8d&%:S^I*'rrMt6o1B-dQH/Ckj8T+prCR5sFHjc2rV6Bmo(5NW
+:4TG&q:#?D@.Qtn@Z%e]rS@JSr*Jnc"DWOjhYH@7J,~>
+kl1__f7E1:"bE;nm.^I_rr@`OJ-:4DS^I*'rrMt`o7-snQH/Ckj8T,.rI>&pFHjc2rV6Bmp@Nk<
+IXnNVq:#?DO7Rl)G)EoqrS@JSrJpDu"E/mohYH@7J,~>
+kPkSXIcg\8"&HSrp\b#trrD*X!!FToUXo/4rrN(nnc/c4ZJbQ=rr>1\!!WL7J>q2prqQKorYP2,
+"*gWopXB-B+7fI87Z+hArS@JRTCDmb-?>3`lMTiFJ,~>
+kPkSXTBAfN9RXtJp\b#trrDB`8d&1@UXo/4rrN)2nk'"5ZJbQ=rr@0>8d/s[WS$qDq#:Bo>4bDh
+HDK3fe,KDUo1B-pMS&*Nh>[JenO`scEfe*%r9+*1~>
+kPkSX\EAAHJY1<Up\b#trrDTfJ-:.DUXo/4rrN)CnpggsZJbQ=rrAYhJ-BnBWS$qDq#:BoMtDN%
+I&,Ehe,KE/o7-seMS&*Nh>[K$nULdfEfe*%r9+*1~>
+kPkV^nP\HK"[]6TpAFourrBt8!!G$*WS@4@rrMd5o)JnST$R!,jo5>,r;[!KEf[rur:^-j9(W)c
+@[tj<e,KCio)Jn_MS&*NhZ!WR,k:p>!aC&Ie+EY&s*t~>
+kPkV^nU]do"a.KDpAFourrCRI8d&=HWS@4@rrMh"o1B-pT$R!,jo5>:rCR5oEf[rur:^-jIe657
+E1G>Je,KDUo1B-pMS&*NhZ!WSA+<.pB7-K'o`"%RJ,~>
+kPkV^nY>2r"e*NupAFourrD$VJ-:+GWS@4@rrMkRnpgh6cgq(srrD6\J-C4=O1siUpAY,goRI$i
+SC-uXrrA,OJ-:%Q]BK4MrrN(]nULd]I&#0_roa<3~>
+k5PM[k=4M4"YQ&$o_\WtrrA\i!!GK:Y2K0LrrN(So)JmuLqMmIjo5<jr;["&I%o*^rq??lEqB>7
+:6irjrm^rJ+7fI87Z+hArSIPSL[b?J.rpT[jnn3?J,~>
+k5PM[k]l/\"_b%#o_\WtrrBY/8d&IOY2K0LrrN(so1B-[MnJ3Ljo5=CrCR6*I%o*^rq??lRe02T
+B9gU.rm^rJ@.Qtn@Z%e]rSIPSWpr[b=)s82jnn3?J,~>
+k5PM[l($gb"d6X`o_\WtrrCCDJ-:%HY2K0LrrN)6npgh$]]T+QrrB>&J-Bq?U=8c6pAY-&oRI'j
+Q-&OpeGfN0o7-seMS&*NhZ!SnnULdeEf@Tkqr[p/~>
+k5PP_q;O6k!!O-]eFE>4])MbXr;ZsmKs]q=o`"sU%eBZ&;Q&1@k5PJN#lXf-)KCYEjSSWM!1i`^
+"?MRZli,E6!$Ce4"@e9\kl'E=!RD&B!!WjDI\bE`roX62~>
+k5PP_q;Z;O8d/=ag%"k9])Mc)rCR3%Ks]q=o`"sY<:`]aDPu.\k5PJS;#X&j;K7T(jSSWM!4h_o
+"CI2*li,E6!+>Cj"Cd8#kl'E=!SpTC8d8%+I\bE`roX62~>
+k5PP_q;de#J-Cb7hXUC>])McErI>#mKs]q=o`"s]L@]otJu@8pk5PJVK`6K*HuY%RjSSWM!7(4e
+"F?*Eli,E6!0?`%"Eo[7kl'E=!U#.,J-LI?I\bE`roX62~>
+jo5G^pYS?t!!WX*Z0h8_rk8=3=T&4&=,OWRrUg*jr+Ya&"<*NDm/?,I!/pdU"\F!1cLCi+rrC15
+!!FU(\E<_=rr=/4!!GcK]BK4OrrM:.nc/jq:Nhr;kPF<?J,~>
+jo5G^pY^2R8d8%@_X7'prk8=3M#BpKBSsFcrUg*jr0-_E"B:W)m/?,I!3Q2l"^u\IcLCi+rrC^D
+8d&4O\E<_=rr?Hu8d&U\]BK4OrrMOtnO`soG*B`)qW7a-~>
+jo5G^pYhS#J-LV"c0b6&rk8=3XSmYPFGd]orUg*jr3GpE"FlZTm/?,I!6+ne"`ns[cLCi+rrD*O
+J-:7U\E<_=rrA,OJ-:%Q]BK4OrrM_SnULd_G*B`)qW7a-~>
+jSo>]p>/^*!!OX"g@G+=^]+9nr;Zt2Nkju[o`#!ldf]1A")b@#puq_Yq],S8"Uo7&ZJbNMrrDW^
+!!F!fYi,B-rr=/4!!GcK]BK4PrrM^JnGibPEepsSp&=(QJ,~>
+jSo>]p>:>W8d/[thX^OA^]+:RrCR3/Nkju[o`#!lhG!N5"+7?1puq_Yr*K@p"\rriZJbNMrrD`a
+8d&"CYi,B-rr?Hu8d&U\]BK4PrrMh3nOa!iEepsSp&=(QJ,~>
+jSo>]p>DP#J-CtCipusE^]+;(rI>#lNkju[o`#!ljb!)S",=&;puq_YrJpl-"b(BEZJbNMrrDid
+J-::PYi,B-rrA,OJ-:%Q]BK4PrrMqanULgdEepsSp&=(QJ,~>
+j8T8]p>U&nhuErc:Tj*Yr;OS5!#5A3"EK[Fmf)hX!W,O]!!G-KcLLnurrB+u!!PE,QH/Cko`"sk
+-M7?A"+@-%psf<D+7fI87Z+hArSmhXj!aEt"tFPCV9n]/jSs`~>
+j8T8]p>V6/i(=2KJ&(IFr;OS5!*K1l"EK[Fmf)hX!W.?;8d&LkcLLnurrC"98d/LDQH/Cko`"sk
+AG&Ot97<bmpsf<D@.Qtn@Z%e]rSmhXlXoZZ#$5_pV9n]/jSs`~>
+j8T8]p>W'&i.)#`U!;uur;OS5!/g`*"EK[Fmf)hX!W/Y_J-2=enc%eQ!7h$us)nL1a6iitrrN+^
+oRI$lW7q$rrrA,OJ-:%Q]BK4QrrMYSnULggDh=h4n,28HJ,~>
+ir9/\pZ.SOh>d^)K])IurPed:oDJXm%<Rr\o)A7\!WK_&!!EL[]&ihRrr>1\!!NI<JZIN!o)A\b
+oDeu+T@<J_rr=/4!!GcK]BK4RrrK_KnGib<D18(tlMBQ@J,~>
+ir9/\pZ/;QhF[r\U>tkArPed:pAISe:3;iHo)A7\!WL=78d%hD]&ihRrr@0?8d.k(JZIN!o)A]@
+oL]4+T@<J_rr?Hu8d&U\]BK4RrrLGMnOa!cDLS1ulMBQ@J,~>
+ir9/\pZ/f;hLGci\E*8XrPed:q>GgIIWUq#o)A7\!WLdCJ-1_@jnn<B!1s.>"E8pmg@t1<!2fC=
+"+-Zhp!j!AO7Rl)G)EoqrT!nYh2LlS#'k-9T#g3nj8XW~>
+iVs&[puoFNh#ITiD9q_HrQ"p<ci!hH)0h_#o^Vq^qCM4<"AP`Dp&=:W!6b<@"Y=_W_!:jgrr@67
+!!H2dbOPS^rr=/4!!GE?\`WhOrrM_0n,N\IDgn4ok5##:s*t~>
+iVs&[puoY3h+@iMP1K-trQ"p<h>KqK;L"b\o^Vq^qIoIm"Dajbp&=:W!8@BD"^#i._!:jgrrAY_
+8d&jpbOPS^rr?Hu8d&IV\`WhOrrMh]n4EpgDgn4ok5##:s*t~>
+iVs&[puoe]h1,Z`Y1rI@rQ"p<kP]o6H[)+0o^Vq^qNUT%"G*E#p&=:W!9O00"aG*N_!:jgrrBY&
+J-:1bbOPS^rrA,OJ-:+Q\`WhOrrMr)n:1aeDgn4ok5##:s*t~>
+i;Wu[qWuaU$Jb[c#%#OAq#/>7!3c>$"=&5ef(SY6!WAP[!!F%"_s@9err?=&!!QPSUt,,:o)A]d
+oDf"ZOMgGaec,Uknc/h9HIhZarosFaqk"ku!!i`qEe9n#jS/Z5s*t~>
+i;Wu[qWuaq:u+_I:5I?dq#/>7!64t0"BBcBf(SY6!WBIu8d&%T_s@9err@uU8d/mVUt,,:o)A^(
+oL]6qOMgGaec,VWnk''gOk91$rosFar4?;*8dJ*tEe9n#jS/Z5s*t~>
+i;Wu[qWub0K&(q\Ju72gq#/>7!8%1""F5<ff(SY6!WC14J-:@b_s@9errB5#J-Bq@Ut,,:o)A^;
+oRI'jOMgGaec,W1npgmqU=f&6rosFarQgMoJ-^XGEe9n#jS/Z5s*t~>
+hZ!`Uo%pZ;g].K^?-_m5rQG3@Mu<VY0RftTq!e:anJ:]r")+moq!A"]k61ba"W_T@]&rn[rrCI=
+!!Fg/]''%Brr=/1!!X3S]^Y^orpKdflAHnV!!jBGG)3!9k4el6s*t~>
+hZ!`Uo%poqge%`FLXbberQG3@Xo1ip=am=(q!e:ao3(ZW"*h$*q!A"]mS3[Q"]KE!]&rn[rrCpJ
+8d&:R]''%Brr?Hr8d8C[b4,3(rpKdfn>p-h8dJ:-G)3!9k4el6s*t~>
+hZ!`Uo%q*DgjfQ[V:b52rQG3@`Vk;iG^cUGq!e:aonr?k",*l6q!A"]o7Hsl"ab6I]&rn[rrD6S
+J-:4U]''%BrrA,LJ-Lh3eF<82rpKdfoYls^J-^L@G)3!9k4el6s*t~>
+h>[ZWpZTt`,hrA'$uO\eq>SY=!,2<2"?M+:htljB!W@H<!!FsDbjbW!rr@EE!!Q#@T$R!,nc&Xd
+"SD`t(50!Qqpk]H+70%7)dScMnbN(\rr2]m"THu<9*F_a#ms"=IZq"_lM:G;s*t~>
+h>[ZWpZTtq?JJ-V;N]c(q>SY=!0mFS"C6S]htljB!WA_`8d&IhbjbW!rrAel8d/[LT$R!,nc&Xe
+9_D!\;M;@8qpk]H@-pPm>`#`8o(i1]rr2]m"TIDfIn]?(#u+cHIZq"_lM:G;s*t~>
+h>[ZWpZTu)LtmLaKWEquq>SY=!4;]T"Eo@!htljB!WBY%J-:@jbjbW!rrBb2J-C">T$R!,nc&Xf
+K(XWsI>"ocqpk]HO6qH(MlF\OoD/:^rr2]m"TI]/V1S2e$%?u9IZq"_lM:G;s*t~>
+h#@TXqXE@]F;EX3"W<3Xo)&F4rr>Rf!!GcE[,_)QrrM$_oDf!sK"0n=mf*=^'`J(9%W7$-i;)mB
+!WFSA!!EISWS@3urr=/*!!`TO7UCD#R[X2E"+FiG&+0E)&j^D^N2+/Bn,!%@s*t~>
+h#@TXqXE@]N`Oq-"^7_^o)&F4rr@HF8d&RU[,_)QrrM:YoL]6ZL:H=Amf*=`=T1nr:2blni;)mB
+!WHa)8d%h:WS@3urr?Hk8dA%!HAeDs[^Q.D"/:s%<UNHd:g\3hN2+/Bn,!%@s*t~>
+h#@TXqXE@]TS2*N"c9\Jo)&F4rrAknJ-:"J[,_)QrrMJ=o7-q#\E*PTrrN"SrdY0$E/(^Wq=+Cb
+rfm)+"Fkm"g\B>!!0?Ap#_J/2XLc<lb00e."2;(4L[K["I!'IVN2+/Bn,!%@s*t~>
+gA_BUpZpGDA.IAp"?!RMpANA<!$qLC"B1,fkPalL!W6-m!!Gffeb&k0rrADa!!PH-QcSUnn,EAc
+oDeu/T[`Ybrr=.]!!t5jG_r*'dHC3#h>`!~>
+gA_BUpZpGEK2UJs"Dkm;pANA<!+Yt""D3J$kPalL!W7cF8d&h'eb&k0rrBJ*8d/LDQcSUnn,EB@
+oL]4-T[`Ybrr?HI8dSU9G_r*'dHC3#h>`!~>
+gA_BUpZpGFRY'=F"I$pjpANA<!0[;2"E]I2kPalL!W8thJ-:G!eb&k0rrC7@JH'cpQcSUnn,EBd
+oRI$jT[`YbrrA,#J-gF<G_r*'dHC3#h>`!~>
+g&D<Vr:K4%ZsO=!!!NREf^AS7df0:Mr;Zt/NPFcWn,EFfa7B96'9U/sr9sXc./j2M")!1dg\:.9
+!.shC"B:c4o)@5?!$Ce4!\Go/f)Q$Y.ri5UmeZq<s*t~>
+g&D<Vr:K4%[t%?38d.qNg$\\8df0;@rCR3.NPFcWn,EFfealB9;3A`\r9sXcB)YC+95K0\g\:.9
+!2fB\"DX=Jo)@5?!+>Cjs&]7qf1H9@?&-/JmeZq<s*t~>
+g&D<Vr:K4%\<qm(J-CP'g@"e9df0<!rI>#lNPFcWn,EFfht)@$J!%V5r9sXcPl6+8Dh5"Ep[8%]
+_"<-[HC2qIrmq)LO7Rl'GBn\hJ-LRk^=r#OrnRO(~>
+fDc*Tqt&mqZ=k!/!!FdZk4SZ%rrCgO!!I,#`9mQlrrN!Vo)Jl'Xk`^@rrBD(!!OopP/6G]mf*9h
+oDf"ZOi6Ydf)G^lo)Jt_FFe0r+9^j-":,u"5ofV!"W2O:o(i7?s*t~>
+fDc*Tqt&mq[=hQ98d&\=k4SZ%rrD3Z8d'*q`9mQlrrN"9o1B+.Xk`^@rrC1>8d/=<P/6G]mf*:*
+oL]6qOi6Ydf)G_Xo1B3pFFnpW=A7mM"AMfu@TE.p"^.;Lo(i7?s*t~>
+fDc*Tqt&mq[[;^'J-:nOk4SZ%rrDHaJ-9qU`9mQlrrN"co7-prXk`^@rrCaNJ-C1=P/6G]mf*:;
+oRI'jOi6Ydf)G`2o76j_"+uJeK'%RdIXHHeIeS?rLp>k.q>K.LJ,~>
+ec,mRqXNUl\8s"R!!E[eh!k3krrB\0!!NOIQ-/Uqmf*=eV"4Qh.@JBJrpg!g7/[)h>(*3sp&=CZ
+!7g]A"=oAAkl'*4!$Ce4%7Pf?[^N-%G$@?g+VbIZ!"98O,rS>#EdiXsO-3'-!!NdIf^S_8huA3~>
+ec,mRqXNUl\;FVL8d%t`h!k3krrC@C8d.n0Q-/Uqmf*=e]^n_u>+*S&rpg!gHMpG>B76T+p&=CZ
+!9*QB"BgVokl'*4!+>Cj%:Od[[^N-'KQV!8=&Mie8dnHm='fHTGCG1#O-=PV8d/+Tg[P%;huA3~>
+ec,mRqXNUl\=860J-:M/h!k3krrCmRJ-CFDQ-/Uqmf*=ecLZPhJ!nLKrpg!gUA]TGEIFY5p&=CZ
+!9s-+"FH$<kl'*4!0?`%$?grm[^N-'Nei@=rdXTk%"<VPH[0m_IY3H;P`>Be"bj&7nG3%?s*t~>
+e,K^QqXNXp]SSiUhZ*dcdd-`.fDbi;r;Zs2G+-bKm/I+Z)Y="4!dqH:qXXXdci!hI)0(SGjnnHF
+!WEAt!!F'jZJtc4rr=/4!"qbW[+OEmcGI#jU7.@/N.uLtF8U%iGCbC#LlIRcTW#**_T9cO#ke6%
+'7o05qYoIRJ,~>
+e,K^QqXNXp]U*D-hb"$(dd-`.fDbiYrCR2fG+-bKm/I+[>P(Mj98'b6qXXXdh>KqL;K7W+jnnHF
+!WGmf8d&%FZJtc4rr?Hu8ePTh[+OEmcGI#jU7.@/N/2t4I/J:%I=[$)LlIRcTW#**_T9ce:A.9`
+<hA=@qYoIRJ,~>
+e,K[PqXNXp]V18?J-;IllhUP3rrC7@J-::DRa:TlrrMkQo7-q"[c@5TrrD6\J-C:>Mn8$ImJd4d
+K_9iuI>"ocqptcIO7Rl7G)3NXj4_eq[]?-kQ&pr\L4k3WK)^B3K8#,@P*quAYdqWla/agcJ-C_7
+iplmEiW"E~>
+dJjLOqXWe!^nP'OhuEmGa6*0rf`(qrr;Zs=Gb<LYm/I+bJb&jE7&&-%rq$-i>l=X+8U6lPo)A%V
+!WF_E!!EISWS@4!rr=/4!"qbY]'&n`o'>Amf$DIU^:LbYYPPC4Z*h0Y`m*#fiTBLrmc()Uo`,+G
+ZKCiXir=N~>
+dJjLOqXWe!^nuHZi(=,kaQE9sf`(rDrCR2jGb<LYm/I+bV"71]B;3iHrq$-iMu?6O@<nEho)A%V
+!WHj,8d%h:WS@4!rr?Hu8ePTj]'&n`o'>Amf$DIU^:LbYYPPC4Z*h0Y`m*#fiTBLrmc(QPoh#?u
+^?5+dir=N~>
+dJjLOqXWe!^oEQMi.(roal`Btf`(rarI>#tGb<LYm/I+b^%-[UU=/]5oD\fnrI>&mH(E7OrpB^d
+rg*5-"Fkm"g\BA"!0?`%&pB/DkP=lClf?mQccO)=]!eoJqQ:@6[CX/nc.(M,k3VU*ikC0?J-:tR
+k4SZ3s*t~>
+ci4=Nqt97.aKp@Q"QBCa3PjeMrn7;O;uH\!-@DWApZqh[j9P;W":pO.l2:2R!TO=^!!NdJL9fb5
+li-rkoDeu,T[`Ycrr=/4!"qbY]BK4nrr2ikp@Ie?lK@9hi;;C=i8Wh\lL+69q"jpfrWDu]ZQAc>
+"U8r"meZqDs*t~>
+ci4=Nqt97.aKpt>9]AYIC;T'*rn7;OL&FUH<d^^qpZqh[l;.%E"Ak/pl2:2R!UEJZ8d.t-L9fb5
+li-sDoL]4,T[`Ycrr?Hu8ePTj]BK4nrr2ikp@Ie?lK@9hi;;C=i8Wh\lL+69q"jpfrWDu]^0L>'
+"\k-5meZqDs*t~>
+ci4:Mqt97.aKqCmiID&l_rUOjg&D&PrI>#rI&,Ehli."RKCjZsIuqJ1r:L!inUgaj"b(BEZJbQE
+rrB4oJ-11leFhDm!0?`%&pB/Ekl(P\rquTcoC2,3kN1a^qqhb=ioK:fmdg&GqY^?l"8V6&MY2K'
+JuIDkqYoRUJ,~>
+c2S+Lr:fX<d(PlG%c[Nl2nn;Frn@AP2#RCW0n-+Wq<S%]r*Jsp"'qt]p[nIcF8Z(B3Hg_/mJZAN
+!/gCK"B(W2nc%/?!$Ce4"@e9\kl(AXs8N&ss8;]h"oJ5rrVlflrr`/d_]SLN"?sffp\s:SJ,~>
+c2S+Lr:fX<d(Q/s;<(7OBu&a%rn@APDZ*01>(3I+q<S%]r/:/="*:Nsp[nIcSGc%`>]uFRmJZAN
+!3>`a"DO7Inc%/?!+>Cj"Cd8#kl(AXs8N&ss8;]h"oJ5rrVlflrr`/db$FX3"E;HFp\s:SJ,~>
+c2S+Lr:fX<d(Q<<K&_@aNPOQIrn@APRf.a>G^cXIq<S%]r2fL?",!Z.p[nIc\c%$^F`s(kmJZAN
+!6"M["F?HZnc%/?!0?`%"Eo[7kl(AXs8N&ss8;]h"oJ5rrVlflrr`/dc\qFG"I.*mp\s:SJ,~>
+b5VbGqXWk&`iNbjj8]<@^>ekcg]%6br;Zs]JZdr-li."b`:Es3-()dArV$6lmh#Hu"Tr7bX4m=5
+rrB=r!!GKI_sIBSrr=/4!!GcK]BK4Lrr`2h\eF]9"<t22o_mqPJ,~>
+b5VbGqXWk&`ianpj@TPh^Z+tdg]%7RrCR2uJZdr-li."bddp'6=d[:urV$6loMtl_"\WT\X4m=5
+rrC+38d&Ra_sIBSrr?Hu8d&U\]BK4Lrr`2h`E)V'"CA[uo_mqPJ,~>
+b5VbGqXWk&`itb^jF@Am^uG(eg]%80rI>#oJZdr-li."bhXc7#J!e=FrV$6lpPAcu"E/gkg@sn4
+!8$jn"F?0Im/GW:!0?`%"Eo[7kl'?;"8q]7L\-*"MSJ-BrT=-1~>
+aSuPFr:]L7c+%g=jT#EP_;tCjh>[K@qu?jgKXBh<lMgn^2"UbN!d_65qY'phO8T%^-?>3`l29iH
+!8d>J"=8o9kPa$4!$Ce4"@e9\kl'<:"8q_s$1n3#'qsFRr9+*1~>
+aSuPFr:]L7c+&X9j[oYp_;tCjh>[KFr(7*#KXBh<lMgn^DY$I&K!aP6pAY,srCR5oEfe*$r9F:^
+kO_@L=,FNOrR_&L@.Qtn@Z%e]rS7DTr:7^$oL]6eXk`LFkPp&~>
+aSuPFr:]L7c+'6tja[Jq_;tCjh>[KJr."omKXBh<lMgn^R.Gh1LpZ1<pAY-5rI>&rEfe*$r9F:^
+mdu#4I#5GtrR_&LO7Rl)G)EoqrS7DTr:8'aoRI'u[G:?NkPp&~>
+`W$2Aq!d=l]RM<k!!?`Lk5!j5!6b9?"B1,ekPXWF!WJY]!!GEWdI[A4rrN!6r;["$I&#3`rp'La
+rX8B!";?BkiVM1+!$Ce4"@e9\kl'99"8q_Z"7uQr&#@nLr9402~>
+`W$2Aq!d=l]TQXa8csU^k5!j5!8@?C"D3J#kPXWF!WKS"8d&[tdI[A4rrN%%rCR6)I&#3`rp'La
+r_iD]"Aj]SiVM1+!+>Cj"Cd8#kl'99"8q_p9_:p[;QSRBr9402~>
+`W$2Aq!d=l]V(&BJ-2(Tk5!j5!9O-/"E]I1kPXWF!WL:5J-2IloD\Ob!W@uUJ-Bq?UX\r8lMgna
+L@p'"I=e]^qUb`IO7Rl)G)EoqrS.>Sr:7[ToRI'sZJ"gHkl6/~>
+_uBu@qXWe!^OdTl!!E@Ub3Sr]rrAtp!!HSd^?Y[]rrMX&oDf"%N4nHQq#:>dr;[!:E/M0dqs"+]
+r\jEL"9NkHgA';"!$Ce4"@e9\kl'68!rVP*o)Jn2WnHtAl2Q8~>
+_uBu@qXWe!^Q_sd8d%eMb3Sr]rrBk48d&mf^?Y[]rrM^loL]6]NkOZSq#:?+rCR5jE/M0dqs"+]
+rc%L%"+7$#pt,NG@.Qtn@Z%e]rS%8Qr:#pA8d&8!g%,++s*t~>
+_uBu@qXWe!^S6JGJ-2@blhfQ=!7Ujr"ETO9lM]uI!VM9@J-:@^^$,ChrrCCDJ-C=>MR_aEl2Le`
+Re2+4I](opfDbi3o7-seMS&*NgA_6Pn?2A5"GO/7o)7hQJ,~>
+_>ac>qt0+(^ip[\!!Eq.dd[4mrr@iP!!Hnq_sIBerrN(=o)JkpWS."?rr=bO!!P]6S':C$kl1Wp
+oDeu&T$m8_rr=/4!!GcK]BK4HrrW)b4nAXV.^\"(rp'N6~>
+_>ac>qt0+(^lDL\8d&(gdd[4mrrB(s8d'$n_sIBerrN(do1B+(WS."?rr?m68d/OGS':C$kl1XG
+oL]4)T$m8_rr?Hu8d&U\]BK4HrrW)bF7W!,@("e_rp'N6~>
+_>ac>qt0+(^n?DGJ-:J%dd[4mrrBt7J-9tU_sIBerrN),o7-ppWS."?rrAGbJ-C%>S':C$kl1Xg
+oRI$jT$m8_rrA,OJ-:%Q]BK4HrrW)bRe)%4Lpl+3rp'N6~>
+^]+Q<r:T:)]OqT:!!GKkh"La*rr?U-!!IA-aRB,lrrC^C!!FI2a6ij%rrBD(!!NRBKWs>.kPkOB
+oDf"fQHAXqf`(pno)Jn_MS&*Nf`)$LcjfRH"Albjq#9UZJ,~>
+^]+Q<r:T:)]nK8I8d&k6h"La*rrA2Z8d'4"aRB,lrrD$L8d&4]a6ij%rrC1>8d.n*KWs>.kPkOb
+oL]7!QHAXqf`(qZo1B-pMS&*Nf`)$LfMhB6"E_<9q#9UZJ,~>
+^]+Q<r:T:)^70`>J-:\6h"La*rrBA&J-9qXaRB,lrrD9SJ-:@fa6ij%rrCaNJ-CF@KWs>.kPkP%
+oRI'jQHAXqf`(r4o7-seMS&*Nf`)$LhM(QO"HL.Sq#9UZJ,~>
+^&J<9r:K4&Y!D:Q"9O%gkka6;!'pJ_":B7<bjsrs!W5=V!!@;Ji;*6L!'pJ_"Yb%_`U*QdrrBJ!
+!!G0>_!D!Prr=/4!!GcK]BK4GrrW2pN:R#P!e\MXqs494~>
+^&J<9r:K4&Zu>8&"A=Wgkka6;!-eB6"AO!*bjsrs!W7678csOJi;*6L!-eB6"^,r3`U*QdrrC46
+8d&I\_!D!Prr?Hu8d&U\]BK4GrrW2pWq/gc99@0Yqs494~>
+^&J<9r:K4&\<6',"-gXcqV_ART`'BDIWUt$o&p#Rr1NY3",F2?q>1*kT`'BEG'&tfm/?,I!87!p
+"FH0Eli,Q:!0?`%"Eo[7kl'06!rhu0npgh1`p3Hes*t~>
+]Di*7qt&moL_B%S"=g4qo)@VJ!$(q;";#dIdIcW%!WK1l!!G?Sd.726rrC+;!!QVVVqC_BkPkPH
+oDf"<LUQ=Bf`(pno)Jn_MS&*NfDbpOn1+#0"<aVko)7qTJ,~>
+]Di*7qt&moS5eiI"C7hOo)@VJ!+#Oq"Aa63dIcW%!WKt-8d&Upd.726rrC[K8d/jVVqC_BkPkPN
+oL]6eLUQ=Bf`(qZo1B-pMS&*NfDbpOnRqGc"BhYOo)7qTJ,~>
+]Di*7qt&moWeB_h"G3Gto)@VJ!07#."FYKadIcW%!WLO<J-2Cio)ARe!9=!-"`Spgf_5=-rrDZ_
+J-:7T[cRG>rrA,OJ-:%Q]BK4FrrW2jPOj;-Ju@)grTsQ7~>
+\c2j4qXE@Q46uqLHF`,5ir9#Uqu?j<H(`[\k5PJU)Y="4$&H7Wqu$Ho;#L@t*c[.OkPOEA!WEc*
+!!EXZXl'!-rr=/4!!GcK]BK4ErrN%nnc/c%\)R5Ms*t~>
+\c2j4qXE@UD<sjsKXp1?ir9#Vr(7)iH(`[\k5PJV>kCVk:5cdJqu$HoK)J:F;fRc/kPOEA!WH0n
+8d%k=Xl'!-rr?Hu8d&U\]BK4ErrN&0nk'"1\)R5Ms*t~>
+\c2j4qXE@YOmIT#N4J$Gir9#Wr."osH(`[\k5PJWN:_W'IuM&'qu$HoW;V5MH?"nVkPOEA!WIrK
+J-:=OXl'!-rrA,OJ-:%Q]BK4ErrN&Anpgh$\)R5Ms*t~>
+\,QX1pZg7G!q$$k3hb!mro="YfDGUO-%)N@pZDJVrHe&8"&c)MpAP!kg\_$T89pfRo)@eO!WG:T
+!!@8;fCmks!$Ce4"@e9\kl''3!V@E(!!F./bO5>rs*t~>
+\,QX1pZg7g9^YLUA"h?Aro="Yj8;LP<d^^qpZDJVrL`[R")b'ipAP!kk57gT@!S?jo)@eO!WI66
+8cs=6fCmks!+>Cj"Cd8#kl''3!VKdj8d&+`bO5>rs*t~>
+\,QU0pZg8(m=5=jU!iN2j8T,Fr."oqI&,Ehk5PJ\](:FSJuI>qrVllbr."rkH(NCRroX4]rgrb4
+"+6orp=TBFO7Rl)G)EoqrRLoKp5SWn".[R&rU'W8~>
+mJd4QqYpK?rrrE!o&#]Bmf3J"NkOZSj8T+gqu?jNI];)tjo5A:"S;Zs)O/5-rVlfs?i9s.$>bI'
+iVDR7!,D-+"BLu:o)@>B!$Ce4"@e9\kl''3!W@<7!!@#BhtZU=J,~>
+mJd4Wr;Q]ArrrE!o&$BDmn*^YNkOZSj8T,'r(7)oI];)tjo5AB9_:p[<0YAgrVlfsNr;QR9l>]l
+iVDR7!0m+J"DjOPo)@>B!+>Cj"Cd8#kl''3!WAV\8csIHhtZU=J,~>
+mJd4[r;Q]ArrrE!o&$m/mskOjNkOZSj8T,6r."opI];)tjo5AHK(OQrJ!@q=rVlfsYPitTIVsnH
+iVDR7!4;BK"FHT_o)@>B!0?`%"Eo[7kl''3!WBV#J-1V5htZU=J,~>
+n,EUdIh7t8oD6`3"TA)XY8cp1"(nRepZ)8RQi$gd2h8'gqW7_Xr'^,V#B6p)q#CBW"T8<(20G5*
+mJZ,G!0QmR"@/-hmf(o>!$Ce4"@e9\kl'$2!6t'7">H@jnG_kUJ,~>
+n,EUfUfFbioD6`3"TA)X\m"Pp"*U]upZ)8R[JWW">_'!7qW7_Xr-@m+#CNc5q#CB^:&RZf>'6.O
+mJZ,G!3l)f"CdP5mf(o>!+>Cj"Cd8#kl'$2!8@!9"C@VCnG_kUJ,~>
+n,EUh^PKr!oD6`3"TA)X_hmi4"+mQ,pZ)8RbPZknGCZjRqW7_Xr1NY3#DTJ?q#CBcK)L6"FT[rM
+mJZ,G!6Fe_"FH<Nmf(o>!0?`%"Eo[7kl'$2!9<U"".[X*rpKf:~>
+n,EX9!!!tXg$nparri>tm(a\3!!GTUbjk\nrr@0=!!GQ>ZJtcCrrN+qo)JtOSBg[(s)7i9"Ti+_
+WnR1,rrC%1!!F^-]]f=Irr=/4!!GcK]BK4CrrN$5o)JmtL:QFCmf.e~>
+n,EXH8kN@1g$nparri>tm)WK%8d&[mbjk\nrrASe8d&LRZJtcCrrN,4o1B3oSBg[(s-`dW"DNCd
+g@jS,!7g^6"B^Pokl'37!+>Cj"Cd8#kl'$2!W6-m8d%hD\`N_Vs*t~>
+n,EXSJ:NR#g$nparri>tm*1FWJ-::gbjk\nrrBY.J-:%JZJtcCrrN,Fnpgn6cLLo6\,:aZDh+kA
+p>c/QiUhX'I#>T#rRq2NO7Rl)G)EoqrRCiJr/1&q",aYNqsOK7~>
+n,E[i#QOj,[bUTUbl7eBnAQL>!!FL)^?GLUrr?!q!!G`F[cRGJrrMg/oDf("Kt?FDmg/jl"WqcF
+^?GLTrrDKZ!!EsfZJkZ5rr=/4!!GcK]BK4CrrN*rnc/buVUtP0s*t~>
+n,E[k:J+6*[bUTUbl7eBnB>5/8d&1R^?GLUrr@cN8d&RW[cRGJrrMjsoL]<]Lq;aGoMGKY"]TN&
+^?GLTrrDW^8d%tCZJkZ5rr?Hu8d&U\]BK4CrrN+Nnk'")VUtP0s*t~>
+n,E[kKReT;[bUTUbl7eBnBm3bJ-:7Y^?GLUrrB(sJ-:%M[cRGJrrMnPo7."&]&rnaK`-E)H?,%[
+kksK@!;?&8"FYp.iVM7-!0?`%"Eo[7kl'$2!WK"eJ-)V"p?qs2~>
+n,E[m4obQgMSn]VbPq\Bo#)44!!ERZYi,B=rr=kQ!!H5W]'0+RrrN(9o)JnfVUkEiqu?moHD&^X
+ro="ZrYP2,"*g`tpt>ZI+7fI87Z+hArR:cHII[@@3L7bTrpTl;~>
+n,E[mG"PA%Oi-G]bPq\Bo#t/*8d%k?Yi,B=rr?s78d&a_]'0+RrrN(ao1B.$VUkF9r(7-%HD&^X
+ro="Zr`\qd"+-s"pt>ZI@.Qtn@Z%e]rR:cHU@LnZ@$\n&rpTl;~>
+n,EFfT)O6BQG_tbbPq\Bo$W<aJ-:@RYi,B=rrAMcJ-9tN]'0+RrrN)*o7-spVUkFTr."rkHD&^X
+ro="ZrepE!"+I0%pt>ZIO7Rl)G)EoqrR:cH^%-[VI?qtCrpTl;~>
+mf*90rW!'WW7LV?bPq\Bo;Vo`!!@>=f_=J,!"f&."B^VslM]cC!7CB<";d9>i"5he"Uf1&[,Ur@
+rr>O\!!?MtdIc,l!$Ce4"@e9\kl'!1!1iZ\"<!*.kPXfKJ,~>
+mf*9Wr^m<&W7LV?bPq\Bo=Rcf8cs@7f_=J,!*/qh"DEb.lM]cC!8R0<"B1N%j&Q%M"\rrj[,Ur@
+rr@E<8crt%dIc,l!+>Cj"Cd8#kl'!1!4hYm"B12hkPXfKJ,~>
+mf*9trdY-(W7LV?bPq\Bo>lLRJ-11pf_=J,!/UQ'"E]U:lM]cC!9Ng&"FlWQk(rtd"b(BF[,Ur@
+rrAecJ-1.hdIc,l!0?`%"Eo[7kl'!1!6t(b"FZ0=kPXfKJ,~>
+mf*9kr;Zq@]]K"4rrW,hB(>p(@%5O8jo5>LqZ$b0O2C8_j8T/X2"L\KBWl^Z!!P6'QcSUniVrmu
+oDf"]PfW=mgA_-po)Jn_MS&*Ne,KEZnc/dpJ?@](n,In~>
+mf*:,rCR0E]]K"4rrW,hNq,dEDk#,Gjo5>Qqaq!-O2C8_j8T/XDY$I%H*<\78d/CAQcSUniVrnH
+oL]6rPfW=mgA_.\o1B-pMS&*Ne,KEmnk'$XJ?@](n,In~>
+mf*:<rI>!2]]K"4rrW,hXR^lDHCN:Rjo5>Tqg\fkO2C8_j8T/XR.Gh0Ks.cZJ-C(=QcSUniVrnf
+oRI'kPfW=mgA_/6o7-seMS&*Ne,KF'n:1SBhYHX?J,~>
+mf*:Rr;Zs>T$Qp)b5VP@j;%7d"B(K*nG_SM!6b6>"DEt<mf)8H!WJDV!!4j?')_e6!b$VZg@sP*
+!1i`^"=f>Cl2B?9!$Ce4"@e9\kl'!1!5@t'")+CYp$_p2~>
+mf*:WrCR2nT[3-+b5VP@k?.=J"DF%@nG_SM!8@<B"E0ICmf)8H!WKCr8ci=d<r>PmBn35;pYc&O
+\b&Js=c9uXrS%8O@.Qtn@Z%e]rR:cHd.'^1F.q.Wn,In~>
+mf*:ZrI>$%T[3-+b5VP@lA>+_"F-0PnG_SM!9O*."E]gHmf)8H!WL12J,u*nr."ogJ?%>ti;Wf&
+oRI'lMnSBRgA_/6o7-seMS&*Ne,KF)nUL^hU"/i)s*t~>
+mf*=e-N*oI:p]$RrlY6AqM"M@"A"Tjm/H/I!3>ts"ETjNnG_GI!UU-a!!*3jqu?mBEfRp!r8@ST
+an,Q9'83[NqqD&M+7fI87Z+hArR:cH^@;1+<1(o"rp]r<~>
+mf*=eAGo+'EO4NsrlY6AqPNjV"D!S1m/H/I!5n\+"ETjNnG_GI!UrnW8c_Rur(7,lEfRp!r8@ST
+f^qc=:kZ.6qqD&M@.Qtn@Z%e]rR:cHdIBg3C7*68rp]r<~>
+mf*=eP5Tn6LpPt5rlY6AqRuKN"F-!Em/H/I!7gss"ETjNnG_GI!V:s8J,k3!J-C7>NkaiVi;Wf;
+oRI'mKX0V7gA_/6o7-seMS&*Ne,KF)nULagR*>+"nGe"~>
+mJd/pr;Zs)M8niYb5VPBjp1MY"@nEblM]lF!/paT"9N\3bjs`m!W?*k!!!)u!!Q&BT[NH2i;WfJ
+o)Jl;W7q%#rr=/4!!GcK]BK4BrrBe'!!G`P`9mQns*t~>
+mJd0HrCR2dP/cebb5VPBlVI.F"CmD)lM]lF!3Q,j"*BmRo&9TLrJ0u:!)*5^"_)eNde!IrrrD``
+8csI>gA'D%!+>Cj"Cd8#kl'!1!7C=/"CmP3mJcVTJ,~>
+mJd0ir."m9`p3KErrW2fKCjZsGDs9$rT=+[`VY/fFI15BiVrrWWU53>EdFD,oD[\J!;Q/9"+I3&
+ptG`JO7Rl)G)EoqrR:cHhXQ+!H'#u3rp]r<~>
+mJd0Rqu?jKW7CM=b5VM?:\4Vi6]/P?rT=+[B`%i5%<e2eo\ofNrjD.o"Uf1&[,Ur>rrN*CoDeu!
+T$d2arr=/4!!GcK]BK4BrrB(h!!G?@]]oCas*t~>
+mJd0or(7)tW7CM=b5VM?Jb2P;@>__]rT=+[Pl+,V:3N)Qo\ofNrlOS#"\rrj[,Ur>rrN+.oL]4'
+T$d2arr?Hu8d&U\]BK4BrrBt,8d&IY]]oCas*t~>
+mJd1/r."p'W7CM=b5VM?V=]9@GDa&srT=+[[/>FWIWh1,o\ofNrn$Rg"b(BF[,Ur>rrN+\oRI$j
+T$d2arrA,OJ-:%Q]BK4BrrCU>J-:1V]]oCas*t~>
+mJd19qZ$_.]&NP.rrN+foDf"[M7VpLk5PEOqu?j/GFd1Si;WiS)XdY020P>-meu#B!)E.d"@89m
+mf(u@!$Ce4"@e9\kl'!1!1r]\">GS>k5=`KJ,~>
+mJd1Eqaps<]&NP.rrN,-oL]6oM7VpLk5PF/r(7)eGFd1Si;WiS>jk8g>'?7Rmeu#B!.jc7"Cm\:
+mf(u@!+>Cj"Cd8#kl'!1!4q\m"BpPhk5=`KJ,~>
+mJd1Mqg\d.]&NP.rrN,AoRI'hM7VpLk5PFWr."p!GFd1Si;WiSN:29#F`s+mmeu#B!2fC="FHBR
+mf(u@!0?`%"Eo[7kl'!1!711c"F>g3k5=`KJ,~>
+mJd4c&,ZD1$BiR!r6#$>f^o.H7YnY>r9""Z./X&J&p^,!p#,iNrc@N."CH\Zg@sG'!.+8;"=B&>
+kl'99!$Ce4"@e9\kl'!1!.aS>"=f)2j8AEHJ,~>
+mJd4c<;]>k:702kr6#$>iq,hG@YhVZr9""ZB)G7(:jJ\_p#,iNrgN:J"DE=cg@sG'!2/sV"BUMo
+kl'99!+>Cj"Cd8#kl'!1!2T-W"B^>`j8AEHJ,~>
+mJd4cL\lT(SBC6sb5VJ,oRI'fLq;gJk5PFGr."otH(WUZi;WiW\*nhMDh+kApYGiL]_$^WI#GZ$
+rS.>PO7Rl)G)EoqrR:cH_!upXHA&Wbr:'`:~>
+mJd4d9)ASk0<Egurlb<Br<r8u"@e6Zkl'ZD!!N3""<)T\f(S#$!6t!5"Wh]E^?GLNrrAbb!!Ejc
+Z/PQ6rr=/4!!GcK]BK4Brr?U"!!Fa&YMf9Hs*t~>
+mJd4dIeu_?@'&#Qrlb<BrDN;\"Cd5!kl'ZD!)3;_"B'Q?f(S#$!8?p7"]KH%^?GLNrrB_(8d%qB
+Z/PQ6rr?Hu8d&U\]BK4BrrA2O8d&7JYMf9Hs*t~>
+mJd4dV#,ZFKrir!rlb<BrIsop"EoX5kl'ZD!.t-!"FGHhf(S#$!9<R!"aY3L^?GLNrrCC;J-:=R
+Z/PQ6rrA,OJ-:%Q]BK4BrrB@pJ-:1MYMf9Hs*t~>
+m/I':q>^V,]]An3rrN*Ko`,+kMS/0OkPkPBqZ$a<H_f<ghu<`T/b&fE8:$oUoD[SG!5\7,"*CEn
+pY5]J+7fI87Z+hArR:cH3:QtO.=eSYqXFN8~>
+m/I'^qFUj;]]An3rrN+4oh#?uMS/0OkPkPJqapuhH_f<ghu<`TC%4e!@!\HmoD[SG!7UO3"*pcs
+pY5]J@.Qtn@Z%e]rR:cHEUcX(=FdR3qXFN8~>
+m/I(#qLA[.]]An3rrN+`omd0fMS/0OkPkPPqge]n!i4KChu<`TQ19A.EdFA*oD[SG!8mBu"+I-#
+pY5]JO7Rl)G)EoqrR:cHSFM+4H@W0UqXFN8~>
+m/I'qq>^X(N6:MbbPqQ+o`,,"N5"TUkPkOoqZ$a<I&>Tlhu<`VMXg`N#]#1$iVM@0!8d;I"BM&>
+oD[PF!$Ce4"@e9\kl'!1!"AAt"=\l(htljBJ,~>
+m/I(0qFUlcQ-/IkbPqQcoh#@$N5"TUkPkP-qapuhI&>Tlhu<`VX7Ajd9PoNjiVM@0!9`rG"DjUT
+oD[PF!+>Cj"Cd8#kl'!1!)i>Z"B^2WhtljBJ,~>
+m/I(>q1&R;b3]&LrrAY`J-9tQ^?Y[[rrCmPJ-:4HVV1b%rrN,9npgmmDhbUWqV;)Nmdkr3I%8RT
+rnRMRO7Rl)G)EoqrR:cHL@KcsH@W0UqXFN8~>
+m/I(Uq#COAW7LS>bl7Z0o`,,0OMgGakPkOKqZ$a<I&>WmhZ!W5"S2Ts/p*AumJYi?!<2Qi"?DXa
+mf)#A!$Ce4"@e9\kl'$2!71-7">k\4i;2sCJ,~>
+m/I(Xq+:cnWn-e@bl7Zgoh#@*OMgGakPkOiqapuhI&>WmhZ!W=9_1j[=EKhJmJYi?!<2R^"CRD3
+mf)#A!+>Cj"Cd8#kl'$2!8[-:"C$G[i;2sCJ,~>
+m/I([q1&U$Wn-e@bl7[:omd0cOMgGakPkP*qge]o!iF]HhZ!WCK(FKrGBB+imJYi?!<2S?"FQBO
+mf)#A!0?`%"Eo[7kl'$2!9`j%"F,L#i;2sCJ,~>
+m/I+c0)5JM7(D1LrltHC6hUK`$?VQTnG_VN!-%f8"<2`cgA'P)!W>:T!!HDQVqC^trrN*)oDf":
+M7VjIh#@?no)Jn_MS&*NeGfN0n,NSRK!=83nGe"~>
+m/I+cCACI)Cq/EtrltHCH1ji69luZBnG_VN!1E^V"B'WEgA'P)!W@358d&aTVqC^trrN*poL]6e
+M7VjIh#@@[o1B-pMS&*NeGfNQn4EgiK!=83nGe"~>
+m/I+cQMH%6MR_U=rltHCU%X!?IWUjsnG_VN!4_oVs*OmFgA'P)!WAV]J-9h?VqC^trrN+PoRI'l
+M7VjIh#@A6o7-seMS&*NeGfNhn:1XbK!=83nGe"~>
+li-rrp](D-_WL^>rr>:W!!FEgSC$ojrr>ai!!F-dVV:h%rrN+foDf%/E/V?jqqD&M+7oO9#D0,9
+qV;,A!!GcK]BK4Crr>IV!!GoJ[H.8Ts*t~>
+li-sIpdtX=_WL^>rr@698d&+;SC$ojrr@TH8d&%>VV:h%rrN,-oL]9`E/V?jqqD&M@.[%o9S0G)
+qV;,A8d&U\]BK4Crr@B78d&UW[H.8Ts*t~>
+li-sipj`I1_WL^>rrA\bJ-:1BSC$ojrrAqnJH'uuVV:h%rrN,AoRI*mE/V?jqqD&MO7[r*ItFi\
+qV;,AJ-:%Q]BK4CrrAe_J-9tJ[H.8Ts*t~>
+li-sQp](F$KZi`ZcMml#p&G4TI&,Ehk5PE,qZ$a/I&5Kih>[ND#PA'#4F!@?nc%8B!$Ce4")"C[
+p>#]=!!GcK]BK4DrrMEgn,NSrMS&*NnGe"~>
+li-snpdtZ`PKW=icMml^p.>HmI&,Ehk5PEkqapudI&5Kih>[NH:\@<`?$Mj`nc%8B!+>Cj"*:6g
+p>#]=8d&U\]BK4DrrMXan4EgtMS&*NnGe"~>
+li-t.pOE@;bO#,OrrAJ\J-:%CUtGG(rrA5ZJ-:=KV:bOurrMbEomd3fGaltJrn@APO7Rl(IA>Be
+h#Hqq"Eo[7kl''3!VM'6J-9nM]BK4_s*t~>
+li-t3pAb=+RFC['ci3t]p&G4qK!=20kPkPVq>^X*HD9!ah>[NS9_JGi!bHtdh>#\'!%7@<"A,!(
+nc%AEnc/e^MS&*Nec,W-n,NUqEKA$(rp]r<~>
+li-t@pIYQcU!rN/ci3uKp.>I"K!=20kPkPXqFUlbHD9!ah>[NSJ+ZD:C4`VEpt>ZIAb/LsAsgd3
+rn[VF8d&U\]BK4DrrB1j8d.n.O2L>`nGe"~>
+li-tIpOEBuVpk/5ci4!(p4*9cK!=20kPkPZqLA]tHD9!ah>[NSV"K6@Dh>.Jpt>ZIPOj;-I$i+I
+rn[VFJ-:%Q]BK4DrrC%-J-CFBO2L>`nGe"~>
+li."a&,-&,(oGsVrR(WFn+H_b#]Pa9kksWD!71H@"*gHfp"fWKrhfAh"WqcH_<V!Prr>7S!!Fp7
+_!CsUrrCsI!!GcK]BK4ErrN!Bn,NV6FdUDCrp]r<~>
+li."a<;/uf<iamDrR(WFo_(l\9Q5s(kksWD!8[HC"*gHfp"fWKrkA(u"]TN(_<V!Prr@668d&@Y
+_!CsUrrD9R8d&U\]BK4ErrN%-n4Ej`FdUDCrp]r<~>
+li."aL\H<%KW`turR(WFp\'+@IW17ZkksWD!9a0."*gHfp"fWKrm:@h"aY3N_<V!PrrAY^J-:7[
+_!CsUrrDNYJ-:%Q]BK4ErrN(]n:1[gFdUDCrp]r<~>
+li."b6M:B^,d,qprmLfH\+Te*/p<W*nG_VN!2oVm")==Po\BHIo*b9m"\*g3de*Olrr>:T!!Emf
+[,_&?rrCdD!!GcK]BK4ErrA\[!!GT8Ut>>/s*t~>
+li."bGkO`4?Er;XrmLfHbk=X4=E^(TnG_VN!5SD&"*0mXo\BHIohtNV"^lYMde*Olrr@668d%tE
+[,_&?rrD0O8d&U\]BK4ErrB\"8d&IJUt>>/s*t~>
+li."bT_<m=LU>k/rmLfHg\-.$GBT@snG_VN!7Uao"*g<^o\BHIpP&?l"`ep_de*OlrrA\_J-:=T
+[,_&?rrDEVJ-:%Q]BK4ErrCC6J-9tAUt>>/s*t~>
+lMgj0o`,+AZJP9Re,KDhp&G5!J#M)pk5PF+q#CP&Qd#"!h>[NS=SMk""`&k!iVM4,!'g#S")k*k
+pYPoM^[_@-7Z+hArR_&MpE8r*"TrCkZJt`Ls*t~>
+lMgjVoh#?n[bg]Ve,KE<p.>I"J#M)pk5PFRq+:d+Qd#"!h>[NSL\OIF9PoNjiVM4,!-[p*"*g`t
+pYPoMddg!5@Z%e]rR_&Mq-`\a"\WZcZJt`Ls*t~>
+lMgjromd1$\DHoXe,KEYp4*9bJ#M)pk5PFoq1&TmQd#"!h>[NSWq_)JIrC(JiVM4,!2&h4"+R6&
+pYPoMhsu:#G)EoqrR_&MqiL;t"b1HEZJt`Ls*t~>
+lMgjcoDf"@[,:QUeGfLgpAb@8EK%Qmr9""Z8GN5g8Wq*]rnRMRWqZPt.WgopmJY];!&*mC"A,*.
+o)@PH!3>Yj"@e9\kl'-5!-@T/"Y"PW`9dHks*t~>
+lMgk&oL]6n\)6lXeGfMTpIYTeEK%Qmr9""ZI/-A;AWk($rnRMR_>$V+=*0\HmJY];!,M-t"D=4L
+o)@PH!5nA""Cd8#kl'-5!1`LM"]of0`9dHks*t~>
+lMgk7oRI(#]&32[eGfN/pOEEoEK%Qmr9""ZV"oNDH'628rnRMRdeJ=rG]]1imJY];!138,"FZcb
+o)@PH!7gXj"Eo[7kl'-5!4hQK"aG-Q`9dHks*t~>
+lMgkCo)Jn?[,:QUf)G`Rp&G7mH(N@Qroa:^o*G-l">c"NlM]N<!V6]p!!H)GV:P@lrr<l+!!FI+
+_!:mUrr@uJ!!GcK]BK4GrrL"?n,NXo?%/X$p&=F[J,~>
+lMgkKo1B-m\)6lXf)G`ip.>KuH(N@Qroa:^p/(QW"C-o"lM]N<!VK@d8d&XPV:P@lrr?6n8d&1U
+_!:mUrrB1l8d&U\]BK4GrrLVDmn*asI\kWgrpTl;~>
+lMgkQo7-t"]&32[f)Ga%p4*<dH(N@Qroa:^q1SQo"FH*AlM]N<!V_<DJ-9k?V:P@lrrA#KJ-::]
+_!:mUrrC%/J-:%Q]BK4GrrM)1mskR[I\kWgrpTl;~>
+lMgna'Cu2,,cokprR_&L0_YPN+E3.FiVDX9!1W``";Za"jS[g5!WH3t!!N^ILpuIBf`(sCnGi[p
+I^.i-hu<[enc/e^MS&*Ng&D*9)".G.13/Dfk54THJ,~>
+lMgna=7]#e?F&G[rR_&LD"gO*<,dZ%iVDX9!4_er"B'u^jS[g5!WIlN8d.q-LpuIBf`(sFnO`pW
+J[+/0hu<\<nk'$oMS&*Ng&D*@>OP/f=`TP8k54THJ,~>
+lMgnaM=Z6#Lq)=6rR_&LR.l+7H>n\KiVDX9!6t:h"FZ$4jS[g5!WK+qJ-CC@LpuIBf`(sIn:1Uo
+Z/GK9rrB@qJ-:%Q]BK4HrrM_MmskRbEfRfpqsOK7~>
+lMgna9(Drb'qO.Nr7V)MS+cme"(-AGcLCeqrrMj>pAb;9Wn[='rrB(q!!OutQc\^qf`(rdn,NSg
+U"&`6i;Wd2nc/e^MS&*NgA_3:..7-?&o3#peFW\-s*t~>
+lMgnaIe$)6<iXsGr7V)M\G&T"95&XCcLCeqrrMq*pIYO6Wn[='rrBn38d/=>Qc\^qf`(s"n4Eh"
+U"&`6i;Wdnnk'$oMS&*NgA_3AB(&=r:i1`[eFW\-s*t~>
+lMgnaV"0$=KsTS*r7V)Mc1c_mIrBY)cLCeqrrN"[p4*4Eg\BP'!7L^o"a>*Uam]5]rrCsGJ-:@q
+eF`aurrAGWJ-:%Q]BK4IrrM_UmskUiDh+_7oD\1XJ,~>
+l2La,nGi^uJ_0AernRMSh[oM^"Zg^a]&WVKrr@E>!!G][cgq(jrrM^!qZ$atI]1omfDbhhn,NS8
+P/Q_ciVro@nGi\]MS&*Ng]%<;..7-?"^-)9_s%!bs*t~>
+l2LaSnO`s[R+Lg'rnRMSkZ.@L"^H,.]&WVKrrAee8d&arcgq(jrrMdjqaq!%I]1omfDbi=n4Egb
+P/Q_ciVroGnO`pnMS&*Ng]%<BB(&=r9P/O8_s%!bs*t~>
+l2LapnULdpWn6_9rnRMSmtg^g"a"gF]&WVKrrBb+J-:=kcgq(jrrMkJqg\fhI]1omfDbi[n:1Xj
+P/Q_ciVroLnULacMS&*Ng]%<GPja,,IrBRt_s%!bs*t~>
+l2La_mf3Jfc0G*'hZ!WJ0_YPO*cHY/eare'rrKG/p&G4'MSA<Ph#@ES=Sr.&$ZM!7k53g2!V[H"
+!!@,Di;)@3!0cpQ"@e6[kl'<:!RDnW!!`QtFH!Zbp\sR[J,~>
+l2Lb"mn*_0cKb3(hZ!WMD"gO+;f@8deare'rrL59p.>H_N5"NRh#@ESL\saJ:2l*%k53g2!Vosg
+8csIGi;)@3!4),e"Cd5"kl'<:!Sq/O8d8^GN4.U;rpB`9~>
+l2Lb4mskP/cg(<)hZ!WPR.l+8H>eD6eare'rrLf)p4*9qNkX`Th#@ESWr.ANIW11Uk53g2!W.iE
+J-1P2i;)@3!6Ob]"EoX6kl'<:!U#R4J-L%9N4.U;rpB`9~>
+l2Lb6mJmA6WoNaLi;WiL48/^Z%qL$Wa6WWcrrL"GoDf"aWS$qDh#@ASqu?mQG*pGArn.5NL[G-F
+*1G+@rSmhW/F`]C'md=Lqq_8QP76jZ#!?p\XOZn?m/MS~>
+l2LbAmRdUg[c@#Xi;WiOFSAB3:25-Ga6WWcrrLVIoL]7$WS$qDh#@Ajr(7,pG*pGArn.5NWpWI^
+<h.D'rSmhWC%4du;1c7;qq_8QZ;U*_#$c2'XOZn?m/MS~>
+l2LbJmXPFt^Z4tai;WiRSbIX=I;XD%a6WWcrrM)5oRI'sWS$qDh#@B&r."rpG*pGArn.5N_sMsV
+SBUL$ir9"EnULajLUQ:@h>[MtL@0QrFE3,;eai\*s*t~>
+l2Le`$gmuu"_lNTq>TFS!TQ$2!!`j8GE]]"q#9LW!P8d3!!EFP_<CdOrrM^!r;Zt!I]1upf`)!$%
+.+#t8@.1IroF(ZU[J0d%rThaqYoIR!Rj:$!!`QjEJ147mJQ;MJ,~>
+l2Le`;XR-\9oRZkq>TFS!UF[u8dA('GE]]"q#9LW!RF[88d%hE_<CdOrrMdjrCR3'I]1upf`)!1
+;XI'ZD6r*nroF(Z^@+Yt;2EZhqYoIR!T81h8d8UAKVm&^r9OB5~>
+l2Le`L$jHpJu.)eq>TFS!V)WQJ-UOAGE]]"q#9LW!SrM$J-1tNkkj08!V_<HJ-9k@W7q!urrMA=
+m=5=qZekHUjSo5-mskRmSC6m&ro*kXl(@?n#'=j<VU"T,li2J~>
+l2Le`1@+uE+IqNbr;PjY!NQq/!!`j8G)iuco`"(S!KRBR!!En#dI@(irrN*mrW!*0E/M6hr7V)N
+k:#Wr"BiV(q>TOV!TOm]!!XBfeFNG6roX4^dU*.F!!`^'EeUC6lMBfGJ,~>
+l2Le`D<sju?E`G^r;PjY!Q8+78dA('G)iuco`"(S!O,;g8d&%`dI@(irrN+Lr^m>hE/M6hr7V)N
+mUkcW"F@rIq>TOV!UEkT8d8Ifg%+t;roX4^hi1=t8dA%!EeUC6lMBfGJ,~>
+l2Le`R-]>,MnJ-Cr;PjY!S*)%J-UOAG)iuco`"(S!QTf^J-:FudI@(irrN+prdY0$E/M6hr7V)N
+o9AQk"HgR`q>TOV!V)'7J-Lk8hX^L@roX4^kc]U+J-UREEeUC6lMBfGJ,~>
+kl1Wpl2UuP\*<Varp'LacU[[/#7Og[Nj@=.r9=4^gHY*+";?sNnbh5C!1s/i"YY%db4,DarrL.[
+kl:iY_WU^nkl1\H.-^d<"$1nHoD&7_rpB^entJA8!!jBKG)E<FlM:GEs*t~>
+kl1XGl:M5#_Wgdlrp'LagjJff#>SoTNj@=.r9=4^k'-5c"B;&Hnbh5C!4i)$"^#r8b4,DarrL_X
+kt2)#`TR$qkl1\OB'Mto9Q6ZMoD&7_rpB^ep:Y\:8dJ:.G)E<FlM:GEs*t~>
+kl1Xgl@9&)bN\`urp'LakG.a$#C^T7Nj@=.r9=4^m@Wfs"G<`,nbh5C!6tLn"a>-Wb4,DarrM/?
+l$ro"`om-rkl1\TPj3c)JXEt"oD&7_rpB^eps>Z"J-^L@G)E<FlM:GEs*t~>
+kl1XCkl:ni6)s5Dr;Q-a!Obes!!aBOG`T2_nbh\P!p=J-li71mAC'Z=rnm_]mfWUj<dq"$pY5]L
+k@Xq\!!O@#iUZmFli."#*9@/,%R"Wo_WLXjr;HWoqu?]q"R`jU6O<#Y#mNM1I?UtcmJ?hHs*t~>
+kl1Xckt2.RFM$i3r;Q-a!R-/g8dA7/G`T2_nbh\P!q)IQlq.FTL=5Jbrnm_]nk;YJB7?f5pY5]L
+mZUB.8d/CmiUZmFli."5?KFcc;fn80d-LK(r;HWoqu?]q"S0j;Gu*d!#u"WDI?UtcmJ?hHs*t~>
+kl1Y&l$rthRE4[er;Q-a!SaOFJ-UF>G`T2_nbh\P!qWmSm!o7jT[W<(rnm_]on%^EFFL1BpY5]L
+o<X&3J-Cb8iUZmFli."CNobctL7>Kgh!Xt7r;HWoqu?]q"SUWfTnMc_$%I&:I?UtcmJ?hHs*t~>
+kl1Xrjo>W0FLgr:r;Q]hrr_\pCE)pH#Qcc!I$D(mnbhbR"8fZ2#j;6m&p2Ojq#13Ors8Qg!"4".
+\`WhHrr`,/>6s6h"sSWKo(i7`nG`O+:Yc!S%OaPFC4#l+")V4&([1o+"#"51LnVT=nGDDKJ,~>
+kl1Y/k"5kcR)ngmr;Q]hrr_l6Q<j,T#?l%nPd]98r9XFcr6C*pkXl%ZQ.PO#rVkgV#lSs>:O%c-
+k5=*9"8pH%:ub.P@%Z0Dq>L<^rrLW$h+@lNAp0#qTV;=Y"."da>3SWc93H(ULnVT=nGDDKJ,~>
+kl1Y=k(!\rZIJF>r;Q]hrr_uI[>jg/#Bk'6Pd]98r9XFcrS4H,k^WklY1rI@rVkgV#lU?FJU*-`
+k5=*9"8prVK]@ReN4%R6q>L<^rrM&Uh1,Z`P+AVY]DT;D[B,mVl$s(iGB%k`TtfCPqre!0~>
+kl1YIirBT%89UT9f\5'6gXEg.JlXAl!!j??FG-7#hX^U5rri>TSmN2l!!`TaHEuT*qY^?lkl1qf
+P5mXuR*"grj8T;^o"KuW&DdBn"#k>)j7iEKrr2fps8E,WVIpjV!"&obApB'![*Ih,r9"$0~>
+kl1YOj%9MUHCVIgi8agt"lIY<VMAjU8dJ:+FG-7#hX^U5rri>^\rBhP8dA%-S]'adqY^?lkl1qf
+Z:\ebR*"grj8T;^p!Bdl<Sg=S9Q$98kkFrPrr2fps8E,`^lr'48d\6qCj:]'[*Ih,r9"$0~>
+kl1YSj+%YqTXW(rkj%I!lfd-M^oE[jJ-^OCFG-7#hX^U5rri>fcEE,cJ-UXk[aOL9qY^?lkl1qf
+a+/u#R*"grj8T;^ptireLu*XgJX<ajlhC8Srr2fps8E,gd^+qAJ-pdMEd3>-[*Ih,r9"$0~>
+kl1\_'E.t9!uWR>/0Y_S!!s!!E.*kMb2i9pnc&]PB0Hj[!!j;u<c39EpA=jSrs%?\HC(Yap>u;V
+mrM8Le,Tms7VT7#q#15rG?-I0[/^U:*Ck$qLmt]mi:-UBjo9i~>
+kl1\_=8ker92\kq>?=\L8dS4!EIEtNb2i9pnc&]qPBKs[8dJO<KpJCqpA=jSrs%XYOI*!"p>u;V
+oULMBe4L-THBZA>q#164Sqh/^Zq:^)@WHjPS$L2pnG<.Gs*t~>
+kl1\_M>i#0IsZKhI"$RmJ-g[HEda(Ob2i9pnc&^3Z_!!,J-_""W3j2&pA=jSrs%k@TU2\2p>u;V
+pUR2ae:7sdTX!#;q#16E];h6R["&O2F`VqdS$L2pnG<.Gs*t~>
+kPl&N""mAeHA%6?P`gl>9IUD&!"'6$DL7;9^=_iKrp]pf+OU5l[G:3HlMh(e5JXG;jSS'=!8l'%
+"_?*EpASF+!"BDf88EO)P+oD.hsU:<j8XW~>
+kPl'39O_aWHA%6?P`guRDHoui8d\="E-mM;^=_iKrp]pf@+%XL^>//QlMh(eG/CDtjSS'=!9h^#
+"c:^jpAU)Z8e"Nt@rZgJP+oD.hsU:<j8XW~>
+kPl$\JV\_rHA%6?P`h)bL4Rs,$@R&;H]+W4f^8M6nG`KMdXVG=h!Y%(rs&Fn`3-o:qrRhXn'6Fe
+UsnK"ri`\Z%=WVHG'\h)U:/8&meHb@s*t~>
+kPl74`3,;fU9VGOaMu*/ZDX4D>s'#.huF,g-W"o6NM3o0k4JT>rsjj*?rBa(=BT-B?tX@rEURrJ
+@fKg9?2dY.:..N?3&ipe]\W;\li.1go\7O?n,DGK''ag]>Ydpc<Dub#?=$uKDJsN7mrBIe@UWYO
+>#8$k7R9@(1cB-Rd-gk$=CG3<?>=:jFEI+ps'cCE>#8$b5W^SL*Z>Lni;aGn'I>e:C4(VkQ(kS%
+eDp&nrSdd,~>
+kPl7DbH@%mU9VGOaMu*/ZDX4MG@jiKi(=AN<b6B%NM3o0k4JT>rsbupKm7W^FE2PGEclVPmWo"Y
+FE;JBrG2gSC2@KoB:limpAXCX#6+8Lb1H+]jo5YVTTaqKDJjH4D>eGUF*MutH6IQUFE;JACi!m#
+AnP^cA:h&4mesVLLO+ApIsucpI=-Bgp3I3kFE;D;CM.0e>[(6.:efn@&PQ&'?YFJ-Jr>ngZGY2P
+nG)t@s*t~>
+kPl1Nd&rRrU9VGOaMu*/ZDX4TM1j`9$\*GDFFK4C\^9L2r9jRp_QohtN/NLGK7SQ&It3+;K):'+
+JqSi4L5:\^]\W;\li.1go\7O?n,DGK$hV'6S<&M^KnFr,If4`tJ:W:<K)C-7It3*%K7nuCYgDh:
+bc%;%P)bQ]M2$]RK):&uJ,OirJ)PniIslZiG^+UfMj:$B_pm`9q#01OJ,~>
+kPlCqkfgcZeDTTZn*]Q+inDbu\ZVZjE)//'k5Yr'/PpG7LR"dMdH'lprpB^rqW5\tTq7jJTq\B\
+W2cr$n?*G,XJr+pVPKrZTV%gIT:i'nh"C[3rri2dk3Vm(rt>>)hS#hZSXc7CTVA6ZVPpMrXm`D#
+XfSS%Vl$>eU7e-LrgX7dYg;b9r9MS1rh9RlV5C2lXnAh;XfSM"VPKoXS=5e0P)tZ\I<B=7?VsWm
+5X.Fh/hZiL'fnHM<FKiqJqo;KR\[.!aOT89o_SREs*t~>
+kPlCqkfgcZeDTTZn*]Q+inDbu\ZVZlJT"ppk=Q1Z=_;c'LR"dMdH'lprpB^rqW5\tTq7jJTq\B\
+W2cr$n?*G,XJr+pVPKrZTV%gIT:i'nh"C[3rri2dk3Vm(rt>>)hS#hZSXc7CTVA6ZVPpMrXm`D#
+XfSS%Vl$>eU7e-LrgX7dYg;b9r9MS1rh9RlV5C2lXnAh;XfSM"VPKoXS=5e0P)tZ\K78)gF)>`-
+ARo:X>[6u,'jtK`CN+NIJqo;KR\[.!aOT89o_SREs*t~>
+kPl@pkfgcZeDTTZn*]Q+inDbu\ZVZnN/*#IJ.6pPG'/1fQ)D:BjRW0HmJd^nji+<pSt;RJU8=`c
+WiW>lXqRq=WMcVjUnXNTT:VXHTVf?Vp&=7V"T%QKm.fZA')qU]]r.KnS=Q:FU84Z`W2cr$n#d&#
+XK/:tVP^/`TV%eSS-YakcgLc0lccR3U'7?hVPpPtor]17XJr+pUnOENR[9;&OH#-QKnP&/JUi6#
+J,OiiIK+]pHiJI(IY*?6PFA;N]?&O]m.C/RhuA3~>
+kPkecp?_#0o_SLarY#2,q"*q9hUTfb[&KXYEDekD%J'Q3!tun?:i(N2N0gEMa4TSGqYog\%fGkT
+eBlRie(*%%g=tE>mb\W4gtLK8f[eU&da6=cbK\]*qW\"_rqcEdrT!nhqX31fcd:%eeCE.&g"P39
+hX02AhV?l>g=b-0eC;pncHOJ[jRrNNoA\6Ed*pOtg"bETh]:P.g=b-0eC)[eb/V<5]XY>QY,\Cq
+U7\!GR@';*p662UR%'bEWj&tH`m<8okjS3@rVkXQJ,~>
+kPkecp?_#0o_SLarY#2,q"*q9hUTfb[&KX[J8f%%:\.0j92JYqBQJQQN0gEMa4TSGqYog\%fGkT
+eBlRie(*%%g=tE>mb\W4gtLK8f[eU&da6=cbK\]*qW\"_rqcEdrT!nhqX31fcd:%eeCE.&g"P39
+hX02AhV?l>g=b-0eC;pncHOJ[jRrNNoA\6Ed*pOtg"bETh]:P.g=b-0eC)[eb/V<5]XY>QY,\Cq
+U7\!GR@';*p662UR%'bEWj&tH`m<8okjS3@rVkXQJ,~>
+kPkecp?_#0o_SLarXf&*q"*q9hUTfb[&KX]MhZlRJ.R-UH?a[^JrH%n[`@%`o(r@Orsntsi7--#
+dF6Xsf\5*8hX985h;$`<g"=m+eC)^icHFJblh]lG"TJ8mqYfIS&GkhNda-:edaZguf\,!5gtqGU
+*o>],g=k64f$r3td*BkYdcC*#rU]$tcHt%jf\,'9oA:SEgtLH6f$r-obf[rB^V%(`Ycb"(UnXKP
+S!fY0Q1gFTQC+/7UoLZ.^;eLNhrsP%qYgELs*t~>
+k5PS_r;?Nmp\ts,r;--VlJpXIaM,![TU1[bAm%u-r([l1AT<3OL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+k5PS_r;?Nmp\ts,r;--VlJpXIaM,![TU1^lG]@S9r+Zj_Ed3(cL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+k5PS_r;?Nmp\u!-r;--VlJpXIaM,![TU1atL4b&-J,OiqI1LgZL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+%%EndData
+showpage
+%%Trailer
+end
+%%EOF
diff --git a/templates/Estonian_UTF8-logo.png b/templates/Estonian_UTF8-logo.png
new file mode 100755
index 00000000..5edcdfe5
--- /dev/null
+++ b/templates/Estonian_UTF8-logo.png
Binary files differ
diff --git a/templates/Estonian_UTF8-packing_list.html b/templates/Estonian_UTF8-packing_list.html
new file mode 100755
index 00000000..6abd0837
--- /dev/null
+++ b/templates/Estonian_UTF8-packing_list.html
@@ -0,0 +1,192 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>S A A T E L E H T</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% cellspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th width=50% align=left><font color=ffffff>Kellele:</th>
+ <th width=50%>&nbsp;</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%>
+ <%if shiptostate%>
+ , <%shiptostate%>
+ <%end shiptostate%>
+ <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ </td>
+
+ <td>
+ <%if shiptocontact%>
+ <br>Attn: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Faks: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left>Arve #</th>
+ <th width=17% align=left>Tellimus #</th>
+ <th width=17% align=left>Kuupäev</th>
+ <th width=17% align=left nowrap>Kontakt</th>
+ <%if warehouse%>
+ <th width=17% align=left>Kaubaladu</th>
+ <%end warehouse%>
+ <th width=17% align=left>Saadetise sihtpunkt</th>
+ <th width=15% align=left>Tarveviis</th>
+ </tr>
+
+ <tr>
+ <td><%invnumber%>&nbsp;</td>
+ <td><%ordnumber%>&nbsp;</td>
+
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%transdate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+
+ <%if warehouse%>
+ <td><%warehouse%>&nbsp;</td>
+ <%end warehouse%>
+
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>AR.</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Selgitus</th>
+ <th align=left><font color=ffffff>Seerianumber #</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Kogus</th>
+ <th><font color=ffffff>Saatmine</th>
+ <th>&nbsp;</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%></td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td><%serialnumber%></td>
+ <td><%deliverydate%></td>
+ <td align=right><%qty%></td>
+ <td align=right><%ship%></td>
+ <td><%unit%></td>
+ </tr>
+ <%end number%>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+ <%if notes%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td>Notes</td>
+ <td><%notes%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <%end notes%>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=70%><font size=-3>
+ Items returned are subject to
+ a 10% restocking charge. A return authorization must be obtained
+ from <%company%> before goods are returned. Returns must be shipped
+ prepaid and properly insured. <%company%> will not be responsible
+ for damages during transit.
+ </font>
+ </td>
+ <td width=30%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+
+</body>
+</html>
+
+
+
+
+
+
+
+
diff --git a/templates/Estonian_UTF8-packing_list.tex b/templates/Estonian_UTF8-packing_list.tex
new file mode 100755
index 00000000..2d3a1945
--- /dev/null
+++ b/templates/Estonian_UTF8-packing_list.tex
@@ -0,0 +1,136 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\newsavebox{\ftr}
+\sbox{\ftr}{
+ \parbox{\textwidth}{
+ \tiny
+ \rule[1.5em]{\textwidth}{0.5pt}
+Items returned are subject to a 10\% restocking charge.
+A return authorization must be obtained from <%company%> before goods are
+returned. Returns must be shipped prepaid and properly insured.
+<%company%> will not be responsible for damages during transit.
+ }
+}
+
+<%include letterhead.tex%>
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrl@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Ship} & \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+\textbf{Ship To}} \hfill
+
+\vspace{0.3cm}
+
+\parbox[t]{.5\textwidth}{
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+}
+\parbox[t]{.5\textwidth}{
+ <%shiptocontact%>
+
+ <%if shiptophone%>
+ Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{P A C K I N G} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{7}{|X}|} \hline
+ \textbf{Invoice \#} & \textbf{Order \#} & \textbf{Date} & \textbf{Contact}
+ <%if warehouse%>
+ & \textbf{Warehouse}
+ <%end warehouse%>
+ & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+
+ <%invnumber%> & <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%transdate%>
+ <%end shippingdate%>
+ & <%employee%>
+ <%if warehouse%>
+ & <%warehouse%>
+ <%end warehouse%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrl@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Ship} & \\
+
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%serialnumber%> &
+ <%deliverydate%> & <%qty%> & <%ship%> & <%unit%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{12pt}
+
+<%notes%>
+
+}
+
+\vfill
+
+\rule{\textwidth}{0.5pt}
+
+\usebox{\ftr}
+
+\end{document}
+
diff --git a/templates/Estonian_UTF8-pick_list.html b/templates/Estonian_UTF8-pick_list.html
new file mode 100755
index 00000000..65ebe69e
--- /dev/null
+++ b/templates/Estonian_UTF8-pick_list.html
@@ -0,0 +1,149 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>V E O S E &nbsp;&nbsp; S A A T E L E H T</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th width=50% align=left><font color=ffffff>Kellele:</th>
+ <th width=50%>&nbsp;</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%>
+ <%if shiptostate%>
+ , <%shiptostate%>
+ <%end shiptostate%>
+ <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ </td>
+
+ <td>
+ <%if shiptocontact%>
+ <br>Kontaktisik: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Faks: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=15% align=left>Arve #</th>
+ <th width=15% align=left>Tellimus #</th>
+ <th width=10% align=left>Kuupäev</th>
+ <th width=15% align=left nowrap>Kontakt</th>
+ <th width=15% align=left>Kaubaladu</th>
+ <th width=10% align=left>Tarneaadress</th>
+ <th width=10% align=left>Tarneviis</th>
+ </tr>
+
+ <tr>
+ <td><%invnumber%>&nbsp;</td>
+ <td><%ordnumber%>&nbsp;</td>
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%transdate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+ <td><%warehouse%>&nbsp;</td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>AR.</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Kirjeldus</th>
+ <th><font color=ffffff>Kogus</th>
+ <th><font color=ffffff>Saatmine</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Pakend</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td align=right>[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</td>
+ <td><%unit%></td>
+ <td align=right><%bin%></td>
+ </tr>
+ <%end number%>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+</table>
+
+</body>
+</html>
+
+
+
+
+
+
+
+
+
+
+
diff --git a/templates/Estonian_UTF8-pick_list.tex b/templates/Estonian_UTF8-pick_list.tex
new file mode 100755
index 00000000..2f82936a
--- /dev/null
+++ b/templates/Estonian_UTF8-pick_list.tex
@@ -0,0 +1,108 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\begin{tabularx}{\textwidth}{@{}rlXrcll@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} &
+ \textbf{Qty} & \textbf{Ship} & & \textbf{Bin} \\
+
+<%end pagebreak%>
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+ \textbf{Ship To}
+} \hfill
+
+\vspace{0.3cm}
+
+\parbox[t]{.5\textwidth}{
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+}
+\parbox[t]{.5\textwidth}{
+ <%shiptocontact%>
+
+ <%if shiptophone%>
+ Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{P I C K} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{7}{|X}|} \hline
+ \textbf{Invoice \#} & \textbf{Order \#} & \textbf{Date} & \textbf{Contact}
+ & \textbf{Warehouse} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+ <%invnumber%> & <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%transdate%>
+ <%end shippingdate%>
+ & <%employee%> & <%warehouse%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrcll@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} &
+ \textbf{Qty} & \textbf{Ship} & & \textbf{Bin} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> &
+ <%qty%> & [\hspace{1cm}] & <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+}
+
+\end{document}
+
diff --git a/templates/Estonian_UTF8-pos_invoice.txt b/templates/Estonian_UTF8-pos_invoice.txt
new file mode 100755
index 00000000..cbc0055a
--- /dev/null
+++ b/templates/Estonian_UTF8-pos_invoice.txt
@@ -0,0 +1,45 @@
+<%company align=center width=40%>
+<%address align=center width=40%>
+
+Till: <%till align=left width=3%> Phone#: <%tel%>
+Cashier: <%employee%>
+Inv #/Date: <%invnumber%> / <%invdate%>
+Printed: <%dateprinted%>
+
+ Qty Description Amount
+<%foreach number%>
+<%qty align=right width=5%> <%description align=left width=24 offset=6%> <%linetotal align=right width=9%>
+ <%number%> @ <%sellprice%>/<%unit%>
+<%end number%>
+
+Number of items: <%totalqty%>
+<%if taxincluded%>
+ ---------------
+ Total: <%invtotal align=right width=9%>
+<%end taxincluded%>
+<%if not taxincluded%>
+ ------------
+ Subtotal: <%subtotal align=right width=9%>
+<%end taxincluded%>
+<%foreach tax%>
+<%taxdescription align=right width=23%> @ <%taxrate align=right width=2%>%: <%tax align=right width=9%>
+<%end tax%>
+<%foreach payment%>
+ Paid: <%payment align=right width=9%> <%currency%>
+<%end payment%>
+<%if change%>
+ Change: <%change align=right width=9%>
+<%end change%>
+<%if total%>
+ Balance Due: <%total align=right width=9%>
+<%end total%>
+<%if discount%>
+
+<%discount%> % Discount applied
+<%end discount%>
+
+ Thank you for your valued business!
+
+<%if taxincluded%>
+Taxes are included in price.
+<%end taxincluded%>
diff --git a/templates/Estonian_UTF8-purchase_order.html b/templates/Estonian_UTF8-purchase_order.html
new file mode 100755
index 00000000..54d9d53f
--- /dev/null
+++ b/templates/Estonian_UTF8-purchase_order.html
@@ -0,0 +1,247 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>H A N K E T E L L I M U S</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>Kellele:</th>
+ <th align=left width=50%><font color=ffffff>Tarneaadress:</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br>Kontaktisik: <%contact%>
+ <%end contact%>
+
+ <%if vendorphone%>
+ <br>Tel: <%vendorphone%>
+ <%end vendorphone%>
+
+ <%if vendorfax%>
+ <br>Faks: <%vendorfax%>
+ <%end vendorfax%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%>
+ <%if shiptostate%>
+ , <%shiptostate%>
+ <%end shiptostate%>
+ <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ <br>
+
+ <%if shiptocontact%>
+ <br>Kontaktisik: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Faks: <%shiptofax%>
+ <%end shiptofax%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left>Tellimus #</th>
+ <th width=17% align=left>Tellimuse Kuupäev</th>
+ <th width=17% align=left>Tarne Tähtaeg</th>
+ <th width=17% align=left>Kontakt</th>
+ <th width=17% align=left>Tarneaadress</th>
+ <th width=15% align=left>Tarneviis</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%></td>
+ <td><%orddate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>AR.</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Kirjeldus</th>
+ <th><font color=ffffff>Kogus</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Hind</th>
+ <th><font color=ffffff>%</th>
+ <th><font color=ffffff>Summa</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%>.</td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discountrate%></th>
+ <td align=right><%linetotal%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <td colspan=8><hr noshade></td>
+ </tr>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=7 align=right>Kokku</th>
+ <th colspan=1 align=right><%ordtotal%></th>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=7 align=right>Vahekokkuvõte</th>
+ <td colspan=1 align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=7 align=right><%taxdescription%> on <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=1 align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <tr>
+ <td colspan=4>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <%if not taxincluded%>
+ <th colspan=7 align=right>Kokku</th>
+ <td colspan=1 align=right><%ordtotal%></td>
+ <%end taxincluded%>
+
+ <%if terms%>
+ <tr>
+ <td colspan=4>Maksetingimus <b><%terms%></b> päeva</td>
+ <th colspan=3 align=right>Kokku</th>
+ <th colspan=1 align=right><%ordtotal%></th>
+ </tr>
+ <%end terms%>
+
+ <%if taxincluded%>
+ <tr>
+ <td colspan=2>Sisaldab käibemaksu</td>
+ </tr>
+ <%end taxincluded%>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <%if ordtotal%>
+ <tr>
+ <td colspan=8 align=right>
+ Kõik hinnad toodud <b><%currency%></b> vääringus
+ </td>
+ </tr>
+ <%end ordtotal%>
+
+ </table>
+ </td>
+ </tr>
+
+ <%if notes%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td>Notes</td>
+ <td><%notes%></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+ <%end notes%>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=70%>&nbsp;</td>
+
+ <td width=30%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+</table>
+
+</body>
+</html>
+
+
+
+
+
+
+
diff --git a/templates/Estonian_UTF8-purchase_order.tex b/templates/Estonian_UTF8-purchase_order.tex
new file mode 100755
index 00000000..fe1e6428
--- /dev/null
+++ b/templates/Estonian_UTF8-purchase_order.tex
@@ -0,0 +1,170 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{\hspace{1cm}r@{}}
+ & Subtotal & <%sumcarriedforward%> \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Amount} \\
+ & carried forward from <%lastpage%> & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+\textbf{To}
+\vspace{0.3cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+Attn: <%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if vendorphone%>
+Tel: <%vendorphone%>
+<%end vendorphone%>
+
+<%if vendorfax%>
+Fax: <%vendorfax%>
+<%end vendorfax%>
+
+<%email%>
+}
+\parbox[t]{.5\textwidth}{
+\textbf{Ship To}
+\vspace{0.3cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+Attn: <%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{P U R C H A S E} \parbox{0.3cm}{\hfill} \textbf{O R D E R}
+\hfill
+
+\vspace{1cm}
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Date} & \textbf{Required by} & \textbf{Contact} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5ex]
+ \hline
+ <%ordnumber%> & <%orddate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Amount} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%linetotal%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
+ & Subtotal & <%subtotal%> \\
+<%foreach tax%>
+ & <%taxdescription%> on <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ & Total & <%ordtotal%>\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ All prices in \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%notes%>
+
+}
+
+
+%\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+%\footnotetext[1]{\tiny }
+
+\end{document}
+
diff --git a/templates/Estonian_UTF8-receipt.tex b/templates/Estonian_UTF8-receipt.tex
new file mode 100755
index 00000000..effc19b6
--- /dev/null
+++ b/templates/Estonian_UTF8-receipt.tex
@@ -0,0 +1,77 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{9pt}{9pt}\selectfont
+
+\parbox[t]{12cm}{
+ <%company%>
+
+ <%address%>}
+\hfill
+\parbox[t]{6cm}{\hfill <%source%>}
+
+\vspace*{0.6cm}
+
+<%text_amount%> \dotfill <%decimal%>/100 \makebox[0.5cm]{\hfill}
+
+\vspace{0.5cm}
+
+\hfill <%datepaid%> \makebox[2cm]{\hfill} <%amount%>
+
+% different date format for datepaid
+% <%DD%><%MM%><%YYYY%>
+
+\vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{1.8cm}
+
+<%memo%>
+
+\vspace{0.8cm}
+
+<%company%>
+
+\vspace{0.5cm}
+
+<%name%> \hfill <%datepaid%> \hfill <%source%>
+
+\vspace{0.5cm}
+\begin{tabularx}{\textwidth}{lXrr@{}}
+\textbf{Invoice No.} & \textbf{Invoice Date}
+ & \textbf{Due} & \textbf{Applied} \\
+<%foreach invnumber%>
+<%invnumber%> & <%invdate%> \dotfill
+ & <%due%> & <%paid%> \\
+<%end invnumber%>
+\end{tabularx}
+
+\vspace{1cm}
+
+<%memo%>
+
+\vfill
+
+\end{document}
+
diff --git a/templates/Estonian_UTF8-request_quotation.html b/templates/Estonian_UTF8-request_quotation.html
new file mode 100755
index 00000000..321e1215
--- /dev/null
+++ b/templates/Estonian_UTF8-request_quotation.html
@@ -0,0 +1,184 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>H I N N A P A K K U M U S E &nbsp;&nbsp; T A O T L U S</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>Kellele:</th>
+ <th align=left width=50%><font color=ffffff>Tarnida:</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br>Kontaktisik: <%contact%>
+ <%end contact%>
+
+ <%if vendorphone%>
+ <br>Tel: <%vendorphone%>
+ <%end vendorphone%>
+
+ <%if vendorfax%>
+ <br>Faks: <%vendorfax%>
+ <%end vendorfax%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddr2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%>
+ <%if shiptostate%>
+ , <%shiptostate%>
+ <%end shiptostate%>
+ <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ <br>
+
+ <%if shiptocontact%>
+ <br>Kontaktisik: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Faks: <%shiptofax%>
+ <%end shiptofax%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left>Hinnapakkumuse Taotlus #</th>
+ <th width=17% align=left>Kuupäev</th>
+ <th width=17% align=left>Tähtaeg</th>
+ <th width=17% align=left>Kontakt</th>
+ <th width=17% align=left>Tarneaadress</th>
+ <th width=15% align=left>Tarneviis</th>
+ </tr>
+
+ <tr>
+ <td><%quonumber%></td>
+ <td><%quodate%></td>
+ <td><%reqdate%>&nbsp;</td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height="10"></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>Please provide price and delivery time for the following items:</td>
+ </tr>
+
+ <tr height="10"></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <th align=right>AR.</th>
+ <th align=left>Number</th>
+ <th align=left><font color=ffffff>Kirjeldus</th>
+ <th>Kogus</th>
+ <th>&nbsp;</th>
+ <th>Delivery</th>
+ <th>Ãœhiku Hind</th>
+ <th>Summa</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%>.</td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <td colspan=8><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+ <%if notes%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td>Notes</td>
+ <td><%notes%></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+ <%end notes%>
+
+</table>
+
+</body>
+</html>
+
+
+
+
+
+
diff --git a/templates/Estonian_UTF8-request_quotation.tex b/templates/Estonian_UTF8-request_quotation.tex
new file mode 100755
index 00000000..cf95dd89
--- /dev/null
+++ b/templates/Estonian_UTF8-request_quotation.tex
@@ -0,0 +1,151 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
+ & \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Extended} \\
+ & carried forward from <%lastpage%> & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+\textbf{To}
+\vspace{0.3cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if vendorphone%>
+Tel: <%vendorphone%>
+<%end vendorphone%>
+
+<%if vendorfax%>
+Fax: <%vendorfax%>
+<%end vendorfax%>
+
+<%email%>
+}
+\parbox[t]{.5\textwidth}{
+\textbf{Ship To}
+\vspace{0.3cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{R E Q U E S T for Q U O T A T I O N}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{RFQ \#} & \textbf{Date} & \textbf{Required by} & \textbf{Contact} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5ex]
+ \hline
+ <%quonumber%> & <%quodate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+Please provide price and delivery time for the following items:
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}lXrllrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} & &
+ \textbf{Delivery} & \textbf{Unit Price} & \textbf{Extended} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> & <%unit%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\hfill
+
+<%notes%>
+
+}
+
+\end{document}
+
diff --git a/templates/Estonian_UTF8-sales_order.html b/templates/Estonian_UTF8-sales_order.html
new file mode 100755
index 00000000..4a28ad2b
--- /dev/null
+++ b/templates/Estonian_UTF8-sales_order.html
@@ -0,0 +1,237 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>M Ü Ü G I T E L L I M U S</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>Tellija</th>
+ <th align=left width=50%><font color=ffffff>Tarneaadress</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%>
+ <%if shiptostate%>
+ , <%shiptostate%>
+ <%end shiptostate%>
+ <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ <br>
+ <%if shiptocontact%>
+ <br><%shiptocontact%>
+ <%end shiptocontact%>
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+ <%if shiptoemail%>
+ <br><%shiptoemail%>
+ <%end shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Tellimus #</th>
+ <th width=17% align=left>Tellimuse Kuupäev</th>
+ <th width=17% align=left>Tarnetähtaeg</th>
+ <th width=17% align=left nowrap>Müüja</th>
+ <th width=17% align=left nowrap>Kauba sihtpunkt</th>
+ <th width=15% align=left nowrap>Tarneviis</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%></td>
+ <td><%orddate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>AR.</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Kirjeldus</th>
+ <th><font color=ffffff>Kogus</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Hind</th>
+ <th><font color=ffffff>Ale %</th>
+ <th><font color=ffffff>Summa</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%>.</td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discountrate%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <td colspan=8><hr noshade></td>
+ </tr>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=6 align=right>Kokku</th>
+ <td colspan=2 align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=6 align=right>Vahekokkuvõte</th>
+ <td colspan=2 align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=6 align=right><%taxdescription%> on <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <tr>
+ <td colspan=4>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=4>
+ <%text_amount%> ***** <%decimal%>/100
+ <%if terms%>
+ <br>Maksetingimus <b><%terms%></b> päeva
+ <%end terms%>
+ </td>
+ <th colspan=2 align=right>Kokku</th>
+ <th colspan=2 align=right><%ordtotal%></th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <%if notes%>
+ <td>Notes</td>
+ <td><%notes%></td>
+ <%end notes%>
+ <td align=right nowrap>
+ Kõik hinnad toodud <%currency%> vääringus</b>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=60%><font size=-3>
+ Special order items are subject to a 10% order cancellation fee.
+ </font>
+ </td>
+ <td width=40%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+</table>
+
+</body>
+</html>
+
+
+
+
+
+
+
diff --git a/templates/Estonian_UTF8-sales_order.tex b/templates/Estonian_UTF8-sales_order.tex
new file mode 100755
index 00000000..60f7bfeb
--- /dev/null
+++ b/templates/Estonian_UTF8-sales_order.tex
@@ -0,0 +1,177 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
+ & \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+
+\begin{tabularx}{\textwidth}{@{}rlXrlrrr@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+ & carried forward from <%lastpage%> & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+\textbf{To}
+\vspace{0.3cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\parbox[t]{.5\textwidth}{
+\textbf{Ship To}
+\vspace{0.3cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{S A L E S} \parbox{0.3cm}{\hfill} \textbf{O R D E R}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Order Date} & \textbf{Required by} & \textbf{Salesperson} & \textbf{Shipping Point} & \textbf{Ship Via} \\ [0.5em]
+ \hline
+ <%ordnumber%> & <%orddate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrlrrr@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%discountrate%> & <%linetotal%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
+ & Subtotal & <%subtotal%> \\
+<%foreach tax%>
+ & <%taxdescription%> on <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ & Total & <%ordtotal%>\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100
+\hfill
+All prices in \textbf{<%currency%>}.
+
+<%if terms%>
+Terms: <%terms%> days
+<%end terms%>
+
+\vspace{12pt}
+
+<%notes%>
+
+}
+
+\vfill
+
+\centerline{\textbf{Thank You for your valued business!}}
+
+\rule{\textwidth}{0.5pt}
+
+\end{document}
+
diff --git a/templates/Estonian_UTF8-sales_quotation.html b/templates/Estonian_UTF8-sales_quotation.html
new file mode 100755
index 00000000..b46cca83
--- /dev/null
+++ b/templates/Estonian_UTF8-sales_quotation.html
@@ -0,0 +1,205 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>H I N N A P A K K U M U S</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+
+ <br>
+ <%if contact%>
+ <br>Kontaktisik: <%contact%>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Faks: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Number</th>
+ <th width=17% align=left>Kuupäev</th>
+ <th width=17% align=left>Kehtiv Kuni</th>
+ <th width=17% align=left nowrap>Kontakt</th>
+ <th width=17% align=left nowrap>Tarneaadress</th>
+ <th width=15% align=left nowrap>Tarneviis</th>
+ </tr>
+
+ <tr>
+ <td><%quonumber%></td>
+ <td><%quodate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>AR.</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Kirjeldus</th>
+ <th><font color=ffffff>Kogus</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Hind</th>
+ <th><font color=ffffff>Ale %</th>
+ <th><font color=ffffff>Summa</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%></td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discountrate%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <td colspan=8><hr noshade></td>
+ </tr>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=6 align=right>Kokku</th>
+ <td colspan=2 align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=6 align=right>Vahekokkuvõte</th>
+ <td colspan=2 align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=6 align=right><%taxdescription%> on <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <tr>
+ <td colspan=4>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=4>&nbsp;
+ <%if terms%>
+ Maksetingimused <b><%terms%></b> päeva
+ <%end terms%>
+ </td>
+ <th colspan=2 align=right>Kokku</th>
+ <th colspan=2 align=right><%quototal%></th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <%if notes%>
+ <td>Notes</td>
+ <td><%notes%></td>
+ <%end notes%>
+ <td align=right>
+ Kõik hinnad toodud <b><%currency%></b> vääringus.
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=60%><font size=-3>
+ Special order items are subject to a 10% cancellation fee.
+ </font>
+ </td>
+ <td width=40%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+</table>
+
+</body>
+</html>
+
+
+
+
+
diff --git a/templates/Estonian_UTF8-sales_quotation.tex b/templates/Estonian_UTF8-sales_quotation.tex
new file mode 100755
index 00000000..771fe6a3
--- /dev/null
+++ b/templates/Estonian_UTF8-sales_quotation.tex
@@ -0,0 +1,148 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\newsavebox{\ftr}
+\sbox{\ftr}{
+ \parbox{\textwidth}{
+ \tiny
+ \rule[1.5em]{\textwidth}{0.5pt}
+Special order items are subject to a 10\% cancellation fee.
+ }
+}
+
+<%include letterhead.tex%>
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
+ & \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%quonumber%>}{<%company%>\hfill <%quonumber%>}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+ & carried forward from <%lastpage%> & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+
+\vspace{1cm}
+
+\textbf{Q U O T A T I O N}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Quotation \#} & \textbf{Date} & \textbf{Valid until} & \textbf{Contact} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5ex]
+ \hline
+ <%quonumber%> & <%quodate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%discountrate%> & <%linetotal%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
+ & Subtotal & <%subtotal%> \\
+<%foreach tax%>
+ & <%taxdescription%> on <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ & Total & <%quototal%>\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+All prices in \textbf{<%currency%>}.
+
+<%if terms%>
+Terms: <%terms%> days
+<%end terms%>
+
+\vspace{12pt}
+
+<%notes%>
+
+}
+
+\vfill
+
+\hfill \parbox{7cm}{X \rule{6.5cm}{0.5pt}}
+
+\rule{\textwidth}{0.5pt}
+
+\usebox{\ftr}
+
+\end{document}
+
diff --git a/templates/Estonian_UTF8-statement.html b/templates/Estonian_UTF8-statement.html
new file mode 100755
index 00000000..8ee77c9a
--- /dev/null
+++ b/templates/Estonian_UTF8-statement.html
@@ -0,0 +1,144 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3><h4>A R U A N N E</h4></th>
+
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td colspan=3 align=right><%statementdate%></td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+ <%if customerfax%>
+ <br>Faks: <%customerfax%>
+ <%end customerfax%>
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=10></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <th align=left>Arve NR. #</th>
+ <th align=left>Tellimus NR.#</th>
+ <th width=10%>Kuupäev</th>
+ <th width=10%>Võlg</th>
+ <th width=10%>Hetkeseis</th>
+ <th width=10%>30</th>
+ <th width=10%>60</th>
+ <th width=10%>90</th>
+ </tr>
+
+ <%foreach invnumber%>
+ <tr>
+ <td><%invnumber%></td>
+ <td><%ordnumber%></td>
+ <td><%invdate%></td>
+ <td><%duedate%></td>
+ <td align=right><%c0%></td>
+ <td align=right><%c30%></td>
+ <td align=right><%c60%></td>
+ <td align=right><%c90%></td>
+ </tr>
+ <%end invnumber%>
+
+ <tr>
+ <td colspan=8><hr size=1></td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <th align=right><%c0total%></td>
+ <th align=right><%c30total%></td>
+ <th align=right><%c60total%></td>
+ <th align=right><%c90total%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=10></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td align=right>
+ <table width=50%>
+ <tr>
+ <th>Kokku Laekumata</th>
+ <th align=right><%total%></th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ <td>Kõik summad toodud <b><%currency%></b> vääringus.
+ <br>Palume tasuda <b><%company%></b>.
+ </td>
+ </tr>
+
+</table>
+
+</body>
+</html>
+
+
+
+
+
+
+
+
diff --git a/templates/Estonian_UTF8-statement.tex b/templates/Estonian_UTF8-statement.tex
new file mode 100755
index 00000000..0beb6c64
--- /dev/null
+++ b/templates/Estonian_UTF8-statement.tex
@@ -0,0 +1,78 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+\parbox[t]{.5\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+}
+\parbox[t]{.5\textwidth}{
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{S T A T E M E N T} \hfill \textbf{<%statementdate%>}
+
+\vspace{2cm}
+
+\begin{tabular*}{\textwidth}{|ll@{\extracolsep\fill}ccrrrr|}
+ \hline
+ \textbf{Invoice \#} & \textbf{Order \#} & \textbf{Date} & \textbf{Due} &
+ \textbf{Current} & \textbf{30} & \textbf{60} & \textbf{90} \\
+ \hline
+<%foreach invnumber%>
+ <%invnumber%> & <%ordnumber%> & <%invdate%> & <%duedate%> &
+ <%c0%> & <%c30%> & <%c60%> & <%c90%> \\
+<%end invnumber%>
+ \multicolumn{8}{|l|}{\mbox{}} \\
+ \hline
+ \textbf{Subtotal} & & & & <%c0total%> & <%c30total%> & <%c60total%> & <%c90total%> \\
+ \hline
+\end{tabular*}
+
+\vspace{0.5cm}
+
+\hfill
+\begin{tabularx}{\textwidth}{Xr@{\hspace{1cm}}r@{}}
+ & \textbf{Total outstanding} & \textbf{<%total%>}
+\end{tabularx}
+
+\vfill
+All amounts in \textbf{<%currency%>} funds.
+
+Please make check payable to \textbf{<%company%>}
+
+\end{document}
+
diff --git a/templates/Estonian_UTF8-timecard.html b/templates/Estonian_UTF8-timecard.html
new file mode 100755
index 00000000..fbc6d607
--- /dev/null
+++ b/templates/Estonian_UTF8-timecard.html
@@ -0,0 +1,125 @@
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>AJAKAART</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=left>Töötaja</th>
+ <td><%employee%></td>
+ </tr>
+ <tr>
+ <th align=left>Töötaja Kood</th>
+ <td><%employee_id%></td>
+ </tr>
+ </table>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Kaardi Kood</th>
+ <td><%id%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Kuupäev</th>
+ <td><%transdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Algus</th>
+ <td><%checkedin%></td>
+ </tr>
+ <tr>
+ <th align=left>Lõpp</th>
+ <td><%checkedout%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Tundi</th>
+ <td><%qty%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=bottom>
+ <td>
+ <table>
+ <tr valign=top>
+ <th align=left>Tööülesanne/Projekt #</th>
+ <td><%projectnumber%></td>
+ </tr>
+ <tr>
+ <th align=left>Kirjeldus</th>
+ <td><%projectdescription%></td>
+ </tr>
+ <tr valign=top>
+ <th align=left>Töö/Teenuse Kood</th>
+ <td><%partnumber%></td>
+ </tr>
+ <tr>
+ <th align=left>Kirjeldus</th>
+ <td><%description%></td>
+ </tr>
+ </table>
+ </td>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Tariif</th>
+ <td><%sellprice%></td>
+ </tr>
+ <tr>
+ <th align=right>Kokku</th>
+ <td><%total%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <%if notes%>
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%notes%>
+ </td>
+ </tr>
+ <%end notes%>
+
+</table>
+
+</body>
+</html>
+
+
diff --git a/templates/Estonian_UTF8-timecard.tex b/templates/Estonian_UTF8-timecard.tex
new file mode 100755
index 00000000..b7630a00
--- /dev/null
+++ b/templates/Estonian_UTF8-timecard.tex
@@ -0,0 +1,52 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+\centerline{\textbf{T I M E}\hspace{0.5cm}\textbf{C A R D}}
+
+\vspace*{0.5cm}
+
+\begin{tabular}[t]{ll}
+ \textbf{Employee} & <%employee%> \\
+ \textbf{ID} & <%employee_id%> \\
+\end{tabular}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Card ID} & <%id%> \\
+ \textbf{Date} & <%transdate%> \\
+ \textbf{In} & <%checkedin%> \\
+ \textbf{Out} & <%checkedout%> \\
+ \textbf{Hours} & <%qty%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular}[b]{ll}
+ \textbf{Job/Project \#} & <%projectnumber%> \\
+ \textbf{Description} & <%projectdescription%> \\
+ \textbf{Labor/Service Code} & <%partnumber%> \\
+ \textbf{Description} & <%description%> \\
+\end{tabular}
+\hfill
+\begin{tabular}[b]{lr}
+ \textbf{Rate} & <%sellprice%> \\
+ \textbf{Total} & <%total%> \\
+\end{tabular}
+
+\vspace{0.3cm}
+
+<%notes%>
+
+\end{document}
+
diff --git a/templates/Estonian_UTF8-work_order.html b/templates/Estonian_UTF8-work_order.html
new file mode 100755
index 00000000..3e1d729c
--- /dev/null
+++ b/templates/Estonian_UTF8-work_order.html
@@ -0,0 +1,164 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>T Ö Ö K Ä S K</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>Tellija</th>
+ <th align=left width=50%><font color=ffffff>Tarneaadress</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+ <%if contact%>
+ <br>Kontaktisik: <%contact%>
+ <%end contact%>
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+ <%if customerfax%>
+ <br>Faks: <%customerfax%>
+ <%end customerfax%>
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%>
+ <%if shiptostate%>
+ , <%shiptostate%>
+ <%end shiptostate%>
+ <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ <br>
+ <%if shiptocontact%>
+ <br><%shiptocontact%>
+ <%end shiptocontact%>
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+ <%if shiptofax%>
+ <br>Faks: <%shiptofax%>
+ <%end shiptofax%>
+ <%if shiptoemail%>
+ <br><%shiptoemail%>
+ <%end shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Tellimus #</th>
+ <th width=17% align=left>Tellimuse Kuupäev</th>
+ <th width=17% align=left>Tarnetähtaeg</th>
+ <th width=17% align=left nowrap>Müüja</th>
+ <th width=17% align=left nowrap>Tarneaadress</th>
+ <th width=15% align=left nowrap>Tarneviis</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%></td>
+ <td><%orddate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>AR.</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Kirjeldus</th>
+ <th><font color=ffffff>Kogus</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Kast</th>
+ <th><font color=ffffff>Seerianumber #</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%>.</td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td><%bin%></td>
+ <td><%serialnumber%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <td colspan=7><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <%if notes%>
+ <td><%notes%></td>
+ <%end notes%>
+ </tr>
+</table>
+
+</body>
+</html>
+
+
+
+
diff --git a/templates/Estonian_UTF8-work_order.tex b/templates/Estonian_UTF8-work_order.tex
new file mode 100755
index 00000000..c8d48172
--- /dev/null
+++ b/templates/Estonian_UTF8-work_order.tex
@@ -0,0 +1,141 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\begin{tabularx}{\textwidth}{@{}rlXrll@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ & \textbf{Serial Number} \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+\textbf{To}
+\vspace{0.3cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\parbox[t]{.5\textwidth}{
+\textbf{Ship To}
+\vspace{0.3cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{W O R K} \parbox{0.3cm}{\hfill} \textbf{O R D E R}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Order Date} & \textbf{Required by} & \textbf{Salesperson} & \textbf{Shipping Point} & \textbf{Ship Via} \\ [0.5em]
+ \hline
+ <%ordnumber%> & <%orddate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrll@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ & \textbf{Serial Number} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%serialnumber%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{12pt}
+
+<%notes%>
+}
+
+\vfill
+
+\end{document}
+
diff --git a/templates/French-ap_transaction.html b/templates/French-ap_transaction.html
new file mode 100755
index 00000000..fd7a96eb
--- /dev/null
+++ b/templates/French-ap_transaction.html
@@ -0,0 +1,229 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>A P - T R A N S A C T I O N</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Invoice #</th>
+ <td><%invnumber%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Date</th>
+ <td><%invdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Due</th>
+ <td><%duedate%></td>
+ </tr>
+ <tr>
+ <th align=left>Order #</th>
+ <td><%ordnumber%>&nbsp;</td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Employee</th>
+ <td><%employee%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=50%>
+ <table>
+ <%foreach account%>
+ <tr valign=top>
+ <td><%accno%></td>
+ <td><%account%></td>
+ <td align=right><%amount%></td>
+ <td><%projectnumber%></td>
+ </tr>
+ <%end account%>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Subtotal</th>
+ <td align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=2 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ </table>
+ </td>
+ <td width=50%>
+ <%notes%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <tr>
+ <td>&nbsp;</td>
+
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%text_amount%> ***** <%decimal%>/100 <%currency%>
+ </td>
+ </tr>
+
+ <%if paid%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <tr>
+ <th>Payments</th>
+ </tr>
+
+ <tr>
+ <td>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=left>Date</th>
+ <th align=left>Account</th>
+ <th align=left>Source</th>
+ <th align=left>Memo</th>
+ <th align=left>Amount</th>
+ </tr>
+ <%end paid%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td><%paymentmemo%></td>
+ <td><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid%>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <%end paid%>
+
+ <tr height=10></tr>
+
+ <%if taxincluded%>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <th colspan=3 align=left><font size=-2>Taxes shown are included in price.</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/French-ap_transaction.tex b/templates/French-ap_transaction.tex
new file mode 100755
index 00000000..8bfd9f79
--- /dev/null
+++ b/templates/French-ap_transaction.tex
@@ -0,0 +1,125 @@
+\documentclass[10pt,letterpaper,oneside,onecolumn]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+\centerline{\textbf{A P} \hspace{0.3cm} \textbf{T R A N S A C T I O N}}
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+<%end contact%>
+
+\vspace{0.2cm}
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Invoice \#} & <%invnumber%> \\
+ \textbf{Date} & <%invdate%> \\
+ \textbf{Due} & <%duedate%> \\
+ \textbf{Order \#} & <%ordnumber%> \\
+ \textbf{Employee} & <%employee%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabularx}{.5\textwidth}[t]{@{}llrl@{}}
+<%foreach amount%>
+ <%accno%> & <%account%> & <%amount%> & <%projectnumber%> \\
+<%end amount%>
+
+ \multicolumn{2}{r}{\textbf{Subtotal}} & <%subtotal%> & \\
+<%foreach tax%>
+ \multicolumn{2}{r}{\textbf{<%taxdescription%> @ <%taxrate%> \%}} & <%tax%> & \\
+<%end tax%>
+
+ \multicolumn{2}{r}{\textbf{Total}} & <%invtotal%> & \\
+
+\end{tabularx}
+<%notes%>
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100 <%currency%>
+
+\vspace{0.3cm}
+
+<%if paid%>
+\begin{tabular}{@{}llllr@{}}
+ \multicolumn{5}{c}{\textbf{Payments}} \\
+ \hline
+ \textbf{Date} & & \textbf{Source} & \textbf{Memo} & \textbf{Amount} \\
+<%end paid%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%paymentmemo%> & <%payment%> \\
+<%end payment%>
+<%if paid%>
+\end{tabular}
+<%end paid%>
+
+\end{document}
+
diff --git a/templates/French-ar_transaction.html b/templates/French-ar_transaction.html
new file mode 100755
index 00000000..22833384
--- /dev/null
+++ b/templates/French-ar_transaction.html
@@ -0,0 +1,237 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>A R - T R A N S A C T I O N</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Invoice #</th>
+ <td><%invnumber%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Date</th>
+ <td><%invdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Due</th>
+ <td><%duedate%></td>
+ </tr>
+ <tr>
+ <th align=left>Order #</th>
+ <td><%ordnumber%>&nbsp;</td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Salesperson</th>
+ <td><%employee%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=50%>
+ <table>
+ <%foreach account%>
+ <tr valign=top>
+ <td><%accno%></td>
+ <td><%account%></td>
+ <td align=right><%amount%></td>
+ <td><%projectnumber%></td>
+ </tr>
+ <%end account%>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Subtotal</th>
+ <td align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=2 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ </table>
+ </td>
+ <td width=50%>
+ <%notes%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <tr>
+ <td>&nbsp;</td>
+
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%text_amount%> ***** <%decimal%>/100 <%currency%>
+ </td>
+ </tr>
+
+ <%if paid%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <tr>
+ <th>Payments</th>
+ </tr>
+
+ <tr>
+ <td>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=left>Date</th>
+ <th align=left>Account</th>
+ <th align=left>Source</th>
+ <th align=left>Memo</th>
+ <th align=left>Amount</th>
+ </tr>
+ <%end paid%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td><%paymentmemo%></td>
+ <td><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid%>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <%end paid%>
+
+ <tr height=10></tr>
+
+ <%foreach tax%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <th colspan=9 align=left><font size=-2><%taxdescription%> Registration <%taxnumber%></th>
+ </tr>
+ <%end tax%>
+
+ <%if taxincluded%>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <th colspan=3 align=left><font size=-2>Taxes shown are included in price.</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/French-ar_transaction.tex b/templates/French-ar_transaction.tex
new file mode 100755
index 00000000..654d2b95
--- /dev/null
+++ b/templates/French-ar_transaction.tex
@@ -0,0 +1,131 @@
+\documentclass[10pt,letterpaper,oneside,onecolumn]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+\centerline{\textbf{A R} \hspace{0.3cm} \textbf{T R A N S A C T I O N}}
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+<%end contact%>
+
+\vspace{0.2cm}
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Invoice \#} & <%invnumber%> \\
+ \textbf{Date} & <%invdate%> \\
+ \textbf{Due} & <%duedate%> \\
+ \textbf{Order \#} & <%ordnumber%> \\
+ \textbf{Employee} & <%employee%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabularx}{.5\textwidth}[t]{@{}llrl@{}}
+<%foreach amount%>
+ <%accno%> & <%account%> & <%amount%> & <%projectnumber%> \\
+<%end amount%>
+
+ \multicolumn{2}{r}{\textbf{Subtotal}} & <%subtotal%> & \\
+<%foreach tax%>
+ \multicolumn{2}{r}{\textbf{<%taxdescription%> @ <%taxrate%> \%}} & <%tax%> & \\
+<%end tax%>
+
+ \multicolumn{2}{r}{\textbf{Total}} & <%invtotal%> & \\
+
+\end{tabularx}
+<%notes%>
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100 <%currency%>
+
+\vspace{0.3cm}
+
+<%if paid%>
+\begin{tabular}{@{}llllr@{}}
+ \multicolumn{5}{c}{\textbf{Payments}} \\
+ \hline
+ \textbf{Date} & & \textbf{Source} & \textbf{Memo} & \textbf{Amount} \\
+<%end paid%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%paymentmemo%> & <%payment%> \\
+<%end payment%>
+<%if paid%>
+\end{tabular}
+<%end paid%>
+
+\vspace{0.5cm}
+
+<%foreach tax%>
+\textbf{\small{<%taxdescription%> Registration <%taxnumber%>}} \\
+<%end tax%>
+
+\end{document}
+
diff --git a/templates/French-balance_sheet.html b/templates/French-balance_sheet.html
new file mode 100755
index 00000000..56748d69
--- /dev/null
+++ b/templates/French-balance_sheet.html
@@ -0,0 +1,109 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional">
+
+<html>
+
+<head>
+
+<title>Bilan</title>
+<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+
+</head>
+
+<body bgcolor=ffffff>
+
+<h2 align=center>
+<%company%>
+<br><%address%>
+
+<p>BILAN DE VÉRIFICATION
+<br><%period%>
+</h2>
+
+<table border=0>
+<tr>
+ <th align=left width=400 colspan=2>ACTIF<br><hr align=left width=250 size=5 noshade></th>
+ <th><%this_period%></th>
+ <th><%last_period%></th>
+</tr>
+
+<%foreach asset_account%>
+<tr>
+ <td> </td>
+ <td><%asset_account%></td>
+ <td align=right><%asset_this_period%></td>
+ <td align=right><%asset_last_period%></td>
+</tr>
+<%end asset_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>Total Actif</th>
+ <td align=right><%total_assets_this_period%><hr noshade size=2></td>
+ <td align=right><%total_assets_last_period%><hr noshade size=2></td>
+</tr>
+
+<tr>
+ <th align=left colspan=4>PASSIF<b><hr align=left width=250 size=5 noshade></th>
+</tr>
+
+<%foreach liability_account%>
+<tr>
+ <td></td>
+ <td><%liability_account%></td>
+ <td align=right><%liability_this_period%></td>
+ <td align=right><%liability_last_period%></td>
+</tr>
+<%end liability_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td></td>
+ <th align=left>Total Passif</th>
+ <td align=right><%total_liabilities_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_liabilities_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr>
+ <th align=left colspan=4>BENEFICES NON DISTRIBUÉS<br><hr align=left width=250 size=5 noshade></th>
+</tr>
+
+<%foreach equity_account%>
+<tr>
+ <td></td>
+ <td><%equity_account%></td>
+ <td align=right><%equity_this_period%></td>
+ <td align=right><%equity_last_period%></td>
+</tr>
+<%end equity_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td></td>
+ <th align=left>Total Capital</th>
+ <td align=right><%total_equity_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_equity_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>TOTAL PASSIF & CAPITAL</th>
+ <td align=right><%total_this_period%><br><hr noshade size=2></td>
+ <td align=right><%total_last_period%><br><hr noshade size=2></td>
+</tr>
+</table>
+</body>
+</html>
diff --git a/templates/French-bin_list.html b/templates/French-bin_list.html
new file mode 100755
index 00000000..24440675
--- /dev/null
+++ b/templates/French-bin_list.html
@@ -0,0 +1,189 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <th align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>B I N &nbsp;&nbsp; L I S T</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% cellspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>From</th>
+ <th align=left width=50%><font color=ffffff>Ship To</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+
+ <%if vendorphone%>
+ <br>Tel: <%vendorphone%>
+ <%end vendorphone%>
+
+ <%if vendorfax%>
+ <br>Fax: <%vendorfax%>
+ <%end vendorfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+
+ <br>
+ <%if shiptocontact%>
+ <br>Attn: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Order #</th>
+ <th width=17% align=left nowrap>Date</th>
+ <th width=17% align=left nowrap>Contact</th>
+ <%if warehouse%>
+ <th width=17% align=left nowrap>Warehouse</th>
+ <%end warehouse%>
+ <th width=17% align=left>Shipping Point</th>
+ <th width=15% align=left>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%>&nbsp;</td>
+
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%orddate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+
+ <%if warehouse%>
+ <td><%warehouse%></td>
+ <%end warehouse%>
+
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Pos</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Serialnumber</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Qty</th>
+ <th><font color=ffffff>Recd</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Bin</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%></td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td><%serialnumber%></td>
+ <td><%deliverydate%></td>
+ <td align=right><%qty%></td>
+ <td align=right><%ship%></td>
+ <td><%unit%></td>
+ <td><%bin%></td>
+ </tr>
+ <%end number%>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+</table>
+
diff --git a/templates/French-bin_list.tex b/templates/French-bin_list.tex
new file mode 100755
index 00000000..3d6052f9
--- /dev/null
+++ b/templates/French-bin_list.tex
@@ -0,0 +1,147 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Recd} & & \textbf{Bin} \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.5\textwidth}{
+\textbf{From}
+\vspace{0.7cm}
+
+<%name%>
+
+<%address1%>
+
+<%if %address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country4%>
+<%end country%>
+}
+\parbox[t]{.4\textwidth}{
+\textbf{Ship To}
+\vspace{0.7cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%if shiptoaddress2%>
+<%shiptoaddress2%>
+<%end shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%if shiptocountry%>
+<%shiptocountry%>
+<%end shiptocountry%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{B I N} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Date} & \textbf{Contact}
+ <%if warehouse%>
+ & \textbf{Warehouse}
+ <%end warehouse%>
+ & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+
+ <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%orddate%>
+ <%end shippingdate%>
+ & <%employee%>
+ <%if warehouse%>
+ & <%warehouse%>
+ <%end warehouse%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Recd} & & \textbf{Bin} \\
+
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%serialnumber%> &
+ <%deliverydate%> & <%qty%> & <%ship%> & <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabularx}
+
+
+\rule{\textwidth}{2pt}
+
+\end{document}
+
diff --git a/templates/French-check.tex b/templates/French-check.tex
new file mode 100755
index 00000000..6742b5b5
--- /dev/null
+++ b/templates/French-check.tex
@@ -0,0 +1,75 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.4cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.0cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+
+\fontfamily{cmss}\fontsize{9pt}{9pt}\selectfont
+
+\parbox[t]{12cm}{
+ <%company%>
+
+ <%address%>}
+\hfill
+\parbox[t]{6cm}{\hfill <%source%>}
+
+\vspace*{0.6cm}
+
+<%text_amount%> \dotfill <%decimal%>/100 \makebox[0.5cm]{\hfill}
+
+\vspace{0.5cm}
+
+\hfill <%datepaid%> \makebox[2cm]{\hfill} <%amount%>
+
+\vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{2.8cm}
+
+<%company%>
+
+\vspace{0.5cm}
+
+<%name%> \hfill <%datepaid%> \hfill <%source%>
+
+\vspace{0.5cm}
+\begin{tabularx}{\textwidth}{lXrr@{}}
+\textbf{Invoice No.} & \textbf{Invoice Date}
+ & \textbf{Due} & \textbf{Applied} \\
+<%foreach invnumber%>
+<%invnumber%> & <%invdate%> \dotfill
+ & <%due%> & <%paid%> \\
+<%end invnumber%>
+\end{tabularx}
+
+\vfill
+
+\end{document}
+
diff --git a/templates/French-income_statement.html b/templates/French-income_statement.html
new file mode 100755
index 00000000..e76df09a
--- /dev/null
+++ b/templates/French-income_statement.html
@@ -0,0 +1,86 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional">
+
+<html>
+
+<head>
+
+<title>Compte de Résultat</title>
+<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+
+</head>
+
+<body bgcolor=ffffff>
+
+<h2 align=center>
+<%company%>
+<br><%address%>
+
+<p>Compte de Résultat
+<br><%period%>
+</h2>
+
+
+<table width=100% border=0>
+<tr>
+ <th width=400 align=left colspan=2>RECETTES<br><hr width=300 size=5 align=left noshade></th>
+ <th><%this_period%></th>
+ <th><%last_period%></th>
+</tr>
+
+<%foreach income_account%>
+<tr>
+ <td width=4> </td>
+ <td><%income_account%></td>
+ <td align=right><%income_this_period%></td>
+ <td align=right><%income_last_period%></td>
+</tr>
+<%end income_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td> </td>
+ <th align=left>Total Recettes</th>
+ <td align=right><%total_income_this_period%><hr noshade size=2></td>
+ <td align=right><%total_income_last_period%><hr noshade size=2></td>
+</tr>
+
+<tr>
+ <th align=left colspan=2>DÉPENSES<br><hr width=300 size=5 align=left noshade></th>
+</tr>
+
+<%foreach expense_account%>
+<tr>
+ <td> </td>
+ <td><%expense_account%></td>
+ <td align=right><%expenses_this_period%></td>
+ <td align=right><%expenses_last_period%></td>
+</tr>
+<%end expense_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td> </td>
+ <th align=left>Total Dépenses</th>
+ <td align=right><%total_expenses_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_expenses_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>BENEFICES / PERTES (en <%currency%> )</th>
+ <td align=right><%total_this_period%><br><hr noshade size=2></td>
+ <td align=right><%total_last_period%><br><hr noshade size=2></td>
+</tr>
+
+</table>
+</body>
+</html>
diff --git a/templates/French-invoice.html b/templates/French-invoice.html
new file mode 100755
index 00000000..69cae565
--- /dev/null
+++ b/templates/French-invoice.html
@@ -0,0 +1,318 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional">
+
+<html>
+
+<head>
+
+<title>A2A <%invnumber%> <%name%></title>
+<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+
+</head>
+
+<body bgcolor="ffffff">
+
+<table width="100%">
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width="100%">
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <td align=right>
+ <h4>
+ Tél&nbsp;: <%tel%>
+ <br>Fax&nbsp;: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>F A C T U R E</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width="100%" cellspacing=0 cellpadding=0>
+
+ <tr>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Date de facture</th><td width=10>&nbsp;</td><td><%invdate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Date d'échéance</th><td width=10>&nbsp;</td><td><%duedate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>N° de facture</th><td>&nbsp;</td><td><%invnumber%></td></tr>
+ </tr>
+
+<!--
+ <tr>
+ <th align=right>Correspondant</th><td>&amp;nbsp;</td><td><%employee%></td>
+ </tr>
+-->
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+ </td>
+ </table>
+ </tr>
+
+ <tr>
+ <td>
+ <table width="100%">
+ <tr bgcolor="000000">
+ <th align=left><font color=ffffff>Adresse de facturation</font></th>
+ <th align=left><font color=ffffff>Adresse d'envoi</font></th>
+ </tr>
+
+<!--
+ d'autres variables pouvant être utilisées ici :
+ contact, shiptocontact, shiptophone, shiptofax
+-->
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+<br><%address2%>
+<%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+<%country%>
+<%end country%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+<br><%shiptoaddress2%>
+<%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+<%shiptocountry%>
+<%end shiptocountry%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width="100%">
+ <tr bgcolor="000000">
+<!-- <th align=right><font color="ffffff">N°</font></th> -->
+ <th align=left><font color="ffffff">N°</font></th>
+ <th align=left><font color="ffffff">Description</font></th>
+ <th><font color="ffffff">Qté</font></th>
+ <th>&nbsp;</th>
+ <th><font color="ffffff">Prix</font></th>
+ <th><font color="ffffff">Remise</font></th>
+ <th><font color="ffffff">Montant</font></th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+<!-- <td align=right><%runningnumber%>.</td>
+veuillez adapter le colspan si vous comptez inclure ce poste.
+ceci permettra de décaler le poste sous-total vers la gauche.
+-->
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discount%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+<%end number%>
+
+<!--
+vous pouvez également utiliser netprice à la place de sellprice
+si vous ne voulez pas afficher la remise
+netprice = sellprice - discount
+to show the percentage for a discount use <%discountrate%>
+-->
+
+ <tr>
+ <td colspan=7><hr noshade></td>
+ </tr>
+
+ <tr>
+<%if taxincluded%>
+ <th colspan=5 align=right>Total</th>
+ <td colspan=2 align=right><%invtotal%></td>
+<%end taxincluded%>
+<%if not taxincluded%>
+ <th colspan=5 align=right>Sous-total</th>
+ <td colspan=2 align=right><%subtotal%></td>
+<%end taxincluded%>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=5 align=right><%taxdescription%></th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+<%end tax%>
+
+<%if paid%>
+ <tr>
+ <th colspan=5 align=right>Déjà payé</th>
+ <td colspan=2 align=right>- <%paid%></td>
+ </tr>
+<%end paid%>
+
+ <tr>
+ <td colspan=3>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=3>À régler dans <b><%terms%></b> jours au plus tard.</td>
+ <th colspan=2 align=right>Solde à régler</th>
+ <th colspan=2 align=right><%total%></th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width="100%">
+ <tr valign=top>
+<%if notes%>
+ <td>À noter&nbsp;:</td>
+ <td><%notes%></td>
+<%end notes%>
+ <td align=right>
+ Tous prix indiqués en <b><%currency%></b>
+ <br><%shippingpoint%>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<%if paid%>
+<tr>
+ <td colspan=7>
+ <table width="60%">
+ <tr>
+ <th align=left>Détail règlements</th>
+ </tr>
+ <tr>
+ <td colspan=4>
+ <hr noshade>
+ </td>
+ </tr>
+ <tr>
+ <th align=left>Date</th>
+ <th align=left>Compte</th>
+ <th align=left>Source</th>
+ <th align=left>Montant</th>
+ </tr>
+<%end paid%>
+
+<%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td><%payment%></td>
+ </tr>
+<%end payment%>
+
+<%if paid%>
+ </table>
+ </td>
+</tr>
+
+<tr>
+ <td>&nbsp;</td>
+</tr>
+<%end paid%>
+
+<tr>
+ <th colspan=7>
+ <!-- <br>Merci beaucoup&amp;nbsp;! -->
+ </th>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width="100%">
+ <tr valign=top>
+ <td><font size=-3>
+ &nbsp;
+ </td>
+ <td width=150>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+<!-- <%foreach tax%>
+ <tr>
+ <th colspan=7 align=left><font size=-2><%taxdescription%> Numéro de TVA <%taxnumber%></font></th>
+ </tr>
+<%end tax%> -->
+
+<%if taxincluded%>
+ <tr>
+ <th colspan=7 align=left><font size=-2>Les taxes affichés sont inclus dans le prix.</font></th>
+ </tr>
+<%end taxincluded%>
+
+<!-- business number
+ <tr>
+ <th colspan=7 align=left><font size=-2>Régistre de Commerce&amp;nbsp;: <%businessnumber%></font></th>
+ </tr>
+-->
+
+<!-- information banquaire -->
+ <tr><td>
+ <h6><center>N° TVA&nbsp;: &nbsp;&nbsp;Banque&nbsp;: &nbsp;&nbsp;N° de compte&nbsp;: &nbsp;&nbsp;Code SWIFT&nbsp;: </center>
+ </h6>
+ </td>
+ </tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
diff --git a/templates/French-invoice.tex b/templates/French-invoice.tex
new file mode 100755
index 00000000..930872f9
--- /dev/null
+++ b/templates/French-invoice.tex
@@ -0,0 +1,155 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage[frenchb]{babel}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rr@{}}
+ Téléphone & <%tel%>\\
+ Télécopieur & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%invnumber%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+<%pagebreak 65 27 37%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Sous-total} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markright{<%company%>\hfill <%invnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Numéro} & \textbf{Description} & \textbf{Qté} &
+ \textbf{Unité} & \textbf{Prix} & \textbf{Remise} & \textbf{Montant} \\
+ & reporté de la page <%lastpage%> & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{2cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{3.5cm}
+
+\textbf{F A C T U R E}
+\hfill
+\begin{tabular}[t]{l@{\hspace{0.3cm}}l}
+ \textbf{Date de facturation} & <%invdate%> \\
+ \textbf{Numéro de facture} & <%invnumber%> \\
+ \textbf{Numéro de client} & <%customer_id%>
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Numéro} & \textbf{Description} & \textbf{Qté} &
+ \textbf{Unité} & \textbf{Prix} & \textbf{Remise} & \textbf{Montant} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%discount%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Sous-total} & \textbf{<%subtotal%>} \\
+<%foreach tax%>
+ <%taxdescription%> de <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ \textbf{Total} & \textbf{<%total%>}\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ Tous les prix indiqués sont en \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+\vfill
+\centerline{\textbf{Merci de faire affaire avec nous!}}
+
+\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+\footnotetext[1]{\tiny
+Le paiement doit être acquitté au plus tard <%terms%> jours à partir de
+la date de facturation. Des intérêts seront perçus à raison de 1.5\% par
+mois après <%duedate%> jusqu'à ce que le paiement soit complet. Les
+éléments retournés seront sujets à un supplément de remmagasinnage de
+10\%. Une autorisation de renvoi doit être obtenue au préalable auprès de
+<%company%>. Les frais de transports et d'assurance sur les éléments
+retournés devront être couvert par le client de façon appropriée.
+<%company%> ne peut être tenue responsable des dommages survenus pendant
+le transit.}
+
+\end{document}
diff --git a/templates/French-logo.eps b/templates/French-logo.eps
new file mode 100755
index 00000000..3a22b2ff
--- /dev/null
+++ b/templates/French-logo.eps
@@ -0,0 +1,1334 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: GIMP PostScript file plugin V 1.17 by Peter Kirchgessner
+%%Title: Brazilian_Portuguese-logo.eps
+%%CreationDate: Thu Aug 31 19:25:05 2006
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 2
+%%Pages: 1
+%%BoundingBox: 14 14 415 215
+%%EndComments
+%%BeginProlog
+% Use own dictionary to avoid conflicts
+10 dict begin
+%%EndProlog
+%%Page: 1 1
+% Translate for offset
+14.173228346456694 14.173228346456694 translate
+% Translate to begin of first scanline
+0 199.99842519685043 translate
+399.99685039370081 -199.99842519685043 scale
+% Image geometry
+400 200 8
+% Transformation matrix
+[ 400 0 0 200 0 0 ]
+% Strings to hold RGB-samples per scanline
+/rstr 400 string def
+/gstr 400 string def
+/bstr 400 string def
+{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop}
+true 3
+%%BeginData: 80402 ASCII Bytes
+colorimage
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+fDblg6K\=Q"WB-W4?Pdo4p6+l]&ih]rrrDpij);hp&GL',"Q[#Lmt]mi:-UBo)Ajlp>C')q#Ca-
+0OT-[R^UZ0q#:3k!rftBr;[*-4`Pt>]\`;[p&>'%-iO)I,T-[I!!OC1jn&BKnc&dlp#<8P%e]l2
+"!U9TI#+8tb2Ddcrq6:-g3RO66TZkO/89R1ak>G'lMCDUrVc`p_uG5~>
+fDc3-AgAK<(`*r''GKsK"r/C?3]oMfm61YtOLjQNo`#*op#<8P%e]l2"!U9TI#+8tb2Ddcrpp'l
+rq>8m&GZ;5#V]Y2L75R!lM1AVrrW28$N0r1#!HsURCqDKrq69l[jV.T![JWbkPtc,R-!r:rpg!l
+rq59V:(Hst$j.\EE.!J2ZHD+pqYp0f(YX1N<'rc'0emR!XjZ4ijR;sBr;HTnrknbd~>
+fDc6;J3>hE.46Gg,U"<#*sNl<2EEr_4mbE9G`]Muqt0mlrq59V:(Hst$j.\EE.!J2ZHD+pqYp'c
+"TJ,QFV+?K$4&=nG_VZqdd$W,r;Qit^^C#?#R3G3J!mt+o`"O`!OjHU!!4D`!pBUf*LPs[qu6-c
+"oe2SZ;(o'!"8rR88rs4S$L2pnG<.WrtjC8CK*Y`2)R41LpG[tlg+-<qu$Ekrr0h8J,~>
+gA_6CM^RKa#SJU[Cl4ICR$dH4"J2pKnc&.[#laS]ca8*s2'Dku%L*7S1/_:`E/L-e^<lNJn,*ps
+lGB9$.1d!s#n@h2C5&"Yb2DgerqcX(q78g7,slHqMPJ)Jp&4[cs*k'%9)\er&Pd:_DG`D6!pTal
+;j3B4I=8["q>L$e)ZKKoca5M5$jR7P',DcW=EAnFP+oA,h<ak4r;@'%mG5jnSV:rb4tRZYo)K.6
+.77QqVp"]-r;HW:s*t~>
+gA_WSXCb's7mAmd0J>%2/aY(p3(dS&NKf`rR.?XJT!Hl9rq$..rqGU%[!bb.+:/;Z%M^0O>@_Mp
+OJ9/'f_#".r"](qb,Jl)'b_,j)_+BrKpT$di:6^DqYq$#\j.Db6>_(,UVl'`rV6EmU]HuXrW!3>
+=ES\+<]_9&l2V,jVQ@/!U<E9+rV$70rqGU%Zq25S%MBBi(a_LMF+&e+U:&/"m.U>Sr=/\qk1@he
+W0`?`B2UiFr@A%'1d4D,8ded6G`JT6f_#";rVjq=J,~>
+gA_WV`KPh&H>[%h;Gg7d:@1a]<FBcqNg,isR.?XJT!Hl9rq$..rqGU%[!bb.+:etm&f`Dk@V^"7
+Q)D4<h=UO3r"](rd'%+>(`!f$,WA_DKpT$di:6^DqYq$#\j.Db6>_(,UVl'`rV6Em^B(K0rW!3B
+@!Hj=>!*c+l2V,lZbFJn^"N,TrV$70rqGU%Zreh$',D<")CRjQF+&e+U:&/"m.U>Sr=/\tmGcjE
+_7$G9OF(D5rCmAj>ASW`J.%6uT<>oSiV!$ErVjq=J,~>
+h#@HEIh:?7#Tc9FPJ##]c-H(0"4GulqXORjrqc-Bc+C!IjT#8`m/R?)T"N_Cq#1!f%/obL[[`MH
+U:8M5p\spee,TVcf]W#.pAY9pqXED]p&G=-'G_N()]Tmq*WQH&!!iZW>`-Jlq#(-9s*t~>
+h#@HJUfI@c"%YgF4l\X1;/(]X^WF^EcM,WedbO6dnc'C(qXEFf];hGR.Olks.P*2,2*!ie7S*/D
+!)3/["\;$E2D?]].L7OVFe67umJ-YTrs\ksfX@<5QD1k8kkG)Nrt@jG!<<*#(b-sc0JtaF0Ie1Z
+$3BMo#oYim84nopkP+uLrtbV1nDI&"0eP",.Ochs/1rtM85<,d>l%b,:\RH`84>d,rB(0F5Xe6:
+8dJ+(MQ5+sq#(-9s*t~>
+h#@HM^PMi="+56/C#`k4FbQ3b_9'pGcM,WedbO6dnc&ppqXEFf];hGq8cD6f8P;iZ>@VDgG^Y)7
+J,k2sJ.d?ZFD5#[9h@lH8ksi,]\)WHrV6C$rUSULS<B24\'X@5rqHF+H9;6/!!+Q@7nZfd?<U9"
+2^8k8m/RGEAorHOWS$D.rq??urqc-BFC%sC91f+R$;!ld>@_PnIYEZ=qi1Z0pOE?oG].?qBEN!f
+G^]78#_J8?^teSWr;Ot@J,~>
+h>[MB'\!*i,YiZYa62mZnF?&JncSOYqu6'a#Q=GfkM4KR)UeZi*-S.$mJQYW$N0GOcGmrTj73!F
+p\t6"ec5mb/8hc?meueX"TA*n,R_Hh#7aOmh":IArmCar~>
+h>[M`=SbYi8,u0:7LELMS$gZ-mdKZ8nc&(]o_87^n,EXkq!mP&dV;DR3!VH*4[;>&7nDf8%S9,W
+5<Lqc3BBc^Us&0'p&>Bsn__X3aOK8?qYp6h!OE+3!##DT-n$]+5!hV'5!1e]0J"C`$j,nu#UVT+
+?\Yl5meueX#Q=FJ>Xpq<3W:uC3BKAh6:FC8lq.=N84WVJ!_5dQmn*g`J?Io(qYgE@s*t~>
+h>[N!MYho*Isl\"H4#P$Zc1S]mdKZ8nc&(]o_87^n,F("q!mP&dY;XJ@:E_XBl7s8H[^J.J.@!Q
+F)5K!@U`kaL8<#[r:U'sr:/[i`lQZinbW7ZrrKG;rW!T71dso2?>FS'EGT5p>#S'T-5?[R!!rZm
+AU&loZI&%<o`#U'pn<@]Bk:d_@:E_XBl7s8H[^J4J-(4LI/A3kI"$S7J-Uh)_rgUfrVk4EJ,~>
+hu<`75k=sc"VrFC5tXgF:/4DF.i/9O!!*]Ur]C="me$ATli.:jr:opKd%Y/9'&!<k"#=J;Ni^b$
+rq-3qrV,jMn+?JTpAY,>f)Q'a;0.S\XNp84o)Asihn"ng;)Ad$!!WNiQK@f9rmUmt~>
+hu<`@GOnE:9Mnkt@V0:fC2.Hn>Z4;[8dSO+F*)Mgme$ATli.Fnr:opKd&28#:.@`E8`E>N8Ou<>
+7TaSXNi^b$rq-3qrV,jMn+?JTpAY,>qu@NQ,q(K/6:XU>84Z3<69dRl1bgU.)%[&F!!j*8F,?6b
+cL1Z%rseb\\s@h_>t[RS7Rp!@b";k3FKjs$qYntDJ,~>
+hu<`GT_![<IscQgH[C/>IKP(MIt-[4!Jlg9S-6.co_SRQrso&+q"3gtWf)=NG^=adJ)l+hIsu`i
+GBS%NIZCMZo)A:]#Q=DemdKfErV$6kHi3pL!AZo0<+U)rrdG<'H$++DB44tC:-L3L%.jN*&m043
+Q`SL#rUTsuptrZOMLp5#G'A1WI"$RgJ-LRo_WgairmUmt~>
+i;Wha&G?)3"X69@G^kI,P*_]1rh'IfS=#7L5SE5[">J!QnGMJL#l<l9^9FDd9H)af#qBJ1L7#-c
+jnSiGs8Drirr@!8!!4`+#i,Ic89UN4bi8<po)B'omao@cYc+.?63tL0"V>7hnG)t4s*t~>
+i;Wi"<VB#m9N5D9G^kI,P*_]1rh'IfS=#CdBN""c"DGs4nGMJL#l<l9^9FDnE)tgf$!(hdL7#-c
+jnSiGs8Drirr@!8!!Y&=.ks.S8GYpg8Ou<=69dRm2)6d5*"E#D!!c&<S@?`%p&=O^$N'8C_mckK
+Sr%2W`(C25NR[ImrRLpu~>
+i;Wi2M"Z?,IsQ9]G^kI,P*_]1rh'IfS=#ItL4SN<"H^d\nGMJL#l<l9^9FE!MLs]8$$^E6L7#-c
+jnSiGs8Drirr@!8!!b/H79+#EI=M0F%tB%UH$44GBOY4I:e*2V!qu["89UN4bi8<po)B$nmao@c
+Yc+.WLr4`HL9'%tq#/bCJ,~>
+iVrn9p&GO<7W!I+P+J\^^;eCEe,@c%d`oeFZDDb'!pTag,b;X/qWIkdrqc0Li7?&`XFWVBirBDi
+9lbcMYfPVcpAO"N!/(1L";kW^EBr@\#!RdOh!Xn6nc'!rqXWt6i7cW"\Y):S!"&cA/3cp6C2SKO
+KDgH,J9#$l1DK9X"TqW;mJ$S2s*t~>
+iVrnZp.>ck@;pOIP+J\^^;eCEe,@c%d`oeFZDE@g9Bo+P>b/RgqWIkdrqc0Li7?&`XH.-lj%9YP
+@WI!bYfPVcpAO"N!/(1L"rLi`F'qF.oh#Wa84H$85Wq.e1Fs:Bq#CU_L:H%,pAFI\$i^"nlfI'Y
+d`8noDWsb":g%1=D00uNJV3oS"bM/FCg^008d.n<bO,'&fDg@~>
+iVrnsp4*U"FE;b_P+J\^^;eCEe,@c$d`oeFZDEhBl$rniS\=([kPkqhqXNh.f#kY,R>QRUJ-pdG
+Ee'I[aP?+TrSmhWKDY]R(h76%G^"W1J.7!WI!U!XDe`ij=A("Cq#CU_L:H%,pAFI\$i^"nlfI'Y
+d`8nsNp2'#I!U'`H[L9mJV3fP!J>skJ-CLtdd?f-fDg@~>
+ir9!spAb^?;KRDLTsM\cguRbgo(;VSp'^Qco'Yc%fZLdo7Ki&X"<E/rh"^"2$i^)#p@.8#cFooT%
+d!`u!`F)pUr;*Wq#(-NrrL.Cqu?puFHE]?JdCT@!=T>3!!P?@^Ztarn,NFe$N9o!q"4":g;nL?m
+f3e)/l6J6KT).cU8P&qZM_'8Za$U.SV:/k!q?6o"'3Y5q#/nGJ,~>
+ir9"HpIYrnA9<<^TsM\cguRbgo(;VSp'^Qco'Yc%fZLduDbTLi"B:&Th"^"2$i^)#p@.8#cFp'#
+;<:CVA93O%`80kVr;P^U!QP?@!!Z;BOKZBc:@Up_8Ou?@6pX!s/dhFT"ZVIUlMUYMs8W'*rVZNe
+o^:kqaHB6c8e"NtATN6PN0Kj,VlR#,r3Qa9Z)jdmNceQ!nO`sYK$s&]rRq4$~>
+ir9"fpOEd$EccelTsM\cguRbgo(;VSp'UKbo'Yc%fZLe&NpD2uI>"ZVpuVM`rquWdnE8TP]r@0H
+ja[YVF,-R0h<t(9ro3qY`ru;?##TK(YJ-renph'sIXHKeF`;))8.,1n"ZVIUlMUYMs8W')rVZNe
+o^:kqaJJ<T%=WPDFaSk$PanJGX08i,Zj3qBXJMJOMM(DK"bEE!mJ-Y5s*t~>
+j8T+/p](g,5&bn2VnUU<m.C)NrVlflrsA]'qY'F@fZ'=>m/R8.I&>WmiVs5`r:ojHg;p9k"R#gj
+/ocWFcKY*%hu<[5qu@!=E/1aQlJS-;lMq#'>>b\&!!G<<]''%TrrrE"p[6mkmf3eaEIa7KZG+E,
+f%Ss<iqqdCini>8aLn[:8e(:j"Uoe:nG<.=s*t~>
+j8T+Tpdu&i?>t:RVnUU<m.C)NrVlflrsA]'qY'F@fZ'_$m7ILZI&>WmiVs5`r:ojHg;pF@9^#(R
+=E0(pcKY*%hu<[5qu@!=E/1aQlJSa>m7IOQ7nd5e#5\B'3Jb90rTF1arquNYhOa1.%:=+*PGGLu
+aO&Mlh;I;ij9ai&f[7dQY*X*(nO`s^Rc*]3rnII'~>
+j8T+opj`m)FDuVhVnUU<m.C)NrVlflrsA]'qY'F@fZ'tOm=>4a!iF]HiVs5`r:ojHg;pR`J`qUh
+G&`89cKY*%hu<[5qu@!=E/1aQlJT4*mXPLjI=$!B;?m!u"?D:LkPaTD"oeGombY5;J.6R>J<Qe7
+^<"[Pg>1]HqrA(ChUp5s]WRfaK(4?pKWsD(qYo7LJ,~>
+jSo4Pp]([*;KIM`][l<<qYgE_rs/Q#p?^YWLDTCZ"<2`cgA'P)#QFYqmblB\-0YC6>'usdm/$_=
+rrBP*!!kT/R`b'rq!(]B!!Ea>Fbj)q!!G98[cRGJrr`5pkZ@6R$q,K5^XhE/n+?>Kq>0sc$iBep
+o^D##d_Vqg$1Ruu1qr/HrS7F'~>
+jSo4lpdtofA93Er][l<<qYgE_rs/Q#p?^YWRTJrM"B'WEgA'P)#QFYqmblBh?g1/eApg5pm/$_=
+rrBP*!!kT/R`b'rq!*=p8d%n&Fbj)q!!G98[cRGJrr`5pk_&@s$t+IQ^XhE/n+?>Kq>0sc$iBep
+o^D##d_W#4:[q$[C;oB0rS7F'~>
+jSo5+pj`a%E-$])][l<<qYgE_rs/Q#p?^YWVhOSis*OmFgA'P)#QFYqmblBpMWoWqE.";%m/$_=
+rrBP*!!kT/R`b'rq!+O=J-::;Fbj)q!!G98[cRGJrr`5pkbIWt%!?rf^XhE/n+?>Kq>0sc$iBep
+o^D##d_W)NK(4?oP02t]rS7F'~>
+jo5A)"Si$(!`*lnWQXDqqu5m\"o\5`gq6>M!!F6gVV:h"rrrAsnDM>llMq(oE/M0dqVD/O@/Bp0
+:4TD#q#CBc$g[ir:N_`*_YX<98;=S8r8[eZrqbC[nGie`KsKM+qYgE`rs8W%q=En-bcF/$!!Emu
+hXUO"s*t~>
+jo5A8:&%<d@WR@)bN8Bnrp'LerV5d8^NT*="B'WEgA'G&"o\8di5gH78d.n-MR_aDh>[I_qZ$ms
+J?.K#s8Vailq.CiFcWoHqZ$aiL:67Bj8T5\qVbBC8dAgZZJ>*KrVl?e#labtoBP/UY]'&("B;;U
+nbh5CJ,~>
+jo5ACK(sj%EH?r8bN8Bnrp'LerV5d8_Ns\As*OmFgA'G&"o\8di5qMTJ-CC@MR_aDh>[I_qZ$ms
+J?.K#s8VhIm!o4YFcWoHqZ$aiL:67Bj8T5\qW*D$J-U7OZJ>*KrVl?e#labtoBP/U[#jg."GO5>
+nbh5CJ,~>
+k5PJR,kq?E0QDiId-UW.k5PV`pZg:]#k@ru)gnO:pt>ZLrV5d'lMq))FI()<rn[SS./NuL;i%sG
+r;Zf#li724E/(OJn,!(f@Z%e]rSdbWq.K3t"@e6Zkl'iI#QF\snD_`I&Fof)!cuoZqYoCPJ,~>
+k5PJUAGAb%=`K1rd-UW.k5PV`pZg:t:@_![;LG@qpt>ZLrV5d,lUh=XFI()<rn[SS./NuL;i%sG
+r;Zf:lq.F\E/(OJn,!(f@Z%e]rSdbWq2t2>"Cd5!kl'iI#QF\snD_`^;t<Na99@]kqYoCPJ,~>
+k5PJXP5'P4G&`8:d-UW.k5PV`pZg;0K(=HlHig2!pt>ZLrV5d/l[T.cFI()<rn[SS./NuL;i%sG
+r;ZfKm!o7bE/(OJn,!(f@Z%e]rSdbWq60=="EoX5kl'iI#QF\snD_`mK^jQqV:Fu0rnma+~>
+k5PF"p](L*BRZZ!mJGrD"oeDjiMmgf!!F0eVV:gsrrN&8lMq&+H(`XZh#@?rqZ$k"N5+ZVs8Q?j
+!!Q)BSBL?equ?m=Eg"B.ro*kXrl=O/"@e9\kl'`F"o\8dhQ\Bs!!HlYlM:G;s*t~>
+k5PFLpdt`bCOVu$mJGrD"oeDjiO)k\8d&%>VV:gsrrN&GlUh:XH(`XZh#@?rqZ$k"N5+ZVs8S#D
+8d/[LSBL?equ?m=Eg"B.ro*kXrmgO2"Cd8#kl'`F"o\8dhR[+b8d'molM:G;s*t~>
+k5PFjpj`QtDLS;'mJGrD"oeDjiP(->JH'uuVV:gsrrN&Rl[T+bH(`XZh#@?rqZ$k"N5+ZVs8T7g
+J-Bt=SBL?equ?m=Eg"B.ro*kXro!<s"Eo[7kl'`F"o\8dhS>'>J-;FglM:G;s*t~>
+kPkS3"S_s#20=tpk5+$9"TJ2]^*iOQ":fgUf_F%t!35tt!'9TL";cE\f_=2$!$D(<#<RmZlM^bS%
+.+$!"`9"#i;'/G!!Q&BT[NK3i;WiT(@hG.7Z+hArT=+_rV5[#2XpbM@a"$3ro*m-~>
+kPkS@:&%<a>',n@k5+$9"TJ2]`a\R4"AX?@f_F%t!5e\,!*o"c"AsNAf_=2$!$D(<#<RmZlM^bV
+;XI'\9Q#Tki;'/G!!Q&BT[NK3i;WiT=n5/f@Z%e]rT=+_rV5[&D"1+#K$3ESro*m-~>
+kPkSIK(sj"F``b[k5+$9"TJ2]bDl.E"Fb`pf_F%t!7^st!-I^\"FPQlf_=2$!$D(<#<RmZlM^bY
+L@'KqIrC(Ji;'/G!!Q&BT[NK3i;WiTMXl9#G)EoqrT=+_rV5[)P4=&*R`jskro*m-~>
+kPkNYpAbA&J#Lukrnm_Yrql000(f2I%==l%p=B6DL]%2RB-$LB":TXQf_=2$!)ECk"qZO!jo#.R
+qu?^*nc/k8FHjf4nKe&5"X%c?[Ggu>rrN*rnc/e^MS&*Njo5J_qsi8tnGiZ+b3A`\s*t~>
+kPkO6pIYU&J#Lukrnm_Yrql04BD"k":4&bfp=B6DWr5NjCfU!t"AX<>f_=2$!)ECk"qZO!jo#.m
+r(6rank'*bFHjf4nKe&5"X%c?[Ggu>rrN+Nnk'$oMS&*Njo5J_qsi<VnO`n<b3A`\s*t~>
+kPkO\pOEEdJ#Lukrnm_Yrql06OS+,,IX@jAp=B6D_u5)dDgh/+"Fb]nf_=2$!)ECk"qZO!jo#/+
+r."crnpgpjFHjf4nKe&5"X%c?[Ggu>rrN+snpgjdMS&*Njo5J_qsi@(nUL_1b3A`\s*t~>
+kl1Y/pAb@.EK%Qnr7q;Sr:88hp&G4)HD/m_f)G_`rW!!*Ea8)6"*C6ep>#ZJV"t&p5cE<-r_37j
+!=D?f!!P$%U"&U2r;[$/@XF`ln,;,C!.j\@"@e9\kl'QA"9%lB.e3QB!e8G\qVqO*~>
+kl1Y=pIYTbEK%Qnr7q;Sr:8EPp.>H_HD/m_f)G`7r^m5cEcUYA"*^Hhp>#ZJV"t&p5cE<-rdar>
+!DQtm8d/@DU"&U2r;[$/@XF`ln,;,C!2]6Y"Cd8#kl'QA"9%lFAb&Fr99IHbqVqO*~>
+kl1YGpOEEpEK%Qnr7q;Sr:8L&p4*9pHD/m_f)G`WrdY'!Ee<e2"+$Zkp>#ZJV"t&p5cE<-rhfXE
+!If+\J-C.CU"&U2r;[$/@XF`ln,;,C!5J)T"Eo[7kl'QA"9%lHOR[i'T?QZuir=N~>
+kl1WbpAb@BG+-\GrnIGTrUeS^pAb=*H(`[\f)G_;rW!$:G*F0?!!?8jch#rl!V\&>!!H?;jlQ^E
+!!+i]nc/eTJ?-URr;[$*<d'Y=jS@X3!28r`"@e9\kl'N@"9.u;'Cl,+%[ti7r8[g-~>
+kl1X=pIYThG+-\GrnIGTrUe`LpIYQ`H(`[\f)G_rr^m8iG*H;&8crmuch#rl!V\&>!!H?;jm,V=
+8c`(1nk'$jJ?-URr;[$*<d'Y=jS@X3!5.kp"Cd8#kl'N@"9.uC<q8ic;52M-r8[g-~>
+kl1XapOEElG+-\GrnIGTrUeg&pOEBqH(`[\f)G`ErdY)uG*IjRJ-1.ech#rl!V\&>!!H?;jmRd!
+J,sh8npgjdJ?-URr;[$*<d'Y=jS@X3!714d"Eo[7kl'N@"9.uHM"6'!Ju6ubr8[g-~>
+l2LeM"SVm!3.7[VpY#QKrq4GJp](F&GbER[f)G^mrW!$IHD#o\!!G-A`U3Z\rrW/;#PnE%4hQFF
+!!6GR!qQBo7=\hVr;['0<csA,g@YC#rrBe(!!GcK]BK4PrrW2mU@A3d/?mh"roF*0~>
+l2LeS:%q6_>^`L%pY#QKrq4]?pdtZ_GbER[f)G_Xr^m8nHD$eu8d&I``U3Z\rrW/;#PnE&4hRFY
+rCR-)I7s0("(?^h%K-83$<D;.ZJ+sMh>[K%nk'$oMS&*NiVruYosaH`"CSIeo`!qOJ,~>
+l2LeWK(jcuG($7?pY#QKrq4lupj`KrGbER[f)G`3rdY)qHD%D1J-:7_`U3Z\rrW/;#PnE'4hS.L
+J,Xs!E.7A."*K-'%K-83$<D;.ZJ+sMh>[K3npgjdMS&*NiVruYou?NP"GX/6o`!qOJ,~>
+l2LaMp&G4`K!=20f`)'QoX5)$!!@J;e+M>m!;l]p"?(_.d3%oZ":U*rjnmj5!r/2dq>^O((]==9
+)KC]Vo)Je5%/^)1*G'JTYgr7@h#@B&nc/e^MS&*Ni;WlWo2tM_"(8e&q;hR+~>
+l2Lakp.>HqK!=20f`)'QoYaT$8cs=0e+M>m!;udf"C-DTdU2Q;"AXc_jnmj5!r/2dq>^g0/j)To
+8lBYf>4bDg68&cF!!aNUG`ArXnGM)A!8d9="Cd8#kl'H>!r__EnO`n1]]AnLs*t~>
+l2Lb,p4*9gK!=20f`)'QoZi-bJ-1%fe+M>m!<)kH"Eo6nduEpK"Fc0:jnmj5!r/2dq>^g05A,4h
+IsQ*nL\-)uE]X^-!!aNUG`ArXnGM)A!9j!("Eo[7kl'H>!r__fnUL_%]]AnLs*t~>
+l2L`Sp&G4aL:64AfDbpNo8`SG"*U3^o[j*Cg\h*T7Y7l%Mt$cL?DuQNh#@KTntQrm!!>W4S3H?@
+#REn@I[.=lnGM&@!8d8H"@e9\kl'E=!rUsdnc/e$R*+gojo9i~>
+l2La2p.>HrL:64AfDbpNo;VLW"*U3^o[j*Ck5@mT@=k`@Wpr[`Ei@[bh#@KTntQrq!!`Q>-otUV
+S8\0p"%G3q&c2P6#Y&laQ*o34r7h5OkOM4J@Z%e]rSRVVr8^fI8d%t[b3f,gs*t~>
+l2LaZp4*9hL:64AfDbpNo=XjK"*U3^o[j*CmJVP<FFpaS_!upWJZ.8qh#@KTntQrq!!`TM7V$C[
+S<Wf!"*n9=*r>pC#Y&laQ*o34r7h5Omdbl2G)EoqrSRVVr9/n*J-2=amJQ)GJ,~>
+lMgnZ#ke6$7Z"_?rRUuMr:!nc!!@A4d.Gri!4Vn,"]^>fk3WrT!!Fp@am]5arri5d`Dd$8!!<ED
+3$n%o#n&k6I#=Z6h=:EsrrDc`!!GcK]BK4MrrMtInGi\eY1r[Lk5Tr~>
+lMgn\;"dKa@Yq\[rRUuMr:#I:8cs4)d.Gri!6kC6"_NP"k3lID8d&Fdam]5arri5d`Dd$8!!<ED
+3&^[["!\`u$2FQ-$Tr?TMP@oBnbh,@!;Z1X"Cd8#kl'B<!W&P\8d'(8g\1X/s*t~>
+lMgn^K_Bp!G)<forRUuMr:$TZJ-0q_d.Gri!8II&"`oI/k4+?"J-:=fam]5arri5d`Dd$8!!EKE
+3(#k-4p*o#+V4AK#n&k6I#=Z6h=:EsrrDodJ-:%Q]BK4MrrMu.nULasY1r[Lk5Tr~>
+lMgk-o`,+aM7`!Mec,^JiZe4!")""Ho@O!BQi-mfArOLiqLnD>"9a=cjSR^3"o@Z<WE9kt!"/f?
+3bj)#T!m#.pAN\E!<2Nh"@e9\kl'B<!rhQsnc/e*QGr4hk5Tr~>
+lMgk<oh#?rM7`!Mec,^Jj^@pW")sXQo@O!B[J`]$D2c6pqPEaT"A=KYjSR^3"o@Z<WE9kt!"/f?
+3bj)#T!m#.pAN\E!<2O]"Cd8#kl'B<!rhXfnk'$^QGr4hk5Tr~>
+lMgkGomd0gM7`!Mec,^Jk`5Li"*^-Xo@O!BbPcqpEf@cuqS)KM",OGIqqM,SqX2q6=;9ou$NUl$
+C41u2[a=11rRq2NrpkRBG)EoqrSIPUrpba5J-2+Vm/?)HJ,~>
+lMgjNo`,+[M7VpLeGfUG[KHC,"D4"Enc%2@!-J2?#6T"0`pWih%e9T&9Vg53rnIGWr:ApkZ[t1$
+!"'N/@"b8acJe<irn%2@!!GcK]BK4LrrN%3nGiZ%Y2/m8s*t~>
+lMgjloh#?pM7VpLeGfUG`_?8%"E9^Onc%2@!1a$\#>9*#`pWim<:WWaC8BDQrnIGYr:ApkZ[t@J
+!q$$t"Uu:u6=>J@\Ba('qYo+Hnk'$oMS&*Nh>[NRPOV6IGHTcsk5Tr~>
+lMgk-omd0iM7VpLeGfUGdXh:G"Ep-Unc%2@!4r/[#CgcW`pWipL@KcrUt,/;g]%QWoA[s"Jj^1Q
+mJm\&(F_:0@"b8acJe<irn%2@J-:%Q]BK4LrrN&&nUL^pY2/m8s*t~>
+lMgj+o`,+KLq)UFeGfULp14%#"C786nG_)?!)WXp#820Hc1:l3D=RZ0'U$B"rS%8TrV>p?cU[p6
+"pu+Y&Io9OoDf.4<.1msjRE!Dec,U_o)Jn_MS&*Nh>[NT`:3g11n)VWroa<3~>
+lMgjSoh#?jLq)UFeGfULp5]#B"Dj=EnG_)?!.t2B#>fQ1c1:l3QL[WN;Ner`rS%8_rV>p?cY5-e
+,9%F7&ePT`"o\W;"UGMJ'cS>C-7CZLIBCrYnG3%5rr?-l8d&U\]BK4LrrN,KnO`pkR`k4"kPp&~>
+lMgjqomd0kLq)UFeGfULp8n.A"F$*PnG_)?!3#mI#CLZ]c1:l3ZgrVLJ!._8rS%8^rV>p?c[o1m
+4Y@ln&ePT`r!3lF'H8;N4$Z/&85t#>dcBonrRLoJM=Z6#G)EoqrS@JSrnd0q"Fcf_nG_VNJ,~>
+lMgico`,+1KX0V7e,KLJjV[mq"BUc+mf(l=!&4BP#U"Aae+Nb?h?WTO")+mopt5TKrV>R_r;[$V
+9ji7&N#_Hi"r;$DcLC]0e,KCio)Jn_MS&*Nh#@EP(@hG.&rO9_r9+*1~>
+lMgj?oh#?bKX0V7e,KLJl!"!W"DX+>mf(l=!,VX,#ZQ&@e+Nb?k"kP?"*h$*pt5TVrV>_N5Wh"`
+5tta4Ll=In./tb)/1rV52aV>LcLC]0e,KDUo1B-pMS&*Nh#@EP=n5/f:l;jHr9+*1~>
+lMgjcomd0nKX0V7e,KLJl\bUj"F$$Kmf(l=!1<b9#^U`fe+Nb?l@\YX",*l6pt5TVrV>f*DJ3Ka
+9hf#@Ll>:171MdX8PDr[=^GNQRa1F!rmUlIO7Rl)G)EoqrS7DRqhjrp"Fc6>k5=EBJ,~>
+lMgiLo`,*rFfF-jdf0@ERf!-g9T[-Xrn.5N%/p54/psPLq#CBk?1Isu0:L,Srn%/MT)AWo$!qV7
+Z+n%CoDf"(H)B<jdJj1go)Jn_MS&*Nh#@ES;=OVgG,j<lkPp&~>
+lMgj.oL]44WS@3rrrMu'r(7*'OM^A`f`(qLr^mGuI&>Tls8VtRnk'$kR`t:#fDc8j8Ou<=7::+u
+Z+n%er&+sB3'',a5X@b0H)B<jdJj2So1B-pMS&*Nh#@ESK(2G8I&brrkPp&~>
+lMgjWoRI$nWS@3rrrMu9r."opOM^A`f`(r+rdY9!I&>Tls8VttnpgjmR`t:#fDc9)IXHHbEF<dL
+Z+n&)r*Be=@:WtbD/jZ?H)B<jdJj3-o7-seMS&*Nh#@ESVso3<Wn[=3s*t~>
+lMgiKoDf"dS^@!-e,KLKoeuaK"@eBclM]E9!:0R`#X!X>hYR9PrmL?;"9a7bjSRR/!'pJ_#;pOa
+^>J8AIe3UC"+-iqpX0!@+7fI87Z+hArS.>PM=CQK<h7V/rojB4~>
+lMgj-oL]7"S^@!-e,KLKoks_#"CmG+lM]E9!:g"[#[Mt_hYR9Prn[-;"A=KZjSRR/!-eB6#?c)0
+^>J8ASGGV\77Kd<8P2X&Ut>@grr?Hu8d&U\]BK4JrrB(h8d&t$d.@8#s*t~>
+lMgjVoRI'nS^@!-e,KLKopG]."F,p@lM]E9!;6;@#^1a#hYR9ProEU"",aVLqq(iJT`0HIIro^n
+^>J8AZi"nRF`qtSH@1-jIs\!CpX0!@O7Rl)G)EoqrS.>P_sr6[I%AXUrojB4~>
+lMgiKoDf".OML/[df0@G]DV^43JtH4rRq2Na8Gu@8qaS3r;Q]sqb$DZ"@o9;o`!PD!8m_T#QeFb
+WnI+FrNPkn")jd[p!Nd>+7fI87Z+hArS.>PXmlAo6'B7UrojB4~>
+lMgj-oL]6aOML/[df0@GbPb$9?AcAYrRq2NfDS;E@YD,Kr;Q]sqgS*."DFU\o`!PD!9j>Q#AJ^g
+g%PFD`q)e)Fe7(TdJj2So1B-pMS&*Ng]%8lnO`pnP/cqhkl6/~>
+lMgjVoRI'oOML/[df0@GfDU4&H&B5trRq2Nj8FK2FG.$]r;Q]sqkEY3"G*Auo`!PD!:Ti9#B,-m
+g%PFDf(smmJ-1(ge+M,g!0?`%"Eo[7kl'99!7gUi"FH<Omf)GMJ,~>
+lMgiKo)JknXk`^!rrMmdrW!'TL:?=Cg&D&Mr;Zt&M7VmKrr3#u^@D7,'9U,rr7V)MGPqLI,BAjZ
+kktJ\iq!-P?CB+0dJj1go)Jn_MS&*Ng]%8nnGi\GMS/0Okl6/~>
+lMgj-o1B+)Xk`^!rrMnBr^m;sL:?=Cg&D&frCR3+M7VmKrr3#ucLOR1;3A][r7V)MTD_@f<H=/7
+kktJ\lLRUMDOJf@dJj2So1B-pMS&*Ng]%9)nO`pgMS/0Okl6/~>
+lMgjVo7-prXk`^!rrMngrdY,tL:?=Cg&D'$rI>#lM7VmKrr3#ug@BasJ!%S4r7V)M]D[6cH#et[
+kktJ\nFM/4H'utKdJj3-o7-seMS&*Ng]%95nULahMS/0Okl6/~>
+lMgiKo)Jn%N5k5^df0@H`Voi?-A8\br7V)MKDbcQBTBpqrr)itqD[sF"(A:dptG`Kq],P7#u>oA
+de!J<s8EQ$!!H,^aRB,Vrr=/4!!GcK]BK4JrrCpG!!F^([,h/Ks*t~>
+lMgj-o1B-]P/ckddf0@He,DrB=+mm>r7V)MVu93jDN;R"rr)itqJc!t"*L^#ptG`Kr*K=o$"J=U
+de!J<s8H!i8d&gkaRB,Vrr?Hu8d&U\]BK4JrrD6P8d&7M[,h/Ks*t~>
+lMgjVnpgh.`pEWOrrN)SrdY,tKX0Y9g&D&grI>#kNkt)]rVlopRdtt2KWNu(gA_3PNr=J7EdOM.
+oD\direL,r"F--On,Cc8!0?`%"Eo[7kl'99!:KB-"F>d/jS\6AJ,~>
+lMgi_nc/e@W7^bAdf0UK8cSi2JZdo,g&D%[rW!**F-F]6rr)itrMT2d"=]b]n,D)A!42V("VPd1
+[c@5`rrN*WoDf"[Nl(/^df0:ho)Jn_MS&*Ng]%91nGi\3JZdr-kl6/~>
+lMgj;nk'$jWn?tCdf0UKHqI"1JZdo,g&D&4r^m>fF-F]6rr)itrP%hp"Bq59n,D)A!6P13"]0/o
+[c@5`rrN+<oL]6qNl(/^df0;To1B-pMS&*Ng]%9;nO`p_JZdr-kl6/~>
+lMgj`npgjrWn?tCdf0UKU4@cAJZdo,g&D&VrdY0%F-F]6rr)itrQk%b"Fli^n,D)A!87=$"ak9F
+[c@5`rrN+foRI'iNl(/^df0<.o7-seMS&*Ng]%9AnULaiJZdr-kl6/~>
+lMgj&nGi\U\`!5]e,K^Q\c;^@J>q;ug&D%7rW!'6G+$YHqu6]l,kD!=!dqH:qV2#M;#L@t5^/[?
+nGW=c!+tj'">G_Fkl&s0!$Ce4"@e9\kl'99!8d5G"<2ijh"g16J,~>
+lMgjOnO`q!\`!5]e,K^QbXtK(J>q;ug&D%or^m;iG+$YHqu6]lA+N:q98'b6qV2#MK)J:F??_j]
+nGW=c!0ZtH"C$bqkl&s0!+>Cj"Cd8#kl'99!9irF"B'`Lh"g16J,~>
+lMgjnnULb"\`!5]e,K^QfRSL%J>q;ug&D&DrdY-!G+$YHqu6]lORdo(M72I@g]%8PrI>&nGFH_E
+rVc`rZLiYMHA]>urR1]GO7Rl)G)EoqrS.>PmdYf1I"/0Oq<7j/~>
+lMgjIn,NSP^?#%fe,K[L0E;0+Ut>=nrr=&<!!FEiT@EQ2rrN(_nc/e\U=/]5h>[N="TAB)#&/^m
+h>$pJ!06[O"<iH*jS[I+!$Ce4"@e9\kl'99!7pZ?"<2cfg\C"4J,~>
+lMgjhn4Egu^Z>.ge,K[LCJ%6OUt>=nrr?@(8d&+=T@EQ2rrN)&nk'$tU=/]5h>[ND:&[`g9Pf?a
+h>$pJ!3Yrd"BC,^jS[I+!+>Cj"Cd8#kl'99!93N@"B'ZHg\C"4J,~>
+lMgk*n:1Y$^uY7he,K[LQ@OL;Ut>=nrrA)YJ-:1DT@EQ2rrN)<nUL_9de*OprrM_CrdY0%DhG4K
+q#(-l`q4caH\Acer6kTFO7Rl)G)EoqrS.>Plg]K.I!qsJpuqa.~>
+lMgk+mf3JB]&NG_eGfdP`.DZ`WS$purrDfl!!Fj#VV1b@rrMU)o)Jn&NkaiVh>[J1r;[!SFHaZ/
+rVZZq^%;:-&V-t>qU5BD+7fI87Z+hArS.>P^@;1+)h"U;puqa.~>
+lMgk:mn*^m^#JbbeGfdPd[l,RWS$purrDln8d&7DVV1b@rrM[no1B-]O2'rWh>[JTrCR5qFHaZ/
+rVZZqch'g4:k5Y(qU5BD@.Qtn@Z%e]rS.>PdIBg3;LPFrpuqa.~>
+lMgkEmskP!^uG(eeGfdPgp<B1WS$purrDrpJ-:+EVV1b@rrMbLo7-snOMC&Xh>[JmrI>&qFHaZ/
+rVZZqh=Q4#I=SEUqU5BDO7Rl)G)EoqrS.>PhXQ+!I!qmGpuqa.~>
+lMgn\$h"&u)kc'Zr7(`Nq;fK$_;b7DrrCOH!!G?5XPWgMrrN(Gnc/btX4m=(rr=2?!!QYWVUkG>
+r;Qc]oDf!qI&5Kidf0:ho)Jn_MS&*Ng]%8KnGi\@IAkoqkl6/~>
+lMgn];X[3\>-6ZQr7(`Nq;fK$_;b7DrrD!U8d&FMXPWgMrrN(knk'"*X4m=(rr?I*8d/mWVUkG>
+r;Qcco1B+4V:bOjrr?Hu8d&U\]BK4JrrBb&8d&4DW8%+2s*t~>
+lMgn^L$sNpLUQ(2r7(`Nq;fK$_;b7DrrD<^J-:%GXPWgMrrN)0npggpX4m=(rrA/ZJ-Bn@VUkG>
+r;Qcgo7-pjV:bOjrrA,OJ-:%Q]BK4JrrCI:J-:.GW8%+2s*t~>
+lMgna=mc7n#^=qhqYo(G#6"5XhW+2)gA_/Zr;ZsiKX0Y8qYpWrk6LSY"=9DUmeu&C!4Vn,"X7rG
+]]]1hrrN*4oDeu,T$m8Zrr=/4!!GcK]BK4Jrr@Q=!!G30XPN^9s*t~>
+lMgnaM!dk=:6X>uqYo(G#6"5XhW+2)gA_/prCR3$KX0Y8qYpWrlqd4F"Bh)4meu&C!6kC6"]TK$
+]]]1hrrN+#oL]4+T$m8Zrr?Hu8d&U\]BK4JrrAkb8d&CKXPN^9s*t~>
+lMgnaX6tKAJu@8hqYo(G#6"5XhW+2)gA_0+rI>#nKX0Y8qYpWrmt:4^"FlcZmeu&C!8II&"aY0J
+]]]1hrrN+UoRI$iT$m8ZrrA,OJ-:%Q]BK4JrrBh(J-:(GXPN^9s*t~>
+l2Ladli7/P_!(Okf)GpPqY9marn@APO8T%]<J\3Kr;$?nr+5I""9NhTiVMI3!)3=k"]0Q=dIR;5
+rr>7T!!H;gbOPS\rr=/4!!GcK]BK4Jrr>mc!!GrIZJtcFs*t~>
+l2Lb%lq.D"`p!0qf)GpPqY9marn@APYl./sAr+"\r;$?nr/gJA"+di<qVV;QJGi(D@salro)ALc
+!-\!,"DX:Hnc%#;!+>Cj"Cd8#kl'99!.s`5"Cd"hiqqs>J,~>
+l2Lb6m!o5'b38Tuf)GpPqY9marn@APa8LMkF,7Bir;$?nr35aB",O>CqVV;QVYu#KEdOJ,o)ALc
+!1rh5"F6?Wnc%#;!0?`%"Eo[7kl'99!3#F<"ET4$iqqs>J,~>
+l2LeY+m]14%Y!:(qYmPq!-%l:"CdA+lM^PY!rgXNo)JnUT[EB1iVrr="TAB)&o`Z8iqiKN!,D-+
+"@J<imJbT7!$Ce4"@e9\kl'99!#Y5+"D!A#kPaWEJ,~>
+l2LeZ@I-Si;OZJ3qYmPq!1EdX"Dj(5lM^PY!rh%Mo1B-rT[EB1iVrrE:&[`g:iM6!iqiKN!0m+J
+"CmS4mJbT7!+>Cj"Cd8#kl'99!*etc"Diq+kPaWEJ,~>
+l2Le[O6hB#KWa2$qYmPq!4_uX"EKL;lM^PY!rh;5npgh8dI[@rrrMYArdY0"E/:s^qYC-k[.JkO
+HBH/5rmUlIO7Rl)G)EoqrS.>PN:DE$E/D0hrTO93~>
+l2Le`R-FYS0!+4.r2fnu9`4qoEg"H1rqQKoqb-M\":L1%kksE>!.4YE"[[F%b4#<)rrA>V!!G!5
+]]f=Crr=/4!!GcK]BK4KrrCC8!!O'WP/Zhfkl6/~>
+l2Le`Zg(-cB"I-tr2fnuJGi(CEg"H1rqQKoqgS-/"AXrikksE>!2BEa"^cJBb4#<)rrBCt8d&@U
+]]f=Crr?Hu8d&U\]BK4KrrCmF8d/%3P/Zhfkl6/~>
+l2Le`aQe9YOMp;Sr2fnuVYu#JEg"H1rqQKoqkNb5"FlHFkksE>!58>]"a"sWb4#<)rrC15J-:4V
+]]f=CrrA,OJ-:%Q]BK4KrrD6PJ-C=@P/Zhfkl6/~>
+kl1\U.-U^79YB]crN?/#/H,VQ%<Rr\nc&=`!WK_%!!??&g%OG*!W*`5!!NXDKWj5,q#:?5oDf"9
+Ks]q=e,KCio)Jn_MS&*Nh#@A$nGi_PGb3=TrojB4~>
+kl1\VAa)eiHcGCGrN?/#B`:U-:3;iHnc&=`!WL=68cs%3g%OG*!W61$8d.q+KWj5,q#:?EoL]6c
+Ks]q=e,KDUo1B-pMS&*Nh#@AKnO`shGb3=TrojB4~>
+kl1\WP3IK"SBgHprN?/#QMuC<IWUq#nc&=`!WLdCJ-1D&g%OG*!W@uVJ-CC?KWj5,q#:?QoRI'l
+Ks]q=e,KE/o7-seMS&*Nh#@AfnULddGb3=TrojB4~>
+kl1__]*%9t"TqN7m.^I_rr<?(!!F0aS^I*'rrMsQo)Jn8QH/Ckj8T+Wr;[!XFHjc2rV6BmmdpJ^%
+Y1Y;q:#?D+7fI87Z+hArS@JSq],/,"Ti+aXkrm:s*t~>
+kl1__b=q.m"\a?dm.^I_rr>mp8d&%:S^I*'rrMt6o1B-dQH/Ckj8T+prCR5sFHjc2rV6Bmo(5NW
+:4TG&q:#?D@.Qtn@Z%e]rS@JSr*Jnc"DWOjhYH@7J,~>
+kl1__f7E1:"bE;nm.^I_rr@`OJ-:4DS^I*'rrMt`o7-snQH/Ckj8T,.rI>&pFHjc2rV6Bmp@Nk<
+IXnNVq:#?DO7Rl)G)EoqrS@JSrJpDu"E/mohYH@7J,~>
+kPkSXIcg\8"&HSrp\b#trrD*X!!FToUXo/4rrN(nnc/c4ZJbQ=rr>1\!!WL7J>q2prqQKorYP2,
+"*gWopXB-B+7fI87Z+hArS@JRTCDmb-?>3`lMTiFJ,~>
+kPkSXTBAfN9RXtJp\b#trrDB`8d&1@UXo/4rrN)2nk'"5ZJbQ=rr@0>8d/s[WS$qDq#:Bo>4bDh
+HDK3fe,KDUo1B-pMS&*Nh>[JenO`scEfe*%r9+*1~>
+kPkSX\EAAHJY1<Up\b#trrDTfJ-:.DUXo/4rrN)CnpggsZJbQ=rrAYhJ-BnBWS$qDq#:BoMtDN%
+I&,Ehe,KE/o7-seMS&*Nh>[K$nULdfEfe*%r9+*1~>
+kPkV^nP\HK"[]6TpAFourrBt8!!G$*WS@4@rrMd5o)JnST$R!,jo5>,r;[!KEf[rur:^-j9(W)c
+@[tj<e,KCio)Jn_MS&*NhZ!WR,k:p>!aC&Ie+EY&s*t~>
+kPkV^nU]do"a.KDpAFourrCRI8d&=HWS@4@rrMh"o1B-pT$R!,jo5>:rCR5oEf[rur:^-jIe657
+E1G>Je,KDUo1B-pMS&*NhZ!WSA+<.pB7-K'o`"%RJ,~>
+kPkV^nY>2r"e*NupAFourrD$VJ-:+GWS@4@rrMkRnpgh6cgq(srrD6\J-C4=O1siUpAY,goRI$i
+SC-uXrrA,OJ-:%Q]BK4MrrN(]nULd]I&#0_roa<3~>
+k5PM[k=4M4"YQ&$o_\WtrrA\i!!GK:Y2K0LrrN(So)JmuLqMmIjo5<jr;["&I%o*^rq??lEqB>7
+:6irjrm^rJ+7fI87Z+hArSIPSL[b?J.rpT[jnn3?J,~>
+k5PM[k]l/\"_b%#o_\WtrrBY/8d&IOY2K0LrrN(so1B-[MnJ3Ljo5=CrCR6*I%o*^rq??lRe02T
+B9gU.rm^rJ@.Qtn@Z%e]rSIPSWpr[b=)s82jnn3?J,~>
+k5PM[l($gb"d6X`o_\WtrrCCDJ-:%HY2K0LrrN)6npgh$]]T+QrrB>&J-Bq?U=8c6pAY-&oRI'j
+Q-&OpeGfN0o7-seMS&*NhZ!SnnULdeEf@Tkqr[p/~>
+k5PP_q;O6k!!O-]eFE>4])MbXr;ZsmKs]q=o`"sU%eBZ&;Q&1@k5PJN#lXf-)KCYEjSSWM!1i`^
+"?MRZli,E6!$Ce4"@e9\kl'E=!RD&B!!WjDI\bE`roX62~>
+k5PP_q;Z;O8d/=ag%"k9])Mc)rCR3%Ks]q=o`"sY<:`]aDPu.\k5PJS;#X&j;K7T(jSSWM!4h_o
+"CI2*li,E6!+>Cj"Cd8#kl'E=!SpTC8d8%+I\bE`roX62~>
+k5PP_q;de#J-Cb7hXUC>])McErI>#mKs]q=o`"s]L@]otJu@8pk5PJVK`6K*HuY%RjSSWM!7(4e
+"F?*Eli,E6!0?`%"Eo[7kl'E=!U#.,J-LI?I\bE`roX62~>
+jo5G^pYS?t!!WX*Z0h8_rk8=3=T&4&=,OWRrUg*jr+Ya&"<*NDm/?,I!/pdU"\F!1cLCi+rrC15
+!!FU(\E<_=rr=/4!!GcK]BK4OrrM:.nc/jq:Nhr;kPF<?J,~>
+jo5G^pY^2R8d8%@_X7'prk8=3M#BpKBSsFcrUg*jr0-_E"B:W)m/?,I!3Q2l"^u\IcLCi+rrC^D
+8d&4O\E<_=rr?Hu8d&U\]BK4OrrMOtnO`soG*B`)qW7a-~>
+jo5G^pYhS#J-LV"c0b6&rk8=3XSmYPFGd]orUg*jr3GpE"FlZTm/?,I!6+ne"`ns[cLCi+rrD*O
+J-:7U\E<_=rrA,OJ-:%Q]BK4OrrM_SnULd_G*B`)qW7a-~>
+jSo>]p>/^*!!OX"g@G+=^]+9nr;Zt2Nkju[o`#!ldf]1A")b@#puq_Yq],S8"Uo7&ZJbNMrrDW^
+!!F!fYi,B-rr=/4!!GcK]BK4PrrM^JnGibPEepsSp&=(QJ,~>
+jSo>]p>:>W8d/[thX^OA^]+:RrCR3/Nkju[o`#!lhG!N5"+7?1puq_Yr*K@p"\rriZJbNMrrD`a
+8d&"CYi,B-rr?Hu8d&U\]BK4PrrMh3nOa!iEepsSp&=(QJ,~>
+jSo>]p>DP#J-CtCipusE^]+;(rI>#lNkju[o`#!ljb!)S",=&;puq_YrJpl-"b(BEZJbNMrrDid
+J-::PYi,B-rrA,OJ-:%Q]BK4PrrMqanULgdEepsSp&=(QJ,~>
+j8T8]p>U&nhuErc:Tj*Yr;OS5!#5A3"EK[Fmf)hX!W,O]!!G-KcLLnurrB+u!!PE,QH/Cko`"sk
+-M7?A"+@-%psf<D+7fI87Z+hArSmhXj!aEt"tFPCV9n]/jSs`~>
+j8T8]p>V6/i(=2KJ&(IFr;OS5!*K1l"EK[Fmf)hX!W.?;8d&LkcLLnurrC"98d/LDQH/Cko`"sk
+AG&Ot97<bmpsf<D@.Qtn@Z%e]rSmhXlXoZZ#$5_pV9n]/jSs`~>
+j8T8]p>W'&i.)#`U!;uur;OS5!/g`*"EK[Fmf)hX!W/Y_J-2=enc%eQ!7h$us)nL1a6iitrrN+^
+oRI$lW7q$rrrA,OJ-:%Q]BK4QrrMYSnULggDh=h4n,28HJ,~>
+ir9/\pZ.SOh>d^)K])IurPed:oDJXm%<Rr\o)A7\!WK_&!!EL[]&ihRrr>1\!!NI<JZIN!o)A\b
+oDeu+T@<J_rr=/4!!GcK]BK4RrrK_KnGib<D18(tlMBQ@J,~>
+ir9/\pZ/;QhF[r\U>tkArPed:pAISe:3;iHo)A7\!WL=78d%hD]&ihRrr@0?8d.k(JZIN!o)A]@
+oL]4+T@<J_rr?Hu8d&U\]BK4RrrLGMnOa!cDLS1ulMBQ@J,~>
+ir9/\pZ/f;hLGci\E*8XrPed:q>GgIIWUq#o)A7\!WLdCJ-1_@jnn<B!1s.>"E8pmg@t1<!2fC=
+"+-Zhp!j!AO7Rl)G)EoqrT!nYh2LlS#'k-9T#g3nj8XW~>
+iVs&[puoFNh#ITiD9q_HrQ"p<ci!hH)0h_#o^Vq^qCM4<"AP`Dp&=:W!6b<@"Y=_W_!:jgrr@67
+!!H2dbOPS^rr=/4!!GE?\`WhOrrM_0n,N\IDgn4ok5##:s*t~>
+iVs&[puoY3h+@iMP1K-trQ"p<h>KqK;L"b\o^Vq^qIoIm"Dajbp&=:W!8@BD"^#i._!:jgrrAY_
+8d&jpbOPS^rr?Hu8d&IV\`WhOrrMh]n4EpgDgn4ok5##:s*t~>
+iVs&[puoe]h1,Z`Y1rI@rQ"p<kP]o6H[)+0o^Vq^qNUT%"G*E#p&=:W!9O00"aG*N_!:jgrrBY&
+J-:1bbOPS^rrA,OJ-:+Q\`WhOrrMr)n:1aeDgn4ok5##:s*t~>
+i;Wu[qWuaU$Jb[c#%#OAq#/>7!3c>$"=&5ef(SY6!WAP[!!F%"_s@9err?=&!!QPSUt,,:o)A]d
+oDf"ZOMgGaec,Uknc/h9HIhZarosFaqk"ku!!i`qEe9n#jS/Z5s*t~>
+i;Wu[qWuaq:u+_I:5I?dq#/>7!64t0"BBcBf(SY6!WBIu8d&%T_s@9err@uU8d/mVUt,,:o)A^(
+oL]6qOMgGaec,VWnk''gOk91$rosFar4?;*8dJ*tEe9n#jS/Z5s*t~>
+i;Wu[qWub0K&(q\Ju72gq#/>7!8%1""F5<ff(SY6!WC14J-:@b_s@9errB5#J-Bq@Ut,,:o)A^;
+oRI'jOMgGaec,W1npgmqU=f&6rosFarQgMoJ-^XGEe9n#jS/Z5s*t~>
+hZ!`Uo%pZ;g].K^?-_m5rQG3@Mu<VY0RftTq!e:anJ:]r")+moq!A"]k61ba"W_T@]&rn[rrCI=
+!!Fg/]''%Brr=/1!!X3S]^Y^orpKdflAHnV!!jBGG)3!9k4el6s*t~>
+hZ!`Uo%poqge%`FLXbberQG3@Xo1ip=am=(q!e:ao3(ZW"*h$*q!A"]mS3[Q"]KE!]&rn[rrCpJ
+8d&:R]''%Brr?Hr8d8C[b4,3(rpKdfn>p-h8dJ:-G)3!9k4el6s*t~>
+hZ!`Uo%q*DgjfQ[V:b52rQG3@`Vk;iG^cUGq!e:aonr?k",*l6q!A"]o7Hsl"ab6I]&rn[rrD6S
+J-:4U]''%BrrA,LJ-Lh3eF<82rpKdfoYls^J-^L@G)3!9k4el6s*t~>
+h>[ZWpZTt`,hrA'$uO\eq>SY=!,2<2"?M+:htljB!W@H<!!FsDbjbW!rr@EE!!Q#@T$R!,nc&Xd
+"SD`t(50!Qqpk]H+70%7)dScMnbN(\rr2]m"THu<9*F_a#ms"=IZq"_lM:G;s*t~>
+h>[ZWpZTtq?JJ-V;N]c(q>SY=!0mFS"C6S]htljB!WA_`8d&IhbjbW!rrAel8d/[LT$R!,nc&Xe
+9_D!\;M;@8qpk]H@-pPm>`#`8o(i1]rr2]m"TIDfIn]?(#u+cHIZq"_lM:G;s*t~>
+h>[ZWpZTu)LtmLaKWEquq>SY=!4;]T"Eo@!htljB!WBY%J-:@jbjbW!rrBb2J-C">T$R!,nc&Xf
+K(XWsI>"ocqpk]HO6qH(MlF\OoD/:^rr2]m"TI]/V1S2e$%?u9IZq"_lM:G;s*t~>
+h#@TXqXE@]F;EX3"W<3Xo)&F4rr>Rf!!GcE[,_)QrrM$_oDf!sK"0n=mf*=^'`J(9%W7$-i;)mB
+!WFSA!!EISWS@3urr=/*!!`TO7UCD#R[X2E"+FiG&+0E)&j^D^N2+/Bn,!%@s*t~>
+h#@TXqXE@]N`Oq-"^7_^o)&F4rr@HF8d&RU[,_)QrrM:YoL]6ZL:H=Amf*=`=T1nr:2blni;)mB
+!WHa)8d%h:WS@3urr?Hk8dA%!HAeDs[^Q.D"/:s%<UNHd:g\3hN2+/Bn,!%@s*t~>
+h#@TXqXE@]TS2*N"c9\Jo)&F4rrAknJ-:"J[,_)QrrMJ=o7-q#\E*PTrrN"SrdY0$E/(^Wq=+Cb
+rfm)+"Fkm"g\B>!!0?Ap#_J/2XLc<lb00e."2;(4L[K["I!'IVN2+/Bn,!%@s*t~>
+gA_BUpZpGDA.IAp"?!RMpANA<!$qLC"B1,fkPalL!W6-m!!Gffeb&k0rrADa!!PH-QcSUnn,EAc
+oDeu/T[`Ybrr=.]!!t5jG_r*'dHC3#h>`!~>
+gA_BUpZpGEK2UJs"Dkm;pANA<!+Yt""D3J$kPalL!W7cF8d&h'eb&k0rrBJ*8d/LDQcSUnn,EB@
+oL]4-T[`Ybrr?HI8dSU9G_r*'dHC3#h>`!~>
+gA_BUpZpGFRY'=F"I$pjpANA<!0[;2"E]I2kPalL!W8thJ-:G!eb&k0rrC7@JH'cpQcSUnn,EBd
+oRI$jT[`YbrrA,#J-gF<G_r*'dHC3#h>`!~>
+g&D<Vr:K4%ZsO=!!!NREf^AS7df0:Mr;Zt/NPFcWn,EFfa7B96'9U/sr9sXc./j2M")!1dg\:.9
+!.shC"B:c4o)@5?!$Ce4!\Go/f)Q$Y.ri5UmeZq<s*t~>
+g&D<Vr:K4%[t%?38d.qNg$\\8df0;@rCR3.NPFcWn,EFfealB9;3A`\r9sXcB)YC+95K0\g\:.9
+!2fB\"DX=Jo)@5?!+>Cjs&]7qf1H9@?&-/JmeZq<s*t~>
+g&D<Vr:K4%\<qm(J-CP'g@"e9df0<!rI>#lNPFcWn,EFfht)@$J!%V5r9sXcPl6+8Dh5"Ep[8%]
+_"<-[HC2qIrmq)LO7Rl'GBn\hJ-LRk^=r#OrnRO(~>
+fDc*Tqt&mqZ=k!/!!FdZk4SZ%rrCgO!!I,#`9mQlrrN!Vo)Jl'Xk`^@rrBD(!!OopP/6G]mf*9h
+oDf"ZOi6Ydf)G^lo)Jt_FFe0r+9^j-":,u"5ofV!"W2O:o(i7?s*t~>
+fDc*Tqt&mq[=hQ98d&\=k4SZ%rrD3Z8d'*q`9mQlrrN"9o1B+.Xk`^@rrC1>8d/=<P/6G]mf*:*
+oL]6qOi6Ydf)G_Xo1B3pFFnpW=A7mM"AMfu@TE.p"^.;Lo(i7?s*t~>
+fDc*Tqt&mq[[;^'J-:nOk4SZ%rrDHaJ-9qU`9mQlrrN"co7-prXk`^@rrCaNJ-C1=P/6G]mf*:;
+oRI'jOi6Ydf)G`2o76j_"+uJeK'%RdIXHHeIeS?rLp>k.q>K.LJ,~>
+ec,mRqXNUl\8s"R!!E[eh!k3krrB\0!!NOIQ-/Uqmf*=eV"4Qh.@JBJrpg!g7/[)h>(*3sp&=CZ
+!7g]A"=oAAkl'*4!$Ce4%7Pf?[^N-%G$@?g+VbIZ!"98O,rS>#EdiXsO-3'-!!NdIf^S_8huA3~>
+ec,mRqXNUl\;FVL8d%t`h!k3krrC@C8d.n0Q-/Uqmf*=e]^n_u>+*S&rpg!gHMpG>B76T+p&=CZ
+!9*QB"BgVokl'*4!+>Cj%:Od[[^N-'KQV!8=&Mie8dnHm='fHTGCG1#O-=PV8d/+Tg[P%;huA3~>
+ec,mRqXNUl\=860J-:M/h!k3krrCmRJ-CFDQ-/Uqmf*=ecLZPhJ!nLKrpg!gUA]TGEIFY5p&=CZ
+!9s-+"FH$<kl'*4!0?`%$?grm[^N-'Nei@=rdXTk%"<VPH[0m_IY3H;P`>Be"bj&7nG3%?s*t~>
+e,K^QqXNXp]SSiUhZ*dcdd-`.fDbi;r;Zs2G+-bKm/I+Z)Y="4!dqH:qXXXdci!hI)0(SGjnnHF
+!WEAt!!F'jZJtc4rr=/4!"qbW[+OEmcGI#jU7.@/N.uLtF8U%iGCbC#LlIRcTW#**_T9cO#ke6%
+'7o05qYoIRJ,~>
+e,K^QqXNXp]U*D-hb"$(dd-`.fDbiYrCR2fG+-bKm/I+[>P(Mj98'b6qXXXdh>KqL;K7W+jnnHF
+!WGmf8d&%FZJtc4rr?Hu8ePTh[+OEmcGI#jU7.@/N/2t4I/J:%I=[$)LlIRcTW#**_T9ce:A.9`
+<hA=@qYoIRJ,~>
+e,K[PqXNXp]V18?J-;IllhUP3rrC7@J-::DRa:TlrrMkQo7-q"[c@5TrrD6\J-C:>Mn8$ImJd4d
+K_9iuI>"ocqptcIO7Rl7G)3NXj4_eq[]?-kQ&pr\L4k3WK)^B3K8#,@P*quAYdqWla/agcJ-C_7
+iplmEiW"E~>
+dJjLOqXWe!^nP'OhuEmGa6*0rf`(qrr;Zs=Gb<LYm/I+bJb&jE7&&-%rq$-i>l=X+8U6lPo)A%V
+!WF_E!!EISWS@4!rr=/4!"qbY]'&n`o'>Amf$DIU^:LbYYPPC4Z*h0Y`m*#fiTBLrmc()Uo`,+G
+ZKCiXir=N~>
+dJjLOqXWe!^nuHZi(=,kaQE9sf`(rDrCR2jGb<LYm/I+bV"71]B;3iHrq$-iMu?6O@<nEho)A%V
+!WHj,8d%h:WS@4!rr?Hu8ePTj]'&n`o'>Amf$DIU^:LbYYPPC4Z*h0Y`m*#fiTBLrmc(QPoh#?u
+^?5+dir=N~>
+dJjLOqXWe!^oEQMi.(roal`Btf`(rarI>#tGb<LYm/I+b^%-[UU=/]5oD\fnrI>&mH(E7OrpB^d
+rg*5-"Fkm"g\BA"!0?`%&pB/DkP=lClf?mQccO)=]!eoJqQ:@6[CX/nc.(M,k3VU*ikC0?J-:tR
+k4SZ3s*t~>
+ci4=Nqt97.aKp@Q"QBCa3PjeMrn7;O;uH\!-@DWApZqh[j9P;W":pO.l2:2R!TO=^!!NdJL9fb5
+li-rkoDeu,T[`Ycrr=/4!"qbY]BK4nrr2ikp@Ie?lK@9hi;;C=i8Wh\lL+69q"jpfrWDu]ZQAc>
+"U8r"meZqDs*t~>
+ci4=Nqt97.aKpt>9]AYIC;T'*rn7;OL&FUH<d^^qpZqh[l;.%E"Ak/pl2:2R!UEJZ8d.t-L9fb5
+li-sDoL]4,T[`Ycrr?Hu8ePTj]BK4nrr2ikp@Ie?lK@9hi;;C=i8Wh\lL+69q"jpfrWDu]^0L>'
+"\k-5meZqDs*t~>
+ci4:Mqt97.aKqCmiID&l_rUOjg&D&PrI>#rI&,Ehli."RKCjZsIuqJ1r:L!inUgaj"b(BEZJbQE
+rrB4oJ-11leFhDm!0?`%&pB/Ekl(P\rquTcoC2,3kN1a^qqhb=ioK:fmdg&GqY^?l"8V6&MY2K'
+JuIDkqYoRUJ,~>
+c2S+Lr:fX<d(PlG%c[Nl2nn;Frn@AP2#RCW0n-+Wq<S%]r*Jsp"'qt]p[nIcF8Z(B3Hg_/mJZAN
+!/gCK"B(W2nc%/?!$Ce4"@e9\kl(AXs8N&ss8;]h"oJ5rrVlflrr`/d_]SLN"?sffp\s:SJ,~>
+c2S+Lr:fX<d(Q/s;<(7OBu&a%rn@APDZ*01>(3I+q<S%]r/:/="*:Nsp[nIcSGc%`>]uFRmJZAN
+!3>`a"DO7Inc%/?!+>Cj"Cd8#kl(AXs8N&ss8;]h"oJ5rrVlflrr`/db$FX3"E;HFp\s:SJ,~>
+c2S+Lr:fX<d(Q<<K&_@aNPOQIrn@APRf.a>G^cXIq<S%]r2fL?",!Z.p[nIc\c%$^F`s(kmJZAN
+!6"M["F?HZnc%/?!0?`%"Eo[7kl(AXs8N&ss8;]h"oJ5rrVlflrr`/dc\qFG"I.*mp\s:SJ,~>
+b5VbGqXWk&`iNbjj8]<@^>ekcg]%6br;Zs]JZdr-li."b`:Es3-()dArV$6lmh#Hu"Tr7bX4m=5
+rrB=r!!GKI_sIBSrr=/4!!GcK]BK4Lrr`2h\eF]9"<t22o_mqPJ,~>
+b5VbGqXWk&`ianpj@TPh^Z+tdg]%7RrCR2uJZdr-li."bddp'6=d[:urV$6loMtl_"\WT\X4m=5
+rrC+38d&Ra_sIBSrr?Hu8d&U\]BK4Lrr`2h`E)V'"CA[uo_mqPJ,~>
+b5VbGqXWk&`itb^jF@Am^uG(eg]%80rI>#oJZdr-li."bhXc7#J!e=FrV$6lpPAcu"E/gkg@sn4
+!8$jn"F?0Im/GW:!0?`%"Eo[7kl'?;"8q]7L\-*"MSJ-BrT=-1~>
+aSuPFr:]L7c+%g=jT#EP_;tCjh>[K@qu?jgKXBh<lMgn^2"UbN!d_65qY'phO8T%^-?>3`l29iH
+!8d>J"=8o9kPa$4!$Ce4"@e9\kl'<:"8q_s$1n3#'qsFRr9+*1~>
+aSuPFr:]L7c+&X9j[oYp_;tCjh>[KFr(7*#KXBh<lMgn^DY$I&K!aP6pAY,srCR5oEfe*$r9F:^
+kO_@L=,FNOrR_&L@.Qtn@Z%e]rS7DTr:7^$oL]6eXk`LFkPp&~>
+aSuPFr:]L7c+'6tja[Jq_;tCjh>[KJr."omKXBh<lMgn^R.Gh1LpZ1<pAY-5rI>&rEfe*$r9F:^
+mdu#4I#5GtrR_&LO7Rl)G)EoqrS7DTr:8'aoRI'u[G:?NkPp&~>
+`W$2Aq!d=l]RM<k!!?`Lk5!j5!6b9?"B1,ekPXWF!WJY]!!GEWdI[A4rrN!6r;["$I&#3`rp'La
+rX8B!";?BkiVM1+!$Ce4"@e9\kl'99"8q_Z"7uQr&#@nLr9402~>
+`W$2Aq!d=l]TQXa8csU^k5!j5!8@?C"D3J#kPXWF!WKS"8d&[tdI[A4rrN%%rCR6)I&#3`rp'La
+r_iD]"Aj]SiVM1+!+>Cj"Cd8#kl'99"8q_p9_:p[;QSRBr9402~>
+`W$2Aq!d=l]V(&BJ-2(Tk5!j5!9O-/"E]I1kPXWF!WL:5J-2IloD\Ob!W@uUJ-Bq?UX\r8lMgna
+L@p'"I=e]^qUb`IO7Rl)G)EoqrS.>Sr:7[ToRI'sZJ"gHkl6/~>
+_uBu@qXWe!^OdTl!!E@Ub3Sr]rrAtp!!HSd^?Y[]rrMX&oDf"%N4nHQq#:>dr;[!:E/M0dqs"+]
+r\jEL"9NkHgA';"!$Ce4"@e9\kl'68!rVP*o)Jn2WnHtAl2Q8~>
+_uBu@qXWe!^Q_sd8d%eMb3Sr]rrBk48d&mf^?Y[]rrM^loL]6]NkOZSq#:?+rCR5jE/M0dqs"+]
+rc%L%"+7$#pt,NG@.Qtn@Z%e]rS%8Qr:#pA8d&8!g%,++s*t~>
+_uBu@qXWe!^S6JGJ-2@blhfQ=!7Ujr"ETO9lM]uI!VM9@J-:@^^$,ChrrCCDJ-C=>MR_aEl2Le`
+Re2+4I](opfDbi3o7-seMS&*NgA_6Pn?2A5"GO/7o)7hQJ,~>
+_>ac>qt0+(^ip[\!!Eq.dd[4mrr@iP!!Hnq_sIBerrN(=o)JkpWS."?rr=bO!!P]6S':C$kl1Wp
+oDeu&T$m8_rr=/4!!GcK]BK4HrrW)b4nAXV.^\"(rp'N6~>
+_>ac>qt0+(^lDL\8d&(gdd[4mrrB(s8d'$n_sIBerrN(do1B+(WS."?rr?m68d/OGS':C$kl1XG
+oL]4)T$m8_rr?Hu8d&U\]BK4HrrW)bF7W!,@("e_rp'N6~>
+_>ac>qt0+(^n?DGJ-:J%dd[4mrrBt7J-9tU_sIBerrN),o7-ppWS."?rrAGbJ-C%>S':C$kl1Xg
+oRI$jT$m8_rrA,OJ-:%Q]BK4HrrW)bRe)%4Lpl+3rp'N6~>
+^]+Q<r:T:)]OqT:!!GKkh"La*rr?U-!!IA-aRB,lrrC^C!!FI2a6ij%rrBD(!!NRBKWs>.kPkOB
+oDf"fQHAXqf`(pno)Jn_MS&*Nf`)$LcjfRH"Albjq#9UZJ,~>
+^]+Q<r:T:)]nK8I8d&k6h"La*rrA2Z8d'4"aRB,lrrD$L8d&4]a6ij%rrC1>8d.n*KWs>.kPkOb
+oL]7!QHAXqf`(qZo1B-pMS&*Nf`)$LfMhB6"E_<9q#9UZJ,~>
+^]+Q<r:T:)^70`>J-:\6h"La*rrBA&J-9qXaRB,lrrD9SJ-:@fa6ij%rrCaNJ-CF@KWs>.kPkP%
+oRI'jQHAXqf`(r4o7-seMS&*Nf`)$LhM(QO"HL.Sq#9UZJ,~>
+^&J<9r:K4&Y!D:Q"9O%gkka6;!'pJ_":B7<bjsrs!W5=V!!@;Ji;*6L!'pJ_"Yb%_`U*QdrrBJ!
+!!G0>_!D!Prr=/4!!GcK]BK4GrrW2pN:R#P!e\MXqs494~>
+^&J<9r:K4&Zu>8&"A=Wgkka6;!-eB6"AO!*bjsrs!W7678csOJi;*6L!-eB6"^,r3`U*QdrrC46
+8d&I\_!D!Prr?Hu8d&U\]BK4GrrW2pWq/gc99@0Yqs494~>
+^&J<9r:K4&\<6',"-gXcqV_ART`'BDIWUt$o&p#Rr1NY3",F2?q>1*kT`'BEG'&tfm/?,I!87!p
+"FH0Eli,Q:!0?`%"Eo[7kl'06!rhu0npgh1`p3Hes*t~>
+]Di*7qt&moL_B%S"=g4qo)@VJ!$(q;";#dIdIcW%!WK1l!!G?Sd.726rrC+;!!QVVVqC_BkPkPH
+oDf"<LUQ=Bf`(pno)Jn_MS&*NfDbpOn1+#0"<aVko)7qTJ,~>
+]Di*7qt&moS5eiI"C7hOo)@VJ!+#Oq"Aa63dIcW%!WKt-8d&Upd.726rrC[K8d/jVVqC_BkPkPN
+oL]6eLUQ=Bf`(qZo1B-pMS&*NfDbpOnRqGc"BhYOo)7qTJ,~>
+]Di*7qt&moWeB_h"G3Gto)@VJ!07#."FYKadIcW%!WLO<J-2Cio)ARe!9=!-"`Spgf_5=-rrDZ_
+J-:7T[cRG>rrA,OJ-:%Q]BK4FrrW2jPOj;-Ju@)grTsQ7~>
+\c2j4qXE@Q46uqLHF`,5ir9#Uqu?j<H(`[\k5PJU)Y="4$&H7Wqu$Ho;#L@t*c[.OkPOEA!WEc*
+!!EXZXl'!-rr=/4!!GcK]BK4ErrN%nnc/c%\)R5Ms*t~>
+\c2j4qXE@UD<sjsKXp1?ir9#Vr(7)iH(`[\k5PJV>kCVk:5cdJqu$HoK)J:F;fRc/kPOEA!WH0n
+8d%k=Xl'!-rr?Hu8d&U\]BK4ErrN&0nk'"1\)R5Ms*t~>
+\c2j4qXE@YOmIT#N4J$Gir9#Wr."osH(`[\k5PJWN:_W'IuM&'qu$HoW;V5MH?"nVkPOEA!WIrK
+J-:=OXl'!-rrA,OJ-:%Q]BK4ErrN&Anpgh$\)R5Ms*t~>
+\,QX1pZg7G!q$$k3hb!mro="YfDGUO-%)N@pZDJVrHe&8"&c)MpAP!kg\_$T89pfRo)@eO!WG:T
+!!@8;fCmks!$Ce4"@e9\kl''3!V@E(!!F./bO5>rs*t~>
+\,QX1pZg7g9^YLUA"h?Aro="Yj8;LP<d^^qpZDJVrL`[R")b'ipAP!kk57gT@!S?jo)@eO!WI66
+8cs=6fCmks!+>Cj"Cd8#kl''3!VKdj8d&+`bO5>rs*t~>
+\,QU0pZg8(m=5=jU!iN2j8T,Fr."oqI&,Ehk5PJ\](:FSJuI>qrVllbr."rkH(NCRroX4]rgrb4
+"+6orp=TBFO7Rl)G)EoqrRLoKp5SWn".[R&rU'W8~>
+mJd4QqYpK?rrrE!o&#]Bmf3J"NkOZSj8T+gqu?jNI];)tjo5A:"S;Zs)O/5-rVlfs?i9s.$>bI'
+iVDR7!,D-+"BLu:o)@>B!$Ce4"@e9\kl''3!W@<7!!@#BhtZU=J,~>
+mJd4Wr;Q]ArrrE!o&$BDmn*^YNkOZSj8T,'r(7)oI];)tjo5AB9_:p[<0YAgrVlfsNr;QR9l>]l
+iVDR7!0m+J"DjOPo)@>B!+>Cj"Cd8#kl''3!WAV\8csIHhtZU=J,~>
+mJd4[r;Q]ArrrE!o&$m/mskOjNkOZSj8T,6r."opI];)tjo5AHK(OQrJ!@q=rVlfsYPitTIVsnH
+iVDR7!4;BK"FHT_o)@>B!0?`%"Eo[7kl''3!WBV#J-1V5htZU=J,~>
+n,EUdIh7t8oD6`3"TA)XY8cp1"(nRepZ)8RQi$gd2h8'gqW7_Xr'^,V#B6p)q#CBW"T8<(20G5*
+mJZ,G!0QmR"@/-hmf(o>!$Ce4"@e9\kl'$2!6t'7">H@jnG_kUJ,~>
+n,EUfUfFbioD6`3"TA)X\m"Pp"*U]upZ)8R[JWW">_'!7qW7_Xr-@m+#CNc5q#CB^:&RZf>'6.O
+mJZ,G!3l)f"CdP5mf(o>!+>Cj"Cd8#kl'$2!8@!9"C@VCnG_kUJ,~>
+n,EUh^PKr!oD6`3"TA)X_hmi4"+mQ,pZ)8RbPZknGCZjRqW7_Xr1NY3#DTJ?q#CBcK)L6"FT[rM
+mJZ,G!6Fe_"FH<Nmf(o>!0?`%"Eo[7kl'$2!9<U"".[X*rpKf:~>
+n,EX9!!!tXg$nparri>tm(a\3!!GTUbjk\nrr@0=!!GQ>ZJtcCrrN+qo)JtOSBg[(s)7i9"Ti+_
+WnR1,rrC%1!!F^-]]f=Irr=/4!!GcK]BK4CrrN$5o)JmtL:QFCmf.e~>
+n,EXH8kN@1g$nparri>tm)WK%8d&[mbjk\nrrASe8d&LRZJtcCrrN,4o1B3oSBg[(s-`dW"DNCd
+g@jS,!7g^6"B^Pokl'37!+>Cj"Cd8#kl'$2!W6-m8d%hD\`N_Vs*t~>
+n,EXSJ:NR#g$nparri>tm*1FWJ-::gbjk\nrrBY.J-:%JZJtcCrrN,Fnpgn6cLLo6\,:aZDh+kA
+p>c/QiUhX'I#>T#rRq2NO7Rl)G)EoqrRCiJr/1&q",aYNqsOK7~>
+n,E[i#QOj,[bUTUbl7eBnAQL>!!FL)^?GLUrr?!q!!G`F[cRGJrrMg/oDf("Kt?FDmg/jl"WqcF
+^?GLTrrDKZ!!EsfZJkZ5rr=/4!!GcK]BK4CrrN*rnc/buVUtP0s*t~>
+n,E[k:J+6*[bUTUbl7eBnB>5/8d&1R^?GLUrr@cN8d&RW[cRGJrrMjsoL]<]Lq;aGoMGKY"]TN&
+^?GLTrrDW^8d%tCZJkZ5rr?Hu8d&U\]BK4CrrN+Nnk'")VUtP0s*t~>
+n,E[kKReT;[bUTUbl7eBnBm3bJ-:7Y^?GLUrrB(sJ-:%M[cRGJrrMnPo7."&]&rnaK`-E)H?,%[
+kksK@!;?&8"FYp.iVM7-!0?`%"Eo[7kl'$2!WK"eJ-)V"p?qs2~>
+n,E[m4obQgMSn]VbPq\Bo#)44!!ERZYi,B=rr=kQ!!H5W]'0+RrrN(9o)JnfVUkEiqu?moHD&^X
+ro="ZrYP2,"*g`tpt>ZI+7fI87Z+hArR:cHII[@@3L7bTrpTl;~>
+n,E[mG"PA%Oi-G]bPq\Bo#t/*8d%k?Yi,B=rr?s78d&a_]'0+RrrN(ao1B.$VUkF9r(7-%HD&^X
+ro="Zr`\qd"+-s"pt>ZI@.Qtn@Z%e]rR:cHU@LnZ@$\n&rpTl;~>
+n,EFfT)O6BQG_tbbPq\Bo$W<aJ-:@RYi,B=rrAMcJ-9tN]'0+RrrN)*o7-spVUkFTr."rkHD&^X
+ro="ZrepE!"+I0%pt>ZIO7Rl)G)EoqrR:cH^%-[VI?qtCrpTl;~>
+mf*90rW!'WW7LV?bPq\Bo;Vo`!!@>=f_=J,!"f&."B^VslM]cC!7CB<";d9>i"5he"Uf1&[,Ur@
+rr>O\!!?MtdIc,l!$Ce4"@e9\kl'!1!1iZ\"<!*.kPXfKJ,~>
+mf*9Wr^m<&W7LV?bPq\Bo=Rcf8cs@7f_=J,!*/qh"DEb.lM]cC!8R0<"B1N%j&Q%M"\rrj[,Ur@
+rr@E<8crt%dIc,l!+>Cj"Cd8#kl'!1!4hYm"B12hkPXfKJ,~>
+mf*9trdY-(W7LV?bPq\Bo>lLRJ-11pf_=J,!/UQ'"E]U:lM]cC!9Ng&"FlWQk(rtd"b(BF[,Ur@
+rrAecJ-1.hdIc,l!0?`%"Eo[7kl'!1!6t(b"FZ0=kPXfKJ,~>
+mf*9kr;Zq@]]K"4rrW,hB(>p(@%5O8jo5>LqZ$b0O2C8_j8T/X2"L\KBWl^Z!!P6'QcSUniVrmu
+oDf"]PfW=mgA_-po)Jn_MS&*Ne,KEZnc/dpJ?@](n,In~>
+mf*:,rCR0E]]K"4rrW,hNq,dEDk#,Gjo5>Qqaq!-O2C8_j8T/XDY$I%H*<\78d/CAQcSUniVrnH
+oL]6rPfW=mgA_.\o1B-pMS&*Ne,KEmnk'$XJ?@](n,In~>
+mf*:<rI>!2]]K"4rrW,hXR^lDHCN:Rjo5>Tqg\fkO2C8_j8T/XR.Gh0Ks.cZJ-C(=QcSUniVrnf
+oRI'kPfW=mgA_/6o7-seMS&*Ne,KF'n:1SBhYHX?J,~>
+mf*:Rr;Zs>T$Qp)b5VP@j;%7d"B(K*nG_SM!6b6>"DEt<mf)8H!WJDV!!4j?')_e6!b$VZg@sP*
+!1i`^"=f>Cl2B?9!$Ce4"@e9\kl'!1!5@t'")+CYp$_p2~>
+mf*:WrCR2nT[3-+b5VP@k?.=J"DF%@nG_SM!8@<B"E0ICmf)8H!WKCr8ci=d<r>PmBn35;pYc&O
+\b&Js=c9uXrS%8O@.Qtn@Z%e]rR:cHd.'^1F.q.Wn,In~>
+mf*:ZrI>$%T[3-+b5VP@lA>+_"F-0PnG_SM!9O*."E]gHmf)8H!WL12J,u*nr."ogJ?%>ti;Wf&
+oRI'lMnSBRgA_/6o7-seMS&*Ne,KF)nUL^hU"/i)s*t~>
+mf*=e-N*oI:p]$RrlY6AqM"M@"A"Tjm/H/I!3>ts"ETjNnG_GI!UU-a!!*3jqu?mBEfRp!r8@ST
+an,Q9'83[NqqD&M+7fI87Z+hArR:cH^@;1+<1(o"rp]r<~>
+mf*=eAGo+'EO4NsrlY6AqPNjV"D!S1m/H/I!5n\+"ETjNnG_GI!UrnW8c_Rur(7,lEfRp!r8@ST
+f^qc=:kZ.6qqD&M@.Qtn@Z%e]rR:cHdIBg3C7*68rp]r<~>
+mf*=eP5Tn6LpPt5rlY6AqRuKN"F-!Em/H/I!7gss"ETjNnG_GI!V:s8J,k3!J-C7>NkaiVi;Wf;
+oRI'mKX0V7gA_/6o7-seMS&*Ne,KF)nULagR*>+"nGe"~>
+mJd/pr;Zs)M8niYb5VPBjp1MY"@nEblM]lF!/paT"9N\3bjs`m!W?*k!!!)u!!Q&BT[NH2i;WfJ
+o)Jl;W7q%#rr=/4!!GcK]BK4BrrBe'!!G`P`9mQns*t~>
+mJd0HrCR2dP/cebb5VPBlVI.F"CmD)lM]lF!3Q,j"*BmRo&9TLrJ0u:!)*5^"_)eNde!IrrrD``
+8csI>gA'D%!+>Cj"Cd8#kl'!1!7C=/"CmP3mJcVTJ,~>
+mJd0ir."m9`p3KErrW2fKCjZsGDs9$rT=+[`VY/fFI15BiVrrWWU53>EdFD,oD[\J!;Q/9"+I3&
+ptG`JO7Rl)G)EoqrR:cHhXQ+!H'#u3rp]r<~>
+mJd0Rqu?jKW7CM=b5VM?:\4Vi6]/P?rT=+[B`%i5%<e2eo\ofNrjD.o"Uf1&[,Ur>rrN*CoDeu!
+T$d2arr=/4!!GcK]BK4BrrB(h!!G?@]]oCas*t~>
+mJd0or(7)tW7CM=b5VM?Jb2P;@>__]rT=+[Pl+,V:3N)Qo\ofNrlOS#"\rrj[,Ur>rrN+.oL]4'
+T$d2arr?Hu8d&U\]BK4BrrBt,8d&IY]]oCas*t~>
+mJd1/r."p'W7CM=b5VM?V=]9@GDa&srT=+[[/>FWIWh1,o\ofNrn$Rg"b(BF[,Ur>rrN+\oRI$j
+T$d2arrA,OJ-:%Q]BK4BrrCU>J-:1V]]oCas*t~>
+mJd19qZ$_.]&NP.rrN+foDf"[M7VpLk5PEOqu?j/GFd1Si;WiS)XdY020P>-meu#B!)E.d"@89m
+mf(u@!$Ce4"@e9\kl'!1!1r]\">GS>k5=`KJ,~>
+mJd1Eqaps<]&NP.rrN,-oL]6oM7VpLk5PF/r(7)eGFd1Si;WiS>jk8g>'?7Rmeu#B!.jc7"Cm\:
+mf(u@!+>Cj"Cd8#kl'!1!4q\m"BpPhk5=`KJ,~>
+mJd1Mqg\d.]&NP.rrN,AoRI'hM7VpLk5PFWr."p!GFd1Si;WiSN:29#F`s+mmeu#B!2fC="FHBR
+mf(u@!0?`%"Eo[7kl'!1!711c"F>g3k5=`KJ,~>
+mJd4c&,ZD1$BiR!r6#$>f^o.H7YnY>r9""Z./X&J&p^,!p#,iNrc@N."CH\Zg@sG'!.+8;"=B&>
+kl'99!$Ce4"@e9\kl'!1!.aS>"=f)2j8AEHJ,~>
+mJd4c<;]>k:702kr6#$>iq,hG@YhVZr9""ZB)G7(:jJ\_p#,iNrgN:J"DE=cg@sG'!2/sV"BUMo
+kl'99!+>Cj"Cd8#kl'!1!2T-W"B^>`j8AEHJ,~>
+mJd4cL\lT(SBC6sb5VJ,oRI'fLq;gJk5PFGr."otH(WUZi;WiW\*nhMDh+kApYGiL]_$^WI#GZ$
+rS.>PO7Rl)G)EoqrR:cH_!upXHA&Wbr:'`:~>
+mJd4d9)ASk0<Egurlb<Br<r8u"@e6Zkl'ZD!!N3""<)T\f(S#$!6t!5"Wh]E^?GLNrrAbb!!Ejc
+Z/PQ6rr=/4!!GcK]BK4Brr?U"!!Fa&YMf9Hs*t~>
+mJd4dIeu_?@'&#Qrlb<BrDN;\"Cd5!kl'ZD!)3;_"B'Q?f(S#$!8?p7"]KH%^?GLNrrB_(8d%qB
+Z/PQ6rr?Hu8d&U\]BK4BrrA2O8d&7JYMf9Hs*t~>
+mJd4dV#,ZFKrir!rlb<BrIsop"EoX5kl'ZD!.t-!"FGHhf(S#$!9<R!"aY3L^?GLNrrCC;J-:=R
+Z/PQ6rrA,OJ-:%Q]BK4BrrB@pJ-:1MYMf9Hs*t~>
+m/I':q>^V,]]An3rrN*Ko`,+kMS/0OkPkPBqZ$a<H_f<ghu<`T/b&fE8:$oUoD[SG!5\7,"*CEn
+pY5]J+7fI87Z+hArR:cH3:QtO.=eSYqXFN8~>
+m/I'^qFUj;]]An3rrN+4oh#?uMS/0OkPkPJqapuhH_f<ghu<`TC%4e!@!\HmoD[SG!7UO3"*pcs
+pY5]J@.Qtn@Z%e]rR:cHEUcX(=FdR3qXFN8~>
+m/I(#qLA[.]]An3rrN+`omd0fMS/0OkPkPPqge]n!i4KChu<`TQ19A.EdFA*oD[SG!8mBu"+I-#
+pY5]JO7Rl)G)EoqrR:cHSFM+4H@W0UqXFN8~>
+m/I'qq>^X(N6:MbbPqQ+o`,,"N5"TUkPkOoqZ$a<I&>Tlhu<`VMXg`N#]#1$iVM@0!8d;I"BM&>
+oD[PF!$Ce4"@e9\kl'!1!"AAt"=\l(htljBJ,~>
+m/I(0qFUlcQ-/IkbPqQcoh#@$N5"TUkPkP-qapuhI&>Tlhu<`VX7Ajd9PoNjiVM@0!9`rG"DjUT
+oD[PF!+>Cj"Cd8#kl'!1!)i>Z"B^2WhtljBJ,~>
+m/I(>q1&R;b3]&LrrAY`J-9tQ^?Y[[rrCmPJ-:4HVV1b%rrN,9npgmmDhbUWqV;)Nmdkr3I%8RT
+rnRMRO7Rl)G)EoqrR:cHL@KcsH@W0UqXFN8~>
+m/I(Uq#COAW7LS>bl7Z0o`,,0OMgGakPkOKqZ$a<I&>WmhZ!W5"S2Ts/p*AumJYi?!<2Qi"?DXa
+mf)#A!$Ce4"@e9\kl'$2!71-7">k\4i;2sCJ,~>
+m/I(Xq+:cnWn-e@bl7Zgoh#@*OMgGakPkOiqapuhI&>WmhZ!W=9_1j[=EKhJmJYi?!<2R^"CRD3
+mf)#A!+>Cj"Cd8#kl'$2!8[-:"C$G[i;2sCJ,~>
+m/I([q1&U$Wn-e@bl7[:omd0cOMgGakPkP*qge]o!iF]HhZ!WCK(FKrGBB+imJYi?!<2S?"FQBO
+mf)#A!0?`%"Eo[7kl'$2!9`j%"F,L#i;2sCJ,~>
+m/I+c0)5JM7(D1LrltHC6hUK`$?VQTnG_VN!-%f8"<2`cgA'P)!W>:T!!HDQVqC^trrN*)oDf":
+M7VjIh#@?no)Jn_MS&*NeGfN0n,NSRK!=83nGe"~>
+m/I+cCACI)Cq/EtrltHCH1ji69luZBnG_VN!1E^V"B'WEgA'P)!W@358d&aTVqC^trrN*poL]6e
+M7VjIh#@@[o1B-pMS&*NeGfNQn4EgiK!=83nGe"~>
+m/I+cQMH%6MR_U=rltHCU%X!?IWUjsnG_VN!4_oVs*OmFgA'P)!WAV]J-9h?VqC^trrN+PoRI'l
+M7VjIh#@A6o7-seMS&*NeGfNhn:1XbK!=83nGe"~>
+li-rrp](D-_WL^>rr>:W!!FEgSC$ojrr>ai!!F-dVV:h%rrN+foDf%/E/V?jqqD&M+7oO9#D0,9
+qV;,A!!GcK]BK4Crr>IV!!GoJ[H.8Ts*t~>
+li-sIpdtX=_WL^>rr@698d&+;SC$ojrr@TH8d&%>VV:h%rrN,-oL]9`E/V?jqqD&M@.[%o9S0G)
+qV;,A8d&U\]BK4Crr@B78d&UW[H.8Ts*t~>
+li-sipj`I1_WL^>rrA\bJ-:1BSC$ojrrAqnJH'uuVV:h%rrN,AoRI*mE/V?jqqD&MO7[r*ItFi\
+qV;,AJ-:%Q]BK4CrrAe_J-9tJ[H.8Ts*t~>
+li-sQp](F$KZi`ZcMml#p&G4TI&,Ehk5PE,qZ$a/I&5Kih>[ND#PA'#4F!@?nc%8B!$Ce4")"C[
+p>#]=!!GcK]BK4DrrMEgn,NSrMS&*NnGe"~>
+li-snpdtZ`PKW=icMml^p.>HmI&,Ehk5PEkqapudI&5Kih>[NH:\@<`?$Mj`nc%8B!+>Cj"*:6g
+p>#]=8d&U\]BK4DrrMXan4EgtMS&*NnGe"~>
+li-t.pOE@;bO#,OrrAJ\J-:%CUtGG(rrA5ZJ-:=KV:bOurrMbEomd3fGaltJrn@APO7Rl(IA>Be
+h#Hqq"Eo[7kl''3!VM'6J-9nM]BK4_s*t~>
+li-t3pAb=+RFC['ci3t]p&G4qK!=20kPkPVq>^X*HD9!ah>[NS9_JGi!bHtdh>#\'!%7@<"A,!(
+nc%AEnc/e^MS&*Nec,W-n,NUqEKA$(rp]r<~>
+li-t@pIYQcU!rN/ci3uKp.>I"K!=20kPkPXqFUlbHD9!ah>[NSJ+ZD:C4`VEpt>ZIAb/LsAsgd3
+rn[VF8d&U\]BK4DrrB1j8d.n.O2L>`nGe"~>
+li-tIpOEBuVpk/5ci4!(p4*9cK!=20kPkPZqLA]tHD9!ah>[NSV"K6@Dh>.Jpt>ZIPOj;-I$i+I
+rn[VFJ-:%Q]BK4DrrC%-J-CFBO2L>`nGe"~>
+li."a&,-&,(oGsVrR(WFn+H_b#]Pa9kksWD!71H@"*gHfp"fWKrhfAh"WqcH_<V!Prr>7S!!Fp7
+_!CsUrrCsI!!GcK]BK4ErrN!Bn,NV6FdUDCrp]r<~>
+li."a<;/uf<iamDrR(WFo_(l\9Q5s(kksWD!8[HC"*gHfp"fWKrkA(u"]TN(_<V!Prr@668d&@Y
+_!CsUrrD9R8d&U\]BK4ErrN%-n4Ej`FdUDCrp]r<~>
+li."aL\H<%KW`turR(WFp\'+@IW17ZkksWD!9a0."*gHfp"fWKrm:@h"aY3N_<V!PrrAY^J-:7[
+_!CsUrrDNYJ-:%Q]BK4ErrN(]n:1[gFdUDCrp]r<~>
+li."b6M:B^,d,qprmLfH\+Te*/p<W*nG_VN!2oVm")==Po\BHIo*b9m"\*g3de*Olrr>:T!!Emf
+[,_&?rrCdD!!GcK]BK4ErrA\[!!GT8Ut>>/s*t~>
+li."bGkO`4?Er;XrmLfHbk=X4=E^(TnG_VN!5SD&"*0mXo\BHIohtNV"^lYMde*Olrr@668d%tE
+[,_&?rrD0O8d&U\]BK4ErrB\"8d&IJUt>>/s*t~>
+li."bT_<m=LU>k/rmLfHg\-.$GBT@snG_VN!7Uao"*g<^o\BHIpP&?l"`ep_de*OlrrA\_J-:=T
+[,_&?rrDEVJ-:%Q]BK4ErrCC6J-9tAUt>>/s*t~>
+lMgj0o`,+AZJP9Re,KDhp&G5!J#M)pk5PF+q#CP&Qd#"!h>[NS=SMk""`&k!iVM4,!'g#S")k*k
+pYPoM^[_@-7Z+hArR_&MpE8r*"TrCkZJt`Ls*t~>
+lMgjVoh#?n[bg]Ve,KE<p.>I"J#M)pk5PFRq+:d+Qd#"!h>[NSL\OIF9PoNjiVM4,!-[p*"*g`t
+pYPoMddg!5@Z%e]rR_&Mq-`\a"\WZcZJt`Ls*t~>
+lMgjromd1$\DHoXe,KEYp4*9bJ#M)pk5PFoq1&TmQd#"!h>[NSWq_)JIrC(JiVM4,!2&h4"+R6&
+pYPoMhsu:#G)EoqrR_&MqiL;t"b1HEZJt`Ls*t~>
+lMgjcoDf"@[,:QUeGfLgpAb@8EK%Qmr9""Z8GN5g8Wq*]rnRMRWqZPt.WgopmJY];!&*mC"A,*.
+o)@PH!3>Yj"@e9\kl'-5!-@T/"Y"PW`9dHks*t~>
+lMgk&oL]6n\)6lXeGfMTpIYTeEK%Qmr9""ZI/-A;AWk($rnRMR_>$V+=*0\HmJY];!,M-t"D=4L
+o)@PH!5nA""Cd8#kl'-5!1`LM"]of0`9dHks*t~>
+lMgk7oRI(#]&32[eGfN/pOEEoEK%Qmr9""ZV"oNDH'628rnRMRdeJ=rG]]1imJY];!138,"FZcb
+o)@PH!7gXj"Eo[7kl'-5!4hQK"aG-Q`9dHks*t~>
+lMgkCo)Jn?[,:QUf)G`Rp&G7mH(N@Qroa:^o*G-l">c"NlM]N<!V6]p!!H)GV:P@lrr<l+!!FI+
+_!:mUrr@uJ!!GcK]BK4GrrL"?n,NXo?%/X$p&=F[J,~>
+lMgkKo1B-m\)6lXf)G`ip.>KuH(N@Qroa:^p/(QW"C-o"lM]N<!VK@d8d&XPV:P@lrr?6n8d&1U
+_!:mUrrB1l8d&U\]BK4GrrLVDmn*asI\kWgrpTl;~>
+lMgkQo7-t"]&32[f)Ga%p4*<dH(N@Qroa:^q1SQo"FH*AlM]N<!V_<DJ-9k?V:P@lrrA#KJ-::]
+_!:mUrrC%/J-:%Q]BK4GrrM)1mskR[I\kWgrpTl;~>
+lMgna'Cu2,,cokprR_&L0_YPN+E3.FiVDX9!1W``";Za"jS[g5!WH3t!!N^ILpuIBf`(sCnGi[p
+I^.i-hu<[enc/e^MS&*Ng&D*9)".G.13/Dfk54THJ,~>
+lMgna=7]#e?F&G[rR_&LD"gO*<,dZ%iVDX9!4_er"B'u^jS[g5!WIlN8d.q-LpuIBf`(sFnO`pW
+J[+/0hu<\<nk'$oMS&*Ng&D*@>OP/f=`TP8k54THJ,~>
+lMgnaM=Z6#Lq)=6rR_&LR.l+7H>n\KiVDX9!6t:h"FZ$4jS[g5!WK+qJ-CC@LpuIBf`(sIn:1Uo
+Z/GK9rrB@qJ-:%Q]BK4HrrM_MmskRbEfRfpqsOK7~>
+lMgna9(Drb'qO.Nr7V)MS+cme"(-AGcLCeqrrMj>pAb;9Wn[='rrB(q!!OutQc\^qf`(rdn,NSg
+U"&`6i;Wd2nc/e^MS&*NgA_3:..7-?&o3#peFW\-s*t~>
+lMgnaIe$)6<iXsGr7V)M\G&T"95&XCcLCeqrrMq*pIYO6Wn[='rrBn38d/=>Qc\^qf`(s"n4Eh"
+U"&`6i;Wdnnk'$oMS&*NgA_3AB(&=r:i1`[eFW\-s*t~>
+lMgnaV"0$=KsTS*r7V)Mc1c_mIrBY)cLCeqrrN"[p4*4Eg\BP'!7L^o"a>*Uam]5]rrCsGJ-:@q
+eF`aurrAGWJ-:%Q]BK4IrrM_UmskUiDh+_7oD\1XJ,~>
+l2La,nGi^uJ_0AernRMSh[oM^"Zg^a]&WVKrr@E>!!G][cgq(jrrM^!qZ$atI]1omfDbhhn,NS8
+P/Q_ciVro@nGi\]MS&*Ng]%<;..7-?"^-)9_s%!bs*t~>
+l2LaSnO`s[R+Lg'rnRMSkZ.@L"^H,.]&WVKrrAee8d&arcgq(jrrMdjqaq!%I]1omfDbi=n4Egb
+P/Q_ciVroGnO`pnMS&*Ng]%<BB(&=r9P/O8_s%!bs*t~>
+l2LapnULdpWn6_9rnRMSmtg^g"a"gF]&WVKrrBb+J-:=kcgq(jrrMkJqg\fhI]1omfDbi[n:1Xj
+P/Q_ciVroLnULacMS&*Ng]%<GPja,,IrBRt_s%!bs*t~>
+l2La_mf3Jfc0G*'hZ!WJ0_YPO*cHY/eare'rrKG/p&G4'MSA<Ph#@ES=Sr.&$ZM!7k53g2!V[H"
+!!@,Di;)@3!0cpQ"@e6[kl'<:!RDnW!!`QtFH!Zbp\sR[J,~>
+l2Lb"mn*_0cKb3(hZ!WMD"gO+;f@8deare'rrL59p.>H_N5"NRh#@ESL\saJ:2l*%k53g2!Vosg
+8csIGi;)@3!4),e"Cd5"kl'<:!Sq/O8d8^GN4.U;rpB`9~>
+l2Lb4mskP/cg(<)hZ!WPR.l+8H>eD6eare'rrLf)p4*9qNkX`Th#@ESWr.ANIW11Uk53g2!W.iE
+J-1P2i;)@3!6Ob]"EoX6kl'<:!U#R4J-L%9N4.U;rpB`9~>
+l2Lb6mJmA6WoNaLi;WiL48/^Z%qL$Wa6WWcrrL"GoDf"aWS$qDh#@ASqu?mQG*pGArn.5NL[G-F
+*1G+@rSmhW/F`]C'md=Lqq_8QP76jZ#!?p\XOZn?m/MS~>
+l2LbAmRdUg[c@#Xi;WiOFSAB3:25-Ga6WWcrrLVIoL]7$WS$qDh#@Ajr(7,pG*pGArn.5NWpWI^
+<h.D'rSmhWC%4du;1c7;qq_8QZ;U*_#$c2'XOZn?m/MS~>
+l2LbJmXPFt^Z4tai;WiRSbIX=I;XD%a6WWcrrM)5oRI'sWS$qDh#@B&r."rpG*pGArn.5N_sMsV
+SBUL$ir9"EnULajLUQ:@h>[MtL@0QrFE3,;eai\*s*t~>
+l2Le`$gmuu"_lNTq>TFS!TQ$2!!`j8GE]]"q#9LW!P8d3!!EFP_<CdOrrM^!r;Zt!I]1upf`)!$%
+.+#t8@.1IroF(ZU[J0d%rThaqYoIR!Rj:$!!`QjEJ147mJQ;MJ,~>
+l2Le`;XR-\9oRZkq>TFS!UF[u8dA('GE]]"q#9LW!RF[88d%hE_<CdOrrMdjrCR3'I]1upf`)!1
+;XI'ZD6r*nroF(Z^@+Yt;2EZhqYoIR!T81h8d8UAKVm&^r9OB5~>
+l2Le`L$jHpJu.)eq>TFS!V)WQJ-UOAGE]]"q#9LW!SrM$J-1tNkkj08!V_<HJ-9k@W7q!urrMA=
+m=5=qZekHUjSo5-mskRmSC6m&ro*kXl(@?n#'=j<VU"T,li2J~>
+l2Le`1@+uE+IqNbr;PjY!NQq/!!`j8G)iuco`"(S!KRBR!!En#dI@(irrN*mrW!*0E/M6hr7V)N
+k:#Wr"BiV(q>TOV!TOm]!!XBfeFNG6roX4^dU*.F!!`^'EeUC6lMBfGJ,~>
+l2Le`D<sju?E`G^r;PjY!Q8+78dA('G)iuco`"(S!O,;g8d&%`dI@(irrN+Lr^m>hE/M6hr7V)N
+mUkcW"F@rIq>TOV!UEkT8d8Ifg%+t;roX4^hi1=t8dA%!EeUC6lMBfGJ,~>
+l2Le`R-]>,MnJ-Cr;PjY!S*)%J-UOAG)iuco`"(S!QTf^J-:FudI@(irrN+prdY0$E/M6hr7V)N
+o9AQk"HgR`q>TOV!V)'7J-Lk8hX^L@roX4^kc]U+J-UREEeUC6lMBfGJ,~>
+kl1Wpl2UuP\*<Varp'LacU[[/#7Og[Nj@=.r9=4^gHY*+";?sNnbh5C!1s/i"YY%db4,DarrL.[
+kl:iY_WU^nkl1\H.-^d<"$1nHoD&7_rpB^entJA8!!jBKG)E<FlM:GEs*t~>
+kl1XGl:M5#_Wgdlrp'LagjJff#>SoTNj@=.r9=4^k'-5c"B;&Hnbh5C!4i)$"^#r8b4,DarrL_X
+kt2)#`TR$qkl1\OB'Mto9Q6ZMoD&7_rpB^ep:Y\:8dJ:.G)E<FlM:GEs*t~>
+kl1Xgl@9&)bN\`urp'LakG.a$#C^T7Nj@=.r9=4^m@Wfs"G<`,nbh5C!6tLn"a>-Wb4,DarrM/?
+l$ro"`om-rkl1\TPj3c)JXEt"oD&7_rpB^eps>Z"J-^L@G)E<FlM:GEs*t~>
+kl1XCkl:ni6)s5Dr;Q-a!Obes!!aBOG`T2_nbh\P!p=J-li71mAC'Z=rnm_]mfWUj<dq"$pY5]L
+k@Xq\!!O@#iUZmFli."#*9@/,%R"Wo_WLXjr;HWoqu?]q"R`jU6O<#Y#mNM1I?UtcmJ?hHs*t~>
+kl1Xckt2.RFM$i3r;Q-a!R-/g8dA7/G`T2_nbh\P!q)IQlq.FTL=5Jbrnm_]nk;YJB7?f5pY5]L
+mZUB.8d/CmiUZmFli."5?KFcc;fn80d-LK(r;HWoqu?]q"S0j;Gu*d!#u"WDI?UtcmJ?hHs*t~>
+kl1Y&l$rthRE4[er;Q-a!SaOFJ-UF>G`T2_nbh\P!qWmSm!o7jT[W<(rnm_]on%^EFFL1BpY5]L
+o<X&3J-Cb8iUZmFli."CNobctL7>Kgh!Xt7r;HWoqu?]q"SUWfTnMc_$%I&:I?UtcmJ?hHs*t~>
+kl1Xrjo>W0FLgr:r;Q]hrr_\pCE)pH#Qcc!I$D(mnbhbR"8fZ2#j;6m&p2Ojq#13Ors8Qg!"4".
+\`WhHrr`,/>6s6h"sSWKo(i7`nG`O+:Yc!S%OaPFC4#l+")V4&([1o+"#"51LnVT=nGDDKJ,~>
+kl1Y/k"5kcR)ngmr;Q]hrr_l6Q<j,T#?l%nPd]98r9XFcr6C*pkXl%ZQ.PO#rVkgV#lSs>:O%c-
+k5=*9"8pH%:ub.P@%Z0Dq>L<^rrLW$h+@lNAp0#qTV;=Y"."da>3SWc93H(ULnVT=nGDDKJ,~>
+kl1Y=k(!\rZIJF>r;Q]hrr_uI[>jg/#Bk'6Pd]98r9XFcrS4H,k^WklY1rI@rVkgV#lU?FJU*-`
+k5=*9"8prVK]@ReN4%R6q>L<^rrM&Uh1,Z`P+AVY]DT;D[B,mVl$s(iGB%k`TtfCPqre!0~>
+kl1YIirBT%89UT9f\5'6gXEg.JlXAl!!j??FG-7#hX^U5rri>TSmN2l!!`TaHEuT*qY^?lkl1qf
+P5mXuR*"grj8T;^o"KuW&DdBn"#k>)j7iEKrr2fps8E,WVIpjV!"&obApB'![*Ih,r9"$0~>
+kl1YOj%9MUHCVIgi8agt"lIY<VMAjU8dJ:+FG-7#hX^U5rri>^\rBhP8dA%-S]'adqY^?lkl1qf
+Z:\ebR*"grj8T;^p!Bdl<Sg=S9Q$98kkFrPrr2fps8E,`^lr'48d\6qCj:]'[*Ih,r9"$0~>
+kl1YSj+%YqTXW(rkj%I!lfd-M^oE[jJ-^OCFG-7#hX^U5rri>fcEE,cJ-UXk[aOL9qY^?lkl1qf
+a+/u#R*"grj8T;^ptireLu*XgJX<ajlhC8Srr2fps8E,gd^+qAJ-pdMEd3>-[*Ih,r9"$0~>
+kl1\_'E.t9!uWR>/0Y_S!!s!!E.*kMb2i9pnc&]PB0Hj[!!j;u<c39EpA=jSrs%?\HC(Yap>u;V
+mrM8Le,Tms7VT7#q#15rG?-I0[/^U:*Ck$qLmt]mi:-UBjo9i~>
+kl1\_=8ker92\kq>?=\L8dS4!EIEtNb2i9pnc&]qPBKs[8dJO<KpJCqpA=jSrs%XYOI*!"p>u;V
+oULMBe4L-THBZA>q#164Sqh/^Zq:^)@WHjPS$L2pnG<.Gs*t~>
+kl1\_M>i#0IsZKhI"$RmJ-g[HEda(Ob2i9pnc&^3Z_!!,J-_""W3j2&pA=jSrs%k@TU2\2p>u;V
+pUR2ae:7sdTX!#;q#16E];h6R["&O2F`VqdS$L2pnG<.Gs*t~>
+kPl&N""mAeHA%6?P`gl>9IUD&!"'6$DL7;9^=_iKrp]pf+OU5l[G:3HlMh(e5JXG;jSS'=!8l'%
+"_?*EpASF+!"BDf88EO)P+oD.hsU:<j8XW~>
+kPl'39O_aWHA%6?P`guRDHoui8d\="E-mM;^=_iKrp]pf@+%XL^>//QlMh(eG/CDtjSS'=!9h^#
+"c:^jpAU)Z8e"Nt@rZgJP+oD.hsU:<j8XW~>
+kPl$\JV\_rHA%6?P`h)bL4Rs,$@R&;H]+W4f^8M6nG`KMdXVG=h!Y%(rs&Fn`3-o:qrRhXn'6Fe
+UsnK"ri`\Z%=WVHG'\h)U:/8&meHb@s*t~>
+kPl74`3,;fU9VGOaMu*/ZDX4D>s'#.huF,g-W"o6NM3o0k4JT>rsjj*?rBa(=BT-B?tX@rEURrJ
+@fKg9?2dY.:..N?3&ipe]\W;\li.1go\7O?n,DGK''ag]>Ydpc<Dub#?=$uKDJsN7mrBIe@UWYO
+>#8$k7R9@(1cB-Rd-gk$=CG3<?>=:jFEI+ps'cCE>#8$b5W^SL*Z>Lni;aGn'I>e:C4(VkQ(kS%
+eDp&nrSdd,~>
+kPl7DbH@%mU9VGOaMu*/ZDX4MG@jiKi(=AN<b6B%NM3o0k4JT>rsbupKm7W^FE2PGEclVPmWo"Y
+FE;JBrG2gSC2@KoB:limpAXCX#6+8Lb1H+]jo5YVTTaqKDJjH4D>eGUF*MutH6IQUFE;JACi!m#
+AnP^cA:h&4mesVLLO+ApIsucpI=-Bgp3I3kFE;D;CM.0e>[(6.:efn@&PQ&'?YFJ-Jr>ngZGY2P
+nG)t@s*t~>
+kPl1Nd&rRrU9VGOaMu*/ZDX4TM1j`9$\*GDFFK4C\^9L2r9jRp_QohtN/NLGK7SQ&It3+;K):'+
+JqSi4L5:\^]\W;\li.1go\7O?n,DGK$hV'6S<&M^KnFr,If4`tJ:W:<K)C-7It3*%K7nuCYgDh:
+bc%;%P)bQ]M2$]RK):&uJ,OirJ)PniIslZiG^+UfMj:$B_pm`9q#01OJ,~>
+kPlCqkfgcZeDTTZn*]Q+inDbu\ZVZjE)//'k5Yr'/PpG7LR"dMdH'lprpB^rqW5\tTq7jJTq\B\
+W2cr$n?*G,XJr+pVPKrZTV%gIT:i'nh"C[3rri2dk3Vm(rt>>)hS#hZSXc7CTVA6ZVPpMrXm`D#
+XfSS%Vl$>eU7e-LrgX7dYg;b9r9MS1rh9RlV5C2lXnAh;XfSM"VPKoXS=5e0P)tZ\I<B=7?VsWm
+5X.Fh/hZiL'fnHM<FKiqJqo;KR\[.!aOT89o_SREs*t~>
+kPlCqkfgcZeDTTZn*]Q+inDbu\ZVZlJT"ppk=Q1Z=_;c'LR"dMdH'lprpB^rqW5\tTq7jJTq\B\
+W2cr$n?*G,XJr+pVPKrZTV%gIT:i'nh"C[3rri2dk3Vm(rt>>)hS#hZSXc7CTVA6ZVPpMrXm`D#
+XfSS%Vl$>eU7e-LrgX7dYg;b9r9MS1rh9RlV5C2lXnAh;XfSM"VPKoXS=5e0P)tZ\K78)gF)>`-
+ARo:X>[6u,'jtK`CN+NIJqo;KR\[.!aOT89o_SREs*t~>
+kPl@pkfgcZeDTTZn*]Q+inDbu\ZVZnN/*#IJ.6pPG'/1fQ)D:BjRW0HmJd^nji+<pSt;RJU8=`c
+WiW>lXqRq=WMcVjUnXNTT:VXHTVf?Vp&=7V"T%QKm.fZA')qU]]r.KnS=Q:FU84Z`W2cr$n#d&#
+XK/:tVP^/`TV%eSS-YakcgLc0lccR3U'7?hVPpPtor]17XJr+pUnOENR[9;&OH#-QKnP&/JUi6#
+J,OiiIK+]pHiJI(IY*?6PFA;N]?&O]m.C/RhuA3~>
+kPkecp?_#0o_SLarY#2,q"*q9hUTfb[&KXYEDekD%J'Q3!tun?:i(N2N0gEMa4TSGqYog\%fGkT
+eBlRie(*%%g=tE>mb\W4gtLK8f[eU&da6=cbK\]*qW\"_rqcEdrT!nhqX31fcd:%eeCE.&g"P39
+hX02AhV?l>g=b-0eC;pncHOJ[jRrNNoA\6Ed*pOtg"bETh]:P.g=b-0eC)[eb/V<5]XY>QY,\Cq
+U7\!GR@';*p662UR%'bEWj&tH`m<8okjS3@rVkXQJ,~>
+kPkecp?_#0o_SLarY#2,q"*q9hUTfb[&KX[J8f%%:\.0j92JYqBQJQQN0gEMa4TSGqYog\%fGkT
+eBlRie(*%%g=tE>mb\W4gtLK8f[eU&da6=cbK\]*qW\"_rqcEdrT!nhqX31fcd:%eeCE.&g"P39
+hX02AhV?l>g=b-0eC;pncHOJ[jRrNNoA\6Ed*pOtg"bETh]:P.g=b-0eC)[eb/V<5]XY>QY,\Cq
+U7\!GR@';*p662UR%'bEWj&tH`m<8okjS3@rVkXQJ,~>
+kPkecp?_#0o_SLarXf&*q"*q9hUTfb[&KX]MhZlRJ.R-UH?a[^JrH%n[`@%`o(r@Orsntsi7--#
+dF6Xsf\5*8hX985h;$`<g"=m+eC)^icHFJblh]lG"TJ8mqYfIS&GkhNda-:edaZguf\,!5gtqGU
+*o>],g=k64f$r3td*BkYdcC*#rU]$tcHt%jf\,'9oA:SEgtLH6f$r-obf[rB^V%(`Ycb"(UnXKP
+S!fY0Q1gFTQC+/7UoLZ.^;eLNhrsP%qYgELs*t~>
+k5PS_r;?Nmp\ts,r;--VlJpXIaM,![TU1[bAm%u-r([l1AT<3OL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+k5PS_r;?Nmp\ts,r;--VlJpXIaM,![TU1^lG]@S9r+Zj_Ed3(cL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+k5PS_r;?Nmp\u!-r;--VlJpXIaM,![TU1atL4b&-J,OiqI1LgZL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+%%EndData
+showpage
+%%Trailer
+end
+%%EOF
diff --git a/templates/French-logo.png b/templates/French-logo.png
new file mode 100755
index 00000000..5edcdfe5
--- /dev/null
+++ b/templates/French-logo.png
Binary files differ
diff --git a/templates/French-packing_list.html b/templates/French-packing_list.html
new file mode 100755
index 00000000..3fa2fec9
--- /dev/null
+++ b/templates/French-packing_list.html
@@ -0,0 +1,152 @@
+CTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional">
+
+<html>
+
+<head>
+
+<title>A2A <%invnumber%> <%name%></title>
+<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+
+</head>
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr>
+ <td width=10>
+ </td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th colspan=2>
+ <h4 align=center>L I S T E&nbsp;&nbsp;D ' E N V O I</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Date de facture&nbsp;:</th><td width=10> </td><td><%invdate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Numéro de facture&nbsp;:</th><td></td><td><%invnumber%></td></tr>
+ </tr>
+
+ <tr>
+ <td>
+ </td>
+ </tr>
+ </td>
+ </table>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Adresse d'envoi</th>
+ </tr>
+
+ <tr>
+ <td><%shiptoname%>
+ <br><%shiptoaddr1%>
+ <br><%shiptoaddr2%>
+ <br><%shiptoaddr3%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>N°</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qté</th>
+ <th>&nbsp;</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=center><%qty%></td>
+ <td><%unit%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>À noter&nbsp;:</td>
+ <td><pre><%notes%></pre></td>
+<%end notes%>
+ <td align=right><b>EXPÉDIÉ PAR&nbsp;:
+ <%shippingpoint%></b>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><font size=-3><!--
+ Conditions d'envoi :
+ Items returned are subject to
+ a 10% restocking charge. A return authorization must be obtained
+ from <%company%> before goods are returned. Returns must be shipped
+ prepaid and properly insured. <%company%> will not be responsible
+ for damages during transit. -->
+ </font>
+ </td>
+ <td width=150>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+</body>
+</html>
diff --git a/templates/French-packing_list.tex b/templates/French-packing_list.tex
new file mode 100755
index 00000000..26e1c249
--- /dev/null
+++ b/templates/French-packing_list.tex
@@ -0,0 +1,125 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage[frenchb]{babel}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rr@{}}
+ Téléphone & <%tel%>\\
+ Télécopieur & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%invnumber%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+<%pagebreak 65 27 37%>
+\end{tabular*}
+
+\newpage
+
+\markright{<%company%>\hfill <%invnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rll@{}}
+ \textbf{Numéro} & \textbf{Description} & \textbf{Qté} &
+ \textbf{Unité} & \textbf{Bin} \\
+<%end pagebreak%>
+
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{2cm}
+
+<%shiptoname%>
+
+<%shiptoaddr1%>
+
+<%shiptoaddr2%>
+
+<%shiptoaddr3%>
+
+<%shiptoaddr4%>
+
+\vspace{3.5cm}
+
+\textbf{L I S T E} \parbox{0.3cm}{\hfill} \textbf{D E}
+\parbox{0.3cm}{\hfill} \textbf{P A Q U E T A G E}
+
+\hfill
+\begin{tabular}[t]{l@{\hspace{0.3cm}}l}
+ \textbf{Date de facture} & <%invdate%> \\
+ \textbf{Numéro de facture} & <%invnumber%> \\
+ \textbf{Numéro de client} & <%customer_id%>
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rll@{}}
+ \textbf{Numéro} & \textbf{Description} & \textbf{Qté} &
+ \textbf{Unité} & \textbf{Bin} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+\vfill
+\centerline{\textbf{Merci de faire affaire avec nous!}}
+
+\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+\footnotetext[1]{\tiny
+Les éléments retournés seront sujets à un supplément de remmagasinnage de
+10\%. Une autorisation de renvoi doit être obtenue au préalable auprès de
+<%company%>. Les frais de transports et d'assurance sur les éléments
+retournés devront être couvert par le client de façon appropriée.
+<%company%> ne peut être tenue responsable des dommages survenus pendant
+le transit.}
+
+\end{document}
diff --git a/templates/French-pick_list.html b/templates/French-pick_list.html
new file mode 100755
index 00000000..da8a3bdf
--- /dev/null
+++ b/templates/French-pick_list.html
@@ -0,0 +1,153 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>P I C K &nbsp;&nbsp; L I S T</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th width=50% align=left><font color=ffffff>Ship To:</th>
+ <th width=50%>&nbsp;</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ </td>
+
+ <td>
+ <%if shiptocontact%>
+ <br>Attn: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=15% align=left>Invoice #</th>
+ <th width=15% align=left>Order #</th>
+ <th width=10% align=left>Date</th>
+ <th width=15% align=left nowrap>Contact</th>
+ <th width=15% align=left>Warehouse</th>
+ <th width=10% align=left>Shipping Point</th>
+ <th width=10% align=left>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%invnumber%>&nbsp;</td>
+ <td><%ordnumber%>&nbsp;</td>
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%transdate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+ <td><%warehouse%>&nbsp;</td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Pos</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qty</th>
+ <th><font color=ffffff>Ship</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Bin</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td align=right>[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</td>
+ <td><%unit%></td>
+ <td align=right><%bin%></td>
+ </tr>
+ <%end number%>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+</table>
+
diff --git a/templates/French-pick_list.tex b/templates/French-pick_list.tex
new file mode 100755
index 00000000..04953ce8
--- /dev/null
+++ b/templates/French-pick_list.tex
@@ -0,0 +1,144 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}rlXrcll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} &
+ \textbf{Qty} & \textbf{Ship} & & \textbf{Bin} \\
+
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.5\textwidth}{
+ \textbf{Ship To}
+} \hfill
+
+\vspace{0.7cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.5\textwidth}{
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+}
+\parbox[t]{.4\textwidth}{
+ <%shiptocontact%>
+
+ <%if shiptophone%>
+ Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{P I C K} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{7}{|X}|} \hline
+ \textbf{Invoice \#} & \textbf{Order \#} & \textbf{Date} & \textbf{Contact}
+ & \textbf{Warehouse} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+ <%invnumber%> & <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%transdate%>
+ <%end shippingdate%>
+ & <%employee%>
+ <%if warehouse%>
+ & <%warehouse%>
+ <%end warehouse%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrcll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} &
+ \textbf{Qty} & \textbf{Ship} & & \textbf{Bin} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> &
+ <%qty%> & [\hspace{1cm}] & <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+}
+
+\end{document}
+
diff --git a/templates/French-pos_invoice.txt b/templates/French-pos_invoice.txt
new file mode 100755
index 00000000..fecd1557
--- /dev/null
+++ b/templates/French-pos_invoice.txt
@@ -0,0 +1,50 @@
+<%company align=center width=40%>
+<%address align=center width=40%>
+
+Till: <%till align=left width=3%> Phone#: <%tel%>
+Cashier: <%employee%>
+Inv No/Date: <%invnumber%> / <%invdate%>
+Printed: <%dateprinted%>
+
+ Qty Description Amount
+<%foreach number%>
+<%qty align=right width=5%> <%description align=left width=24 offset=6%> <%linetotal align=right width=9%>
+ <%number%> @ <%sellprice%>/<%unit%>
+<%end number%>
+
+Number of items: <%rowcount%>
+<%if taxincluded%>
+ ---------------
+ Amount Due: <%invtotal align=right width=9%>
+<%end taxincluded%>
+<%if not taxincluded%>
+ ------------
+ Subtotal: <%subtotal align=right width=9%>
+<%end taxincluded%>
+<%foreach tax%>
+<%taxdescription align=right width=23%> @ <%taxrate align=right width=2%>%: <%tax align=right width=9%>
+<%end tax%>
+ Amount Due: <%invtotal align=right width=9%>
+<%foreach payment%>
+<%paymentaccount align=right width=29%>: <%payment align=right width=9%> <%currency%>
+<%end payment%>
+<%if change%>
+ Change: <%change align=right width=9%>
+<%end change%>
+<%if total%>
+ Balance Due: <%total align=right width=9%>
+<%end total%>
+<%if discount%>
+
+<%discount%> % Discount applied
+<%end discount%>
+
+ Thank you for your valued business!
+
+<%if taxincluded%>
+Taxes are included in price.
+<%end taxincluded%>
+
+
+
+
diff --git a/templates/French-purchase_order.html b/templates/French-purchase_order.html
new file mode 100755
index 00000000..29af338f
--- /dev/null
+++ b/templates/French-purchase_order.html
@@ -0,0 +1,211 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional">
+
+<html>
+
+<head>
+
+<title>Commande <%ordnumber%> <%name%></title>
+<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+
+</head>
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <td align=right>
+ <h4>
+ Tél&nbsp;: <%tel%>
+ <br>Fax&nbsp;: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>B O N&nbsp;&nbsp;D E&nbsp;&nbsp;C O M M A N D E</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% cellspacing=0 cellpadding=0>
+
+ <tr>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Date commande</th><td width=10>&nbsp;</td><td><%orddate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Requis pour</th><td width=10>&nbsp;</td><td><%reqdate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>N° commande</th><td>&nbsp;</td><td><%ordnumber%></td></tr>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+ </td>
+ </table>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Commandé par</th>
+ </tr>
+
+ <tr>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+<br><%address2%>
+<%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+<%country%>
+<%end country%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+<!-- <th align=right><font color=ffffff>No.</th> -->
+ <th align=left><font color=ffffff>N°</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qté</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Prix</th>
+ <th><font color=ffffff>Montant</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+<!-- <td align=right><%runningnumber%>.</td>
+veuillez ajuster le colspan si vous voulez inclure ce poste pour décaler le sous-total vers la droite.
+-->
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=6><hr noshade></td>
+ </tr>
+
+ <tr>
+ <th colspan=4 align=right>Sous-total</th>
+ <td colspan=2 align=right><%subtotal%></td>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=4 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+<%end tax%>
+
+ <tr>
+ <td colspan=2>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=2>À régler dans <b><%terms%></b> jours au plus tard</td>
+ <th colspan=2 align=right>Total</th>
+ <th colspan=2 align=right><%total%></th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>À noter&nbsp;:</td>
+ <td><pre><%notes%></pre></td>
+<%end notes%>
+ <td align=right>
+ Tous prix indiqués en <b><%currency%></b>
+ <br><%shippingpoint%>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td>
+<!--
+<font size=-3>
+ Payment due NET <%terms%> Days from date of Invoice.
+ Interest on overdue amounts will acrue at the rate of 1.5% per month
+ from due date until paid in full. Items returned are subject to
+ a 10% restocking charge. A return authorization must be obtained
+ from <%company%> before goods are returned. Returns must be shipped
+ prepaid and properly insured. <%company%> will not be responsible
+ for damages during transit.
+ </font>
+-->
+ </td>
+ <td width=150>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/French-purchase_order.tex b/templates/French-purchase_order.tex
new file mode 100755
index 00000000..076e573e
--- /dev/null
+++ b/templates/French-purchase_order.tex
@@ -0,0 +1,147 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage[frenchb]{babel}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rr@{}}
+ Téléphone & <%tel%>\\
+ Télécopieur & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%ordnumber%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+<%pagebreak 65 27 37%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Sous-total} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markright{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Amount} \\
+ & reporté de la page <%lastpage%> & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{2cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{3.5cm}
+
+\textbf{B O N} \parbox{0.3cm}{\hfill} \textbf{D E} \parbox{0.3cm}{\hfill}
+\textbf{C O M M A N D E}
+\hfill
+\begin{tabular}[t]{l@{\hspace{0.3cm}}l}
+ \textbf{Date de la commande} & <%orddate%> \\
+<%if reqdate%>
+ \textbf{Livrable le} & <%reqdate%> \\
+<%end reqdate%>
+ \textbf{Numéro de commande} & <%ordnumber%>
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrr@{}}
+ \textbf{Numéro} & \textbf{Description} & \textbf{Qté} &
+ \textbf{Unité} & \textbf{Prix} & \textbf{Montant} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Sous-total} & \textbf{<%subtotal%>} \\
+<%foreach tax%>
+ <%taxdescription%> de <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ \textbf{Total} & \textbf{<%ordtotal%>}\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ Tous les prix indiqués sont en \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+
+%\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+%\footnotetext[1]{\tiny }
+
+\end{document}
diff --git a/templates/French-receipt.tex b/templates/French-receipt.tex
new file mode 100755
index 00000000..6742b5b5
--- /dev/null
+++ b/templates/French-receipt.tex
@@ -0,0 +1,75 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.4cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.0cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+
+\fontfamily{cmss}\fontsize{9pt}{9pt}\selectfont
+
+\parbox[t]{12cm}{
+ <%company%>
+
+ <%address%>}
+\hfill
+\parbox[t]{6cm}{\hfill <%source%>}
+
+\vspace*{0.6cm}
+
+<%text_amount%> \dotfill <%decimal%>/100 \makebox[0.5cm]{\hfill}
+
+\vspace{0.5cm}
+
+\hfill <%datepaid%> \makebox[2cm]{\hfill} <%amount%>
+
+\vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{2.8cm}
+
+<%company%>
+
+\vspace{0.5cm}
+
+<%name%> \hfill <%datepaid%> \hfill <%source%>
+
+\vspace{0.5cm}
+\begin{tabularx}{\textwidth}{lXrr@{}}
+\textbf{Invoice No.} & \textbf{Invoice Date}
+ & \textbf{Due} & \textbf{Applied} \\
+<%foreach invnumber%>
+<%invnumber%> & <%invdate%> \dotfill
+ & <%due%> & <%paid%> \\
+<%end invnumber%>
+\end{tabularx}
+
+\vfill
+
+\end{document}
+
diff --git a/templates/French-request_quotation.html b/templates/French-request_quotation.html
new file mode 100755
index 00000000..fa684866
--- /dev/null
+++ b/templates/French-request_quotation.html
@@ -0,0 +1,202 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <td><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58>
+ </td>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>R E Q U E S T &nbsp;&nbsp; F O R &nbsp;&nbsp; Q U O T A T I O N</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>To:</th>
+ <th align=left width=50%><font color=ffffff>Ship To:</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+<br>
+<%if contact%>
+<br>Attn: <%contact%>
+<%end contact%>
+<%if vendorphone%>
+<br>Tel: <%vendorphone%>
+<%end vendorphone%>
+<%if vendorfax%>
+<br>Fax: <%vendorfax%>
+<%end vendorfax%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddr2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+<br>
+<%if shiptocontact%>
+<br>Attn: <%shiptocontact%>
+<%end shiptocontact%>
+<%if shiptophone%>
+<br>Tel: <%shiptophone%>
+<%end shiptophone%>
+<%if shiptofax%>
+<br>Fax: <%shiptofax%>
+<%end shiptofax%>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr><td>&nbsp;</td></tr>
+
+ <tr>
+ <td colspan=2>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left>RFQ #</th>
+ <th width=17% align=left>Date</th>
+ <th width=17% align=left>Required by</th>
+ <th width=17% align=left>Contact</th>
+ <th width=17% align=left>Shipping Point</th>
+ <th width=15% align=left>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%quonumber%></td>
+ <td><%quodate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height="10"></tr>
+
+ <tr>
+ <td>Please provide price and delivery time for the following items:</td>
+ </tr>
+
+ <tr height="10"></tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+<!-- <th align=right>No.</th> -->
+ <th align=left>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th>Qt'y</th>
+ <th>&nbsp;</th>
+ <th>Delivery</th>
+ <th>Unit Price</th>
+ <th>Extended</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+<!-- <td align=right><%runningnumber%>.</td>
+other per line item variables available <%reqdate%>
+adjust the colspan if you include this to shift subtotal one to the right
+-->
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=7><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+<%if notes%>
+ <tr valign=top>
+ <td>Notes</td>
+ <td><%notes%></td>
+ </tr>
+<%end notes%>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=70%>&nbsp;</td>
+
+ <td width=30%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/French-request_quotation.tex b/templates/French-request_quotation.tex
new file mode 100755
index 00000000..49f1abe7
--- /dev/null
+++ b/templates/French-request_quotation.tex
@@ -0,0 +1,175 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Extended} \\
+ & carried forward from <%lastpage%> & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.45\textwidth}{
+\textbf{To}
+\vspace{0.7cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if vendorphone%>
+Tel: <%vendorphone%>
+<%end vendorphone%>
+
+<%if vendorfax%>
+Fax: <%vendorfax%>
+<%end vendorfax%>
+
+<%email%>
+}
+\parbox[t]{.45\textwidth}{
+\textbf{Ship To}
+\vspace{0.7cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{R E Q U E S T for Q U O T A T I O N}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{RFQ \#} & \textbf{Date} & \textbf{Required by} & \textbf{Contact} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5ex]
+ \hline
+ <%quonumber%> & <%quodate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+Please provide price and delivery time for the following items:
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}lXrllrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} & &
+ \textbf{Delivery} & \textbf{Unit Price} & \textbf{Extended} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> & <%unit%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\hfill
+
+<%notes%>
+
+}
+
+\end{document}
+
diff --git a/templates/French-sales_order.html b/templates/French-sales_order.html
new file mode 100755
index 00000000..3bf0a7b5
--- /dev/null
+++ b/templates/French-sales_order.html
@@ -0,0 +1,237 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional">
+
+<html>
+
+<head>
+
+<title>Commande <%ordnumber%> <%name%></title>
+<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+
+</head>
+
+<body bgcolor="ffffff">
+
+<table width="100%">
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width="100%">
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <td align=right>
+ <h4>
+ Tél&nbsp;: <%tel%>
+ <br>Fax&nbsp;: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>B O N&nbsp;&nbsp;&nbsp;D E&nbsp;&nbsp;&nbsp;C O M M A N D E</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% cellspacing=0 cellpadding=0>
+
+ <tr>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Date commande</th><td width=10>&nbsp;</td><td><%orddate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Requis pour</th><td width=10>&nbsp;</td><td><%reqdate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>N° commande</th><td>&nbsp;</td><td><%ordnumber%></td></tr>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+ </td>
+ </table>
+ </tr>
+
+ <tr>
+ <td>
+ <table width="100%">
+ <tr bgcolor="000000">
+ <th align=left><font color="ffffff">Commandé par</th>
+ <th align=left><font color="ffffff">Adresse d'envoi</th>
+ </tr>
+
+ <tr>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+<br><%address2%>
+<%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+<%country%>
+<%end country%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+<br><%shiptoaddress2%>
+<%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+<%shiptocountry%>
+<%end shiptocountry%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width="100%">
+ <tr bgcolor="000000">
+<!-- <th align=right><font color="ffffff">N°</th> -->
+ <th align=left><font color="ffffff">N°</th>
+ <th align=left><font color="ffffff">Description</th>
+ <th><font color="ffffff">Qté</th>
+ <th>&nbsp;</th>
+ <th><font color="ffffff">Prix</th>
+ <th><font color="ffffff">Remise</th>
+ <th><font color="ffffff">Montant</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+<!-- <td align=right><%runningnumber%>.</td>
+adjust the colspan if you include this to shift subtotal one to the right
+-->
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discount%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=7><hr noshade></td>
+ </tr>
+
+ <tr>
+<%if taxincluded%>
+ <th colspan=5 align=right>Total</th>
+ <td colspan=2 align=right><%ordtotal%></td>
+<%end taxincluded%>
+
+<%if not taxincluded%>
+ <th colspan=5 align=right>Sous-total</th>
+ <td colspan=2 align=right><%subtotal%></td>
+<%end taxincluded%>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=5 align=right><%taxdescription%></th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+<%end tax%>
+
+ <tr>
+ <td colspan=2>&nbsp;</td>
+ <td colspan=5><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=3>À régler dans <b><%terms%></b> jours au plus tard</td>
+ <th colspan=2 align=right>Total</th>
+ <th colspan=2 align=right><%ordtotal%></th>
+ </tr>
+<%if taxincluded%>
+ <tr>
+ <td colspan=3>Taxe comprise dans Total</td>
+ </tr>
+<%end taxincluded%>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width="100%">
+ <tr valign=top>
+<%if notes%>
+ <td>À noter&nbsp;:</td>
+ <td><%notes%></td>
+<%end notes%>
+ <td align=right>
+ Tous prix indiqués en <b><%currency%></b>
+ <br><%shippingpoint%>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width="100%">
+ <tr valign=top>
+ <td><font size=-3>
+<!--
+ A 10% order cancellation fee will be applied for any special order
+ products or products that have been customized, enhanced or
+ upgraded at customers request.
+-->
+ </font>
+ </td>
+ <td width=150>
+ X <hr noshade>
+ </td>
+ </tr>
+ <tr>
+ <td colspan=5>
+ <h6><center>N° TVA&nbsp;: &nbsp;&nbsp;Banque&nbsp;: &nbsp;&nbsp;N° de compte&nbsp;: &nbsp;&nbsp;Code SWIFT&nbsp;: </center>
+ </h6>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
diff --git a/templates/French-sales_order.tex b/templates/French-sales_order.tex
new file mode 100755
index 00000000..10198308
--- /dev/null
+++ b/templates/French-sales_order.tex
@@ -0,0 +1,151 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage[frenchb]{babel}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rr@{}}
+ Téléphone & <%tel%>\\
+ Télécopieur & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%ordnumber%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+<%pagebreak 65 27 37%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Sous-total} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markright{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Numéro} & \textbf{Description} & \textbf{Qté} &
+ \textbf{Unité} & \textbf{Prix} & \textbf{Remise} & \textbf{Montant} \\
+ & reporté de la page <%lastpage%> & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{2cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{3.5cm}
+
+\textbf{C O M M A N D E} \parbox{0.3cm}{\hfill} \textbf{C L I E N T}
+\hfill
+\begin{tabular}[t]{l@{\hspace{0.3cm}}l}
+ \textbf{Date de la commande} & <%orddate%> \\
+ <%if reqdate%>
+ \textbf{Livrable le} & <%reqdate%> \\
+ <%end reqdate%>
+ \textbf{Numéro de commande} & <%ordnumber%>
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Numéro} & \textbf{Description} & \textbf{Qté} &
+ \textbf{Unité} & \textbf{Prix} & \textbf{Remise} & \textbf{Montant} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%discount%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Sous-total} & \textbf{<%subtotal%>} \\
+<%foreach tax%>
+ <%taxdescription%> de <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ \textbf{Total} & \textbf{<%ordtotal%>}\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ Tous les prix indiqués sont en \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+
+\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+\footnotetext[1]{\tiny
+Un supplément de 10% sera appliqué à toute commande spécifique et à tout
+produit adapté, amélioré ou mis-à-jour à la demande du client. Les
+éléments non-retournables sont indiqués ci-dessus.
+}
+
+\end{document}
+
diff --git a/templates/French-sales_quotation.html b/templates/French-sales_quotation.html
new file mode 100755
index 00000000..0abf5fc7
--- /dev/null
+++ b/templates/French-sales_quotation.html
@@ -0,0 +1,225 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr valign=top>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+<tr><td colspan=3>&nbsp;</td></tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>Q U O T A T I O N</h4>
+ </th>
+ </tr>
+
+ </table>
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td>
+ <table width=100%>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+
+ <br>
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr><td>&nbsp;</td></tr>
+
+ <tr>
+ <td colspan=2>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Number</th>
+ <th width=17% align=left>Date</th>
+ <th width=17% align=left>Valid until</th>
+ <th width=17% align=left nowrap>Contact</th>
+ <th width=17% align=left nowrap>Shipping Point</th>
+ <th width=15% align=left nowrap>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%quonumber%></td>
+ <td><%quodate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>No.</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qt'y</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Price</th>
+ <th><font color=ffffff>Disc %</th>
+ <th><font color=ffffff>Amount</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%></td>
+
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discountrate%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=8><hr noshade></td>
+ </tr>
+
+ <tr>
+<%if taxincluded%>
+ <th colspan=6 align=right>Total</th>
+ <td colspan=2 align=right><%invtotal%></td>
+<%end taxincluded%>
+
+<%if not taxincluded%>
+ <th colspan=6 align=right>Subtotal</th>
+ <td colspan=2 align=right><%subtotal%></td>
+<%end taxincluded%>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=6 align=right><%taxdescription%> on <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+<%end tax%>
+
+ <tr>
+ <td colspan=4>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=4>&nbsp;
+<%if terms%>
+ Terms Net <b><%terms%></b> days
+<%end terms%>
+ </td>
+ <th colspan=2 align=right>Total</th>
+ <th colspan=2 align=right><%quototal%></th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>Notes</td>
+ <td><%notes%></td>
+<%end notes%>
+ <td align=right>
+ All prices in <b><%currency%></b> Funds
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=60%><font size=-3>
+ Special order items are subject to a 10% cancellation fee.
+ </font>
+ </td>
+ <td width=40%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/French-sales_quotation.tex b/templates/French-sales_quotation.tex
new file mode 100755
index 00000000..25792c6b
--- /dev/null
+++ b/templates/French-sales_quotation.tex
@@ -0,0 +1,157 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 48%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%quonumber%>}{<%company%>\hfill <%quonumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+ & carried forward from <%lastpage%> & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.45\textwidth}{
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%contact%>
+
+\vspace{0.2cm}
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+
+\vspace{1cm}
+
+\textbf{Q U O T A T I O N}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Quotation \#} & \textbf{Date} & \textbf{Valid until} & \textbf{Contact} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5ex]
+ \hline
+ <%quonumber%> & <%quodate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%discountrate%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ Subtotal & <%subtotal%> \\
+<%foreach tax%>
+ <%taxdescription%> on <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ Total & <%quototal%>\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ All prices in \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%notes%>
+
+}
+
+\vfill
+
+\end{document}
+
+
diff --git a/templates/French-statement.html b/templates/French-statement.html
new file mode 100755
index 00000000..015a8de5
--- /dev/null
+++ b/templates/French-statement.html
@@ -0,0 +1,137 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional">
+
+<html>
+
+<head>
+
+<title>Extrait de compte pour <%name%></title>
+<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+
+</head>
+
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+ <th></th>
+ <td align=right>
+ <h4>
+ Tél&nbsp;: <%tel%>
+ <br>Fax&nbsp;: <%fax%>
+ </h4>
+ </td>
+ </tr>
+ <tr>
+ <th colspan=3><h4>E X T R A I T&nbsp;&nbsp;D E&nbsp;&nbsp;C O M P T E</h4></th>
+ </tr>
+ <tr>
+ <td colspan=3 align=right><%statementdate%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+<br><%address2%>
+<%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+<%country%>
+<%end country%>
+ <br>
+<%if customerphone%>
+ <br>Tél&nbsp;: <%customerphone%>
+<%end customerphone%>
+<%if customerfax%>
+ <br>Fax&nbsp;: <%customerfax%>
+<%end customerfax%>
+<%if email%>
+ <br><%email%>
+<%end email%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr height=10></tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr>
+ <th align=left>Facture n°</th>
+ <th width=15%>Date</th>
+ <th width=15%>Echeance</th>
+ <th width=10%>Actuel</th>
+ <th width=10%>30</th>
+ <th width=10%>60</th>
+ <th width=10%>90+</th>
+ </tr>
+<%foreach invnumber%>
+ <tr>
+ <td><%invnumber%></td>
+ <td><%invdate%></td>
+ <td><%duedate%></td>
+ <td align=right><%c0%></td>
+ <td align=right><%c30%></td>
+ <td align=right><%c60%></td>
+ <td align=right><%c90%></td>
+ </tr>
+<%end invnumber%>
+ <tr>
+ <td colspan=7><hr size=1></td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <th align=right><%c0total%></td>
+ <th align=right><%c30total%></td>
+ <th align=right><%c60total%></td>
+ <th align=right><%c90total%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr height=10></tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td align=right>
+ <table width=50%>
+ <tr>
+ <th>Solde impayé</th>
+ <th align=right><%total%></th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td><hr noshade></td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>Tout paiement au nom de <b><%company%></b>
+ </td>
+ </tr>
+ <tr height=20></tr>
+</table>
+</body>
+</html>
diff --git a/templates/French-statement.tex b/templates/French-statement.tex
new file mode 100755
index 00000000..fdc7339f
--- /dev/null
+++ b/templates/French-statement.tex
@@ -0,0 +1,111 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rrr@{}}
+ Tel & <%tel%>\\
+ Fax & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%statementdate%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{1.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{10.5cm}{
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+}
+\parbox[t]{7.5cm}{
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{S T A T E M E N T} \hfill \textbf{<%statementdate%>}
+
+\vspace{2cm}
+
+\begin{tabular*}{\textwidth}{@{}l@{\extracolsep\fill}ccrrrr@{}}
+ \textbf{Invoice \#} & \textbf{Date} & \textbf{Due} &
+ \textbf{Current} & \textbf{30} & \textbf{60} & \textbf{90+} \\
+<%foreach invnumber%>
+ <%invnumber%> & <%invdate%> & <%duedate%> &
+ <%c0%> & <%c30%> & <%c60%> & <%c90%> \\
+<%end invnumber%>
+\textbf{Subtotal} & & & <%c0total%> & <%c30total%> & <%c60total%> & <%c90total%>
+\end{tabular*}
+\rule{\textwidth}{1pt}
+
+\vspace{0.5cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Total outstanding} & <%total%>
+\end{tabularx}
+
+\vfill
+
+Please make check payable to <%company%>
+
+\end{document}
+
diff --git a/templates/French-timecard.html b/templates/French-timecard.html
new file mode 100755
index 00000000..361b8254
--- /dev/null
+++ b/templates/French-timecard.html
@@ -0,0 +1,146 @@
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=sql-ledger.png border=0 width=84 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>T I M E &nbsp;&nbsp; C A R D</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=left>Employee</th>
+ <td><%employee%></td>
+ </tr>
+ <tr>
+ <th align=left>ID</th>
+ <td><%employee_id%></td>
+ </tr>
+ </table>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Card ID</th>
+ <td><%id%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Date Worked</th>
+ <td><%transdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Time In</th>
+ <td><%checkedin%></td>
+ </tr>
+ <tr>
+ <th align=left>Time Out</th>
+ <td><%checkedout%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Hours Worked</th>
+ <td><%qty%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=bottom>
+ <td>
+ <table>
+ <tr valign=top>
+ <th align=left>Project/Job #</th>
+ <td><%projectnumber%></td>
+ </tr>
+ <tr>
+ <th align=left>Description</th>
+ <td><%projectdescription%></td>
+ </tr>
+ <tr valign=top>
+ <th align=left>Labor/Service Code</th>
+ <td><%partnumber%></td>
+ </tr>
+ <tr>
+ <th align=left>Description</th>
+ <td><%description%></td>
+ </tr>
+ </table>
+ </td>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Unit Rate</th>
+ <td><%sellprice%></td>
+ </tr>
+ <tr>
+ <th align=right>Total</th>
+ <td><%total%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+<%if notes%>
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%notes%>
+ </td>
+ </tr>
+<%end notes%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/French-timecard.tex b/templates/French-timecard.tex
new file mode 100755
index 00000000..49a30c54
--- /dev/null
+++ b/templates/French-timecard.tex
@@ -0,0 +1,71 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-1cm,left=2cm,right=1cm]{geometry}
+\usepackage{graphicx}
+\setlength{\parindent}{0pt}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Tel: & <%tel%>\\
+ Fax: & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+\centerline{\textbf{T I M E}\hspace{0.5cm}\textbf{C A R D}}
+
+\vspace*{0.5cm}
+
+\begin{tabular}[t]{ll}
+ \textbf{Employee} & <%employee%> \\
+ \textbf{ID} & <%employee_id%> \\
+\end{tabular}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Card ID} & <%id%> \\
+ \textbf{Date Worked} & <%transdate%> \\
+ \textbf{Time In} & <%checkedin%> \\
+ \textbf{Time Out} & <%checkedout%> \\
+ \textbf{Hours Worked} & <%qty%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular}[b]{ll}
+ \textbf{Project/Job \#} & <%projectnumber%> \\
+ \textbf{Description} & <%projectdescription%> \\
+ \textbf{Labor/Service Code} & <%partnumber%> \\
+ \textbf{Description} & <%description%> \\
+\end{tabular}
+\hfill
+\begin{tabular}[b]{lr}
+ \textbf{Unit Rate} & <%sellprice%> \\
+ \textbf{Total} & <%total%> \\
+\end{tabular}
+
+\vspace{0.3cm}
+
+<%notes%>
+
+\end{document}
+
+
diff --git a/templates/French-work_order.html b/templates/French-work_order.html
new file mode 100755
index 00000000..88d212af
--- /dev/null
+++ b/templates/French-work_order.html
@@ -0,0 +1,174 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=bottom>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>W O R K &nbsp;&nbsp; O R D E R</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>To</th>
+ <th align=left width=50%><font color=ffffff>Ship To</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%>
+ <br><%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%>
+ <br><%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ <br>
+ <%if shiptocontact%>
+ <br><%shiptocontact%>
+ <%end shiptocontact%>
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+ <%if shiptoemail%>
+ <br><%shiptoemail%>
+ <%end shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Order Number</th>
+ <th width=17% align=left>Order Date</th>
+ <th width=17% align=left>Required by</th>
+ <th width=17% align=left nowrap>Salesperson</th>
+ <th width=17% align=left nowrap>Shipping Point</th>
+ <th width=15% align=left nowrap>Ship Via</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%></td>
+ <td><%orddate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>No.</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qt'y</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Serial No.</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%>.</td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td><%serialnumber%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <td colspan=6><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <%if notes%>
+ <td><%notes%></td>
+ <%end notes%>
+ </tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/French-work_order.tex b/templates/French-work_order.tex
new file mode 100755
index 00000000..9b2f6f95
--- /dev/null
+++ b/templates/French-work_order.tex
@@ -0,0 +1,177 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}rlXrll@{}}
+ \textbf{No.} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ & \textbf{Serial Number} \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.45\textwidth}{
+\textbf{To}
+\vspace{0.7cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\parbox[t]{.45\textwidth}{
+\textbf{Ship To}
+\vspace{0.7cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{W O R K} \parbox{0.3cm}{\hfill} \textbf{O R D E R}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Order Date} & \textbf{Required by} & \textbf{Salesperson} & \textbf{Shipping Point} & \textbf{Ship Via} \\ [0.5em]
+ \hline
+ <%ordnumber%> & <%orddate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrll@{}}
+ \textbf{No.} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ & \textbf{Serial Number} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%serialnumber%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+\vfill
+
+\vspace{1cm}
+
+\rule{\textwidth}{0.5pt}
+
+\end{document}
+
+
+
+
+
+
diff --git a/templates/German-ap_transaction.html b/templates/German-ap_transaction.html
new file mode 100755
index 00000000..fd7a96eb
--- /dev/null
+++ b/templates/German-ap_transaction.html
@@ -0,0 +1,229 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>A P - T R A N S A C T I O N</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Invoice #</th>
+ <td><%invnumber%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Date</th>
+ <td><%invdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Due</th>
+ <td><%duedate%></td>
+ </tr>
+ <tr>
+ <th align=left>Order #</th>
+ <td><%ordnumber%>&nbsp;</td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Employee</th>
+ <td><%employee%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=50%>
+ <table>
+ <%foreach account%>
+ <tr valign=top>
+ <td><%accno%></td>
+ <td><%account%></td>
+ <td align=right><%amount%></td>
+ <td><%projectnumber%></td>
+ </tr>
+ <%end account%>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Subtotal</th>
+ <td align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=2 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ </table>
+ </td>
+ <td width=50%>
+ <%notes%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <tr>
+ <td>&nbsp;</td>
+
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%text_amount%> ***** <%decimal%>/100 <%currency%>
+ </td>
+ </tr>
+
+ <%if paid%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <tr>
+ <th>Payments</th>
+ </tr>
+
+ <tr>
+ <td>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=left>Date</th>
+ <th align=left>Account</th>
+ <th align=left>Source</th>
+ <th align=left>Memo</th>
+ <th align=left>Amount</th>
+ </tr>
+ <%end paid%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td><%paymentmemo%></td>
+ <td><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid%>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <%end paid%>
+
+ <tr height=10></tr>
+
+ <%if taxincluded%>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <th colspan=3 align=left><font size=-2>Taxes shown are included in price.</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/German-ap_transaction.tex b/templates/German-ap_transaction.tex
new file mode 100755
index 00000000..8bfd9f79
--- /dev/null
+++ b/templates/German-ap_transaction.tex
@@ -0,0 +1,125 @@
+\documentclass[10pt,letterpaper,oneside,onecolumn]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+\centerline{\textbf{A P} \hspace{0.3cm} \textbf{T R A N S A C T I O N}}
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+<%end contact%>
+
+\vspace{0.2cm}
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Invoice \#} & <%invnumber%> \\
+ \textbf{Date} & <%invdate%> \\
+ \textbf{Due} & <%duedate%> \\
+ \textbf{Order \#} & <%ordnumber%> \\
+ \textbf{Employee} & <%employee%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabularx}{.5\textwidth}[t]{@{}llrl@{}}
+<%foreach amount%>
+ <%accno%> & <%account%> & <%amount%> & <%projectnumber%> \\
+<%end amount%>
+
+ \multicolumn{2}{r}{\textbf{Subtotal}} & <%subtotal%> & \\
+<%foreach tax%>
+ \multicolumn{2}{r}{\textbf{<%taxdescription%> @ <%taxrate%> \%}} & <%tax%> & \\
+<%end tax%>
+
+ \multicolumn{2}{r}{\textbf{Total}} & <%invtotal%> & \\
+
+\end{tabularx}
+<%notes%>
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100 <%currency%>
+
+\vspace{0.3cm}
+
+<%if paid%>
+\begin{tabular}{@{}llllr@{}}
+ \multicolumn{5}{c}{\textbf{Payments}} \\
+ \hline
+ \textbf{Date} & & \textbf{Source} & \textbf{Memo} & \textbf{Amount} \\
+<%end paid%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%paymentmemo%> & <%payment%> \\
+<%end payment%>
+<%if paid%>
+\end{tabular}
+<%end paid%>
+
+\end{document}
+
diff --git a/templates/German-ar_transaction.html b/templates/German-ar_transaction.html
new file mode 100755
index 00000000..22833384
--- /dev/null
+++ b/templates/German-ar_transaction.html
@@ -0,0 +1,237 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>A R - T R A N S A C T I O N</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Invoice #</th>
+ <td><%invnumber%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Date</th>
+ <td><%invdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Due</th>
+ <td><%duedate%></td>
+ </tr>
+ <tr>
+ <th align=left>Order #</th>
+ <td><%ordnumber%>&nbsp;</td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Salesperson</th>
+ <td><%employee%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=50%>
+ <table>
+ <%foreach account%>
+ <tr valign=top>
+ <td><%accno%></td>
+ <td><%account%></td>
+ <td align=right><%amount%></td>
+ <td><%projectnumber%></td>
+ </tr>
+ <%end account%>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Subtotal</th>
+ <td align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=2 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ </table>
+ </td>
+ <td width=50%>
+ <%notes%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <tr>
+ <td>&nbsp;</td>
+
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%text_amount%> ***** <%decimal%>/100 <%currency%>
+ </td>
+ </tr>
+
+ <%if paid%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <tr>
+ <th>Payments</th>
+ </tr>
+
+ <tr>
+ <td>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=left>Date</th>
+ <th align=left>Account</th>
+ <th align=left>Source</th>
+ <th align=left>Memo</th>
+ <th align=left>Amount</th>
+ </tr>
+ <%end paid%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td><%paymentmemo%></td>
+ <td><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid%>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <%end paid%>
+
+ <tr height=10></tr>
+
+ <%foreach tax%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <th colspan=9 align=left><font size=-2><%taxdescription%> Registration <%taxnumber%></th>
+ </tr>
+ <%end tax%>
+
+ <%if taxincluded%>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <th colspan=3 align=left><font size=-2>Taxes shown are included in price.</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/German-ar_transaction.tex b/templates/German-ar_transaction.tex
new file mode 100755
index 00000000..654d2b95
--- /dev/null
+++ b/templates/German-ar_transaction.tex
@@ -0,0 +1,131 @@
+\documentclass[10pt,letterpaper,oneside,onecolumn]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+\centerline{\textbf{A R} \hspace{0.3cm} \textbf{T R A N S A C T I O N}}
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+<%end contact%>
+
+\vspace{0.2cm}
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Invoice \#} & <%invnumber%> \\
+ \textbf{Date} & <%invdate%> \\
+ \textbf{Due} & <%duedate%> \\
+ \textbf{Order \#} & <%ordnumber%> \\
+ \textbf{Employee} & <%employee%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabularx}{.5\textwidth}[t]{@{}llrl@{}}
+<%foreach amount%>
+ <%accno%> & <%account%> & <%amount%> & <%projectnumber%> \\
+<%end amount%>
+
+ \multicolumn{2}{r}{\textbf{Subtotal}} & <%subtotal%> & \\
+<%foreach tax%>
+ \multicolumn{2}{r}{\textbf{<%taxdescription%> @ <%taxrate%> \%}} & <%tax%> & \\
+<%end tax%>
+
+ \multicolumn{2}{r}{\textbf{Total}} & <%invtotal%> & \\
+
+\end{tabularx}
+<%notes%>
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100 <%currency%>
+
+\vspace{0.3cm}
+
+<%if paid%>
+\begin{tabular}{@{}llllr@{}}
+ \multicolumn{5}{c}{\textbf{Payments}} \\
+ \hline
+ \textbf{Date} & & \textbf{Source} & \textbf{Memo} & \textbf{Amount} \\
+<%end paid%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%paymentmemo%> & <%payment%> \\
+<%end payment%>
+<%if paid%>
+\end{tabular}
+<%end paid%>
+
+\vspace{0.5cm}
+
+<%foreach tax%>
+\textbf{\small{<%taxdescription%> Registration <%taxnumber%>}} \\
+<%end tax%>
+
+\end{document}
+
diff --git a/templates/German-balance_sheet.html b/templates/German-balance_sheet.html
new file mode 100755
index 00000000..f0d6f5e1
--- /dev/null
+++ b/templates/German-balance_sheet.html
@@ -0,0 +1,100 @@
+
+<body bgcolor=ffffff>
+
+<h2 align=center>
+<%company%>
+<br><%address%>
+
+<p>BILANZ
+<br><%period%>
+</h2>
+
+<table border=0>
+<tr>
+ <th align=left width=400 colspan=2>AKTIVA<br><hr align=left width=250 size=5 noshade></th>
+ <th><%this_period%></th>
+ <th><%last_period%></th>
+</tr>
+
+<%foreach asset_account%>
+<tr>
+ <td> </td>
+ <td><%asset_account%></td>
+ <td align=right><%asset_this_period%></td>
+ <td align=right><%asset_last_period%></td>
+</tr>
+<%end asset_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>TOTAL</th>
+ <td align=right><%total_assets_this_period%><hr noshade size=2></td>
+ <td align=right><%total_assets_last_period%><hr noshade size=2></td>
+</tr>
+
+<tr>
+ <th align=left colspan=4>PASSIVA<b><hr align=left width=250 size=5 noshade></th>
+</tr>
+
+<%foreach liability_account%>
+<tr>
+ <td></td>
+ <td><%liability_account%></td>
+ <td align=right><%liability_this_period%></td>
+ <td align=right><%liability_last_period%></td>
+</tr>
+<%end liability_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td></td>
+ <th align=left>TOTAL</th>
+ <td align=right><%total_liabilities_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_liabilities_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr>
+ <th align=left colspan=4>EIGENTUM<br><hr align=left width=250 size=5 noshade></th>
+</tr>
+
+<%foreach equity_account%>
+<tr>
+ <td></td>
+ <td><%equity_account%></td>
+ <td align=right><%equity_this_period%></td>
+ <td align=right><%equity_last_period%></td>
+</tr>
+<%end equity_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td></td>
+ <th align=left>TOTAL</th>
+ <td align=right><%total_equity_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_equity_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>TOTAL PASSIVA & EIGETNTUM</th>
+ <td align=right><%total_this_period%><br><hr noshade size=2></td>
+ <td align=right><%total_last_period%><br><hr noshade size=2></td>
+</tr>
+</table>
+
+
+
diff --git a/templates/German-bin_list.html b/templates/German-bin_list.html
new file mode 100755
index 00000000..24440675
--- /dev/null
+++ b/templates/German-bin_list.html
@@ -0,0 +1,189 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <th align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>B I N &nbsp;&nbsp; L I S T</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% cellspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>From</th>
+ <th align=left width=50%><font color=ffffff>Ship To</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+
+ <%if vendorphone%>
+ <br>Tel: <%vendorphone%>
+ <%end vendorphone%>
+
+ <%if vendorfax%>
+ <br>Fax: <%vendorfax%>
+ <%end vendorfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+
+ <br>
+ <%if shiptocontact%>
+ <br>Attn: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Order #</th>
+ <th width=17% align=left nowrap>Date</th>
+ <th width=17% align=left nowrap>Contact</th>
+ <%if warehouse%>
+ <th width=17% align=left nowrap>Warehouse</th>
+ <%end warehouse%>
+ <th width=17% align=left>Shipping Point</th>
+ <th width=15% align=left>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%>&nbsp;</td>
+
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%orddate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+
+ <%if warehouse%>
+ <td><%warehouse%></td>
+ <%end warehouse%>
+
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Pos</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Serialnumber</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Qty</th>
+ <th><font color=ffffff>Recd</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Bin</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%></td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td><%serialnumber%></td>
+ <td><%deliverydate%></td>
+ <td align=right><%qty%></td>
+ <td align=right><%ship%></td>
+ <td><%unit%></td>
+ <td><%bin%></td>
+ </tr>
+ <%end number%>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+</table>
+
diff --git a/templates/German-bin_list.tex b/templates/German-bin_list.tex
new file mode 100755
index 00000000..3d6052f9
--- /dev/null
+++ b/templates/German-bin_list.tex
@@ -0,0 +1,147 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Recd} & & \textbf{Bin} \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.5\textwidth}{
+\textbf{From}
+\vspace{0.7cm}
+
+<%name%>
+
+<%address1%>
+
+<%if %address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country4%>
+<%end country%>
+}
+\parbox[t]{.4\textwidth}{
+\textbf{Ship To}
+\vspace{0.7cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%if shiptoaddress2%>
+<%shiptoaddress2%>
+<%end shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%if shiptocountry%>
+<%shiptocountry%>
+<%end shiptocountry%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{B I N} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Date} & \textbf{Contact}
+ <%if warehouse%>
+ & \textbf{Warehouse}
+ <%end warehouse%>
+ & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+
+ <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%orddate%>
+ <%end shippingdate%>
+ & <%employee%>
+ <%if warehouse%>
+ & <%warehouse%>
+ <%end warehouse%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Recd} & & \textbf{Bin} \\
+
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%serialnumber%> &
+ <%deliverydate%> & <%qty%> & <%ship%> & <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabularx}
+
+
+\rule{\textwidth}{2pt}
+
+\end{document}
+
diff --git a/templates/German-check.tex b/templates/German-check.tex
new file mode 100755
index 00000000..881ee374
--- /dev/null
+++ b/templates/German-check.tex
@@ -0,0 +1,75 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.4cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.0cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+
+\fontfamily{cmss}\fontsize{9pt}{9pt}\selectfont
+
+\parbox[t]{12cm}{
+ <%company%>
+
+ <%address%>}
+\hfill
+\parbox[t]{6cm}{\hfill <%source%>}
+
+\vspace*{0.6cm}
+
+<%text_amount%> \dotfill <%decimal%>/100 \makebox[0.5cm]{\hfill}
+
+\vspace{0.5cm}
+
+\hfill <%datepaid%> \makebox[2cm]{\hfill} <%amount%>
+
+\vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{2.8cm}
+
+<%company%>
+
+\vspace{0.5cm}
+
+<%name%> \hfill <%datepaid%> \hfill <%source%>
+
+\vspace{0.5cm}
+\begin{tabularx}{\textwidth}{lXrr@{}}
+\textbf{Rechnung} & \textbf{Ausgestellt}
+ & \textbf{Fällig} & \textbf{Verrechnet} \\
+<%foreach invnumber%>
+<%invnumber%> & <%invdate%> \dotfill
+ & <%due%> & <%paid%> \\
+<%end invnumber%>
+\end{tabularx}
+
+\vfill
+
+\end{document}
+
diff --git a/templates/German-income_statement.html b/templates/German-income_statement.html
new file mode 100755
index 00000000..aa3c22fb
--- /dev/null
+++ b/templates/German-income_statement.html
@@ -0,0 +1,78 @@
+
+<body bgcolor=ffffff>
+
+<h2 align=center>
+<%company%>
+<br><%address%>
+
+<p>GEWINN & VERLUST
+<br><%period%>
+</h2>
+
+
+<table width=100% border=0>
+<tr>
+ <th width=400 align=left colspan=2>EINNAHMEN<br><hr width=300 size=5 align=left noshade></th>
+ <th><%this_period%></th>
+ <th><%last_period%></th>
+</tr>
+
+<%foreach income_account%>
+<tr>
+ <td width=4> </td>
+ <td><%income_account%></td>
+ <td align=right><%income_this_period%></td>
+ <td align=right><%income_last_period%></td>
+</tr>
+<%end income_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td> </td>
+ <th align=left>Totale Einnahmen</th>
+ <td align=right><%total_income_this_period%><hr noshade size=2></td>
+ <td align=right><%total_income_last_period%><hr noshade size=2></td>
+</tr>
+
+<tr>
+ <th align=left colspan=2>AUSGABEN<br><hr width=300 size=5 align=left noshade></th>
+</tr>
+
+<%foreach expense_account%>
+<tr>
+ <td> </td>
+ <td><%expense_account%></td>
+ <td align=right><%expenses_this_period%></td>
+ <td align=right><%expenses_last_period%></td>
+</tr>
+<%end expense_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td> </td>
+ <th align=left>Totale Ausgaben</th>
+ <td align=right><%total_expenses_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_expenses_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>GEWINN / (VERLUST)</th>
+ <td align=right><%total_this_period%><br><hr noshade size=2></td>
+ <td align=right><%total_last_period%><br><hr noshade size=2></td>
+</tr>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/German-invoice.html b/templates/German-invoice.html
new file mode 100755
index 00000000..d181bdae
--- /dev/null
+++ b/templates/German-invoice.html
@@ -0,0 +1,274 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <td align=right>
+ <h4>
+ Telefon <%tel%>
+ <br>Telefax <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>R E C H N U N G</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Ausgestellt am</th><td width=10>&nbsp;</td><td><%invdate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Bezahlbar bis</th><td width=10>&nbsp;</td><td><%duedate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Nummer</th><td>&nbsp;</td><td><%invnumber%></td></tr>
+ </tr>
+
+<!--
+ <tr>
+ <th align=right>Clerk:</th><td>&nbsp;</td><td><%username%></td>
+ </tr>
+-->
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+ </td>
+ </table>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>An:</th>
+ <th align=left><font color=ffffff>Lieferaddresse:</th>
+ </tr>
+
+<!--
+ other variables which can be use:
+ contact, shiptocontact, shiptophone, shiptofax
+-->
+
+ <tr>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+<br><%address2%>
+<%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+<%country%>
+<%end country%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+<br><%shiptoaddress2%>
+<%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+<%shiptocountry%>
+<%end shiptocountry%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+<!-- <th align=right><font color=ffffff>No.</th> -->
+ <th align=left><font color=ffffff>Nummer</th>
+ <th align=left><font color=ffffff>Beschreibung</th>
+ <th><font color=ffffff>Anz.</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Preis</th>
+ <th><font color=ffffff>Rab</th>
+ <th><font color=ffffff>Total</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+<!-- <td align=right><%runningnumber%>.</td>
+adjust the colspan if you include this to shift subtotal one to the right
+-->
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discount%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+<%end number%>
+
+<!--
+you can also use netprice instead of sellprice if you
+don't want to show the discount
+netprice = sellprice - discount
+to show the percentage for a discount use <%discountrate%>
+-->
+
+ <tr>
+ <td colspan=7><hr noshade></td>
+ </tr>
+
+<%if taxincluded%>
+ <tr>
+ <th colspan=5 align=right>Total</th>
+ <td colspan=2 align=right><%invtotal%></td>
+ </tr>
+<%end taxincluded%>
+<%if not taxincluded%>
+ <tr>
+ <th colspan=5 align=right>Zwischensumme</th>
+ <td colspan=2 align=right><%subtotal%></td>
+ </tr>
+<%end taxincluded%>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=5 align=right><%taxdescription%> auf <%taxbase%></th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+<%end tax%>
+
+<%if paid%>
+ <tr>
+ <th colspan=5 align=right>Bezahlt</th>
+ <td colspan=2 align=right>- <%paid%></td>
+ </tr>
+<%end paid%>
+
+ <tr>
+ <td colspan=3>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=3>Bezahlbar innerhalb von <b><%terms%></b> Tagen</td>
+<%if total%>
+ <th colspan=2 align=right>Total</th>
+ <th colspan=2 align=right><%total%></th>
+<%end total%>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>Bemerkungen:</td>
+ <td><%notes%></td>
+<%end notes%>
+ <td align=right>
+ Alle Preise in <b><%currency%></b>
+ <br><%shippingpoint%>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><font size=-3>
+ Rechnung ist bezahlbar innerhalb von <%terms%> Tagen.
+ Nach dem <%duedate%> werden Zinsen zu einem
+ monatlichen Satz von 1.5% verrechnet.
+ Waren bleiben im Besitz von <%company%> bis die Rechnung voll bezahlt ist.
+ Rückgaben werden mit 10% Lagergebühren belastet. Beschädigte Waren
+ und Waren ohne eine Rückgabenummer werden nicht entgegengenommen.
+ </font>
+ </td>
+ <td width=150>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=7 align=left><font size=-2><%taxdescription%> Registration <%taxnumber%></th>
+ </tr>
+<%end tax%>
+
+<%if taxincluded%>
+ <tr>
+ <th colspan=7 align=left><font size=-2>Steuern sind im Preis inbegriffen.</th>
+ </tr>
+<%end taxincluded%>
+
+<!-- business number
+ <tr>
+ <th colspan=7 align=left><font size=-2>Business Number: <%businessnumber%></font></th>
+ </tr>
+-->
+
+ <tr>
+ <th colspan=7 align=left>
+ <hr>
+ <br>Bankverbindung
+ <br>Bank
+ <br>Bankleitzahl
+ <br>Konto No.
+ </td>
+ </tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/German-invoice.tex b/templates/German-invoice.tex
new file mode 100755
index 00000000..fe29baf7
--- /dev/null
+++ b/templates/German-invoice.tex
@@ -0,0 +1,159 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telefon & <%tel%>\\
+ Telefax & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%invnumber%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+<%pagebreak 65 27 37%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markright{<%company%>\hfill <%invnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Nummer} & \textbf{Artikel} & \textbf{Anz} &
+ \textbf{Einh} & \textbf{Preis} & \textbf{Rab} & \textbf{Total} \\
+ & Übertrag von Seite <%lastpage%> & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{2cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{3.5cm}
+
+\textbf{R E C H N U N G}
+\hfill
+\begin{tabular}[t]{l@{\hspace{0.3cm}}l}
+ \textbf{Datum} & <%invdate%> \\
+ \textbf{Nummer} & <%invnumber%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Nummer} & \textbf{Artikel} & \textbf{Anz} &
+ \textbf{Einh} & \textbf{Preis} & \textbf{Rab} & \textbf{Total} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%discount%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Zwischensumme} & \textbf{<%subtotal%>} \\
+<%foreach tax%>
+ <%taxdescription%> auf <%taxbase%> & <%tax%> \\
+<%end tax%>
+ \hline
+ \textbf{Total} & \textbf{<%invtotal%>} \\
+<%if paid%>
+ \textbf{Bezahlt} & <%paid%> \\
+<%end paid%>
+<%if total%>
+ \textbf{Bezahlbar} & \textbf{<%total%>} \\
+<%end total%>
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ Alle Preise in \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+%\vfill
+%\centerline{\textbf{salute}}
+
+\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+\footnotetext[1]{\tiny
+Rechnung ist bezahlbar innerhalb von <%terms%> Tagen.
+Nach dem <%duedate%> werden Zinsen zu einem
+monatlichen Satz von 1.5\% verrechnet.
+Waren bleiben im Besitz von <%company%> bis die Rechnung voll bezahlt ist.
+Rückgaben werden mit 10 Prozent Lagergebühren belastet. Beschädigte Waren
+und Waren ohne eine Rückgabenummer werden nicht entgegengenommen.
+}
+
+\end{document}
+
+
diff --git a/templates/German-logo.eps b/templates/German-logo.eps
new file mode 100755
index 00000000..3a22b2ff
--- /dev/null
+++ b/templates/German-logo.eps
@@ -0,0 +1,1334 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: GIMP PostScript file plugin V 1.17 by Peter Kirchgessner
+%%Title: Brazilian_Portuguese-logo.eps
+%%CreationDate: Thu Aug 31 19:25:05 2006
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 2
+%%Pages: 1
+%%BoundingBox: 14 14 415 215
+%%EndComments
+%%BeginProlog
+% Use own dictionary to avoid conflicts
+10 dict begin
+%%EndProlog
+%%Page: 1 1
+% Translate for offset
+14.173228346456694 14.173228346456694 translate
+% Translate to begin of first scanline
+0 199.99842519685043 translate
+399.99685039370081 -199.99842519685043 scale
+% Image geometry
+400 200 8
+% Transformation matrix
+[ 400 0 0 200 0 0 ]
+% Strings to hold RGB-samples per scanline
+/rstr 400 string def
+/gstr 400 string def
+/bstr 400 string def
+{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop}
+true 3
+%%BeginData: 80402 ASCII Bytes
+colorimage
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+fDblg6K\=Q"WB-W4?Pdo4p6+l]&ih]rrrDpij);hp&GL',"Q[#Lmt]mi:-UBo)Ajlp>C')q#Ca-
+0OT-[R^UZ0q#:3k!rftBr;[*-4`Pt>]\`;[p&>'%-iO)I,T-[I!!OC1jn&BKnc&dlp#<8P%e]l2
+"!U9TI#+8tb2Ddcrq6:-g3RO66TZkO/89R1ak>G'lMCDUrVc`p_uG5~>
+fDc3-AgAK<(`*r''GKsK"r/C?3]oMfm61YtOLjQNo`#*op#<8P%e]l2"!U9TI#+8tb2Ddcrpp'l
+rq>8m&GZ;5#V]Y2L75R!lM1AVrrW28$N0r1#!HsURCqDKrq69l[jV.T![JWbkPtc,R-!r:rpg!l
+rq59V:(Hst$j.\EE.!J2ZHD+pqYp0f(YX1N<'rc'0emR!XjZ4ijR;sBr;HTnrknbd~>
+fDc6;J3>hE.46Gg,U"<#*sNl<2EEr_4mbE9G`]Muqt0mlrq59V:(Hst$j.\EE.!J2ZHD+pqYp'c
+"TJ,QFV+?K$4&=nG_VZqdd$W,r;Qit^^C#?#R3G3J!mt+o`"O`!OjHU!!4D`!pBUf*LPs[qu6-c
+"oe2SZ;(o'!"8rR88rs4S$L2pnG<.WrtjC8CK*Y`2)R41LpG[tlg+-<qu$Ekrr0h8J,~>
+gA_6CM^RKa#SJU[Cl4ICR$dH4"J2pKnc&.[#laS]ca8*s2'Dku%L*7S1/_:`E/L-e^<lNJn,*ps
+lGB9$.1d!s#n@h2C5&"Yb2DgerqcX(q78g7,slHqMPJ)Jp&4[cs*k'%9)\er&Pd:_DG`D6!pTal
+;j3B4I=8["q>L$e)ZKKoca5M5$jR7P',DcW=EAnFP+oA,h<ak4r;@'%mG5jnSV:rb4tRZYo)K.6
+.77QqVp"]-r;HW:s*t~>
+gA_WSXCb's7mAmd0J>%2/aY(p3(dS&NKf`rR.?XJT!Hl9rq$..rqGU%[!bb.+:/;Z%M^0O>@_Mp
+OJ9/'f_#".r"](qb,Jl)'b_,j)_+BrKpT$di:6^DqYq$#\j.Db6>_(,UVl'`rV6EmU]HuXrW!3>
+=ES\+<]_9&l2V,jVQ@/!U<E9+rV$70rqGU%Zq25S%MBBi(a_LMF+&e+U:&/"m.U>Sr=/\qk1@he
+W0`?`B2UiFr@A%'1d4D,8ded6G`JT6f_#";rVjq=J,~>
+gA_WV`KPh&H>[%h;Gg7d:@1a]<FBcqNg,isR.?XJT!Hl9rq$..rqGU%[!bb.+:etm&f`Dk@V^"7
+Q)D4<h=UO3r"](rd'%+>(`!f$,WA_DKpT$di:6^DqYq$#\j.Db6>_(,UVl'`rV6Em^B(K0rW!3B
+@!Hj=>!*c+l2V,lZbFJn^"N,TrV$70rqGU%Zreh$',D<")CRjQF+&e+U:&/"m.U>Sr=/\tmGcjE
+_7$G9OF(D5rCmAj>ASW`J.%6uT<>oSiV!$ErVjq=J,~>
+h#@HEIh:?7#Tc9FPJ##]c-H(0"4GulqXORjrqc-Bc+C!IjT#8`m/R?)T"N_Cq#1!f%/obL[[`MH
+U:8M5p\spee,TVcf]W#.pAY9pqXED]p&G=-'G_N()]Tmq*WQH&!!iZW>`-Jlq#(-9s*t~>
+h#@HJUfI@c"%YgF4l\X1;/(]X^WF^EcM,WedbO6dnc'C(qXEFf];hGR.Olks.P*2,2*!ie7S*/D
+!)3/["\;$E2D?]].L7OVFe67umJ-YTrs\ksfX@<5QD1k8kkG)Nrt@jG!<<*#(b-sc0JtaF0Ie1Z
+$3BMo#oYim84nopkP+uLrtbV1nDI&"0eP",.Ochs/1rtM85<,d>l%b,:\RH`84>d,rB(0F5Xe6:
+8dJ+(MQ5+sq#(-9s*t~>
+h#@HM^PMi="+56/C#`k4FbQ3b_9'pGcM,WedbO6dnc&ppqXEFf];hGq8cD6f8P;iZ>@VDgG^Y)7
+J,k2sJ.d?ZFD5#[9h@lH8ksi,]\)WHrV6C$rUSULS<B24\'X@5rqHF+H9;6/!!+Q@7nZfd?<U9"
+2^8k8m/RGEAorHOWS$D.rq??urqc-BFC%sC91f+R$;!ld>@_PnIYEZ=qi1Z0pOE?oG].?qBEN!f
+G^]78#_J8?^teSWr;Ot@J,~>
+h>[MB'\!*i,YiZYa62mZnF?&JncSOYqu6'a#Q=GfkM4KR)UeZi*-S.$mJQYW$N0GOcGmrTj73!F
+p\t6"ec5mb/8hc?meueX"TA*n,R_Hh#7aOmh":IArmCar~>
+h>[M`=SbYi8,u0:7LELMS$gZ-mdKZ8nc&(]o_87^n,EXkq!mP&dV;DR3!VH*4[;>&7nDf8%S9,W
+5<Lqc3BBc^Us&0'p&>Bsn__X3aOK8?qYp6h!OE+3!##DT-n$]+5!hV'5!1e]0J"C`$j,nu#UVT+
+?\Yl5meueX#Q=FJ>Xpq<3W:uC3BKAh6:FC8lq.=N84WVJ!_5dQmn*g`J?Io(qYgE@s*t~>
+h>[N!MYho*Isl\"H4#P$Zc1S]mdKZ8nc&(]o_87^n,F("q!mP&dY;XJ@:E_XBl7s8H[^J.J.@!Q
+F)5K!@U`kaL8<#[r:U'sr:/[i`lQZinbW7ZrrKG;rW!T71dso2?>FS'EGT5p>#S'T-5?[R!!rZm
+AU&loZI&%<o`#U'pn<@]Bk:d_@:E_XBl7s8H[^J4J-(4LI/A3kI"$S7J-Uh)_rgUfrVk4EJ,~>
+hu<`75k=sc"VrFC5tXgF:/4DF.i/9O!!*]Ur]C="me$ATli.:jr:opKd%Y/9'&!<k"#=J;Ni^b$
+rq-3qrV,jMn+?JTpAY,>f)Q'a;0.S\XNp84o)Asihn"ng;)Ad$!!WNiQK@f9rmUmt~>
+hu<`@GOnE:9Mnkt@V0:fC2.Hn>Z4;[8dSO+F*)Mgme$ATli.Fnr:opKd&28#:.@`E8`E>N8Ou<>
+7TaSXNi^b$rq-3qrV,jMn+?JTpAY,>qu@NQ,q(K/6:XU>84Z3<69dRl1bgU.)%[&F!!j*8F,?6b
+cL1Z%rseb\\s@h_>t[RS7Rp!@b";k3FKjs$qYntDJ,~>
+hu<`GT_![<IscQgH[C/>IKP(MIt-[4!Jlg9S-6.co_SRQrso&+q"3gtWf)=NG^=adJ)l+hIsu`i
+GBS%NIZCMZo)A:]#Q=DemdKfErV$6kHi3pL!AZo0<+U)rrdG<'H$++DB44tC:-L3L%.jN*&m043
+Q`SL#rUTsuptrZOMLp5#G'A1WI"$RgJ-LRo_WgairmUmt~>
+i;Wha&G?)3"X69@G^kI,P*_]1rh'IfS=#7L5SE5[">J!QnGMJL#l<l9^9FDd9H)af#qBJ1L7#-c
+jnSiGs8Drirr@!8!!4`+#i,Ic89UN4bi8<po)B'omao@cYc+.?63tL0"V>7hnG)t4s*t~>
+i;Wi"<VB#m9N5D9G^kI,P*_]1rh'IfS=#CdBN""c"DGs4nGMJL#l<l9^9FDnE)tgf$!(hdL7#-c
+jnSiGs8Drirr@!8!!Y&=.ks.S8GYpg8Ou<=69dRm2)6d5*"E#D!!c&<S@?`%p&=O^$N'8C_mckK
+Sr%2W`(C25NR[ImrRLpu~>
+i;Wi2M"Z?,IsQ9]G^kI,P*_]1rh'IfS=#ItL4SN<"H^d\nGMJL#l<l9^9FE!MLs]8$$^E6L7#-c
+jnSiGs8Drirr@!8!!b/H79+#EI=M0F%tB%UH$44GBOY4I:e*2V!qu["89UN4bi8<po)B$nmao@c
+Yc+.WLr4`HL9'%tq#/bCJ,~>
+iVrn9p&GO<7W!I+P+J\^^;eCEe,@c%d`oeFZDDb'!pTag,b;X/qWIkdrqc0Li7?&`XFWVBirBDi
+9lbcMYfPVcpAO"N!/(1L";kW^EBr@\#!RdOh!Xn6nc'!rqXWt6i7cW"\Y):S!"&cA/3cp6C2SKO
+KDgH,J9#$l1DK9X"TqW;mJ$S2s*t~>
+iVrnZp.>ck@;pOIP+J\^^;eCEe,@c%d`oeFZDE@g9Bo+P>b/RgqWIkdrqc0Li7?&`XH.-lj%9YP
+@WI!bYfPVcpAO"N!/(1L"rLi`F'qF.oh#Wa84H$85Wq.e1Fs:Bq#CU_L:H%,pAFI\$i^"nlfI'Y
+d`8noDWsb":g%1=D00uNJV3oS"bM/FCg^008d.n<bO,'&fDg@~>
+iVrnsp4*U"FE;b_P+J\^^;eCEe,@c$d`oeFZDEhBl$rniS\=([kPkqhqXNh.f#kY,R>QRUJ-pdG
+Ee'I[aP?+TrSmhWKDY]R(h76%G^"W1J.7!WI!U!XDe`ij=A("Cq#CU_L:H%,pAFI\$i^"nlfI'Y
+d`8nsNp2'#I!U'`H[L9mJV3fP!J>skJ-CLtdd?f-fDg@~>
+ir9!spAb^?;KRDLTsM\cguRbgo(;VSp'^Qco'Yc%fZLdo7Ki&X"<E/rh"^"2$i^)#p@.8#cFooT%
+d!`u!`F)pUr;*Wq#(-NrrL.Cqu?puFHE]?JdCT@!=T>3!!P?@^Ztarn,NFe$N9o!q"4":g;nL?m
+f3e)/l6J6KT).cU8P&qZM_'8Za$U.SV:/k!q?6o"'3Y5q#/nGJ,~>
+ir9"HpIYrnA9<<^TsM\cguRbgo(;VSp'^Qco'Yc%fZLduDbTLi"B:&Th"^"2$i^)#p@.8#cFp'#
+;<:CVA93O%`80kVr;P^U!QP?@!!Z;BOKZBc:@Up_8Ou?@6pX!s/dhFT"ZVIUlMUYMs8W'*rVZNe
+o^:kqaHB6c8e"NtATN6PN0Kj,VlR#,r3Qa9Z)jdmNceQ!nO`sYK$s&]rRq4$~>
+ir9"fpOEd$EccelTsM\cguRbgo(;VSp'UKbo'Yc%fZLe&NpD2uI>"ZVpuVM`rquWdnE8TP]r@0H
+ja[YVF,-R0h<t(9ro3qY`ru;?##TK(YJ-renph'sIXHKeF`;))8.,1n"ZVIUlMUYMs8W')rVZNe
+o^:kqaJJ<T%=WPDFaSk$PanJGX08i,Zj3qBXJMJOMM(DK"bEE!mJ-Y5s*t~>
+j8T+/p](g,5&bn2VnUU<m.C)NrVlflrsA]'qY'F@fZ'=>m/R8.I&>WmiVs5`r:ojHg;p9k"R#gj
+/ocWFcKY*%hu<[5qu@!=E/1aQlJS-;lMq#'>>b\&!!G<<]''%TrrrE"p[6mkmf3eaEIa7KZG+E,
+f%Ss<iqqdCini>8aLn[:8e(:j"Uoe:nG<.=s*t~>
+j8T+Tpdu&i?>t:RVnUU<m.C)NrVlflrsA]'qY'F@fZ'_$m7ILZI&>WmiVs5`r:ojHg;pF@9^#(R
+=E0(pcKY*%hu<[5qu@!=E/1aQlJSa>m7IOQ7nd5e#5\B'3Jb90rTF1arquNYhOa1.%:=+*PGGLu
+aO&Mlh;I;ij9ai&f[7dQY*X*(nO`s^Rc*]3rnII'~>
+j8T+opj`m)FDuVhVnUU<m.C)NrVlflrsA]'qY'F@fZ'tOm=>4a!iF]HiVs5`r:ojHg;pR`J`qUh
+G&`89cKY*%hu<[5qu@!=E/1aQlJT4*mXPLjI=$!B;?m!u"?D:LkPaTD"oeGombY5;J.6R>J<Qe7
+^<"[Pg>1]HqrA(ChUp5s]WRfaK(4?pKWsD(qYo7LJ,~>
+jSo4Pp]([*;KIM`][l<<qYgE_rs/Q#p?^YWLDTCZ"<2`cgA'P)#QFYqmblB\-0YC6>'usdm/$_=
+rrBP*!!kT/R`b'rq!(]B!!Ea>Fbj)q!!G98[cRGJrr`5pkZ@6R$q,K5^XhE/n+?>Kq>0sc$iBep
+o^D##d_Vqg$1Ruu1qr/HrS7F'~>
+jSo4lpdtofA93Er][l<<qYgE_rs/Q#p?^YWRTJrM"B'WEgA'P)#QFYqmblBh?g1/eApg5pm/$_=
+rrBP*!!kT/R`b'rq!*=p8d%n&Fbj)q!!G98[cRGJrr`5pk_&@s$t+IQ^XhE/n+?>Kq>0sc$iBep
+o^D##d_W#4:[q$[C;oB0rS7F'~>
+jSo5+pj`a%E-$])][l<<qYgE_rs/Q#p?^YWVhOSis*OmFgA'P)#QFYqmblBpMWoWqE.";%m/$_=
+rrBP*!!kT/R`b'rq!+O=J-::;Fbj)q!!G98[cRGJrr`5pkbIWt%!?rf^XhE/n+?>Kq>0sc$iBep
+o^D##d_W)NK(4?oP02t]rS7F'~>
+jo5A)"Si$(!`*lnWQXDqqu5m\"o\5`gq6>M!!F6gVV:h"rrrAsnDM>llMq(oE/M0dqVD/O@/Bp0
+:4TD#q#CBc$g[ir:N_`*_YX<98;=S8r8[eZrqbC[nGie`KsKM+qYgE`rs8W%q=En-bcF/$!!Emu
+hXUO"s*t~>
+jo5A8:&%<d@WR@)bN8Bnrp'LerV5d8^NT*="B'WEgA'G&"o\8di5gH78d.n-MR_aDh>[I_qZ$ms
+J?.K#s8Vailq.CiFcWoHqZ$aiL:67Bj8T5\qVbBC8dAgZZJ>*KrVl?e#labtoBP/UY]'&("B;;U
+nbh5CJ,~>
+jo5ACK(sj%EH?r8bN8Bnrp'LerV5d8_Ns\As*OmFgA'G&"o\8di5qMTJ-CC@MR_aDh>[I_qZ$ms
+J?.K#s8VhIm!o4YFcWoHqZ$aiL:67Bj8T5\qW*D$J-U7OZJ>*KrVl?e#labtoBP/U[#jg."GO5>
+nbh5CJ,~>
+k5PJR,kq?E0QDiId-UW.k5PV`pZg:]#k@ru)gnO:pt>ZLrV5d'lMq))FI()<rn[SS./NuL;i%sG
+r;Zf#li724E/(OJn,!(f@Z%e]rSdbWq.K3t"@e6Zkl'iI#QF\snD_`I&Fof)!cuoZqYoCPJ,~>
+k5PJUAGAb%=`K1rd-UW.k5PV`pZg:t:@_![;LG@qpt>ZLrV5d,lUh=XFI()<rn[SS./NuL;i%sG
+r;Zf:lq.F\E/(OJn,!(f@Z%e]rSdbWq2t2>"Cd5!kl'iI#QF\snD_`^;t<Na99@]kqYoCPJ,~>
+k5PJXP5'P4G&`8:d-UW.k5PV`pZg;0K(=HlHig2!pt>ZLrV5d/l[T.cFI()<rn[SS./NuL;i%sG
+r;ZfKm!o7bE/(OJn,!(f@Z%e]rSdbWq60=="EoX5kl'iI#QF\snD_`mK^jQqV:Fu0rnma+~>
+k5PF"p](L*BRZZ!mJGrD"oeDjiMmgf!!F0eVV:gsrrN&8lMq&+H(`XZh#@?rqZ$k"N5+ZVs8Q?j
+!!Q)BSBL?equ?m=Eg"B.ro*kXrl=O/"@e9\kl'`F"o\8dhQ\Bs!!HlYlM:G;s*t~>
+k5PFLpdt`bCOVu$mJGrD"oeDjiO)k\8d&%>VV:gsrrN&GlUh:XH(`XZh#@?rqZ$k"N5+ZVs8S#D
+8d/[LSBL?equ?m=Eg"B.ro*kXrmgO2"Cd8#kl'`F"o\8dhR[+b8d'molM:G;s*t~>
+k5PFjpj`QtDLS;'mJGrD"oeDjiP(->JH'uuVV:gsrrN&Rl[T+bH(`XZh#@?rqZ$k"N5+ZVs8T7g
+J-Bt=SBL?equ?m=Eg"B.ro*kXro!<s"Eo[7kl'`F"o\8dhS>'>J-;FglM:G;s*t~>
+kPkS3"S_s#20=tpk5+$9"TJ2]^*iOQ":fgUf_F%t!35tt!'9TL";cE\f_=2$!$D(<#<RmZlM^bS%
+.+$!"`9"#i;'/G!!Q&BT[NK3i;WiT(@hG.7Z+hArT=+_rV5[#2XpbM@a"$3ro*m-~>
+kPkS@:&%<a>',n@k5+$9"TJ2]`a\R4"AX?@f_F%t!5e\,!*o"c"AsNAf_=2$!$D(<#<RmZlM^bV
+;XI'\9Q#Tki;'/G!!Q&BT[NK3i;WiT=n5/f@Z%e]rT=+_rV5[&D"1+#K$3ESro*m-~>
+kPkSIK(sj"F``b[k5+$9"TJ2]bDl.E"Fb`pf_F%t!7^st!-I^\"FPQlf_=2$!$D(<#<RmZlM^bY
+L@'KqIrC(Ji;'/G!!Q&BT[NK3i;WiTMXl9#G)EoqrT=+_rV5[)P4=&*R`jskro*m-~>
+kPkNYpAbA&J#Lukrnm_Yrql000(f2I%==l%p=B6DL]%2RB-$LB":TXQf_=2$!)ECk"qZO!jo#.R
+qu?^*nc/k8FHjf4nKe&5"X%c?[Ggu>rrN*rnc/e^MS&*Njo5J_qsi8tnGiZ+b3A`\s*t~>
+kPkO6pIYU&J#Lukrnm_Yrql04BD"k":4&bfp=B6DWr5NjCfU!t"AX<>f_=2$!)ECk"qZO!jo#.m
+r(6rank'*bFHjf4nKe&5"X%c?[Ggu>rrN+Nnk'$oMS&*Njo5J_qsi<VnO`n<b3A`\s*t~>
+kPkO\pOEEdJ#Lukrnm_Yrql06OS+,,IX@jAp=B6D_u5)dDgh/+"Fb]nf_=2$!)ECk"qZO!jo#/+
+r."crnpgpjFHjf4nKe&5"X%c?[Ggu>rrN+snpgjdMS&*Njo5J_qsi@(nUL_1b3A`\s*t~>
+kl1Y/pAb@.EK%Qnr7q;Sr:88hp&G4)HD/m_f)G_`rW!!*Ea8)6"*C6ep>#ZJV"t&p5cE<-r_37j
+!=D?f!!P$%U"&U2r;[$/@XF`ln,;,C!.j\@"@e9\kl'QA"9%lB.e3QB!e8G\qVqO*~>
+kl1Y=pIYTbEK%Qnr7q;Sr:8EPp.>H_HD/m_f)G`7r^m5cEcUYA"*^Hhp>#ZJV"t&p5cE<-rdar>
+!DQtm8d/@DU"&U2r;[$/@XF`ln,;,C!2]6Y"Cd8#kl'QA"9%lFAb&Fr99IHbqVqO*~>
+kl1YGpOEEpEK%Qnr7q;Sr:8L&p4*9pHD/m_f)G`WrdY'!Ee<e2"+$Zkp>#ZJV"t&p5cE<-rhfXE
+!If+\J-C.CU"&U2r;[$/@XF`ln,;,C!5J)T"Eo[7kl'QA"9%lHOR[i'T?QZuir=N~>
+kl1WbpAb@BG+-\GrnIGTrUeS^pAb=*H(`[\f)G_;rW!$:G*F0?!!?8jch#rl!V\&>!!H?;jlQ^E
+!!+i]nc/eTJ?-URr;[$*<d'Y=jS@X3!28r`"@e9\kl'N@"9.u;'Cl,+%[ti7r8[g-~>
+kl1X=pIYThG+-\GrnIGTrUe`LpIYQ`H(`[\f)G_rr^m8iG*H;&8crmuch#rl!V\&>!!H?;jm,V=
+8c`(1nk'$jJ?-URr;[$*<d'Y=jS@X3!5.kp"Cd8#kl'N@"9.uC<q8ic;52M-r8[g-~>
+kl1XapOEElG+-\GrnIGTrUeg&pOEBqH(`[\f)G`ErdY)uG*IjRJ-1.ech#rl!V\&>!!H?;jmRd!
+J,sh8npgjdJ?-URr;[$*<d'Y=jS@X3!714d"Eo[7kl'N@"9.uHM"6'!Ju6ubr8[g-~>
+l2LeM"SVm!3.7[VpY#QKrq4GJp](F&GbER[f)G^mrW!$IHD#o\!!G-A`U3Z\rrW/;#PnE%4hQFF
+!!6GR!qQBo7=\hVr;['0<csA,g@YC#rrBe(!!GcK]BK4PrrW2mU@A3d/?mh"roF*0~>
+l2LeS:%q6_>^`L%pY#QKrq4]?pdtZ_GbER[f)G_Xr^m8nHD$eu8d&I``U3Z\rrW/;#PnE&4hRFY
+rCR-)I7s0("(?^h%K-83$<D;.ZJ+sMh>[K%nk'$oMS&*NiVruYosaH`"CSIeo`!qOJ,~>
+l2LeWK(jcuG($7?pY#QKrq4lupj`KrGbER[f)G`3rdY)qHD%D1J-:7_`U3Z\rrW/;#PnE'4hS.L
+J,Xs!E.7A."*K-'%K-83$<D;.ZJ+sMh>[K3npgjdMS&*NiVruYou?NP"GX/6o`!qOJ,~>
+l2LaMp&G4`K!=20f`)'QoX5)$!!@J;e+M>m!;l]p"?(_.d3%oZ":U*rjnmj5!r/2dq>^O((]==9
+)KC]Vo)Je5%/^)1*G'JTYgr7@h#@B&nc/e^MS&*Ni;WlWo2tM_"(8e&q;hR+~>
+l2Lakp.>HqK!=20f`)'QoYaT$8cs=0e+M>m!;udf"C-DTdU2Q;"AXc_jnmj5!r/2dq>^g0/j)To
+8lBYf>4bDg68&cF!!aNUG`ArXnGM)A!8d9="Cd8#kl'H>!r__EnO`n1]]AnLs*t~>
+l2Lb,p4*9gK!=20f`)'QoZi-bJ-1%fe+M>m!<)kH"Eo6nduEpK"Fc0:jnmj5!r/2dq>^g05A,4h
+IsQ*nL\-)uE]X^-!!aNUG`ArXnGM)A!9j!("Eo[7kl'H>!r__fnUL_%]]AnLs*t~>
+l2L`Sp&G4aL:64AfDbpNo8`SG"*U3^o[j*Cg\h*T7Y7l%Mt$cL?DuQNh#@KTntQrm!!>W4S3H?@
+#REn@I[.=lnGM&@!8d8H"@e9\kl'E=!rUsdnc/e$R*+gojo9i~>
+l2La2p.>HrL:64AfDbpNo;VLW"*U3^o[j*Ck5@mT@=k`@Wpr[`Ei@[bh#@KTntQrq!!`Q>-otUV
+S8\0p"%G3q&c2P6#Y&laQ*o34r7h5OkOM4J@Z%e]rSRVVr8^fI8d%t[b3f,gs*t~>
+l2LaZp4*9hL:64AfDbpNo=XjK"*U3^o[j*CmJVP<FFpaS_!upWJZ.8qh#@KTntQrq!!`TM7V$C[
+S<Wf!"*n9=*r>pC#Y&laQ*o34r7h5Omdbl2G)EoqrSRVVr9/n*J-2=amJQ)GJ,~>
+lMgnZ#ke6$7Z"_?rRUuMr:!nc!!@A4d.Gri!4Vn,"]^>fk3WrT!!Fp@am]5arri5d`Dd$8!!<ED
+3$n%o#n&k6I#=Z6h=:EsrrDc`!!GcK]BK4MrrMtInGi\eY1r[Lk5Tr~>
+lMgn\;"dKa@Yq\[rRUuMr:#I:8cs4)d.Gri!6kC6"_NP"k3lID8d&Fdam]5arri5d`Dd$8!!<ED
+3&^[["!\`u$2FQ-$Tr?TMP@oBnbh,@!;Z1X"Cd8#kl'B<!W&P\8d'(8g\1X/s*t~>
+lMgn^K_Bp!G)<forRUuMr:$TZJ-0q_d.Gri!8II&"`oI/k4+?"J-:=fam]5arri5d`Dd$8!!EKE
+3(#k-4p*o#+V4AK#n&k6I#=Z6h=:EsrrDodJ-:%Q]BK4MrrMu.nULasY1r[Lk5Tr~>
+lMgk-o`,+aM7`!Mec,^JiZe4!")""Ho@O!BQi-mfArOLiqLnD>"9a=cjSR^3"o@Z<WE9kt!"/f?
+3bj)#T!m#.pAN\E!<2Nh"@e9\kl'B<!rhQsnc/e*QGr4hk5Tr~>
+lMgk<oh#?rM7`!Mec,^Jj^@pW")sXQo@O!B[J`]$D2c6pqPEaT"A=KYjSR^3"o@Z<WE9kt!"/f?
+3bj)#T!m#.pAN\E!<2O]"Cd8#kl'B<!rhXfnk'$^QGr4hk5Tr~>
+lMgkGomd0gM7`!Mec,^Jk`5Li"*^-Xo@O!BbPcqpEf@cuqS)KM",OGIqqM,SqX2q6=;9ou$NUl$
+C41u2[a=11rRq2NrpkRBG)EoqrSIPUrpba5J-2+Vm/?)HJ,~>
+lMgjNo`,+[M7VpLeGfUG[KHC,"D4"Enc%2@!-J2?#6T"0`pWih%e9T&9Vg53rnIGWr:ApkZ[t1$
+!"'N/@"b8acJe<irn%2@!!GcK]BK4LrrN%3nGiZ%Y2/m8s*t~>
+lMgjloh#?pM7VpLeGfUG`_?8%"E9^Onc%2@!1a$\#>9*#`pWim<:WWaC8BDQrnIGYr:ApkZ[t@J
+!q$$t"Uu:u6=>J@\Ba('qYo+Hnk'$oMS&*Nh>[NRPOV6IGHTcsk5Tr~>
+lMgk-omd0iM7VpLeGfUGdXh:G"Ep-Unc%2@!4r/[#CgcW`pWipL@KcrUt,/;g]%QWoA[s"Jj^1Q
+mJm\&(F_:0@"b8acJe<irn%2@J-:%Q]BK4LrrN&&nUL^pY2/m8s*t~>
+lMgj+o`,+KLq)UFeGfULp14%#"C786nG_)?!)WXp#820Hc1:l3D=RZ0'U$B"rS%8TrV>p?cU[p6
+"pu+Y&Io9OoDf.4<.1msjRE!Dec,U_o)Jn_MS&*Nh>[NT`:3g11n)VWroa<3~>
+lMgjSoh#?jLq)UFeGfULp5]#B"Dj=EnG_)?!.t2B#>fQ1c1:l3QL[WN;Ner`rS%8_rV>p?cY5-e
+,9%F7&ePT`"o\W;"UGMJ'cS>C-7CZLIBCrYnG3%5rr?-l8d&U\]BK4LrrN,KnO`pkR`k4"kPp&~>
+lMgjqomd0kLq)UFeGfULp8n.A"F$*PnG_)?!3#mI#CLZ]c1:l3ZgrVLJ!._8rS%8^rV>p?c[o1m
+4Y@ln&ePT`r!3lF'H8;N4$Z/&85t#>dcBonrRLoJM=Z6#G)EoqrS@JSrnd0q"Fcf_nG_VNJ,~>
+lMgico`,+1KX0V7e,KLJjV[mq"BUc+mf(l=!&4BP#U"Aae+Nb?h?WTO")+mopt5TKrV>R_r;[$V
+9ji7&N#_Hi"r;$DcLC]0e,KCio)Jn_MS&*Nh#@EP(@hG.&rO9_r9+*1~>
+lMgj?oh#?bKX0V7e,KLJl!"!W"DX+>mf(l=!,VX,#ZQ&@e+Nb?k"kP?"*h$*pt5TVrV>_N5Wh"`
+5tta4Ll=In./tb)/1rV52aV>LcLC]0e,KDUo1B-pMS&*Nh#@EP=n5/f:l;jHr9+*1~>
+lMgjcomd0nKX0V7e,KLJl\bUj"F$$Kmf(l=!1<b9#^U`fe+Nb?l@\YX",*l6pt5TVrV>f*DJ3Ka
+9hf#@Ll>:171MdX8PDr[=^GNQRa1F!rmUlIO7Rl)G)EoqrS7DRqhjrp"Fc6>k5=EBJ,~>
+lMgiLo`,*rFfF-jdf0@ERf!-g9T[-Xrn.5N%/p54/psPLq#CBk?1Isu0:L,Srn%/MT)AWo$!qV7
+Z+n%CoDf"(H)B<jdJj1go)Jn_MS&*Nh#@ES;=OVgG,j<lkPp&~>
+lMgj.oL]44WS@3rrrMu'r(7*'OM^A`f`(qLr^mGuI&>Tls8VtRnk'$kR`t:#fDc8j8Ou<=7::+u
+Z+n%er&+sB3'',a5X@b0H)B<jdJj2So1B-pMS&*Nh#@ESK(2G8I&brrkPp&~>
+lMgjWoRI$nWS@3rrrMu9r."opOM^A`f`(r+rdY9!I&>Tls8VttnpgjmR`t:#fDc9)IXHHbEF<dL
+Z+n&)r*Be=@:WtbD/jZ?H)B<jdJj3-o7-seMS&*Nh#@ESVso3<Wn[=3s*t~>
+lMgiKoDf"dS^@!-e,KLKoeuaK"@eBclM]E9!:0R`#X!X>hYR9PrmL?;"9a7bjSRR/!'pJ_#;pOa
+^>J8AIe3UC"+-iqpX0!@+7fI87Z+hArS.>PM=CQK<h7V/rojB4~>
+lMgj-oL]7"S^@!-e,KLKoks_#"CmG+lM]E9!:g"[#[Mt_hYR9Prn[-;"A=KZjSRR/!-eB6#?c)0
+^>J8ASGGV\77Kd<8P2X&Ut>@grr?Hu8d&U\]BK4JrrB(h8d&t$d.@8#s*t~>
+lMgjVoRI'nS^@!-e,KLKopG]."F,p@lM]E9!;6;@#^1a#hYR9ProEU"",aVLqq(iJT`0HIIro^n
+^>J8AZi"nRF`qtSH@1-jIs\!CpX0!@O7Rl)G)EoqrS.>P_sr6[I%AXUrojB4~>
+lMgiKoDf".OML/[df0@G]DV^43JtH4rRq2Na8Gu@8qaS3r;Q]sqb$DZ"@o9;o`!PD!8m_T#QeFb
+WnI+FrNPkn")jd[p!Nd>+7fI87Z+hArS.>PXmlAo6'B7UrojB4~>
+lMgj-oL]6aOML/[df0@GbPb$9?AcAYrRq2NfDS;E@YD,Kr;Q]sqgS*."DFU\o`!PD!9j>Q#AJ^g
+g%PFD`q)e)Fe7(TdJj2So1B-pMS&*Ng]%8lnO`pnP/cqhkl6/~>
+lMgjVoRI'oOML/[df0@GfDU4&H&B5trRq2Nj8FK2FG.$]r;Q]sqkEY3"G*Auo`!PD!:Ti9#B,-m
+g%PFDf(smmJ-1(ge+M,g!0?`%"Eo[7kl'99!7gUi"FH<Omf)GMJ,~>
+lMgiKo)JknXk`^!rrMmdrW!'TL:?=Cg&D&Mr;Zt&M7VmKrr3#u^@D7,'9U,rr7V)MGPqLI,BAjZ
+kktJ\iq!-P?CB+0dJj1go)Jn_MS&*Ng]%8nnGi\GMS/0Okl6/~>
+lMgj-o1B+)Xk`^!rrMnBr^m;sL:?=Cg&D&frCR3+M7VmKrr3#ucLOR1;3A][r7V)MTD_@f<H=/7
+kktJ\lLRUMDOJf@dJj2So1B-pMS&*Ng]%9)nO`pgMS/0Okl6/~>
+lMgjVo7-prXk`^!rrMngrdY,tL:?=Cg&D'$rI>#lM7VmKrr3#ug@BasJ!%S4r7V)M]D[6cH#et[
+kktJ\nFM/4H'utKdJj3-o7-seMS&*Ng]%95nULahMS/0Okl6/~>
+lMgiKo)Jn%N5k5^df0@H`Voi?-A8\br7V)MKDbcQBTBpqrr)itqD[sF"(A:dptG`Kq],P7#u>oA
+de!J<s8EQ$!!H,^aRB,Vrr=/4!!GcK]BK4JrrCpG!!F^([,h/Ks*t~>
+lMgj-o1B-]P/ckddf0@He,DrB=+mm>r7V)MVu93jDN;R"rr)itqJc!t"*L^#ptG`Kr*K=o$"J=U
+de!J<s8H!i8d&gkaRB,Vrr?Hu8d&U\]BK4JrrD6P8d&7M[,h/Ks*t~>
+lMgjVnpgh.`pEWOrrN)SrdY,tKX0Y9g&D&grI>#kNkt)]rVlopRdtt2KWNu(gA_3PNr=J7EdOM.
+oD\direL,r"F--On,Cc8!0?`%"Eo[7kl'99!:KB-"F>d/jS\6AJ,~>
+lMgi_nc/e@W7^bAdf0UK8cSi2JZdo,g&D%[rW!**F-F]6rr)itrMT2d"=]b]n,D)A!42V("VPd1
+[c@5`rrN*WoDf"[Nl(/^df0:ho)Jn_MS&*Ng]%91nGi\3JZdr-kl6/~>
+lMgj;nk'$jWn?tCdf0UKHqI"1JZdo,g&D&4r^m>fF-F]6rr)itrP%hp"Bq59n,D)A!6P13"]0/o
+[c@5`rrN+<oL]6qNl(/^df0;To1B-pMS&*Ng]%9;nO`p_JZdr-kl6/~>
+lMgj`npgjrWn?tCdf0UKU4@cAJZdo,g&D&VrdY0%F-F]6rr)itrQk%b"Fli^n,D)A!87=$"ak9F
+[c@5`rrN+foRI'iNl(/^df0<.o7-seMS&*Ng]%9AnULaiJZdr-kl6/~>
+lMgj&nGi\U\`!5]e,K^Q\c;^@J>q;ug&D%7rW!'6G+$YHqu6]l,kD!=!dqH:qV2#M;#L@t5^/[?
+nGW=c!+tj'">G_Fkl&s0!$Ce4"@e9\kl'99!8d5G"<2ijh"g16J,~>
+lMgjOnO`q!\`!5]e,K^QbXtK(J>q;ug&D%or^m;iG+$YHqu6]lA+N:q98'b6qV2#MK)J:F??_j]
+nGW=c!0ZtH"C$bqkl&s0!+>Cj"Cd8#kl'99!9irF"B'`Lh"g16J,~>
+lMgjnnULb"\`!5]e,K^QfRSL%J>q;ug&D&DrdY-!G+$YHqu6]lORdo(M72I@g]%8PrI>&nGFH_E
+rVc`rZLiYMHA]>urR1]GO7Rl)G)EoqrS.>PmdYf1I"/0Oq<7j/~>
+lMgjIn,NSP^?#%fe,K[L0E;0+Ut>=nrr=&<!!FEiT@EQ2rrN(_nc/e\U=/]5h>[N="TAB)#&/^m
+h>$pJ!06[O"<iH*jS[I+!$Ce4"@e9\kl'99!7pZ?"<2cfg\C"4J,~>
+lMgjhn4Egu^Z>.ge,K[LCJ%6OUt>=nrr?@(8d&+=T@EQ2rrN)&nk'$tU=/]5h>[ND:&[`g9Pf?a
+h>$pJ!3Yrd"BC,^jS[I+!+>Cj"Cd8#kl'99!93N@"B'ZHg\C"4J,~>
+lMgk*n:1Y$^uY7he,K[LQ@OL;Ut>=nrrA)YJ-:1DT@EQ2rrN)<nUL_9de*OprrM_CrdY0%DhG4K
+q#(-l`q4caH\Acer6kTFO7Rl)G)EoqrS.>Plg]K.I!qsJpuqa.~>
+lMgk+mf3JB]&NG_eGfdP`.DZ`WS$purrDfl!!Fj#VV1b@rrMU)o)Jn&NkaiVh>[J1r;[!SFHaZ/
+rVZZq^%;:-&V-t>qU5BD+7fI87Z+hArS.>P^@;1+)h"U;puqa.~>
+lMgk:mn*^m^#JbbeGfdPd[l,RWS$purrDln8d&7DVV1b@rrM[no1B-]O2'rWh>[JTrCR5qFHaZ/
+rVZZqch'g4:k5Y(qU5BD@.Qtn@Z%e]rS.>PdIBg3;LPFrpuqa.~>
+lMgkEmskP!^uG(eeGfdPgp<B1WS$purrDrpJ-:+EVV1b@rrMbLo7-snOMC&Xh>[JmrI>&qFHaZ/
+rVZZqh=Q4#I=SEUqU5BDO7Rl)G)EoqrS.>PhXQ+!I!qmGpuqa.~>
+lMgn\$h"&u)kc'Zr7(`Nq;fK$_;b7DrrCOH!!G?5XPWgMrrN(Gnc/btX4m=(rr=2?!!QYWVUkG>
+r;Qc]oDf!qI&5Kidf0:ho)Jn_MS&*Ng]%8KnGi\@IAkoqkl6/~>
+lMgn];X[3\>-6ZQr7(`Nq;fK$_;b7DrrD!U8d&FMXPWgMrrN(knk'"*X4m=(rr?I*8d/mWVUkG>
+r;Qcco1B+4V:bOjrr?Hu8d&U\]BK4JrrBb&8d&4DW8%+2s*t~>
+lMgn^L$sNpLUQ(2r7(`Nq;fK$_;b7DrrD<^J-:%GXPWgMrrN)0npggpX4m=(rrA/ZJ-Bn@VUkG>
+r;Qcgo7-pjV:bOjrrA,OJ-:%Q]BK4JrrCI:J-:.GW8%+2s*t~>
+lMgna=mc7n#^=qhqYo(G#6"5XhW+2)gA_/Zr;ZsiKX0Y8qYpWrk6LSY"=9DUmeu&C!4Vn,"X7rG
+]]]1hrrN*4oDeu,T$m8Zrr=/4!!GcK]BK4Jrr@Q=!!G30XPN^9s*t~>
+lMgnaM!dk=:6X>uqYo(G#6"5XhW+2)gA_/prCR3$KX0Y8qYpWrlqd4F"Bh)4meu&C!6kC6"]TK$
+]]]1hrrN+#oL]4+T$m8Zrr?Hu8d&U\]BK4JrrAkb8d&CKXPN^9s*t~>
+lMgnaX6tKAJu@8hqYo(G#6"5XhW+2)gA_0+rI>#nKX0Y8qYpWrmt:4^"FlcZmeu&C!8II&"aY0J
+]]]1hrrN+UoRI$iT$m8ZrrA,OJ-:%Q]BK4JrrBh(J-:(GXPN^9s*t~>
+l2Ladli7/P_!(Okf)GpPqY9marn@APO8T%]<J\3Kr;$?nr+5I""9NhTiVMI3!)3=k"]0Q=dIR;5
+rr>7T!!H;gbOPS\rr=/4!!GcK]BK4Jrr>mc!!GrIZJtcFs*t~>
+l2Lb%lq.D"`p!0qf)GpPqY9marn@APYl./sAr+"\r;$?nr/gJA"+di<qVV;QJGi(D@salro)ALc
+!-\!,"DX:Hnc%#;!+>Cj"Cd8#kl'99!.s`5"Cd"hiqqs>J,~>
+l2Lb6m!o5'b38Tuf)GpPqY9marn@APa8LMkF,7Bir;$?nr35aB",O>CqVV;QVYu#KEdOJ,o)ALc
+!1rh5"F6?Wnc%#;!0?`%"Eo[7kl'99!3#F<"ET4$iqqs>J,~>
+l2LeY+m]14%Y!:(qYmPq!-%l:"CdA+lM^PY!rgXNo)JnUT[EB1iVrr="TAB)&o`Z8iqiKN!,D-+
+"@J<imJbT7!$Ce4"@e9\kl'99!#Y5+"D!A#kPaWEJ,~>
+l2LeZ@I-Si;OZJ3qYmPq!1EdX"Dj(5lM^PY!rh%Mo1B-rT[EB1iVrrE:&[`g:iM6!iqiKN!0m+J
+"CmS4mJbT7!+>Cj"Cd8#kl'99!*etc"Diq+kPaWEJ,~>
+l2Le[O6hB#KWa2$qYmPq!4_uX"EKL;lM^PY!rh;5npgh8dI[@rrrMYArdY0"E/:s^qYC-k[.JkO
+HBH/5rmUlIO7Rl)G)EoqrS.>PN:DE$E/D0hrTO93~>
+l2Le`R-FYS0!+4.r2fnu9`4qoEg"H1rqQKoqb-M\":L1%kksE>!.4YE"[[F%b4#<)rrA>V!!G!5
+]]f=Crr=/4!!GcK]BK4KrrCC8!!O'WP/Zhfkl6/~>
+l2Le`Zg(-cB"I-tr2fnuJGi(CEg"H1rqQKoqgS-/"AXrikksE>!2BEa"^cJBb4#<)rrBCt8d&@U
+]]f=Crr?Hu8d&U\]BK4KrrCmF8d/%3P/Zhfkl6/~>
+l2Le`aQe9YOMp;Sr2fnuVYu#JEg"H1rqQKoqkNb5"FlHFkksE>!58>]"a"sWb4#<)rrC15J-:4V
+]]f=CrrA,OJ-:%Q]BK4KrrD6PJ-C=@P/Zhfkl6/~>
+kl1\U.-U^79YB]crN?/#/H,VQ%<Rr\nc&=`!WK_%!!??&g%OG*!W*`5!!NXDKWj5,q#:?5oDf"9
+Ks]q=e,KCio)Jn_MS&*Nh#@A$nGi_PGb3=TrojB4~>
+kl1\VAa)eiHcGCGrN?/#B`:U-:3;iHnc&=`!WL=68cs%3g%OG*!W61$8d.q+KWj5,q#:?EoL]6c
+Ks]q=e,KDUo1B-pMS&*Nh#@AKnO`shGb3=TrojB4~>
+kl1\WP3IK"SBgHprN?/#QMuC<IWUq#nc&=`!WLdCJ-1D&g%OG*!W@uVJ-CC?KWj5,q#:?QoRI'l
+Ks]q=e,KE/o7-seMS&*Nh#@AfnULddGb3=TrojB4~>
+kl1__]*%9t"TqN7m.^I_rr<?(!!F0aS^I*'rrMsQo)Jn8QH/Ckj8T+Wr;[!XFHjc2rV6BmmdpJ^%
+Y1Y;q:#?D+7fI87Z+hArS@JSq],/,"Ti+aXkrm:s*t~>
+kl1__b=q.m"\a?dm.^I_rr>mp8d&%:S^I*'rrMt6o1B-dQH/Ckj8T+prCR5sFHjc2rV6Bmo(5NW
+:4TG&q:#?D@.Qtn@Z%e]rS@JSr*Jnc"DWOjhYH@7J,~>
+kl1__f7E1:"bE;nm.^I_rr@`OJ-:4DS^I*'rrMt`o7-snQH/Ckj8T,.rI>&pFHjc2rV6Bmp@Nk<
+IXnNVq:#?DO7Rl)G)EoqrS@JSrJpDu"E/mohYH@7J,~>
+kPkSXIcg\8"&HSrp\b#trrD*X!!FToUXo/4rrN(nnc/c4ZJbQ=rr>1\!!WL7J>q2prqQKorYP2,
+"*gWopXB-B+7fI87Z+hArS@JRTCDmb-?>3`lMTiFJ,~>
+kPkSXTBAfN9RXtJp\b#trrDB`8d&1@UXo/4rrN)2nk'"5ZJbQ=rr@0>8d/s[WS$qDq#:Bo>4bDh
+HDK3fe,KDUo1B-pMS&*Nh>[JenO`scEfe*%r9+*1~>
+kPkSX\EAAHJY1<Up\b#trrDTfJ-:.DUXo/4rrN)CnpggsZJbQ=rrAYhJ-BnBWS$qDq#:BoMtDN%
+I&,Ehe,KE/o7-seMS&*Nh>[K$nULdfEfe*%r9+*1~>
+kPkV^nP\HK"[]6TpAFourrBt8!!G$*WS@4@rrMd5o)JnST$R!,jo5>,r;[!KEf[rur:^-j9(W)c
+@[tj<e,KCio)Jn_MS&*NhZ!WR,k:p>!aC&Ie+EY&s*t~>
+kPkV^nU]do"a.KDpAFourrCRI8d&=HWS@4@rrMh"o1B-pT$R!,jo5>:rCR5oEf[rur:^-jIe657
+E1G>Je,KDUo1B-pMS&*NhZ!WSA+<.pB7-K'o`"%RJ,~>
+kPkV^nY>2r"e*NupAFourrD$VJ-:+GWS@4@rrMkRnpgh6cgq(srrD6\J-C4=O1siUpAY,goRI$i
+SC-uXrrA,OJ-:%Q]BK4MrrN(]nULd]I&#0_roa<3~>
+k5PM[k=4M4"YQ&$o_\WtrrA\i!!GK:Y2K0LrrN(So)JmuLqMmIjo5<jr;["&I%o*^rq??lEqB>7
+:6irjrm^rJ+7fI87Z+hArSIPSL[b?J.rpT[jnn3?J,~>
+k5PM[k]l/\"_b%#o_\WtrrBY/8d&IOY2K0LrrN(so1B-[MnJ3Ljo5=CrCR6*I%o*^rq??lRe02T
+B9gU.rm^rJ@.Qtn@Z%e]rSIPSWpr[b=)s82jnn3?J,~>
+k5PM[l($gb"d6X`o_\WtrrCCDJ-:%HY2K0LrrN)6npgh$]]T+QrrB>&J-Bq?U=8c6pAY-&oRI'j
+Q-&OpeGfN0o7-seMS&*NhZ!SnnULdeEf@Tkqr[p/~>
+k5PP_q;O6k!!O-]eFE>4])MbXr;ZsmKs]q=o`"sU%eBZ&;Q&1@k5PJN#lXf-)KCYEjSSWM!1i`^
+"?MRZli,E6!$Ce4"@e9\kl'E=!RD&B!!WjDI\bE`roX62~>
+k5PP_q;Z;O8d/=ag%"k9])Mc)rCR3%Ks]q=o`"sY<:`]aDPu.\k5PJS;#X&j;K7T(jSSWM!4h_o
+"CI2*li,E6!+>Cj"Cd8#kl'E=!SpTC8d8%+I\bE`roX62~>
+k5PP_q;de#J-Cb7hXUC>])McErI>#mKs]q=o`"s]L@]otJu@8pk5PJVK`6K*HuY%RjSSWM!7(4e
+"F?*Eli,E6!0?`%"Eo[7kl'E=!U#.,J-LI?I\bE`roX62~>
+jo5G^pYS?t!!WX*Z0h8_rk8=3=T&4&=,OWRrUg*jr+Ya&"<*NDm/?,I!/pdU"\F!1cLCi+rrC15
+!!FU(\E<_=rr=/4!!GcK]BK4OrrM:.nc/jq:Nhr;kPF<?J,~>
+jo5G^pY^2R8d8%@_X7'prk8=3M#BpKBSsFcrUg*jr0-_E"B:W)m/?,I!3Q2l"^u\IcLCi+rrC^D
+8d&4O\E<_=rr?Hu8d&U\]BK4OrrMOtnO`soG*B`)qW7a-~>
+jo5G^pYhS#J-LV"c0b6&rk8=3XSmYPFGd]orUg*jr3GpE"FlZTm/?,I!6+ne"`ns[cLCi+rrD*O
+J-:7U\E<_=rrA,OJ-:%Q]BK4OrrM_SnULd_G*B`)qW7a-~>
+jSo>]p>/^*!!OX"g@G+=^]+9nr;Zt2Nkju[o`#!ldf]1A")b@#puq_Yq],S8"Uo7&ZJbNMrrDW^
+!!F!fYi,B-rr=/4!!GcK]BK4PrrM^JnGibPEepsSp&=(QJ,~>
+jSo>]p>:>W8d/[thX^OA^]+:RrCR3/Nkju[o`#!lhG!N5"+7?1puq_Yr*K@p"\rriZJbNMrrD`a
+8d&"CYi,B-rr?Hu8d&U\]BK4PrrMh3nOa!iEepsSp&=(QJ,~>
+jSo>]p>DP#J-CtCipusE^]+;(rI>#lNkju[o`#!ljb!)S",=&;puq_YrJpl-"b(BEZJbNMrrDid
+J-::PYi,B-rrA,OJ-:%Q]BK4PrrMqanULgdEepsSp&=(QJ,~>
+j8T8]p>U&nhuErc:Tj*Yr;OS5!#5A3"EK[Fmf)hX!W,O]!!G-KcLLnurrB+u!!PE,QH/Cko`"sk
+-M7?A"+@-%psf<D+7fI87Z+hArSmhXj!aEt"tFPCV9n]/jSs`~>
+j8T8]p>V6/i(=2KJ&(IFr;OS5!*K1l"EK[Fmf)hX!W.?;8d&LkcLLnurrC"98d/LDQH/Cko`"sk
+AG&Ot97<bmpsf<D@.Qtn@Z%e]rSmhXlXoZZ#$5_pV9n]/jSs`~>
+j8T8]p>W'&i.)#`U!;uur;OS5!/g`*"EK[Fmf)hX!W/Y_J-2=enc%eQ!7h$us)nL1a6iitrrN+^
+oRI$lW7q$rrrA,OJ-:%Q]BK4QrrMYSnULggDh=h4n,28HJ,~>
+ir9/\pZ.SOh>d^)K])IurPed:oDJXm%<Rr\o)A7\!WK_&!!EL[]&ihRrr>1\!!NI<JZIN!o)A\b
+oDeu+T@<J_rr=/4!!GcK]BK4RrrK_KnGib<D18(tlMBQ@J,~>
+ir9/\pZ/;QhF[r\U>tkArPed:pAISe:3;iHo)A7\!WL=78d%hD]&ihRrr@0?8d.k(JZIN!o)A]@
+oL]4+T@<J_rr?Hu8d&U\]BK4RrrLGMnOa!cDLS1ulMBQ@J,~>
+ir9/\pZ/f;hLGci\E*8XrPed:q>GgIIWUq#o)A7\!WLdCJ-1_@jnn<B!1s.>"E8pmg@t1<!2fC=
+"+-Zhp!j!AO7Rl)G)EoqrT!nYh2LlS#'k-9T#g3nj8XW~>
+iVs&[puoFNh#ITiD9q_HrQ"p<ci!hH)0h_#o^Vq^qCM4<"AP`Dp&=:W!6b<@"Y=_W_!:jgrr@67
+!!H2dbOPS^rr=/4!!GE?\`WhOrrM_0n,N\IDgn4ok5##:s*t~>
+iVs&[puoY3h+@iMP1K-trQ"p<h>KqK;L"b\o^Vq^qIoIm"Dajbp&=:W!8@BD"^#i._!:jgrrAY_
+8d&jpbOPS^rr?Hu8d&IV\`WhOrrMh]n4EpgDgn4ok5##:s*t~>
+iVs&[puoe]h1,Z`Y1rI@rQ"p<kP]o6H[)+0o^Vq^qNUT%"G*E#p&=:W!9O00"aG*N_!:jgrrBY&
+J-:1bbOPS^rrA,OJ-:+Q\`WhOrrMr)n:1aeDgn4ok5##:s*t~>
+i;Wu[qWuaU$Jb[c#%#OAq#/>7!3c>$"=&5ef(SY6!WAP[!!F%"_s@9err?=&!!QPSUt,,:o)A]d
+oDf"ZOMgGaec,Uknc/h9HIhZarosFaqk"ku!!i`qEe9n#jS/Z5s*t~>
+i;Wu[qWuaq:u+_I:5I?dq#/>7!64t0"BBcBf(SY6!WBIu8d&%T_s@9err@uU8d/mVUt,,:o)A^(
+oL]6qOMgGaec,VWnk''gOk91$rosFar4?;*8dJ*tEe9n#jS/Z5s*t~>
+i;Wu[qWub0K&(q\Ju72gq#/>7!8%1""F5<ff(SY6!WC14J-:@b_s@9errB5#J-Bq@Ut,,:o)A^;
+oRI'jOMgGaec,W1npgmqU=f&6rosFarQgMoJ-^XGEe9n#jS/Z5s*t~>
+hZ!`Uo%pZ;g].K^?-_m5rQG3@Mu<VY0RftTq!e:anJ:]r")+moq!A"]k61ba"W_T@]&rn[rrCI=
+!!Fg/]''%Brr=/1!!X3S]^Y^orpKdflAHnV!!jBGG)3!9k4el6s*t~>
+hZ!`Uo%poqge%`FLXbberQG3@Xo1ip=am=(q!e:ao3(ZW"*h$*q!A"]mS3[Q"]KE!]&rn[rrCpJ
+8d&:R]''%Brr?Hr8d8C[b4,3(rpKdfn>p-h8dJ:-G)3!9k4el6s*t~>
+hZ!`Uo%q*DgjfQ[V:b52rQG3@`Vk;iG^cUGq!e:aonr?k",*l6q!A"]o7Hsl"ab6I]&rn[rrD6S
+J-:4U]''%BrrA,LJ-Lh3eF<82rpKdfoYls^J-^L@G)3!9k4el6s*t~>
+h>[ZWpZTt`,hrA'$uO\eq>SY=!,2<2"?M+:htljB!W@H<!!FsDbjbW!rr@EE!!Q#@T$R!,nc&Xd
+"SD`t(50!Qqpk]H+70%7)dScMnbN(\rr2]m"THu<9*F_a#ms"=IZq"_lM:G;s*t~>
+h>[ZWpZTtq?JJ-V;N]c(q>SY=!0mFS"C6S]htljB!WA_`8d&IhbjbW!rrAel8d/[LT$R!,nc&Xe
+9_D!\;M;@8qpk]H@-pPm>`#`8o(i1]rr2]m"TIDfIn]?(#u+cHIZq"_lM:G;s*t~>
+h>[ZWpZTu)LtmLaKWEquq>SY=!4;]T"Eo@!htljB!WBY%J-:@jbjbW!rrBb2J-C">T$R!,nc&Xf
+K(XWsI>"ocqpk]HO6qH(MlF\OoD/:^rr2]m"TI]/V1S2e$%?u9IZq"_lM:G;s*t~>
+h#@TXqXE@]F;EX3"W<3Xo)&F4rr>Rf!!GcE[,_)QrrM$_oDf!sK"0n=mf*=^'`J(9%W7$-i;)mB
+!WFSA!!EISWS@3urr=/*!!`TO7UCD#R[X2E"+FiG&+0E)&j^D^N2+/Bn,!%@s*t~>
+h#@TXqXE@]N`Oq-"^7_^o)&F4rr@HF8d&RU[,_)QrrM:YoL]6ZL:H=Amf*=`=T1nr:2blni;)mB
+!WHa)8d%h:WS@3urr?Hk8dA%!HAeDs[^Q.D"/:s%<UNHd:g\3hN2+/Bn,!%@s*t~>
+h#@TXqXE@]TS2*N"c9\Jo)&F4rrAknJ-:"J[,_)QrrMJ=o7-q#\E*PTrrN"SrdY0$E/(^Wq=+Cb
+rfm)+"Fkm"g\B>!!0?Ap#_J/2XLc<lb00e."2;(4L[K["I!'IVN2+/Bn,!%@s*t~>
+gA_BUpZpGDA.IAp"?!RMpANA<!$qLC"B1,fkPalL!W6-m!!Gffeb&k0rrADa!!PH-QcSUnn,EAc
+oDeu/T[`Ybrr=.]!!t5jG_r*'dHC3#h>`!~>
+gA_BUpZpGEK2UJs"Dkm;pANA<!+Yt""D3J$kPalL!W7cF8d&h'eb&k0rrBJ*8d/LDQcSUnn,EB@
+oL]4-T[`Ybrr?HI8dSU9G_r*'dHC3#h>`!~>
+gA_BUpZpGFRY'=F"I$pjpANA<!0[;2"E]I2kPalL!W8thJ-:G!eb&k0rrC7@JH'cpQcSUnn,EBd
+oRI$jT[`YbrrA,#J-gF<G_r*'dHC3#h>`!~>
+g&D<Vr:K4%ZsO=!!!NREf^AS7df0:Mr;Zt/NPFcWn,EFfa7B96'9U/sr9sXc./j2M")!1dg\:.9
+!.shC"B:c4o)@5?!$Ce4!\Go/f)Q$Y.ri5UmeZq<s*t~>
+g&D<Vr:K4%[t%?38d.qNg$\\8df0;@rCR3.NPFcWn,EFfealB9;3A`\r9sXcB)YC+95K0\g\:.9
+!2fB\"DX=Jo)@5?!+>Cjs&]7qf1H9@?&-/JmeZq<s*t~>
+g&D<Vr:K4%\<qm(J-CP'g@"e9df0<!rI>#lNPFcWn,EFfht)@$J!%V5r9sXcPl6+8Dh5"Ep[8%]
+_"<-[HC2qIrmq)LO7Rl'GBn\hJ-LRk^=r#OrnRO(~>
+fDc*Tqt&mqZ=k!/!!FdZk4SZ%rrCgO!!I,#`9mQlrrN!Vo)Jl'Xk`^@rrBD(!!OopP/6G]mf*9h
+oDf"ZOi6Ydf)G^lo)Jt_FFe0r+9^j-":,u"5ofV!"W2O:o(i7?s*t~>
+fDc*Tqt&mq[=hQ98d&\=k4SZ%rrD3Z8d'*q`9mQlrrN"9o1B+.Xk`^@rrC1>8d/=<P/6G]mf*:*
+oL]6qOi6Ydf)G_Xo1B3pFFnpW=A7mM"AMfu@TE.p"^.;Lo(i7?s*t~>
+fDc*Tqt&mq[[;^'J-:nOk4SZ%rrDHaJ-9qU`9mQlrrN"co7-prXk`^@rrCaNJ-C1=P/6G]mf*:;
+oRI'jOi6Ydf)G`2o76j_"+uJeK'%RdIXHHeIeS?rLp>k.q>K.LJ,~>
+ec,mRqXNUl\8s"R!!E[eh!k3krrB\0!!NOIQ-/Uqmf*=eV"4Qh.@JBJrpg!g7/[)h>(*3sp&=CZ
+!7g]A"=oAAkl'*4!$Ce4%7Pf?[^N-%G$@?g+VbIZ!"98O,rS>#EdiXsO-3'-!!NdIf^S_8huA3~>
+ec,mRqXNUl\;FVL8d%t`h!k3krrC@C8d.n0Q-/Uqmf*=e]^n_u>+*S&rpg!gHMpG>B76T+p&=CZ
+!9*QB"BgVokl'*4!+>Cj%:Od[[^N-'KQV!8=&Mie8dnHm='fHTGCG1#O-=PV8d/+Tg[P%;huA3~>
+ec,mRqXNUl\=860J-:M/h!k3krrCmRJ-CFDQ-/Uqmf*=ecLZPhJ!nLKrpg!gUA]TGEIFY5p&=CZ
+!9s-+"FH$<kl'*4!0?`%$?grm[^N-'Nei@=rdXTk%"<VPH[0m_IY3H;P`>Be"bj&7nG3%?s*t~>
+e,K^QqXNXp]SSiUhZ*dcdd-`.fDbi;r;Zs2G+-bKm/I+Z)Y="4!dqH:qXXXdci!hI)0(SGjnnHF
+!WEAt!!F'jZJtc4rr=/4!"qbW[+OEmcGI#jU7.@/N.uLtF8U%iGCbC#LlIRcTW#**_T9cO#ke6%
+'7o05qYoIRJ,~>
+e,K^QqXNXp]U*D-hb"$(dd-`.fDbiYrCR2fG+-bKm/I+[>P(Mj98'b6qXXXdh>KqL;K7W+jnnHF
+!WGmf8d&%FZJtc4rr?Hu8ePTh[+OEmcGI#jU7.@/N/2t4I/J:%I=[$)LlIRcTW#**_T9ce:A.9`
+<hA=@qYoIRJ,~>
+e,K[PqXNXp]V18?J-;IllhUP3rrC7@J-::DRa:TlrrMkQo7-q"[c@5TrrD6\J-C:>Mn8$ImJd4d
+K_9iuI>"ocqptcIO7Rl7G)3NXj4_eq[]?-kQ&pr\L4k3WK)^B3K8#,@P*quAYdqWla/agcJ-C_7
+iplmEiW"E~>
+dJjLOqXWe!^nP'OhuEmGa6*0rf`(qrr;Zs=Gb<LYm/I+bJb&jE7&&-%rq$-i>l=X+8U6lPo)A%V
+!WF_E!!EISWS@4!rr=/4!"qbY]'&n`o'>Amf$DIU^:LbYYPPC4Z*h0Y`m*#fiTBLrmc()Uo`,+G
+ZKCiXir=N~>
+dJjLOqXWe!^nuHZi(=,kaQE9sf`(rDrCR2jGb<LYm/I+bV"71]B;3iHrq$-iMu?6O@<nEho)A%V
+!WHj,8d%h:WS@4!rr?Hu8ePTj]'&n`o'>Amf$DIU^:LbYYPPC4Z*h0Y`m*#fiTBLrmc(QPoh#?u
+^?5+dir=N~>
+dJjLOqXWe!^oEQMi.(roal`Btf`(rarI>#tGb<LYm/I+b^%-[UU=/]5oD\fnrI>&mH(E7OrpB^d
+rg*5-"Fkm"g\BA"!0?`%&pB/DkP=lClf?mQccO)=]!eoJqQ:@6[CX/nc.(M,k3VU*ikC0?J-:tR
+k4SZ3s*t~>
+ci4=Nqt97.aKp@Q"QBCa3PjeMrn7;O;uH\!-@DWApZqh[j9P;W":pO.l2:2R!TO=^!!NdJL9fb5
+li-rkoDeu,T[`Ycrr=/4!"qbY]BK4nrr2ikp@Ie?lK@9hi;;C=i8Wh\lL+69q"jpfrWDu]ZQAc>
+"U8r"meZqDs*t~>
+ci4=Nqt97.aKpt>9]AYIC;T'*rn7;OL&FUH<d^^qpZqh[l;.%E"Ak/pl2:2R!UEJZ8d.t-L9fb5
+li-sDoL]4,T[`Ycrr?Hu8ePTj]BK4nrr2ikp@Ie?lK@9hi;;C=i8Wh\lL+69q"jpfrWDu]^0L>'
+"\k-5meZqDs*t~>
+ci4:Mqt97.aKqCmiID&l_rUOjg&D&PrI>#rI&,Ehli."RKCjZsIuqJ1r:L!inUgaj"b(BEZJbQE
+rrB4oJ-11leFhDm!0?`%&pB/Ekl(P\rquTcoC2,3kN1a^qqhb=ioK:fmdg&GqY^?l"8V6&MY2K'
+JuIDkqYoRUJ,~>
+c2S+Lr:fX<d(PlG%c[Nl2nn;Frn@AP2#RCW0n-+Wq<S%]r*Jsp"'qt]p[nIcF8Z(B3Hg_/mJZAN
+!/gCK"B(W2nc%/?!$Ce4"@e9\kl(AXs8N&ss8;]h"oJ5rrVlflrr`/d_]SLN"?sffp\s:SJ,~>
+c2S+Lr:fX<d(Q/s;<(7OBu&a%rn@APDZ*01>(3I+q<S%]r/:/="*:Nsp[nIcSGc%`>]uFRmJZAN
+!3>`a"DO7Inc%/?!+>Cj"Cd8#kl(AXs8N&ss8;]h"oJ5rrVlflrr`/db$FX3"E;HFp\s:SJ,~>
+c2S+Lr:fX<d(Q<<K&_@aNPOQIrn@APRf.a>G^cXIq<S%]r2fL?",!Z.p[nIc\c%$^F`s(kmJZAN
+!6"M["F?HZnc%/?!0?`%"Eo[7kl(AXs8N&ss8;]h"oJ5rrVlflrr`/dc\qFG"I.*mp\s:SJ,~>
+b5VbGqXWk&`iNbjj8]<@^>ekcg]%6br;Zs]JZdr-li."b`:Es3-()dArV$6lmh#Hu"Tr7bX4m=5
+rrB=r!!GKI_sIBSrr=/4!!GcK]BK4Lrr`2h\eF]9"<t22o_mqPJ,~>
+b5VbGqXWk&`ianpj@TPh^Z+tdg]%7RrCR2uJZdr-li."bddp'6=d[:urV$6loMtl_"\WT\X4m=5
+rrC+38d&Ra_sIBSrr?Hu8d&U\]BK4Lrr`2h`E)V'"CA[uo_mqPJ,~>
+b5VbGqXWk&`itb^jF@Am^uG(eg]%80rI>#oJZdr-li."bhXc7#J!e=FrV$6lpPAcu"E/gkg@sn4
+!8$jn"F?0Im/GW:!0?`%"Eo[7kl'?;"8q]7L\-*"MSJ-BrT=-1~>
+aSuPFr:]L7c+%g=jT#EP_;tCjh>[K@qu?jgKXBh<lMgn^2"UbN!d_65qY'phO8T%^-?>3`l29iH
+!8d>J"=8o9kPa$4!$Ce4"@e9\kl'<:"8q_s$1n3#'qsFRr9+*1~>
+aSuPFr:]L7c+&X9j[oYp_;tCjh>[KFr(7*#KXBh<lMgn^DY$I&K!aP6pAY,srCR5oEfe*$r9F:^
+kO_@L=,FNOrR_&L@.Qtn@Z%e]rS7DTr:7^$oL]6eXk`LFkPp&~>
+aSuPFr:]L7c+'6tja[Jq_;tCjh>[KJr."omKXBh<lMgn^R.Gh1LpZ1<pAY-5rI>&rEfe*$r9F:^
+mdu#4I#5GtrR_&LO7Rl)G)EoqrS7DTr:8'aoRI'u[G:?NkPp&~>
+`W$2Aq!d=l]RM<k!!?`Lk5!j5!6b9?"B1,ekPXWF!WJY]!!GEWdI[A4rrN!6r;["$I&#3`rp'La
+rX8B!";?BkiVM1+!$Ce4"@e9\kl'99"8q_Z"7uQr&#@nLr9402~>
+`W$2Aq!d=l]TQXa8csU^k5!j5!8@?C"D3J#kPXWF!WKS"8d&[tdI[A4rrN%%rCR6)I&#3`rp'La
+r_iD]"Aj]SiVM1+!+>Cj"Cd8#kl'99"8q_p9_:p[;QSRBr9402~>
+`W$2Aq!d=l]V(&BJ-2(Tk5!j5!9O-/"E]I1kPXWF!WL:5J-2IloD\Ob!W@uUJ-Bq?UX\r8lMgna
+L@p'"I=e]^qUb`IO7Rl)G)EoqrS.>Sr:7[ToRI'sZJ"gHkl6/~>
+_uBu@qXWe!^OdTl!!E@Ub3Sr]rrAtp!!HSd^?Y[]rrMX&oDf"%N4nHQq#:>dr;[!:E/M0dqs"+]
+r\jEL"9NkHgA';"!$Ce4"@e9\kl'68!rVP*o)Jn2WnHtAl2Q8~>
+_uBu@qXWe!^Q_sd8d%eMb3Sr]rrBk48d&mf^?Y[]rrM^loL]6]NkOZSq#:?+rCR5jE/M0dqs"+]
+rc%L%"+7$#pt,NG@.Qtn@Z%e]rS%8Qr:#pA8d&8!g%,++s*t~>
+_uBu@qXWe!^S6JGJ-2@blhfQ=!7Ujr"ETO9lM]uI!VM9@J-:@^^$,ChrrCCDJ-C=>MR_aEl2Le`
+Re2+4I](opfDbi3o7-seMS&*NgA_6Pn?2A5"GO/7o)7hQJ,~>
+_>ac>qt0+(^ip[\!!Eq.dd[4mrr@iP!!Hnq_sIBerrN(=o)JkpWS."?rr=bO!!P]6S':C$kl1Wp
+oDeu&T$m8_rr=/4!!GcK]BK4HrrW)b4nAXV.^\"(rp'N6~>
+_>ac>qt0+(^lDL\8d&(gdd[4mrrB(s8d'$n_sIBerrN(do1B+(WS."?rr?m68d/OGS':C$kl1XG
+oL]4)T$m8_rr?Hu8d&U\]BK4HrrW)bF7W!,@("e_rp'N6~>
+_>ac>qt0+(^n?DGJ-:J%dd[4mrrBt7J-9tU_sIBerrN),o7-ppWS."?rrAGbJ-C%>S':C$kl1Xg
+oRI$jT$m8_rrA,OJ-:%Q]BK4HrrW)bRe)%4Lpl+3rp'N6~>
+^]+Q<r:T:)]OqT:!!GKkh"La*rr?U-!!IA-aRB,lrrC^C!!FI2a6ij%rrBD(!!NRBKWs>.kPkOB
+oDf"fQHAXqf`(pno)Jn_MS&*Nf`)$LcjfRH"Albjq#9UZJ,~>
+^]+Q<r:T:)]nK8I8d&k6h"La*rrA2Z8d'4"aRB,lrrD$L8d&4]a6ij%rrC1>8d.n*KWs>.kPkOb
+oL]7!QHAXqf`(qZo1B-pMS&*Nf`)$LfMhB6"E_<9q#9UZJ,~>
+^]+Q<r:T:)^70`>J-:\6h"La*rrBA&J-9qXaRB,lrrD9SJ-:@fa6ij%rrCaNJ-CF@KWs>.kPkP%
+oRI'jQHAXqf`(r4o7-seMS&*Nf`)$LhM(QO"HL.Sq#9UZJ,~>
+^&J<9r:K4&Y!D:Q"9O%gkka6;!'pJ_":B7<bjsrs!W5=V!!@;Ji;*6L!'pJ_"Yb%_`U*QdrrBJ!
+!!G0>_!D!Prr=/4!!GcK]BK4GrrW2pN:R#P!e\MXqs494~>
+^&J<9r:K4&Zu>8&"A=Wgkka6;!-eB6"AO!*bjsrs!W7678csOJi;*6L!-eB6"^,r3`U*QdrrC46
+8d&I\_!D!Prr?Hu8d&U\]BK4GrrW2pWq/gc99@0Yqs494~>
+^&J<9r:K4&\<6',"-gXcqV_ART`'BDIWUt$o&p#Rr1NY3",F2?q>1*kT`'BEG'&tfm/?,I!87!p
+"FH0Eli,Q:!0?`%"Eo[7kl'06!rhu0npgh1`p3Hes*t~>
+]Di*7qt&moL_B%S"=g4qo)@VJ!$(q;";#dIdIcW%!WK1l!!G?Sd.726rrC+;!!QVVVqC_BkPkPH
+oDf"<LUQ=Bf`(pno)Jn_MS&*NfDbpOn1+#0"<aVko)7qTJ,~>
+]Di*7qt&moS5eiI"C7hOo)@VJ!+#Oq"Aa63dIcW%!WKt-8d&Upd.726rrC[K8d/jVVqC_BkPkPN
+oL]6eLUQ=Bf`(qZo1B-pMS&*NfDbpOnRqGc"BhYOo)7qTJ,~>
+]Di*7qt&moWeB_h"G3Gto)@VJ!07#."FYKadIcW%!WLO<J-2Cio)ARe!9=!-"`Spgf_5=-rrDZ_
+J-:7T[cRG>rrA,OJ-:%Q]BK4FrrW2jPOj;-Ju@)grTsQ7~>
+\c2j4qXE@Q46uqLHF`,5ir9#Uqu?j<H(`[\k5PJU)Y="4$&H7Wqu$Ho;#L@t*c[.OkPOEA!WEc*
+!!EXZXl'!-rr=/4!!GcK]BK4ErrN%nnc/c%\)R5Ms*t~>
+\c2j4qXE@UD<sjsKXp1?ir9#Vr(7)iH(`[\k5PJV>kCVk:5cdJqu$HoK)J:F;fRc/kPOEA!WH0n
+8d%k=Xl'!-rr?Hu8d&U\]BK4ErrN&0nk'"1\)R5Ms*t~>
+\c2j4qXE@YOmIT#N4J$Gir9#Wr."osH(`[\k5PJWN:_W'IuM&'qu$HoW;V5MH?"nVkPOEA!WIrK
+J-:=OXl'!-rrA,OJ-:%Q]BK4ErrN&Anpgh$\)R5Ms*t~>
+\,QX1pZg7G!q$$k3hb!mro="YfDGUO-%)N@pZDJVrHe&8"&c)MpAP!kg\_$T89pfRo)@eO!WG:T
+!!@8;fCmks!$Ce4"@e9\kl''3!V@E(!!F./bO5>rs*t~>
+\,QX1pZg7g9^YLUA"h?Aro="Yj8;LP<d^^qpZDJVrL`[R")b'ipAP!kk57gT@!S?jo)@eO!WI66
+8cs=6fCmks!+>Cj"Cd8#kl''3!VKdj8d&+`bO5>rs*t~>
+\,QU0pZg8(m=5=jU!iN2j8T,Fr."oqI&,Ehk5PJ\](:FSJuI>qrVllbr."rkH(NCRroX4]rgrb4
+"+6orp=TBFO7Rl)G)EoqrRLoKp5SWn".[R&rU'W8~>
+mJd4QqYpK?rrrE!o&#]Bmf3J"NkOZSj8T+gqu?jNI];)tjo5A:"S;Zs)O/5-rVlfs?i9s.$>bI'
+iVDR7!,D-+"BLu:o)@>B!$Ce4"@e9\kl''3!W@<7!!@#BhtZU=J,~>
+mJd4Wr;Q]ArrrE!o&$BDmn*^YNkOZSj8T,'r(7)oI];)tjo5AB9_:p[<0YAgrVlfsNr;QR9l>]l
+iVDR7!0m+J"DjOPo)@>B!+>Cj"Cd8#kl''3!WAV\8csIHhtZU=J,~>
+mJd4[r;Q]ArrrE!o&$m/mskOjNkOZSj8T,6r."opI];)tjo5AHK(OQrJ!@q=rVlfsYPitTIVsnH
+iVDR7!4;BK"FHT_o)@>B!0?`%"Eo[7kl''3!WBV#J-1V5htZU=J,~>
+n,EUdIh7t8oD6`3"TA)XY8cp1"(nRepZ)8RQi$gd2h8'gqW7_Xr'^,V#B6p)q#CBW"T8<(20G5*
+mJZ,G!0QmR"@/-hmf(o>!$Ce4"@e9\kl'$2!6t'7">H@jnG_kUJ,~>
+n,EUfUfFbioD6`3"TA)X\m"Pp"*U]upZ)8R[JWW">_'!7qW7_Xr-@m+#CNc5q#CB^:&RZf>'6.O
+mJZ,G!3l)f"CdP5mf(o>!+>Cj"Cd8#kl'$2!8@!9"C@VCnG_kUJ,~>
+n,EUh^PKr!oD6`3"TA)X_hmi4"+mQ,pZ)8RbPZknGCZjRqW7_Xr1NY3#DTJ?q#CBcK)L6"FT[rM
+mJZ,G!6Fe_"FH<Nmf(o>!0?`%"Eo[7kl'$2!9<U"".[X*rpKf:~>
+n,EX9!!!tXg$nparri>tm(a\3!!GTUbjk\nrr@0=!!GQ>ZJtcCrrN+qo)JtOSBg[(s)7i9"Ti+_
+WnR1,rrC%1!!F^-]]f=Irr=/4!!GcK]BK4CrrN$5o)JmtL:QFCmf.e~>
+n,EXH8kN@1g$nparri>tm)WK%8d&[mbjk\nrrASe8d&LRZJtcCrrN,4o1B3oSBg[(s-`dW"DNCd
+g@jS,!7g^6"B^Pokl'37!+>Cj"Cd8#kl'$2!W6-m8d%hD\`N_Vs*t~>
+n,EXSJ:NR#g$nparri>tm*1FWJ-::gbjk\nrrBY.J-:%JZJtcCrrN,Fnpgn6cLLo6\,:aZDh+kA
+p>c/QiUhX'I#>T#rRq2NO7Rl)G)EoqrRCiJr/1&q",aYNqsOK7~>
+n,E[i#QOj,[bUTUbl7eBnAQL>!!FL)^?GLUrr?!q!!G`F[cRGJrrMg/oDf("Kt?FDmg/jl"WqcF
+^?GLTrrDKZ!!EsfZJkZ5rr=/4!!GcK]BK4CrrN*rnc/buVUtP0s*t~>
+n,E[k:J+6*[bUTUbl7eBnB>5/8d&1R^?GLUrr@cN8d&RW[cRGJrrMjsoL]<]Lq;aGoMGKY"]TN&
+^?GLTrrDW^8d%tCZJkZ5rr?Hu8d&U\]BK4CrrN+Nnk'")VUtP0s*t~>
+n,E[kKReT;[bUTUbl7eBnBm3bJ-:7Y^?GLUrrB(sJ-:%M[cRGJrrMnPo7."&]&rnaK`-E)H?,%[
+kksK@!;?&8"FYp.iVM7-!0?`%"Eo[7kl'$2!WK"eJ-)V"p?qs2~>
+n,E[m4obQgMSn]VbPq\Bo#)44!!ERZYi,B=rr=kQ!!H5W]'0+RrrN(9o)JnfVUkEiqu?moHD&^X
+ro="ZrYP2,"*g`tpt>ZI+7fI87Z+hArR:cHII[@@3L7bTrpTl;~>
+n,E[mG"PA%Oi-G]bPq\Bo#t/*8d%k?Yi,B=rr?s78d&a_]'0+RrrN(ao1B.$VUkF9r(7-%HD&^X
+ro="Zr`\qd"+-s"pt>ZI@.Qtn@Z%e]rR:cHU@LnZ@$\n&rpTl;~>
+n,EFfT)O6BQG_tbbPq\Bo$W<aJ-:@RYi,B=rrAMcJ-9tN]'0+RrrN)*o7-spVUkFTr."rkHD&^X
+ro="ZrepE!"+I0%pt>ZIO7Rl)G)EoqrR:cH^%-[VI?qtCrpTl;~>
+mf*90rW!'WW7LV?bPq\Bo;Vo`!!@>=f_=J,!"f&."B^VslM]cC!7CB<";d9>i"5he"Uf1&[,Ur@
+rr>O\!!?MtdIc,l!$Ce4"@e9\kl'!1!1iZ\"<!*.kPXfKJ,~>
+mf*9Wr^m<&W7LV?bPq\Bo=Rcf8cs@7f_=J,!*/qh"DEb.lM]cC!8R0<"B1N%j&Q%M"\rrj[,Ur@
+rr@E<8crt%dIc,l!+>Cj"Cd8#kl'!1!4hYm"B12hkPXfKJ,~>
+mf*9trdY-(W7LV?bPq\Bo>lLRJ-11pf_=J,!/UQ'"E]U:lM]cC!9Ng&"FlWQk(rtd"b(BF[,Ur@
+rrAecJ-1.hdIc,l!0?`%"Eo[7kl'!1!6t(b"FZ0=kPXfKJ,~>
+mf*9kr;Zq@]]K"4rrW,hB(>p(@%5O8jo5>LqZ$b0O2C8_j8T/X2"L\KBWl^Z!!P6'QcSUniVrmu
+oDf"]PfW=mgA_-po)Jn_MS&*Ne,KEZnc/dpJ?@](n,In~>
+mf*:,rCR0E]]K"4rrW,hNq,dEDk#,Gjo5>Qqaq!-O2C8_j8T/XDY$I%H*<\78d/CAQcSUniVrnH
+oL]6rPfW=mgA_.\o1B-pMS&*Ne,KEmnk'$XJ?@](n,In~>
+mf*:<rI>!2]]K"4rrW,hXR^lDHCN:Rjo5>Tqg\fkO2C8_j8T/XR.Gh0Ks.cZJ-C(=QcSUniVrnf
+oRI'kPfW=mgA_/6o7-seMS&*Ne,KF'n:1SBhYHX?J,~>
+mf*:Rr;Zs>T$Qp)b5VP@j;%7d"B(K*nG_SM!6b6>"DEt<mf)8H!WJDV!!4j?')_e6!b$VZg@sP*
+!1i`^"=f>Cl2B?9!$Ce4"@e9\kl'!1!5@t'")+CYp$_p2~>
+mf*:WrCR2nT[3-+b5VP@k?.=J"DF%@nG_SM!8@<B"E0ICmf)8H!WKCr8ci=d<r>PmBn35;pYc&O
+\b&Js=c9uXrS%8O@.Qtn@Z%e]rR:cHd.'^1F.q.Wn,In~>
+mf*:ZrI>$%T[3-+b5VP@lA>+_"F-0PnG_SM!9O*."E]gHmf)8H!WL12J,u*nr."ogJ?%>ti;Wf&
+oRI'lMnSBRgA_/6o7-seMS&*Ne,KF)nUL^hU"/i)s*t~>
+mf*=e-N*oI:p]$RrlY6AqM"M@"A"Tjm/H/I!3>ts"ETjNnG_GI!UU-a!!*3jqu?mBEfRp!r8@ST
+an,Q9'83[NqqD&M+7fI87Z+hArR:cH^@;1+<1(o"rp]r<~>
+mf*=eAGo+'EO4NsrlY6AqPNjV"D!S1m/H/I!5n\+"ETjNnG_GI!UrnW8c_Rur(7,lEfRp!r8@ST
+f^qc=:kZ.6qqD&M@.Qtn@Z%e]rR:cHdIBg3C7*68rp]r<~>
+mf*=eP5Tn6LpPt5rlY6AqRuKN"F-!Em/H/I!7gss"ETjNnG_GI!V:s8J,k3!J-C7>NkaiVi;Wf;
+oRI'mKX0V7gA_/6o7-seMS&*Ne,KF)nULagR*>+"nGe"~>
+mJd/pr;Zs)M8niYb5VPBjp1MY"@nEblM]lF!/paT"9N\3bjs`m!W?*k!!!)u!!Q&BT[NH2i;WfJ
+o)Jl;W7q%#rr=/4!!GcK]BK4BrrBe'!!G`P`9mQns*t~>
+mJd0HrCR2dP/cebb5VPBlVI.F"CmD)lM]lF!3Q,j"*BmRo&9TLrJ0u:!)*5^"_)eNde!IrrrD``
+8csI>gA'D%!+>Cj"Cd8#kl'!1!7C=/"CmP3mJcVTJ,~>
+mJd0ir."m9`p3KErrW2fKCjZsGDs9$rT=+[`VY/fFI15BiVrrWWU53>EdFD,oD[\J!;Q/9"+I3&
+ptG`JO7Rl)G)EoqrR:cHhXQ+!H'#u3rp]r<~>
+mJd0Rqu?jKW7CM=b5VM?:\4Vi6]/P?rT=+[B`%i5%<e2eo\ofNrjD.o"Uf1&[,Ur>rrN*CoDeu!
+T$d2arr=/4!!GcK]BK4BrrB(h!!G?@]]oCas*t~>
+mJd0or(7)tW7CM=b5VM?Jb2P;@>__]rT=+[Pl+,V:3N)Qo\ofNrlOS#"\rrj[,Ur>rrN+.oL]4'
+T$d2arr?Hu8d&U\]BK4BrrBt,8d&IY]]oCas*t~>
+mJd1/r."p'W7CM=b5VM?V=]9@GDa&srT=+[[/>FWIWh1,o\ofNrn$Rg"b(BF[,Ur>rrN+\oRI$j
+T$d2arrA,OJ-:%Q]BK4BrrCU>J-:1V]]oCas*t~>
+mJd19qZ$_.]&NP.rrN+foDf"[M7VpLk5PEOqu?j/GFd1Si;WiS)XdY020P>-meu#B!)E.d"@89m
+mf(u@!$Ce4"@e9\kl'!1!1r]\">GS>k5=`KJ,~>
+mJd1Eqaps<]&NP.rrN,-oL]6oM7VpLk5PF/r(7)eGFd1Si;WiS>jk8g>'?7Rmeu#B!.jc7"Cm\:
+mf(u@!+>Cj"Cd8#kl'!1!4q\m"BpPhk5=`KJ,~>
+mJd1Mqg\d.]&NP.rrN,AoRI'hM7VpLk5PFWr."p!GFd1Si;WiSN:29#F`s+mmeu#B!2fC="FHBR
+mf(u@!0?`%"Eo[7kl'!1!711c"F>g3k5=`KJ,~>
+mJd4c&,ZD1$BiR!r6#$>f^o.H7YnY>r9""Z./X&J&p^,!p#,iNrc@N."CH\Zg@sG'!.+8;"=B&>
+kl'99!$Ce4"@e9\kl'!1!.aS>"=f)2j8AEHJ,~>
+mJd4c<;]>k:702kr6#$>iq,hG@YhVZr9""ZB)G7(:jJ\_p#,iNrgN:J"DE=cg@sG'!2/sV"BUMo
+kl'99!+>Cj"Cd8#kl'!1!2T-W"B^>`j8AEHJ,~>
+mJd4cL\lT(SBC6sb5VJ,oRI'fLq;gJk5PFGr."otH(WUZi;WiW\*nhMDh+kApYGiL]_$^WI#GZ$
+rS.>PO7Rl)G)EoqrR:cH_!upXHA&Wbr:'`:~>
+mJd4d9)ASk0<Egurlb<Br<r8u"@e6Zkl'ZD!!N3""<)T\f(S#$!6t!5"Wh]E^?GLNrrAbb!!Ejc
+Z/PQ6rr=/4!!GcK]BK4Brr?U"!!Fa&YMf9Hs*t~>
+mJd4dIeu_?@'&#Qrlb<BrDN;\"Cd5!kl'ZD!)3;_"B'Q?f(S#$!8?p7"]KH%^?GLNrrB_(8d%qB
+Z/PQ6rr?Hu8d&U\]BK4BrrA2O8d&7JYMf9Hs*t~>
+mJd4dV#,ZFKrir!rlb<BrIsop"EoX5kl'ZD!.t-!"FGHhf(S#$!9<R!"aY3L^?GLNrrCC;J-:=R
+Z/PQ6rrA,OJ-:%Q]BK4BrrB@pJ-:1MYMf9Hs*t~>
+m/I':q>^V,]]An3rrN*Ko`,+kMS/0OkPkPBqZ$a<H_f<ghu<`T/b&fE8:$oUoD[SG!5\7,"*CEn
+pY5]J+7fI87Z+hArR:cH3:QtO.=eSYqXFN8~>
+m/I'^qFUj;]]An3rrN+4oh#?uMS/0OkPkPJqapuhH_f<ghu<`TC%4e!@!\HmoD[SG!7UO3"*pcs
+pY5]J@.Qtn@Z%e]rR:cHEUcX(=FdR3qXFN8~>
+m/I(#qLA[.]]An3rrN+`omd0fMS/0OkPkPPqge]n!i4KChu<`TQ19A.EdFA*oD[SG!8mBu"+I-#
+pY5]JO7Rl)G)EoqrR:cHSFM+4H@W0UqXFN8~>
+m/I'qq>^X(N6:MbbPqQ+o`,,"N5"TUkPkOoqZ$a<I&>Tlhu<`VMXg`N#]#1$iVM@0!8d;I"BM&>
+oD[PF!$Ce4"@e9\kl'!1!"AAt"=\l(htljBJ,~>
+m/I(0qFUlcQ-/IkbPqQcoh#@$N5"TUkPkP-qapuhI&>Tlhu<`VX7Ajd9PoNjiVM@0!9`rG"DjUT
+oD[PF!+>Cj"Cd8#kl'!1!)i>Z"B^2WhtljBJ,~>
+m/I(>q1&R;b3]&LrrAY`J-9tQ^?Y[[rrCmPJ-:4HVV1b%rrN,9npgmmDhbUWqV;)Nmdkr3I%8RT
+rnRMRO7Rl)G)EoqrR:cHL@KcsH@W0UqXFN8~>
+m/I(Uq#COAW7LS>bl7Z0o`,,0OMgGakPkOKqZ$a<I&>WmhZ!W5"S2Ts/p*AumJYi?!<2Qi"?DXa
+mf)#A!$Ce4"@e9\kl'$2!71-7">k\4i;2sCJ,~>
+m/I(Xq+:cnWn-e@bl7Zgoh#@*OMgGakPkOiqapuhI&>WmhZ!W=9_1j[=EKhJmJYi?!<2R^"CRD3
+mf)#A!+>Cj"Cd8#kl'$2!8[-:"C$G[i;2sCJ,~>
+m/I([q1&U$Wn-e@bl7[:omd0cOMgGakPkP*qge]o!iF]HhZ!WCK(FKrGBB+imJYi?!<2S?"FQBO
+mf)#A!0?`%"Eo[7kl'$2!9`j%"F,L#i;2sCJ,~>
+m/I+c0)5JM7(D1LrltHC6hUK`$?VQTnG_VN!-%f8"<2`cgA'P)!W>:T!!HDQVqC^trrN*)oDf":
+M7VjIh#@?no)Jn_MS&*NeGfN0n,NSRK!=83nGe"~>
+m/I+cCACI)Cq/EtrltHCH1ji69luZBnG_VN!1E^V"B'WEgA'P)!W@358d&aTVqC^trrN*poL]6e
+M7VjIh#@@[o1B-pMS&*NeGfNQn4EgiK!=83nGe"~>
+m/I+cQMH%6MR_U=rltHCU%X!?IWUjsnG_VN!4_oVs*OmFgA'P)!WAV]J-9h?VqC^trrN+PoRI'l
+M7VjIh#@A6o7-seMS&*NeGfNhn:1XbK!=83nGe"~>
+li-rrp](D-_WL^>rr>:W!!FEgSC$ojrr>ai!!F-dVV:h%rrN+foDf%/E/V?jqqD&M+7oO9#D0,9
+qV;,A!!GcK]BK4Crr>IV!!GoJ[H.8Ts*t~>
+li-sIpdtX=_WL^>rr@698d&+;SC$ojrr@TH8d&%>VV:h%rrN,-oL]9`E/V?jqqD&M@.[%o9S0G)
+qV;,A8d&U\]BK4Crr@B78d&UW[H.8Ts*t~>
+li-sipj`I1_WL^>rrA\bJ-:1BSC$ojrrAqnJH'uuVV:h%rrN,AoRI*mE/V?jqqD&MO7[r*ItFi\
+qV;,AJ-:%Q]BK4CrrAe_J-9tJ[H.8Ts*t~>
+li-sQp](F$KZi`ZcMml#p&G4TI&,Ehk5PE,qZ$a/I&5Kih>[ND#PA'#4F!@?nc%8B!$Ce4")"C[
+p>#]=!!GcK]BK4DrrMEgn,NSrMS&*NnGe"~>
+li-snpdtZ`PKW=icMml^p.>HmI&,Ehk5PEkqapudI&5Kih>[NH:\@<`?$Mj`nc%8B!+>Cj"*:6g
+p>#]=8d&U\]BK4DrrMXan4EgtMS&*NnGe"~>
+li-t.pOE@;bO#,OrrAJ\J-:%CUtGG(rrA5ZJ-:=KV:bOurrMbEomd3fGaltJrn@APO7Rl(IA>Be
+h#Hqq"Eo[7kl''3!VM'6J-9nM]BK4_s*t~>
+li-t3pAb=+RFC['ci3t]p&G4qK!=20kPkPVq>^X*HD9!ah>[NS9_JGi!bHtdh>#\'!%7@<"A,!(
+nc%AEnc/e^MS&*Nec,W-n,NUqEKA$(rp]r<~>
+li-t@pIYQcU!rN/ci3uKp.>I"K!=20kPkPXqFUlbHD9!ah>[NSJ+ZD:C4`VEpt>ZIAb/LsAsgd3
+rn[VF8d&U\]BK4DrrB1j8d.n.O2L>`nGe"~>
+li-tIpOEBuVpk/5ci4!(p4*9cK!=20kPkPZqLA]tHD9!ah>[NSV"K6@Dh>.Jpt>ZIPOj;-I$i+I
+rn[VFJ-:%Q]BK4DrrC%-J-CFBO2L>`nGe"~>
+li."a&,-&,(oGsVrR(WFn+H_b#]Pa9kksWD!71H@"*gHfp"fWKrhfAh"WqcH_<V!Prr>7S!!Fp7
+_!CsUrrCsI!!GcK]BK4ErrN!Bn,NV6FdUDCrp]r<~>
+li."a<;/uf<iamDrR(WFo_(l\9Q5s(kksWD!8[HC"*gHfp"fWKrkA(u"]TN(_<V!Prr@668d&@Y
+_!CsUrrD9R8d&U\]BK4ErrN%-n4Ej`FdUDCrp]r<~>
+li."aL\H<%KW`turR(WFp\'+@IW17ZkksWD!9a0."*gHfp"fWKrm:@h"aY3N_<V!PrrAY^J-:7[
+_!CsUrrDNYJ-:%Q]BK4ErrN(]n:1[gFdUDCrp]r<~>
+li."b6M:B^,d,qprmLfH\+Te*/p<W*nG_VN!2oVm")==Po\BHIo*b9m"\*g3de*Olrr>:T!!Emf
+[,_&?rrCdD!!GcK]BK4ErrA\[!!GT8Ut>>/s*t~>
+li."bGkO`4?Er;XrmLfHbk=X4=E^(TnG_VN!5SD&"*0mXo\BHIohtNV"^lYMde*Olrr@668d%tE
+[,_&?rrD0O8d&U\]BK4ErrB\"8d&IJUt>>/s*t~>
+li."bT_<m=LU>k/rmLfHg\-.$GBT@snG_VN!7Uao"*g<^o\BHIpP&?l"`ep_de*OlrrA\_J-:=T
+[,_&?rrDEVJ-:%Q]BK4ErrCC6J-9tAUt>>/s*t~>
+lMgj0o`,+AZJP9Re,KDhp&G5!J#M)pk5PF+q#CP&Qd#"!h>[NS=SMk""`&k!iVM4,!'g#S")k*k
+pYPoM^[_@-7Z+hArR_&MpE8r*"TrCkZJt`Ls*t~>
+lMgjVoh#?n[bg]Ve,KE<p.>I"J#M)pk5PFRq+:d+Qd#"!h>[NSL\OIF9PoNjiVM4,!-[p*"*g`t
+pYPoMddg!5@Z%e]rR_&Mq-`\a"\WZcZJt`Ls*t~>
+lMgjromd1$\DHoXe,KEYp4*9bJ#M)pk5PFoq1&TmQd#"!h>[NSWq_)JIrC(JiVM4,!2&h4"+R6&
+pYPoMhsu:#G)EoqrR_&MqiL;t"b1HEZJt`Ls*t~>
+lMgjcoDf"@[,:QUeGfLgpAb@8EK%Qmr9""Z8GN5g8Wq*]rnRMRWqZPt.WgopmJY];!&*mC"A,*.
+o)@PH!3>Yj"@e9\kl'-5!-@T/"Y"PW`9dHks*t~>
+lMgk&oL]6n\)6lXeGfMTpIYTeEK%Qmr9""ZI/-A;AWk($rnRMR_>$V+=*0\HmJY];!,M-t"D=4L
+o)@PH!5nA""Cd8#kl'-5!1`LM"]of0`9dHks*t~>
+lMgk7oRI(#]&32[eGfN/pOEEoEK%Qmr9""ZV"oNDH'628rnRMRdeJ=rG]]1imJY];!138,"FZcb
+o)@PH!7gXj"Eo[7kl'-5!4hQK"aG-Q`9dHks*t~>
+lMgkCo)Jn?[,:QUf)G`Rp&G7mH(N@Qroa:^o*G-l">c"NlM]N<!V6]p!!H)GV:P@lrr<l+!!FI+
+_!:mUrr@uJ!!GcK]BK4GrrL"?n,NXo?%/X$p&=F[J,~>
+lMgkKo1B-m\)6lXf)G`ip.>KuH(N@Qroa:^p/(QW"C-o"lM]N<!VK@d8d&XPV:P@lrr?6n8d&1U
+_!:mUrrB1l8d&U\]BK4GrrLVDmn*asI\kWgrpTl;~>
+lMgkQo7-t"]&32[f)Ga%p4*<dH(N@Qroa:^q1SQo"FH*AlM]N<!V_<DJ-9k?V:P@lrrA#KJ-::]
+_!:mUrrC%/J-:%Q]BK4GrrM)1mskR[I\kWgrpTl;~>
+lMgna'Cu2,,cokprR_&L0_YPN+E3.FiVDX9!1W``";Za"jS[g5!WH3t!!N^ILpuIBf`(sCnGi[p
+I^.i-hu<[enc/e^MS&*Ng&D*9)".G.13/Dfk54THJ,~>
+lMgna=7]#e?F&G[rR_&LD"gO*<,dZ%iVDX9!4_er"B'u^jS[g5!WIlN8d.q-LpuIBf`(sFnO`pW
+J[+/0hu<\<nk'$oMS&*Ng&D*@>OP/f=`TP8k54THJ,~>
+lMgnaM=Z6#Lq)=6rR_&LR.l+7H>n\KiVDX9!6t:h"FZ$4jS[g5!WK+qJ-CC@LpuIBf`(sIn:1Uo
+Z/GK9rrB@qJ-:%Q]BK4HrrM_MmskRbEfRfpqsOK7~>
+lMgna9(Drb'qO.Nr7V)MS+cme"(-AGcLCeqrrMj>pAb;9Wn[='rrB(q!!OutQc\^qf`(rdn,NSg
+U"&`6i;Wd2nc/e^MS&*NgA_3:..7-?&o3#peFW\-s*t~>
+lMgnaIe$)6<iXsGr7V)M\G&T"95&XCcLCeqrrMq*pIYO6Wn[='rrBn38d/=>Qc\^qf`(s"n4Eh"
+U"&`6i;Wdnnk'$oMS&*NgA_3AB(&=r:i1`[eFW\-s*t~>
+lMgnaV"0$=KsTS*r7V)Mc1c_mIrBY)cLCeqrrN"[p4*4Eg\BP'!7L^o"a>*Uam]5]rrCsGJ-:@q
+eF`aurrAGWJ-:%Q]BK4IrrM_UmskUiDh+_7oD\1XJ,~>
+l2La,nGi^uJ_0AernRMSh[oM^"Zg^a]&WVKrr@E>!!G][cgq(jrrM^!qZ$atI]1omfDbhhn,NS8
+P/Q_ciVro@nGi\]MS&*Ng]%<;..7-?"^-)9_s%!bs*t~>
+l2LaSnO`s[R+Lg'rnRMSkZ.@L"^H,.]&WVKrrAee8d&arcgq(jrrMdjqaq!%I]1omfDbi=n4Egb
+P/Q_ciVroGnO`pnMS&*Ng]%<BB(&=r9P/O8_s%!bs*t~>
+l2LapnULdpWn6_9rnRMSmtg^g"a"gF]&WVKrrBb+J-:=kcgq(jrrMkJqg\fhI]1omfDbi[n:1Xj
+P/Q_ciVroLnULacMS&*Ng]%<GPja,,IrBRt_s%!bs*t~>
+l2La_mf3Jfc0G*'hZ!WJ0_YPO*cHY/eare'rrKG/p&G4'MSA<Ph#@ES=Sr.&$ZM!7k53g2!V[H"
+!!@,Di;)@3!0cpQ"@e6[kl'<:!RDnW!!`QtFH!Zbp\sR[J,~>
+l2Lb"mn*_0cKb3(hZ!WMD"gO+;f@8deare'rrL59p.>H_N5"NRh#@ESL\saJ:2l*%k53g2!Vosg
+8csIGi;)@3!4),e"Cd5"kl'<:!Sq/O8d8^GN4.U;rpB`9~>
+l2Lb4mskP/cg(<)hZ!WPR.l+8H>eD6eare'rrLf)p4*9qNkX`Th#@ESWr.ANIW11Uk53g2!W.iE
+J-1P2i;)@3!6Ob]"EoX6kl'<:!U#R4J-L%9N4.U;rpB`9~>
+l2Lb6mJmA6WoNaLi;WiL48/^Z%qL$Wa6WWcrrL"GoDf"aWS$qDh#@ASqu?mQG*pGArn.5NL[G-F
+*1G+@rSmhW/F`]C'md=Lqq_8QP76jZ#!?p\XOZn?m/MS~>
+l2LbAmRdUg[c@#Xi;WiOFSAB3:25-Ga6WWcrrLVIoL]7$WS$qDh#@Ajr(7,pG*pGArn.5NWpWI^
+<h.D'rSmhWC%4du;1c7;qq_8QZ;U*_#$c2'XOZn?m/MS~>
+l2LbJmXPFt^Z4tai;WiRSbIX=I;XD%a6WWcrrM)5oRI'sWS$qDh#@B&r."rpG*pGArn.5N_sMsV
+SBUL$ir9"EnULajLUQ:@h>[MtL@0QrFE3,;eai\*s*t~>
+l2Le`$gmuu"_lNTq>TFS!TQ$2!!`j8GE]]"q#9LW!P8d3!!EFP_<CdOrrM^!r;Zt!I]1upf`)!$%
+.+#t8@.1IroF(ZU[J0d%rThaqYoIR!Rj:$!!`QjEJ147mJQ;MJ,~>
+l2Le`;XR-\9oRZkq>TFS!UF[u8dA('GE]]"q#9LW!RF[88d%hE_<CdOrrMdjrCR3'I]1upf`)!1
+;XI'ZD6r*nroF(Z^@+Yt;2EZhqYoIR!T81h8d8UAKVm&^r9OB5~>
+l2Le`L$jHpJu.)eq>TFS!V)WQJ-UOAGE]]"q#9LW!SrM$J-1tNkkj08!V_<HJ-9k@W7q!urrMA=
+m=5=qZekHUjSo5-mskRmSC6m&ro*kXl(@?n#'=j<VU"T,li2J~>
+l2Le`1@+uE+IqNbr;PjY!NQq/!!`j8G)iuco`"(S!KRBR!!En#dI@(irrN*mrW!*0E/M6hr7V)N
+k:#Wr"BiV(q>TOV!TOm]!!XBfeFNG6roX4^dU*.F!!`^'EeUC6lMBfGJ,~>
+l2Le`D<sju?E`G^r;PjY!Q8+78dA('G)iuco`"(S!O,;g8d&%`dI@(irrN+Lr^m>hE/M6hr7V)N
+mUkcW"F@rIq>TOV!UEkT8d8Ifg%+t;roX4^hi1=t8dA%!EeUC6lMBfGJ,~>
+l2Le`R-]>,MnJ-Cr;PjY!S*)%J-UOAG)iuco`"(S!QTf^J-:FudI@(irrN+prdY0$E/M6hr7V)N
+o9AQk"HgR`q>TOV!V)'7J-Lk8hX^L@roX4^kc]U+J-UREEeUC6lMBfGJ,~>
+kl1Wpl2UuP\*<Varp'LacU[[/#7Og[Nj@=.r9=4^gHY*+";?sNnbh5C!1s/i"YY%db4,DarrL.[
+kl:iY_WU^nkl1\H.-^d<"$1nHoD&7_rpB^entJA8!!jBKG)E<FlM:GEs*t~>
+kl1XGl:M5#_Wgdlrp'LagjJff#>SoTNj@=.r9=4^k'-5c"B;&Hnbh5C!4i)$"^#r8b4,DarrL_X
+kt2)#`TR$qkl1\OB'Mto9Q6ZMoD&7_rpB^ep:Y\:8dJ:.G)E<FlM:GEs*t~>
+kl1Xgl@9&)bN\`urp'LakG.a$#C^T7Nj@=.r9=4^m@Wfs"G<`,nbh5C!6tLn"a>-Wb4,DarrM/?
+l$ro"`om-rkl1\TPj3c)JXEt"oD&7_rpB^eps>Z"J-^L@G)E<FlM:GEs*t~>
+kl1XCkl:ni6)s5Dr;Q-a!Obes!!aBOG`T2_nbh\P!p=J-li71mAC'Z=rnm_]mfWUj<dq"$pY5]L
+k@Xq\!!O@#iUZmFli."#*9@/,%R"Wo_WLXjr;HWoqu?]q"R`jU6O<#Y#mNM1I?UtcmJ?hHs*t~>
+kl1Xckt2.RFM$i3r;Q-a!R-/g8dA7/G`T2_nbh\P!q)IQlq.FTL=5Jbrnm_]nk;YJB7?f5pY5]L
+mZUB.8d/CmiUZmFli."5?KFcc;fn80d-LK(r;HWoqu?]q"S0j;Gu*d!#u"WDI?UtcmJ?hHs*t~>
+kl1Y&l$rthRE4[er;Q-a!SaOFJ-UF>G`T2_nbh\P!qWmSm!o7jT[W<(rnm_]on%^EFFL1BpY5]L
+o<X&3J-Cb8iUZmFli."CNobctL7>Kgh!Xt7r;HWoqu?]q"SUWfTnMc_$%I&:I?UtcmJ?hHs*t~>
+kl1Xrjo>W0FLgr:r;Q]hrr_\pCE)pH#Qcc!I$D(mnbhbR"8fZ2#j;6m&p2Ojq#13Ors8Qg!"4".
+\`WhHrr`,/>6s6h"sSWKo(i7`nG`O+:Yc!S%OaPFC4#l+")V4&([1o+"#"51LnVT=nGDDKJ,~>
+kl1Y/k"5kcR)ngmr;Q]hrr_l6Q<j,T#?l%nPd]98r9XFcr6C*pkXl%ZQ.PO#rVkgV#lSs>:O%c-
+k5=*9"8pH%:ub.P@%Z0Dq>L<^rrLW$h+@lNAp0#qTV;=Y"."da>3SWc93H(ULnVT=nGDDKJ,~>
+kl1Y=k(!\rZIJF>r;Q]hrr_uI[>jg/#Bk'6Pd]98r9XFcrS4H,k^WklY1rI@rVkgV#lU?FJU*-`
+k5=*9"8prVK]@ReN4%R6q>L<^rrM&Uh1,Z`P+AVY]DT;D[B,mVl$s(iGB%k`TtfCPqre!0~>
+kl1YIirBT%89UT9f\5'6gXEg.JlXAl!!j??FG-7#hX^U5rri>TSmN2l!!`TaHEuT*qY^?lkl1qf
+P5mXuR*"grj8T;^o"KuW&DdBn"#k>)j7iEKrr2fps8E,WVIpjV!"&obApB'![*Ih,r9"$0~>
+kl1YOj%9MUHCVIgi8agt"lIY<VMAjU8dJ:+FG-7#hX^U5rri>^\rBhP8dA%-S]'adqY^?lkl1qf
+Z:\ebR*"grj8T;^p!Bdl<Sg=S9Q$98kkFrPrr2fps8E,`^lr'48d\6qCj:]'[*Ih,r9"$0~>
+kl1YSj+%YqTXW(rkj%I!lfd-M^oE[jJ-^OCFG-7#hX^U5rri>fcEE,cJ-UXk[aOL9qY^?lkl1qf
+a+/u#R*"grj8T;^ptireLu*XgJX<ajlhC8Srr2fps8E,gd^+qAJ-pdMEd3>-[*Ih,r9"$0~>
+kl1\_'E.t9!uWR>/0Y_S!!s!!E.*kMb2i9pnc&]PB0Hj[!!j;u<c39EpA=jSrs%?\HC(Yap>u;V
+mrM8Le,Tms7VT7#q#15rG?-I0[/^U:*Ck$qLmt]mi:-UBjo9i~>
+kl1\_=8ker92\kq>?=\L8dS4!EIEtNb2i9pnc&]qPBKs[8dJO<KpJCqpA=jSrs%XYOI*!"p>u;V
+oULMBe4L-THBZA>q#164Sqh/^Zq:^)@WHjPS$L2pnG<.Gs*t~>
+kl1\_M>i#0IsZKhI"$RmJ-g[HEda(Ob2i9pnc&^3Z_!!,J-_""W3j2&pA=jSrs%k@TU2\2p>u;V
+pUR2ae:7sdTX!#;q#16E];h6R["&O2F`VqdS$L2pnG<.Gs*t~>
+kPl&N""mAeHA%6?P`gl>9IUD&!"'6$DL7;9^=_iKrp]pf+OU5l[G:3HlMh(e5JXG;jSS'=!8l'%
+"_?*EpASF+!"BDf88EO)P+oD.hsU:<j8XW~>
+kPl'39O_aWHA%6?P`guRDHoui8d\="E-mM;^=_iKrp]pf@+%XL^>//QlMh(eG/CDtjSS'=!9h^#
+"c:^jpAU)Z8e"Nt@rZgJP+oD.hsU:<j8XW~>
+kPl$\JV\_rHA%6?P`h)bL4Rs,$@R&;H]+W4f^8M6nG`KMdXVG=h!Y%(rs&Fn`3-o:qrRhXn'6Fe
+UsnK"ri`\Z%=WVHG'\h)U:/8&meHb@s*t~>
+kPl74`3,;fU9VGOaMu*/ZDX4D>s'#.huF,g-W"o6NM3o0k4JT>rsjj*?rBa(=BT-B?tX@rEURrJ
+@fKg9?2dY.:..N?3&ipe]\W;\li.1go\7O?n,DGK''ag]>Ydpc<Dub#?=$uKDJsN7mrBIe@UWYO
+>#8$k7R9@(1cB-Rd-gk$=CG3<?>=:jFEI+ps'cCE>#8$b5W^SL*Z>Lni;aGn'I>e:C4(VkQ(kS%
+eDp&nrSdd,~>
+kPl7DbH@%mU9VGOaMu*/ZDX4MG@jiKi(=AN<b6B%NM3o0k4JT>rsbupKm7W^FE2PGEclVPmWo"Y
+FE;JBrG2gSC2@KoB:limpAXCX#6+8Lb1H+]jo5YVTTaqKDJjH4D>eGUF*MutH6IQUFE;JACi!m#
+AnP^cA:h&4mesVLLO+ApIsucpI=-Bgp3I3kFE;D;CM.0e>[(6.:efn@&PQ&'?YFJ-Jr>ngZGY2P
+nG)t@s*t~>
+kPl1Nd&rRrU9VGOaMu*/ZDX4TM1j`9$\*GDFFK4C\^9L2r9jRp_QohtN/NLGK7SQ&It3+;K):'+
+JqSi4L5:\^]\W;\li.1go\7O?n,DGK$hV'6S<&M^KnFr,If4`tJ:W:<K)C-7It3*%K7nuCYgDh:
+bc%;%P)bQ]M2$]RK):&uJ,OirJ)PniIslZiG^+UfMj:$B_pm`9q#01OJ,~>
+kPlCqkfgcZeDTTZn*]Q+inDbu\ZVZjE)//'k5Yr'/PpG7LR"dMdH'lprpB^rqW5\tTq7jJTq\B\
+W2cr$n?*G,XJr+pVPKrZTV%gIT:i'nh"C[3rri2dk3Vm(rt>>)hS#hZSXc7CTVA6ZVPpMrXm`D#
+XfSS%Vl$>eU7e-LrgX7dYg;b9r9MS1rh9RlV5C2lXnAh;XfSM"VPKoXS=5e0P)tZ\I<B=7?VsWm
+5X.Fh/hZiL'fnHM<FKiqJqo;KR\[.!aOT89o_SREs*t~>
+kPlCqkfgcZeDTTZn*]Q+inDbu\ZVZlJT"ppk=Q1Z=_;c'LR"dMdH'lprpB^rqW5\tTq7jJTq\B\
+W2cr$n?*G,XJr+pVPKrZTV%gIT:i'nh"C[3rri2dk3Vm(rt>>)hS#hZSXc7CTVA6ZVPpMrXm`D#
+XfSS%Vl$>eU7e-LrgX7dYg;b9r9MS1rh9RlV5C2lXnAh;XfSM"VPKoXS=5e0P)tZ\K78)gF)>`-
+ARo:X>[6u,'jtK`CN+NIJqo;KR\[.!aOT89o_SREs*t~>
+kPl@pkfgcZeDTTZn*]Q+inDbu\ZVZnN/*#IJ.6pPG'/1fQ)D:BjRW0HmJd^nji+<pSt;RJU8=`c
+WiW>lXqRq=WMcVjUnXNTT:VXHTVf?Vp&=7V"T%QKm.fZA')qU]]r.KnS=Q:FU84Z`W2cr$n#d&#
+XK/:tVP^/`TV%eSS-YakcgLc0lccR3U'7?hVPpPtor]17XJr+pUnOENR[9;&OH#-QKnP&/JUi6#
+J,OiiIK+]pHiJI(IY*?6PFA;N]?&O]m.C/RhuA3~>
+kPkecp?_#0o_SLarY#2,q"*q9hUTfb[&KXYEDekD%J'Q3!tun?:i(N2N0gEMa4TSGqYog\%fGkT
+eBlRie(*%%g=tE>mb\W4gtLK8f[eU&da6=cbK\]*qW\"_rqcEdrT!nhqX31fcd:%eeCE.&g"P39
+hX02AhV?l>g=b-0eC;pncHOJ[jRrNNoA\6Ed*pOtg"bETh]:P.g=b-0eC)[eb/V<5]XY>QY,\Cq
+U7\!GR@';*p662UR%'bEWj&tH`m<8okjS3@rVkXQJ,~>
+kPkecp?_#0o_SLarY#2,q"*q9hUTfb[&KX[J8f%%:\.0j92JYqBQJQQN0gEMa4TSGqYog\%fGkT
+eBlRie(*%%g=tE>mb\W4gtLK8f[eU&da6=cbK\]*qW\"_rqcEdrT!nhqX31fcd:%eeCE.&g"P39
+hX02AhV?l>g=b-0eC;pncHOJ[jRrNNoA\6Ed*pOtg"bETh]:P.g=b-0eC)[eb/V<5]XY>QY,\Cq
+U7\!GR@';*p662UR%'bEWj&tH`m<8okjS3@rVkXQJ,~>
+kPkecp?_#0o_SLarXf&*q"*q9hUTfb[&KX]MhZlRJ.R-UH?a[^JrH%n[`@%`o(r@Orsntsi7--#
+dF6Xsf\5*8hX985h;$`<g"=m+eC)^icHFJblh]lG"TJ8mqYfIS&GkhNda-:edaZguf\,!5gtqGU
+*o>],g=k64f$r3td*BkYdcC*#rU]$tcHt%jf\,'9oA:SEgtLH6f$r-obf[rB^V%(`Ycb"(UnXKP
+S!fY0Q1gFTQC+/7UoLZ.^;eLNhrsP%qYgELs*t~>
+k5PS_r;?Nmp\ts,r;--VlJpXIaM,![TU1[bAm%u-r([l1AT<3OL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+k5PS_r;?Nmp\ts,r;--VlJpXIaM,![TU1^lG]@S9r+Zj_Ed3(cL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+k5PS_r;?Nmp\u!-r;--VlJpXIaM,![TU1atL4b&-J,OiqI1LgZL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+%%EndData
+showpage
+%%Trailer
+end
+%%EOF
diff --git a/templates/German-logo.png b/templates/German-logo.png
new file mode 100755
index 00000000..5edcdfe5
--- /dev/null
+++ b/templates/German-logo.png
Binary files differ
diff --git a/templates/German-packing_list.html b/templates/German-packing_list.html
new file mode 100755
index 00000000..09ef4021
--- /dev/null
+++ b/templates/German-packing_list.html
@@ -0,0 +1,146 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr>
+ <td width=10>
+ </td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th colspan=2>
+ <h4 align=center>V E R P P A C K U N G S L I S T E</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Datum</th><td width=10> </td><td><%invdate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Nummer</th><td></td><td><%invnumber%></td></tr>
+ </tr>
+
+ <tr>
+ <td>
+ </td>
+ </tr>
+ </td>
+ </table>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Zustellung an:</th>
+ </tr>
+
+ <tr>
+ <td><%shiptoname%>
+ <br><%shiptoaddr1%>
+ <br><%shiptoaddr2%>
+ <br><%shiptoaddr3%>
+ <br><%shiptoaddr4%>
+<%if shiptocontact%>
+ <p>An: <%shiptocontact%>
+<%end shiptocontact%>
+
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Nummer</th>
+ <th align=left><font color=ffffff>Artikel</th>
+ <th><font color=ffffff>Anz</th>
+ <th>&nbsp;</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>Bemerkungen</td>
+ <td><%notes%></td>
+<%end notes%>
+ <td align=right>
+ <%shippingpoint%>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><font size=-3>
+ Beschädigte Waren und Waren ohne Rückgabenummer werden nicht
+ entgegengenommen. Lagerkosten werden mit 10% berrechnet.
+ Waren müssen ausreichended verpackt und versichert sein.
+ </font>
+ </td>
+ <td width=150>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/German-packing_list.tex b/templates/German-packing_list.tex
new file mode 100755
index 00000000..7957508a
--- /dev/null
+++ b/templates/German-packing_list.tex
@@ -0,0 +1,118 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telefon & <%tel%>\\
+ Telefax & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%invnumber%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+<%pagebreak 65 27 37%>
+\end{tabular*}
+
+\newpage
+
+\markright{<%company%>\hfill <%invnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rll@{}}
+ \textbf{Nummer} & \textbf{Artikel} & \textbf{Anz} &
+ \textbf{Einh} & \textbf{Steige} \\
+<%end pagebreak%>
+
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{2cm}
+
+<%shiptoname%>
+
+<%shiptoaddr1%>
+
+<%shiptoaddr2%>
+
+<%shiptoaddr3%>
+
+<%shiptoaddr4%>
+
+\vspace{3.5cm}
+
+\textbf{P A C K I N G} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+
+\hfill
+\begin{tabular}[t]{l@{\hspace{0.3cm}}l}
+ \textbf{Datum} & <%invdate%> \\
+ \textbf{Nummer} & <%invnumber%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rll@{}}
+ \textbf{Nummer} & \textbf{Artikel} & \textbf{Anz} &
+ \textbf{Einh} & \textbf{Steige} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+\footnotetext[1]{\tiny
+Beschädigte Waren und Waren ohne Rückgabenummer werden nicht
+entgegengenommen. Lagerkosten werden mit 10\% berrechnet.
+Waren müssen ausreichended verpackt und versichert sein.
+}
+
+\end{document}
+
diff --git a/templates/German-pick_list.html b/templates/German-pick_list.html
new file mode 100755
index 00000000..da8a3bdf
--- /dev/null
+++ b/templates/German-pick_list.html
@@ -0,0 +1,153 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>P I C K &nbsp;&nbsp; L I S T</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th width=50% align=left><font color=ffffff>Ship To:</th>
+ <th width=50%>&nbsp;</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ </td>
+
+ <td>
+ <%if shiptocontact%>
+ <br>Attn: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=15% align=left>Invoice #</th>
+ <th width=15% align=left>Order #</th>
+ <th width=10% align=left>Date</th>
+ <th width=15% align=left nowrap>Contact</th>
+ <th width=15% align=left>Warehouse</th>
+ <th width=10% align=left>Shipping Point</th>
+ <th width=10% align=left>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%invnumber%>&nbsp;</td>
+ <td><%ordnumber%>&nbsp;</td>
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%transdate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+ <td><%warehouse%>&nbsp;</td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Pos</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qty</th>
+ <th><font color=ffffff>Ship</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Bin</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td align=right>[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</td>
+ <td><%unit%></td>
+ <td align=right><%bin%></td>
+ </tr>
+ <%end number%>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+</table>
+
diff --git a/templates/German-pick_list.tex b/templates/German-pick_list.tex
new file mode 100755
index 00000000..04953ce8
--- /dev/null
+++ b/templates/German-pick_list.tex
@@ -0,0 +1,144 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}rlXrcll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} &
+ \textbf{Qty} & \textbf{Ship} & & \textbf{Bin} \\
+
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.5\textwidth}{
+ \textbf{Ship To}
+} \hfill
+
+\vspace{0.7cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.5\textwidth}{
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+}
+\parbox[t]{.4\textwidth}{
+ <%shiptocontact%>
+
+ <%if shiptophone%>
+ Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{P I C K} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{7}{|X}|} \hline
+ \textbf{Invoice \#} & \textbf{Order \#} & \textbf{Date} & \textbf{Contact}
+ & \textbf{Warehouse} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+ <%invnumber%> & <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%transdate%>
+ <%end shippingdate%>
+ & <%employee%>
+ <%if warehouse%>
+ & <%warehouse%>
+ <%end warehouse%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrcll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} &
+ \textbf{Qty} & \textbf{Ship} & & \textbf{Bin} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> &
+ <%qty%> & [\hspace{1cm}] & <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+}
+
+\end{document}
+
diff --git a/templates/German-pos_invoice.txt b/templates/German-pos_invoice.txt
new file mode 100755
index 00000000..fecd1557
--- /dev/null
+++ b/templates/German-pos_invoice.txt
@@ -0,0 +1,50 @@
+<%company align=center width=40%>
+<%address align=center width=40%>
+
+Till: <%till align=left width=3%> Phone#: <%tel%>
+Cashier: <%employee%>
+Inv No/Date: <%invnumber%> / <%invdate%>
+Printed: <%dateprinted%>
+
+ Qty Description Amount
+<%foreach number%>
+<%qty align=right width=5%> <%description align=left width=24 offset=6%> <%linetotal align=right width=9%>
+ <%number%> @ <%sellprice%>/<%unit%>
+<%end number%>
+
+Number of items: <%rowcount%>
+<%if taxincluded%>
+ ---------------
+ Amount Due: <%invtotal align=right width=9%>
+<%end taxincluded%>
+<%if not taxincluded%>
+ ------------
+ Subtotal: <%subtotal align=right width=9%>
+<%end taxincluded%>
+<%foreach tax%>
+<%taxdescription align=right width=23%> @ <%taxrate align=right width=2%>%: <%tax align=right width=9%>
+<%end tax%>
+ Amount Due: <%invtotal align=right width=9%>
+<%foreach payment%>
+<%paymentaccount align=right width=29%>: <%payment align=right width=9%> <%currency%>
+<%end payment%>
+<%if change%>
+ Change: <%change align=right width=9%>
+<%end change%>
+<%if total%>
+ Balance Due: <%total align=right width=9%>
+<%end total%>
+<%if discount%>
+
+<%discount%> % Discount applied
+<%end discount%>
+
+ Thank you for your valued business!
+
+<%if taxincluded%>
+Taxes are included in price.
+<%end taxincluded%>
+
+
+
+
diff --git a/templates/German-purchase_order.html b/templates/German-purchase_order.html
new file mode 100755
index 00000000..c9cebc8c
--- /dev/null
+++ b/templates/German-purchase_order.html
@@ -0,0 +1,192 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <td align=right>
+ <h4>
+ Telefon <%tel%>
+ <br>Telefax <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>B E S T E L L U N G</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Bestellungsdatum</th><td width=10>&nbsp;</td><td><%orddate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Lieferbar bis</th><td width=10>&nbsp;</td><td><%reqdate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Bestellnummer</th><td>&nbsp;</td><td><%ordnumber%></td></tr>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+ </td>
+ </table>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>An:</th>
+ </tr>
+
+ <tr>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+<br><%address2%>
+<%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+<%country%>
+<%end country%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+<!-- <th align=right><font color=ffffff>No.</th> -->
+ <th align=left><font color=ffffff>Nummer</th>
+ <th align=left><font color=ffffff>Artikel</th>
+ <th><font color=ffffff>Anz</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Preis</th>
+ <th><font color=ffffff>Total</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+<!-- <td align=right><%runningnumber%>.</td>
+adjust the colspan if you include this to shift subtotal one to the right
+-->
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=6><hr noshade></td>
+ </tr>
+
+ <tr>
+ <th colspan=4 align=right>Zwischensumme</th>
+ <td colspan=2 align=right><%subtotal%></td>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=4 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+<%end tax%>
+
+ <tr>
+ <td colspan=2>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=2>Netto <b><%terms%></b> Tage</td>
+ <th colspan=2 align=right>Total</th>
+ <th colspan=2 align=right><%total%></th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>Bemerkungen</td>
+ <td><%notes%></td>
+<%end notes%>
+ <td align=right>
+ Alle Preise in <b><%currency%></b>
+ <br><%shippingpoint%>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><font size=-3>
+ &nbsp;
+ </font>
+ </td>
+ <td width=150>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/German-purchase_order.tex b/templates/German-purchase_order.tex
new file mode 100755
index 00000000..4f73aa38
--- /dev/null
+++ b/templates/German-purchase_order.tex
@@ -0,0 +1,147 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telefon & <%tel%>\\
+ Telefax & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%ordnumber%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+<%pagebreak 65 27 37%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Zwischensumme} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markright{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrr@{}}
+ \textbf{Nummer} & \textbf{Artikel} & \textbf{Anz} &
+ \textbf{Einh} & \textbf{Preis} & \textbf{Total} \\
+ & Übertrag von <%lastpage%> & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{2cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{3.5cm}
+
+\textbf{B E S T E L L U N G}
+\hfill
+\begin{tabular}[t]{l@{\hspace{0.3cm}}l}
+ \textbf{Datum} & <%orddate%> \\
+<%if reqdate%>
+ \textbf{Lieferung bis} & <%reqdate%> \\
+<%end reqdate%>
+ \textbf{Nummer} & <%ordnumber%>
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrr@{}}
+ \textbf{Nummer} & \textbf{Artikel} & \textbf{Anz} &
+ \textbf{Einh} & \textbf{Preis} & \textbf{Total} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Zwischensumme} & \textbf{<%subtotal%>} \\
+<%foreach tax%>
+ <%taxdescription%> on <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ \textbf{Total} & \textbf{<%ordtotal%>}\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ Alle Preise in \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+
+%\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+%\footnotetext[1]{\tiny }
+
+\end{document}
+
+
diff --git a/templates/German-receipt.tex b/templates/German-receipt.tex
new file mode 100755
index 00000000..881ee374
--- /dev/null
+++ b/templates/German-receipt.tex
@@ -0,0 +1,75 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.4cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.0cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+
+\fontfamily{cmss}\fontsize{9pt}{9pt}\selectfont
+
+\parbox[t]{12cm}{
+ <%company%>
+
+ <%address%>}
+\hfill
+\parbox[t]{6cm}{\hfill <%source%>}
+
+\vspace*{0.6cm}
+
+<%text_amount%> \dotfill <%decimal%>/100 \makebox[0.5cm]{\hfill}
+
+\vspace{0.5cm}
+
+\hfill <%datepaid%> \makebox[2cm]{\hfill} <%amount%>
+
+\vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{2.8cm}
+
+<%company%>
+
+\vspace{0.5cm}
+
+<%name%> \hfill <%datepaid%> \hfill <%source%>
+
+\vspace{0.5cm}
+\begin{tabularx}{\textwidth}{lXrr@{}}
+\textbf{Rechnung} & \textbf{Ausgestellt}
+ & \textbf{Fällig} & \textbf{Verrechnet} \\
+<%foreach invnumber%>
+<%invnumber%> & <%invdate%> \dotfill
+ & <%due%> & <%paid%> \\
+<%end invnumber%>
+\end{tabularx}
+
+\vfill
+
+\end{document}
+
diff --git a/templates/German-request_quotation.html b/templates/German-request_quotation.html
new file mode 100755
index 00000000..fa684866
--- /dev/null
+++ b/templates/German-request_quotation.html
@@ -0,0 +1,202 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <td><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58>
+ </td>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>R E Q U E S T &nbsp;&nbsp; F O R &nbsp;&nbsp; Q U O T A T I O N</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>To:</th>
+ <th align=left width=50%><font color=ffffff>Ship To:</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+<br>
+<%if contact%>
+<br>Attn: <%contact%>
+<%end contact%>
+<%if vendorphone%>
+<br>Tel: <%vendorphone%>
+<%end vendorphone%>
+<%if vendorfax%>
+<br>Fax: <%vendorfax%>
+<%end vendorfax%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddr2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+<br>
+<%if shiptocontact%>
+<br>Attn: <%shiptocontact%>
+<%end shiptocontact%>
+<%if shiptophone%>
+<br>Tel: <%shiptophone%>
+<%end shiptophone%>
+<%if shiptofax%>
+<br>Fax: <%shiptofax%>
+<%end shiptofax%>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr><td>&nbsp;</td></tr>
+
+ <tr>
+ <td colspan=2>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left>RFQ #</th>
+ <th width=17% align=left>Date</th>
+ <th width=17% align=left>Required by</th>
+ <th width=17% align=left>Contact</th>
+ <th width=17% align=left>Shipping Point</th>
+ <th width=15% align=left>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%quonumber%></td>
+ <td><%quodate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height="10"></tr>
+
+ <tr>
+ <td>Please provide price and delivery time for the following items:</td>
+ </tr>
+
+ <tr height="10"></tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+<!-- <th align=right>No.</th> -->
+ <th align=left>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th>Qt'y</th>
+ <th>&nbsp;</th>
+ <th>Delivery</th>
+ <th>Unit Price</th>
+ <th>Extended</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+<!-- <td align=right><%runningnumber%>.</td>
+other per line item variables available <%reqdate%>
+adjust the colspan if you include this to shift subtotal one to the right
+-->
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=7><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+<%if notes%>
+ <tr valign=top>
+ <td>Notes</td>
+ <td><%notes%></td>
+ </tr>
+<%end notes%>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=70%>&nbsp;</td>
+
+ <td width=30%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/German-request_quotation.tex b/templates/German-request_quotation.tex
new file mode 100755
index 00000000..49f1abe7
--- /dev/null
+++ b/templates/German-request_quotation.tex
@@ -0,0 +1,175 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Extended} \\
+ & carried forward from <%lastpage%> & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.45\textwidth}{
+\textbf{To}
+\vspace{0.7cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if vendorphone%>
+Tel: <%vendorphone%>
+<%end vendorphone%>
+
+<%if vendorfax%>
+Fax: <%vendorfax%>
+<%end vendorfax%>
+
+<%email%>
+}
+\parbox[t]{.45\textwidth}{
+\textbf{Ship To}
+\vspace{0.7cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{R E Q U E S T for Q U O T A T I O N}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{RFQ \#} & \textbf{Date} & \textbf{Required by} & \textbf{Contact} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5ex]
+ \hline
+ <%quonumber%> & <%quodate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+Please provide price and delivery time for the following items:
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}lXrllrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} & &
+ \textbf{Delivery} & \textbf{Unit Price} & \textbf{Extended} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> & <%unit%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\hfill
+
+<%notes%>
+
+}
+
+\end{document}
+
diff --git a/templates/German-sales_order.html b/templates/German-sales_order.html
new file mode 100755
index 00000000..ce37fc49
--- /dev/null
+++ b/templates/German-sales_order.html
@@ -0,0 +1,221 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <td align=right>
+ <h4>
+ Telefon <%tel%>
+ <br>Telefax <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>B E S T E L L U N G</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Bestelldatum</th><td width=10>&nbsp;</td><td><%orddate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Lieferbar bei</th><td width=10>&nbsp;</td><td><%reqdate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Bestellnummer</th><td>&nbsp;</td><td><%ordnumber%></td></tr>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+ </td>
+ </table>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Verrechnet An:</th>
+ <th align=left><font color=ffffff>Lieferaddresse:</th>
+ </tr>
+
+ <tr>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+<br><%address2%>
+<%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+<%country%>
+<%end country%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+<br><%shiptoaddress2%>
+<%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+<%shiptocountry%>
+<%end shiptocountry%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+<!-- <th align=right><font color=ffffff>No.</th> -->
+ <th align=left><font color=ffffff>Nummer</th>
+ <th align=left><font color=ffffff>Artikel</th>
+ <th><font color=ffffff>Anz</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Preis</th>
+ <th><font color=ffffff>Rab</th>
+ <th><font color=ffffff>Total</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+<!-- <td align=right><%runningnumber%>.</td>
+adjust the colspan if you include this to shift subtotal one to the right
+-->
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discount%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=7><hr noshade></td>
+ </tr>
+
+<%if taxincluded%>
+ <tr>
+ <th colspan=5 align=right>Total</th>
+ <td colspan=2 align=right><%ordtotal%></td>
+ </tr>
+<%end taxincluded%>
+
+<%if not taxincluded%>
+ <tr>
+ <th colspan=5 align=right>Zwischensumme</th>
+ <td colspan=2 align=right><%subtotal%></td>
+ </tr>
+<%end taxincluded%>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=5 align=right><%taxdescription%> auf <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+<%end tax%>
+
+ <tr>
+ <td colspan=2>&nbsp;</td>
+ <td colspan=5><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=3>Netto <b><%terms%></b> Tage</td>
+ <th colspan=2 align=right>Total</th>
+ <th colspan=2 align=right><%ordtotal%></th>
+ </tr>
+<%if taxincluded%>
+ <tr>
+ <td colspan=3>Steuern sind im Preis inbegriffen</td>
+ </tr>
+<%end taxincluded%>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>Bemerkungen</td>
+ <td><%notes%></td>
+<%end notes%>
+ <td align=right>
+ Alle Preise in <b><%currency%></b>
+ <br><%shippingpoint%>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><font size=-3>
+ Spezialprodukte werden nicht zurückgenommen. Für alle anderen Waren
+ wird eine 10% Stornogebühr verrechnet.
+ </font>
+ </td>
+ <td width=150>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/German-sales_order.tex b/templates/German-sales_order.tex
new file mode 100755
index 00000000..bdb522bd
--- /dev/null
+++ b/templates/German-sales_order.tex
@@ -0,0 +1,149 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telefon & <%tel%>\\
+ Telefax & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%ordnumber%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+<%pagebreak 65 27 48%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Zwischensumme} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markright{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Nummer} & \textbf{Artikel} & \textbf{Anz} &
+ \textbf{Einh} & \textbf{Preis} & \textbf{Rab} & \textbf{Total} \\
+ & Übertrag von Seite <%lastpage%> & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{2cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{3.5cm}
+
+\textbf{B E S T E L L U N G}
+\hfill
+\begin{tabular}[t]{l@{\hspace{0.3cm}}l}
+ \textbf{Bestelldatum} & <%orddate%> \\
+<%if reqdate%>
+ \textbf{Lieferbar bei} & <%reqdate%> \\
+<%end reqdate%>
+ \textbf{Bestellnummer} & <%ordnumber%>
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Nummer} & \textbf{Artikel} & \textbf{Anz} &
+ \textbf{Einh} & \textbf{Preis} & \textbf{Rab} & \textbf{Total} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%discount%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Zwischensumme} & \textbf{<%subtotal%>} \\
+<%foreach tax%>
+ <%taxdescription%> auf <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ \textbf{Total} & \textbf{<%ordtotal%>}\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ Alle Preise in \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+
+\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+\footnotetext[1]{\tiny
+Spezialprodukte werden nicht zurückgenommen. Für alle anderen Waren
+wird eine 10\% Stornogebühr verrechnet.
+}
+
+\end{document}
+
diff --git a/templates/German-sales_quotation.html b/templates/German-sales_quotation.html
new file mode 100755
index 00000000..0abf5fc7
--- /dev/null
+++ b/templates/German-sales_quotation.html
@@ -0,0 +1,225 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr valign=top>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+<tr><td colspan=3>&nbsp;</td></tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>Q U O T A T I O N</h4>
+ </th>
+ </tr>
+
+ </table>
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td>
+ <table width=100%>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+
+ <br>
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr><td>&nbsp;</td></tr>
+
+ <tr>
+ <td colspan=2>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Number</th>
+ <th width=17% align=left>Date</th>
+ <th width=17% align=left>Valid until</th>
+ <th width=17% align=left nowrap>Contact</th>
+ <th width=17% align=left nowrap>Shipping Point</th>
+ <th width=15% align=left nowrap>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%quonumber%></td>
+ <td><%quodate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>No.</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qt'y</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Price</th>
+ <th><font color=ffffff>Disc %</th>
+ <th><font color=ffffff>Amount</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%></td>
+
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discountrate%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=8><hr noshade></td>
+ </tr>
+
+ <tr>
+<%if taxincluded%>
+ <th colspan=6 align=right>Total</th>
+ <td colspan=2 align=right><%invtotal%></td>
+<%end taxincluded%>
+
+<%if not taxincluded%>
+ <th colspan=6 align=right>Subtotal</th>
+ <td colspan=2 align=right><%subtotal%></td>
+<%end taxincluded%>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=6 align=right><%taxdescription%> on <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+<%end tax%>
+
+ <tr>
+ <td colspan=4>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=4>&nbsp;
+<%if terms%>
+ Terms Net <b><%terms%></b> days
+<%end terms%>
+ </td>
+ <th colspan=2 align=right>Total</th>
+ <th colspan=2 align=right><%quototal%></th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>Notes</td>
+ <td><%notes%></td>
+<%end notes%>
+ <td align=right>
+ All prices in <b><%currency%></b> Funds
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=60%><font size=-3>
+ Special order items are subject to a 10% cancellation fee.
+ </font>
+ </td>
+ <td width=40%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/German-sales_quotation.tex b/templates/German-sales_quotation.tex
new file mode 100755
index 00000000..25792c6b
--- /dev/null
+++ b/templates/German-sales_quotation.tex
@@ -0,0 +1,157 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 48%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%quonumber%>}{<%company%>\hfill <%quonumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+ & carried forward from <%lastpage%> & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.45\textwidth}{
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%contact%>
+
+\vspace{0.2cm}
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+
+\vspace{1cm}
+
+\textbf{Q U O T A T I O N}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Quotation \#} & \textbf{Date} & \textbf{Valid until} & \textbf{Contact} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5ex]
+ \hline
+ <%quonumber%> & <%quodate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%discountrate%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ Subtotal & <%subtotal%> \\
+<%foreach tax%>
+ <%taxdescription%> on <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ Total & <%quototal%>\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ All prices in \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%notes%>
+
+}
+
+\vfill
+
+\end{document}
+
+
diff --git a/templates/German-statement.html b/templates/German-statement.html
new file mode 100755
index 00000000..4f384151
--- /dev/null
+++ b/templates/German-statement.html
@@ -0,0 +1,125 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+ <tr>
+ <th colspan=3><h4>S T A T E M E N T</h4></th>
+ </tr>
+ <tr>
+ <td colspan=3 align=right><%statementdate%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+<br><%address2%>
+<%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+<%country%>
+<%end country%>
+ <br>
+<%if customerphone%>
+ <br>Tel: <%customerphone%>
+<%end customerphone%>
+<%if customerfax%>
+ <br>Fax: <%customerfax%>
+<%end customerfax%>
+<%if email%>
+ <br><%email%>
+<%end email%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr height=10></tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr>
+ <th align=left>Invoice #</th>
+ <th width=15%>Date</th>
+ <th width=15%>Due</th>
+ <th width=10%>Current</th>
+ <th width=10%>30</th>
+ <th width=10%>60</th>
+ <th width=10%>90+</th>
+ </tr>
+<%foreach invnumber%>
+ <tr>
+ <td><%invnumber%></td>
+ <td><%invdate%></td>
+ <td><%duedate%></td>
+ <td align=right><%c0%></td>
+ <td align=right><%c30%></td>
+ <td align=right><%c60%></td>
+ <td align=right><%c90%></td>
+ </tr>
+<%end invnumber%>
+ <tr>
+ <td colspan=7><hr size=1></td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <th align=right><%c0total%></td>
+ <th align=right><%c30total%></td>
+ <th align=right><%c60total%></td>
+ <th align=right><%c90total%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr height=10></tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td align=right>
+ <table width=50%>
+ <tr>
+ <th>Total Outstanding</th>
+ <th align=right><%total%></th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td><hr noshade></td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>Please make check payable to <b><%company%></b>.
+ </td>
+ </tr>
+ <tr height=20></tr>
+</table>
+
diff --git a/templates/German-statement.tex b/templates/German-statement.tex
new file mode 100755
index 00000000..fdc7339f
--- /dev/null
+++ b/templates/German-statement.tex
@@ -0,0 +1,111 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rrr@{}}
+ Tel & <%tel%>\\
+ Fax & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%statementdate%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{1.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{10.5cm}{
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+}
+\parbox[t]{7.5cm}{
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{S T A T E M E N T} \hfill \textbf{<%statementdate%>}
+
+\vspace{2cm}
+
+\begin{tabular*}{\textwidth}{@{}l@{\extracolsep\fill}ccrrrr@{}}
+ \textbf{Invoice \#} & \textbf{Date} & \textbf{Due} &
+ \textbf{Current} & \textbf{30} & \textbf{60} & \textbf{90+} \\
+<%foreach invnumber%>
+ <%invnumber%> & <%invdate%> & <%duedate%> &
+ <%c0%> & <%c30%> & <%c60%> & <%c90%> \\
+<%end invnumber%>
+\textbf{Subtotal} & & & <%c0total%> & <%c30total%> & <%c60total%> & <%c90total%>
+\end{tabular*}
+\rule{\textwidth}{1pt}
+
+\vspace{0.5cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Total outstanding} & <%total%>
+\end{tabularx}
+
+\vfill
+
+Please make check payable to <%company%>
+
+\end{document}
+
diff --git a/templates/German-timecard.html b/templates/German-timecard.html
new file mode 100755
index 00000000..361b8254
--- /dev/null
+++ b/templates/German-timecard.html
@@ -0,0 +1,146 @@
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=sql-ledger.png border=0 width=84 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>T I M E &nbsp;&nbsp; C A R D</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=left>Employee</th>
+ <td><%employee%></td>
+ </tr>
+ <tr>
+ <th align=left>ID</th>
+ <td><%employee_id%></td>
+ </tr>
+ </table>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Card ID</th>
+ <td><%id%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Date Worked</th>
+ <td><%transdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Time In</th>
+ <td><%checkedin%></td>
+ </tr>
+ <tr>
+ <th align=left>Time Out</th>
+ <td><%checkedout%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Hours Worked</th>
+ <td><%qty%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=bottom>
+ <td>
+ <table>
+ <tr valign=top>
+ <th align=left>Project/Job #</th>
+ <td><%projectnumber%></td>
+ </tr>
+ <tr>
+ <th align=left>Description</th>
+ <td><%projectdescription%></td>
+ </tr>
+ <tr valign=top>
+ <th align=left>Labor/Service Code</th>
+ <td><%partnumber%></td>
+ </tr>
+ <tr>
+ <th align=left>Description</th>
+ <td><%description%></td>
+ </tr>
+ </table>
+ </td>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Unit Rate</th>
+ <td><%sellprice%></td>
+ </tr>
+ <tr>
+ <th align=right>Total</th>
+ <td><%total%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+<%if notes%>
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%notes%>
+ </td>
+ </tr>
+<%end notes%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/German-timecard.tex b/templates/German-timecard.tex
new file mode 100755
index 00000000..49a30c54
--- /dev/null
+++ b/templates/German-timecard.tex
@@ -0,0 +1,71 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-1cm,left=2cm,right=1cm]{geometry}
+\usepackage{graphicx}
+\setlength{\parindent}{0pt}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Tel: & <%tel%>\\
+ Fax: & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+\centerline{\textbf{T I M E}\hspace{0.5cm}\textbf{C A R D}}
+
+\vspace*{0.5cm}
+
+\begin{tabular}[t]{ll}
+ \textbf{Employee} & <%employee%> \\
+ \textbf{ID} & <%employee_id%> \\
+\end{tabular}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Card ID} & <%id%> \\
+ \textbf{Date Worked} & <%transdate%> \\
+ \textbf{Time In} & <%checkedin%> \\
+ \textbf{Time Out} & <%checkedout%> \\
+ \textbf{Hours Worked} & <%qty%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular}[b]{ll}
+ \textbf{Project/Job \#} & <%projectnumber%> \\
+ \textbf{Description} & <%projectdescription%> \\
+ \textbf{Labor/Service Code} & <%partnumber%> \\
+ \textbf{Description} & <%description%> \\
+\end{tabular}
+\hfill
+\begin{tabular}[b]{lr}
+ \textbf{Unit Rate} & <%sellprice%> \\
+ \textbf{Total} & <%total%> \\
+\end{tabular}
+
+\vspace{0.3cm}
+
+<%notes%>
+
+\end{document}
+
+
diff --git a/templates/German-work_order.html b/templates/German-work_order.html
new file mode 100755
index 00000000..88d212af
--- /dev/null
+++ b/templates/German-work_order.html
@@ -0,0 +1,174 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=bottom>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>W O R K &nbsp;&nbsp; O R D E R</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>To</th>
+ <th align=left width=50%><font color=ffffff>Ship To</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%>
+ <br><%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%>
+ <br><%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ <br>
+ <%if shiptocontact%>
+ <br><%shiptocontact%>
+ <%end shiptocontact%>
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+ <%if shiptoemail%>
+ <br><%shiptoemail%>
+ <%end shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Order Number</th>
+ <th width=17% align=left>Order Date</th>
+ <th width=17% align=left>Required by</th>
+ <th width=17% align=left nowrap>Salesperson</th>
+ <th width=17% align=left nowrap>Shipping Point</th>
+ <th width=15% align=left nowrap>Ship Via</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%></td>
+ <td><%orddate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>No.</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qt'y</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Serial No.</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%>.</td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td><%serialnumber%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <td colspan=6><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <%if notes%>
+ <td><%notes%></td>
+ <%end notes%>
+ </tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/German-work_order.tex b/templates/German-work_order.tex
new file mode 100755
index 00000000..9b2f6f95
--- /dev/null
+++ b/templates/German-work_order.tex
@@ -0,0 +1,177 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}rlXrll@{}}
+ \textbf{No.} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ & \textbf{Serial Number} \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.45\textwidth}{
+\textbf{To}
+\vspace{0.7cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\parbox[t]{.45\textwidth}{
+\textbf{Ship To}
+\vspace{0.7cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{W O R K} \parbox{0.3cm}{\hfill} \textbf{O R D E R}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Order Date} & \textbf{Required by} & \textbf{Salesperson} & \textbf{Shipping Point} & \textbf{Ship Via} \\ [0.5em]
+ \hline
+ <%ordnumber%> & <%orddate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrll@{}}
+ \textbf{No.} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ & \textbf{Serial Number} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%serialnumber%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+\vfill
+
+\vspace{1cm}
+
+\rule{\textwidth}{0.5pt}
+
+\end{document}
+
+
+
+
+
+
diff --git a/templates/Hungarian-ap_transaction.html b/templates/Hungarian-ap_transaction.html
new file mode 100755
index 00000000..fd7a96eb
--- /dev/null
+++ b/templates/Hungarian-ap_transaction.html
@@ -0,0 +1,229 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>A P - T R A N S A C T I O N</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Invoice #</th>
+ <td><%invnumber%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Date</th>
+ <td><%invdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Due</th>
+ <td><%duedate%></td>
+ </tr>
+ <tr>
+ <th align=left>Order #</th>
+ <td><%ordnumber%>&nbsp;</td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Employee</th>
+ <td><%employee%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=50%>
+ <table>
+ <%foreach account%>
+ <tr valign=top>
+ <td><%accno%></td>
+ <td><%account%></td>
+ <td align=right><%amount%></td>
+ <td><%projectnumber%></td>
+ </tr>
+ <%end account%>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Subtotal</th>
+ <td align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=2 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ </table>
+ </td>
+ <td width=50%>
+ <%notes%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <tr>
+ <td>&nbsp;</td>
+
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%text_amount%> ***** <%decimal%>/100 <%currency%>
+ </td>
+ </tr>
+
+ <%if paid%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <tr>
+ <th>Payments</th>
+ </tr>
+
+ <tr>
+ <td>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=left>Date</th>
+ <th align=left>Account</th>
+ <th align=left>Source</th>
+ <th align=left>Memo</th>
+ <th align=left>Amount</th>
+ </tr>
+ <%end paid%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td><%paymentmemo%></td>
+ <td><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid%>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <%end paid%>
+
+ <tr height=10></tr>
+
+ <%if taxincluded%>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <th colspan=3 align=left><font size=-2>Taxes shown are included in price.</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Hungarian-ap_transaction.tex b/templates/Hungarian-ap_transaction.tex
new file mode 100755
index 00000000..8bfd9f79
--- /dev/null
+++ b/templates/Hungarian-ap_transaction.tex
@@ -0,0 +1,125 @@
+\documentclass[10pt,letterpaper,oneside,onecolumn]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+\centerline{\textbf{A P} \hspace{0.3cm} \textbf{T R A N S A C T I O N}}
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+<%end contact%>
+
+\vspace{0.2cm}
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Invoice \#} & <%invnumber%> \\
+ \textbf{Date} & <%invdate%> \\
+ \textbf{Due} & <%duedate%> \\
+ \textbf{Order \#} & <%ordnumber%> \\
+ \textbf{Employee} & <%employee%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabularx}{.5\textwidth}[t]{@{}llrl@{}}
+<%foreach amount%>
+ <%accno%> & <%account%> & <%amount%> & <%projectnumber%> \\
+<%end amount%>
+
+ \multicolumn{2}{r}{\textbf{Subtotal}} & <%subtotal%> & \\
+<%foreach tax%>
+ \multicolumn{2}{r}{\textbf{<%taxdescription%> @ <%taxrate%> \%}} & <%tax%> & \\
+<%end tax%>
+
+ \multicolumn{2}{r}{\textbf{Total}} & <%invtotal%> & \\
+
+\end{tabularx}
+<%notes%>
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100 <%currency%>
+
+\vspace{0.3cm}
+
+<%if paid%>
+\begin{tabular}{@{}llllr@{}}
+ \multicolumn{5}{c}{\textbf{Payments}} \\
+ \hline
+ \textbf{Date} & & \textbf{Source} & \textbf{Memo} & \textbf{Amount} \\
+<%end paid%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%paymentmemo%> & <%payment%> \\
+<%end payment%>
+<%if paid%>
+\end{tabular}
+<%end paid%>
+
+\end{document}
+
diff --git a/templates/Hungarian-ar_transaction.html b/templates/Hungarian-ar_transaction.html
new file mode 100755
index 00000000..22833384
--- /dev/null
+++ b/templates/Hungarian-ar_transaction.html
@@ -0,0 +1,237 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>A R - T R A N S A C T I O N</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Invoice #</th>
+ <td><%invnumber%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Date</th>
+ <td><%invdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Due</th>
+ <td><%duedate%></td>
+ </tr>
+ <tr>
+ <th align=left>Order #</th>
+ <td><%ordnumber%>&nbsp;</td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Salesperson</th>
+ <td><%employee%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=50%>
+ <table>
+ <%foreach account%>
+ <tr valign=top>
+ <td><%accno%></td>
+ <td><%account%></td>
+ <td align=right><%amount%></td>
+ <td><%projectnumber%></td>
+ </tr>
+ <%end account%>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Subtotal</th>
+ <td align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=2 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ </table>
+ </td>
+ <td width=50%>
+ <%notes%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <tr>
+ <td>&nbsp;</td>
+
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%text_amount%> ***** <%decimal%>/100 <%currency%>
+ </td>
+ </tr>
+
+ <%if paid%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <tr>
+ <th>Payments</th>
+ </tr>
+
+ <tr>
+ <td>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=left>Date</th>
+ <th align=left>Account</th>
+ <th align=left>Source</th>
+ <th align=left>Memo</th>
+ <th align=left>Amount</th>
+ </tr>
+ <%end paid%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td><%paymentmemo%></td>
+ <td><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid%>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <%end paid%>
+
+ <tr height=10></tr>
+
+ <%foreach tax%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <th colspan=9 align=left><font size=-2><%taxdescription%> Registration <%taxnumber%></th>
+ </tr>
+ <%end tax%>
+
+ <%if taxincluded%>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <th colspan=3 align=left><font size=-2>Taxes shown are included in price.</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Hungarian-ar_transaction.tex b/templates/Hungarian-ar_transaction.tex
new file mode 100755
index 00000000..654d2b95
--- /dev/null
+++ b/templates/Hungarian-ar_transaction.tex
@@ -0,0 +1,131 @@
+\documentclass[10pt,letterpaper,oneside,onecolumn]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+\centerline{\textbf{A R} \hspace{0.3cm} \textbf{T R A N S A C T I O N}}
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+<%end contact%>
+
+\vspace{0.2cm}
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Invoice \#} & <%invnumber%> \\
+ \textbf{Date} & <%invdate%> \\
+ \textbf{Due} & <%duedate%> \\
+ \textbf{Order \#} & <%ordnumber%> \\
+ \textbf{Employee} & <%employee%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabularx}{.5\textwidth}[t]{@{}llrl@{}}
+<%foreach amount%>
+ <%accno%> & <%account%> & <%amount%> & <%projectnumber%> \\
+<%end amount%>
+
+ \multicolumn{2}{r}{\textbf{Subtotal}} & <%subtotal%> & \\
+<%foreach tax%>
+ \multicolumn{2}{r}{\textbf{<%taxdescription%> @ <%taxrate%> \%}} & <%tax%> & \\
+<%end tax%>
+
+ \multicolumn{2}{r}{\textbf{Total}} & <%invtotal%> & \\
+
+\end{tabularx}
+<%notes%>
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100 <%currency%>
+
+\vspace{0.3cm}
+
+<%if paid%>
+\begin{tabular}{@{}llllr@{}}
+ \multicolumn{5}{c}{\textbf{Payments}} \\
+ \hline
+ \textbf{Date} & & \textbf{Source} & \textbf{Memo} & \textbf{Amount} \\
+<%end paid%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%paymentmemo%> & <%payment%> \\
+<%end payment%>
+<%if paid%>
+\end{tabular}
+<%end paid%>
+
+\vspace{0.5cm}
+
+<%foreach tax%>
+\textbf{\small{<%taxdescription%> Registration <%taxnumber%>}} \\
+<%end tax%>
+
+\end{document}
+
diff --git a/templates/Hungarian-balance_sheet.html b/templates/Hungarian-balance_sheet.html
new file mode 100755
index 00000000..b3efde2c
--- /dev/null
+++ b/templates/Hungarian-balance_sheet.html
@@ -0,0 +1,100 @@
+
+<body bgcolor=ffffff>
+
+<h2 align=center>
+<%company%>
+<br><%address%>
+
+<p>MÉRLEG
+<br><%period%>
+</h2>
+
+<table border=0>
+<tr>
+ <th align=left width=400 colspan=2>ESZKÖZÖK<br><hr align=left width=250 size=5 noshade></th>
+ <th><%this_period%></th>
+ <th><%last_period%></th>
+</tr>
+
+<%foreach asset_account%>
+<tr>
+ <td> </td>
+ <td><%asset_account%></td>
+ <td align=right><%asset_this_period%></td>
+ <td align=right><%asset_last_period%></td>
+</tr>
+<%end asset_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>Eszközök összesen</th>
+ <td align=right><%total_assets_this_period%><hr noshade size=2></td>
+ <td align=right><%total_assets_last_period%><hr noshade size=2></td>
+</tr>
+<tr>
+ <th align=left colspan=4>SAJÁT TÕKE<br><hr align=left width=250 size=5 noshade></th>
+</tr>
+
+<%foreach equity_account%>
+<tr>
+ <td></td>
+ <td><%equity_account%></td>
+ <td align=right><%equity_this_period%></td>
+ <td align=right><%equity_last_period%></td>
+</tr>
+<%end equity_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td></td>
+ <th align=left>Tõke összesen</th>
+ <td align=right><%total_equity_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_equity_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr>
+ <th align=left colspan=4>KÖTELEZETTSÉGEK<b><hr align=left width=250 size=5 noshade></th>
+</tr>
+
+<%foreach liability_account%>
+<tr>
+ <td></td>
+ <td><%liability_account%></td>
+ <td align=right><%liability_this_period%></td>
+ <td align=right><%liability_last_period%></td>
+</tr>
+<%end liability_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td></td>
+ <th align=left>Kötelezettségek összesen</th>
+ <td align=right><%total_liabilities_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_liabilities_last_period%><br><hr noshade size=2</td>
+</tr>
+
+
+<tr valign=top>
+ <th align=left colspan=2>KÖTELEZETTSÉGEK & TÕKE ÖSSZESEN</th>
+ <td align=right><%total_this_period%><br><hr noshade size=2></td>
+ <td align=right><%total_last_period%><br><hr noshade size=2></td>
+</tr>
+</table>
+
+
+
diff --git a/templates/Hungarian-bin_list.html b/templates/Hungarian-bin_list.html
new file mode 100755
index 00000000..24440675
--- /dev/null
+++ b/templates/Hungarian-bin_list.html
@@ -0,0 +1,189 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <th align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>B I N &nbsp;&nbsp; L I S T</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% cellspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>From</th>
+ <th align=left width=50%><font color=ffffff>Ship To</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+
+ <%if vendorphone%>
+ <br>Tel: <%vendorphone%>
+ <%end vendorphone%>
+
+ <%if vendorfax%>
+ <br>Fax: <%vendorfax%>
+ <%end vendorfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+
+ <br>
+ <%if shiptocontact%>
+ <br>Attn: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Order #</th>
+ <th width=17% align=left nowrap>Date</th>
+ <th width=17% align=left nowrap>Contact</th>
+ <%if warehouse%>
+ <th width=17% align=left nowrap>Warehouse</th>
+ <%end warehouse%>
+ <th width=17% align=left>Shipping Point</th>
+ <th width=15% align=left>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%>&nbsp;</td>
+
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%orddate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+
+ <%if warehouse%>
+ <td><%warehouse%></td>
+ <%end warehouse%>
+
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Pos</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Serialnumber</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Qty</th>
+ <th><font color=ffffff>Recd</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Bin</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%></td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td><%serialnumber%></td>
+ <td><%deliverydate%></td>
+ <td align=right><%qty%></td>
+ <td align=right><%ship%></td>
+ <td><%unit%></td>
+ <td><%bin%></td>
+ </tr>
+ <%end number%>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+</table>
+
diff --git a/templates/Hungarian-bin_list.tex b/templates/Hungarian-bin_list.tex
new file mode 100755
index 00000000..3d6052f9
--- /dev/null
+++ b/templates/Hungarian-bin_list.tex
@@ -0,0 +1,147 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Recd} & & \textbf{Bin} \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.5\textwidth}{
+\textbf{From}
+\vspace{0.7cm}
+
+<%name%>
+
+<%address1%>
+
+<%if %address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country4%>
+<%end country%>
+}
+\parbox[t]{.4\textwidth}{
+\textbf{Ship To}
+\vspace{0.7cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%if shiptoaddress2%>
+<%shiptoaddress2%>
+<%end shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%if shiptocountry%>
+<%shiptocountry%>
+<%end shiptocountry%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{B I N} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Date} & \textbf{Contact}
+ <%if warehouse%>
+ & \textbf{Warehouse}
+ <%end warehouse%>
+ & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+
+ <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%orddate%>
+ <%end shippingdate%>
+ & <%employee%>
+ <%if warehouse%>
+ & <%warehouse%>
+ <%end warehouse%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Recd} & & \textbf{Bin} \\
+
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%serialnumber%> &
+ <%deliverydate%> & <%qty%> & <%ship%> & <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabularx}
+
+
+\rule{\textwidth}{2pt}
+
+\end{document}
+
diff --git a/templates/Hungarian-check.tex b/templates/Hungarian-check.tex
new file mode 100755
index 00000000..08c95c3d
--- /dev/null
+++ b/templates/Hungarian-check.tex
@@ -0,0 +1,81 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin2]{inputenc}
+\setlength{\voffset}{0.4cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.0cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+
+\fontfamily{cmss}\fontsize{9pt}{9pt}\selectfont
+
+\parbox[t]{12cm}{
+ <%company%>
+
+ <%address%>}
+\hfill
+\parbox[t]{6cm}{\hfill <%source%>}
+
+\vspace*{0.6cm}
+
+<%text_amount%> \dotfill <%decimal%>/100 \makebox[0.5cm]{\hfill}
+
+\vspace{0.5cm}
+
+\hfill <%datepaid%> \makebox[2cm]{\hfill} <%amount%>
+
+\vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{1.8cm}
+
+<%notes%>
+
+\vspace{0.8cm}
+
+<%company%>
+
+\vspace{0.5cm}
+
+<%name%> \hfill <%datepaid%> \hfill <%source%>
+
+\vspace{0.5cm}
+\begin{tabularx}{\textwidth}{lXrr@{}}
+\textbf{Számlaszám} & \textbf{Telj. dátuma}
+ & \textbf{Esedékes} & \textbf{Kifizetett} \\
+<%foreach invnumber%>
+<%invnumber%> & <%invdate%> \dotfill
+ & <%due%> & <%paid%> \\
+<%end invnumber%>
+\end{tabularx}
+
+\vfill
+
+\end{document}
+
+
+
diff --git a/templates/Hungarian-income_statement.html b/templates/Hungarian-income_statement.html
new file mode 100755
index 00000000..e9e4a45d
--- /dev/null
+++ b/templates/Hungarian-income_statement.html
@@ -0,0 +1,82 @@
+
+<body bgcolor=ffffff>
+
+<h2 align=center>
+<%company%>
+<br><%address%>
+
+<p>EREDMÉNYKIMUTATÁS
+<br><%period%>
+</h2>
+
+
+<table width=100% border=0>
+<tr>
+ <th width=400 align=left colspan=2>BEVÉTELEK<br><hr width=300 size=5 align=left noshade></th>
+ <th><%this_period%></th>
+ <th><%last_period%></th>
+</tr>
+
+<%foreach income_account%>
+<tr>
+ <td width=4> </td>
+ <td><%income_account%></td>
+ <td align=right><%income_this_period%></td>
+ <td align=right><%income_last_period%></td>
+</tr>
+<%end income_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td> </td>
+ <th align=left>Bevételek összesen</th>
+ <td align=right><%total_income_this_period%><hr noshade size=2></td>
+ <td align=right><%total_income_last_period%><hr noshade size=2></td>
+</tr>
+
+<tr>
+ <th align=left colspan=2><br><hr width=300 size=5 align=left noshade>RÁFORDÍTÁSOK</th>
+</tr>
+
+<%foreach expense_account%>
+<tr>
+ <td> </td>
+ <td><%expense_account%></td>
+ <td align=right><%expenses_this_period%></td>
+ <td align=right><%expenses_last_period%></td>
+</tr>
+<%end expense_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td> </td>
+ <th align=left>Ráfordítások összesen</th>
+ <td align=right><%total_expenses_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_expenses_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>NYERESÉG / (VESZTESÉG)</th>
+ <td align=right><%total_this_period%><br><hr noshade size=2></td>
+ <td align=right><%total_last_period%><br><hr noshade size=2></td>
+</tr>
+
+</table>
+
+
+
+
+
+
+
+
diff --git a/templates/Hungarian-invoice.html b/templates/Hungarian-invoice.html
new file mode 100755
index 00000000..a7a7198c
--- /dev/null
+++ b/templates/Hungarian-invoice.html
@@ -0,0 +1,303 @@
+
+<body bgcolor=ffffff>
+
+<table width=100% >
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100% >
+ <tr>
+ <td align=center><!--<img src=logo.jpg>--><br>&nbsp;<br>
+ <font size=3><B> SZÁMLA</B></font>
+ </td>
+ </tr>
+
+ <tr>
+ <td align=right>
+ <!-- <%copysum%> -->
+ </td>
+ </tr>
+ <tr>
+ <td align=right>
+ Másolat
+ </td>
+ </tr>
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0 >
+<tr>
+ <td><hr noshade></td>
+</tr>
+
+ <tr>
+ <td>
+ <table width=100% >
+ <tr >
+ <th align=left width=50%>Eladó:</th>
+ <th align=left width=50%>Vevõ:</th>
+ </tr>
+ <tr valign=top>
+ <td><%company%>
+ <br><%address%>
+ <br>Adószám:<%businessnumber%>
+ <br>tel:<%tel%>
+ <br>fax:<%fax%>
+ </td>
+
+
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+<br><%address2%>
+<%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+<%country%>
+<%end country%>
+ </td>
+
+ </tr>
+ </table>
+ </td>
+ </tr>
+<tr>
+ <td><hr noshade></td>
+</tr>
+
+<tr>
+<td>
+ <table width=100%>
+ <tr>
+ <th>Fizetési mód</th>
+ <th>Telj. dátuma</th>
+ <th>Számla kelte</th>
+ <th>Esedékesség</th>
+ <th>Megrendelés</th>
+ <th>Kiállította</th>
+ <th>Sorszám</th>
+ </tr>
+ <tr>
+ <td align=center><%shippingpoint%></td>
+ <td align=center><%invdate%></td>
+ <td align=center><%crdate%></td>
+ <td align=center><%duedate%></td>
+ <td align=center><%ordnumber%></td>
+ <td align=center><%employee%></td>
+ <td align=center><font size=2><%invnumber%></font></td>
+ </tr>
+ </table>
+<td>
+<tr>
+<tr>
+ <td><hr noshade></td>
+</tr>
+
+ <tr >
+ <td height=470 valign=top>
+ <table width=100% >
+ <tr>
+ <th align=right>&nbsp;</th>
+ <th align=left>Áru</th>
+ <th align=left>Megnevezés</th>
+ <th align=left nowrap>VTSZ</th>
+ <th>Menny.</th>
+ <th>&nbsp;</th>
+ <th align=right>Nettó egységár</th>
+<!-- <th><font color=ffffff>Disc</th> -->
+ <th align=right>Nettó összeg</th>
+ <th align=right>ÁFA%</th>
+ <th align=right>ÁFA összeg</th>
+ <th align=right>Bruttó összeg</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+ <td align=center><%runningnumber%>.</td>
+ <td nowrap align=left><%number%></td>
+ <td nowrap align=left><%description%></td>
+ <td nowrap align=center><%bin%></td>
+ <td align=center><%qty%></td>
+ <td align=center><%unit%></td>
+ <td align=right><%netprice%></td>
+<!-- <td align=right><%discount%></td> -->
+ <td align=right><%linetotal%></td>
+ <td align=right><%linetaxrate%></td>
+ <td align=right><%taxamount%></td>
+ <td align=right><%linetotal2%></td>
+ </tr>
+<%end number%>
+
+<!--
+you can also use netprice instead of sellprice if you
+don't want to show the discount
+netprice = sellprice - discount
+to show the percentage for a discount use <%discountrate%>
+-->
+
+ <tr>
+ <td colspan=11><hr noshade></td>
+ </tr>
+
+ <tr>
+<%if taxincluded%>
+ <th colspan=9 align=right>Total</th>
+ <td colspan=2 align=right><%invtotal%></td>
+<%end taxincluded%>
+<%if not taxincluded%>
+ <th colspan=9 align=right>Nettó összesen</th>
+ <td colspan=2 align=right><%subtotal%></td>
+<%end taxincluded%>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=9 align=right>alap: <%taxbase%> ráta: <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+<%end tax%>
+
+<%if paid%>
+ <tr>
+ <th colspan=9 align=right>Fizetve</th>
+ <td colspan=2 align=right>- <%paid%></td>
+ </tr>
+<%end paid%>
+
+ <tr>
+ <td colspan=6>&nbsp;</td>
+ <td colspan=5><hr noshade></td>
+ </tr>
+
+ <tr>
+<!-- <td colspan=6>Fizetési határidõ: <b><%terms%></b> nap</td> -->
+ <th colspan=9 align=right>A számla végösszege:</th>
+ <th colspan=2 align=right><%total%>&nbsp;Ft</th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100% >
+ <tr valign=top>
+<%if notes%>
+ <td><b>Megjegyzés:</b>&nbsp;<%notes%></td>
+ <td ></td>
+<%end notes%>
+ <td align=right>
+<!-- All prices in <b><%currency%></b> Funds -->
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<%if paid%>
+<tr>
+ <td colspan=7>
+ <table width=60% >
+ <tr>
+ <th align=left>Fizetések</th>
+ </tr>
+ <tr>
+ <td colspan=4>
+ <hr noshade>
+ </td>
+ </tr>
+ <tr>
+ <th align=left>Dátum</th>
+ <th align=left>Számla</th>
+ <th align=left>Bizonylatszám</th>
+ <th align=left>Összeg</th>
+ </tr>
+<%end paid%>
+
+<%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td><%payment%></td>
+ </tr>
+<%end payment%>
+
+<%if paid%>
+ </table>
+ </td>
+</tr>
+
+<tr>
+ <td>&nbsp;</td>
+</tr>
+<%end paid%>
+
+<tr>
+ <th colspan=7>
+<!-- <br>Thank you for your valued business! -->
+ </th>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100% >
+ <tr valign=top>
+ <td><font size=-3>
+<%intnotes%>
+ </font>
+
+ </td>
+ <td width=150>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+<%foreach tax%>
+ <tr>
+<!-- <th colspan=7 align=left><font size=-2><%taxdescription%> Registration <%taxnumber%></th> -->
+ </tr>
+<%end tax%>
+
+<%if taxincluded%>
+ <tr>
+ <th colspan=7 align=left><font size=-2>Taxes shown are included in price.</th>
+ </tr>
+<%end taxincluded%>
+
+
+
+
+<!-- banking information
+ <tr>
+ <th colspan=7 align=left>Banking Information:
+ <br>Bank
+ <br>Transit No.
+ <br>Account No.
+ </td>
+ </tr>
+-->
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Hungarian-invoice.tex b/templates/Hungarian-invoice.tex
new file mode 100755
index 00000000..85485185
--- /dev/null
+++ b/templates/Hungarian-invoice.tex
@@ -0,0 +1,280 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% %%%
+%%% Szamla - LaTeX sablon v. 1.01 %%%
+%%% Kovacs Laszlo -- lakovacs@inf.unideb.hu %%%
+%%% %%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%
+%%% 2003.10.31.
+%%%
+%%%
+
+
+\documentclass[twoside]{article}
+%\documentclass[twoside]{scrartcl}
+% \usepackage[frame]{xy}
+\usepackage{tabularx}
+%\usepackage{graphicx}
+\usepackage[latin2]{inputenc}
+
+
+
+\setlength{\voffset}{-0.5cm}
+\setlength{\hoffset}{-2.5cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+
+\newcommand{\PAR}[1]{\texttt{\upshape <\%#1\%>}\typeout{#1}}
+
+
+\begin{document}
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+
+\newsavebox{\headright}
+\sbox{\headright}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+ \parbox{\textwidth}{
+ \begin{center}
+% \includegraphics[scale=1.0]{/tmp/logo_04.eps} \\[.3cm]
+ {\large\bfseries SZÁMLA} \\
+ \end{center}
+
+ \mbox{}\hfill <%copysum%> \\
+ \mbox{}\hfill <%copynumber%>
+ }
+}
+
+\newsavebox{\headleft}
+\sbox{\headleft}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+ \parbox{\textwidth}{
+% \includegraphics[scale=.5]{/tmp/logo_04.eps}
+ \hfill <%invnumber%>\\[-3mm]
+ \rule{\textwidth}{.5pt}
+ }
+}
+
+
+
+\markboth{}{\usebox{\headright}}
+
+\pagestyle{myheadings}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\fontshape{n}\selectfont
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+}
+
+\rule{\textwidth}{1.5pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{X@{ }r@{}}
+ \textbf{Részösszeg} & <%sumcarriedforward%> \cr
+ \end{tabularx}
+
+\newpage
+
+\markboth{\usebox{\headleft}}{\usebox{\headleft}}
+
+\mbox{}\vspace{.5cm}
+
+\rule{\textwidth}{1.5pt}
+
+\vspace{.3cm}
+
+{\scriptsize
+\begin{tabularx}{\textwidth}{>{\hsize=0.4cm\centering}X@{\ }
+ >{\hsize=0.9cm\raggedleft}X@{\ }
+ >{\hsize=1.9cm\raggedleft}X@{\ }
+ >{\hsize=2.9cm\raggedleft}X@{\ }
+ >{\hsize=1.9cm\centering}X@{\ }
+ >{\hsize=0.9cm\centering}X@{\ }
+ >{\hsize=0.5cm\centering}X@{\ }
+ >{\hsize=2.0cm\raggedleft}X@{\ }
+ >{\hsize=2.0cm\raggedleft}X@{\ }
+ >{\hsize=0.8cm\raggedleft}X@{\ }
+ >{\hsize=2.0cm\raggedleft}X@{\ }
+ >{\hsize=2.0cm\raggedleft}X@{}
+ }
+ \textbf{no} & \textbf{Márka} & \textbf{Áru} & \centering\textbf{Megnevezés} &
+ \textbf{VTSZ} & \textbf{Menny.} & \textbf{u} &
+ \textbf{Nettó egységár} & \textbf{Nettó összeg} & \textbf{ÁFA\%} &
+ \textbf{ÁFA összeg} & \textbf{Bruttó összeg}
+ \cr
+ & & \textbf{elõzõ oldalról} &
+ & & &
+ & & &
+ & & <%sumcarriedforward%>
+ \cr
+<%end pagebreak%>
+
+\mbox{}\vspace{3.5cm}
+
+\rule{\textwidth}{1.5pt}
+
+\vspace{3mm}
+
+\hbox to\hsize{
+\begin{minipage}[t]{9.5cm}
+\textbf{Eladó:} \\
+<%company%>\\
+<%address%>\\
+Adószám: <%businessnumber%>\\
+tel: <%tel%>\\
+fax: <%fax%>
+\end{minipage}
+\hfill \
+\begin{minipage}[t]{9.5cm}
+\textbf{Vevõ:} \\
+<%name%>\\
+<%address1%>\\
+<%if address2%>
+<%address2%>
+<%end address2%>\\
+<%city%> <%state%> <%zipcode%>\\
+<%if country%>
+<%country%>
+<%end country%>
+\end{minipage}
+}
+
+
+\vspace{5mm}
+
+\rule{\textwidth}{1.5pt}
+
+\vspace{3mm}
+
+\hspace{-3mm}
+\begin{tabularx}{\textwidth}{>{\hsize=2.1cm\centering}X@{\ }
+ >{\hsize=2.8cm\centering}X@{\ }
+ >{\hsize=2.8cm\centering}X@{\ }
+ >{\hsize=2.8cm\centering}X@{\ }
+ >{\hsize=3.4cm\centering}X@{\ }
+ >{\hsize=2.5cm\centering}X@{\ }
+ >{\hsize=2.0cm\raggedleft}X@{}}
+ \textbf{Fizetési mód} & \textbf{Telj.~dátuma} & \textbf{Számla kelte} &
+ \textbf{Esedékesség} & \textbf{Megrendelés} & \textbf{Kiállította} & \textbf{Sorszám}
+ \cr
+ <%shippingpoint%> & <%invdate%> & <%crdate%> &
+ <%duedate%> & <%ordnumber%> & <%employee%> & <%invnumber%>
+\end{tabularx}
+
+
+\vspace{5mm}
+
+\rule{\textwidth}{1.5pt}
+
+\vspace{3mm}
+
+\hspace{-3mm}
+{\scriptsize
+\begin{tabularx}{\textwidth}{>{\hsize=0.4cm\centering}X@{\ }
+ >{\hsize=0.9cm\raggedright}X@{\ }
+ >{\hsize=1.9cm\raggedright}X@{\ }
+ >{\hsize=2.9cm\raggedright}X@{\ }
+ >{\hsize=1.9cm\centering}X@{\ }
+ >{\hsize=0.9cm\raggedleft}X@{\ }
+ >{\hsize=0.5cm\centering}X@{\ }
+ >{\hsize=2.0cm\raggedleft}X@{\ }
+ >{\hsize=2.0cm\raggedleft}X@{\ }
+ >{\hsize=0.8cm\raggedleft}X@{\ }
+ >{\hsize=2.0cm\raggedleft}X@{\ }
+ >{\hsize=2.0cm\raggedleft}X@{}
+ }
+ \centering\textbf{sz.} & \raggedright\textbf{Márka} & \raggedright\textbf{Áru} & \raggedright\textbf{Megnevezés} &
+ \centering\textbf{VTSZ} & \raggedleft\textbf{Menny.} & \centering\textbf{egys.} &
+ \raggedleft\textbf{Nettó egységár} & \raggedleft\textbf{Nettó összeg} & \raggedright\textbf{ÁFA\%} &
+ \raggedleft\textbf{ÁFA összeg} & \raggedleft\textbf{Bruttó összeg}
+ \cr
+<%foreach number%>
+ <%runningnumber%> & <%partsgroup%> & <%number%> & <%description%> &
+ <%bin%> & <%qty%> & <%unit%> &
+ <%netprice%> & <%linetotal%> & <%linetaxrate%> &
+ <%taxamount%> & <%linetotal2%>
+ \cr
+<%end number%>
+\end{tabularx}
+}
+
+\rule{\textwidth}{1.5pt}
+
+\hbox to\hsize{
+\hspace{8.4cm}
+\begin{minipage}[t]{11cm}
+
+\rule{10.6cm}{1.5pt}
+
+\vspace{.2cm}
+
+\begin{tabularx}{10cm}{>{\hsize=7cm\raggedleft}X>{\hsize=3cm\raggedleft}X}
+%\textbf{Total} & <%invtotal%> \cr
+\textbf{Nettó összesen} & <%subtotal%> \cr
+<%foreach tax%>
+\textbf{Alap:} <%taxbase%> \textbf{ráta:} <%taxrate%> & <%tax%> \cr
+<%end tax%>
+<%if paid%>
+\textbf{Fizetve:} & -<%paid%>
+<%end paid%>
+\end{tabularx}
+
+\rule{10.6cm}{1.5pt}
+\begin{tabularx}{10cm}{>{\hsize=7cm\raggedleft}X>{\hsize=3cm\raggedleft}X}
+\textbf{A számla végösszege} & <%total%> \textbf{Ft}
+\end{tabularx}
+
+\end{minipage}
+}
+
+
+\vfill
+\vspace{1cm}
+<%if notes%>
+\textbf{Megjegyzés:} <%notes%>
+\vspace{1cm}
+<%end if%>
+
+
+<%if paid%>
+\textbf{Fizetések:}
+
+\rule{12cm}{1.5pt}
+
+\vspace{.2cm}
+
+\begin{tabularx}{12cm}{@{}>{\hsize=2.9cm\centering}X@{\ }
+ >{\hsize=2.9cm\centering}X@{\ }
+ >{\hsize=2.9cm\centering}X@{\ }
+ >{\hsize=2.9cm\raggedleft}X@{}}
+ \textbf{Dátum} & \textbf{Számla} & \textbf{Bizonylatszám} & \textbf{Összeg}
+ \cr
+<%end paid%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%payment%>
+ \cr
+<%end payment%>
+<%if paid%>
+\end{tabularx}
+<%end paid%>
+
+\vspace{1cm}
+
+<%intnotes%>
+
+\end{document}
+
+
+
diff --git a/templates/Hungarian-logo.eps b/templates/Hungarian-logo.eps
new file mode 100755
index 00000000..3a22b2ff
--- /dev/null
+++ b/templates/Hungarian-logo.eps
@@ -0,0 +1,1334 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: GIMP PostScript file plugin V 1.17 by Peter Kirchgessner
+%%Title: Brazilian_Portuguese-logo.eps
+%%CreationDate: Thu Aug 31 19:25:05 2006
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 2
+%%Pages: 1
+%%BoundingBox: 14 14 415 215
+%%EndComments
+%%BeginProlog
+% Use own dictionary to avoid conflicts
+10 dict begin
+%%EndProlog
+%%Page: 1 1
+% Translate for offset
+14.173228346456694 14.173228346456694 translate
+% Translate to begin of first scanline
+0 199.99842519685043 translate
+399.99685039370081 -199.99842519685043 scale
+% Image geometry
+400 200 8
+% Transformation matrix
+[ 400 0 0 200 0 0 ]
+% Strings to hold RGB-samples per scanline
+/rstr 400 string def
+/gstr 400 string def
+/bstr 400 string def
+{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop}
+true 3
+%%BeginData: 80402 ASCII Bytes
+colorimage
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+fDblg6K\=Q"WB-W4?Pdo4p6+l]&ih]rrrDpij);hp&GL',"Q[#Lmt]mi:-UBo)Ajlp>C')q#Ca-
+0OT-[R^UZ0q#:3k!rftBr;[*-4`Pt>]\`;[p&>'%-iO)I,T-[I!!OC1jn&BKnc&dlp#<8P%e]l2
+"!U9TI#+8tb2Ddcrq6:-g3RO66TZkO/89R1ak>G'lMCDUrVc`p_uG5~>
+fDc3-AgAK<(`*r''GKsK"r/C?3]oMfm61YtOLjQNo`#*op#<8P%e]l2"!U9TI#+8tb2Ddcrpp'l
+rq>8m&GZ;5#V]Y2L75R!lM1AVrrW28$N0r1#!HsURCqDKrq69l[jV.T![JWbkPtc,R-!r:rpg!l
+rq59V:(Hst$j.\EE.!J2ZHD+pqYp0f(YX1N<'rc'0emR!XjZ4ijR;sBr;HTnrknbd~>
+fDc6;J3>hE.46Gg,U"<#*sNl<2EEr_4mbE9G`]Muqt0mlrq59V:(Hst$j.\EE.!J2ZHD+pqYp'c
+"TJ,QFV+?K$4&=nG_VZqdd$W,r;Qit^^C#?#R3G3J!mt+o`"O`!OjHU!!4D`!pBUf*LPs[qu6-c
+"oe2SZ;(o'!"8rR88rs4S$L2pnG<.WrtjC8CK*Y`2)R41LpG[tlg+-<qu$Ekrr0h8J,~>
+gA_6CM^RKa#SJU[Cl4ICR$dH4"J2pKnc&.[#laS]ca8*s2'Dku%L*7S1/_:`E/L-e^<lNJn,*ps
+lGB9$.1d!s#n@h2C5&"Yb2DgerqcX(q78g7,slHqMPJ)Jp&4[cs*k'%9)\er&Pd:_DG`D6!pTal
+;j3B4I=8["q>L$e)ZKKoca5M5$jR7P',DcW=EAnFP+oA,h<ak4r;@'%mG5jnSV:rb4tRZYo)K.6
+.77QqVp"]-r;HW:s*t~>
+gA_WSXCb's7mAmd0J>%2/aY(p3(dS&NKf`rR.?XJT!Hl9rq$..rqGU%[!bb.+:/;Z%M^0O>@_Mp
+OJ9/'f_#".r"](qb,Jl)'b_,j)_+BrKpT$di:6^DqYq$#\j.Db6>_(,UVl'`rV6EmU]HuXrW!3>
+=ES\+<]_9&l2V,jVQ@/!U<E9+rV$70rqGU%Zq25S%MBBi(a_LMF+&e+U:&/"m.U>Sr=/\qk1@he
+W0`?`B2UiFr@A%'1d4D,8ded6G`JT6f_#";rVjq=J,~>
+gA_WV`KPh&H>[%h;Gg7d:@1a]<FBcqNg,isR.?XJT!Hl9rq$..rqGU%[!bb.+:etm&f`Dk@V^"7
+Q)D4<h=UO3r"](rd'%+>(`!f$,WA_DKpT$di:6^DqYq$#\j.Db6>_(,UVl'`rV6Em^B(K0rW!3B
+@!Hj=>!*c+l2V,lZbFJn^"N,TrV$70rqGU%Zreh$',D<")CRjQF+&e+U:&/"m.U>Sr=/\tmGcjE
+_7$G9OF(D5rCmAj>ASW`J.%6uT<>oSiV!$ErVjq=J,~>
+h#@HEIh:?7#Tc9FPJ##]c-H(0"4GulqXORjrqc-Bc+C!IjT#8`m/R?)T"N_Cq#1!f%/obL[[`MH
+U:8M5p\spee,TVcf]W#.pAY9pqXED]p&G=-'G_N()]Tmq*WQH&!!iZW>`-Jlq#(-9s*t~>
+h#@HJUfI@c"%YgF4l\X1;/(]X^WF^EcM,WedbO6dnc'C(qXEFf];hGR.Olks.P*2,2*!ie7S*/D
+!)3/["\;$E2D?]].L7OVFe67umJ-YTrs\ksfX@<5QD1k8kkG)Nrt@jG!<<*#(b-sc0JtaF0Ie1Z
+$3BMo#oYim84nopkP+uLrtbV1nDI&"0eP",.Ochs/1rtM85<,d>l%b,:\RH`84>d,rB(0F5Xe6:
+8dJ+(MQ5+sq#(-9s*t~>
+h#@HM^PMi="+56/C#`k4FbQ3b_9'pGcM,WedbO6dnc&ppqXEFf];hGq8cD6f8P;iZ>@VDgG^Y)7
+J,k2sJ.d?ZFD5#[9h@lH8ksi,]\)WHrV6C$rUSULS<B24\'X@5rqHF+H9;6/!!+Q@7nZfd?<U9"
+2^8k8m/RGEAorHOWS$D.rq??urqc-BFC%sC91f+R$;!ld>@_PnIYEZ=qi1Z0pOE?oG].?qBEN!f
+G^]78#_J8?^teSWr;Ot@J,~>
+h>[MB'\!*i,YiZYa62mZnF?&JncSOYqu6'a#Q=GfkM4KR)UeZi*-S.$mJQYW$N0GOcGmrTj73!F
+p\t6"ec5mb/8hc?meueX"TA*n,R_Hh#7aOmh":IArmCar~>
+h>[M`=SbYi8,u0:7LELMS$gZ-mdKZ8nc&(]o_87^n,EXkq!mP&dV;DR3!VH*4[;>&7nDf8%S9,W
+5<Lqc3BBc^Us&0'p&>Bsn__X3aOK8?qYp6h!OE+3!##DT-n$]+5!hV'5!1e]0J"C`$j,nu#UVT+
+?\Yl5meueX#Q=FJ>Xpq<3W:uC3BKAh6:FC8lq.=N84WVJ!_5dQmn*g`J?Io(qYgE@s*t~>
+h>[N!MYho*Isl\"H4#P$Zc1S]mdKZ8nc&(]o_87^n,F("q!mP&dY;XJ@:E_XBl7s8H[^J.J.@!Q
+F)5K!@U`kaL8<#[r:U'sr:/[i`lQZinbW7ZrrKG;rW!T71dso2?>FS'EGT5p>#S'T-5?[R!!rZm
+AU&loZI&%<o`#U'pn<@]Bk:d_@:E_XBl7s8H[^J4J-(4LI/A3kI"$S7J-Uh)_rgUfrVk4EJ,~>
+hu<`75k=sc"VrFC5tXgF:/4DF.i/9O!!*]Ur]C="me$ATli.:jr:opKd%Y/9'&!<k"#=J;Ni^b$
+rq-3qrV,jMn+?JTpAY,>f)Q'a;0.S\XNp84o)Asihn"ng;)Ad$!!WNiQK@f9rmUmt~>
+hu<`@GOnE:9Mnkt@V0:fC2.Hn>Z4;[8dSO+F*)Mgme$ATli.Fnr:opKd&28#:.@`E8`E>N8Ou<>
+7TaSXNi^b$rq-3qrV,jMn+?JTpAY,>qu@NQ,q(K/6:XU>84Z3<69dRl1bgU.)%[&F!!j*8F,?6b
+cL1Z%rseb\\s@h_>t[RS7Rp!@b";k3FKjs$qYntDJ,~>
+hu<`GT_![<IscQgH[C/>IKP(MIt-[4!Jlg9S-6.co_SRQrso&+q"3gtWf)=NG^=adJ)l+hIsu`i
+GBS%NIZCMZo)A:]#Q=DemdKfErV$6kHi3pL!AZo0<+U)rrdG<'H$++DB44tC:-L3L%.jN*&m043
+Q`SL#rUTsuptrZOMLp5#G'A1WI"$RgJ-LRo_WgairmUmt~>
+i;Wha&G?)3"X69@G^kI,P*_]1rh'IfS=#7L5SE5[">J!QnGMJL#l<l9^9FDd9H)af#qBJ1L7#-c
+jnSiGs8Drirr@!8!!4`+#i,Ic89UN4bi8<po)B'omao@cYc+.?63tL0"V>7hnG)t4s*t~>
+i;Wi"<VB#m9N5D9G^kI,P*_]1rh'IfS=#CdBN""c"DGs4nGMJL#l<l9^9FDnE)tgf$!(hdL7#-c
+jnSiGs8Drirr@!8!!Y&=.ks.S8GYpg8Ou<=69dRm2)6d5*"E#D!!c&<S@?`%p&=O^$N'8C_mckK
+Sr%2W`(C25NR[ImrRLpu~>
+i;Wi2M"Z?,IsQ9]G^kI,P*_]1rh'IfS=#ItL4SN<"H^d\nGMJL#l<l9^9FE!MLs]8$$^E6L7#-c
+jnSiGs8Drirr@!8!!b/H79+#EI=M0F%tB%UH$44GBOY4I:e*2V!qu["89UN4bi8<po)B$nmao@c
+Yc+.WLr4`HL9'%tq#/bCJ,~>
+iVrn9p&GO<7W!I+P+J\^^;eCEe,@c%d`oeFZDDb'!pTag,b;X/qWIkdrqc0Li7?&`XFWVBirBDi
+9lbcMYfPVcpAO"N!/(1L";kW^EBr@\#!RdOh!Xn6nc'!rqXWt6i7cW"\Y):S!"&cA/3cp6C2SKO
+KDgH,J9#$l1DK9X"TqW;mJ$S2s*t~>
+iVrnZp.>ck@;pOIP+J\^^;eCEe,@c%d`oeFZDE@g9Bo+P>b/RgqWIkdrqc0Li7?&`XH.-lj%9YP
+@WI!bYfPVcpAO"N!/(1L"rLi`F'qF.oh#Wa84H$85Wq.e1Fs:Bq#CU_L:H%,pAFI\$i^"nlfI'Y
+d`8noDWsb":g%1=D00uNJV3oS"bM/FCg^008d.n<bO,'&fDg@~>
+iVrnsp4*U"FE;b_P+J\^^;eCEe,@c$d`oeFZDEhBl$rniS\=([kPkqhqXNh.f#kY,R>QRUJ-pdG
+Ee'I[aP?+TrSmhWKDY]R(h76%G^"W1J.7!WI!U!XDe`ij=A("Cq#CU_L:H%,pAFI\$i^"nlfI'Y
+d`8nsNp2'#I!U'`H[L9mJV3fP!J>skJ-CLtdd?f-fDg@~>
+ir9!spAb^?;KRDLTsM\cguRbgo(;VSp'^Qco'Yc%fZLdo7Ki&X"<E/rh"^"2$i^)#p@.8#cFooT%
+d!`u!`F)pUr;*Wq#(-NrrL.Cqu?puFHE]?JdCT@!=T>3!!P?@^Ztarn,NFe$N9o!q"4":g;nL?m
+f3e)/l6J6KT).cU8P&qZM_'8Za$U.SV:/k!q?6o"'3Y5q#/nGJ,~>
+ir9"HpIYrnA9<<^TsM\cguRbgo(;VSp'^Qco'Yc%fZLduDbTLi"B:&Th"^"2$i^)#p@.8#cFp'#
+;<:CVA93O%`80kVr;P^U!QP?@!!Z;BOKZBc:@Up_8Ou?@6pX!s/dhFT"ZVIUlMUYMs8W'*rVZNe
+o^:kqaHB6c8e"NtATN6PN0Kj,VlR#,r3Qa9Z)jdmNceQ!nO`sYK$s&]rRq4$~>
+ir9"fpOEd$EccelTsM\cguRbgo(;VSp'UKbo'Yc%fZLe&NpD2uI>"ZVpuVM`rquWdnE8TP]r@0H
+ja[YVF,-R0h<t(9ro3qY`ru;?##TK(YJ-renph'sIXHKeF`;))8.,1n"ZVIUlMUYMs8W')rVZNe
+o^:kqaJJ<T%=WPDFaSk$PanJGX08i,Zj3qBXJMJOMM(DK"bEE!mJ-Y5s*t~>
+j8T+/p](g,5&bn2VnUU<m.C)NrVlflrsA]'qY'F@fZ'=>m/R8.I&>WmiVs5`r:ojHg;p9k"R#gj
+/ocWFcKY*%hu<[5qu@!=E/1aQlJS-;lMq#'>>b\&!!G<<]''%TrrrE"p[6mkmf3eaEIa7KZG+E,
+f%Ss<iqqdCini>8aLn[:8e(:j"Uoe:nG<.=s*t~>
+j8T+Tpdu&i?>t:RVnUU<m.C)NrVlflrsA]'qY'F@fZ'_$m7ILZI&>WmiVs5`r:ojHg;pF@9^#(R
+=E0(pcKY*%hu<[5qu@!=E/1aQlJSa>m7IOQ7nd5e#5\B'3Jb90rTF1arquNYhOa1.%:=+*PGGLu
+aO&Mlh;I;ij9ai&f[7dQY*X*(nO`s^Rc*]3rnII'~>
+j8T+opj`m)FDuVhVnUU<m.C)NrVlflrsA]'qY'F@fZ'tOm=>4a!iF]HiVs5`r:ojHg;pR`J`qUh
+G&`89cKY*%hu<[5qu@!=E/1aQlJT4*mXPLjI=$!B;?m!u"?D:LkPaTD"oeGombY5;J.6R>J<Qe7
+^<"[Pg>1]HqrA(ChUp5s]WRfaK(4?pKWsD(qYo7LJ,~>
+jSo4Pp]([*;KIM`][l<<qYgE_rs/Q#p?^YWLDTCZ"<2`cgA'P)#QFYqmblB\-0YC6>'usdm/$_=
+rrBP*!!kT/R`b'rq!(]B!!Ea>Fbj)q!!G98[cRGJrr`5pkZ@6R$q,K5^XhE/n+?>Kq>0sc$iBep
+o^D##d_Vqg$1Ruu1qr/HrS7F'~>
+jSo4lpdtofA93Er][l<<qYgE_rs/Q#p?^YWRTJrM"B'WEgA'P)#QFYqmblBh?g1/eApg5pm/$_=
+rrBP*!!kT/R`b'rq!*=p8d%n&Fbj)q!!G98[cRGJrr`5pk_&@s$t+IQ^XhE/n+?>Kq>0sc$iBep
+o^D##d_W#4:[q$[C;oB0rS7F'~>
+jSo5+pj`a%E-$])][l<<qYgE_rs/Q#p?^YWVhOSis*OmFgA'P)#QFYqmblBpMWoWqE.";%m/$_=
+rrBP*!!kT/R`b'rq!+O=J-::;Fbj)q!!G98[cRGJrr`5pkbIWt%!?rf^XhE/n+?>Kq>0sc$iBep
+o^D##d_W)NK(4?oP02t]rS7F'~>
+jo5A)"Si$(!`*lnWQXDqqu5m\"o\5`gq6>M!!F6gVV:h"rrrAsnDM>llMq(oE/M0dqVD/O@/Bp0
+:4TD#q#CBc$g[ir:N_`*_YX<98;=S8r8[eZrqbC[nGie`KsKM+qYgE`rs8W%q=En-bcF/$!!Emu
+hXUO"s*t~>
+jo5A8:&%<d@WR@)bN8Bnrp'LerV5d8^NT*="B'WEgA'G&"o\8di5gH78d.n-MR_aDh>[I_qZ$ms
+J?.K#s8Vailq.CiFcWoHqZ$aiL:67Bj8T5\qVbBC8dAgZZJ>*KrVl?e#labtoBP/UY]'&("B;;U
+nbh5CJ,~>
+jo5ACK(sj%EH?r8bN8Bnrp'LerV5d8_Ns\As*OmFgA'G&"o\8di5qMTJ-CC@MR_aDh>[I_qZ$ms
+J?.K#s8VhIm!o4YFcWoHqZ$aiL:67Bj8T5\qW*D$J-U7OZJ>*KrVl?e#labtoBP/U[#jg."GO5>
+nbh5CJ,~>
+k5PJR,kq?E0QDiId-UW.k5PV`pZg:]#k@ru)gnO:pt>ZLrV5d'lMq))FI()<rn[SS./NuL;i%sG
+r;Zf#li724E/(OJn,!(f@Z%e]rSdbWq.K3t"@e6Zkl'iI#QF\snD_`I&Fof)!cuoZqYoCPJ,~>
+k5PJUAGAb%=`K1rd-UW.k5PV`pZg:t:@_![;LG@qpt>ZLrV5d,lUh=XFI()<rn[SS./NuL;i%sG
+r;Zf:lq.F\E/(OJn,!(f@Z%e]rSdbWq2t2>"Cd5!kl'iI#QF\snD_`^;t<Na99@]kqYoCPJ,~>
+k5PJXP5'P4G&`8:d-UW.k5PV`pZg;0K(=HlHig2!pt>ZLrV5d/l[T.cFI()<rn[SS./NuL;i%sG
+r;ZfKm!o7bE/(OJn,!(f@Z%e]rSdbWq60=="EoX5kl'iI#QF\snD_`mK^jQqV:Fu0rnma+~>
+k5PF"p](L*BRZZ!mJGrD"oeDjiMmgf!!F0eVV:gsrrN&8lMq&+H(`XZh#@?rqZ$k"N5+ZVs8Q?j
+!!Q)BSBL?equ?m=Eg"B.ro*kXrl=O/"@e9\kl'`F"o\8dhQ\Bs!!HlYlM:G;s*t~>
+k5PFLpdt`bCOVu$mJGrD"oeDjiO)k\8d&%>VV:gsrrN&GlUh:XH(`XZh#@?rqZ$k"N5+ZVs8S#D
+8d/[LSBL?equ?m=Eg"B.ro*kXrmgO2"Cd8#kl'`F"o\8dhR[+b8d'molM:G;s*t~>
+k5PFjpj`QtDLS;'mJGrD"oeDjiP(->JH'uuVV:gsrrN&Rl[T+bH(`XZh#@?rqZ$k"N5+ZVs8T7g
+J-Bt=SBL?equ?m=Eg"B.ro*kXro!<s"Eo[7kl'`F"o\8dhS>'>J-;FglM:G;s*t~>
+kPkS3"S_s#20=tpk5+$9"TJ2]^*iOQ":fgUf_F%t!35tt!'9TL";cE\f_=2$!$D(<#<RmZlM^bS%
+.+$!"`9"#i;'/G!!Q&BT[NK3i;WiT(@hG.7Z+hArT=+_rV5[#2XpbM@a"$3ro*m-~>
+kPkS@:&%<a>',n@k5+$9"TJ2]`a\R4"AX?@f_F%t!5e\,!*o"c"AsNAf_=2$!$D(<#<RmZlM^bV
+;XI'\9Q#Tki;'/G!!Q&BT[NK3i;WiT=n5/f@Z%e]rT=+_rV5[&D"1+#K$3ESro*m-~>
+kPkSIK(sj"F``b[k5+$9"TJ2]bDl.E"Fb`pf_F%t!7^st!-I^\"FPQlf_=2$!$D(<#<RmZlM^bY
+L@'KqIrC(Ji;'/G!!Q&BT[NK3i;WiTMXl9#G)EoqrT=+_rV5[)P4=&*R`jskro*m-~>
+kPkNYpAbA&J#Lukrnm_Yrql000(f2I%==l%p=B6DL]%2RB-$LB":TXQf_=2$!)ECk"qZO!jo#.R
+qu?^*nc/k8FHjf4nKe&5"X%c?[Ggu>rrN*rnc/e^MS&*Njo5J_qsi8tnGiZ+b3A`\s*t~>
+kPkO6pIYU&J#Lukrnm_Yrql04BD"k":4&bfp=B6DWr5NjCfU!t"AX<>f_=2$!)ECk"qZO!jo#.m
+r(6rank'*bFHjf4nKe&5"X%c?[Ggu>rrN+Nnk'$oMS&*Njo5J_qsi<VnO`n<b3A`\s*t~>
+kPkO\pOEEdJ#Lukrnm_Yrql06OS+,,IX@jAp=B6D_u5)dDgh/+"Fb]nf_=2$!)ECk"qZO!jo#/+
+r."crnpgpjFHjf4nKe&5"X%c?[Ggu>rrN+snpgjdMS&*Njo5J_qsi@(nUL_1b3A`\s*t~>
+kl1Y/pAb@.EK%Qnr7q;Sr:88hp&G4)HD/m_f)G_`rW!!*Ea8)6"*C6ep>#ZJV"t&p5cE<-r_37j
+!=D?f!!P$%U"&U2r;[$/@XF`ln,;,C!.j\@"@e9\kl'QA"9%lB.e3QB!e8G\qVqO*~>
+kl1Y=pIYTbEK%Qnr7q;Sr:8EPp.>H_HD/m_f)G`7r^m5cEcUYA"*^Hhp>#ZJV"t&p5cE<-rdar>
+!DQtm8d/@DU"&U2r;[$/@XF`ln,;,C!2]6Y"Cd8#kl'QA"9%lFAb&Fr99IHbqVqO*~>
+kl1YGpOEEpEK%Qnr7q;Sr:8L&p4*9pHD/m_f)G`WrdY'!Ee<e2"+$Zkp>#ZJV"t&p5cE<-rhfXE
+!If+\J-C.CU"&U2r;[$/@XF`ln,;,C!5J)T"Eo[7kl'QA"9%lHOR[i'T?QZuir=N~>
+kl1WbpAb@BG+-\GrnIGTrUeS^pAb=*H(`[\f)G_;rW!$:G*F0?!!?8jch#rl!V\&>!!H?;jlQ^E
+!!+i]nc/eTJ?-URr;[$*<d'Y=jS@X3!28r`"@e9\kl'N@"9.u;'Cl,+%[ti7r8[g-~>
+kl1X=pIYThG+-\GrnIGTrUe`LpIYQ`H(`[\f)G_rr^m8iG*H;&8crmuch#rl!V\&>!!H?;jm,V=
+8c`(1nk'$jJ?-URr;[$*<d'Y=jS@X3!5.kp"Cd8#kl'N@"9.uC<q8ic;52M-r8[g-~>
+kl1XapOEElG+-\GrnIGTrUeg&pOEBqH(`[\f)G`ErdY)uG*IjRJ-1.ech#rl!V\&>!!H?;jmRd!
+J,sh8npgjdJ?-URr;[$*<d'Y=jS@X3!714d"Eo[7kl'N@"9.uHM"6'!Ju6ubr8[g-~>
+l2LeM"SVm!3.7[VpY#QKrq4GJp](F&GbER[f)G^mrW!$IHD#o\!!G-A`U3Z\rrW/;#PnE%4hQFF
+!!6GR!qQBo7=\hVr;['0<csA,g@YC#rrBe(!!GcK]BK4PrrW2mU@A3d/?mh"roF*0~>
+l2LeS:%q6_>^`L%pY#QKrq4]?pdtZ_GbER[f)G_Xr^m8nHD$eu8d&I``U3Z\rrW/;#PnE&4hRFY
+rCR-)I7s0("(?^h%K-83$<D;.ZJ+sMh>[K%nk'$oMS&*NiVruYosaH`"CSIeo`!qOJ,~>
+l2LeWK(jcuG($7?pY#QKrq4lupj`KrGbER[f)G`3rdY)qHD%D1J-:7_`U3Z\rrW/;#PnE'4hS.L
+J,Xs!E.7A."*K-'%K-83$<D;.ZJ+sMh>[K3npgjdMS&*NiVruYou?NP"GX/6o`!qOJ,~>
+l2LaMp&G4`K!=20f`)'QoX5)$!!@J;e+M>m!;l]p"?(_.d3%oZ":U*rjnmj5!r/2dq>^O((]==9
+)KC]Vo)Je5%/^)1*G'JTYgr7@h#@B&nc/e^MS&*Ni;WlWo2tM_"(8e&q;hR+~>
+l2Lakp.>HqK!=20f`)'QoYaT$8cs=0e+M>m!;udf"C-DTdU2Q;"AXc_jnmj5!r/2dq>^g0/j)To
+8lBYf>4bDg68&cF!!aNUG`ArXnGM)A!8d9="Cd8#kl'H>!r__EnO`n1]]AnLs*t~>
+l2Lb,p4*9gK!=20f`)'QoZi-bJ-1%fe+M>m!<)kH"Eo6nduEpK"Fc0:jnmj5!r/2dq>^g05A,4h
+IsQ*nL\-)uE]X^-!!aNUG`ArXnGM)A!9j!("Eo[7kl'H>!r__fnUL_%]]AnLs*t~>
+l2L`Sp&G4aL:64AfDbpNo8`SG"*U3^o[j*Cg\h*T7Y7l%Mt$cL?DuQNh#@KTntQrm!!>W4S3H?@
+#REn@I[.=lnGM&@!8d8H"@e9\kl'E=!rUsdnc/e$R*+gojo9i~>
+l2La2p.>HrL:64AfDbpNo;VLW"*U3^o[j*Ck5@mT@=k`@Wpr[`Ei@[bh#@KTntQrq!!`Q>-otUV
+S8\0p"%G3q&c2P6#Y&laQ*o34r7h5OkOM4J@Z%e]rSRVVr8^fI8d%t[b3f,gs*t~>
+l2LaZp4*9hL:64AfDbpNo=XjK"*U3^o[j*CmJVP<FFpaS_!upWJZ.8qh#@KTntQrq!!`TM7V$C[
+S<Wf!"*n9=*r>pC#Y&laQ*o34r7h5Omdbl2G)EoqrSRVVr9/n*J-2=amJQ)GJ,~>
+lMgnZ#ke6$7Z"_?rRUuMr:!nc!!@A4d.Gri!4Vn,"]^>fk3WrT!!Fp@am]5arri5d`Dd$8!!<ED
+3$n%o#n&k6I#=Z6h=:EsrrDc`!!GcK]BK4MrrMtInGi\eY1r[Lk5Tr~>
+lMgn\;"dKa@Yq\[rRUuMr:#I:8cs4)d.Gri!6kC6"_NP"k3lID8d&Fdam]5arri5d`Dd$8!!<ED
+3&^[["!\`u$2FQ-$Tr?TMP@oBnbh,@!;Z1X"Cd8#kl'B<!W&P\8d'(8g\1X/s*t~>
+lMgn^K_Bp!G)<forRUuMr:$TZJ-0q_d.Gri!8II&"`oI/k4+?"J-:=fam]5arri5d`Dd$8!!EKE
+3(#k-4p*o#+V4AK#n&k6I#=Z6h=:EsrrDodJ-:%Q]BK4MrrMu.nULasY1r[Lk5Tr~>
+lMgk-o`,+aM7`!Mec,^JiZe4!")""Ho@O!BQi-mfArOLiqLnD>"9a=cjSR^3"o@Z<WE9kt!"/f?
+3bj)#T!m#.pAN\E!<2Nh"@e9\kl'B<!rhQsnc/e*QGr4hk5Tr~>
+lMgk<oh#?rM7`!Mec,^Jj^@pW")sXQo@O!B[J`]$D2c6pqPEaT"A=KYjSR^3"o@Z<WE9kt!"/f?
+3bj)#T!m#.pAN\E!<2O]"Cd8#kl'B<!rhXfnk'$^QGr4hk5Tr~>
+lMgkGomd0gM7`!Mec,^Jk`5Li"*^-Xo@O!BbPcqpEf@cuqS)KM",OGIqqM,SqX2q6=;9ou$NUl$
+C41u2[a=11rRq2NrpkRBG)EoqrSIPUrpba5J-2+Vm/?)HJ,~>
+lMgjNo`,+[M7VpLeGfUG[KHC,"D4"Enc%2@!-J2?#6T"0`pWih%e9T&9Vg53rnIGWr:ApkZ[t1$
+!"'N/@"b8acJe<irn%2@!!GcK]BK4LrrN%3nGiZ%Y2/m8s*t~>
+lMgjloh#?pM7VpLeGfUG`_?8%"E9^Onc%2@!1a$\#>9*#`pWim<:WWaC8BDQrnIGYr:ApkZ[t@J
+!q$$t"Uu:u6=>J@\Ba('qYo+Hnk'$oMS&*Nh>[NRPOV6IGHTcsk5Tr~>
+lMgk-omd0iM7VpLeGfUGdXh:G"Ep-Unc%2@!4r/[#CgcW`pWipL@KcrUt,/;g]%QWoA[s"Jj^1Q
+mJm\&(F_:0@"b8acJe<irn%2@J-:%Q]BK4LrrN&&nUL^pY2/m8s*t~>
+lMgj+o`,+KLq)UFeGfULp14%#"C786nG_)?!)WXp#820Hc1:l3D=RZ0'U$B"rS%8TrV>p?cU[p6
+"pu+Y&Io9OoDf.4<.1msjRE!Dec,U_o)Jn_MS&*Nh>[NT`:3g11n)VWroa<3~>
+lMgjSoh#?jLq)UFeGfULp5]#B"Dj=EnG_)?!.t2B#>fQ1c1:l3QL[WN;Ner`rS%8_rV>p?cY5-e
+,9%F7&ePT`"o\W;"UGMJ'cS>C-7CZLIBCrYnG3%5rr?-l8d&U\]BK4LrrN,KnO`pkR`k4"kPp&~>
+lMgjqomd0kLq)UFeGfULp8n.A"F$*PnG_)?!3#mI#CLZ]c1:l3ZgrVLJ!._8rS%8^rV>p?c[o1m
+4Y@ln&ePT`r!3lF'H8;N4$Z/&85t#>dcBonrRLoJM=Z6#G)EoqrS@JSrnd0q"Fcf_nG_VNJ,~>
+lMgico`,+1KX0V7e,KLJjV[mq"BUc+mf(l=!&4BP#U"Aae+Nb?h?WTO")+mopt5TKrV>R_r;[$V
+9ji7&N#_Hi"r;$DcLC]0e,KCio)Jn_MS&*Nh#@EP(@hG.&rO9_r9+*1~>
+lMgj?oh#?bKX0V7e,KLJl!"!W"DX+>mf(l=!,VX,#ZQ&@e+Nb?k"kP?"*h$*pt5TVrV>_N5Wh"`
+5tta4Ll=In./tb)/1rV52aV>LcLC]0e,KDUo1B-pMS&*Nh#@EP=n5/f:l;jHr9+*1~>
+lMgjcomd0nKX0V7e,KLJl\bUj"F$$Kmf(l=!1<b9#^U`fe+Nb?l@\YX",*l6pt5TVrV>f*DJ3Ka
+9hf#@Ll>:171MdX8PDr[=^GNQRa1F!rmUlIO7Rl)G)EoqrS7DRqhjrp"Fc6>k5=EBJ,~>
+lMgiLo`,*rFfF-jdf0@ERf!-g9T[-Xrn.5N%/p54/psPLq#CBk?1Isu0:L,Srn%/MT)AWo$!qV7
+Z+n%CoDf"(H)B<jdJj1go)Jn_MS&*Nh#@ES;=OVgG,j<lkPp&~>
+lMgj.oL]44WS@3rrrMu'r(7*'OM^A`f`(qLr^mGuI&>Tls8VtRnk'$kR`t:#fDc8j8Ou<=7::+u
+Z+n%er&+sB3'',a5X@b0H)B<jdJj2So1B-pMS&*Nh#@ESK(2G8I&brrkPp&~>
+lMgjWoRI$nWS@3rrrMu9r."opOM^A`f`(r+rdY9!I&>Tls8VttnpgjmR`t:#fDc9)IXHHbEF<dL
+Z+n&)r*Be=@:WtbD/jZ?H)B<jdJj3-o7-seMS&*Nh#@ESVso3<Wn[=3s*t~>
+lMgiKoDf"dS^@!-e,KLKoeuaK"@eBclM]E9!:0R`#X!X>hYR9PrmL?;"9a7bjSRR/!'pJ_#;pOa
+^>J8AIe3UC"+-iqpX0!@+7fI87Z+hArS.>PM=CQK<h7V/rojB4~>
+lMgj-oL]7"S^@!-e,KLKoks_#"CmG+lM]E9!:g"[#[Mt_hYR9Prn[-;"A=KZjSRR/!-eB6#?c)0
+^>J8ASGGV\77Kd<8P2X&Ut>@grr?Hu8d&U\]BK4JrrB(h8d&t$d.@8#s*t~>
+lMgjVoRI'nS^@!-e,KLKopG]."F,p@lM]E9!;6;@#^1a#hYR9ProEU"",aVLqq(iJT`0HIIro^n
+^>J8AZi"nRF`qtSH@1-jIs\!CpX0!@O7Rl)G)EoqrS.>P_sr6[I%AXUrojB4~>
+lMgiKoDf".OML/[df0@G]DV^43JtH4rRq2Na8Gu@8qaS3r;Q]sqb$DZ"@o9;o`!PD!8m_T#QeFb
+WnI+FrNPkn")jd[p!Nd>+7fI87Z+hArS.>PXmlAo6'B7UrojB4~>
+lMgj-oL]6aOML/[df0@GbPb$9?AcAYrRq2NfDS;E@YD,Kr;Q]sqgS*."DFU\o`!PD!9j>Q#AJ^g
+g%PFD`q)e)Fe7(TdJj2So1B-pMS&*Ng]%8lnO`pnP/cqhkl6/~>
+lMgjVoRI'oOML/[df0@GfDU4&H&B5trRq2Nj8FK2FG.$]r;Q]sqkEY3"G*Auo`!PD!:Ti9#B,-m
+g%PFDf(smmJ-1(ge+M,g!0?`%"Eo[7kl'99!7gUi"FH<Omf)GMJ,~>
+lMgiKo)JknXk`^!rrMmdrW!'TL:?=Cg&D&Mr;Zt&M7VmKrr3#u^@D7,'9U,rr7V)MGPqLI,BAjZ
+kktJ\iq!-P?CB+0dJj1go)Jn_MS&*Ng]%8nnGi\GMS/0Okl6/~>
+lMgj-o1B+)Xk`^!rrMnBr^m;sL:?=Cg&D&frCR3+M7VmKrr3#ucLOR1;3A][r7V)MTD_@f<H=/7
+kktJ\lLRUMDOJf@dJj2So1B-pMS&*Ng]%9)nO`pgMS/0Okl6/~>
+lMgjVo7-prXk`^!rrMngrdY,tL:?=Cg&D'$rI>#lM7VmKrr3#ug@BasJ!%S4r7V)M]D[6cH#et[
+kktJ\nFM/4H'utKdJj3-o7-seMS&*Ng]%95nULahMS/0Okl6/~>
+lMgiKo)Jn%N5k5^df0@H`Voi?-A8\br7V)MKDbcQBTBpqrr)itqD[sF"(A:dptG`Kq],P7#u>oA
+de!J<s8EQ$!!H,^aRB,Vrr=/4!!GcK]BK4JrrCpG!!F^([,h/Ks*t~>
+lMgj-o1B-]P/ckddf0@He,DrB=+mm>r7V)MVu93jDN;R"rr)itqJc!t"*L^#ptG`Kr*K=o$"J=U
+de!J<s8H!i8d&gkaRB,Vrr?Hu8d&U\]BK4JrrD6P8d&7M[,h/Ks*t~>
+lMgjVnpgh.`pEWOrrN)SrdY,tKX0Y9g&D&grI>#kNkt)]rVlopRdtt2KWNu(gA_3PNr=J7EdOM.
+oD\direL,r"F--On,Cc8!0?`%"Eo[7kl'99!:KB-"F>d/jS\6AJ,~>
+lMgi_nc/e@W7^bAdf0UK8cSi2JZdo,g&D%[rW!**F-F]6rr)itrMT2d"=]b]n,D)A!42V("VPd1
+[c@5`rrN*WoDf"[Nl(/^df0:ho)Jn_MS&*Ng]%91nGi\3JZdr-kl6/~>
+lMgj;nk'$jWn?tCdf0UKHqI"1JZdo,g&D&4r^m>fF-F]6rr)itrP%hp"Bq59n,D)A!6P13"]0/o
+[c@5`rrN+<oL]6qNl(/^df0;To1B-pMS&*Ng]%9;nO`p_JZdr-kl6/~>
+lMgj`npgjrWn?tCdf0UKU4@cAJZdo,g&D&VrdY0%F-F]6rr)itrQk%b"Fli^n,D)A!87=$"ak9F
+[c@5`rrN+foRI'iNl(/^df0<.o7-seMS&*Ng]%9AnULaiJZdr-kl6/~>
+lMgj&nGi\U\`!5]e,K^Q\c;^@J>q;ug&D%7rW!'6G+$YHqu6]l,kD!=!dqH:qV2#M;#L@t5^/[?
+nGW=c!+tj'">G_Fkl&s0!$Ce4"@e9\kl'99!8d5G"<2ijh"g16J,~>
+lMgjOnO`q!\`!5]e,K^QbXtK(J>q;ug&D%or^m;iG+$YHqu6]lA+N:q98'b6qV2#MK)J:F??_j]
+nGW=c!0ZtH"C$bqkl&s0!+>Cj"Cd8#kl'99!9irF"B'`Lh"g16J,~>
+lMgjnnULb"\`!5]e,K^QfRSL%J>q;ug&D&DrdY-!G+$YHqu6]lORdo(M72I@g]%8PrI>&nGFH_E
+rVc`rZLiYMHA]>urR1]GO7Rl)G)EoqrS.>PmdYf1I"/0Oq<7j/~>
+lMgjIn,NSP^?#%fe,K[L0E;0+Ut>=nrr=&<!!FEiT@EQ2rrN(_nc/e\U=/]5h>[N="TAB)#&/^m
+h>$pJ!06[O"<iH*jS[I+!$Ce4"@e9\kl'99!7pZ?"<2cfg\C"4J,~>
+lMgjhn4Egu^Z>.ge,K[LCJ%6OUt>=nrr?@(8d&+=T@EQ2rrN)&nk'$tU=/]5h>[ND:&[`g9Pf?a
+h>$pJ!3Yrd"BC,^jS[I+!+>Cj"Cd8#kl'99!93N@"B'ZHg\C"4J,~>
+lMgk*n:1Y$^uY7he,K[LQ@OL;Ut>=nrrA)YJ-:1DT@EQ2rrN)<nUL_9de*OprrM_CrdY0%DhG4K
+q#(-l`q4caH\Acer6kTFO7Rl)G)EoqrS.>Plg]K.I!qsJpuqa.~>
+lMgk+mf3JB]&NG_eGfdP`.DZ`WS$purrDfl!!Fj#VV1b@rrMU)o)Jn&NkaiVh>[J1r;[!SFHaZ/
+rVZZq^%;:-&V-t>qU5BD+7fI87Z+hArS.>P^@;1+)h"U;puqa.~>
+lMgk:mn*^m^#JbbeGfdPd[l,RWS$purrDln8d&7DVV1b@rrM[no1B-]O2'rWh>[JTrCR5qFHaZ/
+rVZZqch'g4:k5Y(qU5BD@.Qtn@Z%e]rS.>PdIBg3;LPFrpuqa.~>
+lMgkEmskP!^uG(eeGfdPgp<B1WS$purrDrpJ-:+EVV1b@rrMbLo7-snOMC&Xh>[JmrI>&qFHaZ/
+rVZZqh=Q4#I=SEUqU5BDO7Rl)G)EoqrS.>PhXQ+!I!qmGpuqa.~>
+lMgn\$h"&u)kc'Zr7(`Nq;fK$_;b7DrrCOH!!G?5XPWgMrrN(Gnc/btX4m=(rr=2?!!QYWVUkG>
+r;Qc]oDf!qI&5Kidf0:ho)Jn_MS&*Ng]%8KnGi\@IAkoqkl6/~>
+lMgn];X[3\>-6ZQr7(`Nq;fK$_;b7DrrD!U8d&FMXPWgMrrN(knk'"*X4m=(rr?I*8d/mWVUkG>
+r;Qcco1B+4V:bOjrr?Hu8d&U\]BK4JrrBb&8d&4DW8%+2s*t~>
+lMgn^L$sNpLUQ(2r7(`Nq;fK$_;b7DrrD<^J-:%GXPWgMrrN)0npggpX4m=(rrA/ZJ-Bn@VUkG>
+r;Qcgo7-pjV:bOjrrA,OJ-:%Q]BK4JrrCI:J-:.GW8%+2s*t~>
+lMgna=mc7n#^=qhqYo(G#6"5XhW+2)gA_/Zr;ZsiKX0Y8qYpWrk6LSY"=9DUmeu&C!4Vn,"X7rG
+]]]1hrrN*4oDeu,T$m8Zrr=/4!!GcK]BK4Jrr@Q=!!G30XPN^9s*t~>
+lMgnaM!dk=:6X>uqYo(G#6"5XhW+2)gA_/prCR3$KX0Y8qYpWrlqd4F"Bh)4meu&C!6kC6"]TK$
+]]]1hrrN+#oL]4+T$m8Zrr?Hu8d&U\]BK4JrrAkb8d&CKXPN^9s*t~>
+lMgnaX6tKAJu@8hqYo(G#6"5XhW+2)gA_0+rI>#nKX0Y8qYpWrmt:4^"FlcZmeu&C!8II&"aY0J
+]]]1hrrN+UoRI$iT$m8ZrrA,OJ-:%Q]BK4JrrBh(J-:(GXPN^9s*t~>
+l2Ladli7/P_!(Okf)GpPqY9marn@APO8T%]<J\3Kr;$?nr+5I""9NhTiVMI3!)3=k"]0Q=dIR;5
+rr>7T!!H;gbOPS\rr=/4!!GcK]BK4Jrr>mc!!GrIZJtcFs*t~>
+l2Lb%lq.D"`p!0qf)GpPqY9marn@APYl./sAr+"\r;$?nr/gJA"+di<qVV;QJGi(D@salro)ALc
+!-\!,"DX:Hnc%#;!+>Cj"Cd8#kl'99!.s`5"Cd"hiqqs>J,~>
+l2Lb6m!o5'b38Tuf)GpPqY9marn@APa8LMkF,7Bir;$?nr35aB",O>CqVV;QVYu#KEdOJ,o)ALc
+!1rh5"F6?Wnc%#;!0?`%"Eo[7kl'99!3#F<"ET4$iqqs>J,~>
+l2LeY+m]14%Y!:(qYmPq!-%l:"CdA+lM^PY!rgXNo)JnUT[EB1iVrr="TAB)&o`Z8iqiKN!,D-+
+"@J<imJbT7!$Ce4"@e9\kl'99!#Y5+"D!A#kPaWEJ,~>
+l2LeZ@I-Si;OZJ3qYmPq!1EdX"Dj(5lM^PY!rh%Mo1B-rT[EB1iVrrE:&[`g:iM6!iqiKN!0m+J
+"CmS4mJbT7!+>Cj"Cd8#kl'99!*etc"Diq+kPaWEJ,~>
+l2Le[O6hB#KWa2$qYmPq!4_uX"EKL;lM^PY!rh;5npgh8dI[@rrrMYArdY0"E/:s^qYC-k[.JkO
+HBH/5rmUlIO7Rl)G)EoqrS.>PN:DE$E/D0hrTO93~>
+l2Le`R-FYS0!+4.r2fnu9`4qoEg"H1rqQKoqb-M\":L1%kksE>!.4YE"[[F%b4#<)rrA>V!!G!5
+]]f=Crr=/4!!GcK]BK4KrrCC8!!O'WP/Zhfkl6/~>
+l2Le`Zg(-cB"I-tr2fnuJGi(CEg"H1rqQKoqgS-/"AXrikksE>!2BEa"^cJBb4#<)rrBCt8d&@U
+]]f=Crr?Hu8d&U\]BK4KrrCmF8d/%3P/Zhfkl6/~>
+l2Le`aQe9YOMp;Sr2fnuVYu#JEg"H1rqQKoqkNb5"FlHFkksE>!58>]"a"sWb4#<)rrC15J-:4V
+]]f=CrrA,OJ-:%Q]BK4KrrD6PJ-C=@P/Zhfkl6/~>
+kl1\U.-U^79YB]crN?/#/H,VQ%<Rr\nc&=`!WK_%!!??&g%OG*!W*`5!!NXDKWj5,q#:?5oDf"9
+Ks]q=e,KCio)Jn_MS&*Nh#@A$nGi_PGb3=TrojB4~>
+kl1\VAa)eiHcGCGrN?/#B`:U-:3;iHnc&=`!WL=68cs%3g%OG*!W61$8d.q+KWj5,q#:?EoL]6c
+Ks]q=e,KDUo1B-pMS&*Nh#@AKnO`shGb3=TrojB4~>
+kl1\WP3IK"SBgHprN?/#QMuC<IWUq#nc&=`!WLdCJ-1D&g%OG*!W@uVJ-CC?KWj5,q#:?QoRI'l
+Ks]q=e,KE/o7-seMS&*Nh#@AfnULddGb3=TrojB4~>
+kl1__]*%9t"TqN7m.^I_rr<?(!!F0aS^I*'rrMsQo)Jn8QH/Ckj8T+Wr;[!XFHjc2rV6BmmdpJ^%
+Y1Y;q:#?D+7fI87Z+hArS@JSq],/,"Ti+aXkrm:s*t~>
+kl1__b=q.m"\a?dm.^I_rr>mp8d&%:S^I*'rrMt6o1B-dQH/Ckj8T+prCR5sFHjc2rV6Bmo(5NW
+:4TG&q:#?D@.Qtn@Z%e]rS@JSr*Jnc"DWOjhYH@7J,~>
+kl1__f7E1:"bE;nm.^I_rr@`OJ-:4DS^I*'rrMt`o7-snQH/Ckj8T,.rI>&pFHjc2rV6Bmp@Nk<
+IXnNVq:#?DO7Rl)G)EoqrS@JSrJpDu"E/mohYH@7J,~>
+kPkSXIcg\8"&HSrp\b#trrD*X!!FToUXo/4rrN(nnc/c4ZJbQ=rr>1\!!WL7J>q2prqQKorYP2,
+"*gWopXB-B+7fI87Z+hArS@JRTCDmb-?>3`lMTiFJ,~>
+kPkSXTBAfN9RXtJp\b#trrDB`8d&1@UXo/4rrN)2nk'"5ZJbQ=rr@0>8d/s[WS$qDq#:Bo>4bDh
+HDK3fe,KDUo1B-pMS&*Nh>[JenO`scEfe*%r9+*1~>
+kPkSX\EAAHJY1<Up\b#trrDTfJ-:.DUXo/4rrN)CnpggsZJbQ=rrAYhJ-BnBWS$qDq#:BoMtDN%
+I&,Ehe,KE/o7-seMS&*Nh>[K$nULdfEfe*%r9+*1~>
+kPkV^nP\HK"[]6TpAFourrBt8!!G$*WS@4@rrMd5o)JnST$R!,jo5>,r;[!KEf[rur:^-j9(W)c
+@[tj<e,KCio)Jn_MS&*NhZ!WR,k:p>!aC&Ie+EY&s*t~>
+kPkV^nU]do"a.KDpAFourrCRI8d&=HWS@4@rrMh"o1B-pT$R!,jo5>:rCR5oEf[rur:^-jIe657
+E1G>Je,KDUo1B-pMS&*NhZ!WSA+<.pB7-K'o`"%RJ,~>
+kPkV^nY>2r"e*NupAFourrD$VJ-:+GWS@4@rrMkRnpgh6cgq(srrD6\J-C4=O1siUpAY,goRI$i
+SC-uXrrA,OJ-:%Q]BK4MrrN(]nULd]I&#0_roa<3~>
+k5PM[k=4M4"YQ&$o_\WtrrA\i!!GK:Y2K0LrrN(So)JmuLqMmIjo5<jr;["&I%o*^rq??lEqB>7
+:6irjrm^rJ+7fI87Z+hArSIPSL[b?J.rpT[jnn3?J,~>
+k5PM[k]l/\"_b%#o_\WtrrBY/8d&IOY2K0LrrN(so1B-[MnJ3Ljo5=CrCR6*I%o*^rq??lRe02T
+B9gU.rm^rJ@.Qtn@Z%e]rSIPSWpr[b=)s82jnn3?J,~>
+k5PM[l($gb"d6X`o_\WtrrCCDJ-:%HY2K0LrrN)6npgh$]]T+QrrB>&J-Bq?U=8c6pAY-&oRI'j
+Q-&OpeGfN0o7-seMS&*NhZ!SnnULdeEf@Tkqr[p/~>
+k5PP_q;O6k!!O-]eFE>4])MbXr;ZsmKs]q=o`"sU%eBZ&;Q&1@k5PJN#lXf-)KCYEjSSWM!1i`^
+"?MRZli,E6!$Ce4"@e9\kl'E=!RD&B!!WjDI\bE`roX62~>
+k5PP_q;Z;O8d/=ag%"k9])Mc)rCR3%Ks]q=o`"sY<:`]aDPu.\k5PJS;#X&j;K7T(jSSWM!4h_o
+"CI2*li,E6!+>Cj"Cd8#kl'E=!SpTC8d8%+I\bE`roX62~>
+k5PP_q;de#J-Cb7hXUC>])McErI>#mKs]q=o`"s]L@]otJu@8pk5PJVK`6K*HuY%RjSSWM!7(4e
+"F?*Eli,E6!0?`%"Eo[7kl'E=!U#.,J-LI?I\bE`roX62~>
+jo5G^pYS?t!!WX*Z0h8_rk8=3=T&4&=,OWRrUg*jr+Ya&"<*NDm/?,I!/pdU"\F!1cLCi+rrC15
+!!FU(\E<_=rr=/4!!GcK]BK4OrrM:.nc/jq:Nhr;kPF<?J,~>
+jo5G^pY^2R8d8%@_X7'prk8=3M#BpKBSsFcrUg*jr0-_E"B:W)m/?,I!3Q2l"^u\IcLCi+rrC^D
+8d&4O\E<_=rr?Hu8d&U\]BK4OrrMOtnO`soG*B`)qW7a-~>
+jo5G^pYhS#J-LV"c0b6&rk8=3XSmYPFGd]orUg*jr3GpE"FlZTm/?,I!6+ne"`ns[cLCi+rrD*O
+J-:7U\E<_=rrA,OJ-:%Q]BK4OrrM_SnULd_G*B`)qW7a-~>
+jSo>]p>/^*!!OX"g@G+=^]+9nr;Zt2Nkju[o`#!ldf]1A")b@#puq_Yq],S8"Uo7&ZJbNMrrDW^
+!!F!fYi,B-rr=/4!!GcK]BK4PrrM^JnGibPEepsSp&=(QJ,~>
+jSo>]p>:>W8d/[thX^OA^]+:RrCR3/Nkju[o`#!lhG!N5"+7?1puq_Yr*K@p"\rriZJbNMrrD`a
+8d&"CYi,B-rr?Hu8d&U\]BK4PrrMh3nOa!iEepsSp&=(QJ,~>
+jSo>]p>DP#J-CtCipusE^]+;(rI>#lNkju[o`#!ljb!)S",=&;puq_YrJpl-"b(BEZJbNMrrDid
+J-::PYi,B-rrA,OJ-:%Q]BK4PrrMqanULgdEepsSp&=(QJ,~>
+j8T8]p>U&nhuErc:Tj*Yr;OS5!#5A3"EK[Fmf)hX!W,O]!!G-KcLLnurrB+u!!PE,QH/Cko`"sk
+-M7?A"+@-%psf<D+7fI87Z+hArSmhXj!aEt"tFPCV9n]/jSs`~>
+j8T8]p>V6/i(=2KJ&(IFr;OS5!*K1l"EK[Fmf)hX!W.?;8d&LkcLLnurrC"98d/LDQH/Cko`"sk
+AG&Ot97<bmpsf<D@.Qtn@Z%e]rSmhXlXoZZ#$5_pV9n]/jSs`~>
+j8T8]p>W'&i.)#`U!;uur;OS5!/g`*"EK[Fmf)hX!W/Y_J-2=enc%eQ!7h$us)nL1a6iitrrN+^
+oRI$lW7q$rrrA,OJ-:%Q]BK4QrrMYSnULggDh=h4n,28HJ,~>
+ir9/\pZ.SOh>d^)K])IurPed:oDJXm%<Rr\o)A7\!WK_&!!EL[]&ihRrr>1\!!NI<JZIN!o)A\b
+oDeu+T@<J_rr=/4!!GcK]BK4RrrK_KnGib<D18(tlMBQ@J,~>
+ir9/\pZ/;QhF[r\U>tkArPed:pAISe:3;iHo)A7\!WL=78d%hD]&ihRrr@0?8d.k(JZIN!o)A]@
+oL]4+T@<J_rr?Hu8d&U\]BK4RrrLGMnOa!cDLS1ulMBQ@J,~>
+ir9/\pZ/f;hLGci\E*8XrPed:q>GgIIWUq#o)A7\!WLdCJ-1_@jnn<B!1s.>"E8pmg@t1<!2fC=
+"+-Zhp!j!AO7Rl)G)EoqrT!nYh2LlS#'k-9T#g3nj8XW~>
+iVs&[puoFNh#ITiD9q_HrQ"p<ci!hH)0h_#o^Vq^qCM4<"AP`Dp&=:W!6b<@"Y=_W_!:jgrr@67
+!!H2dbOPS^rr=/4!!GE?\`WhOrrM_0n,N\IDgn4ok5##:s*t~>
+iVs&[puoY3h+@iMP1K-trQ"p<h>KqK;L"b\o^Vq^qIoIm"Dajbp&=:W!8@BD"^#i._!:jgrrAY_
+8d&jpbOPS^rr?Hu8d&IV\`WhOrrMh]n4EpgDgn4ok5##:s*t~>
+iVs&[puoe]h1,Z`Y1rI@rQ"p<kP]o6H[)+0o^Vq^qNUT%"G*E#p&=:W!9O00"aG*N_!:jgrrBY&
+J-:1bbOPS^rrA,OJ-:+Q\`WhOrrMr)n:1aeDgn4ok5##:s*t~>
+i;Wu[qWuaU$Jb[c#%#OAq#/>7!3c>$"=&5ef(SY6!WAP[!!F%"_s@9err?=&!!QPSUt,,:o)A]d
+oDf"ZOMgGaec,Uknc/h9HIhZarosFaqk"ku!!i`qEe9n#jS/Z5s*t~>
+i;Wu[qWuaq:u+_I:5I?dq#/>7!64t0"BBcBf(SY6!WBIu8d&%T_s@9err@uU8d/mVUt,,:o)A^(
+oL]6qOMgGaec,VWnk''gOk91$rosFar4?;*8dJ*tEe9n#jS/Z5s*t~>
+i;Wu[qWub0K&(q\Ju72gq#/>7!8%1""F5<ff(SY6!WC14J-:@b_s@9errB5#J-Bq@Ut,,:o)A^;
+oRI'jOMgGaec,W1npgmqU=f&6rosFarQgMoJ-^XGEe9n#jS/Z5s*t~>
+hZ!`Uo%pZ;g].K^?-_m5rQG3@Mu<VY0RftTq!e:anJ:]r")+moq!A"]k61ba"W_T@]&rn[rrCI=
+!!Fg/]''%Brr=/1!!X3S]^Y^orpKdflAHnV!!jBGG)3!9k4el6s*t~>
+hZ!`Uo%poqge%`FLXbberQG3@Xo1ip=am=(q!e:ao3(ZW"*h$*q!A"]mS3[Q"]KE!]&rn[rrCpJ
+8d&:R]''%Brr?Hr8d8C[b4,3(rpKdfn>p-h8dJ:-G)3!9k4el6s*t~>
+hZ!`Uo%q*DgjfQ[V:b52rQG3@`Vk;iG^cUGq!e:aonr?k",*l6q!A"]o7Hsl"ab6I]&rn[rrD6S
+J-:4U]''%BrrA,LJ-Lh3eF<82rpKdfoYls^J-^L@G)3!9k4el6s*t~>
+h>[ZWpZTt`,hrA'$uO\eq>SY=!,2<2"?M+:htljB!W@H<!!FsDbjbW!rr@EE!!Q#@T$R!,nc&Xd
+"SD`t(50!Qqpk]H+70%7)dScMnbN(\rr2]m"THu<9*F_a#ms"=IZq"_lM:G;s*t~>
+h>[ZWpZTtq?JJ-V;N]c(q>SY=!0mFS"C6S]htljB!WA_`8d&IhbjbW!rrAel8d/[LT$R!,nc&Xe
+9_D!\;M;@8qpk]H@-pPm>`#`8o(i1]rr2]m"TIDfIn]?(#u+cHIZq"_lM:G;s*t~>
+h>[ZWpZTu)LtmLaKWEquq>SY=!4;]T"Eo@!htljB!WBY%J-:@jbjbW!rrBb2J-C">T$R!,nc&Xf
+K(XWsI>"ocqpk]HO6qH(MlF\OoD/:^rr2]m"TI]/V1S2e$%?u9IZq"_lM:G;s*t~>
+h#@TXqXE@]F;EX3"W<3Xo)&F4rr>Rf!!GcE[,_)QrrM$_oDf!sK"0n=mf*=^'`J(9%W7$-i;)mB
+!WFSA!!EISWS@3urr=/*!!`TO7UCD#R[X2E"+FiG&+0E)&j^D^N2+/Bn,!%@s*t~>
+h#@TXqXE@]N`Oq-"^7_^o)&F4rr@HF8d&RU[,_)QrrM:YoL]6ZL:H=Amf*=`=T1nr:2blni;)mB
+!WHa)8d%h:WS@3urr?Hk8dA%!HAeDs[^Q.D"/:s%<UNHd:g\3hN2+/Bn,!%@s*t~>
+h#@TXqXE@]TS2*N"c9\Jo)&F4rrAknJ-:"J[,_)QrrMJ=o7-q#\E*PTrrN"SrdY0$E/(^Wq=+Cb
+rfm)+"Fkm"g\B>!!0?Ap#_J/2XLc<lb00e."2;(4L[K["I!'IVN2+/Bn,!%@s*t~>
+gA_BUpZpGDA.IAp"?!RMpANA<!$qLC"B1,fkPalL!W6-m!!Gffeb&k0rrADa!!PH-QcSUnn,EAc
+oDeu/T[`Ybrr=.]!!t5jG_r*'dHC3#h>`!~>
+gA_BUpZpGEK2UJs"Dkm;pANA<!+Yt""D3J$kPalL!W7cF8d&h'eb&k0rrBJ*8d/LDQcSUnn,EB@
+oL]4-T[`Ybrr?HI8dSU9G_r*'dHC3#h>`!~>
+gA_BUpZpGFRY'=F"I$pjpANA<!0[;2"E]I2kPalL!W8thJ-:G!eb&k0rrC7@JH'cpQcSUnn,EBd
+oRI$jT[`YbrrA,#J-gF<G_r*'dHC3#h>`!~>
+g&D<Vr:K4%ZsO=!!!NREf^AS7df0:Mr;Zt/NPFcWn,EFfa7B96'9U/sr9sXc./j2M")!1dg\:.9
+!.shC"B:c4o)@5?!$Ce4!\Go/f)Q$Y.ri5UmeZq<s*t~>
+g&D<Vr:K4%[t%?38d.qNg$\\8df0;@rCR3.NPFcWn,EFfealB9;3A`\r9sXcB)YC+95K0\g\:.9
+!2fB\"DX=Jo)@5?!+>Cjs&]7qf1H9@?&-/JmeZq<s*t~>
+g&D<Vr:K4%\<qm(J-CP'g@"e9df0<!rI>#lNPFcWn,EFfht)@$J!%V5r9sXcPl6+8Dh5"Ep[8%]
+_"<-[HC2qIrmq)LO7Rl'GBn\hJ-LRk^=r#OrnRO(~>
+fDc*Tqt&mqZ=k!/!!FdZk4SZ%rrCgO!!I,#`9mQlrrN!Vo)Jl'Xk`^@rrBD(!!OopP/6G]mf*9h
+oDf"ZOi6Ydf)G^lo)Jt_FFe0r+9^j-":,u"5ofV!"W2O:o(i7?s*t~>
+fDc*Tqt&mq[=hQ98d&\=k4SZ%rrD3Z8d'*q`9mQlrrN"9o1B+.Xk`^@rrC1>8d/=<P/6G]mf*:*
+oL]6qOi6Ydf)G_Xo1B3pFFnpW=A7mM"AMfu@TE.p"^.;Lo(i7?s*t~>
+fDc*Tqt&mq[[;^'J-:nOk4SZ%rrDHaJ-9qU`9mQlrrN"co7-prXk`^@rrCaNJ-C1=P/6G]mf*:;
+oRI'jOi6Ydf)G`2o76j_"+uJeK'%RdIXHHeIeS?rLp>k.q>K.LJ,~>
+ec,mRqXNUl\8s"R!!E[eh!k3krrB\0!!NOIQ-/Uqmf*=eV"4Qh.@JBJrpg!g7/[)h>(*3sp&=CZ
+!7g]A"=oAAkl'*4!$Ce4%7Pf?[^N-%G$@?g+VbIZ!"98O,rS>#EdiXsO-3'-!!NdIf^S_8huA3~>
+ec,mRqXNUl\;FVL8d%t`h!k3krrC@C8d.n0Q-/Uqmf*=e]^n_u>+*S&rpg!gHMpG>B76T+p&=CZ
+!9*QB"BgVokl'*4!+>Cj%:Od[[^N-'KQV!8=&Mie8dnHm='fHTGCG1#O-=PV8d/+Tg[P%;huA3~>
+ec,mRqXNUl\=860J-:M/h!k3krrCmRJ-CFDQ-/Uqmf*=ecLZPhJ!nLKrpg!gUA]TGEIFY5p&=CZ
+!9s-+"FH$<kl'*4!0?`%$?grm[^N-'Nei@=rdXTk%"<VPH[0m_IY3H;P`>Be"bj&7nG3%?s*t~>
+e,K^QqXNXp]SSiUhZ*dcdd-`.fDbi;r;Zs2G+-bKm/I+Z)Y="4!dqH:qXXXdci!hI)0(SGjnnHF
+!WEAt!!F'jZJtc4rr=/4!"qbW[+OEmcGI#jU7.@/N.uLtF8U%iGCbC#LlIRcTW#**_T9cO#ke6%
+'7o05qYoIRJ,~>
+e,K^QqXNXp]U*D-hb"$(dd-`.fDbiYrCR2fG+-bKm/I+[>P(Mj98'b6qXXXdh>KqL;K7W+jnnHF
+!WGmf8d&%FZJtc4rr?Hu8ePTh[+OEmcGI#jU7.@/N/2t4I/J:%I=[$)LlIRcTW#**_T9ce:A.9`
+<hA=@qYoIRJ,~>
+e,K[PqXNXp]V18?J-;IllhUP3rrC7@J-::DRa:TlrrMkQo7-q"[c@5TrrD6\J-C:>Mn8$ImJd4d
+K_9iuI>"ocqptcIO7Rl7G)3NXj4_eq[]?-kQ&pr\L4k3WK)^B3K8#,@P*quAYdqWla/agcJ-C_7
+iplmEiW"E~>
+dJjLOqXWe!^nP'OhuEmGa6*0rf`(qrr;Zs=Gb<LYm/I+bJb&jE7&&-%rq$-i>l=X+8U6lPo)A%V
+!WF_E!!EISWS@4!rr=/4!"qbY]'&n`o'>Amf$DIU^:LbYYPPC4Z*h0Y`m*#fiTBLrmc()Uo`,+G
+ZKCiXir=N~>
+dJjLOqXWe!^nuHZi(=,kaQE9sf`(rDrCR2jGb<LYm/I+bV"71]B;3iHrq$-iMu?6O@<nEho)A%V
+!WHj,8d%h:WS@4!rr?Hu8ePTj]'&n`o'>Amf$DIU^:LbYYPPC4Z*h0Y`m*#fiTBLrmc(QPoh#?u
+^?5+dir=N~>
+dJjLOqXWe!^oEQMi.(roal`Btf`(rarI>#tGb<LYm/I+b^%-[UU=/]5oD\fnrI>&mH(E7OrpB^d
+rg*5-"Fkm"g\BA"!0?`%&pB/DkP=lClf?mQccO)=]!eoJqQ:@6[CX/nc.(M,k3VU*ikC0?J-:tR
+k4SZ3s*t~>
+ci4=Nqt97.aKp@Q"QBCa3PjeMrn7;O;uH\!-@DWApZqh[j9P;W":pO.l2:2R!TO=^!!NdJL9fb5
+li-rkoDeu,T[`Ycrr=/4!"qbY]BK4nrr2ikp@Ie?lK@9hi;;C=i8Wh\lL+69q"jpfrWDu]ZQAc>
+"U8r"meZqDs*t~>
+ci4=Nqt97.aKpt>9]AYIC;T'*rn7;OL&FUH<d^^qpZqh[l;.%E"Ak/pl2:2R!UEJZ8d.t-L9fb5
+li-sDoL]4,T[`Ycrr?Hu8ePTj]BK4nrr2ikp@Ie?lK@9hi;;C=i8Wh\lL+69q"jpfrWDu]^0L>'
+"\k-5meZqDs*t~>
+ci4:Mqt97.aKqCmiID&l_rUOjg&D&PrI>#rI&,Ehli."RKCjZsIuqJ1r:L!inUgaj"b(BEZJbQE
+rrB4oJ-11leFhDm!0?`%&pB/Ekl(P\rquTcoC2,3kN1a^qqhb=ioK:fmdg&GqY^?l"8V6&MY2K'
+JuIDkqYoRUJ,~>
+c2S+Lr:fX<d(PlG%c[Nl2nn;Frn@AP2#RCW0n-+Wq<S%]r*Jsp"'qt]p[nIcF8Z(B3Hg_/mJZAN
+!/gCK"B(W2nc%/?!$Ce4"@e9\kl(AXs8N&ss8;]h"oJ5rrVlflrr`/d_]SLN"?sffp\s:SJ,~>
+c2S+Lr:fX<d(Q/s;<(7OBu&a%rn@APDZ*01>(3I+q<S%]r/:/="*:Nsp[nIcSGc%`>]uFRmJZAN
+!3>`a"DO7Inc%/?!+>Cj"Cd8#kl(AXs8N&ss8;]h"oJ5rrVlflrr`/db$FX3"E;HFp\s:SJ,~>
+c2S+Lr:fX<d(Q<<K&_@aNPOQIrn@APRf.a>G^cXIq<S%]r2fL?",!Z.p[nIc\c%$^F`s(kmJZAN
+!6"M["F?HZnc%/?!0?`%"Eo[7kl(AXs8N&ss8;]h"oJ5rrVlflrr`/dc\qFG"I.*mp\s:SJ,~>
+b5VbGqXWk&`iNbjj8]<@^>ekcg]%6br;Zs]JZdr-li."b`:Es3-()dArV$6lmh#Hu"Tr7bX4m=5
+rrB=r!!GKI_sIBSrr=/4!!GcK]BK4Lrr`2h\eF]9"<t22o_mqPJ,~>
+b5VbGqXWk&`ianpj@TPh^Z+tdg]%7RrCR2uJZdr-li."bddp'6=d[:urV$6loMtl_"\WT\X4m=5
+rrC+38d&Ra_sIBSrr?Hu8d&U\]BK4Lrr`2h`E)V'"CA[uo_mqPJ,~>
+b5VbGqXWk&`itb^jF@Am^uG(eg]%80rI>#oJZdr-li."bhXc7#J!e=FrV$6lpPAcu"E/gkg@sn4
+!8$jn"F?0Im/GW:!0?`%"Eo[7kl'?;"8q]7L\-*"MSJ-BrT=-1~>
+aSuPFr:]L7c+%g=jT#EP_;tCjh>[K@qu?jgKXBh<lMgn^2"UbN!d_65qY'phO8T%^-?>3`l29iH
+!8d>J"=8o9kPa$4!$Ce4"@e9\kl'<:"8q_s$1n3#'qsFRr9+*1~>
+aSuPFr:]L7c+&X9j[oYp_;tCjh>[KFr(7*#KXBh<lMgn^DY$I&K!aP6pAY,srCR5oEfe*$r9F:^
+kO_@L=,FNOrR_&L@.Qtn@Z%e]rS7DTr:7^$oL]6eXk`LFkPp&~>
+aSuPFr:]L7c+'6tja[Jq_;tCjh>[KJr."omKXBh<lMgn^R.Gh1LpZ1<pAY-5rI>&rEfe*$r9F:^
+mdu#4I#5GtrR_&LO7Rl)G)EoqrS7DTr:8'aoRI'u[G:?NkPp&~>
+`W$2Aq!d=l]RM<k!!?`Lk5!j5!6b9?"B1,ekPXWF!WJY]!!GEWdI[A4rrN!6r;["$I&#3`rp'La
+rX8B!";?BkiVM1+!$Ce4"@e9\kl'99"8q_Z"7uQr&#@nLr9402~>
+`W$2Aq!d=l]TQXa8csU^k5!j5!8@?C"D3J#kPXWF!WKS"8d&[tdI[A4rrN%%rCR6)I&#3`rp'La
+r_iD]"Aj]SiVM1+!+>Cj"Cd8#kl'99"8q_p9_:p[;QSRBr9402~>
+`W$2Aq!d=l]V(&BJ-2(Tk5!j5!9O-/"E]I1kPXWF!WL:5J-2IloD\Ob!W@uUJ-Bq?UX\r8lMgna
+L@p'"I=e]^qUb`IO7Rl)G)EoqrS.>Sr:7[ToRI'sZJ"gHkl6/~>
+_uBu@qXWe!^OdTl!!E@Ub3Sr]rrAtp!!HSd^?Y[]rrMX&oDf"%N4nHQq#:>dr;[!:E/M0dqs"+]
+r\jEL"9NkHgA';"!$Ce4"@e9\kl'68!rVP*o)Jn2WnHtAl2Q8~>
+_uBu@qXWe!^Q_sd8d%eMb3Sr]rrBk48d&mf^?Y[]rrM^loL]6]NkOZSq#:?+rCR5jE/M0dqs"+]
+rc%L%"+7$#pt,NG@.Qtn@Z%e]rS%8Qr:#pA8d&8!g%,++s*t~>
+_uBu@qXWe!^S6JGJ-2@blhfQ=!7Ujr"ETO9lM]uI!VM9@J-:@^^$,ChrrCCDJ-C=>MR_aEl2Le`
+Re2+4I](opfDbi3o7-seMS&*NgA_6Pn?2A5"GO/7o)7hQJ,~>
+_>ac>qt0+(^ip[\!!Eq.dd[4mrr@iP!!Hnq_sIBerrN(=o)JkpWS."?rr=bO!!P]6S':C$kl1Wp
+oDeu&T$m8_rr=/4!!GcK]BK4HrrW)b4nAXV.^\"(rp'N6~>
+_>ac>qt0+(^lDL\8d&(gdd[4mrrB(s8d'$n_sIBerrN(do1B+(WS."?rr?m68d/OGS':C$kl1XG
+oL]4)T$m8_rr?Hu8d&U\]BK4HrrW)bF7W!,@("e_rp'N6~>
+_>ac>qt0+(^n?DGJ-:J%dd[4mrrBt7J-9tU_sIBerrN),o7-ppWS."?rrAGbJ-C%>S':C$kl1Xg
+oRI$jT$m8_rrA,OJ-:%Q]BK4HrrW)bRe)%4Lpl+3rp'N6~>
+^]+Q<r:T:)]OqT:!!GKkh"La*rr?U-!!IA-aRB,lrrC^C!!FI2a6ij%rrBD(!!NRBKWs>.kPkOB
+oDf"fQHAXqf`(pno)Jn_MS&*Nf`)$LcjfRH"Albjq#9UZJ,~>
+^]+Q<r:T:)]nK8I8d&k6h"La*rrA2Z8d'4"aRB,lrrD$L8d&4]a6ij%rrC1>8d.n*KWs>.kPkOb
+oL]7!QHAXqf`(qZo1B-pMS&*Nf`)$LfMhB6"E_<9q#9UZJ,~>
+^]+Q<r:T:)^70`>J-:\6h"La*rrBA&J-9qXaRB,lrrD9SJ-:@fa6ij%rrCaNJ-CF@KWs>.kPkP%
+oRI'jQHAXqf`(r4o7-seMS&*Nf`)$LhM(QO"HL.Sq#9UZJ,~>
+^&J<9r:K4&Y!D:Q"9O%gkka6;!'pJ_":B7<bjsrs!W5=V!!@;Ji;*6L!'pJ_"Yb%_`U*QdrrBJ!
+!!G0>_!D!Prr=/4!!GcK]BK4GrrW2pN:R#P!e\MXqs494~>
+^&J<9r:K4&Zu>8&"A=Wgkka6;!-eB6"AO!*bjsrs!W7678csOJi;*6L!-eB6"^,r3`U*QdrrC46
+8d&I\_!D!Prr?Hu8d&U\]BK4GrrW2pWq/gc99@0Yqs494~>
+^&J<9r:K4&\<6',"-gXcqV_ART`'BDIWUt$o&p#Rr1NY3",F2?q>1*kT`'BEG'&tfm/?,I!87!p
+"FH0Eli,Q:!0?`%"Eo[7kl'06!rhu0npgh1`p3Hes*t~>
+]Di*7qt&moL_B%S"=g4qo)@VJ!$(q;";#dIdIcW%!WK1l!!G?Sd.726rrC+;!!QVVVqC_BkPkPH
+oDf"<LUQ=Bf`(pno)Jn_MS&*NfDbpOn1+#0"<aVko)7qTJ,~>
+]Di*7qt&moS5eiI"C7hOo)@VJ!+#Oq"Aa63dIcW%!WKt-8d&Upd.726rrC[K8d/jVVqC_BkPkPN
+oL]6eLUQ=Bf`(qZo1B-pMS&*NfDbpOnRqGc"BhYOo)7qTJ,~>
+]Di*7qt&moWeB_h"G3Gto)@VJ!07#."FYKadIcW%!WLO<J-2Cio)ARe!9=!-"`Spgf_5=-rrDZ_
+J-:7T[cRG>rrA,OJ-:%Q]BK4FrrW2jPOj;-Ju@)grTsQ7~>
+\c2j4qXE@Q46uqLHF`,5ir9#Uqu?j<H(`[\k5PJU)Y="4$&H7Wqu$Ho;#L@t*c[.OkPOEA!WEc*
+!!EXZXl'!-rr=/4!!GcK]BK4ErrN%nnc/c%\)R5Ms*t~>
+\c2j4qXE@UD<sjsKXp1?ir9#Vr(7)iH(`[\k5PJV>kCVk:5cdJqu$HoK)J:F;fRc/kPOEA!WH0n
+8d%k=Xl'!-rr?Hu8d&U\]BK4ErrN&0nk'"1\)R5Ms*t~>
+\c2j4qXE@YOmIT#N4J$Gir9#Wr."osH(`[\k5PJWN:_W'IuM&'qu$HoW;V5MH?"nVkPOEA!WIrK
+J-:=OXl'!-rrA,OJ-:%Q]BK4ErrN&Anpgh$\)R5Ms*t~>
+\,QX1pZg7G!q$$k3hb!mro="YfDGUO-%)N@pZDJVrHe&8"&c)MpAP!kg\_$T89pfRo)@eO!WG:T
+!!@8;fCmks!$Ce4"@e9\kl''3!V@E(!!F./bO5>rs*t~>
+\,QX1pZg7g9^YLUA"h?Aro="Yj8;LP<d^^qpZDJVrL`[R")b'ipAP!kk57gT@!S?jo)@eO!WI66
+8cs=6fCmks!+>Cj"Cd8#kl''3!VKdj8d&+`bO5>rs*t~>
+\,QU0pZg8(m=5=jU!iN2j8T,Fr."oqI&,Ehk5PJ\](:FSJuI>qrVllbr."rkH(NCRroX4]rgrb4
+"+6orp=TBFO7Rl)G)EoqrRLoKp5SWn".[R&rU'W8~>
+mJd4QqYpK?rrrE!o&#]Bmf3J"NkOZSj8T+gqu?jNI];)tjo5A:"S;Zs)O/5-rVlfs?i9s.$>bI'
+iVDR7!,D-+"BLu:o)@>B!$Ce4"@e9\kl''3!W@<7!!@#BhtZU=J,~>
+mJd4Wr;Q]ArrrE!o&$BDmn*^YNkOZSj8T,'r(7)oI];)tjo5AB9_:p[<0YAgrVlfsNr;QR9l>]l
+iVDR7!0m+J"DjOPo)@>B!+>Cj"Cd8#kl''3!WAV\8csIHhtZU=J,~>
+mJd4[r;Q]ArrrE!o&$m/mskOjNkOZSj8T,6r."opI];)tjo5AHK(OQrJ!@q=rVlfsYPitTIVsnH
+iVDR7!4;BK"FHT_o)@>B!0?`%"Eo[7kl''3!WBV#J-1V5htZU=J,~>
+n,EUdIh7t8oD6`3"TA)XY8cp1"(nRepZ)8RQi$gd2h8'gqW7_Xr'^,V#B6p)q#CBW"T8<(20G5*
+mJZ,G!0QmR"@/-hmf(o>!$Ce4"@e9\kl'$2!6t'7">H@jnG_kUJ,~>
+n,EUfUfFbioD6`3"TA)X\m"Pp"*U]upZ)8R[JWW">_'!7qW7_Xr-@m+#CNc5q#CB^:&RZf>'6.O
+mJZ,G!3l)f"CdP5mf(o>!+>Cj"Cd8#kl'$2!8@!9"C@VCnG_kUJ,~>
+n,EUh^PKr!oD6`3"TA)X_hmi4"+mQ,pZ)8RbPZknGCZjRqW7_Xr1NY3#DTJ?q#CBcK)L6"FT[rM
+mJZ,G!6Fe_"FH<Nmf(o>!0?`%"Eo[7kl'$2!9<U"".[X*rpKf:~>
+n,EX9!!!tXg$nparri>tm(a\3!!GTUbjk\nrr@0=!!GQ>ZJtcCrrN+qo)JtOSBg[(s)7i9"Ti+_
+WnR1,rrC%1!!F^-]]f=Irr=/4!!GcK]BK4CrrN$5o)JmtL:QFCmf.e~>
+n,EXH8kN@1g$nparri>tm)WK%8d&[mbjk\nrrASe8d&LRZJtcCrrN,4o1B3oSBg[(s-`dW"DNCd
+g@jS,!7g^6"B^Pokl'37!+>Cj"Cd8#kl'$2!W6-m8d%hD\`N_Vs*t~>
+n,EXSJ:NR#g$nparri>tm*1FWJ-::gbjk\nrrBY.J-:%JZJtcCrrN,Fnpgn6cLLo6\,:aZDh+kA
+p>c/QiUhX'I#>T#rRq2NO7Rl)G)EoqrRCiJr/1&q",aYNqsOK7~>
+n,E[i#QOj,[bUTUbl7eBnAQL>!!FL)^?GLUrr?!q!!G`F[cRGJrrMg/oDf("Kt?FDmg/jl"WqcF
+^?GLTrrDKZ!!EsfZJkZ5rr=/4!!GcK]BK4CrrN*rnc/buVUtP0s*t~>
+n,E[k:J+6*[bUTUbl7eBnB>5/8d&1R^?GLUrr@cN8d&RW[cRGJrrMjsoL]<]Lq;aGoMGKY"]TN&
+^?GLTrrDW^8d%tCZJkZ5rr?Hu8d&U\]BK4CrrN+Nnk'")VUtP0s*t~>
+n,E[kKReT;[bUTUbl7eBnBm3bJ-:7Y^?GLUrrB(sJ-:%M[cRGJrrMnPo7."&]&rnaK`-E)H?,%[
+kksK@!;?&8"FYp.iVM7-!0?`%"Eo[7kl'$2!WK"eJ-)V"p?qs2~>
+n,E[m4obQgMSn]VbPq\Bo#)44!!ERZYi,B=rr=kQ!!H5W]'0+RrrN(9o)JnfVUkEiqu?moHD&^X
+ro="ZrYP2,"*g`tpt>ZI+7fI87Z+hArR:cHII[@@3L7bTrpTl;~>
+n,E[mG"PA%Oi-G]bPq\Bo#t/*8d%k?Yi,B=rr?s78d&a_]'0+RrrN(ao1B.$VUkF9r(7-%HD&^X
+ro="Zr`\qd"+-s"pt>ZI@.Qtn@Z%e]rR:cHU@LnZ@$\n&rpTl;~>
+n,EFfT)O6BQG_tbbPq\Bo$W<aJ-:@RYi,B=rrAMcJ-9tN]'0+RrrN)*o7-spVUkFTr."rkHD&^X
+ro="ZrepE!"+I0%pt>ZIO7Rl)G)EoqrR:cH^%-[VI?qtCrpTl;~>
+mf*90rW!'WW7LV?bPq\Bo;Vo`!!@>=f_=J,!"f&."B^VslM]cC!7CB<";d9>i"5he"Uf1&[,Ur@
+rr>O\!!?MtdIc,l!$Ce4"@e9\kl'!1!1iZ\"<!*.kPXfKJ,~>
+mf*9Wr^m<&W7LV?bPq\Bo=Rcf8cs@7f_=J,!*/qh"DEb.lM]cC!8R0<"B1N%j&Q%M"\rrj[,Ur@
+rr@E<8crt%dIc,l!+>Cj"Cd8#kl'!1!4hYm"B12hkPXfKJ,~>
+mf*9trdY-(W7LV?bPq\Bo>lLRJ-11pf_=J,!/UQ'"E]U:lM]cC!9Ng&"FlWQk(rtd"b(BF[,Ur@
+rrAecJ-1.hdIc,l!0?`%"Eo[7kl'!1!6t(b"FZ0=kPXfKJ,~>
+mf*9kr;Zq@]]K"4rrW,hB(>p(@%5O8jo5>LqZ$b0O2C8_j8T/X2"L\KBWl^Z!!P6'QcSUniVrmu
+oDf"]PfW=mgA_-po)Jn_MS&*Ne,KEZnc/dpJ?@](n,In~>
+mf*:,rCR0E]]K"4rrW,hNq,dEDk#,Gjo5>Qqaq!-O2C8_j8T/XDY$I%H*<\78d/CAQcSUniVrnH
+oL]6rPfW=mgA_.\o1B-pMS&*Ne,KEmnk'$XJ?@](n,In~>
+mf*:<rI>!2]]K"4rrW,hXR^lDHCN:Rjo5>Tqg\fkO2C8_j8T/XR.Gh0Ks.cZJ-C(=QcSUniVrnf
+oRI'kPfW=mgA_/6o7-seMS&*Ne,KF'n:1SBhYHX?J,~>
+mf*:Rr;Zs>T$Qp)b5VP@j;%7d"B(K*nG_SM!6b6>"DEt<mf)8H!WJDV!!4j?')_e6!b$VZg@sP*
+!1i`^"=f>Cl2B?9!$Ce4"@e9\kl'!1!5@t'")+CYp$_p2~>
+mf*:WrCR2nT[3-+b5VP@k?.=J"DF%@nG_SM!8@<B"E0ICmf)8H!WKCr8ci=d<r>PmBn35;pYc&O
+\b&Js=c9uXrS%8O@.Qtn@Z%e]rR:cHd.'^1F.q.Wn,In~>
+mf*:ZrI>$%T[3-+b5VP@lA>+_"F-0PnG_SM!9O*."E]gHmf)8H!WL12J,u*nr."ogJ?%>ti;Wf&
+oRI'lMnSBRgA_/6o7-seMS&*Ne,KF)nUL^hU"/i)s*t~>
+mf*=e-N*oI:p]$RrlY6AqM"M@"A"Tjm/H/I!3>ts"ETjNnG_GI!UU-a!!*3jqu?mBEfRp!r8@ST
+an,Q9'83[NqqD&M+7fI87Z+hArR:cH^@;1+<1(o"rp]r<~>
+mf*=eAGo+'EO4NsrlY6AqPNjV"D!S1m/H/I!5n\+"ETjNnG_GI!UrnW8c_Rur(7,lEfRp!r8@ST
+f^qc=:kZ.6qqD&M@.Qtn@Z%e]rR:cHdIBg3C7*68rp]r<~>
+mf*=eP5Tn6LpPt5rlY6AqRuKN"F-!Em/H/I!7gss"ETjNnG_GI!V:s8J,k3!J-C7>NkaiVi;Wf;
+oRI'mKX0V7gA_/6o7-seMS&*Ne,KF)nULagR*>+"nGe"~>
+mJd/pr;Zs)M8niYb5VPBjp1MY"@nEblM]lF!/paT"9N\3bjs`m!W?*k!!!)u!!Q&BT[NH2i;WfJ
+o)Jl;W7q%#rr=/4!!GcK]BK4BrrBe'!!G`P`9mQns*t~>
+mJd0HrCR2dP/cebb5VPBlVI.F"CmD)lM]lF!3Q,j"*BmRo&9TLrJ0u:!)*5^"_)eNde!IrrrD``
+8csI>gA'D%!+>Cj"Cd8#kl'!1!7C=/"CmP3mJcVTJ,~>
+mJd0ir."m9`p3KErrW2fKCjZsGDs9$rT=+[`VY/fFI15BiVrrWWU53>EdFD,oD[\J!;Q/9"+I3&
+ptG`JO7Rl)G)EoqrR:cHhXQ+!H'#u3rp]r<~>
+mJd0Rqu?jKW7CM=b5VM?:\4Vi6]/P?rT=+[B`%i5%<e2eo\ofNrjD.o"Uf1&[,Ur>rrN*CoDeu!
+T$d2arr=/4!!GcK]BK4BrrB(h!!G?@]]oCas*t~>
+mJd0or(7)tW7CM=b5VM?Jb2P;@>__]rT=+[Pl+,V:3N)Qo\ofNrlOS#"\rrj[,Ur>rrN+.oL]4'
+T$d2arr?Hu8d&U\]BK4BrrBt,8d&IY]]oCas*t~>
+mJd1/r."p'W7CM=b5VM?V=]9@GDa&srT=+[[/>FWIWh1,o\ofNrn$Rg"b(BF[,Ur>rrN+\oRI$j
+T$d2arrA,OJ-:%Q]BK4BrrCU>J-:1V]]oCas*t~>
+mJd19qZ$_.]&NP.rrN+foDf"[M7VpLk5PEOqu?j/GFd1Si;WiS)XdY020P>-meu#B!)E.d"@89m
+mf(u@!$Ce4"@e9\kl'!1!1r]\">GS>k5=`KJ,~>
+mJd1Eqaps<]&NP.rrN,-oL]6oM7VpLk5PF/r(7)eGFd1Si;WiS>jk8g>'?7Rmeu#B!.jc7"Cm\:
+mf(u@!+>Cj"Cd8#kl'!1!4q\m"BpPhk5=`KJ,~>
+mJd1Mqg\d.]&NP.rrN,AoRI'hM7VpLk5PFWr."p!GFd1Si;WiSN:29#F`s+mmeu#B!2fC="FHBR
+mf(u@!0?`%"Eo[7kl'!1!711c"F>g3k5=`KJ,~>
+mJd4c&,ZD1$BiR!r6#$>f^o.H7YnY>r9""Z./X&J&p^,!p#,iNrc@N."CH\Zg@sG'!.+8;"=B&>
+kl'99!$Ce4"@e9\kl'!1!.aS>"=f)2j8AEHJ,~>
+mJd4c<;]>k:702kr6#$>iq,hG@YhVZr9""ZB)G7(:jJ\_p#,iNrgN:J"DE=cg@sG'!2/sV"BUMo
+kl'99!+>Cj"Cd8#kl'!1!2T-W"B^>`j8AEHJ,~>
+mJd4cL\lT(SBC6sb5VJ,oRI'fLq;gJk5PFGr."otH(WUZi;WiW\*nhMDh+kApYGiL]_$^WI#GZ$
+rS.>PO7Rl)G)EoqrR:cH_!upXHA&Wbr:'`:~>
+mJd4d9)ASk0<Egurlb<Br<r8u"@e6Zkl'ZD!!N3""<)T\f(S#$!6t!5"Wh]E^?GLNrrAbb!!Ejc
+Z/PQ6rr=/4!!GcK]BK4Brr?U"!!Fa&YMf9Hs*t~>
+mJd4dIeu_?@'&#Qrlb<BrDN;\"Cd5!kl'ZD!)3;_"B'Q?f(S#$!8?p7"]KH%^?GLNrrB_(8d%qB
+Z/PQ6rr?Hu8d&U\]BK4BrrA2O8d&7JYMf9Hs*t~>
+mJd4dV#,ZFKrir!rlb<BrIsop"EoX5kl'ZD!.t-!"FGHhf(S#$!9<R!"aY3L^?GLNrrCC;J-:=R
+Z/PQ6rrA,OJ-:%Q]BK4BrrB@pJ-:1MYMf9Hs*t~>
+m/I':q>^V,]]An3rrN*Ko`,+kMS/0OkPkPBqZ$a<H_f<ghu<`T/b&fE8:$oUoD[SG!5\7,"*CEn
+pY5]J+7fI87Z+hArR:cH3:QtO.=eSYqXFN8~>
+m/I'^qFUj;]]An3rrN+4oh#?uMS/0OkPkPJqapuhH_f<ghu<`TC%4e!@!\HmoD[SG!7UO3"*pcs
+pY5]J@.Qtn@Z%e]rR:cHEUcX(=FdR3qXFN8~>
+m/I(#qLA[.]]An3rrN+`omd0fMS/0OkPkPPqge]n!i4KChu<`TQ19A.EdFA*oD[SG!8mBu"+I-#
+pY5]JO7Rl)G)EoqrR:cHSFM+4H@W0UqXFN8~>
+m/I'qq>^X(N6:MbbPqQ+o`,,"N5"TUkPkOoqZ$a<I&>Tlhu<`VMXg`N#]#1$iVM@0!8d;I"BM&>
+oD[PF!$Ce4"@e9\kl'!1!"AAt"=\l(htljBJ,~>
+m/I(0qFUlcQ-/IkbPqQcoh#@$N5"TUkPkP-qapuhI&>Tlhu<`VX7Ajd9PoNjiVM@0!9`rG"DjUT
+oD[PF!+>Cj"Cd8#kl'!1!)i>Z"B^2WhtljBJ,~>
+m/I(>q1&R;b3]&LrrAY`J-9tQ^?Y[[rrCmPJ-:4HVV1b%rrN,9npgmmDhbUWqV;)Nmdkr3I%8RT
+rnRMRO7Rl)G)EoqrR:cHL@KcsH@W0UqXFN8~>
+m/I(Uq#COAW7LS>bl7Z0o`,,0OMgGakPkOKqZ$a<I&>WmhZ!W5"S2Ts/p*AumJYi?!<2Qi"?DXa
+mf)#A!$Ce4"@e9\kl'$2!71-7">k\4i;2sCJ,~>
+m/I(Xq+:cnWn-e@bl7Zgoh#@*OMgGakPkOiqapuhI&>WmhZ!W=9_1j[=EKhJmJYi?!<2R^"CRD3
+mf)#A!+>Cj"Cd8#kl'$2!8[-:"C$G[i;2sCJ,~>
+m/I([q1&U$Wn-e@bl7[:omd0cOMgGakPkP*qge]o!iF]HhZ!WCK(FKrGBB+imJYi?!<2S?"FQBO
+mf)#A!0?`%"Eo[7kl'$2!9`j%"F,L#i;2sCJ,~>
+m/I+c0)5JM7(D1LrltHC6hUK`$?VQTnG_VN!-%f8"<2`cgA'P)!W>:T!!HDQVqC^trrN*)oDf":
+M7VjIh#@?no)Jn_MS&*NeGfN0n,NSRK!=83nGe"~>
+m/I+cCACI)Cq/EtrltHCH1ji69luZBnG_VN!1E^V"B'WEgA'P)!W@358d&aTVqC^trrN*poL]6e
+M7VjIh#@@[o1B-pMS&*NeGfNQn4EgiK!=83nGe"~>
+m/I+cQMH%6MR_U=rltHCU%X!?IWUjsnG_VN!4_oVs*OmFgA'P)!WAV]J-9h?VqC^trrN+PoRI'l
+M7VjIh#@A6o7-seMS&*NeGfNhn:1XbK!=83nGe"~>
+li-rrp](D-_WL^>rr>:W!!FEgSC$ojrr>ai!!F-dVV:h%rrN+foDf%/E/V?jqqD&M+7oO9#D0,9
+qV;,A!!GcK]BK4Crr>IV!!GoJ[H.8Ts*t~>
+li-sIpdtX=_WL^>rr@698d&+;SC$ojrr@TH8d&%>VV:h%rrN,-oL]9`E/V?jqqD&M@.[%o9S0G)
+qV;,A8d&U\]BK4Crr@B78d&UW[H.8Ts*t~>
+li-sipj`I1_WL^>rrA\bJ-:1BSC$ojrrAqnJH'uuVV:h%rrN,AoRI*mE/V?jqqD&MO7[r*ItFi\
+qV;,AJ-:%Q]BK4CrrAe_J-9tJ[H.8Ts*t~>
+li-sQp](F$KZi`ZcMml#p&G4TI&,Ehk5PE,qZ$a/I&5Kih>[ND#PA'#4F!@?nc%8B!$Ce4")"C[
+p>#]=!!GcK]BK4DrrMEgn,NSrMS&*NnGe"~>
+li-snpdtZ`PKW=icMml^p.>HmI&,Ehk5PEkqapudI&5Kih>[NH:\@<`?$Mj`nc%8B!+>Cj"*:6g
+p>#]=8d&U\]BK4DrrMXan4EgtMS&*NnGe"~>
+li-t.pOE@;bO#,OrrAJ\J-:%CUtGG(rrA5ZJ-:=KV:bOurrMbEomd3fGaltJrn@APO7Rl(IA>Be
+h#Hqq"Eo[7kl''3!VM'6J-9nM]BK4_s*t~>
+li-t3pAb=+RFC['ci3t]p&G4qK!=20kPkPVq>^X*HD9!ah>[NS9_JGi!bHtdh>#\'!%7@<"A,!(
+nc%AEnc/e^MS&*Nec,W-n,NUqEKA$(rp]r<~>
+li-t@pIYQcU!rN/ci3uKp.>I"K!=20kPkPXqFUlbHD9!ah>[NSJ+ZD:C4`VEpt>ZIAb/LsAsgd3
+rn[VF8d&U\]BK4DrrB1j8d.n.O2L>`nGe"~>
+li-tIpOEBuVpk/5ci4!(p4*9cK!=20kPkPZqLA]tHD9!ah>[NSV"K6@Dh>.Jpt>ZIPOj;-I$i+I
+rn[VFJ-:%Q]BK4DrrC%-J-CFBO2L>`nGe"~>
+li."a&,-&,(oGsVrR(WFn+H_b#]Pa9kksWD!71H@"*gHfp"fWKrhfAh"WqcH_<V!Prr>7S!!Fp7
+_!CsUrrCsI!!GcK]BK4ErrN!Bn,NV6FdUDCrp]r<~>
+li."a<;/uf<iamDrR(WFo_(l\9Q5s(kksWD!8[HC"*gHfp"fWKrkA(u"]TN(_<V!Prr@668d&@Y
+_!CsUrrD9R8d&U\]BK4ErrN%-n4Ej`FdUDCrp]r<~>
+li."aL\H<%KW`turR(WFp\'+@IW17ZkksWD!9a0."*gHfp"fWKrm:@h"aY3N_<V!PrrAY^J-:7[
+_!CsUrrDNYJ-:%Q]BK4ErrN(]n:1[gFdUDCrp]r<~>
+li."b6M:B^,d,qprmLfH\+Te*/p<W*nG_VN!2oVm")==Po\BHIo*b9m"\*g3de*Olrr>:T!!Emf
+[,_&?rrCdD!!GcK]BK4ErrA\[!!GT8Ut>>/s*t~>
+li."bGkO`4?Er;XrmLfHbk=X4=E^(TnG_VN!5SD&"*0mXo\BHIohtNV"^lYMde*Olrr@668d%tE
+[,_&?rrD0O8d&U\]BK4ErrB\"8d&IJUt>>/s*t~>
+li."bT_<m=LU>k/rmLfHg\-.$GBT@snG_VN!7Uao"*g<^o\BHIpP&?l"`ep_de*OlrrA\_J-:=T
+[,_&?rrDEVJ-:%Q]BK4ErrCC6J-9tAUt>>/s*t~>
+lMgj0o`,+AZJP9Re,KDhp&G5!J#M)pk5PF+q#CP&Qd#"!h>[NS=SMk""`&k!iVM4,!'g#S")k*k
+pYPoM^[_@-7Z+hArR_&MpE8r*"TrCkZJt`Ls*t~>
+lMgjVoh#?n[bg]Ve,KE<p.>I"J#M)pk5PFRq+:d+Qd#"!h>[NSL\OIF9PoNjiVM4,!-[p*"*g`t
+pYPoMddg!5@Z%e]rR_&Mq-`\a"\WZcZJt`Ls*t~>
+lMgjromd1$\DHoXe,KEYp4*9bJ#M)pk5PFoq1&TmQd#"!h>[NSWq_)JIrC(JiVM4,!2&h4"+R6&
+pYPoMhsu:#G)EoqrR_&MqiL;t"b1HEZJt`Ls*t~>
+lMgjcoDf"@[,:QUeGfLgpAb@8EK%Qmr9""Z8GN5g8Wq*]rnRMRWqZPt.WgopmJY];!&*mC"A,*.
+o)@PH!3>Yj"@e9\kl'-5!-@T/"Y"PW`9dHks*t~>
+lMgk&oL]6n\)6lXeGfMTpIYTeEK%Qmr9""ZI/-A;AWk($rnRMR_>$V+=*0\HmJY];!,M-t"D=4L
+o)@PH!5nA""Cd8#kl'-5!1`LM"]of0`9dHks*t~>
+lMgk7oRI(#]&32[eGfN/pOEEoEK%Qmr9""ZV"oNDH'628rnRMRdeJ=rG]]1imJY];!138,"FZcb
+o)@PH!7gXj"Eo[7kl'-5!4hQK"aG-Q`9dHks*t~>
+lMgkCo)Jn?[,:QUf)G`Rp&G7mH(N@Qroa:^o*G-l">c"NlM]N<!V6]p!!H)GV:P@lrr<l+!!FI+
+_!:mUrr@uJ!!GcK]BK4GrrL"?n,NXo?%/X$p&=F[J,~>
+lMgkKo1B-m\)6lXf)G`ip.>KuH(N@Qroa:^p/(QW"C-o"lM]N<!VK@d8d&XPV:P@lrr?6n8d&1U
+_!:mUrrB1l8d&U\]BK4GrrLVDmn*asI\kWgrpTl;~>
+lMgkQo7-t"]&32[f)Ga%p4*<dH(N@Qroa:^q1SQo"FH*AlM]N<!V_<DJ-9k?V:P@lrrA#KJ-::]
+_!:mUrrC%/J-:%Q]BK4GrrM)1mskR[I\kWgrpTl;~>
+lMgna'Cu2,,cokprR_&L0_YPN+E3.FiVDX9!1W``";Za"jS[g5!WH3t!!N^ILpuIBf`(sCnGi[p
+I^.i-hu<[enc/e^MS&*Ng&D*9)".G.13/Dfk54THJ,~>
+lMgna=7]#e?F&G[rR_&LD"gO*<,dZ%iVDX9!4_er"B'u^jS[g5!WIlN8d.q-LpuIBf`(sFnO`pW
+J[+/0hu<\<nk'$oMS&*Ng&D*@>OP/f=`TP8k54THJ,~>
+lMgnaM=Z6#Lq)=6rR_&LR.l+7H>n\KiVDX9!6t:h"FZ$4jS[g5!WK+qJ-CC@LpuIBf`(sIn:1Uo
+Z/GK9rrB@qJ-:%Q]BK4HrrM_MmskRbEfRfpqsOK7~>
+lMgna9(Drb'qO.Nr7V)MS+cme"(-AGcLCeqrrMj>pAb;9Wn[='rrB(q!!OutQc\^qf`(rdn,NSg
+U"&`6i;Wd2nc/e^MS&*NgA_3:..7-?&o3#peFW\-s*t~>
+lMgnaIe$)6<iXsGr7V)M\G&T"95&XCcLCeqrrMq*pIYO6Wn[='rrBn38d/=>Qc\^qf`(s"n4Eh"
+U"&`6i;Wdnnk'$oMS&*NgA_3AB(&=r:i1`[eFW\-s*t~>
+lMgnaV"0$=KsTS*r7V)Mc1c_mIrBY)cLCeqrrN"[p4*4Eg\BP'!7L^o"a>*Uam]5]rrCsGJ-:@q
+eF`aurrAGWJ-:%Q]BK4IrrM_UmskUiDh+_7oD\1XJ,~>
+l2La,nGi^uJ_0AernRMSh[oM^"Zg^a]&WVKrr@E>!!G][cgq(jrrM^!qZ$atI]1omfDbhhn,NS8
+P/Q_ciVro@nGi\]MS&*Ng]%<;..7-?"^-)9_s%!bs*t~>
+l2LaSnO`s[R+Lg'rnRMSkZ.@L"^H,.]&WVKrrAee8d&arcgq(jrrMdjqaq!%I]1omfDbi=n4Egb
+P/Q_ciVroGnO`pnMS&*Ng]%<BB(&=r9P/O8_s%!bs*t~>
+l2LapnULdpWn6_9rnRMSmtg^g"a"gF]&WVKrrBb+J-:=kcgq(jrrMkJqg\fhI]1omfDbi[n:1Xj
+P/Q_ciVroLnULacMS&*Ng]%<GPja,,IrBRt_s%!bs*t~>
+l2La_mf3Jfc0G*'hZ!WJ0_YPO*cHY/eare'rrKG/p&G4'MSA<Ph#@ES=Sr.&$ZM!7k53g2!V[H"
+!!@,Di;)@3!0cpQ"@e6[kl'<:!RDnW!!`QtFH!Zbp\sR[J,~>
+l2Lb"mn*_0cKb3(hZ!WMD"gO+;f@8deare'rrL59p.>H_N5"NRh#@ESL\saJ:2l*%k53g2!Vosg
+8csIGi;)@3!4),e"Cd5"kl'<:!Sq/O8d8^GN4.U;rpB`9~>
+l2Lb4mskP/cg(<)hZ!WPR.l+8H>eD6eare'rrLf)p4*9qNkX`Th#@ESWr.ANIW11Uk53g2!W.iE
+J-1P2i;)@3!6Ob]"EoX6kl'<:!U#R4J-L%9N4.U;rpB`9~>
+l2Lb6mJmA6WoNaLi;WiL48/^Z%qL$Wa6WWcrrL"GoDf"aWS$qDh#@ASqu?mQG*pGArn.5NL[G-F
+*1G+@rSmhW/F`]C'md=Lqq_8QP76jZ#!?p\XOZn?m/MS~>
+l2LbAmRdUg[c@#Xi;WiOFSAB3:25-Ga6WWcrrLVIoL]7$WS$qDh#@Ajr(7,pG*pGArn.5NWpWI^
+<h.D'rSmhWC%4du;1c7;qq_8QZ;U*_#$c2'XOZn?m/MS~>
+l2LbJmXPFt^Z4tai;WiRSbIX=I;XD%a6WWcrrM)5oRI'sWS$qDh#@B&r."rpG*pGArn.5N_sMsV
+SBUL$ir9"EnULajLUQ:@h>[MtL@0QrFE3,;eai\*s*t~>
+l2Le`$gmuu"_lNTq>TFS!TQ$2!!`j8GE]]"q#9LW!P8d3!!EFP_<CdOrrM^!r;Zt!I]1upf`)!$%
+.+#t8@.1IroF(ZU[J0d%rThaqYoIR!Rj:$!!`QjEJ147mJQ;MJ,~>
+l2Le`;XR-\9oRZkq>TFS!UF[u8dA('GE]]"q#9LW!RF[88d%hE_<CdOrrMdjrCR3'I]1upf`)!1
+;XI'ZD6r*nroF(Z^@+Yt;2EZhqYoIR!T81h8d8UAKVm&^r9OB5~>
+l2Le`L$jHpJu.)eq>TFS!V)WQJ-UOAGE]]"q#9LW!SrM$J-1tNkkj08!V_<HJ-9k@W7q!urrMA=
+m=5=qZekHUjSo5-mskRmSC6m&ro*kXl(@?n#'=j<VU"T,li2J~>
+l2Le`1@+uE+IqNbr;PjY!NQq/!!`j8G)iuco`"(S!KRBR!!En#dI@(irrN*mrW!*0E/M6hr7V)N
+k:#Wr"BiV(q>TOV!TOm]!!XBfeFNG6roX4^dU*.F!!`^'EeUC6lMBfGJ,~>
+l2Le`D<sju?E`G^r;PjY!Q8+78dA('G)iuco`"(S!O,;g8d&%`dI@(irrN+Lr^m>hE/M6hr7V)N
+mUkcW"F@rIq>TOV!UEkT8d8Ifg%+t;roX4^hi1=t8dA%!EeUC6lMBfGJ,~>
+l2Le`R-]>,MnJ-Cr;PjY!S*)%J-UOAG)iuco`"(S!QTf^J-:FudI@(irrN+prdY0$E/M6hr7V)N
+o9AQk"HgR`q>TOV!V)'7J-Lk8hX^L@roX4^kc]U+J-UREEeUC6lMBfGJ,~>
+kl1Wpl2UuP\*<Varp'LacU[[/#7Og[Nj@=.r9=4^gHY*+";?sNnbh5C!1s/i"YY%db4,DarrL.[
+kl:iY_WU^nkl1\H.-^d<"$1nHoD&7_rpB^entJA8!!jBKG)E<FlM:GEs*t~>
+kl1XGl:M5#_Wgdlrp'LagjJff#>SoTNj@=.r9=4^k'-5c"B;&Hnbh5C!4i)$"^#r8b4,DarrL_X
+kt2)#`TR$qkl1\OB'Mto9Q6ZMoD&7_rpB^ep:Y\:8dJ:.G)E<FlM:GEs*t~>
+kl1Xgl@9&)bN\`urp'LakG.a$#C^T7Nj@=.r9=4^m@Wfs"G<`,nbh5C!6tLn"a>-Wb4,DarrM/?
+l$ro"`om-rkl1\TPj3c)JXEt"oD&7_rpB^eps>Z"J-^L@G)E<FlM:GEs*t~>
+kl1XCkl:ni6)s5Dr;Q-a!Obes!!aBOG`T2_nbh\P!p=J-li71mAC'Z=rnm_]mfWUj<dq"$pY5]L
+k@Xq\!!O@#iUZmFli."#*9@/,%R"Wo_WLXjr;HWoqu?]q"R`jU6O<#Y#mNM1I?UtcmJ?hHs*t~>
+kl1Xckt2.RFM$i3r;Q-a!R-/g8dA7/G`T2_nbh\P!q)IQlq.FTL=5Jbrnm_]nk;YJB7?f5pY5]L
+mZUB.8d/CmiUZmFli."5?KFcc;fn80d-LK(r;HWoqu?]q"S0j;Gu*d!#u"WDI?UtcmJ?hHs*t~>
+kl1Y&l$rthRE4[er;Q-a!SaOFJ-UF>G`T2_nbh\P!qWmSm!o7jT[W<(rnm_]on%^EFFL1BpY5]L
+o<X&3J-Cb8iUZmFli."CNobctL7>Kgh!Xt7r;HWoqu?]q"SUWfTnMc_$%I&:I?UtcmJ?hHs*t~>
+kl1Xrjo>W0FLgr:r;Q]hrr_\pCE)pH#Qcc!I$D(mnbhbR"8fZ2#j;6m&p2Ojq#13Ors8Qg!"4".
+\`WhHrr`,/>6s6h"sSWKo(i7`nG`O+:Yc!S%OaPFC4#l+")V4&([1o+"#"51LnVT=nGDDKJ,~>
+kl1Y/k"5kcR)ngmr;Q]hrr_l6Q<j,T#?l%nPd]98r9XFcr6C*pkXl%ZQ.PO#rVkgV#lSs>:O%c-
+k5=*9"8pH%:ub.P@%Z0Dq>L<^rrLW$h+@lNAp0#qTV;=Y"."da>3SWc93H(ULnVT=nGDDKJ,~>
+kl1Y=k(!\rZIJF>r;Q]hrr_uI[>jg/#Bk'6Pd]98r9XFcrS4H,k^WklY1rI@rVkgV#lU?FJU*-`
+k5=*9"8prVK]@ReN4%R6q>L<^rrM&Uh1,Z`P+AVY]DT;D[B,mVl$s(iGB%k`TtfCPqre!0~>
+kl1YIirBT%89UT9f\5'6gXEg.JlXAl!!j??FG-7#hX^U5rri>TSmN2l!!`TaHEuT*qY^?lkl1qf
+P5mXuR*"grj8T;^o"KuW&DdBn"#k>)j7iEKrr2fps8E,WVIpjV!"&obApB'![*Ih,r9"$0~>
+kl1YOj%9MUHCVIgi8agt"lIY<VMAjU8dJ:+FG-7#hX^U5rri>^\rBhP8dA%-S]'adqY^?lkl1qf
+Z:\ebR*"grj8T;^p!Bdl<Sg=S9Q$98kkFrPrr2fps8E,`^lr'48d\6qCj:]'[*Ih,r9"$0~>
+kl1YSj+%YqTXW(rkj%I!lfd-M^oE[jJ-^OCFG-7#hX^U5rri>fcEE,cJ-UXk[aOL9qY^?lkl1qf
+a+/u#R*"grj8T;^ptireLu*XgJX<ajlhC8Srr2fps8E,gd^+qAJ-pdMEd3>-[*Ih,r9"$0~>
+kl1\_'E.t9!uWR>/0Y_S!!s!!E.*kMb2i9pnc&]PB0Hj[!!j;u<c39EpA=jSrs%?\HC(Yap>u;V
+mrM8Le,Tms7VT7#q#15rG?-I0[/^U:*Ck$qLmt]mi:-UBjo9i~>
+kl1\_=8ker92\kq>?=\L8dS4!EIEtNb2i9pnc&]qPBKs[8dJO<KpJCqpA=jSrs%XYOI*!"p>u;V
+oULMBe4L-THBZA>q#164Sqh/^Zq:^)@WHjPS$L2pnG<.Gs*t~>
+kl1\_M>i#0IsZKhI"$RmJ-g[HEda(Ob2i9pnc&^3Z_!!,J-_""W3j2&pA=jSrs%k@TU2\2p>u;V
+pUR2ae:7sdTX!#;q#16E];h6R["&O2F`VqdS$L2pnG<.Gs*t~>
+kPl&N""mAeHA%6?P`gl>9IUD&!"'6$DL7;9^=_iKrp]pf+OU5l[G:3HlMh(e5JXG;jSS'=!8l'%
+"_?*EpASF+!"BDf88EO)P+oD.hsU:<j8XW~>
+kPl'39O_aWHA%6?P`guRDHoui8d\="E-mM;^=_iKrp]pf@+%XL^>//QlMh(eG/CDtjSS'=!9h^#
+"c:^jpAU)Z8e"Nt@rZgJP+oD.hsU:<j8XW~>
+kPl$\JV\_rHA%6?P`h)bL4Rs,$@R&;H]+W4f^8M6nG`KMdXVG=h!Y%(rs&Fn`3-o:qrRhXn'6Fe
+UsnK"ri`\Z%=WVHG'\h)U:/8&meHb@s*t~>
+kPl74`3,;fU9VGOaMu*/ZDX4D>s'#.huF,g-W"o6NM3o0k4JT>rsjj*?rBa(=BT-B?tX@rEURrJ
+@fKg9?2dY.:..N?3&ipe]\W;\li.1go\7O?n,DGK''ag]>Ydpc<Dub#?=$uKDJsN7mrBIe@UWYO
+>#8$k7R9@(1cB-Rd-gk$=CG3<?>=:jFEI+ps'cCE>#8$b5W^SL*Z>Lni;aGn'I>e:C4(VkQ(kS%
+eDp&nrSdd,~>
+kPl7DbH@%mU9VGOaMu*/ZDX4MG@jiKi(=AN<b6B%NM3o0k4JT>rsbupKm7W^FE2PGEclVPmWo"Y
+FE;JBrG2gSC2@KoB:limpAXCX#6+8Lb1H+]jo5YVTTaqKDJjH4D>eGUF*MutH6IQUFE;JACi!m#
+AnP^cA:h&4mesVLLO+ApIsucpI=-Bgp3I3kFE;D;CM.0e>[(6.:efn@&PQ&'?YFJ-Jr>ngZGY2P
+nG)t@s*t~>
+kPl1Nd&rRrU9VGOaMu*/ZDX4TM1j`9$\*GDFFK4C\^9L2r9jRp_QohtN/NLGK7SQ&It3+;K):'+
+JqSi4L5:\^]\W;\li.1go\7O?n,DGK$hV'6S<&M^KnFr,If4`tJ:W:<K)C-7It3*%K7nuCYgDh:
+bc%;%P)bQ]M2$]RK):&uJ,OirJ)PniIslZiG^+UfMj:$B_pm`9q#01OJ,~>
+kPlCqkfgcZeDTTZn*]Q+inDbu\ZVZjE)//'k5Yr'/PpG7LR"dMdH'lprpB^rqW5\tTq7jJTq\B\
+W2cr$n?*G,XJr+pVPKrZTV%gIT:i'nh"C[3rri2dk3Vm(rt>>)hS#hZSXc7CTVA6ZVPpMrXm`D#
+XfSS%Vl$>eU7e-LrgX7dYg;b9r9MS1rh9RlV5C2lXnAh;XfSM"VPKoXS=5e0P)tZ\I<B=7?VsWm
+5X.Fh/hZiL'fnHM<FKiqJqo;KR\[.!aOT89o_SREs*t~>
+kPlCqkfgcZeDTTZn*]Q+inDbu\ZVZlJT"ppk=Q1Z=_;c'LR"dMdH'lprpB^rqW5\tTq7jJTq\B\
+W2cr$n?*G,XJr+pVPKrZTV%gIT:i'nh"C[3rri2dk3Vm(rt>>)hS#hZSXc7CTVA6ZVPpMrXm`D#
+XfSS%Vl$>eU7e-LrgX7dYg;b9r9MS1rh9RlV5C2lXnAh;XfSM"VPKoXS=5e0P)tZ\K78)gF)>`-
+ARo:X>[6u,'jtK`CN+NIJqo;KR\[.!aOT89o_SREs*t~>
+kPl@pkfgcZeDTTZn*]Q+inDbu\ZVZnN/*#IJ.6pPG'/1fQ)D:BjRW0HmJd^nji+<pSt;RJU8=`c
+WiW>lXqRq=WMcVjUnXNTT:VXHTVf?Vp&=7V"T%QKm.fZA')qU]]r.KnS=Q:FU84Z`W2cr$n#d&#
+XK/:tVP^/`TV%eSS-YakcgLc0lccR3U'7?hVPpPtor]17XJr+pUnOENR[9;&OH#-QKnP&/JUi6#
+J,OiiIK+]pHiJI(IY*?6PFA;N]?&O]m.C/RhuA3~>
+kPkecp?_#0o_SLarY#2,q"*q9hUTfb[&KXYEDekD%J'Q3!tun?:i(N2N0gEMa4TSGqYog\%fGkT
+eBlRie(*%%g=tE>mb\W4gtLK8f[eU&da6=cbK\]*qW\"_rqcEdrT!nhqX31fcd:%eeCE.&g"P39
+hX02AhV?l>g=b-0eC;pncHOJ[jRrNNoA\6Ed*pOtg"bETh]:P.g=b-0eC)[eb/V<5]XY>QY,\Cq
+U7\!GR@';*p662UR%'bEWj&tH`m<8okjS3@rVkXQJ,~>
+kPkecp?_#0o_SLarY#2,q"*q9hUTfb[&KX[J8f%%:\.0j92JYqBQJQQN0gEMa4TSGqYog\%fGkT
+eBlRie(*%%g=tE>mb\W4gtLK8f[eU&da6=cbK\]*qW\"_rqcEdrT!nhqX31fcd:%eeCE.&g"P39
+hX02AhV?l>g=b-0eC;pncHOJ[jRrNNoA\6Ed*pOtg"bETh]:P.g=b-0eC)[eb/V<5]XY>QY,\Cq
+U7\!GR@';*p662UR%'bEWj&tH`m<8okjS3@rVkXQJ,~>
+kPkecp?_#0o_SLarXf&*q"*q9hUTfb[&KX]MhZlRJ.R-UH?a[^JrH%n[`@%`o(r@Orsntsi7--#
+dF6Xsf\5*8hX985h;$`<g"=m+eC)^icHFJblh]lG"TJ8mqYfIS&GkhNda-:edaZguf\,!5gtqGU
+*o>],g=k64f$r3td*BkYdcC*#rU]$tcHt%jf\,'9oA:SEgtLH6f$r-obf[rB^V%(`Ycb"(UnXKP
+S!fY0Q1gFTQC+/7UoLZ.^;eLNhrsP%qYgELs*t~>
+k5PS_r;?Nmp\ts,r;--VlJpXIaM,![TU1[bAm%u-r([l1AT<3OL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+k5PS_r;?Nmp\ts,r;--VlJpXIaM,![TU1^lG]@S9r+Zj_Ed3(cL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+k5PS_r;?Nmp\u!-r;--VlJpXIaM,![TU1atL4b&-J,OiqI1LgZL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+%%EndData
+showpage
+%%Trailer
+end
+%%EOF
diff --git a/templates/Hungarian-logo.png b/templates/Hungarian-logo.png
new file mode 100755
index 00000000..5edcdfe5
--- /dev/null
+++ b/templates/Hungarian-logo.png
Binary files differ
diff --git a/templates/Hungarian-packing_list.html b/templates/Hungarian-packing_list.html
new file mode 100755
index 00000000..f3cf6b4e
--- /dev/null
+++ b/templates/Hungarian-packing_list.html
@@ -0,0 +1,148 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr>
+ <td width=10>
+ </td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th colspan=2>
+ <h4 align=left>SZÁLLÍTÓLEVÉL</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Dátum</th><td width=10> </td><td><%invdate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Szám</th><td></td><td><%invnumber%></td></tr>
+ </tr>
+
+ <tr>
+ <td>
+ </td>
+ </tr>
+ </td>
+ </table>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Szállítási cím:</th>
+ </tr>
+
+ <tr>
+ <td><%shiptoname%>
+ <br><%shiptoaddr1%>
+ <br><%shiptoaddr2%>
+ <br><%shiptoaddr3%>
+ <br><%shiptoaddr4%>
+<%if shiptocontact%>
+ <p>Kapcsolattartó: <%shiptocontact%>
+<%end shiptocontact%>
+
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Szám</th>
+ <th align=left><font color=ffffff>Szöveges leírás</th>
+ <th align=right><font color=ffffff>Menny.</th>
+ <th>&nbsp;</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>Megjegyzés</td>
+ <td><pre><%notes%></pre></td>
+<%end notes%>
+ <td align=right>
+ <%shippingpoint%>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><font size=-3>
+ A visszaszállított áruk után 10 % újraraktározási
+ díjat kell fizetni. Engedélyt a visszaszállításra csak
+ a <%company%> adhat ki. A visszárut csak elõre kifizetve és biztosítva
+ lehet visszaszállítani. <%company%> nem tehetõ felelõssé a visszaszállítás
+ során keletkezett kárért.
+ </font>
+ </td>
+ <td width=150>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Hungarian-packing_list.tex b/templates/Hungarian-packing_list.tex
new file mode 100755
index 00000000..fdc9b733
--- /dev/null
+++ b/templates/Hungarian-packing_list.tex
@@ -0,0 +1,122 @@
+\documentclass[twoside]{article}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin2]{inputenc}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telefon & <%tel%>\\
+ Fax & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%invnumber%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+<%pagebreak 65 27 48%>
+\end{tabular*}
+
+\newpage
+
+\markright{<%company%>\hfill <%invnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rll@{}}
+ \textbf{Szám} & \textbf{Szöveges leírás} & \textbf{Menny.} &
+ \textbf{egys.} & \textbf{Bin} \\
+<%end pagebreak%>
+
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{2cm}
+
+<%shiptoname%>
+
+<%shiptoaddr1%>
+
+<%shiptoaddr2%>
+
+<%shiptoaddr3%>
+
+<%shiptoaddr4%>
+
+\vspace{3.5cm}
+
+\textbf{S Z Á L L I T Ó} \parbox{0.3cm}{\hfill} \textbf{L E V É L}
+
+\hfill
+\begin{tabular}[t]{l@{\hspace{0.3cm}}l}
+ \textbf{Dátum} & <%invdate%> \\
+ \textbf{Szám} & <%invnumber%> \\
+ \textbf{Vevõ} & <%customer_id%>
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rll@{}}
+ \textbf{Szám} & \textbf{Szöveges leírás} & \textbf{Menny.} &
+ \textbf{egys.} & \textbf{Bin} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+\vfill
+\centerline{\textbf{Köszönjük az együttmûködést!}}
+
+\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+\footnotetext[1]{\tiny
+A visszaszállított áruk után 10\% újraraktározási díjat kell fizetni.
+Engedélyt a visszaszállításra csak a <%company%> adhat ki. A visszárut
+csak elõre kifizetve és biztosítva lehet visszaszállítani. <%company%>
+nem tehetõ felelõssé a visszaszállítás során keletkezett kárért.
+}
+\end{document}
+
diff --git a/templates/Hungarian-pick_list.html b/templates/Hungarian-pick_list.html
new file mode 100755
index 00000000..da8a3bdf
--- /dev/null
+++ b/templates/Hungarian-pick_list.html
@@ -0,0 +1,153 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>P I C K &nbsp;&nbsp; L I S T</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th width=50% align=left><font color=ffffff>Ship To:</th>
+ <th width=50%>&nbsp;</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ </td>
+
+ <td>
+ <%if shiptocontact%>
+ <br>Attn: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=15% align=left>Invoice #</th>
+ <th width=15% align=left>Order #</th>
+ <th width=10% align=left>Date</th>
+ <th width=15% align=left nowrap>Contact</th>
+ <th width=15% align=left>Warehouse</th>
+ <th width=10% align=left>Shipping Point</th>
+ <th width=10% align=left>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%invnumber%>&nbsp;</td>
+ <td><%ordnumber%>&nbsp;</td>
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%transdate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+ <td><%warehouse%>&nbsp;</td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Pos</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qty</th>
+ <th><font color=ffffff>Ship</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Bin</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td align=right>[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</td>
+ <td><%unit%></td>
+ <td align=right><%bin%></td>
+ </tr>
+ <%end number%>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+</table>
+
diff --git a/templates/Hungarian-pick_list.tex b/templates/Hungarian-pick_list.tex
new file mode 100755
index 00000000..89f9c219
--- /dev/null
+++ b/templates/Hungarian-pick_list.tex
@@ -0,0 +1,143 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 37%>
+\end{tabular*}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rcll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} &
+ \textbf{Qty} & \textbf{Ship} & & \textbf{Bin} \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.5\textwidth}{
+ \textbf{Ship To}
+} \hfill
+
+\vspace{0.7cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.5\textwidth}{
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+}
+\parbox[t]{.4\textwidth}{
+ <%shiptocontact%>
+
+ <%if shiptophone%>
+ Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{P I C K} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{7}{|X}|} \hline
+ \textbf{Invoice \#} & \textbf{Order \#} & \textbf{Date} & \textbf{Contact}
+ & \textbf{Warehouse} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+ <%invnumber%> & <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%transdate%>
+ <%end shippingdate%>
+ & <%employee%>
+ <%if warehouse%>
+ & <%warehouse%>
+ <%end warehouse%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrcll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} &
+ \textbf{Qty} & \textbf{Ship} & & \textbf{Bin} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> &
+ <%qty%> & [\hspace{1cm}] & <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+}
+
+\end{document}
+
diff --git a/templates/Hungarian-pos_invoice.txt b/templates/Hungarian-pos_invoice.txt
new file mode 100755
index 00000000..6a7645f1
--- /dev/null
+++ b/templates/Hungarian-pos_invoice.txt
@@ -0,0 +1,48 @@
+<%company align=center width=40%>
+<%address align=center width=40%>
+
+ Kassza: <%till align=left width=3%> Telefon#: <%tel%>
+ Eladó: <%employee%>
+Inv No/Date: <%invnumber%> / <%invdate%>
+Printed: <%dateprinted%>
+
+Menny Név Összeg
+<%foreach number%>
+<%qty align=right width=5%> <%description align=left width=24 offset=6%> <%linetotal align=right width=9%>
+ <%number%> @ <%sellprice%>/<%unit%>
+<%end number%>
+
+ Tételszám: <%rowcount%>
+<%if taxincluded%>
+ ---------------
+ Bruttó: <%invtotal align=right width=9%>
+<%end taxincluded%>
+<%if not taxincluded%>
+ ------------
+ Nettó: <%subtotal align=right width=9%>
+<%end taxincluded%>
+<%foreach tax%>
+<%taxdescription align=right width=23%> @ <%taxrate align=right width=2%>%: <%tax align=right width=9%>
+<%end tax%>
+ Bruttó: <%invtotal align=right width=9%>
+<%foreach payment%>
+<%paymentaccount align=right width=29%>: <%payment align=right width=9%> <%currency%>
+<%end payment%>
+<%if change%>
+ Visszajáró: <%change align=right width=9%>
+<%end change%>
+<%if total%>
+ Fizetendõ: <%total align=right width=9%>
+<%end total%>
+<%if discount%>
+
+<%discount%> % Engedmény levonva
+<%end discount%>
+
+ Köszönjük a vásárlást!
+
+<%if taxincluded%>
+A végösszeg bruttóban értendõ
+<%end taxincluded%>
+
+
diff --git a/templates/Hungarian-purchase_order.html b/templates/Hungarian-purchase_order.html
new file mode 100755
index 00000000..2f95eb73
--- /dev/null
+++ b/templates/Hungarian-purchase_order.html
@@ -0,0 +1,230 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <td align=right>
+ <h4>
+ Telefon: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>BESZERZÉSI &nbsp;&nbsp; RENDELÉS</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Rendelés dátuma</th><td width=10>&nbsp;</td><td><%orddate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Leszállítás</th><td width=10>&nbsp;</td><td><%reqdate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Szám</th><td>&nbsp;</td><td><%ordnumber%></td></tr>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+ </td>
+ </table>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>Szállító:</th>
+ <th align=left width=50%><font color=ffffff>Szállítási cím:</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+<br><%address2%>
+<%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+<%country%>
+<%end country%>
+
+<br>
+<%if contact%>
+<br>Kapcsolattartó: <%contact%>
+<%end contact%>
+<%if vendorphone%>
+<br>Tel: <%vendorphone%>
+<%end vendorphone%>
+<%if vendorfax%>
+<br>Fax: <%vendorfax%>
+<%end vendorfax%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+<br><%shiptoaddress2%>
+<%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+<%shiptocountry%>
+<%end shiptocountry%>
+
+<br>
+<%if shiptocontact%>
+<br>Kapcsolattartó: <%shiptocontact%>
+<%end shiptocontact%>
+<%if shiptophone%>
+<br>Tel: <%shiptophone%>
+<%end shiptophone%>
+<%if shiptofax%>
+<br>Fax: <%shiptofax%>
+<%end shiptofax%>
+
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+<!-- <th align=right><font color=ffffff>No.</th> -->
+ <th align=left><font color=ffffff>Szám</th>
+ <th align=left><font color=ffffff>Szöveges leírás</th>
+ <th align=right><font color=ffffff>Menny</th>
+ <th>&nbsp;</th>
+ <th align=right><font color=ffffff>Ár</th>
+ <th align=right><font color=ffffff>Összeg</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+<!-- <td align=right><%runningnumber%>.</td>
+adjust the colspan if you include this to shift subtotal one to the right
+-->
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=6><hr noshade></td>
+ </tr>
+
+ <tr>
+ <th colspan=4 align=right> Nettó összeg</th>
+ <td colspan=2 align=right><%subtotal%></td>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=4 align=right><%taxdescription%>alap: <%taxbase%> ráta: <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+<%end tax%>
+
+ <tr>
+ <td colspan=2>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=2>Határidõ <b><%terms%></b> nap</td>
+ <th colspan=2 align=right> Bruttó összeg</th>
+ <th colspan=2 align=right><%ordtotal%></th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>Megjegyzés</td>
+ <td><pre><%notes%></pre></td>
+<%end notes%>
+ <td align=right>
+<!-- Az árak <b><%currency%></b>-ban vannak meghatározva-->
+ Az árak Forintban értendõk
+ <br><%shippingpoint%>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><font size=-3>
+<!--
+További megjegyzések
+-->
+
+ </font>
+ </td>
+ <td width=150>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Hungarian-purchase_order.tex b/templates/Hungarian-purchase_order.tex
new file mode 100755
index 00000000..15f7c09b
--- /dev/null
+++ b/templates/Hungarian-purchase_order.tex
@@ -0,0 +1,206 @@
+\documentclass[twoside]{article}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin2]{inputenc}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telefon & <%tel%>\\
+ Fax & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%ordnumber%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+<%pagebreak 65 27 48%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Részösszeg} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markright{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrr@{}}
+ \textbf{Szám} & \textbf{Szöveges leírás} & \textbf{Menny.} &
+ \textbf{egys.} & \textbf{Ár} & \textbf{Összeg} \\
+ & folytatás az elõzõ oldalról: <%lastpage%> & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{10.5cm}{
+\textbf{Szállító}
+\vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+Kapcsolattartó: <%contact%>
+\vspace{0.3cm}
+<%end contact%>
+
+<%if vendorphone%>
+Tel: <%vendorphone%>
+<%end vendorphone%>
+
+<%if vendorfax%>
+Fax: <%vendorfax%>
+<%end vendorfax%>
+
+<%email%>
+}
+\parbox[t]{7.5cm}{
+\textbf{Szállítási cím}
+\vspace{0.3cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%if shiptoaddress2%>
+<%shiptoaddress2%>
+<%end shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%if shiptocountry%>
+<%shiptocountry%>
+<%end shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+Szállítási kapcsolattartó: <%shiptocontact%>
+\vspace{0.3cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{B E S Z E R Z É S I} \parbox{0.3cm}{\hfill} \textbf{R E N D E L É S}
+\hfill
+\begin{tabular}[t]{l@{\hspace{0.3cm}}l}
+ \textbf{Dátum} & <%orddate%> \\
+<%if reqdate%>
+ \textbf{Leszállítás} & <%reqdate%> \\
+<%end reqdate%>
+ \textbf{Szám} & <%ordnumber%>
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrr@{}}
+ \textbf{Szám} & \textbf{Szöveges leírás} & \textbf{Menny.} &
+ \textbf{egys.} & \textbf{Ár} & \textbf{Összeg} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{9cm}{Xr@{}}
+ \textbf{Nettó összeg} & \textbf{<%subtotal%>} \\
+<%foreach tax%>
+ <%taxdescription%> alap <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ \textbf{Bruttó összeg} & \textbf{<%ordtotal%>}\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ % All prices in \textbf{<%currency%>} funds.
+Az árak Forintban értendõk
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+
+%\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+%\footnotetext[1]{\tiny }
+
+\end{document}
+
+
diff --git a/templates/Hungarian-receipt.tex b/templates/Hungarian-receipt.tex
new file mode 100755
index 00000000..a77e595e
--- /dev/null
+++ b/templates/Hungarian-receipt.tex
@@ -0,0 +1,78 @@
+\documentclass[twoside]{article}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin2]{inputenc}
+\setlength{\voffset}{0.4cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.0cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+
+\fontfamily{cmss}\fontsize{9pt}{9pt}\selectfont
+
+\parbox[t]{12cm}{
+ <%company%>
+
+ <%address%>}
+\hfill
+\parbox[t]{6cm}{\hfill <%source%>}
+
+\vspace*{0.6cm}
+
+<%text_amount%> \dotfill <%decimal%>/100 \makebox[0.5cm]{\hfill}
+
+\vspace{0.5cm}
+
+\hfill <%datepaid%> \makebox[2cm]{\hfill} <%amount%>
+
+\vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{1.8cm}
+
+<%notes%>
+
+\vspace{0.8cm}
+
+<%company%>
+
+\vspace{0.5cm}
+
+<%name%> \hfill <%datepaid%> \hfill <%source%>
+
+\vspace{0.5cm}
+\begin{tabularx}{\textwidth}{lXrr@{}}
+\textbf{Számlaszám} & \textbf{Telj. dátuma}
+ & \textbf{Esedékes} & \textbf{Kifizetett} \\
+<%foreach invnumber%>
+<%invnumber%> & <%invdate%> \dotfill
+ & <%due%> & <%paid%> \\
+<%end invnumber%>
+\end{tabularx}
+
+\vfill
+
+\end{document}
diff --git a/templates/Hungarian-request_quotation.html b/templates/Hungarian-request_quotation.html
new file mode 100755
index 00000000..fa684866
--- /dev/null
+++ b/templates/Hungarian-request_quotation.html
@@ -0,0 +1,202 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <td><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58>
+ </td>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>R E Q U E S T &nbsp;&nbsp; F O R &nbsp;&nbsp; Q U O T A T I O N</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>To:</th>
+ <th align=left width=50%><font color=ffffff>Ship To:</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+<br>
+<%if contact%>
+<br>Attn: <%contact%>
+<%end contact%>
+<%if vendorphone%>
+<br>Tel: <%vendorphone%>
+<%end vendorphone%>
+<%if vendorfax%>
+<br>Fax: <%vendorfax%>
+<%end vendorfax%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddr2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+<br>
+<%if shiptocontact%>
+<br>Attn: <%shiptocontact%>
+<%end shiptocontact%>
+<%if shiptophone%>
+<br>Tel: <%shiptophone%>
+<%end shiptophone%>
+<%if shiptofax%>
+<br>Fax: <%shiptofax%>
+<%end shiptofax%>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr><td>&nbsp;</td></tr>
+
+ <tr>
+ <td colspan=2>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left>RFQ #</th>
+ <th width=17% align=left>Date</th>
+ <th width=17% align=left>Required by</th>
+ <th width=17% align=left>Contact</th>
+ <th width=17% align=left>Shipping Point</th>
+ <th width=15% align=left>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%quonumber%></td>
+ <td><%quodate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height="10"></tr>
+
+ <tr>
+ <td>Please provide price and delivery time for the following items:</td>
+ </tr>
+
+ <tr height="10"></tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+<!-- <th align=right>No.</th> -->
+ <th align=left>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th>Qt'y</th>
+ <th>&nbsp;</th>
+ <th>Delivery</th>
+ <th>Unit Price</th>
+ <th>Extended</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+<!-- <td align=right><%runningnumber%>.</td>
+other per line item variables available <%reqdate%>
+adjust the colspan if you include this to shift subtotal one to the right
+-->
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=7><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+<%if notes%>
+ <tr valign=top>
+ <td>Notes</td>
+ <td><%notes%></td>
+ </tr>
+<%end notes%>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=70%>&nbsp;</td>
+
+ <td width=30%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Hungarian-request_quotation.tex b/templates/Hungarian-request_quotation.tex
new file mode 100755
index 00000000..49f1abe7
--- /dev/null
+++ b/templates/Hungarian-request_quotation.tex
@@ -0,0 +1,175 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Extended} \\
+ & carried forward from <%lastpage%> & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.45\textwidth}{
+\textbf{To}
+\vspace{0.7cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if vendorphone%>
+Tel: <%vendorphone%>
+<%end vendorphone%>
+
+<%if vendorfax%>
+Fax: <%vendorfax%>
+<%end vendorfax%>
+
+<%email%>
+}
+\parbox[t]{.45\textwidth}{
+\textbf{Ship To}
+\vspace{0.7cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{R E Q U E S T for Q U O T A T I O N}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{RFQ \#} & \textbf{Date} & \textbf{Required by} & \textbf{Contact} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5ex]
+ \hline
+ <%quonumber%> & <%quodate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+Please provide price and delivery time for the following items:
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}lXrllrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} & &
+ \textbf{Delivery} & \textbf{Unit Price} & \textbf{Extended} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> & <%unit%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\hfill
+
+<%notes%>
+
+}
+
+\end{document}
+
diff --git a/templates/Hungarian-sales_order.html b/templates/Hungarian-sales_order.html
new file mode 100755
index 00000000..ff518a11
--- /dev/null
+++ b/templates/Hungarian-sales_order.html
@@ -0,0 +1,221 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <td align=right>
+ <h4>
+ Telefon: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>VEVÕRENDELÉS</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Rendelés dátuma</th><td width=10>&nbsp;</td><td><%orddate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Leszállítás</th><td width=10>&nbsp;</td><td><%reqdate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Szám</th><td>&nbsp;</td><td><%ordnumber%></td></tr>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+ </td>
+ </table>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Vevõ:</th>
+ <th align=left><font color=ffffff>Szállítási cím:</th>
+ </tr>
+
+ <tr>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+<br><%address2%>
+<%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+<%country%>
+<%end country%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+<br><%shiptoaddress2%>
+<%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+<%shiptocountry%>
+<%end shiptocountry%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+<!-- <th align=right><font color=ffffff>No.</th> -->
+ <th align=left><font color=ffffff>Szám</th>
+ <th align=left><font color=ffffff>Szöveges leírás</th>
+ <th align=right><font color=ffffff>Menny</th>
+ <th>&nbsp;</th>
+ <th align=right><font color=ffffff>Ár</th>
+ <th align=right><font color=ffffff>Engedmény</th>
+ <th align right><font color=ffffff>Összeg</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+<!-- <td align=right><%runningnumber%>.</td>
+adjust the colspan if you include this to shift subtotal one to the right
+-->
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discount%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=7><hr noshade></td>
+ </tr>
+
+ <tr>
+<%if taxincluded%>
+ <th colspan=5 align=right>Bruttó összeg</th>
+ <td colspan=2 align=right><%ordtotal%></td>
+<%end taxincluded%>
+
+<%if not taxincluded%>
+ <th colspan=5 align=right>Nettó összeg</th>
+ <td colspan=2 align=right><%subtotal%></td>
+<%end taxincluded%>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=5 align=right><%taxdescription%> alap <%taxbase%> ráta: <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+<%end tax%>
+
+ <tr>
+ <td colspan=2>&nbsp;</td>
+ <td colspan=5><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=3>Fizetési határidõ: <b><%terms%></b> nap</td>
+ <th colspan=2 align=right>Bruttó összeg</th>
+ <th colspan=2 align=right><%ordtotal%></th>
+ </tr>
+<%if taxincluded%>
+ <tr>
+ <td colspan=3>A végösszeg tartalmazza az adó összegét</td>
+ </tr>
+<%end taxincluded%>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>Megjegyzés</td>
+ <td><pre><%notes%></pre></td>
+<%end notes%>
+ <td align=right>
+<!-- All prices in <b><%currency%></b> Funds -->
+ Az árak Forintban értendõk
+ <br><!--<%shippingpoint%>-->
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><font size=-3>
+<!-- A 10% order cancellation fee will be applied for any special order
+ products or products that have been customized, enhanced or
+ upgraded at customers request. -->
+ </font>
+ </td>
+ <td width=150>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Hungarian-sales_order.tex b/templates/Hungarian-sales_order.tex
new file mode 100755
index 00000000..c752f0ab
--- /dev/null
+++ b/templates/Hungarian-sales_order.tex
@@ -0,0 +1,147 @@
+\documentclass[twoside]{article}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin2]{inputenc}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telefon & <%tel%>\\
+ Fax & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%ordnumber%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+<%pagebreak 65 27 48%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Részösszeg} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markright{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Szám} & \textbf{Szöveges leírás} & \textbf{Menny.} &
+ \textbf{egys.} & \textbf{Ár} & \textbf{Engedmény} & \textbf{Összeg} \\
+ & folytatás az elõzõ oldalról: <%lastpage%> & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{2cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{3.5cm}
+
+\textbf{V E V Õ} \parbox{0.3cm}{\hfill} \textbf{R E N D E L É S}
+\hfill
+\begin{tabular}[t]{l@{\hspace{0.3cm}}l}
+ \textbf{Rendelés dátuma} & <%orddate%> \\
+<%if reqdate%>
+ \textbf{Leszállítás} & <%reqdate%> \\
+<%end reqdate%>
+ \textbf{Szám} & <%ordnumber%>
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Szám} & \textbf{Szöveges leírás} & \textbf{Menny.} &
+ \textbf{egys.} & \textbf{Ár} & \textbf{Engedmény} & \textbf{Összeg} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%discount%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{9cm}{Xr@{}}
+ \textbf{Nettó összeg} & \textbf{<%subtotal%>} \\
+<%foreach tax%>
+ <%taxdescription%> alap <%taxbase%> <%tax%>\\
+<%end tax%>
+ \hline
+ \textbf{Bruttó összeg} & \textbf{<%ordtotal%>}\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+% All prices in \textbf{<%currency%>} funds.
+Az árak Forintban értendõk
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+
+\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+\footnotetext[1]{\tiny
+}
+
+\end{document}
+
diff --git a/templates/Hungarian-sales_quotation.html b/templates/Hungarian-sales_quotation.html
new file mode 100755
index 00000000..0abf5fc7
--- /dev/null
+++ b/templates/Hungarian-sales_quotation.html
@@ -0,0 +1,225 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr valign=top>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+<tr><td colspan=3>&nbsp;</td></tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>Q U O T A T I O N</h4>
+ </th>
+ </tr>
+
+ </table>
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td>
+ <table width=100%>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+
+ <br>
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr><td>&nbsp;</td></tr>
+
+ <tr>
+ <td colspan=2>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Number</th>
+ <th width=17% align=left>Date</th>
+ <th width=17% align=left>Valid until</th>
+ <th width=17% align=left nowrap>Contact</th>
+ <th width=17% align=left nowrap>Shipping Point</th>
+ <th width=15% align=left nowrap>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%quonumber%></td>
+ <td><%quodate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>No.</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qt'y</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Price</th>
+ <th><font color=ffffff>Disc %</th>
+ <th><font color=ffffff>Amount</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%></td>
+
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discountrate%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=8><hr noshade></td>
+ </tr>
+
+ <tr>
+<%if taxincluded%>
+ <th colspan=6 align=right>Total</th>
+ <td colspan=2 align=right><%invtotal%></td>
+<%end taxincluded%>
+
+<%if not taxincluded%>
+ <th colspan=6 align=right>Subtotal</th>
+ <td colspan=2 align=right><%subtotal%></td>
+<%end taxincluded%>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=6 align=right><%taxdescription%> on <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+<%end tax%>
+
+ <tr>
+ <td colspan=4>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=4>&nbsp;
+<%if terms%>
+ Terms Net <b><%terms%></b> days
+<%end terms%>
+ </td>
+ <th colspan=2 align=right>Total</th>
+ <th colspan=2 align=right><%quototal%></th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>Notes</td>
+ <td><%notes%></td>
+<%end notes%>
+ <td align=right>
+ All prices in <b><%currency%></b> Funds
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=60%><font size=-3>
+ Special order items are subject to a 10% cancellation fee.
+ </font>
+ </td>
+ <td width=40%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Hungarian-sales_quotation.tex b/templates/Hungarian-sales_quotation.tex
new file mode 100755
index 00000000..25792c6b
--- /dev/null
+++ b/templates/Hungarian-sales_quotation.tex
@@ -0,0 +1,157 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 48%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%quonumber%>}{<%company%>\hfill <%quonumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+ & carried forward from <%lastpage%> & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.45\textwidth}{
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%contact%>
+
+\vspace{0.2cm}
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+
+\vspace{1cm}
+
+\textbf{Q U O T A T I O N}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Quotation \#} & \textbf{Date} & \textbf{Valid until} & \textbf{Contact} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5ex]
+ \hline
+ <%quonumber%> & <%quodate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%discountrate%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ Subtotal & <%subtotal%> \\
+<%foreach tax%>
+ <%taxdescription%> on <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ Total & <%quototal%>\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ All prices in \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%notes%>
+
+}
+
+\vfill
+
+\end{document}
+
+
diff --git a/templates/Hungarian-statement.html b/templates/Hungarian-statement.html
new file mode 100755
index 00000000..f540a87a
--- /dev/null
+++ b/templates/Hungarian-statement.html
@@ -0,0 +1,125 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+ <tr>
+ <th colspan=3><h4>K I M U T A T Á S</h4></th>
+ </tr>
+ <tr>
+ <td colspan=3 align=right><%statementdate%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+<br><%address2%>
+<%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+<%country%>
+<%end country%>
+ <br>
+<%if customerphone%>
+ <br>Tel: <%customerphone%>
+<%end customerphone%>
+<%if customerfax%>
+ <br>Fax: <%customerfax%>
+<%end customerfax%>
+<%if email%>
+ <br><%email%>
+<%end email%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr height=10></tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr>
+ <th align=left>Számla #</th>
+ <th width=15% align=left>Dátum</th>
+ <th width=15% align=left>Esedékesség</th>
+ <th width=10% align=right>0-30</th>
+ <th width=10% align=right>30</th>
+ <th width=10% align=right>60</th>
+ <th width=10% align=right>90+</th>
+ </tr>
+<%foreach invnumber%>
+ <tr>
+ <td align=left><%invnumber%></td>
+ <td align=left><%invdate%></td>
+ <td align=left><%duedate%></td>
+ <td align=right><%c0%></td>
+ <td align=right><%c30%></td>
+ <td align=right><%c60%></td>
+ <td align=right><%c90%></td>
+ </tr>
+<%end invnumber%>
+ <tr>
+ <td colspan=7><hr size=1></td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <th align=right><%c0total%></td>
+ <th align=right><%c30total%></td>
+ <th align=right><%c60total%></td>
+ <th align=right><%c90total%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr height=10></tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td align=right>
+ <table width=50%>
+ <tr>
+ <th>Nyitott tételek összesen:</th>
+ <th align=right><%total%></th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td><hr noshade></td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>Kérjük a fizetendõ összeget a <b><%company%></b> bankszámlájára átutalni szíveskedjenek.
+ </td>
+ </tr>
+ <tr height=20></tr>
+</table>
+
diff --git a/templates/Hungarian-statement.tex b/templates/Hungarian-statement.tex
new file mode 100755
index 00000000..ea5303b1
--- /dev/null
+++ b/templates/Hungarian-statement.tex
@@ -0,0 +1,141 @@
+\documentclass[twoside]{article}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin2]{inputenc}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rrr@{}}
+ Tel & <%tel%>\\
+ Fax & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%statementdate%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+<%pagebreak 65 27 48%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Részösszeg} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markright{<%company%>\hfill <%statementdate%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}l@{\extracolsep\fill}ccrrrr@{}}
+ \textbf{Számla \#} & \textbf{Dátum} & \textbf{Esedékesség} &
+ \textbf{0-30} & \textbf{30} & \textbf{60} & \textbf{90+} \\
+ folytatás az elõzõ oldalról: <%lastpage%> & & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{1.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{10.5cm}{
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+}
+\parbox[t]{7.5cm}{
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{K I M U T A T Á S} \hfill
+
+\hfill <%statementdate%>
+
+\vspace{2cm}
+
+\begin{tabular*}{\textwidth}{@{}l@{\extracolsep\fill}ccrrrr@{}}
+ \textbf{Számla \#} & \textbf{Dátum} & \textbf{Esedékesség} &
+ \textbf{Nem lejárt} & \textbf{30} & \textbf{60} & \textbf{90+} \\
+<%foreach invnumber%>
+ <%invnumber%> & <%invdate%> & <%duedate%> &
+ <%c0%> & <%c30%> & <%c60%> & <%c90%> \\
+<%end invnumber%>
+\textbf{Összesen} & & & <%c0total%> & <%c30total%> & <%c60total%> & <%c90total%>
+\end{tabular*}
+\rule{\textwidth}{1pt}
+
+\vspace{1cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Nyitott tételek összesen} & <%total%>
+\end{tabularx}
+
+\vfill
+
+Kérjük a fizetendõ összeget a <%company%> bankszámlájára átutalni szíveskedjenek.
+
+\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+\footnotetext[1]{\tiny
+}
+
+\end{document}
+
diff --git a/templates/Hungarian-timecard.html b/templates/Hungarian-timecard.html
new file mode 100755
index 00000000..361b8254
--- /dev/null
+++ b/templates/Hungarian-timecard.html
@@ -0,0 +1,146 @@
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=sql-ledger.png border=0 width=84 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>T I M E &nbsp;&nbsp; C A R D</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=left>Employee</th>
+ <td><%employee%></td>
+ </tr>
+ <tr>
+ <th align=left>ID</th>
+ <td><%employee_id%></td>
+ </tr>
+ </table>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Card ID</th>
+ <td><%id%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Date Worked</th>
+ <td><%transdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Time In</th>
+ <td><%checkedin%></td>
+ </tr>
+ <tr>
+ <th align=left>Time Out</th>
+ <td><%checkedout%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Hours Worked</th>
+ <td><%qty%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=bottom>
+ <td>
+ <table>
+ <tr valign=top>
+ <th align=left>Project/Job #</th>
+ <td><%projectnumber%></td>
+ </tr>
+ <tr>
+ <th align=left>Description</th>
+ <td><%projectdescription%></td>
+ </tr>
+ <tr valign=top>
+ <th align=left>Labor/Service Code</th>
+ <td><%partnumber%></td>
+ </tr>
+ <tr>
+ <th align=left>Description</th>
+ <td><%description%></td>
+ </tr>
+ </table>
+ </td>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Unit Rate</th>
+ <td><%sellprice%></td>
+ </tr>
+ <tr>
+ <th align=right>Total</th>
+ <td><%total%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+<%if notes%>
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%notes%>
+ </td>
+ </tr>
+<%end notes%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Hungarian-timecard.tex b/templates/Hungarian-timecard.tex
new file mode 100755
index 00000000..49a30c54
--- /dev/null
+++ b/templates/Hungarian-timecard.tex
@@ -0,0 +1,71 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-1cm,left=2cm,right=1cm]{geometry}
+\usepackage{graphicx}
+\setlength{\parindent}{0pt}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Tel: & <%tel%>\\
+ Fax: & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+\centerline{\textbf{T I M E}\hspace{0.5cm}\textbf{C A R D}}
+
+\vspace*{0.5cm}
+
+\begin{tabular}[t]{ll}
+ \textbf{Employee} & <%employee%> \\
+ \textbf{ID} & <%employee_id%> \\
+\end{tabular}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Card ID} & <%id%> \\
+ \textbf{Date Worked} & <%transdate%> \\
+ \textbf{Time In} & <%checkedin%> \\
+ \textbf{Time Out} & <%checkedout%> \\
+ \textbf{Hours Worked} & <%qty%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular}[b]{ll}
+ \textbf{Project/Job \#} & <%projectnumber%> \\
+ \textbf{Description} & <%projectdescription%> \\
+ \textbf{Labor/Service Code} & <%partnumber%> \\
+ \textbf{Description} & <%description%> \\
+\end{tabular}
+\hfill
+\begin{tabular}[b]{lr}
+ \textbf{Unit Rate} & <%sellprice%> \\
+ \textbf{Total} & <%total%> \\
+\end{tabular}
+
+\vspace{0.3cm}
+
+<%notes%>
+
+\end{document}
+
+
diff --git a/templates/Hungarian-work_order.html b/templates/Hungarian-work_order.html
new file mode 100755
index 00000000..88d212af
--- /dev/null
+++ b/templates/Hungarian-work_order.html
@@ -0,0 +1,174 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=bottom>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>W O R K &nbsp;&nbsp; O R D E R</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>To</th>
+ <th align=left width=50%><font color=ffffff>Ship To</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%>
+ <br><%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%>
+ <br><%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ <br>
+ <%if shiptocontact%>
+ <br><%shiptocontact%>
+ <%end shiptocontact%>
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+ <%if shiptoemail%>
+ <br><%shiptoemail%>
+ <%end shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Order Number</th>
+ <th width=17% align=left>Order Date</th>
+ <th width=17% align=left>Required by</th>
+ <th width=17% align=left nowrap>Salesperson</th>
+ <th width=17% align=left nowrap>Shipping Point</th>
+ <th width=15% align=left nowrap>Ship Via</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%></td>
+ <td><%orddate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>No.</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qt'y</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Serial No.</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%>.</td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td><%serialnumber%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <td colspan=6><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <%if notes%>
+ <td><%notes%></td>
+ <%end notes%>
+ </tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Hungarian-work_order.tex b/templates/Hungarian-work_order.tex
new file mode 100755
index 00000000..9b2f6f95
--- /dev/null
+++ b/templates/Hungarian-work_order.tex
@@ -0,0 +1,177 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}rlXrll@{}}
+ \textbf{No.} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ & \textbf{Serial Number} \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.45\textwidth}{
+\textbf{To}
+\vspace{0.7cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\parbox[t]{.45\textwidth}{
+\textbf{Ship To}
+\vspace{0.7cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{W O R K} \parbox{0.3cm}{\hfill} \textbf{O R D E R}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Order Date} & \textbf{Required by} & \textbf{Salesperson} & \textbf{Shipping Point} & \textbf{Ship Via} \\ [0.5em]
+ \hline
+ <%ordnumber%> & <%orddate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrll@{}}
+ \textbf{No.} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ & \textbf{Serial Number} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%serialnumber%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+\vfill
+
+\vspace{1cm}
+
+\rule{\textwidth}{0.5pt}
+
+\end{document}
+
+
+
+
+
+
diff --git a/templates/Italian-ap_transaction.html b/templates/Italian-ap_transaction.html
new file mode 100755
index 00000000..fd7a96eb
--- /dev/null
+++ b/templates/Italian-ap_transaction.html
@@ -0,0 +1,229 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>A P - T R A N S A C T I O N</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Invoice #</th>
+ <td><%invnumber%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Date</th>
+ <td><%invdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Due</th>
+ <td><%duedate%></td>
+ </tr>
+ <tr>
+ <th align=left>Order #</th>
+ <td><%ordnumber%>&nbsp;</td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Employee</th>
+ <td><%employee%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=50%>
+ <table>
+ <%foreach account%>
+ <tr valign=top>
+ <td><%accno%></td>
+ <td><%account%></td>
+ <td align=right><%amount%></td>
+ <td><%projectnumber%></td>
+ </tr>
+ <%end account%>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Subtotal</th>
+ <td align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=2 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ </table>
+ </td>
+ <td width=50%>
+ <%notes%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <tr>
+ <td>&nbsp;</td>
+
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%text_amount%> ***** <%decimal%>/100 <%currency%>
+ </td>
+ </tr>
+
+ <%if paid%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <tr>
+ <th>Payments</th>
+ </tr>
+
+ <tr>
+ <td>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=left>Date</th>
+ <th align=left>Account</th>
+ <th align=left>Source</th>
+ <th align=left>Memo</th>
+ <th align=left>Amount</th>
+ </tr>
+ <%end paid%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td><%paymentmemo%></td>
+ <td><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid%>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <%end paid%>
+
+ <tr height=10></tr>
+
+ <%if taxincluded%>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <th colspan=3 align=left><font size=-2>Taxes shown are included in price.</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Italian-ap_transaction.tex b/templates/Italian-ap_transaction.tex
new file mode 100755
index 00000000..8bfd9f79
--- /dev/null
+++ b/templates/Italian-ap_transaction.tex
@@ -0,0 +1,125 @@
+\documentclass[10pt,letterpaper,oneside,onecolumn]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+\centerline{\textbf{A P} \hspace{0.3cm} \textbf{T R A N S A C T I O N}}
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+<%end contact%>
+
+\vspace{0.2cm}
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Invoice \#} & <%invnumber%> \\
+ \textbf{Date} & <%invdate%> \\
+ \textbf{Due} & <%duedate%> \\
+ \textbf{Order \#} & <%ordnumber%> \\
+ \textbf{Employee} & <%employee%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabularx}{.5\textwidth}[t]{@{}llrl@{}}
+<%foreach amount%>
+ <%accno%> & <%account%> & <%amount%> & <%projectnumber%> \\
+<%end amount%>
+
+ \multicolumn{2}{r}{\textbf{Subtotal}} & <%subtotal%> & \\
+<%foreach tax%>
+ \multicolumn{2}{r}{\textbf{<%taxdescription%> @ <%taxrate%> \%}} & <%tax%> & \\
+<%end tax%>
+
+ \multicolumn{2}{r}{\textbf{Total}} & <%invtotal%> & \\
+
+\end{tabularx}
+<%notes%>
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100 <%currency%>
+
+\vspace{0.3cm}
+
+<%if paid%>
+\begin{tabular}{@{}llllr@{}}
+ \multicolumn{5}{c}{\textbf{Payments}} \\
+ \hline
+ \textbf{Date} & & \textbf{Source} & \textbf{Memo} & \textbf{Amount} \\
+<%end paid%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%paymentmemo%> & <%payment%> \\
+<%end payment%>
+<%if paid%>
+\end{tabular}
+<%end paid%>
+
+\end{document}
+
diff --git a/templates/Italian-ar_transaction.html b/templates/Italian-ar_transaction.html
new file mode 100755
index 00000000..22833384
--- /dev/null
+++ b/templates/Italian-ar_transaction.html
@@ -0,0 +1,237 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>A R - T R A N S A C T I O N</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Invoice #</th>
+ <td><%invnumber%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Date</th>
+ <td><%invdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Due</th>
+ <td><%duedate%></td>
+ </tr>
+ <tr>
+ <th align=left>Order #</th>
+ <td><%ordnumber%>&nbsp;</td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Salesperson</th>
+ <td><%employee%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=50%>
+ <table>
+ <%foreach account%>
+ <tr valign=top>
+ <td><%accno%></td>
+ <td><%account%></td>
+ <td align=right><%amount%></td>
+ <td><%projectnumber%></td>
+ </tr>
+ <%end account%>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Subtotal</th>
+ <td align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=2 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ </table>
+ </td>
+ <td width=50%>
+ <%notes%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <tr>
+ <td>&nbsp;</td>
+
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%text_amount%> ***** <%decimal%>/100 <%currency%>
+ </td>
+ </tr>
+
+ <%if paid%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <tr>
+ <th>Payments</th>
+ </tr>
+
+ <tr>
+ <td>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=left>Date</th>
+ <th align=left>Account</th>
+ <th align=left>Source</th>
+ <th align=left>Memo</th>
+ <th align=left>Amount</th>
+ </tr>
+ <%end paid%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td><%paymentmemo%></td>
+ <td><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid%>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <%end paid%>
+
+ <tr height=10></tr>
+
+ <%foreach tax%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <th colspan=9 align=left><font size=-2><%taxdescription%> Registration <%taxnumber%></th>
+ </tr>
+ <%end tax%>
+
+ <%if taxincluded%>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <th colspan=3 align=left><font size=-2>Taxes shown are included in price.</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Italian-ar_transaction.tex b/templates/Italian-ar_transaction.tex
new file mode 100755
index 00000000..654d2b95
--- /dev/null
+++ b/templates/Italian-ar_transaction.tex
@@ -0,0 +1,131 @@
+\documentclass[10pt,letterpaper,oneside,onecolumn]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+\centerline{\textbf{A R} \hspace{0.3cm} \textbf{T R A N S A C T I O N}}
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+<%end contact%>
+
+\vspace{0.2cm}
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Invoice \#} & <%invnumber%> \\
+ \textbf{Date} & <%invdate%> \\
+ \textbf{Due} & <%duedate%> \\
+ \textbf{Order \#} & <%ordnumber%> \\
+ \textbf{Employee} & <%employee%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabularx}{.5\textwidth}[t]{@{}llrl@{}}
+<%foreach amount%>
+ <%accno%> & <%account%> & <%amount%> & <%projectnumber%> \\
+<%end amount%>
+
+ \multicolumn{2}{r}{\textbf{Subtotal}} & <%subtotal%> & \\
+<%foreach tax%>
+ \multicolumn{2}{r}{\textbf{<%taxdescription%> @ <%taxrate%> \%}} & <%tax%> & \\
+<%end tax%>
+
+ \multicolumn{2}{r}{\textbf{Total}} & <%invtotal%> & \\
+
+\end{tabularx}
+<%notes%>
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100 <%currency%>
+
+\vspace{0.3cm}
+
+<%if paid%>
+\begin{tabular}{@{}llllr@{}}
+ \multicolumn{5}{c}{\textbf{Payments}} \\
+ \hline
+ \textbf{Date} & & \textbf{Source} & \textbf{Memo} & \textbf{Amount} \\
+<%end paid%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%paymentmemo%> & <%payment%> \\
+<%end payment%>
+<%if paid%>
+\end{tabular}
+<%end paid%>
+
+\vspace{0.5cm}
+
+<%foreach tax%>
+\textbf{\small{<%taxdescription%> Registration <%taxnumber%>}} \\
+<%end tax%>
+
+\end{document}
+
diff --git a/templates/Italian-balance_sheet.html b/templates/Italian-balance_sheet.html
new file mode 100755
index 00000000..d7ea69be
--- /dev/null
+++ b/templates/Italian-balance_sheet.html
@@ -0,0 +1,103 @@
+
+<body bgcolor=ffffff>
+
+<h2 align=center>
+<%company%>
+<br><%address%>
+
+<p>STATO PATRIMONIALE
+<br><%period%>
+</h2>
+
+<table border=0>
+<tr>
+ <th align=left width=400 colspan=2>ATTIVITA'<br><hr align=left width=250 size=5 noshade></th>
+ <th><%this_period%></th>
+ <th><%last_period%></th>
+</tr>
+
+<%foreach asset_account%>
+<tr>
+ <td> </td>
+ <td><%asset_account%></td>
+ <td align=right><%asset_this_period%></td>
+ <td align=right><%asset_last_period%></td>
+</tr>
+<%end asset_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>TOTALE ATTIVITA</th>
+ <td align=right><%total_assets_this_period%><hr noshade size=2></td>
+ <td align=right><%total_assets_last_period%><hr noshade size=2></td>
+</tr>
+
+<tr>
+ <th align=left colspan=4>PASSIVITA'<b><hr align=left width=250 size=5 noshade></th>
+</tr>
+
+<%foreach liability_account%>
+<tr>
+ <td></td>
+ <td><%liability_account%></td>
+ <td align=right><%liability_this_period%></td>
+ <td align=right><%liability_last_period%></td>
+</tr>
+<%end liability_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td></td>
+ <th align=left>Totale Passivita'</th>
+ <td align=right><%total_liabilities_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_liabilities_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr>
+ <th align=left colspan=4>CAPITALE NETTO<br><hr align=left width=250 size=5 noshade></th>
+</tr>
+
+<%foreach equity_account%>
+<tr>
+ <td></td>
+ <td><%equity_account%></td>
+ <td align=right><%equity_this_period%></td>
+ <td align=right><%equity_last_period%></td>
+</tr>
+<%end equity_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td></td>
+ <th align=left>Totale Capitale Netto</th>
+ <td align=right><%total_equity_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_equity_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>TOTALE PASSIVITA'</th>
+ <td align=right><%total_this_period%><br><hr noshade size=2></td>
+ <td align=right><%total_last_period%><br><hr noshade size=2></td>
+</tr>
+</table>
+
+
+
+
+
+
diff --git a/templates/Italian-bin_list.html b/templates/Italian-bin_list.html
new file mode 100755
index 00000000..24440675
--- /dev/null
+++ b/templates/Italian-bin_list.html
@@ -0,0 +1,189 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <th align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>B I N &nbsp;&nbsp; L I S T</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% cellspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>From</th>
+ <th align=left width=50%><font color=ffffff>Ship To</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+
+ <%if vendorphone%>
+ <br>Tel: <%vendorphone%>
+ <%end vendorphone%>
+
+ <%if vendorfax%>
+ <br>Fax: <%vendorfax%>
+ <%end vendorfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+
+ <br>
+ <%if shiptocontact%>
+ <br>Attn: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Order #</th>
+ <th width=17% align=left nowrap>Date</th>
+ <th width=17% align=left nowrap>Contact</th>
+ <%if warehouse%>
+ <th width=17% align=left nowrap>Warehouse</th>
+ <%end warehouse%>
+ <th width=17% align=left>Shipping Point</th>
+ <th width=15% align=left>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%>&nbsp;</td>
+
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%orddate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+
+ <%if warehouse%>
+ <td><%warehouse%></td>
+ <%end warehouse%>
+
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Pos</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Serialnumber</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Qty</th>
+ <th><font color=ffffff>Recd</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Bin</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%></td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td><%serialnumber%></td>
+ <td><%deliverydate%></td>
+ <td align=right><%qty%></td>
+ <td align=right><%ship%></td>
+ <td><%unit%></td>
+ <td><%bin%></td>
+ </tr>
+ <%end number%>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+</table>
+
diff --git a/templates/Italian-bin_list.tex b/templates/Italian-bin_list.tex
new file mode 100755
index 00000000..3d6052f9
--- /dev/null
+++ b/templates/Italian-bin_list.tex
@@ -0,0 +1,147 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Recd} & & \textbf{Bin} \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.5\textwidth}{
+\textbf{From}
+\vspace{0.7cm}
+
+<%name%>
+
+<%address1%>
+
+<%if %address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country4%>
+<%end country%>
+}
+\parbox[t]{.4\textwidth}{
+\textbf{Ship To}
+\vspace{0.7cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%if shiptoaddress2%>
+<%shiptoaddress2%>
+<%end shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%if shiptocountry%>
+<%shiptocountry%>
+<%end shiptocountry%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{B I N} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Date} & \textbf{Contact}
+ <%if warehouse%>
+ & \textbf{Warehouse}
+ <%end warehouse%>
+ & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+
+ <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%orddate%>
+ <%end shippingdate%>
+ & <%employee%>
+ <%if warehouse%>
+ & <%warehouse%>
+ <%end warehouse%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Recd} & & \textbf{Bin} \\
+
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%serialnumber%> &
+ <%deliverydate%> & <%qty%> & <%ship%> & <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabularx}
+
+
+\rule{\textwidth}{2pt}
+
+\end{document}
+
diff --git a/templates/Italian-check.tex b/templates/Italian-check.tex
new file mode 100755
index 00000000..a5c06aa6
--- /dev/null
+++ b/templates/Italian-check.tex
@@ -0,0 +1,81 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.4cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.0cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+
+\fontfamily{cmss}\fontsize{9pt}{9pt}\selectfont
+
+\parbox[t]{12cm}{
+ <%company%>
+
+ <%address%>}
+\hfill
+\parbox[t]{6cm}{\hfill <%source%>}
+
+\vspace*{0.6cm}
+
+<%text_amount%> \dotfill <%decimal%>/100 \makebox[0.5cm]{\hfill}
+
+\vspace{0.5cm}
+
+\hfill <%datepaid%> \makebox[2cm]{\hfill} <%amount%>
+
+\vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{1.8cm}
+
+<%notes%>
+
+\vspace{0.8cm}
+
+<%company%>
+
+\vspace{0.5cm}
+
+<%name%> \hfill <%datepaid%> \hfill <%source%>
+
+\vspace{0.5cm}
+\begin{tabularx}{\textwidth}{lXrr@{}}
+\textbf{Fattura Numero} & \textbf{Data Fattura}
+ & \textbf{Dovuto} & \textbf{Applicato} \\
+<%foreach invnumber%>
+<%invnumber%> & <%invdate%> \dotfill
+ & <%due%> & <%paid%> \\
+<%end invnumber%>
+\end{tabularx}
+
+\vfill
+
+\end{document}
+
+
+
diff --git a/templates/Italian-income_statement.html b/templates/Italian-income_statement.html
new file mode 100755
index 00000000..55771010
--- /dev/null
+++ b/templates/Italian-income_statement.html
@@ -0,0 +1,78 @@
+
+<body bgcolor=ffffff>
+
+<h2 align=center>
+<%company%>
+<br><%address%>
+
+<p>CONTO ECONOMICO
+<br><%period%>
+</h2>
+
+
+<table width=100% border=0>
+<tr>
+ <th width=400 align=left colspan=2>RICAVI<br><hr width=300 size=5 align=left noshade></th>
+ <th><%this_period%></th>
+ <th><%last_period%></th>
+</tr>
+
+<%foreach income_account%>
+<tr>
+ <td width=4> </td>
+ <td><%income_account%></td>
+ <td align=right><%income_this_period%></td>
+ <td align=right><%income_last_period%></td>
+</tr>
+<%end income_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td> </td>
+ <th align=left>Totale Ricavi</th>
+ <td align=right><%total_income_this_period%><hr noshade size=2></td>
+ <td align=right><%total_income_last_period%><hr noshade size=2></td>
+</tr>
+
+<tr>
+ <th align=left colspan=2>COSTI<br><hr width=300 size=5 align=left noshade></th>
+</tr>
+
+<%foreach expense_account%>
+<tr>
+ <td> </td>
+ <td><%expense_account%></td>
+ <td align=right><%expenses_this_period%></td>
+ <td align=right><%expenses_last_period%></td>
+</tr>
+<%end expense_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td> </td>
+ <th align=left>Totale Costi</th>
+ <td align=right><%total_expenses_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_expenses_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>UTILE / (PERDITA)</th>
+ <td align=right><%total_this_period%><br><hr noshade size=2></td>
+ <td align=right><%total_last_period%><br><hr noshade size=2></td>
+</tr>
+
+</table>
+
+
+
+
diff --git a/templates/Italian-invoice.html b/templates/Italian-invoice.html
new file mode 100755
index 00000000..3fd6e3dc
--- /dev/null
+++ b/templates/Italian-invoice.html
@@ -0,0 +1,209 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>FATTURA</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Data fattura</th><td width=10>&nbsp;</td><td><%invdate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Scadenza</th><td width=10>&nbsp;</td><td><%duedate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Numero fattura</th><td>&nbsp;</td><td><%invnumber%></td></tr>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+ </td>
+ </table>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Sede legale:</th>
+ <th align=left><font color=ffffff>Inviare fattura a:</th>
+ </tr>
+
+ <tr>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+<br><%address2%>
+<%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+<%country%>
+<%end country%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+<br><%shiptoaddress2%>
+<%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+<%shiptocountry%>
+<%end shiptocountry%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+<!-- <th align=right><font color=ffffff>No.</th> -->
+ <th align=left><font color=ffffff>Numero</th>
+ <th align=left><font color=ffffff>Descrizione</th>
+ <th><font color=ffffff>Quantit&agrave;</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Prezzo</th>
+ <th><font color=ffffff>Sconto</th>
+ <th><font color=ffffff>Totale riga</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+<!-- <td align=right><%runningnumber%>.</td>
+adjust the colspan if you include this to shift subtotal one to the right
+-->
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discount%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+<%end number%>
+
+<!--
+you can also use netprice instead of sellprice if you
+don't want to show the discount
+netprice = sellprice - discount
+to show the percentage for a discount use <%discountrate%>
+-->
+
+ <tr>
+ <td colspan=7><hr noshade></td>
+ </tr>
+
+ <tr>
+ <th colspan=5 align=right>Totale righe</th>
+ <td colspan=2 align=right><%subtotal%></td>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=5 align=right><%taxdescription%>: <%taxrate%>% su <%taxbase%></th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+<%end tax%>
+
+<%if paid%>
+ <tr>
+ <th colspan=5 align=right>Importo gi&agrave; pagato</th>
+ <td colspan=2 align=right>- <%paid%></td>
+ </tr>
+<%end paid%>
+
+ <tr>
+ <td colspan=3>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=3>Scadenza a <b><%terms%></b> giorni data fattura.</td>
+ <th colspan=2 align=right>Totale da pagare</th>
+ <th colspan=2 align=right><%total%></th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td>Note</td>
+ <td><%notes%></td>
+ <td align=right>
+ I prezzi sono espressi in valuta <b><%currency%></b>.
+ <br><%shippingpoint%>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ Per i pagamenti successivi alla scadenza della fattura sar&agrave;
+ addebitato l'interesse legale, aumentato di due punti percentuali, fino al
+ pagamento completo.
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
diff --git a/templates/Italian-invoice.tex b/templates/Italian-invoice.tex
new file mode 100755
index 00000000..98598d9c
--- /dev/null
+++ b/templates/Italian-invoice.tex
@@ -0,0 +1,236 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{18cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rr@{}}
+ Tel & <%tel%>\\
+ Fax & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%invnumber%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+<%pagebreak 65 27 48%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Totale riga} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markright{<%company%>\hfill <%invnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Codice} & \textbf{Descrizione} & \textbf{Quantita'} &
+ \textbf{Unita'} & \textbf{Prezzo} & \textbf{Sc.} & \textbf{Totale righe} \\
+ & carried forward from page <%lastpage%> & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+ \parbox[t]{10.5cm}{
+ \textbf{Sede legale:}
+ \vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{0.3cm}
+
+%<%if contact%>
+%Attn: <%contact%>
+%\vspace{0.3cm}
+%<%end contact%>
+\vspace{0.5cm}
+
+<%if customerphone%>
+Telefono: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\parbox[t]{7.5cm}{
+\textbf{Inviare fatttura a:}
+\vspace{0.5cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%if shiptoaddress2%>
+<%shiptoaddress2%>
+<%end shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%if shiptocountry%>
+<%shiptocountry%>
+<%end shiptocountry%>
+
+\vspace{0.3cm}
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+Attn: <%shiptocontact%>
+\vspace{0.3cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{FATTURA}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabular}[t]{l@{\hspace{0.3cm}}l}
+ \textbf{Data fattura} & <%invdate%> \\
+ \textbf{Numero fattura} & <%invnumber%> \\
+ \textbf{Ordine} & <%ordnumber%>
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Codice} & \textbf{Descrizione} & \textbf{Qt\`a} &
+ \textbf{Un.} & \textbf{Prezzo} & \textbf{Sc.} & \textbf{Tot. riga} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%discount%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Totale righe} & \textbf{<%subtotal%>} \\
+<%foreach tax%>
+ <%taxdescription%>: <%taxrate%>\% & <%tax%>\\
+<%end tax%>
+<%if paid%>
+ \textbf{Pagato} & - <%paid%> \\
+<%end paid%>
+ \hline
+ \textbf{Totale da pagare} & \textbf{<%total%>} \\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ Tutti i prezzi sono espressi in valuta \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+\vfill
+
+<%if paid%>
+\begin{tabularx}{10cm}{@{}lXlr@{}}
+ \textbf{Pagamenti} & & & \\
+ \hline
+ \textbf{Data} & \textbf{Conto} & \textbf{Documento di riferimento} & \textbf{Importo} \\
+<%end paid%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%payment%> \\
+<%end payment%>
+<%if paid%>
+\end{tabularx}
+<%end paid%>
+
+\vspace{1cm}
+
+%\centerline{\textbf{Grazie per averci scelto!}}
+
+\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+\footnotetext[1]{\tiny
+Per i pagamenti successivi alla scadenza della fattura sara'
+addebitato l'interesse legale, aumentato di due punti percentuali, fino al
+pagamento completo.
+}
+
+\end{document}
+
+
+
diff --git a/templates/Italian-logo.eps b/templates/Italian-logo.eps
new file mode 100755
index 00000000..3a22b2ff
--- /dev/null
+++ b/templates/Italian-logo.eps
@@ -0,0 +1,1334 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: GIMP PostScript file plugin V 1.17 by Peter Kirchgessner
+%%Title: Brazilian_Portuguese-logo.eps
+%%CreationDate: Thu Aug 31 19:25:05 2006
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 2
+%%Pages: 1
+%%BoundingBox: 14 14 415 215
+%%EndComments
+%%BeginProlog
+% Use own dictionary to avoid conflicts
+10 dict begin
+%%EndProlog
+%%Page: 1 1
+% Translate for offset
+14.173228346456694 14.173228346456694 translate
+% Translate to begin of first scanline
+0 199.99842519685043 translate
+399.99685039370081 -199.99842519685043 scale
+% Image geometry
+400 200 8
+% Transformation matrix
+[ 400 0 0 200 0 0 ]
+% Strings to hold RGB-samples per scanline
+/rstr 400 string def
+/gstr 400 string def
+/bstr 400 string def
+{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop}
+true 3
+%%BeginData: 80402 ASCII Bytes
+colorimage
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+fDblg6K\=Q"WB-W4?Pdo4p6+l]&ih]rrrDpij);hp&GL',"Q[#Lmt]mi:-UBo)Ajlp>C')q#Ca-
+0OT-[R^UZ0q#:3k!rftBr;[*-4`Pt>]\`;[p&>'%-iO)I,T-[I!!OC1jn&BKnc&dlp#<8P%e]l2
+"!U9TI#+8tb2Ddcrq6:-g3RO66TZkO/89R1ak>G'lMCDUrVc`p_uG5~>
+fDc3-AgAK<(`*r''GKsK"r/C?3]oMfm61YtOLjQNo`#*op#<8P%e]l2"!U9TI#+8tb2Ddcrpp'l
+rq>8m&GZ;5#V]Y2L75R!lM1AVrrW28$N0r1#!HsURCqDKrq69l[jV.T![JWbkPtc,R-!r:rpg!l
+rq59V:(Hst$j.\EE.!J2ZHD+pqYp0f(YX1N<'rc'0emR!XjZ4ijR;sBr;HTnrknbd~>
+fDc6;J3>hE.46Gg,U"<#*sNl<2EEr_4mbE9G`]Muqt0mlrq59V:(Hst$j.\EE.!J2ZHD+pqYp'c
+"TJ,QFV+?K$4&=nG_VZqdd$W,r;Qit^^C#?#R3G3J!mt+o`"O`!OjHU!!4D`!pBUf*LPs[qu6-c
+"oe2SZ;(o'!"8rR88rs4S$L2pnG<.WrtjC8CK*Y`2)R41LpG[tlg+-<qu$Ekrr0h8J,~>
+gA_6CM^RKa#SJU[Cl4ICR$dH4"J2pKnc&.[#laS]ca8*s2'Dku%L*7S1/_:`E/L-e^<lNJn,*ps
+lGB9$.1d!s#n@h2C5&"Yb2DgerqcX(q78g7,slHqMPJ)Jp&4[cs*k'%9)\er&Pd:_DG`D6!pTal
+;j3B4I=8["q>L$e)ZKKoca5M5$jR7P',DcW=EAnFP+oA,h<ak4r;@'%mG5jnSV:rb4tRZYo)K.6
+.77QqVp"]-r;HW:s*t~>
+gA_WSXCb's7mAmd0J>%2/aY(p3(dS&NKf`rR.?XJT!Hl9rq$..rqGU%[!bb.+:/;Z%M^0O>@_Mp
+OJ9/'f_#".r"](qb,Jl)'b_,j)_+BrKpT$di:6^DqYq$#\j.Db6>_(,UVl'`rV6EmU]HuXrW!3>
+=ES\+<]_9&l2V,jVQ@/!U<E9+rV$70rqGU%Zq25S%MBBi(a_LMF+&e+U:&/"m.U>Sr=/\qk1@he
+W0`?`B2UiFr@A%'1d4D,8ded6G`JT6f_#";rVjq=J,~>
+gA_WV`KPh&H>[%h;Gg7d:@1a]<FBcqNg,isR.?XJT!Hl9rq$..rqGU%[!bb.+:etm&f`Dk@V^"7
+Q)D4<h=UO3r"](rd'%+>(`!f$,WA_DKpT$di:6^DqYq$#\j.Db6>_(,UVl'`rV6Em^B(K0rW!3B
+@!Hj=>!*c+l2V,lZbFJn^"N,TrV$70rqGU%Zreh$',D<")CRjQF+&e+U:&/"m.U>Sr=/\tmGcjE
+_7$G9OF(D5rCmAj>ASW`J.%6uT<>oSiV!$ErVjq=J,~>
+h#@HEIh:?7#Tc9FPJ##]c-H(0"4GulqXORjrqc-Bc+C!IjT#8`m/R?)T"N_Cq#1!f%/obL[[`MH
+U:8M5p\spee,TVcf]W#.pAY9pqXED]p&G=-'G_N()]Tmq*WQH&!!iZW>`-Jlq#(-9s*t~>
+h#@HJUfI@c"%YgF4l\X1;/(]X^WF^EcM,WedbO6dnc'C(qXEFf];hGR.Olks.P*2,2*!ie7S*/D
+!)3/["\;$E2D?]].L7OVFe67umJ-YTrs\ksfX@<5QD1k8kkG)Nrt@jG!<<*#(b-sc0JtaF0Ie1Z
+$3BMo#oYim84nopkP+uLrtbV1nDI&"0eP",.Ochs/1rtM85<,d>l%b,:\RH`84>d,rB(0F5Xe6:
+8dJ+(MQ5+sq#(-9s*t~>
+h#@HM^PMi="+56/C#`k4FbQ3b_9'pGcM,WedbO6dnc&ppqXEFf];hGq8cD6f8P;iZ>@VDgG^Y)7
+J,k2sJ.d?ZFD5#[9h@lH8ksi,]\)WHrV6C$rUSULS<B24\'X@5rqHF+H9;6/!!+Q@7nZfd?<U9"
+2^8k8m/RGEAorHOWS$D.rq??urqc-BFC%sC91f+R$;!ld>@_PnIYEZ=qi1Z0pOE?oG].?qBEN!f
+G^]78#_J8?^teSWr;Ot@J,~>
+h>[MB'\!*i,YiZYa62mZnF?&JncSOYqu6'a#Q=GfkM4KR)UeZi*-S.$mJQYW$N0GOcGmrTj73!F
+p\t6"ec5mb/8hc?meueX"TA*n,R_Hh#7aOmh":IArmCar~>
+h>[M`=SbYi8,u0:7LELMS$gZ-mdKZ8nc&(]o_87^n,EXkq!mP&dV;DR3!VH*4[;>&7nDf8%S9,W
+5<Lqc3BBc^Us&0'p&>Bsn__X3aOK8?qYp6h!OE+3!##DT-n$]+5!hV'5!1e]0J"C`$j,nu#UVT+
+?\Yl5meueX#Q=FJ>Xpq<3W:uC3BKAh6:FC8lq.=N84WVJ!_5dQmn*g`J?Io(qYgE@s*t~>
+h>[N!MYho*Isl\"H4#P$Zc1S]mdKZ8nc&(]o_87^n,F("q!mP&dY;XJ@:E_XBl7s8H[^J.J.@!Q
+F)5K!@U`kaL8<#[r:U'sr:/[i`lQZinbW7ZrrKG;rW!T71dso2?>FS'EGT5p>#S'T-5?[R!!rZm
+AU&loZI&%<o`#U'pn<@]Bk:d_@:E_XBl7s8H[^J4J-(4LI/A3kI"$S7J-Uh)_rgUfrVk4EJ,~>
+hu<`75k=sc"VrFC5tXgF:/4DF.i/9O!!*]Ur]C="me$ATli.:jr:opKd%Y/9'&!<k"#=J;Ni^b$
+rq-3qrV,jMn+?JTpAY,>f)Q'a;0.S\XNp84o)Asihn"ng;)Ad$!!WNiQK@f9rmUmt~>
+hu<`@GOnE:9Mnkt@V0:fC2.Hn>Z4;[8dSO+F*)Mgme$ATli.Fnr:opKd&28#:.@`E8`E>N8Ou<>
+7TaSXNi^b$rq-3qrV,jMn+?JTpAY,>qu@NQ,q(K/6:XU>84Z3<69dRl1bgU.)%[&F!!j*8F,?6b
+cL1Z%rseb\\s@h_>t[RS7Rp!@b";k3FKjs$qYntDJ,~>
+hu<`GT_![<IscQgH[C/>IKP(MIt-[4!Jlg9S-6.co_SRQrso&+q"3gtWf)=NG^=adJ)l+hIsu`i
+GBS%NIZCMZo)A:]#Q=DemdKfErV$6kHi3pL!AZo0<+U)rrdG<'H$++DB44tC:-L3L%.jN*&m043
+Q`SL#rUTsuptrZOMLp5#G'A1WI"$RgJ-LRo_WgairmUmt~>
+i;Wha&G?)3"X69@G^kI,P*_]1rh'IfS=#7L5SE5[">J!QnGMJL#l<l9^9FDd9H)af#qBJ1L7#-c
+jnSiGs8Drirr@!8!!4`+#i,Ic89UN4bi8<po)B'omao@cYc+.?63tL0"V>7hnG)t4s*t~>
+i;Wi"<VB#m9N5D9G^kI,P*_]1rh'IfS=#CdBN""c"DGs4nGMJL#l<l9^9FDnE)tgf$!(hdL7#-c
+jnSiGs8Drirr@!8!!Y&=.ks.S8GYpg8Ou<=69dRm2)6d5*"E#D!!c&<S@?`%p&=O^$N'8C_mckK
+Sr%2W`(C25NR[ImrRLpu~>
+i;Wi2M"Z?,IsQ9]G^kI,P*_]1rh'IfS=#ItL4SN<"H^d\nGMJL#l<l9^9FE!MLs]8$$^E6L7#-c
+jnSiGs8Drirr@!8!!b/H79+#EI=M0F%tB%UH$44GBOY4I:e*2V!qu["89UN4bi8<po)B$nmao@c
+Yc+.WLr4`HL9'%tq#/bCJ,~>
+iVrn9p&GO<7W!I+P+J\^^;eCEe,@c%d`oeFZDDb'!pTag,b;X/qWIkdrqc0Li7?&`XFWVBirBDi
+9lbcMYfPVcpAO"N!/(1L";kW^EBr@\#!RdOh!Xn6nc'!rqXWt6i7cW"\Y):S!"&cA/3cp6C2SKO
+KDgH,J9#$l1DK9X"TqW;mJ$S2s*t~>
+iVrnZp.>ck@;pOIP+J\^^;eCEe,@c%d`oeFZDE@g9Bo+P>b/RgqWIkdrqc0Li7?&`XH.-lj%9YP
+@WI!bYfPVcpAO"N!/(1L"rLi`F'qF.oh#Wa84H$85Wq.e1Fs:Bq#CU_L:H%,pAFI\$i^"nlfI'Y
+d`8noDWsb":g%1=D00uNJV3oS"bM/FCg^008d.n<bO,'&fDg@~>
+iVrnsp4*U"FE;b_P+J\^^;eCEe,@c$d`oeFZDEhBl$rniS\=([kPkqhqXNh.f#kY,R>QRUJ-pdG
+Ee'I[aP?+TrSmhWKDY]R(h76%G^"W1J.7!WI!U!XDe`ij=A("Cq#CU_L:H%,pAFI\$i^"nlfI'Y
+d`8nsNp2'#I!U'`H[L9mJV3fP!J>skJ-CLtdd?f-fDg@~>
+ir9!spAb^?;KRDLTsM\cguRbgo(;VSp'^Qco'Yc%fZLdo7Ki&X"<E/rh"^"2$i^)#p@.8#cFooT%
+d!`u!`F)pUr;*Wq#(-NrrL.Cqu?puFHE]?JdCT@!=T>3!!P?@^Ztarn,NFe$N9o!q"4":g;nL?m
+f3e)/l6J6KT).cU8P&qZM_'8Za$U.SV:/k!q?6o"'3Y5q#/nGJ,~>
+ir9"HpIYrnA9<<^TsM\cguRbgo(;VSp'^Qco'Yc%fZLduDbTLi"B:&Th"^"2$i^)#p@.8#cFp'#
+;<:CVA93O%`80kVr;P^U!QP?@!!Z;BOKZBc:@Up_8Ou?@6pX!s/dhFT"ZVIUlMUYMs8W'*rVZNe
+o^:kqaHB6c8e"NtATN6PN0Kj,VlR#,r3Qa9Z)jdmNceQ!nO`sYK$s&]rRq4$~>
+ir9"fpOEd$EccelTsM\cguRbgo(;VSp'UKbo'Yc%fZLe&NpD2uI>"ZVpuVM`rquWdnE8TP]r@0H
+ja[YVF,-R0h<t(9ro3qY`ru;?##TK(YJ-renph'sIXHKeF`;))8.,1n"ZVIUlMUYMs8W')rVZNe
+o^:kqaJJ<T%=WPDFaSk$PanJGX08i,Zj3qBXJMJOMM(DK"bEE!mJ-Y5s*t~>
+j8T+/p](g,5&bn2VnUU<m.C)NrVlflrsA]'qY'F@fZ'=>m/R8.I&>WmiVs5`r:ojHg;p9k"R#gj
+/ocWFcKY*%hu<[5qu@!=E/1aQlJS-;lMq#'>>b\&!!G<<]''%TrrrE"p[6mkmf3eaEIa7KZG+E,
+f%Ss<iqqdCini>8aLn[:8e(:j"Uoe:nG<.=s*t~>
+j8T+Tpdu&i?>t:RVnUU<m.C)NrVlflrsA]'qY'F@fZ'_$m7ILZI&>WmiVs5`r:ojHg;pF@9^#(R
+=E0(pcKY*%hu<[5qu@!=E/1aQlJSa>m7IOQ7nd5e#5\B'3Jb90rTF1arquNYhOa1.%:=+*PGGLu
+aO&Mlh;I;ij9ai&f[7dQY*X*(nO`s^Rc*]3rnII'~>
+j8T+opj`m)FDuVhVnUU<m.C)NrVlflrsA]'qY'F@fZ'tOm=>4a!iF]HiVs5`r:ojHg;pR`J`qUh
+G&`89cKY*%hu<[5qu@!=E/1aQlJT4*mXPLjI=$!B;?m!u"?D:LkPaTD"oeGombY5;J.6R>J<Qe7
+^<"[Pg>1]HqrA(ChUp5s]WRfaK(4?pKWsD(qYo7LJ,~>
+jSo4Pp]([*;KIM`][l<<qYgE_rs/Q#p?^YWLDTCZ"<2`cgA'P)#QFYqmblB\-0YC6>'usdm/$_=
+rrBP*!!kT/R`b'rq!(]B!!Ea>Fbj)q!!G98[cRGJrr`5pkZ@6R$q,K5^XhE/n+?>Kq>0sc$iBep
+o^D##d_Vqg$1Ruu1qr/HrS7F'~>
+jSo4lpdtofA93Er][l<<qYgE_rs/Q#p?^YWRTJrM"B'WEgA'P)#QFYqmblBh?g1/eApg5pm/$_=
+rrBP*!!kT/R`b'rq!*=p8d%n&Fbj)q!!G98[cRGJrr`5pk_&@s$t+IQ^XhE/n+?>Kq>0sc$iBep
+o^D##d_W#4:[q$[C;oB0rS7F'~>
+jSo5+pj`a%E-$])][l<<qYgE_rs/Q#p?^YWVhOSis*OmFgA'P)#QFYqmblBpMWoWqE.";%m/$_=
+rrBP*!!kT/R`b'rq!+O=J-::;Fbj)q!!G98[cRGJrr`5pkbIWt%!?rf^XhE/n+?>Kq>0sc$iBep
+o^D##d_W)NK(4?oP02t]rS7F'~>
+jo5A)"Si$(!`*lnWQXDqqu5m\"o\5`gq6>M!!F6gVV:h"rrrAsnDM>llMq(oE/M0dqVD/O@/Bp0
+:4TD#q#CBc$g[ir:N_`*_YX<98;=S8r8[eZrqbC[nGie`KsKM+qYgE`rs8W%q=En-bcF/$!!Emu
+hXUO"s*t~>
+jo5A8:&%<d@WR@)bN8Bnrp'LerV5d8^NT*="B'WEgA'G&"o\8di5gH78d.n-MR_aDh>[I_qZ$ms
+J?.K#s8Vailq.CiFcWoHqZ$aiL:67Bj8T5\qVbBC8dAgZZJ>*KrVl?e#labtoBP/UY]'&("B;;U
+nbh5CJ,~>
+jo5ACK(sj%EH?r8bN8Bnrp'LerV5d8_Ns\As*OmFgA'G&"o\8di5qMTJ-CC@MR_aDh>[I_qZ$ms
+J?.K#s8VhIm!o4YFcWoHqZ$aiL:67Bj8T5\qW*D$J-U7OZJ>*KrVl?e#labtoBP/U[#jg."GO5>
+nbh5CJ,~>
+k5PJR,kq?E0QDiId-UW.k5PV`pZg:]#k@ru)gnO:pt>ZLrV5d'lMq))FI()<rn[SS./NuL;i%sG
+r;Zf#li724E/(OJn,!(f@Z%e]rSdbWq.K3t"@e6Zkl'iI#QF\snD_`I&Fof)!cuoZqYoCPJ,~>
+k5PJUAGAb%=`K1rd-UW.k5PV`pZg:t:@_![;LG@qpt>ZLrV5d,lUh=XFI()<rn[SS./NuL;i%sG
+r;Zf:lq.F\E/(OJn,!(f@Z%e]rSdbWq2t2>"Cd5!kl'iI#QF\snD_`^;t<Na99@]kqYoCPJ,~>
+k5PJXP5'P4G&`8:d-UW.k5PV`pZg;0K(=HlHig2!pt>ZLrV5d/l[T.cFI()<rn[SS./NuL;i%sG
+r;ZfKm!o7bE/(OJn,!(f@Z%e]rSdbWq60=="EoX5kl'iI#QF\snD_`mK^jQqV:Fu0rnma+~>
+k5PF"p](L*BRZZ!mJGrD"oeDjiMmgf!!F0eVV:gsrrN&8lMq&+H(`XZh#@?rqZ$k"N5+ZVs8Q?j
+!!Q)BSBL?equ?m=Eg"B.ro*kXrl=O/"@e9\kl'`F"o\8dhQ\Bs!!HlYlM:G;s*t~>
+k5PFLpdt`bCOVu$mJGrD"oeDjiO)k\8d&%>VV:gsrrN&GlUh:XH(`XZh#@?rqZ$k"N5+ZVs8S#D
+8d/[LSBL?equ?m=Eg"B.ro*kXrmgO2"Cd8#kl'`F"o\8dhR[+b8d'molM:G;s*t~>
+k5PFjpj`QtDLS;'mJGrD"oeDjiP(->JH'uuVV:gsrrN&Rl[T+bH(`XZh#@?rqZ$k"N5+ZVs8T7g
+J-Bt=SBL?equ?m=Eg"B.ro*kXro!<s"Eo[7kl'`F"o\8dhS>'>J-;FglM:G;s*t~>
+kPkS3"S_s#20=tpk5+$9"TJ2]^*iOQ":fgUf_F%t!35tt!'9TL";cE\f_=2$!$D(<#<RmZlM^bS%
+.+$!"`9"#i;'/G!!Q&BT[NK3i;WiT(@hG.7Z+hArT=+_rV5[#2XpbM@a"$3ro*m-~>
+kPkS@:&%<a>',n@k5+$9"TJ2]`a\R4"AX?@f_F%t!5e\,!*o"c"AsNAf_=2$!$D(<#<RmZlM^bV
+;XI'\9Q#Tki;'/G!!Q&BT[NK3i;WiT=n5/f@Z%e]rT=+_rV5[&D"1+#K$3ESro*m-~>
+kPkSIK(sj"F``b[k5+$9"TJ2]bDl.E"Fb`pf_F%t!7^st!-I^\"FPQlf_=2$!$D(<#<RmZlM^bY
+L@'KqIrC(Ji;'/G!!Q&BT[NK3i;WiTMXl9#G)EoqrT=+_rV5[)P4=&*R`jskro*m-~>
+kPkNYpAbA&J#Lukrnm_Yrql000(f2I%==l%p=B6DL]%2RB-$LB":TXQf_=2$!)ECk"qZO!jo#.R
+qu?^*nc/k8FHjf4nKe&5"X%c?[Ggu>rrN*rnc/e^MS&*Njo5J_qsi8tnGiZ+b3A`\s*t~>
+kPkO6pIYU&J#Lukrnm_Yrql04BD"k":4&bfp=B6DWr5NjCfU!t"AX<>f_=2$!)ECk"qZO!jo#.m
+r(6rank'*bFHjf4nKe&5"X%c?[Ggu>rrN+Nnk'$oMS&*Njo5J_qsi<VnO`n<b3A`\s*t~>
+kPkO\pOEEdJ#Lukrnm_Yrql06OS+,,IX@jAp=B6D_u5)dDgh/+"Fb]nf_=2$!)ECk"qZO!jo#/+
+r."crnpgpjFHjf4nKe&5"X%c?[Ggu>rrN+snpgjdMS&*Njo5J_qsi@(nUL_1b3A`\s*t~>
+kl1Y/pAb@.EK%Qnr7q;Sr:88hp&G4)HD/m_f)G_`rW!!*Ea8)6"*C6ep>#ZJV"t&p5cE<-r_37j
+!=D?f!!P$%U"&U2r;[$/@XF`ln,;,C!.j\@"@e9\kl'QA"9%lB.e3QB!e8G\qVqO*~>
+kl1Y=pIYTbEK%Qnr7q;Sr:8EPp.>H_HD/m_f)G`7r^m5cEcUYA"*^Hhp>#ZJV"t&p5cE<-rdar>
+!DQtm8d/@DU"&U2r;[$/@XF`ln,;,C!2]6Y"Cd8#kl'QA"9%lFAb&Fr99IHbqVqO*~>
+kl1YGpOEEpEK%Qnr7q;Sr:8L&p4*9pHD/m_f)G`WrdY'!Ee<e2"+$Zkp>#ZJV"t&p5cE<-rhfXE
+!If+\J-C.CU"&U2r;[$/@XF`ln,;,C!5J)T"Eo[7kl'QA"9%lHOR[i'T?QZuir=N~>
+kl1WbpAb@BG+-\GrnIGTrUeS^pAb=*H(`[\f)G_;rW!$:G*F0?!!?8jch#rl!V\&>!!H?;jlQ^E
+!!+i]nc/eTJ?-URr;[$*<d'Y=jS@X3!28r`"@e9\kl'N@"9.u;'Cl,+%[ti7r8[g-~>
+kl1X=pIYThG+-\GrnIGTrUe`LpIYQ`H(`[\f)G_rr^m8iG*H;&8crmuch#rl!V\&>!!H?;jm,V=
+8c`(1nk'$jJ?-URr;[$*<d'Y=jS@X3!5.kp"Cd8#kl'N@"9.uC<q8ic;52M-r8[g-~>
+kl1XapOEElG+-\GrnIGTrUeg&pOEBqH(`[\f)G`ErdY)uG*IjRJ-1.ech#rl!V\&>!!H?;jmRd!
+J,sh8npgjdJ?-URr;[$*<d'Y=jS@X3!714d"Eo[7kl'N@"9.uHM"6'!Ju6ubr8[g-~>
+l2LeM"SVm!3.7[VpY#QKrq4GJp](F&GbER[f)G^mrW!$IHD#o\!!G-A`U3Z\rrW/;#PnE%4hQFF
+!!6GR!qQBo7=\hVr;['0<csA,g@YC#rrBe(!!GcK]BK4PrrW2mU@A3d/?mh"roF*0~>
+l2LeS:%q6_>^`L%pY#QKrq4]?pdtZ_GbER[f)G_Xr^m8nHD$eu8d&I``U3Z\rrW/;#PnE&4hRFY
+rCR-)I7s0("(?^h%K-83$<D;.ZJ+sMh>[K%nk'$oMS&*NiVruYosaH`"CSIeo`!qOJ,~>
+l2LeWK(jcuG($7?pY#QKrq4lupj`KrGbER[f)G`3rdY)qHD%D1J-:7_`U3Z\rrW/;#PnE'4hS.L
+J,Xs!E.7A."*K-'%K-83$<D;.ZJ+sMh>[K3npgjdMS&*NiVruYou?NP"GX/6o`!qOJ,~>
+l2LaMp&G4`K!=20f`)'QoX5)$!!@J;e+M>m!;l]p"?(_.d3%oZ":U*rjnmj5!r/2dq>^O((]==9
+)KC]Vo)Je5%/^)1*G'JTYgr7@h#@B&nc/e^MS&*Ni;WlWo2tM_"(8e&q;hR+~>
+l2Lakp.>HqK!=20f`)'QoYaT$8cs=0e+M>m!;udf"C-DTdU2Q;"AXc_jnmj5!r/2dq>^g0/j)To
+8lBYf>4bDg68&cF!!aNUG`ArXnGM)A!8d9="Cd8#kl'H>!r__EnO`n1]]AnLs*t~>
+l2Lb,p4*9gK!=20f`)'QoZi-bJ-1%fe+M>m!<)kH"Eo6nduEpK"Fc0:jnmj5!r/2dq>^g05A,4h
+IsQ*nL\-)uE]X^-!!aNUG`ArXnGM)A!9j!("Eo[7kl'H>!r__fnUL_%]]AnLs*t~>
+l2L`Sp&G4aL:64AfDbpNo8`SG"*U3^o[j*Cg\h*T7Y7l%Mt$cL?DuQNh#@KTntQrm!!>W4S3H?@
+#REn@I[.=lnGM&@!8d8H"@e9\kl'E=!rUsdnc/e$R*+gojo9i~>
+l2La2p.>HrL:64AfDbpNo;VLW"*U3^o[j*Ck5@mT@=k`@Wpr[`Ei@[bh#@KTntQrq!!`Q>-otUV
+S8\0p"%G3q&c2P6#Y&laQ*o34r7h5OkOM4J@Z%e]rSRVVr8^fI8d%t[b3f,gs*t~>
+l2LaZp4*9hL:64AfDbpNo=XjK"*U3^o[j*CmJVP<FFpaS_!upWJZ.8qh#@KTntQrq!!`TM7V$C[
+S<Wf!"*n9=*r>pC#Y&laQ*o34r7h5Omdbl2G)EoqrSRVVr9/n*J-2=amJQ)GJ,~>
+lMgnZ#ke6$7Z"_?rRUuMr:!nc!!@A4d.Gri!4Vn,"]^>fk3WrT!!Fp@am]5arri5d`Dd$8!!<ED
+3$n%o#n&k6I#=Z6h=:EsrrDc`!!GcK]BK4MrrMtInGi\eY1r[Lk5Tr~>
+lMgn\;"dKa@Yq\[rRUuMr:#I:8cs4)d.Gri!6kC6"_NP"k3lID8d&Fdam]5arri5d`Dd$8!!<ED
+3&^[["!\`u$2FQ-$Tr?TMP@oBnbh,@!;Z1X"Cd8#kl'B<!W&P\8d'(8g\1X/s*t~>
+lMgn^K_Bp!G)<forRUuMr:$TZJ-0q_d.Gri!8II&"`oI/k4+?"J-:=fam]5arri5d`Dd$8!!EKE
+3(#k-4p*o#+V4AK#n&k6I#=Z6h=:EsrrDodJ-:%Q]BK4MrrMu.nULasY1r[Lk5Tr~>
+lMgk-o`,+aM7`!Mec,^JiZe4!")""Ho@O!BQi-mfArOLiqLnD>"9a=cjSR^3"o@Z<WE9kt!"/f?
+3bj)#T!m#.pAN\E!<2Nh"@e9\kl'B<!rhQsnc/e*QGr4hk5Tr~>
+lMgk<oh#?rM7`!Mec,^Jj^@pW")sXQo@O!B[J`]$D2c6pqPEaT"A=KYjSR^3"o@Z<WE9kt!"/f?
+3bj)#T!m#.pAN\E!<2O]"Cd8#kl'B<!rhXfnk'$^QGr4hk5Tr~>
+lMgkGomd0gM7`!Mec,^Jk`5Li"*^-Xo@O!BbPcqpEf@cuqS)KM",OGIqqM,SqX2q6=;9ou$NUl$
+C41u2[a=11rRq2NrpkRBG)EoqrSIPUrpba5J-2+Vm/?)HJ,~>
+lMgjNo`,+[M7VpLeGfUG[KHC,"D4"Enc%2@!-J2?#6T"0`pWih%e9T&9Vg53rnIGWr:ApkZ[t1$
+!"'N/@"b8acJe<irn%2@!!GcK]BK4LrrN%3nGiZ%Y2/m8s*t~>
+lMgjloh#?pM7VpLeGfUG`_?8%"E9^Onc%2@!1a$\#>9*#`pWim<:WWaC8BDQrnIGYr:ApkZ[t@J
+!q$$t"Uu:u6=>J@\Ba('qYo+Hnk'$oMS&*Nh>[NRPOV6IGHTcsk5Tr~>
+lMgk-omd0iM7VpLeGfUGdXh:G"Ep-Unc%2@!4r/[#CgcW`pWipL@KcrUt,/;g]%QWoA[s"Jj^1Q
+mJm\&(F_:0@"b8acJe<irn%2@J-:%Q]BK4LrrN&&nUL^pY2/m8s*t~>
+lMgj+o`,+KLq)UFeGfULp14%#"C786nG_)?!)WXp#820Hc1:l3D=RZ0'U$B"rS%8TrV>p?cU[p6
+"pu+Y&Io9OoDf.4<.1msjRE!Dec,U_o)Jn_MS&*Nh>[NT`:3g11n)VWroa<3~>
+lMgjSoh#?jLq)UFeGfULp5]#B"Dj=EnG_)?!.t2B#>fQ1c1:l3QL[WN;Ner`rS%8_rV>p?cY5-e
+,9%F7&ePT`"o\W;"UGMJ'cS>C-7CZLIBCrYnG3%5rr?-l8d&U\]BK4LrrN,KnO`pkR`k4"kPp&~>
+lMgjqomd0kLq)UFeGfULp8n.A"F$*PnG_)?!3#mI#CLZ]c1:l3ZgrVLJ!._8rS%8^rV>p?c[o1m
+4Y@ln&ePT`r!3lF'H8;N4$Z/&85t#>dcBonrRLoJM=Z6#G)EoqrS@JSrnd0q"Fcf_nG_VNJ,~>
+lMgico`,+1KX0V7e,KLJjV[mq"BUc+mf(l=!&4BP#U"Aae+Nb?h?WTO")+mopt5TKrV>R_r;[$V
+9ji7&N#_Hi"r;$DcLC]0e,KCio)Jn_MS&*Nh#@EP(@hG.&rO9_r9+*1~>
+lMgj?oh#?bKX0V7e,KLJl!"!W"DX+>mf(l=!,VX,#ZQ&@e+Nb?k"kP?"*h$*pt5TVrV>_N5Wh"`
+5tta4Ll=In./tb)/1rV52aV>LcLC]0e,KDUo1B-pMS&*Nh#@EP=n5/f:l;jHr9+*1~>
+lMgjcomd0nKX0V7e,KLJl\bUj"F$$Kmf(l=!1<b9#^U`fe+Nb?l@\YX",*l6pt5TVrV>f*DJ3Ka
+9hf#@Ll>:171MdX8PDr[=^GNQRa1F!rmUlIO7Rl)G)EoqrS7DRqhjrp"Fc6>k5=EBJ,~>
+lMgiLo`,*rFfF-jdf0@ERf!-g9T[-Xrn.5N%/p54/psPLq#CBk?1Isu0:L,Srn%/MT)AWo$!qV7
+Z+n%CoDf"(H)B<jdJj1go)Jn_MS&*Nh#@ES;=OVgG,j<lkPp&~>
+lMgj.oL]44WS@3rrrMu'r(7*'OM^A`f`(qLr^mGuI&>Tls8VtRnk'$kR`t:#fDc8j8Ou<=7::+u
+Z+n%er&+sB3'',a5X@b0H)B<jdJj2So1B-pMS&*Nh#@ESK(2G8I&brrkPp&~>
+lMgjWoRI$nWS@3rrrMu9r."opOM^A`f`(r+rdY9!I&>Tls8VttnpgjmR`t:#fDc9)IXHHbEF<dL
+Z+n&)r*Be=@:WtbD/jZ?H)B<jdJj3-o7-seMS&*Nh#@ESVso3<Wn[=3s*t~>
+lMgiKoDf"dS^@!-e,KLKoeuaK"@eBclM]E9!:0R`#X!X>hYR9PrmL?;"9a7bjSRR/!'pJ_#;pOa
+^>J8AIe3UC"+-iqpX0!@+7fI87Z+hArS.>PM=CQK<h7V/rojB4~>
+lMgj-oL]7"S^@!-e,KLKoks_#"CmG+lM]E9!:g"[#[Mt_hYR9Prn[-;"A=KZjSRR/!-eB6#?c)0
+^>J8ASGGV\77Kd<8P2X&Ut>@grr?Hu8d&U\]BK4JrrB(h8d&t$d.@8#s*t~>
+lMgjVoRI'nS^@!-e,KLKopG]."F,p@lM]E9!;6;@#^1a#hYR9ProEU"",aVLqq(iJT`0HIIro^n
+^>J8AZi"nRF`qtSH@1-jIs\!CpX0!@O7Rl)G)EoqrS.>P_sr6[I%AXUrojB4~>
+lMgiKoDf".OML/[df0@G]DV^43JtH4rRq2Na8Gu@8qaS3r;Q]sqb$DZ"@o9;o`!PD!8m_T#QeFb
+WnI+FrNPkn")jd[p!Nd>+7fI87Z+hArS.>PXmlAo6'B7UrojB4~>
+lMgj-oL]6aOML/[df0@GbPb$9?AcAYrRq2NfDS;E@YD,Kr;Q]sqgS*."DFU\o`!PD!9j>Q#AJ^g
+g%PFD`q)e)Fe7(TdJj2So1B-pMS&*Ng]%8lnO`pnP/cqhkl6/~>
+lMgjVoRI'oOML/[df0@GfDU4&H&B5trRq2Nj8FK2FG.$]r;Q]sqkEY3"G*Auo`!PD!:Ti9#B,-m
+g%PFDf(smmJ-1(ge+M,g!0?`%"Eo[7kl'99!7gUi"FH<Omf)GMJ,~>
+lMgiKo)JknXk`^!rrMmdrW!'TL:?=Cg&D&Mr;Zt&M7VmKrr3#u^@D7,'9U,rr7V)MGPqLI,BAjZ
+kktJ\iq!-P?CB+0dJj1go)Jn_MS&*Ng]%8nnGi\GMS/0Okl6/~>
+lMgj-o1B+)Xk`^!rrMnBr^m;sL:?=Cg&D&frCR3+M7VmKrr3#ucLOR1;3A][r7V)MTD_@f<H=/7
+kktJ\lLRUMDOJf@dJj2So1B-pMS&*Ng]%9)nO`pgMS/0Okl6/~>
+lMgjVo7-prXk`^!rrMngrdY,tL:?=Cg&D'$rI>#lM7VmKrr3#ug@BasJ!%S4r7V)M]D[6cH#et[
+kktJ\nFM/4H'utKdJj3-o7-seMS&*Ng]%95nULahMS/0Okl6/~>
+lMgiKo)Jn%N5k5^df0@H`Voi?-A8\br7V)MKDbcQBTBpqrr)itqD[sF"(A:dptG`Kq],P7#u>oA
+de!J<s8EQ$!!H,^aRB,Vrr=/4!!GcK]BK4JrrCpG!!F^([,h/Ks*t~>
+lMgj-o1B-]P/ckddf0@He,DrB=+mm>r7V)MVu93jDN;R"rr)itqJc!t"*L^#ptG`Kr*K=o$"J=U
+de!J<s8H!i8d&gkaRB,Vrr?Hu8d&U\]BK4JrrD6P8d&7M[,h/Ks*t~>
+lMgjVnpgh.`pEWOrrN)SrdY,tKX0Y9g&D&grI>#kNkt)]rVlopRdtt2KWNu(gA_3PNr=J7EdOM.
+oD\direL,r"F--On,Cc8!0?`%"Eo[7kl'99!:KB-"F>d/jS\6AJ,~>
+lMgi_nc/e@W7^bAdf0UK8cSi2JZdo,g&D%[rW!**F-F]6rr)itrMT2d"=]b]n,D)A!42V("VPd1
+[c@5`rrN*WoDf"[Nl(/^df0:ho)Jn_MS&*Ng]%91nGi\3JZdr-kl6/~>
+lMgj;nk'$jWn?tCdf0UKHqI"1JZdo,g&D&4r^m>fF-F]6rr)itrP%hp"Bq59n,D)A!6P13"]0/o
+[c@5`rrN+<oL]6qNl(/^df0;To1B-pMS&*Ng]%9;nO`p_JZdr-kl6/~>
+lMgj`npgjrWn?tCdf0UKU4@cAJZdo,g&D&VrdY0%F-F]6rr)itrQk%b"Fli^n,D)A!87=$"ak9F
+[c@5`rrN+foRI'iNl(/^df0<.o7-seMS&*Ng]%9AnULaiJZdr-kl6/~>
+lMgj&nGi\U\`!5]e,K^Q\c;^@J>q;ug&D%7rW!'6G+$YHqu6]l,kD!=!dqH:qV2#M;#L@t5^/[?
+nGW=c!+tj'">G_Fkl&s0!$Ce4"@e9\kl'99!8d5G"<2ijh"g16J,~>
+lMgjOnO`q!\`!5]e,K^QbXtK(J>q;ug&D%or^m;iG+$YHqu6]lA+N:q98'b6qV2#MK)J:F??_j]
+nGW=c!0ZtH"C$bqkl&s0!+>Cj"Cd8#kl'99!9irF"B'`Lh"g16J,~>
+lMgjnnULb"\`!5]e,K^QfRSL%J>q;ug&D&DrdY-!G+$YHqu6]lORdo(M72I@g]%8PrI>&nGFH_E
+rVc`rZLiYMHA]>urR1]GO7Rl)G)EoqrS.>PmdYf1I"/0Oq<7j/~>
+lMgjIn,NSP^?#%fe,K[L0E;0+Ut>=nrr=&<!!FEiT@EQ2rrN(_nc/e\U=/]5h>[N="TAB)#&/^m
+h>$pJ!06[O"<iH*jS[I+!$Ce4"@e9\kl'99!7pZ?"<2cfg\C"4J,~>
+lMgjhn4Egu^Z>.ge,K[LCJ%6OUt>=nrr?@(8d&+=T@EQ2rrN)&nk'$tU=/]5h>[ND:&[`g9Pf?a
+h>$pJ!3Yrd"BC,^jS[I+!+>Cj"Cd8#kl'99!93N@"B'ZHg\C"4J,~>
+lMgk*n:1Y$^uY7he,K[LQ@OL;Ut>=nrrA)YJ-:1DT@EQ2rrN)<nUL_9de*OprrM_CrdY0%DhG4K
+q#(-l`q4caH\Acer6kTFO7Rl)G)EoqrS.>Plg]K.I!qsJpuqa.~>
+lMgk+mf3JB]&NG_eGfdP`.DZ`WS$purrDfl!!Fj#VV1b@rrMU)o)Jn&NkaiVh>[J1r;[!SFHaZ/
+rVZZq^%;:-&V-t>qU5BD+7fI87Z+hArS.>P^@;1+)h"U;puqa.~>
+lMgk:mn*^m^#JbbeGfdPd[l,RWS$purrDln8d&7DVV1b@rrM[no1B-]O2'rWh>[JTrCR5qFHaZ/
+rVZZqch'g4:k5Y(qU5BD@.Qtn@Z%e]rS.>PdIBg3;LPFrpuqa.~>
+lMgkEmskP!^uG(eeGfdPgp<B1WS$purrDrpJ-:+EVV1b@rrMbLo7-snOMC&Xh>[JmrI>&qFHaZ/
+rVZZqh=Q4#I=SEUqU5BDO7Rl)G)EoqrS.>PhXQ+!I!qmGpuqa.~>
+lMgn\$h"&u)kc'Zr7(`Nq;fK$_;b7DrrCOH!!G?5XPWgMrrN(Gnc/btX4m=(rr=2?!!QYWVUkG>
+r;Qc]oDf!qI&5Kidf0:ho)Jn_MS&*Ng]%8KnGi\@IAkoqkl6/~>
+lMgn];X[3\>-6ZQr7(`Nq;fK$_;b7DrrD!U8d&FMXPWgMrrN(knk'"*X4m=(rr?I*8d/mWVUkG>
+r;Qcco1B+4V:bOjrr?Hu8d&U\]BK4JrrBb&8d&4DW8%+2s*t~>
+lMgn^L$sNpLUQ(2r7(`Nq;fK$_;b7DrrD<^J-:%GXPWgMrrN)0npggpX4m=(rrA/ZJ-Bn@VUkG>
+r;Qcgo7-pjV:bOjrrA,OJ-:%Q]BK4JrrCI:J-:.GW8%+2s*t~>
+lMgna=mc7n#^=qhqYo(G#6"5XhW+2)gA_/Zr;ZsiKX0Y8qYpWrk6LSY"=9DUmeu&C!4Vn,"X7rG
+]]]1hrrN*4oDeu,T$m8Zrr=/4!!GcK]BK4Jrr@Q=!!G30XPN^9s*t~>
+lMgnaM!dk=:6X>uqYo(G#6"5XhW+2)gA_/prCR3$KX0Y8qYpWrlqd4F"Bh)4meu&C!6kC6"]TK$
+]]]1hrrN+#oL]4+T$m8Zrr?Hu8d&U\]BK4JrrAkb8d&CKXPN^9s*t~>
+lMgnaX6tKAJu@8hqYo(G#6"5XhW+2)gA_0+rI>#nKX0Y8qYpWrmt:4^"FlcZmeu&C!8II&"aY0J
+]]]1hrrN+UoRI$iT$m8ZrrA,OJ-:%Q]BK4JrrBh(J-:(GXPN^9s*t~>
+l2Ladli7/P_!(Okf)GpPqY9marn@APO8T%]<J\3Kr;$?nr+5I""9NhTiVMI3!)3=k"]0Q=dIR;5
+rr>7T!!H;gbOPS\rr=/4!!GcK]BK4Jrr>mc!!GrIZJtcFs*t~>
+l2Lb%lq.D"`p!0qf)GpPqY9marn@APYl./sAr+"\r;$?nr/gJA"+di<qVV;QJGi(D@salro)ALc
+!-\!,"DX:Hnc%#;!+>Cj"Cd8#kl'99!.s`5"Cd"hiqqs>J,~>
+l2Lb6m!o5'b38Tuf)GpPqY9marn@APa8LMkF,7Bir;$?nr35aB",O>CqVV;QVYu#KEdOJ,o)ALc
+!1rh5"F6?Wnc%#;!0?`%"Eo[7kl'99!3#F<"ET4$iqqs>J,~>
+l2LeY+m]14%Y!:(qYmPq!-%l:"CdA+lM^PY!rgXNo)JnUT[EB1iVrr="TAB)&o`Z8iqiKN!,D-+
+"@J<imJbT7!$Ce4"@e9\kl'99!#Y5+"D!A#kPaWEJ,~>
+l2LeZ@I-Si;OZJ3qYmPq!1EdX"Dj(5lM^PY!rh%Mo1B-rT[EB1iVrrE:&[`g:iM6!iqiKN!0m+J
+"CmS4mJbT7!+>Cj"Cd8#kl'99!*etc"Diq+kPaWEJ,~>
+l2Le[O6hB#KWa2$qYmPq!4_uX"EKL;lM^PY!rh;5npgh8dI[@rrrMYArdY0"E/:s^qYC-k[.JkO
+HBH/5rmUlIO7Rl)G)EoqrS.>PN:DE$E/D0hrTO93~>
+l2Le`R-FYS0!+4.r2fnu9`4qoEg"H1rqQKoqb-M\":L1%kksE>!.4YE"[[F%b4#<)rrA>V!!G!5
+]]f=Crr=/4!!GcK]BK4KrrCC8!!O'WP/Zhfkl6/~>
+l2Le`Zg(-cB"I-tr2fnuJGi(CEg"H1rqQKoqgS-/"AXrikksE>!2BEa"^cJBb4#<)rrBCt8d&@U
+]]f=Crr?Hu8d&U\]BK4KrrCmF8d/%3P/Zhfkl6/~>
+l2Le`aQe9YOMp;Sr2fnuVYu#JEg"H1rqQKoqkNb5"FlHFkksE>!58>]"a"sWb4#<)rrC15J-:4V
+]]f=CrrA,OJ-:%Q]BK4KrrD6PJ-C=@P/Zhfkl6/~>
+kl1\U.-U^79YB]crN?/#/H,VQ%<Rr\nc&=`!WK_%!!??&g%OG*!W*`5!!NXDKWj5,q#:?5oDf"9
+Ks]q=e,KCio)Jn_MS&*Nh#@A$nGi_PGb3=TrojB4~>
+kl1\VAa)eiHcGCGrN?/#B`:U-:3;iHnc&=`!WL=68cs%3g%OG*!W61$8d.q+KWj5,q#:?EoL]6c
+Ks]q=e,KDUo1B-pMS&*Nh#@AKnO`shGb3=TrojB4~>
+kl1\WP3IK"SBgHprN?/#QMuC<IWUq#nc&=`!WLdCJ-1D&g%OG*!W@uVJ-CC?KWj5,q#:?QoRI'l
+Ks]q=e,KE/o7-seMS&*Nh#@AfnULddGb3=TrojB4~>
+kl1__]*%9t"TqN7m.^I_rr<?(!!F0aS^I*'rrMsQo)Jn8QH/Ckj8T+Wr;[!XFHjc2rV6BmmdpJ^%
+Y1Y;q:#?D+7fI87Z+hArS@JSq],/,"Ti+aXkrm:s*t~>
+kl1__b=q.m"\a?dm.^I_rr>mp8d&%:S^I*'rrMt6o1B-dQH/Ckj8T+prCR5sFHjc2rV6Bmo(5NW
+:4TG&q:#?D@.Qtn@Z%e]rS@JSr*Jnc"DWOjhYH@7J,~>
+kl1__f7E1:"bE;nm.^I_rr@`OJ-:4DS^I*'rrMt`o7-snQH/Ckj8T,.rI>&pFHjc2rV6Bmp@Nk<
+IXnNVq:#?DO7Rl)G)EoqrS@JSrJpDu"E/mohYH@7J,~>
+kPkSXIcg\8"&HSrp\b#trrD*X!!FToUXo/4rrN(nnc/c4ZJbQ=rr>1\!!WL7J>q2prqQKorYP2,
+"*gWopXB-B+7fI87Z+hArS@JRTCDmb-?>3`lMTiFJ,~>
+kPkSXTBAfN9RXtJp\b#trrDB`8d&1@UXo/4rrN)2nk'"5ZJbQ=rr@0>8d/s[WS$qDq#:Bo>4bDh
+HDK3fe,KDUo1B-pMS&*Nh>[JenO`scEfe*%r9+*1~>
+kPkSX\EAAHJY1<Up\b#trrDTfJ-:.DUXo/4rrN)CnpggsZJbQ=rrAYhJ-BnBWS$qDq#:BoMtDN%
+I&,Ehe,KE/o7-seMS&*Nh>[K$nULdfEfe*%r9+*1~>
+kPkV^nP\HK"[]6TpAFourrBt8!!G$*WS@4@rrMd5o)JnST$R!,jo5>,r;[!KEf[rur:^-j9(W)c
+@[tj<e,KCio)Jn_MS&*NhZ!WR,k:p>!aC&Ie+EY&s*t~>
+kPkV^nU]do"a.KDpAFourrCRI8d&=HWS@4@rrMh"o1B-pT$R!,jo5>:rCR5oEf[rur:^-jIe657
+E1G>Je,KDUo1B-pMS&*NhZ!WSA+<.pB7-K'o`"%RJ,~>
+kPkV^nY>2r"e*NupAFourrD$VJ-:+GWS@4@rrMkRnpgh6cgq(srrD6\J-C4=O1siUpAY,goRI$i
+SC-uXrrA,OJ-:%Q]BK4MrrN(]nULd]I&#0_roa<3~>
+k5PM[k=4M4"YQ&$o_\WtrrA\i!!GK:Y2K0LrrN(So)JmuLqMmIjo5<jr;["&I%o*^rq??lEqB>7
+:6irjrm^rJ+7fI87Z+hArSIPSL[b?J.rpT[jnn3?J,~>
+k5PM[k]l/\"_b%#o_\WtrrBY/8d&IOY2K0LrrN(so1B-[MnJ3Ljo5=CrCR6*I%o*^rq??lRe02T
+B9gU.rm^rJ@.Qtn@Z%e]rSIPSWpr[b=)s82jnn3?J,~>
+k5PM[l($gb"d6X`o_\WtrrCCDJ-:%HY2K0LrrN)6npgh$]]T+QrrB>&J-Bq?U=8c6pAY-&oRI'j
+Q-&OpeGfN0o7-seMS&*NhZ!SnnULdeEf@Tkqr[p/~>
+k5PP_q;O6k!!O-]eFE>4])MbXr;ZsmKs]q=o`"sU%eBZ&;Q&1@k5PJN#lXf-)KCYEjSSWM!1i`^
+"?MRZli,E6!$Ce4"@e9\kl'E=!RD&B!!WjDI\bE`roX62~>
+k5PP_q;Z;O8d/=ag%"k9])Mc)rCR3%Ks]q=o`"sY<:`]aDPu.\k5PJS;#X&j;K7T(jSSWM!4h_o
+"CI2*li,E6!+>Cj"Cd8#kl'E=!SpTC8d8%+I\bE`roX62~>
+k5PP_q;de#J-Cb7hXUC>])McErI>#mKs]q=o`"s]L@]otJu@8pk5PJVK`6K*HuY%RjSSWM!7(4e
+"F?*Eli,E6!0?`%"Eo[7kl'E=!U#.,J-LI?I\bE`roX62~>
+jo5G^pYS?t!!WX*Z0h8_rk8=3=T&4&=,OWRrUg*jr+Ya&"<*NDm/?,I!/pdU"\F!1cLCi+rrC15
+!!FU(\E<_=rr=/4!!GcK]BK4OrrM:.nc/jq:Nhr;kPF<?J,~>
+jo5G^pY^2R8d8%@_X7'prk8=3M#BpKBSsFcrUg*jr0-_E"B:W)m/?,I!3Q2l"^u\IcLCi+rrC^D
+8d&4O\E<_=rr?Hu8d&U\]BK4OrrMOtnO`soG*B`)qW7a-~>
+jo5G^pYhS#J-LV"c0b6&rk8=3XSmYPFGd]orUg*jr3GpE"FlZTm/?,I!6+ne"`ns[cLCi+rrD*O
+J-:7U\E<_=rrA,OJ-:%Q]BK4OrrM_SnULd_G*B`)qW7a-~>
+jSo>]p>/^*!!OX"g@G+=^]+9nr;Zt2Nkju[o`#!ldf]1A")b@#puq_Yq],S8"Uo7&ZJbNMrrDW^
+!!F!fYi,B-rr=/4!!GcK]BK4PrrM^JnGibPEepsSp&=(QJ,~>
+jSo>]p>:>W8d/[thX^OA^]+:RrCR3/Nkju[o`#!lhG!N5"+7?1puq_Yr*K@p"\rriZJbNMrrD`a
+8d&"CYi,B-rr?Hu8d&U\]BK4PrrMh3nOa!iEepsSp&=(QJ,~>
+jSo>]p>DP#J-CtCipusE^]+;(rI>#lNkju[o`#!ljb!)S",=&;puq_YrJpl-"b(BEZJbNMrrDid
+J-::PYi,B-rrA,OJ-:%Q]BK4PrrMqanULgdEepsSp&=(QJ,~>
+j8T8]p>U&nhuErc:Tj*Yr;OS5!#5A3"EK[Fmf)hX!W,O]!!G-KcLLnurrB+u!!PE,QH/Cko`"sk
+-M7?A"+@-%psf<D+7fI87Z+hArSmhXj!aEt"tFPCV9n]/jSs`~>
+j8T8]p>V6/i(=2KJ&(IFr;OS5!*K1l"EK[Fmf)hX!W.?;8d&LkcLLnurrC"98d/LDQH/Cko`"sk
+AG&Ot97<bmpsf<D@.Qtn@Z%e]rSmhXlXoZZ#$5_pV9n]/jSs`~>
+j8T8]p>W'&i.)#`U!;uur;OS5!/g`*"EK[Fmf)hX!W/Y_J-2=enc%eQ!7h$us)nL1a6iitrrN+^
+oRI$lW7q$rrrA,OJ-:%Q]BK4QrrMYSnULggDh=h4n,28HJ,~>
+ir9/\pZ.SOh>d^)K])IurPed:oDJXm%<Rr\o)A7\!WK_&!!EL[]&ihRrr>1\!!NI<JZIN!o)A\b
+oDeu+T@<J_rr=/4!!GcK]BK4RrrK_KnGib<D18(tlMBQ@J,~>
+ir9/\pZ/;QhF[r\U>tkArPed:pAISe:3;iHo)A7\!WL=78d%hD]&ihRrr@0?8d.k(JZIN!o)A]@
+oL]4+T@<J_rr?Hu8d&U\]BK4RrrLGMnOa!cDLS1ulMBQ@J,~>
+ir9/\pZ/f;hLGci\E*8XrPed:q>GgIIWUq#o)A7\!WLdCJ-1_@jnn<B!1s.>"E8pmg@t1<!2fC=
+"+-Zhp!j!AO7Rl)G)EoqrT!nYh2LlS#'k-9T#g3nj8XW~>
+iVs&[puoFNh#ITiD9q_HrQ"p<ci!hH)0h_#o^Vq^qCM4<"AP`Dp&=:W!6b<@"Y=_W_!:jgrr@67
+!!H2dbOPS^rr=/4!!GE?\`WhOrrM_0n,N\IDgn4ok5##:s*t~>
+iVs&[puoY3h+@iMP1K-trQ"p<h>KqK;L"b\o^Vq^qIoIm"Dajbp&=:W!8@BD"^#i._!:jgrrAY_
+8d&jpbOPS^rr?Hu8d&IV\`WhOrrMh]n4EpgDgn4ok5##:s*t~>
+iVs&[puoe]h1,Z`Y1rI@rQ"p<kP]o6H[)+0o^Vq^qNUT%"G*E#p&=:W!9O00"aG*N_!:jgrrBY&
+J-:1bbOPS^rrA,OJ-:+Q\`WhOrrMr)n:1aeDgn4ok5##:s*t~>
+i;Wu[qWuaU$Jb[c#%#OAq#/>7!3c>$"=&5ef(SY6!WAP[!!F%"_s@9err?=&!!QPSUt,,:o)A]d
+oDf"ZOMgGaec,Uknc/h9HIhZarosFaqk"ku!!i`qEe9n#jS/Z5s*t~>
+i;Wu[qWuaq:u+_I:5I?dq#/>7!64t0"BBcBf(SY6!WBIu8d&%T_s@9err@uU8d/mVUt,,:o)A^(
+oL]6qOMgGaec,VWnk''gOk91$rosFar4?;*8dJ*tEe9n#jS/Z5s*t~>
+i;Wu[qWub0K&(q\Ju72gq#/>7!8%1""F5<ff(SY6!WC14J-:@b_s@9errB5#J-Bq@Ut,,:o)A^;
+oRI'jOMgGaec,W1npgmqU=f&6rosFarQgMoJ-^XGEe9n#jS/Z5s*t~>
+hZ!`Uo%pZ;g].K^?-_m5rQG3@Mu<VY0RftTq!e:anJ:]r")+moq!A"]k61ba"W_T@]&rn[rrCI=
+!!Fg/]''%Brr=/1!!X3S]^Y^orpKdflAHnV!!jBGG)3!9k4el6s*t~>
+hZ!`Uo%poqge%`FLXbberQG3@Xo1ip=am=(q!e:ao3(ZW"*h$*q!A"]mS3[Q"]KE!]&rn[rrCpJ
+8d&:R]''%Brr?Hr8d8C[b4,3(rpKdfn>p-h8dJ:-G)3!9k4el6s*t~>
+hZ!`Uo%q*DgjfQ[V:b52rQG3@`Vk;iG^cUGq!e:aonr?k",*l6q!A"]o7Hsl"ab6I]&rn[rrD6S
+J-:4U]''%BrrA,LJ-Lh3eF<82rpKdfoYls^J-^L@G)3!9k4el6s*t~>
+h>[ZWpZTt`,hrA'$uO\eq>SY=!,2<2"?M+:htljB!W@H<!!FsDbjbW!rr@EE!!Q#@T$R!,nc&Xd
+"SD`t(50!Qqpk]H+70%7)dScMnbN(\rr2]m"THu<9*F_a#ms"=IZq"_lM:G;s*t~>
+h>[ZWpZTtq?JJ-V;N]c(q>SY=!0mFS"C6S]htljB!WA_`8d&IhbjbW!rrAel8d/[LT$R!,nc&Xe
+9_D!\;M;@8qpk]H@-pPm>`#`8o(i1]rr2]m"TIDfIn]?(#u+cHIZq"_lM:G;s*t~>
+h>[ZWpZTu)LtmLaKWEquq>SY=!4;]T"Eo@!htljB!WBY%J-:@jbjbW!rrBb2J-C">T$R!,nc&Xf
+K(XWsI>"ocqpk]HO6qH(MlF\OoD/:^rr2]m"TI]/V1S2e$%?u9IZq"_lM:G;s*t~>
+h#@TXqXE@]F;EX3"W<3Xo)&F4rr>Rf!!GcE[,_)QrrM$_oDf!sK"0n=mf*=^'`J(9%W7$-i;)mB
+!WFSA!!EISWS@3urr=/*!!`TO7UCD#R[X2E"+FiG&+0E)&j^D^N2+/Bn,!%@s*t~>
+h#@TXqXE@]N`Oq-"^7_^o)&F4rr@HF8d&RU[,_)QrrM:YoL]6ZL:H=Amf*=`=T1nr:2blni;)mB
+!WHa)8d%h:WS@3urr?Hk8dA%!HAeDs[^Q.D"/:s%<UNHd:g\3hN2+/Bn,!%@s*t~>
+h#@TXqXE@]TS2*N"c9\Jo)&F4rrAknJ-:"J[,_)QrrMJ=o7-q#\E*PTrrN"SrdY0$E/(^Wq=+Cb
+rfm)+"Fkm"g\B>!!0?Ap#_J/2XLc<lb00e."2;(4L[K["I!'IVN2+/Bn,!%@s*t~>
+gA_BUpZpGDA.IAp"?!RMpANA<!$qLC"B1,fkPalL!W6-m!!Gffeb&k0rrADa!!PH-QcSUnn,EAc
+oDeu/T[`Ybrr=.]!!t5jG_r*'dHC3#h>`!~>
+gA_BUpZpGEK2UJs"Dkm;pANA<!+Yt""D3J$kPalL!W7cF8d&h'eb&k0rrBJ*8d/LDQcSUnn,EB@
+oL]4-T[`Ybrr?HI8dSU9G_r*'dHC3#h>`!~>
+gA_BUpZpGFRY'=F"I$pjpANA<!0[;2"E]I2kPalL!W8thJ-:G!eb&k0rrC7@JH'cpQcSUnn,EBd
+oRI$jT[`YbrrA,#J-gF<G_r*'dHC3#h>`!~>
+g&D<Vr:K4%ZsO=!!!NREf^AS7df0:Mr;Zt/NPFcWn,EFfa7B96'9U/sr9sXc./j2M")!1dg\:.9
+!.shC"B:c4o)@5?!$Ce4!\Go/f)Q$Y.ri5UmeZq<s*t~>
+g&D<Vr:K4%[t%?38d.qNg$\\8df0;@rCR3.NPFcWn,EFfealB9;3A`\r9sXcB)YC+95K0\g\:.9
+!2fB\"DX=Jo)@5?!+>Cjs&]7qf1H9@?&-/JmeZq<s*t~>
+g&D<Vr:K4%\<qm(J-CP'g@"e9df0<!rI>#lNPFcWn,EFfht)@$J!%V5r9sXcPl6+8Dh5"Ep[8%]
+_"<-[HC2qIrmq)LO7Rl'GBn\hJ-LRk^=r#OrnRO(~>
+fDc*Tqt&mqZ=k!/!!FdZk4SZ%rrCgO!!I,#`9mQlrrN!Vo)Jl'Xk`^@rrBD(!!OopP/6G]mf*9h
+oDf"ZOi6Ydf)G^lo)Jt_FFe0r+9^j-":,u"5ofV!"W2O:o(i7?s*t~>
+fDc*Tqt&mq[=hQ98d&\=k4SZ%rrD3Z8d'*q`9mQlrrN"9o1B+.Xk`^@rrC1>8d/=<P/6G]mf*:*
+oL]6qOi6Ydf)G_Xo1B3pFFnpW=A7mM"AMfu@TE.p"^.;Lo(i7?s*t~>
+fDc*Tqt&mq[[;^'J-:nOk4SZ%rrDHaJ-9qU`9mQlrrN"co7-prXk`^@rrCaNJ-C1=P/6G]mf*:;
+oRI'jOi6Ydf)G`2o76j_"+uJeK'%RdIXHHeIeS?rLp>k.q>K.LJ,~>
+ec,mRqXNUl\8s"R!!E[eh!k3krrB\0!!NOIQ-/Uqmf*=eV"4Qh.@JBJrpg!g7/[)h>(*3sp&=CZ
+!7g]A"=oAAkl'*4!$Ce4%7Pf?[^N-%G$@?g+VbIZ!"98O,rS>#EdiXsO-3'-!!NdIf^S_8huA3~>
+ec,mRqXNUl\;FVL8d%t`h!k3krrC@C8d.n0Q-/Uqmf*=e]^n_u>+*S&rpg!gHMpG>B76T+p&=CZ
+!9*QB"BgVokl'*4!+>Cj%:Od[[^N-'KQV!8=&Mie8dnHm='fHTGCG1#O-=PV8d/+Tg[P%;huA3~>
+ec,mRqXNUl\=860J-:M/h!k3krrCmRJ-CFDQ-/Uqmf*=ecLZPhJ!nLKrpg!gUA]TGEIFY5p&=CZ
+!9s-+"FH$<kl'*4!0?`%$?grm[^N-'Nei@=rdXTk%"<VPH[0m_IY3H;P`>Be"bj&7nG3%?s*t~>
+e,K^QqXNXp]SSiUhZ*dcdd-`.fDbi;r;Zs2G+-bKm/I+Z)Y="4!dqH:qXXXdci!hI)0(SGjnnHF
+!WEAt!!F'jZJtc4rr=/4!"qbW[+OEmcGI#jU7.@/N.uLtF8U%iGCbC#LlIRcTW#**_T9cO#ke6%
+'7o05qYoIRJ,~>
+e,K^QqXNXp]U*D-hb"$(dd-`.fDbiYrCR2fG+-bKm/I+[>P(Mj98'b6qXXXdh>KqL;K7W+jnnHF
+!WGmf8d&%FZJtc4rr?Hu8ePTh[+OEmcGI#jU7.@/N/2t4I/J:%I=[$)LlIRcTW#**_T9ce:A.9`
+<hA=@qYoIRJ,~>
+e,K[PqXNXp]V18?J-;IllhUP3rrC7@J-::DRa:TlrrMkQo7-q"[c@5TrrD6\J-C:>Mn8$ImJd4d
+K_9iuI>"ocqptcIO7Rl7G)3NXj4_eq[]?-kQ&pr\L4k3WK)^B3K8#,@P*quAYdqWla/agcJ-C_7
+iplmEiW"E~>
+dJjLOqXWe!^nP'OhuEmGa6*0rf`(qrr;Zs=Gb<LYm/I+bJb&jE7&&-%rq$-i>l=X+8U6lPo)A%V
+!WF_E!!EISWS@4!rr=/4!"qbY]'&n`o'>Amf$DIU^:LbYYPPC4Z*h0Y`m*#fiTBLrmc()Uo`,+G
+ZKCiXir=N~>
+dJjLOqXWe!^nuHZi(=,kaQE9sf`(rDrCR2jGb<LYm/I+bV"71]B;3iHrq$-iMu?6O@<nEho)A%V
+!WHj,8d%h:WS@4!rr?Hu8ePTj]'&n`o'>Amf$DIU^:LbYYPPC4Z*h0Y`m*#fiTBLrmc(QPoh#?u
+^?5+dir=N~>
+dJjLOqXWe!^oEQMi.(roal`Btf`(rarI>#tGb<LYm/I+b^%-[UU=/]5oD\fnrI>&mH(E7OrpB^d
+rg*5-"Fkm"g\BA"!0?`%&pB/DkP=lClf?mQccO)=]!eoJqQ:@6[CX/nc.(M,k3VU*ikC0?J-:tR
+k4SZ3s*t~>
+ci4=Nqt97.aKp@Q"QBCa3PjeMrn7;O;uH\!-@DWApZqh[j9P;W":pO.l2:2R!TO=^!!NdJL9fb5
+li-rkoDeu,T[`Ycrr=/4!"qbY]BK4nrr2ikp@Ie?lK@9hi;;C=i8Wh\lL+69q"jpfrWDu]ZQAc>
+"U8r"meZqDs*t~>
+ci4=Nqt97.aKpt>9]AYIC;T'*rn7;OL&FUH<d^^qpZqh[l;.%E"Ak/pl2:2R!UEJZ8d.t-L9fb5
+li-sDoL]4,T[`Ycrr?Hu8ePTj]BK4nrr2ikp@Ie?lK@9hi;;C=i8Wh\lL+69q"jpfrWDu]^0L>'
+"\k-5meZqDs*t~>
+ci4:Mqt97.aKqCmiID&l_rUOjg&D&PrI>#rI&,Ehli."RKCjZsIuqJ1r:L!inUgaj"b(BEZJbQE
+rrB4oJ-11leFhDm!0?`%&pB/Ekl(P\rquTcoC2,3kN1a^qqhb=ioK:fmdg&GqY^?l"8V6&MY2K'
+JuIDkqYoRUJ,~>
+c2S+Lr:fX<d(PlG%c[Nl2nn;Frn@AP2#RCW0n-+Wq<S%]r*Jsp"'qt]p[nIcF8Z(B3Hg_/mJZAN
+!/gCK"B(W2nc%/?!$Ce4"@e9\kl(AXs8N&ss8;]h"oJ5rrVlflrr`/d_]SLN"?sffp\s:SJ,~>
+c2S+Lr:fX<d(Q/s;<(7OBu&a%rn@APDZ*01>(3I+q<S%]r/:/="*:Nsp[nIcSGc%`>]uFRmJZAN
+!3>`a"DO7Inc%/?!+>Cj"Cd8#kl(AXs8N&ss8;]h"oJ5rrVlflrr`/db$FX3"E;HFp\s:SJ,~>
+c2S+Lr:fX<d(Q<<K&_@aNPOQIrn@APRf.a>G^cXIq<S%]r2fL?",!Z.p[nIc\c%$^F`s(kmJZAN
+!6"M["F?HZnc%/?!0?`%"Eo[7kl(AXs8N&ss8;]h"oJ5rrVlflrr`/dc\qFG"I.*mp\s:SJ,~>
+b5VbGqXWk&`iNbjj8]<@^>ekcg]%6br;Zs]JZdr-li."b`:Es3-()dArV$6lmh#Hu"Tr7bX4m=5
+rrB=r!!GKI_sIBSrr=/4!!GcK]BK4Lrr`2h\eF]9"<t22o_mqPJ,~>
+b5VbGqXWk&`ianpj@TPh^Z+tdg]%7RrCR2uJZdr-li."bddp'6=d[:urV$6loMtl_"\WT\X4m=5
+rrC+38d&Ra_sIBSrr?Hu8d&U\]BK4Lrr`2h`E)V'"CA[uo_mqPJ,~>
+b5VbGqXWk&`itb^jF@Am^uG(eg]%80rI>#oJZdr-li."bhXc7#J!e=FrV$6lpPAcu"E/gkg@sn4
+!8$jn"F?0Im/GW:!0?`%"Eo[7kl'?;"8q]7L\-*"MSJ-BrT=-1~>
+aSuPFr:]L7c+%g=jT#EP_;tCjh>[K@qu?jgKXBh<lMgn^2"UbN!d_65qY'phO8T%^-?>3`l29iH
+!8d>J"=8o9kPa$4!$Ce4"@e9\kl'<:"8q_s$1n3#'qsFRr9+*1~>
+aSuPFr:]L7c+&X9j[oYp_;tCjh>[KFr(7*#KXBh<lMgn^DY$I&K!aP6pAY,srCR5oEfe*$r9F:^
+kO_@L=,FNOrR_&L@.Qtn@Z%e]rS7DTr:7^$oL]6eXk`LFkPp&~>
+aSuPFr:]L7c+'6tja[Jq_;tCjh>[KJr."omKXBh<lMgn^R.Gh1LpZ1<pAY-5rI>&rEfe*$r9F:^
+mdu#4I#5GtrR_&LO7Rl)G)EoqrS7DTr:8'aoRI'u[G:?NkPp&~>
+`W$2Aq!d=l]RM<k!!?`Lk5!j5!6b9?"B1,ekPXWF!WJY]!!GEWdI[A4rrN!6r;["$I&#3`rp'La
+rX8B!";?BkiVM1+!$Ce4"@e9\kl'99"8q_Z"7uQr&#@nLr9402~>
+`W$2Aq!d=l]TQXa8csU^k5!j5!8@?C"D3J#kPXWF!WKS"8d&[tdI[A4rrN%%rCR6)I&#3`rp'La
+r_iD]"Aj]SiVM1+!+>Cj"Cd8#kl'99"8q_p9_:p[;QSRBr9402~>
+`W$2Aq!d=l]V(&BJ-2(Tk5!j5!9O-/"E]I1kPXWF!WL:5J-2IloD\Ob!W@uUJ-Bq?UX\r8lMgna
+L@p'"I=e]^qUb`IO7Rl)G)EoqrS.>Sr:7[ToRI'sZJ"gHkl6/~>
+_uBu@qXWe!^OdTl!!E@Ub3Sr]rrAtp!!HSd^?Y[]rrMX&oDf"%N4nHQq#:>dr;[!:E/M0dqs"+]
+r\jEL"9NkHgA';"!$Ce4"@e9\kl'68!rVP*o)Jn2WnHtAl2Q8~>
+_uBu@qXWe!^Q_sd8d%eMb3Sr]rrBk48d&mf^?Y[]rrM^loL]6]NkOZSq#:?+rCR5jE/M0dqs"+]
+rc%L%"+7$#pt,NG@.Qtn@Z%e]rS%8Qr:#pA8d&8!g%,++s*t~>
+_uBu@qXWe!^S6JGJ-2@blhfQ=!7Ujr"ETO9lM]uI!VM9@J-:@^^$,ChrrCCDJ-C=>MR_aEl2Le`
+Re2+4I](opfDbi3o7-seMS&*NgA_6Pn?2A5"GO/7o)7hQJ,~>
+_>ac>qt0+(^ip[\!!Eq.dd[4mrr@iP!!Hnq_sIBerrN(=o)JkpWS."?rr=bO!!P]6S':C$kl1Wp
+oDeu&T$m8_rr=/4!!GcK]BK4HrrW)b4nAXV.^\"(rp'N6~>
+_>ac>qt0+(^lDL\8d&(gdd[4mrrB(s8d'$n_sIBerrN(do1B+(WS."?rr?m68d/OGS':C$kl1XG
+oL]4)T$m8_rr?Hu8d&U\]BK4HrrW)bF7W!,@("e_rp'N6~>
+_>ac>qt0+(^n?DGJ-:J%dd[4mrrBt7J-9tU_sIBerrN),o7-ppWS."?rrAGbJ-C%>S':C$kl1Xg
+oRI$jT$m8_rrA,OJ-:%Q]BK4HrrW)bRe)%4Lpl+3rp'N6~>
+^]+Q<r:T:)]OqT:!!GKkh"La*rr?U-!!IA-aRB,lrrC^C!!FI2a6ij%rrBD(!!NRBKWs>.kPkOB
+oDf"fQHAXqf`(pno)Jn_MS&*Nf`)$LcjfRH"Albjq#9UZJ,~>
+^]+Q<r:T:)]nK8I8d&k6h"La*rrA2Z8d'4"aRB,lrrD$L8d&4]a6ij%rrC1>8d.n*KWs>.kPkOb
+oL]7!QHAXqf`(qZo1B-pMS&*Nf`)$LfMhB6"E_<9q#9UZJ,~>
+^]+Q<r:T:)^70`>J-:\6h"La*rrBA&J-9qXaRB,lrrD9SJ-:@fa6ij%rrCaNJ-CF@KWs>.kPkP%
+oRI'jQHAXqf`(r4o7-seMS&*Nf`)$LhM(QO"HL.Sq#9UZJ,~>
+^&J<9r:K4&Y!D:Q"9O%gkka6;!'pJ_":B7<bjsrs!W5=V!!@;Ji;*6L!'pJ_"Yb%_`U*QdrrBJ!
+!!G0>_!D!Prr=/4!!GcK]BK4GrrW2pN:R#P!e\MXqs494~>
+^&J<9r:K4&Zu>8&"A=Wgkka6;!-eB6"AO!*bjsrs!W7678csOJi;*6L!-eB6"^,r3`U*QdrrC46
+8d&I\_!D!Prr?Hu8d&U\]BK4GrrW2pWq/gc99@0Yqs494~>
+^&J<9r:K4&\<6',"-gXcqV_ART`'BDIWUt$o&p#Rr1NY3",F2?q>1*kT`'BEG'&tfm/?,I!87!p
+"FH0Eli,Q:!0?`%"Eo[7kl'06!rhu0npgh1`p3Hes*t~>
+]Di*7qt&moL_B%S"=g4qo)@VJ!$(q;";#dIdIcW%!WK1l!!G?Sd.726rrC+;!!QVVVqC_BkPkPH
+oDf"<LUQ=Bf`(pno)Jn_MS&*NfDbpOn1+#0"<aVko)7qTJ,~>
+]Di*7qt&moS5eiI"C7hOo)@VJ!+#Oq"Aa63dIcW%!WKt-8d&Upd.726rrC[K8d/jVVqC_BkPkPN
+oL]6eLUQ=Bf`(qZo1B-pMS&*NfDbpOnRqGc"BhYOo)7qTJ,~>
+]Di*7qt&moWeB_h"G3Gto)@VJ!07#."FYKadIcW%!WLO<J-2Cio)ARe!9=!-"`Spgf_5=-rrDZ_
+J-:7T[cRG>rrA,OJ-:%Q]BK4FrrW2jPOj;-Ju@)grTsQ7~>
+\c2j4qXE@Q46uqLHF`,5ir9#Uqu?j<H(`[\k5PJU)Y="4$&H7Wqu$Ho;#L@t*c[.OkPOEA!WEc*
+!!EXZXl'!-rr=/4!!GcK]BK4ErrN%nnc/c%\)R5Ms*t~>
+\c2j4qXE@UD<sjsKXp1?ir9#Vr(7)iH(`[\k5PJV>kCVk:5cdJqu$HoK)J:F;fRc/kPOEA!WH0n
+8d%k=Xl'!-rr?Hu8d&U\]BK4ErrN&0nk'"1\)R5Ms*t~>
+\c2j4qXE@YOmIT#N4J$Gir9#Wr."osH(`[\k5PJWN:_W'IuM&'qu$HoW;V5MH?"nVkPOEA!WIrK
+J-:=OXl'!-rrA,OJ-:%Q]BK4ErrN&Anpgh$\)R5Ms*t~>
+\,QX1pZg7G!q$$k3hb!mro="YfDGUO-%)N@pZDJVrHe&8"&c)MpAP!kg\_$T89pfRo)@eO!WG:T
+!!@8;fCmks!$Ce4"@e9\kl''3!V@E(!!F./bO5>rs*t~>
+\,QX1pZg7g9^YLUA"h?Aro="Yj8;LP<d^^qpZDJVrL`[R")b'ipAP!kk57gT@!S?jo)@eO!WI66
+8cs=6fCmks!+>Cj"Cd8#kl''3!VKdj8d&+`bO5>rs*t~>
+\,QU0pZg8(m=5=jU!iN2j8T,Fr."oqI&,Ehk5PJ\](:FSJuI>qrVllbr."rkH(NCRroX4]rgrb4
+"+6orp=TBFO7Rl)G)EoqrRLoKp5SWn".[R&rU'W8~>
+mJd4QqYpK?rrrE!o&#]Bmf3J"NkOZSj8T+gqu?jNI];)tjo5A:"S;Zs)O/5-rVlfs?i9s.$>bI'
+iVDR7!,D-+"BLu:o)@>B!$Ce4"@e9\kl''3!W@<7!!@#BhtZU=J,~>
+mJd4Wr;Q]ArrrE!o&$BDmn*^YNkOZSj8T,'r(7)oI];)tjo5AB9_:p[<0YAgrVlfsNr;QR9l>]l
+iVDR7!0m+J"DjOPo)@>B!+>Cj"Cd8#kl''3!WAV\8csIHhtZU=J,~>
+mJd4[r;Q]ArrrE!o&$m/mskOjNkOZSj8T,6r."opI];)tjo5AHK(OQrJ!@q=rVlfsYPitTIVsnH
+iVDR7!4;BK"FHT_o)@>B!0?`%"Eo[7kl''3!WBV#J-1V5htZU=J,~>
+n,EUdIh7t8oD6`3"TA)XY8cp1"(nRepZ)8RQi$gd2h8'gqW7_Xr'^,V#B6p)q#CBW"T8<(20G5*
+mJZ,G!0QmR"@/-hmf(o>!$Ce4"@e9\kl'$2!6t'7">H@jnG_kUJ,~>
+n,EUfUfFbioD6`3"TA)X\m"Pp"*U]upZ)8R[JWW">_'!7qW7_Xr-@m+#CNc5q#CB^:&RZf>'6.O
+mJZ,G!3l)f"CdP5mf(o>!+>Cj"Cd8#kl'$2!8@!9"C@VCnG_kUJ,~>
+n,EUh^PKr!oD6`3"TA)X_hmi4"+mQ,pZ)8RbPZknGCZjRqW7_Xr1NY3#DTJ?q#CBcK)L6"FT[rM
+mJZ,G!6Fe_"FH<Nmf(o>!0?`%"Eo[7kl'$2!9<U"".[X*rpKf:~>
+n,EX9!!!tXg$nparri>tm(a\3!!GTUbjk\nrr@0=!!GQ>ZJtcCrrN+qo)JtOSBg[(s)7i9"Ti+_
+WnR1,rrC%1!!F^-]]f=Irr=/4!!GcK]BK4CrrN$5o)JmtL:QFCmf.e~>
+n,EXH8kN@1g$nparri>tm)WK%8d&[mbjk\nrrASe8d&LRZJtcCrrN,4o1B3oSBg[(s-`dW"DNCd
+g@jS,!7g^6"B^Pokl'37!+>Cj"Cd8#kl'$2!W6-m8d%hD\`N_Vs*t~>
+n,EXSJ:NR#g$nparri>tm*1FWJ-::gbjk\nrrBY.J-:%JZJtcCrrN,Fnpgn6cLLo6\,:aZDh+kA
+p>c/QiUhX'I#>T#rRq2NO7Rl)G)EoqrRCiJr/1&q",aYNqsOK7~>
+n,E[i#QOj,[bUTUbl7eBnAQL>!!FL)^?GLUrr?!q!!G`F[cRGJrrMg/oDf("Kt?FDmg/jl"WqcF
+^?GLTrrDKZ!!EsfZJkZ5rr=/4!!GcK]BK4CrrN*rnc/buVUtP0s*t~>
+n,E[k:J+6*[bUTUbl7eBnB>5/8d&1R^?GLUrr@cN8d&RW[cRGJrrMjsoL]<]Lq;aGoMGKY"]TN&
+^?GLTrrDW^8d%tCZJkZ5rr?Hu8d&U\]BK4CrrN+Nnk'")VUtP0s*t~>
+n,E[kKReT;[bUTUbl7eBnBm3bJ-:7Y^?GLUrrB(sJ-:%M[cRGJrrMnPo7."&]&rnaK`-E)H?,%[
+kksK@!;?&8"FYp.iVM7-!0?`%"Eo[7kl'$2!WK"eJ-)V"p?qs2~>
+n,E[m4obQgMSn]VbPq\Bo#)44!!ERZYi,B=rr=kQ!!H5W]'0+RrrN(9o)JnfVUkEiqu?moHD&^X
+ro="ZrYP2,"*g`tpt>ZI+7fI87Z+hArR:cHII[@@3L7bTrpTl;~>
+n,E[mG"PA%Oi-G]bPq\Bo#t/*8d%k?Yi,B=rr?s78d&a_]'0+RrrN(ao1B.$VUkF9r(7-%HD&^X
+ro="Zr`\qd"+-s"pt>ZI@.Qtn@Z%e]rR:cHU@LnZ@$\n&rpTl;~>
+n,EFfT)O6BQG_tbbPq\Bo$W<aJ-:@RYi,B=rrAMcJ-9tN]'0+RrrN)*o7-spVUkFTr."rkHD&^X
+ro="ZrepE!"+I0%pt>ZIO7Rl)G)EoqrR:cH^%-[VI?qtCrpTl;~>
+mf*90rW!'WW7LV?bPq\Bo;Vo`!!@>=f_=J,!"f&."B^VslM]cC!7CB<";d9>i"5he"Uf1&[,Ur@
+rr>O\!!?MtdIc,l!$Ce4"@e9\kl'!1!1iZ\"<!*.kPXfKJ,~>
+mf*9Wr^m<&W7LV?bPq\Bo=Rcf8cs@7f_=J,!*/qh"DEb.lM]cC!8R0<"B1N%j&Q%M"\rrj[,Ur@
+rr@E<8crt%dIc,l!+>Cj"Cd8#kl'!1!4hYm"B12hkPXfKJ,~>
+mf*9trdY-(W7LV?bPq\Bo>lLRJ-11pf_=J,!/UQ'"E]U:lM]cC!9Ng&"FlWQk(rtd"b(BF[,Ur@
+rrAecJ-1.hdIc,l!0?`%"Eo[7kl'!1!6t(b"FZ0=kPXfKJ,~>
+mf*9kr;Zq@]]K"4rrW,hB(>p(@%5O8jo5>LqZ$b0O2C8_j8T/X2"L\KBWl^Z!!P6'QcSUniVrmu
+oDf"]PfW=mgA_-po)Jn_MS&*Ne,KEZnc/dpJ?@](n,In~>
+mf*:,rCR0E]]K"4rrW,hNq,dEDk#,Gjo5>Qqaq!-O2C8_j8T/XDY$I%H*<\78d/CAQcSUniVrnH
+oL]6rPfW=mgA_.\o1B-pMS&*Ne,KEmnk'$XJ?@](n,In~>
+mf*:<rI>!2]]K"4rrW,hXR^lDHCN:Rjo5>Tqg\fkO2C8_j8T/XR.Gh0Ks.cZJ-C(=QcSUniVrnf
+oRI'kPfW=mgA_/6o7-seMS&*Ne,KF'n:1SBhYHX?J,~>
+mf*:Rr;Zs>T$Qp)b5VP@j;%7d"B(K*nG_SM!6b6>"DEt<mf)8H!WJDV!!4j?')_e6!b$VZg@sP*
+!1i`^"=f>Cl2B?9!$Ce4"@e9\kl'!1!5@t'")+CYp$_p2~>
+mf*:WrCR2nT[3-+b5VP@k?.=J"DF%@nG_SM!8@<B"E0ICmf)8H!WKCr8ci=d<r>PmBn35;pYc&O
+\b&Js=c9uXrS%8O@.Qtn@Z%e]rR:cHd.'^1F.q.Wn,In~>
+mf*:ZrI>$%T[3-+b5VP@lA>+_"F-0PnG_SM!9O*."E]gHmf)8H!WL12J,u*nr."ogJ?%>ti;Wf&
+oRI'lMnSBRgA_/6o7-seMS&*Ne,KF)nUL^hU"/i)s*t~>
+mf*=e-N*oI:p]$RrlY6AqM"M@"A"Tjm/H/I!3>ts"ETjNnG_GI!UU-a!!*3jqu?mBEfRp!r8@ST
+an,Q9'83[NqqD&M+7fI87Z+hArR:cH^@;1+<1(o"rp]r<~>
+mf*=eAGo+'EO4NsrlY6AqPNjV"D!S1m/H/I!5n\+"ETjNnG_GI!UrnW8c_Rur(7,lEfRp!r8@ST
+f^qc=:kZ.6qqD&M@.Qtn@Z%e]rR:cHdIBg3C7*68rp]r<~>
+mf*=eP5Tn6LpPt5rlY6AqRuKN"F-!Em/H/I!7gss"ETjNnG_GI!V:s8J,k3!J-C7>NkaiVi;Wf;
+oRI'mKX0V7gA_/6o7-seMS&*Ne,KF)nULagR*>+"nGe"~>
+mJd/pr;Zs)M8niYb5VPBjp1MY"@nEblM]lF!/paT"9N\3bjs`m!W?*k!!!)u!!Q&BT[NH2i;WfJ
+o)Jl;W7q%#rr=/4!!GcK]BK4BrrBe'!!G`P`9mQns*t~>
+mJd0HrCR2dP/cebb5VPBlVI.F"CmD)lM]lF!3Q,j"*BmRo&9TLrJ0u:!)*5^"_)eNde!IrrrD``
+8csI>gA'D%!+>Cj"Cd8#kl'!1!7C=/"CmP3mJcVTJ,~>
+mJd0ir."m9`p3KErrW2fKCjZsGDs9$rT=+[`VY/fFI15BiVrrWWU53>EdFD,oD[\J!;Q/9"+I3&
+ptG`JO7Rl)G)EoqrR:cHhXQ+!H'#u3rp]r<~>
+mJd0Rqu?jKW7CM=b5VM?:\4Vi6]/P?rT=+[B`%i5%<e2eo\ofNrjD.o"Uf1&[,Ur>rrN*CoDeu!
+T$d2arr=/4!!GcK]BK4BrrB(h!!G?@]]oCas*t~>
+mJd0or(7)tW7CM=b5VM?Jb2P;@>__]rT=+[Pl+,V:3N)Qo\ofNrlOS#"\rrj[,Ur>rrN+.oL]4'
+T$d2arr?Hu8d&U\]BK4BrrBt,8d&IY]]oCas*t~>
+mJd1/r."p'W7CM=b5VM?V=]9@GDa&srT=+[[/>FWIWh1,o\ofNrn$Rg"b(BF[,Ur>rrN+\oRI$j
+T$d2arrA,OJ-:%Q]BK4BrrCU>J-:1V]]oCas*t~>
+mJd19qZ$_.]&NP.rrN+foDf"[M7VpLk5PEOqu?j/GFd1Si;WiS)XdY020P>-meu#B!)E.d"@89m
+mf(u@!$Ce4"@e9\kl'!1!1r]\">GS>k5=`KJ,~>
+mJd1Eqaps<]&NP.rrN,-oL]6oM7VpLk5PF/r(7)eGFd1Si;WiS>jk8g>'?7Rmeu#B!.jc7"Cm\:
+mf(u@!+>Cj"Cd8#kl'!1!4q\m"BpPhk5=`KJ,~>
+mJd1Mqg\d.]&NP.rrN,AoRI'hM7VpLk5PFWr."p!GFd1Si;WiSN:29#F`s+mmeu#B!2fC="FHBR
+mf(u@!0?`%"Eo[7kl'!1!711c"F>g3k5=`KJ,~>
+mJd4c&,ZD1$BiR!r6#$>f^o.H7YnY>r9""Z./X&J&p^,!p#,iNrc@N."CH\Zg@sG'!.+8;"=B&>
+kl'99!$Ce4"@e9\kl'!1!.aS>"=f)2j8AEHJ,~>
+mJd4c<;]>k:702kr6#$>iq,hG@YhVZr9""ZB)G7(:jJ\_p#,iNrgN:J"DE=cg@sG'!2/sV"BUMo
+kl'99!+>Cj"Cd8#kl'!1!2T-W"B^>`j8AEHJ,~>
+mJd4cL\lT(SBC6sb5VJ,oRI'fLq;gJk5PFGr."otH(WUZi;WiW\*nhMDh+kApYGiL]_$^WI#GZ$
+rS.>PO7Rl)G)EoqrR:cH_!upXHA&Wbr:'`:~>
+mJd4d9)ASk0<Egurlb<Br<r8u"@e6Zkl'ZD!!N3""<)T\f(S#$!6t!5"Wh]E^?GLNrrAbb!!Ejc
+Z/PQ6rr=/4!!GcK]BK4Brr?U"!!Fa&YMf9Hs*t~>
+mJd4dIeu_?@'&#Qrlb<BrDN;\"Cd5!kl'ZD!)3;_"B'Q?f(S#$!8?p7"]KH%^?GLNrrB_(8d%qB
+Z/PQ6rr?Hu8d&U\]BK4BrrA2O8d&7JYMf9Hs*t~>
+mJd4dV#,ZFKrir!rlb<BrIsop"EoX5kl'ZD!.t-!"FGHhf(S#$!9<R!"aY3L^?GLNrrCC;J-:=R
+Z/PQ6rrA,OJ-:%Q]BK4BrrB@pJ-:1MYMf9Hs*t~>
+m/I':q>^V,]]An3rrN*Ko`,+kMS/0OkPkPBqZ$a<H_f<ghu<`T/b&fE8:$oUoD[SG!5\7,"*CEn
+pY5]J+7fI87Z+hArR:cH3:QtO.=eSYqXFN8~>
+m/I'^qFUj;]]An3rrN+4oh#?uMS/0OkPkPJqapuhH_f<ghu<`TC%4e!@!\HmoD[SG!7UO3"*pcs
+pY5]J@.Qtn@Z%e]rR:cHEUcX(=FdR3qXFN8~>
+m/I(#qLA[.]]An3rrN+`omd0fMS/0OkPkPPqge]n!i4KChu<`TQ19A.EdFA*oD[SG!8mBu"+I-#
+pY5]JO7Rl)G)EoqrR:cHSFM+4H@W0UqXFN8~>
+m/I'qq>^X(N6:MbbPqQ+o`,,"N5"TUkPkOoqZ$a<I&>Tlhu<`VMXg`N#]#1$iVM@0!8d;I"BM&>
+oD[PF!$Ce4"@e9\kl'!1!"AAt"=\l(htljBJ,~>
+m/I(0qFUlcQ-/IkbPqQcoh#@$N5"TUkPkP-qapuhI&>Tlhu<`VX7Ajd9PoNjiVM@0!9`rG"DjUT
+oD[PF!+>Cj"Cd8#kl'!1!)i>Z"B^2WhtljBJ,~>
+m/I(>q1&R;b3]&LrrAY`J-9tQ^?Y[[rrCmPJ-:4HVV1b%rrN,9npgmmDhbUWqV;)Nmdkr3I%8RT
+rnRMRO7Rl)G)EoqrR:cHL@KcsH@W0UqXFN8~>
+m/I(Uq#COAW7LS>bl7Z0o`,,0OMgGakPkOKqZ$a<I&>WmhZ!W5"S2Ts/p*AumJYi?!<2Qi"?DXa
+mf)#A!$Ce4"@e9\kl'$2!71-7">k\4i;2sCJ,~>
+m/I(Xq+:cnWn-e@bl7Zgoh#@*OMgGakPkOiqapuhI&>WmhZ!W=9_1j[=EKhJmJYi?!<2R^"CRD3
+mf)#A!+>Cj"Cd8#kl'$2!8[-:"C$G[i;2sCJ,~>
+m/I([q1&U$Wn-e@bl7[:omd0cOMgGakPkP*qge]o!iF]HhZ!WCK(FKrGBB+imJYi?!<2S?"FQBO
+mf)#A!0?`%"Eo[7kl'$2!9`j%"F,L#i;2sCJ,~>
+m/I+c0)5JM7(D1LrltHC6hUK`$?VQTnG_VN!-%f8"<2`cgA'P)!W>:T!!HDQVqC^trrN*)oDf":
+M7VjIh#@?no)Jn_MS&*NeGfN0n,NSRK!=83nGe"~>
+m/I+cCACI)Cq/EtrltHCH1ji69luZBnG_VN!1E^V"B'WEgA'P)!W@358d&aTVqC^trrN*poL]6e
+M7VjIh#@@[o1B-pMS&*NeGfNQn4EgiK!=83nGe"~>
+m/I+cQMH%6MR_U=rltHCU%X!?IWUjsnG_VN!4_oVs*OmFgA'P)!WAV]J-9h?VqC^trrN+PoRI'l
+M7VjIh#@A6o7-seMS&*NeGfNhn:1XbK!=83nGe"~>
+li-rrp](D-_WL^>rr>:W!!FEgSC$ojrr>ai!!F-dVV:h%rrN+foDf%/E/V?jqqD&M+7oO9#D0,9
+qV;,A!!GcK]BK4Crr>IV!!GoJ[H.8Ts*t~>
+li-sIpdtX=_WL^>rr@698d&+;SC$ojrr@TH8d&%>VV:h%rrN,-oL]9`E/V?jqqD&M@.[%o9S0G)
+qV;,A8d&U\]BK4Crr@B78d&UW[H.8Ts*t~>
+li-sipj`I1_WL^>rrA\bJ-:1BSC$ojrrAqnJH'uuVV:h%rrN,AoRI*mE/V?jqqD&MO7[r*ItFi\
+qV;,AJ-:%Q]BK4CrrAe_J-9tJ[H.8Ts*t~>
+li-sQp](F$KZi`ZcMml#p&G4TI&,Ehk5PE,qZ$a/I&5Kih>[ND#PA'#4F!@?nc%8B!$Ce4")"C[
+p>#]=!!GcK]BK4DrrMEgn,NSrMS&*NnGe"~>
+li-snpdtZ`PKW=icMml^p.>HmI&,Ehk5PEkqapudI&5Kih>[NH:\@<`?$Mj`nc%8B!+>Cj"*:6g
+p>#]=8d&U\]BK4DrrMXan4EgtMS&*NnGe"~>
+li-t.pOE@;bO#,OrrAJ\J-:%CUtGG(rrA5ZJ-:=KV:bOurrMbEomd3fGaltJrn@APO7Rl(IA>Be
+h#Hqq"Eo[7kl''3!VM'6J-9nM]BK4_s*t~>
+li-t3pAb=+RFC['ci3t]p&G4qK!=20kPkPVq>^X*HD9!ah>[NS9_JGi!bHtdh>#\'!%7@<"A,!(
+nc%AEnc/e^MS&*Nec,W-n,NUqEKA$(rp]r<~>
+li-t@pIYQcU!rN/ci3uKp.>I"K!=20kPkPXqFUlbHD9!ah>[NSJ+ZD:C4`VEpt>ZIAb/LsAsgd3
+rn[VF8d&U\]BK4DrrB1j8d.n.O2L>`nGe"~>
+li-tIpOEBuVpk/5ci4!(p4*9cK!=20kPkPZqLA]tHD9!ah>[NSV"K6@Dh>.Jpt>ZIPOj;-I$i+I
+rn[VFJ-:%Q]BK4DrrC%-J-CFBO2L>`nGe"~>
+li."a&,-&,(oGsVrR(WFn+H_b#]Pa9kksWD!71H@"*gHfp"fWKrhfAh"WqcH_<V!Prr>7S!!Fp7
+_!CsUrrCsI!!GcK]BK4ErrN!Bn,NV6FdUDCrp]r<~>
+li."a<;/uf<iamDrR(WFo_(l\9Q5s(kksWD!8[HC"*gHfp"fWKrkA(u"]TN(_<V!Prr@668d&@Y
+_!CsUrrD9R8d&U\]BK4ErrN%-n4Ej`FdUDCrp]r<~>
+li."aL\H<%KW`turR(WFp\'+@IW17ZkksWD!9a0."*gHfp"fWKrm:@h"aY3N_<V!PrrAY^J-:7[
+_!CsUrrDNYJ-:%Q]BK4ErrN(]n:1[gFdUDCrp]r<~>
+li."b6M:B^,d,qprmLfH\+Te*/p<W*nG_VN!2oVm")==Po\BHIo*b9m"\*g3de*Olrr>:T!!Emf
+[,_&?rrCdD!!GcK]BK4ErrA\[!!GT8Ut>>/s*t~>
+li."bGkO`4?Er;XrmLfHbk=X4=E^(TnG_VN!5SD&"*0mXo\BHIohtNV"^lYMde*Olrr@668d%tE
+[,_&?rrD0O8d&U\]BK4ErrB\"8d&IJUt>>/s*t~>
+li."bT_<m=LU>k/rmLfHg\-.$GBT@snG_VN!7Uao"*g<^o\BHIpP&?l"`ep_de*OlrrA\_J-:=T
+[,_&?rrDEVJ-:%Q]BK4ErrCC6J-9tAUt>>/s*t~>
+lMgj0o`,+AZJP9Re,KDhp&G5!J#M)pk5PF+q#CP&Qd#"!h>[NS=SMk""`&k!iVM4,!'g#S")k*k
+pYPoM^[_@-7Z+hArR_&MpE8r*"TrCkZJt`Ls*t~>
+lMgjVoh#?n[bg]Ve,KE<p.>I"J#M)pk5PFRq+:d+Qd#"!h>[NSL\OIF9PoNjiVM4,!-[p*"*g`t
+pYPoMddg!5@Z%e]rR_&Mq-`\a"\WZcZJt`Ls*t~>
+lMgjromd1$\DHoXe,KEYp4*9bJ#M)pk5PFoq1&TmQd#"!h>[NSWq_)JIrC(JiVM4,!2&h4"+R6&
+pYPoMhsu:#G)EoqrR_&MqiL;t"b1HEZJt`Ls*t~>
+lMgjcoDf"@[,:QUeGfLgpAb@8EK%Qmr9""Z8GN5g8Wq*]rnRMRWqZPt.WgopmJY];!&*mC"A,*.
+o)@PH!3>Yj"@e9\kl'-5!-@T/"Y"PW`9dHks*t~>
+lMgk&oL]6n\)6lXeGfMTpIYTeEK%Qmr9""ZI/-A;AWk($rnRMR_>$V+=*0\HmJY];!,M-t"D=4L
+o)@PH!5nA""Cd8#kl'-5!1`LM"]of0`9dHks*t~>
+lMgk7oRI(#]&32[eGfN/pOEEoEK%Qmr9""ZV"oNDH'628rnRMRdeJ=rG]]1imJY];!138,"FZcb
+o)@PH!7gXj"Eo[7kl'-5!4hQK"aG-Q`9dHks*t~>
+lMgkCo)Jn?[,:QUf)G`Rp&G7mH(N@Qroa:^o*G-l">c"NlM]N<!V6]p!!H)GV:P@lrr<l+!!FI+
+_!:mUrr@uJ!!GcK]BK4GrrL"?n,NXo?%/X$p&=F[J,~>
+lMgkKo1B-m\)6lXf)G`ip.>KuH(N@Qroa:^p/(QW"C-o"lM]N<!VK@d8d&XPV:P@lrr?6n8d&1U
+_!:mUrrB1l8d&U\]BK4GrrLVDmn*asI\kWgrpTl;~>
+lMgkQo7-t"]&32[f)Ga%p4*<dH(N@Qroa:^q1SQo"FH*AlM]N<!V_<DJ-9k?V:P@lrrA#KJ-::]
+_!:mUrrC%/J-:%Q]BK4GrrM)1mskR[I\kWgrpTl;~>
+lMgna'Cu2,,cokprR_&L0_YPN+E3.FiVDX9!1W``";Za"jS[g5!WH3t!!N^ILpuIBf`(sCnGi[p
+I^.i-hu<[enc/e^MS&*Ng&D*9)".G.13/Dfk54THJ,~>
+lMgna=7]#e?F&G[rR_&LD"gO*<,dZ%iVDX9!4_er"B'u^jS[g5!WIlN8d.q-LpuIBf`(sFnO`pW
+J[+/0hu<\<nk'$oMS&*Ng&D*@>OP/f=`TP8k54THJ,~>
+lMgnaM=Z6#Lq)=6rR_&LR.l+7H>n\KiVDX9!6t:h"FZ$4jS[g5!WK+qJ-CC@LpuIBf`(sIn:1Uo
+Z/GK9rrB@qJ-:%Q]BK4HrrM_MmskRbEfRfpqsOK7~>
+lMgna9(Drb'qO.Nr7V)MS+cme"(-AGcLCeqrrMj>pAb;9Wn[='rrB(q!!OutQc\^qf`(rdn,NSg
+U"&`6i;Wd2nc/e^MS&*NgA_3:..7-?&o3#peFW\-s*t~>
+lMgnaIe$)6<iXsGr7V)M\G&T"95&XCcLCeqrrMq*pIYO6Wn[='rrBn38d/=>Qc\^qf`(s"n4Eh"
+U"&`6i;Wdnnk'$oMS&*NgA_3AB(&=r:i1`[eFW\-s*t~>
+lMgnaV"0$=KsTS*r7V)Mc1c_mIrBY)cLCeqrrN"[p4*4Eg\BP'!7L^o"a>*Uam]5]rrCsGJ-:@q
+eF`aurrAGWJ-:%Q]BK4IrrM_UmskUiDh+_7oD\1XJ,~>
+l2La,nGi^uJ_0AernRMSh[oM^"Zg^a]&WVKrr@E>!!G][cgq(jrrM^!qZ$atI]1omfDbhhn,NS8
+P/Q_ciVro@nGi\]MS&*Ng]%<;..7-?"^-)9_s%!bs*t~>
+l2LaSnO`s[R+Lg'rnRMSkZ.@L"^H,.]&WVKrrAee8d&arcgq(jrrMdjqaq!%I]1omfDbi=n4Egb
+P/Q_ciVroGnO`pnMS&*Ng]%<BB(&=r9P/O8_s%!bs*t~>
+l2LapnULdpWn6_9rnRMSmtg^g"a"gF]&WVKrrBb+J-:=kcgq(jrrMkJqg\fhI]1omfDbi[n:1Xj
+P/Q_ciVroLnULacMS&*Ng]%<GPja,,IrBRt_s%!bs*t~>
+l2La_mf3Jfc0G*'hZ!WJ0_YPO*cHY/eare'rrKG/p&G4'MSA<Ph#@ES=Sr.&$ZM!7k53g2!V[H"
+!!@,Di;)@3!0cpQ"@e6[kl'<:!RDnW!!`QtFH!Zbp\sR[J,~>
+l2Lb"mn*_0cKb3(hZ!WMD"gO+;f@8deare'rrL59p.>H_N5"NRh#@ESL\saJ:2l*%k53g2!Vosg
+8csIGi;)@3!4),e"Cd5"kl'<:!Sq/O8d8^GN4.U;rpB`9~>
+l2Lb4mskP/cg(<)hZ!WPR.l+8H>eD6eare'rrLf)p4*9qNkX`Th#@ESWr.ANIW11Uk53g2!W.iE
+J-1P2i;)@3!6Ob]"EoX6kl'<:!U#R4J-L%9N4.U;rpB`9~>
+l2Lb6mJmA6WoNaLi;WiL48/^Z%qL$Wa6WWcrrL"GoDf"aWS$qDh#@ASqu?mQG*pGArn.5NL[G-F
+*1G+@rSmhW/F`]C'md=Lqq_8QP76jZ#!?p\XOZn?m/MS~>
+l2LbAmRdUg[c@#Xi;WiOFSAB3:25-Ga6WWcrrLVIoL]7$WS$qDh#@Ajr(7,pG*pGArn.5NWpWI^
+<h.D'rSmhWC%4du;1c7;qq_8QZ;U*_#$c2'XOZn?m/MS~>
+l2LbJmXPFt^Z4tai;WiRSbIX=I;XD%a6WWcrrM)5oRI'sWS$qDh#@B&r."rpG*pGArn.5N_sMsV
+SBUL$ir9"EnULajLUQ:@h>[MtL@0QrFE3,;eai\*s*t~>
+l2Le`$gmuu"_lNTq>TFS!TQ$2!!`j8GE]]"q#9LW!P8d3!!EFP_<CdOrrM^!r;Zt!I]1upf`)!$%
+.+#t8@.1IroF(ZU[J0d%rThaqYoIR!Rj:$!!`QjEJ147mJQ;MJ,~>
+l2Le`;XR-\9oRZkq>TFS!UF[u8dA('GE]]"q#9LW!RF[88d%hE_<CdOrrMdjrCR3'I]1upf`)!1
+;XI'ZD6r*nroF(Z^@+Yt;2EZhqYoIR!T81h8d8UAKVm&^r9OB5~>
+l2Le`L$jHpJu.)eq>TFS!V)WQJ-UOAGE]]"q#9LW!SrM$J-1tNkkj08!V_<HJ-9k@W7q!urrMA=
+m=5=qZekHUjSo5-mskRmSC6m&ro*kXl(@?n#'=j<VU"T,li2J~>
+l2Le`1@+uE+IqNbr;PjY!NQq/!!`j8G)iuco`"(S!KRBR!!En#dI@(irrN*mrW!*0E/M6hr7V)N
+k:#Wr"BiV(q>TOV!TOm]!!XBfeFNG6roX4^dU*.F!!`^'EeUC6lMBfGJ,~>
+l2Le`D<sju?E`G^r;PjY!Q8+78dA('G)iuco`"(S!O,;g8d&%`dI@(irrN+Lr^m>hE/M6hr7V)N
+mUkcW"F@rIq>TOV!UEkT8d8Ifg%+t;roX4^hi1=t8dA%!EeUC6lMBfGJ,~>
+l2Le`R-]>,MnJ-Cr;PjY!S*)%J-UOAG)iuco`"(S!QTf^J-:FudI@(irrN+prdY0$E/M6hr7V)N
+o9AQk"HgR`q>TOV!V)'7J-Lk8hX^L@roX4^kc]U+J-UREEeUC6lMBfGJ,~>
+kl1Wpl2UuP\*<Varp'LacU[[/#7Og[Nj@=.r9=4^gHY*+";?sNnbh5C!1s/i"YY%db4,DarrL.[
+kl:iY_WU^nkl1\H.-^d<"$1nHoD&7_rpB^entJA8!!jBKG)E<FlM:GEs*t~>
+kl1XGl:M5#_Wgdlrp'LagjJff#>SoTNj@=.r9=4^k'-5c"B;&Hnbh5C!4i)$"^#r8b4,DarrL_X
+kt2)#`TR$qkl1\OB'Mto9Q6ZMoD&7_rpB^ep:Y\:8dJ:.G)E<FlM:GEs*t~>
+kl1Xgl@9&)bN\`urp'LakG.a$#C^T7Nj@=.r9=4^m@Wfs"G<`,nbh5C!6tLn"a>-Wb4,DarrM/?
+l$ro"`om-rkl1\TPj3c)JXEt"oD&7_rpB^eps>Z"J-^L@G)E<FlM:GEs*t~>
+kl1XCkl:ni6)s5Dr;Q-a!Obes!!aBOG`T2_nbh\P!p=J-li71mAC'Z=rnm_]mfWUj<dq"$pY5]L
+k@Xq\!!O@#iUZmFli."#*9@/,%R"Wo_WLXjr;HWoqu?]q"R`jU6O<#Y#mNM1I?UtcmJ?hHs*t~>
+kl1Xckt2.RFM$i3r;Q-a!R-/g8dA7/G`T2_nbh\P!q)IQlq.FTL=5Jbrnm_]nk;YJB7?f5pY5]L
+mZUB.8d/CmiUZmFli."5?KFcc;fn80d-LK(r;HWoqu?]q"S0j;Gu*d!#u"WDI?UtcmJ?hHs*t~>
+kl1Y&l$rthRE4[er;Q-a!SaOFJ-UF>G`T2_nbh\P!qWmSm!o7jT[W<(rnm_]on%^EFFL1BpY5]L
+o<X&3J-Cb8iUZmFli."CNobctL7>Kgh!Xt7r;HWoqu?]q"SUWfTnMc_$%I&:I?UtcmJ?hHs*t~>
+kl1Xrjo>W0FLgr:r;Q]hrr_\pCE)pH#Qcc!I$D(mnbhbR"8fZ2#j;6m&p2Ojq#13Ors8Qg!"4".
+\`WhHrr`,/>6s6h"sSWKo(i7`nG`O+:Yc!S%OaPFC4#l+")V4&([1o+"#"51LnVT=nGDDKJ,~>
+kl1Y/k"5kcR)ngmr;Q]hrr_l6Q<j,T#?l%nPd]98r9XFcr6C*pkXl%ZQ.PO#rVkgV#lSs>:O%c-
+k5=*9"8pH%:ub.P@%Z0Dq>L<^rrLW$h+@lNAp0#qTV;=Y"."da>3SWc93H(ULnVT=nGDDKJ,~>
+kl1Y=k(!\rZIJF>r;Q]hrr_uI[>jg/#Bk'6Pd]98r9XFcrS4H,k^WklY1rI@rVkgV#lU?FJU*-`
+k5=*9"8prVK]@ReN4%R6q>L<^rrM&Uh1,Z`P+AVY]DT;D[B,mVl$s(iGB%k`TtfCPqre!0~>
+kl1YIirBT%89UT9f\5'6gXEg.JlXAl!!j??FG-7#hX^U5rri>TSmN2l!!`TaHEuT*qY^?lkl1qf
+P5mXuR*"grj8T;^o"KuW&DdBn"#k>)j7iEKrr2fps8E,WVIpjV!"&obApB'![*Ih,r9"$0~>
+kl1YOj%9MUHCVIgi8agt"lIY<VMAjU8dJ:+FG-7#hX^U5rri>^\rBhP8dA%-S]'adqY^?lkl1qf
+Z:\ebR*"grj8T;^p!Bdl<Sg=S9Q$98kkFrPrr2fps8E,`^lr'48d\6qCj:]'[*Ih,r9"$0~>
+kl1YSj+%YqTXW(rkj%I!lfd-M^oE[jJ-^OCFG-7#hX^U5rri>fcEE,cJ-UXk[aOL9qY^?lkl1qf
+a+/u#R*"grj8T;^ptireLu*XgJX<ajlhC8Srr2fps8E,gd^+qAJ-pdMEd3>-[*Ih,r9"$0~>
+kl1\_'E.t9!uWR>/0Y_S!!s!!E.*kMb2i9pnc&]PB0Hj[!!j;u<c39EpA=jSrs%?\HC(Yap>u;V
+mrM8Le,Tms7VT7#q#15rG?-I0[/^U:*Ck$qLmt]mi:-UBjo9i~>
+kl1\_=8ker92\kq>?=\L8dS4!EIEtNb2i9pnc&]qPBKs[8dJO<KpJCqpA=jSrs%XYOI*!"p>u;V
+oULMBe4L-THBZA>q#164Sqh/^Zq:^)@WHjPS$L2pnG<.Gs*t~>
+kl1\_M>i#0IsZKhI"$RmJ-g[HEda(Ob2i9pnc&^3Z_!!,J-_""W3j2&pA=jSrs%k@TU2\2p>u;V
+pUR2ae:7sdTX!#;q#16E];h6R["&O2F`VqdS$L2pnG<.Gs*t~>
+kPl&N""mAeHA%6?P`gl>9IUD&!"'6$DL7;9^=_iKrp]pf+OU5l[G:3HlMh(e5JXG;jSS'=!8l'%
+"_?*EpASF+!"BDf88EO)P+oD.hsU:<j8XW~>
+kPl'39O_aWHA%6?P`guRDHoui8d\="E-mM;^=_iKrp]pf@+%XL^>//QlMh(eG/CDtjSS'=!9h^#
+"c:^jpAU)Z8e"Nt@rZgJP+oD.hsU:<j8XW~>
+kPl$\JV\_rHA%6?P`h)bL4Rs,$@R&;H]+W4f^8M6nG`KMdXVG=h!Y%(rs&Fn`3-o:qrRhXn'6Fe
+UsnK"ri`\Z%=WVHG'\h)U:/8&meHb@s*t~>
+kPl74`3,;fU9VGOaMu*/ZDX4D>s'#.huF,g-W"o6NM3o0k4JT>rsjj*?rBa(=BT-B?tX@rEURrJ
+@fKg9?2dY.:..N?3&ipe]\W;\li.1go\7O?n,DGK''ag]>Ydpc<Dub#?=$uKDJsN7mrBIe@UWYO
+>#8$k7R9@(1cB-Rd-gk$=CG3<?>=:jFEI+ps'cCE>#8$b5W^SL*Z>Lni;aGn'I>e:C4(VkQ(kS%
+eDp&nrSdd,~>
+kPl7DbH@%mU9VGOaMu*/ZDX4MG@jiKi(=AN<b6B%NM3o0k4JT>rsbupKm7W^FE2PGEclVPmWo"Y
+FE;JBrG2gSC2@KoB:limpAXCX#6+8Lb1H+]jo5YVTTaqKDJjH4D>eGUF*MutH6IQUFE;JACi!m#
+AnP^cA:h&4mesVLLO+ApIsucpI=-Bgp3I3kFE;D;CM.0e>[(6.:efn@&PQ&'?YFJ-Jr>ngZGY2P
+nG)t@s*t~>
+kPl1Nd&rRrU9VGOaMu*/ZDX4TM1j`9$\*GDFFK4C\^9L2r9jRp_QohtN/NLGK7SQ&It3+;K):'+
+JqSi4L5:\^]\W;\li.1go\7O?n,DGK$hV'6S<&M^KnFr,If4`tJ:W:<K)C-7It3*%K7nuCYgDh:
+bc%;%P)bQ]M2$]RK):&uJ,OirJ)PniIslZiG^+UfMj:$B_pm`9q#01OJ,~>
+kPlCqkfgcZeDTTZn*]Q+inDbu\ZVZjE)//'k5Yr'/PpG7LR"dMdH'lprpB^rqW5\tTq7jJTq\B\
+W2cr$n?*G,XJr+pVPKrZTV%gIT:i'nh"C[3rri2dk3Vm(rt>>)hS#hZSXc7CTVA6ZVPpMrXm`D#
+XfSS%Vl$>eU7e-LrgX7dYg;b9r9MS1rh9RlV5C2lXnAh;XfSM"VPKoXS=5e0P)tZ\I<B=7?VsWm
+5X.Fh/hZiL'fnHM<FKiqJqo;KR\[.!aOT89o_SREs*t~>
+kPlCqkfgcZeDTTZn*]Q+inDbu\ZVZlJT"ppk=Q1Z=_;c'LR"dMdH'lprpB^rqW5\tTq7jJTq\B\
+W2cr$n?*G,XJr+pVPKrZTV%gIT:i'nh"C[3rri2dk3Vm(rt>>)hS#hZSXc7CTVA6ZVPpMrXm`D#
+XfSS%Vl$>eU7e-LrgX7dYg;b9r9MS1rh9RlV5C2lXnAh;XfSM"VPKoXS=5e0P)tZ\K78)gF)>`-
+ARo:X>[6u,'jtK`CN+NIJqo;KR\[.!aOT89o_SREs*t~>
+kPl@pkfgcZeDTTZn*]Q+inDbu\ZVZnN/*#IJ.6pPG'/1fQ)D:BjRW0HmJd^nji+<pSt;RJU8=`c
+WiW>lXqRq=WMcVjUnXNTT:VXHTVf?Vp&=7V"T%QKm.fZA')qU]]r.KnS=Q:FU84Z`W2cr$n#d&#
+XK/:tVP^/`TV%eSS-YakcgLc0lccR3U'7?hVPpPtor]17XJr+pUnOENR[9;&OH#-QKnP&/JUi6#
+J,OiiIK+]pHiJI(IY*?6PFA;N]?&O]m.C/RhuA3~>
+kPkecp?_#0o_SLarY#2,q"*q9hUTfb[&KXYEDekD%J'Q3!tun?:i(N2N0gEMa4TSGqYog\%fGkT
+eBlRie(*%%g=tE>mb\W4gtLK8f[eU&da6=cbK\]*qW\"_rqcEdrT!nhqX31fcd:%eeCE.&g"P39
+hX02AhV?l>g=b-0eC;pncHOJ[jRrNNoA\6Ed*pOtg"bETh]:P.g=b-0eC)[eb/V<5]XY>QY,\Cq
+U7\!GR@';*p662UR%'bEWj&tH`m<8okjS3@rVkXQJ,~>
+kPkecp?_#0o_SLarY#2,q"*q9hUTfb[&KX[J8f%%:\.0j92JYqBQJQQN0gEMa4TSGqYog\%fGkT
+eBlRie(*%%g=tE>mb\W4gtLK8f[eU&da6=cbK\]*qW\"_rqcEdrT!nhqX31fcd:%eeCE.&g"P39
+hX02AhV?l>g=b-0eC;pncHOJ[jRrNNoA\6Ed*pOtg"bETh]:P.g=b-0eC)[eb/V<5]XY>QY,\Cq
+U7\!GR@';*p662UR%'bEWj&tH`m<8okjS3@rVkXQJ,~>
+kPkecp?_#0o_SLarXf&*q"*q9hUTfb[&KX]MhZlRJ.R-UH?a[^JrH%n[`@%`o(r@Orsntsi7--#
+dF6Xsf\5*8hX985h;$`<g"=m+eC)^icHFJblh]lG"TJ8mqYfIS&GkhNda-:edaZguf\,!5gtqGU
+*o>],g=k64f$r3td*BkYdcC*#rU]$tcHt%jf\,'9oA:SEgtLH6f$r-obf[rB^V%(`Ycb"(UnXKP
+S!fY0Q1gFTQC+/7UoLZ.^;eLNhrsP%qYgELs*t~>
+k5PS_r;?Nmp\ts,r;--VlJpXIaM,![TU1[bAm%u-r([l1AT<3OL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+k5PS_r;?Nmp\ts,r;--VlJpXIaM,![TU1^lG]@S9r+Zj_Ed3(cL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+k5PS_r;?Nmp\u!-r;--VlJpXIaM,![TU1atL4b&-J,OiqI1LgZL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+%%EndData
+showpage
+%%Trailer
+end
+%%EOF
diff --git a/templates/Italian-logo.png b/templates/Italian-logo.png
new file mode 100755
index 00000000..5edcdfe5
--- /dev/null
+++ b/templates/Italian-logo.png
Binary files differ
diff --git a/templates/Italian-packing_list.html b/templates/Italian-packing_list.html
new file mode 100755
index 00000000..4a451d82
--- /dev/null
+++ b/templates/Italian-packing_list.html
@@ -0,0 +1,126 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr>
+ <td width=10>
+ </td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th colspan=2>
+ <h4 align=center>L I S T A &nbsp;&nbsp; E T I C H E T T E</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Data</th><td width=10> </td><td><%invdate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Numero</th><td></td><td><%invnumber%></td></tr>
+ </tr>
+
+ <tr>
+ <td>
+ </td>
+ </tr>
+ </td>
+ </table>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Inviare a:</th>
+ </tr>
+
+ <tr>
+ <td><%shiptoname%>
+ <br><%shiptoaddr1%>
+ <br><%shiptoaddr2%>
+ <br><%shiptoaddr3%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Numero</th>
+ <th align=left><font color=ffffff>Descrizione</th>
+ <th><font color=ffffff>Quantit&agrave;</th>
+ <th>&nbsp;</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td>Note</td>
+ <td><%notes%></td>
+ <td align=right>
+ <%shippingpoint%>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr>
+ <td>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+
+
+
diff --git a/templates/Italian-packing_list.tex b/templates/Italian-packing_list.tex
new file mode 100755
index 00000000..271d2906
--- /dev/null
+++ b/templates/Italian-packing_list.tex
@@ -0,0 +1,114 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rr@{}}
+ Tel & <%tel%>\\
+ Fac & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%invnumber%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+<%pagebreak 65 27 48%>
+\end{tabular*}
+
+\newpage
+
+\markright{<%company%>\hfill <%invnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rll@{}}
+ \textbf{Numero} & \textbf{Descrizione} & \textbf{Quantita'} &
+ \textbf{Unita'} & \textbf{Bin} \\
+<%end pagebreak%>
+
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{2cm}
+
+<%shiptoname%>
+
+<%shiptoaddr1%>
+
+<%shiptoaddr2%>
+
+<%shiptoaddr3%>
+
+<%shiptoaddr4%>
+
+\vspace{3.5cm}
+
+\textbf{L I S T A} \parbox{0.3cm}{\hfill} \textbf{E T I C H E T T E}
+
+\hfill
+\begin{tabular}[t]{l@{\hspace{0.3cm}}l}
+ \textbf{Data} & <%invdate%> \\
+ \textbf{Numero} & <%invnumber%> \\
+ \textbf{Cliente} & <%customer_id%>
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rll@{}}
+ \textbf{Codice} & \textbf{Descrizione} & \textbf{Quantita'} &
+ \textbf{Unita'} & \textbf{Bin} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+\vfill
+
+
+\end{document}
+
diff --git a/templates/Italian-pick_list.html b/templates/Italian-pick_list.html
new file mode 100755
index 00000000..da8a3bdf
--- /dev/null
+++ b/templates/Italian-pick_list.html
@@ -0,0 +1,153 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>P I C K &nbsp;&nbsp; L I S T</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th width=50% align=left><font color=ffffff>Ship To:</th>
+ <th width=50%>&nbsp;</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ </td>
+
+ <td>
+ <%if shiptocontact%>
+ <br>Attn: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=15% align=left>Invoice #</th>
+ <th width=15% align=left>Order #</th>
+ <th width=10% align=left>Date</th>
+ <th width=15% align=left nowrap>Contact</th>
+ <th width=15% align=left>Warehouse</th>
+ <th width=10% align=left>Shipping Point</th>
+ <th width=10% align=left>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%invnumber%>&nbsp;</td>
+ <td><%ordnumber%>&nbsp;</td>
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%transdate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+ <td><%warehouse%>&nbsp;</td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Pos</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qty</th>
+ <th><font color=ffffff>Ship</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Bin</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td align=right>[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</td>
+ <td><%unit%></td>
+ <td align=right><%bin%></td>
+ </tr>
+ <%end number%>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+</table>
+
diff --git a/templates/Italian-pick_list.tex b/templates/Italian-pick_list.tex
new file mode 100755
index 00000000..04953ce8
--- /dev/null
+++ b/templates/Italian-pick_list.tex
@@ -0,0 +1,144 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}rlXrcll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} &
+ \textbf{Qty} & \textbf{Ship} & & \textbf{Bin} \\
+
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.5\textwidth}{
+ \textbf{Ship To}
+} \hfill
+
+\vspace{0.7cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.5\textwidth}{
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+}
+\parbox[t]{.4\textwidth}{
+ <%shiptocontact%>
+
+ <%if shiptophone%>
+ Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{P I C K} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{7}{|X}|} \hline
+ \textbf{Invoice \#} & \textbf{Order \#} & \textbf{Date} & \textbf{Contact}
+ & \textbf{Warehouse} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+ <%invnumber%> & <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%transdate%>
+ <%end shippingdate%>
+ & <%employee%>
+ <%if warehouse%>
+ & <%warehouse%>
+ <%end warehouse%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrcll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} &
+ \textbf{Qty} & \textbf{Ship} & & \textbf{Bin} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> &
+ <%qty%> & [\hspace{1cm}] & <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+}
+
+\end{document}
+
diff --git a/templates/Italian-pos_invoice.txt b/templates/Italian-pos_invoice.txt
new file mode 100755
index 00000000..fecd1557
--- /dev/null
+++ b/templates/Italian-pos_invoice.txt
@@ -0,0 +1,50 @@
+<%company align=center width=40%>
+<%address align=center width=40%>
+
+Till: <%till align=left width=3%> Phone#: <%tel%>
+Cashier: <%employee%>
+Inv No/Date: <%invnumber%> / <%invdate%>
+Printed: <%dateprinted%>
+
+ Qty Description Amount
+<%foreach number%>
+<%qty align=right width=5%> <%description align=left width=24 offset=6%> <%linetotal align=right width=9%>
+ <%number%> @ <%sellprice%>/<%unit%>
+<%end number%>
+
+Number of items: <%rowcount%>
+<%if taxincluded%>
+ ---------------
+ Amount Due: <%invtotal align=right width=9%>
+<%end taxincluded%>
+<%if not taxincluded%>
+ ------------
+ Subtotal: <%subtotal align=right width=9%>
+<%end taxincluded%>
+<%foreach tax%>
+<%taxdescription align=right width=23%> @ <%taxrate align=right width=2%>%: <%tax align=right width=9%>
+<%end tax%>
+ Amount Due: <%invtotal align=right width=9%>
+<%foreach payment%>
+<%paymentaccount align=right width=29%>: <%payment align=right width=9%> <%currency%>
+<%end payment%>
+<%if change%>
+ Change: <%change align=right width=9%>
+<%end change%>
+<%if total%>
+ Balance Due: <%total align=right width=9%>
+<%end total%>
+<%if discount%>
+
+<%discount%> % Discount applied
+<%end discount%>
+
+ Thank you for your valued business!
+
+<%if taxincluded%>
+Taxes are included in price.
+<%end taxincluded%>
+
+
+
+
diff --git a/templates/Italian-purchase_order.html b/templates/Italian-purchase_order.html
new file mode 100755
index 00000000..27a982a8
--- /dev/null
+++ b/templates/Italian-purchase_order.html
@@ -0,0 +1,232 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <td align=right>
+ <h4>
+ Telefono: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>ORDINE DI ACQUISTO</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Data ordine</th><td width=10>&nbsp;</td><td><%orddate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Consegna</th><td width=10>&nbsp;</td><td><%reqdate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Ordine numero</th><td>&nbsp;</td><td><%ordnumber%></td></tr>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+ </td>
+ </table>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>Ordinare a:</th>
+ <th align=left width=50%><font color=ffffff>Recapito:</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+<br><%address2%>
+<%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+<%country%>
+<%end country%>
+
+<br>
+<%if contact%>
+<br>All'attenzione di: <%contact%>
+<%end contact%>
+<%if vendorphone%>
+<br>Telefono: <%vendorphone%>
+<%end vendorphone%>
+<%if vendorfax%>
+<br>Fax: <%vendorfax%>
+<%end vendorfax%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+<br><%shiptoaddress2%>
+<%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+<%shiptocountry%>
+<%end shiptocountry%>
+
+<br>
+<%if shiptocontact%>
+<br>All'attenzione di: <%shiptocontact%>
+<%end shiptocontact%>
+<%if shiptophone%>
+<br>Telefono: <%shiptophone%>
+<%end shiptophone%>
+<%if shiptofax%>
+<br>Fax: <%shiptofax%>
+<%end shiptofax%>
+
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+<!-- <th align=right><font color=ffffff>No.</th> -->
+ <th align=left><font color=ffffff>Codice</th>
+ <th align=left><font color=ffffff>Descrizione</th>
+ <th><font color=ffffff>Quantit&agrave;</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Prezzo</th>
+ <th><font color=ffffff>Totale riga</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+<!-- <td align=right><%runningnumber%>.</td>
+adjust the colspan if you include this to shift subtotal one to the right
+-->
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=6><hr noshade></td>
+ </tr>
+
+ <tr>
+ <th colspan=4 align=right>Totale righe</th>
+ <td colspan=2 align=right><%subtotal%></td>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=4 align=right><%taxdescription%>: <%taxrate%>% su <%taxbase%></th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+<%end tax%>
+
+ <tr>
+ <td colspan=2>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=2><!--Termine di pagamento: <b><%terms%></b> giorni--></td>
+ <th colspan=2 align=right>Totale ordine</th>
+ <th colspan=2 align=right><%ordtotal%></th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>Note</td>
+ <td><pre><%notes%></pre></td>
+<%end notes%>
+ <td align=right>
+ Tutti i prezzi sono espressi in valuta <b><%currency%></b>
+ <br><%shippingpoint%>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><!--<font size=-3>
+ Payment due NET <%terms%> Days from date of Invoice.
+ Interest on overdue amounts will acrue at the rate of 1.5% per month
+ from due date until paid in full. Items returned are subject to
+ a 10% restocking charge. A return authorization must be obtained
+ from <%company%> before goods are returned. Returns must be shipped
+ prepaid and properly insured. <%company%> will not be responsible
+ for damages during transit.-->
+ </font>
+ </td>
+ <td width=150>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Italian-purchase_order.tex b/templates/Italian-purchase_order.tex
new file mode 100755
index 00000000..4fe633ea
--- /dev/null
+++ b/templates/Italian-purchase_order.tex
@@ -0,0 +1,206 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{18cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rr@{}}
+ Tel & <%tel%>\\
+ Fax & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%ordnumber%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+<%pagebreak 65 27 48%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotale} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markright{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrr@{}}
+ \textbf{Numero} & \textbf{Descrizione} & \textbf{Quantita'} &
+ \textbf{Unita'} & \textbf{Prezzo} & \textbf{Subtotale} \\
+ & carried forward from <%lastpage%> & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{10.5cm}{
+\textbf{Ordinare a:}
+\vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+Attn: <%contact%>
+\vspace{0.3cm}
+<%end contact%>
+
+<%if vendorphone%>
+Tel: <%vendorphone%>
+<%end vendorphone%>
+
+<%if vendorfax%>
+Fax: <%vendorfax%>
+<%end vendorfax%>
+
+<%email%>
+}
+\parbox[t]{7.5cm}{
+\textbf{Spedire la merce a:}
+\vspace{0.3cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%if shiptoaddress2%>
+<%shiptoaddress2%>
+<%end shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%if shiptocountry%>
+<%shiptocountry%>
+<%end shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+Attn: <%shiptocontact%>
+\vspace{0.3cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{ORDINE DI ACQUISTO}
+\hfill
+\begin{tabular}[t]{l@{\hspace{0.3cm}}l}
+ \textbf{Data} & <%orddate%> \\
+<%if reqdate%>
+ \textbf{Consegna} & <%reqdate%> \\
+<%end reqdate%>
+ \textbf{Ordine numero} & <%ordnumber%>
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrr@{}}
+ \textbf{Codice} & \textbf{Descrizione} & \textbf{Quantit\`a} &
+ \textbf{Unit\`a} & \textbf{Prezzo} & \textbf{Totale riga} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{10cm}{Xr@{}}
+ \textbf{Totale righe} & \textbf{<%subtotal%>} \\
+<%foreach tax%>
+ <%taxdescription%>: <%taxrate%>\% su <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ \textbf{Totale ordine} & \textbf{<%ordtotal%>}\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ Tutti i prezzi sono espressi in valuta \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+
+%\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+%\footnotetext[1]{\tiny }
+
+\end{document}
+
+
diff --git a/templates/Italian-receipt.tex b/templates/Italian-receipt.tex
new file mode 100755
index 00000000..3baf6d7a
--- /dev/null
+++ b/templates/Italian-receipt.tex
@@ -0,0 +1,78 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.4cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.0cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+
+\fontfamily{cmss}\fontsize{9pt}{9pt}\selectfont
+
+\parbox[t]{12cm}{
+ <%company%>
+
+ <%address%>}
+\hfill
+\parbox[t]{6cm}{\hfill <%source%>}
+
+\vspace*{0.6cm}
+
+<%text_amount%> \dotfill <%decimal%>/100 \makebox[0.5cm]{\hfill}
+
+\vspace{0.5cm}
+
+\hfill <%datepaid%> \makebox[2cm]{\hfill} <%amount%>
+
+\vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{1.8cm}
+
+<%notes%>
+
+\vspace{0.8cm}
+
+<%company%>
+
+\vspace{0.5cm}
+
+<%name%> \hfill <%datepaid%> \hfill <%source%>
+
+\vspace{0.5cm}
+\begin{tabularx}{\textwidth}{lXrr@{}}
+\textbf{Fattura Numero} & \textbf{Data}
+ & \textbf{Dovuto} & \textbf{Applicato} \\
+<%foreach invnumber%>
+<%invnumber%> & <%invdate%> \dotfill
+ & <%due%> & <%paid%> \\
+<%end invnumber%>
+\end{tabularx}
+
+\vfill
+
+\end{document}
diff --git a/templates/Italian-request_quotation.html b/templates/Italian-request_quotation.html
new file mode 100755
index 00000000..fa684866
--- /dev/null
+++ b/templates/Italian-request_quotation.html
@@ -0,0 +1,202 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <td><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58>
+ </td>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>R E Q U E S T &nbsp;&nbsp; F O R &nbsp;&nbsp; Q U O T A T I O N</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>To:</th>
+ <th align=left width=50%><font color=ffffff>Ship To:</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+<br>
+<%if contact%>
+<br>Attn: <%contact%>
+<%end contact%>
+<%if vendorphone%>
+<br>Tel: <%vendorphone%>
+<%end vendorphone%>
+<%if vendorfax%>
+<br>Fax: <%vendorfax%>
+<%end vendorfax%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddr2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+<br>
+<%if shiptocontact%>
+<br>Attn: <%shiptocontact%>
+<%end shiptocontact%>
+<%if shiptophone%>
+<br>Tel: <%shiptophone%>
+<%end shiptophone%>
+<%if shiptofax%>
+<br>Fax: <%shiptofax%>
+<%end shiptofax%>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr><td>&nbsp;</td></tr>
+
+ <tr>
+ <td colspan=2>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left>RFQ #</th>
+ <th width=17% align=left>Date</th>
+ <th width=17% align=left>Required by</th>
+ <th width=17% align=left>Contact</th>
+ <th width=17% align=left>Shipping Point</th>
+ <th width=15% align=left>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%quonumber%></td>
+ <td><%quodate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height="10"></tr>
+
+ <tr>
+ <td>Please provide price and delivery time for the following items:</td>
+ </tr>
+
+ <tr height="10"></tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+<!-- <th align=right>No.</th> -->
+ <th align=left>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th>Qt'y</th>
+ <th>&nbsp;</th>
+ <th>Delivery</th>
+ <th>Unit Price</th>
+ <th>Extended</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+<!-- <td align=right><%runningnumber%>.</td>
+other per line item variables available <%reqdate%>
+adjust the colspan if you include this to shift subtotal one to the right
+-->
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=7><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+<%if notes%>
+ <tr valign=top>
+ <td>Notes</td>
+ <td><%notes%></td>
+ </tr>
+<%end notes%>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=70%>&nbsp;</td>
+
+ <td width=30%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Italian-request_quotation.tex b/templates/Italian-request_quotation.tex
new file mode 100755
index 00000000..49f1abe7
--- /dev/null
+++ b/templates/Italian-request_quotation.tex
@@ -0,0 +1,175 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Extended} \\
+ & carried forward from <%lastpage%> & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.45\textwidth}{
+\textbf{To}
+\vspace{0.7cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if vendorphone%>
+Tel: <%vendorphone%>
+<%end vendorphone%>
+
+<%if vendorfax%>
+Fax: <%vendorfax%>
+<%end vendorfax%>
+
+<%email%>
+}
+\parbox[t]{.45\textwidth}{
+\textbf{Ship To}
+\vspace{0.7cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{R E Q U E S T for Q U O T A T I O N}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{RFQ \#} & \textbf{Date} & \textbf{Required by} & \textbf{Contact} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5ex]
+ \hline
+ <%quonumber%> & <%quodate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+Please provide price and delivery time for the following items:
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}lXrllrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} & &
+ \textbf{Delivery} & \textbf{Unit Price} & \textbf{Extended} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> & <%unit%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\hfill
+
+<%notes%>
+
+}
+
+\end{document}
+
diff --git a/templates/Italian-sales_order.html b/templates/Italian-sales_order.html
new file mode 100755
index 00000000..af79e81c
--- /dev/null
+++ b/templates/Italian-sales_order.html
@@ -0,0 +1,207 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>ORDINE DI VENDITA</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Data ordine</th><td width=10>&nbsp;</td><td><%orddate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Consegna</th><td width=10>&nbsp;</td><td><%reqdate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Ordine numero</th><td>&nbsp;</td><td><%ordnumber%></td></tr>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+ </td>
+ </table>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Ordinato da:</th>
+ <th align=left><font color=ffffff>Recapito:</th>
+ </tr>
+
+ <tr>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+<br><%address2%>
+<%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+<%country%>
+<%end country%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+<br><%shiptoaddress2%>
+<%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+<%shiptocountry%>
+<%end shiptocountry%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+<!-- <th align=right><font color=ffffff>No.</th> -->
+ <th align=left><font color=ffffff>Numero</th>
+ <th align=left><font color=ffffff>Descrizione</th>
+ <th><font color=ffffff>Quantit&agrave;</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Prezzo</th>
+ <th><font color=ffffff>Totale riga</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=6><hr noshade></td>
+ </tr>
+
+ <tr>
+ <th colspan=4 align=right>Totale righe</th>
+ <td colspan=2 align=right><%subtotal%></td>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=4 align=right><%taxdescription%>: <%taxrate%>% su <%taxbase%></th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+<%end tax%>
+
+ <tr>
+ <td colspan=2>&nbsp;</td>
+ <td colspan=5><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=3><!--Termine: <b><%terms%></b> giorni.--></td>
+ <th colspan=2 align=right>Totale</th>
+ <th colspan=2 align=right><%ordtotal%></th>
+ </tr>
+<%if taxincluded%>
+ <tr>
+ <td colspan=3>L'IVA &egrave; inclusa nel Totale</td>
+ </tr>
+<%end taxincluded%>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>Note</td>
+ <td><pre><%notes%></pre></td>
+<%end notes%>
+ <td align=right>
+ Tutti i prezzi sono espressi in valuta <b><%currency%></b>.
+ <br><%shippingpoint%>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><!--<font size=-3>
+ Verr&agrave; applicato un 10% di commissione sulla cancellazione dell'ordine
+ per ogni modifica a richiesta del cliente.
+ </font>-->
+ </td>
+ <td width=150>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Italian-sales_order.tex b/templates/Italian-sales_order.tex
new file mode 100755
index 00000000..ae488857
--- /dev/null
+++ b/templates/Italian-sales_order.tex
@@ -0,0 +1,150 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{18cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telefono & <%tel%>\\
+ Fax & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%ordnumber%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+<%pagebreak 65 27 48%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markright{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Codice} & \textbf{Descrzione} & \textbf{Quantit\`a} &
+ \textbf{Unit\`a} & \textbf{Prezzo} & \textbf{Sconto} & \textbf{Totale riga} \\
+ & carried forward from <%lastpage%> & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{2cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{3.5cm}
+
+\textbf{ORDINE DI VENDITA}
+\hfill
+\begin{tabular}[t]{l@{\hspace{0.3cm}}l}
+ \textbf{Data ordine} & <%orddate%> \\
+<%if reqdate%>
+ \textbf{Consegna} & <%reqdate%> \\
+<%end reqdate%>
+ \textbf{Ordine numero} & <%ordnumber%>
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Codice} & \textbf{Descrizione} & \textbf{Qt\`a} &
+ \textbf{Un.} & \textbf{Prezzo} & \textbf{Sconto} & \textbf{Tot. riga} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%discount%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Totale righe} & \textbf{<%subtotal%>} \\
+<%foreach tax%>
+ <%taxdescription%>: <%taxrate%>\% su <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ \textbf{Totale ordine} & \textbf{<%ordtotal%>}\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ Tutti i prezzi sono in valuta \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+%
+%\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+%
+%\footnotetext[1]{\tiny
+%A 10\% order cancellation fee will be applied for any special order products or
+%products that have been customized, enhanced or upgraded at customers request.
+%Items which are non-returnable are indicated above.
+%}
+
+\end{document}
+
diff --git a/templates/Italian-sales_quotation.html b/templates/Italian-sales_quotation.html
new file mode 100755
index 00000000..0abf5fc7
--- /dev/null
+++ b/templates/Italian-sales_quotation.html
@@ -0,0 +1,225 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr valign=top>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+<tr><td colspan=3>&nbsp;</td></tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>Q U O T A T I O N</h4>
+ </th>
+ </tr>
+
+ </table>
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td>
+ <table width=100%>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+
+ <br>
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr><td>&nbsp;</td></tr>
+
+ <tr>
+ <td colspan=2>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Number</th>
+ <th width=17% align=left>Date</th>
+ <th width=17% align=left>Valid until</th>
+ <th width=17% align=left nowrap>Contact</th>
+ <th width=17% align=left nowrap>Shipping Point</th>
+ <th width=15% align=left nowrap>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%quonumber%></td>
+ <td><%quodate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>No.</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qt'y</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Price</th>
+ <th><font color=ffffff>Disc %</th>
+ <th><font color=ffffff>Amount</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%></td>
+
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discountrate%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=8><hr noshade></td>
+ </tr>
+
+ <tr>
+<%if taxincluded%>
+ <th colspan=6 align=right>Total</th>
+ <td colspan=2 align=right><%invtotal%></td>
+<%end taxincluded%>
+
+<%if not taxincluded%>
+ <th colspan=6 align=right>Subtotal</th>
+ <td colspan=2 align=right><%subtotal%></td>
+<%end taxincluded%>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=6 align=right><%taxdescription%> on <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+<%end tax%>
+
+ <tr>
+ <td colspan=4>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=4>&nbsp;
+<%if terms%>
+ Terms Net <b><%terms%></b> days
+<%end terms%>
+ </td>
+ <th colspan=2 align=right>Total</th>
+ <th colspan=2 align=right><%quototal%></th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>Notes</td>
+ <td><%notes%></td>
+<%end notes%>
+ <td align=right>
+ All prices in <b><%currency%></b> Funds
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=60%><font size=-3>
+ Special order items are subject to a 10% cancellation fee.
+ </font>
+ </td>
+ <td width=40%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Italian-sales_quotation.tex b/templates/Italian-sales_quotation.tex
new file mode 100755
index 00000000..25792c6b
--- /dev/null
+++ b/templates/Italian-sales_quotation.tex
@@ -0,0 +1,157 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 48%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%quonumber%>}{<%company%>\hfill <%quonumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+ & carried forward from <%lastpage%> & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.45\textwidth}{
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%contact%>
+
+\vspace{0.2cm}
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+
+\vspace{1cm}
+
+\textbf{Q U O T A T I O N}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Quotation \#} & \textbf{Date} & \textbf{Valid until} & \textbf{Contact} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5ex]
+ \hline
+ <%quonumber%> & <%quodate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%discountrate%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ Subtotal & <%subtotal%> \\
+<%foreach tax%>
+ <%taxdescription%> on <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ Total & <%quototal%>\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ All prices in \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%notes%>
+
+}
+
+\vfill
+
+\end{document}
+
+
diff --git a/templates/Italian-statement.html b/templates/Italian-statement.html
new file mode 100755
index 00000000..88136d8b
--- /dev/null
+++ b/templates/Italian-statement.html
@@ -0,0 +1,125 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+ <tr>
+ <th colspan=3><h4>E S T R A T T O &nbsp;&nbsp;&nbsp;&nbsp; C O N T O</h4></th>
+ </tr>
+ <tr>
+ <td colspan=3 align=right><%statementdate%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+<br><%address2%>
+<%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+<%country%>
+<%end country%>
+ <br>
+<%if customerphone%>
+ <br>Tel: <%customerphone%>
+<%end customerphone%>
+<%if customerfax%>
+ <br>Fax: <%customerfax%>
+<%end customerfax%>
+<%if email%>
+ <br><%email%>
+<%end email%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr height=10></tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr>
+ <th align=left>Fattura Numero</th>
+ <th width=15%>Data</th>
+ <th width=15%>Dovuto</th>
+ <th width=10%>Corrente</th>
+ <th width=10%>30</th>
+ <th width=10%>60</th>
+ <th width=10%>90+</th>
+ </tr>
+<%foreach invnumber%>
+ <tr>
+ <td><%invnumber%></td>
+ <td><%invdate%></td>
+ <td><%duedate%></td>
+ <td align=right><%c0%></td>
+ <td align=right><%c30%></td>
+ <td align=right><%c60%></td>
+ <td align=right><%c90%></td>
+ </tr>
+<%end invnumber%>
+ <tr>
+ <td colspan=7><hr size=1></td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <th align=right><%c0total%></td>
+ <th align=right><%c30total%></td>
+ <th align=right><%c60total%></td>
+ <th align=right><%c90total%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr height=10></tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td align=right>
+ <table width=50%>
+ <tr>
+ <th>Totale Dovuto</th>
+ <th align=right><%total%></th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td><hr noshade></td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>Per favore intestare gli assegni a: <b><%company%></b>.
+ </td>
+ </tr>
+ <tr height=20></tr>
+</table>
+
diff --git a/templates/Italian-statement.tex b/templates/Italian-statement.tex
new file mode 100755
index 00000000..d005047d
--- /dev/null
+++ b/templates/Italian-statement.tex
@@ -0,0 +1,141 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rrr@{}}
+ Tel & <%tel%>\\
+ Fax & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%statementdate%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+<%pagebreak 65 27 48%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotale} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markright{<%company%>\hfill <%statementdate%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}l@{\extracolsep\fill}ccrrrr@{}}
+ \textbf{Fattura Numero} & \textbf{Data} & \textbf{Dovuto} &
+ \textbf{Scaduto} & \textbf{30} & \textbf{60} & \textbf{90+} \\
+ carried forward from <%lastpage%> & & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{1.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{10.5cm}{
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+}
+\parbox[t]{7.5cm}{
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{E S T R A T T O} \parbox{0.3cm}{\hfill} \textbf{C O N T O} \hfill
+
+\hfill <%statementdate%>
+
+\vspace{2cm}
+
+\begin{tabular*}{\textwidth}{@{}l@{\extracolsep\fill}ccrrrr@{}}
+ \textbf{Fattura Numero} & \textbf{Data} & \textbf{Dovuto} &
+ \textbf{Corrente} & \textbf{30} & \textbf{60} & \textbf{90+} \\
+<%foreach invnumber%>
+ <%invnumber%> & <%invdate%> & <%duedate%> &
+ <%c0%> & <%c30%> & <%c60%> & <%c90%> \\
+<%end invnumber%>
+\textbf{Subtotale} & & & <%c0total%> & <%c30total%> & <%c60total%> & <%c90total%>
+\end{tabular*}
+\rule{\textwidth}{1pt}
+
+\vspace{1cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Totale Dovuto} & <%total%>
+\end{tabularx}
+
+\vfill
+
+Per favore intestare gli assegni a: <%company%>
+
+\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+\footnotetext[1]{\tiny
+}
+
+\end{document}
+
diff --git a/templates/Italian-timecard.html b/templates/Italian-timecard.html
new file mode 100755
index 00000000..361b8254
--- /dev/null
+++ b/templates/Italian-timecard.html
@@ -0,0 +1,146 @@
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=sql-ledger.png border=0 width=84 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>T I M E &nbsp;&nbsp; C A R D</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=left>Employee</th>
+ <td><%employee%></td>
+ </tr>
+ <tr>
+ <th align=left>ID</th>
+ <td><%employee_id%></td>
+ </tr>
+ </table>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Card ID</th>
+ <td><%id%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Date Worked</th>
+ <td><%transdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Time In</th>
+ <td><%checkedin%></td>
+ </tr>
+ <tr>
+ <th align=left>Time Out</th>
+ <td><%checkedout%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Hours Worked</th>
+ <td><%qty%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=bottom>
+ <td>
+ <table>
+ <tr valign=top>
+ <th align=left>Project/Job #</th>
+ <td><%projectnumber%></td>
+ </tr>
+ <tr>
+ <th align=left>Description</th>
+ <td><%projectdescription%></td>
+ </tr>
+ <tr valign=top>
+ <th align=left>Labor/Service Code</th>
+ <td><%partnumber%></td>
+ </tr>
+ <tr>
+ <th align=left>Description</th>
+ <td><%description%></td>
+ </tr>
+ </table>
+ </td>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Unit Rate</th>
+ <td><%sellprice%></td>
+ </tr>
+ <tr>
+ <th align=right>Total</th>
+ <td><%total%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+<%if notes%>
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%notes%>
+ </td>
+ </tr>
+<%end notes%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Italian-timecard.tex b/templates/Italian-timecard.tex
new file mode 100755
index 00000000..49a30c54
--- /dev/null
+++ b/templates/Italian-timecard.tex
@@ -0,0 +1,71 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-1cm,left=2cm,right=1cm]{geometry}
+\usepackage{graphicx}
+\setlength{\parindent}{0pt}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Tel: & <%tel%>\\
+ Fax: & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+\centerline{\textbf{T I M E}\hspace{0.5cm}\textbf{C A R D}}
+
+\vspace*{0.5cm}
+
+\begin{tabular}[t]{ll}
+ \textbf{Employee} & <%employee%> \\
+ \textbf{ID} & <%employee_id%> \\
+\end{tabular}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Card ID} & <%id%> \\
+ \textbf{Date Worked} & <%transdate%> \\
+ \textbf{Time In} & <%checkedin%> \\
+ \textbf{Time Out} & <%checkedout%> \\
+ \textbf{Hours Worked} & <%qty%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular}[b]{ll}
+ \textbf{Project/Job \#} & <%projectnumber%> \\
+ \textbf{Description} & <%projectdescription%> \\
+ \textbf{Labor/Service Code} & <%partnumber%> \\
+ \textbf{Description} & <%description%> \\
+\end{tabular}
+\hfill
+\begin{tabular}[b]{lr}
+ \textbf{Unit Rate} & <%sellprice%> \\
+ \textbf{Total} & <%total%> \\
+\end{tabular}
+
+\vspace{0.3cm}
+
+<%notes%>
+
+\end{document}
+
+
diff --git a/templates/Italian-work_order.html b/templates/Italian-work_order.html
new file mode 100755
index 00000000..88d212af
--- /dev/null
+++ b/templates/Italian-work_order.html
@@ -0,0 +1,174 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=bottom>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>W O R K &nbsp;&nbsp; O R D E R</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>To</th>
+ <th align=left width=50%><font color=ffffff>Ship To</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%>
+ <br><%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%>
+ <br><%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ <br>
+ <%if shiptocontact%>
+ <br><%shiptocontact%>
+ <%end shiptocontact%>
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+ <%if shiptoemail%>
+ <br><%shiptoemail%>
+ <%end shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Order Number</th>
+ <th width=17% align=left>Order Date</th>
+ <th width=17% align=left>Required by</th>
+ <th width=17% align=left nowrap>Salesperson</th>
+ <th width=17% align=left nowrap>Shipping Point</th>
+ <th width=15% align=left nowrap>Ship Via</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%></td>
+ <td><%orddate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>No.</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qt'y</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Serial No.</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%>.</td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td><%serialnumber%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <td colspan=6><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <%if notes%>
+ <td><%notes%></td>
+ <%end notes%>
+ </tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Italian-work_order.tex b/templates/Italian-work_order.tex
new file mode 100755
index 00000000..9b2f6f95
--- /dev/null
+++ b/templates/Italian-work_order.tex
@@ -0,0 +1,177 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}rlXrll@{}}
+ \textbf{No.} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ & \textbf{Serial Number} \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.45\textwidth}{
+\textbf{To}
+\vspace{0.7cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\parbox[t]{.45\textwidth}{
+\textbf{Ship To}
+\vspace{0.7cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{W O R K} \parbox{0.3cm}{\hfill} \textbf{O R D E R}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Order Date} & \textbf{Required by} & \textbf{Salesperson} & \textbf{Shipping Point} & \textbf{Ship Via} \\ [0.5em]
+ \hline
+ <%ordnumber%> & <%orddate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrll@{}}
+ \textbf{No.} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ & \textbf{Serial Number} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%serialnumber%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+\vfill
+
+\vspace{1cm}
+
+\rule{\textwidth}{0.5pt}
+
+\end{document}
+
+
+
+
+
+
diff --git a/templates/Norwegian-ap_transaction.html b/templates/Norwegian-ap_transaction.html
new file mode 100755
index 00000000..fd7a96eb
--- /dev/null
+++ b/templates/Norwegian-ap_transaction.html
@@ -0,0 +1,229 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>A P - T R A N S A C T I O N</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Invoice #</th>
+ <td><%invnumber%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Date</th>
+ <td><%invdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Due</th>
+ <td><%duedate%></td>
+ </tr>
+ <tr>
+ <th align=left>Order #</th>
+ <td><%ordnumber%>&nbsp;</td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Employee</th>
+ <td><%employee%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=50%>
+ <table>
+ <%foreach account%>
+ <tr valign=top>
+ <td><%accno%></td>
+ <td><%account%></td>
+ <td align=right><%amount%></td>
+ <td><%projectnumber%></td>
+ </tr>
+ <%end account%>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Subtotal</th>
+ <td align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=2 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ </table>
+ </td>
+ <td width=50%>
+ <%notes%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <tr>
+ <td>&nbsp;</td>
+
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%text_amount%> ***** <%decimal%>/100 <%currency%>
+ </td>
+ </tr>
+
+ <%if paid%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <tr>
+ <th>Payments</th>
+ </tr>
+
+ <tr>
+ <td>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=left>Date</th>
+ <th align=left>Account</th>
+ <th align=left>Source</th>
+ <th align=left>Memo</th>
+ <th align=left>Amount</th>
+ </tr>
+ <%end paid%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td><%paymentmemo%></td>
+ <td><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid%>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <%end paid%>
+
+ <tr height=10></tr>
+
+ <%if taxincluded%>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <th colspan=3 align=left><font size=-2>Taxes shown are included in price.</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Norwegian-ap_transaction.tex b/templates/Norwegian-ap_transaction.tex
new file mode 100755
index 00000000..8bfd9f79
--- /dev/null
+++ b/templates/Norwegian-ap_transaction.tex
@@ -0,0 +1,125 @@
+\documentclass[10pt,letterpaper,oneside,onecolumn]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+\centerline{\textbf{A P} \hspace{0.3cm} \textbf{T R A N S A C T I O N}}
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+<%end contact%>
+
+\vspace{0.2cm}
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Invoice \#} & <%invnumber%> \\
+ \textbf{Date} & <%invdate%> \\
+ \textbf{Due} & <%duedate%> \\
+ \textbf{Order \#} & <%ordnumber%> \\
+ \textbf{Employee} & <%employee%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabularx}{.5\textwidth}[t]{@{}llrl@{}}
+<%foreach amount%>
+ <%accno%> & <%account%> & <%amount%> & <%projectnumber%> \\
+<%end amount%>
+
+ \multicolumn{2}{r}{\textbf{Subtotal}} & <%subtotal%> & \\
+<%foreach tax%>
+ \multicolumn{2}{r}{\textbf{<%taxdescription%> @ <%taxrate%> \%}} & <%tax%> & \\
+<%end tax%>
+
+ \multicolumn{2}{r}{\textbf{Total}} & <%invtotal%> & \\
+
+\end{tabularx}
+<%notes%>
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100 <%currency%>
+
+\vspace{0.3cm}
+
+<%if paid%>
+\begin{tabular}{@{}llllr@{}}
+ \multicolumn{5}{c}{\textbf{Payments}} \\
+ \hline
+ \textbf{Date} & & \textbf{Source} & \textbf{Memo} & \textbf{Amount} \\
+<%end paid%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%paymentmemo%> & <%payment%> \\
+<%end payment%>
+<%if paid%>
+\end{tabular}
+<%end paid%>
+
+\end{document}
+
diff --git a/templates/Norwegian-ar_transaction.html b/templates/Norwegian-ar_transaction.html
new file mode 100755
index 00000000..22833384
--- /dev/null
+++ b/templates/Norwegian-ar_transaction.html
@@ -0,0 +1,237 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>A R - T R A N S A C T I O N</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Invoice #</th>
+ <td><%invnumber%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Date</th>
+ <td><%invdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Due</th>
+ <td><%duedate%></td>
+ </tr>
+ <tr>
+ <th align=left>Order #</th>
+ <td><%ordnumber%>&nbsp;</td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Salesperson</th>
+ <td><%employee%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=50%>
+ <table>
+ <%foreach account%>
+ <tr valign=top>
+ <td><%accno%></td>
+ <td><%account%></td>
+ <td align=right><%amount%></td>
+ <td><%projectnumber%></td>
+ </tr>
+ <%end account%>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Subtotal</th>
+ <td align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=2 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ </table>
+ </td>
+ <td width=50%>
+ <%notes%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <tr>
+ <td>&nbsp;</td>
+
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%text_amount%> ***** <%decimal%>/100 <%currency%>
+ </td>
+ </tr>
+
+ <%if paid%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <tr>
+ <th>Payments</th>
+ </tr>
+
+ <tr>
+ <td>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=left>Date</th>
+ <th align=left>Account</th>
+ <th align=left>Source</th>
+ <th align=left>Memo</th>
+ <th align=left>Amount</th>
+ </tr>
+ <%end paid%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td><%paymentmemo%></td>
+ <td><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid%>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <%end paid%>
+
+ <tr height=10></tr>
+
+ <%foreach tax%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <th colspan=9 align=left><font size=-2><%taxdescription%> Registration <%taxnumber%></th>
+ </tr>
+ <%end tax%>
+
+ <%if taxincluded%>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <th colspan=3 align=left><font size=-2>Taxes shown are included in price.</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Norwegian-ar_transaction.tex b/templates/Norwegian-ar_transaction.tex
new file mode 100755
index 00000000..654d2b95
--- /dev/null
+++ b/templates/Norwegian-ar_transaction.tex
@@ -0,0 +1,131 @@
+\documentclass[10pt,letterpaper,oneside,onecolumn]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+\centerline{\textbf{A R} \hspace{0.3cm} \textbf{T R A N S A C T I O N}}
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+<%end contact%>
+
+\vspace{0.2cm}
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Invoice \#} & <%invnumber%> \\
+ \textbf{Date} & <%invdate%> \\
+ \textbf{Due} & <%duedate%> \\
+ \textbf{Order \#} & <%ordnumber%> \\
+ \textbf{Employee} & <%employee%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabularx}{.5\textwidth}[t]{@{}llrl@{}}
+<%foreach amount%>
+ <%accno%> & <%account%> & <%amount%> & <%projectnumber%> \\
+<%end amount%>
+
+ \multicolumn{2}{r}{\textbf{Subtotal}} & <%subtotal%> & \\
+<%foreach tax%>
+ \multicolumn{2}{r}{\textbf{<%taxdescription%> @ <%taxrate%> \%}} & <%tax%> & \\
+<%end tax%>
+
+ \multicolumn{2}{r}{\textbf{Total}} & <%invtotal%> & \\
+
+\end{tabularx}
+<%notes%>
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100 <%currency%>
+
+\vspace{0.3cm}
+
+<%if paid%>
+\begin{tabular}{@{}llllr@{}}
+ \multicolumn{5}{c}{\textbf{Payments}} \\
+ \hline
+ \textbf{Date} & & \textbf{Source} & \textbf{Memo} & \textbf{Amount} \\
+<%end paid%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%paymentmemo%> & <%payment%> \\
+<%end payment%>
+<%if paid%>
+\end{tabular}
+<%end paid%>
+
+\vspace{0.5cm}
+
+<%foreach tax%>
+\textbf{\small{<%taxdescription%> Registration <%taxnumber%>}} \\
+<%end tax%>
+
+\end{document}
+
diff --git a/templates/Norwegian-balance_sheet.html b/templates/Norwegian-balance_sheet.html
new file mode 100755
index 00000000..20474329
--- /dev/null
+++ b/templates/Norwegian-balance_sheet.html
@@ -0,0 +1,100 @@
+
+<body bgcolor=ffffff>
+
+<h2 align=center>
+<%company%>
+<br><%address%>
+
+<p>B A L A N S E
+<br><%period%>
+</h2>
+
+<table border=0>
+<tr>
+ <th align=left width=400 colspan=2>AKTIVA<br><hr align=left width=250 size=5 noshade></th>
+ <th><%this_period%></th>
+ <th><%last_period%></th>
+</tr>
+
+<%foreach asset_account%>
+<tr>
+ <td> </td>
+ <td><%asset_account%></td>
+ <td align=right><%asset_this_period%></td>
+ <td align=right><%asset_last_period%></td>
+</tr>
+<%end asset_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>TOTALE AKTIVA</th>
+ <td align=right><%total_assets_this_period%><hr noshade size=2></td>
+ <td align=right><%total_assets_last_period%><hr noshade size=2></td>
+</tr>
+
+<tr>
+ <th align=left colspan=4>PASSIVA<b><hr align=left width=250 size=5 noshade></th>
+</tr>
+
+<%foreach liability_account%>
+<tr>
+ <td></td>
+ <td><%liability_account%></td>
+ <td align=right><%liability_this_period%></td>
+ <td align=right><%liability_last_period%></td>
+</tr>
+<%end liability_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td></td>
+ <th align=left>Total gjeld</th>
+ <td align=right><%total_liabilities_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_liabilities_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr>
+ <th align=left colspan=4>EGENKAPITAL<br><hr align=left width=250 size=5 noshade></th>
+</tr>
+
+<%foreach equity_account%>
+<tr>
+ <td></td>
+ <td><%equity_account%></td>
+ <td align=right><%equity_this_period%></td>
+ <td align=right><%equity_last_period%></td>
+</tr>
+<%end equity_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td></td>
+ <th align=left>Total egenkapital</th>
+ <td align=right><%total_equity_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_equity_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>TOTAL GJELD OG EGENKAPITAL</th>
+ <td align=right><%total_this_period%><br><hr noshade size=2></td>
+ <td align=right><%total_last_period%><br><hr noshade size=2></td>
+</tr>
+</table>
+
+
+
diff --git a/templates/Norwegian-bin_list.html b/templates/Norwegian-bin_list.html
new file mode 100755
index 00000000..24440675
--- /dev/null
+++ b/templates/Norwegian-bin_list.html
@@ -0,0 +1,189 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <th align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>B I N &nbsp;&nbsp; L I S T</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% cellspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>From</th>
+ <th align=left width=50%><font color=ffffff>Ship To</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+
+ <%if vendorphone%>
+ <br>Tel: <%vendorphone%>
+ <%end vendorphone%>
+
+ <%if vendorfax%>
+ <br>Fax: <%vendorfax%>
+ <%end vendorfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+
+ <br>
+ <%if shiptocontact%>
+ <br>Attn: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Order #</th>
+ <th width=17% align=left nowrap>Date</th>
+ <th width=17% align=left nowrap>Contact</th>
+ <%if warehouse%>
+ <th width=17% align=left nowrap>Warehouse</th>
+ <%end warehouse%>
+ <th width=17% align=left>Shipping Point</th>
+ <th width=15% align=left>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%>&nbsp;</td>
+
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%orddate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+
+ <%if warehouse%>
+ <td><%warehouse%></td>
+ <%end warehouse%>
+
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Pos</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Serialnumber</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Qty</th>
+ <th><font color=ffffff>Recd</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Bin</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%></td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td><%serialnumber%></td>
+ <td><%deliverydate%></td>
+ <td align=right><%qty%></td>
+ <td align=right><%ship%></td>
+ <td><%unit%></td>
+ <td><%bin%></td>
+ </tr>
+ <%end number%>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+</table>
+
diff --git a/templates/Norwegian-bin_list.tex b/templates/Norwegian-bin_list.tex
new file mode 100755
index 00000000..3d6052f9
--- /dev/null
+++ b/templates/Norwegian-bin_list.tex
@@ -0,0 +1,147 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Recd} & & \textbf{Bin} \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.5\textwidth}{
+\textbf{From}
+\vspace{0.7cm}
+
+<%name%>
+
+<%address1%>
+
+<%if %address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country4%>
+<%end country%>
+}
+\parbox[t]{.4\textwidth}{
+\textbf{Ship To}
+\vspace{0.7cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%if shiptoaddress2%>
+<%shiptoaddress2%>
+<%end shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%if shiptocountry%>
+<%shiptocountry%>
+<%end shiptocountry%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{B I N} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Date} & \textbf{Contact}
+ <%if warehouse%>
+ & \textbf{Warehouse}
+ <%end warehouse%>
+ & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+
+ <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%orddate%>
+ <%end shippingdate%>
+ & <%employee%>
+ <%if warehouse%>
+ & <%warehouse%>
+ <%end warehouse%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Recd} & & \textbf{Bin} \\
+
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%serialnumber%> &
+ <%deliverydate%> & <%qty%> & <%ship%> & <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabularx}
+
+
+\rule{\textwidth}{2pt}
+
+\end{document}
+
diff --git a/templates/Norwegian-check.tex b/templates/Norwegian-check.tex
new file mode 100755
index 00000000..75699ba3
--- /dev/null
+++ b/templates/Norwegian-check.tex
@@ -0,0 +1,81 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.4cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.0cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+
+\fontfamily{cmss}\fontsize{9pt}{9pt}\selectfont
+
+\parbox[t]{12cm}{
+ <%company%>
+
+ <%address%>}
+\hfill
+\parbox[t]{6cm}{\hfill <%source%>}
+
+\vspace*{0.6cm}
+
+<%text_amount%> \dotfill <%decimal%>/100 \makebox[0.5cm]{\hfill}
+
+\vspace{0.5cm}
+
+\hfill <%datepaid%> \makebox[2cm]{\hfill} <%amount%>
+
+\vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{1.8cm}
+
+<%notes%>
+
+\vspace{0.8cm}
+
+<%company%>
+
+\vspace{0.5cm}
+
+<%name%> \hfill <%datepaid%> \hfill <%source%>
+
+\vspace{0.5cm}
+\begin{tabularx}{\textwidth}{lXrr@{}}
+\textbf{Faktura nr.} & \textbf{Faktura dato}
+ & \textbf{Skyldig} & \textbf{Betalt} \\
+<%foreach invnumber%>
+<%invnumber%> & <%invdate%> \dotfill
+ & <%due%> & <%paid%> \\
+<%end invnumber%>
+\end{tabularx}
+
+\vfill
+
+\end{document}
+
+
+
diff --git a/templates/Norwegian-income_statement.html b/templates/Norwegian-income_statement.html
new file mode 100755
index 00000000..945d19a5
--- /dev/null
+++ b/templates/Norwegian-income_statement.html
@@ -0,0 +1,78 @@
+
+<body bgcolor=ffffff>
+
+<h2 align=center>
+<%company%>
+<br><%address%>
+
+<p>D R I F T S R E G N S K A P
+<br><%period%>
+</h2>
+
+
+<table width=100% border=0>
+<tr>
+ <th width=400 align=left colspan=2><br></th>
+ <th><%this_period%></th>
+ <th><%last_period%></th>
+</tr>
+
+<tr>
+ <th align=left colspan=2>INNTEKTER<br><hr width=300 size=5 align=left noshade></th>
+</tr>
+
+<%foreach income_account%>
+<tr>
+ <td width=4> </td>
+ <td><%income_account%></td>
+ <td align=right><%income_this_period%></td>
+ <td align=right><%income_last_period%></td>
+</tr>
+<%end income_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td> </td>
+ <th align=left>Totale inntekter</th>
+ <td align=right><%total_income_this_period%><hr noshade size=2></td>
+ <td align=right><%total_income_last_period%><hr noshade size=2></td>
+</tr>
+
+<tr>
+ <th align=left colspan=2>UTGIFTER<br><hr width=300 size=5 align=left noshade></th>
+</tr>
+
+<%foreach expense_account%>
+<tr>
+ <td> </td>
+ <td><%expense_account%></td>
+ <td align=right><%expenses_this_period%></td>
+ <td align=right><%expenses_last_period%></td>
+</tr>
+<%end expense_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td> </td>
+ <th align=left>Totale utgifter</th>
+ <td align=right><%total_expenses_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_expenses_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>RESULTAT</th>
+ <td align=right><%total_this_period%><br><hr noshade size=2></td>
+ <td align=right><%total_last_period%><br><hr noshade size=2></td>
+</tr>
+
+</table>
diff --git a/templates/Norwegian-invoice.html b/templates/Norwegian-invoice.html
new file mode 100755
index 00000000..8ac71439
--- /dev/null
+++ b/templates/Norwegian-invoice.html
@@ -0,0 +1,226 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr>
+ <td width=10>
+ </td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th colspan=2>
+ <h4 align=center>F A K T U R A</h4>
+ </th>
+ </tr>
+
+ </table>
+
+<!-- other variables you can use include
+tel, fax, signature, username, businessnumber -->
+
+ <table width=100% cellspacing=0 cellpadding=0>
+
+ <tr>
+ <td align=right>
+ <table>
+
+ <tr>
+ <th align=right>Fakturanr.:</th><td></td><td><%invnumber%></td></tr>
+ </tr>
+
+ <tr>
+ <th align=right>Fakturadato:</th><td width=10> </td><td><%invdate%></td>
+ </tr>
+ <tr>
+ <td>
+ </td>
+ </tr>
+ </td>
+ </table>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Fakturaadresse:</th>
+ <%if shiptoname%>
+ <th align=left><font color=ffffff>Leveringsadresse:</th>
+ <%end shiptoname%>
+ </tr>
+
+ <tr>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+<br><%address2%>
+<%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+<%country%>
+<%end country%>
+ </td>
+ <%if shiptoname%>
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+<br><%shiptoaddress2%>
+<%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+<%shiptocountry%>
+<%end shiptocountry%>
+ </td>
+ <%end shiptoname%>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Nummer</th>
+ <th align=left><font color=ffffff>Beskrivelse</th>
+ <th><font color=ffffff>Antall</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Pris</th>
+ <th><font color=ffffff>Rabatt</th>
+ <th><font color=ffffff>Sum</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discount%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+<%end number%>
+
+<!--
+you can also use netprice instead of sellprice if you
+don't want to show the discount
+netprice = sellprice - discount
+to show the percentage for a discount use <%discountrate%>
+-->
+
+ <tr>
+ <td colspan=7><hr noshade></td>
+ </tr>
+
+ <tr>
+ <th colspan=5 align=right>Subtotal</th>
+ <td colspan=2 align=right><%subtotal%></td>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=5 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+<%end tax%>
+
+<%if paid%>
+ <tr>
+ <th colspan=5 align=right>Allerede betalt</th>
+ <td colspan=2 align=right>- <%paid%></td>
+ </tr>
+<%end paid%>
+
+ <tr>
+ <td colspan=3> </td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=3>Betalingsfrist <b><%terms%></b> dager</td>
+ <th colspan=2 align=right>Å betale</th>
+ <th colspan=2 align=right><%total%></th>
+ </tr>
+
+ <tr>
+ <td>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>Merk</td>
+ <td><pre><%notes%></pre></td>
+<%end notes%>
+ <td align=right>
+ Alle priser i <b><%currency%></b>
+ <br><%shippingpoint%>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td> </td></tr>
+
+<tr>
+ <th colspan=7>
+<!-- 20030814/Marius Kjeldahl: Commented out check statement as checks
+are dead in Norway AFAIK -->
+
+<!-- Utsted vennligst sjekk til <%company%> på norsk bank -->
+ <br>
+ </th>
+</tr>
+
+
+<tr><td> </td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><font size=-3>
+ Betaling innen <%terms%> dager fra fakturadato.
+ Etterskuddsrenter beregnes med 1% per påbegynt måned.
+
+ </font>
+ </td>
+
+ </tr>
+ </table>
+ </td>
+</tr>
+
+<%foreach tax%>
+<tr>
+ <th colspan=7 align=left><font size=-2><%taxdescription%> Organisasjonsnr.: <%taxnumber%></th>
+</tr>
+<%end tax%>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Norwegian-invoice.tex b/templates/Norwegian-invoice.tex
new file mode 100755
index 00000000..bd105f84
--- /dev/null
+++ b/templates/Norwegian-invoice.tex
@@ -0,0 +1,237 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telefon & <%tel%>\\
+ Telefaks & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%invnumber%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+<%pagebreak 65 27 48%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markright{<%company%>\hfill <%invnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Nummer} & \textbf{Beskrivelse} & \textbf{Ant.} &
+ \textbf{Enhet} & \textbf{Pris} & \textbf{Rabatt} & \textbf{Sum} \\
+ & carried forward from page <%lastpage%> & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+ \parbox[t]{10.5cm}{
+ \textbf{Til}
+ \vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{0.3cm}
+
+%<%if contact%>
+%Attn: <%contact%>
+%\vspace{0.3cm}
+%<%end contact%>
+\vspace{0.5cm}
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Faks: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\parbox[t]{7.5cm}{
+\textbf{Leveringsadresse}
+\vspace{0.5cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%if shiptoaddress2%>
+<%shiptoaddress2%>
+<%end shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%if shiptocountry%>
+<%shiptocountry%>
+<%end shiptocountry%>
+
+\vspace{0.3cm}
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+Attn: <%shiptocontact%>
+\vspace{0.3cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel.: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Faks: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{F A K T U R A}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabular}[t]{l@{\hspace{0.3cm}}l}
+ \textbf{Dato} & <%invdate%> \\
+ \textbf{Fakturanr.} & <%invnumber%> \\
+ \textbf{Ordrenr.} & <%ordnumber%> \\
+ \textbf{Kontakt} & <%employee%>
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Nummer} & \textbf{Beskrivelse} & \textbf{Ant.} &
+ \textbf{Enhet} & \textbf{Pris} & \textbf{Rabatt} & \textbf{Sum} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%discount%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%subtotal%>} \\
+<%foreach tax%>
+ <%taxdescription%> on <%taxbase%> & <%tax%> \\
+<%end tax%>
+<%if paid%>
+ \textbf{Betalt} & - <%paid%> \\
+<%end paid%>
+ \hline
+ \textbf{Skyldig} & \textbf{<%total%>} \\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ Alle priser i \textbf{<%currency%>} valuta.
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+\vfill
+
+<%if paid%>
+\begin{tabularx}{10cm}{@{}lXlr@{}}
+ \textbf{Innbetalinger} & & & \\
+ \hline
+ \textbf{Dato} & \textbf{Konto} & \textbf{Kilde} & \textbf{Sum} \\
+<%end paid%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%payment%> \\
+<%end payment%>
+<%if paid%>
+\end{tabularx}
+<%end paid%>
+
+\vspace{1cm}
+
+\centerline{\textbf{Takk for handelen!}}
+
+\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+\footnotetext[1]{\tiny
+Betalingen må betales innen <%terms%> dager fra fakturadato. Ved
+forsinket betaling belastes en månedlig rente på 1.5\% per måned,
+fra <%duedate%> inntil betalingen er fullstendig. Varer som returneres
+belastes med 10\% returgebyr. Retur må forhåndsgodkjennes fra
+<%company%> før varene returneres. Retur må sendes forhåndsbetalt og
+må være forsikret. <%company%> er ikke ansvarlig for transportskader.
+}
+
+\end{document}
diff --git a/templates/Norwegian-logo.eps b/templates/Norwegian-logo.eps
new file mode 100755
index 00000000..3a22b2ff
--- /dev/null
+++ b/templates/Norwegian-logo.eps
@@ -0,0 +1,1334 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: GIMP PostScript file plugin V 1.17 by Peter Kirchgessner
+%%Title: Brazilian_Portuguese-logo.eps
+%%CreationDate: Thu Aug 31 19:25:05 2006
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 2
+%%Pages: 1
+%%BoundingBox: 14 14 415 215
+%%EndComments
+%%BeginProlog
+% Use own dictionary to avoid conflicts
+10 dict begin
+%%EndProlog
+%%Page: 1 1
+% Translate for offset
+14.173228346456694 14.173228346456694 translate
+% Translate to begin of first scanline
+0 199.99842519685043 translate
+399.99685039370081 -199.99842519685043 scale
+% Image geometry
+400 200 8
+% Transformation matrix
+[ 400 0 0 200 0 0 ]
+% Strings to hold RGB-samples per scanline
+/rstr 400 string def
+/gstr 400 string def
+/bstr 400 string def
+{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop}
+true 3
+%%BeginData: 80402 ASCII Bytes
+colorimage
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+fDblg6K\=Q"WB-W4?Pdo4p6+l]&ih]rrrDpij);hp&GL',"Q[#Lmt]mi:-UBo)Ajlp>C')q#Ca-
+0OT-[R^UZ0q#:3k!rftBr;[*-4`Pt>]\`;[p&>'%-iO)I,T-[I!!OC1jn&BKnc&dlp#<8P%e]l2
+"!U9TI#+8tb2Ddcrq6:-g3RO66TZkO/89R1ak>G'lMCDUrVc`p_uG5~>
+fDc3-AgAK<(`*r''GKsK"r/C?3]oMfm61YtOLjQNo`#*op#<8P%e]l2"!U9TI#+8tb2Ddcrpp'l
+rq>8m&GZ;5#V]Y2L75R!lM1AVrrW28$N0r1#!HsURCqDKrq69l[jV.T![JWbkPtc,R-!r:rpg!l
+rq59V:(Hst$j.\EE.!J2ZHD+pqYp0f(YX1N<'rc'0emR!XjZ4ijR;sBr;HTnrknbd~>
+fDc6;J3>hE.46Gg,U"<#*sNl<2EEr_4mbE9G`]Muqt0mlrq59V:(Hst$j.\EE.!J2ZHD+pqYp'c
+"TJ,QFV+?K$4&=nG_VZqdd$W,r;Qit^^C#?#R3G3J!mt+o`"O`!OjHU!!4D`!pBUf*LPs[qu6-c
+"oe2SZ;(o'!"8rR88rs4S$L2pnG<.WrtjC8CK*Y`2)R41LpG[tlg+-<qu$Ekrr0h8J,~>
+gA_6CM^RKa#SJU[Cl4ICR$dH4"J2pKnc&.[#laS]ca8*s2'Dku%L*7S1/_:`E/L-e^<lNJn,*ps
+lGB9$.1d!s#n@h2C5&"Yb2DgerqcX(q78g7,slHqMPJ)Jp&4[cs*k'%9)\er&Pd:_DG`D6!pTal
+;j3B4I=8["q>L$e)ZKKoca5M5$jR7P',DcW=EAnFP+oA,h<ak4r;@'%mG5jnSV:rb4tRZYo)K.6
+.77QqVp"]-r;HW:s*t~>
+gA_WSXCb's7mAmd0J>%2/aY(p3(dS&NKf`rR.?XJT!Hl9rq$..rqGU%[!bb.+:/;Z%M^0O>@_Mp
+OJ9/'f_#".r"](qb,Jl)'b_,j)_+BrKpT$di:6^DqYq$#\j.Db6>_(,UVl'`rV6EmU]HuXrW!3>
+=ES\+<]_9&l2V,jVQ@/!U<E9+rV$70rqGU%Zq25S%MBBi(a_LMF+&e+U:&/"m.U>Sr=/\qk1@he
+W0`?`B2UiFr@A%'1d4D,8ded6G`JT6f_#";rVjq=J,~>
+gA_WV`KPh&H>[%h;Gg7d:@1a]<FBcqNg,isR.?XJT!Hl9rq$..rqGU%[!bb.+:etm&f`Dk@V^"7
+Q)D4<h=UO3r"](rd'%+>(`!f$,WA_DKpT$di:6^DqYq$#\j.Db6>_(,UVl'`rV6Em^B(K0rW!3B
+@!Hj=>!*c+l2V,lZbFJn^"N,TrV$70rqGU%Zreh$',D<")CRjQF+&e+U:&/"m.U>Sr=/\tmGcjE
+_7$G9OF(D5rCmAj>ASW`J.%6uT<>oSiV!$ErVjq=J,~>
+h#@HEIh:?7#Tc9FPJ##]c-H(0"4GulqXORjrqc-Bc+C!IjT#8`m/R?)T"N_Cq#1!f%/obL[[`MH
+U:8M5p\spee,TVcf]W#.pAY9pqXED]p&G=-'G_N()]Tmq*WQH&!!iZW>`-Jlq#(-9s*t~>
+h#@HJUfI@c"%YgF4l\X1;/(]X^WF^EcM,WedbO6dnc'C(qXEFf];hGR.Olks.P*2,2*!ie7S*/D
+!)3/["\;$E2D?]].L7OVFe67umJ-YTrs\ksfX@<5QD1k8kkG)Nrt@jG!<<*#(b-sc0JtaF0Ie1Z
+$3BMo#oYim84nopkP+uLrtbV1nDI&"0eP",.Ochs/1rtM85<,d>l%b,:\RH`84>d,rB(0F5Xe6:
+8dJ+(MQ5+sq#(-9s*t~>
+h#@HM^PMi="+56/C#`k4FbQ3b_9'pGcM,WedbO6dnc&ppqXEFf];hGq8cD6f8P;iZ>@VDgG^Y)7
+J,k2sJ.d?ZFD5#[9h@lH8ksi,]\)WHrV6C$rUSULS<B24\'X@5rqHF+H9;6/!!+Q@7nZfd?<U9"
+2^8k8m/RGEAorHOWS$D.rq??urqc-BFC%sC91f+R$;!ld>@_PnIYEZ=qi1Z0pOE?oG].?qBEN!f
+G^]78#_J8?^teSWr;Ot@J,~>
+h>[MB'\!*i,YiZYa62mZnF?&JncSOYqu6'a#Q=GfkM4KR)UeZi*-S.$mJQYW$N0GOcGmrTj73!F
+p\t6"ec5mb/8hc?meueX"TA*n,R_Hh#7aOmh":IArmCar~>
+h>[M`=SbYi8,u0:7LELMS$gZ-mdKZ8nc&(]o_87^n,EXkq!mP&dV;DR3!VH*4[;>&7nDf8%S9,W
+5<Lqc3BBc^Us&0'p&>Bsn__X3aOK8?qYp6h!OE+3!##DT-n$]+5!hV'5!1e]0J"C`$j,nu#UVT+
+?\Yl5meueX#Q=FJ>Xpq<3W:uC3BKAh6:FC8lq.=N84WVJ!_5dQmn*g`J?Io(qYgE@s*t~>
+h>[N!MYho*Isl\"H4#P$Zc1S]mdKZ8nc&(]o_87^n,F("q!mP&dY;XJ@:E_XBl7s8H[^J.J.@!Q
+F)5K!@U`kaL8<#[r:U'sr:/[i`lQZinbW7ZrrKG;rW!T71dso2?>FS'EGT5p>#S'T-5?[R!!rZm
+AU&loZI&%<o`#U'pn<@]Bk:d_@:E_XBl7s8H[^J4J-(4LI/A3kI"$S7J-Uh)_rgUfrVk4EJ,~>
+hu<`75k=sc"VrFC5tXgF:/4DF.i/9O!!*]Ur]C="me$ATli.:jr:opKd%Y/9'&!<k"#=J;Ni^b$
+rq-3qrV,jMn+?JTpAY,>f)Q'a;0.S\XNp84o)Asihn"ng;)Ad$!!WNiQK@f9rmUmt~>
+hu<`@GOnE:9Mnkt@V0:fC2.Hn>Z4;[8dSO+F*)Mgme$ATli.Fnr:opKd&28#:.@`E8`E>N8Ou<>
+7TaSXNi^b$rq-3qrV,jMn+?JTpAY,>qu@NQ,q(K/6:XU>84Z3<69dRl1bgU.)%[&F!!j*8F,?6b
+cL1Z%rseb\\s@h_>t[RS7Rp!@b";k3FKjs$qYntDJ,~>
+hu<`GT_![<IscQgH[C/>IKP(MIt-[4!Jlg9S-6.co_SRQrso&+q"3gtWf)=NG^=adJ)l+hIsu`i
+GBS%NIZCMZo)A:]#Q=DemdKfErV$6kHi3pL!AZo0<+U)rrdG<'H$++DB44tC:-L3L%.jN*&m043
+Q`SL#rUTsuptrZOMLp5#G'A1WI"$RgJ-LRo_WgairmUmt~>
+i;Wha&G?)3"X69@G^kI,P*_]1rh'IfS=#7L5SE5[">J!QnGMJL#l<l9^9FDd9H)af#qBJ1L7#-c
+jnSiGs8Drirr@!8!!4`+#i,Ic89UN4bi8<po)B'omao@cYc+.?63tL0"V>7hnG)t4s*t~>
+i;Wi"<VB#m9N5D9G^kI,P*_]1rh'IfS=#CdBN""c"DGs4nGMJL#l<l9^9FDnE)tgf$!(hdL7#-c
+jnSiGs8Drirr@!8!!Y&=.ks.S8GYpg8Ou<=69dRm2)6d5*"E#D!!c&<S@?`%p&=O^$N'8C_mckK
+Sr%2W`(C25NR[ImrRLpu~>
+i;Wi2M"Z?,IsQ9]G^kI,P*_]1rh'IfS=#ItL4SN<"H^d\nGMJL#l<l9^9FE!MLs]8$$^E6L7#-c
+jnSiGs8Drirr@!8!!b/H79+#EI=M0F%tB%UH$44GBOY4I:e*2V!qu["89UN4bi8<po)B$nmao@c
+Yc+.WLr4`HL9'%tq#/bCJ,~>
+iVrn9p&GO<7W!I+P+J\^^;eCEe,@c%d`oeFZDDb'!pTag,b;X/qWIkdrqc0Li7?&`XFWVBirBDi
+9lbcMYfPVcpAO"N!/(1L";kW^EBr@\#!RdOh!Xn6nc'!rqXWt6i7cW"\Y):S!"&cA/3cp6C2SKO
+KDgH,J9#$l1DK9X"TqW;mJ$S2s*t~>
+iVrnZp.>ck@;pOIP+J\^^;eCEe,@c%d`oeFZDE@g9Bo+P>b/RgqWIkdrqc0Li7?&`XH.-lj%9YP
+@WI!bYfPVcpAO"N!/(1L"rLi`F'qF.oh#Wa84H$85Wq.e1Fs:Bq#CU_L:H%,pAFI\$i^"nlfI'Y
+d`8noDWsb":g%1=D00uNJV3oS"bM/FCg^008d.n<bO,'&fDg@~>
+iVrnsp4*U"FE;b_P+J\^^;eCEe,@c$d`oeFZDEhBl$rniS\=([kPkqhqXNh.f#kY,R>QRUJ-pdG
+Ee'I[aP?+TrSmhWKDY]R(h76%G^"W1J.7!WI!U!XDe`ij=A("Cq#CU_L:H%,pAFI\$i^"nlfI'Y
+d`8nsNp2'#I!U'`H[L9mJV3fP!J>skJ-CLtdd?f-fDg@~>
+ir9!spAb^?;KRDLTsM\cguRbgo(;VSp'^Qco'Yc%fZLdo7Ki&X"<E/rh"^"2$i^)#p@.8#cFooT%
+d!`u!`F)pUr;*Wq#(-NrrL.Cqu?puFHE]?JdCT@!=T>3!!P?@^Ztarn,NFe$N9o!q"4":g;nL?m
+f3e)/l6J6KT).cU8P&qZM_'8Za$U.SV:/k!q?6o"'3Y5q#/nGJ,~>
+ir9"HpIYrnA9<<^TsM\cguRbgo(;VSp'^Qco'Yc%fZLduDbTLi"B:&Th"^"2$i^)#p@.8#cFp'#
+;<:CVA93O%`80kVr;P^U!QP?@!!Z;BOKZBc:@Up_8Ou?@6pX!s/dhFT"ZVIUlMUYMs8W'*rVZNe
+o^:kqaHB6c8e"NtATN6PN0Kj,VlR#,r3Qa9Z)jdmNceQ!nO`sYK$s&]rRq4$~>
+ir9"fpOEd$EccelTsM\cguRbgo(;VSp'UKbo'Yc%fZLe&NpD2uI>"ZVpuVM`rquWdnE8TP]r@0H
+ja[YVF,-R0h<t(9ro3qY`ru;?##TK(YJ-renph'sIXHKeF`;))8.,1n"ZVIUlMUYMs8W')rVZNe
+o^:kqaJJ<T%=WPDFaSk$PanJGX08i,Zj3qBXJMJOMM(DK"bEE!mJ-Y5s*t~>
+j8T+/p](g,5&bn2VnUU<m.C)NrVlflrsA]'qY'F@fZ'=>m/R8.I&>WmiVs5`r:ojHg;p9k"R#gj
+/ocWFcKY*%hu<[5qu@!=E/1aQlJS-;lMq#'>>b\&!!G<<]''%TrrrE"p[6mkmf3eaEIa7KZG+E,
+f%Ss<iqqdCini>8aLn[:8e(:j"Uoe:nG<.=s*t~>
+j8T+Tpdu&i?>t:RVnUU<m.C)NrVlflrsA]'qY'F@fZ'_$m7ILZI&>WmiVs5`r:ojHg;pF@9^#(R
+=E0(pcKY*%hu<[5qu@!=E/1aQlJSa>m7IOQ7nd5e#5\B'3Jb90rTF1arquNYhOa1.%:=+*PGGLu
+aO&Mlh;I;ij9ai&f[7dQY*X*(nO`s^Rc*]3rnII'~>
+j8T+opj`m)FDuVhVnUU<m.C)NrVlflrsA]'qY'F@fZ'tOm=>4a!iF]HiVs5`r:ojHg;pR`J`qUh
+G&`89cKY*%hu<[5qu@!=E/1aQlJT4*mXPLjI=$!B;?m!u"?D:LkPaTD"oeGombY5;J.6R>J<Qe7
+^<"[Pg>1]HqrA(ChUp5s]WRfaK(4?pKWsD(qYo7LJ,~>
+jSo4Pp]([*;KIM`][l<<qYgE_rs/Q#p?^YWLDTCZ"<2`cgA'P)#QFYqmblB\-0YC6>'usdm/$_=
+rrBP*!!kT/R`b'rq!(]B!!Ea>Fbj)q!!G98[cRGJrr`5pkZ@6R$q,K5^XhE/n+?>Kq>0sc$iBep
+o^D##d_Vqg$1Ruu1qr/HrS7F'~>
+jSo4lpdtofA93Er][l<<qYgE_rs/Q#p?^YWRTJrM"B'WEgA'P)#QFYqmblBh?g1/eApg5pm/$_=
+rrBP*!!kT/R`b'rq!*=p8d%n&Fbj)q!!G98[cRGJrr`5pk_&@s$t+IQ^XhE/n+?>Kq>0sc$iBep
+o^D##d_W#4:[q$[C;oB0rS7F'~>
+jSo5+pj`a%E-$])][l<<qYgE_rs/Q#p?^YWVhOSis*OmFgA'P)#QFYqmblBpMWoWqE.";%m/$_=
+rrBP*!!kT/R`b'rq!+O=J-::;Fbj)q!!G98[cRGJrr`5pkbIWt%!?rf^XhE/n+?>Kq>0sc$iBep
+o^D##d_W)NK(4?oP02t]rS7F'~>
+jo5A)"Si$(!`*lnWQXDqqu5m\"o\5`gq6>M!!F6gVV:h"rrrAsnDM>llMq(oE/M0dqVD/O@/Bp0
+:4TD#q#CBc$g[ir:N_`*_YX<98;=S8r8[eZrqbC[nGie`KsKM+qYgE`rs8W%q=En-bcF/$!!Emu
+hXUO"s*t~>
+jo5A8:&%<d@WR@)bN8Bnrp'LerV5d8^NT*="B'WEgA'G&"o\8di5gH78d.n-MR_aDh>[I_qZ$ms
+J?.K#s8Vailq.CiFcWoHqZ$aiL:67Bj8T5\qVbBC8dAgZZJ>*KrVl?e#labtoBP/UY]'&("B;;U
+nbh5CJ,~>
+jo5ACK(sj%EH?r8bN8Bnrp'LerV5d8_Ns\As*OmFgA'G&"o\8di5qMTJ-CC@MR_aDh>[I_qZ$ms
+J?.K#s8VhIm!o4YFcWoHqZ$aiL:67Bj8T5\qW*D$J-U7OZJ>*KrVl?e#labtoBP/U[#jg."GO5>
+nbh5CJ,~>
+k5PJR,kq?E0QDiId-UW.k5PV`pZg:]#k@ru)gnO:pt>ZLrV5d'lMq))FI()<rn[SS./NuL;i%sG
+r;Zf#li724E/(OJn,!(f@Z%e]rSdbWq.K3t"@e6Zkl'iI#QF\snD_`I&Fof)!cuoZqYoCPJ,~>
+k5PJUAGAb%=`K1rd-UW.k5PV`pZg:t:@_![;LG@qpt>ZLrV5d,lUh=XFI()<rn[SS./NuL;i%sG
+r;Zf:lq.F\E/(OJn,!(f@Z%e]rSdbWq2t2>"Cd5!kl'iI#QF\snD_`^;t<Na99@]kqYoCPJ,~>
+k5PJXP5'P4G&`8:d-UW.k5PV`pZg;0K(=HlHig2!pt>ZLrV5d/l[T.cFI()<rn[SS./NuL;i%sG
+r;ZfKm!o7bE/(OJn,!(f@Z%e]rSdbWq60=="EoX5kl'iI#QF\snD_`mK^jQqV:Fu0rnma+~>
+k5PF"p](L*BRZZ!mJGrD"oeDjiMmgf!!F0eVV:gsrrN&8lMq&+H(`XZh#@?rqZ$k"N5+ZVs8Q?j
+!!Q)BSBL?equ?m=Eg"B.ro*kXrl=O/"@e9\kl'`F"o\8dhQ\Bs!!HlYlM:G;s*t~>
+k5PFLpdt`bCOVu$mJGrD"oeDjiO)k\8d&%>VV:gsrrN&GlUh:XH(`XZh#@?rqZ$k"N5+ZVs8S#D
+8d/[LSBL?equ?m=Eg"B.ro*kXrmgO2"Cd8#kl'`F"o\8dhR[+b8d'molM:G;s*t~>
+k5PFjpj`QtDLS;'mJGrD"oeDjiP(->JH'uuVV:gsrrN&Rl[T+bH(`XZh#@?rqZ$k"N5+ZVs8T7g
+J-Bt=SBL?equ?m=Eg"B.ro*kXro!<s"Eo[7kl'`F"o\8dhS>'>J-;FglM:G;s*t~>
+kPkS3"S_s#20=tpk5+$9"TJ2]^*iOQ":fgUf_F%t!35tt!'9TL";cE\f_=2$!$D(<#<RmZlM^bS%
+.+$!"`9"#i;'/G!!Q&BT[NK3i;WiT(@hG.7Z+hArT=+_rV5[#2XpbM@a"$3ro*m-~>
+kPkS@:&%<a>',n@k5+$9"TJ2]`a\R4"AX?@f_F%t!5e\,!*o"c"AsNAf_=2$!$D(<#<RmZlM^bV
+;XI'\9Q#Tki;'/G!!Q&BT[NK3i;WiT=n5/f@Z%e]rT=+_rV5[&D"1+#K$3ESro*m-~>
+kPkSIK(sj"F``b[k5+$9"TJ2]bDl.E"Fb`pf_F%t!7^st!-I^\"FPQlf_=2$!$D(<#<RmZlM^bY
+L@'KqIrC(Ji;'/G!!Q&BT[NK3i;WiTMXl9#G)EoqrT=+_rV5[)P4=&*R`jskro*m-~>
+kPkNYpAbA&J#Lukrnm_Yrql000(f2I%==l%p=B6DL]%2RB-$LB":TXQf_=2$!)ECk"qZO!jo#.R
+qu?^*nc/k8FHjf4nKe&5"X%c?[Ggu>rrN*rnc/e^MS&*Njo5J_qsi8tnGiZ+b3A`\s*t~>
+kPkO6pIYU&J#Lukrnm_Yrql04BD"k":4&bfp=B6DWr5NjCfU!t"AX<>f_=2$!)ECk"qZO!jo#.m
+r(6rank'*bFHjf4nKe&5"X%c?[Ggu>rrN+Nnk'$oMS&*Njo5J_qsi<VnO`n<b3A`\s*t~>
+kPkO\pOEEdJ#Lukrnm_Yrql06OS+,,IX@jAp=B6D_u5)dDgh/+"Fb]nf_=2$!)ECk"qZO!jo#/+
+r."crnpgpjFHjf4nKe&5"X%c?[Ggu>rrN+snpgjdMS&*Njo5J_qsi@(nUL_1b3A`\s*t~>
+kl1Y/pAb@.EK%Qnr7q;Sr:88hp&G4)HD/m_f)G_`rW!!*Ea8)6"*C6ep>#ZJV"t&p5cE<-r_37j
+!=D?f!!P$%U"&U2r;[$/@XF`ln,;,C!.j\@"@e9\kl'QA"9%lB.e3QB!e8G\qVqO*~>
+kl1Y=pIYTbEK%Qnr7q;Sr:8EPp.>H_HD/m_f)G`7r^m5cEcUYA"*^Hhp>#ZJV"t&p5cE<-rdar>
+!DQtm8d/@DU"&U2r;[$/@XF`ln,;,C!2]6Y"Cd8#kl'QA"9%lFAb&Fr99IHbqVqO*~>
+kl1YGpOEEpEK%Qnr7q;Sr:8L&p4*9pHD/m_f)G`WrdY'!Ee<e2"+$Zkp>#ZJV"t&p5cE<-rhfXE
+!If+\J-C.CU"&U2r;[$/@XF`ln,;,C!5J)T"Eo[7kl'QA"9%lHOR[i'T?QZuir=N~>
+kl1WbpAb@BG+-\GrnIGTrUeS^pAb=*H(`[\f)G_;rW!$:G*F0?!!?8jch#rl!V\&>!!H?;jlQ^E
+!!+i]nc/eTJ?-URr;[$*<d'Y=jS@X3!28r`"@e9\kl'N@"9.u;'Cl,+%[ti7r8[g-~>
+kl1X=pIYThG+-\GrnIGTrUe`LpIYQ`H(`[\f)G_rr^m8iG*H;&8crmuch#rl!V\&>!!H?;jm,V=
+8c`(1nk'$jJ?-URr;[$*<d'Y=jS@X3!5.kp"Cd8#kl'N@"9.uC<q8ic;52M-r8[g-~>
+kl1XapOEElG+-\GrnIGTrUeg&pOEBqH(`[\f)G`ErdY)uG*IjRJ-1.ech#rl!V\&>!!H?;jmRd!
+J,sh8npgjdJ?-URr;[$*<d'Y=jS@X3!714d"Eo[7kl'N@"9.uHM"6'!Ju6ubr8[g-~>
+l2LeM"SVm!3.7[VpY#QKrq4GJp](F&GbER[f)G^mrW!$IHD#o\!!G-A`U3Z\rrW/;#PnE%4hQFF
+!!6GR!qQBo7=\hVr;['0<csA,g@YC#rrBe(!!GcK]BK4PrrW2mU@A3d/?mh"roF*0~>
+l2LeS:%q6_>^`L%pY#QKrq4]?pdtZ_GbER[f)G_Xr^m8nHD$eu8d&I``U3Z\rrW/;#PnE&4hRFY
+rCR-)I7s0("(?^h%K-83$<D;.ZJ+sMh>[K%nk'$oMS&*NiVruYosaH`"CSIeo`!qOJ,~>
+l2LeWK(jcuG($7?pY#QKrq4lupj`KrGbER[f)G`3rdY)qHD%D1J-:7_`U3Z\rrW/;#PnE'4hS.L
+J,Xs!E.7A."*K-'%K-83$<D;.ZJ+sMh>[K3npgjdMS&*NiVruYou?NP"GX/6o`!qOJ,~>
+l2LaMp&G4`K!=20f`)'QoX5)$!!@J;e+M>m!;l]p"?(_.d3%oZ":U*rjnmj5!r/2dq>^O((]==9
+)KC]Vo)Je5%/^)1*G'JTYgr7@h#@B&nc/e^MS&*Ni;WlWo2tM_"(8e&q;hR+~>
+l2Lakp.>HqK!=20f`)'QoYaT$8cs=0e+M>m!;udf"C-DTdU2Q;"AXc_jnmj5!r/2dq>^g0/j)To
+8lBYf>4bDg68&cF!!aNUG`ArXnGM)A!8d9="Cd8#kl'H>!r__EnO`n1]]AnLs*t~>
+l2Lb,p4*9gK!=20f`)'QoZi-bJ-1%fe+M>m!<)kH"Eo6nduEpK"Fc0:jnmj5!r/2dq>^g05A,4h
+IsQ*nL\-)uE]X^-!!aNUG`ArXnGM)A!9j!("Eo[7kl'H>!r__fnUL_%]]AnLs*t~>
+l2L`Sp&G4aL:64AfDbpNo8`SG"*U3^o[j*Cg\h*T7Y7l%Mt$cL?DuQNh#@KTntQrm!!>W4S3H?@
+#REn@I[.=lnGM&@!8d8H"@e9\kl'E=!rUsdnc/e$R*+gojo9i~>
+l2La2p.>HrL:64AfDbpNo;VLW"*U3^o[j*Ck5@mT@=k`@Wpr[`Ei@[bh#@KTntQrq!!`Q>-otUV
+S8\0p"%G3q&c2P6#Y&laQ*o34r7h5OkOM4J@Z%e]rSRVVr8^fI8d%t[b3f,gs*t~>
+l2LaZp4*9hL:64AfDbpNo=XjK"*U3^o[j*CmJVP<FFpaS_!upWJZ.8qh#@KTntQrq!!`TM7V$C[
+S<Wf!"*n9=*r>pC#Y&laQ*o34r7h5Omdbl2G)EoqrSRVVr9/n*J-2=amJQ)GJ,~>
+lMgnZ#ke6$7Z"_?rRUuMr:!nc!!@A4d.Gri!4Vn,"]^>fk3WrT!!Fp@am]5arri5d`Dd$8!!<ED
+3$n%o#n&k6I#=Z6h=:EsrrDc`!!GcK]BK4MrrMtInGi\eY1r[Lk5Tr~>
+lMgn\;"dKa@Yq\[rRUuMr:#I:8cs4)d.Gri!6kC6"_NP"k3lID8d&Fdam]5arri5d`Dd$8!!<ED
+3&^[["!\`u$2FQ-$Tr?TMP@oBnbh,@!;Z1X"Cd8#kl'B<!W&P\8d'(8g\1X/s*t~>
+lMgn^K_Bp!G)<forRUuMr:$TZJ-0q_d.Gri!8II&"`oI/k4+?"J-:=fam]5arri5d`Dd$8!!EKE
+3(#k-4p*o#+V4AK#n&k6I#=Z6h=:EsrrDodJ-:%Q]BK4MrrMu.nULasY1r[Lk5Tr~>
+lMgk-o`,+aM7`!Mec,^JiZe4!")""Ho@O!BQi-mfArOLiqLnD>"9a=cjSR^3"o@Z<WE9kt!"/f?
+3bj)#T!m#.pAN\E!<2Nh"@e9\kl'B<!rhQsnc/e*QGr4hk5Tr~>
+lMgk<oh#?rM7`!Mec,^Jj^@pW")sXQo@O!B[J`]$D2c6pqPEaT"A=KYjSR^3"o@Z<WE9kt!"/f?
+3bj)#T!m#.pAN\E!<2O]"Cd8#kl'B<!rhXfnk'$^QGr4hk5Tr~>
+lMgkGomd0gM7`!Mec,^Jk`5Li"*^-Xo@O!BbPcqpEf@cuqS)KM",OGIqqM,SqX2q6=;9ou$NUl$
+C41u2[a=11rRq2NrpkRBG)EoqrSIPUrpba5J-2+Vm/?)HJ,~>
+lMgjNo`,+[M7VpLeGfUG[KHC,"D4"Enc%2@!-J2?#6T"0`pWih%e9T&9Vg53rnIGWr:ApkZ[t1$
+!"'N/@"b8acJe<irn%2@!!GcK]BK4LrrN%3nGiZ%Y2/m8s*t~>
+lMgjloh#?pM7VpLeGfUG`_?8%"E9^Onc%2@!1a$\#>9*#`pWim<:WWaC8BDQrnIGYr:ApkZ[t@J
+!q$$t"Uu:u6=>J@\Ba('qYo+Hnk'$oMS&*Nh>[NRPOV6IGHTcsk5Tr~>
+lMgk-omd0iM7VpLeGfUGdXh:G"Ep-Unc%2@!4r/[#CgcW`pWipL@KcrUt,/;g]%QWoA[s"Jj^1Q
+mJm\&(F_:0@"b8acJe<irn%2@J-:%Q]BK4LrrN&&nUL^pY2/m8s*t~>
+lMgj+o`,+KLq)UFeGfULp14%#"C786nG_)?!)WXp#820Hc1:l3D=RZ0'U$B"rS%8TrV>p?cU[p6
+"pu+Y&Io9OoDf.4<.1msjRE!Dec,U_o)Jn_MS&*Nh>[NT`:3g11n)VWroa<3~>
+lMgjSoh#?jLq)UFeGfULp5]#B"Dj=EnG_)?!.t2B#>fQ1c1:l3QL[WN;Ner`rS%8_rV>p?cY5-e
+,9%F7&ePT`"o\W;"UGMJ'cS>C-7CZLIBCrYnG3%5rr?-l8d&U\]BK4LrrN,KnO`pkR`k4"kPp&~>
+lMgjqomd0kLq)UFeGfULp8n.A"F$*PnG_)?!3#mI#CLZ]c1:l3ZgrVLJ!._8rS%8^rV>p?c[o1m
+4Y@ln&ePT`r!3lF'H8;N4$Z/&85t#>dcBonrRLoJM=Z6#G)EoqrS@JSrnd0q"Fcf_nG_VNJ,~>
+lMgico`,+1KX0V7e,KLJjV[mq"BUc+mf(l=!&4BP#U"Aae+Nb?h?WTO")+mopt5TKrV>R_r;[$V
+9ji7&N#_Hi"r;$DcLC]0e,KCio)Jn_MS&*Nh#@EP(@hG.&rO9_r9+*1~>
+lMgj?oh#?bKX0V7e,KLJl!"!W"DX+>mf(l=!,VX,#ZQ&@e+Nb?k"kP?"*h$*pt5TVrV>_N5Wh"`
+5tta4Ll=In./tb)/1rV52aV>LcLC]0e,KDUo1B-pMS&*Nh#@EP=n5/f:l;jHr9+*1~>
+lMgjcomd0nKX0V7e,KLJl\bUj"F$$Kmf(l=!1<b9#^U`fe+Nb?l@\YX",*l6pt5TVrV>f*DJ3Ka
+9hf#@Ll>:171MdX8PDr[=^GNQRa1F!rmUlIO7Rl)G)EoqrS7DRqhjrp"Fc6>k5=EBJ,~>
+lMgiLo`,*rFfF-jdf0@ERf!-g9T[-Xrn.5N%/p54/psPLq#CBk?1Isu0:L,Srn%/MT)AWo$!qV7
+Z+n%CoDf"(H)B<jdJj1go)Jn_MS&*Nh#@ES;=OVgG,j<lkPp&~>
+lMgj.oL]44WS@3rrrMu'r(7*'OM^A`f`(qLr^mGuI&>Tls8VtRnk'$kR`t:#fDc8j8Ou<=7::+u
+Z+n%er&+sB3'',a5X@b0H)B<jdJj2So1B-pMS&*Nh#@ESK(2G8I&brrkPp&~>
+lMgjWoRI$nWS@3rrrMu9r."opOM^A`f`(r+rdY9!I&>Tls8VttnpgjmR`t:#fDc9)IXHHbEF<dL
+Z+n&)r*Be=@:WtbD/jZ?H)B<jdJj3-o7-seMS&*Nh#@ESVso3<Wn[=3s*t~>
+lMgiKoDf"dS^@!-e,KLKoeuaK"@eBclM]E9!:0R`#X!X>hYR9PrmL?;"9a7bjSRR/!'pJ_#;pOa
+^>J8AIe3UC"+-iqpX0!@+7fI87Z+hArS.>PM=CQK<h7V/rojB4~>
+lMgj-oL]7"S^@!-e,KLKoks_#"CmG+lM]E9!:g"[#[Mt_hYR9Prn[-;"A=KZjSRR/!-eB6#?c)0
+^>J8ASGGV\77Kd<8P2X&Ut>@grr?Hu8d&U\]BK4JrrB(h8d&t$d.@8#s*t~>
+lMgjVoRI'nS^@!-e,KLKopG]."F,p@lM]E9!;6;@#^1a#hYR9ProEU"",aVLqq(iJT`0HIIro^n
+^>J8AZi"nRF`qtSH@1-jIs\!CpX0!@O7Rl)G)EoqrS.>P_sr6[I%AXUrojB4~>
+lMgiKoDf".OML/[df0@G]DV^43JtH4rRq2Na8Gu@8qaS3r;Q]sqb$DZ"@o9;o`!PD!8m_T#QeFb
+WnI+FrNPkn")jd[p!Nd>+7fI87Z+hArS.>PXmlAo6'B7UrojB4~>
+lMgj-oL]6aOML/[df0@GbPb$9?AcAYrRq2NfDS;E@YD,Kr;Q]sqgS*."DFU\o`!PD!9j>Q#AJ^g
+g%PFD`q)e)Fe7(TdJj2So1B-pMS&*Ng]%8lnO`pnP/cqhkl6/~>
+lMgjVoRI'oOML/[df0@GfDU4&H&B5trRq2Nj8FK2FG.$]r;Q]sqkEY3"G*Auo`!PD!:Ti9#B,-m
+g%PFDf(smmJ-1(ge+M,g!0?`%"Eo[7kl'99!7gUi"FH<Omf)GMJ,~>
+lMgiKo)JknXk`^!rrMmdrW!'TL:?=Cg&D&Mr;Zt&M7VmKrr3#u^@D7,'9U,rr7V)MGPqLI,BAjZ
+kktJ\iq!-P?CB+0dJj1go)Jn_MS&*Ng]%8nnGi\GMS/0Okl6/~>
+lMgj-o1B+)Xk`^!rrMnBr^m;sL:?=Cg&D&frCR3+M7VmKrr3#ucLOR1;3A][r7V)MTD_@f<H=/7
+kktJ\lLRUMDOJf@dJj2So1B-pMS&*Ng]%9)nO`pgMS/0Okl6/~>
+lMgjVo7-prXk`^!rrMngrdY,tL:?=Cg&D'$rI>#lM7VmKrr3#ug@BasJ!%S4r7V)M]D[6cH#et[
+kktJ\nFM/4H'utKdJj3-o7-seMS&*Ng]%95nULahMS/0Okl6/~>
+lMgiKo)Jn%N5k5^df0@H`Voi?-A8\br7V)MKDbcQBTBpqrr)itqD[sF"(A:dptG`Kq],P7#u>oA
+de!J<s8EQ$!!H,^aRB,Vrr=/4!!GcK]BK4JrrCpG!!F^([,h/Ks*t~>
+lMgj-o1B-]P/ckddf0@He,DrB=+mm>r7V)MVu93jDN;R"rr)itqJc!t"*L^#ptG`Kr*K=o$"J=U
+de!J<s8H!i8d&gkaRB,Vrr?Hu8d&U\]BK4JrrD6P8d&7M[,h/Ks*t~>
+lMgjVnpgh.`pEWOrrN)SrdY,tKX0Y9g&D&grI>#kNkt)]rVlopRdtt2KWNu(gA_3PNr=J7EdOM.
+oD\direL,r"F--On,Cc8!0?`%"Eo[7kl'99!:KB-"F>d/jS\6AJ,~>
+lMgi_nc/e@W7^bAdf0UK8cSi2JZdo,g&D%[rW!**F-F]6rr)itrMT2d"=]b]n,D)A!42V("VPd1
+[c@5`rrN*WoDf"[Nl(/^df0:ho)Jn_MS&*Ng]%91nGi\3JZdr-kl6/~>
+lMgj;nk'$jWn?tCdf0UKHqI"1JZdo,g&D&4r^m>fF-F]6rr)itrP%hp"Bq59n,D)A!6P13"]0/o
+[c@5`rrN+<oL]6qNl(/^df0;To1B-pMS&*Ng]%9;nO`p_JZdr-kl6/~>
+lMgj`npgjrWn?tCdf0UKU4@cAJZdo,g&D&VrdY0%F-F]6rr)itrQk%b"Fli^n,D)A!87=$"ak9F
+[c@5`rrN+foRI'iNl(/^df0<.o7-seMS&*Ng]%9AnULaiJZdr-kl6/~>
+lMgj&nGi\U\`!5]e,K^Q\c;^@J>q;ug&D%7rW!'6G+$YHqu6]l,kD!=!dqH:qV2#M;#L@t5^/[?
+nGW=c!+tj'">G_Fkl&s0!$Ce4"@e9\kl'99!8d5G"<2ijh"g16J,~>
+lMgjOnO`q!\`!5]e,K^QbXtK(J>q;ug&D%or^m;iG+$YHqu6]lA+N:q98'b6qV2#MK)J:F??_j]
+nGW=c!0ZtH"C$bqkl&s0!+>Cj"Cd8#kl'99!9irF"B'`Lh"g16J,~>
+lMgjnnULb"\`!5]e,K^QfRSL%J>q;ug&D&DrdY-!G+$YHqu6]lORdo(M72I@g]%8PrI>&nGFH_E
+rVc`rZLiYMHA]>urR1]GO7Rl)G)EoqrS.>PmdYf1I"/0Oq<7j/~>
+lMgjIn,NSP^?#%fe,K[L0E;0+Ut>=nrr=&<!!FEiT@EQ2rrN(_nc/e\U=/]5h>[N="TAB)#&/^m
+h>$pJ!06[O"<iH*jS[I+!$Ce4"@e9\kl'99!7pZ?"<2cfg\C"4J,~>
+lMgjhn4Egu^Z>.ge,K[LCJ%6OUt>=nrr?@(8d&+=T@EQ2rrN)&nk'$tU=/]5h>[ND:&[`g9Pf?a
+h>$pJ!3Yrd"BC,^jS[I+!+>Cj"Cd8#kl'99!93N@"B'ZHg\C"4J,~>
+lMgk*n:1Y$^uY7he,K[LQ@OL;Ut>=nrrA)YJ-:1DT@EQ2rrN)<nUL_9de*OprrM_CrdY0%DhG4K
+q#(-l`q4caH\Acer6kTFO7Rl)G)EoqrS.>Plg]K.I!qsJpuqa.~>
+lMgk+mf3JB]&NG_eGfdP`.DZ`WS$purrDfl!!Fj#VV1b@rrMU)o)Jn&NkaiVh>[J1r;[!SFHaZ/
+rVZZq^%;:-&V-t>qU5BD+7fI87Z+hArS.>P^@;1+)h"U;puqa.~>
+lMgk:mn*^m^#JbbeGfdPd[l,RWS$purrDln8d&7DVV1b@rrM[no1B-]O2'rWh>[JTrCR5qFHaZ/
+rVZZqch'g4:k5Y(qU5BD@.Qtn@Z%e]rS.>PdIBg3;LPFrpuqa.~>
+lMgkEmskP!^uG(eeGfdPgp<B1WS$purrDrpJ-:+EVV1b@rrMbLo7-snOMC&Xh>[JmrI>&qFHaZ/
+rVZZqh=Q4#I=SEUqU5BDO7Rl)G)EoqrS.>PhXQ+!I!qmGpuqa.~>
+lMgn\$h"&u)kc'Zr7(`Nq;fK$_;b7DrrCOH!!G?5XPWgMrrN(Gnc/btX4m=(rr=2?!!QYWVUkG>
+r;Qc]oDf!qI&5Kidf0:ho)Jn_MS&*Ng]%8KnGi\@IAkoqkl6/~>
+lMgn];X[3\>-6ZQr7(`Nq;fK$_;b7DrrD!U8d&FMXPWgMrrN(knk'"*X4m=(rr?I*8d/mWVUkG>
+r;Qcco1B+4V:bOjrr?Hu8d&U\]BK4JrrBb&8d&4DW8%+2s*t~>
+lMgn^L$sNpLUQ(2r7(`Nq;fK$_;b7DrrD<^J-:%GXPWgMrrN)0npggpX4m=(rrA/ZJ-Bn@VUkG>
+r;Qcgo7-pjV:bOjrrA,OJ-:%Q]BK4JrrCI:J-:.GW8%+2s*t~>
+lMgna=mc7n#^=qhqYo(G#6"5XhW+2)gA_/Zr;ZsiKX0Y8qYpWrk6LSY"=9DUmeu&C!4Vn,"X7rG
+]]]1hrrN*4oDeu,T$m8Zrr=/4!!GcK]BK4Jrr@Q=!!G30XPN^9s*t~>
+lMgnaM!dk=:6X>uqYo(G#6"5XhW+2)gA_/prCR3$KX0Y8qYpWrlqd4F"Bh)4meu&C!6kC6"]TK$
+]]]1hrrN+#oL]4+T$m8Zrr?Hu8d&U\]BK4JrrAkb8d&CKXPN^9s*t~>
+lMgnaX6tKAJu@8hqYo(G#6"5XhW+2)gA_0+rI>#nKX0Y8qYpWrmt:4^"FlcZmeu&C!8II&"aY0J
+]]]1hrrN+UoRI$iT$m8ZrrA,OJ-:%Q]BK4JrrBh(J-:(GXPN^9s*t~>
+l2Ladli7/P_!(Okf)GpPqY9marn@APO8T%]<J\3Kr;$?nr+5I""9NhTiVMI3!)3=k"]0Q=dIR;5
+rr>7T!!H;gbOPS\rr=/4!!GcK]BK4Jrr>mc!!GrIZJtcFs*t~>
+l2Lb%lq.D"`p!0qf)GpPqY9marn@APYl./sAr+"\r;$?nr/gJA"+di<qVV;QJGi(D@salro)ALc
+!-\!,"DX:Hnc%#;!+>Cj"Cd8#kl'99!.s`5"Cd"hiqqs>J,~>
+l2Lb6m!o5'b38Tuf)GpPqY9marn@APa8LMkF,7Bir;$?nr35aB",O>CqVV;QVYu#KEdOJ,o)ALc
+!1rh5"F6?Wnc%#;!0?`%"Eo[7kl'99!3#F<"ET4$iqqs>J,~>
+l2LeY+m]14%Y!:(qYmPq!-%l:"CdA+lM^PY!rgXNo)JnUT[EB1iVrr="TAB)&o`Z8iqiKN!,D-+
+"@J<imJbT7!$Ce4"@e9\kl'99!#Y5+"D!A#kPaWEJ,~>
+l2LeZ@I-Si;OZJ3qYmPq!1EdX"Dj(5lM^PY!rh%Mo1B-rT[EB1iVrrE:&[`g:iM6!iqiKN!0m+J
+"CmS4mJbT7!+>Cj"Cd8#kl'99!*etc"Diq+kPaWEJ,~>
+l2Le[O6hB#KWa2$qYmPq!4_uX"EKL;lM^PY!rh;5npgh8dI[@rrrMYArdY0"E/:s^qYC-k[.JkO
+HBH/5rmUlIO7Rl)G)EoqrS.>PN:DE$E/D0hrTO93~>
+l2Le`R-FYS0!+4.r2fnu9`4qoEg"H1rqQKoqb-M\":L1%kksE>!.4YE"[[F%b4#<)rrA>V!!G!5
+]]f=Crr=/4!!GcK]BK4KrrCC8!!O'WP/Zhfkl6/~>
+l2Le`Zg(-cB"I-tr2fnuJGi(CEg"H1rqQKoqgS-/"AXrikksE>!2BEa"^cJBb4#<)rrBCt8d&@U
+]]f=Crr?Hu8d&U\]BK4KrrCmF8d/%3P/Zhfkl6/~>
+l2Le`aQe9YOMp;Sr2fnuVYu#JEg"H1rqQKoqkNb5"FlHFkksE>!58>]"a"sWb4#<)rrC15J-:4V
+]]f=CrrA,OJ-:%Q]BK4KrrD6PJ-C=@P/Zhfkl6/~>
+kl1\U.-U^79YB]crN?/#/H,VQ%<Rr\nc&=`!WK_%!!??&g%OG*!W*`5!!NXDKWj5,q#:?5oDf"9
+Ks]q=e,KCio)Jn_MS&*Nh#@A$nGi_PGb3=TrojB4~>
+kl1\VAa)eiHcGCGrN?/#B`:U-:3;iHnc&=`!WL=68cs%3g%OG*!W61$8d.q+KWj5,q#:?EoL]6c
+Ks]q=e,KDUo1B-pMS&*Nh#@AKnO`shGb3=TrojB4~>
+kl1\WP3IK"SBgHprN?/#QMuC<IWUq#nc&=`!WLdCJ-1D&g%OG*!W@uVJ-CC?KWj5,q#:?QoRI'l
+Ks]q=e,KE/o7-seMS&*Nh#@AfnULddGb3=TrojB4~>
+kl1__]*%9t"TqN7m.^I_rr<?(!!F0aS^I*'rrMsQo)Jn8QH/Ckj8T+Wr;[!XFHjc2rV6BmmdpJ^%
+Y1Y;q:#?D+7fI87Z+hArS@JSq],/,"Ti+aXkrm:s*t~>
+kl1__b=q.m"\a?dm.^I_rr>mp8d&%:S^I*'rrMt6o1B-dQH/Ckj8T+prCR5sFHjc2rV6Bmo(5NW
+:4TG&q:#?D@.Qtn@Z%e]rS@JSr*Jnc"DWOjhYH@7J,~>
+kl1__f7E1:"bE;nm.^I_rr@`OJ-:4DS^I*'rrMt`o7-snQH/Ckj8T,.rI>&pFHjc2rV6Bmp@Nk<
+IXnNVq:#?DO7Rl)G)EoqrS@JSrJpDu"E/mohYH@7J,~>
+kPkSXIcg\8"&HSrp\b#trrD*X!!FToUXo/4rrN(nnc/c4ZJbQ=rr>1\!!WL7J>q2prqQKorYP2,
+"*gWopXB-B+7fI87Z+hArS@JRTCDmb-?>3`lMTiFJ,~>
+kPkSXTBAfN9RXtJp\b#trrDB`8d&1@UXo/4rrN)2nk'"5ZJbQ=rr@0>8d/s[WS$qDq#:Bo>4bDh
+HDK3fe,KDUo1B-pMS&*Nh>[JenO`scEfe*%r9+*1~>
+kPkSX\EAAHJY1<Up\b#trrDTfJ-:.DUXo/4rrN)CnpggsZJbQ=rrAYhJ-BnBWS$qDq#:BoMtDN%
+I&,Ehe,KE/o7-seMS&*Nh>[K$nULdfEfe*%r9+*1~>
+kPkV^nP\HK"[]6TpAFourrBt8!!G$*WS@4@rrMd5o)JnST$R!,jo5>,r;[!KEf[rur:^-j9(W)c
+@[tj<e,KCio)Jn_MS&*NhZ!WR,k:p>!aC&Ie+EY&s*t~>
+kPkV^nU]do"a.KDpAFourrCRI8d&=HWS@4@rrMh"o1B-pT$R!,jo5>:rCR5oEf[rur:^-jIe657
+E1G>Je,KDUo1B-pMS&*NhZ!WSA+<.pB7-K'o`"%RJ,~>
+kPkV^nY>2r"e*NupAFourrD$VJ-:+GWS@4@rrMkRnpgh6cgq(srrD6\J-C4=O1siUpAY,goRI$i
+SC-uXrrA,OJ-:%Q]BK4MrrN(]nULd]I&#0_roa<3~>
+k5PM[k=4M4"YQ&$o_\WtrrA\i!!GK:Y2K0LrrN(So)JmuLqMmIjo5<jr;["&I%o*^rq??lEqB>7
+:6irjrm^rJ+7fI87Z+hArSIPSL[b?J.rpT[jnn3?J,~>
+k5PM[k]l/\"_b%#o_\WtrrBY/8d&IOY2K0LrrN(so1B-[MnJ3Ljo5=CrCR6*I%o*^rq??lRe02T
+B9gU.rm^rJ@.Qtn@Z%e]rSIPSWpr[b=)s82jnn3?J,~>
+k5PM[l($gb"d6X`o_\WtrrCCDJ-:%HY2K0LrrN)6npgh$]]T+QrrB>&J-Bq?U=8c6pAY-&oRI'j
+Q-&OpeGfN0o7-seMS&*NhZ!SnnULdeEf@Tkqr[p/~>
+k5PP_q;O6k!!O-]eFE>4])MbXr;ZsmKs]q=o`"sU%eBZ&;Q&1@k5PJN#lXf-)KCYEjSSWM!1i`^
+"?MRZli,E6!$Ce4"@e9\kl'E=!RD&B!!WjDI\bE`roX62~>
+k5PP_q;Z;O8d/=ag%"k9])Mc)rCR3%Ks]q=o`"sY<:`]aDPu.\k5PJS;#X&j;K7T(jSSWM!4h_o
+"CI2*li,E6!+>Cj"Cd8#kl'E=!SpTC8d8%+I\bE`roX62~>
+k5PP_q;de#J-Cb7hXUC>])McErI>#mKs]q=o`"s]L@]otJu@8pk5PJVK`6K*HuY%RjSSWM!7(4e
+"F?*Eli,E6!0?`%"Eo[7kl'E=!U#.,J-LI?I\bE`roX62~>
+jo5G^pYS?t!!WX*Z0h8_rk8=3=T&4&=,OWRrUg*jr+Ya&"<*NDm/?,I!/pdU"\F!1cLCi+rrC15
+!!FU(\E<_=rr=/4!!GcK]BK4OrrM:.nc/jq:Nhr;kPF<?J,~>
+jo5G^pY^2R8d8%@_X7'prk8=3M#BpKBSsFcrUg*jr0-_E"B:W)m/?,I!3Q2l"^u\IcLCi+rrC^D
+8d&4O\E<_=rr?Hu8d&U\]BK4OrrMOtnO`soG*B`)qW7a-~>
+jo5G^pYhS#J-LV"c0b6&rk8=3XSmYPFGd]orUg*jr3GpE"FlZTm/?,I!6+ne"`ns[cLCi+rrD*O
+J-:7U\E<_=rrA,OJ-:%Q]BK4OrrM_SnULd_G*B`)qW7a-~>
+jSo>]p>/^*!!OX"g@G+=^]+9nr;Zt2Nkju[o`#!ldf]1A")b@#puq_Yq],S8"Uo7&ZJbNMrrDW^
+!!F!fYi,B-rr=/4!!GcK]BK4PrrM^JnGibPEepsSp&=(QJ,~>
+jSo>]p>:>W8d/[thX^OA^]+:RrCR3/Nkju[o`#!lhG!N5"+7?1puq_Yr*K@p"\rriZJbNMrrD`a
+8d&"CYi,B-rr?Hu8d&U\]BK4PrrMh3nOa!iEepsSp&=(QJ,~>
+jSo>]p>DP#J-CtCipusE^]+;(rI>#lNkju[o`#!ljb!)S",=&;puq_YrJpl-"b(BEZJbNMrrDid
+J-::PYi,B-rrA,OJ-:%Q]BK4PrrMqanULgdEepsSp&=(QJ,~>
+j8T8]p>U&nhuErc:Tj*Yr;OS5!#5A3"EK[Fmf)hX!W,O]!!G-KcLLnurrB+u!!PE,QH/Cko`"sk
+-M7?A"+@-%psf<D+7fI87Z+hArSmhXj!aEt"tFPCV9n]/jSs`~>
+j8T8]p>V6/i(=2KJ&(IFr;OS5!*K1l"EK[Fmf)hX!W.?;8d&LkcLLnurrC"98d/LDQH/Cko`"sk
+AG&Ot97<bmpsf<D@.Qtn@Z%e]rSmhXlXoZZ#$5_pV9n]/jSs`~>
+j8T8]p>W'&i.)#`U!;uur;OS5!/g`*"EK[Fmf)hX!W/Y_J-2=enc%eQ!7h$us)nL1a6iitrrN+^
+oRI$lW7q$rrrA,OJ-:%Q]BK4QrrMYSnULggDh=h4n,28HJ,~>
+ir9/\pZ.SOh>d^)K])IurPed:oDJXm%<Rr\o)A7\!WK_&!!EL[]&ihRrr>1\!!NI<JZIN!o)A\b
+oDeu+T@<J_rr=/4!!GcK]BK4RrrK_KnGib<D18(tlMBQ@J,~>
+ir9/\pZ/;QhF[r\U>tkArPed:pAISe:3;iHo)A7\!WL=78d%hD]&ihRrr@0?8d.k(JZIN!o)A]@
+oL]4+T@<J_rr?Hu8d&U\]BK4RrrLGMnOa!cDLS1ulMBQ@J,~>
+ir9/\pZ/f;hLGci\E*8XrPed:q>GgIIWUq#o)A7\!WLdCJ-1_@jnn<B!1s.>"E8pmg@t1<!2fC=
+"+-Zhp!j!AO7Rl)G)EoqrT!nYh2LlS#'k-9T#g3nj8XW~>
+iVs&[puoFNh#ITiD9q_HrQ"p<ci!hH)0h_#o^Vq^qCM4<"AP`Dp&=:W!6b<@"Y=_W_!:jgrr@67
+!!H2dbOPS^rr=/4!!GE?\`WhOrrM_0n,N\IDgn4ok5##:s*t~>
+iVs&[puoY3h+@iMP1K-trQ"p<h>KqK;L"b\o^Vq^qIoIm"Dajbp&=:W!8@BD"^#i._!:jgrrAY_
+8d&jpbOPS^rr?Hu8d&IV\`WhOrrMh]n4EpgDgn4ok5##:s*t~>
+iVs&[puoe]h1,Z`Y1rI@rQ"p<kP]o6H[)+0o^Vq^qNUT%"G*E#p&=:W!9O00"aG*N_!:jgrrBY&
+J-:1bbOPS^rrA,OJ-:+Q\`WhOrrMr)n:1aeDgn4ok5##:s*t~>
+i;Wu[qWuaU$Jb[c#%#OAq#/>7!3c>$"=&5ef(SY6!WAP[!!F%"_s@9err?=&!!QPSUt,,:o)A]d
+oDf"ZOMgGaec,Uknc/h9HIhZarosFaqk"ku!!i`qEe9n#jS/Z5s*t~>
+i;Wu[qWuaq:u+_I:5I?dq#/>7!64t0"BBcBf(SY6!WBIu8d&%T_s@9err@uU8d/mVUt,,:o)A^(
+oL]6qOMgGaec,VWnk''gOk91$rosFar4?;*8dJ*tEe9n#jS/Z5s*t~>
+i;Wu[qWub0K&(q\Ju72gq#/>7!8%1""F5<ff(SY6!WC14J-:@b_s@9errB5#J-Bq@Ut,,:o)A^;
+oRI'jOMgGaec,W1npgmqU=f&6rosFarQgMoJ-^XGEe9n#jS/Z5s*t~>
+hZ!`Uo%pZ;g].K^?-_m5rQG3@Mu<VY0RftTq!e:anJ:]r")+moq!A"]k61ba"W_T@]&rn[rrCI=
+!!Fg/]''%Brr=/1!!X3S]^Y^orpKdflAHnV!!jBGG)3!9k4el6s*t~>
+hZ!`Uo%poqge%`FLXbberQG3@Xo1ip=am=(q!e:ao3(ZW"*h$*q!A"]mS3[Q"]KE!]&rn[rrCpJ
+8d&:R]''%Brr?Hr8d8C[b4,3(rpKdfn>p-h8dJ:-G)3!9k4el6s*t~>
+hZ!`Uo%q*DgjfQ[V:b52rQG3@`Vk;iG^cUGq!e:aonr?k",*l6q!A"]o7Hsl"ab6I]&rn[rrD6S
+J-:4U]''%BrrA,LJ-Lh3eF<82rpKdfoYls^J-^L@G)3!9k4el6s*t~>
+h>[ZWpZTt`,hrA'$uO\eq>SY=!,2<2"?M+:htljB!W@H<!!FsDbjbW!rr@EE!!Q#@T$R!,nc&Xd
+"SD`t(50!Qqpk]H+70%7)dScMnbN(\rr2]m"THu<9*F_a#ms"=IZq"_lM:G;s*t~>
+h>[ZWpZTtq?JJ-V;N]c(q>SY=!0mFS"C6S]htljB!WA_`8d&IhbjbW!rrAel8d/[LT$R!,nc&Xe
+9_D!\;M;@8qpk]H@-pPm>`#`8o(i1]rr2]m"TIDfIn]?(#u+cHIZq"_lM:G;s*t~>
+h>[ZWpZTu)LtmLaKWEquq>SY=!4;]T"Eo@!htljB!WBY%J-:@jbjbW!rrBb2J-C">T$R!,nc&Xf
+K(XWsI>"ocqpk]HO6qH(MlF\OoD/:^rr2]m"TI]/V1S2e$%?u9IZq"_lM:G;s*t~>
+h#@TXqXE@]F;EX3"W<3Xo)&F4rr>Rf!!GcE[,_)QrrM$_oDf!sK"0n=mf*=^'`J(9%W7$-i;)mB
+!WFSA!!EISWS@3urr=/*!!`TO7UCD#R[X2E"+FiG&+0E)&j^D^N2+/Bn,!%@s*t~>
+h#@TXqXE@]N`Oq-"^7_^o)&F4rr@HF8d&RU[,_)QrrM:YoL]6ZL:H=Amf*=`=T1nr:2blni;)mB
+!WHa)8d%h:WS@3urr?Hk8dA%!HAeDs[^Q.D"/:s%<UNHd:g\3hN2+/Bn,!%@s*t~>
+h#@TXqXE@]TS2*N"c9\Jo)&F4rrAknJ-:"J[,_)QrrMJ=o7-q#\E*PTrrN"SrdY0$E/(^Wq=+Cb
+rfm)+"Fkm"g\B>!!0?Ap#_J/2XLc<lb00e."2;(4L[K["I!'IVN2+/Bn,!%@s*t~>
+gA_BUpZpGDA.IAp"?!RMpANA<!$qLC"B1,fkPalL!W6-m!!Gffeb&k0rrADa!!PH-QcSUnn,EAc
+oDeu/T[`Ybrr=.]!!t5jG_r*'dHC3#h>`!~>
+gA_BUpZpGEK2UJs"Dkm;pANA<!+Yt""D3J$kPalL!W7cF8d&h'eb&k0rrBJ*8d/LDQcSUnn,EB@
+oL]4-T[`Ybrr?HI8dSU9G_r*'dHC3#h>`!~>
+gA_BUpZpGFRY'=F"I$pjpANA<!0[;2"E]I2kPalL!W8thJ-:G!eb&k0rrC7@JH'cpQcSUnn,EBd
+oRI$jT[`YbrrA,#J-gF<G_r*'dHC3#h>`!~>
+g&D<Vr:K4%ZsO=!!!NREf^AS7df0:Mr;Zt/NPFcWn,EFfa7B96'9U/sr9sXc./j2M")!1dg\:.9
+!.shC"B:c4o)@5?!$Ce4!\Go/f)Q$Y.ri5UmeZq<s*t~>
+g&D<Vr:K4%[t%?38d.qNg$\\8df0;@rCR3.NPFcWn,EFfealB9;3A`\r9sXcB)YC+95K0\g\:.9
+!2fB\"DX=Jo)@5?!+>Cjs&]7qf1H9@?&-/JmeZq<s*t~>
+g&D<Vr:K4%\<qm(J-CP'g@"e9df0<!rI>#lNPFcWn,EFfht)@$J!%V5r9sXcPl6+8Dh5"Ep[8%]
+_"<-[HC2qIrmq)LO7Rl'GBn\hJ-LRk^=r#OrnRO(~>
+fDc*Tqt&mqZ=k!/!!FdZk4SZ%rrCgO!!I,#`9mQlrrN!Vo)Jl'Xk`^@rrBD(!!OopP/6G]mf*9h
+oDf"ZOi6Ydf)G^lo)Jt_FFe0r+9^j-":,u"5ofV!"W2O:o(i7?s*t~>
+fDc*Tqt&mq[=hQ98d&\=k4SZ%rrD3Z8d'*q`9mQlrrN"9o1B+.Xk`^@rrC1>8d/=<P/6G]mf*:*
+oL]6qOi6Ydf)G_Xo1B3pFFnpW=A7mM"AMfu@TE.p"^.;Lo(i7?s*t~>
+fDc*Tqt&mq[[;^'J-:nOk4SZ%rrDHaJ-9qU`9mQlrrN"co7-prXk`^@rrCaNJ-C1=P/6G]mf*:;
+oRI'jOi6Ydf)G`2o76j_"+uJeK'%RdIXHHeIeS?rLp>k.q>K.LJ,~>
+ec,mRqXNUl\8s"R!!E[eh!k3krrB\0!!NOIQ-/Uqmf*=eV"4Qh.@JBJrpg!g7/[)h>(*3sp&=CZ
+!7g]A"=oAAkl'*4!$Ce4%7Pf?[^N-%G$@?g+VbIZ!"98O,rS>#EdiXsO-3'-!!NdIf^S_8huA3~>
+ec,mRqXNUl\;FVL8d%t`h!k3krrC@C8d.n0Q-/Uqmf*=e]^n_u>+*S&rpg!gHMpG>B76T+p&=CZ
+!9*QB"BgVokl'*4!+>Cj%:Od[[^N-'KQV!8=&Mie8dnHm='fHTGCG1#O-=PV8d/+Tg[P%;huA3~>
+ec,mRqXNUl\=860J-:M/h!k3krrCmRJ-CFDQ-/Uqmf*=ecLZPhJ!nLKrpg!gUA]TGEIFY5p&=CZ
+!9s-+"FH$<kl'*4!0?`%$?grm[^N-'Nei@=rdXTk%"<VPH[0m_IY3H;P`>Be"bj&7nG3%?s*t~>
+e,K^QqXNXp]SSiUhZ*dcdd-`.fDbi;r;Zs2G+-bKm/I+Z)Y="4!dqH:qXXXdci!hI)0(SGjnnHF
+!WEAt!!F'jZJtc4rr=/4!"qbW[+OEmcGI#jU7.@/N.uLtF8U%iGCbC#LlIRcTW#**_T9cO#ke6%
+'7o05qYoIRJ,~>
+e,K^QqXNXp]U*D-hb"$(dd-`.fDbiYrCR2fG+-bKm/I+[>P(Mj98'b6qXXXdh>KqL;K7W+jnnHF
+!WGmf8d&%FZJtc4rr?Hu8ePTh[+OEmcGI#jU7.@/N/2t4I/J:%I=[$)LlIRcTW#**_T9ce:A.9`
+<hA=@qYoIRJ,~>
+e,K[PqXNXp]V18?J-;IllhUP3rrC7@J-::DRa:TlrrMkQo7-q"[c@5TrrD6\J-C:>Mn8$ImJd4d
+K_9iuI>"ocqptcIO7Rl7G)3NXj4_eq[]?-kQ&pr\L4k3WK)^B3K8#,@P*quAYdqWla/agcJ-C_7
+iplmEiW"E~>
+dJjLOqXWe!^nP'OhuEmGa6*0rf`(qrr;Zs=Gb<LYm/I+bJb&jE7&&-%rq$-i>l=X+8U6lPo)A%V
+!WF_E!!EISWS@4!rr=/4!"qbY]'&n`o'>Amf$DIU^:LbYYPPC4Z*h0Y`m*#fiTBLrmc()Uo`,+G
+ZKCiXir=N~>
+dJjLOqXWe!^nuHZi(=,kaQE9sf`(rDrCR2jGb<LYm/I+bV"71]B;3iHrq$-iMu?6O@<nEho)A%V
+!WHj,8d%h:WS@4!rr?Hu8ePTj]'&n`o'>Amf$DIU^:LbYYPPC4Z*h0Y`m*#fiTBLrmc(QPoh#?u
+^?5+dir=N~>
+dJjLOqXWe!^oEQMi.(roal`Btf`(rarI>#tGb<LYm/I+b^%-[UU=/]5oD\fnrI>&mH(E7OrpB^d
+rg*5-"Fkm"g\BA"!0?`%&pB/DkP=lClf?mQccO)=]!eoJqQ:@6[CX/nc.(M,k3VU*ikC0?J-:tR
+k4SZ3s*t~>
+ci4=Nqt97.aKp@Q"QBCa3PjeMrn7;O;uH\!-@DWApZqh[j9P;W":pO.l2:2R!TO=^!!NdJL9fb5
+li-rkoDeu,T[`Ycrr=/4!"qbY]BK4nrr2ikp@Ie?lK@9hi;;C=i8Wh\lL+69q"jpfrWDu]ZQAc>
+"U8r"meZqDs*t~>
+ci4=Nqt97.aKpt>9]AYIC;T'*rn7;OL&FUH<d^^qpZqh[l;.%E"Ak/pl2:2R!UEJZ8d.t-L9fb5
+li-sDoL]4,T[`Ycrr?Hu8ePTj]BK4nrr2ikp@Ie?lK@9hi;;C=i8Wh\lL+69q"jpfrWDu]^0L>'
+"\k-5meZqDs*t~>
+ci4:Mqt97.aKqCmiID&l_rUOjg&D&PrI>#rI&,Ehli."RKCjZsIuqJ1r:L!inUgaj"b(BEZJbQE
+rrB4oJ-11leFhDm!0?`%&pB/Ekl(P\rquTcoC2,3kN1a^qqhb=ioK:fmdg&GqY^?l"8V6&MY2K'
+JuIDkqYoRUJ,~>
+c2S+Lr:fX<d(PlG%c[Nl2nn;Frn@AP2#RCW0n-+Wq<S%]r*Jsp"'qt]p[nIcF8Z(B3Hg_/mJZAN
+!/gCK"B(W2nc%/?!$Ce4"@e9\kl(AXs8N&ss8;]h"oJ5rrVlflrr`/d_]SLN"?sffp\s:SJ,~>
+c2S+Lr:fX<d(Q/s;<(7OBu&a%rn@APDZ*01>(3I+q<S%]r/:/="*:Nsp[nIcSGc%`>]uFRmJZAN
+!3>`a"DO7Inc%/?!+>Cj"Cd8#kl(AXs8N&ss8;]h"oJ5rrVlflrr`/db$FX3"E;HFp\s:SJ,~>
+c2S+Lr:fX<d(Q<<K&_@aNPOQIrn@APRf.a>G^cXIq<S%]r2fL?",!Z.p[nIc\c%$^F`s(kmJZAN
+!6"M["F?HZnc%/?!0?`%"Eo[7kl(AXs8N&ss8;]h"oJ5rrVlflrr`/dc\qFG"I.*mp\s:SJ,~>
+b5VbGqXWk&`iNbjj8]<@^>ekcg]%6br;Zs]JZdr-li."b`:Es3-()dArV$6lmh#Hu"Tr7bX4m=5
+rrB=r!!GKI_sIBSrr=/4!!GcK]BK4Lrr`2h\eF]9"<t22o_mqPJ,~>
+b5VbGqXWk&`ianpj@TPh^Z+tdg]%7RrCR2uJZdr-li."bddp'6=d[:urV$6loMtl_"\WT\X4m=5
+rrC+38d&Ra_sIBSrr?Hu8d&U\]BK4Lrr`2h`E)V'"CA[uo_mqPJ,~>
+b5VbGqXWk&`itb^jF@Am^uG(eg]%80rI>#oJZdr-li."bhXc7#J!e=FrV$6lpPAcu"E/gkg@sn4
+!8$jn"F?0Im/GW:!0?`%"Eo[7kl'?;"8q]7L\-*"MSJ-BrT=-1~>
+aSuPFr:]L7c+%g=jT#EP_;tCjh>[K@qu?jgKXBh<lMgn^2"UbN!d_65qY'phO8T%^-?>3`l29iH
+!8d>J"=8o9kPa$4!$Ce4"@e9\kl'<:"8q_s$1n3#'qsFRr9+*1~>
+aSuPFr:]L7c+&X9j[oYp_;tCjh>[KFr(7*#KXBh<lMgn^DY$I&K!aP6pAY,srCR5oEfe*$r9F:^
+kO_@L=,FNOrR_&L@.Qtn@Z%e]rS7DTr:7^$oL]6eXk`LFkPp&~>
+aSuPFr:]L7c+'6tja[Jq_;tCjh>[KJr."omKXBh<lMgn^R.Gh1LpZ1<pAY-5rI>&rEfe*$r9F:^
+mdu#4I#5GtrR_&LO7Rl)G)EoqrS7DTr:8'aoRI'u[G:?NkPp&~>
+`W$2Aq!d=l]RM<k!!?`Lk5!j5!6b9?"B1,ekPXWF!WJY]!!GEWdI[A4rrN!6r;["$I&#3`rp'La
+rX8B!";?BkiVM1+!$Ce4"@e9\kl'99"8q_Z"7uQr&#@nLr9402~>
+`W$2Aq!d=l]TQXa8csU^k5!j5!8@?C"D3J#kPXWF!WKS"8d&[tdI[A4rrN%%rCR6)I&#3`rp'La
+r_iD]"Aj]SiVM1+!+>Cj"Cd8#kl'99"8q_p9_:p[;QSRBr9402~>
+`W$2Aq!d=l]V(&BJ-2(Tk5!j5!9O-/"E]I1kPXWF!WL:5J-2IloD\Ob!W@uUJ-Bq?UX\r8lMgna
+L@p'"I=e]^qUb`IO7Rl)G)EoqrS.>Sr:7[ToRI'sZJ"gHkl6/~>
+_uBu@qXWe!^OdTl!!E@Ub3Sr]rrAtp!!HSd^?Y[]rrMX&oDf"%N4nHQq#:>dr;[!:E/M0dqs"+]
+r\jEL"9NkHgA';"!$Ce4"@e9\kl'68!rVP*o)Jn2WnHtAl2Q8~>
+_uBu@qXWe!^Q_sd8d%eMb3Sr]rrBk48d&mf^?Y[]rrM^loL]6]NkOZSq#:?+rCR5jE/M0dqs"+]
+rc%L%"+7$#pt,NG@.Qtn@Z%e]rS%8Qr:#pA8d&8!g%,++s*t~>
+_uBu@qXWe!^S6JGJ-2@blhfQ=!7Ujr"ETO9lM]uI!VM9@J-:@^^$,ChrrCCDJ-C=>MR_aEl2Le`
+Re2+4I](opfDbi3o7-seMS&*NgA_6Pn?2A5"GO/7o)7hQJ,~>
+_>ac>qt0+(^ip[\!!Eq.dd[4mrr@iP!!Hnq_sIBerrN(=o)JkpWS."?rr=bO!!P]6S':C$kl1Wp
+oDeu&T$m8_rr=/4!!GcK]BK4HrrW)b4nAXV.^\"(rp'N6~>
+_>ac>qt0+(^lDL\8d&(gdd[4mrrB(s8d'$n_sIBerrN(do1B+(WS."?rr?m68d/OGS':C$kl1XG
+oL]4)T$m8_rr?Hu8d&U\]BK4HrrW)bF7W!,@("e_rp'N6~>
+_>ac>qt0+(^n?DGJ-:J%dd[4mrrBt7J-9tU_sIBerrN),o7-ppWS."?rrAGbJ-C%>S':C$kl1Xg
+oRI$jT$m8_rrA,OJ-:%Q]BK4HrrW)bRe)%4Lpl+3rp'N6~>
+^]+Q<r:T:)]OqT:!!GKkh"La*rr?U-!!IA-aRB,lrrC^C!!FI2a6ij%rrBD(!!NRBKWs>.kPkOB
+oDf"fQHAXqf`(pno)Jn_MS&*Nf`)$LcjfRH"Albjq#9UZJ,~>
+^]+Q<r:T:)]nK8I8d&k6h"La*rrA2Z8d'4"aRB,lrrD$L8d&4]a6ij%rrC1>8d.n*KWs>.kPkOb
+oL]7!QHAXqf`(qZo1B-pMS&*Nf`)$LfMhB6"E_<9q#9UZJ,~>
+^]+Q<r:T:)^70`>J-:\6h"La*rrBA&J-9qXaRB,lrrD9SJ-:@fa6ij%rrCaNJ-CF@KWs>.kPkP%
+oRI'jQHAXqf`(r4o7-seMS&*Nf`)$LhM(QO"HL.Sq#9UZJ,~>
+^&J<9r:K4&Y!D:Q"9O%gkka6;!'pJ_":B7<bjsrs!W5=V!!@;Ji;*6L!'pJ_"Yb%_`U*QdrrBJ!
+!!G0>_!D!Prr=/4!!GcK]BK4GrrW2pN:R#P!e\MXqs494~>
+^&J<9r:K4&Zu>8&"A=Wgkka6;!-eB6"AO!*bjsrs!W7678csOJi;*6L!-eB6"^,r3`U*QdrrC46
+8d&I\_!D!Prr?Hu8d&U\]BK4GrrW2pWq/gc99@0Yqs494~>
+^&J<9r:K4&\<6',"-gXcqV_ART`'BDIWUt$o&p#Rr1NY3",F2?q>1*kT`'BEG'&tfm/?,I!87!p
+"FH0Eli,Q:!0?`%"Eo[7kl'06!rhu0npgh1`p3Hes*t~>
+]Di*7qt&moL_B%S"=g4qo)@VJ!$(q;";#dIdIcW%!WK1l!!G?Sd.726rrC+;!!QVVVqC_BkPkPH
+oDf"<LUQ=Bf`(pno)Jn_MS&*NfDbpOn1+#0"<aVko)7qTJ,~>
+]Di*7qt&moS5eiI"C7hOo)@VJ!+#Oq"Aa63dIcW%!WKt-8d&Upd.726rrC[K8d/jVVqC_BkPkPN
+oL]6eLUQ=Bf`(qZo1B-pMS&*NfDbpOnRqGc"BhYOo)7qTJ,~>
+]Di*7qt&moWeB_h"G3Gto)@VJ!07#."FYKadIcW%!WLO<J-2Cio)ARe!9=!-"`Spgf_5=-rrDZ_
+J-:7T[cRG>rrA,OJ-:%Q]BK4FrrW2jPOj;-Ju@)grTsQ7~>
+\c2j4qXE@Q46uqLHF`,5ir9#Uqu?j<H(`[\k5PJU)Y="4$&H7Wqu$Ho;#L@t*c[.OkPOEA!WEc*
+!!EXZXl'!-rr=/4!!GcK]BK4ErrN%nnc/c%\)R5Ms*t~>
+\c2j4qXE@UD<sjsKXp1?ir9#Vr(7)iH(`[\k5PJV>kCVk:5cdJqu$HoK)J:F;fRc/kPOEA!WH0n
+8d%k=Xl'!-rr?Hu8d&U\]BK4ErrN&0nk'"1\)R5Ms*t~>
+\c2j4qXE@YOmIT#N4J$Gir9#Wr."osH(`[\k5PJWN:_W'IuM&'qu$HoW;V5MH?"nVkPOEA!WIrK
+J-:=OXl'!-rrA,OJ-:%Q]BK4ErrN&Anpgh$\)R5Ms*t~>
+\,QX1pZg7G!q$$k3hb!mro="YfDGUO-%)N@pZDJVrHe&8"&c)MpAP!kg\_$T89pfRo)@eO!WG:T
+!!@8;fCmks!$Ce4"@e9\kl''3!V@E(!!F./bO5>rs*t~>
+\,QX1pZg7g9^YLUA"h?Aro="Yj8;LP<d^^qpZDJVrL`[R")b'ipAP!kk57gT@!S?jo)@eO!WI66
+8cs=6fCmks!+>Cj"Cd8#kl''3!VKdj8d&+`bO5>rs*t~>
+\,QU0pZg8(m=5=jU!iN2j8T,Fr."oqI&,Ehk5PJ\](:FSJuI>qrVllbr."rkH(NCRroX4]rgrb4
+"+6orp=TBFO7Rl)G)EoqrRLoKp5SWn".[R&rU'W8~>
+mJd4QqYpK?rrrE!o&#]Bmf3J"NkOZSj8T+gqu?jNI];)tjo5A:"S;Zs)O/5-rVlfs?i9s.$>bI'
+iVDR7!,D-+"BLu:o)@>B!$Ce4"@e9\kl''3!W@<7!!@#BhtZU=J,~>
+mJd4Wr;Q]ArrrE!o&$BDmn*^YNkOZSj8T,'r(7)oI];)tjo5AB9_:p[<0YAgrVlfsNr;QR9l>]l
+iVDR7!0m+J"DjOPo)@>B!+>Cj"Cd8#kl''3!WAV\8csIHhtZU=J,~>
+mJd4[r;Q]ArrrE!o&$m/mskOjNkOZSj8T,6r."opI];)tjo5AHK(OQrJ!@q=rVlfsYPitTIVsnH
+iVDR7!4;BK"FHT_o)@>B!0?`%"Eo[7kl''3!WBV#J-1V5htZU=J,~>
+n,EUdIh7t8oD6`3"TA)XY8cp1"(nRepZ)8RQi$gd2h8'gqW7_Xr'^,V#B6p)q#CBW"T8<(20G5*
+mJZ,G!0QmR"@/-hmf(o>!$Ce4"@e9\kl'$2!6t'7">H@jnG_kUJ,~>
+n,EUfUfFbioD6`3"TA)X\m"Pp"*U]upZ)8R[JWW">_'!7qW7_Xr-@m+#CNc5q#CB^:&RZf>'6.O
+mJZ,G!3l)f"CdP5mf(o>!+>Cj"Cd8#kl'$2!8@!9"C@VCnG_kUJ,~>
+n,EUh^PKr!oD6`3"TA)X_hmi4"+mQ,pZ)8RbPZknGCZjRqW7_Xr1NY3#DTJ?q#CBcK)L6"FT[rM
+mJZ,G!6Fe_"FH<Nmf(o>!0?`%"Eo[7kl'$2!9<U"".[X*rpKf:~>
+n,EX9!!!tXg$nparri>tm(a\3!!GTUbjk\nrr@0=!!GQ>ZJtcCrrN+qo)JtOSBg[(s)7i9"Ti+_
+WnR1,rrC%1!!F^-]]f=Irr=/4!!GcK]BK4CrrN$5o)JmtL:QFCmf.e~>
+n,EXH8kN@1g$nparri>tm)WK%8d&[mbjk\nrrASe8d&LRZJtcCrrN,4o1B3oSBg[(s-`dW"DNCd
+g@jS,!7g^6"B^Pokl'37!+>Cj"Cd8#kl'$2!W6-m8d%hD\`N_Vs*t~>
+n,EXSJ:NR#g$nparri>tm*1FWJ-::gbjk\nrrBY.J-:%JZJtcCrrN,Fnpgn6cLLo6\,:aZDh+kA
+p>c/QiUhX'I#>T#rRq2NO7Rl)G)EoqrRCiJr/1&q",aYNqsOK7~>
+n,E[i#QOj,[bUTUbl7eBnAQL>!!FL)^?GLUrr?!q!!G`F[cRGJrrMg/oDf("Kt?FDmg/jl"WqcF
+^?GLTrrDKZ!!EsfZJkZ5rr=/4!!GcK]BK4CrrN*rnc/buVUtP0s*t~>
+n,E[k:J+6*[bUTUbl7eBnB>5/8d&1R^?GLUrr@cN8d&RW[cRGJrrMjsoL]<]Lq;aGoMGKY"]TN&
+^?GLTrrDW^8d%tCZJkZ5rr?Hu8d&U\]BK4CrrN+Nnk'")VUtP0s*t~>
+n,E[kKReT;[bUTUbl7eBnBm3bJ-:7Y^?GLUrrB(sJ-:%M[cRGJrrMnPo7."&]&rnaK`-E)H?,%[
+kksK@!;?&8"FYp.iVM7-!0?`%"Eo[7kl'$2!WK"eJ-)V"p?qs2~>
+n,E[m4obQgMSn]VbPq\Bo#)44!!ERZYi,B=rr=kQ!!H5W]'0+RrrN(9o)JnfVUkEiqu?moHD&^X
+ro="ZrYP2,"*g`tpt>ZI+7fI87Z+hArR:cHII[@@3L7bTrpTl;~>
+n,E[mG"PA%Oi-G]bPq\Bo#t/*8d%k?Yi,B=rr?s78d&a_]'0+RrrN(ao1B.$VUkF9r(7-%HD&^X
+ro="Zr`\qd"+-s"pt>ZI@.Qtn@Z%e]rR:cHU@LnZ@$\n&rpTl;~>
+n,EFfT)O6BQG_tbbPq\Bo$W<aJ-:@RYi,B=rrAMcJ-9tN]'0+RrrN)*o7-spVUkFTr."rkHD&^X
+ro="ZrepE!"+I0%pt>ZIO7Rl)G)EoqrR:cH^%-[VI?qtCrpTl;~>
+mf*90rW!'WW7LV?bPq\Bo;Vo`!!@>=f_=J,!"f&."B^VslM]cC!7CB<";d9>i"5he"Uf1&[,Ur@
+rr>O\!!?MtdIc,l!$Ce4"@e9\kl'!1!1iZ\"<!*.kPXfKJ,~>
+mf*9Wr^m<&W7LV?bPq\Bo=Rcf8cs@7f_=J,!*/qh"DEb.lM]cC!8R0<"B1N%j&Q%M"\rrj[,Ur@
+rr@E<8crt%dIc,l!+>Cj"Cd8#kl'!1!4hYm"B12hkPXfKJ,~>
+mf*9trdY-(W7LV?bPq\Bo>lLRJ-11pf_=J,!/UQ'"E]U:lM]cC!9Ng&"FlWQk(rtd"b(BF[,Ur@
+rrAecJ-1.hdIc,l!0?`%"Eo[7kl'!1!6t(b"FZ0=kPXfKJ,~>
+mf*9kr;Zq@]]K"4rrW,hB(>p(@%5O8jo5>LqZ$b0O2C8_j8T/X2"L\KBWl^Z!!P6'QcSUniVrmu
+oDf"]PfW=mgA_-po)Jn_MS&*Ne,KEZnc/dpJ?@](n,In~>
+mf*:,rCR0E]]K"4rrW,hNq,dEDk#,Gjo5>Qqaq!-O2C8_j8T/XDY$I%H*<\78d/CAQcSUniVrnH
+oL]6rPfW=mgA_.\o1B-pMS&*Ne,KEmnk'$XJ?@](n,In~>
+mf*:<rI>!2]]K"4rrW,hXR^lDHCN:Rjo5>Tqg\fkO2C8_j8T/XR.Gh0Ks.cZJ-C(=QcSUniVrnf
+oRI'kPfW=mgA_/6o7-seMS&*Ne,KF'n:1SBhYHX?J,~>
+mf*:Rr;Zs>T$Qp)b5VP@j;%7d"B(K*nG_SM!6b6>"DEt<mf)8H!WJDV!!4j?')_e6!b$VZg@sP*
+!1i`^"=f>Cl2B?9!$Ce4"@e9\kl'!1!5@t'")+CYp$_p2~>
+mf*:WrCR2nT[3-+b5VP@k?.=J"DF%@nG_SM!8@<B"E0ICmf)8H!WKCr8ci=d<r>PmBn35;pYc&O
+\b&Js=c9uXrS%8O@.Qtn@Z%e]rR:cHd.'^1F.q.Wn,In~>
+mf*:ZrI>$%T[3-+b5VP@lA>+_"F-0PnG_SM!9O*."E]gHmf)8H!WL12J,u*nr."ogJ?%>ti;Wf&
+oRI'lMnSBRgA_/6o7-seMS&*Ne,KF)nUL^hU"/i)s*t~>
+mf*=e-N*oI:p]$RrlY6AqM"M@"A"Tjm/H/I!3>ts"ETjNnG_GI!UU-a!!*3jqu?mBEfRp!r8@ST
+an,Q9'83[NqqD&M+7fI87Z+hArR:cH^@;1+<1(o"rp]r<~>
+mf*=eAGo+'EO4NsrlY6AqPNjV"D!S1m/H/I!5n\+"ETjNnG_GI!UrnW8c_Rur(7,lEfRp!r8@ST
+f^qc=:kZ.6qqD&M@.Qtn@Z%e]rR:cHdIBg3C7*68rp]r<~>
+mf*=eP5Tn6LpPt5rlY6AqRuKN"F-!Em/H/I!7gss"ETjNnG_GI!V:s8J,k3!J-C7>NkaiVi;Wf;
+oRI'mKX0V7gA_/6o7-seMS&*Ne,KF)nULagR*>+"nGe"~>
+mJd/pr;Zs)M8niYb5VPBjp1MY"@nEblM]lF!/paT"9N\3bjs`m!W?*k!!!)u!!Q&BT[NH2i;WfJ
+o)Jl;W7q%#rr=/4!!GcK]BK4BrrBe'!!G`P`9mQns*t~>
+mJd0HrCR2dP/cebb5VPBlVI.F"CmD)lM]lF!3Q,j"*BmRo&9TLrJ0u:!)*5^"_)eNde!IrrrD``
+8csI>gA'D%!+>Cj"Cd8#kl'!1!7C=/"CmP3mJcVTJ,~>
+mJd0ir."m9`p3KErrW2fKCjZsGDs9$rT=+[`VY/fFI15BiVrrWWU53>EdFD,oD[\J!;Q/9"+I3&
+ptG`JO7Rl)G)EoqrR:cHhXQ+!H'#u3rp]r<~>
+mJd0Rqu?jKW7CM=b5VM?:\4Vi6]/P?rT=+[B`%i5%<e2eo\ofNrjD.o"Uf1&[,Ur>rrN*CoDeu!
+T$d2arr=/4!!GcK]BK4BrrB(h!!G?@]]oCas*t~>
+mJd0or(7)tW7CM=b5VM?Jb2P;@>__]rT=+[Pl+,V:3N)Qo\ofNrlOS#"\rrj[,Ur>rrN+.oL]4'
+T$d2arr?Hu8d&U\]BK4BrrBt,8d&IY]]oCas*t~>
+mJd1/r."p'W7CM=b5VM?V=]9@GDa&srT=+[[/>FWIWh1,o\ofNrn$Rg"b(BF[,Ur>rrN+\oRI$j
+T$d2arrA,OJ-:%Q]BK4BrrCU>J-:1V]]oCas*t~>
+mJd19qZ$_.]&NP.rrN+foDf"[M7VpLk5PEOqu?j/GFd1Si;WiS)XdY020P>-meu#B!)E.d"@89m
+mf(u@!$Ce4"@e9\kl'!1!1r]\">GS>k5=`KJ,~>
+mJd1Eqaps<]&NP.rrN,-oL]6oM7VpLk5PF/r(7)eGFd1Si;WiS>jk8g>'?7Rmeu#B!.jc7"Cm\:
+mf(u@!+>Cj"Cd8#kl'!1!4q\m"BpPhk5=`KJ,~>
+mJd1Mqg\d.]&NP.rrN,AoRI'hM7VpLk5PFWr."p!GFd1Si;WiSN:29#F`s+mmeu#B!2fC="FHBR
+mf(u@!0?`%"Eo[7kl'!1!711c"F>g3k5=`KJ,~>
+mJd4c&,ZD1$BiR!r6#$>f^o.H7YnY>r9""Z./X&J&p^,!p#,iNrc@N."CH\Zg@sG'!.+8;"=B&>
+kl'99!$Ce4"@e9\kl'!1!.aS>"=f)2j8AEHJ,~>
+mJd4c<;]>k:702kr6#$>iq,hG@YhVZr9""ZB)G7(:jJ\_p#,iNrgN:J"DE=cg@sG'!2/sV"BUMo
+kl'99!+>Cj"Cd8#kl'!1!2T-W"B^>`j8AEHJ,~>
+mJd4cL\lT(SBC6sb5VJ,oRI'fLq;gJk5PFGr."otH(WUZi;WiW\*nhMDh+kApYGiL]_$^WI#GZ$
+rS.>PO7Rl)G)EoqrR:cH_!upXHA&Wbr:'`:~>
+mJd4d9)ASk0<Egurlb<Br<r8u"@e6Zkl'ZD!!N3""<)T\f(S#$!6t!5"Wh]E^?GLNrrAbb!!Ejc
+Z/PQ6rr=/4!!GcK]BK4Brr?U"!!Fa&YMf9Hs*t~>
+mJd4dIeu_?@'&#Qrlb<BrDN;\"Cd5!kl'ZD!)3;_"B'Q?f(S#$!8?p7"]KH%^?GLNrrB_(8d%qB
+Z/PQ6rr?Hu8d&U\]BK4BrrA2O8d&7JYMf9Hs*t~>
+mJd4dV#,ZFKrir!rlb<BrIsop"EoX5kl'ZD!.t-!"FGHhf(S#$!9<R!"aY3L^?GLNrrCC;J-:=R
+Z/PQ6rrA,OJ-:%Q]BK4BrrB@pJ-:1MYMf9Hs*t~>
+m/I':q>^V,]]An3rrN*Ko`,+kMS/0OkPkPBqZ$a<H_f<ghu<`T/b&fE8:$oUoD[SG!5\7,"*CEn
+pY5]J+7fI87Z+hArR:cH3:QtO.=eSYqXFN8~>
+m/I'^qFUj;]]An3rrN+4oh#?uMS/0OkPkPJqapuhH_f<ghu<`TC%4e!@!\HmoD[SG!7UO3"*pcs
+pY5]J@.Qtn@Z%e]rR:cHEUcX(=FdR3qXFN8~>
+m/I(#qLA[.]]An3rrN+`omd0fMS/0OkPkPPqge]n!i4KChu<`TQ19A.EdFA*oD[SG!8mBu"+I-#
+pY5]JO7Rl)G)EoqrR:cHSFM+4H@W0UqXFN8~>
+m/I'qq>^X(N6:MbbPqQ+o`,,"N5"TUkPkOoqZ$a<I&>Tlhu<`VMXg`N#]#1$iVM@0!8d;I"BM&>
+oD[PF!$Ce4"@e9\kl'!1!"AAt"=\l(htljBJ,~>
+m/I(0qFUlcQ-/IkbPqQcoh#@$N5"TUkPkP-qapuhI&>Tlhu<`VX7Ajd9PoNjiVM@0!9`rG"DjUT
+oD[PF!+>Cj"Cd8#kl'!1!)i>Z"B^2WhtljBJ,~>
+m/I(>q1&R;b3]&LrrAY`J-9tQ^?Y[[rrCmPJ-:4HVV1b%rrN,9npgmmDhbUWqV;)Nmdkr3I%8RT
+rnRMRO7Rl)G)EoqrR:cHL@KcsH@W0UqXFN8~>
+m/I(Uq#COAW7LS>bl7Z0o`,,0OMgGakPkOKqZ$a<I&>WmhZ!W5"S2Ts/p*AumJYi?!<2Qi"?DXa
+mf)#A!$Ce4"@e9\kl'$2!71-7">k\4i;2sCJ,~>
+m/I(Xq+:cnWn-e@bl7Zgoh#@*OMgGakPkOiqapuhI&>WmhZ!W=9_1j[=EKhJmJYi?!<2R^"CRD3
+mf)#A!+>Cj"Cd8#kl'$2!8[-:"C$G[i;2sCJ,~>
+m/I([q1&U$Wn-e@bl7[:omd0cOMgGakPkP*qge]o!iF]HhZ!WCK(FKrGBB+imJYi?!<2S?"FQBO
+mf)#A!0?`%"Eo[7kl'$2!9`j%"F,L#i;2sCJ,~>
+m/I+c0)5JM7(D1LrltHC6hUK`$?VQTnG_VN!-%f8"<2`cgA'P)!W>:T!!HDQVqC^trrN*)oDf":
+M7VjIh#@?no)Jn_MS&*NeGfN0n,NSRK!=83nGe"~>
+m/I+cCACI)Cq/EtrltHCH1ji69luZBnG_VN!1E^V"B'WEgA'P)!W@358d&aTVqC^trrN*poL]6e
+M7VjIh#@@[o1B-pMS&*NeGfNQn4EgiK!=83nGe"~>
+m/I+cQMH%6MR_U=rltHCU%X!?IWUjsnG_VN!4_oVs*OmFgA'P)!WAV]J-9h?VqC^trrN+PoRI'l
+M7VjIh#@A6o7-seMS&*NeGfNhn:1XbK!=83nGe"~>
+li-rrp](D-_WL^>rr>:W!!FEgSC$ojrr>ai!!F-dVV:h%rrN+foDf%/E/V?jqqD&M+7oO9#D0,9
+qV;,A!!GcK]BK4Crr>IV!!GoJ[H.8Ts*t~>
+li-sIpdtX=_WL^>rr@698d&+;SC$ojrr@TH8d&%>VV:h%rrN,-oL]9`E/V?jqqD&M@.[%o9S0G)
+qV;,A8d&U\]BK4Crr@B78d&UW[H.8Ts*t~>
+li-sipj`I1_WL^>rrA\bJ-:1BSC$ojrrAqnJH'uuVV:h%rrN,AoRI*mE/V?jqqD&MO7[r*ItFi\
+qV;,AJ-:%Q]BK4CrrAe_J-9tJ[H.8Ts*t~>
+li-sQp](F$KZi`ZcMml#p&G4TI&,Ehk5PE,qZ$a/I&5Kih>[ND#PA'#4F!@?nc%8B!$Ce4")"C[
+p>#]=!!GcK]BK4DrrMEgn,NSrMS&*NnGe"~>
+li-snpdtZ`PKW=icMml^p.>HmI&,Ehk5PEkqapudI&5Kih>[NH:\@<`?$Mj`nc%8B!+>Cj"*:6g
+p>#]=8d&U\]BK4DrrMXan4EgtMS&*NnGe"~>
+li-t.pOE@;bO#,OrrAJ\J-:%CUtGG(rrA5ZJ-:=KV:bOurrMbEomd3fGaltJrn@APO7Rl(IA>Be
+h#Hqq"Eo[7kl''3!VM'6J-9nM]BK4_s*t~>
+li-t3pAb=+RFC['ci3t]p&G4qK!=20kPkPVq>^X*HD9!ah>[NS9_JGi!bHtdh>#\'!%7@<"A,!(
+nc%AEnc/e^MS&*Nec,W-n,NUqEKA$(rp]r<~>
+li-t@pIYQcU!rN/ci3uKp.>I"K!=20kPkPXqFUlbHD9!ah>[NSJ+ZD:C4`VEpt>ZIAb/LsAsgd3
+rn[VF8d&U\]BK4DrrB1j8d.n.O2L>`nGe"~>
+li-tIpOEBuVpk/5ci4!(p4*9cK!=20kPkPZqLA]tHD9!ah>[NSV"K6@Dh>.Jpt>ZIPOj;-I$i+I
+rn[VFJ-:%Q]BK4DrrC%-J-CFBO2L>`nGe"~>
+li."a&,-&,(oGsVrR(WFn+H_b#]Pa9kksWD!71H@"*gHfp"fWKrhfAh"WqcH_<V!Prr>7S!!Fp7
+_!CsUrrCsI!!GcK]BK4ErrN!Bn,NV6FdUDCrp]r<~>
+li."a<;/uf<iamDrR(WFo_(l\9Q5s(kksWD!8[HC"*gHfp"fWKrkA(u"]TN(_<V!Prr@668d&@Y
+_!CsUrrD9R8d&U\]BK4ErrN%-n4Ej`FdUDCrp]r<~>
+li."aL\H<%KW`turR(WFp\'+@IW17ZkksWD!9a0."*gHfp"fWKrm:@h"aY3N_<V!PrrAY^J-:7[
+_!CsUrrDNYJ-:%Q]BK4ErrN(]n:1[gFdUDCrp]r<~>
+li."b6M:B^,d,qprmLfH\+Te*/p<W*nG_VN!2oVm")==Po\BHIo*b9m"\*g3de*Olrr>:T!!Emf
+[,_&?rrCdD!!GcK]BK4ErrA\[!!GT8Ut>>/s*t~>
+li."bGkO`4?Er;XrmLfHbk=X4=E^(TnG_VN!5SD&"*0mXo\BHIohtNV"^lYMde*Olrr@668d%tE
+[,_&?rrD0O8d&U\]BK4ErrB\"8d&IJUt>>/s*t~>
+li."bT_<m=LU>k/rmLfHg\-.$GBT@snG_VN!7Uao"*g<^o\BHIpP&?l"`ep_de*OlrrA\_J-:=T
+[,_&?rrDEVJ-:%Q]BK4ErrCC6J-9tAUt>>/s*t~>
+lMgj0o`,+AZJP9Re,KDhp&G5!J#M)pk5PF+q#CP&Qd#"!h>[NS=SMk""`&k!iVM4,!'g#S")k*k
+pYPoM^[_@-7Z+hArR_&MpE8r*"TrCkZJt`Ls*t~>
+lMgjVoh#?n[bg]Ve,KE<p.>I"J#M)pk5PFRq+:d+Qd#"!h>[NSL\OIF9PoNjiVM4,!-[p*"*g`t
+pYPoMddg!5@Z%e]rR_&Mq-`\a"\WZcZJt`Ls*t~>
+lMgjromd1$\DHoXe,KEYp4*9bJ#M)pk5PFoq1&TmQd#"!h>[NSWq_)JIrC(JiVM4,!2&h4"+R6&
+pYPoMhsu:#G)EoqrR_&MqiL;t"b1HEZJt`Ls*t~>
+lMgjcoDf"@[,:QUeGfLgpAb@8EK%Qmr9""Z8GN5g8Wq*]rnRMRWqZPt.WgopmJY];!&*mC"A,*.
+o)@PH!3>Yj"@e9\kl'-5!-@T/"Y"PW`9dHks*t~>
+lMgk&oL]6n\)6lXeGfMTpIYTeEK%Qmr9""ZI/-A;AWk($rnRMR_>$V+=*0\HmJY];!,M-t"D=4L
+o)@PH!5nA""Cd8#kl'-5!1`LM"]of0`9dHks*t~>
+lMgk7oRI(#]&32[eGfN/pOEEoEK%Qmr9""ZV"oNDH'628rnRMRdeJ=rG]]1imJY];!138,"FZcb
+o)@PH!7gXj"Eo[7kl'-5!4hQK"aG-Q`9dHks*t~>
+lMgkCo)Jn?[,:QUf)G`Rp&G7mH(N@Qroa:^o*G-l">c"NlM]N<!V6]p!!H)GV:P@lrr<l+!!FI+
+_!:mUrr@uJ!!GcK]BK4GrrL"?n,NXo?%/X$p&=F[J,~>
+lMgkKo1B-m\)6lXf)G`ip.>KuH(N@Qroa:^p/(QW"C-o"lM]N<!VK@d8d&XPV:P@lrr?6n8d&1U
+_!:mUrrB1l8d&U\]BK4GrrLVDmn*asI\kWgrpTl;~>
+lMgkQo7-t"]&32[f)Ga%p4*<dH(N@Qroa:^q1SQo"FH*AlM]N<!V_<DJ-9k?V:P@lrrA#KJ-::]
+_!:mUrrC%/J-:%Q]BK4GrrM)1mskR[I\kWgrpTl;~>
+lMgna'Cu2,,cokprR_&L0_YPN+E3.FiVDX9!1W``";Za"jS[g5!WH3t!!N^ILpuIBf`(sCnGi[p
+I^.i-hu<[enc/e^MS&*Ng&D*9)".G.13/Dfk54THJ,~>
+lMgna=7]#e?F&G[rR_&LD"gO*<,dZ%iVDX9!4_er"B'u^jS[g5!WIlN8d.q-LpuIBf`(sFnO`pW
+J[+/0hu<\<nk'$oMS&*Ng&D*@>OP/f=`TP8k54THJ,~>
+lMgnaM=Z6#Lq)=6rR_&LR.l+7H>n\KiVDX9!6t:h"FZ$4jS[g5!WK+qJ-CC@LpuIBf`(sIn:1Uo
+Z/GK9rrB@qJ-:%Q]BK4HrrM_MmskRbEfRfpqsOK7~>
+lMgna9(Drb'qO.Nr7V)MS+cme"(-AGcLCeqrrMj>pAb;9Wn[='rrB(q!!OutQc\^qf`(rdn,NSg
+U"&`6i;Wd2nc/e^MS&*NgA_3:..7-?&o3#peFW\-s*t~>
+lMgnaIe$)6<iXsGr7V)M\G&T"95&XCcLCeqrrMq*pIYO6Wn[='rrBn38d/=>Qc\^qf`(s"n4Eh"
+U"&`6i;Wdnnk'$oMS&*NgA_3AB(&=r:i1`[eFW\-s*t~>
+lMgnaV"0$=KsTS*r7V)Mc1c_mIrBY)cLCeqrrN"[p4*4Eg\BP'!7L^o"a>*Uam]5]rrCsGJ-:@q
+eF`aurrAGWJ-:%Q]BK4IrrM_UmskUiDh+_7oD\1XJ,~>
+l2La,nGi^uJ_0AernRMSh[oM^"Zg^a]&WVKrr@E>!!G][cgq(jrrM^!qZ$atI]1omfDbhhn,NS8
+P/Q_ciVro@nGi\]MS&*Ng]%<;..7-?"^-)9_s%!bs*t~>
+l2LaSnO`s[R+Lg'rnRMSkZ.@L"^H,.]&WVKrrAee8d&arcgq(jrrMdjqaq!%I]1omfDbi=n4Egb
+P/Q_ciVroGnO`pnMS&*Ng]%<BB(&=r9P/O8_s%!bs*t~>
+l2LapnULdpWn6_9rnRMSmtg^g"a"gF]&WVKrrBb+J-:=kcgq(jrrMkJqg\fhI]1omfDbi[n:1Xj
+P/Q_ciVroLnULacMS&*Ng]%<GPja,,IrBRt_s%!bs*t~>
+l2La_mf3Jfc0G*'hZ!WJ0_YPO*cHY/eare'rrKG/p&G4'MSA<Ph#@ES=Sr.&$ZM!7k53g2!V[H"
+!!@,Di;)@3!0cpQ"@e6[kl'<:!RDnW!!`QtFH!Zbp\sR[J,~>
+l2Lb"mn*_0cKb3(hZ!WMD"gO+;f@8deare'rrL59p.>H_N5"NRh#@ESL\saJ:2l*%k53g2!Vosg
+8csIGi;)@3!4),e"Cd5"kl'<:!Sq/O8d8^GN4.U;rpB`9~>
+l2Lb4mskP/cg(<)hZ!WPR.l+8H>eD6eare'rrLf)p4*9qNkX`Th#@ESWr.ANIW11Uk53g2!W.iE
+J-1P2i;)@3!6Ob]"EoX6kl'<:!U#R4J-L%9N4.U;rpB`9~>
+l2Lb6mJmA6WoNaLi;WiL48/^Z%qL$Wa6WWcrrL"GoDf"aWS$qDh#@ASqu?mQG*pGArn.5NL[G-F
+*1G+@rSmhW/F`]C'md=Lqq_8QP76jZ#!?p\XOZn?m/MS~>
+l2LbAmRdUg[c@#Xi;WiOFSAB3:25-Ga6WWcrrLVIoL]7$WS$qDh#@Ajr(7,pG*pGArn.5NWpWI^
+<h.D'rSmhWC%4du;1c7;qq_8QZ;U*_#$c2'XOZn?m/MS~>
+l2LbJmXPFt^Z4tai;WiRSbIX=I;XD%a6WWcrrM)5oRI'sWS$qDh#@B&r."rpG*pGArn.5N_sMsV
+SBUL$ir9"EnULajLUQ:@h>[MtL@0QrFE3,;eai\*s*t~>
+l2Le`$gmuu"_lNTq>TFS!TQ$2!!`j8GE]]"q#9LW!P8d3!!EFP_<CdOrrM^!r;Zt!I]1upf`)!$%
+.+#t8@.1IroF(ZU[J0d%rThaqYoIR!Rj:$!!`QjEJ147mJQ;MJ,~>
+l2Le`;XR-\9oRZkq>TFS!UF[u8dA('GE]]"q#9LW!RF[88d%hE_<CdOrrMdjrCR3'I]1upf`)!1
+;XI'ZD6r*nroF(Z^@+Yt;2EZhqYoIR!T81h8d8UAKVm&^r9OB5~>
+l2Le`L$jHpJu.)eq>TFS!V)WQJ-UOAGE]]"q#9LW!SrM$J-1tNkkj08!V_<HJ-9k@W7q!urrMA=
+m=5=qZekHUjSo5-mskRmSC6m&ro*kXl(@?n#'=j<VU"T,li2J~>
+l2Le`1@+uE+IqNbr;PjY!NQq/!!`j8G)iuco`"(S!KRBR!!En#dI@(irrN*mrW!*0E/M6hr7V)N
+k:#Wr"BiV(q>TOV!TOm]!!XBfeFNG6roX4^dU*.F!!`^'EeUC6lMBfGJ,~>
+l2Le`D<sju?E`G^r;PjY!Q8+78dA('G)iuco`"(S!O,;g8d&%`dI@(irrN+Lr^m>hE/M6hr7V)N
+mUkcW"F@rIq>TOV!UEkT8d8Ifg%+t;roX4^hi1=t8dA%!EeUC6lMBfGJ,~>
+l2Le`R-]>,MnJ-Cr;PjY!S*)%J-UOAG)iuco`"(S!QTf^J-:FudI@(irrN+prdY0$E/M6hr7V)N
+o9AQk"HgR`q>TOV!V)'7J-Lk8hX^L@roX4^kc]U+J-UREEeUC6lMBfGJ,~>
+kl1Wpl2UuP\*<Varp'LacU[[/#7Og[Nj@=.r9=4^gHY*+";?sNnbh5C!1s/i"YY%db4,DarrL.[
+kl:iY_WU^nkl1\H.-^d<"$1nHoD&7_rpB^entJA8!!jBKG)E<FlM:GEs*t~>
+kl1XGl:M5#_Wgdlrp'LagjJff#>SoTNj@=.r9=4^k'-5c"B;&Hnbh5C!4i)$"^#r8b4,DarrL_X
+kt2)#`TR$qkl1\OB'Mto9Q6ZMoD&7_rpB^ep:Y\:8dJ:.G)E<FlM:GEs*t~>
+kl1Xgl@9&)bN\`urp'LakG.a$#C^T7Nj@=.r9=4^m@Wfs"G<`,nbh5C!6tLn"a>-Wb4,DarrM/?
+l$ro"`om-rkl1\TPj3c)JXEt"oD&7_rpB^eps>Z"J-^L@G)E<FlM:GEs*t~>
+kl1XCkl:ni6)s5Dr;Q-a!Obes!!aBOG`T2_nbh\P!p=J-li71mAC'Z=rnm_]mfWUj<dq"$pY5]L
+k@Xq\!!O@#iUZmFli."#*9@/,%R"Wo_WLXjr;HWoqu?]q"R`jU6O<#Y#mNM1I?UtcmJ?hHs*t~>
+kl1Xckt2.RFM$i3r;Q-a!R-/g8dA7/G`T2_nbh\P!q)IQlq.FTL=5Jbrnm_]nk;YJB7?f5pY5]L
+mZUB.8d/CmiUZmFli."5?KFcc;fn80d-LK(r;HWoqu?]q"S0j;Gu*d!#u"WDI?UtcmJ?hHs*t~>
+kl1Y&l$rthRE4[er;Q-a!SaOFJ-UF>G`T2_nbh\P!qWmSm!o7jT[W<(rnm_]on%^EFFL1BpY5]L
+o<X&3J-Cb8iUZmFli."CNobctL7>Kgh!Xt7r;HWoqu?]q"SUWfTnMc_$%I&:I?UtcmJ?hHs*t~>
+kl1Xrjo>W0FLgr:r;Q]hrr_\pCE)pH#Qcc!I$D(mnbhbR"8fZ2#j;6m&p2Ojq#13Ors8Qg!"4".
+\`WhHrr`,/>6s6h"sSWKo(i7`nG`O+:Yc!S%OaPFC4#l+")V4&([1o+"#"51LnVT=nGDDKJ,~>
+kl1Y/k"5kcR)ngmr;Q]hrr_l6Q<j,T#?l%nPd]98r9XFcr6C*pkXl%ZQ.PO#rVkgV#lSs>:O%c-
+k5=*9"8pH%:ub.P@%Z0Dq>L<^rrLW$h+@lNAp0#qTV;=Y"."da>3SWc93H(ULnVT=nGDDKJ,~>
+kl1Y=k(!\rZIJF>r;Q]hrr_uI[>jg/#Bk'6Pd]98r9XFcrS4H,k^WklY1rI@rVkgV#lU?FJU*-`
+k5=*9"8prVK]@ReN4%R6q>L<^rrM&Uh1,Z`P+AVY]DT;D[B,mVl$s(iGB%k`TtfCPqre!0~>
+kl1YIirBT%89UT9f\5'6gXEg.JlXAl!!j??FG-7#hX^U5rri>TSmN2l!!`TaHEuT*qY^?lkl1qf
+P5mXuR*"grj8T;^o"KuW&DdBn"#k>)j7iEKrr2fps8E,WVIpjV!"&obApB'![*Ih,r9"$0~>
+kl1YOj%9MUHCVIgi8agt"lIY<VMAjU8dJ:+FG-7#hX^U5rri>^\rBhP8dA%-S]'adqY^?lkl1qf
+Z:\ebR*"grj8T;^p!Bdl<Sg=S9Q$98kkFrPrr2fps8E,`^lr'48d\6qCj:]'[*Ih,r9"$0~>
+kl1YSj+%YqTXW(rkj%I!lfd-M^oE[jJ-^OCFG-7#hX^U5rri>fcEE,cJ-UXk[aOL9qY^?lkl1qf
+a+/u#R*"grj8T;^ptireLu*XgJX<ajlhC8Srr2fps8E,gd^+qAJ-pdMEd3>-[*Ih,r9"$0~>
+kl1\_'E.t9!uWR>/0Y_S!!s!!E.*kMb2i9pnc&]PB0Hj[!!j;u<c39EpA=jSrs%?\HC(Yap>u;V
+mrM8Le,Tms7VT7#q#15rG?-I0[/^U:*Ck$qLmt]mi:-UBjo9i~>
+kl1\_=8ker92\kq>?=\L8dS4!EIEtNb2i9pnc&]qPBKs[8dJO<KpJCqpA=jSrs%XYOI*!"p>u;V
+oULMBe4L-THBZA>q#164Sqh/^Zq:^)@WHjPS$L2pnG<.Gs*t~>
+kl1\_M>i#0IsZKhI"$RmJ-g[HEda(Ob2i9pnc&^3Z_!!,J-_""W3j2&pA=jSrs%k@TU2\2p>u;V
+pUR2ae:7sdTX!#;q#16E];h6R["&O2F`VqdS$L2pnG<.Gs*t~>
+kPl&N""mAeHA%6?P`gl>9IUD&!"'6$DL7;9^=_iKrp]pf+OU5l[G:3HlMh(e5JXG;jSS'=!8l'%
+"_?*EpASF+!"BDf88EO)P+oD.hsU:<j8XW~>
+kPl'39O_aWHA%6?P`guRDHoui8d\="E-mM;^=_iKrp]pf@+%XL^>//QlMh(eG/CDtjSS'=!9h^#
+"c:^jpAU)Z8e"Nt@rZgJP+oD.hsU:<j8XW~>
+kPl$\JV\_rHA%6?P`h)bL4Rs,$@R&;H]+W4f^8M6nG`KMdXVG=h!Y%(rs&Fn`3-o:qrRhXn'6Fe
+UsnK"ri`\Z%=WVHG'\h)U:/8&meHb@s*t~>
+kPl74`3,;fU9VGOaMu*/ZDX4D>s'#.huF,g-W"o6NM3o0k4JT>rsjj*?rBa(=BT-B?tX@rEURrJ
+@fKg9?2dY.:..N?3&ipe]\W;\li.1go\7O?n,DGK''ag]>Ydpc<Dub#?=$uKDJsN7mrBIe@UWYO
+>#8$k7R9@(1cB-Rd-gk$=CG3<?>=:jFEI+ps'cCE>#8$b5W^SL*Z>Lni;aGn'I>e:C4(VkQ(kS%
+eDp&nrSdd,~>
+kPl7DbH@%mU9VGOaMu*/ZDX4MG@jiKi(=AN<b6B%NM3o0k4JT>rsbupKm7W^FE2PGEclVPmWo"Y
+FE;JBrG2gSC2@KoB:limpAXCX#6+8Lb1H+]jo5YVTTaqKDJjH4D>eGUF*MutH6IQUFE;JACi!m#
+AnP^cA:h&4mesVLLO+ApIsucpI=-Bgp3I3kFE;D;CM.0e>[(6.:efn@&PQ&'?YFJ-Jr>ngZGY2P
+nG)t@s*t~>
+kPl1Nd&rRrU9VGOaMu*/ZDX4TM1j`9$\*GDFFK4C\^9L2r9jRp_QohtN/NLGK7SQ&It3+;K):'+
+JqSi4L5:\^]\W;\li.1go\7O?n,DGK$hV'6S<&M^KnFr,If4`tJ:W:<K)C-7It3*%K7nuCYgDh:
+bc%;%P)bQ]M2$]RK):&uJ,OirJ)PniIslZiG^+UfMj:$B_pm`9q#01OJ,~>
+kPlCqkfgcZeDTTZn*]Q+inDbu\ZVZjE)//'k5Yr'/PpG7LR"dMdH'lprpB^rqW5\tTq7jJTq\B\
+W2cr$n?*G,XJr+pVPKrZTV%gIT:i'nh"C[3rri2dk3Vm(rt>>)hS#hZSXc7CTVA6ZVPpMrXm`D#
+XfSS%Vl$>eU7e-LrgX7dYg;b9r9MS1rh9RlV5C2lXnAh;XfSM"VPKoXS=5e0P)tZ\I<B=7?VsWm
+5X.Fh/hZiL'fnHM<FKiqJqo;KR\[.!aOT89o_SREs*t~>
+kPlCqkfgcZeDTTZn*]Q+inDbu\ZVZlJT"ppk=Q1Z=_;c'LR"dMdH'lprpB^rqW5\tTq7jJTq\B\
+W2cr$n?*G,XJr+pVPKrZTV%gIT:i'nh"C[3rri2dk3Vm(rt>>)hS#hZSXc7CTVA6ZVPpMrXm`D#
+XfSS%Vl$>eU7e-LrgX7dYg;b9r9MS1rh9RlV5C2lXnAh;XfSM"VPKoXS=5e0P)tZ\K78)gF)>`-
+ARo:X>[6u,'jtK`CN+NIJqo;KR\[.!aOT89o_SREs*t~>
+kPl@pkfgcZeDTTZn*]Q+inDbu\ZVZnN/*#IJ.6pPG'/1fQ)D:BjRW0HmJd^nji+<pSt;RJU8=`c
+WiW>lXqRq=WMcVjUnXNTT:VXHTVf?Vp&=7V"T%QKm.fZA')qU]]r.KnS=Q:FU84Z`W2cr$n#d&#
+XK/:tVP^/`TV%eSS-YakcgLc0lccR3U'7?hVPpPtor]17XJr+pUnOENR[9;&OH#-QKnP&/JUi6#
+J,OiiIK+]pHiJI(IY*?6PFA;N]?&O]m.C/RhuA3~>
+kPkecp?_#0o_SLarY#2,q"*q9hUTfb[&KXYEDekD%J'Q3!tun?:i(N2N0gEMa4TSGqYog\%fGkT
+eBlRie(*%%g=tE>mb\W4gtLK8f[eU&da6=cbK\]*qW\"_rqcEdrT!nhqX31fcd:%eeCE.&g"P39
+hX02AhV?l>g=b-0eC;pncHOJ[jRrNNoA\6Ed*pOtg"bETh]:P.g=b-0eC)[eb/V<5]XY>QY,\Cq
+U7\!GR@';*p662UR%'bEWj&tH`m<8okjS3@rVkXQJ,~>
+kPkecp?_#0o_SLarY#2,q"*q9hUTfb[&KX[J8f%%:\.0j92JYqBQJQQN0gEMa4TSGqYog\%fGkT
+eBlRie(*%%g=tE>mb\W4gtLK8f[eU&da6=cbK\]*qW\"_rqcEdrT!nhqX31fcd:%eeCE.&g"P39
+hX02AhV?l>g=b-0eC;pncHOJ[jRrNNoA\6Ed*pOtg"bETh]:P.g=b-0eC)[eb/V<5]XY>QY,\Cq
+U7\!GR@';*p662UR%'bEWj&tH`m<8okjS3@rVkXQJ,~>
+kPkecp?_#0o_SLarXf&*q"*q9hUTfb[&KX]MhZlRJ.R-UH?a[^JrH%n[`@%`o(r@Orsntsi7--#
+dF6Xsf\5*8hX985h;$`<g"=m+eC)^icHFJblh]lG"TJ8mqYfIS&GkhNda-:edaZguf\,!5gtqGU
+*o>],g=k64f$r3td*BkYdcC*#rU]$tcHt%jf\,'9oA:SEgtLH6f$r-obf[rB^V%(`Ycb"(UnXKP
+S!fY0Q1gFTQC+/7UoLZ.^;eLNhrsP%qYgELs*t~>
+k5PS_r;?Nmp\ts,r;--VlJpXIaM,![TU1[bAm%u-r([l1AT<3OL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+k5PS_r;?Nmp\ts,r;--VlJpXIaM,![TU1^lG]@S9r+Zj_Ed3(cL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+k5PS_r;?Nmp\u!-r;--VlJpXIaM,![TU1atL4b&-J,OiqI1LgZL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+%%EndData
+showpage
+%%Trailer
+end
+%%EOF
diff --git a/templates/Norwegian-logo.png b/templates/Norwegian-logo.png
new file mode 100755
index 00000000..5edcdfe5
--- /dev/null
+++ b/templates/Norwegian-logo.png
Binary files differ
diff --git a/templates/Norwegian-packing_list.html b/templates/Norwegian-packing_list.html
new file mode 100755
index 00000000..6f9be8e7
--- /dev/null
+++ b/templates/Norwegian-packing_list.html
@@ -0,0 +1,142 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr>
+ <td width=10>
+ </td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th colspan=2>
+ <h4 align=center>F Ø L G E S E D D E L</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Dato</th><td width=10> </td><td><%invdate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Nummer</th><td></td><td><%invnumber%></td></tr>
+ </tr>
+
+ <tr>
+ <td>
+ </td>
+ </tr>
+ </td>
+ </table>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Leveringsadresse:</th>
+ </tr>
+
+ <tr>
+ <td><%shiptoname%>
+ <br><%shiptoaddr1%>
+ <br><%shiptoaddr2%>
+ <br><%shiptoaddr3%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Nummer</th>
+ <th align=left><font color=ffffff>Beskrivelse</th>
+ <th><font color=ffffff>Antall</th>
+ <th>&nbsp;</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>Note</td>
+ <td><pre><%notes%></pre></td>
+<%end notes%>
+ <td align=right>
+ <%shippingpoint%>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><font size=-3>
+
+Retur skal sendes forskuddsbetalt og være forsvarlig pakket.
+<%company%> er ikke være ansvarlig for skader under
+transport.
+
+ </font>
+ </td>
+ <td width=150>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+
+
diff --git a/templates/Norwegian-packing_list.tex b/templates/Norwegian-packing_list.tex
new file mode 100755
index 00000000..e741987d
--- /dev/null
+++ b/templates/Norwegian-packing_list.tex
@@ -0,0 +1,123 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telefon & <%tel%>\\
+ Telefaks & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%invnumber%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+<%pagebreak 65 27 48%>
+\end{tabular*}
+
+\newpage
+
+\markright{<%company%>\hfill <%invnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rll@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Bin} \\
+<%end pagebreak%>
+
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{2cm}
+
+<%shiptoname%>
+
+<%shiptoaddr1%>
+
+<%shiptoaddr2%>
+
+<%shiptoaddr3%>
+
+<%shiptoaddr4%>
+
+\vspace{3.5cm}
+
+\textbf{F Ø L G E} \parbox{0.3cm}{\hfill} \textbf{S E D D E L}
+
+\hfill
+\begin{tabular}[t]{l@{\hspace{0.3cm}}l}
+ \textbf{Dato} & <%invdate%> \\
+ \textbf{Fakturanr.} & <%invnumber%> \\
+ \textbf{Kundeid.} & <%customer_id%>
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rll@{}}
+ \textbf{Nummer} & \textbf{Beskrivelse} & \textbf{Ant.} &
+ \textbf{Enhet} & \textbf{Kurv} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+\vfill
+\centerline{\textbf{Takk for handelen!}}
+
+\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+\footnotetext[1]{\tiny
+Varer som returneres
+belastes med 10\% returgebyr. Retur må forhåndsgodkjennes fra
+<%company%> før varene returneres. Retur må sendes forhåndsbetalt og
+må være forsikret. <%company%> er ikke ansvarlig for transportskader.
+}
+
+\end{document}
+
diff --git a/templates/Norwegian-pick_list.html b/templates/Norwegian-pick_list.html
new file mode 100755
index 00000000..da8a3bdf
--- /dev/null
+++ b/templates/Norwegian-pick_list.html
@@ -0,0 +1,153 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>P I C K &nbsp;&nbsp; L I S T</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th width=50% align=left><font color=ffffff>Ship To:</th>
+ <th width=50%>&nbsp;</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ </td>
+
+ <td>
+ <%if shiptocontact%>
+ <br>Attn: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=15% align=left>Invoice #</th>
+ <th width=15% align=left>Order #</th>
+ <th width=10% align=left>Date</th>
+ <th width=15% align=left nowrap>Contact</th>
+ <th width=15% align=left>Warehouse</th>
+ <th width=10% align=left>Shipping Point</th>
+ <th width=10% align=left>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%invnumber%>&nbsp;</td>
+ <td><%ordnumber%>&nbsp;</td>
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%transdate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+ <td><%warehouse%>&nbsp;</td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Pos</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qty</th>
+ <th><font color=ffffff>Ship</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Bin</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td align=right>[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</td>
+ <td><%unit%></td>
+ <td align=right><%bin%></td>
+ </tr>
+ <%end number%>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+</table>
+
diff --git a/templates/Norwegian-pick_list.tex b/templates/Norwegian-pick_list.tex
new file mode 100755
index 00000000..04953ce8
--- /dev/null
+++ b/templates/Norwegian-pick_list.tex
@@ -0,0 +1,144 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}rlXrcll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} &
+ \textbf{Qty} & \textbf{Ship} & & \textbf{Bin} \\
+
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.5\textwidth}{
+ \textbf{Ship To}
+} \hfill
+
+\vspace{0.7cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.5\textwidth}{
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+}
+\parbox[t]{.4\textwidth}{
+ <%shiptocontact%>
+
+ <%if shiptophone%>
+ Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{P I C K} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{7}{|X}|} \hline
+ \textbf{Invoice \#} & \textbf{Order \#} & \textbf{Date} & \textbf{Contact}
+ & \textbf{Warehouse} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+ <%invnumber%> & <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%transdate%>
+ <%end shippingdate%>
+ & <%employee%>
+ <%if warehouse%>
+ & <%warehouse%>
+ <%end warehouse%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrcll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} &
+ \textbf{Qty} & \textbf{Ship} & & \textbf{Bin} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> &
+ <%qty%> & [\hspace{1cm}] & <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+}
+
+\end{document}
+
diff --git a/templates/Norwegian-pos_invoice.txt b/templates/Norwegian-pos_invoice.txt
new file mode 100755
index 00000000..fecd1557
--- /dev/null
+++ b/templates/Norwegian-pos_invoice.txt
@@ -0,0 +1,50 @@
+<%company align=center width=40%>
+<%address align=center width=40%>
+
+Till: <%till align=left width=3%> Phone#: <%tel%>
+Cashier: <%employee%>
+Inv No/Date: <%invnumber%> / <%invdate%>
+Printed: <%dateprinted%>
+
+ Qty Description Amount
+<%foreach number%>
+<%qty align=right width=5%> <%description align=left width=24 offset=6%> <%linetotal align=right width=9%>
+ <%number%> @ <%sellprice%>/<%unit%>
+<%end number%>
+
+Number of items: <%rowcount%>
+<%if taxincluded%>
+ ---------------
+ Amount Due: <%invtotal align=right width=9%>
+<%end taxincluded%>
+<%if not taxincluded%>
+ ------------
+ Subtotal: <%subtotal align=right width=9%>
+<%end taxincluded%>
+<%foreach tax%>
+<%taxdescription align=right width=23%> @ <%taxrate align=right width=2%>%: <%tax align=right width=9%>
+<%end tax%>
+ Amount Due: <%invtotal align=right width=9%>
+<%foreach payment%>
+<%paymentaccount align=right width=29%>: <%payment align=right width=9%> <%currency%>
+<%end payment%>
+<%if change%>
+ Change: <%change align=right width=9%>
+<%end change%>
+<%if total%>
+ Balance Due: <%total align=right width=9%>
+<%end total%>
+<%if discount%>
+
+<%discount%> % Discount applied
+<%end discount%>
+
+ Thank you for your valued business!
+
+<%if taxincluded%>
+Taxes are included in price.
+<%end taxincluded%>
+
+
+
+
diff --git a/templates/Norwegian-purchase_order.html b/templates/Norwegian-purchase_order.html
new file mode 100755
index 00000000..3991f555
--- /dev/null
+++ b/templates/Norwegian-purchase_order.html
@@ -0,0 +1,201 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <td align=right>
+ <h4>
+ Telefon: <%tel%>
+ <br>Telefaks: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>I N N K J Ø P S &nbsp;&nbsp; O R D R E</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Ordre dato</th><td width=10>&nbsp;</td><td><%orddate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Leveres innen</th><td width=10>&nbsp;</td><td><%reqdate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Ordrenr.</th><td>&nbsp;</td><td><%ordnumber%></td></tr>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+ </td>
+ </table>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>To:</th>
+ </tr>
+
+ <tr>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+<br><%address2%>
+<%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+<%country%>
+<%end country%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+<!-- <th align=right><font color=ffffff>No.</th> -->
+ <th align=left><font color=ffffff>Nummer</th>
+ <th align=left><font color=ffffff>Beskrivelse</th>
+ <th><font color=ffffff>Ant.</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Pris</th>
+ <th><font color=ffffff>Sum</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+<!-- <td align=right><%runningnumber%>.</td>
+adjust the colspan if you include this to shift subtotal one to the right
+-->
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=6><hr noshade></td>
+ </tr>
+
+ <tr>
+ <th colspan=4 align=right>Subtotal</th>
+ <td colspan=2 align=right><%subtotal%></td>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=4 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+<%end tax%>
+
+ <tr>
+ <td colspan=2>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=2>Betalingsfirst <b><%terms%></b> dager</td>
+ <th colspan=2 align=right>Total</th>
+ <th colspan=2 align=right><%total%></th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>Note</td>
+ <td><pre><%notes%></pre></td>
+<%end notes%>
+ <td align=right>
+ Alle priser i valuta <b><%currency%></b>
+ <br><%shippingpoint%>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><font size=-3>
+
+Betaling skal skje innen <%terms%> dager fra
+fakturadato. Forsinkelsesrente påregnes med 1.5% per måned fra
+fakturadato inntil det fulle beløpet er betalt.
+
+Ved retur belastes 10% returgebyr. Retur av varer må
+forhåndsgodkjennes av <%company%> før varer sendes. Vareretur må
+sendes forhåndsbetalt og med tilstrekkelig forsikring. <%company%> er
+ikke ansvarlig for transportskader.
+
+ </font>
+ </td>
+ <td width=150>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Norwegian-purchase_order.tex b/templates/Norwegian-purchase_order.tex
new file mode 100755
index 00000000..e613f158
--- /dev/null
+++ b/templates/Norwegian-purchase_order.tex
@@ -0,0 +1,206 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telefon & <%tel%>\\
+ Telefaks & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%ordnumber%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+<%pagebreak 65 27 48%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markright{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrr@{}}
+ \textbf{Nummer} & \textbf{Beskrivelse} & \textbf{Ant.} &
+ \textbf{Enhet} & \textbf{Pris} & \textbf{Sum} \\
+ & carried forward from <%lastpage%> & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{10.5cm}{
+\textbf{Til}
+\vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+Attn: <%contact%>
+\vspace{0.3cm}
+<%end contact%>
+
+<%if vendorphone%>
+Tel: <%vendorphone%>
+<%end vendorphone%>
+
+<%if vendorfax%>
+Fax: <%vendorfax%>
+<%end vendorfax%>
+
+<%email%>
+}
+\parbox[t]{7.5cm}{
+\textbf{Send til}
+\vspace{0.3cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%if shiptoaddress2%>
+<%shiptoaddress2%>
+<%end shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%if shiptocountry%>
+<%shiptocountry%>
+<%end shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+Attn: <%shiptocontact%>
+\vspace{0.3cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{I N N K J Ø P S} \parbox{0.3cm}{\hfill} \textbf{O R D R E}
+\hfill
+\begin{tabular}[t]{l@{\hspace{0.3cm}}l}
+ \textbf{Dato} & <%orddate%> \\
+<%if reqdate%>
+ \textbf{Levers innen} & <%reqdate%> \\
+<%end reqdate%>
+ \textbf{Ordrenr.} & <%ordnumber%>
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrr@{}}
+ \textbf{Nummer} & \textbf{Beskrivelse} & \textbf{Ant.} &
+ \textbf{Enhet} & \textbf{Pris} & \textbf{Sum} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%subtotal%>} \\
+<%foreach tax%>
+ <%taxdescription%> on <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ \textbf{Total} & \textbf{<%ordtotal%>}\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ Alle priser i valuta \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+
+%\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+%\footnotetext[1]{\tiny }
+
+\end{document}
+
+
diff --git a/templates/Norwegian-receipt.tex b/templates/Norwegian-receipt.tex
new file mode 100755
index 00000000..1914cec5
--- /dev/null
+++ b/templates/Norwegian-receipt.tex
@@ -0,0 +1,78 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.4cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.0cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+
+\fontfamily{cmss}\fontsize{9pt}{9pt}\selectfont
+
+\parbox[t]{12cm}{
+ <%company%>
+
+ <%address%>}
+\hfill
+\parbox[t]{6cm}{\hfill <%source%>}
+
+\vspace*{0.6cm}
+
+<%text_amount%> \dotfill <%decimal%>/100 \makebox[0.5cm]{\hfill}
+
+\vspace{0.5cm}
+
+\hfill <%datepaid%> \makebox[2cm]{\hfill} <%amount%>
+
+\vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{1.8cm}
+
+<%notes%>
+
+\vspace{0.8cm}
+
+<%company%>
+
+\vspace{0.5cm}
+
+<%name%> \hfill <%datepaid%> \hfill <%source%>
+
+\vspace{0.5cm}
+\begin{tabularx}{\textwidth}{lXrr@{}}
+\textbf{Fakturanr.} & \textbf{Fakturadato}
+ & \textbf{Skyldig} & \textbf{Betalt} \\
+<%foreach invnumber%>
+<%invnumber%> & <%invdate%> \dotfill
+ & <%due%> & <%paid%> \\
+<%end invnumber%>
+\end{tabularx}
+
+\vfill
+
+\end{document}
diff --git a/templates/Norwegian-request_quotation.html b/templates/Norwegian-request_quotation.html
new file mode 100755
index 00000000..fa684866
--- /dev/null
+++ b/templates/Norwegian-request_quotation.html
@@ -0,0 +1,202 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <td><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58>
+ </td>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>R E Q U E S T &nbsp;&nbsp; F O R &nbsp;&nbsp; Q U O T A T I O N</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>To:</th>
+ <th align=left width=50%><font color=ffffff>Ship To:</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+<br>
+<%if contact%>
+<br>Attn: <%contact%>
+<%end contact%>
+<%if vendorphone%>
+<br>Tel: <%vendorphone%>
+<%end vendorphone%>
+<%if vendorfax%>
+<br>Fax: <%vendorfax%>
+<%end vendorfax%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddr2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+<br>
+<%if shiptocontact%>
+<br>Attn: <%shiptocontact%>
+<%end shiptocontact%>
+<%if shiptophone%>
+<br>Tel: <%shiptophone%>
+<%end shiptophone%>
+<%if shiptofax%>
+<br>Fax: <%shiptofax%>
+<%end shiptofax%>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr><td>&nbsp;</td></tr>
+
+ <tr>
+ <td colspan=2>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left>RFQ #</th>
+ <th width=17% align=left>Date</th>
+ <th width=17% align=left>Required by</th>
+ <th width=17% align=left>Contact</th>
+ <th width=17% align=left>Shipping Point</th>
+ <th width=15% align=left>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%quonumber%></td>
+ <td><%quodate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height="10"></tr>
+
+ <tr>
+ <td>Please provide price and delivery time for the following items:</td>
+ </tr>
+
+ <tr height="10"></tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+<!-- <th align=right>No.</th> -->
+ <th align=left>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th>Qt'y</th>
+ <th>&nbsp;</th>
+ <th>Delivery</th>
+ <th>Unit Price</th>
+ <th>Extended</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+<!-- <td align=right><%runningnumber%>.</td>
+other per line item variables available <%reqdate%>
+adjust the colspan if you include this to shift subtotal one to the right
+-->
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=7><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+<%if notes%>
+ <tr valign=top>
+ <td>Notes</td>
+ <td><%notes%></td>
+ </tr>
+<%end notes%>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=70%>&nbsp;</td>
+
+ <td width=30%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Norwegian-request_quotation.tex b/templates/Norwegian-request_quotation.tex
new file mode 100755
index 00000000..49f1abe7
--- /dev/null
+++ b/templates/Norwegian-request_quotation.tex
@@ -0,0 +1,175 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Extended} \\
+ & carried forward from <%lastpage%> & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.45\textwidth}{
+\textbf{To}
+\vspace{0.7cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if vendorphone%>
+Tel: <%vendorphone%>
+<%end vendorphone%>
+
+<%if vendorfax%>
+Fax: <%vendorfax%>
+<%end vendorfax%>
+
+<%email%>
+}
+\parbox[t]{.45\textwidth}{
+\textbf{Ship To}
+\vspace{0.7cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{R E Q U E S T for Q U O T A T I O N}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{RFQ \#} & \textbf{Date} & \textbf{Required by} & \textbf{Contact} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5ex]
+ \hline
+ <%quonumber%> & <%quodate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+Please provide price and delivery time for the following items:
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}lXrllrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} & &
+ \textbf{Delivery} & \textbf{Unit Price} & \textbf{Extended} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> & <%unit%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\hfill
+
+<%notes%>
+
+}
+
+\end{document}
+
diff --git a/templates/Norwegian-sales_order.html b/templates/Norwegian-sales_order.html
new file mode 100755
index 00000000..9a6e8318
--- /dev/null
+++ b/templates/Norwegian-sales_order.html
@@ -0,0 +1,220 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <td align=right>
+ <h4>
+ Telefon: <%tel%>
+ <br>Telefaks: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>S A L G S &nbsp;&nbsp; O R D R E</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Ordre dato</th><td width=10>&nbsp;</td><td><%orddate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Leveringsdato</th><td width=10>&nbsp;</td><td><%reqdate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Ordrenr.</th><td>&nbsp;</td><td><%ordnumber%></td></tr>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+ </td>
+ </table>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>To:</th>
+ <th align=left><font color=ffffff>Ship To:</th>
+ </tr>
+
+ <tr>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+<br><%address2%>
+<%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+<%country%>
+<%end country%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+<br><%shiptoaddress2%>
+<%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+<%shiptocountry%>
+<%end shiptocountry%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+<!-- <th align=right><font color=ffffff>No.</th> -->
+ <th align=left><font color=ffffff>Nummer</th>
+ <th align=left><font color=ffffff>Beskrivelse</th>
+ <th><font color=ffffff>Ant.</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Pris</th>
+ <th><font color=ffffff>Rabatt</th>
+ <th><font color=ffffff>Sum</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+<!-- <td align=right><%runningnumber%>.</td>
+adjust the colspan if you include this to shift subtotal one to the right
+-->
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discount%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=7><hr noshade></td>
+ </tr>
+
+ <tr>
+<%if taxincluded%>
+ <th colspan=5 align=right>Total</th>
+ <td colspan=2 align=right><%ordtotal%></td>
+<%end taxincluded%>
+
+<%if not taxincluded%>
+ <th colspan=5 align=right>Subtotal</th>
+ <td colspan=2 align=right><%subtotal%></td>
+<%end taxincluded%>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=5 align=right><%taxdescription%> on <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+<%end tax%>
+
+ <tr>
+ <td colspan=2>&nbsp;</td>
+ <td colspan=5><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=3>Betalingsfrist <b><%terms%></b> dager</td>
+ <th colspan=2 align=right>Total</th>
+ <th colspan=2 align=right><%ordtotal%></th>
+ </tr>
+<%if taxincluded%>
+ <tr>
+ <td colspan=3>Mva er inkludert i Total</td>
+ </tr>
+<%end taxincluded%>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>Note</td>
+ <td><pre><%notes%></pre></td>
+<%end notes%>
+ <td align=right>
+ Alle priser i valuta <b><%currency%></b>
+ <br><%shippingpoint%>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><font size=-3>
+Ved spesialtilpassede ordre (påkrevd av kunden), skreddersydde produkter, utvidede eller
+oppgraderte produkter belastes et 10% avbestillingsgebyr. Varer som
+ikke kan returneres er merket over.
+ </font>
+ </td>
+ <td width=150>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Norwegian-sales_order.tex b/templates/Norwegian-sales_order.tex
new file mode 100755
index 00000000..e43fe66a
--- /dev/null
+++ b/templates/Norwegian-sales_order.tex
@@ -0,0 +1,150 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telefon & <%tel%>\\
+ Telefaks & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%ordnumber%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+<%pagebreak 65 27 48%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markright{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Nummer} & \textbf{Beskrivelse} & \textbf{Ant.} &
+ \textbf{Enhet} & \textbf{Pris} & \textbf{Rabatt} & \textbf{Sum} \\
+ & carried forward from <%lastpage%> & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{2cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{3.5cm}
+
+\textbf{S A L G S} \parbox{0.3cm}{\hfill} \textbf{O R D R E}
+\hfill
+\begin{tabular}[t]{l@{\hspace{0.3cm}}l}
+ \textbf{Ordre dato} & <%orddate%> \\
+<%if reqdate%>
+ \textbf{Leveres innen} & <%reqdate%> \\
+<%end reqdate%>
+ \textbf{Ordrenr.} & <%ordnumber%>
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Nummer} & \textbf{Beskrivelse} & \textbf{Ant.} &
+ \textbf{Enhet} & \textbf{Pris} & \textbf{Rabatt} & \textbf{Sum} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%discount%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%subtotal%>} \\
+<%foreach tax%>
+ <%taxdescription%> on <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ \textbf{Total} & \textbf{<%ordtotal%>}\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ Alle priser i valuta \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+
+\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+\footnotetext[1]{\tiny
+Ved spesialtilpassede ordre (påkrevd av kunden), skreddersydde produkter, utvidede eller
+oppgraderte produkter belastes et 10\% avbestillingsgebyr. Varer som
+ikke kan returneres er merket over.
+}
+
+\end{document}
+
diff --git a/templates/Norwegian-sales_quotation.html b/templates/Norwegian-sales_quotation.html
new file mode 100755
index 00000000..0abf5fc7
--- /dev/null
+++ b/templates/Norwegian-sales_quotation.html
@@ -0,0 +1,225 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr valign=top>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+<tr><td colspan=3>&nbsp;</td></tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>Q U O T A T I O N</h4>
+ </th>
+ </tr>
+
+ </table>
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td>
+ <table width=100%>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+
+ <br>
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr><td>&nbsp;</td></tr>
+
+ <tr>
+ <td colspan=2>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Number</th>
+ <th width=17% align=left>Date</th>
+ <th width=17% align=left>Valid until</th>
+ <th width=17% align=left nowrap>Contact</th>
+ <th width=17% align=left nowrap>Shipping Point</th>
+ <th width=15% align=left nowrap>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%quonumber%></td>
+ <td><%quodate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>No.</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qt'y</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Price</th>
+ <th><font color=ffffff>Disc %</th>
+ <th><font color=ffffff>Amount</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%></td>
+
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discountrate%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=8><hr noshade></td>
+ </tr>
+
+ <tr>
+<%if taxincluded%>
+ <th colspan=6 align=right>Total</th>
+ <td colspan=2 align=right><%invtotal%></td>
+<%end taxincluded%>
+
+<%if not taxincluded%>
+ <th colspan=6 align=right>Subtotal</th>
+ <td colspan=2 align=right><%subtotal%></td>
+<%end taxincluded%>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=6 align=right><%taxdescription%> on <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+<%end tax%>
+
+ <tr>
+ <td colspan=4>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=4>&nbsp;
+<%if terms%>
+ Terms Net <b><%terms%></b> days
+<%end terms%>
+ </td>
+ <th colspan=2 align=right>Total</th>
+ <th colspan=2 align=right><%quototal%></th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>Notes</td>
+ <td><%notes%></td>
+<%end notes%>
+ <td align=right>
+ All prices in <b><%currency%></b> Funds
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=60%><font size=-3>
+ Special order items are subject to a 10% cancellation fee.
+ </font>
+ </td>
+ <td width=40%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Norwegian-sales_quotation.tex b/templates/Norwegian-sales_quotation.tex
new file mode 100755
index 00000000..25792c6b
--- /dev/null
+++ b/templates/Norwegian-sales_quotation.tex
@@ -0,0 +1,157 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 48%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%quonumber%>}{<%company%>\hfill <%quonumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+ & carried forward from <%lastpage%> & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.45\textwidth}{
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%contact%>
+
+\vspace{0.2cm}
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+
+\vspace{1cm}
+
+\textbf{Q U O T A T I O N}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Quotation \#} & \textbf{Date} & \textbf{Valid until} & \textbf{Contact} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5ex]
+ \hline
+ <%quonumber%> & <%quodate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%discountrate%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ Subtotal & <%subtotal%> \\
+<%foreach tax%>
+ <%taxdescription%> on <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ Total & <%quototal%>\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ All prices in \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%notes%>
+
+}
+
+\vfill
+
+\end{document}
+
+
diff --git a/templates/Norwegian-statement.html b/templates/Norwegian-statement.html
new file mode 100755
index 00000000..a3ffbcfd
--- /dev/null
+++ b/templates/Norwegian-statement.html
@@ -0,0 +1,120 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+ <td align=right>
+ <h4>
+ Telefon: <%tel%>
+ <br>Telefaks: <%fax%>
+ </h4>
+ </td>
+ </tr>
+ <tr>
+ <th colspan=3><h4>O V E R S I K T</h4></th>
+ </tr>
+ <tr>
+ <td colspan=3 align=right><%statementdate%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+<br><%address2%>
+<%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+<%country%>
+<%end country%>
+ <br>
+<%if customerphone%>
+ <br>Telefon: <%customerphone%>
+<%end customerphone%>
+<%if customerfax%>
+ <br>Telefaks: <%customerfax%>
+<%end customerfax%>
+<%if email%>
+ <br><%email%>
+<%end email%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr height=10></tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr>
+ <th align=left>Faktura #</th>
+ <th width=15%>Dato</th>
+ <th width=15%>Betalingsfrist</th>
+ <th width=10%>Nåværende</th>
+ <th width=10%>30</th>
+ <th width=10%>60</th>
+ <th width=10%>90+</th>
+ </tr>
+<%foreach invnumber%>
+ <tr>
+ <td><%invnumber%></td>
+ <td><%invdate%></td>
+ <td><%duedate%></td>
+ <td align=right><%c0%></td>
+ <td align=right><%c30%></td>
+ <td align=right><%c60%></td>
+ <td align=right><%c90%></td>
+ </tr>
+<%end invnumber%>
+ <tr>
+ <td colspan=7><hr size=1></td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <th align=right><%c0total%></td>
+ <th align=right><%c30total%></td>
+ <th align=right><%c60total%></td>
+ <th align=right><%c90total%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr height=10></tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td align=right>
+ <table width=50%>
+ <tr>
+ <th>Totalt utestående</th>
+ <th align=right><%total%></th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td><hr noshade></td>
+ </tr>
+ <tr height=20></tr>
+</table>
+
diff --git a/templates/Norwegian-statement.tex b/templates/Norwegian-statement.tex
new file mode 100755
index 00000000..b3f35648
--- /dev/null
+++ b/templates/Norwegian-statement.tex
@@ -0,0 +1,139 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rrr@{}}
+ Tel. & <%tel%>\\
+ Faks & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%statementdate%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+<%pagebreak 65 27 48%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markright{<%company%>\hfill <%statementdate%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}l@{\extracolsep\fill}ccrrrr@{}}
+ \textbf{Invoice \#} & \textbf{Date} & \textbf{Due} &
+ \textbf{Current} & \textbf{30} & \textbf{60} & \textbf{90+} \\
+ carried forward from <%lastpage%> & & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{1.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{10.5cm}{
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+}
+\parbox[t]{7.5cm}{
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{O V E R S I K T} \hfill
+
+\hfill <%statementdate%>
+
+\vspace{2cm}
+
+\begin{tabular*}{\textwidth}{@{}l@{\extracolsep\fill}ccrrrr@{}}
+ \textbf{Faktura \#} & \textbf{Dato} & \textbf{Frist} &
+ \textbf{Skyldig} & \textbf{30} & \textbf{60} & \textbf{90+} \\
+<%foreach invnumber%>
+ <%invnumber%> & <%invdate%> & <%duedate%> &
+ <%c0%> & <%c30%> & <%c60%> & <%c90%> \\
+<%end invnumber%>
+\textbf{Subtotal} & & & <%c0total%> & <%c30total%> & <%c60total%> & <%c90total%>
+\end{tabular*}
+\rule{\textwidth}{1pt}
+
+\vspace{1cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Totalt skyldig} & <%total%>
+\end{tabularx}
+
+\vfill
+
+\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+\footnotetext[1]{\tiny
+}
+
+\end{document}
+
diff --git a/templates/Norwegian-timecard.html b/templates/Norwegian-timecard.html
new file mode 100755
index 00000000..361b8254
--- /dev/null
+++ b/templates/Norwegian-timecard.html
@@ -0,0 +1,146 @@
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=sql-ledger.png border=0 width=84 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>T I M E &nbsp;&nbsp; C A R D</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=left>Employee</th>
+ <td><%employee%></td>
+ </tr>
+ <tr>
+ <th align=left>ID</th>
+ <td><%employee_id%></td>
+ </tr>
+ </table>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Card ID</th>
+ <td><%id%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Date Worked</th>
+ <td><%transdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Time In</th>
+ <td><%checkedin%></td>
+ </tr>
+ <tr>
+ <th align=left>Time Out</th>
+ <td><%checkedout%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Hours Worked</th>
+ <td><%qty%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=bottom>
+ <td>
+ <table>
+ <tr valign=top>
+ <th align=left>Project/Job #</th>
+ <td><%projectnumber%></td>
+ </tr>
+ <tr>
+ <th align=left>Description</th>
+ <td><%projectdescription%></td>
+ </tr>
+ <tr valign=top>
+ <th align=left>Labor/Service Code</th>
+ <td><%partnumber%></td>
+ </tr>
+ <tr>
+ <th align=left>Description</th>
+ <td><%description%></td>
+ </tr>
+ </table>
+ </td>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Unit Rate</th>
+ <td><%sellprice%></td>
+ </tr>
+ <tr>
+ <th align=right>Total</th>
+ <td><%total%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+<%if notes%>
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%notes%>
+ </td>
+ </tr>
+<%end notes%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Norwegian-timecard.tex b/templates/Norwegian-timecard.tex
new file mode 100755
index 00000000..49a30c54
--- /dev/null
+++ b/templates/Norwegian-timecard.tex
@@ -0,0 +1,71 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-1cm,left=2cm,right=1cm]{geometry}
+\usepackage{graphicx}
+\setlength{\parindent}{0pt}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Tel: & <%tel%>\\
+ Fax: & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+\centerline{\textbf{T I M E}\hspace{0.5cm}\textbf{C A R D}}
+
+\vspace*{0.5cm}
+
+\begin{tabular}[t]{ll}
+ \textbf{Employee} & <%employee%> \\
+ \textbf{ID} & <%employee_id%> \\
+\end{tabular}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Card ID} & <%id%> \\
+ \textbf{Date Worked} & <%transdate%> \\
+ \textbf{Time In} & <%checkedin%> \\
+ \textbf{Time Out} & <%checkedout%> \\
+ \textbf{Hours Worked} & <%qty%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular}[b]{ll}
+ \textbf{Project/Job \#} & <%projectnumber%> \\
+ \textbf{Description} & <%projectdescription%> \\
+ \textbf{Labor/Service Code} & <%partnumber%> \\
+ \textbf{Description} & <%description%> \\
+\end{tabular}
+\hfill
+\begin{tabular}[b]{lr}
+ \textbf{Unit Rate} & <%sellprice%> \\
+ \textbf{Total} & <%total%> \\
+\end{tabular}
+
+\vspace{0.3cm}
+
+<%notes%>
+
+\end{document}
+
+
diff --git a/templates/Norwegian-work_order.html b/templates/Norwegian-work_order.html
new file mode 100755
index 00000000..88d212af
--- /dev/null
+++ b/templates/Norwegian-work_order.html
@@ -0,0 +1,174 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=bottom>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>W O R K &nbsp;&nbsp; O R D E R</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>To</th>
+ <th align=left width=50%><font color=ffffff>Ship To</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%>
+ <br><%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%>
+ <br><%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ <br>
+ <%if shiptocontact%>
+ <br><%shiptocontact%>
+ <%end shiptocontact%>
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+ <%if shiptoemail%>
+ <br><%shiptoemail%>
+ <%end shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Order Number</th>
+ <th width=17% align=left>Order Date</th>
+ <th width=17% align=left>Required by</th>
+ <th width=17% align=left nowrap>Salesperson</th>
+ <th width=17% align=left nowrap>Shipping Point</th>
+ <th width=15% align=left nowrap>Ship Via</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%></td>
+ <td><%orddate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>No.</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qt'y</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Serial No.</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%>.</td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td><%serialnumber%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <td colspan=6><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <%if notes%>
+ <td><%notes%></td>
+ <%end notes%>
+ </tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Norwegian-work_order.tex b/templates/Norwegian-work_order.tex
new file mode 100755
index 00000000..9b2f6f95
--- /dev/null
+++ b/templates/Norwegian-work_order.tex
@@ -0,0 +1,177 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}rlXrll@{}}
+ \textbf{No.} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ & \textbf{Serial Number} \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.45\textwidth}{
+\textbf{To}
+\vspace{0.7cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\parbox[t]{.45\textwidth}{
+\textbf{Ship To}
+\vspace{0.7cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{W O R K} \parbox{0.3cm}{\hfill} \textbf{O R D E R}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Order Date} & \textbf{Required by} & \textbf{Salesperson} & \textbf{Shipping Point} & \textbf{Ship Via} \\ [0.5em]
+ \hline
+ <%ordnumber%> & <%orddate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrll@{}}
+ \textbf{No.} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ & \textbf{Serial Number} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%serialnumber%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+\vfill
+
+\vspace{1cm}
+
+\rule{\textwidth}{0.5pt}
+
+\end{document}
+
+
+
+
+
+
diff --git a/templates/Russian-ap_transaction.html b/templates/Russian-ap_transaction.html
new file mode 100755
index 00000000..b66453fe
--- /dev/null
+++ b/templates/Russian-ap_transaction.html
@@ -0,0 +1,236 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th></th>
+
+ <td align=right>
+ <h4>
+ ôÅÌ: <%tel%>
+ <br>æÁËÓ: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>ðòï÷ïäëá úáëõðëé</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>óÞÅÔ-ÆÁËÔÕÒÁ No</th>
+ <td><%invnumber%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>äÁÔÁ</th>
+ <td><%invdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>ïÐÌÁÔÁ</th>
+ <td><%duedate%></td>
+ </tr>
+ <tr>
+ <th align=left>úÁËÁÚ No</th>
+ <td><%ordnumber%>&nbsp;</td>
+ </tr>
+ <tr>
+ <th align=left nowrap>ðÒÏÄÁ×ÅÃ</th>
+ <td><%employee%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=50%>
+ <table>
+ <%foreach account%>
+ <tr valign=top>
+ <td><%accno%></td>
+ <td><%account%></td>
+ <td align=right><%amount%></td>
+ <td><%projectnumber%></td>
+ </tr>
+ <%end account%>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=2 align=right>éÔÏÇÏ</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>÷ÓÅÇÏ</th>
+ <td align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=2 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>éÔÏÇÏ</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ </table>
+ </td>
+ <td width=50%>
+ <%notes%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <tr>
+ <td>&nbsp;</td>
+
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%text_amount%>
+ </td>
+ </tr>
+
+ <%if paid%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <tr>
+ <th>ïÐÌÁÔÙ</th>
+ </tr>
+
+ <tr>
+ <td>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=left>äÁÔÁ</th>
+ <th align=left>óÞÅÔ</th>
+ <th align=left>éÓÔÏÞÎÉË</th>
+ <th align=left>ëÏÍÍÅÎÔÁÒÉÊ</th>
+ <th align=left>óÕÍÍÁ</th>
+ </tr>
+ <%end paid%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td><%paymentmemo%></td>
+ <td><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid%>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <%end paid%>
+
+ <tr height=10></tr>
+
+ <%foreach tax%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <th colspan=9 align=left><font size=-2><%taxdescription%> òÅÇÉÓÔÒÁÃÉÑ <%taxnumber%></th>
+ </tr>
+ <%end tax%>
+
+ <%if taxincluded%>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <th colspan=3 align=left><font size=-2>ãÅÎÁ Ó ÕÞÅÔÏÍ ÎÁÌÏÇÏ×.</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
diff --git a/templates/Russian-ap_transaction.tex b/templates/Russian-ap_transaction.tex
new file mode 100755
index 00000000..8bfd9f79
--- /dev/null
+++ b/templates/Russian-ap_transaction.tex
@@ -0,0 +1,125 @@
+\documentclass[10pt,letterpaper,oneside,onecolumn]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+\centerline{\textbf{A P} \hspace{0.3cm} \textbf{T R A N S A C T I O N}}
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+<%end contact%>
+
+\vspace{0.2cm}
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Invoice \#} & <%invnumber%> \\
+ \textbf{Date} & <%invdate%> \\
+ \textbf{Due} & <%duedate%> \\
+ \textbf{Order \#} & <%ordnumber%> \\
+ \textbf{Employee} & <%employee%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabularx}{.5\textwidth}[t]{@{}llrl@{}}
+<%foreach amount%>
+ <%accno%> & <%account%> & <%amount%> & <%projectnumber%> \\
+<%end amount%>
+
+ \multicolumn{2}{r}{\textbf{Subtotal}} & <%subtotal%> & \\
+<%foreach tax%>
+ \multicolumn{2}{r}{\textbf{<%taxdescription%> @ <%taxrate%> \%}} & <%tax%> & \\
+<%end tax%>
+
+ \multicolumn{2}{r}{\textbf{Total}} & <%invtotal%> & \\
+
+\end{tabularx}
+<%notes%>
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100 <%currency%>
+
+\vspace{0.3cm}
+
+<%if paid%>
+\begin{tabular}{@{}llllr@{}}
+ \multicolumn{5}{c}{\textbf{Payments}} \\
+ \hline
+ \textbf{Date} & & \textbf{Source} & \textbf{Memo} & \textbf{Amount} \\
+<%end paid%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%paymentmemo%> & <%payment%> \\
+<%end payment%>
+<%if paid%>
+\end{tabular}
+<%end paid%>
+
+\end{document}
+
diff --git a/templates/Russian-ar_transaction.html b/templates/Russian-ar_transaction.html
new file mode 100755
index 00000000..2b3ed10a
--- /dev/null
+++ b/templates/Russian-ar_transaction.html
@@ -0,0 +1,241 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th></th>
+
+ <td align=right>
+ <h4>
+ ôÅÌ: <%tel%>
+ <br>æÁËÓ: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>ðòï÷ïäëá ðòïäáö</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>óÞÅÔ-ÆÁËÔÕÒÁ No</th>
+ <td><%invnumber%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>äÁÔÁ</th>
+ <td><%invdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>ïÐÌÁÔÁ</th>
+ <td><%duedate%></td>
+ </tr>
+ <tr>
+ <th align=left>úÁËÁÚ No</th>
+ <td><%ordnumber%>&nbsp;</td>
+ </tr>
+ <tr>
+ <th align=left nowrap>ðÒÏÄÁ×ÅÃ</th>
+ <td><%employee%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=50%>
+ <table>
+ <%foreach account%>
+ <tr valign=top>
+ <td><%accno%></td>
+ <td><%account%></td>
+ <td align=right><%amount%></td>
+ <td><%projectnumber%></td>
+ </tr>
+ <%end account%>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=2 align=right>éÔÏÇÏ</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>÷ÓÅÇÏ</th>
+ <td align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=2 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>éÔÏÇÏ</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ </table>
+ </td>
+ <td width=50%>
+ <%notes%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <tr>
+ <td>&nbsp;</td>
+
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%text_amount%>
+ </td>
+ </tr>
+
+ <%if paid%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <tr>
+ <th>ïÐÌÁÔÙ</th>
+ </tr>
+
+ <tr>
+ <td>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=left>äÁÔÁ</th>
+ <th align=left>óÞÅÔ</th>
+ <th align=left>éÓÔÏÞÎÉË</th>
+ <th align=left>ëÏÍÍÅÎÔÁÒÉÊ</th>
+ <th align=left>óÕÍÍÁ</th>
+ </tr>
+ <%end paid%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td><%paymentmemo%></td>
+ <td><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid%>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <%end paid%>
+
+ <tr height=10></tr>
+
+ <%foreach tax%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <th colspan=9 align=left><font size=-2><%taxdescription%> òÅÇÉÓÔÒÁÃÉÑ <%taxnumber%></th>
+ </tr>
+ <%end tax%>
+
+ <%if taxincluded%>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <th colspan=3 align=left><font size=-2>ãÅÎÁ Ó ÕÞÅÔÏÍ ÎÁÌÏÇÏ×.</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
+
+
+
+
+
diff --git a/templates/Russian-ar_transaction.tex b/templates/Russian-ar_transaction.tex
new file mode 100755
index 00000000..654d2b95
--- /dev/null
+++ b/templates/Russian-ar_transaction.tex
@@ -0,0 +1,131 @@
+\documentclass[10pt,letterpaper,oneside,onecolumn]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+\centerline{\textbf{A R} \hspace{0.3cm} \textbf{T R A N S A C T I O N}}
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+<%end contact%>
+
+\vspace{0.2cm}
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Invoice \#} & <%invnumber%> \\
+ \textbf{Date} & <%invdate%> \\
+ \textbf{Due} & <%duedate%> \\
+ \textbf{Order \#} & <%ordnumber%> \\
+ \textbf{Employee} & <%employee%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabularx}{.5\textwidth}[t]{@{}llrl@{}}
+<%foreach amount%>
+ <%accno%> & <%account%> & <%amount%> & <%projectnumber%> \\
+<%end amount%>
+
+ \multicolumn{2}{r}{\textbf{Subtotal}} & <%subtotal%> & \\
+<%foreach tax%>
+ \multicolumn{2}{r}{\textbf{<%taxdescription%> @ <%taxrate%> \%}} & <%tax%> & \\
+<%end tax%>
+
+ \multicolumn{2}{r}{\textbf{Total}} & <%invtotal%> & \\
+
+\end{tabularx}
+<%notes%>
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100 <%currency%>
+
+\vspace{0.3cm}
+
+<%if paid%>
+\begin{tabular}{@{}llllr@{}}
+ \multicolumn{5}{c}{\textbf{Payments}} \\
+ \hline
+ \textbf{Date} & & \textbf{Source} & \textbf{Memo} & \textbf{Amount} \\
+<%end paid%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%paymentmemo%> & <%payment%> \\
+<%end payment%>
+<%if paid%>
+\end{tabular}
+<%end paid%>
+
+\vspace{0.5cm}
+
+<%foreach tax%>
+\textbf{\small{<%taxdescription%> Registration <%taxnumber%>}} \\
+<%end tax%>
+
+\end{document}
+
diff --git a/templates/Russian-balance_sheet.html b/templates/Russian-balance_sheet.html
new file mode 100755
index 00000000..d2526016
--- /dev/null
+++ b/templates/Russian-balance_sheet.html
@@ -0,0 +1,101 @@
+
+<body>
+
+<h2 align=center>
+<%company%>
+<br><%address%>
+
+<p>âáìáîó
+<br>as at <%this_period%>
+</h2>
+
+<%if department%>
+<h4>ïÔÄÅÌ: <%department%></h4>
+<%end department%>
+
+<table border=0>
+<tr>
+ <th align=left width=400 colspan=2>áëôé÷ù<br><hr align=left width=250 size=5 noshade></th>
+ <th><%this_period%></th>
+ <th><%last_period%></th>
+</tr>
+
+<%foreach asset_account%>
+<tr>
+ <td> </td>
+ <td><%asset_account%></td>
+ <td align=right><%asset_this_period%></td>
+ <td align=right><%asset_last_period%></td>
+</tr>
+<%end asset_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>÷óåçï áëôé÷ù</th>
+ <td align=right><%total_assets_this_period%><hr noshade size=2></td>
+ <td align=right><%total_assets_last_period%><hr noshade size=2></td>
+</tr>
+
+<tr>
+ <th align=left colspan=4>ðáóóé÷ù<b><hr align=left width=250 size=5 noshade></th>
+</tr>
+
+<%foreach liability_account%>
+<tr>
+ <td></td>
+ <td><%liability_account%></td>
+ <td align=right><%liability_this_period%></td>
+ <td align=right><%liability_last_period%></td>
+</tr>
+<%end liability_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td></td>
+ <th align=left>÷óåçï ðáóóé÷ù</th>
+ <td align=right><%total_liabilities_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_liabilities_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr>
+ <th align=left colspan=4>ëáðéôáì<br><hr align=left width=250 size=5 noshade></th>
+</tr>
+
+<%foreach equity_account%>
+<tr>
+ <td></td>
+ <td><%equity_account%></td>
+ <td align=right><%equity_this_period%></td>
+ <td align=right><%equity_last_period%></td>
+</tr>
+<%end equity_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td></td>
+ <th align=left>÷óåçï ëáðéôáì</th>
+ <td align=right><%total_equity_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_equity_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>÷óåçï ðáóóé÷ù é ëáðéôáì</th>
+ <td align=right><%total_this_period%><br><hr noshade size=2></td>
+ <td align=right><%total_last_period%><br><hr noshade size=2></td>
+</tr>
+</table>
diff --git a/templates/Russian-bin_list.html b/templates/Russian-bin_list.html
new file mode 100755
index 00000000..d7b4f76a
--- /dev/null
+++ b/templates/Russian-bin_list.html
@@ -0,0 +1,192 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th></th>
+
+ <th align=right>
+ <h4>
+ ôÅÌ: <%tel%>
+ <br>æÁËÓ: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>óðéóïë &nbsp;&nbsp;" B I N"</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% cellspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>ïÔ</th>
+ <th align=left width=50%><font color=ffffff>äÏÓÔÁ×ËÁ ×</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+<br><%address2%>
+<%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+<%country%>
+<%end country%>
+ <br>
+
+ <%if contact%>
+ <br>ëÏÎÔÁËÔ: <%contact%>
+ <%end contact%>
+
+ <%if vendorphone%>
+ <br>ôÅÌ: <%vendorphone%>
+ <%end vendorphone%>
+
+ <%if vendorfax%>
+ <br>æÁËÓ: <%vendorfax%>
+ <%end vendorfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+<br><%shiptoaddress2%>
+<%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+<%shiptocountry%>
+<%end shiptocountry%>
+
+ <br>
+ <%if shiptocontact%>
+ <br>ëÏÎÔÁËÔ: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>ôÅÌ: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>æÁËÓ: <%shiptofax%>
+ <%end shiptofax%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>úÁËÁÚ No</th>
+ <th width=17% align=left nowrap>äÁÔÁ ÄÏÓÔÁ×ËÉ</th>
+ <th width=17% align=left nowrap>äÁÔÁ ÚÁËÁÚÁ</th>
+ <th width=17% align=left nowrap>ëÏÎÔÁËÔ</th>
+ <%if warehouse%>
+ <th width=17% align=left nowrap>óËÌÁÄ</th>
+ <%end warehouse%>
+ <th width=17% align=left>äÏÓÔÁ×ËÁ ×</th>
+ <th width=15% align=left>äÏÓÔÁ×ËÁ ÞÅÒÅÚ</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%>&nbsp;</td>
+
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%orddate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+
+ <%if warehouse%>
+ <td><%warehouse%></td>
+ <%end warehouse%>
+
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>ðÏÚ.</th>
+ <th align=left><font color=ffffff>ëÏÄ</th>
+ <th align=left><font color=ffffff>ïÐÉÓÁÎÉÅ</th>
+ <th><font color=ffffff>óÅÒÉÊÎÙÊ No</th>
+ <th><font color=ffffff>äÁÔÁ ÐÏÌÕÞÅÎÉÑ</th>
+ <th><font color=ffffff>ë-×Ï</th>
+ <th><font color=ffffff>"Recd"</th>
+ <th><font color=ffffff>åÄ. ÉÚÍ.</th>
+ <th><font color=ffffff>"Bin"</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%></td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td><%serialnumber%></td>
+ <td><%deliverydate%></td>
+ <td align=right><%qty%></td>
+ <td align=right><%ship%></td>
+ <td><%unit%></td>
+ <td><%bin%></td>
+ </tr>
+ <%end number%>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+</table>
+
+
+
diff --git a/templates/Russian-bin_list.tex b/templates/Russian-bin_list.tex
new file mode 100755
index 00000000..7284c845
--- /dev/null
+++ b/templates/Russian-bin_list.tex
@@ -0,0 +1,147 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Recd} & & \textbf{Bin} \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.5\textwidth}{
+\textbf{From}
+\vspace{0.7cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+}
+\parbox[t]{.4\textwidth}{
+\textbf{Ship To}
+\vspace{0.7cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%if shiptoaddress2%>
+<%shiptoaddress2%>
+<%end shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%if shiptocountry%>
+<%shiptocountry%>
+<%end shiptocountry%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{B I N} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Date} & \textbf{Contact}
+ <%if warehouse%>
+ & \textbf{Warehouse}
+ <%end warehouse%>
+ & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+
+ <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%orddate%>
+ <%end shippingdate%>
+ & <%employee%>
+ <%if warehouse%>
+ & <%warehouse%>
+ <%end warehouse%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Recd} & & \textbf{Bin} \\
+
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%serialnumber%> &
+ <%deliverydate%> & <%qty%> & <%ship%> & <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabularx}
+
+
+\rule{\textwidth}{2pt}
+
+\end{document}
+
diff --git a/templates/Russian-check.tex b/templates/Russian-check.tex
new file mode 100755
index 00000000..7f25a218
--- /dev/null
+++ b/templates/Russian-check.tex
@@ -0,0 +1,78 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.4cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.0cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+
+\fontfamily{cmss}\fontsize{9pt}{9pt}\selectfont
+
+\parbox[t]{12cm}{
+ <%company%>
+
+ <%address%>}
+\hfill
+\parbox[t]{6cm}{\hfill <%source%>}
+
+\vspace*{0.6cm}
+
+<%text_amount%> \dotfill <%decimal%>/100 \makebox[0.5cm]{\hfill}
+
+\vspace{0.5cm}
+
+\hfill <%datepaid%> \makebox[2cm]{\hfill} <%amount%>
+
+\vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{1.8cm}
+
+<%memo%>
+
+\vspace{0.8cm}
+
+<%company%>
+
+\vspace{0.5cm}
+
+<%name%> \hfill <%datepaid%> \hfill <%source%>
+
+\vspace{0.5cm}
+\begin{tabularx}{\textwidth}{lXrr@{}}
+\textbf{Invoice No.} & \textbf{Invoice Date}
+ & \textbf{Due} & \textbf{Applied} \\
+<%foreach invnumber%>
+<%invnumber%> & <%invdate%> \dotfill
+ & <%due%> & <%paid%> \\
+<%end invnumber%>
+\end{tabularx}
+
+\vspace{1cm}
+
+<%memo%>
+
+\vfill
+
+\end{document}
diff --git a/templates/Russian-income_statement.html b/templates/Russian-income_statement.html
new file mode 100755
index 00000000..0438d9af
--- /dev/null
+++ b/templates/Russian-income_statement.html
@@ -0,0 +1,84 @@
+
+<body>
+
+<h2 align=center>
+<%company%>
+<br><%address%>
+
+<p>ïÔÞÅÔ Ï ÐÒÉÂÙÌÉ/ÕÂÙÔËÁÈ
+<br><%period%>
+</h2>
+
+<%if department%>
+<h4>ïÔÄÅÌ: <%department%></h4>
+<%end department%>
+
+<%if projectnumber%>
+<h4>ðÒÏÅËÔ No: <%projectnumber%></h4>
+<%end projectnumber%>
+
+<table width=100% border=0>
+<tr>
+ <th width=400 align=left colspan=2>ðòéèïä<br><hr width=300 size=5 align=left noshade></th>
+ <th><%this_period%></th>
+ <th><%last_period%></th>
+</tr>
+
+<%foreach income_account%>
+<tr>
+ <td width=4> </td>
+ <td><%income_account%></td>
+ <td align=right><%income_this_period%></td>
+ <td align=right><%income_last_period%></td>
+</tr>
+<%end income_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td> </td>
+ <th align=left>÷óåçï ðòéèïä</th>
+ <td align=right><%total_income_this_period%><hr noshade size=2></td>
+ <td align=right><%total_income_last_period%><hr noshade size=2></td>
+</tr>
+
+<tr>
+ <th align=left colspan=2>òáóèïä<br><hr width=300 size=5 align=left noshade></th>
+</tr>
+
+<%foreach expense_account%>
+<tr>
+ <td> </td>
+ <td><%expense_account%></td>
+ <td align=right><%expenses_this_period%></td>
+ <td align=right><%expenses_last_period%></td>
+</tr>
+<%end expense_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td> </td>
+ <th align=left>÷óåçï òáóèïä</th>
+ <td align=right><%total_expenses_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_expenses_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>ðòéâùìø / (õâùôëé)</th>
+ <td align=right><%total_this_period%><br><hr noshade size=2></td>
+ <td align=right><%total_last_period%><br><hr noshade size=2></td>
+</tr>
+
+</table>
+
+
+
diff --git a/templates/Russian-invoice.html b/templates/Russian-invoice.html
new file mode 100755
index 00000000..f59c2219
--- /dev/null
+++ b/templates/Russian-invoice.html
@@ -0,0 +1,152 @@
+
+<body bgcolor=ffffff>
+
+<table width=640>
+ <tr>
+ <td>&nbsp; </td>
+ <td align=right>
+
+<table width=50%>
+ <tr>
+ <td align=right>
+<font size=1>
+ ðÒÉÌÏÖÅÎÉÅ N 1
+Ë ðÒÁ×ÉÌÁÍ ×ÅÄÅÎÉÑ ÖÕÒÎÁÌÏ×
+ÕÞÅÔÁ ÐÏÌÕÞÅÎÎÙÈ É
+×ÙÓÔÁ×ÌÅÎÎÙÈ ÓÞÅÔÏ×-ÆÁËÔÕÒ,
+ËÎÉÇ ÐÏËÕÐÏË É ËÎÉÇ ÐÒÏÄÁÖ ÐÒÉ
+ÒÁÓÞÅÔÁÈ ÐÏ ÎÁÌÏÇÕ ÎÁ
+ÄÏÂÁ×ÌÅÎÎÙÕÀ ÓÔÏÉÍÏÓÔØ,
+ÕÔ×ÅÒÖÄÅÎÎÙÍ ÐÏÓÔÁÎÏ×ÌÅÎÉÅÍ
+ðÒÁ×ÉÔÅÌØÓÔ×Á
+òÏÓÓÉÊÓËÏÊ æÅÄÅÒÁÃÉÉ
+ÏÔ 2 ÄÅËÁÂÒÑ 2000 Ç. N 914
+(× ÒÅÄÁËÃÉÉ ÐÏÓÔÁÎÏ×ÌÅÎÉÑ
+ðÒÁ×ÉÔÅÌØÓÔ×Á òÏÓÓÉÊÓËÏÊ æÅÄÅÒÁÃÉÉ
+ÏÔ 15 ÍÁÒÔÁ 2001 Ç. N 189)
+</font>
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+ <tr>
+ <td>&nbsp; </td>
+ <td colspan=3>
+ <h3>óþåô-æáëôõòá N 000<%invnumber%> ÏÔ <%invdate%></h3>
+ </th>
+ </tr>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ ðÒÏÄÁ×ÅÃ: <%company%>
+ <br>áÄÒÅÓ: <%address%>
+ <br>éÄÅÎÔÉÆÉËÁÃÉÏÎÎÙÊ ÎÏÍÅÒ ÐÒÏÄÁ×ÃÁ (éîî): &nbsp;
+ <br>çÒÕÚÏÏÔÐÒÁ×ÉÔÅÌØ É ÅÇÏ ÁÄÒÅÓ: ïÎ ÖÅ
+ <br>çÒÕÚÏÐÏÌÕÞÁÔÅÌØ É ÅÇÏ ÁÄÒÅÓ: <%shiptoname%>
+ <br>ë ÐÌÁÔÅÖÎÏ-ÒÁÓÞÅÔÎÏÍÕ ÄÏËÕÍÅÎÔÕ: &nbsp; ÏÔ &nbsp;
+ <br>ðÏÌÕÞÁÔÅÌØ: <%name%>
+ <br>áÄÒÅÓ: <%address1%>
+ <br>éÄÅÎÔÉÆÉËÁÃÉÏÎÎÙÊ ÎÏÍÅÒ ÐÏËÕÐÁÔÅÌÑ (éîî): &nbsp;
+ </td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table border=1 width=100% cellpadding=2 cellspacing=0>
+ <tr>
+ <td align=center width=90%><font size=1>îÁÉÍÅÎÏ×ÁÎÉÅ ÔÏ×ÁÒÁ (ÏÐÉÓÁÎÉÅ ×ÙÐÏÌÎÅÎÎÙÈ ÒÁÂÏÔ, ÏËÁÚÁÎÎÙÈ ÕÓÌÕÇ)</font></td>
+ <td align=center><font size=1>åÄÉ- ÎÉÃÁ<br>ÉÚ-<br>ÍÅ-<br>ÒÅ-<br>ÎÉÑ</font></td>
+ <td align=center><font size=1>ëÏ-<br>ÌÉ-<br>ÞÅÓ-<br>Ô×Ï</font></td>
+ <td align=center><font size=1>ãÅÎÁ (ÔÁÒÉÆ) ÚÁ ÅÄÉÎÉÃÕ ÉÚÍÅÒÅÎÉÑ</font></td>
+ <td align=center><font size=1>óÔÏÉÍÏÓÔØ ÔÏ×ÁÒÏ× (ÒÁÂÏÔ, ÕÓÌÕÇ), ×ÓÅÇÏ ÂÅÚ ÎÁÌÏÇÁ</font></td>
+ <td align=center><font size=1>÷ ÔÏÍ ÞÉÓÌÅ ÁËÃÉÚ</font></td>
+ <td align=center><font size=1>îÁÌÏ- ÇÏ×ÁÑ ÓÔÁ×ËÁ</font></td>
+ <td align=center><font size=1>óÕÍÍÁ ÎÁÌÏÇÁ</font></td>
+ <td align=center><font size=1>óÔÏÉÍÏÓÔØ ÔÏ×ÁÒÏ× (ÒÁÂÏÔ, ÕÓÌÕÇ), ×ÓÅÇÏ Ó ÕÞÅÔÏÍ ÎÁÌÏÇÁ</font></td>
+ <td align=center><font size=1>óÔÒÁÎÁ<br>ÐÒÏÉÓ<br>ÈÏÖ-<br>ÄÅÎÉÑ</font></td>
+ <td align=center><font size=1>îÏÍÅÒ ÇÒÕÚÏ×ÏÊ ÔÁÍÏ-<br>ÖÅÎÎÏÊ ÄÅËÌÁ-<br>ÒÁÃÉÉ</font></td>
+ </tr>
+
+ <tr>
+ <td align=center>1</td>
+ <td align=center>2</td>
+ <td align=center>3</td>
+ <td align=center>4</td>
+ <td align=center>5</td>
+ <td align=center>6</td>
+ <td align=center>7</td>
+ <td align=center>8</td>
+ <td align=center>9</td>
+ <td align=center>10</td>
+ <td align=center>11</td>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><font size=1><%description%></font></td>
+ <td align=center>ÛÔ.</td>
+ <td align=right><%qty%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%linetotal%></td>
+ <td align=right>&nbsp;</td>
+ <td align=right>&nbsp;</td>
+ <td align=right>&nbsp;</td>
+ <td align=right><%linetotal%></td>
+ <td><font size=1>&nbsp;</font></td>
+ <td align=right><font size=1>&nbsp;</font></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <th colspan=7 align=right>÷ÓÅÇÏ Ë ÏÐÌÁÔÅ</th>
+ <td align=right>&nbsp;</td>
+ <td align=right><%subtotal%></td>
+ <td colspan=2>&nbsp;</td>
+ </tr>
+
+
+ </table>
+ </td>
+ </tr>
+
+ </tr>
+ <tr>
+ <td>&nbsp; </td>
+ <td>
+ </tr>
+
+ <tr>
+ <td>&nbsp; </td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td width=50%>
+<nobr>òÕËÏ×ÏÄÉÔÅÌØ ÏÒÇÁÎÉÚÁÃÉÉ ____________________
+ </td>
+ <td align=right>
+<nobr>çÌÁ×ÎÙÊ ÂÕÈÇÁÌÔÅÒ ____________________
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+ </table>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Russian-invoice.tex b/templates/Russian-invoice.tex
new file mode 100755
index 00000000..5507ab21
--- /dev/null
+++ b/templates/Russian-invoice.tex
@@ -0,0 +1,235 @@
+\documentclass[10pt,letterpaper,oneside,onecolumn]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\newsavebox{\ftr}
+\sbox{\ftr}{
+ \parbox{\textwidth}{
+ \tiny
+ \rule[1.5em]{\textwidth}{0.5pt}
+Payment due NET <%terms%> Days from date of Invoice. Interest on overdue amounts will acrue at the rate of 12\% per annum starting from <%duedate%> until paid in full. Items returned are subject to a 10\% restocking charge.
+A return authorization must be obtained from <%company%> before goods are returned. Returns must be shipped prepaid and properly insured.
+<%company%> will not be responsible for damages during transit.
+ }
+}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%invnumber%>}{<%company%>\hfill <%invnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}rlXlrlrrr@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} & & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\ [0.5em]
+ & carried forward from page <%lastpage%> & & & & & & <%sumcarriedforward%> \\ [0.5em]
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.6\textwidth}{
+\textbf{To}
+\vspace{0.7cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\parbox[t]{.4\textwidth}{
+\textbf{Ship To}
+\vspace{0.7cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{I N V O I C E}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{7}{|X}|} \hline
+ \textbf{Invoice \#} & \textbf{Date} & \textbf{Due} & \textbf{Order \#}
+ & \textbf{Salesperson} & \textbf{Shipping Point} &
+ \textbf{Ship via} \\ [0.5em]
+ \hline
+ <%invnumber%> & <%invdate%> & <%duedate%> & <%ordnumber%> & <%employee%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXlrlrrr@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} & & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\ [0.5em]
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%deliverydate%> &
+ <%qty%> & <%unit%> & <%sellprice%> & <%discountrate%> & <%linetotal%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ Subtotal & <%subtotal%> \\
+<%foreach tax%>
+ <%taxdescription%> on <%taxbase%> & <%tax%> \\
+<%end tax%>
+<%if paid%>
+ Paid & - <%paid%> \\
+<%end paid%>
+ \hline
+<%if total%>
+ Balance Due & <%total%>
+<%end total%>
+\end{tabularx}
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100
+\hfill
+All prices in \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+\vfill
+
+<%if paid%>
+\begin{tabularx}{10cm}{@{}lXlr@{}}
+ \textbf{Payments} & & & \\
+ \hline
+ \textbf{Date} & & \textbf{Source} & \textbf{Amount} \\
+<%end paid%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%payment%> \\
+<%end payment%>
+<%if paid%>
+\end{tabularx}
+<%end paid%>
+
+\vspace{1cm}
+
+\centerline{\textbf{Thank You for your valued business!}}
+
+\rule{\textwidth}{0.5pt}
+
+\usebox{\ftr}
+
+\end{document}
+
diff --git a/templates/Russian-logo.eps b/templates/Russian-logo.eps
new file mode 100755
index 00000000..3a22b2ff
--- /dev/null
+++ b/templates/Russian-logo.eps
@@ -0,0 +1,1334 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: GIMP PostScript file plugin V 1.17 by Peter Kirchgessner
+%%Title: Brazilian_Portuguese-logo.eps
+%%CreationDate: Thu Aug 31 19:25:05 2006
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 2
+%%Pages: 1
+%%BoundingBox: 14 14 415 215
+%%EndComments
+%%BeginProlog
+% Use own dictionary to avoid conflicts
+10 dict begin
+%%EndProlog
+%%Page: 1 1
+% Translate for offset
+14.173228346456694 14.173228346456694 translate
+% Translate to begin of first scanline
+0 199.99842519685043 translate
+399.99685039370081 -199.99842519685043 scale
+% Image geometry
+400 200 8
+% Transformation matrix
+[ 400 0 0 200 0 0 ]
+% Strings to hold RGB-samples per scanline
+/rstr 400 string def
+/gstr 400 string def
+/bstr 400 string def
+{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop}
+true 3
+%%BeginData: 80402 ASCII Bytes
+colorimage
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+fDblg6K\=Q"WB-W4?Pdo4p6+l]&ih]rrrDpij);hp&GL',"Q[#Lmt]mi:-UBo)Ajlp>C')q#Ca-
+0OT-[R^UZ0q#:3k!rftBr;[*-4`Pt>]\`;[p&>'%-iO)I,T-[I!!OC1jn&BKnc&dlp#<8P%e]l2
+"!U9TI#+8tb2Ddcrq6:-g3RO66TZkO/89R1ak>G'lMCDUrVc`p_uG5~>
+fDc3-AgAK<(`*r''GKsK"r/C?3]oMfm61YtOLjQNo`#*op#<8P%e]l2"!U9TI#+8tb2Ddcrpp'l
+rq>8m&GZ;5#V]Y2L75R!lM1AVrrW28$N0r1#!HsURCqDKrq69l[jV.T![JWbkPtc,R-!r:rpg!l
+rq59V:(Hst$j.\EE.!J2ZHD+pqYp0f(YX1N<'rc'0emR!XjZ4ijR;sBr;HTnrknbd~>
+fDc6;J3>hE.46Gg,U"<#*sNl<2EEr_4mbE9G`]Muqt0mlrq59V:(Hst$j.\EE.!J2ZHD+pqYp'c
+"TJ,QFV+?K$4&=nG_VZqdd$W,r;Qit^^C#?#R3G3J!mt+o`"O`!OjHU!!4D`!pBUf*LPs[qu6-c
+"oe2SZ;(o'!"8rR88rs4S$L2pnG<.WrtjC8CK*Y`2)R41LpG[tlg+-<qu$Ekrr0h8J,~>
+gA_6CM^RKa#SJU[Cl4ICR$dH4"J2pKnc&.[#laS]ca8*s2'Dku%L*7S1/_:`E/L-e^<lNJn,*ps
+lGB9$.1d!s#n@h2C5&"Yb2DgerqcX(q78g7,slHqMPJ)Jp&4[cs*k'%9)\er&Pd:_DG`D6!pTal
+;j3B4I=8["q>L$e)ZKKoca5M5$jR7P',DcW=EAnFP+oA,h<ak4r;@'%mG5jnSV:rb4tRZYo)K.6
+.77QqVp"]-r;HW:s*t~>
+gA_WSXCb's7mAmd0J>%2/aY(p3(dS&NKf`rR.?XJT!Hl9rq$..rqGU%[!bb.+:/;Z%M^0O>@_Mp
+OJ9/'f_#".r"](qb,Jl)'b_,j)_+BrKpT$di:6^DqYq$#\j.Db6>_(,UVl'`rV6EmU]HuXrW!3>
+=ES\+<]_9&l2V,jVQ@/!U<E9+rV$70rqGU%Zq25S%MBBi(a_LMF+&e+U:&/"m.U>Sr=/\qk1@he
+W0`?`B2UiFr@A%'1d4D,8ded6G`JT6f_#";rVjq=J,~>
+gA_WV`KPh&H>[%h;Gg7d:@1a]<FBcqNg,isR.?XJT!Hl9rq$..rqGU%[!bb.+:etm&f`Dk@V^"7
+Q)D4<h=UO3r"](rd'%+>(`!f$,WA_DKpT$di:6^DqYq$#\j.Db6>_(,UVl'`rV6Em^B(K0rW!3B
+@!Hj=>!*c+l2V,lZbFJn^"N,TrV$70rqGU%Zreh$',D<")CRjQF+&e+U:&/"m.U>Sr=/\tmGcjE
+_7$G9OF(D5rCmAj>ASW`J.%6uT<>oSiV!$ErVjq=J,~>
+h#@HEIh:?7#Tc9FPJ##]c-H(0"4GulqXORjrqc-Bc+C!IjT#8`m/R?)T"N_Cq#1!f%/obL[[`MH
+U:8M5p\spee,TVcf]W#.pAY9pqXED]p&G=-'G_N()]Tmq*WQH&!!iZW>`-Jlq#(-9s*t~>
+h#@HJUfI@c"%YgF4l\X1;/(]X^WF^EcM,WedbO6dnc'C(qXEFf];hGR.Olks.P*2,2*!ie7S*/D
+!)3/["\;$E2D?]].L7OVFe67umJ-YTrs\ksfX@<5QD1k8kkG)Nrt@jG!<<*#(b-sc0JtaF0Ie1Z
+$3BMo#oYim84nopkP+uLrtbV1nDI&"0eP",.Ochs/1rtM85<,d>l%b,:\RH`84>d,rB(0F5Xe6:
+8dJ+(MQ5+sq#(-9s*t~>
+h#@HM^PMi="+56/C#`k4FbQ3b_9'pGcM,WedbO6dnc&ppqXEFf];hGq8cD6f8P;iZ>@VDgG^Y)7
+J,k2sJ.d?ZFD5#[9h@lH8ksi,]\)WHrV6C$rUSULS<B24\'X@5rqHF+H9;6/!!+Q@7nZfd?<U9"
+2^8k8m/RGEAorHOWS$D.rq??urqc-BFC%sC91f+R$;!ld>@_PnIYEZ=qi1Z0pOE?oG].?qBEN!f
+G^]78#_J8?^teSWr;Ot@J,~>
+h>[MB'\!*i,YiZYa62mZnF?&JncSOYqu6'a#Q=GfkM4KR)UeZi*-S.$mJQYW$N0GOcGmrTj73!F
+p\t6"ec5mb/8hc?meueX"TA*n,R_Hh#7aOmh":IArmCar~>
+h>[M`=SbYi8,u0:7LELMS$gZ-mdKZ8nc&(]o_87^n,EXkq!mP&dV;DR3!VH*4[;>&7nDf8%S9,W
+5<Lqc3BBc^Us&0'p&>Bsn__X3aOK8?qYp6h!OE+3!##DT-n$]+5!hV'5!1e]0J"C`$j,nu#UVT+
+?\Yl5meueX#Q=FJ>Xpq<3W:uC3BKAh6:FC8lq.=N84WVJ!_5dQmn*g`J?Io(qYgE@s*t~>
+h>[N!MYho*Isl\"H4#P$Zc1S]mdKZ8nc&(]o_87^n,F("q!mP&dY;XJ@:E_XBl7s8H[^J.J.@!Q
+F)5K!@U`kaL8<#[r:U'sr:/[i`lQZinbW7ZrrKG;rW!T71dso2?>FS'EGT5p>#S'T-5?[R!!rZm
+AU&loZI&%<o`#U'pn<@]Bk:d_@:E_XBl7s8H[^J4J-(4LI/A3kI"$S7J-Uh)_rgUfrVk4EJ,~>
+hu<`75k=sc"VrFC5tXgF:/4DF.i/9O!!*]Ur]C="me$ATli.:jr:opKd%Y/9'&!<k"#=J;Ni^b$
+rq-3qrV,jMn+?JTpAY,>f)Q'a;0.S\XNp84o)Asihn"ng;)Ad$!!WNiQK@f9rmUmt~>
+hu<`@GOnE:9Mnkt@V0:fC2.Hn>Z4;[8dSO+F*)Mgme$ATli.Fnr:opKd&28#:.@`E8`E>N8Ou<>
+7TaSXNi^b$rq-3qrV,jMn+?JTpAY,>qu@NQ,q(K/6:XU>84Z3<69dRl1bgU.)%[&F!!j*8F,?6b
+cL1Z%rseb\\s@h_>t[RS7Rp!@b";k3FKjs$qYntDJ,~>
+hu<`GT_![<IscQgH[C/>IKP(MIt-[4!Jlg9S-6.co_SRQrso&+q"3gtWf)=NG^=adJ)l+hIsu`i
+GBS%NIZCMZo)A:]#Q=DemdKfErV$6kHi3pL!AZo0<+U)rrdG<'H$++DB44tC:-L3L%.jN*&m043
+Q`SL#rUTsuptrZOMLp5#G'A1WI"$RgJ-LRo_WgairmUmt~>
+i;Wha&G?)3"X69@G^kI,P*_]1rh'IfS=#7L5SE5[">J!QnGMJL#l<l9^9FDd9H)af#qBJ1L7#-c
+jnSiGs8Drirr@!8!!4`+#i,Ic89UN4bi8<po)B'omao@cYc+.?63tL0"V>7hnG)t4s*t~>
+i;Wi"<VB#m9N5D9G^kI,P*_]1rh'IfS=#CdBN""c"DGs4nGMJL#l<l9^9FDnE)tgf$!(hdL7#-c
+jnSiGs8Drirr@!8!!Y&=.ks.S8GYpg8Ou<=69dRm2)6d5*"E#D!!c&<S@?`%p&=O^$N'8C_mckK
+Sr%2W`(C25NR[ImrRLpu~>
+i;Wi2M"Z?,IsQ9]G^kI,P*_]1rh'IfS=#ItL4SN<"H^d\nGMJL#l<l9^9FE!MLs]8$$^E6L7#-c
+jnSiGs8Drirr@!8!!b/H79+#EI=M0F%tB%UH$44GBOY4I:e*2V!qu["89UN4bi8<po)B$nmao@c
+Yc+.WLr4`HL9'%tq#/bCJ,~>
+iVrn9p&GO<7W!I+P+J\^^;eCEe,@c%d`oeFZDDb'!pTag,b;X/qWIkdrqc0Li7?&`XFWVBirBDi
+9lbcMYfPVcpAO"N!/(1L";kW^EBr@\#!RdOh!Xn6nc'!rqXWt6i7cW"\Y):S!"&cA/3cp6C2SKO
+KDgH,J9#$l1DK9X"TqW;mJ$S2s*t~>
+iVrnZp.>ck@;pOIP+J\^^;eCEe,@c%d`oeFZDE@g9Bo+P>b/RgqWIkdrqc0Li7?&`XH.-lj%9YP
+@WI!bYfPVcpAO"N!/(1L"rLi`F'qF.oh#Wa84H$85Wq.e1Fs:Bq#CU_L:H%,pAFI\$i^"nlfI'Y
+d`8noDWsb":g%1=D00uNJV3oS"bM/FCg^008d.n<bO,'&fDg@~>
+iVrnsp4*U"FE;b_P+J\^^;eCEe,@c$d`oeFZDEhBl$rniS\=([kPkqhqXNh.f#kY,R>QRUJ-pdG
+Ee'I[aP?+TrSmhWKDY]R(h76%G^"W1J.7!WI!U!XDe`ij=A("Cq#CU_L:H%,pAFI\$i^"nlfI'Y
+d`8nsNp2'#I!U'`H[L9mJV3fP!J>skJ-CLtdd?f-fDg@~>
+ir9!spAb^?;KRDLTsM\cguRbgo(;VSp'^Qco'Yc%fZLdo7Ki&X"<E/rh"^"2$i^)#p@.8#cFooT%
+d!`u!`F)pUr;*Wq#(-NrrL.Cqu?puFHE]?JdCT@!=T>3!!P?@^Ztarn,NFe$N9o!q"4":g;nL?m
+f3e)/l6J6KT).cU8P&qZM_'8Za$U.SV:/k!q?6o"'3Y5q#/nGJ,~>
+ir9"HpIYrnA9<<^TsM\cguRbgo(;VSp'^Qco'Yc%fZLduDbTLi"B:&Th"^"2$i^)#p@.8#cFp'#
+;<:CVA93O%`80kVr;P^U!QP?@!!Z;BOKZBc:@Up_8Ou?@6pX!s/dhFT"ZVIUlMUYMs8W'*rVZNe
+o^:kqaHB6c8e"NtATN6PN0Kj,VlR#,r3Qa9Z)jdmNceQ!nO`sYK$s&]rRq4$~>
+ir9"fpOEd$EccelTsM\cguRbgo(;VSp'UKbo'Yc%fZLe&NpD2uI>"ZVpuVM`rquWdnE8TP]r@0H
+ja[YVF,-R0h<t(9ro3qY`ru;?##TK(YJ-renph'sIXHKeF`;))8.,1n"ZVIUlMUYMs8W')rVZNe
+o^:kqaJJ<T%=WPDFaSk$PanJGX08i,Zj3qBXJMJOMM(DK"bEE!mJ-Y5s*t~>
+j8T+/p](g,5&bn2VnUU<m.C)NrVlflrsA]'qY'F@fZ'=>m/R8.I&>WmiVs5`r:ojHg;p9k"R#gj
+/ocWFcKY*%hu<[5qu@!=E/1aQlJS-;lMq#'>>b\&!!G<<]''%TrrrE"p[6mkmf3eaEIa7KZG+E,
+f%Ss<iqqdCini>8aLn[:8e(:j"Uoe:nG<.=s*t~>
+j8T+Tpdu&i?>t:RVnUU<m.C)NrVlflrsA]'qY'F@fZ'_$m7ILZI&>WmiVs5`r:ojHg;pF@9^#(R
+=E0(pcKY*%hu<[5qu@!=E/1aQlJSa>m7IOQ7nd5e#5\B'3Jb90rTF1arquNYhOa1.%:=+*PGGLu
+aO&Mlh;I;ij9ai&f[7dQY*X*(nO`s^Rc*]3rnII'~>
+j8T+opj`m)FDuVhVnUU<m.C)NrVlflrsA]'qY'F@fZ'tOm=>4a!iF]HiVs5`r:ojHg;pR`J`qUh
+G&`89cKY*%hu<[5qu@!=E/1aQlJT4*mXPLjI=$!B;?m!u"?D:LkPaTD"oeGombY5;J.6R>J<Qe7
+^<"[Pg>1]HqrA(ChUp5s]WRfaK(4?pKWsD(qYo7LJ,~>
+jSo4Pp]([*;KIM`][l<<qYgE_rs/Q#p?^YWLDTCZ"<2`cgA'P)#QFYqmblB\-0YC6>'usdm/$_=
+rrBP*!!kT/R`b'rq!(]B!!Ea>Fbj)q!!G98[cRGJrr`5pkZ@6R$q,K5^XhE/n+?>Kq>0sc$iBep
+o^D##d_Vqg$1Ruu1qr/HrS7F'~>
+jSo4lpdtofA93Er][l<<qYgE_rs/Q#p?^YWRTJrM"B'WEgA'P)#QFYqmblBh?g1/eApg5pm/$_=
+rrBP*!!kT/R`b'rq!*=p8d%n&Fbj)q!!G98[cRGJrr`5pk_&@s$t+IQ^XhE/n+?>Kq>0sc$iBep
+o^D##d_W#4:[q$[C;oB0rS7F'~>
+jSo5+pj`a%E-$])][l<<qYgE_rs/Q#p?^YWVhOSis*OmFgA'P)#QFYqmblBpMWoWqE.";%m/$_=
+rrBP*!!kT/R`b'rq!+O=J-::;Fbj)q!!G98[cRGJrr`5pkbIWt%!?rf^XhE/n+?>Kq>0sc$iBep
+o^D##d_W)NK(4?oP02t]rS7F'~>
+jo5A)"Si$(!`*lnWQXDqqu5m\"o\5`gq6>M!!F6gVV:h"rrrAsnDM>llMq(oE/M0dqVD/O@/Bp0
+:4TD#q#CBc$g[ir:N_`*_YX<98;=S8r8[eZrqbC[nGie`KsKM+qYgE`rs8W%q=En-bcF/$!!Emu
+hXUO"s*t~>
+jo5A8:&%<d@WR@)bN8Bnrp'LerV5d8^NT*="B'WEgA'G&"o\8di5gH78d.n-MR_aDh>[I_qZ$ms
+J?.K#s8Vailq.CiFcWoHqZ$aiL:67Bj8T5\qVbBC8dAgZZJ>*KrVl?e#labtoBP/UY]'&("B;;U
+nbh5CJ,~>
+jo5ACK(sj%EH?r8bN8Bnrp'LerV5d8_Ns\As*OmFgA'G&"o\8di5qMTJ-CC@MR_aDh>[I_qZ$ms
+J?.K#s8VhIm!o4YFcWoHqZ$aiL:67Bj8T5\qW*D$J-U7OZJ>*KrVl?e#labtoBP/U[#jg."GO5>
+nbh5CJ,~>
+k5PJR,kq?E0QDiId-UW.k5PV`pZg:]#k@ru)gnO:pt>ZLrV5d'lMq))FI()<rn[SS./NuL;i%sG
+r;Zf#li724E/(OJn,!(f@Z%e]rSdbWq.K3t"@e6Zkl'iI#QF\snD_`I&Fof)!cuoZqYoCPJ,~>
+k5PJUAGAb%=`K1rd-UW.k5PV`pZg:t:@_![;LG@qpt>ZLrV5d,lUh=XFI()<rn[SS./NuL;i%sG
+r;Zf:lq.F\E/(OJn,!(f@Z%e]rSdbWq2t2>"Cd5!kl'iI#QF\snD_`^;t<Na99@]kqYoCPJ,~>
+k5PJXP5'P4G&`8:d-UW.k5PV`pZg;0K(=HlHig2!pt>ZLrV5d/l[T.cFI()<rn[SS./NuL;i%sG
+r;ZfKm!o7bE/(OJn,!(f@Z%e]rSdbWq60=="EoX5kl'iI#QF\snD_`mK^jQqV:Fu0rnma+~>
+k5PF"p](L*BRZZ!mJGrD"oeDjiMmgf!!F0eVV:gsrrN&8lMq&+H(`XZh#@?rqZ$k"N5+ZVs8Q?j
+!!Q)BSBL?equ?m=Eg"B.ro*kXrl=O/"@e9\kl'`F"o\8dhQ\Bs!!HlYlM:G;s*t~>
+k5PFLpdt`bCOVu$mJGrD"oeDjiO)k\8d&%>VV:gsrrN&GlUh:XH(`XZh#@?rqZ$k"N5+ZVs8S#D
+8d/[LSBL?equ?m=Eg"B.ro*kXrmgO2"Cd8#kl'`F"o\8dhR[+b8d'molM:G;s*t~>
+k5PFjpj`QtDLS;'mJGrD"oeDjiP(->JH'uuVV:gsrrN&Rl[T+bH(`XZh#@?rqZ$k"N5+ZVs8T7g
+J-Bt=SBL?equ?m=Eg"B.ro*kXro!<s"Eo[7kl'`F"o\8dhS>'>J-;FglM:G;s*t~>
+kPkS3"S_s#20=tpk5+$9"TJ2]^*iOQ":fgUf_F%t!35tt!'9TL";cE\f_=2$!$D(<#<RmZlM^bS%
+.+$!"`9"#i;'/G!!Q&BT[NK3i;WiT(@hG.7Z+hArT=+_rV5[#2XpbM@a"$3ro*m-~>
+kPkS@:&%<a>',n@k5+$9"TJ2]`a\R4"AX?@f_F%t!5e\,!*o"c"AsNAf_=2$!$D(<#<RmZlM^bV
+;XI'\9Q#Tki;'/G!!Q&BT[NK3i;WiT=n5/f@Z%e]rT=+_rV5[&D"1+#K$3ESro*m-~>
+kPkSIK(sj"F``b[k5+$9"TJ2]bDl.E"Fb`pf_F%t!7^st!-I^\"FPQlf_=2$!$D(<#<RmZlM^bY
+L@'KqIrC(Ji;'/G!!Q&BT[NK3i;WiTMXl9#G)EoqrT=+_rV5[)P4=&*R`jskro*m-~>
+kPkNYpAbA&J#Lukrnm_Yrql000(f2I%==l%p=B6DL]%2RB-$LB":TXQf_=2$!)ECk"qZO!jo#.R
+qu?^*nc/k8FHjf4nKe&5"X%c?[Ggu>rrN*rnc/e^MS&*Njo5J_qsi8tnGiZ+b3A`\s*t~>
+kPkO6pIYU&J#Lukrnm_Yrql04BD"k":4&bfp=B6DWr5NjCfU!t"AX<>f_=2$!)ECk"qZO!jo#.m
+r(6rank'*bFHjf4nKe&5"X%c?[Ggu>rrN+Nnk'$oMS&*Njo5J_qsi<VnO`n<b3A`\s*t~>
+kPkO\pOEEdJ#Lukrnm_Yrql06OS+,,IX@jAp=B6D_u5)dDgh/+"Fb]nf_=2$!)ECk"qZO!jo#/+
+r."crnpgpjFHjf4nKe&5"X%c?[Ggu>rrN+snpgjdMS&*Njo5J_qsi@(nUL_1b3A`\s*t~>
+kl1Y/pAb@.EK%Qnr7q;Sr:88hp&G4)HD/m_f)G_`rW!!*Ea8)6"*C6ep>#ZJV"t&p5cE<-r_37j
+!=D?f!!P$%U"&U2r;[$/@XF`ln,;,C!.j\@"@e9\kl'QA"9%lB.e3QB!e8G\qVqO*~>
+kl1Y=pIYTbEK%Qnr7q;Sr:8EPp.>H_HD/m_f)G`7r^m5cEcUYA"*^Hhp>#ZJV"t&p5cE<-rdar>
+!DQtm8d/@DU"&U2r;[$/@XF`ln,;,C!2]6Y"Cd8#kl'QA"9%lFAb&Fr99IHbqVqO*~>
+kl1YGpOEEpEK%Qnr7q;Sr:8L&p4*9pHD/m_f)G`WrdY'!Ee<e2"+$Zkp>#ZJV"t&p5cE<-rhfXE
+!If+\J-C.CU"&U2r;[$/@XF`ln,;,C!5J)T"Eo[7kl'QA"9%lHOR[i'T?QZuir=N~>
+kl1WbpAb@BG+-\GrnIGTrUeS^pAb=*H(`[\f)G_;rW!$:G*F0?!!?8jch#rl!V\&>!!H?;jlQ^E
+!!+i]nc/eTJ?-URr;[$*<d'Y=jS@X3!28r`"@e9\kl'N@"9.u;'Cl,+%[ti7r8[g-~>
+kl1X=pIYThG+-\GrnIGTrUe`LpIYQ`H(`[\f)G_rr^m8iG*H;&8crmuch#rl!V\&>!!H?;jm,V=
+8c`(1nk'$jJ?-URr;[$*<d'Y=jS@X3!5.kp"Cd8#kl'N@"9.uC<q8ic;52M-r8[g-~>
+kl1XapOEElG+-\GrnIGTrUeg&pOEBqH(`[\f)G`ErdY)uG*IjRJ-1.ech#rl!V\&>!!H?;jmRd!
+J,sh8npgjdJ?-URr;[$*<d'Y=jS@X3!714d"Eo[7kl'N@"9.uHM"6'!Ju6ubr8[g-~>
+l2LeM"SVm!3.7[VpY#QKrq4GJp](F&GbER[f)G^mrW!$IHD#o\!!G-A`U3Z\rrW/;#PnE%4hQFF
+!!6GR!qQBo7=\hVr;['0<csA,g@YC#rrBe(!!GcK]BK4PrrW2mU@A3d/?mh"roF*0~>
+l2LeS:%q6_>^`L%pY#QKrq4]?pdtZ_GbER[f)G_Xr^m8nHD$eu8d&I``U3Z\rrW/;#PnE&4hRFY
+rCR-)I7s0("(?^h%K-83$<D;.ZJ+sMh>[K%nk'$oMS&*NiVruYosaH`"CSIeo`!qOJ,~>
+l2LeWK(jcuG($7?pY#QKrq4lupj`KrGbER[f)G`3rdY)qHD%D1J-:7_`U3Z\rrW/;#PnE'4hS.L
+J,Xs!E.7A."*K-'%K-83$<D;.ZJ+sMh>[K3npgjdMS&*NiVruYou?NP"GX/6o`!qOJ,~>
+l2LaMp&G4`K!=20f`)'QoX5)$!!@J;e+M>m!;l]p"?(_.d3%oZ":U*rjnmj5!r/2dq>^O((]==9
+)KC]Vo)Je5%/^)1*G'JTYgr7@h#@B&nc/e^MS&*Ni;WlWo2tM_"(8e&q;hR+~>
+l2Lakp.>HqK!=20f`)'QoYaT$8cs=0e+M>m!;udf"C-DTdU2Q;"AXc_jnmj5!r/2dq>^g0/j)To
+8lBYf>4bDg68&cF!!aNUG`ArXnGM)A!8d9="Cd8#kl'H>!r__EnO`n1]]AnLs*t~>
+l2Lb,p4*9gK!=20f`)'QoZi-bJ-1%fe+M>m!<)kH"Eo6nduEpK"Fc0:jnmj5!r/2dq>^g05A,4h
+IsQ*nL\-)uE]X^-!!aNUG`ArXnGM)A!9j!("Eo[7kl'H>!r__fnUL_%]]AnLs*t~>
+l2L`Sp&G4aL:64AfDbpNo8`SG"*U3^o[j*Cg\h*T7Y7l%Mt$cL?DuQNh#@KTntQrm!!>W4S3H?@
+#REn@I[.=lnGM&@!8d8H"@e9\kl'E=!rUsdnc/e$R*+gojo9i~>
+l2La2p.>HrL:64AfDbpNo;VLW"*U3^o[j*Ck5@mT@=k`@Wpr[`Ei@[bh#@KTntQrq!!`Q>-otUV
+S8\0p"%G3q&c2P6#Y&laQ*o34r7h5OkOM4J@Z%e]rSRVVr8^fI8d%t[b3f,gs*t~>
+l2LaZp4*9hL:64AfDbpNo=XjK"*U3^o[j*CmJVP<FFpaS_!upWJZ.8qh#@KTntQrq!!`TM7V$C[
+S<Wf!"*n9=*r>pC#Y&laQ*o34r7h5Omdbl2G)EoqrSRVVr9/n*J-2=amJQ)GJ,~>
+lMgnZ#ke6$7Z"_?rRUuMr:!nc!!@A4d.Gri!4Vn,"]^>fk3WrT!!Fp@am]5arri5d`Dd$8!!<ED
+3$n%o#n&k6I#=Z6h=:EsrrDc`!!GcK]BK4MrrMtInGi\eY1r[Lk5Tr~>
+lMgn\;"dKa@Yq\[rRUuMr:#I:8cs4)d.Gri!6kC6"_NP"k3lID8d&Fdam]5arri5d`Dd$8!!<ED
+3&^[["!\`u$2FQ-$Tr?TMP@oBnbh,@!;Z1X"Cd8#kl'B<!W&P\8d'(8g\1X/s*t~>
+lMgn^K_Bp!G)<forRUuMr:$TZJ-0q_d.Gri!8II&"`oI/k4+?"J-:=fam]5arri5d`Dd$8!!EKE
+3(#k-4p*o#+V4AK#n&k6I#=Z6h=:EsrrDodJ-:%Q]BK4MrrMu.nULasY1r[Lk5Tr~>
+lMgk-o`,+aM7`!Mec,^JiZe4!")""Ho@O!BQi-mfArOLiqLnD>"9a=cjSR^3"o@Z<WE9kt!"/f?
+3bj)#T!m#.pAN\E!<2Nh"@e9\kl'B<!rhQsnc/e*QGr4hk5Tr~>
+lMgk<oh#?rM7`!Mec,^Jj^@pW")sXQo@O!B[J`]$D2c6pqPEaT"A=KYjSR^3"o@Z<WE9kt!"/f?
+3bj)#T!m#.pAN\E!<2O]"Cd8#kl'B<!rhXfnk'$^QGr4hk5Tr~>
+lMgkGomd0gM7`!Mec,^Jk`5Li"*^-Xo@O!BbPcqpEf@cuqS)KM",OGIqqM,SqX2q6=;9ou$NUl$
+C41u2[a=11rRq2NrpkRBG)EoqrSIPUrpba5J-2+Vm/?)HJ,~>
+lMgjNo`,+[M7VpLeGfUG[KHC,"D4"Enc%2@!-J2?#6T"0`pWih%e9T&9Vg53rnIGWr:ApkZ[t1$
+!"'N/@"b8acJe<irn%2@!!GcK]BK4LrrN%3nGiZ%Y2/m8s*t~>
+lMgjloh#?pM7VpLeGfUG`_?8%"E9^Onc%2@!1a$\#>9*#`pWim<:WWaC8BDQrnIGYr:ApkZ[t@J
+!q$$t"Uu:u6=>J@\Ba('qYo+Hnk'$oMS&*Nh>[NRPOV6IGHTcsk5Tr~>
+lMgk-omd0iM7VpLeGfUGdXh:G"Ep-Unc%2@!4r/[#CgcW`pWipL@KcrUt,/;g]%QWoA[s"Jj^1Q
+mJm\&(F_:0@"b8acJe<irn%2@J-:%Q]BK4LrrN&&nUL^pY2/m8s*t~>
+lMgj+o`,+KLq)UFeGfULp14%#"C786nG_)?!)WXp#820Hc1:l3D=RZ0'U$B"rS%8TrV>p?cU[p6
+"pu+Y&Io9OoDf.4<.1msjRE!Dec,U_o)Jn_MS&*Nh>[NT`:3g11n)VWroa<3~>
+lMgjSoh#?jLq)UFeGfULp5]#B"Dj=EnG_)?!.t2B#>fQ1c1:l3QL[WN;Ner`rS%8_rV>p?cY5-e
+,9%F7&ePT`"o\W;"UGMJ'cS>C-7CZLIBCrYnG3%5rr?-l8d&U\]BK4LrrN,KnO`pkR`k4"kPp&~>
+lMgjqomd0kLq)UFeGfULp8n.A"F$*PnG_)?!3#mI#CLZ]c1:l3ZgrVLJ!._8rS%8^rV>p?c[o1m
+4Y@ln&ePT`r!3lF'H8;N4$Z/&85t#>dcBonrRLoJM=Z6#G)EoqrS@JSrnd0q"Fcf_nG_VNJ,~>
+lMgico`,+1KX0V7e,KLJjV[mq"BUc+mf(l=!&4BP#U"Aae+Nb?h?WTO")+mopt5TKrV>R_r;[$V
+9ji7&N#_Hi"r;$DcLC]0e,KCio)Jn_MS&*Nh#@EP(@hG.&rO9_r9+*1~>
+lMgj?oh#?bKX0V7e,KLJl!"!W"DX+>mf(l=!,VX,#ZQ&@e+Nb?k"kP?"*h$*pt5TVrV>_N5Wh"`
+5tta4Ll=In./tb)/1rV52aV>LcLC]0e,KDUo1B-pMS&*Nh#@EP=n5/f:l;jHr9+*1~>
+lMgjcomd0nKX0V7e,KLJl\bUj"F$$Kmf(l=!1<b9#^U`fe+Nb?l@\YX",*l6pt5TVrV>f*DJ3Ka
+9hf#@Ll>:171MdX8PDr[=^GNQRa1F!rmUlIO7Rl)G)EoqrS7DRqhjrp"Fc6>k5=EBJ,~>
+lMgiLo`,*rFfF-jdf0@ERf!-g9T[-Xrn.5N%/p54/psPLq#CBk?1Isu0:L,Srn%/MT)AWo$!qV7
+Z+n%CoDf"(H)B<jdJj1go)Jn_MS&*Nh#@ES;=OVgG,j<lkPp&~>
+lMgj.oL]44WS@3rrrMu'r(7*'OM^A`f`(qLr^mGuI&>Tls8VtRnk'$kR`t:#fDc8j8Ou<=7::+u
+Z+n%er&+sB3'',a5X@b0H)B<jdJj2So1B-pMS&*Nh#@ESK(2G8I&brrkPp&~>
+lMgjWoRI$nWS@3rrrMu9r."opOM^A`f`(r+rdY9!I&>Tls8VttnpgjmR`t:#fDc9)IXHHbEF<dL
+Z+n&)r*Be=@:WtbD/jZ?H)B<jdJj3-o7-seMS&*Nh#@ESVso3<Wn[=3s*t~>
+lMgiKoDf"dS^@!-e,KLKoeuaK"@eBclM]E9!:0R`#X!X>hYR9PrmL?;"9a7bjSRR/!'pJ_#;pOa
+^>J8AIe3UC"+-iqpX0!@+7fI87Z+hArS.>PM=CQK<h7V/rojB4~>
+lMgj-oL]7"S^@!-e,KLKoks_#"CmG+lM]E9!:g"[#[Mt_hYR9Prn[-;"A=KZjSRR/!-eB6#?c)0
+^>J8ASGGV\77Kd<8P2X&Ut>@grr?Hu8d&U\]BK4JrrB(h8d&t$d.@8#s*t~>
+lMgjVoRI'nS^@!-e,KLKopG]."F,p@lM]E9!;6;@#^1a#hYR9ProEU"",aVLqq(iJT`0HIIro^n
+^>J8AZi"nRF`qtSH@1-jIs\!CpX0!@O7Rl)G)EoqrS.>P_sr6[I%AXUrojB4~>
+lMgiKoDf".OML/[df0@G]DV^43JtH4rRq2Na8Gu@8qaS3r;Q]sqb$DZ"@o9;o`!PD!8m_T#QeFb
+WnI+FrNPkn")jd[p!Nd>+7fI87Z+hArS.>PXmlAo6'B7UrojB4~>
+lMgj-oL]6aOML/[df0@GbPb$9?AcAYrRq2NfDS;E@YD,Kr;Q]sqgS*."DFU\o`!PD!9j>Q#AJ^g
+g%PFD`q)e)Fe7(TdJj2So1B-pMS&*Ng]%8lnO`pnP/cqhkl6/~>
+lMgjVoRI'oOML/[df0@GfDU4&H&B5trRq2Nj8FK2FG.$]r;Q]sqkEY3"G*Auo`!PD!:Ti9#B,-m
+g%PFDf(smmJ-1(ge+M,g!0?`%"Eo[7kl'99!7gUi"FH<Omf)GMJ,~>
+lMgiKo)JknXk`^!rrMmdrW!'TL:?=Cg&D&Mr;Zt&M7VmKrr3#u^@D7,'9U,rr7V)MGPqLI,BAjZ
+kktJ\iq!-P?CB+0dJj1go)Jn_MS&*Ng]%8nnGi\GMS/0Okl6/~>
+lMgj-o1B+)Xk`^!rrMnBr^m;sL:?=Cg&D&frCR3+M7VmKrr3#ucLOR1;3A][r7V)MTD_@f<H=/7
+kktJ\lLRUMDOJf@dJj2So1B-pMS&*Ng]%9)nO`pgMS/0Okl6/~>
+lMgjVo7-prXk`^!rrMngrdY,tL:?=Cg&D'$rI>#lM7VmKrr3#ug@BasJ!%S4r7V)M]D[6cH#et[
+kktJ\nFM/4H'utKdJj3-o7-seMS&*Ng]%95nULahMS/0Okl6/~>
+lMgiKo)Jn%N5k5^df0@H`Voi?-A8\br7V)MKDbcQBTBpqrr)itqD[sF"(A:dptG`Kq],P7#u>oA
+de!J<s8EQ$!!H,^aRB,Vrr=/4!!GcK]BK4JrrCpG!!F^([,h/Ks*t~>
+lMgj-o1B-]P/ckddf0@He,DrB=+mm>r7V)MVu93jDN;R"rr)itqJc!t"*L^#ptG`Kr*K=o$"J=U
+de!J<s8H!i8d&gkaRB,Vrr?Hu8d&U\]BK4JrrD6P8d&7M[,h/Ks*t~>
+lMgjVnpgh.`pEWOrrN)SrdY,tKX0Y9g&D&grI>#kNkt)]rVlopRdtt2KWNu(gA_3PNr=J7EdOM.
+oD\direL,r"F--On,Cc8!0?`%"Eo[7kl'99!:KB-"F>d/jS\6AJ,~>
+lMgi_nc/e@W7^bAdf0UK8cSi2JZdo,g&D%[rW!**F-F]6rr)itrMT2d"=]b]n,D)A!42V("VPd1
+[c@5`rrN*WoDf"[Nl(/^df0:ho)Jn_MS&*Ng]%91nGi\3JZdr-kl6/~>
+lMgj;nk'$jWn?tCdf0UKHqI"1JZdo,g&D&4r^m>fF-F]6rr)itrP%hp"Bq59n,D)A!6P13"]0/o
+[c@5`rrN+<oL]6qNl(/^df0;To1B-pMS&*Ng]%9;nO`p_JZdr-kl6/~>
+lMgj`npgjrWn?tCdf0UKU4@cAJZdo,g&D&VrdY0%F-F]6rr)itrQk%b"Fli^n,D)A!87=$"ak9F
+[c@5`rrN+foRI'iNl(/^df0<.o7-seMS&*Ng]%9AnULaiJZdr-kl6/~>
+lMgj&nGi\U\`!5]e,K^Q\c;^@J>q;ug&D%7rW!'6G+$YHqu6]l,kD!=!dqH:qV2#M;#L@t5^/[?
+nGW=c!+tj'">G_Fkl&s0!$Ce4"@e9\kl'99!8d5G"<2ijh"g16J,~>
+lMgjOnO`q!\`!5]e,K^QbXtK(J>q;ug&D%or^m;iG+$YHqu6]lA+N:q98'b6qV2#MK)J:F??_j]
+nGW=c!0ZtH"C$bqkl&s0!+>Cj"Cd8#kl'99!9irF"B'`Lh"g16J,~>
+lMgjnnULb"\`!5]e,K^QfRSL%J>q;ug&D&DrdY-!G+$YHqu6]lORdo(M72I@g]%8PrI>&nGFH_E
+rVc`rZLiYMHA]>urR1]GO7Rl)G)EoqrS.>PmdYf1I"/0Oq<7j/~>
+lMgjIn,NSP^?#%fe,K[L0E;0+Ut>=nrr=&<!!FEiT@EQ2rrN(_nc/e\U=/]5h>[N="TAB)#&/^m
+h>$pJ!06[O"<iH*jS[I+!$Ce4"@e9\kl'99!7pZ?"<2cfg\C"4J,~>
+lMgjhn4Egu^Z>.ge,K[LCJ%6OUt>=nrr?@(8d&+=T@EQ2rrN)&nk'$tU=/]5h>[ND:&[`g9Pf?a
+h>$pJ!3Yrd"BC,^jS[I+!+>Cj"Cd8#kl'99!93N@"B'ZHg\C"4J,~>
+lMgk*n:1Y$^uY7he,K[LQ@OL;Ut>=nrrA)YJ-:1DT@EQ2rrN)<nUL_9de*OprrM_CrdY0%DhG4K
+q#(-l`q4caH\Acer6kTFO7Rl)G)EoqrS.>Plg]K.I!qsJpuqa.~>
+lMgk+mf3JB]&NG_eGfdP`.DZ`WS$purrDfl!!Fj#VV1b@rrMU)o)Jn&NkaiVh>[J1r;[!SFHaZ/
+rVZZq^%;:-&V-t>qU5BD+7fI87Z+hArS.>P^@;1+)h"U;puqa.~>
+lMgk:mn*^m^#JbbeGfdPd[l,RWS$purrDln8d&7DVV1b@rrM[no1B-]O2'rWh>[JTrCR5qFHaZ/
+rVZZqch'g4:k5Y(qU5BD@.Qtn@Z%e]rS.>PdIBg3;LPFrpuqa.~>
+lMgkEmskP!^uG(eeGfdPgp<B1WS$purrDrpJ-:+EVV1b@rrMbLo7-snOMC&Xh>[JmrI>&qFHaZ/
+rVZZqh=Q4#I=SEUqU5BDO7Rl)G)EoqrS.>PhXQ+!I!qmGpuqa.~>
+lMgn\$h"&u)kc'Zr7(`Nq;fK$_;b7DrrCOH!!G?5XPWgMrrN(Gnc/btX4m=(rr=2?!!QYWVUkG>
+r;Qc]oDf!qI&5Kidf0:ho)Jn_MS&*Ng]%8KnGi\@IAkoqkl6/~>
+lMgn];X[3\>-6ZQr7(`Nq;fK$_;b7DrrD!U8d&FMXPWgMrrN(knk'"*X4m=(rr?I*8d/mWVUkG>
+r;Qcco1B+4V:bOjrr?Hu8d&U\]BK4JrrBb&8d&4DW8%+2s*t~>
+lMgn^L$sNpLUQ(2r7(`Nq;fK$_;b7DrrD<^J-:%GXPWgMrrN)0npggpX4m=(rrA/ZJ-Bn@VUkG>
+r;Qcgo7-pjV:bOjrrA,OJ-:%Q]BK4JrrCI:J-:.GW8%+2s*t~>
+lMgna=mc7n#^=qhqYo(G#6"5XhW+2)gA_/Zr;ZsiKX0Y8qYpWrk6LSY"=9DUmeu&C!4Vn,"X7rG
+]]]1hrrN*4oDeu,T$m8Zrr=/4!!GcK]BK4Jrr@Q=!!G30XPN^9s*t~>
+lMgnaM!dk=:6X>uqYo(G#6"5XhW+2)gA_/prCR3$KX0Y8qYpWrlqd4F"Bh)4meu&C!6kC6"]TK$
+]]]1hrrN+#oL]4+T$m8Zrr?Hu8d&U\]BK4JrrAkb8d&CKXPN^9s*t~>
+lMgnaX6tKAJu@8hqYo(G#6"5XhW+2)gA_0+rI>#nKX0Y8qYpWrmt:4^"FlcZmeu&C!8II&"aY0J
+]]]1hrrN+UoRI$iT$m8ZrrA,OJ-:%Q]BK4JrrBh(J-:(GXPN^9s*t~>
+l2Ladli7/P_!(Okf)GpPqY9marn@APO8T%]<J\3Kr;$?nr+5I""9NhTiVMI3!)3=k"]0Q=dIR;5
+rr>7T!!H;gbOPS\rr=/4!!GcK]BK4Jrr>mc!!GrIZJtcFs*t~>
+l2Lb%lq.D"`p!0qf)GpPqY9marn@APYl./sAr+"\r;$?nr/gJA"+di<qVV;QJGi(D@salro)ALc
+!-\!,"DX:Hnc%#;!+>Cj"Cd8#kl'99!.s`5"Cd"hiqqs>J,~>
+l2Lb6m!o5'b38Tuf)GpPqY9marn@APa8LMkF,7Bir;$?nr35aB",O>CqVV;QVYu#KEdOJ,o)ALc
+!1rh5"F6?Wnc%#;!0?`%"Eo[7kl'99!3#F<"ET4$iqqs>J,~>
+l2LeY+m]14%Y!:(qYmPq!-%l:"CdA+lM^PY!rgXNo)JnUT[EB1iVrr="TAB)&o`Z8iqiKN!,D-+
+"@J<imJbT7!$Ce4"@e9\kl'99!#Y5+"D!A#kPaWEJ,~>
+l2LeZ@I-Si;OZJ3qYmPq!1EdX"Dj(5lM^PY!rh%Mo1B-rT[EB1iVrrE:&[`g:iM6!iqiKN!0m+J
+"CmS4mJbT7!+>Cj"Cd8#kl'99!*etc"Diq+kPaWEJ,~>
+l2Le[O6hB#KWa2$qYmPq!4_uX"EKL;lM^PY!rh;5npgh8dI[@rrrMYArdY0"E/:s^qYC-k[.JkO
+HBH/5rmUlIO7Rl)G)EoqrS.>PN:DE$E/D0hrTO93~>
+l2Le`R-FYS0!+4.r2fnu9`4qoEg"H1rqQKoqb-M\":L1%kksE>!.4YE"[[F%b4#<)rrA>V!!G!5
+]]f=Crr=/4!!GcK]BK4KrrCC8!!O'WP/Zhfkl6/~>
+l2Le`Zg(-cB"I-tr2fnuJGi(CEg"H1rqQKoqgS-/"AXrikksE>!2BEa"^cJBb4#<)rrBCt8d&@U
+]]f=Crr?Hu8d&U\]BK4KrrCmF8d/%3P/Zhfkl6/~>
+l2Le`aQe9YOMp;Sr2fnuVYu#JEg"H1rqQKoqkNb5"FlHFkksE>!58>]"a"sWb4#<)rrC15J-:4V
+]]f=CrrA,OJ-:%Q]BK4KrrD6PJ-C=@P/Zhfkl6/~>
+kl1\U.-U^79YB]crN?/#/H,VQ%<Rr\nc&=`!WK_%!!??&g%OG*!W*`5!!NXDKWj5,q#:?5oDf"9
+Ks]q=e,KCio)Jn_MS&*Nh#@A$nGi_PGb3=TrojB4~>
+kl1\VAa)eiHcGCGrN?/#B`:U-:3;iHnc&=`!WL=68cs%3g%OG*!W61$8d.q+KWj5,q#:?EoL]6c
+Ks]q=e,KDUo1B-pMS&*Nh#@AKnO`shGb3=TrojB4~>
+kl1\WP3IK"SBgHprN?/#QMuC<IWUq#nc&=`!WLdCJ-1D&g%OG*!W@uVJ-CC?KWj5,q#:?QoRI'l
+Ks]q=e,KE/o7-seMS&*Nh#@AfnULddGb3=TrojB4~>
+kl1__]*%9t"TqN7m.^I_rr<?(!!F0aS^I*'rrMsQo)Jn8QH/Ckj8T+Wr;[!XFHjc2rV6BmmdpJ^%
+Y1Y;q:#?D+7fI87Z+hArS@JSq],/,"Ti+aXkrm:s*t~>
+kl1__b=q.m"\a?dm.^I_rr>mp8d&%:S^I*'rrMt6o1B-dQH/Ckj8T+prCR5sFHjc2rV6Bmo(5NW
+:4TG&q:#?D@.Qtn@Z%e]rS@JSr*Jnc"DWOjhYH@7J,~>
+kl1__f7E1:"bE;nm.^I_rr@`OJ-:4DS^I*'rrMt`o7-snQH/Ckj8T,.rI>&pFHjc2rV6Bmp@Nk<
+IXnNVq:#?DO7Rl)G)EoqrS@JSrJpDu"E/mohYH@7J,~>
+kPkSXIcg\8"&HSrp\b#trrD*X!!FToUXo/4rrN(nnc/c4ZJbQ=rr>1\!!WL7J>q2prqQKorYP2,
+"*gWopXB-B+7fI87Z+hArS@JRTCDmb-?>3`lMTiFJ,~>
+kPkSXTBAfN9RXtJp\b#trrDB`8d&1@UXo/4rrN)2nk'"5ZJbQ=rr@0>8d/s[WS$qDq#:Bo>4bDh
+HDK3fe,KDUo1B-pMS&*Nh>[JenO`scEfe*%r9+*1~>
+kPkSX\EAAHJY1<Up\b#trrDTfJ-:.DUXo/4rrN)CnpggsZJbQ=rrAYhJ-BnBWS$qDq#:BoMtDN%
+I&,Ehe,KE/o7-seMS&*Nh>[K$nULdfEfe*%r9+*1~>
+kPkV^nP\HK"[]6TpAFourrBt8!!G$*WS@4@rrMd5o)JnST$R!,jo5>,r;[!KEf[rur:^-j9(W)c
+@[tj<e,KCio)Jn_MS&*NhZ!WR,k:p>!aC&Ie+EY&s*t~>
+kPkV^nU]do"a.KDpAFourrCRI8d&=HWS@4@rrMh"o1B-pT$R!,jo5>:rCR5oEf[rur:^-jIe657
+E1G>Je,KDUo1B-pMS&*NhZ!WSA+<.pB7-K'o`"%RJ,~>
+kPkV^nY>2r"e*NupAFourrD$VJ-:+GWS@4@rrMkRnpgh6cgq(srrD6\J-C4=O1siUpAY,goRI$i
+SC-uXrrA,OJ-:%Q]BK4MrrN(]nULd]I&#0_roa<3~>
+k5PM[k=4M4"YQ&$o_\WtrrA\i!!GK:Y2K0LrrN(So)JmuLqMmIjo5<jr;["&I%o*^rq??lEqB>7
+:6irjrm^rJ+7fI87Z+hArSIPSL[b?J.rpT[jnn3?J,~>
+k5PM[k]l/\"_b%#o_\WtrrBY/8d&IOY2K0LrrN(so1B-[MnJ3Ljo5=CrCR6*I%o*^rq??lRe02T
+B9gU.rm^rJ@.Qtn@Z%e]rSIPSWpr[b=)s82jnn3?J,~>
+k5PM[l($gb"d6X`o_\WtrrCCDJ-:%HY2K0LrrN)6npgh$]]T+QrrB>&J-Bq?U=8c6pAY-&oRI'j
+Q-&OpeGfN0o7-seMS&*NhZ!SnnULdeEf@Tkqr[p/~>
+k5PP_q;O6k!!O-]eFE>4])MbXr;ZsmKs]q=o`"sU%eBZ&;Q&1@k5PJN#lXf-)KCYEjSSWM!1i`^
+"?MRZli,E6!$Ce4"@e9\kl'E=!RD&B!!WjDI\bE`roX62~>
+k5PP_q;Z;O8d/=ag%"k9])Mc)rCR3%Ks]q=o`"sY<:`]aDPu.\k5PJS;#X&j;K7T(jSSWM!4h_o
+"CI2*li,E6!+>Cj"Cd8#kl'E=!SpTC8d8%+I\bE`roX62~>
+k5PP_q;de#J-Cb7hXUC>])McErI>#mKs]q=o`"s]L@]otJu@8pk5PJVK`6K*HuY%RjSSWM!7(4e
+"F?*Eli,E6!0?`%"Eo[7kl'E=!U#.,J-LI?I\bE`roX62~>
+jo5G^pYS?t!!WX*Z0h8_rk8=3=T&4&=,OWRrUg*jr+Ya&"<*NDm/?,I!/pdU"\F!1cLCi+rrC15
+!!FU(\E<_=rr=/4!!GcK]BK4OrrM:.nc/jq:Nhr;kPF<?J,~>
+jo5G^pY^2R8d8%@_X7'prk8=3M#BpKBSsFcrUg*jr0-_E"B:W)m/?,I!3Q2l"^u\IcLCi+rrC^D
+8d&4O\E<_=rr?Hu8d&U\]BK4OrrMOtnO`soG*B`)qW7a-~>
+jo5G^pYhS#J-LV"c0b6&rk8=3XSmYPFGd]orUg*jr3GpE"FlZTm/?,I!6+ne"`ns[cLCi+rrD*O
+J-:7U\E<_=rrA,OJ-:%Q]BK4OrrM_SnULd_G*B`)qW7a-~>
+jSo>]p>/^*!!OX"g@G+=^]+9nr;Zt2Nkju[o`#!ldf]1A")b@#puq_Yq],S8"Uo7&ZJbNMrrDW^
+!!F!fYi,B-rr=/4!!GcK]BK4PrrM^JnGibPEepsSp&=(QJ,~>
+jSo>]p>:>W8d/[thX^OA^]+:RrCR3/Nkju[o`#!lhG!N5"+7?1puq_Yr*K@p"\rriZJbNMrrD`a
+8d&"CYi,B-rr?Hu8d&U\]BK4PrrMh3nOa!iEepsSp&=(QJ,~>
+jSo>]p>DP#J-CtCipusE^]+;(rI>#lNkju[o`#!ljb!)S",=&;puq_YrJpl-"b(BEZJbNMrrDid
+J-::PYi,B-rrA,OJ-:%Q]BK4PrrMqanULgdEepsSp&=(QJ,~>
+j8T8]p>U&nhuErc:Tj*Yr;OS5!#5A3"EK[Fmf)hX!W,O]!!G-KcLLnurrB+u!!PE,QH/Cko`"sk
+-M7?A"+@-%psf<D+7fI87Z+hArSmhXj!aEt"tFPCV9n]/jSs`~>
+j8T8]p>V6/i(=2KJ&(IFr;OS5!*K1l"EK[Fmf)hX!W.?;8d&LkcLLnurrC"98d/LDQH/Cko`"sk
+AG&Ot97<bmpsf<D@.Qtn@Z%e]rSmhXlXoZZ#$5_pV9n]/jSs`~>
+j8T8]p>W'&i.)#`U!;uur;OS5!/g`*"EK[Fmf)hX!W/Y_J-2=enc%eQ!7h$us)nL1a6iitrrN+^
+oRI$lW7q$rrrA,OJ-:%Q]BK4QrrMYSnULggDh=h4n,28HJ,~>
+ir9/\pZ.SOh>d^)K])IurPed:oDJXm%<Rr\o)A7\!WK_&!!EL[]&ihRrr>1\!!NI<JZIN!o)A\b
+oDeu+T@<J_rr=/4!!GcK]BK4RrrK_KnGib<D18(tlMBQ@J,~>
+ir9/\pZ/;QhF[r\U>tkArPed:pAISe:3;iHo)A7\!WL=78d%hD]&ihRrr@0?8d.k(JZIN!o)A]@
+oL]4+T@<J_rr?Hu8d&U\]BK4RrrLGMnOa!cDLS1ulMBQ@J,~>
+ir9/\pZ/f;hLGci\E*8XrPed:q>GgIIWUq#o)A7\!WLdCJ-1_@jnn<B!1s.>"E8pmg@t1<!2fC=
+"+-Zhp!j!AO7Rl)G)EoqrT!nYh2LlS#'k-9T#g3nj8XW~>
+iVs&[puoFNh#ITiD9q_HrQ"p<ci!hH)0h_#o^Vq^qCM4<"AP`Dp&=:W!6b<@"Y=_W_!:jgrr@67
+!!H2dbOPS^rr=/4!!GE?\`WhOrrM_0n,N\IDgn4ok5##:s*t~>
+iVs&[puoY3h+@iMP1K-trQ"p<h>KqK;L"b\o^Vq^qIoIm"Dajbp&=:W!8@BD"^#i._!:jgrrAY_
+8d&jpbOPS^rr?Hu8d&IV\`WhOrrMh]n4EpgDgn4ok5##:s*t~>
+iVs&[puoe]h1,Z`Y1rI@rQ"p<kP]o6H[)+0o^Vq^qNUT%"G*E#p&=:W!9O00"aG*N_!:jgrrBY&
+J-:1bbOPS^rrA,OJ-:+Q\`WhOrrMr)n:1aeDgn4ok5##:s*t~>
+i;Wu[qWuaU$Jb[c#%#OAq#/>7!3c>$"=&5ef(SY6!WAP[!!F%"_s@9err?=&!!QPSUt,,:o)A]d
+oDf"ZOMgGaec,Uknc/h9HIhZarosFaqk"ku!!i`qEe9n#jS/Z5s*t~>
+i;Wu[qWuaq:u+_I:5I?dq#/>7!64t0"BBcBf(SY6!WBIu8d&%T_s@9err@uU8d/mVUt,,:o)A^(
+oL]6qOMgGaec,VWnk''gOk91$rosFar4?;*8dJ*tEe9n#jS/Z5s*t~>
+i;Wu[qWub0K&(q\Ju72gq#/>7!8%1""F5<ff(SY6!WC14J-:@b_s@9errB5#J-Bq@Ut,,:o)A^;
+oRI'jOMgGaec,W1npgmqU=f&6rosFarQgMoJ-^XGEe9n#jS/Z5s*t~>
+hZ!`Uo%pZ;g].K^?-_m5rQG3@Mu<VY0RftTq!e:anJ:]r")+moq!A"]k61ba"W_T@]&rn[rrCI=
+!!Fg/]''%Brr=/1!!X3S]^Y^orpKdflAHnV!!jBGG)3!9k4el6s*t~>
+hZ!`Uo%poqge%`FLXbberQG3@Xo1ip=am=(q!e:ao3(ZW"*h$*q!A"]mS3[Q"]KE!]&rn[rrCpJ
+8d&:R]''%Brr?Hr8d8C[b4,3(rpKdfn>p-h8dJ:-G)3!9k4el6s*t~>
+hZ!`Uo%q*DgjfQ[V:b52rQG3@`Vk;iG^cUGq!e:aonr?k",*l6q!A"]o7Hsl"ab6I]&rn[rrD6S
+J-:4U]''%BrrA,LJ-Lh3eF<82rpKdfoYls^J-^L@G)3!9k4el6s*t~>
+h>[ZWpZTt`,hrA'$uO\eq>SY=!,2<2"?M+:htljB!W@H<!!FsDbjbW!rr@EE!!Q#@T$R!,nc&Xd
+"SD`t(50!Qqpk]H+70%7)dScMnbN(\rr2]m"THu<9*F_a#ms"=IZq"_lM:G;s*t~>
+h>[ZWpZTtq?JJ-V;N]c(q>SY=!0mFS"C6S]htljB!WA_`8d&IhbjbW!rrAel8d/[LT$R!,nc&Xe
+9_D!\;M;@8qpk]H@-pPm>`#`8o(i1]rr2]m"TIDfIn]?(#u+cHIZq"_lM:G;s*t~>
+h>[ZWpZTu)LtmLaKWEquq>SY=!4;]T"Eo@!htljB!WBY%J-:@jbjbW!rrBb2J-C">T$R!,nc&Xf
+K(XWsI>"ocqpk]HO6qH(MlF\OoD/:^rr2]m"TI]/V1S2e$%?u9IZq"_lM:G;s*t~>
+h#@TXqXE@]F;EX3"W<3Xo)&F4rr>Rf!!GcE[,_)QrrM$_oDf!sK"0n=mf*=^'`J(9%W7$-i;)mB
+!WFSA!!EISWS@3urr=/*!!`TO7UCD#R[X2E"+FiG&+0E)&j^D^N2+/Bn,!%@s*t~>
+h#@TXqXE@]N`Oq-"^7_^o)&F4rr@HF8d&RU[,_)QrrM:YoL]6ZL:H=Amf*=`=T1nr:2blni;)mB
+!WHa)8d%h:WS@3urr?Hk8dA%!HAeDs[^Q.D"/:s%<UNHd:g\3hN2+/Bn,!%@s*t~>
+h#@TXqXE@]TS2*N"c9\Jo)&F4rrAknJ-:"J[,_)QrrMJ=o7-q#\E*PTrrN"SrdY0$E/(^Wq=+Cb
+rfm)+"Fkm"g\B>!!0?Ap#_J/2XLc<lb00e."2;(4L[K["I!'IVN2+/Bn,!%@s*t~>
+gA_BUpZpGDA.IAp"?!RMpANA<!$qLC"B1,fkPalL!W6-m!!Gffeb&k0rrADa!!PH-QcSUnn,EAc
+oDeu/T[`Ybrr=.]!!t5jG_r*'dHC3#h>`!~>
+gA_BUpZpGEK2UJs"Dkm;pANA<!+Yt""D3J$kPalL!W7cF8d&h'eb&k0rrBJ*8d/LDQcSUnn,EB@
+oL]4-T[`Ybrr?HI8dSU9G_r*'dHC3#h>`!~>
+gA_BUpZpGFRY'=F"I$pjpANA<!0[;2"E]I2kPalL!W8thJ-:G!eb&k0rrC7@JH'cpQcSUnn,EBd
+oRI$jT[`YbrrA,#J-gF<G_r*'dHC3#h>`!~>
+g&D<Vr:K4%ZsO=!!!NREf^AS7df0:Mr;Zt/NPFcWn,EFfa7B96'9U/sr9sXc./j2M")!1dg\:.9
+!.shC"B:c4o)@5?!$Ce4!\Go/f)Q$Y.ri5UmeZq<s*t~>
+g&D<Vr:K4%[t%?38d.qNg$\\8df0;@rCR3.NPFcWn,EFfealB9;3A`\r9sXcB)YC+95K0\g\:.9
+!2fB\"DX=Jo)@5?!+>Cjs&]7qf1H9@?&-/JmeZq<s*t~>
+g&D<Vr:K4%\<qm(J-CP'g@"e9df0<!rI>#lNPFcWn,EFfht)@$J!%V5r9sXcPl6+8Dh5"Ep[8%]
+_"<-[HC2qIrmq)LO7Rl'GBn\hJ-LRk^=r#OrnRO(~>
+fDc*Tqt&mqZ=k!/!!FdZk4SZ%rrCgO!!I,#`9mQlrrN!Vo)Jl'Xk`^@rrBD(!!OopP/6G]mf*9h
+oDf"ZOi6Ydf)G^lo)Jt_FFe0r+9^j-":,u"5ofV!"W2O:o(i7?s*t~>
+fDc*Tqt&mq[=hQ98d&\=k4SZ%rrD3Z8d'*q`9mQlrrN"9o1B+.Xk`^@rrC1>8d/=<P/6G]mf*:*
+oL]6qOi6Ydf)G_Xo1B3pFFnpW=A7mM"AMfu@TE.p"^.;Lo(i7?s*t~>
+fDc*Tqt&mq[[;^'J-:nOk4SZ%rrDHaJ-9qU`9mQlrrN"co7-prXk`^@rrCaNJ-C1=P/6G]mf*:;
+oRI'jOi6Ydf)G`2o76j_"+uJeK'%RdIXHHeIeS?rLp>k.q>K.LJ,~>
+ec,mRqXNUl\8s"R!!E[eh!k3krrB\0!!NOIQ-/Uqmf*=eV"4Qh.@JBJrpg!g7/[)h>(*3sp&=CZ
+!7g]A"=oAAkl'*4!$Ce4%7Pf?[^N-%G$@?g+VbIZ!"98O,rS>#EdiXsO-3'-!!NdIf^S_8huA3~>
+ec,mRqXNUl\;FVL8d%t`h!k3krrC@C8d.n0Q-/Uqmf*=e]^n_u>+*S&rpg!gHMpG>B76T+p&=CZ
+!9*QB"BgVokl'*4!+>Cj%:Od[[^N-'KQV!8=&Mie8dnHm='fHTGCG1#O-=PV8d/+Tg[P%;huA3~>
+ec,mRqXNUl\=860J-:M/h!k3krrCmRJ-CFDQ-/Uqmf*=ecLZPhJ!nLKrpg!gUA]TGEIFY5p&=CZ
+!9s-+"FH$<kl'*4!0?`%$?grm[^N-'Nei@=rdXTk%"<VPH[0m_IY3H;P`>Be"bj&7nG3%?s*t~>
+e,K^QqXNXp]SSiUhZ*dcdd-`.fDbi;r;Zs2G+-bKm/I+Z)Y="4!dqH:qXXXdci!hI)0(SGjnnHF
+!WEAt!!F'jZJtc4rr=/4!"qbW[+OEmcGI#jU7.@/N.uLtF8U%iGCbC#LlIRcTW#**_T9cO#ke6%
+'7o05qYoIRJ,~>
+e,K^QqXNXp]U*D-hb"$(dd-`.fDbiYrCR2fG+-bKm/I+[>P(Mj98'b6qXXXdh>KqL;K7W+jnnHF
+!WGmf8d&%FZJtc4rr?Hu8ePTh[+OEmcGI#jU7.@/N/2t4I/J:%I=[$)LlIRcTW#**_T9ce:A.9`
+<hA=@qYoIRJ,~>
+e,K[PqXNXp]V18?J-;IllhUP3rrC7@J-::DRa:TlrrMkQo7-q"[c@5TrrD6\J-C:>Mn8$ImJd4d
+K_9iuI>"ocqptcIO7Rl7G)3NXj4_eq[]?-kQ&pr\L4k3WK)^B3K8#,@P*quAYdqWla/agcJ-C_7
+iplmEiW"E~>
+dJjLOqXWe!^nP'OhuEmGa6*0rf`(qrr;Zs=Gb<LYm/I+bJb&jE7&&-%rq$-i>l=X+8U6lPo)A%V
+!WF_E!!EISWS@4!rr=/4!"qbY]'&n`o'>Amf$DIU^:LbYYPPC4Z*h0Y`m*#fiTBLrmc()Uo`,+G
+ZKCiXir=N~>
+dJjLOqXWe!^nuHZi(=,kaQE9sf`(rDrCR2jGb<LYm/I+bV"71]B;3iHrq$-iMu?6O@<nEho)A%V
+!WHj,8d%h:WS@4!rr?Hu8ePTj]'&n`o'>Amf$DIU^:LbYYPPC4Z*h0Y`m*#fiTBLrmc(QPoh#?u
+^?5+dir=N~>
+dJjLOqXWe!^oEQMi.(roal`Btf`(rarI>#tGb<LYm/I+b^%-[UU=/]5oD\fnrI>&mH(E7OrpB^d
+rg*5-"Fkm"g\BA"!0?`%&pB/DkP=lClf?mQccO)=]!eoJqQ:@6[CX/nc.(M,k3VU*ikC0?J-:tR
+k4SZ3s*t~>
+ci4=Nqt97.aKp@Q"QBCa3PjeMrn7;O;uH\!-@DWApZqh[j9P;W":pO.l2:2R!TO=^!!NdJL9fb5
+li-rkoDeu,T[`Ycrr=/4!"qbY]BK4nrr2ikp@Ie?lK@9hi;;C=i8Wh\lL+69q"jpfrWDu]ZQAc>
+"U8r"meZqDs*t~>
+ci4=Nqt97.aKpt>9]AYIC;T'*rn7;OL&FUH<d^^qpZqh[l;.%E"Ak/pl2:2R!UEJZ8d.t-L9fb5
+li-sDoL]4,T[`Ycrr?Hu8ePTj]BK4nrr2ikp@Ie?lK@9hi;;C=i8Wh\lL+69q"jpfrWDu]^0L>'
+"\k-5meZqDs*t~>
+ci4:Mqt97.aKqCmiID&l_rUOjg&D&PrI>#rI&,Ehli."RKCjZsIuqJ1r:L!inUgaj"b(BEZJbQE
+rrB4oJ-11leFhDm!0?`%&pB/Ekl(P\rquTcoC2,3kN1a^qqhb=ioK:fmdg&GqY^?l"8V6&MY2K'
+JuIDkqYoRUJ,~>
+c2S+Lr:fX<d(PlG%c[Nl2nn;Frn@AP2#RCW0n-+Wq<S%]r*Jsp"'qt]p[nIcF8Z(B3Hg_/mJZAN
+!/gCK"B(W2nc%/?!$Ce4"@e9\kl(AXs8N&ss8;]h"oJ5rrVlflrr`/d_]SLN"?sffp\s:SJ,~>
+c2S+Lr:fX<d(Q/s;<(7OBu&a%rn@APDZ*01>(3I+q<S%]r/:/="*:Nsp[nIcSGc%`>]uFRmJZAN
+!3>`a"DO7Inc%/?!+>Cj"Cd8#kl(AXs8N&ss8;]h"oJ5rrVlflrr`/db$FX3"E;HFp\s:SJ,~>
+c2S+Lr:fX<d(Q<<K&_@aNPOQIrn@APRf.a>G^cXIq<S%]r2fL?",!Z.p[nIc\c%$^F`s(kmJZAN
+!6"M["F?HZnc%/?!0?`%"Eo[7kl(AXs8N&ss8;]h"oJ5rrVlflrr`/dc\qFG"I.*mp\s:SJ,~>
+b5VbGqXWk&`iNbjj8]<@^>ekcg]%6br;Zs]JZdr-li."b`:Es3-()dArV$6lmh#Hu"Tr7bX4m=5
+rrB=r!!GKI_sIBSrr=/4!!GcK]BK4Lrr`2h\eF]9"<t22o_mqPJ,~>
+b5VbGqXWk&`ianpj@TPh^Z+tdg]%7RrCR2uJZdr-li."bddp'6=d[:urV$6loMtl_"\WT\X4m=5
+rrC+38d&Ra_sIBSrr?Hu8d&U\]BK4Lrr`2h`E)V'"CA[uo_mqPJ,~>
+b5VbGqXWk&`itb^jF@Am^uG(eg]%80rI>#oJZdr-li."bhXc7#J!e=FrV$6lpPAcu"E/gkg@sn4
+!8$jn"F?0Im/GW:!0?`%"Eo[7kl'?;"8q]7L\-*"MSJ-BrT=-1~>
+aSuPFr:]L7c+%g=jT#EP_;tCjh>[K@qu?jgKXBh<lMgn^2"UbN!d_65qY'phO8T%^-?>3`l29iH
+!8d>J"=8o9kPa$4!$Ce4"@e9\kl'<:"8q_s$1n3#'qsFRr9+*1~>
+aSuPFr:]L7c+&X9j[oYp_;tCjh>[KFr(7*#KXBh<lMgn^DY$I&K!aP6pAY,srCR5oEfe*$r9F:^
+kO_@L=,FNOrR_&L@.Qtn@Z%e]rS7DTr:7^$oL]6eXk`LFkPp&~>
+aSuPFr:]L7c+'6tja[Jq_;tCjh>[KJr."omKXBh<lMgn^R.Gh1LpZ1<pAY-5rI>&rEfe*$r9F:^
+mdu#4I#5GtrR_&LO7Rl)G)EoqrS7DTr:8'aoRI'u[G:?NkPp&~>
+`W$2Aq!d=l]RM<k!!?`Lk5!j5!6b9?"B1,ekPXWF!WJY]!!GEWdI[A4rrN!6r;["$I&#3`rp'La
+rX8B!";?BkiVM1+!$Ce4"@e9\kl'99"8q_Z"7uQr&#@nLr9402~>
+`W$2Aq!d=l]TQXa8csU^k5!j5!8@?C"D3J#kPXWF!WKS"8d&[tdI[A4rrN%%rCR6)I&#3`rp'La
+r_iD]"Aj]SiVM1+!+>Cj"Cd8#kl'99"8q_p9_:p[;QSRBr9402~>
+`W$2Aq!d=l]V(&BJ-2(Tk5!j5!9O-/"E]I1kPXWF!WL:5J-2IloD\Ob!W@uUJ-Bq?UX\r8lMgna
+L@p'"I=e]^qUb`IO7Rl)G)EoqrS.>Sr:7[ToRI'sZJ"gHkl6/~>
+_uBu@qXWe!^OdTl!!E@Ub3Sr]rrAtp!!HSd^?Y[]rrMX&oDf"%N4nHQq#:>dr;[!:E/M0dqs"+]
+r\jEL"9NkHgA';"!$Ce4"@e9\kl'68!rVP*o)Jn2WnHtAl2Q8~>
+_uBu@qXWe!^Q_sd8d%eMb3Sr]rrBk48d&mf^?Y[]rrM^loL]6]NkOZSq#:?+rCR5jE/M0dqs"+]
+rc%L%"+7$#pt,NG@.Qtn@Z%e]rS%8Qr:#pA8d&8!g%,++s*t~>
+_uBu@qXWe!^S6JGJ-2@blhfQ=!7Ujr"ETO9lM]uI!VM9@J-:@^^$,ChrrCCDJ-C=>MR_aEl2Le`
+Re2+4I](opfDbi3o7-seMS&*NgA_6Pn?2A5"GO/7o)7hQJ,~>
+_>ac>qt0+(^ip[\!!Eq.dd[4mrr@iP!!Hnq_sIBerrN(=o)JkpWS."?rr=bO!!P]6S':C$kl1Wp
+oDeu&T$m8_rr=/4!!GcK]BK4HrrW)b4nAXV.^\"(rp'N6~>
+_>ac>qt0+(^lDL\8d&(gdd[4mrrB(s8d'$n_sIBerrN(do1B+(WS."?rr?m68d/OGS':C$kl1XG
+oL]4)T$m8_rr?Hu8d&U\]BK4HrrW)bF7W!,@("e_rp'N6~>
+_>ac>qt0+(^n?DGJ-:J%dd[4mrrBt7J-9tU_sIBerrN),o7-ppWS."?rrAGbJ-C%>S':C$kl1Xg
+oRI$jT$m8_rrA,OJ-:%Q]BK4HrrW)bRe)%4Lpl+3rp'N6~>
+^]+Q<r:T:)]OqT:!!GKkh"La*rr?U-!!IA-aRB,lrrC^C!!FI2a6ij%rrBD(!!NRBKWs>.kPkOB
+oDf"fQHAXqf`(pno)Jn_MS&*Nf`)$LcjfRH"Albjq#9UZJ,~>
+^]+Q<r:T:)]nK8I8d&k6h"La*rrA2Z8d'4"aRB,lrrD$L8d&4]a6ij%rrC1>8d.n*KWs>.kPkOb
+oL]7!QHAXqf`(qZo1B-pMS&*Nf`)$LfMhB6"E_<9q#9UZJ,~>
+^]+Q<r:T:)^70`>J-:\6h"La*rrBA&J-9qXaRB,lrrD9SJ-:@fa6ij%rrCaNJ-CF@KWs>.kPkP%
+oRI'jQHAXqf`(r4o7-seMS&*Nf`)$LhM(QO"HL.Sq#9UZJ,~>
+^&J<9r:K4&Y!D:Q"9O%gkka6;!'pJ_":B7<bjsrs!W5=V!!@;Ji;*6L!'pJ_"Yb%_`U*QdrrBJ!
+!!G0>_!D!Prr=/4!!GcK]BK4GrrW2pN:R#P!e\MXqs494~>
+^&J<9r:K4&Zu>8&"A=Wgkka6;!-eB6"AO!*bjsrs!W7678csOJi;*6L!-eB6"^,r3`U*QdrrC46
+8d&I\_!D!Prr?Hu8d&U\]BK4GrrW2pWq/gc99@0Yqs494~>
+^&J<9r:K4&\<6',"-gXcqV_ART`'BDIWUt$o&p#Rr1NY3",F2?q>1*kT`'BEG'&tfm/?,I!87!p
+"FH0Eli,Q:!0?`%"Eo[7kl'06!rhu0npgh1`p3Hes*t~>
+]Di*7qt&moL_B%S"=g4qo)@VJ!$(q;";#dIdIcW%!WK1l!!G?Sd.726rrC+;!!QVVVqC_BkPkPH
+oDf"<LUQ=Bf`(pno)Jn_MS&*NfDbpOn1+#0"<aVko)7qTJ,~>
+]Di*7qt&moS5eiI"C7hOo)@VJ!+#Oq"Aa63dIcW%!WKt-8d&Upd.726rrC[K8d/jVVqC_BkPkPN
+oL]6eLUQ=Bf`(qZo1B-pMS&*NfDbpOnRqGc"BhYOo)7qTJ,~>
+]Di*7qt&moWeB_h"G3Gto)@VJ!07#."FYKadIcW%!WLO<J-2Cio)ARe!9=!-"`Spgf_5=-rrDZ_
+J-:7T[cRG>rrA,OJ-:%Q]BK4FrrW2jPOj;-Ju@)grTsQ7~>
+\c2j4qXE@Q46uqLHF`,5ir9#Uqu?j<H(`[\k5PJU)Y="4$&H7Wqu$Ho;#L@t*c[.OkPOEA!WEc*
+!!EXZXl'!-rr=/4!!GcK]BK4ErrN%nnc/c%\)R5Ms*t~>
+\c2j4qXE@UD<sjsKXp1?ir9#Vr(7)iH(`[\k5PJV>kCVk:5cdJqu$HoK)J:F;fRc/kPOEA!WH0n
+8d%k=Xl'!-rr?Hu8d&U\]BK4ErrN&0nk'"1\)R5Ms*t~>
+\c2j4qXE@YOmIT#N4J$Gir9#Wr."osH(`[\k5PJWN:_W'IuM&'qu$HoW;V5MH?"nVkPOEA!WIrK
+J-:=OXl'!-rrA,OJ-:%Q]BK4ErrN&Anpgh$\)R5Ms*t~>
+\,QX1pZg7G!q$$k3hb!mro="YfDGUO-%)N@pZDJVrHe&8"&c)MpAP!kg\_$T89pfRo)@eO!WG:T
+!!@8;fCmks!$Ce4"@e9\kl''3!V@E(!!F./bO5>rs*t~>
+\,QX1pZg7g9^YLUA"h?Aro="Yj8;LP<d^^qpZDJVrL`[R")b'ipAP!kk57gT@!S?jo)@eO!WI66
+8cs=6fCmks!+>Cj"Cd8#kl''3!VKdj8d&+`bO5>rs*t~>
+\,QU0pZg8(m=5=jU!iN2j8T,Fr."oqI&,Ehk5PJ\](:FSJuI>qrVllbr."rkH(NCRroX4]rgrb4
+"+6orp=TBFO7Rl)G)EoqrRLoKp5SWn".[R&rU'W8~>
+mJd4QqYpK?rrrE!o&#]Bmf3J"NkOZSj8T+gqu?jNI];)tjo5A:"S;Zs)O/5-rVlfs?i9s.$>bI'
+iVDR7!,D-+"BLu:o)@>B!$Ce4"@e9\kl''3!W@<7!!@#BhtZU=J,~>
+mJd4Wr;Q]ArrrE!o&$BDmn*^YNkOZSj8T,'r(7)oI];)tjo5AB9_:p[<0YAgrVlfsNr;QR9l>]l
+iVDR7!0m+J"DjOPo)@>B!+>Cj"Cd8#kl''3!WAV\8csIHhtZU=J,~>
+mJd4[r;Q]ArrrE!o&$m/mskOjNkOZSj8T,6r."opI];)tjo5AHK(OQrJ!@q=rVlfsYPitTIVsnH
+iVDR7!4;BK"FHT_o)@>B!0?`%"Eo[7kl''3!WBV#J-1V5htZU=J,~>
+n,EUdIh7t8oD6`3"TA)XY8cp1"(nRepZ)8RQi$gd2h8'gqW7_Xr'^,V#B6p)q#CBW"T8<(20G5*
+mJZ,G!0QmR"@/-hmf(o>!$Ce4"@e9\kl'$2!6t'7">H@jnG_kUJ,~>
+n,EUfUfFbioD6`3"TA)X\m"Pp"*U]upZ)8R[JWW">_'!7qW7_Xr-@m+#CNc5q#CB^:&RZf>'6.O
+mJZ,G!3l)f"CdP5mf(o>!+>Cj"Cd8#kl'$2!8@!9"C@VCnG_kUJ,~>
+n,EUh^PKr!oD6`3"TA)X_hmi4"+mQ,pZ)8RbPZknGCZjRqW7_Xr1NY3#DTJ?q#CBcK)L6"FT[rM
+mJZ,G!6Fe_"FH<Nmf(o>!0?`%"Eo[7kl'$2!9<U"".[X*rpKf:~>
+n,EX9!!!tXg$nparri>tm(a\3!!GTUbjk\nrr@0=!!GQ>ZJtcCrrN+qo)JtOSBg[(s)7i9"Ti+_
+WnR1,rrC%1!!F^-]]f=Irr=/4!!GcK]BK4CrrN$5o)JmtL:QFCmf.e~>
+n,EXH8kN@1g$nparri>tm)WK%8d&[mbjk\nrrASe8d&LRZJtcCrrN,4o1B3oSBg[(s-`dW"DNCd
+g@jS,!7g^6"B^Pokl'37!+>Cj"Cd8#kl'$2!W6-m8d%hD\`N_Vs*t~>
+n,EXSJ:NR#g$nparri>tm*1FWJ-::gbjk\nrrBY.J-:%JZJtcCrrN,Fnpgn6cLLo6\,:aZDh+kA
+p>c/QiUhX'I#>T#rRq2NO7Rl)G)EoqrRCiJr/1&q",aYNqsOK7~>
+n,E[i#QOj,[bUTUbl7eBnAQL>!!FL)^?GLUrr?!q!!G`F[cRGJrrMg/oDf("Kt?FDmg/jl"WqcF
+^?GLTrrDKZ!!EsfZJkZ5rr=/4!!GcK]BK4CrrN*rnc/buVUtP0s*t~>
+n,E[k:J+6*[bUTUbl7eBnB>5/8d&1R^?GLUrr@cN8d&RW[cRGJrrMjsoL]<]Lq;aGoMGKY"]TN&
+^?GLTrrDW^8d%tCZJkZ5rr?Hu8d&U\]BK4CrrN+Nnk'")VUtP0s*t~>
+n,E[kKReT;[bUTUbl7eBnBm3bJ-:7Y^?GLUrrB(sJ-:%M[cRGJrrMnPo7."&]&rnaK`-E)H?,%[
+kksK@!;?&8"FYp.iVM7-!0?`%"Eo[7kl'$2!WK"eJ-)V"p?qs2~>
+n,E[m4obQgMSn]VbPq\Bo#)44!!ERZYi,B=rr=kQ!!H5W]'0+RrrN(9o)JnfVUkEiqu?moHD&^X
+ro="ZrYP2,"*g`tpt>ZI+7fI87Z+hArR:cHII[@@3L7bTrpTl;~>
+n,E[mG"PA%Oi-G]bPq\Bo#t/*8d%k?Yi,B=rr?s78d&a_]'0+RrrN(ao1B.$VUkF9r(7-%HD&^X
+ro="Zr`\qd"+-s"pt>ZI@.Qtn@Z%e]rR:cHU@LnZ@$\n&rpTl;~>
+n,EFfT)O6BQG_tbbPq\Bo$W<aJ-:@RYi,B=rrAMcJ-9tN]'0+RrrN)*o7-spVUkFTr."rkHD&^X
+ro="ZrepE!"+I0%pt>ZIO7Rl)G)EoqrR:cH^%-[VI?qtCrpTl;~>
+mf*90rW!'WW7LV?bPq\Bo;Vo`!!@>=f_=J,!"f&."B^VslM]cC!7CB<";d9>i"5he"Uf1&[,Ur@
+rr>O\!!?MtdIc,l!$Ce4"@e9\kl'!1!1iZ\"<!*.kPXfKJ,~>
+mf*9Wr^m<&W7LV?bPq\Bo=Rcf8cs@7f_=J,!*/qh"DEb.lM]cC!8R0<"B1N%j&Q%M"\rrj[,Ur@
+rr@E<8crt%dIc,l!+>Cj"Cd8#kl'!1!4hYm"B12hkPXfKJ,~>
+mf*9trdY-(W7LV?bPq\Bo>lLRJ-11pf_=J,!/UQ'"E]U:lM]cC!9Ng&"FlWQk(rtd"b(BF[,Ur@
+rrAecJ-1.hdIc,l!0?`%"Eo[7kl'!1!6t(b"FZ0=kPXfKJ,~>
+mf*9kr;Zq@]]K"4rrW,hB(>p(@%5O8jo5>LqZ$b0O2C8_j8T/X2"L\KBWl^Z!!P6'QcSUniVrmu
+oDf"]PfW=mgA_-po)Jn_MS&*Ne,KEZnc/dpJ?@](n,In~>
+mf*:,rCR0E]]K"4rrW,hNq,dEDk#,Gjo5>Qqaq!-O2C8_j8T/XDY$I%H*<\78d/CAQcSUniVrnH
+oL]6rPfW=mgA_.\o1B-pMS&*Ne,KEmnk'$XJ?@](n,In~>
+mf*:<rI>!2]]K"4rrW,hXR^lDHCN:Rjo5>Tqg\fkO2C8_j8T/XR.Gh0Ks.cZJ-C(=QcSUniVrnf
+oRI'kPfW=mgA_/6o7-seMS&*Ne,KF'n:1SBhYHX?J,~>
+mf*:Rr;Zs>T$Qp)b5VP@j;%7d"B(K*nG_SM!6b6>"DEt<mf)8H!WJDV!!4j?')_e6!b$VZg@sP*
+!1i`^"=f>Cl2B?9!$Ce4"@e9\kl'!1!5@t'")+CYp$_p2~>
+mf*:WrCR2nT[3-+b5VP@k?.=J"DF%@nG_SM!8@<B"E0ICmf)8H!WKCr8ci=d<r>PmBn35;pYc&O
+\b&Js=c9uXrS%8O@.Qtn@Z%e]rR:cHd.'^1F.q.Wn,In~>
+mf*:ZrI>$%T[3-+b5VP@lA>+_"F-0PnG_SM!9O*."E]gHmf)8H!WL12J,u*nr."ogJ?%>ti;Wf&
+oRI'lMnSBRgA_/6o7-seMS&*Ne,KF)nUL^hU"/i)s*t~>
+mf*=e-N*oI:p]$RrlY6AqM"M@"A"Tjm/H/I!3>ts"ETjNnG_GI!UU-a!!*3jqu?mBEfRp!r8@ST
+an,Q9'83[NqqD&M+7fI87Z+hArR:cH^@;1+<1(o"rp]r<~>
+mf*=eAGo+'EO4NsrlY6AqPNjV"D!S1m/H/I!5n\+"ETjNnG_GI!UrnW8c_Rur(7,lEfRp!r8@ST
+f^qc=:kZ.6qqD&M@.Qtn@Z%e]rR:cHdIBg3C7*68rp]r<~>
+mf*=eP5Tn6LpPt5rlY6AqRuKN"F-!Em/H/I!7gss"ETjNnG_GI!V:s8J,k3!J-C7>NkaiVi;Wf;
+oRI'mKX0V7gA_/6o7-seMS&*Ne,KF)nULagR*>+"nGe"~>
+mJd/pr;Zs)M8niYb5VPBjp1MY"@nEblM]lF!/paT"9N\3bjs`m!W?*k!!!)u!!Q&BT[NH2i;WfJ
+o)Jl;W7q%#rr=/4!!GcK]BK4BrrBe'!!G`P`9mQns*t~>
+mJd0HrCR2dP/cebb5VPBlVI.F"CmD)lM]lF!3Q,j"*BmRo&9TLrJ0u:!)*5^"_)eNde!IrrrD``
+8csI>gA'D%!+>Cj"Cd8#kl'!1!7C=/"CmP3mJcVTJ,~>
+mJd0ir."m9`p3KErrW2fKCjZsGDs9$rT=+[`VY/fFI15BiVrrWWU53>EdFD,oD[\J!;Q/9"+I3&
+ptG`JO7Rl)G)EoqrR:cHhXQ+!H'#u3rp]r<~>
+mJd0Rqu?jKW7CM=b5VM?:\4Vi6]/P?rT=+[B`%i5%<e2eo\ofNrjD.o"Uf1&[,Ur>rrN*CoDeu!
+T$d2arr=/4!!GcK]BK4BrrB(h!!G?@]]oCas*t~>
+mJd0or(7)tW7CM=b5VM?Jb2P;@>__]rT=+[Pl+,V:3N)Qo\ofNrlOS#"\rrj[,Ur>rrN+.oL]4'
+T$d2arr?Hu8d&U\]BK4BrrBt,8d&IY]]oCas*t~>
+mJd1/r."p'W7CM=b5VM?V=]9@GDa&srT=+[[/>FWIWh1,o\ofNrn$Rg"b(BF[,Ur>rrN+\oRI$j
+T$d2arrA,OJ-:%Q]BK4BrrCU>J-:1V]]oCas*t~>
+mJd19qZ$_.]&NP.rrN+foDf"[M7VpLk5PEOqu?j/GFd1Si;WiS)XdY020P>-meu#B!)E.d"@89m
+mf(u@!$Ce4"@e9\kl'!1!1r]\">GS>k5=`KJ,~>
+mJd1Eqaps<]&NP.rrN,-oL]6oM7VpLk5PF/r(7)eGFd1Si;WiS>jk8g>'?7Rmeu#B!.jc7"Cm\:
+mf(u@!+>Cj"Cd8#kl'!1!4q\m"BpPhk5=`KJ,~>
+mJd1Mqg\d.]&NP.rrN,AoRI'hM7VpLk5PFWr."p!GFd1Si;WiSN:29#F`s+mmeu#B!2fC="FHBR
+mf(u@!0?`%"Eo[7kl'!1!711c"F>g3k5=`KJ,~>
+mJd4c&,ZD1$BiR!r6#$>f^o.H7YnY>r9""Z./X&J&p^,!p#,iNrc@N."CH\Zg@sG'!.+8;"=B&>
+kl'99!$Ce4"@e9\kl'!1!.aS>"=f)2j8AEHJ,~>
+mJd4c<;]>k:702kr6#$>iq,hG@YhVZr9""ZB)G7(:jJ\_p#,iNrgN:J"DE=cg@sG'!2/sV"BUMo
+kl'99!+>Cj"Cd8#kl'!1!2T-W"B^>`j8AEHJ,~>
+mJd4cL\lT(SBC6sb5VJ,oRI'fLq;gJk5PFGr."otH(WUZi;WiW\*nhMDh+kApYGiL]_$^WI#GZ$
+rS.>PO7Rl)G)EoqrR:cH_!upXHA&Wbr:'`:~>
+mJd4d9)ASk0<Egurlb<Br<r8u"@e6Zkl'ZD!!N3""<)T\f(S#$!6t!5"Wh]E^?GLNrrAbb!!Ejc
+Z/PQ6rr=/4!!GcK]BK4Brr?U"!!Fa&YMf9Hs*t~>
+mJd4dIeu_?@'&#Qrlb<BrDN;\"Cd5!kl'ZD!)3;_"B'Q?f(S#$!8?p7"]KH%^?GLNrrB_(8d%qB
+Z/PQ6rr?Hu8d&U\]BK4BrrA2O8d&7JYMf9Hs*t~>
+mJd4dV#,ZFKrir!rlb<BrIsop"EoX5kl'ZD!.t-!"FGHhf(S#$!9<R!"aY3L^?GLNrrCC;J-:=R
+Z/PQ6rrA,OJ-:%Q]BK4BrrB@pJ-:1MYMf9Hs*t~>
+m/I':q>^V,]]An3rrN*Ko`,+kMS/0OkPkPBqZ$a<H_f<ghu<`T/b&fE8:$oUoD[SG!5\7,"*CEn
+pY5]J+7fI87Z+hArR:cH3:QtO.=eSYqXFN8~>
+m/I'^qFUj;]]An3rrN+4oh#?uMS/0OkPkPJqapuhH_f<ghu<`TC%4e!@!\HmoD[SG!7UO3"*pcs
+pY5]J@.Qtn@Z%e]rR:cHEUcX(=FdR3qXFN8~>
+m/I(#qLA[.]]An3rrN+`omd0fMS/0OkPkPPqge]n!i4KChu<`TQ19A.EdFA*oD[SG!8mBu"+I-#
+pY5]JO7Rl)G)EoqrR:cHSFM+4H@W0UqXFN8~>
+m/I'qq>^X(N6:MbbPqQ+o`,,"N5"TUkPkOoqZ$a<I&>Tlhu<`VMXg`N#]#1$iVM@0!8d;I"BM&>
+oD[PF!$Ce4"@e9\kl'!1!"AAt"=\l(htljBJ,~>
+m/I(0qFUlcQ-/IkbPqQcoh#@$N5"TUkPkP-qapuhI&>Tlhu<`VX7Ajd9PoNjiVM@0!9`rG"DjUT
+oD[PF!+>Cj"Cd8#kl'!1!)i>Z"B^2WhtljBJ,~>
+m/I(>q1&R;b3]&LrrAY`J-9tQ^?Y[[rrCmPJ-:4HVV1b%rrN,9npgmmDhbUWqV;)Nmdkr3I%8RT
+rnRMRO7Rl)G)EoqrR:cHL@KcsH@W0UqXFN8~>
+m/I(Uq#COAW7LS>bl7Z0o`,,0OMgGakPkOKqZ$a<I&>WmhZ!W5"S2Ts/p*AumJYi?!<2Qi"?DXa
+mf)#A!$Ce4"@e9\kl'$2!71-7">k\4i;2sCJ,~>
+m/I(Xq+:cnWn-e@bl7Zgoh#@*OMgGakPkOiqapuhI&>WmhZ!W=9_1j[=EKhJmJYi?!<2R^"CRD3
+mf)#A!+>Cj"Cd8#kl'$2!8[-:"C$G[i;2sCJ,~>
+m/I([q1&U$Wn-e@bl7[:omd0cOMgGakPkP*qge]o!iF]HhZ!WCK(FKrGBB+imJYi?!<2S?"FQBO
+mf)#A!0?`%"Eo[7kl'$2!9`j%"F,L#i;2sCJ,~>
+m/I+c0)5JM7(D1LrltHC6hUK`$?VQTnG_VN!-%f8"<2`cgA'P)!W>:T!!HDQVqC^trrN*)oDf":
+M7VjIh#@?no)Jn_MS&*NeGfN0n,NSRK!=83nGe"~>
+m/I+cCACI)Cq/EtrltHCH1ji69luZBnG_VN!1E^V"B'WEgA'P)!W@358d&aTVqC^trrN*poL]6e
+M7VjIh#@@[o1B-pMS&*NeGfNQn4EgiK!=83nGe"~>
+m/I+cQMH%6MR_U=rltHCU%X!?IWUjsnG_VN!4_oVs*OmFgA'P)!WAV]J-9h?VqC^trrN+PoRI'l
+M7VjIh#@A6o7-seMS&*NeGfNhn:1XbK!=83nGe"~>
+li-rrp](D-_WL^>rr>:W!!FEgSC$ojrr>ai!!F-dVV:h%rrN+foDf%/E/V?jqqD&M+7oO9#D0,9
+qV;,A!!GcK]BK4Crr>IV!!GoJ[H.8Ts*t~>
+li-sIpdtX=_WL^>rr@698d&+;SC$ojrr@TH8d&%>VV:h%rrN,-oL]9`E/V?jqqD&M@.[%o9S0G)
+qV;,A8d&U\]BK4Crr@B78d&UW[H.8Ts*t~>
+li-sipj`I1_WL^>rrA\bJ-:1BSC$ojrrAqnJH'uuVV:h%rrN,AoRI*mE/V?jqqD&MO7[r*ItFi\
+qV;,AJ-:%Q]BK4CrrAe_J-9tJ[H.8Ts*t~>
+li-sQp](F$KZi`ZcMml#p&G4TI&,Ehk5PE,qZ$a/I&5Kih>[ND#PA'#4F!@?nc%8B!$Ce4")"C[
+p>#]=!!GcK]BK4DrrMEgn,NSrMS&*NnGe"~>
+li-snpdtZ`PKW=icMml^p.>HmI&,Ehk5PEkqapudI&5Kih>[NH:\@<`?$Mj`nc%8B!+>Cj"*:6g
+p>#]=8d&U\]BK4DrrMXan4EgtMS&*NnGe"~>
+li-t.pOE@;bO#,OrrAJ\J-:%CUtGG(rrA5ZJ-:=KV:bOurrMbEomd3fGaltJrn@APO7Rl(IA>Be
+h#Hqq"Eo[7kl''3!VM'6J-9nM]BK4_s*t~>
+li-t3pAb=+RFC['ci3t]p&G4qK!=20kPkPVq>^X*HD9!ah>[NS9_JGi!bHtdh>#\'!%7@<"A,!(
+nc%AEnc/e^MS&*Nec,W-n,NUqEKA$(rp]r<~>
+li-t@pIYQcU!rN/ci3uKp.>I"K!=20kPkPXqFUlbHD9!ah>[NSJ+ZD:C4`VEpt>ZIAb/LsAsgd3
+rn[VF8d&U\]BK4DrrB1j8d.n.O2L>`nGe"~>
+li-tIpOEBuVpk/5ci4!(p4*9cK!=20kPkPZqLA]tHD9!ah>[NSV"K6@Dh>.Jpt>ZIPOj;-I$i+I
+rn[VFJ-:%Q]BK4DrrC%-J-CFBO2L>`nGe"~>
+li."a&,-&,(oGsVrR(WFn+H_b#]Pa9kksWD!71H@"*gHfp"fWKrhfAh"WqcH_<V!Prr>7S!!Fp7
+_!CsUrrCsI!!GcK]BK4ErrN!Bn,NV6FdUDCrp]r<~>
+li."a<;/uf<iamDrR(WFo_(l\9Q5s(kksWD!8[HC"*gHfp"fWKrkA(u"]TN(_<V!Prr@668d&@Y
+_!CsUrrD9R8d&U\]BK4ErrN%-n4Ej`FdUDCrp]r<~>
+li."aL\H<%KW`turR(WFp\'+@IW17ZkksWD!9a0."*gHfp"fWKrm:@h"aY3N_<V!PrrAY^J-:7[
+_!CsUrrDNYJ-:%Q]BK4ErrN(]n:1[gFdUDCrp]r<~>
+li."b6M:B^,d,qprmLfH\+Te*/p<W*nG_VN!2oVm")==Po\BHIo*b9m"\*g3de*Olrr>:T!!Emf
+[,_&?rrCdD!!GcK]BK4ErrA\[!!GT8Ut>>/s*t~>
+li."bGkO`4?Er;XrmLfHbk=X4=E^(TnG_VN!5SD&"*0mXo\BHIohtNV"^lYMde*Olrr@668d%tE
+[,_&?rrD0O8d&U\]BK4ErrB\"8d&IJUt>>/s*t~>
+li."bT_<m=LU>k/rmLfHg\-.$GBT@snG_VN!7Uao"*g<^o\BHIpP&?l"`ep_de*OlrrA\_J-:=T
+[,_&?rrDEVJ-:%Q]BK4ErrCC6J-9tAUt>>/s*t~>
+lMgj0o`,+AZJP9Re,KDhp&G5!J#M)pk5PF+q#CP&Qd#"!h>[NS=SMk""`&k!iVM4,!'g#S")k*k
+pYPoM^[_@-7Z+hArR_&MpE8r*"TrCkZJt`Ls*t~>
+lMgjVoh#?n[bg]Ve,KE<p.>I"J#M)pk5PFRq+:d+Qd#"!h>[NSL\OIF9PoNjiVM4,!-[p*"*g`t
+pYPoMddg!5@Z%e]rR_&Mq-`\a"\WZcZJt`Ls*t~>
+lMgjromd1$\DHoXe,KEYp4*9bJ#M)pk5PFoq1&TmQd#"!h>[NSWq_)JIrC(JiVM4,!2&h4"+R6&
+pYPoMhsu:#G)EoqrR_&MqiL;t"b1HEZJt`Ls*t~>
+lMgjcoDf"@[,:QUeGfLgpAb@8EK%Qmr9""Z8GN5g8Wq*]rnRMRWqZPt.WgopmJY];!&*mC"A,*.
+o)@PH!3>Yj"@e9\kl'-5!-@T/"Y"PW`9dHks*t~>
+lMgk&oL]6n\)6lXeGfMTpIYTeEK%Qmr9""ZI/-A;AWk($rnRMR_>$V+=*0\HmJY];!,M-t"D=4L
+o)@PH!5nA""Cd8#kl'-5!1`LM"]of0`9dHks*t~>
+lMgk7oRI(#]&32[eGfN/pOEEoEK%Qmr9""ZV"oNDH'628rnRMRdeJ=rG]]1imJY];!138,"FZcb
+o)@PH!7gXj"Eo[7kl'-5!4hQK"aG-Q`9dHks*t~>
+lMgkCo)Jn?[,:QUf)G`Rp&G7mH(N@Qroa:^o*G-l">c"NlM]N<!V6]p!!H)GV:P@lrr<l+!!FI+
+_!:mUrr@uJ!!GcK]BK4GrrL"?n,NXo?%/X$p&=F[J,~>
+lMgkKo1B-m\)6lXf)G`ip.>KuH(N@Qroa:^p/(QW"C-o"lM]N<!VK@d8d&XPV:P@lrr?6n8d&1U
+_!:mUrrB1l8d&U\]BK4GrrLVDmn*asI\kWgrpTl;~>
+lMgkQo7-t"]&32[f)Ga%p4*<dH(N@Qroa:^q1SQo"FH*AlM]N<!V_<DJ-9k?V:P@lrrA#KJ-::]
+_!:mUrrC%/J-:%Q]BK4GrrM)1mskR[I\kWgrpTl;~>
+lMgna'Cu2,,cokprR_&L0_YPN+E3.FiVDX9!1W``";Za"jS[g5!WH3t!!N^ILpuIBf`(sCnGi[p
+I^.i-hu<[enc/e^MS&*Ng&D*9)".G.13/Dfk54THJ,~>
+lMgna=7]#e?F&G[rR_&LD"gO*<,dZ%iVDX9!4_er"B'u^jS[g5!WIlN8d.q-LpuIBf`(sFnO`pW
+J[+/0hu<\<nk'$oMS&*Ng&D*@>OP/f=`TP8k54THJ,~>
+lMgnaM=Z6#Lq)=6rR_&LR.l+7H>n\KiVDX9!6t:h"FZ$4jS[g5!WK+qJ-CC@LpuIBf`(sIn:1Uo
+Z/GK9rrB@qJ-:%Q]BK4HrrM_MmskRbEfRfpqsOK7~>
+lMgna9(Drb'qO.Nr7V)MS+cme"(-AGcLCeqrrMj>pAb;9Wn[='rrB(q!!OutQc\^qf`(rdn,NSg
+U"&`6i;Wd2nc/e^MS&*NgA_3:..7-?&o3#peFW\-s*t~>
+lMgnaIe$)6<iXsGr7V)M\G&T"95&XCcLCeqrrMq*pIYO6Wn[='rrBn38d/=>Qc\^qf`(s"n4Eh"
+U"&`6i;Wdnnk'$oMS&*NgA_3AB(&=r:i1`[eFW\-s*t~>
+lMgnaV"0$=KsTS*r7V)Mc1c_mIrBY)cLCeqrrN"[p4*4Eg\BP'!7L^o"a>*Uam]5]rrCsGJ-:@q
+eF`aurrAGWJ-:%Q]BK4IrrM_UmskUiDh+_7oD\1XJ,~>
+l2La,nGi^uJ_0AernRMSh[oM^"Zg^a]&WVKrr@E>!!G][cgq(jrrM^!qZ$atI]1omfDbhhn,NS8
+P/Q_ciVro@nGi\]MS&*Ng]%<;..7-?"^-)9_s%!bs*t~>
+l2LaSnO`s[R+Lg'rnRMSkZ.@L"^H,.]&WVKrrAee8d&arcgq(jrrMdjqaq!%I]1omfDbi=n4Egb
+P/Q_ciVroGnO`pnMS&*Ng]%<BB(&=r9P/O8_s%!bs*t~>
+l2LapnULdpWn6_9rnRMSmtg^g"a"gF]&WVKrrBb+J-:=kcgq(jrrMkJqg\fhI]1omfDbi[n:1Xj
+P/Q_ciVroLnULacMS&*Ng]%<GPja,,IrBRt_s%!bs*t~>
+l2La_mf3Jfc0G*'hZ!WJ0_YPO*cHY/eare'rrKG/p&G4'MSA<Ph#@ES=Sr.&$ZM!7k53g2!V[H"
+!!@,Di;)@3!0cpQ"@e6[kl'<:!RDnW!!`QtFH!Zbp\sR[J,~>
+l2Lb"mn*_0cKb3(hZ!WMD"gO+;f@8deare'rrL59p.>H_N5"NRh#@ESL\saJ:2l*%k53g2!Vosg
+8csIGi;)@3!4),e"Cd5"kl'<:!Sq/O8d8^GN4.U;rpB`9~>
+l2Lb4mskP/cg(<)hZ!WPR.l+8H>eD6eare'rrLf)p4*9qNkX`Th#@ESWr.ANIW11Uk53g2!W.iE
+J-1P2i;)@3!6Ob]"EoX6kl'<:!U#R4J-L%9N4.U;rpB`9~>
+l2Lb6mJmA6WoNaLi;WiL48/^Z%qL$Wa6WWcrrL"GoDf"aWS$qDh#@ASqu?mQG*pGArn.5NL[G-F
+*1G+@rSmhW/F`]C'md=Lqq_8QP76jZ#!?p\XOZn?m/MS~>
+l2LbAmRdUg[c@#Xi;WiOFSAB3:25-Ga6WWcrrLVIoL]7$WS$qDh#@Ajr(7,pG*pGArn.5NWpWI^
+<h.D'rSmhWC%4du;1c7;qq_8QZ;U*_#$c2'XOZn?m/MS~>
+l2LbJmXPFt^Z4tai;WiRSbIX=I;XD%a6WWcrrM)5oRI'sWS$qDh#@B&r."rpG*pGArn.5N_sMsV
+SBUL$ir9"EnULajLUQ:@h>[MtL@0QrFE3,;eai\*s*t~>
+l2Le`$gmuu"_lNTq>TFS!TQ$2!!`j8GE]]"q#9LW!P8d3!!EFP_<CdOrrM^!r;Zt!I]1upf`)!$%
+.+#t8@.1IroF(ZU[J0d%rThaqYoIR!Rj:$!!`QjEJ147mJQ;MJ,~>
+l2Le`;XR-\9oRZkq>TFS!UF[u8dA('GE]]"q#9LW!RF[88d%hE_<CdOrrMdjrCR3'I]1upf`)!1
+;XI'ZD6r*nroF(Z^@+Yt;2EZhqYoIR!T81h8d8UAKVm&^r9OB5~>
+l2Le`L$jHpJu.)eq>TFS!V)WQJ-UOAGE]]"q#9LW!SrM$J-1tNkkj08!V_<HJ-9k@W7q!urrMA=
+m=5=qZekHUjSo5-mskRmSC6m&ro*kXl(@?n#'=j<VU"T,li2J~>
+l2Le`1@+uE+IqNbr;PjY!NQq/!!`j8G)iuco`"(S!KRBR!!En#dI@(irrN*mrW!*0E/M6hr7V)N
+k:#Wr"BiV(q>TOV!TOm]!!XBfeFNG6roX4^dU*.F!!`^'EeUC6lMBfGJ,~>
+l2Le`D<sju?E`G^r;PjY!Q8+78dA('G)iuco`"(S!O,;g8d&%`dI@(irrN+Lr^m>hE/M6hr7V)N
+mUkcW"F@rIq>TOV!UEkT8d8Ifg%+t;roX4^hi1=t8dA%!EeUC6lMBfGJ,~>
+l2Le`R-]>,MnJ-Cr;PjY!S*)%J-UOAG)iuco`"(S!QTf^J-:FudI@(irrN+prdY0$E/M6hr7V)N
+o9AQk"HgR`q>TOV!V)'7J-Lk8hX^L@roX4^kc]U+J-UREEeUC6lMBfGJ,~>
+kl1Wpl2UuP\*<Varp'LacU[[/#7Og[Nj@=.r9=4^gHY*+";?sNnbh5C!1s/i"YY%db4,DarrL.[
+kl:iY_WU^nkl1\H.-^d<"$1nHoD&7_rpB^entJA8!!jBKG)E<FlM:GEs*t~>
+kl1XGl:M5#_Wgdlrp'LagjJff#>SoTNj@=.r9=4^k'-5c"B;&Hnbh5C!4i)$"^#r8b4,DarrL_X
+kt2)#`TR$qkl1\OB'Mto9Q6ZMoD&7_rpB^ep:Y\:8dJ:.G)E<FlM:GEs*t~>
+kl1Xgl@9&)bN\`urp'LakG.a$#C^T7Nj@=.r9=4^m@Wfs"G<`,nbh5C!6tLn"a>-Wb4,DarrM/?
+l$ro"`om-rkl1\TPj3c)JXEt"oD&7_rpB^eps>Z"J-^L@G)E<FlM:GEs*t~>
+kl1XCkl:ni6)s5Dr;Q-a!Obes!!aBOG`T2_nbh\P!p=J-li71mAC'Z=rnm_]mfWUj<dq"$pY5]L
+k@Xq\!!O@#iUZmFli."#*9@/,%R"Wo_WLXjr;HWoqu?]q"R`jU6O<#Y#mNM1I?UtcmJ?hHs*t~>
+kl1Xckt2.RFM$i3r;Q-a!R-/g8dA7/G`T2_nbh\P!q)IQlq.FTL=5Jbrnm_]nk;YJB7?f5pY5]L
+mZUB.8d/CmiUZmFli."5?KFcc;fn80d-LK(r;HWoqu?]q"S0j;Gu*d!#u"WDI?UtcmJ?hHs*t~>
+kl1Y&l$rthRE4[er;Q-a!SaOFJ-UF>G`T2_nbh\P!qWmSm!o7jT[W<(rnm_]on%^EFFL1BpY5]L
+o<X&3J-Cb8iUZmFli."CNobctL7>Kgh!Xt7r;HWoqu?]q"SUWfTnMc_$%I&:I?UtcmJ?hHs*t~>
+kl1Xrjo>W0FLgr:r;Q]hrr_\pCE)pH#Qcc!I$D(mnbhbR"8fZ2#j;6m&p2Ojq#13Ors8Qg!"4".
+\`WhHrr`,/>6s6h"sSWKo(i7`nG`O+:Yc!S%OaPFC4#l+")V4&([1o+"#"51LnVT=nGDDKJ,~>
+kl1Y/k"5kcR)ngmr;Q]hrr_l6Q<j,T#?l%nPd]98r9XFcr6C*pkXl%ZQ.PO#rVkgV#lSs>:O%c-
+k5=*9"8pH%:ub.P@%Z0Dq>L<^rrLW$h+@lNAp0#qTV;=Y"."da>3SWc93H(ULnVT=nGDDKJ,~>
+kl1Y=k(!\rZIJF>r;Q]hrr_uI[>jg/#Bk'6Pd]98r9XFcrS4H,k^WklY1rI@rVkgV#lU?FJU*-`
+k5=*9"8prVK]@ReN4%R6q>L<^rrM&Uh1,Z`P+AVY]DT;D[B,mVl$s(iGB%k`TtfCPqre!0~>
+kl1YIirBT%89UT9f\5'6gXEg.JlXAl!!j??FG-7#hX^U5rri>TSmN2l!!`TaHEuT*qY^?lkl1qf
+P5mXuR*"grj8T;^o"KuW&DdBn"#k>)j7iEKrr2fps8E,WVIpjV!"&obApB'![*Ih,r9"$0~>
+kl1YOj%9MUHCVIgi8agt"lIY<VMAjU8dJ:+FG-7#hX^U5rri>^\rBhP8dA%-S]'adqY^?lkl1qf
+Z:\ebR*"grj8T;^p!Bdl<Sg=S9Q$98kkFrPrr2fps8E,`^lr'48d\6qCj:]'[*Ih,r9"$0~>
+kl1YSj+%YqTXW(rkj%I!lfd-M^oE[jJ-^OCFG-7#hX^U5rri>fcEE,cJ-UXk[aOL9qY^?lkl1qf
+a+/u#R*"grj8T;^ptireLu*XgJX<ajlhC8Srr2fps8E,gd^+qAJ-pdMEd3>-[*Ih,r9"$0~>
+kl1\_'E.t9!uWR>/0Y_S!!s!!E.*kMb2i9pnc&]PB0Hj[!!j;u<c39EpA=jSrs%?\HC(Yap>u;V
+mrM8Le,Tms7VT7#q#15rG?-I0[/^U:*Ck$qLmt]mi:-UBjo9i~>
+kl1\_=8ker92\kq>?=\L8dS4!EIEtNb2i9pnc&]qPBKs[8dJO<KpJCqpA=jSrs%XYOI*!"p>u;V
+oULMBe4L-THBZA>q#164Sqh/^Zq:^)@WHjPS$L2pnG<.Gs*t~>
+kl1\_M>i#0IsZKhI"$RmJ-g[HEda(Ob2i9pnc&^3Z_!!,J-_""W3j2&pA=jSrs%k@TU2\2p>u;V
+pUR2ae:7sdTX!#;q#16E];h6R["&O2F`VqdS$L2pnG<.Gs*t~>
+kPl&N""mAeHA%6?P`gl>9IUD&!"'6$DL7;9^=_iKrp]pf+OU5l[G:3HlMh(e5JXG;jSS'=!8l'%
+"_?*EpASF+!"BDf88EO)P+oD.hsU:<j8XW~>
+kPl'39O_aWHA%6?P`guRDHoui8d\="E-mM;^=_iKrp]pf@+%XL^>//QlMh(eG/CDtjSS'=!9h^#
+"c:^jpAU)Z8e"Nt@rZgJP+oD.hsU:<j8XW~>
+kPl$\JV\_rHA%6?P`h)bL4Rs,$@R&;H]+W4f^8M6nG`KMdXVG=h!Y%(rs&Fn`3-o:qrRhXn'6Fe
+UsnK"ri`\Z%=WVHG'\h)U:/8&meHb@s*t~>
+kPl74`3,;fU9VGOaMu*/ZDX4D>s'#.huF,g-W"o6NM3o0k4JT>rsjj*?rBa(=BT-B?tX@rEURrJ
+@fKg9?2dY.:..N?3&ipe]\W;\li.1go\7O?n,DGK''ag]>Ydpc<Dub#?=$uKDJsN7mrBIe@UWYO
+>#8$k7R9@(1cB-Rd-gk$=CG3<?>=:jFEI+ps'cCE>#8$b5W^SL*Z>Lni;aGn'I>e:C4(VkQ(kS%
+eDp&nrSdd,~>
+kPl7DbH@%mU9VGOaMu*/ZDX4MG@jiKi(=AN<b6B%NM3o0k4JT>rsbupKm7W^FE2PGEclVPmWo"Y
+FE;JBrG2gSC2@KoB:limpAXCX#6+8Lb1H+]jo5YVTTaqKDJjH4D>eGUF*MutH6IQUFE;JACi!m#
+AnP^cA:h&4mesVLLO+ApIsucpI=-Bgp3I3kFE;D;CM.0e>[(6.:efn@&PQ&'?YFJ-Jr>ngZGY2P
+nG)t@s*t~>
+kPl1Nd&rRrU9VGOaMu*/ZDX4TM1j`9$\*GDFFK4C\^9L2r9jRp_QohtN/NLGK7SQ&It3+;K):'+
+JqSi4L5:\^]\W;\li.1go\7O?n,DGK$hV'6S<&M^KnFr,If4`tJ:W:<K)C-7It3*%K7nuCYgDh:
+bc%;%P)bQ]M2$]RK):&uJ,OirJ)PniIslZiG^+UfMj:$B_pm`9q#01OJ,~>
+kPlCqkfgcZeDTTZn*]Q+inDbu\ZVZjE)//'k5Yr'/PpG7LR"dMdH'lprpB^rqW5\tTq7jJTq\B\
+W2cr$n?*G,XJr+pVPKrZTV%gIT:i'nh"C[3rri2dk3Vm(rt>>)hS#hZSXc7CTVA6ZVPpMrXm`D#
+XfSS%Vl$>eU7e-LrgX7dYg;b9r9MS1rh9RlV5C2lXnAh;XfSM"VPKoXS=5e0P)tZ\I<B=7?VsWm
+5X.Fh/hZiL'fnHM<FKiqJqo;KR\[.!aOT89o_SREs*t~>
+kPlCqkfgcZeDTTZn*]Q+inDbu\ZVZlJT"ppk=Q1Z=_;c'LR"dMdH'lprpB^rqW5\tTq7jJTq\B\
+W2cr$n?*G,XJr+pVPKrZTV%gIT:i'nh"C[3rri2dk3Vm(rt>>)hS#hZSXc7CTVA6ZVPpMrXm`D#
+XfSS%Vl$>eU7e-LrgX7dYg;b9r9MS1rh9RlV5C2lXnAh;XfSM"VPKoXS=5e0P)tZ\K78)gF)>`-
+ARo:X>[6u,'jtK`CN+NIJqo;KR\[.!aOT89o_SREs*t~>
+kPl@pkfgcZeDTTZn*]Q+inDbu\ZVZnN/*#IJ.6pPG'/1fQ)D:BjRW0HmJd^nji+<pSt;RJU8=`c
+WiW>lXqRq=WMcVjUnXNTT:VXHTVf?Vp&=7V"T%QKm.fZA')qU]]r.KnS=Q:FU84Z`W2cr$n#d&#
+XK/:tVP^/`TV%eSS-YakcgLc0lccR3U'7?hVPpPtor]17XJr+pUnOENR[9;&OH#-QKnP&/JUi6#
+J,OiiIK+]pHiJI(IY*?6PFA;N]?&O]m.C/RhuA3~>
+kPkecp?_#0o_SLarY#2,q"*q9hUTfb[&KXYEDekD%J'Q3!tun?:i(N2N0gEMa4TSGqYog\%fGkT
+eBlRie(*%%g=tE>mb\W4gtLK8f[eU&da6=cbK\]*qW\"_rqcEdrT!nhqX31fcd:%eeCE.&g"P39
+hX02AhV?l>g=b-0eC;pncHOJ[jRrNNoA\6Ed*pOtg"bETh]:P.g=b-0eC)[eb/V<5]XY>QY,\Cq
+U7\!GR@';*p662UR%'bEWj&tH`m<8okjS3@rVkXQJ,~>
+kPkecp?_#0o_SLarY#2,q"*q9hUTfb[&KX[J8f%%:\.0j92JYqBQJQQN0gEMa4TSGqYog\%fGkT
+eBlRie(*%%g=tE>mb\W4gtLK8f[eU&da6=cbK\]*qW\"_rqcEdrT!nhqX31fcd:%eeCE.&g"P39
+hX02AhV?l>g=b-0eC;pncHOJ[jRrNNoA\6Ed*pOtg"bETh]:P.g=b-0eC)[eb/V<5]XY>QY,\Cq
+U7\!GR@';*p662UR%'bEWj&tH`m<8okjS3@rVkXQJ,~>
+kPkecp?_#0o_SLarXf&*q"*q9hUTfb[&KX]MhZlRJ.R-UH?a[^JrH%n[`@%`o(r@Orsntsi7--#
+dF6Xsf\5*8hX985h;$`<g"=m+eC)^icHFJblh]lG"TJ8mqYfIS&GkhNda-:edaZguf\,!5gtqGU
+*o>],g=k64f$r3td*BkYdcC*#rU]$tcHt%jf\,'9oA:SEgtLH6f$r-obf[rB^V%(`Ycb"(UnXKP
+S!fY0Q1gFTQC+/7UoLZ.^;eLNhrsP%qYgELs*t~>
+k5PS_r;?Nmp\ts,r;--VlJpXIaM,![TU1[bAm%u-r([l1AT<3OL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+k5PS_r;?Nmp\ts,r;--VlJpXIaM,![TU1^lG]@S9r+Zj_Ed3(cL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+k5PS_r;?Nmp\u!-r;--VlJpXIaM,![TU1atL4b&-J,OiqI1LgZL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+%%EndData
+showpage
+%%Trailer
+end
+%%EOF
diff --git a/templates/Russian-logo.png b/templates/Russian-logo.png
new file mode 100755
index 00000000..5edcdfe5
--- /dev/null
+++ b/templates/Russian-logo.png
Binary files differ
diff --git a/templates/Russian-packing_list.html b/templates/Russian-packing_list.html
new file mode 100755
index 00000000..4f2d2ad8
--- /dev/null
+++ b/templates/Russian-packing_list.html
@@ -0,0 +1,153 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th></th>
+
+ <td align=right>
+ <h4>
+ ôÅÌ: <%tel%>
+ <br>æÁËÓ: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>óðéóïë &nbsp;&nbsp;äìñ&nbsp;&nbsp;÷ùâïòá</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th width=50% align=left><font color=ffffff>Ship To:</th>
+ <th width=50%>&nbsp;</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ </td>
+
+ <td>
+ <%if shiptocontact%>
+ <br>óÏÎÔÁËÔ: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>ôÅÌ: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>æÁËÓ: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=15% align=left>óÞÅÔ No</th>
+ <th width=15% align=left>úÁËÁÚ No</th>
+ <th width=10% align=left>äÁÔÁ ÄÏÓÔÁ×ËÉ</th>
+ <th width=10% align=left>äÁÔÁ ÐÒÏ×ÏÄËÉ</th>
+ <th width=15% align=left nowrap>ëÏÎÔÁËÔ</th>
+ <th width=15% align=left>óËÌÁÄ</th>
+ <th width=10% align=left>äÏÓÔÁ×ËÁ ×</th>
+ <th width=10% align=left>äÏÓÔÁ×ËÁ ÞÅÒÅÚ</th>
+ </tr>
+
+ <tr>
+ <td><%invnumber%>&nbsp;</td>
+ <td><%ordnumber%>&nbsp;</td>
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%transdate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+ <td><%warehouse%>&nbsp;</td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>ðÏÚ.</th>
+ <th align=left><font color=ffffff>ëÏÄ</th>
+ <th align=left><font color=ffffff>ïÐÉÓÁÎÉÅ</th>
+ <th><font color=ffffff>ë-×Ï</th>
+ <th><font color=ffffff>äÏÓÔÁ×ËÁ</th>
+ <th><font color=ffffff>åÄ. ÉÚÍ.</th>
+ <th><font color=ffffff>"Bin"</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td align=right>[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</td>
+ <td><%unit%></td>
+ <td align=right><%bin%></td>
+ </tr>
+ <%end number%>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+</table>
diff --git a/templates/Russian-packing_list.tex b/templates/Russian-packing_list.tex
new file mode 100755
index 00000000..e97c857f
--- /dev/null
+++ b/templates/Russian-packing_list.tex
@@ -0,0 +1,161 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrl@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Ship} & \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.5\textwidth}{
+\textbf{Ship To}} \hfill
+
+\vspace{0.7cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.5\textwidth}{
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+}
+\parbox[t]{.4\textwidth}{
+ <%shiptocontact%>
+
+ <%if shiptophone%>
+ Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{P A C K I N G} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{7}{|X}|} \hline
+ \textbf{Invoice \#} & \textbf{Order \#} & \textbf{Date} & \textbf{Contact}
+ <%if warehouse%>
+ & \textbf{Warehouse}
+ <%end warehouse%>
+ & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+
+ <%invnumber%> & <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%transdate%>
+ <%end shippingdate%>
+ & <%employee%>
+ <%if warehouse%>
+ & <%warehouse%>
+ <%end warehouse%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrl@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Ship} & \\
+
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%serialnumber%> &
+ <%deliverydate%> & <%qty%> & <%ship%> & <%unit%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{12pt}
+
+<%notes%>
+
+}
+
+\vfill
+\centerline{\textbf{Thank You for your valued business!}}
+
+\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+\footnotetext[1]{\tiny
+Items returned are subject to a 10\% restocking charge.
+A return authorization must be obtained from <%company%> before goods are
+returned. Returns must be shipped prepaid and properly insured.
+<%company%> will not be responsible for damages during transit.}
+
+\end{document}
+
diff --git a/templates/Russian-pick_list.html b/templates/Russian-pick_list.html
new file mode 100755
index 00000000..75485600
--- /dev/null
+++ b/templates/Russian-pick_list.html
@@ -0,0 +1,153 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=64 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>P I C K &nbsp;&nbsp; L I S T</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th width=50% align=left><font color=ffffff>Ship To:</th>
+ <th width=50%>&nbsp;</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ </td>
+
+ <td>
+ <%if shiptocontact%>
+ <br>Attn: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=15% align=left>Invoice #</th>
+ <th width=15% align=left>Order #</th>
+ <th width=10% align=left>Date</th>
+ <th width=15% align=left nowrap>Contact</th>
+ <th width=15% align=left>Warehouse</th>
+ <th width=10% align=left>Shipping Point</th>
+ <th width=10% align=left>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%invnumber%>&nbsp;</td>
+ <td><%ordnumber%>&nbsp;</td>
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%transdate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+ <td><%warehouse%>&nbsp;</td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Pos</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qty</th>
+ <th><font color=ffffff>Ship</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Bin</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td align=right>[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</td>
+ <td><%unit%></td>
+ <td align=right><%bin%></td>
+ </tr>
+ <%end number%>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+</table>
+
diff --git a/templates/Russian-pick_list.tex b/templates/Russian-pick_list.tex
new file mode 100755
index 00000000..7acf6494
--- /dev/null
+++ b/templates/Russian-pick_list.tex
@@ -0,0 +1,143 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}rlXrcll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} &
+ \textbf{Qty} & \textbf{Ship} & & \textbf{Bin} \\
+
+<%end pagebreak%>
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.5\textwidth}{
+ \textbf{Ship To}
+} \hfill
+
+\vspace{0.7cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.5\textwidth}{
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+}
+\parbox[t]{.4\textwidth}{
+ <%shiptocontact%>
+
+ <%if shiptophone%>
+ Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{P I C K} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{7}{|X}|} \hline
+ \textbf{Invoice \#} & \textbf{Order \#} & \textbf{Date} & \textbf{Contact}
+ & \textbf{Warehouse} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+ <%invnumber%> & <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%transdate%>
+ <%end shippingdate%>
+ & <%employee%>
+ <%if warehouse%>
+ & <%warehouse%>
+ <%end warehouse%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrcll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} &
+ \textbf{Qty} & \textbf{Ship} & & \textbf{Bin} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> &
+ <%qty%> & [\hspace{1cm}] & <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+}
+
+\end{document}
+
diff --git a/templates/Russian-pos_invoice.txt b/templates/Russian-pos_invoice.txt
new file mode 100755
index 00000000..ec60c2eb
--- /dev/null
+++ b/templates/Russian-pos_invoice.txt
@@ -0,0 +1,48 @@
+<%company align=center width=40%>
+<%address align=center width=40%>
+
+ äÏ: <%till align=left width=3%> ôÅÌ: <%tel%>
+
+ðÒÏÄÁÖÉ: <%employee%>
+
+<%invtime%><%invnumber align=right width=16%>
+
+ ë-×Ï ïÐÉÓÁÎÉÅ óÕÍÍÁ
+<%foreach number%>
+<%qty align=right width=5%> <%description align=left width=24 offset=6%> <%linetotal align=right width=9%>
+ <%number%> @ <%sellprice%>/<%unit%>
+<%end number%>
+
+÷ÓÅÇÏ ÔÏ×ÁÒÏ×: <%totalqty%>
+<%if taxincluded%>
+ ---------------
+ éÔÏÇÏ: <%invtotal align=right width=9%>
+<%end taxincluded%>
+<%if not taxincluded%>
+ ------------
+ ÷ÓÅÇÏ: <%subtotal align=right width=9%>
+<%end taxincluded%>
+<%foreach tax%>
+<%taxdescription align=right width=23%> @ <%taxrate align=right width=2%>%: <%tax align=right width=9%>
+<%end tax%>
+<%foreach payment%>
+ ïÐÌÁÞÅÎÏ: <%payment align=right width=9%> <%currency%>
+<%end payment%>
+<%if change%>
+ éÚÍÅÎÉÔØ: <%change align=right width=9%>
+<%end change%>
+<%if total%>
+ âÁÌÁÎÓ ÏÐÌÁÔÙ: <%total align=right width=9%>
+<%end total%>
+<%if discount%>
+
+<%discount%> % ÓËÉÄËÁ
+<%end discount%>
+
+ óÐÁÓÉÂÏ ÚÁ ÐÏËÕÐËÕ!
+
+<%if taxincluded%>
+ãÅÎÁ Ó ÕÞÅÔÏÍ ÎÁÌÏÇÏ×.
+<%end taxincluded%>
+
+
diff --git a/templates/Russian-purchase_order.html b/templates/Russian-purchase_order.html
new file mode 100755
index 00000000..42d667f0
--- /dev/null
+++ b/templates/Russian-purchase_order.html
@@ -0,0 +1,105 @@
+<body bgcolor=ffffff>
+
+<table width=640>
+ <tr>
+ <td> </td>
+ <td colspan=3>
+<br>
+ <h3>úÁËÁÚ N 000<%ordnumber%> ÏÔ <%orddate%></h3>
+<hr>
+ </th>
+ </tr>
+ <tr>
+ <td width=10> </td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ ðÏËÕÐÁÔÅÌØ: <b><%company%></b>
+ <br>ðÏÓÔÁ×ÝÉË: <b> <%name%></b>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td> </td>
+
+ <td>
+ <table border=1 width=100% cellpadding=2 cellspacing=0>
+ <tr>
+ <th>No.</th>
+ <th width=90%>ôÏ×ÁÒ</th>
+ <th>ëÏÌ-×Ï</th>
+ <th>åÄ.</th>
+ <th>ãÅÎÁ</th>
+ <th>óÕÍÍÁ</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td align=center>ÛÔ.</td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <th colspan=5 align=right>éÔÏÇÏ:</th>
+ <th align=right><%subtotal%></th>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+ </tr>
+ <tr>
+ <td> </td>
+ <td>
+ </tr>
+
+ <tr>
+ <td> </td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td colspan=2>
+<nobr>÷ÓÅÇÏ ÎÁÉÍÅÎÏ×ÁÎÉÊ ___, ÎÁ ÓÕÍÍÕ <%subtotal%> ÒÕÂ.
+ </td>
+ </tr>
+ <tr>
+ <th colspan=2 align=left>
+<%text_amount%>
+ </th>
+ </tr>
+ <tr>
+ <th colspan=2>
+<hr height=1>
+ </th>
+ </tr>
+ <tr>
+ <th width=50% align=left>
+<nobr>òÕËÏ×ÏÄÉÔÅÌØ ______________________________
+ </th>
+ <th align=right>
+<nobr>âÕÈÇÁÌÔÅÒ ______________________________
+ </th>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+ </table>
+
+</table>
+
+</body>
+</html>
diff --git a/templates/Russian-purchase_order.tex b/templates/Russian-purchase_order.tex
new file mode 100755
index 00000000..fa4e1fe5
--- /dev/null
+++ b/templates/Russian-purchase_order.tex
@@ -0,0 +1,195 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ Subtotal & <%sumcarriedforward%> \\
+ \end{tabularx}
+
+\newpage
+
+\markright{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Amount} \\
+ & carried forward from <%lastpage%> & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.45\textwidth}{
+\textbf{To}
+\vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+Attn: <%contact%>
+\vspace{0.3cm}
+<%end contact%>
+
+<%if vendorphone%>
+Tel: <%vendorphone%>
+<%end vendorphone%>
+
+<%if vendorfax%>
+Fax: <%vendorfax%>
+<%end vendorfax%>
+
+<%email%>
+}
+\parbox[t]{.45\textwidth}{
+\textbf{Ship To}
+\vspace{0.5cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+Attn: <%shiptocontact%>
+\vspace{0.3cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{P U R C H A S E} \parbox{0.3cm}{\hfill} \textbf{O R D E R}
+\hfill
+
+\vspace{1cm}
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Date} & \textbf{Required by} & \textbf{Contact} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5ex]
+ \hline
+ <%ordnumber%> & <%orddate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Amount} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%linetotal%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ Subtotal & <%subtotal%> \\
+<%foreach tax%>
+ <%taxdescription%> on <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ Total & <%ordtotal%>\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ All prices in \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+
+%\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+%\footnotetext[1]{\tiny }
+
+\end{document}
+
diff --git a/templates/Russian-receipt.tex b/templates/Russian-receipt.tex
new file mode 100755
index 00000000..7f25a218
--- /dev/null
+++ b/templates/Russian-receipt.tex
@@ -0,0 +1,78 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.4cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.0cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+
+\fontfamily{cmss}\fontsize{9pt}{9pt}\selectfont
+
+\parbox[t]{12cm}{
+ <%company%>
+
+ <%address%>}
+\hfill
+\parbox[t]{6cm}{\hfill <%source%>}
+
+\vspace*{0.6cm}
+
+<%text_amount%> \dotfill <%decimal%>/100 \makebox[0.5cm]{\hfill}
+
+\vspace{0.5cm}
+
+\hfill <%datepaid%> \makebox[2cm]{\hfill} <%amount%>
+
+\vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{1.8cm}
+
+<%memo%>
+
+\vspace{0.8cm}
+
+<%company%>
+
+\vspace{0.5cm}
+
+<%name%> \hfill <%datepaid%> \hfill <%source%>
+
+\vspace{0.5cm}
+\begin{tabularx}{\textwidth}{lXrr@{}}
+\textbf{Invoice No.} & \textbf{Invoice Date}
+ & \textbf{Due} & \textbf{Applied} \\
+<%foreach invnumber%>
+<%invnumber%> & <%invdate%> \dotfill
+ & <%due%> & <%paid%> \\
+<%end invnumber%>
+\end{tabularx}
+
+\vspace{1cm}
+
+<%memo%>
+
+\vfill
+
+\end{document}
diff --git a/templates/Russian-request_quotation.html b/templates/Russian-request_quotation.html
new file mode 100755
index 00000000..ce164351
--- /dev/null
+++ b/templates/Russian-request_quotation.html
@@ -0,0 +1,98 @@
+
+<body bgcolor=ffffff>
+
+<body bgcolor=ffffff>
+
+<table width=640>
+ <tr>
+ <td> </td>
+ <td colspan=3>
+<br>
+ <h3>úÁÐÒÏÓ ÎÁ ÒÅÚÅÒ×ÉÒÏ×ÁÎÉÅ N 000<%quonumber%> ÏÔ <%quodate%></h3>
+<hr>
+ </th>
+ </tr>
+ <tr>
+ <td width=10> </td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ ðÏËÕÐÁÔÅÌØ: <b><%company%></b>
+ <br>ðÏÓÔÁ×ÝÉË:<b> <%name%></b>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td> </td>
+
+ <td>
+ <table border=1 width=100% cellpadding=2 cellspacing=0>
+ <tr>
+ <th>No.</th>
+ <th width=90%>ôÏ×ÁÒ</th>
+ <th>ëÏÌ-×Ï</th>
+ <th>åÄ.</th>
+ <th>ãÅÎÁ</th>
+ <th>óÕÍÍÁ</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td align=center>ÛÔ.</td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <th colspan=5 align=right>éÔÏÇÏ:</th>
+ <th align=right><%subtotal%></th>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+ </tr>
+ <tr>
+ <td> </td>
+ <td>
+ </tr>
+
+ <tr>
+ <td> </td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <th colspan=2>
+<hr height=1>
+ </th>
+ </tr>
+ <tr>
+ <th width=50% align=left>
+<nobr>òÕËÏ×ÏÄÉÔÅÌØ ______________________________
+ </th>
+ <th align=right>
+<nobr>âÕÈÇÁÌÔÅÒ ______________________________
+ </th>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+ </table>
+
+</table>
+
+</body>
+</html>
diff --git a/templates/Russian-request_quotation.tex b/templates/Russian-request_quotation.tex
new file mode 100755
index 00000000..49f1abe7
--- /dev/null
+++ b/templates/Russian-request_quotation.tex
@@ -0,0 +1,175 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Extended} \\
+ & carried forward from <%lastpage%> & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.45\textwidth}{
+\textbf{To}
+\vspace{0.7cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if vendorphone%>
+Tel: <%vendorphone%>
+<%end vendorphone%>
+
+<%if vendorfax%>
+Fax: <%vendorfax%>
+<%end vendorfax%>
+
+<%email%>
+}
+\parbox[t]{.45\textwidth}{
+\textbf{Ship To}
+\vspace{0.7cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{R E Q U E S T for Q U O T A T I O N}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{RFQ \#} & \textbf{Date} & \textbf{Required by} & \textbf{Contact} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5ex]
+ \hline
+ <%quonumber%> & <%quodate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+Please provide price and delivery time for the following items:
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}lXrllrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} & &
+ \textbf{Delivery} & \textbf{Unit Price} & \textbf{Extended} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> & <%unit%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\hfill
+
+<%notes%>
+
+}
+
+\end{document}
+
diff --git a/templates/Russian-sales_order.html b/templates/Russian-sales_order.html
new file mode 100755
index 00000000..9a961332
--- /dev/null
+++ b/templates/Russian-sales_order.html
@@ -0,0 +1,171 @@
+<body bgcolor=ffffff>
+
+<table width=640>
+ <tr>
+ <td> </td>
+ <td align=center>
+
+<table width=90%>
+ <tr>
+ <td align=center>
+<font size=1>
+ ÷ÎÉÍÁÎÉÅ! ïÐÌÁÔÁ ÄÁÎÎÏÇÏ ÓÞÅÔÁ ÏÚÎÁÞÁÅÔ
+ÓÏÇÌÁÓÉÅ Ó ÕÓÌÏ×ÉÑÍÉ ÐÏÓÔÁ×ËÉ ÔÏ×ÁÒÁ.
+õ×ÅÄÏÍÌÅÎÉÅ Ï ÏÐÌÁÔÅ ÏÂÑÚÁÔÅÌØÎÏ,
+× ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ ÎÅ ÇÁÒÁÎÔÉÒÕÅÔÓÑ
+ÎÁÌÉÞÉÅ ÔÏ×ÁÒÁ ÎÁ ÓËÌÁÄÅ. ôÏ×ÁÒ
+ÏÔÐÕÓËÁÅÔÓÑ ÐÏ ÆÁËÔÕ ÐÒÉÈÏÄÁ ÄÅÎÅÇ
+ÎÁ Ò/Ó ðÏÓÔÁ×ÝÉËÁ, ÓÁÍÏ×Ù×ÏÚÏÍ.
+</font>
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+ <tr>
+ <th colspan=3>
+ïÂÒÁÚÅà ÚÁÐÏÌÎÅÎÉÑ ÐÌÁÔÅÖÎÏÇÏ ÐÏÒÕÞÅÎÉÑ
+ </th>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>
+
+<table width=100% border=1 cellpadding=3 cellspacing=0>
+ <tr>
+ <td>
+ðÏÌÕÞÁÔÅÌØ<br>
+<%company%>
+ </td>
+ <td width=1%>
+_______<br>
+óÞ. No
+ </td>
+ <td width=1%>
+<br>
+40802810701010000976
+ </td>
+ </tr>
+ <tr>
+ <td>
+âÁÎË ÐÏÌÕÞÁÔÅÌÑ<br>
+ïáï "îâä-âÁÎË" Ç. î.îÏ×ÇÏÒÏÄ
+ </td>
+ <td>
+<u><nobr>
+âéë___</u><br>
+óÞ. No
+ </td>
+ <td>
+42202705<br>
+30101810400000000705
+ </td>
+ </tr>
+ </table>
+
+
+ </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td colspan=3>
+<br>
+ <h3>óþåô N 000<%ordnumber%> ÏÔ <%orddate%></h3>
+<hr>
+ </th>
+ </tr>
+ <tr>
+ <td width=10> </td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ ðÏÓÔÁ×ÝÉË: <b><%company%></b>
+ <br>ðÏËÕÐÁÔÅÌØ:<b> <%name%></b>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td> </td>
+
+ <td>
+ <table border=1 width=100% cellpadding=2 cellspacing=0>
+ <tr>
+ <th>No.</th>
+ <th width=90%>ôÏ×ÁÒ</th>
+ <th>ëÏÌ-×Ï</th>
+ <th>åÄ.</th>
+ <th>ãÅÎÁ</th>
+ <th>óÕÍÍÁ</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td align=center>ÛÔ.</td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <th colspan=5 align=right>éÔÏÇÏ:</th>
+ <th align=right><%subtotal%></th>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+ </tr>
+ <tr>
+ <td> </td>
+ <td>
+ </tr>
+
+ <tr>
+ <td> </td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td colspan=2>
+<nobr>÷ÓÅÇÏ ÎÁÉÍÅÎÏ×ÁÎÉÊ ___, ÎÁ ÓÕÍÍÕ <%subtotal%> ÒÕÂ.
+ </td>
+ </tr>
+ <tr>
+ <th colspan=2 align=left>
+ <%text_amount%>
+ </th>
+ </tr>
+ <tr>
+ <th colspan=2>
+<hr height=1>
+ </th>
+ </tr>
+ <tr>
+ <th width=50% align=left>
+<nobr>òÕËÏ×ÏÄÉÔÅÌØ ______________________________
+ </th>
+ <th align=right>
+<nobr>âÕÈÇÁÌÔÅÒ ______________________________
+ </th>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+ </table>
+
+</table>
+
+</body>
+</html>
diff --git a/templates/Russian-sales_order.tex b/templates/Russian-sales_order.tex
new file mode 100755
index 00000000..d324ba60
--- /dev/null
+++ b/templates/Russian-sales_order.tex
@@ -0,0 +1,207 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}rlXrlrrr@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+ & carried forward from <%lastpage%> & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.45\textwidth}{
+\textbf{To}
+\vspace{0.7cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\parbox[t]{.45\textwidth}{
+\textbf{Ship To}
+\vspace{0.7cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{S A L E S} \parbox{0.3cm}{\hfill} \textbf{O R D E R}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Order Date} & \textbf{Required by} & \textbf{Salesperson} & \textbf{Shipping Point} & \textbf{Ship Via} \\ [0.5em]
+ \hline
+ <%ordnumber%> & <%orddate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrlrrr@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%discountrate%> & <%linetotal%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ Subtotal & <%subtotal%> \\
+<%foreach tax%>
+ <%taxdescription%> on <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ Total & <%ordtotal%>\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100
+\hfill
+All prices in \textbf{<%currency%>}.
+
+<%if terms%>
+Terms: <%terms%> days
+<%end terms%>
+
+\vspace{12pt}
+
+<%notes%>
+
+}
+
+\vfill
+
+\vspace{1cm}
+
+\centerline{\textbf{Thank You for your valued business!}}
+
+\rule{\textwidth}{0.5pt}
+
+\end{document}
+
+
+
+
+
+
diff --git a/templates/Russian-sales_quotation.html b/templates/Russian-sales_quotation.html
new file mode 100755
index 00000000..f8798ba6
--- /dev/null
+++ b/templates/Russian-sales_quotation.html
@@ -0,0 +1,99 @@
+
+<body bgcolor=ffffff>
+
+<body bgcolor=ffffff>
+
+<table width=640>
+ <tr>
+ <td> </td>
+ <td colspan=3>
+<br>
+ <h3>òÅÚÅÒ×ÉÒÏ×ÁÎÉÅ N 000<%quonumber%> ÏÔ <%quodate%></h3>
+<hr>
+ </th>
+ </tr>
+ <tr>
+ <td width=10> </td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ ðÏÓÔÁ×ÝÉË: <b><%company%></b>
+ <br>ðÏËÕÐÁÔÅÌØ:<b> <%name%></b>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td> </td>
+
+ <td>
+ <table border=1 width=100% cellpadding=2 cellspacing=0>
+ <tr>
+ <th>No.</th>
+ <th width=90%>ôÏ×ÁÒ</th>
+ <th>ëÏÌ-×Ï</th>
+ <th>åÄ.</th>
+ <th>ãÅÎÁ</th>
+ <th>óÕÍÍÁ</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td align=center>ÛÔ.</td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <th colspan=5 align=right>éÔÏÇÏ:</th>
+ <th align=right><%subtotal%></th>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+ </tr>
+ <tr>
+ <td> </td>
+ <td>
+ </tr>
+
+ <tr>
+ <td> </td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <th colspan=2>
+<hr height=1>
+ </th>
+ </tr>
+ <tr>
+ <th width=50% align=left>
+<nobr>òÕËÏ×ÏÄÉÔÅÌØ ______________________________
+ </th>
+ <th align=right>
+<nobr>âÕÈÇÁÌÔÅÒ ______________________________
+ </th>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+ </table>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Russian-sales_quotation.tex b/templates/Russian-sales_quotation.tex
new file mode 100755
index 00000000..25792c6b
--- /dev/null
+++ b/templates/Russian-sales_quotation.tex
@@ -0,0 +1,157 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 48%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%quonumber%>}{<%company%>\hfill <%quonumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+ & carried forward from <%lastpage%> & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.45\textwidth}{
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%contact%>
+
+\vspace{0.2cm}
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+
+\vspace{1cm}
+
+\textbf{Q U O T A T I O N}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Quotation \#} & \textbf{Date} & \textbf{Valid until} & \textbf{Contact} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5ex]
+ \hline
+ <%quonumber%> & <%quodate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%discountrate%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ Subtotal & <%subtotal%> \\
+<%foreach tax%>
+ <%taxdescription%> on <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ Total & <%quototal%>\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ All prices in \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%notes%>
+
+}
+
+\vfill
+
+\end{document}
+
+
diff --git a/templates/Russian-statement.html b/templates/Russian-statement.html
new file mode 100755
index 00000000..55cf4ff6
--- /dev/null
+++ b/templates/Russian-statement.html
@@ -0,0 +1,132 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+ <th></th>
+ <td align=right>
+ <h4>
+ ôÅÌ: <%tel%>
+ <br>æÁËÓ: <%fax%>
+ </h4>
+ </td>
+ </tr>
+ <tr>
+ <th colspan=3><h4>÷ å ä ï í ï ó ô ø</h4></th>
+ </tr>
+ <tr>
+ <td colspan=3 align=right><%statementdate%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+<%if customerphone%>
+ <br>ôÅÌ: <%customerphone%>
+<%end customerphone%>
+<%if customerfax%>
+ <br>æÁËÓ: <%customerfax%>
+<%end customerfax%>
+<%if email%>
+ <br><%email%>
+<%end email%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr height=10></tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr>
+ <th align=left>óÞÅÔ No</th>
+ <th align=left>úÁËÁÚ No</th>
+<th align=left>ðÒÉÍÅÞÁÎÉÑ</th>
+ <th width=10%>äÁÔÁ</th>
+ <th width=10%>ïÐÌÁÔÁ</th>
+ <th width=10%>ôÅËÕÝÉÊ</th>
+ <th width=10%>30</th>
+ <th width=10%>60</th>
+ <th width=10%>90+</th>
+ </tr>
+<%foreach invnumber%>
+ <tr>
+ <td><%invnumber%></td>
+<td><%ordnumber%></td>
+<td><%notes%></td>
+ <td><%invdate%></td>
+ <td><%duedate%></td>
+ <td align=right><%c0%></td>
+ <td align=right><%c30%></td>
+ <td align=right><%c60%></td>
+ <td align=right><%c90%></td>
+ </tr>
+<%end invnumber%>
+ <tr>
+ <td colspan=9><hr size=1></td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <th align=right><%c0total%></td>
+ <th align=right><%c30total%></td>
+ <th align=right><%c60total%></td>
+ <th align=right><%c90total%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr height=10></tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td align=right>
+ <table width=50%>
+ <tr>
+ <th>÷ÓÅÇÏ ÚÁÄÏÌÖÅÎÎÏÓÔØ</th>
+ <th align=right><%total%></th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td><hr noshade></td>
+ </tr>
+
+</table>
+
+</body>
+</html>
+
+
+
+
diff --git a/templates/Russian-statement.tex b/templates/Russian-statement.tex
new file mode 100755
index 00000000..3edeacc2
--- /dev/null
+++ b/templates/Russian-statement.tex
@@ -0,0 +1,110 @@
+\documentclass[english,twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{babel}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.45\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+}
+\parbox[t]{.45\textwidth}{
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{S T A T E M E N T} \hfill \textbf{<%statementdate%>}
+
+\vspace{2cm}
+
+\begin{tabularx}{\textwidth}{|llXccrrrr|}
+ \hline
+ \textbf{Invoice \#} & \textbf{Order \#} & \textbf{Notes} &
+ \textbf{Date} & \textbf{Due} &
+ \textbf{Current} & \textbf{30} & \textbf{60} & \textbf{90+} \\
+ \hline
+<%foreach invnumber%>
+ <%invnumber%> & <%ordnumber%> & <%notes%> & <%invdate%> & <%duedate%> &
+ <%c0%> & <%c30%> & <%c60%> & <%c90%> \\
+<%end invnumber%>
+ \multicolumn{9}{|l|}{\mbox{}} \\
+ \hline
+ \textbf{Subtotal} & & & & & <%c0total%> & <%c30total%> & <%c60total%> & <%c90total%> \\
+ \hline
+\end{tabularx}
+
+\vspace{0.5cm}
+
+\hfill
+\begin{tabularx}{.4\textwidth}{Xr@{}}
+ \textbf{Total outstanding} & \textbf{<%total%>}
+\end{tabularx}
+
+\vfill
+
+Please make check payable to <%company%>
+
+\end{document}
+
+
diff --git a/templates/Russian-timecard.html b/templates/Russian-timecard.html
new file mode 100755
index 00000000..361b8254
--- /dev/null
+++ b/templates/Russian-timecard.html
@@ -0,0 +1,146 @@
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=sql-ledger.png border=0 width=84 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>T I M E &nbsp;&nbsp; C A R D</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=left>Employee</th>
+ <td><%employee%></td>
+ </tr>
+ <tr>
+ <th align=left>ID</th>
+ <td><%employee_id%></td>
+ </tr>
+ </table>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Card ID</th>
+ <td><%id%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Date Worked</th>
+ <td><%transdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Time In</th>
+ <td><%checkedin%></td>
+ </tr>
+ <tr>
+ <th align=left>Time Out</th>
+ <td><%checkedout%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Hours Worked</th>
+ <td><%qty%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=bottom>
+ <td>
+ <table>
+ <tr valign=top>
+ <th align=left>Project/Job #</th>
+ <td><%projectnumber%></td>
+ </tr>
+ <tr>
+ <th align=left>Description</th>
+ <td><%projectdescription%></td>
+ </tr>
+ <tr valign=top>
+ <th align=left>Labor/Service Code</th>
+ <td><%partnumber%></td>
+ </tr>
+ <tr>
+ <th align=left>Description</th>
+ <td><%description%></td>
+ </tr>
+ </table>
+ </td>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Unit Rate</th>
+ <td><%sellprice%></td>
+ </tr>
+ <tr>
+ <th align=right>Total</th>
+ <td><%total%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+<%if notes%>
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%notes%>
+ </td>
+ </tr>
+<%end notes%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Russian-timecard.tex b/templates/Russian-timecard.tex
new file mode 100755
index 00000000..49a30c54
--- /dev/null
+++ b/templates/Russian-timecard.tex
@@ -0,0 +1,71 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-1cm,left=2cm,right=1cm]{geometry}
+\usepackage{graphicx}
+\setlength{\parindent}{0pt}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Tel: & <%tel%>\\
+ Fax: & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+\centerline{\textbf{T I M E}\hspace{0.5cm}\textbf{C A R D}}
+
+\vspace*{0.5cm}
+
+\begin{tabular}[t]{ll}
+ \textbf{Employee} & <%employee%> \\
+ \textbf{ID} & <%employee_id%> \\
+\end{tabular}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Card ID} & <%id%> \\
+ \textbf{Date Worked} & <%transdate%> \\
+ \textbf{Time In} & <%checkedin%> \\
+ \textbf{Time Out} & <%checkedout%> \\
+ \textbf{Hours Worked} & <%qty%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular}[b]{ll}
+ \textbf{Project/Job \#} & <%projectnumber%> \\
+ \textbf{Description} & <%projectdescription%> \\
+ \textbf{Labor/Service Code} & <%partnumber%> \\
+ \textbf{Description} & <%description%> \\
+\end{tabular}
+\hfill
+\begin{tabular}[b]{lr}
+ \textbf{Unit Rate} & <%sellprice%> \\
+ \textbf{Total} & <%total%> \\
+\end{tabular}
+
+\vspace{0.3cm}
+
+<%notes%>
+
+\end{document}
+
+
diff --git a/templates/Russian-work_order.html b/templates/Russian-work_order.html
new file mode 100755
index 00000000..a9859e3f
--- /dev/null
+++ b/templates/Russian-work_order.html
@@ -0,0 +1,116 @@
+<body bgcolor=ffffff>
+
+<table width=640>
+ <tr>
+ <td> </td>
+ <td>
+
+
+ </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td colspan=3>
+<br>
+ <h3>òÁÂÏÞÉÊ ÚÁËÁÚ N 000<%ordnumber%> ÏÔ <%orddate%></h3>
+<hr>
+ </th>
+ </tr>
+ <tr>
+ <td width=10> </td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ ðÏÓÔÁ×ÝÉË: <b><%company%></b>
+ <br>ðÏËÕÐÁÔÅÌØ:<b> <%name%></b>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td> </td>
+
+ <td>
+ <table border=1 width=100% cellpadding=2 cellspacing=0>
+ <tr>
+ <th>No.</th>
+ <th width=90%>ôÏ×ÁÒ</th>
+ <th>ëÏÌ-×Ï</th>
+ <th>åÄ.</th>
+ <th>ãÅÎÁ</th>
+ <th>óÕÍÍÁ</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td align=center>ÛÔ.</td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <th colspan=5 align=right>éÔÏÇÏ:</th>
+ <th align=right><%subtotal%></th>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+ </tr>
+ <tr>
+ <td> </td>
+ <td>
+ </tr>
+
+ <tr>
+ <td> </td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td colspan=2>
+<nobr>÷ÓÅÇÏ ÎÁÉÍÅÎÏ×ÁÎÉÊ ___, ÎÁ ÓÕÍÍÕ <%subtotal%> ÒÕÂ.
+ </td>
+ </tr>
+ <tr>
+ <th colspan=2 align=left>
+ <%text_amount%>
+ </th>
+ </tr>
+ <tr>
+ <th colspan=2>
+<hr height=1>
+ </th>
+ </tr>
+ <tr>
+ <th width=50% align=left>
+<nobr>òÕËÏ×ÏÄÉÔÅÌØ ______________________________
+ </th>
+ <th align=right>
+<nobr>âÕÈÇÁÌÔÅÒ ______________________________
+ </th>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+ </table>
+
+</table>
+
+</body>
+</html>
+
+
+
+
diff --git a/templates/Russian-work_order.tex b/templates/Russian-work_order.tex
new file mode 100755
index 00000000..9b2f6f95
--- /dev/null
+++ b/templates/Russian-work_order.tex
@@ -0,0 +1,177 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}rlXrll@{}}
+ \textbf{No.} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ & \textbf{Serial Number} \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.45\textwidth}{
+\textbf{To}
+\vspace{0.7cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\parbox[t]{.45\textwidth}{
+\textbf{Ship To}
+\vspace{0.7cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{W O R K} \parbox{0.3cm}{\hfill} \textbf{O R D E R}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Order Date} & \textbf{Required by} & \textbf{Salesperson} & \textbf{Shipping Point} & \textbf{Ship Via} \\ [0.5em]
+ \hline
+ <%ordnumber%> & <%orddate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrll@{}}
+ \textbf{No.} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ & \textbf{Serial Number} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%serialnumber%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+\vfill
+
+\vspace{1cm}
+
+\rule{\textwidth}{0.5pt}
+
+\end{document}
+
+
+
+
+
+
diff --git a/templates/Service-ap_transaction.html b/templates/Service-ap_transaction.html
new file mode 100755
index 00000000..b916cc65
--- /dev/null
+++ b/templates/Service-ap_transaction.html
@@ -0,0 +1,250 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%><br>
+ <%address%>
+ </h4>
+ </td>
+
+ <th><img src=sql-ledger.png border=0 width=84 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%><br>
+ Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>A P - T R A N S A C T I O N</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if vendorphone%>
+ <br>Tel: <%vendorphone%>
+ <%end vendorphone%>
+
+ <%if vendorfax%>
+ <br>Fax: <%vendorfax%>
+ <%end vendorfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+
+ <%if vendortaxnumber%>
+ <p>Taxnumber: <%vendortaxnumber%>
+ <%end vendortaxnumber%>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Invoice #</th>
+ <td><%invnumber%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Date</th>
+ <td><%invdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Due</th>
+ <td><%duedate%></td>
+ </tr>
+ <%if ponumber%>
+ <tr>
+ <th align=left>PO #</th>
+ <td><%ponumber%>&nbsp;</td>
+ </tr>
+ <%end ponumber%>
+ <%if ordnumber%>
+ <tr>
+ <th align=left>Order #</th>
+ <td><%ordnumber%>&nbsp;</td>
+ </tr>
+ <%end ordnumber%>
+ <tr>
+ <th align=left nowrap>Employee</th>
+ <td><%employee%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <%foreach account%>
+ <tr valign=top>
+ <td><%accno%></td>
+ <td><%account%></td>
+ <td width=10>&nbsp</td>
+ <td align=right><%amount%></td>
+ <td width=10>&nbsp</td>
+ <td><%description%></td>
+ <td width=10>&nbsp</td>
+ <td><%projectnumber%></td>
+ </tr>
+ <%end account%>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td width=10>&nbsp</td>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Subtotal</th>
+ <td width=10>&nbsp</td>
+ <td align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=2 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td width=10>&nbsp</td>
+ <td align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if not taxincluded%>
+ <tr>
+ <th colspan=2 align=right>Total</th>
+ <td width=10>&nbsp</td>
+ <td align=right><%invtotal%></td>
+ </tr>
+ <%end taxincluded%>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%text_amount%> ***** <%decimal%>/100 <%currency%>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%notes%>
+ </td>
+ </tr>
+
+ <%if paid_1%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <tr>
+ <th>Payments</th>
+ </tr>
+
+ <tr>
+ <td>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th>Date</th>
+ <th>&nbsp;</th>
+ <th>Source</th>
+ <th>Memo</th>
+ <th>Amount</th>
+ </tr>
+ <%end paid_1%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td><%paymentmemo%></td>
+ <td align=right><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid_1%>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <%end paid_1%>
+
+ <tr height=10></tr>
+
+ <%if taxincluded%>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <th colspan=3 align=left><font size=-2>Taxes shown are included in price.</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Service-ap_transaction.tex b/templates/Service-ap_transaction.tex
new file mode 100755
index 00000000..adf6ceae
--- /dev/null
+++ b/templates/Service-ap_transaction.tex
@@ -0,0 +1,126 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[top=2cm,bottom=-1cm,left=2cm,right=1cm]{geometry}
+\usepackage{graphicx}
+\setlength{\parindent}{0pt}
+
+\begin{document}
+
+\pagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Tel: & <%tel%>\\
+ Fax: & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+\centerline{\textbf{A P} \hspace{0.3cm} \textbf{T R A N S A C T I O N}}
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state>
+, <%state%>
+<%end state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+<%end contact%>
+
+\vspace{0.2cm}
+
+<%if vendorphone%>
+Tel: <%vendorphone%>
+<%end vendorphone%>
+
+<%if vendorfax%>
+Fax: <%vendorfax%>
+<%end vendorfax%>
+
+<%email%>
+
+<%if vendortaxnumber%>
+Tax Number: <%vendortaxnumber%>
+<%end vendortaxnumber%>
+}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Invoice \#} & <%invnumber%> \\
+ \textbf{Date} & <%invdate%> \\
+ \textbf{Due} & <%duedate%> \\
+ <%if ponumber%>
+ \textbf{PO \#} & <%ponumber%> \\
+ <%end ponumber%>
+ <%if ordnumber%>
+ \textbf{Order \#} & <%ordnumber%> \\
+ <%end ordnumber%>
+ \textbf{Employee} & <%employee%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}[t]{@{}llrX@{\hspace{1cm}}l@{}}
+<%foreach amount%>
+ <%accno%> & <%account%> & <%amount%> & <%description%> & <%projectnumber%> \\
+<%end amount%>
+
+ \multicolumn{2}{r}{\textbf{Subtotal}} & <%subtotal%> & \\
+<%foreach tax%>
+ \multicolumn{2}{r}{\textbf{<%taxdescription%> @ <%taxrate%> \%}} & <%tax%> & \\
+<%end tax%>
+
+ \multicolumn{2}{r}{\textbf{Total}} & <%invtotal%> & \\
+
+\end{tabularx}
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100 <%currency%>
+
+<%if notes%>
+\vspace{0.3cm}
+<%notes%>
+<%end notes%>
+
+\vspace{0.3cm}
+
+<%if paid_1%>
+\begin{tabular}{@{}llllr@{}}
+ \multicolumn{5}{c}{\textbf{Payments}} \\
+ \hline
+ \textbf{Date} & & \textbf{Source} & \textbf{Memo} & \textbf{Amount} \\
+<%end paid_1%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%paymentmemo%> & <%payment%> \\
+<%end payment%>
+<%if paid_1%>
+\end{tabular}
+<%end paid_1%>
+
+\end{document}
+
diff --git a/templates/Service-ar_transaction.html b/templates/Service-ar_transaction.html
new file mode 100755
index 00000000..6ff50d51
--- /dev/null
+++ b/templates/Service-ar_transaction.html
@@ -0,0 +1,256 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%><br>
+ <%address%>
+ </h4>
+ </td>
+
+ <th><img src=sql-ledger.png border=0 width=84 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%><br>
+ Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>A R - T R A N S A C T I O N</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+
+ <%if customertaxnumber%>
+ <br>Taxnumber: <%customertaxnumber%>
+ <%end customertaxnumber%>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Invoice #</th>
+ <td><%invnumber%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Date</th>
+ <td><%invdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Due</th>
+ <td><%duedate%></td>
+ </tr>
+ <%if ponumber%>
+ <tr>
+ <th align=left>PO #</th>
+ <td><%ponumber%>&nbsp;</td>
+ </tr>
+ <%end ponumber%>
+ <%if ordnumber%>
+ <tr>
+ <th align=left>Order #</th>
+ <td><%ordnumber%>&nbsp;</td>
+ </tr>
+ <%end ordnumber%>
+ <tr>
+ <th align=left nowrap>Salesperson</th>
+ <td><%employee%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <%foreach account%>
+ <tr valign=top>
+ <td><%accno%></td>
+ <td><%account%></td>
+ <td width=10>&nbsp</td>
+ <td align=right><%amount%></td>
+ <td width=10>&nbsp</td>
+ <td><%description%></td>
+ <td width=10>&nbsp</td>
+ <td><%projectnumber%></td>
+ </tr>
+ <%end account%>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td width=10>&nbsp</td>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Subtotal</th>
+ <td width=10>&nbsp</td>
+ <td align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=2 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td width=10>&nbsp</td>
+ <td align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if not taxincluded%>
+ <tr>
+ <th colspan=2 align=right>Total</th>
+ <td width=10>&nbsp</td>
+ <td align=right><%invtotal%></td>
+ </tr>
+ <%end taxincluded%>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%text_amount%> ***** <%decimal%>/100 <%currency%>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%notes%>
+ </td>
+ </tr>
+
+ <%if paid_1%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <tr>
+ <th>Payments</th>
+ </tr>
+
+ <tr>
+ <td>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th>Date</th>
+ <th>&nbsp;</th>
+ <th>Source</th>
+ <th>Amount</th>
+ </tr>
+ <%end paid_1%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td align=right><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid_1%>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <%end paid_1%>
+
+ <tr height=10></tr>
+
+ <%foreach tax%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <th colspan=9 align=left><font size=-2><%taxdescription%> Registration <%taxnumber%></th>
+ </tr>
+ <%end tax%>
+
+ <%if taxincluded%>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <th colspan=3 align=left><font size=-2>Taxes shown are included in price.</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Service-ar_transaction.tex b/templates/Service-ar_transaction.tex
new file mode 100755
index 00000000..3d29ea4a
--- /dev/null
+++ b/templates/Service-ar_transaction.tex
@@ -0,0 +1,133 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[top=2cm,bottom=-1cm,left=2cm,right=1cm]{geometry}
+\usepackage{graphicx}
+\setlength{\parindent}{0pt}
+
+\begin{document}
+
+\pagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Tel: & <%tel%>\\
+ Fax: & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+\centerline{\textbf{A R} \hspace{0.3cm} \textbf{T R A N S A C T I O N}}
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+<%end contact%>
+
+\vspace{0.2cm}
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+
+<%if customertaxnumber%>
+Tax Number: <%customertaxnumber%>
+<%end customertaxnumber%>
+}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Invoice \#} & <%invnumber%> \\
+ \textbf{Date} & <%invdate%> \\
+ \textbf{Due} & <%duedate%> \\
+ <%if ponumber%>
+ \textbf{PO \#} & <%ponumber%> \\
+ <%end ponumber%>
+ <%if ordnumber%>
+ \textbf{Order \#} & <%ordnumber%> \\
+ <%end ordnumber%>
+ \textbf{Employee} & <%employee%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}[t]{@{}llrX@{\hspace{1cm}}l@{}}
+<%foreach amount%>
+ <%accno%> & <%account%> & <%amount%> & <%description%> & <%projectnumber%> \\
+<%end amount%>
+
+ \multicolumn{2}{r}{\textbf{Subtotal}} & <%subtotal%> & \\
+<%foreach tax%>
+ \multicolumn{2}{r}{\textbf{<%taxdescription%> @ <%taxrate%> \%}} & <%tax%> & \\
+<%end tax%>
+
+ \multicolumn{2}{r}{\textbf{Total}} & <%invtotal%> & \\
+
+\end{tabularx}
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100 <%currency%>
+
+<%if notes%>
+\vspace{0.3cm}
+<%notes%>
+<%end notes%>
+
+\vspace{0.3cm}
+
+<%if paid_1%>
+\begin{tabular}{@{}lllr@{}}
+ \multicolumn{5}{c}{\textbf{Payments}} \\
+ \hline
+ \textbf{Date} & & \textbf{Source} & \textbf{Amount} \\
+<%end paid_1%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%payment%> \\
+<%end payment%>
+<%if paid_1%>
+\end{tabular}
+<%end paid_1%>
+
+\vspace{0.5cm}
+
+<%foreach tax%>
+\textbf{\scriptsize <%taxdescription%> Registration <%taxnumber%>} \\
+<%end tax%>
+
+\end{document}
+
diff --git a/templates/Service-balance_sheet.html b/templates/Service-balance_sheet.html
new file mode 100755
index 00000000..c84ad95a
--- /dev/null
+++ b/templates/Service-balance_sheet.html
@@ -0,0 +1,110 @@
+
+<body>
+
+<h2 align=center>
+<%company%>
+<br><%address%>
+
+<p>BALANCE SHEET
+<br>as at <%this_period%>
+</h2>
+
+<%if department%>
+<h4>Department: <%department%></h4>
+<%end department%>
+
+<table border=0>
+<tr>
+ <th align=left width=400 colspan=2>ASSETS<br><hr align=left width=250 size=5 noshade></th>
+ <th><%this_period%></th>
+ <th><%last_period%></th>
+</tr>
+
+<%foreach asset_account%>
+<tr>
+ <td> </td>
+ <td><%asset_account%></td>
+ <td align=right><%asset_this_period%></td>
+ <td align=right><%asset_last_period%></td>
+</tr>
+<%end asset_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>TOTAL ASSETS</th>
+ <td align=right><%total_assets_this_period%><hr noshade size=2></td>
+ <td align=right><%total_assets_last_period%><hr noshade size=2></td>
+</tr>
+
+<tr>
+ <th align=left colspan=4>LIABILITIES<b><hr align=left width=250 size=5 noshade></th>
+</tr>
+
+<%foreach liability_account%>
+<tr>
+ <td></td>
+ <td><%liability_account%></td>
+ <td align=right><%liability_this_period%></td>
+ <td align=right><%liability_last_period%></td>
+</tr>
+<%end liability_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td></td>
+ <th align=left>TOTAL LIABILITIES</th>
+ <td align=right><%total_liabilities_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_liabilities_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr>
+ <th align=left colspan=4>SHAREHOLDER'S EQUITY<br><hr align=left width=250 size=5 noshade></th>
+</tr>
+
+<%foreach equity_account%>
+<tr>
+ <td></td>
+ <td><%equity_account%></td>
+ <td align=right><%equity_this_period%></td>
+ <td align=right><%equity_last_period%></td>
+</tr>
+<%end equity_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td></td>
+ <th align=left>TOTAL EQUITY</th>
+ <td align=right><%total_equity_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_equity_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>TOTAL LIABILITIES & EQUITY</th>
+ <td align=right><%total_this_period%><br><hr noshade size=2></td>
+ <td align=right><%total_last_period%><br><hr noshade size=2></td>
+</tr>
+</table>
+
+
+
+
+
+
+
+
+
diff --git a/templates/Service-bin_list.html b/templates/Service-bin_list.html
new file mode 100755
index 00000000..24440675
--- /dev/null
+++ b/templates/Service-bin_list.html
@@ -0,0 +1,189 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <th align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>B I N &nbsp;&nbsp; L I S T</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% cellspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>From</th>
+ <th align=left width=50%><font color=ffffff>Ship To</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+
+ <%if vendorphone%>
+ <br>Tel: <%vendorphone%>
+ <%end vendorphone%>
+
+ <%if vendorfax%>
+ <br>Fax: <%vendorfax%>
+ <%end vendorfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+
+ <br>
+ <%if shiptocontact%>
+ <br>Attn: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Order #</th>
+ <th width=17% align=left nowrap>Date</th>
+ <th width=17% align=left nowrap>Contact</th>
+ <%if warehouse%>
+ <th width=17% align=left nowrap>Warehouse</th>
+ <%end warehouse%>
+ <th width=17% align=left>Shipping Point</th>
+ <th width=15% align=left>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%>&nbsp;</td>
+
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%orddate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+
+ <%if warehouse%>
+ <td><%warehouse%></td>
+ <%end warehouse%>
+
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Pos</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Serialnumber</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Qty</th>
+ <th><font color=ffffff>Recd</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Bin</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%></td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td><%serialnumber%></td>
+ <td><%deliverydate%></td>
+ <td align=right><%qty%></td>
+ <td align=right><%ship%></td>
+ <td><%unit%></td>
+ <td><%bin%></td>
+ </tr>
+ <%end number%>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+</table>
+
diff --git a/templates/Service-bin_list.tex b/templates/Service-bin_list.tex
new file mode 100755
index 00000000..3d6052f9
--- /dev/null
+++ b/templates/Service-bin_list.tex
@@ -0,0 +1,147 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Recd} & & \textbf{Bin} \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.5\textwidth}{
+\textbf{From}
+\vspace{0.7cm}
+
+<%name%>
+
+<%address1%>
+
+<%if %address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country4%>
+<%end country%>
+}
+\parbox[t]{.4\textwidth}{
+\textbf{Ship To}
+\vspace{0.7cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%if shiptoaddress2%>
+<%shiptoaddress2%>
+<%end shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%if shiptocountry%>
+<%shiptocountry%>
+<%end shiptocountry%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{B I N} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Date} & \textbf{Contact}
+ <%if warehouse%>
+ & \textbf{Warehouse}
+ <%end warehouse%>
+ & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+
+ <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%orddate%>
+ <%end shippingdate%>
+ & <%employee%>
+ <%if warehouse%>
+ & <%warehouse%>
+ <%end warehouse%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Recd} & & \textbf{Bin} \\
+
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%serialnumber%> &
+ <%deliverydate%> & <%qty%> & <%ship%> & <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabularx}
+
+
+\rule{\textwidth}{2pt}
+
+\end{document}
+
diff --git a/templates/Service-check.tex b/templates/Service-check.tex
new file mode 100755
index 00000000..6742b5b5
--- /dev/null
+++ b/templates/Service-check.tex
@@ -0,0 +1,75 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.4cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.0cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+
+\fontfamily{cmss}\fontsize{9pt}{9pt}\selectfont
+
+\parbox[t]{12cm}{
+ <%company%>
+
+ <%address%>}
+\hfill
+\parbox[t]{6cm}{\hfill <%source%>}
+
+\vspace*{0.6cm}
+
+<%text_amount%> \dotfill <%decimal%>/100 \makebox[0.5cm]{\hfill}
+
+\vspace{0.5cm}
+
+\hfill <%datepaid%> \makebox[2cm]{\hfill} <%amount%>
+
+\vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{2.8cm}
+
+<%company%>
+
+\vspace{0.5cm}
+
+<%name%> \hfill <%datepaid%> \hfill <%source%>
+
+\vspace{0.5cm}
+\begin{tabularx}{\textwidth}{lXrr@{}}
+\textbf{Invoice No.} & \textbf{Invoice Date}
+ & \textbf{Due} & \textbf{Applied} \\
+<%foreach invnumber%>
+<%invnumber%> & <%invdate%> \dotfill
+ & <%due%> & <%paid%> \\
+<%end invnumber%>
+\end{tabularx}
+
+\vfill
+
+\end{document}
+
diff --git a/templates/Service-income_statement.html b/templates/Service-income_statement.html
new file mode 100755
index 00000000..eab9ff0f
--- /dev/null
+++ b/templates/Service-income_statement.html
@@ -0,0 +1,81 @@
+
+<body>
+
+<h2 align=center>
+<%company%>
+<br><%address%>
+
+<p>INCOME STATEMENT
+<br><%period%>
+</h2>
+
+<%if department%>
+<h4>Department: <%department%></h4>
+<%end department%>
+
+<%if projectnumber%>
+<h4>Project Number: <%projectnumber%></h4>
+<%end projectnumber%>
+
+<table width=100% border=0>
+<tr>
+ <th width=400 align=left colspan=2>INCOME<br><hr width=300 size=5 align=left noshade></th>
+ <th><%this_period%></th>
+ <th><%last_period%></th>
+</tr>
+
+<%foreach income_account%>
+<tr>
+ <td width=4> </td>
+ <td><%income_account%></td>
+ <td align=right><%income_this_period%></td>
+ <td align=right><%income_last_period%></td>
+</tr>
+<%end income_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td> </td>
+ <th align=left>TOTAL INCOME</th>
+ <td align=right><%total_income_this_period%><hr noshade size=2></td>
+ <td align=right><%total_income_last_period%><hr noshade size=2></td>
+</tr>
+
+<tr>
+ <th align=left colspan=2>EXPENSES<br><hr width=300 size=5 align=left noshade></th>
+</tr>
+
+<%foreach expense_account%>
+<tr>
+ <td> </td>
+ <td><%expense_account%></td>
+ <td align=right><%expenses_this_period%></td>
+ <td align=right><%expenses_last_period%></td>
+</tr>
+<%end expense_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td> </td>
+ <th align=left>TOTAL EXPENSES</th>
+ <td align=right><%total_expenses_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_expenses_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>INCOME / (LOSS)</th>
+ <td align=right><%total_this_period%><br><hr noshade size=2></td>
+ <td align=right><%total_last_period%><br><hr noshade size=2></td>
+</tr>
+
+</table>
diff --git a/templates/Service-invoice.html b/templates/Service-invoice.html
new file mode 100755
index 00000000..193dd1f4
--- /dev/null
+++ b/templates/Service-invoice.html
@@ -0,0 +1,230 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr>
+ <td width=10>
+ </td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ <br>Tel/Fax <%tel%> / <%fax%>
+ </h4>
+ </td>
+
+ <th colspan=2>
+ <h4 align=center>I N V O I C E</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Date</th><td width=10> </td><td><%invdate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Number</th><td></td><td><%invnumber%></td></tr>
+ </tr>
+
+<!-- prepared by: <%username%>
+-->
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>To:</th>
+ </tr>
+
+ <tr>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+<br><%address2%>
+<%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+<%country%>
+<%end country%>
+ </td>
+
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Description</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Amount</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+ <td><%description%></td>
+ <td>&nbsp;</td>
+ <td align=right><%linetotal%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=3><hr noshade></td>
+ </tr>
+
+ <tr>
+<%if taxincluded%>
+ <td>&nbsp;</td>
+ <th align=right>Total</th>
+ <td align=right><%invtotal%></td>
+<%end taxincluded%>
+<%if not taxincluded%>
+ <td>&nbsp;</td>
+ <th align=right>Subtotal</th>
+ <td align=right><%subtotal%></td>
+<%end taxincluded%>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=2 align=right><%taxdescription%></th>
+ <td align=right><%tax%></td>
+ </tr>
+<%end tax%>
+
+<!--
+ <%taxbase%> = total netamount for each tax bracket
+ <%taxrate%> = taxrate in percent
+-->
+
+<%if paid%>
+ <tr>
+ <td>&nbsp;</td>
+ <th align=right>Paid</th>
+ <td align=right><%paid%></td>
+ </tr>
+<%end paid%>
+
+ <tr>
+ <td>&nbsp;</td>
+ <td colspan=2><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td>
+<%if terms%>
+Terms &nbsp;Net <b><%terms%></b> days
+<%end terms%>
+</td>
+ <th align=right>Total</th>
+ <th align=right><%total%></th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<%if notes%>
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td>Notes</td>
+ <td><pre><%notes%></pre></td>
+ <td align=right>
+ &nbsp;
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+<%end notes%>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <th colspan=3>
+ Please make check payable to <%company%>
+ <br>Thank you for your valued business!
+ </th>
+</tr>
+
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><font size=-3>
+ Payment due NET <%terms%> Days from date of Invoice.
+ Interest on overdue amounts will acrue at the rate of 1.5% per month
+ from due date until paid in full.
+ </font>
+ </td>
+ <td width=150>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=3 align=left><font size=-2><%taxdescription%> Registration <%taxnumber%></th>
+ </tr>
+<%end tax%>
+
+<!--
+ %username% = user name
+ %businessnumber% = business number
+-->
+
+<!-- banking information
+ <tr>
+ <th colspan=3 align=left><font size=-2>Banking Information:
+ <br>Bank
+ <br>Transit No.
+ <br>Account No.
+ </th>
+ </tr>
+-->
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Service-invoice.tex b/templates/Service-invoice.tex
new file mode 100755
index 00000000..5b5be762
--- /dev/null
+++ b/templates/Service-invoice.tex
@@ -0,0 +1,155 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%invnumber%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+<%pagebreak 65 27 37%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markright{<%company%>\hfill <%invnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}p{\descrwidth}@{\extracolsep\fill}rlrr@{}}
+ \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Amount} \\
+ & carried forward from <%lastpage%> & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{2cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{3.5cm}
+
+\textbf{I N V O I C E}
+\hfill
+\begin{tabular}[t]{l@{\hspace{0.3cm}}l}
+ \textbf{Date} & <%invdate%> \\
+ \textbf{Number} & <%invnumber%> \\
+ \textbf{Customer} & <%customer_id%>
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}p{\descrwidth}@{\extracolsep\fill}rlrr@{}}
+ \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Amount} \\
+<%foreach number%>
+ <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%subtotal%>} \\
+<%foreach tax%>
+ <%taxdescription%> on <%taxbase%> & <%tax%> \\
+<%end tax%>
+<%if paid%>
+ \textbf{Paid} & - <%paid%> \\
+<%end paid%>
+ \hline
+ \textbf{Balance Owing} & \textbf{<%total%>} \\
+
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ All prices in \textbf{<%currency%>} funds.
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+\vfill
+\centerline{\textbf{Thank You for your valued business!}}
+
+\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+\footnotetext[1]{\tiny
+Payment due NET <%terms%> Days from date of Invoice. Interest on overdue
+amounts will acrue at the rate of 1.5\% per month starting <%duedate%>
+until paid in full.
+}
+
+\end{document}
+
+
diff --git a/templates/Service-logo.eps b/templates/Service-logo.eps
new file mode 100755
index 00000000..3a22b2ff
--- /dev/null
+++ b/templates/Service-logo.eps
@@ -0,0 +1,1334 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: GIMP PostScript file plugin V 1.17 by Peter Kirchgessner
+%%Title: Brazilian_Portuguese-logo.eps
+%%CreationDate: Thu Aug 31 19:25:05 2006
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 2
+%%Pages: 1
+%%BoundingBox: 14 14 415 215
+%%EndComments
+%%BeginProlog
+% Use own dictionary to avoid conflicts
+10 dict begin
+%%EndProlog
+%%Page: 1 1
+% Translate for offset
+14.173228346456694 14.173228346456694 translate
+% Translate to begin of first scanline
+0 199.99842519685043 translate
+399.99685039370081 -199.99842519685043 scale
+% Image geometry
+400 200 8
+% Transformation matrix
+[ 400 0 0 200 0 0 ]
+% Strings to hold RGB-samples per scanline
+/rstr 400 string def
+/gstr 400 string def
+/bstr 400 string def
+{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop}
+true 3
+%%BeginData: 80402 ASCII Bytes
+colorimage
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+fDblg6K\=Q"WB-W4?Pdo4p6+l]&ih]rrrDpij);hp&GL',"Q[#Lmt]mi:-UBo)Ajlp>C')q#Ca-
+0OT-[R^UZ0q#:3k!rftBr;[*-4`Pt>]\`;[p&>'%-iO)I,T-[I!!OC1jn&BKnc&dlp#<8P%e]l2
+"!U9TI#+8tb2Ddcrq6:-g3RO66TZkO/89R1ak>G'lMCDUrVc`p_uG5~>
+fDc3-AgAK<(`*r''GKsK"r/C?3]oMfm61YtOLjQNo`#*op#<8P%e]l2"!U9TI#+8tb2Ddcrpp'l
+rq>8m&GZ;5#V]Y2L75R!lM1AVrrW28$N0r1#!HsURCqDKrq69l[jV.T![JWbkPtc,R-!r:rpg!l
+rq59V:(Hst$j.\EE.!J2ZHD+pqYp0f(YX1N<'rc'0emR!XjZ4ijR;sBr;HTnrknbd~>
+fDc6;J3>hE.46Gg,U"<#*sNl<2EEr_4mbE9G`]Muqt0mlrq59V:(Hst$j.\EE.!J2ZHD+pqYp'c
+"TJ,QFV+?K$4&=nG_VZqdd$W,r;Qit^^C#?#R3G3J!mt+o`"O`!OjHU!!4D`!pBUf*LPs[qu6-c
+"oe2SZ;(o'!"8rR88rs4S$L2pnG<.WrtjC8CK*Y`2)R41LpG[tlg+-<qu$Ekrr0h8J,~>
+gA_6CM^RKa#SJU[Cl4ICR$dH4"J2pKnc&.[#laS]ca8*s2'Dku%L*7S1/_:`E/L-e^<lNJn,*ps
+lGB9$.1d!s#n@h2C5&"Yb2DgerqcX(q78g7,slHqMPJ)Jp&4[cs*k'%9)\er&Pd:_DG`D6!pTal
+;j3B4I=8["q>L$e)ZKKoca5M5$jR7P',DcW=EAnFP+oA,h<ak4r;@'%mG5jnSV:rb4tRZYo)K.6
+.77QqVp"]-r;HW:s*t~>
+gA_WSXCb's7mAmd0J>%2/aY(p3(dS&NKf`rR.?XJT!Hl9rq$..rqGU%[!bb.+:/;Z%M^0O>@_Mp
+OJ9/'f_#".r"](qb,Jl)'b_,j)_+BrKpT$di:6^DqYq$#\j.Db6>_(,UVl'`rV6EmU]HuXrW!3>
+=ES\+<]_9&l2V,jVQ@/!U<E9+rV$70rqGU%Zq25S%MBBi(a_LMF+&e+U:&/"m.U>Sr=/\qk1@he
+W0`?`B2UiFr@A%'1d4D,8ded6G`JT6f_#";rVjq=J,~>
+gA_WV`KPh&H>[%h;Gg7d:@1a]<FBcqNg,isR.?XJT!Hl9rq$..rqGU%[!bb.+:etm&f`Dk@V^"7
+Q)D4<h=UO3r"](rd'%+>(`!f$,WA_DKpT$di:6^DqYq$#\j.Db6>_(,UVl'`rV6Em^B(K0rW!3B
+@!Hj=>!*c+l2V,lZbFJn^"N,TrV$70rqGU%Zreh$',D<")CRjQF+&e+U:&/"m.U>Sr=/\tmGcjE
+_7$G9OF(D5rCmAj>ASW`J.%6uT<>oSiV!$ErVjq=J,~>
+h#@HEIh:?7#Tc9FPJ##]c-H(0"4GulqXORjrqc-Bc+C!IjT#8`m/R?)T"N_Cq#1!f%/obL[[`MH
+U:8M5p\spee,TVcf]W#.pAY9pqXED]p&G=-'G_N()]Tmq*WQH&!!iZW>`-Jlq#(-9s*t~>
+h#@HJUfI@c"%YgF4l\X1;/(]X^WF^EcM,WedbO6dnc'C(qXEFf];hGR.Olks.P*2,2*!ie7S*/D
+!)3/["\;$E2D?]].L7OVFe67umJ-YTrs\ksfX@<5QD1k8kkG)Nrt@jG!<<*#(b-sc0JtaF0Ie1Z
+$3BMo#oYim84nopkP+uLrtbV1nDI&"0eP",.Ochs/1rtM85<,d>l%b,:\RH`84>d,rB(0F5Xe6:
+8dJ+(MQ5+sq#(-9s*t~>
+h#@HM^PMi="+56/C#`k4FbQ3b_9'pGcM,WedbO6dnc&ppqXEFf];hGq8cD6f8P;iZ>@VDgG^Y)7
+J,k2sJ.d?ZFD5#[9h@lH8ksi,]\)WHrV6C$rUSULS<B24\'X@5rqHF+H9;6/!!+Q@7nZfd?<U9"
+2^8k8m/RGEAorHOWS$D.rq??urqc-BFC%sC91f+R$;!ld>@_PnIYEZ=qi1Z0pOE?oG].?qBEN!f
+G^]78#_J8?^teSWr;Ot@J,~>
+h>[MB'\!*i,YiZYa62mZnF?&JncSOYqu6'a#Q=GfkM4KR)UeZi*-S.$mJQYW$N0GOcGmrTj73!F
+p\t6"ec5mb/8hc?meueX"TA*n,R_Hh#7aOmh":IArmCar~>
+h>[M`=SbYi8,u0:7LELMS$gZ-mdKZ8nc&(]o_87^n,EXkq!mP&dV;DR3!VH*4[;>&7nDf8%S9,W
+5<Lqc3BBc^Us&0'p&>Bsn__X3aOK8?qYp6h!OE+3!##DT-n$]+5!hV'5!1e]0J"C`$j,nu#UVT+
+?\Yl5meueX#Q=FJ>Xpq<3W:uC3BKAh6:FC8lq.=N84WVJ!_5dQmn*g`J?Io(qYgE@s*t~>
+h>[N!MYho*Isl\"H4#P$Zc1S]mdKZ8nc&(]o_87^n,F("q!mP&dY;XJ@:E_XBl7s8H[^J.J.@!Q
+F)5K!@U`kaL8<#[r:U'sr:/[i`lQZinbW7ZrrKG;rW!T71dso2?>FS'EGT5p>#S'T-5?[R!!rZm
+AU&loZI&%<o`#U'pn<@]Bk:d_@:E_XBl7s8H[^J4J-(4LI/A3kI"$S7J-Uh)_rgUfrVk4EJ,~>
+hu<`75k=sc"VrFC5tXgF:/4DF.i/9O!!*]Ur]C="me$ATli.:jr:opKd%Y/9'&!<k"#=J;Ni^b$
+rq-3qrV,jMn+?JTpAY,>f)Q'a;0.S\XNp84o)Asihn"ng;)Ad$!!WNiQK@f9rmUmt~>
+hu<`@GOnE:9Mnkt@V0:fC2.Hn>Z4;[8dSO+F*)Mgme$ATli.Fnr:opKd&28#:.@`E8`E>N8Ou<>
+7TaSXNi^b$rq-3qrV,jMn+?JTpAY,>qu@NQ,q(K/6:XU>84Z3<69dRl1bgU.)%[&F!!j*8F,?6b
+cL1Z%rseb\\s@h_>t[RS7Rp!@b";k3FKjs$qYntDJ,~>
+hu<`GT_![<IscQgH[C/>IKP(MIt-[4!Jlg9S-6.co_SRQrso&+q"3gtWf)=NG^=adJ)l+hIsu`i
+GBS%NIZCMZo)A:]#Q=DemdKfErV$6kHi3pL!AZo0<+U)rrdG<'H$++DB44tC:-L3L%.jN*&m043
+Q`SL#rUTsuptrZOMLp5#G'A1WI"$RgJ-LRo_WgairmUmt~>
+i;Wha&G?)3"X69@G^kI,P*_]1rh'IfS=#7L5SE5[">J!QnGMJL#l<l9^9FDd9H)af#qBJ1L7#-c
+jnSiGs8Drirr@!8!!4`+#i,Ic89UN4bi8<po)B'omao@cYc+.?63tL0"V>7hnG)t4s*t~>
+i;Wi"<VB#m9N5D9G^kI,P*_]1rh'IfS=#CdBN""c"DGs4nGMJL#l<l9^9FDnE)tgf$!(hdL7#-c
+jnSiGs8Drirr@!8!!Y&=.ks.S8GYpg8Ou<=69dRm2)6d5*"E#D!!c&<S@?`%p&=O^$N'8C_mckK
+Sr%2W`(C25NR[ImrRLpu~>
+i;Wi2M"Z?,IsQ9]G^kI,P*_]1rh'IfS=#ItL4SN<"H^d\nGMJL#l<l9^9FE!MLs]8$$^E6L7#-c
+jnSiGs8Drirr@!8!!b/H79+#EI=M0F%tB%UH$44GBOY4I:e*2V!qu["89UN4bi8<po)B$nmao@c
+Yc+.WLr4`HL9'%tq#/bCJ,~>
+iVrn9p&GO<7W!I+P+J\^^;eCEe,@c%d`oeFZDDb'!pTag,b;X/qWIkdrqc0Li7?&`XFWVBirBDi
+9lbcMYfPVcpAO"N!/(1L";kW^EBr@\#!RdOh!Xn6nc'!rqXWt6i7cW"\Y):S!"&cA/3cp6C2SKO
+KDgH,J9#$l1DK9X"TqW;mJ$S2s*t~>
+iVrnZp.>ck@;pOIP+J\^^;eCEe,@c%d`oeFZDE@g9Bo+P>b/RgqWIkdrqc0Li7?&`XH.-lj%9YP
+@WI!bYfPVcpAO"N!/(1L"rLi`F'qF.oh#Wa84H$85Wq.e1Fs:Bq#CU_L:H%,pAFI\$i^"nlfI'Y
+d`8noDWsb":g%1=D00uNJV3oS"bM/FCg^008d.n<bO,'&fDg@~>
+iVrnsp4*U"FE;b_P+J\^^;eCEe,@c$d`oeFZDEhBl$rniS\=([kPkqhqXNh.f#kY,R>QRUJ-pdG
+Ee'I[aP?+TrSmhWKDY]R(h76%G^"W1J.7!WI!U!XDe`ij=A("Cq#CU_L:H%,pAFI\$i^"nlfI'Y
+d`8nsNp2'#I!U'`H[L9mJV3fP!J>skJ-CLtdd?f-fDg@~>
+ir9!spAb^?;KRDLTsM\cguRbgo(;VSp'^Qco'Yc%fZLdo7Ki&X"<E/rh"^"2$i^)#p@.8#cFooT%
+d!`u!`F)pUr;*Wq#(-NrrL.Cqu?puFHE]?JdCT@!=T>3!!P?@^Ztarn,NFe$N9o!q"4":g;nL?m
+f3e)/l6J6KT).cU8P&qZM_'8Za$U.SV:/k!q?6o"'3Y5q#/nGJ,~>
+ir9"HpIYrnA9<<^TsM\cguRbgo(;VSp'^Qco'Yc%fZLduDbTLi"B:&Th"^"2$i^)#p@.8#cFp'#
+;<:CVA93O%`80kVr;P^U!QP?@!!Z;BOKZBc:@Up_8Ou?@6pX!s/dhFT"ZVIUlMUYMs8W'*rVZNe
+o^:kqaHB6c8e"NtATN6PN0Kj,VlR#,r3Qa9Z)jdmNceQ!nO`sYK$s&]rRq4$~>
+ir9"fpOEd$EccelTsM\cguRbgo(;VSp'UKbo'Yc%fZLe&NpD2uI>"ZVpuVM`rquWdnE8TP]r@0H
+ja[YVF,-R0h<t(9ro3qY`ru;?##TK(YJ-renph'sIXHKeF`;))8.,1n"ZVIUlMUYMs8W')rVZNe
+o^:kqaJJ<T%=WPDFaSk$PanJGX08i,Zj3qBXJMJOMM(DK"bEE!mJ-Y5s*t~>
+j8T+/p](g,5&bn2VnUU<m.C)NrVlflrsA]'qY'F@fZ'=>m/R8.I&>WmiVs5`r:ojHg;p9k"R#gj
+/ocWFcKY*%hu<[5qu@!=E/1aQlJS-;lMq#'>>b\&!!G<<]''%TrrrE"p[6mkmf3eaEIa7KZG+E,
+f%Ss<iqqdCini>8aLn[:8e(:j"Uoe:nG<.=s*t~>
+j8T+Tpdu&i?>t:RVnUU<m.C)NrVlflrsA]'qY'F@fZ'_$m7ILZI&>WmiVs5`r:ojHg;pF@9^#(R
+=E0(pcKY*%hu<[5qu@!=E/1aQlJSa>m7IOQ7nd5e#5\B'3Jb90rTF1arquNYhOa1.%:=+*PGGLu
+aO&Mlh;I;ij9ai&f[7dQY*X*(nO`s^Rc*]3rnII'~>
+j8T+opj`m)FDuVhVnUU<m.C)NrVlflrsA]'qY'F@fZ'tOm=>4a!iF]HiVs5`r:ojHg;pR`J`qUh
+G&`89cKY*%hu<[5qu@!=E/1aQlJT4*mXPLjI=$!B;?m!u"?D:LkPaTD"oeGombY5;J.6R>J<Qe7
+^<"[Pg>1]HqrA(ChUp5s]WRfaK(4?pKWsD(qYo7LJ,~>
+jSo4Pp]([*;KIM`][l<<qYgE_rs/Q#p?^YWLDTCZ"<2`cgA'P)#QFYqmblB\-0YC6>'usdm/$_=
+rrBP*!!kT/R`b'rq!(]B!!Ea>Fbj)q!!G98[cRGJrr`5pkZ@6R$q,K5^XhE/n+?>Kq>0sc$iBep
+o^D##d_Vqg$1Ruu1qr/HrS7F'~>
+jSo4lpdtofA93Er][l<<qYgE_rs/Q#p?^YWRTJrM"B'WEgA'P)#QFYqmblBh?g1/eApg5pm/$_=
+rrBP*!!kT/R`b'rq!*=p8d%n&Fbj)q!!G98[cRGJrr`5pk_&@s$t+IQ^XhE/n+?>Kq>0sc$iBep
+o^D##d_W#4:[q$[C;oB0rS7F'~>
+jSo5+pj`a%E-$])][l<<qYgE_rs/Q#p?^YWVhOSis*OmFgA'P)#QFYqmblBpMWoWqE.";%m/$_=
+rrBP*!!kT/R`b'rq!+O=J-::;Fbj)q!!G98[cRGJrr`5pkbIWt%!?rf^XhE/n+?>Kq>0sc$iBep
+o^D##d_W)NK(4?oP02t]rS7F'~>
+jo5A)"Si$(!`*lnWQXDqqu5m\"o\5`gq6>M!!F6gVV:h"rrrAsnDM>llMq(oE/M0dqVD/O@/Bp0
+:4TD#q#CBc$g[ir:N_`*_YX<98;=S8r8[eZrqbC[nGie`KsKM+qYgE`rs8W%q=En-bcF/$!!Emu
+hXUO"s*t~>
+jo5A8:&%<d@WR@)bN8Bnrp'LerV5d8^NT*="B'WEgA'G&"o\8di5gH78d.n-MR_aDh>[I_qZ$ms
+J?.K#s8Vailq.CiFcWoHqZ$aiL:67Bj8T5\qVbBC8dAgZZJ>*KrVl?e#labtoBP/UY]'&("B;;U
+nbh5CJ,~>
+jo5ACK(sj%EH?r8bN8Bnrp'LerV5d8_Ns\As*OmFgA'G&"o\8di5qMTJ-CC@MR_aDh>[I_qZ$ms
+J?.K#s8VhIm!o4YFcWoHqZ$aiL:67Bj8T5\qW*D$J-U7OZJ>*KrVl?e#labtoBP/U[#jg."GO5>
+nbh5CJ,~>
+k5PJR,kq?E0QDiId-UW.k5PV`pZg:]#k@ru)gnO:pt>ZLrV5d'lMq))FI()<rn[SS./NuL;i%sG
+r;Zf#li724E/(OJn,!(f@Z%e]rSdbWq.K3t"@e6Zkl'iI#QF\snD_`I&Fof)!cuoZqYoCPJ,~>
+k5PJUAGAb%=`K1rd-UW.k5PV`pZg:t:@_![;LG@qpt>ZLrV5d,lUh=XFI()<rn[SS./NuL;i%sG
+r;Zf:lq.F\E/(OJn,!(f@Z%e]rSdbWq2t2>"Cd5!kl'iI#QF\snD_`^;t<Na99@]kqYoCPJ,~>
+k5PJXP5'P4G&`8:d-UW.k5PV`pZg;0K(=HlHig2!pt>ZLrV5d/l[T.cFI()<rn[SS./NuL;i%sG
+r;ZfKm!o7bE/(OJn,!(f@Z%e]rSdbWq60=="EoX5kl'iI#QF\snD_`mK^jQqV:Fu0rnma+~>
+k5PF"p](L*BRZZ!mJGrD"oeDjiMmgf!!F0eVV:gsrrN&8lMq&+H(`XZh#@?rqZ$k"N5+ZVs8Q?j
+!!Q)BSBL?equ?m=Eg"B.ro*kXrl=O/"@e9\kl'`F"o\8dhQ\Bs!!HlYlM:G;s*t~>
+k5PFLpdt`bCOVu$mJGrD"oeDjiO)k\8d&%>VV:gsrrN&GlUh:XH(`XZh#@?rqZ$k"N5+ZVs8S#D
+8d/[LSBL?equ?m=Eg"B.ro*kXrmgO2"Cd8#kl'`F"o\8dhR[+b8d'molM:G;s*t~>
+k5PFjpj`QtDLS;'mJGrD"oeDjiP(->JH'uuVV:gsrrN&Rl[T+bH(`XZh#@?rqZ$k"N5+ZVs8T7g
+J-Bt=SBL?equ?m=Eg"B.ro*kXro!<s"Eo[7kl'`F"o\8dhS>'>J-;FglM:G;s*t~>
+kPkS3"S_s#20=tpk5+$9"TJ2]^*iOQ":fgUf_F%t!35tt!'9TL";cE\f_=2$!$D(<#<RmZlM^bS%
+.+$!"`9"#i;'/G!!Q&BT[NK3i;WiT(@hG.7Z+hArT=+_rV5[#2XpbM@a"$3ro*m-~>
+kPkS@:&%<a>',n@k5+$9"TJ2]`a\R4"AX?@f_F%t!5e\,!*o"c"AsNAf_=2$!$D(<#<RmZlM^bV
+;XI'\9Q#Tki;'/G!!Q&BT[NK3i;WiT=n5/f@Z%e]rT=+_rV5[&D"1+#K$3ESro*m-~>
+kPkSIK(sj"F``b[k5+$9"TJ2]bDl.E"Fb`pf_F%t!7^st!-I^\"FPQlf_=2$!$D(<#<RmZlM^bY
+L@'KqIrC(Ji;'/G!!Q&BT[NK3i;WiTMXl9#G)EoqrT=+_rV5[)P4=&*R`jskro*m-~>
+kPkNYpAbA&J#Lukrnm_Yrql000(f2I%==l%p=B6DL]%2RB-$LB":TXQf_=2$!)ECk"qZO!jo#.R
+qu?^*nc/k8FHjf4nKe&5"X%c?[Ggu>rrN*rnc/e^MS&*Njo5J_qsi8tnGiZ+b3A`\s*t~>
+kPkO6pIYU&J#Lukrnm_Yrql04BD"k":4&bfp=B6DWr5NjCfU!t"AX<>f_=2$!)ECk"qZO!jo#.m
+r(6rank'*bFHjf4nKe&5"X%c?[Ggu>rrN+Nnk'$oMS&*Njo5J_qsi<VnO`n<b3A`\s*t~>
+kPkO\pOEEdJ#Lukrnm_Yrql06OS+,,IX@jAp=B6D_u5)dDgh/+"Fb]nf_=2$!)ECk"qZO!jo#/+
+r."crnpgpjFHjf4nKe&5"X%c?[Ggu>rrN+snpgjdMS&*Njo5J_qsi@(nUL_1b3A`\s*t~>
+kl1Y/pAb@.EK%Qnr7q;Sr:88hp&G4)HD/m_f)G_`rW!!*Ea8)6"*C6ep>#ZJV"t&p5cE<-r_37j
+!=D?f!!P$%U"&U2r;[$/@XF`ln,;,C!.j\@"@e9\kl'QA"9%lB.e3QB!e8G\qVqO*~>
+kl1Y=pIYTbEK%Qnr7q;Sr:8EPp.>H_HD/m_f)G`7r^m5cEcUYA"*^Hhp>#ZJV"t&p5cE<-rdar>
+!DQtm8d/@DU"&U2r;[$/@XF`ln,;,C!2]6Y"Cd8#kl'QA"9%lFAb&Fr99IHbqVqO*~>
+kl1YGpOEEpEK%Qnr7q;Sr:8L&p4*9pHD/m_f)G`WrdY'!Ee<e2"+$Zkp>#ZJV"t&p5cE<-rhfXE
+!If+\J-C.CU"&U2r;[$/@XF`ln,;,C!5J)T"Eo[7kl'QA"9%lHOR[i'T?QZuir=N~>
+kl1WbpAb@BG+-\GrnIGTrUeS^pAb=*H(`[\f)G_;rW!$:G*F0?!!?8jch#rl!V\&>!!H?;jlQ^E
+!!+i]nc/eTJ?-URr;[$*<d'Y=jS@X3!28r`"@e9\kl'N@"9.u;'Cl,+%[ti7r8[g-~>
+kl1X=pIYThG+-\GrnIGTrUe`LpIYQ`H(`[\f)G_rr^m8iG*H;&8crmuch#rl!V\&>!!H?;jm,V=
+8c`(1nk'$jJ?-URr;[$*<d'Y=jS@X3!5.kp"Cd8#kl'N@"9.uC<q8ic;52M-r8[g-~>
+kl1XapOEElG+-\GrnIGTrUeg&pOEBqH(`[\f)G`ErdY)uG*IjRJ-1.ech#rl!V\&>!!H?;jmRd!
+J,sh8npgjdJ?-URr;[$*<d'Y=jS@X3!714d"Eo[7kl'N@"9.uHM"6'!Ju6ubr8[g-~>
+l2LeM"SVm!3.7[VpY#QKrq4GJp](F&GbER[f)G^mrW!$IHD#o\!!G-A`U3Z\rrW/;#PnE%4hQFF
+!!6GR!qQBo7=\hVr;['0<csA,g@YC#rrBe(!!GcK]BK4PrrW2mU@A3d/?mh"roF*0~>
+l2LeS:%q6_>^`L%pY#QKrq4]?pdtZ_GbER[f)G_Xr^m8nHD$eu8d&I``U3Z\rrW/;#PnE&4hRFY
+rCR-)I7s0("(?^h%K-83$<D;.ZJ+sMh>[K%nk'$oMS&*NiVruYosaH`"CSIeo`!qOJ,~>
+l2LeWK(jcuG($7?pY#QKrq4lupj`KrGbER[f)G`3rdY)qHD%D1J-:7_`U3Z\rrW/;#PnE'4hS.L
+J,Xs!E.7A."*K-'%K-83$<D;.ZJ+sMh>[K3npgjdMS&*NiVruYou?NP"GX/6o`!qOJ,~>
+l2LaMp&G4`K!=20f`)'QoX5)$!!@J;e+M>m!;l]p"?(_.d3%oZ":U*rjnmj5!r/2dq>^O((]==9
+)KC]Vo)Je5%/^)1*G'JTYgr7@h#@B&nc/e^MS&*Ni;WlWo2tM_"(8e&q;hR+~>
+l2Lakp.>HqK!=20f`)'QoYaT$8cs=0e+M>m!;udf"C-DTdU2Q;"AXc_jnmj5!r/2dq>^g0/j)To
+8lBYf>4bDg68&cF!!aNUG`ArXnGM)A!8d9="Cd8#kl'H>!r__EnO`n1]]AnLs*t~>
+l2Lb,p4*9gK!=20f`)'QoZi-bJ-1%fe+M>m!<)kH"Eo6nduEpK"Fc0:jnmj5!r/2dq>^g05A,4h
+IsQ*nL\-)uE]X^-!!aNUG`ArXnGM)A!9j!("Eo[7kl'H>!r__fnUL_%]]AnLs*t~>
+l2L`Sp&G4aL:64AfDbpNo8`SG"*U3^o[j*Cg\h*T7Y7l%Mt$cL?DuQNh#@KTntQrm!!>W4S3H?@
+#REn@I[.=lnGM&@!8d8H"@e9\kl'E=!rUsdnc/e$R*+gojo9i~>
+l2La2p.>HrL:64AfDbpNo;VLW"*U3^o[j*Ck5@mT@=k`@Wpr[`Ei@[bh#@KTntQrq!!`Q>-otUV
+S8\0p"%G3q&c2P6#Y&laQ*o34r7h5OkOM4J@Z%e]rSRVVr8^fI8d%t[b3f,gs*t~>
+l2LaZp4*9hL:64AfDbpNo=XjK"*U3^o[j*CmJVP<FFpaS_!upWJZ.8qh#@KTntQrq!!`TM7V$C[
+S<Wf!"*n9=*r>pC#Y&laQ*o34r7h5Omdbl2G)EoqrSRVVr9/n*J-2=amJQ)GJ,~>
+lMgnZ#ke6$7Z"_?rRUuMr:!nc!!@A4d.Gri!4Vn,"]^>fk3WrT!!Fp@am]5arri5d`Dd$8!!<ED
+3$n%o#n&k6I#=Z6h=:EsrrDc`!!GcK]BK4MrrMtInGi\eY1r[Lk5Tr~>
+lMgn\;"dKa@Yq\[rRUuMr:#I:8cs4)d.Gri!6kC6"_NP"k3lID8d&Fdam]5arri5d`Dd$8!!<ED
+3&^[["!\`u$2FQ-$Tr?TMP@oBnbh,@!;Z1X"Cd8#kl'B<!W&P\8d'(8g\1X/s*t~>
+lMgn^K_Bp!G)<forRUuMr:$TZJ-0q_d.Gri!8II&"`oI/k4+?"J-:=fam]5arri5d`Dd$8!!EKE
+3(#k-4p*o#+V4AK#n&k6I#=Z6h=:EsrrDodJ-:%Q]BK4MrrMu.nULasY1r[Lk5Tr~>
+lMgk-o`,+aM7`!Mec,^JiZe4!")""Ho@O!BQi-mfArOLiqLnD>"9a=cjSR^3"o@Z<WE9kt!"/f?
+3bj)#T!m#.pAN\E!<2Nh"@e9\kl'B<!rhQsnc/e*QGr4hk5Tr~>
+lMgk<oh#?rM7`!Mec,^Jj^@pW")sXQo@O!B[J`]$D2c6pqPEaT"A=KYjSR^3"o@Z<WE9kt!"/f?
+3bj)#T!m#.pAN\E!<2O]"Cd8#kl'B<!rhXfnk'$^QGr4hk5Tr~>
+lMgkGomd0gM7`!Mec,^Jk`5Li"*^-Xo@O!BbPcqpEf@cuqS)KM",OGIqqM,SqX2q6=;9ou$NUl$
+C41u2[a=11rRq2NrpkRBG)EoqrSIPUrpba5J-2+Vm/?)HJ,~>
+lMgjNo`,+[M7VpLeGfUG[KHC,"D4"Enc%2@!-J2?#6T"0`pWih%e9T&9Vg53rnIGWr:ApkZ[t1$
+!"'N/@"b8acJe<irn%2@!!GcK]BK4LrrN%3nGiZ%Y2/m8s*t~>
+lMgjloh#?pM7VpLeGfUG`_?8%"E9^Onc%2@!1a$\#>9*#`pWim<:WWaC8BDQrnIGYr:ApkZ[t@J
+!q$$t"Uu:u6=>J@\Ba('qYo+Hnk'$oMS&*Nh>[NRPOV6IGHTcsk5Tr~>
+lMgk-omd0iM7VpLeGfUGdXh:G"Ep-Unc%2@!4r/[#CgcW`pWipL@KcrUt,/;g]%QWoA[s"Jj^1Q
+mJm\&(F_:0@"b8acJe<irn%2@J-:%Q]BK4LrrN&&nUL^pY2/m8s*t~>
+lMgj+o`,+KLq)UFeGfULp14%#"C786nG_)?!)WXp#820Hc1:l3D=RZ0'U$B"rS%8TrV>p?cU[p6
+"pu+Y&Io9OoDf.4<.1msjRE!Dec,U_o)Jn_MS&*Nh>[NT`:3g11n)VWroa<3~>
+lMgjSoh#?jLq)UFeGfULp5]#B"Dj=EnG_)?!.t2B#>fQ1c1:l3QL[WN;Ner`rS%8_rV>p?cY5-e
+,9%F7&ePT`"o\W;"UGMJ'cS>C-7CZLIBCrYnG3%5rr?-l8d&U\]BK4LrrN,KnO`pkR`k4"kPp&~>
+lMgjqomd0kLq)UFeGfULp8n.A"F$*PnG_)?!3#mI#CLZ]c1:l3ZgrVLJ!._8rS%8^rV>p?c[o1m
+4Y@ln&ePT`r!3lF'H8;N4$Z/&85t#>dcBonrRLoJM=Z6#G)EoqrS@JSrnd0q"Fcf_nG_VNJ,~>
+lMgico`,+1KX0V7e,KLJjV[mq"BUc+mf(l=!&4BP#U"Aae+Nb?h?WTO")+mopt5TKrV>R_r;[$V
+9ji7&N#_Hi"r;$DcLC]0e,KCio)Jn_MS&*Nh#@EP(@hG.&rO9_r9+*1~>
+lMgj?oh#?bKX0V7e,KLJl!"!W"DX+>mf(l=!,VX,#ZQ&@e+Nb?k"kP?"*h$*pt5TVrV>_N5Wh"`
+5tta4Ll=In./tb)/1rV52aV>LcLC]0e,KDUo1B-pMS&*Nh#@EP=n5/f:l;jHr9+*1~>
+lMgjcomd0nKX0V7e,KLJl\bUj"F$$Kmf(l=!1<b9#^U`fe+Nb?l@\YX",*l6pt5TVrV>f*DJ3Ka
+9hf#@Ll>:171MdX8PDr[=^GNQRa1F!rmUlIO7Rl)G)EoqrS7DRqhjrp"Fc6>k5=EBJ,~>
+lMgiLo`,*rFfF-jdf0@ERf!-g9T[-Xrn.5N%/p54/psPLq#CBk?1Isu0:L,Srn%/MT)AWo$!qV7
+Z+n%CoDf"(H)B<jdJj1go)Jn_MS&*Nh#@ES;=OVgG,j<lkPp&~>
+lMgj.oL]44WS@3rrrMu'r(7*'OM^A`f`(qLr^mGuI&>Tls8VtRnk'$kR`t:#fDc8j8Ou<=7::+u
+Z+n%er&+sB3'',a5X@b0H)B<jdJj2So1B-pMS&*Nh#@ESK(2G8I&brrkPp&~>
+lMgjWoRI$nWS@3rrrMu9r."opOM^A`f`(r+rdY9!I&>Tls8VttnpgjmR`t:#fDc9)IXHHbEF<dL
+Z+n&)r*Be=@:WtbD/jZ?H)B<jdJj3-o7-seMS&*Nh#@ESVso3<Wn[=3s*t~>
+lMgiKoDf"dS^@!-e,KLKoeuaK"@eBclM]E9!:0R`#X!X>hYR9PrmL?;"9a7bjSRR/!'pJ_#;pOa
+^>J8AIe3UC"+-iqpX0!@+7fI87Z+hArS.>PM=CQK<h7V/rojB4~>
+lMgj-oL]7"S^@!-e,KLKoks_#"CmG+lM]E9!:g"[#[Mt_hYR9Prn[-;"A=KZjSRR/!-eB6#?c)0
+^>J8ASGGV\77Kd<8P2X&Ut>@grr?Hu8d&U\]BK4JrrB(h8d&t$d.@8#s*t~>
+lMgjVoRI'nS^@!-e,KLKopG]."F,p@lM]E9!;6;@#^1a#hYR9ProEU"",aVLqq(iJT`0HIIro^n
+^>J8AZi"nRF`qtSH@1-jIs\!CpX0!@O7Rl)G)EoqrS.>P_sr6[I%AXUrojB4~>
+lMgiKoDf".OML/[df0@G]DV^43JtH4rRq2Na8Gu@8qaS3r;Q]sqb$DZ"@o9;o`!PD!8m_T#QeFb
+WnI+FrNPkn")jd[p!Nd>+7fI87Z+hArS.>PXmlAo6'B7UrojB4~>
+lMgj-oL]6aOML/[df0@GbPb$9?AcAYrRq2NfDS;E@YD,Kr;Q]sqgS*."DFU\o`!PD!9j>Q#AJ^g
+g%PFD`q)e)Fe7(TdJj2So1B-pMS&*Ng]%8lnO`pnP/cqhkl6/~>
+lMgjVoRI'oOML/[df0@GfDU4&H&B5trRq2Nj8FK2FG.$]r;Q]sqkEY3"G*Auo`!PD!:Ti9#B,-m
+g%PFDf(smmJ-1(ge+M,g!0?`%"Eo[7kl'99!7gUi"FH<Omf)GMJ,~>
+lMgiKo)JknXk`^!rrMmdrW!'TL:?=Cg&D&Mr;Zt&M7VmKrr3#u^@D7,'9U,rr7V)MGPqLI,BAjZ
+kktJ\iq!-P?CB+0dJj1go)Jn_MS&*Ng]%8nnGi\GMS/0Okl6/~>
+lMgj-o1B+)Xk`^!rrMnBr^m;sL:?=Cg&D&frCR3+M7VmKrr3#ucLOR1;3A][r7V)MTD_@f<H=/7
+kktJ\lLRUMDOJf@dJj2So1B-pMS&*Ng]%9)nO`pgMS/0Okl6/~>
+lMgjVo7-prXk`^!rrMngrdY,tL:?=Cg&D'$rI>#lM7VmKrr3#ug@BasJ!%S4r7V)M]D[6cH#et[
+kktJ\nFM/4H'utKdJj3-o7-seMS&*Ng]%95nULahMS/0Okl6/~>
+lMgiKo)Jn%N5k5^df0@H`Voi?-A8\br7V)MKDbcQBTBpqrr)itqD[sF"(A:dptG`Kq],P7#u>oA
+de!J<s8EQ$!!H,^aRB,Vrr=/4!!GcK]BK4JrrCpG!!F^([,h/Ks*t~>
+lMgj-o1B-]P/ckddf0@He,DrB=+mm>r7V)MVu93jDN;R"rr)itqJc!t"*L^#ptG`Kr*K=o$"J=U
+de!J<s8H!i8d&gkaRB,Vrr?Hu8d&U\]BK4JrrD6P8d&7M[,h/Ks*t~>
+lMgjVnpgh.`pEWOrrN)SrdY,tKX0Y9g&D&grI>#kNkt)]rVlopRdtt2KWNu(gA_3PNr=J7EdOM.
+oD\direL,r"F--On,Cc8!0?`%"Eo[7kl'99!:KB-"F>d/jS\6AJ,~>
+lMgi_nc/e@W7^bAdf0UK8cSi2JZdo,g&D%[rW!**F-F]6rr)itrMT2d"=]b]n,D)A!42V("VPd1
+[c@5`rrN*WoDf"[Nl(/^df0:ho)Jn_MS&*Ng]%91nGi\3JZdr-kl6/~>
+lMgj;nk'$jWn?tCdf0UKHqI"1JZdo,g&D&4r^m>fF-F]6rr)itrP%hp"Bq59n,D)A!6P13"]0/o
+[c@5`rrN+<oL]6qNl(/^df0;To1B-pMS&*Ng]%9;nO`p_JZdr-kl6/~>
+lMgj`npgjrWn?tCdf0UKU4@cAJZdo,g&D&VrdY0%F-F]6rr)itrQk%b"Fli^n,D)A!87=$"ak9F
+[c@5`rrN+foRI'iNl(/^df0<.o7-seMS&*Ng]%9AnULaiJZdr-kl6/~>
+lMgj&nGi\U\`!5]e,K^Q\c;^@J>q;ug&D%7rW!'6G+$YHqu6]l,kD!=!dqH:qV2#M;#L@t5^/[?
+nGW=c!+tj'">G_Fkl&s0!$Ce4"@e9\kl'99!8d5G"<2ijh"g16J,~>
+lMgjOnO`q!\`!5]e,K^QbXtK(J>q;ug&D%or^m;iG+$YHqu6]lA+N:q98'b6qV2#MK)J:F??_j]
+nGW=c!0ZtH"C$bqkl&s0!+>Cj"Cd8#kl'99!9irF"B'`Lh"g16J,~>
+lMgjnnULb"\`!5]e,K^QfRSL%J>q;ug&D&DrdY-!G+$YHqu6]lORdo(M72I@g]%8PrI>&nGFH_E
+rVc`rZLiYMHA]>urR1]GO7Rl)G)EoqrS.>PmdYf1I"/0Oq<7j/~>
+lMgjIn,NSP^?#%fe,K[L0E;0+Ut>=nrr=&<!!FEiT@EQ2rrN(_nc/e\U=/]5h>[N="TAB)#&/^m
+h>$pJ!06[O"<iH*jS[I+!$Ce4"@e9\kl'99!7pZ?"<2cfg\C"4J,~>
+lMgjhn4Egu^Z>.ge,K[LCJ%6OUt>=nrr?@(8d&+=T@EQ2rrN)&nk'$tU=/]5h>[ND:&[`g9Pf?a
+h>$pJ!3Yrd"BC,^jS[I+!+>Cj"Cd8#kl'99!93N@"B'ZHg\C"4J,~>
+lMgk*n:1Y$^uY7he,K[LQ@OL;Ut>=nrrA)YJ-:1DT@EQ2rrN)<nUL_9de*OprrM_CrdY0%DhG4K
+q#(-l`q4caH\Acer6kTFO7Rl)G)EoqrS.>Plg]K.I!qsJpuqa.~>
+lMgk+mf3JB]&NG_eGfdP`.DZ`WS$purrDfl!!Fj#VV1b@rrMU)o)Jn&NkaiVh>[J1r;[!SFHaZ/
+rVZZq^%;:-&V-t>qU5BD+7fI87Z+hArS.>P^@;1+)h"U;puqa.~>
+lMgk:mn*^m^#JbbeGfdPd[l,RWS$purrDln8d&7DVV1b@rrM[no1B-]O2'rWh>[JTrCR5qFHaZ/
+rVZZqch'g4:k5Y(qU5BD@.Qtn@Z%e]rS.>PdIBg3;LPFrpuqa.~>
+lMgkEmskP!^uG(eeGfdPgp<B1WS$purrDrpJ-:+EVV1b@rrMbLo7-snOMC&Xh>[JmrI>&qFHaZ/
+rVZZqh=Q4#I=SEUqU5BDO7Rl)G)EoqrS.>PhXQ+!I!qmGpuqa.~>
+lMgn\$h"&u)kc'Zr7(`Nq;fK$_;b7DrrCOH!!G?5XPWgMrrN(Gnc/btX4m=(rr=2?!!QYWVUkG>
+r;Qc]oDf!qI&5Kidf0:ho)Jn_MS&*Ng]%8KnGi\@IAkoqkl6/~>
+lMgn];X[3\>-6ZQr7(`Nq;fK$_;b7DrrD!U8d&FMXPWgMrrN(knk'"*X4m=(rr?I*8d/mWVUkG>
+r;Qcco1B+4V:bOjrr?Hu8d&U\]BK4JrrBb&8d&4DW8%+2s*t~>
+lMgn^L$sNpLUQ(2r7(`Nq;fK$_;b7DrrD<^J-:%GXPWgMrrN)0npggpX4m=(rrA/ZJ-Bn@VUkG>
+r;Qcgo7-pjV:bOjrrA,OJ-:%Q]BK4JrrCI:J-:.GW8%+2s*t~>
+lMgna=mc7n#^=qhqYo(G#6"5XhW+2)gA_/Zr;ZsiKX0Y8qYpWrk6LSY"=9DUmeu&C!4Vn,"X7rG
+]]]1hrrN*4oDeu,T$m8Zrr=/4!!GcK]BK4Jrr@Q=!!G30XPN^9s*t~>
+lMgnaM!dk=:6X>uqYo(G#6"5XhW+2)gA_/prCR3$KX0Y8qYpWrlqd4F"Bh)4meu&C!6kC6"]TK$
+]]]1hrrN+#oL]4+T$m8Zrr?Hu8d&U\]BK4JrrAkb8d&CKXPN^9s*t~>
+lMgnaX6tKAJu@8hqYo(G#6"5XhW+2)gA_0+rI>#nKX0Y8qYpWrmt:4^"FlcZmeu&C!8II&"aY0J
+]]]1hrrN+UoRI$iT$m8ZrrA,OJ-:%Q]BK4JrrBh(J-:(GXPN^9s*t~>
+l2Ladli7/P_!(Okf)GpPqY9marn@APO8T%]<J\3Kr;$?nr+5I""9NhTiVMI3!)3=k"]0Q=dIR;5
+rr>7T!!H;gbOPS\rr=/4!!GcK]BK4Jrr>mc!!GrIZJtcFs*t~>
+l2Lb%lq.D"`p!0qf)GpPqY9marn@APYl./sAr+"\r;$?nr/gJA"+di<qVV;QJGi(D@salro)ALc
+!-\!,"DX:Hnc%#;!+>Cj"Cd8#kl'99!.s`5"Cd"hiqqs>J,~>
+l2Lb6m!o5'b38Tuf)GpPqY9marn@APa8LMkF,7Bir;$?nr35aB",O>CqVV;QVYu#KEdOJ,o)ALc
+!1rh5"F6?Wnc%#;!0?`%"Eo[7kl'99!3#F<"ET4$iqqs>J,~>
+l2LeY+m]14%Y!:(qYmPq!-%l:"CdA+lM^PY!rgXNo)JnUT[EB1iVrr="TAB)&o`Z8iqiKN!,D-+
+"@J<imJbT7!$Ce4"@e9\kl'99!#Y5+"D!A#kPaWEJ,~>
+l2LeZ@I-Si;OZJ3qYmPq!1EdX"Dj(5lM^PY!rh%Mo1B-rT[EB1iVrrE:&[`g:iM6!iqiKN!0m+J
+"CmS4mJbT7!+>Cj"Cd8#kl'99!*etc"Diq+kPaWEJ,~>
+l2Le[O6hB#KWa2$qYmPq!4_uX"EKL;lM^PY!rh;5npgh8dI[@rrrMYArdY0"E/:s^qYC-k[.JkO
+HBH/5rmUlIO7Rl)G)EoqrS.>PN:DE$E/D0hrTO93~>
+l2Le`R-FYS0!+4.r2fnu9`4qoEg"H1rqQKoqb-M\":L1%kksE>!.4YE"[[F%b4#<)rrA>V!!G!5
+]]f=Crr=/4!!GcK]BK4KrrCC8!!O'WP/Zhfkl6/~>
+l2Le`Zg(-cB"I-tr2fnuJGi(CEg"H1rqQKoqgS-/"AXrikksE>!2BEa"^cJBb4#<)rrBCt8d&@U
+]]f=Crr?Hu8d&U\]BK4KrrCmF8d/%3P/Zhfkl6/~>
+l2Le`aQe9YOMp;Sr2fnuVYu#JEg"H1rqQKoqkNb5"FlHFkksE>!58>]"a"sWb4#<)rrC15J-:4V
+]]f=CrrA,OJ-:%Q]BK4KrrD6PJ-C=@P/Zhfkl6/~>
+kl1\U.-U^79YB]crN?/#/H,VQ%<Rr\nc&=`!WK_%!!??&g%OG*!W*`5!!NXDKWj5,q#:?5oDf"9
+Ks]q=e,KCio)Jn_MS&*Nh#@A$nGi_PGb3=TrojB4~>
+kl1\VAa)eiHcGCGrN?/#B`:U-:3;iHnc&=`!WL=68cs%3g%OG*!W61$8d.q+KWj5,q#:?EoL]6c
+Ks]q=e,KDUo1B-pMS&*Nh#@AKnO`shGb3=TrojB4~>
+kl1\WP3IK"SBgHprN?/#QMuC<IWUq#nc&=`!WLdCJ-1D&g%OG*!W@uVJ-CC?KWj5,q#:?QoRI'l
+Ks]q=e,KE/o7-seMS&*Nh#@AfnULddGb3=TrojB4~>
+kl1__]*%9t"TqN7m.^I_rr<?(!!F0aS^I*'rrMsQo)Jn8QH/Ckj8T+Wr;[!XFHjc2rV6BmmdpJ^%
+Y1Y;q:#?D+7fI87Z+hArS@JSq],/,"Ti+aXkrm:s*t~>
+kl1__b=q.m"\a?dm.^I_rr>mp8d&%:S^I*'rrMt6o1B-dQH/Ckj8T+prCR5sFHjc2rV6Bmo(5NW
+:4TG&q:#?D@.Qtn@Z%e]rS@JSr*Jnc"DWOjhYH@7J,~>
+kl1__f7E1:"bE;nm.^I_rr@`OJ-:4DS^I*'rrMt`o7-snQH/Ckj8T,.rI>&pFHjc2rV6Bmp@Nk<
+IXnNVq:#?DO7Rl)G)EoqrS@JSrJpDu"E/mohYH@7J,~>
+kPkSXIcg\8"&HSrp\b#trrD*X!!FToUXo/4rrN(nnc/c4ZJbQ=rr>1\!!WL7J>q2prqQKorYP2,
+"*gWopXB-B+7fI87Z+hArS@JRTCDmb-?>3`lMTiFJ,~>
+kPkSXTBAfN9RXtJp\b#trrDB`8d&1@UXo/4rrN)2nk'"5ZJbQ=rr@0>8d/s[WS$qDq#:Bo>4bDh
+HDK3fe,KDUo1B-pMS&*Nh>[JenO`scEfe*%r9+*1~>
+kPkSX\EAAHJY1<Up\b#trrDTfJ-:.DUXo/4rrN)CnpggsZJbQ=rrAYhJ-BnBWS$qDq#:BoMtDN%
+I&,Ehe,KE/o7-seMS&*Nh>[K$nULdfEfe*%r9+*1~>
+kPkV^nP\HK"[]6TpAFourrBt8!!G$*WS@4@rrMd5o)JnST$R!,jo5>,r;[!KEf[rur:^-j9(W)c
+@[tj<e,KCio)Jn_MS&*NhZ!WR,k:p>!aC&Ie+EY&s*t~>
+kPkV^nU]do"a.KDpAFourrCRI8d&=HWS@4@rrMh"o1B-pT$R!,jo5>:rCR5oEf[rur:^-jIe657
+E1G>Je,KDUo1B-pMS&*NhZ!WSA+<.pB7-K'o`"%RJ,~>
+kPkV^nY>2r"e*NupAFourrD$VJ-:+GWS@4@rrMkRnpgh6cgq(srrD6\J-C4=O1siUpAY,goRI$i
+SC-uXrrA,OJ-:%Q]BK4MrrN(]nULd]I&#0_roa<3~>
+k5PM[k=4M4"YQ&$o_\WtrrA\i!!GK:Y2K0LrrN(So)JmuLqMmIjo5<jr;["&I%o*^rq??lEqB>7
+:6irjrm^rJ+7fI87Z+hArSIPSL[b?J.rpT[jnn3?J,~>
+k5PM[k]l/\"_b%#o_\WtrrBY/8d&IOY2K0LrrN(so1B-[MnJ3Ljo5=CrCR6*I%o*^rq??lRe02T
+B9gU.rm^rJ@.Qtn@Z%e]rSIPSWpr[b=)s82jnn3?J,~>
+k5PM[l($gb"d6X`o_\WtrrCCDJ-:%HY2K0LrrN)6npgh$]]T+QrrB>&J-Bq?U=8c6pAY-&oRI'j
+Q-&OpeGfN0o7-seMS&*NhZ!SnnULdeEf@Tkqr[p/~>
+k5PP_q;O6k!!O-]eFE>4])MbXr;ZsmKs]q=o`"sU%eBZ&;Q&1@k5PJN#lXf-)KCYEjSSWM!1i`^
+"?MRZli,E6!$Ce4"@e9\kl'E=!RD&B!!WjDI\bE`roX62~>
+k5PP_q;Z;O8d/=ag%"k9])Mc)rCR3%Ks]q=o`"sY<:`]aDPu.\k5PJS;#X&j;K7T(jSSWM!4h_o
+"CI2*li,E6!+>Cj"Cd8#kl'E=!SpTC8d8%+I\bE`roX62~>
+k5PP_q;de#J-Cb7hXUC>])McErI>#mKs]q=o`"s]L@]otJu@8pk5PJVK`6K*HuY%RjSSWM!7(4e
+"F?*Eli,E6!0?`%"Eo[7kl'E=!U#.,J-LI?I\bE`roX62~>
+jo5G^pYS?t!!WX*Z0h8_rk8=3=T&4&=,OWRrUg*jr+Ya&"<*NDm/?,I!/pdU"\F!1cLCi+rrC15
+!!FU(\E<_=rr=/4!!GcK]BK4OrrM:.nc/jq:Nhr;kPF<?J,~>
+jo5G^pY^2R8d8%@_X7'prk8=3M#BpKBSsFcrUg*jr0-_E"B:W)m/?,I!3Q2l"^u\IcLCi+rrC^D
+8d&4O\E<_=rr?Hu8d&U\]BK4OrrMOtnO`soG*B`)qW7a-~>
+jo5G^pYhS#J-LV"c0b6&rk8=3XSmYPFGd]orUg*jr3GpE"FlZTm/?,I!6+ne"`ns[cLCi+rrD*O
+J-:7U\E<_=rrA,OJ-:%Q]BK4OrrM_SnULd_G*B`)qW7a-~>
+jSo>]p>/^*!!OX"g@G+=^]+9nr;Zt2Nkju[o`#!ldf]1A")b@#puq_Yq],S8"Uo7&ZJbNMrrDW^
+!!F!fYi,B-rr=/4!!GcK]BK4PrrM^JnGibPEepsSp&=(QJ,~>
+jSo>]p>:>W8d/[thX^OA^]+:RrCR3/Nkju[o`#!lhG!N5"+7?1puq_Yr*K@p"\rriZJbNMrrD`a
+8d&"CYi,B-rr?Hu8d&U\]BK4PrrMh3nOa!iEepsSp&=(QJ,~>
+jSo>]p>DP#J-CtCipusE^]+;(rI>#lNkju[o`#!ljb!)S",=&;puq_YrJpl-"b(BEZJbNMrrDid
+J-::PYi,B-rrA,OJ-:%Q]BK4PrrMqanULgdEepsSp&=(QJ,~>
+j8T8]p>U&nhuErc:Tj*Yr;OS5!#5A3"EK[Fmf)hX!W,O]!!G-KcLLnurrB+u!!PE,QH/Cko`"sk
+-M7?A"+@-%psf<D+7fI87Z+hArSmhXj!aEt"tFPCV9n]/jSs`~>
+j8T8]p>V6/i(=2KJ&(IFr;OS5!*K1l"EK[Fmf)hX!W.?;8d&LkcLLnurrC"98d/LDQH/Cko`"sk
+AG&Ot97<bmpsf<D@.Qtn@Z%e]rSmhXlXoZZ#$5_pV9n]/jSs`~>
+j8T8]p>W'&i.)#`U!;uur;OS5!/g`*"EK[Fmf)hX!W/Y_J-2=enc%eQ!7h$us)nL1a6iitrrN+^
+oRI$lW7q$rrrA,OJ-:%Q]BK4QrrMYSnULggDh=h4n,28HJ,~>
+ir9/\pZ.SOh>d^)K])IurPed:oDJXm%<Rr\o)A7\!WK_&!!EL[]&ihRrr>1\!!NI<JZIN!o)A\b
+oDeu+T@<J_rr=/4!!GcK]BK4RrrK_KnGib<D18(tlMBQ@J,~>
+ir9/\pZ/;QhF[r\U>tkArPed:pAISe:3;iHo)A7\!WL=78d%hD]&ihRrr@0?8d.k(JZIN!o)A]@
+oL]4+T@<J_rr?Hu8d&U\]BK4RrrLGMnOa!cDLS1ulMBQ@J,~>
+ir9/\pZ/f;hLGci\E*8XrPed:q>GgIIWUq#o)A7\!WLdCJ-1_@jnn<B!1s.>"E8pmg@t1<!2fC=
+"+-Zhp!j!AO7Rl)G)EoqrT!nYh2LlS#'k-9T#g3nj8XW~>
+iVs&[puoFNh#ITiD9q_HrQ"p<ci!hH)0h_#o^Vq^qCM4<"AP`Dp&=:W!6b<@"Y=_W_!:jgrr@67
+!!H2dbOPS^rr=/4!!GE?\`WhOrrM_0n,N\IDgn4ok5##:s*t~>
+iVs&[puoY3h+@iMP1K-trQ"p<h>KqK;L"b\o^Vq^qIoIm"Dajbp&=:W!8@BD"^#i._!:jgrrAY_
+8d&jpbOPS^rr?Hu8d&IV\`WhOrrMh]n4EpgDgn4ok5##:s*t~>
+iVs&[puoe]h1,Z`Y1rI@rQ"p<kP]o6H[)+0o^Vq^qNUT%"G*E#p&=:W!9O00"aG*N_!:jgrrBY&
+J-:1bbOPS^rrA,OJ-:+Q\`WhOrrMr)n:1aeDgn4ok5##:s*t~>
+i;Wu[qWuaU$Jb[c#%#OAq#/>7!3c>$"=&5ef(SY6!WAP[!!F%"_s@9err?=&!!QPSUt,,:o)A]d
+oDf"ZOMgGaec,Uknc/h9HIhZarosFaqk"ku!!i`qEe9n#jS/Z5s*t~>
+i;Wu[qWuaq:u+_I:5I?dq#/>7!64t0"BBcBf(SY6!WBIu8d&%T_s@9err@uU8d/mVUt,,:o)A^(
+oL]6qOMgGaec,VWnk''gOk91$rosFar4?;*8dJ*tEe9n#jS/Z5s*t~>
+i;Wu[qWub0K&(q\Ju72gq#/>7!8%1""F5<ff(SY6!WC14J-:@b_s@9errB5#J-Bq@Ut,,:o)A^;
+oRI'jOMgGaec,W1npgmqU=f&6rosFarQgMoJ-^XGEe9n#jS/Z5s*t~>
+hZ!`Uo%pZ;g].K^?-_m5rQG3@Mu<VY0RftTq!e:anJ:]r")+moq!A"]k61ba"W_T@]&rn[rrCI=
+!!Fg/]''%Brr=/1!!X3S]^Y^orpKdflAHnV!!jBGG)3!9k4el6s*t~>
+hZ!`Uo%poqge%`FLXbberQG3@Xo1ip=am=(q!e:ao3(ZW"*h$*q!A"]mS3[Q"]KE!]&rn[rrCpJ
+8d&:R]''%Brr?Hr8d8C[b4,3(rpKdfn>p-h8dJ:-G)3!9k4el6s*t~>
+hZ!`Uo%q*DgjfQ[V:b52rQG3@`Vk;iG^cUGq!e:aonr?k",*l6q!A"]o7Hsl"ab6I]&rn[rrD6S
+J-:4U]''%BrrA,LJ-Lh3eF<82rpKdfoYls^J-^L@G)3!9k4el6s*t~>
+h>[ZWpZTt`,hrA'$uO\eq>SY=!,2<2"?M+:htljB!W@H<!!FsDbjbW!rr@EE!!Q#@T$R!,nc&Xd
+"SD`t(50!Qqpk]H+70%7)dScMnbN(\rr2]m"THu<9*F_a#ms"=IZq"_lM:G;s*t~>
+h>[ZWpZTtq?JJ-V;N]c(q>SY=!0mFS"C6S]htljB!WA_`8d&IhbjbW!rrAel8d/[LT$R!,nc&Xe
+9_D!\;M;@8qpk]H@-pPm>`#`8o(i1]rr2]m"TIDfIn]?(#u+cHIZq"_lM:G;s*t~>
+h>[ZWpZTu)LtmLaKWEquq>SY=!4;]T"Eo@!htljB!WBY%J-:@jbjbW!rrBb2J-C">T$R!,nc&Xf
+K(XWsI>"ocqpk]HO6qH(MlF\OoD/:^rr2]m"TI]/V1S2e$%?u9IZq"_lM:G;s*t~>
+h#@TXqXE@]F;EX3"W<3Xo)&F4rr>Rf!!GcE[,_)QrrM$_oDf!sK"0n=mf*=^'`J(9%W7$-i;)mB
+!WFSA!!EISWS@3urr=/*!!`TO7UCD#R[X2E"+FiG&+0E)&j^D^N2+/Bn,!%@s*t~>
+h#@TXqXE@]N`Oq-"^7_^o)&F4rr@HF8d&RU[,_)QrrM:YoL]6ZL:H=Amf*=`=T1nr:2blni;)mB
+!WHa)8d%h:WS@3urr?Hk8dA%!HAeDs[^Q.D"/:s%<UNHd:g\3hN2+/Bn,!%@s*t~>
+h#@TXqXE@]TS2*N"c9\Jo)&F4rrAknJ-:"J[,_)QrrMJ=o7-q#\E*PTrrN"SrdY0$E/(^Wq=+Cb
+rfm)+"Fkm"g\B>!!0?Ap#_J/2XLc<lb00e."2;(4L[K["I!'IVN2+/Bn,!%@s*t~>
+gA_BUpZpGDA.IAp"?!RMpANA<!$qLC"B1,fkPalL!W6-m!!Gffeb&k0rrADa!!PH-QcSUnn,EAc
+oDeu/T[`Ybrr=.]!!t5jG_r*'dHC3#h>`!~>
+gA_BUpZpGEK2UJs"Dkm;pANA<!+Yt""D3J$kPalL!W7cF8d&h'eb&k0rrBJ*8d/LDQcSUnn,EB@
+oL]4-T[`Ybrr?HI8dSU9G_r*'dHC3#h>`!~>
+gA_BUpZpGFRY'=F"I$pjpANA<!0[;2"E]I2kPalL!W8thJ-:G!eb&k0rrC7@JH'cpQcSUnn,EBd
+oRI$jT[`YbrrA,#J-gF<G_r*'dHC3#h>`!~>
+g&D<Vr:K4%ZsO=!!!NREf^AS7df0:Mr;Zt/NPFcWn,EFfa7B96'9U/sr9sXc./j2M")!1dg\:.9
+!.shC"B:c4o)@5?!$Ce4!\Go/f)Q$Y.ri5UmeZq<s*t~>
+g&D<Vr:K4%[t%?38d.qNg$\\8df0;@rCR3.NPFcWn,EFfealB9;3A`\r9sXcB)YC+95K0\g\:.9
+!2fB\"DX=Jo)@5?!+>Cjs&]7qf1H9@?&-/JmeZq<s*t~>
+g&D<Vr:K4%\<qm(J-CP'g@"e9df0<!rI>#lNPFcWn,EFfht)@$J!%V5r9sXcPl6+8Dh5"Ep[8%]
+_"<-[HC2qIrmq)LO7Rl'GBn\hJ-LRk^=r#OrnRO(~>
+fDc*Tqt&mqZ=k!/!!FdZk4SZ%rrCgO!!I,#`9mQlrrN!Vo)Jl'Xk`^@rrBD(!!OopP/6G]mf*9h
+oDf"ZOi6Ydf)G^lo)Jt_FFe0r+9^j-":,u"5ofV!"W2O:o(i7?s*t~>
+fDc*Tqt&mq[=hQ98d&\=k4SZ%rrD3Z8d'*q`9mQlrrN"9o1B+.Xk`^@rrC1>8d/=<P/6G]mf*:*
+oL]6qOi6Ydf)G_Xo1B3pFFnpW=A7mM"AMfu@TE.p"^.;Lo(i7?s*t~>
+fDc*Tqt&mq[[;^'J-:nOk4SZ%rrDHaJ-9qU`9mQlrrN"co7-prXk`^@rrCaNJ-C1=P/6G]mf*:;
+oRI'jOi6Ydf)G`2o76j_"+uJeK'%RdIXHHeIeS?rLp>k.q>K.LJ,~>
+ec,mRqXNUl\8s"R!!E[eh!k3krrB\0!!NOIQ-/Uqmf*=eV"4Qh.@JBJrpg!g7/[)h>(*3sp&=CZ
+!7g]A"=oAAkl'*4!$Ce4%7Pf?[^N-%G$@?g+VbIZ!"98O,rS>#EdiXsO-3'-!!NdIf^S_8huA3~>
+ec,mRqXNUl\;FVL8d%t`h!k3krrC@C8d.n0Q-/Uqmf*=e]^n_u>+*S&rpg!gHMpG>B76T+p&=CZ
+!9*QB"BgVokl'*4!+>Cj%:Od[[^N-'KQV!8=&Mie8dnHm='fHTGCG1#O-=PV8d/+Tg[P%;huA3~>
+ec,mRqXNUl\=860J-:M/h!k3krrCmRJ-CFDQ-/Uqmf*=ecLZPhJ!nLKrpg!gUA]TGEIFY5p&=CZ
+!9s-+"FH$<kl'*4!0?`%$?grm[^N-'Nei@=rdXTk%"<VPH[0m_IY3H;P`>Be"bj&7nG3%?s*t~>
+e,K^QqXNXp]SSiUhZ*dcdd-`.fDbi;r;Zs2G+-bKm/I+Z)Y="4!dqH:qXXXdci!hI)0(SGjnnHF
+!WEAt!!F'jZJtc4rr=/4!"qbW[+OEmcGI#jU7.@/N.uLtF8U%iGCbC#LlIRcTW#**_T9cO#ke6%
+'7o05qYoIRJ,~>
+e,K^QqXNXp]U*D-hb"$(dd-`.fDbiYrCR2fG+-bKm/I+[>P(Mj98'b6qXXXdh>KqL;K7W+jnnHF
+!WGmf8d&%FZJtc4rr?Hu8ePTh[+OEmcGI#jU7.@/N/2t4I/J:%I=[$)LlIRcTW#**_T9ce:A.9`
+<hA=@qYoIRJ,~>
+e,K[PqXNXp]V18?J-;IllhUP3rrC7@J-::DRa:TlrrMkQo7-q"[c@5TrrD6\J-C:>Mn8$ImJd4d
+K_9iuI>"ocqptcIO7Rl7G)3NXj4_eq[]?-kQ&pr\L4k3WK)^B3K8#,@P*quAYdqWla/agcJ-C_7
+iplmEiW"E~>
+dJjLOqXWe!^nP'OhuEmGa6*0rf`(qrr;Zs=Gb<LYm/I+bJb&jE7&&-%rq$-i>l=X+8U6lPo)A%V
+!WF_E!!EISWS@4!rr=/4!"qbY]'&n`o'>Amf$DIU^:LbYYPPC4Z*h0Y`m*#fiTBLrmc()Uo`,+G
+ZKCiXir=N~>
+dJjLOqXWe!^nuHZi(=,kaQE9sf`(rDrCR2jGb<LYm/I+bV"71]B;3iHrq$-iMu?6O@<nEho)A%V
+!WHj,8d%h:WS@4!rr?Hu8ePTj]'&n`o'>Amf$DIU^:LbYYPPC4Z*h0Y`m*#fiTBLrmc(QPoh#?u
+^?5+dir=N~>
+dJjLOqXWe!^oEQMi.(roal`Btf`(rarI>#tGb<LYm/I+b^%-[UU=/]5oD\fnrI>&mH(E7OrpB^d
+rg*5-"Fkm"g\BA"!0?`%&pB/DkP=lClf?mQccO)=]!eoJqQ:@6[CX/nc.(M,k3VU*ikC0?J-:tR
+k4SZ3s*t~>
+ci4=Nqt97.aKp@Q"QBCa3PjeMrn7;O;uH\!-@DWApZqh[j9P;W":pO.l2:2R!TO=^!!NdJL9fb5
+li-rkoDeu,T[`Ycrr=/4!"qbY]BK4nrr2ikp@Ie?lK@9hi;;C=i8Wh\lL+69q"jpfrWDu]ZQAc>
+"U8r"meZqDs*t~>
+ci4=Nqt97.aKpt>9]AYIC;T'*rn7;OL&FUH<d^^qpZqh[l;.%E"Ak/pl2:2R!UEJZ8d.t-L9fb5
+li-sDoL]4,T[`Ycrr?Hu8ePTj]BK4nrr2ikp@Ie?lK@9hi;;C=i8Wh\lL+69q"jpfrWDu]^0L>'
+"\k-5meZqDs*t~>
+ci4:Mqt97.aKqCmiID&l_rUOjg&D&PrI>#rI&,Ehli."RKCjZsIuqJ1r:L!inUgaj"b(BEZJbQE
+rrB4oJ-11leFhDm!0?`%&pB/Ekl(P\rquTcoC2,3kN1a^qqhb=ioK:fmdg&GqY^?l"8V6&MY2K'
+JuIDkqYoRUJ,~>
+c2S+Lr:fX<d(PlG%c[Nl2nn;Frn@AP2#RCW0n-+Wq<S%]r*Jsp"'qt]p[nIcF8Z(B3Hg_/mJZAN
+!/gCK"B(W2nc%/?!$Ce4"@e9\kl(AXs8N&ss8;]h"oJ5rrVlflrr`/d_]SLN"?sffp\s:SJ,~>
+c2S+Lr:fX<d(Q/s;<(7OBu&a%rn@APDZ*01>(3I+q<S%]r/:/="*:Nsp[nIcSGc%`>]uFRmJZAN
+!3>`a"DO7Inc%/?!+>Cj"Cd8#kl(AXs8N&ss8;]h"oJ5rrVlflrr`/db$FX3"E;HFp\s:SJ,~>
+c2S+Lr:fX<d(Q<<K&_@aNPOQIrn@APRf.a>G^cXIq<S%]r2fL?",!Z.p[nIc\c%$^F`s(kmJZAN
+!6"M["F?HZnc%/?!0?`%"Eo[7kl(AXs8N&ss8;]h"oJ5rrVlflrr`/dc\qFG"I.*mp\s:SJ,~>
+b5VbGqXWk&`iNbjj8]<@^>ekcg]%6br;Zs]JZdr-li."b`:Es3-()dArV$6lmh#Hu"Tr7bX4m=5
+rrB=r!!GKI_sIBSrr=/4!!GcK]BK4Lrr`2h\eF]9"<t22o_mqPJ,~>
+b5VbGqXWk&`ianpj@TPh^Z+tdg]%7RrCR2uJZdr-li."bddp'6=d[:urV$6loMtl_"\WT\X4m=5
+rrC+38d&Ra_sIBSrr?Hu8d&U\]BK4Lrr`2h`E)V'"CA[uo_mqPJ,~>
+b5VbGqXWk&`itb^jF@Am^uG(eg]%80rI>#oJZdr-li."bhXc7#J!e=FrV$6lpPAcu"E/gkg@sn4
+!8$jn"F?0Im/GW:!0?`%"Eo[7kl'?;"8q]7L\-*"MSJ-BrT=-1~>
+aSuPFr:]L7c+%g=jT#EP_;tCjh>[K@qu?jgKXBh<lMgn^2"UbN!d_65qY'phO8T%^-?>3`l29iH
+!8d>J"=8o9kPa$4!$Ce4"@e9\kl'<:"8q_s$1n3#'qsFRr9+*1~>
+aSuPFr:]L7c+&X9j[oYp_;tCjh>[KFr(7*#KXBh<lMgn^DY$I&K!aP6pAY,srCR5oEfe*$r9F:^
+kO_@L=,FNOrR_&L@.Qtn@Z%e]rS7DTr:7^$oL]6eXk`LFkPp&~>
+aSuPFr:]L7c+'6tja[Jq_;tCjh>[KJr."omKXBh<lMgn^R.Gh1LpZ1<pAY-5rI>&rEfe*$r9F:^
+mdu#4I#5GtrR_&LO7Rl)G)EoqrS7DTr:8'aoRI'u[G:?NkPp&~>
+`W$2Aq!d=l]RM<k!!?`Lk5!j5!6b9?"B1,ekPXWF!WJY]!!GEWdI[A4rrN!6r;["$I&#3`rp'La
+rX8B!";?BkiVM1+!$Ce4"@e9\kl'99"8q_Z"7uQr&#@nLr9402~>
+`W$2Aq!d=l]TQXa8csU^k5!j5!8@?C"D3J#kPXWF!WKS"8d&[tdI[A4rrN%%rCR6)I&#3`rp'La
+r_iD]"Aj]SiVM1+!+>Cj"Cd8#kl'99"8q_p9_:p[;QSRBr9402~>
+`W$2Aq!d=l]V(&BJ-2(Tk5!j5!9O-/"E]I1kPXWF!WL:5J-2IloD\Ob!W@uUJ-Bq?UX\r8lMgna
+L@p'"I=e]^qUb`IO7Rl)G)EoqrS.>Sr:7[ToRI'sZJ"gHkl6/~>
+_uBu@qXWe!^OdTl!!E@Ub3Sr]rrAtp!!HSd^?Y[]rrMX&oDf"%N4nHQq#:>dr;[!:E/M0dqs"+]
+r\jEL"9NkHgA';"!$Ce4"@e9\kl'68!rVP*o)Jn2WnHtAl2Q8~>
+_uBu@qXWe!^Q_sd8d%eMb3Sr]rrBk48d&mf^?Y[]rrM^loL]6]NkOZSq#:?+rCR5jE/M0dqs"+]
+rc%L%"+7$#pt,NG@.Qtn@Z%e]rS%8Qr:#pA8d&8!g%,++s*t~>
+_uBu@qXWe!^S6JGJ-2@blhfQ=!7Ujr"ETO9lM]uI!VM9@J-:@^^$,ChrrCCDJ-C=>MR_aEl2Le`
+Re2+4I](opfDbi3o7-seMS&*NgA_6Pn?2A5"GO/7o)7hQJ,~>
+_>ac>qt0+(^ip[\!!Eq.dd[4mrr@iP!!Hnq_sIBerrN(=o)JkpWS."?rr=bO!!P]6S':C$kl1Wp
+oDeu&T$m8_rr=/4!!GcK]BK4HrrW)b4nAXV.^\"(rp'N6~>
+_>ac>qt0+(^lDL\8d&(gdd[4mrrB(s8d'$n_sIBerrN(do1B+(WS."?rr?m68d/OGS':C$kl1XG
+oL]4)T$m8_rr?Hu8d&U\]BK4HrrW)bF7W!,@("e_rp'N6~>
+_>ac>qt0+(^n?DGJ-:J%dd[4mrrBt7J-9tU_sIBerrN),o7-ppWS."?rrAGbJ-C%>S':C$kl1Xg
+oRI$jT$m8_rrA,OJ-:%Q]BK4HrrW)bRe)%4Lpl+3rp'N6~>
+^]+Q<r:T:)]OqT:!!GKkh"La*rr?U-!!IA-aRB,lrrC^C!!FI2a6ij%rrBD(!!NRBKWs>.kPkOB
+oDf"fQHAXqf`(pno)Jn_MS&*Nf`)$LcjfRH"Albjq#9UZJ,~>
+^]+Q<r:T:)]nK8I8d&k6h"La*rrA2Z8d'4"aRB,lrrD$L8d&4]a6ij%rrC1>8d.n*KWs>.kPkOb
+oL]7!QHAXqf`(qZo1B-pMS&*Nf`)$LfMhB6"E_<9q#9UZJ,~>
+^]+Q<r:T:)^70`>J-:\6h"La*rrBA&J-9qXaRB,lrrD9SJ-:@fa6ij%rrCaNJ-CF@KWs>.kPkP%
+oRI'jQHAXqf`(r4o7-seMS&*Nf`)$LhM(QO"HL.Sq#9UZJ,~>
+^&J<9r:K4&Y!D:Q"9O%gkka6;!'pJ_":B7<bjsrs!W5=V!!@;Ji;*6L!'pJ_"Yb%_`U*QdrrBJ!
+!!G0>_!D!Prr=/4!!GcK]BK4GrrW2pN:R#P!e\MXqs494~>
+^&J<9r:K4&Zu>8&"A=Wgkka6;!-eB6"AO!*bjsrs!W7678csOJi;*6L!-eB6"^,r3`U*QdrrC46
+8d&I\_!D!Prr?Hu8d&U\]BK4GrrW2pWq/gc99@0Yqs494~>
+^&J<9r:K4&\<6',"-gXcqV_ART`'BDIWUt$o&p#Rr1NY3",F2?q>1*kT`'BEG'&tfm/?,I!87!p
+"FH0Eli,Q:!0?`%"Eo[7kl'06!rhu0npgh1`p3Hes*t~>
+]Di*7qt&moL_B%S"=g4qo)@VJ!$(q;";#dIdIcW%!WK1l!!G?Sd.726rrC+;!!QVVVqC_BkPkPH
+oDf"<LUQ=Bf`(pno)Jn_MS&*NfDbpOn1+#0"<aVko)7qTJ,~>
+]Di*7qt&moS5eiI"C7hOo)@VJ!+#Oq"Aa63dIcW%!WKt-8d&Upd.726rrC[K8d/jVVqC_BkPkPN
+oL]6eLUQ=Bf`(qZo1B-pMS&*NfDbpOnRqGc"BhYOo)7qTJ,~>
+]Di*7qt&moWeB_h"G3Gto)@VJ!07#."FYKadIcW%!WLO<J-2Cio)ARe!9=!-"`Spgf_5=-rrDZ_
+J-:7T[cRG>rrA,OJ-:%Q]BK4FrrW2jPOj;-Ju@)grTsQ7~>
+\c2j4qXE@Q46uqLHF`,5ir9#Uqu?j<H(`[\k5PJU)Y="4$&H7Wqu$Ho;#L@t*c[.OkPOEA!WEc*
+!!EXZXl'!-rr=/4!!GcK]BK4ErrN%nnc/c%\)R5Ms*t~>
+\c2j4qXE@UD<sjsKXp1?ir9#Vr(7)iH(`[\k5PJV>kCVk:5cdJqu$HoK)J:F;fRc/kPOEA!WH0n
+8d%k=Xl'!-rr?Hu8d&U\]BK4ErrN&0nk'"1\)R5Ms*t~>
+\c2j4qXE@YOmIT#N4J$Gir9#Wr."osH(`[\k5PJWN:_W'IuM&'qu$HoW;V5MH?"nVkPOEA!WIrK
+J-:=OXl'!-rrA,OJ-:%Q]BK4ErrN&Anpgh$\)R5Ms*t~>
+\,QX1pZg7G!q$$k3hb!mro="YfDGUO-%)N@pZDJVrHe&8"&c)MpAP!kg\_$T89pfRo)@eO!WG:T
+!!@8;fCmks!$Ce4"@e9\kl''3!V@E(!!F./bO5>rs*t~>
+\,QX1pZg7g9^YLUA"h?Aro="Yj8;LP<d^^qpZDJVrL`[R")b'ipAP!kk57gT@!S?jo)@eO!WI66
+8cs=6fCmks!+>Cj"Cd8#kl''3!VKdj8d&+`bO5>rs*t~>
+\,QU0pZg8(m=5=jU!iN2j8T,Fr."oqI&,Ehk5PJ\](:FSJuI>qrVllbr."rkH(NCRroX4]rgrb4
+"+6orp=TBFO7Rl)G)EoqrRLoKp5SWn".[R&rU'W8~>
+mJd4QqYpK?rrrE!o&#]Bmf3J"NkOZSj8T+gqu?jNI];)tjo5A:"S;Zs)O/5-rVlfs?i9s.$>bI'
+iVDR7!,D-+"BLu:o)@>B!$Ce4"@e9\kl''3!W@<7!!@#BhtZU=J,~>
+mJd4Wr;Q]ArrrE!o&$BDmn*^YNkOZSj8T,'r(7)oI];)tjo5AB9_:p[<0YAgrVlfsNr;QR9l>]l
+iVDR7!0m+J"DjOPo)@>B!+>Cj"Cd8#kl''3!WAV\8csIHhtZU=J,~>
+mJd4[r;Q]ArrrE!o&$m/mskOjNkOZSj8T,6r."opI];)tjo5AHK(OQrJ!@q=rVlfsYPitTIVsnH
+iVDR7!4;BK"FHT_o)@>B!0?`%"Eo[7kl''3!WBV#J-1V5htZU=J,~>
+n,EUdIh7t8oD6`3"TA)XY8cp1"(nRepZ)8RQi$gd2h8'gqW7_Xr'^,V#B6p)q#CBW"T8<(20G5*
+mJZ,G!0QmR"@/-hmf(o>!$Ce4"@e9\kl'$2!6t'7">H@jnG_kUJ,~>
+n,EUfUfFbioD6`3"TA)X\m"Pp"*U]upZ)8R[JWW">_'!7qW7_Xr-@m+#CNc5q#CB^:&RZf>'6.O
+mJZ,G!3l)f"CdP5mf(o>!+>Cj"Cd8#kl'$2!8@!9"C@VCnG_kUJ,~>
+n,EUh^PKr!oD6`3"TA)X_hmi4"+mQ,pZ)8RbPZknGCZjRqW7_Xr1NY3#DTJ?q#CBcK)L6"FT[rM
+mJZ,G!6Fe_"FH<Nmf(o>!0?`%"Eo[7kl'$2!9<U"".[X*rpKf:~>
+n,EX9!!!tXg$nparri>tm(a\3!!GTUbjk\nrr@0=!!GQ>ZJtcCrrN+qo)JtOSBg[(s)7i9"Ti+_
+WnR1,rrC%1!!F^-]]f=Irr=/4!!GcK]BK4CrrN$5o)JmtL:QFCmf.e~>
+n,EXH8kN@1g$nparri>tm)WK%8d&[mbjk\nrrASe8d&LRZJtcCrrN,4o1B3oSBg[(s-`dW"DNCd
+g@jS,!7g^6"B^Pokl'37!+>Cj"Cd8#kl'$2!W6-m8d%hD\`N_Vs*t~>
+n,EXSJ:NR#g$nparri>tm*1FWJ-::gbjk\nrrBY.J-:%JZJtcCrrN,Fnpgn6cLLo6\,:aZDh+kA
+p>c/QiUhX'I#>T#rRq2NO7Rl)G)EoqrRCiJr/1&q",aYNqsOK7~>
+n,E[i#QOj,[bUTUbl7eBnAQL>!!FL)^?GLUrr?!q!!G`F[cRGJrrMg/oDf("Kt?FDmg/jl"WqcF
+^?GLTrrDKZ!!EsfZJkZ5rr=/4!!GcK]BK4CrrN*rnc/buVUtP0s*t~>
+n,E[k:J+6*[bUTUbl7eBnB>5/8d&1R^?GLUrr@cN8d&RW[cRGJrrMjsoL]<]Lq;aGoMGKY"]TN&
+^?GLTrrDW^8d%tCZJkZ5rr?Hu8d&U\]BK4CrrN+Nnk'")VUtP0s*t~>
+n,E[kKReT;[bUTUbl7eBnBm3bJ-:7Y^?GLUrrB(sJ-:%M[cRGJrrMnPo7."&]&rnaK`-E)H?,%[
+kksK@!;?&8"FYp.iVM7-!0?`%"Eo[7kl'$2!WK"eJ-)V"p?qs2~>
+n,E[m4obQgMSn]VbPq\Bo#)44!!ERZYi,B=rr=kQ!!H5W]'0+RrrN(9o)JnfVUkEiqu?moHD&^X
+ro="ZrYP2,"*g`tpt>ZI+7fI87Z+hArR:cHII[@@3L7bTrpTl;~>
+n,E[mG"PA%Oi-G]bPq\Bo#t/*8d%k?Yi,B=rr?s78d&a_]'0+RrrN(ao1B.$VUkF9r(7-%HD&^X
+ro="Zr`\qd"+-s"pt>ZI@.Qtn@Z%e]rR:cHU@LnZ@$\n&rpTl;~>
+n,EFfT)O6BQG_tbbPq\Bo$W<aJ-:@RYi,B=rrAMcJ-9tN]'0+RrrN)*o7-spVUkFTr."rkHD&^X
+ro="ZrepE!"+I0%pt>ZIO7Rl)G)EoqrR:cH^%-[VI?qtCrpTl;~>
+mf*90rW!'WW7LV?bPq\Bo;Vo`!!@>=f_=J,!"f&."B^VslM]cC!7CB<";d9>i"5he"Uf1&[,Ur@
+rr>O\!!?MtdIc,l!$Ce4"@e9\kl'!1!1iZ\"<!*.kPXfKJ,~>
+mf*9Wr^m<&W7LV?bPq\Bo=Rcf8cs@7f_=J,!*/qh"DEb.lM]cC!8R0<"B1N%j&Q%M"\rrj[,Ur@
+rr@E<8crt%dIc,l!+>Cj"Cd8#kl'!1!4hYm"B12hkPXfKJ,~>
+mf*9trdY-(W7LV?bPq\Bo>lLRJ-11pf_=J,!/UQ'"E]U:lM]cC!9Ng&"FlWQk(rtd"b(BF[,Ur@
+rrAecJ-1.hdIc,l!0?`%"Eo[7kl'!1!6t(b"FZ0=kPXfKJ,~>
+mf*9kr;Zq@]]K"4rrW,hB(>p(@%5O8jo5>LqZ$b0O2C8_j8T/X2"L\KBWl^Z!!P6'QcSUniVrmu
+oDf"]PfW=mgA_-po)Jn_MS&*Ne,KEZnc/dpJ?@](n,In~>
+mf*:,rCR0E]]K"4rrW,hNq,dEDk#,Gjo5>Qqaq!-O2C8_j8T/XDY$I%H*<\78d/CAQcSUniVrnH
+oL]6rPfW=mgA_.\o1B-pMS&*Ne,KEmnk'$XJ?@](n,In~>
+mf*:<rI>!2]]K"4rrW,hXR^lDHCN:Rjo5>Tqg\fkO2C8_j8T/XR.Gh0Ks.cZJ-C(=QcSUniVrnf
+oRI'kPfW=mgA_/6o7-seMS&*Ne,KF'n:1SBhYHX?J,~>
+mf*:Rr;Zs>T$Qp)b5VP@j;%7d"B(K*nG_SM!6b6>"DEt<mf)8H!WJDV!!4j?')_e6!b$VZg@sP*
+!1i`^"=f>Cl2B?9!$Ce4"@e9\kl'!1!5@t'")+CYp$_p2~>
+mf*:WrCR2nT[3-+b5VP@k?.=J"DF%@nG_SM!8@<B"E0ICmf)8H!WKCr8ci=d<r>PmBn35;pYc&O
+\b&Js=c9uXrS%8O@.Qtn@Z%e]rR:cHd.'^1F.q.Wn,In~>
+mf*:ZrI>$%T[3-+b5VP@lA>+_"F-0PnG_SM!9O*."E]gHmf)8H!WL12J,u*nr."ogJ?%>ti;Wf&
+oRI'lMnSBRgA_/6o7-seMS&*Ne,KF)nUL^hU"/i)s*t~>
+mf*=e-N*oI:p]$RrlY6AqM"M@"A"Tjm/H/I!3>ts"ETjNnG_GI!UU-a!!*3jqu?mBEfRp!r8@ST
+an,Q9'83[NqqD&M+7fI87Z+hArR:cH^@;1+<1(o"rp]r<~>
+mf*=eAGo+'EO4NsrlY6AqPNjV"D!S1m/H/I!5n\+"ETjNnG_GI!UrnW8c_Rur(7,lEfRp!r8@ST
+f^qc=:kZ.6qqD&M@.Qtn@Z%e]rR:cHdIBg3C7*68rp]r<~>
+mf*=eP5Tn6LpPt5rlY6AqRuKN"F-!Em/H/I!7gss"ETjNnG_GI!V:s8J,k3!J-C7>NkaiVi;Wf;
+oRI'mKX0V7gA_/6o7-seMS&*Ne,KF)nULagR*>+"nGe"~>
+mJd/pr;Zs)M8niYb5VPBjp1MY"@nEblM]lF!/paT"9N\3bjs`m!W?*k!!!)u!!Q&BT[NH2i;WfJ
+o)Jl;W7q%#rr=/4!!GcK]BK4BrrBe'!!G`P`9mQns*t~>
+mJd0HrCR2dP/cebb5VPBlVI.F"CmD)lM]lF!3Q,j"*BmRo&9TLrJ0u:!)*5^"_)eNde!IrrrD``
+8csI>gA'D%!+>Cj"Cd8#kl'!1!7C=/"CmP3mJcVTJ,~>
+mJd0ir."m9`p3KErrW2fKCjZsGDs9$rT=+[`VY/fFI15BiVrrWWU53>EdFD,oD[\J!;Q/9"+I3&
+ptG`JO7Rl)G)EoqrR:cHhXQ+!H'#u3rp]r<~>
+mJd0Rqu?jKW7CM=b5VM?:\4Vi6]/P?rT=+[B`%i5%<e2eo\ofNrjD.o"Uf1&[,Ur>rrN*CoDeu!
+T$d2arr=/4!!GcK]BK4BrrB(h!!G?@]]oCas*t~>
+mJd0or(7)tW7CM=b5VM?Jb2P;@>__]rT=+[Pl+,V:3N)Qo\ofNrlOS#"\rrj[,Ur>rrN+.oL]4'
+T$d2arr?Hu8d&U\]BK4BrrBt,8d&IY]]oCas*t~>
+mJd1/r."p'W7CM=b5VM?V=]9@GDa&srT=+[[/>FWIWh1,o\ofNrn$Rg"b(BF[,Ur>rrN+\oRI$j
+T$d2arrA,OJ-:%Q]BK4BrrCU>J-:1V]]oCas*t~>
+mJd19qZ$_.]&NP.rrN+foDf"[M7VpLk5PEOqu?j/GFd1Si;WiS)XdY020P>-meu#B!)E.d"@89m
+mf(u@!$Ce4"@e9\kl'!1!1r]\">GS>k5=`KJ,~>
+mJd1Eqaps<]&NP.rrN,-oL]6oM7VpLk5PF/r(7)eGFd1Si;WiS>jk8g>'?7Rmeu#B!.jc7"Cm\:
+mf(u@!+>Cj"Cd8#kl'!1!4q\m"BpPhk5=`KJ,~>
+mJd1Mqg\d.]&NP.rrN,AoRI'hM7VpLk5PFWr."p!GFd1Si;WiSN:29#F`s+mmeu#B!2fC="FHBR
+mf(u@!0?`%"Eo[7kl'!1!711c"F>g3k5=`KJ,~>
+mJd4c&,ZD1$BiR!r6#$>f^o.H7YnY>r9""Z./X&J&p^,!p#,iNrc@N."CH\Zg@sG'!.+8;"=B&>
+kl'99!$Ce4"@e9\kl'!1!.aS>"=f)2j8AEHJ,~>
+mJd4c<;]>k:702kr6#$>iq,hG@YhVZr9""ZB)G7(:jJ\_p#,iNrgN:J"DE=cg@sG'!2/sV"BUMo
+kl'99!+>Cj"Cd8#kl'!1!2T-W"B^>`j8AEHJ,~>
+mJd4cL\lT(SBC6sb5VJ,oRI'fLq;gJk5PFGr."otH(WUZi;WiW\*nhMDh+kApYGiL]_$^WI#GZ$
+rS.>PO7Rl)G)EoqrR:cH_!upXHA&Wbr:'`:~>
+mJd4d9)ASk0<Egurlb<Br<r8u"@e6Zkl'ZD!!N3""<)T\f(S#$!6t!5"Wh]E^?GLNrrAbb!!Ejc
+Z/PQ6rr=/4!!GcK]BK4Brr?U"!!Fa&YMf9Hs*t~>
+mJd4dIeu_?@'&#Qrlb<BrDN;\"Cd5!kl'ZD!)3;_"B'Q?f(S#$!8?p7"]KH%^?GLNrrB_(8d%qB
+Z/PQ6rr?Hu8d&U\]BK4BrrA2O8d&7JYMf9Hs*t~>
+mJd4dV#,ZFKrir!rlb<BrIsop"EoX5kl'ZD!.t-!"FGHhf(S#$!9<R!"aY3L^?GLNrrCC;J-:=R
+Z/PQ6rrA,OJ-:%Q]BK4BrrB@pJ-:1MYMf9Hs*t~>
+m/I':q>^V,]]An3rrN*Ko`,+kMS/0OkPkPBqZ$a<H_f<ghu<`T/b&fE8:$oUoD[SG!5\7,"*CEn
+pY5]J+7fI87Z+hArR:cH3:QtO.=eSYqXFN8~>
+m/I'^qFUj;]]An3rrN+4oh#?uMS/0OkPkPJqapuhH_f<ghu<`TC%4e!@!\HmoD[SG!7UO3"*pcs
+pY5]J@.Qtn@Z%e]rR:cHEUcX(=FdR3qXFN8~>
+m/I(#qLA[.]]An3rrN+`omd0fMS/0OkPkPPqge]n!i4KChu<`TQ19A.EdFA*oD[SG!8mBu"+I-#
+pY5]JO7Rl)G)EoqrR:cHSFM+4H@W0UqXFN8~>
+m/I'qq>^X(N6:MbbPqQ+o`,,"N5"TUkPkOoqZ$a<I&>Tlhu<`VMXg`N#]#1$iVM@0!8d;I"BM&>
+oD[PF!$Ce4"@e9\kl'!1!"AAt"=\l(htljBJ,~>
+m/I(0qFUlcQ-/IkbPqQcoh#@$N5"TUkPkP-qapuhI&>Tlhu<`VX7Ajd9PoNjiVM@0!9`rG"DjUT
+oD[PF!+>Cj"Cd8#kl'!1!)i>Z"B^2WhtljBJ,~>
+m/I(>q1&R;b3]&LrrAY`J-9tQ^?Y[[rrCmPJ-:4HVV1b%rrN,9npgmmDhbUWqV;)Nmdkr3I%8RT
+rnRMRO7Rl)G)EoqrR:cHL@KcsH@W0UqXFN8~>
+m/I(Uq#COAW7LS>bl7Z0o`,,0OMgGakPkOKqZ$a<I&>WmhZ!W5"S2Ts/p*AumJYi?!<2Qi"?DXa
+mf)#A!$Ce4"@e9\kl'$2!71-7">k\4i;2sCJ,~>
+m/I(Xq+:cnWn-e@bl7Zgoh#@*OMgGakPkOiqapuhI&>WmhZ!W=9_1j[=EKhJmJYi?!<2R^"CRD3
+mf)#A!+>Cj"Cd8#kl'$2!8[-:"C$G[i;2sCJ,~>
+m/I([q1&U$Wn-e@bl7[:omd0cOMgGakPkP*qge]o!iF]HhZ!WCK(FKrGBB+imJYi?!<2S?"FQBO
+mf)#A!0?`%"Eo[7kl'$2!9`j%"F,L#i;2sCJ,~>
+m/I+c0)5JM7(D1LrltHC6hUK`$?VQTnG_VN!-%f8"<2`cgA'P)!W>:T!!HDQVqC^trrN*)oDf":
+M7VjIh#@?no)Jn_MS&*NeGfN0n,NSRK!=83nGe"~>
+m/I+cCACI)Cq/EtrltHCH1ji69luZBnG_VN!1E^V"B'WEgA'P)!W@358d&aTVqC^trrN*poL]6e
+M7VjIh#@@[o1B-pMS&*NeGfNQn4EgiK!=83nGe"~>
+m/I+cQMH%6MR_U=rltHCU%X!?IWUjsnG_VN!4_oVs*OmFgA'P)!WAV]J-9h?VqC^trrN+PoRI'l
+M7VjIh#@A6o7-seMS&*NeGfNhn:1XbK!=83nGe"~>
+li-rrp](D-_WL^>rr>:W!!FEgSC$ojrr>ai!!F-dVV:h%rrN+foDf%/E/V?jqqD&M+7oO9#D0,9
+qV;,A!!GcK]BK4Crr>IV!!GoJ[H.8Ts*t~>
+li-sIpdtX=_WL^>rr@698d&+;SC$ojrr@TH8d&%>VV:h%rrN,-oL]9`E/V?jqqD&M@.[%o9S0G)
+qV;,A8d&U\]BK4Crr@B78d&UW[H.8Ts*t~>
+li-sipj`I1_WL^>rrA\bJ-:1BSC$ojrrAqnJH'uuVV:h%rrN,AoRI*mE/V?jqqD&MO7[r*ItFi\
+qV;,AJ-:%Q]BK4CrrAe_J-9tJ[H.8Ts*t~>
+li-sQp](F$KZi`ZcMml#p&G4TI&,Ehk5PE,qZ$a/I&5Kih>[ND#PA'#4F!@?nc%8B!$Ce4")"C[
+p>#]=!!GcK]BK4DrrMEgn,NSrMS&*NnGe"~>
+li-snpdtZ`PKW=icMml^p.>HmI&,Ehk5PEkqapudI&5Kih>[NH:\@<`?$Mj`nc%8B!+>Cj"*:6g
+p>#]=8d&U\]BK4DrrMXan4EgtMS&*NnGe"~>
+li-t.pOE@;bO#,OrrAJ\J-:%CUtGG(rrA5ZJ-:=KV:bOurrMbEomd3fGaltJrn@APO7Rl(IA>Be
+h#Hqq"Eo[7kl''3!VM'6J-9nM]BK4_s*t~>
+li-t3pAb=+RFC['ci3t]p&G4qK!=20kPkPVq>^X*HD9!ah>[NS9_JGi!bHtdh>#\'!%7@<"A,!(
+nc%AEnc/e^MS&*Nec,W-n,NUqEKA$(rp]r<~>
+li-t@pIYQcU!rN/ci3uKp.>I"K!=20kPkPXqFUlbHD9!ah>[NSJ+ZD:C4`VEpt>ZIAb/LsAsgd3
+rn[VF8d&U\]BK4DrrB1j8d.n.O2L>`nGe"~>
+li-tIpOEBuVpk/5ci4!(p4*9cK!=20kPkPZqLA]tHD9!ah>[NSV"K6@Dh>.Jpt>ZIPOj;-I$i+I
+rn[VFJ-:%Q]BK4DrrC%-J-CFBO2L>`nGe"~>
+li."a&,-&,(oGsVrR(WFn+H_b#]Pa9kksWD!71H@"*gHfp"fWKrhfAh"WqcH_<V!Prr>7S!!Fp7
+_!CsUrrCsI!!GcK]BK4ErrN!Bn,NV6FdUDCrp]r<~>
+li."a<;/uf<iamDrR(WFo_(l\9Q5s(kksWD!8[HC"*gHfp"fWKrkA(u"]TN(_<V!Prr@668d&@Y
+_!CsUrrD9R8d&U\]BK4ErrN%-n4Ej`FdUDCrp]r<~>
+li."aL\H<%KW`turR(WFp\'+@IW17ZkksWD!9a0."*gHfp"fWKrm:@h"aY3N_<V!PrrAY^J-:7[
+_!CsUrrDNYJ-:%Q]BK4ErrN(]n:1[gFdUDCrp]r<~>
+li."b6M:B^,d,qprmLfH\+Te*/p<W*nG_VN!2oVm")==Po\BHIo*b9m"\*g3de*Olrr>:T!!Emf
+[,_&?rrCdD!!GcK]BK4ErrA\[!!GT8Ut>>/s*t~>
+li."bGkO`4?Er;XrmLfHbk=X4=E^(TnG_VN!5SD&"*0mXo\BHIohtNV"^lYMde*Olrr@668d%tE
+[,_&?rrD0O8d&U\]BK4ErrB\"8d&IJUt>>/s*t~>
+li."bT_<m=LU>k/rmLfHg\-.$GBT@snG_VN!7Uao"*g<^o\BHIpP&?l"`ep_de*OlrrA\_J-:=T
+[,_&?rrDEVJ-:%Q]BK4ErrCC6J-9tAUt>>/s*t~>
+lMgj0o`,+AZJP9Re,KDhp&G5!J#M)pk5PF+q#CP&Qd#"!h>[NS=SMk""`&k!iVM4,!'g#S")k*k
+pYPoM^[_@-7Z+hArR_&MpE8r*"TrCkZJt`Ls*t~>
+lMgjVoh#?n[bg]Ve,KE<p.>I"J#M)pk5PFRq+:d+Qd#"!h>[NSL\OIF9PoNjiVM4,!-[p*"*g`t
+pYPoMddg!5@Z%e]rR_&Mq-`\a"\WZcZJt`Ls*t~>
+lMgjromd1$\DHoXe,KEYp4*9bJ#M)pk5PFoq1&TmQd#"!h>[NSWq_)JIrC(JiVM4,!2&h4"+R6&
+pYPoMhsu:#G)EoqrR_&MqiL;t"b1HEZJt`Ls*t~>
+lMgjcoDf"@[,:QUeGfLgpAb@8EK%Qmr9""Z8GN5g8Wq*]rnRMRWqZPt.WgopmJY];!&*mC"A,*.
+o)@PH!3>Yj"@e9\kl'-5!-@T/"Y"PW`9dHks*t~>
+lMgk&oL]6n\)6lXeGfMTpIYTeEK%Qmr9""ZI/-A;AWk($rnRMR_>$V+=*0\HmJY];!,M-t"D=4L
+o)@PH!5nA""Cd8#kl'-5!1`LM"]of0`9dHks*t~>
+lMgk7oRI(#]&32[eGfN/pOEEoEK%Qmr9""ZV"oNDH'628rnRMRdeJ=rG]]1imJY];!138,"FZcb
+o)@PH!7gXj"Eo[7kl'-5!4hQK"aG-Q`9dHks*t~>
+lMgkCo)Jn?[,:QUf)G`Rp&G7mH(N@Qroa:^o*G-l">c"NlM]N<!V6]p!!H)GV:P@lrr<l+!!FI+
+_!:mUrr@uJ!!GcK]BK4GrrL"?n,NXo?%/X$p&=F[J,~>
+lMgkKo1B-m\)6lXf)G`ip.>KuH(N@Qroa:^p/(QW"C-o"lM]N<!VK@d8d&XPV:P@lrr?6n8d&1U
+_!:mUrrB1l8d&U\]BK4GrrLVDmn*asI\kWgrpTl;~>
+lMgkQo7-t"]&32[f)Ga%p4*<dH(N@Qroa:^q1SQo"FH*AlM]N<!V_<DJ-9k?V:P@lrrA#KJ-::]
+_!:mUrrC%/J-:%Q]BK4GrrM)1mskR[I\kWgrpTl;~>
+lMgna'Cu2,,cokprR_&L0_YPN+E3.FiVDX9!1W``";Za"jS[g5!WH3t!!N^ILpuIBf`(sCnGi[p
+I^.i-hu<[enc/e^MS&*Ng&D*9)".G.13/Dfk54THJ,~>
+lMgna=7]#e?F&G[rR_&LD"gO*<,dZ%iVDX9!4_er"B'u^jS[g5!WIlN8d.q-LpuIBf`(sFnO`pW
+J[+/0hu<\<nk'$oMS&*Ng&D*@>OP/f=`TP8k54THJ,~>
+lMgnaM=Z6#Lq)=6rR_&LR.l+7H>n\KiVDX9!6t:h"FZ$4jS[g5!WK+qJ-CC@LpuIBf`(sIn:1Uo
+Z/GK9rrB@qJ-:%Q]BK4HrrM_MmskRbEfRfpqsOK7~>
+lMgna9(Drb'qO.Nr7V)MS+cme"(-AGcLCeqrrMj>pAb;9Wn[='rrB(q!!OutQc\^qf`(rdn,NSg
+U"&`6i;Wd2nc/e^MS&*NgA_3:..7-?&o3#peFW\-s*t~>
+lMgnaIe$)6<iXsGr7V)M\G&T"95&XCcLCeqrrMq*pIYO6Wn[='rrBn38d/=>Qc\^qf`(s"n4Eh"
+U"&`6i;Wdnnk'$oMS&*NgA_3AB(&=r:i1`[eFW\-s*t~>
+lMgnaV"0$=KsTS*r7V)Mc1c_mIrBY)cLCeqrrN"[p4*4Eg\BP'!7L^o"a>*Uam]5]rrCsGJ-:@q
+eF`aurrAGWJ-:%Q]BK4IrrM_UmskUiDh+_7oD\1XJ,~>
+l2La,nGi^uJ_0AernRMSh[oM^"Zg^a]&WVKrr@E>!!G][cgq(jrrM^!qZ$atI]1omfDbhhn,NS8
+P/Q_ciVro@nGi\]MS&*Ng]%<;..7-?"^-)9_s%!bs*t~>
+l2LaSnO`s[R+Lg'rnRMSkZ.@L"^H,.]&WVKrrAee8d&arcgq(jrrMdjqaq!%I]1omfDbi=n4Egb
+P/Q_ciVroGnO`pnMS&*Ng]%<BB(&=r9P/O8_s%!bs*t~>
+l2LapnULdpWn6_9rnRMSmtg^g"a"gF]&WVKrrBb+J-:=kcgq(jrrMkJqg\fhI]1omfDbi[n:1Xj
+P/Q_ciVroLnULacMS&*Ng]%<GPja,,IrBRt_s%!bs*t~>
+l2La_mf3Jfc0G*'hZ!WJ0_YPO*cHY/eare'rrKG/p&G4'MSA<Ph#@ES=Sr.&$ZM!7k53g2!V[H"
+!!@,Di;)@3!0cpQ"@e6[kl'<:!RDnW!!`QtFH!Zbp\sR[J,~>
+l2Lb"mn*_0cKb3(hZ!WMD"gO+;f@8deare'rrL59p.>H_N5"NRh#@ESL\saJ:2l*%k53g2!Vosg
+8csIGi;)@3!4),e"Cd5"kl'<:!Sq/O8d8^GN4.U;rpB`9~>
+l2Lb4mskP/cg(<)hZ!WPR.l+8H>eD6eare'rrLf)p4*9qNkX`Th#@ESWr.ANIW11Uk53g2!W.iE
+J-1P2i;)@3!6Ob]"EoX6kl'<:!U#R4J-L%9N4.U;rpB`9~>
+l2Lb6mJmA6WoNaLi;WiL48/^Z%qL$Wa6WWcrrL"GoDf"aWS$qDh#@ASqu?mQG*pGArn.5NL[G-F
+*1G+@rSmhW/F`]C'md=Lqq_8QP76jZ#!?p\XOZn?m/MS~>
+l2LbAmRdUg[c@#Xi;WiOFSAB3:25-Ga6WWcrrLVIoL]7$WS$qDh#@Ajr(7,pG*pGArn.5NWpWI^
+<h.D'rSmhWC%4du;1c7;qq_8QZ;U*_#$c2'XOZn?m/MS~>
+l2LbJmXPFt^Z4tai;WiRSbIX=I;XD%a6WWcrrM)5oRI'sWS$qDh#@B&r."rpG*pGArn.5N_sMsV
+SBUL$ir9"EnULajLUQ:@h>[MtL@0QrFE3,;eai\*s*t~>
+l2Le`$gmuu"_lNTq>TFS!TQ$2!!`j8GE]]"q#9LW!P8d3!!EFP_<CdOrrM^!r;Zt!I]1upf`)!$%
+.+#t8@.1IroF(ZU[J0d%rThaqYoIR!Rj:$!!`QjEJ147mJQ;MJ,~>
+l2Le`;XR-\9oRZkq>TFS!UF[u8dA('GE]]"q#9LW!RF[88d%hE_<CdOrrMdjrCR3'I]1upf`)!1
+;XI'ZD6r*nroF(Z^@+Yt;2EZhqYoIR!T81h8d8UAKVm&^r9OB5~>
+l2Le`L$jHpJu.)eq>TFS!V)WQJ-UOAGE]]"q#9LW!SrM$J-1tNkkj08!V_<HJ-9k@W7q!urrMA=
+m=5=qZekHUjSo5-mskRmSC6m&ro*kXl(@?n#'=j<VU"T,li2J~>
+l2Le`1@+uE+IqNbr;PjY!NQq/!!`j8G)iuco`"(S!KRBR!!En#dI@(irrN*mrW!*0E/M6hr7V)N
+k:#Wr"BiV(q>TOV!TOm]!!XBfeFNG6roX4^dU*.F!!`^'EeUC6lMBfGJ,~>
+l2Le`D<sju?E`G^r;PjY!Q8+78dA('G)iuco`"(S!O,;g8d&%`dI@(irrN+Lr^m>hE/M6hr7V)N
+mUkcW"F@rIq>TOV!UEkT8d8Ifg%+t;roX4^hi1=t8dA%!EeUC6lMBfGJ,~>
+l2Le`R-]>,MnJ-Cr;PjY!S*)%J-UOAG)iuco`"(S!QTf^J-:FudI@(irrN+prdY0$E/M6hr7V)N
+o9AQk"HgR`q>TOV!V)'7J-Lk8hX^L@roX4^kc]U+J-UREEeUC6lMBfGJ,~>
+kl1Wpl2UuP\*<Varp'LacU[[/#7Og[Nj@=.r9=4^gHY*+";?sNnbh5C!1s/i"YY%db4,DarrL.[
+kl:iY_WU^nkl1\H.-^d<"$1nHoD&7_rpB^entJA8!!jBKG)E<FlM:GEs*t~>
+kl1XGl:M5#_Wgdlrp'LagjJff#>SoTNj@=.r9=4^k'-5c"B;&Hnbh5C!4i)$"^#r8b4,DarrL_X
+kt2)#`TR$qkl1\OB'Mto9Q6ZMoD&7_rpB^ep:Y\:8dJ:.G)E<FlM:GEs*t~>
+kl1Xgl@9&)bN\`urp'LakG.a$#C^T7Nj@=.r9=4^m@Wfs"G<`,nbh5C!6tLn"a>-Wb4,DarrM/?
+l$ro"`om-rkl1\TPj3c)JXEt"oD&7_rpB^eps>Z"J-^L@G)E<FlM:GEs*t~>
+kl1XCkl:ni6)s5Dr;Q-a!Obes!!aBOG`T2_nbh\P!p=J-li71mAC'Z=rnm_]mfWUj<dq"$pY5]L
+k@Xq\!!O@#iUZmFli."#*9@/,%R"Wo_WLXjr;HWoqu?]q"R`jU6O<#Y#mNM1I?UtcmJ?hHs*t~>
+kl1Xckt2.RFM$i3r;Q-a!R-/g8dA7/G`T2_nbh\P!q)IQlq.FTL=5Jbrnm_]nk;YJB7?f5pY5]L
+mZUB.8d/CmiUZmFli."5?KFcc;fn80d-LK(r;HWoqu?]q"S0j;Gu*d!#u"WDI?UtcmJ?hHs*t~>
+kl1Y&l$rthRE4[er;Q-a!SaOFJ-UF>G`T2_nbh\P!qWmSm!o7jT[W<(rnm_]on%^EFFL1BpY5]L
+o<X&3J-Cb8iUZmFli."CNobctL7>Kgh!Xt7r;HWoqu?]q"SUWfTnMc_$%I&:I?UtcmJ?hHs*t~>
+kl1Xrjo>W0FLgr:r;Q]hrr_\pCE)pH#Qcc!I$D(mnbhbR"8fZ2#j;6m&p2Ojq#13Ors8Qg!"4".
+\`WhHrr`,/>6s6h"sSWKo(i7`nG`O+:Yc!S%OaPFC4#l+")V4&([1o+"#"51LnVT=nGDDKJ,~>
+kl1Y/k"5kcR)ngmr;Q]hrr_l6Q<j,T#?l%nPd]98r9XFcr6C*pkXl%ZQ.PO#rVkgV#lSs>:O%c-
+k5=*9"8pH%:ub.P@%Z0Dq>L<^rrLW$h+@lNAp0#qTV;=Y"."da>3SWc93H(ULnVT=nGDDKJ,~>
+kl1Y=k(!\rZIJF>r;Q]hrr_uI[>jg/#Bk'6Pd]98r9XFcrS4H,k^WklY1rI@rVkgV#lU?FJU*-`
+k5=*9"8prVK]@ReN4%R6q>L<^rrM&Uh1,Z`P+AVY]DT;D[B,mVl$s(iGB%k`TtfCPqre!0~>
+kl1YIirBT%89UT9f\5'6gXEg.JlXAl!!j??FG-7#hX^U5rri>TSmN2l!!`TaHEuT*qY^?lkl1qf
+P5mXuR*"grj8T;^o"KuW&DdBn"#k>)j7iEKrr2fps8E,WVIpjV!"&obApB'![*Ih,r9"$0~>
+kl1YOj%9MUHCVIgi8agt"lIY<VMAjU8dJ:+FG-7#hX^U5rri>^\rBhP8dA%-S]'adqY^?lkl1qf
+Z:\ebR*"grj8T;^p!Bdl<Sg=S9Q$98kkFrPrr2fps8E,`^lr'48d\6qCj:]'[*Ih,r9"$0~>
+kl1YSj+%YqTXW(rkj%I!lfd-M^oE[jJ-^OCFG-7#hX^U5rri>fcEE,cJ-UXk[aOL9qY^?lkl1qf
+a+/u#R*"grj8T;^ptireLu*XgJX<ajlhC8Srr2fps8E,gd^+qAJ-pdMEd3>-[*Ih,r9"$0~>
+kl1\_'E.t9!uWR>/0Y_S!!s!!E.*kMb2i9pnc&]PB0Hj[!!j;u<c39EpA=jSrs%?\HC(Yap>u;V
+mrM8Le,Tms7VT7#q#15rG?-I0[/^U:*Ck$qLmt]mi:-UBjo9i~>
+kl1\_=8ker92\kq>?=\L8dS4!EIEtNb2i9pnc&]qPBKs[8dJO<KpJCqpA=jSrs%XYOI*!"p>u;V
+oULMBe4L-THBZA>q#164Sqh/^Zq:^)@WHjPS$L2pnG<.Gs*t~>
+kl1\_M>i#0IsZKhI"$RmJ-g[HEda(Ob2i9pnc&^3Z_!!,J-_""W3j2&pA=jSrs%k@TU2\2p>u;V
+pUR2ae:7sdTX!#;q#16E];h6R["&O2F`VqdS$L2pnG<.Gs*t~>
+kPl&N""mAeHA%6?P`gl>9IUD&!"'6$DL7;9^=_iKrp]pf+OU5l[G:3HlMh(e5JXG;jSS'=!8l'%
+"_?*EpASF+!"BDf88EO)P+oD.hsU:<j8XW~>
+kPl'39O_aWHA%6?P`guRDHoui8d\="E-mM;^=_iKrp]pf@+%XL^>//QlMh(eG/CDtjSS'=!9h^#
+"c:^jpAU)Z8e"Nt@rZgJP+oD.hsU:<j8XW~>
+kPl$\JV\_rHA%6?P`h)bL4Rs,$@R&;H]+W4f^8M6nG`KMdXVG=h!Y%(rs&Fn`3-o:qrRhXn'6Fe
+UsnK"ri`\Z%=WVHG'\h)U:/8&meHb@s*t~>
+kPl74`3,;fU9VGOaMu*/ZDX4D>s'#.huF,g-W"o6NM3o0k4JT>rsjj*?rBa(=BT-B?tX@rEURrJ
+@fKg9?2dY.:..N?3&ipe]\W;\li.1go\7O?n,DGK''ag]>Ydpc<Dub#?=$uKDJsN7mrBIe@UWYO
+>#8$k7R9@(1cB-Rd-gk$=CG3<?>=:jFEI+ps'cCE>#8$b5W^SL*Z>Lni;aGn'I>e:C4(VkQ(kS%
+eDp&nrSdd,~>
+kPl7DbH@%mU9VGOaMu*/ZDX4MG@jiKi(=AN<b6B%NM3o0k4JT>rsbupKm7W^FE2PGEclVPmWo"Y
+FE;JBrG2gSC2@KoB:limpAXCX#6+8Lb1H+]jo5YVTTaqKDJjH4D>eGUF*MutH6IQUFE;JACi!m#
+AnP^cA:h&4mesVLLO+ApIsucpI=-Bgp3I3kFE;D;CM.0e>[(6.:efn@&PQ&'?YFJ-Jr>ngZGY2P
+nG)t@s*t~>
+kPl1Nd&rRrU9VGOaMu*/ZDX4TM1j`9$\*GDFFK4C\^9L2r9jRp_QohtN/NLGK7SQ&It3+;K):'+
+JqSi4L5:\^]\W;\li.1go\7O?n,DGK$hV'6S<&M^KnFr,If4`tJ:W:<K)C-7It3*%K7nuCYgDh:
+bc%;%P)bQ]M2$]RK):&uJ,OirJ)PniIslZiG^+UfMj:$B_pm`9q#01OJ,~>
+kPlCqkfgcZeDTTZn*]Q+inDbu\ZVZjE)//'k5Yr'/PpG7LR"dMdH'lprpB^rqW5\tTq7jJTq\B\
+W2cr$n?*G,XJr+pVPKrZTV%gIT:i'nh"C[3rri2dk3Vm(rt>>)hS#hZSXc7CTVA6ZVPpMrXm`D#
+XfSS%Vl$>eU7e-LrgX7dYg;b9r9MS1rh9RlV5C2lXnAh;XfSM"VPKoXS=5e0P)tZ\I<B=7?VsWm
+5X.Fh/hZiL'fnHM<FKiqJqo;KR\[.!aOT89o_SREs*t~>
+kPlCqkfgcZeDTTZn*]Q+inDbu\ZVZlJT"ppk=Q1Z=_;c'LR"dMdH'lprpB^rqW5\tTq7jJTq\B\
+W2cr$n?*G,XJr+pVPKrZTV%gIT:i'nh"C[3rri2dk3Vm(rt>>)hS#hZSXc7CTVA6ZVPpMrXm`D#
+XfSS%Vl$>eU7e-LrgX7dYg;b9r9MS1rh9RlV5C2lXnAh;XfSM"VPKoXS=5e0P)tZ\K78)gF)>`-
+ARo:X>[6u,'jtK`CN+NIJqo;KR\[.!aOT89o_SREs*t~>
+kPl@pkfgcZeDTTZn*]Q+inDbu\ZVZnN/*#IJ.6pPG'/1fQ)D:BjRW0HmJd^nji+<pSt;RJU8=`c
+WiW>lXqRq=WMcVjUnXNTT:VXHTVf?Vp&=7V"T%QKm.fZA')qU]]r.KnS=Q:FU84Z`W2cr$n#d&#
+XK/:tVP^/`TV%eSS-YakcgLc0lccR3U'7?hVPpPtor]17XJr+pUnOENR[9;&OH#-QKnP&/JUi6#
+J,OiiIK+]pHiJI(IY*?6PFA;N]?&O]m.C/RhuA3~>
+kPkecp?_#0o_SLarY#2,q"*q9hUTfb[&KXYEDekD%J'Q3!tun?:i(N2N0gEMa4TSGqYog\%fGkT
+eBlRie(*%%g=tE>mb\W4gtLK8f[eU&da6=cbK\]*qW\"_rqcEdrT!nhqX31fcd:%eeCE.&g"P39
+hX02AhV?l>g=b-0eC;pncHOJ[jRrNNoA\6Ed*pOtg"bETh]:P.g=b-0eC)[eb/V<5]XY>QY,\Cq
+U7\!GR@';*p662UR%'bEWj&tH`m<8okjS3@rVkXQJ,~>
+kPkecp?_#0o_SLarY#2,q"*q9hUTfb[&KX[J8f%%:\.0j92JYqBQJQQN0gEMa4TSGqYog\%fGkT
+eBlRie(*%%g=tE>mb\W4gtLK8f[eU&da6=cbK\]*qW\"_rqcEdrT!nhqX31fcd:%eeCE.&g"P39
+hX02AhV?l>g=b-0eC;pncHOJ[jRrNNoA\6Ed*pOtg"bETh]:P.g=b-0eC)[eb/V<5]XY>QY,\Cq
+U7\!GR@';*p662UR%'bEWj&tH`m<8okjS3@rVkXQJ,~>
+kPkecp?_#0o_SLarXf&*q"*q9hUTfb[&KX]MhZlRJ.R-UH?a[^JrH%n[`@%`o(r@Orsntsi7--#
+dF6Xsf\5*8hX985h;$`<g"=m+eC)^icHFJblh]lG"TJ8mqYfIS&GkhNda-:edaZguf\,!5gtqGU
+*o>],g=k64f$r3td*BkYdcC*#rU]$tcHt%jf\,'9oA:SEgtLH6f$r-obf[rB^V%(`Ycb"(UnXKP
+S!fY0Q1gFTQC+/7UoLZ.^;eLNhrsP%qYgELs*t~>
+k5PS_r;?Nmp\ts,r;--VlJpXIaM,![TU1[bAm%u-r([l1AT<3OL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+k5PS_r;?Nmp\ts,r;--VlJpXIaM,![TU1^lG]@S9r+Zj_Ed3(cL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+k5PS_r;?Nmp\u!-r;--VlJpXIaM,![TU1atL4b&-J,OiqI1LgZL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+%%EndData
+showpage
+%%Trailer
+end
+%%EOF
diff --git a/templates/Service-logo.png b/templates/Service-logo.png
new file mode 100755
index 00000000..5edcdfe5
--- /dev/null
+++ b/templates/Service-logo.png
Binary files differ
diff --git a/templates/Service-packing_list.html b/templates/Service-packing_list.html
new file mode 100755
index 00000000..07ba8d61
--- /dev/null
+++ b/templates/Service-packing_list.html
@@ -0,0 +1,148 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr>
+ <td width=10>
+ </td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th colspan=2>
+ <h4 align=center>P A C K I N G &nbsp;&nbsp; L I S T</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Date</th><td width=10> </td><td><%invdate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Number</th><td></td><td><%invnumber%></td></tr>
+ </tr>
+
+ <tr>
+ <td>
+ </td>
+ </tr>
+ </td>
+ </table>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Ship To:</th>
+ </tr>
+
+ <tr>
+ <td><%shiptoname%>
+ <br><%shiptoaddr1%>
+ <br><%shiptoaddr2%>
+ <br><%shiptoaddr3%>
+ <br><%shiptoaddr4%>
+<%if shiptocontact%>
+ <p>Attn: <%shiptocontact%>
+<%end shiptocontact%>
+
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qt'y</th>
+ <th>&nbsp;</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>Notes</td>
+ <td><pre><%notes%></pre></td>
+<%end notes%>
+ <td align=right>
+ <%shippingpoint%>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><font size=-3>
+ Items returned are subject to
+ a 10% restocking charge. A return authorization must be obtained
+ from <%company%> before goods are returned. Returns must be shipped
+ prepaid and properly insured. <%company%> will not be responsible
+ for damages during transit.
+ </font>
+ </td>
+ <td width=150>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Service-packing_list.tex b/templates/Service-packing_list.tex
new file mode 100755
index 00000000..d7a62d44
--- /dev/null
+++ b/templates/Service-packing_list.tex
@@ -0,0 +1,120 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%invnumber%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+<%pagebreak 65 27 37%>
+\end{tabular*}
+
+\newpage
+
+\markright{<%company%>\hfill <%invnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}p{\descrwidth}@{\extracolsep\fill}rl@{}}
+ \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} \\
+<%end pagebreak%>
+
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{2cm}
+
+<%shiptoname%>
+
+<%shiptoaddr1%>
+
+<%shiptoaddr2%>
+
+<%shiptoaddr3%>
+
+<%shiptoaddr4%>
+
+\vspace{3.5cm}
+
+\textbf{P A C K I N G} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+
+\hfill
+\begin{tabular}[t]{l@{\hspace{0.3cm}}l}
+ \textbf{Date} & <%invdate%> \\
+ \textbf{Number} & <%invnumber%> \\
+ \textbf{Customer} & <%customer_id%>
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}p{\descrwidth}@{\extracolsep\fill}rl@{}}
+ \textbf{Description} & \textbf{Qt'y} & \textbf{Unit} \\
+<%foreach number%>
+ <%description%> & <%qty%> & <%unit%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+%\vfill
+%\centerline{\textbf{Thank You for your valued business!}}
+
+%\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+%\footnotetext[1]{\tiny
+%Items returned are subject to a 10\% restocking charge.
+%A return authorization must be obtained from <%company%> before goods are
+%returned. Returns must be shipped prepaid and properly insured.
+%<%company%> will not be responsible for damages during transit.}
+
+\end{document}
+
diff --git a/templates/Service-pick_list.html b/templates/Service-pick_list.html
new file mode 100755
index 00000000..da8a3bdf
--- /dev/null
+++ b/templates/Service-pick_list.html
@@ -0,0 +1,153 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>P I C K &nbsp;&nbsp; L I S T</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th width=50% align=left><font color=ffffff>Ship To:</th>
+ <th width=50%>&nbsp;</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ </td>
+
+ <td>
+ <%if shiptocontact%>
+ <br>Attn: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=15% align=left>Invoice #</th>
+ <th width=15% align=left>Order #</th>
+ <th width=10% align=left>Date</th>
+ <th width=15% align=left nowrap>Contact</th>
+ <th width=15% align=left>Warehouse</th>
+ <th width=10% align=left>Shipping Point</th>
+ <th width=10% align=left>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%invnumber%>&nbsp;</td>
+ <td><%ordnumber%>&nbsp;</td>
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%transdate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+ <td><%warehouse%>&nbsp;</td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Pos</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qty</th>
+ <th><font color=ffffff>Ship</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Bin</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td align=right>[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</td>
+ <td><%unit%></td>
+ <td align=right><%bin%></td>
+ </tr>
+ <%end number%>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+</table>
+
diff --git a/templates/Service-pick_list.tex b/templates/Service-pick_list.tex
new file mode 100755
index 00000000..04953ce8
--- /dev/null
+++ b/templates/Service-pick_list.tex
@@ -0,0 +1,144 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}rlXrcll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} &
+ \textbf{Qty} & \textbf{Ship} & & \textbf{Bin} \\
+
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.5\textwidth}{
+ \textbf{Ship To}
+} \hfill
+
+\vspace{0.7cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.5\textwidth}{
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+}
+\parbox[t]{.4\textwidth}{
+ <%shiptocontact%>
+
+ <%if shiptophone%>
+ Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{P I C K} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{7}{|X}|} \hline
+ \textbf{Invoice \#} & \textbf{Order \#} & \textbf{Date} & \textbf{Contact}
+ & \textbf{Warehouse} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+ <%invnumber%> & <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%transdate%>
+ <%end shippingdate%>
+ & <%employee%>
+ <%if warehouse%>
+ & <%warehouse%>
+ <%end warehouse%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrcll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} &
+ \textbf{Qty} & \textbf{Ship} & & \textbf{Bin} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> &
+ <%qty%> & [\hspace{1cm}] & <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+}
+
+\end{document}
+
diff --git a/templates/Service-pos_invoice.txt b/templates/Service-pos_invoice.txt
new file mode 100755
index 00000000..fecd1557
--- /dev/null
+++ b/templates/Service-pos_invoice.txt
@@ -0,0 +1,50 @@
+<%company align=center width=40%>
+<%address align=center width=40%>
+
+Till: <%till align=left width=3%> Phone#: <%tel%>
+Cashier: <%employee%>
+Inv No/Date: <%invnumber%> / <%invdate%>
+Printed: <%dateprinted%>
+
+ Qty Description Amount
+<%foreach number%>
+<%qty align=right width=5%> <%description align=left width=24 offset=6%> <%linetotal align=right width=9%>
+ <%number%> @ <%sellprice%>/<%unit%>
+<%end number%>
+
+Number of items: <%rowcount%>
+<%if taxincluded%>
+ ---------------
+ Amount Due: <%invtotal align=right width=9%>
+<%end taxincluded%>
+<%if not taxincluded%>
+ ------------
+ Subtotal: <%subtotal align=right width=9%>
+<%end taxincluded%>
+<%foreach tax%>
+<%taxdescription align=right width=23%> @ <%taxrate align=right width=2%>%: <%tax align=right width=9%>
+<%end tax%>
+ Amount Due: <%invtotal align=right width=9%>
+<%foreach payment%>
+<%paymentaccount align=right width=29%>: <%payment align=right width=9%> <%currency%>
+<%end payment%>
+<%if change%>
+ Change: <%change align=right width=9%>
+<%end change%>
+<%if total%>
+ Balance Due: <%total align=right width=9%>
+<%end total%>
+<%if discount%>
+
+<%discount%> % Discount applied
+<%end discount%>
+
+ Thank you for your valued business!
+
+<%if taxincluded%>
+Taxes are included in price.
+<%end taxincluded%>
+
+
+
+
diff --git a/templates/Service-purchase_order.html b/templates/Service-purchase_order.html
new file mode 100755
index 00000000..de5fd805
--- /dev/null
+++ b/templates/Service-purchase_order.html
@@ -0,0 +1,198 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <td align=right>
+ <h4>
+ Telephone: <%tel%>
+ <br>Facsimile: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>P U R C H A S E &nbsp;&nbsp; O R D E R</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Order Date</th><td width=10>&nbsp;</td><td><%orddate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Required by</th><td width=10>&nbsp;</td><td><%reqdate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Number</th><td>&nbsp;</td><td><%ordnumber%></td></tr>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+ </td>
+ </table>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>To:</th>
+ </tr>
+
+ <tr>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+<br><%address2%>
+<%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+<%country%>
+<%end country%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+<!-- <th align=right><font color=ffffff>No.</th> -->
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qt'y</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Price</th>
+ <th><font color=ffffff>Amount</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+<!-- <td align=right><%runningnumber%>.</td>
+adjust the colspan if you include this to shift subtotal one to the right
+-->
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=6><hr noshade></td>
+ </tr>
+
+ <tr>
+ <th colspan=4 align=right>Subtotal</th>
+ <td colspan=2 align=right><%subtotal%></td>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=4 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+<%end tax%>
+
+ <tr>
+ <td colspan=2>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=2>Terms Net <b><%terms%></b> days</td>
+ <th colspan=2 align=right>Total</th>
+ <th colspan=2 align=right><%ordtotal%></th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>Notes</td>
+ <td><pre><%notes%></pre></td>
+<%end notes%>
+ <td align=right>
+ All prices in <b><%currency%></b> Funds
+ <br><%shippingpoint%>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><font size=-3>
+ Payment due NET <%terms%> Days from date of Invoice.
+ Interest on overdue amounts will acrue at the rate of 1.5% per month
+ from due date until paid in full. Items returned are subject to
+ a 10% restocking charge. A return authorization must be obtained
+ from <%company%> before goods are returned. Returns must be shipped
+ prepaid and properly insured. <%company%> will not be responsible
+ for damages during transit.
+ </font>
+ </td>
+ <td width=150>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Service-purchase_order.tex b/templates/Service-purchase_order.tex
new file mode 100755
index 00000000..0e6b1064
--- /dev/null
+++ b/templates/Service-purchase_order.tex
@@ -0,0 +1,147 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%ordnumber%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+<%pagebreak 65 27 37%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markright{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Amount} \\
+ & carried forward from <%lastpage%> & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{2cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{3.5cm}
+
+\textbf{P U R C H A S E} \parbox{0.3cm}{\hfill} \textbf{O R D E R}
+\hfill
+\begin{tabular}[t]{l@{\hspace{0.3cm}}l}
+ \textbf{Date} & <%orddate%> \\
+<%if reqdate%>
+ \textbf{Required by} & <%reqdate%> \\
+<%end reqdate%>
+ \textbf{Number} & <%ordnumber%>
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Amount} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%subtotal%>} \\
+<%foreach tax%>
+ <%taxdescription%> on <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ \textbf{Total} & \textbf{<%ordtotal%>}\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ All prices in \textbf{<%currency%>} funds.
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+
+%\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+%\footnotetext[1]{\tiny }
+
+\end{document}
+
+
diff --git a/templates/Service-receipt.tex b/templates/Service-receipt.tex
new file mode 100755
index 00000000..7f25a218
--- /dev/null
+++ b/templates/Service-receipt.tex
@@ -0,0 +1,78 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.4cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.0cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+
+\fontfamily{cmss}\fontsize{9pt}{9pt}\selectfont
+
+\parbox[t]{12cm}{
+ <%company%>
+
+ <%address%>}
+\hfill
+\parbox[t]{6cm}{\hfill <%source%>}
+
+\vspace*{0.6cm}
+
+<%text_amount%> \dotfill <%decimal%>/100 \makebox[0.5cm]{\hfill}
+
+\vspace{0.5cm}
+
+\hfill <%datepaid%> \makebox[2cm]{\hfill} <%amount%>
+
+\vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{1.8cm}
+
+<%memo%>
+
+\vspace{0.8cm}
+
+<%company%>
+
+\vspace{0.5cm}
+
+<%name%> \hfill <%datepaid%> \hfill <%source%>
+
+\vspace{0.5cm}
+\begin{tabularx}{\textwidth}{lXrr@{}}
+\textbf{Invoice No.} & \textbf{Invoice Date}
+ & \textbf{Due} & \textbf{Applied} \\
+<%foreach invnumber%>
+<%invnumber%> & <%invdate%> \dotfill
+ & <%due%> & <%paid%> \\
+<%end invnumber%>
+\end{tabularx}
+
+\vspace{1cm}
+
+<%memo%>
+
+\vfill
+
+\end{document}
diff --git a/templates/Service-request_quotation.html b/templates/Service-request_quotation.html
new file mode 100755
index 00000000..fa684866
--- /dev/null
+++ b/templates/Service-request_quotation.html
@@ -0,0 +1,202 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <td><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58>
+ </td>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>R E Q U E S T &nbsp;&nbsp; F O R &nbsp;&nbsp; Q U O T A T I O N</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>To:</th>
+ <th align=left width=50%><font color=ffffff>Ship To:</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+<br>
+<%if contact%>
+<br>Attn: <%contact%>
+<%end contact%>
+<%if vendorphone%>
+<br>Tel: <%vendorphone%>
+<%end vendorphone%>
+<%if vendorfax%>
+<br>Fax: <%vendorfax%>
+<%end vendorfax%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddr2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+<br>
+<%if shiptocontact%>
+<br>Attn: <%shiptocontact%>
+<%end shiptocontact%>
+<%if shiptophone%>
+<br>Tel: <%shiptophone%>
+<%end shiptophone%>
+<%if shiptofax%>
+<br>Fax: <%shiptofax%>
+<%end shiptofax%>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr><td>&nbsp;</td></tr>
+
+ <tr>
+ <td colspan=2>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left>RFQ #</th>
+ <th width=17% align=left>Date</th>
+ <th width=17% align=left>Required by</th>
+ <th width=17% align=left>Contact</th>
+ <th width=17% align=left>Shipping Point</th>
+ <th width=15% align=left>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%quonumber%></td>
+ <td><%quodate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height="10"></tr>
+
+ <tr>
+ <td>Please provide price and delivery time for the following items:</td>
+ </tr>
+
+ <tr height="10"></tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+<!-- <th align=right>No.</th> -->
+ <th align=left>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th>Qt'y</th>
+ <th>&nbsp;</th>
+ <th>Delivery</th>
+ <th>Unit Price</th>
+ <th>Extended</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+<!-- <td align=right><%runningnumber%>.</td>
+other per line item variables available <%reqdate%>
+adjust the colspan if you include this to shift subtotal one to the right
+-->
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=7><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+<%if notes%>
+ <tr valign=top>
+ <td>Notes</td>
+ <td><%notes%></td>
+ </tr>
+<%end notes%>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=70%>&nbsp;</td>
+
+ <td width=30%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Service-request_quotation.tex b/templates/Service-request_quotation.tex
new file mode 100755
index 00000000..49f1abe7
--- /dev/null
+++ b/templates/Service-request_quotation.tex
@@ -0,0 +1,175 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Extended} \\
+ & carried forward from <%lastpage%> & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.45\textwidth}{
+\textbf{To}
+\vspace{0.7cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if vendorphone%>
+Tel: <%vendorphone%>
+<%end vendorphone%>
+
+<%if vendorfax%>
+Fax: <%vendorfax%>
+<%end vendorfax%>
+
+<%email%>
+}
+\parbox[t]{.45\textwidth}{
+\textbf{Ship To}
+\vspace{0.7cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{R E Q U E S T for Q U O T A T I O N}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{RFQ \#} & \textbf{Date} & \textbf{Required by} & \textbf{Contact} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5ex]
+ \hline
+ <%quonumber%> & <%quodate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+Please provide price and delivery time for the following items:
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}lXrllrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} & &
+ \textbf{Delivery} & \textbf{Unit Price} & \textbf{Extended} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> & <%unit%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\hfill
+
+<%notes%>
+
+}
+
+\end{document}
+
diff --git a/templates/Service-sales_order.html b/templates/Service-sales_order.html
new file mode 100755
index 00000000..8150db11
--- /dev/null
+++ b/templates/Service-sales_order.html
@@ -0,0 +1,202 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <td align=right>
+ <h4>
+ Telelephone: <%tel%>
+ <br>Facsimile: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>S A L E S &nbsp;&nbsp; O R D E R</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Order Date</th><td width=10>&nbsp;</td><td><%orddate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Required by</th><td width=10>&nbsp;</td><td><%reqdate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Number</th><td>&nbsp;</td><td><%ordnumber%></td></tr>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+ </td>
+ </table>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>To:</th>
+ </tr>
+
+ <tr>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+<br><%address2%>
+<%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+<%country%>
+<%end country%>
+<%if contact%>
+ <p>Attn: <%contact%>
+%end contact%>
+
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+<!-- <th align=right><font color=ffffff>No.</th> -->
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qt'y</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Price</th>
+ <th><font color=ffffff>Amount</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+<!-- <td align=right><%runningnumber%>.</td>
+adjust the colspan if you include this to shift subtotal one to the right
+-->
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=6><hr noshade></td>
+ </tr>
+
+ <tr>
+ <th colspan=4 align=right>Subtotal</th>
+ <td colspan=2 align=right><%subtotal%></td>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=4 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+<%end tax%>
+
+ <tr>
+ <td colspan=2>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=2>Terms Net <b><%terms%></b> days</td>
+ <th colspan=2 align=right>Total</th>
+ <th colspan=2 align=right><%total%></th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>Notes</td>
+ <td><pre><%notes%></pre></td>
+<%end notes%>
+ <td align=right>
+ All prices in <b><%currency%></b> Funds
+ <br><%shippingpoint%>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><font size=-3>
+ Payment due NET <%terms%> Days from date of Invoice.
+ Interest on overdue amounts will acrue at the rate of 1.5% per month
+ from due date until paid in full. Items returned are subject to
+ a 10% restocking charge. A return authorization must be obtained
+ from <%company%> before goods are returned. Returns must be shipped
+ prepaid and properly insured. <%company%> will not be responsible
+ for damages during transit.
+ </font>
+ </td>
+ <td width=150>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Service-sales_order.tex b/templates/Service-sales_order.tex
new file mode 100755
index 00000000..b0515ad0
--- /dev/null
+++ b/templates/Service-sales_order.tex
@@ -0,0 +1,146 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%ordnumber%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+<%pagebreak 65 27 48%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markright{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}p{\descrwidth}@{\extracolsep\fill}rlrr@{}}
+ \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Amount} \\
+ & carried forward from <%lastpage%> & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{2cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{3.5cm}
+
+\textbf{S A L E S} \parbox{0.3cm}{\hfill} \textbf{O R D E R}
+\hfill
+\begin{tabular}[t]{l@{\hspace{0.3cm}}l}
+ \textbf{Date} & <%orddate%> \\
+<%if reqdate%>
+ \textbf{Required by} & <%reqdate%> \\
+<%end reqdate%>
+ \textbf{Number} & <%ordnumber%>
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}p{\descrwidth}@{\extracolsep\fill}rlrr@{}}
+ \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Amount} \\
+<%foreach number%>
+ <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%subtotal%>} \\
+<%foreach tax%>
+ <%taxdescription%> on <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ \textbf{Total} & \textbf{<%ordtotal%>}\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ All prices in \textbf{<%currency%>} funds.
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+
+%\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+%\footnotetext[1]{\tiny }
+
+\end{document}
+
diff --git a/templates/Service-sales_quotation.html b/templates/Service-sales_quotation.html
new file mode 100755
index 00000000..0abf5fc7
--- /dev/null
+++ b/templates/Service-sales_quotation.html
@@ -0,0 +1,225 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr valign=top>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+<tr><td colspan=3>&nbsp;</td></tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>Q U O T A T I O N</h4>
+ </th>
+ </tr>
+
+ </table>
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td>
+ <table width=100%>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+
+ <br>
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr><td>&nbsp;</td></tr>
+
+ <tr>
+ <td colspan=2>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Number</th>
+ <th width=17% align=left>Date</th>
+ <th width=17% align=left>Valid until</th>
+ <th width=17% align=left nowrap>Contact</th>
+ <th width=17% align=left nowrap>Shipping Point</th>
+ <th width=15% align=left nowrap>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%quonumber%></td>
+ <td><%quodate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>No.</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qt'y</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Price</th>
+ <th><font color=ffffff>Disc %</th>
+ <th><font color=ffffff>Amount</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%></td>
+
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discountrate%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=8><hr noshade></td>
+ </tr>
+
+ <tr>
+<%if taxincluded%>
+ <th colspan=6 align=right>Total</th>
+ <td colspan=2 align=right><%invtotal%></td>
+<%end taxincluded%>
+
+<%if not taxincluded%>
+ <th colspan=6 align=right>Subtotal</th>
+ <td colspan=2 align=right><%subtotal%></td>
+<%end taxincluded%>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=6 align=right><%taxdescription%> on <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+<%end tax%>
+
+ <tr>
+ <td colspan=4>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=4>&nbsp;
+<%if terms%>
+ Terms Net <b><%terms%></b> days
+<%end terms%>
+ </td>
+ <th colspan=2 align=right>Total</th>
+ <th colspan=2 align=right><%quototal%></th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>Notes</td>
+ <td><%notes%></td>
+<%end notes%>
+ <td align=right>
+ All prices in <b><%currency%></b> Funds
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=60%><font size=-3>
+ Special order items are subject to a 10% cancellation fee.
+ </font>
+ </td>
+ <td width=40%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Service-sales_quotation.tex b/templates/Service-sales_quotation.tex
new file mode 100755
index 00000000..25792c6b
--- /dev/null
+++ b/templates/Service-sales_quotation.tex
@@ -0,0 +1,157 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 48%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%quonumber%>}{<%company%>\hfill <%quonumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+ & carried forward from <%lastpage%> & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.45\textwidth}{
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%contact%>
+
+\vspace{0.2cm}
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+
+\vspace{1cm}
+
+\textbf{Q U O T A T I O N}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Quotation \#} & \textbf{Date} & \textbf{Valid until} & \textbf{Contact} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5ex]
+ \hline
+ <%quonumber%> & <%quodate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%discountrate%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ Subtotal & <%subtotal%> \\
+<%foreach tax%>
+ <%taxdescription%> on <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ Total & <%quototal%>\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ All prices in \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%notes%>
+
+}
+
+\vfill
+
+\end{document}
+
+
diff --git a/templates/Service-statement.html b/templates/Service-statement.html
new file mode 100755
index 00000000..0cc08c6d
--- /dev/null
+++ b/templates/Service-statement.html
@@ -0,0 +1,130 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+ <tr>
+ <th colspan=3><h4>S T A T E M E N T</h4></th>
+ </tr>
+ <tr>
+ <td colspan=3 align=right><%statementdate%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr height=10></tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr>
+ <th align=left>Invoice #</th>
+ <th align=left>Order #</th>
+<!-- <th align=left>Notes</th> -->
+ <th width=10%>Date</th>
+ <th width=10%>Due</th>
+ <th width=10%>Current</th>
+ <th width=10%>30</th>
+ <th width=10%>60</th>
+ <th width=10%>90+</th>
+ </tr>
+ <%foreach invnumber%>
+ <tr>
+ <td><%invnumber%></td>
+ <td><%ordnumber%></td>
+<!-- <td><%notes%></td> -->
+ <td><%invdate%></td>
+ <td><%duedate%></td>
+ <td align=right><%c0%></td>
+ <td align=right><%c30%></td>
+ <td align=right><%c60%></td>
+ <td align=right><%c90%></td>
+ </tr>
+ <%end invnumber%>
+ <tr>
+ <td colspan=8><hr size=1></td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <th align=right><%c0total%></td>
+ <th align=right><%c30total%></td>
+ <th align=right><%c60total%></td>
+ <th align=right><%c90total%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr height=10></tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td align=right>
+ <table width=50%>
+ <tr>
+ <th>Total Outstanding</th>
+ <th align=right><%total%></th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td><hr noshade></td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>Please make check payable to <b><%company%></b>.
+ </td>
+ </tr>
+ <tr height=20></tr>
+</table>
+
diff --git a/templates/Service-statement.tex b/templates/Service-statement.tex
new file mode 100755
index 00000000..c927c5da
--- /dev/null
+++ b/templates/Service-statement.tex
@@ -0,0 +1,111 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rrr@{}}
+ Tel & <%tel%>\\
+ Fax & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%statementdate%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{1.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{10.5cm}{
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+}
+\parbox[t]{7.5cm}{
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{S T A T E M E N T} \hfill \textbf{<%statementdate%>}
+
+\vspace{2cm}
+
+\begin{tabular*}{\textwidth}{@{}ll@{\extracolsep\fill}ccrrrr@{}}
+ \textbf{Invoice \#} & \textbf{Order \#} & \textbf{Date} & \textbf{Due} &
+ \textbf{Current} & \textbf{30} & \textbf{60} & \textbf{90+} \\
+<%foreach invnumber%>
+ <%invnumber%> & <%ordnumber%> & <%invdate%> & <%duedate%> &
+ <%c0%> & <%c30%> & <%c60%> & <%c90%> \\
+<%end invnumber%>
+\textbf{Subtotal} & & & & <%c0total%> & <%c30total%> & <%c60total%> & <%c90total%>
+\end{tabular*}
+\rule{\textwidth}{1pt}
+
+\vspace{0.5cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Total outstanding} & <%total%>
+\end{tabularx}
+
+\vfill
+
+Please make check payable to <%company%>
+
+\end{document}
+
diff --git a/templates/Service-timecard.html b/templates/Service-timecard.html
new file mode 100755
index 00000000..361b8254
--- /dev/null
+++ b/templates/Service-timecard.html
@@ -0,0 +1,146 @@
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=sql-ledger.png border=0 width=84 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>T I M E &nbsp;&nbsp; C A R D</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=left>Employee</th>
+ <td><%employee%></td>
+ </tr>
+ <tr>
+ <th align=left>ID</th>
+ <td><%employee_id%></td>
+ </tr>
+ </table>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Card ID</th>
+ <td><%id%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Date Worked</th>
+ <td><%transdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Time In</th>
+ <td><%checkedin%></td>
+ </tr>
+ <tr>
+ <th align=left>Time Out</th>
+ <td><%checkedout%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Hours Worked</th>
+ <td><%qty%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=bottom>
+ <td>
+ <table>
+ <tr valign=top>
+ <th align=left>Project/Job #</th>
+ <td><%projectnumber%></td>
+ </tr>
+ <tr>
+ <th align=left>Description</th>
+ <td><%projectdescription%></td>
+ </tr>
+ <tr valign=top>
+ <th align=left>Labor/Service Code</th>
+ <td><%partnumber%></td>
+ </tr>
+ <tr>
+ <th align=left>Description</th>
+ <td><%description%></td>
+ </tr>
+ </table>
+ </td>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Unit Rate</th>
+ <td><%sellprice%></td>
+ </tr>
+ <tr>
+ <th align=right>Total</th>
+ <td><%total%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+<%if notes%>
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%notes%>
+ </td>
+ </tr>
+<%end notes%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Service-timecard.tex b/templates/Service-timecard.tex
new file mode 100755
index 00000000..49a30c54
--- /dev/null
+++ b/templates/Service-timecard.tex
@@ -0,0 +1,71 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-1cm,left=2cm,right=1cm]{geometry}
+\usepackage{graphicx}
+\setlength{\parindent}{0pt}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Tel: & <%tel%>\\
+ Fax: & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+\centerline{\textbf{T I M E}\hspace{0.5cm}\textbf{C A R D}}
+
+\vspace*{0.5cm}
+
+\begin{tabular}[t]{ll}
+ \textbf{Employee} & <%employee%> \\
+ \textbf{ID} & <%employee_id%> \\
+\end{tabular}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Card ID} & <%id%> \\
+ \textbf{Date Worked} & <%transdate%> \\
+ \textbf{Time In} & <%checkedin%> \\
+ \textbf{Time Out} & <%checkedout%> \\
+ \textbf{Hours Worked} & <%qty%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular}[b]{ll}
+ \textbf{Project/Job \#} & <%projectnumber%> \\
+ \textbf{Description} & <%projectdescription%> \\
+ \textbf{Labor/Service Code} & <%partnumber%> \\
+ \textbf{Description} & <%description%> \\
+\end{tabular}
+\hfill
+\begin{tabular}[b]{lr}
+ \textbf{Unit Rate} & <%sellprice%> \\
+ \textbf{Total} & <%total%> \\
+\end{tabular}
+
+\vspace{0.3cm}
+
+<%notes%>
+
+\end{document}
+
+
diff --git a/templates/Service-work_order.html b/templates/Service-work_order.html
new file mode 100755
index 00000000..88d212af
--- /dev/null
+++ b/templates/Service-work_order.html
@@ -0,0 +1,174 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=bottom>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>W O R K &nbsp;&nbsp; O R D E R</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>To</th>
+ <th align=left width=50%><font color=ffffff>Ship To</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%>
+ <br><%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%>
+ <br><%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ <br>
+ <%if shiptocontact%>
+ <br><%shiptocontact%>
+ <%end shiptocontact%>
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+ <%if shiptoemail%>
+ <br><%shiptoemail%>
+ <%end shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Order Number</th>
+ <th width=17% align=left>Order Date</th>
+ <th width=17% align=left>Required by</th>
+ <th width=17% align=left nowrap>Salesperson</th>
+ <th width=17% align=left nowrap>Shipping Point</th>
+ <th width=15% align=left nowrap>Ship Via</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%></td>
+ <td><%orddate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>No.</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qt'y</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Serial No.</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%>.</td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td><%serialnumber%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <td colspan=6><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <%if notes%>
+ <td><%notes%></td>
+ <%end notes%>
+ </tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Service-work_order.tex b/templates/Service-work_order.tex
new file mode 100755
index 00000000..9b2f6f95
--- /dev/null
+++ b/templates/Service-work_order.tex
@@ -0,0 +1,177 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}rlXrll@{}}
+ \textbf{No.} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ & \textbf{Serial Number} \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.45\textwidth}{
+\textbf{To}
+\vspace{0.7cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\parbox[t]{.45\textwidth}{
+\textbf{Ship To}
+\vspace{0.7cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{W O R K} \parbox{0.3cm}{\hfill} \textbf{O R D E R}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Order Date} & \textbf{Required by} & \textbf{Salesperson} & \textbf{Shipping Point} & \textbf{Ship Via} \\ [0.5em]
+ \hline
+ <%ordnumber%> & <%orddate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrll@{}}
+ \textbf{No.} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ & \textbf{Serial Number} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%serialnumber%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+\vfill
+
+\vspace{1cm}
+
+\rule{\textwidth}{0.5pt}
+
+\end{document}
+
+
+
+
+
+
diff --git a/templates/Spanish_A4-ap_transaction.html b/templates/Spanish_A4-ap_transaction.html
new file mode 100755
index 00000000..fd7a96eb
--- /dev/null
+++ b/templates/Spanish_A4-ap_transaction.html
@@ -0,0 +1,229 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>A P - T R A N S A C T I O N</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Invoice #</th>
+ <td><%invnumber%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Date</th>
+ <td><%invdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Due</th>
+ <td><%duedate%></td>
+ </tr>
+ <tr>
+ <th align=left>Order #</th>
+ <td><%ordnumber%>&nbsp;</td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Employee</th>
+ <td><%employee%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=50%>
+ <table>
+ <%foreach account%>
+ <tr valign=top>
+ <td><%accno%></td>
+ <td><%account%></td>
+ <td align=right><%amount%></td>
+ <td><%projectnumber%></td>
+ </tr>
+ <%end account%>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Subtotal</th>
+ <td align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=2 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ </table>
+ </td>
+ <td width=50%>
+ <%notes%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <tr>
+ <td>&nbsp;</td>
+
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%text_amount%> ***** <%decimal%>/100 <%currency%>
+ </td>
+ </tr>
+
+ <%if paid%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <tr>
+ <th>Payments</th>
+ </tr>
+
+ <tr>
+ <td>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=left>Date</th>
+ <th align=left>Account</th>
+ <th align=left>Source</th>
+ <th align=left>Memo</th>
+ <th align=left>Amount</th>
+ </tr>
+ <%end paid%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td><%paymentmemo%></td>
+ <td><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid%>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <%end paid%>
+
+ <tr height=10></tr>
+
+ <%if taxincluded%>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <th colspan=3 align=left><font size=-2>Taxes shown are included in price.</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Spanish_A4-ap_transaction.tex b/templates/Spanish_A4-ap_transaction.tex
new file mode 100755
index 00000000..8bfd9f79
--- /dev/null
+++ b/templates/Spanish_A4-ap_transaction.tex
@@ -0,0 +1,125 @@
+\documentclass[10pt,letterpaper,oneside,onecolumn]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+\centerline{\textbf{A P} \hspace{0.3cm} \textbf{T R A N S A C T I O N}}
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+<%end contact%>
+
+\vspace{0.2cm}
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Invoice \#} & <%invnumber%> \\
+ \textbf{Date} & <%invdate%> \\
+ \textbf{Due} & <%duedate%> \\
+ \textbf{Order \#} & <%ordnumber%> \\
+ \textbf{Employee} & <%employee%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabularx}{.5\textwidth}[t]{@{}llrl@{}}
+<%foreach amount%>
+ <%accno%> & <%account%> & <%amount%> & <%projectnumber%> \\
+<%end amount%>
+
+ \multicolumn{2}{r}{\textbf{Subtotal}} & <%subtotal%> & \\
+<%foreach tax%>
+ \multicolumn{2}{r}{\textbf{<%taxdescription%> @ <%taxrate%> \%}} & <%tax%> & \\
+<%end tax%>
+
+ \multicolumn{2}{r}{\textbf{Total}} & <%invtotal%> & \\
+
+\end{tabularx}
+<%notes%>
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100 <%currency%>
+
+\vspace{0.3cm}
+
+<%if paid%>
+\begin{tabular}{@{}llllr@{}}
+ \multicolumn{5}{c}{\textbf{Payments}} \\
+ \hline
+ \textbf{Date} & & \textbf{Source} & \textbf{Memo} & \textbf{Amount} \\
+<%end paid%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%paymentmemo%> & <%payment%> \\
+<%end payment%>
+<%if paid%>
+\end{tabular}
+<%end paid%>
+
+\end{document}
+
diff --git a/templates/Spanish_A4-ar_transaction.html b/templates/Spanish_A4-ar_transaction.html
new file mode 100755
index 00000000..22833384
--- /dev/null
+++ b/templates/Spanish_A4-ar_transaction.html
@@ -0,0 +1,237 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>A R - T R A N S A C T I O N</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Invoice #</th>
+ <td><%invnumber%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Date</th>
+ <td><%invdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Due</th>
+ <td><%duedate%></td>
+ </tr>
+ <tr>
+ <th align=left>Order #</th>
+ <td><%ordnumber%>&nbsp;</td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Salesperson</th>
+ <td><%employee%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=50%>
+ <table>
+ <%foreach account%>
+ <tr valign=top>
+ <td><%accno%></td>
+ <td><%account%></td>
+ <td align=right><%amount%></td>
+ <td><%projectnumber%></td>
+ </tr>
+ <%end account%>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Subtotal</th>
+ <td align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=2 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ </table>
+ </td>
+ <td width=50%>
+ <%notes%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <tr>
+ <td>&nbsp;</td>
+
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%text_amount%> ***** <%decimal%>/100 <%currency%>
+ </td>
+ </tr>
+
+ <%if paid%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <tr>
+ <th>Payments</th>
+ </tr>
+
+ <tr>
+ <td>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=left>Date</th>
+ <th align=left>Account</th>
+ <th align=left>Source</th>
+ <th align=left>Memo</th>
+ <th align=left>Amount</th>
+ </tr>
+ <%end paid%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td><%paymentmemo%></td>
+ <td><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid%>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <%end paid%>
+
+ <tr height=10></tr>
+
+ <%foreach tax%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <th colspan=9 align=left><font size=-2><%taxdescription%> Registration <%taxnumber%></th>
+ </tr>
+ <%end tax%>
+
+ <%if taxincluded%>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <th colspan=3 align=left><font size=-2>Taxes shown are included in price.</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Spanish_A4-ar_transaction.tex b/templates/Spanish_A4-ar_transaction.tex
new file mode 100755
index 00000000..654d2b95
--- /dev/null
+++ b/templates/Spanish_A4-ar_transaction.tex
@@ -0,0 +1,131 @@
+\documentclass[10pt,letterpaper,oneside,onecolumn]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+\centerline{\textbf{A R} \hspace{0.3cm} \textbf{T R A N S A C T I O N}}
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+<%end contact%>
+
+\vspace{0.2cm}
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Invoice \#} & <%invnumber%> \\
+ \textbf{Date} & <%invdate%> \\
+ \textbf{Due} & <%duedate%> \\
+ \textbf{Order \#} & <%ordnumber%> \\
+ \textbf{Employee} & <%employee%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabularx}{.5\textwidth}[t]{@{}llrl@{}}
+<%foreach amount%>
+ <%accno%> & <%account%> & <%amount%> & <%projectnumber%> \\
+<%end amount%>
+
+ \multicolumn{2}{r}{\textbf{Subtotal}} & <%subtotal%> & \\
+<%foreach tax%>
+ \multicolumn{2}{r}{\textbf{<%taxdescription%> @ <%taxrate%> \%}} & <%tax%> & \\
+<%end tax%>
+
+ \multicolumn{2}{r}{\textbf{Total}} & <%invtotal%> & \\
+
+\end{tabularx}
+<%notes%>
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100 <%currency%>
+
+\vspace{0.3cm}
+
+<%if paid%>
+\begin{tabular}{@{}llllr@{}}
+ \multicolumn{5}{c}{\textbf{Payments}} \\
+ \hline
+ \textbf{Date} & & \textbf{Source} & \textbf{Memo} & \textbf{Amount} \\
+<%end paid%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%paymentmemo%> & <%payment%> \\
+<%end payment%>
+<%if paid%>
+\end{tabular}
+<%end paid%>
+
+\vspace{0.5cm}
+
+<%foreach tax%>
+\textbf{\small{<%taxdescription%> Registration <%taxnumber%>}} \\
+<%end tax%>
+
+\end{document}
+
diff --git a/templates/Spanish_A4-balance_sheet.html b/templates/Spanish_A4-balance_sheet.html
new file mode 100755
index 00000000..aef74d0e
--- /dev/null
+++ b/templates/Spanish_A4-balance_sheet.html
@@ -0,0 +1,100 @@
+<head>
+ <title>Hoja de Balance</title>
+</head>
+
+<body bgcolor=ffffff>
+
+<h2 align=center>
+<%company%>
+<br><%address%>
+
+<p>HOJA DE BALANCE
+<br><%period%>
+</h2>
+
+<table border=0>
+<tr>
+ <th align=left width=400 colspan=2>ACTIVOS<br><hr align=left width=250 size=5 noshade></th>
+ <th><%this_period%></th>
+ <th><%last_period%></th>
+</tr>
+
+<%foreach asset_account%>
+<tr>
+ <td>&nbsp;</td>
+ <td><%asset_account%></td>
+ <td align=right><%asset_this_period%></td>
+ <td align=right><%asset_last_period%></td>
+</tr>
+<%end asset_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>Total de activos</th>
+ <td align=right><%total_assets_this_period%><hr noshade size=2></td>
+ <td align=right><%total_assets_last_period%><hr noshade size=2></td>
+</tr>
+
+<tr>
+ <th align=left colspan=4>PASIVOS<b><hr align=left width=250 size=5 noshade></th>
+</tr>
+
+<%foreach liability_account%>
+<tr>
+ <td></td>
+ <td><%liability_account%></td>
+ <td align=right><%liability_this_period%></td>
+ <td align=right><%liability_last_period%></td>
+</tr>
+<%end liability_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td></td>
+ <th align=left>Total de pasivos</th>
+ <td align=right><%total_liabilities_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_liabilities_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr>
+ <th align=left colspan=4>CAPITAL<br><hr align=left width=250 size=5 noshade></th>
+</tr>
+
+<%foreach equity_account%>
+<tr>
+ <td></td>
+ <td><%equity_account%></td>
+ <td align=right><%equity_this_period%></td>
+ <td align=right><%equity_last_period%></td>
+</tr>
+<%end equity_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td></td>
+ <th align=left>Capital total</th>
+ <td align=right><%total_equity_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_equity_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>Total de pasivos y capital</th>
+ <td align=right><%total_this_period%><br><hr noshade size=2></td>
+ <td align=right><%total_last_period%><br><hr noshade size=2></td>
+</tr>
+</table>
diff --git a/templates/Spanish_A4-bin_list.html b/templates/Spanish_A4-bin_list.html
new file mode 100755
index 00000000..24440675
--- /dev/null
+++ b/templates/Spanish_A4-bin_list.html
@@ -0,0 +1,189 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <th align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>B I N &nbsp;&nbsp; L I S T</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% cellspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>From</th>
+ <th align=left width=50%><font color=ffffff>Ship To</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+
+ <%if vendorphone%>
+ <br>Tel: <%vendorphone%>
+ <%end vendorphone%>
+
+ <%if vendorfax%>
+ <br>Fax: <%vendorfax%>
+ <%end vendorfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+
+ <br>
+ <%if shiptocontact%>
+ <br>Attn: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Order #</th>
+ <th width=17% align=left nowrap>Date</th>
+ <th width=17% align=left nowrap>Contact</th>
+ <%if warehouse%>
+ <th width=17% align=left nowrap>Warehouse</th>
+ <%end warehouse%>
+ <th width=17% align=left>Shipping Point</th>
+ <th width=15% align=left>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%>&nbsp;</td>
+
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%orddate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+
+ <%if warehouse%>
+ <td><%warehouse%></td>
+ <%end warehouse%>
+
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Pos</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Serialnumber</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Qty</th>
+ <th><font color=ffffff>Recd</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Bin</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%></td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td><%serialnumber%></td>
+ <td><%deliverydate%></td>
+ <td align=right><%qty%></td>
+ <td align=right><%ship%></td>
+ <td><%unit%></td>
+ <td><%bin%></td>
+ </tr>
+ <%end number%>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+</table>
+
diff --git a/templates/Spanish_A4-bin_list.tex b/templates/Spanish_A4-bin_list.tex
new file mode 100755
index 00000000..3d6052f9
--- /dev/null
+++ b/templates/Spanish_A4-bin_list.tex
@@ -0,0 +1,147 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Recd} & & \textbf{Bin} \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.5\textwidth}{
+\textbf{From}
+\vspace{0.7cm}
+
+<%name%>
+
+<%address1%>
+
+<%if %address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country4%>
+<%end country%>
+}
+\parbox[t]{.4\textwidth}{
+\textbf{Ship To}
+\vspace{0.7cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%if shiptoaddress2%>
+<%shiptoaddress2%>
+<%end shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%if shiptocountry%>
+<%shiptocountry%>
+<%end shiptocountry%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{B I N} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Date} & \textbf{Contact}
+ <%if warehouse%>
+ & \textbf{Warehouse}
+ <%end warehouse%>
+ & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+
+ <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%orddate%>
+ <%end shippingdate%>
+ & <%employee%>
+ <%if warehouse%>
+ & <%warehouse%>
+ <%end warehouse%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Recd} & & \textbf{Bin} \\
+
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%serialnumber%> &
+ <%deliverydate%> & <%qty%> & <%ship%> & <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabularx}
+
+
+\rule{\textwidth}{2pt}
+
+\end{document}
+
diff --git a/templates/Spanish_A4-check.tex b/templates/Spanish_A4-check.tex
new file mode 100755
index 00000000..4e7cfc62
--- /dev/null
+++ b/templates/Spanish_A4-check.tex
@@ -0,0 +1,75 @@
+\documentclass[a4paper,oneside]{article}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.4cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.0cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+
+\fontfamily{cmss}\fontsize{9pt}{9pt}\selectfont
+
+\parbox[t]{12cm}{
+ <%company%>
+
+ <%address%>}
+\hfill
+\parbox[t]{6cm}{\hfill <%source%>}
+
+\vspace*{0.6cm}
+
+<%text_amount%> \dotfill <%decimal%>/100 \makebox[0.5cm]{\hfill}
+
+\vspace{0.5cm}
+
+\hfill <%datepaid%> \makebox[2cm]{\hfill} <%amount%>
+
+\vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{2.8cm}
+
+<%company%>
+
+\vspace{0.5cm}
+
+<%name%> \hfill <%datepaid%> \hfill <%source%>
+
+\vspace{0.5cm}
+\begin{tabularx}{\textwidth}{lXrr@{}}
+\textbf{Invoice No.} & \textbf{Invoice Date}
+ & \textbf{Due} & \textbf{Applied} \\
+<%foreach invnumber%>
+<%invnumber%> & <%invdate%> \dotfill
+ & <%due%> & <%paid%> \\
+<%end invnumber%>
+\end{tabularx}
+
+\vfill
+
+\end{document}
+
diff --git a/templates/Spanish_A4-income_statement.html b/templates/Spanish_A4-income_statement.html
new file mode 100755
index 00000000..fbb5653b
--- /dev/null
+++ b/templates/Spanish_A4-income_statement.html
@@ -0,0 +1,77 @@
+<head>
+ <title>Balance de Situación</title>
+</head>
+
+<body bgcolor=ffffff>
+
+<h2 align=center>
+<%company%>
+<br><%address%>
+
+<p>BALANCE DE SITUACIÓN
+<br><%period%>
+</h2>
+
+
+<table width=100% border=0>
+<tr>
+ <th width=400 align=left colspan=2>INGRESOS<br><hr width=300 size=5 align=left noshade></th>
+ <th><%this_period%></th>
+ <th><%last_period%></th>
+</tr>
+
+<%foreach income_account%>
+<tr>
+ <td width=4>&nbsp;</td>
+ <td><%income_account%></td>
+ <td align=right><%income_this_period%></td>
+ <td align=right><%income_last_period%></td>
+</tr>
+<%end income_account%>
+
+<tr>
+ <td colspan=2>&nbsp;</td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td>&nbsp;</td>
+ <th align=left>Total de ingresos</th>
+ <td align=right><%total_income_this_period%><hr noshade size=2></td>
+ <td align=right><%total_income_last_period%><hr noshade size=2></td>
+</tr>
+
+<tr>
+ <th align=left colspan=2>GASTOS<br><hr width=300 size=5 align=left noshade></th>
+</tr>
+
+<%foreach expense_account%>
+<tr>
+ <td>&nbsp;</td>
+ <td><%expense_account%></td>
+ <td align=right><%expenses_this_period%></td>
+ <td align=right><%expenses_last_period%></td>
+</tr>
+<%end expense_account%>
+
+<tr>
+ <td colspan=2>&nbsp;</td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td>&nbsp;</td>
+ <th align=left>Total de gastos</th>
+ <td align=right><%total_expenses_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_expenses_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>GANANCIA/(PERDIDA)</th>
+ <td align=right><%total_this_period%><br><hr noshade size=2></td>
+ <td align=right><%total_last_period%><br><hr noshade size=2></td>
+</tr>
+
+</table>
diff --git a/templates/Spanish_A4-invoice.html b/templates/Spanish_A4-invoice.html
new file mode 100755
index 00000000..f5515745
--- /dev/null
+++ b/templates/Spanish_A4-invoice.html
@@ -0,0 +1,153 @@
+<head>
+ <title>Factura de Instalaciones Industriales San José</title>
+</head>
+
+<body bgcolor="ffffff">
+ <!-- Cabecera -->
+ <table width="100%">
+ <tr valign=bottom>
+ <td width="10">&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr>
+ <th colspan="4"> </th>
+ <th align="left">
+ <h4>F A C T U R A</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td colspan="5"> </td>
+ </tr>
+
+ <tr>
+ <td colspan="4"> </td>
+ <td align="left"><%name%></td>
+ </tr>
+
+ <tr>
+ <td>Número</td>
+ <td>Fecha</td>
+ <td>Cód. Cliente</td>
+ <td width="10%"> </td>
+ <td><%address1%></td>
+ </tr>
+ <tr>
+ <td><b><%invnumber%></b></td>
+ <td><b><%invdate%></b></td>
+ <td><b><%customer_id%></b></td>
+ <td> </td>
+ <td><%addr2%></td>
+ </tr>
+ <tr>
+ <td colspan="4">
+ <td><%city%> <%state%> <%zipcode%></td>
+ </tr>
+ <tr>
+ <td colspan="4">
+ <td><%addr4%></td>
+ </tr>
+ </table>
+ </table>
+
+ <!-- Cuerpo -->
+ <table width=100% cellspacing=0 cellpadding=0>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <!-- <th align=left><font color=ffffff>Número</th> -->
+ <!-- <th><font color=ffffff>Cant.</th> -->
+ <th align="left"><font color="ffffff">Cant.</th>
+ <th align="left"><font color="ffffff">Descripción</th>
+ <th align="left"><font color="ffffff">Precio</th>
+ <!-- <th align="left"><font color="ffffff">Dto.</th> -->
+ <th align="left"><font color="ffffff">Importe</th>
+ </tr>
+
+ <tr>
+ <td colspan="4"><hr noshade></td>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+ <!-- <td><%number%></td> -->
+ <!-- <td><%unit%></td> -->
+ <td align="right"><%qty%></td>
+ <td align="left"><%description%></td>
+ <td align="right"><%sellprice%></td>
+ <!-- <td align=right><%discount%></td> -->
+ <td align="right"><%linetotal%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan="4"><hr noshade></td>
+ </tr>
+ </table>
+
+ <!-- Subtotales, impuestos y totales -->
+ <table width="100%">
+ <tr>
+<%if taxincluded%>
+ <th align=right>Total</th>
+ <td align=right><%invtotal%></td>
+<%end taxincluded%>
+<%if not taxincluded%>
+ <th align="right">Base imponible</th>
+ <td align="right"><%subtotal%> &euro;</td>
+<%end taxincluded%>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th align="right">IVA (<%taxrate%>%) sobre <%taxbase%>:</th>
+ <td align="right"><%tax%> &euro;</td>
+ </tr>
+<%end tax%>
+
+<%if paid%>
+ <tr>
+ <th align="right">Pagado:</th>
+ <td align="right"><%paid%> &euro;</td>
+ </tr>
+<%end paid%>
+
+ <tr>
+ <td>&nbsp;</td>
+ <td><hr noshade></td>
+ </tr>
+
+ <tr>
+ <th align="right">Total:</th>
+ <th align="right"><%invtotal%> &euro;</th>
+ </tr>
+
+ <tr>
+ <td colspan="4">&nbsp;</td>
+ </tr>
+
+ </table>
+
+
+ <!-- Pie -->
+ <table width="100%">
+ <tr valign=top>
+<%if notes%>
+ <td>Notas</td>
+ <td><%notes%></td>
+<%end notes%>
+ </tr>
+
+<%if taxincluded%>
+ <tr>
+ <th colspan="2" align="left"><font size=-2>Los precios incluyen impuestos.</th>
+ </tr>
+<%end taxincluded%>
+
+ </table>
+
+
+</body>
+</html>
+
diff --git a/templates/Spanish_A4-invoice.tex b/templates/Spanish_A4-invoice.tex
new file mode 100755
index 00000000..d6f80f81
--- /dev/null
+++ b/templates/Spanish_A4-invoice.tex
@@ -0,0 +1,108 @@
+\documentclass[a4paper,oneside]{article}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{marvosym} % Euro \EUR
+\usepackage{fancyhdr}
+\setlength{\topmargin}{0cm}
+\setlength{\topskip}{0cm}
+\setlength{\headheight}{0cm}
+\setlength{\headsep}{0.5cm}
+\setlength{\textheight}{24.2cm}
+\setlength{\textwidth}{19cm}
+\setlength{\oddsidemargin}{-1.4cm}
+\setlength{\evensidemargin}{-1.4cm}
+\setlength{\footskip}{1cm}
+
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{13.0cm}
+
+\newsavebox{\hdr}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\sbox{\hdr}{
+
+\begin{minipage}[t]{0.6\linewidth}
+\vspace{2.2cm}
+
+\begin{tabular}[t]{p{1.7cm}p{2.4cm}p{1.7cm}}\\
+\centering{Número} & \centering{Fecha} & C. Cliente\\
+\centering{<%invnumber%>} & \centering{<%invdate%>} & \centering{<%customer_id%>}
+\end{tabular}
+\end{minipage}
+
+\begin{minipage}[t]{0.4\linewidth}
+\textbf{F A C T U R A}
+\vspace{1cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+\end{minipage}
+
+}
+
+\pagestyle{fancy}
+\renewcommand{\headrulewidth}{0cm}
+\renewcommand{\footrulewidth}{0cm}
+\cfoot{\thepage}
+%\markboth{\usebox{\hdr}}{\usebox{\hdr}}
+%\thispagestyle{empty} %use this with letterhead paper
+
+<%pagebreak 65 27 37%>
+\end{tabular*}
+\newpage
+\usebox{\hdr}
+%\markboth{\usebox{\hdr}}{\usebox{\hdr}}
+\vspace{0.5cm}
+
+\begin{tabular*}{\textwidth}{rp{\descrwidth}rr}
+ \textbf{Cant.} & \textbf{Descripción} & \textbf{Precio} & \textbf{Importe} \\ \hline
+<%end pagebreak%>
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\usebox{\hdr}
+\vspace{0.5cm}
+
+\begin{tabular*}{\textwidth}{rp{\descrwidth}rr}
+ \textbf{Cant.} & \textbf{Descripción} & \textbf{Precio} & \textbf{Importe} \\ \hline
+<%foreach number%>
+ <%qty%> & <%description%> & <%sellprice%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+\parbox{\textwidth}{
+\vspace{12pt}
+<%if notes%>
+ <%notes%>
+<%end if%>
+}
+
+\vfill
+
+\begin{flushright}
+\begin{tabularx}{10cm}{Xr@{}}
+ \textbf{Base imponible} & \textbf{<%subtotal%>} \\
+<%foreach tax%>
+ IVA (<%taxrate%>\%) sobre <%taxbase%> & <%tax%> \\
+<%end tax%>
+ \hline
+ \textbf{Total} & \textbf{<%invtotal%>} \\
+\end{tabularx}
+\end{flushright}
+
+%\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+\end{document}
+
diff --git a/templates/Spanish_A4-logo.eps b/templates/Spanish_A4-logo.eps
new file mode 100755
index 00000000..3a22b2ff
--- /dev/null
+++ b/templates/Spanish_A4-logo.eps
@@ -0,0 +1,1334 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: GIMP PostScript file plugin V 1.17 by Peter Kirchgessner
+%%Title: Brazilian_Portuguese-logo.eps
+%%CreationDate: Thu Aug 31 19:25:05 2006
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 2
+%%Pages: 1
+%%BoundingBox: 14 14 415 215
+%%EndComments
+%%BeginProlog
+% Use own dictionary to avoid conflicts
+10 dict begin
+%%EndProlog
+%%Page: 1 1
+% Translate for offset
+14.173228346456694 14.173228346456694 translate
+% Translate to begin of first scanline
+0 199.99842519685043 translate
+399.99685039370081 -199.99842519685043 scale
+% Image geometry
+400 200 8
+% Transformation matrix
+[ 400 0 0 200 0 0 ]
+% Strings to hold RGB-samples per scanline
+/rstr 400 string def
+/gstr 400 string def
+/bstr 400 string def
+{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop}
+true 3
+%%BeginData: 80402 ASCII Bytes
+colorimage
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+fDblg6K\=Q"WB-W4?Pdo4p6+l]&ih]rrrDpij);hp&GL',"Q[#Lmt]mi:-UBo)Ajlp>C')q#Ca-
+0OT-[R^UZ0q#:3k!rftBr;[*-4`Pt>]\`;[p&>'%-iO)I,T-[I!!OC1jn&BKnc&dlp#<8P%e]l2
+"!U9TI#+8tb2Ddcrq6:-g3RO66TZkO/89R1ak>G'lMCDUrVc`p_uG5~>
+fDc3-AgAK<(`*r''GKsK"r/C?3]oMfm61YtOLjQNo`#*op#<8P%e]l2"!U9TI#+8tb2Ddcrpp'l
+rq>8m&GZ;5#V]Y2L75R!lM1AVrrW28$N0r1#!HsURCqDKrq69l[jV.T![JWbkPtc,R-!r:rpg!l
+rq59V:(Hst$j.\EE.!J2ZHD+pqYp0f(YX1N<'rc'0emR!XjZ4ijR;sBr;HTnrknbd~>
+fDc6;J3>hE.46Gg,U"<#*sNl<2EEr_4mbE9G`]Muqt0mlrq59V:(Hst$j.\EE.!J2ZHD+pqYp'c
+"TJ,QFV+?K$4&=nG_VZqdd$W,r;Qit^^C#?#R3G3J!mt+o`"O`!OjHU!!4D`!pBUf*LPs[qu6-c
+"oe2SZ;(o'!"8rR88rs4S$L2pnG<.WrtjC8CK*Y`2)R41LpG[tlg+-<qu$Ekrr0h8J,~>
+gA_6CM^RKa#SJU[Cl4ICR$dH4"J2pKnc&.[#laS]ca8*s2'Dku%L*7S1/_:`E/L-e^<lNJn,*ps
+lGB9$.1d!s#n@h2C5&"Yb2DgerqcX(q78g7,slHqMPJ)Jp&4[cs*k'%9)\er&Pd:_DG`D6!pTal
+;j3B4I=8["q>L$e)ZKKoca5M5$jR7P',DcW=EAnFP+oA,h<ak4r;@'%mG5jnSV:rb4tRZYo)K.6
+.77QqVp"]-r;HW:s*t~>
+gA_WSXCb's7mAmd0J>%2/aY(p3(dS&NKf`rR.?XJT!Hl9rq$..rqGU%[!bb.+:/;Z%M^0O>@_Mp
+OJ9/'f_#".r"](qb,Jl)'b_,j)_+BrKpT$di:6^DqYq$#\j.Db6>_(,UVl'`rV6EmU]HuXrW!3>
+=ES\+<]_9&l2V,jVQ@/!U<E9+rV$70rqGU%Zq25S%MBBi(a_LMF+&e+U:&/"m.U>Sr=/\qk1@he
+W0`?`B2UiFr@A%'1d4D,8ded6G`JT6f_#";rVjq=J,~>
+gA_WV`KPh&H>[%h;Gg7d:@1a]<FBcqNg,isR.?XJT!Hl9rq$..rqGU%[!bb.+:etm&f`Dk@V^"7
+Q)D4<h=UO3r"](rd'%+>(`!f$,WA_DKpT$di:6^DqYq$#\j.Db6>_(,UVl'`rV6Em^B(K0rW!3B
+@!Hj=>!*c+l2V,lZbFJn^"N,TrV$70rqGU%Zreh$',D<")CRjQF+&e+U:&/"m.U>Sr=/\tmGcjE
+_7$G9OF(D5rCmAj>ASW`J.%6uT<>oSiV!$ErVjq=J,~>
+h#@HEIh:?7#Tc9FPJ##]c-H(0"4GulqXORjrqc-Bc+C!IjT#8`m/R?)T"N_Cq#1!f%/obL[[`MH
+U:8M5p\spee,TVcf]W#.pAY9pqXED]p&G=-'G_N()]Tmq*WQH&!!iZW>`-Jlq#(-9s*t~>
+h#@HJUfI@c"%YgF4l\X1;/(]X^WF^EcM,WedbO6dnc'C(qXEFf];hGR.Olks.P*2,2*!ie7S*/D
+!)3/["\;$E2D?]].L7OVFe67umJ-YTrs\ksfX@<5QD1k8kkG)Nrt@jG!<<*#(b-sc0JtaF0Ie1Z
+$3BMo#oYim84nopkP+uLrtbV1nDI&"0eP",.Ochs/1rtM85<,d>l%b,:\RH`84>d,rB(0F5Xe6:
+8dJ+(MQ5+sq#(-9s*t~>
+h#@HM^PMi="+56/C#`k4FbQ3b_9'pGcM,WedbO6dnc&ppqXEFf];hGq8cD6f8P;iZ>@VDgG^Y)7
+J,k2sJ.d?ZFD5#[9h@lH8ksi,]\)WHrV6C$rUSULS<B24\'X@5rqHF+H9;6/!!+Q@7nZfd?<U9"
+2^8k8m/RGEAorHOWS$D.rq??urqc-BFC%sC91f+R$;!ld>@_PnIYEZ=qi1Z0pOE?oG].?qBEN!f
+G^]78#_J8?^teSWr;Ot@J,~>
+h>[MB'\!*i,YiZYa62mZnF?&JncSOYqu6'a#Q=GfkM4KR)UeZi*-S.$mJQYW$N0GOcGmrTj73!F
+p\t6"ec5mb/8hc?meueX"TA*n,R_Hh#7aOmh":IArmCar~>
+h>[M`=SbYi8,u0:7LELMS$gZ-mdKZ8nc&(]o_87^n,EXkq!mP&dV;DR3!VH*4[;>&7nDf8%S9,W
+5<Lqc3BBc^Us&0'p&>Bsn__X3aOK8?qYp6h!OE+3!##DT-n$]+5!hV'5!1e]0J"C`$j,nu#UVT+
+?\Yl5meueX#Q=FJ>Xpq<3W:uC3BKAh6:FC8lq.=N84WVJ!_5dQmn*g`J?Io(qYgE@s*t~>
+h>[N!MYho*Isl\"H4#P$Zc1S]mdKZ8nc&(]o_87^n,F("q!mP&dY;XJ@:E_XBl7s8H[^J.J.@!Q
+F)5K!@U`kaL8<#[r:U'sr:/[i`lQZinbW7ZrrKG;rW!T71dso2?>FS'EGT5p>#S'T-5?[R!!rZm
+AU&loZI&%<o`#U'pn<@]Bk:d_@:E_XBl7s8H[^J4J-(4LI/A3kI"$S7J-Uh)_rgUfrVk4EJ,~>
+hu<`75k=sc"VrFC5tXgF:/4DF.i/9O!!*]Ur]C="me$ATli.:jr:opKd%Y/9'&!<k"#=J;Ni^b$
+rq-3qrV,jMn+?JTpAY,>f)Q'a;0.S\XNp84o)Asihn"ng;)Ad$!!WNiQK@f9rmUmt~>
+hu<`@GOnE:9Mnkt@V0:fC2.Hn>Z4;[8dSO+F*)Mgme$ATli.Fnr:opKd&28#:.@`E8`E>N8Ou<>
+7TaSXNi^b$rq-3qrV,jMn+?JTpAY,>qu@NQ,q(K/6:XU>84Z3<69dRl1bgU.)%[&F!!j*8F,?6b
+cL1Z%rseb\\s@h_>t[RS7Rp!@b";k3FKjs$qYntDJ,~>
+hu<`GT_![<IscQgH[C/>IKP(MIt-[4!Jlg9S-6.co_SRQrso&+q"3gtWf)=NG^=adJ)l+hIsu`i
+GBS%NIZCMZo)A:]#Q=DemdKfErV$6kHi3pL!AZo0<+U)rrdG<'H$++DB44tC:-L3L%.jN*&m043
+Q`SL#rUTsuptrZOMLp5#G'A1WI"$RgJ-LRo_WgairmUmt~>
+i;Wha&G?)3"X69@G^kI,P*_]1rh'IfS=#7L5SE5[">J!QnGMJL#l<l9^9FDd9H)af#qBJ1L7#-c
+jnSiGs8Drirr@!8!!4`+#i,Ic89UN4bi8<po)B'omao@cYc+.?63tL0"V>7hnG)t4s*t~>
+i;Wi"<VB#m9N5D9G^kI,P*_]1rh'IfS=#CdBN""c"DGs4nGMJL#l<l9^9FDnE)tgf$!(hdL7#-c
+jnSiGs8Drirr@!8!!Y&=.ks.S8GYpg8Ou<=69dRm2)6d5*"E#D!!c&<S@?`%p&=O^$N'8C_mckK
+Sr%2W`(C25NR[ImrRLpu~>
+i;Wi2M"Z?,IsQ9]G^kI,P*_]1rh'IfS=#ItL4SN<"H^d\nGMJL#l<l9^9FE!MLs]8$$^E6L7#-c
+jnSiGs8Drirr@!8!!b/H79+#EI=M0F%tB%UH$44GBOY4I:e*2V!qu["89UN4bi8<po)B$nmao@c
+Yc+.WLr4`HL9'%tq#/bCJ,~>
+iVrn9p&GO<7W!I+P+J\^^;eCEe,@c%d`oeFZDDb'!pTag,b;X/qWIkdrqc0Li7?&`XFWVBirBDi
+9lbcMYfPVcpAO"N!/(1L";kW^EBr@\#!RdOh!Xn6nc'!rqXWt6i7cW"\Y):S!"&cA/3cp6C2SKO
+KDgH,J9#$l1DK9X"TqW;mJ$S2s*t~>
+iVrnZp.>ck@;pOIP+J\^^;eCEe,@c%d`oeFZDE@g9Bo+P>b/RgqWIkdrqc0Li7?&`XH.-lj%9YP
+@WI!bYfPVcpAO"N!/(1L"rLi`F'qF.oh#Wa84H$85Wq.e1Fs:Bq#CU_L:H%,pAFI\$i^"nlfI'Y
+d`8noDWsb":g%1=D00uNJV3oS"bM/FCg^008d.n<bO,'&fDg@~>
+iVrnsp4*U"FE;b_P+J\^^;eCEe,@c$d`oeFZDEhBl$rniS\=([kPkqhqXNh.f#kY,R>QRUJ-pdG
+Ee'I[aP?+TrSmhWKDY]R(h76%G^"W1J.7!WI!U!XDe`ij=A("Cq#CU_L:H%,pAFI\$i^"nlfI'Y
+d`8nsNp2'#I!U'`H[L9mJV3fP!J>skJ-CLtdd?f-fDg@~>
+ir9!spAb^?;KRDLTsM\cguRbgo(;VSp'^Qco'Yc%fZLdo7Ki&X"<E/rh"^"2$i^)#p@.8#cFooT%
+d!`u!`F)pUr;*Wq#(-NrrL.Cqu?puFHE]?JdCT@!=T>3!!P?@^Ztarn,NFe$N9o!q"4":g;nL?m
+f3e)/l6J6KT).cU8P&qZM_'8Za$U.SV:/k!q?6o"'3Y5q#/nGJ,~>
+ir9"HpIYrnA9<<^TsM\cguRbgo(;VSp'^Qco'Yc%fZLduDbTLi"B:&Th"^"2$i^)#p@.8#cFp'#
+;<:CVA93O%`80kVr;P^U!QP?@!!Z;BOKZBc:@Up_8Ou?@6pX!s/dhFT"ZVIUlMUYMs8W'*rVZNe
+o^:kqaHB6c8e"NtATN6PN0Kj,VlR#,r3Qa9Z)jdmNceQ!nO`sYK$s&]rRq4$~>
+ir9"fpOEd$EccelTsM\cguRbgo(;VSp'UKbo'Yc%fZLe&NpD2uI>"ZVpuVM`rquWdnE8TP]r@0H
+ja[YVF,-R0h<t(9ro3qY`ru;?##TK(YJ-renph'sIXHKeF`;))8.,1n"ZVIUlMUYMs8W')rVZNe
+o^:kqaJJ<T%=WPDFaSk$PanJGX08i,Zj3qBXJMJOMM(DK"bEE!mJ-Y5s*t~>
+j8T+/p](g,5&bn2VnUU<m.C)NrVlflrsA]'qY'F@fZ'=>m/R8.I&>WmiVs5`r:ojHg;p9k"R#gj
+/ocWFcKY*%hu<[5qu@!=E/1aQlJS-;lMq#'>>b\&!!G<<]''%TrrrE"p[6mkmf3eaEIa7KZG+E,
+f%Ss<iqqdCini>8aLn[:8e(:j"Uoe:nG<.=s*t~>
+j8T+Tpdu&i?>t:RVnUU<m.C)NrVlflrsA]'qY'F@fZ'_$m7ILZI&>WmiVs5`r:ojHg;pF@9^#(R
+=E0(pcKY*%hu<[5qu@!=E/1aQlJSa>m7IOQ7nd5e#5\B'3Jb90rTF1arquNYhOa1.%:=+*PGGLu
+aO&Mlh;I;ij9ai&f[7dQY*X*(nO`s^Rc*]3rnII'~>
+j8T+opj`m)FDuVhVnUU<m.C)NrVlflrsA]'qY'F@fZ'tOm=>4a!iF]HiVs5`r:ojHg;pR`J`qUh
+G&`89cKY*%hu<[5qu@!=E/1aQlJT4*mXPLjI=$!B;?m!u"?D:LkPaTD"oeGombY5;J.6R>J<Qe7
+^<"[Pg>1]HqrA(ChUp5s]WRfaK(4?pKWsD(qYo7LJ,~>
+jSo4Pp]([*;KIM`][l<<qYgE_rs/Q#p?^YWLDTCZ"<2`cgA'P)#QFYqmblB\-0YC6>'usdm/$_=
+rrBP*!!kT/R`b'rq!(]B!!Ea>Fbj)q!!G98[cRGJrr`5pkZ@6R$q,K5^XhE/n+?>Kq>0sc$iBep
+o^D##d_Vqg$1Ruu1qr/HrS7F'~>
+jSo4lpdtofA93Er][l<<qYgE_rs/Q#p?^YWRTJrM"B'WEgA'P)#QFYqmblBh?g1/eApg5pm/$_=
+rrBP*!!kT/R`b'rq!*=p8d%n&Fbj)q!!G98[cRGJrr`5pk_&@s$t+IQ^XhE/n+?>Kq>0sc$iBep
+o^D##d_W#4:[q$[C;oB0rS7F'~>
+jSo5+pj`a%E-$])][l<<qYgE_rs/Q#p?^YWVhOSis*OmFgA'P)#QFYqmblBpMWoWqE.";%m/$_=
+rrBP*!!kT/R`b'rq!+O=J-::;Fbj)q!!G98[cRGJrr`5pkbIWt%!?rf^XhE/n+?>Kq>0sc$iBep
+o^D##d_W)NK(4?oP02t]rS7F'~>
+jo5A)"Si$(!`*lnWQXDqqu5m\"o\5`gq6>M!!F6gVV:h"rrrAsnDM>llMq(oE/M0dqVD/O@/Bp0
+:4TD#q#CBc$g[ir:N_`*_YX<98;=S8r8[eZrqbC[nGie`KsKM+qYgE`rs8W%q=En-bcF/$!!Emu
+hXUO"s*t~>
+jo5A8:&%<d@WR@)bN8Bnrp'LerV5d8^NT*="B'WEgA'G&"o\8di5gH78d.n-MR_aDh>[I_qZ$ms
+J?.K#s8Vailq.CiFcWoHqZ$aiL:67Bj8T5\qVbBC8dAgZZJ>*KrVl?e#labtoBP/UY]'&("B;;U
+nbh5CJ,~>
+jo5ACK(sj%EH?r8bN8Bnrp'LerV5d8_Ns\As*OmFgA'G&"o\8di5qMTJ-CC@MR_aDh>[I_qZ$ms
+J?.K#s8VhIm!o4YFcWoHqZ$aiL:67Bj8T5\qW*D$J-U7OZJ>*KrVl?e#labtoBP/U[#jg."GO5>
+nbh5CJ,~>
+k5PJR,kq?E0QDiId-UW.k5PV`pZg:]#k@ru)gnO:pt>ZLrV5d'lMq))FI()<rn[SS./NuL;i%sG
+r;Zf#li724E/(OJn,!(f@Z%e]rSdbWq.K3t"@e6Zkl'iI#QF\snD_`I&Fof)!cuoZqYoCPJ,~>
+k5PJUAGAb%=`K1rd-UW.k5PV`pZg:t:@_![;LG@qpt>ZLrV5d,lUh=XFI()<rn[SS./NuL;i%sG
+r;Zf:lq.F\E/(OJn,!(f@Z%e]rSdbWq2t2>"Cd5!kl'iI#QF\snD_`^;t<Na99@]kqYoCPJ,~>
+k5PJXP5'P4G&`8:d-UW.k5PV`pZg;0K(=HlHig2!pt>ZLrV5d/l[T.cFI()<rn[SS./NuL;i%sG
+r;ZfKm!o7bE/(OJn,!(f@Z%e]rSdbWq60=="EoX5kl'iI#QF\snD_`mK^jQqV:Fu0rnma+~>
+k5PF"p](L*BRZZ!mJGrD"oeDjiMmgf!!F0eVV:gsrrN&8lMq&+H(`XZh#@?rqZ$k"N5+ZVs8Q?j
+!!Q)BSBL?equ?m=Eg"B.ro*kXrl=O/"@e9\kl'`F"o\8dhQ\Bs!!HlYlM:G;s*t~>
+k5PFLpdt`bCOVu$mJGrD"oeDjiO)k\8d&%>VV:gsrrN&GlUh:XH(`XZh#@?rqZ$k"N5+ZVs8S#D
+8d/[LSBL?equ?m=Eg"B.ro*kXrmgO2"Cd8#kl'`F"o\8dhR[+b8d'molM:G;s*t~>
+k5PFjpj`QtDLS;'mJGrD"oeDjiP(->JH'uuVV:gsrrN&Rl[T+bH(`XZh#@?rqZ$k"N5+ZVs8T7g
+J-Bt=SBL?equ?m=Eg"B.ro*kXro!<s"Eo[7kl'`F"o\8dhS>'>J-;FglM:G;s*t~>
+kPkS3"S_s#20=tpk5+$9"TJ2]^*iOQ":fgUf_F%t!35tt!'9TL";cE\f_=2$!$D(<#<RmZlM^bS%
+.+$!"`9"#i;'/G!!Q&BT[NK3i;WiT(@hG.7Z+hArT=+_rV5[#2XpbM@a"$3ro*m-~>
+kPkS@:&%<a>',n@k5+$9"TJ2]`a\R4"AX?@f_F%t!5e\,!*o"c"AsNAf_=2$!$D(<#<RmZlM^bV
+;XI'\9Q#Tki;'/G!!Q&BT[NK3i;WiT=n5/f@Z%e]rT=+_rV5[&D"1+#K$3ESro*m-~>
+kPkSIK(sj"F``b[k5+$9"TJ2]bDl.E"Fb`pf_F%t!7^st!-I^\"FPQlf_=2$!$D(<#<RmZlM^bY
+L@'KqIrC(Ji;'/G!!Q&BT[NK3i;WiTMXl9#G)EoqrT=+_rV5[)P4=&*R`jskro*m-~>
+kPkNYpAbA&J#Lukrnm_Yrql000(f2I%==l%p=B6DL]%2RB-$LB":TXQf_=2$!)ECk"qZO!jo#.R
+qu?^*nc/k8FHjf4nKe&5"X%c?[Ggu>rrN*rnc/e^MS&*Njo5J_qsi8tnGiZ+b3A`\s*t~>
+kPkO6pIYU&J#Lukrnm_Yrql04BD"k":4&bfp=B6DWr5NjCfU!t"AX<>f_=2$!)ECk"qZO!jo#.m
+r(6rank'*bFHjf4nKe&5"X%c?[Ggu>rrN+Nnk'$oMS&*Njo5J_qsi<VnO`n<b3A`\s*t~>
+kPkO\pOEEdJ#Lukrnm_Yrql06OS+,,IX@jAp=B6D_u5)dDgh/+"Fb]nf_=2$!)ECk"qZO!jo#/+
+r."crnpgpjFHjf4nKe&5"X%c?[Ggu>rrN+snpgjdMS&*Njo5J_qsi@(nUL_1b3A`\s*t~>
+kl1Y/pAb@.EK%Qnr7q;Sr:88hp&G4)HD/m_f)G_`rW!!*Ea8)6"*C6ep>#ZJV"t&p5cE<-r_37j
+!=D?f!!P$%U"&U2r;[$/@XF`ln,;,C!.j\@"@e9\kl'QA"9%lB.e3QB!e8G\qVqO*~>
+kl1Y=pIYTbEK%Qnr7q;Sr:8EPp.>H_HD/m_f)G`7r^m5cEcUYA"*^Hhp>#ZJV"t&p5cE<-rdar>
+!DQtm8d/@DU"&U2r;[$/@XF`ln,;,C!2]6Y"Cd8#kl'QA"9%lFAb&Fr99IHbqVqO*~>
+kl1YGpOEEpEK%Qnr7q;Sr:8L&p4*9pHD/m_f)G`WrdY'!Ee<e2"+$Zkp>#ZJV"t&p5cE<-rhfXE
+!If+\J-C.CU"&U2r;[$/@XF`ln,;,C!5J)T"Eo[7kl'QA"9%lHOR[i'T?QZuir=N~>
+kl1WbpAb@BG+-\GrnIGTrUeS^pAb=*H(`[\f)G_;rW!$:G*F0?!!?8jch#rl!V\&>!!H?;jlQ^E
+!!+i]nc/eTJ?-URr;[$*<d'Y=jS@X3!28r`"@e9\kl'N@"9.u;'Cl,+%[ti7r8[g-~>
+kl1X=pIYThG+-\GrnIGTrUe`LpIYQ`H(`[\f)G_rr^m8iG*H;&8crmuch#rl!V\&>!!H?;jm,V=
+8c`(1nk'$jJ?-URr;[$*<d'Y=jS@X3!5.kp"Cd8#kl'N@"9.uC<q8ic;52M-r8[g-~>
+kl1XapOEElG+-\GrnIGTrUeg&pOEBqH(`[\f)G`ErdY)uG*IjRJ-1.ech#rl!V\&>!!H?;jmRd!
+J,sh8npgjdJ?-URr;[$*<d'Y=jS@X3!714d"Eo[7kl'N@"9.uHM"6'!Ju6ubr8[g-~>
+l2LeM"SVm!3.7[VpY#QKrq4GJp](F&GbER[f)G^mrW!$IHD#o\!!G-A`U3Z\rrW/;#PnE%4hQFF
+!!6GR!qQBo7=\hVr;['0<csA,g@YC#rrBe(!!GcK]BK4PrrW2mU@A3d/?mh"roF*0~>
+l2LeS:%q6_>^`L%pY#QKrq4]?pdtZ_GbER[f)G_Xr^m8nHD$eu8d&I``U3Z\rrW/;#PnE&4hRFY
+rCR-)I7s0("(?^h%K-83$<D;.ZJ+sMh>[K%nk'$oMS&*NiVruYosaH`"CSIeo`!qOJ,~>
+l2LeWK(jcuG($7?pY#QKrq4lupj`KrGbER[f)G`3rdY)qHD%D1J-:7_`U3Z\rrW/;#PnE'4hS.L
+J,Xs!E.7A."*K-'%K-83$<D;.ZJ+sMh>[K3npgjdMS&*NiVruYou?NP"GX/6o`!qOJ,~>
+l2LaMp&G4`K!=20f`)'QoX5)$!!@J;e+M>m!;l]p"?(_.d3%oZ":U*rjnmj5!r/2dq>^O((]==9
+)KC]Vo)Je5%/^)1*G'JTYgr7@h#@B&nc/e^MS&*Ni;WlWo2tM_"(8e&q;hR+~>
+l2Lakp.>HqK!=20f`)'QoYaT$8cs=0e+M>m!;udf"C-DTdU2Q;"AXc_jnmj5!r/2dq>^g0/j)To
+8lBYf>4bDg68&cF!!aNUG`ArXnGM)A!8d9="Cd8#kl'H>!r__EnO`n1]]AnLs*t~>
+l2Lb,p4*9gK!=20f`)'QoZi-bJ-1%fe+M>m!<)kH"Eo6nduEpK"Fc0:jnmj5!r/2dq>^g05A,4h
+IsQ*nL\-)uE]X^-!!aNUG`ArXnGM)A!9j!("Eo[7kl'H>!r__fnUL_%]]AnLs*t~>
+l2L`Sp&G4aL:64AfDbpNo8`SG"*U3^o[j*Cg\h*T7Y7l%Mt$cL?DuQNh#@KTntQrm!!>W4S3H?@
+#REn@I[.=lnGM&@!8d8H"@e9\kl'E=!rUsdnc/e$R*+gojo9i~>
+l2La2p.>HrL:64AfDbpNo;VLW"*U3^o[j*Ck5@mT@=k`@Wpr[`Ei@[bh#@KTntQrq!!`Q>-otUV
+S8\0p"%G3q&c2P6#Y&laQ*o34r7h5OkOM4J@Z%e]rSRVVr8^fI8d%t[b3f,gs*t~>
+l2LaZp4*9hL:64AfDbpNo=XjK"*U3^o[j*CmJVP<FFpaS_!upWJZ.8qh#@KTntQrq!!`TM7V$C[
+S<Wf!"*n9=*r>pC#Y&laQ*o34r7h5Omdbl2G)EoqrSRVVr9/n*J-2=amJQ)GJ,~>
+lMgnZ#ke6$7Z"_?rRUuMr:!nc!!@A4d.Gri!4Vn,"]^>fk3WrT!!Fp@am]5arri5d`Dd$8!!<ED
+3$n%o#n&k6I#=Z6h=:EsrrDc`!!GcK]BK4MrrMtInGi\eY1r[Lk5Tr~>
+lMgn\;"dKa@Yq\[rRUuMr:#I:8cs4)d.Gri!6kC6"_NP"k3lID8d&Fdam]5arri5d`Dd$8!!<ED
+3&^[["!\`u$2FQ-$Tr?TMP@oBnbh,@!;Z1X"Cd8#kl'B<!W&P\8d'(8g\1X/s*t~>
+lMgn^K_Bp!G)<forRUuMr:$TZJ-0q_d.Gri!8II&"`oI/k4+?"J-:=fam]5arri5d`Dd$8!!EKE
+3(#k-4p*o#+V4AK#n&k6I#=Z6h=:EsrrDodJ-:%Q]BK4MrrMu.nULasY1r[Lk5Tr~>
+lMgk-o`,+aM7`!Mec,^JiZe4!")""Ho@O!BQi-mfArOLiqLnD>"9a=cjSR^3"o@Z<WE9kt!"/f?
+3bj)#T!m#.pAN\E!<2Nh"@e9\kl'B<!rhQsnc/e*QGr4hk5Tr~>
+lMgk<oh#?rM7`!Mec,^Jj^@pW")sXQo@O!B[J`]$D2c6pqPEaT"A=KYjSR^3"o@Z<WE9kt!"/f?
+3bj)#T!m#.pAN\E!<2O]"Cd8#kl'B<!rhXfnk'$^QGr4hk5Tr~>
+lMgkGomd0gM7`!Mec,^Jk`5Li"*^-Xo@O!BbPcqpEf@cuqS)KM",OGIqqM,SqX2q6=;9ou$NUl$
+C41u2[a=11rRq2NrpkRBG)EoqrSIPUrpba5J-2+Vm/?)HJ,~>
+lMgjNo`,+[M7VpLeGfUG[KHC,"D4"Enc%2@!-J2?#6T"0`pWih%e9T&9Vg53rnIGWr:ApkZ[t1$
+!"'N/@"b8acJe<irn%2@!!GcK]BK4LrrN%3nGiZ%Y2/m8s*t~>
+lMgjloh#?pM7VpLeGfUG`_?8%"E9^Onc%2@!1a$\#>9*#`pWim<:WWaC8BDQrnIGYr:ApkZ[t@J
+!q$$t"Uu:u6=>J@\Ba('qYo+Hnk'$oMS&*Nh>[NRPOV6IGHTcsk5Tr~>
+lMgk-omd0iM7VpLeGfUGdXh:G"Ep-Unc%2@!4r/[#CgcW`pWipL@KcrUt,/;g]%QWoA[s"Jj^1Q
+mJm\&(F_:0@"b8acJe<irn%2@J-:%Q]BK4LrrN&&nUL^pY2/m8s*t~>
+lMgj+o`,+KLq)UFeGfULp14%#"C786nG_)?!)WXp#820Hc1:l3D=RZ0'U$B"rS%8TrV>p?cU[p6
+"pu+Y&Io9OoDf.4<.1msjRE!Dec,U_o)Jn_MS&*Nh>[NT`:3g11n)VWroa<3~>
+lMgjSoh#?jLq)UFeGfULp5]#B"Dj=EnG_)?!.t2B#>fQ1c1:l3QL[WN;Ner`rS%8_rV>p?cY5-e
+,9%F7&ePT`"o\W;"UGMJ'cS>C-7CZLIBCrYnG3%5rr?-l8d&U\]BK4LrrN,KnO`pkR`k4"kPp&~>
+lMgjqomd0kLq)UFeGfULp8n.A"F$*PnG_)?!3#mI#CLZ]c1:l3ZgrVLJ!._8rS%8^rV>p?c[o1m
+4Y@ln&ePT`r!3lF'H8;N4$Z/&85t#>dcBonrRLoJM=Z6#G)EoqrS@JSrnd0q"Fcf_nG_VNJ,~>
+lMgico`,+1KX0V7e,KLJjV[mq"BUc+mf(l=!&4BP#U"Aae+Nb?h?WTO")+mopt5TKrV>R_r;[$V
+9ji7&N#_Hi"r;$DcLC]0e,KCio)Jn_MS&*Nh#@EP(@hG.&rO9_r9+*1~>
+lMgj?oh#?bKX0V7e,KLJl!"!W"DX+>mf(l=!,VX,#ZQ&@e+Nb?k"kP?"*h$*pt5TVrV>_N5Wh"`
+5tta4Ll=In./tb)/1rV52aV>LcLC]0e,KDUo1B-pMS&*Nh#@EP=n5/f:l;jHr9+*1~>
+lMgjcomd0nKX0V7e,KLJl\bUj"F$$Kmf(l=!1<b9#^U`fe+Nb?l@\YX",*l6pt5TVrV>f*DJ3Ka
+9hf#@Ll>:171MdX8PDr[=^GNQRa1F!rmUlIO7Rl)G)EoqrS7DRqhjrp"Fc6>k5=EBJ,~>
+lMgiLo`,*rFfF-jdf0@ERf!-g9T[-Xrn.5N%/p54/psPLq#CBk?1Isu0:L,Srn%/MT)AWo$!qV7
+Z+n%CoDf"(H)B<jdJj1go)Jn_MS&*Nh#@ES;=OVgG,j<lkPp&~>
+lMgj.oL]44WS@3rrrMu'r(7*'OM^A`f`(qLr^mGuI&>Tls8VtRnk'$kR`t:#fDc8j8Ou<=7::+u
+Z+n%er&+sB3'',a5X@b0H)B<jdJj2So1B-pMS&*Nh#@ESK(2G8I&brrkPp&~>
+lMgjWoRI$nWS@3rrrMu9r."opOM^A`f`(r+rdY9!I&>Tls8VttnpgjmR`t:#fDc9)IXHHbEF<dL
+Z+n&)r*Be=@:WtbD/jZ?H)B<jdJj3-o7-seMS&*Nh#@ESVso3<Wn[=3s*t~>
+lMgiKoDf"dS^@!-e,KLKoeuaK"@eBclM]E9!:0R`#X!X>hYR9PrmL?;"9a7bjSRR/!'pJ_#;pOa
+^>J8AIe3UC"+-iqpX0!@+7fI87Z+hArS.>PM=CQK<h7V/rojB4~>
+lMgj-oL]7"S^@!-e,KLKoks_#"CmG+lM]E9!:g"[#[Mt_hYR9Prn[-;"A=KZjSRR/!-eB6#?c)0
+^>J8ASGGV\77Kd<8P2X&Ut>@grr?Hu8d&U\]BK4JrrB(h8d&t$d.@8#s*t~>
+lMgjVoRI'nS^@!-e,KLKopG]."F,p@lM]E9!;6;@#^1a#hYR9ProEU"",aVLqq(iJT`0HIIro^n
+^>J8AZi"nRF`qtSH@1-jIs\!CpX0!@O7Rl)G)EoqrS.>P_sr6[I%AXUrojB4~>
+lMgiKoDf".OML/[df0@G]DV^43JtH4rRq2Na8Gu@8qaS3r;Q]sqb$DZ"@o9;o`!PD!8m_T#QeFb
+WnI+FrNPkn")jd[p!Nd>+7fI87Z+hArS.>PXmlAo6'B7UrojB4~>
+lMgj-oL]6aOML/[df0@GbPb$9?AcAYrRq2NfDS;E@YD,Kr;Q]sqgS*."DFU\o`!PD!9j>Q#AJ^g
+g%PFD`q)e)Fe7(TdJj2So1B-pMS&*Ng]%8lnO`pnP/cqhkl6/~>
+lMgjVoRI'oOML/[df0@GfDU4&H&B5trRq2Nj8FK2FG.$]r;Q]sqkEY3"G*Auo`!PD!:Ti9#B,-m
+g%PFDf(smmJ-1(ge+M,g!0?`%"Eo[7kl'99!7gUi"FH<Omf)GMJ,~>
+lMgiKo)JknXk`^!rrMmdrW!'TL:?=Cg&D&Mr;Zt&M7VmKrr3#u^@D7,'9U,rr7V)MGPqLI,BAjZ
+kktJ\iq!-P?CB+0dJj1go)Jn_MS&*Ng]%8nnGi\GMS/0Okl6/~>
+lMgj-o1B+)Xk`^!rrMnBr^m;sL:?=Cg&D&frCR3+M7VmKrr3#ucLOR1;3A][r7V)MTD_@f<H=/7
+kktJ\lLRUMDOJf@dJj2So1B-pMS&*Ng]%9)nO`pgMS/0Okl6/~>
+lMgjVo7-prXk`^!rrMngrdY,tL:?=Cg&D'$rI>#lM7VmKrr3#ug@BasJ!%S4r7V)M]D[6cH#et[
+kktJ\nFM/4H'utKdJj3-o7-seMS&*Ng]%95nULahMS/0Okl6/~>
+lMgiKo)Jn%N5k5^df0@H`Voi?-A8\br7V)MKDbcQBTBpqrr)itqD[sF"(A:dptG`Kq],P7#u>oA
+de!J<s8EQ$!!H,^aRB,Vrr=/4!!GcK]BK4JrrCpG!!F^([,h/Ks*t~>
+lMgj-o1B-]P/ckddf0@He,DrB=+mm>r7V)MVu93jDN;R"rr)itqJc!t"*L^#ptG`Kr*K=o$"J=U
+de!J<s8H!i8d&gkaRB,Vrr?Hu8d&U\]BK4JrrD6P8d&7M[,h/Ks*t~>
+lMgjVnpgh.`pEWOrrN)SrdY,tKX0Y9g&D&grI>#kNkt)]rVlopRdtt2KWNu(gA_3PNr=J7EdOM.
+oD\direL,r"F--On,Cc8!0?`%"Eo[7kl'99!:KB-"F>d/jS\6AJ,~>
+lMgi_nc/e@W7^bAdf0UK8cSi2JZdo,g&D%[rW!**F-F]6rr)itrMT2d"=]b]n,D)A!42V("VPd1
+[c@5`rrN*WoDf"[Nl(/^df0:ho)Jn_MS&*Ng]%91nGi\3JZdr-kl6/~>
+lMgj;nk'$jWn?tCdf0UKHqI"1JZdo,g&D&4r^m>fF-F]6rr)itrP%hp"Bq59n,D)A!6P13"]0/o
+[c@5`rrN+<oL]6qNl(/^df0;To1B-pMS&*Ng]%9;nO`p_JZdr-kl6/~>
+lMgj`npgjrWn?tCdf0UKU4@cAJZdo,g&D&VrdY0%F-F]6rr)itrQk%b"Fli^n,D)A!87=$"ak9F
+[c@5`rrN+foRI'iNl(/^df0<.o7-seMS&*Ng]%9AnULaiJZdr-kl6/~>
+lMgj&nGi\U\`!5]e,K^Q\c;^@J>q;ug&D%7rW!'6G+$YHqu6]l,kD!=!dqH:qV2#M;#L@t5^/[?
+nGW=c!+tj'">G_Fkl&s0!$Ce4"@e9\kl'99!8d5G"<2ijh"g16J,~>
+lMgjOnO`q!\`!5]e,K^QbXtK(J>q;ug&D%or^m;iG+$YHqu6]lA+N:q98'b6qV2#MK)J:F??_j]
+nGW=c!0ZtH"C$bqkl&s0!+>Cj"Cd8#kl'99!9irF"B'`Lh"g16J,~>
+lMgjnnULb"\`!5]e,K^QfRSL%J>q;ug&D&DrdY-!G+$YHqu6]lORdo(M72I@g]%8PrI>&nGFH_E
+rVc`rZLiYMHA]>urR1]GO7Rl)G)EoqrS.>PmdYf1I"/0Oq<7j/~>
+lMgjIn,NSP^?#%fe,K[L0E;0+Ut>=nrr=&<!!FEiT@EQ2rrN(_nc/e\U=/]5h>[N="TAB)#&/^m
+h>$pJ!06[O"<iH*jS[I+!$Ce4"@e9\kl'99!7pZ?"<2cfg\C"4J,~>
+lMgjhn4Egu^Z>.ge,K[LCJ%6OUt>=nrr?@(8d&+=T@EQ2rrN)&nk'$tU=/]5h>[ND:&[`g9Pf?a
+h>$pJ!3Yrd"BC,^jS[I+!+>Cj"Cd8#kl'99!93N@"B'ZHg\C"4J,~>
+lMgk*n:1Y$^uY7he,K[LQ@OL;Ut>=nrrA)YJ-:1DT@EQ2rrN)<nUL_9de*OprrM_CrdY0%DhG4K
+q#(-l`q4caH\Acer6kTFO7Rl)G)EoqrS.>Plg]K.I!qsJpuqa.~>
+lMgk+mf3JB]&NG_eGfdP`.DZ`WS$purrDfl!!Fj#VV1b@rrMU)o)Jn&NkaiVh>[J1r;[!SFHaZ/
+rVZZq^%;:-&V-t>qU5BD+7fI87Z+hArS.>P^@;1+)h"U;puqa.~>
+lMgk:mn*^m^#JbbeGfdPd[l,RWS$purrDln8d&7DVV1b@rrM[no1B-]O2'rWh>[JTrCR5qFHaZ/
+rVZZqch'g4:k5Y(qU5BD@.Qtn@Z%e]rS.>PdIBg3;LPFrpuqa.~>
+lMgkEmskP!^uG(eeGfdPgp<B1WS$purrDrpJ-:+EVV1b@rrMbLo7-snOMC&Xh>[JmrI>&qFHaZ/
+rVZZqh=Q4#I=SEUqU5BDO7Rl)G)EoqrS.>PhXQ+!I!qmGpuqa.~>
+lMgn\$h"&u)kc'Zr7(`Nq;fK$_;b7DrrCOH!!G?5XPWgMrrN(Gnc/btX4m=(rr=2?!!QYWVUkG>
+r;Qc]oDf!qI&5Kidf0:ho)Jn_MS&*Ng]%8KnGi\@IAkoqkl6/~>
+lMgn];X[3\>-6ZQr7(`Nq;fK$_;b7DrrD!U8d&FMXPWgMrrN(knk'"*X4m=(rr?I*8d/mWVUkG>
+r;Qcco1B+4V:bOjrr?Hu8d&U\]BK4JrrBb&8d&4DW8%+2s*t~>
+lMgn^L$sNpLUQ(2r7(`Nq;fK$_;b7DrrD<^J-:%GXPWgMrrN)0npggpX4m=(rrA/ZJ-Bn@VUkG>
+r;Qcgo7-pjV:bOjrrA,OJ-:%Q]BK4JrrCI:J-:.GW8%+2s*t~>
+lMgna=mc7n#^=qhqYo(G#6"5XhW+2)gA_/Zr;ZsiKX0Y8qYpWrk6LSY"=9DUmeu&C!4Vn,"X7rG
+]]]1hrrN*4oDeu,T$m8Zrr=/4!!GcK]BK4Jrr@Q=!!G30XPN^9s*t~>
+lMgnaM!dk=:6X>uqYo(G#6"5XhW+2)gA_/prCR3$KX0Y8qYpWrlqd4F"Bh)4meu&C!6kC6"]TK$
+]]]1hrrN+#oL]4+T$m8Zrr?Hu8d&U\]BK4JrrAkb8d&CKXPN^9s*t~>
+lMgnaX6tKAJu@8hqYo(G#6"5XhW+2)gA_0+rI>#nKX0Y8qYpWrmt:4^"FlcZmeu&C!8II&"aY0J
+]]]1hrrN+UoRI$iT$m8ZrrA,OJ-:%Q]BK4JrrBh(J-:(GXPN^9s*t~>
+l2Ladli7/P_!(Okf)GpPqY9marn@APO8T%]<J\3Kr;$?nr+5I""9NhTiVMI3!)3=k"]0Q=dIR;5
+rr>7T!!H;gbOPS\rr=/4!!GcK]BK4Jrr>mc!!GrIZJtcFs*t~>
+l2Lb%lq.D"`p!0qf)GpPqY9marn@APYl./sAr+"\r;$?nr/gJA"+di<qVV;QJGi(D@salro)ALc
+!-\!,"DX:Hnc%#;!+>Cj"Cd8#kl'99!.s`5"Cd"hiqqs>J,~>
+l2Lb6m!o5'b38Tuf)GpPqY9marn@APa8LMkF,7Bir;$?nr35aB",O>CqVV;QVYu#KEdOJ,o)ALc
+!1rh5"F6?Wnc%#;!0?`%"Eo[7kl'99!3#F<"ET4$iqqs>J,~>
+l2LeY+m]14%Y!:(qYmPq!-%l:"CdA+lM^PY!rgXNo)JnUT[EB1iVrr="TAB)&o`Z8iqiKN!,D-+
+"@J<imJbT7!$Ce4"@e9\kl'99!#Y5+"D!A#kPaWEJ,~>
+l2LeZ@I-Si;OZJ3qYmPq!1EdX"Dj(5lM^PY!rh%Mo1B-rT[EB1iVrrE:&[`g:iM6!iqiKN!0m+J
+"CmS4mJbT7!+>Cj"Cd8#kl'99!*etc"Diq+kPaWEJ,~>
+l2Le[O6hB#KWa2$qYmPq!4_uX"EKL;lM^PY!rh;5npgh8dI[@rrrMYArdY0"E/:s^qYC-k[.JkO
+HBH/5rmUlIO7Rl)G)EoqrS.>PN:DE$E/D0hrTO93~>
+l2Le`R-FYS0!+4.r2fnu9`4qoEg"H1rqQKoqb-M\":L1%kksE>!.4YE"[[F%b4#<)rrA>V!!G!5
+]]f=Crr=/4!!GcK]BK4KrrCC8!!O'WP/Zhfkl6/~>
+l2Le`Zg(-cB"I-tr2fnuJGi(CEg"H1rqQKoqgS-/"AXrikksE>!2BEa"^cJBb4#<)rrBCt8d&@U
+]]f=Crr?Hu8d&U\]BK4KrrCmF8d/%3P/Zhfkl6/~>
+l2Le`aQe9YOMp;Sr2fnuVYu#JEg"H1rqQKoqkNb5"FlHFkksE>!58>]"a"sWb4#<)rrC15J-:4V
+]]f=CrrA,OJ-:%Q]BK4KrrD6PJ-C=@P/Zhfkl6/~>
+kl1\U.-U^79YB]crN?/#/H,VQ%<Rr\nc&=`!WK_%!!??&g%OG*!W*`5!!NXDKWj5,q#:?5oDf"9
+Ks]q=e,KCio)Jn_MS&*Nh#@A$nGi_PGb3=TrojB4~>
+kl1\VAa)eiHcGCGrN?/#B`:U-:3;iHnc&=`!WL=68cs%3g%OG*!W61$8d.q+KWj5,q#:?EoL]6c
+Ks]q=e,KDUo1B-pMS&*Nh#@AKnO`shGb3=TrojB4~>
+kl1\WP3IK"SBgHprN?/#QMuC<IWUq#nc&=`!WLdCJ-1D&g%OG*!W@uVJ-CC?KWj5,q#:?QoRI'l
+Ks]q=e,KE/o7-seMS&*Nh#@AfnULddGb3=TrojB4~>
+kl1__]*%9t"TqN7m.^I_rr<?(!!F0aS^I*'rrMsQo)Jn8QH/Ckj8T+Wr;[!XFHjc2rV6BmmdpJ^%
+Y1Y;q:#?D+7fI87Z+hArS@JSq],/,"Ti+aXkrm:s*t~>
+kl1__b=q.m"\a?dm.^I_rr>mp8d&%:S^I*'rrMt6o1B-dQH/Ckj8T+prCR5sFHjc2rV6Bmo(5NW
+:4TG&q:#?D@.Qtn@Z%e]rS@JSr*Jnc"DWOjhYH@7J,~>
+kl1__f7E1:"bE;nm.^I_rr@`OJ-:4DS^I*'rrMt`o7-snQH/Ckj8T,.rI>&pFHjc2rV6Bmp@Nk<
+IXnNVq:#?DO7Rl)G)EoqrS@JSrJpDu"E/mohYH@7J,~>
+kPkSXIcg\8"&HSrp\b#trrD*X!!FToUXo/4rrN(nnc/c4ZJbQ=rr>1\!!WL7J>q2prqQKorYP2,
+"*gWopXB-B+7fI87Z+hArS@JRTCDmb-?>3`lMTiFJ,~>
+kPkSXTBAfN9RXtJp\b#trrDB`8d&1@UXo/4rrN)2nk'"5ZJbQ=rr@0>8d/s[WS$qDq#:Bo>4bDh
+HDK3fe,KDUo1B-pMS&*Nh>[JenO`scEfe*%r9+*1~>
+kPkSX\EAAHJY1<Up\b#trrDTfJ-:.DUXo/4rrN)CnpggsZJbQ=rrAYhJ-BnBWS$qDq#:BoMtDN%
+I&,Ehe,KE/o7-seMS&*Nh>[K$nULdfEfe*%r9+*1~>
+kPkV^nP\HK"[]6TpAFourrBt8!!G$*WS@4@rrMd5o)JnST$R!,jo5>,r;[!KEf[rur:^-j9(W)c
+@[tj<e,KCio)Jn_MS&*NhZ!WR,k:p>!aC&Ie+EY&s*t~>
+kPkV^nU]do"a.KDpAFourrCRI8d&=HWS@4@rrMh"o1B-pT$R!,jo5>:rCR5oEf[rur:^-jIe657
+E1G>Je,KDUo1B-pMS&*NhZ!WSA+<.pB7-K'o`"%RJ,~>
+kPkV^nY>2r"e*NupAFourrD$VJ-:+GWS@4@rrMkRnpgh6cgq(srrD6\J-C4=O1siUpAY,goRI$i
+SC-uXrrA,OJ-:%Q]BK4MrrN(]nULd]I&#0_roa<3~>
+k5PM[k=4M4"YQ&$o_\WtrrA\i!!GK:Y2K0LrrN(So)JmuLqMmIjo5<jr;["&I%o*^rq??lEqB>7
+:6irjrm^rJ+7fI87Z+hArSIPSL[b?J.rpT[jnn3?J,~>
+k5PM[k]l/\"_b%#o_\WtrrBY/8d&IOY2K0LrrN(so1B-[MnJ3Ljo5=CrCR6*I%o*^rq??lRe02T
+B9gU.rm^rJ@.Qtn@Z%e]rSIPSWpr[b=)s82jnn3?J,~>
+k5PM[l($gb"d6X`o_\WtrrCCDJ-:%HY2K0LrrN)6npgh$]]T+QrrB>&J-Bq?U=8c6pAY-&oRI'j
+Q-&OpeGfN0o7-seMS&*NhZ!SnnULdeEf@Tkqr[p/~>
+k5PP_q;O6k!!O-]eFE>4])MbXr;ZsmKs]q=o`"sU%eBZ&;Q&1@k5PJN#lXf-)KCYEjSSWM!1i`^
+"?MRZli,E6!$Ce4"@e9\kl'E=!RD&B!!WjDI\bE`roX62~>
+k5PP_q;Z;O8d/=ag%"k9])Mc)rCR3%Ks]q=o`"sY<:`]aDPu.\k5PJS;#X&j;K7T(jSSWM!4h_o
+"CI2*li,E6!+>Cj"Cd8#kl'E=!SpTC8d8%+I\bE`roX62~>
+k5PP_q;de#J-Cb7hXUC>])McErI>#mKs]q=o`"s]L@]otJu@8pk5PJVK`6K*HuY%RjSSWM!7(4e
+"F?*Eli,E6!0?`%"Eo[7kl'E=!U#.,J-LI?I\bE`roX62~>
+jo5G^pYS?t!!WX*Z0h8_rk8=3=T&4&=,OWRrUg*jr+Ya&"<*NDm/?,I!/pdU"\F!1cLCi+rrC15
+!!FU(\E<_=rr=/4!!GcK]BK4OrrM:.nc/jq:Nhr;kPF<?J,~>
+jo5G^pY^2R8d8%@_X7'prk8=3M#BpKBSsFcrUg*jr0-_E"B:W)m/?,I!3Q2l"^u\IcLCi+rrC^D
+8d&4O\E<_=rr?Hu8d&U\]BK4OrrMOtnO`soG*B`)qW7a-~>
+jo5G^pYhS#J-LV"c0b6&rk8=3XSmYPFGd]orUg*jr3GpE"FlZTm/?,I!6+ne"`ns[cLCi+rrD*O
+J-:7U\E<_=rrA,OJ-:%Q]BK4OrrM_SnULd_G*B`)qW7a-~>
+jSo>]p>/^*!!OX"g@G+=^]+9nr;Zt2Nkju[o`#!ldf]1A")b@#puq_Yq],S8"Uo7&ZJbNMrrDW^
+!!F!fYi,B-rr=/4!!GcK]BK4PrrM^JnGibPEepsSp&=(QJ,~>
+jSo>]p>:>W8d/[thX^OA^]+:RrCR3/Nkju[o`#!lhG!N5"+7?1puq_Yr*K@p"\rriZJbNMrrD`a
+8d&"CYi,B-rr?Hu8d&U\]BK4PrrMh3nOa!iEepsSp&=(QJ,~>
+jSo>]p>DP#J-CtCipusE^]+;(rI>#lNkju[o`#!ljb!)S",=&;puq_YrJpl-"b(BEZJbNMrrDid
+J-::PYi,B-rrA,OJ-:%Q]BK4PrrMqanULgdEepsSp&=(QJ,~>
+j8T8]p>U&nhuErc:Tj*Yr;OS5!#5A3"EK[Fmf)hX!W,O]!!G-KcLLnurrB+u!!PE,QH/Cko`"sk
+-M7?A"+@-%psf<D+7fI87Z+hArSmhXj!aEt"tFPCV9n]/jSs`~>
+j8T8]p>V6/i(=2KJ&(IFr;OS5!*K1l"EK[Fmf)hX!W.?;8d&LkcLLnurrC"98d/LDQH/Cko`"sk
+AG&Ot97<bmpsf<D@.Qtn@Z%e]rSmhXlXoZZ#$5_pV9n]/jSs`~>
+j8T8]p>W'&i.)#`U!;uur;OS5!/g`*"EK[Fmf)hX!W/Y_J-2=enc%eQ!7h$us)nL1a6iitrrN+^
+oRI$lW7q$rrrA,OJ-:%Q]BK4QrrMYSnULggDh=h4n,28HJ,~>
+ir9/\pZ.SOh>d^)K])IurPed:oDJXm%<Rr\o)A7\!WK_&!!EL[]&ihRrr>1\!!NI<JZIN!o)A\b
+oDeu+T@<J_rr=/4!!GcK]BK4RrrK_KnGib<D18(tlMBQ@J,~>
+ir9/\pZ/;QhF[r\U>tkArPed:pAISe:3;iHo)A7\!WL=78d%hD]&ihRrr@0?8d.k(JZIN!o)A]@
+oL]4+T@<J_rr?Hu8d&U\]BK4RrrLGMnOa!cDLS1ulMBQ@J,~>
+ir9/\pZ/f;hLGci\E*8XrPed:q>GgIIWUq#o)A7\!WLdCJ-1_@jnn<B!1s.>"E8pmg@t1<!2fC=
+"+-Zhp!j!AO7Rl)G)EoqrT!nYh2LlS#'k-9T#g3nj8XW~>
+iVs&[puoFNh#ITiD9q_HrQ"p<ci!hH)0h_#o^Vq^qCM4<"AP`Dp&=:W!6b<@"Y=_W_!:jgrr@67
+!!H2dbOPS^rr=/4!!GE?\`WhOrrM_0n,N\IDgn4ok5##:s*t~>
+iVs&[puoY3h+@iMP1K-trQ"p<h>KqK;L"b\o^Vq^qIoIm"Dajbp&=:W!8@BD"^#i._!:jgrrAY_
+8d&jpbOPS^rr?Hu8d&IV\`WhOrrMh]n4EpgDgn4ok5##:s*t~>
+iVs&[puoe]h1,Z`Y1rI@rQ"p<kP]o6H[)+0o^Vq^qNUT%"G*E#p&=:W!9O00"aG*N_!:jgrrBY&
+J-:1bbOPS^rrA,OJ-:+Q\`WhOrrMr)n:1aeDgn4ok5##:s*t~>
+i;Wu[qWuaU$Jb[c#%#OAq#/>7!3c>$"=&5ef(SY6!WAP[!!F%"_s@9err?=&!!QPSUt,,:o)A]d
+oDf"ZOMgGaec,Uknc/h9HIhZarosFaqk"ku!!i`qEe9n#jS/Z5s*t~>
+i;Wu[qWuaq:u+_I:5I?dq#/>7!64t0"BBcBf(SY6!WBIu8d&%T_s@9err@uU8d/mVUt,,:o)A^(
+oL]6qOMgGaec,VWnk''gOk91$rosFar4?;*8dJ*tEe9n#jS/Z5s*t~>
+i;Wu[qWub0K&(q\Ju72gq#/>7!8%1""F5<ff(SY6!WC14J-:@b_s@9errB5#J-Bq@Ut,,:o)A^;
+oRI'jOMgGaec,W1npgmqU=f&6rosFarQgMoJ-^XGEe9n#jS/Z5s*t~>
+hZ!`Uo%pZ;g].K^?-_m5rQG3@Mu<VY0RftTq!e:anJ:]r")+moq!A"]k61ba"W_T@]&rn[rrCI=
+!!Fg/]''%Brr=/1!!X3S]^Y^orpKdflAHnV!!jBGG)3!9k4el6s*t~>
+hZ!`Uo%poqge%`FLXbberQG3@Xo1ip=am=(q!e:ao3(ZW"*h$*q!A"]mS3[Q"]KE!]&rn[rrCpJ
+8d&:R]''%Brr?Hr8d8C[b4,3(rpKdfn>p-h8dJ:-G)3!9k4el6s*t~>
+hZ!`Uo%q*DgjfQ[V:b52rQG3@`Vk;iG^cUGq!e:aonr?k",*l6q!A"]o7Hsl"ab6I]&rn[rrD6S
+J-:4U]''%BrrA,LJ-Lh3eF<82rpKdfoYls^J-^L@G)3!9k4el6s*t~>
+h>[ZWpZTt`,hrA'$uO\eq>SY=!,2<2"?M+:htljB!W@H<!!FsDbjbW!rr@EE!!Q#@T$R!,nc&Xd
+"SD`t(50!Qqpk]H+70%7)dScMnbN(\rr2]m"THu<9*F_a#ms"=IZq"_lM:G;s*t~>
+h>[ZWpZTtq?JJ-V;N]c(q>SY=!0mFS"C6S]htljB!WA_`8d&IhbjbW!rrAel8d/[LT$R!,nc&Xe
+9_D!\;M;@8qpk]H@-pPm>`#`8o(i1]rr2]m"TIDfIn]?(#u+cHIZq"_lM:G;s*t~>
+h>[ZWpZTu)LtmLaKWEquq>SY=!4;]T"Eo@!htljB!WBY%J-:@jbjbW!rrBb2J-C">T$R!,nc&Xf
+K(XWsI>"ocqpk]HO6qH(MlF\OoD/:^rr2]m"TI]/V1S2e$%?u9IZq"_lM:G;s*t~>
+h#@TXqXE@]F;EX3"W<3Xo)&F4rr>Rf!!GcE[,_)QrrM$_oDf!sK"0n=mf*=^'`J(9%W7$-i;)mB
+!WFSA!!EISWS@3urr=/*!!`TO7UCD#R[X2E"+FiG&+0E)&j^D^N2+/Bn,!%@s*t~>
+h#@TXqXE@]N`Oq-"^7_^o)&F4rr@HF8d&RU[,_)QrrM:YoL]6ZL:H=Amf*=`=T1nr:2blni;)mB
+!WHa)8d%h:WS@3urr?Hk8dA%!HAeDs[^Q.D"/:s%<UNHd:g\3hN2+/Bn,!%@s*t~>
+h#@TXqXE@]TS2*N"c9\Jo)&F4rrAknJ-:"J[,_)QrrMJ=o7-q#\E*PTrrN"SrdY0$E/(^Wq=+Cb
+rfm)+"Fkm"g\B>!!0?Ap#_J/2XLc<lb00e."2;(4L[K["I!'IVN2+/Bn,!%@s*t~>
+gA_BUpZpGDA.IAp"?!RMpANA<!$qLC"B1,fkPalL!W6-m!!Gffeb&k0rrADa!!PH-QcSUnn,EAc
+oDeu/T[`Ybrr=.]!!t5jG_r*'dHC3#h>`!~>
+gA_BUpZpGEK2UJs"Dkm;pANA<!+Yt""D3J$kPalL!W7cF8d&h'eb&k0rrBJ*8d/LDQcSUnn,EB@
+oL]4-T[`Ybrr?HI8dSU9G_r*'dHC3#h>`!~>
+gA_BUpZpGFRY'=F"I$pjpANA<!0[;2"E]I2kPalL!W8thJ-:G!eb&k0rrC7@JH'cpQcSUnn,EBd
+oRI$jT[`YbrrA,#J-gF<G_r*'dHC3#h>`!~>
+g&D<Vr:K4%ZsO=!!!NREf^AS7df0:Mr;Zt/NPFcWn,EFfa7B96'9U/sr9sXc./j2M")!1dg\:.9
+!.shC"B:c4o)@5?!$Ce4!\Go/f)Q$Y.ri5UmeZq<s*t~>
+g&D<Vr:K4%[t%?38d.qNg$\\8df0;@rCR3.NPFcWn,EFfealB9;3A`\r9sXcB)YC+95K0\g\:.9
+!2fB\"DX=Jo)@5?!+>Cjs&]7qf1H9@?&-/JmeZq<s*t~>
+g&D<Vr:K4%\<qm(J-CP'g@"e9df0<!rI>#lNPFcWn,EFfht)@$J!%V5r9sXcPl6+8Dh5"Ep[8%]
+_"<-[HC2qIrmq)LO7Rl'GBn\hJ-LRk^=r#OrnRO(~>
+fDc*Tqt&mqZ=k!/!!FdZk4SZ%rrCgO!!I,#`9mQlrrN!Vo)Jl'Xk`^@rrBD(!!OopP/6G]mf*9h
+oDf"ZOi6Ydf)G^lo)Jt_FFe0r+9^j-":,u"5ofV!"W2O:o(i7?s*t~>
+fDc*Tqt&mq[=hQ98d&\=k4SZ%rrD3Z8d'*q`9mQlrrN"9o1B+.Xk`^@rrC1>8d/=<P/6G]mf*:*
+oL]6qOi6Ydf)G_Xo1B3pFFnpW=A7mM"AMfu@TE.p"^.;Lo(i7?s*t~>
+fDc*Tqt&mq[[;^'J-:nOk4SZ%rrDHaJ-9qU`9mQlrrN"co7-prXk`^@rrCaNJ-C1=P/6G]mf*:;
+oRI'jOi6Ydf)G`2o76j_"+uJeK'%RdIXHHeIeS?rLp>k.q>K.LJ,~>
+ec,mRqXNUl\8s"R!!E[eh!k3krrB\0!!NOIQ-/Uqmf*=eV"4Qh.@JBJrpg!g7/[)h>(*3sp&=CZ
+!7g]A"=oAAkl'*4!$Ce4%7Pf?[^N-%G$@?g+VbIZ!"98O,rS>#EdiXsO-3'-!!NdIf^S_8huA3~>
+ec,mRqXNUl\;FVL8d%t`h!k3krrC@C8d.n0Q-/Uqmf*=e]^n_u>+*S&rpg!gHMpG>B76T+p&=CZ
+!9*QB"BgVokl'*4!+>Cj%:Od[[^N-'KQV!8=&Mie8dnHm='fHTGCG1#O-=PV8d/+Tg[P%;huA3~>
+ec,mRqXNUl\=860J-:M/h!k3krrCmRJ-CFDQ-/Uqmf*=ecLZPhJ!nLKrpg!gUA]TGEIFY5p&=CZ
+!9s-+"FH$<kl'*4!0?`%$?grm[^N-'Nei@=rdXTk%"<VPH[0m_IY3H;P`>Be"bj&7nG3%?s*t~>
+e,K^QqXNXp]SSiUhZ*dcdd-`.fDbi;r;Zs2G+-bKm/I+Z)Y="4!dqH:qXXXdci!hI)0(SGjnnHF
+!WEAt!!F'jZJtc4rr=/4!"qbW[+OEmcGI#jU7.@/N.uLtF8U%iGCbC#LlIRcTW#**_T9cO#ke6%
+'7o05qYoIRJ,~>
+e,K^QqXNXp]U*D-hb"$(dd-`.fDbiYrCR2fG+-bKm/I+[>P(Mj98'b6qXXXdh>KqL;K7W+jnnHF
+!WGmf8d&%FZJtc4rr?Hu8ePTh[+OEmcGI#jU7.@/N/2t4I/J:%I=[$)LlIRcTW#**_T9ce:A.9`
+<hA=@qYoIRJ,~>
+e,K[PqXNXp]V18?J-;IllhUP3rrC7@J-::DRa:TlrrMkQo7-q"[c@5TrrD6\J-C:>Mn8$ImJd4d
+K_9iuI>"ocqptcIO7Rl7G)3NXj4_eq[]?-kQ&pr\L4k3WK)^B3K8#,@P*quAYdqWla/agcJ-C_7
+iplmEiW"E~>
+dJjLOqXWe!^nP'OhuEmGa6*0rf`(qrr;Zs=Gb<LYm/I+bJb&jE7&&-%rq$-i>l=X+8U6lPo)A%V
+!WF_E!!EISWS@4!rr=/4!"qbY]'&n`o'>Amf$DIU^:LbYYPPC4Z*h0Y`m*#fiTBLrmc()Uo`,+G
+ZKCiXir=N~>
+dJjLOqXWe!^nuHZi(=,kaQE9sf`(rDrCR2jGb<LYm/I+bV"71]B;3iHrq$-iMu?6O@<nEho)A%V
+!WHj,8d%h:WS@4!rr?Hu8ePTj]'&n`o'>Amf$DIU^:LbYYPPC4Z*h0Y`m*#fiTBLrmc(QPoh#?u
+^?5+dir=N~>
+dJjLOqXWe!^oEQMi.(roal`Btf`(rarI>#tGb<LYm/I+b^%-[UU=/]5oD\fnrI>&mH(E7OrpB^d
+rg*5-"Fkm"g\BA"!0?`%&pB/DkP=lClf?mQccO)=]!eoJqQ:@6[CX/nc.(M,k3VU*ikC0?J-:tR
+k4SZ3s*t~>
+ci4=Nqt97.aKp@Q"QBCa3PjeMrn7;O;uH\!-@DWApZqh[j9P;W":pO.l2:2R!TO=^!!NdJL9fb5
+li-rkoDeu,T[`Ycrr=/4!"qbY]BK4nrr2ikp@Ie?lK@9hi;;C=i8Wh\lL+69q"jpfrWDu]ZQAc>
+"U8r"meZqDs*t~>
+ci4=Nqt97.aKpt>9]AYIC;T'*rn7;OL&FUH<d^^qpZqh[l;.%E"Ak/pl2:2R!UEJZ8d.t-L9fb5
+li-sDoL]4,T[`Ycrr?Hu8ePTj]BK4nrr2ikp@Ie?lK@9hi;;C=i8Wh\lL+69q"jpfrWDu]^0L>'
+"\k-5meZqDs*t~>
+ci4:Mqt97.aKqCmiID&l_rUOjg&D&PrI>#rI&,Ehli."RKCjZsIuqJ1r:L!inUgaj"b(BEZJbQE
+rrB4oJ-11leFhDm!0?`%&pB/Ekl(P\rquTcoC2,3kN1a^qqhb=ioK:fmdg&GqY^?l"8V6&MY2K'
+JuIDkqYoRUJ,~>
+c2S+Lr:fX<d(PlG%c[Nl2nn;Frn@AP2#RCW0n-+Wq<S%]r*Jsp"'qt]p[nIcF8Z(B3Hg_/mJZAN
+!/gCK"B(W2nc%/?!$Ce4"@e9\kl(AXs8N&ss8;]h"oJ5rrVlflrr`/d_]SLN"?sffp\s:SJ,~>
+c2S+Lr:fX<d(Q/s;<(7OBu&a%rn@APDZ*01>(3I+q<S%]r/:/="*:Nsp[nIcSGc%`>]uFRmJZAN
+!3>`a"DO7Inc%/?!+>Cj"Cd8#kl(AXs8N&ss8;]h"oJ5rrVlflrr`/db$FX3"E;HFp\s:SJ,~>
+c2S+Lr:fX<d(Q<<K&_@aNPOQIrn@APRf.a>G^cXIq<S%]r2fL?",!Z.p[nIc\c%$^F`s(kmJZAN
+!6"M["F?HZnc%/?!0?`%"Eo[7kl(AXs8N&ss8;]h"oJ5rrVlflrr`/dc\qFG"I.*mp\s:SJ,~>
+b5VbGqXWk&`iNbjj8]<@^>ekcg]%6br;Zs]JZdr-li."b`:Es3-()dArV$6lmh#Hu"Tr7bX4m=5
+rrB=r!!GKI_sIBSrr=/4!!GcK]BK4Lrr`2h\eF]9"<t22o_mqPJ,~>
+b5VbGqXWk&`ianpj@TPh^Z+tdg]%7RrCR2uJZdr-li."bddp'6=d[:urV$6loMtl_"\WT\X4m=5
+rrC+38d&Ra_sIBSrr?Hu8d&U\]BK4Lrr`2h`E)V'"CA[uo_mqPJ,~>
+b5VbGqXWk&`itb^jF@Am^uG(eg]%80rI>#oJZdr-li."bhXc7#J!e=FrV$6lpPAcu"E/gkg@sn4
+!8$jn"F?0Im/GW:!0?`%"Eo[7kl'?;"8q]7L\-*"MSJ-BrT=-1~>
+aSuPFr:]L7c+%g=jT#EP_;tCjh>[K@qu?jgKXBh<lMgn^2"UbN!d_65qY'phO8T%^-?>3`l29iH
+!8d>J"=8o9kPa$4!$Ce4"@e9\kl'<:"8q_s$1n3#'qsFRr9+*1~>
+aSuPFr:]L7c+&X9j[oYp_;tCjh>[KFr(7*#KXBh<lMgn^DY$I&K!aP6pAY,srCR5oEfe*$r9F:^
+kO_@L=,FNOrR_&L@.Qtn@Z%e]rS7DTr:7^$oL]6eXk`LFkPp&~>
+aSuPFr:]L7c+'6tja[Jq_;tCjh>[KJr."omKXBh<lMgn^R.Gh1LpZ1<pAY-5rI>&rEfe*$r9F:^
+mdu#4I#5GtrR_&LO7Rl)G)EoqrS7DTr:8'aoRI'u[G:?NkPp&~>
+`W$2Aq!d=l]RM<k!!?`Lk5!j5!6b9?"B1,ekPXWF!WJY]!!GEWdI[A4rrN!6r;["$I&#3`rp'La
+rX8B!";?BkiVM1+!$Ce4"@e9\kl'99"8q_Z"7uQr&#@nLr9402~>
+`W$2Aq!d=l]TQXa8csU^k5!j5!8@?C"D3J#kPXWF!WKS"8d&[tdI[A4rrN%%rCR6)I&#3`rp'La
+r_iD]"Aj]SiVM1+!+>Cj"Cd8#kl'99"8q_p9_:p[;QSRBr9402~>
+`W$2Aq!d=l]V(&BJ-2(Tk5!j5!9O-/"E]I1kPXWF!WL:5J-2IloD\Ob!W@uUJ-Bq?UX\r8lMgna
+L@p'"I=e]^qUb`IO7Rl)G)EoqrS.>Sr:7[ToRI'sZJ"gHkl6/~>
+_uBu@qXWe!^OdTl!!E@Ub3Sr]rrAtp!!HSd^?Y[]rrMX&oDf"%N4nHQq#:>dr;[!:E/M0dqs"+]
+r\jEL"9NkHgA';"!$Ce4"@e9\kl'68!rVP*o)Jn2WnHtAl2Q8~>
+_uBu@qXWe!^Q_sd8d%eMb3Sr]rrBk48d&mf^?Y[]rrM^loL]6]NkOZSq#:?+rCR5jE/M0dqs"+]
+rc%L%"+7$#pt,NG@.Qtn@Z%e]rS%8Qr:#pA8d&8!g%,++s*t~>
+_uBu@qXWe!^S6JGJ-2@blhfQ=!7Ujr"ETO9lM]uI!VM9@J-:@^^$,ChrrCCDJ-C=>MR_aEl2Le`
+Re2+4I](opfDbi3o7-seMS&*NgA_6Pn?2A5"GO/7o)7hQJ,~>
+_>ac>qt0+(^ip[\!!Eq.dd[4mrr@iP!!Hnq_sIBerrN(=o)JkpWS."?rr=bO!!P]6S':C$kl1Wp
+oDeu&T$m8_rr=/4!!GcK]BK4HrrW)b4nAXV.^\"(rp'N6~>
+_>ac>qt0+(^lDL\8d&(gdd[4mrrB(s8d'$n_sIBerrN(do1B+(WS."?rr?m68d/OGS':C$kl1XG
+oL]4)T$m8_rr?Hu8d&U\]BK4HrrW)bF7W!,@("e_rp'N6~>
+_>ac>qt0+(^n?DGJ-:J%dd[4mrrBt7J-9tU_sIBerrN),o7-ppWS."?rrAGbJ-C%>S':C$kl1Xg
+oRI$jT$m8_rrA,OJ-:%Q]BK4HrrW)bRe)%4Lpl+3rp'N6~>
+^]+Q<r:T:)]OqT:!!GKkh"La*rr?U-!!IA-aRB,lrrC^C!!FI2a6ij%rrBD(!!NRBKWs>.kPkOB
+oDf"fQHAXqf`(pno)Jn_MS&*Nf`)$LcjfRH"Albjq#9UZJ,~>
+^]+Q<r:T:)]nK8I8d&k6h"La*rrA2Z8d'4"aRB,lrrD$L8d&4]a6ij%rrC1>8d.n*KWs>.kPkOb
+oL]7!QHAXqf`(qZo1B-pMS&*Nf`)$LfMhB6"E_<9q#9UZJ,~>
+^]+Q<r:T:)^70`>J-:\6h"La*rrBA&J-9qXaRB,lrrD9SJ-:@fa6ij%rrCaNJ-CF@KWs>.kPkP%
+oRI'jQHAXqf`(r4o7-seMS&*Nf`)$LhM(QO"HL.Sq#9UZJ,~>
+^&J<9r:K4&Y!D:Q"9O%gkka6;!'pJ_":B7<bjsrs!W5=V!!@;Ji;*6L!'pJ_"Yb%_`U*QdrrBJ!
+!!G0>_!D!Prr=/4!!GcK]BK4GrrW2pN:R#P!e\MXqs494~>
+^&J<9r:K4&Zu>8&"A=Wgkka6;!-eB6"AO!*bjsrs!W7678csOJi;*6L!-eB6"^,r3`U*QdrrC46
+8d&I\_!D!Prr?Hu8d&U\]BK4GrrW2pWq/gc99@0Yqs494~>
+^&J<9r:K4&\<6',"-gXcqV_ART`'BDIWUt$o&p#Rr1NY3",F2?q>1*kT`'BEG'&tfm/?,I!87!p
+"FH0Eli,Q:!0?`%"Eo[7kl'06!rhu0npgh1`p3Hes*t~>
+]Di*7qt&moL_B%S"=g4qo)@VJ!$(q;";#dIdIcW%!WK1l!!G?Sd.726rrC+;!!QVVVqC_BkPkPH
+oDf"<LUQ=Bf`(pno)Jn_MS&*NfDbpOn1+#0"<aVko)7qTJ,~>
+]Di*7qt&moS5eiI"C7hOo)@VJ!+#Oq"Aa63dIcW%!WKt-8d&Upd.726rrC[K8d/jVVqC_BkPkPN
+oL]6eLUQ=Bf`(qZo1B-pMS&*NfDbpOnRqGc"BhYOo)7qTJ,~>
+]Di*7qt&moWeB_h"G3Gto)@VJ!07#."FYKadIcW%!WLO<J-2Cio)ARe!9=!-"`Spgf_5=-rrDZ_
+J-:7T[cRG>rrA,OJ-:%Q]BK4FrrW2jPOj;-Ju@)grTsQ7~>
+\c2j4qXE@Q46uqLHF`,5ir9#Uqu?j<H(`[\k5PJU)Y="4$&H7Wqu$Ho;#L@t*c[.OkPOEA!WEc*
+!!EXZXl'!-rr=/4!!GcK]BK4ErrN%nnc/c%\)R5Ms*t~>
+\c2j4qXE@UD<sjsKXp1?ir9#Vr(7)iH(`[\k5PJV>kCVk:5cdJqu$HoK)J:F;fRc/kPOEA!WH0n
+8d%k=Xl'!-rr?Hu8d&U\]BK4ErrN&0nk'"1\)R5Ms*t~>
+\c2j4qXE@YOmIT#N4J$Gir9#Wr."osH(`[\k5PJWN:_W'IuM&'qu$HoW;V5MH?"nVkPOEA!WIrK
+J-:=OXl'!-rrA,OJ-:%Q]BK4ErrN&Anpgh$\)R5Ms*t~>
+\,QX1pZg7G!q$$k3hb!mro="YfDGUO-%)N@pZDJVrHe&8"&c)MpAP!kg\_$T89pfRo)@eO!WG:T
+!!@8;fCmks!$Ce4"@e9\kl''3!V@E(!!F./bO5>rs*t~>
+\,QX1pZg7g9^YLUA"h?Aro="Yj8;LP<d^^qpZDJVrL`[R")b'ipAP!kk57gT@!S?jo)@eO!WI66
+8cs=6fCmks!+>Cj"Cd8#kl''3!VKdj8d&+`bO5>rs*t~>
+\,QU0pZg8(m=5=jU!iN2j8T,Fr."oqI&,Ehk5PJ\](:FSJuI>qrVllbr."rkH(NCRroX4]rgrb4
+"+6orp=TBFO7Rl)G)EoqrRLoKp5SWn".[R&rU'W8~>
+mJd4QqYpK?rrrE!o&#]Bmf3J"NkOZSj8T+gqu?jNI];)tjo5A:"S;Zs)O/5-rVlfs?i9s.$>bI'
+iVDR7!,D-+"BLu:o)@>B!$Ce4"@e9\kl''3!W@<7!!@#BhtZU=J,~>
+mJd4Wr;Q]ArrrE!o&$BDmn*^YNkOZSj8T,'r(7)oI];)tjo5AB9_:p[<0YAgrVlfsNr;QR9l>]l
+iVDR7!0m+J"DjOPo)@>B!+>Cj"Cd8#kl''3!WAV\8csIHhtZU=J,~>
+mJd4[r;Q]ArrrE!o&$m/mskOjNkOZSj8T,6r."opI];)tjo5AHK(OQrJ!@q=rVlfsYPitTIVsnH
+iVDR7!4;BK"FHT_o)@>B!0?`%"Eo[7kl''3!WBV#J-1V5htZU=J,~>
+n,EUdIh7t8oD6`3"TA)XY8cp1"(nRepZ)8RQi$gd2h8'gqW7_Xr'^,V#B6p)q#CBW"T8<(20G5*
+mJZ,G!0QmR"@/-hmf(o>!$Ce4"@e9\kl'$2!6t'7">H@jnG_kUJ,~>
+n,EUfUfFbioD6`3"TA)X\m"Pp"*U]upZ)8R[JWW">_'!7qW7_Xr-@m+#CNc5q#CB^:&RZf>'6.O
+mJZ,G!3l)f"CdP5mf(o>!+>Cj"Cd8#kl'$2!8@!9"C@VCnG_kUJ,~>
+n,EUh^PKr!oD6`3"TA)X_hmi4"+mQ,pZ)8RbPZknGCZjRqW7_Xr1NY3#DTJ?q#CBcK)L6"FT[rM
+mJZ,G!6Fe_"FH<Nmf(o>!0?`%"Eo[7kl'$2!9<U"".[X*rpKf:~>
+n,EX9!!!tXg$nparri>tm(a\3!!GTUbjk\nrr@0=!!GQ>ZJtcCrrN+qo)JtOSBg[(s)7i9"Ti+_
+WnR1,rrC%1!!F^-]]f=Irr=/4!!GcK]BK4CrrN$5o)JmtL:QFCmf.e~>
+n,EXH8kN@1g$nparri>tm)WK%8d&[mbjk\nrrASe8d&LRZJtcCrrN,4o1B3oSBg[(s-`dW"DNCd
+g@jS,!7g^6"B^Pokl'37!+>Cj"Cd8#kl'$2!W6-m8d%hD\`N_Vs*t~>
+n,EXSJ:NR#g$nparri>tm*1FWJ-::gbjk\nrrBY.J-:%JZJtcCrrN,Fnpgn6cLLo6\,:aZDh+kA
+p>c/QiUhX'I#>T#rRq2NO7Rl)G)EoqrRCiJr/1&q",aYNqsOK7~>
+n,E[i#QOj,[bUTUbl7eBnAQL>!!FL)^?GLUrr?!q!!G`F[cRGJrrMg/oDf("Kt?FDmg/jl"WqcF
+^?GLTrrDKZ!!EsfZJkZ5rr=/4!!GcK]BK4CrrN*rnc/buVUtP0s*t~>
+n,E[k:J+6*[bUTUbl7eBnB>5/8d&1R^?GLUrr@cN8d&RW[cRGJrrMjsoL]<]Lq;aGoMGKY"]TN&
+^?GLTrrDW^8d%tCZJkZ5rr?Hu8d&U\]BK4CrrN+Nnk'")VUtP0s*t~>
+n,E[kKReT;[bUTUbl7eBnBm3bJ-:7Y^?GLUrrB(sJ-:%M[cRGJrrMnPo7."&]&rnaK`-E)H?,%[
+kksK@!;?&8"FYp.iVM7-!0?`%"Eo[7kl'$2!WK"eJ-)V"p?qs2~>
+n,E[m4obQgMSn]VbPq\Bo#)44!!ERZYi,B=rr=kQ!!H5W]'0+RrrN(9o)JnfVUkEiqu?moHD&^X
+ro="ZrYP2,"*g`tpt>ZI+7fI87Z+hArR:cHII[@@3L7bTrpTl;~>
+n,E[mG"PA%Oi-G]bPq\Bo#t/*8d%k?Yi,B=rr?s78d&a_]'0+RrrN(ao1B.$VUkF9r(7-%HD&^X
+ro="Zr`\qd"+-s"pt>ZI@.Qtn@Z%e]rR:cHU@LnZ@$\n&rpTl;~>
+n,EFfT)O6BQG_tbbPq\Bo$W<aJ-:@RYi,B=rrAMcJ-9tN]'0+RrrN)*o7-spVUkFTr."rkHD&^X
+ro="ZrepE!"+I0%pt>ZIO7Rl)G)EoqrR:cH^%-[VI?qtCrpTl;~>
+mf*90rW!'WW7LV?bPq\Bo;Vo`!!@>=f_=J,!"f&."B^VslM]cC!7CB<";d9>i"5he"Uf1&[,Ur@
+rr>O\!!?MtdIc,l!$Ce4"@e9\kl'!1!1iZ\"<!*.kPXfKJ,~>
+mf*9Wr^m<&W7LV?bPq\Bo=Rcf8cs@7f_=J,!*/qh"DEb.lM]cC!8R0<"B1N%j&Q%M"\rrj[,Ur@
+rr@E<8crt%dIc,l!+>Cj"Cd8#kl'!1!4hYm"B12hkPXfKJ,~>
+mf*9trdY-(W7LV?bPq\Bo>lLRJ-11pf_=J,!/UQ'"E]U:lM]cC!9Ng&"FlWQk(rtd"b(BF[,Ur@
+rrAecJ-1.hdIc,l!0?`%"Eo[7kl'!1!6t(b"FZ0=kPXfKJ,~>
+mf*9kr;Zq@]]K"4rrW,hB(>p(@%5O8jo5>LqZ$b0O2C8_j8T/X2"L\KBWl^Z!!P6'QcSUniVrmu
+oDf"]PfW=mgA_-po)Jn_MS&*Ne,KEZnc/dpJ?@](n,In~>
+mf*:,rCR0E]]K"4rrW,hNq,dEDk#,Gjo5>Qqaq!-O2C8_j8T/XDY$I%H*<\78d/CAQcSUniVrnH
+oL]6rPfW=mgA_.\o1B-pMS&*Ne,KEmnk'$XJ?@](n,In~>
+mf*:<rI>!2]]K"4rrW,hXR^lDHCN:Rjo5>Tqg\fkO2C8_j8T/XR.Gh0Ks.cZJ-C(=QcSUniVrnf
+oRI'kPfW=mgA_/6o7-seMS&*Ne,KF'n:1SBhYHX?J,~>
+mf*:Rr;Zs>T$Qp)b5VP@j;%7d"B(K*nG_SM!6b6>"DEt<mf)8H!WJDV!!4j?')_e6!b$VZg@sP*
+!1i`^"=f>Cl2B?9!$Ce4"@e9\kl'!1!5@t'")+CYp$_p2~>
+mf*:WrCR2nT[3-+b5VP@k?.=J"DF%@nG_SM!8@<B"E0ICmf)8H!WKCr8ci=d<r>PmBn35;pYc&O
+\b&Js=c9uXrS%8O@.Qtn@Z%e]rR:cHd.'^1F.q.Wn,In~>
+mf*:ZrI>$%T[3-+b5VP@lA>+_"F-0PnG_SM!9O*."E]gHmf)8H!WL12J,u*nr."ogJ?%>ti;Wf&
+oRI'lMnSBRgA_/6o7-seMS&*Ne,KF)nUL^hU"/i)s*t~>
+mf*=e-N*oI:p]$RrlY6AqM"M@"A"Tjm/H/I!3>ts"ETjNnG_GI!UU-a!!*3jqu?mBEfRp!r8@ST
+an,Q9'83[NqqD&M+7fI87Z+hArR:cH^@;1+<1(o"rp]r<~>
+mf*=eAGo+'EO4NsrlY6AqPNjV"D!S1m/H/I!5n\+"ETjNnG_GI!UrnW8c_Rur(7,lEfRp!r8@ST
+f^qc=:kZ.6qqD&M@.Qtn@Z%e]rR:cHdIBg3C7*68rp]r<~>
+mf*=eP5Tn6LpPt5rlY6AqRuKN"F-!Em/H/I!7gss"ETjNnG_GI!V:s8J,k3!J-C7>NkaiVi;Wf;
+oRI'mKX0V7gA_/6o7-seMS&*Ne,KF)nULagR*>+"nGe"~>
+mJd/pr;Zs)M8niYb5VPBjp1MY"@nEblM]lF!/paT"9N\3bjs`m!W?*k!!!)u!!Q&BT[NH2i;WfJ
+o)Jl;W7q%#rr=/4!!GcK]BK4BrrBe'!!G`P`9mQns*t~>
+mJd0HrCR2dP/cebb5VPBlVI.F"CmD)lM]lF!3Q,j"*BmRo&9TLrJ0u:!)*5^"_)eNde!IrrrD``
+8csI>gA'D%!+>Cj"Cd8#kl'!1!7C=/"CmP3mJcVTJ,~>
+mJd0ir."m9`p3KErrW2fKCjZsGDs9$rT=+[`VY/fFI15BiVrrWWU53>EdFD,oD[\J!;Q/9"+I3&
+ptG`JO7Rl)G)EoqrR:cHhXQ+!H'#u3rp]r<~>
+mJd0Rqu?jKW7CM=b5VM?:\4Vi6]/P?rT=+[B`%i5%<e2eo\ofNrjD.o"Uf1&[,Ur>rrN*CoDeu!
+T$d2arr=/4!!GcK]BK4BrrB(h!!G?@]]oCas*t~>
+mJd0or(7)tW7CM=b5VM?Jb2P;@>__]rT=+[Pl+,V:3N)Qo\ofNrlOS#"\rrj[,Ur>rrN+.oL]4'
+T$d2arr?Hu8d&U\]BK4BrrBt,8d&IY]]oCas*t~>
+mJd1/r."p'W7CM=b5VM?V=]9@GDa&srT=+[[/>FWIWh1,o\ofNrn$Rg"b(BF[,Ur>rrN+\oRI$j
+T$d2arrA,OJ-:%Q]BK4BrrCU>J-:1V]]oCas*t~>
+mJd19qZ$_.]&NP.rrN+foDf"[M7VpLk5PEOqu?j/GFd1Si;WiS)XdY020P>-meu#B!)E.d"@89m
+mf(u@!$Ce4"@e9\kl'!1!1r]\">GS>k5=`KJ,~>
+mJd1Eqaps<]&NP.rrN,-oL]6oM7VpLk5PF/r(7)eGFd1Si;WiS>jk8g>'?7Rmeu#B!.jc7"Cm\:
+mf(u@!+>Cj"Cd8#kl'!1!4q\m"BpPhk5=`KJ,~>
+mJd1Mqg\d.]&NP.rrN,AoRI'hM7VpLk5PFWr."p!GFd1Si;WiSN:29#F`s+mmeu#B!2fC="FHBR
+mf(u@!0?`%"Eo[7kl'!1!711c"F>g3k5=`KJ,~>
+mJd4c&,ZD1$BiR!r6#$>f^o.H7YnY>r9""Z./X&J&p^,!p#,iNrc@N."CH\Zg@sG'!.+8;"=B&>
+kl'99!$Ce4"@e9\kl'!1!.aS>"=f)2j8AEHJ,~>
+mJd4c<;]>k:702kr6#$>iq,hG@YhVZr9""ZB)G7(:jJ\_p#,iNrgN:J"DE=cg@sG'!2/sV"BUMo
+kl'99!+>Cj"Cd8#kl'!1!2T-W"B^>`j8AEHJ,~>
+mJd4cL\lT(SBC6sb5VJ,oRI'fLq;gJk5PFGr."otH(WUZi;WiW\*nhMDh+kApYGiL]_$^WI#GZ$
+rS.>PO7Rl)G)EoqrR:cH_!upXHA&Wbr:'`:~>
+mJd4d9)ASk0<Egurlb<Br<r8u"@e6Zkl'ZD!!N3""<)T\f(S#$!6t!5"Wh]E^?GLNrrAbb!!Ejc
+Z/PQ6rr=/4!!GcK]BK4Brr?U"!!Fa&YMf9Hs*t~>
+mJd4dIeu_?@'&#Qrlb<BrDN;\"Cd5!kl'ZD!)3;_"B'Q?f(S#$!8?p7"]KH%^?GLNrrB_(8d%qB
+Z/PQ6rr?Hu8d&U\]BK4BrrA2O8d&7JYMf9Hs*t~>
+mJd4dV#,ZFKrir!rlb<BrIsop"EoX5kl'ZD!.t-!"FGHhf(S#$!9<R!"aY3L^?GLNrrCC;J-:=R
+Z/PQ6rrA,OJ-:%Q]BK4BrrB@pJ-:1MYMf9Hs*t~>
+m/I':q>^V,]]An3rrN*Ko`,+kMS/0OkPkPBqZ$a<H_f<ghu<`T/b&fE8:$oUoD[SG!5\7,"*CEn
+pY5]J+7fI87Z+hArR:cH3:QtO.=eSYqXFN8~>
+m/I'^qFUj;]]An3rrN+4oh#?uMS/0OkPkPJqapuhH_f<ghu<`TC%4e!@!\HmoD[SG!7UO3"*pcs
+pY5]J@.Qtn@Z%e]rR:cHEUcX(=FdR3qXFN8~>
+m/I(#qLA[.]]An3rrN+`omd0fMS/0OkPkPPqge]n!i4KChu<`TQ19A.EdFA*oD[SG!8mBu"+I-#
+pY5]JO7Rl)G)EoqrR:cHSFM+4H@W0UqXFN8~>
+m/I'qq>^X(N6:MbbPqQ+o`,,"N5"TUkPkOoqZ$a<I&>Tlhu<`VMXg`N#]#1$iVM@0!8d;I"BM&>
+oD[PF!$Ce4"@e9\kl'!1!"AAt"=\l(htljBJ,~>
+m/I(0qFUlcQ-/IkbPqQcoh#@$N5"TUkPkP-qapuhI&>Tlhu<`VX7Ajd9PoNjiVM@0!9`rG"DjUT
+oD[PF!+>Cj"Cd8#kl'!1!)i>Z"B^2WhtljBJ,~>
+m/I(>q1&R;b3]&LrrAY`J-9tQ^?Y[[rrCmPJ-:4HVV1b%rrN,9npgmmDhbUWqV;)Nmdkr3I%8RT
+rnRMRO7Rl)G)EoqrR:cHL@KcsH@W0UqXFN8~>
+m/I(Uq#COAW7LS>bl7Z0o`,,0OMgGakPkOKqZ$a<I&>WmhZ!W5"S2Ts/p*AumJYi?!<2Qi"?DXa
+mf)#A!$Ce4"@e9\kl'$2!71-7">k\4i;2sCJ,~>
+m/I(Xq+:cnWn-e@bl7Zgoh#@*OMgGakPkOiqapuhI&>WmhZ!W=9_1j[=EKhJmJYi?!<2R^"CRD3
+mf)#A!+>Cj"Cd8#kl'$2!8[-:"C$G[i;2sCJ,~>
+m/I([q1&U$Wn-e@bl7[:omd0cOMgGakPkP*qge]o!iF]HhZ!WCK(FKrGBB+imJYi?!<2S?"FQBO
+mf)#A!0?`%"Eo[7kl'$2!9`j%"F,L#i;2sCJ,~>
+m/I+c0)5JM7(D1LrltHC6hUK`$?VQTnG_VN!-%f8"<2`cgA'P)!W>:T!!HDQVqC^trrN*)oDf":
+M7VjIh#@?no)Jn_MS&*NeGfN0n,NSRK!=83nGe"~>
+m/I+cCACI)Cq/EtrltHCH1ji69luZBnG_VN!1E^V"B'WEgA'P)!W@358d&aTVqC^trrN*poL]6e
+M7VjIh#@@[o1B-pMS&*NeGfNQn4EgiK!=83nGe"~>
+m/I+cQMH%6MR_U=rltHCU%X!?IWUjsnG_VN!4_oVs*OmFgA'P)!WAV]J-9h?VqC^trrN+PoRI'l
+M7VjIh#@A6o7-seMS&*NeGfNhn:1XbK!=83nGe"~>
+li-rrp](D-_WL^>rr>:W!!FEgSC$ojrr>ai!!F-dVV:h%rrN+foDf%/E/V?jqqD&M+7oO9#D0,9
+qV;,A!!GcK]BK4Crr>IV!!GoJ[H.8Ts*t~>
+li-sIpdtX=_WL^>rr@698d&+;SC$ojrr@TH8d&%>VV:h%rrN,-oL]9`E/V?jqqD&M@.[%o9S0G)
+qV;,A8d&U\]BK4Crr@B78d&UW[H.8Ts*t~>
+li-sipj`I1_WL^>rrA\bJ-:1BSC$ojrrAqnJH'uuVV:h%rrN,AoRI*mE/V?jqqD&MO7[r*ItFi\
+qV;,AJ-:%Q]BK4CrrAe_J-9tJ[H.8Ts*t~>
+li-sQp](F$KZi`ZcMml#p&G4TI&,Ehk5PE,qZ$a/I&5Kih>[ND#PA'#4F!@?nc%8B!$Ce4")"C[
+p>#]=!!GcK]BK4DrrMEgn,NSrMS&*NnGe"~>
+li-snpdtZ`PKW=icMml^p.>HmI&,Ehk5PEkqapudI&5Kih>[NH:\@<`?$Mj`nc%8B!+>Cj"*:6g
+p>#]=8d&U\]BK4DrrMXan4EgtMS&*NnGe"~>
+li-t.pOE@;bO#,OrrAJ\J-:%CUtGG(rrA5ZJ-:=KV:bOurrMbEomd3fGaltJrn@APO7Rl(IA>Be
+h#Hqq"Eo[7kl''3!VM'6J-9nM]BK4_s*t~>
+li-t3pAb=+RFC['ci3t]p&G4qK!=20kPkPVq>^X*HD9!ah>[NS9_JGi!bHtdh>#\'!%7@<"A,!(
+nc%AEnc/e^MS&*Nec,W-n,NUqEKA$(rp]r<~>
+li-t@pIYQcU!rN/ci3uKp.>I"K!=20kPkPXqFUlbHD9!ah>[NSJ+ZD:C4`VEpt>ZIAb/LsAsgd3
+rn[VF8d&U\]BK4DrrB1j8d.n.O2L>`nGe"~>
+li-tIpOEBuVpk/5ci4!(p4*9cK!=20kPkPZqLA]tHD9!ah>[NSV"K6@Dh>.Jpt>ZIPOj;-I$i+I
+rn[VFJ-:%Q]BK4DrrC%-J-CFBO2L>`nGe"~>
+li."a&,-&,(oGsVrR(WFn+H_b#]Pa9kksWD!71H@"*gHfp"fWKrhfAh"WqcH_<V!Prr>7S!!Fp7
+_!CsUrrCsI!!GcK]BK4ErrN!Bn,NV6FdUDCrp]r<~>
+li."a<;/uf<iamDrR(WFo_(l\9Q5s(kksWD!8[HC"*gHfp"fWKrkA(u"]TN(_<V!Prr@668d&@Y
+_!CsUrrD9R8d&U\]BK4ErrN%-n4Ej`FdUDCrp]r<~>
+li."aL\H<%KW`turR(WFp\'+@IW17ZkksWD!9a0."*gHfp"fWKrm:@h"aY3N_<V!PrrAY^J-:7[
+_!CsUrrDNYJ-:%Q]BK4ErrN(]n:1[gFdUDCrp]r<~>
+li."b6M:B^,d,qprmLfH\+Te*/p<W*nG_VN!2oVm")==Po\BHIo*b9m"\*g3de*Olrr>:T!!Emf
+[,_&?rrCdD!!GcK]BK4ErrA\[!!GT8Ut>>/s*t~>
+li."bGkO`4?Er;XrmLfHbk=X4=E^(TnG_VN!5SD&"*0mXo\BHIohtNV"^lYMde*Olrr@668d%tE
+[,_&?rrD0O8d&U\]BK4ErrB\"8d&IJUt>>/s*t~>
+li."bT_<m=LU>k/rmLfHg\-.$GBT@snG_VN!7Uao"*g<^o\BHIpP&?l"`ep_de*OlrrA\_J-:=T
+[,_&?rrDEVJ-:%Q]BK4ErrCC6J-9tAUt>>/s*t~>
+lMgj0o`,+AZJP9Re,KDhp&G5!J#M)pk5PF+q#CP&Qd#"!h>[NS=SMk""`&k!iVM4,!'g#S")k*k
+pYPoM^[_@-7Z+hArR_&MpE8r*"TrCkZJt`Ls*t~>
+lMgjVoh#?n[bg]Ve,KE<p.>I"J#M)pk5PFRq+:d+Qd#"!h>[NSL\OIF9PoNjiVM4,!-[p*"*g`t
+pYPoMddg!5@Z%e]rR_&Mq-`\a"\WZcZJt`Ls*t~>
+lMgjromd1$\DHoXe,KEYp4*9bJ#M)pk5PFoq1&TmQd#"!h>[NSWq_)JIrC(JiVM4,!2&h4"+R6&
+pYPoMhsu:#G)EoqrR_&MqiL;t"b1HEZJt`Ls*t~>
+lMgjcoDf"@[,:QUeGfLgpAb@8EK%Qmr9""Z8GN5g8Wq*]rnRMRWqZPt.WgopmJY];!&*mC"A,*.
+o)@PH!3>Yj"@e9\kl'-5!-@T/"Y"PW`9dHks*t~>
+lMgk&oL]6n\)6lXeGfMTpIYTeEK%Qmr9""ZI/-A;AWk($rnRMR_>$V+=*0\HmJY];!,M-t"D=4L
+o)@PH!5nA""Cd8#kl'-5!1`LM"]of0`9dHks*t~>
+lMgk7oRI(#]&32[eGfN/pOEEoEK%Qmr9""ZV"oNDH'628rnRMRdeJ=rG]]1imJY];!138,"FZcb
+o)@PH!7gXj"Eo[7kl'-5!4hQK"aG-Q`9dHks*t~>
+lMgkCo)Jn?[,:QUf)G`Rp&G7mH(N@Qroa:^o*G-l">c"NlM]N<!V6]p!!H)GV:P@lrr<l+!!FI+
+_!:mUrr@uJ!!GcK]BK4GrrL"?n,NXo?%/X$p&=F[J,~>
+lMgkKo1B-m\)6lXf)G`ip.>KuH(N@Qroa:^p/(QW"C-o"lM]N<!VK@d8d&XPV:P@lrr?6n8d&1U
+_!:mUrrB1l8d&U\]BK4GrrLVDmn*asI\kWgrpTl;~>
+lMgkQo7-t"]&32[f)Ga%p4*<dH(N@Qroa:^q1SQo"FH*AlM]N<!V_<DJ-9k?V:P@lrrA#KJ-::]
+_!:mUrrC%/J-:%Q]BK4GrrM)1mskR[I\kWgrpTl;~>
+lMgna'Cu2,,cokprR_&L0_YPN+E3.FiVDX9!1W``";Za"jS[g5!WH3t!!N^ILpuIBf`(sCnGi[p
+I^.i-hu<[enc/e^MS&*Ng&D*9)".G.13/Dfk54THJ,~>
+lMgna=7]#e?F&G[rR_&LD"gO*<,dZ%iVDX9!4_er"B'u^jS[g5!WIlN8d.q-LpuIBf`(sFnO`pW
+J[+/0hu<\<nk'$oMS&*Ng&D*@>OP/f=`TP8k54THJ,~>
+lMgnaM=Z6#Lq)=6rR_&LR.l+7H>n\KiVDX9!6t:h"FZ$4jS[g5!WK+qJ-CC@LpuIBf`(sIn:1Uo
+Z/GK9rrB@qJ-:%Q]BK4HrrM_MmskRbEfRfpqsOK7~>
+lMgna9(Drb'qO.Nr7V)MS+cme"(-AGcLCeqrrMj>pAb;9Wn[='rrB(q!!OutQc\^qf`(rdn,NSg
+U"&`6i;Wd2nc/e^MS&*NgA_3:..7-?&o3#peFW\-s*t~>
+lMgnaIe$)6<iXsGr7V)M\G&T"95&XCcLCeqrrMq*pIYO6Wn[='rrBn38d/=>Qc\^qf`(s"n4Eh"
+U"&`6i;Wdnnk'$oMS&*NgA_3AB(&=r:i1`[eFW\-s*t~>
+lMgnaV"0$=KsTS*r7V)Mc1c_mIrBY)cLCeqrrN"[p4*4Eg\BP'!7L^o"a>*Uam]5]rrCsGJ-:@q
+eF`aurrAGWJ-:%Q]BK4IrrM_UmskUiDh+_7oD\1XJ,~>
+l2La,nGi^uJ_0AernRMSh[oM^"Zg^a]&WVKrr@E>!!G][cgq(jrrM^!qZ$atI]1omfDbhhn,NS8
+P/Q_ciVro@nGi\]MS&*Ng]%<;..7-?"^-)9_s%!bs*t~>
+l2LaSnO`s[R+Lg'rnRMSkZ.@L"^H,.]&WVKrrAee8d&arcgq(jrrMdjqaq!%I]1omfDbi=n4Egb
+P/Q_ciVroGnO`pnMS&*Ng]%<BB(&=r9P/O8_s%!bs*t~>
+l2LapnULdpWn6_9rnRMSmtg^g"a"gF]&WVKrrBb+J-:=kcgq(jrrMkJqg\fhI]1omfDbi[n:1Xj
+P/Q_ciVroLnULacMS&*Ng]%<GPja,,IrBRt_s%!bs*t~>
+l2La_mf3Jfc0G*'hZ!WJ0_YPO*cHY/eare'rrKG/p&G4'MSA<Ph#@ES=Sr.&$ZM!7k53g2!V[H"
+!!@,Di;)@3!0cpQ"@e6[kl'<:!RDnW!!`QtFH!Zbp\sR[J,~>
+l2Lb"mn*_0cKb3(hZ!WMD"gO+;f@8deare'rrL59p.>H_N5"NRh#@ESL\saJ:2l*%k53g2!Vosg
+8csIGi;)@3!4),e"Cd5"kl'<:!Sq/O8d8^GN4.U;rpB`9~>
+l2Lb4mskP/cg(<)hZ!WPR.l+8H>eD6eare'rrLf)p4*9qNkX`Th#@ESWr.ANIW11Uk53g2!W.iE
+J-1P2i;)@3!6Ob]"EoX6kl'<:!U#R4J-L%9N4.U;rpB`9~>
+l2Lb6mJmA6WoNaLi;WiL48/^Z%qL$Wa6WWcrrL"GoDf"aWS$qDh#@ASqu?mQG*pGArn.5NL[G-F
+*1G+@rSmhW/F`]C'md=Lqq_8QP76jZ#!?p\XOZn?m/MS~>
+l2LbAmRdUg[c@#Xi;WiOFSAB3:25-Ga6WWcrrLVIoL]7$WS$qDh#@Ajr(7,pG*pGArn.5NWpWI^
+<h.D'rSmhWC%4du;1c7;qq_8QZ;U*_#$c2'XOZn?m/MS~>
+l2LbJmXPFt^Z4tai;WiRSbIX=I;XD%a6WWcrrM)5oRI'sWS$qDh#@B&r."rpG*pGArn.5N_sMsV
+SBUL$ir9"EnULajLUQ:@h>[MtL@0QrFE3,;eai\*s*t~>
+l2Le`$gmuu"_lNTq>TFS!TQ$2!!`j8GE]]"q#9LW!P8d3!!EFP_<CdOrrM^!r;Zt!I]1upf`)!$%
+.+#t8@.1IroF(ZU[J0d%rThaqYoIR!Rj:$!!`QjEJ147mJQ;MJ,~>
+l2Le`;XR-\9oRZkq>TFS!UF[u8dA('GE]]"q#9LW!RF[88d%hE_<CdOrrMdjrCR3'I]1upf`)!1
+;XI'ZD6r*nroF(Z^@+Yt;2EZhqYoIR!T81h8d8UAKVm&^r9OB5~>
+l2Le`L$jHpJu.)eq>TFS!V)WQJ-UOAGE]]"q#9LW!SrM$J-1tNkkj08!V_<HJ-9k@W7q!urrMA=
+m=5=qZekHUjSo5-mskRmSC6m&ro*kXl(@?n#'=j<VU"T,li2J~>
+l2Le`1@+uE+IqNbr;PjY!NQq/!!`j8G)iuco`"(S!KRBR!!En#dI@(irrN*mrW!*0E/M6hr7V)N
+k:#Wr"BiV(q>TOV!TOm]!!XBfeFNG6roX4^dU*.F!!`^'EeUC6lMBfGJ,~>
+l2Le`D<sju?E`G^r;PjY!Q8+78dA('G)iuco`"(S!O,;g8d&%`dI@(irrN+Lr^m>hE/M6hr7V)N
+mUkcW"F@rIq>TOV!UEkT8d8Ifg%+t;roX4^hi1=t8dA%!EeUC6lMBfGJ,~>
+l2Le`R-]>,MnJ-Cr;PjY!S*)%J-UOAG)iuco`"(S!QTf^J-:FudI@(irrN+prdY0$E/M6hr7V)N
+o9AQk"HgR`q>TOV!V)'7J-Lk8hX^L@roX4^kc]U+J-UREEeUC6lMBfGJ,~>
+kl1Wpl2UuP\*<Varp'LacU[[/#7Og[Nj@=.r9=4^gHY*+";?sNnbh5C!1s/i"YY%db4,DarrL.[
+kl:iY_WU^nkl1\H.-^d<"$1nHoD&7_rpB^entJA8!!jBKG)E<FlM:GEs*t~>
+kl1XGl:M5#_Wgdlrp'LagjJff#>SoTNj@=.r9=4^k'-5c"B;&Hnbh5C!4i)$"^#r8b4,DarrL_X
+kt2)#`TR$qkl1\OB'Mto9Q6ZMoD&7_rpB^ep:Y\:8dJ:.G)E<FlM:GEs*t~>
+kl1Xgl@9&)bN\`urp'LakG.a$#C^T7Nj@=.r9=4^m@Wfs"G<`,nbh5C!6tLn"a>-Wb4,DarrM/?
+l$ro"`om-rkl1\TPj3c)JXEt"oD&7_rpB^eps>Z"J-^L@G)E<FlM:GEs*t~>
+kl1XCkl:ni6)s5Dr;Q-a!Obes!!aBOG`T2_nbh\P!p=J-li71mAC'Z=rnm_]mfWUj<dq"$pY5]L
+k@Xq\!!O@#iUZmFli."#*9@/,%R"Wo_WLXjr;HWoqu?]q"R`jU6O<#Y#mNM1I?UtcmJ?hHs*t~>
+kl1Xckt2.RFM$i3r;Q-a!R-/g8dA7/G`T2_nbh\P!q)IQlq.FTL=5Jbrnm_]nk;YJB7?f5pY5]L
+mZUB.8d/CmiUZmFli."5?KFcc;fn80d-LK(r;HWoqu?]q"S0j;Gu*d!#u"WDI?UtcmJ?hHs*t~>
+kl1Y&l$rthRE4[er;Q-a!SaOFJ-UF>G`T2_nbh\P!qWmSm!o7jT[W<(rnm_]on%^EFFL1BpY5]L
+o<X&3J-Cb8iUZmFli."CNobctL7>Kgh!Xt7r;HWoqu?]q"SUWfTnMc_$%I&:I?UtcmJ?hHs*t~>
+kl1Xrjo>W0FLgr:r;Q]hrr_\pCE)pH#Qcc!I$D(mnbhbR"8fZ2#j;6m&p2Ojq#13Ors8Qg!"4".
+\`WhHrr`,/>6s6h"sSWKo(i7`nG`O+:Yc!S%OaPFC4#l+")V4&([1o+"#"51LnVT=nGDDKJ,~>
+kl1Y/k"5kcR)ngmr;Q]hrr_l6Q<j,T#?l%nPd]98r9XFcr6C*pkXl%ZQ.PO#rVkgV#lSs>:O%c-
+k5=*9"8pH%:ub.P@%Z0Dq>L<^rrLW$h+@lNAp0#qTV;=Y"."da>3SWc93H(ULnVT=nGDDKJ,~>
+kl1Y=k(!\rZIJF>r;Q]hrr_uI[>jg/#Bk'6Pd]98r9XFcrS4H,k^WklY1rI@rVkgV#lU?FJU*-`
+k5=*9"8prVK]@ReN4%R6q>L<^rrM&Uh1,Z`P+AVY]DT;D[B,mVl$s(iGB%k`TtfCPqre!0~>
+kl1YIirBT%89UT9f\5'6gXEg.JlXAl!!j??FG-7#hX^U5rri>TSmN2l!!`TaHEuT*qY^?lkl1qf
+P5mXuR*"grj8T;^o"KuW&DdBn"#k>)j7iEKrr2fps8E,WVIpjV!"&obApB'![*Ih,r9"$0~>
+kl1YOj%9MUHCVIgi8agt"lIY<VMAjU8dJ:+FG-7#hX^U5rri>^\rBhP8dA%-S]'adqY^?lkl1qf
+Z:\ebR*"grj8T;^p!Bdl<Sg=S9Q$98kkFrPrr2fps8E,`^lr'48d\6qCj:]'[*Ih,r9"$0~>
+kl1YSj+%YqTXW(rkj%I!lfd-M^oE[jJ-^OCFG-7#hX^U5rri>fcEE,cJ-UXk[aOL9qY^?lkl1qf
+a+/u#R*"grj8T;^ptireLu*XgJX<ajlhC8Srr2fps8E,gd^+qAJ-pdMEd3>-[*Ih,r9"$0~>
+kl1\_'E.t9!uWR>/0Y_S!!s!!E.*kMb2i9pnc&]PB0Hj[!!j;u<c39EpA=jSrs%?\HC(Yap>u;V
+mrM8Le,Tms7VT7#q#15rG?-I0[/^U:*Ck$qLmt]mi:-UBjo9i~>
+kl1\_=8ker92\kq>?=\L8dS4!EIEtNb2i9pnc&]qPBKs[8dJO<KpJCqpA=jSrs%XYOI*!"p>u;V
+oULMBe4L-THBZA>q#164Sqh/^Zq:^)@WHjPS$L2pnG<.Gs*t~>
+kl1\_M>i#0IsZKhI"$RmJ-g[HEda(Ob2i9pnc&^3Z_!!,J-_""W3j2&pA=jSrs%k@TU2\2p>u;V
+pUR2ae:7sdTX!#;q#16E];h6R["&O2F`VqdS$L2pnG<.Gs*t~>
+kPl&N""mAeHA%6?P`gl>9IUD&!"'6$DL7;9^=_iKrp]pf+OU5l[G:3HlMh(e5JXG;jSS'=!8l'%
+"_?*EpASF+!"BDf88EO)P+oD.hsU:<j8XW~>
+kPl'39O_aWHA%6?P`guRDHoui8d\="E-mM;^=_iKrp]pf@+%XL^>//QlMh(eG/CDtjSS'=!9h^#
+"c:^jpAU)Z8e"Nt@rZgJP+oD.hsU:<j8XW~>
+kPl$\JV\_rHA%6?P`h)bL4Rs,$@R&;H]+W4f^8M6nG`KMdXVG=h!Y%(rs&Fn`3-o:qrRhXn'6Fe
+UsnK"ri`\Z%=WVHG'\h)U:/8&meHb@s*t~>
+kPl74`3,;fU9VGOaMu*/ZDX4D>s'#.huF,g-W"o6NM3o0k4JT>rsjj*?rBa(=BT-B?tX@rEURrJ
+@fKg9?2dY.:..N?3&ipe]\W;\li.1go\7O?n,DGK''ag]>Ydpc<Dub#?=$uKDJsN7mrBIe@UWYO
+>#8$k7R9@(1cB-Rd-gk$=CG3<?>=:jFEI+ps'cCE>#8$b5W^SL*Z>Lni;aGn'I>e:C4(VkQ(kS%
+eDp&nrSdd,~>
+kPl7DbH@%mU9VGOaMu*/ZDX4MG@jiKi(=AN<b6B%NM3o0k4JT>rsbupKm7W^FE2PGEclVPmWo"Y
+FE;JBrG2gSC2@KoB:limpAXCX#6+8Lb1H+]jo5YVTTaqKDJjH4D>eGUF*MutH6IQUFE;JACi!m#
+AnP^cA:h&4mesVLLO+ApIsucpI=-Bgp3I3kFE;D;CM.0e>[(6.:efn@&PQ&'?YFJ-Jr>ngZGY2P
+nG)t@s*t~>
+kPl1Nd&rRrU9VGOaMu*/ZDX4TM1j`9$\*GDFFK4C\^9L2r9jRp_QohtN/NLGK7SQ&It3+;K):'+
+JqSi4L5:\^]\W;\li.1go\7O?n,DGK$hV'6S<&M^KnFr,If4`tJ:W:<K)C-7It3*%K7nuCYgDh:
+bc%;%P)bQ]M2$]RK):&uJ,OirJ)PniIslZiG^+UfMj:$B_pm`9q#01OJ,~>
+kPlCqkfgcZeDTTZn*]Q+inDbu\ZVZjE)//'k5Yr'/PpG7LR"dMdH'lprpB^rqW5\tTq7jJTq\B\
+W2cr$n?*G,XJr+pVPKrZTV%gIT:i'nh"C[3rri2dk3Vm(rt>>)hS#hZSXc7CTVA6ZVPpMrXm`D#
+XfSS%Vl$>eU7e-LrgX7dYg;b9r9MS1rh9RlV5C2lXnAh;XfSM"VPKoXS=5e0P)tZ\I<B=7?VsWm
+5X.Fh/hZiL'fnHM<FKiqJqo;KR\[.!aOT89o_SREs*t~>
+kPlCqkfgcZeDTTZn*]Q+inDbu\ZVZlJT"ppk=Q1Z=_;c'LR"dMdH'lprpB^rqW5\tTq7jJTq\B\
+W2cr$n?*G,XJr+pVPKrZTV%gIT:i'nh"C[3rri2dk3Vm(rt>>)hS#hZSXc7CTVA6ZVPpMrXm`D#
+XfSS%Vl$>eU7e-LrgX7dYg;b9r9MS1rh9RlV5C2lXnAh;XfSM"VPKoXS=5e0P)tZ\K78)gF)>`-
+ARo:X>[6u,'jtK`CN+NIJqo;KR\[.!aOT89o_SREs*t~>
+kPl@pkfgcZeDTTZn*]Q+inDbu\ZVZnN/*#IJ.6pPG'/1fQ)D:BjRW0HmJd^nji+<pSt;RJU8=`c
+WiW>lXqRq=WMcVjUnXNTT:VXHTVf?Vp&=7V"T%QKm.fZA')qU]]r.KnS=Q:FU84Z`W2cr$n#d&#
+XK/:tVP^/`TV%eSS-YakcgLc0lccR3U'7?hVPpPtor]17XJr+pUnOENR[9;&OH#-QKnP&/JUi6#
+J,OiiIK+]pHiJI(IY*?6PFA;N]?&O]m.C/RhuA3~>
+kPkecp?_#0o_SLarY#2,q"*q9hUTfb[&KXYEDekD%J'Q3!tun?:i(N2N0gEMa4TSGqYog\%fGkT
+eBlRie(*%%g=tE>mb\W4gtLK8f[eU&da6=cbK\]*qW\"_rqcEdrT!nhqX31fcd:%eeCE.&g"P39
+hX02AhV?l>g=b-0eC;pncHOJ[jRrNNoA\6Ed*pOtg"bETh]:P.g=b-0eC)[eb/V<5]XY>QY,\Cq
+U7\!GR@';*p662UR%'bEWj&tH`m<8okjS3@rVkXQJ,~>
+kPkecp?_#0o_SLarY#2,q"*q9hUTfb[&KX[J8f%%:\.0j92JYqBQJQQN0gEMa4TSGqYog\%fGkT
+eBlRie(*%%g=tE>mb\W4gtLK8f[eU&da6=cbK\]*qW\"_rqcEdrT!nhqX31fcd:%eeCE.&g"P39
+hX02AhV?l>g=b-0eC;pncHOJ[jRrNNoA\6Ed*pOtg"bETh]:P.g=b-0eC)[eb/V<5]XY>QY,\Cq
+U7\!GR@';*p662UR%'bEWj&tH`m<8okjS3@rVkXQJ,~>
+kPkecp?_#0o_SLarXf&*q"*q9hUTfb[&KX]MhZlRJ.R-UH?a[^JrH%n[`@%`o(r@Orsntsi7--#
+dF6Xsf\5*8hX985h;$`<g"=m+eC)^icHFJblh]lG"TJ8mqYfIS&GkhNda-:edaZguf\,!5gtqGU
+*o>],g=k64f$r3td*BkYdcC*#rU]$tcHt%jf\,'9oA:SEgtLH6f$r-obf[rB^V%(`Ycb"(UnXKP
+S!fY0Q1gFTQC+/7UoLZ.^;eLNhrsP%qYgELs*t~>
+k5PS_r;?Nmp\ts,r;--VlJpXIaM,![TU1[bAm%u-r([l1AT<3OL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+k5PS_r;?Nmp\ts,r;--VlJpXIaM,![TU1^lG]@S9r+Zj_Ed3(cL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+k5PS_r;?Nmp\u!-r;--VlJpXIaM,![TU1atL4b&-J,OiqI1LgZL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+%%EndData
+showpage
+%%Trailer
+end
+%%EOF
diff --git a/templates/Spanish_A4-logo.png b/templates/Spanish_A4-logo.png
new file mode 100755
index 00000000..5edcdfe5
--- /dev/null
+++ b/templates/Spanish_A4-logo.png
Binary files differ
diff --git a/templates/Spanish_A4-packing_list.html b/templates/Spanish_A4-packing_list.html
new file mode 100755
index 00000000..82cba4f6
--- /dev/null
+++ b/templates/Spanish_A4-packing_list.html
@@ -0,0 +1,155 @@
+<head>
+ <title>Albarán de Instalaciones Industriales San José</title>
+</head>
+
+<body bgcolor="ffffff">
+ <!-- Cabecera -->
+ <table width="100%">
+ <tr valign=bottom>
+ <td width="10">&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr>
+ <th colspan="5"> </th>
+ <th align="left">
+ <h4>A L B A R Á N</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td colspan="6"> </td>
+ </tr>
+
+ <tr>
+ <td colspan="5"> </td>
+ <td align="left"><%name%></td>
+ </tr>
+
+ <tr>
+ <td>Número</td>
+ <td>Factura</td>
+ <td>Fecha</td>
+ <td>Cód. Cliente</td>
+ <td width="10%"> </td>
+ <td><%address1%></td>
+ </tr>
+ <tr>
+ <td><b><%ordnumber%></b></td>
+ <td><b><%invnumber%></b></td>
+ <td><b><%invdate%></b></td>
+ <td><b><%customer_id%></b></td>
+ <td> </td>
+ <td><%addr2%></td>
+ </tr>
+ <tr>
+ <td colspan="5">
+ <td><%city%> <%state%> <%zipcode%></td>
+ </tr>
+ <tr>
+ <td colspan="5">
+ <td><%addr4%></td>
+ </tr>
+ </table>
+ </table>
+
+ <!-- Cuerpo -->
+ <table width=100% cellspacing=0 cellpadding=0>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <!-- <th align=left><font color=ffffff>Número</th> -->
+ <!-- <th><font color=ffffff>Cant.</th> -->
+ <th align="left"><font color="ffffff">Cant.</th>
+ <th align="left"><font color="ffffff">Descripción</th>
+ <th align="left"><font color="ffffff">Precio</th>
+ <!-- <th align="left"><font color="ffffff">Dto.</th> -->
+ <th align="left"><font color="ffffff">Importe</th>
+ </tr>
+
+ <tr>
+ <td colspan="4"><hr noshade></td>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+ <!-- <td><%number%></td> -->
+ <!-- <td><%unit%></td> -->
+ <td align="right"><%qty%></td>
+ <td align="left"><%description%></td>
+ <td align="right"><%sellprice%></td>
+ <!-- <td align=right><%discount%></td> -->
+ <td align="right"><%linetotal%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan="4"><hr noshade></td>
+ </tr>
+ </table>
+
+ <!-- Subtotales, impuestos y totales -->
+ <table width="100%">
+ <tr>
+<%if taxincluded%>
+ <th align=right>Total</th>
+ <td align=right><%invtotal%></td>
+<%end taxincluded%>
+<%if not taxincluded%>
+ <th align="right">Base imponible</th>
+ <td align="right"><%subtotal%> &euro;</td>
+<%end taxincluded%>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th align="right">IVA (<%taxrate%>%) sobre <%taxbase%>:</th>
+ <td align="right"><%tax%> &euro;</td>
+ </tr>
+<%end tax%>
+
+<%if paid%>
+ <tr>
+ <th align="right">Pagado:</th>
+ <td align="right"><%paid%> &euro;</td>
+ </tr>
+<%end paid%>
+
+ <tr>
+ <td>&nbsp;</td>
+ <td><hr noshade></td>
+ </tr>
+
+ <tr>
+ <th align="right">Total:</th>
+ <th align="right"><%invtotal%> &euro;</th>
+ </tr>
+
+ <tr>
+ <td colspan="4">&nbsp;</td>
+ </tr>
+
+ </table>
+
+
+ <!-- Pie -->
+ <table width="100%">
+ <tr valign=top>
+<%if notes%>
+ <td>Notas</td>
+ <td><%notes%></td>
+<%end notes%>
+ </tr>
+
+<%if taxincluded%>
+ <tr>
+ <th colspan="2" align="left"><font size=-2>Los precios incluyen impuestos.</th>
+ </tr>
+<%end taxincluded%>
+
+ </table>
+
+
+</body>
+</html>
+
diff --git a/templates/Spanish_A4-packing_list.tex b/templates/Spanish_A4-packing_list.tex
new file mode 100755
index 00000000..8a867896
--- /dev/null
+++ b/templates/Spanish_A4-packing_list.tex
@@ -0,0 +1,108 @@
+\documentclass[a4paper,oneside]{article}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{marvosym} % Euro \EUR
+\usepackage{fancyhdr}
+\setlength{\topmargin}{0cm}
+\setlength{\topskip}{0cm}
+\setlength{\headheight}{0cm}
+\setlength{\headsep}{0.5cm}
+\setlength{\textheight}{24.2cm}
+\setlength{\textwidth}{19cm}
+\setlength{\oddsidemargin}{-1.4cm}
+\setlength{\evensidemargin}{-1.4cm}
+\setlength{\footskip}{1cm}
+
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{13.0cm}
+
+\newsavebox{\hdr}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\sbox{\hdr}{
+
+\begin{minipage}[t]{0.6\linewidth}
+\vspace{2.2cm}
+
+\begin{tabular}[t]{p{1.7cm}p{1.7cm}p{2.4cm}p{1.7cm}}\\
+\centering{Número} & \centering{Número} & \centering{Fecha} & C. Cliente\\
+ \centering{<%ordnumber%>} & \centering{<%invnumber%>} & \centering{<%invdate%>} & \centering{<%customer_id%>}
+\end{tabular}
+\end{minipage}
+
+\begin{minipage}[t]{0.4\linewidth}
+\textbf{A L B A R Á N}
+\vspace{1cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+\end{minipage}
+
+}
+
+\pagestyle{fancy}
+\renewcommand{\headrulewidth}{0cm}
+\renewcommand{\footrulewidth}{0cm}
+\cfoot{\thepage}
+%\markboth{\usebox{\hdr}}{\usebox{\hdr}}
+%\thispagestyle{empty} %use this with letterhead paper
+
+<%pagebreak 65 27 37%>
+\end{tabular*}
+\newpage
+\usebox{\hdr}
+\vspace{0.5cm}
+
+%\markboth{\usebox{\hdr}}{\usebox{\hdr}}
+\begin{tabular*}{\textwidth}{rp{\descrwidth}rr}
+ \textbf{Cant.} & \textbf{Descripción} & \textbf{Precio} & \textbf{Importe} \\ \hline
+<%end pagebreak%>
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\usebox{\hdr}
+\vspace{0.5cm}
+
+\begin{tabular*}{\textwidth}{rp{\descrwidth}rr}
+ \textbf{Cant.} & \textbf{Descripción} & \textbf{Precio} & \textbf{Importe} \\ \hline
+<%foreach number%>
+ <%qty%> & <%description%> & <%sellprice%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+\parbox{\textwidth}{
+\vspace{12pt}
+<%if notes%>
+ <%notes%>
+<%end if%>
+}
+
+\vfill
+
+\begin{flushright}
+\begin{tabularx}{10cm}{Xr@{}}
+ \textbf{Base imponible} & \textbf{<%subtotal%>} \\
+<%foreach tax%>
+ IVA (<%taxrate%>\%) sobre <%taxbase%> & <%tax%> \\
+<%end tax%>
+ \hline
+ \textbf{Total} & \textbf{<%invtotal%>} \\
+\end{tabularx}
+\end{flushright}
+
+%\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+\end{document}
+
diff --git a/templates/Spanish_A4-pick_list.html b/templates/Spanish_A4-pick_list.html
new file mode 100755
index 00000000..da8a3bdf
--- /dev/null
+++ b/templates/Spanish_A4-pick_list.html
@@ -0,0 +1,153 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>P I C K &nbsp;&nbsp; L I S T</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th width=50% align=left><font color=ffffff>Ship To:</th>
+ <th width=50%>&nbsp;</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ </td>
+
+ <td>
+ <%if shiptocontact%>
+ <br>Attn: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=15% align=left>Invoice #</th>
+ <th width=15% align=left>Order #</th>
+ <th width=10% align=left>Date</th>
+ <th width=15% align=left nowrap>Contact</th>
+ <th width=15% align=left>Warehouse</th>
+ <th width=10% align=left>Shipping Point</th>
+ <th width=10% align=left>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%invnumber%>&nbsp;</td>
+ <td><%ordnumber%>&nbsp;</td>
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%transdate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+ <td><%warehouse%>&nbsp;</td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Pos</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qty</th>
+ <th><font color=ffffff>Ship</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Bin</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td align=right>[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</td>
+ <td><%unit%></td>
+ <td align=right><%bin%></td>
+ </tr>
+ <%end number%>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+</table>
+
diff --git a/templates/Spanish_A4-pick_list.tex b/templates/Spanish_A4-pick_list.tex
new file mode 100755
index 00000000..04953ce8
--- /dev/null
+++ b/templates/Spanish_A4-pick_list.tex
@@ -0,0 +1,144 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}rlXrcll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} &
+ \textbf{Qty} & \textbf{Ship} & & \textbf{Bin} \\
+
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.5\textwidth}{
+ \textbf{Ship To}
+} \hfill
+
+\vspace{0.7cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.5\textwidth}{
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+}
+\parbox[t]{.4\textwidth}{
+ <%shiptocontact%>
+
+ <%if shiptophone%>
+ Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{P I C K} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{7}{|X}|} \hline
+ \textbf{Invoice \#} & \textbf{Order \#} & \textbf{Date} & \textbf{Contact}
+ & \textbf{Warehouse} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+ <%invnumber%> & <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%transdate%>
+ <%end shippingdate%>
+ & <%employee%>
+ <%if warehouse%>
+ & <%warehouse%>
+ <%end warehouse%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrcll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} &
+ \textbf{Qty} & \textbf{Ship} & & \textbf{Bin} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> &
+ <%qty%> & [\hspace{1cm}] & <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+}
+
+\end{document}
+
diff --git a/templates/Spanish_A4-pos_invoice.txt b/templates/Spanish_A4-pos_invoice.txt
new file mode 100755
index 00000000..fecd1557
--- /dev/null
+++ b/templates/Spanish_A4-pos_invoice.txt
@@ -0,0 +1,50 @@
+<%company align=center width=40%>
+<%address align=center width=40%>
+
+Till: <%till align=left width=3%> Phone#: <%tel%>
+Cashier: <%employee%>
+Inv No/Date: <%invnumber%> / <%invdate%>
+Printed: <%dateprinted%>
+
+ Qty Description Amount
+<%foreach number%>
+<%qty align=right width=5%> <%description align=left width=24 offset=6%> <%linetotal align=right width=9%>
+ <%number%> @ <%sellprice%>/<%unit%>
+<%end number%>
+
+Number of items: <%rowcount%>
+<%if taxincluded%>
+ ---------------
+ Amount Due: <%invtotal align=right width=9%>
+<%end taxincluded%>
+<%if not taxincluded%>
+ ------------
+ Subtotal: <%subtotal align=right width=9%>
+<%end taxincluded%>
+<%foreach tax%>
+<%taxdescription align=right width=23%> @ <%taxrate align=right width=2%>%: <%tax align=right width=9%>
+<%end tax%>
+ Amount Due: <%invtotal align=right width=9%>
+<%foreach payment%>
+<%paymentaccount align=right width=29%>: <%payment align=right width=9%> <%currency%>
+<%end payment%>
+<%if change%>
+ Change: <%change align=right width=9%>
+<%end change%>
+<%if total%>
+ Balance Due: <%total align=right width=9%>
+<%end total%>
+<%if discount%>
+
+<%discount%> % Discount applied
+<%end discount%>
+
+ Thank you for your valued business!
+
+<%if taxincluded%>
+Taxes are included in price.
+<%end taxincluded%>
+
+
+
+
diff --git a/templates/Spanish_A4-purchase_order.html b/templates/Spanish_A4-purchase_order.html
new file mode 100755
index 00000000..493fd375
--- /dev/null
+++ b/templates/Spanish_A4-purchase_order.html
@@ -0,0 +1,153 @@
+<head>
+ <title>Pedido de Instalaciones Industriales San José</title>
+</head>
+
+<body bgcolor="ffffff">
+ <!-- Cabecera -->
+ <table width="100%">
+ <tr valign=bottom>
+ <td width="10">&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr>
+ <th colspan="4"> </th>
+ <th align="left">
+ <h4>P E D I D O</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td colspan="5"> </td>
+ </tr>
+
+ <tr>
+ <td colspan="4"> </td>
+ <td align="left"><%name%></td>
+ </tr>
+
+ <tr>
+ <td>Número</td>
+ <td>Fecha</td>
+ <td>Cód. Proveedor</td>
+ <td width="10%"> </td>
+ <td><%address1%></td>
+ </tr>
+ <tr>
+ <td><b><%ordnumber%></b></td>
+ <td><b><%orddate%></b></td>
+ <td><b><%vendor_id%></b></td>
+ <td> </td>
+ <td><%addr2%></td>
+ </tr>
+ <tr>
+ <td colspan="4">
+ <td><%city%> <%state%> <%zipcode%></td>
+ </tr>
+ <tr>
+ <td colspan="4">
+ <td><%addr4%></td>
+ </tr>
+ </table>
+ </table>
+
+ <!-- Cuerpo -->
+ <table width=100% cellspacing=0 cellpadding=0>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <!-- <th align=left><font color=ffffff>Número</th> -->
+ <!-- <th><font color=ffffff>Cant.</th> -->
+ <th align="left"><font color="ffffff">Cant.</th>
+ <th align="left"><font color="ffffff">Descripción</th>
+ <th align="left"><font color="ffffff">Precio</th>
+ <!-- <th align="left"><font color="ffffff">Dto.</th> -->
+ <th align="left"><font color="ffffff">Importe</th>
+ </tr>
+
+ <tr>
+ <td colspan="4"><hr noshade></td>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+ <!-- <td><%number%></td> -->
+ <!-- <td><%unit%></td> -->
+ <td align="right"><%qty%></td>
+ <td align="left"><%description%></td>
+ <td align="right"><%sellprice%></td>
+ <!-- <td align=right><%discount%></td> -->
+ <td align="right"><%linetotal%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan="4"><hr noshade></td>
+ </tr>
+ </table>
+
+ <!-- Subtotales, impuestos y totales -->
+ <table width="100%">
+ <tr>
+<%if taxincluded%>
+ <th align="right">Total</th>
+ <td align="right"><%ordtotal%></td>
+<%end taxincluded%>
+<%if not taxincluded%>
+ <th align="right">Base imponible</th>
+ <td align="right"><%subtotal%> &euro;</td>
+<%end taxincluded%>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th align="right">IVA (<%taxrate%>%) sobre <%taxbase%>:</th>
+ <td align="right"><%tax%> &euro;</td>
+ </tr>
+<%end tax%>
+
+<%if paid%>
+ <tr>
+ <th align="right">Pagado:</th>
+ <td align="right"><%paid%> &euro;</td>
+ </tr>
+<%end paid%>
+
+ <tr>
+ <td>&nbsp;</td>
+ <td><hr noshade></td>
+ </tr>
+
+ <tr>
+ <th align="right">Total:</th>
+ <th align="right"><%ordtotal%> &euro;</th>
+ </tr>
+
+ <tr>
+ <td colspan="4">&nbsp;</td>
+ </tr>
+
+ </table>
+
+
+ <!-- Pie -->
+ <table width="100%">
+ <tr valign=top>
+<%if notes%>
+ <td>Notas</td>
+ <td><%notes%></td>
+<%end notes%>
+ </tr>
+
+<%if taxincluded%>
+ <tr>
+ <th colspan="2" align="left"><font size=-2>Los precios incluyen impuestos.</th>
+ </tr>
+<%end taxincluded%>
+
+ </table>
+
+
+</body>
+</html>
+
diff --git a/templates/Spanish_A4-purchase_order.tex b/templates/Spanish_A4-purchase_order.tex
new file mode 100755
index 00000000..69129e86
--- /dev/null
+++ b/templates/Spanish_A4-purchase_order.tex
@@ -0,0 +1,111 @@
+\documentclass[a4paper,oneside]{article}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{marvosym} % Euro \EUR
+\usepackage{fancyhdr}
+\setlength{\topmargin}{0cm}
+\setlength{\topskip}{0cm}
+\setlength{\headheight}{0cm}
+\setlength{\headsep}{0.5cm}
+\setlength{\textheight}{24.2cm}
+\setlength{\textwidth}{19cm}
+\setlength{\oddsidemargin}{-1.4cm}
+\setlength{\evensidemargin}{-1.4cm}
+\setlength{\footskip}{1cm}
+
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{13.0cm}
+
+\newsavebox{\hdr}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\sbox{\hdr}{
+\begin{minipage}[t]{0.6\linewidth}
+\vspace{2.2cm}
+
+\begin{tabular}[t]{p{1.7cm}p{2.4cm}p{1.7cm}}\\
+\centering{Número} & \centering{Fecha} & C. Cliente\\
+\centering{<%ordnumber%>} & \centering{<%orddate%>} & \centering{<%vendor_id%>}
+\end{tabular}
+\end{minipage}
+
+\begin{minipage}[t]{0.4\linewidth}
+\textbf{P E D I D O}
+\vspace{1cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+\end{minipage}
+
+}
+
+\pagestyle{fancy}
+\renewcommand{\headrulewidth}{0cm}
+\renewcommand{\footrulewidth}{0cm}
+\cfoot{\thepage}
+%\markboth{\usebox{\hdr}}{\usebox{\hdr}}
+%\thispagestyle{empty} %use this with letterhead paper
+
+<%pagebreak 65 27 37%>
+\end{tabular*}
+\newpage
+\usebox{\hdr}
+%\markboth{\usebox{\hdr}}{\usebox{\hdr}}
+\vspace{0.5cm}
+
+\begin{tabular*}{\textwidth}{rp{\descrwidth}rr}
+ \textbf{Cant.} & \textbf{Descripción} & \textbf{Precio} & \textbf{Importe} \\ \hline
+<%end pagebreak%>
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\usebox{\hdr}
+\vspace{0.5cm}
+
+\begin{tabular*}{\textwidth}{rp{\descrwidth}rr}
+ \textbf{Cant.} & \textbf{Descripción} & \textbf{Precio} & \textbf{Importe} \\ \hline
+<%foreach number%>
+ <%qty%> & <%description%> & <%sellprice%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+\parbox{\textwidth}{
+\vspace{12pt}
+<%if notes%>
+ <%notes%>
+<%end if%>
+}
+
+\vfill
+
+\begin{flushright}
+\begin{tabularx}{10cm}{Xr@{}}
+ \textbf{Base imponible} & \textbf{<%subtotal%>} \EUR \\
+<%foreach tax%>
+ IVA (<%taxrate%>\%) sobre <%taxbase%> & <%tax%> \EUR\\
+<%end tax%>
+ \hline
+ \textbf{Total} & \textbf{<%ordtotal%>} \EUR\\
+\end{tabularx}
+\end{flushright}
+
+%\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+\end{document}
+
diff --git a/templates/Spanish_A4-receipt.tex b/templates/Spanish_A4-receipt.tex
new file mode 100755
index 00000000..4e7cfc62
--- /dev/null
+++ b/templates/Spanish_A4-receipt.tex
@@ -0,0 +1,75 @@
+\documentclass[a4paper,oneside]{article}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.4cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.0cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+
+\fontfamily{cmss}\fontsize{9pt}{9pt}\selectfont
+
+\parbox[t]{12cm}{
+ <%company%>
+
+ <%address%>}
+\hfill
+\parbox[t]{6cm}{\hfill <%source%>}
+
+\vspace*{0.6cm}
+
+<%text_amount%> \dotfill <%decimal%>/100 \makebox[0.5cm]{\hfill}
+
+\vspace{0.5cm}
+
+\hfill <%datepaid%> \makebox[2cm]{\hfill} <%amount%>
+
+\vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{2.8cm}
+
+<%company%>
+
+\vspace{0.5cm}
+
+<%name%> \hfill <%datepaid%> \hfill <%source%>
+
+\vspace{0.5cm}
+\begin{tabularx}{\textwidth}{lXrr@{}}
+\textbf{Invoice No.} & \textbf{Invoice Date}
+ & \textbf{Due} & \textbf{Applied} \\
+<%foreach invnumber%>
+<%invnumber%> & <%invdate%> \dotfill
+ & <%due%> & <%paid%> \\
+<%end invnumber%>
+\end{tabularx}
+
+\vfill
+
+\end{document}
+
diff --git a/templates/Spanish_A4-request_quotation.html b/templates/Spanish_A4-request_quotation.html
new file mode 100755
index 00000000..fa684866
--- /dev/null
+++ b/templates/Spanish_A4-request_quotation.html
@@ -0,0 +1,202 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <td><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58>
+ </td>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>R E Q U E S T &nbsp;&nbsp; F O R &nbsp;&nbsp; Q U O T A T I O N</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>To:</th>
+ <th align=left width=50%><font color=ffffff>Ship To:</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+<br>
+<%if contact%>
+<br>Attn: <%contact%>
+<%end contact%>
+<%if vendorphone%>
+<br>Tel: <%vendorphone%>
+<%end vendorphone%>
+<%if vendorfax%>
+<br>Fax: <%vendorfax%>
+<%end vendorfax%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddr2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+<br>
+<%if shiptocontact%>
+<br>Attn: <%shiptocontact%>
+<%end shiptocontact%>
+<%if shiptophone%>
+<br>Tel: <%shiptophone%>
+<%end shiptophone%>
+<%if shiptofax%>
+<br>Fax: <%shiptofax%>
+<%end shiptofax%>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr><td>&nbsp;</td></tr>
+
+ <tr>
+ <td colspan=2>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left>RFQ #</th>
+ <th width=17% align=left>Date</th>
+ <th width=17% align=left>Required by</th>
+ <th width=17% align=left>Contact</th>
+ <th width=17% align=left>Shipping Point</th>
+ <th width=15% align=left>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%quonumber%></td>
+ <td><%quodate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height="10"></tr>
+
+ <tr>
+ <td>Please provide price and delivery time for the following items:</td>
+ </tr>
+
+ <tr height="10"></tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+<!-- <th align=right>No.</th> -->
+ <th align=left>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th>Qt'y</th>
+ <th>&nbsp;</th>
+ <th>Delivery</th>
+ <th>Unit Price</th>
+ <th>Extended</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+<!-- <td align=right><%runningnumber%>.</td>
+other per line item variables available <%reqdate%>
+adjust the colspan if you include this to shift subtotal one to the right
+-->
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=7><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+<%if notes%>
+ <tr valign=top>
+ <td>Notes</td>
+ <td><%notes%></td>
+ </tr>
+<%end notes%>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=70%>&nbsp;</td>
+
+ <td width=30%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Spanish_A4-request_quotation.tex b/templates/Spanish_A4-request_quotation.tex
new file mode 100755
index 00000000..49f1abe7
--- /dev/null
+++ b/templates/Spanish_A4-request_quotation.tex
@@ -0,0 +1,175 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Extended} \\
+ & carried forward from <%lastpage%> & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.45\textwidth}{
+\textbf{To}
+\vspace{0.7cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if vendorphone%>
+Tel: <%vendorphone%>
+<%end vendorphone%>
+
+<%if vendorfax%>
+Fax: <%vendorfax%>
+<%end vendorfax%>
+
+<%email%>
+}
+\parbox[t]{.45\textwidth}{
+\textbf{Ship To}
+\vspace{0.7cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{R E Q U E S T for Q U O T A T I O N}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{RFQ \#} & \textbf{Date} & \textbf{Required by} & \textbf{Contact} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5ex]
+ \hline
+ <%quonumber%> & <%quodate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+Please provide price and delivery time for the following items:
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}lXrllrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} & &
+ \textbf{Delivery} & \textbf{Unit Price} & \textbf{Extended} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> & <%unit%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\hfill
+
+<%notes%>
+
+}
+
+\end{document}
+
diff --git a/templates/Spanish_A4-sales_order.html b/templates/Spanish_A4-sales_order.html
new file mode 100755
index 00000000..a3cdfc76
--- /dev/null
+++ b/templates/Spanish_A4-sales_order.html
@@ -0,0 +1,153 @@
+<head>
+ <title>Presupuesto de Instalaciones Industriales San José</title>
+</head>
+
+<body bgcolor="ffffff">
+ <!-- Cabecera -->
+ <table width="100%">
+ <tr valign=bottom>
+ <td width="10">&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr>
+ <th colspan="4"> </th>
+ <th align="left">
+ <h4>P R E S U P U E S T O</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td colspan="5"> </td>
+ </tr>
+
+ <tr>
+ <td colspan="4"> </td>
+ <td align="left"><%name%></td>
+ </tr>
+
+ <tr>
+ <td>Número</td>
+ <td>Fecha</td>
+ <td>Cód. Cliente</td>
+ <td width="10%"> </td>
+ <td><%address1%></td>
+ </tr>
+ <tr>
+ <td><b><%ordnumber%></b></td>
+ <td><b><%orddate%></b></td>
+ <td><b><%customer_id%></b></td>
+ <td> </td>
+ <td><%addr2%></td>
+ </tr>
+ <tr>
+ <td colspan="4">
+ <td><%city%> <%state%> <%zipcode%></td>
+ </tr>
+ <tr>
+ <td colspan="4">
+ <td><%addr4%></td>
+ </tr>
+ </table>
+ </table>
+
+ <!-- Cuerpo -->
+ <table width=100% cellspacing=0 cellpadding=0>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <!-- <th align=left><font color=ffffff>Número</th> -->
+ <!-- <th><font color=ffffff>Cant.</th> -->
+ <th align="left"><font color="ffffff">Cant.</th>
+ <th align="left"><font color="ffffff">Descripción</th>
+ <th align="left"><font color="ffffff">Precio</th>
+ <!-- <th align="left"><font color="ffffff">Dto.</th> -->
+ <th align="left"><font color="ffffff">Importe</th>
+ </tr>
+
+ <tr>
+ <td colspan="4"><hr noshade></td>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+ <!-- <td><%number%></td> -->
+ <!-- <td><%unit%></td> -->
+ <td align="right"><%qty%></td>
+ <td align="left"><%description%></td>
+ <td align="right"><%sellprice%></td>
+ <!-- <td align=right><%discount%></td> -->
+ <td align="right"><%linetotal%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan="4"><hr noshade></td>
+ </tr>
+ </table>
+
+ <!-- Subtotales, impuestos y totales -->
+ <table width="100%">
+ <tr>
+<%if taxincluded%>
+ <th align=right>Total</th>
+ <td align=right><%ordtotal%></td>
+<%end taxincluded%>
+<%if not taxincluded%>
+ <th align="right">Base imponible</th>
+ <td align="right"><%subtotal%> &euro;</td>
+<%end taxincluded%>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th align="right">IVA (<%taxrate%>%) sobre <%taxbase%>:</th>
+ <td align="right"><%tax%> &euro;</td>
+ </tr>
+<%end tax%>
+
+<%if paid%>
+ <tr>
+ <th align="right">Pagado:</th>
+ <td align="right"><%paid%> &euro;</td>
+ </tr>
+<%end paid%>
+
+ <tr>
+ <td>&nbsp;</td>
+ <td><hr noshade></td>
+ </tr>
+
+ <tr>
+ <th align="right">Total:</th>
+ <th align="right"><%ordtotal%> &euro;</th>
+ </tr>
+
+ <tr>
+ <td colspan="4">&nbsp;</td>
+ </tr>
+
+ </table>
+
+
+ <!-- Pie -->
+ <table width="100%">
+ <tr valign=top>
+<%if notes%>
+ <td>Notas</td>
+ <td><%notes%></td>
+<%end notes%>
+ </tr>
+
+<%if taxincluded%>
+ <tr>
+ <th colspan="2" align="left"><font size=-2>Los precios incluyen impuestos.</th>
+ </tr>
+<%end taxincluded%>
+
+ </table>
+
+
+</body>
+</html>
+
diff --git a/templates/Spanish_A4-sales_order.tex b/templates/Spanish_A4-sales_order.tex
new file mode 100755
index 00000000..f55dc69b
--- /dev/null
+++ b/templates/Spanish_A4-sales_order.tex
@@ -0,0 +1,107 @@
+\documentclass[a4paper,oneside]{article}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{marvosym} % Euro \EUR
+\usepackage{fancyhdr}
+\setlength{\topmargin}{0cm}
+\setlength{\topskip}{0cm}
+\setlength{\headheight}{0cm}
+\setlength{\headsep}{0.5cm}
+\setlength{\textheight}{24.2cm}
+\setlength{\textwidth}{19cm}
+\setlength{\oddsidemargin}{-1.4cm}
+\setlength{\evensidemargin}{-1.4cm}
+\setlength{\footskip}{1cm}
+
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{13.0cm}
+
+\newsavebox{\hdr}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\sbox{\hdr}{
+\begin{minipage}[t]{0.6\linewidth}
+\vspace{2.2cm}
+
+\begin{tabular}[t]{p{1.7cm}p{2.4cm}p{1.7cm}}\\
+\centering{Número} & \centering{Fecha} & C. Cliente\\
+\centering{<%ordnumber%>} & \centering{<%orddate%>} & \centering{<%vendor_id%>}
+\end{tabular}
+\end{minipage}
+
+\begin{minipage}[t]{0.4\linewidth}
+\textbf{P E D I D O}
+\vspace{1cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+\end{minipage}
+
+}
+
+\pagestyle{fancy}
+\renewcommand{\headrulewidth}{0cm}
+\renewcommand{\footrulewidth}{0cm}
+\cfoot{\thepage}
+%\markboth{\usebox{\hdr}}{\usebox{\hdr}}
+%\thispagestyle{empty} %use this with letterhead paper
+
+<%pagebreak 65 27 37%>
+\end{tabular*}
+\newpage
+\usebox{\hdr}
+%\markboth{\usebox{\hdr}}{\usebox{\hdr}}
+\vspace{0.5cm}
+
+\begin{tabular*}{\textwidth}{rp{\descrwidth}rr}
+ \textbf{Cant.} & \textbf{Descripción} & \textbf{Precio} & \textbf{Importe} \\ \hline
+<%end pagebreak%>
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\usebox{\hdr}
+\vspace{0.5cm}
+
+\begin{tabular*}{\textwidth}{rp{\descrwidth}rr}
+ \textbf{Cant.} & \textbf{Descripción} & \textbf{Precio} & \textbf{Importe} \\ \hline
+<%foreach number%>
+ <%qty%> & <%description%> & <%sellprice%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+\parbox{\textwidth}{
+\vspace{12pt}
+<%if notes%>
+ <%notes%>
+<%end if%>
+}
+
+\vfill
+
+\begin{flushright}
+\begin{tabularx}{10cm}{Xr@{}}
+ \textbf{Base imponible} & \textbf{<%subtotal%>} \\
+<%foreach tax%>
+ IVA (<%taxrate%>\%) sobre <%taxbase%> & <%tax%> \\
+<%end tax%>
+ \hline
+ \textbf{Total} & \textbf{<%ordtotal%>} \\
+\end{tabularx}
+\end{flushright}
+
+%\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+\end{document}
+
diff --git a/templates/Spanish_A4-sales_quotation.html b/templates/Spanish_A4-sales_quotation.html
new file mode 100755
index 00000000..0abf5fc7
--- /dev/null
+++ b/templates/Spanish_A4-sales_quotation.html
@@ -0,0 +1,225 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr valign=top>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+<tr><td colspan=3>&nbsp;</td></tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>Q U O T A T I O N</h4>
+ </th>
+ </tr>
+
+ </table>
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td>
+ <table width=100%>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+
+ <br>
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr><td>&nbsp;</td></tr>
+
+ <tr>
+ <td colspan=2>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Number</th>
+ <th width=17% align=left>Date</th>
+ <th width=17% align=left>Valid until</th>
+ <th width=17% align=left nowrap>Contact</th>
+ <th width=17% align=left nowrap>Shipping Point</th>
+ <th width=15% align=left nowrap>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%quonumber%></td>
+ <td><%quodate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>No.</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qt'y</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Price</th>
+ <th><font color=ffffff>Disc %</th>
+ <th><font color=ffffff>Amount</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%></td>
+
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discountrate%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=8><hr noshade></td>
+ </tr>
+
+ <tr>
+<%if taxincluded%>
+ <th colspan=6 align=right>Total</th>
+ <td colspan=2 align=right><%invtotal%></td>
+<%end taxincluded%>
+
+<%if not taxincluded%>
+ <th colspan=6 align=right>Subtotal</th>
+ <td colspan=2 align=right><%subtotal%></td>
+<%end taxincluded%>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=6 align=right><%taxdescription%> on <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+<%end tax%>
+
+ <tr>
+ <td colspan=4>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=4>&nbsp;
+<%if terms%>
+ Terms Net <b><%terms%></b> days
+<%end terms%>
+ </td>
+ <th colspan=2 align=right>Total</th>
+ <th colspan=2 align=right><%quototal%></th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>Notes</td>
+ <td><%notes%></td>
+<%end notes%>
+ <td align=right>
+ All prices in <b><%currency%></b> Funds
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=60%><font size=-3>
+ Special order items are subject to a 10% cancellation fee.
+ </font>
+ </td>
+ <td width=40%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Spanish_A4-sales_quotation.tex b/templates/Spanish_A4-sales_quotation.tex
new file mode 100755
index 00000000..25792c6b
--- /dev/null
+++ b/templates/Spanish_A4-sales_quotation.tex
@@ -0,0 +1,157 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 48%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%quonumber%>}{<%company%>\hfill <%quonumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+ & carried forward from <%lastpage%> & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.45\textwidth}{
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%contact%>
+
+\vspace{0.2cm}
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+
+\vspace{1cm}
+
+\textbf{Q U O T A T I O N}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Quotation \#} & \textbf{Date} & \textbf{Valid until} & \textbf{Contact} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5ex]
+ \hline
+ <%quonumber%> & <%quodate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%discountrate%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ Subtotal & <%subtotal%> \\
+<%foreach tax%>
+ <%taxdescription%> on <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ Total & <%quototal%>\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ All prices in \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%notes%>
+
+}
+
+\vfill
+
+\end{document}
+
+
diff --git a/templates/Spanish_A4-statement.html b/templates/Spanish_A4-statement.html
new file mode 100755
index 00000000..4f384151
--- /dev/null
+++ b/templates/Spanish_A4-statement.html
@@ -0,0 +1,125 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+ <tr>
+ <th colspan=3><h4>S T A T E M E N T</h4></th>
+ </tr>
+ <tr>
+ <td colspan=3 align=right><%statementdate%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+<br><%address2%>
+<%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+<%country%>
+<%end country%>
+ <br>
+<%if customerphone%>
+ <br>Tel: <%customerphone%>
+<%end customerphone%>
+<%if customerfax%>
+ <br>Fax: <%customerfax%>
+<%end customerfax%>
+<%if email%>
+ <br><%email%>
+<%end email%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr height=10></tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr>
+ <th align=left>Invoice #</th>
+ <th width=15%>Date</th>
+ <th width=15%>Due</th>
+ <th width=10%>Current</th>
+ <th width=10%>30</th>
+ <th width=10%>60</th>
+ <th width=10%>90+</th>
+ </tr>
+<%foreach invnumber%>
+ <tr>
+ <td><%invnumber%></td>
+ <td><%invdate%></td>
+ <td><%duedate%></td>
+ <td align=right><%c0%></td>
+ <td align=right><%c30%></td>
+ <td align=right><%c60%></td>
+ <td align=right><%c90%></td>
+ </tr>
+<%end invnumber%>
+ <tr>
+ <td colspan=7><hr size=1></td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <th align=right><%c0total%></td>
+ <th align=right><%c30total%></td>
+ <th align=right><%c60total%></td>
+ <th align=right><%c90total%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr height=10></tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td align=right>
+ <table width=50%>
+ <tr>
+ <th>Total Outstanding</th>
+ <th align=right><%total%></th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td><hr noshade></td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>Please make check payable to <b><%company%></b>.
+ </td>
+ </tr>
+ <tr height=20></tr>
+</table>
+
diff --git a/templates/Spanish_A4-statement.tex b/templates/Spanish_A4-statement.tex
new file mode 100755
index 00000000..e33c23c0
--- /dev/null
+++ b/templates/Spanish_A4-statement.tex
@@ -0,0 +1,111 @@
+\documentclass[a4paper,oneside]{article}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rrr@{}}
+ Tel & <%tel%>\\
+ Fax & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%statementdate%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{1.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{10.5cm}{
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+}
+\parbox[t]{7.5cm}{
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{S T A T E M E N T} \hfill \textbf{<%statementdate%>}
+
+\vspace{2cm}
+
+\begin{tabular*}{\textwidth}{@{}l@{\extracolsep\fill}ccrrrr@{}}
+ \textbf{Invoice \#} & \textbf{Date} & \textbf{Due} &
+ \textbf{Current} & \textbf{30} & \textbf{60} & \textbf{90+} \\
+<%foreach invnumber%>
+ <%invnumber%> & <%invdate%> & <%duedate%> &
+ <%c0%> & <%c30%> & <%c60%> & <%c90%> \\
+<%end invnumber%>
+\textbf{Subtotal} & & & <%c0total%> & <%c30total%> & <%c60total%> & <%c90total%>
+\end{tabular*}
+\rule{\textwidth}{1pt}
+
+\vspace{0.5cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Total outstanding} & <%total%>
+\end{tabularx}
+
+\vfill
+
+Please make check payable to <%company%>
+
+\end{document}
+
diff --git a/templates/Spanish_A4-timecard.html b/templates/Spanish_A4-timecard.html
new file mode 100755
index 00000000..361b8254
--- /dev/null
+++ b/templates/Spanish_A4-timecard.html
@@ -0,0 +1,146 @@
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=sql-ledger.png border=0 width=84 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>T I M E &nbsp;&nbsp; C A R D</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=left>Employee</th>
+ <td><%employee%></td>
+ </tr>
+ <tr>
+ <th align=left>ID</th>
+ <td><%employee_id%></td>
+ </tr>
+ </table>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Card ID</th>
+ <td><%id%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Date Worked</th>
+ <td><%transdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Time In</th>
+ <td><%checkedin%></td>
+ </tr>
+ <tr>
+ <th align=left>Time Out</th>
+ <td><%checkedout%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Hours Worked</th>
+ <td><%qty%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=bottom>
+ <td>
+ <table>
+ <tr valign=top>
+ <th align=left>Project/Job #</th>
+ <td><%projectnumber%></td>
+ </tr>
+ <tr>
+ <th align=left>Description</th>
+ <td><%projectdescription%></td>
+ </tr>
+ <tr valign=top>
+ <th align=left>Labor/Service Code</th>
+ <td><%partnumber%></td>
+ </tr>
+ <tr>
+ <th align=left>Description</th>
+ <td><%description%></td>
+ </tr>
+ </table>
+ </td>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Unit Rate</th>
+ <td><%sellprice%></td>
+ </tr>
+ <tr>
+ <th align=right>Total</th>
+ <td><%total%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+<%if notes%>
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%notes%>
+ </td>
+ </tr>
+<%end notes%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Spanish_A4-timecard.tex b/templates/Spanish_A4-timecard.tex
new file mode 100755
index 00000000..5e3ec544
--- /dev/null
+++ b/templates/Spanish_A4-timecard.tex
@@ -0,0 +1,71 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[A4paper,top=2cm,bottom=-1cm,left=2cm,right=1cm]{geometry}
+\usepackage{graphicx}
+\setlength{\parindent}{0pt}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Tel: & <%tel%>\\
+ Fax: & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+\centerline{\textbf{T I M E}\hspace{0.5cm}\textbf{C A R D}}
+
+\vspace*{0.5cm}
+
+\begin{tabular}[t]{ll}
+ \textbf{Employee} & <%employee%> \\
+ \textbf{ID} & <%employee_id%> \\
+\end{tabular}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Card ID} & <%id%> \\
+ \textbf{Date Worked} & <%transdate%> \\
+ \textbf{Time In} & <%checkedin%> \\
+ \textbf{Time Out} & <%checkedout%> \\
+ \textbf{Hours Worked} & <%qty%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular}[b]{ll}
+ \textbf{Project/Job \#} & <%projectnumber%> \\
+ \textbf{Description} & <%projectdescription%> \\
+ \textbf{Labor/Service Code} & <%partnumber%> \\
+ \textbf{Description} & <%description%> \\
+\end{tabular}
+\hfill
+\begin{tabular}[b]{lr}
+ \textbf{Unit Rate} & <%sellprice%> \\
+ \textbf{Total} & <%total%> \\
+\end{tabular}
+
+\vspace{0.3cm}
+
+<%notes%>
+
+\end{document}
+
+
diff --git a/templates/Spanish_A4-work_order.html b/templates/Spanish_A4-work_order.html
new file mode 100755
index 00000000..88d212af
--- /dev/null
+++ b/templates/Spanish_A4-work_order.html
@@ -0,0 +1,174 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=bottom>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>W O R K &nbsp;&nbsp; O R D E R</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>To</th>
+ <th align=left width=50%><font color=ffffff>Ship To</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%>
+ <br><%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%>
+ <br><%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ <br>
+ <%if shiptocontact%>
+ <br><%shiptocontact%>
+ <%end shiptocontact%>
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+ <%if shiptoemail%>
+ <br><%shiptoemail%>
+ <%end shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Order Number</th>
+ <th width=17% align=left>Order Date</th>
+ <th width=17% align=left>Required by</th>
+ <th width=17% align=left nowrap>Salesperson</th>
+ <th width=17% align=left nowrap>Shipping Point</th>
+ <th width=15% align=left nowrap>Ship Via</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%></td>
+ <td><%orddate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>No.</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qt'y</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Serial No.</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%>.</td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td><%serialnumber%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <td colspan=6><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <%if notes%>
+ <td><%notes%></td>
+ <%end notes%>
+ </tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Spanish_A4-work_order.tex b/templates/Spanish_A4-work_order.tex
new file mode 100755
index 00000000..9b2f6f95
--- /dev/null
+++ b/templates/Spanish_A4-work_order.tex
@@ -0,0 +1,177 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}rlXrll@{}}
+ \textbf{No.} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ & \textbf{Serial Number} \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.45\textwidth}{
+\textbf{To}
+\vspace{0.7cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\parbox[t]{.45\textwidth}{
+\textbf{Ship To}
+\vspace{0.7cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{W O R K} \parbox{0.3cm}{\hfill} \textbf{O R D E R}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Order Date} & \textbf{Required by} & \textbf{Salesperson} & \textbf{Shipping Point} & \textbf{Ship Via} \\ [0.5em]
+ \hline
+ <%ordnumber%> & <%orddate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrll@{}}
+ \textbf{No.} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ & \textbf{Serial Number} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%serialnumber%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+\vfill
+
+\vspace{1cm}
+
+\rule{\textwidth}{0.5pt}
+
+\end{document}
+
+
+
+
+
+
diff --git a/templates/Spanish_Letter-ap_transaction.html b/templates/Spanish_Letter-ap_transaction.html
new file mode 100755
index 00000000..fd7a96eb
--- /dev/null
+++ b/templates/Spanish_Letter-ap_transaction.html
@@ -0,0 +1,229 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>A P - T R A N S A C T I O N</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Invoice #</th>
+ <td><%invnumber%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Date</th>
+ <td><%invdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Due</th>
+ <td><%duedate%></td>
+ </tr>
+ <tr>
+ <th align=left>Order #</th>
+ <td><%ordnumber%>&nbsp;</td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Employee</th>
+ <td><%employee%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=50%>
+ <table>
+ <%foreach account%>
+ <tr valign=top>
+ <td><%accno%></td>
+ <td><%account%></td>
+ <td align=right><%amount%></td>
+ <td><%projectnumber%></td>
+ </tr>
+ <%end account%>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Subtotal</th>
+ <td align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=2 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ </table>
+ </td>
+ <td width=50%>
+ <%notes%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <tr>
+ <td>&nbsp;</td>
+
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%text_amount%> ***** <%decimal%>/100 <%currency%>
+ </td>
+ </tr>
+
+ <%if paid%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <tr>
+ <th>Payments</th>
+ </tr>
+
+ <tr>
+ <td>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=left>Date</th>
+ <th align=left>Account</th>
+ <th align=left>Source</th>
+ <th align=left>Memo</th>
+ <th align=left>Amount</th>
+ </tr>
+ <%end paid%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td><%paymentmemo%></td>
+ <td><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid%>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <%end paid%>
+
+ <tr height=10></tr>
+
+ <%if taxincluded%>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <th colspan=3 align=left><font size=-2>Taxes shown are included in price.</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Spanish_Letter-ap_transaction.tex b/templates/Spanish_Letter-ap_transaction.tex
new file mode 100755
index 00000000..8bfd9f79
--- /dev/null
+++ b/templates/Spanish_Letter-ap_transaction.tex
@@ -0,0 +1,125 @@
+\documentclass[10pt,letterpaper,oneside,onecolumn]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+\centerline{\textbf{A P} \hspace{0.3cm} \textbf{T R A N S A C T I O N}}
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+<%end contact%>
+
+\vspace{0.2cm}
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Invoice \#} & <%invnumber%> \\
+ \textbf{Date} & <%invdate%> \\
+ \textbf{Due} & <%duedate%> \\
+ \textbf{Order \#} & <%ordnumber%> \\
+ \textbf{Employee} & <%employee%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabularx}{.5\textwidth}[t]{@{}llrl@{}}
+<%foreach amount%>
+ <%accno%> & <%account%> & <%amount%> & <%projectnumber%> \\
+<%end amount%>
+
+ \multicolumn{2}{r}{\textbf{Subtotal}} & <%subtotal%> & \\
+<%foreach tax%>
+ \multicolumn{2}{r}{\textbf{<%taxdescription%> @ <%taxrate%> \%}} & <%tax%> & \\
+<%end tax%>
+
+ \multicolumn{2}{r}{\textbf{Total}} & <%invtotal%> & \\
+
+\end{tabularx}
+<%notes%>
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100 <%currency%>
+
+\vspace{0.3cm}
+
+<%if paid%>
+\begin{tabular}{@{}llllr@{}}
+ \multicolumn{5}{c}{\textbf{Payments}} \\
+ \hline
+ \textbf{Date} & & \textbf{Source} & \textbf{Memo} & \textbf{Amount} \\
+<%end paid%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%paymentmemo%> & <%payment%> \\
+<%end payment%>
+<%if paid%>
+\end{tabular}
+<%end paid%>
+
+\end{document}
+
diff --git a/templates/Spanish_Letter-ar_transaction.html b/templates/Spanish_Letter-ar_transaction.html
new file mode 100755
index 00000000..22833384
--- /dev/null
+++ b/templates/Spanish_Letter-ar_transaction.html
@@ -0,0 +1,237 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>A R - T R A N S A C T I O N</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Invoice #</th>
+ <td><%invnumber%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Date</th>
+ <td><%invdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Due</th>
+ <td><%duedate%></td>
+ </tr>
+ <tr>
+ <th align=left>Order #</th>
+ <td><%ordnumber%>&nbsp;</td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Salesperson</th>
+ <td><%employee%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=50%>
+ <table>
+ <%foreach account%>
+ <tr valign=top>
+ <td><%accno%></td>
+ <td><%account%></td>
+ <td align=right><%amount%></td>
+ <td><%projectnumber%></td>
+ </tr>
+ <%end account%>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Subtotal</th>
+ <td align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=2 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ </table>
+ </td>
+ <td width=50%>
+ <%notes%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <tr>
+ <td>&nbsp;</td>
+
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%text_amount%> ***** <%decimal%>/100 <%currency%>
+ </td>
+ </tr>
+
+ <%if paid%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <tr>
+ <th>Payments</th>
+ </tr>
+
+ <tr>
+ <td>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=left>Date</th>
+ <th align=left>Account</th>
+ <th align=left>Source</th>
+ <th align=left>Memo</th>
+ <th align=left>Amount</th>
+ </tr>
+ <%end paid%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td><%paymentmemo%></td>
+ <td><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid%>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <%end paid%>
+
+ <tr height=10></tr>
+
+ <%foreach tax%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <th colspan=9 align=left><font size=-2><%taxdescription%> Registration <%taxnumber%></th>
+ </tr>
+ <%end tax%>
+
+ <%if taxincluded%>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <th colspan=3 align=left><font size=-2>Taxes shown are included in price.</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Spanish_Letter-ar_transaction.tex b/templates/Spanish_Letter-ar_transaction.tex
new file mode 100755
index 00000000..654d2b95
--- /dev/null
+++ b/templates/Spanish_Letter-ar_transaction.tex
@@ -0,0 +1,131 @@
+\documentclass[10pt,letterpaper,oneside,onecolumn]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+\centerline{\textbf{A R} \hspace{0.3cm} \textbf{T R A N S A C T I O N}}
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+<%end contact%>
+
+\vspace{0.2cm}
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Invoice \#} & <%invnumber%> \\
+ \textbf{Date} & <%invdate%> \\
+ \textbf{Due} & <%duedate%> \\
+ \textbf{Order \#} & <%ordnumber%> \\
+ \textbf{Employee} & <%employee%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabularx}{.5\textwidth}[t]{@{}llrl@{}}
+<%foreach amount%>
+ <%accno%> & <%account%> & <%amount%> & <%projectnumber%> \\
+<%end amount%>
+
+ \multicolumn{2}{r}{\textbf{Subtotal}} & <%subtotal%> & \\
+<%foreach tax%>
+ \multicolumn{2}{r}{\textbf{<%taxdescription%> @ <%taxrate%> \%}} & <%tax%> & \\
+<%end tax%>
+
+ \multicolumn{2}{r}{\textbf{Total}} & <%invtotal%> & \\
+
+\end{tabularx}
+<%notes%>
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100 <%currency%>
+
+\vspace{0.3cm}
+
+<%if paid%>
+\begin{tabular}{@{}llllr@{}}
+ \multicolumn{5}{c}{\textbf{Payments}} \\
+ \hline
+ \textbf{Date} & & \textbf{Source} & \textbf{Memo} & \textbf{Amount} \\
+<%end paid%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%paymentmemo%> & <%payment%> \\
+<%end payment%>
+<%if paid%>
+\end{tabular}
+<%end paid%>
+
+\vspace{0.5cm}
+
+<%foreach tax%>
+\textbf{\small{<%taxdescription%> Registration <%taxnumber%>}} \\
+<%end tax%>
+
+\end{document}
+
diff --git a/templates/Spanish_Letter-balance_sheet.html b/templates/Spanish_Letter-balance_sheet.html
new file mode 100755
index 00000000..aef74d0e
--- /dev/null
+++ b/templates/Spanish_Letter-balance_sheet.html
@@ -0,0 +1,100 @@
+<head>
+ <title>Hoja de Balance</title>
+</head>
+
+<body bgcolor=ffffff>
+
+<h2 align=center>
+<%company%>
+<br><%address%>
+
+<p>HOJA DE BALANCE
+<br><%period%>
+</h2>
+
+<table border=0>
+<tr>
+ <th align=left width=400 colspan=2>ACTIVOS<br><hr align=left width=250 size=5 noshade></th>
+ <th><%this_period%></th>
+ <th><%last_period%></th>
+</tr>
+
+<%foreach asset_account%>
+<tr>
+ <td>&nbsp;</td>
+ <td><%asset_account%></td>
+ <td align=right><%asset_this_period%></td>
+ <td align=right><%asset_last_period%></td>
+</tr>
+<%end asset_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>Total de activos</th>
+ <td align=right><%total_assets_this_period%><hr noshade size=2></td>
+ <td align=right><%total_assets_last_period%><hr noshade size=2></td>
+</tr>
+
+<tr>
+ <th align=left colspan=4>PASIVOS<b><hr align=left width=250 size=5 noshade></th>
+</tr>
+
+<%foreach liability_account%>
+<tr>
+ <td></td>
+ <td><%liability_account%></td>
+ <td align=right><%liability_this_period%></td>
+ <td align=right><%liability_last_period%></td>
+</tr>
+<%end liability_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td></td>
+ <th align=left>Total de pasivos</th>
+ <td align=right><%total_liabilities_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_liabilities_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr>
+ <th align=left colspan=4>CAPITAL<br><hr align=left width=250 size=5 noshade></th>
+</tr>
+
+<%foreach equity_account%>
+<tr>
+ <td></td>
+ <td><%equity_account%></td>
+ <td align=right><%equity_this_period%></td>
+ <td align=right><%equity_last_period%></td>
+</tr>
+<%end equity_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td></td>
+ <th align=left>Capital total</th>
+ <td align=right><%total_equity_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_equity_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>Total de pasivos y capital</th>
+ <td align=right><%total_this_period%><br><hr noshade size=2></td>
+ <td align=right><%total_last_period%><br><hr noshade size=2></td>
+</tr>
+</table>
diff --git a/templates/Spanish_Letter-bin_list.html b/templates/Spanish_Letter-bin_list.html
new file mode 100755
index 00000000..24440675
--- /dev/null
+++ b/templates/Spanish_Letter-bin_list.html
@@ -0,0 +1,189 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <th align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>B I N &nbsp;&nbsp; L I S T</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% cellspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>From</th>
+ <th align=left width=50%><font color=ffffff>Ship To</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+
+ <%if vendorphone%>
+ <br>Tel: <%vendorphone%>
+ <%end vendorphone%>
+
+ <%if vendorfax%>
+ <br>Fax: <%vendorfax%>
+ <%end vendorfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+
+ <br>
+ <%if shiptocontact%>
+ <br>Attn: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Order #</th>
+ <th width=17% align=left nowrap>Date</th>
+ <th width=17% align=left nowrap>Contact</th>
+ <%if warehouse%>
+ <th width=17% align=left nowrap>Warehouse</th>
+ <%end warehouse%>
+ <th width=17% align=left>Shipping Point</th>
+ <th width=15% align=left>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%>&nbsp;</td>
+
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%orddate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+
+ <%if warehouse%>
+ <td><%warehouse%></td>
+ <%end warehouse%>
+
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Pos</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Serialnumber</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Qty</th>
+ <th><font color=ffffff>Recd</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Bin</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%></td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td><%serialnumber%></td>
+ <td><%deliverydate%></td>
+ <td align=right><%qty%></td>
+ <td align=right><%ship%></td>
+ <td><%unit%></td>
+ <td><%bin%></td>
+ </tr>
+ <%end number%>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+</table>
+
diff --git a/templates/Spanish_Letter-bin_list.tex b/templates/Spanish_Letter-bin_list.tex
new file mode 100755
index 00000000..3d6052f9
--- /dev/null
+++ b/templates/Spanish_Letter-bin_list.tex
@@ -0,0 +1,147 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Recd} & & \textbf{Bin} \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.5\textwidth}{
+\textbf{From}
+\vspace{0.7cm}
+
+<%name%>
+
+<%address1%>
+
+<%if %address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country4%>
+<%end country%>
+}
+\parbox[t]{.4\textwidth}{
+\textbf{Ship To}
+\vspace{0.7cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%if shiptoaddress2%>
+<%shiptoaddress2%>
+<%end shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%if shiptocountry%>
+<%shiptocountry%>
+<%end shiptocountry%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{B I N} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Date} & \textbf{Contact}
+ <%if warehouse%>
+ & \textbf{Warehouse}
+ <%end warehouse%>
+ & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+
+ <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%orddate%>
+ <%end shippingdate%>
+ & <%employee%>
+ <%if warehouse%>
+ & <%warehouse%>
+ <%end warehouse%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Recd} & & \textbf{Bin} \\
+
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%serialnumber%> &
+ <%deliverydate%> & <%qty%> & <%ship%> & <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabularx}
+
+
+\rule{\textwidth}{2pt}
+
+\end{document}
+
diff --git a/templates/Spanish_Letter-check.tex b/templates/Spanish_Letter-check.tex
new file mode 100755
index 00000000..6742b5b5
--- /dev/null
+++ b/templates/Spanish_Letter-check.tex
@@ -0,0 +1,75 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.4cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.0cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+
+\fontfamily{cmss}\fontsize{9pt}{9pt}\selectfont
+
+\parbox[t]{12cm}{
+ <%company%>
+
+ <%address%>}
+\hfill
+\parbox[t]{6cm}{\hfill <%source%>}
+
+\vspace*{0.6cm}
+
+<%text_amount%> \dotfill <%decimal%>/100 \makebox[0.5cm]{\hfill}
+
+\vspace{0.5cm}
+
+\hfill <%datepaid%> \makebox[2cm]{\hfill} <%amount%>
+
+\vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{2.8cm}
+
+<%company%>
+
+\vspace{0.5cm}
+
+<%name%> \hfill <%datepaid%> \hfill <%source%>
+
+\vspace{0.5cm}
+\begin{tabularx}{\textwidth}{lXrr@{}}
+\textbf{Invoice No.} & \textbf{Invoice Date}
+ & \textbf{Due} & \textbf{Applied} \\
+<%foreach invnumber%>
+<%invnumber%> & <%invdate%> \dotfill
+ & <%due%> & <%paid%> \\
+<%end invnumber%>
+\end{tabularx}
+
+\vfill
+
+\end{document}
+
diff --git a/templates/Spanish_Letter-income_statement.html b/templates/Spanish_Letter-income_statement.html
new file mode 100755
index 00000000..fbb5653b
--- /dev/null
+++ b/templates/Spanish_Letter-income_statement.html
@@ -0,0 +1,77 @@
+<head>
+ <title>Balance de Situación</title>
+</head>
+
+<body bgcolor=ffffff>
+
+<h2 align=center>
+<%company%>
+<br><%address%>
+
+<p>BALANCE DE SITUACIÓN
+<br><%period%>
+</h2>
+
+
+<table width=100% border=0>
+<tr>
+ <th width=400 align=left colspan=2>INGRESOS<br><hr width=300 size=5 align=left noshade></th>
+ <th><%this_period%></th>
+ <th><%last_period%></th>
+</tr>
+
+<%foreach income_account%>
+<tr>
+ <td width=4>&nbsp;</td>
+ <td><%income_account%></td>
+ <td align=right><%income_this_period%></td>
+ <td align=right><%income_last_period%></td>
+</tr>
+<%end income_account%>
+
+<tr>
+ <td colspan=2>&nbsp;</td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td>&nbsp;</td>
+ <th align=left>Total de ingresos</th>
+ <td align=right><%total_income_this_period%><hr noshade size=2></td>
+ <td align=right><%total_income_last_period%><hr noshade size=2></td>
+</tr>
+
+<tr>
+ <th align=left colspan=2>GASTOS<br><hr width=300 size=5 align=left noshade></th>
+</tr>
+
+<%foreach expense_account%>
+<tr>
+ <td>&nbsp;</td>
+ <td><%expense_account%></td>
+ <td align=right><%expenses_this_period%></td>
+ <td align=right><%expenses_last_period%></td>
+</tr>
+<%end expense_account%>
+
+<tr>
+ <td colspan=2>&nbsp;</td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td>&nbsp;</td>
+ <th align=left>Total de gastos</th>
+ <td align=right><%total_expenses_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_expenses_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>GANANCIA/(PERDIDA)</th>
+ <td align=right><%total_this_period%><br><hr noshade size=2></td>
+ <td align=right><%total_last_period%><br><hr noshade size=2></td>
+</tr>
+
+</table>
diff --git a/templates/Spanish_Letter-invoice.html b/templates/Spanish_Letter-invoice.html
new file mode 100755
index 00000000..f5515745
--- /dev/null
+++ b/templates/Spanish_Letter-invoice.html
@@ -0,0 +1,153 @@
+<head>
+ <title>Factura de Instalaciones Industriales San José</title>
+</head>
+
+<body bgcolor="ffffff">
+ <!-- Cabecera -->
+ <table width="100%">
+ <tr valign=bottom>
+ <td width="10">&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr>
+ <th colspan="4"> </th>
+ <th align="left">
+ <h4>F A C T U R A</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td colspan="5"> </td>
+ </tr>
+
+ <tr>
+ <td colspan="4"> </td>
+ <td align="left"><%name%></td>
+ </tr>
+
+ <tr>
+ <td>Número</td>
+ <td>Fecha</td>
+ <td>Cód. Cliente</td>
+ <td width="10%"> </td>
+ <td><%address1%></td>
+ </tr>
+ <tr>
+ <td><b><%invnumber%></b></td>
+ <td><b><%invdate%></b></td>
+ <td><b><%customer_id%></b></td>
+ <td> </td>
+ <td><%addr2%></td>
+ </tr>
+ <tr>
+ <td colspan="4">
+ <td><%city%> <%state%> <%zipcode%></td>
+ </tr>
+ <tr>
+ <td colspan="4">
+ <td><%addr4%></td>
+ </tr>
+ </table>
+ </table>
+
+ <!-- Cuerpo -->
+ <table width=100% cellspacing=0 cellpadding=0>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <!-- <th align=left><font color=ffffff>Número</th> -->
+ <!-- <th><font color=ffffff>Cant.</th> -->
+ <th align="left"><font color="ffffff">Cant.</th>
+ <th align="left"><font color="ffffff">Descripción</th>
+ <th align="left"><font color="ffffff">Precio</th>
+ <!-- <th align="left"><font color="ffffff">Dto.</th> -->
+ <th align="left"><font color="ffffff">Importe</th>
+ </tr>
+
+ <tr>
+ <td colspan="4"><hr noshade></td>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+ <!-- <td><%number%></td> -->
+ <!-- <td><%unit%></td> -->
+ <td align="right"><%qty%></td>
+ <td align="left"><%description%></td>
+ <td align="right"><%sellprice%></td>
+ <!-- <td align=right><%discount%></td> -->
+ <td align="right"><%linetotal%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan="4"><hr noshade></td>
+ </tr>
+ </table>
+
+ <!-- Subtotales, impuestos y totales -->
+ <table width="100%">
+ <tr>
+<%if taxincluded%>
+ <th align=right>Total</th>
+ <td align=right><%invtotal%></td>
+<%end taxincluded%>
+<%if not taxincluded%>
+ <th align="right">Base imponible</th>
+ <td align="right"><%subtotal%> &euro;</td>
+<%end taxincluded%>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th align="right">IVA (<%taxrate%>%) sobre <%taxbase%>:</th>
+ <td align="right"><%tax%> &euro;</td>
+ </tr>
+<%end tax%>
+
+<%if paid%>
+ <tr>
+ <th align="right">Pagado:</th>
+ <td align="right"><%paid%> &euro;</td>
+ </tr>
+<%end paid%>
+
+ <tr>
+ <td>&nbsp;</td>
+ <td><hr noshade></td>
+ </tr>
+
+ <tr>
+ <th align="right">Total:</th>
+ <th align="right"><%invtotal%> &euro;</th>
+ </tr>
+
+ <tr>
+ <td colspan="4">&nbsp;</td>
+ </tr>
+
+ </table>
+
+
+ <!-- Pie -->
+ <table width="100%">
+ <tr valign=top>
+<%if notes%>
+ <td>Notas</td>
+ <td><%notes%></td>
+<%end notes%>
+ </tr>
+
+<%if taxincluded%>
+ <tr>
+ <th colspan="2" align="left"><font size=-2>Los precios incluyen impuestos.</th>
+ </tr>
+<%end taxincluded%>
+
+ </table>
+
+
+</body>
+</html>
+
diff --git a/templates/Spanish_Letter-invoice.tex b/templates/Spanish_Letter-invoice.tex
new file mode 100755
index 00000000..7fdf0be8
--- /dev/null
+++ b/templates/Spanish_Letter-invoice.tex
@@ -0,0 +1,110 @@
+% ve-invoice.tex
+\documentclass[letterpaper,oneside]{article}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+%\usepackage{marvosym} % Euro \EUR
+\usepackage{fancyhdr}
+\setlength{\topmargin}{0cm}
+\setlength{\topskip}{0cm}
+\setlength{\headheight}{0cm}
+\setlength{\headsep}{0.5cm}
+\setlength{\textheight}{24.2cm}
+\setlength{\textwidth}{19cm}
+\setlength{\oddsidemargin}{-1.4cm}
+\setlength{\evensidemargin}{-1.4cm}
+\setlength{\footskip}{1cm}
+
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{13.0cm}
+
+\newsavebox{\hdr}
+
+%Or whatever font you want!
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\sbox{\hdr}{
+
+\begin{minipage}[t]{0.6\linewidth}
+\vspace{2.2cm}
+
+\begin{tabular}[t]{p{1.7cm}p{2.4cm}p{1.7cm}}\\
+\centering{Número} & \centering{Fecha} & C. Cliente\\
+\centering{<%invnumber%>} & \centering{<%invdate%>} & \centering{<%customer_id%>}
+\end{tabular}
+\end{minipage}
+
+\begin{minipage}[t]{0.4\linewidth}
+\textbf{F A C T U R A}
+\vspace{1cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+\end{minipage}
+
+}
+
+\pagestyle{fancy}
+\renewcommand{\headrulewidth}{0cm}
+\renewcommand{\footrulewidth}{0cm}
+\cfoot{\thepage}
+%\markboth{\usebox{\hdr}}{\usebox{\hdr}}
+%\thispagestyle{empty} %use this with letterhead paper
+
+<%pagebreak 65 27 37%>
+\end{tabular*}
+\newpage
+\usebox{\hdr}
+%\markboth{\usebox{\hdr}}{\usebox{\hdr}}
+\vspace{0.5cm}
+
+\begin{tabular*}{\textwidth}{rp{\descrwidth}rr}
+ \textbf{Cant.} & \textbf{Descripción} & \textbf{Precio} & \textbf{Importe} \\ \hline
+<%end pagebreak%>
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\usebox{\hdr}
+\vspace{0.5cm}
+
+\begin{tabular*}{\textwidth}{rp{\descrwidth}rr}
+ \textbf{Cant.} & \textbf{Descripción} & \textbf{Precio} & \textbf{Importe} \\ \hline
+<%foreach number%>
+ <%qty%> & <%description%> & <%sellprice%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+\parbox{\textwidth}{
+\vspace{12pt}
+<%if notes%>
+ <%notes%>
+<%end if%>
+}
+
+\vfill
+
+\begin{flushright}
+\begin{tabularx}{10cm}{Xr@{}}
+ \textbf{Base imponible} & \textbf{<%subtotal%>} \\
+<%foreach tax%>
+ IVA (<%taxrate%>\%) sobre <%taxbase%> & <%tax%> \\
+<%end tax%>
+ \hline
+ \textbf{Total} & \textbf{<%invtotal%>} \\
+\end{tabularx}
+\end{flushright}
+
+%\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+\end{document}
+
diff --git a/templates/Spanish_Letter-logo.eps b/templates/Spanish_Letter-logo.eps
new file mode 100755
index 00000000..3a22b2ff
--- /dev/null
+++ b/templates/Spanish_Letter-logo.eps
@@ -0,0 +1,1334 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: GIMP PostScript file plugin V 1.17 by Peter Kirchgessner
+%%Title: Brazilian_Portuguese-logo.eps
+%%CreationDate: Thu Aug 31 19:25:05 2006
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 2
+%%Pages: 1
+%%BoundingBox: 14 14 415 215
+%%EndComments
+%%BeginProlog
+% Use own dictionary to avoid conflicts
+10 dict begin
+%%EndProlog
+%%Page: 1 1
+% Translate for offset
+14.173228346456694 14.173228346456694 translate
+% Translate to begin of first scanline
+0 199.99842519685043 translate
+399.99685039370081 -199.99842519685043 scale
+% Image geometry
+400 200 8
+% Transformation matrix
+[ 400 0 0 200 0 0 ]
+% Strings to hold RGB-samples per scanline
+/rstr 400 string def
+/gstr 400 string def
+/bstr 400 string def
+{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop}
+true 3
+%%BeginData: 80402 ASCII Bytes
+colorimage
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+fDblg6K\=Q"WB-W4?Pdo4p6+l]&ih]rrrDpij);hp&GL',"Q[#Lmt]mi:-UBo)Ajlp>C')q#Ca-
+0OT-[R^UZ0q#:3k!rftBr;[*-4`Pt>]\`;[p&>'%-iO)I,T-[I!!OC1jn&BKnc&dlp#<8P%e]l2
+"!U9TI#+8tb2Ddcrq6:-g3RO66TZkO/89R1ak>G'lMCDUrVc`p_uG5~>
+fDc3-AgAK<(`*r''GKsK"r/C?3]oMfm61YtOLjQNo`#*op#<8P%e]l2"!U9TI#+8tb2Ddcrpp'l
+rq>8m&GZ;5#V]Y2L75R!lM1AVrrW28$N0r1#!HsURCqDKrq69l[jV.T![JWbkPtc,R-!r:rpg!l
+rq59V:(Hst$j.\EE.!J2ZHD+pqYp0f(YX1N<'rc'0emR!XjZ4ijR;sBr;HTnrknbd~>
+fDc6;J3>hE.46Gg,U"<#*sNl<2EEr_4mbE9G`]Muqt0mlrq59V:(Hst$j.\EE.!J2ZHD+pqYp'c
+"TJ,QFV+?K$4&=nG_VZqdd$W,r;Qit^^C#?#R3G3J!mt+o`"O`!OjHU!!4D`!pBUf*LPs[qu6-c
+"oe2SZ;(o'!"8rR88rs4S$L2pnG<.WrtjC8CK*Y`2)R41LpG[tlg+-<qu$Ekrr0h8J,~>
+gA_6CM^RKa#SJU[Cl4ICR$dH4"J2pKnc&.[#laS]ca8*s2'Dku%L*7S1/_:`E/L-e^<lNJn,*ps
+lGB9$.1d!s#n@h2C5&"Yb2DgerqcX(q78g7,slHqMPJ)Jp&4[cs*k'%9)\er&Pd:_DG`D6!pTal
+;j3B4I=8["q>L$e)ZKKoca5M5$jR7P',DcW=EAnFP+oA,h<ak4r;@'%mG5jnSV:rb4tRZYo)K.6
+.77QqVp"]-r;HW:s*t~>
+gA_WSXCb's7mAmd0J>%2/aY(p3(dS&NKf`rR.?XJT!Hl9rq$..rqGU%[!bb.+:/;Z%M^0O>@_Mp
+OJ9/'f_#".r"](qb,Jl)'b_,j)_+BrKpT$di:6^DqYq$#\j.Db6>_(,UVl'`rV6EmU]HuXrW!3>
+=ES\+<]_9&l2V,jVQ@/!U<E9+rV$70rqGU%Zq25S%MBBi(a_LMF+&e+U:&/"m.U>Sr=/\qk1@he
+W0`?`B2UiFr@A%'1d4D,8ded6G`JT6f_#";rVjq=J,~>
+gA_WV`KPh&H>[%h;Gg7d:@1a]<FBcqNg,isR.?XJT!Hl9rq$..rqGU%[!bb.+:etm&f`Dk@V^"7
+Q)D4<h=UO3r"](rd'%+>(`!f$,WA_DKpT$di:6^DqYq$#\j.Db6>_(,UVl'`rV6Em^B(K0rW!3B
+@!Hj=>!*c+l2V,lZbFJn^"N,TrV$70rqGU%Zreh$',D<")CRjQF+&e+U:&/"m.U>Sr=/\tmGcjE
+_7$G9OF(D5rCmAj>ASW`J.%6uT<>oSiV!$ErVjq=J,~>
+h#@HEIh:?7#Tc9FPJ##]c-H(0"4GulqXORjrqc-Bc+C!IjT#8`m/R?)T"N_Cq#1!f%/obL[[`MH
+U:8M5p\spee,TVcf]W#.pAY9pqXED]p&G=-'G_N()]Tmq*WQH&!!iZW>`-Jlq#(-9s*t~>
+h#@HJUfI@c"%YgF4l\X1;/(]X^WF^EcM,WedbO6dnc'C(qXEFf];hGR.Olks.P*2,2*!ie7S*/D
+!)3/["\;$E2D?]].L7OVFe67umJ-YTrs\ksfX@<5QD1k8kkG)Nrt@jG!<<*#(b-sc0JtaF0Ie1Z
+$3BMo#oYim84nopkP+uLrtbV1nDI&"0eP",.Ochs/1rtM85<,d>l%b,:\RH`84>d,rB(0F5Xe6:
+8dJ+(MQ5+sq#(-9s*t~>
+h#@HM^PMi="+56/C#`k4FbQ3b_9'pGcM,WedbO6dnc&ppqXEFf];hGq8cD6f8P;iZ>@VDgG^Y)7
+J,k2sJ.d?ZFD5#[9h@lH8ksi,]\)WHrV6C$rUSULS<B24\'X@5rqHF+H9;6/!!+Q@7nZfd?<U9"
+2^8k8m/RGEAorHOWS$D.rq??urqc-BFC%sC91f+R$;!ld>@_PnIYEZ=qi1Z0pOE?oG].?qBEN!f
+G^]78#_J8?^teSWr;Ot@J,~>
+h>[MB'\!*i,YiZYa62mZnF?&JncSOYqu6'a#Q=GfkM4KR)UeZi*-S.$mJQYW$N0GOcGmrTj73!F
+p\t6"ec5mb/8hc?meueX"TA*n,R_Hh#7aOmh":IArmCar~>
+h>[M`=SbYi8,u0:7LELMS$gZ-mdKZ8nc&(]o_87^n,EXkq!mP&dV;DR3!VH*4[;>&7nDf8%S9,W
+5<Lqc3BBc^Us&0'p&>Bsn__X3aOK8?qYp6h!OE+3!##DT-n$]+5!hV'5!1e]0J"C`$j,nu#UVT+
+?\Yl5meueX#Q=FJ>Xpq<3W:uC3BKAh6:FC8lq.=N84WVJ!_5dQmn*g`J?Io(qYgE@s*t~>
+h>[N!MYho*Isl\"H4#P$Zc1S]mdKZ8nc&(]o_87^n,F("q!mP&dY;XJ@:E_XBl7s8H[^J.J.@!Q
+F)5K!@U`kaL8<#[r:U'sr:/[i`lQZinbW7ZrrKG;rW!T71dso2?>FS'EGT5p>#S'T-5?[R!!rZm
+AU&loZI&%<o`#U'pn<@]Bk:d_@:E_XBl7s8H[^J4J-(4LI/A3kI"$S7J-Uh)_rgUfrVk4EJ,~>
+hu<`75k=sc"VrFC5tXgF:/4DF.i/9O!!*]Ur]C="me$ATli.:jr:opKd%Y/9'&!<k"#=J;Ni^b$
+rq-3qrV,jMn+?JTpAY,>f)Q'a;0.S\XNp84o)Asihn"ng;)Ad$!!WNiQK@f9rmUmt~>
+hu<`@GOnE:9Mnkt@V0:fC2.Hn>Z4;[8dSO+F*)Mgme$ATli.Fnr:opKd&28#:.@`E8`E>N8Ou<>
+7TaSXNi^b$rq-3qrV,jMn+?JTpAY,>qu@NQ,q(K/6:XU>84Z3<69dRl1bgU.)%[&F!!j*8F,?6b
+cL1Z%rseb\\s@h_>t[RS7Rp!@b";k3FKjs$qYntDJ,~>
+hu<`GT_![<IscQgH[C/>IKP(MIt-[4!Jlg9S-6.co_SRQrso&+q"3gtWf)=NG^=adJ)l+hIsu`i
+GBS%NIZCMZo)A:]#Q=DemdKfErV$6kHi3pL!AZo0<+U)rrdG<'H$++DB44tC:-L3L%.jN*&m043
+Q`SL#rUTsuptrZOMLp5#G'A1WI"$RgJ-LRo_WgairmUmt~>
+i;Wha&G?)3"X69@G^kI,P*_]1rh'IfS=#7L5SE5[">J!QnGMJL#l<l9^9FDd9H)af#qBJ1L7#-c
+jnSiGs8Drirr@!8!!4`+#i,Ic89UN4bi8<po)B'omao@cYc+.?63tL0"V>7hnG)t4s*t~>
+i;Wi"<VB#m9N5D9G^kI,P*_]1rh'IfS=#CdBN""c"DGs4nGMJL#l<l9^9FDnE)tgf$!(hdL7#-c
+jnSiGs8Drirr@!8!!Y&=.ks.S8GYpg8Ou<=69dRm2)6d5*"E#D!!c&<S@?`%p&=O^$N'8C_mckK
+Sr%2W`(C25NR[ImrRLpu~>
+i;Wi2M"Z?,IsQ9]G^kI,P*_]1rh'IfS=#ItL4SN<"H^d\nGMJL#l<l9^9FE!MLs]8$$^E6L7#-c
+jnSiGs8Drirr@!8!!b/H79+#EI=M0F%tB%UH$44GBOY4I:e*2V!qu["89UN4bi8<po)B$nmao@c
+Yc+.WLr4`HL9'%tq#/bCJ,~>
+iVrn9p&GO<7W!I+P+J\^^;eCEe,@c%d`oeFZDDb'!pTag,b;X/qWIkdrqc0Li7?&`XFWVBirBDi
+9lbcMYfPVcpAO"N!/(1L";kW^EBr@\#!RdOh!Xn6nc'!rqXWt6i7cW"\Y):S!"&cA/3cp6C2SKO
+KDgH,J9#$l1DK9X"TqW;mJ$S2s*t~>
+iVrnZp.>ck@;pOIP+J\^^;eCEe,@c%d`oeFZDE@g9Bo+P>b/RgqWIkdrqc0Li7?&`XH.-lj%9YP
+@WI!bYfPVcpAO"N!/(1L"rLi`F'qF.oh#Wa84H$85Wq.e1Fs:Bq#CU_L:H%,pAFI\$i^"nlfI'Y
+d`8noDWsb":g%1=D00uNJV3oS"bM/FCg^008d.n<bO,'&fDg@~>
+iVrnsp4*U"FE;b_P+J\^^;eCEe,@c$d`oeFZDEhBl$rniS\=([kPkqhqXNh.f#kY,R>QRUJ-pdG
+Ee'I[aP?+TrSmhWKDY]R(h76%G^"W1J.7!WI!U!XDe`ij=A("Cq#CU_L:H%,pAFI\$i^"nlfI'Y
+d`8nsNp2'#I!U'`H[L9mJV3fP!J>skJ-CLtdd?f-fDg@~>
+ir9!spAb^?;KRDLTsM\cguRbgo(;VSp'^Qco'Yc%fZLdo7Ki&X"<E/rh"^"2$i^)#p@.8#cFooT%
+d!`u!`F)pUr;*Wq#(-NrrL.Cqu?puFHE]?JdCT@!=T>3!!P?@^Ztarn,NFe$N9o!q"4":g;nL?m
+f3e)/l6J6KT).cU8P&qZM_'8Za$U.SV:/k!q?6o"'3Y5q#/nGJ,~>
+ir9"HpIYrnA9<<^TsM\cguRbgo(;VSp'^Qco'Yc%fZLduDbTLi"B:&Th"^"2$i^)#p@.8#cFp'#
+;<:CVA93O%`80kVr;P^U!QP?@!!Z;BOKZBc:@Up_8Ou?@6pX!s/dhFT"ZVIUlMUYMs8W'*rVZNe
+o^:kqaHB6c8e"NtATN6PN0Kj,VlR#,r3Qa9Z)jdmNceQ!nO`sYK$s&]rRq4$~>
+ir9"fpOEd$EccelTsM\cguRbgo(;VSp'UKbo'Yc%fZLe&NpD2uI>"ZVpuVM`rquWdnE8TP]r@0H
+ja[YVF,-R0h<t(9ro3qY`ru;?##TK(YJ-renph'sIXHKeF`;))8.,1n"ZVIUlMUYMs8W')rVZNe
+o^:kqaJJ<T%=WPDFaSk$PanJGX08i,Zj3qBXJMJOMM(DK"bEE!mJ-Y5s*t~>
+j8T+/p](g,5&bn2VnUU<m.C)NrVlflrsA]'qY'F@fZ'=>m/R8.I&>WmiVs5`r:ojHg;p9k"R#gj
+/ocWFcKY*%hu<[5qu@!=E/1aQlJS-;lMq#'>>b\&!!G<<]''%TrrrE"p[6mkmf3eaEIa7KZG+E,
+f%Ss<iqqdCini>8aLn[:8e(:j"Uoe:nG<.=s*t~>
+j8T+Tpdu&i?>t:RVnUU<m.C)NrVlflrsA]'qY'F@fZ'_$m7ILZI&>WmiVs5`r:ojHg;pF@9^#(R
+=E0(pcKY*%hu<[5qu@!=E/1aQlJSa>m7IOQ7nd5e#5\B'3Jb90rTF1arquNYhOa1.%:=+*PGGLu
+aO&Mlh;I;ij9ai&f[7dQY*X*(nO`s^Rc*]3rnII'~>
+j8T+opj`m)FDuVhVnUU<m.C)NrVlflrsA]'qY'F@fZ'tOm=>4a!iF]HiVs5`r:ojHg;pR`J`qUh
+G&`89cKY*%hu<[5qu@!=E/1aQlJT4*mXPLjI=$!B;?m!u"?D:LkPaTD"oeGombY5;J.6R>J<Qe7
+^<"[Pg>1]HqrA(ChUp5s]WRfaK(4?pKWsD(qYo7LJ,~>
+jSo4Pp]([*;KIM`][l<<qYgE_rs/Q#p?^YWLDTCZ"<2`cgA'P)#QFYqmblB\-0YC6>'usdm/$_=
+rrBP*!!kT/R`b'rq!(]B!!Ea>Fbj)q!!G98[cRGJrr`5pkZ@6R$q,K5^XhE/n+?>Kq>0sc$iBep
+o^D##d_Vqg$1Ruu1qr/HrS7F'~>
+jSo4lpdtofA93Er][l<<qYgE_rs/Q#p?^YWRTJrM"B'WEgA'P)#QFYqmblBh?g1/eApg5pm/$_=
+rrBP*!!kT/R`b'rq!*=p8d%n&Fbj)q!!G98[cRGJrr`5pk_&@s$t+IQ^XhE/n+?>Kq>0sc$iBep
+o^D##d_W#4:[q$[C;oB0rS7F'~>
+jSo5+pj`a%E-$])][l<<qYgE_rs/Q#p?^YWVhOSis*OmFgA'P)#QFYqmblBpMWoWqE.";%m/$_=
+rrBP*!!kT/R`b'rq!+O=J-::;Fbj)q!!G98[cRGJrr`5pkbIWt%!?rf^XhE/n+?>Kq>0sc$iBep
+o^D##d_W)NK(4?oP02t]rS7F'~>
+jo5A)"Si$(!`*lnWQXDqqu5m\"o\5`gq6>M!!F6gVV:h"rrrAsnDM>llMq(oE/M0dqVD/O@/Bp0
+:4TD#q#CBc$g[ir:N_`*_YX<98;=S8r8[eZrqbC[nGie`KsKM+qYgE`rs8W%q=En-bcF/$!!Emu
+hXUO"s*t~>
+jo5A8:&%<d@WR@)bN8Bnrp'LerV5d8^NT*="B'WEgA'G&"o\8di5gH78d.n-MR_aDh>[I_qZ$ms
+J?.K#s8Vailq.CiFcWoHqZ$aiL:67Bj8T5\qVbBC8dAgZZJ>*KrVl?e#labtoBP/UY]'&("B;;U
+nbh5CJ,~>
+jo5ACK(sj%EH?r8bN8Bnrp'LerV5d8_Ns\As*OmFgA'G&"o\8di5qMTJ-CC@MR_aDh>[I_qZ$ms
+J?.K#s8VhIm!o4YFcWoHqZ$aiL:67Bj8T5\qW*D$J-U7OZJ>*KrVl?e#labtoBP/U[#jg."GO5>
+nbh5CJ,~>
+k5PJR,kq?E0QDiId-UW.k5PV`pZg:]#k@ru)gnO:pt>ZLrV5d'lMq))FI()<rn[SS./NuL;i%sG
+r;Zf#li724E/(OJn,!(f@Z%e]rSdbWq.K3t"@e6Zkl'iI#QF\snD_`I&Fof)!cuoZqYoCPJ,~>
+k5PJUAGAb%=`K1rd-UW.k5PV`pZg:t:@_![;LG@qpt>ZLrV5d,lUh=XFI()<rn[SS./NuL;i%sG
+r;Zf:lq.F\E/(OJn,!(f@Z%e]rSdbWq2t2>"Cd5!kl'iI#QF\snD_`^;t<Na99@]kqYoCPJ,~>
+k5PJXP5'P4G&`8:d-UW.k5PV`pZg;0K(=HlHig2!pt>ZLrV5d/l[T.cFI()<rn[SS./NuL;i%sG
+r;ZfKm!o7bE/(OJn,!(f@Z%e]rSdbWq60=="EoX5kl'iI#QF\snD_`mK^jQqV:Fu0rnma+~>
+k5PF"p](L*BRZZ!mJGrD"oeDjiMmgf!!F0eVV:gsrrN&8lMq&+H(`XZh#@?rqZ$k"N5+ZVs8Q?j
+!!Q)BSBL?equ?m=Eg"B.ro*kXrl=O/"@e9\kl'`F"o\8dhQ\Bs!!HlYlM:G;s*t~>
+k5PFLpdt`bCOVu$mJGrD"oeDjiO)k\8d&%>VV:gsrrN&GlUh:XH(`XZh#@?rqZ$k"N5+ZVs8S#D
+8d/[LSBL?equ?m=Eg"B.ro*kXrmgO2"Cd8#kl'`F"o\8dhR[+b8d'molM:G;s*t~>
+k5PFjpj`QtDLS;'mJGrD"oeDjiP(->JH'uuVV:gsrrN&Rl[T+bH(`XZh#@?rqZ$k"N5+ZVs8T7g
+J-Bt=SBL?equ?m=Eg"B.ro*kXro!<s"Eo[7kl'`F"o\8dhS>'>J-;FglM:G;s*t~>
+kPkS3"S_s#20=tpk5+$9"TJ2]^*iOQ":fgUf_F%t!35tt!'9TL";cE\f_=2$!$D(<#<RmZlM^bS%
+.+$!"`9"#i;'/G!!Q&BT[NK3i;WiT(@hG.7Z+hArT=+_rV5[#2XpbM@a"$3ro*m-~>
+kPkS@:&%<a>',n@k5+$9"TJ2]`a\R4"AX?@f_F%t!5e\,!*o"c"AsNAf_=2$!$D(<#<RmZlM^bV
+;XI'\9Q#Tki;'/G!!Q&BT[NK3i;WiT=n5/f@Z%e]rT=+_rV5[&D"1+#K$3ESro*m-~>
+kPkSIK(sj"F``b[k5+$9"TJ2]bDl.E"Fb`pf_F%t!7^st!-I^\"FPQlf_=2$!$D(<#<RmZlM^bY
+L@'KqIrC(Ji;'/G!!Q&BT[NK3i;WiTMXl9#G)EoqrT=+_rV5[)P4=&*R`jskro*m-~>
+kPkNYpAbA&J#Lukrnm_Yrql000(f2I%==l%p=B6DL]%2RB-$LB":TXQf_=2$!)ECk"qZO!jo#.R
+qu?^*nc/k8FHjf4nKe&5"X%c?[Ggu>rrN*rnc/e^MS&*Njo5J_qsi8tnGiZ+b3A`\s*t~>
+kPkO6pIYU&J#Lukrnm_Yrql04BD"k":4&bfp=B6DWr5NjCfU!t"AX<>f_=2$!)ECk"qZO!jo#.m
+r(6rank'*bFHjf4nKe&5"X%c?[Ggu>rrN+Nnk'$oMS&*Njo5J_qsi<VnO`n<b3A`\s*t~>
+kPkO\pOEEdJ#Lukrnm_Yrql06OS+,,IX@jAp=B6D_u5)dDgh/+"Fb]nf_=2$!)ECk"qZO!jo#/+
+r."crnpgpjFHjf4nKe&5"X%c?[Ggu>rrN+snpgjdMS&*Njo5J_qsi@(nUL_1b3A`\s*t~>
+kl1Y/pAb@.EK%Qnr7q;Sr:88hp&G4)HD/m_f)G_`rW!!*Ea8)6"*C6ep>#ZJV"t&p5cE<-r_37j
+!=D?f!!P$%U"&U2r;[$/@XF`ln,;,C!.j\@"@e9\kl'QA"9%lB.e3QB!e8G\qVqO*~>
+kl1Y=pIYTbEK%Qnr7q;Sr:8EPp.>H_HD/m_f)G`7r^m5cEcUYA"*^Hhp>#ZJV"t&p5cE<-rdar>
+!DQtm8d/@DU"&U2r;[$/@XF`ln,;,C!2]6Y"Cd8#kl'QA"9%lFAb&Fr99IHbqVqO*~>
+kl1YGpOEEpEK%Qnr7q;Sr:8L&p4*9pHD/m_f)G`WrdY'!Ee<e2"+$Zkp>#ZJV"t&p5cE<-rhfXE
+!If+\J-C.CU"&U2r;[$/@XF`ln,;,C!5J)T"Eo[7kl'QA"9%lHOR[i'T?QZuir=N~>
+kl1WbpAb@BG+-\GrnIGTrUeS^pAb=*H(`[\f)G_;rW!$:G*F0?!!?8jch#rl!V\&>!!H?;jlQ^E
+!!+i]nc/eTJ?-URr;[$*<d'Y=jS@X3!28r`"@e9\kl'N@"9.u;'Cl,+%[ti7r8[g-~>
+kl1X=pIYThG+-\GrnIGTrUe`LpIYQ`H(`[\f)G_rr^m8iG*H;&8crmuch#rl!V\&>!!H?;jm,V=
+8c`(1nk'$jJ?-URr;[$*<d'Y=jS@X3!5.kp"Cd8#kl'N@"9.uC<q8ic;52M-r8[g-~>
+kl1XapOEElG+-\GrnIGTrUeg&pOEBqH(`[\f)G`ErdY)uG*IjRJ-1.ech#rl!V\&>!!H?;jmRd!
+J,sh8npgjdJ?-URr;[$*<d'Y=jS@X3!714d"Eo[7kl'N@"9.uHM"6'!Ju6ubr8[g-~>
+l2LeM"SVm!3.7[VpY#QKrq4GJp](F&GbER[f)G^mrW!$IHD#o\!!G-A`U3Z\rrW/;#PnE%4hQFF
+!!6GR!qQBo7=\hVr;['0<csA,g@YC#rrBe(!!GcK]BK4PrrW2mU@A3d/?mh"roF*0~>
+l2LeS:%q6_>^`L%pY#QKrq4]?pdtZ_GbER[f)G_Xr^m8nHD$eu8d&I``U3Z\rrW/;#PnE&4hRFY
+rCR-)I7s0("(?^h%K-83$<D;.ZJ+sMh>[K%nk'$oMS&*NiVruYosaH`"CSIeo`!qOJ,~>
+l2LeWK(jcuG($7?pY#QKrq4lupj`KrGbER[f)G`3rdY)qHD%D1J-:7_`U3Z\rrW/;#PnE'4hS.L
+J,Xs!E.7A."*K-'%K-83$<D;.ZJ+sMh>[K3npgjdMS&*NiVruYou?NP"GX/6o`!qOJ,~>
+l2LaMp&G4`K!=20f`)'QoX5)$!!@J;e+M>m!;l]p"?(_.d3%oZ":U*rjnmj5!r/2dq>^O((]==9
+)KC]Vo)Je5%/^)1*G'JTYgr7@h#@B&nc/e^MS&*Ni;WlWo2tM_"(8e&q;hR+~>
+l2Lakp.>HqK!=20f`)'QoYaT$8cs=0e+M>m!;udf"C-DTdU2Q;"AXc_jnmj5!r/2dq>^g0/j)To
+8lBYf>4bDg68&cF!!aNUG`ArXnGM)A!8d9="Cd8#kl'H>!r__EnO`n1]]AnLs*t~>
+l2Lb,p4*9gK!=20f`)'QoZi-bJ-1%fe+M>m!<)kH"Eo6nduEpK"Fc0:jnmj5!r/2dq>^g05A,4h
+IsQ*nL\-)uE]X^-!!aNUG`ArXnGM)A!9j!("Eo[7kl'H>!r__fnUL_%]]AnLs*t~>
+l2L`Sp&G4aL:64AfDbpNo8`SG"*U3^o[j*Cg\h*T7Y7l%Mt$cL?DuQNh#@KTntQrm!!>W4S3H?@
+#REn@I[.=lnGM&@!8d8H"@e9\kl'E=!rUsdnc/e$R*+gojo9i~>
+l2La2p.>HrL:64AfDbpNo;VLW"*U3^o[j*Ck5@mT@=k`@Wpr[`Ei@[bh#@KTntQrq!!`Q>-otUV
+S8\0p"%G3q&c2P6#Y&laQ*o34r7h5OkOM4J@Z%e]rSRVVr8^fI8d%t[b3f,gs*t~>
+l2LaZp4*9hL:64AfDbpNo=XjK"*U3^o[j*CmJVP<FFpaS_!upWJZ.8qh#@KTntQrq!!`TM7V$C[
+S<Wf!"*n9=*r>pC#Y&laQ*o34r7h5Omdbl2G)EoqrSRVVr9/n*J-2=amJQ)GJ,~>
+lMgnZ#ke6$7Z"_?rRUuMr:!nc!!@A4d.Gri!4Vn,"]^>fk3WrT!!Fp@am]5arri5d`Dd$8!!<ED
+3$n%o#n&k6I#=Z6h=:EsrrDc`!!GcK]BK4MrrMtInGi\eY1r[Lk5Tr~>
+lMgn\;"dKa@Yq\[rRUuMr:#I:8cs4)d.Gri!6kC6"_NP"k3lID8d&Fdam]5arri5d`Dd$8!!<ED
+3&^[["!\`u$2FQ-$Tr?TMP@oBnbh,@!;Z1X"Cd8#kl'B<!W&P\8d'(8g\1X/s*t~>
+lMgn^K_Bp!G)<forRUuMr:$TZJ-0q_d.Gri!8II&"`oI/k4+?"J-:=fam]5arri5d`Dd$8!!EKE
+3(#k-4p*o#+V4AK#n&k6I#=Z6h=:EsrrDodJ-:%Q]BK4MrrMu.nULasY1r[Lk5Tr~>
+lMgk-o`,+aM7`!Mec,^JiZe4!")""Ho@O!BQi-mfArOLiqLnD>"9a=cjSR^3"o@Z<WE9kt!"/f?
+3bj)#T!m#.pAN\E!<2Nh"@e9\kl'B<!rhQsnc/e*QGr4hk5Tr~>
+lMgk<oh#?rM7`!Mec,^Jj^@pW")sXQo@O!B[J`]$D2c6pqPEaT"A=KYjSR^3"o@Z<WE9kt!"/f?
+3bj)#T!m#.pAN\E!<2O]"Cd8#kl'B<!rhXfnk'$^QGr4hk5Tr~>
+lMgkGomd0gM7`!Mec,^Jk`5Li"*^-Xo@O!BbPcqpEf@cuqS)KM",OGIqqM,SqX2q6=;9ou$NUl$
+C41u2[a=11rRq2NrpkRBG)EoqrSIPUrpba5J-2+Vm/?)HJ,~>
+lMgjNo`,+[M7VpLeGfUG[KHC,"D4"Enc%2@!-J2?#6T"0`pWih%e9T&9Vg53rnIGWr:ApkZ[t1$
+!"'N/@"b8acJe<irn%2@!!GcK]BK4LrrN%3nGiZ%Y2/m8s*t~>
+lMgjloh#?pM7VpLeGfUG`_?8%"E9^Onc%2@!1a$\#>9*#`pWim<:WWaC8BDQrnIGYr:ApkZ[t@J
+!q$$t"Uu:u6=>J@\Ba('qYo+Hnk'$oMS&*Nh>[NRPOV6IGHTcsk5Tr~>
+lMgk-omd0iM7VpLeGfUGdXh:G"Ep-Unc%2@!4r/[#CgcW`pWipL@KcrUt,/;g]%QWoA[s"Jj^1Q
+mJm\&(F_:0@"b8acJe<irn%2@J-:%Q]BK4LrrN&&nUL^pY2/m8s*t~>
+lMgj+o`,+KLq)UFeGfULp14%#"C786nG_)?!)WXp#820Hc1:l3D=RZ0'U$B"rS%8TrV>p?cU[p6
+"pu+Y&Io9OoDf.4<.1msjRE!Dec,U_o)Jn_MS&*Nh>[NT`:3g11n)VWroa<3~>
+lMgjSoh#?jLq)UFeGfULp5]#B"Dj=EnG_)?!.t2B#>fQ1c1:l3QL[WN;Ner`rS%8_rV>p?cY5-e
+,9%F7&ePT`"o\W;"UGMJ'cS>C-7CZLIBCrYnG3%5rr?-l8d&U\]BK4LrrN,KnO`pkR`k4"kPp&~>
+lMgjqomd0kLq)UFeGfULp8n.A"F$*PnG_)?!3#mI#CLZ]c1:l3ZgrVLJ!._8rS%8^rV>p?c[o1m
+4Y@ln&ePT`r!3lF'H8;N4$Z/&85t#>dcBonrRLoJM=Z6#G)EoqrS@JSrnd0q"Fcf_nG_VNJ,~>
+lMgico`,+1KX0V7e,KLJjV[mq"BUc+mf(l=!&4BP#U"Aae+Nb?h?WTO")+mopt5TKrV>R_r;[$V
+9ji7&N#_Hi"r;$DcLC]0e,KCio)Jn_MS&*Nh#@EP(@hG.&rO9_r9+*1~>
+lMgj?oh#?bKX0V7e,KLJl!"!W"DX+>mf(l=!,VX,#ZQ&@e+Nb?k"kP?"*h$*pt5TVrV>_N5Wh"`
+5tta4Ll=In./tb)/1rV52aV>LcLC]0e,KDUo1B-pMS&*Nh#@EP=n5/f:l;jHr9+*1~>
+lMgjcomd0nKX0V7e,KLJl\bUj"F$$Kmf(l=!1<b9#^U`fe+Nb?l@\YX",*l6pt5TVrV>f*DJ3Ka
+9hf#@Ll>:171MdX8PDr[=^GNQRa1F!rmUlIO7Rl)G)EoqrS7DRqhjrp"Fc6>k5=EBJ,~>
+lMgiLo`,*rFfF-jdf0@ERf!-g9T[-Xrn.5N%/p54/psPLq#CBk?1Isu0:L,Srn%/MT)AWo$!qV7
+Z+n%CoDf"(H)B<jdJj1go)Jn_MS&*Nh#@ES;=OVgG,j<lkPp&~>
+lMgj.oL]44WS@3rrrMu'r(7*'OM^A`f`(qLr^mGuI&>Tls8VtRnk'$kR`t:#fDc8j8Ou<=7::+u
+Z+n%er&+sB3'',a5X@b0H)B<jdJj2So1B-pMS&*Nh#@ESK(2G8I&brrkPp&~>
+lMgjWoRI$nWS@3rrrMu9r."opOM^A`f`(r+rdY9!I&>Tls8VttnpgjmR`t:#fDc9)IXHHbEF<dL
+Z+n&)r*Be=@:WtbD/jZ?H)B<jdJj3-o7-seMS&*Nh#@ESVso3<Wn[=3s*t~>
+lMgiKoDf"dS^@!-e,KLKoeuaK"@eBclM]E9!:0R`#X!X>hYR9PrmL?;"9a7bjSRR/!'pJ_#;pOa
+^>J8AIe3UC"+-iqpX0!@+7fI87Z+hArS.>PM=CQK<h7V/rojB4~>
+lMgj-oL]7"S^@!-e,KLKoks_#"CmG+lM]E9!:g"[#[Mt_hYR9Prn[-;"A=KZjSRR/!-eB6#?c)0
+^>J8ASGGV\77Kd<8P2X&Ut>@grr?Hu8d&U\]BK4JrrB(h8d&t$d.@8#s*t~>
+lMgjVoRI'nS^@!-e,KLKopG]."F,p@lM]E9!;6;@#^1a#hYR9ProEU"",aVLqq(iJT`0HIIro^n
+^>J8AZi"nRF`qtSH@1-jIs\!CpX0!@O7Rl)G)EoqrS.>P_sr6[I%AXUrojB4~>
+lMgiKoDf".OML/[df0@G]DV^43JtH4rRq2Na8Gu@8qaS3r;Q]sqb$DZ"@o9;o`!PD!8m_T#QeFb
+WnI+FrNPkn")jd[p!Nd>+7fI87Z+hArS.>PXmlAo6'B7UrojB4~>
+lMgj-oL]6aOML/[df0@GbPb$9?AcAYrRq2NfDS;E@YD,Kr;Q]sqgS*."DFU\o`!PD!9j>Q#AJ^g
+g%PFD`q)e)Fe7(TdJj2So1B-pMS&*Ng]%8lnO`pnP/cqhkl6/~>
+lMgjVoRI'oOML/[df0@GfDU4&H&B5trRq2Nj8FK2FG.$]r;Q]sqkEY3"G*Auo`!PD!:Ti9#B,-m
+g%PFDf(smmJ-1(ge+M,g!0?`%"Eo[7kl'99!7gUi"FH<Omf)GMJ,~>
+lMgiKo)JknXk`^!rrMmdrW!'TL:?=Cg&D&Mr;Zt&M7VmKrr3#u^@D7,'9U,rr7V)MGPqLI,BAjZ
+kktJ\iq!-P?CB+0dJj1go)Jn_MS&*Ng]%8nnGi\GMS/0Okl6/~>
+lMgj-o1B+)Xk`^!rrMnBr^m;sL:?=Cg&D&frCR3+M7VmKrr3#ucLOR1;3A][r7V)MTD_@f<H=/7
+kktJ\lLRUMDOJf@dJj2So1B-pMS&*Ng]%9)nO`pgMS/0Okl6/~>
+lMgjVo7-prXk`^!rrMngrdY,tL:?=Cg&D'$rI>#lM7VmKrr3#ug@BasJ!%S4r7V)M]D[6cH#et[
+kktJ\nFM/4H'utKdJj3-o7-seMS&*Ng]%95nULahMS/0Okl6/~>
+lMgiKo)Jn%N5k5^df0@H`Voi?-A8\br7V)MKDbcQBTBpqrr)itqD[sF"(A:dptG`Kq],P7#u>oA
+de!J<s8EQ$!!H,^aRB,Vrr=/4!!GcK]BK4JrrCpG!!F^([,h/Ks*t~>
+lMgj-o1B-]P/ckddf0@He,DrB=+mm>r7V)MVu93jDN;R"rr)itqJc!t"*L^#ptG`Kr*K=o$"J=U
+de!J<s8H!i8d&gkaRB,Vrr?Hu8d&U\]BK4JrrD6P8d&7M[,h/Ks*t~>
+lMgjVnpgh.`pEWOrrN)SrdY,tKX0Y9g&D&grI>#kNkt)]rVlopRdtt2KWNu(gA_3PNr=J7EdOM.
+oD\direL,r"F--On,Cc8!0?`%"Eo[7kl'99!:KB-"F>d/jS\6AJ,~>
+lMgi_nc/e@W7^bAdf0UK8cSi2JZdo,g&D%[rW!**F-F]6rr)itrMT2d"=]b]n,D)A!42V("VPd1
+[c@5`rrN*WoDf"[Nl(/^df0:ho)Jn_MS&*Ng]%91nGi\3JZdr-kl6/~>
+lMgj;nk'$jWn?tCdf0UKHqI"1JZdo,g&D&4r^m>fF-F]6rr)itrP%hp"Bq59n,D)A!6P13"]0/o
+[c@5`rrN+<oL]6qNl(/^df0;To1B-pMS&*Ng]%9;nO`p_JZdr-kl6/~>
+lMgj`npgjrWn?tCdf0UKU4@cAJZdo,g&D&VrdY0%F-F]6rr)itrQk%b"Fli^n,D)A!87=$"ak9F
+[c@5`rrN+foRI'iNl(/^df0<.o7-seMS&*Ng]%9AnULaiJZdr-kl6/~>
+lMgj&nGi\U\`!5]e,K^Q\c;^@J>q;ug&D%7rW!'6G+$YHqu6]l,kD!=!dqH:qV2#M;#L@t5^/[?
+nGW=c!+tj'">G_Fkl&s0!$Ce4"@e9\kl'99!8d5G"<2ijh"g16J,~>
+lMgjOnO`q!\`!5]e,K^QbXtK(J>q;ug&D%or^m;iG+$YHqu6]lA+N:q98'b6qV2#MK)J:F??_j]
+nGW=c!0ZtH"C$bqkl&s0!+>Cj"Cd8#kl'99!9irF"B'`Lh"g16J,~>
+lMgjnnULb"\`!5]e,K^QfRSL%J>q;ug&D&DrdY-!G+$YHqu6]lORdo(M72I@g]%8PrI>&nGFH_E
+rVc`rZLiYMHA]>urR1]GO7Rl)G)EoqrS.>PmdYf1I"/0Oq<7j/~>
+lMgjIn,NSP^?#%fe,K[L0E;0+Ut>=nrr=&<!!FEiT@EQ2rrN(_nc/e\U=/]5h>[N="TAB)#&/^m
+h>$pJ!06[O"<iH*jS[I+!$Ce4"@e9\kl'99!7pZ?"<2cfg\C"4J,~>
+lMgjhn4Egu^Z>.ge,K[LCJ%6OUt>=nrr?@(8d&+=T@EQ2rrN)&nk'$tU=/]5h>[ND:&[`g9Pf?a
+h>$pJ!3Yrd"BC,^jS[I+!+>Cj"Cd8#kl'99!93N@"B'ZHg\C"4J,~>
+lMgk*n:1Y$^uY7he,K[LQ@OL;Ut>=nrrA)YJ-:1DT@EQ2rrN)<nUL_9de*OprrM_CrdY0%DhG4K
+q#(-l`q4caH\Acer6kTFO7Rl)G)EoqrS.>Plg]K.I!qsJpuqa.~>
+lMgk+mf3JB]&NG_eGfdP`.DZ`WS$purrDfl!!Fj#VV1b@rrMU)o)Jn&NkaiVh>[J1r;[!SFHaZ/
+rVZZq^%;:-&V-t>qU5BD+7fI87Z+hArS.>P^@;1+)h"U;puqa.~>
+lMgk:mn*^m^#JbbeGfdPd[l,RWS$purrDln8d&7DVV1b@rrM[no1B-]O2'rWh>[JTrCR5qFHaZ/
+rVZZqch'g4:k5Y(qU5BD@.Qtn@Z%e]rS.>PdIBg3;LPFrpuqa.~>
+lMgkEmskP!^uG(eeGfdPgp<B1WS$purrDrpJ-:+EVV1b@rrMbLo7-snOMC&Xh>[JmrI>&qFHaZ/
+rVZZqh=Q4#I=SEUqU5BDO7Rl)G)EoqrS.>PhXQ+!I!qmGpuqa.~>
+lMgn\$h"&u)kc'Zr7(`Nq;fK$_;b7DrrCOH!!G?5XPWgMrrN(Gnc/btX4m=(rr=2?!!QYWVUkG>
+r;Qc]oDf!qI&5Kidf0:ho)Jn_MS&*Ng]%8KnGi\@IAkoqkl6/~>
+lMgn];X[3\>-6ZQr7(`Nq;fK$_;b7DrrD!U8d&FMXPWgMrrN(knk'"*X4m=(rr?I*8d/mWVUkG>
+r;Qcco1B+4V:bOjrr?Hu8d&U\]BK4JrrBb&8d&4DW8%+2s*t~>
+lMgn^L$sNpLUQ(2r7(`Nq;fK$_;b7DrrD<^J-:%GXPWgMrrN)0npggpX4m=(rrA/ZJ-Bn@VUkG>
+r;Qcgo7-pjV:bOjrrA,OJ-:%Q]BK4JrrCI:J-:.GW8%+2s*t~>
+lMgna=mc7n#^=qhqYo(G#6"5XhW+2)gA_/Zr;ZsiKX0Y8qYpWrk6LSY"=9DUmeu&C!4Vn,"X7rG
+]]]1hrrN*4oDeu,T$m8Zrr=/4!!GcK]BK4Jrr@Q=!!G30XPN^9s*t~>
+lMgnaM!dk=:6X>uqYo(G#6"5XhW+2)gA_/prCR3$KX0Y8qYpWrlqd4F"Bh)4meu&C!6kC6"]TK$
+]]]1hrrN+#oL]4+T$m8Zrr?Hu8d&U\]BK4JrrAkb8d&CKXPN^9s*t~>
+lMgnaX6tKAJu@8hqYo(G#6"5XhW+2)gA_0+rI>#nKX0Y8qYpWrmt:4^"FlcZmeu&C!8II&"aY0J
+]]]1hrrN+UoRI$iT$m8ZrrA,OJ-:%Q]BK4JrrBh(J-:(GXPN^9s*t~>
+l2Ladli7/P_!(Okf)GpPqY9marn@APO8T%]<J\3Kr;$?nr+5I""9NhTiVMI3!)3=k"]0Q=dIR;5
+rr>7T!!H;gbOPS\rr=/4!!GcK]BK4Jrr>mc!!GrIZJtcFs*t~>
+l2Lb%lq.D"`p!0qf)GpPqY9marn@APYl./sAr+"\r;$?nr/gJA"+di<qVV;QJGi(D@salro)ALc
+!-\!,"DX:Hnc%#;!+>Cj"Cd8#kl'99!.s`5"Cd"hiqqs>J,~>
+l2Lb6m!o5'b38Tuf)GpPqY9marn@APa8LMkF,7Bir;$?nr35aB",O>CqVV;QVYu#KEdOJ,o)ALc
+!1rh5"F6?Wnc%#;!0?`%"Eo[7kl'99!3#F<"ET4$iqqs>J,~>
+l2LeY+m]14%Y!:(qYmPq!-%l:"CdA+lM^PY!rgXNo)JnUT[EB1iVrr="TAB)&o`Z8iqiKN!,D-+
+"@J<imJbT7!$Ce4"@e9\kl'99!#Y5+"D!A#kPaWEJ,~>
+l2LeZ@I-Si;OZJ3qYmPq!1EdX"Dj(5lM^PY!rh%Mo1B-rT[EB1iVrrE:&[`g:iM6!iqiKN!0m+J
+"CmS4mJbT7!+>Cj"Cd8#kl'99!*etc"Diq+kPaWEJ,~>
+l2Le[O6hB#KWa2$qYmPq!4_uX"EKL;lM^PY!rh;5npgh8dI[@rrrMYArdY0"E/:s^qYC-k[.JkO
+HBH/5rmUlIO7Rl)G)EoqrS.>PN:DE$E/D0hrTO93~>
+l2Le`R-FYS0!+4.r2fnu9`4qoEg"H1rqQKoqb-M\":L1%kksE>!.4YE"[[F%b4#<)rrA>V!!G!5
+]]f=Crr=/4!!GcK]BK4KrrCC8!!O'WP/Zhfkl6/~>
+l2Le`Zg(-cB"I-tr2fnuJGi(CEg"H1rqQKoqgS-/"AXrikksE>!2BEa"^cJBb4#<)rrBCt8d&@U
+]]f=Crr?Hu8d&U\]BK4KrrCmF8d/%3P/Zhfkl6/~>
+l2Le`aQe9YOMp;Sr2fnuVYu#JEg"H1rqQKoqkNb5"FlHFkksE>!58>]"a"sWb4#<)rrC15J-:4V
+]]f=CrrA,OJ-:%Q]BK4KrrD6PJ-C=@P/Zhfkl6/~>
+kl1\U.-U^79YB]crN?/#/H,VQ%<Rr\nc&=`!WK_%!!??&g%OG*!W*`5!!NXDKWj5,q#:?5oDf"9
+Ks]q=e,KCio)Jn_MS&*Nh#@A$nGi_PGb3=TrojB4~>
+kl1\VAa)eiHcGCGrN?/#B`:U-:3;iHnc&=`!WL=68cs%3g%OG*!W61$8d.q+KWj5,q#:?EoL]6c
+Ks]q=e,KDUo1B-pMS&*Nh#@AKnO`shGb3=TrojB4~>
+kl1\WP3IK"SBgHprN?/#QMuC<IWUq#nc&=`!WLdCJ-1D&g%OG*!W@uVJ-CC?KWj5,q#:?QoRI'l
+Ks]q=e,KE/o7-seMS&*Nh#@AfnULddGb3=TrojB4~>
+kl1__]*%9t"TqN7m.^I_rr<?(!!F0aS^I*'rrMsQo)Jn8QH/Ckj8T+Wr;[!XFHjc2rV6BmmdpJ^%
+Y1Y;q:#?D+7fI87Z+hArS@JSq],/,"Ti+aXkrm:s*t~>
+kl1__b=q.m"\a?dm.^I_rr>mp8d&%:S^I*'rrMt6o1B-dQH/Ckj8T+prCR5sFHjc2rV6Bmo(5NW
+:4TG&q:#?D@.Qtn@Z%e]rS@JSr*Jnc"DWOjhYH@7J,~>
+kl1__f7E1:"bE;nm.^I_rr@`OJ-:4DS^I*'rrMt`o7-snQH/Ckj8T,.rI>&pFHjc2rV6Bmp@Nk<
+IXnNVq:#?DO7Rl)G)EoqrS@JSrJpDu"E/mohYH@7J,~>
+kPkSXIcg\8"&HSrp\b#trrD*X!!FToUXo/4rrN(nnc/c4ZJbQ=rr>1\!!WL7J>q2prqQKorYP2,
+"*gWopXB-B+7fI87Z+hArS@JRTCDmb-?>3`lMTiFJ,~>
+kPkSXTBAfN9RXtJp\b#trrDB`8d&1@UXo/4rrN)2nk'"5ZJbQ=rr@0>8d/s[WS$qDq#:Bo>4bDh
+HDK3fe,KDUo1B-pMS&*Nh>[JenO`scEfe*%r9+*1~>
+kPkSX\EAAHJY1<Up\b#trrDTfJ-:.DUXo/4rrN)CnpggsZJbQ=rrAYhJ-BnBWS$qDq#:BoMtDN%
+I&,Ehe,KE/o7-seMS&*Nh>[K$nULdfEfe*%r9+*1~>
+kPkV^nP\HK"[]6TpAFourrBt8!!G$*WS@4@rrMd5o)JnST$R!,jo5>,r;[!KEf[rur:^-j9(W)c
+@[tj<e,KCio)Jn_MS&*NhZ!WR,k:p>!aC&Ie+EY&s*t~>
+kPkV^nU]do"a.KDpAFourrCRI8d&=HWS@4@rrMh"o1B-pT$R!,jo5>:rCR5oEf[rur:^-jIe657
+E1G>Je,KDUo1B-pMS&*NhZ!WSA+<.pB7-K'o`"%RJ,~>
+kPkV^nY>2r"e*NupAFourrD$VJ-:+GWS@4@rrMkRnpgh6cgq(srrD6\J-C4=O1siUpAY,goRI$i
+SC-uXrrA,OJ-:%Q]BK4MrrN(]nULd]I&#0_roa<3~>
+k5PM[k=4M4"YQ&$o_\WtrrA\i!!GK:Y2K0LrrN(So)JmuLqMmIjo5<jr;["&I%o*^rq??lEqB>7
+:6irjrm^rJ+7fI87Z+hArSIPSL[b?J.rpT[jnn3?J,~>
+k5PM[k]l/\"_b%#o_\WtrrBY/8d&IOY2K0LrrN(so1B-[MnJ3Ljo5=CrCR6*I%o*^rq??lRe02T
+B9gU.rm^rJ@.Qtn@Z%e]rSIPSWpr[b=)s82jnn3?J,~>
+k5PM[l($gb"d6X`o_\WtrrCCDJ-:%HY2K0LrrN)6npgh$]]T+QrrB>&J-Bq?U=8c6pAY-&oRI'j
+Q-&OpeGfN0o7-seMS&*NhZ!SnnULdeEf@Tkqr[p/~>
+k5PP_q;O6k!!O-]eFE>4])MbXr;ZsmKs]q=o`"sU%eBZ&;Q&1@k5PJN#lXf-)KCYEjSSWM!1i`^
+"?MRZli,E6!$Ce4"@e9\kl'E=!RD&B!!WjDI\bE`roX62~>
+k5PP_q;Z;O8d/=ag%"k9])Mc)rCR3%Ks]q=o`"sY<:`]aDPu.\k5PJS;#X&j;K7T(jSSWM!4h_o
+"CI2*li,E6!+>Cj"Cd8#kl'E=!SpTC8d8%+I\bE`roX62~>
+k5PP_q;de#J-Cb7hXUC>])McErI>#mKs]q=o`"s]L@]otJu@8pk5PJVK`6K*HuY%RjSSWM!7(4e
+"F?*Eli,E6!0?`%"Eo[7kl'E=!U#.,J-LI?I\bE`roX62~>
+jo5G^pYS?t!!WX*Z0h8_rk8=3=T&4&=,OWRrUg*jr+Ya&"<*NDm/?,I!/pdU"\F!1cLCi+rrC15
+!!FU(\E<_=rr=/4!!GcK]BK4OrrM:.nc/jq:Nhr;kPF<?J,~>
+jo5G^pY^2R8d8%@_X7'prk8=3M#BpKBSsFcrUg*jr0-_E"B:W)m/?,I!3Q2l"^u\IcLCi+rrC^D
+8d&4O\E<_=rr?Hu8d&U\]BK4OrrMOtnO`soG*B`)qW7a-~>
+jo5G^pYhS#J-LV"c0b6&rk8=3XSmYPFGd]orUg*jr3GpE"FlZTm/?,I!6+ne"`ns[cLCi+rrD*O
+J-:7U\E<_=rrA,OJ-:%Q]BK4OrrM_SnULd_G*B`)qW7a-~>
+jSo>]p>/^*!!OX"g@G+=^]+9nr;Zt2Nkju[o`#!ldf]1A")b@#puq_Yq],S8"Uo7&ZJbNMrrDW^
+!!F!fYi,B-rr=/4!!GcK]BK4PrrM^JnGibPEepsSp&=(QJ,~>
+jSo>]p>:>W8d/[thX^OA^]+:RrCR3/Nkju[o`#!lhG!N5"+7?1puq_Yr*K@p"\rriZJbNMrrD`a
+8d&"CYi,B-rr?Hu8d&U\]BK4PrrMh3nOa!iEepsSp&=(QJ,~>
+jSo>]p>DP#J-CtCipusE^]+;(rI>#lNkju[o`#!ljb!)S",=&;puq_YrJpl-"b(BEZJbNMrrDid
+J-::PYi,B-rrA,OJ-:%Q]BK4PrrMqanULgdEepsSp&=(QJ,~>
+j8T8]p>U&nhuErc:Tj*Yr;OS5!#5A3"EK[Fmf)hX!W,O]!!G-KcLLnurrB+u!!PE,QH/Cko`"sk
+-M7?A"+@-%psf<D+7fI87Z+hArSmhXj!aEt"tFPCV9n]/jSs`~>
+j8T8]p>V6/i(=2KJ&(IFr;OS5!*K1l"EK[Fmf)hX!W.?;8d&LkcLLnurrC"98d/LDQH/Cko`"sk
+AG&Ot97<bmpsf<D@.Qtn@Z%e]rSmhXlXoZZ#$5_pV9n]/jSs`~>
+j8T8]p>W'&i.)#`U!;uur;OS5!/g`*"EK[Fmf)hX!W/Y_J-2=enc%eQ!7h$us)nL1a6iitrrN+^
+oRI$lW7q$rrrA,OJ-:%Q]BK4QrrMYSnULggDh=h4n,28HJ,~>
+ir9/\pZ.SOh>d^)K])IurPed:oDJXm%<Rr\o)A7\!WK_&!!EL[]&ihRrr>1\!!NI<JZIN!o)A\b
+oDeu+T@<J_rr=/4!!GcK]BK4RrrK_KnGib<D18(tlMBQ@J,~>
+ir9/\pZ/;QhF[r\U>tkArPed:pAISe:3;iHo)A7\!WL=78d%hD]&ihRrr@0?8d.k(JZIN!o)A]@
+oL]4+T@<J_rr?Hu8d&U\]BK4RrrLGMnOa!cDLS1ulMBQ@J,~>
+ir9/\pZ/f;hLGci\E*8XrPed:q>GgIIWUq#o)A7\!WLdCJ-1_@jnn<B!1s.>"E8pmg@t1<!2fC=
+"+-Zhp!j!AO7Rl)G)EoqrT!nYh2LlS#'k-9T#g3nj8XW~>
+iVs&[puoFNh#ITiD9q_HrQ"p<ci!hH)0h_#o^Vq^qCM4<"AP`Dp&=:W!6b<@"Y=_W_!:jgrr@67
+!!H2dbOPS^rr=/4!!GE?\`WhOrrM_0n,N\IDgn4ok5##:s*t~>
+iVs&[puoY3h+@iMP1K-trQ"p<h>KqK;L"b\o^Vq^qIoIm"Dajbp&=:W!8@BD"^#i._!:jgrrAY_
+8d&jpbOPS^rr?Hu8d&IV\`WhOrrMh]n4EpgDgn4ok5##:s*t~>
+iVs&[puoe]h1,Z`Y1rI@rQ"p<kP]o6H[)+0o^Vq^qNUT%"G*E#p&=:W!9O00"aG*N_!:jgrrBY&
+J-:1bbOPS^rrA,OJ-:+Q\`WhOrrMr)n:1aeDgn4ok5##:s*t~>
+i;Wu[qWuaU$Jb[c#%#OAq#/>7!3c>$"=&5ef(SY6!WAP[!!F%"_s@9err?=&!!QPSUt,,:o)A]d
+oDf"ZOMgGaec,Uknc/h9HIhZarosFaqk"ku!!i`qEe9n#jS/Z5s*t~>
+i;Wu[qWuaq:u+_I:5I?dq#/>7!64t0"BBcBf(SY6!WBIu8d&%T_s@9err@uU8d/mVUt,,:o)A^(
+oL]6qOMgGaec,VWnk''gOk91$rosFar4?;*8dJ*tEe9n#jS/Z5s*t~>
+i;Wu[qWub0K&(q\Ju72gq#/>7!8%1""F5<ff(SY6!WC14J-:@b_s@9errB5#J-Bq@Ut,,:o)A^;
+oRI'jOMgGaec,W1npgmqU=f&6rosFarQgMoJ-^XGEe9n#jS/Z5s*t~>
+hZ!`Uo%pZ;g].K^?-_m5rQG3@Mu<VY0RftTq!e:anJ:]r")+moq!A"]k61ba"W_T@]&rn[rrCI=
+!!Fg/]''%Brr=/1!!X3S]^Y^orpKdflAHnV!!jBGG)3!9k4el6s*t~>
+hZ!`Uo%poqge%`FLXbberQG3@Xo1ip=am=(q!e:ao3(ZW"*h$*q!A"]mS3[Q"]KE!]&rn[rrCpJ
+8d&:R]''%Brr?Hr8d8C[b4,3(rpKdfn>p-h8dJ:-G)3!9k4el6s*t~>
+hZ!`Uo%q*DgjfQ[V:b52rQG3@`Vk;iG^cUGq!e:aonr?k",*l6q!A"]o7Hsl"ab6I]&rn[rrD6S
+J-:4U]''%BrrA,LJ-Lh3eF<82rpKdfoYls^J-^L@G)3!9k4el6s*t~>
+h>[ZWpZTt`,hrA'$uO\eq>SY=!,2<2"?M+:htljB!W@H<!!FsDbjbW!rr@EE!!Q#@T$R!,nc&Xd
+"SD`t(50!Qqpk]H+70%7)dScMnbN(\rr2]m"THu<9*F_a#ms"=IZq"_lM:G;s*t~>
+h>[ZWpZTtq?JJ-V;N]c(q>SY=!0mFS"C6S]htljB!WA_`8d&IhbjbW!rrAel8d/[LT$R!,nc&Xe
+9_D!\;M;@8qpk]H@-pPm>`#`8o(i1]rr2]m"TIDfIn]?(#u+cHIZq"_lM:G;s*t~>
+h>[ZWpZTu)LtmLaKWEquq>SY=!4;]T"Eo@!htljB!WBY%J-:@jbjbW!rrBb2J-C">T$R!,nc&Xf
+K(XWsI>"ocqpk]HO6qH(MlF\OoD/:^rr2]m"TI]/V1S2e$%?u9IZq"_lM:G;s*t~>
+h#@TXqXE@]F;EX3"W<3Xo)&F4rr>Rf!!GcE[,_)QrrM$_oDf!sK"0n=mf*=^'`J(9%W7$-i;)mB
+!WFSA!!EISWS@3urr=/*!!`TO7UCD#R[X2E"+FiG&+0E)&j^D^N2+/Bn,!%@s*t~>
+h#@TXqXE@]N`Oq-"^7_^o)&F4rr@HF8d&RU[,_)QrrM:YoL]6ZL:H=Amf*=`=T1nr:2blni;)mB
+!WHa)8d%h:WS@3urr?Hk8dA%!HAeDs[^Q.D"/:s%<UNHd:g\3hN2+/Bn,!%@s*t~>
+h#@TXqXE@]TS2*N"c9\Jo)&F4rrAknJ-:"J[,_)QrrMJ=o7-q#\E*PTrrN"SrdY0$E/(^Wq=+Cb
+rfm)+"Fkm"g\B>!!0?Ap#_J/2XLc<lb00e."2;(4L[K["I!'IVN2+/Bn,!%@s*t~>
+gA_BUpZpGDA.IAp"?!RMpANA<!$qLC"B1,fkPalL!W6-m!!Gffeb&k0rrADa!!PH-QcSUnn,EAc
+oDeu/T[`Ybrr=.]!!t5jG_r*'dHC3#h>`!~>
+gA_BUpZpGEK2UJs"Dkm;pANA<!+Yt""D3J$kPalL!W7cF8d&h'eb&k0rrBJ*8d/LDQcSUnn,EB@
+oL]4-T[`Ybrr?HI8dSU9G_r*'dHC3#h>`!~>
+gA_BUpZpGFRY'=F"I$pjpANA<!0[;2"E]I2kPalL!W8thJ-:G!eb&k0rrC7@JH'cpQcSUnn,EBd
+oRI$jT[`YbrrA,#J-gF<G_r*'dHC3#h>`!~>
+g&D<Vr:K4%ZsO=!!!NREf^AS7df0:Mr;Zt/NPFcWn,EFfa7B96'9U/sr9sXc./j2M")!1dg\:.9
+!.shC"B:c4o)@5?!$Ce4!\Go/f)Q$Y.ri5UmeZq<s*t~>
+g&D<Vr:K4%[t%?38d.qNg$\\8df0;@rCR3.NPFcWn,EFfealB9;3A`\r9sXcB)YC+95K0\g\:.9
+!2fB\"DX=Jo)@5?!+>Cjs&]7qf1H9@?&-/JmeZq<s*t~>
+g&D<Vr:K4%\<qm(J-CP'g@"e9df0<!rI>#lNPFcWn,EFfht)@$J!%V5r9sXcPl6+8Dh5"Ep[8%]
+_"<-[HC2qIrmq)LO7Rl'GBn\hJ-LRk^=r#OrnRO(~>
+fDc*Tqt&mqZ=k!/!!FdZk4SZ%rrCgO!!I,#`9mQlrrN!Vo)Jl'Xk`^@rrBD(!!OopP/6G]mf*9h
+oDf"ZOi6Ydf)G^lo)Jt_FFe0r+9^j-":,u"5ofV!"W2O:o(i7?s*t~>
+fDc*Tqt&mq[=hQ98d&\=k4SZ%rrD3Z8d'*q`9mQlrrN"9o1B+.Xk`^@rrC1>8d/=<P/6G]mf*:*
+oL]6qOi6Ydf)G_Xo1B3pFFnpW=A7mM"AMfu@TE.p"^.;Lo(i7?s*t~>
+fDc*Tqt&mq[[;^'J-:nOk4SZ%rrDHaJ-9qU`9mQlrrN"co7-prXk`^@rrCaNJ-C1=P/6G]mf*:;
+oRI'jOi6Ydf)G`2o76j_"+uJeK'%RdIXHHeIeS?rLp>k.q>K.LJ,~>
+ec,mRqXNUl\8s"R!!E[eh!k3krrB\0!!NOIQ-/Uqmf*=eV"4Qh.@JBJrpg!g7/[)h>(*3sp&=CZ
+!7g]A"=oAAkl'*4!$Ce4%7Pf?[^N-%G$@?g+VbIZ!"98O,rS>#EdiXsO-3'-!!NdIf^S_8huA3~>
+ec,mRqXNUl\;FVL8d%t`h!k3krrC@C8d.n0Q-/Uqmf*=e]^n_u>+*S&rpg!gHMpG>B76T+p&=CZ
+!9*QB"BgVokl'*4!+>Cj%:Od[[^N-'KQV!8=&Mie8dnHm='fHTGCG1#O-=PV8d/+Tg[P%;huA3~>
+ec,mRqXNUl\=860J-:M/h!k3krrCmRJ-CFDQ-/Uqmf*=ecLZPhJ!nLKrpg!gUA]TGEIFY5p&=CZ
+!9s-+"FH$<kl'*4!0?`%$?grm[^N-'Nei@=rdXTk%"<VPH[0m_IY3H;P`>Be"bj&7nG3%?s*t~>
+e,K^QqXNXp]SSiUhZ*dcdd-`.fDbi;r;Zs2G+-bKm/I+Z)Y="4!dqH:qXXXdci!hI)0(SGjnnHF
+!WEAt!!F'jZJtc4rr=/4!"qbW[+OEmcGI#jU7.@/N.uLtF8U%iGCbC#LlIRcTW#**_T9cO#ke6%
+'7o05qYoIRJ,~>
+e,K^QqXNXp]U*D-hb"$(dd-`.fDbiYrCR2fG+-bKm/I+[>P(Mj98'b6qXXXdh>KqL;K7W+jnnHF
+!WGmf8d&%FZJtc4rr?Hu8ePTh[+OEmcGI#jU7.@/N/2t4I/J:%I=[$)LlIRcTW#**_T9ce:A.9`
+<hA=@qYoIRJ,~>
+e,K[PqXNXp]V18?J-;IllhUP3rrC7@J-::DRa:TlrrMkQo7-q"[c@5TrrD6\J-C:>Mn8$ImJd4d
+K_9iuI>"ocqptcIO7Rl7G)3NXj4_eq[]?-kQ&pr\L4k3WK)^B3K8#,@P*quAYdqWla/agcJ-C_7
+iplmEiW"E~>
+dJjLOqXWe!^nP'OhuEmGa6*0rf`(qrr;Zs=Gb<LYm/I+bJb&jE7&&-%rq$-i>l=X+8U6lPo)A%V
+!WF_E!!EISWS@4!rr=/4!"qbY]'&n`o'>Amf$DIU^:LbYYPPC4Z*h0Y`m*#fiTBLrmc()Uo`,+G
+ZKCiXir=N~>
+dJjLOqXWe!^nuHZi(=,kaQE9sf`(rDrCR2jGb<LYm/I+bV"71]B;3iHrq$-iMu?6O@<nEho)A%V
+!WHj,8d%h:WS@4!rr?Hu8ePTj]'&n`o'>Amf$DIU^:LbYYPPC4Z*h0Y`m*#fiTBLrmc(QPoh#?u
+^?5+dir=N~>
+dJjLOqXWe!^oEQMi.(roal`Btf`(rarI>#tGb<LYm/I+b^%-[UU=/]5oD\fnrI>&mH(E7OrpB^d
+rg*5-"Fkm"g\BA"!0?`%&pB/DkP=lClf?mQccO)=]!eoJqQ:@6[CX/nc.(M,k3VU*ikC0?J-:tR
+k4SZ3s*t~>
+ci4=Nqt97.aKp@Q"QBCa3PjeMrn7;O;uH\!-@DWApZqh[j9P;W":pO.l2:2R!TO=^!!NdJL9fb5
+li-rkoDeu,T[`Ycrr=/4!"qbY]BK4nrr2ikp@Ie?lK@9hi;;C=i8Wh\lL+69q"jpfrWDu]ZQAc>
+"U8r"meZqDs*t~>
+ci4=Nqt97.aKpt>9]AYIC;T'*rn7;OL&FUH<d^^qpZqh[l;.%E"Ak/pl2:2R!UEJZ8d.t-L9fb5
+li-sDoL]4,T[`Ycrr?Hu8ePTj]BK4nrr2ikp@Ie?lK@9hi;;C=i8Wh\lL+69q"jpfrWDu]^0L>'
+"\k-5meZqDs*t~>
+ci4:Mqt97.aKqCmiID&l_rUOjg&D&PrI>#rI&,Ehli."RKCjZsIuqJ1r:L!inUgaj"b(BEZJbQE
+rrB4oJ-11leFhDm!0?`%&pB/Ekl(P\rquTcoC2,3kN1a^qqhb=ioK:fmdg&GqY^?l"8V6&MY2K'
+JuIDkqYoRUJ,~>
+c2S+Lr:fX<d(PlG%c[Nl2nn;Frn@AP2#RCW0n-+Wq<S%]r*Jsp"'qt]p[nIcF8Z(B3Hg_/mJZAN
+!/gCK"B(W2nc%/?!$Ce4"@e9\kl(AXs8N&ss8;]h"oJ5rrVlflrr`/d_]SLN"?sffp\s:SJ,~>
+c2S+Lr:fX<d(Q/s;<(7OBu&a%rn@APDZ*01>(3I+q<S%]r/:/="*:Nsp[nIcSGc%`>]uFRmJZAN
+!3>`a"DO7Inc%/?!+>Cj"Cd8#kl(AXs8N&ss8;]h"oJ5rrVlflrr`/db$FX3"E;HFp\s:SJ,~>
+c2S+Lr:fX<d(Q<<K&_@aNPOQIrn@APRf.a>G^cXIq<S%]r2fL?",!Z.p[nIc\c%$^F`s(kmJZAN
+!6"M["F?HZnc%/?!0?`%"Eo[7kl(AXs8N&ss8;]h"oJ5rrVlflrr`/dc\qFG"I.*mp\s:SJ,~>
+b5VbGqXWk&`iNbjj8]<@^>ekcg]%6br;Zs]JZdr-li."b`:Es3-()dArV$6lmh#Hu"Tr7bX4m=5
+rrB=r!!GKI_sIBSrr=/4!!GcK]BK4Lrr`2h\eF]9"<t22o_mqPJ,~>
+b5VbGqXWk&`ianpj@TPh^Z+tdg]%7RrCR2uJZdr-li."bddp'6=d[:urV$6loMtl_"\WT\X4m=5
+rrC+38d&Ra_sIBSrr?Hu8d&U\]BK4Lrr`2h`E)V'"CA[uo_mqPJ,~>
+b5VbGqXWk&`itb^jF@Am^uG(eg]%80rI>#oJZdr-li."bhXc7#J!e=FrV$6lpPAcu"E/gkg@sn4
+!8$jn"F?0Im/GW:!0?`%"Eo[7kl'?;"8q]7L\-*"MSJ-BrT=-1~>
+aSuPFr:]L7c+%g=jT#EP_;tCjh>[K@qu?jgKXBh<lMgn^2"UbN!d_65qY'phO8T%^-?>3`l29iH
+!8d>J"=8o9kPa$4!$Ce4"@e9\kl'<:"8q_s$1n3#'qsFRr9+*1~>
+aSuPFr:]L7c+&X9j[oYp_;tCjh>[KFr(7*#KXBh<lMgn^DY$I&K!aP6pAY,srCR5oEfe*$r9F:^
+kO_@L=,FNOrR_&L@.Qtn@Z%e]rS7DTr:7^$oL]6eXk`LFkPp&~>
+aSuPFr:]L7c+'6tja[Jq_;tCjh>[KJr."omKXBh<lMgn^R.Gh1LpZ1<pAY-5rI>&rEfe*$r9F:^
+mdu#4I#5GtrR_&LO7Rl)G)EoqrS7DTr:8'aoRI'u[G:?NkPp&~>
+`W$2Aq!d=l]RM<k!!?`Lk5!j5!6b9?"B1,ekPXWF!WJY]!!GEWdI[A4rrN!6r;["$I&#3`rp'La
+rX8B!";?BkiVM1+!$Ce4"@e9\kl'99"8q_Z"7uQr&#@nLr9402~>
+`W$2Aq!d=l]TQXa8csU^k5!j5!8@?C"D3J#kPXWF!WKS"8d&[tdI[A4rrN%%rCR6)I&#3`rp'La
+r_iD]"Aj]SiVM1+!+>Cj"Cd8#kl'99"8q_p9_:p[;QSRBr9402~>
+`W$2Aq!d=l]V(&BJ-2(Tk5!j5!9O-/"E]I1kPXWF!WL:5J-2IloD\Ob!W@uUJ-Bq?UX\r8lMgna
+L@p'"I=e]^qUb`IO7Rl)G)EoqrS.>Sr:7[ToRI'sZJ"gHkl6/~>
+_uBu@qXWe!^OdTl!!E@Ub3Sr]rrAtp!!HSd^?Y[]rrMX&oDf"%N4nHQq#:>dr;[!:E/M0dqs"+]
+r\jEL"9NkHgA';"!$Ce4"@e9\kl'68!rVP*o)Jn2WnHtAl2Q8~>
+_uBu@qXWe!^Q_sd8d%eMb3Sr]rrBk48d&mf^?Y[]rrM^loL]6]NkOZSq#:?+rCR5jE/M0dqs"+]
+rc%L%"+7$#pt,NG@.Qtn@Z%e]rS%8Qr:#pA8d&8!g%,++s*t~>
+_uBu@qXWe!^S6JGJ-2@blhfQ=!7Ujr"ETO9lM]uI!VM9@J-:@^^$,ChrrCCDJ-C=>MR_aEl2Le`
+Re2+4I](opfDbi3o7-seMS&*NgA_6Pn?2A5"GO/7o)7hQJ,~>
+_>ac>qt0+(^ip[\!!Eq.dd[4mrr@iP!!Hnq_sIBerrN(=o)JkpWS."?rr=bO!!P]6S':C$kl1Wp
+oDeu&T$m8_rr=/4!!GcK]BK4HrrW)b4nAXV.^\"(rp'N6~>
+_>ac>qt0+(^lDL\8d&(gdd[4mrrB(s8d'$n_sIBerrN(do1B+(WS."?rr?m68d/OGS':C$kl1XG
+oL]4)T$m8_rr?Hu8d&U\]BK4HrrW)bF7W!,@("e_rp'N6~>
+_>ac>qt0+(^n?DGJ-:J%dd[4mrrBt7J-9tU_sIBerrN),o7-ppWS."?rrAGbJ-C%>S':C$kl1Xg
+oRI$jT$m8_rrA,OJ-:%Q]BK4HrrW)bRe)%4Lpl+3rp'N6~>
+^]+Q<r:T:)]OqT:!!GKkh"La*rr?U-!!IA-aRB,lrrC^C!!FI2a6ij%rrBD(!!NRBKWs>.kPkOB
+oDf"fQHAXqf`(pno)Jn_MS&*Nf`)$LcjfRH"Albjq#9UZJ,~>
+^]+Q<r:T:)]nK8I8d&k6h"La*rrA2Z8d'4"aRB,lrrD$L8d&4]a6ij%rrC1>8d.n*KWs>.kPkOb
+oL]7!QHAXqf`(qZo1B-pMS&*Nf`)$LfMhB6"E_<9q#9UZJ,~>
+^]+Q<r:T:)^70`>J-:\6h"La*rrBA&J-9qXaRB,lrrD9SJ-:@fa6ij%rrCaNJ-CF@KWs>.kPkP%
+oRI'jQHAXqf`(r4o7-seMS&*Nf`)$LhM(QO"HL.Sq#9UZJ,~>
+^&J<9r:K4&Y!D:Q"9O%gkka6;!'pJ_":B7<bjsrs!W5=V!!@;Ji;*6L!'pJ_"Yb%_`U*QdrrBJ!
+!!G0>_!D!Prr=/4!!GcK]BK4GrrW2pN:R#P!e\MXqs494~>
+^&J<9r:K4&Zu>8&"A=Wgkka6;!-eB6"AO!*bjsrs!W7678csOJi;*6L!-eB6"^,r3`U*QdrrC46
+8d&I\_!D!Prr?Hu8d&U\]BK4GrrW2pWq/gc99@0Yqs494~>
+^&J<9r:K4&\<6',"-gXcqV_ART`'BDIWUt$o&p#Rr1NY3",F2?q>1*kT`'BEG'&tfm/?,I!87!p
+"FH0Eli,Q:!0?`%"Eo[7kl'06!rhu0npgh1`p3Hes*t~>
+]Di*7qt&moL_B%S"=g4qo)@VJ!$(q;";#dIdIcW%!WK1l!!G?Sd.726rrC+;!!QVVVqC_BkPkPH
+oDf"<LUQ=Bf`(pno)Jn_MS&*NfDbpOn1+#0"<aVko)7qTJ,~>
+]Di*7qt&moS5eiI"C7hOo)@VJ!+#Oq"Aa63dIcW%!WKt-8d&Upd.726rrC[K8d/jVVqC_BkPkPN
+oL]6eLUQ=Bf`(qZo1B-pMS&*NfDbpOnRqGc"BhYOo)7qTJ,~>
+]Di*7qt&moWeB_h"G3Gto)@VJ!07#."FYKadIcW%!WLO<J-2Cio)ARe!9=!-"`Spgf_5=-rrDZ_
+J-:7T[cRG>rrA,OJ-:%Q]BK4FrrW2jPOj;-Ju@)grTsQ7~>
+\c2j4qXE@Q46uqLHF`,5ir9#Uqu?j<H(`[\k5PJU)Y="4$&H7Wqu$Ho;#L@t*c[.OkPOEA!WEc*
+!!EXZXl'!-rr=/4!!GcK]BK4ErrN%nnc/c%\)R5Ms*t~>
+\c2j4qXE@UD<sjsKXp1?ir9#Vr(7)iH(`[\k5PJV>kCVk:5cdJqu$HoK)J:F;fRc/kPOEA!WH0n
+8d%k=Xl'!-rr?Hu8d&U\]BK4ErrN&0nk'"1\)R5Ms*t~>
+\c2j4qXE@YOmIT#N4J$Gir9#Wr."osH(`[\k5PJWN:_W'IuM&'qu$HoW;V5MH?"nVkPOEA!WIrK
+J-:=OXl'!-rrA,OJ-:%Q]BK4ErrN&Anpgh$\)R5Ms*t~>
+\,QX1pZg7G!q$$k3hb!mro="YfDGUO-%)N@pZDJVrHe&8"&c)MpAP!kg\_$T89pfRo)@eO!WG:T
+!!@8;fCmks!$Ce4"@e9\kl''3!V@E(!!F./bO5>rs*t~>
+\,QX1pZg7g9^YLUA"h?Aro="Yj8;LP<d^^qpZDJVrL`[R")b'ipAP!kk57gT@!S?jo)@eO!WI66
+8cs=6fCmks!+>Cj"Cd8#kl''3!VKdj8d&+`bO5>rs*t~>
+\,QU0pZg8(m=5=jU!iN2j8T,Fr."oqI&,Ehk5PJ\](:FSJuI>qrVllbr."rkH(NCRroX4]rgrb4
+"+6orp=TBFO7Rl)G)EoqrRLoKp5SWn".[R&rU'W8~>
+mJd4QqYpK?rrrE!o&#]Bmf3J"NkOZSj8T+gqu?jNI];)tjo5A:"S;Zs)O/5-rVlfs?i9s.$>bI'
+iVDR7!,D-+"BLu:o)@>B!$Ce4"@e9\kl''3!W@<7!!@#BhtZU=J,~>
+mJd4Wr;Q]ArrrE!o&$BDmn*^YNkOZSj8T,'r(7)oI];)tjo5AB9_:p[<0YAgrVlfsNr;QR9l>]l
+iVDR7!0m+J"DjOPo)@>B!+>Cj"Cd8#kl''3!WAV\8csIHhtZU=J,~>
+mJd4[r;Q]ArrrE!o&$m/mskOjNkOZSj8T,6r."opI];)tjo5AHK(OQrJ!@q=rVlfsYPitTIVsnH
+iVDR7!4;BK"FHT_o)@>B!0?`%"Eo[7kl''3!WBV#J-1V5htZU=J,~>
+n,EUdIh7t8oD6`3"TA)XY8cp1"(nRepZ)8RQi$gd2h8'gqW7_Xr'^,V#B6p)q#CBW"T8<(20G5*
+mJZ,G!0QmR"@/-hmf(o>!$Ce4"@e9\kl'$2!6t'7">H@jnG_kUJ,~>
+n,EUfUfFbioD6`3"TA)X\m"Pp"*U]upZ)8R[JWW">_'!7qW7_Xr-@m+#CNc5q#CB^:&RZf>'6.O
+mJZ,G!3l)f"CdP5mf(o>!+>Cj"Cd8#kl'$2!8@!9"C@VCnG_kUJ,~>
+n,EUh^PKr!oD6`3"TA)X_hmi4"+mQ,pZ)8RbPZknGCZjRqW7_Xr1NY3#DTJ?q#CBcK)L6"FT[rM
+mJZ,G!6Fe_"FH<Nmf(o>!0?`%"Eo[7kl'$2!9<U"".[X*rpKf:~>
+n,EX9!!!tXg$nparri>tm(a\3!!GTUbjk\nrr@0=!!GQ>ZJtcCrrN+qo)JtOSBg[(s)7i9"Ti+_
+WnR1,rrC%1!!F^-]]f=Irr=/4!!GcK]BK4CrrN$5o)JmtL:QFCmf.e~>
+n,EXH8kN@1g$nparri>tm)WK%8d&[mbjk\nrrASe8d&LRZJtcCrrN,4o1B3oSBg[(s-`dW"DNCd
+g@jS,!7g^6"B^Pokl'37!+>Cj"Cd8#kl'$2!W6-m8d%hD\`N_Vs*t~>
+n,EXSJ:NR#g$nparri>tm*1FWJ-::gbjk\nrrBY.J-:%JZJtcCrrN,Fnpgn6cLLo6\,:aZDh+kA
+p>c/QiUhX'I#>T#rRq2NO7Rl)G)EoqrRCiJr/1&q",aYNqsOK7~>
+n,E[i#QOj,[bUTUbl7eBnAQL>!!FL)^?GLUrr?!q!!G`F[cRGJrrMg/oDf("Kt?FDmg/jl"WqcF
+^?GLTrrDKZ!!EsfZJkZ5rr=/4!!GcK]BK4CrrN*rnc/buVUtP0s*t~>
+n,E[k:J+6*[bUTUbl7eBnB>5/8d&1R^?GLUrr@cN8d&RW[cRGJrrMjsoL]<]Lq;aGoMGKY"]TN&
+^?GLTrrDW^8d%tCZJkZ5rr?Hu8d&U\]BK4CrrN+Nnk'")VUtP0s*t~>
+n,E[kKReT;[bUTUbl7eBnBm3bJ-:7Y^?GLUrrB(sJ-:%M[cRGJrrMnPo7."&]&rnaK`-E)H?,%[
+kksK@!;?&8"FYp.iVM7-!0?`%"Eo[7kl'$2!WK"eJ-)V"p?qs2~>
+n,E[m4obQgMSn]VbPq\Bo#)44!!ERZYi,B=rr=kQ!!H5W]'0+RrrN(9o)JnfVUkEiqu?moHD&^X
+ro="ZrYP2,"*g`tpt>ZI+7fI87Z+hArR:cHII[@@3L7bTrpTl;~>
+n,E[mG"PA%Oi-G]bPq\Bo#t/*8d%k?Yi,B=rr?s78d&a_]'0+RrrN(ao1B.$VUkF9r(7-%HD&^X
+ro="Zr`\qd"+-s"pt>ZI@.Qtn@Z%e]rR:cHU@LnZ@$\n&rpTl;~>
+n,EFfT)O6BQG_tbbPq\Bo$W<aJ-:@RYi,B=rrAMcJ-9tN]'0+RrrN)*o7-spVUkFTr."rkHD&^X
+ro="ZrepE!"+I0%pt>ZIO7Rl)G)EoqrR:cH^%-[VI?qtCrpTl;~>
+mf*90rW!'WW7LV?bPq\Bo;Vo`!!@>=f_=J,!"f&."B^VslM]cC!7CB<";d9>i"5he"Uf1&[,Ur@
+rr>O\!!?MtdIc,l!$Ce4"@e9\kl'!1!1iZ\"<!*.kPXfKJ,~>
+mf*9Wr^m<&W7LV?bPq\Bo=Rcf8cs@7f_=J,!*/qh"DEb.lM]cC!8R0<"B1N%j&Q%M"\rrj[,Ur@
+rr@E<8crt%dIc,l!+>Cj"Cd8#kl'!1!4hYm"B12hkPXfKJ,~>
+mf*9trdY-(W7LV?bPq\Bo>lLRJ-11pf_=J,!/UQ'"E]U:lM]cC!9Ng&"FlWQk(rtd"b(BF[,Ur@
+rrAecJ-1.hdIc,l!0?`%"Eo[7kl'!1!6t(b"FZ0=kPXfKJ,~>
+mf*9kr;Zq@]]K"4rrW,hB(>p(@%5O8jo5>LqZ$b0O2C8_j8T/X2"L\KBWl^Z!!P6'QcSUniVrmu
+oDf"]PfW=mgA_-po)Jn_MS&*Ne,KEZnc/dpJ?@](n,In~>
+mf*:,rCR0E]]K"4rrW,hNq,dEDk#,Gjo5>Qqaq!-O2C8_j8T/XDY$I%H*<\78d/CAQcSUniVrnH
+oL]6rPfW=mgA_.\o1B-pMS&*Ne,KEmnk'$XJ?@](n,In~>
+mf*:<rI>!2]]K"4rrW,hXR^lDHCN:Rjo5>Tqg\fkO2C8_j8T/XR.Gh0Ks.cZJ-C(=QcSUniVrnf
+oRI'kPfW=mgA_/6o7-seMS&*Ne,KF'n:1SBhYHX?J,~>
+mf*:Rr;Zs>T$Qp)b5VP@j;%7d"B(K*nG_SM!6b6>"DEt<mf)8H!WJDV!!4j?')_e6!b$VZg@sP*
+!1i`^"=f>Cl2B?9!$Ce4"@e9\kl'!1!5@t'")+CYp$_p2~>
+mf*:WrCR2nT[3-+b5VP@k?.=J"DF%@nG_SM!8@<B"E0ICmf)8H!WKCr8ci=d<r>PmBn35;pYc&O
+\b&Js=c9uXrS%8O@.Qtn@Z%e]rR:cHd.'^1F.q.Wn,In~>
+mf*:ZrI>$%T[3-+b5VP@lA>+_"F-0PnG_SM!9O*."E]gHmf)8H!WL12J,u*nr."ogJ?%>ti;Wf&
+oRI'lMnSBRgA_/6o7-seMS&*Ne,KF)nUL^hU"/i)s*t~>
+mf*=e-N*oI:p]$RrlY6AqM"M@"A"Tjm/H/I!3>ts"ETjNnG_GI!UU-a!!*3jqu?mBEfRp!r8@ST
+an,Q9'83[NqqD&M+7fI87Z+hArR:cH^@;1+<1(o"rp]r<~>
+mf*=eAGo+'EO4NsrlY6AqPNjV"D!S1m/H/I!5n\+"ETjNnG_GI!UrnW8c_Rur(7,lEfRp!r8@ST
+f^qc=:kZ.6qqD&M@.Qtn@Z%e]rR:cHdIBg3C7*68rp]r<~>
+mf*=eP5Tn6LpPt5rlY6AqRuKN"F-!Em/H/I!7gss"ETjNnG_GI!V:s8J,k3!J-C7>NkaiVi;Wf;
+oRI'mKX0V7gA_/6o7-seMS&*Ne,KF)nULagR*>+"nGe"~>
+mJd/pr;Zs)M8niYb5VPBjp1MY"@nEblM]lF!/paT"9N\3bjs`m!W?*k!!!)u!!Q&BT[NH2i;WfJ
+o)Jl;W7q%#rr=/4!!GcK]BK4BrrBe'!!G`P`9mQns*t~>
+mJd0HrCR2dP/cebb5VPBlVI.F"CmD)lM]lF!3Q,j"*BmRo&9TLrJ0u:!)*5^"_)eNde!IrrrD``
+8csI>gA'D%!+>Cj"Cd8#kl'!1!7C=/"CmP3mJcVTJ,~>
+mJd0ir."m9`p3KErrW2fKCjZsGDs9$rT=+[`VY/fFI15BiVrrWWU53>EdFD,oD[\J!;Q/9"+I3&
+ptG`JO7Rl)G)EoqrR:cHhXQ+!H'#u3rp]r<~>
+mJd0Rqu?jKW7CM=b5VM?:\4Vi6]/P?rT=+[B`%i5%<e2eo\ofNrjD.o"Uf1&[,Ur>rrN*CoDeu!
+T$d2arr=/4!!GcK]BK4BrrB(h!!G?@]]oCas*t~>
+mJd0or(7)tW7CM=b5VM?Jb2P;@>__]rT=+[Pl+,V:3N)Qo\ofNrlOS#"\rrj[,Ur>rrN+.oL]4'
+T$d2arr?Hu8d&U\]BK4BrrBt,8d&IY]]oCas*t~>
+mJd1/r."p'W7CM=b5VM?V=]9@GDa&srT=+[[/>FWIWh1,o\ofNrn$Rg"b(BF[,Ur>rrN+\oRI$j
+T$d2arrA,OJ-:%Q]BK4BrrCU>J-:1V]]oCas*t~>
+mJd19qZ$_.]&NP.rrN+foDf"[M7VpLk5PEOqu?j/GFd1Si;WiS)XdY020P>-meu#B!)E.d"@89m
+mf(u@!$Ce4"@e9\kl'!1!1r]\">GS>k5=`KJ,~>
+mJd1Eqaps<]&NP.rrN,-oL]6oM7VpLk5PF/r(7)eGFd1Si;WiS>jk8g>'?7Rmeu#B!.jc7"Cm\:
+mf(u@!+>Cj"Cd8#kl'!1!4q\m"BpPhk5=`KJ,~>
+mJd1Mqg\d.]&NP.rrN,AoRI'hM7VpLk5PFWr."p!GFd1Si;WiSN:29#F`s+mmeu#B!2fC="FHBR
+mf(u@!0?`%"Eo[7kl'!1!711c"F>g3k5=`KJ,~>
+mJd4c&,ZD1$BiR!r6#$>f^o.H7YnY>r9""Z./X&J&p^,!p#,iNrc@N."CH\Zg@sG'!.+8;"=B&>
+kl'99!$Ce4"@e9\kl'!1!.aS>"=f)2j8AEHJ,~>
+mJd4c<;]>k:702kr6#$>iq,hG@YhVZr9""ZB)G7(:jJ\_p#,iNrgN:J"DE=cg@sG'!2/sV"BUMo
+kl'99!+>Cj"Cd8#kl'!1!2T-W"B^>`j8AEHJ,~>
+mJd4cL\lT(SBC6sb5VJ,oRI'fLq;gJk5PFGr."otH(WUZi;WiW\*nhMDh+kApYGiL]_$^WI#GZ$
+rS.>PO7Rl)G)EoqrR:cH_!upXHA&Wbr:'`:~>
+mJd4d9)ASk0<Egurlb<Br<r8u"@e6Zkl'ZD!!N3""<)T\f(S#$!6t!5"Wh]E^?GLNrrAbb!!Ejc
+Z/PQ6rr=/4!!GcK]BK4Brr?U"!!Fa&YMf9Hs*t~>
+mJd4dIeu_?@'&#Qrlb<BrDN;\"Cd5!kl'ZD!)3;_"B'Q?f(S#$!8?p7"]KH%^?GLNrrB_(8d%qB
+Z/PQ6rr?Hu8d&U\]BK4BrrA2O8d&7JYMf9Hs*t~>
+mJd4dV#,ZFKrir!rlb<BrIsop"EoX5kl'ZD!.t-!"FGHhf(S#$!9<R!"aY3L^?GLNrrCC;J-:=R
+Z/PQ6rrA,OJ-:%Q]BK4BrrB@pJ-:1MYMf9Hs*t~>
+m/I':q>^V,]]An3rrN*Ko`,+kMS/0OkPkPBqZ$a<H_f<ghu<`T/b&fE8:$oUoD[SG!5\7,"*CEn
+pY5]J+7fI87Z+hArR:cH3:QtO.=eSYqXFN8~>
+m/I'^qFUj;]]An3rrN+4oh#?uMS/0OkPkPJqapuhH_f<ghu<`TC%4e!@!\HmoD[SG!7UO3"*pcs
+pY5]J@.Qtn@Z%e]rR:cHEUcX(=FdR3qXFN8~>
+m/I(#qLA[.]]An3rrN+`omd0fMS/0OkPkPPqge]n!i4KChu<`TQ19A.EdFA*oD[SG!8mBu"+I-#
+pY5]JO7Rl)G)EoqrR:cHSFM+4H@W0UqXFN8~>
+m/I'qq>^X(N6:MbbPqQ+o`,,"N5"TUkPkOoqZ$a<I&>Tlhu<`VMXg`N#]#1$iVM@0!8d;I"BM&>
+oD[PF!$Ce4"@e9\kl'!1!"AAt"=\l(htljBJ,~>
+m/I(0qFUlcQ-/IkbPqQcoh#@$N5"TUkPkP-qapuhI&>Tlhu<`VX7Ajd9PoNjiVM@0!9`rG"DjUT
+oD[PF!+>Cj"Cd8#kl'!1!)i>Z"B^2WhtljBJ,~>
+m/I(>q1&R;b3]&LrrAY`J-9tQ^?Y[[rrCmPJ-:4HVV1b%rrN,9npgmmDhbUWqV;)Nmdkr3I%8RT
+rnRMRO7Rl)G)EoqrR:cHL@KcsH@W0UqXFN8~>
+m/I(Uq#COAW7LS>bl7Z0o`,,0OMgGakPkOKqZ$a<I&>WmhZ!W5"S2Ts/p*AumJYi?!<2Qi"?DXa
+mf)#A!$Ce4"@e9\kl'$2!71-7">k\4i;2sCJ,~>
+m/I(Xq+:cnWn-e@bl7Zgoh#@*OMgGakPkOiqapuhI&>WmhZ!W=9_1j[=EKhJmJYi?!<2R^"CRD3
+mf)#A!+>Cj"Cd8#kl'$2!8[-:"C$G[i;2sCJ,~>
+m/I([q1&U$Wn-e@bl7[:omd0cOMgGakPkP*qge]o!iF]HhZ!WCK(FKrGBB+imJYi?!<2S?"FQBO
+mf)#A!0?`%"Eo[7kl'$2!9`j%"F,L#i;2sCJ,~>
+m/I+c0)5JM7(D1LrltHC6hUK`$?VQTnG_VN!-%f8"<2`cgA'P)!W>:T!!HDQVqC^trrN*)oDf":
+M7VjIh#@?no)Jn_MS&*NeGfN0n,NSRK!=83nGe"~>
+m/I+cCACI)Cq/EtrltHCH1ji69luZBnG_VN!1E^V"B'WEgA'P)!W@358d&aTVqC^trrN*poL]6e
+M7VjIh#@@[o1B-pMS&*NeGfNQn4EgiK!=83nGe"~>
+m/I+cQMH%6MR_U=rltHCU%X!?IWUjsnG_VN!4_oVs*OmFgA'P)!WAV]J-9h?VqC^trrN+PoRI'l
+M7VjIh#@A6o7-seMS&*NeGfNhn:1XbK!=83nGe"~>
+li-rrp](D-_WL^>rr>:W!!FEgSC$ojrr>ai!!F-dVV:h%rrN+foDf%/E/V?jqqD&M+7oO9#D0,9
+qV;,A!!GcK]BK4Crr>IV!!GoJ[H.8Ts*t~>
+li-sIpdtX=_WL^>rr@698d&+;SC$ojrr@TH8d&%>VV:h%rrN,-oL]9`E/V?jqqD&M@.[%o9S0G)
+qV;,A8d&U\]BK4Crr@B78d&UW[H.8Ts*t~>
+li-sipj`I1_WL^>rrA\bJ-:1BSC$ojrrAqnJH'uuVV:h%rrN,AoRI*mE/V?jqqD&MO7[r*ItFi\
+qV;,AJ-:%Q]BK4CrrAe_J-9tJ[H.8Ts*t~>
+li-sQp](F$KZi`ZcMml#p&G4TI&,Ehk5PE,qZ$a/I&5Kih>[ND#PA'#4F!@?nc%8B!$Ce4")"C[
+p>#]=!!GcK]BK4DrrMEgn,NSrMS&*NnGe"~>
+li-snpdtZ`PKW=icMml^p.>HmI&,Ehk5PEkqapudI&5Kih>[NH:\@<`?$Mj`nc%8B!+>Cj"*:6g
+p>#]=8d&U\]BK4DrrMXan4EgtMS&*NnGe"~>
+li-t.pOE@;bO#,OrrAJ\J-:%CUtGG(rrA5ZJ-:=KV:bOurrMbEomd3fGaltJrn@APO7Rl(IA>Be
+h#Hqq"Eo[7kl''3!VM'6J-9nM]BK4_s*t~>
+li-t3pAb=+RFC['ci3t]p&G4qK!=20kPkPVq>^X*HD9!ah>[NS9_JGi!bHtdh>#\'!%7@<"A,!(
+nc%AEnc/e^MS&*Nec,W-n,NUqEKA$(rp]r<~>
+li-t@pIYQcU!rN/ci3uKp.>I"K!=20kPkPXqFUlbHD9!ah>[NSJ+ZD:C4`VEpt>ZIAb/LsAsgd3
+rn[VF8d&U\]BK4DrrB1j8d.n.O2L>`nGe"~>
+li-tIpOEBuVpk/5ci4!(p4*9cK!=20kPkPZqLA]tHD9!ah>[NSV"K6@Dh>.Jpt>ZIPOj;-I$i+I
+rn[VFJ-:%Q]BK4DrrC%-J-CFBO2L>`nGe"~>
+li."a&,-&,(oGsVrR(WFn+H_b#]Pa9kksWD!71H@"*gHfp"fWKrhfAh"WqcH_<V!Prr>7S!!Fp7
+_!CsUrrCsI!!GcK]BK4ErrN!Bn,NV6FdUDCrp]r<~>
+li."a<;/uf<iamDrR(WFo_(l\9Q5s(kksWD!8[HC"*gHfp"fWKrkA(u"]TN(_<V!Prr@668d&@Y
+_!CsUrrD9R8d&U\]BK4ErrN%-n4Ej`FdUDCrp]r<~>
+li."aL\H<%KW`turR(WFp\'+@IW17ZkksWD!9a0."*gHfp"fWKrm:@h"aY3N_<V!PrrAY^J-:7[
+_!CsUrrDNYJ-:%Q]BK4ErrN(]n:1[gFdUDCrp]r<~>
+li."b6M:B^,d,qprmLfH\+Te*/p<W*nG_VN!2oVm")==Po\BHIo*b9m"\*g3de*Olrr>:T!!Emf
+[,_&?rrCdD!!GcK]BK4ErrA\[!!GT8Ut>>/s*t~>
+li."bGkO`4?Er;XrmLfHbk=X4=E^(TnG_VN!5SD&"*0mXo\BHIohtNV"^lYMde*Olrr@668d%tE
+[,_&?rrD0O8d&U\]BK4ErrB\"8d&IJUt>>/s*t~>
+li."bT_<m=LU>k/rmLfHg\-.$GBT@snG_VN!7Uao"*g<^o\BHIpP&?l"`ep_de*OlrrA\_J-:=T
+[,_&?rrDEVJ-:%Q]BK4ErrCC6J-9tAUt>>/s*t~>
+lMgj0o`,+AZJP9Re,KDhp&G5!J#M)pk5PF+q#CP&Qd#"!h>[NS=SMk""`&k!iVM4,!'g#S")k*k
+pYPoM^[_@-7Z+hArR_&MpE8r*"TrCkZJt`Ls*t~>
+lMgjVoh#?n[bg]Ve,KE<p.>I"J#M)pk5PFRq+:d+Qd#"!h>[NSL\OIF9PoNjiVM4,!-[p*"*g`t
+pYPoMddg!5@Z%e]rR_&Mq-`\a"\WZcZJt`Ls*t~>
+lMgjromd1$\DHoXe,KEYp4*9bJ#M)pk5PFoq1&TmQd#"!h>[NSWq_)JIrC(JiVM4,!2&h4"+R6&
+pYPoMhsu:#G)EoqrR_&MqiL;t"b1HEZJt`Ls*t~>
+lMgjcoDf"@[,:QUeGfLgpAb@8EK%Qmr9""Z8GN5g8Wq*]rnRMRWqZPt.WgopmJY];!&*mC"A,*.
+o)@PH!3>Yj"@e9\kl'-5!-@T/"Y"PW`9dHks*t~>
+lMgk&oL]6n\)6lXeGfMTpIYTeEK%Qmr9""ZI/-A;AWk($rnRMR_>$V+=*0\HmJY];!,M-t"D=4L
+o)@PH!5nA""Cd8#kl'-5!1`LM"]of0`9dHks*t~>
+lMgk7oRI(#]&32[eGfN/pOEEoEK%Qmr9""ZV"oNDH'628rnRMRdeJ=rG]]1imJY];!138,"FZcb
+o)@PH!7gXj"Eo[7kl'-5!4hQK"aG-Q`9dHks*t~>
+lMgkCo)Jn?[,:QUf)G`Rp&G7mH(N@Qroa:^o*G-l">c"NlM]N<!V6]p!!H)GV:P@lrr<l+!!FI+
+_!:mUrr@uJ!!GcK]BK4GrrL"?n,NXo?%/X$p&=F[J,~>
+lMgkKo1B-m\)6lXf)G`ip.>KuH(N@Qroa:^p/(QW"C-o"lM]N<!VK@d8d&XPV:P@lrr?6n8d&1U
+_!:mUrrB1l8d&U\]BK4GrrLVDmn*asI\kWgrpTl;~>
+lMgkQo7-t"]&32[f)Ga%p4*<dH(N@Qroa:^q1SQo"FH*AlM]N<!V_<DJ-9k?V:P@lrrA#KJ-::]
+_!:mUrrC%/J-:%Q]BK4GrrM)1mskR[I\kWgrpTl;~>
+lMgna'Cu2,,cokprR_&L0_YPN+E3.FiVDX9!1W``";Za"jS[g5!WH3t!!N^ILpuIBf`(sCnGi[p
+I^.i-hu<[enc/e^MS&*Ng&D*9)".G.13/Dfk54THJ,~>
+lMgna=7]#e?F&G[rR_&LD"gO*<,dZ%iVDX9!4_er"B'u^jS[g5!WIlN8d.q-LpuIBf`(sFnO`pW
+J[+/0hu<\<nk'$oMS&*Ng&D*@>OP/f=`TP8k54THJ,~>
+lMgnaM=Z6#Lq)=6rR_&LR.l+7H>n\KiVDX9!6t:h"FZ$4jS[g5!WK+qJ-CC@LpuIBf`(sIn:1Uo
+Z/GK9rrB@qJ-:%Q]BK4HrrM_MmskRbEfRfpqsOK7~>
+lMgna9(Drb'qO.Nr7V)MS+cme"(-AGcLCeqrrMj>pAb;9Wn[='rrB(q!!OutQc\^qf`(rdn,NSg
+U"&`6i;Wd2nc/e^MS&*NgA_3:..7-?&o3#peFW\-s*t~>
+lMgnaIe$)6<iXsGr7V)M\G&T"95&XCcLCeqrrMq*pIYO6Wn[='rrBn38d/=>Qc\^qf`(s"n4Eh"
+U"&`6i;Wdnnk'$oMS&*NgA_3AB(&=r:i1`[eFW\-s*t~>
+lMgnaV"0$=KsTS*r7V)Mc1c_mIrBY)cLCeqrrN"[p4*4Eg\BP'!7L^o"a>*Uam]5]rrCsGJ-:@q
+eF`aurrAGWJ-:%Q]BK4IrrM_UmskUiDh+_7oD\1XJ,~>
+l2La,nGi^uJ_0AernRMSh[oM^"Zg^a]&WVKrr@E>!!G][cgq(jrrM^!qZ$atI]1omfDbhhn,NS8
+P/Q_ciVro@nGi\]MS&*Ng]%<;..7-?"^-)9_s%!bs*t~>
+l2LaSnO`s[R+Lg'rnRMSkZ.@L"^H,.]&WVKrrAee8d&arcgq(jrrMdjqaq!%I]1omfDbi=n4Egb
+P/Q_ciVroGnO`pnMS&*Ng]%<BB(&=r9P/O8_s%!bs*t~>
+l2LapnULdpWn6_9rnRMSmtg^g"a"gF]&WVKrrBb+J-:=kcgq(jrrMkJqg\fhI]1omfDbi[n:1Xj
+P/Q_ciVroLnULacMS&*Ng]%<GPja,,IrBRt_s%!bs*t~>
+l2La_mf3Jfc0G*'hZ!WJ0_YPO*cHY/eare'rrKG/p&G4'MSA<Ph#@ES=Sr.&$ZM!7k53g2!V[H"
+!!@,Di;)@3!0cpQ"@e6[kl'<:!RDnW!!`QtFH!Zbp\sR[J,~>
+l2Lb"mn*_0cKb3(hZ!WMD"gO+;f@8deare'rrL59p.>H_N5"NRh#@ESL\saJ:2l*%k53g2!Vosg
+8csIGi;)@3!4),e"Cd5"kl'<:!Sq/O8d8^GN4.U;rpB`9~>
+l2Lb4mskP/cg(<)hZ!WPR.l+8H>eD6eare'rrLf)p4*9qNkX`Th#@ESWr.ANIW11Uk53g2!W.iE
+J-1P2i;)@3!6Ob]"EoX6kl'<:!U#R4J-L%9N4.U;rpB`9~>
+l2Lb6mJmA6WoNaLi;WiL48/^Z%qL$Wa6WWcrrL"GoDf"aWS$qDh#@ASqu?mQG*pGArn.5NL[G-F
+*1G+@rSmhW/F`]C'md=Lqq_8QP76jZ#!?p\XOZn?m/MS~>
+l2LbAmRdUg[c@#Xi;WiOFSAB3:25-Ga6WWcrrLVIoL]7$WS$qDh#@Ajr(7,pG*pGArn.5NWpWI^
+<h.D'rSmhWC%4du;1c7;qq_8QZ;U*_#$c2'XOZn?m/MS~>
+l2LbJmXPFt^Z4tai;WiRSbIX=I;XD%a6WWcrrM)5oRI'sWS$qDh#@B&r."rpG*pGArn.5N_sMsV
+SBUL$ir9"EnULajLUQ:@h>[MtL@0QrFE3,;eai\*s*t~>
+l2Le`$gmuu"_lNTq>TFS!TQ$2!!`j8GE]]"q#9LW!P8d3!!EFP_<CdOrrM^!r;Zt!I]1upf`)!$%
+.+#t8@.1IroF(ZU[J0d%rThaqYoIR!Rj:$!!`QjEJ147mJQ;MJ,~>
+l2Le`;XR-\9oRZkq>TFS!UF[u8dA('GE]]"q#9LW!RF[88d%hE_<CdOrrMdjrCR3'I]1upf`)!1
+;XI'ZD6r*nroF(Z^@+Yt;2EZhqYoIR!T81h8d8UAKVm&^r9OB5~>
+l2Le`L$jHpJu.)eq>TFS!V)WQJ-UOAGE]]"q#9LW!SrM$J-1tNkkj08!V_<HJ-9k@W7q!urrMA=
+m=5=qZekHUjSo5-mskRmSC6m&ro*kXl(@?n#'=j<VU"T,li2J~>
+l2Le`1@+uE+IqNbr;PjY!NQq/!!`j8G)iuco`"(S!KRBR!!En#dI@(irrN*mrW!*0E/M6hr7V)N
+k:#Wr"BiV(q>TOV!TOm]!!XBfeFNG6roX4^dU*.F!!`^'EeUC6lMBfGJ,~>
+l2Le`D<sju?E`G^r;PjY!Q8+78dA('G)iuco`"(S!O,;g8d&%`dI@(irrN+Lr^m>hE/M6hr7V)N
+mUkcW"F@rIq>TOV!UEkT8d8Ifg%+t;roX4^hi1=t8dA%!EeUC6lMBfGJ,~>
+l2Le`R-]>,MnJ-Cr;PjY!S*)%J-UOAG)iuco`"(S!QTf^J-:FudI@(irrN+prdY0$E/M6hr7V)N
+o9AQk"HgR`q>TOV!V)'7J-Lk8hX^L@roX4^kc]U+J-UREEeUC6lMBfGJ,~>
+kl1Wpl2UuP\*<Varp'LacU[[/#7Og[Nj@=.r9=4^gHY*+";?sNnbh5C!1s/i"YY%db4,DarrL.[
+kl:iY_WU^nkl1\H.-^d<"$1nHoD&7_rpB^entJA8!!jBKG)E<FlM:GEs*t~>
+kl1XGl:M5#_Wgdlrp'LagjJff#>SoTNj@=.r9=4^k'-5c"B;&Hnbh5C!4i)$"^#r8b4,DarrL_X
+kt2)#`TR$qkl1\OB'Mto9Q6ZMoD&7_rpB^ep:Y\:8dJ:.G)E<FlM:GEs*t~>
+kl1Xgl@9&)bN\`urp'LakG.a$#C^T7Nj@=.r9=4^m@Wfs"G<`,nbh5C!6tLn"a>-Wb4,DarrM/?
+l$ro"`om-rkl1\TPj3c)JXEt"oD&7_rpB^eps>Z"J-^L@G)E<FlM:GEs*t~>
+kl1XCkl:ni6)s5Dr;Q-a!Obes!!aBOG`T2_nbh\P!p=J-li71mAC'Z=rnm_]mfWUj<dq"$pY5]L
+k@Xq\!!O@#iUZmFli."#*9@/,%R"Wo_WLXjr;HWoqu?]q"R`jU6O<#Y#mNM1I?UtcmJ?hHs*t~>
+kl1Xckt2.RFM$i3r;Q-a!R-/g8dA7/G`T2_nbh\P!q)IQlq.FTL=5Jbrnm_]nk;YJB7?f5pY5]L
+mZUB.8d/CmiUZmFli."5?KFcc;fn80d-LK(r;HWoqu?]q"S0j;Gu*d!#u"WDI?UtcmJ?hHs*t~>
+kl1Y&l$rthRE4[er;Q-a!SaOFJ-UF>G`T2_nbh\P!qWmSm!o7jT[W<(rnm_]on%^EFFL1BpY5]L
+o<X&3J-Cb8iUZmFli."CNobctL7>Kgh!Xt7r;HWoqu?]q"SUWfTnMc_$%I&:I?UtcmJ?hHs*t~>
+kl1Xrjo>W0FLgr:r;Q]hrr_\pCE)pH#Qcc!I$D(mnbhbR"8fZ2#j;6m&p2Ojq#13Ors8Qg!"4".
+\`WhHrr`,/>6s6h"sSWKo(i7`nG`O+:Yc!S%OaPFC4#l+")V4&([1o+"#"51LnVT=nGDDKJ,~>
+kl1Y/k"5kcR)ngmr;Q]hrr_l6Q<j,T#?l%nPd]98r9XFcr6C*pkXl%ZQ.PO#rVkgV#lSs>:O%c-
+k5=*9"8pH%:ub.P@%Z0Dq>L<^rrLW$h+@lNAp0#qTV;=Y"."da>3SWc93H(ULnVT=nGDDKJ,~>
+kl1Y=k(!\rZIJF>r;Q]hrr_uI[>jg/#Bk'6Pd]98r9XFcrS4H,k^WklY1rI@rVkgV#lU?FJU*-`
+k5=*9"8prVK]@ReN4%R6q>L<^rrM&Uh1,Z`P+AVY]DT;D[B,mVl$s(iGB%k`TtfCPqre!0~>
+kl1YIirBT%89UT9f\5'6gXEg.JlXAl!!j??FG-7#hX^U5rri>TSmN2l!!`TaHEuT*qY^?lkl1qf
+P5mXuR*"grj8T;^o"KuW&DdBn"#k>)j7iEKrr2fps8E,WVIpjV!"&obApB'![*Ih,r9"$0~>
+kl1YOj%9MUHCVIgi8agt"lIY<VMAjU8dJ:+FG-7#hX^U5rri>^\rBhP8dA%-S]'adqY^?lkl1qf
+Z:\ebR*"grj8T;^p!Bdl<Sg=S9Q$98kkFrPrr2fps8E,`^lr'48d\6qCj:]'[*Ih,r9"$0~>
+kl1YSj+%YqTXW(rkj%I!lfd-M^oE[jJ-^OCFG-7#hX^U5rri>fcEE,cJ-UXk[aOL9qY^?lkl1qf
+a+/u#R*"grj8T;^ptireLu*XgJX<ajlhC8Srr2fps8E,gd^+qAJ-pdMEd3>-[*Ih,r9"$0~>
+kl1\_'E.t9!uWR>/0Y_S!!s!!E.*kMb2i9pnc&]PB0Hj[!!j;u<c39EpA=jSrs%?\HC(Yap>u;V
+mrM8Le,Tms7VT7#q#15rG?-I0[/^U:*Ck$qLmt]mi:-UBjo9i~>
+kl1\_=8ker92\kq>?=\L8dS4!EIEtNb2i9pnc&]qPBKs[8dJO<KpJCqpA=jSrs%XYOI*!"p>u;V
+oULMBe4L-THBZA>q#164Sqh/^Zq:^)@WHjPS$L2pnG<.Gs*t~>
+kl1\_M>i#0IsZKhI"$RmJ-g[HEda(Ob2i9pnc&^3Z_!!,J-_""W3j2&pA=jSrs%k@TU2\2p>u;V
+pUR2ae:7sdTX!#;q#16E];h6R["&O2F`VqdS$L2pnG<.Gs*t~>
+kPl&N""mAeHA%6?P`gl>9IUD&!"'6$DL7;9^=_iKrp]pf+OU5l[G:3HlMh(e5JXG;jSS'=!8l'%
+"_?*EpASF+!"BDf88EO)P+oD.hsU:<j8XW~>
+kPl'39O_aWHA%6?P`guRDHoui8d\="E-mM;^=_iKrp]pf@+%XL^>//QlMh(eG/CDtjSS'=!9h^#
+"c:^jpAU)Z8e"Nt@rZgJP+oD.hsU:<j8XW~>
+kPl$\JV\_rHA%6?P`h)bL4Rs,$@R&;H]+W4f^8M6nG`KMdXVG=h!Y%(rs&Fn`3-o:qrRhXn'6Fe
+UsnK"ri`\Z%=WVHG'\h)U:/8&meHb@s*t~>
+kPl74`3,;fU9VGOaMu*/ZDX4D>s'#.huF,g-W"o6NM3o0k4JT>rsjj*?rBa(=BT-B?tX@rEURrJ
+@fKg9?2dY.:..N?3&ipe]\W;\li.1go\7O?n,DGK''ag]>Ydpc<Dub#?=$uKDJsN7mrBIe@UWYO
+>#8$k7R9@(1cB-Rd-gk$=CG3<?>=:jFEI+ps'cCE>#8$b5W^SL*Z>Lni;aGn'I>e:C4(VkQ(kS%
+eDp&nrSdd,~>
+kPl7DbH@%mU9VGOaMu*/ZDX4MG@jiKi(=AN<b6B%NM3o0k4JT>rsbupKm7W^FE2PGEclVPmWo"Y
+FE;JBrG2gSC2@KoB:limpAXCX#6+8Lb1H+]jo5YVTTaqKDJjH4D>eGUF*MutH6IQUFE;JACi!m#
+AnP^cA:h&4mesVLLO+ApIsucpI=-Bgp3I3kFE;D;CM.0e>[(6.:efn@&PQ&'?YFJ-Jr>ngZGY2P
+nG)t@s*t~>
+kPl1Nd&rRrU9VGOaMu*/ZDX4TM1j`9$\*GDFFK4C\^9L2r9jRp_QohtN/NLGK7SQ&It3+;K):'+
+JqSi4L5:\^]\W;\li.1go\7O?n,DGK$hV'6S<&M^KnFr,If4`tJ:W:<K)C-7It3*%K7nuCYgDh:
+bc%;%P)bQ]M2$]RK):&uJ,OirJ)PniIslZiG^+UfMj:$B_pm`9q#01OJ,~>
+kPlCqkfgcZeDTTZn*]Q+inDbu\ZVZjE)//'k5Yr'/PpG7LR"dMdH'lprpB^rqW5\tTq7jJTq\B\
+W2cr$n?*G,XJr+pVPKrZTV%gIT:i'nh"C[3rri2dk3Vm(rt>>)hS#hZSXc7CTVA6ZVPpMrXm`D#
+XfSS%Vl$>eU7e-LrgX7dYg;b9r9MS1rh9RlV5C2lXnAh;XfSM"VPKoXS=5e0P)tZ\I<B=7?VsWm
+5X.Fh/hZiL'fnHM<FKiqJqo;KR\[.!aOT89o_SREs*t~>
+kPlCqkfgcZeDTTZn*]Q+inDbu\ZVZlJT"ppk=Q1Z=_;c'LR"dMdH'lprpB^rqW5\tTq7jJTq\B\
+W2cr$n?*G,XJr+pVPKrZTV%gIT:i'nh"C[3rri2dk3Vm(rt>>)hS#hZSXc7CTVA6ZVPpMrXm`D#
+XfSS%Vl$>eU7e-LrgX7dYg;b9r9MS1rh9RlV5C2lXnAh;XfSM"VPKoXS=5e0P)tZ\K78)gF)>`-
+ARo:X>[6u,'jtK`CN+NIJqo;KR\[.!aOT89o_SREs*t~>
+kPl@pkfgcZeDTTZn*]Q+inDbu\ZVZnN/*#IJ.6pPG'/1fQ)D:BjRW0HmJd^nji+<pSt;RJU8=`c
+WiW>lXqRq=WMcVjUnXNTT:VXHTVf?Vp&=7V"T%QKm.fZA')qU]]r.KnS=Q:FU84Z`W2cr$n#d&#
+XK/:tVP^/`TV%eSS-YakcgLc0lccR3U'7?hVPpPtor]17XJr+pUnOENR[9;&OH#-QKnP&/JUi6#
+J,OiiIK+]pHiJI(IY*?6PFA;N]?&O]m.C/RhuA3~>
+kPkecp?_#0o_SLarY#2,q"*q9hUTfb[&KXYEDekD%J'Q3!tun?:i(N2N0gEMa4TSGqYog\%fGkT
+eBlRie(*%%g=tE>mb\W4gtLK8f[eU&da6=cbK\]*qW\"_rqcEdrT!nhqX31fcd:%eeCE.&g"P39
+hX02AhV?l>g=b-0eC;pncHOJ[jRrNNoA\6Ed*pOtg"bETh]:P.g=b-0eC)[eb/V<5]XY>QY,\Cq
+U7\!GR@';*p662UR%'bEWj&tH`m<8okjS3@rVkXQJ,~>
+kPkecp?_#0o_SLarY#2,q"*q9hUTfb[&KX[J8f%%:\.0j92JYqBQJQQN0gEMa4TSGqYog\%fGkT
+eBlRie(*%%g=tE>mb\W4gtLK8f[eU&da6=cbK\]*qW\"_rqcEdrT!nhqX31fcd:%eeCE.&g"P39
+hX02AhV?l>g=b-0eC;pncHOJ[jRrNNoA\6Ed*pOtg"bETh]:P.g=b-0eC)[eb/V<5]XY>QY,\Cq
+U7\!GR@';*p662UR%'bEWj&tH`m<8okjS3@rVkXQJ,~>
+kPkecp?_#0o_SLarXf&*q"*q9hUTfb[&KX]MhZlRJ.R-UH?a[^JrH%n[`@%`o(r@Orsntsi7--#
+dF6Xsf\5*8hX985h;$`<g"=m+eC)^icHFJblh]lG"TJ8mqYfIS&GkhNda-:edaZguf\,!5gtqGU
+*o>],g=k64f$r3td*BkYdcC*#rU]$tcHt%jf\,'9oA:SEgtLH6f$r-obf[rB^V%(`Ycb"(UnXKP
+S!fY0Q1gFTQC+/7UoLZ.^;eLNhrsP%qYgELs*t~>
+k5PS_r;?Nmp\ts,r;--VlJpXIaM,![TU1[bAm%u-r([l1AT<3OL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+k5PS_r;?Nmp\ts,r;--VlJpXIaM,![TU1^lG]@S9r+Zj_Ed3(cL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+k5PS_r;?Nmp\u!-r;--VlJpXIaM,![TU1atL4b&-J,OiqI1LgZL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+%%EndData
+showpage
+%%Trailer
+end
+%%EOF
diff --git a/templates/Spanish_Letter-logo.png b/templates/Spanish_Letter-logo.png
new file mode 100755
index 00000000..5edcdfe5
--- /dev/null
+++ b/templates/Spanish_Letter-logo.png
Binary files differ
diff --git a/templates/Spanish_Letter-packing_list.html b/templates/Spanish_Letter-packing_list.html
new file mode 100755
index 00000000..82cba4f6
--- /dev/null
+++ b/templates/Spanish_Letter-packing_list.html
@@ -0,0 +1,155 @@
+<head>
+ <title>Albarán de Instalaciones Industriales San José</title>
+</head>
+
+<body bgcolor="ffffff">
+ <!-- Cabecera -->
+ <table width="100%">
+ <tr valign=bottom>
+ <td width="10">&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr>
+ <th colspan="5"> </th>
+ <th align="left">
+ <h4>A L B A R Á N</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td colspan="6"> </td>
+ </tr>
+
+ <tr>
+ <td colspan="5"> </td>
+ <td align="left"><%name%></td>
+ </tr>
+
+ <tr>
+ <td>Número</td>
+ <td>Factura</td>
+ <td>Fecha</td>
+ <td>Cód. Cliente</td>
+ <td width="10%"> </td>
+ <td><%address1%></td>
+ </tr>
+ <tr>
+ <td><b><%ordnumber%></b></td>
+ <td><b><%invnumber%></b></td>
+ <td><b><%invdate%></b></td>
+ <td><b><%customer_id%></b></td>
+ <td> </td>
+ <td><%addr2%></td>
+ </tr>
+ <tr>
+ <td colspan="5">
+ <td><%city%> <%state%> <%zipcode%></td>
+ </tr>
+ <tr>
+ <td colspan="5">
+ <td><%addr4%></td>
+ </tr>
+ </table>
+ </table>
+
+ <!-- Cuerpo -->
+ <table width=100% cellspacing=0 cellpadding=0>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <!-- <th align=left><font color=ffffff>Número</th> -->
+ <!-- <th><font color=ffffff>Cant.</th> -->
+ <th align="left"><font color="ffffff">Cant.</th>
+ <th align="left"><font color="ffffff">Descripción</th>
+ <th align="left"><font color="ffffff">Precio</th>
+ <!-- <th align="left"><font color="ffffff">Dto.</th> -->
+ <th align="left"><font color="ffffff">Importe</th>
+ </tr>
+
+ <tr>
+ <td colspan="4"><hr noshade></td>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+ <!-- <td><%number%></td> -->
+ <!-- <td><%unit%></td> -->
+ <td align="right"><%qty%></td>
+ <td align="left"><%description%></td>
+ <td align="right"><%sellprice%></td>
+ <!-- <td align=right><%discount%></td> -->
+ <td align="right"><%linetotal%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan="4"><hr noshade></td>
+ </tr>
+ </table>
+
+ <!-- Subtotales, impuestos y totales -->
+ <table width="100%">
+ <tr>
+<%if taxincluded%>
+ <th align=right>Total</th>
+ <td align=right><%invtotal%></td>
+<%end taxincluded%>
+<%if not taxincluded%>
+ <th align="right">Base imponible</th>
+ <td align="right"><%subtotal%> &euro;</td>
+<%end taxincluded%>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th align="right">IVA (<%taxrate%>%) sobre <%taxbase%>:</th>
+ <td align="right"><%tax%> &euro;</td>
+ </tr>
+<%end tax%>
+
+<%if paid%>
+ <tr>
+ <th align="right">Pagado:</th>
+ <td align="right"><%paid%> &euro;</td>
+ </tr>
+<%end paid%>
+
+ <tr>
+ <td>&nbsp;</td>
+ <td><hr noshade></td>
+ </tr>
+
+ <tr>
+ <th align="right">Total:</th>
+ <th align="right"><%invtotal%> &euro;</th>
+ </tr>
+
+ <tr>
+ <td colspan="4">&nbsp;</td>
+ </tr>
+
+ </table>
+
+
+ <!-- Pie -->
+ <table width="100%">
+ <tr valign=top>
+<%if notes%>
+ <td>Notas</td>
+ <td><%notes%></td>
+<%end notes%>
+ </tr>
+
+<%if taxincluded%>
+ <tr>
+ <th colspan="2" align="left"><font size=-2>Los precios incluyen impuestos.</th>
+ </tr>
+<%end taxincluded%>
+
+ </table>
+
+
+</body>
+</html>
+
diff --git a/templates/Spanish_Letter-packing_list.tex b/templates/Spanish_Letter-packing_list.tex
new file mode 100755
index 00000000..ed7eea63
--- /dev/null
+++ b/templates/Spanish_Letter-packing_list.tex
@@ -0,0 +1,108 @@
+\documentclass[letterpaper,oneside]{article}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+%\usepackage{marvosym} % Euro \EUR
+\usepackage{fancyhdr}
+\setlength{\topmargin}{0cm}
+\setlength{\topskip}{0cm}
+\setlength{\headheight}{0cm}
+\setlength{\headsep}{0.5cm}
+\setlength{\textheight}{24.2cm}
+\setlength{\textwidth}{19cm}
+\setlength{\oddsidemargin}{-1.4cm}
+\setlength{\evensidemargin}{-1.4cm}
+\setlength{\footskip}{1cm}
+
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{13.0cm}
+
+\newsavebox{\hdr}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\sbox{\hdr}{
+
+\begin{minipage}[t]{0.6\linewidth}
+\vspace{2.2cm}
+
+\begin{tabular}[t]{p{1.7cm}p{1.7cm}p{2.4cm}p{1.7cm}}\\
+\centering{Número} & \centering{Número} & \centering{Fecha} & C. Cliente\\
+ \centering{<%ordnumber%>} & \centering{<%invnumber%>} & \centering{<%invdate%>} & \centering{<%customer_id%>}
+\end{tabular}
+\end{minipage}
+
+\begin{minipage}[t]{0.4\linewidth}
+\textbf{A L B A R Á N}
+\vspace{1cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+\end{minipage}
+
+}
+
+\pagestyle{fancy}
+\renewcommand{\headrulewidth}{0cm}
+\renewcommand{\footrulewidth}{0cm}
+\cfoot{\thepage}
+%\markboth{\usebox{\hdr}}{\usebox{\hdr}}
+%\thispagestyle{empty} %use this with letterhead paper
+
+<%pagebreak 65 27 37%>
+\end{tabular*}
+\newpage
+\usebox{\hdr}
+\vspace{0.5cm}
+
+%\markboth{\usebox{\hdr}}{\usebox{\hdr}}
+\begin{tabular*}{\textwidth}{rp{\descrwidth}rr}
+ \textbf{Cant.} & \textbf{Descripción} & \textbf{Precio} & \textbf{Importe} \\ \hline
+<%end pagebreak%>
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\usebox{\hdr}
+\vspace{0.5cm}
+
+\begin{tabular*}{\textwidth}{rp{\descrwidth}rr}
+ \textbf{Cant.} & \textbf{Descripción} & \textbf{Precio} & \textbf{Importe} \\ \hline
+<%foreach number%>
+ <%qty%> & <%description%> & <%sellprice%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+\parbox{\textwidth}{
+\vspace{12pt}
+<%if notes%>
+ <%notes%>
+<%end if%>
+}
+
+\vfill
+
+\begin{flushright}
+\begin{tabularx}{10cm}{Xr@{}}
+ \textbf{Base imponible} & \textbf{<%subtotal%>} \\
+<%foreach tax%>
+ IVA (<%taxrate%>\%) sobre <%taxbase%> & <%tax%> \\
+<%end tax%>
+ \hline
+ \textbf{Total} & \textbf{<%invtotal%>} \\
+\end{tabularx}
+\end{flushright}
+
+%\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+\end{document}
+
diff --git a/templates/Spanish_Letter-pick_list.html b/templates/Spanish_Letter-pick_list.html
new file mode 100755
index 00000000..da8a3bdf
--- /dev/null
+++ b/templates/Spanish_Letter-pick_list.html
@@ -0,0 +1,153 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>P I C K &nbsp;&nbsp; L I S T</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th width=50% align=left><font color=ffffff>Ship To:</th>
+ <th width=50%>&nbsp;</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ </td>
+
+ <td>
+ <%if shiptocontact%>
+ <br>Attn: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=15% align=left>Invoice #</th>
+ <th width=15% align=left>Order #</th>
+ <th width=10% align=left>Date</th>
+ <th width=15% align=left nowrap>Contact</th>
+ <th width=15% align=left>Warehouse</th>
+ <th width=10% align=left>Shipping Point</th>
+ <th width=10% align=left>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%invnumber%>&nbsp;</td>
+ <td><%ordnumber%>&nbsp;</td>
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%transdate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+ <td><%warehouse%>&nbsp;</td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Pos</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qty</th>
+ <th><font color=ffffff>Ship</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Bin</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td align=right>[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</td>
+ <td><%unit%></td>
+ <td align=right><%bin%></td>
+ </tr>
+ <%end number%>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+</table>
+
diff --git a/templates/Spanish_Letter-pick_list.tex b/templates/Spanish_Letter-pick_list.tex
new file mode 100755
index 00000000..04953ce8
--- /dev/null
+++ b/templates/Spanish_Letter-pick_list.tex
@@ -0,0 +1,144 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}rlXrcll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} &
+ \textbf{Qty} & \textbf{Ship} & & \textbf{Bin} \\
+
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.5\textwidth}{
+ \textbf{Ship To}
+} \hfill
+
+\vspace{0.7cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.5\textwidth}{
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+}
+\parbox[t]{.4\textwidth}{
+ <%shiptocontact%>
+
+ <%if shiptophone%>
+ Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{P I C K} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{7}{|X}|} \hline
+ \textbf{Invoice \#} & \textbf{Order \#} & \textbf{Date} & \textbf{Contact}
+ & \textbf{Warehouse} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+ <%invnumber%> & <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%transdate%>
+ <%end shippingdate%>
+ & <%employee%>
+ <%if warehouse%>
+ & <%warehouse%>
+ <%end warehouse%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrcll@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} &
+ \textbf{Qty} & \textbf{Ship} & & \textbf{Bin} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> &
+ <%qty%> & [\hspace{1cm}] & <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+}
+
+\end{document}
+
diff --git a/templates/Spanish_Letter-pos_invoice.txt b/templates/Spanish_Letter-pos_invoice.txt
new file mode 100755
index 00000000..fecd1557
--- /dev/null
+++ b/templates/Spanish_Letter-pos_invoice.txt
@@ -0,0 +1,50 @@
+<%company align=center width=40%>
+<%address align=center width=40%>
+
+Till: <%till align=left width=3%> Phone#: <%tel%>
+Cashier: <%employee%>
+Inv No/Date: <%invnumber%> / <%invdate%>
+Printed: <%dateprinted%>
+
+ Qty Description Amount
+<%foreach number%>
+<%qty align=right width=5%> <%description align=left width=24 offset=6%> <%linetotal align=right width=9%>
+ <%number%> @ <%sellprice%>/<%unit%>
+<%end number%>
+
+Number of items: <%rowcount%>
+<%if taxincluded%>
+ ---------------
+ Amount Due: <%invtotal align=right width=9%>
+<%end taxincluded%>
+<%if not taxincluded%>
+ ------------
+ Subtotal: <%subtotal align=right width=9%>
+<%end taxincluded%>
+<%foreach tax%>
+<%taxdescription align=right width=23%> @ <%taxrate align=right width=2%>%: <%tax align=right width=9%>
+<%end tax%>
+ Amount Due: <%invtotal align=right width=9%>
+<%foreach payment%>
+<%paymentaccount align=right width=29%>: <%payment align=right width=9%> <%currency%>
+<%end payment%>
+<%if change%>
+ Change: <%change align=right width=9%>
+<%end change%>
+<%if total%>
+ Balance Due: <%total align=right width=9%>
+<%end total%>
+<%if discount%>
+
+<%discount%> % Discount applied
+<%end discount%>
+
+ Thank you for your valued business!
+
+<%if taxincluded%>
+Taxes are included in price.
+<%end taxincluded%>
+
+
+
+
diff --git a/templates/Spanish_Letter-purchase_order.html b/templates/Spanish_Letter-purchase_order.html
new file mode 100755
index 00000000..493fd375
--- /dev/null
+++ b/templates/Spanish_Letter-purchase_order.html
@@ -0,0 +1,153 @@
+<head>
+ <title>Pedido de Instalaciones Industriales San José</title>
+</head>
+
+<body bgcolor="ffffff">
+ <!-- Cabecera -->
+ <table width="100%">
+ <tr valign=bottom>
+ <td width="10">&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr>
+ <th colspan="4"> </th>
+ <th align="left">
+ <h4>P E D I D O</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td colspan="5"> </td>
+ </tr>
+
+ <tr>
+ <td colspan="4"> </td>
+ <td align="left"><%name%></td>
+ </tr>
+
+ <tr>
+ <td>Número</td>
+ <td>Fecha</td>
+ <td>Cód. Proveedor</td>
+ <td width="10%"> </td>
+ <td><%address1%></td>
+ </tr>
+ <tr>
+ <td><b><%ordnumber%></b></td>
+ <td><b><%orddate%></b></td>
+ <td><b><%vendor_id%></b></td>
+ <td> </td>
+ <td><%addr2%></td>
+ </tr>
+ <tr>
+ <td colspan="4">
+ <td><%city%> <%state%> <%zipcode%></td>
+ </tr>
+ <tr>
+ <td colspan="4">
+ <td><%addr4%></td>
+ </tr>
+ </table>
+ </table>
+
+ <!-- Cuerpo -->
+ <table width=100% cellspacing=0 cellpadding=0>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <!-- <th align=left><font color=ffffff>Número</th> -->
+ <!-- <th><font color=ffffff>Cant.</th> -->
+ <th align="left"><font color="ffffff">Cant.</th>
+ <th align="left"><font color="ffffff">Descripción</th>
+ <th align="left"><font color="ffffff">Precio</th>
+ <!-- <th align="left"><font color="ffffff">Dto.</th> -->
+ <th align="left"><font color="ffffff">Importe</th>
+ </tr>
+
+ <tr>
+ <td colspan="4"><hr noshade></td>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+ <!-- <td><%number%></td> -->
+ <!-- <td><%unit%></td> -->
+ <td align="right"><%qty%></td>
+ <td align="left"><%description%></td>
+ <td align="right"><%sellprice%></td>
+ <!-- <td align=right><%discount%></td> -->
+ <td align="right"><%linetotal%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan="4"><hr noshade></td>
+ </tr>
+ </table>
+
+ <!-- Subtotales, impuestos y totales -->
+ <table width="100%">
+ <tr>
+<%if taxincluded%>
+ <th align="right">Total</th>
+ <td align="right"><%ordtotal%></td>
+<%end taxincluded%>
+<%if not taxincluded%>
+ <th align="right">Base imponible</th>
+ <td align="right"><%subtotal%> &euro;</td>
+<%end taxincluded%>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th align="right">IVA (<%taxrate%>%) sobre <%taxbase%>:</th>
+ <td align="right"><%tax%> &euro;</td>
+ </tr>
+<%end tax%>
+
+<%if paid%>
+ <tr>
+ <th align="right">Pagado:</th>
+ <td align="right"><%paid%> &euro;</td>
+ </tr>
+<%end paid%>
+
+ <tr>
+ <td>&nbsp;</td>
+ <td><hr noshade></td>
+ </tr>
+
+ <tr>
+ <th align="right">Total:</th>
+ <th align="right"><%ordtotal%> &euro;</th>
+ </tr>
+
+ <tr>
+ <td colspan="4">&nbsp;</td>
+ </tr>
+
+ </table>
+
+
+ <!-- Pie -->
+ <table width="100%">
+ <tr valign=top>
+<%if notes%>
+ <td>Notas</td>
+ <td><%notes%></td>
+<%end notes%>
+ </tr>
+
+<%if taxincluded%>
+ <tr>
+ <th colspan="2" align="left"><font size=-2>Los precios incluyen impuestos.</th>
+ </tr>
+<%end taxincluded%>
+
+ </table>
+
+
+</body>
+</html>
+
diff --git a/templates/Spanish_Letter-purchase_order.tex b/templates/Spanish_Letter-purchase_order.tex
new file mode 100755
index 00000000..0fcd33f8
--- /dev/null
+++ b/templates/Spanish_Letter-purchase_order.tex
@@ -0,0 +1,111 @@
+\documentclass[letterpaper,oneside]{article}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+%\usepackage{marvosym} % Euro \EUR
+\usepackage{fancyhdr}
+\setlength{\topmargin}{0cm}
+\setlength{\topskip}{0cm}
+\setlength{\headheight}{0cm}
+\setlength{\headsep}{0.5cm}
+\setlength{\textheight}{24.2cm}
+\setlength{\textwidth}{19cm}
+\setlength{\oddsidemargin}{-1.4cm}
+\setlength{\evensidemargin}{-1.4cm}
+\setlength{\footskip}{1cm}
+
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{13.0cm}
+
+\newsavebox{\hdr}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\sbox{\hdr}{
+\begin{minipage}[t]{0.6\linewidth}
+\vspace{2.2cm}
+
+\begin{tabular}[t]{p{1.7cm}p{2.4cm}p{1.7cm}}\\
+\centering{Número} & \centering{Fecha} & C. Cliente\\
+\centering{<%ordnumber%>} & \centering{<%orddate%>} & \centering{<%vendor_id%>}
+\end{tabular}
+\end{minipage}
+
+\begin{minipage}[t]{0.4\linewidth}
+\textbf{O R D E N \quad D E \quad C O M P R A}
+\vspace{1cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+\end{minipage}
+
+}
+
+\pagestyle{fancy}
+\renewcommand{\headrulewidth}{0cm}
+\renewcommand{\footrulewidth}{0cm}
+\cfoot{\thepage}
+%\markboth{\usebox{\hdr}}{\usebox{\hdr}}
+%\thispagestyle{empty} %use this with letterhead paper
+
+<%pagebreak 65 27 37%>
+\end{tabular*}
+\newpage
+\usebox{\hdr}
+%\markboth{\usebox{\hdr}}{\usebox{\hdr}}
+\vspace{0.5cm}
+
+\begin{tabular*}{\textwidth}{rp{\descrwidth}rr}
+ \textbf{Cant.} & \textbf{Descripción} & \textbf{Precio} & \textbf{Importe} \\ \hline
+<%end pagebreak%>
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\usebox{\hdr}
+\vspace{0.5cm}
+
+\begin{tabular*}{\textwidth}{rp{\descrwidth}rr}
+ \textbf{Cant.} & \textbf{Descripción} & \textbf{Precio} & \textbf{Importe} \\ \hline
+<%foreach number%>
+ <%qty%> & <%description%> & <%sellprice%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+\parbox{\textwidth}{
+\vspace{12pt}
+<%if notes%>
+ <%notes%>
+<%end if%>
+}
+
+\vfill
+
+\begin{flushright}
+\begin{tabularx}{10cm}{Xr@{}}
+ \textbf{Base imponible} & \textbf{<%subtotal%>} \\
+<%foreach tax%>
+ IVA (<%taxrate%>\%) sobre <%taxbase%> & <%tax%> \\
+<%end tax%>
+ \hline
+ \textbf{Total} & \textbf{<%ordtotal%>} \\
+\end{tabularx}
+\end{flushright}
+
+%\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+\end{document}
+
diff --git a/templates/Spanish_Letter-receipt.tex b/templates/Spanish_Letter-receipt.tex
new file mode 100755
index 00000000..6742b5b5
--- /dev/null
+++ b/templates/Spanish_Letter-receipt.tex
@@ -0,0 +1,75 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.4cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.0cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+
+\fontfamily{cmss}\fontsize{9pt}{9pt}\selectfont
+
+\parbox[t]{12cm}{
+ <%company%>
+
+ <%address%>}
+\hfill
+\parbox[t]{6cm}{\hfill <%source%>}
+
+\vspace*{0.6cm}
+
+<%text_amount%> \dotfill <%decimal%>/100 \makebox[0.5cm]{\hfill}
+
+\vspace{0.5cm}
+
+\hfill <%datepaid%> \makebox[2cm]{\hfill} <%amount%>
+
+\vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{2.8cm}
+
+<%company%>
+
+\vspace{0.5cm}
+
+<%name%> \hfill <%datepaid%> \hfill <%source%>
+
+\vspace{0.5cm}
+\begin{tabularx}{\textwidth}{lXrr@{}}
+\textbf{Invoice No.} & \textbf{Invoice Date}
+ & \textbf{Due} & \textbf{Applied} \\
+<%foreach invnumber%>
+<%invnumber%> & <%invdate%> \dotfill
+ & <%due%> & <%paid%> \\
+<%end invnumber%>
+\end{tabularx}
+
+\vfill
+
+\end{document}
+
diff --git a/templates/Spanish_Letter-request_quotation.html b/templates/Spanish_Letter-request_quotation.html
new file mode 100755
index 00000000..fa684866
--- /dev/null
+++ b/templates/Spanish_Letter-request_quotation.html
@@ -0,0 +1,202 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <td><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58>
+ </td>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>R E Q U E S T &nbsp;&nbsp; F O R &nbsp;&nbsp; Q U O T A T I O N</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>To:</th>
+ <th align=left width=50%><font color=ffffff>Ship To:</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+<br>
+<%if contact%>
+<br>Attn: <%contact%>
+<%end contact%>
+<%if vendorphone%>
+<br>Tel: <%vendorphone%>
+<%end vendorphone%>
+<%if vendorfax%>
+<br>Fax: <%vendorfax%>
+<%end vendorfax%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddr2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+<br>
+<%if shiptocontact%>
+<br>Attn: <%shiptocontact%>
+<%end shiptocontact%>
+<%if shiptophone%>
+<br>Tel: <%shiptophone%>
+<%end shiptophone%>
+<%if shiptofax%>
+<br>Fax: <%shiptofax%>
+<%end shiptofax%>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr><td>&nbsp;</td></tr>
+
+ <tr>
+ <td colspan=2>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left>RFQ #</th>
+ <th width=17% align=left>Date</th>
+ <th width=17% align=left>Required by</th>
+ <th width=17% align=left>Contact</th>
+ <th width=17% align=left>Shipping Point</th>
+ <th width=15% align=left>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%quonumber%></td>
+ <td><%quodate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height="10"></tr>
+
+ <tr>
+ <td>Please provide price and delivery time for the following items:</td>
+ </tr>
+
+ <tr height="10"></tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+<!-- <th align=right>No.</th> -->
+ <th align=left>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th>Qt'y</th>
+ <th>&nbsp;</th>
+ <th>Delivery</th>
+ <th>Unit Price</th>
+ <th>Extended</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+<!-- <td align=right><%runningnumber%>.</td>
+other per line item variables available <%reqdate%>
+adjust the colspan if you include this to shift subtotal one to the right
+-->
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=7><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+<%if notes%>
+ <tr valign=top>
+ <td>Notes</td>
+ <td><%notes%></td>
+ </tr>
+<%end notes%>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=70%>&nbsp;</td>
+
+ <td width=30%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Spanish_Letter-request_quotation.tex b/templates/Spanish_Letter-request_quotation.tex
new file mode 100755
index 00000000..49f1abe7
--- /dev/null
+++ b/templates/Spanish_Letter-request_quotation.tex
@@ -0,0 +1,175 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Extended} \\
+ & carried forward from <%lastpage%> & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.45\textwidth}{
+\textbf{To}
+\vspace{0.7cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if vendorphone%>
+Tel: <%vendorphone%>
+<%end vendorphone%>
+
+<%if vendorfax%>
+Fax: <%vendorfax%>
+<%end vendorfax%>
+
+<%email%>
+}
+\parbox[t]{.45\textwidth}{
+\textbf{Ship To}
+\vspace{0.7cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{R E Q U E S T for Q U O T A T I O N}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{RFQ \#} & \textbf{Date} & \textbf{Required by} & \textbf{Contact} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5ex]
+ \hline
+ <%quonumber%> & <%quodate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+Please provide price and delivery time for the following items:
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}lXrllrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} & &
+ \textbf{Delivery} & \textbf{Unit Price} & \textbf{Extended} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> & <%unit%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\hfill
+
+<%notes%>
+
+}
+
+\end{document}
+
diff --git a/templates/Spanish_Letter-sales_order.html b/templates/Spanish_Letter-sales_order.html
new file mode 100755
index 00000000..a3cdfc76
--- /dev/null
+++ b/templates/Spanish_Letter-sales_order.html
@@ -0,0 +1,153 @@
+<head>
+ <title>Presupuesto de Instalaciones Industriales San José</title>
+</head>
+
+<body bgcolor="ffffff">
+ <!-- Cabecera -->
+ <table width="100%">
+ <tr valign=bottom>
+ <td width="10">&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr>
+ <th colspan="4"> </th>
+ <th align="left">
+ <h4>P R E S U P U E S T O</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td colspan="5"> </td>
+ </tr>
+
+ <tr>
+ <td colspan="4"> </td>
+ <td align="left"><%name%></td>
+ </tr>
+
+ <tr>
+ <td>Número</td>
+ <td>Fecha</td>
+ <td>Cód. Cliente</td>
+ <td width="10%"> </td>
+ <td><%address1%></td>
+ </tr>
+ <tr>
+ <td><b><%ordnumber%></b></td>
+ <td><b><%orddate%></b></td>
+ <td><b><%customer_id%></b></td>
+ <td> </td>
+ <td><%addr2%></td>
+ </tr>
+ <tr>
+ <td colspan="4">
+ <td><%city%> <%state%> <%zipcode%></td>
+ </tr>
+ <tr>
+ <td colspan="4">
+ <td><%addr4%></td>
+ </tr>
+ </table>
+ </table>
+
+ <!-- Cuerpo -->
+ <table width=100% cellspacing=0 cellpadding=0>
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <!-- <th align=left><font color=ffffff>Número</th> -->
+ <!-- <th><font color=ffffff>Cant.</th> -->
+ <th align="left"><font color="ffffff">Cant.</th>
+ <th align="left"><font color="ffffff">Descripción</th>
+ <th align="left"><font color="ffffff">Precio</th>
+ <!-- <th align="left"><font color="ffffff">Dto.</th> -->
+ <th align="left"><font color="ffffff">Importe</th>
+ </tr>
+
+ <tr>
+ <td colspan="4"><hr noshade></td>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+ <!-- <td><%number%></td> -->
+ <!-- <td><%unit%></td> -->
+ <td align="right"><%qty%></td>
+ <td align="left"><%description%></td>
+ <td align="right"><%sellprice%></td>
+ <!-- <td align=right><%discount%></td> -->
+ <td align="right"><%linetotal%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan="4"><hr noshade></td>
+ </tr>
+ </table>
+
+ <!-- Subtotales, impuestos y totales -->
+ <table width="100%">
+ <tr>
+<%if taxincluded%>
+ <th align=right>Total</th>
+ <td align=right><%ordtotal%></td>
+<%end taxincluded%>
+<%if not taxincluded%>
+ <th align="right">Base imponible</th>
+ <td align="right"><%subtotal%> &euro;</td>
+<%end taxincluded%>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th align="right">IVA (<%taxrate%>%) sobre <%taxbase%>:</th>
+ <td align="right"><%tax%> &euro;</td>
+ </tr>
+<%end tax%>
+
+<%if paid%>
+ <tr>
+ <th align="right">Pagado:</th>
+ <td align="right"><%paid%> &euro;</td>
+ </tr>
+<%end paid%>
+
+ <tr>
+ <td>&nbsp;</td>
+ <td><hr noshade></td>
+ </tr>
+
+ <tr>
+ <th align="right">Total:</th>
+ <th align="right"><%ordtotal%> &euro;</th>
+ </tr>
+
+ <tr>
+ <td colspan="4">&nbsp;</td>
+ </tr>
+
+ </table>
+
+
+ <!-- Pie -->
+ <table width="100%">
+ <tr valign=top>
+<%if notes%>
+ <td>Notas</td>
+ <td><%notes%></td>
+<%end notes%>
+ </tr>
+
+<%if taxincluded%>
+ <tr>
+ <th colspan="2" align="left"><font size=-2>Los precios incluyen impuestos.</th>
+ </tr>
+<%end taxincluded%>
+
+ </table>
+
+
+</body>
+</html>
+
diff --git a/templates/Spanish_Letter-sales_order.tex b/templates/Spanish_Letter-sales_order.tex
new file mode 100755
index 00000000..35c9a1cb
--- /dev/null
+++ b/templates/Spanish_Letter-sales_order.tex
@@ -0,0 +1,111 @@
+\documentclass[letterpaper,oneside]{article}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+%\usepackage{marvosym} % Euro \EUR
+\usepackage{fancyhdr}
+\setlength{\topmargin}{0cm}
+\setlength{\topskip}{0cm}
+\setlength{\headheight}{0cm}
+\setlength{\headsep}{0.5cm}
+\setlength{\textheight}{24.2cm}
+\setlength{\textwidth}{19cm}
+\setlength{\oddsidemargin}{-1.4cm}
+\setlength{\evensidemargin}{-1.4cm}
+\setlength{\footskip}{1cm}
+
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{13.0cm}
+
+\newsavebox{\hdr}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\sbox{\hdr}{
+\begin{minipage}[t]{0.6\linewidth}
+\vspace{2.2cm}
+
+\begin{tabular}[t]{p{1.7cm}p{2.4cm}p{1.7cm}}\\
+\centering{Número} & \centering{Fecha} & C. Cliente\\
+\centering{<%ordnumber%>} & \centering{<%orddate%>} & \centering{<%vendor_id%>}
+\end{tabular}
+\end{minipage}
+
+\begin{minipage}[t]{0.4\linewidth}
+\textbf{P E D I D O}
+\vspace{1cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+\end{minipage}
+
+}
+
+\pagestyle{fancy}
+\renewcommand{\headrulewidth}{0cm}
+\renewcommand{\footrulewidth}{0cm}
+\cfoot{\thepage}
+%\markboth{\usebox{\hdr}}{\usebox{\hdr}}
+%\thispagestyle{empty} %use this with letterhead paper
+
+<%pagebreak 65 27 37%>
+\end{tabular*}
+\newpage
+\usebox{\hdr}
+%\markboth{\usebox{\hdr}}{\usebox{\hdr}}
+\vspace{0.5cm}
+
+\begin{tabular*}{\textwidth}{rp{\descrwidth}rr}
+ \textbf{Cant.} & \textbf{Descripción} & \textbf{Precio} & \textbf{Importe} \\ \hline
+<%end pagebreak%>
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\usebox{\hdr}
+\vspace{0.5cm}
+
+\begin{tabular*}{\textwidth}{rp{\descrwidth}rr}
+ \textbf{Cant.} & \textbf{Descripción} & \textbf{Precio} & \textbf{Importe} \\ \hline
+<%foreach number%>
+ <%qty%> & <%description%> & <%sellprice%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+\parbox{\textwidth}{
+\vspace{12pt}
+<%if notes%>
+ <%notes%>
+<%end if%>
+}
+
+\vfill
+
+\begin{flushright}
+\begin{tabularx}{10cm}{Xr@{}}
+ \textbf{Base imponible} & \textbf{<%subtotal%>} \\
+<%foreach tax%>
+ IVA (<%taxrate%>\%) sobre <%taxbase%> & <%tax%> \\
+<%end tax%>
+ \hline
+ \textbf{Total} & \textbf{<%ordtotal%>} \\
+\end{tabularx}
+\end{flushright}
+
+%\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+\end{document}
+
diff --git a/templates/Spanish_Letter-sales_quotation.html b/templates/Spanish_Letter-sales_quotation.html
new file mode 100755
index 00000000..0abf5fc7
--- /dev/null
+++ b/templates/Spanish_Letter-sales_quotation.html
@@ -0,0 +1,225 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr valign=top>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+<tr><td colspan=3>&nbsp;</td></tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>Q U O T A T I O N</h4>
+ </th>
+ </tr>
+
+ </table>
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td>
+ <table width=100%>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+
+ <br>
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr><td>&nbsp;</td></tr>
+
+ <tr>
+ <td colspan=2>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Number</th>
+ <th width=17% align=left>Date</th>
+ <th width=17% align=left>Valid until</th>
+ <th width=17% align=left nowrap>Contact</th>
+ <th width=17% align=left nowrap>Shipping Point</th>
+ <th width=15% align=left nowrap>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%quonumber%></td>
+ <td><%quodate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>No.</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qt'y</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Price</th>
+ <th><font color=ffffff>Disc %</th>
+ <th><font color=ffffff>Amount</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%></td>
+
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discountrate%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=8><hr noshade></td>
+ </tr>
+
+ <tr>
+<%if taxincluded%>
+ <th colspan=6 align=right>Total</th>
+ <td colspan=2 align=right><%invtotal%></td>
+<%end taxincluded%>
+
+<%if not taxincluded%>
+ <th colspan=6 align=right>Subtotal</th>
+ <td colspan=2 align=right><%subtotal%></td>
+<%end taxincluded%>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=6 align=right><%taxdescription%> on <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+<%end tax%>
+
+ <tr>
+ <td colspan=4>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=4>&nbsp;
+<%if terms%>
+ Terms Net <b><%terms%></b> days
+<%end terms%>
+ </td>
+ <th colspan=2 align=right>Total</th>
+ <th colspan=2 align=right><%quototal%></th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>Notes</td>
+ <td><%notes%></td>
+<%end notes%>
+ <td align=right>
+ All prices in <b><%currency%></b> Funds
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=60%><font size=-3>
+ Special order items are subject to a 10% cancellation fee.
+ </font>
+ </td>
+ <td width=40%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Spanish_Letter-sales_quotation.tex b/templates/Spanish_Letter-sales_quotation.tex
new file mode 100755
index 00000000..25792c6b
--- /dev/null
+++ b/templates/Spanish_Letter-sales_quotation.tex
@@ -0,0 +1,157 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 48%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%quonumber%>}{<%company%>\hfill <%quonumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+ & carried forward from <%lastpage%> & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.45\textwidth}{
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%contact%>
+
+\vspace{0.2cm}
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+
+\vspace{1cm}
+
+\textbf{Q U O T A T I O N}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Quotation \#} & \textbf{Date} & \textbf{Valid until} & \textbf{Contact} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5ex]
+ \hline
+ <%quonumber%> & <%quodate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%discountrate%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ Subtotal & <%subtotal%> \\
+<%foreach tax%>
+ <%taxdescription%> on <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ Total & <%quototal%>\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ All prices in \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%notes%>
+
+}
+
+\vfill
+
+\end{document}
+
+
diff --git a/templates/Spanish_Letter-statement.html b/templates/Spanish_Letter-statement.html
new file mode 100755
index 00000000..4f384151
--- /dev/null
+++ b/templates/Spanish_Letter-statement.html
@@ -0,0 +1,125 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+ <tr>
+ <th colspan=3><h4>S T A T E M E N T</h4></th>
+ </tr>
+ <tr>
+ <td colspan=3 align=right><%statementdate%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+<br><%address2%>
+<%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+<%country%>
+<%end country%>
+ <br>
+<%if customerphone%>
+ <br>Tel: <%customerphone%>
+<%end customerphone%>
+<%if customerfax%>
+ <br>Fax: <%customerfax%>
+<%end customerfax%>
+<%if email%>
+ <br><%email%>
+<%end email%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr height=10></tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr>
+ <th align=left>Invoice #</th>
+ <th width=15%>Date</th>
+ <th width=15%>Due</th>
+ <th width=10%>Current</th>
+ <th width=10%>30</th>
+ <th width=10%>60</th>
+ <th width=10%>90+</th>
+ </tr>
+<%foreach invnumber%>
+ <tr>
+ <td><%invnumber%></td>
+ <td><%invdate%></td>
+ <td><%duedate%></td>
+ <td align=right><%c0%></td>
+ <td align=right><%c30%></td>
+ <td align=right><%c60%></td>
+ <td align=right><%c90%></td>
+ </tr>
+<%end invnumber%>
+ <tr>
+ <td colspan=7><hr size=1></td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <th align=right><%c0total%></td>
+ <th align=right><%c30total%></td>
+ <th align=right><%c60total%></td>
+ <th align=right><%c90total%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr height=10></tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td align=right>
+ <table width=50%>
+ <tr>
+ <th>Total Outstanding</th>
+ <th align=right><%total%></th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td><hr noshade></td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>Please make check payable to <b><%company%></b>.
+ </td>
+ </tr>
+ <tr height=20></tr>
+</table>
+
diff --git a/templates/Spanish_Letter-statement.tex b/templates/Spanish_Letter-statement.tex
new file mode 100755
index 00000000..fdc7339f
--- /dev/null
+++ b/templates/Spanish_Letter-statement.tex
@@ -0,0 +1,111 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rrr@{}}
+ Tel & <%tel%>\\
+ Fax & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%statementdate%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{1.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{10.5cm}{
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+}
+\parbox[t]{7.5cm}{
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{S T A T E M E N T} \hfill \textbf{<%statementdate%>}
+
+\vspace{2cm}
+
+\begin{tabular*}{\textwidth}{@{}l@{\extracolsep\fill}ccrrrr@{}}
+ \textbf{Invoice \#} & \textbf{Date} & \textbf{Due} &
+ \textbf{Current} & \textbf{30} & \textbf{60} & \textbf{90+} \\
+<%foreach invnumber%>
+ <%invnumber%> & <%invdate%> & <%duedate%> &
+ <%c0%> & <%c30%> & <%c60%> & <%c90%> \\
+<%end invnumber%>
+\textbf{Subtotal} & & & <%c0total%> & <%c30total%> & <%c60total%> & <%c90total%>
+\end{tabular*}
+\rule{\textwidth}{1pt}
+
+\vspace{0.5cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Total outstanding} & <%total%>
+\end{tabularx}
+
+\vfill
+
+Please make check payable to <%company%>
+
+\end{document}
+
diff --git a/templates/Spanish_Letter-timecard.html b/templates/Spanish_Letter-timecard.html
new file mode 100755
index 00000000..361b8254
--- /dev/null
+++ b/templates/Spanish_Letter-timecard.html
@@ -0,0 +1,146 @@
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=sql-ledger.png border=0 width=84 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>T I M E &nbsp;&nbsp; C A R D</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=left>Employee</th>
+ <td><%employee%></td>
+ </tr>
+ <tr>
+ <th align=left>ID</th>
+ <td><%employee_id%></td>
+ </tr>
+ </table>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Card ID</th>
+ <td><%id%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Date Worked</th>
+ <td><%transdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Time In</th>
+ <td><%checkedin%></td>
+ </tr>
+ <tr>
+ <th align=left>Time Out</th>
+ <td><%checkedout%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Hours Worked</th>
+ <td><%qty%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=bottom>
+ <td>
+ <table>
+ <tr valign=top>
+ <th align=left>Project/Job #</th>
+ <td><%projectnumber%></td>
+ </tr>
+ <tr>
+ <th align=left>Description</th>
+ <td><%projectdescription%></td>
+ </tr>
+ <tr valign=top>
+ <th align=left>Labor/Service Code</th>
+ <td><%partnumber%></td>
+ </tr>
+ <tr>
+ <th align=left>Description</th>
+ <td><%description%></td>
+ </tr>
+ </table>
+ </td>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Unit Rate</th>
+ <td><%sellprice%></td>
+ </tr>
+ <tr>
+ <th align=right>Total</th>
+ <td><%total%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+<%if notes%>
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%notes%>
+ </td>
+ </tr>
+<%end notes%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Spanish_Letter-timecard.tex b/templates/Spanish_Letter-timecard.tex
new file mode 100755
index 00000000..49a30c54
--- /dev/null
+++ b/templates/Spanish_Letter-timecard.tex
@@ -0,0 +1,71 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-1cm,left=2cm,right=1cm]{geometry}
+\usepackage{graphicx}
+\setlength{\parindent}{0pt}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Tel: & <%tel%>\\
+ Fax: & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+\centerline{\textbf{T I M E}\hspace{0.5cm}\textbf{C A R D}}
+
+\vspace*{0.5cm}
+
+\begin{tabular}[t]{ll}
+ \textbf{Employee} & <%employee%> \\
+ \textbf{ID} & <%employee_id%> \\
+\end{tabular}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Card ID} & <%id%> \\
+ \textbf{Date Worked} & <%transdate%> \\
+ \textbf{Time In} & <%checkedin%> \\
+ \textbf{Time Out} & <%checkedout%> \\
+ \textbf{Hours Worked} & <%qty%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular}[b]{ll}
+ \textbf{Project/Job \#} & <%projectnumber%> \\
+ \textbf{Description} & <%projectdescription%> \\
+ \textbf{Labor/Service Code} & <%partnumber%> \\
+ \textbf{Description} & <%description%> \\
+\end{tabular}
+\hfill
+\begin{tabular}[b]{lr}
+ \textbf{Unit Rate} & <%sellprice%> \\
+ \textbf{Total} & <%total%> \\
+\end{tabular}
+
+\vspace{0.3cm}
+
+<%notes%>
+
+\end{document}
+
+
diff --git a/templates/Spanish_Letter-work_order.html b/templates/Spanish_Letter-work_order.html
new file mode 100755
index 00000000..88d212af
--- /dev/null
+++ b/templates/Spanish_Letter-work_order.html
@@ -0,0 +1,174 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=bottom>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>W O R K &nbsp;&nbsp; O R D E R</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>To</th>
+ <th align=left width=50%><font color=ffffff>Ship To</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%>
+ <br><%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%>
+ <br><%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ <br>
+ <%if shiptocontact%>
+ <br><%shiptocontact%>
+ <%end shiptocontact%>
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+ <%if shiptoemail%>
+ <br><%shiptoemail%>
+ <%end shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Order Number</th>
+ <th width=17% align=left>Order Date</th>
+ <th width=17% align=left>Required by</th>
+ <th width=17% align=left nowrap>Salesperson</th>
+ <th width=17% align=left nowrap>Shipping Point</th>
+ <th width=15% align=left nowrap>Ship Via</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%></td>
+ <td><%orddate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>No.</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qt'y</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Serial No.</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%>.</td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td><%serialnumber%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <td colspan=6><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <%if notes%>
+ <td><%notes%></td>
+ <%end notes%>
+ </tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Spanish_Letter-work_order.tex b/templates/Spanish_Letter-work_order.tex
new file mode 100755
index 00000000..9b2f6f95
--- /dev/null
+++ b/templates/Spanish_Letter-work_order.tex
@@ -0,0 +1,177 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}rlXrll@{}}
+ \textbf{No.} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ & \textbf{Serial Number} \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.45\textwidth}{
+\textbf{To}
+\vspace{0.7cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\parbox[t]{.45\textwidth}{
+\textbf{Ship To}
+\vspace{0.7cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{W O R K} \parbox{0.3cm}{\hfill} \textbf{O R D E R}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Order Date} & \textbf{Required by} & \textbf{Salesperson} & \textbf{Shipping Point} & \textbf{Ship Via} \\ [0.5em]
+ \hline
+ <%ordnumber%> & <%orddate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrll@{}}
+ \textbf{No.} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ & \textbf{Serial Number} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%serialnumber%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+\vfill
+
+\vspace{1cm}
+
+\rule{\textwidth}{0.5pt}
+
+\end{document}
+
+
+
+
+
+
diff --git a/templates/Swedish-ap_transaction.html b/templates/Swedish-ap_transaction.html
new file mode 100755
index 00000000..8a1c9554
--- /dev/null
+++ b/templates/Swedish-ap_transaction.html
@@ -0,0 +1,229 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>A P - T R A N S A K T I O N</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Faktura #</th>
+ <td><%invnumber%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Datum</th>
+ <td><%invdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Från</th>
+ <td><%duedate%></td>
+ </tr>
+ <tr>
+ <th align=left>Order #</th>
+ <td><%ordnumber%>&nbsp;</td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Arbetstagare</th>
+ <td><%employee%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=50%>
+ <table>
+ <%foreach account%>
+ <tr valign=top>
+ <td><%accno%></td>
+ <td><%account%></td>
+ <td align=right><%amount%></td>
+ <td><%projectnumber%></td>
+ </tr>
+ <%end account%>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=2 align=right>Totalt</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Totalt ink moms</th>
+ <td align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=2 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Totalt</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ </table>
+ </td>
+ <td width=50%>
+ <%notes%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <tr>
+ <td>&nbsp;</td>
+
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%text_amount%> ***** <%decimal%>/100 <%currency%>
+ </td>
+ </tr>
+
+ <%if paid%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <tr>
+ <th>Utbetalningar</th>
+ </tr>
+
+ <tr>
+ <td>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=left>Datum</th>
+ <th align=left>Konto</th>
+ <th align=left>Källa</th>
+ <th align=left>Not</th>
+ <th align=left>Värde</th>
+ </tr>
+ <%end paid%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td><%paymentmemo%></td>
+ <td><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid%>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <%end paid%>
+
+ <tr height=10></tr>
+
+ <%if taxincluded%>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <th colspan=3 align=left><font size=-2>Momsen är inkluderad i priset.</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Swedish-ap_transaction.tex b/templates/Swedish-ap_transaction.tex
new file mode 100755
index 00000000..3516b309
--- /dev/null
+++ b/templates/Swedish-ap_transaction.tex
@@ -0,0 +1,125 @@
+\documentclass[10pt,letterpaper,oneside,onecolumn]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telefon & <%tel%>\\
+ Fax & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+\centerline{\textbf{A P} \hspace{0.3cm} \textbf{T R A N S A K T I O N}}
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+<%end contact%>
+
+\vspace{0.2cm}
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Faktura \#} & <%invnumber%> \\
+ \textbf{Datum} & <%invdate%> \\
+ \textbf{Från} & <%duedate%> \\
+ \textbf{Order \#} & <%ordnumber%> \\
+ \textbf{Anställd} & <%employee%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabularx}{.5\textwidth}[t]{@{}llrl@{}}
+<%foreach amount%>
+ <%accno%> & <%account%> & <%amount%> & <%projectnumber%> \\
+<%end amount%>
+
+ \multicolumn{2}{r}{\textbf{totalt ex moms}} & <%subtotal%> & \\
+<%foreach tax%>
+ \multicolumn{2}{r}{\textbf{<%taxdescription%> @ <%taxrate%> \%}} & <%tax%> & \\
+<%end tax%>
+
+ \multicolumn{2}{r}{\textbf{Totalt}} & <%invtotal%> & \\
+
+\end{tabularx}
+<%notes%>
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100 <%currency%>
+
+\vspace{0.3cm}
+
+<%if paid%>
+\begin{tabular}{@{}llllr@{}}
+ \multicolumn{5}{c}{\textbf{Betalningar}} \\
+ \hline
+ \textbf{Date} & & \textbf{Source} & \textbf{Not} & \textbf{Belopp} \\
+<%end paid%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%paymentmemo%> & <%payment%> \\
+<%end payment%>
+<%if paid%>
+\end{tabular}
+<%end paid%>
+
+\end{document}
+
diff --git a/templates/Swedish-ar_transaction.html b/templates/Swedish-ar_transaction.html
new file mode 100755
index 00000000..b694b7f7
--- /dev/null
+++ b/templates/Swedish-ar_transaction.html
@@ -0,0 +1,237 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>A R - T R A N S A K T I O N</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Faktura #</th>
+ <td><%invnumber%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Datum</th>
+ <td><%invdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Gäller Från</th>
+ <td><%duedate%></td>
+ </tr>
+ <tr>
+ <th align=left>Order #</th>
+ <td><%ordnumber%>&nbsp;</td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Säljare</th>
+ <td><%employee%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=50%>
+ <table>
+ <%foreach account%>
+ <tr valign=top>
+ <td><%accno%></td>
+ <td><%account%></td>
+ <td align=right><%amount%></td>
+ <td><%projectnumber%></td>
+ </tr>
+ <%end account%>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Pris ex moms</th>
+ <td align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=2 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ </table>
+ </td>
+ <td width=50%>
+ <%notes%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <tr>
+ <td>&nbsp;</td>
+
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%text_amount%> ***** <%decimal%>/100 <%currency%>
+ </td>
+ </tr>
+
+ <%if paid%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <tr>
+ <th>Betalningar</th>
+ </tr>
+
+ <tr>
+ <td>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=left>Datum</th>
+ <th align=left>Konto</th>
+ <th align=left>Källa</th>
+ <th align=left>Not</th>
+ <th align=left>Belopp</th>
+ </tr>
+ <%end paid%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td><%paymentmemo%></td>
+ <td><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid%>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <%end paid%>
+
+ <tr height=10></tr>
+
+ <%foreach tax%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <th colspan=9 align=left><font size=-2><%taxdescription%> Registrering <%taxnumber%></th>
+ </tr>
+ <%end tax%>
+
+ <%if taxincluded%>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <th colspan=3 align=left><font size=-2>Momsen är inkluderad i priset.</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Swedish-ar_transaction.tex b/templates/Swedish-ar_transaction.tex
new file mode 100755
index 00000000..119b84e7
--- /dev/null
+++ b/templates/Swedish-ar_transaction.tex
@@ -0,0 +1,131 @@
+\documentclass[10pt,letterpaper,oneside,onecolumn]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telefon & <%tel%>\\
+ Fax & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+\centerline{\textbf{A R} \hspace{0.3cm} \textbf{T R A N S A K T I O N}}
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+<%end contact%>
+
+\vspace{0.2cm}
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Lagernr \#} & <%invnumber%> \\
+ \textbf{Datum} & <%invdate%> \\
+ \textbf{Från} & <%duedate%> \\
+ \textbf{Order \#} & <%ordnumber%> \\
+ \textbf{Utförare} & <%employee%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabularx}{.5\textwidth}[t]{@{}llrl@{}}
+<%foreach amount%>
+ <%accno%> & <%account%> & <%amount%> & <%projectnumber%> \\
+<%end amount%>
+
+ \multicolumn{2}{r}{\textbf{Pris Totalt}} & <%subtotal%> & \\
+<%foreach tax%>
+ \multicolumn{2}{r}{\textbf{<%taxdescription%> @ <%taxrate%> \%}} & <%tax%> & \\
+<%end tax%>
+
+ \multicolumn{2}{r}{\textbf{Total}} & <%invtotal%> & \\
+
+\end{tabularx}
+<%notes%>
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100 <%currency%>
+
+\vspace{0.3cm}
+
+<%if paid%>
+\begin{tabular}{@{}llllr@{}}
+ \multicolumn{5}{c}{\textbf{Betalningar}} \\
+ \hline
+ \textbf{Datum} & & \textbf{Från} & \textbf{Not} & \textbf{Summa} \\
+<%end paid%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%paymentmemo%> & <%payment%> \\
+<%end payment%>
+<%if paid%>
+\end{tabular}
+<%end paid%>
+
+\vspace{0.5cm}
+
+<%foreach tax%>
+\textbf{\small{<%taxdescription%> Registrering <%taxnumber%>}} \\
+<%end tax%>
+
+\end{document}
+
diff --git a/templates/Swedish-balance_sheet.html b/templates/Swedish-balance_sheet.html
new file mode 100755
index 00000000..ac73bd3c
--- /dev/null
+++ b/templates/Swedish-balance_sheet.html
@@ -0,0 +1,100 @@
+
+<body bgcolor=ffffff>
+
+<h2 align=center>
+<%company%>
+<br><%address%>
+
+<p>B A L A N S R Ä K N I N G
+<br><%period%>
+</h2>
+
+<table border=0>
+<tr>
+ <th align=left width=400 colspan=2>AKTIVA<br><hr align=left width=250 size=5 noshade></th>
+ <th><%this_period%></th>
+ <th><%last_period%></th>
+</tr>
+
+<%foreach asset_account%>
+<tr>
+ <td> </td>
+ <td><%asset_account%></td>
+ <td align=right><%asset_this_period%></td>
+ <td align=right><%asset_last_period%></td>
+</tr>
+<%end asset_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>TOTALA AKTIVA</th>
+ <td align=right><%total_assets_this_period%><hr noshade size=2></td>
+ <td align=right><%total_assets_last_period%><hr noshade size=2></td>
+</tr>
+
+<tr>
+ <th align=left colspan=4>PASSIVA<b><hr align=left width=250 size=5 noshade></th>
+</tr>
+
+<%foreach liability_account%>
+<tr>
+ <td></td>
+ <td><%liability_account%></td>
+ <td align=right><%liability_this_period%></td>
+ <td align=right><%liability_last_period%></td>
+</tr>
+<%end liability_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td></td>
+ <th align=left>Total skuld</th>
+ <td align=right><%total_liabilities_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_liabilities_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr>
+ <th align=left colspan=4>EGENKAPITAL<br><hr align=left width=250 size=5 noshade></th>
+</tr>
+
+<%foreach equity_account%>
+<tr>
+ <td></td>
+ <td><%equity_account%></td>
+ <td align=right><%equity_this_period%></td>
+ <td align=right><%equity_last_period%></td>
+</tr>
+<%end equity_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td></td>
+ <th align=left>Total Egenkapital</th>
+ <td align=right><%total_equity_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_equity_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>TOTAL SKULD OCH EGENKAPITAL</th>
+ <td align=right><%total_this_period%><br><hr noshade size=2></td>
+ <td align=right><%total_last_period%><br><hr noshade size=2></td>
+</tr>
+</table>
+
+
+
diff --git a/templates/Swedish-bin_list.html b/templates/Swedish-bin_list.html
new file mode 100755
index 00000000..f92ddcd7
--- /dev/null
+++ b/templates/Swedish-bin_list.html
@@ -0,0 +1,189 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <th align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>P A C K &nbsp;&nbsp; L I S T A</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% cellspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>From</th>
+ <th align=left width=50%><font color=ffffff>Ship To</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+
+ <%if vendorphone%>
+ <br>Tel: <%vendorphone%>
+ <%end vendorphone%>
+
+ <%if vendorfax%>
+ <br>Fax: <%vendorfax%>
+ <%end vendorfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+
+ <br>
+ <%if shiptocontact%>
+ <br>Attn: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Order #</th>
+ <th width=17% align=left nowrap>Datum</th>
+ <th width=17% align=left nowrap>kontakt</th>
+ <%if warehouse%>
+ <th width=17% align=left nowrap>Lager</th>
+ <%end warehouse%>
+ <th width=17% align=left>Destination</th>
+ <th width=15% align=left>Fraktas via</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%>&nbsp;</td>
+
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%orddate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+
+ <%if warehouse%>
+ <td><%warehouse%></td>
+ <%end warehouse%>
+
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Pos</th>
+ <th align=left><font color=ffffff>Nummer</th>
+ <th align=left><font color=ffffff>Beskrivning</th>
+ <th><font color=ffffff>Serienummer</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Antal</th>
+ <th><font color=ffffff>Mottaget</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Box</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%></td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td><%serialnumber%></td>
+ <td><%deliverydate%></td>
+ <td align=right><%qty%></td>
+ <td align=right><%ship%></td>
+ <td><%unit%></td>
+ <td><%bin%></td>
+ </tr>
+ <%end number%>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+</table>
+
diff --git a/templates/Swedish-bin_list.tex b/templates/Swedish-bin_list.tex
new file mode 100755
index 00000000..76d357a6
--- /dev/null
+++ b/templates/Swedish-bin_list.tex
@@ -0,0 +1,147 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telefon & <%tel%>\\
+ Fax & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrll@{}}
+ \textbf{Pos} & \textbf{Nummer} & \textbf{Beskrivning} & \textbf{Serie Nummer} & & \textbf{Antal} & \textbf{Ankommet} & & \textbf{Paket} \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.5\textwidth}{
+\textbf{From}
+\vspace{0.7cm}
+
+<%name%>
+
+<%address1%>
+
+<%if %address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country4%>
+<%end country%>
+}
+\parbox[t]{.4\textwidth}{
+\textbf{Mottagare}
+\vspace{0.7cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%if shiptoaddress2%>
+<%shiptoaddress2%>
+<%end shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%if shiptocountry%>
+<%shiptocountry%>
+<%end shiptocountry%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{P A K E T} \parbox{0.3cm}{\hfill} \textbf{L I S T A}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Datum} & \textbf{Kontakt}
+ <%if warehouse%>
+ & \textbf{Warehouse}
+ <%end warehouse%>
+ & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+
+ <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%orddate%>
+ <%end shippingdate%>
+ & <%employee%>
+ <%if warehouse%>
+ & <%warehouse%>
+ <%end warehouse%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrll@{}}
+ \textbf{Pos} & \textbf{Nummer} & \textbf{Beskrivning} & \textbf{Serienummer} & & \textbf{Antal} & \textbf{Ankommet} & & \textbf{Box} \\
+
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%serialnumber%> &
+ <%deliverydate%> & <%qty%> & <%ship%> & <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabularx}
+
+
+\rule{\textwidth}{2pt}
+
+\end{document}
+
diff --git a/templates/Swedish-check.tex b/templates/Swedish-check.tex
new file mode 100755
index 00000000..e36f6fbf
--- /dev/null
+++ b/templates/Swedish-check.tex
@@ -0,0 +1,81 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.4cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.0cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+
+\fontfamily{cmss}\fontsize{9pt}{9pt}\selectfont
+
+\parbox[t]{12cm}{
+ <%company%>
+
+ <%address%>}
+\hfill
+\parbox[t]{6cm}{\hfill <%source%>}
+
+\vspace*{0.6cm}
+
+<%text_amount%> \dotfill <%decimal%>/100 \makebox[0.5cm]{\hfill}
+
+\vspace{0.5cm}
+
+\hfill <%datepaid%> \makebox[2cm]{\hfill} <%amount%>
+
+\vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{1.8cm}
+
+<%notes%>
+
+\vspace{0.8cm}
+
+<%company%>
+
+\vspace{0.5cm}
+
+<%name%> \hfill <%datepaid%> \hfill <%source%>
+
+\vspace{0.5cm}
+\begin{tabularx}{\textwidth}{lXrr@{}}
+\textbf{Faktura nr.} & \textbf{Faktura datum}
+ & \textbf{Återstående} & \textbf{Betalt} \\
+<%foreach invnumber%>
+<%invnumber%> & <%invdate%> \dotfill
+ & <%due%> & <%paid%> \\
+<%end invnumber%>
+\end{tabularx}
+
+\vfill
+
+\end{document}
+
+
+
diff --git a/templates/Swedish-income_statement.html b/templates/Swedish-income_statement.html
new file mode 100755
index 00000000..46ff0a60
--- /dev/null
+++ b/templates/Swedish-income_statement.html
@@ -0,0 +1,78 @@
+
+<body bgcolor=ffffff>
+
+<h2 align=center>
+<%company%>
+<br><%address%>
+
+<p>D R I F T K O S T N A D
+<br><%period%>
+</h2>
+
+
+<table width=100% border=0>
+<tr>
+ <th width=400 align=left colspan=2><br></th>
+ <th><%this_period%></th>
+ <th><%last_period%></th>
+</tr>
+
+<tr>
+ <th align=left colspan=2>INTÄKTER<br><hr width=300 size=5 align=left noshade></th>
+</tr>
+
+<%foreach income_account%>
+<tr>
+ <td width=4> </td>
+ <td><%income_account%></td>
+ <td align=right><%income_this_period%></td>
+ <td align=right><%income_last_period%></td>
+</tr>
+<%end income_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td> </td>
+ <th align=left>Totala intäkter</th>
+ <td align=right><%total_income_this_period%><hr noshade size=2></td>
+ <td align=right><%total_income_last_period%><hr noshade size=2></td>
+</tr>
+
+<tr>
+ <th align=left colspan=2>UTGIFTER<br><hr width=300 size=5 align=left noshade></th>
+</tr>
+
+<%foreach expense_account%>
+<tr>
+ <td> </td>
+ <td><%expense_account%></td>
+ <td align=right><%expenses_this_period%></td>
+ <td align=right><%expenses_last_period%></td>
+</tr>
+<%end expense_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td> </td>
+ <th align=left>Totala utgifter</th>
+ <td align=right><%total_expenses_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_expenses_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>RESULTAT</th>
+ <td align=right><%total_this_period%><br><hr noshade size=2></td>
+ <td align=right><%total_last_period%><br><hr noshade size=2></td>
+</tr>
+
+</table>
diff --git a/templates/Swedish-invoice.html b/templates/Swedish-invoice.html
new file mode 100755
index 00000000..fa990662
--- /dev/null
+++ b/templates/Swedish-invoice.html
@@ -0,0 +1,226 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr>
+ <td width=10>
+ </td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th colspan=2>
+ <h4 align=center>F A K T U R A</h4>
+ </th>
+ </tr>
+
+ </table>
+
+<!-- other variables you can use include
+tel, fax, signature, username, businessnumber -->
+
+ <table width=100% cellspacing=0 cellpadding=0>
+
+ <tr>
+ <td align=right>
+ <table>
+
+ <tr>
+ <th align=right>Fakturanr.:</th><td></td><td><%invnumber%></td></tr>
+ </tr>
+
+ <tr>
+ <th align=right>Fakturadatum:</th><td width=10> </td><td><%invdate%></td>
+ </tr>
+ <tr>
+ <td>
+ </td>
+ </tr>
+ </td>
+ </table>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Fakturaadress:</th>
+ <%if shiptoname%>
+ <th align=left><font color=ffffff>Leveringsadress:</th>
+ <%end shiptoname%>
+ </tr>
+
+ <tr>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+<br><%address2%>
+<%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+<%country%>
+<%end country%>
+ </td>
+ <%if shiptoname%>
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+<br><%shiptoaddress2%>
+<%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+<%shiptocountry%>
+<%end shiptocountry%>
+ </td>
+ <%end shiptoname%>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Nummer</th>
+ <th align=left><font color=ffffff>Beskrivning</th>
+ <th><font color=ffffff>Antal</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Pris</th>
+ <th><font color=ffffff>Rabatt</th>
+ <th><font color=ffffff>Sum</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discount%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+<%end number%>
+
+<!--
+you can also use netprice instead of sellprice if you
+don't want to show the discount
+netprice = sellprice - discount
+to show the percentage for a discount use <%discountrate%>
+-->
+
+ <tr>
+ <td colspan=7><hr noshade></td>
+ </tr>
+
+ <tr>
+ <th colspan=5 align=right>Subtotal</th>
+ <td colspan=2 align=right><%subtotal%></td>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=5 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+<%end tax%>
+
+<%if paid%>
+ <tr>
+ <th colspan=5 align=right>Redan betalat</th>
+ <td colspan=2 align=right>- <%paid%></td>
+ </tr>
+<%end paid%>
+
+ <tr>
+ <td colspan=3> </td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=3>Betalningsfrist <b><%terms%></b> dager</td>
+ <th colspan=2 align=right>Att betala</th>
+ <th colspan=2 align=right><%total%></th>
+ </tr>
+
+ <tr>
+ <td>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>Notera</td>
+ <td><pre><%notes%></pre></td>
+<%end notes%>
+ <td align=right>
+ Alla priser i <b><%currency%></b>
+ <br><%shippingpoint%>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td> </td></tr>
+
+<tr>
+ <th colspan=7>
+<!-- 20030814/Marius Kjeldahl: Commented out check statement as checks
+are dead in Norway AFAIK -->
+
+<!-- Utsted vennligst sjekk til <%company%> på norsk bank -->
+ <br>
+ </th>
+</tr>
+
+
+<tr><td> </td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><font size=-3>
+ Betalning innan <%terms%> dagar från fakturadatum.
+ Efterskuldräntor beräknas med 1% per påbörjad månad.
+
+ </font>
+ </td>
+
+ </tr>
+ </table>
+ </td>
+</tr>
+
+<%foreach tax%>
+<tr>
+ <th colspan=7 align=left><font size=-2><%taxdescription%> Organisasjonsnr.: <%taxnumber%></th>
+</tr>
+<%end tax%>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Swedish-invoice.tex b/templates/Swedish-invoice.tex
new file mode 100755
index 00000000..f4ce6d8e
--- /dev/null
+++ b/templates/Swedish-invoice.tex
@@ -0,0 +1,237 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telefon & <%tel%>\\
+ Fax & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%invnumber%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+<%pagebreak 65 27 48%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markright{<%company%>\hfill <%invnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Nummer} & \textbf{Beskrivning} & \textbf{Ant.} &
+ \textbf{Enhet} & \textbf{Pris} & \textbf{Rabatt} & \textbf{Sum} \\
+ & carried forward from page <%lastpage%> & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+ \parbox[t]{10.5cm}{
+ \textbf{Til}
+ \vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{0.3cm}
+
+%<%if contact%>
+%Attn: <%contact%>
+%\vspace{0.3cm}
+%<%end contact%>
+\vspace{0.5cm}
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\parbox[t]{7.5cm}{
+\textbf{Leveringsadress}
+\vspace{0.5cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%if shiptoaddress2%>
+<%shiptoaddress2%>
+<%end shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%if shiptocountry%>
+<%shiptocountry%>
+<%end shiptocountry%>
+
+\vspace{0.3cm}
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+Attn: <%shiptocontact%>
+\vspace{0.3cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel.: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{F A K T U R A}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabular}[t]{l@{\hspace{0.3cm}}l}
+ \textbf{Datum} & <%invdate%> \\
+ \textbf{Fakturanr.} & <%invnumber%> \\
+ \textbf{Ordernr.} & <%ordnumber%> \\
+ \textbf{Anställd} & <%employee%>
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Nummer} & \textbf{Beskrivning} & \textbf{Ant.} &
+ \textbf{Enhet} & \textbf{Pris} & \textbf{Rabatt} & \textbf{Sum} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%discount%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Pris ex moms} & \textbf{<%subtotal%>} \\
+<%foreach tax%>
+ <%taxdescription%> on <%taxbase%> & <%tax%> \\
+<%end tax%>
+<%if paid%>
+ \textbf{Betalt} & - <%paid%> \\
+<%end paid%>
+ \hline
+ \textbf{Skyldig} & \textbf{<%total%>} \\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ Alle priser i \textbf{<%currency%>} valuta.
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+\vfill
+
+<%if paid%>
+\begin{tabularx}{10cm}{@{}lXlr@{}}
+ \textbf{Inbetalingar} & & & \\
+ \hline
+ \textbf{Dato} & \textbf{Konto} & \textbf{Kilde} & \textbf{Sum} \\
+<%end paid%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%payment%> \\
+<%end payment%>
+<%if paid%>
+\end{tabularx}
+<%end paid%>
+
+\vspace{1cm}
+
+\centerline{\textbf{Tack för köpet!}}
+
+\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+\footnotetext[1]{\tiny
+Betalingen måste ske innan <%terms%> dager från fakturadatum. Vid
+försening påräknas en ränta på 1.5\% per månad,
+från <%duedate%> till dess betalingen är fullständig. Varor som returneras
+belastas med 10\% returkostnad. Returen måste förhandsgodkännas av
+<%company%> innan varorna returneras. Retur måste sändas förbetalt och
+skall vara försäkrat. <%company%> är inte ansvarig för transportkostnader.
+}
+
+\end{document}
diff --git a/templates/Swedish-logo.eps b/templates/Swedish-logo.eps
new file mode 100755
index 00000000..3a22b2ff
--- /dev/null
+++ b/templates/Swedish-logo.eps
@@ -0,0 +1,1334 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: GIMP PostScript file plugin V 1.17 by Peter Kirchgessner
+%%Title: Brazilian_Portuguese-logo.eps
+%%CreationDate: Thu Aug 31 19:25:05 2006
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 2
+%%Pages: 1
+%%BoundingBox: 14 14 415 215
+%%EndComments
+%%BeginProlog
+% Use own dictionary to avoid conflicts
+10 dict begin
+%%EndProlog
+%%Page: 1 1
+% Translate for offset
+14.173228346456694 14.173228346456694 translate
+% Translate to begin of first scanline
+0 199.99842519685043 translate
+399.99685039370081 -199.99842519685043 scale
+% Image geometry
+400 200 8
+% Transformation matrix
+[ 400 0 0 200 0 0 ]
+% Strings to hold RGB-samples per scanline
+/rstr 400 string def
+/gstr 400 string def
+/bstr 400 string def
+{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop}
+true 3
+%%BeginData: 80402 ASCII Bytes
+colorimage
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+fDblg6K\=Q"WB-W4?Pdo4p6+l]&ih]rrrDpij);hp&GL',"Q[#Lmt]mi:-UBo)Ajlp>C')q#Ca-
+0OT-[R^UZ0q#:3k!rftBr;[*-4`Pt>]\`;[p&>'%-iO)I,T-[I!!OC1jn&BKnc&dlp#<8P%e]l2
+"!U9TI#+8tb2Ddcrq6:-g3RO66TZkO/89R1ak>G'lMCDUrVc`p_uG5~>
+fDc3-AgAK<(`*r''GKsK"r/C?3]oMfm61YtOLjQNo`#*op#<8P%e]l2"!U9TI#+8tb2Ddcrpp'l
+rq>8m&GZ;5#V]Y2L75R!lM1AVrrW28$N0r1#!HsURCqDKrq69l[jV.T![JWbkPtc,R-!r:rpg!l
+rq59V:(Hst$j.\EE.!J2ZHD+pqYp0f(YX1N<'rc'0emR!XjZ4ijR;sBr;HTnrknbd~>
+fDc6;J3>hE.46Gg,U"<#*sNl<2EEr_4mbE9G`]Muqt0mlrq59V:(Hst$j.\EE.!J2ZHD+pqYp'c
+"TJ,QFV+?K$4&=nG_VZqdd$W,r;Qit^^C#?#R3G3J!mt+o`"O`!OjHU!!4D`!pBUf*LPs[qu6-c
+"oe2SZ;(o'!"8rR88rs4S$L2pnG<.WrtjC8CK*Y`2)R41LpG[tlg+-<qu$Ekrr0h8J,~>
+gA_6CM^RKa#SJU[Cl4ICR$dH4"J2pKnc&.[#laS]ca8*s2'Dku%L*7S1/_:`E/L-e^<lNJn,*ps
+lGB9$.1d!s#n@h2C5&"Yb2DgerqcX(q78g7,slHqMPJ)Jp&4[cs*k'%9)\er&Pd:_DG`D6!pTal
+;j3B4I=8["q>L$e)ZKKoca5M5$jR7P',DcW=EAnFP+oA,h<ak4r;@'%mG5jnSV:rb4tRZYo)K.6
+.77QqVp"]-r;HW:s*t~>
+gA_WSXCb's7mAmd0J>%2/aY(p3(dS&NKf`rR.?XJT!Hl9rq$..rqGU%[!bb.+:/;Z%M^0O>@_Mp
+OJ9/'f_#".r"](qb,Jl)'b_,j)_+BrKpT$di:6^DqYq$#\j.Db6>_(,UVl'`rV6EmU]HuXrW!3>
+=ES\+<]_9&l2V,jVQ@/!U<E9+rV$70rqGU%Zq25S%MBBi(a_LMF+&e+U:&/"m.U>Sr=/\qk1@he
+W0`?`B2UiFr@A%'1d4D,8ded6G`JT6f_#";rVjq=J,~>
+gA_WV`KPh&H>[%h;Gg7d:@1a]<FBcqNg,isR.?XJT!Hl9rq$..rqGU%[!bb.+:etm&f`Dk@V^"7
+Q)D4<h=UO3r"](rd'%+>(`!f$,WA_DKpT$di:6^DqYq$#\j.Db6>_(,UVl'`rV6Em^B(K0rW!3B
+@!Hj=>!*c+l2V,lZbFJn^"N,TrV$70rqGU%Zreh$',D<")CRjQF+&e+U:&/"m.U>Sr=/\tmGcjE
+_7$G9OF(D5rCmAj>ASW`J.%6uT<>oSiV!$ErVjq=J,~>
+h#@HEIh:?7#Tc9FPJ##]c-H(0"4GulqXORjrqc-Bc+C!IjT#8`m/R?)T"N_Cq#1!f%/obL[[`MH
+U:8M5p\spee,TVcf]W#.pAY9pqXED]p&G=-'G_N()]Tmq*WQH&!!iZW>`-Jlq#(-9s*t~>
+h#@HJUfI@c"%YgF4l\X1;/(]X^WF^EcM,WedbO6dnc'C(qXEFf];hGR.Olks.P*2,2*!ie7S*/D
+!)3/["\;$E2D?]].L7OVFe67umJ-YTrs\ksfX@<5QD1k8kkG)Nrt@jG!<<*#(b-sc0JtaF0Ie1Z
+$3BMo#oYim84nopkP+uLrtbV1nDI&"0eP",.Ochs/1rtM85<,d>l%b,:\RH`84>d,rB(0F5Xe6:
+8dJ+(MQ5+sq#(-9s*t~>
+h#@HM^PMi="+56/C#`k4FbQ3b_9'pGcM,WedbO6dnc&ppqXEFf];hGq8cD6f8P;iZ>@VDgG^Y)7
+J,k2sJ.d?ZFD5#[9h@lH8ksi,]\)WHrV6C$rUSULS<B24\'X@5rqHF+H9;6/!!+Q@7nZfd?<U9"
+2^8k8m/RGEAorHOWS$D.rq??urqc-BFC%sC91f+R$;!ld>@_PnIYEZ=qi1Z0pOE?oG].?qBEN!f
+G^]78#_J8?^teSWr;Ot@J,~>
+h>[MB'\!*i,YiZYa62mZnF?&JncSOYqu6'a#Q=GfkM4KR)UeZi*-S.$mJQYW$N0GOcGmrTj73!F
+p\t6"ec5mb/8hc?meueX"TA*n,R_Hh#7aOmh":IArmCar~>
+h>[M`=SbYi8,u0:7LELMS$gZ-mdKZ8nc&(]o_87^n,EXkq!mP&dV;DR3!VH*4[;>&7nDf8%S9,W
+5<Lqc3BBc^Us&0'p&>Bsn__X3aOK8?qYp6h!OE+3!##DT-n$]+5!hV'5!1e]0J"C`$j,nu#UVT+
+?\Yl5meueX#Q=FJ>Xpq<3W:uC3BKAh6:FC8lq.=N84WVJ!_5dQmn*g`J?Io(qYgE@s*t~>
+h>[N!MYho*Isl\"H4#P$Zc1S]mdKZ8nc&(]o_87^n,F("q!mP&dY;XJ@:E_XBl7s8H[^J.J.@!Q
+F)5K!@U`kaL8<#[r:U'sr:/[i`lQZinbW7ZrrKG;rW!T71dso2?>FS'EGT5p>#S'T-5?[R!!rZm
+AU&loZI&%<o`#U'pn<@]Bk:d_@:E_XBl7s8H[^J4J-(4LI/A3kI"$S7J-Uh)_rgUfrVk4EJ,~>
+hu<`75k=sc"VrFC5tXgF:/4DF.i/9O!!*]Ur]C="me$ATli.:jr:opKd%Y/9'&!<k"#=J;Ni^b$
+rq-3qrV,jMn+?JTpAY,>f)Q'a;0.S\XNp84o)Asihn"ng;)Ad$!!WNiQK@f9rmUmt~>
+hu<`@GOnE:9Mnkt@V0:fC2.Hn>Z4;[8dSO+F*)Mgme$ATli.Fnr:opKd&28#:.@`E8`E>N8Ou<>
+7TaSXNi^b$rq-3qrV,jMn+?JTpAY,>qu@NQ,q(K/6:XU>84Z3<69dRl1bgU.)%[&F!!j*8F,?6b
+cL1Z%rseb\\s@h_>t[RS7Rp!@b";k3FKjs$qYntDJ,~>
+hu<`GT_![<IscQgH[C/>IKP(MIt-[4!Jlg9S-6.co_SRQrso&+q"3gtWf)=NG^=adJ)l+hIsu`i
+GBS%NIZCMZo)A:]#Q=DemdKfErV$6kHi3pL!AZo0<+U)rrdG<'H$++DB44tC:-L3L%.jN*&m043
+Q`SL#rUTsuptrZOMLp5#G'A1WI"$RgJ-LRo_WgairmUmt~>
+i;Wha&G?)3"X69@G^kI,P*_]1rh'IfS=#7L5SE5[">J!QnGMJL#l<l9^9FDd9H)af#qBJ1L7#-c
+jnSiGs8Drirr@!8!!4`+#i,Ic89UN4bi8<po)B'omao@cYc+.?63tL0"V>7hnG)t4s*t~>
+i;Wi"<VB#m9N5D9G^kI,P*_]1rh'IfS=#CdBN""c"DGs4nGMJL#l<l9^9FDnE)tgf$!(hdL7#-c
+jnSiGs8Drirr@!8!!Y&=.ks.S8GYpg8Ou<=69dRm2)6d5*"E#D!!c&<S@?`%p&=O^$N'8C_mckK
+Sr%2W`(C25NR[ImrRLpu~>
+i;Wi2M"Z?,IsQ9]G^kI,P*_]1rh'IfS=#ItL4SN<"H^d\nGMJL#l<l9^9FE!MLs]8$$^E6L7#-c
+jnSiGs8Drirr@!8!!b/H79+#EI=M0F%tB%UH$44GBOY4I:e*2V!qu["89UN4bi8<po)B$nmao@c
+Yc+.WLr4`HL9'%tq#/bCJ,~>
+iVrn9p&GO<7W!I+P+J\^^;eCEe,@c%d`oeFZDDb'!pTag,b;X/qWIkdrqc0Li7?&`XFWVBirBDi
+9lbcMYfPVcpAO"N!/(1L";kW^EBr@\#!RdOh!Xn6nc'!rqXWt6i7cW"\Y):S!"&cA/3cp6C2SKO
+KDgH,J9#$l1DK9X"TqW;mJ$S2s*t~>
+iVrnZp.>ck@;pOIP+J\^^;eCEe,@c%d`oeFZDE@g9Bo+P>b/RgqWIkdrqc0Li7?&`XH.-lj%9YP
+@WI!bYfPVcpAO"N!/(1L"rLi`F'qF.oh#Wa84H$85Wq.e1Fs:Bq#CU_L:H%,pAFI\$i^"nlfI'Y
+d`8noDWsb":g%1=D00uNJV3oS"bM/FCg^008d.n<bO,'&fDg@~>
+iVrnsp4*U"FE;b_P+J\^^;eCEe,@c$d`oeFZDEhBl$rniS\=([kPkqhqXNh.f#kY,R>QRUJ-pdG
+Ee'I[aP?+TrSmhWKDY]R(h76%G^"W1J.7!WI!U!XDe`ij=A("Cq#CU_L:H%,pAFI\$i^"nlfI'Y
+d`8nsNp2'#I!U'`H[L9mJV3fP!J>skJ-CLtdd?f-fDg@~>
+ir9!spAb^?;KRDLTsM\cguRbgo(;VSp'^Qco'Yc%fZLdo7Ki&X"<E/rh"^"2$i^)#p@.8#cFooT%
+d!`u!`F)pUr;*Wq#(-NrrL.Cqu?puFHE]?JdCT@!=T>3!!P?@^Ztarn,NFe$N9o!q"4":g;nL?m
+f3e)/l6J6KT).cU8P&qZM_'8Za$U.SV:/k!q?6o"'3Y5q#/nGJ,~>
+ir9"HpIYrnA9<<^TsM\cguRbgo(;VSp'^Qco'Yc%fZLduDbTLi"B:&Th"^"2$i^)#p@.8#cFp'#
+;<:CVA93O%`80kVr;P^U!QP?@!!Z;BOKZBc:@Up_8Ou?@6pX!s/dhFT"ZVIUlMUYMs8W'*rVZNe
+o^:kqaHB6c8e"NtATN6PN0Kj,VlR#,r3Qa9Z)jdmNceQ!nO`sYK$s&]rRq4$~>
+ir9"fpOEd$EccelTsM\cguRbgo(;VSp'UKbo'Yc%fZLe&NpD2uI>"ZVpuVM`rquWdnE8TP]r@0H
+ja[YVF,-R0h<t(9ro3qY`ru;?##TK(YJ-renph'sIXHKeF`;))8.,1n"ZVIUlMUYMs8W')rVZNe
+o^:kqaJJ<T%=WPDFaSk$PanJGX08i,Zj3qBXJMJOMM(DK"bEE!mJ-Y5s*t~>
+j8T+/p](g,5&bn2VnUU<m.C)NrVlflrsA]'qY'F@fZ'=>m/R8.I&>WmiVs5`r:ojHg;p9k"R#gj
+/ocWFcKY*%hu<[5qu@!=E/1aQlJS-;lMq#'>>b\&!!G<<]''%TrrrE"p[6mkmf3eaEIa7KZG+E,
+f%Ss<iqqdCini>8aLn[:8e(:j"Uoe:nG<.=s*t~>
+j8T+Tpdu&i?>t:RVnUU<m.C)NrVlflrsA]'qY'F@fZ'_$m7ILZI&>WmiVs5`r:ojHg;pF@9^#(R
+=E0(pcKY*%hu<[5qu@!=E/1aQlJSa>m7IOQ7nd5e#5\B'3Jb90rTF1arquNYhOa1.%:=+*PGGLu
+aO&Mlh;I;ij9ai&f[7dQY*X*(nO`s^Rc*]3rnII'~>
+j8T+opj`m)FDuVhVnUU<m.C)NrVlflrsA]'qY'F@fZ'tOm=>4a!iF]HiVs5`r:ojHg;pR`J`qUh
+G&`89cKY*%hu<[5qu@!=E/1aQlJT4*mXPLjI=$!B;?m!u"?D:LkPaTD"oeGombY5;J.6R>J<Qe7
+^<"[Pg>1]HqrA(ChUp5s]WRfaK(4?pKWsD(qYo7LJ,~>
+jSo4Pp]([*;KIM`][l<<qYgE_rs/Q#p?^YWLDTCZ"<2`cgA'P)#QFYqmblB\-0YC6>'usdm/$_=
+rrBP*!!kT/R`b'rq!(]B!!Ea>Fbj)q!!G98[cRGJrr`5pkZ@6R$q,K5^XhE/n+?>Kq>0sc$iBep
+o^D##d_Vqg$1Ruu1qr/HrS7F'~>
+jSo4lpdtofA93Er][l<<qYgE_rs/Q#p?^YWRTJrM"B'WEgA'P)#QFYqmblBh?g1/eApg5pm/$_=
+rrBP*!!kT/R`b'rq!*=p8d%n&Fbj)q!!G98[cRGJrr`5pk_&@s$t+IQ^XhE/n+?>Kq>0sc$iBep
+o^D##d_W#4:[q$[C;oB0rS7F'~>
+jSo5+pj`a%E-$])][l<<qYgE_rs/Q#p?^YWVhOSis*OmFgA'P)#QFYqmblBpMWoWqE.";%m/$_=
+rrBP*!!kT/R`b'rq!+O=J-::;Fbj)q!!G98[cRGJrr`5pkbIWt%!?rf^XhE/n+?>Kq>0sc$iBep
+o^D##d_W)NK(4?oP02t]rS7F'~>
+jo5A)"Si$(!`*lnWQXDqqu5m\"o\5`gq6>M!!F6gVV:h"rrrAsnDM>llMq(oE/M0dqVD/O@/Bp0
+:4TD#q#CBc$g[ir:N_`*_YX<98;=S8r8[eZrqbC[nGie`KsKM+qYgE`rs8W%q=En-bcF/$!!Emu
+hXUO"s*t~>
+jo5A8:&%<d@WR@)bN8Bnrp'LerV5d8^NT*="B'WEgA'G&"o\8di5gH78d.n-MR_aDh>[I_qZ$ms
+J?.K#s8Vailq.CiFcWoHqZ$aiL:67Bj8T5\qVbBC8dAgZZJ>*KrVl?e#labtoBP/UY]'&("B;;U
+nbh5CJ,~>
+jo5ACK(sj%EH?r8bN8Bnrp'LerV5d8_Ns\As*OmFgA'G&"o\8di5qMTJ-CC@MR_aDh>[I_qZ$ms
+J?.K#s8VhIm!o4YFcWoHqZ$aiL:67Bj8T5\qW*D$J-U7OZJ>*KrVl?e#labtoBP/U[#jg."GO5>
+nbh5CJ,~>
+k5PJR,kq?E0QDiId-UW.k5PV`pZg:]#k@ru)gnO:pt>ZLrV5d'lMq))FI()<rn[SS./NuL;i%sG
+r;Zf#li724E/(OJn,!(f@Z%e]rSdbWq.K3t"@e6Zkl'iI#QF\snD_`I&Fof)!cuoZqYoCPJ,~>
+k5PJUAGAb%=`K1rd-UW.k5PV`pZg:t:@_![;LG@qpt>ZLrV5d,lUh=XFI()<rn[SS./NuL;i%sG
+r;Zf:lq.F\E/(OJn,!(f@Z%e]rSdbWq2t2>"Cd5!kl'iI#QF\snD_`^;t<Na99@]kqYoCPJ,~>
+k5PJXP5'P4G&`8:d-UW.k5PV`pZg;0K(=HlHig2!pt>ZLrV5d/l[T.cFI()<rn[SS./NuL;i%sG
+r;ZfKm!o7bE/(OJn,!(f@Z%e]rSdbWq60=="EoX5kl'iI#QF\snD_`mK^jQqV:Fu0rnma+~>
+k5PF"p](L*BRZZ!mJGrD"oeDjiMmgf!!F0eVV:gsrrN&8lMq&+H(`XZh#@?rqZ$k"N5+ZVs8Q?j
+!!Q)BSBL?equ?m=Eg"B.ro*kXrl=O/"@e9\kl'`F"o\8dhQ\Bs!!HlYlM:G;s*t~>
+k5PFLpdt`bCOVu$mJGrD"oeDjiO)k\8d&%>VV:gsrrN&GlUh:XH(`XZh#@?rqZ$k"N5+ZVs8S#D
+8d/[LSBL?equ?m=Eg"B.ro*kXrmgO2"Cd8#kl'`F"o\8dhR[+b8d'molM:G;s*t~>
+k5PFjpj`QtDLS;'mJGrD"oeDjiP(->JH'uuVV:gsrrN&Rl[T+bH(`XZh#@?rqZ$k"N5+ZVs8T7g
+J-Bt=SBL?equ?m=Eg"B.ro*kXro!<s"Eo[7kl'`F"o\8dhS>'>J-;FglM:G;s*t~>
+kPkS3"S_s#20=tpk5+$9"TJ2]^*iOQ":fgUf_F%t!35tt!'9TL";cE\f_=2$!$D(<#<RmZlM^bS%
+.+$!"`9"#i;'/G!!Q&BT[NK3i;WiT(@hG.7Z+hArT=+_rV5[#2XpbM@a"$3ro*m-~>
+kPkS@:&%<a>',n@k5+$9"TJ2]`a\R4"AX?@f_F%t!5e\,!*o"c"AsNAf_=2$!$D(<#<RmZlM^bV
+;XI'\9Q#Tki;'/G!!Q&BT[NK3i;WiT=n5/f@Z%e]rT=+_rV5[&D"1+#K$3ESro*m-~>
+kPkSIK(sj"F``b[k5+$9"TJ2]bDl.E"Fb`pf_F%t!7^st!-I^\"FPQlf_=2$!$D(<#<RmZlM^bY
+L@'KqIrC(Ji;'/G!!Q&BT[NK3i;WiTMXl9#G)EoqrT=+_rV5[)P4=&*R`jskro*m-~>
+kPkNYpAbA&J#Lukrnm_Yrql000(f2I%==l%p=B6DL]%2RB-$LB":TXQf_=2$!)ECk"qZO!jo#.R
+qu?^*nc/k8FHjf4nKe&5"X%c?[Ggu>rrN*rnc/e^MS&*Njo5J_qsi8tnGiZ+b3A`\s*t~>
+kPkO6pIYU&J#Lukrnm_Yrql04BD"k":4&bfp=B6DWr5NjCfU!t"AX<>f_=2$!)ECk"qZO!jo#.m
+r(6rank'*bFHjf4nKe&5"X%c?[Ggu>rrN+Nnk'$oMS&*Njo5J_qsi<VnO`n<b3A`\s*t~>
+kPkO\pOEEdJ#Lukrnm_Yrql06OS+,,IX@jAp=B6D_u5)dDgh/+"Fb]nf_=2$!)ECk"qZO!jo#/+
+r."crnpgpjFHjf4nKe&5"X%c?[Ggu>rrN+snpgjdMS&*Njo5J_qsi@(nUL_1b3A`\s*t~>
+kl1Y/pAb@.EK%Qnr7q;Sr:88hp&G4)HD/m_f)G_`rW!!*Ea8)6"*C6ep>#ZJV"t&p5cE<-r_37j
+!=D?f!!P$%U"&U2r;[$/@XF`ln,;,C!.j\@"@e9\kl'QA"9%lB.e3QB!e8G\qVqO*~>
+kl1Y=pIYTbEK%Qnr7q;Sr:8EPp.>H_HD/m_f)G`7r^m5cEcUYA"*^Hhp>#ZJV"t&p5cE<-rdar>
+!DQtm8d/@DU"&U2r;[$/@XF`ln,;,C!2]6Y"Cd8#kl'QA"9%lFAb&Fr99IHbqVqO*~>
+kl1YGpOEEpEK%Qnr7q;Sr:8L&p4*9pHD/m_f)G`WrdY'!Ee<e2"+$Zkp>#ZJV"t&p5cE<-rhfXE
+!If+\J-C.CU"&U2r;[$/@XF`ln,;,C!5J)T"Eo[7kl'QA"9%lHOR[i'T?QZuir=N~>
+kl1WbpAb@BG+-\GrnIGTrUeS^pAb=*H(`[\f)G_;rW!$:G*F0?!!?8jch#rl!V\&>!!H?;jlQ^E
+!!+i]nc/eTJ?-URr;[$*<d'Y=jS@X3!28r`"@e9\kl'N@"9.u;'Cl,+%[ti7r8[g-~>
+kl1X=pIYThG+-\GrnIGTrUe`LpIYQ`H(`[\f)G_rr^m8iG*H;&8crmuch#rl!V\&>!!H?;jm,V=
+8c`(1nk'$jJ?-URr;[$*<d'Y=jS@X3!5.kp"Cd8#kl'N@"9.uC<q8ic;52M-r8[g-~>
+kl1XapOEElG+-\GrnIGTrUeg&pOEBqH(`[\f)G`ErdY)uG*IjRJ-1.ech#rl!V\&>!!H?;jmRd!
+J,sh8npgjdJ?-URr;[$*<d'Y=jS@X3!714d"Eo[7kl'N@"9.uHM"6'!Ju6ubr8[g-~>
+l2LeM"SVm!3.7[VpY#QKrq4GJp](F&GbER[f)G^mrW!$IHD#o\!!G-A`U3Z\rrW/;#PnE%4hQFF
+!!6GR!qQBo7=\hVr;['0<csA,g@YC#rrBe(!!GcK]BK4PrrW2mU@A3d/?mh"roF*0~>
+l2LeS:%q6_>^`L%pY#QKrq4]?pdtZ_GbER[f)G_Xr^m8nHD$eu8d&I``U3Z\rrW/;#PnE&4hRFY
+rCR-)I7s0("(?^h%K-83$<D;.ZJ+sMh>[K%nk'$oMS&*NiVruYosaH`"CSIeo`!qOJ,~>
+l2LeWK(jcuG($7?pY#QKrq4lupj`KrGbER[f)G`3rdY)qHD%D1J-:7_`U3Z\rrW/;#PnE'4hS.L
+J,Xs!E.7A."*K-'%K-83$<D;.ZJ+sMh>[K3npgjdMS&*NiVruYou?NP"GX/6o`!qOJ,~>
+l2LaMp&G4`K!=20f`)'QoX5)$!!@J;e+M>m!;l]p"?(_.d3%oZ":U*rjnmj5!r/2dq>^O((]==9
+)KC]Vo)Je5%/^)1*G'JTYgr7@h#@B&nc/e^MS&*Ni;WlWo2tM_"(8e&q;hR+~>
+l2Lakp.>HqK!=20f`)'QoYaT$8cs=0e+M>m!;udf"C-DTdU2Q;"AXc_jnmj5!r/2dq>^g0/j)To
+8lBYf>4bDg68&cF!!aNUG`ArXnGM)A!8d9="Cd8#kl'H>!r__EnO`n1]]AnLs*t~>
+l2Lb,p4*9gK!=20f`)'QoZi-bJ-1%fe+M>m!<)kH"Eo6nduEpK"Fc0:jnmj5!r/2dq>^g05A,4h
+IsQ*nL\-)uE]X^-!!aNUG`ArXnGM)A!9j!("Eo[7kl'H>!r__fnUL_%]]AnLs*t~>
+l2L`Sp&G4aL:64AfDbpNo8`SG"*U3^o[j*Cg\h*T7Y7l%Mt$cL?DuQNh#@KTntQrm!!>W4S3H?@
+#REn@I[.=lnGM&@!8d8H"@e9\kl'E=!rUsdnc/e$R*+gojo9i~>
+l2La2p.>HrL:64AfDbpNo;VLW"*U3^o[j*Ck5@mT@=k`@Wpr[`Ei@[bh#@KTntQrq!!`Q>-otUV
+S8\0p"%G3q&c2P6#Y&laQ*o34r7h5OkOM4J@Z%e]rSRVVr8^fI8d%t[b3f,gs*t~>
+l2LaZp4*9hL:64AfDbpNo=XjK"*U3^o[j*CmJVP<FFpaS_!upWJZ.8qh#@KTntQrq!!`TM7V$C[
+S<Wf!"*n9=*r>pC#Y&laQ*o34r7h5Omdbl2G)EoqrSRVVr9/n*J-2=amJQ)GJ,~>
+lMgnZ#ke6$7Z"_?rRUuMr:!nc!!@A4d.Gri!4Vn,"]^>fk3WrT!!Fp@am]5arri5d`Dd$8!!<ED
+3$n%o#n&k6I#=Z6h=:EsrrDc`!!GcK]BK4MrrMtInGi\eY1r[Lk5Tr~>
+lMgn\;"dKa@Yq\[rRUuMr:#I:8cs4)d.Gri!6kC6"_NP"k3lID8d&Fdam]5arri5d`Dd$8!!<ED
+3&^[["!\`u$2FQ-$Tr?TMP@oBnbh,@!;Z1X"Cd8#kl'B<!W&P\8d'(8g\1X/s*t~>
+lMgn^K_Bp!G)<forRUuMr:$TZJ-0q_d.Gri!8II&"`oI/k4+?"J-:=fam]5arri5d`Dd$8!!EKE
+3(#k-4p*o#+V4AK#n&k6I#=Z6h=:EsrrDodJ-:%Q]BK4MrrMu.nULasY1r[Lk5Tr~>
+lMgk-o`,+aM7`!Mec,^JiZe4!")""Ho@O!BQi-mfArOLiqLnD>"9a=cjSR^3"o@Z<WE9kt!"/f?
+3bj)#T!m#.pAN\E!<2Nh"@e9\kl'B<!rhQsnc/e*QGr4hk5Tr~>
+lMgk<oh#?rM7`!Mec,^Jj^@pW")sXQo@O!B[J`]$D2c6pqPEaT"A=KYjSR^3"o@Z<WE9kt!"/f?
+3bj)#T!m#.pAN\E!<2O]"Cd8#kl'B<!rhXfnk'$^QGr4hk5Tr~>
+lMgkGomd0gM7`!Mec,^Jk`5Li"*^-Xo@O!BbPcqpEf@cuqS)KM",OGIqqM,SqX2q6=;9ou$NUl$
+C41u2[a=11rRq2NrpkRBG)EoqrSIPUrpba5J-2+Vm/?)HJ,~>
+lMgjNo`,+[M7VpLeGfUG[KHC,"D4"Enc%2@!-J2?#6T"0`pWih%e9T&9Vg53rnIGWr:ApkZ[t1$
+!"'N/@"b8acJe<irn%2@!!GcK]BK4LrrN%3nGiZ%Y2/m8s*t~>
+lMgjloh#?pM7VpLeGfUG`_?8%"E9^Onc%2@!1a$\#>9*#`pWim<:WWaC8BDQrnIGYr:ApkZ[t@J
+!q$$t"Uu:u6=>J@\Ba('qYo+Hnk'$oMS&*Nh>[NRPOV6IGHTcsk5Tr~>
+lMgk-omd0iM7VpLeGfUGdXh:G"Ep-Unc%2@!4r/[#CgcW`pWipL@KcrUt,/;g]%QWoA[s"Jj^1Q
+mJm\&(F_:0@"b8acJe<irn%2@J-:%Q]BK4LrrN&&nUL^pY2/m8s*t~>
+lMgj+o`,+KLq)UFeGfULp14%#"C786nG_)?!)WXp#820Hc1:l3D=RZ0'U$B"rS%8TrV>p?cU[p6
+"pu+Y&Io9OoDf.4<.1msjRE!Dec,U_o)Jn_MS&*Nh>[NT`:3g11n)VWroa<3~>
+lMgjSoh#?jLq)UFeGfULp5]#B"Dj=EnG_)?!.t2B#>fQ1c1:l3QL[WN;Ner`rS%8_rV>p?cY5-e
+,9%F7&ePT`"o\W;"UGMJ'cS>C-7CZLIBCrYnG3%5rr?-l8d&U\]BK4LrrN,KnO`pkR`k4"kPp&~>
+lMgjqomd0kLq)UFeGfULp8n.A"F$*PnG_)?!3#mI#CLZ]c1:l3ZgrVLJ!._8rS%8^rV>p?c[o1m
+4Y@ln&ePT`r!3lF'H8;N4$Z/&85t#>dcBonrRLoJM=Z6#G)EoqrS@JSrnd0q"Fcf_nG_VNJ,~>
+lMgico`,+1KX0V7e,KLJjV[mq"BUc+mf(l=!&4BP#U"Aae+Nb?h?WTO")+mopt5TKrV>R_r;[$V
+9ji7&N#_Hi"r;$DcLC]0e,KCio)Jn_MS&*Nh#@EP(@hG.&rO9_r9+*1~>
+lMgj?oh#?bKX0V7e,KLJl!"!W"DX+>mf(l=!,VX,#ZQ&@e+Nb?k"kP?"*h$*pt5TVrV>_N5Wh"`
+5tta4Ll=In./tb)/1rV52aV>LcLC]0e,KDUo1B-pMS&*Nh#@EP=n5/f:l;jHr9+*1~>
+lMgjcomd0nKX0V7e,KLJl\bUj"F$$Kmf(l=!1<b9#^U`fe+Nb?l@\YX",*l6pt5TVrV>f*DJ3Ka
+9hf#@Ll>:171MdX8PDr[=^GNQRa1F!rmUlIO7Rl)G)EoqrS7DRqhjrp"Fc6>k5=EBJ,~>
+lMgiLo`,*rFfF-jdf0@ERf!-g9T[-Xrn.5N%/p54/psPLq#CBk?1Isu0:L,Srn%/MT)AWo$!qV7
+Z+n%CoDf"(H)B<jdJj1go)Jn_MS&*Nh#@ES;=OVgG,j<lkPp&~>
+lMgj.oL]44WS@3rrrMu'r(7*'OM^A`f`(qLr^mGuI&>Tls8VtRnk'$kR`t:#fDc8j8Ou<=7::+u
+Z+n%er&+sB3'',a5X@b0H)B<jdJj2So1B-pMS&*Nh#@ESK(2G8I&brrkPp&~>
+lMgjWoRI$nWS@3rrrMu9r."opOM^A`f`(r+rdY9!I&>Tls8VttnpgjmR`t:#fDc9)IXHHbEF<dL
+Z+n&)r*Be=@:WtbD/jZ?H)B<jdJj3-o7-seMS&*Nh#@ESVso3<Wn[=3s*t~>
+lMgiKoDf"dS^@!-e,KLKoeuaK"@eBclM]E9!:0R`#X!X>hYR9PrmL?;"9a7bjSRR/!'pJ_#;pOa
+^>J8AIe3UC"+-iqpX0!@+7fI87Z+hArS.>PM=CQK<h7V/rojB4~>
+lMgj-oL]7"S^@!-e,KLKoks_#"CmG+lM]E9!:g"[#[Mt_hYR9Prn[-;"A=KZjSRR/!-eB6#?c)0
+^>J8ASGGV\77Kd<8P2X&Ut>@grr?Hu8d&U\]BK4JrrB(h8d&t$d.@8#s*t~>
+lMgjVoRI'nS^@!-e,KLKopG]."F,p@lM]E9!;6;@#^1a#hYR9ProEU"",aVLqq(iJT`0HIIro^n
+^>J8AZi"nRF`qtSH@1-jIs\!CpX0!@O7Rl)G)EoqrS.>P_sr6[I%AXUrojB4~>
+lMgiKoDf".OML/[df0@G]DV^43JtH4rRq2Na8Gu@8qaS3r;Q]sqb$DZ"@o9;o`!PD!8m_T#QeFb
+WnI+FrNPkn")jd[p!Nd>+7fI87Z+hArS.>PXmlAo6'B7UrojB4~>
+lMgj-oL]6aOML/[df0@GbPb$9?AcAYrRq2NfDS;E@YD,Kr;Q]sqgS*."DFU\o`!PD!9j>Q#AJ^g
+g%PFD`q)e)Fe7(TdJj2So1B-pMS&*Ng]%8lnO`pnP/cqhkl6/~>
+lMgjVoRI'oOML/[df0@GfDU4&H&B5trRq2Nj8FK2FG.$]r;Q]sqkEY3"G*Auo`!PD!:Ti9#B,-m
+g%PFDf(smmJ-1(ge+M,g!0?`%"Eo[7kl'99!7gUi"FH<Omf)GMJ,~>
+lMgiKo)JknXk`^!rrMmdrW!'TL:?=Cg&D&Mr;Zt&M7VmKrr3#u^@D7,'9U,rr7V)MGPqLI,BAjZ
+kktJ\iq!-P?CB+0dJj1go)Jn_MS&*Ng]%8nnGi\GMS/0Okl6/~>
+lMgj-o1B+)Xk`^!rrMnBr^m;sL:?=Cg&D&frCR3+M7VmKrr3#ucLOR1;3A][r7V)MTD_@f<H=/7
+kktJ\lLRUMDOJf@dJj2So1B-pMS&*Ng]%9)nO`pgMS/0Okl6/~>
+lMgjVo7-prXk`^!rrMngrdY,tL:?=Cg&D'$rI>#lM7VmKrr3#ug@BasJ!%S4r7V)M]D[6cH#et[
+kktJ\nFM/4H'utKdJj3-o7-seMS&*Ng]%95nULahMS/0Okl6/~>
+lMgiKo)Jn%N5k5^df0@H`Voi?-A8\br7V)MKDbcQBTBpqrr)itqD[sF"(A:dptG`Kq],P7#u>oA
+de!J<s8EQ$!!H,^aRB,Vrr=/4!!GcK]BK4JrrCpG!!F^([,h/Ks*t~>
+lMgj-o1B-]P/ckddf0@He,DrB=+mm>r7V)MVu93jDN;R"rr)itqJc!t"*L^#ptG`Kr*K=o$"J=U
+de!J<s8H!i8d&gkaRB,Vrr?Hu8d&U\]BK4JrrD6P8d&7M[,h/Ks*t~>
+lMgjVnpgh.`pEWOrrN)SrdY,tKX0Y9g&D&grI>#kNkt)]rVlopRdtt2KWNu(gA_3PNr=J7EdOM.
+oD\direL,r"F--On,Cc8!0?`%"Eo[7kl'99!:KB-"F>d/jS\6AJ,~>
+lMgi_nc/e@W7^bAdf0UK8cSi2JZdo,g&D%[rW!**F-F]6rr)itrMT2d"=]b]n,D)A!42V("VPd1
+[c@5`rrN*WoDf"[Nl(/^df0:ho)Jn_MS&*Ng]%91nGi\3JZdr-kl6/~>
+lMgj;nk'$jWn?tCdf0UKHqI"1JZdo,g&D&4r^m>fF-F]6rr)itrP%hp"Bq59n,D)A!6P13"]0/o
+[c@5`rrN+<oL]6qNl(/^df0;To1B-pMS&*Ng]%9;nO`p_JZdr-kl6/~>
+lMgj`npgjrWn?tCdf0UKU4@cAJZdo,g&D&VrdY0%F-F]6rr)itrQk%b"Fli^n,D)A!87=$"ak9F
+[c@5`rrN+foRI'iNl(/^df0<.o7-seMS&*Ng]%9AnULaiJZdr-kl6/~>
+lMgj&nGi\U\`!5]e,K^Q\c;^@J>q;ug&D%7rW!'6G+$YHqu6]l,kD!=!dqH:qV2#M;#L@t5^/[?
+nGW=c!+tj'">G_Fkl&s0!$Ce4"@e9\kl'99!8d5G"<2ijh"g16J,~>
+lMgjOnO`q!\`!5]e,K^QbXtK(J>q;ug&D%or^m;iG+$YHqu6]lA+N:q98'b6qV2#MK)J:F??_j]
+nGW=c!0ZtH"C$bqkl&s0!+>Cj"Cd8#kl'99!9irF"B'`Lh"g16J,~>
+lMgjnnULb"\`!5]e,K^QfRSL%J>q;ug&D&DrdY-!G+$YHqu6]lORdo(M72I@g]%8PrI>&nGFH_E
+rVc`rZLiYMHA]>urR1]GO7Rl)G)EoqrS.>PmdYf1I"/0Oq<7j/~>
+lMgjIn,NSP^?#%fe,K[L0E;0+Ut>=nrr=&<!!FEiT@EQ2rrN(_nc/e\U=/]5h>[N="TAB)#&/^m
+h>$pJ!06[O"<iH*jS[I+!$Ce4"@e9\kl'99!7pZ?"<2cfg\C"4J,~>
+lMgjhn4Egu^Z>.ge,K[LCJ%6OUt>=nrr?@(8d&+=T@EQ2rrN)&nk'$tU=/]5h>[ND:&[`g9Pf?a
+h>$pJ!3Yrd"BC,^jS[I+!+>Cj"Cd8#kl'99!93N@"B'ZHg\C"4J,~>
+lMgk*n:1Y$^uY7he,K[LQ@OL;Ut>=nrrA)YJ-:1DT@EQ2rrN)<nUL_9de*OprrM_CrdY0%DhG4K
+q#(-l`q4caH\Acer6kTFO7Rl)G)EoqrS.>Plg]K.I!qsJpuqa.~>
+lMgk+mf3JB]&NG_eGfdP`.DZ`WS$purrDfl!!Fj#VV1b@rrMU)o)Jn&NkaiVh>[J1r;[!SFHaZ/
+rVZZq^%;:-&V-t>qU5BD+7fI87Z+hArS.>P^@;1+)h"U;puqa.~>
+lMgk:mn*^m^#JbbeGfdPd[l,RWS$purrDln8d&7DVV1b@rrM[no1B-]O2'rWh>[JTrCR5qFHaZ/
+rVZZqch'g4:k5Y(qU5BD@.Qtn@Z%e]rS.>PdIBg3;LPFrpuqa.~>
+lMgkEmskP!^uG(eeGfdPgp<B1WS$purrDrpJ-:+EVV1b@rrMbLo7-snOMC&Xh>[JmrI>&qFHaZ/
+rVZZqh=Q4#I=SEUqU5BDO7Rl)G)EoqrS.>PhXQ+!I!qmGpuqa.~>
+lMgn\$h"&u)kc'Zr7(`Nq;fK$_;b7DrrCOH!!G?5XPWgMrrN(Gnc/btX4m=(rr=2?!!QYWVUkG>
+r;Qc]oDf!qI&5Kidf0:ho)Jn_MS&*Ng]%8KnGi\@IAkoqkl6/~>
+lMgn];X[3\>-6ZQr7(`Nq;fK$_;b7DrrD!U8d&FMXPWgMrrN(knk'"*X4m=(rr?I*8d/mWVUkG>
+r;Qcco1B+4V:bOjrr?Hu8d&U\]BK4JrrBb&8d&4DW8%+2s*t~>
+lMgn^L$sNpLUQ(2r7(`Nq;fK$_;b7DrrD<^J-:%GXPWgMrrN)0npggpX4m=(rrA/ZJ-Bn@VUkG>
+r;Qcgo7-pjV:bOjrrA,OJ-:%Q]BK4JrrCI:J-:.GW8%+2s*t~>
+lMgna=mc7n#^=qhqYo(G#6"5XhW+2)gA_/Zr;ZsiKX0Y8qYpWrk6LSY"=9DUmeu&C!4Vn,"X7rG
+]]]1hrrN*4oDeu,T$m8Zrr=/4!!GcK]BK4Jrr@Q=!!G30XPN^9s*t~>
+lMgnaM!dk=:6X>uqYo(G#6"5XhW+2)gA_/prCR3$KX0Y8qYpWrlqd4F"Bh)4meu&C!6kC6"]TK$
+]]]1hrrN+#oL]4+T$m8Zrr?Hu8d&U\]BK4JrrAkb8d&CKXPN^9s*t~>
+lMgnaX6tKAJu@8hqYo(G#6"5XhW+2)gA_0+rI>#nKX0Y8qYpWrmt:4^"FlcZmeu&C!8II&"aY0J
+]]]1hrrN+UoRI$iT$m8ZrrA,OJ-:%Q]BK4JrrBh(J-:(GXPN^9s*t~>
+l2Ladli7/P_!(Okf)GpPqY9marn@APO8T%]<J\3Kr;$?nr+5I""9NhTiVMI3!)3=k"]0Q=dIR;5
+rr>7T!!H;gbOPS\rr=/4!!GcK]BK4Jrr>mc!!GrIZJtcFs*t~>
+l2Lb%lq.D"`p!0qf)GpPqY9marn@APYl./sAr+"\r;$?nr/gJA"+di<qVV;QJGi(D@salro)ALc
+!-\!,"DX:Hnc%#;!+>Cj"Cd8#kl'99!.s`5"Cd"hiqqs>J,~>
+l2Lb6m!o5'b38Tuf)GpPqY9marn@APa8LMkF,7Bir;$?nr35aB",O>CqVV;QVYu#KEdOJ,o)ALc
+!1rh5"F6?Wnc%#;!0?`%"Eo[7kl'99!3#F<"ET4$iqqs>J,~>
+l2LeY+m]14%Y!:(qYmPq!-%l:"CdA+lM^PY!rgXNo)JnUT[EB1iVrr="TAB)&o`Z8iqiKN!,D-+
+"@J<imJbT7!$Ce4"@e9\kl'99!#Y5+"D!A#kPaWEJ,~>
+l2LeZ@I-Si;OZJ3qYmPq!1EdX"Dj(5lM^PY!rh%Mo1B-rT[EB1iVrrE:&[`g:iM6!iqiKN!0m+J
+"CmS4mJbT7!+>Cj"Cd8#kl'99!*etc"Diq+kPaWEJ,~>
+l2Le[O6hB#KWa2$qYmPq!4_uX"EKL;lM^PY!rh;5npgh8dI[@rrrMYArdY0"E/:s^qYC-k[.JkO
+HBH/5rmUlIO7Rl)G)EoqrS.>PN:DE$E/D0hrTO93~>
+l2Le`R-FYS0!+4.r2fnu9`4qoEg"H1rqQKoqb-M\":L1%kksE>!.4YE"[[F%b4#<)rrA>V!!G!5
+]]f=Crr=/4!!GcK]BK4KrrCC8!!O'WP/Zhfkl6/~>
+l2Le`Zg(-cB"I-tr2fnuJGi(CEg"H1rqQKoqgS-/"AXrikksE>!2BEa"^cJBb4#<)rrBCt8d&@U
+]]f=Crr?Hu8d&U\]BK4KrrCmF8d/%3P/Zhfkl6/~>
+l2Le`aQe9YOMp;Sr2fnuVYu#JEg"H1rqQKoqkNb5"FlHFkksE>!58>]"a"sWb4#<)rrC15J-:4V
+]]f=CrrA,OJ-:%Q]BK4KrrD6PJ-C=@P/Zhfkl6/~>
+kl1\U.-U^79YB]crN?/#/H,VQ%<Rr\nc&=`!WK_%!!??&g%OG*!W*`5!!NXDKWj5,q#:?5oDf"9
+Ks]q=e,KCio)Jn_MS&*Nh#@A$nGi_PGb3=TrojB4~>
+kl1\VAa)eiHcGCGrN?/#B`:U-:3;iHnc&=`!WL=68cs%3g%OG*!W61$8d.q+KWj5,q#:?EoL]6c
+Ks]q=e,KDUo1B-pMS&*Nh#@AKnO`shGb3=TrojB4~>
+kl1\WP3IK"SBgHprN?/#QMuC<IWUq#nc&=`!WLdCJ-1D&g%OG*!W@uVJ-CC?KWj5,q#:?QoRI'l
+Ks]q=e,KE/o7-seMS&*Nh#@AfnULddGb3=TrojB4~>
+kl1__]*%9t"TqN7m.^I_rr<?(!!F0aS^I*'rrMsQo)Jn8QH/Ckj8T+Wr;[!XFHjc2rV6BmmdpJ^%
+Y1Y;q:#?D+7fI87Z+hArS@JSq],/,"Ti+aXkrm:s*t~>
+kl1__b=q.m"\a?dm.^I_rr>mp8d&%:S^I*'rrMt6o1B-dQH/Ckj8T+prCR5sFHjc2rV6Bmo(5NW
+:4TG&q:#?D@.Qtn@Z%e]rS@JSr*Jnc"DWOjhYH@7J,~>
+kl1__f7E1:"bE;nm.^I_rr@`OJ-:4DS^I*'rrMt`o7-snQH/Ckj8T,.rI>&pFHjc2rV6Bmp@Nk<
+IXnNVq:#?DO7Rl)G)EoqrS@JSrJpDu"E/mohYH@7J,~>
+kPkSXIcg\8"&HSrp\b#trrD*X!!FToUXo/4rrN(nnc/c4ZJbQ=rr>1\!!WL7J>q2prqQKorYP2,
+"*gWopXB-B+7fI87Z+hArS@JRTCDmb-?>3`lMTiFJ,~>
+kPkSXTBAfN9RXtJp\b#trrDB`8d&1@UXo/4rrN)2nk'"5ZJbQ=rr@0>8d/s[WS$qDq#:Bo>4bDh
+HDK3fe,KDUo1B-pMS&*Nh>[JenO`scEfe*%r9+*1~>
+kPkSX\EAAHJY1<Up\b#trrDTfJ-:.DUXo/4rrN)CnpggsZJbQ=rrAYhJ-BnBWS$qDq#:BoMtDN%
+I&,Ehe,KE/o7-seMS&*Nh>[K$nULdfEfe*%r9+*1~>
+kPkV^nP\HK"[]6TpAFourrBt8!!G$*WS@4@rrMd5o)JnST$R!,jo5>,r;[!KEf[rur:^-j9(W)c
+@[tj<e,KCio)Jn_MS&*NhZ!WR,k:p>!aC&Ie+EY&s*t~>
+kPkV^nU]do"a.KDpAFourrCRI8d&=HWS@4@rrMh"o1B-pT$R!,jo5>:rCR5oEf[rur:^-jIe657
+E1G>Je,KDUo1B-pMS&*NhZ!WSA+<.pB7-K'o`"%RJ,~>
+kPkV^nY>2r"e*NupAFourrD$VJ-:+GWS@4@rrMkRnpgh6cgq(srrD6\J-C4=O1siUpAY,goRI$i
+SC-uXrrA,OJ-:%Q]BK4MrrN(]nULd]I&#0_roa<3~>
+k5PM[k=4M4"YQ&$o_\WtrrA\i!!GK:Y2K0LrrN(So)JmuLqMmIjo5<jr;["&I%o*^rq??lEqB>7
+:6irjrm^rJ+7fI87Z+hArSIPSL[b?J.rpT[jnn3?J,~>
+k5PM[k]l/\"_b%#o_\WtrrBY/8d&IOY2K0LrrN(so1B-[MnJ3Ljo5=CrCR6*I%o*^rq??lRe02T
+B9gU.rm^rJ@.Qtn@Z%e]rSIPSWpr[b=)s82jnn3?J,~>
+k5PM[l($gb"d6X`o_\WtrrCCDJ-:%HY2K0LrrN)6npgh$]]T+QrrB>&J-Bq?U=8c6pAY-&oRI'j
+Q-&OpeGfN0o7-seMS&*NhZ!SnnULdeEf@Tkqr[p/~>
+k5PP_q;O6k!!O-]eFE>4])MbXr;ZsmKs]q=o`"sU%eBZ&;Q&1@k5PJN#lXf-)KCYEjSSWM!1i`^
+"?MRZli,E6!$Ce4"@e9\kl'E=!RD&B!!WjDI\bE`roX62~>
+k5PP_q;Z;O8d/=ag%"k9])Mc)rCR3%Ks]q=o`"sY<:`]aDPu.\k5PJS;#X&j;K7T(jSSWM!4h_o
+"CI2*li,E6!+>Cj"Cd8#kl'E=!SpTC8d8%+I\bE`roX62~>
+k5PP_q;de#J-Cb7hXUC>])McErI>#mKs]q=o`"s]L@]otJu@8pk5PJVK`6K*HuY%RjSSWM!7(4e
+"F?*Eli,E6!0?`%"Eo[7kl'E=!U#.,J-LI?I\bE`roX62~>
+jo5G^pYS?t!!WX*Z0h8_rk8=3=T&4&=,OWRrUg*jr+Ya&"<*NDm/?,I!/pdU"\F!1cLCi+rrC15
+!!FU(\E<_=rr=/4!!GcK]BK4OrrM:.nc/jq:Nhr;kPF<?J,~>
+jo5G^pY^2R8d8%@_X7'prk8=3M#BpKBSsFcrUg*jr0-_E"B:W)m/?,I!3Q2l"^u\IcLCi+rrC^D
+8d&4O\E<_=rr?Hu8d&U\]BK4OrrMOtnO`soG*B`)qW7a-~>
+jo5G^pYhS#J-LV"c0b6&rk8=3XSmYPFGd]orUg*jr3GpE"FlZTm/?,I!6+ne"`ns[cLCi+rrD*O
+J-:7U\E<_=rrA,OJ-:%Q]BK4OrrM_SnULd_G*B`)qW7a-~>
+jSo>]p>/^*!!OX"g@G+=^]+9nr;Zt2Nkju[o`#!ldf]1A")b@#puq_Yq],S8"Uo7&ZJbNMrrDW^
+!!F!fYi,B-rr=/4!!GcK]BK4PrrM^JnGibPEepsSp&=(QJ,~>
+jSo>]p>:>W8d/[thX^OA^]+:RrCR3/Nkju[o`#!lhG!N5"+7?1puq_Yr*K@p"\rriZJbNMrrD`a
+8d&"CYi,B-rr?Hu8d&U\]BK4PrrMh3nOa!iEepsSp&=(QJ,~>
+jSo>]p>DP#J-CtCipusE^]+;(rI>#lNkju[o`#!ljb!)S",=&;puq_YrJpl-"b(BEZJbNMrrDid
+J-::PYi,B-rrA,OJ-:%Q]BK4PrrMqanULgdEepsSp&=(QJ,~>
+j8T8]p>U&nhuErc:Tj*Yr;OS5!#5A3"EK[Fmf)hX!W,O]!!G-KcLLnurrB+u!!PE,QH/Cko`"sk
+-M7?A"+@-%psf<D+7fI87Z+hArSmhXj!aEt"tFPCV9n]/jSs`~>
+j8T8]p>V6/i(=2KJ&(IFr;OS5!*K1l"EK[Fmf)hX!W.?;8d&LkcLLnurrC"98d/LDQH/Cko`"sk
+AG&Ot97<bmpsf<D@.Qtn@Z%e]rSmhXlXoZZ#$5_pV9n]/jSs`~>
+j8T8]p>W'&i.)#`U!;uur;OS5!/g`*"EK[Fmf)hX!W/Y_J-2=enc%eQ!7h$us)nL1a6iitrrN+^
+oRI$lW7q$rrrA,OJ-:%Q]BK4QrrMYSnULggDh=h4n,28HJ,~>
+ir9/\pZ.SOh>d^)K])IurPed:oDJXm%<Rr\o)A7\!WK_&!!EL[]&ihRrr>1\!!NI<JZIN!o)A\b
+oDeu+T@<J_rr=/4!!GcK]BK4RrrK_KnGib<D18(tlMBQ@J,~>
+ir9/\pZ/;QhF[r\U>tkArPed:pAISe:3;iHo)A7\!WL=78d%hD]&ihRrr@0?8d.k(JZIN!o)A]@
+oL]4+T@<J_rr?Hu8d&U\]BK4RrrLGMnOa!cDLS1ulMBQ@J,~>
+ir9/\pZ/f;hLGci\E*8XrPed:q>GgIIWUq#o)A7\!WLdCJ-1_@jnn<B!1s.>"E8pmg@t1<!2fC=
+"+-Zhp!j!AO7Rl)G)EoqrT!nYh2LlS#'k-9T#g3nj8XW~>
+iVs&[puoFNh#ITiD9q_HrQ"p<ci!hH)0h_#o^Vq^qCM4<"AP`Dp&=:W!6b<@"Y=_W_!:jgrr@67
+!!H2dbOPS^rr=/4!!GE?\`WhOrrM_0n,N\IDgn4ok5##:s*t~>
+iVs&[puoY3h+@iMP1K-trQ"p<h>KqK;L"b\o^Vq^qIoIm"Dajbp&=:W!8@BD"^#i._!:jgrrAY_
+8d&jpbOPS^rr?Hu8d&IV\`WhOrrMh]n4EpgDgn4ok5##:s*t~>
+iVs&[puoe]h1,Z`Y1rI@rQ"p<kP]o6H[)+0o^Vq^qNUT%"G*E#p&=:W!9O00"aG*N_!:jgrrBY&
+J-:1bbOPS^rrA,OJ-:+Q\`WhOrrMr)n:1aeDgn4ok5##:s*t~>
+i;Wu[qWuaU$Jb[c#%#OAq#/>7!3c>$"=&5ef(SY6!WAP[!!F%"_s@9err?=&!!QPSUt,,:o)A]d
+oDf"ZOMgGaec,Uknc/h9HIhZarosFaqk"ku!!i`qEe9n#jS/Z5s*t~>
+i;Wu[qWuaq:u+_I:5I?dq#/>7!64t0"BBcBf(SY6!WBIu8d&%T_s@9err@uU8d/mVUt,,:o)A^(
+oL]6qOMgGaec,VWnk''gOk91$rosFar4?;*8dJ*tEe9n#jS/Z5s*t~>
+i;Wu[qWub0K&(q\Ju72gq#/>7!8%1""F5<ff(SY6!WC14J-:@b_s@9errB5#J-Bq@Ut,,:o)A^;
+oRI'jOMgGaec,W1npgmqU=f&6rosFarQgMoJ-^XGEe9n#jS/Z5s*t~>
+hZ!`Uo%pZ;g].K^?-_m5rQG3@Mu<VY0RftTq!e:anJ:]r")+moq!A"]k61ba"W_T@]&rn[rrCI=
+!!Fg/]''%Brr=/1!!X3S]^Y^orpKdflAHnV!!jBGG)3!9k4el6s*t~>
+hZ!`Uo%poqge%`FLXbberQG3@Xo1ip=am=(q!e:ao3(ZW"*h$*q!A"]mS3[Q"]KE!]&rn[rrCpJ
+8d&:R]''%Brr?Hr8d8C[b4,3(rpKdfn>p-h8dJ:-G)3!9k4el6s*t~>
+hZ!`Uo%q*DgjfQ[V:b52rQG3@`Vk;iG^cUGq!e:aonr?k",*l6q!A"]o7Hsl"ab6I]&rn[rrD6S
+J-:4U]''%BrrA,LJ-Lh3eF<82rpKdfoYls^J-^L@G)3!9k4el6s*t~>
+h>[ZWpZTt`,hrA'$uO\eq>SY=!,2<2"?M+:htljB!W@H<!!FsDbjbW!rr@EE!!Q#@T$R!,nc&Xd
+"SD`t(50!Qqpk]H+70%7)dScMnbN(\rr2]m"THu<9*F_a#ms"=IZq"_lM:G;s*t~>
+h>[ZWpZTtq?JJ-V;N]c(q>SY=!0mFS"C6S]htljB!WA_`8d&IhbjbW!rrAel8d/[LT$R!,nc&Xe
+9_D!\;M;@8qpk]H@-pPm>`#`8o(i1]rr2]m"TIDfIn]?(#u+cHIZq"_lM:G;s*t~>
+h>[ZWpZTu)LtmLaKWEquq>SY=!4;]T"Eo@!htljB!WBY%J-:@jbjbW!rrBb2J-C">T$R!,nc&Xf
+K(XWsI>"ocqpk]HO6qH(MlF\OoD/:^rr2]m"TI]/V1S2e$%?u9IZq"_lM:G;s*t~>
+h#@TXqXE@]F;EX3"W<3Xo)&F4rr>Rf!!GcE[,_)QrrM$_oDf!sK"0n=mf*=^'`J(9%W7$-i;)mB
+!WFSA!!EISWS@3urr=/*!!`TO7UCD#R[X2E"+FiG&+0E)&j^D^N2+/Bn,!%@s*t~>
+h#@TXqXE@]N`Oq-"^7_^o)&F4rr@HF8d&RU[,_)QrrM:YoL]6ZL:H=Amf*=`=T1nr:2blni;)mB
+!WHa)8d%h:WS@3urr?Hk8dA%!HAeDs[^Q.D"/:s%<UNHd:g\3hN2+/Bn,!%@s*t~>
+h#@TXqXE@]TS2*N"c9\Jo)&F4rrAknJ-:"J[,_)QrrMJ=o7-q#\E*PTrrN"SrdY0$E/(^Wq=+Cb
+rfm)+"Fkm"g\B>!!0?Ap#_J/2XLc<lb00e."2;(4L[K["I!'IVN2+/Bn,!%@s*t~>
+gA_BUpZpGDA.IAp"?!RMpANA<!$qLC"B1,fkPalL!W6-m!!Gffeb&k0rrADa!!PH-QcSUnn,EAc
+oDeu/T[`Ybrr=.]!!t5jG_r*'dHC3#h>`!~>
+gA_BUpZpGEK2UJs"Dkm;pANA<!+Yt""D3J$kPalL!W7cF8d&h'eb&k0rrBJ*8d/LDQcSUnn,EB@
+oL]4-T[`Ybrr?HI8dSU9G_r*'dHC3#h>`!~>
+gA_BUpZpGFRY'=F"I$pjpANA<!0[;2"E]I2kPalL!W8thJ-:G!eb&k0rrC7@JH'cpQcSUnn,EBd
+oRI$jT[`YbrrA,#J-gF<G_r*'dHC3#h>`!~>
+g&D<Vr:K4%ZsO=!!!NREf^AS7df0:Mr;Zt/NPFcWn,EFfa7B96'9U/sr9sXc./j2M")!1dg\:.9
+!.shC"B:c4o)@5?!$Ce4!\Go/f)Q$Y.ri5UmeZq<s*t~>
+g&D<Vr:K4%[t%?38d.qNg$\\8df0;@rCR3.NPFcWn,EFfealB9;3A`\r9sXcB)YC+95K0\g\:.9
+!2fB\"DX=Jo)@5?!+>Cjs&]7qf1H9@?&-/JmeZq<s*t~>
+g&D<Vr:K4%\<qm(J-CP'g@"e9df0<!rI>#lNPFcWn,EFfht)@$J!%V5r9sXcPl6+8Dh5"Ep[8%]
+_"<-[HC2qIrmq)LO7Rl'GBn\hJ-LRk^=r#OrnRO(~>
+fDc*Tqt&mqZ=k!/!!FdZk4SZ%rrCgO!!I,#`9mQlrrN!Vo)Jl'Xk`^@rrBD(!!OopP/6G]mf*9h
+oDf"ZOi6Ydf)G^lo)Jt_FFe0r+9^j-":,u"5ofV!"W2O:o(i7?s*t~>
+fDc*Tqt&mq[=hQ98d&\=k4SZ%rrD3Z8d'*q`9mQlrrN"9o1B+.Xk`^@rrC1>8d/=<P/6G]mf*:*
+oL]6qOi6Ydf)G_Xo1B3pFFnpW=A7mM"AMfu@TE.p"^.;Lo(i7?s*t~>
+fDc*Tqt&mq[[;^'J-:nOk4SZ%rrDHaJ-9qU`9mQlrrN"co7-prXk`^@rrCaNJ-C1=P/6G]mf*:;
+oRI'jOi6Ydf)G`2o76j_"+uJeK'%RdIXHHeIeS?rLp>k.q>K.LJ,~>
+ec,mRqXNUl\8s"R!!E[eh!k3krrB\0!!NOIQ-/Uqmf*=eV"4Qh.@JBJrpg!g7/[)h>(*3sp&=CZ
+!7g]A"=oAAkl'*4!$Ce4%7Pf?[^N-%G$@?g+VbIZ!"98O,rS>#EdiXsO-3'-!!NdIf^S_8huA3~>
+ec,mRqXNUl\;FVL8d%t`h!k3krrC@C8d.n0Q-/Uqmf*=e]^n_u>+*S&rpg!gHMpG>B76T+p&=CZ
+!9*QB"BgVokl'*4!+>Cj%:Od[[^N-'KQV!8=&Mie8dnHm='fHTGCG1#O-=PV8d/+Tg[P%;huA3~>
+ec,mRqXNUl\=860J-:M/h!k3krrCmRJ-CFDQ-/Uqmf*=ecLZPhJ!nLKrpg!gUA]TGEIFY5p&=CZ
+!9s-+"FH$<kl'*4!0?`%$?grm[^N-'Nei@=rdXTk%"<VPH[0m_IY3H;P`>Be"bj&7nG3%?s*t~>
+e,K^QqXNXp]SSiUhZ*dcdd-`.fDbi;r;Zs2G+-bKm/I+Z)Y="4!dqH:qXXXdci!hI)0(SGjnnHF
+!WEAt!!F'jZJtc4rr=/4!"qbW[+OEmcGI#jU7.@/N.uLtF8U%iGCbC#LlIRcTW#**_T9cO#ke6%
+'7o05qYoIRJ,~>
+e,K^QqXNXp]U*D-hb"$(dd-`.fDbiYrCR2fG+-bKm/I+[>P(Mj98'b6qXXXdh>KqL;K7W+jnnHF
+!WGmf8d&%FZJtc4rr?Hu8ePTh[+OEmcGI#jU7.@/N/2t4I/J:%I=[$)LlIRcTW#**_T9ce:A.9`
+<hA=@qYoIRJ,~>
+e,K[PqXNXp]V18?J-;IllhUP3rrC7@J-::DRa:TlrrMkQo7-q"[c@5TrrD6\J-C:>Mn8$ImJd4d
+K_9iuI>"ocqptcIO7Rl7G)3NXj4_eq[]?-kQ&pr\L4k3WK)^B3K8#,@P*quAYdqWla/agcJ-C_7
+iplmEiW"E~>
+dJjLOqXWe!^nP'OhuEmGa6*0rf`(qrr;Zs=Gb<LYm/I+bJb&jE7&&-%rq$-i>l=X+8U6lPo)A%V
+!WF_E!!EISWS@4!rr=/4!"qbY]'&n`o'>Amf$DIU^:LbYYPPC4Z*h0Y`m*#fiTBLrmc()Uo`,+G
+ZKCiXir=N~>
+dJjLOqXWe!^nuHZi(=,kaQE9sf`(rDrCR2jGb<LYm/I+bV"71]B;3iHrq$-iMu?6O@<nEho)A%V
+!WHj,8d%h:WS@4!rr?Hu8ePTj]'&n`o'>Amf$DIU^:LbYYPPC4Z*h0Y`m*#fiTBLrmc(QPoh#?u
+^?5+dir=N~>
+dJjLOqXWe!^oEQMi.(roal`Btf`(rarI>#tGb<LYm/I+b^%-[UU=/]5oD\fnrI>&mH(E7OrpB^d
+rg*5-"Fkm"g\BA"!0?`%&pB/DkP=lClf?mQccO)=]!eoJqQ:@6[CX/nc.(M,k3VU*ikC0?J-:tR
+k4SZ3s*t~>
+ci4=Nqt97.aKp@Q"QBCa3PjeMrn7;O;uH\!-@DWApZqh[j9P;W":pO.l2:2R!TO=^!!NdJL9fb5
+li-rkoDeu,T[`Ycrr=/4!"qbY]BK4nrr2ikp@Ie?lK@9hi;;C=i8Wh\lL+69q"jpfrWDu]ZQAc>
+"U8r"meZqDs*t~>
+ci4=Nqt97.aKpt>9]AYIC;T'*rn7;OL&FUH<d^^qpZqh[l;.%E"Ak/pl2:2R!UEJZ8d.t-L9fb5
+li-sDoL]4,T[`Ycrr?Hu8ePTj]BK4nrr2ikp@Ie?lK@9hi;;C=i8Wh\lL+69q"jpfrWDu]^0L>'
+"\k-5meZqDs*t~>
+ci4:Mqt97.aKqCmiID&l_rUOjg&D&PrI>#rI&,Ehli."RKCjZsIuqJ1r:L!inUgaj"b(BEZJbQE
+rrB4oJ-11leFhDm!0?`%&pB/Ekl(P\rquTcoC2,3kN1a^qqhb=ioK:fmdg&GqY^?l"8V6&MY2K'
+JuIDkqYoRUJ,~>
+c2S+Lr:fX<d(PlG%c[Nl2nn;Frn@AP2#RCW0n-+Wq<S%]r*Jsp"'qt]p[nIcF8Z(B3Hg_/mJZAN
+!/gCK"B(W2nc%/?!$Ce4"@e9\kl(AXs8N&ss8;]h"oJ5rrVlflrr`/d_]SLN"?sffp\s:SJ,~>
+c2S+Lr:fX<d(Q/s;<(7OBu&a%rn@APDZ*01>(3I+q<S%]r/:/="*:Nsp[nIcSGc%`>]uFRmJZAN
+!3>`a"DO7Inc%/?!+>Cj"Cd8#kl(AXs8N&ss8;]h"oJ5rrVlflrr`/db$FX3"E;HFp\s:SJ,~>
+c2S+Lr:fX<d(Q<<K&_@aNPOQIrn@APRf.a>G^cXIq<S%]r2fL?",!Z.p[nIc\c%$^F`s(kmJZAN
+!6"M["F?HZnc%/?!0?`%"Eo[7kl(AXs8N&ss8;]h"oJ5rrVlflrr`/dc\qFG"I.*mp\s:SJ,~>
+b5VbGqXWk&`iNbjj8]<@^>ekcg]%6br;Zs]JZdr-li."b`:Es3-()dArV$6lmh#Hu"Tr7bX4m=5
+rrB=r!!GKI_sIBSrr=/4!!GcK]BK4Lrr`2h\eF]9"<t22o_mqPJ,~>
+b5VbGqXWk&`ianpj@TPh^Z+tdg]%7RrCR2uJZdr-li."bddp'6=d[:urV$6loMtl_"\WT\X4m=5
+rrC+38d&Ra_sIBSrr?Hu8d&U\]BK4Lrr`2h`E)V'"CA[uo_mqPJ,~>
+b5VbGqXWk&`itb^jF@Am^uG(eg]%80rI>#oJZdr-li."bhXc7#J!e=FrV$6lpPAcu"E/gkg@sn4
+!8$jn"F?0Im/GW:!0?`%"Eo[7kl'?;"8q]7L\-*"MSJ-BrT=-1~>
+aSuPFr:]L7c+%g=jT#EP_;tCjh>[K@qu?jgKXBh<lMgn^2"UbN!d_65qY'phO8T%^-?>3`l29iH
+!8d>J"=8o9kPa$4!$Ce4"@e9\kl'<:"8q_s$1n3#'qsFRr9+*1~>
+aSuPFr:]L7c+&X9j[oYp_;tCjh>[KFr(7*#KXBh<lMgn^DY$I&K!aP6pAY,srCR5oEfe*$r9F:^
+kO_@L=,FNOrR_&L@.Qtn@Z%e]rS7DTr:7^$oL]6eXk`LFkPp&~>
+aSuPFr:]L7c+'6tja[Jq_;tCjh>[KJr."omKXBh<lMgn^R.Gh1LpZ1<pAY-5rI>&rEfe*$r9F:^
+mdu#4I#5GtrR_&LO7Rl)G)EoqrS7DTr:8'aoRI'u[G:?NkPp&~>
+`W$2Aq!d=l]RM<k!!?`Lk5!j5!6b9?"B1,ekPXWF!WJY]!!GEWdI[A4rrN!6r;["$I&#3`rp'La
+rX8B!";?BkiVM1+!$Ce4"@e9\kl'99"8q_Z"7uQr&#@nLr9402~>
+`W$2Aq!d=l]TQXa8csU^k5!j5!8@?C"D3J#kPXWF!WKS"8d&[tdI[A4rrN%%rCR6)I&#3`rp'La
+r_iD]"Aj]SiVM1+!+>Cj"Cd8#kl'99"8q_p9_:p[;QSRBr9402~>
+`W$2Aq!d=l]V(&BJ-2(Tk5!j5!9O-/"E]I1kPXWF!WL:5J-2IloD\Ob!W@uUJ-Bq?UX\r8lMgna
+L@p'"I=e]^qUb`IO7Rl)G)EoqrS.>Sr:7[ToRI'sZJ"gHkl6/~>
+_uBu@qXWe!^OdTl!!E@Ub3Sr]rrAtp!!HSd^?Y[]rrMX&oDf"%N4nHQq#:>dr;[!:E/M0dqs"+]
+r\jEL"9NkHgA';"!$Ce4"@e9\kl'68!rVP*o)Jn2WnHtAl2Q8~>
+_uBu@qXWe!^Q_sd8d%eMb3Sr]rrBk48d&mf^?Y[]rrM^loL]6]NkOZSq#:?+rCR5jE/M0dqs"+]
+rc%L%"+7$#pt,NG@.Qtn@Z%e]rS%8Qr:#pA8d&8!g%,++s*t~>
+_uBu@qXWe!^S6JGJ-2@blhfQ=!7Ujr"ETO9lM]uI!VM9@J-:@^^$,ChrrCCDJ-C=>MR_aEl2Le`
+Re2+4I](opfDbi3o7-seMS&*NgA_6Pn?2A5"GO/7o)7hQJ,~>
+_>ac>qt0+(^ip[\!!Eq.dd[4mrr@iP!!Hnq_sIBerrN(=o)JkpWS."?rr=bO!!P]6S':C$kl1Wp
+oDeu&T$m8_rr=/4!!GcK]BK4HrrW)b4nAXV.^\"(rp'N6~>
+_>ac>qt0+(^lDL\8d&(gdd[4mrrB(s8d'$n_sIBerrN(do1B+(WS."?rr?m68d/OGS':C$kl1XG
+oL]4)T$m8_rr?Hu8d&U\]BK4HrrW)bF7W!,@("e_rp'N6~>
+_>ac>qt0+(^n?DGJ-:J%dd[4mrrBt7J-9tU_sIBerrN),o7-ppWS."?rrAGbJ-C%>S':C$kl1Xg
+oRI$jT$m8_rrA,OJ-:%Q]BK4HrrW)bRe)%4Lpl+3rp'N6~>
+^]+Q<r:T:)]OqT:!!GKkh"La*rr?U-!!IA-aRB,lrrC^C!!FI2a6ij%rrBD(!!NRBKWs>.kPkOB
+oDf"fQHAXqf`(pno)Jn_MS&*Nf`)$LcjfRH"Albjq#9UZJ,~>
+^]+Q<r:T:)]nK8I8d&k6h"La*rrA2Z8d'4"aRB,lrrD$L8d&4]a6ij%rrC1>8d.n*KWs>.kPkOb
+oL]7!QHAXqf`(qZo1B-pMS&*Nf`)$LfMhB6"E_<9q#9UZJ,~>
+^]+Q<r:T:)^70`>J-:\6h"La*rrBA&J-9qXaRB,lrrD9SJ-:@fa6ij%rrCaNJ-CF@KWs>.kPkP%
+oRI'jQHAXqf`(r4o7-seMS&*Nf`)$LhM(QO"HL.Sq#9UZJ,~>
+^&J<9r:K4&Y!D:Q"9O%gkka6;!'pJ_":B7<bjsrs!W5=V!!@;Ji;*6L!'pJ_"Yb%_`U*QdrrBJ!
+!!G0>_!D!Prr=/4!!GcK]BK4GrrW2pN:R#P!e\MXqs494~>
+^&J<9r:K4&Zu>8&"A=Wgkka6;!-eB6"AO!*bjsrs!W7678csOJi;*6L!-eB6"^,r3`U*QdrrC46
+8d&I\_!D!Prr?Hu8d&U\]BK4GrrW2pWq/gc99@0Yqs494~>
+^&J<9r:K4&\<6',"-gXcqV_ART`'BDIWUt$o&p#Rr1NY3",F2?q>1*kT`'BEG'&tfm/?,I!87!p
+"FH0Eli,Q:!0?`%"Eo[7kl'06!rhu0npgh1`p3Hes*t~>
+]Di*7qt&moL_B%S"=g4qo)@VJ!$(q;";#dIdIcW%!WK1l!!G?Sd.726rrC+;!!QVVVqC_BkPkPH
+oDf"<LUQ=Bf`(pno)Jn_MS&*NfDbpOn1+#0"<aVko)7qTJ,~>
+]Di*7qt&moS5eiI"C7hOo)@VJ!+#Oq"Aa63dIcW%!WKt-8d&Upd.726rrC[K8d/jVVqC_BkPkPN
+oL]6eLUQ=Bf`(qZo1B-pMS&*NfDbpOnRqGc"BhYOo)7qTJ,~>
+]Di*7qt&moWeB_h"G3Gto)@VJ!07#."FYKadIcW%!WLO<J-2Cio)ARe!9=!-"`Spgf_5=-rrDZ_
+J-:7T[cRG>rrA,OJ-:%Q]BK4FrrW2jPOj;-Ju@)grTsQ7~>
+\c2j4qXE@Q46uqLHF`,5ir9#Uqu?j<H(`[\k5PJU)Y="4$&H7Wqu$Ho;#L@t*c[.OkPOEA!WEc*
+!!EXZXl'!-rr=/4!!GcK]BK4ErrN%nnc/c%\)R5Ms*t~>
+\c2j4qXE@UD<sjsKXp1?ir9#Vr(7)iH(`[\k5PJV>kCVk:5cdJqu$HoK)J:F;fRc/kPOEA!WH0n
+8d%k=Xl'!-rr?Hu8d&U\]BK4ErrN&0nk'"1\)R5Ms*t~>
+\c2j4qXE@YOmIT#N4J$Gir9#Wr."osH(`[\k5PJWN:_W'IuM&'qu$HoW;V5MH?"nVkPOEA!WIrK
+J-:=OXl'!-rrA,OJ-:%Q]BK4ErrN&Anpgh$\)R5Ms*t~>
+\,QX1pZg7G!q$$k3hb!mro="YfDGUO-%)N@pZDJVrHe&8"&c)MpAP!kg\_$T89pfRo)@eO!WG:T
+!!@8;fCmks!$Ce4"@e9\kl''3!V@E(!!F./bO5>rs*t~>
+\,QX1pZg7g9^YLUA"h?Aro="Yj8;LP<d^^qpZDJVrL`[R")b'ipAP!kk57gT@!S?jo)@eO!WI66
+8cs=6fCmks!+>Cj"Cd8#kl''3!VKdj8d&+`bO5>rs*t~>
+\,QU0pZg8(m=5=jU!iN2j8T,Fr."oqI&,Ehk5PJ\](:FSJuI>qrVllbr."rkH(NCRroX4]rgrb4
+"+6orp=TBFO7Rl)G)EoqrRLoKp5SWn".[R&rU'W8~>
+mJd4QqYpK?rrrE!o&#]Bmf3J"NkOZSj8T+gqu?jNI];)tjo5A:"S;Zs)O/5-rVlfs?i9s.$>bI'
+iVDR7!,D-+"BLu:o)@>B!$Ce4"@e9\kl''3!W@<7!!@#BhtZU=J,~>
+mJd4Wr;Q]ArrrE!o&$BDmn*^YNkOZSj8T,'r(7)oI];)tjo5AB9_:p[<0YAgrVlfsNr;QR9l>]l
+iVDR7!0m+J"DjOPo)@>B!+>Cj"Cd8#kl''3!WAV\8csIHhtZU=J,~>
+mJd4[r;Q]ArrrE!o&$m/mskOjNkOZSj8T,6r."opI];)tjo5AHK(OQrJ!@q=rVlfsYPitTIVsnH
+iVDR7!4;BK"FHT_o)@>B!0?`%"Eo[7kl''3!WBV#J-1V5htZU=J,~>
+n,EUdIh7t8oD6`3"TA)XY8cp1"(nRepZ)8RQi$gd2h8'gqW7_Xr'^,V#B6p)q#CBW"T8<(20G5*
+mJZ,G!0QmR"@/-hmf(o>!$Ce4"@e9\kl'$2!6t'7">H@jnG_kUJ,~>
+n,EUfUfFbioD6`3"TA)X\m"Pp"*U]upZ)8R[JWW">_'!7qW7_Xr-@m+#CNc5q#CB^:&RZf>'6.O
+mJZ,G!3l)f"CdP5mf(o>!+>Cj"Cd8#kl'$2!8@!9"C@VCnG_kUJ,~>
+n,EUh^PKr!oD6`3"TA)X_hmi4"+mQ,pZ)8RbPZknGCZjRqW7_Xr1NY3#DTJ?q#CBcK)L6"FT[rM
+mJZ,G!6Fe_"FH<Nmf(o>!0?`%"Eo[7kl'$2!9<U"".[X*rpKf:~>
+n,EX9!!!tXg$nparri>tm(a\3!!GTUbjk\nrr@0=!!GQ>ZJtcCrrN+qo)JtOSBg[(s)7i9"Ti+_
+WnR1,rrC%1!!F^-]]f=Irr=/4!!GcK]BK4CrrN$5o)JmtL:QFCmf.e~>
+n,EXH8kN@1g$nparri>tm)WK%8d&[mbjk\nrrASe8d&LRZJtcCrrN,4o1B3oSBg[(s-`dW"DNCd
+g@jS,!7g^6"B^Pokl'37!+>Cj"Cd8#kl'$2!W6-m8d%hD\`N_Vs*t~>
+n,EXSJ:NR#g$nparri>tm*1FWJ-::gbjk\nrrBY.J-:%JZJtcCrrN,Fnpgn6cLLo6\,:aZDh+kA
+p>c/QiUhX'I#>T#rRq2NO7Rl)G)EoqrRCiJr/1&q",aYNqsOK7~>
+n,E[i#QOj,[bUTUbl7eBnAQL>!!FL)^?GLUrr?!q!!G`F[cRGJrrMg/oDf("Kt?FDmg/jl"WqcF
+^?GLTrrDKZ!!EsfZJkZ5rr=/4!!GcK]BK4CrrN*rnc/buVUtP0s*t~>
+n,E[k:J+6*[bUTUbl7eBnB>5/8d&1R^?GLUrr@cN8d&RW[cRGJrrMjsoL]<]Lq;aGoMGKY"]TN&
+^?GLTrrDW^8d%tCZJkZ5rr?Hu8d&U\]BK4CrrN+Nnk'")VUtP0s*t~>
+n,E[kKReT;[bUTUbl7eBnBm3bJ-:7Y^?GLUrrB(sJ-:%M[cRGJrrMnPo7."&]&rnaK`-E)H?,%[
+kksK@!;?&8"FYp.iVM7-!0?`%"Eo[7kl'$2!WK"eJ-)V"p?qs2~>
+n,E[m4obQgMSn]VbPq\Bo#)44!!ERZYi,B=rr=kQ!!H5W]'0+RrrN(9o)JnfVUkEiqu?moHD&^X
+ro="ZrYP2,"*g`tpt>ZI+7fI87Z+hArR:cHII[@@3L7bTrpTl;~>
+n,E[mG"PA%Oi-G]bPq\Bo#t/*8d%k?Yi,B=rr?s78d&a_]'0+RrrN(ao1B.$VUkF9r(7-%HD&^X
+ro="Zr`\qd"+-s"pt>ZI@.Qtn@Z%e]rR:cHU@LnZ@$\n&rpTl;~>
+n,EFfT)O6BQG_tbbPq\Bo$W<aJ-:@RYi,B=rrAMcJ-9tN]'0+RrrN)*o7-spVUkFTr."rkHD&^X
+ro="ZrepE!"+I0%pt>ZIO7Rl)G)EoqrR:cH^%-[VI?qtCrpTl;~>
+mf*90rW!'WW7LV?bPq\Bo;Vo`!!@>=f_=J,!"f&."B^VslM]cC!7CB<";d9>i"5he"Uf1&[,Ur@
+rr>O\!!?MtdIc,l!$Ce4"@e9\kl'!1!1iZ\"<!*.kPXfKJ,~>
+mf*9Wr^m<&W7LV?bPq\Bo=Rcf8cs@7f_=J,!*/qh"DEb.lM]cC!8R0<"B1N%j&Q%M"\rrj[,Ur@
+rr@E<8crt%dIc,l!+>Cj"Cd8#kl'!1!4hYm"B12hkPXfKJ,~>
+mf*9trdY-(W7LV?bPq\Bo>lLRJ-11pf_=J,!/UQ'"E]U:lM]cC!9Ng&"FlWQk(rtd"b(BF[,Ur@
+rrAecJ-1.hdIc,l!0?`%"Eo[7kl'!1!6t(b"FZ0=kPXfKJ,~>
+mf*9kr;Zq@]]K"4rrW,hB(>p(@%5O8jo5>LqZ$b0O2C8_j8T/X2"L\KBWl^Z!!P6'QcSUniVrmu
+oDf"]PfW=mgA_-po)Jn_MS&*Ne,KEZnc/dpJ?@](n,In~>
+mf*:,rCR0E]]K"4rrW,hNq,dEDk#,Gjo5>Qqaq!-O2C8_j8T/XDY$I%H*<\78d/CAQcSUniVrnH
+oL]6rPfW=mgA_.\o1B-pMS&*Ne,KEmnk'$XJ?@](n,In~>
+mf*:<rI>!2]]K"4rrW,hXR^lDHCN:Rjo5>Tqg\fkO2C8_j8T/XR.Gh0Ks.cZJ-C(=QcSUniVrnf
+oRI'kPfW=mgA_/6o7-seMS&*Ne,KF'n:1SBhYHX?J,~>
+mf*:Rr;Zs>T$Qp)b5VP@j;%7d"B(K*nG_SM!6b6>"DEt<mf)8H!WJDV!!4j?')_e6!b$VZg@sP*
+!1i`^"=f>Cl2B?9!$Ce4"@e9\kl'!1!5@t'")+CYp$_p2~>
+mf*:WrCR2nT[3-+b5VP@k?.=J"DF%@nG_SM!8@<B"E0ICmf)8H!WKCr8ci=d<r>PmBn35;pYc&O
+\b&Js=c9uXrS%8O@.Qtn@Z%e]rR:cHd.'^1F.q.Wn,In~>
+mf*:ZrI>$%T[3-+b5VP@lA>+_"F-0PnG_SM!9O*."E]gHmf)8H!WL12J,u*nr."ogJ?%>ti;Wf&
+oRI'lMnSBRgA_/6o7-seMS&*Ne,KF)nUL^hU"/i)s*t~>
+mf*=e-N*oI:p]$RrlY6AqM"M@"A"Tjm/H/I!3>ts"ETjNnG_GI!UU-a!!*3jqu?mBEfRp!r8@ST
+an,Q9'83[NqqD&M+7fI87Z+hArR:cH^@;1+<1(o"rp]r<~>
+mf*=eAGo+'EO4NsrlY6AqPNjV"D!S1m/H/I!5n\+"ETjNnG_GI!UrnW8c_Rur(7,lEfRp!r8@ST
+f^qc=:kZ.6qqD&M@.Qtn@Z%e]rR:cHdIBg3C7*68rp]r<~>
+mf*=eP5Tn6LpPt5rlY6AqRuKN"F-!Em/H/I!7gss"ETjNnG_GI!V:s8J,k3!J-C7>NkaiVi;Wf;
+oRI'mKX0V7gA_/6o7-seMS&*Ne,KF)nULagR*>+"nGe"~>
+mJd/pr;Zs)M8niYb5VPBjp1MY"@nEblM]lF!/paT"9N\3bjs`m!W?*k!!!)u!!Q&BT[NH2i;WfJ
+o)Jl;W7q%#rr=/4!!GcK]BK4BrrBe'!!G`P`9mQns*t~>
+mJd0HrCR2dP/cebb5VPBlVI.F"CmD)lM]lF!3Q,j"*BmRo&9TLrJ0u:!)*5^"_)eNde!IrrrD``
+8csI>gA'D%!+>Cj"Cd8#kl'!1!7C=/"CmP3mJcVTJ,~>
+mJd0ir."m9`p3KErrW2fKCjZsGDs9$rT=+[`VY/fFI15BiVrrWWU53>EdFD,oD[\J!;Q/9"+I3&
+ptG`JO7Rl)G)EoqrR:cHhXQ+!H'#u3rp]r<~>
+mJd0Rqu?jKW7CM=b5VM?:\4Vi6]/P?rT=+[B`%i5%<e2eo\ofNrjD.o"Uf1&[,Ur>rrN*CoDeu!
+T$d2arr=/4!!GcK]BK4BrrB(h!!G?@]]oCas*t~>
+mJd0or(7)tW7CM=b5VM?Jb2P;@>__]rT=+[Pl+,V:3N)Qo\ofNrlOS#"\rrj[,Ur>rrN+.oL]4'
+T$d2arr?Hu8d&U\]BK4BrrBt,8d&IY]]oCas*t~>
+mJd1/r."p'W7CM=b5VM?V=]9@GDa&srT=+[[/>FWIWh1,o\ofNrn$Rg"b(BF[,Ur>rrN+\oRI$j
+T$d2arrA,OJ-:%Q]BK4BrrCU>J-:1V]]oCas*t~>
+mJd19qZ$_.]&NP.rrN+foDf"[M7VpLk5PEOqu?j/GFd1Si;WiS)XdY020P>-meu#B!)E.d"@89m
+mf(u@!$Ce4"@e9\kl'!1!1r]\">GS>k5=`KJ,~>
+mJd1Eqaps<]&NP.rrN,-oL]6oM7VpLk5PF/r(7)eGFd1Si;WiS>jk8g>'?7Rmeu#B!.jc7"Cm\:
+mf(u@!+>Cj"Cd8#kl'!1!4q\m"BpPhk5=`KJ,~>
+mJd1Mqg\d.]&NP.rrN,AoRI'hM7VpLk5PFWr."p!GFd1Si;WiSN:29#F`s+mmeu#B!2fC="FHBR
+mf(u@!0?`%"Eo[7kl'!1!711c"F>g3k5=`KJ,~>
+mJd4c&,ZD1$BiR!r6#$>f^o.H7YnY>r9""Z./X&J&p^,!p#,iNrc@N."CH\Zg@sG'!.+8;"=B&>
+kl'99!$Ce4"@e9\kl'!1!.aS>"=f)2j8AEHJ,~>
+mJd4c<;]>k:702kr6#$>iq,hG@YhVZr9""ZB)G7(:jJ\_p#,iNrgN:J"DE=cg@sG'!2/sV"BUMo
+kl'99!+>Cj"Cd8#kl'!1!2T-W"B^>`j8AEHJ,~>
+mJd4cL\lT(SBC6sb5VJ,oRI'fLq;gJk5PFGr."otH(WUZi;WiW\*nhMDh+kApYGiL]_$^WI#GZ$
+rS.>PO7Rl)G)EoqrR:cH_!upXHA&Wbr:'`:~>
+mJd4d9)ASk0<Egurlb<Br<r8u"@e6Zkl'ZD!!N3""<)T\f(S#$!6t!5"Wh]E^?GLNrrAbb!!Ejc
+Z/PQ6rr=/4!!GcK]BK4Brr?U"!!Fa&YMf9Hs*t~>
+mJd4dIeu_?@'&#Qrlb<BrDN;\"Cd5!kl'ZD!)3;_"B'Q?f(S#$!8?p7"]KH%^?GLNrrB_(8d%qB
+Z/PQ6rr?Hu8d&U\]BK4BrrA2O8d&7JYMf9Hs*t~>
+mJd4dV#,ZFKrir!rlb<BrIsop"EoX5kl'ZD!.t-!"FGHhf(S#$!9<R!"aY3L^?GLNrrCC;J-:=R
+Z/PQ6rrA,OJ-:%Q]BK4BrrB@pJ-:1MYMf9Hs*t~>
+m/I':q>^V,]]An3rrN*Ko`,+kMS/0OkPkPBqZ$a<H_f<ghu<`T/b&fE8:$oUoD[SG!5\7,"*CEn
+pY5]J+7fI87Z+hArR:cH3:QtO.=eSYqXFN8~>
+m/I'^qFUj;]]An3rrN+4oh#?uMS/0OkPkPJqapuhH_f<ghu<`TC%4e!@!\HmoD[SG!7UO3"*pcs
+pY5]J@.Qtn@Z%e]rR:cHEUcX(=FdR3qXFN8~>
+m/I(#qLA[.]]An3rrN+`omd0fMS/0OkPkPPqge]n!i4KChu<`TQ19A.EdFA*oD[SG!8mBu"+I-#
+pY5]JO7Rl)G)EoqrR:cHSFM+4H@W0UqXFN8~>
+m/I'qq>^X(N6:MbbPqQ+o`,,"N5"TUkPkOoqZ$a<I&>Tlhu<`VMXg`N#]#1$iVM@0!8d;I"BM&>
+oD[PF!$Ce4"@e9\kl'!1!"AAt"=\l(htljBJ,~>
+m/I(0qFUlcQ-/IkbPqQcoh#@$N5"TUkPkP-qapuhI&>Tlhu<`VX7Ajd9PoNjiVM@0!9`rG"DjUT
+oD[PF!+>Cj"Cd8#kl'!1!)i>Z"B^2WhtljBJ,~>
+m/I(>q1&R;b3]&LrrAY`J-9tQ^?Y[[rrCmPJ-:4HVV1b%rrN,9npgmmDhbUWqV;)Nmdkr3I%8RT
+rnRMRO7Rl)G)EoqrR:cHL@KcsH@W0UqXFN8~>
+m/I(Uq#COAW7LS>bl7Z0o`,,0OMgGakPkOKqZ$a<I&>WmhZ!W5"S2Ts/p*AumJYi?!<2Qi"?DXa
+mf)#A!$Ce4"@e9\kl'$2!71-7">k\4i;2sCJ,~>
+m/I(Xq+:cnWn-e@bl7Zgoh#@*OMgGakPkOiqapuhI&>WmhZ!W=9_1j[=EKhJmJYi?!<2R^"CRD3
+mf)#A!+>Cj"Cd8#kl'$2!8[-:"C$G[i;2sCJ,~>
+m/I([q1&U$Wn-e@bl7[:omd0cOMgGakPkP*qge]o!iF]HhZ!WCK(FKrGBB+imJYi?!<2S?"FQBO
+mf)#A!0?`%"Eo[7kl'$2!9`j%"F,L#i;2sCJ,~>
+m/I+c0)5JM7(D1LrltHC6hUK`$?VQTnG_VN!-%f8"<2`cgA'P)!W>:T!!HDQVqC^trrN*)oDf":
+M7VjIh#@?no)Jn_MS&*NeGfN0n,NSRK!=83nGe"~>
+m/I+cCACI)Cq/EtrltHCH1ji69luZBnG_VN!1E^V"B'WEgA'P)!W@358d&aTVqC^trrN*poL]6e
+M7VjIh#@@[o1B-pMS&*NeGfNQn4EgiK!=83nGe"~>
+m/I+cQMH%6MR_U=rltHCU%X!?IWUjsnG_VN!4_oVs*OmFgA'P)!WAV]J-9h?VqC^trrN+PoRI'l
+M7VjIh#@A6o7-seMS&*NeGfNhn:1XbK!=83nGe"~>
+li-rrp](D-_WL^>rr>:W!!FEgSC$ojrr>ai!!F-dVV:h%rrN+foDf%/E/V?jqqD&M+7oO9#D0,9
+qV;,A!!GcK]BK4Crr>IV!!GoJ[H.8Ts*t~>
+li-sIpdtX=_WL^>rr@698d&+;SC$ojrr@TH8d&%>VV:h%rrN,-oL]9`E/V?jqqD&M@.[%o9S0G)
+qV;,A8d&U\]BK4Crr@B78d&UW[H.8Ts*t~>
+li-sipj`I1_WL^>rrA\bJ-:1BSC$ojrrAqnJH'uuVV:h%rrN,AoRI*mE/V?jqqD&MO7[r*ItFi\
+qV;,AJ-:%Q]BK4CrrAe_J-9tJ[H.8Ts*t~>
+li-sQp](F$KZi`ZcMml#p&G4TI&,Ehk5PE,qZ$a/I&5Kih>[ND#PA'#4F!@?nc%8B!$Ce4")"C[
+p>#]=!!GcK]BK4DrrMEgn,NSrMS&*NnGe"~>
+li-snpdtZ`PKW=icMml^p.>HmI&,Ehk5PEkqapudI&5Kih>[NH:\@<`?$Mj`nc%8B!+>Cj"*:6g
+p>#]=8d&U\]BK4DrrMXan4EgtMS&*NnGe"~>
+li-t.pOE@;bO#,OrrAJ\J-:%CUtGG(rrA5ZJ-:=KV:bOurrMbEomd3fGaltJrn@APO7Rl(IA>Be
+h#Hqq"Eo[7kl''3!VM'6J-9nM]BK4_s*t~>
+li-t3pAb=+RFC['ci3t]p&G4qK!=20kPkPVq>^X*HD9!ah>[NS9_JGi!bHtdh>#\'!%7@<"A,!(
+nc%AEnc/e^MS&*Nec,W-n,NUqEKA$(rp]r<~>
+li-t@pIYQcU!rN/ci3uKp.>I"K!=20kPkPXqFUlbHD9!ah>[NSJ+ZD:C4`VEpt>ZIAb/LsAsgd3
+rn[VF8d&U\]BK4DrrB1j8d.n.O2L>`nGe"~>
+li-tIpOEBuVpk/5ci4!(p4*9cK!=20kPkPZqLA]tHD9!ah>[NSV"K6@Dh>.Jpt>ZIPOj;-I$i+I
+rn[VFJ-:%Q]BK4DrrC%-J-CFBO2L>`nGe"~>
+li."a&,-&,(oGsVrR(WFn+H_b#]Pa9kksWD!71H@"*gHfp"fWKrhfAh"WqcH_<V!Prr>7S!!Fp7
+_!CsUrrCsI!!GcK]BK4ErrN!Bn,NV6FdUDCrp]r<~>
+li."a<;/uf<iamDrR(WFo_(l\9Q5s(kksWD!8[HC"*gHfp"fWKrkA(u"]TN(_<V!Prr@668d&@Y
+_!CsUrrD9R8d&U\]BK4ErrN%-n4Ej`FdUDCrp]r<~>
+li."aL\H<%KW`turR(WFp\'+@IW17ZkksWD!9a0."*gHfp"fWKrm:@h"aY3N_<V!PrrAY^J-:7[
+_!CsUrrDNYJ-:%Q]BK4ErrN(]n:1[gFdUDCrp]r<~>
+li."b6M:B^,d,qprmLfH\+Te*/p<W*nG_VN!2oVm")==Po\BHIo*b9m"\*g3de*Olrr>:T!!Emf
+[,_&?rrCdD!!GcK]BK4ErrA\[!!GT8Ut>>/s*t~>
+li."bGkO`4?Er;XrmLfHbk=X4=E^(TnG_VN!5SD&"*0mXo\BHIohtNV"^lYMde*Olrr@668d%tE
+[,_&?rrD0O8d&U\]BK4ErrB\"8d&IJUt>>/s*t~>
+li."bT_<m=LU>k/rmLfHg\-.$GBT@snG_VN!7Uao"*g<^o\BHIpP&?l"`ep_de*OlrrA\_J-:=T
+[,_&?rrDEVJ-:%Q]BK4ErrCC6J-9tAUt>>/s*t~>
+lMgj0o`,+AZJP9Re,KDhp&G5!J#M)pk5PF+q#CP&Qd#"!h>[NS=SMk""`&k!iVM4,!'g#S")k*k
+pYPoM^[_@-7Z+hArR_&MpE8r*"TrCkZJt`Ls*t~>
+lMgjVoh#?n[bg]Ve,KE<p.>I"J#M)pk5PFRq+:d+Qd#"!h>[NSL\OIF9PoNjiVM4,!-[p*"*g`t
+pYPoMddg!5@Z%e]rR_&Mq-`\a"\WZcZJt`Ls*t~>
+lMgjromd1$\DHoXe,KEYp4*9bJ#M)pk5PFoq1&TmQd#"!h>[NSWq_)JIrC(JiVM4,!2&h4"+R6&
+pYPoMhsu:#G)EoqrR_&MqiL;t"b1HEZJt`Ls*t~>
+lMgjcoDf"@[,:QUeGfLgpAb@8EK%Qmr9""Z8GN5g8Wq*]rnRMRWqZPt.WgopmJY];!&*mC"A,*.
+o)@PH!3>Yj"@e9\kl'-5!-@T/"Y"PW`9dHks*t~>
+lMgk&oL]6n\)6lXeGfMTpIYTeEK%Qmr9""ZI/-A;AWk($rnRMR_>$V+=*0\HmJY];!,M-t"D=4L
+o)@PH!5nA""Cd8#kl'-5!1`LM"]of0`9dHks*t~>
+lMgk7oRI(#]&32[eGfN/pOEEoEK%Qmr9""ZV"oNDH'628rnRMRdeJ=rG]]1imJY];!138,"FZcb
+o)@PH!7gXj"Eo[7kl'-5!4hQK"aG-Q`9dHks*t~>
+lMgkCo)Jn?[,:QUf)G`Rp&G7mH(N@Qroa:^o*G-l">c"NlM]N<!V6]p!!H)GV:P@lrr<l+!!FI+
+_!:mUrr@uJ!!GcK]BK4GrrL"?n,NXo?%/X$p&=F[J,~>
+lMgkKo1B-m\)6lXf)G`ip.>KuH(N@Qroa:^p/(QW"C-o"lM]N<!VK@d8d&XPV:P@lrr?6n8d&1U
+_!:mUrrB1l8d&U\]BK4GrrLVDmn*asI\kWgrpTl;~>
+lMgkQo7-t"]&32[f)Ga%p4*<dH(N@Qroa:^q1SQo"FH*AlM]N<!V_<DJ-9k?V:P@lrrA#KJ-::]
+_!:mUrrC%/J-:%Q]BK4GrrM)1mskR[I\kWgrpTl;~>
+lMgna'Cu2,,cokprR_&L0_YPN+E3.FiVDX9!1W``";Za"jS[g5!WH3t!!N^ILpuIBf`(sCnGi[p
+I^.i-hu<[enc/e^MS&*Ng&D*9)".G.13/Dfk54THJ,~>
+lMgna=7]#e?F&G[rR_&LD"gO*<,dZ%iVDX9!4_er"B'u^jS[g5!WIlN8d.q-LpuIBf`(sFnO`pW
+J[+/0hu<\<nk'$oMS&*Ng&D*@>OP/f=`TP8k54THJ,~>
+lMgnaM=Z6#Lq)=6rR_&LR.l+7H>n\KiVDX9!6t:h"FZ$4jS[g5!WK+qJ-CC@LpuIBf`(sIn:1Uo
+Z/GK9rrB@qJ-:%Q]BK4HrrM_MmskRbEfRfpqsOK7~>
+lMgna9(Drb'qO.Nr7V)MS+cme"(-AGcLCeqrrMj>pAb;9Wn[='rrB(q!!OutQc\^qf`(rdn,NSg
+U"&`6i;Wd2nc/e^MS&*NgA_3:..7-?&o3#peFW\-s*t~>
+lMgnaIe$)6<iXsGr7V)M\G&T"95&XCcLCeqrrMq*pIYO6Wn[='rrBn38d/=>Qc\^qf`(s"n4Eh"
+U"&`6i;Wdnnk'$oMS&*NgA_3AB(&=r:i1`[eFW\-s*t~>
+lMgnaV"0$=KsTS*r7V)Mc1c_mIrBY)cLCeqrrN"[p4*4Eg\BP'!7L^o"a>*Uam]5]rrCsGJ-:@q
+eF`aurrAGWJ-:%Q]BK4IrrM_UmskUiDh+_7oD\1XJ,~>
+l2La,nGi^uJ_0AernRMSh[oM^"Zg^a]&WVKrr@E>!!G][cgq(jrrM^!qZ$atI]1omfDbhhn,NS8
+P/Q_ciVro@nGi\]MS&*Ng]%<;..7-?"^-)9_s%!bs*t~>
+l2LaSnO`s[R+Lg'rnRMSkZ.@L"^H,.]&WVKrrAee8d&arcgq(jrrMdjqaq!%I]1omfDbi=n4Egb
+P/Q_ciVroGnO`pnMS&*Ng]%<BB(&=r9P/O8_s%!bs*t~>
+l2LapnULdpWn6_9rnRMSmtg^g"a"gF]&WVKrrBb+J-:=kcgq(jrrMkJqg\fhI]1omfDbi[n:1Xj
+P/Q_ciVroLnULacMS&*Ng]%<GPja,,IrBRt_s%!bs*t~>
+l2La_mf3Jfc0G*'hZ!WJ0_YPO*cHY/eare'rrKG/p&G4'MSA<Ph#@ES=Sr.&$ZM!7k53g2!V[H"
+!!@,Di;)@3!0cpQ"@e6[kl'<:!RDnW!!`QtFH!Zbp\sR[J,~>
+l2Lb"mn*_0cKb3(hZ!WMD"gO+;f@8deare'rrL59p.>H_N5"NRh#@ESL\saJ:2l*%k53g2!Vosg
+8csIGi;)@3!4),e"Cd5"kl'<:!Sq/O8d8^GN4.U;rpB`9~>
+l2Lb4mskP/cg(<)hZ!WPR.l+8H>eD6eare'rrLf)p4*9qNkX`Th#@ESWr.ANIW11Uk53g2!W.iE
+J-1P2i;)@3!6Ob]"EoX6kl'<:!U#R4J-L%9N4.U;rpB`9~>
+l2Lb6mJmA6WoNaLi;WiL48/^Z%qL$Wa6WWcrrL"GoDf"aWS$qDh#@ASqu?mQG*pGArn.5NL[G-F
+*1G+@rSmhW/F`]C'md=Lqq_8QP76jZ#!?p\XOZn?m/MS~>
+l2LbAmRdUg[c@#Xi;WiOFSAB3:25-Ga6WWcrrLVIoL]7$WS$qDh#@Ajr(7,pG*pGArn.5NWpWI^
+<h.D'rSmhWC%4du;1c7;qq_8QZ;U*_#$c2'XOZn?m/MS~>
+l2LbJmXPFt^Z4tai;WiRSbIX=I;XD%a6WWcrrM)5oRI'sWS$qDh#@B&r."rpG*pGArn.5N_sMsV
+SBUL$ir9"EnULajLUQ:@h>[MtL@0QrFE3,;eai\*s*t~>
+l2Le`$gmuu"_lNTq>TFS!TQ$2!!`j8GE]]"q#9LW!P8d3!!EFP_<CdOrrM^!r;Zt!I]1upf`)!$%
+.+#t8@.1IroF(ZU[J0d%rThaqYoIR!Rj:$!!`QjEJ147mJQ;MJ,~>
+l2Le`;XR-\9oRZkq>TFS!UF[u8dA('GE]]"q#9LW!RF[88d%hE_<CdOrrMdjrCR3'I]1upf`)!1
+;XI'ZD6r*nroF(Z^@+Yt;2EZhqYoIR!T81h8d8UAKVm&^r9OB5~>
+l2Le`L$jHpJu.)eq>TFS!V)WQJ-UOAGE]]"q#9LW!SrM$J-1tNkkj08!V_<HJ-9k@W7q!urrMA=
+m=5=qZekHUjSo5-mskRmSC6m&ro*kXl(@?n#'=j<VU"T,li2J~>
+l2Le`1@+uE+IqNbr;PjY!NQq/!!`j8G)iuco`"(S!KRBR!!En#dI@(irrN*mrW!*0E/M6hr7V)N
+k:#Wr"BiV(q>TOV!TOm]!!XBfeFNG6roX4^dU*.F!!`^'EeUC6lMBfGJ,~>
+l2Le`D<sju?E`G^r;PjY!Q8+78dA('G)iuco`"(S!O,;g8d&%`dI@(irrN+Lr^m>hE/M6hr7V)N
+mUkcW"F@rIq>TOV!UEkT8d8Ifg%+t;roX4^hi1=t8dA%!EeUC6lMBfGJ,~>
+l2Le`R-]>,MnJ-Cr;PjY!S*)%J-UOAG)iuco`"(S!QTf^J-:FudI@(irrN+prdY0$E/M6hr7V)N
+o9AQk"HgR`q>TOV!V)'7J-Lk8hX^L@roX4^kc]U+J-UREEeUC6lMBfGJ,~>
+kl1Wpl2UuP\*<Varp'LacU[[/#7Og[Nj@=.r9=4^gHY*+";?sNnbh5C!1s/i"YY%db4,DarrL.[
+kl:iY_WU^nkl1\H.-^d<"$1nHoD&7_rpB^entJA8!!jBKG)E<FlM:GEs*t~>
+kl1XGl:M5#_Wgdlrp'LagjJff#>SoTNj@=.r9=4^k'-5c"B;&Hnbh5C!4i)$"^#r8b4,DarrL_X
+kt2)#`TR$qkl1\OB'Mto9Q6ZMoD&7_rpB^ep:Y\:8dJ:.G)E<FlM:GEs*t~>
+kl1Xgl@9&)bN\`urp'LakG.a$#C^T7Nj@=.r9=4^m@Wfs"G<`,nbh5C!6tLn"a>-Wb4,DarrM/?
+l$ro"`om-rkl1\TPj3c)JXEt"oD&7_rpB^eps>Z"J-^L@G)E<FlM:GEs*t~>
+kl1XCkl:ni6)s5Dr;Q-a!Obes!!aBOG`T2_nbh\P!p=J-li71mAC'Z=rnm_]mfWUj<dq"$pY5]L
+k@Xq\!!O@#iUZmFli."#*9@/,%R"Wo_WLXjr;HWoqu?]q"R`jU6O<#Y#mNM1I?UtcmJ?hHs*t~>
+kl1Xckt2.RFM$i3r;Q-a!R-/g8dA7/G`T2_nbh\P!q)IQlq.FTL=5Jbrnm_]nk;YJB7?f5pY5]L
+mZUB.8d/CmiUZmFli."5?KFcc;fn80d-LK(r;HWoqu?]q"S0j;Gu*d!#u"WDI?UtcmJ?hHs*t~>
+kl1Y&l$rthRE4[er;Q-a!SaOFJ-UF>G`T2_nbh\P!qWmSm!o7jT[W<(rnm_]on%^EFFL1BpY5]L
+o<X&3J-Cb8iUZmFli."CNobctL7>Kgh!Xt7r;HWoqu?]q"SUWfTnMc_$%I&:I?UtcmJ?hHs*t~>
+kl1Xrjo>W0FLgr:r;Q]hrr_\pCE)pH#Qcc!I$D(mnbhbR"8fZ2#j;6m&p2Ojq#13Ors8Qg!"4".
+\`WhHrr`,/>6s6h"sSWKo(i7`nG`O+:Yc!S%OaPFC4#l+")V4&([1o+"#"51LnVT=nGDDKJ,~>
+kl1Y/k"5kcR)ngmr;Q]hrr_l6Q<j,T#?l%nPd]98r9XFcr6C*pkXl%ZQ.PO#rVkgV#lSs>:O%c-
+k5=*9"8pH%:ub.P@%Z0Dq>L<^rrLW$h+@lNAp0#qTV;=Y"."da>3SWc93H(ULnVT=nGDDKJ,~>
+kl1Y=k(!\rZIJF>r;Q]hrr_uI[>jg/#Bk'6Pd]98r9XFcrS4H,k^WklY1rI@rVkgV#lU?FJU*-`
+k5=*9"8prVK]@ReN4%R6q>L<^rrM&Uh1,Z`P+AVY]DT;D[B,mVl$s(iGB%k`TtfCPqre!0~>
+kl1YIirBT%89UT9f\5'6gXEg.JlXAl!!j??FG-7#hX^U5rri>TSmN2l!!`TaHEuT*qY^?lkl1qf
+P5mXuR*"grj8T;^o"KuW&DdBn"#k>)j7iEKrr2fps8E,WVIpjV!"&obApB'![*Ih,r9"$0~>
+kl1YOj%9MUHCVIgi8agt"lIY<VMAjU8dJ:+FG-7#hX^U5rri>^\rBhP8dA%-S]'adqY^?lkl1qf
+Z:\ebR*"grj8T;^p!Bdl<Sg=S9Q$98kkFrPrr2fps8E,`^lr'48d\6qCj:]'[*Ih,r9"$0~>
+kl1YSj+%YqTXW(rkj%I!lfd-M^oE[jJ-^OCFG-7#hX^U5rri>fcEE,cJ-UXk[aOL9qY^?lkl1qf
+a+/u#R*"grj8T;^ptireLu*XgJX<ajlhC8Srr2fps8E,gd^+qAJ-pdMEd3>-[*Ih,r9"$0~>
+kl1\_'E.t9!uWR>/0Y_S!!s!!E.*kMb2i9pnc&]PB0Hj[!!j;u<c39EpA=jSrs%?\HC(Yap>u;V
+mrM8Le,Tms7VT7#q#15rG?-I0[/^U:*Ck$qLmt]mi:-UBjo9i~>
+kl1\_=8ker92\kq>?=\L8dS4!EIEtNb2i9pnc&]qPBKs[8dJO<KpJCqpA=jSrs%XYOI*!"p>u;V
+oULMBe4L-THBZA>q#164Sqh/^Zq:^)@WHjPS$L2pnG<.Gs*t~>
+kl1\_M>i#0IsZKhI"$RmJ-g[HEda(Ob2i9pnc&^3Z_!!,J-_""W3j2&pA=jSrs%k@TU2\2p>u;V
+pUR2ae:7sdTX!#;q#16E];h6R["&O2F`VqdS$L2pnG<.Gs*t~>
+kPl&N""mAeHA%6?P`gl>9IUD&!"'6$DL7;9^=_iKrp]pf+OU5l[G:3HlMh(e5JXG;jSS'=!8l'%
+"_?*EpASF+!"BDf88EO)P+oD.hsU:<j8XW~>
+kPl'39O_aWHA%6?P`guRDHoui8d\="E-mM;^=_iKrp]pf@+%XL^>//QlMh(eG/CDtjSS'=!9h^#
+"c:^jpAU)Z8e"Nt@rZgJP+oD.hsU:<j8XW~>
+kPl$\JV\_rHA%6?P`h)bL4Rs,$@R&;H]+W4f^8M6nG`KMdXVG=h!Y%(rs&Fn`3-o:qrRhXn'6Fe
+UsnK"ri`\Z%=WVHG'\h)U:/8&meHb@s*t~>
+kPl74`3,;fU9VGOaMu*/ZDX4D>s'#.huF,g-W"o6NM3o0k4JT>rsjj*?rBa(=BT-B?tX@rEURrJ
+@fKg9?2dY.:..N?3&ipe]\W;\li.1go\7O?n,DGK''ag]>Ydpc<Dub#?=$uKDJsN7mrBIe@UWYO
+>#8$k7R9@(1cB-Rd-gk$=CG3<?>=:jFEI+ps'cCE>#8$b5W^SL*Z>Lni;aGn'I>e:C4(VkQ(kS%
+eDp&nrSdd,~>
+kPl7DbH@%mU9VGOaMu*/ZDX4MG@jiKi(=AN<b6B%NM3o0k4JT>rsbupKm7W^FE2PGEclVPmWo"Y
+FE;JBrG2gSC2@KoB:limpAXCX#6+8Lb1H+]jo5YVTTaqKDJjH4D>eGUF*MutH6IQUFE;JACi!m#
+AnP^cA:h&4mesVLLO+ApIsucpI=-Bgp3I3kFE;D;CM.0e>[(6.:efn@&PQ&'?YFJ-Jr>ngZGY2P
+nG)t@s*t~>
+kPl1Nd&rRrU9VGOaMu*/ZDX4TM1j`9$\*GDFFK4C\^9L2r9jRp_QohtN/NLGK7SQ&It3+;K):'+
+JqSi4L5:\^]\W;\li.1go\7O?n,DGK$hV'6S<&M^KnFr,If4`tJ:W:<K)C-7It3*%K7nuCYgDh:
+bc%;%P)bQ]M2$]RK):&uJ,OirJ)PniIslZiG^+UfMj:$B_pm`9q#01OJ,~>
+kPlCqkfgcZeDTTZn*]Q+inDbu\ZVZjE)//'k5Yr'/PpG7LR"dMdH'lprpB^rqW5\tTq7jJTq\B\
+W2cr$n?*G,XJr+pVPKrZTV%gIT:i'nh"C[3rri2dk3Vm(rt>>)hS#hZSXc7CTVA6ZVPpMrXm`D#
+XfSS%Vl$>eU7e-LrgX7dYg;b9r9MS1rh9RlV5C2lXnAh;XfSM"VPKoXS=5e0P)tZ\I<B=7?VsWm
+5X.Fh/hZiL'fnHM<FKiqJqo;KR\[.!aOT89o_SREs*t~>
+kPlCqkfgcZeDTTZn*]Q+inDbu\ZVZlJT"ppk=Q1Z=_;c'LR"dMdH'lprpB^rqW5\tTq7jJTq\B\
+W2cr$n?*G,XJr+pVPKrZTV%gIT:i'nh"C[3rri2dk3Vm(rt>>)hS#hZSXc7CTVA6ZVPpMrXm`D#
+XfSS%Vl$>eU7e-LrgX7dYg;b9r9MS1rh9RlV5C2lXnAh;XfSM"VPKoXS=5e0P)tZ\K78)gF)>`-
+ARo:X>[6u,'jtK`CN+NIJqo;KR\[.!aOT89o_SREs*t~>
+kPl@pkfgcZeDTTZn*]Q+inDbu\ZVZnN/*#IJ.6pPG'/1fQ)D:BjRW0HmJd^nji+<pSt;RJU8=`c
+WiW>lXqRq=WMcVjUnXNTT:VXHTVf?Vp&=7V"T%QKm.fZA')qU]]r.KnS=Q:FU84Z`W2cr$n#d&#
+XK/:tVP^/`TV%eSS-YakcgLc0lccR3U'7?hVPpPtor]17XJr+pUnOENR[9;&OH#-QKnP&/JUi6#
+J,OiiIK+]pHiJI(IY*?6PFA;N]?&O]m.C/RhuA3~>
+kPkecp?_#0o_SLarY#2,q"*q9hUTfb[&KXYEDekD%J'Q3!tun?:i(N2N0gEMa4TSGqYog\%fGkT
+eBlRie(*%%g=tE>mb\W4gtLK8f[eU&da6=cbK\]*qW\"_rqcEdrT!nhqX31fcd:%eeCE.&g"P39
+hX02AhV?l>g=b-0eC;pncHOJ[jRrNNoA\6Ed*pOtg"bETh]:P.g=b-0eC)[eb/V<5]XY>QY,\Cq
+U7\!GR@';*p662UR%'bEWj&tH`m<8okjS3@rVkXQJ,~>
+kPkecp?_#0o_SLarY#2,q"*q9hUTfb[&KX[J8f%%:\.0j92JYqBQJQQN0gEMa4TSGqYog\%fGkT
+eBlRie(*%%g=tE>mb\W4gtLK8f[eU&da6=cbK\]*qW\"_rqcEdrT!nhqX31fcd:%eeCE.&g"P39
+hX02AhV?l>g=b-0eC;pncHOJ[jRrNNoA\6Ed*pOtg"bETh]:P.g=b-0eC)[eb/V<5]XY>QY,\Cq
+U7\!GR@';*p662UR%'bEWj&tH`m<8okjS3@rVkXQJ,~>
+kPkecp?_#0o_SLarXf&*q"*q9hUTfb[&KX]MhZlRJ.R-UH?a[^JrH%n[`@%`o(r@Orsntsi7--#
+dF6Xsf\5*8hX985h;$`<g"=m+eC)^icHFJblh]lG"TJ8mqYfIS&GkhNda-:edaZguf\,!5gtqGU
+*o>],g=k64f$r3td*BkYdcC*#rU]$tcHt%jf\,'9oA:SEgtLH6f$r-obf[rB^V%(`Ycb"(UnXKP
+S!fY0Q1gFTQC+/7UoLZ.^;eLNhrsP%qYgELs*t~>
+k5PS_r;?Nmp\ts,r;--VlJpXIaM,![TU1[bAm%u-r([l1AT<3OL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+k5PS_r;?Nmp\ts,r;--VlJpXIaM,![TU1^lG]@S9r+Zj_Ed3(cL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+k5PS_r;?Nmp\u!-r;--VlJpXIaM,![TU1atL4b&-J,OiqI1LgZL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+%%EndData
+showpage
+%%Trailer
+end
+%%EOF
diff --git a/templates/Swedish-logo.png b/templates/Swedish-logo.png
new file mode 100755
index 00000000..5edcdfe5
--- /dev/null
+++ b/templates/Swedish-logo.png
Binary files differ
diff --git a/templates/Swedish-packing_list.html b/templates/Swedish-packing_list.html
new file mode 100755
index 00000000..52d25d83
--- /dev/null
+++ b/templates/Swedish-packing_list.html
@@ -0,0 +1,141 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr>
+ <td width=10>
+ </td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th colspan=2>
+ <h4 align=center>F Ö L J E S E D E L</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Dato</th><td width=10> </td><td><%invdate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Nummer</th><td></td><td><%invnumber%></td></tr>
+ </tr>
+
+ <tr>
+ <td>
+ </td>
+ </tr>
+ </td>
+ </table>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Leveransadress:</th>
+ </tr>
+
+ <tr>
+ <td><%shiptoname%>
+ <br><%shiptoaddr1%>
+ <br><%shiptoaddr2%>
+ <br><%shiptoaddr3%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Nummer</th>
+ <th align=left><font color=ffffff>Beskrivning</th>
+ <th><font color=ffffff>Antal</th>
+ <th>&nbsp;</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>Note</td>
+ <td><pre><%notes%></pre></td>
+<%end notes%>
+ <td align=right>
+ <%shippingpoint%>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><font size=-3>
+
+Retur skall sändas förskotts betalade och vara kvar i originalförpackningen.
+<%company%> Är inte ansvarig för skador under transport.
+
+ </font>
+ </td>
+ <td width=150>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+
+
diff --git a/templates/Swedish-packing_list.tex b/templates/Swedish-packing_list.tex
new file mode 100755
index 00000000..81be9ec0
--- /dev/null
+++ b/templates/Swedish-packing_list.tex
@@ -0,0 +1,123 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telefon & <%tel%>\\
+ Telefaks & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%invnumber%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+<%pagebreak 65 27 48%>
+\end{tabular*}
+
+\newpage
+
+\markright{<%company%>\hfill <%invnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rll@{}}
+ \textbf{Nummer} & \textbf{Beskrivning} & \textbf{Antal} &
+ \textbf{Enhet} & \textbf{Box} \\
+<%end pagebreak%>
+
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{2cm}
+
+<%shiptoname%>
+
+<%shiptoaddr1%>
+
+<%shiptoaddr2%>
+
+<%shiptoaddr3%>
+
+<%shiptoaddr4%>
+
+\vspace{3.5cm}
+
+\textbf{F Ö L J E} \parbox{0.3cm}{\hfill} \textbf{S E D E L}
+
+\hfill
+\begin{tabular}[t]{l@{\hspace{0.3cm}}l}
+ \textbf{Datum} & <%invdate%> \\
+ \textbf{Fakturanr.} & <%invnumber%> \\
+ \textbf{Kundid.} & <%customer_id%>
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rll@{}}
+ \textbf{Nummer} & \textbf{Beskriving} & \textbf{Ant.} &
+ \textbf{Enhet} & \textbf{Box} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+\vfill
+\centerline{\textbf{Tack för ditt Köp !}}
+
+\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+\footnotetext[1]{\tiny
+Varor som returneras
+belastes med 10\% returavgift. Returer måste förhandsbestämmas från
+<%company%> innan varorna returneras. Returen måste förhandsbetalas och
+föpackas lämpligt. <%company%> är inte ansvariga för transportskador.
+}
+
+\end{document}
+
diff --git a/templates/Swedish-pick_list.html b/templates/Swedish-pick_list.html
new file mode 100755
index 00000000..080b88b1
--- /dev/null
+++ b/templates/Swedish-pick_list.html
@@ -0,0 +1,153 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>P L O C K &nbsp;&nbsp; L I S T A</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th width=50% align=left><font color=ffffff>Skickas till:</th>
+ <th width=50%>&nbsp;</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ </td>
+
+ <td>
+ <%if shiptocontact%>
+ <br>Attn: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=15% align=left>Faktura #</th>
+ <th width=15% align=left>Order #</th>
+ <th width=10% align=left>Datum</th>
+ <th width=15% align=left nowrap>Kontakt</th>
+ <th width=15% align=left>Lager</th>
+ <th width=10% align=left>Destination</th>
+ <th width=10% align=left>Fraktas via</th>
+ </tr>
+
+ <tr>
+ <td><%invnumber%>&nbsp;</td>
+ <td><%ordnumber%>&nbsp;</td>
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%transdate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+ <td><%warehouse%>&nbsp;</td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Pos</th>
+ <th align=left><font color=ffffff>Nummer</th>
+ <th align=left><font color=ffffff>Beskrivning</th>
+ <th><font color=ffffff>Antal</th>
+ <th><font color=ffffff>Frakt</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Box</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td align=right>[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</td>
+ <td><%unit%></td>
+ <td align=right><%bin%></td>
+ </tr>
+ <%end number%>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+</table>
+
diff --git a/templates/Swedish-pick_list.tex b/templates/Swedish-pick_list.tex
new file mode 100755
index 00000000..a40c8f76
--- /dev/null
+++ b/templates/Swedish-pick_list.tex
@@ -0,0 +1,144 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telefon & <%tel%>\\
+ Fax & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}rlXrcll@{}}
+ \textbf{Pos} & \textbf{Nummer} & \textbf{Beskrivning} &
+ \textbf{Antal} & \textbf{Frakt} & & \textbf{Box} \\
+
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.5\textwidth}{
+ \textbf{Ship To}
+} \hfill
+
+\vspace{0.7cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.5\textwidth}{
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+}
+\parbox[t]{.4\textwidth}{
+ <%shiptocontact%>
+
+ <%if shiptophone%>
+ Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{P L O C K} \parbox{0.3cm}{\hfill} \textbf{L I S T A}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{7}{|X}|} \hline
+ \textbf{Faktura \#} & \textbf{Order \#} & \textbf{Datum} & \textbf{Kontakt}
+ & \textbf{lager} & \textbf{Destination} & \textbf{Fraktas via} \\ [0.5em]
+ \hline
+ <%invnumber%> & <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%transdate%>
+ <%end shippingdate%>
+ & <%employee%>
+ <%if warehouse%>
+ & <%warehouse%>
+ <%end warehouse%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrcll@{}}
+ \textbf{Pos} & \textbf{Nummer} & \textbf{Beskrivning} &
+ \textbf{Antal} & \textbf{Frakt} & & \textbf{Box} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> &
+ <%qty%> & [\hspace{1cm}] & <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+}
+
+\end{document}
+
diff --git a/templates/Swedish-pos_invoice.txt b/templates/Swedish-pos_invoice.txt
new file mode 100755
index 00000000..cfcda0e9
--- /dev/null
+++ b/templates/Swedish-pos_invoice.txt
@@ -0,0 +1,50 @@
+<%company align=center width=40%>
+<%address align=center width=40%>
+
+Till: <%till align=left width=3%> Phone#: <%tel%>
+Cashier: <%employee%>
+Inv Nr/Datum: <%invnumber%> / <%invdate%>
+Utskriven: <%dateprinted%>
+
+ Antal Beskrivning Belopp
+<%foreach number%>
+<%qty align=right width=5%> <%description align=left width=24 offset=6%> <%linetotal align=right width=9%>
+ <%number%> @ <%sellprice%>/<%unit%>
+<%end number%>
+
+Antal Produkter: <%rowcount%>
+<%if taxincluded%>
+ ---------------
+ Belopp Från: <%invtotal align=right width=9%>
+<%end taxincluded%>
+<%if not taxincluded%>
+ ------------
+ Pris ex moms: <%subtotal align=right width=9%>
+<%end taxincluded%>
+<%foreach tax%>
+<%taxdescription align=right width=23%> @ <%taxrate align=right width=2%>%: <%tax align=right width=9%>
+<%end tax%>
+ Gällande Belopp: <%invtotal align=right width=9%>
+<%foreach payment%>
+<%paymentaccount align=right width=29%>: <%payment align=right width=9%> <%currency%>
+<%end payment%>
+<%if change%>
+ Byte: <%change align=right width=9%>
+<%end change%>
+<%if total%>
+ Aktuell Balans: <%total align=right width=9%>
+<%end total%>
+<%if discount%>
+
+<%discount%> % Rabbat avdragen
+<%end discount%>
+
+ Tack för att du handlar hos oss.
+
+<%if taxincluded%>
+Momsen är inkluderad i priset.
+<%end taxincluded%>
+
+
+
+
diff --git a/templates/Swedish-purchase_order.html b/templates/Swedish-purchase_order.html
new file mode 100755
index 00000000..3bd233d8
--- /dev/null
+++ b/templates/Swedish-purchase_order.html
@@ -0,0 +1,201 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <td align=right>
+ <h4>
+ Telefon: <%tel%>
+ <br>Telefax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>I N K Ö P S &nbsp;&nbsp; O R D E R</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Order datum</th><td width=10>&nbsp;</td><td><%orddate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Leverans innan</th><td width=10>&nbsp;</td><td><%reqdate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Ordernr.</th><td>&nbsp;</td><td><%ordnumber%></td></tr>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+ </td>
+ </table>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>To:</th>
+ </tr>
+
+ <tr>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+<br><%address2%>
+<%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+<%country%>
+<%end country%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+<!-- <th align=right><font color=ffffff>No.</th> -->
+ <th align=left><font color=ffffff>Nummer</th>
+ <th align=left><font color=ffffff>Beskrivning</th>
+ <th><font color=ffffff>Ant.</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Pris</th>
+ <th><font color=ffffff>Sum</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+<!-- <td align=right><%runningnumber%>.</td>
+adjust the colspan if you include this to shift subtotal one to the right
+-->
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=6><hr noshade></td>
+ </tr>
+
+ <tr>
+ <th colspan=4 align=right>Pris ex moms</th>
+ <td colspan=2 align=right><%subtotal%></td>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=4 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+<%end tax%>
+
+ <tr>
+ <td colspan=2>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=2>Betalingsfrist <b><%terms%></b> dagar</td>
+ <th colspan=2 align=right>Total</th>
+ <th colspan=2 align=right><%total%></th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>Note</td>
+ <td><pre><%notes%></pre></td>
+<%end notes%>
+ <td align=right>
+ Alle priser i valuta <b><%currency%></b>
+ <br><%shippingpoint%>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><font size=-3>
+
+Betalning skall ske innan <%terms%> dagar från
+fakturadatum. Påminnelseränta räknas med 1.5% per månad från
+fakturadatum. Till desss att det fulla beloppet är betalt.
+
+Vid retur belastas 10% returvärdet. Retur av varor måste
+forhandsgodkännas av <%company%> för att därefter sändas. Varoreturer måste
+sändas förbetalt och med tillräcklig försäkring. <%company%> är
+inte ansvarig for transportskador.
+
+ </font>
+ </td>
+ <td width=150>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Swedish-purchase_order.tex b/templates/Swedish-purchase_order.tex
new file mode 100755
index 00000000..2ae0b64b
--- /dev/null
+++ b/templates/Swedish-purchase_order.tex
@@ -0,0 +1,206 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telefon & <%tel%>\\
+ Telefaks & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%ordnumber%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+<%pagebreak 65 27 48%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Pris ex moms} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markright{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrr@{}}
+ \textbf{Nummer} & \textbf{Beskrivning} & \textbf{Ant.} &
+ \textbf{Enhet} & \textbf{Pris} & \textbf{Sum} \\
+ & carried forward from <%lastpage%> & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{10.5cm}{
+\textbf{Til}
+\vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+Attn: <%contact%>
+\vspace{0.3cm}
+<%end contact%>
+
+<%if vendorphone%>
+Tel: <%vendorphone%>
+<%end vendorphone%>
+
+<%if vendorfax%>
+Fax: <%vendorfax%>
+<%end vendorfax%>
+
+<%email%>
+}
+\parbox[t]{7.5cm}{
+\textbf{Send til}
+\vspace{0.3cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%if shiptoaddress2%>
+<%shiptoaddress2%>
+<%end shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%if shiptocountry%>
+<%shiptocountry%>
+<%end shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+Attn: <%shiptocontact%>
+\vspace{0.3cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{I N K Ö P S} \parbox{0.3cm}{\hfill} \textbf{O R D E R}
+\hfill
+\begin{tabular}[t]{l@{\hspace{0.3cm}}l}
+ \textbf{Datum} & <%orddate%> \\
+<%if reqdate%>
+ \textbf{Leverans innan} & <%reqdate%> \\
+<%end reqdate%>
+ \textbf{Ordrenr.} & <%ordnumber%>
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrr@{}}
+ \textbf{Nummer} & \textbf{Beskrivning} & \textbf{Ant.} &
+ \textbf{Enhet} & \textbf{Pris} & \textbf{Sum} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Pris ex moms} & \textbf{<%subtotal%>} \\
+<%foreach tax%>
+ <%taxdescription%> on <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ \textbf{Total} & \textbf{<%ordtotal%>}\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ Alle priser i valuta \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+
+%\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+%\footnotetext[1]{\tiny }
+
+\end{document}
+
+
diff --git a/templates/Swedish-receipt.tex b/templates/Swedish-receipt.tex
new file mode 100755
index 00000000..ae978b6e
--- /dev/null
+++ b/templates/Swedish-receipt.tex
@@ -0,0 +1,78 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.4cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.0cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+
+\fontfamily{cmss}\fontsize{9pt}{9pt}\selectfont
+
+\parbox[t]{12cm}{
+ <%company%>
+
+ <%address%>}
+\hfill
+\parbox[t]{6cm}{\hfill <%source%>}
+
+\vspace*{0.6cm}
+
+<%text_amount%> \dotfill <%decimal%>/100 \makebox[0.5cm]{\hfill}
+
+\vspace{0.5cm}
+
+\hfill <%datepaid%> \makebox[2cm]{\hfill} <%amount%>
+
+\vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{1.8cm}
+
+<%notes%>
+
+\vspace{0.8cm}
+
+<%company%>
+
+\vspace{0.5cm}
+
+<%name%> \hfill <%datepaid%> \hfill <%source%>
+
+\vspace{0.5cm}
+\begin{tabularx}{\textwidth}{lXrr@{}}
+\textbf{Fakturanr.} & \textbf{Fakturadatum}
+ & \textbf{Skuld} & \textbf{Betalt} \\
+<%foreach invnumber%>
+<%invnumber%> & <%invdate%> \dotfill
+ & <%due%> & <%paid%> \\
+<%end invnumber%>
+\end{tabularx}
+
+\vfill
+
+\end{document}
diff --git a/templates/Swedish-request_quotation.html b/templates/Swedish-request_quotation.html
new file mode 100755
index 00000000..ccf1a1cf
--- /dev/null
+++ b/templates/Swedish-request_quotation.html
@@ -0,0 +1,202 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <td><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58>
+ </td>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>B E G Ä R A N &nbsp;&nbsp; A V &nbsp;&nbsp; K V O T</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>To:</th>
+ <th align=left width=50%><font color=ffffff>Ship To:</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+<br>
+<%if contact%>
+<br>Attn: <%contact%>
+<%end contact%>
+<%if vendorphone%>
+<br>Tel: <%vendorphone%>
+<%end vendorphone%>
+<%if vendorfax%>
+<br>Fax: <%vendorfax%>
+<%end vendorfax%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddr2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+<br>
+<%if shiptocontact%>
+<br>Attn: <%shiptocontact%>
+<%end shiptocontact%>
+<%if shiptophone%>
+<br>Tel: <%shiptophone%>
+<%end shiptophone%>
+<%if shiptofax%>
+<br>Fax: <%shiptofax%>
+<%end shiptofax%>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr><td>&nbsp;</td></tr>
+
+ <tr>
+ <td colspan=2>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left>BAK #</th>
+ <th width=17% align=left>Datum</th>
+ <th width=17% align=left>Begärt av</th>
+ <th width=17% align=left>Kontakt</th>
+ <th width=17% align=left>Destination</th>
+ <th width=15% align=left>Fraktas via</th>
+ </tr>
+
+ <tr>
+ <td><%quonumber%></td>
+ <td><%quodate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height="10"></tr>
+
+ <tr>
+ <td>Var vänlig delge pris och leverans tid för dessa artiklar:</td>
+ </tr>
+
+ <tr height="10"></tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+<!-- <th align=right>No.</th> -->
+ <th align=left>Numner</th>
+ <th align=left><font color=ffffff>Beskrivning</th>
+ <th>Antal</th>
+ <th>&nbsp;</th>
+ <th>Leveras</th>
+ <th>Enhets Pris</th>
+ <th>Utökat</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+<!-- <td align=right><%runningnumber%>.</td>
+other per line item variables available <%reqdate%>
+adjust the colspan if you include this to shift subtotal one to the right
+-->
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=7><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+<%if notes%>
+ <tr valign=top>
+ <td>Notes</td>
+ <td><%notes%></td>
+ </tr>
+<%end notes%>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=70%>&nbsp;</td>
+
+ <td width=30%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Swedish-request_quotation.tex b/templates/Swedish-request_quotation.tex
new file mode 100755
index 00000000..793fd047
--- /dev/null
+++ b/templates/Swedish-request_quotation.tex
@@ -0,0 +1,175 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{pris ex moms} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrr@{}}
+ \textbf{Nummer} & \textbf{Beskrivning} & \textbf{Antal} &
+ \textbf{Enhet} & \textbf{Pris} & \textbf{Utökning} \\
+ & carried forward from <%lastpage%> & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.45\textwidth}{
+\textbf{To}
+\vspace{0.7cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if vendorphone%>
+Tel: <%vendorphone%>
+<%end vendorphone%>
+
+<%if vendorfax%>
+Fax: <%vendorfax%>
+<%end vendorfax%>
+
+<%email%>
+}
+\parbox[t]{.45\textwidth}{
+\textbf{Ship To}
+\vspace{0.7cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{B E G Ä R D K V O T N I N G}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{RFQ \#} & \textbf{Datum} & \textbf{Begärd av} & \textbf{Kontakt} & \textbf{Destination} & \textbf{Fraktas via} \\ [0.5ex]
+ \hline
+ <%quonumber%> & <%quodate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+Var vänlig ange pris och beräknad fraktid på dessa varor:
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}lXrllrr@{}}
+ \textbf{Nummer} & \textbf{Beskrivning} & \textbf{Antal} & &
+ \textbf{Leverans} & \textbf{Enhets pris} & \textbf{Utökat} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> & <%unit%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\hfill
+
+<%notes%>
+
+}
+
+\end{document}
+
diff --git a/templates/Swedish-sales_order.html b/templates/Swedish-sales_order.html
new file mode 100755
index 00000000..1bcb9609
--- /dev/null
+++ b/templates/Swedish-sales_order.html
@@ -0,0 +1,220 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <td align=right>
+ <h4>
+ Telefon: <%tel%>
+ <br>Telefax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>S Ä L J &nbsp;&nbsp; O R D E R</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Order datum</th><td width=10>&nbsp;</td><td><%orddate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Leveranssdatum</th><td width=10>&nbsp;</td><td><%reqdate%></td>
+ </tr>
+
+ <tr>
+ <th align=right>Ordernr.</th><td>&nbsp;</td><td><%ordnumber%></td></tr>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+ </td>
+ </table>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Till:</th>
+ <th align=left><font color=ffffff>Sänds Till:</th>
+ </tr>
+
+ <tr>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+<br><%address2%>
+<%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+<%country%>
+<%end country%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+<br><%shiptoaddress2%>
+<%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+<%shiptocountry%>
+<%end shiptocountry%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+<!-- <th align=right><font color=ffffff>No.</th> -->
+ <th align=left><font color=ffffff>Nummer</th>
+ <th align=left><font color=ffffff>Beskrivning</th>
+ <th><font color=ffffff>Ant.</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Pris</th>
+ <th><font color=ffffff>Rabatt</th>
+ <th><font color=ffffff>Sum</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+<!-- <td align=right><%runningnumber%>.</td>
+adjust the colspan if you include this to shift subtotal one to the right
+-->
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discount%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=7><hr noshade></td>
+ </tr>
+
+ <tr>
+<%if taxincluded%>
+ <th colspan=5 align=right>Total</th>
+ <td colspan=2 align=right><%ordtotal%></td>
+<%end taxincluded%>
+
+<%if not taxincluded%>
+ <th colspan=5 align=right>Subtotal</th>
+ <td colspan=2 align=right><%subtotal%></td>
+<%end taxincluded%>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=5 align=right><%taxdescription%> on <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+<%end tax%>
+
+ <tr>
+ <td colspan=2>&nbsp;</td>
+ <td colspan=5><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=3>Betalingsfrist <b><%terms%></b> dager</td>
+ <th colspan=2 align=right>Total</th>
+ <th colspan=2 align=right><%ordtotal%></th>
+ </tr>
+<%if taxincluded%>
+ <tr>
+ <td colspan=3>Moms är inkluderat i totalpriset</td>
+ </tr>
+<%end taxincluded%>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>Note</td>
+ <td><pre><%notes%></pre></td>
+<%end notes%>
+ <td align=right>
+ Alle priser i valuta <b><%currency%></b>
+ <br><%shippingpoint%>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><font size=-3>
+Vid spesialanpassade ordrar (påkrivet av kunden), skräddersydda produkter, förändrade eller
+uppgraderade produkter tillkommer en 10% avbestillingsskydd. Varor som
+inte kan returneras är konstnaden högre.
+ </font>
+ </td>
+ <td width=150>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Swedish-sales_order.tex b/templates/Swedish-sales_order.tex
new file mode 100755
index 00000000..81534094
--- /dev/null
+++ b/templates/Swedish-sales_order.tex
@@ -0,0 +1,150 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telefon & <%tel%>\\
+ Telefaks & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%ordnumber%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+<%pagebreak 65 27 48%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markright{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Nummer} & \textbf{Beskrivelse} & \textbf{Ant.} &
+ \textbf{Enhet} & \textbf{Pris} & \textbf{Rabatt} & \textbf{Sum} \\
+ & carried forward from <%lastpage%> & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{2cm}
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+\vspace{3.5cm}
+
+\textbf{S Ä L J} \parbox{0.3cm}{\hfill} \textbf{O R D E R}
+\hfill
+\begin{tabular}[t]{l@{\hspace{0.3cm}}l}
+ \textbf{Order datum} & <%orddate%> \\
+<%if reqdate%>
+ \textbf{Leverans innan} & <%reqdate%> \\
+<%end reqdate%>
+ \textbf{Ordrenr.} & <%ordnumber%>
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Nummer} & \textbf{Beskrivelse} & \textbf{Ant.} &
+ \textbf{Enhet} & \textbf{Pris} & \textbf{Rabatt} & \textbf{Sum} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%discount%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Pris ex moms} & \textbf{<%subtotal%>} \\
+<%foreach tax%>
+ <%taxdescription%> on <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ \textbf{Total} & \textbf{<%ordtotal%>}\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ Alla priser i valuta \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+
+\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+\footnotetext[1]{\tiny
+Vid specialanpassade ordrar (Påskrivet av kunden), skräddarsydda produkter, modifierade
+eller uppgraderade så tillkommer det 10\% avbeställnings skydd. Varor som
+inte kan returneres är markerade.
+}
+
+\end{document}
+
diff --git a/templates/Swedish-sales_quotation.html b/templates/Swedish-sales_quotation.html
new file mode 100755
index 00000000..01435f38
--- /dev/null
+++ b/templates/Swedish-sales_quotation.html
@@ -0,0 +1,225 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr valign=top>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+<tr><td colspan=3>&nbsp;</td></tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>R E S E R V A T I O N</h4>
+ </th>
+ </tr>
+
+ </table>
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td>
+ <table width=100%>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+
+ <br>
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr><td>&nbsp;</td></tr>
+
+ <tr>
+ <td colspan=2>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Nummer</th>
+ <th width=17% align=left>Datum</th>
+ <th width=17% align=left>Gäller till</th>
+ <th width=17% align=left nowrap>Kontakt</th>
+ <th width=17% align=left nowrap>Destination</th>
+ <th width=15% align=left nowrap>Fraktas via</th>
+ </tr>
+
+ <tr>
+ <td><%quonumber%></td>
+ <td><%quodate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>No.</th>
+ <th align=left><font color=ffffff>Nummer</th>
+ <th align=left><font color=ffffff>Beskrivning</th>
+ <th><font color=ffffff>Antal</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Pris</th>
+ <th><font color=ffffff>Rabatt %</th>
+ <th><font color=ffffff>Belopp</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%></td>
+
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discountrate%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=8><hr noshade></td>
+ </tr>
+
+ <tr>
+<%if taxincluded%>
+ <th colspan=6 align=right>Totalt</th>
+ <td colspan=2 align=right><%invtotal%></td>
+<%end taxincluded%>
+
+<%if not taxincluded%>
+ <th colspan=6 align=right>Pris ex moms</th>
+ <td colspan=2 align=right><%subtotal%></td>
+<%end taxincluded%>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=6 align=right><%taxdescription%> on <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+<%end tax%>
+
+ <tr>
+ <td colspan=4>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=4>&nbsp;
+<%if terms%>
+ Terms Net <b><%terms%></b> days
+<%end terms%>
+ </td>
+ <th colspan=2 align=right>Totalt</th>
+ <th colspan=2 align=right><%quototal%></th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>Notes</td>
+ <td><%notes%></td>
+<%end notes%>
+ <td align=right>
+ Alla pricer är i <b><%currency%></b>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=60%><font size=-3>
+ Special orders produkter har en 10% avbeställnings kostnad
+ </font>
+ </td>
+ <td width=40%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Swedish-sales_quotation.tex b/templates/Swedish-sales_quotation.tex
new file mode 100755
index 00000000..6e55a4f3
--- /dev/null
+++ b/templates/Swedish-sales_quotation.tex
@@ -0,0 +1,157 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{
+ \parbox[b]{.42\textwidth}{
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telephone & <%tel%>\\
+ Facsimile & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 48%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%quonumber%>}{<%company%>\hfill <%quonumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Nummer} & \textbf{Beskrivning} & \textbf{Antal} &
+ \textbf{Enhet} & \textbf{Pris} & \textbf{Rabatt \%} & \textbf{Belopp} \\
+ & carried forward from <%lastpage%> & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.45\textwidth}{
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%contact%>
+
+\vspace{0.2cm}
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+
+\vspace{1cm}
+
+\textbf{K V O T E R I N G}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Kvot \#} & \textbf{Datum} & \textbf{Giltig till} & \textbf{Kontakt} & \textbf{Fraktdestination} & \textbf{Fraktas via} \\ [0.5ex]
+ \hline
+ <%quonumber%> & <%quodate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabular*}{\textwidth}{@{}lp{\descrwidth}@{\extracolsep\fill}rlrrr@{}}
+ \textbf{Nummer} & \textbf{Beskrivning} & \textbf{Antal} &
+ \textbf{Enhet} & \textbf{Pris} & \textbf{Rabatt \%} & \textbf{Totalt} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%discountrate%> & <%linetotal%> \\
+<%end number%>
+\end{tabular*}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ Subtotal & <%subtotal%> \\
+<%foreach tax%>
+ <%taxdescription%> on <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ Total & <%quototal%>\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ Alla pricer i \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%notes%>
+
+}
+
+\vfill
+
+\end{document}
+
+
diff --git a/templates/Swedish-statement.html b/templates/Swedish-statement.html
new file mode 100755
index 00000000..1b9496cd
--- /dev/null
+++ b/templates/Swedish-statement.html
@@ -0,0 +1,120 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+ <td align=right>
+ <h4>
+ Telefon: <%tel%>
+ <br>Telefax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+ <tr>
+ <th colspan=3><h4>Ö V E R S I K T</h4></th>
+ </tr>
+ <tr>
+ <td colspan=3 align=right><%statementdate%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+<br><%address2%>
+<%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+<%country%>
+<%end country%>
+ <br>
+<%if customerphone%>
+ <br>Telefon: <%customerphone%>
+<%end customerphone%>
+<%if customerfax%>
+ <br>Telefax: <%customerfax%>
+<%end customerfax%>
+<%if email%>
+ <br><%email%>
+<%end email%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr height=10></tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr>
+ <th align=left>Faktura #</th>
+ <th width=15%>Datum</th>
+ <th width=15%>Betalningsfrist</th>
+ <th width=10%>Nuvarande</th>
+ <th width=10%>30</th>
+ <th width=10%>60</th>
+ <th width=10%>90+</th>
+ </tr>
+<%foreach invnumber%>
+ <tr>
+ <td><%invnumber%></td>
+ <td><%invdate%></td>
+ <td><%duedate%></td>
+ <td align=right><%c0%></td>
+ <td align=right><%c30%></td>
+ <td align=right><%c60%></td>
+ <td align=right><%c90%></td>
+ </tr>
+<%end invnumber%>
+ <tr>
+ <td colspan=7><hr size=1></td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <th align=right><%c0total%></td>
+ <th align=right><%c30total%></td>
+ <th align=right><%c60total%></td>
+ <th align=right><%c90total%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr height=10></tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td align=right>
+ <table width=50%>
+ <tr>
+ <th>Totalt utestående</th>
+ <th align=right><%total%></th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td><hr noshade></td>
+ </tr>
+ <tr height=20></tr>
+</table>
+
diff --git a/templates/Swedish-statement.tex b/templates/Swedish-statement.tex
new file mode 100755
index 00000000..e05c1232
--- /dev/null
+++ b/templates/Swedish-statement.tex
@@ -0,0 +1,139 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage[latin1]{inputenc}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-2.0cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.5cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+
+\newsavebox{\hdr}
+\sbox{\hdr}{
+ \fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+ \parbox{\textwidth}{
+ \parbox[b]{12cm}{
+ <%company%>
+
+ <%address%>}\hfill
+ \begin{tabular}[b]{rrr@{}}
+ Tel. & <%tel%>\\
+ Faks & <%fax%>
+ \end{tabular}
+
+ \rule[1.5ex]{\textwidth}{0.5pt}
+ }
+}
+
+\fontfamily{cmss}\fontshape{n}\selectfont
+
+\markboth{<%company%>\hfill <%statementdate%>}{\usebox{\hdr}}
+
+\pagestyle{myheadings}
+%\thispagestyle{empty} use this with letterhead paper
+
+<%pagebreak 65 27 48%>
+\end{tabular*}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markright{<%company%>\hfill <%statementdate%>}
+
+\vspace*{-12pt}
+
+\begin{tabular*}{\textwidth}{@{}l@{\extracolsep\fill}ccrrrr@{}}
+ \textbf{Faktura \#} & \textbf{Datum} & \textbf{Från} &
+ \textbf{Aktuell} & \textbf{30} & \textbf{60} & \textbf{90+} \\
+ carried forward from <%lastpage%> & & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{1.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{10.5cm}{
+
+<%name%>
+
+<%address1%>
+
+<%if address2%>
+<%address2%>
+<%end address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%if country%>
+<%country%>
+<%end country%>
+
+}
+\parbox[t]{7.5cm}{
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{Ö V E R S I K T} \hfill
+
+\hfill <%statementdate%>
+
+\vspace{2cm}
+
+\begin{tabular*}{\textwidth}{@{}l@{\extracolsep\fill}ccrrrr@{}}
+ \textbf{Faktura \#} & \textbf{Datum} & \textbf{Frist} &
+ \textbf{Skyldig} & \textbf{30} & \textbf{60} & \textbf{90+} \\
+<%foreach invnumber%>
+ <%invnumber%> & <%invdate%> & <%duedate%> &
+ <%c0%> & <%c30%> & <%c60%> & <%c90%> \\
+<%end invnumber%>
+\textbf{Subtotal} & & & <%c0total%> & <%c30total%> & <%c60total%> & <%c90total%>
+\end{tabular*}
+\rule{\textwidth}{1pt}
+
+\vspace{1cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{}}
+ \textbf{Total skuld} & <%total%>
+\end{tabularx}
+
+\vfill
+
+\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+\footnotetext[1]{\tiny
+}
+
+\end{document}
+
diff --git a/templates/Swedish-timecard.html b/templates/Swedish-timecard.html
new file mode 100755
index 00000000..e9e0b7e2
--- /dev/null
+++ b/templates/Swedish-timecard.html
@@ -0,0 +1,146 @@
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src="sql-ledger.png" border=0 width=84 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>T I D &nbsp;&nbsp; K O R T</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=left>Anställd</th>
+ <td><%employee%></td>
+ </tr>
+ <tr>
+ <th align=left>ID</th>
+ <td><%employee_id%></td>
+ </tr>
+ </table>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Kort ID</th>
+ <td><%id%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Arbetat Datum</th>
+ <td><%transdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Tid In</th>
+ <td><%checkedin%></td>
+ </tr>
+ <tr>
+ <th align=left>Tid Ut</th>
+ <td><%checkedout%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Timmar</th>
+ <td><%qty%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=bottom>
+ <td>
+ <table>
+ <tr valign=top>
+ <th align=left>Project/Jobb #</th>
+ <td><%projectnumber%></td>
+ </tr>
+ <tr>
+ <th align=left>Beskrivning</th>
+ <td><%projectdescription%></td>
+ </tr>
+ <tr valign=top>
+ <th align=left>Arbets/Service kod</th>
+ <td><%partnumber%></td>
+ </tr>
+ <tr>
+ <th align=left>Beskrivning</th>
+ <td><%description%></td>
+ </tr>
+ </table>
+ </td>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Enhets Pris</th>
+ <td><%sellprice%></td>
+ </tr>
+ <tr>
+ <th align=right>Totalt</th>
+ <td><%total%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+<%if notes%>
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%notes%>
+ </td>
+ </tr>
+<%end notes%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Swedish-timecard.tex b/templates/Swedish-timecard.tex
new file mode 100755
index 00000000..96d819b2
--- /dev/null
+++ b/templates/Swedish-timecard.tex
@@ -0,0 +1,71 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-1cm,left=2cm,right=1cm]{geometry}
+\usepackage{graphicx}
+\setlength{\parindent}{0pt}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Tel: & <%tel%>\\
+ Fax: & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+\centerline{\textbf{T I D}\hspace{0.5cm}\textbf{K O R T}}
+
+\vspace*{0.5cm}
+
+\begin{tabular}[t]{ll}
+ \textbf{Anstäld} & <%employee%> \\
+ \textbf{ID} & <%employee_id%> \\
+\end{tabular}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Kort ID} & <%id%> \\
+ \textbf{Datum Arbetat} & <%transdate%> \\
+ \textbf{Tid In} & <%checkedin%> \\
+ \textbf{Tid ut} & <%checkedout%> \\
+ \textbf{Timmar Arbetat} & <%qty%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular}[b]{ll}
+ \textbf{Project/Jobb \#} & <%projectnumber%> \\
+ \textbf{Beskrivning} & <%projectdescription%> \\
+ \textbf{Arbete/Service kod} & <%partnumber%> \\
+ \textbf{Beskrivning} & <%description%> \\
+\end{tabular}
+\hfill
+\begin{tabular}[b]{lr}
+ \textbf{Enhetspris} & <%sellprice%> \\
+ \textbf{Totalt} & <%total%> \\
+\end{tabular}
+
+\vspace{0.3cm}
+
+<%notes%>
+
+\end{document}
+
+
diff --git a/templates/Swedish-work_order.html b/templates/Swedish-work_order.html
new file mode 100755
index 00000000..cb098a25
--- /dev/null
+++ b/templates/Swedish-work_order.html
@@ -0,0 +1,174 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=bottom>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=80 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%>
+ <br>Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>A R B E T S &nbsp;&nbsp; O R D E R</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>Mottagare</th>
+ <th align=left width=50%><font color=ffffff>Sänds Till</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%>
+ <br><%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%>
+ <br><%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ <br>
+ <%if shiptocontact%>
+ <br><%shiptocontact%>
+ <%end shiptocontact%>
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+ <%if shiptoemail%>
+ <br><%shiptoemail%>
+ <%end shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Order Nummer</th>
+ <th width=17% align=left>Order Datum</th>
+ <th width=17% align=left>Utfört av</th>
+ <th width=17% align=left nowrap>Säljare</th>
+ <th width=17% align=left nowrap>Frakt Punkt</th>
+ <th width=15% align=left nowrap>Fraktas Via</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%></td>
+ <td><%orddate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>Nr.</th>
+ <th align=left><font color=ffffff>Nummer</th>
+ <th align=left><font color=ffffff>Beskrivning</th>
+ <th><font color=ffffff>Antal</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Serie Nr.</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%>.</td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td><%serialnumber%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <td colspan=6><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <%if notes%>
+ <td><%notes%></td>
+ <%end notes%>
+ </tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Swedish-work_order.tex b/templates/Swedish-work_order.tex
new file mode 100755
index 00000000..7bda9756
--- /dev/null
+++ b/templates/Swedish-work_order.tex
@@ -0,0 +1,177 @@
+\documentclass[twoside]{scrartcl}
+\usepackage[frame]{xy}
+\usepackage{tabularx}
+\usepackage{graphicx}
+\setlength{\voffset}{0.5cm}
+\setlength{\hoffset}{-1.9cm}
+\setlength{\topmargin}{0cm}
+\setlength{\headheight}{0.5cm}
+\setlength{\headsep}{1cm}
+\setlength{\topskip}{0pt}
+\setlength{\oddsidemargin}{1.0cm}
+\setlength{\evensidemargin}{1.0cm}
+\setlength{\textwidth}{19.2cm}
+\setlength{\textheight}{24.7cm}
+\setlength{\footskip}{1cm}
+\setlength{\parindent}{0pt}
+\renewcommand{\baselinestretch}{1}
+\begin{document}
+
+\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\vspace*{-1.3cm}
+
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{sql-ledger}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Telefon & <%tel%>\\
+ Fax & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\vspace*{-12pt}
+
+\begin{tabularx}{\textwidth}{@{}rlXrll@{}}
+ \textbf{No.} & \textbf{Nummer} & \textbf{Beskrivning} & \textbf{Antal} &
+ & \textbf{Serial Number} \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{1cm}{\hfill}
+\parbox[t]{.45\textwidth}{
+\textbf{To}
+\vspace{0.7cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%> <%state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\parbox[t]{.45\textwidth}{
+\textbf{Ship To}
+\vspace{0.7cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{A R B E T S} \parbox{0.3cm}{\hfill} \textbf{O R D E R}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Order Datum} & \textbf{} & \textbf{Säljare} & \textbf{Destination} & \textbf{Fraktas Via} \\ [0.5em]
+ \hline
+ <%ordnumber%> & <%orddate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrll@{}}
+ \textbf{No.} & \textbf{Nummer} & \textbf{Beskrivning} & \textbf{Antal} &
+ & \textbf{Serie Nummer} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%serialnumber%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{12pt}
+
+<%if notes%>
+ <%notes%>
+<%end if%>
+
+}
+
+\vfill
+
+\vspace{1cm}
+
+\rule{\textwidth}{0.5pt}
+
+\end{document}
+
+
+
+
+
+
diff --git a/templates/Traditional_Chinese_Big5-ap_transaction.html b/templates/Traditional_Chinese_Big5-ap_transaction.html
new file mode 100755
index 00000000..fd5973f2
--- /dev/null
+++ b/templates/Traditional_Chinese_Big5-ap_transaction.html
@@ -0,0 +1,250 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%><br>
+ <%address%>
+ </h4>
+ </td>
+
+ <th><img src=sql-ledger.png border=0 width=84 height=58></th>
+
+ <td align=right>
+ <h4>
+ ¹q¸Ü¡G <%tel%><br>
+ ¶Ç¯u¡G <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>À³¥I±b - ¥æ©ö</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if vendorphone%>
+ <br>¹q¸Ü¡G <%vendorphone%>
+ <%end vendorphone%>
+
+ <%if vendorfax%>
+ <br>¶Ç¯u¡G <%vendorfax%>
+ <%end vendorfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+
+ <%if vendortaxnumber%>
+ <p>µ|°È½s¸¹¡G <%vendortaxnumber%>
+ <%end vendortaxnumber%>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>µo²¼½s¸¹</th>
+ <td><%invnumber%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>¤é´Á</th>
+ <td><%invdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>¨ì´Á¤é</th>
+ <td><%duedate%></td>
+ </tr>
+ <%if ponumber%>
+ <tr>
+ <th align=left>±ÄÁʳæ½s¸¹</th>
+ <td><%ponumber%>&nbsp;</td>
+ </tr>
+ <%end ponumber%>
+ <%if ordnumber%>
+ <tr>
+ <th align=left>­q³æ½s¸¹</th>
+ <td><%ordnumber%>&nbsp;</td>
+ </tr>
+ <%end ordnumber%>
+ <tr>
+ <th align=left nowrap>¾­û</th>
+ <td><%employee%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <%foreach account%>
+ <tr valign=top>
+ <td><%accno%></td>
+ <td><%account%></td>
+ <td width=10>&nbsp</td>
+ <td align=right><%amount%></td>
+ <td width=10>&nbsp</td>
+ <td><%description%></td>
+ <td width=10>&nbsp</td>
+ <td><%projectnumber%></td>
+ </tr>
+ <%end account%>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=2 align=right>¦X­p</th>
+ <td width=10>&nbsp</td>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>¤p­p</th>
+ <td width=10>&nbsp</td>
+ <td align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=2 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td width=10>&nbsp</td>
+ <td align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if not taxincluded%>
+ <tr>
+ <th colspan=2 align=right>¦X­p</th>
+ <td width=10>&nbsp</td>
+ <td align=right><%invtotal%></td>
+ </tr>
+ <%end taxincluded%>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%text_amount%> ***** <%decimal%>/100 <%currency%>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%notes%>
+ </td>
+ </tr>
+
+ <%if paid_1%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <tr>
+ <th>¥I´Ú</th>
+ </tr>
+
+ <tr>
+ <td>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th>¤é´Á</th>
+ <th>&nbsp;</th>
+ <th>¨Ó·½</th>
+ <th>³Æµù</th>
+ <th>ª÷ÃB</th>
+ </tr>
+ <%end paid_1%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td><%paymentmemo%></td>
+ <td align=right><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid_1%>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <%end paid_1%>
+
+ <tr height=10></tr>
+
+ <%if taxincluded%>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <th colspan=3 align=left><font size=-2>¤W­zµ|¶µ¤w¥]¬A¦b»ù®æ¤º¡C</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Traditional_Chinese_Big5-ap_transaction.tex b/templates/Traditional_Chinese_Big5-ap_transaction.tex
new file mode 100755
index 00000000..5cd134cc
--- /dev/null
+++ b/templates/Traditional_Chinese_Big5-ap_transaction.tex
@@ -0,0 +1,111 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+\setlength{\parindent}{0pt}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+\centerline{\textbf{A P} \hspace{0.3cm} \textbf{T R A N S A C T I O N}}
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state>
+\hspace{-0.1cm}, <%state%>
+<%end state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if vendorphone%>
+Tel: <%vendorphone%>
+<%end vendorphone%>
+
+<%if vendorfax%>
+Fax: <%vendorfax%>
+<%end vendorfax%>
+
+<%email%>
+
+<%if vendortaxnumber%>
+Tax Number: <%vendortaxnumber%>
+<%end vendortaxnumber%>
+}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Invoice \#} & <%invnumber%> \\
+ \textbf{Date} & <%invdate%> \\
+ \textbf{Due} & <%duedate%> \\
+ <%if ponumber%>
+ \textbf{PO \#} & <%ponumber%> \\
+ <%end ponumber%>
+ <%if ordnumber%>
+ \textbf{Order \#} & <%ordnumber%> \\
+ <%end ordnumber%>
+ \textbf{Employee} & <%employee%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}[t]{@{}llrX@{\hspace{1cm}}l@{}}
+<%foreach amount%>
+ <%accno%> & <%account%> & <%amount%> & <%description%> & <%projectnumber%> \\
+<%end amount%>
+
+ \multicolumn{2}{r}{\textbf{Subtotal}} & <%subtotal%> & \\
+<%foreach tax%>
+ \multicolumn{2}{r}{\textbf{<%taxdescription%> @ <%taxrate%> \%}} & <%tax%> & \\
+<%end tax%>
+
+ \multicolumn{2}{r}{\textbf{Total}} & <%invtotal%> & \\
+
+\end{tabularx}
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100 <%currency%>
+
+<%if notes%>
+\vspace{0.3cm}
+<%notes%>
+<%end notes%>
+
+\vspace{0.3cm}
+
+<%if paid_1%>
+\begin{tabular}{@{}llllr@{}}
+ \multicolumn{5}{c}{\textbf{Payments}} \\
+ \hline
+ \textbf{Date} & & \textbf{Source} & \textbf{Memo} & \textbf{Amount} \\
+<%end paid_1%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%paymentmemo%> & <%payment%> \\
+<%end payment%>
+<%if paid_1%>
+\end{tabular}
+<%end paid_1%>
+
+\end{document}
+
diff --git a/templates/Traditional_Chinese_Big5-ar_transaction.html b/templates/Traditional_Chinese_Big5-ar_transaction.html
new file mode 100755
index 00000000..95dd50a2
--- /dev/null
+++ b/templates/Traditional_Chinese_Big5-ar_transaction.html
@@ -0,0 +1,256 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%><br>
+ <%address%>
+ </h4>
+ </td>
+
+ <th><img src=sql-ledger.png border=0 width=84 height=58></th>
+
+ <td align=right>
+ <h4>
+ ¹q¸Ü¡G <%tel%><br>
+ ¶Ç¯u¡G <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>À³¦¬±b - ¥æ©ö</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>¹q¸Ü¡G <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>¶Ç¯u¡G <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+
+ <%if customertaxnumber%>
+ <br>µ|°È½s¸¹¡G <%customertaxnumber%>
+ <%end customertaxnumber%>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>µo²¼½s¸¹</th>
+ <td><%invnumber%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>¤é´Á</th>
+ <td><%invdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>¨ì´Á¤é</th>
+ <td><%duedate%></td>
+ </tr>
+ <%if ponumber%>
+ <tr>
+ <th align=left>±ÄÁʳæ½s¸¹</th>
+ <td><%ponumber%>&nbsp;</td>
+ </tr>
+ <%end ponumber%>
+ <%if ordnumber%>
+ <tr>
+ <th align=left>­q³æ½s¸¹</th>
+ <td><%ordnumber%>&nbsp;</td>
+ </tr>
+ <%end ordnumber%>
+ <tr>
+ <th align=left nowrap>¾P°â¤H­û</th>
+ <td><%employee%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <%foreach account%>
+ <tr valign=top>
+ <td><%accno%></td>
+ <td><%account%></td>
+ <td width=10>&nbsp</td>
+ <td align=right><%amount%></td>
+ <td width=10>&nbsp</td>
+ <td><%description%></td>
+ <td width=10>&nbsp</td>
+ <td><%projectnumber%></td>
+ </tr>
+ <%end account%>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=2 align=right>¦X­p</th>
+ <td width=10>&nbsp</td>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>¤p­p</th>
+ <td width=10>&nbsp</td>
+ <td align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=2 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td width=10>&nbsp</td>
+ <td align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if not taxincluded%>
+ <tr>
+ <th colspan=2 align=right>¦X­p</th>
+ <td width=10>&nbsp</td>
+ <td align=right><%invtotal%></td>
+ </tr>
+ <%end taxincluded%>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%text_amount%> ***** <%decimal%>/100 <%currency%>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%notes%>
+ </td>
+ </tr>
+
+ <%if paid_1%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <tr>
+ <th>¥I´Ú</th>
+ </tr>
+
+ <tr>
+ <td>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th>¤é´Á</th>
+ <th>&nbsp;</th>
+ <th>¨Ó·½</th>
+ <th>ª÷ÃB</th>
+ </tr>
+ <%end paid_1%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td align=right><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid_1%>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <%end paid_1%>
+
+ <tr height=10></tr>
+
+ <%foreach tax%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <th colspan=9 align=left><font size=-2><%taxdescription%> µù¥U <%taxnumber%></th>
+ </tr>
+ <%end tax%>
+
+ <%if taxincluded%>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <th colspan=3 align=left><font size=-2>¤W­zµ|¶µ¤w¥]¬A¦b»ù®æ¤º¡C</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Traditional_Chinese_Big5-ar_transaction.tex b/templates/Traditional_Chinese_Big5-ar_transaction.tex
new file mode 100755
index 00000000..1c3c44f3
--- /dev/null
+++ b/templates/Traditional_Chinese_Big5-ar_transaction.tex
@@ -0,0 +1,118 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+\setlength{\parindent}{0pt}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+\centerline{\textbf{A R} \hspace{0.3cm} \textbf{T R A N S A C T I O N}}
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+
+<%if customertaxnumber%>
+Tax Number: <%customertaxnumber%>
+<%end customertaxnumber%>
+}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Invoice \#} & <%invnumber%> \\
+ \textbf{Date} & <%invdate%> \\
+ \textbf{Due} & <%duedate%> \\
+ <%if ponumber%>
+ \textbf{PO \#} & <%ponumber%> \\
+ <%end ponumber%>
+ <%if ordnumber%>
+ \textbf{Order \#} & <%ordnumber%> \\
+ <%end ordnumber%>
+ \textbf{Employee} & <%employee%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}[t]{@{}llrX@{\hspace{1cm}}l@{}}
+<%foreach amount%>
+ <%accno%> & <%account%> & <%amount%> & <%description%> & <%projectnumber%> \\
+<%end amount%>
+
+ \multicolumn{2}{r}{\textbf{Subtotal}} & <%subtotal%> & \\
+<%foreach tax%>
+ \multicolumn{2}{r}{\textbf{<%taxdescription%> @ <%taxrate%> \%}} & <%tax%> & \\
+<%end tax%>
+
+ \multicolumn{2}{r}{\textbf{Total}} & <%invtotal%> & \\
+
+\end{tabularx}
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100 <%currency%>
+
+<%if notes%>
+\vspace{0.3cm}
+<%notes%>
+<%end notes%>
+
+\vspace{0.3cm}
+
+<%if paid_1%>
+\begin{tabular}{@{}lllr@{}}
+ \multicolumn{5}{c}{\textbf{Payments}} \\
+ \hline
+ \textbf{Date} & & \textbf{Source} & \textbf{Amount} \\
+<%end paid_1%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%payment%> \\
+<%end payment%>
+<%if paid_1%>
+\end{tabular}
+<%end paid_1%>
+
+\vspace{0.5cm}
+
+<%foreach tax%>
+\textbf{\scriptsize <%taxdescription%> Registration <%taxnumber%>} \\
+<%end tax%>
+
+\end{document}
+
diff --git a/templates/Traditional_Chinese_Big5-balance_sheet.html b/templates/Traditional_Chinese_Big5-balance_sheet.html
new file mode 100755
index 00000000..a31a41dd
--- /dev/null
+++ b/templates/Traditional_Chinese_Big5-balance_sheet.html
@@ -0,0 +1,110 @@
+
+<body>
+
+<h2 align=center>
+<%company%>
+<br><%address%>
+
+<p>¸ê²£­t¶Åªí
+<br>´Á¶¡ <%this_period%>
+</h2>
+
+<%if department%>
+<h4>³¡ªù¡G <%department%></h4>
+<%end department%>
+
+<table border=0>
+<tr>
+ <th align=left width=400 colspan=2>¸ê²£<br><hr align=left width=250 size=5 noshade></th>
+ <th><%this_period%></th>
+ <th><%last_period%></th>
+</tr>
+
+<%foreach asset_account%>
+<tr>
+ <td> </td>
+ <td><%asset_account%></td>
+ <td align=right><%asset_this_period%></td>
+ <td align=right><%asset_last_period%></td>
+</tr>
+<%end asset_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>¸ê²£¦X­p</th>
+ <td align=right><%total_assets_this_period%><hr noshade size=2></td>
+ <td align=right><%total_assets_last_period%><hr noshade size=2></td>
+</tr>
+
+<tr>
+ <th align=left colspan=4>­t¶Å<b><hr align=left width=250 size=5 noshade></th>
+</tr>
+
+<%foreach liability_account%>
+<tr>
+ <td></td>
+ <td><%liability_account%></td>
+ <td align=right><%liability_this_period%></td>
+ <td align=right><%liability_last_period%></td>
+</tr>
+<%end liability_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td></td>
+ <th align=left>­t¶Å¦X­p</th>
+ <td align=right><%total_liabilities_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_liabilities_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr>
+ <th align=left colspan=4>ªÑªFÅv¯q<br><hr align=left width=250 size=5 noshade></th>
+</tr>
+
+<%foreach equity_account%>
+<tr>
+ <td></td>
+ <td><%equity_account%></td>
+ <td align=right><%equity_this_period%></td>
+ <td align=right><%equity_last_period%></td>
+</tr>
+<%end equity_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td></td>
+ <th align=left>ªÑªFÅv¯q¦X­p</th>
+ <td align=right><%total_equity_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_equity_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>­t¶Å¤ÎªÑªFÅv¯q¦X­p</th>
+ <td align=right><%total_this_period%><br><hr noshade size=2></td>
+ <td align=right><%total_last_period%><br><hr noshade size=2></td>
+</tr>
+</table>
+
+
+
+
+
+
+
+
+
diff --git a/templates/Traditional_Chinese_Big5-bin_list.html b/templates/Traditional_Chinese_Big5-bin_list.html
new file mode 100755
index 00000000..85af4ce2
--- /dev/null
+++ b/templates/Traditional_Chinese_Big5-bin_list.html
@@ -0,0 +1,189 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=64 height=58></th>
+
+ <th align=right>
+ <h4>
+ ¹q¸Ü¡G <%tel%>
+ <br>¶Ç¯u¡G <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>½c¦Cªí</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% cellspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>±q</th>
+ <th align=left width=50%><font color=ffffff>¥I¹B©¹</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+<br><%address2%>
+<%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+<%country%>
+<%end country%>
+ <br>
+
+ <%if contact%>
+ <br>­P¡G <%contact%>
+ <%end contact%>
+
+ <%if vendorphone%>
+ <br>¹q¸Ü¡G <%vendorphone%>
+ <%end vendorphone%>
+
+ <%if vendorfax%>
+ <br>¶Ç¯u¡G <%vendorfax%>
+ <%end vendorfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+<br><%shiptoaddress2%>
+<%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+<%shiptocountry%>
+<%end shiptocountry%>
+
+ <br>
+ <%if shiptocontact%>
+ <br>­P¡G <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>¹q¸Ü¡G <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>¶Ç¯u¡G <%shiptofax%>
+ <%end shiptofax%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>­q³æ½s¸¹</th>
+ <th width=17% align=left nowrap>¤é´Á</th>
+ <th width=17% align=left nowrap>Ápµ¸¤H</th>
+ <%if warehouse%>
+ <th width=17% align=left nowrap>­Ü®w</th>
+ <%end warehouse%>
+ <th width=17% align=left>¥I¹BÂI</th>
+ <th width=15% align=left>¥I¹B¤½¥q</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%>&nbsp;</td>
+
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%orddate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+
+ <%if warehouse%>
+ <td><%warehouse%></td>
+ <%end warehouse%>
+
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>¦ì¸m</th>
+ <th align=left><font color=ffffff>¸¹½X</th>
+ <th align=left><font color=ffffff>´y¥º</th>
+ <th><font color=ffffff>§Ç¸¹</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>¼Æ¶q</th>
+ <th><font color=ffffff>¦¬¨ì</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>½c</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%></td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td><%serialnumber%></td>
+ <td><%deliverydate%></td>
+ <td align=right><%qty%></td>
+ <td align=right><%ship%></td>
+ <td><%unit%></td>
+ <td><%bin%></td>
+ </tr>
+ <%end number%>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+</table>
+
diff --git a/templates/Traditional_Chinese_Big5-bin_list.tex b/templates/Traditional_Chinese_Big5-bin_list.tex
new file mode 100755
index 00000000..1bc85d66
--- /dev/null
+++ b/templates/Traditional_Chinese_Big5-bin_list.tex
@@ -0,0 +1,114 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrll@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Recd} & & \textbf{Bin} \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+\textbf{From}
+\vspace{0.3cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+}
+\parbox[t]{.5\textwidth}{
+\textbf{Ship To}
+\vspace{0.3cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{B I N} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Date} & \textbf{Contact}
+ <%if warehouse%>
+ & \textbf{Warehouse}
+ <%end warehouse%>
+ & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+
+ <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%orddate%>
+ <%end shippingdate%>
+ & <%employee%>
+ <%if warehouse%>
+ & <%warehouse%>
+ <%end warehouse%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrll@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Recd} & & \textbf{Bin} \\
+
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%serialnumber%> &
+ <%deliverydate%> & <%qty%> & <%ship%> & <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabularx}
+
+
+\rule{\textwidth}{2pt}
+
+\end{document}
+
diff --git a/templates/Traditional_Chinese_Big5-check.tex b/templates/Traditional_Chinese_Big5-check.tex
new file mode 100755
index 00000000..908f0e79
--- /dev/null
+++ b/templates/Traditional_Chinese_Big5-check.tex
@@ -0,0 +1,77 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{9pt}{9pt}\selectfont
+
+\parbox[t]{12cm}{
+ <%company%>
+
+ <%address%>}
+\hfill
+\parbox[t]{6cm}{\hfill <%source%>}
+
+\vspace*{0.6cm}
+
+<%text_amount%> \dotfill <%decimal%>/100 \makebox[0.5cm]{\hfill}
+
+\vspace{0.5cm}
+
+\hfill <%datepaid%> \makebox[2cm]{\hfill} <%amount%>
+
+% different date format for datepaid
+% <%DD%><%MM%><%YYYY%>
+
+\vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{1.8cm}
+
+<%memo%>
+
+\vspace{0.8cm}
+
+<%company%>
+
+\vspace{0.5cm}
+
+<%name%> \hfill <%datepaid%> \hfill <%source%>
+
+\vspace{0.5cm}
+\begin{tabularx}{\textwidth}{lXrr@{}}
+\textbf{Invoice \#} & \textbf{Invoice Date}
+ & \textbf{Amount Due} & \textbf{Applied} \\
+<%foreach invnumber%>
+<%invnumber%> & <%invdate%> \dotfill
+ & <%due%> & <%paid%> \\
+<%end invnumber%>
+\end{tabularx}
+
+\vspace{1cm}
+
+<%memo%>
+
+\vfill
+
+\end{document}
+
diff --git a/templates/Traditional_Chinese_Big5-income_statement.html b/templates/Traditional_Chinese_Big5-income_statement.html
new file mode 100755
index 00000000..39bdad01
--- /dev/null
+++ b/templates/Traditional_Chinese_Big5-income_statement.html
@@ -0,0 +1,81 @@
+
+<body>
+
+<h2 align=center>
+<%company%>
+<br><%address%>
+
+<p>·l¯qªí
+<br><%period%>
+</h2>
+
+<%if department%>
+<h4>³¡ªù¡G <%department%></h4>
+<%end department%>
+
+<%if projectnumber%>
+<h4>¤è®×½s¸¹¡G <%projectnumber%></h4>
+<%end projectnumber%>
+
+<table width=100% border=0>
+<tr>
+ <th width=400 align=left colspan=2>¦¬¤J<br><hr width=300 size=5 align=left noshade></th>
+ <th><%this_period%></th>
+ <th><%last_period%></th>
+</tr>
+
+<%foreach income_account%>
+<tr>
+ <td width=4> </td>
+ <td><%income_account%></td>
+ <td align=right><%income_this_period%></td>
+ <td align=right><%income_last_period%></td>
+</tr>
+<%end income_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td> </td>
+ <th align=left>¦¬¤J¦X­p</th>
+ <td align=right><%total_income_this_period%><hr noshade size=2></td>
+ <td align=right><%total_income_last_period%><hr noshade size=2></td>
+</tr>
+
+<tr>
+ <th align=left colspan=2>¶O¥Î<br><hr width=300 size=5 align=left noshade></th>
+</tr>
+
+<%foreach expense_account%>
+<tr>
+ <td> </td>
+ <td><%expense_account%></td>
+ <td align=right><%expenses_this_period%></td>
+ <td align=right><%expenses_last_period%></td>
+</tr>
+<%end expense_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td> </td>
+ <th align=left>¶O¥Î¦X­p</th>
+ <td align=right><%total_expenses_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_expenses_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>¦¬¤J / (Á«·l)</th>
+ <td align=right><%total_this_period%><br><hr noshade size=2></td>
+ <td align=right><%total_last_period%><br><hr noshade size=2></td>
+</tr>
+
+</table>
diff --git a/templates/Traditional_Chinese_Big5-invoice.html b/templates/Traditional_Chinese_Big5-invoice.html
new file mode 100755
index 00000000..201dab77
--- /dev/null
+++ b/templates/Traditional_Chinese_Big5-invoice.html
@@ -0,0 +1,337 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=64 height=58></th>
+
+ <td align=right>
+ <h4>
+ ¹q¸Ü¡G <%tel%>
+ <br>¶Ç¯u¡G <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>µo²¼</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>­P</th>
+ <th align=left width=50%><font color=ffffff>¥I¹B¨ì</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>¹q¸Ü¡G <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>¶Ç¯u¡G <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ <br>
+
+ <%if shiptocontact%>
+ <br><%shiptocontact%>
+ <br>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>¹q¸Ü¡G <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>¶Ç¯u¡G <%shiptofax%>
+ <%end shiptofax%>
+
+ <%if shiptoemail%>
+ <br><%shiptoemail%>
+ <%end shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=14% align=left nowrap>µo²¼½s¸¹</th>
+ <th width=14% align=left nowrap>¤é´Á</th>
+ <th width=14% align=left nowrap>¨ì´Á¤é</th>
+ <th width=14% align=left>­q³æ½s¸¹</th>
+ <th width=14% align=left nowrap>¾P°â¤H­û</th>
+ <th width=14% align=left nowrap>¥I¹BÂI</th>
+ <th width=14% align=left nowrap>¥I¹B¤½¥q</th>
+ </tr>
+
+ <tr>
+ <td><%invnumber%></td>
+ <td><%invdate%></td>
+ <td><%duedate%></td>
+ <td><%ordnumber%>&nbsp;</td>
+ <td><%employee%>&nbsp;</td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>½s¸¹</th>
+ <th align=left><font color=ffffff>¸¹½X</th>
+ <th align=left><font color=ffffff>´y­z</th>
+ <th>&nbsp;</th>
+ <th align=right><font color=ffffff>¼Æ¶q</th>
+ <th>&nbsp;</th>
+ <th align=right><font color=ffffff>³æ»ù</th>
+ <th align=right><font color=ffffff>§é¦© %</th>
+ <th align=right><font color=ffffff>Á`»ù</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%>.</td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td><%deliverydate%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discountrate%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+ <%end number%>
+
+<!--
+you can also use netprice instead of sellprice if you
+don't want to show the discount
+netprice = sellprice - discount
+-->
+
+ <tr>
+ <td colspan=9><hr noshade></td>
+ </tr>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=7 align=right>¦X­p</th>
+ <td colspan=2 align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=7 align=right>¤p­p</th>
+ <td colspan=2 align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=7 align=right><%taxdescription%> °ò©ó <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if paid%>
+ <tr>
+ <th colspan=7 align=right>¤w¤ä¥I</th>
+ <td colspan=2 align=right>- <%paid%></td>
+ </tr>
+ <%end paid%>
+
+ <tr>
+ <td colspan=5>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <%if total%>
+ <tr>
+ <td colspan=5>&nbsp;</td>
+ <th colspan=2 align=right nowrap>©|¤íª÷ÃB</th>
+ <th colspan=2 align=right><%total%></th>
+ </tr>
+ <%end total%>
+
+ <tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <%if notes%>
+ <td><%notes%></td>
+ <%end notes%>
+
+ <td><%text_amount%> ***** <%decimal%>/100</td>
+
+ <td align=right nowrap>
+ All prices in <b><%currency%></b>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <%if paid%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td colspan=9>
+ <table width=60%>
+
+ <tr>
+ <th align=left>¥I´Ú</th>
+ </tr>
+
+ <tr>
+ <td colspan=4>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <th align=left>¤é´Á</th>
+ <th align=left>±b¤á</th>
+ <th align=left>¨Ó·½</th>
+ <th align=left>ª÷ÃB</th>
+ </tr>
+ <%end paid%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid%>
+ </table>
+ </td>
+ </tr>
+ <%end paid%>
+
+ <tr height=10></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <th>
+¦hÁ´fÅU¡I
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=60%><font size=-3>
+ ½Ð©ó<%duedate%>¤§«e¥I´Ú¡C°h¦^ªºª««~¶·¤ä¥I10%ªº¦^¦¬¶O¥Î¡C­Y­n°h¦^ª««~¡A¥²¶·¥ý¨ú±o<%company%>ªº±ÂÅv¡C°h¦^
+ª««~ªº¹B¶O©M«OÀI¶O¦Û­t¡C­Y¦b³~¤¤¥X²{¦³·l·´±¡ªp¡A<%company%>±N¤£·|­t¥ô¦ó³d¥ô¡C
+ </font>
+ </td>
+
+ <td width=40%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <th colspan=9 align=left><font size=-2><%taxdescription%> µù¥U <%taxnumber%></th>
+ </tr>
+ <%end tax%>
+
+ <%if taxincluded%>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <th colspan=8 align=left><font size=-2>¤W­zµ|¶µ¤w¥]¬A¦b»ù®æ¤¤¡C</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Traditional_Chinese_Big5-invoice.tex b/templates/Traditional_Chinese_Big5-invoice.tex
new file mode 100755
index 00000000..fa7145bf
--- /dev/null
+++ b/templates/Traditional_Chinese_Big5-invoice.tex
@@ -0,0 +1,207 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\newsavebox{\ftr}
+\sbox{\ftr}{
+ \parbox{\textwidth}{
+ \tiny
+ \rule[1.5em]{\textwidth}{0.5pt}
+Payment due NET <%terms%> Days from date of Invoice. Interest on overdue amounts will acrue at the rate of 12\% per annum starting from <%duedate%> until paid in full. Items returned are subject to a 10\% restocking charge.
+A return authorization must be obtained from <%company%> before goods are returned. Returns must be shipped prepaid and properly insured.
+<%company%> will not be responsible for damages during transit.
+ }
+}
+
+<%include letterhead.tex%>
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \vspace{0.2cm}
+
+ \hfill
+ \begin{tabularx}{\textwidth}{Xr@{\hspace{1cm}}r@{}}
+ & Subtotal & <%sumcarriedforward%> \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%invnumber%>}{<%company%>\hfill <%invnumber%>}
+
+\begin{tabularx}{\textwidth}{@{}rlXlrlrrr@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} & & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\ [0.5em]
+ & carried forward from page <%lastpage%> & & & & & & & <%sumcarriedforward%> \\ [0.5em]
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+\textbf{To}
+\vspace{0.3cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\parbox[t]{.5\textwidth}{
+\textbf{Ship To}
+\vspace{0.3cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{I N V O I C E}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{7}{|X}|} \hline
+ \textbf{Invoice \#} & \textbf{Date} & \textbf{Due} & \textbf{Order \#}
+ & \textbf{Salesperson} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+ <%invnumber%> & <%invdate%> & <%duedate%> & <%ordnumber%> & <%employee%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXlrlrrr@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} & & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\ [0.5em]
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%deliverydate%> &
+ <%qty%> & <%unit%> & <%sellprice%> & <%discountrate%> & <%linetotal%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
+ & Subtotal & <%subtotal%> \\
+<%foreach tax%>
+ & <%taxdescription%> on <%taxbase%> & <%tax%> \\
+<%end tax%>
+<%if paid%>
+ & Paid & - <%paid%> \\
+<%end paid%>
+ \hline
+<%if total%>
+ & Balance Due & <%total%>
+<%end total%>
+\end{tabularx}
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100
+\hfill
+All prices in \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%notes%>
+}
+
+\vfill
+
+<%if paid_1%>
+\begin{tabularx}{10cm}{@{}lXlr@{}}
+ \textbf{Payments} & & & \\
+ \hline
+ \textbf{Date} & & \textbf{Source} & \textbf{Amount} \\
+<%end paid_1%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%payment%> \\
+<%end payment%>
+<%if paid_1%>
+\end{tabularx}
+<%end paid_1%>
+
+\vspace{1cm}
+
+\centerline{\textbf{Thank You for your valued business!}}
+
+\rule{\textwidth}{0.5pt}
+
+\usebox{\ftr}
+
+\end{document}
+
diff --git a/templates/Traditional_Chinese_Big5-letterhead.html b/templates/Traditional_Chinese_Big5-letterhead.html
new file mode 100755
index 00000000..d59b8315
--- /dev/null
+++ b/templates/Traditional_Chinese_Big5-letterhead.html
@@ -0,0 +1,32 @@
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%><br>
+ <%address%>
+ </h4>
+ </td>
+
+ <th><img src=../<%templates%>/logo.png border=0 width=84 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%><br>
+ Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <td colspan=3>
+ <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
diff --git a/templates/Traditional_Chinese_Big5-letterhead.tex b/templates/Traditional_Chinese_Big5-letterhead.tex
new file mode 100755
index 00000000..16d805af
--- /dev/null
+++ b/templates/Traditional_Chinese_Big5-letterhead.tex
@@ -0,0 +1,17 @@
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{../<%templates%>/logo}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Tel: & <%tel%>\\
+ Fax: & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
diff --git a/templates/Traditional_Chinese_Big5-logo.eps b/templates/Traditional_Chinese_Big5-logo.eps
new file mode 100755
index 00000000..3a22b2ff
--- /dev/null
+++ b/templates/Traditional_Chinese_Big5-logo.eps
@@ -0,0 +1,1334 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: GIMP PostScript file plugin V 1.17 by Peter Kirchgessner
+%%Title: Brazilian_Portuguese-logo.eps
+%%CreationDate: Thu Aug 31 19:25:05 2006
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 2
+%%Pages: 1
+%%BoundingBox: 14 14 415 215
+%%EndComments
+%%BeginProlog
+% Use own dictionary to avoid conflicts
+10 dict begin
+%%EndProlog
+%%Page: 1 1
+% Translate for offset
+14.173228346456694 14.173228346456694 translate
+% Translate to begin of first scanline
+0 199.99842519685043 translate
+399.99685039370081 -199.99842519685043 scale
+% Image geometry
+400 200 8
+% Transformation matrix
+[ 400 0 0 200 0 0 ]
+% Strings to hold RGB-samples per scanline
+/rstr 400 string def
+/gstr 400 string def
+/bstr 400 string def
+{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop}
+true 3
+%%BeginData: 80402 ASCII Bytes
+colorimage
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+fDblg6K\=Q"WB-W4?Pdo4p6+l]&ih]rrrDpij);hp&GL',"Q[#Lmt]mi:-UBo)Ajlp>C')q#Ca-
+0OT-[R^UZ0q#:3k!rftBr;[*-4`Pt>]\`;[p&>'%-iO)I,T-[I!!OC1jn&BKnc&dlp#<8P%e]l2
+"!U9TI#+8tb2Ddcrq6:-g3RO66TZkO/89R1ak>G'lMCDUrVc`p_uG5~>
+fDc3-AgAK<(`*r''GKsK"r/C?3]oMfm61YtOLjQNo`#*op#<8P%e]l2"!U9TI#+8tb2Ddcrpp'l
+rq>8m&GZ;5#V]Y2L75R!lM1AVrrW28$N0r1#!HsURCqDKrq69l[jV.T![JWbkPtc,R-!r:rpg!l
+rq59V:(Hst$j.\EE.!J2ZHD+pqYp0f(YX1N<'rc'0emR!XjZ4ijR;sBr;HTnrknbd~>
+fDc6;J3>hE.46Gg,U"<#*sNl<2EEr_4mbE9G`]Muqt0mlrq59V:(Hst$j.\EE.!J2ZHD+pqYp'c
+"TJ,QFV+?K$4&=nG_VZqdd$W,r;Qit^^C#?#R3G3J!mt+o`"O`!OjHU!!4D`!pBUf*LPs[qu6-c
+"oe2SZ;(o'!"8rR88rs4S$L2pnG<.WrtjC8CK*Y`2)R41LpG[tlg+-<qu$Ekrr0h8J,~>
+gA_6CM^RKa#SJU[Cl4ICR$dH4"J2pKnc&.[#laS]ca8*s2'Dku%L*7S1/_:`E/L-e^<lNJn,*ps
+lGB9$.1d!s#n@h2C5&"Yb2DgerqcX(q78g7,slHqMPJ)Jp&4[cs*k'%9)\er&Pd:_DG`D6!pTal
+;j3B4I=8["q>L$e)ZKKoca5M5$jR7P',DcW=EAnFP+oA,h<ak4r;@'%mG5jnSV:rb4tRZYo)K.6
+.77QqVp"]-r;HW:s*t~>
+gA_WSXCb's7mAmd0J>%2/aY(p3(dS&NKf`rR.?XJT!Hl9rq$..rqGU%[!bb.+:/;Z%M^0O>@_Mp
+OJ9/'f_#".r"](qb,Jl)'b_,j)_+BrKpT$di:6^DqYq$#\j.Db6>_(,UVl'`rV6EmU]HuXrW!3>
+=ES\+<]_9&l2V,jVQ@/!U<E9+rV$70rqGU%Zq25S%MBBi(a_LMF+&e+U:&/"m.U>Sr=/\qk1@he
+W0`?`B2UiFr@A%'1d4D,8ded6G`JT6f_#";rVjq=J,~>
+gA_WV`KPh&H>[%h;Gg7d:@1a]<FBcqNg,isR.?XJT!Hl9rq$..rqGU%[!bb.+:etm&f`Dk@V^"7
+Q)D4<h=UO3r"](rd'%+>(`!f$,WA_DKpT$di:6^DqYq$#\j.Db6>_(,UVl'`rV6Em^B(K0rW!3B
+@!Hj=>!*c+l2V,lZbFJn^"N,TrV$70rqGU%Zreh$',D<")CRjQF+&e+U:&/"m.U>Sr=/\tmGcjE
+_7$G9OF(D5rCmAj>ASW`J.%6uT<>oSiV!$ErVjq=J,~>
+h#@HEIh:?7#Tc9FPJ##]c-H(0"4GulqXORjrqc-Bc+C!IjT#8`m/R?)T"N_Cq#1!f%/obL[[`MH
+U:8M5p\spee,TVcf]W#.pAY9pqXED]p&G=-'G_N()]Tmq*WQH&!!iZW>`-Jlq#(-9s*t~>
+h#@HJUfI@c"%YgF4l\X1;/(]X^WF^EcM,WedbO6dnc'C(qXEFf];hGR.Olks.P*2,2*!ie7S*/D
+!)3/["\;$E2D?]].L7OVFe67umJ-YTrs\ksfX@<5QD1k8kkG)Nrt@jG!<<*#(b-sc0JtaF0Ie1Z
+$3BMo#oYim84nopkP+uLrtbV1nDI&"0eP",.Ochs/1rtM85<,d>l%b,:\RH`84>d,rB(0F5Xe6:
+8dJ+(MQ5+sq#(-9s*t~>
+h#@HM^PMi="+56/C#`k4FbQ3b_9'pGcM,WedbO6dnc&ppqXEFf];hGq8cD6f8P;iZ>@VDgG^Y)7
+J,k2sJ.d?ZFD5#[9h@lH8ksi,]\)WHrV6C$rUSULS<B24\'X@5rqHF+H9;6/!!+Q@7nZfd?<U9"
+2^8k8m/RGEAorHOWS$D.rq??urqc-BFC%sC91f+R$;!ld>@_PnIYEZ=qi1Z0pOE?oG].?qBEN!f
+G^]78#_J8?^teSWr;Ot@J,~>
+h>[MB'\!*i,YiZYa62mZnF?&JncSOYqu6'a#Q=GfkM4KR)UeZi*-S.$mJQYW$N0GOcGmrTj73!F
+p\t6"ec5mb/8hc?meueX"TA*n,R_Hh#7aOmh":IArmCar~>
+h>[M`=SbYi8,u0:7LELMS$gZ-mdKZ8nc&(]o_87^n,EXkq!mP&dV;DR3!VH*4[;>&7nDf8%S9,W
+5<Lqc3BBc^Us&0'p&>Bsn__X3aOK8?qYp6h!OE+3!##DT-n$]+5!hV'5!1e]0J"C`$j,nu#UVT+
+?\Yl5meueX#Q=FJ>Xpq<3W:uC3BKAh6:FC8lq.=N84WVJ!_5dQmn*g`J?Io(qYgE@s*t~>
+h>[N!MYho*Isl\"H4#P$Zc1S]mdKZ8nc&(]o_87^n,F("q!mP&dY;XJ@:E_XBl7s8H[^J.J.@!Q
+F)5K!@U`kaL8<#[r:U'sr:/[i`lQZinbW7ZrrKG;rW!T71dso2?>FS'EGT5p>#S'T-5?[R!!rZm
+AU&loZI&%<o`#U'pn<@]Bk:d_@:E_XBl7s8H[^J4J-(4LI/A3kI"$S7J-Uh)_rgUfrVk4EJ,~>
+hu<`75k=sc"VrFC5tXgF:/4DF.i/9O!!*]Ur]C="me$ATli.:jr:opKd%Y/9'&!<k"#=J;Ni^b$
+rq-3qrV,jMn+?JTpAY,>f)Q'a;0.S\XNp84o)Asihn"ng;)Ad$!!WNiQK@f9rmUmt~>
+hu<`@GOnE:9Mnkt@V0:fC2.Hn>Z4;[8dSO+F*)Mgme$ATli.Fnr:opKd&28#:.@`E8`E>N8Ou<>
+7TaSXNi^b$rq-3qrV,jMn+?JTpAY,>qu@NQ,q(K/6:XU>84Z3<69dRl1bgU.)%[&F!!j*8F,?6b
+cL1Z%rseb\\s@h_>t[RS7Rp!@b";k3FKjs$qYntDJ,~>
+hu<`GT_![<IscQgH[C/>IKP(MIt-[4!Jlg9S-6.co_SRQrso&+q"3gtWf)=NG^=adJ)l+hIsu`i
+GBS%NIZCMZo)A:]#Q=DemdKfErV$6kHi3pL!AZo0<+U)rrdG<'H$++DB44tC:-L3L%.jN*&m043
+Q`SL#rUTsuptrZOMLp5#G'A1WI"$RgJ-LRo_WgairmUmt~>
+i;Wha&G?)3"X69@G^kI,P*_]1rh'IfS=#7L5SE5[">J!QnGMJL#l<l9^9FDd9H)af#qBJ1L7#-c
+jnSiGs8Drirr@!8!!4`+#i,Ic89UN4bi8<po)B'omao@cYc+.?63tL0"V>7hnG)t4s*t~>
+i;Wi"<VB#m9N5D9G^kI,P*_]1rh'IfS=#CdBN""c"DGs4nGMJL#l<l9^9FDnE)tgf$!(hdL7#-c
+jnSiGs8Drirr@!8!!Y&=.ks.S8GYpg8Ou<=69dRm2)6d5*"E#D!!c&<S@?`%p&=O^$N'8C_mckK
+Sr%2W`(C25NR[ImrRLpu~>
+i;Wi2M"Z?,IsQ9]G^kI,P*_]1rh'IfS=#ItL4SN<"H^d\nGMJL#l<l9^9FE!MLs]8$$^E6L7#-c
+jnSiGs8Drirr@!8!!b/H79+#EI=M0F%tB%UH$44GBOY4I:e*2V!qu["89UN4bi8<po)B$nmao@c
+Yc+.WLr4`HL9'%tq#/bCJ,~>
+iVrn9p&GO<7W!I+P+J\^^;eCEe,@c%d`oeFZDDb'!pTag,b;X/qWIkdrqc0Li7?&`XFWVBirBDi
+9lbcMYfPVcpAO"N!/(1L";kW^EBr@\#!RdOh!Xn6nc'!rqXWt6i7cW"\Y):S!"&cA/3cp6C2SKO
+KDgH,J9#$l1DK9X"TqW;mJ$S2s*t~>
+iVrnZp.>ck@;pOIP+J\^^;eCEe,@c%d`oeFZDE@g9Bo+P>b/RgqWIkdrqc0Li7?&`XH.-lj%9YP
+@WI!bYfPVcpAO"N!/(1L"rLi`F'qF.oh#Wa84H$85Wq.e1Fs:Bq#CU_L:H%,pAFI\$i^"nlfI'Y
+d`8noDWsb":g%1=D00uNJV3oS"bM/FCg^008d.n<bO,'&fDg@~>
+iVrnsp4*U"FE;b_P+J\^^;eCEe,@c$d`oeFZDEhBl$rniS\=([kPkqhqXNh.f#kY,R>QRUJ-pdG
+Ee'I[aP?+TrSmhWKDY]R(h76%G^"W1J.7!WI!U!XDe`ij=A("Cq#CU_L:H%,pAFI\$i^"nlfI'Y
+d`8nsNp2'#I!U'`H[L9mJV3fP!J>skJ-CLtdd?f-fDg@~>
+ir9!spAb^?;KRDLTsM\cguRbgo(;VSp'^Qco'Yc%fZLdo7Ki&X"<E/rh"^"2$i^)#p@.8#cFooT%
+d!`u!`F)pUr;*Wq#(-NrrL.Cqu?puFHE]?JdCT@!=T>3!!P?@^Ztarn,NFe$N9o!q"4":g;nL?m
+f3e)/l6J6KT).cU8P&qZM_'8Za$U.SV:/k!q?6o"'3Y5q#/nGJ,~>
+ir9"HpIYrnA9<<^TsM\cguRbgo(;VSp'^Qco'Yc%fZLduDbTLi"B:&Th"^"2$i^)#p@.8#cFp'#
+;<:CVA93O%`80kVr;P^U!QP?@!!Z;BOKZBc:@Up_8Ou?@6pX!s/dhFT"ZVIUlMUYMs8W'*rVZNe
+o^:kqaHB6c8e"NtATN6PN0Kj,VlR#,r3Qa9Z)jdmNceQ!nO`sYK$s&]rRq4$~>
+ir9"fpOEd$EccelTsM\cguRbgo(;VSp'UKbo'Yc%fZLe&NpD2uI>"ZVpuVM`rquWdnE8TP]r@0H
+ja[YVF,-R0h<t(9ro3qY`ru;?##TK(YJ-renph'sIXHKeF`;))8.,1n"ZVIUlMUYMs8W')rVZNe
+o^:kqaJJ<T%=WPDFaSk$PanJGX08i,Zj3qBXJMJOMM(DK"bEE!mJ-Y5s*t~>
+j8T+/p](g,5&bn2VnUU<m.C)NrVlflrsA]'qY'F@fZ'=>m/R8.I&>WmiVs5`r:ojHg;p9k"R#gj
+/ocWFcKY*%hu<[5qu@!=E/1aQlJS-;lMq#'>>b\&!!G<<]''%TrrrE"p[6mkmf3eaEIa7KZG+E,
+f%Ss<iqqdCini>8aLn[:8e(:j"Uoe:nG<.=s*t~>
+j8T+Tpdu&i?>t:RVnUU<m.C)NrVlflrsA]'qY'F@fZ'_$m7ILZI&>WmiVs5`r:ojHg;pF@9^#(R
+=E0(pcKY*%hu<[5qu@!=E/1aQlJSa>m7IOQ7nd5e#5\B'3Jb90rTF1arquNYhOa1.%:=+*PGGLu
+aO&Mlh;I;ij9ai&f[7dQY*X*(nO`s^Rc*]3rnII'~>
+j8T+opj`m)FDuVhVnUU<m.C)NrVlflrsA]'qY'F@fZ'tOm=>4a!iF]HiVs5`r:ojHg;pR`J`qUh
+G&`89cKY*%hu<[5qu@!=E/1aQlJT4*mXPLjI=$!B;?m!u"?D:LkPaTD"oeGombY5;J.6R>J<Qe7
+^<"[Pg>1]HqrA(ChUp5s]WRfaK(4?pKWsD(qYo7LJ,~>
+jSo4Pp]([*;KIM`][l<<qYgE_rs/Q#p?^YWLDTCZ"<2`cgA'P)#QFYqmblB\-0YC6>'usdm/$_=
+rrBP*!!kT/R`b'rq!(]B!!Ea>Fbj)q!!G98[cRGJrr`5pkZ@6R$q,K5^XhE/n+?>Kq>0sc$iBep
+o^D##d_Vqg$1Ruu1qr/HrS7F'~>
+jSo4lpdtofA93Er][l<<qYgE_rs/Q#p?^YWRTJrM"B'WEgA'P)#QFYqmblBh?g1/eApg5pm/$_=
+rrBP*!!kT/R`b'rq!*=p8d%n&Fbj)q!!G98[cRGJrr`5pk_&@s$t+IQ^XhE/n+?>Kq>0sc$iBep
+o^D##d_W#4:[q$[C;oB0rS7F'~>
+jSo5+pj`a%E-$])][l<<qYgE_rs/Q#p?^YWVhOSis*OmFgA'P)#QFYqmblBpMWoWqE.";%m/$_=
+rrBP*!!kT/R`b'rq!+O=J-::;Fbj)q!!G98[cRGJrr`5pkbIWt%!?rf^XhE/n+?>Kq>0sc$iBep
+o^D##d_W)NK(4?oP02t]rS7F'~>
+jo5A)"Si$(!`*lnWQXDqqu5m\"o\5`gq6>M!!F6gVV:h"rrrAsnDM>llMq(oE/M0dqVD/O@/Bp0
+:4TD#q#CBc$g[ir:N_`*_YX<98;=S8r8[eZrqbC[nGie`KsKM+qYgE`rs8W%q=En-bcF/$!!Emu
+hXUO"s*t~>
+jo5A8:&%<d@WR@)bN8Bnrp'LerV5d8^NT*="B'WEgA'G&"o\8di5gH78d.n-MR_aDh>[I_qZ$ms
+J?.K#s8Vailq.CiFcWoHqZ$aiL:67Bj8T5\qVbBC8dAgZZJ>*KrVl?e#labtoBP/UY]'&("B;;U
+nbh5CJ,~>
+jo5ACK(sj%EH?r8bN8Bnrp'LerV5d8_Ns\As*OmFgA'G&"o\8di5qMTJ-CC@MR_aDh>[I_qZ$ms
+J?.K#s8VhIm!o4YFcWoHqZ$aiL:67Bj8T5\qW*D$J-U7OZJ>*KrVl?e#labtoBP/U[#jg."GO5>
+nbh5CJ,~>
+k5PJR,kq?E0QDiId-UW.k5PV`pZg:]#k@ru)gnO:pt>ZLrV5d'lMq))FI()<rn[SS./NuL;i%sG
+r;Zf#li724E/(OJn,!(f@Z%e]rSdbWq.K3t"@e6Zkl'iI#QF\snD_`I&Fof)!cuoZqYoCPJ,~>
+k5PJUAGAb%=`K1rd-UW.k5PV`pZg:t:@_![;LG@qpt>ZLrV5d,lUh=XFI()<rn[SS./NuL;i%sG
+r;Zf:lq.F\E/(OJn,!(f@Z%e]rSdbWq2t2>"Cd5!kl'iI#QF\snD_`^;t<Na99@]kqYoCPJ,~>
+k5PJXP5'P4G&`8:d-UW.k5PV`pZg;0K(=HlHig2!pt>ZLrV5d/l[T.cFI()<rn[SS./NuL;i%sG
+r;ZfKm!o7bE/(OJn,!(f@Z%e]rSdbWq60=="EoX5kl'iI#QF\snD_`mK^jQqV:Fu0rnma+~>
+k5PF"p](L*BRZZ!mJGrD"oeDjiMmgf!!F0eVV:gsrrN&8lMq&+H(`XZh#@?rqZ$k"N5+ZVs8Q?j
+!!Q)BSBL?equ?m=Eg"B.ro*kXrl=O/"@e9\kl'`F"o\8dhQ\Bs!!HlYlM:G;s*t~>
+k5PFLpdt`bCOVu$mJGrD"oeDjiO)k\8d&%>VV:gsrrN&GlUh:XH(`XZh#@?rqZ$k"N5+ZVs8S#D
+8d/[LSBL?equ?m=Eg"B.ro*kXrmgO2"Cd8#kl'`F"o\8dhR[+b8d'molM:G;s*t~>
+k5PFjpj`QtDLS;'mJGrD"oeDjiP(->JH'uuVV:gsrrN&Rl[T+bH(`XZh#@?rqZ$k"N5+ZVs8T7g
+J-Bt=SBL?equ?m=Eg"B.ro*kXro!<s"Eo[7kl'`F"o\8dhS>'>J-;FglM:G;s*t~>
+kPkS3"S_s#20=tpk5+$9"TJ2]^*iOQ":fgUf_F%t!35tt!'9TL";cE\f_=2$!$D(<#<RmZlM^bS%
+.+$!"`9"#i;'/G!!Q&BT[NK3i;WiT(@hG.7Z+hArT=+_rV5[#2XpbM@a"$3ro*m-~>
+kPkS@:&%<a>',n@k5+$9"TJ2]`a\R4"AX?@f_F%t!5e\,!*o"c"AsNAf_=2$!$D(<#<RmZlM^bV
+;XI'\9Q#Tki;'/G!!Q&BT[NK3i;WiT=n5/f@Z%e]rT=+_rV5[&D"1+#K$3ESro*m-~>
+kPkSIK(sj"F``b[k5+$9"TJ2]bDl.E"Fb`pf_F%t!7^st!-I^\"FPQlf_=2$!$D(<#<RmZlM^bY
+L@'KqIrC(Ji;'/G!!Q&BT[NK3i;WiTMXl9#G)EoqrT=+_rV5[)P4=&*R`jskro*m-~>
+kPkNYpAbA&J#Lukrnm_Yrql000(f2I%==l%p=B6DL]%2RB-$LB":TXQf_=2$!)ECk"qZO!jo#.R
+qu?^*nc/k8FHjf4nKe&5"X%c?[Ggu>rrN*rnc/e^MS&*Njo5J_qsi8tnGiZ+b3A`\s*t~>
+kPkO6pIYU&J#Lukrnm_Yrql04BD"k":4&bfp=B6DWr5NjCfU!t"AX<>f_=2$!)ECk"qZO!jo#.m
+r(6rank'*bFHjf4nKe&5"X%c?[Ggu>rrN+Nnk'$oMS&*Njo5J_qsi<VnO`n<b3A`\s*t~>
+kPkO\pOEEdJ#Lukrnm_Yrql06OS+,,IX@jAp=B6D_u5)dDgh/+"Fb]nf_=2$!)ECk"qZO!jo#/+
+r."crnpgpjFHjf4nKe&5"X%c?[Ggu>rrN+snpgjdMS&*Njo5J_qsi@(nUL_1b3A`\s*t~>
+kl1Y/pAb@.EK%Qnr7q;Sr:88hp&G4)HD/m_f)G_`rW!!*Ea8)6"*C6ep>#ZJV"t&p5cE<-r_37j
+!=D?f!!P$%U"&U2r;[$/@XF`ln,;,C!.j\@"@e9\kl'QA"9%lB.e3QB!e8G\qVqO*~>
+kl1Y=pIYTbEK%Qnr7q;Sr:8EPp.>H_HD/m_f)G`7r^m5cEcUYA"*^Hhp>#ZJV"t&p5cE<-rdar>
+!DQtm8d/@DU"&U2r;[$/@XF`ln,;,C!2]6Y"Cd8#kl'QA"9%lFAb&Fr99IHbqVqO*~>
+kl1YGpOEEpEK%Qnr7q;Sr:8L&p4*9pHD/m_f)G`WrdY'!Ee<e2"+$Zkp>#ZJV"t&p5cE<-rhfXE
+!If+\J-C.CU"&U2r;[$/@XF`ln,;,C!5J)T"Eo[7kl'QA"9%lHOR[i'T?QZuir=N~>
+kl1WbpAb@BG+-\GrnIGTrUeS^pAb=*H(`[\f)G_;rW!$:G*F0?!!?8jch#rl!V\&>!!H?;jlQ^E
+!!+i]nc/eTJ?-URr;[$*<d'Y=jS@X3!28r`"@e9\kl'N@"9.u;'Cl,+%[ti7r8[g-~>
+kl1X=pIYThG+-\GrnIGTrUe`LpIYQ`H(`[\f)G_rr^m8iG*H;&8crmuch#rl!V\&>!!H?;jm,V=
+8c`(1nk'$jJ?-URr;[$*<d'Y=jS@X3!5.kp"Cd8#kl'N@"9.uC<q8ic;52M-r8[g-~>
+kl1XapOEElG+-\GrnIGTrUeg&pOEBqH(`[\f)G`ErdY)uG*IjRJ-1.ech#rl!V\&>!!H?;jmRd!
+J,sh8npgjdJ?-URr;[$*<d'Y=jS@X3!714d"Eo[7kl'N@"9.uHM"6'!Ju6ubr8[g-~>
+l2LeM"SVm!3.7[VpY#QKrq4GJp](F&GbER[f)G^mrW!$IHD#o\!!G-A`U3Z\rrW/;#PnE%4hQFF
+!!6GR!qQBo7=\hVr;['0<csA,g@YC#rrBe(!!GcK]BK4PrrW2mU@A3d/?mh"roF*0~>
+l2LeS:%q6_>^`L%pY#QKrq4]?pdtZ_GbER[f)G_Xr^m8nHD$eu8d&I``U3Z\rrW/;#PnE&4hRFY
+rCR-)I7s0("(?^h%K-83$<D;.ZJ+sMh>[K%nk'$oMS&*NiVruYosaH`"CSIeo`!qOJ,~>
+l2LeWK(jcuG($7?pY#QKrq4lupj`KrGbER[f)G`3rdY)qHD%D1J-:7_`U3Z\rrW/;#PnE'4hS.L
+J,Xs!E.7A."*K-'%K-83$<D;.ZJ+sMh>[K3npgjdMS&*NiVruYou?NP"GX/6o`!qOJ,~>
+l2LaMp&G4`K!=20f`)'QoX5)$!!@J;e+M>m!;l]p"?(_.d3%oZ":U*rjnmj5!r/2dq>^O((]==9
+)KC]Vo)Je5%/^)1*G'JTYgr7@h#@B&nc/e^MS&*Ni;WlWo2tM_"(8e&q;hR+~>
+l2Lakp.>HqK!=20f`)'QoYaT$8cs=0e+M>m!;udf"C-DTdU2Q;"AXc_jnmj5!r/2dq>^g0/j)To
+8lBYf>4bDg68&cF!!aNUG`ArXnGM)A!8d9="Cd8#kl'H>!r__EnO`n1]]AnLs*t~>
+l2Lb,p4*9gK!=20f`)'QoZi-bJ-1%fe+M>m!<)kH"Eo6nduEpK"Fc0:jnmj5!r/2dq>^g05A,4h
+IsQ*nL\-)uE]X^-!!aNUG`ArXnGM)A!9j!("Eo[7kl'H>!r__fnUL_%]]AnLs*t~>
+l2L`Sp&G4aL:64AfDbpNo8`SG"*U3^o[j*Cg\h*T7Y7l%Mt$cL?DuQNh#@KTntQrm!!>W4S3H?@
+#REn@I[.=lnGM&@!8d8H"@e9\kl'E=!rUsdnc/e$R*+gojo9i~>
+l2La2p.>HrL:64AfDbpNo;VLW"*U3^o[j*Ck5@mT@=k`@Wpr[`Ei@[bh#@KTntQrq!!`Q>-otUV
+S8\0p"%G3q&c2P6#Y&laQ*o34r7h5OkOM4J@Z%e]rSRVVr8^fI8d%t[b3f,gs*t~>
+l2LaZp4*9hL:64AfDbpNo=XjK"*U3^o[j*CmJVP<FFpaS_!upWJZ.8qh#@KTntQrq!!`TM7V$C[
+S<Wf!"*n9=*r>pC#Y&laQ*o34r7h5Omdbl2G)EoqrSRVVr9/n*J-2=amJQ)GJ,~>
+lMgnZ#ke6$7Z"_?rRUuMr:!nc!!@A4d.Gri!4Vn,"]^>fk3WrT!!Fp@am]5arri5d`Dd$8!!<ED
+3$n%o#n&k6I#=Z6h=:EsrrDc`!!GcK]BK4MrrMtInGi\eY1r[Lk5Tr~>
+lMgn\;"dKa@Yq\[rRUuMr:#I:8cs4)d.Gri!6kC6"_NP"k3lID8d&Fdam]5arri5d`Dd$8!!<ED
+3&^[["!\`u$2FQ-$Tr?TMP@oBnbh,@!;Z1X"Cd8#kl'B<!W&P\8d'(8g\1X/s*t~>
+lMgn^K_Bp!G)<forRUuMr:$TZJ-0q_d.Gri!8II&"`oI/k4+?"J-:=fam]5arri5d`Dd$8!!EKE
+3(#k-4p*o#+V4AK#n&k6I#=Z6h=:EsrrDodJ-:%Q]BK4MrrMu.nULasY1r[Lk5Tr~>
+lMgk-o`,+aM7`!Mec,^JiZe4!")""Ho@O!BQi-mfArOLiqLnD>"9a=cjSR^3"o@Z<WE9kt!"/f?
+3bj)#T!m#.pAN\E!<2Nh"@e9\kl'B<!rhQsnc/e*QGr4hk5Tr~>
+lMgk<oh#?rM7`!Mec,^Jj^@pW")sXQo@O!B[J`]$D2c6pqPEaT"A=KYjSR^3"o@Z<WE9kt!"/f?
+3bj)#T!m#.pAN\E!<2O]"Cd8#kl'B<!rhXfnk'$^QGr4hk5Tr~>
+lMgkGomd0gM7`!Mec,^Jk`5Li"*^-Xo@O!BbPcqpEf@cuqS)KM",OGIqqM,SqX2q6=;9ou$NUl$
+C41u2[a=11rRq2NrpkRBG)EoqrSIPUrpba5J-2+Vm/?)HJ,~>
+lMgjNo`,+[M7VpLeGfUG[KHC,"D4"Enc%2@!-J2?#6T"0`pWih%e9T&9Vg53rnIGWr:ApkZ[t1$
+!"'N/@"b8acJe<irn%2@!!GcK]BK4LrrN%3nGiZ%Y2/m8s*t~>
+lMgjloh#?pM7VpLeGfUG`_?8%"E9^Onc%2@!1a$\#>9*#`pWim<:WWaC8BDQrnIGYr:ApkZ[t@J
+!q$$t"Uu:u6=>J@\Ba('qYo+Hnk'$oMS&*Nh>[NRPOV6IGHTcsk5Tr~>
+lMgk-omd0iM7VpLeGfUGdXh:G"Ep-Unc%2@!4r/[#CgcW`pWipL@KcrUt,/;g]%QWoA[s"Jj^1Q
+mJm\&(F_:0@"b8acJe<irn%2@J-:%Q]BK4LrrN&&nUL^pY2/m8s*t~>
+lMgj+o`,+KLq)UFeGfULp14%#"C786nG_)?!)WXp#820Hc1:l3D=RZ0'U$B"rS%8TrV>p?cU[p6
+"pu+Y&Io9OoDf.4<.1msjRE!Dec,U_o)Jn_MS&*Nh>[NT`:3g11n)VWroa<3~>
+lMgjSoh#?jLq)UFeGfULp5]#B"Dj=EnG_)?!.t2B#>fQ1c1:l3QL[WN;Ner`rS%8_rV>p?cY5-e
+,9%F7&ePT`"o\W;"UGMJ'cS>C-7CZLIBCrYnG3%5rr?-l8d&U\]BK4LrrN,KnO`pkR`k4"kPp&~>
+lMgjqomd0kLq)UFeGfULp8n.A"F$*PnG_)?!3#mI#CLZ]c1:l3ZgrVLJ!._8rS%8^rV>p?c[o1m
+4Y@ln&ePT`r!3lF'H8;N4$Z/&85t#>dcBonrRLoJM=Z6#G)EoqrS@JSrnd0q"Fcf_nG_VNJ,~>
+lMgico`,+1KX0V7e,KLJjV[mq"BUc+mf(l=!&4BP#U"Aae+Nb?h?WTO")+mopt5TKrV>R_r;[$V
+9ji7&N#_Hi"r;$DcLC]0e,KCio)Jn_MS&*Nh#@EP(@hG.&rO9_r9+*1~>
+lMgj?oh#?bKX0V7e,KLJl!"!W"DX+>mf(l=!,VX,#ZQ&@e+Nb?k"kP?"*h$*pt5TVrV>_N5Wh"`
+5tta4Ll=In./tb)/1rV52aV>LcLC]0e,KDUo1B-pMS&*Nh#@EP=n5/f:l;jHr9+*1~>
+lMgjcomd0nKX0V7e,KLJl\bUj"F$$Kmf(l=!1<b9#^U`fe+Nb?l@\YX",*l6pt5TVrV>f*DJ3Ka
+9hf#@Ll>:171MdX8PDr[=^GNQRa1F!rmUlIO7Rl)G)EoqrS7DRqhjrp"Fc6>k5=EBJ,~>
+lMgiLo`,*rFfF-jdf0@ERf!-g9T[-Xrn.5N%/p54/psPLq#CBk?1Isu0:L,Srn%/MT)AWo$!qV7
+Z+n%CoDf"(H)B<jdJj1go)Jn_MS&*Nh#@ES;=OVgG,j<lkPp&~>
+lMgj.oL]44WS@3rrrMu'r(7*'OM^A`f`(qLr^mGuI&>Tls8VtRnk'$kR`t:#fDc8j8Ou<=7::+u
+Z+n%er&+sB3'',a5X@b0H)B<jdJj2So1B-pMS&*Nh#@ESK(2G8I&brrkPp&~>
+lMgjWoRI$nWS@3rrrMu9r."opOM^A`f`(r+rdY9!I&>Tls8VttnpgjmR`t:#fDc9)IXHHbEF<dL
+Z+n&)r*Be=@:WtbD/jZ?H)B<jdJj3-o7-seMS&*Nh#@ESVso3<Wn[=3s*t~>
+lMgiKoDf"dS^@!-e,KLKoeuaK"@eBclM]E9!:0R`#X!X>hYR9PrmL?;"9a7bjSRR/!'pJ_#;pOa
+^>J8AIe3UC"+-iqpX0!@+7fI87Z+hArS.>PM=CQK<h7V/rojB4~>
+lMgj-oL]7"S^@!-e,KLKoks_#"CmG+lM]E9!:g"[#[Mt_hYR9Prn[-;"A=KZjSRR/!-eB6#?c)0
+^>J8ASGGV\77Kd<8P2X&Ut>@grr?Hu8d&U\]BK4JrrB(h8d&t$d.@8#s*t~>
+lMgjVoRI'nS^@!-e,KLKopG]."F,p@lM]E9!;6;@#^1a#hYR9ProEU"",aVLqq(iJT`0HIIro^n
+^>J8AZi"nRF`qtSH@1-jIs\!CpX0!@O7Rl)G)EoqrS.>P_sr6[I%AXUrojB4~>
+lMgiKoDf".OML/[df0@G]DV^43JtH4rRq2Na8Gu@8qaS3r;Q]sqb$DZ"@o9;o`!PD!8m_T#QeFb
+WnI+FrNPkn")jd[p!Nd>+7fI87Z+hArS.>PXmlAo6'B7UrojB4~>
+lMgj-oL]6aOML/[df0@GbPb$9?AcAYrRq2NfDS;E@YD,Kr;Q]sqgS*."DFU\o`!PD!9j>Q#AJ^g
+g%PFD`q)e)Fe7(TdJj2So1B-pMS&*Ng]%8lnO`pnP/cqhkl6/~>
+lMgjVoRI'oOML/[df0@GfDU4&H&B5trRq2Nj8FK2FG.$]r;Q]sqkEY3"G*Auo`!PD!:Ti9#B,-m
+g%PFDf(smmJ-1(ge+M,g!0?`%"Eo[7kl'99!7gUi"FH<Omf)GMJ,~>
+lMgiKo)JknXk`^!rrMmdrW!'TL:?=Cg&D&Mr;Zt&M7VmKrr3#u^@D7,'9U,rr7V)MGPqLI,BAjZ
+kktJ\iq!-P?CB+0dJj1go)Jn_MS&*Ng]%8nnGi\GMS/0Okl6/~>
+lMgj-o1B+)Xk`^!rrMnBr^m;sL:?=Cg&D&frCR3+M7VmKrr3#ucLOR1;3A][r7V)MTD_@f<H=/7
+kktJ\lLRUMDOJf@dJj2So1B-pMS&*Ng]%9)nO`pgMS/0Okl6/~>
+lMgjVo7-prXk`^!rrMngrdY,tL:?=Cg&D'$rI>#lM7VmKrr3#ug@BasJ!%S4r7V)M]D[6cH#et[
+kktJ\nFM/4H'utKdJj3-o7-seMS&*Ng]%95nULahMS/0Okl6/~>
+lMgiKo)Jn%N5k5^df0@H`Voi?-A8\br7V)MKDbcQBTBpqrr)itqD[sF"(A:dptG`Kq],P7#u>oA
+de!J<s8EQ$!!H,^aRB,Vrr=/4!!GcK]BK4JrrCpG!!F^([,h/Ks*t~>
+lMgj-o1B-]P/ckddf0@He,DrB=+mm>r7V)MVu93jDN;R"rr)itqJc!t"*L^#ptG`Kr*K=o$"J=U
+de!J<s8H!i8d&gkaRB,Vrr?Hu8d&U\]BK4JrrD6P8d&7M[,h/Ks*t~>
+lMgjVnpgh.`pEWOrrN)SrdY,tKX0Y9g&D&grI>#kNkt)]rVlopRdtt2KWNu(gA_3PNr=J7EdOM.
+oD\direL,r"F--On,Cc8!0?`%"Eo[7kl'99!:KB-"F>d/jS\6AJ,~>
+lMgi_nc/e@W7^bAdf0UK8cSi2JZdo,g&D%[rW!**F-F]6rr)itrMT2d"=]b]n,D)A!42V("VPd1
+[c@5`rrN*WoDf"[Nl(/^df0:ho)Jn_MS&*Ng]%91nGi\3JZdr-kl6/~>
+lMgj;nk'$jWn?tCdf0UKHqI"1JZdo,g&D&4r^m>fF-F]6rr)itrP%hp"Bq59n,D)A!6P13"]0/o
+[c@5`rrN+<oL]6qNl(/^df0;To1B-pMS&*Ng]%9;nO`p_JZdr-kl6/~>
+lMgj`npgjrWn?tCdf0UKU4@cAJZdo,g&D&VrdY0%F-F]6rr)itrQk%b"Fli^n,D)A!87=$"ak9F
+[c@5`rrN+foRI'iNl(/^df0<.o7-seMS&*Ng]%9AnULaiJZdr-kl6/~>
+lMgj&nGi\U\`!5]e,K^Q\c;^@J>q;ug&D%7rW!'6G+$YHqu6]l,kD!=!dqH:qV2#M;#L@t5^/[?
+nGW=c!+tj'">G_Fkl&s0!$Ce4"@e9\kl'99!8d5G"<2ijh"g16J,~>
+lMgjOnO`q!\`!5]e,K^QbXtK(J>q;ug&D%or^m;iG+$YHqu6]lA+N:q98'b6qV2#MK)J:F??_j]
+nGW=c!0ZtH"C$bqkl&s0!+>Cj"Cd8#kl'99!9irF"B'`Lh"g16J,~>
+lMgjnnULb"\`!5]e,K^QfRSL%J>q;ug&D&DrdY-!G+$YHqu6]lORdo(M72I@g]%8PrI>&nGFH_E
+rVc`rZLiYMHA]>urR1]GO7Rl)G)EoqrS.>PmdYf1I"/0Oq<7j/~>
+lMgjIn,NSP^?#%fe,K[L0E;0+Ut>=nrr=&<!!FEiT@EQ2rrN(_nc/e\U=/]5h>[N="TAB)#&/^m
+h>$pJ!06[O"<iH*jS[I+!$Ce4"@e9\kl'99!7pZ?"<2cfg\C"4J,~>
+lMgjhn4Egu^Z>.ge,K[LCJ%6OUt>=nrr?@(8d&+=T@EQ2rrN)&nk'$tU=/]5h>[ND:&[`g9Pf?a
+h>$pJ!3Yrd"BC,^jS[I+!+>Cj"Cd8#kl'99!93N@"B'ZHg\C"4J,~>
+lMgk*n:1Y$^uY7he,K[LQ@OL;Ut>=nrrA)YJ-:1DT@EQ2rrN)<nUL_9de*OprrM_CrdY0%DhG4K
+q#(-l`q4caH\Acer6kTFO7Rl)G)EoqrS.>Plg]K.I!qsJpuqa.~>
+lMgk+mf3JB]&NG_eGfdP`.DZ`WS$purrDfl!!Fj#VV1b@rrMU)o)Jn&NkaiVh>[J1r;[!SFHaZ/
+rVZZq^%;:-&V-t>qU5BD+7fI87Z+hArS.>P^@;1+)h"U;puqa.~>
+lMgk:mn*^m^#JbbeGfdPd[l,RWS$purrDln8d&7DVV1b@rrM[no1B-]O2'rWh>[JTrCR5qFHaZ/
+rVZZqch'g4:k5Y(qU5BD@.Qtn@Z%e]rS.>PdIBg3;LPFrpuqa.~>
+lMgkEmskP!^uG(eeGfdPgp<B1WS$purrDrpJ-:+EVV1b@rrMbLo7-snOMC&Xh>[JmrI>&qFHaZ/
+rVZZqh=Q4#I=SEUqU5BDO7Rl)G)EoqrS.>PhXQ+!I!qmGpuqa.~>
+lMgn\$h"&u)kc'Zr7(`Nq;fK$_;b7DrrCOH!!G?5XPWgMrrN(Gnc/btX4m=(rr=2?!!QYWVUkG>
+r;Qc]oDf!qI&5Kidf0:ho)Jn_MS&*Ng]%8KnGi\@IAkoqkl6/~>
+lMgn];X[3\>-6ZQr7(`Nq;fK$_;b7DrrD!U8d&FMXPWgMrrN(knk'"*X4m=(rr?I*8d/mWVUkG>
+r;Qcco1B+4V:bOjrr?Hu8d&U\]BK4JrrBb&8d&4DW8%+2s*t~>
+lMgn^L$sNpLUQ(2r7(`Nq;fK$_;b7DrrD<^J-:%GXPWgMrrN)0npggpX4m=(rrA/ZJ-Bn@VUkG>
+r;Qcgo7-pjV:bOjrrA,OJ-:%Q]BK4JrrCI:J-:.GW8%+2s*t~>
+lMgna=mc7n#^=qhqYo(G#6"5XhW+2)gA_/Zr;ZsiKX0Y8qYpWrk6LSY"=9DUmeu&C!4Vn,"X7rG
+]]]1hrrN*4oDeu,T$m8Zrr=/4!!GcK]BK4Jrr@Q=!!G30XPN^9s*t~>
+lMgnaM!dk=:6X>uqYo(G#6"5XhW+2)gA_/prCR3$KX0Y8qYpWrlqd4F"Bh)4meu&C!6kC6"]TK$
+]]]1hrrN+#oL]4+T$m8Zrr?Hu8d&U\]BK4JrrAkb8d&CKXPN^9s*t~>
+lMgnaX6tKAJu@8hqYo(G#6"5XhW+2)gA_0+rI>#nKX0Y8qYpWrmt:4^"FlcZmeu&C!8II&"aY0J
+]]]1hrrN+UoRI$iT$m8ZrrA,OJ-:%Q]BK4JrrBh(J-:(GXPN^9s*t~>
+l2Ladli7/P_!(Okf)GpPqY9marn@APO8T%]<J\3Kr;$?nr+5I""9NhTiVMI3!)3=k"]0Q=dIR;5
+rr>7T!!H;gbOPS\rr=/4!!GcK]BK4Jrr>mc!!GrIZJtcFs*t~>
+l2Lb%lq.D"`p!0qf)GpPqY9marn@APYl./sAr+"\r;$?nr/gJA"+di<qVV;QJGi(D@salro)ALc
+!-\!,"DX:Hnc%#;!+>Cj"Cd8#kl'99!.s`5"Cd"hiqqs>J,~>
+l2Lb6m!o5'b38Tuf)GpPqY9marn@APa8LMkF,7Bir;$?nr35aB",O>CqVV;QVYu#KEdOJ,o)ALc
+!1rh5"F6?Wnc%#;!0?`%"Eo[7kl'99!3#F<"ET4$iqqs>J,~>
+l2LeY+m]14%Y!:(qYmPq!-%l:"CdA+lM^PY!rgXNo)JnUT[EB1iVrr="TAB)&o`Z8iqiKN!,D-+
+"@J<imJbT7!$Ce4"@e9\kl'99!#Y5+"D!A#kPaWEJ,~>
+l2LeZ@I-Si;OZJ3qYmPq!1EdX"Dj(5lM^PY!rh%Mo1B-rT[EB1iVrrE:&[`g:iM6!iqiKN!0m+J
+"CmS4mJbT7!+>Cj"Cd8#kl'99!*etc"Diq+kPaWEJ,~>
+l2Le[O6hB#KWa2$qYmPq!4_uX"EKL;lM^PY!rh;5npgh8dI[@rrrMYArdY0"E/:s^qYC-k[.JkO
+HBH/5rmUlIO7Rl)G)EoqrS.>PN:DE$E/D0hrTO93~>
+l2Le`R-FYS0!+4.r2fnu9`4qoEg"H1rqQKoqb-M\":L1%kksE>!.4YE"[[F%b4#<)rrA>V!!G!5
+]]f=Crr=/4!!GcK]BK4KrrCC8!!O'WP/Zhfkl6/~>
+l2Le`Zg(-cB"I-tr2fnuJGi(CEg"H1rqQKoqgS-/"AXrikksE>!2BEa"^cJBb4#<)rrBCt8d&@U
+]]f=Crr?Hu8d&U\]BK4KrrCmF8d/%3P/Zhfkl6/~>
+l2Le`aQe9YOMp;Sr2fnuVYu#JEg"H1rqQKoqkNb5"FlHFkksE>!58>]"a"sWb4#<)rrC15J-:4V
+]]f=CrrA,OJ-:%Q]BK4KrrD6PJ-C=@P/Zhfkl6/~>
+kl1\U.-U^79YB]crN?/#/H,VQ%<Rr\nc&=`!WK_%!!??&g%OG*!W*`5!!NXDKWj5,q#:?5oDf"9
+Ks]q=e,KCio)Jn_MS&*Nh#@A$nGi_PGb3=TrojB4~>
+kl1\VAa)eiHcGCGrN?/#B`:U-:3;iHnc&=`!WL=68cs%3g%OG*!W61$8d.q+KWj5,q#:?EoL]6c
+Ks]q=e,KDUo1B-pMS&*Nh#@AKnO`shGb3=TrojB4~>
+kl1\WP3IK"SBgHprN?/#QMuC<IWUq#nc&=`!WLdCJ-1D&g%OG*!W@uVJ-CC?KWj5,q#:?QoRI'l
+Ks]q=e,KE/o7-seMS&*Nh#@AfnULddGb3=TrojB4~>
+kl1__]*%9t"TqN7m.^I_rr<?(!!F0aS^I*'rrMsQo)Jn8QH/Ckj8T+Wr;[!XFHjc2rV6BmmdpJ^%
+Y1Y;q:#?D+7fI87Z+hArS@JSq],/,"Ti+aXkrm:s*t~>
+kl1__b=q.m"\a?dm.^I_rr>mp8d&%:S^I*'rrMt6o1B-dQH/Ckj8T+prCR5sFHjc2rV6Bmo(5NW
+:4TG&q:#?D@.Qtn@Z%e]rS@JSr*Jnc"DWOjhYH@7J,~>
+kl1__f7E1:"bE;nm.^I_rr@`OJ-:4DS^I*'rrMt`o7-snQH/Ckj8T,.rI>&pFHjc2rV6Bmp@Nk<
+IXnNVq:#?DO7Rl)G)EoqrS@JSrJpDu"E/mohYH@7J,~>
+kPkSXIcg\8"&HSrp\b#trrD*X!!FToUXo/4rrN(nnc/c4ZJbQ=rr>1\!!WL7J>q2prqQKorYP2,
+"*gWopXB-B+7fI87Z+hArS@JRTCDmb-?>3`lMTiFJ,~>
+kPkSXTBAfN9RXtJp\b#trrDB`8d&1@UXo/4rrN)2nk'"5ZJbQ=rr@0>8d/s[WS$qDq#:Bo>4bDh
+HDK3fe,KDUo1B-pMS&*Nh>[JenO`scEfe*%r9+*1~>
+kPkSX\EAAHJY1<Up\b#trrDTfJ-:.DUXo/4rrN)CnpggsZJbQ=rrAYhJ-BnBWS$qDq#:BoMtDN%
+I&,Ehe,KE/o7-seMS&*Nh>[K$nULdfEfe*%r9+*1~>
+kPkV^nP\HK"[]6TpAFourrBt8!!G$*WS@4@rrMd5o)JnST$R!,jo5>,r;[!KEf[rur:^-j9(W)c
+@[tj<e,KCio)Jn_MS&*NhZ!WR,k:p>!aC&Ie+EY&s*t~>
+kPkV^nU]do"a.KDpAFourrCRI8d&=HWS@4@rrMh"o1B-pT$R!,jo5>:rCR5oEf[rur:^-jIe657
+E1G>Je,KDUo1B-pMS&*NhZ!WSA+<.pB7-K'o`"%RJ,~>
+kPkV^nY>2r"e*NupAFourrD$VJ-:+GWS@4@rrMkRnpgh6cgq(srrD6\J-C4=O1siUpAY,goRI$i
+SC-uXrrA,OJ-:%Q]BK4MrrN(]nULd]I&#0_roa<3~>
+k5PM[k=4M4"YQ&$o_\WtrrA\i!!GK:Y2K0LrrN(So)JmuLqMmIjo5<jr;["&I%o*^rq??lEqB>7
+:6irjrm^rJ+7fI87Z+hArSIPSL[b?J.rpT[jnn3?J,~>
+k5PM[k]l/\"_b%#o_\WtrrBY/8d&IOY2K0LrrN(so1B-[MnJ3Ljo5=CrCR6*I%o*^rq??lRe02T
+B9gU.rm^rJ@.Qtn@Z%e]rSIPSWpr[b=)s82jnn3?J,~>
+k5PM[l($gb"d6X`o_\WtrrCCDJ-:%HY2K0LrrN)6npgh$]]T+QrrB>&J-Bq?U=8c6pAY-&oRI'j
+Q-&OpeGfN0o7-seMS&*NhZ!SnnULdeEf@Tkqr[p/~>
+k5PP_q;O6k!!O-]eFE>4])MbXr;ZsmKs]q=o`"sU%eBZ&;Q&1@k5PJN#lXf-)KCYEjSSWM!1i`^
+"?MRZli,E6!$Ce4"@e9\kl'E=!RD&B!!WjDI\bE`roX62~>
+k5PP_q;Z;O8d/=ag%"k9])Mc)rCR3%Ks]q=o`"sY<:`]aDPu.\k5PJS;#X&j;K7T(jSSWM!4h_o
+"CI2*li,E6!+>Cj"Cd8#kl'E=!SpTC8d8%+I\bE`roX62~>
+k5PP_q;de#J-Cb7hXUC>])McErI>#mKs]q=o`"s]L@]otJu@8pk5PJVK`6K*HuY%RjSSWM!7(4e
+"F?*Eli,E6!0?`%"Eo[7kl'E=!U#.,J-LI?I\bE`roX62~>
+jo5G^pYS?t!!WX*Z0h8_rk8=3=T&4&=,OWRrUg*jr+Ya&"<*NDm/?,I!/pdU"\F!1cLCi+rrC15
+!!FU(\E<_=rr=/4!!GcK]BK4OrrM:.nc/jq:Nhr;kPF<?J,~>
+jo5G^pY^2R8d8%@_X7'prk8=3M#BpKBSsFcrUg*jr0-_E"B:W)m/?,I!3Q2l"^u\IcLCi+rrC^D
+8d&4O\E<_=rr?Hu8d&U\]BK4OrrMOtnO`soG*B`)qW7a-~>
+jo5G^pYhS#J-LV"c0b6&rk8=3XSmYPFGd]orUg*jr3GpE"FlZTm/?,I!6+ne"`ns[cLCi+rrD*O
+J-:7U\E<_=rrA,OJ-:%Q]BK4OrrM_SnULd_G*B`)qW7a-~>
+jSo>]p>/^*!!OX"g@G+=^]+9nr;Zt2Nkju[o`#!ldf]1A")b@#puq_Yq],S8"Uo7&ZJbNMrrDW^
+!!F!fYi,B-rr=/4!!GcK]BK4PrrM^JnGibPEepsSp&=(QJ,~>
+jSo>]p>:>W8d/[thX^OA^]+:RrCR3/Nkju[o`#!lhG!N5"+7?1puq_Yr*K@p"\rriZJbNMrrD`a
+8d&"CYi,B-rr?Hu8d&U\]BK4PrrMh3nOa!iEepsSp&=(QJ,~>
+jSo>]p>DP#J-CtCipusE^]+;(rI>#lNkju[o`#!ljb!)S",=&;puq_YrJpl-"b(BEZJbNMrrDid
+J-::PYi,B-rrA,OJ-:%Q]BK4PrrMqanULgdEepsSp&=(QJ,~>
+j8T8]p>U&nhuErc:Tj*Yr;OS5!#5A3"EK[Fmf)hX!W,O]!!G-KcLLnurrB+u!!PE,QH/Cko`"sk
+-M7?A"+@-%psf<D+7fI87Z+hArSmhXj!aEt"tFPCV9n]/jSs`~>
+j8T8]p>V6/i(=2KJ&(IFr;OS5!*K1l"EK[Fmf)hX!W.?;8d&LkcLLnurrC"98d/LDQH/Cko`"sk
+AG&Ot97<bmpsf<D@.Qtn@Z%e]rSmhXlXoZZ#$5_pV9n]/jSs`~>
+j8T8]p>W'&i.)#`U!;uur;OS5!/g`*"EK[Fmf)hX!W/Y_J-2=enc%eQ!7h$us)nL1a6iitrrN+^
+oRI$lW7q$rrrA,OJ-:%Q]BK4QrrMYSnULggDh=h4n,28HJ,~>
+ir9/\pZ.SOh>d^)K])IurPed:oDJXm%<Rr\o)A7\!WK_&!!EL[]&ihRrr>1\!!NI<JZIN!o)A\b
+oDeu+T@<J_rr=/4!!GcK]BK4RrrK_KnGib<D18(tlMBQ@J,~>
+ir9/\pZ/;QhF[r\U>tkArPed:pAISe:3;iHo)A7\!WL=78d%hD]&ihRrr@0?8d.k(JZIN!o)A]@
+oL]4+T@<J_rr?Hu8d&U\]BK4RrrLGMnOa!cDLS1ulMBQ@J,~>
+ir9/\pZ/f;hLGci\E*8XrPed:q>GgIIWUq#o)A7\!WLdCJ-1_@jnn<B!1s.>"E8pmg@t1<!2fC=
+"+-Zhp!j!AO7Rl)G)EoqrT!nYh2LlS#'k-9T#g3nj8XW~>
+iVs&[puoFNh#ITiD9q_HrQ"p<ci!hH)0h_#o^Vq^qCM4<"AP`Dp&=:W!6b<@"Y=_W_!:jgrr@67
+!!H2dbOPS^rr=/4!!GE?\`WhOrrM_0n,N\IDgn4ok5##:s*t~>
+iVs&[puoY3h+@iMP1K-trQ"p<h>KqK;L"b\o^Vq^qIoIm"Dajbp&=:W!8@BD"^#i._!:jgrrAY_
+8d&jpbOPS^rr?Hu8d&IV\`WhOrrMh]n4EpgDgn4ok5##:s*t~>
+iVs&[puoe]h1,Z`Y1rI@rQ"p<kP]o6H[)+0o^Vq^qNUT%"G*E#p&=:W!9O00"aG*N_!:jgrrBY&
+J-:1bbOPS^rrA,OJ-:+Q\`WhOrrMr)n:1aeDgn4ok5##:s*t~>
+i;Wu[qWuaU$Jb[c#%#OAq#/>7!3c>$"=&5ef(SY6!WAP[!!F%"_s@9err?=&!!QPSUt,,:o)A]d
+oDf"ZOMgGaec,Uknc/h9HIhZarosFaqk"ku!!i`qEe9n#jS/Z5s*t~>
+i;Wu[qWuaq:u+_I:5I?dq#/>7!64t0"BBcBf(SY6!WBIu8d&%T_s@9err@uU8d/mVUt,,:o)A^(
+oL]6qOMgGaec,VWnk''gOk91$rosFar4?;*8dJ*tEe9n#jS/Z5s*t~>
+i;Wu[qWub0K&(q\Ju72gq#/>7!8%1""F5<ff(SY6!WC14J-:@b_s@9errB5#J-Bq@Ut,,:o)A^;
+oRI'jOMgGaec,W1npgmqU=f&6rosFarQgMoJ-^XGEe9n#jS/Z5s*t~>
+hZ!`Uo%pZ;g].K^?-_m5rQG3@Mu<VY0RftTq!e:anJ:]r")+moq!A"]k61ba"W_T@]&rn[rrCI=
+!!Fg/]''%Brr=/1!!X3S]^Y^orpKdflAHnV!!jBGG)3!9k4el6s*t~>
+hZ!`Uo%poqge%`FLXbberQG3@Xo1ip=am=(q!e:ao3(ZW"*h$*q!A"]mS3[Q"]KE!]&rn[rrCpJ
+8d&:R]''%Brr?Hr8d8C[b4,3(rpKdfn>p-h8dJ:-G)3!9k4el6s*t~>
+hZ!`Uo%q*DgjfQ[V:b52rQG3@`Vk;iG^cUGq!e:aonr?k",*l6q!A"]o7Hsl"ab6I]&rn[rrD6S
+J-:4U]''%BrrA,LJ-Lh3eF<82rpKdfoYls^J-^L@G)3!9k4el6s*t~>
+h>[ZWpZTt`,hrA'$uO\eq>SY=!,2<2"?M+:htljB!W@H<!!FsDbjbW!rr@EE!!Q#@T$R!,nc&Xd
+"SD`t(50!Qqpk]H+70%7)dScMnbN(\rr2]m"THu<9*F_a#ms"=IZq"_lM:G;s*t~>
+h>[ZWpZTtq?JJ-V;N]c(q>SY=!0mFS"C6S]htljB!WA_`8d&IhbjbW!rrAel8d/[LT$R!,nc&Xe
+9_D!\;M;@8qpk]H@-pPm>`#`8o(i1]rr2]m"TIDfIn]?(#u+cHIZq"_lM:G;s*t~>
+h>[ZWpZTu)LtmLaKWEquq>SY=!4;]T"Eo@!htljB!WBY%J-:@jbjbW!rrBb2J-C">T$R!,nc&Xf
+K(XWsI>"ocqpk]HO6qH(MlF\OoD/:^rr2]m"TI]/V1S2e$%?u9IZq"_lM:G;s*t~>
+h#@TXqXE@]F;EX3"W<3Xo)&F4rr>Rf!!GcE[,_)QrrM$_oDf!sK"0n=mf*=^'`J(9%W7$-i;)mB
+!WFSA!!EISWS@3urr=/*!!`TO7UCD#R[X2E"+FiG&+0E)&j^D^N2+/Bn,!%@s*t~>
+h#@TXqXE@]N`Oq-"^7_^o)&F4rr@HF8d&RU[,_)QrrM:YoL]6ZL:H=Amf*=`=T1nr:2blni;)mB
+!WHa)8d%h:WS@3urr?Hk8dA%!HAeDs[^Q.D"/:s%<UNHd:g\3hN2+/Bn,!%@s*t~>
+h#@TXqXE@]TS2*N"c9\Jo)&F4rrAknJ-:"J[,_)QrrMJ=o7-q#\E*PTrrN"SrdY0$E/(^Wq=+Cb
+rfm)+"Fkm"g\B>!!0?Ap#_J/2XLc<lb00e."2;(4L[K["I!'IVN2+/Bn,!%@s*t~>
+gA_BUpZpGDA.IAp"?!RMpANA<!$qLC"B1,fkPalL!W6-m!!Gffeb&k0rrADa!!PH-QcSUnn,EAc
+oDeu/T[`Ybrr=.]!!t5jG_r*'dHC3#h>`!~>
+gA_BUpZpGEK2UJs"Dkm;pANA<!+Yt""D3J$kPalL!W7cF8d&h'eb&k0rrBJ*8d/LDQcSUnn,EB@
+oL]4-T[`Ybrr?HI8dSU9G_r*'dHC3#h>`!~>
+gA_BUpZpGFRY'=F"I$pjpANA<!0[;2"E]I2kPalL!W8thJ-:G!eb&k0rrC7@JH'cpQcSUnn,EBd
+oRI$jT[`YbrrA,#J-gF<G_r*'dHC3#h>`!~>
+g&D<Vr:K4%ZsO=!!!NREf^AS7df0:Mr;Zt/NPFcWn,EFfa7B96'9U/sr9sXc./j2M")!1dg\:.9
+!.shC"B:c4o)@5?!$Ce4!\Go/f)Q$Y.ri5UmeZq<s*t~>
+g&D<Vr:K4%[t%?38d.qNg$\\8df0;@rCR3.NPFcWn,EFfealB9;3A`\r9sXcB)YC+95K0\g\:.9
+!2fB\"DX=Jo)@5?!+>Cjs&]7qf1H9@?&-/JmeZq<s*t~>
+g&D<Vr:K4%\<qm(J-CP'g@"e9df0<!rI>#lNPFcWn,EFfht)@$J!%V5r9sXcPl6+8Dh5"Ep[8%]
+_"<-[HC2qIrmq)LO7Rl'GBn\hJ-LRk^=r#OrnRO(~>
+fDc*Tqt&mqZ=k!/!!FdZk4SZ%rrCgO!!I,#`9mQlrrN!Vo)Jl'Xk`^@rrBD(!!OopP/6G]mf*9h
+oDf"ZOi6Ydf)G^lo)Jt_FFe0r+9^j-":,u"5ofV!"W2O:o(i7?s*t~>
+fDc*Tqt&mq[=hQ98d&\=k4SZ%rrD3Z8d'*q`9mQlrrN"9o1B+.Xk`^@rrC1>8d/=<P/6G]mf*:*
+oL]6qOi6Ydf)G_Xo1B3pFFnpW=A7mM"AMfu@TE.p"^.;Lo(i7?s*t~>
+fDc*Tqt&mq[[;^'J-:nOk4SZ%rrDHaJ-9qU`9mQlrrN"co7-prXk`^@rrCaNJ-C1=P/6G]mf*:;
+oRI'jOi6Ydf)G`2o76j_"+uJeK'%RdIXHHeIeS?rLp>k.q>K.LJ,~>
+ec,mRqXNUl\8s"R!!E[eh!k3krrB\0!!NOIQ-/Uqmf*=eV"4Qh.@JBJrpg!g7/[)h>(*3sp&=CZ
+!7g]A"=oAAkl'*4!$Ce4%7Pf?[^N-%G$@?g+VbIZ!"98O,rS>#EdiXsO-3'-!!NdIf^S_8huA3~>
+ec,mRqXNUl\;FVL8d%t`h!k3krrC@C8d.n0Q-/Uqmf*=e]^n_u>+*S&rpg!gHMpG>B76T+p&=CZ
+!9*QB"BgVokl'*4!+>Cj%:Od[[^N-'KQV!8=&Mie8dnHm='fHTGCG1#O-=PV8d/+Tg[P%;huA3~>
+ec,mRqXNUl\=860J-:M/h!k3krrCmRJ-CFDQ-/Uqmf*=ecLZPhJ!nLKrpg!gUA]TGEIFY5p&=CZ
+!9s-+"FH$<kl'*4!0?`%$?grm[^N-'Nei@=rdXTk%"<VPH[0m_IY3H;P`>Be"bj&7nG3%?s*t~>
+e,K^QqXNXp]SSiUhZ*dcdd-`.fDbi;r;Zs2G+-bKm/I+Z)Y="4!dqH:qXXXdci!hI)0(SGjnnHF
+!WEAt!!F'jZJtc4rr=/4!"qbW[+OEmcGI#jU7.@/N.uLtF8U%iGCbC#LlIRcTW#**_T9cO#ke6%
+'7o05qYoIRJ,~>
+e,K^QqXNXp]U*D-hb"$(dd-`.fDbiYrCR2fG+-bKm/I+[>P(Mj98'b6qXXXdh>KqL;K7W+jnnHF
+!WGmf8d&%FZJtc4rr?Hu8ePTh[+OEmcGI#jU7.@/N/2t4I/J:%I=[$)LlIRcTW#**_T9ce:A.9`
+<hA=@qYoIRJ,~>
+e,K[PqXNXp]V18?J-;IllhUP3rrC7@J-::DRa:TlrrMkQo7-q"[c@5TrrD6\J-C:>Mn8$ImJd4d
+K_9iuI>"ocqptcIO7Rl7G)3NXj4_eq[]?-kQ&pr\L4k3WK)^B3K8#,@P*quAYdqWla/agcJ-C_7
+iplmEiW"E~>
+dJjLOqXWe!^nP'OhuEmGa6*0rf`(qrr;Zs=Gb<LYm/I+bJb&jE7&&-%rq$-i>l=X+8U6lPo)A%V
+!WF_E!!EISWS@4!rr=/4!"qbY]'&n`o'>Amf$DIU^:LbYYPPC4Z*h0Y`m*#fiTBLrmc()Uo`,+G
+ZKCiXir=N~>
+dJjLOqXWe!^nuHZi(=,kaQE9sf`(rDrCR2jGb<LYm/I+bV"71]B;3iHrq$-iMu?6O@<nEho)A%V
+!WHj,8d%h:WS@4!rr?Hu8ePTj]'&n`o'>Amf$DIU^:LbYYPPC4Z*h0Y`m*#fiTBLrmc(QPoh#?u
+^?5+dir=N~>
+dJjLOqXWe!^oEQMi.(roal`Btf`(rarI>#tGb<LYm/I+b^%-[UU=/]5oD\fnrI>&mH(E7OrpB^d
+rg*5-"Fkm"g\BA"!0?`%&pB/DkP=lClf?mQccO)=]!eoJqQ:@6[CX/nc.(M,k3VU*ikC0?J-:tR
+k4SZ3s*t~>
+ci4=Nqt97.aKp@Q"QBCa3PjeMrn7;O;uH\!-@DWApZqh[j9P;W":pO.l2:2R!TO=^!!NdJL9fb5
+li-rkoDeu,T[`Ycrr=/4!"qbY]BK4nrr2ikp@Ie?lK@9hi;;C=i8Wh\lL+69q"jpfrWDu]ZQAc>
+"U8r"meZqDs*t~>
+ci4=Nqt97.aKpt>9]AYIC;T'*rn7;OL&FUH<d^^qpZqh[l;.%E"Ak/pl2:2R!UEJZ8d.t-L9fb5
+li-sDoL]4,T[`Ycrr?Hu8ePTj]BK4nrr2ikp@Ie?lK@9hi;;C=i8Wh\lL+69q"jpfrWDu]^0L>'
+"\k-5meZqDs*t~>
+ci4:Mqt97.aKqCmiID&l_rUOjg&D&PrI>#rI&,Ehli."RKCjZsIuqJ1r:L!inUgaj"b(BEZJbQE
+rrB4oJ-11leFhDm!0?`%&pB/Ekl(P\rquTcoC2,3kN1a^qqhb=ioK:fmdg&GqY^?l"8V6&MY2K'
+JuIDkqYoRUJ,~>
+c2S+Lr:fX<d(PlG%c[Nl2nn;Frn@AP2#RCW0n-+Wq<S%]r*Jsp"'qt]p[nIcF8Z(B3Hg_/mJZAN
+!/gCK"B(W2nc%/?!$Ce4"@e9\kl(AXs8N&ss8;]h"oJ5rrVlflrr`/d_]SLN"?sffp\s:SJ,~>
+c2S+Lr:fX<d(Q/s;<(7OBu&a%rn@APDZ*01>(3I+q<S%]r/:/="*:Nsp[nIcSGc%`>]uFRmJZAN
+!3>`a"DO7Inc%/?!+>Cj"Cd8#kl(AXs8N&ss8;]h"oJ5rrVlflrr`/db$FX3"E;HFp\s:SJ,~>
+c2S+Lr:fX<d(Q<<K&_@aNPOQIrn@APRf.a>G^cXIq<S%]r2fL?",!Z.p[nIc\c%$^F`s(kmJZAN
+!6"M["F?HZnc%/?!0?`%"Eo[7kl(AXs8N&ss8;]h"oJ5rrVlflrr`/dc\qFG"I.*mp\s:SJ,~>
+b5VbGqXWk&`iNbjj8]<@^>ekcg]%6br;Zs]JZdr-li."b`:Es3-()dArV$6lmh#Hu"Tr7bX4m=5
+rrB=r!!GKI_sIBSrr=/4!!GcK]BK4Lrr`2h\eF]9"<t22o_mqPJ,~>
+b5VbGqXWk&`ianpj@TPh^Z+tdg]%7RrCR2uJZdr-li."bddp'6=d[:urV$6loMtl_"\WT\X4m=5
+rrC+38d&Ra_sIBSrr?Hu8d&U\]BK4Lrr`2h`E)V'"CA[uo_mqPJ,~>
+b5VbGqXWk&`itb^jF@Am^uG(eg]%80rI>#oJZdr-li."bhXc7#J!e=FrV$6lpPAcu"E/gkg@sn4
+!8$jn"F?0Im/GW:!0?`%"Eo[7kl'?;"8q]7L\-*"MSJ-BrT=-1~>
+aSuPFr:]L7c+%g=jT#EP_;tCjh>[K@qu?jgKXBh<lMgn^2"UbN!d_65qY'phO8T%^-?>3`l29iH
+!8d>J"=8o9kPa$4!$Ce4"@e9\kl'<:"8q_s$1n3#'qsFRr9+*1~>
+aSuPFr:]L7c+&X9j[oYp_;tCjh>[KFr(7*#KXBh<lMgn^DY$I&K!aP6pAY,srCR5oEfe*$r9F:^
+kO_@L=,FNOrR_&L@.Qtn@Z%e]rS7DTr:7^$oL]6eXk`LFkPp&~>
+aSuPFr:]L7c+'6tja[Jq_;tCjh>[KJr."omKXBh<lMgn^R.Gh1LpZ1<pAY-5rI>&rEfe*$r9F:^
+mdu#4I#5GtrR_&LO7Rl)G)EoqrS7DTr:8'aoRI'u[G:?NkPp&~>
+`W$2Aq!d=l]RM<k!!?`Lk5!j5!6b9?"B1,ekPXWF!WJY]!!GEWdI[A4rrN!6r;["$I&#3`rp'La
+rX8B!";?BkiVM1+!$Ce4"@e9\kl'99"8q_Z"7uQr&#@nLr9402~>
+`W$2Aq!d=l]TQXa8csU^k5!j5!8@?C"D3J#kPXWF!WKS"8d&[tdI[A4rrN%%rCR6)I&#3`rp'La
+r_iD]"Aj]SiVM1+!+>Cj"Cd8#kl'99"8q_p9_:p[;QSRBr9402~>
+`W$2Aq!d=l]V(&BJ-2(Tk5!j5!9O-/"E]I1kPXWF!WL:5J-2IloD\Ob!W@uUJ-Bq?UX\r8lMgna
+L@p'"I=e]^qUb`IO7Rl)G)EoqrS.>Sr:7[ToRI'sZJ"gHkl6/~>
+_uBu@qXWe!^OdTl!!E@Ub3Sr]rrAtp!!HSd^?Y[]rrMX&oDf"%N4nHQq#:>dr;[!:E/M0dqs"+]
+r\jEL"9NkHgA';"!$Ce4"@e9\kl'68!rVP*o)Jn2WnHtAl2Q8~>
+_uBu@qXWe!^Q_sd8d%eMb3Sr]rrBk48d&mf^?Y[]rrM^loL]6]NkOZSq#:?+rCR5jE/M0dqs"+]
+rc%L%"+7$#pt,NG@.Qtn@Z%e]rS%8Qr:#pA8d&8!g%,++s*t~>
+_uBu@qXWe!^S6JGJ-2@blhfQ=!7Ujr"ETO9lM]uI!VM9@J-:@^^$,ChrrCCDJ-C=>MR_aEl2Le`
+Re2+4I](opfDbi3o7-seMS&*NgA_6Pn?2A5"GO/7o)7hQJ,~>
+_>ac>qt0+(^ip[\!!Eq.dd[4mrr@iP!!Hnq_sIBerrN(=o)JkpWS."?rr=bO!!P]6S':C$kl1Wp
+oDeu&T$m8_rr=/4!!GcK]BK4HrrW)b4nAXV.^\"(rp'N6~>
+_>ac>qt0+(^lDL\8d&(gdd[4mrrB(s8d'$n_sIBerrN(do1B+(WS."?rr?m68d/OGS':C$kl1XG
+oL]4)T$m8_rr?Hu8d&U\]BK4HrrW)bF7W!,@("e_rp'N6~>
+_>ac>qt0+(^n?DGJ-:J%dd[4mrrBt7J-9tU_sIBerrN),o7-ppWS."?rrAGbJ-C%>S':C$kl1Xg
+oRI$jT$m8_rrA,OJ-:%Q]BK4HrrW)bRe)%4Lpl+3rp'N6~>
+^]+Q<r:T:)]OqT:!!GKkh"La*rr?U-!!IA-aRB,lrrC^C!!FI2a6ij%rrBD(!!NRBKWs>.kPkOB
+oDf"fQHAXqf`(pno)Jn_MS&*Nf`)$LcjfRH"Albjq#9UZJ,~>
+^]+Q<r:T:)]nK8I8d&k6h"La*rrA2Z8d'4"aRB,lrrD$L8d&4]a6ij%rrC1>8d.n*KWs>.kPkOb
+oL]7!QHAXqf`(qZo1B-pMS&*Nf`)$LfMhB6"E_<9q#9UZJ,~>
+^]+Q<r:T:)^70`>J-:\6h"La*rrBA&J-9qXaRB,lrrD9SJ-:@fa6ij%rrCaNJ-CF@KWs>.kPkP%
+oRI'jQHAXqf`(r4o7-seMS&*Nf`)$LhM(QO"HL.Sq#9UZJ,~>
+^&J<9r:K4&Y!D:Q"9O%gkka6;!'pJ_":B7<bjsrs!W5=V!!@;Ji;*6L!'pJ_"Yb%_`U*QdrrBJ!
+!!G0>_!D!Prr=/4!!GcK]BK4GrrW2pN:R#P!e\MXqs494~>
+^&J<9r:K4&Zu>8&"A=Wgkka6;!-eB6"AO!*bjsrs!W7678csOJi;*6L!-eB6"^,r3`U*QdrrC46
+8d&I\_!D!Prr?Hu8d&U\]BK4GrrW2pWq/gc99@0Yqs494~>
+^&J<9r:K4&\<6',"-gXcqV_ART`'BDIWUt$o&p#Rr1NY3",F2?q>1*kT`'BEG'&tfm/?,I!87!p
+"FH0Eli,Q:!0?`%"Eo[7kl'06!rhu0npgh1`p3Hes*t~>
+]Di*7qt&moL_B%S"=g4qo)@VJ!$(q;";#dIdIcW%!WK1l!!G?Sd.726rrC+;!!QVVVqC_BkPkPH
+oDf"<LUQ=Bf`(pno)Jn_MS&*NfDbpOn1+#0"<aVko)7qTJ,~>
+]Di*7qt&moS5eiI"C7hOo)@VJ!+#Oq"Aa63dIcW%!WKt-8d&Upd.726rrC[K8d/jVVqC_BkPkPN
+oL]6eLUQ=Bf`(qZo1B-pMS&*NfDbpOnRqGc"BhYOo)7qTJ,~>
+]Di*7qt&moWeB_h"G3Gto)@VJ!07#."FYKadIcW%!WLO<J-2Cio)ARe!9=!-"`Spgf_5=-rrDZ_
+J-:7T[cRG>rrA,OJ-:%Q]BK4FrrW2jPOj;-Ju@)grTsQ7~>
+\c2j4qXE@Q46uqLHF`,5ir9#Uqu?j<H(`[\k5PJU)Y="4$&H7Wqu$Ho;#L@t*c[.OkPOEA!WEc*
+!!EXZXl'!-rr=/4!!GcK]BK4ErrN%nnc/c%\)R5Ms*t~>
+\c2j4qXE@UD<sjsKXp1?ir9#Vr(7)iH(`[\k5PJV>kCVk:5cdJqu$HoK)J:F;fRc/kPOEA!WH0n
+8d%k=Xl'!-rr?Hu8d&U\]BK4ErrN&0nk'"1\)R5Ms*t~>
+\c2j4qXE@YOmIT#N4J$Gir9#Wr."osH(`[\k5PJWN:_W'IuM&'qu$HoW;V5MH?"nVkPOEA!WIrK
+J-:=OXl'!-rrA,OJ-:%Q]BK4ErrN&Anpgh$\)R5Ms*t~>
+\,QX1pZg7G!q$$k3hb!mro="YfDGUO-%)N@pZDJVrHe&8"&c)MpAP!kg\_$T89pfRo)@eO!WG:T
+!!@8;fCmks!$Ce4"@e9\kl''3!V@E(!!F./bO5>rs*t~>
+\,QX1pZg7g9^YLUA"h?Aro="Yj8;LP<d^^qpZDJVrL`[R")b'ipAP!kk57gT@!S?jo)@eO!WI66
+8cs=6fCmks!+>Cj"Cd8#kl''3!VKdj8d&+`bO5>rs*t~>
+\,QU0pZg8(m=5=jU!iN2j8T,Fr."oqI&,Ehk5PJ\](:FSJuI>qrVllbr."rkH(NCRroX4]rgrb4
+"+6orp=TBFO7Rl)G)EoqrRLoKp5SWn".[R&rU'W8~>
+mJd4QqYpK?rrrE!o&#]Bmf3J"NkOZSj8T+gqu?jNI];)tjo5A:"S;Zs)O/5-rVlfs?i9s.$>bI'
+iVDR7!,D-+"BLu:o)@>B!$Ce4"@e9\kl''3!W@<7!!@#BhtZU=J,~>
+mJd4Wr;Q]ArrrE!o&$BDmn*^YNkOZSj8T,'r(7)oI];)tjo5AB9_:p[<0YAgrVlfsNr;QR9l>]l
+iVDR7!0m+J"DjOPo)@>B!+>Cj"Cd8#kl''3!WAV\8csIHhtZU=J,~>
+mJd4[r;Q]ArrrE!o&$m/mskOjNkOZSj8T,6r."opI];)tjo5AHK(OQrJ!@q=rVlfsYPitTIVsnH
+iVDR7!4;BK"FHT_o)@>B!0?`%"Eo[7kl''3!WBV#J-1V5htZU=J,~>
+n,EUdIh7t8oD6`3"TA)XY8cp1"(nRepZ)8RQi$gd2h8'gqW7_Xr'^,V#B6p)q#CBW"T8<(20G5*
+mJZ,G!0QmR"@/-hmf(o>!$Ce4"@e9\kl'$2!6t'7">H@jnG_kUJ,~>
+n,EUfUfFbioD6`3"TA)X\m"Pp"*U]upZ)8R[JWW">_'!7qW7_Xr-@m+#CNc5q#CB^:&RZf>'6.O
+mJZ,G!3l)f"CdP5mf(o>!+>Cj"Cd8#kl'$2!8@!9"C@VCnG_kUJ,~>
+n,EUh^PKr!oD6`3"TA)X_hmi4"+mQ,pZ)8RbPZknGCZjRqW7_Xr1NY3#DTJ?q#CBcK)L6"FT[rM
+mJZ,G!6Fe_"FH<Nmf(o>!0?`%"Eo[7kl'$2!9<U"".[X*rpKf:~>
+n,EX9!!!tXg$nparri>tm(a\3!!GTUbjk\nrr@0=!!GQ>ZJtcCrrN+qo)JtOSBg[(s)7i9"Ti+_
+WnR1,rrC%1!!F^-]]f=Irr=/4!!GcK]BK4CrrN$5o)JmtL:QFCmf.e~>
+n,EXH8kN@1g$nparri>tm)WK%8d&[mbjk\nrrASe8d&LRZJtcCrrN,4o1B3oSBg[(s-`dW"DNCd
+g@jS,!7g^6"B^Pokl'37!+>Cj"Cd8#kl'$2!W6-m8d%hD\`N_Vs*t~>
+n,EXSJ:NR#g$nparri>tm*1FWJ-::gbjk\nrrBY.J-:%JZJtcCrrN,Fnpgn6cLLo6\,:aZDh+kA
+p>c/QiUhX'I#>T#rRq2NO7Rl)G)EoqrRCiJr/1&q",aYNqsOK7~>
+n,E[i#QOj,[bUTUbl7eBnAQL>!!FL)^?GLUrr?!q!!G`F[cRGJrrMg/oDf("Kt?FDmg/jl"WqcF
+^?GLTrrDKZ!!EsfZJkZ5rr=/4!!GcK]BK4CrrN*rnc/buVUtP0s*t~>
+n,E[k:J+6*[bUTUbl7eBnB>5/8d&1R^?GLUrr@cN8d&RW[cRGJrrMjsoL]<]Lq;aGoMGKY"]TN&
+^?GLTrrDW^8d%tCZJkZ5rr?Hu8d&U\]BK4CrrN+Nnk'")VUtP0s*t~>
+n,E[kKReT;[bUTUbl7eBnBm3bJ-:7Y^?GLUrrB(sJ-:%M[cRGJrrMnPo7."&]&rnaK`-E)H?,%[
+kksK@!;?&8"FYp.iVM7-!0?`%"Eo[7kl'$2!WK"eJ-)V"p?qs2~>
+n,E[m4obQgMSn]VbPq\Bo#)44!!ERZYi,B=rr=kQ!!H5W]'0+RrrN(9o)JnfVUkEiqu?moHD&^X
+ro="ZrYP2,"*g`tpt>ZI+7fI87Z+hArR:cHII[@@3L7bTrpTl;~>
+n,E[mG"PA%Oi-G]bPq\Bo#t/*8d%k?Yi,B=rr?s78d&a_]'0+RrrN(ao1B.$VUkF9r(7-%HD&^X
+ro="Zr`\qd"+-s"pt>ZI@.Qtn@Z%e]rR:cHU@LnZ@$\n&rpTl;~>
+n,EFfT)O6BQG_tbbPq\Bo$W<aJ-:@RYi,B=rrAMcJ-9tN]'0+RrrN)*o7-spVUkFTr."rkHD&^X
+ro="ZrepE!"+I0%pt>ZIO7Rl)G)EoqrR:cH^%-[VI?qtCrpTl;~>
+mf*90rW!'WW7LV?bPq\Bo;Vo`!!@>=f_=J,!"f&."B^VslM]cC!7CB<";d9>i"5he"Uf1&[,Ur@
+rr>O\!!?MtdIc,l!$Ce4"@e9\kl'!1!1iZ\"<!*.kPXfKJ,~>
+mf*9Wr^m<&W7LV?bPq\Bo=Rcf8cs@7f_=J,!*/qh"DEb.lM]cC!8R0<"B1N%j&Q%M"\rrj[,Ur@
+rr@E<8crt%dIc,l!+>Cj"Cd8#kl'!1!4hYm"B12hkPXfKJ,~>
+mf*9trdY-(W7LV?bPq\Bo>lLRJ-11pf_=J,!/UQ'"E]U:lM]cC!9Ng&"FlWQk(rtd"b(BF[,Ur@
+rrAecJ-1.hdIc,l!0?`%"Eo[7kl'!1!6t(b"FZ0=kPXfKJ,~>
+mf*9kr;Zq@]]K"4rrW,hB(>p(@%5O8jo5>LqZ$b0O2C8_j8T/X2"L\KBWl^Z!!P6'QcSUniVrmu
+oDf"]PfW=mgA_-po)Jn_MS&*Ne,KEZnc/dpJ?@](n,In~>
+mf*:,rCR0E]]K"4rrW,hNq,dEDk#,Gjo5>Qqaq!-O2C8_j8T/XDY$I%H*<\78d/CAQcSUniVrnH
+oL]6rPfW=mgA_.\o1B-pMS&*Ne,KEmnk'$XJ?@](n,In~>
+mf*:<rI>!2]]K"4rrW,hXR^lDHCN:Rjo5>Tqg\fkO2C8_j8T/XR.Gh0Ks.cZJ-C(=QcSUniVrnf
+oRI'kPfW=mgA_/6o7-seMS&*Ne,KF'n:1SBhYHX?J,~>
+mf*:Rr;Zs>T$Qp)b5VP@j;%7d"B(K*nG_SM!6b6>"DEt<mf)8H!WJDV!!4j?')_e6!b$VZg@sP*
+!1i`^"=f>Cl2B?9!$Ce4"@e9\kl'!1!5@t'")+CYp$_p2~>
+mf*:WrCR2nT[3-+b5VP@k?.=J"DF%@nG_SM!8@<B"E0ICmf)8H!WKCr8ci=d<r>PmBn35;pYc&O
+\b&Js=c9uXrS%8O@.Qtn@Z%e]rR:cHd.'^1F.q.Wn,In~>
+mf*:ZrI>$%T[3-+b5VP@lA>+_"F-0PnG_SM!9O*."E]gHmf)8H!WL12J,u*nr."ogJ?%>ti;Wf&
+oRI'lMnSBRgA_/6o7-seMS&*Ne,KF)nUL^hU"/i)s*t~>
+mf*=e-N*oI:p]$RrlY6AqM"M@"A"Tjm/H/I!3>ts"ETjNnG_GI!UU-a!!*3jqu?mBEfRp!r8@ST
+an,Q9'83[NqqD&M+7fI87Z+hArR:cH^@;1+<1(o"rp]r<~>
+mf*=eAGo+'EO4NsrlY6AqPNjV"D!S1m/H/I!5n\+"ETjNnG_GI!UrnW8c_Rur(7,lEfRp!r8@ST
+f^qc=:kZ.6qqD&M@.Qtn@Z%e]rR:cHdIBg3C7*68rp]r<~>
+mf*=eP5Tn6LpPt5rlY6AqRuKN"F-!Em/H/I!7gss"ETjNnG_GI!V:s8J,k3!J-C7>NkaiVi;Wf;
+oRI'mKX0V7gA_/6o7-seMS&*Ne,KF)nULagR*>+"nGe"~>
+mJd/pr;Zs)M8niYb5VPBjp1MY"@nEblM]lF!/paT"9N\3bjs`m!W?*k!!!)u!!Q&BT[NH2i;WfJ
+o)Jl;W7q%#rr=/4!!GcK]BK4BrrBe'!!G`P`9mQns*t~>
+mJd0HrCR2dP/cebb5VPBlVI.F"CmD)lM]lF!3Q,j"*BmRo&9TLrJ0u:!)*5^"_)eNde!IrrrD``
+8csI>gA'D%!+>Cj"Cd8#kl'!1!7C=/"CmP3mJcVTJ,~>
+mJd0ir."m9`p3KErrW2fKCjZsGDs9$rT=+[`VY/fFI15BiVrrWWU53>EdFD,oD[\J!;Q/9"+I3&
+ptG`JO7Rl)G)EoqrR:cHhXQ+!H'#u3rp]r<~>
+mJd0Rqu?jKW7CM=b5VM?:\4Vi6]/P?rT=+[B`%i5%<e2eo\ofNrjD.o"Uf1&[,Ur>rrN*CoDeu!
+T$d2arr=/4!!GcK]BK4BrrB(h!!G?@]]oCas*t~>
+mJd0or(7)tW7CM=b5VM?Jb2P;@>__]rT=+[Pl+,V:3N)Qo\ofNrlOS#"\rrj[,Ur>rrN+.oL]4'
+T$d2arr?Hu8d&U\]BK4BrrBt,8d&IY]]oCas*t~>
+mJd1/r."p'W7CM=b5VM?V=]9@GDa&srT=+[[/>FWIWh1,o\ofNrn$Rg"b(BF[,Ur>rrN+\oRI$j
+T$d2arrA,OJ-:%Q]BK4BrrCU>J-:1V]]oCas*t~>
+mJd19qZ$_.]&NP.rrN+foDf"[M7VpLk5PEOqu?j/GFd1Si;WiS)XdY020P>-meu#B!)E.d"@89m
+mf(u@!$Ce4"@e9\kl'!1!1r]\">GS>k5=`KJ,~>
+mJd1Eqaps<]&NP.rrN,-oL]6oM7VpLk5PF/r(7)eGFd1Si;WiS>jk8g>'?7Rmeu#B!.jc7"Cm\:
+mf(u@!+>Cj"Cd8#kl'!1!4q\m"BpPhk5=`KJ,~>
+mJd1Mqg\d.]&NP.rrN,AoRI'hM7VpLk5PFWr."p!GFd1Si;WiSN:29#F`s+mmeu#B!2fC="FHBR
+mf(u@!0?`%"Eo[7kl'!1!711c"F>g3k5=`KJ,~>
+mJd4c&,ZD1$BiR!r6#$>f^o.H7YnY>r9""Z./X&J&p^,!p#,iNrc@N."CH\Zg@sG'!.+8;"=B&>
+kl'99!$Ce4"@e9\kl'!1!.aS>"=f)2j8AEHJ,~>
+mJd4c<;]>k:702kr6#$>iq,hG@YhVZr9""ZB)G7(:jJ\_p#,iNrgN:J"DE=cg@sG'!2/sV"BUMo
+kl'99!+>Cj"Cd8#kl'!1!2T-W"B^>`j8AEHJ,~>
+mJd4cL\lT(SBC6sb5VJ,oRI'fLq;gJk5PFGr."otH(WUZi;WiW\*nhMDh+kApYGiL]_$^WI#GZ$
+rS.>PO7Rl)G)EoqrR:cH_!upXHA&Wbr:'`:~>
+mJd4d9)ASk0<Egurlb<Br<r8u"@e6Zkl'ZD!!N3""<)T\f(S#$!6t!5"Wh]E^?GLNrrAbb!!Ejc
+Z/PQ6rr=/4!!GcK]BK4Brr?U"!!Fa&YMf9Hs*t~>
+mJd4dIeu_?@'&#Qrlb<BrDN;\"Cd5!kl'ZD!)3;_"B'Q?f(S#$!8?p7"]KH%^?GLNrrB_(8d%qB
+Z/PQ6rr?Hu8d&U\]BK4BrrA2O8d&7JYMf9Hs*t~>
+mJd4dV#,ZFKrir!rlb<BrIsop"EoX5kl'ZD!.t-!"FGHhf(S#$!9<R!"aY3L^?GLNrrCC;J-:=R
+Z/PQ6rrA,OJ-:%Q]BK4BrrB@pJ-:1MYMf9Hs*t~>
+m/I':q>^V,]]An3rrN*Ko`,+kMS/0OkPkPBqZ$a<H_f<ghu<`T/b&fE8:$oUoD[SG!5\7,"*CEn
+pY5]J+7fI87Z+hArR:cH3:QtO.=eSYqXFN8~>
+m/I'^qFUj;]]An3rrN+4oh#?uMS/0OkPkPJqapuhH_f<ghu<`TC%4e!@!\HmoD[SG!7UO3"*pcs
+pY5]J@.Qtn@Z%e]rR:cHEUcX(=FdR3qXFN8~>
+m/I(#qLA[.]]An3rrN+`omd0fMS/0OkPkPPqge]n!i4KChu<`TQ19A.EdFA*oD[SG!8mBu"+I-#
+pY5]JO7Rl)G)EoqrR:cHSFM+4H@W0UqXFN8~>
+m/I'qq>^X(N6:MbbPqQ+o`,,"N5"TUkPkOoqZ$a<I&>Tlhu<`VMXg`N#]#1$iVM@0!8d;I"BM&>
+oD[PF!$Ce4"@e9\kl'!1!"AAt"=\l(htljBJ,~>
+m/I(0qFUlcQ-/IkbPqQcoh#@$N5"TUkPkP-qapuhI&>Tlhu<`VX7Ajd9PoNjiVM@0!9`rG"DjUT
+oD[PF!+>Cj"Cd8#kl'!1!)i>Z"B^2WhtljBJ,~>
+m/I(>q1&R;b3]&LrrAY`J-9tQ^?Y[[rrCmPJ-:4HVV1b%rrN,9npgmmDhbUWqV;)Nmdkr3I%8RT
+rnRMRO7Rl)G)EoqrR:cHL@KcsH@W0UqXFN8~>
+m/I(Uq#COAW7LS>bl7Z0o`,,0OMgGakPkOKqZ$a<I&>WmhZ!W5"S2Ts/p*AumJYi?!<2Qi"?DXa
+mf)#A!$Ce4"@e9\kl'$2!71-7">k\4i;2sCJ,~>
+m/I(Xq+:cnWn-e@bl7Zgoh#@*OMgGakPkOiqapuhI&>WmhZ!W=9_1j[=EKhJmJYi?!<2R^"CRD3
+mf)#A!+>Cj"Cd8#kl'$2!8[-:"C$G[i;2sCJ,~>
+m/I([q1&U$Wn-e@bl7[:omd0cOMgGakPkP*qge]o!iF]HhZ!WCK(FKrGBB+imJYi?!<2S?"FQBO
+mf)#A!0?`%"Eo[7kl'$2!9`j%"F,L#i;2sCJ,~>
+m/I+c0)5JM7(D1LrltHC6hUK`$?VQTnG_VN!-%f8"<2`cgA'P)!W>:T!!HDQVqC^trrN*)oDf":
+M7VjIh#@?no)Jn_MS&*NeGfN0n,NSRK!=83nGe"~>
+m/I+cCACI)Cq/EtrltHCH1ji69luZBnG_VN!1E^V"B'WEgA'P)!W@358d&aTVqC^trrN*poL]6e
+M7VjIh#@@[o1B-pMS&*NeGfNQn4EgiK!=83nGe"~>
+m/I+cQMH%6MR_U=rltHCU%X!?IWUjsnG_VN!4_oVs*OmFgA'P)!WAV]J-9h?VqC^trrN+PoRI'l
+M7VjIh#@A6o7-seMS&*NeGfNhn:1XbK!=83nGe"~>
+li-rrp](D-_WL^>rr>:W!!FEgSC$ojrr>ai!!F-dVV:h%rrN+foDf%/E/V?jqqD&M+7oO9#D0,9
+qV;,A!!GcK]BK4Crr>IV!!GoJ[H.8Ts*t~>
+li-sIpdtX=_WL^>rr@698d&+;SC$ojrr@TH8d&%>VV:h%rrN,-oL]9`E/V?jqqD&M@.[%o9S0G)
+qV;,A8d&U\]BK4Crr@B78d&UW[H.8Ts*t~>
+li-sipj`I1_WL^>rrA\bJ-:1BSC$ojrrAqnJH'uuVV:h%rrN,AoRI*mE/V?jqqD&MO7[r*ItFi\
+qV;,AJ-:%Q]BK4CrrAe_J-9tJ[H.8Ts*t~>
+li-sQp](F$KZi`ZcMml#p&G4TI&,Ehk5PE,qZ$a/I&5Kih>[ND#PA'#4F!@?nc%8B!$Ce4")"C[
+p>#]=!!GcK]BK4DrrMEgn,NSrMS&*NnGe"~>
+li-snpdtZ`PKW=icMml^p.>HmI&,Ehk5PEkqapudI&5Kih>[NH:\@<`?$Mj`nc%8B!+>Cj"*:6g
+p>#]=8d&U\]BK4DrrMXan4EgtMS&*NnGe"~>
+li-t.pOE@;bO#,OrrAJ\J-:%CUtGG(rrA5ZJ-:=KV:bOurrMbEomd3fGaltJrn@APO7Rl(IA>Be
+h#Hqq"Eo[7kl''3!VM'6J-9nM]BK4_s*t~>
+li-t3pAb=+RFC['ci3t]p&G4qK!=20kPkPVq>^X*HD9!ah>[NS9_JGi!bHtdh>#\'!%7@<"A,!(
+nc%AEnc/e^MS&*Nec,W-n,NUqEKA$(rp]r<~>
+li-t@pIYQcU!rN/ci3uKp.>I"K!=20kPkPXqFUlbHD9!ah>[NSJ+ZD:C4`VEpt>ZIAb/LsAsgd3
+rn[VF8d&U\]BK4DrrB1j8d.n.O2L>`nGe"~>
+li-tIpOEBuVpk/5ci4!(p4*9cK!=20kPkPZqLA]tHD9!ah>[NSV"K6@Dh>.Jpt>ZIPOj;-I$i+I
+rn[VFJ-:%Q]BK4DrrC%-J-CFBO2L>`nGe"~>
+li."a&,-&,(oGsVrR(WFn+H_b#]Pa9kksWD!71H@"*gHfp"fWKrhfAh"WqcH_<V!Prr>7S!!Fp7
+_!CsUrrCsI!!GcK]BK4ErrN!Bn,NV6FdUDCrp]r<~>
+li."a<;/uf<iamDrR(WFo_(l\9Q5s(kksWD!8[HC"*gHfp"fWKrkA(u"]TN(_<V!Prr@668d&@Y
+_!CsUrrD9R8d&U\]BK4ErrN%-n4Ej`FdUDCrp]r<~>
+li."aL\H<%KW`turR(WFp\'+@IW17ZkksWD!9a0."*gHfp"fWKrm:@h"aY3N_<V!PrrAY^J-:7[
+_!CsUrrDNYJ-:%Q]BK4ErrN(]n:1[gFdUDCrp]r<~>
+li."b6M:B^,d,qprmLfH\+Te*/p<W*nG_VN!2oVm")==Po\BHIo*b9m"\*g3de*Olrr>:T!!Emf
+[,_&?rrCdD!!GcK]BK4ErrA\[!!GT8Ut>>/s*t~>
+li."bGkO`4?Er;XrmLfHbk=X4=E^(TnG_VN!5SD&"*0mXo\BHIohtNV"^lYMde*Olrr@668d%tE
+[,_&?rrD0O8d&U\]BK4ErrB\"8d&IJUt>>/s*t~>
+li."bT_<m=LU>k/rmLfHg\-.$GBT@snG_VN!7Uao"*g<^o\BHIpP&?l"`ep_de*OlrrA\_J-:=T
+[,_&?rrDEVJ-:%Q]BK4ErrCC6J-9tAUt>>/s*t~>
+lMgj0o`,+AZJP9Re,KDhp&G5!J#M)pk5PF+q#CP&Qd#"!h>[NS=SMk""`&k!iVM4,!'g#S")k*k
+pYPoM^[_@-7Z+hArR_&MpE8r*"TrCkZJt`Ls*t~>
+lMgjVoh#?n[bg]Ve,KE<p.>I"J#M)pk5PFRq+:d+Qd#"!h>[NSL\OIF9PoNjiVM4,!-[p*"*g`t
+pYPoMddg!5@Z%e]rR_&Mq-`\a"\WZcZJt`Ls*t~>
+lMgjromd1$\DHoXe,KEYp4*9bJ#M)pk5PFoq1&TmQd#"!h>[NSWq_)JIrC(JiVM4,!2&h4"+R6&
+pYPoMhsu:#G)EoqrR_&MqiL;t"b1HEZJt`Ls*t~>
+lMgjcoDf"@[,:QUeGfLgpAb@8EK%Qmr9""Z8GN5g8Wq*]rnRMRWqZPt.WgopmJY];!&*mC"A,*.
+o)@PH!3>Yj"@e9\kl'-5!-@T/"Y"PW`9dHks*t~>
+lMgk&oL]6n\)6lXeGfMTpIYTeEK%Qmr9""ZI/-A;AWk($rnRMR_>$V+=*0\HmJY];!,M-t"D=4L
+o)@PH!5nA""Cd8#kl'-5!1`LM"]of0`9dHks*t~>
+lMgk7oRI(#]&32[eGfN/pOEEoEK%Qmr9""ZV"oNDH'628rnRMRdeJ=rG]]1imJY];!138,"FZcb
+o)@PH!7gXj"Eo[7kl'-5!4hQK"aG-Q`9dHks*t~>
+lMgkCo)Jn?[,:QUf)G`Rp&G7mH(N@Qroa:^o*G-l">c"NlM]N<!V6]p!!H)GV:P@lrr<l+!!FI+
+_!:mUrr@uJ!!GcK]BK4GrrL"?n,NXo?%/X$p&=F[J,~>
+lMgkKo1B-m\)6lXf)G`ip.>KuH(N@Qroa:^p/(QW"C-o"lM]N<!VK@d8d&XPV:P@lrr?6n8d&1U
+_!:mUrrB1l8d&U\]BK4GrrLVDmn*asI\kWgrpTl;~>
+lMgkQo7-t"]&32[f)Ga%p4*<dH(N@Qroa:^q1SQo"FH*AlM]N<!V_<DJ-9k?V:P@lrrA#KJ-::]
+_!:mUrrC%/J-:%Q]BK4GrrM)1mskR[I\kWgrpTl;~>
+lMgna'Cu2,,cokprR_&L0_YPN+E3.FiVDX9!1W``";Za"jS[g5!WH3t!!N^ILpuIBf`(sCnGi[p
+I^.i-hu<[enc/e^MS&*Ng&D*9)".G.13/Dfk54THJ,~>
+lMgna=7]#e?F&G[rR_&LD"gO*<,dZ%iVDX9!4_er"B'u^jS[g5!WIlN8d.q-LpuIBf`(sFnO`pW
+J[+/0hu<\<nk'$oMS&*Ng&D*@>OP/f=`TP8k54THJ,~>
+lMgnaM=Z6#Lq)=6rR_&LR.l+7H>n\KiVDX9!6t:h"FZ$4jS[g5!WK+qJ-CC@LpuIBf`(sIn:1Uo
+Z/GK9rrB@qJ-:%Q]BK4HrrM_MmskRbEfRfpqsOK7~>
+lMgna9(Drb'qO.Nr7V)MS+cme"(-AGcLCeqrrMj>pAb;9Wn[='rrB(q!!OutQc\^qf`(rdn,NSg
+U"&`6i;Wd2nc/e^MS&*NgA_3:..7-?&o3#peFW\-s*t~>
+lMgnaIe$)6<iXsGr7V)M\G&T"95&XCcLCeqrrMq*pIYO6Wn[='rrBn38d/=>Qc\^qf`(s"n4Eh"
+U"&`6i;Wdnnk'$oMS&*NgA_3AB(&=r:i1`[eFW\-s*t~>
+lMgnaV"0$=KsTS*r7V)Mc1c_mIrBY)cLCeqrrN"[p4*4Eg\BP'!7L^o"a>*Uam]5]rrCsGJ-:@q
+eF`aurrAGWJ-:%Q]BK4IrrM_UmskUiDh+_7oD\1XJ,~>
+l2La,nGi^uJ_0AernRMSh[oM^"Zg^a]&WVKrr@E>!!G][cgq(jrrM^!qZ$atI]1omfDbhhn,NS8
+P/Q_ciVro@nGi\]MS&*Ng]%<;..7-?"^-)9_s%!bs*t~>
+l2LaSnO`s[R+Lg'rnRMSkZ.@L"^H,.]&WVKrrAee8d&arcgq(jrrMdjqaq!%I]1omfDbi=n4Egb
+P/Q_ciVroGnO`pnMS&*Ng]%<BB(&=r9P/O8_s%!bs*t~>
+l2LapnULdpWn6_9rnRMSmtg^g"a"gF]&WVKrrBb+J-:=kcgq(jrrMkJqg\fhI]1omfDbi[n:1Xj
+P/Q_ciVroLnULacMS&*Ng]%<GPja,,IrBRt_s%!bs*t~>
+l2La_mf3Jfc0G*'hZ!WJ0_YPO*cHY/eare'rrKG/p&G4'MSA<Ph#@ES=Sr.&$ZM!7k53g2!V[H"
+!!@,Di;)@3!0cpQ"@e6[kl'<:!RDnW!!`QtFH!Zbp\sR[J,~>
+l2Lb"mn*_0cKb3(hZ!WMD"gO+;f@8deare'rrL59p.>H_N5"NRh#@ESL\saJ:2l*%k53g2!Vosg
+8csIGi;)@3!4),e"Cd5"kl'<:!Sq/O8d8^GN4.U;rpB`9~>
+l2Lb4mskP/cg(<)hZ!WPR.l+8H>eD6eare'rrLf)p4*9qNkX`Th#@ESWr.ANIW11Uk53g2!W.iE
+J-1P2i;)@3!6Ob]"EoX6kl'<:!U#R4J-L%9N4.U;rpB`9~>
+l2Lb6mJmA6WoNaLi;WiL48/^Z%qL$Wa6WWcrrL"GoDf"aWS$qDh#@ASqu?mQG*pGArn.5NL[G-F
+*1G+@rSmhW/F`]C'md=Lqq_8QP76jZ#!?p\XOZn?m/MS~>
+l2LbAmRdUg[c@#Xi;WiOFSAB3:25-Ga6WWcrrLVIoL]7$WS$qDh#@Ajr(7,pG*pGArn.5NWpWI^
+<h.D'rSmhWC%4du;1c7;qq_8QZ;U*_#$c2'XOZn?m/MS~>
+l2LbJmXPFt^Z4tai;WiRSbIX=I;XD%a6WWcrrM)5oRI'sWS$qDh#@B&r."rpG*pGArn.5N_sMsV
+SBUL$ir9"EnULajLUQ:@h>[MtL@0QrFE3,;eai\*s*t~>
+l2Le`$gmuu"_lNTq>TFS!TQ$2!!`j8GE]]"q#9LW!P8d3!!EFP_<CdOrrM^!r;Zt!I]1upf`)!$%
+.+#t8@.1IroF(ZU[J0d%rThaqYoIR!Rj:$!!`QjEJ147mJQ;MJ,~>
+l2Le`;XR-\9oRZkq>TFS!UF[u8dA('GE]]"q#9LW!RF[88d%hE_<CdOrrMdjrCR3'I]1upf`)!1
+;XI'ZD6r*nroF(Z^@+Yt;2EZhqYoIR!T81h8d8UAKVm&^r9OB5~>
+l2Le`L$jHpJu.)eq>TFS!V)WQJ-UOAGE]]"q#9LW!SrM$J-1tNkkj08!V_<HJ-9k@W7q!urrMA=
+m=5=qZekHUjSo5-mskRmSC6m&ro*kXl(@?n#'=j<VU"T,li2J~>
+l2Le`1@+uE+IqNbr;PjY!NQq/!!`j8G)iuco`"(S!KRBR!!En#dI@(irrN*mrW!*0E/M6hr7V)N
+k:#Wr"BiV(q>TOV!TOm]!!XBfeFNG6roX4^dU*.F!!`^'EeUC6lMBfGJ,~>
+l2Le`D<sju?E`G^r;PjY!Q8+78dA('G)iuco`"(S!O,;g8d&%`dI@(irrN+Lr^m>hE/M6hr7V)N
+mUkcW"F@rIq>TOV!UEkT8d8Ifg%+t;roX4^hi1=t8dA%!EeUC6lMBfGJ,~>
+l2Le`R-]>,MnJ-Cr;PjY!S*)%J-UOAG)iuco`"(S!QTf^J-:FudI@(irrN+prdY0$E/M6hr7V)N
+o9AQk"HgR`q>TOV!V)'7J-Lk8hX^L@roX4^kc]U+J-UREEeUC6lMBfGJ,~>
+kl1Wpl2UuP\*<Varp'LacU[[/#7Og[Nj@=.r9=4^gHY*+";?sNnbh5C!1s/i"YY%db4,DarrL.[
+kl:iY_WU^nkl1\H.-^d<"$1nHoD&7_rpB^entJA8!!jBKG)E<FlM:GEs*t~>
+kl1XGl:M5#_Wgdlrp'LagjJff#>SoTNj@=.r9=4^k'-5c"B;&Hnbh5C!4i)$"^#r8b4,DarrL_X
+kt2)#`TR$qkl1\OB'Mto9Q6ZMoD&7_rpB^ep:Y\:8dJ:.G)E<FlM:GEs*t~>
+kl1Xgl@9&)bN\`urp'LakG.a$#C^T7Nj@=.r9=4^m@Wfs"G<`,nbh5C!6tLn"a>-Wb4,DarrM/?
+l$ro"`om-rkl1\TPj3c)JXEt"oD&7_rpB^eps>Z"J-^L@G)E<FlM:GEs*t~>
+kl1XCkl:ni6)s5Dr;Q-a!Obes!!aBOG`T2_nbh\P!p=J-li71mAC'Z=rnm_]mfWUj<dq"$pY5]L
+k@Xq\!!O@#iUZmFli."#*9@/,%R"Wo_WLXjr;HWoqu?]q"R`jU6O<#Y#mNM1I?UtcmJ?hHs*t~>
+kl1Xckt2.RFM$i3r;Q-a!R-/g8dA7/G`T2_nbh\P!q)IQlq.FTL=5Jbrnm_]nk;YJB7?f5pY5]L
+mZUB.8d/CmiUZmFli."5?KFcc;fn80d-LK(r;HWoqu?]q"S0j;Gu*d!#u"WDI?UtcmJ?hHs*t~>
+kl1Y&l$rthRE4[er;Q-a!SaOFJ-UF>G`T2_nbh\P!qWmSm!o7jT[W<(rnm_]on%^EFFL1BpY5]L
+o<X&3J-Cb8iUZmFli."CNobctL7>Kgh!Xt7r;HWoqu?]q"SUWfTnMc_$%I&:I?UtcmJ?hHs*t~>
+kl1Xrjo>W0FLgr:r;Q]hrr_\pCE)pH#Qcc!I$D(mnbhbR"8fZ2#j;6m&p2Ojq#13Ors8Qg!"4".
+\`WhHrr`,/>6s6h"sSWKo(i7`nG`O+:Yc!S%OaPFC4#l+")V4&([1o+"#"51LnVT=nGDDKJ,~>
+kl1Y/k"5kcR)ngmr;Q]hrr_l6Q<j,T#?l%nPd]98r9XFcr6C*pkXl%ZQ.PO#rVkgV#lSs>:O%c-
+k5=*9"8pH%:ub.P@%Z0Dq>L<^rrLW$h+@lNAp0#qTV;=Y"."da>3SWc93H(ULnVT=nGDDKJ,~>
+kl1Y=k(!\rZIJF>r;Q]hrr_uI[>jg/#Bk'6Pd]98r9XFcrS4H,k^WklY1rI@rVkgV#lU?FJU*-`
+k5=*9"8prVK]@ReN4%R6q>L<^rrM&Uh1,Z`P+AVY]DT;D[B,mVl$s(iGB%k`TtfCPqre!0~>
+kl1YIirBT%89UT9f\5'6gXEg.JlXAl!!j??FG-7#hX^U5rri>TSmN2l!!`TaHEuT*qY^?lkl1qf
+P5mXuR*"grj8T;^o"KuW&DdBn"#k>)j7iEKrr2fps8E,WVIpjV!"&obApB'![*Ih,r9"$0~>
+kl1YOj%9MUHCVIgi8agt"lIY<VMAjU8dJ:+FG-7#hX^U5rri>^\rBhP8dA%-S]'adqY^?lkl1qf
+Z:\ebR*"grj8T;^p!Bdl<Sg=S9Q$98kkFrPrr2fps8E,`^lr'48d\6qCj:]'[*Ih,r9"$0~>
+kl1YSj+%YqTXW(rkj%I!lfd-M^oE[jJ-^OCFG-7#hX^U5rri>fcEE,cJ-UXk[aOL9qY^?lkl1qf
+a+/u#R*"grj8T;^ptireLu*XgJX<ajlhC8Srr2fps8E,gd^+qAJ-pdMEd3>-[*Ih,r9"$0~>
+kl1\_'E.t9!uWR>/0Y_S!!s!!E.*kMb2i9pnc&]PB0Hj[!!j;u<c39EpA=jSrs%?\HC(Yap>u;V
+mrM8Le,Tms7VT7#q#15rG?-I0[/^U:*Ck$qLmt]mi:-UBjo9i~>
+kl1\_=8ker92\kq>?=\L8dS4!EIEtNb2i9pnc&]qPBKs[8dJO<KpJCqpA=jSrs%XYOI*!"p>u;V
+oULMBe4L-THBZA>q#164Sqh/^Zq:^)@WHjPS$L2pnG<.Gs*t~>
+kl1\_M>i#0IsZKhI"$RmJ-g[HEda(Ob2i9pnc&^3Z_!!,J-_""W3j2&pA=jSrs%k@TU2\2p>u;V
+pUR2ae:7sdTX!#;q#16E];h6R["&O2F`VqdS$L2pnG<.Gs*t~>
+kPl&N""mAeHA%6?P`gl>9IUD&!"'6$DL7;9^=_iKrp]pf+OU5l[G:3HlMh(e5JXG;jSS'=!8l'%
+"_?*EpASF+!"BDf88EO)P+oD.hsU:<j8XW~>
+kPl'39O_aWHA%6?P`guRDHoui8d\="E-mM;^=_iKrp]pf@+%XL^>//QlMh(eG/CDtjSS'=!9h^#
+"c:^jpAU)Z8e"Nt@rZgJP+oD.hsU:<j8XW~>
+kPl$\JV\_rHA%6?P`h)bL4Rs,$@R&;H]+W4f^8M6nG`KMdXVG=h!Y%(rs&Fn`3-o:qrRhXn'6Fe
+UsnK"ri`\Z%=WVHG'\h)U:/8&meHb@s*t~>
+kPl74`3,;fU9VGOaMu*/ZDX4D>s'#.huF,g-W"o6NM3o0k4JT>rsjj*?rBa(=BT-B?tX@rEURrJ
+@fKg9?2dY.:..N?3&ipe]\W;\li.1go\7O?n,DGK''ag]>Ydpc<Dub#?=$uKDJsN7mrBIe@UWYO
+>#8$k7R9@(1cB-Rd-gk$=CG3<?>=:jFEI+ps'cCE>#8$b5W^SL*Z>Lni;aGn'I>e:C4(VkQ(kS%
+eDp&nrSdd,~>
+kPl7DbH@%mU9VGOaMu*/ZDX4MG@jiKi(=AN<b6B%NM3o0k4JT>rsbupKm7W^FE2PGEclVPmWo"Y
+FE;JBrG2gSC2@KoB:limpAXCX#6+8Lb1H+]jo5YVTTaqKDJjH4D>eGUF*MutH6IQUFE;JACi!m#
+AnP^cA:h&4mesVLLO+ApIsucpI=-Bgp3I3kFE;D;CM.0e>[(6.:efn@&PQ&'?YFJ-Jr>ngZGY2P
+nG)t@s*t~>
+kPl1Nd&rRrU9VGOaMu*/ZDX4TM1j`9$\*GDFFK4C\^9L2r9jRp_QohtN/NLGK7SQ&It3+;K):'+
+JqSi4L5:\^]\W;\li.1go\7O?n,DGK$hV'6S<&M^KnFr,If4`tJ:W:<K)C-7It3*%K7nuCYgDh:
+bc%;%P)bQ]M2$]RK):&uJ,OirJ)PniIslZiG^+UfMj:$B_pm`9q#01OJ,~>
+kPlCqkfgcZeDTTZn*]Q+inDbu\ZVZjE)//'k5Yr'/PpG7LR"dMdH'lprpB^rqW5\tTq7jJTq\B\
+W2cr$n?*G,XJr+pVPKrZTV%gIT:i'nh"C[3rri2dk3Vm(rt>>)hS#hZSXc7CTVA6ZVPpMrXm`D#
+XfSS%Vl$>eU7e-LrgX7dYg;b9r9MS1rh9RlV5C2lXnAh;XfSM"VPKoXS=5e0P)tZ\I<B=7?VsWm
+5X.Fh/hZiL'fnHM<FKiqJqo;KR\[.!aOT89o_SREs*t~>
+kPlCqkfgcZeDTTZn*]Q+inDbu\ZVZlJT"ppk=Q1Z=_;c'LR"dMdH'lprpB^rqW5\tTq7jJTq\B\
+W2cr$n?*G,XJr+pVPKrZTV%gIT:i'nh"C[3rri2dk3Vm(rt>>)hS#hZSXc7CTVA6ZVPpMrXm`D#
+XfSS%Vl$>eU7e-LrgX7dYg;b9r9MS1rh9RlV5C2lXnAh;XfSM"VPKoXS=5e0P)tZ\K78)gF)>`-
+ARo:X>[6u,'jtK`CN+NIJqo;KR\[.!aOT89o_SREs*t~>
+kPl@pkfgcZeDTTZn*]Q+inDbu\ZVZnN/*#IJ.6pPG'/1fQ)D:BjRW0HmJd^nji+<pSt;RJU8=`c
+WiW>lXqRq=WMcVjUnXNTT:VXHTVf?Vp&=7V"T%QKm.fZA')qU]]r.KnS=Q:FU84Z`W2cr$n#d&#
+XK/:tVP^/`TV%eSS-YakcgLc0lccR3U'7?hVPpPtor]17XJr+pUnOENR[9;&OH#-QKnP&/JUi6#
+J,OiiIK+]pHiJI(IY*?6PFA;N]?&O]m.C/RhuA3~>
+kPkecp?_#0o_SLarY#2,q"*q9hUTfb[&KXYEDekD%J'Q3!tun?:i(N2N0gEMa4TSGqYog\%fGkT
+eBlRie(*%%g=tE>mb\W4gtLK8f[eU&da6=cbK\]*qW\"_rqcEdrT!nhqX31fcd:%eeCE.&g"P39
+hX02AhV?l>g=b-0eC;pncHOJ[jRrNNoA\6Ed*pOtg"bETh]:P.g=b-0eC)[eb/V<5]XY>QY,\Cq
+U7\!GR@';*p662UR%'bEWj&tH`m<8okjS3@rVkXQJ,~>
+kPkecp?_#0o_SLarY#2,q"*q9hUTfb[&KX[J8f%%:\.0j92JYqBQJQQN0gEMa4TSGqYog\%fGkT
+eBlRie(*%%g=tE>mb\W4gtLK8f[eU&da6=cbK\]*qW\"_rqcEdrT!nhqX31fcd:%eeCE.&g"P39
+hX02AhV?l>g=b-0eC;pncHOJ[jRrNNoA\6Ed*pOtg"bETh]:P.g=b-0eC)[eb/V<5]XY>QY,\Cq
+U7\!GR@';*p662UR%'bEWj&tH`m<8okjS3@rVkXQJ,~>
+kPkecp?_#0o_SLarXf&*q"*q9hUTfb[&KX]MhZlRJ.R-UH?a[^JrH%n[`@%`o(r@Orsntsi7--#
+dF6Xsf\5*8hX985h;$`<g"=m+eC)^icHFJblh]lG"TJ8mqYfIS&GkhNda-:edaZguf\,!5gtqGU
+*o>],g=k64f$r3td*BkYdcC*#rU]$tcHt%jf\,'9oA:SEgtLH6f$r-obf[rB^V%(`Ycb"(UnXKP
+S!fY0Q1gFTQC+/7UoLZ.^;eLNhrsP%qYgELs*t~>
+k5PS_r;?Nmp\ts,r;--VlJpXIaM,![TU1[bAm%u-r([l1AT<3OL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+k5PS_r;?Nmp\ts,r;--VlJpXIaM,![TU1^lG]@S9r+Zj_Ed3(cL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+k5PS_r;?Nmp\u!-r;--VlJpXIaM,![TU1atL4b&-J,OiqI1LgZL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+%%EndData
+showpage
+%%Trailer
+end
+%%EOF
diff --git a/templates/Traditional_Chinese_Big5-logo.png b/templates/Traditional_Chinese_Big5-logo.png
new file mode 100755
index 00000000..5edcdfe5
--- /dev/null
+++ b/templates/Traditional_Chinese_Big5-logo.png
Binary files differ
diff --git a/templates/Traditional_Chinese_Big5-packing_list.html b/templates/Traditional_Chinese_Big5-packing_list.html
new file mode 100755
index 00000000..1b4bc9b9
--- /dev/null
+++ b/templates/Traditional_Chinese_Big5-packing_list.html
@@ -0,0 +1,194 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=64 height=58></th>
+
+ <td align=right>
+ <h4>
+ ¹q¸Ü¡G <%tel%>
+ <br>¶Ç¯u¡G <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>¥X³f³æ</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% cellspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th width=50% align=left><font color=ffffff>¥I¹B©¹¡G</th>
+ <th width=50%>&nbsp;</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ </td>
+
+ <td>
+ <%if shiptocontact%>
+ <br>­P¡G<%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>¹q¸Ü¡G <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>¶Ç¯u¡G <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left>µo²¼½s¸¹</th>
+ <th width=17% align=left>­q³æ½s¸¹</th>
+ <th width=17% align=left>¤é´Á</th>
+ <th width=17% align=left nowrap>Ápµ¸¤H</th>
+ <%if warehouse%>
+ <th width=17% align=left>­Ü®w</th>
+ <%end warehouse%>
+ <th width=17% align=left>¥I¹BÂI</th>
+ <th width=15% align=left>¥I¹B¤½¥q</th>
+ </tr>
+
+ <tr>
+ <td><%invnumber%>&nbsp;</td>
+ <td><%ordnumber%>&nbsp;</td>
+
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%transdate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+
+ <%if warehouse%>
+ <td><%warehouse%>&nbsp;</td>
+ <%end warehouse%>
+
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>¦ì¸m</th>
+ <th align=left><font color=ffffff>½s¸¹</th>
+ <th align=left><font color=ffffff>´y­z</th>
+ <th align=left><font color=ffffff>§Ç¸¹</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>¼Æ¶q</th>
+ <th><font color=ffffff>¥I¹B</th>
+ <th>&nbsp;</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%></td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td><%serialnumber%></td>
+ <td><%deliverydate%></td>
+ <td align=right><%qty%></td>
+ <td align=right><%ship%></td>
+ <td><%unit%></td>
+ </tr>
+ <%end number%>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td>³Æµù</td>
+ <td><%notes%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=70%><font size=-3>
+°h¦^ªºª««~¶·¤ä¥I10%ªº¦^¦¬¶O¥Î¡C­Y­n°h¦^ª««~¡A¥²¶·¥ý¨ú±o<%company%>ªº±ÂÅv¡C°h¦^
+ª««~ªº¹B¶O©M«OÀI¶O¦Û­t¡C­Y¦b³~¤¤¥X²{¦³·l·´±¡ªp¡A<%company%>±N¤£·|­t¥ô¦ó³d¥ô¡C
+ </font>
+ </td>
+ <td width=30%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+
diff --git a/templates/Traditional_Chinese_Big5-packing_list.tex b/templates/Traditional_Chinese_Big5-packing_list.tex
new file mode 100755
index 00000000..2d3a1945
--- /dev/null
+++ b/templates/Traditional_Chinese_Big5-packing_list.tex
@@ -0,0 +1,136 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\newsavebox{\ftr}
+\sbox{\ftr}{
+ \parbox{\textwidth}{
+ \tiny
+ \rule[1.5em]{\textwidth}{0.5pt}
+Items returned are subject to a 10\% restocking charge.
+A return authorization must be obtained from <%company%> before goods are
+returned. Returns must be shipped prepaid and properly insured.
+<%company%> will not be responsible for damages during transit.
+ }
+}
+
+<%include letterhead.tex%>
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrl@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Ship} & \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+\textbf{Ship To}} \hfill
+
+\vspace{0.3cm}
+
+\parbox[t]{.5\textwidth}{
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+}
+\parbox[t]{.5\textwidth}{
+ <%shiptocontact%>
+
+ <%if shiptophone%>
+ Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{P A C K I N G} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{7}{|X}|} \hline
+ \textbf{Invoice \#} & \textbf{Order \#} & \textbf{Date} & \textbf{Contact}
+ <%if warehouse%>
+ & \textbf{Warehouse}
+ <%end warehouse%>
+ & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+
+ <%invnumber%> & <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%transdate%>
+ <%end shippingdate%>
+ & <%employee%>
+ <%if warehouse%>
+ & <%warehouse%>
+ <%end warehouse%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrl@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Ship} & \\
+
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%serialnumber%> &
+ <%deliverydate%> & <%qty%> & <%ship%> & <%unit%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{12pt}
+
+<%notes%>
+
+}
+
+\vfill
+
+\rule{\textwidth}{0.5pt}
+
+\usebox{\ftr}
+
+\end{document}
+
diff --git a/templates/Traditional_Chinese_Big5-pick_list.html b/templates/Traditional_Chinese_Big5-pick_list.html
new file mode 100755
index 00000000..106deda5
--- /dev/null
+++ b/templates/Traditional_Chinese_Big5-pick_list.html
@@ -0,0 +1,153 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=64 height=58></th>
+
+ <td align=right>
+ <h4>
+ ¹q¸Ü¡G <%tel%>
+ <br>¶Ç¯u¡G <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>´z³f²M³æ</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th width=50% align=left><font color=ffffff>Ship To:</th>
+ <th width=50%>&nbsp;</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ </td>
+
+ <td>
+ <%if shiptocontact%>
+ <br>­P¡G <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>¹q¸Ü¡G <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>¶Ç¯u¡G <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=15% align=left>µo²¼½s¸¹</th>
+ <th width=15% align=left>­q³æ½s¸¹</th>
+ <th width=10% align=left>¤é´Á</th>
+ <th width=15% align=left nowrap>Ápµ¸¤H</th>
+ <th width=15% align=left>­Ü®w</th>
+ <th width=10% align=left>¥I¹BÂI</th>
+ <th width=10% align=left>¥I¹B¤½¥q</th>
+ </tr>
+
+ <tr>
+ <td><%invnumber%>&nbsp;</td>
+ <td><%ordnumber%>&nbsp;</td>
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%transdate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+ <td><%warehouse%>&nbsp;</td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>¦ì¸m</th>
+ <th align=left><font color=ffffff>¸¹½X</th>
+ <th align=left><font color=ffffff>´y­z</th>
+ <th><font color=ffffff>¼Æ¶q</th>
+ <th><font color=ffffff>¥I¹B</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>½c</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td align=right>[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</td>
+ <td><%unit%></td>
+ <td align=right><%bin%></td>
+ </tr>
+ <%end number%>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+</table>
+
diff --git a/templates/Traditional_Chinese_Big5-pick_list.tex b/templates/Traditional_Chinese_Big5-pick_list.tex
new file mode 100755
index 00000000..2f82936a
--- /dev/null
+++ b/templates/Traditional_Chinese_Big5-pick_list.tex
@@ -0,0 +1,108 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\begin{tabularx}{\textwidth}{@{}rlXrcll@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} &
+ \textbf{Qty} & \textbf{Ship} & & \textbf{Bin} \\
+
+<%end pagebreak%>
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+ \textbf{Ship To}
+} \hfill
+
+\vspace{0.3cm}
+
+\parbox[t]{.5\textwidth}{
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+}
+\parbox[t]{.5\textwidth}{
+ <%shiptocontact%>
+
+ <%if shiptophone%>
+ Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{P I C K} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{7}{|X}|} \hline
+ \textbf{Invoice \#} & \textbf{Order \#} & \textbf{Date} & \textbf{Contact}
+ & \textbf{Warehouse} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+ <%invnumber%> & <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%transdate%>
+ <%end shippingdate%>
+ & <%employee%> & <%warehouse%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrcll@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} &
+ \textbf{Qty} & \textbf{Ship} & & \textbf{Bin} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> &
+ <%qty%> & [\hspace{1cm}] & <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+}
+
+\end{document}
+
diff --git a/templates/Traditional_Chinese_Big5-pos_invoice.txt b/templates/Traditional_Chinese_Big5-pos_invoice.txt
new file mode 100755
index 00000000..cbc0055a
--- /dev/null
+++ b/templates/Traditional_Chinese_Big5-pos_invoice.txt
@@ -0,0 +1,45 @@
+<%company align=center width=40%>
+<%address align=center width=40%>
+
+Till: <%till align=left width=3%> Phone#: <%tel%>
+Cashier: <%employee%>
+Inv #/Date: <%invnumber%> / <%invdate%>
+Printed: <%dateprinted%>
+
+ Qty Description Amount
+<%foreach number%>
+<%qty align=right width=5%> <%description align=left width=24 offset=6%> <%linetotal align=right width=9%>
+ <%number%> @ <%sellprice%>/<%unit%>
+<%end number%>
+
+Number of items: <%totalqty%>
+<%if taxincluded%>
+ ---------------
+ Total: <%invtotal align=right width=9%>
+<%end taxincluded%>
+<%if not taxincluded%>
+ ------------
+ Subtotal: <%subtotal align=right width=9%>
+<%end taxincluded%>
+<%foreach tax%>
+<%taxdescription align=right width=23%> @ <%taxrate align=right width=2%>%: <%tax align=right width=9%>
+<%end tax%>
+<%foreach payment%>
+ Paid: <%payment align=right width=9%> <%currency%>
+<%end payment%>
+<%if change%>
+ Change: <%change align=right width=9%>
+<%end change%>
+<%if total%>
+ Balance Due: <%total align=right width=9%>
+<%end total%>
+<%if discount%>
+
+<%discount%> % Discount applied
+<%end discount%>
+
+ Thank you for your valued business!
+
+<%if taxincluded%>
+Taxes are included in price.
+<%end taxincluded%>
diff --git a/templates/Traditional_Chinese_Big5-purchase_order.html b/templates/Traditional_Chinese_Big5-purchase_order.html
new file mode 100755
index 00000000..e46a78ea
--- /dev/null
+++ b/templates/Traditional_Chinese_Big5-purchase_order.html
@@ -0,0 +1,252 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <td><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=64 height=58>
+ </td>
+
+ <td align=right>
+ <h4>
+ ¹q¸Ü¡G <%tel%>
+ <br>¶Ç¯u¡G <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>±ÄÁʳæ</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>­P¡G</th>
+ <th align=left width=50%><font color=ffffff>¥I¹B©¹¡G</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+<br>
+<%if contact%>
+<br>­P¡G <%contact%>
+<%end contact%>
+<%if vendorphone%>
+<br>¹q¸Ü¡G <%vendorphone%>
+<%end vendorphone%>
+<%if vendorfax%>
+<br>¶Ç¯u¡G <%vendorfax%>
+<%end vendorfax%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+<br>
+<%if shiptocontact%>
+<br>­P¡G <%shiptocontact%>
+<%end shiptocontact%>
+<%if shiptophone%>
+<br>¹q¸Ü¡G <%shiptophone%>
+<%end shiptophone%>
+<%if shiptofax%>
+<br>¶Ç¯u¡G <%shiptofax%>
+<%end shiptofax%>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr><td>&nbsp;</td></tr>
+
+ <tr>
+ <td colspan=2>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left>­q³æ½s¸¹</th>
+ <th width=17% align=left>¸¨­q¤é´Á</th>
+ <th width=17% align=left>­n¨D¥æ¥I¤é´Á</th>
+ <th width=17% align=left>Ápµ¸¤H</th>
+ <th width=17% align=left>¥I¹BÂI</th>
+ <th width=15% align=left>¥I¹B¤½¥q</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%></td>
+ <td><%orddate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+<!-- <th align=right><font color=ffffff>No.</th> -->
+ <th align=left><font color=ffffff>¸¹½X</th>
+ <th align=left><font color=ffffff>´y­z</th>
+ <th><font color=ffffff>¼Æ¶q</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>»ù®æ</th>
+ <th><font color=ffffff>%</th>
+ <th><font color=ffffff>ª÷ÃB</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+<!-- <td align=right><%runningnumber%>.</td>
+other per line item variables available <%reqdate%>
+adjust the colspan if you include this to shift subtotal one to the right
+-->
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discountrate%></th>
+ <td align=right><%linetotal%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=7><hr noshade></td>
+ </tr>
+
+ <tr>
+<%if taxincluded%>
+ <th colspan=6 align=right>¦X­p</th>
+ <th colspan=1 align=right><%ordtotal%></th>
+<%end taxincluded%>
+
+<%if not taxincluded%>
+ <th colspan=6 align=right>¤p­p</th>
+ <td colspan=1 align=right><%subtotal%></td>
+<%end taxincluded%>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=6 align=right><%taxdescription%> °ò©ó <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=1 align=right><%tax%></td>
+ </tr>
+<%end tax%>
+
+ <tr>
+ <td colspan=3>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+<%if not taxincluded%>
+ <th colspan=6 align=right>¦X­p</th>
+ <td colspan=1 align=right><%ordtotal%></td>
+<%end taxincluded%>
+
+<%if terms%>
+ <tr>
+ <td colspan=3>¦³®Ä´Á¬°²b<b><%terms%></b>¤é</td>
+ <th colspan=3 align=right>¦X­p</th>
+ <th colspan=1 align=right><%ordtotal%></th>
+ </tr>
+<%end terms%>
+
+<%if taxincluded%>
+ <tr>
+ <td colspan=2>¤w¥]µ|¶µ</td>
+ </tr>
+<%end taxincluded%>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+<%if ordtotal%>
+ <tr>
+ <td colspan=7 align=right>
+ ©Ò¦³»ù®æ¬°<b><%currency%></b>
+ </td>
+ </tr>
+<%end ordtotal%>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+<%if notes%>
+ <tr valign=top>
+ <td>³Æµù</td>
+ <td><%notes%></td>
+ </tr>
+<%end notes%>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=70%>&nbsp;</td>
+
+ <td width=30%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Traditional_Chinese_Big5-purchase_order.tex b/templates/Traditional_Chinese_Big5-purchase_order.tex
new file mode 100755
index 00000000..fe1e6428
--- /dev/null
+++ b/templates/Traditional_Chinese_Big5-purchase_order.tex
@@ -0,0 +1,170 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{\hspace{1cm}r@{}}
+ & Subtotal & <%sumcarriedforward%> \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Amount} \\
+ & carried forward from <%lastpage%> & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+\textbf{To}
+\vspace{0.3cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+Attn: <%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if vendorphone%>
+Tel: <%vendorphone%>
+<%end vendorphone%>
+
+<%if vendorfax%>
+Fax: <%vendorfax%>
+<%end vendorfax%>
+
+<%email%>
+}
+\parbox[t]{.5\textwidth}{
+\textbf{Ship To}
+\vspace{0.3cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+Attn: <%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{P U R C H A S E} \parbox{0.3cm}{\hfill} \textbf{O R D E R}
+\hfill
+
+\vspace{1cm}
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Date} & \textbf{Required by} & \textbf{Contact} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5ex]
+ \hline
+ <%ordnumber%> & <%orddate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Amount} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%linetotal%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
+ & Subtotal & <%subtotal%> \\
+<%foreach tax%>
+ & <%taxdescription%> on <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ & Total & <%ordtotal%>\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ All prices in \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%notes%>
+
+}
+
+
+%\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+%\footnotetext[1]{\tiny }
+
+\end{document}
+
diff --git a/templates/Traditional_Chinese_Big5-receipt.tex b/templates/Traditional_Chinese_Big5-receipt.tex
new file mode 100755
index 00000000..effc19b6
--- /dev/null
+++ b/templates/Traditional_Chinese_Big5-receipt.tex
@@ -0,0 +1,77 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{9pt}{9pt}\selectfont
+
+\parbox[t]{12cm}{
+ <%company%>
+
+ <%address%>}
+\hfill
+\parbox[t]{6cm}{\hfill <%source%>}
+
+\vspace*{0.6cm}
+
+<%text_amount%> \dotfill <%decimal%>/100 \makebox[0.5cm]{\hfill}
+
+\vspace{0.5cm}
+
+\hfill <%datepaid%> \makebox[2cm]{\hfill} <%amount%>
+
+% different date format for datepaid
+% <%DD%><%MM%><%YYYY%>
+
+\vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{1.8cm}
+
+<%memo%>
+
+\vspace{0.8cm}
+
+<%company%>
+
+\vspace{0.5cm}
+
+<%name%> \hfill <%datepaid%> \hfill <%source%>
+
+\vspace{0.5cm}
+\begin{tabularx}{\textwidth}{lXrr@{}}
+\textbf{Invoice No.} & \textbf{Invoice Date}
+ & \textbf{Due} & \textbf{Applied} \\
+<%foreach invnumber%>
+<%invnumber%> & <%invdate%> \dotfill
+ & <%due%> & <%paid%> \\
+<%end invnumber%>
+\end{tabularx}
+
+\vspace{1cm}
+
+<%memo%>
+
+\vfill
+
+\end{document}
+
diff --git a/templates/Traditional_Chinese_Big5-request_quotation.html b/templates/Traditional_Chinese_Big5-request_quotation.html
new file mode 100755
index 00000000..0185944c
--- /dev/null
+++ b/templates/Traditional_Chinese_Big5-request_quotation.html
@@ -0,0 +1,202 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <td><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=64 height=58>
+ </td>
+
+ <td align=right>
+ <h4>
+ ¹q¸Ü¡G <%tel%>
+ <br>¶Ç¯u¡G <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>­n¨D³ø»ù³æ</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>­P¡G</th>
+ <th align=left width=50%><font color=ffffff>¥I¹B©¹¡G</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+<br>
+<%if contact%>
+<br>­P¡G<%contact%>
+<%end contact%>
+<%if vendorphone%>
+<br>¹q¸Ü¡G <%vendorphone%>
+<%end vendorphone%>
+<%if vendorfax%>
+<br>¶Ç¯u¡G <%vendorfax%>
+<%end vendorfax%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddr2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+<br>
+<%if shiptocontact%>
+<br>­P¡G <%shiptocontact%>
+<%end shiptocontact%>
+<%if shiptophone%>
+<br>¹q¸Ü¡G <%shiptophone%>
+<%end shiptophone%>
+<%if shiptofax%>
+<br>¶Ç¯u¡G <%shiptofax%>
+<%end shiptofax%>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr><td>&nbsp;</td></tr>
+
+ <tr>
+ <td colspan=2>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left>­n¨D³ø»ù³æ½s¸¹</th>
+ <th width=17% align=left>¤é´Á</th>
+ <th width=17% align=left>­n¨D¥æ¥I¤é´Á</th>
+ <th width=17% align=left>Ápµ¸¤H</th>
+ <th width=17% align=left>¥I¹BÂI</th>
+ <th width=15% align=left>¥I¹B¤½¥q</th>
+ </tr>
+
+ <tr>
+ <td><%quonumber%></td>
+ <td><%quodate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height="10"></tr>
+
+ <tr>
+ <td>½Ð´£¨Ñ¥H¤Uª««~ªº»ù®æ©M¥æ¥I®É¶¡¡G</td>
+ </tr>
+
+ <tr height="10"></tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+<!-- <th align=right>No.</th> -->
+ <th align=left>¸¹½X</th>
+ <th align=left><font color=ffffff>´y­z</th>
+ <th>¼Æ¶q</th>
+ <th>&nbsp;</th>
+ <th>¥æ¥I</th>
+ <th>³æ»ù</th>
+ <th>Á`»ù</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+<!-- <td align=right><%runningnumber%>.</td>
+other per line item variables available <%reqdate%>
+adjust the colspan if you include this to shift subtotal one to the right
+-->
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=7><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+<%if notes%>
+ <tr valign=top>
+ <td>³Æµù</td>
+ <td><%notes%></td>
+ </tr>
+<%end notes%>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=70%>&nbsp;</td>
+
+ <td width=30%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Traditional_Chinese_Big5-request_quotation.tex b/templates/Traditional_Chinese_Big5-request_quotation.tex
new file mode 100755
index 00000000..cf95dd89
--- /dev/null
+++ b/templates/Traditional_Chinese_Big5-request_quotation.tex
@@ -0,0 +1,151 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
+ & \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Extended} \\
+ & carried forward from <%lastpage%> & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+\textbf{To}
+\vspace{0.3cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if vendorphone%>
+Tel: <%vendorphone%>
+<%end vendorphone%>
+
+<%if vendorfax%>
+Fax: <%vendorfax%>
+<%end vendorfax%>
+
+<%email%>
+}
+\parbox[t]{.5\textwidth}{
+\textbf{Ship To}
+\vspace{0.3cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{R E Q U E S T for Q U O T A T I O N}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{RFQ \#} & \textbf{Date} & \textbf{Required by} & \textbf{Contact} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5ex]
+ \hline
+ <%quonumber%> & <%quodate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+Please provide price and delivery time for the following items:
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}lXrllrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} & &
+ \textbf{Delivery} & \textbf{Unit Price} & \textbf{Extended} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> & <%unit%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\hfill
+
+<%notes%>
+
+}
+
+\end{document}
+
diff --git a/templates/Traditional_Chinese_Big5-sales_order.html b/templates/Traditional_Chinese_Big5-sales_order.html
new file mode 100755
index 00000000..d0ac5dc3
--- /dev/null
+++ b/templates/Traditional_Chinese_Big5-sales_order.html
@@ -0,0 +1,245 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=bottom>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=64 height=58></th>
+
+ <td align=right>
+ <h4>
+ ¹q¸Ü¡G <%tel%>
+ <br>¶Ç¯u¡G <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>¾P³f³æ</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>­P</th>
+ <th align=left width=50%><font color=ffffff>¥I¹B©¹</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%>
+ <br><%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+ <%if contact%>
+ <br>­P¡G <%contact%>
+ <%end contact%>
+ <%if customerphone%>
+ <br>¹q¸Ü¡G <%customerphone%>
+ <%end customerphone%>
+ <%if customerfax%>
+ <br>¶Ç¯u¡G <%customerfax%>
+ <%end customerfax%>
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%>
+ <br><%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ <br>
+ <%if shiptocontact%>
+ <br><%shiptocontact%>
+ <%end shiptocontact%>
+ <%if shiptophone%>
+ <br>¹q¸Ü¡G <%shiptophone%>
+ <%end shiptophone%>
+ <%if shiptofax%>
+ <br>¶Ç¯u¡G <%shiptofax%>
+ <%end shiptofax%>
+ <%if shiptoemail%>
+ <br><%shiptoemail%>
+ <%end shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>­q³æ½s¸¹</th>
+ <th width=17% align=left>¸¨­q¤é´Á</th>
+ <th width=17% align=left>­n¨D¥æ¥I¤é´Á</th>
+ <th width=17% align=left nowrap>¾P°â¤H­û</th>
+ <th width=17% align=left nowrap>¥I¹BÂI</th>
+ <th width=15% align=left nowrap>¥I¹B¤½¥q</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%></td>
+ <td><%orddate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>¸¹½X</th>
+ <th align=left><font color=ffffff>¸¹½X</th>
+ <th align=left><font color=ffffff>´y­z</th>
+ <th><font color=ffffff>¼Æ¶q</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>»ù®æ</th>
+ <th><font color=ffffff>§é¦© %</th>
+ <th><font color=ffffff>ª÷ÃB</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%>.</td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discountrate%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <td colspan=8><hr noshade></td>
+ </tr>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=6 align=right>¦X­p</th>
+ <td colspan=2 align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=6 align=right>¤p­p</th>
+ <td colspan=2 align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=6 align=right><%taxdescription%> °ò©ó <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <tr>
+ <td colspan=4>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=4>
+ <%text_amount%> ***** <%decimal%>/100
+ <%if terms%>
+ <br>¦³®Ä´Á¬°²b<b><%terms%></b>¤é
+ <%end terms%>
+ </td>
+ <th colspan=2 align=right>¦X­p</th>
+ <th colspan=2 align=right><%ordtotal%></th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <%if notes%>
+ <td>³Æµù</td>
+ <td><%notes%></td>
+ <%end notes%>
+ <td align=right nowrap>
+ ©Ò¦³»ù®æ§¡¬°<b><%currency%></b>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=60%><font size=-3>
+ ­Y­n¨ú®ø­qÁʯS»ù«~ªº­q³æ¡A¶·¤ä¥I10%ªº­q³æ¨ú®ø¶O¥Î¡C
+ </font>
+ </td>
+ <td width=40%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+</table>
+
+</body>
+</html>
diff --git a/templates/Traditional_Chinese_Big5-sales_order.tex b/templates/Traditional_Chinese_Big5-sales_order.tex
new file mode 100755
index 00000000..60f7bfeb
--- /dev/null
+++ b/templates/Traditional_Chinese_Big5-sales_order.tex
@@ -0,0 +1,177 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
+ & \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+
+\begin{tabularx}{\textwidth}{@{}rlXrlrrr@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+ & carried forward from <%lastpage%> & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+\textbf{To}
+\vspace{0.3cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\parbox[t]{.5\textwidth}{
+\textbf{Ship To}
+\vspace{0.3cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{S A L E S} \parbox{0.3cm}{\hfill} \textbf{O R D E R}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Order Date} & \textbf{Required by} & \textbf{Salesperson} & \textbf{Shipping Point} & \textbf{Ship Via} \\ [0.5em]
+ \hline
+ <%ordnumber%> & <%orddate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrlrrr@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%discountrate%> & <%linetotal%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
+ & Subtotal & <%subtotal%> \\
+<%foreach tax%>
+ & <%taxdescription%> on <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ & Total & <%ordtotal%>\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100
+\hfill
+All prices in \textbf{<%currency%>}.
+
+<%if terms%>
+Terms: <%terms%> days
+<%end terms%>
+
+\vspace{12pt}
+
+<%notes%>
+
+}
+
+\vfill
+
+\centerline{\textbf{Thank You for your valued business!}}
+
+\rule{\textwidth}{0.5pt}
+
+\end{document}
+
diff --git a/templates/Traditional_Chinese_Big5-sales_quotation.html b/templates/Traditional_Chinese_Big5-sales_quotation.html
new file mode 100755
index 00000000..f2571c65
--- /dev/null
+++ b/templates/Traditional_Chinese_Big5-sales_quotation.html
@@ -0,0 +1,225 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr valign=top>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=64 height=58></th>
+
+ <td align=right>
+ <h4>
+ ¹q¸Ü¡G <%tel%>
+ <br>¶Ç¯u¡G <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+<tr><td colspan=3>&nbsp;</td></tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>³ø»ù³æ</h4>
+ </th>
+ </tr>
+
+ </table>
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td>
+ <table width=100%>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+
+ <br>
+ <%if contact%>
+ <br>­P¡G <%contact%>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>¹q¸Ü¡G <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>¶Ç¯u¡G <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr><td>&nbsp;</td></tr>
+
+ <tr>
+ <td colspan=2>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>¸¹½X</th>
+ <th width=17% align=left>¤é´Á</th>
+ <th width=17% align=left>¦³®Ä´Á</th>
+ <th width=17% align=left nowrap>Ápµ¸¤H</th>
+ <th width=17% align=left nowrap>¥I¹BÂI</th>
+ <th width=15% align=left nowrap>¥I¹B¤½¥q</th>
+ </tr>
+
+ <tr>
+ <td><%quonumber%></td>
+ <td><%quodate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>¸¹½X</th>
+ <th align=left><font color=ffffff>¸¹½X</th>
+ <th align=left><font color=ffffff>´y­z</th>
+ <th><font color=ffffff>¼Æ¶q</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>»ù®æ</th>
+ <th><font color=ffffff>§é¦© %</th>
+ <th><font color=ffffff>ª÷ÃB</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%></td>
+
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discountrate%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=8><hr noshade></td>
+ </tr>
+
+ <tr>
+<%if taxincluded%>
+ <th colspan=6 align=right>¦X­p</th>
+ <td colspan=2 align=right><%invtotal%></td>
+<%end taxincluded%>
+
+<%if not taxincluded%>
+ <th colspan=6 align=right>¤p­p</th>
+ <td colspan=2 align=right><%subtotal%></td>
+<%end taxincluded%>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=6 align=right><%taxdescription%> °ò©ó <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+<%end tax%>
+
+ <tr>
+ <td colspan=4>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=4>&nbsp;
+<%if terms%>
+ ¦³®Ä´Á¬°²b<b><%terms%></b>¤é
+<%end terms%>
+ </td>
+ <th colspan=2 align=right>¦X­p</th>
+ <th colspan=2 align=right><%quototal%></th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>³Æµù</td>
+ <td><%notes%></td>
+<%end notes%>
+ <td align=right>
+ ©Ò¦³»ù®æ§¡¬°<b><%currency%></b>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=60%><font size=-3>
+­Y­n¨ú®ø­qÁʯS»ù«~ªº­q³æ¡A¶·¤ä¥I10%ªº­q³æ¨ú®ø¶O¥Î¡C
+ </font>
+ </td>
+ <td width=40%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Traditional_Chinese_Big5-sales_quotation.tex b/templates/Traditional_Chinese_Big5-sales_quotation.tex
new file mode 100755
index 00000000..771fe6a3
--- /dev/null
+++ b/templates/Traditional_Chinese_Big5-sales_quotation.tex
@@ -0,0 +1,148 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\newsavebox{\ftr}
+\sbox{\ftr}{
+ \parbox{\textwidth}{
+ \tiny
+ \rule[1.5em]{\textwidth}{0.5pt}
+Special order items are subject to a 10\% cancellation fee.
+ }
+}
+
+<%include letterhead.tex%>
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
+ & \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%quonumber%>}{<%company%>\hfill <%quonumber%>}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+ & carried forward from <%lastpage%> & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+
+\vspace{1cm}
+
+\textbf{Q U O T A T I O N}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Quotation \#} & \textbf{Date} & \textbf{Valid until} & \textbf{Contact} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5ex]
+ \hline
+ <%quonumber%> & <%quodate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%discountrate%> & <%linetotal%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
+ & Subtotal & <%subtotal%> \\
+<%foreach tax%>
+ & <%taxdescription%> on <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ & Total & <%quototal%>\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+All prices in \textbf{<%currency%>}.
+
+<%if terms%>
+Terms: <%terms%> days
+<%end terms%>
+
+\vspace{12pt}
+
+<%notes%>
+
+}
+
+\vfill
+
+\hfill \parbox{7cm}{X \rule{6.5cm}{0.5pt}}
+
+\rule{\textwidth}{0.5pt}
+
+\usebox{\ftr}
+
+\end{document}
+
diff --git a/templates/Traditional_Chinese_Big5-statement.html b/templates/Traditional_Chinese_Big5-statement.html
new file mode 100755
index 00000000..791d2e35
--- /dev/null
+++ b/templates/Traditional_Chinese_Big5-statement.html
@@ -0,0 +1,134 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=64 height=58></th>
+ <td align=right>
+ <h4>
+ ¹q¸Ü¡G <%tel%>
+ <br>¶Ç¯u¡G <%fax%>
+ </h4>
+ </td>
+ </tr>
+ <tr>
+ <th colspan=3><h4>·|­p±b</h4></th>
+ </tr>
+ <tr>
+ <td colspan=3 align=right><%statementdate%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+<%if customerphone%>
+ <br>¹q¸Ü¡G <%customerphone%>
+<%end customerphone%>
+<%if customerfax%>
+ <br>¶Ç¯u¡G <%customerfax%>
+<%end customerfax%>
+<%if email%>
+ <br><%email%>
+<%end email%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr height=10></tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr>
+ <th align=left>µo²¼½s¸¹</th>
+ <th align=left>­q³æ½s¸¹</th>
+<th align=left>³Æµù</th>
+ <th width=10%>µo²¼¤é´Á</th>
+ <th width=10%>¨ì´Á¤é</th>
+ <th width=10%>¥Ø«e</th>
+ <th width=10%>30</th>
+ <th width=10%>60</th>
+ <th width=10%>90+</th>
+ </tr>
+<%foreach invnumber%>
+ <tr>
+ <td><%invnumber%></td>
+<td><%ordnumber%></td>
+<td><%notes%></td>
+ <td><%invdate%></td>
+ <td><%duedate%></td>
+ <td align=right><%c0%></td>
+ <td align=right><%c30%></td>
+ <td align=right><%c60%></td>
+ <td align=right><%c90%></td>
+ </tr>
+<%end invnumber%>
+ <tr>
+ <td colspan=9><hr size=1></td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <th align=right><%c0total%></td>
+ <th align=right><%c30total%></td>
+ <th align=right><%c60total%></td>
+ <th align=right><%c90total%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr height=10></tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td align=right>
+ <table width=50%>
+ <tr>
+ <th>¦X­p¾lÃB</th>
+ <th align=right><%total%></th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td><hr noshade></td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>¤ä²¼©ïÀY½Ð¼g<b><%company%></b>¡C
+ </td>
+ </tr>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Traditional_Chinese_Big5-statement.tex b/templates/Traditional_Chinese_Big5-statement.tex
new file mode 100755
index 00000000..0beb6c64
--- /dev/null
+++ b/templates/Traditional_Chinese_Big5-statement.tex
@@ -0,0 +1,78 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+\parbox[t]{.5\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+}
+\parbox[t]{.5\textwidth}{
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{S T A T E M E N T} \hfill \textbf{<%statementdate%>}
+
+\vspace{2cm}
+
+\begin{tabular*}{\textwidth}{|ll@{\extracolsep\fill}ccrrrr|}
+ \hline
+ \textbf{Invoice \#} & \textbf{Order \#} & \textbf{Date} & \textbf{Due} &
+ \textbf{Current} & \textbf{30} & \textbf{60} & \textbf{90} \\
+ \hline
+<%foreach invnumber%>
+ <%invnumber%> & <%ordnumber%> & <%invdate%> & <%duedate%> &
+ <%c0%> & <%c30%> & <%c60%> & <%c90%> \\
+<%end invnumber%>
+ \multicolumn{8}{|l|}{\mbox{}} \\
+ \hline
+ \textbf{Subtotal} & & & & <%c0total%> & <%c30total%> & <%c60total%> & <%c90total%> \\
+ \hline
+\end{tabular*}
+
+\vspace{0.5cm}
+
+\hfill
+\begin{tabularx}{\textwidth}{Xr@{\hspace{1cm}}r@{}}
+ & \textbf{Total outstanding} & \textbf{<%total%>}
+\end{tabularx}
+
+\vfill
+All amounts in \textbf{<%currency%>} funds.
+
+Please make check payable to \textbf{<%company%>}
+
+\end{document}
+
diff --git a/templates/Traditional_Chinese_Big5-timecard.html b/templates/Traditional_Chinese_Big5-timecard.html
new file mode 100755
index 00000000..3e89e640
--- /dev/null
+++ b/templates/Traditional_Chinese_Big5-timecard.html
@@ -0,0 +1,146 @@
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=sql-ledger.png border=0 width=84 height=58></th>
+
+ <td align=right>
+ <h4>
+ ¹q¸Ü¡G <%tel%>
+ <br>¶Ç¯u¡G <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>¤u®É¥d</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=left>¾­û</th>
+ <td><%employee%></td>
+ </tr>
+ <tr>
+ <th align=left>½s¸¹</th>
+ <td><%employee_id%></td>
+ </tr>
+ </table>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>¥d¸¹</th>
+ <td><%id%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>¤W¯Z¤é´Á</th>
+ <td><%transdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>¤W¯Z®É¶¡</th>
+ <td><%checkedin%></td>
+ </tr>
+ <tr>
+ <th align=left>¤U¯Z®É¶¡</th>
+ <td><%checkedout%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>¤u§@®É¼Æ</th>
+ <td><%qty%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=bottom>
+ <td>
+ <table>
+ <tr valign=top>
+ <th align=left>¤è®×/¤u§@½s¸¹</th>
+ <td><%projectnumber%></td>
+ </tr>
+ <tr>
+ <th align=left>ºK­n</th>
+ <td><%projectdescription%></td>
+ </tr>
+ <tr valign=top>
+ <th align=left>³Ò¤u/ªA°È¥N½X</th>
+ <td><%partnumber%></td>
+ </tr>
+ <tr>
+ <th align=left>ºK­n</th>
+ <td><%description%></td>
+ </tr>
+ </table>
+ </td>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>³æ»ù</th>
+ <td><%sellprice%></td>
+ </tr>
+ <tr>
+ <th align=right>¦X­p</th>
+ <td><%total%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+<%if notes%>
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%notes%>
+ </td>
+ </tr>
+<%end notes%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Traditional_Chinese_Big5-timecard.tex b/templates/Traditional_Chinese_Big5-timecard.tex
new file mode 100755
index 00000000..b7630a00
--- /dev/null
+++ b/templates/Traditional_Chinese_Big5-timecard.tex
@@ -0,0 +1,52 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+\centerline{\textbf{T I M E}\hspace{0.5cm}\textbf{C A R D}}
+
+\vspace*{0.5cm}
+
+\begin{tabular}[t]{ll}
+ \textbf{Employee} & <%employee%> \\
+ \textbf{ID} & <%employee_id%> \\
+\end{tabular}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Card ID} & <%id%> \\
+ \textbf{Date} & <%transdate%> \\
+ \textbf{In} & <%checkedin%> \\
+ \textbf{Out} & <%checkedout%> \\
+ \textbf{Hours} & <%qty%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular}[b]{ll}
+ \textbf{Job/Project \#} & <%projectnumber%> \\
+ \textbf{Description} & <%projectdescription%> \\
+ \textbf{Labor/Service Code} & <%partnumber%> \\
+ \textbf{Description} & <%description%> \\
+\end{tabular}
+\hfill
+\begin{tabular}[b]{lr}
+ \textbf{Rate} & <%sellprice%> \\
+ \textbf{Total} & <%total%> \\
+\end{tabular}
+
+\vspace{0.3cm}
+
+<%notes%>
+
+\end{document}
+
diff --git a/templates/Traditional_Chinese_Big5-work_order.html b/templates/Traditional_Chinese_Big5-work_order.html
new file mode 100755
index 00000000..dc15f270
--- /dev/null
+++ b/templates/Traditional_Chinese_Big5-work_order.html
@@ -0,0 +1,177 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=bottom>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=64 height=58></th>
+
+ <td align=right>
+ <h4>
+ ¹q¸Ü¡G <%tel%>
+ <br>¶Ç¯u¡G <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>¤u§@³æ</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>­P</th>
+ <th align=left width=50%><font color=ffffff>¥I¹B©¹</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%>
+ <br><%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+ <%if contact%>
+ <br>­P¡G <%contact%>
+ <%end contact%>
+ <%if customerphone%>
+ <br>¹q¸Ü¡G <%customerphone%>
+ <%end customerphone%>
+ <%if customerfax%>
+ <br>¶Ç¯u¡G <%customerfax%>
+ <%end customerfax%>
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%>
+ <br><%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ <br>
+ <%if shiptocontact%>
+ <br><%shiptocontact%>
+ <%end shiptocontact%>
+ <%if shiptophone%>
+ <br>¹q¸Ü¡G <%shiptophone%>
+ <%end shiptophone%>
+ <%if shiptofax%>
+ <br>¶Ç¯u¡G <%shiptofax%>
+ <%end shiptofax%>
+ <%if shiptoemail%>
+ <br><%shiptoemail%>
+ <%end shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>­q³æ½s¸¹</th>
+ <th width=17% align=left>¸¨­q¤é´Á</th>
+ <th width=17% align=left>­n¨D¥æ¥I¤é´Á</th>
+ <th width=17% align=left nowrap>¾P°â¤H­û</th>
+ <th width=17% align=left nowrap>¥I¹BÂI</th>
+ <th width=15% align=left nowrap>¥I¹B¤½¥q</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%></td>
+ <td><%orddate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>¸¹½X</th>
+ <th align=left><font color=ffffff>¸¹½X</th>
+ <th align=left><font color=ffffff>´y­z</th>
+ <th><font color=ffffff>¼Æ¶q</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>½c</th>
+ <th><font color=ffffff>§Ç¸¹</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%>.</td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td><%bin%></td>
+ <td><%serialnumber%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <td colspan=7><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <%if notes%>
+ <td><%notes%></td>
+ <%end notes%>
+ </tr>
+</table>
+
+</body>
+</html>
+
+
diff --git a/templates/Traditional_Chinese_Big5-work_order.tex b/templates/Traditional_Chinese_Big5-work_order.tex
new file mode 100755
index 00000000..c8d48172
--- /dev/null
+++ b/templates/Traditional_Chinese_Big5-work_order.tex
@@ -0,0 +1,141 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\begin{tabularx}{\textwidth}{@{}rlXrll@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ & \textbf{Serial Number} \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+\textbf{To}
+\vspace{0.3cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\parbox[t]{.5\textwidth}{
+\textbf{Ship To}
+\vspace{0.3cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{W O R K} \parbox{0.3cm}{\hfill} \textbf{O R D E R}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Order Date} & \textbf{Required by} & \textbf{Salesperson} & \textbf{Shipping Point} & \textbf{Ship Via} \\ [0.5em]
+ \hline
+ <%ordnumber%> & <%orddate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrll@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ & \textbf{Serial Number} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%serialnumber%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{12pt}
+
+<%notes%>
+}
+
+\vfill
+
+\end{document}
+
diff --git a/templates/Traditional_Chinese_UTF8-ap_transaction.html b/templates/Traditional_Chinese_UTF8-ap_transaction.html
new file mode 100755
index 00000000..d8d4b871
--- /dev/null
+++ b/templates/Traditional_Chinese_UTF8-ap_transaction.html
@@ -0,0 +1,250 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%><br>
+ <%address%>
+ </h4>
+ </td>
+
+ <th><img src=sql-ledger.png border=0 width=84 height=58></th>
+
+ <td align=right>
+ <h4>
+ 電話: <%tel%><br>
+ 傳真: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>應付帳 - 交易</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if vendorphone%>
+ <br>電話: <%vendorphone%>
+ <%end vendorphone%>
+
+ <%if vendorfax%>
+ <br>傳真: <%vendorfax%>
+ <%end vendorfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+
+ <%if vendortaxnumber%>
+ <p>稅務編號: <%vendortaxnumber%>
+ <%end vendortaxnumber%>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>發票編號</th>
+ <td><%invnumber%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>日期</th>
+ <td><%invdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>到期日</th>
+ <td><%duedate%></td>
+ </tr>
+ <%if ponumber%>
+ <tr>
+ <th align=left>採購單編號</th>
+ <td><%ponumber%>&nbsp;</td>
+ </tr>
+ <%end ponumber%>
+ <%if ordnumber%>
+ <tr>
+ <th align=left>訂單編號</th>
+ <td><%ordnumber%>&nbsp;</td>
+ </tr>
+ <%end ordnumber%>
+ <tr>
+ <th align=left nowrap>è·å“¡</th>
+ <td><%employee%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <%foreach account%>
+ <tr valign=top>
+ <td><%accno%></td>
+ <td><%account%></td>
+ <td width=10>&nbsp</td>
+ <td align=right><%amount%></td>
+ <td width=10>&nbsp</td>
+ <td><%description%></td>
+ <td width=10>&nbsp</td>
+ <td><%projectnumber%></td>
+ </tr>
+ <%end account%>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=2 align=right>åˆè¨ˆ</th>
+ <td width=10>&nbsp</td>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>å°è¨ˆ</th>
+ <td width=10>&nbsp</td>
+ <td align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=2 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td width=10>&nbsp</td>
+ <td align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if not taxincluded%>
+ <tr>
+ <th colspan=2 align=right>åˆè¨ˆ</th>
+ <td width=10>&nbsp</td>
+ <td align=right><%invtotal%></td>
+ </tr>
+ <%end taxincluded%>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%text_amount%> ***** <%decimal%>/100 <%currency%>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%notes%>
+ </td>
+ </tr>
+
+ <%if paid_1%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <tr>
+ <th>付款</th>
+ </tr>
+
+ <tr>
+ <td>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th>日期</th>
+ <th>&nbsp;</th>
+ <th>來æº</th>
+ <th>備註</th>
+ <th>金é¡</th>
+ </tr>
+ <%end paid_1%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td><%paymentmemo%></td>
+ <td align=right><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid_1%>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <%end paid_1%>
+
+ <tr height=10></tr>
+
+ <%if taxincluded%>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <th colspan=3 align=left><font size=-2>上述稅項已包括在價格內。</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Traditional_Chinese_UTF8-ap_transaction.tex b/templates/Traditional_Chinese_UTF8-ap_transaction.tex
new file mode 100755
index 00000000..5cd134cc
--- /dev/null
+++ b/templates/Traditional_Chinese_UTF8-ap_transaction.tex
@@ -0,0 +1,111 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+\setlength{\parindent}{0pt}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+\centerline{\textbf{A P} \hspace{0.3cm} \textbf{T R A N S A C T I O N}}
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state>
+\hspace{-0.1cm}, <%state%>
+<%end state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if vendorphone%>
+Tel: <%vendorphone%>
+<%end vendorphone%>
+
+<%if vendorfax%>
+Fax: <%vendorfax%>
+<%end vendorfax%>
+
+<%email%>
+
+<%if vendortaxnumber%>
+Tax Number: <%vendortaxnumber%>
+<%end vendortaxnumber%>
+}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Invoice \#} & <%invnumber%> \\
+ \textbf{Date} & <%invdate%> \\
+ \textbf{Due} & <%duedate%> \\
+ <%if ponumber%>
+ \textbf{PO \#} & <%ponumber%> \\
+ <%end ponumber%>
+ <%if ordnumber%>
+ \textbf{Order \#} & <%ordnumber%> \\
+ <%end ordnumber%>
+ \textbf{Employee} & <%employee%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}[t]{@{}llrX@{\hspace{1cm}}l@{}}
+<%foreach amount%>
+ <%accno%> & <%account%> & <%amount%> & <%description%> & <%projectnumber%> \\
+<%end amount%>
+
+ \multicolumn{2}{r}{\textbf{Subtotal}} & <%subtotal%> & \\
+<%foreach tax%>
+ \multicolumn{2}{r}{\textbf{<%taxdescription%> @ <%taxrate%> \%}} & <%tax%> & \\
+<%end tax%>
+
+ \multicolumn{2}{r}{\textbf{Total}} & <%invtotal%> & \\
+
+\end{tabularx}
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100 <%currency%>
+
+<%if notes%>
+\vspace{0.3cm}
+<%notes%>
+<%end notes%>
+
+\vspace{0.3cm}
+
+<%if paid_1%>
+\begin{tabular}{@{}llllr@{}}
+ \multicolumn{5}{c}{\textbf{Payments}} \\
+ \hline
+ \textbf{Date} & & \textbf{Source} & \textbf{Memo} & \textbf{Amount} \\
+<%end paid_1%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%paymentmemo%> & <%payment%> \\
+<%end payment%>
+<%if paid_1%>
+\end{tabular}
+<%end paid_1%>
+
+\end{document}
+
diff --git a/templates/Traditional_Chinese_UTF8-ar_transaction.html b/templates/Traditional_Chinese_UTF8-ar_transaction.html
new file mode 100755
index 00000000..fb0017ae
--- /dev/null
+++ b/templates/Traditional_Chinese_UTF8-ar_transaction.html
@@ -0,0 +1,256 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%><br>
+ <%address%>
+ </h4>
+ </td>
+
+ <th><img src=sql-ledger.png border=0 width=84 height=58></th>
+
+ <td align=right>
+ <h4>
+ 電話: <%tel%><br>
+ 傳真: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>應收帳 - 交易</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>電話: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>傳真: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+
+ <%if customertaxnumber%>
+ <br>稅務編號: <%customertaxnumber%>
+ <%end customertaxnumber%>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>發票編號</th>
+ <td><%invnumber%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>日期</th>
+ <td><%invdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>到期日</th>
+ <td><%duedate%></td>
+ </tr>
+ <%if ponumber%>
+ <tr>
+ <th align=left>採購單編號</th>
+ <td><%ponumber%>&nbsp;</td>
+ </tr>
+ <%end ponumber%>
+ <%if ordnumber%>
+ <tr>
+ <th align=left>訂單編號</th>
+ <td><%ordnumber%>&nbsp;</td>
+ </tr>
+ <%end ordnumber%>
+ <tr>
+ <th align=left nowrap>銷售人員</th>
+ <td><%employee%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <%foreach account%>
+ <tr valign=top>
+ <td><%accno%></td>
+ <td><%account%></td>
+ <td width=10>&nbsp</td>
+ <td align=right><%amount%></td>
+ <td width=10>&nbsp</td>
+ <td><%description%></td>
+ <td width=10>&nbsp</td>
+ <td><%projectnumber%></td>
+ </tr>
+ <%end account%>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=2 align=right>åˆè¨ˆ</th>
+ <td width=10>&nbsp</td>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>å°è¨ˆ</th>
+ <td width=10>&nbsp</td>
+ <td align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=2 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td width=10>&nbsp</td>
+ <td align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if not taxincluded%>
+ <tr>
+ <th colspan=2 align=right>åˆè¨ˆ</th>
+ <td width=10>&nbsp</td>
+ <td align=right><%invtotal%></td>
+ </tr>
+ <%end taxincluded%>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%text_amount%> ***** <%decimal%>/100 <%currency%>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%notes%>
+ </td>
+ </tr>
+
+ <%if paid_1%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <tr>
+ <th>付款</th>
+ </tr>
+
+ <tr>
+ <td>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th>日期</th>
+ <th>&nbsp;</th>
+ <th>來æº</th>
+ <th>金é¡</th>
+ </tr>
+ <%end paid_1%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td align=right><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid_1%>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <%end paid_1%>
+
+ <tr height=10></tr>
+
+ <%foreach tax%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <th colspan=9 align=left><font size=-2><%taxdescription%> 註冊 <%taxnumber%></th>
+ </tr>
+ <%end tax%>
+
+ <%if taxincluded%>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <th colspan=3 align=left><font size=-2>上述稅項已包括在價格內。</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Traditional_Chinese_UTF8-ar_transaction.tex b/templates/Traditional_Chinese_UTF8-ar_transaction.tex
new file mode 100755
index 00000000..1c3c44f3
--- /dev/null
+++ b/templates/Traditional_Chinese_UTF8-ar_transaction.tex
@@ -0,0 +1,118 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+\setlength{\parindent}{0pt}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+\centerline{\textbf{A R} \hspace{0.3cm} \textbf{T R A N S A C T I O N}}
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+
+<%if customertaxnumber%>
+Tax Number: <%customertaxnumber%>
+<%end customertaxnumber%>
+}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Invoice \#} & <%invnumber%> \\
+ \textbf{Date} & <%invdate%> \\
+ \textbf{Due} & <%duedate%> \\
+ <%if ponumber%>
+ \textbf{PO \#} & <%ponumber%> \\
+ <%end ponumber%>
+ <%if ordnumber%>
+ \textbf{Order \#} & <%ordnumber%> \\
+ <%end ordnumber%>
+ \textbf{Employee} & <%employee%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}[t]{@{}llrX@{\hspace{1cm}}l@{}}
+<%foreach amount%>
+ <%accno%> & <%account%> & <%amount%> & <%description%> & <%projectnumber%> \\
+<%end amount%>
+
+ \multicolumn{2}{r}{\textbf{Subtotal}} & <%subtotal%> & \\
+<%foreach tax%>
+ \multicolumn{2}{r}{\textbf{<%taxdescription%> @ <%taxrate%> \%}} & <%tax%> & \\
+<%end tax%>
+
+ \multicolumn{2}{r}{\textbf{Total}} & <%invtotal%> & \\
+
+\end{tabularx}
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100 <%currency%>
+
+<%if notes%>
+\vspace{0.3cm}
+<%notes%>
+<%end notes%>
+
+\vspace{0.3cm}
+
+<%if paid_1%>
+\begin{tabular}{@{}lllr@{}}
+ \multicolumn{5}{c}{\textbf{Payments}} \\
+ \hline
+ \textbf{Date} & & \textbf{Source} & \textbf{Amount} \\
+<%end paid_1%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%payment%> \\
+<%end payment%>
+<%if paid_1%>
+\end{tabular}
+<%end paid_1%>
+
+\vspace{0.5cm}
+
+<%foreach tax%>
+\textbf{\scriptsize <%taxdescription%> Registration <%taxnumber%>} \\
+<%end tax%>
+
+\end{document}
+
diff --git a/templates/Traditional_Chinese_UTF8-balance_sheet.html b/templates/Traditional_Chinese_UTF8-balance_sheet.html
new file mode 100755
index 00000000..4c3d708d
--- /dev/null
+++ b/templates/Traditional_Chinese_UTF8-balance_sheet.html
@@ -0,0 +1,110 @@
+
+<body>
+
+<h2 align=center>
+<%company%>
+<br><%address%>
+
+<p>資產負債表
+<br>期間 <%this_period%>
+</h2>
+
+<%if department%>
+<h4>部門: <%department%></h4>
+<%end department%>
+
+<table border=0>
+<tr>
+ <th align=left width=400 colspan=2>資產<br><hr align=left width=250 size=5 noshade></th>
+ <th><%this_period%></th>
+ <th><%last_period%></th>
+</tr>
+
+<%foreach asset_account%>
+<tr>
+ <td> </td>
+ <td><%asset_account%></td>
+ <td align=right><%asset_this_period%></td>
+ <td align=right><%asset_last_period%></td>
+</tr>
+<%end asset_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>資產åˆè¨ˆ</th>
+ <td align=right><%total_assets_this_period%><hr noshade size=2></td>
+ <td align=right><%total_assets_last_period%><hr noshade size=2></td>
+</tr>
+
+<tr>
+ <th align=left colspan=4>負債<b><hr align=left width=250 size=5 noshade></th>
+</tr>
+
+<%foreach liability_account%>
+<tr>
+ <td></td>
+ <td><%liability_account%></td>
+ <td align=right><%liability_this_period%></td>
+ <td align=right><%liability_last_period%></td>
+</tr>
+<%end liability_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td></td>
+ <th align=left>負債åˆè¨ˆ</th>
+ <td align=right><%total_liabilities_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_liabilities_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr>
+ <th align=left colspan=4>è‚¡æ±æ¬Šç›Š<br><hr align=left width=250 size=5 noshade></th>
+</tr>
+
+<%foreach equity_account%>
+<tr>
+ <td></td>
+ <td><%equity_account%></td>
+ <td align=right><%equity_this_period%></td>
+ <td align=right><%equity_last_period%></td>
+</tr>
+<%end equity_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td></td>
+ <th align=left>è‚¡æ±æ¬Šç›Šåˆè¨ˆ</th>
+ <td align=right><%total_equity_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_equity_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>負債åŠè‚¡æ±æ¬Šç›Šåˆè¨ˆ</th>
+ <td align=right><%total_this_period%><br><hr noshade size=2></td>
+ <td align=right><%total_last_period%><br><hr noshade size=2></td>
+</tr>
+</table>
+
+
+
+
+
+
+
+
+
diff --git a/templates/Traditional_Chinese_UTF8-bin_list.html b/templates/Traditional_Chinese_UTF8-bin_list.html
new file mode 100755
index 00000000..10d5371e
--- /dev/null
+++ b/templates/Traditional_Chinese_UTF8-bin_list.html
@@ -0,0 +1,189 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=64 height=58></th>
+
+ <th align=right>
+ <h4>
+ 電話: <%tel%>
+ <br>傳真: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>箱列表</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% cellspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>從</th>
+ <th align=left width=50%><font color=ffffff>付é‹å¾€</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+<br><%address2%>
+<%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+<%country%>
+<%end country%>
+ <br>
+
+ <%if contact%>
+ <br>致: <%contact%>
+ <%end contact%>
+
+ <%if vendorphone%>
+ <br>電話: <%vendorphone%>
+ <%end vendorphone%>
+
+ <%if vendorfax%>
+ <br>傳真: <%vendorfax%>
+ <%end vendorfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+<br><%shiptoaddress2%>
+<%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+<%shiptocountry%>
+<%end shiptocountry%>
+
+ <br>
+ <%if shiptocontact%>
+ <br>致: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>電話: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>傳真: <%shiptofax%>
+ <%end shiptofax%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>訂單編號</th>
+ <th width=17% align=left nowrap>日期</th>
+ <th width=17% align=left nowrap>è¯çµ¡äºº</th>
+ <%if warehouse%>
+ <th width=17% align=left nowrap>倉庫</th>
+ <%end warehouse%>
+ <th width=17% align=left>付é‹é»ž</th>
+ <th width=15% align=left>付é‹å…¬å¸</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%>&nbsp;</td>
+
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%orddate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+
+ <%if warehouse%>
+ <td><%warehouse%></td>
+ <%end warehouse%>
+
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>ä½ç½®</th>
+ <th align=left><font color=ffffff>號碼</th>
+ <th align=left><font color=ffffff>æ朮</th>
+ <th><font color=ffffff>åºè™Ÿ</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>數é‡</th>
+ <th><font color=ffffff>收到</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>ç®±</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%></td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td><%serialnumber%></td>
+ <td><%deliverydate%></td>
+ <td align=right><%qty%></td>
+ <td align=right><%ship%></td>
+ <td><%unit%></td>
+ <td><%bin%></td>
+ </tr>
+ <%end number%>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+</table>
+
diff --git a/templates/Traditional_Chinese_UTF8-bin_list.tex b/templates/Traditional_Chinese_UTF8-bin_list.tex
new file mode 100755
index 00000000..1bc85d66
--- /dev/null
+++ b/templates/Traditional_Chinese_UTF8-bin_list.tex
@@ -0,0 +1,114 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrll@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Recd} & & \textbf{Bin} \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+\textbf{From}
+\vspace{0.3cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+}
+\parbox[t]{.5\textwidth}{
+\textbf{Ship To}
+\vspace{0.3cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{B I N} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Date} & \textbf{Contact}
+ <%if warehouse%>
+ & \textbf{Warehouse}
+ <%end warehouse%>
+ & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+
+ <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%orddate%>
+ <%end shippingdate%>
+ & <%employee%>
+ <%if warehouse%>
+ & <%warehouse%>
+ <%end warehouse%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrll@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Recd} & & \textbf{Bin} \\
+
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%serialnumber%> &
+ <%deliverydate%> & <%qty%> & <%ship%> & <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabularx}
+
+
+\rule{\textwidth}{2pt}
+
+\end{document}
+
diff --git a/templates/Traditional_Chinese_UTF8-check.tex b/templates/Traditional_Chinese_UTF8-check.tex
new file mode 100755
index 00000000..908f0e79
--- /dev/null
+++ b/templates/Traditional_Chinese_UTF8-check.tex
@@ -0,0 +1,77 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{9pt}{9pt}\selectfont
+
+\parbox[t]{12cm}{
+ <%company%>
+
+ <%address%>}
+\hfill
+\parbox[t]{6cm}{\hfill <%source%>}
+
+\vspace*{0.6cm}
+
+<%text_amount%> \dotfill <%decimal%>/100 \makebox[0.5cm]{\hfill}
+
+\vspace{0.5cm}
+
+\hfill <%datepaid%> \makebox[2cm]{\hfill} <%amount%>
+
+% different date format for datepaid
+% <%DD%><%MM%><%YYYY%>
+
+\vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{1.8cm}
+
+<%memo%>
+
+\vspace{0.8cm}
+
+<%company%>
+
+\vspace{0.5cm}
+
+<%name%> \hfill <%datepaid%> \hfill <%source%>
+
+\vspace{0.5cm}
+\begin{tabularx}{\textwidth}{lXrr@{}}
+\textbf{Invoice \#} & \textbf{Invoice Date}
+ & \textbf{Amount Due} & \textbf{Applied} \\
+<%foreach invnumber%>
+<%invnumber%> & <%invdate%> \dotfill
+ & <%due%> & <%paid%> \\
+<%end invnumber%>
+\end{tabularx}
+
+\vspace{1cm}
+
+<%memo%>
+
+\vfill
+
+\end{document}
+
diff --git a/templates/Traditional_Chinese_UTF8-income_statement.html b/templates/Traditional_Chinese_UTF8-income_statement.html
new file mode 100755
index 00000000..9e367c62
--- /dev/null
+++ b/templates/Traditional_Chinese_UTF8-income_statement.html
@@ -0,0 +1,81 @@
+
+<body>
+
+<h2 align=center>
+<%company%>
+<br><%address%>
+
+<p>æ益表
+<br><%period%>
+</h2>
+
+<%if department%>
+<h4>部門: <%department%></h4>
+<%end department%>
+
+<%if projectnumber%>
+<h4>方案編號: <%projectnumber%></h4>
+<%end projectnumber%>
+
+<table width=100% border=0>
+<tr>
+ <th width=400 align=left colspan=2>收入<br><hr width=300 size=5 align=left noshade></th>
+ <th><%this_period%></th>
+ <th><%last_period%></th>
+</tr>
+
+<%foreach income_account%>
+<tr>
+ <td width=4> </td>
+ <td><%income_account%></td>
+ <td align=right><%income_this_period%></td>
+ <td align=right><%income_last_period%></td>
+</tr>
+<%end income_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td> </td>
+ <th align=left>收入åˆè¨ˆ</th>
+ <td align=right><%total_income_this_period%><hr noshade size=2></td>
+ <td align=right><%total_income_last_period%><hr noshade size=2></td>
+</tr>
+
+<tr>
+ <th align=left colspan=2>費用<br><hr width=300 size=5 align=left noshade></th>
+</tr>
+
+<%foreach expense_account%>
+<tr>
+ <td> </td>
+ <td><%expense_account%></td>
+ <td align=right><%expenses_this_period%></td>
+ <td align=right><%expenses_last_period%></td>
+</tr>
+<%end expense_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td> </td>
+ <th align=left>費用åˆè¨ˆ</th>
+ <td align=right><%total_expenses_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_expenses_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>收入 / (虧æ)</th>
+ <td align=right><%total_this_period%><br><hr noshade size=2></td>
+ <td align=right><%total_last_period%><br><hr noshade size=2></td>
+</tr>
+
+</table>
diff --git a/templates/Traditional_Chinese_UTF8-invoice.html b/templates/Traditional_Chinese_UTF8-invoice.html
new file mode 100755
index 00000000..e6dee54c
--- /dev/null
+++ b/templates/Traditional_Chinese_UTF8-invoice.html
@@ -0,0 +1,337 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=64 height=58></th>
+
+ <td align=right>
+ <h4>
+ 電話: <%tel%>
+ <br>傳真: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>發票</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>致</th>
+ <th align=left width=50%><font color=ffffff>付é‹åˆ°</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>電話: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>傳真: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ <br>
+
+ <%if shiptocontact%>
+ <br><%shiptocontact%>
+ <br>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>電話: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>傳真: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%if shiptoemail%>
+ <br><%shiptoemail%>
+ <%end shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=14% align=left nowrap>發票編號</th>
+ <th width=14% align=left nowrap>日期</th>
+ <th width=14% align=left nowrap>到期日</th>
+ <th width=14% align=left>訂單編號</th>
+ <th width=14% align=left nowrap>銷售人員</th>
+ <th width=14% align=left nowrap>付é‹é»ž</th>
+ <th width=14% align=left nowrap>付é‹å…¬å¸</th>
+ </tr>
+
+ <tr>
+ <td><%invnumber%></td>
+ <td><%invdate%></td>
+ <td><%duedate%></td>
+ <td><%ordnumber%>&nbsp;</td>
+ <td><%employee%>&nbsp;</td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>編號</th>
+ <th align=left><font color=ffffff>號碼</th>
+ <th align=left><font color=ffffff>æè¿°</th>
+ <th>&nbsp;</th>
+ <th align=right><font color=ffffff>數é‡</th>
+ <th>&nbsp;</th>
+ <th align=right><font color=ffffff>單價</th>
+ <th align=right><font color=ffffff>折扣 %</th>
+ <th align=right><font color=ffffff>總價</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%>.</td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td><%deliverydate%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discountrate%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+ <%end number%>
+
+<!--
+you can also use netprice instead of sellprice if you
+don't want to show the discount
+netprice = sellprice - discount
+-->
+
+ <tr>
+ <td colspan=9><hr noshade></td>
+ </tr>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=7 align=right>åˆè¨ˆ</th>
+ <td colspan=2 align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=7 align=right>å°è¨ˆ</th>
+ <td colspan=2 align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=7 align=right><%taxdescription%> 基於 <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if paid%>
+ <tr>
+ <th colspan=7 align=right>已支付</th>
+ <td colspan=2 align=right>- <%paid%></td>
+ </tr>
+ <%end paid%>
+
+ <tr>
+ <td colspan=5>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <%if total%>
+ <tr>
+ <td colspan=5>&nbsp;</td>
+ <th colspan=2 align=right nowrap>尚欠金é¡</th>
+ <th colspan=2 align=right><%total%></th>
+ </tr>
+ <%end total%>
+
+ <tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <%if notes%>
+ <td><%notes%></td>
+ <%end notes%>
+
+ <td><%text_amount%> ***** <%decimal%>/100</td>
+
+ <td align=right nowrap>
+ All prices in <b><%currency%></b>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <%if paid%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td colspan=9>
+ <table width=60%>
+
+ <tr>
+ <th align=left>付款</th>
+ </tr>
+
+ <tr>
+ <td colspan=4>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <th align=left>日期</th>
+ <th align=left>帳戶</th>
+ <th align=left>來æº</th>
+ <th align=left>金é¡</th>
+ </tr>
+ <%end paid%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid%>
+ </table>
+ </td>
+ </tr>
+ <%end paid%>
+
+ <tr height=10></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <th>
+多è¬æƒ é¡§ï¼
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=60%><font size=-3>
+ è«‹æ–¼<%duedate%>之å‰ä»˜æ¬¾ã€‚退回的物å“須支付10%的回收費用。若è¦é€€å›žç‰©å“,必須先å–å¾—<%company%>的授權。退回
+物å“çš„é‹è²»å’Œä¿éšªè²»è‡ªè² ã€‚若在途中出ç¾æœ‰æ毀情æ³ï¼Œ<%company%>å°‡ä¸æœƒè² ä»»ä½•è²¬ä»»ã€‚
+ </font>
+ </td>
+
+ <td width=40%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <th colspan=9 align=left><font size=-2><%taxdescription%> 註冊 <%taxnumber%></th>
+ </tr>
+ <%end tax%>
+
+ <%if taxincluded%>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <th colspan=8 align=left><font size=-2>上述稅項已包括在價格中。</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Traditional_Chinese_UTF8-invoice.tex b/templates/Traditional_Chinese_UTF8-invoice.tex
new file mode 100755
index 00000000..fa7145bf
--- /dev/null
+++ b/templates/Traditional_Chinese_UTF8-invoice.tex
@@ -0,0 +1,207 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\newsavebox{\ftr}
+\sbox{\ftr}{
+ \parbox{\textwidth}{
+ \tiny
+ \rule[1.5em]{\textwidth}{0.5pt}
+Payment due NET <%terms%> Days from date of Invoice. Interest on overdue amounts will acrue at the rate of 12\% per annum starting from <%duedate%> until paid in full. Items returned are subject to a 10\% restocking charge.
+A return authorization must be obtained from <%company%> before goods are returned. Returns must be shipped prepaid and properly insured.
+<%company%> will not be responsible for damages during transit.
+ }
+}
+
+<%include letterhead.tex%>
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \vspace{0.2cm}
+
+ \hfill
+ \begin{tabularx}{\textwidth}{Xr@{\hspace{1cm}}r@{}}
+ & Subtotal & <%sumcarriedforward%> \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%invnumber%>}{<%company%>\hfill <%invnumber%>}
+
+\begin{tabularx}{\textwidth}{@{}rlXlrlrrr@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} & & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\ [0.5em]
+ & carried forward from page <%lastpage%> & & & & & & & <%sumcarriedforward%> \\ [0.5em]
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+\textbf{To}
+\vspace{0.3cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\parbox[t]{.5\textwidth}{
+\textbf{Ship To}
+\vspace{0.3cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{I N V O I C E}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{7}{|X}|} \hline
+ \textbf{Invoice \#} & \textbf{Date} & \textbf{Due} & \textbf{Order \#}
+ & \textbf{Salesperson} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+ <%invnumber%> & <%invdate%> & <%duedate%> & <%ordnumber%> & <%employee%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXlrlrrr@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} & & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\ [0.5em]
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%deliverydate%> &
+ <%qty%> & <%unit%> & <%sellprice%> & <%discountrate%> & <%linetotal%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
+ & Subtotal & <%subtotal%> \\
+<%foreach tax%>
+ & <%taxdescription%> on <%taxbase%> & <%tax%> \\
+<%end tax%>
+<%if paid%>
+ & Paid & - <%paid%> \\
+<%end paid%>
+ \hline
+<%if total%>
+ & Balance Due & <%total%>
+<%end total%>
+\end{tabularx}
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100
+\hfill
+All prices in \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%notes%>
+}
+
+\vfill
+
+<%if paid_1%>
+\begin{tabularx}{10cm}{@{}lXlr@{}}
+ \textbf{Payments} & & & \\
+ \hline
+ \textbf{Date} & & \textbf{Source} & \textbf{Amount} \\
+<%end paid_1%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%payment%> \\
+<%end payment%>
+<%if paid_1%>
+\end{tabularx}
+<%end paid_1%>
+
+\vspace{1cm}
+
+\centerline{\textbf{Thank You for your valued business!}}
+
+\rule{\textwidth}{0.5pt}
+
+\usebox{\ftr}
+
+\end{document}
+
diff --git a/templates/Traditional_Chinese_UTF8-letterhead.html b/templates/Traditional_Chinese_UTF8-letterhead.html
new file mode 100755
index 00000000..d59b8315
--- /dev/null
+++ b/templates/Traditional_Chinese_UTF8-letterhead.html
@@ -0,0 +1,32 @@
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%><br>
+ <%address%>
+ </h4>
+ </td>
+
+ <th><img src=../<%templates%>/logo.png border=0 width=84 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%><br>
+ Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <td colspan=3>
+ <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
diff --git a/templates/Traditional_Chinese_UTF8-letterhead.tex b/templates/Traditional_Chinese_UTF8-letterhead.tex
new file mode 100755
index 00000000..16d805af
--- /dev/null
+++ b/templates/Traditional_Chinese_UTF8-letterhead.tex
@@ -0,0 +1,17 @@
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{../<%templates%>/logo}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Tel: & <%tel%>\\
+ Fax: & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
diff --git a/templates/Traditional_Chinese_UTF8-logo.eps b/templates/Traditional_Chinese_UTF8-logo.eps
new file mode 100755
index 00000000..3a22b2ff
--- /dev/null
+++ b/templates/Traditional_Chinese_UTF8-logo.eps
@@ -0,0 +1,1334 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: GIMP PostScript file plugin V 1.17 by Peter Kirchgessner
+%%Title: Brazilian_Portuguese-logo.eps
+%%CreationDate: Thu Aug 31 19:25:05 2006
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 2
+%%Pages: 1
+%%BoundingBox: 14 14 415 215
+%%EndComments
+%%BeginProlog
+% Use own dictionary to avoid conflicts
+10 dict begin
+%%EndProlog
+%%Page: 1 1
+% Translate for offset
+14.173228346456694 14.173228346456694 translate
+% Translate to begin of first scanline
+0 199.99842519685043 translate
+399.99685039370081 -199.99842519685043 scale
+% Image geometry
+400 200 8
+% Transformation matrix
+[ 400 0 0 200 0 0 ]
+% Strings to hold RGB-samples per scanline
+/rstr 400 string def
+/gstr 400 string def
+/bstr 400 string def
+{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop}
+true 3
+%%BeginData: 80402 ASCII Bytes
+colorimage
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+fDblg6K\=Q"WB-W4?Pdo4p6+l]&ih]rrrDpij);hp&GL',"Q[#Lmt]mi:-UBo)Ajlp>C')q#Ca-
+0OT-[R^UZ0q#:3k!rftBr;[*-4`Pt>]\`;[p&>'%-iO)I,T-[I!!OC1jn&BKnc&dlp#<8P%e]l2
+"!U9TI#+8tb2Ddcrq6:-g3RO66TZkO/89R1ak>G'lMCDUrVc`p_uG5~>
+fDc3-AgAK<(`*r''GKsK"r/C?3]oMfm61YtOLjQNo`#*op#<8P%e]l2"!U9TI#+8tb2Ddcrpp'l
+rq>8m&GZ;5#V]Y2L75R!lM1AVrrW28$N0r1#!HsURCqDKrq69l[jV.T![JWbkPtc,R-!r:rpg!l
+rq59V:(Hst$j.\EE.!J2ZHD+pqYp0f(YX1N<'rc'0emR!XjZ4ijR;sBr;HTnrknbd~>
+fDc6;J3>hE.46Gg,U"<#*sNl<2EEr_4mbE9G`]Muqt0mlrq59V:(Hst$j.\EE.!J2ZHD+pqYp'c
+"TJ,QFV+?K$4&=nG_VZqdd$W,r;Qit^^C#?#R3G3J!mt+o`"O`!OjHU!!4D`!pBUf*LPs[qu6-c
+"oe2SZ;(o'!"8rR88rs4S$L2pnG<.WrtjC8CK*Y`2)R41LpG[tlg+-<qu$Ekrr0h8J,~>
+gA_6CM^RKa#SJU[Cl4ICR$dH4"J2pKnc&.[#laS]ca8*s2'Dku%L*7S1/_:`E/L-e^<lNJn,*ps
+lGB9$.1d!s#n@h2C5&"Yb2DgerqcX(q78g7,slHqMPJ)Jp&4[cs*k'%9)\er&Pd:_DG`D6!pTal
+;j3B4I=8["q>L$e)ZKKoca5M5$jR7P',DcW=EAnFP+oA,h<ak4r;@'%mG5jnSV:rb4tRZYo)K.6
+.77QqVp"]-r;HW:s*t~>
+gA_WSXCb's7mAmd0J>%2/aY(p3(dS&NKf`rR.?XJT!Hl9rq$..rqGU%[!bb.+:/;Z%M^0O>@_Mp
+OJ9/'f_#".r"](qb,Jl)'b_,j)_+BrKpT$di:6^DqYq$#\j.Db6>_(,UVl'`rV6EmU]HuXrW!3>
+=ES\+<]_9&l2V,jVQ@/!U<E9+rV$70rqGU%Zq25S%MBBi(a_LMF+&e+U:&/"m.U>Sr=/\qk1@he
+W0`?`B2UiFr@A%'1d4D,8ded6G`JT6f_#";rVjq=J,~>
+gA_WV`KPh&H>[%h;Gg7d:@1a]<FBcqNg,isR.?XJT!Hl9rq$..rqGU%[!bb.+:etm&f`Dk@V^"7
+Q)D4<h=UO3r"](rd'%+>(`!f$,WA_DKpT$di:6^DqYq$#\j.Db6>_(,UVl'`rV6Em^B(K0rW!3B
+@!Hj=>!*c+l2V,lZbFJn^"N,TrV$70rqGU%Zreh$',D<")CRjQF+&e+U:&/"m.U>Sr=/\tmGcjE
+_7$G9OF(D5rCmAj>ASW`J.%6uT<>oSiV!$ErVjq=J,~>
+h#@HEIh:?7#Tc9FPJ##]c-H(0"4GulqXORjrqc-Bc+C!IjT#8`m/R?)T"N_Cq#1!f%/obL[[`MH
+U:8M5p\spee,TVcf]W#.pAY9pqXED]p&G=-'G_N()]Tmq*WQH&!!iZW>`-Jlq#(-9s*t~>
+h#@HJUfI@c"%YgF4l\X1;/(]X^WF^EcM,WedbO6dnc'C(qXEFf];hGR.Olks.P*2,2*!ie7S*/D
+!)3/["\;$E2D?]].L7OVFe67umJ-YTrs\ksfX@<5QD1k8kkG)Nrt@jG!<<*#(b-sc0JtaF0Ie1Z
+$3BMo#oYim84nopkP+uLrtbV1nDI&"0eP",.Ochs/1rtM85<,d>l%b,:\RH`84>d,rB(0F5Xe6:
+8dJ+(MQ5+sq#(-9s*t~>
+h#@HM^PMi="+56/C#`k4FbQ3b_9'pGcM,WedbO6dnc&ppqXEFf];hGq8cD6f8P;iZ>@VDgG^Y)7
+J,k2sJ.d?ZFD5#[9h@lH8ksi,]\)WHrV6C$rUSULS<B24\'X@5rqHF+H9;6/!!+Q@7nZfd?<U9"
+2^8k8m/RGEAorHOWS$D.rq??urqc-BFC%sC91f+R$;!ld>@_PnIYEZ=qi1Z0pOE?oG].?qBEN!f
+G^]78#_J8?^teSWr;Ot@J,~>
+h>[MB'\!*i,YiZYa62mZnF?&JncSOYqu6'a#Q=GfkM4KR)UeZi*-S.$mJQYW$N0GOcGmrTj73!F
+p\t6"ec5mb/8hc?meueX"TA*n,R_Hh#7aOmh":IArmCar~>
+h>[M`=SbYi8,u0:7LELMS$gZ-mdKZ8nc&(]o_87^n,EXkq!mP&dV;DR3!VH*4[;>&7nDf8%S9,W
+5<Lqc3BBc^Us&0'p&>Bsn__X3aOK8?qYp6h!OE+3!##DT-n$]+5!hV'5!1e]0J"C`$j,nu#UVT+
+?\Yl5meueX#Q=FJ>Xpq<3W:uC3BKAh6:FC8lq.=N84WVJ!_5dQmn*g`J?Io(qYgE@s*t~>
+h>[N!MYho*Isl\"H4#P$Zc1S]mdKZ8nc&(]o_87^n,F("q!mP&dY;XJ@:E_XBl7s8H[^J.J.@!Q
+F)5K!@U`kaL8<#[r:U'sr:/[i`lQZinbW7ZrrKG;rW!T71dso2?>FS'EGT5p>#S'T-5?[R!!rZm
+AU&loZI&%<o`#U'pn<@]Bk:d_@:E_XBl7s8H[^J4J-(4LI/A3kI"$S7J-Uh)_rgUfrVk4EJ,~>
+hu<`75k=sc"VrFC5tXgF:/4DF.i/9O!!*]Ur]C="me$ATli.:jr:opKd%Y/9'&!<k"#=J;Ni^b$
+rq-3qrV,jMn+?JTpAY,>f)Q'a;0.S\XNp84o)Asihn"ng;)Ad$!!WNiQK@f9rmUmt~>
+hu<`@GOnE:9Mnkt@V0:fC2.Hn>Z4;[8dSO+F*)Mgme$ATli.Fnr:opKd&28#:.@`E8`E>N8Ou<>
+7TaSXNi^b$rq-3qrV,jMn+?JTpAY,>qu@NQ,q(K/6:XU>84Z3<69dRl1bgU.)%[&F!!j*8F,?6b
+cL1Z%rseb\\s@h_>t[RS7Rp!@b";k3FKjs$qYntDJ,~>
+hu<`GT_![<IscQgH[C/>IKP(MIt-[4!Jlg9S-6.co_SRQrso&+q"3gtWf)=NG^=adJ)l+hIsu`i
+GBS%NIZCMZo)A:]#Q=DemdKfErV$6kHi3pL!AZo0<+U)rrdG<'H$++DB44tC:-L3L%.jN*&m043
+Q`SL#rUTsuptrZOMLp5#G'A1WI"$RgJ-LRo_WgairmUmt~>
+i;Wha&G?)3"X69@G^kI,P*_]1rh'IfS=#7L5SE5[">J!QnGMJL#l<l9^9FDd9H)af#qBJ1L7#-c
+jnSiGs8Drirr@!8!!4`+#i,Ic89UN4bi8<po)B'omao@cYc+.?63tL0"V>7hnG)t4s*t~>
+i;Wi"<VB#m9N5D9G^kI,P*_]1rh'IfS=#CdBN""c"DGs4nGMJL#l<l9^9FDnE)tgf$!(hdL7#-c
+jnSiGs8Drirr@!8!!Y&=.ks.S8GYpg8Ou<=69dRm2)6d5*"E#D!!c&<S@?`%p&=O^$N'8C_mckK
+Sr%2W`(C25NR[ImrRLpu~>
+i;Wi2M"Z?,IsQ9]G^kI,P*_]1rh'IfS=#ItL4SN<"H^d\nGMJL#l<l9^9FE!MLs]8$$^E6L7#-c
+jnSiGs8Drirr@!8!!b/H79+#EI=M0F%tB%UH$44GBOY4I:e*2V!qu["89UN4bi8<po)B$nmao@c
+Yc+.WLr4`HL9'%tq#/bCJ,~>
+iVrn9p&GO<7W!I+P+J\^^;eCEe,@c%d`oeFZDDb'!pTag,b;X/qWIkdrqc0Li7?&`XFWVBirBDi
+9lbcMYfPVcpAO"N!/(1L";kW^EBr@\#!RdOh!Xn6nc'!rqXWt6i7cW"\Y):S!"&cA/3cp6C2SKO
+KDgH,J9#$l1DK9X"TqW;mJ$S2s*t~>
+iVrnZp.>ck@;pOIP+J\^^;eCEe,@c%d`oeFZDE@g9Bo+P>b/RgqWIkdrqc0Li7?&`XH.-lj%9YP
+@WI!bYfPVcpAO"N!/(1L"rLi`F'qF.oh#Wa84H$85Wq.e1Fs:Bq#CU_L:H%,pAFI\$i^"nlfI'Y
+d`8noDWsb":g%1=D00uNJV3oS"bM/FCg^008d.n<bO,'&fDg@~>
+iVrnsp4*U"FE;b_P+J\^^;eCEe,@c$d`oeFZDEhBl$rniS\=([kPkqhqXNh.f#kY,R>QRUJ-pdG
+Ee'I[aP?+TrSmhWKDY]R(h76%G^"W1J.7!WI!U!XDe`ij=A("Cq#CU_L:H%,pAFI\$i^"nlfI'Y
+d`8nsNp2'#I!U'`H[L9mJV3fP!J>skJ-CLtdd?f-fDg@~>
+ir9!spAb^?;KRDLTsM\cguRbgo(;VSp'^Qco'Yc%fZLdo7Ki&X"<E/rh"^"2$i^)#p@.8#cFooT%
+d!`u!`F)pUr;*Wq#(-NrrL.Cqu?puFHE]?JdCT@!=T>3!!P?@^Ztarn,NFe$N9o!q"4":g;nL?m
+f3e)/l6J6KT).cU8P&qZM_'8Za$U.SV:/k!q?6o"'3Y5q#/nGJ,~>
+ir9"HpIYrnA9<<^TsM\cguRbgo(;VSp'^Qco'Yc%fZLduDbTLi"B:&Th"^"2$i^)#p@.8#cFp'#
+;<:CVA93O%`80kVr;P^U!QP?@!!Z;BOKZBc:@Up_8Ou?@6pX!s/dhFT"ZVIUlMUYMs8W'*rVZNe
+o^:kqaHB6c8e"NtATN6PN0Kj,VlR#,r3Qa9Z)jdmNceQ!nO`sYK$s&]rRq4$~>
+ir9"fpOEd$EccelTsM\cguRbgo(;VSp'UKbo'Yc%fZLe&NpD2uI>"ZVpuVM`rquWdnE8TP]r@0H
+ja[YVF,-R0h<t(9ro3qY`ru;?##TK(YJ-renph'sIXHKeF`;))8.,1n"ZVIUlMUYMs8W')rVZNe
+o^:kqaJJ<T%=WPDFaSk$PanJGX08i,Zj3qBXJMJOMM(DK"bEE!mJ-Y5s*t~>
+j8T+/p](g,5&bn2VnUU<m.C)NrVlflrsA]'qY'F@fZ'=>m/R8.I&>WmiVs5`r:ojHg;p9k"R#gj
+/ocWFcKY*%hu<[5qu@!=E/1aQlJS-;lMq#'>>b\&!!G<<]''%TrrrE"p[6mkmf3eaEIa7KZG+E,
+f%Ss<iqqdCini>8aLn[:8e(:j"Uoe:nG<.=s*t~>
+j8T+Tpdu&i?>t:RVnUU<m.C)NrVlflrsA]'qY'F@fZ'_$m7ILZI&>WmiVs5`r:ojHg;pF@9^#(R
+=E0(pcKY*%hu<[5qu@!=E/1aQlJSa>m7IOQ7nd5e#5\B'3Jb90rTF1arquNYhOa1.%:=+*PGGLu
+aO&Mlh;I;ij9ai&f[7dQY*X*(nO`s^Rc*]3rnII'~>
+j8T+opj`m)FDuVhVnUU<m.C)NrVlflrsA]'qY'F@fZ'tOm=>4a!iF]HiVs5`r:ojHg;pR`J`qUh
+G&`89cKY*%hu<[5qu@!=E/1aQlJT4*mXPLjI=$!B;?m!u"?D:LkPaTD"oeGombY5;J.6R>J<Qe7
+^<"[Pg>1]HqrA(ChUp5s]WRfaK(4?pKWsD(qYo7LJ,~>
+jSo4Pp]([*;KIM`][l<<qYgE_rs/Q#p?^YWLDTCZ"<2`cgA'P)#QFYqmblB\-0YC6>'usdm/$_=
+rrBP*!!kT/R`b'rq!(]B!!Ea>Fbj)q!!G98[cRGJrr`5pkZ@6R$q,K5^XhE/n+?>Kq>0sc$iBep
+o^D##d_Vqg$1Ruu1qr/HrS7F'~>
+jSo4lpdtofA93Er][l<<qYgE_rs/Q#p?^YWRTJrM"B'WEgA'P)#QFYqmblBh?g1/eApg5pm/$_=
+rrBP*!!kT/R`b'rq!*=p8d%n&Fbj)q!!G98[cRGJrr`5pk_&@s$t+IQ^XhE/n+?>Kq>0sc$iBep
+o^D##d_W#4:[q$[C;oB0rS7F'~>
+jSo5+pj`a%E-$])][l<<qYgE_rs/Q#p?^YWVhOSis*OmFgA'P)#QFYqmblBpMWoWqE.";%m/$_=
+rrBP*!!kT/R`b'rq!+O=J-::;Fbj)q!!G98[cRGJrr`5pkbIWt%!?rf^XhE/n+?>Kq>0sc$iBep
+o^D##d_W)NK(4?oP02t]rS7F'~>
+jo5A)"Si$(!`*lnWQXDqqu5m\"o\5`gq6>M!!F6gVV:h"rrrAsnDM>llMq(oE/M0dqVD/O@/Bp0
+:4TD#q#CBc$g[ir:N_`*_YX<98;=S8r8[eZrqbC[nGie`KsKM+qYgE`rs8W%q=En-bcF/$!!Emu
+hXUO"s*t~>
+jo5A8:&%<d@WR@)bN8Bnrp'LerV5d8^NT*="B'WEgA'G&"o\8di5gH78d.n-MR_aDh>[I_qZ$ms
+J?.K#s8Vailq.CiFcWoHqZ$aiL:67Bj8T5\qVbBC8dAgZZJ>*KrVl?e#labtoBP/UY]'&("B;;U
+nbh5CJ,~>
+jo5ACK(sj%EH?r8bN8Bnrp'LerV5d8_Ns\As*OmFgA'G&"o\8di5qMTJ-CC@MR_aDh>[I_qZ$ms
+J?.K#s8VhIm!o4YFcWoHqZ$aiL:67Bj8T5\qW*D$J-U7OZJ>*KrVl?e#labtoBP/U[#jg."GO5>
+nbh5CJ,~>
+k5PJR,kq?E0QDiId-UW.k5PV`pZg:]#k@ru)gnO:pt>ZLrV5d'lMq))FI()<rn[SS./NuL;i%sG
+r;Zf#li724E/(OJn,!(f@Z%e]rSdbWq.K3t"@e6Zkl'iI#QF\snD_`I&Fof)!cuoZqYoCPJ,~>
+k5PJUAGAb%=`K1rd-UW.k5PV`pZg:t:@_![;LG@qpt>ZLrV5d,lUh=XFI()<rn[SS./NuL;i%sG
+r;Zf:lq.F\E/(OJn,!(f@Z%e]rSdbWq2t2>"Cd5!kl'iI#QF\snD_`^;t<Na99@]kqYoCPJ,~>
+k5PJXP5'P4G&`8:d-UW.k5PV`pZg;0K(=HlHig2!pt>ZLrV5d/l[T.cFI()<rn[SS./NuL;i%sG
+r;ZfKm!o7bE/(OJn,!(f@Z%e]rSdbWq60=="EoX5kl'iI#QF\snD_`mK^jQqV:Fu0rnma+~>
+k5PF"p](L*BRZZ!mJGrD"oeDjiMmgf!!F0eVV:gsrrN&8lMq&+H(`XZh#@?rqZ$k"N5+ZVs8Q?j
+!!Q)BSBL?equ?m=Eg"B.ro*kXrl=O/"@e9\kl'`F"o\8dhQ\Bs!!HlYlM:G;s*t~>
+k5PFLpdt`bCOVu$mJGrD"oeDjiO)k\8d&%>VV:gsrrN&GlUh:XH(`XZh#@?rqZ$k"N5+ZVs8S#D
+8d/[LSBL?equ?m=Eg"B.ro*kXrmgO2"Cd8#kl'`F"o\8dhR[+b8d'molM:G;s*t~>
+k5PFjpj`QtDLS;'mJGrD"oeDjiP(->JH'uuVV:gsrrN&Rl[T+bH(`XZh#@?rqZ$k"N5+ZVs8T7g
+J-Bt=SBL?equ?m=Eg"B.ro*kXro!<s"Eo[7kl'`F"o\8dhS>'>J-;FglM:G;s*t~>
+kPkS3"S_s#20=tpk5+$9"TJ2]^*iOQ":fgUf_F%t!35tt!'9TL";cE\f_=2$!$D(<#<RmZlM^bS%
+.+$!"`9"#i;'/G!!Q&BT[NK3i;WiT(@hG.7Z+hArT=+_rV5[#2XpbM@a"$3ro*m-~>
+kPkS@:&%<a>',n@k5+$9"TJ2]`a\R4"AX?@f_F%t!5e\,!*o"c"AsNAf_=2$!$D(<#<RmZlM^bV
+;XI'\9Q#Tki;'/G!!Q&BT[NK3i;WiT=n5/f@Z%e]rT=+_rV5[&D"1+#K$3ESro*m-~>
+kPkSIK(sj"F``b[k5+$9"TJ2]bDl.E"Fb`pf_F%t!7^st!-I^\"FPQlf_=2$!$D(<#<RmZlM^bY
+L@'KqIrC(Ji;'/G!!Q&BT[NK3i;WiTMXl9#G)EoqrT=+_rV5[)P4=&*R`jskro*m-~>
+kPkNYpAbA&J#Lukrnm_Yrql000(f2I%==l%p=B6DL]%2RB-$LB":TXQf_=2$!)ECk"qZO!jo#.R
+qu?^*nc/k8FHjf4nKe&5"X%c?[Ggu>rrN*rnc/e^MS&*Njo5J_qsi8tnGiZ+b3A`\s*t~>
+kPkO6pIYU&J#Lukrnm_Yrql04BD"k":4&bfp=B6DWr5NjCfU!t"AX<>f_=2$!)ECk"qZO!jo#.m
+r(6rank'*bFHjf4nKe&5"X%c?[Ggu>rrN+Nnk'$oMS&*Njo5J_qsi<VnO`n<b3A`\s*t~>
+kPkO\pOEEdJ#Lukrnm_Yrql06OS+,,IX@jAp=B6D_u5)dDgh/+"Fb]nf_=2$!)ECk"qZO!jo#/+
+r."crnpgpjFHjf4nKe&5"X%c?[Ggu>rrN+snpgjdMS&*Njo5J_qsi@(nUL_1b3A`\s*t~>
+kl1Y/pAb@.EK%Qnr7q;Sr:88hp&G4)HD/m_f)G_`rW!!*Ea8)6"*C6ep>#ZJV"t&p5cE<-r_37j
+!=D?f!!P$%U"&U2r;[$/@XF`ln,;,C!.j\@"@e9\kl'QA"9%lB.e3QB!e8G\qVqO*~>
+kl1Y=pIYTbEK%Qnr7q;Sr:8EPp.>H_HD/m_f)G`7r^m5cEcUYA"*^Hhp>#ZJV"t&p5cE<-rdar>
+!DQtm8d/@DU"&U2r;[$/@XF`ln,;,C!2]6Y"Cd8#kl'QA"9%lFAb&Fr99IHbqVqO*~>
+kl1YGpOEEpEK%Qnr7q;Sr:8L&p4*9pHD/m_f)G`WrdY'!Ee<e2"+$Zkp>#ZJV"t&p5cE<-rhfXE
+!If+\J-C.CU"&U2r;[$/@XF`ln,;,C!5J)T"Eo[7kl'QA"9%lHOR[i'T?QZuir=N~>
+kl1WbpAb@BG+-\GrnIGTrUeS^pAb=*H(`[\f)G_;rW!$:G*F0?!!?8jch#rl!V\&>!!H?;jlQ^E
+!!+i]nc/eTJ?-URr;[$*<d'Y=jS@X3!28r`"@e9\kl'N@"9.u;'Cl,+%[ti7r8[g-~>
+kl1X=pIYThG+-\GrnIGTrUe`LpIYQ`H(`[\f)G_rr^m8iG*H;&8crmuch#rl!V\&>!!H?;jm,V=
+8c`(1nk'$jJ?-URr;[$*<d'Y=jS@X3!5.kp"Cd8#kl'N@"9.uC<q8ic;52M-r8[g-~>
+kl1XapOEElG+-\GrnIGTrUeg&pOEBqH(`[\f)G`ErdY)uG*IjRJ-1.ech#rl!V\&>!!H?;jmRd!
+J,sh8npgjdJ?-URr;[$*<d'Y=jS@X3!714d"Eo[7kl'N@"9.uHM"6'!Ju6ubr8[g-~>
+l2LeM"SVm!3.7[VpY#QKrq4GJp](F&GbER[f)G^mrW!$IHD#o\!!G-A`U3Z\rrW/;#PnE%4hQFF
+!!6GR!qQBo7=\hVr;['0<csA,g@YC#rrBe(!!GcK]BK4PrrW2mU@A3d/?mh"roF*0~>
+l2LeS:%q6_>^`L%pY#QKrq4]?pdtZ_GbER[f)G_Xr^m8nHD$eu8d&I``U3Z\rrW/;#PnE&4hRFY
+rCR-)I7s0("(?^h%K-83$<D;.ZJ+sMh>[K%nk'$oMS&*NiVruYosaH`"CSIeo`!qOJ,~>
+l2LeWK(jcuG($7?pY#QKrq4lupj`KrGbER[f)G`3rdY)qHD%D1J-:7_`U3Z\rrW/;#PnE'4hS.L
+J,Xs!E.7A."*K-'%K-83$<D;.ZJ+sMh>[K3npgjdMS&*NiVruYou?NP"GX/6o`!qOJ,~>
+l2LaMp&G4`K!=20f`)'QoX5)$!!@J;e+M>m!;l]p"?(_.d3%oZ":U*rjnmj5!r/2dq>^O((]==9
+)KC]Vo)Je5%/^)1*G'JTYgr7@h#@B&nc/e^MS&*Ni;WlWo2tM_"(8e&q;hR+~>
+l2Lakp.>HqK!=20f`)'QoYaT$8cs=0e+M>m!;udf"C-DTdU2Q;"AXc_jnmj5!r/2dq>^g0/j)To
+8lBYf>4bDg68&cF!!aNUG`ArXnGM)A!8d9="Cd8#kl'H>!r__EnO`n1]]AnLs*t~>
+l2Lb,p4*9gK!=20f`)'QoZi-bJ-1%fe+M>m!<)kH"Eo6nduEpK"Fc0:jnmj5!r/2dq>^g05A,4h
+IsQ*nL\-)uE]X^-!!aNUG`ArXnGM)A!9j!("Eo[7kl'H>!r__fnUL_%]]AnLs*t~>
+l2L`Sp&G4aL:64AfDbpNo8`SG"*U3^o[j*Cg\h*T7Y7l%Mt$cL?DuQNh#@KTntQrm!!>W4S3H?@
+#REn@I[.=lnGM&@!8d8H"@e9\kl'E=!rUsdnc/e$R*+gojo9i~>
+l2La2p.>HrL:64AfDbpNo;VLW"*U3^o[j*Ck5@mT@=k`@Wpr[`Ei@[bh#@KTntQrq!!`Q>-otUV
+S8\0p"%G3q&c2P6#Y&laQ*o34r7h5OkOM4J@Z%e]rSRVVr8^fI8d%t[b3f,gs*t~>
+l2LaZp4*9hL:64AfDbpNo=XjK"*U3^o[j*CmJVP<FFpaS_!upWJZ.8qh#@KTntQrq!!`TM7V$C[
+S<Wf!"*n9=*r>pC#Y&laQ*o34r7h5Omdbl2G)EoqrSRVVr9/n*J-2=amJQ)GJ,~>
+lMgnZ#ke6$7Z"_?rRUuMr:!nc!!@A4d.Gri!4Vn,"]^>fk3WrT!!Fp@am]5arri5d`Dd$8!!<ED
+3$n%o#n&k6I#=Z6h=:EsrrDc`!!GcK]BK4MrrMtInGi\eY1r[Lk5Tr~>
+lMgn\;"dKa@Yq\[rRUuMr:#I:8cs4)d.Gri!6kC6"_NP"k3lID8d&Fdam]5arri5d`Dd$8!!<ED
+3&^[["!\`u$2FQ-$Tr?TMP@oBnbh,@!;Z1X"Cd8#kl'B<!W&P\8d'(8g\1X/s*t~>
+lMgn^K_Bp!G)<forRUuMr:$TZJ-0q_d.Gri!8II&"`oI/k4+?"J-:=fam]5arri5d`Dd$8!!EKE
+3(#k-4p*o#+V4AK#n&k6I#=Z6h=:EsrrDodJ-:%Q]BK4MrrMu.nULasY1r[Lk5Tr~>
+lMgk-o`,+aM7`!Mec,^JiZe4!")""Ho@O!BQi-mfArOLiqLnD>"9a=cjSR^3"o@Z<WE9kt!"/f?
+3bj)#T!m#.pAN\E!<2Nh"@e9\kl'B<!rhQsnc/e*QGr4hk5Tr~>
+lMgk<oh#?rM7`!Mec,^Jj^@pW")sXQo@O!B[J`]$D2c6pqPEaT"A=KYjSR^3"o@Z<WE9kt!"/f?
+3bj)#T!m#.pAN\E!<2O]"Cd8#kl'B<!rhXfnk'$^QGr4hk5Tr~>
+lMgkGomd0gM7`!Mec,^Jk`5Li"*^-Xo@O!BbPcqpEf@cuqS)KM",OGIqqM,SqX2q6=;9ou$NUl$
+C41u2[a=11rRq2NrpkRBG)EoqrSIPUrpba5J-2+Vm/?)HJ,~>
+lMgjNo`,+[M7VpLeGfUG[KHC,"D4"Enc%2@!-J2?#6T"0`pWih%e9T&9Vg53rnIGWr:ApkZ[t1$
+!"'N/@"b8acJe<irn%2@!!GcK]BK4LrrN%3nGiZ%Y2/m8s*t~>
+lMgjloh#?pM7VpLeGfUG`_?8%"E9^Onc%2@!1a$\#>9*#`pWim<:WWaC8BDQrnIGYr:ApkZ[t@J
+!q$$t"Uu:u6=>J@\Ba('qYo+Hnk'$oMS&*Nh>[NRPOV6IGHTcsk5Tr~>
+lMgk-omd0iM7VpLeGfUGdXh:G"Ep-Unc%2@!4r/[#CgcW`pWipL@KcrUt,/;g]%QWoA[s"Jj^1Q
+mJm\&(F_:0@"b8acJe<irn%2@J-:%Q]BK4LrrN&&nUL^pY2/m8s*t~>
+lMgj+o`,+KLq)UFeGfULp14%#"C786nG_)?!)WXp#820Hc1:l3D=RZ0'U$B"rS%8TrV>p?cU[p6
+"pu+Y&Io9OoDf.4<.1msjRE!Dec,U_o)Jn_MS&*Nh>[NT`:3g11n)VWroa<3~>
+lMgjSoh#?jLq)UFeGfULp5]#B"Dj=EnG_)?!.t2B#>fQ1c1:l3QL[WN;Ner`rS%8_rV>p?cY5-e
+,9%F7&ePT`"o\W;"UGMJ'cS>C-7CZLIBCrYnG3%5rr?-l8d&U\]BK4LrrN,KnO`pkR`k4"kPp&~>
+lMgjqomd0kLq)UFeGfULp8n.A"F$*PnG_)?!3#mI#CLZ]c1:l3ZgrVLJ!._8rS%8^rV>p?c[o1m
+4Y@ln&ePT`r!3lF'H8;N4$Z/&85t#>dcBonrRLoJM=Z6#G)EoqrS@JSrnd0q"Fcf_nG_VNJ,~>
+lMgico`,+1KX0V7e,KLJjV[mq"BUc+mf(l=!&4BP#U"Aae+Nb?h?WTO")+mopt5TKrV>R_r;[$V
+9ji7&N#_Hi"r;$DcLC]0e,KCio)Jn_MS&*Nh#@EP(@hG.&rO9_r9+*1~>
+lMgj?oh#?bKX0V7e,KLJl!"!W"DX+>mf(l=!,VX,#ZQ&@e+Nb?k"kP?"*h$*pt5TVrV>_N5Wh"`
+5tta4Ll=In./tb)/1rV52aV>LcLC]0e,KDUo1B-pMS&*Nh#@EP=n5/f:l;jHr9+*1~>
+lMgjcomd0nKX0V7e,KLJl\bUj"F$$Kmf(l=!1<b9#^U`fe+Nb?l@\YX",*l6pt5TVrV>f*DJ3Ka
+9hf#@Ll>:171MdX8PDr[=^GNQRa1F!rmUlIO7Rl)G)EoqrS7DRqhjrp"Fc6>k5=EBJ,~>
+lMgiLo`,*rFfF-jdf0@ERf!-g9T[-Xrn.5N%/p54/psPLq#CBk?1Isu0:L,Srn%/MT)AWo$!qV7
+Z+n%CoDf"(H)B<jdJj1go)Jn_MS&*Nh#@ES;=OVgG,j<lkPp&~>
+lMgj.oL]44WS@3rrrMu'r(7*'OM^A`f`(qLr^mGuI&>Tls8VtRnk'$kR`t:#fDc8j8Ou<=7::+u
+Z+n%er&+sB3'',a5X@b0H)B<jdJj2So1B-pMS&*Nh#@ESK(2G8I&brrkPp&~>
+lMgjWoRI$nWS@3rrrMu9r."opOM^A`f`(r+rdY9!I&>Tls8VttnpgjmR`t:#fDc9)IXHHbEF<dL
+Z+n&)r*Be=@:WtbD/jZ?H)B<jdJj3-o7-seMS&*Nh#@ESVso3<Wn[=3s*t~>
+lMgiKoDf"dS^@!-e,KLKoeuaK"@eBclM]E9!:0R`#X!X>hYR9PrmL?;"9a7bjSRR/!'pJ_#;pOa
+^>J8AIe3UC"+-iqpX0!@+7fI87Z+hArS.>PM=CQK<h7V/rojB4~>
+lMgj-oL]7"S^@!-e,KLKoks_#"CmG+lM]E9!:g"[#[Mt_hYR9Prn[-;"A=KZjSRR/!-eB6#?c)0
+^>J8ASGGV\77Kd<8P2X&Ut>@grr?Hu8d&U\]BK4JrrB(h8d&t$d.@8#s*t~>
+lMgjVoRI'nS^@!-e,KLKopG]."F,p@lM]E9!;6;@#^1a#hYR9ProEU"",aVLqq(iJT`0HIIro^n
+^>J8AZi"nRF`qtSH@1-jIs\!CpX0!@O7Rl)G)EoqrS.>P_sr6[I%AXUrojB4~>
+lMgiKoDf".OML/[df0@G]DV^43JtH4rRq2Na8Gu@8qaS3r;Q]sqb$DZ"@o9;o`!PD!8m_T#QeFb
+WnI+FrNPkn")jd[p!Nd>+7fI87Z+hArS.>PXmlAo6'B7UrojB4~>
+lMgj-oL]6aOML/[df0@GbPb$9?AcAYrRq2NfDS;E@YD,Kr;Q]sqgS*."DFU\o`!PD!9j>Q#AJ^g
+g%PFD`q)e)Fe7(TdJj2So1B-pMS&*Ng]%8lnO`pnP/cqhkl6/~>
+lMgjVoRI'oOML/[df0@GfDU4&H&B5trRq2Nj8FK2FG.$]r;Q]sqkEY3"G*Auo`!PD!:Ti9#B,-m
+g%PFDf(smmJ-1(ge+M,g!0?`%"Eo[7kl'99!7gUi"FH<Omf)GMJ,~>
+lMgiKo)JknXk`^!rrMmdrW!'TL:?=Cg&D&Mr;Zt&M7VmKrr3#u^@D7,'9U,rr7V)MGPqLI,BAjZ
+kktJ\iq!-P?CB+0dJj1go)Jn_MS&*Ng]%8nnGi\GMS/0Okl6/~>
+lMgj-o1B+)Xk`^!rrMnBr^m;sL:?=Cg&D&frCR3+M7VmKrr3#ucLOR1;3A][r7V)MTD_@f<H=/7
+kktJ\lLRUMDOJf@dJj2So1B-pMS&*Ng]%9)nO`pgMS/0Okl6/~>
+lMgjVo7-prXk`^!rrMngrdY,tL:?=Cg&D'$rI>#lM7VmKrr3#ug@BasJ!%S4r7V)M]D[6cH#et[
+kktJ\nFM/4H'utKdJj3-o7-seMS&*Ng]%95nULahMS/0Okl6/~>
+lMgiKo)Jn%N5k5^df0@H`Voi?-A8\br7V)MKDbcQBTBpqrr)itqD[sF"(A:dptG`Kq],P7#u>oA
+de!J<s8EQ$!!H,^aRB,Vrr=/4!!GcK]BK4JrrCpG!!F^([,h/Ks*t~>
+lMgj-o1B-]P/ckddf0@He,DrB=+mm>r7V)MVu93jDN;R"rr)itqJc!t"*L^#ptG`Kr*K=o$"J=U
+de!J<s8H!i8d&gkaRB,Vrr?Hu8d&U\]BK4JrrD6P8d&7M[,h/Ks*t~>
+lMgjVnpgh.`pEWOrrN)SrdY,tKX0Y9g&D&grI>#kNkt)]rVlopRdtt2KWNu(gA_3PNr=J7EdOM.
+oD\direL,r"F--On,Cc8!0?`%"Eo[7kl'99!:KB-"F>d/jS\6AJ,~>
+lMgi_nc/e@W7^bAdf0UK8cSi2JZdo,g&D%[rW!**F-F]6rr)itrMT2d"=]b]n,D)A!42V("VPd1
+[c@5`rrN*WoDf"[Nl(/^df0:ho)Jn_MS&*Ng]%91nGi\3JZdr-kl6/~>
+lMgj;nk'$jWn?tCdf0UKHqI"1JZdo,g&D&4r^m>fF-F]6rr)itrP%hp"Bq59n,D)A!6P13"]0/o
+[c@5`rrN+<oL]6qNl(/^df0;To1B-pMS&*Ng]%9;nO`p_JZdr-kl6/~>
+lMgj`npgjrWn?tCdf0UKU4@cAJZdo,g&D&VrdY0%F-F]6rr)itrQk%b"Fli^n,D)A!87=$"ak9F
+[c@5`rrN+foRI'iNl(/^df0<.o7-seMS&*Ng]%9AnULaiJZdr-kl6/~>
+lMgj&nGi\U\`!5]e,K^Q\c;^@J>q;ug&D%7rW!'6G+$YHqu6]l,kD!=!dqH:qV2#M;#L@t5^/[?
+nGW=c!+tj'">G_Fkl&s0!$Ce4"@e9\kl'99!8d5G"<2ijh"g16J,~>
+lMgjOnO`q!\`!5]e,K^QbXtK(J>q;ug&D%or^m;iG+$YHqu6]lA+N:q98'b6qV2#MK)J:F??_j]
+nGW=c!0ZtH"C$bqkl&s0!+>Cj"Cd8#kl'99!9irF"B'`Lh"g16J,~>
+lMgjnnULb"\`!5]e,K^QfRSL%J>q;ug&D&DrdY-!G+$YHqu6]lORdo(M72I@g]%8PrI>&nGFH_E
+rVc`rZLiYMHA]>urR1]GO7Rl)G)EoqrS.>PmdYf1I"/0Oq<7j/~>
+lMgjIn,NSP^?#%fe,K[L0E;0+Ut>=nrr=&<!!FEiT@EQ2rrN(_nc/e\U=/]5h>[N="TAB)#&/^m
+h>$pJ!06[O"<iH*jS[I+!$Ce4"@e9\kl'99!7pZ?"<2cfg\C"4J,~>
+lMgjhn4Egu^Z>.ge,K[LCJ%6OUt>=nrr?@(8d&+=T@EQ2rrN)&nk'$tU=/]5h>[ND:&[`g9Pf?a
+h>$pJ!3Yrd"BC,^jS[I+!+>Cj"Cd8#kl'99!93N@"B'ZHg\C"4J,~>
+lMgk*n:1Y$^uY7he,K[LQ@OL;Ut>=nrrA)YJ-:1DT@EQ2rrN)<nUL_9de*OprrM_CrdY0%DhG4K
+q#(-l`q4caH\Acer6kTFO7Rl)G)EoqrS.>Plg]K.I!qsJpuqa.~>
+lMgk+mf3JB]&NG_eGfdP`.DZ`WS$purrDfl!!Fj#VV1b@rrMU)o)Jn&NkaiVh>[J1r;[!SFHaZ/
+rVZZq^%;:-&V-t>qU5BD+7fI87Z+hArS.>P^@;1+)h"U;puqa.~>
+lMgk:mn*^m^#JbbeGfdPd[l,RWS$purrDln8d&7DVV1b@rrM[no1B-]O2'rWh>[JTrCR5qFHaZ/
+rVZZqch'g4:k5Y(qU5BD@.Qtn@Z%e]rS.>PdIBg3;LPFrpuqa.~>
+lMgkEmskP!^uG(eeGfdPgp<B1WS$purrDrpJ-:+EVV1b@rrMbLo7-snOMC&Xh>[JmrI>&qFHaZ/
+rVZZqh=Q4#I=SEUqU5BDO7Rl)G)EoqrS.>PhXQ+!I!qmGpuqa.~>
+lMgn\$h"&u)kc'Zr7(`Nq;fK$_;b7DrrCOH!!G?5XPWgMrrN(Gnc/btX4m=(rr=2?!!QYWVUkG>
+r;Qc]oDf!qI&5Kidf0:ho)Jn_MS&*Ng]%8KnGi\@IAkoqkl6/~>
+lMgn];X[3\>-6ZQr7(`Nq;fK$_;b7DrrD!U8d&FMXPWgMrrN(knk'"*X4m=(rr?I*8d/mWVUkG>
+r;Qcco1B+4V:bOjrr?Hu8d&U\]BK4JrrBb&8d&4DW8%+2s*t~>
+lMgn^L$sNpLUQ(2r7(`Nq;fK$_;b7DrrD<^J-:%GXPWgMrrN)0npggpX4m=(rrA/ZJ-Bn@VUkG>
+r;Qcgo7-pjV:bOjrrA,OJ-:%Q]BK4JrrCI:J-:.GW8%+2s*t~>
+lMgna=mc7n#^=qhqYo(G#6"5XhW+2)gA_/Zr;ZsiKX0Y8qYpWrk6LSY"=9DUmeu&C!4Vn,"X7rG
+]]]1hrrN*4oDeu,T$m8Zrr=/4!!GcK]BK4Jrr@Q=!!G30XPN^9s*t~>
+lMgnaM!dk=:6X>uqYo(G#6"5XhW+2)gA_/prCR3$KX0Y8qYpWrlqd4F"Bh)4meu&C!6kC6"]TK$
+]]]1hrrN+#oL]4+T$m8Zrr?Hu8d&U\]BK4JrrAkb8d&CKXPN^9s*t~>
+lMgnaX6tKAJu@8hqYo(G#6"5XhW+2)gA_0+rI>#nKX0Y8qYpWrmt:4^"FlcZmeu&C!8II&"aY0J
+]]]1hrrN+UoRI$iT$m8ZrrA,OJ-:%Q]BK4JrrBh(J-:(GXPN^9s*t~>
+l2Ladli7/P_!(Okf)GpPqY9marn@APO8T%]<J\3Kr;$?nr+5I""9NhTiVMI3!)3=k"]0Q=dIR;5
+rr>7T!!H;gbOPS\rr=/4!!GcK]BK4Jrr>mc!!GrIZJtcFs*t~>
+l2Lb%lq.D"`p!0qf)GpPqY9marn@APYl./sAr+"\r;$?nr/gJA"+di<qVV;QJGi(D@salro)ALc
+!-\!,"DX:Hnc%#;!+>Cj"Cd8#kl'99!.s`5"Cd"hiqqs>J,~>
+l2Lb6m!o5'b38Tuf)GpPqY9marn@APa8LMkF,7Bir;$?nr35aB",O>CqVV;QVYu#KEdOJ,o)ALc
+!1rh5"F6?Wnc%#;!0?`%"Eo[7kl'99!3#F<"ET4$iqqs>J,~>
+l2LeY+m]14%Y!:(qYmPq!-%l:"CdA+lM^PY!rgXNo)JnUT[EB1iVrr="TAB)&o`Z8iqiKN!,D-+
+"@J<imJbT7!$Ce4"@e9\kl'99!#Y5+"D!A#kPaWEJ,~>
+l2LeZ@I-Si;OZJ3qYmPq!1EdX"Dj(5lM^PY!rh%Mo1B-rT[EB1iVrrE:&[`g:iM6!iqiKN!0m+J
+"CmS4mJbT7!+>Cj"Cd8#kl'99!*etc"Diq+kPaWEJ,~>
+l2Le[O6hB#KWa2$qYmPq!4_uX"EKL;lM^PY!rh;5npgh8dI[@rrrMYArdY0"E/:s^qYC-k[.JkO
+HBH/5rmUlIO7Rl)G)EoqrS.>PN:DE$E/D0hrTO93~>
+l2Le`R-FYS0!+4.r2fnu9`4qoEg"H1rqQKoqb-M\":L1%kksE>!.4YE"[[F%b4#<)rrA>V!!G!5
+]]f=Crr=/4!!GcK]BK4KrrCC8!!O'WP/Zhfkl6/~>
+l2Le`Zg(-cB"I-tr2fnuJGi(CEg"H1rqQKoqgS-/"AXrikksE>!2BEa"^cJBb4#<)rrBCt8d&@U
+]]f=Crr?Hu8d&U\]BK4KrrCmF8d/%3P/Zhfkl6/~>
+l2Le`aQe9YOMp;Sr2fnuVYu#JEg"H1rqQKoqkNb5"FlHFkksE>!58>]"a"sWb4#<)rrC15J-:4V
+]]f=CrrA,OJ-:%Q]BK4KrrD6PJ-C=@P/Zhfkl6/~>
+kl1\U.-U^79YB]crN?/#/H,VQ%<Rr\nc&=`!WK_%!!??&g%OG*!W*`5!!NXDKWj5,q#:?5oDf"9
+Ks]q=e,KCio)Jn_MS&*Nh#@A$nGi_PGb3=TrojB4~>
+kl1\VAa)eiHcGCGrN?/#B`:U-:3;iHnc&=`!WL=68cs%3g%OG*!W61$8d.q+KWj5,q#:?EoL]6c
+Ks]q=e,KDUo1B-pMS&*Nh#@AKnO`shGb3=TrojB4~>
+kl1\WP3IK"SBgHprN?/#QMuC<IWUq#nc&=`!WLdCJ-1D&g%OG*!W@uVJ-CC?KWj5,q#:?QoRI'l
+Ks]q=e,KE/o7-seMS&*Nh#@AfnULddGb3=TrojB4~>
+kl1__]*%9t"TqN7m.^I_rr<?(!!F0aS^I*'rrMsQo)Jn8QH/Ckj8T+Wr;[!XFHjc2rV6BmmdpJ^%
+Y1Y;q:#?D+7fI87Z+hArS@JSq],/,"Ti+aXkrm:s*t~>
+kl1__b=q.m"\a?dm.^I_rr>mp8d&%:S^I*'rrMt6o1B-dQH/Ckj8T+prCR5sFHjc2rV6Bmo(5NW
+:4TG&q:#?D@.Qtn@Z%e]rS@JSr*Jnc"DWOjhYH@7J,~>
+kl1__f7E1:"bE;nm.^I_rr@`OJ-:4DS^I*'rrMt`o7-snQH/Ckj8T,.rI>&pFHjc2rV6Bmp@Nk<
+IXnNVq:#?DO7Rl)G)EoqrS@JSrJpDu"E/mohYH@7J,~>
+kPkSXIcg\8"&HSrp\b#trrD*X!!FToUXo/4rrN(nnc/c4ZJbQ=rr>1\!!WL7J>q2prqQKorYP2,
+"*gWopXB-B+7fI87Z+hArS@JRTCDmb-?>3`lMTiFJ,~>
+kPkSXTBAfN9RXtJp\b#trrDB`8d&1@UXo/4rrN)2nk'"5ZJbQ=rr@0>8d/s[WS$qDq#:Bo>4bDh
+HDK3fe,KDUo1B-pMS&*Nh>[JenO`scEfe*%r9+*1~>
+kPkSX\EAAHJY1<Up\b#trrDTfJ-:.DUXo/4rrN)CnpggsZJbQ=rrAYhJ-BnBWS$qDq#:BoMtDN%
+I&,Ehe,KE/o7-seMS&*Nh>[K$nULdfEfe*%r9+*1~>
+kPkV^nP\HK"[]6TpAFourrBt8!!G$*WS@4@rrMd5o)JnST$R!,jo5>,r;[!KEf[rur:^-j9(W)c
+@[tj<e,KCio)Jn_MS&*NhZ!WR,k:p>!aC&Ie+EY&s*t~>
+kPkV^nU]do"a.KDpAFourrCRI8d&=HWS@4@rrMh"o1B-pT$R!,jo5>:rCR5oEf[rur:^-jIe657
+E1G>Je,KDUo1B-pMS&*NhZ!WSA+<.pB7-K'o`"%RJ,~>
+kPkV^nY>2r"e*NupAFourrD$VJ-:+GWS@4@rrMkRnpgh6cgq(srrD6\J-C4=O1siUpAY,goRI$i
+SC-uXrrA,OJ-:%Q]BK4MrrN(]nULd]I&#0_roa<3~>
+k5PM[k=4M4"YQ&$o_\WtrrA\i!!GK:Y2K0LrrN(So)JmuLqMmIjo5<jr;["&I%o*^rq??lEqB>7
+:6irjrm^rJ+7fI87Z+hArSIPSL[b?J.rpT[jnn3?J,~>
+k5PM[k]l/\"_b%#o_\WtrrBY/8d&IOY2K0LrrN(so1B-[MnJ3Ljo5=CrCR6*I%o*^rq??lRe02T
+B9gU.rm^rJ@.Qtn@Z%e]rSIPSWpr[b=)s82jnn3?J,~>
+k5PM[l($gb"d6X`o_\WtrrCCDJ-:%HY2K0LrrN)6npgh$]]T+QrrB>&J-Bq?U=8c6pAY-&oRI'j
+Q-&OpeGfN0o7-seMS&*NhZ!SnnULdeEf@Tkqr[p/~>
+k5PP_q;O6k!!O-]eFE>4])MbXr;ZsmKs]q=o`"sU%eBZ&;Q&1@k5PJN#lXf-)KCYEjSSWM!1i`^
+"?MRZli,E6!$Ce4"@e9\kl'E=!RD&B!!WjDI\bE`roX62~>
+k5PP_q;Z;O8d/=ag%"k9])Mc)rCR3%Ks]q=o`"sY<:`]aDPu.\k5PJS;#X&j;K7T(jSSWM!4h_o
+"CI2*li,E6!+>Cj"Cd8#kl'E=!SpTC8d8%+I\bE`roX62~>
+k5PP_q;de#J-Cb7hXUC>])McErI>#mKs]q=o`"s]L@]otJu@8pk5PJVK`6K*HuY%RjSSWM!7(4e
+"F?*Eli,E6!0?`%"Eo[7kl'E=!U#.,J-LI?I\bE`roX62~>
+jo5G^pYS?t!!WX*Z0h8_rk8=3=T&4&=,OWRrUg*jr+Ya&"<*NDm/?,I!/pdU"\F!1cLCi+rrC15
+!!FU(\E<_=rr=/4!!GcK]BK4OrrM:.nc/jq:Nhr;kPF<?J,~>
+jo5G^pY^2R8d8%@_X7'prk8=3M#BpKBSsFcrUg*jr0-_E"B:W)m/?,I!3Q2l"^u\IcLCi+rrC^D
+8d&4O\E<_=rr?Hu8d&U\]BK4OrrMOtnO`soG*B`)qW7a-~>
+jo5G^pYhS#J-LV"c0b6&rk8=3XSmYPFGd]orUg*jr3GpE"FlZTm/?,I!6+ne"`ns[cLCi+rrD*O
+J-:7U\E<_=rrA,OJ-:%Q]BK4OrrM_SnULd_G*B`)qW7a-~>
+jSo>]p>/^*!!OX"g@G+=^]+9nr;Zt2Nkju[o`#!ldf]1A")b@#puq_Yq],S8"Uo7&ZJbNMrrDW^
+!!F!fYi,B-rr=/4!!GcK]BK4PrrM^JnGibPEepsSp&=(QJ,~>
+jSo>]p>:>W8d/[thX^OA^]+:RrCR3/Nkju[o`#!lhG!N5"+7?1puq_Yr*K@p"\rriZJbNMrrD`a
+8d&"CYi,B-rr?Hu8d&U\]BK4PrrMh3nOa!iEepsSp&=(QJ,~>
+jSo>]p>DP#J-CtCipusE^]+;(rI>#lNkju[o`#!ljb!)S",=&;puq_YrJpl-"b(BEZJbNMrrDid
+J-::PYi,B-rrA,OJ-:%Q]BK4PrrMqanULgdEepsSp&=(QJ,~>
+j8T8]p>U&nhuErc:Tj*Yr;OS5!#5A3"EK[Fmf)hX!W,O]!!G-KcLLnurrB+u!!PE,QH/Cko`"sk
+-M7?A"+@-%psf<D+7fI87Z+hArSmhXj!aEt"tFPCV9n]/jSs`~>
+j8T8]p>V6/i(=2KJ&(IFr;OS5!*K1l"EK[Fmf)hX!W.?;8d&LkcLLnurrC"98d/LDQH/Cko`"sk
+AG&Ot97<bmpsf<D@.Qtn@Z%e]rSmhXlXoZZ#$5_pV9n]/jSs`~>
+j8T8]p>W'&i.)#`U!;uur;OS5!/g`*"EK[Fmf)hX!W/Y_J-2=enc%eQ!7h$us)nL1a6iitrrN+^
+oRI$lW7q$rrrA,OJ-:%Q]BK4QrrMYSnULggDh=h4n,28HJ,~>
+ir9/\pZ.SOh>d^)K])IurPed:oDJXm%<Rr\o)A7\!WK_&!!EL[]&ihRrr>1\!!NI<JZIN!o)A\b
+oDeu+T@<J_rr=/4!!GcK]BK4RrrK_KnGib<D18(tlMBQ@J,~>
+ir9/\pZ/;QhF[r\U>tkArPed:pAISe:3;iHo)A7\!WL=78d%hD]&ihRrr@0?8d.k(JZIN!o)A]@
+oL]4+T@<J_rr?Hu8d&U\]BK4RrrLGMnOa!cDLS1ulMBQ@J,~>
+ir9/\pZ/f;hLGci\E*8XrPed:q>GgIIWUq#o)A7\!WLdCJ-1_@jnn<B!1s.>"E8pmg@t1<!2fC=
+"+-Zhp!j!AO7Rl)G)EoqrT!nYh2LlS#'k-9T#g3nj8XW~>
+iVs&[puoFNh#ITiD9q_HrQ"p<ci!hH)0h_#o^Vq^qCM4<"AP`Dp&=:W!6b<@"Y=_W_!:jgrr@67
+!!H2dbOPS^rr=/4!!GE?\`WhOrrM_0n,N\IDgn4ok5##:s*t~>
+iVs&[puoY3h+@iMP1K-trQ"p<h>KqK;L"b\o^Vq^qIoIm"Dajbp&=:W!8@BD"^#i._!:jgrrAY_
+8d&jpbOPS^rr?Hu8d&IV\`WhOrrMh]n4EpgDgn4ok5##:s*t~>
+iVs&[puoe]h1,Z`Y1rI@rQ"p<kP]o6H[)+0o^Vq^qNUT%"G*E#p&=:W!9O00"aG*N_!:jgrrBY&
+J-:1bbOPS^rrA,OJ-:+Q\`WhOrrMr)n:1aeDgn4ok5##:s*t~>
+i;Wu[qWuaU$Jb[c#%#OAq#/>7!3c>$"=&5ef(SY6!WAP[!!F%"_s@9err?=&!!QPSUt,,:o)A]d
+oDf"ZOMgGaec,Uknc/h9HIhZarosFaqk"ku!!i`qEe9n#jS/Z5s*t~>
+i;Wu[qWuaq:u+_I:5I?dq#/>7!64t0"BBcBf(SY6!WBIu8d&%T_s@9err@uU8d/mVUt,,:o)A^(
+oL]6qOMgGaec,VWnk''gOk91$rosFar4?;*8dJ*tEe9n#jS/Z5s*t~>
+i;Wu[qWub0K&(q\Ju72gq#/>7!8%1""F5<ff(SY6!WC14J-:@b_s@9errB5#J-Bq@Ut,,:o)A^;
+oRI'jOMgGaec,W1npgmqU=f&6rosFarQgMoJ-^XGEe9n#jS/Z5s*t~>
+hZ!`Uo%pZ;g].K^?-_m5rQG3@Mu<VY0RftTq!e:anJ:]r")+moq!A"]k61ba"W_T@]&rn[rrCI=
+!!Fg/]''%Brr=/1!!X3S]^Y^orpKdflAHnV!!jBGG)3!9k4el6s*t~>
+hZ!`Uo%poqge%`FLXbberQG3@Xo1ip=am=(q!e:ao3(ZW"*h$*q!A"]mS3[Q"]KE!]&rn[rrCpJ
+8d&:R]''%Brr?Hr8d8C[b4,3(rpKdfn>p-h8dJ:-G)3!9k4el6s*t~>
+hZ!`Uo%q*DgjfQ[V:b52rQG3@`Vk;iG^cUGq!e:aonr?k",*l6q!A"]o7Hsl"ab6I]&rn[rrD6S
+J-:4U]''%BrrA,LJ-Lh3eF<82rpKdfoYls^J-^L@G)3!9k4el6s*t~>
+h>[ZWpZTt`,hrA'$uO\eq>SY=!,2<2"?M+:htljB!W@H<!!FsDbjbW!rr@EE!!Q#@T$R!,nc&Xd
+"SD`t(50!Qqpk]H+70%7)dScMnbN(\rr2]m"THu<9*F_a#ms"=IZq"_lM:G;s*t~>
+h>[ZWpZTtq?JJ-V;N]c(q>SY=!0mFS"C6S]htljB!WA_`8d&IhbjbW!rrAel8d/[LT$R!,nc&Xe
+9_D!\;M;@8qpk]H@-pPm>`#`8o(i1]rr2]m"TIDfIn]?(#u+cHIZq"_lM:G;s*t~>
+h>[ZWpZTu)LtmLaKWEquq>SY=!4;]T"Eo@!htljB!WBY%J-:@jbjbW!rrBb2J-C">T$R!,nc&Xf
+K(XWsI>"ocqpk]HO6qH(MlF\OoD/:^rr2]m"TI]/V1S2e$%?u9IZq"_lM:G;s*t~>
+h#@TXqXE@]F;EX3"W<3Xo)&F4rr>Rf!!GcE[,_)QrrM$_oDf!sK"0n=mf*=^'`J(9%W7$-i;)mB
+!WFSA!!EISWS@3urr=/*!!`TO7UCD#R[X2E"+FiG&+0E)&j^D^N2+/Bn,!%@s*t~>
+h#@TXqXE@]N`Oq-"^7_^o)&F4rr@HF8d&RU[,_)QrrM:YoL]6ZL:H=Amf*=`=T1nr:2blni;)mB
+!WHa)8d%h:WS@3urr?Hk8dA%!HAeDs[^Q.D"/:s%<UNHd:g\3hN2+/Bn,!%@s*t~>
+h#@TXqXE@]TS2*N"c9\Jo)&F4rrAknJ-:"J[,_)QrrMJ=o7-q#\E*PTrrN"SrdY0$E/(^Wq=+Cb
+rfm)+"Fkm"g\B>!!0?Ap#_J/2XLc<lb00e."2;(4L[K["I!'IVN2+/Bn,!%@s*t~>
+gA_BUpZpGDA.IAp"?!RMpANA<!$qLC"B1,fkPalL!W6-m!!Gffeb&k0rrADa!!PH-QcSUnn,EAc
+oDeu/T[`Ybrr=.]!!t5jG_r*'dHC3#h>`!~>
+gA_BUpZpGEK2UJs"Dkm;pANA<!+Yt""D3J$kPalL!W7cF8d&h'eb&k0rrBJ*8d/LDQcSUnn,EB@
+oL]4-T[`Ybrr?HI8dSU9G_r*'dHC3#h>`!~>
+gA_BUpZpGFRY'=F"I$pjpANA<!0[;2"E]I2kPalL!W8thJ-:G!eb&k0rrC7@JH'cpQcSUnn,EBd
+oRI$jT[`YbrrA,#J-gF<G_r*'dHC3#h>`!~>
+g&D<Vr:K4%ZsO=!!!NREf^AS7df0:Mr;Zt/NPFcWn,EFfa7B96'9U/sr9sXc./j2M")!1dg\:.9
+!.shC"B:c4o)@5?!$Ce4!\Go/f)Q$Y.ri5UmeZq<s*t~>
+g&D<Vr:K4%[t%?38d.qNg$\\8df0;@rCR3.NPFcWn,EFfealB9;3A`\r9sXcB)YC+95K0\g\:.9
+!2fB\"DX=Jo)@5?!+>Cjs&]7qf1H9@?&-/JmeZq<s*t~>
+g&D<Vr:K4%\<qm(J-CP'g@"e9df0<!rI>#lNPFcWn,EFfht)@$J!%V5r9sXcPl6+8Dh5"Ep[8%]
+_"<-[HC2qIrmq)LO7Rl'GBn\hJ-LRk^=r#OrnRO(~>
+fDc*Tqt&mqZ=k!/!!FdZk4SZ%rrCgO!!I,#`9mQlrrN!Vo)Jl'Xk`^@rrBD(!!OopP/6G]mf*9h
+oDf"ZOi6Ydf)G^lo)Jt_FFe0r+9^j-":,u"5ofV!"W2O:o(i7?s*t~>
+fDc*Tqt&mq[=hQ98d&\=k4SZ%rrD3Z8d'*q`9mQlrrN"9o1B+.Xk`^@rrC1>8d/=<P/6G]mf*:*
+oL]6qOi6Ydf)G_Xo1B3pFFnpW=A7mM"AMfu@TE.p"^.;Lo(i7?s*t~>
+fDc*Tqt&mq[[;^'J-:nOk4SZ%rrDHaJ-9qU`9mQlrrN"co7-prXk`^@rrCaNJ-C1=P/6G]mf*:;
+oRI'jOi6Ydf)G`2o76j_"+uJeK'%RdIXHHeIeS?rLp>k.q>K.LJ,~>
+ec,mRqXNUl\8s"R!!E[eh!k3krrB\0!!NOIQ-/Uqmf*=eV"4Qh.@JBJrpg!g7/[)h>(*3sp&=CZ
+!7g]A"=oAAkl'*4!$Ce4%7Pf?[^N-%G$@?g+VbIZ!"98O,rS>#EdiXsO-3'-!!NdIf^S_8huA3~>
+ec,mRqXNUl\;FVL8d%t`h!k3krrC@C8d.n0Q-/Uqmf*=e]^n_u>+*S&rpg!gHMpG>B76T+p&=CZ
+!9*QB"BgVokl'*4!+>Cj%:Od[[^N-'KQV!8=&Mie8dnHm='fHTGCG1#O-=PV8d/+Tg[P%;huA3~>
+ec,mRqXNUl\=860J-:M/h!k3krrCmRJ-CFDQ-/Uqmf*=ecLZPhJ!nLKrpg!gUA]TGEIFY5p&=CZ
+!9s-+"FH$<kl'*4!0?`%$?grm[^N-'Nei@=rdXTk%"<VPH[0m_IY3H;P`>Be"bj&7nG3%?s*t~>
+e,K^QqXNXp]SSiUhZ*dcdd-`.fDbi;r;Zs2G+-bKm/I+Z)Y="4!dqH:qXXXdci!hI)0(SGjnnHF
+!WEAt!!F'jZJtc4rr=/4!"qbW[+OEmcGI#jU7.@/N.uLtF8U%iGCbC#LlIRcTW#**_T9cO#ke6%
+'7o05qYoIRJ,~>
+e,K^QqXNXp]U*D-hb"$(dd-`.fDbiYrCR2fG+-bKm/I+[>P(Mj98'b6qXXXdh>KqL;K7W+jnnHF
+!WGmf8d&%FZJtc4rr?Hu8ePTh[+OEmcGI#jU7.@/N/2t4I/J:%I=[$)LlIRcTW#**_T9ce:A.9`
+<hA=@qYoIRJ,~>
+e,K[PqXNXp]V18?J-;IllhUP3rrC7@J-::DRa:TlrrMkQo7-q"[c@5TrrD6\J-C:>Mn8$ImJd4d
+K_9iuI>"ocqptcIO7Rl7G)3NXj4_eq[]?-kQ&pr\L4k3WK)^B3K8#,@P*quAYdqWla/agcJ-C_7
+iplmEiW"E~>
+dJjLOqXWe!^nP'OhuEmGa6*0rf`(qrr;Zs=Gb<LYm/I+bJb&jE7&&-%rq$-i>l=X+8U6lPo)A%V
+!WF_E!!EISWS@4!rr=/4!"qbY]'&n`o'>Amf$DIU^:LbYYPPC4Z*h0Y`m*#fiTBLrmc()Uo`,+G
+ZKCiXir=N~>
+dJjLOqXWe!^nuHZi(=,kaQE9sf`(rDrCR2jGb<LYm/I+bV"71]B;3iHrq$-iMu?6O@<nEho)A%V
+!WHj,8d%h:WS@4!rr?Hu8ePTj]'&n`o'>Amf$DIU^:LbYYPPC4Z*h0Y`m*#fiTBLrmc(QPoh#?u
+^?5+dir=N~>
+dJjLOqXWe!^oEQMi.(roal`Btf`(rarI>#tGb<LYm/I+b^%-[UU=/]5oD\fnrI>&mH(E7OrpB^d
+rg*5-"Fkm"g\BA"!0?`%&pB/DkP=lClf?mQccO)=]!eoJqQ:@6[CX/nc.(M,k3VU*ikC0?J-:tR
+k4SZ3s*t~>
+ci4=Nqt97.aKp@Q"QBCa3PjeMrn7;O;uH\!-@DWApZqh[j9P;W":pO.l2:2R!TO=^!!NdJL9fb5
+li-rkoDeu,T[`Ycrr=/4!"qbY]BK4nrr2ikp@Ie?lK@9hi;;C=i8Wh\lL+69q"jpfrWDu]ZQAc>
+"U8r"meZqDs*t~>
+ci4=Nqt97.aKpt>9]AYIC;T'*rn7;OL&FUH<d^^qpZqh[l;.%E"Ak/pl2:2R!UEJZ8d.t-L9fb5
+li-sDoL]4,T[`Ycrr?Hu8ePTj]BK4nrr2ikp@Ie?lK@9hi;;C=i8Wh\lL+69q"jpfrWDu]^0L>'
+"\k-5meZqDs*t~>
+ci4:Mqt97.aKqCmiID&l_rUOjg&D&PrI>#rI&,Ehli."RKCjZsIuqJ1r:L!inUgaj"b(BEZJbQE
+rrB4oJ-11leFhDm!0?`%&pB/Ekl(P\rquTcoC2,3kN1a^qqhb=ioK:fmdg&GqY^?l"8V6&MY2K'
+JuIDkqYoRUJ,~>
+c2S+Lr:fX<d(PlG%c[Nl2nn;Frn@AP2#RCW0n-+Wq<S%]r*Jsp"'qt]p[nIcF8Z(B3Hg_/mJZAN
+!/gCK"B(W2nc%/?!$Ce4"@e9\kl(AXs8N&ss8;]h"oJ5rrVlflrr`/d_]SLN"?sffp\s:SJ,~>
+c2S+Lr:fX<d(Q/s;<(7OBu&a%rn@APDZ*01>(3I+q<S%]r/:/="*:Nsp[nIcSGc%`>]uFRmJZAN
+!3>`a"DO7Inc%/?!+>Cj"Cd8#kl(AXs8N&ss8;]h"oJ5rrVlflrr`/db$FX3"E;HFp\s:SJ,~>
+c2S+Lr:fX<d(Q<<K&_@aNPOQIrn@APRf.a>G^cXIq<S%]r2fL?",!Z.p[nIc\c%$^F`s(kmJZAN
+!6"M["F?HZnc%/?!0?`%"Eo[7kl(AXs8N&ss8;]h"oJ5rrVlflrr`/dc\qFG"I.*mp\s:SJ,~>
+b5VbGqXWk&`iNbjj8]<@^>ekcg]%6br;Zs]JZdr-li."b`:Es3-()dArV$6lmh#Hu"Tr7bX4m=5
+rrB=r!!GKI_sIBSrr=/4!!GcK]BK4Lrr`2h\eF]9"<t22o_mqPJ,~>
+b5VbGqXWk&`ianpj@TPh^Z+tdg]%7RrCR2uJZdr-li."bddp'6=d[:urV$6loMtl_"\WT\X4m=5
+rrC+38d&Ra_sIBSrr?Hu8d&U\]BK4Lrr`2h`E)V'"CA[uo_mqPJ,~>
+b5VbGqXWk&`itb^jF@Am^uG(eg]%80rI>#oJZdr-li."bhXc7#J!e=FrV$6lpPAcu"E/gkg@sn4
+!8$jn"F?0Im/GW:!0?`%"Eo[7kl'?;"8q]7L\-*"MSJ-BrT=-1~>
+aSuPFr:]L7c+%g=jT#EP_;tCjh>[K@qu?jgKXBh<lMgn^2"UbN!d_65qY'phO8T%^-?>3`l29iH
+!8d>J"=8o9kPa$4!$Ce4"@e9\kl'<:"8q_s$1n3#'qsFRr9+*1~>
+aSuPFr:]L7c+&X9j[oYp_;tCjh>[KFr(7*#KXBh<lMgn^DY$I&K!aP6pAY,srCR5oEfe*$r9F:^
+kO_@L=,FNOrR_&L@.Qtn@Z%e]rS7DTr:7^$oL]6eXk`LFkPp&~>
+aSuPFr:]L7c+'6tja[Jq_;tCjh>[KJr."omKXBh<lMgn^R.Gh1LpZ1<pAY-5rI>&rEfe*$r9F:^
+mdu#4I#5GtrR_&LO7Rl)G)EoqrS7DTr:8'aoRI'u[G:?NkPp&~>
+`W$2Aq!d=l]RM<k!!?`Lk5!j5!6b9?"B1,ekPXWF!WJY]!!GEWdI[A4rrN!6r;["$I&#3`rp'La
+rX8B!";?BkiVM1+!$Ce4"@e9\kl'99"8q_Z"7uQr&#@nLr9402~>
+`W$2Aq!d=l]TQXa8csU^k5!j5!8@?C"D3J#kPXWF!WKS"8d&[tdI[A4rrN%%rCR6)I&#3`rp'La
+r_iD]"Aj]SiVM1+!+>Cj"Cd8#kl'99"8q_p9_:p[;QSRBr9402~>
+`W$2Aq!d=l]V(&BJ-2(Tk5!j5!9O-/"E]I1kPXWF!WL:5J-2IloD\Ob!W@uUJ-Bq?UX\r8lMgna
+L@p'"I=e]^qUb`IO7Rl)G)EoqrS.>Sr:7[ToRI'sZJ"gHkl6/~>
+_uBu@qXWe!^OdTl!!E@Ub3Sr]rrAtp!!HSd^?Y[]rrMX&oDf"%N4nHQq#:>dr;[!:E/M0dqs"+]
+r\jEL"9NkHgA';"!$Ce4"@e9\kl'68!rVP*o)Jn2WnHtAl2Q8~>
+_uBu@qXWe!^Q_sd8d%eMb3Sr]rrBk48d&mf^?Y[]rrM^loL]6]NkOZSq#:?+rCR5jE/M0dqs"+]
+rc%L%"+7$#pt,NG@.Qtn@Z%e]rS%8Qr:#pA8d&8!g%,++s*t~>
+_uBu@qXWe!^S6JGJ-2@blhfQ=!7Ujr"ETO9lM]uI!VM9@J-:@^^$,ChrrCCDJ-C=>MR_aEl2Le`
+Re2+4I](opfDbi3o7-seMS&*NgA_6Pn?2A5"GO/7o)7hQJ,~>
+_>ac>qt0+(^ip[\!!Eq.dd[4mrr@iP!!Hnq_sIBerrN(=o)JkpWS."?rr=bO!!P]6S':C$kl1Wp
+oDeu&T$m8_rr=/4!!GcK]BK4HrrW)b4nAXV.^\"(rp'N6~>
+_>ac>qt0+(^lDL\8d&(gdd[4mrrB(s8d'$n_sIBerrN(do1B+(WS."?rr?m68d/OGS':C$kl1XG
+oL]4)T$m8_rr?Hu8d&U\]BK4HrrW)bF7W!,@("e_rp'N6~>
+_>ac>qt0+(^n?DGJ-:J%dd[4mrrBt7J-9tU_sIBerrN),o7-ppWS."?rrAGbJ-C%>S':C$kl1Xg
+oRI$jT$m8_rrA,OJ-:%Q]BK4HrrW)bRe)%4Lpl+3rp'N6~>
+^]+Q<r:T:)]OqT:!!GKkh"La*rr?U-!!IA-aRB,lrrC^C!!FI2a6ij%rrBD(!!NRBKWs>.kPkOB
+oDf"fQHAXqf`(pno)Jn_MS&*Nf`)$LcjfRH"Albjq#9UZJ,~>
+^]+Q<r:T:)]nK8I8d&k6h"La*rrA2Z8d'4"aRB,lrrD$L8d&4]a6ij%rrC1>8d.n*KWs>.kPkOb
+oL]7!QHAXqf`(qZo1B-pMS&*Nf`)$LfMhB6"E_<9q#9UZJ,~>
+^]+Q<r:T:)^70`>J-:\6h"La*rrBA&J-9qXaRB,lrrD9SJ-:@fa6ij%rrCaNJ-CF@KWs>.kPkP%
+oRI'jQHAXqf`(r4o7-seMS&*Nf`)$LhM(QO"HL.Sq#9UZJ,~>
+^&J<9r:K4&Y!D:Q"9O%gkka6;!'pJ_":B7<bjsrs!W5=V!!@;Ji;*6L!'pJ_"Yb%_`U*QdrrBJ!
+!!G0>_!D!Prr=/4!!GcK]BK4GrrW2pN:R#P!e\MXqs494~>
+^&J<9r:K4&Zu>8&"A=Wgkka6;!-eB6"AO!*bjsrs!W7678csOJi;*6L!-eB6"^,r3`U*QdrrC46
+8d&I\_!D!Prr?Hu8d&U\]BK4GrrW2pWq/gc99@0Yqs494~>
+^&J<9r:K4&\<6',"-gXcqV_ART`'BDIWUt$o&p#Rr1NY3",F2?q>1*kT`'BEG'&tfm/?,I!87!p
+"FH0Eli,Q:!0?`%"Eo[7kl'06!rhu0npgh1`p3Hes*t~>
+]Di*7qt&moL_B%S"=g4qo)@VJ!$(q;";#dIdIcW%!WK1l!!G?Sd.726rrC+;!!QVVVqC_BkPkPH
+oDf"<LUQ=Bf`(pno)Jn_MS&*NfDbpOn1+#0"<aVko)7qTJ,~>
+]Di*7qt&moS5eiI"C7hOo)@VJ!+#Oq"Aa63dIcW%!WKt-8d&Upd.726rrC[K8d/jVVqC_BkPkPN
+oL]6eLUQ=Bf`(qZo1B-pMS&*NfDbpOnRqGc"BhYOo)7qTJ,~>
+]Di*7qt&moWeB_h"G3Gto)@VJ!07#."FYKadIcW%!WLO<J-2Cio)ARe!9=!-"`Spgf_5=-rrDZ_
+J-:7T[cRG>rrA,OJ-:%Q]BK4FrrW2jPOj;-Ju@)grTsQ7~>
+\c2j4qXE@Q46uqLHF`,5ir9#Uqu?j<H(`[\k5PJU)Y="4$&H7Wqu$Ho;#L@t*c[.OkPOEA!WEc*
+!!EXZXl'!-rr=/4!!GcK]BK4ErrN%nnc/c%\)R5Ms*t~>
+\c2j4qXE@UD<sjsKXp1?ir9#Vr(7)iH(`[\k5PJV>kCVk:5cdJqu$HoK)J:F;fRc/kPOEA!WH0n
+8d%k=Xl'!-rr?Hu8d&U\]BK4ErrN&0nk'"1\)R5Ms*t~>
+\c2j4qXE@YOmIT#N4J$Gir9#Wr."osH(`[\k5PJWN:_W'IuM&'qu$HoW;V5MH?"nVkPOEA!WIrK
+J-:=OXl'!-rrA,OJ-:%Q]BK4ErrN&Anpgh$\)R5Ms*t~>
+\,QX1pZg7G!q$$k3hb!mro="YfDGUO-%)N@pZDJVrHe&8"&c)MpAP!kg\_$T89pfRo)@eO!WG:T
+!!@8;fCmks!$Ce4"@e9\kl''3!V@E(!!F./bO5>rs*t~>
+\,QX1pZg7g9^YLUA"h?Aro="Yj8;LP<d^^qpZDJVrL`[R")b'ipAP!kk57gT@!S?jo)@eO!WI66
+8cs=6fCmks!+>Cj"Cd8#kl''3!VKdj8d&+`bO5>rs*t~>
+\,QU0pZg8(m=5=jU!iN2j8T,Fr."oqI&,Ehk5PJ\](:FSJuI>qrVllbr."rkH(NCRroX4]rgrb4
+"+6orp=TBFO7Rl)G)EoqrRLoKp5SWn".[R&rU'W8~>
+mJd4QqYpK?rrrE!o&#]Bmf3J"NkOZSj8T+gqu?jNI];)tjo5A:"S;Zs)O/5-rVlfs?i9s.$>bI'
+iVDR7!,D-+"BLu:o)@>B!$Ce4"@e9\kl''3!W@<7!!@#BhtZU=J,~>
+mJd4Wr;Q]ArrrE!o&$BDmn*^YNkOZSj8T,'r(7)oI];)tjo5AB9_:p[<0YAgrVlfsNr;QR9l>]l
+iVDR7!0m+J"DjOPo)@>B!+>Cj"Cd8#kl''3!WAV\8csIHhtZU=J,~>
+mJd4[r;Q]ArrrE!o&$m/mskOjNkOZSj8T,6r."opI];)tjo5AHK(OQrJ!@q=rVlfsYPitTIVsnH
+iVDR7!4;BK"FHT_o)@>B!0?`%"Eo[7kl''3!WBV#J-1V5htZU=J,~>
+n,EUdIh7t8oD6`3"TA)XY8cp1"(nRepZ)8RQi$gd2h8'gqW7_Xr'^,V#B6p)q#CBW"T8<(20G5*
+mJZ,G!0QmR"@/-hmf(o>!$Ce4"@e9\kl'$2!6t'7">H@jnG_kUJ,~>
+n,EUfUfFbioD6`3"TA)X\m"Pp"*U]upZ)8R[JWW">_'!7qW7_Xr-@m+#CNc5q#CB^:&RZf>'6.O
+mJZ,G!3l)f"CdP5mf(o>!+>Cj"Cd8#kl'$2!8@!9"C@VCnG_kUJ,~>
+n,EUh^PKr!oD6`3"TA)X_hmi4"+mQ,pZ)8RbPZknGCZjRqW7_Xr1NY3#DTJ?q#CBcK)L6"FT[rM
+mJZ,G!6Fe_"FH<Nmf(o>!0?`%"Eo[7kl'$2!9<U"".[X*rpKf:~>
+n,EX9!!!tXg$nparri>tm(a\3!!GTUbjk\nrr@0=!!GQ>ZJtcCrrN+qo)JtOSBg[(s)7i9"Ti+_
+WnR1,rrC%1!!F^-]]f=Irr=/4!!GcK]BK4CrrN$5o)JmtL:QFCmf.e~>
+n,EXH8kN@1g$nparri>tm)WK%8d&[mbjk\nrrASe8d&LRZJtcCrrN,4o1B3oSBg[(s-`dW"DNCd
+g@jS,!7g^6"B^Pokl'37!+>Cj"Cd8#kl'$2!W6-m8d%hD\`N_Vs*t~>
+n,EXSJ:NR#g$nparri>tm*1FWJ-::gbjk\nrrBY.J-:%JZJtcCrrN,Fnpgn6cLLo6\,:aZDh+kA
+p>c/QiUhX'I#>T#rRq2NO7Rl)G)EoqrRCiJr/1&q",aYNqsOK7~>
+n,E[i#QOj,[bUTUbl7eBnAQL>!!FL)^?GLUrr?!q!!G`F[cRGJrrMg/oDf("Kt?FDmg/jl"WqcF
+^?GLTrrDKZ!!EsfZJkZ5rr=/4!!GcK]BK4CrrN*rnc/buVUtP0s*t~>
+n,E[k:J+6*[bUTUbl7eBnB>5/8d&1R^?GLUrr@cN8d&RW[cRGJrrMjsoL]<]Lq;aGoMGKY"]TN&
+^?GLTrrDW^8d%tCZJkZ5rr?Hu8d&U\]BK4CrrN+Nnk'")VUtP0s*t~>
+n,E[kKReT;[bUTUbl7eBnBm3bJ-:7Y^?GLUrrB(sJ-:%M[cRGJrrMnPo7."&]&rnaK`-E)H?,%[
+kksK@!;?&8"FYp.iVM7-!0?`%"Eo[7kl'$2!WK"eJ-)V"p?qs2~>
+n,E[m4obQgMSn]VbPq\Bo#)44!!ERZYi,B=rr=kQ!!H5W]'0+RrrN(9o)JnfVUkEiqu?moHD&^X
+ro="ZrYP2,"*g`tpt>ZI+7fI87Z+hArR:cHII[@@3L7bTrpTl;~>
+n,E[mG"PA%Oi-G]bPq\Bo#t/*8d%k?Yi,B=rr?s78d&a_]'0+RrrN(ao1B.$VUkF9r(7-%HD&^X
+ro="Zr`\qd"+-s"pt>ZI@.Qtn@Z%e]rR:cHU@LnZ@$\n&rpTl;~>
+n,EFfT)O6BQG_tbbPq\Bo$W<aJ-:@RYi,B=rrAMcJ-9tN]'0+RrrN)*o7-spVUkFTr."rkHD&^X
+ro="ZrepE!"+I0%pt>ZIO7Rl)G)EoqrR:cH^%-[VI?qtCrpTl;~>
+mf*90rW!'WW7LV?bPq\Bo;Vo`!!@>=f_=J,!"f&."B^VslM]cC!7CB<";d9>i"5he"Uf1&[,Ur@
+rr>O\!!?MtdIc,l!$Ce4"@e9\kl'!1!1iZ\"<!*.kPXfKJ,~>
+mf*9Wr^m<&W7LV?bPq\Bo=Rcf8cs@7f_=J,!*/qh"DEb.lM]cC!8R0<"B1N%j&Q%M"\rrj[,Ur@
+rr@E<8crt%dIc,l!+>Cj"Cd8#kl'!1!4hYm"B12hkPXfKJ,~>
+mf*9trdY-(W7LV?bPq\Bo>lLRJ-11pf_=J,!/UQ'"E]U:lM]cC!9Ng&"FlWQk(rtd"b(BF[,Ur@
+rrAecJ-1.hdIc,l!0?`%"Eo[7kl'!1!6t(b"FZ0=kPXfKJ,~>
+mf*9kr;Zq@]]K"4rrW,hB(>p(@%5O8jo5>LqZ$b0O2C8_j8T/X2"L\KBWl^Z!!P6'QcSUniVrmu
+oDf"]PfW=mgA_-po)Jn_MS&*Ne,KEZnc/dpJ?@](n,In~>
+mf*:,rCR0E]]K"4rrW,hNq,dEDk#,Gjo5>Qqaq!-O2C8_j8T/XDY$I%H*<\78d/CAQcSUniVrnH
+oL]6rPfW=mgA_.\o1B-pMS&*Ne,KEmnk'$XJ?@](n,In~>
+mf*:<rI>!2]]K"4rrW,hXR^lDHCN:Rjo5>Tqg\fkO2C8_j8T/XR.Gh0Ks.cZJ-C(=QcSUniVrnf
+oRI'kPfW=mgA_/6o7-seMS&*Ne,KF'n:1SBhYHX?J,~>
+mf*:Rr;Zs>T$Qp)b5VP@j;%7d"B(K*nG_SM!6b6>"DEt<mf)8H!WJDV!!4j?')_e6!b$VZg@sP*
+!1i`^"=f>Cl2B?9!$Ce4"@e9\kl'!1!5@t'")+CYp$_p2~>
+mf*:WrCR2nT[3-+b5VP@k?.=J"DF%@nG_SM!8@<B"E0ICmf)8H!WKCr8ci=d<r>PmBn35;pYc&O
+\b&Js=c9uXrS%8O@.Qtn@Z%e]rR:cHd.'^1F.q.Wn,In~>
+mf*:ZrI>$%T[3-+b5VP@lA>+_"F-0PnG_SM!9O*."E]gHmf)8H!WL12J,u*nr."ogJ?%>ti;Wf&
+oRI'lMnSBRgA_/6o7-seMS&*Ne,KF)nUL^hU"/i)s*t~>
+mf*=e-N*oI:p]$RrlY6AqM"M@"A"Tjm/H/I!3>ts"ETjNnG_GI!UU-a!!*3jqu?mBEfRp!r8@ST
+an,Q9'83[NqqD&M+7fI87Z+hArR:cH^@;1+<1(o"rp]r<~>
+mf*=eAGo+'EO4NsrlY6AqPNjV"D!S1m/H/I!5n\+"ETjNnG_GI!UrnW8c_Rur(7,lEfRp!r8@ST
+f^qc=:kZ.6qqD&M@.Qtn@Z%e]rR:cHdIBg3C7*68rp]r<~>
+mf*=eP5Tn6LpPt5rlY6AqRuKN"F-!Em/H/I!7gss"ETjNnG_GI!V:s8J,k3!J-C7>NkaiVi;Wf;
+oRI'mKX0V7gA_/6o7-seMS&*Ne,KF)nULagR*>+"nGe"~>
+mJd/pr;Zs)M8niYb5VPBjp1MY"@nEblM]lF!/paT"9N\3bjs`m!W?*k!!!)u!!Q&BT[NH2i;WfJ
+o)Jl;W7q%#rr=/4!!GcK]BK4BrrBe'!!G`P`9mQns*t~>
+mJd0HrCR2dP/cebb5VPBlVI.F"CmD)lM]lF!3Q,j"*BmRo&9TLrJ0u:!)*5^"_)eNde!IrrrD``
+8csI>gA'D%!+>Cj"Cd8#kl'!1!7C=/"CmP3mJcVTJ,~>
+mJd0ir."m9`p3KErrW2fKCjZsGDs9$rT=+[`VY/fFI15BiVrrWWU53>EdFD,oD[\J!;Q/9"+I3&
+ptG`JO7Rl)G)EoqrR:cHhXQ+!H'#u3rp]r<~>
+mJd0Rqu?jKW7CM=b5VM?:\4Vi6]/P?rT=+[B`%i5%<e2eo\ofNrjD.o"Uf1&[,Ur>rrN*CoDeu!
+T$d2arr=/4!!GcK]BK4BrrB(h!!G?@]]oCas*t~>
+mJd0or(7)tW7CM=b5VM?Jb2P;@>__]rT=+[Pl+,V:3N)Qo\ofNrlOS#"\rrj[,Ur>rrN+.oL]4'
+T$d2arr?Hu8d&U\]BK4BrrBt,8d&IY]]oCas*t~>
+mJd1/r."p'W7CM=b5VM?V=]9@GDa&srT=+[[/>FWIWh1,o\ofNrn$Rg"b(BF[,Ur>rrN+\oRI$j
+T$d2arrA,OJ-:%Q]BK4BrrCU>J-:1V]]oCas*t~>
+mJd19qZ$_.]&NP.rrN+foDf"[M7VpLk5PEOqu?j/GFd1Si;WiS)XdY020P>-meu#B!)E.d"@89m
+mf(u@!$Ce4"@e9\kl'!1!1r]\">GS>k5=`KJ,~>
+mJd1Eqaps<]&NP.rrN,-oL]6oM7VpLk5PF/r(7)eGFd1Si;WiS>jk8g>'?7Rmeu#B!.jc7"Cm\:
+mf(u@!+>Cj"Cd8#kl'!1!4q\m"BpPhk5=`KJ,~>
+mJd1Mqg\d.]&NP.rrN,AoRI'hM7VpLk5PFWr."p!GFd1Si;WiSN:29#F`s+mmeu#B!2fC="FHBR
+mf(u@!0?`%"Eo[7kl'!1!711c"F>g3k5=`KJ,~>
+mJd4c&,ZD1$BiR!r6#$>f^o.H7YnY>r9""Z./X&J&p^,!p#,iNrc@N."CH\Zg@sG'!.+8;"=B&>
+kl'99!$Ce4"@e9\kl'!1!.aS>"=f)2j8AEHJ,~>
+mJd4c<;]>k:702kr6#$>iq,hG@YhVZr9""ZB)G7(:jJ\_p#,iNrgN:J"DE=cg@sG'!2/sV"BUMo
+kl'99!+>Cj"Cd8#kl'!1!2T-W"B^>`j8AEHJ,~>
+mJd4cL\lT(SBC6sb5VJ,oRI'fLq;gJk5PFGr."otH(WUZi;WiW\*nhMDh+kApYGiL]_$^WI#GZ$
+rS.>PO7Rl)G)EoqrR:cH_!upXHA&Wbr:'`:~>
+mJd4d9)ASk0<Egurlb<Br<r8u"@e6Zkl'ZD!!N3""<)T\f(S#$!6t!5"Wh]E^?GLNrrAbb!!Ejc
+Z/PQ6rr=/4!!GcK]BK4Brr?U"!!Fa&YMf9Hs*t~>
+mJd4dIeu_?@'&#Qrlb<BrDN;\"Cd5!kl'ZD!)3;_"B'Q?f(S#$!8?p7"]KH%^?GLNrrB_(8d%qB
+Z/PQ6rr?Hu8d&U\]BK4BrrA2O8d&7JYMf9Hs*t~>
+mJd4dV#,ZFKrir!rlb<BrIsop"EoX5kl'ZD!.t-!"FGHhf(S#$!9<R!"aY3L^?GLNrrCC;J-:=R
+Z/PQ6rrA,OJ-:%Q]BK4BrrB@pJ-:1MYMf9Hs*t~>
+m/I':q>^V,]]An3rrN*Ko`,+kMS/0OkPkPBqZ$a<H_f<ghu<`T/b&fE8:$oUoD[SG!5\7,"*CEn
+pY5]J+7fI87Z+hArR:cH3:QtO.=eSYqXFN8~>
+m/I'^qFUj;]]An3rrN+4oh#?uMS/0OkPkPJqapuhH_f<ghu<`TC%4e!@!\HmoD[SG!7UO3"*pcs
+pY5]J@.Qtn@Z%e]rR:cHEUcX(=FdR3qXFN8~>
+m/I(#qLA[.]]An3rrN+`omd0fMS/0OkPkPPqge]n!i4KChu<`TQ19A.EdFA*oD[SG!8mBu"+I-#
+pY5]JO7Rl)G)EoqrR:cHSFM+4H@W0UqXFN8~>
+m/I'qq>^X(N6:MbbPqQ+o`,,"N5"TUkPkOoqZ$a<I&>Tlhu<`VMXg`N#]#1$iVM@0!8d;I"BM&>
+oD[PF!$Ce4"@e9\kl'!1!"AAt"=\l(htljBJ,~>
+m/I(0qFUlcQ-/IkbPqQcoh#@$N5"TUkPkP-qapuhI&>Tlhu<`VX7Ajd9PoNjiVM@0!9`rG"DjUT
+oD[PF!+>Cj"Cd8#kl'!1!)i>Z"B^2WhtljBJ,~>
+m/I(>q1&R;b3]&LrrAY`J-9tQ^?Y[[rrCmPJ-:4HVV1b%rrN,9npgmmDhbUWqV;)Nmdkr3I%8RT
+rnRMRO7Rl)G)EoqrR:cHL@KcsH@W0UqXFN8~>
+m/I(Uq#COAW7LS>bl7Z0o`,,0OMgGakPkOKqZ$a<I&>WmhZ!W5"S2Ts/p*AumJYi?!<2Qi"?DXa
+mf)#A!$Ce4"@e9\kl'$2!71-7">k\4i;2sCJ,~>
+m/I(Xq+:cnWn-e@bl7Zgoh#@*OMgGakPkOiqapuhI&>WmhZ!W=9_1j[=EKhJmJYi?!<2R^"CRD3
+mf)#A!+>Cj"Cd8#kl'$2!8[-:"C$G[i;2sCJ,~>
+m/I([q1&U$Wn-e@bl7[:omd0cOMgGakPkP*qge]o!iF]HhZ!WCK(FKrGBB+imJYi?!<2S?"FQBO
+mf)#A!0?`%"Eo[7kl'$2!9`j%"F,L#i;2sCJ,~>
+m/I+c0)5JM7(D1LrltHC6hUK`$?VQTnG_VN!-%f8"<2`cgA'P)!W>:T!!HDQVqC^trrN*)oDf":
+M7VjIh#@?no)Jn_MS&*NeGfN0n,NSRK!=83nGe"~>
+m/I+cCACI)Cq/EtrltHCH1ji69luZBnG_VN!1E^V"B'WEgA'P)!W@358d&aTVqC^trrN*poL]6e
+M7VjIh#@@[o1B-pMS&*NeGfNQn4EgiK!=83nGe"~>
+m/I+cQMH%6MR_U=rltHCU%X!?IWUjsnG_VN!4_oVs*OmFgA'P)!WAV]J-9h?VqC^trrN+PoRI'l
+M7VjIh#@A6o7-seMS&*NeGfNhn:1XbK!=83nGe"~>
+li-rrp](D-_WL^>rr>:W!!FEgSC$ojrr>ai!!F-dVV:h%rrN+foDf%/E/V?jqqD&M+7oO9#D0,9
+qV;,A!!GcK]BK4Crr>IV!!GoJ[H.8Ts*t~>
+li-sIpdtX=_WL^>rr@698d&+;SC$ojrr@TH8d&%>VV:h%rrN,-oL]9`E/V?jqqD&M@.[%o9S0G)
+qV;,A8d&U\]BK4Crr@B78d&UW[H.8Ts*t~>
+li-sipj`I1_WL^>rrA\bJ-:1BSC$ojrrAqnJH'uuVV:h%rrN,AoRI*mE/V?jqqD&MO7[r*ItFi\
+qV;,AJ-:%Q]BK4CrrAe_J-9tJ[H.8Ts*t~>
+li-sQp](F$KZi`ZcMml#p&G4TI&,Ehk5PE,qZ$a/I&5Kih>[ND#PA'#4F!@?nc%8B!$Ce4")"C[
+p>#]=!!GcK]BK4DrrMEgn,NSrMS&*NnGe"~>
+li-snpdtZ`PKW=icMml^p.>HmI&,Ehk5PEkqapudI&5Kih>[NH:\@<`?$Mj`nc%8B!+>Cj"*:6g
+p>#]=8d&U\]BK4DrrMXan4EgtMS&*NnGe"~>
+li-t.pOE@;bO#,OrrAJ\J-:%CUtGG(rrA5ZJ-:=KV:bOurrMbEomd3fGaltJrn@APO7Rl(IA>Be
+h#Hqq"Eo[7kl''3!VM'6J-9nM]BK4_s*t~>
+li-t3pAb=+RFC['ci3t]p&G4qK!=20kPkPVq>^X*HD9!ah>[NS9_JGi!bHtdh>#\'!%7@<"A,!(
+nc%AEnc/e^MS&*Nec,W-n,NUqEKA$(rp]r<~>
+li-t@pIYQcU!rN/ci3uKp.>I"K!=20kPkPXqFUlbHD9!ah>[NSJ+ZD:C4`VEpt>ZIAb/LsAsgd3
+rn[VF8d&U\]BK4DrrB1j8d.n.O2L>`nGe"~>
+li-tIpOEBuVpk/5ci4!(p4*9cK!=20kPkPZqLA]tHD9!ah>[NSV"K6@Dh>.Jpt>ZIPOj;-I$i+I
+rn[VFJ-:%Q]BK4DrrC%-J-CFBO2L>`nGe"~>
+li."a&,-&,(oGsVrR(WFn+H_b#]Pa9kksWD!71H@"*gHfp"fWKrhfAh"WqcH_<V!Prr>7S!!Fp7
+_!CsUrrCsI!!GcK]BK4ErrN!Bn,NV6FdUDCrp]r<~>
+li."a<;/uf<iamDrR(WFo_(l\9Q5s(kksWD!8[HC"*gHfp"fWKrkA(u"]TN(_<V!Prr@668d&@Y
+_!CsUrrD9R8d&U\]BK4ErrN%-n4Ej`FdUDCrp]r<~>
+li."aL\H<%KW`turR(WFp\'+@IW17ZkksWD!9a0."*gHfp"fWKrm:@h"aY3N_<V!PrrAY^J-:7[
+_!CsUrrDNYJ-:%Q]BK4ErrN(]n:1[gFdUDCrp]r<~>
+li."b6M:B^,d,qprmLfH\+Te*/p<W*nG_VN!2oVm")==Po\BHIo*b9m"\*g3de*Olrr>:T!!Emf
+[,_&?rrCdD!!GcK]BK4ErrA\[!!GT8Ut>>/s*t~>
+li."bGkO`4?Er;XrmLfHbk=X4=E^(TnG_VN!5SD&"*0mXo\BHIohtNV"^lYMde*Olrr@668d%tE
+[,_&?rrD0O8d&U\]BK4ErrB\"8d&IJUt>>/s*t~>
+li."bT_<m=LU>k/rmLfHg\-.$GBT@snG_VN!7Uao"*g<^o\BHIpP&?l"`ep_de*OlrrA\_J-:=T
+[,_&?rrDEVJ-:%Q]BK4ErrCC6J-9tAUt>>/s*t~>
+lMgj0o`,+AZJP9Re,KDhp&G5!J#M)pk5PF+q#CP&Qd#"!h>[NS=SMk""`&k!iVM4,!'g#S")k*k
+pYPoM^[_@-7Z+hArR_&MpE8r*"TrCkZJt`Ls*t~>
+lMgjVoh#?n[bg]Ve,KE<p.>I"J#M)pk5PFRq+:d+Qd#"!h>[NSL\OIF9PoNjiVM4,!-[p*"*g`t
+pYPoMddg!5@Z%e]rR_&Mq-`\a"\WZcZJt`Ls*t~>
+lMgjromd1$\DHoXe,KEYp4*9bJ#M)pk5PFoq1&TmQd#"!h>[NSWq_)JIrC(JiVM4,!2&h4"+R6&
+pYPoMhsu:#G)EoqrR_&MqiL;t"b1HEZJt`Ls*t~>
+lMgjcoDf"@[,:QUeGfLgpAb@8EK%Qmr9""Z8GN5g8Wq*]rnRMRWqZPt.WgopmJY];!&*mC"A,*.
+o)@PH!3>Yj"@e9\kl'-5!-@T/"Y"PW`9dHks*t~>
+lMgk&oL]6n\)6lXeGfMTpIYTeEK%Qmr9""ZI/-A;AWk($rnRMR_>$V+=*0\HmJY];!,M-t"D=4L
+o)@PH!5nA""Cd8#kl'-5!1`LM"]of0`9dHks*t~>
+lMgk7oRI(#]&32[eGfN/pOEEoEK%Qmr9""ZV"oNDH'628rnRMRdeJ=rG]]1imJY];!138,"FZcb
+o)@PH!7gXj"Eo[7kl'-5!4hQK"aG-Q`9dHks*t~>
+lMgkCo)Jn?[,:QUf)G`Rp&G7mH(N@Qroa:^o*G-l">c"NlM]N<!V6]p!!H)GV:P@lrr<l+!!FI+
+_!:mUrr@uJ!!GcK]BK4GrrL"?n,NXo?%/X$p&=F[J,~>
+lMgkKo1B-m\)6lXf)G`ip.>KuH(N@Qroa:^p/(QW"C-o"lM]N<!VK@d8d&XPV:P@lrr?6n8d&1U
+_!:mUrrB1l8d&U\]BK4GrrLVDmn*asI\kWgrpTl;~>
+lMgkQo7-t"]&32[f)Ga%p4*<dH(N@Qroa:^q1SQo"FH*AlM]N<!V_<DJ-9k?V:P@lrrA#KJ-::]
+_!:mUrrC%/J-:%Q]BK4GrrM)1mskR[I\kWgrpTl;~>
+lMgna'Cu2,,cokprR_&L0_YPN+E3.FiVDX9!1W``";Za"jS[g5!WH3t!!N^ILpuIBf`(sCnGi[p
+I^.i-hu<[enc/e^MS&*Ng&D*9)".G.13/Dfk54THJ,~>
+lMgna=7]#e?F&G[rR_&LD"gO*<,dZ%iVDX9!4_er"B'u^jS[g5!WIlN8d.q-LpuIBf`(sFnO`pW
+J[+/0hu<\<nk'$oMS&*Ng&D*@>OP/f=`TP8k54THJ,~>
+lMgnaM=Z6#Lq)=6rR_&LR.l+7H>n\KiVDX9!6t:h"FZ$4jS[g5!WK+qJ-CC@LpuIBf`(sIn:1Uo
+Z/GK9rrB@qJ-:%Q]BK4HrrM_MmskRbEfRfpqsOK7~>
+lMgna9(Drb'qO.Nr7V)MS+cme"(-AGcLCeqrrMj>pAb;9Wn[='rrB(q!!OutQc\^qf`(rdn,NSg
+U"&`6i;Wd2nc/e^MS&*NgA_3:..7-?&o3#peFW\-s*t~>
+lMgnaIe$)6<iXsGr7V)M\G&T"95&XCcLCeqrrMq*pIYO6Wn[='rrBn38d/=>Qc\^qf`(s"n4Eh"
+U"&`6i;Wdnnk'$oMS&*NgA_3AB(&=r:i1`[eFW\-s*t~>
+lMgnaV"0$=KsTS*r7V)Mc1c_mIrBY)cLCeqrrN"[p4*4Eg\BP'!7L^o"a>*Uam]5]rrCsGJ-:@q
+eF`aurrAGWJ-:%Q]BK4IrrM_UmskUiDh+_7oD\1XJ,~>
+l2La,nGi^uJ_0AernRMSh[oM^"Zg^a]&WVKrr@E>!!G][cgq(jrrM^!qZ$atI]1omfDbhhn,NS8
+P/Q_ciVro@nGi\]MS&*Ng]%<;..7-?"^-)9_s%!bs*t~>
+l2LaSnO`s[R+Lg'rnRMSkZ.@L"^H,.]&WVKrrAee8d&arcgq(jrrMdjqaq!%I]1omfDbi=n4Egb
+P/Q_ciVroGnO`pnMS&*Ng]%<BB(&=r9P/O8_s%!bs*t~>
+l2LapnULdpWn6_9rnRMSmtg^g"a"gF]&WVKrrBb+J-:=kcgq(jrrMkJqg\fhI]1omfDbi[n:1Xj
+P/Q_ciVroLnULacMS&*Ng]%<GPja,,IrBRt_s%!bs*t~>
+l2La_mf3Jfc0G*'hZ!WJ0_YPO*cHY/eare'rrKG/p&G4'MSA<Ph#@ES=Sr.&$ZM!7k53g2!V[H"
+!!@,Di;)@3!0cpQ"@e6[kl'<:!RDnW!!`QtFH!Zbp\sR[J,~>
+l2Lb"mn*_0cKb3(hZ!WMD"gO+;f@8deare'rrL59p.>H_N5"NRh#@ESL\saJ:2l*%k53g2!Vosg
+8csIGi;)@3!4),e"Cd5"kl'<:!Sq/O8d8^GN4.U;rpB`9~>
+l2Lb4mskP/cg(<)hZ!WPR.l+8H>eD6eare'rrLf)p4*9qNkX`Th#@ESWr.ANIW11Uk53g2!W.iE
+J-1P2i;)@3!6Ob]"EoX6kl'<:!U#R4J-L%9N4.U;rpB`9~>
+l2Lb6mJmA6WoNaLi;WiL48/^Z%qL$Wa6WWcrrL"GoDf"aWS$qDh#@ASqu?mQG*pGArn.5NL[G-F
+*1G+@rSmhW/F`]C'md=Lqq_8QP76jZ#!?p\XOZn?m/MS~>
+l2LbAmRdUg[c@#Xi;WiOFSAB3:25-Ga6WWcrrLVIoL]7$WS$qDh#@Ajr(7,pG*pGArn.5NWpWI^
+<h.D'rSmhWC%4du;1c7;qq_8QZ;U*_#$c2'XOZn?m/MS~>
+l2LbJmXPFt^Z4tai;WiRSbIX=I;XD%a6WWcrrM)5oRI'sWS$qDh#@B&r."rpG*pGArn.5N_sMsV
+SBUL$ir9"EnULajLUQ:@h>[MtL@0QrFE3,;eai\*s*t~>
+l2Le`$gmuu"_lNTq>TFS!TQ$2!!`j8GE]]"q#9LW!P8d3!!EFP_<CdOrrM^!r;Zt!I]1upf`)!$%
+.+#t8@.1IroF(ZU[J0d%rThaqYoIR!Rj:$!!`QjEJ147mJQ;MJ,~>
+l2Le`;XR-\9oRZkq>TFS!UF[u8dA('GE]]"q#9LW!RF[88d%hE_<CdOrrMdjrCR3'I]1upf`)!1
+;XI'ZD6r*nroF(Z^@+Yt;2EZhqYoIR!T81h8d8UAKVm&^r9OB5~>
+l2Le`L$jHpJu.)eq>TFS!V)WQJ-UOAGE]]"q#9LW!SrM$J-1tNkkj08!V_<HJ-9k@W7q!urrMA=
+m=5=qZekHUjSo5-mskRmSC6m&ro*kXl(@?n#'=j<VU"T,li2J~>
+l2Le`1@+uE+IqNbr;PjY!NQq/!!`j8G)iuco`"(S!KRBR!!En#dI@(irrN*mrW!*0E/M6hr7V)N
+k:#Wr"BiV(q>TOV!TOm]!!XBfeFNG6roX4^dU*.F!!`^'EeUC6lMBfGJ,~>
+l2Le`D<sju?E`G^r;PjY!Q8+78dA('G)iuco`"(S!O,;g8d&%`dI@(irrN+Lr^m>hE/M6hr7V)N
+mUkcW"F@rIq>TOV!UEkT8d8Ifg%+t;roX4^hi1=t8dA%!EeUC6lMBfGJ,~>
+l2Le`R-]>,MnJ-Cr;PjY!S*)%J-UOAG)iuco`"(S!QTf^J-:FudI@(irrN+prdY0$E/M6hr7V)N
+o9AQk"HgR`q>TOV!V)'7J-Lk8hX^L@roX4^kc]U+J-UREEeUC6lMBfGJ,~>
+kl1Wpl2UuP\*<Varp'LacU[[/#7Og[Nj@=.r9=4^gHY*+";?sNnbh5C!1s/i"YY%db4,DarrL.[
+kl:iY_WU^nkl1\H.-^d<"$1nHoD&7_rpB^entJA8!!jBKG)E<FlM:GEs*t~>
+kl1XGl:M5#_Wgdlrp'LagjJff#>SoTNj@=.r9=4^k'-5c"B;&Hnbh5C!4i)$"^#r8b4,DarrL_X
+kt2)#`TR$qkl1\OB'Mto9Q6ZMoD&7_rpB^ep:Y\:8dJ:.G)E<FlM:GEs*t~>
+kl1Xgl@9&)bN\`urp'LakG.a$#C^T7Nj@=.r9=4^m@Wfs"G<`,nbh5C!6tLn"a>-Wb4,DarrM/?
+l$ro"`om-rkl1\TPj3c)JXEt"oD&7_rpB^eps>Z"J-^L@G)E<FlM:GEs*t~>
+kl1XCkl:ni6)s5Dr;Q-a!Obes!!aBOG`T2_nbh\P!p=J-li71mAC'Z=rnm_]mfWUj<dq"$pY5]L
+k@Xq\!!O@#iUZmFli."#*9@/,%R"Wo_WLXjr;HWoqu?]q"R`jU6O<#Y#mNM1I?UtcmJ?hHs*t~>
+kl1Xckt2.RFM$i3r;Q-a!R-/g8dA7/G`T2_nbh\P!q)IQlq.FTL=5Jbrnm_]nk;YJB7?f5pY5]L
+mZUB.8d/CmiUZmFli."5?KFcc;fn80d-LK(r;HWoqu?]q"S0j;Gu*d!#u"WDI?UtcmJ?hHs*t~>
+kl1Y&l$rthRE4[er;Q-a!SaOFJ-UF>G`T2_nbh\P!qWmSm!o7jT[W<(rnm_]on%^EFFL1BpY5]L
+o<X&3J-Cb8iUZmFli."CNobctL7>Kgh!Xt7r;HWoqu?]q"SUWfTnMc_$%I&:I?UtcmJ?hHs*t~>
+kl1Xrjo>W0FLgr:r;Q]hrr_\pCE)pH#Qcc!I$D(mnbhbR"8fZ2#j;6m&p2Ojq#13Ors8Qg!"4".
+\`WhHrr`,/>6s6h"sSWKo(i7`nG`O+:Yc!S%OaPFC4#l+")V4&([1o+"#"51LnVT=nGDDKJ,~>
+kl1Y/k"5kcR)ngmr;Q]hrr_l6Q<j,T#?l%nPd]98r9XFcr6C*pkXl%ZQ.PO#rVkgV#lSs>:O%c-
+k5=*9"8pH%:ub.P@%Z0Dq>L<^rrLW$h+@lNAp0#qTV;=Y"."da>3SWc93H(ULnVT=nGDDKJ,~>
+kl1Y=k(!\rZIJF>r;Q]hrr_uI[>jg/#Bk'6Pd]98r9XFcrS4H,k^WklY1rI@rVkgV#lU?FJU*-`
+k5=*9"8prVK]@ReN4%R6q>L<^rrM&Uh1,Z`P+AVY]DT;D[B,mVl$s(iGB%k`TtfCPqre!0~>
+kl1YIirBT%89UT9f\5'6gXEg.JlXAl!!j??FG-7#hX^U5rri>TSmN2l!!`TaHEuT*qY^?lkl1qf
+P5mXuR*"grj8T;^o"KuW&DdBn"#k>)j7iEKrr2fps8E,WVIpjV!"&obApB'![*Ih,r9"$0~>
+kl1YOj%9MUHCVIgi8agt"lIY<VMAjU8dJ:+FG-7#hX^U5rri>^\rBhP8dA%-S]'adqY^?lkl1qf
+Z:\ebR*"grj8T;^p!Bdl<Sg=S9Q$98kkFrPrr2fps8E,`^lr'48d\6qCj:]'[*Ih,r9"$0~>
+kl1YSj+%YqTXW(rkj%I!lfd-M^oE[jJ-^OCFG-7#hX^U5rri>fcEE,cJ-UXk[aOL9qY^?lkl1qf
+a+/u#R*"grj8T;^ptireLu*XgJX<ajlhC8Srr2fps8E,gd^+qAJ-pdMEd3>-[*Ih,r9"$0~>
+kl1\_'E.t9!uWR>/0Y_S!!s!!E.*kMb2i9pnc&]PB0Hj[!!j;u<c39EpA=jSrs%?\HC(Yap>u;V
+mrM8Le,Tms7VT7#q#15rG?-I0[/^U:*Ck$qLmt]mi:-UBjo9i~>
+kl1\_=8ker92\kq>?=\L8dS4!EIEtNb2i9pnc&]qPBKs[8dJO<KpJCqpA=jSrs%XYOI*!"p>u;V
+oULMBe4L-THBZA>q#164Sqh/^Zq:^)@WHjPS$L2pnG<.Gs*t~>
+kl1\_M>i#0IsZKhI"$RmJ-g[HEda(Ob2i9pnc&^3Z_!!,J-_""W3j2&pA=jSrs%k@TU2\2p>u;V
+pUR2ae:7sdTX!#;q#16E];h6R["&O2F`VqdS$L2pnG<.Gs*t~>
+kPl&N""mAeHA%6?P`gl>9IUD&!"'6$DL7;9^=_iKrp]pf+OU5l[G:3HlMh(e5JXG;jSS'=!8l'%
+"_?*EpASF+!"BDf88EO)P+oD.hsU:<j8XW~>
+kPl'39O_aWHA%6?P`guRDHoui8d\="E-mM;^=_iKrp]pf@+%XL^>//QlMh(eG/CDtjSS'=!9h^#
+"c:^jpAU)Z8e"Nt@rZgJP+oD.hsU:<j8XW~>
+kPl$\JV\_rHA%6?P`h)bL4Rs,$@R&;H]+W4f^8M6nG`KMdXVG=h!Y%(rs&Fn`3-o:qrRhXn'6Fe
+UsnK"ri`\Z%=WVHG'\h)U:/8&meHb@s*t~>
+kPl74`3,;fU9VGOaMu*/ZDX4D>s'#.huF,g-W"o6NM3o0k4JT>rsjj*?rBa(=BT-B?tX@rEURrJ
+@fKg9?2dY.:..N?3&ipe]\W;\li.1go\7O?n,DGK''ag]>Ydpc<Dub#?=$uKDJsN7mrBIe@UWYO
+>#8$k7R9@(1cB-Rd-gk$=CG3<?>=:jFEI+ps'cCE>#8$b5W^SL*Z>Lni;aGn'I>e:C4(VkQ(kS%
+eDp&nrSdd,~>
+kPl7DbH@%mU9VGOaMu*/ZDX4MG@jiKi(=AN<b6B%NM3o0k4JT>rsbupKm7W^FE2PGEclVPmWo"Y
+FE;JBrG2gSC2@KoB:limpAXCX#6+8Lb1H+]jo5YVTTaqKDJjH4D>eGUF*MutH6IQUFE;JACi!m#
+AnP^cA:h&4mesVLLO+ApIsucpI=-Bgp3I3kFE;D;CM.0e>[(6.:efn@&PQ&'?YFJ-Jr>ngZGY2P
+nG)t@s*t~>
+kPl1Nd&rRrU9VGOaMu*/ZDX4TM1j`9$\*GDFFK4C\^9L2r9jRp_QohtN/NLGK7SQ&It3+;K):'+
+JqSi4L5:\^]\W;\li.1go\7O?n,DGK$hV'6S<&M^KnFr,If4`tJ:W:<K)C-7It3*%K7nuCYgDh:
+bc%;%P)bQ]M2$]RK):&uJ,OirJ)PniIslZiG^+UfMj:$B_pm`9q#01OJ,~>
+kPlCqkfgcZeDTTZn*]Q+inDbu\ZVZjE)//'k5Yr'/PpG7LR"dMdH'lprpB^rqW5\tTq7jJTq\B\
+W2cr$n?*G,XJr+pVPKrZTV%gIT:i'nh"C[3rri2dk3Vm(rt>>)hS#hZSXc7CTVA6ZVPpMrXm`D#
+XfSS%Vl$>eU7e-LrgX7dYg;b9r9MS1rh9RlV5C2lXnAh;XfSM"VPKoXS=5e0P)tZ\I<B=7?VsWm
+5X.Fh/hZiL'fnHM<FKiqJqo;KR\[.!aOT89o_SREs*t~>
+kPlCqkfgcZeDTTZn*]Q+inDbu\ZVZlJT"ppk=Q1Z=_;c'LR"dMdH'lprpB^rqW5\tTq7jJTq\B\
+W2cr$n?*G,XJr+pVPKrZTV%gIT:i'nh"C[3rri2dk3Vm(rt>>)hS#hZSXc7CTVA6ZVPpMrXm`D#
+XfSS%Vl$>eU7e-LrgX7dYg;b9r9MS1rh9RlV5C2lXnAh;XfSM"VPKoXS=5e0P)tZ\K78)gF)>`-
+ARo:X>[6u,'jtK`CN+NIJqo;KR\[.!aOT89o_SREs*t~>
+kPl@pkfgcZeDTTZn*]Q+inDbu\ZVZnN/*#IJ.6pPG'/1fQ)D:BjRW0HmJd^nji+<pSt;RJU8=`c
+WiW>lXqRq=WMcVjUnXNTT:VXHTVf?Vp&=7V"T%QKm.fZA')qU]]r.KnS=Q:FU84Z`W2cr$n#d&#
+XK/:tVP^/`TV%eSS-YakcgLc0lccR3U'7?hVPpPtor]17XJr+pUnOENR[9;&OH#-QKnP&/JUi6#
+J,OiiIK+]pHiJI(IY*?6PFA;N]?&O]m.C/RhuA3~>
+kPkecp?_#0o_SLarY#2,q"*q9hUTfb[&KXYEDekD%J'Q3!tun?:i(N2N0gEMa4TSGqYog\%fGkT
+eBlRie(*%%g=tE>mb\W4gtLK8f[eU&da6=cbK\]*qW\"_rqcEdrT!nhqX31fcd:%eeCE.&g"P39
+hX02AhV?l>g=b-0eC;pncHOJ[jRrNNoA\6Ed*pOtg"bETh]:P.g=b-0eC)[eb/V<5]XY>QY,\Cq
+U7\!GR@';*p662UR%'bEWj&tH`m<8okjS3@rVkXQJ,~>
+kPkecp?_#0o_SLarY#2,q"*q9hUTfb[&KX[J8f%%:\.0j92JYqBQJQQN0gEMa4TSGqYog\%fGkT
+eBlRie(*%%g=tE>mb\W4gtLK8f[eU&da6=cbK\]*qW\"_rqcEdrT!nhqX31fcd:%eeCE.&g"P39
+hX02AhV?l>g=b-0eC;pncHOJ[jRrNNoA\6Ed*pOtg"bETh]:P.g=b-0eC)[eb/V<5]XY>QY,\Cq
+U7\!GR@';*p662UR%'bEWj&tH`m<8okjS3@rVkXQJ,~>
+kPkecp?_#0o_SLarXf&*q"*q9hUTfb[&KX]MhZlRJ.R-UH?a[^JrH%n[`@%`o(r@Orsntsi7--#
+dF6Xsf\5*8hX985h;$`<g"=m+eC)^icHFJblh]lG"TJ8mqYfIS&GkhNda-:edaZguf\,!5gtqGU
+*o>],g=k64f$r3td*BkYdcC*#rU]$tcHt%jf\,'9oA:SEgtLH6f$r-obf[rB^V%(`Ycb"(UnXKP
+S!fY0Q1gFTQC+/7UoLZ.^;eLNhrsP%qYgELs*t~>
+k5PS_r;?Nmp\ts,r;--VlJpXIaM,![TU1[bAm%u-r([l1AT<3OL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+k5PS_r;?Nmp\ts,r;--VlJpXIaM,![TU1^lG]@S9r+Zj_Ed3(cL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+k5PS_r;?Nmp\u!-r;--VlJpXIaM,![TU1atL4b&-J,OiqI1LgZL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+%%EndData
+showpage
+%%Trailer
+end
+%%EOF
diff --git a/templates/Traditional_Chinese_UTF8-logo.png b/templates/Traditional_Chinese_UTF8-logo.png
new file mode 100755
index 00000000..5edcdfe5
--- /dev/null
+++ b/templates/Traditional_Chinese_UTF8-logo.png
Binary files differ
diff --git a/templates/Traditional_Chinese_UTF8-packing_list.html b/templates/Traditional_Chinese_UTF8-packing_list.html
new file mode 100755
index 00000000..82eca02a
--- /dev/null
+++ b/templates/Traditional_Chinese_UTF8-packing_list.html
@@ -0,0 +1,194 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=64 height=58></th>
+
+ <td align=right>
+ <h4>
+ 電話: <%tel%>
+ <br>傳真: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>出貨單</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% cellspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th width=50% align=left><font color=ffffff>付é‹å¾€ï¼š</th>
+ <th width=50%>&nbsp;</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ </td>
+
+ <td>
+ <%if shiptocontact%>
+ <br>致:<%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>電話: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>傳真: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left>發票編號</th>
+ <th width=17% align=left>訂單編號</th>
+ <th width=17% align=left>日期</th>
+ <th width=17% align=left nowrap>è¯çµ¡äºº</th>
+ <%if warehouse%>
+ <th width=17% align=left>倉庫</th>
+ <%end warehouse%>
+ <th width=17% align=left>付é‹é»ž</th>
+ <th width=15% align=left>付é‹å…¬å¸</th>
+ </tr>
+
+ <tr>
+ <td><%invnumber%>&nbsp;</td>
+ <td><%ordnumber%>&nbsp;</td>
+
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%transdate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+
+ <%if warehouse%>
+ <td><%warehouse%>&nbsp;</td>
+ <%end warehouse%>
+
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>ä½ç½®</th>
+ <th align=left><font color=ffffff>編號</th>
+ <th align=left><font color=ffffff>æè¿°</th>
+ <th align=left><font color=ffffff>åºè™Ÿ</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>數é‡</th>
+ <th><font color=ffffff>付é‹</th>
+ <th>&nbsp;</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%></td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td><%serialnumber%></td>
+ <td><%deliverydate%></td>
+ <td align=right><%qty%></td>
+ <td align=right><%ship%></td>
+ <td><%unit%></td>
+ </tr>
+ <%end number%>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td>備註</td>
+ <td><%notes%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=70%><font size=-3>
+退回的物å“須支付10%的回收費用。若è¦é€€å›žç‰©å“,必須先å–å¾—<%company%>的授權。退回
+物å“çš„é‹è²»å’Œä¿éšªè²»è‡ªè² ã€‚若在途中出ç¾æœ‰æ毀情æ³ï¼Œ<%company%>å°‡ä¸æœƒè² ä»»ä½•è²¬ä»»ã€‚
+ </font>
+ </td>
+ <td width=30%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+
diff --git a/templates/Traditional_Chinese_UTF8-packing_list.tex b/templates/Traditional_Chinese_UTF8-packing_list.tex
new file mode 100755
index 00000000..2d3a1945
--- /dev/null
+++ b/templates/Traditional_Chinese_UTF8-packing_list.tex
@@ -0,0 +1,136 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\newsavebox{\ftr}
+\sbox{\ftr}{
+ \parbox{\textwidth}{
+ \tiny
+ \rule[1.5em]{\textwidth}{0.5pt}
+Items returned are subject to a 10\% restocking charge.
+A return authorization must be obtained from <%company%> before goods are
+returned. Returns must be shipped prepaid and properly insured.
+<%company%> will not be responsible for damages during transit.
+ }
+}
+
+<%include letterhead.tex%>
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrl@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Ship} & \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+\textbf{Ship To}} \hfill
+
+\vspace{0.3cm}
+
+\parbox[t]{.5\textwidth}{
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+}
+\parbox[t]{.5\textwidth}{
+ <%shiptocontact%>
+
+ <%if shiptophone%>
+ Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{P A C K I N G} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{7}{|X}|} \hline
+ \textbf{Invoice \#} & \textbf{Order \#} & \textbf{Date} & \textbf{Contact}
+ <%if warehouse%>
+ & \textbf{Warehouse}
+ <%end warehouse%>
+ & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+
+ <%invnumber%> & <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%transdate%>
+ <%end shippingdate%>
+ & <%employee%>
+ <%if warehouse%>
+ & <%warehouse%>
+ <%end warehouse%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrl@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Ship} & \\
+
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%serialnumber%> &
+ <%deliverydate%> & <%qty%> & <%ship%> & <%unit%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{12pt}
+
+<%notes%>
+
+}
+
+\vfill
+
+\rule{\textwidth}{0.5pt}
+
+\usebox{\ftr}
+
+\end{document}
+
diff --git a/templates/Traditional_Chinese_UTF8-pick_list.html b/templates/Traditional_Chinese_UTF8-pick_list.html
new file mode 100755
index 00000000..575d66c0
--- /dev/null
+++ b/templates/Traditional_Chinese_UTF8-pick_list.html
@@ -0,0 +1,153 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=64 height=58></th>
+
+ <td align=right>
+ <h4>
+ 電話: <%tel%>
+ <br>傳真: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>æ€è²¨æ¸…å–®</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th width=50% align=left><font color=ffffff>Ship To:</th>
+ <th width=50%>&nbsp;</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ </td>
+
+ <td>
+ <%if shiptocontact%>
+ <br>致: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>電話: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>傳真: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=15% align=left>發票編號</th>
+ <th width=15% align=left>訂單編號</th>
+ <th width=10% align=left>日期</th>
+ <th width=15% align=left nowrap>è¯çµ¡äºº</th>
+ <th width=15% align=left>倉庫</th>
+ <th width=10% align=left>付é‹é»ž</th>
+ <th width=10% align=left>付é‹å…¬å¸</th>
+ </tr>
+
+ <tr>
+ <td><%invnumber%>&nbsp;</td>
+ <td><%ordnumber%>&nbsp;</td>
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%transdate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+ <td><%warehouse%>&nbsp;</td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>ä½ç½®</th>
+ <th align=left><font color=ffffff>號碼</th>
+ <th align=left><font color=ffffff>æè¿°</th>
+ <th><font color=ffffff>數é‡</th>
+ <th><font color=ffffff>付é‹</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>ç®±</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td align=right>[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</td>
+ <td><%unit%></td>
+ <td align=right><%bin%></td>
+ </tr>
+ <%end number%>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+</table>
+
diff --git a/templates/Traditional_Chinese_UTF8-pick_list.tex b/templates/Traditional_Chinese_UTF8-pick_list.tex
new file mode 100755
index 00000000..2f82936a
--- /dev/null
+++ b/templates/Traditional_Chinese_UTF8-pick_list.tex
@@ -0,0 +1,108 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\begin{tabularx}{\textwidth}{@{}rlXrcll@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} &
+ \textbf{Qty} & \textbf{Ship} & & \textbf{Bin} \\
+
+<%end pagebreak%>
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+ \textbf{Ship To}
+} \hfill
+
+\vspace{0.3cm}
+
+\parbox[t]{.5\textwidth}{
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+}
+\parbox[t]{.5\textwidth}{
+ <%shiptocontact%>
+
+ <%if shiptophone%>
+ Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{P I C K} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{7}{|X}|} \hline
+ \textbf{Invoice \#} & \textbf{Order \#} & \textbf{Date} & \textbf{Contact}
+ & \textbf{Warehouse} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+ <%invnumber%> & <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%transdate%>
+ <%end shippingdate%>
+ & <%employee%> & <%warehouse%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrcll@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} &
+ \textbf{Qty} & \textbf{Ship} & & \textbf{Bin} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> &
+ <%qty%> & [\hspace{1cm}] & <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+}
+
+\end{document}
+
diff --git a/templates/Traditional_Chinese_UTF8-pos_invoice.txt b/templates/Traditional_Chinese_UTF8-pos_invoice.txt
new file mode 100755
index 00000000..cbc0055a
--- /dev/null
+++ b/templates/Traditional_Chinese_UTF8-pos_invoice.txt
@@ -0,0 +1,45 @@
+<%company align=center width=40%>
+<%address align=center width=40%>
+
+Till: <%till align=left width=3%> Phone#: <%tel%>
+Cashier: <%employee%>
+Inv #/Date: <%invnumber%> / <%invdate%>
+Printed: <%dateprinted%>
+
+ Qty Description Amount
+<%foreach number%>
+<%qty align=right width=5%> <%description align=left width=24 offset=6%> <%linetotal align=right width=9%>
+ <%number%> @ <%sellprice%>/<%unit%>
+<%end number%>
+
+Number of items: <%totalqty%>
+<%if taxincluded%>
+ ---------------
+ Total: <%invtotal align=right width=9%>
+<%end taxincluded%>
+<%if not taxincluded%>
+ ------------
+ Subtotal: <%subtotal align=right width=9%>
+<%end taxincluded%>
+<%foreach tax%>
+<%taxdescription align=right width=23%> @ <%taxrate align=right width=2%>%: <%tax align=right width=9%>
+<%end tax%>
+<%foreach payment%>
+ Paid: <%payment align=right width=9%> <%currency%>
+<%end payment%>
+<%if change%>
+ Change: <%change align=right width=9%>
+<%end change%>
+<%if total%>
+ Balance Due: <%total align=right width=9%>
+<%end total%>
+<%if discount%>
+
+<%discount%> % Discount applied
+<%end discount%>
+
+ Thank you for your valued business!
+
+<%if taxincluded%>
+Taxes are included in price.
+<%end taxincluded%>
diff --git a/templates/Traditional_Chinese_UTF8-purchase_order.html b/templates/Traditional_Chinese_UTF8-purchase_order.html
new file mode 100755
index 00000000..37739873
--- /dev/null
+++ b/templates/Traditional_Chinese_UTF8-purchase_order.html
@@ -0,0 +1,252 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <td><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=64 height=58>
+ </td>
+
+ <td align=right>
+ <h4>
+ 電話: <%tel%>
+ <br>傳真: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>採購單</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>致:</th>
+ <th align=left width=50%><font color=ffffff>付é‹å¾€ï¼š</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+<br>
+<%if contact%>
+<br>致: <%contact%>
+<%end contact%>
+<%if vendorphone%>
+<br>電話: <%vendorphone%>
+<%end vendorphone%>
+<%if vendorfax%>
+<br>傳真: <%vendorfax%>
+<%end vendorfax%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+<br>
+<%if shiptocontact%>
+<br>致: <%shiptocontact%>
+<%end shiptocontact%>
+<%if shiptophone%>
+<br>電話: <%shiptophone%>
+<%end shiptophone%>
+<%if shiptofax%>
+<br>傳真: <%shiptofax%>
+<%end shiptofax%>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr><td>&nbsp;</td></tr>
+
+ <tr>
+ <td colspan=2>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left>訂單編號</th>
+ <th width=17% align=left>è½è¨‚日期</th>
+ <th width=17% align=left>è¦æ±‚交付日期</th>
+ <th width=17% align=left>è¯çµ¡äºº</th>
+ <th width=17% align=left>付é‹é»ž</th>
+ <th width=15% align=left>付é‹å…¬å¸</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%></td>
+ <td><%orddate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+<!-- <th align=right><font color=ffffff>No.</th> -->
+ <th align=left><font color=ffffff>號碼</th>
+ <th align=left><font color=ffffff>æè¿°</th>
+ <th><font color=ffffff>數é‡</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>價格</th>
+ <th><font color=ffffff>%</th>
+ <th><font color=ffffff>金é¡</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+<!-- <td align=right><%runningnumber%>.</td>
+other per line item variables available <%reqdate%>
+adjust the colspan if you include this to shift subtotal one to the right
+-->
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discountrate%></th>
+ <td align=right><%linetotal%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=7><hr noshade></td>
+ </tr>
+
+ <tr>
+<%if taxincluded%>
+ <th colspan=6 align=right>åˆè¨ˆ</th>
+ <th colspan=1 align=right><%ordtotal%></th>
+<%end taxincluded%>
+
+<%if not taxincluded%>
+ <th colspan=6 align=right>å°è¨ˆ</th>
+ <td colspan=1 align=right><%subtotal%></td>
+<%end taxincluded%>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=6 align=right><%taxdescription%> 基於 <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=1 align=right><%tax%></td>
+ </tr>
+<%end tax%>
+
+ <tr>
+ <td colspan=3>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+<%if not taxincluded%>
+ <th colspan=6 align=right>åˆè¨ˆ</th>
+ <td colspan=1 align=right><%ordtotal%></td>
+<%end taxincluded%>
+
+<%if terms%>
+ <tr>
+ <td colspan=3>有效期為淨<b><%terms%></b>日</td>
+ <th colspan=3 align=right>åˆè¨ˆ</th>
+ <th colspan=1 align=right><%ordtotal%></th>
+ </tr>
+<%end terms%>
+
+<%if taxincluded%>
+ <tr>
+ <td colspan=2>已包稅項</td>
+ </tr>
+<%end taxincluded%>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+<%if ordtotal%>
+ <tr>
+ <td colspan=7 align=right>
+ 所有價格為<b><%currency%></b>
+ </td>
+ </tr>
+<%end ordtotal%>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+<%if notes%>
+ <tr valign=top>
+ <td>備註</td>
+ <td><%notes%></td>
+ </tr>
+<%end notes%>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=70%>&nbsp;</td>
+
+ <td width=30%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Traditional_Chinese_UTF8-purchase_order.tex b/templates/Traditional_Chinese_UTF8-purchase_order.tex
new file mode 100755
index 00000000..fe1e6428
--- /dev/null
+++ b/templates/Traditional_Chinese_UTF8-purchase_order.tex
@@ -0,0 +1,170 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{\hspace{1cm}r@{}}
+ & Subtotal & <%sumcarriedforward%> \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Amount} \\
+ & carried forward from <%lastpage%> & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+\textbf{To}
+\vspace{0.3cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+Attn: <%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if vendorphone%>
+Tel: <%vendorphone%>
+<%end vendorphone%>
+
+<%if vendorfax%>
+Fax: <%vendorfax%>
+<%end vendorfax%>
+
+<%email%>
+}
+\parbox[t]{.5\textwidth}{
+\textbf{Ship To}
+\vspace{0.3cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+Attn: <%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{P U R C H A S E} \parbox{0.3cm}{\hfill} \textbf{O R D E R}
+\hfill
+
+\vspace{1cm}
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Date} & \textbf{Required by} & \textbf{Contact} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5ex]
+ \hline
+ <%ordnumber%> & <%orddate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Amount} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%linetotal%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
+ & Subtotal & <%subtotal%> \\
+<%foreach tax%>
+ & <%taxdescription%> on <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ & Total & <%ordtotal%>\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ All prices in \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%notes%>
+
+}
+
+
+%\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+%\footnotetext[1]{\tiny }
+
+\end{document}
+
diff --git a/templates/Traditional_Chinese_UTF8-receipt.tex b/templates/Traditional_Chinese_UTF8-receipt.tex
new file mode 100755
index 00000000..effc19b6
--- /dev/null
+++ b/templates/Traditional_Chinese_UTF8-receipt.tex
@@ -0,0 +1,77 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{9pt}{9pt}\selectfont
+
+\parbox[t]{12cm}{
+ <%company%>
+
+ <%address%>}
+\hfill
+\parbox[t]{6cm}{\hfill <%source%>}
+
+\vspace*{0.6cm}
+
+<%text_amount%> \dotfill <%decimal%>/100 \makebox[0.5cm]{\hfill}
+
+\vspace{0.5cm}
+
+\hfill <%datepaid%> \makebox[2cm]{\hfill} <%amount%>
+
+% different date format for datepaid
+% <%DD%><%MM%><%YYYY%>
+
+\vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{1.8cm}
+
+<%memo%>
+
+\vspace{0.8cm}
+
+<%company%>
+
+\vspace{0.5cm}
+
+<%name%> \hfill <%datepaid%> \hfill <%source%>
+
+\vspace{0.5cm}
+\begin{tabularx}{\textwidth}{lXrr@{}}
+\textbf{Invoice No.} & \textbf{Invoice Date}
+ & \textbf{Due} & \textbf{Applied} \\
+<%foreach invnumber%>
+<%invnumber%> & <%invdate%> \dotfill
+ & <%due%> & <%paid%> \\
+<%end invnumber%>
+\end{tabularx}
+
+\vspace{1cm}
+
+<%memo%>
+
+\vfill
+
+\end{document}
+
diff --git a/templates/Traditional_Chinese_UTF8-request_quotation.html b/templates/Traditional_Chinese_UTF8-request_quotation.html
new file mode 100755
index 00000000..83cc04db
--- /dev/null
+++ b/templates/Traditional_Chinese_UTF8-request_quotation.html
@@ -0,0 +1,202 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <td><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=64 height=58>
+ </td>
+
+ <td align=right>
+ <h4>
+ 電話: <%tel%>
+ <br>傳真: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>è¦æ±‚報價單</h4>
+ </th>
+ </tr>
+
+ </table>
+
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>致:</th>
+ <th align=left width=50%><font color=ffffff>付é‹å¾€ï¼š</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+<br>
+<%if contact%>
+<br>致:<%contact%>
+<%end contact%>
+<%if vendorphone%>
+<br>電話: <%vendorphone%>
+<%end vendorphone%>
+<%if vendorfax%>
+<br>傳真: <%vendorfax%>
+<%end vendorfax%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddr2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%> <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+<br>
+<%if shiptocontact%>
+<br>致: <%shiptocontact%>
+<%end shiptocontact%>
+<%if shiptophone%>
+<br>電話: <%shiptophone%>
+<%end shiptophone%>
+<%if shiptofax%>
+<br>傳真: <%shiptofax%>
+<%end shiptofax%>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr><td>&nbsp;</td></tr>
+
+ <tr>
+ <td colspan=2>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left>è¦æ±‚報價單編號</th>
+ <th width=17% align=left>日期</th>
+ <th width=17% align=left>è¦æ±‚交付日期</th>
+ <th width=17% align=left>è¯çµ¡äºº</th>
+ <th width=17% align=left>付é‹é»ž</th>
+ <th width=15% align=left>付é‹å…¬å¸</th>
+ </tr>
+
+ <tr>
+ <td><%quonumber%></td>
+ <td><%quodate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height="10"></tr>
+
+ <tr>
+ <td>è«‹æ供以下物å“的價格和交付時間:</td>
+ </tr>
+
+ <tr height="10"></tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr>
+<!-- <th align=right>No.</th> -->
+ <th align=left>號碼</th>
+ <th align=left><font color=ffffff>æè¿°</th>
+ <th>數é‡</th>
+ <th>&nbsp;</th>
+ <th>交付</th>
+ <th>單價</th>
+ <th>總價</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+<!-- <td align=right><%runningnumber%>.</td>
+other per line item variables available <%reqdate%>
+adjust the colspan if you include this to shift subtotal one to the right
+-->
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=7><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+<%if notes%>
+ <tr valign=top>
+ <td>備註</td>
+ <td><%notes%></td>
+ </tr>
+<%end notes%>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=70%>&nbsp;</td>
+
+ <td width=30%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Traditional_Chinese_UTF8-request_quotation.tex b/templates/Traditional_Chinese_UTF8-request_quotation.tex
new file mode 100755
index 00000000..cf95dd89
--- /dev/null
+++ b/templates/Traditional_Chinese_UTF8-request_quotation.tex
@@ -0,0 +1,151 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
+ & \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Extended} \\
+ & carried forward from <%lastpage%> & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+\textbf{To}
+\vspace{0.3cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if vendorphone%>
+Tel: <%vendorphone%>
+<%end vendorphone%>
+
+<%if vendorfax%>
+Fax: <%vendorfax%>
+<%end vendorfax%>
+
+<%email%>
+}
+\parbox[t]{.5\textwidth}{
+\textbf{Ship To}
+\vspace{0.3cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{R E Q U E S T for Q U O T A T I O N}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{RFQ \#} & \textbf{Date} & \textbf{Required by} & \textbf{Contact} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5ex]
+ \hline
+ <%quonumber%> & <%quodate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+Please provide price and delivery time for the following items:
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}lXrllrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} & &
+ \textbf{Delivery} & \textbf{Unit Price} & \textbf{Extended} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> & <%unit%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\hfill
+
+<%notes%>
+
+}
+
+\end{document}
+
diff --git a/templates/Traditional_Chinese_UTF8-sales_order.html b/templates/Traditional_Chinese_UTF8-sales_order.html
new file mode 100755
index 00000000..642b3084
--- /dev/null
+++ b/templates/Traditional_Chinese_UTF8-sales_order.html
@@ -0,0 +1,245 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=bottom>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=64 height=58></th>
+
+ <td align=right>
+ <h4>
+ 電話: <%tel%>
+ <br>傳真: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>銷貨單</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>致</th>
+ <th align=left width=50%><font color=ffffff>付é‹å¾€</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%>
+ <br><%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+ <%if contact%>
+ <br>致: <%contact%>
+ <%end contact%>
+ <%if customerphone%>
+ <br>電話: <%customerphone%>
+ <%end customerphone%>
+ <%if customerfax%>
+ <br>傳真: <%customerfax%>
+ <%end customerfax%>
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%>
+ <br><%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ <br>
+ <%if shiptocontact%>
+ <br><%shiptocontact%>
+ <%end shiptocontact%>
+ <%if shiptophone%>
+ <br>電話: <%shiptophone%>
+ <%end shiptophone%>
+ <%if shiptofax%>
+ <br>傳真: <%shiptofax%>
+ <%end shiptofax%>
+ <%if shiptoemail%>
+ <br><%shiptoemail%>
+ <%end shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>訂單編號</th>
+ <th width=17% align=left>è½è¨‚日期</th>
+ <th width=17% align=left>è¦æ±‚交付日期</th>
+ <th width=17% align=left nowrap>銷售人員</th>
+ <th width=17% align=left nowrap>付é‹é»ž</th>
+ <th width=15% align=left nowrap>付é‹å…¬å¸</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%></td>
+ <td><%orddate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>號碼</th>
+ <th align=left><font color=ffffff>號碼</th>
+ <th align=left><font color=ffffff>æè¿°</th>
+ <th><font color=ffffff>數é‡</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>價格</th>
+ <th><font color=ffffff>折扣 %</th>
+ <th><font color=ffffff>金é¡</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%>.</td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discountrate%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <td colspan=8><hr noshade></td>
+ </tr>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=6 align=right>åˆè¨ˆ</th>
+ <td colspan=2 align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=6 align=right>å°è¨ˆ</th>
+ <td colspan=2 align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=6 align=right><%taxdescription%> 基於 <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <tr>
+ <td colspan=4>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=4>
+ <%text_amount%> ***** <%decimal%>/100
+ <%if terms%>
+ <br>有效期為淨<b><%terms%></b>日
+ <%end terms%>
+ </td>
+ <th colspan=2 align=right>åˆè¨ˆ</th>
+ <th colspan=2 align=right><%ordtotal%></th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <%if notes%>
+ <td>備註</td>
+ <td><%notes%></td>
+ <%end notes%>
+ <td align=right nowrap>
+ 所有價格å‡ç‚º<b><%currency%></b>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=60%><font size=-3>
+ è‹¥è¦å–消訂購特價å“的訂單,須支付10%的訂單å–消費用。
+ </font>
+ </td>
+ <td width=40%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+</table>
+
+</body>
+</html>
diff --git a/templates/Traditional_Chinese_UTF8-sales_order.tex b/templates/Traditional_Chinese_UTF8-sales_order.tex
new file mode 100755
index 00000000..60f7bfeb
--- /dev/null
+++ b/templates/Traditional_Chinese_UTF8-sales_order.tex
@@ -0,0 +1,177 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
+ & \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+
+\begin{tabularx}{\textwidth}{@{}rlXrlrrr@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+ & carried forward from <%lastpage%> & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+\textbf{To}
+\vspace{0.3cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\parbox[t]{.5\textwidth}{
+\textbf{Ship To}
+\vspace{0.3cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{S A L E S} \parbox{0.3cm}{\hfill} \textbf{O R D E R}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Order Date} & \textbf{Required by} & \textbf{Salesperson} & \textbf{Shipping Point} & \textbf{Ship Via} \\ [0.5em]
+ \hline
+ <%ordnumber%> & <%orddate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrlrrr@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%discountrate%> & <%linetotal%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
+ & Subtotal & <%subtotal%> \\
+<%foreach tax%>
+ & <%taxdescription%> on <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ & Total & <%ordtotal%>\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100
+\hfill
+All prices in \textbf{<%currency%>}.
+
+<%if terms%>
+Terms: <%terms%> days
+<%end terms%>
+
+\vspace{12pt}
+
+<%notes%>
+
+}
+
+\vfill
+
+\centerline{\textbf{Thank You for your valued business!}}
+
+\rule{\textwidth}{0.5pt}
+
+\end{document}
+
diff --git a/templates/Traditional_Chinese_UTF8-sales_quotation.html b/templates/Traditional_Chinese_UTF8-sales_quotation.html
new file mode 100755
index 00000000..94634d3a
--- /dev/null
+++ b/templates/Traditional_Chinese_UTF8-sales_quotation.html
@@ -0,0 +1,225 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+<tr valign=bottom>
+ <td width=10>&nbsp;</td>
+ <td>
+
+ <table width=100%>
+ <tr valign=top>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=64 height=58></th>
+
+ <td align=right>
+ <h4>
+ 電話: <%tel%>
+ <br>傳真: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+<tr><td colspan=3>&nbsp;</td></tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>報價單</h4>
+ </th>
+ </tr>
+
+ </table>
+
+ <table width=100% callspacing=0 cellpadding=0>
+
+ <tr>
+ <td>
+ <table width=100%>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+
+ <br>
+ <%if contact%>
+ <br>致: <%contact%>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>電話: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>傳真: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr><td>&nbsp;</td></tr>
+
+ <tr>
+ <td colspan=2>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>號碼</th>
+ <th width=17% align=left>日期</th>
+ <th width=17% align=left>有效期</th>
+ <th width=17% align=left nowrap>è¯çµ¡äºº</th>
+ <th width=17% align=left nowrap>付é‹é»ž</th>
+ <th width=15% align=left nowrap>付é‹å…¬å¸</th>
+ </tr>
+
+ <tr>
+ <td><%quonumber%></td>
+ <td><%quodate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>號碼</th>
+ <th align=left><font color=ffffff>號碼</th>
+ <th align=left><font color=ffffff>æè¿°</th>
+ <th><font color=ffffff>數é‡</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>價格</th>
+ <th><font color=ffffff>折扣 %</th>
+ <th><font color=ffffff>金é¡</th>
+ </tr>
+
+<%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%></td>
+
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discountrate%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+<%end number%>
+
+ <tr>
+ <td colspan=8><hr noshade></td>
+ </tr>
+
+ <tr>
+<%if taxincluded%>
+ <th colspan=6 align=right>åˆè¨ˆ</th>
+ <td colspan=2 align=right><%invtotal%></td>
+<%end taxincluded%>
+
+<%if not taxincluded%>
+ <th colspan=6 align=right>å°è¨ˆ</th>
+ <td colspan=2 align=right><%subtotal%></td>
+<%end taxincluded%>
+ </tr>
+
+<%foreach tax%>
+ <tr>
+ <th colspan=6 align=right><%taxdescription%> 基於 <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+<%end tax%>
+
+ <tr>
+ <td colspan=4>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=4>&nbsp;
+<%if terms%>
+ 有效期為淨<b><%terms%></b>日
+<%end terms%>
+ </td>
+ <th colspan=2 align=right>åˆè¨ˆ</th>
+ <th colspan=2 align=right><%quototal%></th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+<%if notes%>
+ <td>備註</td>
+ <td><%notes%></td>
+<%end notes%>
+ <td align=right>
+ 所有價格å‡ç‚º<b><%currency%></b>
+ </td>
+ </tr>
+
+ </table>
+ </td>
+</tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=60%><font size=-3>
+è‹¥è¦å–消訂購特價å“的訂單,須支付10%的訂單å–消費用。
+ </font>
+ </td>
+ <td width=40%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Traditional_Chinese_UTF8-sales_quotation.tex b/templates/Traditional_Chinese_UTF8-sales_quotation.tex
new file mode 100755
index 00000000..771fe6a3
--- /dev/null
+++ b/templates/Traditional_Chinese_UTF8-sales_quotation.tex
@@ -0,0 +1,148 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\newsavebox{\ftr}
+\sbox{\ftr}{
+ \parbox{\textwidth}{
+ \tiny
+ \rule[1.5em]{\textwidth}{0.5pt}
+Special order items are subject to a 10\% cancellation fee.
+ }
+}
+
+<%include letterhead.tex%>
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
+ & \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%quonumber%>}{<%company%>\hfill <%quonumber%>}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+ & carried forward from <%lastpage%> & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+
+\vspace{1cm}
+
+\textbf{Q U O T A T I O N}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Quotation \#} & \textbf{Date} & \textbf{Valid until} & \textbf{Contact} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5ex]
+ \hline
+ <%quonumber%> & <%quodate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%discountrate%> & <%linetotal%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
+ & Subtotal & <%subtotal%> \\
+<%foreach tax%>
+ & <%taxdescription%> on <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ & Total & <%quototal%>\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+All prices in \textbf{<%currency%>}.
+
+<%if terms%>
+Terms: <%terms%> days
+<%end terms%>
+
+\vspace{12pt}
+
+<%notes%>
+
+}
+
+\vfill
+
+\hfill \parbox{7cm}{X \rule{6.5cm}{0.5pt}}
+
+\rule{\textwidth}{0.5pt}
+
+\usebox{\ftr}
+
+\end{document}
+
diff --git a/templates/Traditional_Chinese_UTF8-statement.html b/templates/Traditional_Chinese_UTF8-statement.html
new file mode 100755
index 00000000..531b4c48
--- /dev/null
+++ b/templates/Traditional_Chinese_UTF8-statement.html
@@ -0,0 +1,134 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=64 height=58></th>
+ <td align=right>
+ <h4>
+ 電話: <%tel%>
+ <br>傳真: <%fax%>
+ </h4>
+ </td>
+ </tr>
+ <tr>
+ <th colspan=3><h4>會計帳</h4></th>
+ </tr>
+ <tr>
+ <td colspan=3 align=right><%statementdate%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%> <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+<%if customerphone%>
+ <br>電話: <%customerphone%>
+<%end customerphone%>
+<%if customerfax%>
+ <br>傳真: <%customerfax%>
+<%end customerfax%>
+<%if email%>
+ <br><%email%>
+<%end email%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr height=10></tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>
+ <table width=100%>
+ <tr>
+ <th align=left>發票編號</th>
+ <th align=left>訂單編號</th>
+<th align=left>備註</th>
+ <th width=10%>發票日期</th>
+ <th width=10%>到期日</th>
+ <th width=10%>ç›®å‰</th>
+ <th width=10%>30</th>
+ <th width=10%>60</th>
+ <th width=10%>90+</th>
+ </tr>
+<%foreach invnumber%>
+ <tr>
+ <td><%invnumber%></td>
+<td><%ordnumber%></td>
+<td><%notes%></td>
+ <td><%invdate%></td>
+ <td><%duedate%></td>
+ <td align=right><%c0%></td>
+ <td align=right><%c30%></td>
+ <td align=right><%c60%></td>
+ <td align=right><%c90%></td>
+ </tr>
+<%end invnumber%>
+ <tr>
+ <td colspan=9><hr size=1></td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <th align=right><%c0total%></td>
+ <th align=right><%c30total%></td>
+ <th align=right><%c60total%></td>
+ <th align=right><%c90total%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr height=10></tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td align=right>
+ <table width=50%>
+ <tr>
+ <th>åˆè¨ˆé¤˜é¡</th>
+ <th align=right><%total%></th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td><hr noshade></td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>支票抬頭請寫<b><%company%></b>。
+ </td>
+ </tr>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Traditional_Chinese_UTF8-statement.tex b/templates/Traditional_Chinese_UTF8-statement.tex
new file mode 100755
index 00000000..0beb6c64
--- /dev/null
+++ b/templates/Traditional_Chinese_UTF8-statement.tex
@@ -0,0 +1,78 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+\parbox[t]{.5\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+}
+\parbox[t]{.5\textwidth}{
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{S T A T E M E N T} \hfill \textbf{<%statementdate%>}
+
+\vspace{2cm}
+
+\begin{tabular*}{\textwidth}{|ll@{\extracolsep\fill}ccrrrr|}
+ \hline
+ \textbf{Invoice \#} & \textbf{Order \#} & \textbf{Date} & \textbf{Due} &
+ \textbf{Current} & \textbf{30} & \textbf{60} & \textbf{90} \\
+ \hline
+<%foreach invnumber%>
+ <%invnumber%> & <%ordnumber%> & <%invdate%> & <%duedate%> &
+ <%c0%> & <%c30%> & <%c60%> & <%c90%> \\
+<%end invnumber%>
+ \multicolumn{8}{|l|}{\mbox{}} \\
+ \hline
+ \textbf{Subtotal} & & & & <%c0total%> & <%c30total%> & <%c60total%> & <%c90total%> \\
+ \hline
+\end{tabular*}
+
+\vspace{0.5cm}
+
+\hfill
+\begin{tabularx}{\textwidth}{Xr@{\hspace{1cm}}r@{}}
+ & \textbf{Total outstanding} & \textbf{<%total%>}
+\end{tabularx}
+
+\vfill
+All amounts in \textbf{<%currency%>} funds.
+
+Please make check payable to \textbf{<%company%>}
+
+\end{document}
+
diff --git a/templates/Traditional_Chinese_UTF8-timecard.html b/templates/Traditional_Chinese_UTF8-timecard.html
new file mode 100755
index 00000000..b2740149
--- /dev/null
+++ b/templates/Traditional_Chinese_UTF8-timecard.html
@@ -0,0 +1,146 @@
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=sql-ledger.png border=0 width=84 height=58></th>
+
+ <td align=right>
+ <h4>
+ 電話: <%tel%>
+ <br>傳真: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <hr noshade><br>
+ <h4>工時å¡</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=left>è·å“¡</th>
+ <td><%employee%></td>
+ </tr>
+ <tr>
+ <th align=left>編號</th>
+ <td><%employee_id%></td>
+ </tr>
+ </table>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>å¡è™Ÿ</th>
+ <td><%id%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>上ç­æ—¥æœŸ</th>
+ <td><%transdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>上ç­æ™‚é–“</th>
+ <td><%checkedin%></td>
+ </tr>
+ <tr>
+ <th align=left>下ç­æ™‚é–“</th>
+ <td><%checkedout%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>工作時數</th>
+ <td><%qty%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=bottom>
+ <td>
+ <table>
+ <tr valign=top>
+ <th align=left>方案/工作編號</th>
+ <td><%projectnumber%></td>
+ </tr>
+ <tr>
+ <th align=left>摘è¦</th>
+ <td><%projectdescription%></td>
+ </tr>
+ <tr valign=top>
+ <th align=left>å‹žå·¥/æœå‹™ä»£ç¢¼</th>
+ <td><%partnumber%></td>
+ </tr>
+ <tr>
+ <th align=left>摘è¦</th>
+ <td><%description%></td>
+ </tr>
+ </table>
+ </td>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>單價</th>
+ <td><%sellprice%></td>
+ </tr>
+ <tr>
+ <th align=right>åˆè¨ˆ</th>
+ <td><%total%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+<%if notes%>
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%notes%>
+ </td>
+ </tr>
+<%end notes%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/Traditional_Chinese_UTF8-timecard.tex b/templates/Traditional_Chinese_UTF8-timecard.tex
new file mode 100755
index 00000000..b7630a00
--- /dev/null
+++ b/templates/Traditional_Chinese_UTF8-timecard.tex
@@ -0,0 +1,52 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+\centerline{\textbf{T I M E}\hspace{0.5cm}\textbf{C A R D}}
+
+\vspace*{0.5cm}
+
+\begin{tabular}[t]{ll}
+ \textbf{Employee} & <%employee%> \\
+ \textbf{ID} & <%employee_id%> \\
+\end{tabular}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Card ID} & <%id%> \\
+ \textbf{Date} & <%transdate%> \\
+ \textbf{In} & <%checkedin%> \\
+ \textbf{Out} & <%checkedout%> \\
+ \textbf{Hours} & <%qty%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular}[b]{ll}
+ \textbf{Job/Project \#} & <%projectnumber%> \\
+ \textbf{Description} & <%projectdescription%> \\
+ \textbf{Labor/Service Code} & <%partnumber%> \\
+ \textbf{Description} & <%description%> \\
+\end{tabular}
+\hfill
+\begin{tabular}[b]{lr}
+ \textbf{Rate} & <%sellprice%> \\
+ \textbf{Total} & <%total%> \\
+\end{tabular}
+
+\vspace{0.3cm}
+
+<%notes%>
+
+\end{document}
+
diff --git a/templates/Traditional_Chinese_UTF8-work_order.html b/templates/Traditional_Chinese_UTF8-work_order.html
new file mode 100755
index 00000000..587e5146
--- /dev/null
+++ b/templates/Traditional_Chinese_UTF8-work_order.html
@@ -0,0 +1,177 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=bottom>
+ <td>
+ <h4>
+ <%company%>
+ <br><%address%>
+ </h4>
+ </td>
+
+ <th><img src=http://www.sql-ledger.org/images/sql-ledger.png border=0 width=64 height=58></th>
+
+ <td align=right>
+ <h4>
+ 電話: <%tel%>
+ <br>傳真: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <th colspan=3>
+ <h4>工作單</h4>
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>致</th>
+ <th align=left width=50%><font color=ffffff>付é‹å¾€</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%> <%state%>
+ <br><%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+ <%if contact%>
+ <br>致: <%contact%>
+ <%end contact%>
+ <%if customerphone%>
+ <br>電話: <%customerphone%>
+ <%end customerphone%>
+ <%if customerfax%>
+ <br>傳真: <%customerfax%>
+ <%end customerfax%>
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%> <%shiptostate%>
+ <br><%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ <br>
+ <%if shiptocontact%>
+ <br><%shiptocontact%>
+ <%end shiptocontact%>
+ <%if shiptophone%>
+ <br>電話: <%shiptophone%>
+ <%end shiptophone%>
+ <%if shiptofax%>
+ <br>傳真: <%shiptofax%>
+ <%end shiptofax%>
+ <%if shiptoemail%>
+ <br><%shiptoemail%>
+ <%end shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>訂單編號</th>
+ <th width=17% align=left>è½è¨‚日期</th>
+ <th width=17% align=left>è¦æ±‚交付日期</th>
+ <th width=17% align=left nowrap>銷售人員</th>
+ <th width=17% align=left nowrap>付é‹é»ž</th>
+ <th width=15% align=left nowrap>付é‹å…¬å¸</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%></td>
+ <td><%orddate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>號碼</th>
+ <th align=left><font color=ffffff>號碼</th>
+ <th align=left><font color=ffffff>æè¿°</th>
+ <th><font color=ffffff>數é‡</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>ç®±</th>
+ <th><font color=ffffff>åºè™Ÿ</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%>.</td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td><%bin%></td>
+ <td><%serialnumber%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <td colspan=7><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <%if notes%>
+ <td><%notes%></td>
+ <%end notes%>
+ </tr>
+</table>
+
+</body>
+</html>
+
+
diff --git a/templates/Traditional_Chinese_UTF8-work_order.tex b/templates/Traditional_Chinese_UTF8-work_order.tex
new file mode 100755
index 00000000..c8d48172
--- /dev/null
+++ b/templates/Traditional_Chinese_UTF8-work_order.tex
@@ -0,0 +1,141 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\begin{tabularx}{\textwidth}{@{}rlXrll@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ & \textbf{Serial Number} \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+\textbf{To}
+\vspace{0.3cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\parbox[t]{.5\textwidth}{
+\textbf{Ship To}
+\vspace{0.3cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{W O R K} \parbox{0.3cm}{\hfill} \textbf{O R D E R}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Order Date} & \textbf{Required by} & \textbf{Salesperson} & \textbf{Shipping Point} & \textbf{Ship Via} \\ [0.5em]
+ \hline
+ <%ordnumber%> & <%orddate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrll@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ & \textbf{Serial Number} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%serialnumber%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{12pt}
+
+<%notes%>
+}
+
+\vfill
+
+\end{document}
+
diff --git a/templates/demo/ap_transaction.html b/templates/demo/ap_transaction.html
new file mode 100644
index 00000000..2ab4d5e5
--- /dev/null
+++ b/templates/demo/ap_transaction.html
@@ -0,0 +1,228 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>A P - T R A N S A C T I O N</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if vendorphone%>
+ <br>Tel: <%vendorphone%>
+ <%end vendorphone%>
+
+ <%if vendorfax%>
+ <br>Fax: <%vendorfax%>
+ <%end vendorfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+
+ <%if vendortaxnumber%>
+ <p>Taxnumber: <%vendortaxnumber%>
+ <%end vendortaxnumber%>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Invoice #</th>
+ <td><%invnumber%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Date</th>
+ <td><%invdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Due</th>
+ <td><%duedate%></td>
+ </tr>
+ <%if ponumber%>
+ <tr>
+ <th align=left>PO #</th>
+ <td><%ponumber%>&nbsp;</td>
+ </tr>
+ <%end ponumber%>
+ <%if ordnumber%>
+ <tr>
+ <th align=left>Order #</th>
+ <td><%ordnumber%>&nbsp;</td>
+ </tr>
+ <%end ordnumber%>
+ <tr>
+ <th align=left nowrap>Employee</th>
+ <td><%employee%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <%foreach account%>
+ <tr valign=top>
+ <td><%accno%></td>
+ <td><%account%></td>
+ <td width=10> </td>
+ <td align=right><%amount%></td>
+ <td width=10> </td>
+ <td><%description%></td>
+ <td width=10> </td>
+ <td><%projectnumber%></td>
+ </tr>
+ <%end account%>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td width=10> </td>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Subtotal</th>
+ <td width=10> </td>
+ <td align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=2 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td width=10> </td>
+ <td align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if not taxincluded%>
+ <tr>
+ <th colspan=2 align=right>Total</th>
+ <td width=10> </td>
+ <td align=right><%invtotal%></td>
+ </tr>
+ <%end taxincluded%>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%text_amount%> ***** <%decimal%>/100 <%currency%>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%notes%>
+ </td>
+ </tr>
+
+ <%if paid_1%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <tr>
+ <th>Payments</th>
+ </tr>
+
+ <tr>
+ <td>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th>Date</th>
+ <th>&nbsp;</th>
+ <th>Source</th>
+ <th>Memo</th>
+ <th>Amount</th>
+ </tr>
+ <%end paid_1%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td><%paymentmemo%></td>
+ <td align=right><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid_1%>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <%end paid_1%>
+
+ <tr height=10></tr>
+
+ <%if taxincluded%>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <th colspan=3 align=left><font size=-2>Taxes shown are included in price.</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/demo/ap_transaction.tex b/templates/demo/ap_transaction.tex
new file mode 100644
index 00000000..5cd134cc
--- /dev/null
+++ b/templates/demo/ap_transaction.tex
@@ -0,0 +1,111 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+\setlength{\parindent}{0pt}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+\centerline{\textbf{A P} \hspace{0.3cm} \textbf{T R A N S A C T I O N}}
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state>
+\hspace{-0.1cm}, <%state%>
+<%end state%> <%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if vendorphone%>
+Tel: <%vendorphone%>
+<%end vendorphone%>
+
+<%if vendorfax%>
+Fax: <%vendorfax%>
+<%end vendorfax%>
+
+<%email%>
+
+<%if vendortaxnumber%>
+Tax Number: <%vendortaxnumber%>
+<%end vendortaxnumber%>
+}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Invoice \#} & <%invnumber%> \\
+ \textbf{Date} & <%invdate%> \\
+ \textbf{Due} & <%duedate%> \\
+ <%if ponumber%>
+ \textbf{PO \#} & <%ponumber%> \\
+ <%end ponumber%>
+ <%if ordnumber%>
+ \textbf{Order \#} & <%ordnumber%> \\
+ <%end ordnumber%>
+ \textbf{Employee} & <%employee%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}[t]{@{}llrX@{\hspace{1cm}}l@{}}
+<%foreach amount%>
+ <%accno%> & <%account%> & <%amount%> & <%description%> & <%projectnumber%> \\
+<%end amount%>
+
+ \multicolumn{2}{r}{\textbf{Subtotal}} & <%subtotal%> & \\
+<%foreach tax%>
+ \multicolumn{2}{r}{\textbf{<%taxdescription%> @ <%taxrate%> \%}} & <%tax%> & \\
+<%end tax%>
+
+ \multicolumn{2}{r}{\textbf{Total}} & <%invtotal%> & \\
+
+\end{tabularx}
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100 <%currency%>
+
+<%if notes%>
+\vspace{0.3cm}
+<%notes%>
+<%end notes%>
+
+\vspace{0.3cm}
+
+<%if paid_1%>
+\begin{tabular}{@{}llllr@{}}
+ \multicolumn{5}{c}{\textbf{Payments}} \\
+ \hline
+ \textbf{Date} & & \textbf{Source} & \textbf{Memo} & \textbf{Amount} \\
+<%end paid_1%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%paymentmemo%> & <%payment%> \\
+<%end payment%>
+<%if paid_1%>
+\end{tabular}
+<%end paid_1%>
+
+\end{document}
+
diff --git a/templates/demo/ar_transaction.html b/templates/demo/ar_transaction.html
new file mode 100644
index 00000000..f8b8e95e
--- /dev/null
+++ b/templates/demo/ar_transaction.html
@@ -0,0 +1,234 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>A R - T R A N S A C T I O N</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+
+ <%if customertaxnumber%>
+ <br>Taxnumber: <%customertaxnumber%>
+ <%end customertaxnumber%>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Invoice #</th>
+ <td><%invnumber%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Date</th>
+ <td><%invdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Due</th>
+ <td><%duedate%></td>
+ </tr>
+ <%if ponumber%>
+ <tr>
+ <th align=left>PO #</th>
+ <td><%ponumber%>&nbsp;</td>
+ </tr>
+ <%end ponumber%>
+ <%if ordnumber%>
+ <tr>
+ <th align=left>Order #</th>
+ <td><%ordnumber%>&nbsp;</td>
+ </tr>
+ <%end ordnumber%>
+ <tr>
+ <th align=left nowrap>Salesperson</th>
+ <td><%employee%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <%foreach account%>
+ <tr valign=top>
+ <td><%accno%></td>
+ <td><%account%></td>
+ <td width=10>&nbsp</td>
+ <td align=right><%amount%></td>
+ <td width=10>&nbsp</td>
+ <td><%description%></td>
+ <td width=10>&nbsp</td>
+ <td><%projectnumber%></td>
+ </tr>
+ <%end account%>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=2 align=right>Total</th>
+ <td width=10>&nbsp</td>
+ <td align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=2 align=right>Subtotal</th>
+ <td width=10>&nbsp</td>
+ <td align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=2 align=right><%taxdescription%> @ <%taxrate%> %</th>
+ <td width=10>&nbsp</td>
+ <td align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if not taxincluded%>
+ <tr>
+ <th colspan=2 align=right>Total</th>
+ <td width=10>&nbsp</td>
+ <td align=right><%invtotal%></td>
+ </tr>
+ <%end taxincluded%>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%text_amount%> ***** <%decimal%>/100 <%currency%>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%notes%>
+ </td>
+ </tr>
+
+ <%if paid_1%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table>
+ <tr>
+ <th>Payments</th>
+ </tr>
+
+ <tr>
+ <td>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th>Date</th>
+ <th>&nbsp;</th>
+ <th>Source</th>
+ <th>Amount</th>
+ </tr>
+ <%end paid_1%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td align=right><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid_1%>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <%end paid_1%>
+
+ <tr height=10></tr>
+
+ <%foreach tax%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <th colspan=9 align=left><font size=-2><%taxdescription%> Registration <%taxnumber%></th>
+ </tr>
+ <%end tax%>
+
+ <%if taxincluded%>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <th colspan=3 align=left><font size=-2>Taxes shown are included in price.</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/demo/ar_transaction.tex b/templates/demo/ar_transaction.tex
new file mode 100644
index 00000000..1c3c44f3
--- /dev/null
+++ b/templates/demo/ar_transaction.tex
@@ -0,0 +1,118 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+\setlength{\parindent}{0pt}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+\centerline{\textbf{A R} \hspace{0.3cm} \textbf{T R A N S A C T I O N}}
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+
+<%if customertaxnumber%>
+Tax Number: <%customertaxnumber%>
+<%end customertaxnumber%>
+}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Invoice \#} & <%invnumber%> \\
+ \textbf{Date} & <%invdate%> \\
+ \textbf{Due} & <%duedate%> \\
+ <%if ponumber%>
+ \textbf{PO \#} & <%ponumber%> \\
+ <%end ponumber%>
+ <%if ordnumber%>
+ \textbf{Order \#} & <%ordnumber%> \\
+ <%end ordnumber%>
+ \textbf{Employee} & <%employee%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}[t]{@{}llrX@{\hspace{1cm}}l@{}}
+<%foreach amount%>
+ <%accno%> & <%account%> & <%amount%> & <%description%> & <%projectnumber%> \\
+<%end amount%>
+
+ \multicolumn{2}{r}{\textbf{Subtotal}} & <%subtotal%> & \\
+<%foreach tax%>
+ \multicolumn{2}{r}{\textbf{<%taxdescription%> @ <%taxrate%> \%}} & <%tax%> & \\
+<%end tax%>
+
+ \multicolumn{2}{r}{\textbf{Total}} & <%invtotal%> & \\
+
+\end{tabularx}
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100 <%currency%>
+
+<%if notes%>
+\vspace{0.3cm}
+<%notes%>
+<%end notes%>
+
+\vspace{0.3cm}
+
+<%if paid_1%>
+\begin{tabular}{@{}lllr@{}}
+ \multicolumn{5}{c}{\textbf{Payments}} \\
+ \hline
+ \textbf{Date} & & \textbf{Source} & \textbf{Amount} \\
+<%end paid_1%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%payment%> \\
+<%end payment%>
+<%if paid_1%>
+\end{tabular}
+<%end paid_1%>
+
+\vspace{0.5cm}
+
+<%foreach tax%>
+\textbf{\scriptsize <%taxdescription%> Registration <%taxnumber%>} \\
+<%end tax%>
+
+\end{document}
+
diff --git a/templates/demo/balance_sheet.html b/templates/demo/balance_sheet.html
new file mode 100644
index 00000000..6ede0b9c
--- /dev/null
+++ b/templates/demo/balance_sheet.html
@@ -0,0 +1,105 @@
+
+<body>
+
+<h2 align=center>
+<%company%>
+<br><%address%>
+
+<p>BALANCE SHEET
+<br>as at <%this_period%>
+</h2>
+
+<%if department%>
+<h4>Department: <%department%></h4>
+<%end department%>
+
+<table border=0>
+<tr>
+ <th align=left width=400 colspan=2>ASSETS<br><hr align=left width=250 size=5 noshade></th>
+ <th><%this_period%></th>
+ <th><%last_period%></th>
+</tr>
+
+<%foreach asset_account%>
+<tr>
+ <td> </td>
+ <td><%asset_account%></td>
+ <td align=right><%asset_this_period%></td>
+ <td align=right><%asset_last_period%></td>
+</tr>
+<%end asset_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>TOTAL ASSETS</th>
+ <td align=right><%total_assets_this_period%><hr noshade size=2></td>
+ <td align=right><%total_assets_last_period%><hr noshade size=2></td>
+</tr>
+
+<tr>
+ <th align=left colspan=4>LIABILITIES<b><hr align=left width=250 size=5 noshade></th>
+</tr>
+
+<%foreach liability_account%>
+<tr>
+ <td></td>
+ <td><%liability_account%></td>
+ <td align=right><%liability_this_period%></td>
+ <td align=right><%liability_last_period%></td>
+</tr>
+<%end liability_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td></td>
+ <th align=left>TOTAL LIABILITIES</th>
+ <td align=right><%total_liabilities_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_liabilities_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr>
+ <th align=left colspan=4>SHAREHOLDER'S EQUITY<br><hr align=left width=250 size=5 noshade></th>
+</tr>
+
+<%foreach equity_account%>
+<tr>
+ <td></td>
+ <td><%equity_account%></td>
+ <td align=right><%equity_this_period%></td>
+ <td align=right><%equity_last_period%></td>
+</tr>
+<%end equity_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td></td>
+ <th align=left>TOTAL EQUITY</th>
+ <td align=right><%total_equity_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_equity_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>TOTAL LIABILITIES & EQUITY</th>
+ <td align=right><%total_this_period%><br><hr noshade size=2></td>
+ <td align=right><%total_last_period%><br><hr noshade size=2></td>
+</tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/demo/bin_list.html b/templates/demo/bin_list.html
new file mode 100644
index 00000000..93abb57d
--- /dev/null
+++ b/templates/demo/bin_list.html
@@ -0,0 +1,179 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>B I N &nbsp;&nbsp; L I S T</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% cellspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>From</th>
+ <th align=left width=50%><font color=ffffff>Ship To</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+
+ <%if vendorphone%>
+ <br>Tel: <%vendorphone%>
+ <%end vendorphone%>
+
+ <%if vendorfax%>
+ <br>Fax: <%vendorfax%>
+ <%end vendorfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%>
+ <%if shiptostate%>
+ , <%shiptostate%>
+ <%end shiptostate%>
+ <%shiptozipcode%>
+ <%if shiptocountry%>
+ <%shiptocountry%>
+ <%end shiptocountry%>
+
+ <br>
+ <%if shiptocontact%>
+ <br>Attn: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Order #</th>
+ <th width=17% align=left nowrap>Date</th>
+ <th width=17% align=left nowrap>Contact</th>
+ <%if warehouse%>
+ <th width=17% align=left nowrap>Warehouse</th>
+ <%end warehouse%>
+ <th width=17% align=left>Shipping Point</th>
+ <th width=15% align=left>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%>&nbsp;</td>
+
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%orddate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+
+ <%if warehouse%>
+ <td><%warehouse%></td>
+ <%end warehouse%>
+
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Item</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Serialnumber</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Qty</th>
+ <th><font color=ffffff>Recd</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Bin</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%></td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td><%serialnumber%></td>
+ <td><%deliverydate%></td>
+ <td align=right><%qty%></td>
+ <td align=right><%ship%></td>
+ <td><%unit%></td>
+ <td><%bin%></td>
+ </tr>
+ <%end number%>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/demo/bin_list.tex b/templates/demo/bin_list.tex
new file mode 100644
index 00000000..1bc85d66
--- /dev/null
+++ b/templates/demo/bin_list.tex
@@ -0,0 +1,114 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrll@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Recd} & & \textbf{Bin} \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+\textbf{From}
+\vspace{0.3cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+}
+\parbox[t]{.5\textwidth}{
+\textbf{Ship To}
+\vspace{0.3cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{B I N} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Date} & \textbf{Contact}
+ <%if warehouse%>
+ & \textbf{Warehouse}
+ <%end warehouse%>
+ & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+
+ <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%orddate%>
+ <%end shippingdate%>
+ & <%employee%>
+ <%if warehouse%>
+ & <%warehouse%>
+ <%end warehouse%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrll@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Recd} & & \textbf{Bin} \\
+
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%serialnumber%> &
+ <%deliverydate%> & <%qty%> & <%ship%> & <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabularx}
+
+
+\rule{\textwidth}{2pt}
+
+\end{document}
+
diff --git a/templates/demo/check.tex b/templates/demo/check.tex
new file mode 100644
index 00000000..908f0e79
--- /dev/null
+++ b/templates/demo/check.tex
@@ -0,0 +1,77 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{9pt}{9pt}\selectfont
+
+\parbox[t]{12cm}{
+ <%company%>
+
+ <%address%>}
+\hfill
+\parbox[t]{6cm}{\hfill <%source%>}
+
+\vspace*{0.6cm}
+
+<%text_amount%> \dotfill <%decimal%>/100 \makebox[0.5cm]{\hfill}
+
+\vspace{0.5cm}
+
+\hfill <%datepaid%> \makebox[2cm]{\hfill} <%amount%>
+
+% different date format for datepaid
+% <%DD%><%MM%><%YYYY%>
+
+\vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{1.8cm}
+
+<%memo%>
+
+\vspace{0.8cm}
+
+<%company%>
+
+\vspace{0.5cm}
+
+<%name%> \hfill <%datepaid%> \hfill <%source%>
+
+\vspace{0.5cm}
+\begin{tabularx}{\textwidth}{lXrr@{}}
+\textbf{Invoice \#} & \textbf{Invoice Date}
+ & \textbf{Amount Due} & \textbf{Applied} \\
+<%foreach invnumber%>
+<%invnumber%> & <%invdate%> \dotfill
+ & <%due%> & <%paid%> \\
+<%end invnumber%>
+\end{tabularx}
+
+\vspace{1cm}
+
+<%memo%>
+
+\vfill
+
+\end{document}
+
diff --git a/templates/demo/income_statement.html b/templates/demo/income_statement.html
new file mode 100644
index 00000000..d5221d63
--- /dev/null
+++ b/templates/demo/income_statement.html
@@ -0,0 +1,85 @@
+
+<body>
+
+<h2 align=center>
+<%company%>
+<br><%address%>
+
+<p>INCOME STATEMENT
+<br><%period%>
+</h2>
+
+<%if department%>
+<h4>Department: <%department%></h4>
+<%end department%>
+
+<%if projectnumber%>
+<h4>Project Number: <%projectnumber%></h4>
+<%end projectnumber%>
+
+<table width=100% border=0>
+<tr>
+ <th width=400 align=left colspan=2>INCOME<br><hr width=300 size=5 align=left noshade></th>
+ <th><%this_period%></th>
+ <th><%last_period%></th>
+</tr>
+
+<%foreach income_account%>
+<tr>
+ <td width=4> </td>
+ <td><%income_account%></td>
+ <td align=right><%income_this_period%></td>
+ <td align=right><%income_last_period%></td>
+</tr>
+<%end income_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td> </td>
+ <th align=left>TOTAL INCOME</th>
+ <td align=right><%total_income_this_period%><hr noshade size=2></td>
+ <td align=right><%total_income_last_period%><hr noshade size=2></td>
+</tr>
+
+<tr>
+ <th align=left colspan=2>EXPENSES<br><hr width=300 size=5 align=left noshade></th>
+</tr>
+
+<%foreach expense_account%>
+<tr>
+ <td> </td>
+ <td><%expense_account%></td>
+ <td align=right><%expenses_this_period%></td>
+ <td align=right><%expenses_last_period%></td>
+</tr>
+<%end expense_account%>
+
+<tr>
+ <td colspan=2> </td>
+ <td><hr noshade size=1></td>
+ <td><hr noshade size=1></td>
+</tr>
+
+<tr valign=top>
+ <td> </td>
+ <th align=left>TOTAL EXPENSES</th>
+ <td align=right><%total_expenses_this_period%><br><hr noshade size=2</td>
+ <td align=right><%total_expenses_last_period%><br><hr noshade size=2</td>
+</tr>
+
+<tr valign=top>
+ <th align=left colspan=2>INCOME / (LOSS)</th>
+ <td align=right><%total_this_period%><br><hr noshade size=2></td>
+ <td align=right><%total_last_period%><br><hr noshade size=2></td>
+</tr>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/demo/invoice.html b/templates/demo/invoice.html
new file mode 100644
index 00000000..3356aed6
--- /dev/null
+++ b/templates/demo/invoice.html
@@ -0,0 +1,318 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>I N V O I C E</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>To</th>
+ <th align=left width=50%><font color=ffffff>Ship To</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br><%contact%>
+ <br>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%>
+ <%if shiptostate%>
+ , <%shiptostate%>
+ <%end shiptostate%>
+ <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ <br>
+
+ <%if shiptocontact%>
+ <br><%shiptocontact%>
+ <br>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%if shiptoemail%>
+ <br><%shiptoemail%>
+ <%end shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=14% align=left nowrap>Invoice #</th>
+ <th width=14% align=left nowrap>Date</th>
+ <th width=14% align=left nowrap>Due</th>
+ <th width=14% align=left>Order #</th>
+ <th width=14% align=left nowrap>Salesperson</th>
+ <th width=14% align=left nowrap>Shipping Point</th>
+ <th width=14% align=left nowrap>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%invnumber%></td>
+ <td><%invdate%></td>
+ <td><%duedate%></td>
+ <td><%ordnumber%>&nbsp;</td>
+ <td><%employee%>&nbsp;</td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>Item</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th>&nbsp;</th>
+ <th align=right><font color=ffffff>Qt'y</th>
+ <th>&nbsp;</th>
+ <th align=right><font color=ffffff>Unit Price</th>
+ <th align=right><font color=ffffff>Disc %</th>
+ <th align=right><font color=ffffff>Extended</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%>.</td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td><%deliverydate%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discountrate%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <td colspan=9><hr noshade></td>
+ </tr>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=7 align=right>Total</th>
+ <td colspan=2 align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=7 align=right>Subtotal</th>
+ <td colspan=2 align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=7 align=right><%taxdescription%> on <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <%if paid%>
+ <tr>
+ <th colspan=7 align=right>Paid</th>
+ <td colspan=2 align=right>- <%paid%></td>
+ </tr>
+ <%end paid%>
+
+ <tr>
+ <td colspan=5>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <%if total%>
+ <tr>
+ <td colspan=5>&nbsp;</td>
+ <th colspan=2 align=right nowrap>Balance Due</th>
+ <th colspan=2 align=right><%total%></th>
+ </tr>
+ <%end total%>
+
+ <tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <%if notes%>
+ <td><%notes%></td>
+ <%end notes%>
+
+ <td><%text_amount%> ***** <%decimal%>/100</td>
+
+ <td align=right nowrap>
+ All prices in <b><%currency%></b>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <%if paid_1%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td colspan=9>
+ <table width=60%>
+
+ <tr>
+ <th align=left>Payments</th>
+ </tr>
+
+ <tr>
+ <td colspan=4>
+ <hr noshade>
+ </td>
+ </tr>
+
+ <tr>
+ <th align=left>Date</th>
+ <th align=left>Account</th>
+ <th align=left>Source</th>
+ <th align=left>Amount</th>
+ </tr>
+ <%end paid_1%>
+
+ <%foreach payment%>
+ <tr>
+ <td><%paymentdate%></td>
+ <td><%paymentaccount%></td>
+ <td><%paymentsource%></td>
+ <td><%payment%></td>
+ </tr>
+ <%end payment%>
+
+ <%if paid_1%>
+ </table>
+ </td>
+ </tr>
+ <%end paid_1%>
+
+ <tr height=10></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <th>
+ Thank you for your valued business!
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=60%><font size=-3>
+ Payment due by <%duedate%>.
+ Items returned are subject to a 10% restocking charge. A return authorization must be obtained from <%company%> before goods are returned. Returns must be shipped prepaid and properly insured. <%company%> will not be responsible for damages during transit.
+ </font>
+ </td>
+
+ <td width=40%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <th colspan=9 align=left><font size=-2><%taxdescription%> Registration <%taxnumber%></th>
+ </tr>
+ <%end tax%>
+
+ <%if taxincluded%>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <tr>
+ <th colspan=8 align=left><font size=-2>Taxes shown are included in price.</th>
+ </tr>
+ <%end taxincluded%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/demo/invoice.tex b/templates/demo/invoice.tex
new file mode 100644
index 00000000..fa7145bf
--- /dev/null
+++ b/templates/demo/invoice.tex
@@ -0,0 +1,207 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\newsavebox{\ftr}
+\sbox{\ftr}{
+ \parbox{\textwidth}{
+ \tiny
+ \rule[1.5em]{\textwidth}{0.5pt}
+Payment due NET <%terms%> Days from date of Invoice. Interest on overdue amounts will acrue at the rate of 12\% per annum starting from <%duedate%> until paid in full. Items returned are subject to a 10\% restocking charge.
+A return authorization must be obtained from <%company%> before goods are returned. Returns must be shipped prepaid and properly insured.
+<%company%> will not be responsible for damages during transit.
+ }
+}
+
+<%include letterhead.tex%>
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \vspace{0.2cm}
+
+ \hfill
+ \begin{tabularx}{\textwidth}{Xr@{\hspace{1cm}}r@{}}
+ & Subtotal & <%sumcarriedforward%> \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%invnumber%>}{<%company%>\hfill <%invnumber%>}
+
+\begin{tabularx}{\textwidth}{@{}rlXlrlrrr@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} & & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\ [0.5em]
+ & carried forward from page <%lastpage%> & & & & & & & <%sumcarriedforward%> \\ [0.5em]
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+\textbf{To}
+\vspace{0.3cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\parbox[t]{.5\textwidth}{
+\textbf{Ship To}
+\vspace{0.3cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{I N V O I C E}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{7}{|X}|} \hline
+ \textbf{Invoice \#} & \textbf{Date} & \textbf{Due} & \textbf{Order \#}
+ & \textbf{Salesperson} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+ <%invnumber%> & <%invdate%> & <%duedate%> & <%ordnumber%> & <%employee%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXlrlrrr@{}}
+ \textbf{Pos} & \textbf{Number} & \textbf{Description} & & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\ [0.5em]
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%deliverydate%> &
+ <%qty%> & <%unit%> & <%sellprice%> & <%discountrate%> & <%linetotal%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
+ & Subtotal & <%subtotal%> \\
+<%foreach tax%>
+ & <%taxdescription%> on <%taxbase%> & <%tax%> \\
+<%end tax%>
+<%if paid%>
+ & Paid & - <%paid%> \\
+<%end paid%>
+ \hline
+<%if total%>
+ & Balance Due & <%total%>
+<%end total%>
+\end{tabularx}
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100
+\hfill
+All prices in \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%notes%>
+}
+
+\vfill
+
+<%if paid_1%>
+\begin{tabularx}{10cm}{@{}lXlr@{}}
+ \textbf{Payments} & & & \\
+ \hline
+ \textbf{Date} & & \textbf{Source} & \textbf{Amount} \\
+<%end paid_1%>
+<%foreach payment%>
+ <%paymentdate%> & <%paymentaccount%> & <%paymentsource%> & <%payment%> \\
+<%end payment%>
+<%if paid_1%>
+\end{tabularx}
+<%end paid_1%>
+
+\vspace{1cm}
+
+\centerline{\textbf{Thank You for your valued business!}}
+
+\rule{\textwidth}{0.5pt}
+
+\usebox{\ftr}
+
+\end{document}
+
diff --git a/templates/demo/letterhead.html b/templates/demo/letterhead.html
new file mode 100644
index 00000000..ccac4c0f
--- /dev/null
+++ b/templates/demo/letterhead.html
@@ -0,0 +1,32 @@
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <td>
+ <h4>
+ <%company%><br>
+ <%address%>
+ </h4>
+ </td>
+
+ <th><img src=<%templates%>/<%language_code%>/logo.png border=0 height=58></th>
+
+ <td align=right>
+ <h4>
+ Tel: <%tel%><br>
+ Fax: <%fax%>
+ </h4>
+ </td>
+ </tr>
+
+ <tr>
+ <td colspan=3>
+ <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
diff --git a/templates/demo/letterhead.tex b/templates/demo/letterhead.tex
new file mode 100644
index 00000000..16d1d16c
--- /dev/null
+++ b/templates/demo/letterhead.tex
@@ -0,0 +1,17 @@
+\parbox{\textwidth}{%
+ \parbox[b]{.42\textwidth}{%
+ <%company%>
+
+ <%address%>
+ }
+ \parbox[b]{.2\textwidth}{
+ \includegraphics[scale=0.3]{../<%templates%>/<%language_code%>/logo}
+ }\hfill
+ \begin{tabular}[b]{rr@{}}
+ Tel: & <%tel%>\\
+ Fax: & <%fax%>
+ \end{tabular}
+
+ \rule[1.5em]{\textwidth}{0.5pt}
+}
+
diff --git a/templates/demo/logo.eps b/templates/demo/logo.eps
new file mode 100644
index 00000000..fb526310
--- /dev/null
+++ b/templates/demo/logo.eps
@@ -0,0 +1,496 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: GIMP PostScript file plugin V 1.17 by Peter Kirchgessner
+%%Title: ledger-smb.eps
+%%CreationDate: Mon Aug 28 22:43:40 2006
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 2
+%%Pages: 1
+%%BoundingBox: 14 14 219 151
+%%EndComments
+%%BeginProlog
+% Use own dictionary to avoid conflicts
+10 dict begin
+%%EndProlog
+%%Page: 1 1
+% Translate for offset
+14.173228346456694 14.173228346456694 translate
+% Translate to begin of first scanline
+0 135.98300212473441 translate
+203.97450318710162 -135.98300212473441 scale
+% Image geometry
+204 136 8
+% Transformation matrix
+[ 204 0 0 136 0 0 ]
+% Strings to hold RGB-samples per scanline
+/rstr 204 string def
+/gstr 204 string def
+/bstr 204 string def
+{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop}
+true 3
+%%BeginData: 14399 ASCII Bytes
+colorimage
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+TDnn7r]-JJJ,~>
+TDnn0r\'c@J,~>
+TDnn]rc"A,J,~>
+g&M%3!-ZQc!-\?%S,\!~>
+g&M%)!,p'\!,qiiS,\!~>
+g&M%j!1_74!1a%-S,\!~>
+g&M%3!-ZQc!-\?%S,\!~>
+g&M%)!,p'\!,qiiS,\!~>
+g&M%j!1_74!1a%-S,\!~>
+g&M%3!-ZQc!-\?%S,\!~>
+g&M%)!,p'\!,qiiS,\!~>
+g&M%j!1_74!1a%-S,\!~>
+g&M%3!-ZQc!-\?%S,\!~>
+g&M%)!,p'\!,qiiS,\!~>
+g&M%j!1_74!1a%-S,\!~>
+g&M%3!-ZQc!-\?%S,\!~>
+g&M%)!,p'\!,qiiS,\!~>
+g&M%j!1_74!1a%-S,\!~>
+g&M%3!-ZQc!-\?%S,\!~>
+g&M%)!,p'\!,qiiS,\!~>
+g&M%j!1_74!1a%-S,\!~>
+g&M%3!-ZQc!-\?%S,\!~>
+g&M%)!,p'\!,qiiS,\!~>
+g&M%j!1_74!1a%-S,\!~>
+g&M%3!-[].#3EOqT;B0]nc&dEZ_F\Eq#:9nG5aMqrs&JPZD+SEq<e1djh7O`V7YjWrrr8EXe2B9
+iW"E~>
+g&M%)!,q3'#3<@iR\71Onc&dCYFVc5q#:9nDuME`rs&JMY+;Z5q!J(cjLV(STXa(Nrrr5BWLKO+
+iW"E~>
+g&M%j!1`BT#40[N\\?AUnc&dPaLoOEqYpKpSGmL$rs&J\a1TFDqsFCfm*EGW^<Z*5rrr;T`4EY=
+iW"E~>
+g&M%3!-[f1!rT6*qDeR`^%MC+^/Y"j"@\FEs*"B%p\t9#:]*3U7[3cLG5aMrrrW,%>5C5[?bQ46
+r](+)s7V^HrAak.iW"E~>
+g&M%)!,q<*!rT)sqC_kN](Q((\kN#T"?_S6s)7lip\t8t7f4nB4c]@<DuMEarrW,!;Yi$I=1\/+
+r\"Cms7MF7r@\.riW"E~>
+g&M%j!1`KW!r^)oqJZInch7;=d"M=9"F73Fs.'(-p\t98JGa?hHF!GJSGmL%rrW/<M#)&kMpM.t
+rbr"1s7imErGVb3iW"E~>
+g&M%3!-[i2!TIDY3<=F#q>UKpM>0(4=R:513Vi[Ur-A&t!b(J>r]0cR!TIDY3<=F#q>^FS!d<j3
+q`+Y,iW"E~>
+g&M%)!,q?+!T@&P0*-+gq>UKpKD7)$;!W'!0DYVKr,_Wd!a4l.r\+'H!T@&P0*-+gq>^FI!cR="
+q_%qpiW"E~>
+g&M%j!1`NX!U>R9DulR,q>UKpWq^N7L@Lf5E;BM7rL`k(!fcc@rc%Z4!U>R9DulR,q>^G5!hAb8
+qeuP1iW"E~>
+g&M%3!-[l3!T$EI3<hlmP+.JC3rV,?DuBJ3!0d@A#ZHSJLf-5nA9@f2q>UGFrAb-bMjfQ*3B;#$
+r]0fS!T$EI3<hlmP+.JC3rV,?DuBJ3r](:*?9(#BKUJ0ML>i/_~>
+g&M%)!,qB,!Sfs>0*XIRN0]<+0`E^+B`.`,!07"2#YK`6Jk7UK?#BQoq>UG@r@\FOKp@?e0/$sV
+r\+*I!Sfs>0*XIRN0]<+0`E^+B`.`,r\"Rn<\H*rI?Th4JDpNY~>
+g&M%j!1`QY!U"k0E!CQUYd^csEW0nXQi6d\!3uKA#_T.cWIf).O.6,fq>UGjrGW$rX1#'_E,_/6
+rc%]5!U"k0E!CQUYd^csEW0nXQi6d\rbr13Mf<WcVR<e$W8[c,~>
+g&M%3!-[o4#4thS3C0P:r;QfQ@/`.dTDSWmcoO0I4g"__rri>&4?5V)3VraU^]$4o6+Qpn"1UWW
+55mS=rs&*o3B9C&p\b$lggL+A!2',fr](*C3C1%OrVllpiW"E~>
+g&M%)!,qE-#4tM@0/oX"r;QfO=T0rRRf!*hc7gn)1TCBQrri>"1+tK`0Db\K]DaGa2n&Ya"1:'@
+2?#9*rs&*f0/#8Yp\b$lg0">-!1Ncar\"C/0/p-7rVllpiW"E~>
+g&M%j!1`TZ#5<ahE-B"lr;Qf[N;dbr\blC2h/RCQF2\(Wrri>=Ec?+!E;KS7d/ItbG0Tsb"3bq-
+FT-7Urs&4ME,^!8q>C6nk)B:Y!4ht+rbr![E-BA&rVllqiW"E~>
+g&M%3!-[o4"HGK&6.>Z0"nl4^3C<96rr?R.3<6MarrBA&3W&gWr`9"Y!64m8!64psqYp\Y3B9CS
+q>UWl>rao3nb`@b3<;4cgAc[~>
+g&M%)!,qE-"Gncb2pqI$"nkqL00&J!rr?:&0*&<SrrB5"0DkbMr_<AF!5n[5!5n^fqYp\T0/#93
+q>UWl<A-!bnGE7a0**fLgAc[~>
+g&M%j!1`TZ"Kl]_G2N,q"o4$pE-CpPrrA)YDue&WrrC+;E;TY9re:>j!7q#H!7q'eqYp]$E,^!X
+q>UWoMK!NXp&"dfDujt4gAc[~>
+g&M%3!-[r5"ReN73McEL!7Lj,!3?(u!8@E4!,qZ4!,VToqu6Z?r]'t,q#:>BrAjcT"ReN73McEL
+!7Lj,!3?"srAak7g&HR~>
+g&M%)!,qH."Re3$0;/(>!7:]u!2oeq!8.9(!,)*,!+l*^qu6Z<r\"7qq#:>;r@e'J"Re3$0;/(>
+!7:]u!2o_or@\/'g&HR~>
+g&M%j!1`W["S?eTE4u#G!8d]o!5e^7!9F,u!13K\!1!M%qu6ZMrbqk2q#:>frG_Z6"S?eTE4u#G
+!8d]o!5eX5rGVb:g&HR~>
+g&M%3!-[r5"Ka[E5P4[L"&M!<G5_F@SGkMK_YF-2_>QCkrrA8^3<7D#rrCCD3W&gZXZ8C+o_/:e
+:cUOZqu?UT!8H3,J,~>
+g&M%)!,qH."K=%-2Y?_C"%P!tDuK\9Qi8W<^\Ig/^AT_^rrA)Y0*'5krrC:A0DkbPW@on_o_/:e
+7kZN6qu?UJ!86'*J,~>
+g&M%j!1`W["N57uFSGM/"+bE1SGiHf\,L=He+iqCdf".^rrB>'Due\grrCjQE;TY<`,K[;p\+Uh
+JT,Ruqu?V6!9Mo6J,~>
+g&M%3!-[r5"*lmeAG,s)D)jUTrVm"?3B94uq#:Bj4T7A<rrd!q3C3W=rrN'`r]0lU"*lmeAG,s)
+D)jUTqu?XU!(bcBJ,~>
+g&M%)!,qH."*6+K?1n4"AhPf0rVm"80/#*Vq#:Bi1B&s(rrca`0/rk)rrN'Vr\+0K"*6+K?1n4"
+AhPf0qu?XK!'f-9J,~>
+g&M%j!1`W[".sOOO7iMTQ>geqrVm"fE,]jpq#:BlErL%TrreL(E-D6UrrN(@rc%c7".sOOO7iMT
+Q>geqqu?Y7!.3AuJ,~>
+g&M%3!-[r5"'7KC3qYQ:3]T2crVlst3B:=;rr?7%3W&gY:,t=CpAY,"r]0lU"'7KC3qYQ:3]T2c
+qu?XU!+sm`J,~>
+g&M%)!,qH."&:L&0_I.&0J>(;rVlsk0/$8trr>pq0DkbO75$;spAY+or\+0K"&:L&0_I.&0J>(;
+qu?XK!++=XJ,~>
+g&M%j!1`W[",1]5EV4>SEH#l>rVltOE,^[-rr@lSE;TY;IrK@dpAY,Nrc%c7",1]5EV4>SEH#l>
+qu?Y7!0Pq6J,~>
+g&M%3!-[r5!(-*6rVlsg3B:pLrr?j63W&gY69.&EpAY,1r]0lU!(-*6qu?XU!-6`lJ,~>
+g&M%)!,qH.!'0I#rVls]0/$o1rr?R.0DkbO3%lptpAY,)r\+0K!'0I#qu?XK!,L6eJ,~>
+g&M%j!1`W[!-djMrVltEE,_*9rrA;_E;TY;G&VDepAY,Yrc%c7!-djMqu?Y7!1MR?J,~>
+g&M%3!-[r5!'BU/rVls]3B;3Trr@->3W&gY4?5ECpAY,6r]0lU!'BU/qu?XU!-[#pJ,~>
+g&M%)!,qH.!&<mprVlsS0/%29rr?m70DkbO1+t:spAY,/r\+0K!&<mpqu?XK!,pNiJ,~>
+g&M%j!1`W[!-.FGrVlt?E,_<?rrAMeE;TY;Ec>udpAY,]rc%c7!-.FGqu?Y7!1_^AJ,~>
+g&M%3!-[r5"$S_*E:*Z-76*AEpAY,.r]0lU"%P@3C%hQ,B`:$hrrYGF3H4<ar]'t%f`-I~>
+g&M%)!,qH."#V_bC$kp&4"i6upAY,&r\+0K"$S@k@eTg%@K%qWrrY,3059bPr\"7if`-I~>
+g&M%j!1`W["*AL$R-jnUG]7VepAY,Wrc%c7"+"p*PP5"VP5]Ftrr[@^E1#tkrbqk-f`-I~>
+g&M%3!-[r5"&M!<@I='s;E6aApAY+rr]0lU"'7KC;>1"i;#WKPrrZ(X3FV7Rr]'t%f`-I~>
+g&M%)!,qH."%P!t=mc4k8M;_qpAY+ir\+0K"&:L&8G<&`8,b1=rrYbE03RW@r\"7if`-I~>
+g&M%j!1`W["+Y?0NU?`JJoG[cpAY,Krc%c7",1]5JbK*DJc9Wcrr[djE/j2`rbqk-f`-I~>
+g&M%3!-[r5"E6@]55FXH"E?F^4o4sR!VnkW3W&gVIJu5,n+cn_meo0Crrd:$3Bm9*s8G"YG1chF~>
+g&M%)!,qH."DKMB2>HV>"DTSC1\phG!VeGL0DkbLG5a,pmeHe^mJS^8rrd$h0/`Oks8FYODqP)?~>
+g&M%j!1`W["IO.IFSkM+"IO.IF8Pb4!W-p:E;TY8U&K!2oD&=coDNY*rre^.E-2!Ds8Hs;SCmjl~>
+g&M%3!-[r5!2KNR!5\+'!1a$K!5nU3!5e[pqu6Yrr]'t[q#:>prAjcT!2KNR!5\%%r]'t%f`-I~>
+g&M%)!,qH.!2'6D!5@n$!13[<!5SC0!5JIcqu6Ymr\"8Mq#:>lr@e'J!2'6D!5@h"r\"7if`-I~>
+g&M%j!1`W[!58AN!7L<8!4VrH!7^fD!7Umcqu6Z4rbqkTq#:?2rG_Z6!58AN!7L66rbqk-f`-I~>
+g&M%3!-[r5"mA$.3FD[PrrCaO3<4$nrr?p73W&g[m6*Hi;"jbc!VT=f3W&g[kW:db?i06jr]'t%
+f`-I~>
+g&M%)!,qH."m7Tn03A&>rrC[M0*#_]rr?[00DkbQln^:J8+ufZ!VT"]0DkbQk:nVC=8VCbr\"7i
+f`-I~>
+g&M%j!1`W["n$DME/XY_rrD-ZDuc:#rrAA`E;TY=noJbhJGK'A!Vq9EE;TY=mW*8cMu;uBrbqk-
+f`-I~>
+g&M%3!-[o4!/:D4!JLFFrrCCBrr?R.3<6ScrrBG(3VraUK)Rb2GPh=<!W.'<3VraUL&O(5K`1WE
+!71NAr]'t%f`-I~>
+g&M%)!,qE-!.Xu$!Ik"@rrC:?rr?:&0*&EVrrB>%0Db\KI/Yc"E;TS5!W-g50Db\KJ,V)%If9!?
+!6k<>r\"7if`-I~>
+g&M%j!1`TZ!2og8!N,hhrrCjOrrA)YDue,YrrC1=E;KS7V>bE7Sc&Ec!W8JcE;KS7VuCW9VZ$5g
+!8RGNrbqk-f`-I~>
+g&M%3!-[o4!V'"c3<<gCqYpZdZ=Gumrrpb13B9:,rVm$"Y!"d/r]0iT!U`MX3=/s&n,;^e>WG,U
+r]0iT!V'"c3<<gCqYpZdZ=Guls8G"YG1chF~>
+g&M%)!,qE-!UrVY0*,M/qYpZdY$E^XrrpY$0/#/_rVm$"W\Z:br\+-J!UW,N0*tUfmeuR`<%g72
+r\+-J!UrVY0*,M/qYpZdY$E^Ws8FYODqP)?~>
+g&M%j!1`TZ!VM!BDul-[qYpZia,b3:rrq4uE,]m;rVm$"`H-!>rc%`6!V:[;E!_BHoD\@,M/[Zq
+rc%`6!VM!BDul-[qYpZia,b39s8Hs;SCmjl~>
+g&M%3!'9a6!1<cc!SpBH3<rT;Q(=.g><DgEqYpPZrAb-^MOKB#3B:Skr]0fS!R3q)3<Zj83B91s
+rrLqJrAb*`K9`!lITno53VrdT3<46Ts*t~>
+g&M%)!&4%"!0dE^!S]p=0*b4!OI2&Q;_e8)qYpPUr@\FLKU%0^0/$OHr\+*I!R!Fr0*JY#0/#'U
+rrLk?r@\CMI#s_UGZ-?r0Db_J0*#qCs*t~>
+g&M%j!-.XO!4;b*!Tne.E!M)nZad<8M/iN6qYpQ#rGW$pWj\p[E,^i,rc%]5!S_elE!4@SE,]jn
+rrM80rGW!qV6d\;U5<mhE;KV6DucE\s*t~>
+g&LP%!1!N_!Tdnb3<28>rrN+Tpc/CWlZW7fq#:BB<;JTZ6b`S=3B9S(rrM4moJln8qZ$OT!-[#p
+J,~>
+g&LOp!0I0Z!T[PY0*!j*rrN+Npb)\Dl>QYTq#:B@9_pCH3kG?(0/#K`rrM1doIg2$qZ$OJ!,pNi
+J,~>
+g&LP\!42Y(!UPp?DuatUrrN+upi$:gn=9Jsq#:BOK_fWlGL6AVE,^-urrMJJoPaeOqZ$P6!1_^A
+J,~>
+g&LP%!1!K^"9,oG48Lr>5]3[nq#:B.;uAWY7#gg<G5aMrrsnk/Db`JiA>8Gjs'RiI;YU1nrjui*
+qDeXCDQNC)s8G"YG1chF~>
+g&LOp!0I-Y"9,f=1&<O*2J/oWq#:B+9DgFG3f!;+DuMEarsnh*BLOaF>b13\s&^p-8b`5erjZAk
+qC_q/AuP4qs8FYODqP)?~>
+g&LP\!42V'"9-T/EVaVVFdBr<q#:B@KD]ZkGcg]>SGmL%rsnqGQ[a()O1b&`s,:o9K(o9Irm$[H
+qJZOZQG`Cls8Hs;SCmjl~>
+^]+T.a/tu+Wk7!]oD]!EZD"JApu_SZq`d)$DY3r7n&MQ&T;oNWqTAhg~>
+^]+T.`2T5qV7>1RoD]!CY+2Q1pu_SZq_g)\B(Z*/n&22pS#*XIq9&_f~>
+^]+T3f>P83_9V-=oD]!Qa1K=AqW@e\r,cmsQLt1_o[h$m]"u\Qqo\qh~>
+L]7@kr]'tE[/YX~>
+L]7@hr\"86[/YX~>
+L]7A'rbqkD[/YX~>
+M#RMQ@K&7ed'Wh'~>
+M#RMQ=oL&ScF!V%~>
+M#RMRNW*ksh6d34~>
+P5bO'q>UKlJ,VG.>-n6Z~>
+P5bO$q>UKkGlB>r;7$:Q~>
+P5bO6q>UKmUAf*3LpR,3~>
+P5bhKAus\Yrq>3J;uScX3m4l0J,~>
+P5bhA?DuKJrq>-C9E$RF0Z^U#J,~>
+P5bi-Oi-8TrqY`nKDofjES7\uJ,~>
+P5k/7!2-XtJ,~>
+P5k/-!1U:oJ,~>
+P5k/n!5#Q:J,~>
+P5bMIpGi7J\?Z'a~>
+P5bM?pFcP7[B]a^~>
+P5bN)pM^.]bd%1u~>
+P5bp`]SgAr5W_G:J$f!Ts*t~>
+P5bp_\V4?X2DI?iGd-tIs*t~>
+P5bpbc`<1XF`Me^U<389s*t~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+OoPI\rVZlus8W)sYlB4~>
+P5bpgY#-&>$o)tOpno.:s*t~>
+P5bpgY#-&>$o)tOpno.:s*t~>
+P5bU_rVc]orVZ`qqu6_R;&]BF!3c%p!W,4^&HWtMq#13oLJA]_!!NB5/Ru<ikl6/~>
+PQ(pV7fa*:Uof7orW*!qqu6`5Ukeo#!7g`A!WAPeJc^b(qu-NrLJA]_!!NB5/Ru<ikl6/~>
+PQ(pV7fa*:Uof7orW*!qqu6_W=XF"d!4)7s!W,Og*!.Nkpsf=o~>
+PQ(^`rVcWn"9/8trqZQpj;@k.!1*9W!0I-k!E/UdrrMd4rW!6Z\BV^@(]XOtj6?So~>
+PlCma63/+`rVm#p;um#Qq>UKcL&QZ(aRoK4`VkAhV#'oe!VIH3!!tBic+SfJ!!#+@l2Q8~>
+PlCma63/+`rVm#p;um#Qq>UKW,5rP^Re6U[Q2M['>4p>DJ,~>
+PlCjbrVc`ls8W#trqZQpq\fAF!.4D=!SJ=g&HL2Prr>7^!!'5$rrq[3!!">9lMlA~>
+PlCi\!<K+qrr_j.!P/%+!W@cPJcNCTrrMG>rIP%3p\t4WrVur%rVm&d+ohTho'67*~>
+PlCi\!<K+qrr_j.!P/%+!W+/A)utQ_rrLjur>YgcdJn^~>
+PlCgarVcQl!WN&mrrC"9&HH85rrW*d)#b*J0)kVF"<mgG!q-!d!2KMn!.jG8J,~>
+PlChS!<MWbrrQj7mJ6b^i;J6-XS2YqrgefCJcLr,rraMG!!;TdrrAhn!!%T8s*t~>
+PlChS!<MWbrrQj7mJ6b^a8HtXC%hQ.r(SF8*!&%udJn^~>
+PlLa]q>UKprV6BrIM"1E&P)Qp!g4..rXf-Lp\t6[rVupSqu6ZXrVupLlMlA~>
+PlCh!!<N)orrJB1q#:N0JrtY:T(`0c`e(DnJcN1PrrDEb!!"hPrrD0[!!"S8s*t~>
+PlCh!!<N)orrJB1q#:MN*&noX;"jnjQQ0oB)ut30s*t~>
+PlLa]q>^Koq#:L\1h%%//bf8Ig)+(=rXf.8p\t5mrVuq?qu6ZorVup'lMlA~>
+PlCgf!<LdJrrK6)q#:McPc]OhOn\kXl\2=Irdk.$p\t5mrVuq?qu6ZorVup'lMlA~>
+PlCgf!<LdJrrK6)q#:Le4_YlU2u!=SgEL-UrYtpFd/SU~>
+PlLa]!<2fo!<2fo#O)h@Hk?r*r;$?ur'hgm2\?W7me?_]A,ZH.[ep()oDS^i"mZ,<~>
+PlCh%!<HX*rrLuiq>U]kK!i1AJqX.!rri=mMY!/5JcPN=rr?R.!!'J)rrDZi!!!2fs*t~>
+PlCh%!<HX*rrLuiq>U]b*-m,U*$G1Trs8Nu.d95=*$+Lps*t~>
+PlCa_rquirnc&]h&[@Z$&HM%jrr\MuVWRji!(-G["o]MB!!DfhrrC7A!!"P7s*t~>
+PlC_grW*"lnc&^=K%A$BJcPE<rr^;nd.70f!1`f`"o]MB!!DfhrrC7A!!"P7s*t~>
+PlC_grW*"lnc&]l*4247*!#7!rr\]0Wos@$!)(Z<J,~>
+PQ1U[!<2Qh"(`,4Z2P=8cMIPDg_a#iVZ%/-K_PKHfDYaM3;WXTHN!mEJa38c~>
+PlCp;"p"`.[IX>"Y(HAurdk.3qYp]bL8Fpsrdk-ap\t6FrVupXqYpPArVuqLlMlA~>
+PlCp;"p"`.[IX>"C`VrNrYtpbqYp]S,@(5JrYtopci8L~>
+PQ(X^rVZ`qo`#'m,s_LRrXf.:qu6it80$[iBDrJC`:s93Oo>=\HMd^Gi=,be-hHX'J,~>
+PQ(WHrW*$*]Cc++rf!?HjSj`2fDGROrh##9s0)ER!9!VO!0R6\!.+PB"lTmj!%7C's*t~>
+PQ(WHrW*$*]Cc++r@^bBc2J[_\,61/r)"j&s).fU!6<FcJ,~>
+P5bO]rVcBg"O@[0s5j4l!1E`a$'l0ps8FAX&KCQ?rr>^k!!'Y/rrq7/!!"t?l2Q8~>
+PQ([_DZ0Y;$GuK9"Qk<Ks7-)?!6Y3=$-7_Bs8S+2Jqs9urr>^k!!'Y/rrq7/!!"t?l2Q8~>
+PQ([_DZ0Y;$GuK9"O\9Ds5s;#!1s)f$(Dp/s8F_m*%(O.s*t~>
+OoGF\rVcEh#`TG1s8*HA&V'`Y"l'tirVtIJ&HGl+rt"l4!!!2qs8D)jCC'tuT)7aOJ,~>
+P5bR]?iC',%aXkK#fD8Ms8@S%K"V$]"mq&<rr;6^JcM\Brt"l4!!!2qs8D)jCC'tuT)7aOJ,~>
+P5bR]?iC',%aXkK#a-1Ds8*iW*/4=j"l:M)rVtOL)us<js*t~>
+OT,=[rVcHi#YQ!-s8OM[&S:q@#5q.3hZ*VArXf-rp\t6-rW!$%((UNH!!+Utjo9i~>
+OoGIY9`>%n)Wg_n#bZnJs8S.3K!,(P#6(9Mmf3=.rdk-kp\t6-rW!$%((UNH!!+Utjo9i~>
+OoGIY9`>%n)Wg_n#ZDo?s8Okp*,PTR#5qFFi;`hGrYtp-cMrC~>
+O8o.Vq#:Ed'i"]-"%*Y49E"klQk>Y`rr?+!&HLGWrr@<C!",V"o&7B/#659qroa<3~>
+OT,@S4T5?^5lLNY!r.GBrr3(jJqBZorrU;oaSu2>VZ)/IlM(;YGl@[MVY]lB^j$(a&!-_Qs*t~>
+OT,@S4T5?^5lLNY!qRO7rr3'o*#qoUrrS`2Rf<<e?N(oEg!9VJ~>
+NrT(V!<2fo!jrVurr3(,&J6bsrsR[%7K!2cq&9nX.K9)A!&FNR!9a:["iLTF!+u5os*t~>
+O8f7L/cGbNVYU5nfRh!>rr]9QJs636$LW\?rr<#rLOt,=pAY+JrVur]r;Qr="onX8rojB4~>
+O8f7L/cGbNVYU5n\K$b2rrZgP*'4*!$fE=+r;Zfn-6+!]rm(Oo~>
+NW9"V!<2fo!cnsrrr3:L&J5iYs8>V-g&D!O`VpGLCA7`.lM^b`/,K8GFT)7?Wp'J5~>
+NrK7=&-2euq>UN(K&ck1$+PS=L&_2PTnVh3rrD$WJcN(MrrD?`!!"PGrr@0?!!'%_s*t~>
+NrK7=&-2euq>UMA*6eE^$%<j6+o_N?<$C#qrrC.>)ut!'s*t~>
+Qi@'bq#:?nrr)Zm!\k_mrr2t]rXf;!s-jU\rVlkPrXf.1p\t5jrVuq<qYpQArVupakl6/~>
+R/[3JV"jrlMZEhhq>UM[M#I>Q!65"i"SMf<K#IWf!5JMb!7LWA!2f_q!-.l8!71WE!(#iKJ,~>
+R/[3JV"jrlMZEhhq>ULW./X#D!13[)"RQ/]*0^@$!/pgr!3XTHJ,~>
+R/d3cp](6kqYpWR&R#)4!3H/3"OZ-H5Pk?Y!(Hl!!:'=Y!+>d+!4r%,!;QNn!"J/lJ,~>
+R/[2mBDDK/i;ir_qYpWbJuJYJ!7Uq!"R#6/Rf33b!1j+@!;-$c!+>d+!4r%,!;QNn!"J/lJ,~>
+R/[2mBDDK/i;ir_qYpWT*+AgG!3lGB"Ol?W8GiAc!)EM5!:.o0J,~>
+R/d3cp](6kqYpVe&X`Os!65!M"1:l=df'1KnIlKH4SSjZrYbb:$MXDs!;HHm!!DHbJ,~>
+R/[2F;>C.nq>gU8qYpW?K$!uk!9*p/"5'?$kPbD`pk+0MRJ6^brYbb:$MXDs!;HHm!!DHbJ,~>
+R/[2F;>C.nq>gU8qYpVj*1d'.!6P3["1_GTeG]CMnfAbj7Ekd^~>
+R/[3drV-?lr;cinrrQ@9fDY^Lhu42h64ntMrrBG*&HI7RrrCOI!!#XerrC^N!!")(s*t~>
+R/[4u)#a:1"69I`:\t(mW.O=5rrDKdJc_En^\n*3f`$I&]D)=*e,B=I9)8Jef_tjN*pEWS~>
+R/[4u)#a:1"69I`:\t(m@3!u!rrD$W*!/_PMu<ST\GdHJK?X@G~>
+R/d3b!<2fo"9/8trql]tp_tU[rVllmr=K&jq#(-lFoDsQ^A%X-NW&nXO88eUPl:X_@Hd`A~>
+R/[4N!O;J#".]GnU\k&mqhL40rrDrpJcV59r;Qc*rdk.+p\t5QrVuqZq>UGZrVuq,kl6/~>
+R/[4N!O;J#".]GnU\k&npa.`prVllmr>Yi)q>C6mHi=ub_9Dq0~>
+R/d0aq>^HmqYpW.&S:k>"=4Wl'@$FS">g]&)#!_(!(["g!71NA"o0GE!!1C/s*t~>
+R/[7'!@%"0rrhm<!A+-FrrUr,Y5A5%N.QY6jno&\Q%FUAqY1!i8,`JgchdYFq'?"@!RBp/J,~>
+R/[7'!@%"0rrhm<!A+-FrrTkRD#=580,trQchm_F4rbOdp<<Pe~>
+R/d-`qu6`srVcQl!bW+9qu6a_&J9HgrrD$W&HGArrrr'$!!!E)qu6]rCAn25HKY<Y~>
+RK!9RrW*$Uh>R?Vl9YL_fD>LKYCb!qrr\^AK"Lp[!:To=!2'#c"n`-$!"8`%rrN+6rVuqEkPp&~>
+RK!9RrW*$Uh>R?Vl9YL_fD>LKDB,DJrrYe3*/".g!9=%u!)^r>J,~>
+R/[<frr2lprVlfpq>UQ[(_OLZrrZC91\U_G!/1=`!,)'+!2oer!>PJ0rrM=arVut>rTF32~>
+RK!`8#[9Rt#[*4RB+G"leb]:JnqD\Oqu6bsJs?-/rrBe4JcN"KrrAtr!!*f3r;Qf]<rN("ErG2$
+J,~>
+RK!`8#[9Rt#[*4RB+G"leb]:JkTV"_qu6b,*'Erlrr@oT)usm"s*t~>
+RK*<drr<#trr)lrq>UTk<"T_'qu6_=&]XbK!r]29rXf0$qYC-li[+O'$<Oj`^meI4!!"RYjo9i~>
+RK!\eMuWhBP!fi`(eUCrqYp]pV1O<;qu6`*K&QY-!rgZ%rdk0BrV?Hoi[+O'$<Oj`^meI4!!"RY
+jo9i~>
+RK!\eMuWhBP!fi`(eUCrqYp]l>T=`Jqu6_C*6J-Y!r]>GrYtr8qoo(j~>
+LAq:4-N+MX6=p)orrJ+%rVlrs=Xj4[![LR4rVlra3X#3X"U#W'F2@k:s*t~>
+LAq:kNW"G1S?DkjrrL$GrVlruW/ph-!fWktrVlra3X#3X"U#W'F2@k:s*t~>
+LAq::0`;sm95OP*rrJ:0rVlrs@5Id#!\RQKcMrC~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+JcE.XJ,~>
+%%EndData
+showpage
+%%Trailer
+end
+%%EOF
diff --git a/templates/demo/logo.png b/templates/demo/logo.png
new file mode 100644
index 00000000..e3a4ac13
--- /dev/null
+++ b/templates/demo/logo.png
Binary files differ
diff --git a/templates/demo/packing_list.html b/templates/demo/packing_list.html
new file mode 100644
index 00000000..57286437
--- /dev/null
+++ b/templates/demo/packing_list.html
@@ -0,0 +1,185 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>P A C K I N G &nbsp;&nbsp; L I S T</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% cellspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th width=50% align=left><font color=ffffff>Ship To:</th>
+ <th width=50%>&nbsp;</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%>
+ <%if shiptostate%>
+ , <%shiptostate%>
+ <%end shiptostate%>
+ <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ </td>
+
+ <td>
+ <%if shiptocontact%>
+ <br>Attn: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left>Invoice #</th>
+ <th width=17% align=left>Order #</th>
+ <th width=17% align=left>Date</th>
+ <th width=17% align=left nowrap>Contact</th>
+ <%if warehouse%>
+ <th width=17% align=left>Warehouse</th>
+ <%end warehouse%>
+ <th width=17% align=left>Shipping Point</th>
+ <th width=15% align=left>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%invnumber%>&nbsp;</td>
+ <td><%ordnumber%>&nbsp;</td>
+
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%transdate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+
+ <%if warehouse%>
+ <td><%warehouse%>&nbsp;</td>
+ <%end warehouse%>
+
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Item</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th align=left><font color=ffffff>Serial #</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Qty</th>
+ <th><font color=ffffff>Ship</th>
+ <th>&nbsp;</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%></td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td><%serialnumber%></td>
+ <td><%deliverydate%></td>
+ <td align=right><%qty%></td>
+ <td align=right><%ship%></td>
+ <td><%unit%></td>
+ </tr>
+ <%end number%>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+ <%if notes%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td>Notes</td>
+ <td><%notes%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <%end notes%>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=70%><font size=-3>
+ Items returned are subject to
+ a 10% restocking charge. A return authorization must be obtained
+ from <%company%> before goods are returned. Returns must be shipped
+ prepaid and properly insured. <%company%> will not be responsible
+ for damages during transit.
+ </font>
+ </td>
+ <td width=30%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/demo/packing_list.tex b/templates/demo/packing_list.tex
new file mode 100644
index 00000000..2d3a1945
--- /dev/null
+++ b/templates/demo/packing_list.tex
@@ -0,0 +1,136 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\newsavebox{\ftr}
+\sbox{\ftr}{
+ \parbox{\textwidth}{
+ \tiny
+ \rule[1.5em]{\textwidth}{0.5pt}
+Items returned are subject to a 10\% restocking charge.
+A return authorization must be obtained from <%company%> before goods are
+returned. Returns must be shipped prepaid and properly insured.
+<%company%> will not be responsible for damages during transit.
+ }
+}
+
+<%include letterhead.tex%>
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrl@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Ship} & \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+\textbf{Ship To}} \hfill
+
+\vspace{0.3cm}
+
+\parbox[t]{.5\textwidth}{
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+}
+\parbox[t]{.5\textwidth}{
+ <%shiptocontact%>
+
+ <%if shiptophone%>
+ Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{P A C K I N G} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{7}{|X}|} \hline
+ \textbf{Invoice \#} & \textbf{Order \#} & \textbf{Date} & \textbf{Contact}
+ <%if warehouse%>
+ & \textbf{Warehouse}
+ <%end warehouse%>
+ & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+
+ <%invnumber%> & <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%transdate%>
+ <%end shippingdate%>
+ & <%employee%>
+ <%if warehouse%>
+ & <%warehouse%>
+ <%end warehouse%>
+ & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXllrrl@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Ship} & \\
+
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%serialnumber%> &
+ <%deliverydate%> & <%qty%> & <%ship%> & <%unit%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{12pt}
+
+<%notes%>
+
+}
+
+\vfill
+
+\rule{\textwidth}{0.5pt}
+
+\usebox{\ftr}
+
+\end{document}
+
diff --git a/templates/demo/pick_list.html b/templates/demo/pick_list.html
new file mode 100644
index 00000000..c6055449
--- /dev/null
+++ b/templates/demo/pick_list.html
@@ -0,0 +1,139 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>P I C K &nbsp;&nbsp; L I S T</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th width=50% align=left><font color=ffffff>Ship To:</th>
+ <th width=50%>&nbsp;</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%>
+ <%if shiptostate%>
+ , <%shiptostate%>
+ <%end shiptostate%>
+ <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ </td>
+
+ <td>
+ <%if shiptocontact%>
+ <br>Attn: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=15% align=left>Invoice #</th>
+ <th width=15% align=left>Order #</th>
+ <th width=10% align=left>Date</th>
+ <th width=15% align=left nowrap>Contact</th>
+ <th width=15% align=left>Warehouse</th>
+ <th width=10% align=left>Shipping Point</th>
+ <th width=10% align=left>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%invnumber%>&nbsp;</td>
+ <td><%ordnumber%>&nbsp;</td>
+ <%if shippingdate%>
+ <td><%shippingdate%></td>
+ <%end shippingdate%>
+
+ <%if not shippingdate%>
+ <td><%transdate%></td>
+ <%end shippingdate%>
+
+ <td><%employee%>&nbsp;</td>
+ <td><%warehouse%>&nbsp;</td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left><font color=ffffff>Item</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qty</th>
+ <th><font color=ffffff>Ship</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Bin</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td><%runningnumber%>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td align=right>[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</td>
+ <td><%unit%></td>
+ <td align=right><%bin%></td>
+ </tr>
+ <%end number%>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/demo/pick_list.tex b/templates/demo/pick_list.tex
new file mode 100644
index 00000000..2f82936a
--- /dev/null
+++ b/templates/demo/pick_list.tex
@@ -0,0 +1,108 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+
+<%pagebreak 65 27 37%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\begin{tabularx}{\textwidth}{@{}rlXrcll@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} &
+ \textbf{Qty} & \textbf{Ship} & & \textbf{Bin} \\
+
+<%end pagebreak%>
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+ \textbf{Ship To}
+} \hfill
+
+\vspace{0.3cm}
+
+\parbox[t]{.5\textwidth}{
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+}
+\parbox[t]{.5\textwidth}{
+ <%shiptocontact%>
+
+ <%if shiptophone%>
+ Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ Fax: <%shiptofax%>
+ <%end shiptofax%>
+
+ <%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{P I C K} \parbox{0.3cm}{\hfill} \textbf{L I S T}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{7}{|X}|} \hline
+ \textbf{Invoice \#} & \textbf{Order \#} & \textbf{Date} & \textbf{Contact}
+ & \textbf{Warehouse} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
+ \hline
+ <%invnumber%> & <%ordnumber%>
+ <%if shippingdate%>
+ & <%shippingdate%>
+ <%end shippingdate%>
+ <%if not shippingdate%>
+ & <%transdate%>
+ <%end shippingdate%>
+ & <%employee%> & <%warehouse%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrcll@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} &
+ \textbf{Qty} & \textbf{Ship} & & \textbf{Bin} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> &
+ <%qty%> & [\hspace{1cm}] & <%unit%> & <%bin%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+}
+
+\end{document}
+
diff --git a/templates/demo/pos_invoice.txt b/templates/demo/pos_invoice.txt
new file mode 100644
index 00000000..cbc0055a
--- /dev/null
+++ b/templates/demo/pos_invoice.txt
@@ -0,0 +1,45 @@
+<%company align=center width=40%>
+<%address align=center width=40%>
+
+Till: <%till align=left width=3%> Phone#: <%tel%>
+Cashier: <%employee%>
+Inv #/Date: <%invnumber%> / <%invdate%>
+Printed: <%dateprinted%>
+
+ Qty Description Amount
+<%foreach number%>
+<%qty align=right width=5%> <%description align=left width=24 offset=6%> <%linetotal align=right width=9%>
+ <%number%> @ <%sellprice%>/<%unit%>
+<%end number%>
+
+Number of items: <%totalqty%>
+<%if taxincluded%>
+ ---------------
+ Total: <%invtotal align=right width=9%>
+<%end taxincluded%>
+<%if not taxincluded%>
+ ------------
+ Subtotal: <%subtotal align=right width=9%>
+<%end taxincluded%>
+<%foreach tax%>
+<%taxdescription align=right width=23%> @ <%taxrate align=right width=2%>%: <%tax align=right width=9%>
+<%end tax%>
+<%foreach payment%>
+ Paid: <%payment align=right width=9%> <%currency%>
+<%end payment%>
+<%if change%>
+ Change: <%change align=right width=9%>
+<%end change%>
+<%if total%>
+ Balance Due: <%total align=right width=9%>
+<%end total%>
+<%if discount%>
+
+<%discount%> % Discount applied
+<%end discount%>
+
+ Thank you for your valued business!
+
+<%if taxincluded%>
+Taxes are included in price.
+<%end taxincluded%>
diff --git a/templates/demo/purchase_order.html b/templates/demo/purchase_order.html
new file mode 100644
index 00000000..ba4c1d43
--- /dev/null
+++ b/templates/demo/purchase_order.html
@@ -0,0 +1,241 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>P U R C H A S E &nbsp;&nbsp; O R D E R</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>To:</th>
+ <th align=left width=50%><font color=ffffff>Ship To:</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+
+ <%if vendorphone%>
+ <br>Tel: <%vendorphone%>
+ <%end vendorphone%>
+
+ <%if vendorfax%>
+ <br>Fax: <%vendorfax%>
+ <%end vendorfax%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%>
+ <%if shiptostate%>
+ , <%shiptostate%>
+ <%end shiptostate%>
+ <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ <br>
+
+ <%if shiptocontact%>
+ <br>Attn: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left>Order #</th>
+ <th width=17% align=left>Order Date</th>
+ <th width=17% align=left>Required by</th>
+ <th width=17% align=left>Contact</th>
+ <th width=17% align=left>Shipping Point</th>
+ <th width=15% align=left>Ship Via</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%></td>
+ <td><%orddate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>Item</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qt'y</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Price</th>
+ <th><font color=ffffff>%</th>
+ <th><font color=ffffff>Amount</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%>.</td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discountrate%></th>
+ <td align=right><%linetotal%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <td colspan=8><hr noshade></td>
+ </tr>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=7 align=right>Total</th>
+ <th colspan=1 align=right><%ordtotal%></th>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=7 align=right>Subtotal</th>
+ <td colspan=1 align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=7 align=right><%taxdescription%> on <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=1 align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <tr>
+ <td colspan=4>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <%if not taxincluded%>
+ <th colspan=7 align=right>Total</th>
+ <td colspan=1 align=right><%ordtotal%></td>
+ <%end taxincluded%>
+
+ <%if terms%>
+ <tr>
+ <td colspan=4>Terms Net <b><%terms%></b> days</td>
+ <th colspan=3 align=right>Total</th>
+ <th colspan=1 align=right><%ordtotal%></th>
+ </tr>
+ <%end terms%>
+
+ <%if taxincluded%>
+ <tr>
+ <td colspan=2>Tax included</td>
+ </tr>
+ <%end taxincluded%>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ <%if ordtotal%>
+ <tr>
+ <td colspan=8 align=right>
+ All prices in <b><%currency%></b> Funds
+ </td>
+ </tr>
+ <%end ordtotal%>
+
+ </table>
+ </td>
+ </tr>
+
+ <%if notes%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td>Notes</td>
+ <td><%notes%></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+ <%end notes%>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=70%>&nbsp;</td>
+
+ <td width=30%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/demo/purchase_order.tex b/templates/demo/purchase_order.tex
new file mode 100644
index 00000000..fe1e6428
--- /dev/null
+++ b/templates/demo/purchase_order.tex
@@ -0,0 +1,170 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{\hspace{1cm}r@{}}
+ & Subtotal & <%sumcarriedforward%> \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Amount} \\
+ & carried forward from <%lastpage%> & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+\textbf{To}
+\vspace{0.3cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+Attn: <%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if vendorphone%>
+Tel: <%vendorphone%>
+<%end vendorphone%>
+
+<%if vendorfax%>
+Fax: <%vendorfax%>
+<%end vendorfax%>
+
+<%email%>
+}
+\parbox[t]{.5\textwidth}{
+\textbf{Ship To}
+\vspace{0.3cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+Attn: <%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{P U R C H A S E} \parbox{0.3cm}{\hfill} \textbf{O R D E R}
+\hfill
+
+\vspace{1cm}
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Date} & \textbf{Required by} & \textbf{Contact} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5ex]
+ \hline
+ <%ordnumber%> & <%orddate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Amount} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%linetotal%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
+ & Subtotal & <%subtotal%> \\
+<%foreach tax%>
+ & <%taxdescription%> on <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ & Total & <%ordtotal%>\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+ All prices in \textbf{<%currency%>}.
+
+\vspace{12pt}
+
+<%notes%>
+
+}
+
+
+%\renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+%\footnotetext[1]{\tiny }
+
+\end{document}
+
diff --git a/templates/demo/receipt.tex b/templates/demo/receipt.tex
new file mode 100644
index 00000000..effc19b6
--- /dev/null
+++ b/templates/demo/receipt.tex
@@ -0,0 +1,77 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{9pt}{9pt}\selectfont
+
+\parbox[t]{12cm}{
+ <%company%>
+
+ <%address%>}
+\hfill
+\parbox[t]{6cm}{\hfill <%source%>}
+
+\vspace*{0.6cm}
+
+<%text_amount%> \dotfill <%decimal%>/100 \makebox[0.5cm]{\hfill}
+
+\vspace{0.5cm}
+
+\hfill <%datepaid%> \makebox[2cm]{\hfill} <%amount%>
+
+% different date format for datepaid
+% <%DD%><%MM%><%YYYY%>
+
+\vspace{0.5cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{1.8cm}
+
+<%memo%>
+
+\vspace{0.8cm}
+
+<%company%>
+
+\vspace{0.5cm}
+
+<%name%> \hfill <%datepaid%> \hfill <%source%>
+
+\vspace{0.5cm}
+\begin{tabularx}{\textwidth}{lXrr@{}}
+\textbf{Invoice No.} & \textbf{Invoice Date}
+ & \textbf{Due} & \textbf{Applied} \\
+<%foreach invnumber%>
+<%invnumber%> & <%invdate%> \dotfill
+ & <%due%> & <%paid%> \\
+<%end invnumber%>
+\end{tabularx}
+
+\vspace{1cm}
+
+<%memo%>
+
+\vfill
+
+\end{document}
+
diff --git a/templates/demo/request_quotation.html b/templates/demo/request_quotation.html
new file mode 100644
index 00000000..433b8e80
--- /dev/null
+++ b/templates/demo/request_quotation.html
@@ -0,0 +1,179 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>R E Q U E S T &nbsp;&nbsp; F O R &nbsp;&nbsp; Q U O T A T I O N</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>To:</th>
+ <th align=left width=50%><font color=ffffff>Ship To:</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+
+ <%if vendorphone%>
+ <br>Tel: <%vendorphone%>
+ <%end vendorphone%>
+
+ <%if vendorfax%>
+ <br>Fax: <%vendorfax%>
+ <%end vendorfax%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddr2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%>
+ <%if shiptostate%>
+ , <%shiptostate%>
+ <%end shiptostate%>
+ <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ <br>
+
+ <%if shiptocontact%>
+ <br>Attn: <%shiptocontact%>
+ <%end shiptocontact%>
+
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left>RFQ #</th>
+ <th width=17% align=left>Date</th>
+ <th width=17% align=left>Required by</th>
+ <th width=17% align=left>Contact</th>
+ <th width=17% align=left>Shipping Point</th>
+ <th width=15% align=left>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%quonumber%></td>
+ <td><%quodate%></td>
+ <td><%reqdate%>&nbsp;</td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height="10"></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>Please provide price and delivery time for the following items:</td>
+ </tr>
+
+ <tr height="10"></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <th align=right>Item</th>
+ <th align=left>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th>Qt'y</th>
+ <th>&nbsp;</th>
+ <th>Delivery</th>
+ <th>Unit Price</th>
+ <th>Extended</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%>.</td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <td colspan=8><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+ <%if notes%>
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td>Notes</td>
+ <td><%notes%></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+ <%end notes%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/demo/request_quotation.tex b/templates/demo/request_quotation.tex
new file mode 100644
index 00000000..cf95dd89
--- /dev/null
+++ b/templates/demo/request_quotation.tex
@@ -0,0 +1,151 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
+ & \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Extended} \\
+ & carried forward from <%lastpage%> & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+\textbf{To}
+\vspace{0.3cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if vendorphone%>
+Tel: <%vendorphone%>
+<%end vendorphone%>
+
+<%if vendorfax%>
+Fax: <%vendorfax%>
+<%end vendorfax%>
+
+<%email%>
+}
+\parbox[t]{.5\textwidth}{
+\textbf{Ship To}
+\vspace{0.3cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{R E Q U E S T for Q U O T A T I O N}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{RFQ \#} & \textbf{Date} & \textbf{Required by} & \textbf{Contact} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5ex]
+ \hline
+ <%quonumber%> & <%quodate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+Please provide price and delivery time for the following items:
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}lXrllrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} & &
+ \textbf{Delivery} & \textbf{Unit Price} & \textbf{Extended} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> & <%unit%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\hfill
+
+<%notes%>
+
+}
+
+\end{document}
+
diff --git a/templates/demo/sales_order.html b/templates/demo/sales_order.html
new file mode 100644
index 00000000..14c17e1e
--- /dev/null
+++ b/templates/demo/sales_order.html
@@ -0,0 +1,231 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>S A L E S &nbsp;&nbsp; O R D E R</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>To</th>
+ <th align=left width=50%><font color=ffffff>Ship To</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%>
+ <%if shiptostate%>
+ , <%shiptostate%>
+ <%end shiptostate%>
+ <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ <br>
+ <%if shiptocontact%>
+ <br><%shiptocontact%>
+ <%end shiptocontact%>
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+ <%if shiptoemail%>
+ <br><%shiptoemail%>
+ <%end shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Order #</th>
+ <th width=17% align=left>Order Date</th>
+ <th width=17% align=left>Required by</th>
+ <th width=17% align=left nowrap>Salesperson</th>
+ <th width=17% align=left nowrap>Shipping Point</th>
+ <th width=15% align=left nowrap>Ship Via</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%></td>
+ <td><%orddate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>Item</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qt'y</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Price</th>
+ <th><font color=ffffff>Disc %</th>
+ <th><font color=ffffff>Amount</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%>.</td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discountrate%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <td colspan=8><hr noshade></td>
+ </tr>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=6 align=right>Total</th>
+ <td colspan=2 align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=6 align=right>Subtotal</th>
+ <td colspan=2 align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=6 align=right><%taxdescription%> on <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <tr>
+ <td colspan=4>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=4>
+ <%text_amount%> ***** <%decimal%>/100
+ <%if terms%>
+ <br>Terms Net <b><%terms%></b> days
+ <%end terms%>
+ </td>
+ <th colspan=2 align=right>Total</th>
+ <th colspan=2 align=right><%ordtotal%></th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <%if notes%>
+ <td>Notes</td>
+ <td><%notes%></td>
+ <%end notes%>
+ <td align=right nowrap>
+ All prices in <%currency%> Funds</b>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=60%><font size=-3>
+ Special order items are subject to a 10% order cancellation fee.
+ </font>
+ </td>
+ <td width=40%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/demo/sales_order.tex b/templates/demo/sales_order.tex
new file mode 100644
index 00000000..60f7bfeb
--- /dev/null
+++ b/templates/demo/sales_order.tex
@@ -0,0 +1,177 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
+ & \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+
+\begin{tabularx}{\textwidth}{@{}rlXrlrrr@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+ & carried forward from <%lastpage%> & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+\textbf{To}
+\vspace{0.3cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\parbox[t]{.5\textwidth}{
+\textbf{Ship To}
+\vspace{0.3cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{S A L E S} \parbox{0.3cm}{\hfill} \textbf{O R D E R}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Order Date} & \textbf{Required by} & \textbf{Salesperson} & \textbf{Shipping Point} & \textbf{Ship Via} \\ [0.5em]
+ \hline
+ <%ordnumber%> & <%orddate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrlrrr@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%discountrate%> & <%linetotal%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
+ & Subtotal & <%subtotal%> \\
+<%foreach tax%>
+ & <%taxdescription%> on <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ & Total & <%ordtotal%>\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+<%text_amount%> ***** <%decimal%>/100
+\hfill
+All prices in \textbf{<%currency%>}.
+
+<%if terms%>
+Terms: <%terms%> days
+<%end terms%>
+
+\vspace{12pt}
+
+<%notes%>
+
+}
+
+\vfill
+
+\centerline{\textbf{Thank You for your valued business!}}
+
+\rule{\textwidth}{0.5pt}
+
+\end{document}
+
diff --git a/templates/demo/sales_quotation.html b/templates/demo/sales_quotation.html
new file mode 100644
index 00000000..5d7f2699
--- /dev/null
+++ b/templates/demo/sales_quotation.html
@@ -0,0 +1,201 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>Q U O T A T I O N</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+
+ <br>
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Number</th>
+ <th width=17% align=left>Date</th>
+ <th width=17% align=left>Valid until</th>
+ <th width=17% align=left nowrap>Contact</th>
+ <th width=17% align=left nowrap>Shipping Point</th>
+ <th width=15% align=left nowrap>Ship via</th>
+ </tr>
+
+ <tr>
+ <td><%quonumber%></td>
+ <td><%quodate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>Item</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qt'y</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Price</th>
+ <th><font color=ffffff>Disc %</th>
+ <th><font color=ffffff>Amount</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%></td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td align=right><%sellprice%></td>
+ <td align=right><%discountrate%></td>
+ <td align=right><%linetotal%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <td colspan=8><hr noshade></td>
+ </tr>
+
+ <tr>
+ <%if taxincluded%>
+ <th colspan=6 align=right>Total</th>
+ <td colspan=2 align=right><%invtotal%></td>
+ <%end taxincluded%>
+
+ <%if not taxincluded%>
+ <th colspan=6 align=right>Subtotal</th>
+ <td colspan=2 align=right><%subtotal%></td>
+ <%end taxincluded%>
+ </tr>
+
+ <%foreach tax%>
+ <tr>
+ <th colspan=6 align=right><%taxdescription%> on <%taxbase%> @ <%taxrate%> %</th>
+ <td colspan=2 align=right><%tax%></td>
+ </tr>
+ <%end tax%>
+
+ <tr>
+ <td colspan=4>&nbsp;</td>
+ <td colspan=4><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td colspan=4>&nbsp;
+ <%if terms%>
+ Terms Net <b><%terms%></b> days
+ <%end terms%>
+ </td>
+ <th colspan=2 align=right>Total</th>
+ <th colspan=2 align=right><%quototal%></th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <%if notes%>
+ <td>Notes</td>
+ <td><%notes%></td>
+ <%end notes%>
+ <td align=right>
+ All prices in <b><%currency%></b> Funds
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td width=60%><font size=-3>
+ Special order items are subject to a 10% cancellation fee.
+ </font>
+ </td>
+ <td width=40%>
+ X <hr noshade>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/demo/sales_quotation.tex b/templates/demo/sales_quotation.tex
new file mode 100644
index 00000000..771fe6a3
--- /dev/null
+++ b/templates/demo/sales_quotation.tex
@@ -0,0 +1,148 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+\newsavebox{\ftr}
+\sbox{\ftr}{
+ \parbox{\textwidth}{
+ \tiny
+ \rule[1.5em]{\textwidth}{0.5pt}
+Special order items are subject to a 10\% cancellation fee.
+ }
+}
+
+<%include letterhead.tex%>
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+ \rule{\textwidth}{2pt}
+
+ \hfill
+ \begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
+ & \textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
+ \end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%quonumber%>}{<%company%>\hfill <%quonumber%>}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+ & carried forward from <%lastpage%> & & & & & <%sumcarriedforward%> \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+
+\vspace{1cm}
+
+\textbf{Q U O T A T I O N}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Quotation \#} & \textbf{Date} & \textbf{Valid until} & \textbf{Contact} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5ex]
+ \hline
+ <%quonumber%> & <%quodate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}lXrlrrr@{}}
+ \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\
+<%foreach number%>
+ <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%sellprice%> & <%discountrate%> & <%linetotal%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{0.2cm}
+
+\hfill
+\begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
+ & Subtotal & <%subtotal%> \\
+<%foreach tax%>
+ & <%taxdescription%> on <%taxbase%> & <%tax%>\\
+<%end tax%>
+ \hline
+ & Total & <%quototal%>\\
+\end{tabularx}
+
+\vspace{0.3cm}
+
+\hfill
+All prices in \textbf{<%currency%>}.
+
+<%if terms%>
+Terms: <%terms%> days
+<%end terms%>
+
+\vspace{12pt}
+
+<%notes%>
+
+}
+
+\vfill
+
+\hfill \parbox{7cm}{X \rule{6.5cm}{0.5pt}}
+
+\rule{\textwidth}{0.5pt}
+
+\usebox{\ftr}
+
+\end{document}
+
diff --git a/templates/demo/statement.html b/templates/demo/statement.html
new file mode 100644
index 00000000..9a951a98
--- /dev/null
+++ b/templates/demo/statement.html
@@ -0,0 +1,137 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3><h4>S T A T E M E N T</h4></th>
+
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td colspan=3 align=right><%statementdate%></td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=10></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr>
+ <th align=left>Invoice #</th>
+ <th align=left>Order#</th>
+ <th width=10%>Date</th>
+ <th width=10%>Due</th>
+ <th width=10%>Current</th>
+ <th width=10%>30</th>
+ <th width=10%>60</th>
+ <th width=10%>90</th>
+ </tr>
+
+ <%foreach invnumber%>
+ <tr>
+ <td><%invnumber%></td>
+ <td><%ordnumber%></td>
+ <td><%invdate%></td>
+ <td><%duedate%></td>
+ <td align=right><%c0%></td>
+ <td align=right><%c30%></td>
+ <td align=right><%c60%></td>
+ <td align=right><%c90%></td>
+ </tr>
+ <%end invnumber%>
+
+ <tr>
+ <td colspan=8><hr size=1></td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <th align=right><%c0total%></td>
+ <th align=right><%c30total%></td>
+ <th align=right><%c60total%></td>
+ <th align=right><%c90total%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=10></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td align=right>
+ <table width=50%>
+ <tr>
+ <th>Total Outstanding</th>
+ <th align=right><%total%></th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td><hr noshade></td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ <td>All amounts in <b><%currency%></b> funds.
+ <br>Please make check payable to <b><%company%></b>.
+ </td>
+ </tr>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/demo/statement.tex b/templates/demo/statement.tex
new file mode 100644
index 00000000..0beb6c64
--- /dev/null
+++ b/templates/demo/statement.tex
@@ -0,0 +1,78 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+\parbox[t]{.5\textwidth}{
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+}
+\parbox[t]{.5\textwidth}{
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{S T A T E M E N T} \hfill \textbf{<%statementdate%>}
+
+\vspace{2cm}
+
+\begin{tabular*}{\textwidth}{|ll@{\extracolsep\fill}ccrrrr|}
+ \hline
+ \textbf{Invoice \#} & \textbf{Order \#} & \textbf{Date} & \textbf{Due} &
+ \textbf{Current} & \textbf{30} & \textbf{60} & \textbf{90} \\
+ \hline
+<%foreach invnumber%>
+ <%invnumber%> & <%ordnumber%> & <%invdate%> & <%duedate%> &
+ <%c0%> & <%c30%> & <%c60%> & <%c90%> \\
+<%end invnumber%>
+ \multicolumn{8}{|l|}{\mbox{}} \\
+ \hline
+ \textbf{Subtotal} & & & & <%c0total%> & <%c30total%> & <%c60total%> & <%c90total%> \\
+ \hline
+\end{tabular*}
+
+\vspace{0.5cm}
+
+\hfill
+\begin{tabularx}{\textwidth}{Xr@{\hspace{1cm}}r@{}}
+ & \textbf{Total outstanding} & \textbf{<%total%>}
+\end{tabularx}
+
+\vfill
+All amounts in \textbf{<%currency%>} funds.
+
+Please make check payable to \textbf{<%company%>}
+
+\end{document}
+
diff --git a/templates/demo/timecard.html b/templates/demo/timecard.html
new file mode 100644
index 00000000..73516e22
--- /dev/null
+++ b/templates/demo/timecard.html
@@ -0,0 +1,124 @@
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>T I M E &nbsp;&nbsp; C A R D</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr valign=top>
+ <td>
+ <table>
+ <tr>
+ <th align=left>Employee</th>
+ <td><%employee%></td>
+ </tr>
+ <tr>
+ <th align=left>ID</th>
+ <td><%employee_id%></td>
+ </tr>
+ </table>
+ </td>
+
+ <td align=right>
+ <table>
+ <tr>
+ <th align=left nowrap>Card ID</th>
+ <td><%id%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Date</th>
+ <td><%transdate%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>In</th>
+ <td><%checkedin%></td>
+ </tr>
+ <tr>
+ <th align=left>Out</th>
+ <td><%checkedout%></td>
+ </tr>
+ <tr>
+ <th align=left nowrap>Hours</th>
+ <td><%qty%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr valign=bottom>
+ <td>
+ <table>
+ <tr valign=top>
+ <th align=left>Job/Project #</th>
+ <td><%projectnumber%></td>
+ </tr>
+ <tr>
+ <th align=left>Description</th>
+ <td><%projectdescription%></td>
+ </tr>
+ <tr valign=top>
+ <th align=left>Labor/Service Code</th>
+ <td><%partnumber%></td>
+ </tr>
+ <tr>
+ <th align=left>Description</th>
+ <td><%description%></td>
+ </tr>
+ </table>
+ </td>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right>Rate</th>
+ <td><%sellprice%></td>
+ </tr>
+ <tr>
+ <th align=right>Total</th>
+ <td><%total%></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <%if notes%>
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <%notes%>
+ </td>
+ </tr>
+ <%end notes%>
+
+</table>
+
+</body>
+</html>
+
diff --git a/templates/demo/timecard.tex b/templates/demo/timecard.tex
new file mode 100644
index 00000000..b7630a00
--- /dev/null
+++ b/templates/demo/timecard.tex
@@ -0,0 +1,52 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+\centerline{\textbf{T I M E}\hspace{0.5cm}\textbf{C A R D}}
+
+\vspace*{0.5cm}
+
+\begin{tabular}[t]{ll}
+ \textbf{Employee} & <%employee%> \\
+ \textbf{ID} & <%employee_id%> \\
+\end{tabular}
+\hfill
+\begin{tabular}[t]{ll}
+ \textbf{Card ID} & <%id%> \\
+ \textbf{Date} & <%transdate%> \\
+ \textbf{In} & <%checkedin%> \\
+ \textbf{Out} & <%checkedout%> \\
+ \textbf{Hours} & <%qty%> \\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular}[b]{ll}
+ \textbf{Job/Project \#} & <%projectnumber%> \\
+ \textbf{Description} & <%projectdescription%> \\
+ \textbf{Labor/Service Code} & <%partnumber%> \\
+ \textbf{Description} & <%description%> \\
+\end{tabular}
+\hfill
+\begin{tabular}[b]{lr}
+ \textbf{Rate} & <%sellprice%> \\
+ \textbf{Total} & <%total%> \\
+\end{tabular}
+
+\vspace{0.3cm}
+
+<%notes%>
+
+\end{document}
+
diff --git a/templates/demo/work_order.html b/templates/demo/work_order.html
new file mode 100644
index 00000000..38fadacf
--- /dev/null
+++ b/templates/demo/work_order.html
@@ -0,0 +1,161 @@
+
+<body bgcolor=ffffff>
+
+<table width=100%>
+
+ <%include letterhead.html%>
+
+ <tr>
+ <td width=10>&nbsp;</td>
+
+ <th colspan=3>
+ <h4>W O R K &nbsp;&nbsp; O R D E R</h4>
+ </th>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% callspacing=0 cellpadding=0>
+ <tr bgcolor=000000>
+ <th align=left width=50%><font color=ffffff>To</th>
+ <th align=left width=50%><font color=ffffff>Ship To</th>
+ </tr>
+
+ <tr valign=top>
+ <td><%name%>
+ <br><%address1%>
+ <%if address2%>
+ <br><%address2%>
+ <%end address2%>
+ <br><%city%>
+ <%if state%>
+ , <%state%>
+ <%end state%>
+ <%zipcode%>
+ <%if country%>
+ <br><%country%>
+ <%end country%>
+ <br>
+ <%if contact%>
+ <br>Attn: <%contact%>
+ <%end contact%>
+ <%if customerphone%>
+ <br>Tel: <%customerphone%>
+ <%end customerphone%>
+ <%if customerfax%>
+ <br>Fax: <%customerfax%>
+ <%end customerfax%>
+ <%if email%>
+ <br><%email%>
+ <%end email%>
+ </td>
+
+ <td><%shiptoname%>
+ <br><%shiptoaddress1%>
+ <%if shiptoaddress2%>
+ <br><%shiptoaddress2%>
+ <%end shiptoaddress2%>
+ <br><%shiptocity%>
+ <%if shiptostate%>
+ , <%shiptostate%>
+ <%end shiptostate%>
+ <%shiptozipcode%>
+ <%if shiptocountry%>
+ <br><%shiptocountry%>
+ <%end shiptocountry%>
+ <br>
+ <%if shiptocontact%>
+ <br><%shiptocontact%>
+ <%end shiptocontact%>
+ <%if shiptophone%>
+ <br>Tel: <%shiptophone%>
+ <%end shiptophone%>
+ <%if shiptofax%>
+ <br>Fax: <%shiptofax%>
+ <%end shiptofax%>
+ <%if shiptoemail%>
+ <br><%shiptoemail%>
+ <%end shiptoemail%>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr height=5></tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100% border=1>
+ <tr>
+ <th width=17% align=left nowrap>Order #</th>
+ <th width=17% align=left>Order Date</th>
+ <th width=17% align=left>Required by</th>
+ <th width=17% align=left nowrap>Salesperson</th>
+ <th width=17% align=left nowrap>Shipping Point</th>
+ <th width=15% align=left nowrap>Ship Via</th>
+ </tr>
+
+ <tr>
+ <td><%ordnumber%></td>
+ <td><%orddate%></td>
+ <td><%reqdate%></td>
+ <td><%employee%></td>
+ <td><%shippingpoint%>&nbsp;</td>
+ <td><%shipvia%>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <td>
+ <table width=100%>
+ <tr bgcolor=000000>
+ <th align=right><font color=ffffff>Item</th>
+ <th align=left><font color=ffffff>Number</th>
+ <th align=left><font color=ffffff>Description</th>
+ <th><font color=ffffff>Qt'y</th>
+ <th>&nbsp;</th>
+ <th><font color=ffffff>Bin</th>
+ <th><font color=ffffff>Serial #</th>
+ </tr>
+
+ <%foreach number%>
+ <tr valign=top>
+ <td align=right><%runningnumber%>.</td>
+ <td><%number%></td>
+ <td><%description%></td>
+ <td align=right><%qty%></td>
+ <td><%unit%></td>
+ <td><%bin%></td>
+ <td><%serialnumber%></td>
+ </tr>
+ <%end number%>
+
+ <tr>
+ <td colspan=7><hr noshade></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+
+ <%if notes%>
+ <td><%notes%></td>
+ <%end notes%>
+ </tr>
+</table>
+
+</body>
+</html>
+
diff --git a/templates/demo/work_order.tex b/templates/demo/work_order.tex
new file mode 100644
index 00000000..c8d48172
--- /dev/null
+++ b/templates/demo/work_order.tex
@@ -0,0 +1,141 @@
+\documentclass{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage[letterpaper,top=2cm,bottom=-3cm,left=1.1cm,right=1.5cm]{geometry}
+\usepackage{graphicx}
+
+\begin{document}
+
+\pagestyle{myheadings}
+\thispagestyle{empty}
+
+\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
+
+<%include letterhead.tex%>
+
+
+<%pagebreak 65 27 48%>
+\end{tabularx}
+
+\newpage
+
+\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
+
+\begin{tabularx}{\textwidth}{@{}rlXrll@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ & \textbf{Serial Number} \\
+<%end pagebreak%>
+
+
+\vspace*{0.5cm}
+
+\parbox[t]{.5\textwidth}{
+\textbf{To}
+\vspace{0.3cm}
+
+<%name%>
+
+<%address1%>
+
+<%address2%>
+
+<%city%>
+<%if state%>
+\hspace{-0.1cm}, <%state%>
+<%end state%>
+<%zipcode%>
+
+<%country%>
+
+\vspace{0.3cm}
+
+<%if contact%>
+<%contact%>
+\vspace{0.2cm}
+<%end contact%>
+
+<%if customerphone%>
+Tel: <%customerphone%>
+<%end customerphone%>
+
+<%if customerfax%>
+Fax: <%customerfax%>
+<%end customerfax%>
+
+<%email%>
+}
+\parbox[t]{.5\textwidth}{
+\textbf{Ship To}
+\vspace{0.3cm}
+
+<%shiptoname%>
+
+<%shiptoaddress1%>
+
+<%shiptoaddress2%>
+
+<%shiptocity%>
+<%if shiptostate%>
+\hspace{-0.1cm}, <%shiptostate%>
+<%end shiptostate%>
+<%shiptozipcode%>
+
+<%shiptocountry%>
+
+\vspace{0.3cm}
+
+<%if shiptocontact%>
+<%shiptocontact%>
+\vspace{0.2cm}
+<%end shiptocontact%>
+
+<%if shiptophone%>
+Tel: <%shiptophone%>
+<%end shiptophone%>
+
+<%if shiptofax%>
+Fax: <%shiptofax%>
+<%end shiptofax%>
+
+<%shiptoemail%>
+}
+\hfill
+
+\vspace{1cm}
+
+\textbf{W O R K} \parbox{0.3cm}{\hfill} \textbf{O R D E R}
+\hfill
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
+ \textbf{Order \#} & \textbf{Order Date} & \textbf{Required by} & \textbf{Salesperson} & \textbf{Shipping Point} & \textbf{Ship Via} \\ [0.5em]
+ \hline
+ <%ordnumber%> & <%orddate%> & <%reqdate%> & <%employee%> & <%shippingpoint%> & <%shipvia%> \\
+ \hline
+\end{tabularx}
+
+\vspace{1cm}
+
+\begin{tabularx}{\textwidth}{@{}rlXrll@{}}
+ \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
+ & \textbf{Serial Number} \\
+<%foreach number%>
+ <%runningnumber%> & <%number%> & <%description%> & <%qty%> &
+ <%unit%> & <%serialnumber%> \\
+<%end number%>
+\end{tabularx}
+
+
+\parbox{\textwidth}{
+\rule{\textwidth}{2pt}
+
+\vspace{12pt}
+
+<%notes%>
+}
+
+\vfill
+
+\end{document}
+
diff --git a/templates/foo.sh b/templates/foo.sh
new file mode 100644
index 00000000..4b5a4793
--- /dev/null
+++ b/templates/foo.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+for File in `ls -1 *.eps`
+do
+cp Brazilian_Portuguese-logo.eps $File
+done
diff --git a/users/sql-ledger.eps b/users/sql-ledger.eps
new file mode 100644
index 00000000..3a22b2ff
--- /dev/null
+++ b/users/sql-ledger.eps
@@ -0,0 +1,1334 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: GIMP PostScript file plugin V 1.17 by Peter Kirchgessner
+%%Title: Brazilian_Portuguese-logo.eps
+%%CreationDate: Thu Aug 31 19:25:05 2006
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 2
+%%Pages: 1
+%%BoundingBox: 14 14 415 215
+%%EndComments
+%%BeginProlog
+% Use own dictionary to avoid conflicts
+10 dict begin
+%%EndProlog
+%%Page: 1 1
+% Translate for offset
+14.173228346456694 14.173228346456694 translate
+% Translate to begin of first scanline
+0 199.99842519685043 translate
+399.99685039370081 -199.99842519685043 scale
+% Image geometry
+400 200 8
+% Transformation matrix
+[ 400 0 0 200 0 0 ]
+% Strings to hold RGB-samples per scanline
+/rstr 400 string def
+/gstr 400 string def
+/bstr 400 string def
+{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop}
+true 3
+%%BeginData: 80402 ASCII Bytes
+colorimage
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcDhO#l`\dMJDhXqu20Hci8L~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE%U#5ZoRL/oo4rW!'\f\l;tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE7[#56?AISqWup](G%XMj8tJcF'rJ,~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+JcE=]!M:b0!!I/#\E*L;s3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_Z'^jIsuh0Hiq=\qYcl_!.aS>"V5X6^ZtcKs3L^q~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uB_Sj8]=Qg?SJ4S,W`M^:^\AQ>R`<!!P!!S'LU(JcF'rJ,~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBnXH>Q\E*q'(9$Rn,1:/@Rqg@P<5rr`8jf>%<l!N-M)!!H,JWnR6!s3CXp~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uBu@o@gjVU5^es!":)[J;KJYTVSU#g[tK7rs8W"mc<?ejPNZ-!!NOBM7D^GJcF$qJ,~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_uC#Aq!-S[bf7.Fp&GO'6ud[=VRF=^c-kD7qO.?grquWhr;?Cfq>^[BFHsr8rdk*ps*t~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+_Z'l>qY'ONmcTo0!"DD<KV?34jQuC,o_87^P5bM4q>^XaH_]-aJcF!pJ,~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+^&J05r71NA#qKtIV97rnqu6STrrDN`!!HbaZJkY2s3:Ro~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl]p](O#@XFZflMCL<rrAhj!!O!UO2:/\JcF!pJ,~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhl>p](IBEf@Tiq2,+O>l"F(1jGP;oDX=@c2W:~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhklp](IiHD&[Vre^XT'`%e4;h1q(pjrIhs*t~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]Dhk5q#CR%CPK4UqMG4Pa8,c>#&]=0kPTo2bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]DhjRq#CRFFHjf4re^XTJ,0-K-?YZtn,@n<bl<1~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.uhp](FgI&,?eM#RH7q>^XeI&5HgJcEpnJ,~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.tuq#CR#Bnj%TqMG4PlhLM`AVRSOqLS[is*t~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+]`.t.q#CR<F-FT1re^XTU\Xro)01kWm/DS9bQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J--%/Bl+5'imOoSEMI=S`"$3-h.Do_sFAbQ!(~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J)Ep](G'K<X;1M>mVR&GcA0=+RO2q18Rgs*t~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J(Rq#CR/EK7g!rJCOS_tj?:$?1s;kkp#3b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^&J'\q#CRMGFQnKre^XTHhm^G.X%3&nG\"=b5Zt~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2jp](FlI];&rM#RH3q>^XiI](lmJcEjlJ,~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae2"q#CR#Cl#U`r/(FRkP>/^!bmFujSON.ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^Ae1,q#CR>FHji6re^XTTDANk*-7=_mJ_\:ao?k~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+?/%/Bl+5^K0Son`VJ<;HRt4*mRKoR[%`s*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+;Cp](G)KX'J3M>mVR%/Kr,>_93;qLS[fs*t~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+:Mq#CR0EK@p#rQ5'Lrmn68IXQWlKVm)iqY^?MrsS8#NdcD)Lp61>qu6Tp!5J@1"V5U5^?PR`
+rs&>JY*ONbIK"TuR_7hYqu-NFrso%ZY*+6^I=-^FchI;6rp'Lgrmn6,nG)q\p\tNZQ@FIup%\Ia
+f`-I~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+^]+9Zq#CRPGF["MrlkBEifck@pAb@6C")VIrT*t[g3YXO!!`a/`UER"s*+;>"YFqec11f(rri51
+G;fg#!!P!*g%5%<g]%B8P=H&U!!O3Re+*53o)B0ueuja./dMFW,2D5Lr;$?ohd6Nb!!HokmeQk8
+s*t~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FDhp](FnJ#_8ucMmtCVa'\O"V$.Cnb`=LrrKGnoDf%!G2D]a/,B5K:4B1rq"+Lej*)@/!!NR7
+eF322i;WlUVa'\O"V$.Cnb`=^rs&>JWd[hu#l+H'9sDUtq>1*lP779f"-(UlqUtn!~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FCuq#CR%Cl,^br6YHFqi`#t!!a3&?>+"\5m[;e"E)]Sq>T^[!P^Gg!!acA@qTFV2$X!Z!`I@j
+q>^[&Cl,[ar:U'kk@4Yl!!iia9k.^G=um)g!!<abWjVQ3"3UH:rUKmhqi`#t!!a3&?>+"\5m[;e
+"E)]Sq>UBn"8>_E"S2Tr?]hbTqY^?oo2#,]"AGiGoD[JDJ,~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_#FC*q#CR?FHsr9rmC`HY9a#G$7]_BLle$tV59D'qZ$a#LX#2_mJd4I=8`+,!]+nNLm"7%VPKD8
+r;ZjlG5;1B+*<afmf)q[!L")l!"9*!FFK%1SYW-YRSs@V!!HollhLJNrrK;Kqu@'RBS;2'R@pCQ
+PU?8-"9OA'm/-b]!'B`O"U/e$]&rqhrrM.1pAb=YOi$G_gAc[~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aQ1#l+H'6$o?Vp!Wj@k>2!U%2`Q&KTrCGb1#"qe@5qa!!FRHeFNS,rrJ;lr;[9DBRY]&XM<$2
+f\"Wj;>gIp%/Kr,5^K0Tp%SIeo2#2_%NAo%LRkcjdF[((d`7@RmJmB=\CC!Gp&>'U:](2%(h.oH
+Pc)+8e(E=&\.&67"=0tro)8Rf#KNL5VOWWD#Pe?',BT3ln,E=d!S81^!!G9:\E<_Cs*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aMEp](G+KX0S5e,KHX'`A"B!]kIPOJp%Jk4&'<p\!l^q>^VH\E!GUrrM.Iqu@6aGCGXR`S0SH
+pA"CSm+aPn!!H\_ZJbTSrrM:5q>_$NCjV>Lbi%m\pA"CSmbjH#!!NRWS&XgnpAY0&'`A"B!]kIP
+OJp%Jk4&'<p\!l^q>^VH\E!Gbrs/GcbdXg_Z=s%6"@7F1eb/qA!S81]!!GQ@[cRG@s*t~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aLOq#CR2Ef\'%rRCiIHi*jN##]SrS@dA;pAFpgrrN(cq>^Y)U=Ai7oD\j''`A"=!_%6_R_%,:
+p\b$hrrW/m\+]k+&os&KlM^PY!Ttm-!!jQ\I$hS$n+lq[rr`5qlr*<Q"X%uTam]6'rr@ED!"&p.
+Fb?3rf';u,rr)itrL!E]%UPmZo`"mjrUoC3hW!P0q#C\0KX0S5s8U[foDf"oLq)XGgAc[~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_>aKXq#CRRGb!+Nrmq)Mqc!Cm#mt!^M5SGTo_e^brrAYe!!HDhaRB-#rrJ#\r;[*)9QYr^`o?Xg
+q>UNqpE952"Yt=mcgq)3rrM^>q>^a/A9sTVi:['DrrN#6n,NSVI&#6cq#:Bl;u?V%$=7n4Vo[oj
+r;QQm!1s#e"B^r1n,E=d#6"GpqYU0+q>^d6Efe-'rr;.$rW)s6q#CR%D2l<qrS%:%~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Vfp](FoJ?.K#f)GdB5PtKe&S-*GYL2\3rqQKnO88hZ=HLJgrq??mqe,d+#>0#kVp"<!rqHEn
+rD`Ol"As]Mh"^^F!(Zhb##BB'\`!2\pAY0i*Voa<+[ejpr([B9O14-Fq>UKe5PtKe&S-*GYL2\3
+rqQKnO88hZ=HLJgrqQKnVYU9&13f>8oD\>8!!!OBIXXf`!!OcnQcegsgAc[~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'Uoq#CR%D2Pper7CrLq`F]U#7=d\OL3U-qtC$i<;HRtCQQL%rqHEnqc!@l#<d*\Vp=W)rq69k
+?MOR)#&]=0k5>)U!/pXQ"t";DY1`IHp&>'l:&4hm*--XqT)G;bUU&;8rVHNpq`F]U#7=d\OL3U-
+qtC$i<;HRtCQQL%rqQKnFSYtI;1P_&q#<te!"XC-MkQ1-!!HDQVV(Uqs*t~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_Z'U(q#CRCFI(#:rn.5Oqc!Cm#6RqJNjRL1r:^-kmg/dj"Vc'Damf<)rrN!qqZ$gNE.Xn0lh^5Q
+!+5O%"XJ2Uam]6+rrLj[q>^^%@!eNimel\V!+,L%"9j%9]?gH*"P2Grq>U9k!W,gn!!`U*FcNi^
+o)/4]!Ug<k!!O'YQ-&Opq#:=VqZ%02D2Pper-n\H&:K4nYKtl3qu?mIEK%Kkqq;""~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uBc/#l+H'6%#HYp=K<EGP_@E5&uI_fCJk4rr@QF!!GB/T@3B,rrN!qqZ$g<Cjqtsl2'uN!)r[n
+"@IR4f(St?!+5O%"YOhT]&`\Xrr?F%!!Hr+cKt6&p&b$drqcWpGP_@E5&uI_fCJk4rr@QF!!GB/
+T@3B,rrMj"qZ%0PFI(#:Z2ak1GDD9cf'iEgr;[$7B7?W'o)@>BJ,~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB_Cp](G,KsTe8f`(rLqZ$gBDh=k6n,2kY!Tt$k!!NR=K<O2.q#:>4qZ$j,@!S*Tjn\oHrr=kN
+!!Hke[,UrZrrM![q#CS*IAG?`rpp'h;u$Cr=ddP*rq-3jVu$Gu+)cb.dI7#+rrM9oqZ$d(AqR;E
+q=ssi^\RpK6%#HYedqf]BSqhRf'rV:pRO`37WO$J_WL^Is*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB^Mq#CR5Efe0(rn7;PgC3u["p84YR`F^jo`"neq>^[aFd0i1rV?HnS,**h9luH+i:m6@rr<K(
+!!O0ZOi$Jaqu6YCq#CR<EK%Nlqsj[d0DPSN=-CSkrq69lgC3u["p84YR`F^jo`"neq>^[aFd0i1
+rV6BmGPV:X@YD&D2?3_TNf:!dnGN=dr9hq9S=6@li:d0&s*t~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+_uB]Zq#CRTGb*4Qrn@AQq`+HQ"Z:=[\Dm;UrrA8Z!!XK_KWNo$rqcWq`ru8>"taeKXk<7Enc&U8
+q#CRVGb3=Trql]q./<iH6$]'Ko)A4[!VZ`m!!H>a_sIBrrrN!VqZ$dWEfITgq"4RdPPP7`*cH_5
+g@kO@rr=VI!"BQ]OMP]4!&BaqUs/3&rr3<(qX3.ccIh=RrR_("~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]hhp](FqJ?7Q$g&D&1qZ$g-C4N22o)A=^!NQA#!!X!HI%8=Fr;-Eomi;3)"q>6oU!<$'nG`KL
+q#COtJZ[f)qu6Z^p](G,KWsD1nc&U(p](G"O2C8_pAY,NqZ$g-C4N22o)A=^!NQA#!!X!HI%8=F
+r:p9lj8&`a13f=Y"994!MOh`MqY^?urquN^o(Mt[f)L7~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]gmq#CR&DMl'hr7_/Oh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-Oj7rHM!)r^o"]'<*^ukL^rr>I`
+!!N^KN4eBPqu6Z.q#CR/Ef\'%rUKmfJ+s!HCQQL%rqHEnh[KA^"[$mi_<CdhrrK/'qZ$g3@X+-O
+j7rBK!1Wfb$rMPL)?9kiN0_-9q#:*hs8LLIJ,~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`;]g&q#CRDFdL8>rn@AP=8Mt%#%iFdf_5=<rrJ#\qZ$j4@X+'GhY$mErrB+r!!X]fL9TG+rp]pg
+lNI%a"XnP]b4,E-rrA\e!!ONhRa1L'nc&SSq#CR0FHsu;rqHEm=8Mt%#%iFdf_5=<rrJ#\qZ$j4
+@X+'GhY$mBrr?$q!"9$JMFddJ>`k/Sg@YBcs*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#u1"Si$#6[Y]\p=fNHa8,c>/T[)llMUDV!UEPX!!aZ]HBYhmoDSOc!Uh$*!!WO4H_/ILrU9ad
+Mtm>U7t%8epA4dhT(r?h0moeLp[S7ao*"jh">4qjde*;6!6=p9"YFeY_Wq'nrrMF]q>^aDBmPuP
+g[kC<rrMj&qZ%!KFDLpW/=DNsdI@(Ss*t~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#q=p](G.Ks]k9gA_.<q>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&oDJFa!-@u:"YatV]&`\Trr=>@
+!!NF<LUH4?qYpPeq#COVJ?@])nc&T]p](G!J?.K#p\t4Yq>^\&I\t]hrqQKoT+q/&#Qm2/I[Ib&
+oDJ=^!5&(-$:/kM!"=sLT#U'm`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#pKq#CR7Efn6*rnIGQa8,c>'QAuAk54uS!P^;a!!jWPG))g0i:QsCrrLjWqZ$g)Aq$T*oD\4Y
+!3c1u"WDHF`U3[$rrAql!!G<7ZJtfPrr>=[!!O9\N4e?Oq#:?7q>^[5E/V<iqt^6m^G#E`#Td;q
+LSD]Eo_eC^!-@u:$=Z$r!,7U^\`*>_`rCP~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`W#oXq#CRVGb3=TrnIGQ<;HRu4F!CAnc&Id!rK/[q>^g99lkiMYg2G+rqQKn?hsa+/p!,hkkjfJ
+!&43K"Z^k$e+EY9rrC@?!!G97[,h/UrrCC?!!Q>JT$R!,q#:=nq>^[]Gb!(Lrquctql_sT!!s?6
+F+BO[cKFs$o`"n>qZ$s9>lk!\R#nE#oDZ`/J,~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?%fp](FsJZ[f)g]%<;"Sr*$?@o<8q#13ob'"a#!"'Q:F+04K_VFVVrqQKogB@BR"p/1]VUkD=
+n,EBkp](G%K!+#,q>UKp'D_\3/VLLlr:9jf;#((p/THZWiq`BL!TsU^!!HV[XkidNrrU>d)u9OA
+(ef""OJftNn,!%UrrCsQ!!tCt!"+OCTZQQu`;b>~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$oq#CR(E/VBmr7h5OMu!D[&93`El28tu?5NG<$O/4fG(>^P^=MQBrV$6k?hsa+,BAgXkPO`J
+!W+SH!!NgONP=ZTq>UKpB_h]3'8!IHqXa^e]D2F2'P`,mdII21rr@uR!!s3VNkXcUd[FJYq>^m-
+/mELLOf#kDl1Y)HrrAD^!!jnO!*P>K]AiV's*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+`r?$(q#CRFFdU>@rnIGQ2#71U+\kg-0+7RU%0e4SF+&k2X2*9Ko_\X]rrMEkq>^[mH_AdXrpTje
+QhUOa.s@B+nc&=`!S%>L!!?l3g%Y.=!UCa%!!Wd<H'cD3qY1!i2#71U+\kg-0+7RU%0e4SF+&k2
+X2*9Ko_\XXrr>ah!!ic/+bl&Zf(AsZs*t~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z2/"Si$#7=:rap=oTIkO/B]"sZB?H[pp:UUJ7tl1FlPo`"oLq>^[)D25OYqX=FblP0*o"AXEE
+g@t@A!W6d1!!FU9bOGN)rrN!Yq>^a->BZ+<htI'ErrD6N!"T8Y5[SkgLm4[CaP,nNqu6*b!V[#u
+!!WR<K:^0Nr5/Ja~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z.;q#CR"B83eRqr@\Yrr)fprVlkio`,X,(+VUQDM3b%Odi;X`ms,;p\b$]rr=bL!!O]kQ,i=k
+n,EApp](I"Cl#U_qtL*lrp2$/!!??1i;!'H!V8hX!!a$=G)ir`oDSF`!2&oa'*8q"5?_rXL5M+_
+W4'^rj6l[>rpKdd\+fq,20P"iiV:7hJ,~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z-Iq#CR9Eg"B-roO.aK)dmunG*"^rr?m2!#.=[>&oIXN/s3lU9(i@cJ%@Ip%n[WrrCgL!!G`<
+Ut>>/rrBD"!!OEcPfE.jpAY3kaqX^Q"TiDXl2(DUrrLFrq>^aCB6fTGf^\n5rr?m2!#.=[>&oIX
+N/s3lU9(i@cJ%@Ip%n[Rrr?m2!!WjHJ>Ufdrk\Vb~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+a8Z,Vq#CRXH(WOWroX4ck6q?5bLc1[rr2sTq>_-4DL.>6VQR>?`Qm&kjm;R4qu6!_!/L@M"CQtk
+iqi0E!Uh$&!!GK3U=Al/rr`8p^)$PF"A6Jnq#10k!p4D(qZ$m/6umgF\_?TOp&>"Kq>_-4DL.>6
+VQR>?`Qm&kjm;R4qu5gZ!$q@?"[dEr_<Cd3s*t~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu7`p](FuJZdl*jo5Qi!!&Ui`9@-urr<W,!"T]`NO$g^hW3qho(MnWrr23_!(cqd"UK+/_X%3j
+rr?."!!!)s!!H\_Yi,BMrr`5k`\dMl#RaOmZad<#63R/c#m`G'HAeT:i:Hm=rr<W,!"T]`NO$g^
+hW3qho(MnWrr2'[!8I;L"qPO&XP3CI_#Jo~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6mq#CR*E/_Kor9""e_Z0ZeR%)"ZrVuodq#Ca?Gb!%Gq"jperr2$Z!"eu,"WV]Rc1:l(rrA\j
+!!"\K!!NpRO21&ZoD\skn_&4)n,Ngt*_:6tMOq<*kkG&JrrDN`!"'WhSB^HrqY^<kro*kWPPG1^
+4Ed%1m/4WuJ,~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+aSu6&q#CRHG*pJBroa:iq^_^I?AtW+oD\diht[6T*.+L6pYc&Oj7rZX.XIi?p@8.ddgQ3V)GBo,
+"Yb.jcgq)+rs&DmhS=4e"SVm+$R.T3Faf(.UUSP.nbW7VrrCsP!!F9gUtGFrrr>Ud!!NO>Jum`$
+^Ai]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;D1"Si$#7t%8ep?)A\MZ<_YJ;^\jq>UBohY@-S)gnO:pu)/P^\Ij42h.j_q==Oio-aS=$#q<g
+!!H/LWndC=rs&GqkgR1m'`J(F![C<HEeKF1N0'F'[):DSnG3%QrrCpO!!F6gVV:h#rrM]sq>^[L
+F-=E*r4`2]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;@9q#CR"Bns+Wqrdtch[BJb-%M/qli$h_!8dMO";H6\gA'V+!2'&e"?1q:iVW6H!W,Oh!!6MR
+"T&0&"`9..k5=]J"9/2)3;rmj&O'oSKp&%)XKoCRbh(k@o_SRUrrCpO!!F!`VV:h#rrBD$!!Q>M
+V:P>=^Ai]~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+ao;?Gq#CR:F-=N0roa:]5lL`e9Ri_`o`"ji!8dMO"9WnEfCnG."4$lCrr)isT(r?h3J=d#r:Bpg
+GQ%RD7XeS<!!OThQH8Oon,EF35Q1Wq(L_iEN1I2id+I16kNqd5qYpK]rrCpO!!ECKUt>>(rr^RF
+r;QNl!,23/"V>X1\`N_%s*t~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VM>&GZ;04F3[Lo`"(S!0dB^"U&atZJbTXrrDcf!!?>odIc`(#4"bfb3ej!rr2tiq#COWKXKn=
+o`"oPrW!$OJ:p#\!!GZ:Ut58/rrM_,rW!K2:m@!)Uq4k0lgslHqu-Nnl2LbWp](CuS^I)prs%dZ%
+*Iu0r;-En+Sl'A3-Lb7nG^-$J,~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VIRp](G'K!4)-kl1\4%/p51,^#9fm/?n_!WF>>!!FX3`U3WjrsQFU!!@bqiV*9Ns.9#d"=o/4
+jS\]N#ce(.!#p<:S.>Aq#\8XqinEPmr;QBh!S8b!!"0$JM2e1=dcL&qrVkjW!WF>>!!FX3`U3Wj
+rs64R!!@bqiV*9KrrC[H!!H_]XPET`s*t~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+b5VHLq#CR/EK7g!rTX=_k90^'"\3p6e+EY;rr?C#!!?i>i;)g@%JOc@!!@D@Yg`1Bs8Stl!!Emb
+YMf9Nrs5Y.!!!RTJ!Q8o!"'?ZOM^<I&>AI_r:g3lh\c:l#Xj&sVo[lgqu5LQ!+,F#"(nmtq<n7i
+pMU$3"*UNFe+3M9rr@uR!!O6\NkaiV]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqV;%/Bl,.X.?+o)@qS!S8=i!!NI>L9on9qu6Ytp](F.Oj!1jnGa!=-NF,PDO$Nng@YCEs2Og6
+")"Lap\4[oNs#F_$ugZX\8qEG$SH[od%LF>P0DhVrqZQpq_7pJ#"*d0b3Jg%h>[JVp](F.Oj!1j
+nG`m:-NF,PDO$Nng@YCBrr>I`!!PZ6T$[*.]`3K~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqR3p](F^I](oolMgmg%/^)/,'/pcm/?h]!VdH*!!FLDf^o+6rs\@7"98E5FcDNbcg:Q.rrMZn
+q#COBR*+mrqYpTnBDql8#A&@EZe@nF!"2DKWmi'i6EI?:nG`7`!0@!W"VH*_h"^m(rrMm1p](F@
+VqCV?oD]6fDZg%?&9WtpXO$81r;Qfh#l=T*!bI"ghtanaJ,~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bPqPrp](FoKX0V7m/I+L>P\='8pd;^p&=jg!WIQB!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4rVlot
+3qr[X5-s,?rqucscS,7t#7"deN3Ch&'D_\:@Y_F.!#))pWmgS=q>UFGq>^^3AB=38rVk[R!WIQB
+!!FFAh=U[>rrW(e)#aL?)LI7%Y0lV4qu6Ysq>^[=Efe0'rO`)[~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+bl7[DpAb=SLq)UFmf*@FD[?1>"U/[r[,UrXrrMR+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZh\
+!0HpT#rSsIpAP!jg1LQf!!`^:H],#Un*'TJ$O1X5Rf`YHTUrmZq=t!a!!iciHa`87qu-NQrrMR+
+pAb@(En9^UrqcWrns1R"!!b60KTrgnmeZe[!+bp+"Z^k#de*ONs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+c2Rh1*;9F:!a2hdq#9sds8E,k^4&0<!!O]kPfE+hq>UKnVtC#t'kj]-pA4^N`K!Rsr;[*+:On+e
+]%Z]PqYpT]%efr,"[$gNE&RUo#Rk<kN31Orqo8I4$O(L))?='DS?glArqQNb!!ifbCS]_YqY^?S
+rrN%qo`,@7BWU1dqY]QrN_9ZV!!i^'J:sB&g@>+:rr=&8!!H;RY28ucs*t~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+cMmq*3:m1Q,$8u:rgNeT#(CuKD-fCEo)JncI&,?eq#:Epp0Hh]#TRT-M58)Ko_eOb!W@iA!!sEU
+HB,5Zmed%!q#C^>#QQceT<$<+r:g3k2X^VO+B4?<o_A@`rp'Lbrq9X\!!jQZI>Oc<iUm'DrrCOE
+!!NODMnJ9O])R9~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+d/O1<NtBe@"U8at[c@5YrrW/b1[4rH#XroePHW9qp\ssf!rhaQmf3\FDL@VSf'rS:s1\4-"sTP.
+VoIrspAY-$lMq.s6%-`Dq#(-XrrW/b1[4rH#XroePHW9qp\ssf!/LCN"X.uRb4,DAs*t~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+ec,f2Is,!R#gr\V.Wgrqmf)q[!rC\9m/RIr0ku#kU;#@LqYp3g!rV"4nc/q$8ooQP]\E#Trr2uX
+p](O:FcE'1iqNHGrrMtKkPtf(A@D"%r;Q-a!rC\9m/RIr0ku#kU;#@LqYp6h!'pA\"?_%+f(QZS
+J,~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+f)G`nbQ%cAIAYWip&>0opYp#qnGin#0kPZbR^CE'p&+I^"9/)L3qWIZ!\S/3Ml+MRo_e[f!WF_J
+!!aW]I[Ie*p&=Xa!r7]_jo>Q2M;e(&rp]pjrqGDh#k7m%"u0_7L75Kqk4SZGrrM]oq>^Y$K<aA2
+\c70~>
+fDblg6K\=Q"WB-W4?Pdo4p6+l]&ih]rrrDpij);hp&GL',"Q[#Lmt]mi:-UBo)Ajlp>C')q#Ca-
+0OT-[R^UZ0q#:3k!rftBr;[*-4`Pt>]\`;[p&>'%-iO)I,T-[I!!OC1jn&BKnc&dlp#<8P%e]l2
+"!U9TI#+8tb2Ddcrq6:-g3RO66TZkO/89R1ak>G'lMCDUrVc`p_uG5~>
+fDc3-AgAK<(`*r''GKsK"r/C?3]oMfm61YtOLjQNo`#*op#<8P%e]l2"!U9TI#+8tb2Ddcrpp'l
+rq>8m&GZ;5#V]Y2L75R!lM1AVrrW28$N0r1#!HsURCqDKrq69l[jV.T![JWbkPtc,R-!r:rpg!l
+rq59V:(Hst$j.\EE.!J2ZHD+pqYp0f(YX1N<'rc'0emR!XjZ4ijR;sBr;HTnrknbd~>
+fDc6;J3>hE.46Gg,U"<#*sNl<2EEr_4mbE9G`]Muqt0mlrq59V:(Hst$j.\EE.!J2ZHD+pqYp'c
+"TJ,QFV+?K$4&=nG_VZqdd$W,r;Qit^^C#?#R3G3J!mt+o`"O`!OjHU!!4D`!pBUf*LPs[qu6-c
+"oe2SZ;(o'!"8rR88rs4S$L2pnG<.WrtjC8CK*Y`2)R41LpG[tlg+-<qu$Ekrr0h8J,~>
+gA_6CM^RKa#SJU[Cl4ICR$dH4"J2pKnc&.[#laS]ca8*s2'Dku%L*7S1/_:`E/L-e^<lNJn,*ps
+lGB9$.1d!s#n@h2C5&"Yb2DgerqcX(q78g7,slHqMPJ)Jp&4[cs*k'%9)\er&Pd:_DG`D6!pTal
+;j3B4I=8["q>L$e)ZKKoca5M5$jR7P',DcW=EAnFP+oA,h<ak4r;@'%mG5jnSV:rb4tRZYo)K.6
+.77QqVp"]-r;HW:s*t~>
+gA_WSXCb's7mAmd0J>%2/aY(p3(dS&NKf`rR.?XJT!Hl9rq$..rqGU%[!bb.+:/;Z%M^0O>@_Mp
+OJ9/'f_#".r"](qb,Jl)'b_,j)_+BrKpT$di:6^DqYq$#\j.Db6>_(,UVl'`rV6EmU]HuXrW!3>
+=ES\+<]_9&l2V,jVQ@/!U<E9+rV$70rqGU%Zq25S%MBBi(a_LMF+&e+U:&/"m.U>Sr=/\qk1@he
+W0`?`B2UiFr@A%'1d4D,8ded6G`JT6f_#";rVjq=J,~>
+gA_WV`KPh&H>[%h;Gg7d:@1a]<FBcqNg,isR.?XJT!Hl9rq$..rqGU%[!bb.+:etm&f`Dk@V^"7
+Q)D4<h=UO3r"](rd'%+>(`!f$,WA_DKpT$di:6^DqYq$#\j.Db6>_(,UVl'`rV6Em^B(K0rW!3B
+@!Hj=>!*c+l2V,lZbFJn^"N,TrV$70rqGU%Zreh$',D<")CRjQF+&e+U:&/"m.U>Sr=/\tmGcjE
+_7$G9OF(D5rCmAj>ASW`J.%6uT<>oSiV!$ErVjq=J,~>
+h#@HEIh:?7#Tc9FPJ##]c-H(0"4GulqXORjrqc-Bc+C!IjT#8`m/R?)T"N_Cq#1!f%/obL[[`MH
+U:8M5p\spee,TVcf]W#.pAY9pqXED]p&G=-'G_N()]Tmq*WQH&!!iZW>`-Jlq#(-9s*t~>
+h#@HJUfI@c"%YgF4l\X1;/(]X^WF^EcM,WedbO6dnc'C(qXEFf];hGR.Olks.P*2,2*!ie7S*/D
+!)3/["\;$E2D?]].L7OVFe67umJ-YTrs\ksfX@<5QD1k8kkG)Nrt@jG!<<*#(b-sc0JtaF0Ie1Z
+$3BMo#oYim84nopkP+uLrtbV1nDI&"0eP",.Ochs/1rtM85<,d>l%b,:\RH`84>d,rB(0F5Xe6:
+8dJ+(MQ5+sq#(-9s*t~>
+h#@HM^PMi="+56/C#`k4FbQ3b_9'pGcM,WedbO6dnc&ppqXEFf];hGq8cD6f8P;iZ>@VDgG^Y)7
+J,k2sJ.d?ZFD5#[9h@lH8ksi,]\)WHrV6C$rUSULS<B24\'X@5rqHF+H9;6/!!+Q@7nZfd?<U9"
+2^8k8m/RGEAorHOWS$D.rq??urqc-BFC%sC91f+R$;!ld>@_PnIYEZ=qi1Z0pOE?oG].?qBEN!f
+G^]78#_J8?^teSWr;Ot@J,~>
+h>[MB'\!*i,YiZYa62mZnF?&JncSOYqu6'a#Q=GfkM4KR)UeZi*-S.$mJQYW$N0GOcGmrTj73!F
+p\t6"ec5mb/8hc?meueX"TA*n,R_Hh#7aOmh":IArmCar~>
+h>[M`=SbYi8,u0:7LELMS$gZ-mdKZ8nc&(]o_87^n,EXkq!mP&dV;DR3!VH*4[;>&7nDf8%S9,W
+5<Lqc3BBc^Us&0'p&>Bsn__X3aOK8?qYp6h!OE+3!##DT-n$]+5!hV'5!1e]0J"C`$j,nu#UVT+
+?\Yl5meueX#Q=FJ>Xpq<3W:uC3BKAh6:FC8lq.=N84WVJ!_5dQmn*g`J?Io(qYgE@s*t~>
+h>[N!MYho*Isl\"H4#P$Zc1S]mdKZ8nc&(]o_87^n,F("q!mP&dY;XJ@:E_XBl7s8H[^J.J.@!Q
+F)5K!@U`kaL8<#[r:U'sr:/[i`lQZinbW7ZrrKG;rW!T71dso2?>FS'EGT5p>#S'T-5?[R!!rZm
+AU&loZI&%<o`#U'pn<@]Bk:d_@:E_XBl7s8H[^J4J-(4LI/A3kI"$S7J-Uh)_rgUfrVk4EJ,~>
+hu<`75k=sc"VrFC5tXgF:/4DF.i/9O!!*]Ur]C="me$ATli.:jr:opKd%Y/9'&!<k"#=J;Ni^b$
+rq-3qrV,jMn+?JTpAY,>f)Q'a;0.S\XNp84o)Asihn"ng;)Ad$!!WNiQK@f9rmUmt~>
+hu<`@GOnE:9Mnkt@V0:fC2.Hn>Z4;[8dSO+F*)Mgme$ATli.Fnr:opKd&28#:.@`E8`E>N8Ou<>
+7TaSXNi^b$rq-3qrV,jMn+?JTpAY,>qu@NQ,q(K/6:XU>84Z3<69dRl1bgU.)%[&F!!j*8F,?6b
+cL1Z%rseb\\s@h_>t[RS7Rp!@b";k3FKjs$qYntDJ,~>
+hu<`GT_![<IscQgH[C/>IKP(MIt-[4!Jlg9S-6.co_SRQrso&+q"3gtWf)=NG^=adJ)l+hIsu`i
+GBS%NIZCMZo)A:]#Q=DemdKfErV$6kHi3pL!AZo0<+U)rrdG<'H$++DB44tC:-L3L%.jN*&m043
+Q`SL#rUTsuptrZOMLp5#G'A1WI"$RgJ-LRo_WgairmUmt~>
+i;Wha&G?)3"X69@G^kI,P*_]1rh'IfS=#7L5SE5[">J!QnGMJL#l<l9^9FDd9H)af#qBJ1L7#-c
+jnSiGs8Drirr@!8!!4`+#i,Ic89UN4bi8<po)B'omao@cYc+.?63tL0"V>7hnG)t4s*t~>
+i;Wi"<VB#m9N5D9G^kI,P*_]1rh'IfS=#CdBN""c"DGs4nGMJL#l<l9^9FDnE)tgf$!(hdL7#-c
+jnSiGs8Drirr@!8!!Y&=.ks.S8GYpg8Ou<=69dRm2)6d5*"E#D!!c&<S@?`%p&=O^$N'8C_mckK
+Sr%2W`(C25NR[ImrRLpu~>
+i;Wi2M"Z?,IsQ9]G^kI,P*_]1rh'IfS=#ItL4SN<"H^d\nGMJL#l<l9^9FE!MLs]8$$^E6L7#-c
+jnSiGs8Drirr@!8!!b/H79+#EI=M0F%tB%UH$44GBOY4I:e*2V!qu["89UN4bi8<po)B$nmao@c
+Yc+.WLr4`HL9'%tq#/bCJ,~>
+iVrn9p&GO<7W!I+P+J\^^;eCEe,@c%d`oeFZDDb'!pTag,b;X/qWIkdrqc0Li7?&`XFWVBirBDi
+9lbcMYfPVcpAO"N!/(1L";kW^EBr@\#!RdOh!Xn6nc'!rqXWt6i7cW"\Y):S!"&cA/3cp6C2SKO
+KDgH,J9#$l1DK9X"TqW;mJ$S2s*t~>
+iVrnZp.>ck@;pOIP+J\^^;eCEe,@c%d`oeFZDE@g9Bo+P>b/RgqWIkdrqc0Li7?&`XH.-lj%9YP
+@WI!bYfPVcpAO"N!/(1L"rLi`F'qF.oh#Wa84H$85Wq.e1Fs:Bq#CU_L:H%,pAFI\$i^"nlfI'Y
+d`8noDWsb":g%1=D00uNJV3oS"bM/FCg^008d.n<bO,'&fDg@~>
+iVrnsp4*U"FE;b_P+J\^^;eCEe,@c$d`oeFZDEhBl$rniS\=([kPkqhqXNh.f#kY,R>QRUJ-pdG
+Ee'I[aP?+TrSmhWKDY]R(h76%G^"W1J.7!WI!U!XDe`ij=A("Cq#CU_L:H%,pAFI\$i^"nlfI'Y
+d`8nsNp2'#I!U'`H[L9mJV3fP!J>skJ-CLtdd?f-fDg@~>
+ir9!spAb^?;KRDLTsM\cguRbgo(;VSp'^Qco'Yc%fZLdo7Ki&X"<E/rh"^"2$i^)#p@.8#cFooT%
+d!`u!`F)pUr;*Wq#(-NrrL.Cqu?puFHE]?JdCT@!=T>3!!P?@^Ztarn,NFe$N9o!q"4":g;nL?m
+f3e)/l6J6KT).cU8P&qZM_'8Za$U.SV:/k!q?6o"'3Y5q#/nGJ,~>
+ir9"HpIYrnA9<<^TsM\cguRbgo(;VSp'^Qco'Yc%fZLduDbTLi"B:&Th"^"2$i^)#p@.8#cFp'#
+;<:CVA93O%`80kVr;P^U!QP?@!!Z;BOKZBc:@Up_8Ou?@6pX!s/dhFT"ZVIUlMUYMs8W'*rVZNe
+o^:kqaHB6c8e"NtATN6PN0Kj,VlR#,r3Qa9Z)jdmNceQ!nO`sYK$s&]rRq4$~>
+ir9"fpOEd$EccelTsM\cguRbgo(;VSp'UKbo'Yc%fZLe&NpD2uI>"ZVpuVM`rquWdnE8TP]r@0H
+ja[YVF,-R0h<t(9ro3qY`ru;?##TK(YJ-renph'sIXHKeF`;))8.,1n"ZVIUlMUYMs8W')rVZNe
+o^:kqaJJ<T%=WPDFaSk$PanJGX08i,Zj3qBXJMJOMM(DK"bEE!mJ-Y5s*t~>
+j8T+/p](g,5&bn2VnUU<m.C)NrVlflrsA]'qY'F@fZ'=>m/R8.I&>WmiVs5`r:ojHg;p9k"R#gj
+/ocWFcKY*%hu<[5qu@!=E/1aQlJS-;lMq#'>>b\&!!G<<]''%TrrrE"p[6mkmf3eaEIa7KZG+E,
+f%Ss<iqqdCini>8aLn[:8e(:j"Uoe:nG<.=s*t~>
+j8T+Tpdu&i?>t:RVnUU<m.C)NrVlflrsA]'qY'F@fZ'_$m7ILZI&>WmiVs5`r:ojHg;pF@9^#(R
+=E0(pcKY*%hu<[5qu@!=E/1aQlJSa>m7IOQ7nd5e#5\B'3Jb90rTF1arquNYhOa1.%:=+*PGGLu
+aO&Mlh;I;ij9ai&f[7dQY*X*(nO`s^Rc*]3rnII'~>
+j8T+opj`m)FDuVhVnUU<m.C)NrVlflrsA]'qY'F@fZ'tOm=>4a!iF]HiVs5`r:ojHg;pR`J`qUh
+G&`89cKY*%hu<[5qu@!=E/1aQlJT4*mXPLjI=$!B;?m!u"?D:LkPaTD"oeGombY5;J.6R>J<Qe7
+^<"[Pg>1]HqrA(ChUp5s]WRfaK(4?pKWsD(qYo7LJ,~>
+jSo4Pp]([*;KIM`][l<<qYgE_rs/Q#p?^YWLDTCZ"<2`cgA'P)#QFYqmblB\-0YC6>'usdm/$_=
+rrBP*!!kT/R`b'rq!(]B!!Ea>Fbj)q!!G98[cRGJrr`5pkZ@6R$q,K5^XhE/n+?>Kq>0sc$iBep
+o^D##d_Vqg$1Ruu1qr/HrS7F'~>
+jSo4lpdtofA93Er][l<<qYgE_rs/Q#p?^YWRTJrM"B'WEgA'P)#QFYqmblBh?g1/eApg5pm/$_=
+rrBP*!!kT/R`b'rq!*=p8d%n&Fbj)q!!G98[cRGJrr`5pk_&@s$t+IQ^XhE/n+?>Kq>0sc$iBep
+o^D##d_W#4:[q$[C;oB0rS7F'~>
+jSo5+pj`a%E-$])][l<<qYgE_rs/Q#p?^YWVhOSis*OmFgA'P)#QFYqmblBpMWoWqE.";%m/$_=
+rrBP*!!kT/R`b'rq!+O=J-::;Fbj)q!!G98[cRGJrr`5pkbIWt%!?rf^XhE/n+?>Kq>0sc$iBep
+o^D##d_W)NK(4?oP02t]rS7F'~>
+jo5A)"Si$(!`*lnWQXDqqu5m\"o\5`gq6>M!!F6gVV:h"rrrAsnDM>llMq(oE/M0dqVD/O@/Bp0
+:4TD#q#CBc$g[ir:N_`*_YX<98;=S8r8[eZrqbC[nGie`KsKM+qYgE`rs8W%q=En-bcF/$!!Emu
+hXUO"s*t~>
+jo5A8:&%<d@WR@)bN8Bnrp'LerV5d8^NT*="B'WEgA'G&"o\8di5gH78d.n-MR_aDh>[I_qZ$ms
+J?.K#s8Vailq.CiFcWoHqZ$aiL:67Bj8T5\qVbBC8dAgZZJ>*KrVl?e#labtoBP/UY]'&("B;;U
+nbh5CJ,~>
+jo5ACK(sj%EH?r8bN8Bnrp'LerV5d8_Ns\As*OmFgA'G&"o\8di5qMTJ-CC@MR_aDh>[I_qZ$ms
+J?.K#s8VhIm!o4YFcWoHqZ$aiL:67Bj8T5\qW*D$J-U7OZJ>*KrVl?e#labtoBP/U[#jg."GO5>
+nbh5CJ,~>
+k5PJR,kq?E0QDiId-UW.k5PV`pZg:]#k@ru)gnO:pt>ZLrV5d'lMq))FI()<rn[SS./NuL;i%sG
+r;Zf#li724E/(OJn,!(f@Z%e]rSdbWq.K3t"@e6Zkl'iI#QF\snD_`I&Fof)!cuoZqYoCPJ,~>
+k5PJUAGAb%=`K1rd-UW.k5PV`pZg:t:@_![;LG@qpt>ZLrV5d,lUh=XFI()<rn[SS./NuL;i%sG
+r;Zf:lq.F\E/(OJn,!(f@Z%e]rSdbWq2t2>"Cd5!kl'iI#QF\snD_`^;t<Na99@]kqYoCPJ,~>
+k5PJXP5'P4G&`8:d-UW.k5PV`pZg;0K(=HlHig2!pt>ZLrV5d/l[T.cFI()<rn[SS./NuL;i%sG
+r;ZfKm!o7bE/(OJn,!(f@Z%e]rSdbWq60=="EoX5kl'iI#QF\snD_`mK^jQqV:Fu0rnma+~>
+k5PF"p](L*BRZZ!mJGrD"oeDjiMmgf!!F0eVV:gsrrN&8lMq&+H(`XZh#@?rqZ$k"N5+ZVs8Q?j
+!!Q)BSBL?equ?m=Eg"B.ro*kXrl=O/"@e9\kl'`F"o\8dhQ\Bs!!HlYlM:G;s*t~>
+k5PFLpdt`bCOVu$mJGrD"oeDjiO)k\8d&%>VV:gsrrN&GlUh:XH(`XZh#@?rqZ$k"N5+ZVs8S#D
+8d/[LSBL?equ?m=Eg"B.ro*kXrmgO2"Cd8#kl'`F"o\8dhR[+b8d'molM:G;s*t~>
+k5PFjpj`QtDLS;'mJGrD"oeDjiP(->JH'uuVV:gsrrN&Rl[T+bH(`XZh#@?rqZ$k"N5+ZVs8T7g
+J-Bt=SBL?equ?m=Eg"B.ro*kXro!<s"Eo[7kl'`F"o\8dhS>'>J-;FglM:G;s*t~>
+kPkS3"S_s#20=tpk5+$9"TJ2]^*iOQ":fgUf_F%t!35tt!'9TL";cE\f_=2$!$D(<#<RmZlM^bS%
+.+$!"`9"#i;'/G!!Q&BT[NK3i;WiT(@hG.7Z+hArT=+_rV5[#2XpbM@a"$3ro*m-~>
+kPkS@:&%<a>',n@k5+$9"TJ2]`a\R4"AX?@f_F%t!5e\,!*o"c"AsNAf_=2$!$D(<#<RmZlM^bV
+;XI'\9Q#Tki;'/G!!Q&BT[NK3i;WiT=n5/f@Z%e]rT=+_rV5[&D"1+#K$3ESro*m-~>
+kPkSIK(sj"F``b[k5+$9"TJ2]bDl.E"Fb`pf_F%t!7^st!-I^\"FPQlf_=2$!$D(<#<RmZlM^bY
+L@'KqIrC(Ji;'/G!!Q&BT[NK3i;WiTMXl9#G)EoqrT=+_rV5[)P4=&*R`jskro*m-~>
+kPkNYpAbA&J#Lukrnm_Yrql000(f2I%==l%p=B6DL]%2RB-$LB":TXQf_=2$!)ECk"qZO!jo#.R
+qu?^*nc/k8FHjf4nKe&5"X%c?[Ggu>rrN*rnc/e^MS&*Njo5J_qsi8tnGiZ+b3A`\s*t~>
+kPkO6pIYU&J#Lukrnm_Yrql04BD"k":4&bfp=B6DWr5NjCfU!t"AX<>f_=2$!)ECk"qZO!jo#.m
+r(6rank'*bFHjf4nKe&5"X%c?[Ggu>rrN+Nnk'$oMS&*Njo5J_qsi<VnO`n<b3A`\s*t~>
+kPkO\pOEEdJ#Lukrnm_Yrql06OS+,,IX@jAp=B6D_u5)dDgh/+"Fb]nf_=2$!)ECk"qZO!jo#/+
+r."crnpgpjFHjf4nKe&5"X%c?[Ggu>rrN+snpgjdMS&*Njo5J_qsi@(nUL_1b3A`\s*t~>
+kl1Y/pAb@.EK%Qnr7q;Sr:88hp&G4)HD/m_f)G_`rW!!*Ea8)6"*C6ep>#ZJV"t&p5cE<-r_37j
+!=D?f!!P$%U"&U2r;[$/@XF`ln,;,C!.j\@"@e9\kl'QA"9%lB.e3QB!e8G\qVqO*~>
+kl1Y=pIYTbEK%Qnr7q;Sr:8EPp.>H_HD/m_f)G`7r^m5cEcUYA"*^Hhp>#ZJV"t&p5cE<-rdar>
+!DQtm8d/@DU"&U2r;[$/@XF`ln,;,C!2]6Y"Cd8#kl'QA"9%lFAb&Fr99IHbqVqO*~>
+kl1YGpOEEpEK%Qnr7q;Sr:8L&p4*9pHD/m_f)G`WrdY'!Ee<e2"+$Zkp>#ZJV"t&p5cE<-rhfXE
+!If+\J-C.CU"&U2r;[$/@XF`ln,;,C!5J)T"Eo[7kl'QA"9%lHOR[i'T?QZuir=N~>
+kl1WbpAb@BG+-\GrnIGTrUeS^pAb=*H(`[\f)G_;rW!$:G*F0?!!?8jch#rl!V\&>!!H?;jlQ^E
+!!+i]nc/eTJ?-URr;[$*<d'Y=jS@X3!28r`"@e9\kl'N@"9.u;'Cl,+%[ti7r8[g-~>
+kl1X=pIYThG+-\GrnIGTrUe`LpIYQ`H(`[\f)G_rr^m8iG*H;&8crmuch#rl!V\&>!!H?;jm,V=
+8c`(1nk'$jJ?-URr;[$*<d'Y=jS@X3!5.kp"Cd8#kl'N@"9.uC<q8ic;52M-r8[g-~>
+kl1XapOEElG+-\GrnIGTrUeg&pOEBqH(`[\f)G`ErdY)uG*IjRJ-1.ech#rl!V\&>!!H?;jmRd!
+J,sh8npgjdJ?-URr;[$*<d'Y=jS@X3!714d"Eo[7kl'N@"9.uHM"6'!Ju6ubr8[g-~>
+l2LeM"SVm!3.7[VpY#QKrq4GJp](F&GbER[f)G^mrW!$IHD#o\!!G-A`U3Z\rrW/;#PnE%4hQFF
+!!6GR!qQBo7=\hVr;['0<csA,g@YC#rrBe(!!GcK]BK4PrrW2mU@A3d/?mh"roF*0~>
+l2LeS:%q6_>^`L%pY#QKrq4]?pdtZ_GbER[f)G_Xr^m8nHD$eu8d&I``U3Z\rrW/;#PnE&4hRFY
+rCR-)I7s0("(?^h%K-83$<D;.ZJ+sMh>[K%nk'$oMS&*NiVruYosaH`"CSIeo`!qOJ,~>
+l2LeWK(jcuG($7?pY#QKrq4lupj`KrGbER[f)G`3rdY)qHD%D1J-:7_`U3Z\rrW/;#PnE'4hS.L
+J,Xs!E.7A."*K-'%K-83$<D;.ZJ+sMh>[K3npgjdMS&*NiVruYou?NP"GX/6o`!qOJ,~>
+l2LaMp&G4`K!=20f`)'QoX5)$!!@J;e+M>m!;l]p"?(_.d3%oZ":U*rjnmj5!r/2dq>^O((]==9
+)KC]Vo)Je5%/^)1*G'JTYgr7@h#@B&nc/e^MS&*Ni;WlWo2tM_"(8e&q;hR+~>
+l2Lakp.>HqK!=20f`)'QoYaT$8cs=0e+M>m!;udf"C-DTdU2Q;"AXc_jnmj5!r/2dq>^g0/j)To
+8lBYf>4bDg68&cF!!aNUG`ArXnGM)A!8d9="Cd8#kl'H>!r__EnO`n1]]AnLs*t~>
+l2Lb,p4*9gK!=20f`)'QoZi-bJ-1%fe+M>m!<)kH"Eo6nduEpK"Fc0:jnmj5!r/2dq>^g05A,4h
+IsQ*nL\-)uE]X^-!!aNUG`ArXnGM)A!9j!("Eo[7kl'H>!r__fnUL_%]]AnLs*t~>
+l2L`Sp&G4aL:64AfDbpNo8`SG"*U3^o[j*Cg\h*T7Y7l%Mt$cL?DuQNh#@KTntQrm!!>W4S3H?@
+#REn@I[.=lnGM&@!8d8H"@e9\kl'E=!rUsdnc/e$R*+gojo9i~>
+l2La2p.>HrL:64AfDbpNo;VLW"*U3^o[j*Ck5@mT@=k`@Wpr[`Ei@[bh#@KTntQrq!!`Q>-otUV
+S8\0p"%G3q&c2P6#Y&laQ*o34r7h5OkOM4J@Z%e]rSRVVr8^fI8d%t[b3f,gs*t~>
+l2LaZp4*9hL:64AfDbpNo=XjK"*U3^o[j*CmJVP<FFpaS_!upWJZ.8qh#@KTntQrq!!`TM7V$C[
+S<Wf!"*n9=*r>pC#Y&laQ*o34r7h5Omdbl2G)EoqrSRVVr9/n*J-2=amJQ)GJ,~>
+lMgnZ#ke6$7Z"_?rRUuMr:!nc!!@A4d.Gri!4Vn,"]^>fk3WrT!!Fp@am]5arri5d`Dd$8!!<ED
+3$n%o#n&k6I#=Z6h=:EsrrDc`!!GcK]BK4MrrMtInGi\eY1r[Lk5Tr~>
+lMgn\;"dKa@Yq\[rRUuMr:#I:8cs4)d.Gri!6kC6"_NP"k3lID8d&Fdam]5arri5d`Dd$8!!<ED
+3&^[["!\`u$2FQ-$Tr?TMP@oBnbh,@!;Z1X"Cd8#kl'B<!W&P\8d'(8g\1X/s*t~>
+lMgn^K_Bp!G)<forRUuMr:$TZJ-0q_d.Gri!8II&"`oI/k4+?"J-:=fam]5arri5d`Dd$8!!EKE
+3(#k-4p*o#+V4AK#n&k6I#=Z6h=:EsrrDodJ-:%Q]BK4MrrMu.nULasY1r[Lk5Tr~>
+lMgk-o`,+aM7`!Mec,^JiZe4!")""Ho@O!BQi-mfArOLiqLnD>"9a=cjSR^3"o@Z<WE9kt!"/f?
+3bj)#T!m#.pAN\E!<2Nh"@e9\kl'B<!rhQsnc/e*QGr4hk5Tr~>
+lMgk<oh#?rM7`!Mec,^Jj^@pW")sXQo@O!B[J`]$D2c6pqPEaT"A=KYjSR^3"o@Z<WE9kt!"/f?
+3bj)#T!m#.pAN\E!<2O]"Cd8#kl'B<!rhXfnk'$^QGr4hk5Tr~>
+lMgkGomd0gM7`!Mec,^Jk`5Li"*^-Xo@O!BbPcqpEf@cuqS)KM",OGIqqM,SqX2q6=;9ou$NUl$
+C41u2[a=11rRq2NrpkRBG)EoqrSIPUrpba5J-2+Vm/?)HJ,~>
+lMgjNo`,+[M7VpLeGfUG[KHC,"D4"Enc%2@!-J2?#6T"0`pWih%e9T&9Vg53rnIGWr:ApkZ[t1$
+!"'N/@"b8acJe<irn%2@!!GcK]BK4LrrN%3nGiZ%Y2/m8s*t~>
+lMgjloh#?pM7VpLeGfUG`_?8%"E9^Onc%2@!1a$\#>9*#`pWim<:WWaC8BDQrnIGYr:ApkZ[t@J
+!q$$t"Uu:u6=>J@\Ba('qYo+Hnk'$oMS&*Nh>[NRPOV6IGHTcsk5Tr~>
+lMgk-omd0iM7VpLeGfUGdXh:G"Ep-Unc%2@!4r/[#CgcW`pWipL@KcrUt,/;g]%QWoA[s"Jj^1Q
+mJm\&(F_:0@"b8acJe<irn%2@J-:%Q]BK4LrrN&&nUL^pY2/m8s*t~>
+lMgj+o`,+KLq)UFeGfULp14%#"C786nG_)?!)WXp#820Hc1:l3D=RZ0'U$B"rS%8TrV>p?cU[p6
+"pu+Y&Io9OoDf.4<.1msjRE!Dec,U_o)Jn_MS&*Nh>[NT`:3g11n)VWroa<3~>
+lMgjSoh#?jLq)UFeGfULp5]#B"Dj=EnG_)?!.t2B#>fQ1c1:l3QL[WN;Ner`rS%8_rV>p?cY5-e
+,9%F7&ePT`"o\W;"UGMJ'cS>C-7CZLIBCrYnG3%5rr?-l8d&U\]BK4LrrN,KnO`pkR`k4"kPp&~>
+lMgjqomd0kLq)UFeGfULp8n.A"F$*PnG_)?!3#mI#CLZ]c1:l3ZgrVLJ!._8rS%8^rV>p?c[o1m
+4Y@ln&ePT`r!3lF'H8;N4$Z/&85t#>dcBonrRLoJM=Z6#G)EoqrS@JSrnd0q"Fcf_nG_VNJ,~>
+lMgico`,+1KX0V7e,KLJjV[mq"BUc+mf(l=!&4BP#U"Aae+Nb?h?WTO")+mopt5TKrV>R_r;[$V
+9ji7&N#_Hi"r;$DcLC]0e,KCio)Jn_MS&*Nh#@EP(@hG.&rO9_r9+*1~>
+lMgj?oh#?bKX0V7e,KLJl!"!W"DX+>mf(l=!,VX,#ZQ&@e+Nb?k"kP?"*h$*pt5TVrV>_N5Wh"`
+5tta4Ll=In./tb)/1rV52aV>LcLC]0e,KDUo1B-pMS&*Nh#@EP=n5/f:l;jHr9+*1~>
+lMgjcomd0nKX0V7e,KLJl\bUj"F$$Kmf(l=!1<b9#^U`fe+Nb?l@\YX",*l6pt5TVrV>f*DJ3Ka
+9hf#@Ll>:171MdX8PDr[=^GNQRa1F!rmUlIO7Rl)G)EoqrS7DRqhjrp"Fc6>k5=EBJ,~>
+lMgiLo`,*rFfF-jdf0@ERf!-g9T[-Xrn.5N%/p54/psPLq#CBk?1Isu0:L,Srn%/MT)AWo$!qV7
+Z+n%CoDf"(H)B<jdJj1go)Jn_MS&*Nh#@ES;=OVgG,j<lkPp&~>
+lMgj.oL]44WS@3rrrMu'r(7*'OM^A`f`(qLr^mGuI&>Tls8VtRnk'$kR`t:#fDc8j8Ou<=7::+u
+Z+n%er&+sB3'',a5X@b0H)B<jdJj2So1B-pMS&*Nh#@ESK(2G8I&brrkPp&~>
+lMgjWoRI$nWS@3rrrMu9r."opOM^A`f`(r+rdY9!I&>Tls8VttnpgjmR`t:#fDc9)IXHHbEF<dL
+Z+n&)r*Be=@:WtbD/jZ?H)B<jdJj3-o7-seMS&*Nh#@ESVso3<Wn[=3s*t~>
+lMgiKoDf"dS^@!-e,KLKoeuaK"@eBclM]E9!:0R`#X!X>hYR9PrmL?;"9a7bjSRR/!'pJ_#;pOa
+^>J8AIe3UC"+-iqpX0!@+7fI87Z+hArS.>PM=CQK<h7V/rojB4~>
+lMgj-oL]7"S^@!-e,KLKoks_#"CmG+lM]E9!:g"[#[Mt_hYR9Prn[-;"A=KZjSRR/!-eB6#?c)0
+^>J8ASGGV\77Kd<8P2X&Ut>@grr?Hu8d&U\]BK4JrrB(h8d&t$d.@8#s*t~>
+lMgjVoRI'nS^@!-e,KLKopG]."F,p@lM]E9!;6;@#^1a#hYR9ProEU"",aVLqq(iJT`0HIIro^n
+^>J8AZi"nRF`qtSH@1-jIs\!CpX0!@O7Rl)G)EoqrS.>P_sr6[I%AXUrojB4~>
+lMgiKoDf".OML/[df0@G]DV^43JtH4rRq2Na8Gu@8qaS3r;Q]sqb$DZ"@o9;o`!PD!8m_T#QeFb
+WnI+FrNPkn")jd[p!Nd>+7fI87Z+hArS.>PXmlAo6'B7UrojB4~>
+lMgj-oL]6aOML/[df0@GbPb$9?AcAYrRq2NfDS;E@YD,Kr;Q]sqgS*."DFU\o`!PD!9j>Q#AJ^g
+g%PFD`q)e)Fe7(TdJj2So1B-pMS&*Ng]%8lnO`pnP/cqhkl6/~>
+lMgjVoRI'oOML/[df0@GfDU4&H&B5trRq2Nj8FK2FG.$]r;Q]sqkEY3"G*Auo`!PD!:Ti9#B,-m
+g%PFDf(smmJ-1(ge+M,g!0?`%"Eo[7kl'99!7gUi"FH<Omf)GMJ,~>
+lMgiKo)JknXk`^!rrMmdrW!'TL:?=Cg&D&Mr;Zt&M7VmKrr3#u^@D7,'9U,rr7V)MGPqLI,BAjZ
+kktJ\iq!-P?CB+0dJj1go)Jn_MS&*Ng]%8nnGi\GMS/0Okl6/~>
+lMgj-o1B+)Xk`^!rrMnBr^m;sL:?=Cg&D&frCR3+M7VmKrr3#ucLOR1;3A][r7V)MTD_@f<H=/7
+kktJ\lLRUMDOJf@dJj2So1B-pMS&*Ng]%9)nO`pgMS/0Okl6/~>
+lMgjVo7-prXk`^!rrMngrdY,tL:?=Cg&D'$rI>#lM7VmKrr3#ug@BasJ!%S4r7V)M]D[6cH#et[
+kktJ\nFM/4H'utKdJj3-o7-seMS&*Ng]%95nULahMS/0Okl6/~>
+lMgiKo)Jn%N5k5^df0@H`Voi?-A8\br7V)MKDbcQBTBpqrr)itqD[sF"(A:dptG`Kq],P7#u>oA
+de!J<s8EQ$!!H,^aRB,Vrr=/4!!GcK]BK4JrrCpG!!F^([,h/Ks*t~>
+lMgj-o1B-]P/ckddf0@He,DrB=+mm>r7V)MVu93jDN;R"rr)itqJc!t"*L^#ptG`Kr*K=o$"J=U
+de!J<s8H!i8d&gkaRB,Vrr?Hu8d&U\]BK4JrrD6P8d&7M[,h/Ks*t~>
+lMgjVnpgh.`pEWOrrN)SrdY,tKX0Y9g&D&grI>#kNkt)]rVlopRdtt2KWNu(gA_3PNr=J7EdOM.
+oD\direL,r"F--On,Cc8!0?`%"Eo[7kl'99!:KB-"F>d/jS\6AJ,~>
+lMgi_nc/e@W7^bAdf0UK8cSi2JZdo,g&D%[rW!**F-F]6rr)itrMT2d"=]b]n,D)A!42V("VPd1
+[c@5`rrN*WoDf"[Nl(/^df0:ho)Jn_MS&*Ng]%91nGi\3JZdr-kl6/~>
+lMgj;nk'$jWn?tCdf0UKHqI"1JZdo,g&D&4r^m>fF-F]6rr)itrP%hp"Bq59n,D)A!6P13"]0/o
+[c@5`rrN+<oL]6qNl(/^df0;To1B-pMS&*Ng]%9;nO`p_JZdr-kl6/~>
+lMgj`npgjrWn?tCdf0UKU4@cAJZdo,g&D&VrdY0%F-F]6rr)itrQk%b"Fli^n,D)A!87=$"ak9F
+[c@5`rrN+foRI'iNl(/^df0<.o7-seMS&*Ng]%9AnULaiJZdr-kl6/~>
+lMgj&nGi\U\`!5]e,K^Q\c;^@J>q;ug&D%7rW!'6G+$YHqu6]l,kD!=!dqH:qV2#M;#L@t5^/[?
+nGW=c!+tj'">G_Fkl&s0!$Ce4"@e9\kl'99!8d5G"<2ijh"g16J,~>
+lMgjOnO`q!\`!5]e,K^QbXtK(J>q;ug&D%or^m;iG+$YHqu6]lA+N:q98'b6qV2#MK)J:F??_j]
+nGW=c!0ZtH"C$bqkl&s0!+>Cj"Cd8#kl'99!9irF"B'`Lh"g16J,~>
+lMgjnnULb"\`!5]e,K^QfRSL%J>q;ug&D&DrdY-!G+$YHqu6]lORdo(M72I@g]%8PrI>&nGFH_E
+rVc`rZLiYMHA]>urR1]GO7Rl)G)EoqrS.>PmdYf1I"/0Oq<7j/~>
+lMgjIn,NSP^?#%fe,K[L0E;0+Ut>=nrr=&<!!FEiT@EQ2rrN(_nc/e\U=/]5h>[N="TAB)#&/^m
+h>$pJ!06[O"<iH*jS[I+!$Ce4"@e9\kl'99!7pZ?"<2cfg\C"4J,~>
+lMgjhn4Egu^Z>.ge,K[LCJ%6OUt>=nrr?@(8d&+=T@EQ2rrN)&nk'$tU=/]5h>[ND:&[`g9Pf?a
+h>$pJ!3Yrd"BC,^jS[I+!+>Cj"Cd8#kl'99!93N@"B'ZHg\C"4J,~>
+lMgk*n:1Y$^uY7he,K[LQ@OL;Ut>=nrrA)YJ-:1DT@EQ2rrN)<nUL_9de*OprrM_CrdY0%DhG4K
+q#(-l`q4caH\Acer6kTFO7Rl)G)EoqrS.>Plg]K.I!qsJpuqa.~>
+lMgk+mf3JB]&NG_eGfdP`.DZ`WS$purrDfl!!Fj#VV1b@rrMU)o)Jn&NkaiVh>[J1r;[!SFHaZ/
+rVZZq^%;:-&V-t>qU5BD+7fI87Z+hArS.>P^@;1+)h"U;puqa.~>
+lMgk:mn*^m^#JbbeGfdPd[l,RWS$purrDln8d&7DVV1b@rrM[no1B-]O2'rWh>[JTrCR5qFHaZ/
+rVZZqch'g4:k5Y(qU5BD@.Qtn@Z%e]rS.>PdIBg3;LPFrpuqa.~>
+lMgkEmskP!^uG(eeGfdPgp<B1WS$purrDrpJ-:+EVV1b@rrMbLo7-snOMC&Xh>[JmrI>&qFHaZ/
+rVZZqh=Q4#I=SEUqU5BDO7Rl)G)EoqrS.>PhXQ+!I!qmGpuqa.~>
+lMgn\$h"&u)kc'Zr7(`Nq;fK$_;b7DrrCOH!!G?5XPWgMrrN(Gnc/btX4m=(rr=2?!!QYWVUkG>
+r;Qc]oDf!qI&5Kidf0:ho)Jn_MS&*Ng]%8KnGi\@IAkoqkl6/~>
+lMgn];X[3\>-6ZQr7(`Nq;fK$_;b7DrrD!U8d&FMXPWgMrrN(knk'"*X4m=(rr?I*8d/mWVUkG>
+r;Qcco1B+4V:bOjrr?Hu8d&U\]BK4JrrBb&8d&4DW8%+2s*t~>
+lMgn^L$sNpLUQ(2r7(`Nq;fK$_;b7DrrD<^J-:%GXPWgMrrN)0npggpX4m=(rrA/ZJ-Bn@VUkG>
+r;Qcgo7-pjV:bOjrrA,OJ-:%Q]BK4JrrCI:J-:.GW8%+2s*t~>
+lMgna=mc7n#^=qhqYo(G#6"5XhW+2)gA_/Zr;ZsiKX0Y8qYpWrk6LSY"=9DUmeu&C!4Vn,"X7rG
+]]]1hrrN*4oDeu,T$m8Zrr=/4!!GcK]BK4Jrr@Q=!!G30XPN^9s*t~>
+lMgnaM!dk=:6X>uqYo(G#6"5XhW+2)gA_/prCR3$KX0Y8qYpWrlqd4F"Bh)4meu&C!6kC6"]TK$
+]]]1hrrN+#oL]4+T$m8Zrr?Hu8d&U\]BK4JrrAkb8d&CKXPN^9s*t~>
+lMgnaX6tKAJu@8hqYo(G#6"5XhW+2)gA_0+rI>#nKX0Y8qYpWrmt:4^"FlcZmeu&C!8II&"aY0J
+]]]1hrrN+UoRI$iT$m8ZrrA,OJ-:%Q]BK4JrrBh(J-:(GXPN^9s*t~>
+l2Ladli7/P_!(Okf)GpPqY9marn@APO8T%]<J\3Kr;$?nr+5I""9NhTiVMI3!)3=k"]0Q=dIR;5
+rr>7T!!H;gbOPS\rr=/4!!GcK]BK4Jrr>mc!!GrIZJtcFs*t~>
+l2Lb%lq.D"`p!0qf)GpPqY9marn@APYl./sAr+"\r;$?nr/gJA"+di<qVV;QJGi(D@salro)ALc
+!-\!,"DX:Hnc%#;!+>Cj"Cd8#kl'99!.s`5"Cd"hiqqs>J,~>
+l2Lb6m!o5'b38Tuf)GpPqY9marn@APa8LMkF,7Bir;$?nr35aB",O>CqVV;QVYu#KEdOJ,o)ALc
+!1rh5"F6?Wnc%#;!0?`%"Eo[7kl'99!3#F<"ET4$iqqs>J,~>
+l2LeY+m]14%Y!:(qYmPq!-%l:"CdA+lM^PY!rgXNo)JnUT[EB1iVrr="TAB)&o`Z8iqiKN!,D-+
+"@J<imJbT7!$Ce4"@e9\kl'99!#Y5+"D!A#kPaWEJ,~>
+l2LeZ@I-Si;OZJ3qYmPq!1EdX"Dj(5lM^PY!rh%Mo1B-rT[EB1iVrrE:&[`g:iM6!iqiKN!0m+J
+"CmS4mJbT7!+>Cj"Cd8#kl'99!*etc"Diq+kPaWEJ,~>
+l2Le[O6hB#KWa2$qYmPq!4_uX"EKL;lM^PY!rh;5npgh8dI[@rrrMYArdY0"E/:s^qYC-k[.JkO
+HBH/5rmUlIO7Rl)G)EoqrS.>PN:DE$E/D0hrTO93~>
+l2Le`R-FYS0!+4.r2fnu9`4qoEg"H1rqQKoqb-M\":L1%kksE>!.4YE"[[F%b4#<)rrA>V!!G!5
+]]f=Crr=/4!!GcK]BK4KrrCC8!!O'WP/Zhfkl6/~>
+l2Le`Zg(-cB"I-tr2fnuJGi(CEg"H1rqQKoqgS-/"AXrikksE>!2BEa"^cJBb4#<)rrBCt8d&@U
+]]f=Crr?Hu8d&U\]BK4KrrCmF8d/%3P/Zhfkl6/~>
+l2Le`aQe9YOMp;Sr2fnuVYu#JEg"H1rqQKoqkNb5"FlHFkksE>!58>]"a"sWb4#<)rrC15J-:4V
+]]f=CrrA,OJ-:%Q]BK4KrrD6PJ-C=@P/Zhfkl6/~>
+kl1\U.-U^79YB]crN?/#/H,VQ%<Rr\nc&=`!WK_%!!??&g%OG*!W*`5!!NXDKWj5,q#:?5oDf"9
+Ks]q=e,KCio)Jn_MS&*Nh#@A$nGi_PGb3=TrojB4~>
+kl1\VAa)eiHcGCGrN?/#B`:U-:3;iHnc&=`!WL=68cs%3g%OG*!W61$8d.q+KWj5,q#:?EoL]6c
+Ks]q=e,KDUo1B-pMS&*Nh#@AKnO`shGb3=TrojB4~>
+kl1\WP3IK"SBgHprN?/#QMuC<IWUq#nc&=`!WLdCJ-1D&g%OG*!W@uVJ-CC?KWj5,q#:?QoRI'l
+Ks]q=e,KE/o7-seMS&*Nh#@AfnULddGb3=TrojB4~>
+kl1__]*%9t"TqN7m.^I_rr<?(!!F0aS^I*'rrMsQo)Jn8QH/Ckj8T+Wr;[!XFHjc2rV6BmmdpJ^%
+Y1Y;q:#?D+7fI87Z+hArS@JSq],/,"Ti+aXkrm:s*t~>
+kl1__b=q.m"\a?dm.^I_rr>mp8d&%:S^I*'rrMt6o1B-dQH/Ckj8T+prCR5sFHjc2rV6Bmo(5NW
+:4TG&q:#?D@.Qtn@Z%e]rS@JSr*Jnc"DWOjhYH@7J,~>
+kl1__f7E1:"bE;nm.^I_rr@`OJ-:4DS^I*'rrMt`o7-snQH/Ckj8T,.rI>&pFHjc2rV6Bmp@Nk<
+IXnNVq:#?DO7Rl)G)EoqrS@JSrJpDu"E/mohYH@7J,~>
+kPkSXIcg\8"&HSrp\b#trrD*X!!FToUXo/4rrN(nnc/c4ZJbQ=rr>1\!!WL7J>q2prqQKorYP2,
+"*gWopXB-B+7fI87Z+hArS@JRTCDmb-?>3`lMTiFJ,~>
+kPkSXTBAfN9RXtJp\b#trrDB`8d&1@UXo/4rrN)2nk'"5ZJbQ=rr@0>8d/s[WS$qDq#:Bo>4bDh
+HDK3fe,KDUo1B-pMS&*Nh>[JenO`scEfe*%r9+*1~>
+kPkSX\EAAHJY1<Up\b#trrDTfJ-:.DUXo/4rrN)CnpggsZJbQ=rrAYhJ-BnBWS$qDq#:BoMtDN%
+I&,Ehe,KE/o7-seMS&*Nh>[K$nULdfEfe*%r9+*1~>
+kPkV^nP\HK"[]6TpAFourrBt8!!G$*WS@4@rrMd5o)JnST$R!,jo5>,r;[!KEf[rur:^-j9(W)c
+@[tj<e,KCio)Jn_MS&*NhZ!WR,k:p>!aC&Ie+EY&s*t~>
+kPkV^nU]do"a.KDpAFourrCRI8d&=HWS@4@rrMh"o1B-pT$R!,jo5>:rCR5oEf[rur:^-jIe657
+E1G>Je,KDUo1B-pMS&*NhZ!WSA+<.pB7-K'o`"%RJ,~>
+kPkV^nY>2r"e*NupAFourrD$VJ-:+GWS@4@rrMkRnpgh6cgq(srrD6\J-C4=O1siUpAY,goRI$i
+SC-uXrrA,OJ-:%Q]BK4MrrN(]nULd]I&#0_roa<3~>
+k5PM[k=4M4"YQ&$o_\WtrrA\i!!GK:Y2K0LrrN(So)JmuLqMmIjo5<jr;["&I%o*^rq??lEqB>7
+:6irjrm^rJ+7fI87Z+hArSIPSL[b?J.rpT[jnn3?J,~>
+k5PM[k]l/\"_b%#o_\WtrrBY/8d&IOY2K0LrrN(so1B-[MnJ3Ljo5=CrCR6*I%o*^rq??lRe02T
+B9gU.rm^rJ@.Qtn@Z%e]rSIPSWpr[b=)s82jnn3?J,~>
+k5PM[l($gb"d6X`o_\WtrrCCDJ-:%HY2K0LrrN)6npgh$]]T+QrrB>&J-Bq?U=8c6pAY-&oRI'j
+Q-&OpeGfN0o7-seMS&*NhZ!SnnULdeEf@Tkqr[p/~>
+k5PP_q;O6k!!O-]eFE>4])MbXr;ZsmKs]q=o`"sU%eBZ&;Q&1@k5PJN#lXf-)KCYEjSSWM!1i`^
+"?MRZli,E6!$Ce4"@e9\kl'E=!RD&B!!WjDI\bE`roX62~>
+k5PP_q;Z;O8d/=ag%"k9])Mc)rCR3%Ks]q=o`"sY<:`]aDPu.\k5PJS;#X&j;K7T(jSSWM!4h_o
+"CI2*li,E6!+>Cj"Cd8#kl'E=!SpTC8d8%+I\bE`roX62~>
+k5PP_q;de#J-Cb7hXUC>])McErI>#mKs]q=o`"s]L@]otJu@8pk5PJVK`6K*HuY%RjSSWM!7(4e
+"F?*Eli,E6!0?`%"Eo[7kl'E=!U#.,J-LI?I\bE`roX62~>
+jo5G^pYS?t!!WX*Z0h8_rk8=3=T&4&=,OWRrUg*jr+Ya&"<*NDm/?,I!/pdU"\F!1cLCi+rrC15
+!!FU(\E<_=rr=/4!!GcK]BK4OrrM:.nc/jq:Nhr;kPF<?J,~>
+jo5G^pY^2R8d8%@_X7'prk8=3M#BpKBSsFcrUg*jr0-_E"B:W)m/?,I!3Q2l"^u\IcLCi+rrC^D
+8d&4O\E<_=rr?Hu8d&U\]BK4OrrMOtnO`soG*B`)qW7a-~>
+jo5G^pYhS#J-LV"c0b6&rk8=3XSmYPFGd]orUg*jr3GpE"FlZTm/?,I!6+ne"`ns[cLCi+rrD*O
+J-:7U\E<_=rrA,OJ-:%Q]BK4OrrM_SnULd_G*B`)qW7a-~>
+jSo>]p>/^*!!OX"g@G+=^]+9nr;Zt2Nkju[o`#!ldf]1A")b@#puq_Yq],S8"Uo7&ZJbNMrrDW^
+!!F!fYi,B-rr=/4!!GcK]BK4PrrM^JnGibPEepsSp&=(QJ,~>
+jSo>]p>:>W8d/[thX^OA^]+:RrCR3/Nkju[o`#!lhG!N5"+7?1puq_Yr*K@p"\rriZJbNMrrD`a
+8d&"CYi,B-rr?Hu8d&U\]BK4PrrMh3nOa!iEepsSp&=(QJ,~>
+jSo>]p>DP#J-CtCipusE^]+;(rI>#lNkju[o`#!ljb!)S",=&;puq_YrJpl-"b(BEZJbNMrrDid
+J-::PYi,B-rrA,OJ-:%Q]BK4PrrMqanULgdEepsSp&=(QJ,~>
+j8T8]p>U&nhuErc:Tj*Yr;OS5!#5A3"EK[Fmf)hX!W,O]!!G-KcLLnurrB+u!!PE,QH/Cko`"sk
+-M7?A"+@-%psf<D+7fI87Z+hArSmhXj!aEt"tFPCV9n]/jSs`~>
+j8T8]p>V6/i(=2KJ&(IFr;OS5!*K1l"EK[Fmf)hX!W.?;8d&LkcLLnurrC"98d/LDQH/Cko`"sk
+AG&Ot97<bmpsf<D@.Qtn@Z%e]rSmhXlXoZZ#$5_pV9n]/jSs`~>
+j8T8]p>W'&i.)#`U!;uur;OS5!/g`*"EK[Fmf)hX!W/Y_J-2=enc%eQ!7h$us)nL1a6iitrrN+^
+oRI$lW7q$rrrA,OJ-:%Q]BK4QrrMYSnULggDh=h4n,28HJ,~>
+ir9/\pZ.SOh>d^)K])IurPed:oDJXm%<Rr\o)A7\!WK_&!!EL[]&ihRrr>1\!!NI<JZIN!o)A\b
+oDeu+T@<J_rr=/4!!GcK]BK4RrrK_KnGib<D18(tlMBQ@J,~>
+ir9/\pZ/;QhF[r\U>tkArPed:pAISe:3;iHo)A7\!WL=78d%hD]&ihRrr@0?8d.k(JZIN!o)A]@
+oL]4+T@<J_rr?Hu8d&U\]BK4RrrLGMnOa!cDLS1ulMBQ@J,~>
+ir9/\pZ/f;hLGci\E*8XrPed:q>GgIIWUq#o)A7\!WLdCJ-1_@jnn<B!1s.>"E8pmg@t1<!2fC=
+"+-Zhp!j!AO7Rl)G)EoqrT!nYh2LlS#'k-9T#g3nj8XW~>
+iVs&[puoFNh#ITiD9q_HrQ"p<ci!hH)0h_#o^Vq^qCM4<"AP`Dp&=:W!6b<@"Y=_W_!:jgrr@67
+!!H2dbOPS^rr=/4!!GE?\`WhOrrM_0n,N\IDgn4ok5##:s*t~>
+iVs&[puoY3h+@iMP1K-trQ"p<h>KqK;L"b\o^Vq^qIoIm"Dajbp&=:W!8@BD"^#i._!:jgrrAY_
+8d&jpbOPS^rr?Hu8d&IV\`WhOrrMh]n4EpgDgn4ok5##:s*t~>
+iVs&[puoe]h1,Z`Y1rI@rQ"p<kP]o6H[)+0o^Vq^qNUT%"G*E#p&=:W!9O00"aG*N_!:jgrrBY&
+J-:1bbOPS^rrA,OJ-:+Q\`WhOrrMr)n:1aeDgn4ok5##:s*t~>
+i;Wu[qWuaU$Jb[c#%#OAq#/>7!3c>$"=&5ef(SY6!WAP[!!F%"_s@9err?=&!!QPSUt,,:o)A]d
+oDf"ZOMgGaec,Uknc/h9HIhZarosFaqk"ku!!i`qEe9n#jS/Z5s*t~>
+i;Wu[qWuaq:u+_I:5I?dq#/>7!64t0"BBcBf(SY6!WBIu8d&%T_s@9err@uU8d/mVUt,,:o)A^(
+oL]6qOMgGaec,VWnk''gOk91$rosFar4?;*8dJ*tEe9n#jS/Z5s*t~>
+i;Wu[qWub0K&(q\Ju72gq#/>7!8%1""F5<ff(SY6!WC14J-:@b_s@9errB5#J-Bq@Ut,,:o)A^;
+oRI'jOMgGaec,W1npgmqU=f&6rosFarQgMoJ-^XGEe9n#jS/Z5s*t~>
+hZ!`Uo%pZ;g].K^?-_m5rQG3@Mu<VY0RftTq!e:anJ:]r")+moq!A"]k61ba"W_T@]&rn[rrCI=
+!!Fg/]''%Brr=/1!!X3S]^Y^orpKdflAHnV!!jBGG)3!9k4el6s*t~>
+hZ!`Uo%poqge%`FLXbberQG3@Xo1ip=am=(q!e:ao3(ZW"*h$*q!A"]mS3[Q"]KE!]&rn[rrCpJ
+8d&:R]''%Brr?Hr8d8C[b4,3(rpKdfn>p-h8dJ:-G)3!9k4el6s*t~>
+hZ!`Uo%q*DgjfQ[V:b52rQG3@`Vk;iG^cUGq!e:aonr?k",*l6q!A"]o7Hsl"ab6I]&rn[rrD6S
+J-:4U]''%BrrA,LJ-Lh3eF<82rpKdfoYls^J-^L@G)3!9k4el6s*t~>
+h>[ZWpZTt`,hrA'$uO\eq>SY=!,2<2"?M+:htljB!W@H<!!FsDbjbW!rr@EE!!Q#@T$R!,nc&Xd
+"SD`t(50!Qqpk]H+70%7)dScMnbN(\rr2]m"THu<9*F_a#ms"=IZq"_lM:G;s*t~>
+h>[ZWpZTtq?JJ-V;N]c(q>SY=!0mFS"C6S]htljB!WA_`8d&IhbjbW!rrAel8d/[LT$R!,nc&Xe
+9_D!\;M;@8qpk]H@-pPm>`#`8o(i1]rr2]m"TIDfIn]?(#u+cHIZq"_lM:G;s*t~>
+h>[ZWpZTu)LtmLaKWEquq>SY=!4;]T"Eo@!htljB!WBY%J-:@jbjbW!rrBb2J-C">T$R!,nc&Xf
+K(XWsI>"ocqpk]HO6qH(MlF\OoD/:^rr2]m"TI]/V1S2e$%?u9IZq"_lM:G;s*t~>
+h#@TXqXE@]F;EX3"W<3Xo)&F4rr>Rf!!GcE[,_)QrrM$_oDf!sK"0n=mf*=^'`J(9%W7$-i;)mB
+!WFSA!!EISWS@3urr=/*!!`TO7UCD#R[X2E"+FiG&+0E)&j^D^N2+/Bn,!%@s*t~>
+h#@TXqXE@]N`Oq-"^7_^o)&F4rr@HF8d&RU[,_)QrrM:YoL]6ZL:H=Amf*=`=T1nr:2blni;)mB
+!WHa)8d%h:WS@3urr?Hk8dA%!HAeDs[^Q.D"/:s%<UNHd:g\3hN2+/Bn,!%@s*t~>
+h#@TXqXE@]TS2*N"c9\Jo)&F4rrAknJ-:"J[,_)QrrMJ=o7-q#\E*PTrrN"SrdY0$E/(^Wq=+Cb
+rfm)+"Fkm"g\B>!!0?Ap#_J/2XLc<lb00e."2;(4L[K["I!'IVN2+/Bn,!%@s*t~>
+gA_BUpZpGDA.IAp"?!RMpANA<!$qLC"B1,fkPalL!W6-m!!Gffeb&k0rrADa!!PH-QcSUnn,EAc
+oDeu/T[`Ybrr=.]!!t5jG_r*'dHC3#h>`!~>
+gA_BUpZpGEK2UJs"Dkm;pANA<!+Yt""D3J$kPalL!W7cF8d&h'eb&k0rrBJ*8d/LDQcSUnn,EB@
+oL]4-T[`Ybrr?HI8dSU9G_r*'dHC3#h>`!~>
+gA_BUpZpGFRY'=F"I$pjpANA<!0[;2"E]I2kPalL!W8thJ-:G!eb&k0rrC7@JH'cpQcSUnn,EBd
+oRI$jT[`YbrrA,#J-gF<G_r*'dHC3#h>`!~>
+g&D<Vr:K4%ZsO=!!!NREf^AS7df0:Mr;Zt/NPFcWn,EFfa7B96'9U/sr9sXc./j2M")!1dg\:.9
+!.shC"B:c4o)@5?!$Ce4!\Go/f)Q$Y.ri5UmeZq<s*t~>
+g&D<Vr:K4%[t%?38d.qNg$\\8df0;@rCR3.NPFcWn,EFfealB9;3A`\r9sXcB)YC+95K0\g\:.9
+!2fB\"DX=Jo)@5?!+>Cjs&]7qf1H9@?&-/JmeZq<s*t~>
+g&D<Vr:K4%\<qm(J-CP'g@"e9df0<!rI>#lNPFcWn,EFfht)@$J!%V5r9sXcPl6+8Dh5"Ep[8%]
+_"<-[HC2qIrmq)LO7Rl'GBn\hJ-LRk^=r#OrnRO(~>
+fDc*Tqt&mqZ=k!/!!FdZk4SZ%rrCgO!!I,#`9mQlrrN!Vo)Jl'Xk`^@rrBD(!!OopP/6G]mf*9h
+oDf"ZOi6Ydf)G^lo)Jt_FFe0r+9^j-":,u"5ofV!"W2O:o(i7?s*t~>
+fDc*Tqt&mq[=hQ98d&\=k4SZ%rrD3Z8d'*q`9mQlrrN"9o1B+.Xk`^@rrC1>8d/=<P/6G]mf*:*
+oL]6qOi6Ydf)G_Xo1B3pFFnpW=A7mM"AMfu@TE.p"^.;Lo(i7?s*t~>
+fDc*Tqt&mq[[;^'J-:nOk4SZ%rrDHaJ-9qU`9mQlrrN"co7-prXk`^@rrCaNJ-C1=P/6G]mf*:;
+oRI'jOi6Ydf)G`2o76j_"+uJeK'%RdIXHHeIeS?rLp>k.q>K.LJ,~>
+ec,mRqXNUl\8s"R!!E[eh!k3krrB\0!!NOIQ-/Uqmf*=eV"4Qh.@JBJrpg!g7/[)h>(*3sp&=CZ
+!7g]A"=oAAkl'*4!$Ce4%7Pf?[^N-%G$@?g+VbIZ!"98O,rS>#EdiXsO-3'-!!NdIf^S_8huA3~>
+ec,mRqXNUl\;FVL8d%t`h!k3krrC@C8d.n0Q-/Uqmf*=e]^n_u>+*S&rpg!gHMpG>B76T+p&=CZ
+!9*QB"BgVokl'*4!+>Cj%:Od[[^N-'KQV!8=&Mie8dnHm='fHTGCG1#O-=PV8d/+Tg[P%;huA3~>
+ec,mRqXNUl\=860J-:M/h!k3krrCmRJ-CFDQ-/Uqmf*=ecLZPhJ!nLKrpg!gUA]TGEIFY5p&=CZ
+!9s-+"FH$<kl'*4!0?`%$?grm[^N-'Nei@=rdXTk%"<VPH[0m_IY3H;P`>Be"bj&7nG3%?s*t~>
+e,K^QqXNXp]SSiUhZ*dcdd-`.fDbi;r;Zs2G+-bKm/I+Z)Y="4!dqH:qXXXdci!hI)0(SGjnnHF
+!WEAt!!F'jZJtc4rr=/4!"qbW[+OEmcGI#jU7.@/N.uLtF8U%iGCbC#LlIRcTW#**_T9cO#ke6%
+'7o05qYoIRJ,~>
+e,K^QqXNXp]U*D-hb"$(dd-`.fDbiYrCR2fG+-bKm/I+[>P(Mj98'b6qXXXdh>KqL;K7W+jnnHF
+!WGmf8d&%FZJtc4rr?Hu8ePTh[+OEmcGI#jU7.@/N/2t4I/J:%I=[$)LlIRcTW#**_T9ce:A.9`
+<hA=@qYoIRJ,~>
+e,K[PqXNXp]V18?J-;IllhUP3rrC7@J-::DRa:TlrrMkQo7-q"[c@5TrrD6\J-C:>Mn8$ImJd4d
+K_9iuI>"ocqptcIO7Rl7G)3NXj4_eq[]?-kQ&pr\L4k3WK)^B3K8#,@P*quAYdqWla/agcJ-C_7
+iplmEiW"E~>
+dJjLOqXWe!^nP'OhuEmGa6*0rf`(qrr;Zs=Gb<LYm/I+bJb&jE7&&-%rq$-i>l=X+8U6lPo)A%V
+!WF_E!!EISWS@4!rr=/4!"qbY]'&n`o'>Amf$DIU^:LbYYPPC4Z*h0Y`m*#fiTBLrmc()Uo`,+G
+ZKCiXir=N~>
+dJjLOqXWe!^nuHZi(=,kaQE9sf`(rDrCR2jGb<LYm/I+bV"71]B;3iHrq$-iMu?6O@<nEho)A%V
+!WHj,8d%h:WS@4!rr?Hu8ePTj]'&n`o'>Amf$DIU^:LbYYPPC4Z*h0Y`m*#fiTBLrmc(QPoh#?u
+^?5+dir=N~>
+dJjLOqXWe!^oEQMi.(roal`Btf`(rarI>#tGb<LYm/I+b^%-[UU=/]5oD\fnrI>&mH(E7OrpB^d
+rg*5-"Fkm"g\BA"!0?`%&pB/DkP=lClf?mQccO)=]!eoJqQ:@6[CX/nc.(M,k3VU*ikC0?J-:tR
+k4SZ3s*t~>
+ci4=Nqt97.aKp@Q"QBCa3PjeMrn7;O;uH\!-@DWApZqh[j9P;W":pO.l2:2R!TO=^!!NdJL9fb5
+li-rkoDeu,T[`Ycrr=/4!"qbY]BK4nrr2ikp@Ie?lK@9hi;;C=i8Wh\lL+69q"jpfrWDu]ZQAc>
+"U8r"meZqDs*t~>
+ci4=Nqt97.aKpt>9]AYIC;T'*rn7;OL&FUH<d^^qpZqh[l;.%E"Ak/pl2:2R!UEJZ8d.t-L9fb5
+li-sDoL]4,T[`Ycrr?Hu8ePTj]BK4nrr2ikp@Ie?lK@9hi;;C=i8Wh\lL+69q"jpfrWDu]^0L>'
+"\k-5meZqDs*t~>
+ci4:Mqt97.aKqCmiID&l_rUOjg&D&PrI>#rI&,Ehli."RKCjZsIuqJ1r:L!inUgaj"b(BEZJbQE
+rrB4oJ-11leFhDm!0?`%&pB/Ekl(P\rquTcoC2,3kN1a^qqhb=ioK:fmdg&GqY^?l"8V6&MY2K'
+JuIDkqYoRUJ,~>
+c2S+Lr:fX<d(PlG%c[Nl2nn;Frn@AP2#RCW0n-+Wq<S%]r*Jsp"'qt]p[nIcF8Z(B3Hg_/mJZAN
+!/gCK"B(W2nc%/?!$Ce4"@e9\kl(AXs8N&ss8;]h"oJ5rrVlflrr`/d_]SLN"?sffp\s:SJ,~>
+c2S+Lr:fX<d(Q/s;<(7OBu&a%rn@APDZ*01>(3I+q<S%]r/:/="*:Nsp[nIcSGc%`>]uFRmJZAN
+!3>`a"DO7Inc%/?!+>Cj"Cd8#kl(AXs8N&ss8;]h"oJ5rrVlflrr`/db$FX3"E;HFp\s:SJ,~>
+c2S+Lr:fX<d(Q<<K&_@aNPOQIrn@APRf.a>G^cXIq<S%]r2fL?",!Z.p[nIc\c%$^F`s(kmJZAN
+!6"M["F?HZnc%/?!0?`%"Eo[7kl(AXs8N&ss8;]h"oJ5rrVlflrr`/dc\qFG"I.*mp\s:SJ,~>
+b5VbGqXWk&`iNbjj8]<@^>ekcg]%6br;Zs]JZdr-li."b`:Es3-()dArV$6lmh#Hu"Tr7bX4m=5
+rrB=r!!GKI_sIBSrr=/4!!GcK]BK4Lrr`2h\eF]9"<t22o_mqPJ,~>
+b5VbGqXWk&`ianpj@TPh^Z+tdg]%7RrCR2uJZdr-li."bddp'6=d[:urV$6loMtl_"\WT\X4m=5
+rrC+38d&Ra_sIBSrr?Hu8d&U\]BK4Lrr`2h`E)V'"CA[uo_mqPJ,~>
+b5VbGqXWk&`itb^jF@Am^uG(eg]%80rI>#oJZdr-li."bhXc7#J!e=FrV$6lpPAcu"E/gkg@sn4
+!8$jn"F?0Im/GW:!0?`%"Eo[7kl'?;"8q]7L\-*"MSJ-BrT=-1~>
+aSuPFr:]L7c+%g=jT#EP_;tCjh>[K@qu?jgKXBh<lMgn^2"UbN!d_65qY'phO8T%^-?>3`l29iH
+!8d>J"=8o9kPa$4!$Ce4"@e9\kl'<:"8q_s$1n3#'qsFRr9+*1~>
+aSuPFr:]L7c+&X9j[oYp_;tCjh>[KFr(7*#KXBh<lMgn^DY$I&K!aP6pAY,srCR5oEfe*$r9F:^
+kO_@L=,FNOrR_&L@.Qtn@Z%e]rS7DTr:7^$oL]6eXk`LFkPp&~>
+aSuPFr:]L7c+'6tja[Jq_;tCjh>[KJr."omKXBh<lMgn^R.Gh1LpZ1<pAY-5rI>&rEfe*$r9F:^
+mdu#4I#5GtrR_&LO7Rl)G)EoqrS7DTr:8'aoRI'u[G:?NkPp&~>
+`W$2Aq!d=l]RM<k!!?`Lk5!j5!6b9?"B1,ekPXWF!WJY]!!GEWdI[A4rrN!6r;["$I&#3`rp'La
+rX8B!";?BkiVM1+!$Ce4"@e9\kl'99"8q_Z"7uQr&#@nLr9402~>
+`W$2Aq!d=l]TQXa8csU^k5!j5!8@?C"D3J#kPXWF!WKS"8d&[tdI[A4rrN%%rCR6)I&#3`rp'La
+r_iD]"Aj]SiVM1+!+>Cj"Cd8#kl'99"8q_p9_:p[;QSRBr9402~>
+`W$2Aq!d=l]V(&BJ-2(Tk5!j5!9O-/"E]I1kPXWF!WL:5J-2IloD\Ob!W@uUJ-Bq?UX\r8lMgna
+L@p'"I=e]^qUb`IO7Rl)G)EoqrS.>Sr:7[ToRI'sZJ"gHkl6/~>
+_uBu@qXWe!^OdTl!!E@Ub3Sr]rrAtp!!HSd^?Y[]rrMX&oDf"%N4nHQq#:>dr;[!:E/M0dqs"+]
+r\jEL"9NkHgA';"!$Ce4"@e9\kl'68!rVP*o)Jn2WnHtAl2Q8~>
+_uBu@qXWe!^Q_sd8d%eMb3Sr]rrBk48d&mf^?Y[]rrM^loL]6]NkOZSq#:?+rCR5jE/M0dqs"+]
+rc%L%"+7$#pt,NG@.Qtn@Z%e]rS%8Qr:#pA8d&8!g%,++s*t~>
+_uBu@qXWe!^S6JGJ-2@blhfQ=!7Ujr"ETO9lM]uI!VM9@J-:@^^$,ChrrCCDJ-C=>MR_aEl2Le`
+Re2+4I](opfDbi3o7-seMS&*NgA_6Pn?2A5"GO/7o)7hQJ,~>
+_>ac>qt0+(^ip[\!!Eq.dd[4mrr@iP!!Hnq_sIBerrN(=o)JkpWS."?rr=bO!!P]6S':C$kl1Wp
+oDeu&T$m8_rr=/4!!GcK]BK4HrrW)b4nAXV.^\"(rp'N6~>
+_>ac>qt0+(^lDL\8d&(gdd[4mrrB(s8d'$n_sIBerrN(do1B+(WS."?rr?m68d/OGS':C$kl1XG
+oL]4)T$m8_rr?Hu8d&U\]BK4HrrW)bF7W!,@("e_rp'N6~>
+_>ac>qt0+(^n?DGJ-:J%dd[4mrrBt7J-9tU_sIBerrN),o7-ppWS."?rrAGbJ-C%>S':C$kl1Xg
+oRI$jT$m8_rrA,OJ-:%Q]BK4HrrW)bRe)%4Lpl+3rp'N6~>
+^]+Q<r:T:)]OqT:!!GKkh"La*rr?U-!!IA-aRB,lrrC^C!!FI2a6ij%rrBD(!!NRBKWs>.kPkOB
+oDf"fQHAXqf`(pno)Jn_MS&*Nf`)$LcjfRH"Albjq#9UZJ,~>
+^]+Q<r:T:)]nK8I8d&k6h"La*rrA2Z8d'4"aRB,lrrD$L8d&4]a6ij%rrC1>8d.n*KWs>.kPkOb
+oL]7!QHAXqf`(qZo1B-pMS&*Nf`)$LfMhB6"E_<9q#9UZJ,~>
+^]+Q<r:T:)^70`>J-:\6h"La*rrBA&J-9qXaRB,lrrD9SJ-:@fa6ij%rrCaNJ-CF@KWs>.kPkP%
+oRI'jQHAXqf`(r4o7-seMS&*Nf`)$LhM(QO"HL.Sq#9UZJ,~>
+^&J<9r:K4&Y!D:Q"9O%gkka6;!'pJ_":B7<bjsrs!W5=V!!@;Ji;*6L!'pJ_"Yb%_`U*QdrrBJ!
+!!G0>_!D!Prr=/4!!GcK]BK4GrrW2pN:R#P!e\MXqs494~>
+^&J<9r:K4&Zu>8&"A=Wgkka6;!-eB6"AO!*bjsrs!W7678csOJi;*6L!-eB6"^,r3`U*QdrrC46
+8d&I\_!D!Prr?Hu8d&U\]BK4GrrW2pWq/gc99@0Yqs494~>
+^&J<9r:K4&\<6',"-gXcqV_ART`'BDIWUt$o&p#Rr1NY3",F2?q>1*kT`'BEG'&tfm/?,I!87!p
+"FH0Eli,Q:!0?`%"Eo[7kl'06!rhu0npgh1`p3Hes*t~>
+]Di*7qt&moL_B%S"=g4qo)@VJ!$(q;";#dIdIcW%!WK1l!!G?Sd.726rrC+;!!QVVVqC_BkPkPH
+oDf"<LUQ=Bf`(pno)Jn_MS&*NfDbpOn1+#0"<aVko)7qTJ,~>
+]Di*7qt&moS5eiI"C7hOo)@VJ!+#Oq"Aa63dIcW%!WKt-8d&Upd.726rrC[K8d/jVVqC_BkPkPN
+oL]6eLUQ=Bf`(qZo1B-pMS&*NfDbpOnRqGc"BhYOo)7qTJ,~>
+]Di*7qt&moWeB_h"G3Gto)@VJ!07#."FYKadIcW%!WLO<J-2Cio)ARe!9=!-"`Spgf_5=-rrDZ_
+J-:7T[cRG>rrA,OJ-:%Q]BK4FrrW2jPOj;-Ju@)grTsQ7~>
+\c2j4qXE@Q46uqLHF`,5ir9#Uqu?j<H(`[\k5PJU)Y="4$&H7Wqu$Ho;#L@t*c[.OkPOEA!WEc*
+!!EXZXl'!-rr=/4!!GcK]BK4ErrN%nnc/c%\)R5Ms*t~>
+\c2j4qXE@UD<sjsKXp1?ir9#Vr(7)iH(`[\k5PJV>kCVk:5cdJqu$HoK)J:F;fRc/kPOEA!WH0n
+8d%k=Xl'!-rr?Hu8d&U\]BK4ErrN&0nk'"1\)R5Ms*t~>
+\c2j4qXE@YOmIT#N4J$Gir9#Wr."osH(`[\k5PJWN:_W'IuM&'qu$HoW;V5MH?"nVkPOEA!WIrK
+J-:=OXl'!-rrA,OJ-:%Q]BK4ErrN&Anpgh$\)R5Ms*t~>
+\,QX1pZg7G!q$$k3hb!mro="YfDGUO-%)N@pZDJVrHe&8"&c)MpAP!kg\_$T89pfRo)@eO!WG:T
+!!@8;fCmks!$Ce4"@e9\kl''3!V@E(!!F./bO5>rs*t~>
+\,QX1pZg7g9^YLUA"h?Aro="Yj8;LP<d^^qpZDJVrL`[R")b'ipAP!kk57gT@!S?jo)@eO!WI66
+8cs=6fCmks!+>Cj"Cd8#kl''3!VKdj8d&+`bO5>rs*t~>
+\,QU0pZg8(m=5=jU!iN2j8T,Fr."oqI&,Ehk5PJ\](:FSJuI>qrVllbr."rkH(NCRroX4]rgrb4
+"+6orp=TBFO7Rl)G)EoqrRLoKp5SWn".[R&rU'W8~>
+mJd4QqYpK?rrrE!o&#]Bmf3J"NkOZSj8T+gqu?jNI];)tjo5A:"S;Zs)O/5-rVlfs?i9s.$>bI'
+iVDR7!,D-+"BLu:o)@>B!$Ce4"@e9\kl''3!W@<7!!@#BhtZU=J,~>
+mJd4Wr;Q]ArrrE!o&$BDmn*^YNkOZSj8T,'r(7)oI];)tjo5AB9_:p[<0YAgrVlfsNr;QR9l>]l
+iVDR7!0m+J"DjOPo)@>B!+>Cj"Cd8#kl''3!WAV\8csIHhtZU=J,~>
+mJd4[r;Q]ArrrE!o&$m/mskOjNkOZSj8T,6r."opI];)tjo5AHK(OQrJ!@q=rVlfsYPitTIVsnH
+iVDR7!4;BK"FHT_o)@>B!0?`%"Eo[7kl''3!WBV#J-1V5htZU=J,~>
+n,EUdIh7t8oD6`3"TA)XY8cp1"(nRepZ)8RQi$gd2h8'gqW7_Xr'^,V#B6p)q#CBW"T8<(20G5*
+mJZ,G!0QmR"@/-hmf(o>!$Ce4"@e9\kl'$2!6t'7">H@jnG_kUJ,~>
+n,EUfUfFbioD6`3"TA)X\m"Pp"*U]upZ)8R[JWW">_'!7qW7_Xr-@m+#CNc5q#CB^:&RZf>'6.O
+mJZ,G!3l)f"CdP5mf(o>!+>Cj"Cd8#kl'$2!8@!9"C@VCnG_kUJ,~>
+n,EUh^PKr!oD6`3"TA)X_hmi4"+mQ,pZ)8RbPZknGCZjRqW7_Xr1NY3#DTJ?q#CBcK)L6"FT[rM
+mJZ,G!6Fe_"FH<Nmf(o>!0?`%"Eo[7kl'$2!9<U"".[X*rpKf:~>
+n,EX9!!!tXg$nparri>tm(a\3!!GTUbjk\nrr@0=!!GQ>ZJtcCrrN+qo)JtOSBg[(s)7i9"Ti+_
+WnR1,rrC%1!!F^-]]f=Irr=/4!!GcK]BK4CrrN$5o)JmtL:QFCmf.e~>
+n,EXH8kN@1g$nparri>tm)WK%8d&[mbjk\nrrASe8d&LRZJtcCrrN,4o1B3oSBg[(s-`dW"DNCd
+g@jS,!7g^6"B^Pokl'37!+>Cj"Cd8#kl'$2!W6-m8d%hD\`N_Vs*t~>
+n,EXSJ:NR#g$nparri>tm*1FWJ-::gbjk\nrrBY.J-:%JZJtcCrrN,Fnpgn6cLLo6\,:aZDh+kA
+p>c/QiUhX'I#>T#rRq2NO7Rl)G)EoqrRCiJr/1&q",aYNqsOK7~>
+n,E[i#QOj,[bUTUbl7eBnAQL>!!FL)^?GLUrr?!q!!G`F[cRGJrrMg/oDf("Kt?FDmg/jl"WqcF
+^?GLTrrDKZ!!EsfZJkZ5rr=/4!!GcK]BK4CrrN*rnc/buVUtP0s*t~>
+n,E[k:J+6*[bUTUbl7eBnB>5/8d&1R^?GLUrr@cN8d&RW[cRGJrrMjsoL]<]Lq;aGoMGKY"]TN&
+^?GLTrrDW^8d%tCZJkZ5rr?Hu8d&U\]BK4CrrN+Nnk'")VUtP0s*t~>
+n,E[kKReT;[bUTUbl7eBnBm3bJ-:7Y^?GLUrrB(sJ-:%M[cRGJrrMnPo7."&]&rnaK`-E)H?,%[
+kksK@!;?&8"FYp.iVM7-!0?`%"Eo[7kl'$2!WK"eJ-)V"p?qs2~>
+n,E[m4obQgMSn]VbPq\Bo#)44!!ERZYi,B=rr=kQ!!H5W]'0+RrrN(9o)JnfVUkEiqu?moHD&^X
+ro="ZrYP2,"*g`tpt>ZI+7fI87Z+hArR:cHII[@@3L7bTrpTl;~>
+n,E[mG"PA%Oi-G]bPq\Bo#t/*8d%k?Yi,B=rr?s78d&a_]'0+RrrN(ao1B.$VUkF9r(7-%HD&^X
+ro="Zr`\qd"+-s"pt>ZI@.Qtn@Z%e]rR:cHU@LnZ@$\n&rpTl;~>
+n,EFfT)O6BQG_tbbPq\Bo$W<aJ-:@RYi,B=rrAMcJ-9tN]'0+RrrN)*o7-spVUkFTr."rkHD&^X
+ro="ZrepE!"+I0%pt>ZIO7Rl)G)EoqrR:cH^%-[VI?qtCrpTl;~>
+mf*90rW!'WW7LV?bPq\Bo;Vo`!!@>=f_=J,!"f&."B^VslM]cC!7CB<";d9>i"5he"Uf1&[,Ur@
+rr>O\!!?MtdIc,l!$Ce4"@e9\kl'!1!1iZ\"<!*.kPXfKJ,~>
+mf*9Wr^m<&W7LV?bPq\Bo=Rcf8cs@7f_=J,!*/qh"DEb.lM]cC!8R0<"B1N%j&Q%M"\rrj[,Ur@
+rr@E<8crt%dIc,l!+>Cj"Cd8#kl'!1!4hYm"B12hkPXfKJ,~>
+mf*9trdY-(W7LV?bPq\Bo>lLRJ-11pf_=J,!/UQ'"E]U:lM]cC!9Ng&"FlWQk(rtd"b(BF[,Ur@
+rrAecJ-1.hdIc,l!0?`%"Eo[7kl'!1!6t(b"FZ0=kPXfKJ,~>
+mf*9kr;Zq@]]K"4rrW,hB(>p(@%5O8jo5>LqZ$b0O2C8_j8T/X2"L\KBWl^Z!!P6'QcSUniVrmu
+oDf"]PfW=mgA_-po)Jn_MS&*Ne,KEZnc/dpJ?@](n,In~>
+mf*:,rCR0E]]K"4rrW,hNq,dEDk#,Gjo5>Qqaq!-O2C8_j8T/XDY$I%H*<\78d/CAQcSUniVrnH
+oL]6rPfW=mgA_.\o1B-pMS&*Ne,KEmnk'$XJ?@](n,In~>
+mf*:<rI>!2]]K"4rrW,hXR^lDHCN:Rjo5>Tqg\fkO2C8_j8T/XR.Gh0Ks.cZJ-C(=QcSUniVrnf
+oRI'kPfW=mgA_/6o7-seMS&*Ne,KF'n:1SBhYHX?J,~>
+mf*:Rr;Zs>T$Qp)b5VP@j;%7d"B(K*nG_SM!6b6>"DEt<mf)8H!WJDV!!4j?')_e6!b$VZg@sP*
+!1i`^"=f>Cl2B?9!$Ce4"@e9\kl'!1!5@t'")+CYp$_p2~>
+mf*:WrCR2nT[3-+b5VP@k?.=J"DF%@nG_SM!8@<B"E0ICmf)8H!WKCr8ci=d<r>PmBn35;pYc&O
+\b&Js=c9uXrS%8O@.Qtn@Z%e]rR:cHd.'^1F.q.Wn,In~>
+mf*:ZrI>$%T[3-+b5VP@lA>+_"F-0PnG_SM!9O*."E]gHmf)8H!WL12J,u*nr."ogJ?%>ti;Wf&
+oRI'lMnSBRgA_/6o7-seMS&*Ne,KF)nUL^hU"/i)s*t~>
+mf*=e-N*oI:p]$RrlY6AqM"M@"A"Tjm/H/I!3>ts"ETjNnG_GI!UU-a!!*3jqu?mBEfRp!r8@ST
+an,Q9'83[NqqD&M+7fI87Z+hArR:cH^@;1+<1(o"rp]r<~>
+mf*=eAGo+'EO4NsrlY6AqPNjV"D!S1m/H/I!5n\+"ETjNnG_GI!UrnW8c_Rur(7,lEfRp!r8@ST
+f^qc=:kZ.6qqD&M@.Qtn@Z%e]rR:cHdIBg3C7*68rp]r<~>
+mf*=eP5Tn6LpPt5rlY6AqRuKN"F-!Em/H/I!7gss"ETjNnG_GI!V:s8J,k3!J-C7>NkaiVi;Wf;
+oRI'mKX0V7gA_/6o7-seMS&*Ne,KF)nULagR*>+"nGe"~>
+mJd/pr;Zs)M8niYb5VPBjp1MY"@nEblM]lF!/paT"9N\3bjs`m!W?*k!!!)u!!Q&BT[NH2i;WfJ
+o)Jl;W7q%#rr=/4!!GcK]BK4BrrBe'!!G`P`9mQns*t~>
+mJd0HrCR2dP/cebb5VPBlVI.F"CmD)lM]lF!3Q,j"*BmRo&9TLrJ0u:!)*5^"_)eNde!IrrrD``
+8csI>gA'D%!+>Cj"Cd8#kl'!1!7C=/"CmP3mJcVTJ,~>
+mJd0ir."m9`p3KErrW2fKCjZsGDs9$rT=+[`VY/fFI15BiVrrWWU53>EdFD,oD[\J!;Q/9"+I3&
+ptG`JO7Rl)G)EoqrR:cHhXQ+!H'#u3rp]r<~>
+mJd0Rqu?jKW7CM=b5VM?:\4Vi6]/P?rT=+[B`%i5%<e2eo\ofNrjD.o"Uf1&[,Ur>rrN*CoDeu!
+T$d2arr=/4!!GcK]BK4BrrB(h!!G?@]]oCas*t~>
+mJd0or(7)tW7CM=b5VM?Jb2P;@>__]rT=+[Pl+,V:3N)Qo\ofNrlOS#"\rrj[,Ur>rrN+.oL]4'
+T$d2arr?Hu8d&U\]BK4BrrBt,8d&IY]]oCas*t~>
+mJd1/r."p'W7CM=b5VM?V=]9@GDa&srT=+[[/>FWIWh1,o\ofNrn$Rg"b(BF[,Ur>rrN+\oRI$j
+T$d2arrA,OJ-:%Q]BK4BrrCU>J-:1V]]oCas*t~>
+mJd19qZ$_.]&NP.rrN+foDf"[M7VpLk5PEOqu?j/GFd1Si;WiS)XdY020P>-meu#B!)E.d"@89m
+mf(u@!$Ce4"@e9\kl'!1!1r]\">GS>k5=`KJ,~>
+mJd1Eqaps<]&NP.rrN,-oL]6oM7VpLk5PF/r(7)eGFd1Si;WiS>jk8g>'?7Rmeu#B!.jc7"Cm\:
+mf(u@!+>Cj"Cd8#kl'!1!4q\m"BpPhk5=`KJ,~>
+mJd1Mqg\d.]&NP.rrN,AoRI'hM7VpLk5PFWr."p!GFd1Si;WiSN:29#F`s+mmeu#B!2fC="FHBR
+mf(u@!0?`%"Eo[7kl'!1!711c"F>g3k5=`KJ,~>
+mJd4c&,ZD1$BiR!r6#$>f^o.H7YnY>r9""Z./X&J&p^,!p#,iNrc@N."CH\Zg@sG'!.+8;"=B&>
+kl'99!$Ce4"@e9\kl'!1!.aS>"=f)2j8AEHJ,~>
+mJd4c<;]>k:702kr6#$>iq,hG@YhVZr9""ZB)G7(:jJ\_p#,iNrgN:J"DE=cg@sG'!2/sV"BUMo
+kl'99!+>Cj"Cd8#kl'!1!2T-W"B^>`j8AEHJ,~>
+mJd4cL\lT(SBC6sb5VJ,oRI'fLq;gJk5PFGr."otH(WUZi;WiW\*nhMDh+kApYGiL]_$^WI#GZ$
+rS.>PO7Rl)G)EoqrR:cH_!upXHA&Wbr:'`:~>
+mJd4d9)ASk0<Egurlb<Br<r8u"@e6Zkl'ZD!!N3""<)T\f(S#$!6t!5"Wh]E^?GLNrrAbb!!Ejc
+Z/PQ6rr=/4!!GcK]BK4Brr?U"!!Fa&YMf9Hs*t~>
+mJd4dIeu_?@'&#Qrlb<BrDN;\"Cd5!kl'ZD!)3;_"B'Q?f(S#$!8?p7"]KH%^?GLNrrB_(8d%qB
+Z/PQ6rr?Hu8d&U\]BK4BrrA2O8d&7JYMf9Hs*t~>
+mJd4dV#,ZFKrir!rlb<BrIsop"EoX5kl'ZD!.t-!"FGHhf(S#$!9<R!"aY3L^?GLNrrCC;J-:=R
+Z/PQ6rrA,OJ-:%Q]BK4BrrB@pJ-:1MYMf9Hs*t~>
+m/I':q>^V,]]An3rrN*Ko`,+kMS/0OkPkPBqZ$a<H_f<ghu<`T/b&fE8:$oUoD[SG!5\7,"*CEn
+pY5]J+7fI87Z+hArR:cH3:QtO.=eSYqXFN8~>
+m/I'^qFUj;]]An3rrN+4oh#?uMS/0OkPkPJqapuhH_f<ghu<`TC%4e!@!\HmoD[SG!7UO3"*pcs
+pY5]J@.Qtn@Z%e]rR:cHEUcX(=FdR3qXFN8~>
+m/I(#qLA[.]]An3rrN+`omd0fMS/0OkPkPPqge]n!i4KChu<`TQ19A.EdFA*oD[SG!8mBu"+I-#
+pY5]JO7Rl)G)EoqrR:cHSFM+4H@W0UqXFN8~>
+m/I'qq>^X(N6:MbbPqQ+o`,,"N5"TUkPkOoqZ$a<I&>Tlhu<`VMXg`N#]#1$iVM@0!8d;I"BM&>
+oD[PF!$Ce4"@e9\kl'!1!"AAt"=\l(htljBJ,~>
+m/I(0qFUlcQ-/IkbPqQcoh#@$N5"TUkPkP-qapuhI&>Tlhu<`VX7Ajd9PoNjiVM@0!9`rG"DjUT
+oD[PF!+>Cj"Cd8#kl'!1!)i>Z"B^2WhtljBJ,~>
+m/I(>q1&R;b3]&LrrAY`J-9tQ^?Y[[rrCmPJ-:4HVV1b%rrN,9npgmmDhbUWqV;)Nmdkr3I%8RT
+rnRMRO7Rl)G)EoqrR:cHL@KcsH@W0UqXFN8~>
+m/I(Uq#COAW7LS>bl7Z0o`,,0OMgGakPkOKqZ$a<I&>WmhZ!W5"S2Ts/p*AumJYi?!<2Qi"?DXa
+mf)#A!$Ce4"@e9\kl'$2!71-7">k\4i;2sCJ,~>
+m/I(Xq+:cnWn-e@bl7Zgoh#@*OMgGakPkOiqapuhI&>WmhZ!W=9_1j[=EKhJmJYi?!<2R^"CRD3
+mf)#A!+>Cj"Cd8#kl'$2!8[-:"C$G[i;2sCJ,~>
+m/I([q1&U$Wn-e@bl7[:omd0cOMgGakPkP*qge]o!iF]HhZ!WCK(FKrGBB+imJYi?!<2S?"FQBO
+mf)#A!0?`%"Eo[7kl'$2!9`j%"F,L#i;2sCJ,~>
+m/I+c0)5JM7(D1LrltHC6hUK`$?VQTnG_VN!-%f8"<2`cgA'P)!W>:T!!HDQVqC^trrN*)oDf":
+M7VjIh#@?no)Jn_MS&*NeGfN0n,NSRK!=83nGe"~>
+m/I+cCACI)Cq/EtrltHCH1ji69luZBnG_VN!1E^V"B'WEgA'P)!W@358d&aTVqC^trrN*poL]6e
+M7VjIh#@@[o1B-pMS&*NeGfNQn4EgiK!=83nGe"~>
+m/I+cQMH%6MR_U=rltHCU%X!?IWUjsnG_VN!4_oVs*OmFgA'P)!WAV]J-9h?VqC^trrN+PoRI'l
+M7VjIh#@A6o7-seMS&*NeGfNhn:1XbK!=83nGe"~>
+li-rrp](D-_WL^>rr>:W!!FEgSC$ojrr>ai!!F-dVV:h%rrN+foDf%/E/V?jqqD&M+7oO9#D0,9
+qV;,A!!GcK]BK4Crr>IV!!GoJ[H.8Ts*t~>
+li-sIpdtX=_WL^>rr@698d&+;SC$ojrr@TH8d&%>VV:h%rrN,-oL]9`E/V?jqqD&M@.[%o9S0G)
+qV;,A8d&U\]BK4Crr@B78d&UW[H.8Ts*t~>
+li-sipj`I1_WL^>rrA\bJ-:1BSC$ojrrAqnJH'uuVV:h%rrN,AoRI*mE/V?jqqD&MO7[r*ItFi\
+qV;,AJ-:%Q]BK4CrrAe_J-9tJ[H.8Ts*t~>
+li-sQp](F$KZi`ZcMml#p&G4TI&,Ehk5PE,qZ$a/I&5Kih>[ND#PA'#4F!@?nc%8B!$Ce4")"C[
+p>#]=!!GcK]BK4DrrMEgn,NSrMS&*NnGe"~>
+li-snpdtZ`PKW=icMml^p.>HmI&,Ehk5PEkqapudI&5Kih>[NH:\@<`?$Mj`nc%8B!+>Cj"*:6g
+p>#]=8d&U\]BK4DrrMXan4EgtMS&*NnGe"~>
+li-t.pOE@;bO#,OrrAJ\J-:%CUtGG(rrA5ZJ-:=KV:bOurrMbEomd3fGaltJrn@APO7Rl(IA>Be
+h#Hqq"Eo[7kl''3!VM'6J-9nM]BK4_s*t~>
+li-t3pAb=+RFC['ci3t]p&G4qK!=20kPkPVq>^X*HD9!ah>[NS9_JGi!bHtdh>#\'!%7@<"A,!(
+nc%AEnc/e^MS&*Nec,W-n,NUqEKA$(rp]r<~>
+li-t@pIYQcU!rN/ci3uKp.>I"K!=20kPkPXqFUlbHD9!ah>[NSJ+ZD:C4`VEpt>ZIAb/LsAsgd3
+rn[VF8d&U\]BK4DrrB1j8d.n.O2L>`nGe"~>
+li-tIpOEBuVpk/5ci4!(p4*9cK!=20kPkPZqLA]tHD9!ah>[NSV"K6@Dh>.Jpt>ZIPOj;-I$i+I
+rn[VFJ-:%Q]BK4DrrC%-J-CFBO2L>`nGe"~>
+li."a&,-&,(oGsVrR(WFn+H_b#]Pa9kksWD!71H@"*gHfp"fWKrhfAh"WqcH_<V!Prr>7S!!Fp7
+_!CsUrrCsI!!GcK]BK4ErrN!Bn,NV6FdUDCrp]r<~>
+li."a<;/uf<iamDrR(WFo_(l\9Q5s(kksWD!8[HC"*gHfp"fWKrkA(u"]TN(_<V!Prr@668d&@Y
+_!CsUrrD9R8d&U\]BK4ErrN%-n4Ej`FdUDCrp]r<~>
+li."aL\H<%KW`turR(WFp\'+@IW17ZkksWD!9a0."*gHfp"fWKrm:@h"aY3N_<V!PrrAY^J-:7[
+_!CsUrrDNYJ-:%Q]BK4ErrN(]n:1[gFdUDCrp]r<~>
+li."b6M:B^,d,qprmLfH\+Te*/p<W*nG_VN!2oVm")==Po\BHIo*b9m"\*g3de*Olrr>:T!!Emf
+[,_&?rrCdD!!GcK]BK4ErrA\[!!GT8Ut>>/s*t~>
+li."bGkO`4?Er;XrmLfHbk=X4=E^(TnG_VN!5SD&"*0mXo\BHIohtNV"^lYMde*Olrr@668d%tE
+[,_&?rrD0O8d&U\]BK4ErrB\"8d&IJUt>>/s*t~>
+li."bT_<m=LU>k/rmLfHg\-.$GBT@snG_VN!7Uao"*g<^o\BHIpP&?l"`ep_de*OlrrA\_J-:=T
+[,_&?rrDEVJ-:%Q]BK4ErrCC6J-9tAUt>>/s*t~>
+lMgj0o`,+AZJP9Re,KDhp&G5!J#M)pk5PF+q#CP&Qd#"!h>[NS=SMk""`&k!iVM4,!'g#S")k*k
+pYPoM^[_@-7Z+hArR_&MpE8r*"TrCkZJt`Ls*t~>
+lMgjVoh#?n[bg]Ve,KE<p.>I"J#M)pk5PFRq+:d+Qd#"!h>[NSL\OIF9PoNjiVM4,!-[p*"*g`t
+pYPoMddg!5@Z%e]rR_&Mq-`\a"\WZcZJt`Ls*t~>
+lMgjromd1$\DHoXe,KEYp4*9bJ#M)pk5PFoq1&TmQd#"!h>[NSWq_)JIrC(JiVM4,!2&h4"+R6&
+pYPoMhsu:#G)EoqrR_&MqiL;t"b1HEZJt`Ls*t~>
+lMgjcoDf"@[,:QUeGfLgpAb@8EK%Qmr9""Z8GN5g8Wq*]rnRMRWqZPt.WgopmJY];!&*mC"A,*.
+o)@PH!3>Yj"@e9\kl'-5!-@T/"Y"PW`9dHks*t~>
+lMgk&oL]6n\)6lXeGfMTpIYTeEK%Qmr9""ZI/-A;AWk($rnRMR_>$V+=*0\HmJY];!,M-t"D=4L
+o)@PH!5nA""Cd8#kl'-5!1`LM"]of0`9dHks*t~>
+lMgk7oRI(#]&32[eGfN/pOEEoEK%Qmr9""ZV"oNDH'628rnRMRdeJ=rG]]1imJY];!138,"FZcb
+o)@PH!7gXj"Eo[7kl'-5!4hQK"aG-Q`9dHks*t~>
+lMgkCo)Jn?[,:QUf)G`Rp&G7mH(N@Qroa:^o*G-l">c"NlM]N<!V6]p!!H)GV:P@lrr<l+!!FI+
+_!:mUrr@uJ!!GcK]BK4GrrL"?n,NXo?%/X$p&=F[J,~>
+lMgkKo1B-m\)6lXf)G`ip.>KuH(N@Qroa:^p/(QW"C-o"lM]N<!VK@d8d&XPV:P@lrr?6n8d&1U
+_!:mUrrB1l8d&U\]BK4GrrLVDmn*asI\kWgrpTl;~>
+lMgkQo7-t"]&32[f)Ga%p4*<dH(N@Qroa:^q1SQo"FH*AlM]N<!V_<DJ-9k?V:P@lrrA#KJ-::]
+_!:mUrrC%/J-:%Q]BK4GrrM)1mskR[I\kWgrpTl;~>
+lMgna'Cu2,,cokprR_&L0_YPN+E3.FiVDX9!1W``";Za"jS[g5!WH3t!!N^ILpuIBf`(sCnGi[p
+I^.i-hu<[enc/e^MS&*Ng&D*9)".G.13/Dfk54THJ,~>
+lMgna=7]#e?F&G[rR_&LD"gO*<,dZ%iVDX9!4_er"B'u^jS[g5!WIlN8d.q-LpuIBf`(sFnO`pW
+J[+/0hu<\<nk'$oMS&*Ng&D*@>OP/f=`TP8k54THJ,~>
+lMgnaM=Z6#Lq)=6rR_&LR.l+7H>n\KiVDX9!6t:h"FZ$4jS[g5!WK+qJ-CC@LpuIBf`(sIn:1Uo
+Z/GK9rrB@qJ-:%Q]BK4HrrM_MmskRbEfRfpqsOK7~>
+lMgna9(Drb'qO.Nr7V)MS+cme"(-AGcLCeqrrMj>pAb;9Wn[='rrB(q!!OutQc\^qf`(rdn,NSg
+U"&`6i;Wd2nc/e^MS&*NgA_3:..7-?&o3#peFW\-s*t~>
+lMgnaIe$)6<iXsGr7V)M\G&T"95&XCcLCeqrrMq*pIYO6Wn[='rrBn38d/=>Qc\^qf`(s"n4Eh"
+U"&`6i;Wdnnk'$oMS&*NgA_3AB(&=r:i1`[eFW\-s*t~>
+lMgnaV"0$=KsTS*r7V)Mc1c_mIrBY)cLCeqrrN"[p4*4Eg\BP'!7L^o"a>*Uam]5]rrCsGJ-:@q
+eF`aurrAGWJ-:%Q]BK4IrrM_UmskUiDh+_7oD\1XJ,~>
+l2La,nGi^uJ_0AernRMSh[oM^"Zg^a]&WVKrr@E>!!G][cgq(jrrM^!qZ$atI]1omfDbhhn,NS8
+P/Q_ciVro@nGi\]MS&*Ng]%<;..7-?"^-)9_s%!bs*t~>
+l2LaSnO`s[R+Lg'rnRMSkZ.@L"^H,.]&WVKrrAee8d&arcgq(jrrMdjqaq!%I]1omfDbi=n4Egb
+P/Q_ciVroGnO`pnMS&*Ng]%<BB(&=r9P/O8_s%!bs*t~>
+l2LapnULdpWn6_9rnRMSmtg^g"a"gF]&WVKrrBb+J-:=kcgq(jrrMkJqg\fhI]1omfDbi[n:1Xj
+P/Q_ciVroLnULacMS&*Ng]%<GPja,,IrBRt_s%!bs*t~>
+l2La_mf3Jfc0G*'hZ!WJ0_YPO*cHY/eare'rrKG/p&G4'MSA<Ph#@ES=Sr.&$ZM!7k53g2!V[H"
+!!@,Di;)@3!0cpQ"@e6[kl'<:!RDnW!!`QtFH!Zbp\sR[J,~>
+l2Lb"mn*_0cKb3(hZ!WMD"gO+;f@8deare'rrL59p.>H_N5"NRh#@ESL\saJ:2l*%k53g2!Vosg
+8csIGi;)@3!4),e"Cd5"kl'<:!Sq/O8d8^GN4.U;rpB`9~>
+l2Lb4mskP/cg(<)hZ!WPR.l+8H>eD6eare'rrLf)p4*9qNkX`Th#@ESWr.ANIW11Uk53g2!W.iE
+J-1P2i;)@3!6Ob]"EoX6kl'<:!U#R4J-L%9N4.U;rpB`9~>
+l2Lb6mJmA6WoNaLi;WiL48/^Z%qL$Wa6WWcrrL"GoDf"aWS$qDh#@ASqu?mQG*pGArn.5NL[G-F
+*1G+@rSmhW/F`]C'md=Lqq_8QP76jZ#!?p\XOZn?m/MS~>
+l2LbAmRdUg[c@#Xi;WiOFSAB3:25-Ga6WWcrrLVIoL]7$WS$qDh#@Ajr(7,pG*pGArn.5NWpWI^
+<h.D'rSmhWC%4du;1c7;qq_8QZ;U*_#$c2'XOZn?m/MS~>
+l2LbJmXPFt^Z4tai;WiRSbIX=I;XD%a6WWcrrM)5oRI'sWS$qDh#@B&r."rpG*pGArn.5N_sMsV
+SBUL$ir9"EnULajLUQ:@h>[MtL@0QrFE3,;eai\*s*t~>
+l2Le`$gmuu"_lNTq>TFS!TQ$2!!`j8GE]]"q#9LW!P8d3!!EFP_<CdOrrM^!r;Zt!I]1upf`)!$%
+.+#t8@.1IroF(ZU[J0d%rThaqYoIR!Rj:$!!`QjEJ147mJQ;MJ,~>
+l2Le`;XR-\9oRZkq>TFS!UF[u8dA('GE]]"q#9LW!RF[88d%hE_<CdOrrMdjrCR3'I]1upf`)!1
+;XI'ZD6r*nroF(Z^@+Yt;2EZhqYoIR!T81h8d8UAKVm&^r9OB5~>
+l2Le`L$jHpJu.)eq>TFS!V)WQJ-UOAGE]]"q#9LW!SrM$J-1tNkkj08!V_<HJ-9k@W7q!urrMA=
+m=5=qZekHUjSo5-mskRmSC6m&ro*kXl(@?n#'=j<VU"T,li2J~>
+l2Le`1@+uE+IqNbr;PjY!NQq/!!`j8G)iuco`"(S!KRBR!!En#dI@(irrN*mrW!*0E/M6hr7V)N
+k:#Wr"BiV(q>TOV!TOm]!!XBfeFNG6roX4^dU*.F!!`^'EeUC6lMBfGJ,~>
+l2Le`D<sju?E`G^r;PjY!Q8+78dA('G)iuco`"(S!O,;g8d&%`dI@(irrN+Lr^m>hE/M6hr7V)N
+mUkcW"F@rIq>TOV!UEkT8d8Ifg%+t;roX4^hi1=t8dA%!EeUC6lMBfGJ,~>
+l2Le`R-]>,MnJ-Cr;PjY!S*)%J-UOAG)iuco`"(S!QTf^J-:FudI@(irrN+prdY0$E/M6hr7V)N
+o9AQk"HgR`q>TOV!V)'7J-Lk8hX^L@roX4^kc]U+J-UREEeUC6lMBfGJ,~>
+kl1Wpl2UuP\*<Varp'LacU[[/#7Og[Nj@=.r9=4^gHY*+";?sNnbh5C!1s/i"YY%db4,DarrL.[
+kl:iY_WU^nkl1\H.-^d<"$1nHoD&7_rpB^entJA8!!jBKG)E<FlM:GEs*t~>
+kl1XGl:M5#_Wgdlrp'LagjJff#>SoTNj@=.r9=4^k'-5c"B;&Hnbh5C!4i)$"^#r8b4,DarrL_X
+kt2)#`TR$qkl1\OB'Mto9Q6ZMoD&7_rpB^ep:Y\:8dJ:.G)E<FlM:GEs*t~>
+kl1Xgl@9&)bN\`urp'LakG.a$#C^T7Nj@=.r9=4^m@Wfs"G<`,nbh5C!6tLn"a>-Wb4,DarrM/?
+l$ro"`om-rkl1\TPj3c)JXEt"oD&7_rpB^eps>Z"J-^L@G)E<FlM:GEs*t~>
+kl1XCkl:ni6)s5Dr;Q-a!Obes!!aBOG`T2_nbh\P!p=J-li71mAC'Z=rnm_]mfWUj<dq"$pY5]L
+k@Xq\!!O@#iUZmFli."#*9@/,%R"Wo_WLXjr;HWoqu?]q"R`jU6O<#Y#mNM1I?UtcmJ?hHs*t~>
+kl1Xckt2.RFM$i3r;Q-a!R-/g8dA7/G`T2_nbh\P!q)IQlq.FTL=5Jbrnm_]nk;YJB7?f5pY5]L
+mZUB.8d/CmiUZmFli."5?KFcc;fn80d-LK(r;HWoqu?]q"S0j;Gu*d!#u"WDI?UtcmJ?hHs*t~>
+kl1Y&l$rthRE4[er;Q-a!SaOFJ-UF>G`T2_nbh\P!qWmSm!o7jT[W<(rnm_]on%^EFFL1BpY5]L
+o<X&3J-Cb8iUZmFli."CNobctL7>Kgh!Xt7r;HWoqu?]q"SUWfTnMc_$%I&:I?UtcmJ?hHs*t~>
+kl1Xrjo>W0FLgr:r;Q]hrr_\pCE)pH#Qcc!I$D(mnbhbR"8fZ2#j;6m&p2Ojq#13Ors8Qg!"4".
+\`WhHrr`,/>6s6h"sSWKo(i7`nG`O+:Yc!S%OaPFC4#l+")V4&([1o+"#"51LnVT=nGDDKJ,~>
+kl1Y/k"5kcR)ngmr;Q]hrr_l6Q<j,T#?l%nPd]98r9XFcr6C*pkXl%ZQ.PO#rVkgV#lSs>:O%c-
+k5=*9"8pH%:ub.P@%Z0Dq>L<^rrLW$h+@lNAp0#qTV;=Y"."da>3SWc93H(ULnVT=nGDDKJ,~>
+kl1Y=k(!\rZIJF>r;Q]hrr_uI[>jg/#Bk'6Pd]98r9XFcrS4H,k^WklY1rI@rVkgV#lU?FJU*-`
+k5=*9"8prVK]@ReN4%R6q>L<^rrM&Uh1,Z`P+AVY]DT;D[B,mVl$s(iGB%k`TtfCPqre!0~>
+kl1YIirBT%89UT9f\5'6gXEg.JlXAl!!j??FG-7#hX^U5rri>TSmN2l!!`TaHEuT*qY^?lkl1qf
+P5mXuR*"grj8T;^o"KuW&DdBn"#k>)j7iEKrr2fps8E,WVIpjV!"&obApB'![*Ih,r9"$0~>
+kl1YOj%9MUHCVIgi8agt"lIY<VMAjU8dJ:+FG-7#hX^U5rri>^\rBhP8dA%-S]'adqY^?lkl1qf
+Z:\ebR*"grj8T;^p!Bdl<Sg=S9Q$98kkFrPrr2fps8E,`^lr'48d\6qCj:]'[*Ih,r9"$0~>
+kl1YSj+%YqTXW(rkj%I!lfd-M^oE[jJ-^OCFG-7#hX^U5rri>fcEE,cJ-UXk[aOL9qY^?lkl1qf
+a+/u#R*"grj8T;^ptireLu*XgJX<ajlhC8Srr2fps8E,gd^+qAJ-pdMEd3>-[*Ih,r9"$0~>
+kl1\_'E.t9!uWR>/0Y_S!!s!!E.*kMb2i9pnc&]PB0Hj[!!j;u<c39EpA=jSrs%?\HC(Yap>u;V
+mrM8Le,Tms7VT7#q#15rG?-I0[/^U:*Ck$qLmt]mi:-UBjo9i~>
+kl1\_=8ker92\kq>?=\L8dS4!EIEtNb2i9pnc&]qPBKs[8dJO<KpJCqpA=jSrs%XYOI*!"p>u;V
+oULMBe4L-THBZA>q#164Sqh/^Zq:^)@WHjPS$L2pnG<.Gs*t~>
+kl1\_M>i#0IsZKhI"$RmJ-g[HEda(Ob2i9pnc&^3Z_!!,J-_""W3j2&pA=jSrs%k@TU2\2p>u;V
+pUR2ae:7sdTX!#;q#16E];h6R["&O2F`VqdS$L2pnG<.Gs*t~>
+kPl&N""mAeHA%6?P`gl>9IUD&!"'6$DL7;9^=_iKrp]pf+OU5l[G:3HlMh(e5JXG;jSS'=!8l'%
+"_?*EpASF+!"BDf88EO)P+oD.hsU:<j8XW~>
+kPl'39O_aWHA%6?P`guRDHoui8d\="E-mM;^=_iKrp]pf@+%XL^>//QlMh(eG/CDtjSS'=!9h^#
+"c:^jpAU)Z8e"Nt@rZgJP+oD.hsU:<j8XW~>
+kPl$\JV\_rHA%6?P`h)bL4Rs,$@R&;H]+W4f^8M6nG`KMdXVG=h!Y%(rs&Fn`3-o:qrRhXn'6Fe
+UsnK"ri`\Z%=WVHG'\h)U:/8&meHb@s*t~>
+kPl74`3,;fU9VGOaMu*/ZDX4D>s'#.huF,g-W"o6NM3o0k4JT>rsjj*?rBa(=BT-B?tX@rEURrJ
+@fKg9?2dY.:..N?3&ipe]\W;\li.1go\7O?n,DGK''ag]>Ydpc<Dub#?=$uKDJsN7mrBIe@UWYO
+>#8$k7R9@(1cB-Rd-gk$=CG3<?>=:jFEI+ps'cCE>#8$b5W^SL*Z>Lni;aGn'I>e:C4(VkQ(kS%
+eDp&nrSdd,~>
+kPl7DbH@%mU9VGOaMu*/ZDX4MG@jiKi(=AN<b6B%NM3o0k4JT>rsbupKm7W^FE2PGEclVPmWo"Y
+FE;JBrG2gSC2@KoB:limpAXCX#6+8Lb1H+]jo5YVTTaqKDJjH4D>eGUF*MutH6IQUFE;JACi!m#
+AnP^cA:h&4mesVLLO+ApIsucpI=-Bgp3I3kFE;D;CM.0e>[(6.:efn@&PQ&'?YFJ-Jr>ngZGY2P
+nG)t@s*t~>
+kPl1Nd&rRrU9VGOaMu*/ZDX4TM1j`9$\*GDFFK4C\^9L2r9jRp_QohtN/NLGK7SQ&It3+;K):'+
+JqSi4L5:\^]\W;\li.1go\7O?n,DGK$hV'6S<&M^KnFr,If4`tJ:W:<K)C-7It3*%K7nuCYgDh:
+bc%;%P)bQ]M2$]RK):&uJ,OirJ)PniIslZiG^+UfMj:$B_pm`9q#01OJ,~>
+kPlCqkfgcZeDTTZn*]Q+inDbu\ZVZjE)//'k5Yr'/PpG7LR"dMdH'lprpB^rqW5\tTq7jJTq\B\
+W2cr$n?*G,XJr+pVPKrZTV%gIT:i'nh"C[3rri2dk3Vm(rt>>)hS#hZSXc7CTVA6ZVPpMrXm`D#
+XfSS%Vl$>eU7e-LrgX7dYg;b9r9MS1rh9RlV5C2lXnAh;XfSM"VPKoXS=5e0P)tZ\I<B=7?VsWm
+5X.Fh/hZiL'fnHM<FKiqJqo;KR\[.!aOT89o_SREs*t~>
+kPlCqkfgcZeDTTZn*]Q+inDbu\ZVZlJT"ppk=Q1Z=_;c'LR"dMdH'lprpB^rqW5\tTq7jJTq\B\
+W2cr$n?*G,XJr+pVPKrZTV%gIT:i'nh"C[3rri2dk3Vm(rt>>)hS#hZSXc7CTVA6ZVPpMrXm`D#
+XfSS%Vl$>eU7e-LrgX7dYg;b9r9MS1rh9RlV5C2lXnAh;XfSM"VPKoXS=5e0P)tZ\K78)gF)>`-
+ARo:X>[6u,'jtK`CN+NIJqo;KR\[.!aOT89o_SREs*t~>
+kPl@pkfgcZeDTTZn*]Q+inDbu\ZVZnN/*#IJ.6pPG'/1fQ)D:BjRW0HmJd^nji+<pSt;RJU8=`c
+WiW>lXqRq=WMcVjUnXNTT:VXHTVf?Vp&=7V"T%QKm.fZA')qU]]r.KnS=Q:FU84Z`W2cr$n#d&#
+XK/:tVP^/`TV%eSS-YakcgLc0lccR3U'7?hVPpPtor]17XJr+pUnOENR[9;&OH#-QKnP&/JUi6#
+J,OiiIK+]pHiJI(IY*?6PFA;N]?&O]m.C/RhuA3~>
+kPkecp?_#0o_SLarY#2,q"*q9hUTfb[&KXYEDekD%J'Q3!tun?:i(N2N0gEMa4TSGqYog\%fGkT
+eBlRie(*%%g=tE>mb\W4gtLK8f[eU&da6=cbK\]*qW\"_rqcEdrT!nhqX31fcd:%eeCE.&g"P39
+hX02AhV?l>g=b-0eC;pncHOJ[jRrNNoA\6Ed*pOtg"bETh]:P.g=b-0eC)[eb/V<5]XY>QY,\Cq
+U7\!GR@';*p662UR%'bEWj&tH`m<8okjS3@rVkXQJ,~>
+kPkecp?_#0o_SLarY#2,q"*q9hUTfb[&KX[J8f%%:\.0j92JYqBQJQQN0gEMa4TSGqYog\%fGkT
+eBlRie(*%%g=tE>mb\W4gtLK8f[eU&da6=cbK\]*qW\"_rqcEdrT!nhqX31fcd:%eeCE.&g"P39
+hX02AhV?l>g=b-0eC;pncHOJ[jRrNNoA\6Ed*pOtg"bETh]:P.g=b-0eC)[eb/V<5]XY>QY,\Cq
+U7\!GR@';*p662UR%'bEWj&tH`m<8okjS3@rVkXQJ,~>
+kPkecp?_#0o_SLarXf&*q"*q9hUTfb[&KX]MhZlRJ.R-UH?a[^JrH%n[`@%`o(r@Orsntsi7--#
+dF6Xsf\5*8hX985h;$`<g"=m+eC)^icHFJblh]lG"TJ8mqYfIS&GkhNda-:edaZguf\,!5gtqGU
+*o>],g=k64f$r3td*BkYdcC*#rU]$tcHt%jf\,'9oA:SEgtLH6f$r-obf[rB^V%(`Ycb"(UnXKP
+S!fY0Q1gFTQC+/7UoLZ.^;eLNhrsP%qYgELs*t~>
+k5PS_r;?Nmp\ts,r;--VlJpXIaM,![TU1[bAm%u-r([l1AT<3OL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+k5PS_r;?Nmp\ts,r;--VlJpXIaM,![TU1^lG]@S9r+Zj_Ed3(cL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+k5PS_r;?Nmp\u!-r;--VlJpXIaM,![TU1atL4b&-J,OiqI1LgZL5_:aUp.PTfAuAnqu5j[%K?;#
+p%.hJp%J+Rq"X[Pq>g?ip^Hojp@\(MoCDGAo_SRNs8N#WrsSi'p@RtJo^qhMp@nR]!;YsW!;ZTg
+rq7*"o^qbGnFH>Os8W#ko^_YIp@e:Vq=FF_q>U0hp)!DooCDD=m-<fsjPo(Pg=Y!+da6@dbf]\$
+&';u=d+$_'iT9@moCi%Yrn7=%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+e,L$ZrVQB^n*/ideBGhB['$@'U&:PnU8Fuq[_Bc,fAPl^pA=ius8N"[s8N#rs8W)Ws8N#trVud'
+qtg-`p\+:Po^h\Eo^E.Wo_%tSqY^<keGk%~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+cMn=PrVQB_na,K#hqH`5rR;8+f%Jm<jlu4(pA4^dJcCK)oDZr5J,~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+aoDD?"9&/oq"aUfq"agbrVleIs+13as*t~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+JcC<$JcG9?J,~>
+%%EndData
+showpage
+%%Trailer
+end
+%%EOF
diff --git a/users/sql-ledger.png b/users/sql-ledger.png
new file mode 100644
index 00000000..5edcdfe5
--- /dev/null
+++ b/users/sql-ledger.png
Binary files differ